-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstate.cpp
More file actions
55 lines (47 loc) · 1.09 KB
/
state.cpp
File metadata and controls
55 lines (47 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "state.h"
using namespace std;
int State::idCounter = 0;
State::State(bool isAccepting)
{
this->id = idCounter;
this->isAccepting = isAccepting;
idCounter++;
}
bool State::addTransition(char key, State *newState)
{
this->transitions[key].push_back(newState);
return true;
}
void State::printState()
{
cout << "\nID: " << this->id << "\nisAccepting: " << this->isAccepting << endl;
cout << "Transitions: " << endl;
map<char, vector<State *>>::iterator it;
for (it = this->transitions.begin(); it != this->transitions.end(); it++)
{
vector<State *>::iterator listIt;
cout << it->first << " : ";
for (listIt = it->second.begin(); listIt != it->second.end(); listIt++)
{
cout << *listIt;
}
cout << "\n";
}
}
int State::getId()
{
return this->id;
}
bool State::getAcceptance()
{
return this->isAccepting;
}
bool State::setAcceptance(bool isAccepted)
{
this->isAccepting = isAccepted;
return true;
}
map<char, vector<State *>> State::getTransitions()
{
return this->transitions;
}