diff options
Diffstat (limited to 'javascripts/uifunc.js')
-rw-r--r-- | javascripts/uifunc.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/javascripts/uifunc.js b/javascripts/uifunc.js new file mode 100644 index 0000000..48d0095 --- /dev/null +++ b/javascripts/uifunc.js @@ -0,0 +1,61 @@ +// +function checkLength(el, bId) { + if(el.value.length > 0) { + enable(bId); + } else { + disable(bId); + }; +}; + +// +function enable(id) { + $(id).removeAttr("disabled"); +}; + +// +function disable(id) { + $(id).attr("disabled","disabled"); +}; + +// +function uiParse() { + var parser = new RegexParser(); + nfa = parser.parse($('#regex').attr('value')); + $('#parseMessage').html('Parse: '+parser.getErrorMessage()); + if (parser.getErrorMessage() != 'Ok') { + $('#parseMessage').removeClass('success'); + $('#parseMessage').addClass('failure'); + $('#regex').addClass('failure'); + } else { + $('#parseMessage').removeClass('failure'); + $('#regex').removeClass('failure'); + $('#parseMessage').addClass('success'); + $('#regex').addClass('success'); + enable('#word'); + var dfa = new Nfa2Dfa(nfa); + var ttable = dfa.do(); + graph(); + disable('#parseButton'); + }; + $('#parseMessage').effect("highlight", {}, 1000); +}; + +// +function uiSimulate() { + var simulator = new NfaSimulator(nfa); + var check = simulator.simulate($('#word').attr('value')); + if (!check) { + $('#checkMessage').html('Word not accepted'); + $('#checkMessage').removeClass('success'); + $('#word').removeClass('success'); + $('#checkMessage').addClass('failure'); + $('#word').addClass('failure'); + } else { + $('#checkMessage').html('Word accepted'); + $('#checkMessage').removeClass('failure'); + $('#word').removeClass('failure'); + $('#checkMessage').addClass('success'); + $('#word').addClass('success'); + }; + $('#checkMessage').effect("highlight", {}, 1000); +}; |