You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pegjs/lib/metagrammar.js

4626 lines
157 KiB
JavaScript

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

PEG.grammarParser = (function(){
var result = new PEG.Parser("grammar");
result._parse_grammar = function(context) {
this._cache["grammar"] = this._cache["grammar"] || [];
var cachedResult = this._cache["grammar"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos0 = this._pos;
var result2 = this._parse___(context);
if (result2 !== null) {
var savedPos1 = this._pos;
var result5 = this._parse_rule(context);
if (result5 !== null) {
var result6 = [];
var result7 = this._parse_rule(context);
while (result7 !== null) {
result6.push(result7);
var result7 = this._parse_rule(context);
}
if (result6 !== null) {
var result4 = [result5, result6];
} else {
var result4 = null;
this._pos = savedPos1;
}
} else {
var result4 = null;
this._pos = savedPos1;
}
var result3 = result4 !== null
? (
function (first, rest) {
return [first].concat(rest);
}
).apply(this, result4)
: null;
if (result3 !== null) {
var result1 = [result2, result3];
} else {
var result1 = null;
this._pos = savedPos0;
}
} else {
var result1 = null;
this._pos = savedPos0;
}
var result0 = result1 !== null
? (function() {
var result = {};
for (var i = 0; i < (arguments[1]).length; i++) { result[(arguments[1])[i].getName()] = (arguments[1])[i]; }
return result;
}).apply(this, result1)
: null;
this._cache["grammar"][pos] = {
length: this._pos - pos,
result: result0
};
return result0;
};
result._parse_rule = function(context) {
this._cache["rule"] = this._cache["rule"] || [];
var cachedResult = this._cache["rule"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos2 = this._pos;
var result10 = this._parse_identifier(context);
if (result10 !== null) {
var result15 = this._parse_literal(context);
if (result15 !== null) {
var result11 = result15;
} else {
if (this._input.substr(this._pos, 0) === "") {
var result14 = "";
this._pos += 0;
} else {
var result14 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result14 !== null) {
var result11 = result14;
} else {
var result11 = null;;
};
}
if (result11 !== null) {
var result12 = this._parse_colon(context);
if (result12 !== null) {
var result13 = this._parse_expression(context);
if (result13 !== null) {
var result9 = [result10, result11, result12, result13];
} else {
var result9 = null;
this._pos = savedPos2;
}
} else {
var result9 = null;
this._pos = savedPos2;
}
} else {
var result9 = null;
this._pos = savedPos2;
}
} else {
var result9 = null;
this._pos = savedPos2;
}
var result8 = result9 !== null
? (function() {
return new PEG.Grammar.Rule((arguments[0]), (arguments[1]) !== "" ? (arguments[1]) : null, (arguments[3]));
}).apply(this, result9)
: null;
this._cache["rule"][pos] = {
length: this._pos - pos,
result: result8
};
return result8;
};
result._parse_expression = function(context) {
this._cache["expression"] = this._cache["expression"] || [];
var cachedResult = this._cache["expression"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var result16 = this._parse_choice(context);
this._cache["expression"][pos] = {
length: this._pos - pos,
result: result16
};
return result16;
};
result._parse_choice = function(context) {
this._cache["choice"] = this._cache["choice"] || [];
var cachedResult = this._cache["choice"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos3 = this._pos;
var result19 = this._parse_sequence(context);
if (result19 !== null) {
var result20 = [];
var savedPos4 = this._pos;
var result22 = this._parse_slash(context);
if (result22 !== null) {
var result23 = this._parse_sequence(context);
if (result23 !== null) {
var result21 = [result22, result23];
} else {
var result21 = null;
this._pos = savedPos4;
}
} else {
var result21 = null;
this._pos = savedPos4;
}
while (result21 !== null) {
result20.push(result21);
var savedPos4 = this._pos;
var result22 = this._parse_slash(context);
if (result22 !== null) {
var result23 = this._parse_sequence(context);
if (result23 !== null) {
var result21 = [result22, result23];
} else {
var result21 = null;
this._pos = savedPos4;
}
} else {
var result21 = null;
this._pos = savedPos4;
}
}
if (result20 !== null) {
var result18 = [result19, result20];
} else {
var result18 = null;
this._pos = savedPos3;
}
} else {
var result18 = null;
this._pos = savedPos3;
}
var result17 = result18 !== null
? (function() {
return (arguments[1]).length > 0
? new PEG.Grammar.Choice([(arguments[0])].concat(PEG.ArrayUtils.map(
(arguments[1]),
function(element) { return element[1]; }
)))
: (arguments[0]);
}).apply(this, result18)
: null;
this._cache["choice"][pos] = {
length: this._pos - pos,
result: result17
};
return result17;
};
result._parse_sequence = function(context) {
this._cache["sequence"] = this._cache["sequence"] || [];
var cachedResult = this._cache["sequence"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos5 = this._pos;
var result30 = [];
var result32 = this._parse_prefixed(context);
while (result32 !== null) {
result30.push(result32);
var result32 = this._parse_prefixed(context);
}
if (result30 !== null) {
var result31 = this._parse_action(context);
if (result31 !== null) {
var result29 = [result30, result31];
} else {
var result29 = null;
this._pos = savedPos5;
}
} else {
var result29 = null;
this._pos = savedPos5;
}
var result28 = result29 !== null
? (function() {
return new PEG.Grammar.Action(
(arguments[0]).length != 1 ? new PEG.Grammar.Sequence((arguments[0])) : (arguments[0])[0],
(arguments[1])
);
}).apply(this, result29)
: null;
if (result28 !== null) {
var result24 = result28;
} else {
var result26 = [];
var result27 = this._parse_prefixed(context);
while (result27 !== null) {
result26.push(result27);
var result27 = this._parse_prefixed(context);
}
var result25 = result26 !== null
? (function() { return (arguments[0]).length != 1 ? new PEG.Grammar.Sequence((arguments[0])) : (arguments[0])[0]; }).call(this, result26)
: null;
if (result25 !== null) {
var result24 = result25;
} else {
var result24 = null;;
};
}
this._cache["sequence"][pos] = {
length: this._pos - pos,
result: result24
};
return result24;
};
result._parse_prefixed = function(context) {
this._cache["prefixed"] = this._cache["prefixed"] || [];
var cachedResult = this._cache["prefixed"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos7 = this._pos;
var result41 = this._parse_and(context);
if (result41 !== null) {
var result42 = this._parse_suffixed(context);
if (result42 !== null) {
var result40 = [result41, result42];
} else {
var result40 = null;
this._pos = savedPos7;
}
} else {
var result40 = null;
this._pos = savedPos7;
}
var result39 = result40 !== null
? (function() {
return new PEG.Grammar.NotPredicate(new PEG.Grammar.NotPredicate((arguments[1])));
}).apply(this, result40)
: null;
if (result39 !== null) {
var result33 = result39;
} else {
var savedPos6 = this._pos;
var result37 = this._parse_not(context);
if (result37 !== null) {
var result38 = this._parse_suffixed(context);
if (result38 !== null) {
var result36 = [result37, result38];
} else {
var result36 = null;
this._pos = savedPos6;
}
} else {
var result36 = null;
this._pos = savedPos6;
}
var result35 = result36 !== null
? (function() { return new PEG.Grammar.NotPredicate((arguments[1])); }).apply(this, result36)
: null;
if (result35 !== null) {
var result33 = result35;
} else {
var result34 = this._parse_suffixed(context);
if (result34 !== null) {
var result33 = result34;
} else {
var result33 = null;;
};
};
}
this._cache["prefixed"][pos] = {
length: this._pos - pos,
result: result33
};
return result33;
};
result._parse_suffixed = function(context) {
this._cache["suffixed"] = this._cache["suffixed"] || [];
var cachedResult = this._cache["suffixed"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos10 = this._pos;
var result55 = this._parse_primary(context);
if (result55 !== null) {
var result56 = this._parse_question(context);
if (result56 !== null) {
var result54 = [result55, result56];
} else {
var result54 = null;
this._pos = savedPos10;
}
} else {
var result54 = null;
this._pos = savedPos10;
}
var result53 = result54 !== null
? (function() {
return new PEG.Grammar.Choice([(arguments[0]), new PEG.Grammar.Literal("")]);
}).apply(this, result54)
: null;
if (result53 !== null) {
var result43 = result53;
} else {
var savedPos9 = this._pos;
var result51 = this._parse_primary(context);
if (result51 !== null) {
var result52 = this._parse_star(context);
if (result52 !== null) {
var result50 = [result51, result52];
} else {
var result50 = null;
this._pos = savedPos9;
}
} else {
var result50 = null;
this._pos = savedPos9;
}
var result49 = result50 !== null
? (function() { return new PEG.Grammar.ZeroOrMore((arguments[0])); }).apply(this, result50)
: null;
if (result49 !== null) {
var result43 = result49;
} else {
var savedPos8 = this._pos;
var result47 = this._parse_primary(context);
if (result47 !== null) {
var result48 = this._parse_plus(context);
if (result48 !== null) {
var result46 = [result47, result48];
} else {
var result46 = null;
this._pos = savedPos8;
}
} else {
var result46 = null;
this._pos = savedPos8;
}
var result45 = result46 !== null
? (function() {
return new PEG.Grammar.Action(
new PEG.Grammar.Sequence([(arguments[0]), new PEG.Grammar.ZeroOrMore((arguments[0]))]),
function(first, rest) { return [first].concat(rest); }
);
}).apply(this, result46)
: null;
if (result45 !== null) {
var result43 = result45;
} else {
var result44 = this._parse_primary(context);
if (result44 !== null) {
var result43 = result44;
} else {
var result43 = null;;
};
};
};
}
this._cache["suffixed"][pos] = {
length: this._pos - pos,
result: result43
};
return result43;
};
result._parse_primary = function(context) {
this._cache["primary"] = this._cache["primary"] || [];
var cachedResult = this._cache["primary"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos12 = this._pos;
var result71 = this._parse_identifier(context);
if (result71 !== null) {
var savedPos13 = this._pos;
var savedReportMatchFailuresVar0 = context.reportMatchFailures;
context.reportMatchFailures = false;
var savedPos14 = this._pos;
var result77 = this._parse_literal(context);
if (result77 !== null) {
var result74 = result77;
} else {
if (this._input.substr(this._pos, 0) === "") {
var result76 = "";
this._pos += 0;
} else {
var result76 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result76 !== null) {
var result74 = result76;
} else {
var result74 = null;;
};
}
if (result74 !== null) {
var result75 = this._parse_colon(context);
if (result75 !== null) {
var result73 = [result74, result75];
} else {
var result73 = null;
this._pos = savedPos14;
}
} else {
var result73 = null;
this._pos = savedPos14;
}
context.reportMatchFailures = savedReportMatchFailuresVar0;
if (result73 === null) {
var result72 = '';
} else {
var result72 = null;
this._pos = savedPos13;
}
if (result72 !== null) {
var result70 = [result71, result72];
} else {
var result70 = null;
this._pos = savedPos12;
}
} else {
var result70 = null;
this._pos = savedPos12;
}
var result69 = result70 !== null
? (function() { return new PEG.Grammar.RuleRef((arguments[0])); }).apply(this, result70)
: null;
if (result69 !== null) {
var result57 = result69;
} else {
var result68 = this._parse_literal(context);
var result67 = result68 !== null
? (function() { return new PEG.Grammar.Literal((arguments[0])); }).call(this, result68)
: null;
if (result67 !== null) {
var result57 = result67;
} else {
var result66 = this._parse_dot(context);
var result65 = result66 !== null
? (function() { return new PEG.Grammar.Any(); }).call(this, result66)
: null;
if (result65 !== null) {
var result57 = result65;
} else {
var result64 = this._parse_class(context);
var result63 = result64 !== null
? (function() {
return new PEG.Grammar.Choice(
PEG.ArrayUtils.map(
(arguments[0]).split(""),
function(character) { return new PEG.Grammar.Literal(character); }
)
);
}).call(this, result64)
: null;
if (result63 !== null) {
var result57 = result63;
} else {
var savedPos11 = this._pos;
var result60 = this._parse_lparen(context);
if (result60 !== null) {
var result61 = this._parse_expression(context);
if (result61 !== null) {
var result62 = this._parse_rparen(context);
if (result62 !== null) {
var result59 = [result60, result61, result62];
} else {
var result59 = null;
this._pos = savedPos11;
}
} else {
var result59 = null;
this._pos = savedPos11;
}
} else {
var result59 = null;
this._pos = savedPos11;
}
var result58 = result59 !== null
? (function() { return (arguments[1]); }).apply(this, result59)
: null;
if (result58 !== null) {
var result57 = result58;
} else {
var result57 = null;;
};
};
};
};
}
this._cache["primary"][pos] = {
length: this._pos - pos,
result: result57
};
return result57;
};
result._parse_action = function(context) {
this._cache["action"] = this._cache["action"] || [];
var cachedResult = this._cache["action"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedReportMatchFailures = context.reportMatchFailures;
context.reportMatchFailures = false;
var savedPos15 = this._pos;
var result80 = this._parse_braced(context);
if (result80 !== null) {
var result81 = this._parse___(context);
if (result81 !== null) {
var result79 = [result80, result81];
} else {
var result79 = null;
this._pos = savedPos15;
}
} else {
var result79 = null;
this._pos = savedPos15;
}
var result78 = result79 !== null
? (function() { return (arguments[0]).substr(1, (arguments[0]).length - 2); }).apply(this, result79)
: null;
context.reportMatchFailures = savedReportMatchFailures;
if (context.reportMatchFailures && result78 === null) {
this._matchFailed(new PEG.Parser.NamedRuleMatchFailure("action"));
}
this._cache["action"][pos] = {
length: this._pos - pos,
result: result78
};
return result78;
};
result._parse_braced = function(context) {
this._cache["braced"] = this._cache["braced"] || [];
var cachedResult = this._cache["braced"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos16 = this._pos;
if (this._input.substr(this._pos, 1) === "{") {
var result84 = "{";
this._pos += 1;
} else {
var result84 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("{"));
}
}
if (result84 !== null) {
var result85 = [];
var result89 = this._parse_braced(context);
if (result89 !== null) {
var result87 = result89;
} else {
var result88 = this._parse_nonBraceCharacter(context);
if (result88 !== null) {
var result87 = result88;
} else {
var result87 = null;;
};
}
while (result87 !== null) {
result85.push(result87);
var result89 = this._parse_braced(context);
if (result89 !== null) {
var result87 = result89;
} else {
var result88 = this._parse_nonBraceCharacter(context);
if (result88 !== null) {
var result87 = result88;
} else {
var result87 = null;;
};
}
}
if (result85 !== null) {
if (this._input.substr(this._pos, 1) === "}") {
var result86 = "}";
this._pos += 1;
} else {
var result86 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("}"));
}
}
if (result86 !== null) {
var result83 = [result84, result85, result86];
} else {
var result83 = null;
this._pos = savedPos16;
}
} else {
var result83 = null;
this._pos = savedPos16;
}
} else {
var result83 = null;
this._pos = savedPos16;
}
var result82 = result83 !== null
? (function() { return (arguments[0]) + (arguments[1]).join("") + (arguments[2]); }).apply(this, result83)
: null;
this._cache["braced"][pos] = {
length: this._pos - pos,
result: result82
};
return result82;
};
result._parse_nonBraceCharacters = function(context) {
this._cache["nonBraceCharacters"] = this._cache["nonBraceCharacters"] || [];
var cachedResult = this._cache["nonBraceCharacters"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos17 = this._pos;
var result93 = this._parse_nonBraceCharacter(context);
if (result93 !== null) {
var result94 = [];
var result95 = this._parse_nonBraceCharacter(context);
while (result95 !== null) {
result94.push(result95);
var result95 = this._parse_nonBraceCharacter(context);
}
if (result94 !== null) {
var result92 = [result93, result94];
} else {
var result92 = null;
this._pos = savedPos17;
}
} else {
var result92 = null;
this._pos = savedPos17;
}
var result91 = result92 !== null
? (
function (first, rest) {
return [first].concat(rest);
}
).apply(this, result92)
: null;
var result90 = result91 !== null
? (function() { return (arguments[0]).join(""); }).call(this, result91)
: null;
this._cache["nonBraceCharacters"][pos] = {
length: this._pos - pos,
result: result90
};
return result90;
};
result._parse_nonBraceCharacter = function(context) {
this._cache["nonBraceCharacter"] = this._cache["nonBraceCharacter"] || [];
var cachedResult = this._cache["nonBraceCharacter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos18 = this._pos;
var savedPos19 = this._pos;
var savedReportMatchFailuresVar1 = context.reportMatchFailures;
context.reportMatchFailures = false;
if (this._input.substr(this._pos, 1) === "{") {
var result102 = "{";
this._pos += 1;
} else {
var result102 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("{"));
}
}
if (result102 !== null) {
var result100 = result102;
} else {
if (this._input.substr(this._pos, 1) === "}") {
var result101 = "}";
this._pos += 1;
} else {
var result101 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("}"));
}
}
if (result101 !== null) {
var result100 = result101;
} else {
var result100 = null;;
};
}
context.reportMatchFailures = savedReportMatchFailuresVar1;
if (result100 === null) {
var result98 = '';
} else {
var result98 = null;
this._pos = savedPos19;
}
if (result98 !== null) {
if (this._input.length > this._pos) {
var result99 = this._input[this._pos];
this._pos++;
} else {
var result99 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result99 !== null) {
var result97 = [result98, result99];
} else {
var result97 = null;
this._pos = savedPos18;
}
} else {
var result97 = null;
this._pos = savedPos18;
}
var result96 = result97 !== null
? (function() { return (arguments[1]); }).apply(this, result97)
: null;
this._cache["nonBraceCharacter"][pos] = {
length: this._pos - pos,
result: result96
};
return result96;
};
result._parse_colon = function(context) {
this._cache["colon"] = this._cache["colon"] || [];
var cachedResult = this._cache["colon"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos20 = this._pos;
if (this._input.substr(this._pos, 1) === ":") {
var result105 = ":";
this._pos += 1;
} else {
var result105 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(":"));
}
}
if (result105 !== null) {
var result106 = this._parse___(context);
if (result106 !== null) {
var result104 = [result105, result106];
} else {
var result104 = null;
this._pos = savedPos20;
}
} else {
var result104 = null;
this._pos = savedPos20;
}
var result103 = result104 !== null
? (function() { return (arguments[0]); }).apply(this, result104)
: null;
this._cache["colon"][pos] = {
length: this._pos - pos,
result: result103
};
return result103;
};
result._parse_slash = function(context) {
this._cache["slash"] = this._cache["slash"] || [];
var cachedResult = this._cache["slash"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos21 = this._pos;
if (this._input.substr(this._pos, 1) === "/") {
var result109 = "/";
this._pos += 1;
} else {
var result109 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("/"));
}
}
if (result109 !== null) {
var result110 = this._parse___(context);
if (result110 !== null) {
var result108 = [result109, result110];
} else {
var result108 = null;
this._pos = savedPos21;
}
} else {
var result108 = null;
this._pos = savedPos21;
}
var result107 = result108 !== null
? (function() { return (arguments[0]); }).apply(this, result108)
: null;
this._cache["slash"][pos] = {
length: this._pos - pos,
result: result107
};
return result107;
};
result._parse_and = function(context) {
this._cache["and"] = this._cache["and"] || [];
var cachedResult = this._cache["and"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos22 = this._pos;
if (this._input.substr(this._pos, 1) === "&") {
var result113 = "&";
this._pos += 1;
} else {
var result113 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("&"));
}
}
if (result113 !== null) {
var result114 = this._parse___(context);
if (result114 !== null) {
var result112 = [result113, result114];
} else {
var result112 = null;
this._pos = savedPos22;
}
} else {
var result112 = null;
this._pos = savedPos22;
}
var result111 = result112 !== null
? (function() { return (arguments[0]); }).apply(this, result112)
: null;
this._cache["and"][pos] = {
length: this._pos - pos,
result: result111
};
return result111;
};
result._parse_not = function(context) {
this._cache["not"] = this._cache["not"] || [];
var cachedResult = this._cache["not"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos23 = this._pos;
if (this._input.substr(this._pos, 1) === "!") {
var result117 = "!";
this._pos += 1;
} else {
var result117 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("!"));
}
}
if (result117 !== null) {
var result118 = this._parse___(context);
if (result118 !== null) {
var result116 = [result117, result118];
} else {
var result116 = null;
this._pos = savedPos23;
}
} else {
var result116 = null;
this._pos = savedPos23;
}
var result115 = result116 !== null
? (function() { return (arguments[0]); }).apply(this, result116)
: null;
this._cache["not"][pos] = {
length: this._pos - pos,
result: result115
};
return result115;
};
result._parse_question = function(context) {
this._cache["question"] = this._cache["question"] || [];
var cachedResult = this._cache["question"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos24 = this._pos;
if (this._input.substr(this._pos, 1) === "?") {
var result121 = "?";
this._pos += 1;
} else {
var result121 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("?"));
}
}
if (result121 !== null) {
var result122 = this._parse___(context);
if (result122 !== null) {
var result120 = [result121, result122];
} else {
var result120 = null;
this._pos = savedPos24;
}
} else {
var result120 = null;
this._pos = savedPos24;
}
var result119 = result120 !== null
? (function() { return (arguments[0]); }).apply(this, result120)
: null;
this._cache["question"][pos] = {
length: this._pos - pos,
result: result119
};
return result119;
};
result._parse_star = function(context) {
this._cache["star"] = this._cache["star"] || [];
var cachedResult = this._cache["star"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos25 = this._pos;
if (this._input.substr(this._pos, 1) === "*") {
var result125 = "*";
this._pos += 1;
} else {
var result125 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("*"));
}
}
if (result125 !== null) {
var result126 = this._parse___(context);
if (result126 !== null) {
var result124 = [result125, result126];
} else {
var result124 = null;
this._pos = savedPos25;
}
} else {
var result124 = null;
this._pos = savedPos25;
}
var result123 = result124 !== null
? (function() { return (arguments[0]); }).apply(this, result124)
: null;
this._cache["star"][pos] = {
length: this._pos - pos,
result: result123
};
return result123;
};
result._parse_plus = function(context) {
this._cache["plus"] = this._cache["plus"] || [];
var cachedResult = this._cache["plus"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos26 = this._pos;
if (this._input.substr(this._pos, 1) === "+") {
var result129 = "+";
this._pos += 1;
} else {
var result129 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("+"));
}
}
if (result129 !== null) {
var result130 = this._parse___(context);
if (result130 !== null) {
var result128 = [result129, result130];
} else {
var result128 = null;
this._pos = savedPos26;
}
} else {
var result128 = null;
this._pos = savedPos26;
}
var result127 = result128 !== null
? (function() { return (arguments[0]); }).apply(this, result128)
: null;
this._cache["plus"][pos] = {
length: this._pos - pos,
result: result127
};
return result127;
};
result._parse_lparen = function(context) {
this._cache["lparen"] = this._cache["lparen"] || [];
var cachedResult = this._cache["lparen"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos27 = this._pos;
if (this._input.substr(this._pos, 1) === "(") {
var result133 = "(";
this._pos += 1;
} else {
var result133 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("("));
}
}
if (result133 !== null) {
var result134 = this._parse___(context);
if (result134 !== null) {
var result132 = [result133, result134];
} else {
var result132 = null;
this._pos = savedPos27;
}
} else {
var result132 = null;
this._pos = savedPos27;
}
var result131 = result132 !== null
? (function() { return (arguments[0]); }).apply(this, result132)
: null;
this._cache["lparen"][pos] = {
length: this._pos - pos,
result: result131
};
return result131;
};
result._parse_rparen = function(context) {
this._cache["rparen"] = this._cache["rparen"] || [];
var cachedResult = this._cache["rparen"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos28 = this._pos;
if (this._input.substr(this._pos, 1) === ")") {
var result137 = ")";
this._pos += 1;
} else {
var result137 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(")"));
}
}
if (result137 !== null) {
var result138 = this._parse___(context);
if (result138 !== null) {
var result136 = [result137, result138];
} else {
var result136 = null;
this._pos = savedPos28;
}
} else {
var result136 = null;
this._pos = savedPos28;
}
var result135 = result136 !== null
? (function() { return (arguments[0]); }).apply(this, result136)
: null;
this._cache["rparen"][pos] = {
length: this._pos - pos,
result: result135
};
return result135;
};
result._parse_dot = function(context) {
this._cache["dot"] = this._cache["dot"] || [];
var cachedResult = this._cache["dot"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos29 = this._pos;
if (this._input.substr(this._pos, 1) === ".") {
var result141 = ".";
this._pos += 1;
} else {
var result141 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("."));
}
}
if (result141 !== null) {
var result142 = this._parse___(context);
if (result142 !== null) {
var result140 = [result141, result142];
} else {
var result140 = null;
this._pos = savedPos29;
}
} else {
var result140 = null;
this._pos = savedPos29;
}
var result139 = result140 !== null
? (function() { return (arguments[0]); }).apply(this, result140)
: null;
this._cache["dot"][pos] = {
length: this._pos - pos,
result: result139
};
return result139;
};
result._parse_identifier = function(context) {
this._cache["identifier"] = this._cache["identifier"] || [];
var cachedResult = this._cache["identifier"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedReportMatchFailures = context.reportMatchFailures;
context.reportMatchFailures = false;
var savedPos30 = this._pos;
var result155 = this._parse_letter(context);
if (result155 !== null) {
var result145 = result155;
} else {
if (this._input.substr(this._pos, 1) === "_") {
var result154 = "_";
this._pos += 1;
} else {
var result154 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("_"));
}
}
if (result154 !== null) {
var result145 = result154;
} else {
if (this._input.substr(this._pos, 1) === "$") {
var result153 = "$";
this._pos += 1;
} else {
var result153 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("$"));
}
}
if (result153 !== null) {
var result145 = result153;
} else {
var result145 = null;;
};
};
}
if (result145 !== null) {
var result146 = [];
var result152 = this._parse_letter(context);
if (result152 !== null) {
var result148 = result152;
} else {
var result151 = this._parse_digit(context);
if (result151 !== null) {
var result148 = result151;
} else {
if (this._input.substr(this._pos, 1) === "_") {
var result150 = "_";
this._pos += 1;
} else {
var result150 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("_"));
}
}
if (result150 !== null) {
var result148 = result150;
} else {
if (this._input.substr(this._pos, 1) === "$") {
var result149 = "$";
this._pos += 1;
} else {
var result149 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("$"));
}
}
if (result149 !== null) {
var result148 = result149;
} else {
var result148 = null;;
};
};
};
}
while (result148 !== null) {
result146.push(result148);
var result152 = this._parse_letter(context);
if (result152 !== null) {
var result148 = result152;
} else {
var result151 = this._parse_digit(context);
if (result151 !== null) {
var result148 = result151;
} else {
if (this._input.substr(this._pos, 1) === "_") {
var result150 = "_";
this._pos += 1;
} else {
var result150 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("_"));
}
}
if (result150 !== null) {
var result148 = result150;
} else {
if (this._input.substr(this._pos, 1) === "$") {
var result149 = "$";
this._pos += 1;
} else {
var result149 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("$"));
}
}
if (result149 !== null) {
var result148 = result149;
} else {
var result148 = null;;
};
};
};
}
}
if (result146 !== null) {
var result147 = this._parse___(context);
if (result147 !== null) {
var result144 = [result145, result146, result147];
} else {
var result144 = null;
this._pos = savedPos30;
}
} else {
var result144 = null;
this._pos = savedPos30;
}
} else {
var result144 = null;
this._pos = savedPos30;
}
var result143 = result144 !== null
? (function() {
return (arguments[0]) + (arguments[1]).join("");
}).apply(this, result144)
: null;
context.reportMatchFailures = savedReportMatchFailures;
if (context.reportMatchFailures && result143 === null) {
this._matchFailed(new PEG.Parser.NamedRuleMatchFailure("identifier"));
}
this._cache["identifier"][pos] = {
length: this._pos - pos,
result: result143
};
return result143;
};
result._parse_literal = function(context) {
this._cache["literal"] = this._cache["literal"] || [];
var cachedResult = this._cache["literal"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedReportMatchFailures = context.reportMatchFailures;
context.reportMatchFailures = false;
var savedPos31 = this._pos;
var result161 = this._parse_doubleQuotedLiteral(context);
if (result161 !== null) {
var result158 = result161;
} else {
var result160 = this._parse_singleQuotedLiteral(context);
if (result160 !== null) {
var result158 = result160;
} else {
var result158 = null;;
};
}
if (result158 !== null) {
var result159 = this._parse___(context);
if (result159 !== null) {
var result157 = [result158, result159];
} else {
var result157 = null;
this._pos = savedPos31;
}
} else {
var result157 = null;
this._pos = savedPos31;
}
var result156 = result157 !== null
? (function() { return (arguments[0]); }).apply(this, result157)
: null;
context.reportMatchFailures = savedReportMatchFailures;
if (context.reportMatchFailures && result156 === null) {
this._matchFailed(new PEG.Parser.NamedRuleMatchFailure("literal"));
}
this._cache["literal"][pos] = {
length: this._pos - pos,
result: result156
};
return result156;
};
result._parse_doubleQuotedLiteral = function(context) {
this._cache["doubleQuotedLiteral"] = this._cache["doubleQuotedLiteral"] || [];
var cachedResult = this._cache["doubleQuotedLiteral"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos32 = this._pos;
if (this._input.substr(this._pos, 1) === "\"") {
var result164 = "\"";
this._pos += 1;
} else {
var result164 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\""));
}
}
if (result164 !== null) {
var result165 = [];
var result167 = this._parse_doubleQuotedCharacter(context);
while (result167 !== null) {
result165.push(result167);
var result167 = this._parse_doubleQuotedCharacter(context);
}
if (result165 !== null) {
if (this._input.substr(this._pos, 1) === "\"") {
var result166 = "\"";
this._pos += 1;
} else {
var result166 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\""));
}
}
if (result166 !== null) {
var result163 = [result164, result165, result166];
} else {
var result163 = null;
this._pos = savedPos32;
}
} else {
var result163 = null;
this._pos = savedPos32;
}
} else {
var result163 = null;
this._pos = savedPos32;
}
var result162 = result163 !== null
? (function() { return (arguments[1]).join(""); }).apply(this, result163)
: null;
this._cache["doubleQuotedLiteral"][pos] = {
length: this._pos - pos,
result: result162
};
return result162;
};
result._parse_doubleQuotedCharacter = function(context) {
this._cache["doubleQuotedCharacter"] = this._cache["doubleQuotedCharacter"] || [];
var cachedResult = this._cache["doubleQuotedCharacter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var result174 = this._parse_simpleDoubleQuotedCharacter(context);
if (result174 !== null) {
var result168 = result174;
} else {
var result173 = this._parse_simpleEscapeSequence(context);
if (result173 !== null) {
var result168 = result173;
} else {
var result172 = this._parse_zeroEscapeSequence(context);
if (result172 !== null) {
var result168 = result172;
} else {
var result171 = this._parse_hexEscapeSequence(context);
if (result171 !== null) {
var result168 = result171;
} else {
var result170 = this._parse_unicodeEscapeSequence(context);
if (result170 !== null) {
var result168 = result170;
} else {
var result169 = this._parse_eolEscapeSequence(context);
if (result169 !== null) {
var result168 = result169;
} else {
var result168 = null;;
};
};
};
};
};
}
this._cache["doubleQuotedCharacter"][pos] = {
length: this._pos - pos,
result: result168
};
return result168;
};
result._parse_simpleDoubleQuotedCharacter = function(context) {
this._cache["simpleDoubleQuotedCharacter"] = this._cache["simpleDoubleQuotedCharacter"] || [];
var cachedResult = this._cache["simpleDoubleQuotedCharacter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos33 = this._pos;
var savedPos34 = this._pos;
var savedReportMatchFailuresVar2 = context.reportMatchFailures;
context.reportMatchFailures = false;
if (this._input.substr(this._pos, 1) === "\"") {
var result182 = "\"";
this._pos += 1;
} else {
var result182 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\""));
}
}
if (result182 !== null) {
var result179 = result182;
} else {
if (this._input.substr(this._pos, 1) === "\\") {
var result181 = "\\";
this._pos += 1;
} else {
var result181 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\\"));
}
}
if (result181 !== null) {
var result179 = result181;
} else {
var result180 = this._parse_eolChar(context);
if (result180 !== null) {
var result179 = result180;
} else {
var result179 = null;;
};
};
}
context.reportMatchFailures = savedReportMatchFailuresVar2;
if (result179 === null) {
var result177 = '';
} else {
var result177 = null;
this._pos = savedPos34;
}
if (result177 !== null) {
if (this._input.length > this._pos) {
var result178 = this._input[this._pos];
this._pos++;
} else {
var result178 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result178 !== null) {
var result176 = [result177, result178];
} else {
var result176 = null;
this._pos = savedPos33;
}
} else {
var result176 = null;
this._pos = savedPos33;
}
var result175 = result176 !== null
? (function() { return (arguments[1]); }).apply(this, result176)
: null;
this._cache["simpleDoubleQuotedCharacter"][pos] = {
length: this._pos - pos,
result: result175
};
return result175;
};
result._parse_singleQuotedLiteral = function(context) {
this._cache["singleQuotedLiteral"] = this._cache["singleQuotedLiteral"] || [];
var cachedResult = this._cache["singleQuotedLiteral"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos35 = this._pos;
if (this._input.substr(this._pos, 1) === "'") {
var result185 = "'";
this._pos += 1;
} else {
var result185 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("'"));
}
}
if (result185 !== null) {
var result186 = [];
var result188 = this._parse_singleQuotedCharacter(context);
while (result188 !== null) {
result186.push(result188);
var result188 = this._parse_singleQuotedCharacter(context);
}
if (result186 !== null) {
if (this._input.substr(this._pos, 1) === "'") {
var result187 = "'";
this._pos += 1;
} else {
var result187 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("'"));
}
}
if (result187 !== null) {
var result184 = [result185, result186, result187];
} else {
var result184 = null;
this._pos = savedPos35;
}
} else {
var result184 = null;
this._pos = savedPos35;
}
} else {
var result184 = null;
this._pos = savedPos35;
}
var result183 = result184 !== null
? (function() { return (arguments[1]).join(""); }).apply(this, result184)
: null;
this._cache["singleQuotedLiteral"][pos] = {
length: this._pos - pos,
result: result183
};
return result183;
};
result._parse_singleQuotedCharacter = function(context) {
this._cache["singleQuotedCharacter"] = this._cache["singleQuotedCharacter"] || [];
var cachedResult = this._cache["singleQuotedCharacter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var result195 = this._parse_simpleSingleQuotedCharacter(context);
if (result195 !== null) {
var result189 = result195;
} else {
var result194 = this._parse_simpleEscapeSequence(context);
if (result194 !== null) {
var result189 = result194;
} else {
var result193 = this._parse_zeroEscapeSequence(context);
if (result193 !== null) {
var result189 = result193;
} else {
var result192 = this._parse_hexEscapeSequence(context);
if (result192 !== null) {
var result189 = result192;
} else {
var result191 = this._parse_unicodeEscapeSequence(context);
if (result191 !== null) {
var result189 = result191;
} else {
var result190 = this._parse_eolEscapeSequence(context);
if (result190 !== null) {
var result189 = result190;
} else {
var result189 = null;;
};
};
};
};
};
}
this._cache["singleQuotedCharacter"][pos] = {
length: this._pos - pos,
result: result189
};
return result189;
};
result._parse_simpleSingleQuotedCharacter = function(context) {
this._cache["simpleSingleQuotedCharacter"] = this._cache["simpleSingleQuotedCharacter"] || [];
var cachedResult = this._cache["simpleSingleQuotedCharacter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos36 = this._pos;
var savedPos37 = this._pos;
var savedReportMatchFailuresVar3 = context.reportMatchFailures;
context.reportMatchFailures = false;
if (this._input.substr(this._pos, 1) === "'") {
var result203 = "'";
this._pos += 1;
} else {
var result203 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("'"));
}
}
if (result203 !== null) {
var result200 = result203;
} else {
if (this._input.substr(this._pos, 1) === "\\") {
var result202 = "\\";
this._pos += 1;
} else {
var result202 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\\"));
}
}
if (result202 !== null) {
var result200 = result202;
} else {
var result201 = this._parse_eolChar(context);
if (result201 !== null) {
var result200 = result201;
} else {
var result200 = null;;
};
};
}
context.reportMatchFailures = savedReportMatchFailuresVar3;
if (result200 === null) {
var result198 = '';
} else {
var result198 = null;
this._pos = savedPos37;
}
if (result198 !== null) {
if (this._input.length > this._pos) {
var result199 = this._input[this._pos];
this._pos++;
} else {
var result199 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result199 !== null) {
var result197 = [result198, result199];
} else {
var result197 = null;
this._pos = savedPos36;
}
} else {
var result197 = null;
this._pos = savedPos36;
}
var result196 = result197 !== null
? (function() { return (arguments[1]); }).apply(this, result197)
: null;
this._cache["simpleSingleQuotedCharacter"][pos] = {
length: this._pos - pos,
result: result196
};
return result196;
};
result._parse_class = function(context) {
this._cache["class"] = this._cache["class"] || [];
var cachedResult = this._cache["class"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedReportMatchFailures = context.reportMatchFailures;
context.reportMatchFailures = false;
var savedPos38 = this._pos;
if (this._input.substr(this._pos, 1) === "[") {
var result206 = "[";
this._pos += 1;
} else {
var result206 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("["));
}
}
if (result206 !== null) {
var result207 = [];
var result212 = this._parse_classCharacterRange(context);
if (result212 !== null) {
var result210 = result212;
} else {
var result211 = this._parse_classCharacter(context);
if (result211 !== null) {
var result210 = result211;
} else {
var result210 = null;;
};
}
while (result210 !== null) {
result207.push(result210);
var result212 = this._parse_classCharacterRange(context);
if (result212 !== null) {
var result210 = result212;
} else {
var result211 = this._parse_classCharacter(context);
if (result211 !== null) {
var result210 = result211;
} else {
var result210 = null;;
};
}
}
if (result207 !== null) {
if (this._input.substr(this._pos, 1) === "]") {
var result208 = "]";
this._pos += 1;
} else {
var result208 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("]"));
}
}
if (result208 !== null) {
var result209 = this._parse___(context);
if (result209 !== null) {
var result205 = [result206, result207, result208, result209];
} else {
var result205 = null;
this._pos = savedPos38;
}
} else {
var result205 = null;
this._pos = savedPos38;
}
} else {
var result205 = null;
this._pos = savedPos38;
}
} else {
var result205 = null;
this._pos = savedPos38;
}
var result204 = result205 !== null
? (function() {
return (arguments[1]).join("");
}).apply(this, result205)
: null;
context.reportMatchFailures = savedReportMatchFailures;
if (context.reportMatchFailures && result204 === null) {
this._matchFailed(new PEG.Parser.NamedRuleMatchFailure("character class"));
}
this._cache["class"][pos] = {
length: this._pos - pos,
result: result204
};
return result204;
};
result._parse_classCharacterRange = function(context) {
this._cache["classCharacterRange"] = this._cache["classCharacterRange"] || [];
var cachedResult = this._cache["classCharacterRange"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos39 = this._pos;
var result215 = this._parse_bracketDelimitedCharacter(context);
if (result215 !== null) {
if (this._input.substr(this._pos, 1) === "-") {
var result216 = "-";
this._pos += 1;
} else {
var result216 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("-"));
}
}
if (result216 !== null) {
var result217 = this._parse_bracketDelimitedCharacter(context);
if (result217 !== null) {
var result214 = [result215, result216, result217];
} else {
var result214 = null;
this._pos = savedPos39;
}
} else {
var result214 = null;
this._pos = savedPos39;
}
} else {
var result214 = null;
this._pos = savedPos39;
}
var result213 = result214 !== null
? (function() {
var beginCharCode = (arguments[0]).charCodeAt(0);
var endCharCode = (arguments[2]).charCodeAt(0);
if (beginCharCode > endCharCode) {
throw new PEG.Parser.SyntaxError(
"Invalid character range: " + (arguments[0]) + "-" + (arguments[2]) + "."
);
}
var result = "";
for (var charCode = beginCharCode; charCode <= endCharCode; charCode++) {
result += String.fromCharCode(charCode);
}
return result;
}).apply(this, result214)
: null;
this._cache["classCharacterRange"][pos] = {
length: this._pos - pos,
result: result213
};
return result213;
};
result._parse_classCharacter = function(context) {
this._cache["classCharacter"] = this._cache["classCharacter"] || [];
var cachedResult = this._cache["classCharacter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var result218 = this._parse_bracketDelimitedCharacter(context);
this._cache["classCharacter"][pos] = {
length: this._pos - pos,
result: result218
};
return result218;
};
result._parse_bracketDelimitedCharacter = function(context) {
this._cache["bracketDelimitedCharacter"] = this._cache["bracketDelimitedCharacter"] || [];
var cachedResult = this._cache["bracketDelimitedCharacter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var result225 = this._parse_simpleBracketDelimitedCharacter(context);
if (result225 !== null) {
var result219 = result225;
} else {
var result224 = this._parse_simpleEscapeSequence(context);
if (result224 !== null) {
var result219 = result224;
} else {
var result223 = this._parse_zeroEscapeSequence(context);
if (result223 !== null) {
var result219 = result223;
} else {
var result222 = this._parse_hexEscapeSequence(context);
if (result222 !== null) {
var result219 = result222;
} else {
var result221 = this._parse_unicodeEscapeSequence(context);
if (result221 !== null) {
var result219 = result221;
} else {
var result220 = this._parse_eolEscapeSequence(context);
if (result220 !== null) {
var result219 = result220;
} else {
var result219 = null;;
};
};
};
};
};
}
this._cache["bracketDelimitedCharacter"][pos] = {
length: this._pos - pos,
result: result219
};
return result219;
};
result._parse_simpleBracketDelimitedCharacter = function(context) {
this._cache["simpleBracketDelimitedCharacter"] = this._cache["simpleBracketDelimitedCharacter"] || [];
var cachedResult = this._cache["simpleBracketDelimitedCharacter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos40 = this._pos;
var savedPos41 = this._pos;
var savedReportMatchFailuresVar4 = context.reportMatchFailures;
context.reportMatchFailures = false;
if (this._input.substr(this._pos, 1) === "]") {
var result233 = "]";
this._pos += 1;
} else {
var result233 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("]"));
}
}
if (result233 !== null) {
var result230 = result233;
} else {
if (this._input.substr(this._pos, 1) === "\\") {
var result232 = "\\";
this._pos += 1;
} else {
var result232 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\\"));
}
}
if (result232 !== null) {
var result230 = result232;
} else {
var result231 = this._parse_eolChar(context);
if (result231 !== null) {
var result230 = result231;
} else {
var result230 = null;;
};
};
}
context.reportMatchFailures = savedReportMatchFailuresVar4;
if (result230 === null) {
var result228 = '';
} else {
var result228 = null;
this._pos = savedPos41;
}
if (result228 !== null) {
if (this._input.length > this._pos) {
var result229 = this._input[this._pos];
this._pos++;
} else {
var result229 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result229 !== null) {
var result227 = [result228, result229];
} else {
var result227 = null;
this._pos = savedPos40;
}
} else {
var result227 = null;
this._pos = savedPos40;
}
var result226 = result227 !== null
? (function() { return (arguments[1]); }).apply(this, result227)
: null;
this._cache["simpleBracketDelimitedCharacter"][pos] = {
length: this._pos - pos,
result: result226
};
return result226;
};
result._parse_simpleEscapeSequence = function(context) {
this._cache["simpleEscapeSequence"] = this._cache["simpleEscapeSequence"] || [];
var cachedResult = this._cache["simpleEscapeSequence"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos42 = this._pos;
if (this._input.substr(this._pos, 1) === "\\") {
var result236 = "\\";
this._pos += 1;
} else {
var result236 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\\"));
}
}
if (result236 !== null) {
var savedPos43 = this._pos;
var savedReportMatchFailuresVar5 = context.reportMatchFailures;
context.reportMatchFailures = false;
var result243 = this._parse_digit(context);
if (result243 !== null) {
var result239 = result243;
} else {
if (this._input.substr(this._pos, 1) === "x") {
var result242 = "x";
this._pos += 1;
} else {
var result242 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("x"));
}
}
if (result242 !== null) {
var result239 = result242;
} else {
if (this._input.substr(this._pos, 1) === "u") {
var result241 = "u";
this._pos += 1;
} else {
var result241 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("u"));
}
}
if (result241 !== null) {
var result239 = result241;
} else {
var result240 = this._parse_eolChar(context);
if (result240 !== null) {
var result239 = result240;
} else {
var result239 = null;;
};
};
};
}
context.reportMatchFailures = savedReportMatchFailuresVar5;
if (result239 === null) {
var result237 = '';
} else {
var result237 = null;
this._pos = savedPos43;
}
if (result237 !== null) {
if (this._input.length > this._pos) {
var result238 = this._input[this._pos];
this._pos++;
} else {
var result238 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result238 !== null) {
var result235 = [result236, result237, result238];
} else {
var result235 = null;
this._pos = savedPos42;
}
} else {
var result235 = null;
this._pos = savedPos42;
}
} else {
var result235 = null;
this._pos = savedPos42;
}
var result234 = result235 !== null
? (function() {
return (arguments[2])
.replace("b", "\b")
.replace("f", "\f")
.replace("n", "\n")
.replace("r", "\r")
.replace("t", "\t")
.replace("v", "\v")
}).apply(this, result235)
: null;
this._cache["simpleEscapeSequence"][pos] = {
length: this._pos - pos,
result: result234
};
return result234;
};
result._parse_zeroEscapeSequence = function(context) {
this._cache["zeroEscapeSequence"] = this._cache["zeroEscapeSequence"] || [];
var cachedResult = this._cache["zeroEscapeSequence"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos44 = this._pos;
if (this._input.substr(this._pos, 2) === "\\0") {
var result246 = "\\0";
this._pos += 2;
} else {
var result246 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\\0"));
}
}
if (result246 !== null) {
var savedPos45 = this._pos;
var savedReportMatchFailuresVar6 = context.reportMatchFailures;
context.reportMatchFailures = false;
var result248 = this._parse_digit(context);
context.reportMatchFailures = savedReportMatchFailuresVar6;
if (result248 === null) {
var result247 = '';
} else {
var result247 = null;
this._pos = savedPos45;
}
if (result247 !== null) {
var result245 = [result246, result247];
} else {
var result245 = null;
this._pos = savedPos44;
}
} else {
var result245 = null;
this._pos = savedPos44;
}
var result244 = result245 !== null
? (function() { return "\0"; }).apply(this, result245)
: null;
this._cache["zeroEscapeSequence"][pos] = {
length: this._pos - pos,
result: result244
};
return result244;
};
result._parse_hexEscapeSequence = function(context) {
this._cache["hexEscapeSequence"] = this._cache["hexEscapeSequence"] || [];
var cachedResult = this._cache["hexEscapeSequence"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos46 = this._pos;
if (this._input.substr(this._pos, 2) === "\\x") {
var result251 = "\\x";
this._pos += 2;
} else {
var result251 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\\x"));
}
}
if (result251 !== null) {
var result252 = this._parse_hexDigit(context);
if (result252 !== null) {
var result253 = this._parse_hexDigit(context);
if (result253 !== null) {
var result250 = [result251, result252, result253];
} else {
var result250 = null;
this._pos = savedPos46;
}
} else {
var result250 = null;
this._pos = savedPos46;
}
} else {
var result250 = null;
this._pos = savedPos46;
}
var result249 = result250 !== null
? (function() {
return String.fromCharCode(parseInt("0x" + (arguments[1]) + (arguments[2])));
}).apply(this, result250)
: null;
this._cache["hexEscapeSequence"][pos] = {
length: this._pos - pos,
result: result249
};
return result249;
};
result._parse_unicodeEscapeSequence = function(context) {
this._cache["unicodeEscapeSequence"] = this._cache["unicodeEscapeSequence"] || [];
var cachedResult = this._cache["unicodeEscapeSequence"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos47 = this._pos;
if (this._input.substr(this._pos, 2) === "\\u") {
var result256 = "\\u";
this._pos += 2;
} else {
var result256 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\\u"));
}
}
if (result256 !== null) {
var result257 = this._parse_hexDigit(context);
if (result257 !== null) {
var result258 = this._parse_hexDigit(context);
if (result258 !== null) {
var result259 = this._parse_hexDigit(context);
if (result259 !== null) {
var result260 = this._parse_hexDigit(context);
if (result260 !== null) {
var result255 = [result256, result257, result258, result259, result260];
} else {
var result255 = null;
this._pos = savedPos47;
}
} else {
var result255 = null;
this._pos = savedPos47;
}
} else {
var result255 = null;
this._pos = savedPos47;
}
} else {
var result255 = null;
this._pos = savedPos47;
}
} else {
var result255 = null;
this._pos = savedPos47;
}
var result254 = result255 !== null
? (function() {
return String.fromCharCode(parseInt("0x" + (arguments[1]) + (arguments[2]) + (arguments[3]) + (arguments[4])));
}).apply(this, result255)
: null;
this._cache["unicodeEscapeSequence"][pos] = {
length: this._pos - pos,
result: result254
};
return result254;
};
result._parse_eolEscapeSequence = function(context) {
this._cache["eolEscapeSequence"] = this._cache["eolEscapeSequence"] || [];
var cachedResult = this._cache["eolEscapeSequence"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos48 = this._pos;
if (this._input.substr(this._pos, 1) === "\\") {
var result263 = "\\";
this._pos += 1;
} else {
var result263 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\\"));
}
}
if (result263 !== null) {
var result264 = this._parse_eol(context);
if (result264 !== null) {
var result262 = [result263, result264];
} else {
var result262 = null;
this._pos = savedPos48;
}
} else {
var result262 = null;
this._pos = savedPos48;
}
var result261 = result262 !== null
? (function() { return (arguments[1]); }).apply(this, result262)
: null;
this._cache["eolEscapeSequence"][pos] = {
length: this._pos - pos,
result: result261
};
return result261;
};
result._parse_digit = function(context) {
this._cache["digit"] = this._cache["digit"] || [];
var cachedResult = this._cache["digit"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
if (this._input.substr(this._pos, 1) === "0") {
var result275 = "0";
this._pos += 1;
} else {
var result275 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("0"));
}
}
if (result275 !== null) {
var result265 = result275;
} else {
if (this._input.substr(this._pos, 1) === "1") {
var result274 = "1";
this._pos += 1;
} else {
var result274 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("1"));
}
}
if (result274 !== null) {
var result265 = result274;
} else {
if (this._input.substr(this._pos, 1) === "2") {
var result273 = "2";
this._pos += 1;
} else {
var result273 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("2"));
}
}
if (result273 !== null) {
var result265 = result273;
} else {
if (this._input.substr(this._pos, 1) === "3") {
var result272 = "3";
this._pos += 1;
} else {
var result272 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("3"));
}
}
if (result272 !== null) {
var result265 = result272;
} else {
if (this._input.substr(this._pos, 1) === "4") {
var result271 = "4";
this._pos += 1;
} else {
var result271 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("4"));
}
}
if (result271 !== null) {
var result265 = result271;
} else {
if (this._input.substr(this._pos, 1) === "5") {
var result270 = "5";
this._pos += 1;
} else {
var result270 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("5"));
}
}
if (result270 !== null) {
var result265 = result270;
} else {
if (this._input.substr(this._pos, 1) === "6") {
var result269 = "6";
this._pos += 1;
} else {
var result269 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("6"));
}
}
if (result269 !== null) {
var result265 = result269;
} else {
if (this._input.substr(this._pos, 1) === "7") {
var result268 = "7";
this._pos += 1;
} else {
var result268 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("7"));
}
}
if (result268 !== null) {
var result265 = result268;
} else {
if (this._input.substr(this._pos, 1) === "8") {
var result267 = "8";
this._pos += 1;
} else {
var result267 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("8"));
}
}
if (result267 !== null) {
var result265 = result267;
} else {
if (this._input.substr(this._pos, 1) === "9") {
var result266 = "9";
this._pos += 1;
} else {
var result266 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("9"));
}
}
if (result266 !== null) {
var result265 = result266;
} else {
var result265 = null;;
};
};
};
};
};
};
};
};
};
}
this._cache["digit"][pos] = {
length: this._pos - pos,
result: result265
};
return result265;
};
result._parse_hexDigit = function(context) {
this._cache["hexDigit"] = this._cache["hexDigit"] || [];
var cachedResult = this._cache["hexDigit"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
if (this._input.substr(this._pos, 1) === "0") {
var result298 = "0";
this._pos += 1;
} else {
var result298 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("0"));
}
}
if (result298 !== null) {
var result276 = result298;
} else {
if (this._input.substr(this._pos, 1) === "1") {
var result297 = "1";
this._pos += 1;
} else {
var result297 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("1"));
}
}
if (result297 !== null) {
var result276 = result297;
} else {
if (this._input.substr(this._pos, 1) === "2") {
var result296 = "2";
this._pos += 1;
} else {
var result296 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("2"));
}
}
if (result296 !== null) {
var result276 = result296;
} else {
if (this._input.substr(this._pos, 1) === "3") {
var result295 = "3";
this._pos += 1;
} else {
var result295 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("3"));
}
}
if (result295 !== null) {
var result276 = result295;
} else {
if (this._input.substr(this._pos, 1) === "4") {
var result294 = "4";
this._pos += 1;
} else {
var result294 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("4"));
}
}
if (result294 !== null) {
var result276 = result294;
} else {
if (this._input.substr(this._pos, 1) === "5") {
var result293 = "5";
this._pos += 1;
} else {
var result293 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("5"));
}
}
if (result293 !== null) {
var result276 = result293;
} else {
if (this._input.substr(this._pos, 1) === "6") {
var result292 = "6";
this._pos += 1;
} else {
var result292 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("6"));
}
}
if (result292 !== null) {
var result276 = result292;
} else {
if (this._input.substr(this._pos, 1) === "7") {
var result291 = "7";
this._pos += 1;
} else {
var result291 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("7"));
}
}
if (result291 !== null) {
var result276 = result291;
} else {
if (this._input.substr(this._pos, 1) === "8") {
var result290 = "8";
this._pos += 1;
} else {
var result290 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("8"));
}
}
if (result290 !== null) {
var result276 = result290;
} else {
if (this._input.substr(this._pos, 1) === "9") {
var result289 = "9";
this._pos += 1;
} else {
var result289 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("9"));
}
}
if (result289 !== null) {
var result276 = result289;
} else {
if (this._input.substr(this._pos, 1) === "a") {
var result288 = "a";
this._pos += 1;
} else {
var result288 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("a"));
}
}
if (result288 !== null) {
var result276 = result288;
} else {
if (this._input.substr(this._pos, 1) === "b") {
var result287 = "b";
this._pos += 1;
} else {
var result287 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("b"));
}
}
if (result287 !== null) {
var result276 = result287;
} else {
if (this._input.substr(this._pos, 1) === "c") {
var result286 = "c";
this._pos += 1;
} else {
var result286 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("c"));
}
}
if (result286 !== null) {
var result276 = result286;
} else {
if (this._input.substr(this._pos, 1) === "d") {
var result285 = "d";
this._pos += 1;
} else {
var result285 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("d"));
}
}
if (result285 !== null) {
var result276 = result285;
} else {
if (this._input.substr(this._pos, 1) === "e") {
var result284 = "e";
this._pos += 1;
} else {
var result284 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("e"));
}
}
if (result284 !== null) {
var result276 = result284;
} else {
if (this._input.substr(this._pos, 1) === "f") {
var result283 = "f";
this._pos += 1;
} else {
var result283 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("f"));
}
}
if (result283 !== null) {
var result276 = result283;
} else {
if (this._input.substr(this._pos, 1) === "A") {
var result282 = "A";
this._pos += 1;
} else {
var result282 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("A"));
}
}
if (result282 !== null) {
var result276 = result282;
} else {
if (this._input.substr(this._pos, 1) === "B") {
var result281 = "B";
this._pos += 1;
} else {
var result281 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("B"));
}
}
if (result281 !== null) {
var result276 = result281;
} else {
if (this._input.substr(this._pos, 1) === "C") {
var result280 = "C";
this._pos += 1;
} else {
var result280 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("C"));
}
}
if (result280 !== null) {
var result276 = result280;
} else {
if (this._input.substr(this._pos, 1) === "D") {
var result279 = "D";
this._pos += 1;
} else {
var result279 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("D"));
}
}
if (result279 !== null) {
var result276 = result279;
} else {
if (this._input.substr(this._pos, 1) === "E") {
var result278 = "E";
this._pos += 1;
} else {
var result278 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("E"));
}
}
if (result278 !== null) {
var result276 = result278;
} else {
if (this._input.substr(this._pos, 1) === "F") {
var result277 = "F";
this._pos += 1;
} else {
var result277 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("F"));
}
}
if (result277 !== null) {
var result276 = result277;
} else {
var result276 = null;;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
this._cache["hexDigit"][pos] = {
length: this._pos - pos,
result: result276
};
return result276;
};
result._parse_letter = function(context) {
this._cache["letter"] = this._cache["letter"] || [];
var cachedResult = this._cache["letter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var result301 = this._parse_lowerCaseLetter(context);
if (result301 !== null) {
var result299 = result301;
} else {
var result300 = this._parse_upperCaseLetter(context);
if (result300 !== null) {
var result299 = result300;
} else {
var result299 = null;;
};
}
this._cache["letter"][pos] = {
length: this._pos - pos,
result: result299
};
return result299;
};
result._parse_lowerCaseLetter = function(context) {
this._cache["lowerCaseLetter"] = this._cache["lowerCaseLetter"] || [];
var cachedResult = this._cache["lowerCaseLetter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
if (this._input.substr(this._pos, 1) === "a") {
var result328 = "a";
this._pos += 1;
} else {
var result328 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("a"));
}
}
if (result328 !== null) {
var result302 = result328;
} else {
if (this._input.substr(this._pos, 1) === "b") {
var result327 = "b";
this._pos += 1;
} else {
var result327 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("b"));
}
}
if (result327 !== null) {
var result302 = result327;
} else {
if (this._input.substr(this._pos, 1) === "c") {
var result326 = "c";
this._pos += 1;
} else {
var result326 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("c"));
}
}
if (result326 !== null) {
var result302 = result326;
} else {
if (this._input.substr(this._pos, 1) === "d") {
var result325 = "d";
this._pos += 1;
} else {
var result325 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("d"));
}
}
if (result325 !== null) {
var result302 = result325;
} else {
if (this._input.substr(this._pos, 1) === "e") {
var result324 = "e";
this._pos += 1;
} else {
var result324 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("e"));
}
}
if (result324 !== null) {
var result302 = result324;
} else {
if (this._input.substr(this._pos, 1) === "f") {
var result323 = "f";
this._pos += 1;
} else {
var result323 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("f"));
}
}
if (result323 !== null) {
var result302 = result323;
} else {
if (this._input.substr(this._pos, 1) === "g") {
var result322 = "g";
this._pos += 1;
} else {
var result322 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("g"));
}
}
if (result322 !== null) {
var result302 = result322;
} else {
if (this._input.substr(this._pos, 1) === "h") {
var result321 = "h";
this._pos += 1;
} else {
var result321 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("h"));
}
}
if (result321 !== null) {
var result302 = result321;
} else {
if (this._input.substr(this._pos, 1) === "i") {
var result320 = "i";
this._pos += 1;
} else {
var result320 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("i"));
}
}
if (result320 !== null) {
var result302 = result320;
} else {
if (this._input.substr(this._pos, 1) === "j") {
var result319 = "j";
this._pos += 1;
} else {
var result319 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("j"));
}
}
if (result319 !== null) {
var result302 = result319;
} else {
if (this._input.substr(this._pos, 1) === "k") {
var result318 = "k";
this._pos += 1;
} else {
var result318 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("k"));
}
}
if (result318 !== null) {
var result302 = result318;
} else {
if (this._input.substr(this._pos, 1) === "l") {
var result317 = "l";
this._pos += 1;
} else {
var result317 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("l"));
}
}
if (result317 !== null) {
var result302 = result317;
} else {
if (this._input.substr(this._pos, 1) === "m") {
var result316 = "m";
this._pos += 1;
} else {
var result316 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("m"));
}
}
if (result316 !== null) {
var result302 = result316;
} else {
if (this._input.substr(this._pos, 1) === "n") {
var result315 = "n";
this._pos += 1;
} else {
var result315 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("n"));
}
}
if (result315 !== null) {
var result302 = result315;
} else {
if (this._input.substr(this._pos, 1) === "o") {
var result314 = "o";
this._pos += 1;
} else {
var result314 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("o"));
}
}
if (result314 !== null) {
var result302 = result314;
} else {
if (this._input.substr(this._pos, 1) === "p") {
var result313 = "p";
this._pos += 1;
} else {
var result313 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("p"));
}
}
if (result313 !== null) {
var result302 = result313;
} else {
if (this._input.substr(this._pos, 1) === "q") {
var result312 = "q";
this._pos += 1;
} else {
var result312 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("q"));
}
}
if (result312 !== null) {
var result302 = result312;
} else {
if (this._input.substr(this._pos, 1) === "r") {
var result311 = "r";
this._pos += 1;
} else {
var result311 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("r"));
}
}
if (result311 !== null) {
var result302 = result311;
} else {
if (this._input.substr(this._pos, 1) === "s") {
var result310 = "s";
this._pos += 1;
} else {
var result310 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("s"));
}
}
if (result310 !== null) {
var result302 = result310;
} else {
if (this._input.substr(this._pos, 1) === "t") {
var result309 = "t";
this._pos += 1;
} else {
var result309 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("t"));
}
}
if (result309 !== null) {
var result302 = result309;
} else {
if (this._input.substr(this._pos, 1) === "u") {
var result308 = "u";
this._pos += 1;
} else {
var result308 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("u"));
}
}
if (result308 !== null) {
var result302 = result308;
} else {
if (this._input.substr(this._pos, 1) === "v") {
var result307 = "v";
this._pos += 1;
} else {
var result307 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("v"));
}
}
if (result307 !== null) {
var result302 = result307;
} else {
if (this._input.substr(this._pos, 1) === "w") {
var result306 = "w";
this._pos += 1;
} else {
var result306 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("w"));
}
}
if (result306 !== null) {
var result302 = result306;
} else {
if (this._input.substr(this._pos, 1) === "x") {
var result305 = "x";
this._pos += 1;
} else {
var result305 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("x"));
}
}
if (result305 !== null) {
var result302 = result305;
} else {
if (this._input.substr(this._pos, 1) === "y") {
var result304 = "y";
this._pos += 1;
} else {
var result304 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("y"));
}
}
if (result304 !== null) {
var result302 = result304;
} else {
if (this._input.substr(this._pos, 1) === "z") {
var result303 = "z";
this._pos += 1;
} else {
var result303 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("z"));
}
}
if (result303 !== null) {
var result302 = result303;
} else {
var result302 = null;;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
this._cache["lowerCaseLetter"][pos] = {
length: this._pos - pos,
result: result302
};
return result302;
};
result._parse_upperCaseLetter = function(context) {
this._cache["upperCaseLetter"] = this._cache["upperCaseLetter"] || [];
var cachedResult = this._cache["upperCaseLetter"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
if (this._input.substr(this._pos, 1) === "A") {
var result355 = "A";
this._pos += 1;
} else {
var result355 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("A"));
}
}
if (result355 !== null) {
var result329 = result355;
} else {
if (this._input.substr(this._pos, 1) === "B") {
var result354 = "B";
this._pos += 1;
} else {
var result354 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("B"));
}
}
if (result354 !== null) {
var result329 = result354;
} else {
if (this._input.substr(this._pos, 1) === "C") {
var result353 = "C";
this._pos += 1;
} else {
var result353 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("C"));
}
}
if (result353 !== null) {
var result329 = result353;
} else {
if (this._input.substr(this._pos, 1) === "D") {
var result352 = "D";
this._pos += 1;
} else {
var result352 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("D"));
}
}
if (result352 !== null) {
var result329 = result352;
} else {
if (this._input.substr(this._pos, 1) === "E") {
var result351 = "E";
this._pos += 1;
} else {
var result351 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("E"));
}
}
if (result351 !== null) {
var result329 = result351;
} else {
if (this._input.substr(this._pos, 1) === "F") {
var result350 = "F";
this._pos += 1;
} else {
var result350 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("F"));
}
}
if (result350 !== null) {
var result329 = result350;
} else {
if (this._input.substr(this._pos, 1) === "G") {
var result349 = "G";
this._pos += 1;
} else {
var result349 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("G"));
}
}
if (result349 !== null) {
var result329 = result349;
} else {
if (this._input.substr(this._pos, 1) === "H") {
var result348 = "H";
this._pos += 1;
} else {
var result348 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("H"));
}
}
if (result348 !== null) {
var result329 = result348;
} else {
if (this._input.substr(this._pos, 1) === "I") {
var result347 = "I";
this._pos += 1;
} else {
var result347 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("I"));
}
}
if (result347 !== null) {
var result329 = result347;
} else {
if (this._input.substr(this._pos, 1) === "J") {
var result346 = "J";
this._pos += 1;
} else {
var result346 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("J"));
}
}
if (result346 !== null) {
var result329 = result346;
} else {
if (this._input.substr(this._pos, 1) === "K") {
var result345 = "K";
this._pos += 1;
} else {
var result345 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("K"));
}
}
if (result345 !== null) {
var result329 = result345;
} else {
if (this._input.substr(this._pos, 1) === "L") {
var result344 = "L";
this._pos += 1;
} else {
var result344 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("L"));
}
}
if (result344 !== null) {
var result329 = result344;
} else {
if (this._input.substr(this._pos, 1) === "M") {
var result343 = "M";
this._pos += 1;
} else {
var result343 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("M"));
}
}
if (result343 !== null) {
var result329 = result343;
} else {
if (this._input.substr(this._pos, 1) === "N") {
var result342 = "N";
this._pos += 1;
} else {
var result342 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("N"));
}
}
if (result342 !== null) {
var result329 = result342;
} else {
if (this._input.substr(this._pos, 1) === "O") {
var result341 = "O";
this._pos += 1;
} else {
var result341 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("O"));
}
}
if (result341 !== null) {
var result329 = result341;
} else {
if (this._input.substr(this._pos, 1) === "P") {
var result340 = "P";
this._pos += 1;
} else {
var result340 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("P"));
}
}
if (result340 !== null) {
var result329 = result340;
} else {
if (this._input.substr(this._pos, 1) === "Q") {
var result339 = "Q";
this._pos += 1;
} else {
var result339 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("Q"));
}
}
if (result339 !== null) {
var result329 = result339;
} else {
if (this._input.substr(this._pos, 1) === "R") {
var result338 = "R";
this._pos += 1;
} else {
var result338 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("R"));
}
}
if (result338 !== null) {
var result329 = result338;
} else {
if (this._input.substr(this._pos, 1) === "S") {
var result337 = "S";
this._pos += 1;
} else {
var result337 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("S"));
}
}
if (result337 !== null) {
var result329 = result337;
} else {
if (this._input.substr(this._pos, 1) === "T") {
var result336 = "T";
this._pos += 1;
} else {
var result336 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("T"));
}
}
if (result336 !== null) {
var result329 = result336;
} else {
if (this._input.substr(this._pos, 1) === "U") {
var result335 = "U";
this._pos += 1;
} else {
var result335 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("U"));
}
}
if (result335 !== null) {
var result329 = result335;
} else {
if (this._input.substr(this._pos, 1) === "V") {
var result334 = "V";
this._pos += 1;
} else {
var result334 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("V"));
}
}
if (result334 !== null) {
var result329 = result334;
} else {
if (this._input.substr(this._pos, 1) === "W") {
var result333 = "W";
this._pos += 1;
} else {
var result333 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("W"));
}
}
if (result333 !== null) {
var result329 = result333;
} else {
if (this._input.substr(this._pos, 1) === "X") {
var result332 = "X";
this._pos += 1;
} else {
var result332 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("X"));
}
}
if (result332 !== null) {
var result329 = result332;
} else {
if (this._input.substr(this._pos, 1) === "Y") {
var result331 = "Y";
this._pos += 1;
} else {
var result331 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("Y"));
}
}
if (result331 !== null) {
var result329 = result331;
} else {
if (this._input.substr(this._pos, 1) === "Z") {
var result330 = "Z";
this._pos += 1;
} else {
var result330 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("Z"));
}
}
if (result330 !== null) {
var result329 = result330;
} else {
var result329 = null;;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
this._cache["upperCaseLetter"][pos] = {
length: this._pos - pos,
result: result329
};
return result329;
};
result._parse___ = function(context) {
this._cache["__"] = this._cache["__"] || [];
var cachedResult = this._cache["__"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var result356 = [];
var result360 = this._parse_whitespace(context);
if (result360 !== null) {
var result357 = result360;
} else {
var result359 = this._parse_eol(context);
if (result359 !== null) {
var result357 = result359;
} else {
var result358 = this._parse_comment(context);
if (result358 !== null) {
var result357 = result358;
} else {
var result357 = null;;
};
};
}
while (result357 !== null) {
result356.push(result357);
var result360 = this._parse_whitespace(context);
if (result360 !== null) {
var result357 = result360;
} else {
var result359 = this._parse_eol(context);
if (result359 !== null) {
var result357 = result359;
} else {
var result358 = this._parse_comment(context);
if (result358 !== null) {
var result357 = result358;
} else {
var result357 = null;;
};
};
}
}
this._cache["__"][pos] = {
length: this._pos - pos,
result: result356
};
return result356;
};
result._parse_comment = function(context) {
this._cache["comment"] = this._cache["comment"] || [];
var cachedResult = this._cache["comment"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedReportMatchFailures = context.reportMatchFailures;
context.reportMatchFailures = false;
var result363 = this._parse_singleLineComment(context);
if (result363 !== null) {
var result361 = result363;
} else {
var result362 = this._parse_multiLineComment(context);
if (result362 !== null) {
var result361 = result362;
} else {
var result361 = null;;
};
}
context.reportMatchFailures = savedReportMatchFailures;
if (context.reportMatchFailures && result361 === null) {
this._matchFailed(new PEG.Parser.NamedRuleMatchFailure("comment"));
}
this._cache["comment"][pos] = {
length: this._pos - pos,
result: result361
};
return result361;
};
result._parse_singleLineComment = function(context) {
this._cache["singleLineComment"] = this._cache["singleLineComment"] || [];
var cachedResult = this._cache["singleLineComment"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos49 = this._pos;
if (this._input.substr(this._pos, 2) === "//") {
var result365 = "//";
this._pos += 2;
} else {
var result365 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("//"));
}
}
if (result365 !== null) {
var result366 = [];
var savedPos50 = this._pos;
var savedPos51 = this._pos;
var savedReportMatchFailuresVar7 = context.reportMatchFailures;
context.reportMatchFailures = false;
var result370 = this._parse_eolChar(context);
context.reportMatchFailures = savedReportMatchFailuresVar7;
if (result370 === null) {
var result368 = '';
} else {
var result368 = null;
this._pos = savedPos51;
}
if (result368 !== null) {
if (this._input.length > this._pos) {
var result369 = this._input[this._pos];
this._pos++;
} else {
var result369 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result369 !== null) {
var result367 = [result368, result369];
} else {
var result367 = null;
this._pos = savedPos50;
}
} else {
var result367 = null;
this._pos = savedPos50;
}
while (result367 !== null) {
result366.push(result367);
var savedPos50 = this._pos;
var savedPos51 = this._pos;
var savedReportMatchFailuresVar7 = context.reportMatchFailures;
context.reportMatchFailures = false;
var result370 = this._parse_eolChar(context);
context.reportMatchFailures = savedReportMatchFailuresVar7;
if (result370 === null) {
var result368 = '';
} else {
var result368 = null;
this._pos = savedPos51;
}
if (result368 !== null) {
if (this._input.length > this._pos) {
var result369 = this._input[this._pos];
this._pos++;
} else {
var result369 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result369 !== null) {
var result367 = [result368, result369];
} else {
var result367 = null;
this._pos = savedPos50;
}
} else {
var result367 = null;
this._pos = savedPos50;
}
}
if (result366 !== null) {
var result364 = [result365, result366];
} else {
var result364 = null;
this._pos = savedPos49;
}
} else {
var result364 = null;
this._pos = savedPos49;
}
this._cache["singleLineComment"][pos] = {
length: this._pos - pos,
result: result364
};
return result364;
};
result._parse_multiLineComment = function(context) {
this._cache["multiLineComment"] = this._cache["multiLineComment"] || [];
var cachedResult = this._cache["multiLineComment"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedPos52 = this._pos;
if (this._input.substr(this._pos, 2) === "/*") {
var result372 = "/*";
this._pos += 2;
} else {
var result372 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("/*"));
}
}
if (result372 !== null) {
var result373 = [];
var savedPos53 = this._pos;
var savedPos54 = this._pos;
var savedReportMatchFailuresVar8 = context.reportMatchFailures;
context.reportMatchFailures = false;
if (this._input.substr(this._pos, 2) === "*/") {
var result378 = "*/";
this._pos += 2;
} else {
var result378 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("*/"));
}
}
context.reportMatchFailures = savedReportMatchFailuresVar8;
if (result378 === null) {
var result376 = '';
} else {
var result376 = null;
this._pos = savedPos54;
}
if (result376 !== null) {
if (this._input.length > this._pos) {
var result377 = this._input[this._pos];
this._pos++;
} else {
var result377 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result377 !== null) {
var result375 = [result376, result377];
} else {
var result375 = null;
this._pos = savedPos53;
}
} else {
var result375 = null;
this._pos = savedPos53;
}
while (result375 !== null) {
result373.push(result375);
var savedPos53 = this._pos;
var savedPos54 = this._pos;
var savedReportMatchFailuresVar8 = context.reportMatchFailures;
context.reportMatchFailures = false;
if (this._input.substr(this._pos, 2) === "*/") {
var result378 = "*/";
this._pos += 2;
} else {
var result378 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("*/"));
}
}
context.reportMatchFailures = savedReportMatchFailuresVar8;
if (result378 === null) {
var result376 = '';
} else {
var result376 = null;
this._pos = savedPos54;
}
if (result376 !== null) {
if (this._input.length > this._pos) {
var result377 = this._input[this._pos];
this._pos++;
} else {
var result377 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.AnyMatchFailure());
}
}
if (result377 !== null) {
var result375 = [result376, result377];
} else {
var result375 = null;
this._pos = savedPos53;
}
} else {
var result375 = null;
this._pos = savedPos53;
}
}
if (result373 !== null) {
if (this._input.substr(this._pos, 2) === "*/") {
var result374 = "*/";
this._pos += 2;
} else {
var result374 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("*/"));
}
}
if (result374 !== null) {
var result371 = [result372, result373, result374];
} else {
var result371 = null;
this._pos = savedPos52;
}
} else {
var result371 = null;
this._pos = savedPos52;
}
} else {
var result371 = null;
this._pos = savedPos52;
}
this._cache["multiLineComment"][pos] = {
length: this._pos - pos,
result: result371
};
return result371;
};
result._parse_eol = function(context) {
this._cache["eol"] = this._cache["eol"] || [];
var cachedResult = this._cache["eol"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedReportMatchFailures = context.reportMatchFailures;
context.reportMatchFailures = false;
if (this._input.substr(this._pos, 1) === "\n") {
var result384 = "\n";
this._pos += 1;
} else {
var result384 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\n"));
}
}
if (result384 !== null) {
var result379 = result384;
} else {
if (this._input.substr(this._pos, 2) === "\r\n") {
var result383 = "\r\n";
this._pos += 2;
} else {
var result383 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\r\n"));
}
}
if (result383 !== null) {
var result379 = result383;
} else {
if (this._input.substr(this._pos, 1) === "\r") {
var result382 = "\r";
this._pos += 1;
} else {
var result382 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\r"));
}
}
if (result382 !== null) {
var result379 = result382;
} else {
if (this._input.substr(this._pos, 1) === "\u2028") {
var result381 = "\u2028";
this._pos += 1;
} else {
var result381 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\u2028"));
}
}
if (result381 !== null) {
var result379 = result381;
} else {
if (this._input.substr(this._pos, 1) === "\u2029") {
var result380 = "\u2029";
this._pos += 1;
} else {
var result380 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\u2029"));
}
}
if (result380 !== null) {
var result379 = result380;
} else {
var result379 = null;;
};
};
};
};
}
context.reportMatchFailures = savedReportMatchFailures;
if (context.reportMatchFailures && result379 === null) {
this._matchFailed(new PEG.Parser.NamedRuleMatchFailure("end of line"));
}
this._cache["eol"][pos] = {
length: this._pos - pos,
result: result379
};
return result379;
};
result._parse_eolChar = function(context) {
this._cache["eolChar"] = this._cache["eolChar"] || [];
var cachedResult = this._cache["eolChar"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
if (this._input.substr(this._pos, 1) === "\n") {
var result389 = "\n";
this._pos += 1;
} else {
var result389 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\n"));
}
}
if (result389 !== null) {
var result385 = result389;
} else {
if (this._input.substr(this._pos, 1) === "\r") {
var result388 = "\r";
this._pos += 1;
} else {
var result388 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\r"));
}
}
if (result388 !== null) {
var result385 = result388;
} else {
if (this._input.substr(this._pos, 1) === "\u2028") {
var result387 = "\u2028";
this._pos += 1;
} else {
var result387 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\u2028"));
}
}
if (result387 !== null) {
var result385 = result387;
} else {
if (this._input.substr(this._pos, 1) === "\u2029") {
var result386 = "\u2029";
this._pos += 1;
} else {
var result386 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure("\u2029"));
}
}
if (result386 !== null) {
var result385 = result386;
} else {
var result385 = null;;
};
};
};
}
this._cache["eolChar"][pos] = {
length: this._pos - pos,
result: result385
};
return result385;
};
result._parse_whitespace = function(context) {
this._cache["whitespace"] = this._cache["whitespace"] || [];
var cachedResult = this._cache["whitespace"][this._pos];
if (cachedResult !== undefined) {
this._pos += cachedResult.length;
return cachedResult.result;
}
var pos = this._pos;
var savedReportMatchFailures = context.reportMatchFailures;
context.reportMatchFailures = false;
if (this._input.substr(this._pos, 1) === " ") {
var result411 = " ";
this._pos += 1;
} else {
var result411 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(" "));
}
}
if (result411 !== null) {
var result390 = result411;
} else {
if (this._input.substr(this._pos, 1) === " ") {
var result410 = " ";
this._pos += 1;
} else {
var result410 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(" "));
}
}
if (result410 !== null) {
var result390 = result410;
} else {
if (this._input.substr(this._pos, 1) === " ") {
var result409 = " ";
this._pos += 1;
} else {
var result409 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(" "));
}
}
if (result409 !== null) {
var result390 = result409;
} else {
if (this._input.substr(this._pos, 1) === " ") {
var result408 = " ";
this._pos += 1;
} else {
var result408 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(" "));
}
}
if (result408 !== null) {
var result390 = result408;
} else {
if (this._input.substr(this._pos, 1) === " ") {
var result407 = " ";
this._pos += 1;
} else {
var result407 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(" "));
}
}
if (result407 !== null) {
var result390 = result407;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result406 = "";
this._pos += 1;
} else {
var result406 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result406 !== null) {
var result390 = result406;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result405 = "";
this._pos += 1;
} else {
var result405 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result405 !== null) {
var result390 = result405;
} else {
if (this._input.substr(this._pos, 1) === " ") {
var result404 = " ";
this._pos += 1;
} else {
var result404 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(" "));
}
}
if (result404 !== null) {
var result390 = result404;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result403 = "";
this._pos += 1;
} else {
var result403 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result403 !== null) {
var result390 = result403;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result402 = "";
this._pos += 1;
} else {
var result402 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result402 !== null) {
var result390 = result402;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result401 = "";
this._pos += 1;
} else {
var result401 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result401 !== null) {
var result390 = result401;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result400 = "";
this._pos += 1;
} else {
var result400 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result400 !== null) {
var result390 = result400;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result399 = "";
this._pos += 1;
} else {
var result399 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result399 !== null) {
var result390 = result399;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result398 = "";
this._pos += 1;
} else {
var result398 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result398 !== null) {
var result390 = result398;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result397 = "";
this._pos += 1;
} else {
var result397 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result397 !== null) {
var result390 = result397;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result396 = "";
this._pos += 1;
} else {
var result396 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result396 !== null) {
var result390 = result396;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result395 = "";
this._pos += 1;
} else {
var result395 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result395 !== null) {
var result390 = result395;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result394 = "";
this._pos += 1;
} else {
var result394 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result394 !== null) {
var result390 = result394;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result393 = "";
this._pos += 1;
} else {
var result393 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result393 !== null) {
var result390 = result393;
} else {
if (this._input.substr(this._pos, 1) === "") {
var result392 = "";
this._pos += 1;
} else {
var result392 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(""));
}
}
if (result392 !== null) {
var result390 = result392;
} else {
if (this._input.substr(this._pos, 1) === " ") {
var result391 = " ";
this._pos += 1;
} else {
var result391 = null;
if (context.reportMatchFailures) {
this._matchFailed(new PEG.Parser.LiteralMatchFailure(" "));
}
}
if (result391 !== null) {
var result390 = result391;
} else {
var result390 = null;;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
context.reportMatchFailures = savedReportMatchFailures;
if (context.reportMatchFailures && result390 === null) {
this._matchFailed(new PEG.Parser.NamedRuleMatchFailure("whitespace"));
}
this._cache["whitespace"][pos] = {
length: this._pos - pos,
result: result390
};
return result390;
};
return result;
})();