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

aus Kamelopedia, der wüsten Enzyklopädie
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
a2.parser = (function(){
+
 
  /*
+
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)
  * Generated by PEG.js 0.7.0.
+
+'"';}
  *
+
var result={parse:function(input,startRule
  * http://pegjs.majda.cz/
 
  */
 
 
 
  function quote(s) {
 
    /*
 
    * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a
 
    * string literal except for the closing quote character, backslash,
 
    * carriage return, line separator, paragraph separator, and line feed.
 
    * Any character may appear in the form of an escape sequence.
 
    *
 
    * For portability, we also escape escape all control and non-ASCII
 
    * characters. Note that "\0" and "\v" escape sequences are not used
 
    * because JSHint does not like the first and IE the second.
 
    */
 
    return '"' + s
 
      .replace(/\\/g, '\\\\')  // backslash
 
      .replace(/"/g, '\\"')    // closing quote character
 
      .replace(/\x08/g, '\\b') // backspace
 
      .replace(/\t/g, '\\t')  // horizontal tab
 
      .replace(/\n/g, '\\n')  // line feed
 
      .replace(/\f/g, '\\f')  // form feed
 
      .replace(/\r/g, '\\r')  // carriage return
 
      .replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape)
 
      + '"';
 
  }
 
 
 
  var result = {
 
    /*
 
    * Parses the input with a generated parser. If the parsing is successfull,
 
    * returns a value explicitly or implicitly specified by the grammar from
 
    * which the parser was generated (see |PEG.buildParser|). If the parsing is
 
    * unsuccessful, throws |PEG.parser.SyntaxError| describing the error.
 
    */
 
    parse: function(input, startRule) {
 
      var parseFunctions = {
 
        "Event": parse_Event,
 
        "ScopeClause": parse_ScopeClause,
 
        "TriggerClause": parse_TriggerClause,
 
        "TriggerFunctions": parse_TriggerFunctions,
 
        "TriggerFunction": parse_TriggerFunction,
 
        "TriggerPageOp": parse_TriggerPageOp,
 
        "TriggerIdentOp": parse_TriggerIdentOp,
 
        "ConditionClause": parse_ConditionClause,
 
        "ConditionFunction": parse_ConditionFunction,
 
        "ConditionArgs": parse_ConditionArgs,
 
        "ActionClause": parse_ActionClause,
 
        "ActionFunctions": parse_ActionFunctions,
 
        "ActionFunction": parse_ActionFunction,
 
        "L": parse_L,
 
        "R": parse_R,
 
        "C": parse_C,
 
        "CC": parse_CC,
 
        "Scope": parse_Scope,
 
        "Identifier": parse_Identifier,
 
        "Page": parse_Page,
 
        "S": parse_S,
 
        "String": parse_String
 
      };
 
     
 
      if (startRule !== undefined) {
 
        if (parseFunctions[startRule] === undefined) {
 
          throw new Error("Invalid rule name: " + quote(startRule) + ".");
 
        }
 
      } else {
 
        startRule = "Event";
 
      }
 
     
 
      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;
 
        }
 
       
 
        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 clone(object) {
 
        var result = {};
 
        for (var key in object) {
 
          result[key] = object[key];
 
        }
 
        return result;
 
      }
 
     
 
      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);
 
      }
 
     
 
      function parse_Event() {
 
        var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9, result10;
 
        var pos0, pos1;
 
       
 
        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\"");
 
            }
 
          }
 
          if (result1 !== null) {
 
            result2 = parse_S();
 
            if (result2 !== null) {
 
              result3 = parse_Identifier();
 
              if (result3 !== null) {
 
                result4 = parse_CC();
 
                if (result4 !== null) {
 
                  result5 = parse_ScopeClause();
 
                  if (result5 !== null) {
 
                    result6 = parse_TriggerClause();
 
                    if (result6 !== null) {
 
                      result7 = parse_ConditionClause();
 
                      result7 = result7 !== null ? result7 : "";
 
                      if (result7 !== null) {
 
                        result8 = parse_ActionClause();
 
                        result8 = result8
 

Version vom 7. Juli 2012, 10:35 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={"Event":parse_Event,"ScopeClause":parse_ScopeClause,"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,"L":parse_L,"R":parse_R,"C":parse_C,"CC":parse_CC,"Scope":parse_Scope,"Identifier":parse_Identifier,"Page":parse_Page,"S":parse_S,"String":parse_String};if(startRule!==undefined){if(parseFunctions[startRule]===undefined){throw new Error("Invalid rule name: "+quote(startRule)+".");}}else{startRule="Event";}
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;}
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 clone(object){var result={};for(var key in object){result[key]=object[key];}
return result;}
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);}
function parse_Event(){var result0,result1,result2,result3,result4,result5,result6,result7,result8,result9;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\"");}}
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);}
result2=result2!==null?result2:"";if(result2!==null){result3=parse_CC();if(result3!==null){result4=parse_ScopeClause();if(result4!==null){result5=parse_TriggerClause();if(result5!==null){result6=parse_ConditionClause();result6=result6!==null?result6:"";if(result6!==null){result7=parse_ActionClause();result7=result7!==null?result7:"";if(result7!==null){if(input.substr(pos.offset,4)==="end."){result8="end.";advance(pos,4);}else{result8=null;if(reportFailures===0){matchFailed("\"end.\"");}}
if(result8!==null){result9=parse_S();result9=result9!==null?result9:"";if(result9!==null){result0=[result0,result1,result2,result3,result4,result5,result6,result7,result8,result9];}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);}}else{result0=null;pos=clone(pos1);}
if(result0!==null){result0=(function(offset,line,column,n,sc,tr,co,ac){return{name:n?n[1]:"<anonymous>",scope:sc,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],result0[7]);}
if(result0===null){pos=clone(pos0);}
return result0;}
function parse_ScopeClause(){var result0,result1,result2,result3;var pos0,pos1;pos0=clone(pos);pos1=clone(pos);if(input.substr(pos.offset,2)==="in"){result0="in";advance(pos,2);}else{result0=null;if(reportFailures===0){matchFailed("\"in\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_Scope();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){result0=(function(offset,line,column,sc){return sc;})(pos0.offset,pos0.line,pos0.column,result0[2]);}
if(result0===null){pos=clone(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;}
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);}
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){pos=clone(pos0);}
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=clone(pos0);}}
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);}
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=clone(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){result0=(function(offset,line,column,t,a){return t+"."+a;})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
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;}
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\"");}}
if(result0===null){if(input.substr(pos.offset,5)==="leave"){result0="leave";advance(pos,5);}else{result0=null;if(reportFailures===0){matchFailed("\"leave\"");}}}
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\"");}}
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.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;}
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\"");}}
if(result0===null){if(input.substr(pos.offset,5)==="apply"){result0="apply";advance(pos,5);}else{result0=null;if(reportFailures===0){matchFailed("\"apply\"");}}}
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\"");}}
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){result0=(function(offset,line,column,co){return co;})(pos0.offset,pos0.line,pos0.column,result0[2]);}
if(result0===null){pos=clone(pos0);}
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\"");}}
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){result0=(function(offset,line,column,p){return function(state){return state.cpage==p};})(pos0.offset,pos0.line,pos0.column,result0[2]);}
if(result0===null){pos=clone(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){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){result0=(function(offset,line,column,a){return function(state){for(var j=0;j<a.length;j++)if(a[j](state))return true;return false;}})(pos0.offset,pos0.line,pos0.column,result0[2]);}
if(result0===null){pos=clone(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){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){result0=(function(offset,line,column,i){return function(state){return state.citems.indexOf(i)>-1};})(pos0.offset,pos0.line,pos0.column,result0[2]);}
if(result0===null){pos=clone(pos0);}}}
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);}
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){pos=clone(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){pos=clone(pos0);}}
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\"");}}
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){result0=(function(offset,line,column,ac){return ac;})(pos0.offset,pos0.line,pos0.column,result0[2]);}
if(result0===null){pos=clone(pos0);}
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);}
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){pos=clone(pos0);}
if(result0===null){result0=parse_ActionFunction();}
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\"");}}
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){result0=(function(offset,line,column,f,p){return function(action){a2.util.goto(p)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
if(result0===null){pos=clone(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){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){result0=(function(offset,line,column,f,i){return function(action){a2.util.add(i)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
if(result0===null){pos=clone(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){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){result0=(function(offset,line,column,f,i){return function(action){a2.util.remove(i)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
if(result0===null){pos=clone(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){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){result0=(function(offset,line,column,f,s){return function(action){a2.util.print(s)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
if(result0===null){pos=clone(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){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){result0=(function(offset,line,column,f,s){return function(action){a2.util.die(s)};})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}}}}}
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("\"(\"");}}
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);}
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("\")\"");}}
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);}
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("\",\"");}}
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);}
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("\";\"");}}
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);}
return result0;}
function parse_Scope(){var result0,result1,result2;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\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_Page();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(result0!==null){result0=(function(offset,line,column,s,p){return[s,p];})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}
if(result0===null){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\"");}}
if(result0!==null){result1=parse_S();if(result1!==null){result2=parse_Identifier();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(result0!==null){result0=(function(offset,line,column,s,i){return[s,i];})(pos0.offset,pos0.line,pos0.column,result0[0],result0[2]);}
if(result0===null){pos=clone(pos0);}}
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_]");}}
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_]");}}
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_]");}}}
if(result1!==null){result0=[result0,result1];}else{result0=null;pos=clone(pos1);}}else{result0=null;pos=clone(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){pos=clone(pos0);}
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]");}}
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(result0!==null){result0=(function(offset,line,column,p){return p.join("");})(pos0.offset,pos0.line,pos0.column,result0);}
if(result0===null){pos=clone(pos0);}
return result0;}
function parse_S(){var result0,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]");}}
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;}
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("\"'\"");}}
if(result0!==null){result1=[];if(/^[^']/.test(input.charAt(pos.offset))){result2=input.charAt(pos.offset);advance(pos,1);}else{result2=null;if(reportFailures===0){matchFailed("[^']");}}
while(result2!==null){result1.push(result2);if(/^[^']/.test(input.charAt(pos.offset))){result2=input.charAt(pos.offset);advance(pos,1);}else{result2=null;if(reportFailures===0){matchFailed("[^']");}}}
if(result1!==null){if(input.charCodeAt(pos.offset)===39){result2="'";advance(pos,1);}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(result0!==null){result0=(function(offset,line,column,s){return s.join("");})(pos0.offset,pos0.line,pos0.column,result0[1]);}
if(result0===null){pos=clone(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){result1=[];if(/^[^"]/.test(input.charAt(pos.offset))){result2=input.charAt(pos.offset);advance(pos,1);}else{result2=null;if(reportFailures===0){matchFailed("[^\"]");}}
while(result2!==null){result1.push(result2);if(/^[^"]/.test(input.charAt(pos.offset))){result2=input.charAt(pos.offset);advance(pos,1);}else{result2=null;if(reportFailures===0){matchFailed("[^\"]");}}}
if(result1!==null){if(input.charCodeAt(pos.offset)===34){result2="\"";advance(pos,1);}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(result0!==null){result0=(function(offset,line,column,s){return s.join("");})(pos0.offset,pos0.line,pos0.column,result0[1]);}
if(result0===null){pos=clone(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;}
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);}
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;})();