MediaWiki:Skin/Projekt:Adventure2/parser.js: Unterschied zwischen den Versionen

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
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,"TriggerPageOp":parse_TriggerPageOp,"TriggerIdentOp":parse_TriggerIdentOp,"TriggerBinaryOp":parse_TriggerBinaryOp,"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 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={offset:0,line:1,column:1,seenCR:false};var reportFailures=0;var rightmostFailuresPos={offset:0,line:1,column:1,seenCR:false};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;}
+
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 clone(object){var result={};for(var key in object){result[key]=object[key];}
+
function matchFailed(failure){if(pos<rightmostFailuresPos){return;}
return result;}
+
if(pos>rightmostFailuresPos){rightmostFailuresPos=pos;rightmostFailuresExpected=[];}
function advance(pos,n){var endOffset=pos.offset+n;for(var offset=pos.offset;offset<endOffset;offset++){var ch=input.charAt(offset);if(ch==="\n"){if(!pos.seenCR){pos.line++;}
 
pos.column=1;pos.seenCR=false;}else if(ch==="\r"||ch==="\u2028"||ch==="\u2029"){pos.line++;pos.column=1;pos.seenCR=true;}else{pos.column++;pos.seenCR=false;}}
 
pos.offset+=n;}
 
function matchFailed(failure){if(pos.offset<rightmostFailuresPos.offset){return;}
 
if(pos.offset>rightmostFailuresPos.offset){rightmostFailuresPos=clone(pos);rightmostFailuresExpected=[];}
 
 
rightmostFailuresExpected.push(failure);}
 
rightmostFailuresExpected.push(failure);}
function parse_start(){var result0,result1,result2;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){result1=[];result2=parse_Declaration();while(result2!==null){result1.push(result2);result2=parse_Declaration();}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,line,column,d){return d;})(pos0.offset,pos0.line,pos0.column,result0[1]);}
+
if(result0!==null){result0=(function(offset,d){return d;})(pos0,result0[1]);}
if(result0===null){pos=clone(pos0);}
+
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=clone(pos);pos1=clone(pos);result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.substr(pos.offset,5)==="event"){result1="event";advance(pos,5);}else{result1=null;if(reportFailures===0){matchFailed("\"event\"");}}
+
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=clone(pos);result2=parse_S();if(result2!==null){result3=parse_Identifier();if(result3!==null){result2=[result2,result3];}else{result2=null;pos=clone(pos2);}}else{result2=null;pos=clone(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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,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.offset,pos0.line,pos0.column,result0[2],result0[4],result0[5],result0[6]);}
+
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=clone(pos0);}
+
if(result0===null){pos=pos0;}
return result0;}
 
function parse_TriggerClause(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,2)==="on"){result0="on";advance(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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
 
if(result0!==null){result0=(function(offset,line,column,tr){return tr;})(pos0.offset,pos0.line,pos0.column,result0[3]);}
 
if(result0===null){pos=clone(pos0);}
 
 
return result0;}
 
return result0;}
function parse_TriggerFunctions(){var result0,result1,result2;var pos0,pos1;pos0=clone(pos);pos1=clone(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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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){result0=(function(offset,line,column,t,o){o.push(t);return o;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
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){pos=clone(pos0);}
+
if(result0!==null){result0=(function(offset,tr){return tr;})(pos0,result0[3]);}
if(result0===null){pos0=clone(pos);result0=parse_TriggerFunction();if(result0!==null){result0=(function(offset,line,column,t){return[t];})(pos0.offset,pos0.line,pos0.column,result0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos=clone(pos0);}}
 
 
return result0;}
 
return result0;}
function parse_TriggerFunction(){var result0,result1,result2,result3,result4,result5;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);result0=parse_TriggerPageOp();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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,t,a){return t+"."+a;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,t,o){o.push(t);return o;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);result0=parse_TriggerIdentOp();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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
if(result0===null){pos0=pos;result0=parse_TriggerFunction();if(result0!==null){result0=(function(offset,t){return[t];})(pos0,result0);}
if(result0!==null){result0=(function(offset,line,column,t,a){return t+"."+a;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0===null){pos=pos0;}}
if(result0===null){pos=clone(pos0);}
 
if(result0===null){pos0=clone(pos);pos1=clone(pos);result0=parse_TriggerBinaryOp();if(result0!==null){result1=parse_L();if(result1!==null){result2=parse_Identifier();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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
 
if(result0!==null){result0=(function(offset,line,column,t,a,b){return[t,a,b].join(".")})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2],result0[4]);}
 
if(result0===null){pos=clone(pos0);}}}
 
 
return result0;}
 
return result0;}
function parse_TriggerPageOp(){var result0;if(input.substr(pos.offset,5)==="enter"){result0="enter";advance(pos,5);}else{result0=null;if(reportFailures===0){matchFailed("\"enter\"");}}
+
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.offset,5)==="leave"){result0="leave";advance(pos,5);}else{result0=null;if(reportFailures===0){matchFailed("\"leave\"");}}}
+
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 parse_TriggerIdentOp(){var result0;if(input.substr(pos.offset,3)==="add"){result0="add";advance(pos,3);}else{result0=null;if(reportFailures===0){matchFailed("\"add\"");}}
+
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.offset,6)==="remove"){result0="remove";advance(pos,6);}else{result0=null;if(reportFailures===0){matchFailed("\"remove\"");}}
+
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.offset,8)==="activate"){result0="activate";advance(pos,8);}else{result0=null;if(reportFailures===0){matchFailed("\"activate\"");}}
 
