STORM_LOG_THROW(variableStructure.count("initial-value")==1,storm::exceptions::InvalidJaniException,"Initial value for variable '"+name+"' + (scope: "+scopeDescription+") must be given once.");
// Read initial value before; that makes creation later on a bit easier, and has as an additional benefit that we do not need to check whether the variable occurs also on the assignment.
storm::expressions::ExpressioninitExpr=parseExpression(variableStructure.at("initial-value"),"Initial value of variable "+name+" (scope: "+scopeDescription+")");
STORM_LOG_THROW(initExpr.hasBooleanType(),storm::exceptions::InvalidJaniException,"Initial value for Boolean variable "<<name<<" (scope: "<<scopeDescription<<") should have Boolean type.");
STORM_LOG_THROW(initExpr.hasIntegerType(),storm::exceptions::InvalidJaniException,"Initial value for interger variable "<<name<<" (scope: "<<scopeDescription<<") should have integer type.");
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unknown type description "<<variableStructure.at("type").dump()<<" for Variable '"<<name<<"' (scope: "<<scopeDescription<<")");
std::stringlocName=getString(locEntry,"location of automaton "+name);
STORM_LOG_THROW(locEntry.count("name"),storm::exceptions::InvalidJaniException,"Locations for automaton "<<name<<" must have exactly one name");
std::stringlocName=getString(locEntry.at("name"),"location of automaton "+name);
STORM_LOG_THROW(locIds.count(locName)==0,storm::exceptions::InvalidJaniException,"Location with name '"+locName+"' already exists in automaton '"+name+"'");