astexplorer.app
Version:
https://astexplorer.net with ES Modules support and Hot Reloading
1 lines • 73.5 kB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{"./node_modules/lucene/lib/escaping.js":function(module,exports){eval("exports.escape = function escape(s) {\n return s.replace(/[\\+\\-\\!\\(\\)\\{\\}\\[\\]\\^\\\"\\?\\:\\\\\\&\\|\\'\\/\\s\\*\\~]/g, prefixCharWithBackslashes);\n};\n\nfunction prefixCharWithBackslashes(char) {\n return '\\\\' + char;\n}\n\nexports.unescape = function unescape(s) {\n return s.replace(/\\\\([\\+\\-\\!\\(\\)\\{\\}\\[\\]\\^\\\"\\?\\:\\\\\\&\\|\\'\\/\\s\\*\\~])/g, extractChar);\n};\n\nfunction extractChar(match, char) {\n return char;\n}\n\nexports.escapePhrase = function escapePhrase(s) {\n return s.replace(/\"/g, prefixCharWithBackslashes);\n};\n\nexports.unescapePhrase = function unescapePhrase(s) {\n return s.replace(/\\\\(\")/g, extractChar);\n};\n\n\n//# sourceURL=webpack:///./node_modules/lucene/lib/escaping.js?")},"./node_modules/lucene/lib/lucene.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar queryParser = __webpack_require__("./node_modules/lucene/lib/queryParser.js");\nvar escaping = __webpack_require__("./node_modules/lucene/lib/escaping.js");\n\nexports.parse = queryParser.parse.bind(queryParser);\nexports.toString = __webpack_require__("./node_modules/lucene/lib/toString.js");\n\nexports.term = {\n escape: escaping.escape,\n unescape: escaping.unescape\n};\n\nexports.phrase = {\n escape: escaping.escapePhrase,\n unescape: escaping.unescapePhrase\n};\n\n\n//# sourceURL=webpack:///./node_modules/lucene/lib/lucene.js?')},"./node_modules/lucene/lib/queryParser.js":function(module,exports,__webpack_require__){"use strict";eval('/*\n * Generated by PEG.js 0.10.0.\n *\n * http://pegjs.org/\n */\n\n\n\nfunction peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n}\n\nfunction peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = "SyntaxError";\n\n if (typeof Error.captureStackTrace === "function") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n}\n\npeg$subclass(peg$SyntaxError, Error);\n\npeg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return "\\"" + literalEscape(expectation.text) + "\\"";\n },\n\n "class": function(expectation) {\n var escapedParts = "",\n i;\n\n for (i = 0; i < expectation.parts.length; i++) {\n escapedParts += expectation.parts[i] instanceof Array\n ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1])\n : classEscape(expectation.parts[i]);\n }\n\n return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]";\n },\n\n any: function(expectation) {\n return "any character";\n },\n\n end: function(expectation) {\n return "end of input";\n },\n\n other: function(expectation) {\n return expectation.description;\n }\n };\n\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \'\\\\\\\\\')\n .replace(/"/g, \'\\\\"\')\n .replace(/\\0/g, \'\\\\0\')\n .replace(/\\t/g, \'\\\\t\')\n .replace(/\\n/g, \'\\\\n\')\n .replace(/\\r/g, \'\\\\r\')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return \'\\\\x0\' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return \'\\\\x\' + hex(ch); });\n }\n\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \'\\\\\\\\\')\n .replace(/\\]/g, \'\\\\]\')\n .replace(/\\^/g, \'\\\\^\')\n .replace(/-/g, \'\\\\-\')\n .replace(/\\0/g, \'\\\\0\')\n .replace(/\\t/g, \'\\\\t\')\n .replace(/\\n/g, \'\\\\n\')\n .replace(/\\r/g, \'\\\\r\')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return \'\\\\x0\' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return \'\\\\x\' + hex(ch); });\n }\n\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n\n function describeExpected(expected) {\n var descriptions = new Array(expected.length),\n i, j;\n\n for (i = 0; i < expected.length; i++) {\n descriptions[i] = describeExpectation(expected[i]);\n }\n\n descriptions.sort();\n\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n\n case 2:\n return descriptions[0] + " or " + descriptions[1];\n\n default:\n return descriptions.slice(0, -1).join(", ")\n + ", or "\n + descriptions[descriptions.length - 1];\n }\n }\n\n function describeFound(found) {\n return found ? "\\"" + literalEscape(found) + "\\"" : "end of input";\n }\n\n return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";\n};\n\nfunction peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n\n var peg$FAILED = {},\n\n peg$startRuleFunctions = { start: peg$parsestart },\n peg$startRuleFunction = peg$parsestart,\n\n peg$c0 = function(node) {\n return node[0];\n },\n peg$c1 = function() {\n return {};\n },\n peg$c2 = function(operator) {\n return {\n \'operator\': operator,\n };\n },\n peg$c3 = function(start, left, operator, right) {\n var node = {\n \'start\': start,\n \'left\': left,\n };\n\n var right =\n right.length == 0\n ? null\n : right[0][\'right\'] == null\n ? right[0][\'left\']\n : right[0];\n\n if (right != null) {\n node[\'operator\'] = operator == \'\' ? \'<implicit>\' : operator[0];\n node[\'right\'] = right;\n }\n\n return node;\n },\n peg$c4 = function(operator, right) {\n return right;\n },\n peg$c5 = function(left, operator, right) {\n var node = {\n \'left\':left\n };\n\n var right =\n right.length == 0\n ? null\n : right[0][\'right\'] == null\n ? right[0][\'left\']\n : right[0];\n\n if (right != null) {\n node[\'operator\'] = operator == \'\' ? \'<implicit>\' : operator[0];\n node[\'right\'] = right;\n }\n\n return node;\n },\n peg$c6 = function(field_exp) {\n return field_exp;\n },\n peg$c7 = "(",\n peg$c8 = peg$literalExpectation("(", false),\n peg$c9 = ")",\n peg$c10 = peg$literalExpectation(")", false),\n peg$c11 = function(node) {\n node[0][\'parenthesized\'] = true;\n return node[0];\n },\n peg$c12 = function(fieldname, range) {\n range[\'field\'] =\n fieldname == null || fieldname.label == \'\'\n ? "<implicit>"\n : fieldname.label;\n range[\'fieldLocation\'] =\n fieldname == null || fieldname.label == \'\'\n ? null\n : fieldname.location;\n\n return range;\n },\n peg$c13 = function(fieldname, node) {\n node[\'field\']= fieldname.label;\n node[\'fieldLocation\'] = fieldname.location;\n return node;\n },\n peg$c14 = function(fieldname, term) {\n var fieldexp = {\n \'field\':\n fieldname == null || fieldname.label == \'\'\n ? "<implicit>"\n : fieldname.label,\n \'fieldLocation\':\n fieldname == null || fieldname.label == \'\'\n ? null\n : fieldname.location,\n\n\n };\n\n for(var key in term)\n fieldexp[key] = term[key];\n\n return fieldexp;\n },\n peg$c15 = /^[:]/,\n peg$c16 = peg$classExpectation([":"], false, false),\n peg$c17 = function(fieldname) {\n return {\n label: fieldname.label,\n location: fieldname.location\n }\n\n },\n peg$c18 = function(op, term, proximity, boost) {\n var result = {\n \'term\': term,\n \'quoted\': true,\n \'regex\' : false,\n \'termLocation\': location()\n };\n\n if(\'\' != proximity)\n {\n result[\'proximity\'] = proximity;\n }\n if(\'\' != boost)\n {\n result[\'boost\'] = boost;\n }\n if(\'\' != op)\n {\n result[\'prefix\'] = op;\n }\n\n return result;\n },\n peg$c19 = function(op, term) {\n var result = {\n \'term\': term,\n \'quoted\': false,\n \'regex\': true,\n \'termLocation\': location()\n };\n\n return result;\n },\n peg$c20 = function(op, term, similarity, boost) {\n var result = {\n \'term\': term.label,\n \'quoted\': false,\n \'regex\': false,\n \'termLocation\': location()\n };\n if(\'\' != similarity)\n {\n result[\'similarity\'] = similarity;\n }\n if(\'\' != boost)\n {\n result[\'boost\'] = boost;\n }\n if(\'\' != op)\n {\n result[\'prefix\'] = op;\n }\n return result;\n },\n peg$c21 = "\\\\",\n peg$c22 = peg$literalExpectation("\\\\", false),\n peg$c23 = function(sequence) { return \'\\\\\' + sequence; },\n peg$c24 = ".",\n peg$c25 = peg$literalExpectation(".", false),\n peg$c26 = /^[^ \\t\\r\\n\\f{}()"\\/\\^~[\\]]/,\n peg$c27 = peg$classExpectation([" ", "\\t", "\\r", "\\n", "\\f", "{", "}", "(", ")", "\\"", "/", "^", "~", "[", "]"], true, false),\n peg$c28 = function(term) {\n return term.join(\'\');\n },\n peg$c29 = function(term) {\n return {\n label: term.join(\'\'),\n location: location(),\n };\n },\n peg$c30 = /^[^: \\t\\r\\n\\f{}()"\\/\\^~[\\]]/,\n peg$c31 = peg$classExpectation([":", " ", "\\t", "\\r", "\\n", "\\f", "{", "}", "(", ")", "\\"", "/", "^", "~", "[", "]"], true, false),\n peg$c32 = "\\"",\n peg$c33 = peg$literalExpectation("\\"", false),\n peg$c34 = function(chars) { return chars.join(\'\'); },\n peg$c35 = "/",\n peg$c36 = peg$literalExpectation("/", false),\n peg$c37 = function(chars) { return chars.join(\'\') },\n peg$c38 = peg$anyExpectation(),\n peg$c39 = function(char) { return char; },\n peg$c40 = "+",\n peg$c41 = peg$literalExpectation("+", false),\n peg$c42 = "-",\n peg$c43 = peg$literalExpectation("-", false),\n peg$c44 = "!",\n peg$c45 = peg$literalExpectation("!", false),\n peg$c46 = "{",\n peg$c47 = peg$literalExpectation("{", false),\n peg$c48 = "}",\n peg$c49 = peg$literalExpectation("}", false),\n peg$c50 = "[",\n peg$c51 = peg$literalExpectation("[", false),\n peg$c52 = "]",\n peg$c53 = peg$literalExpectation("]", false),\n peg$c54 = "^",\n peg$c55 = peg$literalExpectation("^", false),\n peg$c56 = "?",\n peg$c57 = peg$literalExpectation("?", false),\n peg$c58 = ":",\n peg$c59 = peg$literalExpectation(":", false),\n peg$c60 = "&",\n peg$c61 = peg$literalExpectation("&", false),\n peg$c62 = "|",\n peg$c63 = peg$literalExpectation("|", false),\n peg$c64 = "\'",\n peg$c65 = peg$literalExpectation("\'", false),\n peg$c66 = "~",\n peg$c67 = peg$literalExpectation("~", false),\n peg$c68 = "*",\n peg$c69 = peg$literalExpectation("*", false),\n peg$c70 = " ",\n peg$c71 = peg$literalExpectation(" ", false),\n peg$c72 = function(proximity) {\n return proximity;\n },\n peg$c73 = function(boost) {\n return boost;\n },\n peg$c74 = function(fuzziness) {\n return fuzziness == \'\' || fuzziness == null ? 0.5 : fuzziness;\n },\n peg$c75 = "0.",\n peg$c76 = peg$literalExpectation("0.", false),\n peg$c77 = /^[0-9]/,\n peg$c78 = peg$classExpectation([["0", "9"]], false, false),\n peg$c79 = function(val) {\n return parseFloat("0." + val.join(\'\'));\n },\n peg$c80 = function(val) {\n return parseInt(val.join(\'\'));\n },\n peg$c81 = "TO",\n peg$c82 = peg$literalExpectation("TO", false),\n peg$c83 = function(term_min, term_max) {\n return {\n \'term_min\': term_min,\n \'term_max\': term_max,\n \'inclusive\': \'both\'\n };\n },\n peg$c84 = function(term_min, term_max) {\n return {\n \'term_min\': term_min,\n \'term_max\': term_max,\n \'inclusive\': \'none\'\n };\n },\n peg$c85 = function(term_min, term_max) {\n return {\n \'term_min\': term_min,\n \'term_max\': term_max,\n \'inclusive\': \'left\'\n };\n },\n peg$c86 = function(term_min, term_max) {\n return {\n \'term_min\': term_min,\n \'term_max\': term_max,\n \'inclusive\': \'right\'\n };\n },\n peg$c87 = function(operator) {\n return operator;\n },\n peg$c88 = "OR NOT",\n peg$c89 = peg$literalExpectation("OR NOT", false),\n peg$c90 = "AND NOT",\n peg$c91 = peg$literalExpectation("AND NOT", false),\n peg$c92 = "OR",\n peg$c93 = peg$literalExpectation("OR", false),\n peg$c94 = "AND",\n peg$c95 = peg$literalExpectation("AND", false),\n peg$c96 = "NOT",\n peg$c97 = peg$literalExpectation("NOT", false),\n peg$c98 = "||",\n peg$c99 = peg$literalExpectation("||", false),\n peg$c100 = "&&",\n peg$c101 = peg$literalExpectation("&&", false),\n peg$c102 = peg$otherExpectation("whitespace"),\n peg$c103 = /^[ \\t\\r\\n\\f]/,\n peg$c104 = peg$classExpectation([" ", "\\t", "\\r", "\\n", "\\f"], false, false),\n\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{ line: 1, column: 1 }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if ("startRule" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error("Can\'t start parsing from rule \\"" + options.startRule + "\\".");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location\n );\n }\n\n function error(message, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildSimpleError(message, location);\n }\n\n function peg$literalExpectation(text, ignoreCase) {\n return { type: "literal", text: text, ignoreCase: ignoreCase };\n }\n\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n\n function peg$anyExpectation() {\n return { type: "any" };\n }\n\n function peg$endExpectation() {\n return { type: "end" };\n }\n\n function peg$otherExpectation(description) {\n return { type: "other", description: description };\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos], p;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n } else {\n details.column++;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildSimpleError(message, location) {\n return new peg$SyntaxError(message, null, null, location);\n }\n\n function peg$buildStructuredError(expected, found, location) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parsestart() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parse_();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parse_();\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsenode();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsenode();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parse_();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parse_();\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseEOF();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1();\n }\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsenode() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n s1 = peg$parseoperator_exp();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEOF();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c2(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseoperator_exp();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsegroup_exp();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoperator_exp();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoperator_exp();\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsenode();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsenode();\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c3(s1, s2, s3, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseoperator_exp();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenode();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c4(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsegroup_exp();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseoperator_exp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseoperator_exp();\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenode();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenode();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c5(s1, s2, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsegroup_exp() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n s1 = peg$parsefield_exp();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parse_();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parse_();\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c6(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseparen_exp();\n }\n\n return s0;\n }\n\n function peg$parseparen_exp() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parse_();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parse_();\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenode();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenode();\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s4 = peg$c9;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parse_();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parse_();\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsefield_exp() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = peg$parsefieldname();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parserange_operator_exp();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c12(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsefieldname();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseparen_exp();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c13(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsefieldname();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseterm();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c14(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsefieldname() {\n var s0, s1, s2, s3, s4;\n\n s0 = peg$currPos;\n s1 = peg$parseunquoted_term();\n if (s1 !== peg$FAILED) {\n if (peg$c15.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parse_();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parse_();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c17(s1);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseterm() {\n var s0, s1, s2, s3, s4, s5, s6;\n\n s0 = peg$currPos;\n s1 = peg$parseprefix_operator_exp();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsequoted_term();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseproximity_modifier();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseboost_modifier();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parse_();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parse_();\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s1, s2, s3, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseprefix_operator_exp();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseregex_term();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parse_();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parse_();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c19(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseprefix_operator_exp();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseunquoted_term();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsefuzzy_modifier();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseboost_modifier();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parse_();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parse_();\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s1, s2, s3, s4);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n\n return s0;\n }\n\n function peg$parserterm_char() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEscapeSequence();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c23(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s0 = peg$c24;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n if (s0 === peg$FAILED) {\n if (peg$c26.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c27); }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parseranged_term() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parserterm_char();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parserterm_char();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c28(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseunquoted_term() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseterm_char();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseterm_char();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c29(s1);\n }\n s0 = s1;\n\n return s0;\n }\n\n function peg$parseterm_char() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEscapeSequence();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c23(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s0 = peg$c24;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n if (s0 === peg$FAILED) {\n if (peg$c30.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsequoted_term() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 34) {\n s1 = peg$c32;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseDoubleStringCharacter();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseDoubleStringCharacter();\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 34) {\n s3 = peg$c32;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c34(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseregex_term() {\n var s0, s1, s2, s3;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c35;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseRegexCharacter();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseRegexCharacter();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s3 = peg$c35;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c37(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseDoubleStringCharacter() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 34) {\n s2 = peg$c32;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n if (s2 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 92) {\n s2 = peg$c21;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n }\n peg$silentFails--;\n if (s2 === peg$FAILED) {\n s1 = void 0;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEscapeSequence();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c23(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseRegexCharacter() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 47) {\n s2 = peg$c35;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s2 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 92) {\n s2 = peg$c21;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n }\n peg$silentFails--;\n if (s2 === peg$FAILED) {\n s1 = void 0;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c38); }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c21;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEscapeSequence();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c23(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n\n return s0;\n }\n\n function peg$parseEscapeSequence() {\n var s0;\n\n if (input.charCodeAt(peg$currPos) === 43) {\n s0 = peg$c40;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s0 = peg$c42;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 33) {\n s0 = peg$c44;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s0 = peg$c7;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c8); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s0 = peg$c9;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c10); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s0 = peg$c46;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s0 = peg$c48;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c49); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 91) {\n s0 = peg$c50;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c51); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s0 = peg$c52;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c53); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 94) {\n s0 = peg$c54;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c55); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 34) {\n s0 = peg$c32;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 63) {\n s0 = peg$c56;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c57); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s0 = peg$c58;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c59); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 92) {\n s0 = peg$c21;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c22); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 38) {\n s0 = peg$c60;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c61); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 124) {\n s0 = peg$c62;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c64;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c65); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s0 = peg$c35;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c36); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 126) {\n s0 = peg$c66;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c67); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 42) {\n s0 = peg$c68;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 32) {\n s0 = peg$c70;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c71); }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parseproximity_modifier() {\n var s0, s1, s2;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 126) {\n s1 = peg$c66;\n peg$currPos++;\