if(result0===null){if(input.substr(pos.offset,5)==="click"){result0="click";advance(pos,5);}else{result0=null;if(reportFailures===0){matchFailed("\"click\"");}}}}}
 
 
return result0;}
 
return result0;}
function parse_TriggerBinaryOp(){var result0;if(input.substr(pos.offset,7)==="combine"){result0="combine";advance(pos,7);}else{result0=null;if(reportFailures===0){matchFailed("\"combine\"");}}
+
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.offset,5)==="apply"){result0="apply";advance(pos,5);}else{result0=null;if(reportFailures===0){matchFailed("\"apply\"");}}}
+
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=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,2)==="if"){result0="if";advance(pos,2);}else{result0=null;if(reportFailures===0){matchFailed("\"if\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,co){return co;})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,co){return co;})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_ConditionFunction(){var result0,result1,result2,result3;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,4)==="page"){result0="page";advance(pos,4);}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,p){return function(){return a2.cpage==p};})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,p){return function(){return a2.cpage==p};})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,3)==="any"){result0="any";advance(pos,3);}else{result0=null;if(reportFailures===0){matchFailed("\"any\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,a){return function(){for(var j=0;j<a.length;j++)if(a[j]())return true;return false;}})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
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=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,3)==="all"){result0="all";advance(pos,3);}else{result0=null;if(reportFailures===0){matchFailed("\"all\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,a){return function(){for(var j=0;j<a.length;j++)if(!a[j]())return false;return true;}})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
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=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,3)==="not"){result0="not";advance(pos,3);}else{result0=null;if(reportFailures===0){matchFailed("\"not\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,f){return function(){return!f()};})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,f){return function(){return!f()};})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,4)==="have"){result0="have";advance(pos,4);}else{result0=null;if(reportFailures===0){matchFailed("\"have\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,i){return function(){return!!a2.items[i]};})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,i){return function(){return!!a2.items[i]};})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,4)==="page"){result0="page";advance(pos,4);}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,v){return function(){return!!a2.hasVirtual(v);};})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,v){return function(){return!!a2.hasVirtual(v);};})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,4)==="have"){result0="have";advance(pos,4);}else{result0=null;if(reportFailures===0){matchFailed("\"have\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,v){return function(){return!!a2.hasVirtual(v);};})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,v){return function(){return!!a2.hasVirtual(v);};})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}}}}}}}
+
if(result0===null){pos=pos0;}}}}}}}
 
return result0;}
 
return result0;}
function parse_ConditionArgs(){var result0,result1,result2;var pos0,pos1;pos0=clone(pos);pos1=clone(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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,f,a){a.push(f);return a;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,f,a){a.push(f);return a;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);result0=parse_ConditionFunction();if(result0!==null){result0=(function(offset,line,column,f){return[f];})(pos0.offset,pos0.line,pos0.column,result0);}
+
if(result0===null){pos0=pos;result0=parse_ConditionFunction();if(result0!==null){result0=(function(offset,f){return[f];})(pos0,result0);}
if(result0===null){pos=clone(pos0);}}
+
if(result0===null){pos=pos0;}}
 
return result0;}
 
