diff --git a/node/.gitignore b/node/.gitignore new file mode 100644 index 0000000..93cab34 --- /dev/null +++ b/node/.gitignore @@ -0,0 +1,2 @@ +node_modules +yarn-error.log diff --git a/node/.node-version b/node/.node-version new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/node/.node-version @@ -0,0 +1 @@ +9 diff --git a/node/.npmrc b/node/.npmrc new file mode 100644 index 0000000..38f11c6 --- /dev/null +++ b/node/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmjs.org diff --git a/node/CONTRIBUTING.md b/node/CONTRIBUTING.md new file mode 100644 index 0000000..4a32e50 --- /dev/null +++ b/node/CONTRIBUTING.md @@ -0,0 +1,39 @@ +# Contributing to Enterprise™ + +### Your rights + +By sending any contribution, be it in form of a PR, issue, comment or any other +conceivable way, you forfeit all your rights to your addition. Any attempt to +copy, sell or profit from it in any way is in violation of Enterprise™'s terms +of contributions. + +### Code of conduct + +Enterprise™ promotes diversity and will accept contributions from everyone, as +long as the particular contributor fits our definition of diversity, which is +under our discretion. + +### How to best help + +1. Features over bugs + + Found a bug? It's fine to fix it, unless there's a disruptive feature to be + implemented. We prioritize empowering Enterprise™ developers to disrupt, even + if there are some rough edges. Remember + + > If you’re not embarrassed by the first version of your product, + > you’ve launched too late. + +2. Disrupt. Disrupt. Disrupt. + + Incremental improvements? Forget it. Send bold ideas. Think outside the box. + Be different. Just do it. + +3. Focus on user base + + Porting Enterprise™ to Haskell? Don't sweat. JVM? Cloud? Crypto dockerized + block chains? Bring it. + +4. Commit messages + + Don't sweat, no one reads 'em. Add some ™™™™s for the stylish effect. diff --git a/node/CompileError.js b/node/CompileError.js new file mode 100644 index 0000000..cb29556 --- /dev/null +++ b/node/CompileError.js @@ -0,0 +1,15 @@ +/*© + This code is property of Enterprise™. +©*/ + +class CompileError extends Error { + constructor({ message, type, value, location }) { + super(message) + + this.type = type + this.value = value + this.location = location + } +} + +module.exports = CompileError diff --git "a/node/E\342\204\242" "b/node/E\342\204\242" new file mode 100755 index 0000000..1ebec4e --- /dev/null +++ "b/node/E\342\204\242" @@ -0,0 +1,48 @@ +#!/usr/bin/env node + +const fs = require('fs') +const ast = require('./ast') +const compile = require('./compile') + +require('yargs') + .option('turbo', { + default: false, + type: 'boolean', + }) + .option('output', { + alias: 'o', + default: false, + type: 'boolean', + }) + .command({ + command: 'compile [input]', + description: 'Compile', + handler: (argv) => { + const code = compile(argv.input, argv.turbo) + + if (argv.file) { + fs.writeFileSync(argv.input.replace('E™', 'js'), code, 'utf8') + } else { + console.log(code) + } + }, + }) + .command({ + command: 'ast [input]', + description: 'Compile', + handler: (argv) => { + console.log(JSON.stringify(ast(argv.input), null, 2)) + }, + }) + .command({ + command: 'eval [input]', + description: 'Eval', + handler: (argv) => { + eval(compile(argv.input, argv.turbo)) + }, + }) + .command({ + command: 'examples', + description: 'Downloads examples', + handler: (argv) => {}, + }).argv diff --git a/node/README.md b/node/README.md new file mode 100644 index 0000000..d03c38f --- /dev/null +++ b/node/README.md @@ -0,0 +1,161 @@ +# Enterprise™ Web3.0™ + +GET IT NOW! + +```sh +curl https://raw.githubusercontent.com/joaomilho/Enterprise-Web3.0/master/examples/fdcFizzBuzzDelegator.E%E2%84%A2 > fdcFizzBuzzDelegator.E™ +npx ETM eval fdcFizzBuzzDelegator.E™ +``` + +TURBO MODE! + +```sh +npx ETM eval fdcFizzBuzzDelegator.E™ --turbo +``` + +### What + + + +Enterprise™ Web3.0™ is a parser and compiler for the +[Enterprise™](https://github.com/joaomilho/Enterprise) language. + +Enterprise™ Web3.0™ is designed to create internet programs that disrupt markets. + +Enterprise™ Web3.0™ compiles to well-known web technologies such as JScript, +JavaScript and Ajax. It also allows you to write Web2.0 applications, although +they are not so disruptive. + +### What's in it? + +A full implementation of the [Enterprise™](https://github.com/joaomilho/Enterprise) +specs, plus some add ons: + +#### More comments! + +Enterprise™ Web3.0™ adds a brand new type of comments to Enterprise™: + +##### because IE comment + +``` +/ie + because IE +ie/ +``` + +#### More Enterpresey™ terms! + +Since the original spec is not adapted to the Web3.0™, Enterprise™ Web3.0™ adds +some new terms for you: + +|||||||| +|-|-|-|-|-|-|-| +|Server|Side|Render|Universal|Native|Mobile|Angular| +|React|Component|Cache|Domain|Frontend|Full|Fullstack| +|Git|Hub|Information|Script|Query|Minification|First| +|Responsive|Ruby|Rails|Sitemap|Wireframe|Explorer|Netscape| +|Firefox|Chrome|Safari|Android|Apple|Opera|Scroll| +|Scrolling|Infinite|Landing|Hero|Mock|Mockup|Parallax| +|Meta|Tag|Template|Wireframe|Vector|Metro|Above| +|Fold|Grid|Canvas|Boilerplate|Modernizr|Blocking|Quirks| +|Socket|Sockets|Storage|Worker|Workers|Things|Quantum| +|Serverless| + +## Examples + +#### fdcFizzBuzzDelegator + +Nail your next interview. + +```js +/© + This code is property of Enterprise™. +©/ + +import disruptive library com.disruptive.IO.write.delegator.dlIOWriteDelegator;;; + +/NDA + This document is regulated by NDA 758-1. +NDA/ + +final disruptive class fdcFizzBuzzDelegator { + final immutable void main () { + var Money x = 0;;; + var String out = "";;; + + while (x < 1k) { + if(x % 5 == 0 && x % 3 == 0) { + write("Fizz Buzz");;; + } else { + if(x % 3 == 0) { + write("Fizz");;; + } else { + if(x % 5 == 0) { + write("Buzz");;; + } else { + write(x);;; + } + } + } + + mutate x++;;; + } + } +} +``` + +#### fdcUnicornEvaluator + +Learn how to IO while checking your idea's Unicorn Rate. + +```js +/© + This code is property of Enterprise™. +©/ + +import disruptive library com.disruptive.IO.read.delegator.dlIOReadDelegator;;; +import disruptive library com.disruptive.IO.write.delegator.dlIOWriteDelegator;;; +import disruptive library com.disruptive.String.contains.delegator.dlStringContainsDelegator;;; + +/NDA + This document is regulated by NDA 694-2. +NDA/ + +final disruptive class fdcUnicornEvaluator { + final immutable void main () { + var String answer = read("Tell us your idea: ");;; + + if(contains(answer, "Blockchain")) { + write("Disruptive. 🦄🦄🦄🦄🦄");;; + } else { + if(contains(answer, "Tinder")) { + write("Pain killer. 🦄🦄🦄🦄");;; + } else { + if(contains(answer, "Cloud")) { + write("Vitamin. 🦄🦄🦄");;; + } else { + if(contains(answer, "Facebook")) { + write("Will sleep on that. 🦄🦄");;; + } else { + if(contains(answer, "Chat")) { + write("Meh. 🦄");;; + } else { + write("Cockroach.");;; + } + } + } + } + } + } +} +``` + +## Usage + +``` +E™ ast // shows AST for Enterprise™ source file +E™ compile // compiles Enterprise™ source file to JS +E™ eval // evals Enterprise™ source file in NodeJS + +E™ eval --turbo // the turbo option optimizes Enterprise™ code based on exclusive copyrighted technology +``` diff --git a/node/ast.js b/node/ast.js new file mode 100644 index 0000000..997abff --- /dev/null +++ b/node/ast.js @@ -0,0 +1,10 @@ +/*© + This code is property of Enterprise™. +©*/ + +const fs = require('fs') +const enterprise = require('./enterprise') + +module.exports = (file) => { + return enterprise.parse(fs.readFileSync(file, 'utf8')) +} diff --git a/node/compile.js b/node/compile.js new file mode 100644 index 0000000..60f5270 --- /dev/null +++ b/node/compile.js @@ -0,0 +1,122 @@ +/*© + This code is property of Enterprise™. +©*/ + +const { highlight } = require('cli-highlight') + +const parseAST = require('./ast') +const fs = require('fs') +const { gray, red, green, yellow, bold } = require('colors/safe') + +const compile = (ast) => { + return ast.map(compileNode).filter(Boolean).join('\n') +} + +const delay = (fnCall) => { + return global.turbo + ? fnCall + : `await new Promise(r => { + setTimeout(async () => { r(await ${fnCall}) }, 1000) + })` +} + +const compileNode = (node) => { + switch (node.type) { + case 'comment': + return null + case 'import': + return require(`./disruptiveLibs/${node.lib}`).code + case 'finalDisruptiveClass': + return ` + class ${node.name} { ${compile(node.body)} } + new ${node.name}().main()` + case 'mainMethod': + return `async main () { + ${compile(node.body)} + }` + case 'var': + return `var ${node.name} = ${compileNode(node.value)}` + case 'while': + return `while (${compileNode(node.test)}) { + ${compile(node.body)} + }` + case 'if': + return `if (${compileNode(node.test)}) { + ${compile(node.then)} + } else { + ${compile(node.else)} + }` + case 'binary': + return `${compileNode(node.left)} ${node.operator} ${compileNode( + node.right + )}` + case 'call': + return delay(`${node.callee}(${node.args.map(compileNode).join(', ')})`) + case 'mutate': + return `${node.var}${node.mutation}` + case 'varName': + case 'numVarName': + return node.value + default: + return JSON.stringify(node) + } +} + +const CompileError = require('./CompileError') +const dls = require('./dls') + +module.exports = (file, turbo) => { + global.turbo = turbo + + let ast + try { + ast = parseAST(file) + return compile(ast) + } catch (e) { + if (e instanceof CompileError) { + displayError(e, file) + } else { + throw e + } + } +} + +const pad = (len) => (idx) => { + // const padCount = len - (idx + 1).length.toString().length + 1; + + return gray(`${idx + 1}`.padStart(len + 1) + ' |') +} + +const code = (file, location) => { + const sourceLines = fs.readFileSync(file, 'utf8').split('\n') + const len = sourceLines.length.toString().length + const padLen = pad(len) + const r = sourceLines.map((line, i) => `${padLen(i)} ${line}`) + + r.splice( + location.start.line, + 0, + `${''.padEnd(len + 4)}${gray( + ''.padEnd(location.start.column - 1, '-') + )}${red(''.padEnd(location.end.column - location.start.column, '^'))}` + ) + return r.join('\n') +} + +const displayError = (e, file) => { + switch (e.type) { + case 'invalid_lib': + console.log('\n') + console.log(red(`Invalid library ${bold(e.value)}`), '\n') + console.log(`Pick one of: \n - `, Object.keys(dls).join('\n - ')) + console.log(gray('\n~~~~~~~~~~~~~~~~~~~~~')) + console.log(code(file, e.location)) + console.log(gray('~~~~~~~~~~~~~~~~~~~~~\n')) + case 'invalid_call': + console.log('\n') + console.log(red(`Invalid call ${bold(e.value)}`), '\n') + console.log(gray('\n~~~~~~~~~~~~~~~~~~~~~')) + console.log(code(file, e.location)) + console.log(gray('~~~~~~~~~~~~~~~~~~~~~\n')) + } +} diff --git a/node/disruptiveLibs/dlIOReadDelegator.js b/node/disruptiveLibs/dlIOReadDelegator.js new file mode 100644 index 0000000..0830646 --- /dev/null +++ b/node/disruptiveLibs/dlIOReadDelegator.js @@ -0,0 +1,15 @@ +module.exports = { + fn: "read", + code: ` + const ___rl = require('readline').createInterface({ + input: process.stdin, + output: process.stdout + }); + + const read = (question) => new Promise(resolve => ___rl.question(question, answer => { + resolve(answer) + ___rl.close() + })) + `, + type: "String" +}; diff --git a/node/disruptiveLibs/dlIOWriteDelegator.js b/node/disruptiveLibs/dlIOWriteDelegator.js new file mode 100644 index 0000000..8c20990 --- /dev/null +++ b/node/disruptiveLibs/dlIOWriteDelegator.js @@ -0,0 +1,5 @@ +module.exports = { + code: `function write(x) { console.log(x) }`, + fn: "write", + type: "Null" +}; diff --git a/node/disruptiveLibs/dlStringContainsDelegator.js b/node/disruptiveLibs/dlStringContainsDelegator.js new file mode 100644 index 0000000..29e819a --- /dev/null +++ b/node/disruptiveLibs/dlStringContainsDelegator.js @@ -0,0 +1,7 @@ +module.exports = { + fn: "contains", + code: ` + const contains = (str, part) => str.includes(part) + `, + type: "String" +}; diff --git a/node/dls.js b/node/dls.js new file mode 100644 index 0000000..64c2476 --- /dev/null +++ b/node/dls.js @@ -0,0 +1,12 @@ +/*© + This code is property of Enterprise™. +©*/ + +const dls = { + 'IO.write.delegator.dlIOWriteDelegator': 'dlIOWriteDelegator', + 'IO.read.delegator.dlIOReadDelegator': 'dlIOReadDelegator', + 'String.contains.delegator.dlStringContainsDelegator': + 'dlStringContainsDelegator', +} + +module.exports = dls diff --git a/node/enterprise.js b/node/enterprise.js new file mode 100644 index 0000000..0998a71 --- /dev/null +++ b/node/enterprise.js @@ -0,0 +1,8548 @@ +/*© + This code is property of Enterprise™. +©*/ + +/* + * Generated by PEG.js 0.10.0. + * + * http://pegjs.org/ + */ + +"use strict"; + +function peg$subclass(child, parent) { + function ctor() { this.constructor = child; } + ctor.prototype = parent.prototype; + child.prototype = new ctor(); +} + +function peg$SyntaxError(message, expected, found, location) { + this.message = message; + this.expected = expected; + this.found = found; + this.location = location; + this.name = "SyntaxError"; + + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, peg$SyntaxError); + } +} + +peg$subclass(peg$SyntaxError, Error); + +peg$SyntaxError.buildMessage = function(expected, found) { + var DESCRIBE_EXPECTATION_FNS = { + literal: function(expectation) { + return "\"" + literalEscape(expectation.text) + "\""; + }, + + "class": function(expectation) { + var escapedParts = "", + i; + + for (i = 0; i < expectation.parts.length; i++) { + escapedParts += expectation.parts[i] instanceof Array + ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1]) + : classEscape(expectation.parts[i]); + } + + return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]"; + }, + + any: function(expectation) { + return "any character"; + }, + + end: function(expectation) { + return "end of input"; + }, + + other: function(expectation) { + return expectation.description; + } + }; + + function hex(ch) { + return ch.charCodeAt(0).toString(16).toUpperCase(); + } + + function literalEscape(s) { + return s + .replace(/\\/g, '\\\\') + .replace(/"/g, '\\"') + .replace(/\0/g, '\\0') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); + } + + function classEscape(s) { + return s + .replace(/\\/g, '\\\\') + .replace(/\]/g, '\\]') + .replace(/\^/g, '\\^') + .replace(/-/g, '\\-') + .replace(/\0/g, '\\0') + .replace(/\t/g, '\\t') + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r') + .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); }) + .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); }); + } + + function describeExpectation(expectation) { + return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation); + } + + function describeExpected(expected) { + var descriptions = new Array(expected.length), + i, j; + + for (i = 0; i < expected.length; i++) { + descriptions[i] = describeExpectation(expected[i]); + } + + descriptions.sort(); + + if (descriptions.length > 0) { + for (i = 1, j = 1; i < descriptions.length; i++) { + if (descriptions[i - 1] !== descriptions[i]) { + descriptions[j] = descriptions[i]; + j++; + } + } + descriptions.length = j; + } + + switch (descriptions.length) { + case 1: + return descriptions[0]; + + case 2: + return descriptions[0] + " or " + descriptions[1]; + + default: + return descriptions.slice(0, -1).join(", ") + + ", or " + + descriptions[descriptions.length - 1]; + } + } + + function describeFound(found) { + return found ? "\"" + literalEscape(found) + "\"" : "end of input"; + } + + return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found."; +}; + +function peg$parse(input, options) { + options = options !== void 0 ? options : {}; + + var peg$FAILED = {}, + + peg$startRuleFunctions = { Start: peg$parseStart }, + peg$startRuleFunction = peg$parseStart, + + peg$c0 = function(copyright, imports, disruptiveClass) { return [ copyright, ...imports, disruptiveClass ] }, + peg$c1 = peg$otherExpectation("main class"), + peg$c2 = "final disruptive class", + peg$c3 = peg$literalExpectation("final disruptive class", false), + peg$c4 = "fdc", + peg$c5 = peg$literalExpectation("fdc", false), + peg$c6 = function(name, body) { return {type: "finalDisruptiveClass", name, body } }, + peg$c7 = peg$otherExpectation("FDC body"), + peg$c8 = "{", + peg$c9 = peg$literalExpectation("{", false), + peg$c10 = "}", + peg$c11 = peg$literalExpectation("}", false), + peg$c12 = function(before, main, after) { return [ ...before, main, ...after ] }, + peg$c13 = function(words) { return words.join('') }, + peg$c14 = peg$otherExpectation("main method"), + peg$c15 = "final immutable void main () {", + peg$c16 = peg$literalExpectation("final immutable void main () {", false), + peg$c17 = function(body) { return { type: "mainMethod", body } }, + peg$c18 = function(head, tail) { return list(head, tail, 1) }, + peg$c19 = ";;;", + peg$c20 = peg$literalExpectation(";;;", false), + peg$c21 = "Accelerate", + peg$c22 = peg$literalExpectation("Accelerate", false), + peg$c23 = "Acceleration", + peg$c24 = peg$literalExpectation("Acceleration", false), + peg$c25 = "Account", + peg$c26 = peg$literalExpectation("Account", false), + peg$c27 = "Active", + peg$c28 = peg$literalExpectation("Active", false), + peg$c29 = "Activity", + peg$c30 = peg$literalExpectation("Activity", false), + peg$c31 = "Agile", + peg$c32 = peg$literalExpectation("Agile", false), + peg$c33 = "Agility", + peg$c34 = peg$literalExpectation("Agility", false), + peg$c35 = "Ajax", + peg$c36 = peg$literalExpectation("Ajax", false), + peg$c37 = "Algo", + peg$c38 = peg$literalExpectation("Algo", false), + peg$c39 = "Analytics", + peg$c40 = peg$literalExpectation("Analytics", false), + peg$c41 = "Analyze", + peg$c42 = peg$literalExpectation("Analyze", false), + peg$c43 = "Analyzer", + peg$c44 = peg$literalExpectation("Analyzer", false), + peg$c45 = "Ballpark", + peg$c46 = peg$literalExpectation("Ballpark", false), + peg$c47 = "Big", + peg$c48 = peg$literalExpectation("Big", false), + peg$c49 = "Bit", + peg$c50 = peg$literalExpectation("Bit", false), + peg$c51 = "Bizmeth", + peg$c52 = peg$literalExpectation("Bizmeth", false), + peg$c53 = "Block", + peg$c54 = peg$literalExpectation("Block", false), + peg$c55 = "Boost", + peg$c56 = peg$literalExpectation("Boost", false), + peg$c57 = "Bootstrap", + peg$c58 = peg$literalExpectation("Bootstrap", false), + peg$c59 = "Bootstraped", + peg$c60 = peg$literalExpectation("Bootstraped", false), + peg$c61 = "Brand", + peg$c62 = peg$literalExpectation("Brand", false), + peg$c63 = "Business", + peg$c64 = peg$literalExpectation("Business", false), + peg$c65 = "Buzz", + peg$c66 = peg$literalExpectation("Buzz", false), + peg$c67 = "Car", + peg$c68 = peg$literalExpectation("Car", false), + peg$c69 = "Chain", + peg$c70 = peg$literalExpectation("Chain", false), + peg$c71 = "Chart", + peg$c72 = peg$literalExpectation("Chart", false), + peg$c73 = "Clickthrough", + peg$c74 = peg$literalExpectation("Clickthrough", false), + peg$c75 = "Cloud", + peg$c76 = peg$literalExpectation("Cloud", false), + peg$c77 = "Coin", + peg$c78 = peg$literalExpectation("Coin", false), + peg$c79 = "Consumer", + peg$c80 = peg$literalExpectation("Consumer", false), + peg$c81 = "Content", + peg$c82 = peg$literalExpectation("Content", false), + peg$c83 = "Converge", + peg$c84 = peg$literalExpectation("Converge", false), + peg$c85 = "Convergence", + peg$c86 = peg$literalExpectation("Convergence", false), + peg$c87 = "Coordinate", + peg$c88 = peg$literalExpectation("Coordinate", false), + peg$c89 = "Coordinator", + peg$c90 = peg$literalExpectation("Coordinator", false), + peg$c91 = "Complex", + peg$c92 = peg$literalExpectation("Complex", false), + peg$c93 = "Convert", + peg$c94 = peg$literalExpectation("Convert", false), + peg$c95 = "Convertion", + peg$c96 = peg$literalExpectation("Convertion", false), + peg$c97 = "Cost", + peg$c98 = peg$literalExpectation("Cost", false), + peg$c99 = "Costs", + peg$c100 = peg$literalExpectation("Costs", false), + peg$c101 = "Critical", + peg$c102 = peg$literalExpectation("Critical", false), + peg$c103 = "Crypto", + peg$c104 = peg$literalExpectation("Crypto", false), + peg$c105 = "Currency", + peg$c106 = peg$literalExpectation("Currency", false), + peg$c107 = "Customer", + peg$c108 = peg$literalExpectation("Customer", false), + peg$c109 = "Cyber", + peg$c110 = peg$literalExpectation("Cyber", false), + peg$c111 = "Data", + peg$c112 = peg$literalExpectation("Data", false), + peg$c113 = "Deep", + peg$c114 = peg$literalExpectation("Deep", false), + peg$c115 = "Delegate", + peg$c116 = peg$literalExpectation("Delegate", false), + peg$c117 = "Delegator", + peg$c118 = peg$literalExpectation("Delegator", false), + peg$c119 = "Design", + peg$c120 = peg$literalExpectation("Design", false), + peg$c121 = "Dev", + peg$c122 = peg$literalExpectation("Dev", false), + peg$c123 = "Develop", + peg$c124 = peg$literalExpectation("Develop", false), + peg$c125 = "Development", + peg$c126 = peg$literalExpectation("Development", false), + peg$c127 = "Digital", + peg$c128 = peg$literalExpectation("Digital", false), + peg$c129 = "Disrupt", + peg$c130 = peg$literalExpectation("Disrupt", false), + peg$c131 = "Disruptor", + peg$c132 = peg$literalExpectation("Disruptor", false), + peg$c133 = "Disruptive", + peg$c134 = peg$literalExpectation("Disruptive", false), + peg$c135 = "Diverse", + peg$c136 = peg$literalExpectation("Diverse", false), + peg$c137 = "Diversify", + peg$c138 = peg$literalExpectation("Diversify", false), + peg$c139 = "Diversifier", + peg$c140 = peg$literalExpectation("Diversifier", false), + peg$c141 = "Diversity", + peg$c142 = peg$literalExpectation("Diversity", false), + peg$c143 = "Downsize", + peg$c144 = peg$literalExpectation("Downsize", false), + peg$c145 = "Downsized", + peg$c146 = peg$literalExpectation("Downsized", false), + peg$c147 = "Drive", + peg$c148 = peg$literalExpectation("Drive", false), + peg$c149 = "Driven", + peg$c150 = peg$literalExpectation("Driven", false), + peg$c151 = "Driver", + peg$c152 = peg$literalExpectation("Driver", false), + peg$c153 = "Economy", + peg$c154 = peg$literalExpectation("Economy", false), + peg$c155 = "Economic", + peg$c156 = peg$literalExpectation("Economic", false), + peg$c157 = "Employ", + peg$c158 = peg$literalExpectation("Employ", false), + peg$c159 = "Employee", + peg$c160 = peg$literalExpectation("Employee", false), + peg$c161 = "Employer", + peg$c162 = peg$literalExpectation("Employer", false), + peg$c163 = "Empowered", + peg$c164 = peg$literalExpectation("Empowered", false), + peg$c165 = "Engine", + peg$c166 = peg$literalExpectation("Engine", false), + peg$c167 = "Enterprise", + peg$c168 = peg$literalExpectation("Enterprise", false), + peg$c169 = "Entrepreneur", + peg$c170 = peg$literalExpectation("Entrepreneur", false), + peg$c171 = "Entropy", + peg$c172 = peg$literalExpectation("Entropy", false), + peg$c173 = "Equity", + peg$c174 = peg$literalExpectation("Equity", false), + peg$c175 = "Evolution", + peg$c176 = peg$literalExpectation("Evolution", false), + peg$c177 = "Evolve", + peg$c178 = peg$literalExpectation("Evolve", false), + peg$c179 = "Evolving", + peg$c180 = peg$literalExpectation("Evolving", false), + peg$c181 = "Eyeball", + peg$c182 = peg$literalExpectation("Eyeball", false), + peg$c183 = "Eyeballs", + peg$c184 = peg$literalExpectation("Eyeballs", false), + peg$c185 = "Evaluation", + peg$c186 = peg$literalExpectation("Evaluation", false), + peg$c187 = "Evaluator", + peg$c188 = peg$literalExpectation("Evaluator", false), + peg$c189 = "Facade", + peg$c190 = peg$literalExpectation("Facade", false), + peg$c191 = "Factory", + peg$c192 = peg$literalExpectation("Factory", false), + peg$c193 = "Fast", + peg$c194 = peg$literalExpectation("Fast", false), + peg$c195 = "Fee", + peg$c196 = peg$literalExpectation("Fee", false), + peg$c197 = "Fizz", + peg$c198 = peg$literalExpectation("Fizz", false), + peg$c199 = "Flat", + peg$c200 = peg$literalExpectation("Flat", false), + peg$c201 = "Founder", + peg$c202 = peg$literalExpectation("Founder", false), + peg$c203 = "Founders", + peg$c204 = peg$literalExpectation("Founders", false), + peg$c205 = "Framework", + peg$c206 = peg$literalExpectation("Framework", false), + peg$c207 = "Free", + peg$c208 = peg$literalExpectation("Free", false), + peg$c209 = "Future", + peg$c210 = peg$literalExpectation("Future", false), + peg$c211 = "Fuzzy", + peg$c212 = peg$literalExpectation("Fuzzy", false), + peg$c213 = "Generate", + peg$c214 = peg$literalExpectation("Generate", false), + peg$c215 = "Generation", + peg$c216 = peg$literalExpectation("Generation", false), + peg$c217 = "Generator", + peg$c218 = peg$literalExpectation("Generator", false), + peg$c219 = "Global", + peg$c220 = peg$literalExpectation("Global", false), + peg$c221 = "Gluten", + peg$c222 = peg$literalExpectation("Gluten", false), + peg$c223 = "Graph", + peg$c224 = peg$literalExpectation("Graph", false), + peg$c225 = "Graphic", + peg$c226 = peg$literalExpectation("Graphic", false), + peg$c227 = "Group", + peg$c228 = peg$literalExpectation("Group", false), + peg$c229 = "Growth", + peg$c230 = peg$literalExpectation("Growth", false), + peg$c231 = "Guideline", + peg$c232 = peg$literalExpectation("Guideline", false), + peg$c233 = "Guidelines", + peg$c234 = peg$literalExpectation("Guidelines", false), + peg$c235 = "Hack", + peg$c236 = peg$literalExpectation("Hack", false), + peg$c237 = "Hacking", + peg$c238 = peg$literalExpectation("Hacking", false), + peg$c239 = "Hardware", + peg$c240 = peg$literalExpectation("Hardware", false), + peg$c241 = "Holistic", + peg$c242 = peg$literalExpectation("Holistic", false), + peg$c243 = "Human", + peg$c244 = peg$literalExpectation("Human", false), + peg$c245 = "Hyperlocal", + peg$c246 = peg$literalExpectation("Hyperlocal", false), + peg$c247 = "Immerse", + peg$c248 = peg$literalExpectation("Immerse", false), + peg$c249 = "Immersion", + peg$c250 = peg$literalExpectation("Immersion", false), + peg$c251 = "Immersive", + peg$c252 = peg$literalExpectation("Immersive", false), + peg$c253 = "Innovate", + peg$c254 = peg$literalExpectation("Innovate", false), + peg$c255 = "Innovative", + peg$c256 = peg$literalExpectation("Innovative", false), + peg$c257 = "Innovativity", + peg$c258 = peg$literalExpectation("Innovativity", false), + peg$c259 = "Innovator", + peg$c260 = peg$literalExpectation("Innovator", false), + peg$c261 = "Internet", + peg$c262 = peg$literalExpectation("Internet", false), + peg$c263 = "Intranet", + peg$c264 = peg$literalExpectation("Intranet", false), + peg$c265 = "Invest", + peg$c266 = peg$literalExpectation("Invest", false), + peg$c267 = "Investment", + peg$c268 = peg$literalExpectation("Investment", false), + peg$c269 = "Item", + peg$c270 = peg$literalExpectation("Item", false), + peg$c271 = "Iterator", + peg$c272 = peg$literalExpectation("Iterator", false), + peg$c273 = "Java", + peg$c274 = peg$literalExpectation("Java", false), + peg$c275 = "Lactose", + peg$c276 = peg$literalExpectation("Lactose", false), + peg$c277 = "Learn", + peg$c278 = peg$literalExpectation("Learn", false), + peg$c279 = "Learning", + peg$c280 = peg$literalExpectation("Learning", false), + peg$c281 = "Leverage", + peg$c282 = peg$literalExpectation("Leverage", false), + peg$c283 = "Line", + peg$c284 = peg$literalExpectation("Line", false), + peg$c285 = "List", + peg$c286 = peg$literalExpectation("List", false), + peg$c287 = "Manage", + peg$c288 = peg$literalExpectation("Manage", false), + peg$c289 = "Management", + peg$c290 = peg$literalExpectation("Management", false), + peg$c291 = "Manager", + peg$c292 = peg$literalExpectation("Manager", false), + peg$c293 = "Market", + peg$c294 = peg$literalExpectation("Market", false), + peg$c295 = "Marketing", + peg$c296 = peg$literalExpectation("Marketing", false), + peg$c297 = "Media", + peg$c298 = peg$literalExpectation("Media", false), + peg$c299 = "Mega", + peg$c300 = peg$literalExpectation("Mega", false), + peg$c301 = "Merchant", + peg$c302 = peg$literalExpectation("Merchant", false), + peg$c303 = "Message", + peg$c304 = peg$literalExpectation("Message", false), + peg$c305 = "Micro", + peg$c306 = peg$literalExpectation("Micro", false), + peg$c307 = "Millenial", + peg$c308 = peg$literalExpectation("Millenial", false), + peg$c309 = "Mindshare", + peg$c310 = peg$literalExpectation("Mindshare", false), + peg$c311 = "Mine", + peg$c312 = peg$literalExpectation("Mine", false), + peg$c313 = "Mining", + peg$c314 = peg$literalExpectation("Mining", false), + peg$c315 = "Mission", + peg$c316 = peg$literalExpectation("Mission", false), + peg$c317 = "Module", + peg$c318 = peg$literalExpectation("Module", false), + peg$c319 = "Momentum", + peg$c320 = peg$literalExpectation("Momentum", false), + peg$c321 = "Money", + peg$c322 = peg$literalExpectation("Money", false), + peg$c323 = "Nano", + peg$c324 = peg$literalExpectation("Nano", false), + peg$c325 = "Network", + peg$c326 = peg$literalExpectation("Network", false), + peg$c327 = "New", + peg$c328 = peg$literalExpectation("New", false), + peg$c329 = "Next", + peg$c330 = peg$literalExpectation("Next", false), + peg$c331 = "Number", + peg$c332 = peg$literalExpectation("Number", false), + peg$c333 = "Nut", + peg$c334 = peg$literalExpectation("Nut", false), + peg$c335 = "Object", + peg$c336 = peg$literalExpectation("Object", false), + peg$c337 = "Operation", + peg$c338 = peg$literalExpectation("Operation", false), + peg$c339 = "Operator", + peg$c340 = peg$literalExpectation("Operator", false), + peg$c341 = "Opportunity", + peg$c342 = peg$literalExpectation("Opportunity", false), + peg$c343 = "Ops", + peg$c344 = peg$literalExpectation("Ops", false), + peg$c345 = "Order", + peg$c346 = peg$literalExpectation("Order", false), + peg$c347 = "Organic", + peg$c348 = peg$literalExpectation("Organic", false), + peg$c349 = "Paradigm", + peg$c350 = peg$literalExpectation("Paradigm", false), + peg$c351 = "Passionate", + peg$c352 = peg$literalExpectation("Passionate", false), + peg$c353 = "Pattern", + peg$c354 = peg$literalExpectation("Pattern", false), + peg$c355 = "Person", + peg$c356 = peg$literalExpectation("Person", false), + peg$c357 = "Pie", + peg$c358 = peg$literalExpectation("Pie", false), + peg$c359 = "Point", + peg$c360 = peg$literalExpectation("Point", false), + peg$c361 = "Policy", + peg$c362 = peg$literalExpectation("Policy", false), + peg$c363 = "Portal", + peg$c364 = peg$literalExpectation("Portal", false), + peg$c365 = "Product", + peg$c366 = peg$literalExpectation("Product", false), + peg$c367 = "Proof", + peg$c368 = peg$literalExpectation("Proof", false), + peg$c369 = "Provable", + peg$c370 = peg$literalExpectation("Provable", false), + peg$c371 = "Proxy", + peg$c372 = peg$literalExpectation("Proxy", false), + peg$c373 = "Resource", + peg$c374 = peg$literalExpectation("Resource", false), + peg$c375 = "Return", + peg$c376 = peg$literalExpectation("Return", false), + peg$c377 = "Roadmap", + peg$c378 = peg$literalExpectation("Roadmap", false), + peg$c379 = "Scalable", + peg$c380 = peg$literalExpectation("Scalable", false), + peg$c381 = "Science", + peg$c382 = peg$literalExpectation("Science", false), + peg$c383 = "Self", + peg$c384 = peg$literalExpectation("Self", false), + peg$c385 = "Service", + peg$c386 = peg$literalExpectation("Service", false), + peg$c387 = "Services", + peg$c388 = peg$literalExpectation("Services", false), + peg$c389 = "Share", + peg$c390 = peg$literalExpectation("Share", false), + peg$c391 = "Sharing", + peg$c392 = peg$literalExpectation("Sharing", false), + peg$c393 = "Simple", + peg$c394 = peg$literalExpectation("Simple", false), + peg$c395 = "Skeuomorphic", + peg$c396 = peg$literalExpectation("Skeuomorphic", false), + peg$c397 = "Speed", + peg$c398 = peg$literalExpectation("Speed", false), + peg$c399 = "Software", + peg$c400 = peg$literalExpectation("Software", false), + peg$c401 = "Solution", + peg$c402 = peg$literalExpectation("Solution", false), + peg$c403 = "Square", + peg$c404 = peg$literalExpectation("Square", false), + peg$c405 = "Startup", + peg$c406 = peg$literalExpectation("Startup", false), + peg$c407 = "Streamline", + peg$c408 = peg$literalExpectation("Streamline", false), + peg$c409 = "Streamlined", + peg$c410 = peg$literalExpectation("Streamlined", false), + peg$c411 = "Super", + peg$c412 = peg$literalExpectation("Super", false), + peg$c413 = "Sustainability", + peg$c414 = peg$literalExpectation("Sustainability", false), + peg$c415 = "Sustainable", + peg$c416 = peg$literalExpectation("Sustainable", false), + peg$c417 = "Synergic", + peg$c418 = peg$literalExpectation("Synergic", false), + peg$c419 = "Synergy", + peg$c420 = peg$literalExpectation("Synergy", false), + peg$c421 = "System", + peg$c422 = peg$literalExpectation("System", false), + peg$c423 = "Tax", + peg$c424 = peg$literalExpectation("Tax", false), + peg$c425 = "Text", + peg$c426 = peg$literalExpectation("Text", false), + peg$c427 = "Time", + peg$c428 = peg$literalExpectation("Time", false), + peg$c429 = "Trade", + peg$c430 = peg$literalExpectation("Trade", false), + peg$c431 = "Trans", + peg$c432 = peg$literalExpectation("Trans", false), + peg$c433 = "Upsize", + peg$c434 = peg$literalExpectation("Upsize", false), + peg$c435 = "Upsizer", + peg$c436 = peg$literalExpectation("Upsizer", false), + peg$c437 = "User", + peg$c438 = peg$literalExpectation("User", false), + peg$c439 = "Viral", + peg$c440 = peg$literalExpectation("Viral", false), + peg$c441 = "Virality", + peg$c442 = peg$literalExpectation("Virality", false), + peg$c443 = "Viralize", + peg$c444 = peg$literalExpectation("Viralize", false), + peg$c445 = "Visual", + peg$c446 = peg$literalExpectation("Visual", false), + peg$c447 = "Web", + peg$c448 = peg$literalExpectation("Web", false), + peg$c449 = "World", + peg$c450 = peg$literalExpectation("World", false), + peg$c451 = "Serverless", + peg$c452 = peg$literalExpectation("Serverless", false), + peg$c453 = "Server", + peg$c454 = peg$literalExpectation("Server", false), + peg$c455 = "Side", + peg$c456 = peg$literalExpectation("Side", false), + peg$c457 = "Render", + peg$c458 = peg$literalExpectation("Render", false), + peg$c459 = "Universal", + peg$c460 = peg$literalExpectation("Universal", false), + peg$c461 = "Native", + peg$c462 = peg$literalExpectation("Native", false), + peg$c463 = "Mobile", + peg$c464 = peg$literalExpectation("Mobile", false), + peg$c465 = "Angular", + peg$c466 = peg$literalExpectation("Angular", false), + peg$c467 = "React", + peg$c468 = peg$literalExpectation("React", false), + peg$c469 = "Component", + peg$c470 = peg$literalExpectation("Component", false), + peg$c471 = "Cache", + peg$c472 = peg$literalExpectation("Cache", false), + peg$c473 = "Domain", + peg$c474 = peg$literalExpectation("Domain", false), + peg$c475 = "Frontend", + peg$c476 = peg$literalExpectation("Frontend", false), + peg$c477 = "Full", + peg$c478 = peg$literalExpectation("Full", false), + peg$c479 = "Fullstack", + peg$c480 = peg$literalExpectation("Fullstack", false), + peg$c481 = "Git", + peg$c482 = peg$literalExpectation("Git", false), + peg$c483 = "Hub", + peg$c484 = peg$literalExpectation("Hub", false), + peg$c485 = "Information", + peg$c486 = peg$literalExpectation("Information", false), + peg$c487 = "Script", + peg$c488 = peg$literalExpectation("Script", false), + peg$c489 = "Query", + peg$c490 = peg$literalExpectation("Query", false), + peg$c491 = "Minification", + peg$c492 = peg$literalExpectation("Minification", false), + peg$c493 = "First", + peg$c494 = peg$literalExpectation("First", false), + peg$c495 = "Responsive", + peg$c496 = peg$literalExpectation("Responsive", false), + peg$c497 = "Ruby", + peg$c498 = peg$literalExpectation("Ruby", false), + peg$c499 = "Rails", + peg$c500 = peg$literalExpectation("Rails", false), + peg$c501 = "Sitemap", + peg$c502 = peg$literalExpectation("Sitemap", false), + peg$c503 = "Wireframe", + peg$c504 = peg$literalExpectation("Wireframe", false), + peg$c505 = "Explorer", + peg$c506 = peg$literalExpectation("Explorer", false), + peg$c507 = "Netscape", + peg$c508 = peg$literalExpectation("Netscape", false), + peg$c509 = "Firefox", + peg$c510 = peg$literalExpectation("Firefox", false), + peg$c511 = "Chrome", + peg$c512 = peg$literalExpectation("Chrome", false), + peg$c513 = "Safari", + peg$c514 = peg$literalExpectation("Safari", false), + peg$c515 = "Android", + peg$c516 = peg$literalExpectation("Android", false), + peg$c517 = "Apple", + peg$c518 = peg$literalExpectation("Apple", false), + peg$c519 = "Opera", + peg$c520 = peg$literalExpectation("Opera", false), + peg$c521 = "Scroll", + peg$c522 = peg$literalExpectation("Scroll", false), + peg$c523 = "Scrolling", + peg$c524 = peg$literalExpectation("Scrolling", false), + peg$c525 = "Infinite", + peg$c526 = peg$literalExpectation("Infinite", false), + peg$c527 = "Landing", + peg$c528 = peg$literalExpectation("Landing", false), + peg$c529 = "Hero", + peg$c530 = peg$literalExpectation("Hero", false), + peg$c531 = "Mock", + peg$c532 = peg$literalExpectation("Mock", false), + peg$c533 = "Mockup", + peg$c534 = peg$literalExpectation("Mockup", false), + peg$c535 = "Parallax", + peg$c536 = peg$literalExpectation("Parallax", false), + peg$c537 = "Meta", + peg$c538 = peg$literalExpectation("Meta", false), + peg$c539 = "Tag", + peg$c540 = peg$literalExpectation("Tag", false), + peg$c541 = "Template", + peg$c542 = peg$literalExpectation("Template", false), + peg$c543 = "Vector", + peg$c544 = peg$literalExpectation("Vector", false), + peg$c545 = "Metro", + peg$c546 = peg$literalExpectation("Metro", false), + peg$c547 = "Above", + peg$c548 = peg$literalExpectation("Above", false), + peg$c549 = "Fold", + peg$c550 = peg$literalExpectation("Fold", false), + peg$c551 = "Grid", + peg$c552 = peg$literalExpectation("Grid", false), + peg$c553 = "Canvas", + peg$c554 = peg$literalExpectation("Canvas", false), + peg$c555 = "Boilerplate", + peg$c556 = peg$literalExpectation("Boilerplate", false), + peg$c557 = "Modernizr", + peg$c558 = peg$literalExpectation("Modernizr", false), + peg$c559 = "Blocking", + peg$c560 = peg$literalExpectation("Blocking", false), + peg$c561 = "Quirks", + peg$c562 = peg$literalExpectation("Quirks", false), + peg$c563 = "Sockets", + peg$c564 = peg$literalExpectation("Sockets", false), + peg$c565 = "Socket", + peg$c566 = peg$literalExpectation("Socket", false), + peg$c567 = "Storage", + peg$c568 = peg$literalExpectation("Storage", false), + peg$c569 = "Worker", + peg$c570 = peg$literalExpectation("Worker", false), + peg$c571 = "Things", + peg$c572 = peg$literalExpectation("Things", false), + peg$c573 = "Unicorn", + peg$c574 = peg$literalExpectation("Unicorn", false), + peg$c575 = "Quantum", + peg$c576 = peg$literalExpectation("Quantum", false), + peg$c577 = function(word) { return word }, + peg$c578 = function(values) { return values.filter(Boolean) }, + peg$c579 = peg$otherExpectation("whitespace"), + peg$c580 = "\t", + peg$c581 = peg$literalExpectation("\t", false), + peg$c582 = "\x0B", + peg$c583 = peg$literalExpectation("\x0B", false), + peg$c584 = "\f", + peg$c585 = peg$literalExpectation("\f", false), + peg$c586 = " ", + peg$c587 = peg$literalExpectation(" ", false), + peg$c588 = "\xA0", + peg$c589 = peg$literalExpectation("\xA0", false), + peg$c590 = "\uFEFF", + peg$c591 = peg$literalExpectation("\uFEFF", false), + peg$c592 = function() { return null }, + peg$c593 = peg$otherExpectation("EOL"), + peg$c594 = "\n", + peg$c595 = peg$literalExpectation("\n", false), + peg$c596 = "\r\n", + peg$c597 = peg$literalExpectation("\r\n", false), + peg$c598 = "\r", + peg$c599 = peg$literalExpectation("\r", false), + peg$c600 = "\u2028", + peg$c601 = peg$literalExpectation("\u2028", false), + peg$c602 = "\u2029", + peg$c603 = peg$literalExpectation("\u2029", false), + peg$c604 = peg$otherExpectation("comment"), + peg$c605 = peg$otherExpectation("multiline comment"), + peg$c606 = "/*", + peg$c607 = peg$literalExpectation("/*", false), + peg$c608 = "*/", + peg$c609 = peg$literalExpectation("*/", false), + peg$c610 = function(value) { return comment("multiline", value) }, + peg$c611 = peg$otherExpectation("copyright comment"), + peg$c612 = "/\xA9", + peg$c613 = peg$literalExpectation("/\xA9", false), + peg$c614 = "\xA9/", + peg$c615 = peg$literalExpectation("\xA9/", false), + peg$c616 = function(value) { return comment("copyright", value) }, + peg$c617 = peg$otherExpectation("NDA comment"), + peg$c618 = "/NDA", + peg$c619 = peg$literalExpectation("/NDA", false), + peg$c620 = "NDA/", + peg$c621 = peg$literalExpectation("NDA/", false), + peg$c622 = function(value) { return comment("nda", value) }, + peg$c623 = peg$otherExpectation("passive agressive comment"), + peg$c624 = "/?", + peg$c625 = peg$literalExpectation("/?", false), + peg$c626 = "?/", + peg$c627 = peg$literalExpectation("?/", false), + peg$c628 = function(value) { return comment("passiveAggressive", value) }, + peg$c629 = peg$otherExpectation("interview comment"), + peg$c630 = "/\xAF_(\u30C4)_/\xAF", + peg$c631 = peg$literalExpectation("/\xAF_(\u30C4)_/\xAF", false), + peg$c632 = "\xAF_(\u30C4)_/\xAF/", + peg$c633 = peg$literalExpectation("\xAF_(\u30C4)_/\xAF/", false), + peg$c634 = function(value) { return comment("interview", value) }, + peg$c635 = peg$otherExpectation("time to market comment"), + peg$c636 = "/soon", + peg$c637 = peg$literalExpectation("/soon", false), + peg$c638 = "soon/", + peg$c639 = peg$literalExpectation("soon/", false), + peg$c640 = function(value) { return comment("timeToMarket", value) }, + peg$c641 = peg$otherExpectation("single line comment"), + peg$c642 = "//", + peg$c643 = peg$literalExpectation("//", false), + peg$c644 = function(value) { return comment("single", value) }, + peg$c645 = peg$anyExpectation(), + peg$c646 = /^[\n\r\u2028\u2029]/, + peg$c647 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], false, false), + peg$c648 = /^[a-zA-Z0-9]/, + peg$c649 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false), + peg$c650 = /^[a-z]/, + peg$c651 = peg$classExpectation([["a", "z"]], false, false), + peg$c652 = function() { return { type: "varName", value: text() } }, + peg$c653 = "var", + peg$c654 = peg$literalExpectation("var", false), + peg$c655 = "String", + peg$c656 = peg$literalExpectation("String", false), + peg$c657 = "=", + peg$c658 = peg$literalExpectation("=", false), + peg$c659 = function(name, value) { return v("string", name, value) }, + peg$c660 = peg$otherExpectation("string"), + peg$c661 = "\"", + peg$c662 = peg$literalExpectation("\"", false), + peg$c663 = function(chars) { return chars.join("") }, + peg$c664 = "\\", + peg$c665 = peg$literalExpectation("\\", false), + peg$c666 = function(sequence) { return sequence }, + peg$c667 = function() { return text() }, + peg$c668 = "'", + peg$c669 = peg$literalExpectation("'", false), + peg$c670 = "b", + peg$c671 = peg$literalExpectation("b", false), + peg$c672 = function() { return "\b" }, + peg$c673 = "f", + peg$c674 = peg$literalExpectation("f", false), + peg$c675 = function() { return "\f" }, + peg$c676 = "n", + peg$c677 = peg$literalExpectation("n", false), + peg$c678 = function() { return "\n" }, + peg$c679 = "r", + peg$c680 = peg$literalExpectation("r", false), + peg$c681 = function() { return "\r" }, + peg$c682 = "t", + peg$c683 = peg$literalExpectation("t", false), + peg$c684 = function() { return "\t" }, + peg$c685 = "v", + peg$c686 = peg$literalExpectation("v", false), + peg$c687 = function() { return "\x0B" }, + peg$c688 = "x", + peg$c689 = peg$literalExpectation("x", false), + peg$c690 = "u", + peg$c691 = peg$literalExpectation("u", false), + peg$c692 = "Bool", + peg$c693 = peg$literalExpectation("Bool", false), + peg$c694 = function(name, value) { return v("bool", name, value) }, + peg$c695 = "True", + peg$c696 = peg$literalExpectation("True", false), + peg$c697 = "False", + peg$c698 = peg$literalExpectation("False", false), + peg$c699 = function() { return text() === "True" }, + peg$c700 = "Null", + peg$c701 = peg$literalExpectation("Null", false), + peg$c702 = function(name, value) { return v("null", name, value) }, + peg$c703 = function(name, value) { return v("money", name, value) }, + peg$c704 = function(n, mm) { return parseFloat(n) * (mm ? mm : 1) }, + peg$c705 = ".", + peg$c706 = peg$literalExpectation(".", false), + peg$c707 = function() { return parseFloat(text()) }, + peg$c708 = "k", + peg$c709 = peg$literalExpectation("k", false), + peg$c710 = function() { return 1000 }, + peg$c711 = "M", + peg$c712 = peg$literalExpectation("M", false), + peg$c713 = function() { return 1000 * 1000 }, + peg$c714 = "B", + peg$c715 = peg$literalExpectation("B", false), + peg$c716 = function() { return 1000 * 1000 * 1000 }, + peg$c717 = "\uD83E\uDD84", + peg$c718 = peg$literalExpectation("\uD83E\uDD84", false), + peg$c719 = "T", + peg$c720 = peg$literalExpectation("T", false), + peg$c721 = function() { return 1000 * 1000 * 1000 * 1000 }, + peg$c722 = "0", + peg$c723 = peg$literalExpectation("0", false), + peg$c724 = /^[0-9]/, + peg$c725 = peg$classExpectation([["0", "9"]], false, false), + peg$c726 = /^[1-9]/, + peg$c727 = peg$classExpectation([["1", "9"]], false, false), + peg$c728 = function(name, value) { return v("list:int", name, value) }, + peg$c729 = "[", + peg$c730 = peg$literalExpectation("[", false), + peg$c731 = "]", + peg$c732 = peg$literalExpectation("]", false), + peg$c733 = function(elements) { return elements || [] }, + peg$c734 = function(element) { return element }, + peg$c735 = ",", + peg$c736 = peg$literalExpectation(",", false), + peg$c737 = function(head, element) { return element }, + peg$c738 = function(head, tail) { return [head, ...tail] }, + peg$c739 = function(name, value) { return v("list:string", name, value) }, + peg$c740 = function(name, value) { return v("list:bool", name, value) }, + peg$c741 = function(name, value) { return v("list:null", name, value) }, + peg$c742 = peg$otherExpectation("if"), + peg$c743 = "(", + peg$c744 = peg$literalExpectation("(", false), + peg$c745 = ")", + peg$c746 = peg$literalExpectation(")", false), + peg$c747 = function(test, then, els) { return {type: "if", test, then, else: els }}, + peg$c748 = function(test, then) { return {type: "if", test, then, else: [] } }, + peg$c749 = "if", + peg$c750 = peg$literalExpectation("if", false), + peg$c751 = "else", + peg$c752 = peg$literalExpectation("else", false), + peg$c753 = peg$otherExpectation("while"), + peg$c754 = function(test, body) { return {type: "while", test, body } }, + peg$c755 = "while", + peg$c756 = peg$literalExpectation("while", false), + peg$c757 = function(head, tail) { return binary(head, tail) }, + peg$c758 = function(expr) { return Object.assign({ parens: true }, expr) }, + peg$c759 = function(operator, argument) { return {type: 'unary', operator, argument} }, + peg$c760 = "!", + peg$c761 = peg$literalExpectation("!", false), + peg$c762 = "*", + peg$c763 = peg$literalExpectation("*", false), + peg$c764 = "/", + peg$c765 = peg$literalExpectation("/", false), + peg$c766 = "%", + peg$c767 = peg$literalExpectation("%", false), + peg$c768 = "+", + peg$c769 = peg$literalExpectation("+", false), + peg$c770 = "-", + peg$c771 = peg$literalExpectation("-", false), + peg$c772 = "<=", + peg$c773 = peg$literalExpectation("<=", false), + peg$c774 = ">=", + peg$c775 = peg$literalExpectation(">=", false), + peg$c776 = "<", + peg$c777 = peg$literalExpectation("<", false), + peg$c778 = ">", + peg$c779 = peg$literalExpectation(">", false), + peg$c780 = "==", + peg$c781 = peg$literalExpectation("==", false), + peg$c782 = "!=", + peg$c783 = peg$literalExpectation("!=", false), + peg$c784 = "&&", + peg$c785 = peg$literalExpectation("&&", false), + peg$c786 = "||", + peg$c787 = peg$literalExpectation("||", false), + peg$c788 = function(value) { return value }, + peg$c789 = /^[a-z.]/i, + peg$c790 = peg$classExpectation([["a", "z"], "."], false, true), + peg$c791 = function() { return lib(text(), location()) }, + peg$c792 = "com.disruptive.", + peg$c793 = peg$literalExpectation("com.disruptive.", false), + peg$c794 = function(lib) { return lib }, + peg$c795 = peg$otherExpectation("import"), + peg$c796 = "import", + peg$c797 = peg$literalExpectation("import", false), + peg$c798 = "disruptive", + peg$c799 = peg$literalExpectation("disruptive", false), + peg$c800 = "library", + peg$c801 = peg$literalExpectation("library", false), + peg$c802 = function(lib) { return { type: 'import', lib } }, + peg$c803 = function(call) { return call }, + peg$c804 = function(callee, args) { + return call(callee, args, location()) + }, + peg$c805 = /^[a-zA-Z]/, + peg$c806 = peg$classExpectation([["a", "z"], ["A", "Z"]], false, false), + peg$c807 = "mutate", + peg$c808 = peg$literalExpectation("mutate", false), + peg$c809 = "++", + peg$c810 = peg$literalExpectation("++", false), + peg$c811 = function(v) { return { type: 'mutate', var:v.value, mutation: '++' }}, + + peg$currPos = 0, + peg$savedPos = 0, + peg$posDetailsCache = [{ line: 1, column: 1 }], + peg$maxFailPos = 0, + peg$maxFailExpected = [], + peg$silentFails = 0, + + peg$result; + + if ("startRule" in options) { + if (!(options.startRule in peg$startRuleFunctions)) { + throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); + } + + peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; + } + + function text() { + return input.substring(peg$savedPos, peg$currPos); + } + + function location() { + return peg$computeLocation(peg$savedPos, peg$currPos); + } + + function expected(description, location) { + location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos) + + throw peg$buildStructuredError( + [peg$otherExpectation(description)], + input.substring(peg$savedPos, peg$currPos), + location + ); + } + + function error(message, location) { + location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos) + + throw peg$buildSimpleError(message, location); + } + + function peg$literalExpectation(text, ignoreCase) { + return { type: "literal", text: text, ignoreCase: ignoreCase }; + } + + function peg$classExpectation(parts, inverted, ignoreCase) { + return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase }; + } + + function peg$anyExpectation() { + return { type: "any" }; + } + + function peg$endExpectation() { + return { type: "end" }; + } + + function peg$otherExpectation(description) { + return { type: "other", description: description }; + } + + function peg$computePosDetails(pos) { + var details = peg$posDetailsCache[pos], p; + + if (details) { + return details; + } else { + p = pos - 1; + while (!peg$posDetailsCache[p]) { + p--; + } + + details = peg$posDetailsCache[p]; + details = { + line: details.line, + column: details.column + }; + + while (p < pos) { + if (input.charCodeAt(p) === 10) { + details.line++; + details.column = 1; + } else { + details.column++; + } + + p++; + } + + peg$posDetailsCache[pos] = details; + return details; + } + } + + function peg$computeLocation(startPos, endPos) { + var startPosDetails = peg$computePosDetails(startPos), + endPosDetails = peg$computePosDetails(endPos); + + return { + start: { + offset: startPos, + line: startPosDetails.line, + column: startPosDetails.column + }, + end: { + offset: endPos, + line: endPosDetails.line, + column: endPosDetails.column + } + }; + } + + function peg$fail(expected) { + if (peg$currPos < peg$maxFailPos) { return; } + + if (peg$currPos > peg$maxFailPos) { + peg$maxFailPos = peg$currPos; + peg$maxFailExpected = []; + } + + peg$maxFailExpected.push(expected); + } + + function peg$buildSimpleError(message, location) { + return new peg$SyntaxError(message, null, null, location); + } + + function peg$buildStructuredError(expected, found, location) { + return new peg$SyntaxError( + peg$SyntaxError.buildMessage(expected, found), + expected, + found, + location + ); + } + + function peg$parseStart() { + var s0, s1, s2, s3, s4, s5, s6; + + s0 = peg$currPos; + s1 = peg$parseCopyrightComment(); + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseHeaderInstructions(); + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + s5 = peg$parseDisruptiveClass(); + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c0(s1, s3, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseDisruptiveClass() { + var s0, s1, s2, s3, s4, s5, s6; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 22) === peg$c2) { + s1 = peg$c2; + peg$currPos += 22; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c3); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c4) { + s3 = peg$c4; + peg$currPos += 3; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c5); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parseClassName(); + if (s4 !== peg$FAILED) { + s5 = peg$parse__(); + if (s5 !== peg$FAILED) { + s6 = peg$parseFDCBody(); + if (s6 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c6(s4, s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c1); } + } + + return s0; + } + + function peg$parseFDCBody() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 123) { + s1 = peg$c8; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseMainMethod(); + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s5 = peg$c10; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c11); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c12(s2, s3, s4); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c7); } + } + + return s0; + } + + function peg$parseClassName() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parseEnterpriseyWord(); + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseEnterpriseyWord(); + } + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c13(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseMainMethod() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 30) === peg$c15) { + s1 = peg$c15; + peg$currPos += 30; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c16); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseStatements(); + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s5 = peg$c10; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c11); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c17(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c14); } + } + + return s0; + } + + function peg$parseStatements() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + s1 = peg$parseStatement(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + s5 = peg$parseStatement(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + s5 = peg$parseStatement(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c18(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseStatement() { + var s0; + + s0 = peg$parseMutate(); + if (s0 === peg$FAILED) { + s0 = peg$parseMoneyDecl(); + if (s0 === peg$FAILED) { + s0 = peg$parseBoolDecl(); + if (s0 === peg$FAILED) { + s0 = peg$parseStringDecl(); + if (s0 === peg$FAILED) { + s0 = peg$parseNullDecl(); + if (s0 === peg$FAILED) { + s0 = peg$parseMoneyListDecl(); + if (s0 === peg$FAILED) { + s0 = peg$parseStringListDecl(); + if (s0 === peg$FAILED) { + s0 = peg$parseBoolListDecl(); + if (s0 === peg$FAILED) { + s0 = peg$parseNullListDecl(); + if (s0 === peg$FAILED) { + s0 = peg$parseIf(); + if (s0 === peg$FAILED) { + s0 = peg$parseWhile(); + if (s0 === peg$FAILED) { + s0 = peg$parseCallStatement(); + } + } + } + } + } + } + } + } + } + } + } + + return s0; + } + + function peg$parseStatementEnd() { + var s0; + + if (input.substr(peg$currPos, 3) === peg$c19) { + s0 = peg$c19; + peg$currPos += 3; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c20); } + } + + return s0; + } + + function peg$parseEnterpriseyWord() { + var s0, s1; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 10) === peg$c21) { + s1 = peg$c21; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c22); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 12) === peg$c23) { + s1 = peg$c23; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c24); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c25) { + s1 = peg$c25; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c26); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c27) { + s1 = peg$c27; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c28); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c29) { + s1 = peg$c29; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c30); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c31) { + s1 = peg$c31; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c32); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c33) { + s1 = peg$c33; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c34); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c35) { + s1 = peg$c35; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c36); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c37) { + s1 = peg$c37; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c38); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c39) { + s1 = peg$c39; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c40); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c41) { + s1 = peg$c41; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c42); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c43) { + s1 = peg$c43; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c44); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c45) { + s1 = peg$c45; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c46); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c47) { + s1 = peg$c47; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c48); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c49) { + s1 = peg$c49; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c50); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c51) { + s1 = peg$c51; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c52); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c53) { + s1 = peg$c53; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c54); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c55) { + s1 = peg$c55; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c56); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c57) { + s1 = peg$c57; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c58); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c59) { + s1 = peg$c59; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c60); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c61) { + s1 = peg$c61; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c62); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c63) { + s1 = peg$c63; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c64); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c65) { + s1 = peg$c65; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c66); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c67) { + s1 = peg$c67; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c68); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c69) { + s1 = peg$c69; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c70); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c71) { + s1 = peg$c71; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c72); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 12) === peg$c73) { + s1 = peg$c73; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c74); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c75) { + s1 = peg$c75; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c76); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c77) { + s1 = peg$c77; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c78); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c79) { + s1 = peg$c79; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c80); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c81) { + s1 = peg$c81; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c82); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c83) { + s1 = peg$c83; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c84); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c85) { + s1 = peg$c85; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c86); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c87) { + s1 = peg$c87; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c88); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c89) { + s1 = peg$c89; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c90); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c91) { + s1 = peg$c91; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c92); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c93) { + s1 = peg$c93; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c94); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c95) { + s1 = peg$c95; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c96); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c97) { + s1 = peg$c97; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c98); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c99) { + s1 = peg$c99; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c100); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c101) { + s1 = peg$c101; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c102); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c103) { + s1 = peg$c103; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c104); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c105) { + s1 = peg$c105; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c106); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c107) { + s1 = peg$c107; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c108); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c109) { + s1 = peg$c109; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c110); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c111) { + s1 = peg$c111; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c112); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c113) { + s1 = peg$c113; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c114); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c115) { + s1 = peg$c115; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c116); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c117) { + s1 = peg$c117; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c118); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c119) { + s1 = peg$c119; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c120); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c121) { + s1 = peg$c121; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c122); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c123) { + s1 = peg$c123; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c124); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c125) { + s1 = peg$c125; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c126); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c127) { + s1 = peg$c127; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c128); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c129) { + s1 = peg$c129; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c130); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c131) { + s1 = peg$c131; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c132); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c133) { + s1 = peg$c133; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c134); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c135) { + s1 = peg$c135; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c136); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c137) { + s1 = peg$c137; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c138); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c139) { + s1 = peg$c139; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c140); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c141) { + s1 = peg$c141; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c142); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c143) { + s1 = peg$c143; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c144); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c145) { + s1 = peg$c145; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c146); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c147) { + s1 = peg$c147; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c148); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c149) { + s1 = peg$c149; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c150); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c151) { + s1 = peg$c151; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c152); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c153) { + s1 = peg$c153; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c154); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c155) { + s1 = peg$c155; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c156); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c157) { + s1 = peg$c157; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c158); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c159) { + s1 = peg$c159; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c160); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c161) { + s1 = peg$c161; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c162); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c163) { + s1 = peg$c163; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c164); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c165) { + s1 = peg$c165; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c166); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c167) { + s1 = peg$c167; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c168); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 12) === peg$c169) { + s1 = peg$c169; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c170); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c171) { + s1 = peg$c171; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c172); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c173) { + s1 = peg$c173; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c174); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c175) { + s1 = peg$c175; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c176); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c177) { + s1 = peg$c177; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c178); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c179) { + s1 = peg$c179; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c180); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c181) { + s1 = peg$c181; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c182); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c183) { + s1 = peg$c183; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c184); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c185) { + s1 = peg$c185; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c186); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c187) { + s1 = peg$c187; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c188); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c189) { + s1 = peg$c189; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c190); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c191) { + s1 = peg$c191; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c192); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c193) { + s1 = peg$c193; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c194); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c195) { + s1 = peg$c195; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c196); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c197) { + s1 = peg$c197; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c198); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c199) { + s1 = peg$c199; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c200); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c201) { + s1 = peg$c201; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c202); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c203) { + s1 = peg$c203; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c204); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c205) { + s1 = peg$c205; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c206); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c207) { + s1 = peg$c207; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c208); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c209) { + s1 = peg$c209; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c210); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c211) { + s1 = peg$c211; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c212); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c213) { + s1 = peg$c213; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c214); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c215) { + s1 = peg$c215; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c216); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c217) { + s1 = peg$c217; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c218); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c219) { + s1 = peg$c219; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c220); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c221) { + s1 = peg$c221; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c222); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c223) { + s1 = peg$c223; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c224); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c225) { + s1 = peg$c225; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c226); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c227) { + s1 = peg$c227; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c228); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c229) { + s1 = peg$c229; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c230); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c231) { + s1 = peg$c231; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c232); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c233) { + s1 = peg$c233; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c234); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c235) { + s1 = peg$c235; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c236); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c237) { + s1 = peg$c237; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c238); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c239) { + s1 = peg$c239; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c240); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c241) { + s1 = peg$c241; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c242); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c243) { + s1 = peg$c243; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c244); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c245) { + s1 = peg$c245; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c246); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c247) { + s1 = peg$c247; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c248); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c249) { + s1 = peg$c249; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c250); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c251) { + s1 = peg$c251; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c252); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c253) { + s1 = peg$c253; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c254); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c255) { + s1 = peg$c255; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c256); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 12) === peg$c257) { + s1 = peg$c257; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c258); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c259) { + s1 = peg$c259; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c260); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c261) { + s1 = peg$c261; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c262); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c263) { + s1 = peg$c263; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c264); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c265) { + s1 = peg$c265; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c266); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c267) { + s1 = peg$c267; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c268); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c269) { + s1 = peg$c269; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c270); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c271) { + s1 = peg$c271; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c272); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c273) { + s1 = peg$c273; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c274); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c275) { + s1 = peg$c275; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c276); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c277) { + s1 = peg$c277; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c278); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c279) { + s1 = peg$c279; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c280); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c281) { + s1 = peg$c281; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c282); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c283) { + s1 = peg$c283; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c284); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c285) { + s1 = peg$c285; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c286); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c287) { + s1 = peg$c287; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c288); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c289) { + s1 = peg$c289; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c290); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c291) { + s1 = peg$c291; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c292); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c293) { + s1 = peg$c293; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c294); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c295) { + s1 = peg$c295; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c296); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c297) { + s1 = peg$c297; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c298); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c299) { + s1 = peg$c299; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c300); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c301) { + s1 = peg$c301; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c302); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c303) { + s1 = peg$c303; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c304); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c305) { + s1 = peg$c305; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c306); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c307) { + s1 = peg$c307; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c308); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c309) { + s1 = peg$c309; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c310); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c311) { + s1 = peg$c311; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c312); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c313) { + s1 = peg$c313; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c314); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c315) { + s1 = peg$c315; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c316); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c317) { + s1 = peg$c317; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c318); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c319) { + s1 = peg$c319; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c320); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c321) { + s1 = peg$c321; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c322); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c323) { + s1 = peg$c323; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c324); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c325) { + s1 = peg$c325; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c326); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c327) { + s1 = peg$c327; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c328); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c329) { + s1 = peg$c329; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c330); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c331) { + s1 = peg$c331; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c332); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c333) { + s1 = peg$c333; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c334); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c335) { + s1 = peg$c335; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c336); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c337) { + s1 = peg$c337; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c338); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c339) { + s1 = peg$c339; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c340); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c341) { + s1 = peg$c341; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c342); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c343) { + s1 = peg$c343; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c344); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c345) { + s1 = peg$c345; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c346); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c347) { + s1 = peg$c347; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c348); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c349) { + s1 = peg$c349; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c350); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c351) { + s1 = peg$c351; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c352); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c353) { + s1 = peg$c353; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c354); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c355) { + s1 = peg$c355; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c356); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c357) { + s1 = peg$c357; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c358); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c359) { + s1 = peg$c359; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c360); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c361) { + s1 = peg$c361; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c362); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c363) { + s1 = peg$c363; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c364); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c365) { + s1 = peg$c365; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c366); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c367) { + s1 = peg$c367; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c368); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c369) { + s1 = peg$c369; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c370); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c371) { + s1 = peg$c371; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c372); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c373) { + s1 = peg$c373; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c374); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c375) { + s1 = peg$c375; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c376); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c377) { + s1 = peg$c377; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c378); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c379) { + s1 = peg$c379; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c380); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c381) { + s1 = peg$c381; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c382); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c383) { + s1 = peg$c383; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c384); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c385) { + s1 = peg$c385; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c386); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c387) { + s1 = peg$c387; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c388); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c389) { + s1 = peg$c389; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c390); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c391) { + s1 = peg$c391; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c392); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c393) { + s1 = peg$c393; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c394); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 12) === peg$c395) { + s1 = peg$c395; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c396); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c397) { + s1 = peg$c397; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c398); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c399) { + s1 = peg$c399; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c400); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c401) { + s1 = peg$c401; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c402); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c403) { + s1 = peg$c403; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c404); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c405) { + s1 = peg$c405; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c406); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c407) { + s1 = peg$c407; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c408); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c409) { + s1 = peg$c409; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c410); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c411) { + s1 = peg$c411; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c412); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 14) === peg$c413) { + s1 = peg$c413; + peg$currPos += 14; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c414); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c415) { + s1 = peg$c415; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c416); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c417) { + s1 = peg$c417; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c418); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c419) { + s1 = peg$c419; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c420); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c421) { + s1 = peg$c421; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c422); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c423) { + s1 = peg$c423; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c424); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c425) { + s1 = peg$c425; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c426); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c427) { + s1 = peg$c427; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c428); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c429) { + s1 = peg$c429; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c430); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c431) { + s1 = peg$c431; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c432); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c433) { + s1 = peg$c433; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c434); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c435) { + s1 = peg$c435; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c436); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c437) { + s1 = peg$c437; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c438); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c439) { + s1 = peg$c439; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c440); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c441) { + s1 = peg$c441; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c442); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c443) { + s1 = peg$c443; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c444); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c445) { + s1 = peg$c445; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c446); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c447) { + s1 = peg$c447; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c448); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c449) { + s1 = peg$c449; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c450); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c451) { + s1 = peg$c451; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c452); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c453) { + s1 = peg$c453; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c454); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c455) { + s1 = peg$c455; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c456); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c457) { + s1 = peg$c457; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c458); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c459) { + s1 = peg$c459; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c460); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c461) { + s1 = peg$c461; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c462); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c463) { + s1 = peg$c463; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c464); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c465) { + s1 = peg$c465; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c466); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c467) { + s1 = peg$c467; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c468); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c469) { + s1 = peg$c469; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c470); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c471) { + s1 = peg$c471; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c472); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c473) { + s1 = peg$c473; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c474); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c475) { + s1 = peg$c475; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c476); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c477) { + s1 = peg$c477; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c478); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c479) { + s1 = peg$c479; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c480); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c481) { + s1 = peg$c481; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c482); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c483) { + s1 = peg$c483; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c484); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c485) { + s1 = peg$c485; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c486); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c487) { + s1 = peg$c487; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c488); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c489) { + s1 = peg$c489; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c490); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 12) === peg$c491) { + s1 = peg$c491; + peg$currPos += 12; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c492); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c493) { + s1 = peg$c493; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c494); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c495) { + s1 = peg$c495; + peg$currPos += 10; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c496); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c497) { + s1 = peg$c497; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c498); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c499) { + s1 = peg$c499; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c500); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c501) { + s1 = peg$c501; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c502); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c503) { + s1 = peg$c503; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c504); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c505) { + s1 = peg$c505; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c506); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c507) { + s1 = peg$c507; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c508); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c509) { + s1 = peg$c509; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c510); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c511) { + s1 = peg$c511; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c512); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c513) { + s1 = peg$c513; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c514); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c515) { + s1 = peg$c515; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c516); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c517) { + s1 = peg$c517; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c518); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c519) { + s1 = peg$c519; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c520); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c521) { + s1 = peg$c521; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c522); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c523) { + s1 = peg$c523; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c524); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c525) { + s1 = peg$c525; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c526); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c527) { + s1 = peg$c527; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c528); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c529) { + s1 = peg$c529; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c530); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c531) { + s1 = peg$c531; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c532); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c533) { + s1 = peg$c533; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c534); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c535) { + s1 = peg$c535; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c536); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c537) { + s1 = peg$c537; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c538); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 3) === peg$c539) { + s1 = peg$c539; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c540); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c541) { + s1 = peg$c541; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c542); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c503) { + s1 = peg$c503; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c504); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c543) { + s1 = peg$c543; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c544); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c545) { + s1 = peg$c545; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c546); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c547) { + s1 = peg$c547; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c548); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c549) { + s1 = peg$c549; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c550); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c551) { + s1 = peg$c551; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c552); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c553) { + s1 = peg$c553; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c554); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 11) === peg$c555) { + s1 = peg$c555; + peg$currPos += 11; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c556); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c557) { + s1 = peg$c557; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c558); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 8) === peg$c559) { + s1 = peg$c559; + peg$currPos += 8; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c560); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c561) { + s1 = peg$c561; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c562); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c563) { + s1 = peg$c563; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c564); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c565) { + s1 = peg$c565; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c566); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c567) { + s1 = peg$c567; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c568); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c569) { + s1 = peg$c569; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c570); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c571) { + s1 = peg$c571; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c572); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c573) { + s1 = peg$c573; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c574); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c575) { + s1 = peg$c575; + peg$currPos += 7; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c576); } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c577(s1); + } + s0 = s1; + + return s0; + } + + function peg$parse__() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + s2 = peg$parseS(); + if (s2 === peg$FAILED) { + s2 = peg$parseLineTerminatorSequence(); + if (s2 === peg$FAILED) { + s2 = peg$parseComment(); + } + } + while (s2 !== peg$FAILED) { + s1.push(s2); + s2 = peg$parseS(); + if (s2 === peg$FAILED) { + s2 = peg$parseLineTerminatorSequence(); + if (s2 === peg$FAILED) { + s2 = peg$parseComment(); + } + } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c578(s1); + } + s0 = s1; + + return s0; + } + + function peg$parse_() { + var s0, s1; + + s0 = []; + s1 = peg$parseS(); + if (s1 === peg$FAILED) { + s1 = peg$parseLineTerminatorSequence(); + } + while (s1 !== peg$FAILED) { + s0.push(s1); + s1 = peg$parseS(); + if (s1 === peg$FAILED) { + s1 = peg$parseLineTerminatorSequence(); + } + } + + return s0; + } + + function peg$parseS() { + var s0, s1; + + peg$silentFails++; + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 9) { + s1 = peg$c580; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c581); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 11) { + s1 = peg$c582; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c583); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 12) { + s1 = peg$c584; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c585); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 32) { + s1 = peg$c586; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c587); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 160) { + s1 = peg$c588; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c589); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 65279) { + s1 = peg$c590; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c591); } + } + } + } + } + } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c592(); + } + s0 = s1; + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c579); } + } + + return s0; + } + + function peg$parseLineTerminatorSequence() { + var s0, s1; + + peg$silentFails++; + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 10) { + s1 = peg$c594; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c595); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c596) { + s1 = peg$c596; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c597); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 13) { + s1 = peg$c598; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c599); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 8232) { + s1 = peg$c600; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c601); } + } + if (s1 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 8233) { + s1 = peg$c602; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c603); } + } + } + } + } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c592(); + } + s0 = s1; + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c593); } + } + + return s0; + } + + function peg$parseComment() { + var s0, s1; + + peg$silentFails++; + s0 = peg$parseMultiLineComment(); + if (s0 === peg$FAILED) { + s0 = peg$parseNDAComment(); + if (s0 === peg$FAILED) { + s0 = peg$parsePassiveAggressiveComment(); + if (s0 === peg$FAILED) { + s0 = peg$parseInterviewComment(); + if (s0 === peg$FAILED) { + s0 = peg$parseTimeToMarketComment(); + if (s0 === peg$FAILED) { + s0 = peg$parseSingleLineComment(); + } + } + } + } + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c604); } + } + + return s0; + } + + function peg$parseMultiLineComment() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c606) { + s1 = peg$c606; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c607); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 2) === peg$c608) { + s5 = peg$c608; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c609); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 2) === peg$c608) { + s5 = peg$c608; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c609); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c608) { + s3 = peg$c608; + peg$currPos += 2; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c609); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c610(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c605); } + } + + return s0; + } + + function peg$parseCopyrightComment() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c612) { + s1 = peg$c612; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c613); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 2) === peg$c614) { + s5 = peg$c614; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c615); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 2) === peg$c614) { + s5 = peg$c614; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c615); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c614) { + s3 = peg$c614; + peg$currPos += 2; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c615); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c616(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c611); } + } + + return s0; + } + + function peg$parseNDAComment() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 4) === peg$c618) { + s1 = peg$c618; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c619); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 4) === peg$c620) { + s5 = peg$c620; + peg$currPos += 4; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c621); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 4) === peg$c620) { + s5 = peg$c620; + peg$currPos += 4; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c621); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c620) { + s3 = peg$c620; + peg$currPos += 4; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c621); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c622(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c617); } + } + + return s0; + } + + function peg$parsePassiveAggressiveComment() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c624) { + s1 = peg$c624; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c625); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 2) === peg$c626) { + s5 = peg$c626; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c627); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 2) === peg$c626) { + s5 = peg$c626; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c627); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c626) { + s3 = peg$c626; + peg$currPos += 2; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c627); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c628(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c623); } + } + + return s0; + } + + function peg$parseInterviewComment() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 9) === peg$c630) { + s1 = peg$c630; + peg$currPos += 9; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c631); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 9) === peg$c632) { + s5 = peg$c632; + peg$currPos += 9; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c633); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 9) === peg$c632) { + s5 = peg$c632; + peg$currPos += 9; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c633); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 9) === peg$c632) { + s3 = peg$c632; + peg$currPos += 9; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c633); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c634(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c629); } + } + + return s0; + } + + function peg$parseTimeToMarketComment() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 5) === peg$c636) { + s1 = peg$c636; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c637); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c638) { + s5 = peg$c638; + peg$currPos += 5; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c639); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + if (input.substr(peg$currPos, 5) === peg$c638) { + s5 = peg$c638; + peg$currPos += 5; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c639); } + } + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c638) { + s3 = peg$c638; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c639); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c640(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c635); } + } + + return s0; + } + + function peg$parseSingleLineComment() { + var s0, s1, s2, s3, s4, s5; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c642) { + s1 = peg$c642; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c643); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + s5 = peg$parseLineTerminator(); + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$currPos; + peg$silentFails++; + s5 = peg$parseLineTerminator(); + peg$silentFails--; + if (s5 === peg$FAILED) { + s4 = void 0; + } else { + peg$currPos = s4; + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseSourceChar(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c644(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c641); } + } + + return s0; + } + + function peg$parseSourceChar() { + var s0; + + if (input.length > peg$currPos) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c645); } + } + + return s0; + } + + function peg$parseLineTerminator() { + var s0; + + if (peg$c646.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c647); } + } + + return s0; + } + + function peg$parseC() { + var s0; + + if (peg$c648.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c649); } + } + + return s0; + } + + function peg$parseVarName() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8; + + s0 = peg$currPos; + if (peg$c650.test(input.charAt(peg$currPos))) { + s1 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c651); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseC(); + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + s3 = peg$parseC(); + if (s3 === peg$FAILED) { + s3 = null; + } + if (s3 !== peg$FAILED) { + s4 = peg$parseC(); + if (s4 === peg$FAILED) { + s4 = null; + } + if (s4 !== peg$FAILED) { + s5 = peg$parseC(); + if (s5 === peg$FAILED) { + s5 = null; + } + if (s5 !== peg$FAILED) { + s6 = peg$parseC(); + if (s6 === peg$FAILED) { + s6 = null; + } + if (s6 !== peg$FAILED) { + s7 = peg$parseC(); + if (s7 === peg$FAILED) { + s7 = null; + } + if (s7 !== peg$FAILED) { + s8 = peg$parseC(); + if (s8 === peg$FAILED) { + s8 = null; + } + if (s8 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c652(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseStringDecl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c653) { + s1 = peg$c653; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c654); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c655) { + s3 = peg$c655; + peg$currPos += 6; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c656); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parseVarName(); + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s7 = peg$c657; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c658); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + s9 = peg$parseStringLiteral(); + if (s9 === peg$FAILED) { + s9 = peg$parseCall(); + } + if (s9 !== peg$FAILED) { + s10 = peg$parse_(); + if (s10 !== peg$FAILED) { + s11 = peg$parseStatementEnd(); + if (s11 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c659(s5, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseStringLiteral() { + var s0, s1, s2, s3; + + peg$silentFails++; + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 34) { + s1 = peg$c661; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c662); } + } + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseDoubleStringChar(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseDoubleStringChar(); + } + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s3 = peg$c661; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c662); } + } + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c663(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c660); } + } + + return s0; + } + + function peg$parseDoubleStringChar() { + var s0, s1, s2; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 92) { + s1 = peg$c664; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c665); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseCharEscapeSequence(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c666(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$currPos; + peg$silentFails++; + if (input.charCodeAt(peg$currPos) === 34) { + s2 = peg$c661; + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c662); } + } + peg$silentFails--; + if (s2 === peg$FAILED) { + s1 = void 0; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + s2 = peg$parseSourceChar(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c667(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + return s0; + } + + function peg$parseCharEscapeSequence() { + var s0; + + s0 = peg$parseSingleEscapeChar(); + if (s0 === peg$FAILED) { + s0 = peg$parseNonEscapeChar(); + } + + return s0; + } + + function peg$parseSingleEscapeChar() { + var s0, s1; + + if (input.charCodeAt(peg$currPos) === 39) { + s0 = peg$c668; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c669); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 34) { + s0 = peg$c661; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c662); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 92) { + s0 = peg$c664; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c665); } + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 98) { + s1 = peg$c670; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c671); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c672(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 102) { + s1 = peg$c673; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c674); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c675(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 110) { + s1 = peg$c676; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c677); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c678(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 114) { + s1 = peg$c679; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c680); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c681(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 116) { + s1 = peg$c682; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c683); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c684(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 118) { + s1 = peg$c685; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c686); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c687(); + } + s0 = s1; + } + } + } + } + } + } + } + } + + return s0; + } + + function peg$parseNonEscapeChar() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = peg$currPos; + peg$silentFails++; + s2 = peg$parseEscapeChar(); + if (s2 === peg$FAILED) { + s2 = peg$parseLineTerminator(); + } + peg$silentFails--; + if (s2 === peg$FAILED) { + s1 = void 0; + } else { + peg$currPos = s1; + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + s2 = peg$parseSourceChar(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c667(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseEscapeChar() { + var s0; + + s0 = peg$parseSingleEscapeChar(); + if (s0 === peg$FAILED) { + s0 = peg$parseDecimalDigit(); + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 120) { + s0 = peg$c688; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c689); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 117) { + s0 = peg$c690; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c691); } + } + } + } + } + + return s0; + } + + function peg$parseBoolDecl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c653) { + s1 = peg$c653; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c654); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c692) { + s3 = peg$c692; + peg$currPos += 4; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c693); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parseVarName(); + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s7 = peg$c657; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c658); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + s9 = peg$parseBoolLiteral(); + if (s9 !== peg$FAILED) { + s10 = peg$parse_(); + if (s10 !== peg$FAILED) { + s11 = peg$parseStatementEnd(); + if (s11 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c694(s5, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseBoolLiteral() { + var s0, s1; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 4) === peg$c695) { + s1 = peg$c695; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c696); } + } + if (s1 === peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c697) { + s1 = peg$c697; + peg$currPos += 5; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c698); } + } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c699(); + } + s0 = s1; + + return s0; + } + + function peg$parseNullDecl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c653) { + s1 = peg$c653; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c654); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c700) { + s3 = peg$c700; + peg$currPos += 4; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c701); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parseVarName(); + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s7 = peg$c657; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c658); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + s9 = peg$parseNullLiteral(); + if (s9 !== peg$FAILED) { + s10 = peg$parse_(); + if (s10 !== peg$FAILED) { + s11 = peg$parseStatementEnd(); + if (s11 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c702(s5, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseNullLiteral() { + var s0, s1; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 4) === peg$c700) { + s1 = peg$c700; + peg$currPos += 4; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c701); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c592(); + } + s0 = s1; + + return s0; + } + + function peg$parseMoneyDecl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c653) { + s1 = peg$c653; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c654); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c321) { + s3 = peg$c321; + peg$currPos += 5; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c322); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parseVarName(); + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s7 = peg$c657; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c658); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + s9 = peg$parseMoneyLiteral(); + if (s9 !== peg$FAILED) { + s10 = peg$parse_(); + if (s10 !== peg$FAILED) { + s11 = peg$parseStatementEnd(); + if (s11 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c703(s5, s9); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseMoneyLiteral() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = peg$parseFloatLiteral(); + if (s1 !== peg$FAILED) { + s2 = peg$parseMoneyMaker(); + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c704(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseFloatLiteral() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + s1 = peg$parseIntLiteral(); + if (s1 !== peg$FAILED) { + s2 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 46) { + s3 = peg$c705; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c706); } + } + if (s3 !== peg$FAILED) { + s4 = []; + s5 = peg$parseDecimalDigit(); + if (s5 !== peg$FAILED) { + while (s5 !== peg$FAILED) { + s4.push(s5); + s5 = peg$parseDecimalDigit(); + } + } else { + s4 = peg$FAILED; + } + if (s4 !== peg$FAILED) { + s3 = [s3, s4]; + s2 = s3; + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + } else { + peg$currPos = s2; + s2 = peg$FAILED; + } + if (s2 === peg$FAILED) { + s2 = null; + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c707(); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseMoneyMaker() { + var s0, s1; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 107) { + s1 = peg$c708; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c709); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c710(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 77) { + s1 = peg$c711; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c712); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c713(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 66) { + s1 = peg$c714; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c715); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c716(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.substr(peg$currPos, 2) === peg$c717) { + s1 = peg$c717; + peg$currPos += 2; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c718); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c716(); + } + s0 = s1; + if (s0 === peg$FAILED) { + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 84) { + s1 = peg$c719; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c720); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c721(); + } + s0 = s1; + } + } + } + } + + return s0; + } + + function peg$parseIntLiteral() { + var s0, s1, s2, s3; + + if (input.charCodeAt(peg$currPos) === 48) { + s0 = peg$c722; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c723); } + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseNonZeroDigit(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$parseDecimalDigit(); + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$parseDecimalDigit(); + } + if (s2 !== peg$FAILED) { + s1 = [s1, s2]; + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + + return s0; + } + + function peg$parseDecimalDigit() { + var s0; + + if (peg$c724.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c725); } + } + + return s0; + } + + function peg$parseNonZeroDigit() { + var s0; + + if (peg$c726.test(input.charAt(peg$currPos))) { + s0 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c727); } + } + + return s0; + } + + function peg$parseMoneyListDecl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c653) { + s1 = peg$c653; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c654); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c285) { + s3 = peg$c285; + peg$currPos += 4; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c286); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.substr(peg$currPos, 5) === peg$c321) { + s5 = peg$c321; + peg$currPos += 5; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c322); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseVarName(); + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s9 = peg$c657; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c658); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse_(); + if (s10 !== peg$FAILED) { + s11 = peg$parseMoneyListLiteral(); + if (s11 !== peg$FAILED) { + s12 = peg$parse_(); + if (s12 !== peg$FAILED) { + s13 = peg$parseStatementEnd(); + if (s13 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c728(s7, s11); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseMoneyListLiteral() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c729; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c730); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseMoneyElementList(); + if (s3 === peg$FAILED) { + s3 = null; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c731; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c732); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c733(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseMoneyElementList() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = peg$parseMoneyLiteral(); + if (s2 !== peg$FAILED) { + peg$savedPos = s1; + s2 = peg$c734(s2); + } + s1 = s2; + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseMoneyLiteral(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseMoneyLiteral(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c738(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseStringListDecl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c653) { + s1 = peg$c653; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c654); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c285) { + s3 = peg$c285; + peg$currPos += 4; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c286); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.substr(peg$currPos, 6) === peg$c655) { + s5 = peg$c655; + peg$currPos += 6; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c656); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseVarName(); + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s9 = peg$c657; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c658); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse_(); + if (s10 !== peg$FAILED) { + s11 = peg$parseStringListLiteral(); + if (s11 !== peg$FAILED) { + s12 = peg$parse_(); + if (s12 !== peg$FAILED) { + s13 = peg$parseStatementEnd(); + if (s13 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c739(s7, s11); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseStringListLiteral() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c729; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c730); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseStringElementList(); + if (s3 === peg$FAILED) { + s3 = null; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c731; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c732); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c733(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseStringElementList() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = peg$parseStringLiteral(); + if (s2 !== peg$FAILED) { + peg$savedPos = s1; + s2 = peg$c734(s2); + } + s1 = s2; + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseStringLiteral(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseStringLiteral(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c738(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseBoolListDecl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c653) { + s1 = peg$c653; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c654); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c285) { + s3 = peg$c285; + peg$currPos += 4; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c286); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c692) { + s5 = peg$c692; + peg$currPos += 4; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c693); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseVarName(); + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s9 = peg$c657; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c658); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse_(); + if (s10 !== peg$FAILED) { + s11 = peg$parseBoolListLiteral(); + if (s11 !== peg$FAILED) { + s12 = peg$parse_(); + if (s12 !== peg$FAILED) { + s13 = peg$parseStatementEnd(); + if (s13 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c740(s7, s11); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseBoolListLiteral() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c729; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c730); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseBoolElementList(); + if (s3 === peg$FAILED) { + s3 = null; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c731; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c732); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c733(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseBoolElementList() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = peg$parseBoolLiteral(); + if (s2 !== peg$FAILED) { + peg$savedPos = s1; + s2 = peg$c734(s2); + } + s1 = s2; + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseBoolLiteral(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseBoolLiteral(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c738(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseNullListDecl() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 3) === peg$c653) { + s1 = peg$c653; + peg$currPos += 3; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c654); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c285) { + s3 = peg$c285; + peg$currPos += 4; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c286); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.substr(peg$currPos, 4) === peg$c700) { + s5 = peg$c700; + peg$currPos += 4; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c701); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseVarName(); + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 61) { + s9 = peg$c657; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c658); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse_(); + if (s10 !== peg$FAILED) { + s11 = peg$parseNullListLiteral(); + if (s11 !== peg$FAILED) { + s12 = peg$parse_(); + if (s12 !== peg$FAILED) { + s13 = peg$parseStatementEnd(); + if (s13 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c741(s7, s11); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseNullListLiteral() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 91) { + s1 = peg$c729; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c730); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseNullElementList(); + if (s3 === peg$FAILED) { + s3 = null; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 93) { + s5 = peg$c731; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c732); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c733(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseNullElementList() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = peg$parseNullLiteral(); + if (s2 !== peg$FAILED) { + peg$savedPos = s1; + s2 = peg$c734(s2); + } + s1 = s2; + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseNullLiteral(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseNullLiteral(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c738(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseIf() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21; + + peg$silentFails++; + s0 = peg$currPos; + s1 = peg$parseIfToken(); + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 40) { + s3 = peg$c743; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c744); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + s5 = peg$parseBinary(); + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s7 = peg$c745; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c746); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse__(); + if (s8 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s9 = peg$c8; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + s11 = peg$parseStatements(); + if (s11 !== peg$FAILED) { + s12 = peg$parse__(); + if (s12 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s13 = peg$c10; + peg$currPos++; + } else { + s13 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c11); } + } + if (s13 !== peg$FAILED) { + s14 = peg$parse__(); + if (s14 !== peg$FAILED) { + s15 = peg$parseElseToken(); + if (s15 !== peg$FAILED) { + s16 = peg$parse__(); + if (s16 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s17 = peg$c8; + peg$currPos++; + } else { + s17 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + if (s17 !== peg$FAILED) { + s18 = peg$parse__(); + if (s18 !== peg$FAILED) { + s19 = peg$parseStatements(); + if (s19 !== peg$FAILED) { + s20 = peg$parse__(); + if (s20 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s21 = peg$c10; + peg$currPos++; + } else { + s21 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c11); } + } + if (s21 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c747(s5, s11, s19); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseIfToken(); + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 40) { + s3 = peg$c743; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c744); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + s5 = peg$parseBinary(); + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s7 = peg$c745; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c746); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse__(); + if (s8 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s9 = peg$c8; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + s11 = peg$parseStatements(); + if (s11 !== peg$FAILED) { + s12 = peg$parse__(); + if (s12 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s13 = peg$c10; + peg$currPos++; + } else { + s13 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c11); } + } + if (s13 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c748(s5, s11); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c742); } + } + + return s0; + } + + function peg$parseIfToken() { + var s0; + + if (input.substr(peg$currPos, 2) === peg$c749) { + s0 = peg$c749; + peg$currPos += 2; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c750); } + } + + return s0; + } + + function peg$parseElseToken() { + var s0; + + if (input.substr(peg$currPos, 4) === peg$c751) { + s0 = peg$c751; + peg$currPos += 4; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c752); } + } + + return s0; + } + + function peg$parseWhile() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13; + + peg$silentFails++; + s0 = peg$currPos; + s1 = peg$parseWhileToken(); + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 40) { + s3 = peg$c743; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c744); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + s5 = peg$parseBinary(); + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s7 = peg$c745; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c746); } + } + if (s7 !== peg$FAILED) { + s8 = peg$parse__(); + if (s8 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 123) { + s9 = peg$c8; + peg$currPos++; + } else { + s9 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c9); } + } + if (s9 !== peg$FAILED) { + s10 = peg$parse__(); + if (s10 !== peg$FAILED) { + s11 = peg$parseStatements(); + if (s11 !== peg$FAILED) { + s12 = peg$parse__(); + if (s12 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 125) { + s13 = peg$c10; + peg$currPos++; + } else { + s13 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c11); } + } + if (s13 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c754(s5, s11); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c753); } + } + + return s0; + } + + function peg$parseWhileToken() { + var s0; + + if (input.substr(peg$currPos, 5) === peg$c755) { + s0 = peg$c755; + peg$currPos += 5; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c756); } + } + + return s0; + } + + function peg$parseBinary() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$parseBinaryUnit(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parseOp(); + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseBinaryUnit(); + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parseOp(); + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseBinaryUnit(); + if (s7 !== peg$FAILED) { + s4 = [s4, s5, s6, s7]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c757(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseBinaryUnit() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + if (input.charCodeAt(peg$currPos) === 40) { + s1 = peg$c743; + peg$currPos++; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c744); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseBinary(); + if (s3 !== peg$FAILED) { + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s5 = peg$c745; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c746); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c758(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + if (s0 === peg$FAILED) { + s0 = peg$parseUnary(); + } + + return s0; + } + + function peg$parseUnary() { + var s0, s1, s2, s3; + + s0 = peg$parseCall(); + if (s0 === peg$FAILED) { + s0 = peg$parseOperable(); + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = peg$parseUnaryOp(); + if (s1 !== peg$FAILED) { + s2 = peg$parse__(); + if (s2 !== peg$FAILED) { + s3 = peg$parseUnary(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c759(s1, s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } + } + + return s0; + } + + function peg$parseUnaryOp() { + var s0; + + if (input.charCodeAt(peg$currPos) === 33) { + s0 = peg$c760; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c761); } + } + + return s0; + } + + function peg$parseMathOp() { + var s0; + + if (input.charCodeAt(peg$currPos) === 42) { + s0 = peg$c762; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c763); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 47) { + s0 = peg$c764; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c765); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 37) { + s0 = peg$c766; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c767); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 43) { + s0 = peg$c768; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c769); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 45) { + s0 = peg$c770; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c771); } + } + } + } + } + } + + return s0; + } + + function peg$parseRelOp() { + var s0; + + if (input.substr(peg$currPos, 2) === peg$c772) { + s0 = peg$c772; + peg$currPos += 2; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c773); } + } + if (s0 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c774) { + s0 = peg$c774; + peg$currPos += 2; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c775); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 60) { + s0 = peg$c776; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c777); } + } + if (s0 === peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 62) { + s0 = peg$c778; + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c779); } + } + } + } + } + + return s0; + } + + function peg$parseEqOp() { + var s0; + + if (input.substr(peg$currPos, 2) === peg$c780) { + s0 = peg$c780; + peg$currPos += 2; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c781); } + } + if (s0 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c782) { + s0 = peg$c782; + peg$currPos += 2; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c783); } + } + } + + return s0; + } + + function peg$parseLogOp() { + var s0; + + if (input.substr(peg$currPos, 2) === peg$c784) { + s0 = peg$c784; + peg$currPos += 2; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c785); } + } + if (s0 === peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c786) { + s0 = peg$c786; + peg$currPos += 2; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c787); } + } + } + + return s0; + } + + function peg$parseOp() { + var s0; + + s0 = peg$parseMathOp(); + if (s0 === peg$FAILED) { + s0 = peg$parseRelOp(); + if (s0 === peg$FAILED) { + s0 = peg$parseEqOp(); + if (s0 === peg$FAILED) { + s0 = peg$parseLogOp(); + } + } + } + + return s0; + } + + function peg$parseOperable() { + var s0, s1; + + s0 = peg$currPos; + s1 = peg$parseVarName(); + if (s1 === peg$FAILED) { + s1 = peg$parseBoolLiteral(); + if (s1 === peg$FAILED) { + s1 = peg$parseMoneyLiteral(); + if (s1 === peg$FAILED) { + s1 = peg$parseStringLiteral(); + if (s1 === peg$FAILED) { + s1 = peg$parseNullLiteral(); + } + } + } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c788(s1); + } + s0 = s1; + + return s0; + } + + function peg$parseHeaderInstructions() { + var s0, s1, s2, s3, s4, s5; + + s0 = peg$currPos; + s1 = peg$parseImport(); + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + s5 = peg$parseImport(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + s5 = peg$parseImport(); + if (s5 !== peg$FAILED) { + s4 = [s4, s5]; + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c18(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseLib() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + if (peg$c789.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c790); } + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + if (peg$c789.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c790); } + } + } + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c791(); + } + s0 = s1; + + return s0; + } + + function peg$parseLibrary() { + var s0, s1, s2; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 15) === peg$c792) { + s1 = peg$c792; + peg$currPos += 15; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c793); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parseLib(); + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c794(s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseImport() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; + + peg$silentFails++; + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c796) { + s1 = peg$c796; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c797); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.substr(peg$currPos, 10) === peg$c798) { + s3 = peg$c798; + peg$currPos += 10; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c799); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.substr(peg$currPos, 7) === peg$c800) { + s5 = peg$c800; + peg$currPos += 7; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c801); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseLibrary(); + if (s7 !== peg$FAILED) { + s8 = peg$parse_(); + if (s8 !== peg$FAILED) { + s9 = peg$parseStatementEnd(); + if (s9 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c802(s7); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + peg$silentFails--; + if (s0 === peg$FAILED) { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c795); } + } + + return s0; + } + + function peg$parseCallStatement() { + var s0, s1, s2, s3; + + s0 = peg$currPos; + s1 = peg$parseCall(); + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseStatementEnd(); + if (s3 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c803(s1); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseCall() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$parseCallee(); + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 40) { + s3 = peg$c743; + peg$currPos++; + } else { + s3 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c744); } + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + s5 = peg$parseArguments(); + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 41) { + s7 = peg$c745; + peg$currPos++; + } else { + s7 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c746); } + } + if (s7 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c804(s1, s5); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseCallee() { + var s0, s1, s2; + + s0 = peg$currPos; + s1 = []; + if (peg$c805.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c806); } + } + if (s2 !== peg$FAILED) { + while (s2 !== peg$FAILED) { + s1.push(s2); + if (peg$c805.test(input.charAt(peg$currPos))) { + s2 = input.charAt(peg$currPos); + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c806); } + } + } + } else { + s1 = peg$FAILED; + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c667(); + } + s0 = s1; + + return s0; + } + + function peg$parseArguments() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + s1 = peg$currPos; + s2 = peg$parseArgument(); + if (s2 !== peg$FAILED) { + peg$savedPos = s1; + s2 = peg$c734(s2); + } + s1 = s2; + if (s1 !== peg$FAILED) { + s2 = []; + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseArgument(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + while (s3 !== peg$FAILED) { + s2.push(s3); + s3 = peg$currPos; + s4 = peg$parse__(); + if (s4 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 44) { + s5 = peg$c735; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c736); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse__(); + if (s6 !== peg$FAILED) { + s7 = peg$parseArgument(); + if (s7 !== peg$FAILED) { + peg$savedPos = s3; + s4 = peg$c737(s1, s7); + s3 = s4; + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } else { + peg$currPos = s3; + s3 = peg$FAILED; + } + } + if (s2 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c738(s1, s2); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseArgument() { + var s0; + + s0 = peg$parseStringLiteral(); + if (s0 === peg$FAILED) { + s0 = peg$parseBoolLiteral(); + if (s0 === peg$FAILED) { + s0 = peg$parseNullLiteral(); + if (s0 === peg$FAILED) { + s0 = peg$parseMoneyLiteral(); + if (s0 === peg$FAILED) { + s0 = peg$parseVarName(); + } + } + } + } + + return s0; + } + + function peg$parseMutate() { + var s0, s1, s2, s3, s4, s5, s6, s7; + + s0 = peg$currPos; + if (input.substr(peg$currPos, 6) === peg$c807) { + s1 = peg$c807; + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c808); } + } + if (s1 !== peg$FAILED) { + s2 = peg$parse_(); + if (s2 !== peg$FAILED) { + s3 = peg$parseVarName(); + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (s4 !== peg$FAILED) { + if (input.substr(peg$currPos, 2) === peg$c809) { + s5 = peg$c809; + peg$currPos += 2; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$c810); } + } + if (s5 !== peg$FAILED) { + s6 = peg$parse_(); + if (s6 !== peg$FAILED) { + s7 = peg$parseStatementEnd(); + if (s7 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c811(s3); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + + global.includedDLs = {} + + const CompileError = require('./CompileError') + const dls = require('./dls') + + + + const call = (callee, args, location) => { + if(global.includedDLs[callee]) { + return { type: "call", callee, args } + } + + throw new CompileError({ + message: `Invalid call '${callee}' at ${JSON.stringify(location)}`, + type: 'invalid_call', + value: callee, + location + }) + } + + const lib = (libName, location) => { + if(dls[libName]) { + const {fn, type} = require(`./disruptiveLibs/${dls[libName]}`) + + global.includedDLs[fn] = type + return dls[libName] + } + + throw new CompileError({ + message: `Invalid lib ${libName} at ${JSON.stringify(location)}`, + type: 'invalid_lib', + value: libName, + location + }) + } + + const comment = (commentType, value) => { + return { type: 'comment', commentType, value: value.map(i => i.join('')).join('').trim('') } + } + + const v = (varType, name, value) => { + return { type: 'var', varType, name: name.value, value } + } + + const map = (fn, array) => { + var result = new Array(array.length), i + + for (i = 0; i < array.length; i++) + result[i] = fn(array[i]) + + return result + } + + const list = (head, tail, index) => + [head].concat(map((item) => item[index], tail)) + + const reduce = (fn) => (init, array) => { + var result = init, i; + + for (i = 0; i < array.length; i++) + result = fn(result, array[i]) + + return result + } + + + const binary = reduce((result, element) => ({ + type: "binary", + operator: element[1], + left: result, + right: element[3] + })) + + + peg$result = peg$startRuleFunction(); + + if (peg$result !== peg$FAILED && peg$currPos === input.length) { + return peg$result; + } else { + if (peg$result !== peg$FAILED && peg$currPos < input.length) { + peg$fail(peg$endExpectation()); + } + + throw peg$buildStructuredError( + peg$maxFailExpected, + peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, + peg$maxFailPos < input.length + ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) + : peg$computeLocation(peg$maxFailPos, peg$maxFailPos) + ); + } +} + +module.exports = { + SyntaxError: peg$SyntaxError, + parse: peg$parse +}; diff --git a/node/enterprise.peg b/node/enterprise.peg new file mode 100644 index 0000000..5144002 --- /dev/null +++ b/node/enterprise.peg @@ -0,0 +1,413 @@ +/*© + This code is property of Enterprise™. +©*/ + +/* + * Enterprise™ Web3.0™ Grammar + */ + +{ + global.includedDLs = {} + + const CompileError = require('./CompileError') + const dls = require('./dls') + + + + const call = (callee, args, location) => { + if(global.includedDLs[callee]) { + return { type: "call", callee, args } + } + + throw new CompileError({ + message: `Invalid call '${callee}' at ${JSON.stringify(location)}`, + type: 'invalid_call', + value: callee, + location + }) + } + + const lib = (libName, location) => { + if(dls[libName]) { + const {fn, type} = require(`./disruptiveLibs/${dls[libName]}`) + + global.includedDLs[fn] = type + return dls[libName] + } + + throw new CompileError({ + message: `Invalid lib ${libName} at ${JSON.stringify(location)}`, + type: 'invalid_lib', + value: libName, + location + }) + } + + const comment = (commentType, value) => { + return { type: 'comment', commentType, value: value.map(i => i.join('')).join('').trim('') } + } + + const v = (varType, name, value) => { + return { type: 'var', varType, name: name.value, value } + } + + const map = (fn, array) => { + var result = new Array(array.length), i + + for (i = 0; i < array.length; i++) + result[i] = fn(array[i]) + + return result + } + + const list = (head, tail, index) => + [head].concat(map((item) => item[index], tail)) + + const reduce = (fn) => (init, array) => { + var result = init, i; + + for (i = 0; i < array.length; i++) + result = fn(result, array[i]) + + return result + } + + + const binary = reduce((result, element) => ({ + type: "binary", + operator: element[1], + left: result, + right: element[3] + })) +} + +// Main stuff + +Start = + copyright:CopyrightComment __ imports:HeaderInstructions __ disruptiveClass:DisruptiveClass __ + { return [ copyright, ...imports, disruptiveClass ] } + +DisruptiveClass "main class" = + "final disruptive class" __ "fdc" name:ClassName __ body:FDCBody + { return {type: "finalDisruptiveClass", name, body } } + +FDCBody "FDC body" = + '{' before:__ main:MainMethod after:__ '}' + { return [ ...before, main, ...after ] } + +ClassName = + words:(EnterpriseyWord+) + { return words.join('') } + +MainMethod "main method" = + "final immutable void main () {" __ body:Statements __ "}" + { return { type: "mainMethod", body } } + +Statements = + head:Statement tail:(__ Statement)* + { return list(head, tail, 1) } + +Statement = + Mutate / MoneyDecl / BoolDecl / StringDecl / NullDecl / MoneyListDecl / + StringListDecl / BoolListDecl / NullListDecl / If / While / CallStatement + +StatementEnd = ";;;" + +EnterpriseyWord = + word:("Accelerate" / "Acceleration" / "Account" / "Active" / "Activity" / "Agile" / "Agility" / "Ajax" / "Algo" / "Analytics" / "Analyze" / "Analyzer" / "Ballpark" / "Big" / "Bit" / "Bizmeth" / "Block" / "Boost" / "Bootstrap" / "Bootstraped" / "Brand" / "Business" / "Buzz" / "Car" / "Chain" / "Chart" / "Clickthrough" / "Cloud" / "Coin" / "Consumer" / "Content" / "Converge" / "Convergence" / "Coordinate" / "Coordinator" / "Complex" / "Convert" / "Convertion" / "Cost" / "Costs" / "Critical" / "Crypto" / "Currency" / "Customer" / "Cyber" / "Data" / "Deep" / "Delegate" / "Delegator" / "Design" / "Dev" / "Develop" / "Development" / "Digital" / "Disrupt" / "Disruptor" / "Disruptive" / "Diverse" / "Diversify" / "Diversifier" / "Diversity" / "Downsize" / "Downsized" / "Drive" / "Driven" / "Driver" / "Economy" / "Economic" / "Employ" / "Employee" / "Employer" / "Empowered" / "Engine" / "Enterprise" / "Entrepreneur" / "Entropy" / "Equity" / "Evolution" / "Evolve" / "Evolving" / "Eyeball" / "Eyeballs" / "Evaluation" / "Evaluator" / "Facade" / "Factory" / "Fast" / "Fee" / "Fizz" / "Flat" / "Founder" / "Founders" / "Framework" / "Free" / "Future" / "Fuzzy" / "Generate" / "Generation" / "Generator" / "Global" / "Gluten" / "Graph" / "Graphic" / "Group" / "Growth" / "Guideline" / "Guidelines" / "Hack" / "Hacking" / "Hardware" / "Holistic" / "Human" / "Hyperlocal" / "Immerse" / "Immersion" / "Immersive" / "Innovate" / "Innovative" / "Innovativity" / "Innovator" / "Internet" / "Intranet" / "Invest" / "Investment" / "Item" / "Iterator" / "Java" / "Lactose" / "Learn" / "Learning" / "Leverage" / "Line" / "List" / "Manage" / "Management" / "Manager" / "Market" / "Marketing" / "Media" / "Mega" / "Merchant" / "Message" / "Micro" / "Millenial" / "Mindshare" / "Mine" / "Mining" / "Mission" / "Module" / "Momentum" / "Money" / "Nano" / "Network" / "New" / "Next" / "Number" / "Nut" / "Object" / "Operation" / "Operator" / "Opportunity" / "Ops" / "Order" / "Organic" / "Paradigm" / "Passionate" / "Pattern" / "Person" / "Pie" / "Point" / "Policy" / "Portal" / "Product" / "Proof" / "Provable" / "Proxy" / "Resource" / "Return" / "Roadmap" / "Scalable" / "Science" / "Self" / "Service" / "Services" / "Share" / "Sharing" / "Simple" / "Skeuomorphic" / "Speed" / "Software" / "Solution" / "Square" / "Startup" / "Streamline" / "Streamlined" / "Super" / "Sustainability" / "Sustainable" / "Synergic" / "Synergy" / "System" / "Tax" / "Text" / "Time" / "Trade" / "Trans" / "Upsize" / "Upsizer" / "User" / "Viral" / "Virality" / "Viralize" / "Visual" / "Web" / "World" / + "Serverless" / "Server" / "Side" / "Render" / "Universal" / "Native" / "Mobile" / "Angular" / + "React" / "Component" / "Cache" / "Domain" / "Frontend" / "Full" / "Fullstack" / + "Git" / "Hub" / "Information" / "Script" / "Query" / "Minification" / "First" / + "Responsive" / "Ruby" / "Rails" / "Sitemap" / "Wireframe" / "Explorer" / "Netscape" / + "Firefox" / "Chrome" / "Safari" / "Android" / "Apple" / "Opera" / "Scroll" / + "Scrolling" / "Infinite" / "Landing" / "Hero" / "Mock" / "Mockup" / "Parallax" / + "Meta" / "Tag" / "Template" / "Wireframe" / "Vector" / "Metro" / "Above" / + "Fold" / "Grid" / "Canvas" / "Boilerplate" / "Modernizr" / "Blocking" / "Quirks" / + "Sockets" / "Socket" / "Storage" / "Worker" / "Things" / "Unicorn" / "Quantum") + { return word } + +// Spaces and comments stuff + +__ = values:(S / LineTerminatorSequence / Comment)* { return values.filter(Boolean) } + +_ = (S / LineTerminatorSequence)* + +S "whitespace" = ("\t" / "\v" / "\f" / " " / "\u00A0" / "\uFEFF") { return null } + +LineTerminatorSequence "EOL" = ("\n" / "\r\n" / "\r" / "\u2028" / "\u2029") { return null } + +Comment "comment" = + MultiLineComment / NDAComment / PassiveAggressiveComment / InterviewComment / + TimeToMarketComment / SingleLineComment + +MultiLineComment "multiline comment" = + "/*" value:(!"*/" SourceChar)* "*/" + { return comment("multiline", value) } + +CopyrightComment "copyright comment" = + "/©" value:((!"©/" SourceChar)*) "©/" + { return comment("copyright", value) } + +NDAComment "NDA comment" = + "/NDA" value:(!"NDA/" SourceChar)* "NDA/" + { return comment("nda", value) } + +PassiveAggressiveComment "passive agressive comment" = + "/?" value:(!"?/" SourceChar)* "?/" + { return comment("passiveAggressive", value) } + +InterviewComment "interview comment" = + "/¯\_(ツ)_/¯" value:(!"¯\_(ツ)_/¯/" SourceChar)* "¯\_(ツ)_/¯/" + { return comment("interview", value) } + +TimeToMarketComment "time to market comment" = + "/soon" value:(!"soon/" SourceChar)* "soon/" + { return comment("timeToMarket", value) } + +SingleLineComment "single line comment" = + "//" value:(!LineTerminator SourceChar)* + { return comment("single", value) } + +SourceChar = . + +LineTerminator = [\n\r\u2028\u2029] + +// Var stuff + +C = [a-zA-Z0-9] +VarName = [a-z] C? C? C? C? C? C? C? { return { type: "varName", value: text() } } + + +// String stuff + +StringDecl = + "var" _ "String" _ name:VarName _ "=" _ value:(StringLiteral / Call) _ StatementEnd + { return v("string", name, value) } + +StringLiteral "string" = + '"' chars:DoubleStringChar* '"' + { return chars.join("") } + +DoubleStringChar = + "\\" sequence:CharEscapeSequence { return sequence } + / !'"' SourceChar { return text() } + +CharEscapeSequence = SingleEscapeChar / NonEscapeChar + +SingleEscapeChar = + "'" + / '"' + / "\\" + / "b" { return "\b" } + / "f" { return "\f" } + / "n" { return "\n" } + / "r" { return "\r" } + / "t" { return "\t" } + / "v" { return "\x0B" } + +NonEscapeChar = !(EscapeChar / LineTerminator) SourceChar { return text() } + +EscapeChar = SingleEscapeChar / DecimalDigit / "x" / "u" + +// Bool stuff + +BoolDecl = + "var" _ "Bool" _ name:VarName _ "=" _ value:BoolLiteral _ StatementEnd + { return v("bool", name, value) } + +BoolLiteral = + ("True" / "False") + { return text() === "True" } + +// Null stuff + +NullDecl = + "var" _ "Null" _ name:VarName _ "=" _ value:NullLiteral _ StatementEnd + { return v("null", name, value) } + +NullLiteral = + "Null" + { return null } + +// Money stuff + +MoneyDecl = + "var" _ "Money" _ name:VarName _ "=" _ value:MoneyLiteral _ StatementEnd + { return v("money", name, value) } + +MoneyLiteral = + n:(FloatLiteral) mm:(MoneyMaker)? + { return parseFloat(n) * (mm ? mm : 1) } + +FloatLiteral = + IntLiteral ("." DecimalDigit+)? + { return parseFloat(text()) } + +MoneyMaker = + "k" { return 1000 } / + "M" { return 1000 * 1000 } / + "B" { return 1000 * 1000 * 1000 } / + "🦄" { return 1000 * 1000 * 1000 } / + "T" { return 1000 * 1000 * 1000 * 1000 } + +IntLiteral = "0" / NonZeroDigit DecimalDigit* + +// General numeric stuff + +DecimalDigit = [0-9] +NonZeroDigit = [1-9] + +// List Money stuff + +MoneyListDecl = + "var" _ "List" _ "Money" _ name:VarName _ "=" _ value:MoneyListLiteral _ StatementEnd + { return v("list:int", name, value) } + +MoneyListLiteral = + "[" __ elements:MoneyElementList? __ "]" + { return elements || [] } + +MoneyElementList = + head:( element:MoneyLiteral { return element } ) + tail:( __ "," __ element:MoneyLiteral { return element } )* + { return [head, ...tail] } + +// List String stuff + +StringListDecl = + "var" _ "List" _ "String" _ name:VarName _ "=" _ value:StringListLiteral _ StatementEnd + { return v("list:string", name, value) } + +StringListLiteral = + "[" __ elements:StringElementList? __ "]" + { return elements || [] } + +StringElementList = + head:( element:StringLiteral { return element } ) + tail:( __ "," __ element:StringLiteral { return element } )* + { return [head, ...tail] } + +// List Bool stuff + +BoolListDecl = + "var" _ "List" _ "Bool" _ name:VarName _ "=" _ value:BoolListLiteral _ StatementEnd + { return v("list:bool", name, value) } + +BoolListLiteral = + "[" __ elements:BoolElementList? __ "]" + { return elements || [] } + +BoolElementList = + head:( element:BoolLiteral { return element } ) + tail:( __ "," __ element:BoolLiteral { return element } )* + { return [head, ...tail] } + +// List Null stuff + +NullListDecl = + "var" _ "List" _ "Null" _ name:VarName _ "=" _ value:NullListLiteral _ StatementEnd + { return v("list:null", name, value) } + +NullListLiteral = + "[" __ elements:NullElementList? __ "]" + { return elements || [] } + +NullElementList = + head:( element:NullLiteral { return element } ) + tail:( __ "," __ element:NullLiteral { return element } )* + { return [head, ...tail] } + + +// Conditional stuff + +If "if" = + IfToken __ "(" __ test:Testable __ ")" __ "{" __ then:Statements __ "}" __ ElseToken __ "{" __ els:Statements __ "}" + { return {type: "if", test, then, else: els }} / + IfToken __ "(" __ test:Testable __ ")" __ "{" __ then:Statements __ "}" + { return {type: "if", test, then, else: [] } } + +IfToken = "if" +ElseToken = "else" + +// Iterator stuff + +While "while" = + WhileToken __ "(" __ test:Testable __ ")" __ "{" __ body:Statements __ "}" + { return {type: "while", test, body } } + +WhileToken = "while" + +// Testable stuff + +Testable = Binary + +Binary = + head:BinaryUnit tail:(_ Op _ BinaryUnit)* + { return binary(head, tail) } + +BinaryUnit = + "(" __ expr:Binary __ ")" { return Object.assign({ parens: true }, expr) } + / Unary + +Unary = + Call / Operable / operator:UnaryOp __ argument:Unary + { return {type: 'unary', operator, argument} } + +UnaryOp = "!" +MathOp = "*" / "/" / "%" / "+" / "-" +RelOp = "<=" / ">=" / "<" / ">" +EqOp = "==" / "!=" +LogOp = "&&" / "||" + +Op = MathOp / RelOp / EqOp / LogOp + +Operable = value:(VarName / BoolLiteral / MoneyLiteral / StringLiteral / NullLiteral) { return value } + +// Import stuff + +HeaderInstructions = + head:Import tail:(__ Import)* + { return list(head, tail, 1) } + + + +Lib = + [a-z.]i+ { return lib(text(), location()) } + + +Library = + "com.disruptive." lib:Lib + { return lib } + +Import "import" = + "import" _ "disruptive" _ "library" _ lib:Library _ StatementEnd + { return { type: 'import', lib } } + +// Call stuff + +CallStatement = + call:Call _ StatementEnd + { return call } + +Call = + callee:Callee _ '(' _ args:Arguments _ ')' + { + return call(callee, args, location()) + } + +Callee = [a-zA-Z]+ { return text() } + +// TODO: this makes 1 mandatory, but should not be +Arguments = + head:( element:Argument { return element } ) + tail:( __ "," __ element:Argument { return element } )* + { return [head, ...tail] } + +Argument = StringLiteral / BoolLiteral / NullLiteral / MoneyLiteral / VarName + +// Mutate stuff +// For time constraints, only implements inc in numbers + +Mutate = + "mutate" _ v:VarName _ "++" _ StatementEnd + { return { type: 'mutate', var:v.value, mutation: '++' }} diff --git "a/node/examples/fdcFizzBuzzDelegator.E\342\204\242" "b/node/examples/fdcFizzBuzzDelegator.E\342\204\242" new file mode 100644 index 0000000..dc1c566 --- /dev/null +++ "b/node/examples/fdcFizzBuzzDelegator.E\342\204\242" @@ -0,0 +1,34 @@ +/© + This code is property of Enterprise™. +©/ + +import disruptive library com.disruptive.IO.write.delegator.dlIOWriteDelegator;;; + +/NDA + This document is regulated by NDA 758-1. +NDA/ + +final disruptive class fdcFizzBuzzDelegator { + final immutable void main () { + var Money x = 0;;; + var String out = "";;; + + while (x < 1k) { + if(x % 5 == 0 && x % 3 == 0) { + write("Fizz Buzz");;; + } else { + if(x % 3 == 0) { + write("Fizz");;; + } else { + if(x % 5 == 0) { + write("Buzz");;; + } else { + write(x);;; + } + } + } + + mutate x++;;; + } + } +} diff --git "a/node/examples/fdcUnicornEvaluator.E\342\204\242" "b/node/examples/fdcUnicornEvaluator.E\342\204\242" new file mode 100644 index 0000000..38ae54e --- /dev/null +++ "b/node/examples/fdcUnicornEvaluator.E\342\204\242" @@ -0,0 +1,39 @@ +/© + This code is property of Enterprise™. +©/ + +import disruptive library com.disruptive.IO.read.delegator.dlIOReadDelegator;;; +import disruptive library com.disruptive.IO.write.delegator.dlIOWriteDelegator;;; +import disruptive library com.disruptive.String.contains.delegator.dlStringContainsDelegator;;; + +/NDA + This document is regulated by NDA 694-2. +NDA/ + +final disruptive class fdcUnicornEvaluator { + final immutable void main () { + var String answer = read("Tell us your idea: ");;; + + if(contains(answer, "Blockchain")) { + write("Disruptive. 🦄🦄🦄🦄🦄");;; + } else { + if(contains(answer, "Tinder")) { + write("Pain killer. 🦄🦄🦄🦄");;; + } else { + if(contains(answer, "Cloud")) { + write("Vitamin. 🦄🦄🦄");;; + } else { + if(contains(answer, "Facebook")) { + write("Will sleep on that. 🦄🦄");;; + } else { + if(contains(answer, "Chat")) { + write("Meh. 🦄");;; + } else { + write("Cockroach.");;; + } + } + } + } + } + } +} diff --git "a/node/fdcFizzBuzzDelegator.E\342\204\242" "b/node/fdcFizzBuzzDelegator.E\342\204\242" new file mode 100644 index 0000000..dc1c566 --- /dev/null +++ "b/node/fdcFizzBuzzDelegator.E\342\204\242" @@ -0,0 +1,34 @@ +/© + This code is property of Enterprise™. +©/ + +import disruptive library com.disruptive.IO.write.delegator.dlIOWriteDelegator;;; + +/NDA + This document is regulated by NDA 758-1. +NDA/ + +final disruptive class fdcFizzBuzzDelegator { + final immutable void main () { + var Money x = 0;;; + var String out = "";;; + + while (x < 1k) { + if(x % 5 == 0 && x % 3 == 0) { + write("Fizz Buzz");;; + } else { + if(x % 3 == 0) { + write("Fizz");;; + } else { + if(x % 5 == 0) { + write("Buzz");;; + } else { + write(x);;; + } + } + } + + mutate x++;;; + } + } +} diff --git a/node/package.json b/node/package.json new file mode 100644 index 0000000..869f5a8 --- /dev/null +++ b/node/package.json @@ -0,0 +1,27 @@ +{ + "name": "enterprise-web", + "version": "3.0.8-xp-tm", + "description": "Enterprise™ programming language for the Web3.0™", + "main": "index.js", + "author": "Juan Lulkin (https://medium.com/@joaomilho/)", + "license": "/© This code is property of Enterprise™. ©/", + "homepage": "https://github.com/joaomilho/Enterprise-Web3.0", + "repository": { + "type" : "git", + "url" : "https://github.com/joaomilho/Enterprise-Web3.0" + }, + "dependencies": { + "cli-highlight": "^2.1.4", + "colors": "^1.4.0", + "pegjs": "^0.10.0", + "yargs": "^15.3.1" + }, + "scripts": { + "test": "echo 'ITS OK DAMNIT'" + }, + "bin": { + "E™": "./E™", + "ETM": "./E™", + "enterprise-web": "./E™" + } +} diff --git a/node/yarn.lock b/node/yarn.lock new file mode 100644 index 0000000..cb47baf --- /dev/null +++ b/node/yarn.lock @@ -0,0 +1,268 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +cli-highlight@^2.1.4: + version "2.1.4" + resolved "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.4.tgz#098cb642cf17f42adc1c1145e07f960ec4d7522b" + integrity sha512-s7Zofobm20qriqDoU9sXptQx0t2R9PEgac92mENNm7xaEe1hn71IIMsXMK+6encA6WRCWWxIGQbipr3q998tlQ== + dependencies: + chalk "^3.0.0" + highlight.js "^9.6.0" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^5.1.1" + yargs "^15.0.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +highlight.js@^9.6.0: + version "9.18.1" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" + integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + +parse5-htmlparser2-tree-adapter@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-5.1.1.tgz#e8c743d4e92194d5293ecde2b08be31e67461cbc" + integrity sha512-CF+TKjXqoqyDwHqBhFQ+3l5t83xYi6fVT1tQNg+Ye0JRLnTxWvIroCjEp1A0k4lneHNBGnICUf0cfYVYGEazqw== + dependencies: + parse5 "^5.1.1" + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +pegjs@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + dependencies: + any-promise "^1.0.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yargs-parser@^18.1.1: + version "18.1.2" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" + integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.0.0, yargs@^15.3.1: + version "15.3.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1"