37 typedef std::unordered_map<std::string, storm::jani::Variable const*>
VariablesMap;
38 typedef std::unordered_map<std::string, storm::jani::Constant const*>
ConstantsMap;
39 typedef std::unordered_map<std::string, storm::jani::FunctionDefinition const*>
FunctionsMap;
44 static std::pair<storm::jani::Model, std::vector<storm::jani::Property>> parse(std::string
const& path,
bool parseProperties =
true);
45 static std::pair<storm::jani::Model, std::vector<storm::jani::Property>> parseFromString(std::string
const& jsonstring,
bool parseProperties =
true);
48 void readFile(std::string
const& path);
67 Scope refine(std::string
const& prependedDescription =
"")
const {
69 if (prependedDescription !=
"") {
76 this->globalVars =
nullptr;
77 this->localVars =
nullptr;
82 std::pair<storm::jani::Model, std::vector<storm::jani::Property>> parseModel(
bool parseProperties =
true);
88 std::shared_ptr<storm::jani::Variable> parseVariable(
storm::json<ValueType> const& variableStructure, Scope
const& scope,
89 std::string
const& namePrefix =
"");
91 bool returnNoneOnUnknownOpString =
false,
92 std::unordered_map<std::string, storm::expressions::Variable>
const& auxiliaryVariables = {});
95 std::shared_ptr<storm::jani::Constant> parseConstant(
storm::json<ValueType> const& constantStructure, Scope
const& scope);
97 std::string
const& parameterNamePrefix =
"");
105 boost::optional<storm::logic::Bound> bound = boost::none);
106 std::vector<storm::expressions::Expression> parseUnaryExpressionArguments(
107 storm::json<ValueType> const& expressionStructure, std::string
const& opstring, Scope
const& scope,
bool returnNoneOnUnknownOpString =
false,
108 std::unordered_map<std::string, storm::expressions::Variable>
const& auxiliaryVariables = {});
109 std::vector<storm::expressions::Expression> parseBinaryExpressionArguments(
110 storm::json<ValueType> const& expressionStructure, std::string
const& opstring, Scope
const& scope,
bool returnNoneOnUnknownOpString =
false,
111 std::unordered_map<std::string, storm::expressions::Variable>
const& auxiliaryVariables = {});
113 std::vector<std::shared_ptr<storm::logic::Formula const>> parseUnaryFormulaArgument(storm::jani::Model& model,
116 std::string
const& opstring, Scope
const& scope);
117 std::vector<std::shared_ptr<storm::logic::Formula const>> parseBinaryFormulaArguments(storm::jani::Model& model,
120 std::string
const& opstring, Scope
const& scope);
121 storm::jani::PropertyInterval parsePropertyInterval(
storm::json<ValueType> const& piStructure, Scope
const& scope);
122 storm::logic::RewardAccumulation parseRewardAccumulation(
storm::json<ValueType> const& accStructure, std::string
const& context);
124 std::shared_ptr<storm::jani::Composition> parseComposition(
storm::json<ValueType> const& compositionStructure);
125 storm::expressions::Variable getVariableOrConstantExpression(std::string
const& ident, Scope
const& scope,
126 std::unordered_map<std::string, storm::expressions::Variable>
const& auxiliaryVariables = {});
135 std::shared_ptr<storm::expressions::ExpressionManager> expressionManager;
137 std::set<std::string> labels = {};
139 bool allowRecursion =
true;
144 static const bool defaultVariableTransient;
146 static const std::set<std::string> unsupportedOpstrings;
Scope(std::string description="global", ConstantsMap const *constants=nullptr, VariablesMap const *globalVars=nullptr, FunctionsMap const *globalFunctions=nullptr, VariablesMap const *localVars=nullptr, FunctionsMap const *localFunctions=nullptr)