Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
DeterministicAutomaton.h
Go to the documentation of this file.
1#pragma once
2
3#include <iostream>
4#include <memory>
6
7namespace storm {
8namespace automata {
9// fwd
10class AcceptanceCondition;
11
13 public:
14 typedef std::shared_ptr<DeterministicAutomaton> ptr;
15
16 DeterministicAutomaton(APSet apSet, std::size_t numberOfStates, std::size_t initialState, std::shared_ptr<AcceptanceCondition> acceptance);
17
18 const APSet& getAPSet() const;
19
20 std::size_t getInitialState() const;
21
22 std::size_t getSuccessor(std::size_t from, APSet::alphabet_element label) const;
23 void setSuccessor(std::size_t from, APSet::alphabet_element label, std::size_t successor);
24
25 std::size_t getNumberOfStates() const;
26 std::size_t getNumberOfEdgesPerState() const;
27
28 std::shared_ptr<AcceptanceCondition> getAcceptance() const;
29
30 void printHOA(std::ostream& out) const;
31
32 static DeterministicAutomaton::ptr parse(std::istream& in);
33 static DeterministicAutomaton::ptr parseFromFile(const std::string& filename);
34
35 private:
36 APSet apSet;
37 std::size_t numberOfStates;
38 std::size_t initialState;
39 std::size_t numberOfEdges;
40 std::size_t edgesPerState;
41 std::shared_ptr<AcceptanceCondition> acceptance;
42 std::vector<std::size_t> successors;
43};
44} // namespace automata
45} // namespace storm
std::size_t alphabet_element
Definition APSet.h:12
static DeterministicAutomaton::ptr parseFromFile(const std::string &filename)
void setSuccessor(std::size_t from, APSet::alphabet_element label, std::size_t successor)
std::size_t getSuccessor(std::size_t from, APSet::alphabet_element label) const
std::shared_ptr< DeterministicAutomaton > ptr
std::shared_ptr< AcceptanceCondition > getAcceptance() const
static DeterministicAutomaton::ptr parse(std::istream &in)
LabParser.cpp.
Definition cli.cpp:18