diff options
Diffstat (limited to 'javascripts')
-rw-r--r-- | javascripts/; | 32 | ||||
-rw-r--r-- | javascripts/RegexVis.js | 77 | ||||
-rw-r--r-- | javascripts/init.js | 2 |
3 files changed, 111 insertions, 0 deletions
diff --git a/javascripts/; b/javascripts/; new file mode 100644 index 0000000..958b6fd --- /dev/null +++ b/javascripts/; @@ -0,0 +1,32 @@ +function RegexParser(str) { + this.str = str; +} + +RegexParser.prototype.parse = function() { + for (var i = 0; i < this.str.length; i++) { + switch(this.str[i]) { + case '(': + break; + case '|': + break; + case ')': + break + case '*': + break + + default: + //alert(this.str[i]); + } + }; +} + + +function State() { + +} + +function Nfa { + +} + + diff --git a/javascripts/RegexVis.js b/javascripts/RegexVis.js new file mode 100644 index 0000000..c14f52f --- /dev/null +++ b/javascripts/RegexVis.js @@ -0,0 +1,77 @@ +/* + * RegexParser + * + */ +function RegexParser(str) { + this.str = str; +} + +RegexParser.prototype.parse = function() { + for (var i = 0; i < this.str.length; i++) { + switch(this.str[i]) { + case '(': + break; + case '|': + break; + case ')': + break + case '*': + break + + default: + //alert(this.str[i]); + } + }; +} + + +/* + * State + * + */ +function State(symbol) { + if(!symbol) { + symbol = '#'; + } + this.symbol = symbol; + this.followUps = []; + this.marked = false; +} + +State.prototype.mark = function(b) { + this.marked = b; +} + +State.prototype.setFollowUp = function(index, state) { + if (!((index == 0) || (index==1)) ) return; + this.followUps[index] = state; +} + + +/* + * Nfa + * + */ +function Nfa(symbol) { + this.startState; + this.endState; + if (symbol) { + this.startState = new State(symbol); + this.endState = new State(false); + this.startState.setFollowUp(0, this.endState); + } +} + +Nfa.prototype.concatination = function(nfa) { + this.endState.setFollowUp(0, nfa); + this.endState = nfa.endState; +} + +Nfa.prototype.union = function(nfa) { + var s0 = new State(); + var s1 = new State(); + + s0.setFollowUp(0, ); + s1.setFollowUp(1, ); +} + diff --git a/javascripts/init.js b/javascripts/init.js new file mode 100644 index 0000000..d405f2c --- /dev/null +++ b/javascripts/init.js @@ -0,0 +1,2 @@ +var a = new RegexParser('(a|b)*'); +a.parse(); |