STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unsupported kind "<<kind<<" for complex type of variable "<<name<<"(scope: "<<scopeDescription<<") ");
}
}
else{
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unknown type description, "<<variableStructure.at("type").dump()<<" for Variable '"<<name<<"' (scope: "<<scopeDescription<<")");
}
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unknown type description, "<<variableStructure.at("type").dump()<<" for Variable '"<<name<<"' (scope: "<<scopeDescription<<")");
}
/**
@ -145,6 +143,13 @@ namespace storm {
STORM_LOG_THROW(expr.hasBooleanType(),storm::exceptions::InvalidJaniException,"Operator "<<opstring<<" expects argument "+std::to_string(argNr)+" to be Boolean in "<<errorInfo<<".");
STORM_LOG_THROW(expr.hasNumericalType(),storm::exceptions::InvalidJaniException,"Operator "<<opstring<<" expects argument "+std::to_string(argNr)+" to be numerical in "<<errorInfo<<".");
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Unknown operator "<<opstring<<" in "<<scopeDescription<<".");
}
}
STORM_LOG_THROW(false,storm::exceptions::InvalidJaniException,"Only standard operators are supported for complex expressions as "<<expressionStructure.dump()<<" in "<<scopeDescription<<".");
}
assert(false);
}
@ -249,11 +307,11 @@ namespace storm {
STORM_LOG_THROW(edgeEntry.count("rate")<2,storm::exceptions::InvalidJaniException,"Edge from '"<<sourceLoc<<"' in automaton '"<<name<<"' has multiple rates");
storm::expressions::ExpressionrateExpr;
if(edgeEntry.count("rate")>0){
rateExpr=parseExpression(edgeEntry.at("rate"),"Rate expression in edge from '"+sourceLoc+"' in automaton '"+name+"'");
rateExpr=parseExpression(edgeEntry.at("rate"),"rate expression in edge from '"+sourceLoc+"' in automaton '"+name+"'");
STORM_LOG_THROW(rateExpr.hasNumericalType(),storm::exceptions::InvalidJaniException,"Rate '"<<rateExpr<<"' has not a numerical type");
}
STORM_LOG_THROW(edgeEntry.count("guard")==1,storm::exceptions::InvalidJaniException,"A single guard must be given in edge from '"<<sourceLoc<<"' in automaton '"<<name<<"'");
storm::expressions::ExpressionguardExpr=parseExpression(edgeEntry.at("guard"),"Guard expression in edge from '"+sourceLoc+"' in automaton '"+name+"'");
storm::expressions::ExpressionguardExpr=parseExpression(edgeEntry.at("guard"),"guard expression in edge from '"+sourceLoc+"' in automaton '"+name+"'");
STORM_LOG_THROW(guardExpr.hasBooleanType(),storm::exceptions::InvalidJaniException,"Guard "<<guardExpr<<" does not have Boolean type.");