You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2013/03/04 20:32:53 UTC
[3/91] [abbrv] never ever check in node modules. baaad.
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/19cf42ee/node_modules/xcode/node_modules/pegjs/lib/peg.js
----------------------------------------------------------------------
diff --git a/node_modules/xcode/node_modules/pegjs/lib/peg.js b/node_modules/xcode/node_modules/pegjs/lib/peg.js
deleted file mode 100644
index 94c9423..0000000
--- a/node_modules/xcode/node_modules/pegjs/lib/peg.js
+++ /dev/null
@@ -1,5141 +0,0 @@
-/* PEG.js 0.6.2 (http://pegjs.majda.cz/) */
-
-(function() {
-
-var undefined;
-
-var PEG = {
- /* PEG.js version. */
- VERSION: "0.6.2",
-
- /*
- * Generates a parser from a specified grammar and returns it.
- *
- * The grammar must be a string in the format described by the metagramar in
- * the parser.pegjs file.
- *
- * Throws |PEG.parser.SyntaxError| if the grammar contains a syntax error or
- * |PEG.GrammarError| if it contains a semantic error. Note that not all
- * errors are detected during the generation and some may protrude to the
- * generated parser and cause its malfunction.
- */
- buildParser: function(grammar) {
- return PEG.compiler.compile(PEG.parser.parse(grammar));
- }
-};
-
-/* Thrown when the grammar contains an error. */
-
-PEG.GrammarError = function(message) {
- this.name = "PEG.GrammarError";
- this.message = message;
-};
-
-PEG.GrammarError.prototype = Error.prototype;
-
-function contains(array, value) {
- /*
- * Stupid IE does not have Array.prototype.indexOf, otherwise this function
- * would be a one-liner.
- */
- var length = array.length;
- for (var i = 0; i < length; i++) {
- if (array[i] === value) {
- return true;
- }
- }
- return false;
-}
-
-function each(array, callback) {
- var length = array.length;
- for (var i = 0; i < length; i++) {
- callback(array[i]);
- }
-}
-
-function map(array, callback) {
- var result = [];
- var length = array.length;
- for (var i = 0; i < length; i++) {
- result[i] = callback(array[i]);
- }
- return result;
-}
-
-/*
- * Returns a string padded on the left to a desired length with a character.
- *
- * The code needs to be in sync with th code template in the compilation
- * function for "action" nodes.
- */
-function padLeft(input, padding, length) {
- var result = input;
-
- var padLength = length - input.length;
- for (var i = 0; i < padLength; i++) {
- result = padding + result;
- }
-
- return result;
-}
-
-/*
- * Returns an escape sequence for given character. Uses \x for characters <=
- * 0xFF to save space, \u for the rest.
- *
- * The code needs to be in sync with th code template in the compilation
- * function for "action" nodes.
- */
-function escape(ch) {
- var charCode = ch.charCodeAt(0);
-
- if (charCode <= 0xFF) {
- var escapeChar = 'x';
- var length = 2;
- } else {
- var escapeChar = 'u';
- var length = 4;
- }
-
- return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);
-}
-
-/*
- * Surrounds the string with quotes and escapes characters inside so that the
- * result is a valid JavaScript string.
- *
- * The code needs to be in sync with th code template in the compilation
- * function for "action" nodes.
- */
-function quote(s) {
- /*
- * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string
- * literal except for the closing quote character, backslash, carriage return,
- * line separator, paragraph separator, and line feed. Any character may
- * appear in the form of an escape sequence.
- *
- * For portability, we also escape escape all non-ASCII characters.
- */
- return '"' + s
- .replace(/\\/g, '\\\\') // backslash
- .replace(/"/g, '\\"') // closing quote character
- .replace(/\r/g, '\\r') // carriage return
- .replace(/\n/g, '\\n') // line feed
- .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
- + '"';
-};
-
-/*
- * Escapes characters inside the string so that it can be used as a list of
- * characters in a character class of a regular expression.
- */
-function quoteForRegexpClass(s) {
- /*
- * Based on ECMA-262, 5th ed., 7.8.5 & 15.10.1.
- *
- * For portability, we also escape escape all non-ASCII characters.
- */
- return s
- .replace(/\\/g, '\\\\') // backslash
- .replace(/\0/g, '\\0') // null, IE needs this
- .replace(/\//g, '\\/') // closing slash
- .replace(/]/g, '\\]') // closing bracket
- .replace(/-/g, '\\-') // dash
- .replace(/\r/g, '\\r') // carriage return
- .replace(/\n/g, '\\n') // line feed
- .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
-}
-
-/*
- * Builds a node visitor -- a function which takes a node and any number of
- * other parameters, calls an appropriate function according to the node type,
- * passes it all its parameters and returns its value. The functions for various
- * node types are passed in a parameter to |buildNodeVisitor| as a hash.
- */
-function buildNodeVisitor(functions) {
- return function(node) {
- return functions[node.type].apply(null, arguments);
- }
-}
-PEG.parser = (function(){
- /* Generated by PEG.js 0.6.2 (http://pegjs.majda.cz/). */
-
- var result = {
- /*
- * Parses the input with a generated parser. If the parsing is successfull,
- * returns a value explicitly or implicitly specified by the grammar from
- * which the parser was generated (see |PEG.buildParser|). If the parsing is
- * unsuccessful, throws |PEG.parser.SyntaxError| describing the error.
- */
- parse: function(input, startRule) {
- var parseFunctions = {
- "__": parse___,
- "action": parse_action,
- "and": parse_and,
- "braced": parse_braced,
- "bracketDelimitedCharacter": parse_bracketDelimitedCharacter,
- "choice": parse_choice,
- "class": parse_class,
- "classCharacter": parse_classCharacter,
- "classCharacterRange": parse_classCharacterRange,
- "colon": parse_colon,
- "comment": parse_comment,
- "digit": parse_digit,
- "dot": parse_dot,
- "doubleQuotedCharacter": parse_doubleQuotedCharacter,
- "doubleQuotedLiteral": parse_doubleQuotedLiteral,
- "eol": parse_eol,
- "eolChar": parse_eolChar,
- "eolEscapeSequence": parse_eolEscapeSequence,
- "equals": parse_equals,
- "grammar": parse_grammar,
- "hexDigit": parse_hexDigit,
- "hexEscapeSequence": parse_hexEscapeSequence,
- "identifier": parse_identifier,
- "initializer": parse_initializer,
- "labeled": parse_labeled,
- "letter": parse_letter,
- "literal": parse_literal,
- "lowerCaseLetter": parse_lowerCaseLetter,
- "lparen": parse_lparen,
- "multiLineComment": parse_multiLineComment,
- "nonBraceCharacter": parse_nonBraceCharacter,
- "nonBraceCharacters": parse_nonBraceCharacters,
- "not": parse_not,
- "plus": parse_plus,
- "prefixed": parse_prefixed,
- "primary": parse_primary,
- "question": parse_question,
- "rparen": parse_rparen,
- "rule": parse_rule,
- "semicolon": parse_semicolon,
- "sequence": parse_sequence,
- "simpleBracketDelimitedCharacter": parse_simpleBracketDelimitedCharacter,
- "simpleDoubleQuotedCharacter": parse_simpleDoubleQuotedCharacter,
- "simpleEscapeSequence": parse_simpleEscapeSequence,
- "simpleSingleQuotedCharacter": parse_simpleSingleQuotedCharacter,
- "singleLineComment": parse_singleLineComment,
- "singleQuotedCharacter": parse_singleQuotedCharacter,
- "singleQuotedLiteral": parse_singleQuotedLiteral,
- "slash": parse_slash,
- "star": parse_star,
- "suffixed": parse_suffixed,
- "unicodeEscapeSequence": parse_unicodeEscapeSequence,
- "upperCaseLetter": parse_upperCaseLetter,
- "whitespace": parse_whitespace,
- "zeroEscapeSequence": parse_zeroEscapeSequence
- };
-
- if (startRule !== undefined) {
- if (parseFunctions[startRule] === undefined) {
- throw new Error("Invalid rule name: " + quote(startRule) + ".");
- }
- } else {
- startRule = "grammar";
- }
-
- var pos = 0;
- var reportMatchFailures = true;
- var rightmostMatchFailuresPos = 0;
- var rightmostMatchFailuresExpected = [];
- var cache = {};
-
- function padLeft(input, padding, length) {
- var result = input;
-
- var padLength = length - input.length;
- for (var i = 0; i < padLength; i++) {
- result = padding + result;
- }
-
- return result;
- }
-
- function escape(ch) {
- var charCode = ch.charCodeAt(0);
-
- if (charCode <= 0xFF) {
- var escapeChar = 'x';
- var length = 2;
- } else {
- var escapeChar = 'u';
- var length = 4;
- }
-
- return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);
- }
-
- function quote(s) {
- /*
- * ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a
- * string literal except for the closing quote character, backslash,
- * carriage return, line separator, paragraph separator, and line feed.
- * Any character may appear in the form of an escape sequence.
- */
- return '"' + s
- .replace(/\\/g, '\\\\') // backslash
- .replace(/"/g, '\\"') // closing quote character
- .replace(/\r/g, '\\r') // carriage return
- .replace(/\n/g, '\\n') // line feed
- .replace(/[\x80-\uFFFF]/g, escape) // non-ASCII characters
- + '"';
- }
-
- function matchFailed(failure) {
- if (pos < rightmostMatchFailuresPos) {
- return;
- }
-
- if (pos > rightmostMatchFailuresPos) {
- rightmostMatchFailuresPos = pos;
- rightmostMatchFailuresExpected = [];
- }
-
- rightmostMatchFailuresExpected.push(failure);
- }
-
- function parse_grammar() {
- var cacheKey = 'grammar@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result3 = parse___();
- if (result3 !== null) {
- var result7 = parse_initializer();
- var result4 = result7 !== null ? result7 : '';
- if (result4 !== null) {
- var result6 = parse_rule();
- if (result6 !== null) {
- var result5 = [];
- while (result6 !== null) {
- result5.push(result6);
- var result6 = parse_rule();
- }
- } else {
- var result5 = null;
- }
- if (result5 !== null) {
- var result1 = [result3, result4, result5];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(initializer, rules) {
- var rulesConverted = {};
- each(rules, function(rule) { rulesConverted[rule.name] = rule; });
-
- return {
- type: "grammar",
- initializer: initializer !== "" ? initializer : null,
- rules: rulesConverted,
- startRule: rules[0].name
- }
- })(result1[1], result1[2])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_initializer() {
- var cacheKey = 'initializer@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result3 = parse_action();
- if (result3 !== null) {
- var result5 = parse_semicolon();
- var result4 = result5 !== null ? result5 : '';
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(code) {
- return {
- type: "initializer",
- code: code
- };
- })(result1[0])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_rule() {
- var cacheKey = 'rule@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result3 = parse_identifier();
- if (result3 !== null) {
- var result10 = parse_literal();
- if (result10 !== null) {
- var result4 = result10;
- } else {
- if (input.substr(pos, 0) === "") {
- var result9 = "";
- pos += 0;
- } else {
- var result9 = null;
- if (reportMatchFailures) {
- matchFailed("\"\"");
- }
- }
- if (result9 !== null) {
- var result4 = result9;
- } else {
- var result4 = null;;
- };
- }
- if (result4 !== null) {
- var result5 = parse_equals();
- if (result5 !== null) {
- var result6 = parse_choice();
- if (result6 !== null) {
- var result8 = parse_semicolon();
- var result7 = result8 !== null ? result8 : '';
- if (result7 !== null) {
- var result1 = [result3, result4, result5, result6, result7];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(name, displayName, expression) {
- return {
- type: "rule",
- name: name,
- displayName: displayName !== "" ? displayName : null,
- expression: expression
- };
- })(result1[0], result1[1], result1[3])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_choice() {
- var cacheKey = 'choice@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result3 = parse_sequence();
- if (result3 !== null) {
- var result4 = [];
- var savedPos2 = pos;
- var result6 = parse_slash();
- if (result6 !== null) {
- var result7 = parse_sequence();
- if (result7 !== null) {
- var result5 = [result6, result7];
- } else {
- var result5 = null;
- pos = savedPos2;
- }
- } else {
- var result5 = null;
- pos = savedPos2;
- }
- while (result5 !== null) {
- result4.push(result5);
- var savedPos2 = pos;
- var result6 = parse_slash();
- if (result6 !== null) {
- var result7 = parse_sequence();
- if (result7 !== null) {
- var result5 = [result6, result7];
- } else {
- var result5 = null;
- pos = savedPos2;
- }
- } else {
- var result5 = null;
- pos = savedPos2;
- }
- }
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(head, tail) {
- if (tail.length > 0) {
- var alternatives = [head].concat(map(
- tail,
- function(element) { return element[1]; }
- ));
- return {
- type: "choice",
- alternatives: alternatives
- }
- } else {
- return head;
- }
- })(result1[0], result1[1])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_sequence() {
- var cacheKey = 'sequence@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos1 = pos;
- var savedPos2 = pos;
- var result8 = [];
- var result10 = parse_labeled();
- while (result10 !== null) {
- result8.push(result10);
- var result10 = parse_labeled();
- }
- if (result8 !== null) {
- var result9 = parse_action();
- if (result9 !== null) {
- var result6 = [result8, result9];
- } else {
- var result6 = null;
- pos = savedPos2;
- }
- } else {
- var result6 = null;
- pos = savedPos2;
- }
- var result7 = result6 !== null
- ? (function(elements, code) {
- var expression = elements.length != 1
- ? {
- type: "sequence",
- elements: elements
- }
- : elements[0];
- return {
- type: "action",
- expression: expression,
- code: code
- };
- })(result6[0], result6[1])
- : null;
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result5 = null;
- pos = savedPos1;
- }
- if (result5 !== null) {
- var result0 = result5;
- } else {
- var savedPos0 = pos;
- var result2 = [];
- var result4 = parse_labeled();
- while (result4 !== null) {
- result2.push(result4);
- var result4 = parse_labeled();
- }
- var result3 = result2 !== null
- ? (function(elements) {
- return elements.length != 1
- ? {
- type: "sequence",
- elements: elements
- }
- : elements[0];
- })(result2)
- : null;
- if (result3 !== null) {
- var result1 = result3;
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_labeled() {
- var cacheKey = 'labeled@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result5 = parse_identifier();
- if (result5 !== null) {
- var result6 = parse_colon();
- if (result6 !== null) {
- var result7 = parse_prefixed();
- if (result7 !== null) {
- var result3 = [result5, result6, result7];
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- var result4 = result3 !== null
- ? (function(label, expression) {
- return {
- type: "labeled",
- label: label,
- expression: expression
- };
- })(result3[0], result3[2])
- : null;
- if (result4 !== null) {
- var result2 = result4;
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_prefixed();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_prefixed() {
- var cacheKey = 'prefixed@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos6 = pos;
- var savedPos7 = pos;
- var result20 = parse_and();
- if (result20 !== null) {
- var result21 = parse_action();
- if (result21 !== null) {
- var result18 = [result20, result21];
- } else {
- var result18 = null;
- pos = savedPos7;
- }
- } else {
- var result18 = null;
- pos = savedPos7;
- }
- var result19 = result18 !== null
- ? (function(code) {
- return {
- type: "semantic_and",
- code: code
- };
- })(result18[1])
- : null;
- if (result19 !== null) {
- var result17 = result19;
- } else {
- var result17 = null;
- pos = savedPos6;
- }
- if (result17 !== null) {
- var result0 = result17;
- } else {
- var savedPos4 = pos;
- var savedPos5 = pos;
- var result15 = parse_and();
- if (result15 !== null) {
- var result16 = parse_suffixed();
- if (result16 !== null) {
- var result13 = [result15, result16];
- } else {
- var result13 = null;
- pos = savedPos5;
- }
- } else {
- var result13 = null;
- pos = savedPos5;
- }
- var result14 = result13 !== null
- ? (function(expression) {
- return {
- type: "simple_and",
- expression: expression
- };
- })(result13[1])
- : null;
- if (result14 !== null) {
- var result12 = result14;
- } else {
- var result12 = null;
- pos = savedPos4;
- }
- if (result12 !== null) {
- var result0 = result12;
- } else {
- var savedPos2 = pos;
- var savedPos3 = pos;
- var result10 = parse_not();
- if (result10 !== null) {
- var result11 = parse_action();
- if (result11 !== null) {
- var result8 = [result10, result11];
- } else {
- var result8 = null;
- pos = savedPos3;
- }
- } else {
- var result8 = null;
- pos = savedPos3;
- }
- var result9 = result8 !== null
- ? (function(code) {
- return {
- type: "semantic_not",
- code: code
- };
- })(result8[1])
- : null;
- if (result9 !== null) {
- var result7 = result9;
- } else {
- var result7 = null;
- pos = savedPos2;
- }
- if (result7 !== null) {
- var result0 = result7;
- } else {
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result5 = parse_not();
- if (result5 !== null) {
- var result6 = parse_suffixed();
- if (result6 !== null) {
- var result3 = [result5, result6];
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- var result4 = result3 !== null
- ? (function(expression) {
- return {
- type: "simple_not",
- expression: expression
- };
- })(result3[1])
- : null;
- if (result4 !== null) {
- var result2 = result4;
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_suffixed();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_suffixed() {
- var cacheKey = 'suffixed@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos4 = pos;
- var savedPos5 = pos;
- var result15 = parse_primary();
- if (result15 !== null) {
- var result16 = parse_question();
- if (result16 !== null) {
- var result13 = [result15, result16];
- } else {
- var result13 = null;
- pos = savedPos5;
- }
- } else {
- var result13 = null;
- pos = savedPos5;
- }
- var result14 = result13 !== null
- ? (function(expression) {
- return {
- type: "optional",
- expression: expression
- };
- })(result13[0])
- : null;
- if (result14 !== null) {
- var result12 = result14;
- } else {
- var result12 = null;
- pos = savedPos4;
- }
- if (result12 !== null) {
- var result0 = result12;
- } else {
- var savedPos2 = pos;
- var savedPos3 = pos;
- var result10 = parse_primary();
- if (result10 !== null) {
- var result11 = parse_star();
- if (result11 !== null) {
- var result8 = [result10, result11];
- } else {
- var result8 = null;
- pos = savedPos3;
- }
- } else {
- var result8 = null;
- pos = savedPos3;
- }
- var result9 = result8 !== null
- ? (function(expression) {
- return {
- type: "zero_or_more",
- expression: expression
- };
- })(result8[0])
- : null;
- if (result9 !== null) {
- var result7 = result9;
- } else {
- var result7 = null;
- pos = savedPos2;
- }
- if (result7 !== null) {
- var result0 = result7;
- } else {
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result5 = parse_primary();
- if (result5 !== null) {
- var result6 = parse_plus();
- if (result6 !== null) {
- var result3 = [result5, result6];
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- } else {
- var result3 = null;
- pos = savedPos1;
- }
- var result4 = result3 !== null
- ? (function(expression) {
- return {
- type: "one_or_more",
- expression: expression
- };
- })(result3[0])
- : null;
- if (result4 !== null) {
- var result2 = result4;
- } else {
- var result2 = null;
- pos = savedPos0;
- }
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_primary();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_primary() {
- var cacheKey = 'primary@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos4 = pos;
- var savedPos5 = pos;
- var result17 = parse_identifier();
- if (result17 !== null) {
- var savedPos6 = pos;
- var savedReportMatchFailuresVar0 = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos7 = pos;
- var result23 = parse_literal();
- if (result23 !== null) {
- var result20 = result23;
- } else {
- if (input.substr(pos, 0) === "") {
- var result22 = "";
- pos += 0;
- } else {
- var result22 = null;
- if (reportMatchFailures) {
- matchFailed("\"\"");
- }
- }
- if (result22 !== null) {
- var result20 = result22;
- } else {
- var result20 = null;;
- };
- }
- if (result20 !== null) {
- var result21 = parse_equals();
- if (result21 !== null) {
- var result19 = [result20, result21];
- } else {
- var result19 = null;
- pos = savedPos7;
- }
- } else {
- var result19 = null;
- pos = savedPos7;
- }
- reportMatchFailures = savedReportMatchFailuresVar0;
- if (result19 === null) {
- var result18 = '';
- } else {
- var result18 = null;
- pos = savedPos6;
- }
- if (result18 !== null) {
- var result15 = [result17, result18];
- } else {
- var result15 = null;
- pos = savedPos5;
- }
- } else {
- var result15 = null;
- pos = savedPos5;
- }
- var result16 = result15 !== null
- ? (function(name) {
- return {
- type: "rule_ref",
- name: name
- };
- })(result15[0])
- : null;
- if (result16 !== null) {
- var result14 = result16;
- } else {
- var result14 = null;
- pos = savedPos4;
- }
- if (result14 !== null) {
- var result0 = result14;
- } else {
- var savedPos3 = pos;
- var result12 = parse_literal();
- var result13 = result12 !== null
- ? (function(value) {
- return {
- type: "literal",
- value: value
- };
- })(result12)
- : null;
- if (result13 !== null) {
- var result11 = result13;
- } else {
- var result11 = null;
- pos = savedPos3;
- }
- if (result11 !== null) {
- var result0 = result11;
- } else {
- var savedPos2 = pos;
- var result9 = parse_dot();
- var result10 = result9 !== null
- ? (function() { return { type: "any" }; })()
- : null;
- if (result10 !== null) {
- var result8 = result10;
- } else {
- var result8 = null;
- pos = savedPos2;
- }
- if (result8 !== null) {
- var result0 = result8;
- } else {
- var result7 = parse_class();
- if (result7 !== null) {
- var result0 = result7;
- } else {
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result4 = parse_lparen();
- if (result4 !== null) {
- var result5 = parse_choice();
- if (result5 !== null) {
- var result6 = parse_rparen();
- if (result6 !== null) {
- var result2 = [result4, result5, result6];
- } else {
- var result2 = null;
- pos = savedPos1;
- }
- } else {
- var result2 = null;
- pos = savedPos1;
- }
- } else {
- var result2 = null;
- pos = savedPos1;
- }
- var result3 = result2 !== null
- ? (function(expression) { return expression; })(result2[1])
- : null;
- if (result3 !== null) {
- var result1 = result3;
- } else {
- var result1 = null;
- pos = savedPos0;
- }
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_action() {
- var cacheKey = 'action@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result3 = parse_braced();
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(braced) { return braced.substr(1, braced.length - 2); })(result1[0])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("action");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_braced() {
- var cacheKey = 'braced@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "{") {
- var result3 = "{";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"{\"");
- }
- }
- if (result3 !== null) {
- var result4 = [];
- var result8 = parse_braced();
- if (result8 !== null) {
- var result6 = result8;
- } else {
- var result7 = parse_nonBraceCharacter();
- if (result7 !== null) {
- var result6 = result7;
- } else {
- var result6 = null;;
- };
- }
- while (result6 !== null) {
- result4.push(result6);
- var result8 = parse_braced();
- if (result8 !== null) {
- var result6 = result8;
- } else {
- var result7 = parse_nonBraceCharacter();
- if (result7 !== null) {
- var result6 = result7;
- } else {
- var result6 = null;;
- };
- }
- }
- if (result4 !== null) {
- if (input.substr(pos, 1) === "}") {
- var result5 = "}";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\"}\"");
- }
- }
- if (result5 !== null) {
- var result1 = [result3, result4, result5];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(parts) {
- return "{" + parts.join("") + "}";
- })(result1[1])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_nonBraceCharacters() {
- var cacheKey = 'nonBraceCharacters@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var result3 = parse_nonBraceCharacter();
- if (result3 !== null) {
- var result1 = [];
- while (result3 !== null) {
- result1.push(result3);
- var result3 = parse_nonBraceCharacter();
- }
- } else {
- var result1 = null;
- }
- var result2 = result1 !== null
- ? (function(chars) { return chars.join(""); })(result1)
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_nonBraceCharacter() {
- var cacheKey = 'nonBraceCharacter@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- if (input.substr(pos).match(/^[^{}]/) !== null) {
- var result0 = input.charAt(pos);
- pos++;
- } else {
- var result0 = null;
- if (reportMatchFailures) {
- matchFailed("[^{}]");
- }
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_equals() {
- var cacheKey = 'equals@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "=") {
- var result3 = "=";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"=\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "="; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_colon() {
- var cacheKey = 'colon@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ":") {
- var result3 = ":";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\":\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return ":"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_semicolon() {
- var cacheKey = 'semicolon@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ";") {
- var result3 = ";";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\";\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return ";"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_slash() {
- var cacheKey = 'slash@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "/") {
- var result3 = "/";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"/\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "/"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_and() {
- var cacheKey = 'and@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "&") {
- var result3 = "&";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"&\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "&"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_not() {
- var cacheKey = 'not@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "!") {
- var result3 = "!";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"!\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "!"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_question() {
- var cacheKey = 'question@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "?") {
- var result3 = "?";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"?\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "?"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_star() {
- var cacheKey = 'star@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "*") {
- var result3 = "*";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"*\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "*"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_plus() {
- var cacheKey = 'plus@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "+") {
- var result3 = "+";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"+\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "+"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_lparen() {
- var cacheKey = 'lparen@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "(") {
- var result3 = "(";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"(\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "("; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_rparen() {
- var cacheKey = 'rparen@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ")") {
- var result3 = ")";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\")\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return ")"; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_dot() {
- var cacheKey = 'dot@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === ".") {
- var result3 = ".";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\".\"");
- }
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function() { return "."; })()
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_identifier() {
- var cacheKey = 'identifier@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result13 = parse_letter();
- if (result13 !== null) {
- var result3 = result13;
- } else {
- if (input.substr(pos, 1) === "_") {
- var result12 = "_";
- pos += 1;
- } else {
- var result12 = null;
- if (reportMatchFailures) {
- matchFailed("\"_\"");
- }
- }
- if (result12 !== null) {
- var result3 = result12;
- } else {
- if (input.substr(pos, 1) === "$") {
- var result11 = "$";
- pos += 1;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("\"$\"");
- }
- }
- if (result11 !== null) {
- var result3 = result11;
- } else {
- var result3 = null;;
- };
- };
- }
- if (result3 !== null) {
- var result4 = [];
- var result10 = parse_letter();
- if (result10 !== null) {
- var result6 = result10;
- } else {
- var result9 = parse_digit();
- if (result9 !== null) {
- var result6 = result9;
- } else {
- if (input.substr(pos, 1) === "_") {
- var result8 = "_";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\"_\"");
- }
- }
- if (result8 !== null) {
- var result6 = result8;
- } else {
- if (input.substr(pos, 1) === "$") {
- var result7 = "$";
- pos += 1;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("\"$\"");
- }
- }
- if (result7 !== null) {
- var result6 = result7;
- } else {
- var result6 = null;;
- };
- };
- };
- }
- while (result6 !== null) {
- result4.push(result6);
- var result10 = parse_letter();
- if (result10 !== null) {
- var result6 = result10;
- } else {
- var result9 = parse_digit();
- if (result9 !== null) {
- var result6 = result9;
- } else {
- if (input.substr(pos, 1) === "_") {
- var result8 = "_";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\"_\"");
- }
- }
- if (result8 !== null) {
- var result6 = result8;
- } else {
- if (input.substr(pos, 1) === "$") {
- var result7 = "$";
- pos += 1;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("\"$\"");
- }
- }
- if (result7 !== null) {
- var result6 = result7;
- } else {
- var result6 = null;;
- };
- };
- };
- }
- }
- if (result4 !== null) {
- var result5 = parse___();
- if (result5 !== null) {
- var result1 = [result3, result4, result5];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(head, tail) {
- return head + tail.join("");
- })(result1[0], result1[1])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("identifier");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_literal() {
- var cacheKey = 'literal@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result6 = parse_doubleQuotedLiteral();
- if (result6 !== null) {
- var result3 = result6;
- } else {
- var result5 = parse_singleQuotedLiteral();
- if (result5 !== null) {
- var result3 = result5;
- } else {
- var result3 = null;;
- };
- }
- if (result3 !== null) {
- var result4 = parse___();
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(literal) { return literal; })(result1[0])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("literal");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_doubleQuotedLiteral() {
- var cacheKey = 'doubleQuotedLiteral@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "\"") {
- var result3 = "\"";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\"\"");
- }
- }
- if (result3 !== null) {
- var result4 = [];
- var result6 = parse_doubleQuotedCharacter();
- while (result6 !== null) {
- result4.push(result6);
- var result6 = parse_doubleQuotedCharacter();
- }
- if (result4 !== null) {
- if (input.substr(pos, 1) === "\"") {
- var result5 = "\"";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\"\"");
- }
- }
- if (result5 !== null) {
- var result1 = [result3, result4, result5];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(chars) { return chars.join(""); })(result1[1])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_doubleQuotedCharacter() {
- var cacheKey = 'doubleQuotedCharacter@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var result6 = parse_simpleDoubleQuotedCharacter();
- if (result6 !== null) {
- var result0 = result6;
- } else {
- var result5 = parse_simpleEscapeSequence();
- if (result5 !== null) {
- var result0 = result5;
- } else {
- var result4 = parse_zeroEscapeSequence();
- if (result4 !== null) {
- var result0 = result4;
- } else {
- var result3 = parse_hexEscapeSequence();
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_unicodeEscapeSequence();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_eolEscapeSequence();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- };
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_simpleDoubleQuotedCharacter() {
- var cacheKey = 'simpleDoubleQuotedCharacter@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var savedPos2 = pos;
- var savedReportMatchFailuresVar0 = reportMatchFailures;
- reportMatchFailures = false;
- if (input.substr(pos, 1) === "\"") {
- var result8 = "\"";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\"\"");
- }
- }
- if (result8 !== null) {
- var result5 = result8;
- } else {
- if (input.substr(pos, 1) === "\\") {
- var result7 = "\\";
- pos += 1;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\\\"");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_eolChar();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailuresVar0;
- if (result5 === null) {
- var result3 = '';
- } else {
- var result3 = null;
- pos = savedPos2;
- }
- if (result3 !== null) {
- if (input.length > pos) {
- var result4 = input.charAt(pos);
- pos++;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed('any character');
- }
- }
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(char_) { return char_; })(result1[1])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_singleQuotedLiteral() {
- var cacheKey = 'singleQuotedLiteral@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "'") {
- var result3 = "'";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"'\"");
- }
- }
- if (result3 !== null) {
- var result4 = [];
- var result6 = parse_singleQuotedCharacter();
- while (result6 !== null) {
- result4.push(result6);
- var result6 = parse_singleQuotedCharacter();
- }
- if (result4 !== null) {
- if (input.substr(pos, 1) === "'") {
- var result5 = "'";
- pos += 1;
- } else {
- var result5 = null;
- if (reportMatchFailures) {
- matchFailed("\"'\"");
- }
- }
- if (result5 !== null) {
- var result1 = [result3, result4, result5];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(chars) { return chars.join(""); })(result1[1])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_singleQuotedCharacter() {
- var cacheKey = 'singleQuotedCharacter@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var result6 = parse_simpleSingleQuotedCharacter();
- if (result6 !== null) {
- var result0 = result6;
- } else {
- var result5 = parse_simpleEscapeSequence();
- if (result5 !== null) {
- var result0 = result5;
- } else {
- var result4 = parse_zeroEscapeSequence();
- if (result4 !== null) {
- var result0 = result4;
- } else {
- var result3 = parse_hexEscapeSequence();
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_unicodeEscapeSequence();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_eolEscapeSequence();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- };
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_simpleSingleQuotedCharacter() {
- var cacheKey = 'simpleSingleQuotedCharacter@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var savedPos2 = pos;
- var savedReportMatchFailuresVar0 = reportMatchFailures;
- reportMatchFailures = false;
- if (input.substr(pos, 1) === "'") {
- var result8 = "'";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\"'\"");
- }
- }
- if (result8 !== null) {
- var result5 = result8;
- } else {
- if (input.substr(pos, 1) === "\\") {
- var result7 = "\\";
- pos += 1;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\\\"");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_eolChar();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailuresVar0;
- if (result5 === null) {
- var result3 = '';
- } else {
- var result3 = null;
- pos = savedPos2;
- }
- if (result3 !== null) {
- if (input.length > pos) {
- var result4 = input.charAt(pos);
- pos++;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed('any character');
- }
- }
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(char_) { return char_; })(result1[1])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_class() {
- var cacheKey = 'class@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
- var savedReportMatchFailures = reportMatchFailures;
- reportMatchFailures = false;
- var savedPos0 = pos;
- var savedPos1 = pos;
- if (input.substr(pos, 1) === "[") {
- var result3 = "[";
- pos += 1;
- } else {
- var result3 = null;
- if (reportMatchFailures) {
- matchFailed("\"[\"");
- }
- }
- if (result3 !== null) {
- if (input.substr(pos, 1) === "^") {
- var result11 = "^";
- pos += 1;
- } else {
- var result11 = null;
- if (reportMatchFailures) {
- matchFailed("\"^\"");
- }
- }
- var result4 = result11 !== null ? result11 : '';
- if (result4 !== null) {
- var result5 = [];
- var result10 = parse_classCharacterRange();
- if (result10 !== null) {
- var result8 = result10;
- } else {
- var result9 = parse_classCharacter();
- if (result9 !== null) {
- var result8 = result9;
- } else {
- var result8 = null;;
- };
- }
- while (result8 !== null) {
- result5.push(result8);
- var result10 = parse_classCharacterRange();
- if (result10 !== null) {
- var result8 = result10;
- } else {
- var result9 = parse_classCharacter();
- if (result9 !== null) {
- var result8 = result9;
- } else {
- var result8 = null;;
- };
- }
- }
- if (result5 !== null) {
- if (input.substr(pos, 1) === "]") {
- var result6 = "]";
- pos += 1;
- } else {
- var result6 = null;
- if (reportMatchFailures) {
- matchFailed("\"]\"");
- }
- }
- if (result6 !== null) {
- var result7 = parse___();
- if (result7 !== null) {
- var result1 = [result3, result4, result5, result6, result7];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(inverted, parts) {
- var partsConverted = map(parts, function(part) { return part.data; });
- var rawText = "["
- + inverted
- + map(parts, function(part) { return part.rawText; }).join("")
- + "]";
-
- return {
- type: "class",
- inverted: inverted === "^",
- parts: partsConverted,
- // FIXME: Get the raw text from the input directly.
- rawText: rawText
- };
- })(result1[1], result1[2])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
- reportMatchFailures = savedReportMatchFailures;
- if (reportMatchFailures && result0 === null) {
- matchFailed("character class");
- }
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_classCharacterRange() {
- var cacheKey = 'classCharacterRange@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var result3 = parse_classCharacter();
- if (result3 !== null) {
- if (input.substr(pos, 1) === "-") {
- var result4 = "-";
- pos += 1;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed("\"-\"");
- }
- }
- if (result4 !== null) {
- var result5 = parse_classCharacter();
- if (result5 !== null) {
- var result1 = [result3, result4, result5];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(begin, end) {
- if (begin.data.charCodeAt(0) > end.data.charCodeAt(0)) {
- throw new this.SyntaxError(
- "Invalid character range: " + begin.rawText + "-" + end.rawText + "."
- );
- }
-
- return {
- data: [begin.data, end.data],
- // FIXME: Get the raw text from the input directly.
- rawText: begin.rawText + "-" + end.rawText
- }
- })(result1[0], result1[2])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_classCharacter() {
- var cacheKey = 'classCharacter@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var result1 = parse_bracketDelimitedCharacter();
- var result2 = result1 !== null
- ? (function(char_) {
- return {
- data: char_,
- // FIXME: Get the raw text from the input directly.
- rawText: quoteForRegexpClass(char_)
- };
- })(result1)
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_bracketDelimitedCharacter() {
- var cacheKey = 'bracketDelimitedCharacter@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var result6 = parse_simpleBracketDelimitedCharacter();
- if (result6 !== null) {
- var result0 = result6;
- } else {
- var result5 = parse_simpleEscapeSequence();
- if (result5 !== null) {
- var result0 = result5;
- } else {
- var result4 = parse_zeroEscapeSequence();
- if (result4 !== null) {
- var result0 = result4;
- } else {
- var result3 = parse_hexEscapeSequence();
- if (result3 !== null) {
- var result0 = result3;
- } else {
- var result2 = parse_unicodeEscapeSequence();
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result1 = parse_eolEscapeSequence();
- if (result1 !== null) {
- var result0 = result1;
- } else {
- var result0 = null;;
- };
- };
- };
- };
- };
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_simpleBracketDelimitedCharacter() {
- var cacheKey = 'simpleBracketDelimitedCharacter@' + pos;
- var cachedResult = cache[cacheKey];
- if (cachedResult) {
- pos = cachedResult.nextPos;
- return cachedResult.result;
- }
-
-
- var savedPos0 = pos;
- var savedPos1 = pos;
- var savedPos2 = pos;
- var savedReportMatchFailuresVar0 = reportMatchFailures;
- reportMatchFailures = false;
- if (input.substr(pos, 1) === "]") {
- var result8 = "]";
- pos += 1;
- } else {
- var result8 = null;
- if (reportMatchFailures) {
- matchFailed("\"]\"");
- }
- }
- if (result8 !== null) {
- var result5 = result8;
- } else {
- if (input.substr(pos, 1) === "\\") {
- var result7 = "\\";
- pos += 1;
- } else {
- var result7 = null;
- if (reportMatchFailures) {
- matchFailed("\"\\\\\"");
- }
- }
- if (result7 !== null) {
- var result5 = result7;
- } else {
- var result6 = parse_eolChar();
- if (result6 !== null) {
- var result5 = result6;
- } else {
- var result5 = null;;
- };
- };
- }
- reportMatchFailures = savedReportMatchFailuresVar0;
- if (result5 === null) {
- var result3 = '';
- } else {
- var result3 = null;
- pos = savedPos2;
- }
- if (result3 !== null) {
- if (input.length > pos) {
- var result4 = input.charAt(pos);
- pos++;
- } else {
- var result4 = null;
- if (reportMatchFailures) {
- matchFailed('any character');
- }
- }
- if (result4 !== null) {
- var result1 = [result3, result4];
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- } else {
- var result1 = null;
- pos = savedPos1;
- }
- var result2 = result1 !== null
- ? (function(char_) { return char_; })(result1[1])
- : null;
- if (result2 !== null) {
- var result0 = result2;
- } else {
- var result0 = null;
- pos = savedPos0;
- }
-
-
-
- cache[cacheKey] = {
- nextPos: pos,
- result: result0
- };
- return result0;
- }
-
- function parse_simpleEscapeSequence() {
- var cacheKey = 'simpleEscapeSequence@
<TRUNCATED>