{"version":3,"file":"index.cjs","sources":["../libs/decorate-array-for-pegjs.ts","../libs/split-strings.ts","../grammars/latex.pegjs","../grammars/align-environment.pegjs","../grammars/xparse-argspec.pegjs","../grammars/pgfkeys.pegjs","../grammars/macro-substitutions.pegjs","../grammars/ligatures.pegjs","../grammars/xcolor-expressions.pegjs","../grammars/tabular-spec.pegjs","../grammars/systeme-environment.pegjs","../grammars/tex-glue.pegjs","../grammars/tikz.pegjs","../libs/pegjs-parsers.ts"],"sourcesContent":["type StringlikeArray = any[] & string;\n\n/**\n * Pegjs operates on strings. However, strings and arrays are very similar!\n * This function adds `charAt`, `charCodeAt`, and `substring` methods to\n * `array` so that `array` can then be fed to a Pegjs generated parser.\n *\n * @param {[object]} array\n * @returns {[object]}\n */\nexport function decorateArrayForPegjs(array: any[]): StringlikeArray {\n (array as any).charAt = function (i: number) {\n return this[i];\n };\n // We don't have a hope of imitating `charCodeAt`, so\n // make it something that won't interfere\n (array as any).charCodeAt = () => 0;\n (array as any).substring = function (i: number, j: number) {\n return this.slice(i, j);\n };\n // This function is called when reporting an error,\n // so we convert back to a string.\n (array as any).replace = function (a: string, b: string) {\n const ret = JSON.stringify(this);\n return ret.replace(a, b);\n };\n return array as StringlikeArray;\n}\n","import * as Ast from \"@unified-latex/unified-latex-types\";\nimport { match } from \"@unified-latex/unified-latex-util-match\";\n\n/**\n * Splits all multi-character strings into strings that are all single characters.\n */\nexport function splitStringsIntoSingleChars(nodes: Ast.Node[]): Ast.Node[] {\n return nodes.flatMap((node) =>\n match.anyString(node)\n ? (Array.from(node.content).map((c) => ({\n type: \"string\",\n content: c,\n })) as Ast.Node[])\n : node\n );\n}\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { document: peg$parsedocument, math: peg$parsemath };\n var peg$startRuleFunction = peg$parsedocument;\n var peg$c0 = \"%\";\n var peg$c1 = \".\";\n var peg$c2 = \"verb*\";\n var peg$c3 = \"verb\";\n var peg$c4 = \"[\";\n var peg$c5 = \"]\";\n var peg$c6 = \"lstinline\";\n var peg$c7 = \"mintinline\";\n var peg$c8 = \"mint\";\n var peg$c9 = \"minted\";\n var peg$c10 = \"verbatim*\";\n var peg$c11 = \"verbatim\";\n var peg$c12 = \"filecontents*\";\n var peg$c13 = \"filecontents\";\n var peg$c14 = \"comment\";\n var peg$c15 = \"lstlisting\";\n var peg$c16 = \"(\";\n var peg$c17 = \")\";\n var peg$c18 = \"begin\";\n var peg$c19 = \"end\";\n var peg$c20 = \"equation*\";\n var peg$c21 = \"equation\";\n var peg$c22 = \"align*\";\n var peg$c23 = \"align\";\n var peg$c24 = \"alignat*\";\n var peg$c25 = \"alignat\";\n var peg$c26 = \"gather*\";\n var peg$c27 = \"gather\";\n var peg$c28 = \"multline*\";\n var peg$c29 = \"multline\";\n var peg$c30 = \"flalign*\";\n var peg$c31 = \"flalign\";\n var peg$c32 = \"split\";\n var peg$c33 = \"math\";\n var peg$c34 = \"displaymath\";\n var peg$c35 = \"\\\\\";\n var peg$c36 = \"{\";\n var peg$c37 = \"}\";\n var peg$c38 = \"$\";\n var peg$c39 = \"&\";\n var peg$c40 = \"\\r\";\n var peg$c41 = \"\\n\";\n var peg$c42 = \"\\r\\n\";\n var peg$c43 = \"#\";\n var peg$c44 = \"^\";\n var peg$c45 = \"_\";\n var peg$c46 = \"\\0\";\n var peg$r0 = /^[^ \\t\\n\\r]/;\n var peg$r1 = /^[ \\t]/;\n var peg$r2 = /^[a-zA-Z]/;\n var peg$r3 = /^[0-9]/;\n var peg$r4 = /^[.,;:\\-*\\/()!?=+<>[\\]`'\"~]/;\n var peg$e0 = peg$otherExpectation(\"document\");\n var peg$e1 = peg$otherExpectation(\"math\");\n var peg$e2 = peg$otherExpectation(\"token\");\n var peg$e3 = peg$anyExpectation();\n var peg$e4 = peg$otherExpectation(\"parbreak\");\n var peg$e5 = peg$otherExpectation(\"math token\");\n var peg$e6 = peg$otherExpectation(\"nonchar token\");\n var peg$e7 = peg$literalExpectation(\"%\", false);\n var peg$e8 = peg$otherExpectation(\"whitespace\");\n var peg$e9 = peg$otherExpectation(\"number\");\n var peg$e10 = peg$literalExpectation(\".\", false);\n var peg$e11 = peg$otherExpectation(\"special macro\");\n var peg$e12 = peg$literalExpectation(\"verb*\", false);\n var peg$e13 = peg$literalExpectation(\"verb\", false);\n var peg$e14 = peg$literalExpectation(\"[\", false);\n var peg$e15 = peg$literalExpectation(\"]\", false);\n var peg$e16 = peg$classExpectation([\" \", \"\t\", \"\\n\", \"\\r\"], true, false);\n var peg$e17 = peg$otherExpectation(\"verbatim listings\");\n var peg$e18 = peg$literalExpectation(\"lstinline\", false);\n var peg$e19 = peg$otherExpectation(\"verbatim minted\");\n var peg$e20 = peg$literalExpectation(\"mintinline\", false);\n var peg$e21 = peg$literalExpectation(\"mint\", false);\n var peg$e22 = peg$otherExpectation(\"verbatim minted environment\");\n var peg$e23 = peg$literalExpectation(\"minted\", false);\n var peg$e24 = peg$otherExpectation(\"verbatim environment\");\n var peg$e25 = peg$literalExpectation(\"verbatim*\", false);\n var peg$e26 = peg$literalExpectation(\"verbatim\", false);\n var peg$e27 = peg$literalExpectation(\"filecontents*\", false);\n var peg$e28 = peg$literalExpectation(\"filecontents\", false);\n var peg$e29 = peg$literalExpectation(\"comment\", false);\n var peg$e30 = peg$literalExpectation(\"lstlisting\", false);\n var peg$e31 = peg$otherExpectation(\"macro\");\n var peg$e32 = peg$otherExpectation(\"group\");\n var peg$e33 = peg$otherExpectation(\"environment\");\n var peg$e34 = peg$otherExpectation(\"math environment\");\n var peg$e35 = peg$otherExpectation(\"math group\");\n var peg$e36 = peg$literalExpectation(\"(\", false);\n var peg$e37 = peg$literalExpectation(\")\", false);\n var peg$e38 = peg$literalExpectation(\"begin\", false);\n var peg$e39 = peg$literalExpectation(\"end\", false);\n var peg$e40 = peg$literalExpectation(\"equation*\", false);\n var peg$e41 = peg$literalExpectation(\"equation\", false);\n var peg$e42 = peg$literalExpectation(\"align*\", false);\n var peg$e43 = peg$literalExpectation(\"align\", false);\n var peg$e44 = peg$literalExpectation(\"alignat*\", false);\n var peg$e45 = peg$literalExpectation(\"alignat\", false);\n var peg$e46 = peg$literalExpectation(\"gather*\", false);\n var peg$e47 = peg$literalExpectation(\"gather\", false);\n var peg$e48 = peg$literalExpectation(\"multline*\", false);\n var peg$e49 = peg$literalExpectation(\"multline\", false);\n var peg$e50 = peg$literalExpectation(\"flalign*\", false);\n var peg$e51 = peg$literalExpectation(\"flalign\", false);\n var peg$e52 = peg$literalExpectation(\"split\", false);\n var peg$e53 = peg$literalExpectation(\"math\", false);\n var peg$e54 = peg$literalExpectation(\"displaymath\", false);\n var peg$e55 = peg$otherExpectation(\"escape\");\n var peg$e56 = peg$literalExpectation(\"\\\\\", false);\n var peg$e57 = peg$literalExpectation(\"{\", false);\n var peg$e58 = peg$literalExpectation(\"}\", false);\n var peg$e59 = peg$literalExpectation(\"$\", false);\n var peg$e60 = peg$literalExpectation(\"&\", false);\n var peg$e61 = peg$otherExpectation(\"newline\");\n var peg$e62 = peg$literalExpectation(\"\\r\", false);\n var peg$e63 = peg$literalExpectation(\"\\n\", false);\n var peg$e64 = peg$literalExpectation(\"\\r\\n\", false);\n var peg$e65 = peg$literalExpectation(\"#\", false);\n var peg$e66 = peg$literalExpectation(\"^\", false);\n var peg$e67 = peg$literalExpectation(\"_\", false);\n var peg$e68 = peg$literalExpectation(\"\\0\", false);\n var peg$e69 = peg$classExpectation([\" \", \"\t\"], false, false);\n var peg$e70 = peg$otherExpectation(\"letter\");\n var peg$e71 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$e72 = peg$otherExpectation(\"digit\");\n var peg$e73 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$e74 = peg$otherExpectation(\"punctuation\");\n var peg$e75 = peg$classExpectation([\".\", \",\", \";\", \":\", \"-\", \"*\", \"/\", \"(\", \")\", \"!\", \"?\", \"=\", \"+\", \"<\", \">\", \"[\", \"]\", \"`\", \"'\", '\"', \"~\"], false, false);\n var peg$e76 = peg$otherExpectation(\"full comment\");\n var peg$e77 = peg$otherExpectation(\"comment\");\n var peg$f0 = function(content) {\n return createNode(\"root\", { content: content.flatMap((x) => x) });\n };\n var peg$f1 = function(t) {\n return t;\n };\n var peg$f2 = function(eq) {\n return createNode(\"inlinemath\", { content: eq.flatMap((x) => x) });\n };\n var peg$f3 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f4 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f5 = function() {\n return createNode(\"parbreak\");\n };\n var peg$f6 = function(x) {\n return x;\n };\n var peg$f7 = function(x) {\n return x;\n };\n var peg$f8 = function() {\n return createNode(\"macro\", { content: \"^\", escapeToken: \"\" });\n };\n var peg$f9 = function() {\n return createNode(\"macro\", { content: \"_\", escapeToken: \"\" });\n };\n var peg$f10 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f11 = function() {\n return createNode(\"whitespace\");\n };\n var peg$f12 = function(a, b) {\n return a.join(\"\") + \".\" + b.join(\"\");\n };\n var peg$f13 = function(b) {\n return \".\" + b.join(\"\");\n };\n var peg$f14 = function(a) {\n return a.join(\"\") + \".\";\n };\n var peg$f15 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f16 = function(env, e, end) {\n return end == e;\n };\n var peg$f17 = function(env, e, x) {\n return x;\n };\n var peg$f18 = function(env, e, x, end) {\n return end == e;\n };\n var peg$f19 = function(env, e, x) {\n return createNode(\"verb\", {\n env,\n escape: e,\n content: x.join(\"\")\n });\n };\n var peg$f20 = function(x) {\n return x;\n };\n var peg$f21 = function(x) {\n return createNode(\"displaymath\", { content: x.flatMap((x2) => x2) });\n };\n var peg$f22 = function(x) {\n return x;\n };\n var peg$f23 = function(x) {\n return createNode(\"inlinemath\", { content: x.flatMap((x2) => x2) });\n };\n var peg$f24 = function(x) {\n return x;\n };\n var peg$f25 = function(x) {\n return createNode(\"displaymath\", { content: x.flatMap((x2) => x2) });\n };\n var peg$f26 = function(end) {\n return end.type === \"string\" && end.content === \"]\";\n };\n var peg$f27 = function(x) {\n return x;\n };\n var peg$f28 = function(o) {\n return [\n createNode(\"string\", { content: \"[\" }),\n ...o,\n createNode(\"string\", { content: \"]\" })\n ];\n };\n var peg$f29 = function(x) {\n return x;\n };\n var peg$f30 = function(v) {\n return createNode(\"group\", {\n content: createNode(\"string\", { content: v.join(\"\") })\n });\n };\n var peg$f31 = function(d, end) {\n return end == d;\n };\n var peg$f32 = function(d, x) {\n return x;\n };\n var peg$f33 = function(d, v, end) {\n return end == d;\n };\n var peg$f34 = function(d, v) {\n return [\n createNode(\"string\", { content: d }),\n createNode(\"string\", { content: v.join(\"\") }),\n createNode(\"string\", { content: d })\n ];\n };\n var peg$f35 = function(macro, option, verbatim) {\n return [\n createNode(\"macro\", { content: macro }),\n ...option || [],\n ...[].concat(verbatim)\n ];\n };\n var peg$f36 = function(macro, option, language, verbatim) {\n return [\n createNode(\"macro\", { content: macro }),\n ...option || [],\n language,\n ...[].concat(verbatim)\n ];\n };\n var peg$f37 = function(env, option, language, end_env) {\n return compare_env({ content: [env] }, end_env);\n };\n var peg$f38 = function(env, option, language, body) {\n const content = [\n ...option || [],\n language,\n { type: \"string\", content: body }\n ];\n return createNode(\"environment\", {\n env,\n content\n });\n };\n var peg$f39 = function(env, end_env) {\n return compare_env({ content: [env] }, end_env);\n };\n var peg$f40 = function(env, x) {\n return x;\n };\n var peg$f41 = function(env, body) {\n return createNode(\"verbatim\", {\n env,\n content: body\n });\n };\n var peg$f42 = function(n) {\n return n.join(\"\");\n };\n var peg$f43 = function(n) {\n return n;\n };\n var peg$f44 = function(m) {\n return createNode(\"macro\", { content: m });\n };\n var peg$f45 = function(c) {\n return c;\n };\n var peg$f46 = function(x) {\n return createNode(\"group\", { content: x.flatMap((x2) => x2) });\n };\n var peg$f47 = function(g) {\n return text().slice(1, -1);\n };\n var peg$f48 = function(env, env_comment, end_env) {\n return compare_env(env, end_env);\n };\n var peg$f49 = function(env, env_comment, x) {\n return x;\n };\n var peg$f50 = function(env, env_comment, body) {\n body = body.flatMap((x) => x);\n return createNode(\"environment\", {\n env,\n content: env_comment ? [env_comment, ...body] : body\n });\n };\n var peg$f51 = function(env, env_comment, end_env) {\n return compare_env({ content: [env] }, end_env);\n };\n var peg$f52 = function(env, env_comment, x) {\n return x;\n };\n var peg$f53 = function(env, env_comment, body) {\n body = body.flatMap((x) => x);\n return createNode(\"mathenv\", {\n env,\n content: env_comment ? [env_comment, ...body] : body\n });\n };\n var peg$f54 = function(c) {\n return c;\n };\n var peg$f55 = function(x) {\n return createNode(\"group\", { content: x.flatMap((x2) => x2) });\n };\n var peg$f56 = function(e) {\n return createNode(\"string\", { content: e });\n };\n var peg$f57 = function() {\n return createNode(\"string\", { content: \"\\\\\" });\n };\n var peg$f58 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f59 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f60 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f61 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f62 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f63 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f64 = function(s) {\n return createNode(\"string\", { content: s });\n };\n var peg$f65 = function() {\n return \" \";\n };\n var peg$f66 = function(p) {\n return createNode(\"string\", { content: p });\n };\n var peg$f67 = function(leading_sp, comment) {\n return createNode(\"comment\", {\n ...comment,\n sameline: false,\n leadingWhitespace: leading_sp.length > 0\n });\n };\n var peg$f68 = function(spaces, x) {\n return createNode(\"comment\", {\n ...x,\n sameline: true,\n leadingWhitespace: spaces.length > 0\n });\n };\n var peg$f69 = function(c) {\n return c;\n };\n var peg$f70 = function(c) {\n return { content: c.join(\"\"), suffixParbreak: true };\n };\n var peg$f71 = function(c) {\n return c;\n };\n var peg$f72 = function(c) {\n return { content: c.join(\"\") };\n };\n var peg$f73 = function() {\n var loc = location();\n return loc.start.column === 1;\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$resultsCache = {};\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsedocument() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 0;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsetoken();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsetoken();\n }\n peg$savedPos = s0;\n s1 = peg$f0(s1);\n s0 = s1;\n peg$silentFails--;\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsemath() {\n var s0, s1;\n var key = peg$currPos * 52 + 1;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = [];\n s1 = peg$parsemath_token();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemath_token();\n }\n peg$silentFails--;\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsetoken() {\n var s0, s1, s2, s3, s4, s5;\n var key = peg$currPos * 52 + 2;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$parsespecial_macro();\n if (s0 === peg$FAILED) {\n s0 = peg$parsemacro();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefull_comment();\n if (s0 === peg$FAILED) {\n s0 = peg$parsegroup();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsemath_shift();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsemath_shift();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_token();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f1(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsemath_shift();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_token();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f1(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsemath_shift();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f2(s2);\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$parsealignment_tab();\n if (s0 === peg$FAILED) {\n s0 = peg$parseparbreak();\n if (s0 === peg$FAILED) {\n s0 = peg$parsemacro_parameter();\n if (s0 === peg$FAILED) {\n s0 = peg$parseignore();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenumber();\n if (s0 === peg$FAILED) {\n s0 = peg$parsewhitespace();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepunctuation();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsenonchar_token();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsenonchar_token();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f3(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$parsebegin_group();\n if (s0 === peg$FAILED) {\n s0 = peg$parseend_group();\n if (s0 === peg$FAILED) {\n s0 = peg$parsemath_shift();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f4(s1);\n }\n s0 = s1;\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseparbreak() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 52 + 3;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsesp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsesp();\n }\n s3 = peg$parsenl();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$parsesp();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsesp();\n }\n s7 = peg$parsenl();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$parsesp();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsesp();\n }\n s7 = peg$parsenl();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n }\n } else {\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parsesp();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsesp();\n }\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$parsecomment_start();\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s2 = [s2, s3, s4, s5, s6];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsesp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsesp();\n }\n s3 = peg$parsenl();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$parsesp();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsesp();\n }\n s7 = peg$parsenl();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$parsesp();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsesp();\n }\n s7 = peg$parsenl();\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n }\n } else {\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s2 = [s2, s3, s4];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f5();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsemath_token() {\n var s0, s1, s2, s3, s4;\n var key = peg$currPos * 52 + 4;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$parsespecial_macro();\n if (s0 === peg$FAILED) {\n s0 = peg$parsemacro();\n if (s0 === peg$FAILED) {\n s0 = peg$parsefull_comment();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$parsegroup();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsewhitespace();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsewhitespace();\n }\n peg$savedPos = s0;\n s0 = peg$f6(s2);\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$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$parsealignment_tab();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsewhitespace();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsewhitespace();\n }\n peg$savedPos = s0;\n s0 = peg$f7(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parsemacro_parameter();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$parsesuperscript();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsewhitespace();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsewhitespace();\n }\n peg$savedPos = s0;\n s0 = peg$f8();\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$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$parsesubscript();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsewhitespace();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsewhitespace();\n }\n peg$savedPos = s0;\n s0 = peg$f9();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseignore();\n if (s0 === peg$FAILED) {\n s0 = peg$parsewhitespace();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f10(s1);\n }\n s0 = s1;\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsenonchar_token() {\n var s0, s1;\n var key = peg$currPos * 52 + 5;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$parseescape();\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 37) {\n s0 = peg$c0;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e7);\n }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parsebegin_group();\n if (s0 === peg$FAILED) {\n s0 = peg$parseend_group();\n if (s0 === peg$FAILED) {\n s0 = peg$parsemath_shift();\n if (s0 === peg$FAILED) {\n s0 = peg$parsealignment_tab();\n if (s0 === peg$FAILED) {\n s0 = peg$parsenl();\n if (s0 === peg$FAILED) {\n s0 = peg$parsemacro_parameter();\n if (s0 === peg$FAILED) {\n s0 = peg$parseignore();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesp();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepunctuation();\n if (s0 === peg$FAILED) {\n s0 = peg$parseEOF();\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e6);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsewhitespace() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 52 + 6;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parsenl();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsesp();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsesp();\n }\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsesp();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsesp();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenl();\n if (s3 !== peg$FAILED) {\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsecomment_start();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parsesp();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsesp();\n }\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$parsenl();\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s2 = [s2, s3, s4, s5, s6];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = [];\n s2 = peg$parsesp();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsesp();\n }\n } else {\n s1 = peg$FAILED;\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f11();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e8);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n var key = peg$currPos * 52 + 7;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsenum();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsenum();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c1;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e10);\n }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsenum();\n if (s5 !== peg$FAILED) {\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsenum();\n }\n } else {\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s1;\n s1 = peg$f12(s2, s4);\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s2 = peg$c1;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e10);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenum();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenum();\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s1;\n s1 = peg$f13(s3);\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsenum();\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsenum();\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c1;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e10);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s1;\n s1 = peg$f14(s2);\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f15(s1);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e9);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsespecial_macro() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n var key = peg$currPos * 52 + 8;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 5) === peg$c2) {\n s2 = peg$c2;\n peg$currPos += 5;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e12);\n }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c3) {\n s2 = peg$c3;\n peg$currPos += 4;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e13);\n }\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$currPos;\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$currPos;\n if (input.length > peg$currPos) {\n s8 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s9 = peg$f16(s2, s3, s8);\n if (s9) {\n s9 = void 0;\n } else {\n s9 = peg$FAILED;\n }\n if (s9 !== peg$FAILED) {\n s8 = [s8, s9];\n s7 = s8;\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s7 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s5;\n s5 = peg$f17(s2, s3, s7);\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$currPos;\n if (input.length > peg$currPos) {\n s8 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s9 = peg$f16(s2, s3, s8);\n if (s9) {\n s9 = void 0;\n } else {\n s9 = peg$FAILED;\n }\n if (s9 !== peg$FAILED) {\n s8 = [s8, s9];\n s7 = s8;\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s7 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s5;\n s5 = peg$f17(s2, s3, s7);\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n }\n s5 = peg$currPos;\n if (input.length > peg$currPos) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s6 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s7 = peg$f18(s2, s3, s4, s6);\n if (s7) {\n s7 = void 0;\n } else {\n s7 = peg$FAILED;\n }\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f19(s2, s3, s4);\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$parseverbatim_listings();\n if (s0 === peg$FAILED) {\n s0 = peg$parseverbatim_minted();\n if (s0 === peg$FAILED) {\n s0 = peg$parseverbatim_minted_environment();\n if (s0 === peg$FAILED) {\n s0 = peg$parseverbatim_environment();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsebegin_display_math();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_display_math();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_token();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f20(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_display_math();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_token();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f20(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$parseend_display_math();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f21(s2);\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$parsebegin_inline_math();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_inline_math();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_token();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f22(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_inline_math();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_token();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f22(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$parseend_inline_math();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f23(s2);\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$parsemath_shift();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemath_shift();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n s5 = peg$currPos;\n peg$silentFails++;\n s6 = peg$currPos;\n s7 = peg$parsemath_shift();\n if (s7 !== peg$FAILED) {\n s8 = peg$parsemath_shift();\n if (s8 !== peg$FAILED) {\n s7 = [s7, s8];\n s6 = s7;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n peg$silentFails--;\n if (s6 === peg$FAILED) {\n s5 = void 0;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemath_token();\n if (s6 !== peg$FAILED) {\n peg$savedPos = s4;\n s4 = peg$f24(s6);\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n s5 = peg$currPos;\n peg$silentFails++;\n s6 = peg$currPos;\n s7 = peg$parsemath_shift();\n if (s7 !== peg$FAILED) {\n s8 = peg$parsemath_shift();\n if (s8 !== peg$FAILED) {\n s7 = [s7, s8];\n s6 = s7;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n peg$silentFails--;\n if (s6 === peg$FAILED) {\n s5 = void 0;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemath_token();\n if (s6 !== peg$FAILED) {\n peg$savedPos = s4;\n s4 = peg$f24(s6);\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n s4 = peg$parsemath_shift();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_shift();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f25(s3);\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$parsemath_environment();\n if (s0 === peg$FAILED) {\n s0 = peg$parseenvironment();\n }\n }\n }\n }\n }\n }\n }\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e11);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsesquare_bracket_argument() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 52 + 9;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 91) {\n s1 = peg$c4;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e14);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$currPos;\n s6 = peg$parsetoken();\n if (s6 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s7 = peg$f26(s6);\n if (s7) {\n s7 = void 0;\n } else {\n s7 = peg$FAILED;\n }\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsetoken();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f27(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$currPos;\n s6 = peg$parsetoken();\n if (s6 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s7 = peg$f26(s6);\n if (s7) {\n s7 = void 0;\n } else {\n s7 = peg$FAILED;\n }\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsetoken();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f27(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (input.charCodeAt(peg$currPos) === 93) {\n s3 = peg$c5;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e15);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f28(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseverbatim_group() {\n var s0, s1, s2, s3, s4, s5;\n var key = peg$currPos * 52 + 10;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parsebegin_group();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_group();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f29(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_group();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f29(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$parseend_group();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f30(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseverbatim_delimited_by_char() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 52 + 11;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (peg$r0.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e16);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$currPos;\n if (input.length > peg$currPos) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s6 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s7 = peg$f31(s1, s6);\n if (s7) {\n s7 = void 0;\n } else {\n s7 = peg$FAILED;\n }\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f32(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$currPos;\n if (input.length > peg$currPos) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s6 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s7 = peg$f31(s1, s6);\n if (s7) {\n s7 = void 0;\n } else {\n s7 = peg$FAILED;\n }\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f32(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$currPos;\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$f33(s1, s2, s4);\n if (s5) {\n s5 = void 0;\n } else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f34(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseverbatim_listings() {\n var s0, s1, s2, s3, s4;\n var key = peg$currPos * 52 + 12;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 9) === peg$c6) {\n s2 = peg$c6;\n peg$currPos += 9;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e18);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsesquare_bracket_argument();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n s4 = peg$parseverbatim_group();\n if (s4 === peg$FAILED) {\n s4 = peg$parseverbatim_delimited_by_char();\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f35(s2, s3, s4);\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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e17);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseverbatim_minted() {\n var s0, s1, s2, s3, s4, s5;\n var key = peg$currPos * 52 + 13;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 10) === peg$c7) {\n s2 = peg$c7;\n peg$currPos += 10;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e20);\n }\n }\n if (s2 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c8) {\n s2 = peg$c8;\n peg$currPos += 4;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e21);\n }\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsesquare_bracket_argument();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n s4 = peg$parsegroup();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseverbatim_group();\n if (s5 === peg$FAILED) {\n s5 = peg$parseverbatim_delimited_by_char();\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f36(s2, s3, s4, s5);\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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseverbatim_minted_environment() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;\n var key = peg$currPos * 52 + 14;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsebegin_env();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsebegin_group();\n if (s2 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c9) {\n s3 = peg$c9;\n peg$currPos += 6;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e23);\n }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseend_group();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsesquare_bracket_argument();\n if (s5 === peg$FAILED) {\n s5 = null;\n }\n s6 = peg$parsegroup();\n if (s6 !== peg$FAILED) {\n s7 = peg$currPos;\n s8 = [];\n s9 = peg$currPos;\n s10 = peg$currPos;\n peg$silentFails++;\n s11 = peg$currPos;\n s12 = peg$parseend_env();\n if (s12 !== peg$FAILED) {\n s13 = peg$parsegroup();\n if (s13 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s14 = peg$f37(s3, s5, s6, s13);\n if (s14) {\n s14 = void 0;\n } else {\n s14 = peg$FAILED;\n }\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n } else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n } else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n } else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n peg$silentFails--;\n if (s11 === peg$FAILED) {\n s10 = void 0;\n } else {\n peg$currPos = s10;\n s10 = peg$FAILED;\n }\n if (s10 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s11 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s11 !== peg$FAILED) {\n s10 = [s10, s11];\n s9 = s10;\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n s9 = peg$currPos;\n s10 = peg$currPos;\n peg$silentFails++;\n s11 = peg$currPos;\n s12 = peg$parseend_env();\n if (s12 !== peg$FAILED) {\n s13 = peg$parsegroup();\n if (s13 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s14 = peg$f37(s3, s5, s6, s13);\n if (s14) {\n s14 = void 0;\n } else {\n s14 = peg$FAILED;\n }\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n } else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n } else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n } else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n peg$silentFails--;\n if (s11 === peg$FAILED) {\n s10 = void 0;\n } else {\n peg$currPos = s10;\n s10 = peg$FAILED;\n }\n if (s10 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s11 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s11 !== peg$FAILED) {\n s10 = [s10, s11];\n s9 = s10;\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n s7 = input.substring(s7, peg$currPos);\n s8 = peg$parseend_env();\n if (s8 !== peg$FAILED) {\n s9 = peg$parsebegin_group();\n if (s9 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c9) {\n s10 = peg$c9;\n peg$currPos += 6;\n } else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e23);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parseend_group();\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f38(s3, s5, s6, s7);\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 } 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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e22);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseverbatim_environment() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n var key = peg$currPos * 52 + 15;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsebegin_env();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsebegin_group();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseverbatim_env_name();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseend_group();\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n s6 = [];\n s7 = peg$currPos;\n s8 = peg$currPos;\n peg$silentFails++;\n s9 = peg$currPos;\n s10 = peg$parseend_env();\n if (s10 !== peg$FAILED) {\n s11 = peg$parsegroup();\n if (s11 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s12 = peg$f39(s3, s11);\n if (s12) {\n s12 = void 0;\n } else {\n s12 = peg$FAILED;\n }\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n peg$silentFails--;\n if (s9 === peg$FAILED) {\n s8 = void 0;\n } else {\n peg$currPos = s8;\n s8 = peg$FAILED;\n }\n if (s8 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s9 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s9 !== peg$FAILED) {\n peg$savedPos = s7;\n s7 = peg$f40(s3, s9);\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$currPos;\n s8 = peg$currPos;\n peg$silentFails++;\n s9 = peg$currPos;\n s10 = peg$parseend_env();\n if (s10 !== peg$FAILED) {\n s11 = peg$parsegroup();\n if (s11 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s12 = peg$f39(s3, s11);\n if (s12) {\n s12 = void 0;\n } else {\n s12 = peg$FAILED;\n }\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n peg$silentFails--;\n if (s9 === peg$FAILED) {\n s8 = void 0;\n } else {\n peg$currPos = s8;\n s8 = peg$FAILED;\n }\n if (s8 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s9 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s9 !== peg$FAILED) {\n peg$savedPos = s7;\n s7 = peg$f40(s3, s9);\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n }\n s5 = input.substring(s5, peg$currPos);\n s6 = peg$parseend_env();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsebegin_group();\n if (s7 !== peg$FAILED) {\n s8 = peg$parseverbatim_env_name();\n if (s8 !== peg$FAILED) {\n s9 = peg$parseend_group();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f41(s3, s5);\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 } 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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e24);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseverbatim_env_name() {\n var s0;\n var key = peg$currPos * 52 + 16;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n if (input.substr(peg$currPos, 9) === peg$c10) {\n s0 = peg$c10;\n peg$currPos += 9;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e25);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 8) === peg$c11) {\n s0 = peg$c11;\n peg$currPos += 8;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e26);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c12) {\n s0 = peg$c12;\n peg$currPos += 13;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e27);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 12) === peg$c13) {\n s0 = peg$c13;\n peg$currPos += 12;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e28);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 7) === peg$c14) {\n s0 = peg$c14;\n peg$currPos += 7;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e29);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 10) === peg$c15) {\n s0 = peg$c15;\n peg$currPos += 10;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e30);\n }\n }\n }\n }\n }\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsemacro() {\n var s0, s1, s2, s3, s4;\n var key = peg$currPos * 52 + 17;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parseescape();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsechar();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsechar();\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s1;\n s1 = peg$f42(s3);\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$parseescape();\n if (s2 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s1;\n s1 = peg$f43(s3);\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f44(s1);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsegroup() {\n var s0, s1, s2, s3, s4, s5;\n var key = peg$currPos * 52 + 18;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsebegin_group();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_group();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsetoken();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f45(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_group();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsetoken();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f45(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$parseend_group();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f46(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e32);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsegroup_contents_as_string() {\n var s0, s1;\n var key = peg$currPos * 52 + 19;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parsegroup();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f47(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseenvironment() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;\n var key = peg$currPos * 52 + 20;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsebegin_env();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsegroup_contents_as_string();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsesameline_comment();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n s4 = [];\n s5 = peg$currPos;\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$currPos;\n s8 = peg$parseend_env();\n if (s8 !== peg$FAILED) {\n s9 = peg$parsegroup_contents_as_string();\n if (s9 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s10 = peg$f48(s2, s3, s9);\n if (s10) {\n s10 = void 0;\n } else {\n s10 = peg$FAILED;\n }\n if (s10 !== peg$FAILED) {\n s8 = [s8, s9, s10];\n s7 = s8;\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parsetoken();\n if (s7 !== peg$FAILED) {\n peg$savedPos = s5;\n s5 = peg$f49(s2, s3, s7);\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$currPos;\n s8 = peg$parseend_env();\n if (s8 !== peg$FAILED) {\n s9 = peg$parsegroup_contents_as_string();\n if (s9 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s10 = peg$f48(s2, s3, s9);\n if (s10) {\n s10 = void 0;\n } else {\n s10 = peg$FAILED;\n }\n if (s10 !== peg$FAILED) {\n s8 = [s8, s9, s10];\n s7 = s8;\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parsetoken();\n if (s7 !== peg$FAILED) {\n peg$savedPos = s5;\n s5 = peg$f49(s2, s3, s7);\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n }\n s5 = peg$parseend_env();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsegroup_contents_as_string();\n if (s6 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f50(s2, s3, s4);\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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e33);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsemath_environment() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n var key = peg$currPos * 52 + 21;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsebegin_env();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsebegin_group();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsemath_env_name();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseend_group();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsesameline_comment();\n if (s5 === peg$FAILED) {\n s5 = null;\n }\n s6 = [];\n s7 = peg$currPos;\n s8 = peg$currPos;\n peg$silentFails++;\n s9 = peg$currPos;\n s10 = peg$parseend_env();\n if (s10 !== peg$FAILED) {\n s11 = peg$parsegroup();\n if (s11 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s12 = peg$f51(s3, s5, s11);\n if (s12) {\n s12 = void 0;\n } else {\n s12 = peg$FAILED;\n }\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n peg$silentFails--;\n if (s9 === peg$FAILED) {\n s8 = void 0;\n } else {\n peg$currPos = s8;\n s8 = peg$FAILED;\n }\n if (s8 !== peg$FAILED) {\n s9 = peg$parsemath_token();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s7;\n s7 = peg$f52(s3, s5, s9);\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$currPos;\n s8 = peg$currPos;\n peg$silentFails++;\n s9 = peg$currPos;\n s10 = peg$parseend_env();\n if (s10 !== peg$FAILED) {\n s11 = peg$parsegroup();\n if (s11 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s12 = peg$f51(s3, s5, s11);\n if (s12) {\n s12 = void 0;\n } else {\n s12 = peg$FAILED;\n }\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n } else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n peg$silentFails--;\n if (s9 === peg$FAILED) {\n s8 = void 0;\n } else {\n peg$currPos = s8;\n s8 = peg$FAILED;\n }\n if (s8 !== peg$FAILED) {\n s9 = peg$parsemath_token();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s7;\n s7 = peg$f52(s3, s5, s9);\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n }\n s7 = peg$parseend_env();\n if (s7 !== peg$FAILED) {\n s8 = peg$parsebegin_group();\n if (s8 !== peg$FAILED) {\n s9 = peg$parsemath_env_name();\n if (s9 !== peg$FAILED) {\n s10 = peg$parseend_group();\n if (s10 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f53(s3, s5, s6);\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 } 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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e34);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsemath_group() {\n var s0, s1, s2, s3, s4, s5;\n var key = peg$currPos * 52 + 22;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsebegin_group();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_group();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_token();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f54(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parseend_group();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemath_token();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f54(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$parseend_group();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f55(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e35);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsebegin_display_math() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 23;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 91) {\n s2 = peg$c4;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e14);\n }\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseend_display_math() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 24;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s2 = peg$c5;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e15);\n }\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsebegin_inline_math() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 25;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s2 = peg$c16;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e36);\n }\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseend_inline_math() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 26;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s2 = peg$c17;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e37);\n }\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsebegin_env() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 27;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 5) === peg$c18) {\n s2 = peg$c18;\n peg$currPos += 5;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e38);\n }\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseend_env() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 28;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$parseescape();\n if (s1 !== peg$FAILED) {\n if (input.substr(peg$currPos, 3) === peg$c19) {\n s2 = peg$c19;\n peg$currPos += 3;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e39);\n }\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsemath_env_name() {\n var s0, s1;\n var key = peg$currPos * 52 + 29;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 9) === peg$c20) {\n s1 = peg$c20;\n peg$currPos += 9;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e40);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 8) === peg$c21) {\n s1 = peg$c21;\n peg$currPos += 8;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e41);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e42);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 5) === peg$c23) {\n s1 = peg$c23;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e43);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 8) === peg$c24) {\n s1 = peg$c24;\n peg$currPos += 8;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e44);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 7) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e45);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 7) === peg$c26) {\n s1 = peg$c26;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e46);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c27) {\n s1 = peg$c27;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e47);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 9) === peg$c28) {\n s1 = peg$c28;\n peg$currPos += 9;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e48);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 8) === peg$c29) {\n s1 = peg$c29;\n peg$currPos += 8;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e49);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 8) === peg$c30) {\n s1 = peg$c30;\n peg$currPos += 8;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e50);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 7) === peg$c31) {\n s1 = peg$c31;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e51);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 5) === peg$c32) {\n s1 = peg$c32;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e52);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c33) {\n s1 = peg$c33;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e53);\n }\n }\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 11) === peg$c34) {\n s1 = peg$c34;\n peg$currPos += 11;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e54);\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f56(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseescape() {\n var s0, s1;\n var key = peg$currPos * 52 + 30;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 92) {\n s1 = peg$c35;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e56);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f57();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e55);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsebegin_group() {\n var s0, s1;\n var key = peg$currPos * 52 + 31;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c36;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e57);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f58(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseend_group() {\n var s0, s1;\n var key = peg$currPos * 52 + 32;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 125) {\n s1 = peg$c37;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e58);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f59(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsemath_shift() {\n var s0, s1;\n var key = peg$currPos * 52 + 33;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 36) {\n s1 = peg$c38;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e59);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f60(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsealignment_tab() {\n var s0, s1;\n var key = peg$currPos * 52 + 34;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 38) {\n s1 = peg$c39;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e60);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f61(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsenl() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 35;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 13) {\n s2 = peg$c40;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e62);\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.charCodeAt(peg$currPos) === 10) {\n s2 = peg$c41;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e63);\n }\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 if (input.charCodeAt(peg$currPos) === 13) {\n s0 = peg$c40;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e62);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c42) {\n s0 = peg$c42;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e64);\n }\n }\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e61);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsemacro_parameter() {\n var s0, s1;\n var key = peg$currPos * 52 + 36;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c43;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e65);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f62(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsesuperscript() {\n var s0, s1;\n var key = peg$currPos * 52 + 37;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 94) {\n s1 = peg$c44;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e66);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f63(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsesubscript() {\n var s0, s1;\n var key = peg$currPos * 52 + 38;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 95) {\n s1 = peg$c45;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e67);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f64(s1);\n }\n s0 = s1;\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseignore() {\n var s0;\n var key = peg$currPos * 52 + 39;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n if (input.charCodeAt(peg$currPos) === 0) {\n s0 = peg$c46;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e68);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsesp() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 40;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n if (peg$r1.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) {\n peg$fail(peg$e69);\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$r1.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) {\n peg$fail(peg$e69);\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f65();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e8);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsechar() {\n var s0, s1;\n var key = peg$currPos * 52 + 41;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n if (peg$r2.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) {\n peg$fail(peg$e71);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e70);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsenum() {\n var s0, s1;\n var key = peg$currPos * 52 + 42;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n if (peg$r3.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) {\n peg$fail(peg$e73);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e72);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsepunctuation() {\n var s0, s1;\n var key = peg$currPos * 52 + 43;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n if (peg$r4.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e75);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f66(s1);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e74);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsecomment_start() {\n var s0;\n var key = peg$currPos * 52 + 44;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n if (input.charCodeAt(peg$currPos) === 37) {\n s0 = peg$c0;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e7);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsefull_comment() {\n var s0, s1;\n var key = peg$currPos * 52 + 45;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$parseownline_comment();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesameline_comment();\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e76);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseownline_comment() {\n var s0, s1, s2, s3;\n var key = peg$currPos * 52 + 46;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsesp();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsesp();\n }\n s3 = peg$parsenl();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$parseleading_sp();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsecomment();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f67(s2, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsesameline_comment() {\n var s0, s1, s2;\n var key = peg$currPos * 52 + 47;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsesp();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsesp();\n }\n s2 = peg$parsecomment();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f68(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsecomment() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n var key = peg$currPos * 52 + 48;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsecomment_start();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsenl();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f69(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsenl();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f69(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parseparbreak();\n peg$silentFails--;\n if (s4 !== peg$FAILED) {\n peg$currPos = s3;\n s3 = void 0;\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f70(s2);\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$parsecomment_start();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsenl();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f71(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsenl();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f71(s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n s3 = peg$currPos;\n s4 = peg$parsenl();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parsesp();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsesp();\n }\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$parsecomment_start();\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$parsenl();\n if (s3 === peg$FAILED) {\n s3 = peg$parseEOF();\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f72(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e77);\n }\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseleading_sp() {\n var s0, s1, s2, s3, s4;\n var key = peg$currPos * 52 + 49;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parsestart_of_line();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsesp();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsesp();\n }\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parsestart_of_line() {\n var s0;\n var key = peg$currPos * 52 + 50;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n peg$savedPos = peg$currPos;\n s0 = peg$f73();\n if (s0) {\n s0 = void 0;\n } else {\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function peg$parseEOF() {\n var s0, s1;\n var key = peg$currPos * 52 + 51;\n var cached = peg$resultsCache[key];\n if (cached) {\n peg$currPos = cached.nextPos;\n return cached.result;\n }\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n return s0;\n }\n function toString(e) {\n if (typeof e === \"string\") {\n return e;\n }\n if (typeof e.content === \"string\") {\n return e.content;\n }\n if (e && e.type === \"whitespace\") {\n return \" \";\n }\n return e;\n }\n function compare_env(g1, g2) {\n const g1Name = typeof g1 === \"string\" ? g1 : g1.content.map(toString).join(\"\");\n const g2Name = typeof g2 === \"string\" ? g2 : g2.content.map(toString).join(\"\");\n return g1Name === g2Name;\n }\n function createNode(type, extra = {}) {\n return { type, ...extra, position: location() };\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { body: peg$parsebody };\n var peg$startRuleFunction = peg$parsebody;\n var peg$e0 = peg$anyExpectation();\n var peg$f0 = function() {\n return [];\n };\n var peg$f1 = function(x) {\n return { cells: [], colSeps: [], ...x };\n };\n var peg$f2 = function(rowItems, rowSep, trailingComment) {\n return { ...rowItems, rowSep, trailingComment };\n };\n var peg$f3 = function(rowItems, trailingComment) {\n return { ...rowItems, rowSep: null, trailingComment };\n };\n var peg$f4 = function(x) {\n return x;\n };\n var peg$f5 = function(x) {\n return {\n cells: [],\n colSeps: [],\n rowSep: null,\n trailingComment: x\n };\n };\n var peg$f6 = function(x) {\n return x;\n };\n var peg$f7 = function(colSep, cell) {\n return { colSep, cell };\n };\n var peg$f8 = function(colSep) {\n return { colSep };\n };\n var peg$f9 = function(a, b) {\n return processRow(a, b);\n };\n var peg$f10 = function(b) {\n return processRow(null, b);\n };\n var peg$f11 = function(tok) {\n return options.isSameLineComment(tok);\n };\n var peg$f12 = function(tok) {\n return tok;\n };\n var peg$f13 = function(tok) {\n return options.isOwnLineComment(tok);\n };\n var peg$f14 = function(tok) {\n return tok;\n };\n var peg$f15 = function(tok) {\n return options.isWhitespace(tok);\n };\n var peg$f16 = function(tok) {\n return tok;\n };\n var peg$f17 = function(tok) {\n return options.isRowSep(tok);\n };\n var peg$f18 = function(tok) {\n return tok;\n };\n var peg$f19 = function(tok) {\n return options.isColSep(tok);\n };\n var peg$f20 = function(tok) {\n return tok;\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsebody() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsecomment_only_line();\n if (s1 === peg$FAILED) {\n s1 = peg$parserow_with_end();\n if (s1 === peg$FAILED) {\n s1 = peg$parserow_without_end();\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsecomment_only_line();\n if (s1 === peg$FAILED) {\n s1 = peg$parserow_with_end();\n if (s1 === peg$FAILED) {\n s1 = peg$parserow_without_end();\n }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseEOL();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f0();\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parserow_with_end() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parserow_items();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n peg$savedPos = s1;\n s2 = peg$f1(s2);\n s1 = s2;\n s2 = peg$parserow_sep();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsetrailing_comment();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f2(s1, s2, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parserow_without_end() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parserow_items();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsetrailing_comment();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f3(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsetrailing_comment() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$parsesame_line_comment();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f4(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecomment_only_line() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$parseown_line_comment();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f5(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsetoken() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n s2 = peg$parserow_sep();\n if (s2 === peg$FAILED) {\n s2 = peg$parsecol_sep();\n if (s2 === peg$FAILED) {\n s2 = peg$parsetrailing_comment();\n if (s2 === peg$FAILED) {\n s2 = peg$parseown_line_comment();\n }\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) {\n peg$fail(peg$e0);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f6(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecell() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsetoken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsetoken();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseseparated_cell() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parsecol_sep();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsecell();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f7(s1, s2);\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$parsecol_sep();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f8(s1);\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parserow_items() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parsecell();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseseparated_cell();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseseparated_cell();\n }\n peg$savedPos = s0;\n s0 = peg$f9(s1, s2);\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$parseseparated_cell();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseseparated_cell();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f10(s1);\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsesame_line_comment() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f11(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f12(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseown_line_comment() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f13(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f14(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhitespace() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f15(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f16(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parserow_sep() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f17(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f18(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecol_sep() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f19(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f20(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function processRow(leadCell, otherCells) {\n const cells = [leadCell || []];\n const seps = [];\n for (const x of otherCells) {\n cells.push(x.cell || []);\n seps.push(x.colSep);\n }\n return { cells, colSeps: seps };\n }\n if (!options.isWhitespace) {\n try {\n Object.assign(\n options,\n createMatchers([\"\\\\\", \"hline\", \"cr\"], [\"&\"])\n );\n } catch (e) {\n console.warn(\"Error when initializing parser\", e);\n }\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { args_spec_list: peg$parseargs_spec_list };\n var peg$startRuleFunction = peg$parseargs_spec_list;\n var peg$c0 = \"+\";\n var peg$c1 = \"v\";\n var peg$c2 = \"b\";\n var peg$c3 = \"!\";\n var peg$c4 = \"D\";\n var peg$c5 = \"d\";\n var peg$c6 = \"s\";\n var peg$c7 = \"O\";\n var peg$c8 = \"o\";\n var peg$c9 = \"e\";\n var peg$c10 = \"E\";\n var peg$c11 = \"t\";\n var peg$c12 = \"R\";\n var peg$c13 = \"r\";\n var peg$c14 = \"u\";\n var peg$c15 = \"m\";\n var peg$c16 = \"{\";\n var peg$c17 = \"}\";\n var peg$c18 = \" \";\n var peg$c19 = \"\\n\";\n var peg$c20 = \"\\r\";\n var peg$c21 = \"\\\\\";\n var peg$r0 = /^[{ ]/;\n var peg$r1 = /^[a-zA-Z]/;\n var peg$r2 = /^[{}]/;\n var peg$e0 = peg$literalExpectation(\"+\", false);\n var peg$e1 = peg$literalExpectation(\"v\", false);\n var peg$e2 = peg$anyExpectation();\n var peg$e3 = peg$literalExpectation(\"b\", false);\n var peg$e4 = peg$literalExpectation(\"!\", false);\n var peg$e5 = peg$literalExpectation(\"D\", false);\n var peg$e6 = peg$literalExpectation(\"d\", false);\n var peg$e7 = peg$literalExpectation(\"s\", false);\n var peg$e8 = peg$literalExpectation(\"O\", false);\n var peg$e9 = peg$literalExpectation(\"o\", false);\n var peg$e10 = peg$literalExpectation(\"e\", false);\n var peg$e11 = peg$literalExpectation(\"E\", false);\n var peg$e12 = peg$literalExpectation(\"t\", false);\n var peg$e13 = peg$literalExpectation(\"R\", false);\n var peg$e14 = peg$literalExpectation(\"r\", false);\n var peg$e15 = peg$literalExpectation(\"u\", false);\n var peg$e16 = peg$classExpectation([\"{\", \" \"], false, false);\n var peg$e17 = peg$literalExpectation(\"m\", false);\n var peg$e18 = peg$literalExpectation(\"{\", false);\n var peg$e19 = peg$literalExpectation(\"}\", false);\n var peg$e20 = peg$literalExpectation(\" \", false);\n var peg$e21 = peg$literalExpectation(\"\\n\", false);\n var peg$e22 = peg$literalExpectation(\"\\r\", false);\n var peg$e23 = peg$literalExpectation(\"\\\\\", false);\n var peg$e24 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$e25 = peg$classExpectation([\"{\", \"}\"], false, false);\n var peg$f0 = function(x) {\n return x;\n };\n var peg$f1 = function(spec) {\n return spec;\n };\n var peg$f2 = function(spec) {\n return spec;\n };\n var peg$f3 = function(openBrace) {\n return createNode(\"verbatim\", { openBrace, closeBrace: openBrace });\n };\n var peg$f4 = function() {\n return createNode(\"body\");\n };\n var peg$f5 = function(leading_bang, spec) {\n return leading_bang ? { ...spec, noLeadingWhitespace: true } : spec;\n };\n var peg$f6 = function(braceSpec, defaultArg) {\n return createNode(\"optional\", { ...braceSpec, defaultArg });\n };\n var peg$f7 = function(braceSpec) {\n return createNode(\"optional\", braceSpec);\n };\n var peg$f8 = function() {\n return createNode(\"optionalStar\");\n };\n var peg$f9 = function(g) {\n return createNode(\"optional\", { defaultArg: g });\n };\n var peg$f10 = function() {\n return createNode(\"optional\");\n };\n var peg$f11 = function(args) {\n return createNode(\"embellishment\", {\n embellishmentTokens: args\n });\n };\n var peg$f12 = function(args, g) {\n return createNode(\"embellishment\", {\n embellishmentTokens: args,\n defaultArg: g\n });\n };\n var peg$f13 = function(tok) {\n return createNode(\"optionalToken\", { token: tok });\n };\n var peg$f14 = function(braceSpec, defaultArg) {\n return createNode(\"mandatory\", { ...braceSpec, defaultArg });\n };\n var peg$f15 = function(braceSpec) {\n return createNode(\"mandatory\", braceSpec);\n };\n var peg$f16 = function(stopTokens) {\n return createNode(\"until\", { stopTokens });\n };\n var peg$f17 = function(x) {\n return [x];\n };\n var peg$f18 = function(g) {\n return g.content;\n };\n var peg$f19 = function() {\n return createNode(\"mandatory\");\n };\n var peg$f20 = function(openBrace, closeBrace) {\n return { openBrace, closeBrace };\n };\n var peg$f21 = function(g) {\n return g.content.map(groupToStr).join(\"\");\n };\n var peg$f22 = function(t) {\n return [t];\n };\n var peg$f23 = function(args) {\n return args.filter((a) => !a.match(/^\\s*$/));\n };\n var peg$f24 = function(content) {\n return { type: \"group\", content };\n };\n var peg$f25 = function() {\n return \"\";\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parseargs_spec_list() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parsewhitespace();\n s4 = peg$parsearg_spec();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s2;\n s2 = peg$f0(s4);\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parsewhitespace();\n s4 = peg$parsearg_spec();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s2;\n s2 = peg$f0(s4);\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n s2 = peg$parsewhitespace();\n peg$savedPos = s0;\n s0 = peg$f1(s1);\n return s0;\n }\n function peg$parsearg_spec() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 43) {\n s1 = peg$c0;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$parseoptional();\n if (s2 === peg$FAILED) {\n s2 = peg$parsemandatory();\n if (s2 === peg$FAILED) {\n s2 = peg$parseverbatim();\n if (s2 === peg$FAILED) {\n s2 = peg$parserequired();\n if (s2 === peg$FAILED) {\n s2 = peg$parsebody();\n if (s2 === peg$FAILED) {\n s2 = peg$parseuntil();\n }\n }\n }\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f2(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseverbatim() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 118) {\n s1 = peg$c1;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\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) {\n peg$fail(peg$e2);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f3(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsebody() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 98) {\n s1 = peg$c2;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f4();\n }\n s0 = s1;\n return s0;\n }\n function peg$parseoptional() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c3;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$parseoptional_star();\n if (s2 === peg$FAILED) {\n s2 = peg$parseoptional_standard();\n if (s2 === peg$FAILED) {\n s2 = peg$parseoptional_delimited();\n if (s2 === peg$FAILED) {\n s2 = peg$parseoptional_embellishment();\n if (s2 === peg$FAILED) {\n s2 = peg$parseoptional_token();\n }\n }\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f5(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseoptional_delimited() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 68) {\n s1 = peg$c4;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsebrace_spec();\n s3 = peg$parsearg();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f6(s2, s3);\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) === 100) {\n s1 = peg$c5;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e6);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsebrace_spec();\n peg$savedPos = s0;\n s0 = peg$f7(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parseoptional_star() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 115) {\n s1 = peg$c6;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e7);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f8();\n }\n s0 = s1;\n return s0;\n }\n function peg$parseoptional_standard() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 79) {\n s1 = peg$c7;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e8);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsewhitespace();\n s3 = peg$parsearg();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f9(s3);\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) === 111) {\n s1 = peg$c8;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e9);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f10();\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parseoptional_embellishment() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 101) {\n s1 = peg$c9;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e10);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsewhitespace();\n s3 = peg$parseargs();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f11(s3);\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) === 69) {\n s1 = peg$c10;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e11);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsewhitespace();\n s3 = peg$parseargs();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsewhitespace();\n s5 = peg$parseargs();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f12(s3, s5);\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 function peg$parseoptional_token() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 116) {\n s1 = peg$c11;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e12);\n }\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) {\n peg$fail(peg$e2);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f13(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parserequired() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 82) {\n s1 = peg$c12;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e13);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsebrace_spec();\n s3 = peg$parsearg();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f14(s2, s3);\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) === 114) {\n s1 = peg$c13;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e14);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsebrace_spec();\n peg$savedPos = s0;\n s0 = peg$f15(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parseuntil() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 117) {\n s1 = peg$c14;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e15);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseuntil_stop_token();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f16(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseuntil_stop_token() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n if (peg$r0.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) {\n peg$fail(peg$e16);\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) {\n peg$fail(peg$e2);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f17(s2);\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$parsebraced_group();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f18(s1);\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsemandatory() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 109) {\n s1 = peg$c15;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e17);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f19();\n }\n s0 = s1;\n return s0;\n }\n function peg$parsebrace_spec() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhitespace_token();\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = void 0;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parsemacro();\n if (s4 === peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n s1 = input.substring(s1, peg$currPos);\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$currPos;\n peg$silentFails++;\n s5 = peg$parsewhitespace_token();\n peg$silentFails--;\n if (s5 === peg$FAILED) {\n s4 = void 0;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemacro();\n if (s5 === peg$FAILED) {\n if (input.length > peg$currPos) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n }\n if (s5 !== peg$FAILED) {\n s4 = [s4, s5];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n s2 = input.substring(s2, peg$currPos);\n peg$savedPos = s0;\n s0 = peg$f20(s1, s2);\n return s0;\n }\n function peg$parsearg() {\n var s0, s1;\n s0 = peg$parsetoken();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsebraced_group();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f21(s1);\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargs() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parsetoken();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f22(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c16;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e18);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsearg();\n if (s3 === peg$FAILED) {\n s3 = peg$parsewhitespace_token();\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsearg();\n if (s3 === peg$FAILED) {\n s3 = peg$parsewhitespace_token();\n }\n }\n if (input.charCodeAt(peg$currPos) === 125) {\n s3 = peg$c17;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f23(s2);\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 function peg$parsebraced_group() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c16;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e18);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$currPos;\n s5 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 125) {\n s6 = peg$c17;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n peg$silentFails--;\n if (s6 === peg$FAILED) {\n s5 = void 0;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$parsebraced_group();\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parsetoken();\n if (s7 === peg$FAILED) {\n s7 = peg$parsewhitespace_token();\n }\n if (s7 !== peg$FAILED) {\n s5 = [s5, s6, s7];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n } else {\n s3 = s4;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$parsebraced_group();\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$currPos;\n s5 = peg$currPos;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 125) {\n s6 = peg$c17;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n peg$silentFails--;\n if (s6 === peg$FAILED) {\n s5 = void 0;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$parsebraced_group();\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$parsetoken();\n if (s7 === peg$FAILED) {\n s7 = peg$parsewhitespace_token();\n }\n if (s7 !== peg$FAILED) {\n s5 = [s5, s6, s7];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n } else {\n s3 = s4;\n }\n if (s3 === peg$FAILED) {\n s3 = peg$parsebraced_group();\n }\n }\n if (input.charCodeAt(peg$currPos) === 125) {\n s3 = peg$c17;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f24(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhitespace() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace_token();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace_token();\n }\n peg$savedPos = s0;\n s1 = peg$f25();\n s0 = s1;\n return s0;\n }\n function peg$parsewhitespace_token() {\n var s0;\n if (input.charCodeAt(peg$currPos) === 32) {\n s0 = peg$c18;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e20);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s0 = peg$c19;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e21);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 13) {\n s0 = peg$c20;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e22);\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemacro() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n s1 = peg$currPos;\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) {\n peg$fail(peg$e23);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e24);\n }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e24);\n }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\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) {\n peg$fail(peg$e23);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n peg$silentFails++;\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e24);\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = void 0;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s4 !== peg$FAILED) {\n s2 = [s2, s3, s4];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n return s0;\n }\n function peg$parsetoken() {\n var s0, s1, s2, s3;\n s0 = peg$parsemacro();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n if (peg$r2.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) {\n peg$fail(peg$e25);\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 s2 = peg$currPos;\n peg$silentFails++;\n s3 = peg$parsewhitespace_token();\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = void 0;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s3 !== peg$FAILED) {\n s0 = s3;\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 const DEFAULT_OPTIONS = {\n optional: { openBrace: \"[\", closeBrace: \"]\" },\n mandatory: { openBrace: \"{\", closeBrace: \"}\" }\n };\n function createNode(type, options2) {\n const computedOptions = DEFAULT_OPTIONS[type] || {};\n return { type, ...computedOptions, ...options2 };\n }\n function groupToStr(node) {\n if (typeof node !== \"object\" || !node) {\n return node;\n }\n if (node.type === \"group\") {\n return `{${node.content.map(groupToStr).join(\"\")}}`;\n }\n return node;\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { body: peg$parsebody };\n var peg$startRuleFunction = peg$parsebody;\n var peg$e0 = peg$anyExpectation();\n var peg$f0 = function() {\n return [];\n };\n var peg$f1 = function(rowItems, trailingComment) {\n return {\n itemParts: [],\n ...rowItems,\n trailingComment,\n trailingComma: true\n };\n };\n var peg$f2 = function(rowItems, trailingComment) {\n return { ...rowItems, trailingComment };\n };\n var peg$f3 = function(a, b) {\n return processItem(a, b);\n };\n var peg$f4 = function(b) {\n return processItem(null, b);\n };\n var peg$f5 = function(cell) {\n return { cell };\n };\n var peg$f6 = function() {\n return {};\n };\n var peg$f7 = function(part) {\n return part;\n };\n var peg$f8 = function(x) {\n return x;\n };\n var peg$f9 = function(space, x) {\n return {\n trailingComment: x,\n leadingParbreak: space.parbreak > 0\n };\n };\n var peg$f10 = function(list) {\n return {\n whitespace: list.filter((x) => options.isWhitespace(x)).length,\n parbreak: list.filter((x) => options.isParbreak(x)).length\n };\n };\n var peg$f11 = function() {\n return !options.allowParenGroups;\n };\n var peg$f12 = function(tok) {\n return options.isSameLineComment(tok);\n };\n var peg$f13 = function(tok) {\n return tok;\n };\n var peg$f14 = function(tok) {\n return options.isOwnLineComment(tok);\n };\n var peg$f15 = function(tok) {\n return tok;\n };\n var peg$f16 = function(tok) {\n return options.isWhitespace(tok);\n };\n var peg$f17 = function(tok) {\n return tok;\n };\n var peg$f18 = function(tok) {\n return options.isParbreak(tok);\n };\n var peg$f19 = function(tok) {\n return tok;\n };\n var peg$f20 = function(tok) {\n return options.isComma(tok);\n };\n var peg$f21 = function(tok) {\n return tok;\n };\n var peg$f22 = function(tok) {\n return options.isEquals(tok);\n };\n var peg$f23 = function(tok) {\n return tok;\n };\n var peg$f24 = function(tok) {\n return options.isChar(tok, \"(\");\n };\n var peg$f25 = function(tok) {\n return tok;\n };\n var peg$f26 = function(tok) {\n return options.isChar(tok, \")\");\n };\n var peg$f27 = function(tok) {\n return tok;\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsebody() {\n var s0, s1, s2;\n s0 = [];\n s1 = peg$parsecomment_only_line();\n if (s1 === peg$FAILED) {\n s1 = peg$parseitem_with_end();\n if (s1 === peg$FAILED) {\n s1 = peg$parseitem_without_end();\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsecomment_only_line();\n if (s1 === peg$FAILED) {\n s1 = peg$parseitem_with_end();\n if (s1 === peg$FAILED) {\n s1 = peg$parseitem_without_end();\n }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$parseEOL();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f0();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parseitem_with_end() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n s0 = peg$currPos;\n s1 = peg$parsewhitespace_or_parbreaks();\n s2 = peg$parserow_items();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n s3 = peg$parsewhitespace_or_parbreaks();\n s4 = peg$parseitem_sep();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parsewhitespace();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsewhitespace();\n }\n s6 = peg$parsetrailing_comment();\n if (s6 === peg$FAILED) {\n s6 = null;\n }\n s7 = [];\n s8 = peg$parsewhitespace();\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n s8 = peg$parsewhitespace();\n }\n peg$savedPos = s0;\n s0 = peg$f1(s2, s6);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseitem_without_end() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parsewhitespace_or_parbreaks();\n s2 = peg$parserow_items();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsetrailing_comment();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f2(s2, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parserow_items() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parseitem_part();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parseseparated_part();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parseseparated_part();\n }\n peg$savedPos = s0;\n s0 = peg$f3(s1, s2);\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$parseseparated_part();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseseparated_part();\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f4(s1);\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parseseparated_part() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseparbreak();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseparbreak();\n }\n s2 = peg$parseequals();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseparbreak();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseparbreak();\n }\n s4 = peg$parseitem_part();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f5(s4);\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$parseparbreak();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseparbreak();\n }\n s2 = peg$parseequals();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f6();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parseitem_part() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$currPos;\n s3 = [];\n s4 = peg$parsenon_whitespace_non_parbreak_token();\n if (s4 === peg$FAILED) {\n s4 = peg$currPos;\n s5 = peg$parsewhitespace();\n if (s5 === peg$FAILED) {\n s5 = peg$parseparbreak();\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$currPos;\n s8 = [];\n s9 = peg$parsewhitespace();\n if (s9 === peg$FAILED) {\n s9 = peg$parseparbreak();\n }\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n s9 = peg$parsewhitespace();\n if (s9 === peg$FAILED) {\n s9 = peg$parseparbreak();\n }\n }\n s9 = peg$parsenon_whitespace_non_parbreak_token();\n if (s9 !== peg$FAILED) {\n s8 = [s8, s9];\n s7 = s8;\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n peg$silentFails--;\n if (s7 !== peg$FAILED) {\n peg$currPos = s6;\n s6 = void 0;\n } else {\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenon_whitespace_non_parbreak_token();\n if (s4 === peg$FAILED) {\n s4 = peg$currPos;\n s5 = peg$parsewhitespace();\n if (s5 === peg$FAILED) {\n s5 = peg$parseparbreak();\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$currPos;\n s8 = [];\n s9 = peg$parsewhitespace();\n if (s9 === peg$FAILED) {\n s9 = peg$parseparbreak();\n }\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n s9 = peg$parsewhitespace();\n if (s9 === peg$FAILED) {\n s9 = peg$parseparbreak();\n }\n }\n s9 = peg$parsenon_whitespace_non_parbreak_token();\n if (s9 !== peg$FAILED) {\n s8 = [s8, s9];\n s7 = s8;\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n peg$silentFails--;\n if (s7 !== peg$FAILED) {\n peg$currPos = s6;\n s6 = void 0;\n } else {\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsewhitespace();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsewhitespace();\n }\n peg$savedPos = s0;\n s0 = peg$f7(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsetrailing_comment() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n }\n s2 = peg$parsesame_line_comment();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f8(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecomment_only_line() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parsewhitespace_or_parbreaks();\n s2 = peg$parseown_line_comment();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f9(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsetoken() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n peg$silentFails++;\n s3 = peg$parsenon_token();\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = void 0;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parsenon_whitespace_non_parbreak_token() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n peg$silentFails++;\n s3 = peg$parsewhitespace();\n if (s3 === peg$FAILED) {\n s3 = peg$parseparbreak();\n }\n peg$silentFails--;\n if (s3 === peg$FAILED) {\n s2 = void 0;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseparen_block();\n if (s3 === peg$FAILED) {\n s3 = peg$parsetoken();\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parsenon_token() {\n var s0;\n s0 = peg$parseitem_sep();\n if (s0 === peg$FAILED) {\n s0 = peg$parseequals();\n if (s0 === peg$FAILED) {\n s0 = peg$parsetrailing_comment();\n if (s0 === peg$FAILED) {\n s0 = peg$parseown_line_comment();\n }\n }\n }\n return s0;\n }\n function peg$parsewhitespace_or_parbreaks() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhitespace();\n if (s2 === peg$FAILED) {\n s2 = peg$parseparbreak();\n }\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhitespace();\n if (s2 === peg$FAILED) {\n s2 = peg$parseparbreak();\n }\n }\n peg$savedPos = s0;\n s1 = peg$f10(s1);\n s0 = s1;\n return s0;\n }\n function peg$parseparen_block() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$f11();\n if (s1) {\n s1 = peg$FAILED;\n } else {\n s1 = void 0;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parseopen_paren();\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$currPos;\n s7 = peg$currPos;\n peg$silentFails++;\n s8 = peg$parseclose_paren();\n peg$silentFails--;\n if (s8 === peg$FAILED) {\n s7 = void 0;\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n if (s7 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s8 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s8 !== peg$FAILED) {\n s7 = [s7, s8];\n s6 = s7;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$currPos;\n s7 = peg$currPos;\n peg$silentFails++;\n s8 = peg$parseclose_paren();\n peg$silentFails--;\n if (s8 === peg$FAILED) {\n s7 = void 0;\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n if (s7 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s8 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s8 !== peg$FAILED) {\n s7 = [s7, s8];\n s6 = s7;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n }\n s6 = peg$parseclose_paren();\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 return s0;\n }\n function peg$parsesame_line_comment() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f12(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f13(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseown_line_comment() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f14(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f15(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhitespace() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f16(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f17(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseparbreak() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f18(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f19(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseitem_sep() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f20(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f21(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseequals() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f22(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f23(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseopen_paren() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f24(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f25(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseclose_paren() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f26(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f27(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function processItem(leadCell, otherCells) {\n const cells = [leadCell || []];\n for (const x of otherCells) {\n cells.push(x.cell || []);\n }\n return { itemParts: cells };\n }\n if (!options.isWhitespace) {\n try {\n Object.assign(options, {\n isChar: (node, char) => node.type === \"string\" && node.content === char,\n isComma(node) {\n return node.type === \"string\" && node.content === \",\";\n },\n isEquals(node) {\n return node.type === \"string\" && node.content === \"=\";\n },\n isParbreak(node) {\n return node.type === \"parbreak\";\n },\n isWhitespace(node) {\n return node.type === \"whitespace\";\n },\n isSameLineComment: (node) => node.type === \"comment\" && node.sameline,\n isOwnLineComment: (node) => node.type === \"comment\" && !node.sameline,\n isComment: (node) => node.type === \"comment\",\n allowParenGroups: true\n });\n } catch (e) {\n console.warn(\"Error when initializing parser\", e);\n }\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { body: peg$parsebody };\n var peg$startRuleFunction = peg$parsebody;\n var peg$e0 = peg$anyExpectation();\n var peg$f0 = function(e) {\n return [].concat(...e).filter((n) => !!n);\n };\n var peg$f1 = function() {\n return [];\n };\n var peg$f2 = function(tok) {\n return options.isHash(tok);\n };\n var peg$f3 = function(tok) {\n return tok;\n };\n var peg$f4 = function(tok) {\n return options.isNumber(tok);\n };\n var peg$f5 = function(tok) {\n return tok;\n };\n var peg$f6 = function() {\n return { type: \"string\", content: \"#\" };\n };\n var peg$f7 = function(num) {\n const split = options.splitNumber(num);\n return [{ type: \"hash_number\", number: split.number }, split.rest];\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsebody() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedouble_hash();\n if (s2 === peg$FAILED) {\n s2 = peg$parsehash_number();\n if (s2 === 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) {\n peg$fail(peg$e0);\n }\n }\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedouble_hash();\n if (s2 === peg$FAILED) {\n s2 = peg$parsehash_number();\n if (s2 === 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) {\n peg$fail(peg$e0);\n }\n }\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f0(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseEOL();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f1();\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsehash() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f2(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f3(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f4(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f5(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedouble_hash() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parsehash();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsehash();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f6();\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsehash_number() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parsehash();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f7(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n if (!options.isHash) {\n try {\n Object.assign(options, {\n isHash: (node) => node.type === \"string\" && node.content === \"#\",\n isNumber: (node) => node.type === \"string\" && 0 < +node.content.charAt(0),\n splitNumber: (node) => {\n const number = +node.content.charAt(0);\n if (node.content.length > 1) {\n return {\n number,\n rest: {\n type: \"string\",\n content: node.content.slice(1)\n }\n };\n }\n return { number };\n }\n });\n } catch (e) {\n console.warn(\"Error when initializing parser\", e);\n }\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { body: peg$parsebody };\n var peg$startRuleFunction = peg$parsebody;\n var peg$e0 = peg$anyExpectation();\n var peg$f0 = function(e) {\n return [].concat(...e).filter((n) => !!n);\n };\n var peg$f1 = function() {\n return [];\n };\n var peg$f2 = function(toks) {\n return options.isRecognized(toks);\n };\n var peg$f3 = function(toks) {\n return options.isRecognized(toks);\n };\n var peg$f4 = function(tok1, tok2) {\n const split = options.split(tok2);\n return options.isRecognized([tok1, split[0]]);\n };\n var peg$f5 = function(tok1, tok2) {\n const split = options.split(tok2);\n return [options.isRecognized([tok1, split[0]]), split[1]];\n };\n var peg$f6 = function(tok1, tok2) {\n return options.isRecognized([tok1, tok2]);\n };\n var peg$f7 = function(tok1, tok2) {\n return options.isRecognized([tok1, tok2]);\n };\n var peg$f8 = function(toks) {\n return options.isRecognized(toks);\n };\n var peg$f9 = function(toks) {\n return options.isRecognized(toks);\n };\n var peg$f10 = function(tok) {\n return options.isRecognized([tok]);\n };\n var peg$f11 = function(tok) {\n return options.isRecognized([tok]);\n };\n var peg$f12 = function(tok) {\n return options.isMacro(tok);\n };\n var peg$f13 = function(tok) {\n return tok;\n };\n var peg$f14 = function(tok) {\n return options.isWhitespace(tok);\n };\n var peg$f15 = function(tok) {\n return tok;\n };\n var peg$f16 = function(tok) {\n return options.isSplitable(tok);\n };\n var peg$f17 = function(tok) {\n return tok;\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsebody() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsetriple_ligature();\n if (s2 === peg$FAILED) {\n s2 = peg$parsedouble_ligature();\n if (s2 === peg$FAILED) {\n s2 = peg$parsemono_ligature();\n if (s2 === 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) {\n peg$fail(peg$e0);\n }\n }\n }\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsetriple_ligature();\n if (s2 === peg$FAILED) {\n s2 = peg$parsedouble_ligature();\n if (s2 === peg$FAILED) {\n s2 = peg$parsemono_ligature();\n if (s2 === 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) {\n peg$fail(peg$e0);\n }\n }\n }\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f0(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseEOL();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f1();\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsetriple_ligature() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n s1 = peg$currPos;\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) {\n peg$fail(peg$e0);\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s4 !== peg$FAILED) {\n s2 = [s2, s3, s4];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f2(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f3(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedouble_ligature() {\n var s0;\n s0 = peg$parsedouble_macro_ligature();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedouble_macro_ligature_extracted();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedouble_char_ligature();\n }\n }\n return s0;\n }\n function peg$parsedouble_macro_ligature_extracted() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n s1 = peg$parsemacro();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewhitespace();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewhitespace();\n }\n s3 = peg$parsesplitable();\n if (s3 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s4 = peg$f4(s1, s3);\n if (s4) {\n s4 = void 0;\n } else {\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f5(s1, s3);\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 return s0;\n }\n function peg$parsedouble_macro_ligature() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n s1 = peg$parsemacro();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsewhitespace();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsewhitespace();\n }\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s4 = peg$f6(s1, s3);\n if (s4) {\n s4 = void 0;\n } else {\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f7(s1, s3);\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 return s0;\n }\n function peg$parsedouble_char_ligature() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\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) {\n peg$fail(peg$e0);\n }\n }\n if (s2 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f8(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f9(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsemono_ligature() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f10(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f11(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsemacro() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f12(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f13(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhitespace() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f14(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f15(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesplitable() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f16(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f17(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n if (!options.isWhitespace) {\n try {\n Object.assign(options, {\n isMacro: (node) => node.type === \"macro\",\n isWhitespace: (node) => node.type === \"whitespace\",\n isRecognized: (nodes) => {\n if (nodes.length == 2 && nodes[0].content === \"^\" && nodes[1].content === \"o\") {\n return { type: \"string\", content: \"\\xF4\" };\n }\n return null;\n },\n isSplitable: (node) => node.type === \"string\" && node.content.length > 1,\n split: (node) => [\n { type: \"string\", content: node.content.charAt(0) },\n { type: \"string\", content: node.content.slice(1) }\n ]\n });\n } catch (e) {\n console.warn(\"Error when initializing parser\", e);\n }\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = \";\";\n var peg$c1 = \",\";\n var peg$c2 = \":\";\n var peg$c3 = \"/\";\n var peg$c4 = \">\";\n var peg$c5 = \"!\";\n var peg$c6 = \".\";\n var peg$c7 = \"!![\";\n var peg$c8 = \"]\";\n var peg$c9 = \"!!\";\n var peg$c10 = \"+\";\n var peg$c11 = \"-\";\n var peg$r0 = /^[a-zA-Z0-9]/;\n var peg$r1 = /^[0-9]/;\n var peg$r2 = /^[ \\t\\n\\r]/;\n var peg$r3 = /^[0-9a-fA-F]/;\n var peg$e0 = peg$anyExpectation();\n var peg$e1 = peg$literalExpectation(\";\", false);\n var peg$e2 = peg$literalExpectation(\",\", false);\n var peg$e3 = peg$otherExpectation(\"model list\");\n var peg$e4 = peg$literalExpectation(\":\", false);\n var peg$e5 = peg$literalExpectation(\"/\", false);\n var peg$e6 = peg$otherExpectation(\"model\");\n var peg$e7 = peg$otherExpectation(\"color spec list\");\n var peg$e8 = peg$otherExpectation(\"color spec\");\n var peg$e9 = peg$otherExpectation(\"color\");\n var peg$e10 = peg$otherExpectation(\"function expression\");\n var peg$e11 = peg$literalExpectation(\">\", false);\n var peg$e12 = peg$otherExpectation(\"function\");\n var peg$e13 = peg$otherExpectation(\"extended expression\");\n var peg$e14 = peg$otherExpectation(\"core model\");\n var peg$e15 = peg$otherExpectation(\"expr\");\n var peg$e16 = peg$literalExpectation(\"!\", false);\n var peg$e17 = peg$otherExpectation(\"mix expr\");\n var peg$e18 = peg$otherExpectation(\"name\");\n var peg$e19 = peg$literalExpectation(\".\", false);\n var peg$e20 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], [\"0\", \"9\"]], false, false);\n var peg$e21 = peg$otherExpectation(\"postfix\");\n var peg$e22 = peg$literalExpectation(\"!![\", false);\n var peg$e23 = peg$literalExpectation(\"]\", false);\n var peg$e24 = peg$literalExpectation(\"!!\", false);\n var peg$e25 = peg$otherExpectation(\"prefix\");\n var peg$e26 = peg$otherExpectation(\"plus\");\n var peg$e27 = peg$literalExpectation(\"+\", false);\n var peg$e28 = peg$otherExpectation(\"minus\");\n var peg$e29 = peg$literalExpectation(\"-\", false);\n var peg$e30 = peg$otherExpectation(\"num\");\n var peg$e31 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$e32 = peg$otherExpectation(\"positive float\");\n var peg$e33 = peg$otherExpectation(\"divisor\");\n var peg$e34 = peg$otherExpectation(\"int\");\n var peg$e35 = peg$otherExpectation(\"whitespace\");\n var peg$e36 = peg$classExpectation([\" \", \"\t\", \"\\n\", \"\\r\"], false, false);\n var peg$e37 = peg$classExpectation([[\"0\", \"9\"], [\"a\", \"f\"], [\"A\", \"F\"]], false, false);\n var peg$f0 = function(m) {\n return m;\n };\n var peg$f1 = function(m) {\n return m;\n };\n var peg$f2 = function(m) {\n return m;\n };\n var peg$f3 = function(m) {\n return m;\n };\n var peg$f4 = function(m) {\n return m;\n };\n var peg$f5 = function(a) {\n return { type: \"invalid_spec\", content: a };\n };\n var peg$f6 = function(f, c) {\n return c;\n };\n var peg$f7 = function(f, r) {\n return { type: \"color_set\", content: [f].concat(r) };\n };\n var peg$f8 = function(n, s) {\n return { type: \"color_set_item\", name: n, spec_list: s };\n };\n var peg$f9 = function(c, m) {\n return { type: \"model_list\", contents: m, core_model: c };\n };\n var peg$f10 = function(m) {\n return { type: \"model_list\", contents: m, core_model: null };\n };\n var peg$f11 = function(m, a) {\n return a;\n };\n var peg$f12 = function(m, r) {\n return [m].concat(r);\n };\n var peg$f13 = function(s, a) {\n return a;\n };\n var peg$f14 = function(s, r) {\n return { type: \"spec_list\", content: [s].concat(r) };\n };\n var peg$f15 = function(c) {\n return { type: \"hex_spec\", content: [c] };\n };\n var peg$f16 = function(c, d) {\n return d;\n };\n var peg$f17 = function(c, d) {\n return d;\n };\n var peg$f18 = function(c, r) {\n return { type: \"num_spec\", content: r ? [c].concat(r) : [c] };\n };\n var peg$f19 = function(c, fs) {\n return { type: \"color\", color: c, functions: fs };\n };\n var peg$f20 = function(f, n) {\n return n;\n };\n var peg$f21 = function(f, args) {\n return { type: \"function\", name: f, args };\n };\n var peg$f22 = function(core, d, e, es) {\n return {\n type: \"extended_expr\",\n core_model: core,\n div: d,\n expressions: [e].concat(es)\n };\n };\n var peg$f23 = function(core, e, es) {\n return {\n type: \"extended_expr\",\n core_model: core,\n div: null,\n expressions: [e].concat(es)\n };\n };\n var peg$f24 = function(e, d) {\n return { type: \"weighted_expr\", color: e, weight: d };\n };\n var peg$f25 = function(e) {\n return e;\n };\n var peg$f26 = function(p, n, e, po) {\n return {\n type: \"expr\",\n prefix: p,\n name: n,\n mix_expr: e,\n postfix: po\n };\n };\n var peg$f27 = function(p, n) {\n return { type: \"complete_mix\", mix_percent: p, name: n };\n };\n var peg$f28 = function(p) {\n return { type: \"partial_mix\", mix_percent: p };\n };\n var peg$f29 = function(c, p) {\n return c.concat(p || []);\n };\n var peg$f30 = function(n) {\n return { type: \"postfix\", num: n };\n };\n var peg$f31 = function(p) {\n return { type: \"postfix\", plusses: p };\n };\n var peg$f32 = function(n) {\n return parseInt(n, 10);\n };\n var peg$f33 = function(n) {\n return parseFloat(n);\n };\n var peg$f34 = function(n) {\n return n;\n };\n var peg$f35 = function(n) {\n return -n;\n };\n var peg$f36 = function(m, n) {\n return m ? -n : n;\n };\n var peg$f37 = function(h) {\n return h.toUpperCase();\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsestart() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parsespec();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEOL();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f0(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$parsespec_list();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEOL();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f1(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$parsecolor();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEOL();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f2(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$parsemodel_list();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEOL();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f3(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$parsecolor_set_spec();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseEOL();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f4(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$currPos;\n s2 = [];\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n }\n s1 = input.substring(s1, peg$currPos);\n peg$savedPos = s0;\n s1 = peg$f5(s1);\n s0 = s1;\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsecolor_set_spec() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = peg$parsecolor_set_item();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 59) {\n s4 = peg$c0;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsecolor_set_item();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f6(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 59) {\n s4 = peg$c0;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsecolor_set_item();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f6(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n peg$savedPos = s0;\n s0 = peg$f7(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecolor_set_item() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parsename();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s2 = peg$c1;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsespec_list();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f8(s1, s3);\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 return s0;\n }\n function peg$parsemodel_list() {\n var s0, s1, s2, s3;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsecore_model();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s2 = peg$c2;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsemodel_list_tail();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f9(s1, s3);\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$parsemodel_list_tail();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f10(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n return s0;\n }\n function peg$parsemodel_list_tail() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = peg$parsemodel();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s4 = peg$c3;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemodel();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f11(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s4 = peg$c3;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsemodel();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f11(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n peg$savedPos = s0;\n s0 = peg$f12(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsemodel() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$parsecore_model();\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e6);\n }\n }\n return s0;\n }\n function peg$parsespec_list() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsespec();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s4 = peg$c3;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsespec();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f13(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s4 = peg$c3;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsespec();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f13(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n peg$savedPos = s0;\n s0 = peg$f14(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e7);\n }\n }\n return s0;\n }\n function peg$parsespec() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n s3 = peg$parsehex();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsehex();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehex();\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehex();\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehex();\n if (s7 !== peg$FAILED) {\n s8 = peg$parsehex();\n if (s8 !== peg$FAILED) {\n s3 = [s3, s4, s5, s6, s7, s8];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f15(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsedec();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c1;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsedec();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f16(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c1;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parsedec();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f16(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 === peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parsesp();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsedec();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f17(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parsesp();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsedec();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s3;\n s3 = peg$f17(s1, s5);\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n }\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f18(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e8);\n }\n }\n return s0;\n }\n function peg$parsecolor() {\n var s0, s1, s2, s3;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsecolor_expr();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsefunc_expr();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsefunc_expr();\n }\n peg$savedPos = s0;\n s0 = peg$f19(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e9);\n }\n }\n return s0;\n }\n function peg$parsecolor_expr() {\n var s0;\n s0 = peg$parseext_expr();\n if (s0 === peg$FAILED) {\n s0 = peg$parseexpr();\n if (s0 === peg$FAILED) {\n s0 = peg$parsename();\n }\n }\n return s0;\n }\n function peg$parsefunc_expr() {\n var s0, s1, s2, s3, s4, s5, s6;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 62) {\n s1 = peg$c4;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e11);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsefunction();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c1;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseint();\n if (s6 !== peg$FAILED) {\n peg$savedPos = s4;\n s4 = peg$f20(s2, s6);\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c1;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parseint();\n if (s6 !== peg$FAILED) {\n peg$savedPos = s4;\n s4 = peg$f20(s2, s6);\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n peg$savedPos = s0;\n s0 = peg$f21(s2, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e10);\n }\n }\n return s0;\n }\n function peg$parsefunction() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$parsename();\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e12);\n }\n }\n return s0;\n }\n function peg$parseext_expr() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsecore_model();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s2 = peg$c1;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsediv();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s4 = peg$c2;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parseweighted_expr();\n if (s5 !== peg$FAILED) {\n s6 = [];\n s7 = peg$parseadditional_weighted_expr();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parseadditional_weighted_expr();\n }\n peg$savedPos = s0;\n s0 = peg$f22(s1, s3, s5, s6);\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$parsecore_model();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 58) {\n s2 = peg$c2;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parseweighted_expr();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parseadditional_weighted_expr();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parseadditional_weighted_expr();\n }\n peg$savedPos = s0;\n s0 = peg$f23(s1, s3, s4);\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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e13);\n }\n }\n return s0;\n }\n function peg$parseweighted_expr() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parseexpr();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s2 = peg$c1;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsedec();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f24(s1, s3);\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 return s0;\n }\n function peg$parseadditional_weighted_expr() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 59) {\n s1 = peg$c0;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseweighted_expr();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f25(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecore_model() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$parsename();\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e14);\n }\n }\n return s0;\n }\n function peg$parseexpr() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseprefix();\n s2 = peg$parsename();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsemix_expr();\n s4 = peg$parsepostfix();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f26(s1, s2, s3, s4);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e15);\n }\n }\n return s0;\n }\n function peg$parsecomplete_mix() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c5;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e16);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepct();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 33) {\n s3 = peg$c5;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e16);\n }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parsename();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f27(s2, s4);\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 return s0;\n }\n function peg$parsepartial_mix() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 33) {\n s1 = peg$c5;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e16);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepct();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f28(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsemix_expr() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsecomplete_mix();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsecomplete_mix();\n }\n s2 = peg$parsepartial_mix();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f29(s1, s2);\n peg$silentFails--;\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e17);\n }\n return s0;\n }\n function peg$parsename() {\n var s0, s1, s2;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 46) {\n s0 = peg$c6;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n if (peg$r0.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) {\n peg$fail(peg$e20);\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (peg$r0.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) {\n peg$fail(peg$e20);\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e18);\n }\n }\n return s0;\n }\n function peg$parsepostfix() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 3) === peg$c7) {\n s1 = peg$c7;\n peg$currPos += 3;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e22);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenum();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 93) {\n s3 = peg$c8;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e23);\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f30(s2);\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 if (input.substr(peg$currPos, 2) === peg$c9) {\n s1 = peg$c9;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e24);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n s4 = peg$parseplus();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseplus();\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f31(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e21);\n }\n }\n return s0;\n }\n function peg$parseprefix() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$parseminus();\n if (s0 === peg$FAILED) {\n s0 = null;\n }\n peg$silentFails--;\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e25);\n }\n return s0;\n }\n function peg$parseplus() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n if (input.charCodeAt(peg$currPos) === 43) {\n s2 = peg$c10;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e27);\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (input.charCodeAt(peg$currPos) === 43) {\n s2 = peg$c10;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e27);\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e26);\n }\n }\n return s0;\n }\n function peg$parseminus() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n if (input.charCodeAt(peg$currPos) === 45) {\n s2 = peg$c11;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e29);\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n if (input.charCodeAt(peg$currPos) === 45) {\n s2 = peg$c11;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e29);\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e28);\n }\n }\n return s0;\n }\n function peg$parsenum() {\n var s0, s1, s2, s3;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f32(s1);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e30);\n }\n }\n return s0;\n }\n function peg$parsepct() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = [];\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n if (s5 !== peg$FAILED) {\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n }\n } else {\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n } else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$currPos;\n s5 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s6 = peg$c6;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n if (s6 !== peg$FAILED) {\n s7 = peg$currPos;\n s8 = [];\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s9 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s9 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n }\n s7 = input.substring(s7, peg$currPos);\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 === peg$FAILED) {\n s5 = null;\n }\n s4 = input.substring(s4, peg$currPos);\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c6;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$currPos;\n s5 = [];\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n if (peg$r1.test(input.charAt(peg$currPos))) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e31);\n }\n }\n }\n } else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s4 = input.substring(s4, peg$currPos);\n } else {\n s4 = s5;\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f33(s1);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e32);\n }\n }\n return s0;\n }\n function peg$parsediv() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$parsepct();\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e33);\n }\n }\n return s0;\n }\n function peg$parsedec() {\n var s0, s1, s2;\n s0 = peg$parsepct();\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 43) {\n s1 = peg$c10;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e27);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepct();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f34(s2);\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) === 45) {\n s1 = peg$c11;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e29);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepct();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f35(s2);\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 function peg$parseint() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseminus();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = peg$parsenum();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f36(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e34);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1;\n peg$silentFails++;\n s0 = [];\n if (peg$r2.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e36);\n }\n }\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$r2.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e36);\n }\n }\n }\n peg$silentFails--;\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e35);\n }\n return s0;\n }\n function peg$parsesp() {\n var s0, s1;\n s0 = [];\n if (peg$r2.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e36);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$r2.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e36);\n }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsehex() {\n var s0, s1;\n s0 = peg$currPos;\n if (peg$r3.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e37);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f37(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { body: peg$parsebody };\n var peg$startRuleFunction = peg$parsebody;\n var peg$e0 = peg$otherExpectation(\"decl_start\");\n var peg$e1 = peg$otherExpectation(\"decl_end\");\n var peg$e2 = peg$otherExpectation(\"vert\");\n var peg$e3 = peg$anyExpectation();\n var peg$e4 = peg$otherExpectation(\"l\");\n var peg$e5 = peg$otherExpectation(\"r\");\n var peg$e6 = peg$otherExpectation(\"c\");\n var peg$e7 = peg$otherExpectation(\"p\");\n var peg$e8 = peg$otherExpectation(\"m\");\n var peg$e9 = peg$otherExpectation(\"b\");\n var peg$e10 = peg$otherExpectation(\"w\");\n var peg$e11 = peg$otherExpectation(\"W\");\n var peg$e12 = peg$otherExpectation(\"X\");\n var peg$e13 = peg$otherExpectation(\"!\");\n var peg$e14 = peg$otherExpectation(\"@\");\n var peg$e15 = peg$otherExpectation(\"<\");\n var peg$e16 = peg$otherExpectation(\">\");\n var peg$e17 = peg$otherExpectation(\"group\");\n var peg$e18 = peg$otherExpectation(\"whitespace\");\n var peg$f0 = function(c) {\n return c;\n };\n var peg$f1 = function(cols) {\n return cols;\n };\n var peg$f2 = function() {\n return [];\n };\n var peg$f3 = function(divs1, start, a, end, divs2) {\n return {\n type: \"column\",\n pre_dividers: divs1,\n post_dividers: divs2,\n before_start_code: start,\n before_end_code: end,\n alignment: a\n };\n };\n var peg$f4 = function() {\n return {\n type: \"vert_divider\"\n };\n };\n var peg$f5 = function(b, g) {\n return {\n type: \"bang_divider\",\n content: g[0].content\n };\n };\n var peg$f6 = function(g) {\n return {\n type: \"at_divider\",\n content: g[0].content\n };\n };\n var peg$f7 = function(div) {\n return div;\n };\n var peg$f8 = function(g) {\n return { type: \"decl_code\", code: g[0].content };\n };\n var peg$f9 = function(g) {\n return { type: \"decl_code\", code: g[0].content };\n };\n var peg$f10 = function() {\n return { type: \"alignment\", alignment: \"left\" };\n };\n var peg$f11 = function() {\n return { type: \"alignment\", alignment: \"center\" };\n };\n var peg$f12 = function() {\n return { type: \"alignment\", alignment: \"right\" };\n };\n var peg$f13 = function() {\n return { type: \"alignment\", alignment: \"X\" };\n };\n var peg$f14 = function() {\n return \"top\";\n };\n var peg$f15 = function() {\n return \"default\";\n };\n var peg$f16 = function() {\n return \"bottom\";\n };\n var peg$f17 = function(a, g) {\n return {\n type: \"alignment\",\n alignment: \"parbox\",\n baseline: a,\n size: g[0].content\n };\n };\n var peg$f18 = function(g1, g2) {\n return {\n type: \"alignment\",\n alignment: \"parbox\",\n baseline: g1[0].content,\n size: g2[0].content\n };\n };\n var peg$f19 = function(tok) {\n return options.matchChar(tok, \"|\");\n };\n var peg$f20 = function(tok) {\n return options.matchChar(tok, \"l\");\n };\n var peg$f21 = function(tok) {\n return options.matchChar(tok, \"r\");\n };\n var peg$f22 = function(tok) {\n return options.matchChar(tok, \"c\");\n };\n var peg$f23 = function(tok) {\n return options.matchChar(tok, \"p\");\n };\n var peg$f24 = function(tok) {\n return options.matchChar(tok, \"m\");\n };\n var peg$f25 = function(tok) {\n return options.matchChar(tok, \"b\");\n };\n var peg$f26 = function(tok) {\n return options.matchChar(tok, \"w\");\n };\n var peg$f27 = function(tok) {\n return options.matchChar(tok, \"W\");\n };\n var peg$f28 = function(tok) {\n return options.matchChar(tok, \"X\");\n };\n var peg$f29 = function(tok) {\n return options.matchChar(tok, \"!\");\n };\n var peg$f30 = function(tok) {\n return options.matchChar(tok, \"@\");\n };\n var peg$f31 = function(tok) {\n return options.matchChar(tok, \"<\");\n };\n var peg$f32 = function(tok) {\n return options.matchChar(tok, \">\");\n };\n var peg$f33 = function(tok) {\n return options.isGroup(tok);\n };\n var peg$f34 = function(tok) {\n return options.isWhitespace(tok);\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsebody() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parsecolumn();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parse_();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parse_();\n }\n peg$savedPos = s2;\n s2 = peg$f0(s3);\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parsecolumn();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parse_();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parse_();\n }\n peg$savedPos = s2;\n s2 = peg$f0(s3);\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f1(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseEOL();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f2();\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsecolumn() {\n var s0, s1, s2, s3, s4, s5, s6;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsecolumn_divider();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsecolumn_divider();\n }\n s2 = peg$parsedecl_start();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n s3 = peg$parsealignment();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsedecl_end();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s5 = [];\n s6 = peg$parsecolumn_divider();\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parsecolumn_divider();\n }\n peg$savedPos = s0;\n s0 = peg$f3(s1, s2, s3, s4, s5);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecolumn_divider() {\n var s0, s1, s2, s3, s4;\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 s2 = peg$currPos;\n s3 = peg$parsevert();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s2;\n s3 = peg$f4();\n }\n s2 = s3;\n if (s2 === peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parsebang();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsegroup();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s2;\n s2 = peg$f5(s3, s4);\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 === peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$parseat();\n if (s3 !== peg$FAILED) {\n s4 = peg$parsegroup();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s2;\n s2 = peg$f6(s4);\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\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 peg$savedPos = s0;\n s0 = peg$f7(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedecl_start() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parsegreater();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsegroup();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f8(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n return s0;\n }\n function peg$parsedecl_end() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseless();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsegroup();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f9(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\n }\n return s0;\n }\n function peg$parsealignment() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = peg$parsel();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f10();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsec();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f11();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parser();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f12();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseX();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f13();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parsep();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s1;\n s2 = peg$f14();\n }\n s1 = s2;\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$parsem();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s1;\n s2 = peg$f15();\n }\n s1 = s2;\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$parseb();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s1;\n s2 = peg$f16();\n }\n s1 = s2;\n }\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 s3 = peg$parsegroup();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f17(s1, s3);\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$parsew();\n if (s1 === peg$FAILED) {\n s1 = peg$parseW();\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 s3 = peg$parsegroup();\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parse_();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parse_();\n }\n s5 = peg$parsegroup();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f18(s3, s5);\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 }\n return s0;\n }\n function peg$parsevert() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f19(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n return s0;\n }\n function peg$parsel() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f20(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n }\n return s0;\n }\n function peg$parser() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f21(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n return s0;\n }\n function peg$parsec() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f22(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e6);\n }\n }\n return s0;\n }\n function peg$parsep() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f23(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e7);\n }\n }\n return s0;\n }\n function peg$parsem() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f24(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e8);\n }\n }\n return s0;\n }\n function peg$parseb() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f25(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e9);\n }\n }\n return s0;\n }\n function peg$parsew() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f26(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e10);\n }\n }\n return s0;\n }\n function peg$parseW() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f27(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e11);\n }\n }\n return s0;\n }\n function peg$parseX() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f28(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e12);\n }\n }\n return s0;\n }\n function peg$parsebang() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f29(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e13);\n }\n }\n return s0;\n }\n function peg$parseat() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f30(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e14);\n }\n }\n return s0;\n }\n function peg$parseless() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f31(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e15);\n }\n }\n return s0;\n }\n function peg$parsegreater() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f32(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e16);\n }\n }\n return s0;\n }\n function peg$parsegroup() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f33(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e17);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f34(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = [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 peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e18);\n }\n }\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n if (!options.isHash) {\n try {\n Object.assign(options, {\n matchChar: (node, char) => node.type === \"string\" && node.content === char,\n isGroup: (node) => node.type === \"group\",\n isWhitespace: (node) => node.type === \"whitespace\"\n });\n } catch (e) {\n console.warn(\"Error when initializing parser\", e);\n }\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { body: peg$parsebody };\n var peg$startRuleFunction = peg$parsebody;\n var peg$e0 = peg$otherExpectation(\"partial item\");\n var peg$e1 = peg$otherExpectation(\"item\");\n var peg$e2 = peg$anyExpectation();\n var peg$e3 = peg$otherExpectation(\"equation\");\n var peg$e4 = peg$otherExpectation(\"trailing comment\");\n var peg$e5 = peg$otherExpectation(\"comment only line\");\n var peg$e6 = peg$otherExpectation(\"non-var token\");\n var peg$e7 = peg$otherExpectation(\"token\");\n var peg$e8 = peg$otherExpectation(\"same line comment\");\n var peg$e9 = peg$otherExpectation(\"own line comment\");\n var peg$e10 = peg$otherExpectation(\",\");\n var peg$e11 = peg$otherExpectation(\"@\");\n var peg$e12 = peg$otherExpectation(\"variable token\");\n var peg$e13 = peg$otherExpectation(\"+/-\");\n var peg$e14 = peg$otherExpectation(\"=\");\n var peg$f0 = function(a, b) {\n return a.concat(b ? b : []);\n };\n var peg$f1 = function() {\n return [];\n };\n var peg$f2 = function(a, b, c) {\n return a.concat(b, c);\n };\n var peg$f3 = function(op, a, b, c) {\n return { type: \"item\", op, variable: b, content: a.concat(b, c) };\n };\n var peg$f4 = function(op, a) {\n return { type: \"item\", op, variable: null, content: a };\n };\n var peg$f5 = function(line, sep, comment) {\n return { ...line, sep: [].concat(sep), trailingComment: comment };\n };\n var peg$f6 = function(line, comment) {\n return { ...line, trailingComment: comment };\n };\n var peg$f7 = function(eq, ann) {\n return {\n type: \"line\",\n equation: eq,\n annotation: ann,\n sep: null\n };\n };\n var peg$f8 = function(at, ann) {\n return at ? { type: \"annotation\", marker: at, content: ann } : null;\n };\n var peg$f9 = function(left, eq, right) {\n return { type: \"equation\", left, right, equals: eq };\n };\n var peg$f10 = function(x) {\n return x;\n };\n var peg$f11 = function(x) {\n return {\n type: \"line\",\n trailingComment: x\n };\n };\n var peg$f12 = function(v, s) {\n return [v].concat(s ? s : []);\n };\n var peg$f13 = function(t) {\n return t;\n };\n var peg$f14 = function(x) {\n return x;\n };\n var peg$f15 = function(x) {\n return x;\n };\n var peg$f16 = function(tok) {\n return options.isSameLineComment(tok);\n };\n var peg$f17 = function(tok) {\n return tok;\n };\n var peg$f18 = function(tok) {\n return options.isOwnLineComment(tok);\n };\n var peg$f19 = function(tok) {\n return tok;\n };\n var peg$f20 = function(tok) {\n return options.isWhitespace(tok);\n };\n var peg$f21 = function(tok) {\n return tok;\n };\n var peg$f22 = function(tok) {\n return options.isSep(tok);\n };\n var peg$f23 = function(tok) {\n return tok;\n };\n var peg$f24 = function(tok) {\n return options.isAt(tok);\n };\n var peg$f25 = function(tok) {\n return tok;\n };\n var peg$f26 = function(tok) {\n return options.isVar(tok);\n };\n var peg$f27 = function(tok) {\n return tok;\n };\n var peg$f28 = function(tok) {\n return options.isOperation(tok);\n };\n var peg$f29 = function(tok) {\n return tok;\n };\n var peg$f30 = function(tok) {\n return options.isEquals(tok);\n };\n var peg$f31 = function(tok) {\n return tok;\n };\n var peg$f32 = function(tok) {\n return options.isSubscript(tok);\n };\n var peg$f33 = function(tok) {\n return tok;\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsebody() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsecomment_only_line();\n if (s2 === peg$FAILED) {\n s2 = peg$parseline_with_sep();\n if (s2 === peg$FAILED) {\n s2 = peg$parsepartial_line_with_comment();\n }\n }\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsecomment_only_line();\n if (s2 === peg$FAILED) {\n s2 = peg$parseline_with_sep();\n if (s2 === peg$FAILED) {\n s2 = peg$parsepartial_line_with_comment();\n }\n }\n }\n s2 = peg$parseline_without_sep();\n if (s2 === peg$FAILED) {\n s2 = peg$parseEOL();\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f0(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseEOL();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f1();\n }\n s0 = s1;\n }\n return s0;\n }\n function peg$parsepartial_item() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n peg$silentFails++;\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 s2 = [];\n s3 = peg$parsenon_var_token();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsenon_var_token();\n }\n s3 = [];\n s4 = peg$parse_();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parse_();\n }\n s4 = peg$parsevar();\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 s6 = [];\n s7 = peg$parsetoken();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parsetoken();\n }\n s7 = [];\n s8 = peg$parse_();\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n s8 = peg$parse_();\n }\n peg$savedPos = s0;\n s0 = peg$f2(s2, s4, s6);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n return s0;\n }\n function peg$parseitem() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseoperation();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = [];\n s3 = peg$parse_();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parse_();\n }\n s3 = [];\n s4 = peg$parsenon_var_token();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenon_var_token();\n }\n s4 = [];\n s5 = peg$parse_();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parse_();\n }\n s5 = peg$parsevar();\n if (s5 !== peg$FAILED) {\n s6 = [];\n s7 = peg$parse_();\n while (s7 !== peg$FAILED) {\n s6.push(s7);\n s7 = peg$parse_();\n }\n s7 = [];\n s8 = peg$parsetoken();\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n s8 = peg$parsetoken();\n }\n s8 = [];\n s9 = peg$parse_();\n while (s9 !== peg$FAILED) {\n s8.push(s9);\n s9 = peg$parse_();\n }\n peg$savedPos = s0;\n s0 = peg$f3(s1, s3, s5, s7);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseoperation();\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n s2 = [];\n s3 = peg$parse_();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parse_();\n }\n s3 = [];\n s4 = peg$parsenon_var_token();\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenon_var_token();\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parse_();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parse_();\n }\n peg$savedPos = s0;\n s0 = peg$f4(s1, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\n }\n return s0;\n }\n function peg$parseline_with_sep() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parseline_without_sep();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsesep();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsetrailing_comment();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f5(s1, s2, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepartial_line_with_comment() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parseline_without_sep();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsetrailing_comment();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f6(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseline_without_sep() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\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) {\n peg$fail(peg$e2);\n }\n }\n peg$silentFails--;\n if (s2 !== peg$FAILED) {\n peg$currPos = s1;\n s1 = void 0;\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseequation();\n s3 = peg$parseannotation();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f7(s2, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseannotation() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parseat();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsenon_sep_token();\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsenon_sep_token();\n }\n peg$savedPos = s0;\n s0 = peg$f8(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseequation() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parseitem();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parseitem();\n }\n s2 = peg$parseequals();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n s3 = [];\n s4 = peg$parsetoken();\n if (s4 === peg$FAILED) {\n s4 = peg$parseoperation();\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsetoken();\n if (s4 === peg$FAILED) {\n s4 = peg$parseoperation();\n }\n }\n peg$savedPos = s0;\n s0 = peg$f9(s1, s2, s3);\n peg$silentFails--;\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n return s0;\n }\n function peg$parsetrailing_comment() {\n var s0, s1, s2;\n peg$silentFails++;\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 s2 = peg$parsesame_line_comment();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f10(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n }\n return s0;\n }\n function peg$parsecomment_only_line() {\n var s0, s1, s2;\n peg$silentFails++;\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 s2 = peg$parseown_line_comment();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f11(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n return s0;\n }\n function peg$parsevar() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$parsevar_token();\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 s3 = peg$parsesubscript();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n peg$savedPos = s0;\n s0 = peg$f12(s1, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsenon_var_token() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n s2 = peg$parsevar();\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 s2 = peg$parsetoken();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f13(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e6);\n }\n }\n return s0;\n }\n function peg$parsenon_sep_token() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n s2 = peg$parsesep();\n if (s2 === peg$FAILED) {\n s2 = peg$parsetrailing_comment();\n if (s2 === peg$FAILED) {\n s2 = peg$parseown_line_comment();\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) {\n peg$fail(peg$e2);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f14(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsetoken() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n peg$silentFails++;\n s2 = peg$parsesep();\n if (s2 === peg$FAILED) {\n s2 = peg$parseat();\n if (s2 === peg$FAILED) {\n s2 = peg$parseoperation();\n if (s2 === peg$FAILED) {\n s2 = peg$parseequals();\n if (s2 === peg$FAILED) {\n s2 = peg$parsetrailing_comment();\n if (s2 === peg$FAILED) {\n s2 = peg$parseown_line_comment();\n }\n }\n }\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) {\n peg$fail(peg$e2);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f15(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e7);\n }\n }\n return s0;\n }\n function peg$parsesame_line_comment() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f16(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f17(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e8);\n }\n }\n return s0;\n }\n function peg$parseown_line_comment() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f18(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f19(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e9);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f20(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f21(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesep() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f22(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f23(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e10);\n }\n }\n return s0;\n }\n function peg$parseat() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f24(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f25(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e11);\n }\n }\n return s0;\n }\n function peg$parsevar_token() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f26(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f27(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e12);\n }\n }\n return s0;\n }\n function peg$parseoperation() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\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 (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\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 peg$savedPos = peg$currPos;\n s4 = peg$f28(s2);\n if (s4) {\n s4 = void 0;\n } else {\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f29(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e13);\n }\n }\n return s0;\n }\n function peg$parseequals() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f30(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f31(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e14);\n }\n }\n return s0;\n }\n function peg$parsesubscript() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f32(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f33(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n if (!options.isWhitespace) {\n try {\n Object.assign(options, {\n isSep: (node) => node.type === \"string\" && node.content === \",\",\n isVar: (node) => node.type === \"string\" && node.content.match(/[a-zA-Z]/),\n isOperation: (node) => node.type === \"string\" && node.content.match(/[+-]/),\n isEquals: (node) => node.type === \"string\" && node.content === \"=\",\n isAt: (node) => node.type === \"string\" && node.content === \"@\",\n isSubscript: (node) => node.content === \"_\",\n isWhitespace: (node) => node.type === \"whitespace\",\n isSameLineComment: (node) => node.type === \"comment\" && node.sameline,\n isOwnLineComment: (node) => node.type === \"comment\" && !node.sameline\n });\n } catch (e) {\n console.warn(\"Error when initializing parser\", e);\n }\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { root: peg$parseroot };\n var peg$startRuleFunction = peg$parseroot;\n var peg$c0 = \"plus\";\n var peg$c1 = \"minus\";\n var peg$c2 = \"pt\";\n var peg$c3 = \"mm\";\n var peg$c4 = \"cm\";\n var peg$c5 = \"in\";\n var peg$c6 = \"ex\";\n var peg$c7 = \"em\";\n var peg$c8 = \"bp\";\n var peg$c9 = \"pc\";\n var peg$c10 = \"dd\";\n var peg$c11 = \"cc\";\n var peg$c12 = \"nd\";\n var peg$c13 = \"nc\";\n var peg$c14 = \"sp\";\n var peg$c15 = \"filll\";\n var peg$c16 = \"fill\";\n var peg$c17 = \"fil\";\n var peg$c18 = \".\";\n var peg$c19 = \"+\";\n var peg$c20 = \"-\";\n var peg$r0 = /^[0-9]/;\n var peg$e0 = peg$anyExpectation();\n var peg$e1 = peg$literalExpectation(\"plus\", false);\n var peg$e2 = peg$literalExpectation(\"minus\", false);\n var peg$e3 = peg$literalExpectation(\"pt\", false);\n var peg$e4 = peg$literalExpectation(\"mm\", false);\n var peg$e5 = peg$literalExpectation(\"cm\", false);\n var peg$e6 = peg$literalExpectation(\"in\", false);\n var peg$e7 = peg$literalExpectation(\"ex\", false);\n var peg$e8 = peg$literalExpectation(\"em\", false);\n var peg$e9 = peg$literalExpectation(\"bp\", false);\n var peg$e10 = peg$literalExpectation(\"pc\", false);\n var peg$e11 = peg$literalExpectation(\"dd\", false);\n var peg$e12 = peg$literalExpectation(\"cc\", false);\n var peg$e13 = peg$literalExpectation(\"nd\", false);\n var peg$e14 = peg$literalExpectation(\"nc\", false);\n var peg$e15 = peg$literalExpectation(\"sp\", false);\n var peg$e16 = peg$literalExpectation(\"filll\", false);\n var peg$e17 = peg$literalExpectation(\"fill\", false);\n var peg$e18 = peg$literalExpectation(\"fil\", false);\n var peg$e19 = peg$otherExpectation(\"number\");\n var peg$e20 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$e21 = peg$literalExpectation(\".\", false);\n var peg$e22 = peg$literalExpectation(\"+\", false);\n var peg$e23 = peg$literalExpectation(\"-\", false);\n var peg$f0 = function(b, st, sh) {\n return {\n type: \"glue\",\n fixed: b,\n stretchable: st,\n shrinkable: sh,\n position: location()\n };\n };\n var peg$f1 = function(glue) {\n return glue;\n };\n var peg$f2 = function(n, u) {\n return { type: \"dim\", value: n, unit: u };\n };\n var peg$f3 = function(n, u) {\n return { type: \"dim\", value: n, unit: u };\n };\n var peg$f4 = function(n, u) {\n return { type: \"dim\", value: n, unit: u };\n };\n var peg$f5 = function(n) {\n return parseFloat(n);\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parseroot() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$parsebase();\n if (s2 !== peg$FAILED) {\n s3 = peg$parsestretchable();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n s4 = peg$parseshrinkable();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n peg$savedPos = s1;\n s1 = peg$f0(s2, s3, s4);\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (input.length > peg$currPos) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n }\n peg$savedPos = s0;\n s0 = peg$f1(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsebase() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parsenumber();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseunit();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f2(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsestretchable() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 4) === peg$c0) {\n s1 = peg$c0;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n s3 = peg$parserubber_unit();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f3(s2, s3);\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 return s0;\n }\n function peg$parseshrinkable() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c1) {\n s1 = peg$c1;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumber();\n if (s2 !== peg$FAILED) {\n s3 = peg$parserubber_unit();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f4(s2, s3);\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 return s0;\n }\n function peg$parseunit() {\n var s0;\n if (input.substr(peg$currPos, 2) === peg$c2) {\n s0 = peg$c2;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c3) {\n s0 = peg$c3;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c4) {\n s0 = peg$c4;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c5) {\n s0 = peg$c5;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e6);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c6) {\n s0 = peg$c6;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e7);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c7) {\n s0 = peg$c7;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e8);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c8) {\n s0 = peg$c8;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e9);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c9) {\n s0 = peg$c9;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e10);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c10) {\n s0 = peg$c10;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e11);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c11) {\n s0 = peg$c11;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e12);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c12) {\n s0 = peg$c12;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e13);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c13) {\n s0 = peg$c13;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e14);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c14) {\n s0 = peg$c14;\n peg$currPos += 2;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e15);\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parserubber_unit() {\n var s0;\n s0 = peg$parseunit();\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 5) === peg$c15) {\n s0 = peg$c15;\n peg$currPos += 5;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e16);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c16) {\n s0 = peg$c16;\n peg$currPos += 4;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e17);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.substr(peg$currPos, 3) === peg$c17) {\n s0 = peg$c17;\n peg$currPos += 3;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e18);\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n s3 = peg$parsesign();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n s4 = peg$currPos;\n s5 = [];\n if (peg$r0.test(input.charAt(peg$currPos))) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e20);\n }\n }\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n if (peg$r0.test(input.charAt(peg$currPos))) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e20);\n }\n }\n }\n if (input.charCodeAt(peg$currPos) === 46) {\n s6 = peg$c18;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e21);\n }\n }\n if (s6 !== peg$FAILED) {\n s7 = [];\n if (peg$r0.test(input.charAt(peg$currPos))) {\n s8 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e20);\n }\n }\n if (s8 !== peg$FAILED) {\n while (s8 !== peg$FAILED) {\n s7.push(s8);\n if (peg$r0.test(input.charAt(peg$currPos))) {\n s8 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e20);\n }\n }\n }\n } else {\n s7 = peg$FAILED;\n }\n if (s7 !== peg$FAILED) {\n s5 = [s5, s6, s7];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 === peg$FAILED) {\n s4 = [];\n if (peg$r0.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e20);\n }\n }\n if (s5 !== peg$FAILED) {\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (peg$r0.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e20);\n }\n }\n }\n } else {\n s4 = peg$FAILED;\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f5(s1);\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e19);\n }\n }\n return s0;\n }\n function peg$parsesign() {\n var s0;\n if (input.charCodeAt(peg$currPos) === 43) {\n s0 = peg$c19;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e22);\n }\n }\n if (s0 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s0 = peg$c20;\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e23);\n }\n }\n }\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","export default (\n // Generated by Peggy 3.0.2.\n //\n // https://peggyjs.org/\n function() {\n \"use strict\";\n function peg$subclass(child, parent) {\n function C() {\n this.constructor = child;\n }\n C.prototype = parent.prototype;\n child.prototype = new C();\n }\n function peg$SyntaxError(message, expected, found, location) {\n var self = Error.call(this, message);\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(self, peg$SyntaxError.prototype);\n }\n self.expected = expected;\n self.found = found;\n self.location = location;\n self.name = \"SyntaxError\";\n return self;\n }\n peg$subclass(peg$SyntaxError, Error);\n function peg$padEnd(str, targetLength, padString) {\n padString = padString || \" \";\n if (str.length > targetLength) {\n return str;\n }\n targetLength -= str.length;\n padString += padString.repeat(targetLength);\n return str + padString.slice(0, targetLength);\n }\n peg$SyntaxError.prototype.format = function(sources) {\n var str = \"Error: \" + this.message;\n if (this.location) {\n var src = null;\n var k;\n for (k = 0; k < sources.length; k++) {\n if (sources[k].source === this.location.source) {\n src = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n break;\n }\n }\n var s = this.location.start;\n var offset_s = this.location.source && typeof this.location.source.offset === \"function\" ? this.location.source.offset(s) : s;\n var loc = this.location.source + \":\" + offset_s.line + \":\" + offset_s.column;\n if (src) {\n var e = this.location.end;\n var filler = peg$padEnd(\"\", offset_s.line.toString().length, \" \");\n var line = src[s.line - 1];\n var last = s.line === e.line ? e.column : line.length + 1;\n var hatLen = last - s.column || 1;\n str += \"\\n --> \" + loc + \"\\n\" + filler + \" |\\n\" + offset_s.line + \" | \" + line + \"\\n\" + filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") + peg$padEnd(\"\", hatLen, \"^\");\n } else {\n str += \"\\n at \" + loc;\n }\n }\n return str;\n };\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return '\"' + literalEscape(expectation.text) + '\"';\n },\n class: function(expectation) {\n var escapedParts = expectation.parts.map(function(part) {\n return Array.isArray(part) ? classEscape(part[0]) + \"-\" + classEscape(part[1]) : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts.join(\"\") + \"]\";\n },\n any: function() {\n return \"any character\";\n },\n end: function() {\n return \"end of input\";\n },\n other: function(expectation) {\n return expectation.description;\n }\n };\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function classEscape(s) {\n return s.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\]/g, \"\\\\]\").replace(/\\^/g, \"\\\\^\").replace(/-/g, \"\\\\-\").replace(/\\0/g, \"\\\\0\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x0F]/g, function(ch) {\n return \"\\\\x0\" + hex(ch);\n }).replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n return \"\\\\x\" + hex(ch);\n });\n }\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n function describeExpected(expected2) {\n var descriptions = expected2.map(describeExpectation);\n var i, j;\n descriptions.sort();\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 switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \") + \", or \" + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found2) {\n return found2 ? '\"' + literalEscape(found2) + '\"' : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n var peg$FAILED = {};\n var peg$source = options.grammarSource;\n var peg$startRuleFunctions = { path_spec: peg$parsepath_spec, foreach_body: peg$parseforeach_body };\n var peg$startRuleFunction = peg$parsepath_spec;\n var peg$e0 = peg$anyExpectation();\n var peg$e1 = peg$otherExpectation(\"same line comment\");\n var peg$e2 = peg$otherExpectation(\"own line comment\");\n var peg$e3 = peg$otherExpectation(\"comment\");\n var peg$e4 = peg$otherExpectation(\"floating comment\");\n var peg$e5 = peg$otherExpectation(\"operation\");\n var peg$e6 = peg$otherExpectation(\"=\");\n var peg$f0 = function(v) {\n return v;\n };\n var peg$f1 = function(ops) {\n return { type: \"path_spec\", content: ops };\n };\n var peg$f2 = function(c1, op, comment) {\n return { op, comment };\n };\n var peg$f3 = function(c1, ops, c2, body) {\n const comments = [c1, ...ops.map((x) => x.comment), c2].filter(\n (x) => x\n );\n const attribute = ops.map((x) => x.op.content.content).join(\" \");\n return {\n type: \"animation\",\n comments,\n attribute,\n content: body.content\n };\n };\n var peg$f4 = function(start, b) {\n return { ...b, start, type: \"foreach\" };\n };\n var peg$f5 = function(c1, variables, options2, c2, c3, list, c4, command) {\n const comments = [c1, c2, c3, c4].filter((x) => x);\n return {\n type: \"foreach_body\",\n variables,\n options: options2 && options2.content,\n list,\n command,\n comments\n };\n };\n var peg$f6 = function(c1, options2, c2, body) {\n const comments = [c1, c2].filter((x) => x);\n return {\n type: \"svg_operation\",\n options: options2 && options2.content,\n content: body,\n comments\n };\n };\n var peg$f7 = function(c1, c2, coord, c3, c4, x) {\n return { coord: x, comment: c4 };\n };\n var peg$f8 = function(c1, c2, coord, c3, a, c5) {\n const comments = [c1, c2, c3, a && a.comment, c5].filter((x) => x);\n return {\n type: \"curve_to\",\n controls: a ? [coord, a.coord] : [coord],\n comments\n };\n };\n var peg$f9 = function() {\n return { type: \"line_to\", command: \"|-\" };\n };\n var peg$f10 = function() {\n return { type: \"line_to\", command: \"-|\" };\n };\n var peg$f11 = function() {\n return { type: \"line_to\", command: \"--\" };\n };\n var peg$f12 = function(prefix, content) {\n return { type: \"coordinate\", content, prefix };\n };\n var peg$f13 = function(content) {\n return { type: \"square_brace_group\", content };\n };\n var peg$f14 = function(v) {\n return { type: \"unknown\", content: v };\n };\n var peg$f15 = function(tok) {\n return options.isSameLineComment(tok);\n };\n var peg$f16 = function(tok) {\n return tok;\n };\n var peg$f17 = function(tok) {\n return options.isOwnLineComment(tok);\n };\n var peg$f18 = function(tok) {\n return tok;\n };\n var peg$f19 = function(tok) {\n return options.isComment(tok);\n };\n var peg$f20 = function(tok) {\n return tok;\n };\n var peg$f21 = function(tok) {\n return options.isWhitespace(tok);\n };\n var peg$f22 = function(tok) {\n return tok;\n };\n var peg$f23 = function(c) {\n return c;\n };\n var peg$f24 = function(tok) {\n return options.isOperation(tok);\n };\n var peg$f25 = function(tok) {\n return { type: \"operation\", content: tok };\n };\n var peg$f26 = function(tok) {\n return options.isChar(tok, \"=\");\n };\n var peg$f27 = function(tok) {\n return tok;\n };\n var peg$f28 = function(tok) {\n return options.isChar(tok, \"[\");\n };\n var peg$f29 = function(tok) {\n return tok;\n };\n var peg$f30 = function(tok) {\n return options.isChar(tok, \"]\");\n };\n var peg$f31 = function(tok) {\n return tok;\n };\n var peg$f32 = function(tok) {\n return options.isChar(tok, \"(\");\n };\n var peg$f33 = function(tok) {\n return tok;\n };\n var peg$f34 = function(tok) {\n return options.isChar(tok, \")\");\n };\n var peg$f35 = function(tok) {\n return tok;\n };\n var peg$f36 = function(tok) {\n return options.isChar(tok, \"+\");\n };\n var peg$f37 = function(tok) {\n return tok;\n };\n var peg$f38 = function(tok) {\n return options.isChar(tok, \"-\");\n };\n var peg$f39 = function(tok) {\n return tok;\n };\n var peg$f40 = function(tok) {\n return options.isChar(tok, \"|\");\n };\n var peg$f41 = function(tok) {\n return tok;\n };\n var peg$f42 = function(tok) {\n return options.isChar(tok, \".\");\n };\n var peg$f43 = function(tok) {\n return tok;\n };\n var peg$f44 = function(tok) {\n return options.isChar(tok, \"controls\");\n };\n var peg$f45 = function(tok) {\n return tok;\n };\n var peg$f46 = function(tok) {\n return options.isChar(tok, \"and\");\n };\n var peg$f47 = function(tok) {\n return tok;\n };\n var peg$f48 = function(tok) {\n return options.isChar(tok, \"svg\");\n };\n var peg$f49 = function(tok) {\n return tok;\n };\n var peg$f50 = function(tok) {\n return options.isGroup(tok);\n };\n var peg$f51 = function(tok) {\n return tok;\n };\n var peg$f52 = function(tok) {\n return options.isAnyMacro(tok);\n };\n var peg$f53 = function(tok) {\n return tok;\n };\n var peg$f54 = function(tok) {\n return options.isChar(tok, \"foreach\");\n };\n var peg$f55 = function(tok) {\n return tok;\n };\n var peg$f56 = function(tok) {\n return options.isMacro(tok, \"foreach\");\n };\n var peg$f57 = function(tok) {\n return tok;\n };\n var peg$f58 = function(tok) {\n return options.isChar(tok, \"in\");\n };\n var peg$f59 = function(tok) {\n return tok;\n };\n var peg$f60 = function(tok) {\n return options.isChar(tok, \":\");\n };\n var peg$f61 = function(tok) {\n return tok;\n };\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\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 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function offset() {\n return peg$savedPos;\n }\n function range() {\n return {\n source: peg$source,\n start: peg$savedPos,\n end: peg$currPos\n };\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location2\n );\n }\n function error(message, location2) {\n location2 = location2 !== void 0 ? location2 : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location2);\n }\n function peg$literalExpectation(text2, ignoreCase) {\n return { type: \"literal\", text: text2, ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts, inverted, ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\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 p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos, offset2) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n var res = {\n source: peg$source,\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 if (offset2 && peg$source && typeof peg$source.offset === \"function\") {\n res.start = peg$source.offset(res.start);\n res.end = peg$source.offset(res.end);\n }\n return res;\n }\n function peg$fail(expected2) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected2);\n }\n function peg$buildSimpleError(message, location2) {\n return new peg$SyntaxError(message, null, null, location2);\n }\n function peg$buildStructuredError(expected2, found, location2) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected2, found),\n expected2,\n found,\n location2\n );\n }\n function peg$parsepath_spec() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parsesquare_brace_group();\n if (s3 === peg$FAILED) {\n s3 = peg$parsecoordinate();\n if (s3 === peg$FAILED) {\n s3 = peg$parsecurve_to();\n if (s3 === peg$FAILED) {\n s3 = peg$parseline_to();\n if (s3 === peg$FAILED) {\n s3 = peg$parsesvg();\n if (s3 === peg$FAILED) {\n s3 = peg$parseforeach();\n if (s3 === peg$FAILED) {\n s3 = peg$parseoperation();\n if (s3 === peg$FAILED) {\n s3 = peg$parsecomment();\n if (s3 === peg$FAILED) {\n s3 = peg$parseanimation();\n if (s3 === peg$FAILED) {\n s3 = peg$parseunknown();\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parse_();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parse_();\n }\n peg$savedPos = s2;\n s2 = peg$f0(s3);\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parsesquare_brace_group();\n if (s3 === peg$FAILED) {\n s3 = peg$parsecoordinate();\n if (s3 === peg$FAILED) {\n s3 = peg$parsecurve_to();\n if (s3 === peg$FAILED) {\n s3 = peg$parseline_to();\n if (s3 === peg$FAILED) {\n s3 = peg$parsesvg();\n if (s3 === peg$FAILED) {\n s3 = peg$parseforeach();\n if (s3 === peg$FAILED) {\n s3 = peg$parseoperation();\n if (s3 === peg$FAILED) {\n s3 = peg$parsecomment();\n if (s3 === peg$FAILED) {\n s3 = peg$parseanimation();\n if (s3 === peg$FAILED) {\n s3 = peg$parseunknown();\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parse_();\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parse_();\n }\n peg$savedPos = s2;\n s2 = peg$f0(s3);\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f1(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseanimation() {\n var s0, s1, s2, s3, s4, s5, s6;\n s0 = peg$currPos;\n s1 = peg$parsecolon();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_comment_();\n s3 = [];\n s4 = peg$currPos;\n s5 = peg$parseoperation();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_comment_();\n peg$savedPos = s4;\n s4 = peg$f2(s2, s5, s6);\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n s5 = peg$parseoperation();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_comment_();\n peg$savedPos = s4;\n s4 = peg$f2(s2, s5, s6);\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n } else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parseequals();\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_comment_();\n s6 = peg$parsegroup();\n if (s6 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f3(s2, s3, s5, s6);\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 return s0;\n }\n function peg$parseforeach() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parseforeach_keyword();\n if (s1 === peg$FAILED) {\n s1 = peg$parseforeach_macro();\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseforeach_body();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f4(s1, s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseforeach_body() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n s0 = peg$currPos;\n s1 = peg$parse_comment_();\n s2 = peg$currPos;\n s3 = [];\n s4 = peg$currPos;\n s5 = peg$currPos;\n peg$silentFails++;\n s6 = peg$parsein_keyword();\n if (s6 === peg$FAILED) {\n s6 = peg$parsesquare_brace_group();\n }\n peg$silentFails--;\n if (s6 === peg$FAILED) {\n s5 = void 0;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n s5 = peg$currPos;\n peg$silentFails++;\n s6 = peg$parsein_keyword();\n if (s6 === peg$FAILED) {\n s6 = peg$parsesquare_brace_group();\n }\n peg$silentFails--;\n if (s6 === peg$FAILED) {\n s5 = void 0;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n s2 = input.substring(s2, peg$currPos);\n s3 = peg$parsesquare_brace_group();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n s4 = peg$parse_comment_();\n s5 = peg$parsein_keyword();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_comment_();\n s7 = peg$parsegroup();\n if (s7 === peg$FAILED) {\n s7 = peg$parsemacro();\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_comment_();\n s9 = peg$parseforeach();\n if (s9 === peg$FAILED) {\n s9 = peg$parsegroup();\n if (s9 === peg$FAILED) {\n s9 = peg$parsemacro();\n }\n }\n if (s9 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f5(s1, s2, s3, s4, s6, s7, s8, s9);\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 return s0;\n }\n function peg$parsesvg() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = peg$parsesvg_keyword();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_comment_();\n s3 = peg$parsesquare_brace_group();\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n s4 = peg$parse_comment_();\n s5 = peg$parsegroup();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f6(s2, s3, s4, s5);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecurve_to() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;\n s0 = peg$currPos;\n s1 = peg$parsedotdot();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_comment_();\n s3 = peg$parsecontrols_keyword();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_comment_();\n s5 = peg$parsecoordinate();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_comment_();\n s7 = peg$currPos;\n s8 = peg$parseand_keyword();\n if (s8 !== peg$FAILED) {\n s9 = peg$parse_comment_();\n s10 = peg$parsecoordinate();\n if (s10 !== peg$FAILED) {\n peg$savedPos = s7;\n s7 = peg$f7(s2, s4, s5, s6, s9, s10);\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n } else {\n peg$currPos = s7;\n s7 = peg$FAILED;\n }\n if (s7 === peg$FAILED) {\n s7 = null;\n }\n s8 = peg$parse_comment_();\n s9 = peg$parsedotdot();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f8(s2, s4, s5, s6, s7, s8);\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 return s0;\n }\n function peg$parseline_to() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parsepipe();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseminus();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f9();\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$parseminus();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepipe();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f10();\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$parseminus();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseminus();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f11();\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 function peg$parsecoordinate() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = peg$currPos;\n s3 = peg$parseplus();\n if (s3 !== peg$FAILED) {\n s4 = peg$parseplus();\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n s1 = input.substring(s1, peg$currPos);\n s2 = peg$parseopen_paren();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n s5 = peg$currPos;\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$parseclose_paren();\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s7 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$currPos;\n s6 = peg$currPos;\n peg$silentFails++;\n s7 = peg$parseclose_paren();\n peg$silentFails--;\n if (s7 === peg$FAILED) {\n s6 = void 0;\n } else {\n peg$currPos = s6;\n s6 = peg$FAILED;\n }\n if (s6 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s7 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s7 !== peg$FAILED) {\n s6 = [s6, s7];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n }\n s3 = input.substring(s3, peg$currPos);\n s4 = peg$parseclose_paren();\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f12(s1, s3);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesquare_brace_group() {\n var s0, s1, s2, s3, s4, s5, s6;\n s0 = peg$currPos;\n s1 = peg$parseopen_square_brace();\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = [];\n s4 = peg$currPos;\n s5 = peg$currPos;\n peg$silentFails++;\n s6 = peg$parseclose_square_brace();\n peg$silentFails--;\n if (s6 === peg$FAILED) {\n s5 = void 0;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$currPos;\n s5 = peg$currPos;\n peg$silentFails++;\n s6 = peg$parseclose_square_brace();\n peg$silentFails--;\n if (s6 === peg$FAILED) {\n s5 = void 0;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s6 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s6 !== peg$FAILED) {\n s5 = [s5, s6];\n s4 = s5;\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n } else {\n peg$currPos = s4;\n s4 = peg$FAILED;\n }\n }\n s2 = input.substring(s2, peg$currPos);\n s3 = peg$parseclose_square_brace();\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f13(s2);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedotdot() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = peg$parsedot();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedot();\n if (s2 !== peg$FAILED) {\n s1 = [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 return s0;\n }\n function peg$parseunknown() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$f14(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsesame_line_comment() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f15(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f16(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e1);\n }\n }\n return s0;\n }\n function peg$parseown_line_comment() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f17(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f18(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e2);\n }\n }\n return s0;\n }\n function peg$parsecomment() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f19(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f20(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e3);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f21(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f22(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parse_comment_() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\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 s2 = peg$parsecomment();\n if (s2 === peg$FAILED) {\n s2 = null;\n }\n s3 = [];\n s4 = peg$parse_();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parse_();\n }\n peg$savedPos = s0;\n s0 = peg$f23(s2);\n peg$silentFails--;\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e4);\n }\n return s0;\n }\n function peg$parseoperation() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f24(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f25(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e5);\n }\n }\n return s0;\n }\n function peg$parseequals() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f26(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f27(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e6);\n }\n }\n return s0;\n }\n function peg$parseopen_square_brace() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f28(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f29(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseclose_square_brace() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f30(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f31(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseopen_paren() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f32(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f33(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseclose_paren() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f34(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f35(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseplus() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f36(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f37(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseminus() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f38(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f39(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepipe() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f40(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f41(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedot() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f42(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f43(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecontrols_keyword() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f44(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f45(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseand_keyword() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f46(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f47(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesvg_keyword() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f48(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f49(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsegroup() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f50(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f51(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsemacro() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f52(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f53(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseforeach_keyword() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f54(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f55(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseforeach_macro() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f56(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f57(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsein_keyword() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f58(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f59(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsecolon() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s2 = peg$f60(s1);\n if (s2) {\n s2 = void 0;\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s0 = peg$f61(s1);\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseEOL() {\n var s0, s1;\n s0 = peg$currPos;\n peg$silentFails++;\n if (input.length > peg$currPos) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$e0);\n }\n }\n peg$silentFails--;\n if (s1 === peg$FAILED) {\n s0 = void 0;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n if (!options.isWhitespace) {\n try {\n Object.assign(options, {\n isChar: (node, char) => node.type === \"string\" && node.content === char,\n isOperation: (node) => node.type === \"string\" && node.content.match(/[a-zA-Z]/),\n isWhitespace: (node) => node.type === \"whitespace\" || node.type === \"parbreak\",\n isSameLineComment: (node) => node.type === \"comment\" && node.sameline,\n isOwnLineComment: (node) => node.type === \"comment\" && !node.sameline,\n isComment: (node) => node.type === \"comment\",\n isGroup: (node) => node.type === \"group\",\n isMacro: (node, name) => node.type === \"macro\" && node.content === name,\n isAnyMacro: (node) => node.type === \"macro\"\n });\n } catch (e) {\n console.warn(\"Error when initializing parser\", e);\n }\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n }()\n);\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n// This file needs to be here because typescript does not know how to use babel's transpiler\n// to directly load Pegjs grammars.\n// @ts-nocheck\nimport _LatexPegParser from \"../grammars/latex.pegjs\";\nimport _AlignEnvironmentPegParser from \"../grammars/align-environment.pegjs\";\nimport _ArgSpecPegParser from \"../grammars/xparse-argspec.pegjs\";\nimport _PgfkeysPegParser from \"../grammars/pgfkeys.pegjs\";\nimport _MacroSubstitutionPegParser from \"../grammars/macro-substitutions.pegjs\";\nimport _LigaturesPegParser from \"../grammars/ligatures.pegjs\";\nimport _XColorPegParser from \"../grammars/xcolor-expressions.pegjs\";\nimport _TabularPegParser from \"../grammars/tabular-spec.pegjs\";\nimport _SystemePegParser from \"../grammars/systeme-environment.pegjs\";\nimport _GluePegParser from \"../grammars/tex-glue.pegjs\";\nimport _TikzPegParser from \"../grammars/tikz.pegjs\";\n\ntype PegParser = {\n parse: (input: string | unknown[], options?: unknown) => any;\n SyntaxError: (\n message: string,\n expected: string,\n found: unknown,\n location: unknown\n ) => unknown;\n};\n\nconst LatexPegParser = _LatexPegParser as PegParser;\nconst AlignEnvironmentPegParser = _AlignEnvironmentPegParser as PegParser;\nconst ArgSpecPegParser = _ArgSpecPegParser as PegParser;\nconst PgfkeysPegParser = _PgfkeysPegParser as PegParser;\nconst MacroSubstitutionPegParser = _MacroSubstitutionPegParser as PegParser;\nconst LigaturesPegParser = _LigaturesPegParser as PegParser;\nconst XColorPegParser = _XColorPegParser as PegParser;\nconst TabularPegParser = _TabularPegParser as PegParser;\nconst SystemePegParser = _SystemePegParser as PegParser;\nconst GluePegParser = _GluePegParser as PegParser;\nconst TikzPegParser = _TikzPegParser as PegParser;\n\nexport {\n LatexPegParser,\n AlignEnvironmentPegParser,\n ArgSpecPegParser,\n PgfkeysPegParser,\n MacroSubstitutionPegParser,\n LigaturesPegParser,\n XColorPegParser,\n TabularPegParser,\n SystemePegParser,\n GluePegParser,\n TikzPegParser,\n};\n"],"names":["match"],"mappings":"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"}