36 typedef std::unordered_map<std::string, storm::jani::Variable const*>
VariablesMap;
37 typedef std::unordered_map<std::string, storm::jani::Constant const*>
ConstantsMap;
38 typedef std::unordered_map<std::string, storm::jani::FunctionDefinition const*>
FunctionsMap;
43 static std::pair<storm::jani::Model, std::vector<storm::jani::Property>>
parse(std::string
const& path,
bool parseProperties =
true);
44 static std::pair<storm::jani::Model, std::vector<storm::jani::Property>>
parseFromString(std::string
const& jsonstring,
bool parseProperties =
true);
47 void readFile(std::string
const& path);
66 Scope refine(std::string
const& prependedDescription =
"")
const {
68 if (prependedDescription !=
"") {
75 this->globalVars =
nullptr;
76 this->localVars =
nullptr;
81 std::pair<storm::jani::Model, std::vector<storm::jani::Property>>
parseModel(
bool parseProperties =
true);
88 std::string
const& namePrefix =
"");
90 bool returnNoneOnUnknownOpString =
false,
91 std::unordered_map<std::string, storm::expressions::Variable>
const& auxiliaryVariables = {});
94 std::shared_ptr<storm::jani::Constant> parseConstant(
storm::json<ValueType> const& constantStructure, Scope
const& scope);
96 std::string
const& parameterNamePrefix =
"");
104 boost::optional<storm::logic::Bound> bound = boost::none);
105 std::vector<storm::expressions::Expression> parseUnaryExpressionArguments(
106 storm::json<ValueType> const& expressionStructure, std::string
const& opstring, Scope
const& scope,
bool returnNoneOnUnknownOpString =
false,
107 std::unordered_map<std::string, storm::expressions::Variable>
const& auxiliaryVariables = {});
108 std::vector<storm::expressions::Expression> parseBinaryExpressionArguments(
109 storm::json<ValueType> const& expressionStructure, std::string
const& opstring, Scope
const& scope,
bool returnNoneOnUnknownOpString =
false,
110 std::unordered_map<std::string, storm::expressions::Variable>
const& auxiliaryVariables = {});
112 std::vector<std::shared_ptr<storm::logic::Formula const>> parseUnaryFormulaArgument(
storm::jani::Model& model,
115 std::string
const& opstring, Scope
const& scope);
116 std::vector<std::shared_ptr<storm::logic::Formula const>> parseBinaryFormulaArguments(
storm::jani::Model& model,
119 std::string
const& opstring, Scope
const& scope);
123 std::shared_ptr<storm::jani::Composition> parseComposition(
storm::json<ValueType> const& compositionStructure);
125 std::unordered_map<std::string, storm::expressions::Variable>
const& auxiliaryVariables = {});
134 std::shared_ptr<storm::expressions::ExpressionManager> expressionManager;
136 std::set<std::string> labels = {};
138 bool allowRecursion =
true;
143 static const bool defaultVariableTransient;
145 static const std::set<std::string> unsupportedOpstrings;
storm::expressions::Expression parseExpression(storm::json< ValueType > const &expressionStructure, Scope const &scope, bool returnNoneOnUnknownOpString=false, std::unordered_map< std::string, storm::expressions::Variable > const &auxiliaryVariables={})
nlohmann::basic_json< std::map, std::vector, std::string, bool, int64_t, uint64_t, ValueType > json
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)