From 28fa5c6f101643212dd5a712da0b51167fa082dc Mon Sep 17 00:00:00 2001 From: Patrick Simianer
Date: Sat, 8 May 2010 00:38:17 +0200 Subject: some work done... --- javascripts/; | 32 +++++++++++++++++++ javascripts/RegexVis.js | 77 ++++++++++++++++++++++++++++++++++++++++++++++ javascripts/init.js | 2 ++ regexvis.html | 23 ++++++++++++++ resources/RegExSource.zip | Bin 0 -> 8691 bytes stylesheets/RegexVis.css | 0 6 files changed, 134 insertions(+) create mode 100644 javascripts/; create mode 100644 javascripts/RegexVis.js create mode 100644 javascripts/init.js create mode 100644 regexvis.html create mode 100644 resources/RegExSource.zip create mode 100644 stylesheets/RegexVis.css 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(); diff --git a/regexvis.html b/regexvis.html new file mode 100644 index 0000000..f68ac53 --- /dev/null +++ b/regexvis.html @@ -0,0 +1,23 @@ + + +
+ + + + + +