/** * Copyright (C) 2014-2016 Triumph LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ "use strict" /** * Auto-generated GLSL parser */ b4w.module["__gpp_parser"] = function(exports, require) { exports.parser = (function() { /* * Generated by PEG.js 0.8.0. * * http://pegjs.org/ */ function peg$subclass(child, parent) { function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); } function peg$SyntaxError(message, expected, found, offset, line, column) { this.message = message; this.expected = expected; this.found = found; this.offset = offset; this.line = line; this.column = column; this.name = "SyntaxError"; } peg$subclass(peg$SyntaxError, Error); function peg$parse(input) { var options = arguments.length > 1 ? arguments[1] : {}, parser = this, peg$FAILED = {}, peg$startRuleFunctions = { start: peg$parsestart }, peg$startRuleFunction = peg$parsestart, peg$c0 = function(group) { return group; }, peg$c1 = function(parts) { return { TYPE: "grp", PARTS: parts !== null ? parts : [] }; }, peg$c2 = function(head, tail) { var result = [head]; for (var i = 0; i < tail.length; i++) { result.push(tail[i][1]); } return result; }, peg$c3 = function(ifgroup, elifgroups, elsegroup) { var parts = [ifgroup]; for (var i = 0; i < elifgroups.length; i++) parts.push(elifgroups[i]); if (elsegroup !== null) parts.push(elsegroup) return { TYPE: "cond", PARTS:parts } }, peg$c4 = "#", peg$c5 = { type: "literal", value: "#", description: "\"#\"" }, peg$c6 = "if", peg$c7 = { type: "literal", value: "if", description: "\"if\"" }, peg$c8 = function(expression, group) { return { TYPE: "if", EXPRESSION: expression, GROUP: group }; }, peg$c9 = "ifdef", peg$c10 = { type: "literal", value: "ifdef", description: "\"ifdef\"" }, peg$c11 = function(name, group) { return { TYPE: "ifdef", NAME: name, GROUP: group }; }, peg$c12 = "ifndef", peg$c13 = { type: "literal", value: "ifndef", description: "\"ifndef\"" }, peg$c14 = function(name, group) { return { TYPE: "ifndef", NAME: name, GROUP: group }; }, peg$c15 = "elif", peg$c16 = { type: "literal", value: "elif", description: "\"elif\"" }, peg$c17 = function(expression, group) { return { TYPE: "elif", EXPRESSION: expression, GROUP: group }; }, peg$c18 = "else", peg$c19 = { type: "literal", value: "else", description: "\"else\"" }, peg$c20 = function(group) { return { TYPE: "else", GROUP: group }; }, peg$c21 = "endif", peg$c22 = { type: "literal", value: "endif", description: "\"endif\"" }, peg$c23 = "include", peg$c24 = { type: "literal", value: "include", description: "\"include\"" }, peg$c25 = function(file) { return { TYPE: "include", FILE: file }; }, peg$c26 = "define", peg$c27 = { type: "literal", value: "define", description: "\"define\"" }, peg$c28 = "var", peg$c29 = { type: "literal", value: "var", description: "\"var\"" }, peg$c30 = function(type, name, toks) { var tokens = []; if (toks === null) tokens.push(""); else for (var i = 0; i < toks[1].length; i++) tokens.push(toks[1][i]); return { TYPE: type, NAME: name, TOKENS: tokens }; }, peg$c31 = "error", peg$c32 = { type: "literal", value: "error", description: "\"error\"" }, peg$c33 = function(toks) { var tokens = []; if (toks !== null) for (var i = 0; i < toks[1].length; i++) tokens.push(toks[1][i]); return { TYPE: "error", TOKENS: tokens }; }, peg$c34 = "line", peg$c35 = { type: "literal", value: "line", description: "\"line\"" }, peg$c36 = function(tokens) { return { TYPE: "line", TOKENS: tokens }; }, peg$c37 = "pragma", peg$c38 = { type: "literal", value: "pragma", description: "\"pragma\"" }, peg$c39 = function(name, tokens) { return { TYPE: "pragma", NAME: name, TOKENS: tokens }; }, peg$c40 = "undef", peg$c41 = { type: "literal", value: "undef", description: "\"undef\"" }, peg$c42 = function(name) { return { TYPE: "undef", NAME: name }; }, peg$c43 = "warning", peg$c44 = { type: "literal", value: "warning", description: "\"warning\"" }, peg$c45 = function(toks) { var tokens = []; if (toks !== null) for (var i = 0; i < toks[1].length; i++) tokens.push(toks[1][i]); return { TYPE: "warning", TOKENS: tokens }; }, peg$c46 = "extension", peg$c47 = { type: "literal", value: "extension", description: "\"extension\"" }, peg$c48 = function(toks) { var tokens = []; if (toks !== null) for (var i = 0; i < toks[1].length; i++) tokens.push(toks[1][i]); return { TYPE: "extension", TOKENS: tokens } }, peg$c49 = "version", peg$c50 = { type: "literal", value: "version", description: "\"version\"" }, peg$c51 = function(version) { var tokens = []; if (version !== null) tokens.push(version); return { TYPE: "version", TOKENS: tokens } }, peg$c52 = function() { return { TYPE: "#" }; }, peg$c53 = function(nodegroup) { return nodegroup; }, peg$c54 = "node", peg$c55 = { type: "literal", value: "node", description: "\"node\"" }, peg$c56 = function(name, vars, decl, stat) { var node_vars = []; for (var i = 0; i < vars.length; i++) node_vars.push(vars[i][0]); var declarations = []; for (var i = 0; i < decl.length; i++) declarations.push(decl[i][0]); var statements = []; for (var i = 0; i < stat.length; i++) statements.push(stat[i][0]); return { TYPE: "node", NAME: name, NODE_VARS: node_vars, DECLARATIONS: declarations, STATEMENTS: statements }; }, peg$c57 = "endnode", peg$c58 = { type: "literal", value: "endnode", description: "\"endnode\"" }, peg$c59 = "node_var", peg$c60 = { type: "literal", value: "node_var", description: "\"node_var\"" }, peg$c61 = function(name, toks) { var tokens = []; if (toks === null) tokens.push(""); else for (var i = 0; i < toks[1].length; i++) tokens.push(toks[1][i]); return { TYPE: "node_var", NAME: name, TOKENS: tokens }; }, peg$c62 = function(ifgroup, elifgroups, elsegroup) { var parts = [ifgroup]; for (var i = 0; i < elifgroups.length; i++) parts.push(elifgroups[i]); if (elsegroup !== null) parts.push(elsegroup) return { TYPE: "node_cond", PARTS: parts } }, peg$c63 = "node_if", peg$c64 = { type: "literal", value: "node_if", description: "\"node_if\"" }, peg$c65 = function(expression, stat) { var statements = []; for (var i = 0; i < stat.length; i++) statements.push(stat[i][0]); return { TYPE: "node_if", EXPRESSION: expression, STATEMENTS: statements }; }, peg$c66 = "node_ifdef", peg$c67 = { type: "literal", value: "node_ifdef", description: "\"node_ifdef\"" }, peg$c68 = function(name, stat) { var statements = []; for (var i = 0; i < stat.length; i++) statements.push(stat[i][0]); return { TYPE: "node_ifdef", NAME: name, STATEMENTS: statements }; }, peg$c69 = "node_ifndef", peg$c70 = { type: "literal", value: "node_ifndef", description: "\"node_ifndef\"" }, peg$c71 = function(name, stat) { var statements = []; for (var i = 0; i < stat.length; i++) statements.push(stat[i][0]); return { TYPE: "node_ifndef", NAME: name, STATEMENTS: statements }; }, peg$c72 = "node_elif", peg$c73 = { type: "literal", value: "node_elif", description: "\"node_elif\"" }, peg$c74 = function(expression, stat) { var statements = []; for (var i = 0; i < stat.length; i++) statements.push(stat[i][0]); return { TYPE: "node_elif", EXPRESSION: expression, STATEMENTS: statements }; }, peg$c75 = "node_else", peg$c76 = { type: "literal", value: "node_else", description: "\"node_else\"" }, peg$c77 = function(stat) { var statements = []; for (var i = 0; i < stat.length; i++) statements.push(stat[i][0]); return { TYPE: "node_else", STATEMENTS: statements }; }, peg$c78 = "node_endif", peg$c79 = { type: "literal", value: "node_endif", description: "\"node_endif\"" }, peg$c80 = "node_in", peg$c81 = { type: "literal", value: "node_in", description: "\"node_in\"" }, peg$c82 = "optional", peg$c83 = { type: "literal", value: "optional", description: "\"optional\"" }, peg$c84 = function(opt, toks) { var tokens = []; if (toks !== null) for (var i = 0; i < toks[1].length; i++) tokens.push(toks[1][i]); var last = tokens.pop(); return { TYPE: "node_in", NAME: last, QUALIFIER:tokens, IS_OPTIONAL: Boolean(opt) }; }, peg$c85 = "node_out", peg$c86 = { type: "literal", value: "node_out", description: "\"node_out\"" }, peg$c87 = function(opt, toks) { var tokens = []; if (toks !== null) for (var i = 0; i < toks[1].length; i++) tokens.push(toks[1][i]); var last = tokens.pop(); return { TYPE: "node_out", NAME: last, QUALIFIER:tokens, IS_OPTIONAL: Boolean(opt) }; }, peg$c88 = "node_param", peg$c89 = { type: "literal", value: "node_param", description: "\"node_param\"" }, peg$c90 = function(opt, toks) { var tokens = []; if (toks !== null) for (var i = 0; i < toks[1].length; i++) tokens.push(toks[1][i]); var last = tokens.pop(); return { TYPE: "node_param", NAME: last, QUALIFIER: tokens, IS_OPTIONAL: Boolean(opt) }; }, peg$c91 = "nodes_global", peg$c92 = { type: "literal", value: "nodes_global", description: "\"nodes_global\"" }, peg$c93 = function() { return { TYPE: "nodes_global" } }, peg$c94 = "nodes_main", peg$c95 = { type: "literal", value: "nodes_main", description: "\"nodes_main\"" }, peg$c96 = function() { return { TYPE: "nodes_main" } }, peg$c97 = function(tokens) { return { TYPE: "txt", TOKENS: tokens } }, peg$c98 = ",", peg$c99 = { type: "literal", value: ",", description: "\",\"" }, peg$c100 = function(head, tail) { if (tail.length == 0) return head; else return tail[tail.length-1]; }, peg$c101 = "?", peg$c102 = { type: "literal", value: "?", description: "\"?\"" }, peg$c103 = ":", peg$c104 = { type: "literal", value: ":", description: "\":\"" }, peg$c105 = function(condition, trueExpression, falseExpression) { var result = condition; var op = { TYPE: "conditional_expr", PLACES: 3 } result.push.apply(result, trueExpression); result.push.apply(result, falseExpression); result.push(op); return result; }, peg$c106 = function(head, tail) { var result = head; if (tail.length) { var op = { TYPE: "logical_or_expr", PLACES: tail.length + 1 } for (var i = 0; i < tail.length; i++) result.push.apply(result, tail[i][3]); result.push(op); } return result; }, peg$c107 = function(head, tail) { var result = head; if (tail.length) { var op = { TYPE: "logical_and_expr", PLACES: tail.length + 1 } for (var i = 0; i < tail.length; i++) result.push.apply(result, tail[i][3]); result.push(op); } return result; }, peg$c108 = function(head, tail) { var result = head; if (tail.length) { var op = { TYPE: "logical_bitor_expr", PLACES: tail.length + 1 } for (var i = 0; i < tail.length; i++) result.push.apply(result, tail[i][3]); result.push(op); } return result; }, peg$c109 = function(head, tail) { var result = head; if (tail.length) { var op = { TYPE: "logical_bitxor_expr", PLACES: tail.length + 1 } for (var i = 0; i < tail.length; i++) result.push.apply(result, tail[i][3]); result.push(op); } return result; }, peg$c110 = function(head, tail) { var result = head; if (tail.length) { var op = { TYPE: "logical_bitand_expr", PLACES: tail.length + 1 } for (var i = 0; i < tail.length; i++) result.push.apply(result, tail[i][3]); result.push(op); } return result; }, peg$c111 = function(head, tail) { var result = head; for (var i = 0; i < tail.length; i++) { switch (tail[i][1]) { case "==": var op = { TYPE: "equal_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; case "!=": var op = { TYPE: "non_equal_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; } } return result; }, peg$c112 = function(head, tail) { var result = head; for (var i = 0; i < tail.length; i++) { switch (tail[i][1]) { case "<=": var op = { TYPE: "le_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; case ">=": var op = { TYPE: "ge_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; case "<": var op = { TYPE: "l_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; case ">": var op = { TYPE: "g_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; } } return result; }, peg$c113 = function(head, tail) { var result = head; for (var i = 0; i < tail.length; i++) { switch (tail[i][1]) { case "<<": var op = { TYPE: "left_shift_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; case ">>": var op = { TYPE: "right_shift_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; } } return result; }, peg$c114 = function(head, tail) { var result = head; for (var i = 0; i < tail.length; i++) { switch (tail[i][1]) { case "+": var op = { TYPE: "add_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; case "-": var op = { TYPE: "sub_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; } } return result; }, peg$c115 = function(head, tail) { var result = head; for (var i = 0; i < tail.length; i++) { switch (tail[i][1]) { case "*": var op = { TYPE: "mul_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; case "/": var op = { TYPE: "div_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; case "%": var op = { TYPE: "mod_expr", PLACES: 2 } result.push.apply(result, tail[i][3]); result.push(op); break; } } return result; }, peg$c116 = "defined", peg$c117 = { type: "literal", value: "defined", description: "\"defined\"" }, peg$c118 = function(expression) { return expression; }, peg$c119 = function(operator, expression) { var result = expression; switch (operator) { case "++": var op = { TYPE: "pre_inc_expr", PLACES: 1 } result.push(op); break; case "--": var op = { TYPE: "pre_dec_expr", PLACES: 1 } result.push(op); break; case "+": var op = { TYPE: "positive_expr", PLACES: 1 } result.push(op); break; case "-": var op = { TYPE: "negative_expr", PLACES: 1 } result.push(op); break; case "~": var op = { TYPE: "one_compl_expr", PLACES: 1 } result.push(op); break; case "!": var op = { TYPE: "logic_negative_expr", PLACES: 1 } result.push(op); break; } return result; }, peg$c120 = function(expression, operator) { var result = expression; switch (operator) { case "++": var op = { TYPE: "post_inc_expr", PLACES: 1 } result.push(op); break; case "--": var op = { TYPE: "post_dec_expr", PLACES: 1 } result.push(op); break; } return result; }, peg$c121 = function(number) { return [number]; }, peg$c122 = function(identifier) { return [identifier]; }, peg$c123 = "(", peg$c124 = { type: "literal", value: "(", description: "\"(\"" }, peg$c125 = ")", peg$c126 = { type: "literal", value: ")", description: "\")\"" }, peg$c127 = function(expression) { return expression; }, peg$c128 = function() { return 1; }, peg$c129 = { type: "other", description: "number" }, peg$c130 = function(literal) { return literal; }, peg$c131 = function(parts) { return parseInt(parts); }, peg$c132 = { type: "other", description: "identifier" }, peg$c133 = function(name) { return name; }, peg$c134 = "++", peg$c135 = { type: "literal", value: "++", description: "\"++\"" }, peg$c136 = "--", peg$c137 = { type: "literal", value: "--", description: "\"--\"" }, peg$c138 = "+", peg$c139 = { type: "literal", value: "+", description: "\"+\"" }, peg$c140 = "-", peg$c141 = { type: "literal", value: "-", description: "\"-\"" }, peg$c142 = "~", peg$c143 = { type: "literal", value: "~", description: "\"~\"" }, peg$c144 = "!", peg$c145 = { type: "literal", value: "!", description: "\"!\"" }, peg$c146 = "*", peg$c147 = { type: "literal", value: "*", description: "\"*\"" }, peg$c148 = "/", peg$c149 = { type: "literal", value: "/", description: "\"/\"" }, peg$c150 = "%", peg$c151 = { type: "literal", value: "%", description: "\"%\"" }, peg$c152 = "=", peg$c153 = { type: "literal", value: "=", description: "\"=\"" }, peg$c154 = function(operator) { return operator; }, peg$c155 = function() { return "+"; }, peg$c156 = function() { return "-"; }, peg$c157 = "<<", peg$c158 = { type: "literal", value: "<<", description: "\"<<\"" }, peg$c159 = ">>", peg$c160 = { type: "literal", value: ">>", description: "\">>\"" }, peg$c161 = "<=", peg$c162 = { type: "literal", value: "<=", description: "\"<=\"" }, peg$c163 = ">=", peg$c164 = { type: "literal", value: ">=", description: "\">=\"" }, peg$c165 = "<", peg$c166 = { type: "literal", value: "<", description: "\"<\"" }, peg$c167 = ">", peg$c168 = { type: "literal", value: ">", description: "\">\"" }, peg$c169 = "==", peg$c170 = { type: "literal", value: "==", description: "\"==\"" }, peg$c171 = "!=", peg$c172 = { type: "literal", value: "!=", description: "\"!=\"" }, peg$c173 = "&", peg$c174 = { type: "literal", value: "&", description: "\"&\"" }, peg$c175 = function() { return "&"; }, peg$c176 = "^", peg$c177 = { type: "literal", value: "^", description: "\"^\"" }, peg$c178 = function() { return "^"; }, peg$c179 = "|", peg$c180 = { type: "literal", value: "|", description: "\"|\"" }, peg$c181 = function() { return "|"; }, peg$c182 = "&&", peg$c183 = { type: "literal", value: "&&", description: "\"&&\"" }, peg$c184 = function() { return "&&"; }, peg$c185 = "||", peg$c186 = { type: "literal", value: "||", description: "\"||\"" }, peg$c187 = function() { return "||"; }, peg$c188 = "\"", peg$c189 = { type: "literal", value: "\"", description: "\"\\\"\"" }, peg$c190 = function(chars) { var line = ""; for (var i = 0; i < chars.length; i++) { line += chars[i][1]; } return line; }, peg$c191 = function(start, parts) { return start + parts.join(""); }, peg$c192 = "$", peg$c193 = { type: "literal", value: "$", description: "\"$\"" }, peg$c194 = "_", peg$c195 = { type: "literal", value: "_", description: "\"_\"" }, peg$c196 = /^[a-zA-Z]/, peg$c197 = { type: "class", value: "[a-zA-Z]", description: "[a-zA-Z]" }, peg$c198 = "#define", peg$c199 = { type: "literal", value: "#define", description: "\"#define\"" }, peg$c200 = "#elif", peg$c201 = { type: "literal", value: "#elif", description: "\"#elif\"" }, peg$c202 = "#else", peg$c203 = { type: "literal", value: "#else", description: "\"#else\"" }, peg$c204 = "#endif", peg$c205 = { type: "literal", value: "#endif", description: "\"#endif\"" }, peg$c206 = "#error", peg$c207 = { type: "literal", value: "#error", description: "\"#error\"" }, peg$c208 = "#if", peg$c209 = { type: "literal", value: "#if", description: "\"#if\"" }, peg$c210 = "#ifdef", peg$c211 = { type: "literal", value: "#ifdef", description: "\"#ifdef\"" }, peg$c212 = "#ifndef", peg$c213 = { type: "literal", value: "#ifndef", description: "\"#ifndef\"" }, peg$c214 = "#include", peg$c215 = { type: "literal", value: "#include", description: "\"#include\"" }, peg$c216 = "#line", peg$c217 = { type: "literal", value: "#line", description: "\"#line\"" }, peg$c218 = "#pragma", peg$c219 = { type: "literal", value: "#pragma", description: "\"#pragma\"" }, peg$c220 = "#warning", peg$c221 = { type: "literal", value: "#warning", description: "\"#warning\"" }, peg$c222 = "#version", peg$c223 = { type: "literal", value: "#version", description: "\"#version\"" }, peg$c224 = ".", peg$c225 = { type: "literal", value: ".", description: "\".\"" }, peg$c226 = function(parts) { return { TYPE: "float", VAL: parseFloat(parts) } }, peg$c227 = function(parts) { return { TYPE: "float", VAL: parseFloat(parts) }; }, peg$c228 = function(parts) { return { TYPE: "int", VAL: parseInt(parts) }; }, peg$c229 = "0", peg$c230 = { type: "literal", value: "0", description: "\"0\"" }, peg$c231 = /^[xX]/, peg$c232 = { type: "class", value: "[xX]", description: "[xX]" }, peg$c233 = function(digits) { return { TYPE: "int", VAL: parseInt("0x" + digits) }; }, peg$c234 = function(parts) { return parts; }, peg$c235 = function(parts) { return parts; }, peg$c236 = function(digits) { return String(parseInt("0x" + digits)); }, peg$c237 = /^[0-9]/, peg$c238 = { type: "class", value: "[0-9]", description: "[0-9]" }, peg$c239 = /^[1-9]/, peg$c240 = { type: "class", value: "[1-9]", description: "[1-9]" }, peg$c241 = /^[eE]/, peg$c242 = { type: "class", value: "[eE]", description: "[eE]" }, peg$c243 = /^[\-+]/, peg$c244 = { type: "class", value: "[-+]", description: "[-+]" }, peg$c245 = /^[0-9a-fA-F]/, peg$c246 = { type: "class", value: "[0-9a-fA-F]", description: "[0-9a-fA-F]" }, peg$c247 = { type: "other", description: "string" }, peg$c248 = "'", peg$c249 = { type: "literal", value: "'", description: "\"'\"" }, peg$c250 = function(parts) { return "\"" + parts[1] + "\""; }, peg$c251 = function(chars) { return chars.join(""); }, peg$c252 = "\\", peg$c253 = { type: "literal", value: "\\", description: "\"\\\\\"" }, peg$c254 = function(char_) { return char_; }, peg$c255 = function(sequence) { return sequence; }, peg$c256 = function(sequence) { return sequence; }, peg$c257 = function() { return "\0"; }, peg$c258 = /^['"\\bfnrtv]/, peg$c259 = { type: "class", value: "['\"\\\\bfnrtv]", description: "['\"\\\\bfnrtv]" }, peg$c260 = function(char_) { return char_ .replace("b", "\b") .replace("f", "\f") .replace("n", "\n") .replace("r", "\r") .replace("t", "\t") .replace("v", "\x0B") // IE does not recognize "\v". }, peg$c261 = function(char_) { return char_; }, peg$c262 = "x", peg$c263 = { type: "literal", value: "x", description: "\"x\"" }, peg$c264 = "u", peg$c265 = { type: "literal", value: "u", description: "\"u\"" }, peg$c266 = function(digits) { return String.fromCharCode(parseInt("0x" + digits)); }, peg$c267 = { type: "other", description: "punctuation" }, peg$c268 = "+=", peg$c269 = { type: "literal", value: "+=", description: "\"+=\"" }, peg$c270 = "-=", peg$c271 = { type: "literal", value: "-=", description: "\"-=\"" }, peg$c272 = "*=", peg$c273 = { type: "literal", value: "*=", description: "\"*=\"" }, peg$c274 = "/=", peg$c275 = { type: "literal", value: "/=", description: "\"/=\"" }, peg$c276 = "%=", peg$c277 = { type: "literal", value: "%=", description: "\"%=\"" }, peg$c278 = "^=", peg$c279 = { type: "literal", value: "^=", description: "\"^=\"" }, peg$c280 = "&=", peg$c281 = { type: "literal", value: "&=", description: "\"&=\"" }, peg$c282 = "|=", peg$c283 = { type: "literal", value: "|=", description: "\"|=\"" }, peg$c284 = "<<=", peg$c285 = { type: "literal", value: "<<=", description: "\"<<=\"" }, peg$c286 = ">>=", peg$c287 = { type: "literal", value: ">>=", description: "\">>=\"" }, peg$c288 = "{", peg$c289 = { type: "literal", value: "{", description: "\"{\"" }, peg$c290 = "}", peg$c291 = { type: "literal", value: "}", description: "\"}\"" }, peg$c292 = "[", peg$c293 = { type: "literal", value: "[", description: "\"[\"" }, peg$c294 = "]", peg$c295 = { type: "literal", value: "]", description: "\"]\"" }, peg$c296 = ";", peg$c297 = { type: "literal", value: ";", description: "\";\"" }, peg$c298 = function(head, tail) { var result = [head]; for (var i = 0; i < tail.length; i++) { result.push(tail[i][3]); } return result; }, peg$c299 = { type: "other", description: "whitespace" }, peg$c300 = /^[\t\x0B\f ]/, peg$c301 = { type: "class", value: "[\\t\\v\\f ]", description: "[\\t\\v\\f ]" }, peg$c302 = /^[\n\r]/, peg$c303 = { type: "class", value: "[\\n\\r]", description: "[\\n\\r]" }, peg$c304 = { type: "other", description: "end of line" }, peg$c305 = "\n", peg$c306 = { type: "literal", value: "\n", description: "\"\\n\"" }, peg$c307 = "\r\n", peg$c308 = { type: "literal", value: "\r\n", description: "\"\\r\\n\"" }, peg$c309 = "\r", peg$c310 = { type: "literal", value: "\r", description: "\"\\r\"" }, peg$c311 = { type: "other", description: "comment" }, peg$c312 = "/*", peg$c313 = { type: "literal", value: "/*", description: "\"/*\"" }, peg$c314 = "*/", peg$c315 = { type: "literal", value: "*/", description: "\"*/\"" }, peg$c316 = "//", peg$c317 = { type: "literal", value: "//", description: "\"//\"" }, peg$c318 = { type: "any", description: "any character" }, peg$currPos = 0, peg$reportedPos = 0, peg$cachedPos = 0, peg$cachedPosDetails = { line: 1, column: 1, seenCR: false }, peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result; if ("startRule" in options) { if (!(options.startRule in peg$startRuleFunctions)) { throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); } peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; } function text() { return input.substring(peg$reportedPos, peg$currPos); } function offset() { return peg$reportedPos; } function line() { return peg$computePosDetails(peg$reportedPos).line; } function column() { return peg$computePosDetails(peg$reportedPos).column; } function expected(description) { throw peg$buildException( null, [{ type: "other", description: description }], peg$reportedPos ); } function error(message) { throw peg$buildException(message, null, peg$reportedPos); } function peg$computePosDetails(pos) { function advance(details, startPos, endPos) { var p, ch; for (p = startPos; p < endPos; p++) { ch = input.charAt(p); if (ch === "\n") { if (!details.seenCR) { details.line++; } details.column = 1; details.seenCR = false; } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") { details.line++; details.column = 1; details.seenCR = true; } else { details.column++; details.seenCR = false; } } } if (peg$cachedPos !== pos) { if (peg$cachedPos > pos) { peg$cachedPos = 0; peg$cachedPosDetails = { line: 1, column: 1, seenCR: false }; } advance(peg$cachedPosDetails, peg$cachedPos, pos); peg$cachedPos = pos; } return peg$cachedPosDetails; } function peg$fail(expected) { if (peg$currPos < peg$maxFailPos) { return; } if (peg$currPos > peg$maxFailPos) { peg$maxFailPos = peg$currPos; peg$maxFailExpected = []; } peg$maxFailExpected.push(expected); } function peg$buildException(message, expected, pos) { function cleanupExpected(expected) { var i = 1; expected.sort(function(a, b) { if (a.description < b.description) { return -1; } else if (a.description > b.description) { return 1; } else { return 0; } }); while (i < expected.length) { if (expected[i - 1] === expected[i]) { expected.splice(i, 1); } else { i++; } } } function buildMessage(expected, found) { function stringEscape(s) { function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); } return s .replace(/\\/g, '\\\\') .replace(/"/g, '\\"') .replace(/\x08/g, '\\b') .replace(/\t/g, '\\t') .replace(/\n/g, '\\n') .replace(/\f/g, '\\f') .replace(/\r/g, '\\r') .replace(/[\x00-\x07\x0B\x0E\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) .replace(/[\x10-\x1F\x80-\xFF]/g, function(ch) { return '\\x' + hex(ch); }) .replace(/[\u0100-\u0FFF]/g, function(ch) { return '\\u0' + hex(ch); }) .replace(/[\u1000-\uFFFF]/g, function(ch) { return '\\u' + hex(ch); }); } var expectedDescs = new Array(expected.length), expectedDesc, foundDesc, i; for (i = 0; i < expected.length; i++) { expectedDescs[i] = expected[i].description; } expectedDesc = expected.length > 1 ? expectedDescs.slice(0, -1).join(", ") + " or " + expectedDescs[expected.length - 1] : expectedDescs[0]; foundDesc = found ? "\"" + stringEscape(found) + "\"" : "end of input"; return "Expected " + expectedDesc + " but " + foundDesc + " found."; } var posDetails = peg$computePosDetails(pos), found = pos < input.length ? input.charAt(pos) : null; if (expected !== null) { cleanupExpected(expected); } return new peg$SyntaxError( message !== null ? message : buildMessage(expected, found), expected, found, pos, posDetails.line, posDetails.column ); } function peg$parsestart() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parse__(); if (s1 !== peg$FAILED) { s2 = peg$parseGroup(); if (s2 !== peg$FAILED) { s3 = peg$parse__(); if (s3 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c0(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseGroup() { var s0, s1; s0 = peg$currPos; s1 = peg$parseGroupParts(); if (s1 === peg$FAILED) { s1 = null; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c1(s1); } s0 = s1; return s0; } function peg$parseGroupParts() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseGroupPart(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse__(); if (s4 !== peg$FAILED) { s5 = peg$parseGroupPart(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse__(); if (s4 !== peg$FAILED) { s5 = peg$parseGroupPart(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c2(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseGroupPart() { var s0; s0 = peg$parseIfSection(); if (s0 === peg$FAILED) { s0 = peg$parseControlLine(); if (s0 === peg$FAILED) { s0 = peg$parseNodes(); if (s0 === peg$FAILED) { s0 = peg$parseTextLine(); } } } return s0; } function peg$parseIfSection() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseIfGroup(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); if (s2 !== peg$FAILED) { s3 = []; s4 = peg$parseElIfGroup(); while (s4 !== peg$FAILED) { s3.push(s4); s4 = peg$parseElIfGroup(); } if (s3 !== peg$FAILED) { s4 = peg$parse__(); if (s4 !== peg$FAILED) { s5 = peg$parseElseGroup(); if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s6 = peg$parse__(); if (s6 !== peg$FAILED) { s7 = peg$parseEndIfLine(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c3(s1, s3, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseIfGroup() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c6) { s3 = peg$c6; peg$currPos += 2; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c7); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parsePPExpression(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = peg$parseGroup(); if (s9 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c8(s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c9) { s3 = peg$c9; peg$currPos += 5; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c10); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = peg$parseGroup(); if (s9 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c11(s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c12) { s3 = peg$c12; peg$currPos += 6; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c13); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = peg$parseGroup(); if (s9 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c14(s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } return s0; } function peg$parseElIfGroup() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c15) { s3 = peg$c15; peg$currPos += 4; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c16); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parsePPExpression(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = peg$parseGroup(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); if (s10 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c17(s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseElseGroup() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c18) { s3 = peg$c18; peg$currPos += 4; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c19); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLineTerminatorSequence(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); if (s6 !== peg$FAILED) { s7 = peg$parseGroup(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c20(s7); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseEndIfLine() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c21) { s3 = peg$c21; peg$currPos += 5; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c22); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLineTerminatorSequenceEOF(); if (s5 !== peg$FAILED) { s1 = [s1, s2, s3, s4, s5]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseControlLine() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 7) === peg$c23) { s3 = peg$c23; peg$currPos += 7; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c24); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseHeaderFile(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequenceEOF(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c25(s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c26) { s3 = peg$c26; peg$currPos += 6; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c27); } } if (s3 === peg$FAILED) { if (input.substr(peg$currPos, 3) === peg$c28) { s3 = peg$c28; peg$currPos += 3; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c29); } } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$currPos; s7 = peg$parseMSS(); if (s7 !== peg$FAILED) { s8 = peg$parseTokens(); if (s8 !== peg$FAILED) { s7 = [s7, s8]; s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } if (s6 === peg$FAILED) { s6 = null; } if (s6 !== peg$FAILED) { s7 = peg$parse_(); if (s7 !== peg$FAILED) { s8 = peg$parseLineTerminatorSequenceEOF(); if (s8 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c30(s3, s5, s6); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c31) { s3 = peg$c31; peg$currPos += 5; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c32); } } if (s3 !== peg$FAILED) { s4 = peg$currPos; s5 = peg$parseMSS(); if (s5 !== peg$FAILED) { s6 = peg$parseTokens(); if (s6 !== peg$FAILED) { s5 = [s5, s6]; s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = peg$parse_(); if (s5 !== peg$FAILED) { s6 = peg$parseLineTerminatorSequenceEOF(); if (s6 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c33(s4); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c34) { s3 = peg$c34; peg$currPos += 4; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c35); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseTokens(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequenceEOF(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c36(s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c37) { s3 = peg$c37; peg$currPos += 6; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c38); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$parseMSS(); if (s6 !== peg$FAILED) { s7 = peg$parseTokens(); if (s7 !== peg$FAILED) { s8 = peg$parse_(); if (s8 !== peg$FAILED) { s9 = peg$parseLineTerminatorSequenceEOF(); if (s9 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c39(s5, s7); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c40) { s3 = peg$c40; peg$currPos += 5; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c41); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequenceEOF(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c42(s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 7) === peg$c43) { s3 = peg$c43; peg$currPos += 7; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c44); } } if (s3 !== peg$FAILED) { s4 = peg$currPos; s5 = peg$parseMSS(); if (s5 !== peg$FAILED) { s6 = peg$parseTokens(); if (s6 !== peg$FAILED) { s5 = [s5, s6]; s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = peg$parse_(); if (s5 !== peg$FAILED) { s6 = peg$parseLineTerminatorSequenceEOF(); if (s6 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c45(s4); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 9) === peg$c46) { s3 = peg$c46; peg$currPos += 9; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c47); } } if (s3 !== peg$FAILED) { s4 = peg$currPos; s5 = peg$parseMSS(); if (s5 !== peg$FAILED) { s6 = peg$parseTokens(); if (s6 !== peg$FAILED) { s5 = [s5, s6]; s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = peg$parse_(); if (s5 !== peg$FAILED) { s6 = peg$parseLineTerminatorSequenceEOF(); if (s6 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c48(s4); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 7) === peg$c49) { s3 = peg$c49; peg$currPos += 7; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c50); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseToken(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequenceEOF(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c51(s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parseLineTerminatorSequenceEOF(); if (s3 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c52(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } } } } } } } } return s0; } function peg$parseNodes() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parseNodeGroup(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); if (s2 !== peg$FAILED) { s3 = peg$parseEndNodeLine(); if (s3 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c53(s1); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parseNodesGlobalLine(); if (s0 === peg$FAILED) { s0 = peg$parseNodesMainLine(); } } return s0; } function peg$parseNodeGroup() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 4) === peg$c54) { s3 = peg$c54; peg$currPos += 4; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c55); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = []; s10 = peg$currPos; s11 = peg$parseNodeVar(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } while (s10 !== peg$FAILED) { s9.push(s10); s10 = peg$currPos; s11 = peg$parseNodeVar(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } if (s9 !== peg$FAILED) { s10 = []; s11 = peg$currPos; s12 = peg$parseNodeDeclarationLine(); if (s12 !== peg$FAILED) { s13 = peg$parse__(); if (s13 !== peg$FAILED) { s12 = [s12, s13]; s11 = s12; } else { peg$currPos = s11; s11 = peg$FAILED; } } else { peg$currPos = s11; s11 = peg$FAILED; } while (s11 !== peg$FAILED) { s10.push(s11); s11 = peg$currPos; s12 = peg$parseNodeDeclarationLine(); if (s12 !== peg$FAILED) { s13 = peg$parse__(); if (s13 !== peg$FAILED) { s12 = [s12, s13]; s11 = s12; } else { peg$currPos = s11; s11 = peg$FAILED; } } else { peg$currPos = s11; s11 = peg$FAILED; } } if (s10 !== peg$FAILED) { s11 = []; s12 = peg$currPos; s13 = peg$parseNodeStatement(); if (s13 !== peg$FAILED) { s14 = peg$parse__(); if (s14 !== peg$FAILED) { s13 = [s13, s14]; s12 = s13; } else { peg$currPos = s12; s12 = peg$FAILED; } } else { peg$currPos = s12; s12 = peg$FAILED; } while (s12 !== peg$FAILED) { s11.push(s12); s12 = peg$currPos; s13 = peg$parseNodeStatement(); if (s13 !== peg$FAILED) { s14 = peg$parse__(); if (s14 !== peg$FAILED) { s13 = [s13, s14]; s12 = s13; } else { peg$currPos = s12; s12 = peg$FAILED; } } else { peg$currPos = s12; s12 = peg$FAILED; } } if (s11 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c56(s5, s9, s10, s11); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseEndNodeLine() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 7) === peg$c57) { s3 = peg$c57; peg$currPos += 7; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c58); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLineTerminatorSequenceEOF(); if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s1 = [s1, s2, s3, s4, s5]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodeVar() { var s0, s1, s2, s3, s4, s5, s6, s7, s8; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c59) { s3 = peg$c59; peg$currPos += 8; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c60); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$currPos; s7 = peg$parseMSS(); if (s7 !== peg$FAILED) { s8 = peg$parseTokens(); if (s8 !== peg$FAILED) { s7 = [s7, s8]; s6 = s7; } else { peg$currPos = s6; s6 = peg$FAILED; } } else { peg$currPos = s6; s6 = peg$FAILED; } if (s6 === peg$FAILED) { s6 = null; } if (s6 !== peg$FAILED) { s7 = peg$parse_(); if (s7 !== peg$FAILED) { s8 = peg$parseLineTerminatorSequence(); if (s8 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c61(s5, s6); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodeDeclarationLine() { var s0; s0 = peg$parseNodeInLine(); if (s0 === peg$FAILED) { s0 = peg$parseNodeOutLine(); if (s0 === peg$FAILED) { s0 = peg$parseNodeParamLine(); } } return s0; } function peg$parseNodeStatement() { var s0; s0 = peg$parseNodeIfSection(); if (s0 === peg$FAILED) { s0 = peg$parseTextLine(); } return s0; } function peg$parseNodeIfSection() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseNodeIfGroup(); if (s1 !== peg$FAILED) { s2 = peg$parse__(); if (s2 !== peg$FAILED) { s3 = []; s4 = peg$parseNodeElIfGroup(); while (s4 !== peg$FAILED) { s3.push(s4); s4 = peg$parseNodeElIfGroup(); } if (s3 !== peg$FAILED) { s4 = peg$parse__(); if (s4 !== peg$FAILED) { s5 = peg$parseNodeElseGroup(); if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s6 = peg$parse__(); if (s6 !== peg$FAILED) { s7 = peg$parseNodeEndIfLine(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c62(s1, s3, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodeIfGroup() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 7) === peg$c63) { s3 = peg$c63; peg$currPos += 7; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c64); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parsePPExpression(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = []; s10 = peg$currPos; s11 = peg$parseNodeStatement(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } while (s10 !== peg$FAILED) { s9.push(s10); s10 = peg$currPos; s11 = peg$parseNodeStatement(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } if (s9 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c65(s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 10) === peg$c66) { s3 = peg$c66; peg$currPos += 10; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c67); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = []; s10 = peg$currPos; s11 = peg$parseNodeStatement(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } while (s10 !== peg$FAILED) { s9.push(s10); s10 = peg$currPos; s11 = peg$parseNodeStatement(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } if (s9 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c68(s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 11) === peg$c69) { s3 = peg$c69; peg$currPos += 11; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c70); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parseIdentifier(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = []; s10 = peg$currPos; s11 = peg$parseNodeStatement(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } while (s10 !== peg$FAILED) { s9.push(s10); s10 = peg$currPos; s11 = peg$parseNodeStatement(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } if (s9 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c71(s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } return s0; } function peg$parseNodeElIfGroup() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 9) === peg$c72) { s3 = peg$c72; peg$currPos += 9; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c73); } } if (s3 !== peg$FAILED) { s4 = peg$parseMSS(); if (s4 !== peg$FAILED) { s5 = peg$parsePPExpression(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { s8 = peg$parse__(); if (s8 !== peg$FAILED) { s9 = []; s10 = peg$currPos; s11 = peg$parseNodeStatement(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } while (s10 !== peg$FAILED) { s9.push(s10); s10 = peg$currPos; s11 = peg$parseNodeStatement(); if (s11 !== peg$FAILED) { s12 = peg$parse__(); if (s12 !== peg$FAILED) { s11 = [s11, s12]; s10 = s11; } else { peg$currPos = s10; s10 = peg$FAILED; } } else { peg$currPos = s10; s10 = peg$FAILED; } } if (s9 !== peg$FAILED) { s10 = peg$parse__(); if (s10 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c74(s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodeElseGroup() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 9) === peg$c75) { s3 = peg$c75; peg$currPos += 9; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c76); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLineTerminatorSequence(); if (s5 !== peg$FAILED) { s6 = peg$parse__(); if (s6 !== peg$FAILED) { s7 = []; s8 = peg$currPos; s9 = peg$parseNodeStatement(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); if (s10 !== peg$FAILED) { s9 = [s9, s10]; s8 = s9; } else { peg$currPos = s8; s8 = peg$FAILED; } } else { peg$currPos = s8; s8 = peg$FAILED; } while (s8 !== peg$FAILED) { s7.push(s8); s8 = peg$currPos; s9 = peg$parseNodeStatement(); if (s9 !== peg$FAILED) { s10 = peg$parse__(); if (s10 !== peg$FAILED) { s9 = [s9, s10]; s8 = s9; } else { peg$currPos = s8; s8 = peg$FAILED; } } else { peg$currPos = s8; s8 = peg$FAILED; } } if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c77(s7); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodeEndIfLine() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 10) === peg$c78) { s3 = peg$c78; peg$currPos += 10; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c79); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLineTerminatorSequenceEOF(); if (s5 !== peg$FAILED) { s1 = [s1, s2, s3, s4, s5]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodeInLine() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 7) === peg$c80) { s3 = peg$c80; peg$currPos += 7; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c81); } } if (s3 !== peg$FAILED) { s4 = peg$currPos; s5 = peg$parseMSS(); if (s5 !== peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c82) { s6 = peg$c82; peg$currPos += 8; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c83); } } if (s6 !== peg$FAILED) { s5 = [s5, s6]; s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = peg$currPos; s6 = peg$parseMSS(); if (s6 !== peg$FAILED) { s7 = peg$parseTokens(); if (s7 !== peg$FAILED) { s6 = [s6, s7]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c84(s4, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodeOutLine() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c85) { s3 = peg$c85; peg$currPos += 8; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c86); } } if (s3 !== peg$FAILED) { s4 = peg$currPos; s5 = peg$parseMSS(); if (s5 !== peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c82) { s6 = peg$c82; peg$currPos += 8; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c83); } } if (s6 !== peg$FAILED) { s5 = [s5, s6]; s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = peg$currPos; s6 = peg$parseMSS(); if (s6 !== peg$FAILED) { s7 = peg$parseTokens(); if (s7 !== peg$FAILED) { s6 = [s6, s7]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c87(s4, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodeParamLine() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 10) === peg$c88) { s3 = peg$c88; peg$currPos += 10; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c89); } } if (s3 !== peg$FAILED) { s4 = peg$currPos; s5 = peg$parseMSS(); if (s5 !== peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c82) { s6 = peg$c82; peg$currPos += 8; } else { s6 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c83); } } if (s6 !== peg$FAILED) { s5 = [s5, s6]; s4 = s5; } else { peg$currPos = s4; s4 = peg$FAILED; } } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s5 = peg$currPos; s6 = peg$parseMSS(); if (s6 !== peg$FAILED) { s7 = peg$parseTokens(); if (s7 !== peg$FAILED) { s6 = [s6, s7]; s5 = s6; } else { peg$currPos = s5; s5 = peg$FAILED; } } else { peg$currPos = s5; s5 = peg$FAILED; } if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLineTerminatorSequence(); if (s7 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c90(s4, s5); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodesGlobalLine() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 12) === peg$c91) { s3 = peg$c91; peg$currPos += 12; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c92); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLineTerminatorSequenceEOF(); if (s5 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c93(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNodesMainLine() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 35) { s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c5); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 10) === peg$c94) { s3 = peg$c94; peg$currPos += 10; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c95); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLineTerminatorSequenceEOF(); if (s5 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c96(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseTextLine() { var s0, s1; s0 = peg$currPos; s1 = peg$parseTokens(); if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c97(s1); } s0 = s1; return s0; } function peg$parseTokens() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseToken(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseToken(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseToken(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c2(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsePPExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseConditionalExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s5 = peg$c98; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c99); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseConditionalExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s5 = peg$c98; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c99); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseConditionalExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c100(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseConditionalExpression() { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; s1 = peg$parseLogicalORExpression(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 63) { s3 = peg$c101; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c102); } } if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parsePPExpression(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 58) { s7 = peg$c103; peg$currPos++; } else { s7 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c104); } } if (s7 !== peg$FAILED) { s8 = peg$parse_(); if (s8 !== peg$FAILED) { s9 = peg$parsePPExpression(); if (s9 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c105(s1, s5, s9); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parseLogicalORExpression(); } return s0; } function peg$parseLogicalORExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseLogicalANDExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLogicalOROperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLogicalANDExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLogicalOROperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseLogicalANDExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c106(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseLogicalANDExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseBitwiseORExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLogicalANDOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseBitwiseORExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseLogicalANDOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseBitwiseORExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c107(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseBitwiseORExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseBitwiseXORExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseBitwiseOROperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseBitwiseXORExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseBitwiseOROperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseBitwiseXORExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c108(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseBitwiseXORExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseBitwiseANDExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseBitwiseXOROperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseBitwiseANDExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseBitwiseXOROperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseBitwiseANDExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c109(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseBitwiseANDExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseEqualityExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseBitwiseANDOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseEqualityExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseBitwiseANDOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseEqualityExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c110(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseEqualityExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseRelationalExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseEqualityOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseRelationalExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseEqualityOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseRelationalExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c111(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseRelationalExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseShiftExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseRelationalOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseShiftExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseRelationalOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseShiftExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c112(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseShiftExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseAdditiveExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseShiftOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseAdditiveExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseShiftOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseAdditiveExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c113(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseAdditiveExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseMultiplicativeExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseAdditiveOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseMultiplicativeExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseAdditiveOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseMultiplicativeExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c114(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseMultiplicativeExpression() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseUnaryExpression(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseMultiplicativeOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseUnaryExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { s5 = peg$parseMultiplicativeOperator(); if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseUnaryExpression(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c115(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseUnaryExpression() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7) === peg$c116) { s1 = peg$c116; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c117); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parseDefinedExpression(); if (s3 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c118(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parsePostfixExpression(); if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseUnaryOperator(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parseUnaryExpression(); if (s3 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c119(s1, s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } return s0; } function peg$parsePostfixExpression() { var s0, s1, s2, s3; s0 = peg$currPos; s1 = peg$parsePrimaryExpression(); if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsePostfixOperator(); if (s3 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c120(s1, s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parsePrimaryExpression(); } return s0; } function peg$parsePrimaryExpression() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseNumericLiteral(); if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c121(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseIdentifier(); if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c122(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { s1 = peg$c123; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c124); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parsePPExpression(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s5 = peg$c125; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c126); } } if (s5 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c127(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } return s0; } function peg$parseDefinedExpression() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; s1 = peg$parseIdentifier(); if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c122(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = []; s2 = peg$currPos; s3 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 40) { s4 = peg$c123; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c124); } } if (s4 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s4 = peg$c125; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c126); } } } peg$silentFails--; if (s4 === peg$FAILED) { s3 = void 0; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s4 = peg$parseSourceCharacter(); if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$currPos; s3 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 40) { s4 = peg$c123; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c124); } } if (s4 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s4 = peg$c125; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c126); } } } peg$silentFails--; if (s4 === peg$FAILED) { s3 = void 0; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s4 = peg$parseSourceCharacter(); if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } } else { s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c128(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { s1 = peg$c123; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c124); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parseDefinedExpression(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s5 = peg$c125; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c126); } } if (s5 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c127(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } } return s0; } function peg$parseNumericLiteral() { var s0, s1; peg$silentFails++; s0 = peg$currPos; s1 = peg$parseHexIntegerLiteral(); if (s1 === peg$FAILED) { s1 = peg$parseIntegerLiteral(); } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c130(s1); } s0 = s1; peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c129); } } return s0; } function peg$parseIntegerLiteral() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$parseDecimalIntegerLiteral(); if (s2 !== peg$FAILED) { s1 = input.substring(s1, peg$currPos); } else { s1 = s2; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c131(s1); } s0 = s1; return s0; } function peg$parseIdentifier() { var s0, s1, s2; peg$silentFails++; s0 = peg$currPos; s1 = peg$currPos; peg$silentFails++; s2 = peg$parseReservedWord(); peg$silentFails--; if (s2 === peg$FAILED) { s1 = void 0; } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { s2 = peg$parseIdentifierName(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c133(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c132); } } return s0; } function peg$parseReservedWord() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7) === peg$c116) { s1 = peg$c116; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c117); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseIdentifierPart(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsePostfixOperator() { var s0; if (input.substr(peg$currPos, 2) === peg$c134) { s0 = peg$c134; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c135); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c136) { s0 = peg$c136; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c137); } } } return s0; } function peg$parseUnaryOperator() { var s0; if (input.substr(peg$currPos, 2) === peg$c134) { s0 = peg$c134; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c135); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c136) { s0 = peg$c136; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c137); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 43) { s0 = peg$c138; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c139); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 45) { s0 = peg$c140; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c141); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 126) { s0 = peg$c142; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c143); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 33) { s0 = peg$c144; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c145); } } } } } } } return s0; } function peg$parseMultiplicativeOperator() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 42) { s1 = peg$c146; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c147); } } if (s1 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 47) { s1 = peg$c148; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c149); } } if (s1 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 37) { s1 = peg$c150; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c151); } } } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 61) { s3 = peg$c152; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c153); } } peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c154(s1); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseAdditiveOperator() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 43) { s1 = peg$c138; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c139); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 43) { s3 = peg$c138; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c139); } } if (s3 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s3 = peg$c152; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c153); } } } peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c155(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 45) { s1 = peg$c140; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c141); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 45) { s3 = peg$c140; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c141); } } if (s3 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s3 = peg$c152; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c153); } } } peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c156(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parseShiftOperator() { var s0; if (input.substr(peg$currPos, 2) === peg$c157) { s0 = peg$c157; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c158); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c159) { s0 = peg$c159; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c160); } } } return s0; } function peg$parseRelationalOperator() { var s0; if (input.substr(peg$currPos, 2) === peg$c161) { s0 = peg$c161; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c162); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c163) { s0 = peg$c163; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c164); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 60) { s0 = peg$c165; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c166); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 62) { s0 = peg$c167; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c168); } } } } } return s0; } function peg$parseEqualityOperator() { var s0; if (input.substr(peg$currPos, 2) === peg$c169) { s0 = peg$c169; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c170); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c171) { s0 = peg$c171; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c172); } } } return s0; } function peg$parseBitwiseANDOperator() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 38) { s1 = peg$c173; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c174); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 38) { s3 = peg$c173; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c174); } } peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c175(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseBitwiseXOROperator() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 94) { s1 = peg$c176; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c177); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 94) { s3 = peg$c176; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c177); } } peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c178(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseBitwiseOROperator() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 124) { s1 = peg$c179; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c180); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 124) { s3 = peg$c179; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c180); } } peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c181(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseLogicalANDOperator() { var s0, s1; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c182) { s1 = peg$c182; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c183); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c184(); } s0 = s1; return s0; } function peg$parseLogicalOROperator() { var s0, s1; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c185) { s1 = peg$c185; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c186); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c187(); } s0 = s1; return s0; } function peg$parseHeaderFile() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 60) { s1 = peg$c165; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c166); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parseHCharSequence(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 62) { s5 = peg$c167; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c168); } } if (s5 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c133(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 34) { s1 = peg$c188; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c189); } } if (s1 !== peg$FAILED) { s2 = peg$parse_(); if (s2 !== peg$FAILED) { s3 = peg$parseQCharSequence(); if (s3 !== peg$FAILED) { s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { s5 = peg$c188; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c189); } } if (s5 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c133(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parseHCharSequence() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = []; s2 = peg$currPos; s3 = peg$currPos; peg$silentFails++; s4 = peg$parseLineTerminatorSequenceEOF(); if (s4 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 62) { s4 = peg$c167; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c168); } } } peg$silentFails--; if (s4 === peg$FAILED) { s3 = void 0; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s4 = peg$parseSourceCharacter(); if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$currPos; s3 = peg$currPos; peg$silentFails++; s4 = peg$parseLineTerminatorSequenceEOF(); if (s4 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 62) { s4 = peg$c167; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c168); } } } peg$silentFails--; if (s4 === peg$FAILED) { s3 = void 0; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s4 = peg$parseSourceCharacter(); if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c190(s1); } s0 = s1; return s0; } function peg$parseQCharSequence() { var s0, s1, s2, s3, s4; s0 = peg$currPos; s1 = []; s2 = peg$currPos; s3 = peg$currPos; peg$silentFails++; s4 = peg$parseLineTerminatorSequenceEOF(); if (s4 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { s4 = peg$c188; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c189); } } } peg$silentFails--; if (s4 === peg$FAILED) { s3 = void 0; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s4 = peg$parseSourceCharacter(); if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$currPos; s3 = peg$currPos; peg$silentFails++; s4 = peg$parseLineTerminatorSequenceEOF(); if (s4 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { s4 = peg$c188; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c189); } } } peg$silentFails--; if (s4 === peg$FAILED) { s3 = void 0; } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s4 = peg$parseSourceCharacter(); if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c190(s1); } s0 = s1; return s0; } function peg$parseToken() { var s0; s0 = peg$parseIdentifier(); if (s0 === peg$FAILED) { s0 = peg$parseNumber(); if (s0 === peg$FAILED) { s0 = peg$parseStringLiteral(); if (s0 === peg$FAILED) { s0 = peg$parseOpOrPunc(); } } } return s0; } function peg$parseIdentifier() { var s0, s1, s2; peg$silentFails++; s0 = peg$currPos; s1 = peg$currPos; peg$silentFails++; s2 = peg$parseKeyword(); peg$silentFails--; if (s2 === peg$FAILED) { s1 = void 0; } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { s2 = peg$parseIdentifierName(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c133(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c132); } } return s0; } function peg$parseIdentifierName() { var s0, s1, s2, s3; peg$silentFails++; s0 = peg$currPos; s1 = peg$parseIdentifierStart(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$parseIdentifierPart(); while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$parseIdentifierPart(); } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c191(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c132); } } return s0; } function peg$parseIdentifierStart() { var s0; s0 = peg$parseLetter(); if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 36) { s0 = peg$c192; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c193); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 95) { s0 = peg$c194; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c195); } } } } return s0; } function peg$parseIdentifierPart() { var s0; s0 = peg$parseIdentifierStart(); if (s0 === peg$FAILED) { s0 = peg$parseDecimalDigit(); } return s0; } function peg$parseLetter() { var s0; if (peg$c196.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c197); } } return s0; } function peg$parseKeyword() { var s0, s1, s2, s3; s0 = peg$currPos; if (input.substr(peg$currPos, 7) === peg$c198) { s1 = peg$c198; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c199); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c200) { s1 = peg$c200; peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c201); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c202) { s1 = peg$c202; peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c203); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c204) { s1 = peg$c204; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c205); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c206) { s1 = peg$c206; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c207); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 3) === peg$c208) { s1 = peg$c208; peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c209); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 6) === peg$c210) { s1 = peg$c210; peg$currPos += 6; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c211); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 7) === peg$c212) { s1 = peg$c212; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c213); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c214) { s1 = peg$c214; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c215); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 5) === peg$c216) { s1 = peg$c216; peg$currPos += 5; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c217); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 7) === peg$c218) { s1 = peg$c218; peg$currPos += 7; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c219); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c220) { s1 = peg$c220; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c221); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 8) === peg$c222) { s1 = peg$c222; peg$currPos += 8; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c223); } } if (s1 === peg$FAILED) { if (input.substr(peg$currPos, 3) === peg$c28) { s1 = peg$c28; peg$currPos += 3; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c29); } } } } } } } } } } } } } } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseIdentifierPart(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parsePPNumber() { var s0, s1, s2, s3; peg$silentFails++; s0 = peg$currPos; s1 = peg$parsePPHexIntegerLiteral(); if (s1 === peg$FAILED) { s1 = peg$parsePPDecimalLiteral(); } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseIdentifierStart(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c130(s1); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c129); } } return s0; } function peg$parsePPDecimalLiteral() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$currPos; s3 = peg$parseDecimalIntegerLiteral(); if (s3 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 46) { s4 = peg$c224; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c225); } } if (s4 !== peg$FAILED) { s5 = peg$parseDecimalDigits(); if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s6 = peg$parseExponentPart(); if (s6 === peg$FAILED) { s6 = null; } if (s6 !== peg$FAILED) { s3 = [s3, s4, s5, s6]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = input.substring(s1, peg$currPos); } else { s1 = s2; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c226(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$currPos; s2 = peg$currPos; if (input.charCodeAt(peg$currPos) === 46) { s3 = peg$c224; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c225); } } if (s3 !== peg$FAILED) { s4 = peg$parseDecimalDigits(); if (s4 !== peg$FAILED) { s5 = peg$parseExponentPart(); if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s3 = [s3, s4, s5]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = input.substring(s1, peg$currPos); } else { s1 = s2; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c227(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$currPos; s2 = peg$currPos; s3 = peg$parseDecimalIntegerLiteral(); if (s3 !== peg$FAILED) { s4 = peg$parseExponentPart(); if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = input.substring(s1, peg$currPos); } else { s1 = s2; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c228(s1); } s0 = s1; } } return s0; } function peg$parsePPHexIntegerLiteral() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 48) { s1 = peg$c229; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c230); } } if (s1 !== peg$FAILED) { if (peg$c231.test(input.charAt(peg$currPos))) { s2 = input.charAt(peg$currPos); peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c232); } } if (s2 !== peg$FAILED) { s3 = peg$currPos; s4 = []; s5 = peg$parseHexDigit(); if (s5 !== peg$FAILED) { while (s5 !== peg$FAILED) { s4.push(s5); s5 = peg$parseHexDigit(); } } else { s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s3 = input.substring(s3, peg$currPos); } else { s3 = s4; } if (s3 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c233(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseNumber() { var s0, s1, s2, s3; peg$silentFails++; s0 = peg$currPos; s1 = peg$parseHexIntegerLiteral(); if (s1 === peg$FAILED) { s1 = peg$parseDecimalLiteral(); } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseIdentifierStart(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c130(s1); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c129); } } return s0; } function peg$parseDecimalLiteral() { var s0, s1, s2, s3, s4, s5, s6; s0 = peg$currPos; s1 = peg$currPos; s2 = peg$currPos; s3 = peg$parseDecimalIntegerLiteral(); if (s3 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 46) { s4 = peg$c224; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c225); } } if (s4 !== peg$FAILED) { s5 = peg$parseDecimalDigits(); if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s6 = peg$parseExponentPart(); if (s6 === peg$FAILED) { s6 = null; } if (s6 !== peg$FAILED) { s3 = [s3, s4, s5, s6]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = input.substring(s1, peg$currPos); } else { s1 = s2; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c234(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$currPos; s2 = peg$currPos; if (input.charCodeAt(peg$currPos) === 46) { s3 = peg$c224; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c225); } } if (s3 !== peg$FAILED) { s4 = peg$parseDecimalDigits(); if (s4 !== peg$FAILED) { s5 = peg$parseExponentPart(); if (s5 === peg$FAILED) { s5 = null; } if (s5 !== peg$FAILED) { s3 = [s3, s4, s5]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = input.substring(s1, peg$currPos); } else { s1 = s2; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c235(s1); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$currPos; s2 = peg$currPos; s3 = peg$parseDecimalIntegerLiteral(); if (s3 !== peg$FAILED) { s4 = peg$parseExponentPart(); if (s4 === peg$FAILED) { s4 = null; } if (s4 !== peg$FAILED) { s3 = [s3, s4]; s2 = s3; } else { peg$currPos = s2; s2 = peg$FAILED; } } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { s1 = input.substring(s1, peg$currPos); } else { s1 = s2; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c235(s1); } s0 = s1; } } return s0; } function peg$parseHexIntegerLiteral() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 48) { s1 = peg$c229; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c230); } } if (s1 !== peg$FAILED) { if (peg$c231.test(input.charAt(peg$currPos))) { s2 = input.charAt(peg$currPos); peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c232); } } if (s2 !== peg$FAILED) { s3 = peg$currPos; s4 = []; s5 = peg$parseHexDigit(); if (s5 !== peg$FAILED) { while (s5 !== peg$FAILED) { s4.push(s5); s5 = peg$parseHexDigit(); } } else { s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s3 = input.substring(s3, peg$currPos); } else { s3 = s4; } if (s3 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c236(s3); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseDecimalIntegerLiteral() { var s0, s1, s2; if (input.charCodeAt(peg$currPos) === 48) { s0 = peg$c229; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c230); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = peg$parseNonZeroDigit(); if (s1 !== peg$FAILED) { s2 = peg$parseDecimalDigits(); if (s2 === peg$FAILED) { s2 = null; } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } return s0; } function peg$parseDecimalDigits() { var s0, s1; s0 = []; s1 = peg$parseDecimalDigit(); if (s1 !== peg$FAILED) { while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parseDecimalDigit(); } } else { s0 = peg$FAILED; } return s0; } function peg$parseDecimalDigit() { var s0; if (peg$c237.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c238); } } return s0; } function peg$parseNonZeroDigit() { var s0; if (peg$c239.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c240); } } return s0; } function peg$parseExponentPart() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$parseExponentIndicator(); if (s1 !== peg$FAILED) { s2 = peg$parseSignedInteger(); if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseExponentIndicator() { var s0; if (peg$c241.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c242); } } return s0; } function peg$parseSignedInteger() { var s0, s1, s2; s0 = peg$currPos; if (peg$c243.test(input.charAt(peg$currPos))) { s1 = input.charAt(peg$currPos); peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c244); } } if (s1 === peg$FAILED) { s1 = null; } if (s1 !== peg$FAILED) { s2 = peg$parseDecimalDigits(); if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseHexDigit() { var s0; if (peg$c245.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c246); } } return s0; } function peg$parseStringLiteral() { var s0, s1, s2, s3, s4; peg$silentFails++; s0 = peg$currPos; s1 = peg$currPos; if (input.charCodeAt(peg$currPos) === 34) { s2 = peg$c188; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c189); } } if (s2 !== peg$FAILED) { s3 = peg$parseDoubleStringCharacters(); if (s3 === peg$FAILED) { s3 = null; } if (s3 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { s4 = peg$c188; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c189); } } if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = peg$currPos; if (input.charCodeAt(peg$currPos) === 39) { s2 = peg$c248; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c249); } } if (s2 !== peg$FAILED) { s3 = peg$parseSingleStringCharacters(); if (s3 === peg$FAILED) { s3 = null; } if (s3 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 39) { s4 = peg$c248; peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c249); } } if (s4 !== peg$FAILED) { s2 = [s2, s3, s4]; s1 = s2; } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } else { peg$currPos = s1; s1 = peg$FAILED; } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c250(s1); } s0 = s1; peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c247); } } return s0; } function peg$parseDoubleStringCharacters() { var s0, s1, s2; s0 = peg$currPos; s1 = []; s2 = peg$parseDoubleStringCharacter(); if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$parseDoubleStringCharacter(); } } else { s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c251(s1); } s0 = s1; return s0; } function peg$parseSingleStringCharacters() { var s0, s1, s2; s0 = peg$currPos; s1 = []; s2 = peg$parseSingleStringCharacter(); if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { s1.push(s2); s2 = peg$parseSingleStringCharacter(); } } else { s1 = peg$FAILED; } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c251(s1); } s0 = s1; return s0; } function peg$parseDoubleStringCharacter() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 34) { s2 = peg$c188; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c189); } } if (s2 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 92) { s2 = peg$c252; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c253); } } if (s2 === peg$FAILED) { s2 = peg$parseLineTerminator(); } } peg$silentFails--; if (s2 === peg$FAILED) { s1 = void 0; } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { s2 = peg$parseSourceCharacter(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c254(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 92) { s1 = peg$c252; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c253); } } if (s1 !== peg$FAILED) { s2 = peg$parseEscapeSequence(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c255(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parseLineContinuation(); } } return s0; } function peg$parseSingleStringCharacter() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$currPos; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 39) { s2 = peg$c248; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c249); } } if (s2 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 92) { s2 = peg$c252; peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c253); } } if (s2 === peg$FAILED) { s2 = peg$parseLineTerminator(); } } peg$silentFails--; if (s2 === peg$FAILED) { s1 = void 0; } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 !== peg$FAILED) { s2 = peg$parseSourceCharacter(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c254(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 92) { s1 = peg$c252; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c253); } } if (s1 !== peg$FAILED) { s2 = peg$parseEscapeSequence(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c255(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parseLineContinuation(); } } return s0; } function peg$parseLineContinuation() { var s0, s1, s2; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 92) { s1 = peg$c252; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c253); } } if (s1 !== peg$FAILED) { s2 = peg$parseLineTerminatorSequenceEOF(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c256(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseEscapeSequence() { var s0, s1, s2, s3; s0 = peg$parseCharacterEscapeSequence(); if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 48) { s1 = peg$c229; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c230); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; peg$silentFails++; s3 = peg$parseDecimalDigit(); peg$silentFails--; if (s3 === peg$FAILED) { s2 = void 0; } else { peg$currPos = s2; s2 = peg$FAILED; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c257(); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } if (s0 === peg$FAILED) { s0 = peg$parseHexEscapeSequence(); } } return s0; } function peg$parseCharacterEscapeSequence() { var s0; s0 = peg$parseSingleEscapeCharacter(); if (s0 === peg$FAILED) { s0 = peg$parseNonEscapeCharacter(); } return s0; } function peg$parseSingleEscapeCharacter() { var s0, s1; s0 = peg$currPos; if (peg$c258.test(input.charAt(peg$currPos))) { s1 = input.charAt(peg$currPos); peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c259); } } if (s1 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c260(s1); } s0 = s1; return s0; } function peg$parseNonEscapeCharacter() { var s0, s1, s2; s0 = peg$currPos; s1 = peg$currPos; peg$silentFails++; s2 = peg$parseEscapeCharacter(); peg$silentFails--; if (s2 === peg$FAILED) { s1 = void 0; } else { peg$currPos = s1; s1 = peg$FAILED; } if (s1 === peg$FAILED) { s1 = peg$parseLineTerminator(); } if (s1 !== peg$FAILED) { s2 = peg$parseSourceCharacter(); if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c261(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseEscapeCharacter() { var s0; s0 = peg$parseSingleEscapeCharacter(); if (s0 === peg$FAILED) { s0 = peg$parseDecimalDigit(); if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 120) { s0 = peg$c262; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c263); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 117) { s0 = peg$c264; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c265); } } } } } return s0; } function peg$parseHexEscapeSequence() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 120) { s1 = peg$c262; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c263); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; s3 = peg$currPos; s4 = peg$parseHexDigit(); if (s4 !== peg$FAILED) { s5 = peg$parseHexDigit(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } if (s3 !== peg$FAILED) { s2 = input.substring(s2, peg$currPos); } else { s2 = s3; } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c266(s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseOpOrPunc() { var s0, s1; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c268) { s0 = peg$c268; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c269); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c270) { s0 = peg$c270; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c271); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c272) { s0 = peg$c272; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c273); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c274) { s0 = peg$c274; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c275); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c276) { s0 = peg$c276; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c277); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c278) { s0 = peg$c278; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c279); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c280) { s0 = peg$c280; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c281); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c282) { s0 = peg$c282; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c283); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c157) { s0 = peg$c157; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c158); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c159) { s0 = peg$c159; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c160); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 3) === peg$c284) { s0 = peg$c284; peg$currPos += 3; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c285); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 3) === peg$c286) { s0 = peg$c286; peg$currPos += 3; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c287); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c169) { s0 = peg$c169; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c170); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c171) { s0 = peg$c171; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c172); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c161) { s0 = peg$c161; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c162); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c163) { s0 = peg$c163; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c164); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c182) { s0 = peg$c182; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c183); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c185) { s0 = peg$c185; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c186); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c134) { s0 = peg$c134; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c135); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c136) { s0 = peg$c136; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c137); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 123) { s0 = peg$c288; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c289); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 125) { s0 = peg$c290; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c291); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 91) { s0 = peg$c292; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c293); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 93) { s0 = peg$c294; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c295); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 40) { s0 = peg$c123; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c124); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 41) { s0 = peg$c125; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c126); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 59) { s0 = peg$c296; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c297); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 58) { s0 = peg$c103; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c104); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 63) { s0 = peg$c101; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c102); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 46) { s0 = peg$c224; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c225); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 43) { s0 = peg$c138; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c139); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 45) { s0 = peg$c140; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c141); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 42) { s0 = peg$c146; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c147); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 47) { s0 = peg$c148; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c149); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 37) { s0 = peg$c150; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c151); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 94) { s0 = peg$c176; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c177); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 38) { s0 = peg$c173; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c174); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 124) { s0 = peg$c179; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c180); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 126) { s0 = peg$c142; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c143); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 33) { s0 = peg$c144; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c145); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 61) { s0 = peg$c152; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c153); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 60) { s0 = peg$c165; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c166); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 62) { s0 = peg$c167; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c168); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s0 = peg$c98; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c99); } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c267); } } return s0; } function peg$parseDefineParamList() { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; s1 = peg$parseIdentifier(); if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s5 = peg$c98; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c99); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseIdentifier(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$parse_(); if (s4 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 44) { s5 = peg$c98; peg$currPos++; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c99); } } if (s5 !== peg$FAILED) { s6 = peg$parse_(); if (s6 !== peg$FAILED) { s7 = peg$parseIdentifier(); if (s7 !== peg$FAILED) { s4 = [s4, s5, s6, s7]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { peg$reportedPos = s0; s1 = peg$c298(s1, s2); s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parse_() { var s0, s1; s0 = []; s1 = peg$parseWhiteSpace(); if (s1 === peg$FAILED) { s1 = peg$parseLineContinuation(); if (s1 === peg$FAILED) { s1 = peg$parseMultiLineCommentNoLineTerminator(); if (s1 === peg$FAILED) { s1 = peg$parseSingleLineComment(); } } } while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parseWhiteSpace(); if (s1 === peg$FAILED) { s1 = peg$parseLineContinuation(); if (s1 === peg$FAILED) { s1 = peg$parseMultiLineCommentNoLineTerminator(); if (s1 === peg$FAILED) { s1 = peg$parseSingleLineComment(); } } } } return s0; } function peg$parseMSS() { var s0, s1; s0 = []; s1 = peg$parseWhiteSpace(); if (s1 === peg$FAILED) { s1 = peg$parseLineContinuation(); if (s1 === peg$FAILED) { s1 = peg$parseMultiLineCommentNoLineTerminator(); if (s1 === peg$FAILED) { s1 = peg$parseSingleLineComment(); } } } if (s1 !== peg$FAILED) { while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parseWhiteSpace(); if (s1 === peg$FAILED) { s1 = peg$parseLineContinuation(); if (s1 === peg$FAILED) { s1 = peg$parseMultiLineCommentNoLineTerminator(); if (s1 === peg$FAILED) { s1 = peg$parseSingleLineComment(); } } } } } else { s0 = peg$FAILED; } return s0; } function peg$parse__() { var s0, s1; s0 = []; s1 = peg$parseWhiteSpace(); if (s1 === peg$FAILED) { s1 = peg$parseLineContinuation(); if (s1 === peg$FAILED) { s1 = peg$parseLineTerminatorSequence(); if (s1 === peg$FAILED) { s1 = peg$parseComment(); } } } while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parseWhiteSpace(); if (s1 === peg$FAILED) { s1 = peg$parseLineContinuation(); if (s1 === peg$FAILED) { s1 = peg$parseLineTerminatorSequence(); if (s1 === peg$FAILED) { s1 = peg$parseComment(); } } } } return s0; } function peg$parseMMS() { var s0, s1; s0 = []; s1 = peg$parseWhiteSpace(); if (s1 === peg$FAILED) { s1 = peg$parseLineContinuation(); if (s1 === peg$FAILED) { s1 = peg$parseLineTerminatorSequence(); if (s1 === peg$FAILED) { s1 = peg$parseComment(); } } } if (s1 !== peg$FAILED) { while (s1 !== peg$FAILED) { s0.push(s1); s1 = peg$parseWhiteSpace(); if (s1 === peg$FAILED) { s1 = peg$parseLineContinuation(); if (s1 === peg$FAILED) { s1 = peg$parseLineTerminatorSequence(); if (s1 === peg$FAILED) { s1 = peg$parseComment(); } } } } } else { s0 = peg$FAILED; } return s0; } function peg$parseWhiteSpace() { var s0, s1; peg$silentFails++; if (peg$c300.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c301); } } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c299); } } return s0; } function peg$parseLineTerminator() { var s0; if (peg$c302.test(input.charAt(peg$currPos))) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c303); } } return s0; } function peg$parseLineTerminatorSequence() { var s0, s1; peg$silentFails++; if (input.charCodeAt(peg$currPos) === 10) { s0 = peg$c305; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c306); } } if (s0 === peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c307) { s0 = peg$c307; peg$currPos += 2; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c308); } } if (s0 === peg$FAILED) { if (input.charCodeAt(peg$currPos) === 13) { s0 = peg$c309; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c310); } } } } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c304); } } return s0; } function peg$parseLineTerminatorSequenceEOF() { var s0; s0 = peg$parseLineTerminatorSequence(); if (s0 === peg$FAILED) { s0 = peg$parseEOF(); } return s0; } function peg$parseComment() { var s0, s1; peg$silentFails++; s0 = peg$parseMultiLineComment(); if (s0 === peg$FAILED) { s0 = peg$parseSingleLineComment(); } peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c311); } } return s0; } function peg$parseMultiLineComment() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c312) { s1 = peg$c312; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c313); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c314) { s5 = peg$c314; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c315); } } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c314) { s5 = peg$c314; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c315); } } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c314) { s3 = peg$c314; peg$currPos += 2; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c315); } } if (s3 !== peg$FAILED) { s1 = [s1, s2, s3]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseMultiLineCommentNoLineTerminator() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c312) { s1 = peg$c312; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c313); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c314) { s5 = peg$c314; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c315); } } if (s5 === peg$FAILED) { s5 = peg$parseLineTerminator(); } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; if (input.substr(peg$currPos, 2) === peg$c314) { s5 = peg$c314; peg$currPos += 2; } else { s5 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c315); } } if (s5 === peg$FAILED) { s5 = peg$parseLineTerminator(); } peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { if (input.substr(peg$currPos, 2) === peg$c314) { s3 = peg$c314; peg$currPos += 2; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c315); } } if (s3 !== peg$FAILED) { s1 = [s1, s2, s3]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseSingleLineComment() { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; if (input.substr(peg$currPos, 2) === peg$c316) { s1 = peg$c316; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c317); } } if (s1 !== peg$FAILED) { s2 = []; s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; s5 = peg$parseLineTerminator(); peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } while (s3 !== peg$FAILED) { s2.push(s3); s3 = peg$currPos; s4 = peg$currPos; peg$silentFails++; s5 = peg$parseLineTerminator(); peg$silentFails--; if (s5 === peg$FAILED) { s4 = void 0; } else { peg$currPos = s4; s4 = peg$FAILED; } if (s4 !== peg$FAILED) { s5 = peg$parseSourceCharacter(); if (s5 !== peg$FAILED) { s4 = [s4, s5]; s3 = s4; } else { peg$currPos = s3; s3 = peg$FAILED; } } else { peg$currPos = s3; s3 = peg$FAILED; } } if (s2 !== peg$FAILED) { s1 = [s1, s2]; s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; } } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } function peg$parseSourceCharacter() { var s0; if (input.length > peg$currPos) { s0 = input.charAt(peg$currPos); peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c318); } } return s0; } function peg$parseEOF() { var s0, s1; s0 = peg$currPos; peg$silentFails++; if (input.length > peg$currPos) { s1 = input.charAt(peg$currPos); peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$c318); } } peg$silentFails--; if (s1 === peg$FAILED) { s0 = void 0; } else { peg$currPos = s0; s0 = peg$FAILED; } return s0; } peg$result = peg$startRuleFunction(); if (peg$result !== peg$FAILED && peg$currPos === input.length) { return peg$result; } else { if (peg$result !== peg$FAILED && peg$currPos < input.length) { peg$fail({ type: "end", description: "end of input" }); } throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos); } } return { SyntaxError: peg$SyntaxError, parse: peg$parse }; })(); }