From 8b1a4b4e5236b3846103e8802d1be8f5c57349df Mon Sep 17 00:00:00 2001 From: David_Korzeniewski Date: Tue, 10 Feb 2015 13:24:21 +0100 Subject: [PATCH] Quickfix s.t. we have a defined index and don't dereference end() which is bad Former-commit-id: c55bb57dd5d89d282b9713c6d078554439a64da6 --- src/parser/PrismParser.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/parser/PrismParser.cpp b/src/parser/PrismParser.cpp index 6426f0e16..3db49eb16 100644 --- a/src/parser/PrismParser.cpp +++ b/src/parser/PrismParser.cpp @@ -343,7 +343,11 @@ namespace storm { storm::prism::TransitionReward PrismParser::createTransitionReward(std::string const& actionName, storm::expressions::Expression statePredicateExpression, storm::expressions::Expression rewardValueExpression, GlobalProgramInformation& globalProgramInformation) const { auto const& nameIndexPair = globalProgramInformation.actionIndices.find(actionName); STORM_LOG_THROW(actionName.empty() || nameIndexPair != globalProgramInformation.actionIndices.end(), storm::exceptions::WrongFormatException, "Transition reward refers to illegal action '" << actionName << "'."); - return storm::prism::TransitionReward(nameIndexPair->second, actionName, statePredicateExpression, rewardValueExpression, this->getFilename()); + if (nameIndexPair == globalProgramInformation.actionIndices.end() && actionName.empty()) { + return storm::prism::TransitionReward(0, actionName, statePredicateExpression, rewardValueExpression, this->getFilename()); + } else { + return storm::prism::TransitionReward(nameIndexPair->second, actionName, statePredicateExpression, rewardValueExpression, this->getFilename()); + } } storm::prism::Assignment PrismParser::createAssignment(std::string const& variableName, storm::expressions::Expression assignedExpression) const {