Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ValueParser.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4#include <string>
5#include <type_traits>
6
9
10namespace storm {
11namespace expressions {
12template<typename V>
14}
15
16namespace parser {
17class ExpressionParser;
18
22template<typename ValueType>
24 public:
32 ValueType parseValue(std::string const& value) const;
33
39 void addParameter(std::string const& parameter);
40
41 private:
42 struct ParametricData {
43 ParametricData();
44 ~ParametricData();
45 std::shared_ptr<storm::expressions::ExpressionManager> manager;
46 std::unique_ptr<storm::parser::ExpressionParser> parser; // Pointer to avoid header include.
47 std::unique_ptr<storm::expressions::ExpressionEvaluator<storm::RationalFunction>> evaluator;
48 std::unordered_map<std::string, storm::expressions::Expression> identifierMapping;
49 };
50 std::conditional_t<std::is_same_v<ValueType, storm::RationalFunction>, ParametricData, std::nullptr_t> data;
51};
52
61template<typename NumberType>
62NumberType parseNumber(std::string const& value);
63
70template<typename NumberType>
71bool parseNumber(std::string const& value, NumberType& result);
72
73} // namespace parser
74} // namespace storm
Parser for values according to their ValueType.
Definition ValueParser.h:23
void addParameter(std::string const &parameter)
Add declaration of parameter.
ValueType parseValue(std::string const &value) const
Parse ValueType from string.
NumberType parseNumber(std::string const &value)
Parse number from string.
LabParser.cpp.
Definition cli.cpp:18