|  |  | @ -23,13 +23,18 @@ std::ostream& operator<<(std::ostream& out, qi::symbols<char, T>& symbols) { | 
			
		
	
		
			
				
					|  |  |  | 	symbols.for_each(dump); | 
			
		
	
		
			
				
					|  |  |  | 	return out; | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | std::ostream& operator<<(std::ostream& out, VariableState::variableNamesStruct& symbols) { | 
			
		
	
		
			
				
					|  |  |  | 	SymbolDump<std::string> dump(out); | 
			
		
	
		
			
				
					|  |  |  | 	symbols.for_each(dump); | 
			
		
	
		
			
				
					|  |  |  | 	return out; | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | VariableState::VariableState(bool firstRun) | 
			
		
	
		
			
				
					|  |  |  | 		: firstRun(firstRun), keywords(), nextBooleanVariableIndex(0), nextIntegerVariableIndex(0) { | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | uint_fast64_t VariableState::addBooleanVariable(const std::string& name, const std::shared_ptr<storm::ir::expressions::BaseExpression> init) { | 
			
		
	
		
			
				
					|  |  |  | uint_fast64_t VariableState::addBooleanVariable(const std::string& name) { | 
			
		
	
		
			
				
					|  |  |  | 	if (firstRun) { | 
			
		
	
		
			
				
					|  |  |  | 		std::shared_ptr<VariableExpression> varExpr = std::shared_ptr<VariableExpression>(new VariableExpression(storm::ir::expressions::BaseExpression::bool_, this->nextBooleanVariableIndex, name)); | 
			
		
	
		
			
				
					|  |  |  | 		LOG4CPLUS_DEBUG(logger, "Adding boolean variable " << name << " with new id " << this->nextBooleanVariableIndex); | 
			
		
	
	
		
			
				
					|  |  | @ -48,7 +53,7 @@ uint_fast64_t VariableState::addBooleanVariable(const std::string& name, const s | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | uint_fast64_t VariableState::addIntegerVariable(const std::string& name, const std::shared_ptr<storm::ir::expressions::BaseExpression> lower, const std::shared_ptr<storm::ir::expressions::BaseExpression> upper, const std::shared_ptr<storm::ir::expressions::BaseExpression> init) { | 
			
		
	
		
			
				
					|  |  |  | uint_fast64_t VariableState::addIntegerVariable(const std::string& name, const std::shared_ptr<storm::ir::expressions::BaseExpression> lower, const std::shared_ptr<storm::ir::expressions::BaseExpression> upper) { | 
			
		
	
		
			
				
					|  |  |  | 	if (firstRun) { | 
			
		
	
		
			
				
					|  |  |  | 		std::shared_ptr<VariableExpression> varExpr = std::shared_ptr<VariableExpression>(new VariableExpression(storm::ir::expressions::BaseExpression::int_, this->nextIntegerVariableIndex, name, lower, upper)); | 
			
		
	
		
			
				
					|  |  |  | 		LOG4CPLUS_DEBUG(logger, "Adding integer variable " << name << " with new id " << this->nextIntegerVariableIndex); | 
			
		
	
	
		
			
				
					|  |  | @ -106,12 +111,34 @@ std::shared_ptr<VariableExpression> VariableState::getVariable(const std::string | 
			
		
	
		
			
				
					|  |  |  | 		if (res != nullptr) { | 
			
		
	
		
			
				
					|  |  |  | 			return *res; | 
			
		
	
		
			
				
					|  |  |  | 		} else { | 
			
		
	
		
			
				
					|  |  |  | 			LOG4CPLUS_ERROR(logger, "Getting variable " << name << ", but was not found. This variable does not exist."); | 
			
		
	
		
			
				
					|  |  |  | 			return std::shared_ptr<VariableExpression>(nullptr); | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | void VariableState::performRenaming(const std::map<std::string, std::string>& renaming) { | 
			
		
	
		
			
				
					|  |  |  | 	for (auto it: renaming) { | 
			
		
	
		
			
				
					|  |  |  | 		std::shared_ptr<VariableExpression>* original = this->integerVariables_.find(it.first); | 
			
		
	
		
			
				
					|  |  |  | 		if (original != nullptr) { | 
			
		
	
		
			
				
					|  |  |  | 			std::shared_ptr<VariableExpression>* next = this->integerVariables_.find(it.second); | 
			
		
	
		
			
				
					|  |  |  | 			if (next == nullptr) { | 
			
		
	
		
			
				
					|  |  |  | 				this->addIntegerVariable(it.second, (*original)->getLowerBound(), (*original)->getUpperBound()); | 
			
		
	
		
			
				
					|  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 		original = this->booleanVariables_.find(it.first); | 
			
		
	
		
			
				
					|  |  |  | 		if (original != nullptr) { | 
			
		
	
		
			
				
					|  |  |  | 			if (this->booleanVariables_.find(it.second) == nullptr) { | 
			
		
	
		
			
				
					|  |  |  | 				this->addBooleanVariable(it.second); | 
			
		
	
		
			
				
					|  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 		std::string* oldCmdName = this->commandNames_.find(it.first); | 
			
		
	
		
			
				
					|  |  |  | 		if (oldCmdName != nullptr) { | 
			
		
	
		
			
				
					|  |  |  | 			LOG4CPLUS_DEBUG(logger, "Adding new command name " << it.second << " due to module renaming."); | 
			
		
	
		
			
				
					|  |  |  | 			this->commandNames_.at(it.second) = it.second; | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | void VariableState::startModule() { | 
			
		
	
		
			
				
					|  |  |  | 	this->localBooleanVariables_.clear(); | 
			
		
	
		
			
				
					|  |  |  | 	this->localIntegerVariables_.clear(); | 
			
		
	
	
		
			
				
					|  |  | 
 |