STORM_LOG_THROW(functionDefinitionStructure.count("parameters")==1,storm::exceptions::InvalidJaniException,"Function definition '"+functionName+"' (scope: "+scope.description+") must have exactly one list of parameters.");
STORM_LOG_THROW(functionDefinitionStructure.count("parameters")==1,storm::exceptions::InvalidJaniException,"Function definition '"+functionName+"' (scope: "+scope.description+") must have exactly one list of parameters.");
STORM_LOG_THROW(parameterStructure.count("name")==1,storm::exceptions::InvalidJaniException,"Parameter declaration of parameter "+std::to_string(parameters.size())+" of Function definition '"+functionName+"' (scope: "+scope.description+") must have a name");
STORM_LOG_THROW(parameterStructure.count("name")==1,storm::exceptions::InvalidJaniException,"Parameter declaration of parameter "+std::to_string(parameters.size())+" of Function definition '"+functionName+"' (scope: "+scope.description+") must have a name");
std::stringparameterName=getString(functionDefinitionStructure.at("name"),"parameter-name of parameter "+std::to_string(parameters.size())+" of Function definition '"+functionName+"' (scope: "+scope.description+")");
std::stringparameterName=getString(parameterStructure.at("name"),"parameter-name of parameter "+std::to_string(parameters.size())+" of Function definition '"+functionName+"' (scope: "+scope.description+")");
ParsedTypeparameterType;
ParsedTypeparameterType;
STORM_LOG_THROW(functionDefinitionStructure.count("type")==1,storm::exceptions::InvalidJaniException,"Parameter declaration of parameter "+std::to_string(parameters.size())+" of Function definition '"+functionName+"' (scope: "+scope.description+") must have exactly one type.");
STORM_LOG_THROW(parameterStructure.count("type")==1,storm::exceptions::InvalidJaniException,"Parameter declaration of parameter "+std::to_string(parameters.size())+" of Function definition '"+functionName+"' (scope: "+scope.description+") must have exactly one type.");
parseType(parameterType,parameterStructure.at("type"),parameterName,scope.refine("parameter declaration of parameter "+std::to_string(parameters.size())+" of function definition "+functionName));
parseType(parameterType,parameterStructure.at("type"),parameterName,scope.refine("parameter declaration of parameter "+std::to_string(parameters.size())+" of function definition "+functionName));
STORM_LOG_WARN_COND(!parameterType.bounds.is_initialized(),"Bounds on parameter"+parameterName+" of function definition "+functionName+" will be ignored.");
STORM_LOG_WARN_COND(!parameterType.bounds.is_initialized(),"Bounds on parameter"+parameterName+" of function definition "+functionName+" will be ignored.");