return result0;}
function parse_ActionClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,2)==="do"){result0="do";advance(pos,2);}else{result0=null;if(reportFailures===0){matchFailed("\"do\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,ac){return ac;})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,ac){return ac;})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_ActionFunctions(){var result0,result1,result2;var pos0,pos1;pos0=clone(pos);pos1=clone(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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,f,a){return function(action){a();f();};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,f,a){return function(action){a();f();};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
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=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,4)==="goto"){result0="goto";advance(pos,4);}else{result0=null;if(reportFailures===0){matchFailed("\"goto\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,f,p){return function(){a2.util.goto(p)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,f,p){return function(){a2.util.goto(p)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,3)==="add"){result0="add";advance(pos,3);}else{result0=null;if(reportFailures===0){matchFailed("\"add\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,f,i){return function(){a2.util.add(i)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,f,i){return function(){a2.util.add(i)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,6)==="remove"){result0="remove";advance(pos,6);}else{result0=null;if(reportFailures===0){matchFailed("\"remove\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,f,i){return function(){a2.util.remove(i)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,f,i){return function(){a2.util.remove(i)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,5)==="print"){result0="print";advance(pos,5);}else{result0=null;if(reportFailures===0){matchFailed("\"print\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,f,s){return function(){a2.util.print(s)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,f,s){return function(){a2.util.print(s)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,3)==="die"){result0="die";advance(pos,3);}else{result0=null;if(reportFailures===0){matchFailed("\"die\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,f,s){return function(){a2.util.die(s)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,f,s){return function(){a2.util.die(s)};})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}}}}}
+
if(result0===null){pos=pos0;}}}}}
 
return result0;}
 
