15 #include <unordered_set>
40 Fsm(
const std::shared_ptr<FsmPresentationLayer> presentationLayer);
46 std::vector<std::shared_ptr<FsmNode>> nodes;
47 std::shared_ptr<FsmNode> currentParsedNode;
52 std::vector<std::shared_ptr<OFSMTable>> ofsmTableLst;
53 std::shared_ptr<Tree> characterisationSet;
54 std::vector<std::shared_ptr<Tree>> stateIdentificationSets;
55 std::shared_ptr<FsmPresentationLayer> presentationLayer;
57 std::shared_ptr<FsmNode> newNode(
const int id,
const std::shared_ptr<std::pair<std::shared_ptr<FsmNode>, std::shared_ptr<FsmNode>>> p);
58 bool contains(
const std::vector<std::shared_ptr<std::pair<std::shared_ptr<FsmNode>, std::shared_ptr<FsmNode>>>>& lst,
const std::shared_ptr<std::pair<std::shared_ptr<FsmNode>, std::shared_ptr<FsmNode>>> p);
59 bool contains(
const std::vector<std::shared_ptr<FsmNode>>& lst,
const std::shared_ptr<FsmNode> n);
60 std::shared_ptr<FsmNode> findp(
const std::vector<std::shared_ptr<FsmNode>>& lst,
const std::shared_ptr<std::pair<std::shared_ptr<FsmNode>, std::shared_ptr<FsmNode>>> p);
61 void parseLine(
const std::string & line);
62 void readFsm(
const std::string & fname);
64 void parseLineInitial (
const std::string & line);
65 void readFsmInitial (
const std::string & fname);
68 std::string labelString(std::unordered_set<std::shared_ptr<FsmNode>>& lbl)
const;
74 Fsm(
const std::string & fname,
75 const std::string & fsmName,
79 const std::shared_ptr<FsmPresentationLayer> presentationLayer);
106 Fsm(
const std::string& fname,
107 const std::shared_ptr<FsmPresentationLayer> presentationLayer,
108 const std::string& fsmName);
125 Fsm(
const std::string & fsmName,
128 const std::vector<std::shared_ptr<FsmNode>> lst,
129 const std::shared_ptr<FsmPresentationLayer> presentationLayer);
146 void dumpFsm(std::ofstream & outputFile)
const;
147 std::shared_ptr<FsmNode> getInitialState()
const;
154 virtual int getMaxNodes()
const;
155 int getMaxInput()
const;
156 int getMaxOutput()
const;
157 std::vector<std::shared_ptr<FsmNode>> getNodes()
const;
158 std::shared_ptr<FsmPresentationLayer> getPresentationLayer()
const;
159 int getInitStateIdx()
const;
161 void toDot(
const std::string & fname);
169 std::shared_ptr<Tree> getStateCover();
170 std::shared_ptr<Tree> getTransitionCover();
172 Fsm transformToObservableFSM()
const;
179 Minimal isMinimal()
const;
195 bool isCharSet(
const std::shared_ptr<Tree> w)
const;
196 void minimiseCharSet(
const std::shared_ptr<Tree> w);
220 void appendStateIdentificationSets(
const std::shared_ptr<Tree> Wp2)
const;
235 bool isCompletelyDefined()
const;
242 void setPresentationLayer(
const std::shared_ptr<FsmPresentationLayer> ppresentationLayer);
243 friend std::ostream & operator<<(std::ostream & out,
const Fsm & fsm);
245 #endif //FSM_FSM_FSM_H_
void dumpFsm(std::ofstream &outputFile) const
Definition: Fsm.cpp:268
void calcStateIdentificationSets()
Definition: Fsm.cpp:720
bool isObservable() const
Definition: Fsm.cpp:570
std::string getName() const
Definition: Fsm.cpp:290
Definition: OutputTree.h:15
IOListContainer wpMethod(const int m)
Definition: Fsm.cpp:837
Definition: IOListContainer.h:15
Fsm intersect(const Fsm &f)
Definition: Fsm.cpp:340
Fsm minimiseObservableFSM()
Definition: Fsm.cpp:587
IOListContainer getCaracterisationSet()
Definition: Fsm.cpp:665
Definition: OFSMTable.h:37
bool isDeterministic() const
Definition: Fsm.cpp:932
Fsm minimise()
Definition: Fsm.cpp:614
Definition: FsmPresentationLayer.h:16
Definition: TestSuite.h:15
Fsm(const std::shared_ptr< FsmPresentationLayer > presentationLayer)
Definition: Fsm.cpp:222