STORM_LOG_THROW(model.hasDefaultComposition(),storm::exceptions::WrongFormatException,"The explicit next-state generator currently does not support custom system compositions.");
STORM_LOG_THROW(!this->options.isBuildAllRewardModelsSet()&&this->options.getRewardModelNames().empty(),storm::exceptions::InvalidSettingsException,"The explicit next-state generator currently does not support building reward models.");
STORM_LOG_THROW(!model.hasNonGlobalTransientVariable(),storm::exceptions::InvalidSettingsException,"The explicit next-state generator currently does not support automata-local transient variables.");
STORM_LOG_THROW(rewardModelName.empty(),storm::exceptions::InvalidArgumentException,"Cannot build unknown reward model '"<<rewardModelName<<"'.");
STORM_LOG_THROW(globalVariables.getNumberOfTransientVariables()==1,storm::exceptions::InvalidArgumentException,"Reference to standard reward model is ambiguous.");
STORM_LOG_THROW(this->program.getNumberOfRewardModels()>0,storm::exceptions::InvalidArgumentException,"Reference to standard reward model is invalid, because there is no reward model.");
}
}
// If no reward model was yet added, but there was one that was given in the options, we try to build
STORM_LOG_THROW(transientValueEntry.count("ref")==1,storm::exceptions::InvalidJaniException,"Transient values in location "<<locName<<" need exactly one ref that is assigned to");
STORM_LOG_THROW(transientValueEntry.count("value")==1,storm::exceptions::InvalidJaniException,"Transient values in location "<<locName<<" need exactly one assigned value");
storm::jani::Variableconst&lhs=getLValue(transientValueEntry.at("ref"),parentModel.getGlobalVariables(),automaton.getVariables(),"LHS of assignment in location "+locName+" (automaton '"+name+"')");
STORM_LOG_THROW(lhs.isTransientVariable(),storm::exceptions::InvalidJaniException,"Assigned non-transient variable "+lhs.getName()+" in location "+locName+" (automaton: '"+name+"')");
STORM_LOG_THROW(lhs.isTransient(),storm::exceptions::InvalidJaniException,"Assigned non-transient variable "+lhs.getName()+" in location "+locName+" (automaton: '"+name+"')");
storm::expressions::Expressionrhs=parseExpression(transientValueEntry.at("value"),"Assignment of variable "+lhs.getName()+" in location "+locName+" (automaton: '"+name+"')");