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"