peggyParser.js (197361B)
1 import * as h from './peggyHelpers.js'; 2 function peg$subclass(child, parent) { 3 function C() { this.constructor = child; } 4 C.prototype = parent.prototype; 5 child.prototype = new C(); 6 } 7 function peg$SyntaxError(message, expected, found, location) { 8 var self = Error.call(this, message); 9 if (Object.setPrototypeOf) { 10 Object.setPrototypeOf(self, peg$SyntaxError.prototype); 11 } 12 self.expected = expected; 13 self.found = found; 14 self.location = location; 15 self.name = "SyntaxError"; 16 return self; 17 } 18 peg$subclass(peg$SyntaxError, Error); 19 function peg$padEnd(str, targetLength, padString) { 20 padString = padString || " "; 21 if (str.length > targetLength) { 22 return str; 23 } 24 targetLength -= str.length; 25 padString += padString.repeat(targetLength); 26 return str + padString.slice(0, targetLength); 27 } 28 peg$SyntaxError.prototype.format = function (sources) { 29 var str = "Error: " + this.message; 30 if (this.location) { 31 var src = null; 32 var k; 33 for (k = 0; k < sources.length; k++) { 34 if (sources[k].source === this.location.source) { 35 src = sources[k].text.split(/\r\n|\n|\r/g); 36 break; 37 } 38 } 39 var s = this.location.start; 40 var offset_s = (this.location.source && (typeof this.location.source.offset === "function")) 41 ? this.location.source.offset(s) 42 : s; 43 var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column; 44 if (src) { 45 var e = this.location.end; 46 var filler = peg$padEnd("", offset_s.line.toString().length, ' '); 47 var line = src[s.line - 1]; 48 var last = s.line === e.line ? e.column : line.length + 1; 49 var hatLen = (last - s.column) || 1; 50 str += "\n --> " + loc + "\n" 51 + filler + " |\n" 52 + offset_s.line + " | " + line + "\n" 53 + filler + " | " + peg$padEnd("", s.column - 1, ' ') 54 + peg$padEnd("", hatLen, "^"); 55 } 56 else { 57 str += "\n at " + loc; 58 } 59 } 60 return str; 61 }; 62 peg$SyntaxError.buildMessage = function (expected, found) { 63 var DESCRIBE_EXPECTATION_FNS = { 64 literal: function (expectation) { 65 return "\"" + literalEscape(expectation.text) + "\""; 66 }, 67 class: function (expectation) { 68 var escapedParts = expectation.parts.map(function (part) { 69 return Array.isArray(part) 70 ? classEscape(part[0]) + "-" + classEscape(part[1]) 71 : classEscape(part); 72 }); 73 return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]"; 74 }, 75 any: function () { 76 return "any character"; 77 }, 78 end: function () { 79 return "end of input"; 80 }, 81 other: function (expectation) { 82 return expectation.description; 83 } 84 }; 85 function hex(ch) { 86 return ch.charCodeAt(0).toString(16).toUpperCase(); 87 } 88 function literalEscape(s) { 89 return s 90 .replace(/\\/g, "\\\\") 91 .replace(/"/g, "\\\"") 92 .replace(/\0/g, "\\0") 93 .replace(/\t/g, "\\t") 94 .replace(/\n/g, "\\n") 95 .replace(/\r/g, "\\r") 96 .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); }) 97 .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); }); 98 } 99 function classEscape(s) { 100 return s 101 .replace(/\\/g, "\\\\") 102 .replace(/\]/g, "\\]") 103 .replace(/\^/g, "\\^") 104 .replace(/-/g, "\\-") 105 .replace(/\0/g, "\\0") 106 .replace(/\t/g, "\\t") 107 .replace(/\n/g, "\\n") 108 .replace(/\r/g, "\\r") 109 .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); }) 110 .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); }); 111 } 112 function describeExpectation(expectation) { 113 return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); 114 } 115 function describeExpected(expected) { 116 var descriptions = expected.map(describeExpectation); 117 var i, j; 118 descriptions.sort(); 119 if (descriptions.length > 0) { 120 for (i = 1, j = 1; i < descriptions.length; i++) { 121 if (descriptions[i - 1] !== descriptions[i]) { 122 descriptions[j] = descriptions[i]; 123 j++; 124 } 125 } 126 descriptions.length = j; 127 } 128 switch (descriptions.length) { 129 case 1: 130 return descriptions[0]; 131 case 2: 132 return descriptions[0] + " or " + descriptions[1]; 133 default: 134 return descriptions.slice(0, -1).join(", ") 135 + ", or " 136 + descriptions[descriptions.length - 1]; 137 } 138 } 139 function describeFound(found) { 140 return found ? "\"" + literalEscape(found) + "\"" : "end of input"; 141 } 142 return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; 143 }; 144 function peg$parse(input, options) { 145 options = options !== undefined ? options : {}; 146 var peg$FAILED = {}; 147 var peg$source = options.grammarSource; 148 var peg$startRuleFunctions = { start: peg$parsestart }; 149 var peg$startRuleFunction = peg$parsestart; 150 var peg$c0 = "import"; 151 var peg$c1 = "as"; 152 var peg$c2 = "{"; 153 var peg$c3 = "}"; 154 var peg$c4 = "call"; 155 var peg$c5 = "export"; 156 var peg$c6 = "("; 157 var peg$c7 = ")"; 158 var peg$c8 = "="; 159 var peg$c9 = ":"; 160 var peg$c10 = "if"; 161 var peg$c11 = "then"; 162 var peg$c12 = "else"; 163 var peg$c13 = "?"; 164 var peg$c14 = "||"; 165 var peg$c15 = "&&"; 166 var peg$c16 = "=="; 167 var peg$c17 = "!="; 168 var peg$c18 = "<="; 169 var peg$c19 = "<"; 170 var peg$c20 = ">="; 171 var peg$c21 = ">"; 172 var peg$c22 = "to"; 173 var peg$c23 = "+"; 174 var peg$c24 = "-"; 175 var peg$c25 = ".+"; 176 var peg$c26 = ".-"; 177 var peg$c27 = "*"; 178 var peg$c28 = "/"; 179 var peg$c29 = ".*"; 180 var peg$c30 = "./"; 181 var peg$c31 = "^"; 182 var peg$c32 = ".^"; 183 var peg$c33 = "->"; 184 var peg$c34 = "!"; 185 var peg$c35 = "["; 186 var peg$c36 = "."; 187 var peg$c37 = "]"; 188 var peg$c38 = "()"; 189 var peg$c39 = "minutes"; 190 var peg$c40 = "hours"; 191 var peg$c41 = "days"; 192 var peg$c42 = "years"; 193 var peg$c43 = "n"; 194 var peg$c44 = "m"; 195 var peg$c45 = "k"; 196 var peg$c46 = "M"; 197 var peg$c47 = "B"; 198 var peg$c48 = "G"; 199 var peg$c49 = "T"; 200 var peg$c50 = "P"; 201 var peg$c51 = "%"; 202 var peg$c52 = "\\"; 203 var peg$c53 = "u"; 204 var peg$c54 = "'"; 205 var peg$c55 = "\""; 206 var peg$c56 = "true"; 207 var peg$c57 = "false"; 208 var peg$c58 = "|"; 209 var peg$c59 = ";"; 210 var peg$c60 = ","; 211 var peg$c61 = "//"; 212 var peg$c62 = "/*"; 213 var peg$c63 = "*/"; 214 var peg$r0 = /^[A-Z]/; 215 var peg$r1 = /^[_a-z0-9]/i; 216 var peg$r2 = /^[_a-z]/; 217 var peg$r3 = /^[$_a-z]/; 218 var peg$r4 = /^[$_a-z0-9]/i; 219 var peg$r5 = /^[^u]/; 220 var peg$r6 = /^[e]/i; 221 var peg$r7 = /^[0-9]/; 222 var peg$r8 = /^[a-z]/i; 223 var peg$r9 = /^[_$]/; 224 var peg$r10 = /^[\n\r]/; 225 var peg$r11 = /^[^\r\n]/; 226 var peg$r12 = /^[^*]/; 227 var peg$r13 = /^[*]/; 228 var peg$r14 = /^[^\/]/; 229 var peg$r15 = /^[ \t]/; 230 var peg$e0 = peg$literalExpectation("import", false); 231 var peg$e1 = peg$literalExpectation("as", false); 232 var peg$e2 = peg$literalExpectation("{", false); 233 var peg$e3 = peg$literalExpectation("}", false); 234 var peg$e4 = peg$literalExpectation("call", false); 235 var peg$e5 = peg$literalExpectation("export", false); 236 var peg$e6 = peg$literalExpectation("(", false); 237 var peg$e7 = peg$literalExpectation(")", false); 238 var peg$e8 = peg$otherExpectation("assignment"); 239 var peg$e9 = peg$literalExpectation("=", false); 240 var peg$e10 = peg$literalExpectation(":", false); 241 var peg$e11 = peg$literalExpectation("if", false); 242 var peg$e12 = peg$literalExpectation("then", false); 243 var peg$e13 = peg$literalExpectation("else", false); 244 var peg$e14 = peg$literalExpectation("?", false); 245 var peg$e15 = peg$otherExpectation("operator"); 246 var peg$e16 = peg$literalExpectation("||", false); 247 var peg$e17 = peg$literalExpectation("&&", false); 248 var peg$e18 = peg$literalExpectation("==", false); 249 var peg$e19 = peg$literalExpectation("!=", false); 250 var peg$e20 = peg$literalExpectation("<=", false); 251 var peg$e21 = peg$literalExpectation("<", false); 252 var peg$e22 = peg$literalExpectation(">=", false); 253 var peg$e23 = peg$literalExpectation(">", false); 254 var peg$e24 = peg$literalExpectation("to", false); 255 var peg$e25 = peg$literalExpectation("+", false); 256 var peg$e26 = peg$literalExpectation("-", false); 257 var peg$e27 = peg$literalExpectation(".+", false); 258 var peg$e28 = peg$literalExpectation(".-", false); 259 var peg$e29 = peg$literalExpectation("*", false); 260 var peg$e30 = peg$literalExpectation("/", false); 261 var peg$e31 = peg$literalExpectation(".*", false); 262 var peg$e32 = peg$literalExpectation("./", false); 263 var peg$e33 = peg$literalExpectation("^", false); 264 var peg$e34 = peg$literalExpectation(".^", false); 265 var peg$e35 = peg$literalExpectation("->", false); 266 var peg$e36 = peg$otherExpectation("unary operator"); 267 var peg$e37 = peg$literalExpectation("!", false); 268 var peg$e38 = peg$literalExpectation("[", false); 269 var peg$e39 = peg$literalExpectation(".", false); 270 var peg$e40 = peg$literalExpectation("]", false); 271 var peg$e41 = peg$otherExpectation("void"); 272 var peg$e42 = peg$literalExpectation("()", false); 273 var peg$e43 = peg$otherExpectation("identifier"); 274 var peg$e44 = peg$classExpectation([["A", "Z"]], false, false); 275 var peg$e45 = peg$classExpectation(["_", ["a", "z"], ["0", "9"]], false, true); 276 var peg$e46 = peg$classExpectation(["_", ["a", "z"]], false, false); 277 var peg$e47 = peg$literalExpectation("minutes", false); 278 var peg$e48 = peg$literalExpectation("hours", false); 279 var peg$e49 = peg$literalExpectation("days", false); 280 var peg$e50 = peg$literalExpectation("years", false); 281 var peg$e51 = peg$literalExpectation("n", false); 282 var peg$e52 = peg$literalExpectation("m", false); 283 var peg$e53 = peg$literalExpectation("k", false); 284 var peg$e54 = peg$literalExpectation("M", false); 285 var peg$e55 = peg$literalExpectation("B", false); 286 var peg$e56 = peg$literalExpectation("G", false); 287 var peg$e57 = peg$literalExpectation("T", false); 288 var peg$e58 = peg$literalExpectation("P", false); 289 var peg$e59 = peg$literalExpectation("%", false); 290 var peg$e60 = peg$classExpectation(["$", "_", ["a", "z"]], false, false); 291 var peg$e61 = peg$classExpectation(["$", "_", ["a", "z"], ["0", "9"]], false, true); 292 var peg$e62 = peg$otherExpectation("escape sequence"); 293 var peg$e63 = peg$literalExpectation("\\", false); 294 var peg$e64 = peg$classExpectation(["u"], true, false); 295 var peg$e65 = peg$literalExpectation("u", false); 296 var peg$e66 = peg$anyExpectation(); 297 var peg$e67 = peg$otherExpectation("string"); 298 var peg$e68 = peg$literalExpectation("'", false); 299 var peg$e69 = peg$literalExpectation("\"", false); 300 var peg$e70 = peg$otherExpectation("number"); 301 var peg$e71 = peg$classExpectation(["e"], false, true); 302 var peg$e72 = peg$classExpectation([["0", "9"]], false, false); 303 var peg$e73 = peg$otherExpectation("boolean"); 304 var peg$e74 = peg$literalExpectation("true", false); 305 var peg$e75 = peg$literalExpectation("false", false); 306 var peg$e76 = peg$classExpectation([["a", "z"]], false, true); 307 var peg$e77 = peg$classExpectation(["_", "$"], false, false); 308 var peg$e78 = peg$literalExpectation("|", false); 309 var peg$e79 = peg$otherExpectation("array"); 310 var peg$e80 = peg$otherExpectation("dict"); 311 var peg$e81 = peg$otherExpectation("whitespace"); 312 var peg$e82 = peg$otherExpectation(";"); 313 var peg$e83 = peg$literalExpectation(";", false); 314 var peg$e84 = peg$otherExpectation(","); 315 var peg$e85 = peg$literalExpectation(",", false); 316 var peg$e86 = peg$otherExpectation("newline"); 317 var peg$e87 = peg$classExpectation(["\n", "\r"], false, false); 318 var peg$e88 = peg$otherExpectation("line comment"); 319 var peg$e89 = peg$literalExpectation("//", false); 320 var peg$e90 = peg$classExpectation(["\r", "\n"], true, false); 321 var peg$e91 = peg$otherExpectation("comment"); 322 var peg$e92 = peg$literalExpectation("/*", false); 323 var peg$e93 = peg$classExpectation(["*"], true, false); 324 var peg$e94 = peg$classExpectation(["*"], false, false); 325 var peg$e95 = peg$classExpectation(["/"], true, false); 326 var peg$e96 = peg$literalExpectation("*/", false); 327 var peg$e97 = peg$classExpectation([" ", "\t"], false, false); 328 var peg$f0 = function (start) { return start; }; 329 var peg$f1 = function (imports, statements, finalExpression) { 330 if (finalExpression) { 331 statements.push(finalExpression); 332 } 333 return h.nodeProgram(imports, statements, location()); 334 }; 335 var peg$f2 = function (imports, finalExpression) { return h.nodeProgram(imports, [finalExpression], location()); }; 336 var peg$f3 = function (file, variable) { return [file, variable]; }; 337 var peg$f4 = function (finalExpression) { return h.nodeBlock([finalExpression], location()); }; 338 var peg$f5 = function (statements, finalExpression) { 339 if (finalExpression) { 340 statements.push(finalExpression); 341 } 342 return h.nodeBlock(statements, location()); 343 }; 344 var peg$f6 = function (finalExpression) { return h.nodeBlock([finalExpression], location()); }; 345 var peg$f7 = function (value) { 346 const variable = h.nodeIdentifier("_", location()); 347 return h.nodeLetStatement(variable, value, false, location()); 348 }; 349 var peg$f8 = function (exported, variable, value) { return h.nodeLetStatement(variable, value, Boolean(exported), location()); }; 350 var peg$f9 = function (exported, variable, args, body) { 351 const value = h.nodeLambda(args, body, location(), variable); 352 return h.nodeDefunStatement(variable, value, Boolean(exported), location()); 353 }; 354 var peg$f10 = function (id, annotation) { 355 return annotation ? h.nodeIdentifierWithAnnotation(id.value, annotation, location()) : id; 356 }; 357 var peg$f11 = function (condition, trueExpression, falseExpression) { return h.nodeTernary(condition, trueExpression, falseExpression, 'IfThenElse', location()); }; 358 var peg$f12 = function (condition, trueExpression, falseExpression) { return h.nodeTernary(condition, trueExpression, falseExpression, 'C', location()); }; 359 var peg$f13 = function (head, tail) { return h.makeInfixChain(head, tail, location()); }; 360 var peg$f14 = function (head, tail) { return h.makeInfixChain(head, tail, location()); }; 361 var peg$f15 = function (left, operator, right) { return h.nodeInfixCall(operator, left, right, location()); }; 362 var peg$f16 = function (left, operator, right) { return h.nodeInfixCall(operator, left, right, location()); }; 363 var peg$f17 = function (head, tail) { return h.makeInfixChain(head, tail, location()); }; 364 var peg$f18 = function (head, tail) { return h.makeInfixChain(head, tail, location()); }; 365 var peg$f19 = function (head, tail) { return h.makeInfixChain(head, tail, location()); }; 366 var peg$f20 = function (left, operator, right) { return h.nodeInfixCall(operator, left, right, location()); }; 367 var peg$f21 = function (head, tail) { 368 return tail.reduce(function (result, element) { 369 return h.nodePipe(result, element.callable, element.args, location()); 370 }, head); 371 }; 372 var peg$f22 = function (fn, args) { return { callable: fn, args }; }; 373 var peg$f23 = function (fn) { return { callable: fn, args: [] }; }; 374 var peg$f24 = function (unaryOperator, right) { return h.nodeUnaryCall(unaryOperator, right, location()); }; 375 var peg$f25 = function (head, arg) { return { mode: 'bracket', arg }; }; 376 var peg$f26 = function (head, arg) { return { mode: 'dot', arg }; }; 377 var peg$f27 = function (head, tail) { 378 return tail.reduce(function (result, element) { 379 switch (element.mode) { 380 case 'dot': 381 return h.nodeDotLookup(result, element.arg, location()); 382 case 'bracket': 383 return h.nodeBracketLookup(result, element.arg, location()); 384 default: 385 throw new Error("Parser implementation error"); 386 } 387 }, head); 388 }; 389 var peg$f28 = function (head, args) { return { mode: 'call', args }; }; 390 var peg$f29 = function (head, arg) { return { mode: 'bracket', arg }; }; 391 var peg$f30 = function (head, arg) { return { mode: 'dot', arg }; }; 392 var peg$f31 = function (head, tail) { 393 return tail.reduce(function (result, element) { 394 switch (element.mode) { 395 case 'call': 396 return h.nodeCall(result, element.args, location()); 397 case 'dot': 398 return h.nodeDotLookup(result, element.arg, location()); 399 case 'bracket': 400 return h.nodeBracketLookup(result, element.arg, location()); 401 default: 402 throw new Error("Parser implementation error"); 403 } 404 }, head); 405 }; 406 var peg$f32 = function () { return h.nodeVoid(location()); }; 407 var peg$f33 = function (head, tail, final) { 408 const modifiers = [head, ...tail, final]; 409 const modifiedIdentifier = modifiers.join('.'); 410 return h.nodeIdentifier(modifiedIdentifier, location()); 411 }; 412 var peg$f34 = function () { return h.nodeIdentifier(text(), location()); }; 413 var peg$f35 = function () { return h.nodeIdentifier(text(), location()); }; 414 var peg$f36 = function (esc) { return h.parseEscapeSequence([esc], location(), error); }; 415 var peg$f37 = function (esc) { return h.parseEscapeSequence(esc, location(), error); }; 416 var peg$f38 = function (characters) { return h.nodeString(characters.join(""), location()); }; 417 var peg$f39 = function (characters) { return h.nodeString(characters.join(""), location()); }; 418 var peg$f40 = function (number, unit) { 419 if (unit === null) { 420 return number; 421 } 422 else { 423 return h.nodeUnitValue(number, unit, location()); 424 } 425 }; 426 var peg$f41 = function (significand, exponent) { 427 return h.nodeFloat({ 428 integer: significand.integer, 429 fractional: significand.fractional, 430 exponent, 431 }, location()); 432 }; 433 var peg$f42 = function (integer, fractional) { 434 return { 435 integer, 436 fractional, 437 }; 438 }; 439 var peg$f43 = function (integer) { 440 return { 441 integer, 442 fractional: null, 443 }; 444 }; 445 var peg$f44 = function (fractional) { 446 return { 447 integer: 0, 448 fractional, 449 }; 450 }; 451 var peg$f45 = function () { return parseInt(text(), 10); }; 452 var peg$f46 = function () { return parseInt(text(), 10); }; 453 var peg$f47 = function () { return h.nodeBoolean(text() === 'true', location()); }; 454 var peg$f48 = function (args, statements, finalExpression) { 455 statements.push(finalExpression); 456 return h.nodeLambda(args, h.nodeBlock(statements, location()), location(), undefined); 457 }; 458 var peg$f49 = function (args, finalExpression) { return h.nodeLambda(args, finalExpression, location(), undefined); }; 459 var peg$f50 = function () { return h.nodeArray([], location()); }; 460 var peg$f51 = function (args) { return h.nodeArray(args, location()); }; 461 var peg$f52 = function () { return h.nodeDict([], location()); }; 462 var peg$f53 = function (args) { return h.nodeDict(args, location()); }; 463 var peg$f54 = function (key, value) { return h.nodeKeyValue(key, value, location()); }; 464 var peg$f55 = function (comment) { options.comments.push(h.lineComment(comment, location())); }; 465 var peg$f56 = function (comment) { options.comments.push(h.blockComment(comment, location())); }; 466 var peg$currPos = 0; 467 var peg$savedPos = 0; 468 var peg$posDetailsCache = [{ line: 1, column: 1 }]; 469 var peg$maxFailPos = 0; 470 var peg$maxFailExpected = []; 471 var peg$silentFails = 0; 472 var peg$resultsCache = {}; 473 var peg$result; 474 if ("startRule" in options) { 475 if (!(options.startRule in peg$startRuleFunctions)) { 476 throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); 477 } 478 peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; 479 } 480 function text() { 481 return input.substring(peg$savedPos, peg$currPos); 482 } 483 function offset() { 484 return peg$savedPos; 485 } 486 function range() { 487 return { 488 source: peg$source, 489 start: peg$savedPos, 490 end: peg$currPos 491 }; 492 } 493 function location() { 494 return peg$computeLocation(peg$savedPos, peg$currPos); 495 } 496 function expected(description, location) { 497 location = location !== undefined 498 ? location 499 : peg$computeLocation(peg$savedPos, peg$currPos); 500 throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location); 501 } 502 function error(message, location) { 503 location = location !== undefined 504 ? location 505 : peg$computeLocation(peg$savedPos, peg$currPos); 506 throw peg$buildSimpleError(message, location); 507 } 508 function peg$literalExpectation(text, ignoreCase) { 509 return { type: "literal", text: text, ignoreCase: ignoreCase }; 510 } 511 function peg$classExpectation(parts, inverted, ignoreCase) { 512 return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; 513 } 514 function peg$anyExpectation() { 515 return { type: "any" }; 516 } 517 function peg$endExpectation() { 518 return { type: "end" }; 519 } 520 function peg$otherExpectation(description) { 521 return { type: "other", description: description }; 522 } 523 function peg$computePosDetails(pos) { 524 var details = peg$posDetailsCache[pos]; 525 var p; 526 if (details) { 527 return details; 528 } 529 else { 530 p = pos - 1; 531 while (!peg$posDetailsCache[p]) { 532 p--; 533 } 534 details = peg$posDetailsCache[p]; 535 details = { 536 line: details.line, 537 column: details.column 538 }; 539 while (p < pos) { 540 if (input.charCodeAt(p) === 10) { 541 details.line++; 542 details.column = 1; 543 } 544 else { 545 details.column++; 546 } 547 p++; 548 } 549 peg$posDetailsCache[pos] = details; 550 return details; 551 } 552 } 553 function peg$computeLocation(startPos, endPos, offset) { 554 var startPosDetails = peg$computePosDetails(startPos); 555 var endPosDetails = peg$computePosDetails(endPos); 556 var res = { 557 source: peg$source, 558 start: { 559 offset: startPos, 560 line: startPosDetails.line, 561 column: startPosDetails.column 562 }, 563 end: { 564 offset: endPos, 565 line: endPosDetails.line, 566 column: endPosDetails.column 567 } 568 }; 569 if (offset && peg$source && (typeof peg$source.offset === "function")) { 570 res.start = peg$source.offset(res.start); 571 res.end = peg$source.offset(res.end); 572 } 573 return res; 574 } 575 function peg$fail(expected) { 576 if (peg$currPos < peg$maxFailPos) { 577 return; 578 } 579 if (peg$currPos > peg$maxFailPos) { 580 peg$maxFailPos = peg$currPos; 581 peg$maxFailExpected = []; 582 } 583 peg$maxFailExpected.push(expected); 584 } 585 function peg$buildSimpleError(message, location) { 586 return new peg$SyntaxError(message, null, null, location); 587 } 588 function peg$buildStructuredError(expected, found, location) { 589 return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location); 590 } 591 function peg$parsestart() { 592 var s0, s1, s2, s3, s4; 593 var key = peg$currPos * 82 + 0; 594 var cached = peg$resultsCache[key]; 595 if (cached) { 596 peg$currPos = cached.nextPos; 597 return cached.result; 598 } 599 s0 = peg$currPos; 600 s1 = peg$parse_nl(); 601 s2 = peg$parseouterBlock(); 602 if (s2 !== peg$FAILED) { 603 s3 = peg$parse_nl(); 604 s4 = peg$parsefinalComment(); 605 if (s4 === peg$FAILED) { 606 s4 = null; 607 } 608 peg$savedPos = s0; 609 s0 = peg$f0(s2); 610 } 611 else { 612 peg$currPos = s0; 613 s0 = peg$FAILED; 614 } 615 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 616 return s0; 617 } 618 function peg$parsezeroOMoreArgumentsBlockOrExpression() { 619 var s0; 620 var key = peg$currPos * 82 + 1; 621 var cached = peg$resultsCache[key]; 622 if (cached) { 623 peg$currPos = cached.nextPos; 624 return cached.result; 625 } 626 s0 = peg$parselambda(); 627 if (s0 === peg$FAILED) { 628 s0 = peg$parseinnerBlockOrExpression(); 629 } 630 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 631 return s0; 632 } 633 function peg$parseouterBlock() { 634 var s0, s1, s2, s3, s4, s5; 635 var key = peg$currPos * 82 + 2; 636 var cached = peg$resultsCache[key]; 637 if (cached) { 638 peg$currPos = cached.nextPos; 639 return cached.result; 640 } 641 s0 = peg$currPos; 642 s1 = peg$parseimportStatementsList(); 643 s2 = peg$parsestatementsList(); 644 if (s2 !== peg$FAILED) { 645 s3 = peg$currPos; 646 s4 = peg$parsestatementSeparator(); 647 if (s4 !== peg$FAILED) { 648 s5 = peg$parseexpression(); 649 if (s5 !== peg$FAILED) { 650 s3 = s5; 651 } 652 else { 653 peg$currPos = s3; 654 s3 = peg$FAILED; 655 } 656 } 657 else { 658 peg$currPos = s3; 659 s3 = peg$FAILED; 660 } 661 if (s3 === peg$FAILED) { 662 s3 = null; 663 } 664 peg$savedPos = s0; 665 s0 = peg$f1(s1, s2, s3); 666 } 667 else { 668 peg$currPos = s0; 669 s0 = peg$FAILED; 670 } 671 if (s0 === peg$FAILED) { 672 s0 = peg$currPos; 673 s1 = peg$parseimportStatementsList(); 674 s2 = peg$parseexpression(); 675 if (s2 !== peg$FAILED) { 676 peg$savedPos = s0; 677 s0 = peg$f2(s1, s2); 678 } 679 else { 680 peg$currPos = s0; 681 s0 = peg$FAILED; 682 } 683 } 684 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 685 return s0; 686 } 687 function peg$parseimportStatementsList() { 688 var s0, s1, s2, s3; 689 var key = peg$currPos * 82 + 3; 690 var cached = peg$resultsCache[key]; 691 if (cached) { 692 peg$currPos = cached.nextPos; 693 return cached.result; 694 } 695 s0 = []; 696 s1 = peg$currPos; 697 s2 = peg$parseimportStatement(); 698 if (s2 !== peg$FAILED) { 699 s3 = peg$parse__nl(); 700 if (s3 !== peg$FAILED) { 701 s1 = s2; 702 } 703 else { 704 peg$currPos = s1; 705 s1 = peg$FAILED; 706 } 707 } 708 else { 709 peg$currPos = s1; 710 s1 = peg$FAILED; 711 } 712 while (s1 !== peg$FAILED) { 713 s0.push(s1); 714 s1 = peg$currPos; 715 s2 = peg$parseimportStatement(); 716 if (s2 !== peg$FAILED) { 717 s3 = peg$parse__nl(); 718 if (s3 !== peg$FAILED) { 719 s1 = s2; 720 } 721 else { 722 peg$currPos = s1; 723 s1 = peg$FAILED; 724 } 725 } 726 else { 727 peg$currPos = s1; 728 s1 = peg$FAILED; 729 } 730 } 731 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 732 return s0; 733 } 734 function peg$parseimportStatement() { 735 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 736 var key = peg$currPos * 82 + 4; 737 var cached = peg$resultsCache[key]; 738 if (cached) { 739 peg$currPos = cached.nextPos; 740 return cached.result; 741 } 742 s0 = peg$currPos; 743 s1 = peg$parse_nl(); 744 if (input.substr(peg$currPos, 6) === peg$c0) { 745 s2 = peg$c0; 746 peg$currPos += 6; 747 } 748 else { 749 s2 = peg$FAILED; 750 if (peg$silentFails === 0) { 751 peg$fail(peg$e0); 752 } 753 } 754 if (s2 !== peg$FAILED) { 755 s3 = peg$parse__(); 756 if (s3 !== peg$FAILED) { 757 s4 = peg$parsestring(); 758 if (s4 !== peg$FAILED) { 759 s5 = peg$currPos; 760 s6 = peg$parse__(); 761 if (s6 !== peg$FAILED) { 762 if (input.substr(peg$currPos, 2) === peg$c1) { 763 s7 = peg$c1; 764 peg$currPos += 2; 765 } 766 else { 767 s7 = peg$FAILED; 768 if (peg$silentFails === 0) { 769 peg$fail(peg$e1); 770 } 771 } 772 if (s7 !== peg$FAILED) { 773 s8 = peg$parse__(); 774 if (s8 !== peg$FAILED) { 775 s9 = peg$parseidentifier(); 776 if (s9 !== peg$FAILED) { 777 s5 = s9; 778 } 779 else { 780 peg$currPos = s5; 781 s5 = peg$FAILED; 782 } 783 } 784 else { 785 peg$currPos = s5; 786 s5 = peg$FAILED; 787 } 788 } 789 else { 790 peg$currPos = s5; 791 s5 = peg$FAILED; 792 } 793 } 794 else { 795 peg$currPos = s5; 796 s5 = peg$FAILED; 797 } 798 if (s5 !== peg$FAILED) { 799 peg$savedPos = s0; 800 s0 = peg$f3(s4, s5); 801 } 802 else { 803 peg$currPos = s0; 804 s0 = peg$FAILED; 805 } 806 } 807 else { 808 peg$currPos = s0; 809 s0 = peg$FAILED; 810 } 811 } 812 else { 813 peg$currPos = s0; 814 s0 = peg$FAILED; 815 } 816 } 817 else { 818 peg$currPos = s0; 819 s0 = peg$FAILED; 820 } 821 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 822 return s0; 823 } 824 function peg$parseinnerBlockOrExpression() { 825 var s0, s1; 826 var key = peg$currPos * 82 + 5; 827 var cached = peg$resultsCache[key]; 828 if (cached) { 829 peg$currPos = cached.nextPos; 830 return cached.result; 831 } 832 s0 = peg$parsequotedInnerBlock(); 833 if (s0 === peg$FAILED) { 834 s0 = peg$currPos; 835 s1 = peg$parseexpression(); 836 if (s1 !== peg$FAILED) { 837 peg$savedPos = s0; 838 s1 = peg$f4(s1); 839 } 840 s0 = s1; 841 } 842 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 843 return s0; 844 } 845 function peg$parsequotedInnerBlock() { 846 var s0, s1, s2, s3, s4, s5, s6; 847 var key = peg$currPos * 82 + 6; 848 var cached = peg$resultsCache[key]; 849 if (cached) { 850 peg$currPos = cached.nextPos; 851 return cached.result; 852 } 853 s0 = peg$currPos; 854 if (input.charCodeAt(peg$currPos) === 123) { 855 s1 = peg$c2; 856 peg$currPos++; 857 } 858 else { 859 s1 = peg$FAILED; 860 if (peg$silentFails === 0) { 861 peg$fail(peg$e2); 862 } 863 } 864 if (s1 !== peg$FAILED) { 865 s2 = peg$parse_nl(); 866 s3 = peg$parsestatementsList(); 867 if (s3 !== peg$FAILED) { 868 s4 = peg$currPos; 869 s5 = peg$parsestatementSeparator(); 870 if (s5 !== peg$FAILED) { 871 s6 = peg$parseexpression(); 872 if (s6 !== peg$FAILED) { 873 s4 = s6; 874 } 875 else { 876 peg$currPos = s4; 877 s4 = peg$FAILED; 878 } 879 } 880 else { 881 peg$currPos = s4; 882 s4 = peg$FAILED; 883 } 884 if (s4 !== peg$FAILED) { 885 s5 = peg$parse_nl(); 886 if (input.charCodeAt(peg$currPos) === 125) { 887 s6 = peg$c3; 888 peg$currPos++; 889 } 890 else { 891 s6 = peg$FAILED; 892 if (peg$silentFails === 0) { 893 peg$fail(peg$e3); 894 } 895 } 896 if (s6 !== peg$FAILED) { 897 peg$savedPos = s0; 898 s0 = peg$f5(s3, s4); 899 } 900 else { 901 peg$currPos = s0; 902 s0 = peg$FAILED; 903 } 904 } 905 else { 906 peg$currPos = s0; 907 s0 = peg$FAILED; 908 } 909 } 910 else { 911 peg$currPos = s0; 912 s0 = peg$FAILED; 913 } 914 } 915 else { 916 peg$currPos = s0; 917 s0 = peg$FAILED; 918 } 919 if (s0 === peg$FAILED) { 920 s0 = peg$currPos; 921 if (input.charCodeAt(peg$currPos) === 123) { 922 s1 = peg$c2; 923 peg$currPos++; 924 } 925 else { 926 s1 = peg$FAILED; 927 if (peg$silentFails === 0) { 928 peg$fail(peg$e2); 929 } 930 } 931 if (s1 !== peg$FAILED) { 932 s2 = peg$parse_nl(); 933 s3 = peg$parseexpression(); 934 if (s3 !== peg$FAILED) { 935 s4 = peg$parse_nl(); 936 if (input.charCodeAt(peg$currPos) === 125) { 937 s5 = peg$c3; 938 peg$currPos++; 939 } 940 else { 941 s5 = peg$FAILED; 942 if (peg$silentFails === 0) { 943 peg$fail(peg$e3); 944 } 945 } 946 if (s5 !== peg$FAILED) { 947 peg$savedPos = s0; 948 s0 = peg$f6(s3); 949 } 950 else { 951 peg$currPos = s0; 952 s0 = peg$FAILED; 953 } 954 } 955 else { 956 peg$currPos = s0; 957 s0 = peg$FAILED; 958 } 959 } 960 else { 961 peg$currPos = s0; 962 s0 = peg$FAILED; 963 } 964 } 965 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 966 return s0; 967 } 968 function peg$parsestatementsList() { 969 var s0, s1, s2, s3; 970 var key = peg$currPos * 82 + 7; 971 var cached = peg$resultsCache[key]; 972 if (cached) { 973 peg$currPos = cached.nextPos; 974 return cached.result; 975 } 976 s0 = peg$currPos; 977 s1 = []; 978 s2 = peg$parsestatement(); 979 while (s2 !== peg$FAILED) { 980 s1.push(s2); 981 s2 = peg$currPos; 982 s3 = peg$parsestatementSeparator(); 983 if (s3 !== peg$FAILED) { 984 s3 = peg$parsestatement(); 985 if (s3 === peg$FAILED) { 986 peg$currPos = s2; 987 s2 = peg$FAILED; 988 } 989 else { 990 s2 = s3; 991 } 992 } 993 else { 994 s2 = s3; 995 } 996 } 997 if (s1.length < 1) { 998 peg$currPos = s0; 999 s0 = peg$FAILED; 1000 } 1001 else { 1002 s0 = s1; 1003 } 1004 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1005 return s0; 1006 } 1007 function peg$parsestatement() { 1008 var s0; 1009 var key = peg$currPos * 82 + 8; 1010 var cached = peg$resultsCache[key]; 1011 if (cached) { 1012 peg$currPos = cached.nextPos; 1013 return cached.result; 1014 } 1015 s0 = peg$parseletStatement(); 1016 if (s0 === peg$FAILED) { 1017 s0 = peg$parsedefunStatement(); 1018 if (s0 === peg$FAILED) { 1019 s0 = peg$parsevoidStatement(); 1020 } 1021 } 1022 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1023 return s0; 1024 } 1025 function peg$parsevoidStatement() { 1026 var s0, s1, s2, s3; 1027 var key = peg$currPos * 82 + 9; 1028 var cached = peg$resultsCache[key]; 1029 if (cached) { 1030 peg$currPos = cached.nextPos; 1031 return cached.result; 1032 } 1033 s0 = peg$currPos; 1034 if (input.substr(peg$currPos, 4) === peg$c4) { 1035 s1 = peg$c4; 1036 peg$currPos += 4; 1037 } 1038 else { 1039 s1 = peg$FAILED; 1040 if (peg$silentFails === 0) { 1041 peg$fail(peg$e4); 1042 } 1043 } 1044 if (s1 !== peg$FAILED) { 1045 s2 = peg$parse_nl(); 1046 s3 = peg$parsezeroOMoreArgumentsBlockOrExpression(); 1047 if (s3 !== peg$FAILED) { 1048 peg$savedPos = s0; 1049 s0 = peg$f7(s3); 1050 } 1051 else { 1052 peg$currPos = s0; 1053 s0 = peg$FAILED; 1054 } 1055 } 1056 else { 1057 peg$currPos = s0; 1058 s0 = peg$FAILED; 1059 } 1060 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1061 return s0; 1062 } 1063 function peg$parseletStatement() { 1064 var s0, s1, s2, s3, s4, s5, s6; 1065 var key = peg$currPos * 82 + 10; 1066 var cached = peg$resultsCache[key]; 1067 if (cached) { 1068 peg$currPos = cached.nextPos; 1069 return cached.result; 1070 } 1071 s0 = peg$currPos; 1072 s1 = peg$currPos; 1073 if (input.substr(peg$currPos, 6) === peg$c5) { 1074 s2 = peg$c5; 1075 peg$currPos += 6; 1076 } 1077 else { 1078 s2 = peg$FAILED; 1079 if (peg$silentFails === 0) { 1080 peg$fail(peg$e5); 1081 } 1082 } 1083 if (s2 !== peg$FAILED) { 1084 s3 = peg$parse__nl(); 1085 if (s3 !== peg$FAILED) { 1086 s2 = [s2, s3]; 1087 s1 = s2; 1088 } 1089 else { 1090 peg$currPos = s1; 1091 s1 = peg$FAILED; 1092 } 1093 } 1094 else { 1095 peg$currPos = s1; 1096 s1 = peg$FAILED; 1097 } 1098 if (s1 === peg$FAILED) { 1099 s1 = null; 1100 } 1101 s2 = peg$parsevariable(); 1102 if (s2 !== peg$FAILED) { 1103 s3 = peg$parse_(); 1104 s4 = peg$parseassignmentOp(); 1105 if (s4 !== peg$FAILED) { 1106 s5 = peg$parse_nl(); 1107 s6 = peg$parsezeroOMoreArgumentsBlockOrExpression(); 1108 if (s6 !== peg$FAILED) { 1109 peg$savedPos = s0; 1110 s0 = peg$f8(s1, s2, s6); 1111 } 1112 else { 1113 peg$currPos = s0; 1114 s0 = peg$FAILED; 1115 } 1116 } 1117 else { 1118 peg$currPos = s0; 1119 s0 = peg$FAILED; 1120 } 1121 } 1122 else { 1123 peg$currPos = s0; 1124 s0 = peg$FAILED; 1125 } 1126 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1127 return s0; 1128 } 1129 function peg$parsedefunStatement() { 1130 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; 1131 var key = peg$currPos * 82 + 11; 1132 var cached = peg$resultsCache[key]; 1133 if (cached) { 1134 peg$currPos = cached.nextPos; 1135 return cached.result; 1136 } 1137 s0 = peg$currPos; 1138 s1 = peg$currPos; 1139 if (input.substr(peg$currPos, 6) === peg$c5) { 1140 s2 = peg$c5; 1141 peg$currPos += 6; 1142 } 1143 else { 1144 s2 = peg$FAILED; 1145 if (peg$silentFails === 0) { 1146 peg$fail(peg$e5); 1147 } 1148 } 1149 if (s2 !== peg$FAILED) { 1150 s3 = peg$parse__nl(); 1151 if (s3 !== peg$FAILED) { 1152 s2 = [s2, s3]; 1153 s1 = s2; 1154 } 1155 else { 1156 peg$currPos = s1; 1157 s1 = peg$FAILED; 1158 } 1159 } 1160 else { 1161 peg$currPos = s1; 1162 s1 = peg$FAILED; 1163 } 1164 if (s1 === peg$FAILED) { 1165 s1 = null; 1166 } 1167 s2 = peg$parsevariable(); 1168 if (s2 !== peg$FAILED) { 1169 if (input.charCodeAt(peg$currPos) === 40) { 1170 s3 = peg$c6; 1171 peg$currPos++; 1172 } 1173 else { 1174 s3 = peg$FAILED; 1175 if (peg$silentFails === 0) { 1176 peg$fail(peg$e6); 1177 } 1178 } 1179 if (s3 !== peg$FAILED) { 1180 s4 = peg$parse_nl(); 1181 s5 = peg$parsefunctionParameters(); 1182 s6 = peg$parse_nl(); 1183 if (input.charCodeAt(peg$currPos) === 41) { 1184 s7 = peg$c7; 1185 peg$currPos++; 1186 } 1187 else { 1188 s7 = peg$FAILED; 1189 if (peg$silentFails === 0) { 1190 peg$fail(peg$e7); 1191 } 1192 } 1193 if (s7 !== peg$FAILED) { 1194 s8 = peg$parse_(); 1195 s9 = peg$parseassignmentOp(); 1196 if (s9 !== peg$FAILED) { 1197 s10 = peg$parse_nl(); 1198 s11 = peg$parseinnerBlockOrExpression(); 1199 if (s11 !== peg$FAILED) { 1200 peg$savedPos = s0; 1201 s0 = peg$f9(s1, s2, s5, s11); 1202 } 1203 else { 1204 peg$currPos = s0; 1205 s0 = peg$FAILED; 1206 } 1207 } 1208 else { 1209 peg$currPos = s0; 1210 s0 = peg$FAILED; 1211 } 1212 } 1213 else { 1214 peg$currPos = s0; 1215 s0 = peg$FAILED; 1216 } 1217 } 1218 else { 1219 peg$currPos = s0; 1220 s0 = peg$FAILED; 1221 } 1222 } 1223 else { 1224 peg$currPos = s0; 1225 s0 = peg$FAILED; 1226 } 1227 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1228 return s0; 1229 } 1230 function peg$parseassignmentOp() { 1231 var s0, s1; 1232 var key = peg$currPos * 82 + 12; 1233 var cached = peg$resultsCache[key]; 1234 if (cached) { 1235 peg$currPos = cached.nextPos; 1236 return cached.result; 1237 } 1238 peg$silentFails++; 1239 if (input.charCodeAt(peg$currPos) === 61) { 1240 s0 = peg$c8; 1241 peg$currPos++; 1242 } 1243 else { 1244 s0 = peg$FAILED; 1245 if (peg$silentFails === 0) { 1246 peg$fail(peg$e9); 1247 } 1248 } 1249 peg$silentFails--; 1250 if (s0 === peg$FAILED) { 1251 s1 = peg$FAILED; 1252 if (peg$silentFails === 0) { 1253 peg$fail(peg$e8); 1254 } 1255 } 1256 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1257 return s0; 1258 } 1259 function peg$parsefunctionParameters() { 1260 var s0, s1, s2; 1261 var key = peg$currPos * 82 + 13; 1262 var cached = peg$resultsCache[key]; 1263 if (cached) { 1264 peg$currPos = cached.nextPos; 1265 return cached.result; 1266 } 1267 s0 = []; 1268 s1 = peg$parsefunctionParameter(); 1269 while (s1 !== peg$FAILED) { 1270 s0.push(s1); 1271 s1 = peg$currPos; 1272 s2 = peg$parsecommaSeparator(); 1273 if (s2 !== peg$FAILED) { 1274 s2 = peg$parsefunctionParameter(); 1275 if (s2 === peg$FAILED) { 1276 peg$currPos = s1; 1277 s1 = peg$FAILED; 1278 } 1279 else { 1280 s1 = s2; 1281 } 1282 } 1283 else { 1284 s1 = s2; 1285 } 1286 } 1287 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1288 return s0; 1289 } 1290 function peg$parsefunctionParameter() { 1291 var s0, s1, s2, s3, s4, s5, s6; 1292 var key = peg$currPos * 82 + 14; 1293 var cached = peg$resultsCache[key]; 1294 if (cached) { 1295 peg$currPos = cached.nextPos; 1296 return cached.result; 1297 } 1298 s0 = peg$currPos; 1299 s1 = peg$parsedollarIdentifier(); 1300 if (s1 !== peg$FAILED) { 1301 s2 = peg$currPos; 1302 s3 = peg$parse_(); 1303 if (input.charCodeAt(peg$currPos) === 58) { 1304 s4 = peg$c9; 1305 peg$currPos++; 1306 } 1307 else { 1308 s4 = peg$FAILED; 1309 if (peg$silentFails === 0) { 1310 peg$fail(peg$e10); 1311 } 1312 } 1313 if (s4 !== peg$FAILED) { 1314 s5 = peg$parse_nl(); 1315 s6 = peg$parseexpression(); 1316 if (s6 !== peg$FAILED) { 1317 s2 = s6; 1318 } 1319 else { 1320 peg$currPos = s2; 1321 s2 = peg$FAILED; 1322 } 1323 } 1324 else { 1325 peg$currPos = s2; 1326 s2 = peg$FAILED; 1327 } 1328 if (s2 === peg$FAILED) { 1329 s2 = null; 1330 } 1331 peg$savedPos = s0; 1332 s0 = peg$f10(s1, s2); 1333 } 1334 else { 1335 peg$currPos = s0; 1336 s0 = peg$FAILED; 1337 } 1338 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1339 return s0; 1340 } 1341 function peg$parseexpression() { 1342 var s0; 1343 var key = peg$currPos * 82 + 15; 1344 var cached = peg$resultsCache[key]; 1345 if (cached) { 1346 peg$currPos = cached.nextPos; 1347 return cached.result; 1348 } 1349 s0 = peg$parseifthenelse(); 1350 if (s0 === peg$FAILED) { 1351 s0 = peg$parseternary(); 1352 if (s0 === peg$FAILED) { 1353 s0 = peg$parselogicalOr(); 1354 } 1355 } 1356 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1357 return s0; 1358 } 1359 function peg$parseifthenelse() { 1360 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; 1361 var key = peg$currPos * 82 + 16; 1362 var cached = peg$resultsCache[key]; 1363 if (cached) { 1364 peg$currPos = cached.nextPos; 1365 return cached.result; 1366 } 1367 s0 = peg$currPos; 1368 if (input.substr(peg$currPos, 2) === peg$c10) { 1369 s1 = peg$c10; 1370 peg$currPos += 2; 1371 } 1372 else { 1373 s1 = peg$FAILED; 1374 if (peg$silentFails === 0) { 1375 peg$fail(peg$e11); 1376 } 1377 } 1378 if (s1 !== peg$FAILED) { 1379 s2 = peg$parse__nl(); 1380 if (s2 !== peg$FAILED) { 1381 s3 = peg$parselogicalOr(); 1382 if (s3 !== peg$FAILED) { 1383 s4 = peg$parse__nl(); 1384 if (s4 !== peg$FAILED) { 1385 if (input.substr(peg$currPos, 4) === peg$c11) { 1386 s5 = peg$c11; 1387 peg$currPos += 4; 1388 } 1389 else { 1390 s5 = peg$FAILED; 1391 if (peg$silentFails === 0) { 1392 peg$fail(peg$e12); 1393 } 1394 } 1395 if (s5 !== peg$FAILED) { 1396 s6 = peg$parse__nl(); 1397 if (s6 !== peg$FAILED) { 1398 s7 = peg$parseinnerBlockOrExpression(); 1399 if (s7 !== peg$FAILED) { 1400 s8 = peg$parse__nl(); 1401 if (s8 !== peg$FAILED) { 1402 if (input.substr(peg$currPos, 4) === peg$c12) { 1403 s9 = peg$c12; 1404 peg$currPos += 4; 1405 } 1406 else { 1407 s9 = peg$FAILED; 1408 if (peg$silentFails === 0) { 1409 peg$fail(peg$e13); 1410 } 1411 } 1412 if (s9 !== peg$FAILED) { 1413 s10 = peg$parse__nl(); 1414 if (s10 !== peg$FAILED) { 1415 s11 = peg$parseifthenelse(); 1416 if (s11 === peg$FAILED) { 1417 s11 = peg$parseinnerBlockOrExpression(); 1418 } 1419 if (s11 !== peg$FAILED) { 1420 peg$savedPos = s0; 1421 s0 = peg$f11(s3, s7, s11); 1422 } 1423 else { 1424 peg$currPos = s0; 1425 s0 = peg$FAILED; 1426 } 1427 } 1428 else { 1429 peg$currPos = s0; 1430 s0 = peg$FAILED; 1431 } 1432 } 1433 else { 1434 peg$currPos = s0; 1435 s0 = peg$FAILED; 1436 } 1437 } 1438 else { 1439 peg$currPos = s0; 1440 s0 = peg$FAILED; 1441 } 1442 } 1443 else { 1444 peg$currPos = s0; 1445 s0 = peg$FAILED; 1446 } 1447 } 1448 else { 1449 peg$currPos = s0; 1450 s0 = peg$FAILED; 1451 } 1452 } 1453 else { 1454 peg$currPos = s0; 1455 s0 = peg$FAILED; 1456 } 1457 } 1458 else { 1459 peg$currPos = s0; 1460 s0 = peg$FAILED; 1461 } 1462 } 1463 else { 1464 peg$currPos = s0; 1465 s0 = peg$FAILED; 1466 } 1467 } 1468 else { 1469 peg$currPos = s0; 1470 s0 = peg$FAILED; 1471 } 1472 } 1473 else { 1474 peg$currPos = s0; 1475 s0 = peg$FAILED; 1476 } 1477 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1478 return s0; 1479 } 1480 function peg$parseternary() { 1481 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 1482 var key = peg$currPos * 82 + 17; 1483 var cached = peg$resultsCache[key]; 1484 if (cached) { 1485 peg$currPos = cached.nextPos; 1486 return cached.result; 1487 } 1488 s0 = peg$currPos; 1489 s1 = peg$parselogicalOr(); 1490 if (s1 !== peg$FAILED) { 1491 s2 = peg$parse_(); 1492 if (input.charCodeAt(peg$currPos) === 63) { 1493 s3 = peg$c13; 1494 peg$currPos++; 1495 } 1496 else { 1497 s3 = peg$FAILED; 1498 if (peg$silentFails === 0) { 1499 peg$fail(peg$e14); 1500 } 1501 } 1502 if (s3 !== peg$FAILED) { 1503 s4 = peg$parse_nl(); 1504 s5 = peg$parselogicalOr(); 1505 if (s5 !== peg$FAILED) { 1506 s6 = peg$parse_(); 1507 if (input.charCodeAt(peg$currPos) === 58) { 1508 s7 = peg$c9; 1509 peg$currPos++; 1510 } 1511 else { 1512 s7 = peg$FAILED; 1513 if (peg$silentFails === 0) { 1514 peg$fail(peg$e10); 1515 } 1516 } 1517 if (s7 !== peg$FAILED) { 1518 s8 = peg$parse_nl(); 1519 s9 = peg$parseternary(); 1520 if (s9 === peg$FAILED) { 1521 s9 = peg$parselogicalOr(); 1522 } 1523 if (s9 !== peg$FAILED) { 1524 peg$savedPos = s0; 1525 s0 = peg$f12(s1, s5, s9); 1526 } 1527 else { 1528 peg$currPos = s0; 1529 s0 = peg$FAILED; 1530 } 1531 } 1532 else { 1533 peg$currPos = s0; 1534 s0 = peg$FAILED; 1535 } 1536 } 1537 else { 1538 peg$currPos = s0; 1539 s0 = peg$FAILED; 1540 } 1541 } 1542 else { 1543 peg$currPos = s0; 1544 s0 = peg$FAILED; 1545 } 1546 } 1547 else { 1548 peg$currPos = s0; 1549 s0 = peg$FAILED; 1550 } 1551 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1552 return s0; 1553 } 1554 function peg$parselogicalOr() { 1555 var s0, s1, s2, s3, s4, s5, s6, s7; 1556 var key = peg$currPos * 82 + 18; 1557 var cached = peg$resultsCache[key]; 1558 if (cached) { 1559 peg$currPos = cached.nextPos; 1560 return cached.result; 1561 } 1562 s0 = peg$currPos; 1563 s1 = peg$parselogicalAnd(); 1564 if (s1 !== peg$FAILED) { 1565 s2 = []; 1566 s3 = peg$currPos; 1567 s4 = peg$parse_(); 1568 s5 = peg$parselogicalOrOp(); 1569 if (s5 !== peg$FAILED) { 1570 s6 = peg$parse_nl(); 1571 s7 = peg$parselogicalAnd(); 1572 if (s7 !== peg$FAILED) { 1573 s3 = [s5, s7]; 1574 } 1575 else { 1576 peg$currPos = s3; 1577 s3 = peg$FAILED; 1578 } 1579 } 1580 else { 1581 peg$currPos = s3; 1582 s3 = peg$FAILED; 1583 } 1584 while (s3 !== peg$FAILED) { 1585 s2.push(s3); 1586 s3 = peg$currPos; 1587 s4 = peg$parse_(); 1588 s5 = peg$parselogicalOrOp(); 1589 if (s5 !== peg$FAILED) { 1590 s6 = peg$parse_nl(); 1591 s7 = peg$parselogicalAnd(); 1592 if (s7 !== peg$FAILED) { 1593 s3 = [s5, s7]; 1594 } 1595 else { 1596 peg$currPos = s3; 1597 s3 = peg$FAILED; 1598 } 1599 } 1600 else { 1601 peg$currPos = s3; 1602 s3 = peg$FAILED; 1603 } 1604 } 1605 peg$savedPos = s0; 1606 s0 = peg$f13(s1, s2); 1607 } 1608 else { 1609 peg$currPos = s0; 1610 s0 = peg$FAILED; 1611 } 1612 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1613 return s0; 1614 } 1615 function peg$parselogicalOrOp() { 1616 var s0, s1; 1617 var key = peg$currPos * 82 + 19; 1618 var cached = peg$resultsCache[key]; 1619 if (cached) { 1620 peg$currPos = cached.nextPos; 1621 return cached.result; 1622 } 1623 peg$silentFails++; 1624 if (input.substr(peg$currPos, 2) === peg$c14) { 1625 s0 = peg$c14; 1626 peg$currPos += 2; 1627 } 1628 else { 1629 s0 = peg$FAILED; 1630 if (peg$silentFails === 0) { 1631 peg$fail(peg$e16); 1632 } 1633 } 1634 peg$silentFails--; 1635 if (s0 === peg$FAILED) { 1636 s1 = peg$FAILED; 1637 if (peg$silentFails === 0) { 1638 peg$fail(peg$e15); 1639 } 1640 } 1641 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1642 return s0; 1643 } 1644 function peg$parselogicalAnd() { 1645 var s0, s1, s2, s3, s4, s5, s6, s7; 1646 var key = peg$currPos * 82 + 20; 1647 var cached = peg$resultsCache[key]; 1648 if (cached) { 1649 peg$currPos = cached.nextPos; 1650 return cached.result; 1651 } 1652 s0 = peg$currPos; 1653 s1 = peg$parseequality(); 1654 if (s1 !== peg$FAILED) { 1655 s2 = []; 1656 s3 = peg$currPos; 1657 s4 = peg$parse_(); 1658 s5 = peg$parselogicalAndOp(); 1659 if (s5 !== peg$FAILED) { 1660 s6 = peg$parse_nl(); 1661 s7 = peg$parseequality(); 1662 if (s7 !== peg$FAILED) { 1663 s3 = [s5, s7]; 1664 } 1665 else { 1666 peg$currPos = s3; 1667 s3 = peg$FAILED; 1668 } 1669 } 1670 else { 1671 peg$currPos = s3; 1672 s3 = peg$FAILED; 1673 } 1674 while (s3 !== peg$FAILED) { 1675 s2.push(s3); 1676 s3 = peg$currPos; 1677 s4 = peg$parse_(); 1678 s5 = peg$parselogicalAndOp(); 1679 if (s5 !== peg$FAILED) { 1680 s6 = peg$parse_nl(); 1681 s7 = peg$parseequality(); 1682 if (s7 !== peg$FAILED) { 1683 s3 = [s5, s7]; 1684 } 1685 else { 1686 peg$currPos = s3; 1687 s3 = peg$FAILED; 1688 } 1689 } 1690 else { 1691 peg$currPos = s3; 1692 s3 = peg$FAILED; 1693 } 1694 } 1695 peg$savedPos = s0; 1696 s0 = peg$f14(s1, s2); 1697 } 1698 else { 1699 peg$currPos = s0; 1700 s0 = peg$FAILED; 1701 } 1702 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1703 return s0; 1704 } 1705 function peg$parselogicalAndOp() { 1706 var s0, s1; 1707 var key = peg$currPos * 82 + 21; 1708 var cached = peg$resultsCache[key]; 1709 if (cached) { 1710 peg$currPos = cached.nextPos; 1711 return cached.result; 1712 } 1713 peg$silentFails++; 1714 if (input.substr(peg$currPos, 2) === peg$c15) { 1715 s0 = peg$c15; 1716 peg$currPos += 2; 1717 } 1718 else { 1719 s0 = peg$FAILED; 1720 if (peg$silentFails === 0) { 1721 peg$fail(peg$e17); 1722 } 1723 } 1724 peg$silentFails--; 1725 if (s0 === peg$FAILED) { 1726 s1 = peg$FAILED; 1727 if (peg$silentFails === 0) { 1728 peg$fail(peg$e15); 1729 } 1730 } 1731 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1732 return s0; 1733 } 1734 function peg$parseequality() { 1735 var s0, s1, s2, s3, s4, s5; 1736 var key = peg$currPos * 82 + 22; 1737 var cached = peg$resultsCache[key]; 1738 if (cached) { 1739 peg$currPos = cached.nextPos; 1740 return cached.result; 1741 } 1742 s0 = peg$currPos; 1743 s1 = peg$parserelational(); 1744 if (s1 !== peg$FAILED) { 1745 s2 = peg$parse_(); 1746 s3 = peg$parseequalityOp(); 1747 if (s3 !== peg$FAILED) { 1748 s4 = peg$parse_nl(); 1749 s5 = peg$parserelational(); 1750 if (s5 !== peg$FAILED) { 1751 peg$savedPos = s0; 1752 s0 = peg$f15(s1, s3, s5); 1753 } 1754 else { 1755 peg$currPos = s0; 1756 s0 = peg$FAILED; 1757 } 1758 } 1759 else { 1760 peg$currPos = s0; 1761 s0 = peg$FAILED; 1762 } 1763 } 1764 else { 1765 peg$currPos = s0; 1766 s0 = peg$FAILED; 1767 } 1768 if (s0 === peg$FAILED) { 1769 s0 = peg$parserelational(); 1770 } 1771 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1772 return s0; 1773 } 1774 function peg$parseequalityOp() { 1775 var s0, s1; 1776 var key = peg$currPos * 82 + 23; 1777 var cached = peg$resultsCache[key]; 1778 if (cached) { 1779 peg$currPos = cached.nextPos; 1780 return cached.result; 1781 } 1782 peg$silentFails++; 1783 if (input.substr(peg$currPos, 2) === peg$c16) { 1784 s0 = peg$c16; 1785 peg$currPos += 2; 1786 } 1787 else { 1788 s0 = peg$FAILED; 1789 if (peg$silentFails === 0) { 1790 peg$fail(peg$e18); 1791 } 1792 } 1793 if (s0 === peg$FAILED) { 1794 if (input.substr(peg$currPos, 2) === peg$c17) { 1795 s0 = peg$c17; 1796 peg$currPos += 2; 1797 } 1798 else { 1799 s0 = peg$FAILED; 1800 if (peg$silentFails === 0) { 1801 peg$fail(peg$e19); 1802 } 1803 } 1804 } 1805 peg$silentFails--; 1806 if (s0 === peg$FAILED) { 1807 s1 = peg$FAILED; 1808 if (peg$silentFails === 0) { 1809 peg$fail(peg$e15); 1810 } 1811 } 1812 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1813 return s0; 1814 } 1815 function peg$parserelational() { 1816 var s0, s1, s2, s3, s4, s5; 1817 var key = peg$currPos * 82 + 24; 1818 var cached = peg$resultsCache[key]; 1819 if (cached) { 1820 peg$currPos = cached.nextPos; 1821 return cached.result; 1822 } 1823 s0 = peg$currPos; 1824 s1 = peg$parsecredibleInterval(); 1825 if (s1 !== peg$FAILED) { 1826 s2 = peg$parse_(); 1827 s3 = peg$parserelationalOp(); 1828 if (s3 !== peg$FAILED) { 1829 s4 = peg$parse_nl(); 1830 s5 = peg$parsecredibleInterval(); 1831 if (s5 !== peg$FAILED) { 1832 peg$savedPos = s0; 1833 s0 = peg$f16(s1, s3, s5); 1834 } 1835 else { 1836 peg$currPos = s0; 1837 s0 = peg$FAILED; 1838 } 1839 } 1840 else { 1841 peg$currPos = s0; 1842 s0 = peg$FAILED; 1843 } 1844 } 1845 else { 1846 peg$currPos = s0; 1847 s0 = peg$FAILED; 1848 } 1849 if (s0 === peg$FAILED) { 1850 s0 = peg$parsecredibleInterval(); 1851 } 1852 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1853 return s0; 1854 } 1855 function peg$parserelationalOp() { 1856 var s0, s1; 1857 var key = peg$currPos * 82 + 25; 1858 var cached = peg$resultsCache[key]; 1859 if (cached) { 1860 peg$currPos = cached.nextPos; 1861 return cached.result; 1862 } 1863 peg$silentFails++; 1864 if (input.substr(peg$currPos, 2) === peg$c18) { 1865 s0 = peg$c18; 1866 peg$currPos += 2; 1867 } 1868 else { 1869 s0 = peg$FAILED; 1870 if (peg$silentFails === 0) { 1871 peg$fail(peg$e20); 1872 } 1873 } 1874 if (s0 === peg$FAILED) { 1875 if (input.charCodeAt(peg$currPos) === 60) { 1876 s0 = peg$c19; 1877 peg$currPos++; 1878 } 1879 else { 1880 s0 = peg$FAILED; 1881 if (peg$silentFails === 0) { 1882 peg$fail(peg$e21); 1883 } 1884 } 1885 if (s0 === peg$FAILED) { 1886 if (input.substr(peg$currPos, 2) === peg$c20) { 1887 s0 = peg$c20; 1888 peg$currPos += 2; 1889 } 1890 else { 1891 s0 = peg$FAILED; 1892 if (peg$silentFails === 0) { 1893 peg$fail(peg$e22); 1894 } 1895 } 1896 if (s0 === peg$FAILED) { 1897 if (input.charCodeAt(peg$currPos) === 62) { 1898 s0 = peg$c21; 1899 peg$currPos++; 1900 } 1901 else { 1902 s0 = peg$FAILED; 1903 if (peg$silentFails === 0) { 1904 peg$fail(peg$e23); 1905 } 1906 } 1907 } 1908 } 1909 } 1910 peg$silentFails--; 1911 if (s0 === peg$FAILED) { 1912 s1 = peg$FAILED; 1913 if (peg$silentFails === 0) { 1914 peg$fail(peg$e15); 1915 } 1916 } 1917 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 1918 return s0; 1919 } 1920 function peg$parsecredibleInterval() { 1921 var s0, s1, s2, s3, s4, s5, s6, s7; 1922 var key = peg$currPos * 82 + 26; 1923 var cached = peg$resultsCache[key]; 1924 if (cached) { 1925 peg$currPos = cached.nextPos; 1926 return cached.result; 1927 } 1928 s0 = peg$currPos; 1929 s1 = peg$parseadditive(); 1930 if (s1 !== peg$FAILED) { 1931 s2 = []; 1932 s3 = peg$currPos; 1933 s4 = peg$parse__(); 1934 if (s4 !== peg$FAILED) { 1935 s5 = peg$parsecredibleIntervalOp(); 1936 if (s5 !== peg$FAILED) { 1937 s6 = peg$parse__nl(); 1938 if (s6 !== peg$FAILED) { 1939 s7 = peg$parseadditive(); 1940 if (s7 !== peg$FAILED) { 1941 s3 = [s5, s7]; 1942 } 1943 else { 1944 peg$currPos = s3; 1945 s3 = peg$FAILED; 1946 } 1947 } 1948 else { 1949 peg$currPos = s3; 1950 s3 = peg$FAILED; 1951 } 1952 } 1953 else { 1954 peg$currPos = s3; 1955 s3 = peg$FAILED; 1956 } 1957 } 1958 else { 1959 peg$currPos = s3; 1960 s3 = peg$FAILED; 1961 } 1962 while (s3 !== peg$FAILED) { 1963 s2.push(s3); 1964 s3 = peg$currPos; 1965 s4 = peg$parse__(); 1966 if (s4 !== peg$FAILED) { 1967 s5 = peg$parsecredibleIntervalOp(); 1968 if (s5 !== peg$FAILED) { 1969 s6 = peg$parse__nl(); 1970 if (s6 !== peg$FAILED) { 1971 s7 = peg$parseadditive(); 1972 if (s7 !== peg$FAILED) { 1973 s3 = [s5, s7]; 1974 } 1975 else { 1976 peg$currPos = s3; 1977 s3 = peg$FAILED; 1978 } 1979 } 1980 else { 1981 peg$currPos = s3; 1982 s3 = peg$FAILED; 1983 } 1984 } 1985 else { 1986 peg$currPos = s3; 1987 s3 = peg$FAILED; 1988 } 1989 } 1990 else { 1991 peg$currPos = s3; 1992 s3 = peg$FAILED; 1993 } 1994 } 1995 peg$savedPos = s0; 1996 s0 = peg$f17(s1, s2); 1997 } 1998 else { 1999 peg$currPos = s0; 2000 s0 = peg$FAILED; 2001 } 2002 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2003 return s0; 2004 } 2005 function peg$parsecredibleIntervalOp() { 2006 var s0, s1; 2007 var key = peg$currPos * 82 + 27; 2008 var cached = peg$resultsCache[key]; 2009 if (cached) { 2010 peg$currPos = cached.nextPos; 2011 return cached.result; 2012 } 2013 peg$silentFails++; 2014 if (input.substr(peg$currPos, 2) === peg$c22) { 2015 s0 = peg$c22; 2016 peg$currPos += 2; 2017 } 2018 else { 2019 s0 = peg$FAILED; 2020 if (peg$silentFails === 0) { 2021 peg$fail(peg$e24); 2022 } 2023 } 2024 peg$silentFails--; 2025 if (s0 === peg$FAILED) { 2026 s1 = peg$FAILED; 2027 if (peg$silentFails === 0) { 2028 peg$fail(peg$e15); 2029 } 2030 } 2031 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2032 return s0; 2033 } 2034 function peg$parseadditive() { 2035 var s0, s1, s2, s3, s4, s5, s6, s7; 2036 var key = peg$currPos * 82 + 28; 2037 var cached = peg$resultsCache[key]; 2038 if (cached) { 2039 peg$currPos = cached.nextPos; 2040 return cached.result; 2041 } 2042 s0 = peg$currPos; 2043 s1 = peg$parsemultiplicative(); 2044 if (s1 !== peg$FAILED) { 2045 s2 = []; 2046 s3 = peg$currPos; 2047 s4 = peg$parse_(); 2048 s5 = peg$parseadditiveOp(); 2049 if (s5 !== peg$FAILED) { 2050 s6 = peg$parse_nl(); 2051 s7 = peg$parsemultiplicative(); 2052 if (s7 !== peg$FAILED) { 2053 s3 = [s5, s7]; 2054 } 2055 else { 2056 peg$currPos = s3; 2057 s3 = peg$FAILED; 2058 } 2059 } 2060 else { 2061 peg$currPos = s3; 2062 s3 = peg$FAILED; 2063 } 2064 while (s3 !== peg$FAILED) { 2065 s2.push(s3); 2066 s3 = peg$currPos; 2067 s4 = peg$parse_(); 2068 s5 = peg$parseadditiveOp(); 2069 if (s5 !== peg$FAILED) { 2070 s6 = peg$parse_nl(); 2071 s7 = peg$parsemultiplicative(); 2072 if (s7 !== peg$FAILED) { 2073 s3 = [s5, s7]; 2074 } 2075 else { 2076 peg$currPos = s3; 2077 s3 = peg$FAILED; 2078 } 2079 } 2080 else { 2081 peg$currPos = s3; 2082 s3 = peg$FAILED; 2083 } 2084 } 2085 peg$savedPos = s0; 2086 s0 = peg$f18(s1, s2); 2087 } 2088 else { 2089 peg$currPos = s0; 2090 s0 = peg$FAILED; 2091 } 2092 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2093 return s0; 2094 } 2095 function peg$parseadditiveOp() { 2096 var s0, s1; 2097 var key = peg$currPos * 82 + 29; 2098 var cached = peg$resultsCache[key]; 2099 if (cached) { 2100 peg$currPos = cached.nextPos; 2101 return cached.result; 2102 } 2103 peg$silentFails++; 2104 if (input.charCodeAt(peg$currPos) === 43) { 2105 s0 = peg$c23; 2106 peg$currPos++; 2107 } 2108 else { 2109 s0 = peg$FAILED; 2110 if (peg$silentFails === 0) { 2111 peg$fail(peg$e25); 2112 } 2113 } 2114 if (s0 === peg$FAILED) { 2115 if (input.charCodeAt(peg$currPos) === 45) { 2116 s0 = peg$c24; 2117 peg$currPos++; 2118 } 2119 else { 2120 s0 = peg$FAILED; 2121 if (peg$silentFails === 0) { 2122 peg$fail(peg$e26); 2123 } 2124 } 2125 if (s0 === peg$FAILED) { 2126 if (input.substr(peg$currPos, 2) === peg$c25) { 2127 s0 = peg$c25; 2128 peg$currPos += 2; 2129 } 2130 else { 2131 s0 = peg$FAILED; 2132 if (peg$silentFails === 0) { 2133 peg$fail(peg$e27); 2134 } 2135 } 2136 if (s0 === peg$FAILED) { 2137 if (input.substr(peg$currPos, 2) === peg$c26) { 2138 s0 = peg$c26; 2139 peg$currPos += 2; 2140 } 2141 else { 2142 s0 = peg$FAILED; 2143 if (peg$silentFails === 0) { 2144 peg$fail(peg$e28); 2145 } 2146 } 2147 } 2148 } 2149 } 2150 peg$silentFails--; 2151 if (s0 === peg$FAILED) { 2152 s1 = peg$FAILED; 2153 if (peg$silentFails === 0) { 2154 peg$fail(peg$e15); 2155 } 2156 } 2157 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2158 return s0; 2159 } 2160 function peg$parsemultiplicative() { 2161 var s0, s1, s2, s3, s4, s5, s6, s7; 2162 var key = peg$currPos * 82 + 30; 2163 var cached = peg$resultsCache[key]; 2164 if (cached) { 2165 peg$currPos = cached.nextPos; 2166 return cached.result; 2167 } 2168 s0 = peg$currPos; 2169 s1 = peg$parsepower(); 2170 if (s1 !== peg$FAILED) { 2171 s2 = []; 2172 s3 = peg$currPos; 2173 s4 = peg$parse_(); 2174 s5 = peg$parsemultiplicativeOp(); 2175 if (s5 !== peg$FAILED) { 2176 s6 = peg$parse_nl(); 2177 s7 = peg$parsepower(); 2178 if (s7 !== peg$FAILED) { 2179 s3 = [s5, s7]; 2180 } 2181 else { 2182 peg$currPos = s3; 2183 s3 = peg$FAILED; 2184 } 2185 } 2186 else { 2187 peg$currPos = s3; 2188 s3 = peg$FAILED; 2189 } 2190 while (s3 !== peg$FAILED) { 2191 s2.push(s3); 2192 s3 = peg$currPos; 2193 s4 = peg$parse_(); 2194 s5 = peg$parsemultiplicativeOp(); 2195 if (s5 !== peg$FAILED) { 2196 s6 = peg$parse_nl(); 2197 s7 = peg$parsepower(); 2198 if (s7 !== peg$FAILED) { 2199 s3 = [s5, s7]; 2200 } 2201 else { 2202 peg$currPos = s3; 2203 s3 = peg$FAILED; 2204 } 2205 } 2206 else { 2207 peg$currPos = s3; 2208 s3 = peg$FAILED; 2209 } 2210 } 2211 peg$savedPos = s0; 2212 s0 = peg$f19(s1, s2); 2213 } 2214 else { 2215 peg$currPos = s0; 2216 s0 = peg$FAILED; 2217 } 2218 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2219 return s0; 2220 } 2221 function peg$parsemultiplicativeOp() { 2222 var s0, s1; 2223 var key = peg$currPos * 82 + 31; 2224 var cached = peg$resultsCache[key]; 2225 if (cached) { 2226 peg$currPos = cached.nextPos; 2227 return cached.result; 2228 } 2229 peg$silentFails++; 2230 if (input.charCodeAt(peg$currPos) === 42) { 2231 s0 = peg$c27; 2232 peg$currPos++; 2233 } 2234 else { 2235 s0 = peg$FAILED; 2236 if (peg$silentFails === 0) { 2237 peg$fail(peg$e29); 2238 } 2239 } 2240 if (s0 === peg$FAILED) { 2241 if (input.charCodeAt(peg$currPos) === 47) { 2242 s0 = peg$c28; 2243 peg$currPos++; 2244 } 2245 else { 2246 s0 = peg$FAILED; 2247 if (peg$silentFails === 0) { 2248 peg$fail(peg$e30); 2249 } 2250 } 2251 if (s0 === peg$FAILED) { 2252 if (input.substr(peg$currPos, 2) === peg$c29) { 2253 s0 = peg$c29; 2254 peg$currPos += 2; 2255 } 2256 else { 2257 s0 = peg$FAILED; 2258 if (peg$silentFails === 0) { 2259 peg$fail(peg$e31); 2260 } 2261 } 2262 if (s0 === peg$FAILED) { 2263 if (input.substr(peg$currPos, 2) === peg$c30) { 2264 s0 = peg$c30; 2265 peg$currPos += 2; 2266 } 2267 else { 2268 s0 = peg$FAILED; 2269 if (peg$silentFails === 0) { 2270 peg$fail(peg$e32); 2271 } 2272 } 2273 } 2274 } 2275 } 2276 peg$silentFails--; 2277 if (s0 === peg$FAILED) { 2278 s1 = peg$FAILED; 2279 if (peg$silentFails === 0) { 2280 peg$fail(peg$e15); 2281 } 2282 } 2283 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2284 return s0; 2285 } 2286 function peg$parsepower() { 2287 var s0, s1, s2, s3, s4, s5; 2288 var key = peg$currPos * 82 + 32; 2289 var cached = peg$resultsCache[key]; 2290 if (cached) { 2291 peg$currPos = cached.nextPos; 2292 return cached.result; 2293 } 2294 s0 = peg$currPos; 2295 s1 = peg$parsechainFunctionCall(); 2296 if (s1 !== peg$FAILED) { 2297 s2 = peg$parse_(); 2298 s3 = peg$parsepowerOp(); 2299 if (s3 !== peg$FAILED) { 2300 s4 = peg$parse_nl(); 2301 s5 = peg$parsepower(); 2302 if (s5 !== peg$FAILED) { 2303 peg$savedPos = s0; 2304 s0 = peg$f20(s1, s3, s5); 2305 } 2306 else { 2307 peg$currPos = s0; 2308 s0 = peg$FAILED; 2309 } 2310 } 2311 else { 2312 peg$currPos = s0; 2313 s0 = peg$FAILED; 2314 } 2315 } 2316 else { 2317 peg$currPos = s0; 2318 s0 = peg$FAILED; 2319 } 2320 if (s0 === peg$FAILED) { 2321 s0 = peg$parsechainFunctionCall(); 2322 } 2323 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2324 return s0; 2325 } 2326 function peg$parsepowerOp() { 2327 var s0, s1; 2328 var key = peg$currPos * 82 + 33; 2329 var cached = peg$resultsCache[key]; 2330 if (cached) { 2331 peg$currPos = cached.nextPos; 2332 return cached.result; 2333 } 2334 peg$silentFails++; 2335 if (input.charCodeAt(peg$currPos) === 94) { 2336 s0 = peg$c31; 2337 peg$currPos++; 2338 } 2339 else { 2340 s0 = peg$FAILED; 2341 if (peg$silentFails === 0) { 2342 peg$fail(peg$e33); 2343 } 2344 } 2345 if (s0 === peg$FAILED) { 2346 if (input.substr(peg$currPos, 2) === peg$c32) { 2347 s0 = peg$c32; 2348 peg$currPos += 2; 2349 } 2350 else { 2351 s0 = peg$FAILED; 2352 if (peg$silentFails === 0) { 2353 peg$fail(peg$e34); 2354 } 2355 } 2356 } 2357 peg$silentFails--; 2358 if (s0 === peg$FAILED) { 2359 s1 = peg$FAILED; 2360 if (peg$silentFails === 0) { 2361 peg$fail(peg$e15); 2362 } 2363 } 2364 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2365 return s0; 2366 } 2367 function peg$parsechainFunctionCall() { 2368 var s0, s1, s2, s3, s4, s5, s6, s7; 2369 var key = peg$currPos * 82 + 34; 2370 var cached = peg$resultsCache[key]; 2371 if (cached) { 2372 peg$currPos = cached.nextPos; 2373 return cached.result; 2374 } 2375 s0 = peg$currPos; 2376 s1 = peg$parseunary(); 2377 if (s1 !== peg$FAILED) { 2378 s2 = []; 2379 s3 = peg$currPos; 2380 s4 = peg$parse_(); 2381 if (input.substr(peg$currPos, 2) === peg$c33) { 2382 s5 = peg$c33; 2383 peg$currPos += 2; 2384 } 2385 else { 2386 s5 = peg$FAILED; 2387 if (peg$silentFails === 0) { 2388 peg$fail(peg$e35); 2389 } 2390 } 2391 if (s5 !== peg$FAILED) { 2392 s6 = peg$parse_nl(); 2393 s7 = peg$parsechainedFunction(); 2394 if (s7 !== peg$FAILED) { 2395 s3 = s7; 2396 } 2397 else { 2398 peg$currPos = s3; 2399 s3 = peg$FAILED; 2400 } 2401 } 2402 else { 2403 peg$currPos = s3; 2404 s3 = peg$FAILED; 2405 } 2406 while (s3 !== peg$FAILED) { 2407 s2.push(s3); 2408 s3 = peg$currPos; 2409 s4 = peg$parse_(); 2410 if (input.substr(peg$currPos, 2) === peg$c33) { 2411 s5 = peg$c33; 2412 peg$currPos += 2; 2413 } 2414 else { 2415 s5 = peg$FAILED; 2416 if (peg$silentFails === 0) { 2417 peg$fail(peg$e35); 2418 } 2419 } 2420 if (s5 !== peg$FAILED) { 2421 s6 = peg$parse_nl(); 2422 s7 = peg$parsechainedFunction(); 2423 if (s7 !== peg$FAILED) { 2424 s3 = s7; 2425 } 2426 else { 2427 peg$currPos = s3; 2428 s3 = peg$FAILED; 2429 } 2430 } 2431 else { 2432 peg$currPos = s3; 2433 s3 = peg$FAILED; 2434 } 2435 } 2436 peg$savedPos = s0; 2437 s0 = peg$f21(s1, s2); 2438 } 2439 else { 2440 peg$currPos = s0; 2441 s0 = peg$FAILED; 2442 } 2443 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2444 return s0; 2445 } 2446 function peg$parsechainedFunction() { 2447 var s0, s1, s2, s3, s4, s5, s6; 2448 var key = peg$currPos * 82 + 35; 2449 var cached = peg$resultsCache[key]; 2450 if (cached) { 2451 peg$currPos = cached.nextPos; 2452 return cached.result; 2453 } 2454 s0 = peg$currPos; 2455 s1 = peg$parsecallableBasicValue(); 2456 if (s1 !== peg$FAILED) { 2457 if (input.charCodeAt(peg$currPos) === 40) { 2458 s2 = peg$c6; 2459 peg$currPos++; 2460 } 2461 else { 2462 s2 = peg$FAILED; 2463 if (peg$silentFails === 0) { 2464 peg$fail(peg$e6); 2465 } 2466 } 2467 if (s2 !== peg$FAILED) { 2468 s3 = peg$parse_nl(); 2469 s4 = peg$parsefunctionArguments(); 2470 s5 = peg$parse_nl(); 2471 if (input.charCodeAt(peg$currPos) === 41) { 2472 s6 = peg$c7; 2473 peg$currPos++; 2474 } 2475 else { 2476 s6 = peg$FAILED; 2477 if (peg$silentFails === 0) { 2478 peg$fail(peg$e7); 2479 } 2480 } 2481 if (s6 !== peg$FAILED) { 2482 peg$savedPos = s0; 2483 s0 = peg$f22(s1, s4); 2484 } 2485 else { 2486 peg$currPos = s0; 2487 s0 = peg$FAILED; 2488 } 2489 } 2490 else { 2491 peg$currPos = s0; 2492 s0 = peg$FAILED; 2493 } 2494 } 2495 else { 2496 peg$currPos = s0; 2497 s0 = peg$FAILED; 2498 } 2499 if (s0 === peg$FAILED) { 2500 s0 = peg$currPos; 2501 s1 = peg$parsecallableBasicValue(); 2502 if (s1 !== peg$FAILED) { 2503 peg$savedPos = s0; 2504 s1 = peg$f23(s1); 2505 } 2506 s0 = s1; 2507 } 2508 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2509 return s0; 2510 } 2511 function peg$parsecallableBasicValue() { 2512 var s0; 2513 var key = peg$currPos * 82 + 36; 2514 var cached = peg$resultsCache[key]; 2515 if (cached) { 2516 peg$currPos = cached.nextPos; 2517 return cached.result; 2518 } 2519 s0 = peg$parsestaticCollectionElement(); 2520 if (s0 === peg$FAILED) { 2521 s0 = peg$parsevalueConstructor(); 2522 if (s0 === peg$FAILED) { 2523 s0 = peg$parsevariable(); 2524 } 2525 } 2526 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2527 return s0; 2528 } 2529 function peg$parseunary() { 2530 var s0, s1, s2, s3; 2531 var key = peg$currPos * 82 + 37; 2532 var cached = peg$resultsCache[key]; 2533 if (cached) { 2534 peg$currPos = cached.nextPos; 2535 return cached.result; 2536 } 2537 s0 = peg$currPos; 2538 s1 = peg$parseunaryOperator(); 2539 if (s1 !== peg$FAILED) { 2540 s2 = peg$parse_nl(); 2541 s3 = peg$parseunary(); 2542 if (s3 === peg$FAILED) { 2543 s3 = peg$parsepostOperator(); 2544 } 2545 if (s3 !== peg$FAILED) { 2546 peg$savedPos = s0; 2547 s0 = peg$f24(s1, s3); 2548 } 2549 else { 2550 peg$currPos = s0; 2551 s0 = peg$FAILED; 2552 } 2553 } 2554 else { 2555 peg$currPos = s0; 2556 s0 = peg$FAILED; 2557 } 2558 if (s0 === peg$FAILED) { 2559 s0 = peg$parsepostOperator(); 2560 } 2561 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2562 return s0; 2563 } 2564 function peg$parseunaryOperator() { 2565 var s0, s1; 2566 var key = peg$currPos * 82 + 38; 2567 var cached = peg$resultsCache[key]; 2568 if (cached) { 2569 peg$currPos = cached.nextPos; 2570 return cached.result; 2571 } 2572 peg$silentFails++; 2573 if (input.charCodeAt(peg$currPos) === 45) { 2574 s0 = peg$c24; 2575 peg$currPos++; 2576 } 2577 else { 2578 s0 = peg$FAILED; 2579 if (peg$silentFails === 0) { 2580 peg$fail(peg$e26); 2581 } 2582 } 2583 if (s0 === peg$FAILED) { 2584 if (input.substr(peg$currPos, 2) === peg$c26) { 2585 s0 = peg$c26; 2586 peg$currPos += 2; 2587 } 2588 else { 2589 s0 = peg$FAILED; 2590 if (peg$silentFails === 0) { 2591 peg$fail(peg$e28); 2592 } 2593 } 2594 if (s0 === peg$FAILED) { 2595 if (input.charCodeAt(peg$currPos) === 33) { 2596 s0 = peg$c34; 2597 peg$currPos++; 2598 } 2599 else { 2600 s0 = peg$FAILED; 2601 if (peg$silentFails === 0) { 2602 peg$fail(peg$e37); 2603 } 2604 } 2605 } 2606 } 2607 peg$silentFails--; 2608 if (s0 === peg$FAILED) { 2609 s1 = peg$FAILED; 2610 if (peg$silentFails === 0) { 2611 peg$fail(peg$e36); 2612 } 2613 } 2614 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2615 return s0; 2616 } 2617 function peg$parsepostOperator() { 2618 var s0; 2619 var key = peg$currPos * 82 + 39; 2620 var cached = peg$resultsCache[key]; 2621 if (cached) { 2622 peg$currPos = cached.nextPos; 2623 return cached.result; 2624 } 2625 s0 = peg$parsecollectionElement(); 2626 if (s0 === peg$FAILED) { 2627 s0 = peg$parseatom(); 2628 } 2629 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2630 return s0; 2631 } 2632 function peg$parsestaticCollectionElement() { 2633 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; 2634 var key = peg$currPos * 82 + 40; 2635 var cached = peg$resultsCache[key]; 2636 if (cached) { 2637 peg$currPos = cached.nextPos; 2638 return cached.result; 2639 } 2640 s0 = peg$currPos; 2641 s1 = peg$parseatom(); 2642 if (s1 !== peg$FAILED) { 2643 s2 = peg$currPos; 2644 peg$silentFails++; 2645 if (input.charCodeAt(peg$currPos) === 91) { 2646 s3 = peg$c35; 2647 peg$currPos++; 2648 } 2649 else { 2650 s3 = peg$FAILED; 2651 if (peg$silentFails === 0) { 2652 peg$fail(peg$e38); 2653 } 2654 } 2655 if (s3 === peg$FAILED) { 2656 if (input.charCodeAt(peg$currPos) === 46) { 2657 s3 = peg$c36; 2658 peg$currPos++; 2659 } 2660 else { 2661 s3 = peg$FAILED; 2662 if (peg$silentFails === 0) { 2663 peg$fail(peg$e39); 2664 } 2665 } 2666 } 2667 peg$silentFails--; 2668 if (s3 !== peg$FAILED) { 2669 peg$currPos = s2; 2670 s2 = undefined; 2671 } 2672 else { 2673 s2 = peg$FAILED; 2674 } 2675 if (s2 !== peg$FAILED) { 2676 s3 = []; 2677 s4 = peg$currPos; 2678 s5 = peg$parse_(); 2679 if (input.charCodeAt(peg$currPos) === 91) { 2680 s6 = peg$c35; 2681 peg$currPos++; 2682 } 2683 else { 2684 s6 = peg$FAILED; 2685 if (peg$silentFails === 0) { 2686 peg$fail(peg$e38); 2687 } 2688 } 2689 if (s6 !== peg$FAILED) { 2690 s7 = peg$parse_nl(); 2691 s8 = peg$parseexpression(); 2692 if (s8 !== peg$FAILED) { 2693 s9 = peg$parse_nl(); 2694 if (input.charCodeAt(peg$currPos) === 93) { 2695 s10 = peg$c37; 2696 peg$currPos++; 2697 } 2698 else { 2699 s10 = peg$FAILED; 2700 if (peg$silentFails === 0) { 2701 peg$fail(peg$e40); 2702 } 2703 } 2704 if (s10 !== peg$FAILED) { 2705 peg$savedPos = s4; 2706 s4 = peg$f25(s1, s8); 2707 } 2708 else { 2709 peg$currPos = s4; 2710 s4 = peg$FAILED; 2711 } 2712 } 2713 else { 2714 peg$currPos = s4; 2715 s4 = peg$FAILED; 2716 } 2717 } 2718 else { 2719 peg$currPos = s4; 2720 s4 = peg$FAILED; 2721 } 2722 if (s4 === peg$FAILED) { 2723 s4 = peg$currPos; 2724 if (input.charCodeAt(peg$currPos) === 46) { 2725 s5 = peg$c36; 2726 peg$currPos++; 2727 } 2728 else { 2729 s5 = peg$FAILED; 2730 if (peg$silentFails === 0) { 2731 peg$fail(peg$e39); 2732 } 2733 } 2734 if (s5 !== peg$FAILED) { 2735 s6 = peg$currPos; 2736 s7 = peg$parsedollarIdentifier(); 2737 if (s7 !== peg$FAILED) { 2738 s6 = input.substring(s6, peg$currPos); 2739 } 2740 else { 2741 s6 = s7; 2742 } 2743 if (s6 !== peg$FAILED) { 2744 peg$savedPos = s4; 2745 s4 = peg$f26(s1, s6); 2746 } 2747 else { 2748 peg$currPos = s4; 2749 s4 = peg$FAILED; 2750 } 2751 } 2752 else { 2753 peg$currPos = s4; 2754 s4 = peg$FAILED; 2755 } 2756 } 2757 while (s4 !== peg$FAILED) { 2758 s3.push(s4); 2759 s4 = peg$currPos; 2760 s5 = peg$parse_(); 2761 if (input.charCodeAt(peg$currPos) === 91) { 2762 s6 = peg$c35; 2763 peg$currPos++; 2764 } 2765 else { 2766 s6 = peg$FAILED; 2767 if (peg$silentFails === 0) { 2768 peg$fail(peg$e38); 2769 } 2770 } 2771 if (s6 !== peg$FAILED) { 2772 s7 = peg$parse_nl(); 2773 s8 = peg$parseexpression(); 2774 if (s8 !== peg$FAILED) { 2775 s9 = peg$parse_nl(); 2776 if (input.charCodeAt(peg$currPos) === 93) { 2777 s10 = peg$c37; 2778 peg$currPos++; 2779 } 2780 else { 2781 s10 = peg$FAILED; 2782 if (peg$silentFails === 0) { 2783 peg$fail(peg$e40); 2784 } 2785 } 2786 if (s10 !== peg$FAILED) { 2787 peg$savedPos = s4; 2788 s4 = peg$f25(s1, s8); 2789 } 2790 else { 2791 peg$currPos = s4; 2792 s4 = peg$FAILED; 2793 } 2794 } 2795 else { 2796 peg$currPos = s4; 2797 s4 = peg$FAILED; 2798 } 2799 } 2800 else { 2801 peg$currPos = s4; 2802 s4 = peg$FAILED; 2803 } 2804 if (s4 === peg$FAILED) { 2805 s4 = peg$currPos; 2806 if (input.charCodeAt(peg$currPos) === 46) { 2807 s5 = peg$c36; 2808 peg$currPos++; 2809 } 2810 else { 2811 s5 = peg$FAILED; 2812 if (peg$silentFails === 0) { 2813 peg$fail(peg$e39); 2814 } 2815 } 2816 if (s5 !== peg$FAILED) { 2817 s6 = peg$currPos; 2818 s7 = peg$parsedollarIdentifier(); 2819 if (s7 !== peg$FAILED) { 2820 s6 = input.substring(s6, peg$currPos); 2821 } 2822 else { 2823 s6 = s7; 2824 } 2825 if (s6 !== peg$FAILED) { 2826 peg$savedPos = s4; 2827 s4 = peg$f26(s1, s6); 2828 } 2829 else { 2830 peg$currPos = s4; 2831 s4 = peg$FAILED; 2832 } 2833 } 2834 else { 2835 peg$currPos = s4; 2836 s4 = peg$FAILED; 2837 } 2838 } 2839 } 2840 peg$savedPos = s0; 2841 s0 = peg$f27(s1, s3); 2842 } 2843 else { 2844 peg$currPos = s0; 2845 s0 = peg$FAILED; 2846 } 2847 } 2848 else { 2849 peg$currPos = s0; 2850 s0 = peg$FAILED; 2851 } 2852 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 2853 return s0; 2854 } 2855 function peg$parsecollectionElement() { 2856 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10; 2857 var key = peg$currPos * 82 + 41; 2858 var cached = peg$resultsCache[key]; 2859 if (cached) { 2860 peg$currPos = cached.nextPos; 2861 return cached.result; 2862 } 2863 s0 = peg$currPos; 2864 s1 = peg$parseatom(); 2865 if (s1 !== peg$FAILED) { 2866 s2 = peg$currPos; 2867 peg$silentFails++; 2868 if (input.charCodeAt(peg$currPos) === 91) { 2869 s3 = peg$c35; 2870 peg$currPos++; 2871 } 2872 else { 2873 s3 = peg$FAILED; 2874 if (peg$silentFails === 0) { 2875 peg$fail(peg$e38); 2876 } 2877 } 2878 if (s3 === peg$FAILED) { 2879 if (input.charCodeAt(peg$currPos) === 40) { 2880 s3 = peg$c6; 2881 peg$currPos++; 2882 } 2883 else { 2884 s3 = peg$FAILED; 2885 if (peg$silentFails === 0) { 2886 peg$fail(peg$e6); 2887 } 2888 } 2889 if (s3 === peg$FAILED) { 2890 if (input.charCodeAt(peg$currPos) === 46) { 2891 s3 = peg$c36; 2892 peg$currPos++; 2893 } 2894 else { 2895 s3 = peg$FAILED; 2896 if (peg$silentFails === 0) { 2897 peg$fail(peg$e39); 2898 } 2899 } 2900 } 2901 } 2902 peg$silentFails--; 2903 if (s3 !== peg$FAILED) { 2904 peg$currPos = s2; 2905 s2 = undefined; 2906 } 2907 else { 2908 s2 = peg$FAILED; 2909 } 2910 if (s2 !== peg$FAILED) { 2911 s3 = []; 2912 s4 = peg$currPos; 2913 s5 = peg$parse_(); 2914 if (input.charCodeAt(peg$currPos) === 40) { 2915 s6 = peg$c6; 2916 peg$currPos++; 2917 } 2918 else { 2919 s6 = peg$FAILED; 2920 if (peg$silentFails === 0) { 2921 peg$fail(peg$e6); 2922 } 2923 } 2924 if (s6 !== peg$FAILED) { 2925 s7 = peg$parse_nl(); 2926 s8 = peg$parsefunctionArguments(); 2927 s9 = peg$parse_nl(); 2928 if (input.charCodeAt(peg$currPos) === 41) { 2929 s10 = peg$c7; 2930 peg$currPos++; 2931 } 2932 else { 2933 s10 = peg$FAILED; 2934 if (peg$silentFails === 0) { 2935 peg$fail(peg$e7); 2936 } 2937 } 2938 if (s10 !== peg$FAILED) { 2939 peg$savedPos = s4; 2940 s4 = peg$f28(s1, s8); 2941 } 2942 else { 2943 peg$currPos = s4; 2944 s4 = peg$FAILED; 2945 } 2946 } 2947 else { 2948 peg$currPos = s4; 2949 s4 = peg$FAILED; 2950 } 2951 if (s4 === peg$FAILED) { 2952 s4 = peg$currPos; 2953 s5 = peg$parse_(); 2954 if (input.charCodeAt(peg$currPos) === 91) { 2955 s6 = peg$c35; 2956 peg$currPos++; 2957 } 2958 else { 2959 s6 = peg$FAILED; 2960 if (peg$silentFails === 0) { 2961 peg$fail(peg$e38); 2962 } 2963 } 2964 if (s6 !== peg$FAILED) { 2965 s7 = peg$parse_nl(); 2966 s8 = peg$parseexpression(); 2967 if (s8 !== peg$FAILED) { 2968 s9 = peg$parse_nl(); 2969 if (input.charCodeAt(peg$currPos) === 93) { 2970 s10 = peg$c37; 2971 peg$currPos++; 2972 } 2973 else { 2974 s10 = peg$FAILED; 2975 if (peg$silentFails === 0) { 2976 peg$fail(peg$e40); 2977 } 2978 } 2979 if (s10 !== peg$FAILED) { 2980 peg$savedPos = s4; 2981 s4 = peg$f29(s1, s8); 2982 } 2983 else { 2984 peg$currPos = s4; 2985 s4 = peg$FAILED; 2986 } 2987 } 2988 else { 2989 peg$currPos = s4; 2990 s4 = peg$FAILED; 2991 } 2992 } 2993 else { 2994 peg$currPos = s4; 2995 s4 = peg$FAILED; 2996 } 2997 if (s4 === peg$FAILED) { 2998 s4 = peg$currPos; 2999 if (input.charCodeAt(peg$currPos) === 46) { 3000 s5 = peg$c36; 3001 peg$currPos++; 3002 } 3003 else { 3004 s5 = peg$FAILED; 3005 if (peg$silentFails === 0) { 3006 peg$fail(peg$e39); 3007 } 3008 } 3009 if (s5 !== peg$FAILED) { 3010 s6 = peg$currPos; 3011 s7 = peg$parsedollarIdentifier(); 3012 if (s7 !== peg$FAILED) { 3013 s6 = input.substring(s6, peg$currPos); 3014 } 3015 else { 3016 s6 = s7; 3017 } 3018 if (s6 !== peg$FAILED) { 3019 peg$savedPos = s4; 3020 s4 = peg$f30(s1, s6); 3021 } 3022 else { 3023 peg$currPos = s4; 3024 s4 = peg$FAILED; 3025 } 3026 } 3027 else { 3028 peg$currPos = s4; 3029 s4 = peg$FAILED; 3030 } 3031 } 3032 } 3033 while (s4 !== peg$FAILED) { 3034 s3.push(s4); 3035 s4 = peg$currPos; 3036 s5 = peg$parse_(); 3037 if (input.charCodeAt(peg$currPos) === 40) { 3038 s6 = peg$c6; 3039 peg$currPos++; 3040 } 3041 else { 3042 s6 = peg$FAILED; 3043 if (peg$silentFails === 0) { 3044 peg$fail(peg$e6); 3045 } 3046 } 3047 if (s6 !== peg$FAILED) { 3048 s7 = peg$parse_nl(); 3049 s8 = peg$parsefunctionArguments(); 3050 s9 = peg$parse_nl(); 3051 if (input.charCodeAt(peg$currPos) === 41) { 3052 s10 = peg$c7; 3053 peg$currPos++; 3054 } 3055 else { 3056 s10 = peg$FAILED; 3057 if (peg$silentFails === 0) { 3058 peg$fail(peg$e7); 3059 } 3060 } 3061 if (s10 !== peg$FAILED) { 3062 peg$savedPos = s4; 3063 s4 = peg$f28(s1, s8); 3064 } 3065 else { 3066 peg$currPos = s4; 3067 s4 = peg$FAILED; 3068 } 3069 } 3070 else { 3071 peg$currPos = s4; 3072 s4 = peg$FAILED; 3073 } 3074 if (s4 === peg$FAILED) { 3075 s4 = peg$currPos; 3076 s5 = peg$parse_(); 3077 if (input.charCodeAt(peg$currPos) === 91) { 3078 s6 = peg$c35; 3079 peg$currPos++; 3080 } 3081 else { 3082 s6 = peg$FAILED; 3083 if (peg$silentFails === 0) { 3084 peg$fail(peg$e38); 3085 } 3086 } 3087 if (s6 !== peg$FAILED) { 3088 s7 = peg$parse_nl(); 3089 s8 = peg$parseexpression(); 3090 if (s8 !== peg$FAILED) { 3091 s9 = peg$parse_nl(); 3092 if (input.charCodeAt(peg$currPos) === 93) { 3093 s10 = peg$c37; 3094 peg$currPos++; 3095 } 3096 else { 3097 s10 = peg$FAILED; 3098 if (peg$silentFails === 0) { 3099 peg$fail(peg$e40); 3100 } 3101 } 3102 if (s10 !== peg$FAILED) { 3103 peg$savedPos = s4; 3104 s4 = peg$f29(s1, s8); 3105 } 3106 else { 3107 peg$currPos = s4; 3108 s4 = peg$FAILED; 3109 } 3110 } 3111 else { 3112 peg$currPos = s4; 3113 s4 = peg$FAILED; 3114 } 3115 } 3116 else { 3117 peg$currPos = s4; 3118 s4 = peg$FAILED; 3119 } 3120 if (s4 === peg$FAILED) { 3121 s4 = peg$currPos; 3122 if (input.charCodeAt(peg$currPos) === 46) { 3123 s5 = peg$c36; 3124 peg$currPos++; 3125 } 3126 else { 3127 s5 = peg$FAILED; 3128 if (peg$silentFails === 0) { 3129 peg$fail(peg$e39); 3130 } 3131 } 3132 if (s5 !== peg$FAILED) { 3133 s6 = peg$currPos; 3134 s7 = peg$parsedollarIdentifier(); 3135 if (s7 !== peg$FAILED) { 3136 s6 = input.substring(s6, peg$currPos); 3137 } 3138 else { 3139 s6 = s7; 3140 } 3141 if (s6 !== peg$FAILED) { 3142 peg$savedPos = s4; 3143 s4 = peg$f30(s1, s6); 3144 } 3145 else { 3146 peg$currPos = s4; 3147 s4 = peg$FAILED; 3148 } 3149 } 3150 else { 3151 peg$currPos = s4; 3152 s4 = peg$FAILED; 3153 } 3154 } 3155 } 3156 } 3157 peg$savedPos = s0; 3158 s0 = peg$f31(s1, s3); 3159 } 3160 else { 3161 peg$currPos = s0; 3162 s0 = peg$FAILED; 3163 } 3164 } 3165 else { 3166 peg$currPos = s0; 3167 s0 = peg$FAILED; 3168 } 3169 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3170 return s0; 3171 } 3172 function peg$parsefunctionArguments() { 3173 var s0, s1, s2; 3174 var key = peg$currPos * 82 + 42; 3175 var cached = peg$resultsCache[key]; 3176 if (cached) { 3177 peg$currPos = cached.nextPos; 3178 return cached.result; 3179 } 3180 s0 = []; 3181 s1 = peg$parseexpression(); 3182 while (s1 !== peg$FAILED) { 3183 s0.push(s1); 3184 s1 = peg$currPos; 3185 s2 = peg$parsecommaSeparator(); 3186 if (s2 !== peg$FAILED) { 3187 s2 = peg$parseexpression(); 3188 if (s2 === peg$FAILED) { 3189 peg$currPos = s1; 3190 s1 = peg$FAILED; 3191 } 3192 else { 3193 s1 = s2; 3194 } 3195 } 3196 else { 3197 s1 = s2; 3198 } 3199 } 3200 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3201 return s0; 3202 } 3203 function peg$parseatom() { 3204 var s0, s1, s2, s3, s4, s5; 3205 var key = peg$currPos * 82 + 43; 3206 var cached = peg$resultsCache[key]; 3207 if (cached) { 3208 peg$currPos = cached.nextPos; 3209 return cached.result; 3210 } 3211 s0 = peg$currPos; 3212 if (input.charCodeAt(peg$currPos) === 40) { 3213 s1 = peg$c6; 3214 peg$currPos++; 3215 } 3216 else { 3217 s1 = peg$FAILED; 3218 if (peg$silentFails === 0) { 3219 peg$fail(peg$e6); 3220 } 3221 } 3222 if (s1 !== peg$FAILED) { 3223 s2 = peg$parse_nl(); 3224 s3 = peg$parseexpression(); 3225 if (s3 !== peg$FAILED) { 3226 s4 = peg$parse_nl(); 3227 if (input.charCodeAt(peg$currPos) === 41) { 3228 s5 = peg$c7; 3229 peg$currPos++; 3230 } 3231 else { 3232 s5 = peg$FAILED; 3233 if (peg$silentFails === 0) { 3234 peg$fail(peg$e7); 3235 } 3236 } 3237 if (s5 !== peg$FAILED) { 3238 s0 = s3; 3239 } 3240 else { 3241 peg$currPos = s0; 3242 s0 = peg$FAILED; 3243 } 3244 } 3245 else { 3246 peg$currPos = s0; 3247 s0 = peg$FAILED; 3248 } 3249 } 3250 else { 3251 peg$currPos = s0; 3252 s0 = peg$FAILED; 3253 } 3254 if (s0 === peg$FAILED) { 3255 s0 = peg$parsebasicValue(); 3256 } 3257 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3258 return s0; 3259 } 3260 function peg$parsebasicValue() { 3261 var s0; 3262 var key = peg$currPos * 82 + 44; 3263 var cached = peg$resultsCache[key]; 3264 if (cached) { 3265 peg$currPos = cached.nextPos; 3266 return cached.result; 3267 } 3268 s0 = peg$parsevalueConstructor(); 3269 if (s0 === peg$FAILED) { 3270 s0 = peg$parsebasicLiteral(); 3271 } 3272 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3273 return s0; 3274 } 3275 function peg$parsebasicLiteral() { 3276 var s0; 3277 var key = peg$currPos * 82 + 45; 3278 var cached = peg$resultsCache[key]; 3279 if (cached) { 3280 peg$currPos = cached.nextPos; 3281 return cached.result; 3282 } 3283 s0 = peg$parsestring(); 3284 if (s0 === peg$FAILED) { 3285 s0 = peg$parsenumber(); 3286 if (s0 === peg$FAILED) { 3287 s0 = peg$parseboolean(); 3288 if (s0 === peg$FAILED) { 3289 s0 = peg$parsevariable(); 3290 if (s0 === peg$FAILED) { 3291 s0 = peg$parsevoidLiteral(); 3292 } 3293 } 3294 } 3295 } 3296 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3297 return s0; 3298 } 3299 function peg$parsevoidLiteral() { 3300 var s0, s1; 3301 var key = peg$currPos * 82 + 46; 3302 var cached = peg$resultsCache[key]; 3303 if (cached) { 3304 peg$currPos = cached.nextPos; 3305 return cached.result; 3306 } 3307 peg$silentFails++; 3308 s0 = peg$currPos; 3309 if (input.substr(peg$currPos, 2) === peg$c38) { 3310 s1 = peg$c38; 3311 peg$currPos += 2; 3312 } 3313 else { 3314 s1 = peg$FAILED; 3315 if (peg$silentFails === 0) { 3316 peg$fail(peg$e42); 3317 } 3318 } 3319 if (s1 !== peg$FAILED) { 3320 peg$savedPos = s0; 3321 s1 = peg$f32(); 3322 } 3323 s0 = s1; 3324 peg$silentFails--; 3325 if (s0 === peg$FAILED) { 3326 s1 = peg$FAILED; 3327 if (peg$silentFails === 0) { 3328 peg$fail(peg$e41); 3329 } 3330 } 3331 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3332 return s0; 3333 } 3334 function peg$parsevariable() { 3335 var s0; 3336 var key = peg$currPos * 82 + 47; 3337 var cached = peg$resultsCache[key]; 3338 if (cached) { 3339 peg$currPos = cached.nextPos; 3340 return cached.result; 3341 } 3342 s0 = peg$parsedollarIdentifierWithModule(); 3343 if (s0 === peg$FAILED) { 3344 s0 = peg$parsedollarIdentifier(); 3345 } 3346 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3347 return s0; 3348 } 3349 function peg$parsedollarIdentifierWithModule() { 3350 var s0, s1, s2, s3, s4, s5, s6, s7; 3351 var key = peg$currPos * 82 + 48; 3352 var cached = peg$resultsCache[key]; 3353 if (cached) { 3354 peg$currPos = cached.nextPos; 3355 return cached.result; 3356 } 3357 peg$silentFails++; 3358 s0 = peg$currPos; 3359 s1 = peg$currPos; 3360 s2 = peg$parsemoduleIdentifier(); 3361 if (s2 !== peg$FAILED) { 3362 s1 = input.substring(s1, peg$currPos); 3363 } 3364 else { 3365 s1 = s2; 3366 } 3367 if (s1 !== peg$FAILED) { 3368 s2 = []; 3369 s3 = peg$currPos; 3370 if (input.charCodeAt(peg$currPos) === 46) { 3371 s4 = peg$c36; 3372 peg$currPos++; 3373 } 3374 else { 3375 s4 = peg$FAILED; 3376 if (peg$silentFails === 0) { 3377 peg$fail(peg$e39); 3378 } 3379 } 3380 if (s4 !== peg$FAILED) { 3381 s5 = peg$parse_nl(); 3382 s6 = peg$currPos; 3383 s7 = peg$parsemoduleIdentifier(); 3384 if (s7 !== peg$FAILED) { 3385 s6 = input.substring(s6, peg$currPos); 3386 } 3387 else { 3388 s6 = s7; 3389 } 3390 if (s6 !== peg$FAILED) { 3391 s3 = s6; 3392 } 3393 else { 3394 peg$currPos = s3; 3395 s3 = peg$FAILED; 3396 } 3397 } 3398 else { 3399 peg$currPos = s3; 3400 s3 = peg$FAILED; 3401 } 3402 while (s3 !== peg$FAILED) { 3403 s2.push(s3); 3404 s3 = peg$currPos; 3405 if (input.charCodeAt(peg$currPos) === 46) { 3406 s4 = peg$c36; 3407 peg$currPos++; 3408 } 3409 else { 3410 s4 = peg$FAILED; 3411 if (peg$silentFails === 0) { 3412 peg$fail(peg$e39); 3413 } 3414 } 3415 if (s4 !== peg$FAILED) { 3416 s5 = peg$parse_nl(); 3417 s6 = peg$currPos; 3418 s7 = peg$parsemoduleIdentifier(); 3419 if (s7 !== peg$FAILED) { 3420 s6 = input.substring(s6, peg$currPos); 3421 } 3422 else { 3423 s6 = s7; 3424 } 3425 if (s6 !== peg$FAILED) { 3426 s3 = s6; 3427 } 3428 else { 3429 peg$currPos = s3; 3430 s3 = peg$FAILED; 3431 } 3432 } 3433 else { 3434 peg$currPos = s3; 3435 s3 = peg$FAILED; 3436 } 3437 } 3438 if (input.charCodeAt(peg$currPos) === 46) { 3439 s3 = peg$c36; 3440 peg$currPos++; 3441 } 3442 else { 3443 s3 = peg$FAILED; 3444 if (peg$silentFails === 0) { 3445 peg$fail(peg$e39); 3446 } 3447 } 3448 if (s3 !== peg$FAILED) { 3449 s4 = peg$parse_nl(); 3450 s5 = peg$currPos; 3451 s6 = peg$parsedollarIdentifier(); 3452 if (s6 !== peg$FAILED) { 3453 s5 = input.substring(s5, peg$currPos); 3454 } 3455 else { 3456 s5 = s6; 3457 } 3458 if (s5 !== peg$FAILED) { 3459 peg$savedPos = s0; 3460 s0 = peg$f33(s1, s2, s5); 3461 } 3462 else { 3463 peg$currPos = s0; 3464 s0 = peg$FAILED; 3465 } 3466 } 3467 else { 3468 peg$currPos = s0; 3469 s0 = peg$FAILED; 3470 } 3471 } 3472 else { 3473 peg$currPos = s0; 3474 s0 = peg$FAILED; 3475 } 3476 peg$silentFails--; 3477 if (s0 === peg$FAILED) { 3478 s1 = peg$FAILED; 3479 if (peg$silentFails === 0) { 3480 peg$fail(peg$e43); 3481 } 3482 } 3483 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3484 return s0; 3485 } 3486 function peg$parsemoduleIdentifier() { 3487 var s0, s1, s2, s3; 3488 var key = peg$currPos * 82 + 49; 3489 var cached = peg$resultsCache[key]; 3490 if (cached) { 3491 peg$currPos = cached.nextPos; 3492 return cached.result; 3493 } 3494 peg$silentFails++; 3495 s0 = peg$currPos; 3496 s1 = []; 3497 if (peg$r0.test(input.charAt(peg$currPos))) { 3498 s2 = input.charAt(peg$currPos); 3499 peg$currPos++; 3500 } 3501 else { 3502 s2 = peg$FAILED; 3503 if (peg$silentFails === 0) { 3504 peg$fail(peg$e44); 3505 } 3506 } 3507 if (s2 !== peg$FAILED) { 3508 while (s2 !== peg$FAILED) { 3509 s1.push(s2); 3510 if (peg$r0.test(input.charAt(peg$currPos))) { 3511 s2 = input.charAt(peg$currPos); 3512 peg$currPos++; 3513 } 3514 else { 3515 s2 = peg$FAILED; 3516 if (peg$silentFails === 0) { 3517 peg$fail(peg$e44); 3518 } 3519 } 3520 } 3521 } 3522 else { 3523 s1 = peg$FAILED; 3524 } 3525 if (s1 !== peg$FAILED) { 3526 s2 = []; 3527 if (peg$r1.test(input.charAt(peg$currPos))) { 3528 s3 = input.charAt(peg$currPos); 3529 peg$currPos++; 3530 } 3531 else { 3532 s3 = peg$FAILED; 3533 if (peg$silentFails === 0) { 3534 peg$fail(peg$e45); 3535 } 3536 } 3537 while (s3 !== peg$FAILED) { 3538 s2.push(s3); 3539 if (peg$r1.test(input.charAt(peg$currPos))) { 3540 s3 = input.charAt(peg$currPos); 3541 peg$currPos++; 3542 } 3543 else { 3544 s3 = peg$FAILED; 3545 if (peg$silentFails === 0) { 3546 peg$fail(peg$e45); 3547 } 3548 } 3549 } 3550 s1 = [s1, s2]; 3551 s0 = s1; 3552 } 3553 else { 3554 peg$currPos = s0; 3555 s0 = peg$FAILED; 3556 } 3557 peg$silentFails--; 3558 if (s0 === peg$FAILED) { 3559 s1 = peg$FAILED; 3560 if (peg$silentFails === 0) { 3561 peg$fail(peg$e43); 3562 } 3563 } 3564 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3565 return s0; 3566 } 3567 function peg$parseidentifier() { 3568 var s0, s1, s2, s3, s4; 3569 var key = peg$currPos * 82 + 50; 3570 var cached = peg$resultsCache[key]; 3571 if (cached) { 3572 peg$currPos = cached.nextPos; 3573 return cached.result; 3574 } 3575 peg$silentFails++; 3576 s0 = peg$currPos; 3577 s1 = peg$currPos; 3578 s2 = []; 3579 if (peg$r2.test(input.charAt(peg$currPos))) { 3580 s3 = input.charAt(peg$currPos); 3581 peg$currPos++; 3582 } 3583 else { 3584 s3 = peg$FAILED; 3585 if (peg$silentFails === 0) { 3586 peg$fail(peg$e46); 3587 } 3588 } 3589 if (s3 !== peg$FAILED) { 3590 while (s3 !== peg$FAILED) { 3591 s2.push(s3); 3592 if (peg$r2.test(input.charAt(peg$currPos))) { 3593 s3 = input.charAt(peg$currPos); 3594 peg$currPos++; 3595 } 3596 else { 3597 s3 = peg$FAILED; 3598 if (peg$silentFails === 0) { 3599 peg$fail(peg$e46); 3600 } 3601 } 3602 } 3603 } 3604 else { 3605 s2 = peg$FAILED; 3606 } 3607 if (s2 !== peg$FAILED) { 3608 s3 = []; 3609 if (peg$r1.test(input.charAt(peg$currPos))) { 3610 s4 = input.charAt(peg$currPos); 3611 peg$currPos++; 3612 } 3613 else { 3614 s4 = peg$FAILED; 3615 if (peg$silentFails === 0) { 3616 peg$fail(peg$e45); 3617 } 3618 } 3619 while (s4 !== peg$FAILED) { 3620 s3.push(s4); 3621 if (peg$r1.test(input.charAt(peg$currPos))) { 3622 s4 = input.charAt(peg$currPos); 3623 peg$currPos++; 3624 } 3625 else { 3626 s4 = peg$FAILED; 3627 if (peg$silentFails === 0) { 3628 peg$fail(peg$e45); 3629 } 3630 } 3631 } 3632 s2 = [s2, s3]; 3633 s1 = s2; 3634 } 3635 else { 3636 peg$currPos = s1; 3637 s1 = peg$FAILED; 3638 } 3639 if (s1 !== peg$FAILED) { 3640 peg$savedPos = s0; 3641 s1 = peg$f34(); 3642 } 3643 s0 = s1; 3644 peg$silentFails--; 3645 if (s0 === peg$FAILED) { 3646 s1 = peg$FAILED; 3647 if (peg$silentFails === 0) { 3648 peg$fail(peg$e43); 3649 } 3650 } 3651 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3652 return s0; 3653 } 3654 function peg$parseunitIdentifier() { 3655 var s0, s1; 3656 var key = peg$currPos * 82 + 51; 3657 var cached = peg$resultsCache[key]; 3658 if (cached) { 3659 peg$currPos = cached.nextPos; 3660 return cached.result; 3661 } 3662 peg$silentFails++; 3663 if (input.substr(peg$currPos, 7) === peg$c39) { 3664 s0 = peg$c39; 3665 peg$currPos += 7; 3666 } 3667 else { 3668 s0 = peg$FAILED; 3669 if (peg$silentFails === 0) { 3670 peg$fail(peg$e47); 3671 } 3672 } 3673 if (s0 === peg$FAILED) { 3674 if (input.substr(peg$currPos, 5) === peg$c40) { 3675 s0 = peg$c40; 3676 peg$currPos += 5; 3677 } 3678 else { 3679 s0 = peg$FAILED; 3680 if (peg$silentFails === 0) { 3681 peg$fail(peg$e48); 3682 } 3683 } 3684 if (s0 === peg$FAILED) { 3685 if (input.substr(peg$currPos, 4) === peg$c41) { 3686 s0 = peg$c41; 3687 peg$currPos += 4; 3688 } 3689 else { 3690 s0 = peg$FAILED; 3691 if (peg$silentFails === 0) { 3692 peg$fail(peg$e49); 3693 } 3694 } 3695 if (s0 === peg$FAILED) { 3696 if (input.substr(peg$currPos, 5) === peg$c42) { 3697 s0 = peg$c42; 3698 peg$currPos += 5; 3699 } 3700 else { 3701 s0 = peg$FAILED; 3702 if (peg$silentFails === 0) { 3703 peg$fail(peg$e50); 3704 } 3705 } 3706 if (s0 === peg$FAILED) { 3707 if (input.charCodeAt(peg$currPos) === 110) { 3708 s0 = peg$c43; 3709 peg$currPos++; 3710 } 3711 else { 3712 s0 = peg$FAILED; 3713 if (peg$silentFails === 0) { 3714 peg$fail(peg$e51); 3715 } 3716 } 3717 if (s0 === peg$FAILED) { 3718 if (input.charCodeAt(peg$currPos) === 109) { 3719 s0 = peg$c44; 3720 peg$currPos++; 3721 } 3722 else { 3723 s0 = peg$FAILED; 3724 if (peg$silentFails === 0) { 3725 peg$fail(peg$e52); 3726 } 3727 } 3728 if (s0 === peg$FAILED) { 3729 if (input.charCodeAt(peg$currPos) === 107) { 3730 s0 = peg$c45; 3731 peg$currPos++; 3732 } 3733 else { 3734 s0 = peg$FAILED; 3735 if (peg$silentFails === 0) { 3736 peg$fail(peg$e53); 3737 } 3738 } 3739 if (s0 === peg$FAILED) { 3740 if (input.charCodeAt(peg$currPos) === 77) { 3741 s0 = peg$c46; 3742 peg$currPos++; 3743 } 3744 else { 3745 s0 = peg$FAILED; 3746 if (peg$silentFails === 0) { 3747 peg$fail(peg$e54); 3748 } 3749 } 3750 if (s0 === peg$FAILED) { 3751 if (input.charCodeAt(peg$currPos) === 66) { 3752 s0 = peg$c47; 3753 peg$currPos++; 3754 } 3755 else { 3756 s0 = peg$FAILED; 3757 if (peg$silentFails === 0) { 3758 peg$fail(peg$e55); 3759 } 3760 } 3761 if (s0 === peg$FAILED) { 3762 if (input.charCodeAt(peg$currPos) === 71) { 3763 s0 = peg$c48; 3764 peg$currPos++; 3765 } 3766 else { 3767 s0 = peg$FAILED; 3768 if (peg$silentFails === 0) { 3769 peg$fail(peg$e56); 3770 } 3771 } 3772 if (s0 === peg$FAILED) { 3773 if (input.charCodeAt(peg$currPos) === 84) { 3774 s0 = peg$c49; 3775 peg$currPos++; 3776 } 3777 else { 3778 s0 = peg$FAILED; 3779 if (peg$silentFails === 0) { 3780 peg$fail(peg$e57); 3781 } 3782 } 3783 if (s0 === peg$FAILED) { 3784 if (input.charCodeAt(peg$currPos) === 80) { 3785 s0 = peg$c50; 3786 peg$currPos++; 3787 } 3788 else { 3789 s0 = peg$FAILED; 3790 if (peg$silentFails === 0) { 3791 peg$fail(peg$e58); 3792 } 3793 } 3794 if (s0 === peg$FAILED) { 3795 if (input.charCodeAt(peg$currPos) === 37) { 3796 s0 = peg$c51; 3797 peg$currPos++; 3798 } 3799 else { 3800 s0 = peg$FAILED; 3801 if (peg$silentFails === 0) { 3802 peg$fail(peg$e59); 3803 } 3804 } 3805 } 3806 } 3807 } 3808 } 3809 } 3810 } 3811 } 3812 } 3813 } 3814 } 3815 } 3816 } 3817 peg$silentFails--; 3818 if (s0 === peg$FAILED) { 3819 s1 = peg$FAILED; 3820 if (peg$silentFails === 0) { 3821 peg$fail(peg$e43); 3822 } 3823 } 3824 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3825 return s0; 3826 } 3827 function peg$parsedollarIdentifier() { 3828 var s0, s1, s2, s3, s4; 3829 var key = peg$currPos * 82 + 52; 3830 var cached = peg$resultsCache[key]; 3831 if (cached) { 3832 peg$currPos = cached.nextPos; 3833 return cached.result; 3834 } 3835 peg$silentFails++; 3836 s0 = peg$currPos; 3837 s1 = peg$currPos; 3838 s2 = []; 3839 if (peg$r3.test(input.charAt(peg$currPos))) { 3840 s3 = input.charAt(peg$currPos); 3841 peg$currPos++; 3842 } 3843 else { 3844 s3 = peg$FAILED; 3845 if (peg$silentFails === 0) { 3846 peg$fail(peg$e60); 3847 } 3848 } 3849 if (s3 !== peg$FAILED) { 3850 while (s3 !== peg$FAILED) { 3851 s2.push(s3); 3852 if (peg$r3.test(input.charAt(peg$currPos))) { 3853 s3 = input.charAt(peg$currPos); 3854 peg$currPos++; 3855 } 3856 else { 3857 s3 = peg$FAILED; 3858 if (peg$silentFails === 0) { 3859 peg$fail(peg$e60); 3860 } 3861 } 3862 } 3863 } 3864 else { 3865 s2 = peg$FAILED; 3866 } 3867 if (s2 !== peg$FAILED) { 3868 s3 = []; 3869 if (peg$r4.test(input.charAt(peg$currPos))) { 3870 s4 = input.charAt(peg$currPos); 3871 peg$currPos++; 3872 } 3873 else { 3874 s4 = peg$FAILED; 3875 if (peg$silentFails === 0) { 3876 peg$fail(peg$e61); 3877 } 3878 } 3879 while (s4 !== peg$FAILED) { 3880 s3.push(s4); 3881 if (peg$r4.test(input.charAt(peg$currPos))) { 3882 s4 = input.charAt(peg$currPos); 3883 peg$currPos++; 3884 } 3885 else { 3886 s4 = peg$FAILED; 3887 if (peg$silentFails === 0) { 3888 peg$fail(peg$e61); 3889 } 3890 } 3891 } 3892 s2 = [s2, s3]; 3893 s1 = s2; 3894 } 3895 else { 3896 peg$currPos = s1; 3897 s1 = peg$FAILED; 3898 } 3899 if (s1 !== peg$FAILED) { 3900 peg$savedPos = s0; 3901 s1 = peg$f35(); 3902 } 3903 s0 = s1; 3904 peg$silentFails--; 3905 if (s0 === peg$FAILED) { 3906 s1 = peg$FAILED; 3907 if (peg$silentFails === 0) { 3908 peg$fail(peg$e43); 3909 } 3910 } 3911 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 3912 return s0; 3913 } 3914 function peg$parseescapeSeq() { 3915 var s0, s1, s2, s3, s4, s5, s6, s7, s8; 3916 var key = peg$currPos * 82 + 53; 3917 var cached = peg$resultsCache[key]; 3918 if (cached) { 3919 peg$currPos = cached.nextPos; 3920 return cached.result; 3921 } 3922 peg$silentFails++; 3923 s0 = peg$currPos; 3924 if (input.charCodeAt(peg$currPos) === 92) { 3925 s1 = peg$c52; 3926 peg$currPos++; 3927 } 3928 else { 3929 s1 = peg$FAILED; 3930 if (peg$silentFails === 0) { 3931 peg$fail(peg$e63); 3932 } 3933 } 3934 if (s1 !== peg$FAILED) { 3935 s2 = peg$currPos; 3936 if (peg$r5.test(input.charAt(peg$currPos))) { 3937 s3 = input.charAt(peg$currPos); 3938 peg$currPos++; 3939 } 3940 else { 3941 s3 = peg$FAILED; 3942 if (peg$silentFails === 0) { 3943 peg$fail(peg$e64); 3944 } 3945 } 3946 if (s3 !== peg$FAILED) { 3947 peg$savedPos = s2; 3948 s3 = peg$f36(s3); 3949 } 3950 s2 = s3; 3951 if (s2 === peg$FAILED) { 3952 s2 = peg$currPos; 3953 s3 = peg$currPos; 3954 if (input.charCodeAt(peg$currPos) === 117) { 3955 s4 = peg$c53; 3956 peg$currPos++; 3957 } 3958 else { 3959 s4 = peg$FAILED; 3960 if (peg$silentFails === 0) { 3961 peg$fail(peg$e65); 3962 } 3963 } 3964 if (s4 !== peg$FAILED) { 3965 if (input.length > peg$currPos) { 3966 s5 = input.charAt(peg$currPos); 3967 peg$currPos++; 3968 } 3969 else { 3970 s5 = peg$FAILED; 3971 if (peg$silentFails === 0) { 3972 peg$fail(peg$e66); 3973 } 3974 } 3975 if (s5 !== peg$FAILED) { 3976 if (input.length > peg$currPos) { 3977 s6 = input.charAt(peg$currPos); 3978 peg$currPos++; 3979 } 3980 else { 3981 s6 = peg$FAILED; 3982 if (peg$silentFails === 0) { 3983 peg$fail(peg$e66); 3984 } 3985 } 3986 if (s6 !== peg$FAILED) { 3987 if (input.length > peg$currPos) { 3988 s7 = input.charAt(peg$currPos); 3989 peg$currPos++; 3990 } 3991 else { 3992 s7 = peg$FAILED; 3993 if (peg$silentFails === 0) { 3994 peg$fail(peg$e66); 3995 } 3996 } 3997 if (s7 !== peg$FAILED) { 3998 if (input.length > peg$currPos) { 3999 s8 = input.charAt(peg$currPos); 4000 peg$currPos++; 4001 } 4002 else { 4003 s8 = peg$FAILED; 4004 if (peg$silentFails === 0) { 4005 peg$fail(peg$e66); 4006 } 4007 } 4008 if (s8 !== peg$FAILED) { 4009 s4 = [s4, s5, s6, s7, s8]; 4010 s3 = s4; 4011 } 4012 else { 4013 peg$currPos = s3; 4014 s3 = peg$FAILED; 4015 } 4016 } 4017 else { 4018 peg$currPos = s3; 4019 s3 = peg$FAILED; 4020 } 4021 } 4022 else { 4023 peg$currPos = s3; 4024 s3 = peg$FAILED; 4025 } 4026 } 4027 else { 4028 peg$currPos = s3; 4029 s3 = peg$FAILED; 4030 } 4031 } 4032 else { 4033 peg$currPos = s3; 4034 s3 = peg$FAILED; 4035 } 4036 if (s3 !== peg$FAILED) { 4037 peg$savedPos = s2; 4038 s3 = peg$f37(s3); 4039 } 4040 s2 = s3; 4041 } 4042 if (s2 !== peg$FAILED) { 4043 s0 = s2; 4044 } 4045 else { 4046 peg$currPos = s0; 4047 s0 = peg$FAILED; 4048 } 4049 } 4050 else { 4051 peg$currPos = s0; 4052 s0 = peg$FAILED; 4053 } 4054 peg$silentFails--; 4055 if (s0 === peg$FAILED) { 4056 s1 = peg$FAILED; 4057 if (peg$silentFails === 0) { 4058 peg$fail(peg$e62); 4059 } 4060 } 4061 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4062 return s0; 4063 } 4064 function peg$parsestring() { 4065 var s0, s1, s2, s3, s4, s5; 4066 var key = peg$currPos * 82 + 54; 4067 var cached = peg$resultsCache[key]; 4068 if (cached) { 4069 peg$currPos = cached.nextPos; 4070 return cached.result; 4071 } 4072 peg$silentFails++; 4073 s0 = peg$currPos; 4074 if (input.charCodeAt(peg$currPos) === 39) { 4075 s1 = peg$c54; 4076 peg$currPos++; 4077 } 4078 else { 4079 s1 = peg$FAILED; 4080 if (peg$silentFails === 0) { 4081 peg$fail(peg$e68); 4082 } 4083 } 4084 if (s1 !== peg$FAILED) { 4085 s2 = []; 4086 s3 = peg$currPos; 4087 s4 = peg$currPos; 4088 peg$silentFails++; 4089 if (input.charCodeAt(peg$currPos) === 39) { 4090 s5 = peg$c54; 4091 peg$currPos++; 4092 } 4093 else { 4094 s5 = peg$FAILED; 4095 if (peg$silentFails === 0) { 4096 peg$fail(peg$e68); 4097 } 4098 } 4099 if (s5 === peg$FAILED) { 4100 if (input.charCodeAt(peg$currPos) === 92) { 4101 s5 = peg$c52; 4102 peg$currPos++; 4103 } 4104 else { 4105 s5 = peg$FAILED; 4106 if (peg$silentFails === 0) { 4107 peg$fail(peg$e63); 4108 } 4109 } 4110 } 4111 peg$silentFails--; 4112 if (s5 === peg$FAILED) { 4113 s4 = undefined; 4114 } 4115 else { 4116 peg$currPos = s4; 4117 s4 = peg$FAILED; 4118 } 4119 if (s4 !== peg$FAILED) { 4120 if (input.length > peg$currPos) { 4121 s5 = input.charAt(peg$currPos); 4122 peg$currPos++; 4123 } 4124 else { 4125 s5 = peg$FAILED; 4126 if (peg$silentFails === 0) { 4127 peg$fail(peg$e66); 4128 } 4129 } 4130 if (s5 !== peg$FAILED) { 4131 s3 = s5; 4132 } 4133 else { 4134 peg$currPos = s3; 4135 s3 = peg$FAILED; 4136 } 4137 } 4138 else { 4139 peg$currPos = s3; 4140 s3 = peg$FAILED; 4141 } 4142 if (s3 === peg$FAILED) { 4143 s3 = peg$parseescapeSeq(); 4144 } 4145 while (s3 !== peg$FAILED) { 4146 s2.push(s3); 4147 s3 = peg$currPos; 4148 s4 = peg$currPos; 4149 peg$silentFails++; 4150 if (input.charCodeAt(peg$currPos) === 39) { 4151 s5 = peg$c54; 4152 peg$currPos++; 4153 } 4154 else { 4155 s5 = peg$FAILED; 4156 if (peg$silentFails === 0) { 4157 peg$fail(peg$e68); 4158 } 4159 } 4160 if (s5 === peg$FAILED) { 4161 if (input.charCodeAt(peg$currPos) === 92) { 4162 s5 = peg$c52; 4163 peg$currPos++; 4164 } 4165 else { 4166 s5 = peg$FAILED; 4167 if (peg$silentFails === 0) { 4168 peg$fail(peg$e63); 4169 } 4170 } 4171 } 4172 peg$silentFails--; 4173 if (s5 === peg$FAILED) { 4174 s4 = undefined; 4175 } 4176 else { 4177 peg$currPos = s4; 4178 s4 = peg$FAILED; 4179 } 4180 if (s4 !== peg$FAILED) { 4181 if (input.length > peg$currPos) { 4182 s5 = input.charAt(peg$currPos); 4183 peg$currPos++; 4184 } 4185 else { 4186 s5 = peg$FAILED; 4187 if (peg$silentFails === 0) { 4188 peg$fail(peg$e66); 4189 } 4190 } 4191 if (s5 !== peg$FAILED) { 4192 s3 = s5; 4193 } 4194 else { 4195 peg$currPos = s3; 4196 s3 = peg$FAILED; 4197 } 4198 } 4199 else { 4200 peg$currPos = s3; 4201 s3 = peg$FAILED; 4202 } 4203 if (s3 === peg$FAILED) { 4204 s3 = peg$parseescapeSeq(); 4205 } 4206 } 4207 if (input.charCodeAt(peg$currPos) === 39) { 4208 s3 = peg$c54; 4209 peg$currPos++; 4210 } 4211 else { 4212 s3 = peg$FAILED; 4213 if (peg$silentFails === 0) { 4214 peg$fail(peg$e68); 4215 } 4216 } 4217 if (s3 !== peg$FAILED) { 4218 peg$savedPos = s0; 4219 s0 = peg$f38(s2); 4220 } 4221 else { 4222 peg$currPos = s0; 4223 s0 = peg$FAILED; 4224 } 4225 } 4226 else { 4227 peg$currPos = s0; 4228 s0 = peg$FAILED; 4229 } 4230 if (s0 === peg$FAILED) { 4231 s0 = peg$currPos; 4232 if (input.charCodeAt(peg$currPos) === 34) { 4233 s1 = peg$c55; 4234 peg$currPos++; 4235 } 4236 else { 4237 s1 = peg$FAILED; 4238 if (peg$silentFails === 0) { 4239 peg$fail(peg$e69); 4240 } 4241 } 4242 if (s1 !== peg$FAILED) { 4243 s2 = []; 4244 s3 = peg$currPos; 4245 s4 = peg$currPos; 4246 peg$silentFails++; 4247 if (input.charCodeAt(peg$currPos) === 34) { 4248 s5 = peg$c55; 4249 peg$currPos++; 4250 } 4251 else { 4252 s5 = peg$FAILED; 4253 if (peg$silentFails === 0) { 4254 peg$fail(peg$e69); 4255 } 4256 } 4257 if (s5 === peg$FAILED) { 4258 if (input.charCodeAt(peg$currPos) === 92) { 4259 s5 = peg$c52; 4260 peg$currPos++; 4261 } 4262 else { 4263 s5 = peg$FAILED; 4264 if (peg$silentFails === 0) { 4265 peg$fail(peg$e63); 4266 } 4267 } 4268 } 4269 peg$silentFails--; 4270 if (s5 === peg$FAILED) { 4271 s4 = undefined; 4272 } 4273 else { 4274 peg$currPos = s4; 4275 s4 = peg$FAILED; 4276 } 4277 if (s4 !== peg$FAILED) { 4278 if (input.length > peg$currPos) { 4279 s5 = input.charAt(peg$currPos); 4280 peg$currPos++; 4281 } 4282 else { 4283 s5 = peg$FAILED; 4284 if (peg$silentFails === 0) { 4285 peg$fail(peg$e66); 4286 } 4287 } 4288 if (s5 !== peg$FAILED) { 4289 s3 = s5; 4290 } 4291 else { 4292 peg$currPos = s3; 4293 s3 = peg$FAILED; 4294 } 4295 } 4296 else { 4297 peg$currPos = s3; 4298 s3 = peg$FAILED; 4299 } 4300 if (s3 === peg$FAILED) { 4301 s3 = peg$parseescapeSeq(); 4302 } 4303 while (s3 !== peg$FAILED) { 4304 s2.push(s3); 4305 s3 = peg$currPos; 4306 s4 = peg$currPos; 4307 peg$silentFails++; 4308 if (input.charCodeAt(peg$currPos) === 34) { 4309 s5 = peg$c55; 4310 peg$currPos++; 4311 } 4312 else { 4313 s5 = peg$FAILED; 4314 if (peg$silentFails === 0) { 4315 peg$fail(peg$e69); 4316 } 4317 } 4318 if (s5 === peg$FAILED) { 4319 if (input.charCodeAt(peg$currPos) === 92) { 4320 s5 = peg$c52; 4321 peg$currPos++; 4322 } 4323 else { 4324 s5 = peg$FAILED; 4325 if (peg$silentFails === 0) { 4326 peg$fail(peg$e63); 4327 } 4328 } 4329 } 4330 peg$silentFails--; 4331 if (s5 === peg$FAILED) { 4332 s4 = undefined; 4333 } 4334 else { 4335 peg$currPos = s4; 4336 s4 = peg$FAILED; 4337 } 4338 if (s4 !== peg$FAILED) { 4339 if (input.length > peg$currPos) { 4340 s5 = input.charAt(peg$currPos); 4341 peg$currPos++; 4342 } 4343 else { 4344 s5 = peg$FAILED; 4345 if (peg$silentFails === 0) { 4346 peg$fail(peg$e66); 4347 } 4348 } 4349 if (s5 !== peg$FAILED) { 4350 s3 = s5; 4351 } 4352 else { 4353 peg$currPos = s3; 4354 s3 = peg$FAILED; 4355 } 4356 } 4357 else { 4358 peg$currPos = s3; 4359 s3 = peg$FAILED; 4360 } 4361 if (s3 === peg$FAILED) { 4362 s3 = peg$parseescapeSeq(); 4363 } 4364 } 4365 if (input.charCodeAt(peg$currPos) === 34) { 4366 s3 = peg$c55; 4367 peg$currPos++; 4368 } 4369 else { 4370 s3 = peg$FAILED; 4371 if (peg$silentFails === 0) { 4372 peg$fail(peg$e69); 4373 } 4374 } 4375 if (s3 !== peg$FAILED) { 4376 peg$savedPos = s0; 4377 s0 = peg$f39(s2); 4378 } 4379 else { 4380 peg$currPos = s0; 4381 s0 = peg$FAILED; 4382 } 4383 } 4384 else { 4385 peg$currPos = s0; 4386 s0 = peg$FAILED; 4387 } 4388 } 4389 peg$silentFails--; 4390 if (s0 === peg$FAILED) { 4391 s1 = peg$FAILED; 4392 if (peg$silentFails === 0) { 4393 peg$fail(peg$e67); 4394 } 4395 } 4396 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4397 return s0; 4398 } 4399 function peg$parsenumber() { 4400 var s0, s1, s2; 4401 var key = peg$currPos * 82 + 55; 4402 var cached = peg$resultsCache[key]; 4403 if (cached) { 4404 peg$currPos = cached.nextPos; 4405 return cached.result; 4406 } 4407 s0 = peg$currPos; 4408 s1 = peg$parsefloat(); 4409 if (s1 !== peg$FAILED) { 4410 s2 = peg$parseunitIdentifier(); 4411 if (s2 === peg$FAILED) { 4412 s2 = null; 4413 } 4414 peg$savedPos = s0; 4415 s0 = peg$f40(s1, s2); 4416 } 4417 else { 4418 peg$currPos = s0; 4419 s0 = peg$FAILED; 4420 } 4421 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4422 return s0; 4423 } 4424 function peg$parsefloat() { 4425 var s0, s1, s2; 4426 var key = peg$currPos * 82 + 56; 4427 var cached = peg$resultsCache[key]; 4428 if (cached) { 4429 peg$currPos = cached.nextPos; 4430 return cached.result; 4431 } 4432 peg$silentFails++; 4433 s0 = peg$currPos; 4434 s1 = peg$parsefloatSignificand(); 4435 if (s1 !== peg$FAILED) { 4436 s2 = peg$parsefloatExponent(); 4437 if (s2 === peg$FAILED) { 4438 s2 = null; 4439 } 4440 peg$savedPos = s0; 4441 s0 = peg$f41(s1, s2); 4442 } 4443 else { 4444 peg$currPos = s0; 4445 s0 = peg$FAILED; 4446 } 4447 peg$silentFails--; 4448 if (s0 === peg$FAILED) { 4449 s1 = peg$FAILED; 4450 if (peg$silentFails === 0) { 4451 peg$fail(peg$e70); 4452 } 4453 } 4454 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4455 return s0; 4456 } 4457 function peg$parsefloatSignificand() { 4458 var s0, s1, s2, s3, s4, s5; 4459 var key = peg$currPos * 82 + 57; 4460 var cached = peg$resultsCache[key]; 4461 if (cached) { 4462 peg$currPos = cached.nextPos; 4463 return cached.result; 4464 } 4465 s0 = peg$currPos; 4466 s1 = peg$parseintLiteral(); 4467 if (s1 !== peg$FAILED) { 4468 if (input.charCodeAt(peg$currPos) === 46) { 4469 s2 = peg$c36; 4470 peg$currPos++; 4471 } 4472 else { 4473 s2 = peg$FAILED; 4474 if (peg$silentFails === 0) { 4475 peg$fail(peg$e39); 4476 } 4477 } 4478 if (s2 !== peg$FAILED) { 4479 s3 = peg$currPos; 4480 s4 = []; 4481 s5 = peg$parsed(); 4482 if (s5 !== peg$FAILED) { 4483 while (s5 !== peg$FAILED) { 4484 s4.push(s5); 4485 s5 = peg$parsed(); 4486 } 4487 } 4488 else { 4489 s4 = peg$FAILED; 4490 } 4491 if (s4 !== peg$FAILED) { 4492 s3 = input.substring(s3, peg$currPos); 4493 } 4494 else { 4495 s3 = s4; 4496 } 4497 if (s3 === peg$FAILED) { 4498 s3 = null; 4499 } 4500 peg$savedPos = s0; 4501 s0 = peg$f42(s1, s3); 4502 } 4503 else { 4504 peg$currPos = s0; 4505 s0 = peg$FAILED; 4506 } 4507 } 4508 else { 4509 peg$currPos = s0; 4510 s0 = peg$FAILED; 4511 } 4512 if (s0 === peg$FAILED) { 4513 s0 = peg$currPos; 4514 s1 = peg$parseintLiteral(); 4515 if (s1 !== peg$FAILED) { 4516 peg$savedPos = s0; 4517 s1 = peg$f43(s1); 4518 } 4519 s0 = s1; 4520 if (s0 === peg$FAILED) { 4521 s0 = peg$currPos; 4522 if (input.charCodeAt(peg$currPos) === 46) { 4523 s1 = peg$c36; 4524 peg$currPos++; 4525 } 4526 else { 4527 s1 = peg$FAILED; 4528 if (peg$silentFails === 0) { 4529 peg$fail(peg$e39); 4530 } 4531 } 4532 if (s1 !== peg$FAILED) { 4533 s2 = peg$currPos; 4534 s3 = []; 4535 s4 = peg$parsed(); 4536 if (s4 !== peg$FAILED) { 4537 while (s4 !== peg$FAILED) { 4538 s3.push(s4); 4539 s4 = peg$parsed(); 4540 } 4541 } 4542 else { 4543 s3 = peg$FAILED; 4544 } 4545 if (s3 !== peg$FAILED) { 4546 s2 = input.substring(s2, peg$currPos); 4547 } 4548 else { 4549 s2 = s3; 4550 } 4551 if (s2 !== peg$FAILED) { 4552 peg$savedPos = s0; 4553 s0 = peg$f44(s2); 4554 } 4555 else { 4556 peg$currPos = s0; 4557 s0 = peg$FAILED; 4558 } 4559 } 4560 else { 4561 peg$currPos = s0; 4562 s0 = peg$FAILED; 4563 } 4564 } 4565 } 4566 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4567 return s0; 4568 } 4569 function peg$parsefloatExponent() { 4570 var s0, s1, s2; 4571 var key = peg$currPos * 82 + 58; 4572 var cached = peg$resultsCache[key]; 4573 if (cached) { 4574 peg$currPos = cached.nextPos; 4575 return cached.result; 4576 } 4577 s0 = peg$currPos; 4578 if (peg$r6.test(input.charAt(peg$currPos))) { 4579 s1 = input.charAt(peg$currPos); 4580 peg$currPos++; 4581 } 4582 else { 4583 s1 = peg$FAILED; 4584 if (peg$silentFails === 0) { 4585 peg$fail(peg$e71); 4586 } 4587 } 4588 if (s1 !== peg$FAILED) { 4589 s2 = peg$parsesignedIntLiteral(); 4590 if (s2 !== peg$FAILED) { 4591 s0 = s2; 4592 } 4593 else { 4594 peg$currPos = s0; 4595 s0 = peg$FAILED; 4596 } 4597 } 4598 else { 4599 peg$currPos = s0; 4600 s0 = peg$FAILED; 4601 } 4602 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4603 return s0; 4604 } 4605 function peg$parseintLiteral() { 4606 var s0, s1, s2; 4607 var key = peg$currPos * 82 + 59; 4608 var cached = peg$resultsCache[key]; 4609 if (cached) { 4610 peg$currPos = cached.nextPos; 4611 return cached.result; 4612 } 4613 s0 = peg$currPos; 4614 s1 = []; 4615 s2 = peg$parsed(); 4616 if (s2 !== peg$FAILED) { 4617 while (s2 !== peg$FAILED) { 4618 s1.push(s2); 4619 s2 = peg$parsed(); 4620 } 4621 } 4622 else { 4623 s1 = peg$FAILED; 4624 } 4625 if (s1 !== peg$FAILED) { 4626 peg$savedPos = s0; 4627 s1 = peg$f45(); 4628 } 4629 s0 = s1; 4630 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4631 return s0; 4632 } 4633 function peg$parsesignedIntLiteral() { 4634 var s0, s1, s2, s3; 4635 var key = peg$currPos * 82 + 60; 4636 var cached = peg$resultsCache[key]; 4637 if (cached) { 4638 peg$currPos = cached.nextPos; 4639 return cached.result; 4640 } 4641 s0 = peg$currPos; 4642 if (input.charCodeAt(peg$currPos) === 45) { 4643 s1 = peg$c24; 4644 peg$currPos++; 4645 } 4646 else { 4647 s1 = peg$FAILED; 4648 if (peg$silentFails === 0) { 4649 peg$fail(peg$e26); 4650 } 4651 } 4652 if (s1 === peg$FAILED) { 4653 if (input.charCodeAt(peg$currPos) === 43) { 4654 s1 = peg$c23; 4655 peg$currPos++; 4656 } 4657 else { 4658 s1 = peg$FAILED; 4659 if (peg$silentFails === 0) { 4660 peg$fail(peg$e25); 4661 } 4662 } 4663 } 4664 if (s1 === peg$FAILED) { 4665 s1 = null; 4666 } 4667 s2 = []; 4668 s3 = peg$parsed(); 4669 if (s3 !== peg$FAILED) { 4670 while (s3 !== peg$FAILED) { 4671 s2.push(s3); 4672 s3 = peg$parsed(); 4673 } 4674 } 4675 else { 4676 s2 = peg$FAILED; 4677 } 4678 if (s2 !== peg$FAILED) { 4679 peg$savedPos = s0; 4680 s0 = peg$f46(); 4681 } 4682 else { 4683 peg$currPos = s0; 4684 s0 = peg$FAILED; 4685 } 4686 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4687 return s0; 4688 } 4689 function peg$parsed() { 4690 var s0; 4691 var key = peg$currPos * 82 + 61; 4692 var cached = peg$resultsCache[key]; 4693 if (cached) { 4694 peg$currPos = cached.nextPos; 4695 return cached.result; 4696 } 4697 if (peg$r7.test(input.charAt(peg$currPos))) { 4698 s0 = input.charAt(peg$currPos); 4699 peg$currPos++; 4700 } 4701 else { 4702 s0 = peg$FAILED; 4703 if (peg$silentFails === 0) { 4704 peg$fail(peg$e72); 4705 } 4706 } 4707 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4708 return s0; 4709 } 4710 function peg$parseboolean() { 4711 var s0, s1, s2, s3, s4; 4712 var key = peg$currPos * 82 + 62; 4713 var cached = peg$resultsCache[key]; 4714 if (cached) { 4715 peg$currPos = cached.nextPos; 4716 return cached.result; 4717 } 4718 peg$silentFails++; 4719 s0 = peg$currPos; 4720 if (input.substr(peg$currPos, 4) === peg$c56) { 4721 s1 = peg$c56; 4722 peg$currPos += 4; 4723 } 4724 else { 4725 s1 = peg$FAILED; 4726 if (peg$silentFails === 0) { 4727 peg$fail(peg$e74); 4728 } 4729 } 4730 if (s1 === peg$FAILED) { 4731 if (input.substr(peg$currPos, 5) === peg$c57) { 4732 s1 = peg$c57; 4733 peg$currPos += 5; 4734 } 4735 else { 4736 s1 = peg$FAILED; 4737 if (peg$silentFails === 0) { 4738 peg$fail(peg$e75); 4739 } 4740 } 4741 } 4742 if (s1 !== peg$FAILED) { 4743 s2 = peg$currPos; 4744 peg$silentFails++; 4745 if (peg$r8.test(input.charAt(peg$currPos))) { 4746 s3 = input.charAt(peg$currPos); 4747 peg$currPos++; 4748 } 4749 else { 4750 s3 = peg$FAILED; 4751 if (peg$silentFails === 0) { 4752 peg$fail(peg$e76); 4753 } 4754 } 4755 peg$silentFails--; 4756 if (s3 === peg$FAILED) { 4757 s2 = undefined; 4758 } 4759 else { 4760 peg$currPos = s2; 4761 s2 = peg$FAILED; 4762 } 4763 if (s2 !== peg$FAILED) { 4764 s3 = peg$currPos; 4765 peg$silentFails++; 4766 if (peg$r9.test(input.charAt(peg$currPos))) { 4767 s4 = input.charAt(peg$currPos); 4768 peg$currPos++; 4769 } 4770 else { 4771 s4 = peg$FAILED; 4772 if (peg$silentFails === 0) { 4773 peg$fail(peg$e77); 4774 } 4775 } 4776 peg$silentFails--; 4777 if (s4 === peg$FAILED) { 4778 s3 = undefined; 4779 } 4780 else { 4781 peg$currPos = s3; 4782 s3 = peg$FAILED; 4783 } 4784 if (s3 !== peg$FAILED) { 4785 peg$savedPos = s0; 4786 s0 = peg$f47(); 4787 } 4788 else { 4789 peg$currPos = s0; 4790 s0 = peg$FAILED; 4791 } 4792 } 4793 else { 4794 peg$currPos = s0; 4795 s0 = peg$FAILED; 4796 } 4797 } 4798 else { 4799 peg$currPos = s0; 4800 s0 = peg$FAILED; 4801 } 4802 peg$silentFails--; 4803 if (s0 === peg$FAILED) { 4804 s1 = peg$FAILED; 4805 if (peg$silentFails === 0) { 4806 peg$fail(peg$e73); 4807 } 4808 } 4809 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4810 return s0; 4811 } 4812 function peg$parsevalueConstructor() { 4813 var s0; 4814 var key = peg$currPos * 82 + 63; 4815 var cached = peg$resultsCache[key]; 4816 if (cached) { 4817 peg$currPos = cached.nextPos; 4818 return cached.result; 4819 } 4820 s0 = peg$parsearrayConstructor(); 4821 if (s0 === peg$FAILED) { 4822 s0 = peg$parselambda(); 4823 if (s0 === peg$FAILED) { 4824 s0 = peg$parsequotedInnerBlock(); 4825 if (s0 === peg$FAILED) { 4826 s0 = peg$parsedictConstructor(); 4827 } 4828 } 4829 } 4830 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 4831 return s0; 4832 } 4833 function peg$parselambda() { 4834 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12; 4835 var key = peg$currPos * 82 + 64; 4836 var cached = peg$resultsCache[key]; 4837 if (cached) { 4838 peg$currPos = cached.nextPos; 4839 return cached.result; 4840 } 4841 s0 = peg$currPos; 4842 if (input.charCodeAt(peg$currPos) === 123) { 4843 s1 = peg$c2; 4844 peg$currPos++; 4845 } 4846 else { 4847 s1 = peg$FAILED; 4848 if (peg$silentFails === 0) { 4849 peg$fail(peg$e2); 4850 } 4851 } 4852 if (s1 !== peg$FAILED) { 4853 s2 = peg$parse_nl(); 4854 if (input.charCodeAt(peg$currPos) === 124) { 4855 s3 = peg$c58; 4856 peg$currPos++; 4857 } 4858 else { 4859 s3 = peg$FAILED; 4860 if (peg$silentFails === 0) { 4861 peg$fail(peg$e78); 4862 } 4863 } 4864 if (s3 !== peg$FAILED) { 4865 s4 = peg$parse_nl(); 4866 s5 = peg$parsefunctionParameters(); 4867 s6 = peg$parse_nl(); 4868 if (input.charCodeAt(peg$currPos) === 124) { 4869 s7 = peg$c58; 4870 peg$currPos++; 4871 } 4872 else { 4873 s7 = peg$FAILED; 4874 if (peg$silentFails === 0) { 4875 peg$fail(peg$e78); 4876 } 4877 } 4878 if (s7 !== peg$FAILED) { 4879 s8 = peg$parse_nl(); 4880 s9 = peg$parsestatementsList(); 4881 if (s9 !== peg$FAILED) { 4882 s10 = peg$currPos; 4883 s11 = peg$parsestatementSeparator(); 4884 if (s11 !== peg$FAILED) { 4885 s12 = peg$parseexpression(); 4886 if (s12 !== peg$FAILED) { 4887 s10 = s12; 4888 } 4889 else { 4890 peg$currPos = s10; 4891 s10 = peg$FAILED; 4892 } 4893 } 4894 else { 4895 peg$currPos = s10; 4896 s10 = peg$FAILED; 4897 } 4898 if (s10 !== peg$FAILED) { 4899 s11 = peg$parse_nl(); 4900 if (input.charCodeAt(peg$currPos) === 125) { 4901 s12 = peg$c3; 4902 peg$currPos++; 4903 } 4904 else { 4905 s12 = peg$FAILED; 4906 if (peg$silentFails === 0) { 4907 peg$fail(peg$e3); 4908 } 4909 } 4910 if (s12 !== peg$FAILED) { 4911 peg$savedPos = s0; 4912 s0 = peg$f48(s5, s9, s10); 4913 } 4914 else { 4915 peg$currPos = s0; 4916 s0 = peg$FAILED; 4917 } 4918 } 4919 else { 4920 peg$currPos = s0; 4921 s0 = peg$FAILED; 4922 } 4923 } 4924 else { 4925 peg$currPos = s0; 4926 s0 = peg$FAILED; 4927 } 4928 } 4929 else { 4930 peg$currPos = s0; 4931 s0 = peg$FAILED; 4932 } 4933 } 4934 else { 4935 peg$currPos = s0; 4936 s0 = peg$FAILED; 4937 } 4938 } 4939 else { 4940 peg$currPos = s0; 4941 s0 = peg$FAILED; 4942 } 4943 if (s0 === peg$FAILED) { 4944 s0 = peg$currPos; 4945 if (input.charCodeAt(peg$currPos) === 123) { 4946 s1 = peg$c2; 4947 peg$currPos++; 4948 } 4949 else { 4950 s1 = peg$FAILED; 4951 if (peg$silentFails === 0) { 4952 peg$fail(peg$e2); 4953 } 4954 } 4955 if (s1 !== peg$FAILED) { 4956 s2 = peg$parse_nl(); 4957 if (input.charCodeAt(peg$currPos) === 124) { 4958 s3 = peg$c58; 4959 peg$currPos++; 4960 } 4961 else { 4962 s3 = peg$FAILED; 4963 if (peg$silentFails === 0) { 4964 peg$fail(peg$e78); 4965 } 4966 } 4967 if (s3 !== peg$FAILED) { 4968 s4 = peg$parse_nl(); 4969 s5 = peg$parsefunctionParameters(); 4970 s6 = peg$parse_nl(); 4971 if (input.charCodeAt(peg$currPos) === 124) { 4972 s7 = peg$c58; 4973 peg$currPos++; 4974 } 4975 else { 4976 s7 = peg$FAILED; 4977 if (peg$silentFails === 0) { 4978 peg$fail(peg$e78); 4979 } 4980 } 4981 if (s7 !== peg$FAILED) { 4982 s8 = peg$parse_nl(); 4983 s9 = peg$parseexpression(); 4984 if (s9 !== peg$FAILED) { 4985 s10 = peg$parse_nl(); 4986 if (input.charCodeAt(peg$currPos) === 125) { 4987 s11 = peg$c3; 4988 peg$currPos++; 4989 } 4990 else { 4991 s11 = peg$FAILED; 4992 if (peg$silentFails === 0) { 4993 peg$fail(peg$e3); 4994 } 4995 } 4996 if (s11 !== peg$FAILED) { 4997 peg$savedPos = s0; 4998 s0 = peg$f49(s5, s9); 4999 } 5000 else { 5001 peg$currPos = s0; 5002 s0 = peg$FAILED; 5003 } 5004 } 5005 else { 5006 peg$currPos = s0; 5007 s0 = peg$FAILED; 5008 } 5009 } 5010 else { 5011 peg$currPos = s0; 5012 s0 = peg$FAILED; 5013 } 5014 } 5015 else { 5016 peg$currPos = s0; 5017 s0 = peg$FAILED; 5018 } 5019 } 5020 else { 5021 peg$currPos = s0; 5022 s0 = peg$FAILED; 5023 } 5024 } 5025 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5026 return s0; 5027 } 5028 function peg$parsearrayConstructor() { 5029 var s0, s1, s2, s3, s4, s5; 5030 var key = peg$currPos * 82 + 65; 5031 var cached = peg$resultsCache[key]; 5032 if (cached) { 5033 peg$currPos = cached.nextPos; 5034 return cached.result; 5035 } 5036 peg$silentFails++; 5037 s0 = peg$currPos; 5038 if (input.charCodeAt(peg$currPos) === 91) { 5039 s1 = peg$c35; 5040 peg$currPos++; 5041 } 5042 else { 5043 s1 = peg$FAILED; 5044 if (peg$silentFails === 0) { 5045 peg$fail(peg$e38); 5046 } 5047 } 5048 if (s1 !== peg$FAILED) { 5049 s2 = peg$parse_nl(); 5050 if (input.charCodeAt(peg$currPos) === 93) { 5051 s3 = peg$c37; 5052 peg$currPos++; 5053 } 5054 else { 5055 s3 = peg$FAILED; 5056 if (peg$silentFails === 0) { 5057 peg$fail(peg$e40); 5058 } 5059 } 5060 if (s3 !== peg$FAILED) { 5061 peg$savedPos = s0; 5062 s0 = peg$f50(); 5063 } 5064 else { 5065 peg$currPos = s0; 5066 s0 = peg$FAILED; 5067 } 5068 } 5069 else { 5070 peg$currPos = s0; 5071 s0 = peg$FAILED; 5072 } 5073 if (s0 === peg$FAILED) { 5074 s0 = peg$currPos; 5075 if (input.charCodeAt(peg$currPos) === 91) { 5076 s1 = peg$c35; 5077 peg$currPos++; 5078 } 5079 else { 5080 s1 = peg$FAILED; 5081 if (peg$silentFails === 0) { 5082 peg$fail(peg$e38); 5083 } 5084 } 5085 if (s1 !== peg$FAILED) { 5086 s2 = peg$parse_nl(); 5087 s3 = peg$parsearray_elements(); 5088 if (s3 !== peg$FAILED) { 5089 s4 = peg$parse_nl(); 5090 if (input.charCodeAt(peg$currPos) === 93) { 5091 s5 = peg$c37; 5092 peg$currPos++; 5093 } 5094 else { 5095 s5 = peg$FAILED; 5096 if (peg$silentFails === 0) { 5097 peg$fail(peg$e40); 5098 } 5099 } 5100 if (s5 !== peg$FAILED) { 5101 peg$savedPos = s0; 5102 s0 = peg$f51(s3); 5103 } 5104 else { 5105 peg$currPos = s0; 5106 s0 = peg$FAILED; 5107 } 5108 } 5109 else { 5110 peg$currPos = s0; 5111 s0 = peg$FAILED; 5112 } 5113 } 5114 else { 5115 peg$currPos = s0; 5116 s0 = peg$FAILED; 5117 } 5118 } 5119 peg$silentFails--; 5120 if (s0 === peg$FAILED) { 5121 s1 = peg$FAILED; 5122 if (peg$silentFails === 0) { 5123 peg$fail(peg$e79); 5124 } 5125 } 5126 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5127 return s0; 5128 } 5129 function peg$parsearray_elements() { 5130 var s0, s1, s2, s3, s4; 5131 var key = peg$currPos * 82 + 66; 5132 var cached = peg$resultsCache[key]; 5133 if (cached) { 5134 peg$currPos = cached.nextPos; 5135 return cached.result; 5136 } 5137 s0 = peg$currPos; 5138 s1 = peg$currPos; 5139 s2 = []; 5140 s3 = peg$parseexpression(); 5141 while (s3 !== peg$FAILED) { 5142 s2.push(s3); 5143 s3 = peg$currPos; 5144 s4 = peg$parsecommaSeparator(); 5145 if (s4 !== peg$FAILED) { 5146 s4 = peg$parseexpression(); 5147 if (s4 === peg$FAILED) { 5148 peg$currPos = s3; 5149 s3 = peg$FAILED; 5150 } 5151 else { 5152 s3 = s4; 5153 } 5154 } 5155 else { 5156 s3 = s4; 5157 } 5158 } 5159 if (s2.length < 1) { 5160 peg$currPos = s1; 5161 s1 = peg$FAILED; 5162 } 5163 else { 5164 s1 = s2; 5165 } 5166 if (s1 !== peg$FAILED) { 5167 s2 = peg$parsecommaSeparator(); 5168 if (s2 === peg$FAILED) { 5169 s2 = null; 5170 } 5171 s0 = s1; 5172 } 5173 else { 5174 peg$currPos = s0; 5175 s0 = peg$FAILED; 5176 } 5177 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5178 return s0; 5179 } 5180 function peg$parsedictConstructor() { 5181 var s0, s1, s2, s3, s4, s5; 5182 var key = peg$currPos * 82 + 67; 5183 var cached = peg$resultsCache[key]; 5184 if (cached) { 5185 peg$currPos = cached.nextPos; 5186 return cached.result; 5187 } 5188 peg$silentFails++; 5189 s0 = peg$currPos; 5190 if (input.charCodeAt(peg$currPos) === 123) { 5191 s1 = peg$c2; 5192 peg$currPos++; 5193 } 5194 else { 5195 s1 = peg$FAILED; 5196 if (peg$silentFails === 0) { 5197 peg$fail(peg$e2); 5198 } 5199 } 5200 if (s1 !== peg$FAILED) { 5201 s2 = peg$parse_nl(); 5202 if (input.charCodeAt(peg$currPos) === 125) { 5203 s3 = peg$c3; 5204 peg$currPos++; 5205 } 5206 else { 5207 s3 = peg$FAILED; 5208 if (peg$silentFails === 0) { 5209 peg$fail(peg$e3); 5210 } 5211 } 5212 if (s3 !== peg$FAILED) { 5213 peg$savedPos = s0; 5214 s0 = peg$f52(); 5215 } 5216 else { 5217 peg$currPos = s0; 5218 s0 = peg$FAILED; 5219 } 5220 } 5221 else { 5222 peg$currPos = s0; 5223 s0 = peg$FAILED; 5224 } 5225 if (s0 === peg$FAILED) { 5226 s0 = peg$currPos; 5227 if (input.charCodeAt(peg$currPos) === 123) { 5228 s1 = peg$c2; 5229 peg$currPos++; 5230 } 5231 else { 5232 s1 = peg$FAILED; 5233 if (peg$silentFails === 0) { 5234 peg$fail(peg$e2); 5235 } 5236 } 5237 if (s1 !== peg$FAILED) { 5238 s2 = peg$parse_nl(); 5239 s3 = peg$parsearray_dictEntries(); 5240 if (s3 !== peg$FAILED) { 5241 s4 = peg$parse_nl(); 5242 if (input.charCodeAt(peg$currPos) === 125) { 5243 s5 = peg$c3; 5244 peg$currPos++; 5245 } 5246 else { 5247 s5 = peg$FAILED; 5248 if (peg$silentFails === 0) { 5249 peg$fail(peg$e3); 5250 } 5251 } 5252 if (s5 !== peg$FAILED) { 5253 peg$savedPos = s0; 5254 s0 = peg$f53(s3); 5255 } 5256 else { 5257 peg$currPos = s0; 5258 s0 = peg$FAILED; 5259 } 5260 } 5261 else { 5262 peg$currPos = s0; 5263 s0 = peg$FAILED; 5264 } 5265 } 5266 else { 5267 peg$currPos = s0; 5268 s0 = peg$FAILED; 5269 } 5270 } 5271 peg$silentFails--; 5272 if (s0 === peg$FAILED) { 5273 s1 = peg$FAILED; 5274 if (peg$silentFails === 0) { 5275 peg$fail(peg$e80); 5276 } 5277 } 5278 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5279 return s0; 5280 } 5281 function peg$parsearray_dictEntries() { 5282 var s0, s1, s2, s3, s4; 5283 var key = peg$currPos * 82 + 68; 5284 var cached = peg$resultsCache[key]; 5285 if (cached) { 5286 peg$currPos = cached.nextPos; 5287 return cached.result; 5288 } 5289 s0 = peg$currPos; 5290 s1 = peg$currPos; 5291 s2 = []; 5292 s3 = peg$parsekeyValuePair(); 5293 if (s3 === peg$FAILED) { 5294 s3 = peg$parseidentifier(); 5295 } 5296 while (s3 !== peg$FAILED) { 5297 s2.push(s3); 5298 s3 = peg$currPos; 5299 s4 = peg$parsecommaSeparator(); 5300 if (s4 !== peg$FAILED) { 5301 s4 = peg$parsekeyValuePair(); 5302 if (s4 === peg$FAILED) { 5303 s4 = peg$parseidentifier(); 5304 } 5305 if (s4 === peg$FAILED) { 5306 peg$currPos = s3; 5307 s3 = peg$FAILED; 5308 } 5309 else { 5310 s3 = s4; 5311 } 5312 } 5313 else { 5314 s3 = s4; 5315 } 5316 } 5317 if (s2.length < 1) { 5318 peg$currPos = s1; 5319 s1 = peg$FAILED; 5320 } 5321 else { 5322 s1 = s2; 5323 } 5324 if (s1 !== peg$FAILED) { 5325 s2 = peg$parsecommaSeparator(); 5326 if (s2 === peg$FAILED) { 5327 s2 = null; 5328 } 5329 s0 = s1; 5330 } 5331 else { 5332 peg$currPos = s0; 5333 s0 = peg$FAILED; 5334 } 5335 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5336 return s0; 5337 } 5338 function peg$parsekeyValuePair() { 5339 var s0, s1, s2, s3, s4, s5; 5340 var key = peg$currPos * 82 + 69; 5341 var cached = peg$resultsCache[key]; 5342 if (cached) { 5343 peg$currPos = cached.nextPos; 5344 return cached.result; 5345 } 5346 s0 = peg$currPos; 5347 s1 = peg$parseexpression(); 5348 if (s1 !== peg$FAILED) { 5349 s2 = peg$parse_(); 5350 if (input.charCodeAt(peg$currPos) === 58) { 5351 s3 = peg$c9; 5352 peg$currPos++; 5353 } 5354 else { 5355 s3 = peg$FAILED; 5356 if (peg$silentFails === 0) { 5357 peg$fail(peg$e10); 5358 } 5359 } 5360 if (s3 !== peg$FAILED) { 5361 s4 = peg$parse_nl(); 5362 s5 = peg$parseexpression(); 5363 if (s5 !== peg$FAILED) { 5364 peg$savedPos = s0; 5365 s0 = peg$f54(s1, s5); 5366 } 5367 else { 5368 peg$currPos = s0; 5369 s0 = peg$FAILED; 5370 } 5371 } 5372 else { 5373 peg$currPos = s0; 5374 s0 = peg$FAILED; 5375 } 5376 } 5377 else { 5378 peg$currPos = s0; 5379 s0 = peg$FAILED; 5380 } 5381 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5382 return s0; 5383 } 5384 function peg$parse_() { 5385 var s0, s1; 5386 var key = peg$currPos * 82 + 70; 5387 var cached = peg$resultsCache[key]; 5388 if (cached) { 5389 peg$currPos = cached.nextPos; 5390 return cached.result; 5391 } 5392 peg$silentFails++; 5393 s0 = []; 5394 s1 = peg$parsewhiteSpaceCharactersOrComment(); 5395 while (s1 !== peg$FAILED) { 5396 s0.push(s1); 5397 s1 = peg$parsewhiteSpaceCharactersOrComment(); 5398 } 5399 peg$silentFails--; 5400 s1 = peg$FAILED; 5401 if (peg$silentFails === 0) { 5402 peg$fail(peg$e81); 5403 } 5404 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5405 return s0; 5406 } 5407 function peg$parse_nl() { 5408 var s0, s1; 5409 var key = peg$currPos * 82 + 71; 5410 var cached = peg$resultsCache[key]; 5411 if (cached) { 5412 peg$currPos = cached.nextPos; 5413 return cached.result; 5414 } 5415 peg$silentFails++; 5416 s0 = []; 5417 s1 = peg$parsewhiteSpaceCharactersOrComment(); 5418 if (s1 === peg$FAILED) { 5419 s1 = peg$parsecommentOrNewLine(); 5420 } 5421 while (s1 !== peg$FAILED) { 5422 s0.push(s1); 5423 s1 = peg$parsewhiteSpaceCharactersOrComment(); 5424 if (s1 === peg$FAILED) { 5425 s1 = peg$parsecommentOrNewLine(); 5426 } 5427 } 5428 peg$silentFails--; 5429 s1 = peg$FAILED; 5430 if (peg$silentFails === 0) { 5431 peg$fail(peg$e81); 5432 } 5433 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5434 return s0; 5435 } 5436 function peg$parse__() { 5437 var s0, s1; 5438 var key = peg$currPos * 82 + 72; 5439 var cached = peg$resultsCache[key]; 5440 if (cached) { 5441 peg$currPos = cached.nextPos; 5442 return cached.result; 5443 } 5444 peg$silentFails++; 5445 s0 = []; 5446 s1 = peg$parsewhiteSpaceCharactersOrComment(); 5447 if (s1 !== peg$FAILED) { 5448 while (s1 !== peg$FAILED) { 5449 s0.push(s1); 5450 s1 = peg$parsewhiteSpaceCharactersOrComment(); 5451 } 5452 } 5453 else { 5454 s0 = peg$FAILED; 5455 } 5456 peg$silentFails--; 5457 if (s0 === peg$FAILED) { 5458 s1 = peg$FAILED; 5459 if (peg$silentFails === 0) { 5460 peg$fail(peg$e81); 5461 } 5462 } 5463 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5464 return s0; 5465 } 5466 function peg$parse__nl() { 5467 var s0, s1; 5468 var key = peg$currPos * 82 + 73; 5469 var cached = peg$resultsCache[key]; 5470 if (cached) { 5471 peg$currPos = cached.nextPos; 5472 return cached.result; 5473 } 5474 peg$silentFails++; 5475 s0 = []; 5476 s1 = peg$parsewhiteSpaceCharactersOrComment(); 5477 if (s1 === peg$FAILED) { 5478 s1 = peg$parsecommentOrNewLine(); 5479 } 5480 if (s1 !== peg$FAILED) { 5481 while (s1 !== peg$FAILED) { 5482 s0.push(s1); 5483 s1 = peg$parsewhiteSpaceCharactersOrComment(); 5484 if (s1 === peg$FAILED) { 5485 s1 = peg$parsecommentOrNewLine(); 5486 } 5487 } 5488 } 5489 else { 5490 s0 = peg$FAILED; 5491 } 5492 peg$silentFails--; 5493 if (s0 === peg$FAILED) { 5494 s1 = peg$FAILED; 5495 if (peg$silentFails === 0) { 5496 peg$fail(peg$e81); 5497 } 5498 } 5499 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5500 return s0; 5501 } 5502 function peg$parsestatementSeparator() { 5503 var s0, s1, s2, s3; 5504 var key = peg$currPos * 82 + 74; 5505 var cached = peg$resultsCache[key]; 5506 if (cached) { 5507 peg$currPos = cached.nextPos; 5508 return cached.result; 5509 } 5510 peg$silentFails++; 5511 s0 = peg$currPos; 5512 s1 = peg$parse_(); 5513 s2 = []; 5514 if (input.charCodeAt(peg$currPos) === 59) { 5515 s3 = peg$c59; 5516 peg$currPos++; 5517 } 5518 else { 5519 s3 = peg$FAILED; 5520 if (peg$silentFails === 0) { 5521 peg$fail(peg$e83); 5522 } 5523 } 5524 if (s3 === peg$FAILED) { 5525 s3 = peg$parsecommentOrNewLine(); 5526 } 5527 if (s3 !== peg$FAILED) { 5528 while (s3 !== peg$FAILED) { 5529 s2.push(s3); 5530 if (input.charCodeAt(peg$currPos) === 59) { 5531 s3 = peg$c59; 5532 peg$currPos++; 5533 } 5534 else { 5535 s3 = peg$FAILED; 5536 if (peg$silentFails === 0) { 5537 peg$fail(peg$e83); 5538 } 5539 } 5540 if (s3 === peg$FAILED) { 5541 s3 = peg$parsecommentOrNewLine(); 5542 } 5543 } 5544 } 5545 else { 5546 s2 = peg$FAILED; 5547 } 5548 if (s2 !== peg$FAILED) { 5549 s3 = peg$parse_nl(); 5550 s1 = [s1, s2, s3]; 5551 s0 = s1; 5552 } 5553 else { 5554 peg$currPos = s0; 5555 s0 = peg$FAILED; 5556 } 5557 peg$silentFails--; 5558 if (s0 === peg$FAILED) { 5559 s1 = peg$FAILED; 5560 if (peg$silentFails === 0) { 5561 peg$fail(peg$e82); 5562 } 5563 } 5564 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5565 return s0; 5566 } 5567 function peg$parsecommaSeparator() { 5568 var s0, s1, s2, s3; 5569 var key = peg$currPos * 82 + 75; 5570 var cached = peg$resultsCache[key]; 5571 if (cached) { 5572 peg$currPos = cached.nextPos; 5573 return cached.result; 5574 } 5575 peg$silentFails++; 5576 s0 = peg$currPos; 5577 s1 = peg$parse_(); 5578 if (input.charCodeAt(peg$currPos) === 44) { 5579 s2 = peg$c60; 5580 peg$currPos++; 5581 } 5582 else { 5583 s2 = peg$FAILED; 5584 if (peg$silentFails === 0) { 5585 peg$fail(peg$e85); 5586 } 5587 } 5588 if (s2 !== peg$FAILED) { 5589 s3 = peg$parse_nl(); 5590 s1 = [s1, s2, s3]; 5591 s0 = s1; 5592 } 5593 else { 5594 peg$currPos = s0; 5595 s0 = peg$FAILED; 5596 } 5597 peg$silentFails--; 5598 if (s0 === peg$FAILED) { 5599 s1 = peg$FAILED; 5600 if (peg$silentFails === 0) { 5601 peg$fail(peg$e84); 5602 } 5603 } 5604 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5605 return s0; 5606 } 5607 function peg$parsecommentOrNewLine() { 5608 var s0, s1, s2; 5609 var key = peg$currPos * 82 + 76; 5610 var cached = peg$resultsCache[key]; 5611 if (cached) { 5612 peg$currPos = cached.nextPos; 5613 return cached.result; 5614 } 5615 s0 = peg$currPos; 5616 s1 = peg$parsefinalComment(); 5617 if (s1 === peg$FAILED) { 5618 s1 = null; 5619 } 5620 s2 = peg$parsenewLine(); 5621 if (s2 !== peg$FAILED) { 5622 s1 = [s1, s2]; 5623 s0 = s1; 5624 } 5625 else { 5626 peg$currPos = s0; 5627 s0 = peg$FAILED; 5628 } 5629 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5630 return s0; 5631 } 5632 function peg$parsenewLine() { 5633 var s0, s1; 5634 var key = peg$currPos * 82 + 77; 5635 var cached = peg$resultsCache[key]; 5636 if (cached) { 5637 peg$currPos = cached.nextPos; 5638 return cached.result; 5639 } 5640 peg$silentFails++; 5641 if (peg$r10.test(input.charAt(peg$currPos))) { 5642 s0 = input.charAt(peg$currPos); 5643 peg$currPos++; 5644 } 5645 else { 5646 s0 = peg$FAILED; 5647 if (peg$silentFails === 0) { 5648 peg$fail(peg$e87); 5649 } 5650 } 5651 peg$silentFails--; 5652 if (s0 === peg$FAILED) { 5653 s1 = peg$FAILED; 5654 if (peg$silentFails === 0) { 5655 peg$fail(peg$e86); 5656 } 5657 } 5658 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5659 return s0; 5660 } 5661 function peg$parsefinalComment() { 5662 var s0, s1, s2, s3, s4, s5; 5663 var key = peg$currPos * 82 + 78; 5664 var cached = peg$resultsCache[key]; 5665 if (cached) { 5666 peg$currPos = cached.nextPos; 5667 return cached.result; 5668 } 5669 peg$silentFails++; 5670 s0 = peg$currPos; 5671 s1 = peg$parse_(); 5672 if (input.substr(peg$currPos, 2) === peg$c61) { 5673 s2 = peg$c61; 5674 peg$currPos += 2; 5675 } 5676 else { 5677 s2 = peg$FAILED; 5678 if (peg$silentFails === 0) { 5679 peg$fail(peg$e89); 5680 } 5681 } 5682 if (s2 !== peg$FAILED) { 5683 s3 = peg$currPos; 5684 s4 = []; 5685 if (peg$r11.test(input.charAt(peg$currPos))) { 5686 s5 = input.charAt(peg$currPos); 5687 peg$currPos++; 5688 } 5689 else { 5690 s5 = peg$FAILED; 5691 if (peg$silentFails === 0) { 5692 peg$fail(peg$e90); 5693 } 5694 } 5695 while (s5 !== peg$FAILED) { 5696 s4.push(s5); 5697 if (peg$r11.test(input.charAt(peg$currPos))) { 5698 s5 = input.charAt(peg$currPos); 5699 peg$currPos++; 5700 } 5701 else { 5702 s5 = peg$FAILED; 5703 if (peg$silentFails === 0) { 5704 peg$fail(peg$e90); 5705 } 5706 } 5707 } 5708 s3 = input.substring(s3, peg$currPos); 5709 peg$savedPos = s0; 5710 s0 = peg$f55(s3); 5711 } 5712 else { 5713 peg$currPos = s0; 5714 s0 = peg$FAILED; 5715 } 5716 peg$silentFails--; 5717 if (s0 === peg$FAILED) { 5718 s1 = peg$FAILED; 5719 if (peg$silentFails === 0) { 5720 peg$fail(peg$e88); 5721 } 5722 } 5723 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5724 return s0; 5725 } 5726 function peg$parsewhiteSpaceCharactersOrComment() { 5727 var s0; 5728 var key = peg$currPos * 82 + 79; 5729 var cached = peg$resultsCache[key]; 5730 if (cached) { 5731 peg$currPos = cached.nextPos; 5732 return cached.result; 5733 } 5734 s0 = peg$parsewhiteSpaceCharacters(); 5735 if (s0 === peg$FAILED) { 5736 s0 = peg$parsedelimitedComment(); 5737 } 5738 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5739 return s0; 5740 } 5741 function peg$parsedelimitedComment() { 5742 var s0, s1, s2, s3, s4, s5, s6; 5743 var key = peg$currPos * 82 + 80; 5744 var cached = peg$resultsCache[key]; 5745 if (cached) { 5746 peg$currPos = cached.nextPos; 5747 return cached.result; 5748 } 5749 peg$silentFails++; 5750 s0 = peg$currPos; 5751 if (input.substr(peg$currPos, 2) === peg$c62) { 5752 s1 = peg$c62; 5753 peg$currPos += 2; 5754 } 5755 else { 5756 s1 = peg$FAILED; 5757 if (peg$silentFails === 0) { 5758 peg$fail(peg$e92); 5759 } 5760 } 5761 if (s1 !== peg$FAILED) { 5762 s2 = peg$currPos; 5763 s3 = []; 5764 if (peg$r12.test(input.charAt(peg$currPos))) { 5765 s4 = input.charAt(peg$currPos); 5766 peg$currPos++; 5767 } 5768 else { 5769 s4 = peg$FAILED; 5770 if (peg$silentFails === 0) { 5771 peg$fail(peg$e93); 5772 } 5773 } 5774 if (s4 === peg$FAILED) { 5775 s4 = peg$currPos; 5776 if (peg$r13.test(input.charAt(peg$currPos))) { 5777 s5 = input.charAt(peg$currPos); 5778 peg$currPos++; 5779 } 5780 else { 5781 s5 = peg$FAILED; 5782 if (peg$silentFails === 0) { 5783 peg$fail(peg$e94); 5784 } 5785 } 5786 if (s5 !== peg$FAILED) { 5787 if (peg$r14.test(input.charAt(peg$currPos))) { 5788 s6 = input.charAt(peg$currPos); 5789 peg$currPos++; 5790 } 5791 else { 5792 s6 = peg$FAILED; 5793 if (peg$silentFails === 0) { 5794 peg$fail(peg$e95); 5795 } 5796 } 5797 if (s6 !== peg$FAILED) { 5798 s5 = [s5, s6]; 5799 s4 = s5; 5800 } 5801 else { 5802 peg$currPos = s4; 5803 s4 = peg$FAILED; 5804 } 5805 } 5806 else { 5807 peg$currPos = s4; 5808 s4 = peg$FAILED; 5809 } 5810 } 5811 while (s4 !== peg$FAILED) { 5812 s3.push(s4); 5813 if (peg$r12.test(input.charAt(peg$currPos))) { 5814 s4 = input.charAt(peg$currPos); 5815 peg$currPos++; 5816 } 5817 else { 5818 s4 = peg$FAILED; 5819 if (peg$silentFails === 0) { 5820 peg$fail(peg$e93); 5821 } 5822 } 5823 if (s4 === peg$FAILED) { 5824 s4 = peg$currPos; 5825 if (peg$r13.test(input.charAt(peg$currPos))) { 5826 s5 = input.charAt(peg$currPos); 5827 peg$currPos++; 5828 } 5829 else { 5830 s5 = peg$FAILED; 5831 if (peg$silentFails === 0) { 5832 peg$fail(peg$e94); 5833 } 5834 } 5835 if (s5 !== peg$FAILED) { 5836 if (peg$r14.test(input.charAt(peg$currPos))) { 5837 s6 = input.charAt(peg$currPos); 5838 peg$currPos++; 5839 } 5840 else { 5841 s6 = peg$FAILED; 5842 if (peg$silentFails === 0) { 5843 peg$fail(peg$e95); 5844 } 5845 } 5846 if (s6 !== peg$FAILED) { 5847 s5 = [s5, s6]; 5848 s4 = s5; 5849 } 5850 else { 5851 peg$currPos = s4; 5852 s4 = peg$FAILED; 5853 } 5854 } 5855 else { 5856 peg$currPos = s4; 5857 s4 = peg$FAILED; 5858 } 5859 } 5860 } 5861 s2 = input.substring(s2, peg$currPos); 5862 if (input.substr(peg$currPos, 2) === peg$c63) { 5863 s3 = peg$c63; 5864 peg$currPos += 2; 5865 } 5866 else { 5867 s3 = peg$FAILED; 5868 if (peg$silentFails === 0) { 5869 peg$fail(peg$e96); 5870 } 5871 } 5872 if (s3 !== peg$FAILED) { 5873 peg$savedPos = s0; 5874 s0 = peg$f56(s2); 5875 } 5876 else { 5877 peg$currPos = s0; 5878 s0 = peg$FAILED; 5879 } 5880 } 5881 else { 5882 peg$currPos = s0; 5883 s0 = peg$FAILED; 5884 } 5885 peg$silentFails--; 5886 if (s0 === peg$FAILED) { 5887 s1 = peg$FAILED; 5888 if (peg$silentFails === 0) { 5889 peg$fail(peg$e91); 5890 } 5891 } 5892 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5893 return s0; 5894 } 5895 function peg$parsewhiteSpaceCharacters() { 5896 var s0; 5897 var key = peg$currPos * 82 + 81; 5898 var cached = peg$resultsCache[key]; 5899 if (cached) { 5900 peg$currPos = cached.nextPos; 5901 return cached.result; 5902 } 5903 if (peg$r15.test(input.charAt(peg$currPos))) { 5904 s0 = input.charAt(peg$currPos); 5905 peg$currPos++; 5906 } 5907 else { 5908 s0 = peg$FAILED; 5909 if (peg$silentFails === 0) { 5910 peg$fail(peg$e97); 5911 } 5912 } 5913 peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 }; 5914 return s0; 5915 } 5916 peg$result = peg$startRuleFunction(); 5917 if (peg$result !== peg$FAILED && peg$currPos === input.length) { 5918 return peg$result; 5919 } 5920 else { 5921 if (peg$result !== peg$FAILED && peg$currPos < input.length) { 5922 peg$fail(peg$endExpectation()); 5923 } 5924 throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length 5925 ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) 5926 : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)); 5927 } 5928 } 5929 export { peg$SyntaxError as SyntaxError, peg$parse as parse }; 5930 //# sourceMappingURL=peggyParser.js.map