Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ImcaMarkovAutomatonParserGrammar.h
Go to the documentation of this file.
1#pragma once
2
3#include <fstream>
4#include <memory>
5
9
12
13namespace storm {
14namespace parser {
15
16template<typename ValueType, typename StateType = uint32_t>
17class ImcaParserGrammar : public qi::grammar<Iterator, storm::storage::sparse::ModelComponents<ValueType>(), Skipper> {
18 public:
20
21 private:
22 void initialize();
23
24 std::pair<StateType, ValueType> createStateValuePair(StateType const& state, ValueType const& value);
25 StateType getStateIndex(std::string const& stateString);
26 void addInitialState(StateType const& state);
27 void addGoalState(StateType const& state);
28 void addChoiceToStateBehavior(StateType const& state, std::string const& label, std::vector<std::pair<StateType, ValueType>> const& transitions,
29 boost::optional<ValueType> const& reward);
31
32 qi::rule<Iterator, storm::storage::sparse::ModelComponents<ValueType>(), Skipper> start;
33
34 qi::rule<Iterator, qi::unused_type(), Skipper> initials;
35 qi::rule<Iterator, qi::unused_type(), Skipper> goals;
36 qi::rule<Iterator, qi::unused_type(), Skipper> transitions;
37
38 qi::rule<Iterator, qi::unused_type(), Skipper> choice;
39 qi::rule<Iterator, std::pair<StateType, ValueType>(), Skipper> transition;
40 qi::rule<Iterator, std::string(), Skipper> choicelabel;
41 qi::rule<Iterator, ValueType(), Skipper> reward;
42 qi::rule<Iterator, StateType(), Skipper> state;
43 qi::rule<Iterator, ValueType(), Skipper> value;
44
46
47 StateType numStates;
48 StateType numChoices;
49 StateType numTransitions;
50 bool hasStateReward;
51 bool hasActionReward;
52
53 std::vector<storm::generator::StateBehavior<ValueType, StateType>> stateBehaviors;
54 storm::storage::BitVector initialStates, goalStates, markovianStates;
55 std::map<std::string, StateType> stateIndices;
56};
57
58} // namespace parser
59} // namespace storm
PositionIteratorType Iterator
ImcaParserGrammar(ExplicitModelParserOptions const &options=ExplicitModelParserOptions())
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:16
Contains all file parsers and helper classes.