MediaWiki:Skin/Projekt:Adventure2/parser.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
J* (Diskussion | Beiträge) |
J* (Diskussion | Beiträge) |
||
Zeile 2: | Zeile 2: | ||
a2.parser=(function(){function quote(s){return'"'+s.replace(/\\/g,'\\\\').replace(/"/g,'\\"').replace(/\x08/g,'\\b').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\f/g,'\\f').replace(/\r/g,'\\r').replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape) | a2.parser=(function(){function quote(s){return'"'+s.replace(/\\/g,'\\\\').replace(/"/g,'\\"').replace(/\x08/g,'\\b').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\f/g,'\\f').replace(/\r/g,'\\r').replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape) | ||
+'"';} | +'"';} | ||
− | var result={parse:function(input,startRule){var parseFunctions={"start":parse_start,"Declaration":parse_Declaration,"EventDec":parse_EventDec,"TriggerClause":parse_TriggerClause,"TriggerFunctions":parse_TriggerFunctions,"TriggerFunction":parse_TriggerFunction," | + | var result={parse:function(input,startRule){var parseFunctions={"start":parse_start,"Declaration":parse_Declaration,"EventDec":parse_EventDec,"TriggerClause":parse_TriggerClause,"TriggerFunctions":parse_TriggerFunctions,"TriggerFunction":parse_TriggerFunction,"TriggerPageOrVirtOp":parse_TriggerPageOrVirtOp,"TriggerItemOrVirtOp":parse_TriggerItemOrVirtOp,"ConditionClause":parse_ConditionClause,"ConditionFunction":parse_ConditionFunction,"ConditionArgs":parse_ConditionArgs,"ActionClause":parse_ActionClause,"ActionFunctions":parse_ActionFunctions,"ActionFunction":parse_ActionFunction,"PageDec":parse_PageDec,"PageVirtualClause":parse_PageVirtualClause,"PageVirtualList":parse_PageVirtualList,"ItemDec":parse_ItemDec,"TitleClause":parse_TitleClause,"ItemVirtualClause":parse_ItemVirtualClause,"ItemVirtualList":parse_ItemVirtualList,"L":parse_L,"R":parse_R,"C":parse_C,"CC":parse_CC,"Identifier":parse_Identifier,"PageVirtual":parse_PageVirtual,"ItemVirtual":parse_ItemVirtual,"Page":parse_Page,"S":parse_S,"String":parse_String,"SingleStringChar":parse_SingleStringChar,"DoubleStringChar":parse_DoubleStringChar,"EscapeSequence":parse_EscapeSequence,"End":parse_End};if(startRule!==undefined){if(parseFunctions[startRule]===undefined){throw new Error("Invalid rule name: "+quote(startRule)+".");}}else{startRule="start";} |
− | var pos= | + | var pos=0;var reportFailures=0;var rightmostFailuresPos=0;var rightmostFailuresExpected=[];function padLeft(input,padding,length){var result=input;var padLength=length-input.length;for(var i=0;i<padLength;i++){result=padding+result;} |
return result;} | return result;} | ||
function escape(ch){var charCode=ch.charCodeAt(0);var escapeChar;var length;if(charCode<=0xFF){escapeChar='x';length=2;}else{escapeChar='u';length=4;} | function escape(ch){var charCode=ch.charCodeAt(0);var escapeChar;var length;if(charCode<=0xFF){escapeChar='x';length=2;}else{escapeChar='u';length=4;} | ||
return'\\'+escapeChar+padLeft(charCode.toString(16).toUpperCase(),'0',length);} | return'\\'+escapeChar+padLeft(charCode.toString(16).toUpperCase(),'0',length);} | ||
− | + | function matchFailed(failure){if(pos<rightmostFailuresPos){return;} | |
− | + | if(pos>rightmostFailuresPos){rightmostFailuresPos=pos;rightmostFailuresExpected=[];} | |
− | |||
− | |||
− | |||
− | function matchFailed(failure){if(pos | ||
− | if(pos | ||
rightmostFailuresExpected.push(failure);} | rightmostFailuresExpected.push(failure);} | ||
− | function parse_start(){var result0,result1,result2;var pos0,pos1;pos0= | + | function parse_start(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){result1=[];result2=parse_Declaration();while(result2!==null){result1.push(result2);result2=parse_Declaration();} |
− | if(result1!==null){result0=[result0,result1];}else{result0=null;pos= | + | if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,d){return d;})(pos0,result0[1]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
function parse_Declaration(){var result0;result0=parse_EventDec();if(result0===null){result0=parse_PageDec();if(result0===null){result0=parse_ItemDec();}} | function parse_Declaration(){var result0;result0=parse_EventDec();if(result0===null){result0=parse_PageDec();if(result0===null){result0=parse_ItemDec();}} | ||
return result0;} | return result0;} | ||
− | function parse_EventDec(){var result0,result1,result2,result3,result4,result5,result6,result7,result8;var pos0,pos1,pos2;pos0= | + | function parse_EventDec(){var result0,result1,result2,result3,result4,result5,result6,result7,result8;var pos0,pos1,pos2;pos0=pos;pos1=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.substr(pos,5)==="event"){result1="event";pos+=5;}else{result1=null;if(reportFailures===0){matchFailed("\"event\"");}} |
− | if(result1!==null){pos2= | + | if(result1!==null){pos2=pos;result2=parse_S();if(result2!==null){result3=parse_Identifier();if(result3!==null){result2=[result2,result3];}else{result2=null;pos=pos2;}}else{result2=null;pos=pos2;} |
− | result2=result2!==null?result2:"";if(result2!==null){result3=parse_CC();if(result3!==null){result4=parse_TriggerClause();if(result4!==null){result5=parse_ConditionClause();result5=result5!==null?result5:"";if(result5!==null){result6=parse_ActionClause();result6=result6!==null?result6:"";if(result6!==null){result7=parse_End();if(result7!==null){result8=parse_S();result8=result8!==null?result8:"";if(result8!==null){result0=[result0,result1,result2,result3,result4,result5,result6,result7,result8];}else{result0=null;pos= | + | result2=result2!==null?result2:"";if(result2!==null){result3=parse_CC();if(result3!==null){result4=parse_TriggerClause();if(result4!==null){result5=parse_ConditionClause();result5=result5!==null?result5:"";if(result5!==null){result6=parse_ActionClause();result6=result6!==null?result6:"";if(result6!==null){result7=parse_End();if(result7!==null){result8=parse_S();result8=result8!==null?result8:"";if(result8!==null){result0=[result0,result1,result2,result3,result4,result5,result6,result7,result8];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,n,tr,co,ac){return["event",{name:n?n[1]:":anonymous:",trigger:tr,condition:(co?co:function(){return true;}),action:(ac?ac:function(){return true;})}];})(pos0,result0[2],result0[4],result0[5],result0[6]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | |||
− | |||
− | |||
− | |||
− | |||
return result0;} | return result0;} | ||
− | function | + | function parse_TriggerClause(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,2)==="on"){result0="on";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"on\"");}} |
− | + | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result3=parse_TriggerFunctions();if(result3!==null){result4=parse_CC();if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} | |
− | + | if(result0!==null){result0=(function(offset,tr){return tr;})(pos0,result0[3]);} | |
− | + | if(result0===null){pos=pos0;} | |
− | if(result0===null){pos= | ||
return result0;} | return result0;} | ||
− | function | + | function parse_TriggerFunctions(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_TriggerFunction();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_TriggerFunctions();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,t,o){o.push(t);return o;})(pos0,result0[0],result0[2]);} |
− | + | if(result0===null){pos=pos0;} | |
− | + | if(result0===null){pos0=pos;result0=parse_TriggerFunction();if(result0!==null){result0=(function(offset,t){return[t];})(pos0,result0);} | |
− | + | if(result0===null){pos=pos0;}} | |
− | if(result0===null){pos= | ||
− | if(result0===null){pos0= | ||
− | if(result0!==null){result0=(function(offset | ||
− | if(result0===null){pos= | ||
return result0;} | return result0;} | ||
− | function | + | function parse_TriggerFunction(){var result0,result1,result2,result3,result4,result5;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_TriggerPageOrVirtOp();if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Page();if(result2===null){result2=parse_PageVirtual();} |
− | if(result0===null){if(input.substr(pos | + | if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
+ | if(result0!==null){result0=(function(offset,t,a){return t+"."+a;})(pos0,result0[0],result0[2]);} | ||
+ | if(result0===null){pos=pos0;} | ||
+ | if(result0===null){pos0=pos;pos1=pos;result0=parse_TriggerItemOrVirtOp();if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2===null){result2=parse_ItemVirtual();} | ||
+ | if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} | ||
+ | if(result0!==null){result0=(function(offset,t,a){return t+"."+a;})(pos0,result0[0],result0[2]);} | ||
+ | if(result0===null){pos=pos0;} | ||
+ | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,5)==="click"){result0="click";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"click\"");}} | ||
+ | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} | ||
+ | if(result0!==null){result0=(function(offset,t,a){return t+"."+a;})(pos0,result0[0],result0[2]);} | ||
+ | if(result0===null){pos=pos0;} | ||
+ | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,7)==="combine"){result0="combine";pos+=7;}else{result0=null;if(reportFailures===0){matchFailed("\"combine\"");}} | ||
+ | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2===null){result2=parse_ItemVirtual();} | ||
+ | if(result2!==null){result3=parse_C();if(result3!==null){result4=parse_Identifier();if(result4===null){result4=parse_ItemVirtual();} | ||
+ | if(result4!==null){result5=parse_R();if(result5!==null){result0=[result0,result1,result2,result3,result4,result5];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} | ||
+ | if(result0!==null){result0=(function(offset,t,a,b){return[t,a,b].join(".")})(pos0,result0[0],result0[2],result0[4]);} | ||
+ | if(result0===null){pos=pos0;} | ||
+ | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,5)==="apply"){result0="apply";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"apply\"");}} | ||
+ | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2===null){result2=parse_ItemVirtual();} | ||
+ | if(result2!==null){result3=parse_C();if(result3!==null){result4=parse_Identifier();if(result4!==null){result5=parse_R();if(result5!==null){result0=[result0,result1,result2,result3,result4,result5];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} | ||
+ | if(result0!==null){result0=(function(offset,t,a,b){return[t,a,b].join(".")})(pos0,result0[0],result0[2],result0[4]);} | ||
+ | if(result0===null){pos=pos0;}}}}} | ||
return result0;} | return result0;} | ||
− | function | + | function parse_TriggerPageOrVirtOp(){var result0;if(input.substr(pos,5)==="enter"){result0="enter";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"enter\"");}} |
− | + | if(result0===null){if(input.substr(pos,5)==="leave"){result0="leave";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"leave\"");}}} | |
− | |||
− | if(result0===null){if(input.substr(pos | ||
return result0;} | return result0;} | ||
− | function | + | function parse_TriggerItemOrVirtOp(){var result0;if(input.substr(pos,3)==="add"){result0="add";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"add\"");}} |
− | if(result0===null){if(input.substr(pos | + | if(result0===null){if(input.substr(pos,6)==="remove"){result0="remove";pos+=6;}else{result0=null;if(reportFailures===0){matchFailed("\"remove\"");}} |
+ | if(result0===null){if(input.substr(pos,8)==="activate"){result0="activate";pos+=8;}else{result0=null;if(reportFailures===0){matchFailed("\"activate\"");}}}} | ||
return result0;} | return result0;} | ||
− | function parse_ConditionClause(){var result0,result1,result2,result3;var pos0,pos1;pos0= | + | function parse_ConditionClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,2)==="if"){result0="if";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"if\"");}} |
− | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ConditionFunction();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ConditionFunction();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,co){return co;})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_ConditionFunction(){var result0,result1,result2,result3;var pos0,pos1;pos0= | + | function parse_ConditionFunction(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,4)==="page"){result0="page";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Page();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Page();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,p){return function(){return a2.cpage==p};})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="any"){result0="any";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"any\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionArgs();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionArgs();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,a){return function(){for(var j=0;j<a.length;j++)if(a[j]())return true;return false;}})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="all"){result0="all";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"all\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionArgs();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionArgs();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,a){return function(){for(var j=0;j<a.length;j++)if(!a[j]())return false;return true;}})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="not"){result0="not";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"not\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionFunction();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionFunction();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,f){return function(){return!f()};})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,4)==="have"){result0="have";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"have\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,i){return function(){return!!a2.items[i]};})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,4)==="page"){result0="page";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_PageVirtual();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_PageVirtual();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,v){return function(){return!!a2.hasVirtual(v);};})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,4)==="have"){result0="have";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"have\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ItemVirtual();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ItemVirtual();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,v){return function(){return!!a2.hasVirtual(v);};})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;}}}}}}} |
return result0;} | return result0;} | ||
− | function parse_ConditionArgs(){var result0,result1,result2;var pos0,pos1;pos0= | + | function parse_ConditionArgs(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_ConditionFunction();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_ConditionArgs();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,f,a){a.push(f);return a;})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;result0=parse_ConditionFunction();if(result0!==null){result0=(function(offset,f){return[f];})(pos0,result0);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;}} |
return result0;} | return result0;} | ||
− | function parse_ActionClause(){var result0,result1,result2,result3;var pos0,pos1;pos0= | + | function parse_ActionClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,2)==="do"){result0="do";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"do\"");}} |
− | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ActionFunctions();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ActionFunctions();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,ac){return ac;})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_ActionFunctions(){var result0,result1,result2;var pos0,pos1;pos0= | + | function parse_ActionFunctions(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_ActionFunction();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_ActionFunctions();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,f,a){return function(action){a();f();};})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
if(result0===null){result0=parse_ActionFunction();} | if(result0===null){result0=parse_ActionFunction();} | ||
return result0;} | return result0;} | ||
− | function parse_ActionFunction(){var result0,result1,result2,result3;var pos0,pos1;pos0= | + | function parse_ActionFunction(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,4)==="goto"){result0="goto";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"goto\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Page();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Page();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,f,p){return function(){a2.util.goto(p)};})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="add"){result0="add";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"add\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,f,i){return function(){a2.util.add(i)};})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,6)==="remove"){result0="remove";pos+=6;}else{result0=null;if(reportFailures===0){matchFailed("\"remove\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,f,i){return function(){a2.util.remove(i)};})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,5)==="print"){result0="print";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"print\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,f,s){return function(){a2.util.print(s)};})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="die"){result0="die";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"die\"");}} |
− | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,f,s){return function(){a2.util.die(s)};})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;}}}}} |
return result0;} | return result0;} | ||
− | function parse_PageDec(){var result0,result1,result2,result3;var pos0,pos1;pos0= | + | function parse_PageDec(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,4)==="page"){result0="page";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}} |
− | if(result0!==null){result1=parse_CC();if(result1!==null){result2=parse_PageVirtualClause();result2=result2!==null?result2:"";if(result2!==null){result3=parse_End();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_CC();if(result1!==null){result2=parse_PageVirtualClause();result2=result2!==null?result2:"";if(result2!==null){result3=parse_End();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,pv){return["page",{virt:pv}];})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_PageVirtualClause(){var result0,result1,result2,result3;var pos0,pos1;pos0= | + | function parse_PageVirtualClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,8)==="provides"){result0="provides";pos+=8;}else{result0=null;if(reportFailures===0){matchFailed("\"provides\"");}} |
− | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_PageVirtualList();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_PageVirtualList();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,v){return v;})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_PageVirtualList(){var result0,result1,result2;var pos0,pos1;pos0= | + | function parse_PageVirtualList(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_PageVirtual();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_PageVirtualList();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,v,vl){vl.push(v);return vl;})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;result0=parse_PageVirtual();if(result0!==null){result0=(function(offset,v){return[v];})(pos0,result0);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;}} |
return result0;} | return result0;} | ||
− | function parse_ItemDec(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0= | + | function parse_ItemDec(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,4)==="item"){result0="item";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"item\"");}} |
− | if(result0!==null){result1=parse_CC();if(result1!==null){result2=parse_TitleClause();result2=result2!==null?result2:"";if(result2!==null){result3=parse_ItemVirtualClause();result3=result3!==null?result3:"";if(result3!==null){result4=parse_End();if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos= | + | if(result0!==null){result1=parse_CC();if(result1!==null){result2=parse_TitleClause();result2=result2!==null?result2:"";if(result2!==null){result3=parse_ItemVirtualClause();result3=result3!==null?result3:"";if(result3!==null){result4=parse_End();if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,t,iv){return["item",{virt:iv,title:t}];})(pos0,result0[2],result0[3]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_TitleClause(){var result0,result1,result2,result3;var pos0,pos1;pos0= | + | function parse_TitleClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,5)==="title"){result0="title";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"title\"");}} |
− | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,s){return s;})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_ItemVirtualClause(){var result0,result1,result2,result3;var pos0,pos1;pos0= | + | function parse_ItemVirtualClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,8)==="provides"){result0="provides";pos+=8;}else{result0=null;if(reportFailures===0){matchFailed("\"provides\"");}} |
− | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ItemVirtualList();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ItemVirtualList();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,v){return v;})(pos0,result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_ItemVirtualList(){var result0,result1,result2;var pos0,pos1;pos0= | + | function parse_ItemVirtualList(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_ItemVirtual();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_ItemVirtualList();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,v,vl){vl.push(v);return vl;})(pos0,result0[0],result0[2]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;result0=parse_ItemVirtual();if(result0!==null){result0=(function(offset,v){return[v];})(pos0,result0);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;}} |
return result0;} | return result0;} | ||
− | function parse_L(){var result0,result1,result2;var pos0;pos0= | + | function parse_L(){var result0,result1,result2;var pos0;pos0=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===40){result1="(";pos++;}else{result1=null;if(reportFailures===0){matchFailed("\"(\"");}} |
− | if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos= | + | if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_R(){var result0,result1,result2;var pos0;pos0= | + | function parse_R(){var result0,result1,result2;var pos0;pos0=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===41){result1=")";pos++;}else{result1=null;if(reportFailures===0){matchFailed("\")\"");}} |
− | if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos= | + | if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_C(){var result0,result1,result2;var pos0;pos0= | + | function parse_C(){var result0,result1,result2;var pos0;pos0=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===44){result1=",";pos++;}else{result1=null;if(reportFailures===0){matchFailed("\",\"");}} |
− | if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos= | + | if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_CC(){var result0,result1,result2;var pos0;pos0= | + | function parse_CC(){var result0,result1,result2;var pos0;pos0=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===59){result1=";";pos++;}else{result1=null;if(reportFailures===0){matchFailed("\";\"");}} |
− | if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos= | + | if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_Identifier(){var result0,result1,result2;var pos0,pos1;pos0= | + | function parse_Identifier(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos))){result0=input.charAt(pos);pos++;}else{result0=null;if(reportFailures===0){matchFailed("[a-z\\xE4\\xF6\\xFC_]");}} |
− | if(result0!==null){result1=[];if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos | + | if(result0!==null){result1=[];if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++;}else{result2=null;if(reportFailures===0){matchFailed("[a-z\\xE4\\xF6\\xFC_]");}} |
− | while(result2!==null){result1.push(result2);if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos | + | while(result2!==null){result1.push(result2);if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++;}else{result2=null;if(reportFailures===0){matchFailed("[a-z\\xE4\\xF6\\xFC_]");}}} |
− | if(result1!==null){result0=[result0,result1];}else{result0=null;pos= | + | if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,i1,i2){return i1+i2.join("");})(pos0,result0[0],result0[1]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_PageVirtual(){var result0,result1;var pos0,pos1;pos0= | + | function parse_PageVirtual(){var result0,result1;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===64){result0="@";pos++;}else{result0=null;if(reportFailures===0){matchFailed("\"@\"");}} |
− | if(result0!==null){result1=parse_Identifier();if(result1!==null){result0=[result0,result1];}else{result0=null;pos= | + | if(result0!==null){result1=parse_Identifier();if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,p,i){return p+i;})(pos0,result0[0],result0[1]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_ItemVirtual(){var result0,result1;var pos0,pos1;pos0= | + | function parse_ItemVirtual(){var result0,result1;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===58){result0=":";pos++;}else{result0=null;if(reportFailures===0){matchFailed("\":\"");}} |
− | if(result0!==null){result1=parse_Identifier();if(result1!==null){result0=[result0,result1];}else{result0=null;pos= | + | if(result0!==null){result1=parse_Identifier();if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,p,i){return p+i;})(pos0,result0[0],result0[1]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_Page(){var result0,result1;var pos0;pos0= | + | function parse_Page(){var result0,result1;var pos0;pos0=pos;if(/^[0-9]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[0-9]");}} |
− | if(result1!==null){result0=[];while(result1!==null){result0.push(result1);if(/^[0-9]/.test(input.charAt(pos | + | if(result1!==null){result0=[];while(result1!==null){result0.push(result1);if(/^[0-9]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[0-9]");}}}}else{result0=null;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,p){return p.join("");})(pos0,result0);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
return result0;} | return result0;} | ||
− | function parse_S(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0= | + | function parse_S(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;result0=[];if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}} |
− | while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos | + | while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}} |
− | if(result0!==null){if(input.substr(pos | + | if(result0!==null){if(input.substr(pos,2)==="/*"){result1="/*";pos+=2;}else{result1=null;if(reportFailures===0){matchFailed("\"/*\"");}} |
− | if(result1!==null){result2=[];if(/^[^*]/.test(input.charAt(pos | + | if(result1!==null){result2=[];if(/^[^*]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[^*]");}} |
− | if(result3===null){pos1= | + | if(result3===null){pos1=pos;if(/^[*]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[*]");}} |
− | if(result3!==null){if(/^[^\/]/.test(input.charAt(pos | + | if(result3!==null){if(/^[^\/]/.test(input.charAt(pos))){result4=input.charAt(pos);pos++;}else{result4=null;if(reportFailures===0){matchFailed("[^\\/]");}} |
− | if(result4!==null){result3=[result3,result4];}else{result3=null;pos= | + | if(result4!==null){result3=[result3,result4];}else{result3=null;pos=pos1;}}else{result3=null;pos=pos1;}} |
− | while(result3!==null){result2.push(result3);if(/^[^*]/.test(input.charAt(pos | + | while(result3!==null){result2.push(result3);if(/^[^*]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[^*]");}} |
− | if(result3===null){pos1= | + | if(result3===null){pos1=pos;if(/^[*]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[*]");}} |
− | if(result3!==null){if(/^[^\/]/.test(input.charAt(pos | + | if(result3!==null){if(/^[^\/]/.test(input.charAt(pos))){result4=input.charAt(pos);pos++;}else{result4=null;if(reportFailures===0){matchFailed("[^\\/]");}} |
− | if(result4!==null){result3=[result3,result4];}else{result3=null;pos= | + | if(result4!==null){result3=[result3,result4];}else{result3=null;pos=pos1;}}else{result3=null;pos=pos1;}}} |
− | if(result2!==null){if(input.substr(pos | + | if(result2!==null){if(input.substr(pos,2)==="*/"){result3="*/";pos+=2;}else{result3=null;if(reportFailures===0){matchFailed("\"*/\"");}} |
− | if(result3!==null){result4=parse_S();result4=result4!==null?result4:"";if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos= | + | if(result3!==null){result4=parse_S();result4=result4!==null?result4:"";if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;result0=[];if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}} |
− | while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos | + | while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}} |
− | if(result0!==null){if(input.substr(pos | + | if(result0!==null){if(input.substr(pos,2)==="//"){result1="//";pos+=2;}else{result1=null;if(reportFailures===0){matchFailed("\"//\"");}} |
− | if(result1!==null){result2=[];if(/^[^\n]/.test(input.charAt(pos | + | if(result1!==null){result2=[];if(/^[^\n]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[^\\n]");}} |
− | while(result3!==null){result2.push(result3);if(/^[^\n]/.test(input.charAt(pos | + | while(result3!==null){result2.push(result3);if(/^[^\n]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[^\\n]");}}} |
− | if(result2!==null){if(/^[\n]/.test(input.charAt(pos | + | if(result2!==null){if(/^[\n]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[\\n]");}} |
− | if(result3!==null){result4=parse_S();result4=result4!==null?result4:"";if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos= | + | if(result3!==null){result4=parse_S();result4=result4!==null?result4:"";if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;} |
− | if(result0===null){if(/^[ \t\n]/.test(input.charAt(pos | + | if(result0===null){if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}} |
− | if(result1!==null){result0=[];while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos | + | if(result1!==null){result0=[];while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}}}else{result0=null;}}} |
return result0;} | return result0;} | ||
− | function parse_String(){var result0,result1,result2;var pos0,pos1;pos0= | + | function parse_String(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===39){result0="'";pos++;}else{result0=null;if(reportFailures===0){matchFailed("\"'\"");}} |
if(result0!==null){result1=[];result2=parse_SingleStringChar();while(result2!==null){result1.push(result2);result2=parse_SingleStringChar();} | if(result0!==null){result1=[];result2=parse_SingleStringChar();while(result2!==null){result1.push(result2);result2=parse_SingleStringChar();} | ||
− | if(result1!==null){if(input.charCodeAt(pos | + | if(result1!==null){if(input.charCodeAt(pos)===39){result2="'";pos++;}else{result2=null;if(reportFailures===0){matchFailed("\"'\"");}} |
− | if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos= | + | if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,s){return s.join("");})(pos0,result0[1]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;pos1=pos;if(input.charCodeAt(pos)===34){result0="\"";pos++;}else{result0=null;if(reportFailures===0){matchFailed("\"\\\"\"");}} |
if(result0!==null){result1=[];result2=parse_DoubleStringChar();while(result2!==null){result1.push(result2);result2=parse_DoubleStringChar();} | if(result0!==null){result1=[];result2=parse_DoubleStringChar();while(result2!==null){result1.push(result2);result2=parse_DoubleStringChar();} | ||
− | if(result1!==null){if(input.charCodeAt(pos | + | if(result1!==null){if(input.charCodeAt(pos)===34){result2="\"";pos++;}else{result2=null;if(reportFailures===0){matchFailed("\"\\\"\"");}} |
− | if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos= | + | if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset,s){return s.join("");})(pos0,result0[1]);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;}} |
return result0;} | return result0;} | ||
− | function parse_SingleStringChar(){var result0;result0=parse_EscapeSequence();if(result0===null){if(/^[^']/.test(input.charAt(pos | + | function parse_SingleStringChar(){var result0;result0=parse_EscapeSequence();if(result0===null){if(/^[^']/.test(input.charAt(pos))){result0=input.charAt(pos);pos++;}else{result0=null;if(reportFailures===0){matchFailed("[^']");}}} |
return result0;} | return result0;} | ||
− | function parse_DoubleStringChar(){var result0;result0=parse_EscapeSequence();if(result0===null){if(/^[^"]/.test(input.charAt(pos | + | function parse_DoubleStringChar(){var result0;result0=parse_EscapeSequence();if(result0===null){if(/^[^"]/.test(input.charAt(pos))){result0=input.charAt(pos);pos++;}else{result0=null;if(reportFailures===0){matchFailed("[^\"]");}}} |
return result0;} | return result0;} | ||
− | function parse_EscapeSequence(){var result0;var pos0;pos0= | + | function parse_EscapeSequence(){var result0;var pos0;pos0=pos;if(input.substr(pos,2)==="\\n"){result0="\\n";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\n\"");}} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset){return"\n";})(pos0);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;if(input.substr(pos,2)==="\\\""){result0="\\\"";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\\\\"\"");}} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset){return'"';})(pos0);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;} |
− | if(result0===null){pos0= | + | if(result0===null){pos0=pos;if(input.substr(pos,2)==="\\'"){result0="\\'";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\'\"");}} |
− | if(result0!==null){result0=(function(offset | + | if(result0!==null){result0=(function(offset){return"'";})(pos0);} |
− | if(result0===null){pos= | + | if(result0===null){pos=pos0;}}} |
return result0;} | return result0;} | ||
− | function parse_End(){var result0,result1,result2,result3;var pos0;pos0= | + | function parse_End(){var result0,result1,result2,result3;var pos0;pos0=pos;if(input.substr(pos,3)==="end"){result0="end";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"end\"");}} |
− | if(result0!==null){result1=parse_S();result1=result1!==null?result1:"";if(result1!==null){if(input.charCodeAt(pos | + | if(result0!==null){result1=parse_S();result1=result1!==null?result1:"";if(result1!==null){if(input.charCodeAt(pos)===46){result2=".";pos++;}else{result2=null;if(reportFailures===0){matchFailed("\".\"");}} |
− | if(result2!==null){result3=parse_S();result3=result3!==null?result3:"";if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos= | + | if(result2!==null){result3=parse_S();result3=result3!==null?result3:"";if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;} |
return result0;} | return result0;} | ||
function cleanupExpected(expected){expected.sort();var lastExpected=null;var cleanExpected=[];for(var i=0;i<expected.length;i++){if(expected[i]!==lastExpected){cleanExpected.push(expected[i]);lastExpected=expected[i];}} | function cleanupExpected(expected){expected.sort();var lastExpected=null;var cleanExpected=[];for(var i=0;i<expected.length;i++){if(expected[i]!==lastExpected){cleanExpected.push(expected[i]);lastExpected=expected[i];}} | ||
return cleanExpected;} | return cleanExpected;} | ||
− | var result=parseFunctions[startRule]();if(result===null||pos | + | function computeErrorPosition(){var line=1;var column=1;var seenCR=false;for(var i=0;i<Math.max(pos,rightmostFailuresPos);i++){var ch=input.charAt(i);if(ch==="\n"){if(!seenCR){line++;} |
+ | column=1;seenCR=false;}else if(ch==="\r"||ch==="\u2028"||ch==="\u2029"){line++;column=1;seenCR=true;}else{column++;seenCR=false;}} | ||
+ | return{line:line,column:column};} | ||
+ | var result=parseFunctions[startRule]();if(result===null||pos!==input.length){var offset=Math.max(pos,rightmostFailuresPos);var found=offset<input.length?input.charAt(offset):null;var errorPosition=computeErrorPosition();throw new this.SyntaxError(cleanupExpected(rightmostFailuresExpected),found,offset,errorPosition.line,errorPosition.column);} | ||
return result;},toSource:function(){return this._source;}};result.SyntaxError=function(expected,found,offset,line,column){function buildMessage(expected,found){var expectedHumanized,foundHumanized;switch(expected.length){case 0:expectedHumanized="end of input";break;case 1:expectedHumanized=expected[0];break;default:expectedHumanized=expected.slice(0,expected.length-1).join(", ") | return result;},toSource:function(){return this._source;}};result.SyntaxError=function(expected,found,offset,line,column){function buildMessage(expected,found){var expectedHumanized,foundHumanized;switch(expected.length){case 0:expectedHumanized="end of input";break;case 1:expectedHumanized=expected[0];break;default:expectedHumanized=expected.slice(0,expected.length-1).join(", ") | ||
+" or " | +" or " |
Version vom 17. Juli 2012, 22:15 Uhr
a2.parser=(function(){function quote(s){return'"'+s.replace(/\\/g,'\\\\').replace(/"/g,'\\"').replace(/\x08/g,'\\b').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\f/g,'\\f').replace(/\r/g,'\\r').replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g,escape)
+'"';}
var result={parse:function(input,startRule){var parseFunctions={"start":parse_start,"Declaration":parse_Declaration,"EventDec":parse_EventDec,"TriggerClause":parse_TriggerClause,"TriggerFunctions":parse_TriggerFunctions,"TriggerFunction":parse_TriggerFunction,"TriggerPageOrVirtOp":parse_TriggerPageOrVirtOp,"TriggerItemOrVirtOp":parse_TriggerItemOrVirtOp,"ConditionClause":parse_ConditionClause,"ConditionFunction":parse_ConditionFunction,"ConditionArgs":parse_ConditionArgs,"ActionClause":parse_ActionClause,"ActionFunctions":parse_ActionFunctions,"ActionFunction":parse_ActionFunction,"PageDec":parse_PageDec,"PageVirtualClause":parse_PageVirtualClause,"PageVirtualList":parse_PageVirtualList,"ItemDec":parse_ItemDec,"TitleClause":parse_TitleClause,"ItemVirtualClause":parse_ItemVirtualClause,"ItemVirtualList":parse_ItemVirtualList,"L":parse_L,"R":parse_R,"C":parse_C,"CC":parse_CC,"Identifier":parse_Identifier,"PageVirtual":parse_PageVirtual,"ItemVirtual":parse_ItemVirtual,"Page":parse_Page,"S":parse_S,"String":parse_String,"SingleStringChar":parse_SingleStringChar,"DoubleStringChar":parse_DoubleStringChar,"EscapeSequence":parse_EscapeSequence,"End":parse_End};if(startRule!==undefined){if(parseFunctions[startRule]===undefined){throw new Error("Invalid rule name: "+quote(startRule)+".");}}else{startRule="start";}
var pos=0;var reportFailures=0;var rightmostFailuresPos=0;var rightmostFailuresExpected=[];function padLeft(input,padding,length){var result=input;var padLength=length-input.length;for(var i=0;i<padLength;i++){result=padding+result;}
return result;}
function escape(ch){var charCode=ch.charCodeAt(0);var escapeChar;var length;if(charCode<=0xFF){escapeChar='x';length=2;}else{escapeChar='u';length=4;}
return'\\'+escapeChar+padLeft(charCode.toString(16).toUpperCase(),'0',length);}
function matchFailed(failure){if(pos<rightmostFailuresPos){return;}
if(pos>rightmostFailuresPos){rightmostFailuresPos=pos;rightmostFailuresExpected=[];}
rightmostFailuresExpected.push(failure);}
function parse_start(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){result1=[];result2=parse_Declaration();while(result2!==null){result1.push(result2);result2=parse_Declaration();}
if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,d){return d;})(pos0,result0[1]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_Declaration(){var result0;result0=parse_EventDec();if(result0===null){result0=parse_PageDec();if(result0===null){result0=parse_ItemDec();}}
return result0;}
function parse_EventDec(){var result0,result1,result2,result3,result4,result5,result6,result7,result8;var pos0,pos1,pos2;pos0=pos;pos1=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.substr(pos,5)==="event"){result1="event";pos+=5;}else{result1=null;if(reportFailures===0){matchFailed("\"event\"");}}
if(result1!==null){pos2=pos;result2=parse_S();if(result2!==null){result3=parse_Identifier();if(result3!==null){result2=[result2,result3];}else{result2=null;pos=pos2;}}else{result2=null;pos=pos2;}
result2=result2!==null?result2:"";if(result2!==null){result3=parse_CC();if(result3!==null){result4=parse_TriggerClause();if(result4!==null){result5=parse_ConditionClause();result5=result5!==null?result5:"";if(result5!==null){result6=parse_ActionClause();result6=result6!==null?result6:"";if(result6!==null){result7=parse_End();if(result7!==null){result8=parse_S();result8=result8!==null?result8:"";if(result8!==null){result0=[result0,result1,result2,result3,result4,result5,result6,result7,result8];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,n,tr,co,ac){return["event",{name:n?n[1]:":anonymous:",trigger:tr,condition:(co?co:function(){return true;}),action:(ac?ac:function(){return true;})}];})(pos0,result0[2],result0[4],result0[5],result0[6]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_TriggerClause(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,2)==="on"){result0="on";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"on\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result3=parse_TriggerFunctions();if(result3!==null){result4=parse_CC();if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,tr){return tr;})(pos0,result0[3]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_TriggerFunctions(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_TriggerFunction();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_TriggerFunctions();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,t,o){o.push(t);return o;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;result0=parse_TriggerFunction();if(result0!==null){result0=(function(offset,t){return[t];})(pos0,result0);}
if(result0===null){pos=pos0;}}
return result0;}
function parse_TriggerFunction(){var result0,result1,result2,result3,result4,result5;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_TriggerPageOrVirtOp();if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Page();if(result2===null){result2=parse_PageVirtual();}
if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,t,a){return t+"."+a;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;result0=parse_TriggerItemOrVirtOp();if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2===null){result2=parse_ItemVirtual();}
if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,t,a){return t+"."+a;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,5)==="click"){result0="click";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"click\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,t,a){return t+"."+a;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,7)==="combine"){result0="combine";pos+=7;}else{result0=null;if(reportFailures===0){matchFailed("\"combine\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2===null){result2=parse_ItemVirtual();}
if(result2!==null){result3=parse_C();if(result3!==null){result4=parse_Identifier();if(result4===null){result4=parse_ItemVirtual();}
if(result4!==null){result5=parse_R();if(result5!==null){result0=[result0,result1,result2,result3,result4,result5];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,t,a,b){return[t,a,b].join(".")})(pos0,result0[0],result0[2],result0[4]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,5)==="apply"){result0="apply";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"apply\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2===null){result2=parse_ItemVirtual();}
if(result2!==null){result3=parse_C();if(result3!==null){result4=parse_Identifier();if(result4!==null){result5=parse_R();if(result5!==null){result0=[result0,result1,result2,result3,result4,result5];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,t,a,b){return[t,a,b].join(".")})(pos0,result0[0],result0[2],result0[4]);}
if(result0===null){pos=pos0;}}}}}
return result0;}
function parse_TriggerPageOrVirtOp(){var result0;if(input.substr(pos,5)==="enter"){result0="enter";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"enter\"");}}
if(result0===null){if(input.substr(pos,5)==="leave"){result0="leave";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"leave\"");}}}
return result0;}
function parse_TriggerItemOrVirtOp(){var result0;if(input.substr(pos,3)==="add"){result0="add";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"add\"");}}
if(result0===null){if(input.substr(pos,6)==="remove"){result0="remove";pos+=6;}else{result0=null;if(reportFailures===0){matchFailed("\"remove\"");}}
if(result0===null){if(input.substr(pos,8)==="activate"){result0="activate";pos+=8;}else{result0=null;if(reportFailures===0){matchFailed("\"activate\"");}}}}
return result0;}
function parse_ConditionClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,2)==="if"){result0="if";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"if\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ConditionFunction();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,co){return co;})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_ConditionFunction(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,4)==="page"){result0="page";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Page();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,p){return function(){return a2.cpage==p};})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="any"){result0="any";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"any\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionArgs();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,a){return function(){for(var j=0;j<a.length;j++)if(a[j]())return true;return false;}})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="all"){result0="all";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"all\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionArgs();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,a){return function(){for(var j=0;j<a.length;j++)if(!a[j]())return false;return true;}})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="not"){result0="not";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"not\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ConditionFunction();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,f){return function(){return!f()};})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,4)==="have"){result0="have";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"have\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,i){return function(){return!!a2.items[i]};})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,4)==="page"){result0="page";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_PageVirtual();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,v){return function(){return!!a2.hasVirtual(v);};})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,4)==="have"){result0="have";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"have\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_ItemVirtual();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,v){return function(){return!!a2.hasVirtual(v);};})(pos0,result0[2]);}
if(result0===null){pos=pos0;}}}}}}}
return result0;}
function parse_ConditionArgs(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_ConditionFunction();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_ConditionArgs();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,f,a){a.push(f);return a;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;result0=parse_ConditionFunction();if(result0!==null){result0=(function(offset,f){return[f];})(pos0,result0);}
if(result0===null){pos=pos0;}}
return result0;}
function parse_ActionClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,2)==="do"){result0="do";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"do\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ActionFunctions();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,ac){return ac;})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_ActionFunctions(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_ActionFunction();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_ActionFunctions();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,f,a){return function(action){a();f();};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){result0=parse_ActionFunction();}
return result0;}
function parse_ActionFunction(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,4)==="goto"){result0="goto";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"goto\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Page();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,f,p){return function(){a2.util.goto(p)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="add"){result0="add";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"add\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,f,i){return function(){a2.util.add(i)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,6)==="remove"){result0="remove";pos+=6;}else{result0=null;if(reportFailures===0){matchFailed("\"remove\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,f,i){return function(){a2.util.remove(i)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,5)==="print"){result0="print";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"print\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,f,s){return function(){a2.util.print(s)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.substr(pos,3)==="die"){result0="die";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"die\"");}}
if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_R();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,f,s){return function(){a2.util.die(s)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}}}}}
return result0;}
function parse_PageDec(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,4)==="page"){result0="page";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}}
if(result0!==null){result1=parse_CC();if(result1!==null){result2=parse_PageVirtualClause();result2=result2!==null?result2:"";if(result2!==null){result3=parse_End();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,pv){return["page",{virt:pv}];})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_PageVirtualClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,8)==="provides"){result0="provides";pos+=8;}else{result0=null;if(reportFailures===0){matchFailed("\"provides\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_PageVirtualList();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,v){return v;})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_PageVirtualList(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_PageVirtual();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_PageVirtualList();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,v,vl){vl.push(v);return vl;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;result0=parse_PageVirtual();if(result0!==null){result0=(function(offset,v){return[v];})(pos0,result0);}
if(result0===null){pos=pos0;}}
return result0;}
function parse_ItemDec(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,4)==="item"){result0="item";pos+=4;}else{result0=null;if(reportFailures===0){matchFailed("\"item\"");}}
if(result0!==null){result1=parse_CC();if(result1!==null){result2=parse_TitleClause();result2=result2!==null?result2:"";if(result2!==null){result3=parse_ItemVirtualClause();result3=result3!==null?result3:"";if(result3!==null){result4=parse_End();if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,t,iv){return["item",{virt:iv,title:t}];})(pos0,result0[2],result0[3]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_TitleClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,5)==="title"){result0="title";pos+=5;}else{result0=null;if(reportFailures===0){matchFailed("\"title\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_String();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,s){return s;})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_ItemVirtualClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=pos;pos1=pos;if(input.substr(pos,8)==="provides"){result0="provides";pos+=8;}else{result0=null;if(reportFailures===0){matchFailed("\"provides\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_ItemVirtualList();if(result2!==null){result3=parse_CC();if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,v){return v;})(pos0,result0[2]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_ItemVirtualList(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;result0=parse_ItemVirtual();if(result0!==null){result1=parse_C();if(result1!==null){result2=parse_ItemVirtualList();if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,v,vl){vl.push(v);return vl;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;result0=parse_ItemVirtual();if(result0!==null){result0=(function(offset,v){return[v];})(pos0,result0);}
if(result0===null){pos=pos0;}}
return result0;}
function parse_L(){var result0,result1,result2;var pos0;pos0=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===40){result1="(";pos++;}else{result1=null;if(reportFailures===0){matchFailed("\"(\"");}}
if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}
return result0;}
function parse_R(){var result0,result1,result2;var pos0;pos0=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===41){result1=")";pos++;}else{result1=null;if(reportFailures===0){matchFailed("\")\"");}}
if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}
return result0;}
function parse_C(){var result0,result1,result2;var pos0;pos0=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===44){result1=",";pos++;}else{result1=null;if(reportFailures===0){matchFailed("\",\"");}}
if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}
return result0;}
function parse_CC(){var result0,result1,result2;var pos0;pos0=pos;result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos)===59){result1=";";pos++;}else{result1=null;if(reportFailures===0){matchFailed("\";\"");}}
if(result1!==null){result2=parse_S();result2=result2!==null?result2:"";if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}
return result0;}
function parse_Identifier(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos))){result0=input.charAt(pos);pos++;}else{result0=null;if(reportFailures===0){matchFailed("[a-z\\xE4\\xF6\\xFC_]");}}
if(result0!==null){result1=[];if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++;}else{result2=null;if(reportFailures===0){matchFailed("[a-z\\xE4\\xF6\\xFC_]");}}
while(result2!==null){result1.push(result2);if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos))){result2=input.charAt(pos);pos++;}else{result2=null;if(reportFailures===0){matchFailed("[a-z\\xE4\\xF6\\xFC_]");}}}
if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,i1,i2){return i1+i2.join("");})(pos0,result0[0],result0[1]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_PageVirtual(){var result0,result1;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===64){result0="@";pos++;}else{result0=null;if(reportFailures===0){matchFailed("\"@\"");}}
if(result0!==null){result1=parse_Identifier();if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,p,i){return p+i;})(pos0,result0[0],result0[1]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_ItemVirtual(){var result0,result1;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===58){result0=":";pos++;}else{result0=null;if(reportFailures===0){matchFailed("\":\"");}}
if(result0!==null){result1=parse_Identifier();if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,p,i){return p+i;})(pos0,result0[0],result0[1]);}
if(result0===null){pos=pos0;}
return result0;}
function parse_Page(){var result0,result1;var pos0;pos0=pos;if(/^[0-9]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[0-9]");}}
if(result1!==null){result0=[];while(result1!==null){result0.push(result1);if(/^[0-9]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[0-9]");}}}}else{result0=null;}
if(result0!==null){result0=(function(offset,p){return p.join("");})(pos0,result0);}
if(result0===null){pos=pos0;}
return result0;}
function parse_S(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=pos;result0=[];if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}
while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}}
if(result0!==null){if(input.substr(pos,2)==="/*"){result1="/*";pos+=2;}else{result1=null;if(reportFailures===0){matchFailed("\"/*\"");}}
if(result1!==null){result2=[];if(/^[^*]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[^*]");}}
if(result3===null){pos1=pos;if(/^[*]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[*]");}}
if(result3!==null){if(/^[^\/]/.test(input.charAt(pos))){result4=input.charAt(pos);pos++;}else{result4=null;if(reportFailures===0){matchFailed("[^\\/]");}}
if(result4!==null){result3=[result3,result4];}else{result3=null;pos=pos1;}}else{result3=null;pos=pos1;}}
while(result3!==null){result2.push(result3);if(/^[^*]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[^*]");}}
if(result3===null){pos1=pos;if(/^[*]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[*]");}}
if(result3!==null){if(/^[^\/]/.test(input.charAt(pos))){result4=input.charAt(pos);pos++;}else{result4=null;if(reportFailures===0){matchFailed("[^\\/]");}}
if(result4!==null){result3=[result3,result4];}else{result3=null;pos=pos1;}}else{result3=null;pos=pos1;}}}
if(result2!==null){if(input.substr(pos,2)==="*/"){result3="*/";pos+=2;}else{result3=null;if(reportFailures===0){matchFailed("\"*/\"");}}
if(result3!==null){result4=parse_S();result4=result4!==null?result4:"";if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}
if(result0===null){pos0=pos;result0=[];if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}
while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}}
if(result0!==null){if(input.substr(pos,2)==="//"){result1="//";pos+=2;}else{result1=null;if(reportFailures===0){matchFailed("\"//\"");}}
if(result1!==null){result2=[];if(/^[^\n]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[^\\n]");}}
while(result3!==null){result2.push(result3);if(/^[^\n]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[^\\n]");}}}
if(result2!==null){if(/^[\n]/.test(input.charAt(pos))){result3=input.charAt(pos);pos++;}else{result3=null;if(reportFailures===0){matchFailed("[\\n]");}}
if(result3!==null){result4=parse_S();result4=result4!==null?result4:"";if(result4!==null){result0=[result0,result1,result2,result3,result4];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}
if(result0===null){if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}
if(result1!==null){result0=[];while(result1!==null){result0.push(result1);if(/^[ \t\n]/.test(input.charAt(pos))){result1=input.charAt(pos);pos++;}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}}}else{result0=null;}}}
return result0;}
function parse_String(){var result0,result1,result2;var pos0,pos1;pos0=pos;pos1=pos;if(input.charCodeAt(pos)===39){result0="'";pos++;}else{result0=null;if(reportFailures===0){matchFailed("\"'\"");}}
if(result0!==null){result1=[];result2=parse_SingleStringChar();while(result2!==null){result1.push(result2);result2=parse_SingleStringChar();}
if(result1!==null){if(input.charCodeAt(pos)===39){result2="'";pos++;}else{result2=null;if(reportFailures===0){matchFailed("\"'\"");}}
if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,s){return s.join("");})(pos0,result0[1]);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;pos1=pos;if(input.charCodeAt(pos)===34){result0="\"";pos++;}else{result0=null;if(reportFailures===0){matchFailed("\"\\\"\"");}}
if(result0!==null){result1=[];result2=parse_DoubleStringChar();while(result2!==null){result1.push(result2);result2=parse_DoubleStringChar();}
if(result1!==null){if(input.charCodeAt(pos)===34){result2="\"";pos++;}else{result2=null;if(reportFailures===0){matchFailed("\"\\\"\"");}}
if(result2!==null){result0=[result0,result1,result2];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,s){return s.join("");})(pos0,result0[1]);}
if(result0===null){pos=pos0;}}
return result0;}
function parse_SingleStringChar(){var result0;result0=parse_EscapeSequence();if(result0===null){if(/^[^']/.test(input.charAt(pos))){result0=input.charAt(pos);pos++;}else{result0=null;if(reportFailures===0){matchFailed("[^']");}}}
return result0;}
function parse_DoubleStringChar(){var result0;result0=parse_EscapeSequence();if(result0===null){if(/^[^"]/.test(input.charAt(pos))){result0=input.charAt(pos);pos++;}else{result0=null;if(reportFailures===0){matchFailed("[^\"]");}}}
return result0;}
function parse_EscapeSequence(){var result0;var pos0;pos0=pos;if(input.substr(pos,2)==="\\n"){result0="\\n";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\n\"");}}
if(result0!==null){result0=(function(offset){return"\n";})(pos0);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;if(input.substr(pos,2)==="\\\""){result0="\\\"";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\\\\"\"");}}
if(result0!==null){result0=(function(offset){return'"';})(pos0);}
if(result0===null){pos=pos0;}
if(result0===null){pos0=pos;if(input.substr(pos,2)==="\\'"){result0="\\'";pos+=2;}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\'\"");}}
if(result0!==null){result0=(function(offset){return"'";})(pos0);}
if(result0===null){pos=pos0;}}}
return result0;}
function parse_End(){var result0,result1,result2,result3;var pos0;pos0=pos;if(input.substr(pos,3)==="end"){result0="end";pos+=3;}else{result0=null;if(reportFailures===0){matchFailed("\"end\"");}}
if(result0!==null){result1=parse_S();result1=result1!==null?result1:"";if(result1!==null){if(input.charCodeAt(pos)===46){result2=".";pos++;}else{result2=null;if(reportFailures===0){matchFailed("\".\"");}}
if(result2!==null){result3=parse_S();result3=result3!==null?result3:"";if(result3!==null){result0=[result0,result1,result2,result3];}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}}else{result0=null;pos=pos0;}
return result0;}
function cleanupExpected(expected){expected.sort();var lastExpected=null;var cleanExpected=[];for(var i=0;i<expected.length;i++){if(expected[i]!==lastExpected){cleanExpected.push(expected[i]);lastExpected=expected[i];}}
return cleanExpected;}
function computeErrorPosition(){var line=1;var column=1;var seenCR=false;for(var i=0;i<Math.max(pos,rightmostFailuresPos);i++){var ch=input.charAt(i);if(ch==="\n"){if(!seenCR){line++;}
column=1;seenCR=false;}else if(ch==="\r"||ch==="\u2028"||ch==="\u2029"){line++;column=1;seenCR=true;}else{column++;seenCR=false;}}
return{line:line,column:column};}
var result=parseFunctions[startRule]();if(result===null||pos!==input.length){var offset=Math.max(pos,rightmostFailuresPos);var found=offset<input.length?input.charAt(offset):null;var errorPosition=computeErrorPosition();throw new this.SyntaxError(cleanupExpected(rightmostFailuresExpected),found,offset,errorPosition.line,errorPosition.column);}
return result;},toSource:function(){return this._source;}};result.SyntaxError=function(expected,found,offset,line,column){function buildMessage(expected,found){var expectedHumanized,foundHumanized;switch(expected.length){case 0:expectedHumanized="end of input";break;case 1:expectedHumanized=expected[0];break;default:expectedHumanized=expected.slice(0,expected.length-1).join(", ")
+" or "
+expected[expected.length-1];}
foundHumanized=found?quote(found):"end of input";return"Expected "+expectedHumanized+" but "+foundHumanized+" found.";}
this.name="SyntaxError";this.expected=expected;this.found=found;this.message=buildMessage(expected,found);this.offset=offset;this.line=line;this.column=column;};result.SyntaxError.prototype=Error.prototype;return result;})();