Storm 1.14.0.1
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
10
11namespace storm {
12namespace expressions {
13template<typename V>
15}
16
17namespace parser {
18class ExpressionParser;
19
23template<typename ValueType>
25 public:
33 ValueType parseValue(std::string const& value) const;
34
40 void addParameter(std::string const& parameter);
41
42 private:
43 struct ParametricData {
44 ParametricData();
45 ~ParametricData();
46 std::shared_ptr<storm::expressions::ExpressionManager> manager;
47 std::unique_ptr<storm::parser::ExpressionParser> parser; // Pointer to avoid header include.
48 std::unique_ptr<storm::expressions::ExpressionEvaluator<storm::RationalFunction>> evaluator;
49 std::unordered_map<std::string, storm::expressions::Expression> identifierMapping;
50 };
51 std::conditional_t<std::is_same_v<ValueType, storm::RationalFunction>, ParametricData, std::nullptr_t> data;
52};
53
62template<typename NumberType>
63STORM_PARSERS_API NumberType parseNumber(std::string const& value);
64
71template<typename NumberType>
72STORM_PARSERS_API bool parseNumber(std::string const& value, NumberType& result);
73
74} // namespace parser
75} // namespace storm
Parser for values according to their ValueType.
Definition ValueParser.h:24
void addParameter(std::string const &parameter)
Add declaration of parameter.
ValueType parseValue(std::string const &value) const
Parse ValueType from string.
Contains all file parsers and helper classes.
NumberType parseNumber(std::string const &value)
Parse number from string.
#define STORM_PARSERS_API