return result0;}
function parse_PageDec(){var result0,result1,result2,result3;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,4)==="page"){result0="page";advance(pos,4);}else{result0=null;if(reportFailures===0){matchFailed("\"page\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,pv){return["page",{virt:pv}];})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,pv){return["page",{virt:pv}];})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_PageVirtualClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,8)==="provides"){result0="provides";advance(pos,8);}else{result0=null;if(reportFailures===0){matchFailed("\"provides\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,v){return v;})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,v){return v;})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_PageVirtualList(){var result0,result1,result2;var pos0,pos1;pos0=clone(pos);pos1=clone(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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,v,vl){vl.push(v);return vl;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,v,vl){vl.push(v);return vl;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);result0=parse_PageVirtual();if(result0!==null){result0=(function(offset,line,column,v){return[v];})(pos0.offset,pos0.line,pos0.column,result0);}
+
if(result0===null){pos0=pos;result0=parse_PageVirtual();if(result0!==null){result0=(function(offset,v){return[v];})(pos0,result0);}
if(result0===null){pos=clone(pos0);}}
+
if(result0===null){pos=pos0;}}
 
return result0;}
 
return result0;}
function parse_ItemDec(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,4)==="item"){result0="item";advance(pos,4);}else{result0=null;if(reportFailures===0){matchFailed("\"item\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,t,iv){return["item",{virt:iv,title:t}];})(pos0.offset,pos0.line,pos0.column,result0[2],result0[3]);}
+
if(result0!==null){result0=(function(offset,t,iv){return["item",{virt:iv,title:t}];})(pos0,result0[2],result0[3]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_TitleClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,5)==="title"){result0="title";advance(pos,5);}else{result0=null;if(reportFailures===0){matchFailed("\"title\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,s){return s;})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,s){return s;})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_ItemVirtualClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,8)==="provides"){result0="provides";advance(pos,8);}else{result0=null;if(reportFailures===0){matchFailed("\"provides\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,v){return v;})(pos0.offset,pos0.line,pos0.column,result0[2]);}
+
if(result0!==null){result0=(function(offset,v){return v;})(pos0,result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_ItemVirtualList(){var result0,result1,result2;var pos0,pos1;pos0=clone(pos);pos1=clone(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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,v,vl){vl.push(v);return vl;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
+
if(result0!==null){result0=(function(offset,v,vl){vl.push(v);return vl;})(pos0,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);result0=parse_ItemVirtual();if(result0!==null){result0=(function(offset,line,column,v){return[v];})(pos0.offset,pos0.line,pos0.column,result0);}
+
if(result0===null){pos0=pos;result0=parse_ItemVirtual();if(result0!==null){result0=(function(offset,v){return[v];})(pos0,result0);}
if(result0===null){pos=clone(pos0);}}
+
if(result0===null){pos=pos0;}}
 
return result0;}
 
return result0;}
function parse_L(){var result0,result1,result2;var pos0;pos0=clone(pos);result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos.offset)===40){result1="(";advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("\"(\"");}}
+
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=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}
+
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=clone(pos);result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos.offset)===41){result1=")";advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("\")\"");}}
+
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=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}
+
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=clone(pos);result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos.offset)===44){result1=",";advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("\",\"");}}
+
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=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}
+
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=clone(pos);result0=parse_S();result0=result0!==null?result0:"";if(result0!==null){if(input.charCodeAt(pos.offset)===59){result1=";";advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("\";\"");}}
+
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=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}
+
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=clone(pos);pos1=clone(pos);if(/^[a-z\xE4\xF6\xFC_]/.test(input.charAt(pos.offset))){result0=input.charAt(pos.offset);advance(pos,1);}else{result0=null;if(reportFailures===0){matchFailed("[a-z\\xE4\\xF6\\xFC_]");}}
+
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.offset))){result2=input.charAt(pos.offset);advance(pos,1);}else{result2=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.offset))){result2=input.charAt(pos.offset);advance(pos,1);}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=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
if(result1!==null){result0=[result0,result1];}else{result0=null;pos=pos1;}}else{result0=null;pos=pos1;}
if(result0!==null){result0=(function(offset,line,column,i1,i2){return i1+i2.join("");})(pos0.offset,pos0.line,pos0.column,result0[0],result0[1]);}
+
if(result0!==null){result0=(function(offset,i1,i2){return i1+i2.join("");})(pos0,result0[0],result0[1]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_PageVirtual(){var result0,result1;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.charCodeAt(pos.offset)===64){result0="@";advance(pos,1);}else{result0=null;if(reportFailures===0){matchFailed("\"@\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,p,i){return p+i;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[1]);}
+
if(result0!==null){result0=(function(offset,p,i){return p+i;})(pos0,result0[0],result0[1]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_ItemVirtual(){var result0,result1;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.charCodeAt(pos.offset)===58){result0=":";advance(pos,1);}else{result0=null;if(reportFailures===0){matchFailed("\":\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,p,i){return p+i;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[1]);}
+
if(result0!==null){result0=(function(offset,p,i){return p+i;})(pos0,result0[0],result0[1]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_Page(){var result0,result1;var pos0;pos0=clone(pos);if(/^[0-9]/.test(input.charAt(pos.offset))){result1=input.charAt(pos.offset);advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("[0-9]");}}
+
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.offset))){result1=input.charAt(pos.offset);advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("[0-9]");}}}}else{result0=null;}
+
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,line,column,p){return p.join("");})(pos0.offset,pos0.line,pos0.column,result0);}
+
if(result0!==null){result0=(function(offset,p){return p.join("");})(pos0,result0);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
 
return result0;}
 
return result0;}
function parse_S(){var result0,result1,result2,result3,result4;var pos0,pos1;pos0=clone(pos);result0=[];if(/^[ \t\n]/.test(input.charAt(pos.offset))){result1=input.charAt(pos.offset);advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}
+
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.offset))){result1=input.charAt(pos.offset);advance(pos,1);}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.offset,2)==="/*"){result1="/*";advance(pos,2);}else{result1=null;if(reportFailures===0){matchFailed("\"/*\"");}}
+
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.offset))){result3=input.charAt(pos.offset);advance(pos,1);}else{result3=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=clone(pos);if(/^[*]/.test(input.charAt(pos.offset))){result3=input.charAt(pos.offset);advance(pos,1);}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.offset))){result4=input.charAt(pos.offset);advance(pos,1);}else{result4=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=clone(pos1);}}else{result3=null;pos=clone(pos1);}}
+
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.offset))){result3=input.charAt(pos.offset);advance(pos,1);}else{result3=null;if(reportFailures===0){matchFailed("[^*]");}}
+
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=clone(pos);if(/^[*]/.test(input.charAt(pos.offset))){result3=input.charAt(pos.offset);advance(pos,1);}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.offset))){result4=input.charAt(pos.offset);advance(pos,1);}else{result4=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=clone(pos1);}}else{result3=null;pos=clone(pos1);}}}
+
if(result4!==null){result3=[result3,result4];}else{result3=null;pos=pos1;}}else{result3=null;pos=pos1;}}}
if(result2!==null){if(input.substr(pos.offset,2)==="*/"){result3="*/";advance(pos,2);}else{result3=null;if(reportFailures===0){matchFailed("\"*/\"");}}
+
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=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}
+
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=clone(pos);result0=[];if(/^[ \t\n]/.test(input.charAt(pos.offset))){result1=input.charAt(pos.offset);advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}
+
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.offset))){result1=input.charAt(pos.offset);advance(pos,1);}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.offset,2)==="//"){result1="//";advance(pos,2);}else{result1=null;if(reportFailures===0){matchFailed("\"//\"");}}
+
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.offset))){result3=input.charAt(pos.offset);advance(pos,1);}else{result3=null;if(reportFailures===0){matchFailed("[^\\n]");}}
+
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.offset))){result3=input.charAt(pos.offset);advance(pos,1);}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.offset))){result3=input.charAt(pos.offset);advance(pos,1);}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=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}
+
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.offset))){result1=input.charAt(pos.offset);advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}
+
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.offset))){result1=input.charAt(pos.offset);advance(pos,1);}else{result1=null;if(reportFailures===0){matchFailed("[ \\t\\n]");}}}}else{result0=null;}}}
+
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=clone(pos);pos1=clone(pos);if(input.charCodeAt(pos.offset)===39){result0="'";advance(pos,1);}else{result0=null;if(reportFailures===0){matchFailed("\"'\"");}}
+
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.offset)===39){result2="'";advance(pos,1);}else{result2=null;if(reportFailures===0){matchFailed("\"'\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,s){return s.join("");})(pos0.offset,pos0.line,pos0.column,result0[1]);}
+
if(result0!==null){result0=(function(offset,s){return s.join("");})(pos0,result0[1]);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);pos1=clone(pos);if(input.charCodeAt(pos.offset)===34){result0="\"";advance(pos,1);}else{result0=null;if(reportFailures===0){matchFailed("\"\\\"\"");}}
+
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.offset)===34){result2="\"";advance(pos,1);}else{result2=null;if(reportFailures===0){matchFailed("\"\\\"\"");}}
+
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=clone(pos1);}}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(pos1);}
+
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,line,column,s){return s.join("");})(pos0.offset,pos0.line,pos0.column,result0[1]);}
+
if(result0!==null){result0=(function(offset,s){return s.join("");})(pos0,result0[1]);}
if(result0===null){pos=clone(pos0);}}
+
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.offset))){result0=input.charAt(pos.offset);advance(pos,1);}else{result0=null;if(reportFailures===0){matchFailed("[^']");}}}
+
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.offset))){result0=input.charAt(pos.offset);advance(pos,1);}else{result0=null;if(reportFailures===0){matchFailed("[^\"]");}}}
+
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=clone(pos);if(input.substr(pos.offset,2)==="\\n"){result0="\\n";advance(pos,2);}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\n\"");}}
+
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,line,column){return"\n";})(pos0.offset,pos0.line,pos0.column);}
+
if(result0!==null){result0=(function(offset){return"\n";})(pos0);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);if(input.substr(pos.offset,2)==="\\\""){result0="\\\"";advance(pos,2);}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\\\\"\"");}}
+
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,line,column){return'"';})(pos0.offset,pos0.line,pos0.column);}
+
if(result0!==null){result0=(function(offset){return'"';})(pos0);}
if(result0===null){pos=clone(pos0);}
+
if(result0===null){pos=pos0;}
if(result0===null){pos0=clone(pos);if(input.substr(pos.offset,2)==="\\'"){result0="\\'";advance(pos,2);}else{result0=null;if(reportFailures===0){matchFailed("\"\\\\'\"");}}
+
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,line,column){return"'";})(pos0.offset,pos0.line,pos0.column);}
+
if(result0!==null){result0=(function(offset){return"'";})(pos0);}
if(result0===null){pos=clone(pos0);}}}
+
if(result0===null){pos=pos0;}}}
 
return result0;}
 
return result0;}
function parse_End(){var result0,result1,result2,result3;var pos0;pos0=clone(pos);if(input.substr(pos.offset,3)==="end"){result0="end";advance(pos,3);}else{result0=null;if(reportFailures===0){matchFailed("\"end\"");}}
+
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.offset)===46){result2=".";advance(pos,1);}else{result2=null;if(reportFailures===0){matchFailed("\".\"");}}
+
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=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}}else{result0=null;pos=clone(pos0);}
+
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.offset!==input.length){var offset=Math.max(pos.offset,rightmostFailuresPos.offset);var found=offset<input.length?input.charAt(offset):null;var errorPosition=pos.offset>rightmostFailuresPos.offset?pos:rightmostFailuresPos;throw new this.SyntaxError(cleanupExpected(rightmostFailuresExpected),found,offset,errorPosition.line,errorPosition.column);}
+
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;})();