blob: 42912959a707aa64ce09aa3e615b96c2e8c138ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/*
* NfaState
* Represents a state of a NFA (following Thompson's algorithm).
*/
function NfaState(symbol) {
if(!symbol) {
this.symbol = EPSILON;
} else {
this.symbol = symbol;
};
this.followUps = [];
this.marked = false;
this.id = NEXTSTATE++;
};
// Accessor functions.
NfaState.prototype.mark = function(bool) { this.marked = bool; };
NfaState.prototype.getFollowUp = function(index) { return this.followUps[index]; };
NfaState.prototype.setFollowUp = function(index, state) {
if (! ((index == 0) || (index==1)) ) return;
this.followUps[index] = state;
};
|