definedIntegerConstantDefinition=(((qi::lit("const")>>-qi::lit("int"))>>freshIdentifier)>>(qi::lit("=")>expression_>qi::lit(";")))[qi::_val=phoenix::bind(&PrismParser::createDefinedIntegerConstant,phoenix::ref(*this),qi::_1,qi::_2)];// '>>' before freshIdentifier because of the optional 'int'. Otherwise, undefined constant 'const bool b;' would not parse.
undefinedConstantDefinition=(undefinedBooleanConstantDefinition|undefinedDoubleConstantDefinition|undefinedIntegerConstantDefinition);// Due to the 'const N;' syntax, it is important to have integer constants last
STORM_LOG_THROW(formulas.size()==this->formulaExpressions.size(),storm::exceptions::UnexpectedException,"Unexpected number of formulas and formula expressions");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Invalid expression for formula '"<<formula.getName()<<"' at line '"<<formula.getLineNumber()<<"':\n\t"<<*expressionIt);
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<formula.getName()<<"' at line '"<<formula.getLineNumber());
STORM_LOG_THROW(!globalProgramInformation.hasInitialConstruct,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Program must not define two initial constructs.");
STORM_LOG_THROW(!globalProgramInformation.hasInitialConstruct,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Program must not define two initial constructs.");
STORM_LOG_THROW(globalProgramInformation.modelType==storm::prism::Program::ModelType::UNDEFINED,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Program must not set model type multiple times.");
STORM_LOG_THROW(globalProgramInformation.modelType==storm::prism::Program::ModelType::UNDEFINED,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Program must not set model type multiple times.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<newConstant<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<newConstant<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<newConstant<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<newConstant<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<newConstant<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<newConstant<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<newConstant<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<newConstant<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<newConstant<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<newConstant<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<newConstant<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<newConstant<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<newConstant<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<newConstant<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<newConstant<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<newConstant<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<newConstant<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<newConstant<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<formulaName<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<formulaName<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<variableName<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<variableName<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<variableName<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<variableName<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<variableName<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<variableName<<"'.");
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Duplicate identifier '"<<variableName<<"'.");
}else{
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": illegal identifier '"<<variableName<<"'.");
}
STORM_LOG_THROW(false,storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": illegal identifier '"<<variableName<<"'.");
STORM_LOG_THROW(moduleIndexPair!=globalProgramInformation.moduleToIndexMap.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": No module named '"<<oldModuleName<<"' to rename.");
STORM_LOG_THROW(moduleIndexPair!=globalProgramInformation.moduleToIndexMap.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": No module named '"<<oldModuleName<<"' to rename.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Boolean variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Boolean variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Integer variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Integer variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Clock variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Clock variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Boolean variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Boolean variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Integer variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Integer variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<", line "<<get_line(qi::_3)<<": Clock variable '"<<variable.getName()<<" was not renamed.");
STORM_LOG_THROW(renamingPair!=renaming.end(),storm::exceptions::WrongFormatException,"Parsing error in "<<this->getFilename()<<": Clock variable '"<<variable.getName()<<" was not renamed.");