UNPKG

mmir-lib

Version:

MMIR (Mobile Multimodal Interaction and Relay) library

2 lines 42.6 kB
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof module&&module.exports?module.exports=r():e.JSCC=r()}("undefined"!=typeof window?window:"undefined"!=typeof self?self:"undefined"!=typeof global?global:this,function(){function g(e){console.log("JS/CC loaded/finished! "+(null!=e?"number"==typeof e?0<e?"number of ERRORs "+e:"":"ERROR "+e:""))}var r=[],t=[];function n(e){s&&console.error("JS/CC ERROR: "+e)}function a(e){u&&console.warn("JS/CC WARNING: "+e)}function o(e){console.log("JS/CC INFO: "+e)}function l(e){console.log("JS/CC ALERT: "+e)}var v,_,A,C,m,S,E,w,s,y,u,p,b,k,c,R,h,L,T=o,x=l,d=n,f=a,P=function(e){++w,r.push(e),d(e)},I=function(e){++y,t.push(e),f(e)},N="0.30",O=0,j=1,M=0,F=1,J=2,W=0,D=1,G=2,H=3,U="%% = %1;",B=0,Y=1,$=2,q=0,V=0,X=255,z=0,K=1,Q=2;function Z(){}function ee(){}function re(){}function te(){}function ne(){}function ae(){}function oe(){}function le(e,r,t){var n;if(0!=t.length){for(e==$?(T('<table class="debug" cellpadding="0" cellspacing="0">'),T("<tr>"),T('<td class="tabtitle" colspan="2">'+r+"</td>"),T("</tr>"),T("<tr>"),T('<td class="coltitle" width="35%">Lookahead</td>'),T('<td class="coltitle" width="65%">Production</td>'),T("</tr>")):e==B&&T("--- "+r+" ---"),n=0;n<t.length;n++)if(e==$){for(T("<tr>"),T("<td>"),o=0;o<t[n].lookahead.length;o++)T(" <b>"+v[t[n].lookahead[o]].label+"</b> ");for(T("</td>"),T("<td>"),T(v[_[t[n].prod].lhs].label+" -&gt; "),o=0;o<_[t[n].prod].rhs.length;o++)o==t[n].dot_offset&&T("."),v[_[t[n].prod].rhs[o]].kind==j?T(" <b>"+v[_[t[n].prod].rhs[o]].label+"</b> "):T(" "+v[_[t[n].prod].rhs[o]].label+" ");o==t[n].dot_offset&&T("."),T("</td>"),T("</tr>")}else if(e==B){for(var a=new String,o=(a+=v[_[t[n].prod].lhs].label).length;o<20;o++)a+=" ";for(a+=" -> ",o=0;o<_[t[n].prod].rhs.length;o++)o==t[n].dot_offset&&(a+="."),v[_[t[n].prod].rhs[o]].kind==j?a+=" #"+v[_[t[n].prod].rhs[o]].label+" ":a+=" "+v[_[t[n].prod].rhs[o]].label+" ";for(o==t[n].dot_offset&&(a+="."),o=a.length;o<60;o++)a+=" ";for(a+="{ ",o=0;o<t[n].lookahead.length;o++)a+="#"+v[t[n].lookahead[o]].label+" ";T(a+="}")}e==$&&T("</table>")}}function se(){var e=0;do{for(var r=e,e=0,t=0;t<v.length;t++)if(v[t].kind==O)for(var n=0;n<v[t].prods.length;n++){for(var a=!1,o=0;o<_[v[t].prods[n]].rhs.length&&(v[t].first=Se(v[t].first,v[_[v[t].prods[n]].rhs[o]].first),a=v[_[v[t].prods[n]].rhs[o]].nullable);o++);e+=v[t].first.length,o==_[v[t].prods[n]].rhs.length&&(a=!0),v[t].nullable|=a}}while(e!=r)}function ce(e){var r,t,n,a=new String,o=0;for(e==$?(a+='<table class="print" cellpadding="0" cellspacing="0">',a+="<tr>",a+='<td class="tabtitle" colspan="2">Pop-Table</td>',a+="</tr>",a+='<td class="coltitle" width="1%" style="border-right: 1px solid lightgray;">Left-hand side</td>',a+='<td class="coltitle">Number of symbols to pop</td>',a+="</tr>"):e==Y&&(a+="/* Pop-Table */\n",a+="var pop_tab = new Array(\n"),r=0;r<_.length;r++)e==$?(a+="<tr>",a+='<td style="border-right: 1px solid lightgray;">'+_[r].lhs+"</td>",a+="<td>"+_[r].rhs.length+"</td>",a+="</tr>"):e==Y&&(a+="\tnew Array( "+_[r].lhs+"/* "+v[_[r].lhs].label+" */, "+_[r].rhs.length+" )"+(r<_.length-1?",\n":"\n"));if(e==$?a+="</table>":e==Y&&(a+=");\n\n"),e==$){for(r=0;r<v.length;r++)v[r].kind==j&&o++;for(a+='<table class="print" cellpadding="0" cellspacing="0">',a+="<tr>",a+='<td class="tabtitle" colspan="'+(o+1)+'">Action-Table</td>',a+="</tr>",a+='<td class="coltitle" width="1%" style="border-right: 1px solid lightgray;">State</td>',r=0;r<v.length;r++)v[r].kind==j&&(a+="<td><b>"+v[r].label+"</b></td>");for(a+="</tr>",r=0;r<A.length;r++){for(a+="<tr>",a+='<td class="coltitle" style="border-right: 1px solid lightgray;">'+r+"</td>",t=0;t<v.length;t++)v[t].kind==j&&(a+="<td>",null!=(n=pe(A[r].actionrow,t))&&(a+=n<=0?"r"+-1*n:"s"+n),a+="</td>");a+="</tr>"}a+="</table>"}else if(e==Y){for(a+="/* Action-Table */\n",a+="var act_tab = new Array(\n",r=0;r<A.length;r++){for(a+="\t/* State "+r+" */ new Array( ",t=0;t<A[r].actionrow.length;t++)a+=A[r].actionrow[t][0]+'/* "'+v[A[r].actionrow[t][0]].label+'" */,'+A[r].actionrow[t][1]+(t<A[r].actionrow.length-1?" , ":"");a+=" )"+(r<A.length-1?",\n":"\n")}a+=");\n\n"}if(e==$){for(r=0;r<v.length;r++)v[r].kind==O&&o++;for(a+='<table class="print" cellpadding="0" cellspacing="0">',a+="<tr>",a+='<td class="tabtitle" colspan="'+(o+1)+'">Goto-Table</td>',a+="</tr>",a+='<td class="coltitle" width="1%" style="border-right: 1px solid lightgray;">State</td>',r=0;r<v.length;r++)v[r].kind==O&&(a+="<td>"+v[r].label+"</td>");for(a+="</tr>",r=0;r<A.length;r++){for(a+="<tr>",a+='<td class="coltitle" style="border-right: 1px solid lightgray;">'+r+"</td>",t=0;t<v.length;t++)v[t].kind==O&&(a+="<td>",null!=(n=pe(A[r].gotorow,t))&&(a+=n),a+="</td>");a+="</tr>"}a+="</table>"}else if(e==Y){for(a+="/* Goto-Table */\n",a+="var goto_tab = new Array(\n",r=0;r<A.length;r++){for(a+="\t/* State "+r+" */",a+=" new Array( ",t=0;t<A[r].gotorow.length;t++)a+=A[r].gotorow[t][0]+"/* "+v[A[r].gotorow[t][0]].label+" */,"+A[r].gotorow[t][1]+(t<A[r].gotorow.length-1?" , ":"");a+=" )"+(r<A.length-1?",\n":"\n")}a+=");\n\n"}return a}function he(e){var r,t,n,a,o,l,s=new String;for(s+="switch( state )\n",s+="{\n",r=0;r<e.length;r++){for(s+="\tcase "+r+":\n",l=!0,t=0;t<e.length;t++){for(a=-1,o=!0,n=0;n<e[r].line.length+1;n++)n<e[r].line.length&&e[r].line[n]==t?-1==a&&(a=n):-1<a&&(o?(s+="\t\t",l||(s+="else "),s+="if( ",l=o=!1):s+=" || ",s+=a==n-1?"info.src.charCodeAt( pos ) == "+a:"( info.src.charCodeAt( pos ) >= "+a+" && info.src.charCodeAt( pos ) <= "+(n-1)+" )",a=-1,n--);o||(s+=" ) state = "+t+";\n")}s+="\t\t",l||(s+="else "),s+="state = -1;\n",-1<e[r].accept&&(s+="\t\tmatch = "+e[r].accept+";\n",s+="\t\tmatch_pos = pos;\n"),s+="\t\tbreak;\n\n"}return s+="}\n\n"}function ie(){var e,r=new String;for(r+="/* Symbol labels */\n",r+="var labels = new Array(\n",e=0;e<v.length;e++)r+='\t"'+v[e].label+'" ',v[e].kind==j?r+="/* Terminal symbol */":r+="/* Non-terminal symbol */",e<v.length-1&&(r+=","),r+="\n";return r+=");\n\n"}function de(){var e,r,t,n,a=new String,o=new RegExp("%match|%offset|%source"),l=0;for(a+="switch( match )\n",a+="{\n",e=0;e<v.length;e++)if(v[e].kind==j&&""!=v[e].code){for(a+="\tcase "+e+":\n",a+="\t\t{\n",t=new String,r=0;r<v[e].code.length;r++,0)(n=o.exec(v[e].code.substr(r,v[e].code.length)))&&0==n.index?("%match"==n[0]?t+="info.att":"%offset"==n[0]?t+="( info.offset - info.att.length )":"%source"==n[0]&&(t+="info.src"),r+=n[0].length-1,t.length):t+=v[e].code.charAt(r);a+="\t\t"+t+"\n",a+="\t\t}\n",a+="\t\tbreak;\n\n",l++}return a+="}\n\n",0==l?new String:a}function fe(){var e,r,t,n,a,o=new String,l=new RegExp("%[0-9]+|%%");for(o+="switch( act )\n",o+="{\n",t=0;t<_.length;t++){for(o+="\tcase "+t+":\n",o+="\t{\n",e=new String,n=0;n<_[t].code.length;n++,0)(r=l.exec(_[t].code.substr(n,_[t].code.length)))&&0==r.index?("%%"==r[0]?e+="rval":(a=parseInt(r[0].substr(1,r[0].length)),e+="vstack[ vstack.length - "+(_[t].rhs.length-a+1)+" ]"),n+=r[0].length-1,e.length):e+=_[t].code.charAt(n);o+="\t\t"+e+"\n",o+="\t}\n",o+="\tbreak;\n"}return o+="}\n\n"}function ge(){for(var e=-1,r=0;r<v.length;r++)if(v[r].special==F){e=r;break}return-1==e&&P("No EOF-symbol defined - This might not be possible (bug!)"),e}function Ae(){return A.length+1}function e(){return m}function we(){var e=new te;return e.kernel=new Array,e.epsilon=new Array,e.actionrow=new Array,e.gotorow=new Array,e.done=!1,e.closed=!1,A.push(e),e}function ye(e){var r=new re;return r.prod=e,r.dot_offset=0,r.lookahead=new Array,r}function ue(e,r,t){for(var n=0;n<e.length;n++)if(e[n][0]==r)return e;return e.push(new Array(r,t)),e}function pe(e,r){for(var t=0;t<e.length;t++)if(e[t][0]==r)return e[t][1]}function be(e,r,t){t=t||M;for(var n=0;n<v.length;n++)if(v[n].label.toString()==e.toString()&&v[n].kind==r&&v[n].special==t)return n;return-1}function Ce(e,r,t){if(-1<(n=be(e,r,t)))return v[n].id;var n=new Z;return n.label=e,n.kind=r,n.prods=new Array,n.nullable=!1,n.id=v.length,n.code=new String,n.assoc=W,n.level=0,n.special=t,n.defined=!1,n.first=new Array,r==j&&n.first.push(n.id),v.push(n),n.id}function ke(e,r){for(var t,n,a,o,l=0,s=0;s<e.length;s++)if(e[s].dot_offset<_[e[s].prod].rhs.length&&v[_[e[s].prod].rhs[e[s].dot_offset]].kind==O)for(t=0;t<v[_[e[s].prod].rhs[e[s].dot_offset]].prods.length;t++){for(n=0;n<r.length&&r[n].prod!=v[_[e[s].prod].rhs[e[s].dot_offset]].prods[t];n++);n==r.length&&(o=ye(v[_[e[s].prod].rhs[e[s].dot_offset]].prods[t]),r.push(o),l++),a=r[n].lookahead.length,function(e,r,t){for(var n=!0,a=t;a<r.rhs.length&&(e.lookahead=Se(e.lookahead,v[r.rhs[a]].first),n=!v[r.rhs[a]].nullable?!1:n);a++);return n}(r[n],_[e[s].prod],e[s].dot_offset+1)&&(r[n].lookahead=Se(r[n].lookahead,e[s].lookahead)),l+=r[n].lookahead.length-a}return l}function ve(e){for(var r,t,n,a,o,l,s,c=new Array,h=0;h=ke(0==(l=h)?A[e].kernel:c,c),h!=l;);for(a=0;a<A[e].kernel.length;a++)if(A[e].kernel[a].dot_offset<_[A[e].kernel[a].prod].rhs.length)for(c.unshift(new re),c[0].prod=A[e].kernel[a].prod,c[0].dot_offset=A[e].kernel[a].dot_offset,c[0].lookahead=new Array,o=0;o<A[e].kernel[a].lookahead.length;o++)c[0].lookahead[o]=A[e].kernel[a].lookahead[o];for(a=0;a<c.length;a++)if(0==_[c[a].prod].rhs.length){for(o=0;o<A[e].epsilon.length&&(A[e].epsilon[o].prod!=c[a].prod||A[e].epsilon[o].dot_offset!=c[a].dot_offset);o++);o==A[e].epsilon.length&&A[e].epsilon.push(c[a]),c.splice(a,1)}for(;0<c.length;){for(t=new Array,r=new Array,n=-1,a=0;a<c.length;a++)0==t.length&&(n=_[c[a].prod].rhs[c[a].dot_offset]),c[a].dot_offset<_[c[a].prod].rhs.length&&(_[c[a].prod].rhs[c[a].dot_offset]==n?(c[a].dot_offset++,t.push(c[a])):r.push(c[a]));if(0<t.length){for(a=0;a<A.length&&!function(e,r){var t,n,a=0;if(e.length==r.length){for(t=0;t<e.length;t++)for(n=0;n<r.length;n++)if(e[t].prod==r[n].prod&&e[t].dot_offset==r[n].dot_offset){a++;break}return a==e.length}}(A[a].kernel,t);a++);for(a==A.length&&(we().kernel=t),o=h=s=0;o<t.length;o++)s+=A[a].kernel[o].lookahead.length,A[a].kernel[o].lookahead=Se(A[a].kernel[o].lookahead,t[o].lookahead),h+=A[a].kernel[o].lookahead.length;if(s!=h&&(A[a].done=!1),!A[e].closed)for(o=0;o<t.length;o++)t[o].dot_offset-1<_[t[o].prod].rhs.length&&(v[_[t[o].prod].rhs[t[o].dot_offset-1]].kind==j?(A[e].actionrow=ue(A[e].actionrow,_[t[o].prod].rhs[t[o].dot_offset-1],a),p++):(A[e].gotorow=ue(A[e].gotorow,_[t[o].prod].rhs[t[o].dot_offset-1],a),k++))}c=r}A[e].closed=!0}function _e(e,r){for(var t,n=0;n<e.length;n++)if(e[n].dot_offset==_[e[n].prod].rhs.length)for(t=0;t<e[n].lookahead.length;t++){var a,o,l=!0,s=o=pe(A[r].actionrow,e[n].lookahead[t]);null==o?(A[r].actionrow=ue(A[r].actionrow,e[n].lookahead[t],-1*e[n].prod),b++):(a=new String,a=0<o?((0<v[e[n].lookahead[t]].level||0<_[e[n].prod].level)&&(v[e[n].lookahead[t]].level==_[e[n].prod].level?v[e[n].lookahead[t]].assoc==D?s=-1*e[n].prod:v[e[n].lookahead[t]].assoc==H&&(function(e,r){for(var t=0;t<e.length;t++)if(e[t][0]==r)return e.splice(t,1)}(A[r].actionrow,e[n].lookahead[t]),I("Removing nonassociative symbol '"+v[e[n].lookahead[t]].label+"' in state "+r),l=!1):v[e[n].lookahead[t]].level<_[e[n].prod].level&&(s=-1*e[n].prod)),"Shift"):(s=-1*s<e[n].prod?s:-1*e[n].prod,"Reduce"),a+="-reduce conflict on symbol '"+v[e[n].lookahead[t]].label+"' in state "+r,a+="\n Conflict resolved by "+(s<=0?"reducing with production":"shifting to state")+" "+(s<=0?-1*s:s),l&&I(a),s!=o&&function(e,r,t){for(var n=0;n<e.length;n++)if(e[n][0]==r)return e[n][1]=t}(A[r].actionrow,e[n].lookahead[t],s))}}function me(e){var r,t=ye(0),n=Ce("$",j,F);for(t.lookahead.push(n),(n=we()).kernel.push(t);0<=(r=function(){for(var e=0;e<A.length;e++)if(0==A[e].done)return e;return-1}());)A[r].done=!0,ve(r);for(r=0;r<A.length;r++)_e(A[r].kernel,r),_e(A[r].epsilon,r);if(e){for(r=0;r<A.length;r++)le(c==q?B:$,"states["+r+"].kernel",A[r].kernel),le(c==q?B:$,"states["+r+"].epsilon",A[r].epsilon);T(A.length+" States created.")}}function Se(e,r){for(var t,n=0;n<r.length;n++){for(t=0;t<e.length&&r[n]!=e[t];t++);t==e.length&&e.push(r[n])}return e}function Ee(e){R=1,c=e,v=new Array,_=new Array,A=new Array,C=new Array,new Array,new Array,Ce("",O,M),v[0].defined=!0,(e=new ee).lhs=0,e.rhs=new Array,e.code=new String("%% = %1;"),v[0].prods.push(_.length),_.push(e),m=-1,u=!(s=!(w=0)),h=k=b=p=y=0,S=new String,E=new String}function Re(e,r,t){return(e||!(r<0))&&(t?e[Math.floor(r/8)]|=1<<r%8:e[Math.floor(r/8)]&=255^1<<r%8,1)}function Le(e,r){return(e||!(r<0))&&e[Math.floor(r/8)]&1<<r%8}function Te(){for(var e=0;e<v.length;e++)v[e].kind==O&&0==v[e].defined&&P('Call to undefined non-terminal "'+v[e].label+'"')}function xe(){for(var e,r,t,n=new Array,a=new Array,o=0;o<v.length&&v[o].kind!=O;o++);if(o!=v.length){for(n.push(o),a.push(o);0<n.length;)for(o=n.pop(),e=0;e<v[o].prods.length;e++)for(r=0;r<_[v[o].prods[e]].rhs.length;r++)if(v[_[v[o].prods[e]].rhs[r]].kind==O){for(t=0;t<a.length&&a[t]!=_[v[o].prods[e]].rhs[r];t++);t==a.length&&(n.push(_[v[o].prods[e]].rhs[r]),a.push(_[v[o].prods[e]].rhs[r]))}for(o=0;o<v.length;o++)if(v[o].kind==O){for(e=0;e<a.length&&a[e]!=o;e++);e==a.length&&I('Unreachable non-terminal "'+v[o].label+'"')}}}function Pe(e){var r=new ae;return r.line=new Array(X),r.accept=-1,r.nfa_set=new Array,r.done=!1,r.group=-1,e.push(r),e.length-1}function Ie(e,r,t){for(var n,a=new Array;r[n=e.pop()].edge==Q&&Le(r[n].ccl,t)&&a.push(r[n].follow),0<e.length;);return a}function Ne(e,r){for(var t,n=new Array,a=new Array,o=0;o<e.length;o++)n.push(e[o]);do{if(0<=r[t=n.pop()].accept&&a.push(r[t].accept),r[t].edge==K){if(-1<r[t].follow){for(o=0;o<e.length&&e[o]!=r[t].follow;o++);o==e.length&&(e.push(r[t].follow),n.push(r[t].follow))}if(-1<r[t].follow2){for(o=0;o<e.length&&e[o]!=r[t].follow2;o++);o==e.length&&(e.push(r[t].follow2),n.push(r[t].follow2))}}}while(0<n.length);return a.sort()}function Oe(e){var r,t=new Array,n=new Array,a=Pe(t),o=-1;if(0==e.length)return t;for(n.push(0),Ne(n,e),t[a].nfa_set=t[a].nfa_set.concat(n);-1<(a=function(e){for(var r=0;r<e.length;r++)if(!e[r].done)return r;return-1}(t));){t[a].done=!0;for(var l=-1,s=0;s<t[a].nfa_set.length;s++)(-1<e[t[a].nfa_set[s]].accept&&e[t[a].nfa_set[s]].weight<l||-1==l)&&(t[a].accept=e[t[a].nfa_set[s]].accept,l=e[t[a].nfa_set[s]].weight);for(s=V;s<X;s++)0<(r=Ie(r=(r=new Array).concat(t[a].nfa_set),e,s)).length&&Ne(r,e),0==r.length?o=-1:-1==(o=function(e,r){for(var t,n=0;n<e.length;n++)if(e[n].nfa_set.length==r.length){for(t=0;t<e[n].nfa_set.length&&e[n].nfa_set[t]==r[t];t++);if(t==e[n].nfa_set.length)return n}return-1}(t,r))&&(t[o=Pe(t)].nfa_set=r),t[a].line[s]=o}return t}function je(e){var r,t,n,a,o,l=new Array,s=(new Array,new Array),c=new Array,h=0;if(0==e.length)return c;for(l.push(new Array),n=0;n<e.length;n++)if(-1<e[n].accept){for(a=0;a<s.length&&s[a]!=e[n].accept;a++);a==s.length&&(s.push(e[n].accept),l.push(new Array)),l[a+1].push(n),e[n].group=a+1}else l[0].push(n),e[n].group=0;do{for(r=h,n=0;n<l.length;n++){if(t=new Array,0<l[n].length)for(a=1;a<l[n].length;a++)for(o=V;o<X;o++)if(e[l[n][0]].line[o]!=e[l[n][a]].line[o]&&(-1==e[l[n][0]].line[o]||-1==e[l[n][a]].line[o])||-1<e[l[n][0]].line[o]&&-1<e[l[n][a]].line[o]&&e[e[l[n][0]].line[o]].group!=e[e[l[n][a]].line[o]].group){e[l[n][a]].group=l.length,t=t.concat(l[n].splice(a,1)),a--;break}0<t.length&&(l[l.length]=new Array,l[l.length-1]=l[l.length-1].concat(t),h+=t.length)}}while(r!=h);for(n=0;n<e.length;n++)for(a=V;a<X;a++)-1<e[n].line[a]&&(e[n].line[a]=e[e[n].line[a]].group);for(n=0;n<l.length;n++)c.push(e[l[n][0]]);return c}var Me,Fe,Je,We=!1,De=new String;function Ge(e){De+=e+"\n"}function He(e){var r=0,t=-1,n=0,a=0,o=e.offset+1;do{if(o--,r=0,t=-2,e.src.length<=(a=o))return 32;do{switch(r){case 0:r=9<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=10||13==e.src.charCodeAt(o)||32==e.src.charCodeAt(o)?1:33==e.src.charCodeAt(o)?2:38==e.src.charCodeAt(o)?3:45==e.src.charCodeAt(o)||48<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=57||65<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=90||95==e.src.charCodeAt(o)||97<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=122?4:58==e.src.charCodeAt(o)?5:59==e.src.charCodeAt(o)?6:60==e.src.charCodeAt(o)?7:62==e.src.charCodeAt(o)?8:94==e.src.charCodeAt(o)?9:124==e.src.charCodeAt(o)?10:34==e.src.charCodeAt(o)?15:35==e.src.charCodeAt(o)?18:39==e.src.charCodeAt(o)?19:47==e.src.charCodeAt(o)?20:91==e.src.charCodeAt(o)?21:-1;break;case 1:r=-1,t=1,n=o;break;case 2:r=-1,t=6,n=o;break;case 3:r=-1,t=10,n=o;break;case 4:r=45==e.src.charCodeAt(o)||48<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=57||65<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=90||95==e.src.charCodeAt(o)||97<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=122?4:-1,t=14,n=o;break;case 5:r=-1,t=8,n=o;break;case 6:r=-1,t=7,n=o;break;case 7:r=-1,t=3,n=o;break;case 8:r=-1,t=4,n=o;break;case 9:r=-1,t=5,n=o;break;case 10:r=-1,t=9,n=o;break;case 11:r=-1,t=13,n=o;break;case 12:r=-1,t=2,n=o;break;case 13:r=-1,t=12,n=o;break;case 14:r=-1,t=11,n=o;break;case 15:r=34==e.src.charCodeAt(o)?11:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=33||35<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=91||93<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?15:92==e.src.charCodeAt(o)?22:-1;break;case 16:r=34==e.src.charCodeAt(o)?11:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=33||35<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=91||93<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?15:92==e.src.charCodeAt(o)?22:-1,t=13,n=o;break;case 17:r=39==e.src.charCodeAt(o)?13:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=38||40<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=91||93<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?19:92==e.src.charCodeAt(o)?23:-1,t=12,n=o;break;case 18:r=35==e.src.charCodeAt(o)?12:-1;break;case 19:r=39==e.src.charCodeAt(o)?13:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=38||40<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=91||93<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?19:92==e.src.charCodeAt(o)?23:-1;break;case 20:r=126==e.src.charCodeAt(o)?24:-1;break;case 21:r=42==e.src.charCodeAt(o)?32:-1;break;case 22:r=0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=33||35<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=91||93<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?15:34==e.src.charCodeAt(o)?16:92==e.src.charCodeAt(o)?22:-1;break;case 23:r=39==e.src.charCodeAt(o)?17:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=38||40<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=91||93<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?19:92==e.src.charCodeAt(o)?23:-1;break;case 24:r=47==e.src.charCodeAt(o)?25:126==e.src.charCodeAt(o)?26:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=46||48<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=125||127<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?33:-1;break;case 25:r=47==e.src.charCodeAt(o)?24:-1;break;case 26:r=47==e.src.charCodeAt(o)?1:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=46||48<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?24:-1;break;case 27:r=0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=41||43<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?27:42==e.src.charCodeAt(o)?28:-1;break;case 28:r=93==e.src.charCodeAt(o)?14:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=92||94<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?31:-1;break;case 29:r=93==e.src.charCodeAt(o)?31:-1;break;case 30:r=126==e.src.charCodeAt(o)?26:47==e.src.charCodeAt(o)?30:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=46||48<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=125||127<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?33:-1;break;case 31:case 32:r=0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=41||43<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=92||94<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?27:42==e.src.charCodeAt(o)?28:93==e.src.charCodeAt(o)?29:-1;break;case 33:r=126==e.src.charCodeAt(o)?26:47==e.src.charCodeAt(o)?30:0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=46||48<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=125||127<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?33:-1}}while(o++,-1<r)}while(1==t);return-1<t?(e.att=e.src.substr(a,n-a),e.offset=n):(e.att=new String,t=-1),t}function Ue(e,r){var t=new Array,n=new Array,a=0;if(L=!0,0<(a+=function(e,r,t){var n,a=new Array,o=new Array,l=0,s=new new Function("","var offset; var src; var att;"),c=new Array(new Array(0,1),new Array(19,5),new Array(15,1),new Array(18,1),new Array(16,2),new Array(16,0),new Array(21,3),new Array(21,3),new Array(21,3),new Array(21,2),new Array(21,2),new Array(22,2),new Array(22,0),new Array(24,3),new Array(24,2),new Array(17,2),new Array(17,0),new Array(26,4),new Array(27,3),new Array(27,1),new Array(28,3),new Array(30,2),new Array(30,2),new Array(30,0),new Array(29,2),new Array(29,0),new Array(31,1),new Array(31,1),new Array(20,2),new Array(20,0),new Array(23,1),new Array(23,1),new Array(25,1)),h=new Array(new Array(3,-29,4,-29,5,-29,6,-29,7,-29,12,-29,13,-29,2,-29,11,-29),new Array(32,0),new Array(2,-5,3,-5,4,-5,5,-5,6,-5,7,-5,12,-5,13,-5),new Array(11,5,3,-2,4,-2,5,-2,6,-2,7,-2,12,-2,13,-2,2,-2),new Array(2,7,3,8,4,9,5,10,6,12,7,-12,12,-12,13,-12),new Array(3,-28,4,-28,5,-28,6,-28,7,-28,12,-28,13,-28,2,-28,11,-28,32,-28,9,-28),new Array(2,-4,3,-4,4,-4,5,-4,6,-4,7,-4,12,-4,13,-4),new Array(11,-16,32,-16,14,-16),new Array(7,-12,12,-12,13,-12),new Array(7,-12,12,-12,13,-12),new Array(7,-12,12,-12,13,-12),new Array(7,18,12,20,13,21),new Array(12,20,13,21),new Array(14,27,32,-29,11,-29),new Array(7,28,12,20,13,21),new Array(7,29,12,20,13,21),new Array(7,30,12,20,13,21),new Array(7,-11,12,-11,13,-11),new Array(2,-9,3,-9,4,-9,5,-9,6,-9,7,-9,12,-9,13,-9),new Array(14,27,7,-29,12,-29,13,-29,11,-29),new Array(14,-30,11,-30,7,-30,12,-30,13,-30,2,-30,3,-30,4,-30,5,-30,6,-30,10,-30,9,-30),new Array(14,-31,11,-31,7,-31,12,-31,13,-31,2,-31,3,-31,4,-31,5,-31,6,-31,10,-31,9,-31),new Array(2,-10,3,-10,4,-10,5,-10,6,-10,7,-10,12,-10,13,-10),new Array(11,-15,32,-15,14,-15),new Array(32,-1),new Array(11,5,32,-3),new Array(8,33),new Array(8,-32,11,-32,7,-32,12,-32,13,-32,10,-32,9,-32,14,-32),new Array(2,-6,3,-6,4,-6,5,-6,6,-6,7,-6,12,-6,13,-6),new Array(2,-7,3,-7,4,-7,5,-7,6,-7,7,-7,12,-7,13,-7),new Array(2,-8,3,-8,4,-8,5,-8,6,-8,7,-8,12,-8,13,-8),new Array(11,5,7,-14,12,-14,13,-14),new Array(7,-29,12,-29,13,-29,11,-29),new Array(10,-25,11,-25,7,-25,9,-25,14,-25,12,-25,13,-25),new Array(11,5,7,-13,12,-13,13,-13),new Array(9,38,7,39),new Array(7,-19,9,-19),new Array(10,42,14,27,12,20,13,21,11,-23,7,-23,9,-23),new Array(10,-25,11,-25,7,-25,9,-25,14,-25,12,-25,13,-25),new Array(11,-17,32,-17,14,-17),new Array(10,-24,11,-24,7,-24,9,-24,14,-24,12,-24,13,-24),new Array(7,-29,9,-29,11,-29),new Array(14,27,12,20,13,21),new Array(10,-26,11,-26,7,-26,9,-26,14,-26,12,-26,13,-26),new Array(10,-27,11,-27,7,-27,9,-27,14,-27,12,-27,13,-27),new Array(7,-18,9,-18),new Array(11,5,7,-20,9,-20),new Array(11,-22,7,-22,9,-22),new Array(11,-21,7,-21,9,-21)),i=new Array(new Array(19,1,15,2,20,3),new Array,new Array(16,4),new Array,new Array(21,6,22,11),new Array,new Array,new Array(17,13),new Array(22,14),new Array(22,15),new Array(22,16),new Array(24,17,23,19),new Array(23,22),new Array(26,23,18,24,20,25,25,26),new Array(24,17,23,19),new Array(24,17,23,19),new Array(24,17,23,19),new Array,new Array,new Array(20,31,25,32),new Array,new Array,new Array,new Array,new Array,new Array,new Array,new Array,new Array,new Array,new Array,new Array,new Array(20,34),new Array(27,35,28,36,29,37),new Array,new Array,new Array,new Array(31,40,30,41,25,43,23,44),new Array(28,45,29,37),new Array,new Array,new Array(20,46),new Array(23,47,25,48),new Array,new Array,new Array,new Array,new Array,new Array),d=new Array("def'","WHITESPACE","##","<",">","^","!",";",":","|","&","CODE","STRING_SINGLE","STRING_DOUBLE","IDENT","header_code","token_assocs","grammar_defs","footer_code","def","code","token_assoc","token_defs","string","token_def","identifier","grammar_def","productions","rhs","sequence","rhs_prec","symbol","$");for(s.offset=0,s.src=e,s.att=new String,r=r||new Array,t=t||new Array,a.push(0),o.push(0),n=He(s);;){y=50;for(var f,g=0;g<h[a[a.length-1]].length;g+=2)if(h[a[a.length-1]][g]==n){y=h[a[a.length-1]][g+1];break}if(We&&0<a.length&&Ge("\nState "+a[a.length-1]+"\n\tLookahead: "+d[n]+' ("'+s.att+'")\n\tAction: '+y+'\n\tSource: "'+s.src.substr(s.offset,30)+(s.offset+30<s.src.length?"...":"")+'"\n\tStack: '+a.join()+"\n\tValue stack: "+o.join()+"\n"),50==y){We&&Ge("Error detected: There is no reduce or shift on the symbol "+d[n]),l++,r.push(s.offset-s.att.length),t.push(new Array);for(g=0;g<h[a[a.length-1]].length;g+=2)t[t.length-1].push(d[h[a[a.length-1]][g]]);for(var A=new Array,w=new Array,g=0;g<a.length;g++)A[g]=a[g],w[g]=o[g];for(;50==y&&32!=n;){for(We&&Ge("\tError recovery\nCurrent lookahead: "+d[n]+" ("+s.att+")\nAction: "+y+"\n\n"),-1==n&&s.offset++;50==y&&0<a.length&&(a.pop(),o.pop(),0!=a.length);)for(var y=50,g=0;g<h[a[a.length-1]].length;g+=2)if(h[a[a.length-1]][g]==n){y=h[a[a.length-1]][g+1];break}if(50!=y)break;for(g=0;g<A.length;g++)a.push(A[g]),o.push(w[g]);n=He(s)}if(50==y){We&&Ge("\tError recovery failed, terminating parse process...");break}We&&Ge("\tError recovery succeeded, continuing")}if(0<y)We&&Ge("Shifting symbol: "+d[n]+" ("+s.att+")"),a.push(y),o.push(s.att),n=He(s),We&&Ge("\tNew lookahead symbol: "+d[n]+" ("+s.att+")");else{switch(y*=-1,We&&Ge("Reducing by producution: "+y),u=void 0,We&&Ge("\tPerforming semantic action..."),y){case 0:u=o[o.length-1];break;case 1:u=o[o.length-5];break;case 2:S+=o[o.length-1];break;case 3:E+=o[o.length-1];break;case 4:u=o[o.length-2];break;case 5:u=o[+o.length];break;case 6:R++;for(g=0;g<o[o.length-2].length;g++)v[o[o.length-2][g]].level=R,v[o[o.length-2][g]].assoc=D;break;case 7:R++;for(g=0;g<o[o.length-2].length;g++)v[o[o.length-2][g]].level=R,v[o[o.length-2][g]].assoc=G;break;case 8:R++;for(g=0;g<o[o.length-2].length;g++)v[o[o.length-2][g]].level=R,v[o[o.length-2][g]].assoc=H;break;case 9:u=o[o.length-2];break;case 10:-1==m?Xe(p=o[o.length-1].substr(1,o[o.length-1].length-2),m=Ce("WHITESPACE",j,J),"'"!=o[o.length-1].charAt(0)):P("Multiple whitespace definition");break;case 11:o[o.length-2].push(o[o.length-1]),u=o[o.length-2];break;case 12:u=new Array;break;case 13:var u=Ce(o[o.length-2],j,M),p=o[o.length-3].substr(1,o[o.length-3].length-2);v[u].code=o[o.length-1],Xe(p,v[u].id,"'"!=o[o.length-3].charAt(0));break;case 14:u=Ce((p=o[o.length-2].substr(1,o[o.length-2].length-2)).replace(/\\/g,""),j,M),v[u].code=o[o.length-1],Xe(p,v[u].id,"'"!=o[o.length-2].charAt(0));break;case 15:u=o[o.length-2];break;case 16:u=o[+o.length];break;case 17:var b=Ce(o[o.length-4],O,M);v[b].defined=!0;for(g=0;g<o[o.length-2].length;g++)_[o[o.length-2][g]].lhs=b,v[b].prods.push(o[o.length-2][g]);L&&(L=!1,v[0].label=v[b].label+"'",_[0].rhs.push(b));break;case 18:(u=(u=new Array).concat(o[o.length-3])).push(o[o.length-1]);break;case 19:(u=new Array).push(o[o.length-1]);break;case 20:var C=new ee;if(C.id=_.length,C.rhs=o[o.length-3],C.level=o[o.length-2],C.code=o[o.length-1],""==C.code&&(C.code=new String(U)),0==C.level&&0<C.rhs.length)for(g=C.rhs.length-1;0<=g;g--)if(v[C.rhs[g]].kind==j){C.level=v[C.rhs[g]].level;break}_.push(C),u=C.id;break;case 21:-1<(f=be(o[o.length-1],j,M))?u=v[f].level:P('Call to undefined terminal "'+o[o.length-1]+'"');break;case 22:-1<(f=be(o[o.length-1].substr(1,o[o.length-1].length-2).replace(/\\/g,""),j,M))?u=v[f].level:P('Call to undefined terminal "'+o[o.length-1]+'"');break;case 23:u=0;break;case 24:(u=(u=new Array).concat(o[o.length-2])).push(o[o.length-1]);break;case 25:u=new Array;break;case 26:u=-1<(f=be(o[o.length-1],j,M))?f:Ce(o[o.length-1],O,M);break;case 27:-1<(f=be(o[o.length-1].substr(1,o[o.length-1].length-2).replace(/\\/g,""),j,M))?u=f:P('Call to undefined terminal "'+o[o.length-1]+'"');break;case 28:u=o[o.length-2]+o[o.length-1].substr(2,o[o.length-1].length-4);break;case 29:u=new String;break;case 30:case 31:case 32:u=o[o.length-1]}We&&Ge("\tPopping "+c[y][1]+" off the stack...");for(g=0;g<c[y][1];g++)a.pop(),o.pop();for(var k=-1,g=0;g<i[a[a.length-1]].length;g+=2)if(i[a[a.length-1]][g]==c[y][0]){k=i[a[a.length-1]][g+1];break}if(0==y)break;We&&Ge("\tPushing non-terminal "+d[c[y][0]]),a.push(k),o.push(u)}We&&(x(De),De=new String)}return We&&(Ge("\nParse complete."),x(De)),l}(e,t,n)))for(i=0;i<a;i++)P(r+", line "+(e.substr(0,t[i]).match(/\n/g)?e.substr(0,t[i]).match(/\n/g).length:1)+': Parse error near "'+e.substr(t[i],30)+(t[i]+30<e.substr(t[i]).length?"...":"")+'", expecting "'+n[i].join()+'"')}function Be(e){for(var r,t=0;t<e.length&&e[t].edge!=z;t++);return t==e.length&&(r=new ne,e.push(r)),e[t].edge=K,e[t].ccl=(r=X)<=0?new Array:new Array(Math.ceil(r/8)),e[t].accept=-1,e[t].follow=-1,e[t].follow2=-1,e[t].weight=-1,Je.push(t),t}var Ye=!1,$e=new String;function qe(e){$e+=e+"\n"}function Ve(e){var r=0,t=-1,n=0,a=0,o=e.offset+1,r=0,t=-2;if(e.src.length<=(a=--o))return 21;do{switch(r){case 0:r=0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=39||44<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=45||47<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=62||64<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=90||94<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=123||125<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?1:40==e.src.charCodeAt(o)?2:41==e.src.charCodeAt(o)?3:42==e.src.charCodeAt(o)?4:43==e.src.charCodeAt(o)?5:46==e.src.charCodeAt(o)?6:63==e.src.charCodeAt(o)?7:91==e.src.charCodeAt(o)?8:93==e.src.charCodeAt(o)?9:124==e.src.charCodeAt(o)?10:92==e.src.charCodeAt(o)?13:-1;break;case 1:r=-1,t=12,n=o;break;case 2:r=-1,t=5,n=o;break;case 3:r=-1,t=6,n=o;break;case 4:r=-1,t=2,n=o;break;case 5:r=-1,t=3,n=o;break;case 6:r=-1,t=9,n=o;break;case 7:r=-1,t=4,n=o;break;case 8:r=-1,t=7,n=o;break;case 9:r=-1,t=8,n=o;break;case 10:r=-1,t=1,n=o;break;case 11:r=-1,t=11,n=o;break;case 12:r=48<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=57?12:-1,t=10,n=o;break;case 13:r=0<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=47||58<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=254?11:48<=e.src.charCodeAt(o)&&e.src.charCodeAt(o)<=57?12:-1,t=12,n=o}}while(o++,-1<r);return-1<t?(e.att=e.src.substr(a,n-a),e.offset=n):(e.att=new String,t=-1),t}function Xe(e,r,t){var n,a,o=new Array,l=new Array;if(""!=e)if(Je=new Array,Me=Be(C),0==(a=function(e,r,t){var n,a=new Array,o=new Array,l=0,s=new new Function("","var offset; var src; var att;"),c=new Array(new Array(0,1),new Array(14,1),new Array(13,3),new Array(13,1),new Array(15,2),new Array(15,1),new Array(16,2),new Array(16,2),new Array(16,2),new Array(16,1),new Array(17,1),new Array(17,1),new Array(17,3),new Array(19,3),new Array(19,1),new Array(20,2),new Array(20,0),new Array(18,1),new Array(18,1),new Array(18,1)),h=new Array(new Array(5,8,10,9,11,10,12,11,7,12,9,13),new Array(21,0),new Array(1,14,21,-1),new Array(5,8,10,9,11,10,12,11,7,12,9,13,21,-3,1,-3,6,-3),new Array(21,-5,1,-5,5,-5,10,-5,11,-5,12,-5,7,-5,9,-5,6,-5),new Array(4,16,3,17,2,18,21,-9,1,-9,5,-9,10,-9,11,-9,12,-9,7,-9,9,-9,6,-9),new Array(2,-10,3,-10,4,-10,21,-10,1,-10,5,-10,10,-10,11,-10,12,-10,7,-10,9,-10,6,-10),new Array(2,-11,3,-11,4,-11,21,-11,1,-11,5,-11,10,-11,11,-11,12,-11,7,-11,9,-11,6,-11),new Array(5,8,10,9,11,10,12,11,7,12,9,13),new Array(2,-17,3,-17,4,-17,21,-17,1,-17,5,-17,10,-17,11,-17,12,-17,7,-17,9,-17,6,-17,8,-17),new Array(2,-18,3,-18,4,-18,21,-18,1,-18,5,-18,10,-18,11,-18,12,-18,7,-18,9,-18,6,-18,8,-18),new Array(2,-19,3,-19,4,-19,21,-19,1,-19,5,-19,10,-19,11,-19,12,-19,7,-19,9,-19,6,-19,8,-19),new Array(8,-16,10,-16,11,-16,12,-16),new Array(2,-14,3,-14,4,-14,21,-14,1,-14,5,-14,10,-14,11,-14,12,-14,7,-14,9,-14,6,-14),new Array(5,8,10,9,11,10,12,11,7,12,9,13),new Array(21,-4,1,-4,5,-4,10,-4,11,-4,12,-4,7,-4,9,-4,6,-4),new Array(21,-8,1,-8,5,-8,10,-8,11,-8,12,-8,7,-8,9,-8,6,-8),new Array(21,-7,1,-7,5,-7,10,-7,11,-7,12,-7,7,-7,9,-7,6,-7),new Array(21,-6,1,-6,5,-6,10,-6,11,-6,12,-6,7,-6,9,-6,6,-6),new Array(1,14,6,22),new Array(8,24,10,9,11,10,12,11),new Array(5,8,10,9,11,10,12,11,7,12,9,13,21,-2,1,-2,6,-2),new Array(2,-12,3,-12,4,-12,21,-12,1,-12,5,-12,10,-12,11,-12,12,-12,7,-12,9,-12,6,-12),new Array(8,-15,10,-15,11,-15,12,-15),new Array(2,-13,3,-13,4,-13,21,-13,1,-13,5,-13,10,-13,11,-13,12,-13,7,-13,9,-13,6,-13)),i=new Array(new Array(14,1,13,2,15,3,16,4,17,5,18,6,19,7),new Array,new Array,new Array(16,15,17,5,18,6,19,7),new Array,new Array,new Array,new Array,new Array(13,19,15,3,16,4,17,5,18,6,19,7),new Array,new Array,new Array,new Array(20,20),new Array,new Array(15,21,16,4,17,5,18,6,19,7),new Array,new Array,new Array,new Array,new Array,new Array(18,23),new Array(16,15,17,5,18,6,19,7),new Array,new Array,new Array),d=new Array("RegEx'","|","*","+","?","(",")","[","]","ANY_CHAR","ASCII_CODE","ESCAPED_CHAR","ANY","Expression","RegEx","Catenation","Factor","Term","Character","CharacterSet","CharClass","$");for(s.offset=0,s.src=e,s.att=new String,r=r||new Array,t=t||new Array,a.push(0),o.push(0),n=Ve(s);;){w=26;for(var f=0;f<h[a[a.length-1]].length;f+=2)if(h[a[a.length-1]][f]==n){w=h[a[a.length-1]][f+1];break}if(Ye&&0<a.length&&qe("\nState "+a[a.length-1]+"\n\tLookahead: "+d[n]+' ("'+s.att+'")\n\tAction: '+w+'\n\tSource: "'+s.src.substr(s.offset,30)+(s.offset+30<s.src.length?"...":"")+'"\n\tStack: '+a.join()+"\n\tValue stack: "+o.join()+"\n"),26==w){Ye&&qe("Error detected: There is no reduce or shift on the symbol "+d[n]),l++,r.push(s.offset-s.att.length),t.push(new Array);for(f=0;f<h[a[a.length-1]].length;f+=2)t[t.length-1].push(d[h[a[a.length-1]][f]]);for(var g=new Array,A=new Array,f=0;f<a.length;f++)g[f]=a[f],A[f]=o[f];for(;26==w&&21!=n;){for(Ye&&qe("\tError recovery\nCurrent lookahead: "+d[n]+" ("+s.att+")\nAction: "+w+"\n\n"),-1==n&&s.offset++;26==w&&0<a.length&&(a.pop(),o.pop(),0!=a.length);)for(var w=26,f=0;f<h[a[a.length-1]].length;f+=2)if(h[a[a.length-1]][f]==n){w=h[a[a.length-1]][f+1];break}if(26!=w)break;for(f=0;f<g.length;f++)a.push(g[f]),o.push(A[f]);n=Ve(s)}if(26==w){Ye&&qe("\tError recovery failed, terminating parse process...");break}Ye&&qe("\tError recovery succeeded, continuing")}if(0<w)Ye&&qe("Shifting symbol: "+d[n]+" ("+s.att+")"),a.push(w),o.push(s.att),n=Ve(s),Ye&&qe("\tNew lookahead symbol: "+d[n]+" ("+s.att+")");else{switch(w*=-1,Ye&&qe("Reducing by producution: "+w),y=void 0,Ye&&qe("\tPerforming semantic action..."),w){case 0:y=o[o.length-1];break;case 1:y=new oe,C[Me].follow=o[o.length-1].start,Fe=o[o.length-1].end;break;case 2:(y=new oe).start=Be(C),y.end=Be(C),C[y.start].follow=o[o.length-3].start,C[y.start].follow2=o[o.length-1].start,C[o[o.length-3].end].follow=y.end,C[o[o.length-1].end].follow=y.end;break;case 3:y=o[o.length-1];break;case 4:C[o[o.length-2].end].edge=C[o[o.length-1].start].edge,C[o[o.length-2].end].ccl=C[o[o.length-1].start].ccl,C[o[o.length-2].end].follow=C[o[o.length-1].start].follow,C[o[o.length-2].end].follow2=C[o[o.length-1].start].follow2,C[o[o.length-2].end].accept=C[o[o.length-1].start].accept,C[o[o.length-1].start].edge=z,o[o.length-2].end=o[o.length-1].end,y=o[o.length-2];break;case 5:y=o[o.length-1];break;case 6:(y=new oe).start=Be(C),y.end=Be(C),C[y.start].follow=o[o.length-2].start,C[o[o.length-2].end].follow=y.end,C[y.start].follow2=y.end,C[o[o.length-2].end].follow2=o[o.length-2].start;break;case 7:(y=new oe).start=Be(C),y.end=Be(C),C[y.start].follow=o[o.length-2].start,C[o[o.length-2].end].follow=y.end,C[o[o.length-2].end].follow2=o[o.length-2].start;break;case 8:(y=new oe).start=Be(C),y.end=Be(C),C[y.start].follow=o[o.length-2].start,C[y.start].follow2=y.end,C[o[o.length-2].end].follow=y.end;break;case 9:y=o[o.length-1];break;case 10:(y=new oe).start=Be(C),y.end=C[y.start].follow=Be(C),C[y.start].edge=Q,Re(C[y.start].ccl,o[o.length-1].charCodeAt(0),1);break;case 11:y=o[o.length-1];break;case 12:y=o[o.length-2];break;case 13:var y,u=!1,f=0;if((y=new oe).start=Be(C),y.end=C[y.start].follow=Be(C),C[y.start].edge=Q,"^"==o[o.length-2].charAt(f)){for(var u=!0,p=V;p<X;p++)Re(C[y.start].ccl,p,1);f++}for(;f<o[o.length-2].length;f++)if("-"==o[o.length-2].charAt(f+1)&&f+2<o[o.length-2].length)for(f++,p=o[o.length-2].charCodeAt(f-1);p<o[o.length-2].charCodeAt(f+1);p++)Re(C[y.start].ccl,p,u?0:1);else Re(C[y.start].ccl,o[o.length-2].charCodeAt(f),u?0:1);break;case 14:(y=new oe).start=Be(C),y.end=C[y.start].follow=Be(C),C[y.start].edge=Q;for(f=V;f<X;f++)Re(C[y.start].ccl,f,1);break;case 15:y=new String(o[o.length-2]+o[o.length-1]);break;case 16:y=new String;break;case 17:y=String.fromCharCode(o[o.length-1].substr(1));break;case 18:switch(o[o.length-1].substr(1)){case"n":y="\n";break;case"r":y="\r";break;case"t":y="\t";break;case"a":y="a";break;default:y=o[o.length-1].substr(1)}break;case 19:y=o[o.length-1]}Ye&&qe("\tPopping "+c[w][1]+" off the stack...");for(f=0;f<c[w][1];f++)a.pop(),o.pop();for(var b=-1,f=0;f<i[a[a.length-1]].length;f+=2)if(i[a[a.length-1]][f]==c[w][0]){b=i[a[a.length-1]][f+1];break}if(0==w)break;Ye&&qe("\tPushing non-terminal "+d[c[w][0]]),a.push(b),o.push(y)}Ye&&(x($e),$e=new String)}return Ye&&(qe("\nParse complete."),x($e)),l}(e,o,l))){if(t)for(n=0;n<Je.length;n++)if(C[Je[n]].edge==Q)for(c=V;c<X;c++)Le(C[Je[n]].ccl,c)&&(Re(C[Je[n]].ccl,String.fromCharCode(c).toUpperCase().charCodeAt(0),1),Re(C[Je[n]].ccl,String.fromCharCode(c).toLowerCase().charCodeAt(0),1));if(C[Fe].accept=r,C[Fe].weight=h++,0<Me){for(n=0;-1!=C[n].follow2;)n=C[n].follow2;C[n].follow2=Me}}else for(n=0;n<a;n++){for(var s=new String,c=0;c<o[n];c++)s+=" ";P('Regular expression "'+e+'"\n '+s+'^\n expecting "'+l[n].join()+'"')}}function ze(){var e=new String;e+="usage: jscc [options] filename\n\n",e+=" -h --help Print this usage help\n",e+=" -i --version Print version and copyright\n",e+=" -o --output <file> Save output source to <file>\n",e+=" -p --prefix <prefix> Use <prefix> as sequence pre-\n",e+=" fixing methods and variables\n",e+=" -t --template <file> Use template file <file> as\n",e+=" parser template\n",e+=" -v --verbose Run in verbose mode\n",T(e+=" -w --warnings Print warnings\n")}return{reset_all:Ee,EXEC_WEB:1,MODE_GEN_JS:Y,parse_grammar:Ue,undef:Te,unreachable:xe,first:se,print_symbols:function(e){e==$?(T('<table class="debug" cellpadding="0" cellspacing="0">'),T("<tr>"),T('<td class="tabtitle" colspan="3">Symbols Overview</td>'),T("</tr>"),T("<tr>"),T('<td class="coltitle">Symbol</td>'),T('<td class="coltitle">Type</td>'),T("</tr>")):e==B&&T("--- Symbol Dump ---");for(var r=0;r<v.length;r++)if(e==$)T("<tr>"),T("<td>"),T(v[r].label),T("</td>"),T("<td>"),T(v[r].kind==O?"Non-terminal":"Terminal"),T("</td>");else if(e==B){for(var t=new String,n=(t=v[r].label).length;n<20;n++)t+=" ";if(t+=v[r].kind==O?"Non-terminal":"Terminal",v[r].kind==j){for(n=t.length;n<40;n++)t+=" ";switch(t+=v[r].level+"/",v[r].assoc){case W:t+="^";break;case D:t+="<";break;case G:t+=">"}}T(t)}e==$?T("</table>"):e==B&&T("")},create_subset:Oe,get_nfa_states:function(){return C},get_dfa_table:function(){return dfa_table},set_dfa_table:function(e){return dfa_table=e},minimize_dfa:je,lalr1_parse_table:me,getErrors:function(){return w},getWarnings:function(){return y},resetErrors:function(){w=0,r=[]},resetWarnings:function(){y=0,t=[]},get_code_head:function(){return S},print_parse_tables:ce,print_dfa_table:he,print_term_actions:de,print_symbol_labels:ie,print_actions:fe,get_error_symbol_id:Ae,get_eof_symbol_id:ge,get_whitespace_symbol_id:e,getErrorMessages:function(){return r},getWarningMessages:function(){return t},cli:function(e){Ee(q);for(var r,t,n=new String,a=new String,o="",l=new String,s=!1,c=!1,h=!1,i=e||process.argv,d=0;d<i.length;d++)if("-o"==i[d].toLowerCase()||"--output"==i[d].toLowerCase())n=i[++d];else if("-t"==i[d].toLowerCase()||"--template"==i[d].toLowerCase())o=i[++d];else if("-p"==i[d].toLowerCase()||"--prefix"==i[d].toLowerCase())l=i[++d];else if("-w"==i[d].toLowerCase()||"--warnings"==i[d].toLowerCase())u=!0;else if("-v"==i[d].toLowerCase()||"--verbose"==i[d].toLowerCase())h=!0;else if("-d"==i[d].toLowerCase()||"--debug"==i[d].toLowerCase()){for(var f=0;f<i[d+1].length;f++)switch(i[d+1].charAt(f)){case"n":s=!0;break;case"d":c=!0}d++}else"-i"==i[d].toLowerCase()||"--version"==i[d].toLowerCase()?(t=void 0,t=new String,t+="JS/CC v"+N+": A LALR(1) Parser and Lexer Generator written in JavaScript\n",t+="Copyright (C) 2007, 2008 by J.M.K S.F. Software Technologies,Jan Max Meyer\n",t+="http://jscc.jmksf.com ++ jscc@jmksf.com\n\n",t+="You may use, modify and distribute this software under the terms and conditions\n",T(t+="of the Artistic License. Please see ARTISTIC for more information.\n"),g(0)):"-h"==i[d].toLowerCase()||"--help"==i[d].toLowerCase()?(ze(),g(0)):""==a&&(a=i[d]);""!=a?(Ue(read_file(a),a),0==w&&(Te(),xe(),0==w&&(se(),me(!1),function(){for(var e=0;e<A.length;e++)0==A[e].actionrow.length&&P("No lookaheads in state "+e+", watch for endless list definitions")}(),0==w&&(s&&function(e){T("Pos\tType\t\tfollow\t\tfollow2\t\taccept"),T("-------------------------------------------------------------------");for(var r=0;r<e.length;r++)if(T(r+"\t"+(C[r].edge==z?"FREE":C[r].edge==K?"EPSILON":"CHAR")+"\t\t"+(C[r].edge!=z&&-1<C[r].follow?C[r].follow:"")+"\t\t"+(C[r].edge!=z&&-1<C[r].follow2?C[r].follow2:"")+"\t\t"+(C[r].edge!=z&&-1<C[r].accept?C[r].accept:"")),C[r].edge==Q){for(var t=new String,n=V;n<X;n++)Le(C[r].ccl,n)&&10==(t+=String.fromCharCode(n)).length&&(T("\t"+t),t="");0<t.length&&T("\t"+t)}T("")}(C),r=je(Oe(C)),c&&function(e){for(var r=new String,t=0,n=0;n<e.length;n++){for(var r=n+" => (",t=0,a=0;a<e[n].line.length;a++)-1<e[n].line[a]&&(r+=" >"+String.fromCharCode(a)+"<,"+e[n].line[a]+" ",++t%5==0&&(r+="\n "));r+=") "+e[n].accept,T(r)}}(r),e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=read_file(o)).replace(/##HEADER##/gi,S)).replace(/##TABLES##/gi,ce(Y))).replace(/##DFA##/gi,he(r))).replace(/##TERMINAL_ACTIONS##/gi,de())).replace(/##LABELS##/gi,ie())).replace(/##ACTIONS##/gi,fe())).replace(/##FOOTER##/gi,E)).replace(/##PREFIX##/gi,l)).replace(/##ERROR##/gi,Ae())).replace(/##EOF##/gi,ge())).replace(/##WHITESPACE##/gi,m),""!=n?write_file(n,e):T(e),h&&T('"'+a+'" produced '+A.length+" states ("+p+" shifts, "+b+" reductions, "+k+" gotos)")))),h&&T(y+" warning"+(1<y?"s":"")+", "+w+" error"+(1<w?"s":""))):ze(),g(w)},set_debug:function(e,r,t){s=e,u=r,We=t},set_printError:function(e){d=e||n},set_printWarning:function(e){f=e||a},set_printInfo:function(e){T=e||o},get_printError:function(){return d},get_printWarning:function(){return f},get_printInfo:function(){return T},is_printError_default:function(){return d===n},is_printWarning_default:function(){return f===a},is_printInfo_default:function(){return T===o},set_alert:function(e){x=e||l},get_alert:function(){return x},is_alert_default:function(){return x===l}}}); //# sourceMappingURL=jscc-umd.min.js.map