summaryrefslogtreecommitdiff
path: root/javascripts/NfaState.js
blob: 34534665b819197c37b6b4578f49020b096c936e (plain)
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
/*
 * 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;
};