MediaWiki:Skin/Projekt:Adventure2/parser.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
J* (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
J* (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
a2.parser = (function(){ | |||
/* | |||
* Generated by PEG.js 0.7.0. | |||
* | |||
* 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, | |||
"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) { | |||
Version vom 7. Juli 2012, 12:31 Uhr
a2.parser = (function(){
/*
* Generated by PEG.js 0.7.0.
*
* 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,
"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(){return a2.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(){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) {
pos = clone(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) {
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(){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) {
pos = clone(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) {
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) {
result0 = (function(offset, line, column, f) {return function(){ return !f()};})(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(){return !!a2.items[i]};})(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(){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(){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(){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(){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(){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]();
/*
* The parser is now in one of the following three states:
*
* 1. The parser successfully parsed the whole input.
*
* - |result !== null|
* - |pos.offset === input.length|
* - |rightmostFailuresExpected| may or may not contain something
*
* 2. The parser successfully parsed only a part of the input.
*
* - |result !== null|
* - |pos.offset < input.length|
* - |rightmostFailuresExpected| may or may not contain something
*
* 3. The parser did not successfully parse any part of the input.
*
* - |result === null|
* - |pos.offset === 0|
* - |rightmostFailuresExpected| contains at least one failure
*
* All code following this comment (including called functions) must
* handle these states.
*/
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;
},
/* Returns the parser source code. */
toSource: function() { return this._source; }
};
/* Thrown when a parser encounters a syntax error. */
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;
})();