UNPKG

558 kBJavaScriptView Raw
1/*
2 * Generated by PEG.js 0.10.0.
3 *
4 * http://pegjs.org/
5 */
6
7"use strict";
8
9function peg$subclass(child, parent) {
10 function ctor() { this.constructor = child; }
11 ctor.prototype = parent.prototype;
12 child.prototype = new ctor();
13}
14
15function peg$SyntaxError(message, expected, found, location) {
16 this.message = message;
17 this.expected = expected;
18 this.found = found;
19 this.location = location;
20 this.name = "SyntaxError";
21
22 if (typeof Error.captureStackTrace === "function") {
23 Error.captureStackTrace(this, peg$SyntaxError);
24 }
25}
26
27peg$subclass(peg$SyntaxError, Error);
28
29peg$SyntaxError.buildMessage = function(expected, found) {
30 var DESCRIBE_EXPECTATION_FNS = {
31 literal: function(expectation) {
32 return "\"" + literalEscape(expectation.text) + "\"";
33 },
34
35 "class": function(expectation) {
36 var escapedParts = "",
37 i;
38
39 for (i = 0; i < expectation.parts.length; i++) {
40 escapedParts += expectation.parts[i] instanceof Array
41 ? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1])
42 : classEscape(expectation.parts[i]);
43 }
44
45 return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]";
46 },
47
48 any: function(expectation) {
49 return "any character";
50 },
51
52 end: function(expectation) {
53 return "end of input";
54 },
55
56 other: function(expectation) {
57 return expectation.description;
58 }
59 };
60
61 function hex(ch) {
62 return ch.charCodeAt(0).toString(16).toUpperCase();
63 }
64
65 function literalEscape(s) {
66 return s
67 .replace(/\\/g, '\\\\')
68 .replace(/"/g, '\\"')
69 .replace(/\0/g, '\\0')
70 .replace(/\t/g, '\\t')
71 .replace(/\n/g, '\\n')
72 .replace(/\r/g, '\\r')
73 .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); })
74 .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); });
75 }
76
77 function classEscape(s) {
78 return s
79 .replace(/\\/g, '\\\\')
80 .replace(/\]/g, '\\]')
81 .replace(/\^/g, '\\^')
82 .replace(/-/g, '\\-')
83 .replace(/\0/g, '\\0')
84 .replace(/\t/g, '\\t')
85 .replace(/\n/g, '\\n')
86 .replace(/\r/g, '\\r')
87 .replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); })
88 .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); });
89 }
90
91 function describeExpectation(expectation) {
92 return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
93 }
94
95 function describeExpected(expected) {
96 var descriptions = new Array(expected.length),
97 i, j;
98
99 for (i = 0; i < expected.length; i++) {
100 descriptions[i] = describeExpectation(expected[i]);
101 }
102
103 descriptions.sort();
104
105 if (descriptions.length > 0) {
106 for (i = 1, j = 1; i < descriptions.length; i++) {
107 if (descriptions[i - 1] !== descriptions[i]) {
108 descriptions[j] = descriptions[i];
109 j++;
110 }
111 }
112 descriptions.length = j;
113 }
114
115 switch (descriptions.length) {
116 case 1:
117 return descriptions[0];
118
119 case 2:
120 return descriptions[0] + " or " + descriptions[1];
121
122 default:
123 return descriptions.slice(0, -1).join(", ")
124 + ", or "
125 + descriptions[descriptions.length - 1];
126 }
127 }
128
129 function describeFound(found) {
130 return found ? "\"" + literalEscape(found) + "\"" : "end of input";
131 }
132
133 return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
134};
135
136function peg$parse(input, options) {
137 options = options !== void 0 ? options : {};
138
139 var peg$FAILED = {},
140
141 peg$startRuleFunctions = { Start: peg$parseStart },
142 peg$startRuleFunction = peg$parseStart,
143
144 peg$c0 = function(program) { return program; },
145 peg$c1 = peg$anyExpectation(),
146 peg$c2 = peg$otherExpectation("whitespace"),
147 peg$c3 = "\t",
148 peg$c4 = peg$literalExpectation("\t", false),
149 peg$c5 = "\x0B",
150 peg$c6 = peg$literalExpectation("\x0B", false),
151 peg$c7 = "\f",
152 peg$c8 = peg$literalExpectation("\f", false),
153 peg$c9 = " ",
154 peg$c10 = peg$literalExpectation(" ", false),
155 peg$c11 = "\xA0",
156 peg$c12 = peg$literalExpectation("\xA0", false),
157 peg$c13 = "\uFEFF",
158 peg$c14 = peg$literalExpectation("\uFEFF", false),
159 peg$c15 = /^[\n\r\u2028\u2029]/,
160 peg$c16 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], false, false),
161 peg$c17 = peg$otherExpectation("end of line"),
162 peg$c18 = "\n",
163 peg$c19 = peg$literalExpectation("\n", false),
164 peg$c20 = "\r\n",
165 peg$c21 = peg$literalExpectation("\r\n", false),
166 peg$c22 = "\r",
167 peg$c23 = peg$literalExpectation("\r", false),
168 peg$c24 = "\u2028",
169 peg$c25 = peg$literalExpectation("\u2028", false),
170 peg$c26 = "\u2029",
171 peg$c27 = peg$literalExpectation("\u2029", false),
172 peg$c28 = peg$otherExpectation("comment"),
173 peg$c29 = "/*",
174 peg$c30 = peg$literalExpectation("/*", false),
175 peg$c31 = "*/",
176 peg$c32 = peg$literalExpectation("*/", false),
177 peg$c33 = "//",
178 peg$c34 = peg$literalExpectation("//", false),
179 peg$c35 = function(name) { return name; },
180 peg$c36 = peg$otherExpectation("identifier"),
181 peg$c37 = function(first, rest) {
182 return {
183 type: "Identifier",
184 name: first + rest.join("")
185 };
186 },
187 peg$c38 = "$",
188 peg$c39 = peg$literalExpectation("$", false),
189 peg$c40 = "_",
190 peg$c41 = peg$literalExpectation("_", false),
191 peg$c42 = "\\",
192 peg$c43 = peg$literalExpectation("\\", false),
193 peg$c44 = function(sequence) { return sequence; },
194 peg$c45 = "\u200C",
195 peg$c46 = peg$literalExpectation("\u200C", false),
196 peg$c47 = "\u200D",
197 peg$c48 = peg$literalExpectation("\u200D", false),
198 peg$c49 = function() { return { type: "Literal", value: null }; },
199 peg$c50 = function() { return { type: "Literal", value: true }; },
200 peg$c51 = function() { return { type: "Literal", value: false }; },
201 peg$c52 = peg$otherExpectation("number"),
202 peg$c53 = function(literal) {
203 return literal;
204 },
205 peg$c54 = ".",
206 peg$c55 = peg$literalExpectation(".", false),
207 peg$c56 = function() {
208 return { type: "Literal", value: parseFloat(text()) };
209 },
210 peg$c57 = /^[+\-]/,
211 peg$c58 = peg$classExpectation(["+", "-"], false, false),
212 peg$c59 = "0",
213 peg$c60 = peg$literalExpectation("0", false),
214 peg$c61 = /^[0-9]/,
215 peg$c62 = peg$classExpectation([["0", "9"]], false, false),
216 peg$c63 = /^[1-9]/,
217 peg$c64 = peg$classExpectation([["1", "9"]], false, false),
218 peg$c65 = "e",
219 peg$c66 = peg$literalExpectation("e", true),
220 peg$c67 = "0x",
221 peg$c68 = peg$literalExpectation("0x", true),
222 peg$c69 = function(digits) {
223 return { type: "Literal", value: parseInt(digits, 16) };
224 },
225 peg$c70 = /^[0-9a-f]/i,
226 peg$c71 = peg$classExpectation([["0", "9"], ["a", "f"]], false, true),
227 peg$c72 = peg$otherExpectation("string"),
228 peg$c73 = "\"",
229 peg$c74 = peg$literalExpectation("\"", false),
230 peg$c75 = function(chars) {
231 return { type: "Literal", value: chars.join("") };
232 },
233 peg$c76 = "'",
234 peg$c77 = peg$literalExpectation("'", false),
235 peg$c78 = function() { return text(); },
236 peg$c79 = function() { return ""; },
237 peg$c80 = function() { return "\0"; },
238 peg$c81 = "b",
239 peg$c82 = peg$literalExpectation("b", false),
240 peg$c83 = function() { return "\b"; },
241 peg$c84 = "f",
242 peg$c85 = peg$literalExpectation("f", false),
243 peg$c86 = function() { return "\f"; },
244 peg$c87 = "n",
245 peg$c88 = peg$literalExpectation("n", false),
246 peg$c89 = function() { return "\n"; },
247 peg$c90 = "r",
248 peg$c91 = peg$literalExpectation("r", false),
249 peg$c92 = function() { return "\r"; },
250 peg$c93 = "t",
251 peg$c94 = peg$literalExpectation("t", false),
252 peg$c95 = function() { return "\t"; },
253 peg$c96 = "v",
254 peg$c97 = peg$literalExpectation("v", false),
255 peg$c98 = function() { return "\x0B"; },
256 peg$c99 = "x",
257 peg$c100 = peg$literalExpectation("x", false),
258 peg$c101 = "u",
259 peg$c102 = peg$literalExpectation("u", false),
260 peg$c103 = function(digits) {
261 return String.fromCharCode(parseInt(digits, 16));
262 },
263 peg$c104 = peg$otherExpectation("regular expression"),
264 peg$c105 = "/",
265 peg$c106 = peg$literalExpectation("/", false),
266 peg$c107 = function(pattern, flags) {
267 var value;
268
269 try {
270 value = new RegExp(pattern, flags);
271 } catch (e) {
272 error(e.message);
273 }
274
275 return { type: "Literal", value: value };
276 },
277 peg$c108 = /^[*\\\/[]/,
278 peg$c109 = peg$classExpectation(["*", "\\", "/", "["], false, false),
279 peg$c110 = /^[\\\/[]/,
280 peg$c111 = peg$classExpectation(["\\", "/", "["], false, false),
281 peg$c112 = "[",
282 peg$c113 = peg$literalExpectation("[", false),
283 peg$c114 = "]",
284 peg$c115 = peg$literalExpectation("]", false),
285 peg$c116 = /^[\]\\]/,
286 peg$c117 = peg$classExpectation(["]", "\\"], false, false),
287 peg$c118 = /^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0561-\u0587\u13F8-\u13FD\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7B5\uA7B7\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/,
288 peg$c119 = peg$classExpectation([["a", "z"], "\xB5", ["\xDF", "\xF6"], ["\xF8", "\xFF"], "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0131", "\u0133", "\u0135", ["\u0137", "\u0138"], "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", ["\u0148", "\u0149"], "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u017A", "\u017C", ["\u017E", "\u0180"], "\u0183", "\u0185", "\u0188", ["\u018C", "\u018D"], "\u0192", "\u0195", ["\u0199", "\u019B"], "\u019E", "\u01A1", "\u01A3", "\u01A5", "\u01A8", ["\u01AA", "\u01AB"], "\u01AD", "\u01B0", "\u01B4", "\u01B6", ["\u01B9", "\u01BA"], ["\u01BD", "\u01BF"], "\u01C6", "\u01C9", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", ["\u01DC", "\u01DD"], "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", ["\u01EF", "\u01F0"], "\u01F3", "\u01F5", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u0221", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", ["\u0233", "\u0239"], "\u023C", ["\u023F", "\u0240"], "\u0242", "\u0247", "\u0249", "\u024B", "\u024D", ["\u024F", "\u0293"], ["\u0295", "\u02AF"], "\u0371", "\u0373", "\u0377", ["\u037B", "\u037D"], "\u0390", ["\u03AC", "\u03CE"], ["\u03D0", "\u03D1"], ["\u03D5", "\u03D7"], "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", ["\u03EF", "\u03F3"], "\u03F5", "\u03F8", ["\u03FB", "\u03FC"], ["\u0430", "\u045F"], "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", ["\u04CE", "\u04CF"], "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F7", "\u04F9", "\u04FB", "\u04FD", "\u04FF", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0511", "\u0513", "\u0515", "\u0517", "\u0519", "\u051B", "\u051D", "\u051F", "\u0521", "\u0523", "\u0525", "\u0527", "\u0529", "\u052B", "\u052D", "\u052F", ["\u0561", "\u0587"], ["\u13F8", "\u13FD"], ["\u1D00", "\u1D2B"], ["\u1D6B", "\u1D77"], ["\u1D79", "\u1D9A"], "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", ["\u1E95", "\u1E9D"], "\u1E9F", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1EFB", "\u1EFD", ["\u1EFF", "\u1F07"], ["\u1F10", "\u1F15"], ["\u1F20", "\u1F27"], ["\u1F30", "\u1F37"], ["\u1F40", "\u1F45"], ["\u1F50", "\u1F57"], ["\u1F60", "\u1F67"], ["\u1F70", "\u1F7D"], ["\u1F80", "\u1F87"], ["\u1F90", "\u1F97"], ["\u1FA0", "\u1FA7"], ["\u1FB0", "\u1FB4"], ["\u1FB6", "\u1FB7"], "\u1FBE", ["\u1FC2", "\u1FC4"], ["\u1FC6", "\u1FC7"], ["\u1FD0", "\u1FD3"], ["\u1FD6", "\u1FD7"], ["\u1FE0", "\u1FE7"], ["\u1FF2", "\u1FF4"], ["\u1FF6", "\u1FF7"], "\u210A", ["\u210E", "\u210F"], "\u2113", "\u212F", "\u2134", "\u2139", ["\u213C", "\u213D"], ["\u2146", "\u2149"], "\u214E", "\u2184", ["\u2C30", "\u2C5E"], "\u2C61", ["\u2C65", "\u2C66"], "\u2C68", "\u2C6A", "\u2C6C", "\u2C71", ["\u2C73", "\u2C74"], ["\u2C76", "\u2C7B"], "\u2C81", "\u2C83", "\u2C85", "\u2C87", "\u2C89", "\u2C8B", "\u2C8D", "\u2C8F", "\u2C91", "\u2C93", "\u2C95", "\u2C97", "\u2C99", "\u2C9B", "\u2C9D", "\u2C9F", "\u2CA1", "\u2CA3", "\u2CA5", "\u2CA7", "\u2CA9", "\u2CAB", "\u2CAD", "\u2CAF", "\u2CB1", "\u2CB3", "\u2CB5", "\u2CB7", "\u2CB9", "\u2CBB", "\u2CBD", "\u2CBF", "\u2CC1", "\u2CC3", "\u2CC5", "\u2CC7", "\u2CC9", "\u2CCB", "\u2CCD", "\u2CCF", "\u2CD1", "\u2CD3", "\u2CD5", "\u2CD7", "\u2CD9", "\u2CDB", "\u2CDD", "\u2CDF", "\u2CE1", ["\u2CE3", "\u2CE4"], "\u2CEC", "\u2CEE", "\u2CF3", ["\u2D00", "\u2D25"], "\u2D27", "\u2D2D", "\uA641", "\uA643", "\uA645", "\uA647", "\uA649", "\uA64B", "\uA64D", "\uA64F", "\uA651", "\uA653", "\uA655", "\uA657", "\uA659", "\uA65B", "\uA65D", "\uA65F", "\uA661", "\uA663", "\uA665", "\uA667", "\uA669", "\uA66B", "\uA66D", "\uA681", "\uA683", "\uA685", "\uA687", "\uA689", "\uA68B", "\uA68D", "\uA68F", "\uA691", "\uA693", "\uA695", "\uA697", "\uA699", "\uA69B", "\uA723", "\uA725", "\uA727", "\uA729", "\uA72B", "\uA72D", ["\uA72F", "\uA731"], "\uA733", "\uA735", "\uA737", "\uA739", "\uA73B", "\uA73D", "\uA73F", "\uA741", "\uA743", "\uA745", "\uA747", "\uA749", "\uA74B", "\uA74D", "\uA74F", "\uA751", "\uA753", "\uA755", "\uA757", "\uA759", "\uA75B", "\uA75D", "\uA75F", "\uA761", "\uA763", "\uA765", "\uA767", "\uA769", "\uA76B", "\uA76D", "\uA76F", ["\uA771", "\uA778"], "\uA77A", "\uA77C", "\uA77F", "\uA781", "\uA783", "\uA785", "\uA787", "\uA78C", "\uA78E", "\uA791", ["\uA793", "\uA795"], "\uA797", "\uA799", "\uA79B", "\uA79D", "\uA79F", "\uA7A1", "\uA7A3", "\uA7A5", "\uA7A7", "\uA7A9", "\uA7B5", "\uA7B7", "\uA7FA", ["\uAB30", "\uAB5A"], ["\uAB60", "\uAB65"], ["\uAB70", "\uABBF"], ["\uFB00", "\uFB06"], ["\uFB13", "\uFB17"], ["\uFF41", "\uFF5A"]], false, false),
289 peg$c120 = /^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/,
290 peg$c121 = peg$classExpectation([["\u02B0", "\u02C1"], ["\u02C6", "\u02D1"], ["\u02E0", "\u02E4"], "\u02EC", "\u02EE", "\u0374", "\u037A", "\u0559", "\u0640", ["\u06E5", "\u06E6"], ["\u07F4", "\u07F5"], "\u07FA", "\u081A", "\u0824", "\u0828", "\u0971", "\u0E46", "\u0EC6", "\u10FC", "\u17D7", "\u1843", "\u1AA7", ["\u1C78", "\u1C7D"], ["\u1D2C", "\u1D6A"], "\u1D78", ["\u1D9B", "\u1DBF"], "\u2071", "\u207F", ["\u2090", "\u209C"], ["\u2C7C", "\u2C7D"], "\u2D6F", "\u2E2F", "\u3005", ["\u3031", "\u3035"], "\u303B", ["\u309D", "\u309E"], ["\u30FC", "\u30FE"], "\uA015", ["\uA4F8", "\uA4FD"], "\uA60C", "\uA67F", ["\uA69C", "\uA69D"], ["\uA717", "\uA71F"], "\uA770", "\uA788", ["\uA7F8", "\uA7F9"], "\uA9CF", "\uA9E6", "\uAA70", "\uAADD", ["\uAAF3", "\uAAF4"], ["\uAB5C", "\uAB5F"], "\uFF70", ["\uFF9E", "\uFF9F"]], false, false),
291 peg$c122 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,
292 peg$c123 = peg$classExpectation(["\xAA", "\xBA", "\u01BB", ["\u01C0", "\u01C3"], "\u0294", ["\u05D0", "\u05EA"], ["\u05F0", "\u05F2"], ["\u0620", "\u063F"], ["\u0641", "\u064A"], ["\u066E", "\u066F"], ["\u0671", "\u06D3"], "\u06D5", ["\u06EE", "\u06EF"], ["\u06FA", "\u06FC"], "\u06FF", "\u0710", ["\u0712", "\u072F"], ["\u074D", "\u07A5"], "\u07B1", ["\u07CA", "\u07EA"], ["\u0800", "\u0815"], ["\u0840", "\u0858"], ["\u08A0", "\u08B4"], ["\u0904", "\u0939"], "\u093D", "\u0950", ["\u0958", "\u0961"], ["\u0972", "\u0980"], ["\u0985", "\u098C"], ["\u098F", "\u0990"], ["\u0993", "\u09A8"], ["\u09AA", "\u09B0"], "\u09B2", ["\u09B6", "\u09B9"], "\u09BD", "\u09CE", ["\u09DC", "\u09DD"], ["\u09DF", "\u09E1"], ["\u09F0", "\u09F1"], ["\u0A05", "\u0A0A"], ["\u0A0F", "\u0A10"], ["\u0A13", "\u0A28"], ["\u0A2A", "\u0A30"], ["\u0A32", "\u0A33"], ["\u0A35", "\u0A36"], ["\u0A38", "\u0A39"], ["\u0A59", "\u0A5C"], "\u0A5E", ["\u0A72", "\u0A74"], ["\u0A85", "\u0A8D"], ["\u0A8F", "\u0A91"], ["\u0A93", "\u0AA8"], ["\u0AAA", "\u0AB0"], ["\u0AB2", "\u0AB3"], ["\u0AB5", "\u0AB9"], "\u0ABD", "\u0AD0", ["\u0AE0", "\u0AE1"], "\u0AF9", ["\u0B05", "\u0B0C"], ["\u0B0F", "\u0B10"], ["\u0B13", "\u0B28"], ["\u0B2A", "\u0B30"], ["\u0B32", "\u0B33"], ["\u0B35", "\u0B39"], "\u0B3D", ["\u0B5C", "\u0B5D"], ["\u0B5F", "\u0B61"], "\u0B71", "\u0B83", ["\u0B85", "\u0B8A"], ["\u0B8E", "\u0B90"], ["\u0B92", "\u0B95"], ["\u0B99", "\u0B9A"], "\u0B9C", ["\u0B9E", "\u0B9F"], ["\u0BA3", "\u0BA4"], ["\u0BA8", "\u0BAA"], ["\u0BAE", "\u0BB9"], "\u0BD0", ["\u0C05", "\u0C0C"], ["\u0C0E", "\u0C10"], ["\u0C12", "\u0C28"], ["\u0C2A", "\u0C39"], "\u0C3D", ["\u0C58", "\u0C5A"], ["\u0C60", "\u0C61"], ["\u0C85", "\u0C8C"], ["\u0C8E", "\u0C90"], ["\u0C92", "\u0CA8"], ["\u0CAA", "\u0CB3"], ["\u0CB5", "\u0CB9"], "\u0CBD", "\u0CDE", ["\u0CE0", "\u0CE1"], ["\u0CF1", "\u0CF2"], ["\u0D05", "\u0D0C"], ["\u0D0E", "\u0D10"], ["\u0D12", "\u0D3A"], "\u0D3D", "\u0D4E", ["\u0D5F", "\u0D61"], ["\u0D7A", "\u0D7F"], ["\u0D85", "\u0D96"], ["\u0D9A", "\u0DB1"], ["\u0DB3", "\u0DBB"], "\u0DBD", ["\u0DC0", "\u0DC6"], ["\u0E01", "\u0E30"], ["\u0E32", "\u0E33"], ["\u0E40", "\u0E45"], ["\u0E81", "\u0E82"], "\u0E84", ["\u0E87", "\u0E88"], "\u0E8A", "\u0E8D", ["\u0E94", "\u0E97"], ["\u0E99", "\u0E9F"], ["\u0EA1", "\u0EA3"], "\u0EA5", "\u0EA7", ["\u0EAA", "\u0EAB"], ["\u0EAD", "\u0EB0"], ["\u0EB2", "\u0EB3"], "\u0EBD", ["\u0EC0", "\u0EC4"], ["\u0EDC", "\u0EDF"], "\u0F00", ["\u0F40", "\u0F47"], ["\u0F49", "\u0F6C"], ["\u0F88", "\u0F8C"], ["\u1000", "\u102A"], "\u103F", ["\u1050", "\u1055"], ["\u105A", "\u105D"], "\u1061", ["\u1065", "\u1066"], ["\u106E", "\u1070"], ["\u1075", "\u1081"], "\u108E", ["\u10D0", "\u10FA"], ["\u10FD", "\u1248"], ["\u124A", "\u124D"], ["\u1250", "\u1256"], "\u1258", ["\u125A", "\u125D"], ["\u1260", "\u1288"], ["\u128A", "\u128D"], ["\u1290", "\u12B0"], ["\u12B2", "\u12B5"], ["\u12B8", "\u12BE"], "\u12C0", ["\u12C2", "\u12C5"], ["\u12C8", "\u12D6"], ["\u12D8", "\u1310"], ["\u1312", "\u1315"], ["\u1318", "\u135A"], ["\u1380", "\u138F"], ["\u1401", "\u166C"], ["\u166F", "\u167F"], ["\u1681", "\u169A"], ["\u16A0", "\u16EA"], ["\u16F1", "\u16F8"], ["\u1700", "\u170C"], ["\u170E", "\u1711"], ["\u1720", "\u1731"], ["\u1740", "\u1751"], ["\u1760", "\u176C"], ["\u176E", "\u1770"], ["\u1780", "\u17B3"], "\u17DC", ["\u1820", "\u1842"], ["\u1844", "\u1877"], ["\u1880", "\u18A8"], "\u18AA", ["\u18B0", "\u18F5"], ["\u1900", "\u191E"], ["\u1950", "\u196D"], ["\u1970", "\u1974"], ["\u1980", "\u19AB"], ["\u19B0", "\u19C9"], ["\u1A00", "\u1A16"], ["\u1A20", "\u1A54"], ["\u1B05", "\u1B33"], ["\u1B45", "\u1B4B"], ["\u1B83", "\u1BA0"], ["\u1BAE", "\u1BAF"], ["\u1BBA", "\u1BE5"], ["\u1C00", "\u1C23"], ["\u1C4D", "\u1C4F"], ["\u1C5A", "\u1C77"], ["\u1CE9", "\u1CEC"], ["\u1CEE", "\u1CF1"], ["\u1CF5", "\u1CF6"], ["\u2135", "\u2138"], ["\u2D30", "\u2D67"], ["\u2D80", "\u2D96"], ["\u2DA0", "\u2DA6"], ["\u2DA8", "\u2DAE"], ["\u2DB0", "\u2DB6"], ["\u2DB8", "\u2DBE"], ["\u2DC0", "\u2DC6"], ["\u2DC8", "\u2DCE"], ["\u2DD0", "\u2DD6"], ["\u2DD8", "\u2DDE"], "\u3006", "\u303C", ["\u3041", "\u3096"], "\u309F", ["\u30A1", "\u30FA"], "\u30FF", ["\u3105", "\u312D"], ["\u3131", "\u318E"], ["\u31A0", "\u31BA"], ["\u31F0", "\u31FF"], ["\u3400", "\u4DB5"], ["\u4E00", "\u9FD5"], ["\uA000", "\uA014"], ["\uA016", "\uA48C"], ["\uA4D0", "\uA4F7"], ["\uA500", "\uA60B"], ["\uA610", "\uA61F"], ["\uA62A", "\uA62B"], "\uA66E", ["\uA6A0", "\uA6E5"], "\uA78F", "\uA7F7", ["\uA7FB", "\uA801"], ["\uA803", "\uA805"], ["\uA807", "\uA80A"], ["\uA80C", "\uA822"], ["\uA840", "\uA873"], ["\uA882", "\uA8B3"], ["\uA8F2", "\uA8F7"], "\uA8FB", "\uA8FD", ["\uA90A", "\uA925"], ["\uA930", "\uA946"], ["\uA960", "\uA97C"], ["\uA984", "\uA9B2"], ["\uA9E0", "\uA9E4"], ["\uA9E7", "\uA9EF"], ["\uA9FA", "\uA9FE"], ["\uAA00", "\uAA28"], ["\uAA40", "\uAA42"], ["\uAA44", "\uAA4B"], ["\uAA60", "\uAA6F"], ["\uAA71", "\uAA76"], "\uAA7A", ["\uAA7E", "\uAAAF"], "\uAAB1", ["\uAAB5", "\uAAB6"], ["\uAAB9", "\uAABD"], "\uAAC0", "\uAAC2", ["\uAADB", "\uAADC"], ["\uAAE0", "\uAAEA"], "\uAAF2", ["\uAB01", "\uAB06"], ["\uAB09", "\uAB0E"], ["\uAB11", "\uAB16"], ["\uAB20", "\uAB26"], ["\uAB28", "\uAB2E"], ["\uABC0", "\uABE2"], ["\uAC00", "\uD7A3"], ["\uD7B0", "\uD7C6"], ["\uD7CB", "\uD7FB"], ["\uF900", "\uFA6D"], ["\uFA70", "\uFAD9"], "\uFB1D", ["\uFB1F", "\uFB28"], ["\uFB2A", "\uFB36"], ["\uFB38", "\uFB3C"], "\uFB3E", ["\uFB40", "\uFB41"], ["\uFB43", "\uFB44"], ["\uFB46", "\uFBB1"], ["\uFBD3", "\uFD3D"], ["\uFD50", "\uFD8F"], ["\uFD92", "\uFDC7"], ["\uFDF0", "\uFDFB"], ["\uFE70", "\uFE74"], ["\uFE76", "\uFEFC"], ["\uFF66", "\uFF6F"], ["\uFF71", "\uFF9D"], ["\uFFA0", "\uFFBE"], ["\uFFC2", "\uFFC7"], ["\uFFCA", "\uFFCF"], ["\uFFD2", "\uFFD7"], ["\uFFDA", "\uFFDC"]], false, false),
293 peg$c124 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/,
294 peg$c125 = peg$classExpectation(["\u01C5", "\u01C8", "\u01CB", "\u01F2", ["\u1F88", "\u1F8F"], ["\u1F98", "\u1F9F"], ["\u1FA8", "\u1FAF"], "\u1FBC", "\u1FCC", "\u1FFC"], false, false),
295 peg$c126 = /^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AD\uA7B0-\uA7B4\uA7B6\uFF21-\uFF3A]/,
296 peg$c127 = peg$classExpectation([["A", "Z"], ["\xC0", "\xD6"], ["\xD8", "\xDE"], "\u0100", "\u0102", "\u0104", "\u0106", "\u0108", "\u010A", "\u010C", "\u010E", "\u0110", "\u0112", "\u0114", "\u0116", "\u0118", "\u011A", "\u011C", "\u011E", "\u0120", "\u0122", "\u0124", "\u0126", "\u0128", "\u012A", "\u012C", "\u012E", "\u0130", "\u0132", "\u0134", "\u0136", "\u0139", "\u013B", "\u013D", "\u013F", "\u0141", "\u0143", "\u0145", "\u0147", "\u014A", "\u014C", "\u014E", "\u0150", "\u0152", "\u0154", "\u0156", "\u0158", "\u015A", "\u015C", "\u015E", "\u0160", "\u0162", "\u0164", "\u0166", "\u0168", "\u016A", "\u016C", "\u016E", "\u0170", "\u0172", "\u0174", "\u0176", ["\u0178", "\u0179"], "\u017B", "\u017D", ["\u0181", "\u0182"], "\u0184", ["\u0186", "\u0187"], ["\u0189", "\u018B"], ["\u018E", "\u0191"], ["\u0193", "\u0194"], ["\u0196", "\u0198"], ["\u019C", "\u019D"], ["\u019F", "\u01A0"], "\u01A2", "\u01A4", ["\u01A6", "\u01A7"], "\u01A9", "\u01AC", ["\u01AE", "\u01AF"], ["\u01B1", "\u01B3"], "\u01B5", ["\u01B7", "\u01B8"], "\u01BC", "\u01C4", "\u01C7", "\u01CA", "\u01CD", "\u01CF", "\u01D1", "\u01D3", "\u01D5", "\u01D7", "\u01D9", "\u01DB", "\u01DE", "\u01E0", "\u01E2", "\u01E4", "\u01E6", "\u01E8", "\u01EA", "\u01EC", "\u01EE", "\u01F1", "\u01F4", ["\u01F6", "\u01F8"], "\u01FA", "\u01FC", "\u01FE", "\u0200", "\u0202", "\u0204", "\u0206", "\u0208", "\u020A", "\u020C", "\u020E", "\u0210", "\u0212", "\u0214", "\u0216", "\u0218", "\u021A", "\u021C", "\u021E", "\u0220", "\u0222", "\u0224", "\u0226", "\u0228", "\u022A", "\u022C", "\u022E", "\u0230", "\u0232", ["\u023A", "\u023B"], ["\u023D", "\u023E"], "\u0241", ["\u0243", "\u0246"], "\u0248", "\u024A", "\u024C", "\u024E", "\u0370", "\u0372", "\u0376", "\u037F", "\u0386", ["\u0388", "\u038A"], "\u038C", ["\u038E", "\u038F"], ["\u0391", "\u03A1"], ["\u03A3", "\u03AB"], "\u03CF", ["\u03D2", "\u03D4"], "\u03D8", "\u03DA", "\u03DC", "\u03DE", "\u03E0", "\u03E2", "\u03E4", "\u03E6", "\u03E8", "\u03EA", "\u03EC", "\u03EE", "\u03F4", "\u03F7", ["\u03F9", "\u03FA"], ["\u03FD", "\u042F"], "\u0460", "\u0462", "\u0464", "\u0466", "\u0468", "\u046A", "\u046C", "\u046E", "\u0470", "\u0472", "\u0474", "\u0476", "\u0478", "\u047A", "\u047C", "\u047E", "\u0480", "\u048A", "\u048C", "\u048E", "\u0490", "\u0492", "\u0494", "\u0496", "\u0498", "\u049A", "\u049C", "\u049E", "\u04A0", "\u04A2", "\u04A4", "\u04A6", "\u04A8", "\u04AA", "\u04AC", "\u04AE", "\u04B0", "\u04B2", "\u04B4", "\u04B6", "\u04B8", "\u04BA", "\u04BC", "\u04BE", ["\u04C0", "\u04C1"], "\u04C3", "\u04C5", "\u04C7", "\u04C9", "\u04CB", "\u04CD", "\u04D0", "\u04D2", "\u04D4", "\u04D6", "\u04D8", "\u04DA", "\u04DC", "\u04DE", "\u04E0", "\u04E2", "\u04E4", "\u04E6", "\u04E8", "\u04EA", "\u04EC", "\u04EE", "\u04F0", "\u04F2", "\u04F4", "\u04F6", "\u04F8", "\u04FA", "\u04FC", "\u04FE", "\u0500", "\u0502", "\u0504", "\u0506", "\u0508", "\u050A", "\u050C", "\u050E", "\u0510", "\u0512", "\u0514", "\u0516", "\u0518", "\u051A", "\u051C", "\u051E", "\u0520", "\u0522", "\u0524", "\u0526", "\u0528", "\u052A", "\u052C", "\u052E", ["\u0531", "\u0556"], ["\u10A0", "\u10C5"], "\u10C7", "\u10CD", ["\u13A0", "\u13F5"], "\u1E00", "\u1E02", "\u1E04", "\u1E06", "\u1E08", "\u1E0A", "\u1E0C", "\u1E0E", "\u1E10", "\u1E12", "\u1E14", "\u1E16", "\u1E18", "\u1E1A", "\u1E1C", "\u1E1E", "\u1E20", "\u1E22", "\u1E24", "\u1E26", "\u1E28", "\u1E2A", "\u1E2C", "\u1E2E", "\u1E30", "\u1E32", "\u1E34", "\u1E36", "\u1E38", "\u1E3A", "\u1E3C", "\u1E3E", "\u1E40", "\u1E42", "\u1E44", "\u1E46", "\u1E48", "\u1E4A", "\u1E4C", "\u1E4E", "\u1E50", "\u1E52", "\u1E54", "\u1E56", "\u1E58", "\u1E5A", "\u1E5C", "\u1E5E", "\u1E60", "\u1E62", "\u1E64", "\u1E66", "\u1E68", "\u1E6A", "\u1E6C", "\u1E6E", "\u1E70", "\u1E72", "\u1E74", "\u1E76", "\u1E78", "\u1E7A", "\u1E7C", "\u1E7E", "\u1E80", "\u1E82", "\u1E84", "\u1E86", "\u1E88", "\u1E8A", "\u1E8C", "\u1E8E", "\u1E90", "\u1E92", "\u1E94", "\u1E9E", "\u1EA0", "\u1EA2", "\u1EA4", "\u1EA6", "\u1EA8", "\u1EAA", "\u1EAC", "\u1EAE", "\u1EB0", "\u1EB2", "\u1EB4", "\u1EB6", "\u1EB8", "\u1EBA", "\u1EBC", "\u1EBE", "\u1EC0", "\u1EC2", "\u1EC4", "\u1EC6", "\u1EC8", "\u1ECA", "\u1ECC", "\u1ECE", "\u1ED0", "\u1ED2", "\u1ED4", "\u1ED6", "\u1ED8", "\u1EDA", "\u1EDC", "\u1EDE", "\u1EE0", "\u1EE2", "\u1EE4", "\u1EE6", "\u1EE8", "\u1EEA", "\u1EEC", "\u1EEE", "\u1EF0", "\u1EF2", "\u1EF4", "\u1EF6", "\u1EF8", "\u1EFA", "\u1EFC", "\u1EFE", ["\u1F08", "\u1F0F"], ["\u1F18", "\u1F1D"], ["\u1F28", "\u1F2F"], ["\u1F38", "\u1F3F"], ["\u1F48", "\u1F4D"], "\u1F59", "\u1F5B", "\u1F5D", "\u1F5F", ["\u1F68", "\u1F6F"], ["\u1FB8", "\u1FBB"], ["\u1FC8", "\u1FCB"], ["\u1FD8", "\u1FDB"], ["\u1FE8", "\u1FEC"], ["\u1FF8", "\u1FFB"], "\u2102", "\u2107", ["\u210B", "\u210D"], ["\u2110", "\u2112"], "\u2115", ["\u2119", "\u211D"], "\u2124", "\u2126", "\u2128", ["\u212A", "\u212D"], ["\u2130", "\u2133"], ["\u213E", "\u213F"], "\u2145", "\u2183", ["\u2C00", "\u2C2E"], "\u2C60", ["\u2C62", "\u2C64"], "\u2C67", "\u2C69", "\u2C6B", ["\u2C6D", "\u2C70"], "\u2C72", "\u2C75", ["\u2C7E", "\u2C80"], "\u2C82", "\u2C84", "\u2C86", "\u2C88", "\u2C8A", "\u2C8C", "\u2C8E", "\u2C90", "\u2C92", "\u2C94", "\u2C96", "\u2C98", "\u2C9A", "\u2C9C", "\u2C9E", "\u2CA0", "\u2CA2", "\u2CA4", "\u2CA6", "\u2CA8", "\u2CAA", "\u2CAC", "\u2CAE", "\u2CB0", "\u2CB2", "\u2CB4", "\u2CB6", "\u2CB8", "\u2CBA", "\u2CBC", "\u2CBE", "\u2CC0", "\u2CC2", "\u2CC4", "\u2CC6", "\u2CC8", "\u2CCA", "\u2CCC", "\u2CCE", "\u2CD0", "\u2CD2", "\u2CD4", "\u2CD6", "\u2CD8", "\u2CDA", "\u2CDC", "\u2CDE", "\u2CE0", "\u2CE2", "\u2CEB", "\u2CED", "\u2CF2", "\uA640", "\uA642", "\uA644", "\uA646", "\uA648", "\uA64A", "\uA64C", "\uA64E", "\uA650", "\uA652", "\uA654", "\uA656", "\uA658", "\uA65A", "\uA65C", "\uA65E", "\uA660", "\uA662", "\uA664", "\uA666", "\uA668", "\uA66A", "\uA66C", "\uA680", "\uA682", "\uA684", "\uA686", "\uA688", "\uA68A", "\uA68C", "\uA68E", "\uA690", "\uA692", "\uA694", "\uA696", "\uA698", "\uA69A", "\uA722", "\uA724", "\uA726", "\uA728", "\uA72A", "\uA72C", "\uA72E", "\uA732", "\uA734", "\uA736", "\uA738", "\uA73A", "\uA73C", "\uA73E", "\uA740", "\uA742", "\uA744", "\uA746", "\uA748", "\uA74A", "\uA74C", "\uA74E", "\uA750", "\uA752", "\uA754", "\uA756", "\uA758", "\uA75A", "\uA75C", "\uA75E", "\uA760", "\uA762", "\uA764", "\uA766", "\uA768", "\uA76A", "\uA76C", "\uA76E", "\uA779", "\uA77B", ["\uA77D", "\uA77E"], "\uA780", "\uA782", "\uA784", "\uA786", "\uA78B", "\uA78D", "\uA790", "\uA792", "\uA796", "\uA798", "\uA79A", "\uA79C", "\uA79E", "\uA7A0", "\uA7A2", "\uA7A4", "\uA7A6", "\uA7A8", ["\uA7AA", "\uA7AD"], ["\uA7B0", "\uA7B4"], "\uA7B6", ["\uFF21", "\uFF3A"]], false, false),
297 peg$c128 = /^[\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E-\u094F\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u1A19-\u1A1A\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2-\u1BF3\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2-\u1CF3\u302E-\u302F\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE-\uAAEF\uAAF5\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC]/,
298 peg$c129 = peg$classExpectation(["\u0903", "\u093B", ["\u093E", "\u0940"], ["\u0949", "\u094C"], ["\u094E", "\u094F"], ["\u0982", "\u0983"], ["\u09BE", "\u09C0"], ["\u09C7", "\u09C8"], ["\u09CB", "\u09CC"], "\u09D7", "\u0A03", ["\u0A3E", "\u0A40"], "\u0A83", ["\u0ABE", "\u0AC0"], "\u0AC9", ["\u0ACB", "\u0ACC"], ["\u0B02", "\u0B03"], "\u0B3E", "\u0B40", ["\u0B47", "\u0B48"], ["\u0B4B", "\u0B4C"], "\u0B57", ["\u0BBE", "\u0BBF"], ["\u0BC1", "\u0BC2"], ["\u0BC6", "\u0BC8"], ["\u0BCA", "\u0BCC"], "\u0BD7", ["\u0C01", "\u0C03"], ["\u0C41", "\u0C44"], ["\u0C82", "\u0C83"], "\u0CBE", ["\u0CC0", "\u0CC4"], ["\u0CC7", "\u0CC8"], ["\u0CCA", "\u0CCB"], ["\u0CD5", "\u0CD6"], ["\u0D02", "\u0D03"], ["\u0D3E", "\u0D40"], ["\u0D46", "\u0D48"], ["\u0D4A", "\u0D4C"], "\u0D57", ["\u0D82", "\u0D83"], ["\u0DCF", "\u0DD1"], ["\u0DD8", "\u0DDF"], ["\u0DF2", "\u0DF3"], ["\u0F3E", "\u0F3F"], "\u0F7F", ["\u102B", "\u102C"], "\u1031", "\u1038", ["\u103B", "\u103C"], ["\u1056", "\u1057"], ["\u1062", "\u1064"], ["\u1067", "\u106D"], ["\u1083", "\u1084"], ["\u1087", "\u108C"], "\u108F", ["\u109A", "\u109C"], "\u17B6", ["\u17BE", "\u17C5"], ["\u17C7", "\u17C8"], ["\u1923", "\u1926"], ["\u1929", "\u192B"], ["\u1930", "\u1931"], ["\u1933", "\u1938"], ["\u1A19", "\u1A1A"], "\u1A55", "\u1A57", "\u1A61", ["\u1A63", "\u1A64"], ["\u1A6D", "\u1A72"], "\u1B04", "\u1B35", "\u1B3B", ["\u1B3D", "\u1B41"], ["\u1B43", "\u1B44"], "\u1B82", "\u1BA1", ["\u1BA6", "\u1BA7"], "\u1BAA", "\u1BE7", ["\u1BEA", "\u1BEC"], "\u1BEE", ["\u1BF2", "\u1BF3"], ["\u1C24", "\u1C2B"], ["\u1C34", "\u1C35"], "\u1CE1", ["\u1CF2", "\u1CF3"], ["\u302E", "\u302F"], ["\uA823", "\uA824"], "\uA827", ["\uA880", "\uA881"], ["\uA8B4", "\uA8C3"], ["\uA952", "\uA953"], "\uA983", ["\uA9B4", "\uA9B5"], ["\uA9BA", "\uA9BB"], ["\uA9BD", "\uA9C0"], ["\uAA2F", "\uAA30"], ["\uAA33", "\uAA34"], "\uAA4D", "\uAA7B", "\uAA7D", "\uAAEB", ["\uAAEE", "\uAAEF"], "\uAAF5", ["\uABE3", "\uABE4"], ["\uABE6", "\uABE7"], ["\uABE9", "\uABEA"], "\uABEC"], false, false),
299 peg$c130 = /^[\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B4-\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8-\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8-\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099-\u309A\uA66F\uA674-\uA67D\uA69E-\uA69F\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uAAEC-\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/,
300 peg$c131 = peg$classExpectation([["\u0300", "\u036F"], ["\u0483", "\u0487"], ["\u0591", "\u05BD"], "\u05BF", ["\u05C1", "\u05C2"], ["\u05C4", "\u05C5"], "\u05C7", ["\u0610", "\u061A"], ["\u064B", "\u065F"], "\u0670", ["\u06D6", "\u06DC"], ["\u06DF", "\u06E4"], ["\u06E7", "\u06E8"], ["\u06EA", "\u06ED"], "\u0711", ["\u0730", "\u074A"], ["\u07A6", "\u07B0"], ["\u07EB", "\u07F3"], ["\u0816", "\u0819"], ["\u081B", "\u0823"], ["\u0825", "\u0827"], ["\u0829", "\u082D"], ["\u0859", "\u085B"], ["\u08E3", "\u0902"], "\u093A", "\u093C", ["\u0941", "\u0948"], "\u094D", ["\u0951", "\u0957"], ["\u0962", "\u0963"], "\u0981", "\u09BC", ["\u09C1", "\u09C4"], "\u09CD", ["\u09E2", "\u09E3"], ["\u0A01", "\u0A02"], "\u0A3C", ["\u0A41", "\u0A42"], ["\u0A47", "\u0A48"], ["\u0A4B", "\u0A4D"], "\u0A51", ["\u0A70", "\u0A71"], "\u0A75", ["\u0A81", "\u0A82"], "\u0ABC", ["\u0AC1", "\u0AC5"], ["\u0AC7", "\u0AC8"], "\u0ACD", ["\u0AE2", "\u0AE3"], "\u0B01", "\u0B3C", "\u0B3F", ["\u0B41", "\u0B44"], "\u0B4D", "\u0B56", ["\u0B62", "\u0B63"], "\u0B82", "\u0BC0", "\u0BCD", "\u0C00", ["\u0C3E", "\u0C40"], ["\u0C46", "\u0C48"], ["\u0C4A", "\u0C4D"], ["\u0C55", "\u0C56"], ["\u0C62", "\u0C63"], "\u0C81", "\u0CBC", "\u0CBF", "\u0CC6", ["\u0CCC", "\u0CCD"], ["\u0CE2", "\u0CE3"], "\u0D01", ["\u0D41", "\u0D44"], "\u0D4D", ["\u0D62", "\u0D63"], "\u0DCA", ["\u0DD2", "\u0DD4"], "\u0DD6", "\u0E31", ["\u0E34", "\u0E3A"], ["\u0E47", "\u0E4E"], "\u0EB1", ["\u0EB4", "\u0EB9"], ["\u0EBB", "\u0EBC"], ["\u0EC8", "\u0ECD"], ["\u0F18", "\u0F19"], "\u0F35", "\u0F37", "\u0F39", ["\u0F71", "\u0F7E"], ["\u0F80", "\u0F84"], ["\u0F86", "\u0F87"], ["\u0F8D", "\u0F97"], ["\u0F99", "\u0FBC"], "\u0FC6", ["\u102D", "\u1030"], ["\u1032", "\u1037"], ["\u1039", "\u103A"], ["\u103D", "\u103E"], ["\u1058", "\u1059"], ["\u105E", "\u1060"], ["\u1071", "\u1074"], "\u1082", ["\u1085", "\u1086"], "\u108D", "\u109D", ["\u135D", "\u135F"], ["\u1712", "\u1714"], ["\u1732", "\u1734"], ["\u1752", "\u1753"], ["\u1772", "\u1773"], ["\u17B4", "\u17B5"], ["\u17B7", "\u17BD"], "\u17C6", ["\u17C9", "\u17D3"], "\u17DD", ["\u180B", "\u180D"], "\u18A9", ["\u1920", "\u1922"], ["\u1927", "\u1928"], "\u1932", ["\u1939", "\u193B"], ["\u1A17", "\u1A18"], "\u1A1B", "\u1A56", ["\u1A58", "\u1A5E"], "\u1A60", "\u1A62", ["\u1A65", "\u1A6C"], ["\u1A73", "\u1A7C"], "\u1A7F", ["\u1AB0", "\u1ABD"], ["\u1B00", "\u1B03"], "\u1B34", ["\u1B36", "\u1B3A"], "\u1B3C", "\u1B42", ["\u1B6B", "\u1B73"], ["\u1B80", "\u1B81"], ["\u1BA2", "\u1BA5"], ["\u1BA8", "\u1BA9"], ["\u1BAB", "\u1BAD"], "\u1BE6", ["\u1BE8", "\u1BE9"], "\u1BED", ["\u1BEF", "\u1BF1"], ["\u1C2C", "\u1C33"], ["\u1C36", "\u1C37"], ["\u1CD0", "\u1CD2"], ["\u1CD4", "\u1CE0"], ["\u1CE2", "\u1CE8"], "\u1CED", "\u1CF4", ["\u1CF8", "\u1CF9"], ["\u1DC0", "\u1DF5"], ["\u1DFC", "\u1DFF"], ["\u20D0", "\u20DC"], "\u20E1", ["\u20E5", "\u20F0"], ["\u2CEF", "\u2CF1"], "\u2D7F", ["\u2DE0", "\u2DFF"], ["\u302A", "\u302D"], ["\u3099", "\u309A"], "\uA66F", ["\uA674", "\uA67D"], ["\uA69E", "\uA69F"], ["\uA6F0", "\uA6F1"], "\uA802", "\uA806", "\uA80B", ["\uA825", "\uA826"], "\uA8C4", ["\uA8E0", "\uA8F1"], ["\uA926", "\uA92D"], ["\uA947", "\uA951"], ["\uA980", "\uA982"], "\uA9B3", ["\uA9B6", "\uA9B9"], "\uA9BC", "\uA9E5", ["\uAA29", "\uAA2E"], ["\uAA31", "\uAA32"], ["\uAA35", "\uAA36"], "\uAA43", "\uAA4C", "\uAA7C", "\uAAB0", ["\uAAB2", "\uAAB4"], ["\uAAB7", "\uAAB8"], ["\uAABE", "\uAABF"], "\uAAC1", ["\uAAEC", "\uAAED"], "\uAAF6", "\uABE5", "\uABE8", "\uABED", "\uFB1E", ["\uFE00", "\uFE0F"], ["\uFE20", "\uFE2F"]], false, false),
301 peg$c132 = /^[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/,
302 peg$c133 = peg$classExpectation([["0", "9"], ["\u0660", "\u0669"], ["\u06F0", "\u06F9"], ["\u07C0", "\u07C9"], ["\u0966", "\u096F"], ["\u09E6", "\u09EF"], ["\u0A66", "\u0A6F"], ["\u0AE6", "\u0AEF"], ["\u0B66", "\u0B6F"], ["\u0BE6", "\u0BEF"], ["\u0C66", "\u0C6F"], ["\u0CE6", "\u0CEF"], ["\u0D66", "\u0D6F"], ["\u0DE6", "\u0DEF"], ["\u0E50", "\u0E59"], ["\u0ED0", "\u0ED9"], ["\u0F20", "\u0F29"], ["\u1040", "\u1049"], ["\u1090", "\u1099"], ["\u17E0", "\u17E9"], ["\u1810", "\u1819"], ["\u1946", "\u194F"], ["\u19D0", "\u19D9"], ["\u1A80", "\u1A89"], ["\u1A90", "\u1A99"], ["\u1B50", "\u1B59"], ["\u1BB0", "\u1BB9"], ["\u1C40", "\u1C49"], ["\u1C50", "\u1C59"], ["\uA620", "\uA629"], ["\uA8D0", "\uA8D9"], ["\uA900", "\uA909"], ["\uA9D0", "\uA9D9"], ["\uA9F0", "\uA9F9"], ["\uAA50", "\uAA59"], ["\uABF0", "\uABF9"], ["\uFF10", "\uFF19"]], false, false),
303 peg$c134 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/,
304 peg$c135 = peg$classExpectation([["\u16EE", "\u16F0"], ["\u2160", "\u2182"], ["\u2185", "\u2188"], "\u3007", ["\u3021", "\u3029"], ["\u3038", "\u303A"], ["\uA6E6", "\uA6EF"]], false, false),
305 peg$c136 = /^[_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F]/,
306 peg$c137 = peg$classExpectation(["_", ["\u203F", "\u2040"], "\u2054", ["\uFE33", "\uFE34"], ["\uFE4D", "\uFE4F"], "\uFF3F"], false, false),
307 peg$c138 = /^[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,
308 peg$c139 = peg$classExpectation([" ", "\xA0", "\u1680", ["\u2000", "\u200A"], "\u202F", "\u205F", "\u3000"], false, false),
309 peg$c140 = "break",
310 peg$c141 = peg$literalExpectation("break", false),
311 peg$c142 = "case",
312 peg$c143 = peg$literalExpectation("case", false),
313 peg$c144 = "catch",
314 peg$c145 = peg$literalExpectation("catch", false),
315 peg$c146 = "class",
316 peg$c147 = peg$literalExpectation("class", false),
317 peg$c148 = "const",
318 peg$c149 = peg$literalExpectation("const", false),
319 peg$c150 = "continue",
320 peg$c151 = peg$literalExpectation("continue", false),
321 peg$c152 = "debugger",
322 peg$c153 = peg$literalExpectation("debugger", false),
323 peg$c154 = "default",
324 peg$c155 = peg$literalExpectation("default", false),
325 peg$c156 = "delete",
326 peg$c157 = peg$literalExpectation("delete", false),
327 peg$c158 = "do",
328 peg$c159 = peg$literalExpectation("do", false),
329 peg$c160 = "else",
330 peg$c161 = peg$literalExpectation("else", false),
331 peg$c162 = "enum",
332 peg$c163 = peg$literalExpectation("enum", false),
333 peg$c164 = "export",
334 peg$c165 = peg$literalExpectation("export", false),
335 peg$c166 = "extends",
336 peg$c167 = peg$literalExpectation("extends", false),
337 peg$c168 = "false",
338 peg$c169 = peg$literalExpectation("false", false),
339 peg$c170 = "finally",
340 peg$c171 = peg$literalExpectation("finally", false),
341 peg$c172 = "for",
342 peg$c173 = peg$literalExpectation("for", false),
343 peg$c174 = "function",
344 peg$c175 = peg$literalExpectation("function", false),
345 peg$c176 = "get",
346 peg$c177 = peg$literalExpectation("get", false),
347 peg$c178 = "if",
348 peg$c179 = peg$literalExpectation("if", false),
349 peg$c180 = "import",
350 peg$c181 = peg$literalExpectation("import", false),
351 peg$c182 = "instanceof",
352 peg$c183 = peg$literalExpectation("instanceof", false),
353 peg$c184 = "in",
354 peg$c185 = peg$literalExpectation("in", false),
355 peg$c186 = "new",
356 peg$c187 = peg$literalExpectation("new", false),
357 peg$c188 = "null",
358 peg$c189 = peg$literalExpectation("null", false),
359 peg$c190 = "return",
360 peg$c191 = peg$literalExpectation("return", false),
361 peg$c192 = "set",
362 peg$c193 = peg$literalExpectation("set", false),
363 peg$c194 = "super",
364 peg$c195 = peg$literalExpectation("super", false),
365 peg$c196 = "switch",
366 peg$c197 = peg$literalExpectation("switch", false),
367 peg$c198 = "this",
368 peg$c199 = peg$literalExpectation("this", false),
369 peg$c200 = "throw",
370 peg$c201 = peg$literalExpectation("throw", false),
371 peg$c202 = "true",
372 peg$c203 = peg$literalExpectation("true", false),
373 peg$c204 = "try",
374 peg$c205 = peg$literalExpectation("try", false),
375 peg$c206 = "typeof",
376 peg$c207 = peg$literalExpectation("typeof", false),
377 peg$c208 = "var",
378 peg$c209 = peg$literalExpectation("var", false),
379 peg$c210 = "void",
380 peg$c211 = peg$literalExpectation("void", false),
381 peg$c212 = "while",
382 peg$c213 = peg$literalExpectation("while", false),
383 peg$c214 = "with",
384 peg$c215 = peg$literalExpectation("with", false),
385 peg$c216 = ";",
386 peg$c217 = peg$literalExpectation(";", false),
387 peg$c218 = "}",
388 peg$c219 = peg$literalExpectation("}", false),
389 peg$c220 = function() { return { type: "ThisExpression" }; },
390 peg$c221 = "(",
391 peg$c222 = peg$literalExpectation("(", false),
392 peg$c223 = ")",
393 peg$c224 = peg$literalExpectation(")", false),
394 peg$c225 = function(expression) { return expression; },
395 peg$c226 = function(elision) {
396 return {
397 type: "ArrayExpression",
398 elements: optionalList(extractOptional(elision, 0))
399 };
400 },
401 peg$c227 = function(elements) {
402 return {
403 type: "ArrayExpression",
404 elements: elements
405 };
406 },
407 peg$c228 = ",",
408 peg$c229 = peg$literalExpectation(",", false),
409 peg$c230 = function(elements, elision) {
410 return {
411 type: "ArrayExpression",
412 elements: elements.concat(optionalList(extractOptional(elision, 0)))
413 };
414 },
415 peg$c231 = function(elision, element) {
416 return optionalList(extractOptional(elision, 0)).concat(element);
417 },
418 peg$c232 = function(first, elision, element) {
419 return optionalList(extractOptional(elision, 0)).concat(element);
420 },
421 peg$c233 = function(first, rest) { return Array.prototype.concat.apply(first, rest); },
422 peg$c234 = function(commas) { return filledArray(commas.length + 1, null); },
423 peg$c235 = function(id) { return [id]; },
424 peg$c236 = function(callee, args) {
425 return { type: "NewExpression", callee: callee, arguments: args };
426 },
427 peg$c237 = function(first, property) {
428 return { property: property, computed: true };
429 },
430 peg$c238 = function(first, property) {
431 return { property: property, computed: false };
432 },
433 peg$c239 = function(first, rest) {
434 return buildTree(first, rest, function(result, element) {
435 return {
436 type: "MemberExpression",
437 object: result,
438 property: element.property,
439 computed: element.computed
440 };
441 });
442 },
443 peg$c240 = function(callee) {
444 return { type: "NewExpression", callee: callee, arguments: [] };
445 },
446 peg$c241 = function(callee, args) {
447 return { type: "CallExpression", callee: callee, arguments: args };
448 },
449 peg$c242 = function(first, args) {
450 return { type: "CallExpression", arguments: args };
451 },
452 peg$c243 = function(first, property) {
453 return {
454 type: "MemberExpression",
455 property: property,
456 computed: true
457 };
458 },
459 peg$c244 = function(first, property) {
460 return {
461 type: "MemberExpression",
462 property: property,
463 computed: false
464 };
465 },
466 peg$c245 = function(first, rest) {
467 return buildTree(first, rest, function(result, element) {
468 element[TYPES_TO_PROPERTY_NAMES[element.type]] = result;
469
470 return element;
471 });
472 },
473 peg$c246 = function(args) {
474 return optionalList(extractOptional(args, 0));
475 },
476 peg$c247 = function(first, rest) {
477 return buildList(first, rest, 3);
478 },
479 peg$c248 = function(argument, operator) {
480 return {
481 type: "UpdateExpression",
482 operator: operator,
483 argument: argument,
484 prefix: false
485 };
486 },
487 peg$c249 = "++",
488 peg$c250 = peg$literalExpectation("++", false),
489 peg$c251 = "--",
490 peg$c252 = peg$literalExpectation("--", false),
491 peg$c253 = function(operator, argument) {
492 var type = (operator === "++" || operator === "--")
493 ? "UpdateExpression"
494 : "UnaryExpression";
495
496 return {
497 type: type,
498 operator: operator,
499 argument: argument,
500 prefix: true
501 };
502 },
503 peg$c254 = "+",
504 peg$c255 = peg$literalExpectation("+", false),
505 peg$c256 = "=",
506 peg$c257 = peg$literalExpectation("=", false),
507 peg$c258 = "-",
508 peg$c259 = peg$literalExpectation("-", false),
509 peg$c260 = "~",
510 peg$c261 = peg$literalExpectation("~", false),
511 peg$c262 = "!",
512 peg$c263 = peg$literalExpectation("!", false),
513 peg$c264 = function(first, rest) { return buildBinaryExpression(first, rest); },
514 peg$c265 = "*",
515 peg$c266 = peg$literalExpectation("*", false),
516 peg$c267 = "%",
517 peg$c268 = peg$literalExpectation("%", false),
518 peg$c269 = /^[+=]/,
519 peg$c270 = peg$classExpectation(["+", "="], false, false),
520 peg$c271 = /^[\-=]/,
521 peg$c272 = peg$classExpectation(["-", "="], false, false),
522 peg$c273 = "<<",
523 peg$c274 = peg$literalExpectation("<<", false),
524 peg$c275 = ">>>",
525 peg$c276 = peg$literalExpectation(">>>", false),
526 peg$c277 = ">>",
527 peg$c278 = peg$literalExpectation(">>", false),
528 peg$c279 = "<=",
529 peg$c280 = peg$literalExpectation("<=", false),
530 peg$c281 = ">=",
531 peg$c282 = peg$literalExpectation(">=", false),
532 peg$c283 = "<",
533 peg$c284 = peg$literalExpectation("<", false),
534 peg$c285 = ">",
535 peg$c286 = peg$literalExpectation(">", false),
536 peg$c287 = "===",
537 peg$c288 = peg$literalExpectation("===", false),
538 peg$c289 = "!==",
539 peg$c290 = peg$literalExpectation("!==", false),
540 peg$c291 = "==",
541 peg$c292 = peg$literalExpectation("==", false),
542 peg$c293 = "!=",
543 peg$c294 = peg$literalExpectation("!=", false),
544 peg$c295 = "&",
545 peg$c296 = peg$literalExpectation("&", false),
546 peg$c297 = /^[&=]/,
547 peg$c298 = peg$classExpectation(["&", "="], false, false),
548 peg$c299 = "^",
549 peg$c300 = peg$literalExpectation("^", false),
550 peg$c301 = "|",
551 peg$c302 = peg$literalExpectation("|", false),
552 peg$c303 = /^[|=]/,
553 peg$c304 = peg$classExpectation(["|", "="], false, false),
554 peg$c305 = "&&",
555 peg$c306 = peg$literalExpectation("&&", false),
556 peg$c307 = "||",
557 peg$c308 = peg$literalExpectation("||", false),
558 peg$c309 = "?",
559 peg$c310 = peg$literalExpectation("?", false),
560 peg$c311 = ":",
561 peg$c312 = peg$literalExpectation(":", false),
562 peg$c313 = function(test, consequent, alternate) {
563 return {
564 type: "ConditionalExpression",
565 test: test,
566 consequent: consequent,
567 alternate: alternate
568 };
569 },
570 peg$c314 = function(left, right) {
571 return {
572 type: "AssignmentExpression",
573 operator: "=",
574 left: left,
575 right: right
576 };
577 },
578 peg$c315 = function(left, operator, right) {
579 return {
580 type: "AssignmentExpression",
581 operator: operator,
582 left: left,
583 right: right
584 };
585 },
586 peg$c316 = "*=",
587 peg$c317 = peg$literalExpectation("*=", false),
588 peg$c318 = "/=",
589 peg$c319 = peg$literalExpectation("/=", false),
590 peg$c320 = "%=",
591 peg$c321 = peg$literalExpectation("%=", false),
592 peg$c322 = "+=",
593 peg$c323 = peg$literalExpectation("+=", false),
594 peg$c324 = "-=",
595 peg$c325 = peg$literalExpectation("-=", false),
596 peg$c326 = "<<=",
597 peg$c327 = peg$literalExpectation("<<=", false),
598 peg$c328 = ">>=",
599 peg$c329 = peg$literalExpectation(">>=", false),
600 peg$c330 = ">>>=",
601 peg$c331 = peg$literalExpectation(">>>=", false),
602 peg$c332 = "&=",
603 peg$c333 = peg$literalExpectation("&=", false),
604 peg$c334 = "^=",
605 peg$c335 = peg$literalExpectation("^=", false),
606 peg$c336 = "|=",
607 peg$c337 = peg$literalExpectation("|=", false),
608 peg$c338 = function(first, rest) {
609 return rest.length > 0
610 ? { type: "SequenceExpression", expressions: buildList(first, rest, 3) }
611 : first;
612 },
613 peg$c339 = "{",
614 peg$c340 = peg$literalExpectation("{", false),
615 peg$c341 = function(body) {
616 return {
617 type: "BlockStatement",
618 body: optionalList(extractOptional(body, 0))
619 };
620 },
621 peg$c342 = function(first, rest) { return buildList(first, rest, 1); },
622 peg$c343 = function(declarations) {
623 return {
624 type: "VariableDeclaration",
625 declarations: declarations
626 };
627 },
628 peg$c344 = function(id, init) {
629 return {
630 type: "VariableDeclarator",
631 id: id,
632 init: extractOptional(init, 1)
633 };
634 },
635 peg$c345 = function() { return { type: "EmptyStatement" }; },
636 peg$c346 = function(expression) {
637 return {
638 type: "ExpressionStatement",
639 expression: expression
640 };
641 },
642 peg$c347 = function(test, consequent, alternate) {
643 return {
644 type: "IfStatement",
645 test: test,
646 consequent: consequent,
647 alternate: alternate
648 };
649 },
650 peg$c348 = function(test, consequent) {
651 return {
652 type: "IfStatement",
653 test: test,
654 consequent: consequent,
655 alternate: null
656 };
657 },
658 peg$c349 = function(body, test) { return { type: "DoWhileStatement", body: body, test: test }; },
659 peg$c350 = function(test, body) { return { type: "WhileStatement", test: test, body: body }; },
660 peg$c351 = function(init, test, update, body) {
661 return {
662 type: "ForStatement",
663 init: extractOptional(init, 0),
664 test: extractOptional(test, 0),
665 update: extractOptional(update, 0),
666 body: body
667 };
668 },
669 peg$c352 = function(declarations, test, update, body) {
670 return {
671 type: "ForStatement",
672 init: {
673 type: "VariableDeclaration",
674 declarations: declarations
675 },
676 test: extractOptional(test, 0),
677 update: extractOptional(update, 0),
678 body: body
679 };
680 },
681 peg$c353 = function(left, right, body) {
682 return {
683 type: "ForInStatement",
684 left: left,
685 right: right,
686 body: body
687 };
688 },
689 peg$c354 = function(declarations, right, body) {
690 return {
691 type: "ForInStatement",
692 left: {
693 type: "VariableDeclaration",
694 declarations: declarations
695 },
696 right: right,
697 body: body
698 };
699 },
700 peg$c355 = function() {
701 return { type: "ContinueStatement", label: null };
702 },
703 peg$c356 = function(label) {
704 return { type: "ContinueStatement", label: label };
705 },
706 peg$c357 = function() {
707 return { type: "BreakStatement", label: null };
708 },
709 peg$c358 = function(label) {
710 return { type: "BreakStatement", label: label };
711 },
712 peg$c359 = function() {
713 return { type: "ReturnStatement", argument: null };
714 },
715 peg$c360 = function(argument) {
716 return { type: "ReturnStatement", argument: argument };
717 },
718 peg$c361 = function(object, body) { return { type: "WithStatement", object: object, body: body }; },
719 peg$c362 = function(discriminant, cases) {
720 return {
721 type: "SwitchStatement",
722 discriminant: discriminant,
723 cases: cases
724 };
725 },
726 peg$c363 = function(clauses) {
727 return optionalList(extractOptional(clauses, 0));
728 },
729 peg$c364 = function(before, default_, after) {
730 return optionalList(extractOptional(before, 0))
731 .concat(default_)
732 .concat(optionalList(extractOptional(after, 0)));
733 },
734 peg$c365 = function(test, consequent) {
735 return {
736 type: "SwitchCase",
737 test: test,
738 consequent: optionalList(extractOptional(consequent, 1))
739 };
740 },
741 peg$c366 = function(consequent) {
742 return {
743 type: "SwitchCase",
744 test: null,
745 consequent: optionalList(extractOptional(consequent, 1))
746 };
747 },
748 peg$c367 = function(label, body) {
749 return { type: "LabeledStatement", label: label, body: body };
750 },
751 peg$c368 = function(argument) {
752 return { type: "ThrowStatement", argument: argument };
753 },
754 peg$c369 = function(block, handler, finalizer) {
755 return {
756 type: "TryStatement",
757 block: block,
758 handler: handler,
759 finalizer: finalizer
760 };
761 },
762 peg$c370 = function(block, handler) {
763 return {
764 type: "TryStatement",
765 block: block,
766 handler: handler,
767 finalizer: null
768 };
769 },
770 peg$c371 = function(block, finalizer) {
771 return {
772 type: "TryStatement",
773 block: block,
774 handler: null,
775 finalizer: finalizer
776 };
777 },
778 peg$c372 = function(param, body) {
779 return {
780 type: "CatchClause",
781 param: param,
782 body: body
783 };
784 },
785 peg$c373 = function(block) { return block; },
786 peg$c374 = function() { return { type: "DebuggerStatement" }; },
787 peg$c375 = /^[A-Z]/,
788 peg$c376 = peg$classExpectation([["A", "Z"]], false, false),
789 peg$c377 = /^[a-z]/,
790 peg$c378 = peg$classExpectation([["a", "z"]], false, false),
791 peg$c379 = "1",
792 peg$c380 = peg$literalExpectation("1", false),
793 peg$c381 = /^[\x01-\x7F]/,
794 peg$c382 = peg$classExpectation([["\x01", "\x7F"]], false, false),
795 peg$c383 = /^[\0-\x1F]/,
796 peg$c384 = peg$classExpectation([["\0", "\x1F"]], false, false),
797 peg$c385 = "\x7F",
798 peg$c386 = peg$literalExpectation("\x7F", false),
799 peg$c387 = /^["]/,
800 peg$c388 = peg$classExpectation(["\""], false, false),
801 peg$c389 = "a",
802 peg$c390 = peg$literalExpectation("A", true),
803 peg$c391 = peg$literalExpectation("B", true),
804 peg$c392 = "c",
805 peg$c393 = peg$literalExpectation("C", true),
806 peg$c394 = "d",
807 peg$c395 = peg$literalExpectation("D", true),
808 peg$c396 = peg$literalExpectation("E", true),
809 peg$c397 = peg$literalExpectation("F", true),
810 peg$c398 = /^[\0-\xFF]/,
811 peg$c399 = peg$classExpectation([["\0", "\xFF"]], false, false),
812 peg$c400 = /^[!-~]/,
813 peg$c401 = peg$classExpectation([["!", "~"]], false, false),
814 peg$c402 = "#",
815 peg$c403 = peg$literalExpectation("#", false),
816 peg$c404 = "@",
817 peg$c405 = peg$literalExpectation("@", false),
818 peg$c406 = "::",
819 peg$c407 = peg$literalExpectation("::", false),
820 peg$c408 = "25",
821 peg$c409 = peg$literalExpectation("25", false),
822 peg$c410 = /^[0-5]/,
823 peg$c411 = peg$classExpectation([["0", "5"]], false, false),
824 peg$c412 = "2",
825 peg$c413 = peg$literalExpectation("2", false),
826 peg$c414 = /^[0-4]/,
827 peg$c415 = peg$classExpectation([["0", "4"]], false, false),
828 peg$c416 = "",
829 peg$c417 = "namespace",
830 peg$c418 = peg$literalExpectation("namespace", false),
831 peg$c419 = "abstract",
832 peg$c420 = peg$literalExpectation("abstract", false),
833 peg$c421 = "concept",
834 peg$c422 = peg$literalExpectation("concept", false),
835 peg$c423 = "asset",
836 peg$c424 = peg$literalExpectation("asset", false),
837 peg$c425 = "transaction",
838 peg$c426 = peg$literalExpectation("transaction", false),
839 peg$c427 = "event",
840 peg$c428 = peg$literalExpectation("event", false),
841 peg$c429 = "participant",
842 peg$c430 = peg$literalExpectation("participant", false),
843 peg$c431 = "from",
844 peg$c432 = peg$literalExpectation("from", false),
845 peg$c433 = "Integer",
846 peg$c434 = peg$literalExpectation("Integer", false),
847 peg$c435 = function() {
848 return "Integer"
849 },
850 peg$c436 = "Double",
851 peg$c437 = peg$literalExpectation("Double", false),
852 peg$c438 = function() {
853 return "Double"
854 },
855 peg$c439 = "Long",
856 peg$c440 = peg$literalExpectation("Long", false),
857 peg$c441 = function() {
858 return "Long"
859 },
860 peg$c442 = "String",
861 peg$c443 = peg$literalExpectation("String", false),
862 peg$c444 = function() {
863 return "String"
864 },
865 peg$c445 = "DateTime",
866 peg$c446 = peg$literalExpectation("DateTime", false),
867 peg$c447 = function() {
868 return "DateTime"
869 },
870 peg$c448 = "Boolean",
871 peg$c449 = peg$literalExpectation("Boolean", false),
872 peg$c450 = function() {
873 return "Boolean"
874 },
875 peg$c451 = function(type) {
876 return type
877 },
878 peg$c452 = function(op, def) {
879 return op + def;
880 },
881 peg$c453 = "identified by",
882 peg$c454 = peg$literalExpectation("identified by", false),
883 peg$c455 = function(idField) {
884 return idField
885 },
886 peg$c456 = function(s) {
887 return {
888 type: "String",
889 value: s.value,
890 location: location()
891 }
892 },
893 peg$c457 = function(n) {
894 return {
895 type: "Number",
896 value: +n,
897 location: location()
898 }
899 },
900 peg$c458 = function(b) {
901 return {
902 type: "Boolean",
903 value: (b == "true"),
904 location: location()
905 }
906 },
907 peg$c459 = "[]",
908 peg$c460 = peg$literalExpectation("[]", false),
909 peg$c461 = function(value, array) {
910 return {
911 type: "Identifier",
912 value: Object.assign({ array: !!array }, value),
913 location: location()
914 }
915 },
916 peg$c462 = function(d) {return d;},
917 peg$c463 = function(first, last) {
918 return {
919 type: "DecoratorArguments",
920 list: first.concat(last),
921 location: location()
922 };
923 },
924 peg$c464 = function(name, decoratorArgs) {
925 return {
926 type: "Decorator",
927 name: name,
928 arguments: decoratorArgs,
929 location: location()
930 };
931 },
932 peg$c465 = function(decorators, abstract, id, idField, classExtension, body) {
933 return {
934 type: "AssetDeclaration",
935 id: id,
936 classExtension: classExtension,
937 idField: idField,
938 body: body,
939 abstract: abstract,
940 decorators: decorators,
941 location: location()
942 };
943 },
944 peg$c466 = function(decorators, abstract, id, idField, classExtension, body) {
945 return {
946 type: "ParticipantDeclaration",
947 id: id,
948 classExtension: classExtension,
949 idField: idField,
950 body: body,
951 abstract: abstract,
952 decorators: decorators,
953 location: location()
954 };
955 },
956 peg$c467 = function(ex) {
957 return {
958 type: "ClassExtension",
959 class: ex
960 };
961 },
962 peg$c468 = function(decorators, abstract, id, idField, classExtension, body) {
963 return {
964 type: "TransactionDeclaration",
965 id: id,
966 classExtension: classExtension,
967 body: body,
968 idField: idField,
969 abstract: abstract,
970 decorators: decorators,
971 location: location()
972 };
973 },
974 peg$c469 = function(decorators, abstract, id, idField, classExtension, body) {
975 return {
976 type: "EventDeclaration",
977 id: id,
978 classExtension: classExtension,
979 body: body,
980 idField: idField,
981 abstract: abstract,
982 decorators: decorators,
983 location: location()
984 };
985 },
986 peg$c470 = function(decorators, abstract, id, classExtension, body) {
987 return {
988 type: "ConceptDeclaration",
989 id: id,
990 classExtension: classExtension,
991 body: body,
992 abstract: abstract,
993 decorators: decorators,
994 location: location()
995 };
996 },
997 peg$c471 = "optional",
998 peg$c472 = peg$literalExpectation("optional", false),
999 peg$c473 = function() {
1000 return {
1001 type: "Optional"
1002 };
1003 },
1004 peg$c474 = function(def) {
1005 return def.value;
1006 },
1007 peg$c475 = function(def) {
1008 return def;
1009 },
1010 peg$c476 = function(def) {
1011 return def;
1012 },
1013 peg$c477 = function(decls) {
1014 return {
1015 type: "ClassDeclarationBody",
1016 declarations: optionalList(decls),
1017 location: location()
1018 };
1019 },
1020 peg$c478 = "o",
1021 peg$c479 = peg$literalExpectation("o", false),
1022 peg$c480 = function(decorators, propertyType, array, id, d, optional) {
1023 return {
1024 type: "FieldDeclaration",
1025 id: id,
1026 propertyType: propertyType,
1027 array: array,
1028 default: d,
1029 optional: optional,
1030 decorators: decorators,
1031 location: location()
1032 }
1033 },
1034 peg$c481 = function(decorators, array, id, d, optional) {
1035 return {
1036 type: "FieldDeclaration",
1037 id: id,
1038 propertyType: {name:"Boolean"},
1039 array: array,
1040 default: d,
1041 optional: optional,
1042 decorators: decorators,
1043 location: location()
1044 }
1045 },
1046 peg$c482 = function(decorators, array, id, d, optional) {
1047 return {
1048 type: "FieldDeclaration",
1049 id: id,
1050 propertyType: {name:"DateTime"},
1051 array: array,
1052 default: d,
1053 optional: optional,
1054 decorators: decorators,
1055 location: location()
1056 }
1057 },
1058 peg$c483 = function(decorators, array, id, d, regex, optional) {
1059 return {
1060 type: "FieldDeclaration",
1061 id: id,
1062 propertyType: {name:"String"},
1063 array: array,
1064 regex: regex,
1065 default: d,
1066 optional: optional,
1067 decorators: decorators,
1068 location: location()
1069 }
1070 },
1071 peg$c484 = "regex",
1072 peg$c485 = peg$literalExpectation("regex", false),
1073 peg$c486 = function(regex) {
1074 return regex
1075 },
1076 peg$c487 = "range",
1077 peg$c488 = peg$literalExpectation("range", false),
1078 peg$c489 = function(lower, upper) {
1079 return {
1080 lower: lower,
1081 upper: upper
1082 }
1083 },
1084 peg$c490 = function(decorators, propertyType, array, id, d, range, optional) {
1085 return {
1086 type: "FieldDeclaration",
1087 id: id,
1088 propertyType: {name:propertyType},
1089 array: array,
1090 range: range,
1091 default: d,
1092 optional: optional,
1093 decorators: decorators,
1094 location: location()
1095 }
1096 },
1097 peg$c491 = function(decorators, id, body) {
1098 return {
1099 type: "EnumDeclaration",
1100 id: id,
1101 body: body,
1102 decorators: decorators,
1103 location: location()
1104 };
1105 },
1106 peg$c492 = function(decls) {
1107 return {
1108 type: "EnumDeclarationBody",
1109 declarations: optionalList(decls)
1110 };
1111 },
1112 peg$c493 = function(decorators, id, optional) {
1113 return {
1114 type: "EnumPropertyDeclaration",
1115 id: id,
1116 optional: optional,
1117 decorators: decorators,
1118 location: location()
1119 }
1120 },
1121 peg$c494 = "-->",
1122 peg$c495 = peg$literalExpectation("-->", false),
1123 peg$c496 = function(decorators, propertyType, array, id, optional) {
1124 return {
1125 type: "RelationshipDeclaration",
1126 id: id,
1127 propertyType: propertyType,
1128 array: array,
1129 optional: optional,
1130 decorators: decorators,
1131 location: location()
1132 }
1133 },
1134 peg$c497 = function(first, rest) {
1135 return first.concat(JSON.stringify(rest).replace(/['"]+/g, ''));
1136 },
1137 peg$c498 = function(namespace) {
1138 return namespace;
1139 },
1140 peg$c499 = ".*",
1141 peg$c500 = peg$literalExpectation(".*", false),
1142 peg$c501 = function(ns) {
1143 return {
1144 namespace: ns
1145 }
1146 },
1147 peg$c502 = function(ns, u) {
1148 return {
1149 namespace: ns,
1150 uri: u
1151 }
1152 },
1153 peg$c503 = function(ns, imports, body) {
1154 return {
1155 type: "Program",
1156 namespace: ns,
1157 imports: optionalList(imports),
1158 body: optionalList(body)
1159 };
1160 },
1161 peg$c504 = function(first, rest) {
1162 return buildList(first, rest, 1);
1163 },
1164 peg$c505 = function(first, rest) {
1165 return buildList(first, rest, 1);
1166 },
1167
1168 peg$currPos = 0,
1169 peg$savedPos = 0,
1170 peg$posDetailsCache = [{ line: 1, column: 1 }],
1171 peg$maxFailPos = 0,
1172 peg$maxFailExpected = [],
1173 peg$silentFails = 0,
1174
1175 peg$result;
1176
1177 if ("startRule" in options) {
1178 if (!(options.startRule in peg$startRuleFunctions)) {
1179 throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
1180 }
1181
1182 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
1183 }
1184
1185 function text() {
1186 return input.substring(peg$savedPos, peg$currPos);
1187 }
1188
1189 function location() {
1190 return peg$computeLocation(peg$savedPos, peg$currPos);
1191 }
1192
1193 function expected(description, location) {
1194 location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)
1195
1196 throw peg$buildStructuredError(
1197 [peg$otherExpectation(description)],
1198 input.substring(peg$savedPos, peg$currPos),
1199 location
1200 );
1201 }
1202
1203 function error(message, location) {
1204 location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)
1205
1206 throw peg$buildSimpleError(message, location);
1207 }
1208
1209 function peg$literalExpectation(text, ignoreCase) {
1210 return { type: "literal", text: text, ignoreCase: ignoreCase };
1211 }
1212
1213 function peg$classExpectation(parts, inverted, ignoreCase) {
1214 return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
1215 }
1216
1217 function peg$anyExpectation() {
1218 return { type: "any" };
1219 }
1220
1221 function peg$endExpectation() {
1222 return { type: "end" };
1223 }
1224
1225 function peg$otherExpectation(description) {
1226 return { type: "other", description: description };
1227 }
1228
1229 function peg$computePosDetails(pos) {
1230 var details = peg$posDetailsCache[pos], p;
1231
1232 if (details) {
1233 return details;
1234 } else {
1235 p = pos - 1;
1236 while (!peg$posDetailsCache[p]) {
1237 p--;
1238 }
1239
1240 details = peg$posDetailsCache[p];
1241 details = {
1242 line: details.line,
1243 column: details.column
1244 };
1245
1246 while (p < pos) {
1247 if (input.charCodeAt(p) === 10) {
1248 details.line++;
1249 details.column = 1;
1250 } else {
1251 details.column++;
1252 }
1253
1254 p++;
1255 }
1256
1257 peg$posDetailsCache[pos] = details;
1258 return details;
1259 }
1260 }
1261
1262 function peg$computeLocation(startPos, endPos) {
1263 var startPosDetails = peg$computePosDetails(startPos),
1264 endPosDetails = peg$computePosDetails(endPos);
1265
1266 return {
1267 start: {
1268 offset: startPos,
1269 line: startPosDetails.line,
1270 column: startPosDetails.column
1271 },
1272 end: {
1273 offset: endPos,
1274 line: endPosDetails.line,
1275 column: endPosDetails.column
1276 }
1277 };
1278 }
1279
1280 function peg$fail(expected) {
1281 if (peg$currPos < peg$maxFailPos) { return; }
1282
1283 if (peg$currPos > peg$maxFailPos) {
1284 peg$maxFailPos = peg$currPos;
1285 peg$maxFailExpected = [];
1286 }
1287
1288 peg$maxFailExpected.push(expected);
1289 }
1290
1291 function peg$buildSimpleError(message, location) {
1292 return new peg$SyntaxError(message, null, null, location);
1293 }
1294
1295 function peg$buildStructuredError(expected, found, location) {
1296 return new peg$SyntaxError(
1297 peg$SyntaxError.buildMessage(expected, found),
1298 expected,
1299 found,
1300 location
1301 );
1302 }
1303
1304 function peg$parseStart() {
1305 var s0, s1, s2, s3;
1306
1307 s0 = peg$currPos;
1308 s1 = peg$parse__();
1309 if (s1 !== peg$FAILED) {
1310 s2 = peg$parseProgram();
1311 if (s2 !== peg$FAILED) {
1312 s3 = peg$parse__();
1313 if (s3 !== peg$FAILED) {
1314 peg$savedPos = s0;
1315 s1 = peg$c0(s2);
1316 s0 = s1;
1317 } else {
1318 peg$currPos = s0;
1319 s0 = peg$FAILED;
1320 }
1321 } else {
1322 peg$currPos = s0;
1323 s0 = peg$FAILED;
1324 }
1325 } else {
1326 peg$currPos = s0;
1327 s0 = peg$FAILED;
1328 }
1329
1330 return s0;
1331 }
1332
1333 function peg$parseSourceCharacter() {
1334 var s0;
1335
1336 if (input.length > peg$currPos) {
1337 s0 = input.charAt(peg$currPos);
1338 peg$currPos++;
1339 } else {
1340 s0 = peg$FAILED;
1341 if (peg$silentFails === 0) { peg$fail(peg$c1); }
1342 }
1343
1344 return s0;
1345 }
1346
1347 function peg$parseWhiteSpace() {
1348 var s0, s1;
1349
1350 peg$silentFails++;
1351 if (input.charCodeAt(peg$currPos) === 9) {
1352 s0 = peg$c3;
1353 peg$currPos++;
1354 } else {
1355 s0 = peg$FAILED;
1356 if (peg$silentFails === 0) { peg$fail(peg$c4); }
1357 }
1358 if (s0 === peg$FAILED) {
1359 if (input.charCodeAt(peg$currPos) === 11) {
1360 s0 = peg$c5;
1361 peg$currPos++;
1362 } else {
1363 s0 = peg$FAILED;
1364 if (peg$silentFails === 0) { peg$fail(peg$c6); }
1365 }
1366 if (s0 === peg$FAILED) {
1367 if (input.charCodeAt(peg$currPos) === 12) {
1368 s0 = peg$c7;
1369 peg$currPos++;
1370 } else {
1371 s0 = peg$FAILED;
1372 if (peg$silentFails === 0) { peg$fail(peg$c8); }
1373 }
1374 if (s0 === peg$FAILED) {
1375 if (input.charCodeAt(peg$currPos) === 32) {
1376 s0 = peg$c9;
1377 peg$currPos++;
1378 } else {
1379 s0 = peg$FAILED;
1380 if (peg$silentFails === 0) { peg$fail(peg$c10); }
1381 }
1382 if (s0 === peg$FAILED) {
1383 if (input.charCodeAt(peg$currPos) === 160) {
1384 s0 = peg$c11;
1385 peg$currPos++;
1386 } else {
1387 s0 = peg$FAILED;
1388 if (peg$silentFails === 0) { peg$fail(peg$c12); }
1389 }
1390 if (s0 === peg$FAILED) {
1391 if (input.charCodeAt(peg$currPos) === 65279) {
1392 s0 = peg$c13;
1393 peg$currPos++;
1394 } else {
1395 s0 = peg$FAILED;
1396 if (peg$silentFails === 0) { peg$fail(peg$c14); }
1397 }
1398 if (s0 === peg$FAILED) {
1399 s0 = peg$parseZs();
1400 }
1401 }
1402 }
1403 }
1404 }
1405 }
1406 peg$silentFails--;
1407 if (s0 === peg$FAILED) {
1408 s1 = peg$FAILED;
1409 if (peg$silentFails === 0) { peg$fail(peg$c2); }
1410 }
1411
1412 return s0;
1413 }
1414
1415 function peg$parseLineTerminator() {
1416 var s0;
1417
1418 if (peg$c15.test(input.charAt(peg$currPos))) {
1419 s0 = input.charAt(peg$currPos);
1420 peg$currPos++;
1421 } else {
1422 s0 = peg$FAILED;
1423 if (peg$silentFails === 0) { peg$fail(peg$c16); }
1424 }
1425
1426 return s0;
1427 }
1428
1429 function peg$parseLineTerminatorSequence() {
1430 var s0, s1;
1431
1432 peg$silentFails++;
1433 if (input.charCodeAt(peg$currPos) === 10) {
1434 s0 = peg$c18;
1435 peg$currPos++;
1436 } else {
1437 s0 = peg$FAILED;
1438 if (peg$silentFails === 0) { peg$fail(peg$c19); }
1439 }
1440 if (s0 === peg$FAILED) {
1441 if (input.substr(peg$currPos, 2) === peg$c20) {
1442 s0 = peg$c20;
1443 peg$currPos += 2;
1444 } else {
1445 s0 = peg$FAILED;
1446 if (peg$silentFails === 0) { peg$fail(peg$c21); }
1447 }
1448 if (s0 === peg$FAILED) {
1449 if (input.charCodeAt(peg$currPos) === 13) {
1450 s0 = peg$c22;
1451 peg$currPos++;
1452 } else {
1453 s0 = peg$FAILED;
1454 if (peg$silentFails === 0) { peg$fail(peg$c23); }
1455 }
1456 if (s0 === peg$FAILED) {
1457 if (input.charCodeAt(peg$currPos) === 8232) {
1458 s0 = peg$c24;
1459 peg$currPos++;
1460 } else {
1461 s0 = peg$FAILED;
1462 if (peg$silentFails === 0) { peg$fail(peg$c25); }
1463 }
1464 if (s0 === peg$FAILED) {
1465 if (input.charCodeAt(peg$currPos) === 8233) {
1466 s0 = peg$c26;
1467 peg$currPos++;
1468 } else {
1469 s0 = peg$FAILED;
1470 if (peg$silentFails === 0) { peg$fail(peg$c27); }
1471 }
1472 }
1473 }
1474 }
1475 }
1476 peg$silentFails--;
1477 if (s0 === peg$FAILED) {
1478 s1 = peg$FAILED;
1479 if (peg$silentFails === 0) { peg$fail(peg$c17); }
1480 }
1481
1482 return s0;
1483 }
1484
1485 function peg$parseComment() {
1486 var s0, s1;
1487
1488 peg$silentFails++;
1489 s0 = peg$parseMultiLineComment();
1490 if (s0 === peg$FAILED) {
1491 s0 = peg$parseSingleLineComment();
1492 }
1493 peg$silentFails--;
1494 if (s0 === peg$FAILED) {
1495 s1 = peg$FAILED;
1496 if (peg$silentFails === 0) { peg$fail(peg$c28); }
1497 }
1498
1499 return s0;
1500 }
1501
1502 function peg$parseMultiLineComment() {
1503 var s0, s1, s2, s3, s4, s5;
1504
1505 s0 = peg$currPos;
1506 if (input.substr(peg$currPos, 2) === peg$c29) {
1507 s1 = peg$c29;
1508 peg$currPos += 2;
1509 } else {
1510 s1 = peg$FAILED;
1511 if (peg$silentFails === 0) { peg$fail(peg$c30); }
1512 }
1513 if (s1 !== peg$FAILED) {
1514 s2 = [];
1515 s3 = peg$currPos;
1516 s4 = peg$currPos;
1517 peg$silentFails++;
1518 if (input.substr(peg$currPos, 2) === peg$c31) {
1519 s5 = peg$c31;
1520 peg$currPos += 2;
1521 } else {
1522 s5 = peg$FAILED;
1523 if (peg$silentFails === 0) { peg$fail(peg$c32); }
1524 }
1525 peg$silentFails--;
1526 if (s5 === peg$FAILED) {
1527 s4 = void 0;
1528 } else {
1529 peg$currPos = s4;
1530 s4 = peg$FAILED;
1531 }
1532 if (s4 !== peg$FAILED) {
1533 s5 = peg$parseSourceCharacter();
1534 if (s5 !== peg$FAILED) {
1535 s4 = [s4, s5];
1536 s3 = s4;
1537 } else {
1538 peg$currPos = s3;
1539 s3 = peg$FAILED;
1540 }
1541 } else {
1542 peg$currPos = s3;
1543 s3 = peg$FAILED;
1544 }
1545 while (s3 !== peg$FAILED) {
1546 s2.push(s3);
1547 s3 = peg$currPos;
1548 s4 = peg$currPos;
1549 peg$silentFails++;
1550 if (input.substr(peg$currPos, 2) === peg$c31) {
1551 s5 = peg$c31;
1552 peg$currPos += 2;
1553 } else {
1554 s5 = peg$FAILED;
1555 if (peg$silentFails === 0) { peg$fail(peg$c32); }
1556 }
1557 peg$silentFails--;
1558 if (s5 === peg$FAILED) {
1559 s4 = void 0;
1560 } else {
1561 peg$currPos = s4;
1562 s4 = peg$FAILED;
1563 }
1564 if (s4 !== peg$FAILED) {
1565 s5 = peg$parseSourceCharacter();
1566 if (s5 !== peg$FAILED) {
1567 s4 = [s4, s5];
1568 s3 = s4;
1569 } else {
1570 peg$currPos = s3;
1571 s3 = peg$FAILED;
1572 }
1573 } else {
1574 peg$currPos = s3;
1575 s3 = peg$FAILED;
1576 }
1577 }
1578 if (s2 !== peg$FAILED) {
1579 if (input.substr(peg$currPos, 2) === peg$c31) {
1580 s3 = peg$c31;
1581 peg$currPos += 2;
1582 } else {
1583 s3 = peg$FAILED;
1584 if (peg$silentFails === 0) { peg$fail(peg$c32); }
1585 }
1586 if (s3 !== peg$FAILED) {
1587 s1 = [s1, s2, s3];
1588 s0 = s1;
1589 } else {
1590 peg$currPos = s0;
1591 s0 = peg$FAILED;
1592 }
1593 } else {
1594 peg$currPos = s0;
1595 s0 = peg$FAILED;
1596 }
1597 } else {
1598 peg$currPos = s0;
1599 s0 = peg$FAILED;
1600 }
1601
1602 return s0;
1603 }
1604
1605 function peg$parseMultiLineCommentNoLineTerminator() {
1606 var s0, s1, s2, s3, s4, s5;
1607
1608 s0 = peg$currPos;
1609 if (input.substr(peg$currPos, 2) === peg$c29) {
1610 s1 = peg$c29;
1611 peg$currPos += 2;
1612 } else {
1613 s1 = peg$FAILED;
1614 if (peg$silentFails === 0) { peg$fail(peg$c30); }
1615 }
1616 if (s1 !== peg$FAILED) {
1617 s2 = [];
1618 s3 = peg$currPos;
1619 s4 = peg$currPos;
1620 peg$silentFails++;
1621 if (input.substr(peg$currPos, 2) === peg$c31) {
1622 s5 = peg$c31;
1623 peg$currPos += 2;
1624 } else {
1625 s5 = peg$FAILED;
1626 if (peg$silentFails === 0) { peg$fail(peg$c32); }
1627 }
1628 if (s5 === peg$FAILED) {
1629 s5 = peg$parseLineTerminator();
1630 }
1631 peg$silentFails--;
1632 if (s5 === peg$FAILED) {
1633 s4 = void 0;
1634 } else {
1635 peg$currPos = s4;
1636 s4 = peg$FAILED;
1637 }
1638 if (s4 !== peg$FAILED) {
1639 s5 = peg$parseSourceCharacter();
1640 if (s5 !== peg$FAILED) {
1641 s4 = [s4, s5];
1642 s3 = s4;
1643 } else {
1644 peg$currPos = s3;
1645 s3 = peg$FAILED;
1646 }
1647 } else {
1648 peg$currPos = s3;
1649 s3 = peg$FAILED;
1650 }
1651 while (s3 !== peg$FAILED) {
1652 s2.push(s3);
1653 s3 = peg$currPos;
1654 s4 = peg$currPos;
1655 peg$silentFails++;
1656 if (input.substr(peg$currPos, 2) === peg$c31) {
1657 s5 = peg$c31;
1658 peg$currPos += 2;
1659 } else {
1660 s5 = peg$FAILED;
1661 if (peg$silentFails === 0) { peg$fail(peg$c32); }
1662 }
1663 if (s5 === peg$FAILED) {
1664 s5 = peg$parseLineTerminator();
1665 }
1666 peg$silentFails--;
1667 if (s5 === peg$FAILED) {
1668 s4 = void 0;
1669 } else {
1670 peg$currPos = s4;
1671 s4 = peg$FAILED;
1672 }
1673 if (s4 !== peg$FAILED) {
1674 s5 = peg$parseSourceCharacter();
1675 if (s5 !== peg$FAILED) {
1676 s4 = [s4, s5];
1677 s3 = s4;
1678 } else {
1679 peg$currPos = s3;
1680 s3 = peg$FAILED;
1681 }
1682 } else {
1683 peg$currPos = s3;
1684 s3 = peg$FAILED;
1685 }
1686 }
1687 if (s2 !== peg$FAILED) {
1688 if (input.substr(peg$currPos, 2) === peg$c31) {
1689 s3 = peg$c31;
1690 peg$currPos += 2;
1691 } else {
1692 s3 = peg$FAILED;
1693 if (peg$silentFails === 0) { peg$fail(peg$c32); }
1694 }
1695 if (s3 !== peg$FAILED) {
1696 s1 = [s1, s2, s3];
1697 s0 = s1;
1698 } else {
1699 peg$currPos = s0;
1700 s0 = peg$FAILED;
1701 }
1702 } else {
1703 peg$currPos = s0;
1704 s0 = peg$FAILED;
1705 }
1706 } else {
1707 peg$currPos = s0;
1708 s0 = peg$FAILED;
1709 }
1710
1711 return s0;
1712 }
1713
1714 function peg$parseSingleLineComment() {
1715 var s0, s1, s2, s3, s4, s5;
1716
1717 s0 = peg$currPos;
1718 if (input.substr(peg$currPos, 2) === peg$c33) {
1719 s1 = peg$c33;
1720 peg$currPos += 2;
1721 } else {
1722 s1 = peg$FAILED;
1723 if (peg$silentFails === 0) { peg$fail(peg$c34); }
1724 }
1725 if (s1 !== peg$FAILED) {
1726 s2 = [];
1727 s3 = peg$currPos;
1728 s4 = peg$currPos;
1729 peg$silentFails++;
1730 s5 = peg$parseLineTerminator();
1731 peg$silentFails--;
1732 if (s5 === peg$FAILED) {
1733 s4 = void 0;
1734 } else {
1735 peg$currPos = s4;
1736 s4 = peg$FAILED;
1737 }
1738 if (s4 !== peg$FAILED) {
1739 s5 = peg$parseSourceCharacter();
1740 if (s5 !== peg$FAILED) {
1741 s4 = [s4, s5];
1742 s3 = s4;
1743 } else {
1744 peg$currPos = s3;
1745 s3 = peg$FAILED;
1746 }
1747 } else {
1748 peg$currPos = s3;
1749 s3 = peg$FAILED;
1750 }
1751 while (s3 !== peg$FAILED) {
1752 s2.push(s3);
1753 s3 = peg$currPos;
1754 s4 = peg$currPos;
1755 peg$silentFails++;
1756 s5 = peg$parseLineTerminator();
1757 peg$silentFails--;
1758 if (s5 === peg$FAILED) {
1759 s4 = void 0;
1760 } else {
1761 peg$currPos = s4;
1762 s4 = peg$FAILED;
1763 }
1764 if (s4 !== peg$FAILED) {
1765 s5 = peg$parseSourceCharacter();
1766 if (s5 !== peg$FAILED) {
1767 s4 = [s4, s5];
1768 s3 = s4;
1769 } else {
1770 peg$currPos = s3;
1771 s3 = peg$FAILED;
1772 }
1773 } else {
1774 peg$currPos = s3;
1775 s3 = peg$FAILED;
1776 }
1777 }
1778 if (s2 !== peg$FAILED) {
1779 s1 = [s1, s2];
1780 s0 = s1;
1781 } else {
1782 peg$currPos = s0;
1783 s0 = peg$FAILED;
1784 }
1785 } else {
1786 peg$currPos = s0;
1787 s0 = peg$FAILED;
1788 }
1789
1790 return s0;
1791 }
1792
1793 function peg$parseIdentifier() {
1794 var s0, s1, s2;
1795
1796 s0 = peg$currPos;
1797 s1 = peg$currPos;
1798 peg$silentFails++;
1799 s2 = peg$parseReservedWord();
1800 peg$silentFails--;
1801 if (s2 === peg$FAILED) {
1802 s1 = void 0;
1803 } else {
1804 peg$currPos = s1;
1805 s1 = peg$FAILED;
1806 }
1807 if (s1 !== peg$FAILED) {
1808 s2 = peg$parseIdentifierName();
1809 if (s2 !== peg$FAILED) {
1810 peg$savedPos = s0;
1811 s1 = peg$c35(s2);
1812 s0 = s1;
1813 } else {
1814 peg$currPos = s0;
1815 s0 = peg$FAILED;
1816 }
1817 } else {
1818 peg$currPos = s0;
1819 s0 = peg$FAILED;
1820 }
1821
1822 return s0;
1823 }
1824
1825 function peg$parseIdentifierName() {
1826 var s0, s1, s2, s3;
1827
1828 peg$silentFails++;
1829 s0 = peg$currPos;
1830 s1 = peg$parseIdentifierStart();
1831 if (s1 !== peg$FAILED) {
1832 s2 = [];
1833 s3 = peg$parseIdentifierPart();
1834 while (s3 !== peg$FAILED) {
1835 s2.push(s3);
1836 s3 = peg$parseIdentifierPart();
1837 }
1838 if (s2 !== peg$FAILED) {
1839 peg$savedPos = s0;
1840 s1 = peg$c37(s1, s2);
1841 s0 = s1;
1842 } else {
1843 peg$currPos = s0;
1844 s0 = peg$FAILED;
1845 }
1846 } else {
1847 peg$currPos = s0;
1848 s0 = peg$FAILED;
1849 }
1850 peg$silentFails--;
1851 if (s0 === peg$FAILED) {
1852 s1 = peg$FAILED;
1853 if (peg$silentFails === 0) { peg$fail(peg$c36); }
1854 }
1855
1856 return s0;
1857 }
1858
1859 function peg$parseIdentifierStart() {
1860 var s0, s1, s2;
1861
1862 s0 = peg$parseUnicodeLetter();
1863 if (s0 === peg$FAILED) {
1864 if (input.charCodeAt(peg$currPos) === 36) {
1865 s0 = peg$c38;
1866 peg$currPos++;
1867 } else {
1868 s0 = peg$FAILED;
1869 if (peg$silentFails === 0) { peg$fail(peg$c39); }
1870 }
1871 if (s0 === peg$FAILED) {
1872 if (input.charCodeAt(peg$currPos) === 95) {
1873 s0 = peg$c40;
1874 peg$currPos++;
1875 } else {
1876 s0 = peg$FAILED;
1877 if (peg$silentFails === 0) { peg$fail(peg$c41); }
1878 }
1879 if (s0 === peg$FAILED) {
1880 s0 = peg$currPos;
1881 if (input.charCodeAt(peg$currPos) === 92) {
1882 s1 = peg$c42;
1883 peg$currPos++;
1884 } else {
1885 s1 = peg$FAILED;
1886 if (peg$silentFails === 0) { peg$fail(peg$c43); }
1887 }
1888 if (s1 !== peg$FAILED) {
1889 s2 = peg$parseUnicodeEscapeSequence();
1890 if (s2 !== peg$FAILED) {
1891 peg$savedPos = s0;
1892 s1 = peg$c44(s2);
1893 s0 = s1;
1894 } else {
1895 peg$currPos = s0;
1896 s0 = peg$FAILED;
1897 }
1898 } else {
1899 peg$currPos = s0;
1900 s0 = peg$FAILED;
1901 }
1902 }
1903 }
1904 }
1905
1906 return s0;
1907 }
1908
1909 function peg$parseIdentifierPart() {
1910 var s0;
1911
1912 s0 = peg$parseIdentifierStart();
1913 if (s0 === peg$FAILED) {
1914 s0 = peg$parseUnicodeCombiningMark();
1915 if (s0 === peg$FAILED) {
1916 s0 = peg$parseNd();
1917 if (s0 === peg$FAILED) {
1918 s0 = peg$parsePc();
1919 if (s0 === peg$FAILED) {
1920 if (input.charCodeAt(peg$currPos) === 8204) {
1921 s0 = peg$c45;
1922 peg$currPos++;
1923 } else {
1924 s0 = peg$FAILED;
1925 if (peg$silentFails === 0) { peg$fail(peg$c46); }
1926 }
1927 if (s0 === peg$FAILED) {
1928 if (input.charCodeAt(peg$currPos) === 8205) {
1929 s0 = peg$c47;
1930 peg$currPos++;
1931 } else {
1932 s0 = peg$FAILED;
1933 if (peg$silentFails === 0) { peg$fail(peg$c48); }
1934 }
1935 }
1936 }
1937 }
1938 }
1939 }
1940
1941 return s0;
1942 }
1943
1944 function peg$parseUnicodeLetter() {
1945 var s0;
1946
1947 s0 = peg$parseLu();
1948 if (s0 === peg$FAILED) {
1949 s0 = peg$parseLl();
1950 if (s0 === peg$FAILED) {
1951 s0 = peg$parseLt();
1952 if (s0 === peg$FAILED) {
1953 s0 = peg$parseLm();
1954 if (s0 === peg$FAILED) {
1955 s0 = peg$parseLo();
1956 if (s0 === peg$FAILED) {
1957 s0 = peg$parseNl();
1958 }
1959 }
1960 }
1961 }
1962 }
1963
1964 return s0;
1965 }
1966
1967 function peg$parseUnicodeCombiningMark() {
1968 var s0;
1969
1970 s0 = peg$parseMn();
1971 if (s0 === peg$FAILED) {
1972 s0 = peg$parseMc();
1973 }
1974
1975 return s0;
1976 }
1977
1978 function peg$parseReservedWord() {
1979 var s0;
1980
1981 s0 = peg$parseKeyword();
1982 if (s0 === peg$FAILED) {
1983 s0 = peg$parseFutureReservedWord();
1984 if (s0 === peg$FAILED) {
1985 s0 = peg$parseNullLiteral();
1986 if (s0 === peg$FAILED) {
1987 s0 = peg$parseBooleanLiteral();
1988 }
1989 }
1990 }
1991
1992 return s0;
1993 }
1994
1995 function peg$parseKeyword() {
1996 var s0;
1997
1998 s0 = peg$parseBreakToken();
1999 if (s0 === peg$FAILED) {
2000 s0 = peg$parseCaseToken();
2001 if (s0 === peg$FAILED) {
2002 s0 = peg$parseCatchToken();
2003 if (s0 === peg$FAILED) {
2004 s0 = peg$parseContinueToken();
2005 if (s0 === peg$FAILED) {
2006 s0 = peg$parseDebuggerToken();
2007 if (s0 === peg$FAILED) {
2008 s0 = peg$parseDefaultToken();
2009 if (s0 === peg$FAILED) {
2010 s0 = peg$parseDeleteToken();
2011 if (s0 === peg$FAILED) {
2012 s0 = peg$parseDoToken();
2013 if (s0 === peg$FAILED) {
2014 s0 = peg$parseElseToken();
2015 if (s0 === peg$FAILED) {
2016 s0 = peg$parseFinallyToken();
2017 if (s0 === peg$FAILED) {
2018 s0 = peg$parseForToken();
2019 if (s0 === peg$FAILED) {
2020 s0 = peg$parseFunctionToken();
2021 if (s0 === peg$FAILED) {
2022 s0 = peg$parseIfToken();
2023 if (s0 === peg$FAILED) {
2024 s0 = peg$parseInstanceofToken();
2025 if (s0 === peg$FAILED) {
2026 s0 = peg$parseInToken();
2027 if (s0 === peg$FAILED) {
2028 s0 = peg$parseNewToken();
2029 if (s0 === peg$FAILED) {
2030 s0 = peg$parseReturnToken();
2031 if (s0 === peg$FAILED) {
2032 s0 = peg$parseSwitchToken();
2033 if (s0 === peg$FAILED) {
2034 s0 = peg$parseThisToken();
2035 if (s0 === peg$FAILED) {
2036 s0 = peg$parseThrowToken();
2037 if (s0 === peg$FAILED) {
2038 s0 = peg$parseTryToken();
2039 if (s0 === peg$FAILED) {
2040 s0 = peg$parseTypeofToken();
2041 if (s0 === peg$FAILED) {
2042 s0 = peg$parseVarToken();
2043 if (s0 === peg$FAILED) {
2044 s0 = peg$parseVoidToken();
2045 if (s0 === peg$FAILED) {
2046 s0 = peg$parseWhileToken();
2047 if (s0 === peg$FAILED) {
2048 s0 = peg$parseWithToken();
2049 }
2050 }
2051 }
2052 }
2053 }
2054 }
2055 }
2056 }
2057 }
2058 }
2059 }
2060 }
2061 }
2062 }
2063 }
2064 }
2065 }
2066 }
2067 }
2068 }
2069 }
2070 }
2071 }
2072 }
2073 }
2074
2075 return s0;
2076 }
2077
2078 function peg$parseFutureReservedWord() {
2079 var s0;
2080
2081 s0 = peg$parseClassToken();
2082 if (s0 === peg$FAILED) {
2083 s0 = peg$parseConstToken();
2084 if (s0 === peg$FAILED) {
2085 s0 = peg$parseEnumToken();
2086 if (s0 === peg$FAILED) {
2087 s0 = peg$parseExportToken();
2088 if (s0 === peg$FAILED) {
2089 s0 = peg$parseExtendsToken();
2090 if (s0 === peg$FAILED) {
2091 s0 = peg$parseImportToken();
2092 if (s0 === peg$FAILED) {
2093 s0 = peg$parseSuperToken();
2094 }
2095 }
2096 }
2097 }
2098 }
2099 }
2100
2101 return s0;
2102 }
2103
2104 function peg$parseLiteral() {
2105 var s0;
2106
2107 s0 = peg$parseNullLiteral();
2108 if (s0 === peg$FAILED) {
2109 s0 = peg$parseBooleanLiteral();
2110 if (s0 === peg$FAILED) {
2111 s0 = peg$parseNumericLiteral();
2112 if (s0 === peg$FAILED) {
2113 s0 = peg$parseStringLiteral();
2114 if (s0 === peg$FAILED) {
2115 s0 = peg$parseRegularExpressionLiteral();
2116 }
2117 }
2118 }
2119 }
2120
2121 return s0;
2122 }
2123
2124 function peg$parseNullLiteral() {
2125 var s0, s1;
2126
2127 s0 = peg$currPos;
2128 s1 = peg$parseNullToken();
2129 if (s1 !== peg$FAILED) {
2130 peg$savedPos = s0;
2131 s1 = peg$c49();
2132 }
2133 s0 = s1;
2134
2135 return s0;
2136 }
2137
2138 function peg$parseBooleanLiteral() {
2139 var s0, s1;
2140
2141 s0 = peg$currPos;
2142 s1 = peg$parseTrueToken();
2143 if (s1 !== peg$FAILED) {
2144 peg$savedPos = s0;
2145 s1 = peg$c50();
2146 }
2147 s0 = s1;
2148 if (s0 === peg$FAILED) {
2149 s0 = peg$currPos;
2150 s1 = peg$parseFalseToken();
2151 if (s1 !== peg$FAILED) {
2152 peg$savedPos = s0;
2153 s1 = peg$c51();
2154 }
2155 s0 = s1;
2156 }
2157
2158 return s0;
2159 }
2160
2161 function peg$parseNumericLiteral() {
2162 var s0, s1, s2, s3;
2163
2164 peg$silentFails++;
2165 s0 = peg$currPos;
2166 s1 = peg$parseHexIntegerLiteral();
2167 if (s1 !== peg$FAILED) {
2168 s2 = peg$currPos;
2169 peg$silentFails++;
2170 s3 = peg$parseIdentifierStart();
2171 if (s3 === peg$FAILED) {
2172 s3 = peg$parseDecimalDigit();
2173 }
2174 peg$silentFails--;
2175 if (s3 === peg$FAILED) {
2176 s2 = void 0;
2177 } else {
2178 peg$currPos = s2;
2179 s2 = peg$FAILED;
2180 }
2181 if (s2 !== peg$FAILED) {
2182 peg$savedPos = s0;
2183 s1 = peg$c53(s1);
2184 s0 = s1;
2185 } else {
2186 peg$currPos = s0;
2187 s0 = peg$FAILED;
2188 }
2189 } else {
2190 peg$currPos = s0;
2191 s0 = peg$FAILED;
2192 }
2193 if (s0 === peg$FAILED) {
2194 s0 = peg$currPos;
2195 s1 = peg$parseDecimalLiteral();
2196 if (s1 !== peg$FAILED) {
2197 s2 = peg$currPos;
2198 peg$silentFails++;
2199 s3 = peg$parseIdentifierStart();
2200 if (s3 === peg$FAILED) {
2201 s3 = peg$parseDecimalDigit();
2202 }
2203 peg$silentFails--;
2204 if (s3 === peg$FAILED) {
2205 s2 = void 0;
2206 } else {
2207 peg$currPos = s2;
2208 s2 = peg$FAILED;
2209 }
2210 if (s2 !== peg$FAILED) {
2211 peg$savedPos = s0;
2212 s1 = peg$c53(s1);
2213 s0 = s1;
2214 } else {
2215 peg$currPos = s0;
2216 s0 = peg$FAILED;
2217 }
2218 } else {
2219 peg$currPos = s0;
2220 s0 = peg$FAILED;
2221 }
2222 }
2223 peg$silentFails--;
2224 if (s0 === peg$FAILED) {
2225 s1 = peg$FAILED;
2226 if (peg$silentFails === 0) { peg$fail(peg$c52); }
2227 }
2228
2229 return s0;
2230 }
2231
2232 function peg$parseDecimalLiteral() {
2233 var s0, s1, s2, s3, s4;
2234
2235 s0 = peg$currPos;
2236 s1 = peg$parseDecimalIntegerLiteral();
2237 if (s1 !== peg$FAILED) {
2238 if (input.charCodeAt(peg$currPos) === 46) {
2239 s2 = peg$c54;
2240 peg$currPos++;
2241 } else {
2242 s2 = peg$FAILED;
2243 if (peg$silentFails === 0) { peg$fail(peg$c55); }
2244 }
2245 if (s2 !== peg$FAILED) {
2246 s3 = [];
2247 s4 = peg$parseDecimalDigit();
2248 while (s4 !== peg$FAILED) {
2249 s3.push(s4);
2250 s4 = peg$parseDecimalDigit();
2251 }
2252 if (s3 !== peg$FAILED) {
2253 s4 = peg$parseExponentPart();
2254 if (s4 === peg$FAILED) {
2255 s4 = null;
2256 }
2257 if (s4 !== peg$FAILED) {
2258 peg$savedPos = s0;
2259 s1 = peg$c56();
2260 s0 = s1;
2261 } else {
2262 peg$currPos = s0;
2263 s0 = peg$FAILED;
2264 }
2265 } else {
2266 peg$currPos = s0;
2267 s0 = peg$FAILED;
2268 }
2269 } else {
2270 peg$currPos = s0;
2271 s0 = peg$FAILED;
2272 }
2273 } else {
2274 peg$currPos = s0;
2275 s0 = peg$FAILED;
2276 }
2277 if (s0 === peg$FAILED) {
2278 s0 = peg$currPos;
2279 if (input.charCodeAt(peg$currPos) === 46) {
2280 s1 = peg$c54;
2281 peg$currPos++;
2282 } else {
2283 s1 = peg$FAILED;
2284 if (peg$silentFails === 0) { peg$fail(peg$c55); }
2285 }
2286 if (s1 !== peg$FAILED) {
2287 s2 = [];
2288 s3 = peg$parseDecimalDigit();
2289 if (s3 !== peg$FAILED) {
2290 while (s3 !== peg$FAILED) {
2291 s2.push(s3);
2292 s3 = peg$parseDecimalDigit();
2293 }
2294 } else {
2295 s2 = peg$FAILED;
2296 }
2297 if (s2 !== peg$FAILED) {
2298 s3 = peg$parseExponentPart();
2299 if (s3 === peg$FAILED) {
2300 s3 = null;
2301 }
2302 if (s3 !== peg$FAILED) {
2303 peg$savedPos = s0;
2304 s1 = peg$c56();
2305 s0 = s1;
2306 } else {
2307 peg$currPos = s0;
2308 s0 = peg$FAILED;
2309 }
2310 } else {
2311 peg$currPos = s0;
2312 s0 = peg$FAILED;
2313 }
2314 } else {
2315 peg$currPos = s0;
2316 s0 = peg$FAILED;
2317 }
2318 if (s0 === peg$FAILED) {
2319 s0 = peg$currPos;
2320 s1 = peg$parseDecimalIntegerLiteral();
2321 if (s1 !== peg$FAILED) {
2322 s2 = peg$parseExponentPart();
2323 if (s2 === peg$FAILED) {
2324 s2 = null;
2325 }
2326 if (s2 !== peg$FAILED) {
2327 peg$savedPos = s0;
2328 s1 = peg$c56();
2329 s0 = s1;
2330 } else {
2331 peg$currPos = s0;
2332 s0 = peg$FAILED;
2333 }
2334 } else {
2335 peg$currPos = s0;
2336 s0 = peg$FAILED;
2337 }
2338 }
2339 }
2340
2341 return s0;
2342 }
2343
2344 function peg$parseSignedRealLiteral() {
2345 var s0, s1, s2, s3, s4, s5;
2346
2347 s0 = peg$currPos;
2348 if (peg$c57.test(input.charAt(peg$currPos))) {
2349 s1 = input.charAt(peg$currPos);
2350 peg$currPos++;
2351 } else {
2352 s1 = peg$FAILED;
2353 if (peg$silentFails === 0) { peg$fail(peg$c58); }
2354 }
2355 if (s1 === peg$FAILED) {
2356 s1 = null;
2357 }
2358 if (s1 !== peg$FAILED) {
2359 s2 = peg$parseDecimalIntegerLiteral();
2360 if (s2 !== peg$FAILED) {
2361 if (input.charCodeAt(peg$currPos) === 46) {
2362 s3 = peg$c54;
2363 peg$currPos++;
2364 } else {
2365 s3 = peg$FAILED;
2366 if (peg$silentFails === 0) { peg$fail(peg$c55); }
2367 }
2368 if (s3 !== peg$FAILED) {
2369 s4 = [];
2370 s5 = peg$parseDecimalDigit();
2371 while (s5 !== peg$FAILED) {
2372 s4.push(s5);
2373 s5 = peg$parseDecimalDigit();
2374 }
2375 if (s4 !== peg$FAILED) {
2376 s5 = peg$parseExponentPart();
2377 if (s5 === peg$FAILED) {
2378 s5 = null;
2379 }
2380 if (s5 !== peg$FAILED) {
2381 peg$savedPos = s0;
2382 s1 = peg$c56();
2383 s0 = s1;
2384 } else {
2385 peg$currPos = s0;
2386 s0 = peg$FAILED;
2387 }
2388 } else {
2389 peg$currPos = s0;
2390 s0 = peg$FAILED;
2391 }
2392 } else {
2393 peg$currPos = s0;
2394 s0 = peg$FAILED;
2395 }
2396 } else {
2397 peg$currPos = s0;
2398 s0 = peg$FAILED;
2399 }
2400 } else {
2401 peg$currPos = s0;
2402 s0 = peg$FAILED;
2403 }
2404
2405 return s0;
2406 }
2407
2408 function peg$parseDecimalIntegerLiteral() {
2409 var s0, s1, s2, s3;
2410
2411 if (input.charCodeAt(peg$currPos) === 48) {
2412 s0 = peg$c59;
2413 peg$currPos++;
2414 } else {
2415 s0 = peg$FAILED;
2416 if (peg$silentFails === 0) { peg$fail(peg$c60); }
2417 }
2418 if (s0 === peg$FAILED) {
2419 s0 = peg$currPos;
2420 s1 = peg$parseNonZeroDigit();
2421 if (s1 !== peg$FAILED) {
2422 s2 = [];
2423 s3 = peg$parseDecimalDigit();
2424 while (s3 !== peg$FAILED) {
2425 s2.push(s3);
2426 s3 = peg$parseDecimalDigit();
2427 }
2428 if (s2 !== peg$FAILED) {
2429 s1 = [s1, s2];
2430 s0 = s1;
2431 } else {
2432 peg$currPos = s0;
2433 s0 = peg$FAILED;
2434 }
2435 } else {
2436 peg$currPos = s0;
2437 s0 = peg$FAILED;
2438 }
2439 }
2440
2441 return s0;
2442 }
2443
2444 function peg$parseDecimalDigit() {
2445 var s0;
2446
2447 if (peg$c61.test(input.charAt(peg$currPos))) {
2448 s0 = input.charAt(peg$currPos);
2449 peg$currPos++;
2450 } else {
2451 s0 = peg$FAILED;
2452 if (peg$silentFails === 0) { peg$fail(peg$c62); }
2453 }
2454
2455 return s0;
2456 }
2457
2458 function peg$parseNonZeroDigit() {
2459 var s0;
2460
2461 if (peg$c63.test(input.charAt(peg$currPos))) {
2462 s0 = input.charAt(peg$currPos);
2463 peg$currPos++;
2464 } else {
2465 s0 = peg$FAILED;
2466 if (peg$silentFails === 0) { peg$fail(peg$c64); }
2467 }
2468
2469 return s0;
2470 }
2471
2472 function peg$parseExponentPart() {
2473 var s0, s1, s2;
2474
2475 s0 = peg$currPos;
2476 s1 = peg$parseExponentIndicator();
2477 if (s1 !== peg$FAILED) {
2478 s2 = peg$parseSignedInteger();
2479 if (s2 !== peg$FAILED) {
2480 s1 = [s1, s2];
2481 s0 = s1;
2482 } else {
2483 peg$currPos = s0;
2484 s0 = peg$FAILED;
2485 }
2486 } else {
2487 peg$currPos = s0;
2488 s0 = peg$FAILED;
2489 }
2490
2491 return s0;
2492 }
2493
2494 function peg$parseExponentIndicator() {
2495 var s0;
2496
2497 if (input.substr(peg$currPos, 1).toLowerCase() === peg$c65) {
2498 s0 = input.charAt(peg$currPos);
2499 peg$currPos++;
2500 } else {
2501 s0 = peg$FAILED;
2502 if (peg$silentFails === 0) { peg$fail(peg$c66); }
2503 }
2504
2505 return s0;
2506 }
2507
2508 function peg$parseSignedInteger() {
2509 var s0, s1, s2, s3;
2510
2511 s0 = peg$currPos;
2512 if (peg$c57.test(input.charAt(peg$currPos))) {
2513 s1 = input.charAt(peg$currPos);
2514 peg$currPos++;
2515 } else {
2516 s1 = peg$FAILED;
2517 if (peg$silentFails === 0) { peg$fail(peg$c58); }
2518 }
2519 if (s1 === peg$FAILED) {
2520 s1 = null;
2521 }
2522 if (s1 !== peg$FAILED) {
2523 s2 = [];
2524 s3 = peg$parseDecimalDigit();
2525 if (s3 !== peg$FAILED) {
2526 while (s3 !== peg$FAILED) {
2527 s2.push(s3);
2528 s3 = peg$parseDecimalDigit();
2529 }
2530 } else {
2531 s2 = peg$FAILED;
2532 }
2533 if (s2 !== peg$FAILED) {
2534 s1 = [s1, s2];
2535 s0 = s1;
2536 } else {
2537 peg$currPos = s0;
2538 s0 = peg$FAILED;
2539 }
2540 } else {
2541 peg$currPos = s0;
2542 s0 = peg$FAILED;
2543 }
2544
2545 return s0;
2546 }
2547
2548 function peg$parseHexIntegerLiteral() {
2549 var s0, s1, s2, s3, s4;
2550
2551 s0 = peg$currPos;
2552 if (input.substr(peg$currPos, 2).toLowerCase() === peg$c67) {
2553 s1 = input.substr(peg$currPos, 2);
2554 peg$currPos += 2;
2555 } else {
2556 s1 = peg$FAILED;
2557 if (peg$silentFails === 0) { peg$fail(peg$c68); }
2558 }
2559 if (s1 !== peg$FAILED) {
2560 s2 = peg$currPos;
2561 s3 = [];
2562 s4 = peg$parseHexDigit();
2563 if (s4 !== peg$FAILED) {
2564 while (s4 !== peg$FAILED) {
2565 s3.push(s4);
2566 s4 = peg$parseHexDigit();
2567 }
2568 } else {
2569 s3 = peg$FAILED;
2570 }
2571 if (s3 !== peg$FAILED) {
2572 s2 = input.substring(s2, peg$currPos);
2573 } else {
2574 s2 = s3;
2575 }
2576 if (s2 !== peg$FAILED) {
2577 peg$savedPos = s0;
2578 s1 = peg$c69(s2);
2579 s0 = s1;
2580 } else {
2581 peg$currPos = s0;
2582 s0 = peg$FAILED;
2583 }
2584 } else {
2585 peg$currPos = s0;
2586 s0 = peg$FAILED;
2587 }
2588
2589 return s0;
2590 }
2591
2592 function peg$parseHexDigit() {
2593 var s0;
2594
2595 if (peg$c70.test(input.charAt(peg$currPos))) {
2596 s0 = input.charAt(peg$currPos);
2597 peg$currPos++;
2598 } else {
2599 s0 = peg$FAILED;
2600 if (peg$silentFails === 0) { peg$fail(peg$c71); }
2601 }
2602
2603 return s0;
2604 }
2605
2606 function peg$parseStringLiteral() {
2607 var s0, s1, s2, s3;
2608
2609 peg$silentFails++;
2610 s0 = peg$currPos;
2611 if (input.charCodeAt(peg$currPos) === 34) {
2612 s1 = peg$c73;
2613 peg$currPos++;
2614 } else {
2615 s1 = peg$FAILED;
2616 if (peg$silentFails === 0) { peg$fail(peg$c74); }
2617 }
2618 if (s1 !== peg$FAILED) {
2619 s2 = [];
2620 s3 = peg$parseDoubleStringCharacter();
2621 while (s3 !== peg$FAILED) {
2622 s2.push(s3);
2623 s3 = peg$parseDoubleStringCharacter();
2624 }
2625 if (s2 !== peg$FAILED) {
2626 if (input.charCodeAt(peg$currPos) === 34) {
2627 s3 = peg$c73;
2628 peg$currPos++;
2629 } else {
2630 s3 = peg$FAILED;
2631 if (peg$silentFails === 0) { peg$fail(peg$c74); }
2632 }
2633 if (s3 !== peg$FAILED) {
2634 peg$savedPos = s0;
2635 s1 = peg$c75(s2);
2636 s0 = s1;
2637 } else {
2638 peg$currPos = s0;
2639 s0 = peg$FAILED;
2640 }
2641 } else {
2642 peg$currPos = s0;
2643 s0 = peg$FAILED;
2644 }
2645 } else {
2646 peg$currPos = s0;
2647 s0 = peg$FAILED;
2648 }
2649 if (s0 === peg$FAILED) {
2650 s0 = peg$currPos;
2651 if (input.charCodeAt(peg$currPos) === 39) {
2652 s1 = peg$c76;
2653 peg$currPos++;
2654 } else {
2655 s1 = peg$FAILED;
2656 if (peg$silentFails === 0) { peg$fail(peg$c77); }
2657 }
2658 if (s1 !== peg$FAILED) {
2659 s2 = [];
2660 s3 = peg$parseSingleStringCharacter();
2661 while (s3 !== peg$FAILED) {
2662 s2.push(s3);
2663 s3 = peg$parseSingleStringCharacter();
2664 }
2665 if (s2 !== peg$FAILED) {
2666 if (input.charCodeAt(peg$currPos) === 39) {
2667 s3 = peg$c76;
2668 peg$currPos++;
2669 } else {
2670 s3 = peg$FAILED;
2671 if (peg$silentFails === 0) { peg$fail(peg$c77); }
2672 }
2673 if (s3 !== peg$FAILED) {
2674 peg$savedPos = s0;
2675 s1 = peg$c75(s2);
2676 s0 = s1;
2677 } else {
2678 peg$currPos = s0;
2679 s0 = peg$FAILED;
2680 }
2681 } else {
2682 peg$currPos = s0;
2683 s0 = peg$FAILED;
2684 }
2685 } else {
2686 peg$currPos = s0;
2687 s0 = peg$FAILED;
2688 }
2689 }
2690 peg$silentFails--;
2691 if (s0 === peg$FAILED) {
2692 s1 = peg$FAILED;
2693 if (peg$silentFails === 0) { peg$fail(peg$c72); }
2694 }
2695
2696 return s0;
2697 }
2698
2699 function peg$parseDoubleStringCharacter() {
2700 var s0, s1, s2;
2701
2702 s0 = peg$currPos;
2703 s1 = peg$currPos;
2704 peg$silentFails++;
2705 if (input.charCodeAt(peg$currPos) === 34) {
2706 s2 = peg$c73;
2707 peg$currPos++;
2708 } else {
2709 s2 = peg$FAILED;
2710 if (peg$silentFails === 0) { peg$fail(peg$c74); }
2711 }
2712 if (s2 === peg$FAILED) {
2713 if (input.charCodeAt(peg$currPos) === 92) {
2714 s2 = peg$c42;
2715 peg$currPos++;
2716 } else {
2717 s2 = peg$FAILED;
2718 if (peg$silentFails === 0) { peg$fail(peg$c43); }
2719 }
2720 if (s2 === peg$FAILED) {
2721 s2 = peg$parseLineTerminator();
2722 }
2723 }
2724 peg$silentFails--;
2725 if (s2 === peg$FAILED) {
2726 s1 = void 0;
2727 } else {
2728 peg$currPos = s1;
2729 s1 = peg$FAILED;
2730 }
2731 if (s1 !== peg$FAILED) {
2732 s2 = peg$parseSourceCharacter();
2733 if (s2 !== peg$FAILED) {
2734 peg$savedPos = s0;
2735 s1 = peg$c78();
2736 s0 = s1;
2737 } else {
2738 peg$currPos = s0;
2739 s0 = peg$FAILED;
2740 }
2741 } else {
2742 peg$currPos = s0;
2743 s0 = peg$FAILED;
2744 }
2745 if (s0 === peg$FAILED) {
2746 s0 = peg$currPos;
2747 if (input.charCodeAt(peg$currPos) === 92) {
2748 s1 = peg$c42;
2749 peg$currPos++;
2750 } else {
2751 s1 = peg$FAILED;
2752 if (peg$silentFails === 0) { peg$fail(peg$c43); }
2753 }
2754 if (s1 !== peg$FAILED) {
2755 s2 = peg$parseEscapeSequence();
2756 if (s2 !== peg$FAILED) {
2757 peg$savedPos = s0;
2758 s1 = peg$c44(s2);
2759 s0 = s1;
2760 } else {
2761 peg$currPos = s0;
2762 s0 = peg$FAILED;
2763 }
2764 } else {
2765 peg$currPos = s0;
2766 s0 = peg$FAILED;
2767 }
2768 if (s0 === peg$FAILED) {
2769 s0 = peg$parseLineContinuation();
2770 }
2771 }
2772
2773 return s0;
2774 }
2775
2776 function peg$parseSingleStringCharacter() {
2777 var s0, s1, s2;
2778
2779 s0 = peg$currPos;
2780 s1 = peg$currPos;
2781 peg$silentFails++;
2782 if (input.charCodeAt(peg$currPos) === 39) {
2783 s2 = peg$c76;
2784 peg$currPos++;
2785 } else {
2786 s2 = peg$FAILED;
2787 if (peg$silentFails === 0) { peg$fail(peg$c77); }
2788 }
2789 if (s2 === peg$FAILED) {
2790 if (input.charCodeAt(peg$currPos) === 92) {
2791 s2 = peg$c42;
2792 peg$currPos++;
2793 } else {
2794 s2 = peg$FAILED;
2795 if (peg$silentFails === 0) { peg$fail(peg$c43); }
2796 }
2797 if (s2 === peg$FAILED) {
2798 s2 = peg$parseLineTerminator();
2799 }
2800 }
2801 peg$silentFails--;
2802 if (s2 === peg$FAILED) {
2803 s1 = void 0;
2804 } else {
2805 peg$currPos = s1;
2806 s1 = peg$FAILED;
2807 }
2808 if (s1 !== peg$FAILED) {
2809 s2 = peg$parseSourceCharacter();
2810 if (s2 !== peg$FAILED) {
2811 peg$savedPos = s0;
2812 s1 = peg$c78();
2813 s0 = s1;
2814 } else {
2815 peg$currPos = s0;
2816 s0 = peg$FAILED;
2817 }
2818 } else {
2819 peg$currPos = s0;
2820 s0 = peg$FAILED;
2821 }
2822 if (s0 === peg$FAILED) {
2823 s0 = peg$currPos;
2824 if (input.charCodeAt(peg$currPos) === 92) {
2825 s1 = peg$c42;
2826 peg$currPos++;
2827 } else {
2828 s1 = peg$FAILED;
2829 if (peg$silentFails === 0) { peg$fail(peg$c43); }
2830 }
2831 if (s1 !== peg$FAILED) {
2832 s2 = peg$parseEscapeSequence();
2833 if (s2 !== peg$FAILED) {
2834 peg$savedPos = s0;
2835 s1 = peg$c44(s2);
2836 s0 = s1;
2837 } else {
2838 peg$currPos = s0;
2839 s0 = peg$FAILED;
2840 }
2841 } else {
2842 peg$currPos = s0;
2843 s0 = peg$FAILED;
2844 }
2845 if (s0 === peg$FAILED) {
2846 s0 = peg$parseLineContinuation();
2847 }
2848 }
2849
2850 return s0;
2851 }
2852
2853 function peg$parseLineContinuation() {
2854 var s0, s1, s2;
2855
2856 s0 = peg$currPos;
2857 if (input.charCodeAt(peg$currPos) === 92) {
2858 s1 = peg$c42;
2859 peg$currPos++;
2860 } else {
2861 s1 = peg$FAILED;
2862 if (peg$silentFails === 0) { peg$fail(peg$c43); }
2863 }
2864 if (s1 !== peg$FAILED) {
2865 s2 = peg$parseLineTerminatorSequence();
2866 if (s2 !== peg$FAILED) {
2867 peg$savedPos = s0;
2868 s1 = peg$c79();
2869 s0 = s1;
2870 } else {
2871 peg$currPos = s0;
2872 s0 = peg$FAILED;
2873 }
2874 } else {
2875 peg$currPos = s0;
2876 s0 = peg$FAILED;
2877 }
2878
2879 return s0;
2880 }
2881
2882 function peg$parseEscapeSequence() {
2883 var s0, s1, s2, s3;
2884
2885 s0 = peg$parseCharacterEscapeSequence();
2886 if (s0 === peg$FAILED) {
2887 s0 = peg$currPos;
2888 if (input.charCodeAt(peg$currPos) === 48) {
2889 s1 = peg$c59;
2890 peg$currPos++;
2891 } else {
2892 s1 = peg$FAILED;
2893 if (peg$silentFails === 0) { peg$fail(peg$c60); }
2894 }
2895 if (s1 !== peg$FAILED) {
2896 s2 = peg$currPos;
2897 peg$silentFails++;
2898 s3 = peg$parseDecimalDigit();
2899 peg$silentFails--;
2900 if (s3 === peg$FAILED) {
2901 s2 = void 0;
2902 } else {
2903 peg$currPos = s2;
2904 s2 = peg$FAILED;
2905 }
2906 if (s2 !== peg$FAILED) {
2907 peg$savedPos = s0;
2908 s1 = peg$c80();
2909 s0 = s1;
2910 } else {
2911 peg$currPos = s0;
2912 s0 = peg$FAILED;
2913 }
2914 } else {
2915 peg$currPos = s0;
2916 s0 = peg$FAILED;
2917 }
2918 if (s0 === peg$FAILED) {
2919 s0 = peg$parseHexEscapeSequence();
2920 if (s0 === peg$FAILED) {
2921 s0 = peg$parseUnicodeEscapeSequence();
2922 }
2923 }
2924 }
2925
2926 return s0;
2927 }
2928
2929 function peg$parseCharacterEscapeSequence() {
2930 var s0;
2931
2932 s0 = peg$parseSingleEscapeCharacter();
2933 if (s0 === peg$FAILED) {
2934 s0 = peg$parseNonEscapeCharacter();
2935 }
2936
2937 return s0;
2938 }
2939
2940 function peg$parseSingleEscapeCharacter() {
2941 var s0, s1;
2942
2943 if (input.charCodeAt(peg$currPos) === 39) {
2944 s0 = peg$c76;
2945 peg$currPos++;
2946 } else {
2947 s0 = peg$FAILED;
2948 if (peg$silentFails === 0) { peg$fail(peg$c77); }
2949 }
2950 if (s0 === peg$FAILED) {
2951 if (input.charCodeAt(peg$currPos) === 34) {
2952 s0 = peg$c73;
2953 peg$currPos++;
2954 } else {
2955 s0 = peg$FAILED;
2956 if (peg$silentFails === 0) { peg$fail(peg$c74); }
2957 }
2958 if (s0 === peg$FAILED) {
2959 if (input.charCodeAt(peg$currPos) === 92) {
2960 s0 = peg$c42;
2961 peg$currPos++;
2962 } else {
2963 s0 = peg$FAILED;
2964 if (peg$silentFails === 0) { peg$fail(peg$c43); }
2965 }
2966 if (s0 === peg$FAILED) {
2967 s0 = peg$currPos;
2968 if (input.charCodeAt(peg$currPos) === 98) {
2969 s1 = peg$c81;
2970 peg$currPos++;
2971 } else {
2972 s1 = peg$FAILED;
2973 if (peg$silentFails === 0) { peg$fail(peg$c82); }
2974 }
2975 if (s1 !== peg$FAILED) {
2976 peg$savedPos = s0;
2977 s1 = peg$c83();
2978 }
2979 s0 = s1;
2980 if (s0 === peg$FAILED) {
2981 s0 = peg$currPos;
2982 if (input.charCodeAt(peg$currPos) === 102) {
2983 s1 = peg$c84;
2984 peg$currPos++;
2985 } else {
2986 s1 = peg$FAILED;
2987 if (peg$silentFails === 0) { peg$fail(peg$c85); }
2988 }
2989 if (s1 !== peg$FAILED) {
2990 peg$savedPos = s0;
2991 s1 = peg$c86();
2992 }
2993 s0 = s1;
2994 if (s0 === peg$FAILED) {
2995 s0 = peg$currPos;
2996 if (input.charCodeAt(peg$currPos) === 110) {
2997 s1 = peg$c87;
2998 peg$currPos++;
2999 } else {
3000 s1 = peg$FAILED;
3001 if (peg$silentFails === 0) { peg$fail(peg$c88); }
3002 }
3003 if (s1 !== peg$FAILED) {
3004 peg$savedPos = s0;
3005 s1 = peg$c89();
3006 }
3007 s0 = s1;
3008 if (s0 === peg$FAILED) {
3009 s0 = peg$currPos;
3010 if (input.charCodeAt(peg$currPos) === 114) {
3011 s1 = peg$c90;
3012 peg$currPos++;
3013 } else {
3014 s1 = peg$FAILED;
3015 if (peg$silentFails === 0) { peg$fail(peg$c91); }
3016 }
3017 if (s1 !== peg$FAILED) {
3018 peg$savedPos = s0;
3019 s1 = peg$c92();
3020 }
3021 s0 = s1;
3022 if (s0 === peg$FAILED) {
3023 s0 = peg$currPos;
3024 if (input.charCodeAt(peg$currPos) === 116) {
3025 s1 = peg$c93;
3026 peg$currPos++;
3027 } else {
3028 s1 = peg$FAILED;
3029 if (peg$silentFails === 0) { peg$fail(peg$c94); }
3030 }
3031 if (s1 !== peg$FAILED) {
3032 peg$savedPos = s0;
3033 s1 = peg$c95();
3034 }
3035 s0 = s1;
3036 if (s0 === peg$FAILED) {
3037 s0 = peg$currPos;
3038 if (input.charCodeAt(peg$currPos) === 118) {
3039 s1 = peg$c96;
3040 peg$currPos++;
3041 } else {
3042 s1 = peg$FAILED;
3043 if (peg$silentFails === 0) { peg$fail(peg$c97); }
3044 }
3045 if (s1 !== peg$FAILED) {
3046 peg$savedPos = s0;
3047 s1 = peg$c98();
3048 }
3049 s0 = s1;
3050 }
3051 }
3052 }
3053 }
3054 }
3055 }
3056 }
3057 }
3058
3059 return s0;
3060 }
3061
3062 function peg$parseNonEscapeCharacter() {
3063 var s0, s1, s2;
3064
3065 s0 = peg$currPos;
3066 s1 = peg$currPos;
3067 peg$silentFails++;
3068 s2 = peg$parseEscapeCharacter();
3069 if (s2 === peg$FAILED) {
3070 s2 = peg$parseLineTerminator();
3071 }
3072 peg$silentFails--;
3073 if (s2 === peg$FAILED) {
3074 s1 = void 0;
3075 } else {
3076 peg$currPos = s1;
3077 s1 = peg$FAILED;
3078 }
3079 if (s1 !== peg$FAILED) {
3080 s2 = peg$parseSourceCharacter();
3081 if (s2 !== peg$FAILED) {
3082 peg$savedPos = s0;
3083 s1 = peg$c78();
3084 s0 = s1;
3085 } else {
3086 peg$currPos = s0;
3087 s0 = peg$FAILED;
3088 }
3089 } else {
3090 peg$currPos = s0;
3091 s0 = peg$FAILED;
3092 }
3093
3094 return s0;
3095 }
3096
3097 function peg$parseEscapeCharacter() {
3098 var s0;
3099
3100 s0 = peg$parseSingleEscapeCharacter();
3101 if (s0 === peg$FAILED) {
3102 s0 = peg$parseDecimalDigit();
3103 if (s0 === peg$FAILED) {
3104 if (input.charCodeAt(peg$currPos) === 120) {
3105 s0 = peg$c99;
3106 peg$currPos++;
3107 } else {
3108 s0 = peg$FAILED;
3109 if (peg$silentFails === 0) { peg$fail(peg$c100); }
3110 }
3111 if (s0 === peg$FAILED) {
3112 if (input.charCodeAt(peg$currPos) === 117) {
3113 s0 = peg$c101;
3114 peg$currPos++;
3115 } else {
3116 s0 = peg$FAILED;
3117 if (peg$silentFails === 0) { peg$fail(peg$c102); }
3118 }
3119 }
3120 }
3121 }
3122
3123 return s0;
3124 }
3125
3126 function peg$parseHexEscapeSequence() {
3127 var s0, s1, s2, s3, s4, s5;
3128
3129 s0 = peg$currPos;
3130 if (input.charCodeAt(peg$currPos) === 120) {
3131 s1 = peg$c99;
3132 peg$currPos++;
3133 } else {
3134 s1 = peg$FAILED;
3135 if (peg$silentFails === 0) { peg$fail(peg$c100); }
3136 }
3137 if (s1 !== peg$FAILED) {
3138 s2 = peg$currPos;
3139 s3 = peg$currPos;
3140 s4 = peg$parseHexDigit();
3141 if (s4 !== peg$FAILED) {
3142 s5 = peg$parseHexDigit();
3143 if (s5 !== peg$FAILED) {
3144 s4 = [s4, s5];
3145 s3 = s4;
3146 } else {
3147 peg$currPos = s3;
3148 s3 = peg$FAILED;
3149 }
3150 } else {
3151 peg$currPos = s3;
3152 s3 = peg$FAILED;
3153 }
3154 if (s3 !== peg$FAILED) {
3155 s2 = input.substring(s2, peg$currPos);
3156 } else {
3157 s2 = s3;
3158 }
3159 if (s2 !== peg$FAILED) {
3160 peg$savedPos = s0;
3161 s1 = peg$c103(s2);
3162 s0 = s1;
3163 } else {
3164 peg$currPos = s0;
3165 s0 = peg$FAILED;
3166 }
3167 } else {
3168 peg$currPos = s0;
3169 s0 = peg$FAILED;
3170 }
3171
3172 return s0;
3173 }
3174
3175 function peg$parseUnicodeEscapeSequence() {
3176 var s0, s1, s2, s3, s4, s5, s6, s7;
3177
3178 s0 = peg$currPos;
3179 if (input.charCodeAt(peg$currPos) === 117) {
3180 s1 = peg$c101;
3181 peg$currPos++;
3182 } else {
3183 s1 = peg$FAILED;
3184 if (peg$silentFails === 0) { peg$fail(peg$c102); }
3185 }
3186 if (s1 !== peg$FAILED) {
3187 s2 = peg$currPos;
3188 s3 = peg$currPos;
3189 s4 = peg$parseHexDigit();
3190 if (s4 !== peg$FAILED) {
3191 s5 = peg$parseHexDigit();
3192 if (s5 !== peg$FAILED) {
3193 s6 = peg$parseHexDigit();
3194 if (s6 !== peg$FAILED) {
3195 s7 = peg$parseHexDigit();
3196 if (s7 !== peg$FAILED) {
3197 s4 = [s4, s5, s6, s7];
3198 s3 = s4;
3199 } else {
3200 peg$currPos = s3;
3201 s3 = peg$FAILED;
3202 }
3203 } else {
3204 peg$currPos = s3;
3205 s3 = peg$FAILED;
3206 }
3207 } else {
3208 peg$currPos = s3;
3209 s3 = peg$FAILED;
3210 }
3211 } else {
3212 peg$currPos = s3;
3213 s3 = peg$FAILED;
3214 }
3215 if (s3 !== peg$FAILED) {
3216 s2 = input.substring(s2, peg$currPos);
3217 } else {
3218 s2 = s3;
3219 }
3220 if (s2 !== peg$FAILED) {
3221 peg$savedPos = s0;
3222 s1 = peg$c103(s2);
3223 s0 = s1;
3224 } else {
3225 peg$currPos = s0;
3226 s0 = peg$FAILED;
3227 }
3228 } else {
3229 peg$currPos = s0;
3230 s0 = peg$FAILED;
3231 }
3232
3233 return s0;
3234 }
3235
3236 function peg$parseRegularExpressionLiteral() {
3237 var s0, s1, s2, s3, s4, s5;
3238
3239 peg$silentFails++;
3240 s0 = peg$currPos;
3241 if (input.charCodeAt(peg$currPos) === 47) {
3242 s1 = peg$c105;
3243 peg$currPos++;
3244 } else {
3245 s1 = peg$FAILED;
3246 if (peg$silentFails === 0) { peg$fail(peg$c106); }
3247 }
3248 if (s1 !== peg$FAILED) {
3249 s2 = peg$currPos;
3250 s3 = peg$parseRegularExpressionBody();
3251 if (s3 !== peg$FAILED) {
3252 s2 = input.substring(s2, peg$currPos);
3253 } else {
3254 s2 = s3;
3255 }
3256 if (s2 !== peg$FAILED) {
3257 if (input.charCodeAt(peg$currPos) === 47) {
3258 s3 = peg$c105;
3259 peg$currPos++;
3260 } else {
3261 s3 = peg$FAILED;
3262 if (peg$silentFails === 0) { peg$fail(peg$c106); }
3263 }
3264 if (s3 !== peg$FAILED) {
3265 s4 = peg$currPos;
3266 s5 = peg$parseRegularExpressionFlags();
3267 if (s5 !== peg$FAILED) {
3268 s4 = input.substring(s4, peg$currPos);
3269 } else {
3270 s4 = s5;
3271 }
3272 if (s4 !== peg$FAILED) {
3273 peg$savedPos = s0;
3274 s1 = peg$c107(s2, s4);
3275 s0 = s1;
3276 } else {
3277 peg$currPos = s0;
3278 s0 = peg$FAILED;
3279 }
3280 } else {
3281 peg$currPos = s0;
3282 s0 = peg$FAILED;
3283 }
3284 } else {
3285 peg$currPos = s0;
3286 s0 = peg$FAILED;
3287 }
3288 } else {
3289 peg$currPos = s0;
3290 s0 = peg$FAILED;
3291 }
3292 peg$silentFails--;
3293 if (s0 === peg$FAILED) {
3294 s1 = peg$FAILED;
3295 if (peg$silentFails === 0) { peg$fail(peg$c104); }
3296 }
3297
3298 return s0;
3299 }
3300
3301 function peg$parseRegularExpressionBody() {
3302 var s0, s1, s2, s3;
3303
3304 s0 = peg$currPos;
3305 s1 = peg$parseRegularExpressionFirstChar();
3306 if (s1 !== peg$FAILED) {
3307 s2 = [];
3308 s3 = peg$parseRegularExpressionChar();
3309 while (s3 !== peg$FAILED) {
3310 s2.push(s3);
3311 s3 = peg$parseRegularExpressionChar();
3312 }
3313 if (s2 !== peg$FAILED) {
3314 s1 = [s1, s2];
3315 s0 = s1;
3316 } else {
3317 peg$currPos = s0;
3318 s0 = peg$FAILED;
3319 }
3320 } else {
3321 peg$currPos = s0;
3322 s0 = peg$FAILED;
3323 }
3324
3325 return s0;
3326 }
3327
3328 function peg$parseRegularExpressionFirstChar() {
3329 var s0, s1, s2;
3330
3331 s0 = peg$currPos;
3332 s1 = peg$currPos;
3333 peg$silentFails++;
3334 if (peg$c108.test(input.charAt(peg$currPos))) {
3335 s2 = input.charAt(peg$currPos);
3336 peg$currPos++;
3337 } else {
3338 s2 = peg$FAILED;
3339 if (peg$silentFails === 0) { peg$fail(peg$c109); }
3340 }
3341 peg$silentFails--;
3342 if (s2 === peg$FAILED) {
3343 s1 = void 0;
3344 } else {
3345 peg$currPos = s1;
3346 s1 = peg$FAILED;
3347 }
3348 if (s1 !== peg$FAILED) {
3349 s2 = peg$parseRegularExpressionNonTerminator();
3350 if (s2 !== peg$FAILED) {
3351 s1 = [s1, s2];
3352 s0 = s1;
3353 } else {
3354 peg$currPos = s0;
3355 s0 = peg$FAILED;
3356 }
3357 } else {
3358 peg$currPos = s0;
3359 s0 = peg$FAILED;
3360 }
3361 if (s0 === peg$FAILED) {
3362 s0 = peg$parseRegularExpressionBackslashSequence();
3363 if (s0 === peg$FAILED) {
3364 s0 = peg$parseRegularExpressionClass();
3365 }
3366 }
3367
3368 return s0;
3369 }
3370
3371 function peg$parseRegularExpressionChar() {
3372 var s0, s1, s2;
3373
3374 s0 = peg$currPos;
3375 s1 = peg$currPos;
3376 peg$silentFails++;
3377 if (peg$c110.test(input.charAt(peg$currPos))) {
3378 s2 = input.charAt(peg$currPos);
3379 peg$currPos++;
3380 } else {
3381 s2 = peg$FAILED;
3382 if (peg$silentFails === 0) { peg$fail(peg$c111); }
3383 }
3384 peg$silentFails--;
3385 if (s2 === peg$FAILED) {
3386 s1 = void 0;
3387 } else {
3388 peg$currPos = s1;
3389 s1 = peg$FAILED;
3390 }
3391 if (s1 !== peg$FAILED) {
3392 s2 = peg$parseRegularExpressionNonTerminator();
3393 if (s2 !== peg$FAILED) {
3394 s1 = [s1, s2];
3395 s0 = s1;
3396 } else {
3397 peg$currPos = s0;
3398 s0 = peg$FAILED;
3399 }
3400 } else {
3401 peg$currPos = s0;
3402 s0 = peg$FAILED;
3403 }
3404 if (s0 === peg$FAILED) {
3405 s0 = peg$parseRegularExpressionBackslashSequence();
3406 if (s0 === peg$FAILED) {
3407 s0 = peg$parseRegularExpressionClass();
3408 }
3409 }
3410
3411 return s0;
3412 }
3413
3414 function peg$parseRegularExpressionBackslashSequence() {
3415 var s0, s1, s2;
3416
3417 s0 = peg$currPos;
3418 if (input.charCodeAt(peg$currPos) === 92) {
3419 s1 = peg$c42;
3420 peg$currPos++;
3421 } else {
3422 s1 = peg$FAILED;
3423 if (peg$silentFails === 0) { peg$fail(peg$c43); }
3424 }
3425 if (s1 !== peg$FAILED) {
3426 s2 = peg$parseRegularExpressionNonTerminator();
3427 if (s2 !== peg$FAILED) {
3428 s1 = [s1, s2];
3429 s0 = s1;
3430 } else {
3431 peg$currPos = s0;
3432 s0 = peg$FAILED;
3433 }
3434 } else {
3435 peg$currPos = s0;
3436 s0 = peg$FAILED;
3437 }
3438
3439 return s0;
3440 }
3441
3442 function peg$parseRegularExpressionNonTerminator() {
3443 var s0, s1, s2;
3444
3445 s0 = peg$currPos;
3446 s1 = peg$currPos;
3447 peg$silentFails++;
3448 s2 = peg$parseLineTerminator();
3449 peg$silentFails--;
3450 if (s2 === peg$FAILED) {
3451 s1 = void 0;
3452 } else {
3453 peg$currPos = s1;
3454 s1 = peg$FAILED;
3455 }
3456 if (s1 !== peg$FAILED) {
3457 s2 = peg$parseSourceCharacter();
3458 if (s2 !== peg$FAILED) {
3459 s1 = [s1, s2];
3460 s0 = s1;
3461 } else {
3462 peg$currPos = s0;
3463 s0 = peg$FAILED;
3464 }
3465 } else {
3466 peg$currPos = s0;
3467 s0 = peg$FAILED;
3468 }
3469
3470 return s0;
3471 }
3472
3473 function peg$parseRegularExpressionClass() {
3474 var s0, s1, s2, s3;
3475
3476 s0 = peg$currPos;
3477 if (input.charCodeAt(peg$currPos) === 91) {
3478 s1 = peg$c112;
3479 peg$currPos++;
3480 } else {
3481 s1 = peg$FAILED;
3482 if (peg$silentFails === 0) { peg$fail(peg$c113); }
3483 }
3484 if (s1 !== peg$FAILED) {
3485 s2 = [];
3486 s3 = peg$parseRegularExpressionClassChar();
3487 while (s3 !== peg$FAILED) {
3488 s2.push(s3);
3489 s3 = peg$parseRegularExpressionClassChar();
3490 }
3491 if (s2 !== peg$FAILED) {
3492 if (input.charCodeAt(peg$currPos) === 93) {
3493 s3 = peg$c114;
3494 peg$currPos++;
3495 } else {
3496 s3 = peg$FAILED;
3497 if (peg$silentFails === 0) { peg$fail(peg$c115); }
3498 }
3499 if (s3 !== peg$FAILED) {
3500 s1 = [s1, s2, s3];
3501 s0 = s1;
3502 } else {
3503 peg$currPos = s0;
3504 s0 = peg$FAILED;
3505 }
3506 } else {
3507 peg$currPos = s0;
3508 s0 = peg$FAILED;
3509 }
3510 } else {
3511 peg$currPos = s0;
3512 s0 = peg$FAILED;
3513 }
3514
3515 return s0;
3516 }
3517
3518 function peg$parseRegularExpressionClassChar() {
3519 var s0, s1, s2;
3520
3521 s0 = peg$currPos;
3522 s1 = peg$currPos;
3523 peg$silentFails++;
3524 if (peg$c116.test(input.charAt(peg$currPos))) {
3525 s2 = input.charAt(peg$currPos);
3526 peg$currPos++;
3527 } else {
3528 s2 = peg$FAILED;
3529 if (peg$silentFails === 0) { peg$fail(peg$c117); }
3530 }
3531 peg$silentFails--;
3532 if (s2 === peg$FAILED) {
3533 s1 = void 0;
3534 } else {
3535 peg$currPos = s1;
3536 s1 = peg$FAILED;
3537 }
3538 if (s1 !== peg$FAILED) {
3539 s2 = peg$parseRegularExpressionNonTerminator();
3540 if (s2 !== peg$FAILED) {
3541 s1 = [s1, s2];
3542 s0 = s1;
3543 } else {
3544 peg$currPos = s0;
3545 s0 = peg$FAILED;
3546 }
3547 } else {
3548 peg$currPos = s0;
3549 s0 = peg$FAILED;
3550 }
3551 if (s0 === peg$FAILED) {
3552 s0 = peg$parseRegularExpressionBackslashSequence();
3553 }
3554
3555 return s0;
3556 }
3557
3558 function peg$parseRegularExpressionFlags() {
3559 var s0, s1;
3560
3561 s0 = [];
3562 s1 = peg$parseIdentifierPart();
3563 while (s1 !== peg$FAILED) {
3564 s0.push(s1);
3565 s1 = peg$parseIdentifierPart();
3566 }
3567
3568 return s0;
3569 }
3570
3571 function peg$parseLl() {
3572 var s0;
3573
3574 if (peg$c118.test(input.charAt(peg$currPos))) {
3575 s0 = input.charAt(peg$currPos);
3576 peg$currPos++;
3577 } else {
3578 s0 = peg$FAILED;
3579 if (peg$silentFails === 0) { peg$fail(peg$c119); }
3580 }
3581
3582 return s0;
3583 }
3584
3585 function peg$parseLm() {
3586 var s0;
3587
3588 if (peg$c120.test(input.charAt(peg$currPos))) {
3589 s0 = input.charAt(peg$currPos);
3590 peg$currPos++;
3591 } else {
3592 s0 = peg$FAILED;
3593 if (peg$silentFails === 0) { peg$fail(peg$c121); }
3594 }
3595
3596 return s0;
3597 }
3598
3599 function peg$parseLo() {
3600 var s0;
3601
3602 if (peg$c122.test(input.charAt(peg$currPos))) {
3603 s0 = input.charAt(peg$currPos);
3604 peg$currPos++;
3605 } else {
3606 s0 = peg$FAILED;
3607 if (peg$silentFails === 0) { peg$fail(peg$c123); }
3608 }
3609
3610 return s0;
3611 }
3612
3613 function peg$parseLt() {
3614 var s0;
3615
3616 if (peg$c124.test(input.charAt(peg$currPos))) {
3617 s0 = input.charAt(peg$currPos);
3618 peg$currPos++;
3619 } else {
3620 s0 = peg$FAILED;
3621 if (peg$silentFails === 0) { peg$fail(peg$c125); }
3622 }
3623
3624 return s0;
3625 }
3626
3627 function peg$parseLu() {
3628 var s0;
3629
3630 if (peg$c126.test(input.charAt(peg$currPos))) {
3631 s0 = input.charAt(peg$currPos);
3632 peg$currPos++;
3633 } else {
3634 s0 = peg$FAILED;
3635 if (peg$silentFails === 0) { peg$fail(peg$c127); }
3636 }
3637
3638 return s0;
3639 }
3640
3641 function peg$parseMc() {
3642 var s0;
3643
3644 if (peg$c128.test(input.charAt(peg$currPos))) {
3645 s0 = input.charAt(peg$currPos);
3646 peg$currPos++;
3647 } else {
3648 s0 = peg$FAILED;
3649 if (peg$silentFails === 0) { peg$fail(peg$c129); }
3650 }
3651
3652 return s0;
3653 }
3654
3655 function peg$parseMn() {
3656 var s0;
3657
3658 if (peg$c130.test(input.charAt(peg$currPos))) {
3659 s0 = input.charAt(peg$currPos);
3660 peg$currPos++;
3661 } else {
3662 s0 = peg$FAILED;
3663 if (peg$silentFails === 0) { peg$fail(peg$c131); }
3664 }
3665
3666 return s0;
3667 }
3668
3669 function peg$parseNd() {
3670 var s0;
3671
3672 if (peg$c132.test(input.charAt(peg$currPos))) {
3673 s0 = input.charAt(peg$currPos);
3674 peg$currPos++;
3675 } else {
3676 s0 = peg$FAILED;
3677 if (peg$silentFails === 0) { peg$fail(peg$c133); }
3678 }
3679
3680 return s0;
3681 }
3682
3683 function peg$parseNl() {
3684 var s0;
3685
3686 if (peg$c134.test(input.charAt(peg$currPos))) {
3687 s0 = input.charAt(peg$currPos);
3688 peg$currPos++;
3689 } else {
3690 s0 = peg$FAILED;
3691 if (peg$silentFails === 0) { peg$fail(peg$c135); }
3692 }
3693
3694 return s0;
3695 }
3696
3697 function peg$parsePc() {
3698 var s0;
3699
3700 if (peg$c136.test(input.charAt(peg$currPos))) {
3701 s0 = input.charAt(peg$currPos);
3702 peg$currPos++;
3703 } else {
3704 s0 = peg$FAILED;
3705 if (peg$silentFails === 0) { peg$fail(peg$c137); }
3706 }
3707
3708 return s0;
3709 }
3710
3711 function peg$parseZs() {
3712 var s0;
3713
3714 if (peg$c138.test(input.charAt(peg$currPos))) {
3715 s0 = input.charAt(peg$currPos);
3716 peg$currPos++;
3717 } else {
3718 s0 = peg$FAILED;
3719 if (peg$silentFails === 0) { peg$fail(peg$c139); }
3720 }
3721
3722 return s0;
3723 }
3724
3725 function peg$parseBreakToken() {
3726 var s0, s1, s2, s3;
3727
3728 s0 = peg$currPos;
3729 if (input.substr(peg$currPos, 5) === peg$c140) {
3730 s1 = peg$c140;
3731 peg$currPos += 5;
3732 } else {
3733 s1 = peg$FAILED;
3734 if (peg$silentFails === 0) { peg$fail(peg$c141); }
3735 }
3736 if (s1 !== peg$FAILED) {
3737 s2 = peg$currPos;
3738 peg$silentFails++;
3739 s3 = peg$parseIdentifierPart();
3740 peg$silentFails--;
3741 if (s3 === peg$FAILED) {
3742 s2 = void 0;
3743 } else {
3744 peg$currPos = s2;
3745 s2 = peg$FAILED;
3746 }
3747 if (s2 !== peg$FAILED) {
3748 s1 = [s1, s2];
3749 s0 = s1;
3750 } else {
3751 peg$currPos = s0;
3752 s0 = peg$FAILED;
3753 }
3754 } else {
3755 peg$currPos = s0;
3756 s0 = peg$FAILED;
3757 }
3758
3759 return s0;
3760 }
3761
3762 function peg$parseCaseToken() {
3763 var s0, s1, s2, s3;
3764
3765 s0 = peg$currPos;
3766 if (input.substr(peg$currPos, 4) === peg$c142) {
3767 s1 = peg$c142;
3768 peg$currPos += 4;
3769 } else {
3770 s1 = peg$FAILED;
3771 if (peg$silentFails === 0) { peg$fail(peg$c143); }
3772 }
3773 if (s1 !== peg$FAILED) {
3774 s2 = peg$currPos;
3775 peg$silentFails++;
3776 s3 = peg$parseIdentifierPart();
3777 peg$silentFails--;
3778 if (s3 === peg$FAILED) {
3779 s2 = void 0;
3780 } else {
3781 peg$currPos = s2;
3782 s2 = peg$FAILED;
3783 }
3784 if (s2 !== peg$FAILED) {
3785 s1 = [s1, s2];
3786 s0 = s1;
3787 } else {
3788 peg$currPos = s0;
3789 s0 = peg$FAILED;
3790 }
3791 } else {
3792 peg$currPos = s0;
3793 s0 = peg$FAILED;
3794 }
3795
3796 return s0;
3797 }
3798
3799 function peg$parseCatchToken() {
3800 var s0, s1, s2, s3;
3801
3802 s0 = peg$currPos;
3803 if (input.substr(peg$currPos, 5) === peg$c144) {
3804 s1 = peg$c144;
3805 peg$currPos += 5;
3806 } else {
3807 s1 = peg$FAILED;
3808 if (peg$silentFails === 0) { peg$fail(peg$c145); }
3809 }
3810 if (s1 !== peg$FAILED) {
3811 s2 = peg$currPos;
3812 peg$silentFails++;
3813 s3 = peg$parseIdentifierPart();
3814 peg$silentFails--;
3815 if (s3 === peg$FAILED) {
3816 s2 = void 0;
3817 } else {
3818 peg$currPos = s2;
3819 s2 = peg$FAILED;
3820 }
3821 if (s2 !== peg$FAILED) {
3822 s1 = [s1, s2];
3823 s0 = s1;
3824 } else {
3825 peg$currPos = s0;
3826 s0 = peg$FAILED;
3827 }
3828 } else {
3829 peg$currPos = s0;
3830 s0 = peg$FAILED;
3831 }
3832
3833 return s0;
3834 }
3835
3836 function peg$parseClassToken() {
3837 var s0, s1, s2, s3;
3838
3839 s0 = peg$currPos;
3840 if (input.substr(peg$currPos, 5) === peg$c146) {
3841 s1 = peg$c146;
3842 peg$currPos += 5;
3843 } else {
3844 s1 = peg$FAILED;
3845 if (peg$silentFails === 0) { peg$fail(peg$c147); }
3846 }
3847 if (s1 !== peg$FAILED) {
3848 s2 = peg$currPos;
3849 peg$silentFails++;
3850 s3 = peg$parseIdentifierPart();
3851 peg$silentFails--;
3852 if (s3 === peg$FAILED) {
3853 s2 = void 0;
3854 } else {
3855 peg$currPos = s2;
3856 s2 = peg$FAILED;
3857 }
3858 if (s2 !== peg$FAILED) {
3859 s1 = [s1, s2];
3860 s0 = s1;
3861 } else {
3862 peg$currPos = s0;
3863 s0 = peg$FAILED;
3864 }
3865 } else {
3866 peg$currPos = s0;
3867 s0 = peg$FAILED;
3868 }
3869
3870 return s0;
3871 }
3872
3873 function peg$parseConstToken() {
3874 var s0, s1, s2, s3;
3875
3876 s0 = peg$currPos;
3877 if (input.substr(peg$currPos, 5) === peg$c148) {
3878 s1 = peg$c148;
3879 peg$currPos += 5;
3880 } else {
3881 s1 = peg$FAILED;
3882 if (peg$silentFails === 0) { peg$fail(peg$c149); }
3883 }
3884 if (s1 !== peg$FAILED) {
3885 s2 = peg$currPos;
3886 peg$silentFails++;
3887 s3 = peg$parseIdentifierPart();
3888 peg$silentFails--;
3889 if (s3 === peg$FAILED) {
3890 s2 = void 0;
3891 } else {
3892 peg$currPos = s2;
3893 s2 = peg$FAILED;
3894 }
3895 if (s2 !== peg$FAILED) {
3896 s1 = [s1, s2];
3897 s0 = s1;
3898 } else {
3899 peg$currPos = s0;
3900 s0 = peg$FAILED;
3901 }
3902 } else {
3903 peg$currPos = s0;
3904 s0 = peg$FAILED;
3905 }
3906
3907 return s0;
3908 }
3909
3910 function peg$parseContinueToken() {
3911 var s0, s1, s2, s3;
3912
3913 s0 = peg$currPos;
3914 if (input.substr(peg$currPos, 8) === peg$c150) {
3915 s1 = peg$c150;
3916 peg$currPos += 8;
3917 } else {
3918 s1 = peg$FAILED;
3919 if (peg$silentFails === 0) { peg$fail(peg$c151); }
3920 }
3921 if (s1 !== peg$FAILED) {
3922 s2 = peg$currPos;
3923 peg$silentFails++;
3924 s3 = peg$parseIdentifierPart();
3925 peg$silentFails--;
3926 if (s3 === peg$FAILED) {
3927 s2 = void 0;
3928 } else {
3929 peg$currPos = s2;
3930 s2 = peg$FAILED;
3931 }
3932 if (s2 !== peg$FAILED) {
3933 s1 = [s1, s2];
3934 s0 = s1;
3935 } else {
3936 peg$currPos = s0;
3937 s0 = peg$FAILED;
3938 }
3939 } else {
3940 peg$currPos = s0;
3941 s0 = peg$FAILED;
3942 }
3943
3944 return s0;
3945 }
3946
3947 function peg$parseDebuggerToken() {
3948 var s0, s1, s2, s3;
3949
3950 s0 = peg$currPos;
3951 if (input.substr(peg$currPos, 8) === peg$c152) {
3952 s1 = peg$c152;
3953 peg$currPos += 8;
3954 } else {
3955 s1 = peg$FAILED;
3956 if (peg$silentFails === 0) { peg$fail(peg$c153); }
3957 }
3958 if (s1 !== peg$FAILED) {
3959 s2 = peg$currPos;
3960 peg$silentFails++;
3961 s3 = peg$parseIdentifierPart();
3962 peg$silentFails--;
3963 if (s3 === peg$FAILED) {
3964 s2 = void 0;
3965 } else {
3966 peg$currPos = s2;
3967 s2 = peg$FAILED;
3968 }
3969 if (s2 !== peg$FAILED) {
3970 s1 = [s1, s2];
3971 s0 = s1;
3972 } else {
3973 peg$currPos = s0;
3974 s0 = peg$FAILED;
3975 }
3976 } else {
3977 peg$currPos = s0;
3978 s0 = peg$FAILED;
3979 }
3980
3981 return s0;
3982 }
3983
3984 function peg$parseDefaultToken() {
3985 var s0, s1, s2, s3;
3986
3987 s0 = peg$currPos;
3988 if (input.substr(peg$currPos, 7) === peg$c154) {
3989 s1 = peg$c154;
3990 peg$currPos += 7;
3991 } else {
3992 s1 = peg$FAILED;
3993 if (peg$silentFails === 0) { peg$fail(peg$c155); }
3994 }
3995 if (s1 !== peg$FAILED) {
3996 s2 = peg$currPos;
3997 peg$silentFails++;
3998 s3 = peg$parseIdentifierPart();
3999 peg$silentFails--;
4000 if (s3 === peg$FAILED) {
4001 s2 = void 0;
4002 } else {
4003 peg$currPos = s2;
4004 s2 = peg$FAILED;
4005 }
4006 if (s2 !== peg$FAILED) {
4007 s1 = [s1, s2];
4008 s0 = s1;
4009 } else {
4010 peg$currPos = s0;
4011 s0 = peg$FAILED;
4012 }
4013 } else {
4014 peg$currPos = s0;
4015 s0 = peg$FAILED;
4016 }
4017
4018 return s0;
4019 }
4020
4021 function peg$parseDeleteToken() {
4022 var s0, s1, s2, s3;
4023
4024 s0 = peg$currPos;
4025 if (input.substr(peg$currPos, 6) === peg$c156) {
4026 s1 = peg$c156;
4027 peg$currPos += 6;
4028 } else {
4029 s1 = peg$FAILED;
4030 if (peg$silentFails === 0) { peg$fail(peg$c157); }
4031 }
4032 if (s1 !== peg$FAILED) {
4033 s2 = peg$currPos;
4034 peg$silentFails++;
4035 s3 = peg$parseIdentifierPart();
4036 peg$silentFails--;
4037 if (s3 === peg$FAILED) {
4038 s2 = void 0;
4039 } else {
4040 peg$currPos = s2;
4041 s2 = peg$FAILED;
4042 }
4043 if (s2 !== peg$FAILED) {
4044 s1 = [s1, s2];
4045 s0 = s1;
4046 } else {
4047 peg$currPos = s0;
4048 s0 = peg$FAILED;
4049 }
4050 } else {
4051 peg$currPos = s0;
4052 s0 = peg$FAILED;
4053 }
4054
4055 return s0;
4056 }
4057
4058 function peg$parseDoToken() {
4059 var s0, s1, s2, s3;
4060
4061 s0 = peg$currPos;
4062 if (input.substr(peg$currPos, 2) === peg$c158) {
4063 s1 = peg$c158;
4064 peg$currPos += 2;
4065 } else {
4066 s1 = peg$FAILED;
4067 if (peg$silentFails === 0) { peg$fail(peg$c159); }
4068 }
4069 if (s1 !== peg$FAILED) {
4070 s2 = peg$currPos;
4071 peg$silentFails++;
4072 s3 = peg$parseIdentifierPart();
4073 peg$silentFails--;
4074 if (s3 === peg$FAILED) {
4075 s2 = void 0;
4076 } else {
4077 peg$currPos = s2;
4078 s2 = peg$FAILED;
4079 }
4080 if (s2 !== peg$FAILED) {
4081 s1 = [s1, s2];
4082 s0 = s1;
4083 } else {
4084 peg$currPos = s0;
4085 s0 = peg$FAILED;
4086 }
4087 } else {
4088 peg$currPos = s0;
4089 s0 = peg$FAILED;
4090 }
4091
4092 return s0;
4093 }
4094
4095 function peg$parseElseToken() {
4096 var s0, s1, s2, s3;
4097
4098 s0 = peg$currPos;
4099 if (input.substr(peg$currPos, 4) === peg$c160) {
4100 s1 = peg$c160;
4101 peg$currPos += 4;
4102 } else {
4103 s1 = peg$FAILED;
4104 if (peg$silentFails === 0) { peg$fail(peg$c161); }
4105 }
4106 if (s1 !== peg$FAILED) {
4107 s2 = peg$currPos;
4108 peg$silentFails++;
4109 s3 = peg$parseIdentifierPart();
4110 peg$silentFails--;
4111 if (s3 === peg$FAILED) {
4112 s2 = void 0;
4113 } else {
4114 peg$currPos = s2;
4115 s2 = peg$FAILED;
4116 }
4117 if (s2 !== peg$FAILED) {
4118 s1 = [s1, s2];
4119 s0 = s1;
4120 } else {
4121 peg$currPos = s0;
4122 s0 = peg$FAILED;
4123 }
4124 } else {
4125 peg$currPos = s0;
4126 s0 = peg$FAILED;
4127 }
4128
4129 return s0;
4130 }
4131
4132 function peg$parseEnumToken() {
4133 var s0, s1, s2, s3;
4134
4135 s0 = peg$currPos;
4136 if (input.substr(peg$currPos, 4) === peg$c162) {
4137 s1 = peg$c162;
4138 peg$currPos += 4;
4139 } else {
4140 s1 = peg$FAILED;
4141 if (peg$silentFails === 0) { peg$fail(peg$c163); }
4142 }
4143 if (s1 !== peg$FAILED) {
4144 s2 = peg$currPos;
4145 peg$silentFails++;
4146 s3 = peg$parseIdentifierPart();
4147 peg$silentFails--;
4148 if (s3 === peg$FAILED) {
4149 s2 = void 0;
4150 } else {
4151 peg$currPos = s2;
4152 s2 = peg$FAILED;
4153 }
4154 if (s2 !== peg$FAILED) {
4155 s1 = [s1, s2];
4156 s0 = s1;
4157 } else {
4158 peg$currPos = s0;
4159 s0 = peg$FAILED;
4160 }
4161 } else {
4162 peg$currPos = s0;
4163 s0 = peg$FAILED;
4164 }
4165
4166 return s0;
4167 }
4168
4169 function peg$parseExportToken() {
4170 var s0, s1, s2, s3;
4171
4172 s0 = peg$currPos;
4173 if (input.substr(peg$currPos, 6) === peg$c164) {
4174 s1 = peg$c164;
4175 peg$currPos += 6;
4176 } else {
4177 s1 = peg$FAILED;
4178 if (peg$silentFails === 0) { peg$fail(peg$c165); }
4179 }
4180 if (s1 !== peg$FAILED) {
4181 s2 = peg$currPos;
4182 peg$silentFails++;
4183 s3 = peg$parseIdentifierPart();
4184 peg$silentFails--;
4185 if (s3 === peg$FAILED) {
4186 s2 = void 0;
4187 } else {
4188 peg$currPos = s2;
4189 s2 = peg$FAILED;
4190 }
4191 if (s2 !== peg$FAILED) {
4192 s1 = [s1, s2];
4193 s0 = s1;
4194 } else {
4195 peg$currPos = s0;
4196 s0 = peg$FAILED;
4197 }
4198 } else {
4199 peg$currPos = s0;
4200 s0 = peg$FAILED;
4201 }
4202
4203 return s0;
4204 }
4205
4206 function peg$parseExtendsToken() {
4207 var s0, s1, s2, s3;
4208
4209 s0 = peg$currPos;
4210 if (input.substr(peg$currPos, 7) === peg$c166) {
4211 s1 = peg$c166;
4212 peg$currPos += 7;
4213 } else {
4214 s1 = peg$FAILED;
4215 if (peg$silentFails === 0) { peg$fail(peg$c167); }
4216 }
4217 if (s1 !== peg$FAILED) {
4218 s2 = peg$currPos;
4219 peg$silentFails++;
4220 s3 = peg$parseIdentifierPart();
4221 peg$silentFails--;
4222 if (s3 === peg$FAILED) {
4223 s2 = void 0;
4224 } else {
4225 peg$currPos = s2;
4226 s2 = peg$FAILED;
4227 }
4228 if (s2 !== peg$FAILED) {
4229 s1 = [s1, s2];
4230 s0 = s1;
4231 } else {
4232 peg$currPos = s0;
4233 s0 = peg$FAILED;
4234 }
4235 } else {
4236 peg$currPos = s0;
4237 s0 = peg$FAILED;
4238 }
4239
4240 return s0;
4241 }
4242
4243 function peg$parseFalseToken() {
4244 var s0, s1, s2, s3;
4245
4246 s0 = peg$currPos;
4247 if (input.substr(peg$currPos, 5) === peg$c168) {
4248 s1 = peg$c168;
4249 peg$currPos += 5;
4250 } else {
4251 s1 = peg$FAILED;
4252 if (peg$silentFails === 0) { peg$fail(peg$c169); }
4253 }
4254 if (s1 !== peg$FAILED) {
4255 s2 = peg$currPos;
4256 peg$silentFails++;
4257 s3 = peg$parseIdentifierPart();
4258 peg$silentFails--;
4259 if (s3 === peg$FAILED) {
4260 s2 = void 0;
4261 } else {
4262 peg$currPos = s2;
4263 s2 = peg$FAILED;
4264 }
4265 if (s2 !== peg$FAILED) {
4266 s1 = [s1, s2];
4267 s0 = s1;
4268 } else {
4269 peg$currPos = s0;
4270 s0 = peg$FAILED;
4271 }
4272 } else {
4273 peg$currPos = s0;
4274 s0 = peg$FAILED;
4275 }
4276
4277 return s0;
4278 }
4279
4280 function peg$parseFinallyToken() {
4281 var s0, s1, s2, s3;
4282
4283 s0 = peg$currPos;
4284 if (input.substr(peg$currPos, 7) === peg$c170) {
4285 s1 = peg$c170;
4286 peg$currPos += 7;
4287 } else {
4288 s1 = peg$FAILED;
4289 if (peg$silentFails === 0) { peg$fail(peg$c171); }
4290 }
4291 if (s1 !== peg$FAILED) {
4292 s2 = peg$currPos;
4293 peg$silentFails++;
4294 s3 = peg$parseIdentifierPart();
4295 peg$silentFails--;
4296 if (s3 === peg$FAILED) {
4297 s2 = void 0;
4298 } else {
4299 peg$currPos = s2;
4300 s2 = peg$FAILED;
4301 }
4302 if (s2 !== peg$FAILED) {
4303 s1 = [s1, s2];
4304 s0 = s1;
4305 } else {
4306 peg$currPos = s0;
4307 s0 = peg$FAILED;
4308 }
4309 } else {
4310 peg$currPos = s0;
4311 s0 = peg$FAILED;
4312 }
4313
4314 return s0;
4315 }
4316
4317 function peg$parseForToken() {
4318 var s0, s1, s2, s3;
4319
4320 s0 = peg$currPos;
4321 if (input.substr(peg$currPos, 3) === peg$c172) {
4322 s1 = peg$c172;
4323 peg$currPos += 3;
4324 } else {
4325 s1 = peg$FAILED;
4326 if (peg$silentFails === 0) { peg$fail(peg$c173); }
4327 }
4328 if (s1 !== peg$FAILED) {
4329 s2 = peg$currPos;
4330 peg$silentFails++;
4331 s3 = peg$parseIdentifierPart();
4332 peg$silentFails--;
4333 if (s3 === peg$FAILED) {
4334 s2 = void 0;
4335 } else {
4336 peg$currPos = s2;
4337 s2 = peg$FAILED;
4338 }
4339 if (s2 !== peg$FAILED) {
4340 s1 = [s1, s2];
4341 s0 = s1;
4342 } else {
4343 peg$currPos = s0;
4344 s0 = peg$FAILED;
4345 }
4346 } else {
4347 peg$currPos = s0;
4348 s0 = peg$FAILED;
4349 }
4350
4351 return s0;
4352 }
4353
4354 function peg$parseFunctionToken() {
4355 var s0, s1, s2, s3;
4356
4357 s0 = peg$currPos;
4358 if (input.substr(peg$currPos, 8) === peg$c174) {
4359 s1 = peg$c174;
4360 peg$currPos += 8;
4361 } else {
4362 s1 = peg$FAILED;
4363 if (peg$silentFails === 0) { peg$fail(peg$c175); }
4364 }
4365 if (s1 !== peg$FAILED) {
4366 s2 = peg$currPos;
4367 peg$silentFails++;
4368 s3 = peg$parseIdentifierPart();
4369 peg$silentFails--;
4370 if (s3 === peg$FAILED) {
4371 s2 = void 0;
4372 } else {
4373 peg$currPos = s2;
4374 s2 = peg$FAILED;
4375 }
4376 if (s2 !== peg$FAILED) {
4377 s1 = [s1, s2];
4378 s0 = s1;
4379 } else {
4380 peg$currPos = s0;
4381 s0 = peg$FAILED;
4382 }
4383 } else {
4384 peg$currPos = s0;
4385 s0 = peg$FAILED;
4386 }
4387
4388 return s0;
4389 }
4390
4391 function peg$parseGetToken() {
4392 var s0, s1, s2, s3;
4393
4394 s0 = peg$currPos;
4395 if (input.substr(peg$currPos, 3) === peg$c176) {
4396 s1 = peg$c176;
4397 peg$currPos += 3;
4398 } else {
4399 s1 = peg$FAILED;
4400 if (peg$silentFails === 0) { peg$fail(peg$c177); }
4401 }
4402 if (s1 !== peg$FAILED) {
4403 s2 = peg$currPos;
4404 peg$silentFails++;
4405 s3 = peg$parseIdentifierPart();
4406 peg$silentFails--;
4407 if (s3 === peg$FAILED) {
4408 s2 = void 0;
4409 } else {
4410 peg$currPos = s2;
4411 s2 = peg$FAILED;
4412 }
4413 if (s2 !== peg$FAILED) {
4414 s1 = [s1, s2];
4415 s0 = s1;
4416 } else {
4417 peg$currPos = s0;
4418 s0 = peg$FAILED;
4419 }
4420 } else {
4421 peg$currPos = s0;
4422 s0 = peg$FAILED;
4423 }
4424
4425 return s0;
4426 }
4427
4428 function peg$parseIfToken() {
4429 var s0, s1, s2, s3;
4430
4431 s0 = peg$currPos;
4432 if (input.substr(peg$currPos, 2) === peg$c178) {
4433 s1 = peg$c178;
4434 peg$currPos += 2;
4435 } else {
4436 s1 = peg$FAILED;
4437 if (peg$silentFails === 0) { peg$fail(peg$c179); }
4438 }
4439 if (s1 !== peg$FAILED) {
4440 s2 = peg$currPos;
4441 peg$silentFails++;
4442 s3 = peg$parseIdentifierPart();
4443 peg$silentFails--;
4444 if (s3 === peg$FAILED) {
4445 s2 = void 0;
4446 } else {
4447 peg$currPos = s2;
4448 s2 = peg$FAILED;
4449 }
4450 if (s2 !== peg$FAILED) {
4451 s1 = [s1, s2];
4452 s0 = s1;
4453 } else {
4454 peg$currPos = s0;
4455 s0 = peg$FAILED;
4456 }
4457 } else {
4458 peg$currPos = s0;
4459 s0 = peg$FAILED;
4460 }
4461
4462 return s0;
4463 }
4464
4465 function peg$parseImportToken() {
4466 var s0, s1, s2, s3;
4467
4468 s0 = peg$currPos;
4469 if (input.substr(peg$currPos, 6) === peg$c180) {
4470 s1 = peg$c180;
4471 peg$currPos += 6;
4472 } else {
4473 s1 = peg$FAILED;
4474 if (peg$silentFails === 0) { peg$fail(peg$c181); }
4475 }
4476 if (s1 !== peg$FAILED) {
4477 s2 = peg$currPos;
4478 peg$silentFails++;
4479 s3 = peg$parseIdentifierPart();
4480 peg$silentFails--;
4481 if (s3 === peg$FAILED) {
4482 s2 = void 0;
4483 } else {
4484 peg$currPos = s2;
4485 s2 = peg$FAILED;
4486 }
4487 if (s2 !== peg$FAILED) {
4488 s1 = [s1, s2];
4489 s0 = s1;
4490 } else {
4491 peg$currPos = s0;
4492 s0 = peg$FAILED;
4493 }
4494 } else {
4495 peg$currPos = s0;
4496 s0 = peg$FAILED;
4497 }
4498
4499 return s0;
4500 }
4501
4502 function peg$parseInstanceofToken() {
4503 var s0, s1, s2, s3;
4504
4505 s0 = peg$currPos;
4506 if (input.substr(peg$currPos, 10) === peg$c182) {
4507 s1 = peg$c182;
4508 peg$currPos += 10;
4509 } else {
4510 s1 = peg$FAILED;
4511 if (peg$silentFails === 0) { peg$fail(peg$c183); }
4512 }
4513 if (s1 !== peg$FAILED) {
4514 s2 = peg$currPos;
4515 peg$silentFails++;
4516 s3 = peg$parseIdentifierPart();
4517 peg$silentFails--;
4518 if (s3 === peg$FAILED) {
4519 s2 = void 0;
4520 } else {
4521 peg$currPos = s2;
4522 s2 = peg$FAILED;
4523 }
4524 if (s2 !== peg$FAILED) {
4525 s1 = [s1, s2];
4526 s0 = s1;
4527 } else {
4528 peg$currPos = s0;
4529 s0 = peg$FAILED;
4530 }
4531 } else {
4532 peg$currPos = s0;
4533 s0 = peg$FAILED;
4534 }
4535
4536 return s0;
4537 }
4538
4539 function peg$parseInToken() {
4540 var s0, s1, s2, s3;
4541
4542 s0 = peg$currPos;
4543 if (input.substr(peg$currPos, 2) === peg$c184) {
4544 s1 = peg$c184;
4545 peg$currPos += 2;
4546 } else {
4547 s1 = peg$FAILED;
4548 if (peg$silentFails === 0) { peg$fail(peg$c185); }
4549 }
4550 if (s1 !== peg$FAILED) {
4551 s2 = peg$currPos;
4552 peg$silentFails++;
4553 s3 = peg$parseIdentifierPart();
4554 peg$silentFails--;
4555 if (s3 === peg$FAILED) {
4556 s2 = void 0;
4557 } else {
4558 peg$currPos = s2;
4559 s2 = peg$FAILED;
4560 }
4561 if (s2 !== peg$FAILED) {
4562 s1 = [s1, s2];
4563 s0 = s1;
4564 } else {
4565 peg$currPos = s0;
4566 s0 = peg$FAILED;
4567 }
4568 } else {
4569 peg$currPos = s0;
4570 s0 = peg$FAILED;
4571 }
4572
4573 return s0;
4574 }
4575
4576 function peg$parseNewToken() {
4577 var s0, s1, s2, s3;
4578
4579 s0 = peg$currPos;
4580 if (input.substr(peg$currPos, 3) === peg$c186) {
4581 s1 = peg$c186;
4582 peg$currPos += 3;
4583 } else {
4584 s1 = peg$FAILED;
4585 if (peg$silentFails === 0) { peg$fail(peg$c187); }
4586 }
4587 if (s1 !== peg$FAILED) {
4588 s2 = peg$currPos;
4589 peg$silentFails++;
4590 s3 = peg$parseIdentifierPart();
4591 peg$silentFails--;
4592 if (s3 === peg$FAILED) {
4593 s2 = void 0;
4594 } else {
4595 peg$currPos = s2;
4596 s2 = peg$FAILED;
4597 }
4598 if (s2 !== peg$FAILED) {
4599 s1 = [s1, s2];
4600 s0 = s1;
4601 } else {
4602 peg$currPos = s0;
4603 s0 = peg$FAILED;
4604 }
4605 } else {
4606 peg$currPos = s0;
4607 s0 = peg$FAILED;
4608 }
4609
4610 return s0;
4611 }
4612
4613 function peg$parseNullToken() {
4614 var s0, s1, s2, s3;
4615
4616 s0 = peg$currPos;
4617 if (input.substr(peg$currPos, 4) === peg$c188) {
4618 s1 = peg$c188;
4619 peg$currPos += 4;
4620 } else {
4621 s1 = peg$FAILED;
4622 if (peg$silentFails === 0) { peg$fail(peg$c189); }
4623 }
4624 if (s1 !== peg$FAILED) {
4625 s2 = peg$currPos;
4626 peg$silentFails++;
4627 s3 = peg$parseIdentifierPart();
4628 peg$silentFails--;
4629 if (s3 === peg$FAILED) {
4630 s2 = void 0;
4631 } else {
4632 peg$currPos = s2;
4633 s2 = peg$FAILED;
4634 }
4635 if (s2 !== peg$FAILED) {
4636 s1 = [s1, s2];
4637 s0 = s1;
4638 } else {
4639 peg$currPos = s0;
4640 s0 = peg$FAILED;
4641 }
4642 } else {
4643 peg$currPos = s0;
4644 s0 = peg$FAILED;
4645 }
4646
4647 return s0;
4648 }
4649
4650 function peg$parseReturnToken() {
4651 var s0, s1, s2, s3;
4652
4653 s0 = peg$currPos;
4654 if (input.substr(peg$currPos, 6) === peg$c190) {
4655 s1 = peg$c190;
4656 peg$currPos += 6;
4657 } else {
4658 s1 = peg$FAILED;
4659 if (peg$silentFails === 0) { peg$fail(peg$c191); }
4660 }
4661 if (s1 !== peg$FAILED) {
4662 s2 = peg$currPos;
4663 peg$silentFails++;
4664 s3 = peg$parseIdentifierPart();
4665 peg$silentFails--;
4666 if (s3 === peg$FAILED) {
4667 s2 = void 0;
4668 } else {
4669 peg$currPos = s2;
4670 s2 = peg$FAILED;
4671 }
4672 if (s2 !== peg$FAILED) {
4673 s1 = [s1, s2];
4674 s0 = s1;
4675 } else {
4676 peg$currPos = s0;
4677 s0 = peg$FAILED;
4678 }
4679 } else {
4680 peg$currPos = s0;
4681 s0 = peg$FAILED;
4682 }
4683
4684 return s0;
4685 }
4686
4687 function peg$parseSetToken() {
4688 var s0, s1, s2, s3;
4689
4690 s0 = peg$currPos;
4691 if (input.substr(peg$currPos, 3) === peg$c192) {
4692 s1 = peg$c192;
4693 peg$currPos += 3;
4694 } else {
4695 s1 = peg$FAILED;
4696 if (peg$silentFails === 0) { peg$fail(peg$c193); }
4697 }
4698 if (s1 !== peg$FAILED) {
4699 s2 = peg$currPos;
4700 peg$silentFails++;
4701 s3 = peg$parseIdentifierPart();
4702 peg$silentFails--;
4703 if (s3 === peg$FAILED) {
4704 s2 = void 0;
4705 } else {
4706 peg$currPos = s2;
4707 s2 = peg$FAILED;
4708 }
4709 if (s2 !== peg$FAILED) {
4710 s1 = [s1, s2];
4711 s0 = s1;
4712 } else {
4713 peg$currPos = s0;
4714 s0 = peg$FAILED;
4715 }
4716 } else {
4717 peg$currPos = s0;
4718 s0 = peg$FAILED;
4719 }
4720
4721 return s0;
4722 }
4723
4724 function peg$parseSuperToken() {
4725 var s0, s1, s2, s3;
4726
4727 s0 = peg$currPos;
4728 if (input.substr(peg$currPos, 5) === peg$c194) {
4729 s1 = peg$c194;
4730 peg$currPos += 5;
4731 } else {
4732 s1 = peg$FAILED;
4733 if (peg$silentFails === 0) { peg$fail(peg$c195); }
4734 }
4735 if (s1 !== peg$FAILED) {
4736 s2 = peg$currPos;
4737 peg$silentFails++;
4738 s3 = peg$parseIdentifierPart();
4739 peg$silentFails--;
4740 if (s3 === peg$FAILED) {
4741 s2 = void 0;
4742 } else {
4743 peg$currPos = s2;
4744 s2 = peg$FAILED;
4745 }
4746 if (s2 !== peg$FAILED) {
4747 s1 = [s1, s2];
4748 s0 = s1;
4749 } else {
4750 peg$currPos = s0;
4751 s0 = peg$FAILED;
4752 }
4753 } else {
4754 peg$currPos = s0;
4755 s0 = peg$FAILED;
4756 }
4757
4758 return s0;
4759 }
4760
4761 function peg$parseSwitchToken() {
4762 var s0, s1, s2, s3;
4763
4764 s0 = peg$currPos;
4765 if (input.substr(peg$currPos, 6) === peg$c196) {
4766 s1 = peg$c196;
4767 peg$currPos += 6;
4768 } else {
4769 s1 = peg$FAILED;
4770 if (peg$silentFails === 0) { peg$fail(peg$c197); }
4771 }
4772 if (s1 !== peg$FAILED) {
4773 s2 = peg$currPos;
4774 peg$silentFails++;
4775 s3 = peg$parseIdentifierPart();
4776 peg$silentFails--;
4777 if (s3 === peg$FAILED) {
4778 s2 = void 0;
4779 } else {
4780 peg$currPos = s2;
4781 s2 = peg$FAILED;
4782 }
4783 if (s2 !== peg$FAILED) {
4784 s1 = [s1, s2];
4785 s0 = s1;
4786 } else {
4787 peg$currPos = s0;
4788 s0 = peg$FAILED;
4789 }
4790 } else {
4791 peg$currPos = s0;
4792 s0 = peg$FAILED;
4793 }
4794
4795 return s0;
4796 }
4797
4798 function peg$parseThisToken() {
4799 var s0, s1, s2, s3;
4800
4801 s0 = peg$currPos;
4802 if (input.substr(peg$currPos, 4) === peg$c198) {
4803 s1 = peg$c198;
4804 peg$currPos += 4;
4805 } else {
4806 s1 = peg$FAILED;
4807 if (peg$silentFails === 0) { peg$fail(peg$c199); }
4808 }
4809 if (s1 !== peg$FAILED) {
4810 s2 = peg$currPos;
4811 peg$silentFails++;
4812 s3 = peg$parseIdentifierPart();
4813 peg$silentFails--;
4814 if (s3 === peg$FAILED) {
4815 s2 = void 0;
4816 } else {
4817 peg$currPos = s2;
4818 s2 = peg$FAILED;
4819 }
4820 if (s2 !== peg$FAILED) {
4821 s1 = [s1, s2];
4822 s0 = s1;
4823 } else {
4824 peg$currPos = s0;
4825 s0 = peg$FAILED;
4826 }
4827 } else {
4828 peg$currPos = s0;
4829 s0 = peg$FAILED;
4830 }
4831
4832 return s0;
4833 }
4834
4835 function peg$parseThrowToken() {
4836 var s0, s1, s2, s3;
4837
4838 s0 = peg$currPos;
4839 if (input.substr(peg$currPos, 5) === peg$c200) {
4840 s1 = peg$c200;
4841 peg$currPos += 5;
4842 } else {
4843 s1 = peg$FAILED;
4844 if (peg$silentFails === 0) { peg$fail(peg$c201); }
4845 }
4846 if (s1 !== peg$FAILED) {
4847 s2 = peg$currPos;
4848 peg$silentFails++;
4849 s3 = peg$parseIdentifierPart();
4850 peg$silentFails--;
4851 if (s3 === peg$FAILED) {
4852 s2 = void 0;
4853 } else {
4854 peg$currPos = s2;
4855 s2 = peg$FAILED;
4856 }
4857 if (s2 !== peg$FAILED) {
4858 s1 = [s1, s2];
4859 s0 = s1;
4860 } else {
4861 peg$currPos = s0;
4862 s0 = peg$FAILED;
4863 }
4864 } else {
4865 peg$currPos = s0;
4866 s0 = peg$FAILED;
4867 }
4868
4869 return s0;
4870 }
4871
4872 function peg$parseTrueToken() {
4873 var s0, s1, s2, s3;
4874
4875 s0 = peg$currPos;
4876 if (input.substr(peg$currPos, 4) === peg$c202) {
4877 s1 = peg$c202;
4878 peg$currPos += 4;
4879 } else {
4880 s1 = peg$FAILED;
4881 if (peg$silentFails === 0) { peg$fail(peg$c203); }
4882 }
4883 if (s1 !== peg$FAILED) {
4884 s2 = peg$currPos;
4885 peg$silentFails++;
4886 s3 = peg$parseIdentifierPart();
4887 peg$silentFails--;
4888 if (s3 === peg$FAILED) {
4889 s2 = void 0;
4890 } else {
4891 peg$currPos = s2;
4892 s2 = peg$FAILED;
4893 }
4894 if (s2 !== peg$FAILED) {
4895 s1 = [s1, s2];
4896 s0 = s1;
4897 } else {
4898 peg$currPos = s0;
4899 s0 = peg$FAILED;
4900 }
4901 } else {
4902 peg$currPos = s0;
4903 s0 = peg$FAILED;
4904 }
4905
4906 return s0;
4907 }
4908
4909 function peg$parseTryToken() {
4910 var s0, s1, s2, s3;
4911
4912 s0 = peg$currPos;
4913 if (input.substr(peg$currPos, 3) === peg$c204) {
4914 s1 = peg$c204;
4915 peg$currPos += 3;
4916 } else {
4917 s1 = peg$FAILED;
4918 if (peg$silentFails === 0) { peg$fail(peg$c205); }
4919 }
4920 if (s1 !== peg$FAILED) {
4921 s2 = peg$currPos;
4922 peg$silentFails++;
4923 s3 = peg$parseIdentifierPart();
4924 peg$silentFails--;
4925 if (s3 === peg$FAILED) {
4926 s2 = void 0;
4927 } else {
4928 peg$currPos = s2;
4929 s2 = peg$FAILED;
4930 }
4931 if (s2 !== peg$FAILED) {
4932 s1 = [s1, s2];
4933 s0 = s1;
4934 } else {
4935 peg$currPos = s0;
4936 s0 = peg$FAILED;
4937 }
4938 } else {
4939 peg$currPos = s0;
4940 s0 = peg$FAILED;
4941 }
4942
4943 return s0;
4944 }
4945
4946 function peg$parseTypeofToken() {
4947 var s0, s1, s2, s3;
4948
4949 s0 = peg$currPos;
4950 if (input.substr(peg$currPos, 6) === peg$c206) {
4951 s1 = peg$c206;
4952 peg$currPos += 6;
4953 } else {
4954 s1 = peg$FAILED;
4955 if (peg$silentFails === 0) { peg$fail(peg$c207); }
4956 }
4957 if (s1 !== peg$FAILED) {
4958 s2 = peg$currPos;
4959 peg$silentFails++;
4960 s3 = peg$parseIdentifierPart();
4961 peg$silentFails--;
4962 if (s3 === peg$FAILED) {
4963 s2 = void 0;
4964 } else {
4965 peg$currPos = s2;
4966 s2 = peg$FAILED;
4967 }
4968 if (s2 !== peg$FAILED) {
4969 s1 = [s1, s2];
4970 s0 = s1;
4971 } else {
4972 peg$currPos = s0;
4973 s0 = peg$FAILED;
4974 }
4975 } else {
4976 peg$currPos = s0;
4977 s0 = peg$FAILED;
4978 }
4979
4980 return s0;
4981 }
4982
4983 function peg$parseVarToken() {
4984 var s0, s1, s2, s3;
4985
4986 s0 = peg$currPos;
4987 if (input.substr(peg$currPos, 3) === peg$c208) {
4988 s1 = peg$c208;
4989 peg$currPos += 3;
4990 } else {
4991 s1 = peg$FAILED;
4992 if (peg$silentFails === 0) { peg$fail(peg$c209); }
4993 }
4994 if (s1 !== peg$FAILED) {
4995 s2 = peg$currPos;
4996 peg$silentFails++;
4997 s3 = peg$parseIdentifierPart();
4998 peg$silentFails--;
4999 if (s3 === peg$FAILED) {
5000 s2 = void 0;
5001 } else {
5002 peg$currPos = s2;
5003 s2 = peg$FAILED;
5004 }
5005 if (s2 !== peg$FAILED) {
5006 s1 = [s1, s2];
5007 s0 = s1;
5008 } else {
5009 peg$currPos = s0;
5010 s0 = peg$FAILED;
5011 }
5012 } else {
5013 peg$currPos = s0;
5014 s0 = peg$FAILED;
5015 }
5016
5017 return s0;
5018 }
5019
5020 function peg$parseVoidToken() {
5021 var s0, s1, s2, s3;
5022
5023 s0 = peg$currPos;
5024 if (input.substr(peg$currPos, 4) === peg$c210) {
5025 s1 = peg$c210;
5026 peg$currPos += 4;
5027 } else {
5028 s1 = peg$FAILED;
5029 if (peg$silentFails === 0) { peg$fail(peg$c211); }
5030 }
5031 if (s1 !== peg$FAILED) {
5032 s2 = peg$currPos;
5033 peg$silentFails++;
5034 s3 = peg$parseIdentifierPart();
5035 peg$silentFails--;
5036 if (s3 === peg$FAILED) {
5037 s2 = void 0;
5038 } else {
5039 peg$currPos = s2;
5040 s2 = peg$FAILED;
5041 }
5042 if (s2 !== peg$FAILED) {
5043 s1 = [s1, s2];
5044 s0 = s1;
5045 } else {
5046 peg$currPos = s0;
5047 s0 = peg$FAILED;
5048 }
5049 } else {
5050 peg$currPos = s0;
5051 s0 = peg$FAILED;
5052 }
5053
5054 return s0;
5055 }
5056
5057 function peg$parseWhileToken() {
5058 var s0, s1, s2, s3;
5059
5060 s0 = peg$currPos;
5061 if (input.substr(peg$currPos, 5) === peg$c212) {
5062 s1 = peg$c212;
5063 peg$currPos += 5;
5064 } else {
5065 s1 = peg$FAILED;
5066 if (peg$silentFails === 0) { peg$fail(peg$c213); }
5067 }
5068 if (s1 !== peg$FAILED) {
5069 s2 = peg$currPos;
5070 peg$silentFails++;
5071 s3 = peg$parseIdentifierPart();
5072 peg$silentFails--;
5073 if (s3 === peg$FAILED) {
5074 s2 = void 0;
5075 } else {
5076 peg$currPos = s2;
5077 s2 = peg$FAILED;
5078 }
5079 if (s2 !== peg$FAILED) {
5080 s1 = [s1, s2];
5081 s0 = s1;
5082 } else {
5083 peg$currPos = s0;
5084 s0 = peg$FAILED;
5085 }
5086 } else {
5087 peg$currPos = s0;
5088 s0 = peg$FAILED;
5089 }
5090
5091 return s0;
5092 }
5093
5094 function peg$parseWithToken() {
5095 var s0, s1, s2, s3;
5096
5097 s0 = peg$currPos;
5098 if (input.substr(peg$currPos, 4) === peg$c214) {
5099 s1 = peg$c214;
5100 peg$currPos += 4;
5101 } else {
5102 s1 = peg$FAILED;
5103 if (peg$silentFails === 0) { peg$fail(peg$c215); }
5104 }
5105 if (s1 !== peg$FAILED) {
5106 s2 = peg$currPos;
5107 peg$silentFails++;
5108 s3 = peg$parseIdentifierPart();
5109 peg$silentFails--;
5110 if (s3 === peg$FAILED) {
5111 s2 = void 0;
5112 } else {
5113 peg$currPos = s2;
5114 s2 = peg$FAILED;
5115 }
5116 if (s2 !== peg$FAILED) {
5117 s1 = [s1, s2];
5118 s0 = s1;
5119 } else {
5120 peg$currPos = s0;
5121 s0 = peg$FAILED;
5122 }
5123 } else {
5124 peg$currPos = s0;
5125 s0 = peg$FAILED;
5126 }
5127
5128 return s0;
5129 }
5130
5131 function peg$parse__() {
5132 var s0, s1;
5133
5134 s0 = [];
5135 s1 = peg$parseWhiteSpace();
5136 if (s1 === peg$FAILED) {
5137 s1 = peg$parseLineTerminatorSequence();
5138 if (s1 === peg$FAILED) {
5139 s1 = peg$parseComment();
5140 }
5141 }
5142 while (s1 !== peg$FAILED) {
5143 s0.push(s1);
5144 s1 = peg$parseWhiteSpace();
5145 if (s1 === peg$FAILED) {
5146 s1 = peg$parseLineTerminatorSequence();
5147 if (s1 === peg$FAILED) {
5148 s1 = peg$parseComment();
5149 }
5150 }
5151 }
5152
5153 return s0;
5154 }
5155
5156 function peg$parse_() {
5157 var s0, s1;
5158
5159 s0 = [];
5160 s1 = peg$parseWhiteSpace();
5161 if (s1 === peg$FAILED) {
5162 s1 = peg$parseMultiLineCommentNoLineTerminator();
5163 }
5164 while (s1 !== peg$FAILED) {
5165 s0.push(s1);
5166 s1 = peg$parseWhiteSpace();
5167 if (s1 === peg$FAILED) {
5168 s1 = peg$parseMultiLineCommentNoLineTerminator();
5169 }
5170 }
5171
5172 return s0;
5173 }
5174
5175 function peg$parseEOS() {
5176 var s0, s1, s2, s3;
5177
5178 s0 = peg$currPos;
5179 s1 = peg$parse__();
5180 if (s1 !== peg$FAILED) {
5181 if (input.charCodeAt(peg$currPos) === 59) {
5182 s2 = peg$c216;
5183 peg$currPos++;
5184 } else {
5185 s2 = peg$FAILED;
5186 if (peg$silentFails === 0) { peg$fail(peg$c217); }
5187 }
5188 if (s2 !== peg$FAILED) {
5189 s1 = [s1, s2];
5190 s0 = s1;
5191 } else {
5192 peg$currPos = s0;
5193 s0 = peg$FAILED;
5194 }
5195 } else {
5196 peg$currPos = s0;
5197 s0 = peg$FAILED;
5198 }
5199 if (s0 === peg$FAILED) {
5200 s0 = peg$currPos;
5201 s1 = peg$parse_();
5202 if (s1 !== peg$FAILED) {
5203 s2 = peg$parseSingleLineComment();
5204 if (s2 === peg$FAILED) {
5205 s2 = null;
5206 }
5207 if (s2 !== peg$FAILED) {
5208 s3 = peg$parseLineTerminatorSequence();
5209 if (s3 !== peg$FAILED) {
5210 s1 = [s1, s2, s3];
5211 s0 = s1;
5212 } else {
5213 peg$currPos = s0;
5214 s0 = peg$FAILED;
5215 }
5216 } else {
5217 peg$currPos = s0;
5218 s0 = peg$FAILED;
5219 }
5220 } else {
5221 peg$currPos = s0;
5222 s0 = peg$FAILED;
5223 }
5224 if (s0 === peg$FAILED) {
5225 s0 = peg$currPos;
5226 s1 = peg$parse_();
5227 if (s1 !== peg$FAILED) {
5228 s2 = peg$currPos;
5229 peg$silentFails++;
5230 if (input.charCodeAt(peg$currPos) === 125) {
5231 s3 = peg$c218;
5232 peg$currPos++;
5233 } else {
5234 s3 = peg$FAILED;
5235 if (peg$silentFails === 0) { peg$fail(peg$c219); }
5236 }
5237 peg$silentFails--;
5238 if (s3 !== peg$FAILED) {
5239 peg$currPos = s2;
5240 s2 = void 0;
5241 } else {
5242 s2 = peg$FAILED;
5243 }
5244 if (s2 !== peg$FAILED) {
5245 s1 = [s1, s2];
5246 s0 = s1;
5247 } else {
5248 peg$currPos = s0;
5249 s0 = peg$FAILED;
5250 }
5251 } else {
5252 peg$currPos = s0;
5253 s0 = peg$FAILED;
5254 }
5255 if (s0 === peg$FAILED) {
5256 s0 = peg$currPos;
5257 s1 = peg$parse__();
5258 if (s1 !== peg$FAILED) {
5259 s2 = peg$parseEOF();
5260 if (s2 !== peg$FAILED) {
5261 s1 = [s1, s2];
5262 s0 = s1;
5263 } else {
5264 peg$currPos = s0;
5265 s0 = peg$FAILED;
5266 }
5267 } else {
5268 peg$currPos = s0;
5269 s0 = peg$FAILED;
5270 }
5271 }
5272 }
5273 }
5274
5275 return s0;
5276 }
5277
5278 function peg$parseEOF() {
5279 var s0, s1;
5280
5281 s0 = peg$currPos;
5282 peg$silentFails++;
5283 if (input.length > peg$currPos) {
5284 s1 = input.charAt(peg$currPos);
5285 peg$currPos++;
5286 } else {
5287 s1 = peg$FAILED;
5288 if (peg$silentFails === 0) { peg$fail(peg$c1); }
5289 }
5290 peg$silentFails--;
5291 if (s1 === peg$FAILED) {
5292 s0 = void 0;
5293 } else {
5294 peg$currPos = s0;
5295 s0 = peg$FAILED;
5296 }
5297
5298 return s0;
5299 }
5300
5301 function peg$parsePrimaryExpression() {
5302 var s0, s1, s2, s3, s4, s5;
5303
5304 s0 = peg$currPos;
5305 s1 = peg$parseThisToken();
5306 if (s1 !== peg$FAILED) {
5307 peg$savedPos = s0;
5308 s1 = peg$c220();
5309 }
5310 s0 = s1;
5311 if (s0 === peg$FAILED) {
5312 s0 = peg$parseIdentifier();
5313 if (s0 === peg$FAILED) {
5314 s0 = peg$parseLiteral();
5315 if (s0 === peg$FAILED) {
5316 s0 = peg$parseArrayLiteral();
5317 if (s0 === peg$FAILED) {
5318 s0 = peg$currPos;
5319 if (input.charCodeAt(peg$currPos) === 40) {
5320 s1 = peg$c221;
5321 peg$currPos++;
5322 } else {
5323 s1 = peg$FAILED;
5324 if (peg$silentFails === 0) { peg$fail(peg$c222); }
5325 }
5326 if (s1 !== peg$FAILED) {
5327 s2 = peg$parse__();
5328 if (s2 !== peg$FAILED) {
5329 s3 = peg$parseExpression();
5330 if (s3 !== peg$FAILED) {
5331 s4 = peg$parse__();
5332 if (s4 !== peg$FAILED) {
5333 if (input.charCodeAt(peg$currPos) === 41) {
5334 s5 = peg$c223;
5335 peg$currPos++;
5336 } else {
5337 s5 = peg$FAILED;
5338 if (peg$silentFails === 0) { peg$fail(peg$c224); }
5339 }
5340 if (s5 !== peg$FAILED) {
5341 peg$savedPos = s0;
5342 s1 = peg$c225(s3);
5343 s0 = s1;
5344 } else {
5345 peg$currPos = s0;
5346 s0 = peg$FAILED;
5347 }
5348 } else {
5349 peg$currPos = s0;
5350 s0 = peg$FAILED;
5351 }
5352 } else {
5353 peg$currPos = s0;
5354 s0 = peg$FAILED;
5355 }
5356 } else {
5357 peg$currPos = s0;
5358 s0 = peg$FAILED;
5359 }
5360 } else {
5361 peg$currPos = s0;
5362 s0 = peg$FAILED;
5363 }
5364 }
5365 }
5366 }
5367 }
5368
5369 return s0;
5370 }
5371
5372 function peg$parseArrayLiteral() {
5373 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
5374
5375 s0 = peg$currPos;
5376 if (input.charCodeAt(peg$currPos) === 91) {
5377 s1 = peg$c112;
5378 peg$currPos++;
5379 } else {
5380 s1 = peg$FAILED;
5381 if (peg$silentFails === 0) { peg$fail(peg$c113); }
5382 }
5383 if (s1 !== peg$FAILED) {
5384 s2 = peg$parse__();
5385 if (s2 !== peg$FAILED) {
5386 s3 = peg$currPos;
5387 s4 = peg$parseElision();
5388 if (s4 !== peg$FAILED) {
5389 s5 = peg$parse__();
5390 if (s5 !== peg$FAILED) {
5391 s4 = [s4, s5];
5392 s3 = s4;
5393 } else {
5394 peg$currPos = s3;
5395 s3 = peg$FAILED;
5396 }
5397 } else {
5398 peg$currPos = s3;
5399 s3 = peg$FAILED;
5400 }
5401 if (s3 === peg$FAILED) {
5402 s3 = null;
5403 }
5404 if (s3 !== peg$FAILED) {
5405 if (input.charCodeAt(peg$currPos) === 93) {
5406 s4 = peg$c114;
5407 peg$currPos++;
5408 } else {
5409 s4 = peg$FAILED;
5410 if (peg$silentFails === 0) { peg$fail(peg$c115); }
5411 }
5412 if (s4 !== peg$FAILED) {
5413 peg$savedPos = s0;
5414 s1 = peg$c226(s3);
5415 s0 = s1;
5416 } else {
5417 peg$currPos = s0;
5418 s0 = peg$FAILED;
5419 }
5420 } else {
5421 peg$currPos = s0;
5422 s0 = peg$FAILED;
5423 }
5424 } else {
5425 peg$currPos = s0;
5426 s0 = peg$FAILED;
5427 }
5428 } else {
5429 peg$currPos = s0;
5430 s0 = peg$FAILED;
5431 }
5432 if (s0 === peg$FAILED) {
5433 s0 = peg$currPos;
5434 if (input.charCodeAt(peg$currPos) === 91) {
5435 s1 = peg$c112;
5436 peg$currPos++;
5437 } else {
5438 s1 = peg$FAILED;
5439 if (peg$silentFails === 0) { peg$fail(peg$c113); }
5440 }
5441 if (s1 !== peg$FAILED) {
5442 s2 = peg$parse__();
5443 if (s2 !== peg$FAILED) {
5444 s3 = peg$parseElementList();
5445 if (s3 !== peg$FAILED) {
5446 s4 = peg$parse__();
5447 if (s4 !== peg$FAILED) {
5448 if (input.charCodeAt(peg$currPos) === 93) {
5449 s5 = peg$c114;
5450 peg$currPos++;
5451 } else {
5452 s5 = peg$FAILED;
5453 if (peg$silentFails === 0) { peg$fail(peg$c115); }
5454 }
5455 if (s5 !== peg$FAILED) {
5456 peg$savedPos = s0;
5457 s1 = peg$c227(s3);
5458 s0 = s1;
5459 } else {
5460 peg$currPos = s0;
5461 s0 = peg$FAILED;
5462 }
5463 } else {
5464 peg$currPos = s0;
5465 s0 = peg$FAILED;
5466 }
5467 } else {
5468 peg$currPos = s0;
5469 s0 = peg$FAILED;
5470 }
5471 } else {
5472 peg$currPos = s0;
5473 s0 = peg$FAILED;
5474 }
5475 } else {
5476 peg$currPos = s0;
5477 s0 = peg$FAILED;
5478 }
5479 if (s0 === peg$FAILED) {
5480 s0 = peg$currPos;
5481 if (input.charCodeAt(peg$currPos) === 91) {
5482 s1 = peg$c112;
5483 peg$currPos++;
5484 } else {
5485 s1 = peg$FAILED;
5486 if (peg$silentFails === 0) { peg$fail(peg$c113); }
5487 }
5488 if (s1 !== peg$FAILED) {
5489 s2 = peg$parse__();
5490 if (s2 !== peg$FAILED) {
5491 s3 = peg$parseElementList();
5492 if (s3 !== peg$FAILED) {
5493 s4 = peg$parse__();
5494 if (s4 !== peg$FAILED) {
5495 if (input.charCodeAt(peg$currPos) === 44) {
5496 s5 = peg$c228;
5497 peg$currPos++;
5498 } else {
5499 s5 = peg$FAILED;
5500 if (peg$silentFails === 0) { peg$fail(peg$c229); }
5501 }
5502 if (s5 !== peg$FAILED) {
5503 s6 = peg$parse__();
5504 if (s6 !== peg$FAILED) {
5505 s7 = peg$currPos;
5506 s8 = peg$parseElision();
5507 if (s8 !== peg$FAILED) {
5508 s9 = peg$parse__();
5509 if (s9 !== peg$FAILED) {
5510 s8 = [s8, s9];
5511 s7 = s8;
5512 } else {
5513 peg$currPos = s7;
5514 s7 = peg$FAILED;
5515 }
5516 } else {
5517 peg$currPos = s7;
5518 s7 = peg$FAILED;
5519 }
5520 if (s7 === peg$FAILED) {
5521 s7 = null;
5522 }
5523 if (s7 !== peg$FAILED) {
5524 if (input.charCodeAt(peg$currPos) === 93) {
5525 s8 = peg$c114;
5526 peg$currPos++;
5527 } else {
5528 s8 = peg$FAILED;
5529 if (peg$silentFails === 0) { peg$fail(peg$c115); }
5530 }
5531 if (s8 !== peg$FAILED) {
5532 peg$savedPos = s0;
5533 s1 = peg$c230(s3, s7);
5534 s0 = s1;
5535 } else {
5536 peg$currPos = s0;
5537 s0 = peg$FAILED;
5538 }
5539 } else {
5540 peg$currPos = s0;
5541 s0 = peg$FAILED;
5542 }
5543 } else {
5544 peg$currPos = s0;
5545 s0 = peg$FAILED;
5546 }
5547 } else {
5548 peg$currPos = s0;
5549 s0 = peg$FAILED;
5550 }
5551 } else {
5552 peg$currPos = s0;
5553 s0 = peg$FAILED;
5554 }
5555 } else {
5556 peg$currPos = s0;
5557 s0 = peg$FAILED;
5558 }
5559 } else {
5560 peg$currPos = s0;
5561 s0 = peg$FAILED;
5562 }
5563 } else {
5564 peg$currPos = s0;
5565 s0 = peg$FAILED;
5566 }
5567 }
5568 }
5569
5570 return s0;
5571 }
5572
5573 function peg$parseElementList() {
5574 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
5575
5576 s0 = peg$currPos;
5577 s1 = peg$currPos;
5578 s2 = peg$currPos;
5579 s3 = peg$parseElision();
5580 if (s3 !== peg$FAILED) {
5581 s4 = peg$parse__();
5582 if (s4 !== peg$FAILED) {
5583 s3 = [s3, s4];
5584 s2 = s3;
5585 } else {
5586 peg$currPos = s2;
5587 s2 = peg$FAILED;
5588 }
5589 } else {
5590 peg$currPos = s2;
5591 s2 = peg$FAILED;
5592 }
5593 if (s2 === peg$FAILED) {
5594 s2 = null;
5595 }
5596 if (s2 !== peg$FAILED) {
5597 s3 = peg$parseAssignmentExpression();
5598 if (s3 !== peg$FAILED) {
5599 peg$savedPos = s1;
5600 s2 = peg$c231(s2, s3);
5601 s1 = s2;
5602 } else {
5603 peg$currPos = s1;
5604 s1 = peg$FAILED;
5605 }
5606 } else {
5607 peg$currPos = s1;
5608 s1 = peg$FAILED;
5609 }
5610 if (s1 !== peg$FAILED) {
5611 s2 = [];
5612 s3 = peg$currPos;
5613 s4 = peg$parse__();
5614 if (s4 !== peg$FAILED) {
5615 if (input.charCodeAt(peg$currPos) === 44) {
5616 s5 = peg$c228;
5617 peg$currPos++;
5618 } else {
5619 s5 = peg$FAILED;
5620 if (peg$silentFails === 0) { peg$fail(peg$c229); }
5621 }
5622 if (s5 !== peg$FAILED) {
5623 s6 = peg$parse__();
5624 if (s6 !== peg$FAILED) {
5625 s7 = peg$currPos;
5626 s8 = peg$parseElision();
5627 if (s8 !== peg$FAILED) {
5628 s9 = peg$parse__();
5629 if (s9 !== peg$FAILED) {
5630 s8 = [s8, s9];
5631 s7 = s8;
5632 } else {
5633 peg$currPos = s7;
5634 s7 = peg$FAILED;
5635 }
5636 } else {
5637 peg$currPos = s7;
5638 s7 = peg$FAILED;
5639 }
5640 if (s7 === peg$FAILED) {
5641 s7 = null;
5642 }
5643 if (s7 !== peg$FAILED) {
5644 s8 = peg$parseAssignmentExpression();
5645 if (s8 !== peg$FAILED) {
5646 peg$savedPos = s3;
5647 s4 = peg$c232(s1, s7, s8);
5648 s3 = s4;
5649 } else {
5650 peg$currPos = s3;
5651 s3 = peg$FAILED;
5652 }
5653 } else {
5654 peg$currPos = s3;
5655 s3 = peg$FAILED;
5656 }
5657 } else {
5658 peg$currPos = s3;
5659 s3 = peg$FAILED;
5660 }
5661 } else {
5662 peg$currPos = s3;
5663 s3 = peg$FAILED;
5664 }
5665 } else {
5666 peg$currPos = s3;
5667 s3 = peg$FAILED;
5668 }
5669 while (s3 !== peg$FAILED) {
5670 s2.push(s3);
5671 s3 = peg$currPos;
5672 s4 = peg$parse__();
5673 if (s4 !== peg$FAILED) {
5674 if (input.charCodeAt(peg$currPos) === 44) {
5675 s5 = peg$c228;
5676 peg$currPos++;
5677 } else {
5678 s5 = peg$FAILED;
5679 if (peg$silentFails === 0) { peg$fail(peg$c229); }
5680 }
5681 if (s5 !== peg$FAILED) {
5682 s6 = peg$parse__();
5683 if (s6 !== peg$FAILED) {
5684 s7 = peg$currPos;
5685 s8 = peg$parseElision();
5686 if (s8 !== peg$FAILED) {
5687 s9 = peg$parse__();
5688 if (s9 !== peg$FAILED) {
5689 s8 = [s8, s9];
5690 s7 = s8;
5691 } else {
5692 peg$currPos = s7;
5693 s7 = peg$FAILED;
5694 }
5695 } else {
5696 peg$currPos = s7;
5697 s7 = peg$FAILED;
5698 }
5699 if (s7 === peg$FAILED) {
5700 s7 = null;
5701 }
5702 if (s7 !== peg$FAILED) {
5703 s8 = peg$parseAssignmentExpression();
5704 if (s8 !== peg$FAILED) {
5705 peg$savedPos = s3;
5706 s4 = peg$c232(s1, s7, s8);
5707 s3 = s4;
5708 } else {
5709 peg$currPos = s3;
5710 s3 = peg$FAILED;
5711 }
5712 } else {
5713 peg$currPos = s3;
5714 s3 = peg$FAILED;
5715 }
5716 } else {
5717 peg$currPos = s3;
5718 s3 = peg$FAILED;
5719 }
5720 } else {
5721 peg$currPos = s3;
5722 s3 = peg$FAILED;
5723 }
5724 } else {
5725 peg$currPos = s3;
5726 s3 = peg$FAILED;
5727 }
5728 }
5729 if (s2 !== peg$FAILED) {
5730 peg$savedPos = s0;
5731 s1 = peg$c233(s1, s2);
5732 s0 = s1;
5733 } else {
5734 peg$currPos = s0;
5735 s0 = peg$FAILED;
5736 }
5737 } else {
5738 peg$currPos = s0;
5739 s0 = peg$FAILED;
5740 }
5741
5742 return s0;
5743 }
5744
5745 function peg$parseElision() {
5746 var s0, s1, s2, s3, s4, s5;
5747
5748 s0 = peg$currPos;
5749 if (input.charCodeAt(peg$currPos) === 44) {
5750 s1 = peg$c228;
5751 peg$currPos++;
5752 } else {
5753 s1 = peg$FAILED;
5754 if (peg$silentFails === 0) { peg$fail(peg$c229); }
5755 }
5756 if (s1 !== peg$FAILED) {
5757 s2 = [];
5758 s3 = peg$currPos;
5759 s4 = peg$parse__();
5760 if (s4 !== peg$FAILED) {
5761 if (input.charCodeAt(peg$currPos) === 44) {
5762 s5 = peg$c228;
5763 peg$currPos++;
5764 } else {
5765 s5 = peg$FAILED;
5766 if (peg$silentFails === 0) { peg$fail(peg$c229); }
5767 }
5768 if (s5 !== peg$FAILED) {
5769 s4 = [s4, s5];
5770 s3 = s4;
5771 } else {
5772 peg$currPos = s3;
5773 s3 = peg$FAILED;
5774 }
5775 } else {
5776 peg$currPos = s3;
5777 s3 = peg$FAILED;
5778 }
5779 while (s3 !== peg$FAILED) {
5780 s2.push(s3);
5781 s3 = peg$currPos;
5782 s4 = peg$parse__();
5783 if (s4 !== peg$FAILED) {
5784 if (input.charCodeAt(peg$currPos) === 44) {
5785 s5 = peg$c228;
5786 peg$currPos++;
5787 } else {
5788 s5 = peg$FAILED;
5789 if (peg$silentFails === 0) { peg$fail(peg$c229); }
5790 }
5791 if (s5 !== peg$FAILED) {
5792 s4 = [s4, s5];
5793 s3 = s4;
5794 } else {
5795 peg$currPos = s3;
5796 s3 = peg$FAILED;
5797 }
5798 } else {
5799 peg$currPos = s3;
5800 s3 = peg$FAILED;
5801 }
5802 }
5803 if (s2 !== peg$FAILED) {
5804 peg$savedPos = s0;
5805 s1 = peg$c234(s2);
5806 s0 = s1;
5807 } else {
5808 peg$currPos = s0;
5809 s0 = peg$FAILED;
5810 }
5811 } else {
5812 peg$currPos = s0;
5813 s0 = peg$FAILED;
5814 }
5815
5816 return s0;
5817 }
5818
5819 function peg$parsePropertyName() {
5820 var s0;
5821
5822 s0 = peg$parseIdentifierName();
5823 if (s0 === peg$FAILED) {
5824 s0 = peg$parseStringLiteral();
5825 if (s0 === peg$FAILED) {
5826 s0 = peg$parseNumericLiteral();
5827 }
5828 }
5829
5830 return s0;
5831 }
5832
5833 function peg$parsePropertySetParameterList() {
5834 var s0, s1;
5835
5836 s0 = peg$currPos;
5837 s1 = peg$parseIdentifier();
5838 if (s1 !== peg$FAILED) {
5839 peg$savedPos = s0;
5840 s1 = peg$c235(s1);
5841 }
5842 s0 = s1;
5843
5844 return s0;
5845 }
5846
5847 function peg$parseMemberExpression() {
5848 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
5849
5850 s0 = peg$currPos;
5851 s1 = peg$parsePrimaryExpression();
5852 if (s1 === peg$FAILED) {
5853 s1 = peg$currPos;
5854 s2 = peg$parseNewToken();
5855 if (s2 !== peg$FAILED) {
5856 s3 = peg$parse__();
5857 if (s3 !== peg$FAILED) {
5858 s4 = peg$parseMemberExpression();
5859 if (s4 !== peg$FAILED) {
5860 s5 = peg$parse__();
5861 if (s5 !== peg$FAILED) {
5862 s6 = peg$parseArguments();
5863 if (s6 !== peg$FAILED) {
5864 peg$savedPos = s1;
5865 s2 = peg$c236(s4, s6);
5866 s1 = s2;
5867 } else {
5868 peg$currPos = s1;
5869 s1 = peg$FAILED;
5870 }
5871 } else {
5872 peg$currPos = s1;
5873 s1 = peg$FAILED;
5874 }
5875 } else {
5876 peg$currPos = s1;
5877 s1 = peg$FAILED;
5878 }
5879 } else {
5880 peg$currPos = s1;
5881 s1 = peg$FAILED;
5882 }
5883 } else {
5884 peg$currPos = s1;
5885 s1 = peg$FAILED;
5886 }
5887 }
5888 if (s1 !== peg$FAILED) {
5889 s2 = [];
5890 s3 = peg$currPos;
5891 s4 = peg$parse__();
5892 if (s4 !== peg$FAILED) {
5893 if (input.charCodeAt(peg$currPos) === 91) {
5894 s5 = peg$c112;
5895 peg$currPos++;
5896 } else {
5897 s5 = peg$FAILED;
5898 if (peg$silentFails === 0) { peg$fail(peg$c113); }
5899 }
5900 if (s5 !== peg$FAILED) {
5901 s6 = peg$parse__();
5902 if (s6 !== peg$FAILED) {
5903 s7 = peg$parseExpression();
5904 if (s7 !== peg$FAILED) {
5905 s8 = peg$parse__();
5906 if (s8 !== peg$FAILED) {
5907 if (input.charCodeAt(peg$currPos) === 93) {
5908 s9 = peg$c114;
5909 peg$currPos++;
5910 } else {
5911 s9 = peg$FAILED;
5912 if (peg$silentFails === 0) { peg$fail(peg$c115); }
5913 }
5914 if (s9 !== peg$FAILED) {
5915 peg$savedPos = s3;
5916 s4 = peg$c237(s1, s7);
5917 s3 = s4;
5918 } else {
5919 peg$currPos = s3;
5920 s3 = peg$FAILED;
5921 }
5922 } else {
5923 peg$currPos = s3;
5924 s3 = peg$FAILED;
5925 }
5926 } else {
5927 peg$currPos = s3;
5928 s3 = peg$FAILED;
5929 }
5930 } else {
5931 peg$currPos = s3;
5932 s3 = peg$FAILED;
5933 }
5934 } else {
5935 peg$currPos = s3;
5936 s3 = peg$FAILED;
5937 }
5938 } else {
5939 peg$currPos = s3;
5940 s3 = peg$FAILED;
5941 }
5942 if (s3 === peg$FAILED) {
5943 s3 = peg$currPos;
5944 s4 = peg$parse__();
5945 if (s4 !== peg$FAILED) {
5946 if (input.charCodeAt(peg$currPos) === 46) {
5947 s5 = peg$c54;
5948 peg$currPos++;
5949 } else {
5950 s5 = peg$FAILED;
5951 if (peg$silentFails === 0) { peg$fail(peg$c55); }
5952 }
5953 if (s5 !== peg$FAILED) {
5954 s6 = peg$parse__();
5955 if (s6 !== peg$FAILED) {
5956 s7 = peg$parseIdentifierName();
5957 if (s7 !== peg$FAILED) {
5958 peg$savedPos = s3;
5959 s4 = peg$c238(s1, s7);
5960 s3 = s4;
5961 } else {
5962 peg$currPos = s3;
5963 s3 = peg$FAILED;
5964 }
5965 } else {
5966 peg$currPos = s3;
5967 s3 = peg$FAILED;
5968 }
5969 } else {
5970 peg$currPos = s3;
5971 s3 = peg$FAILED;
5972 }
5973 } else {
5974 peg$currPos = s3;
5975 s3 = peg$FAILED;
5976 }
5977 }
5978 while (s3 !== peg$FAILED) {
5979 s2.push(s3);
5980 s3 = peg$currPos;
5981 s4 = peg$parse__();
5982 if (s4 !== peg$FAILED) {
5983 if (input.charCodeAt(peg$currPos) === 91) {
5984 s5 = peg$c112;
5985 peg$currPos++;
5986 } else {
5987 s5 = peg$FAILED;
5988 if (peg$silentFails === 0) { peg$fail(peg$c113); }
5989 }
5990 if (s5 !== peg$FAILED) {
5991 s6 = peg$parse__();
5992 if (s6 !== peg$FAILED) {
5993 s7 = peg$parseExpression();
5994 if (s7 !== peg$FAILED) {
5995 s8 = peg$parse__();
5996 if (s8 !== peg$FAILED) {
5997 if (input.charCodeAt(peg$currPos) === 93) {
5998 s9 = peg$c114;
5999 peg$currPos++;
6000 } else {
6001 s9 = peg$FAILED;
6002 if (peg$silentFails === 0) { peg$fail(peg$c115); }
6003 }
6004 if (s9 !== peg$FAILED) {
6005 peg$savedPos = s3;
6006 s4 = peg$c237(s1, s7);
6007 s3 = s4;
6008 } else {
6009 peg$currPos = s3;
6010 s3 = peg$FAILED;
6011 }
6012 } else {
6013 peg$currPos = s3;
6014 s3 = peg$FAILED;
6015 }
6016 } else {
6017 peg$currPos = s3;
6018 s3 = peg$FAILED;
6019 }
6020 } else {
6021 peg$currPos = s3;
6022 s3 = peg$FAILED;
6023 }
6024 } else {
6025 peg$currPos = s3;
6026 s3 = peg$FAILED;
6027 }
6028 } else {
6029 peg$currPos = s3;
6030 s3 = peg$FAILED;
6031 }
6032 if (s3 === peg$FAILED) {
6033 s3 = peg$currPos;
6034 s4 = peg$parse__();
6035 if (s4 !== peg$FAILED) {
6036 if (input.charCodeAt(peg$currPos) === 46) {
6037 s5 = peg$c54;
6038 peg$currPos++;
6039 } else {
6040 s5 = peg$FAILED;
6041 if (peg$silentFails === 0) { peg$fail(peg$c55); }
6042 }
6043 if (s5 !== peg$FAILED) {
6044 s6 = peg$parse__();
6045 if (s6 !== peg$FAILED) {
6046 s7 = peg$parseIdentifierName();
6047 if (s7 !== peg$FAILED) {
6048 peg$savedPos = s3;
6049 s4 = peg$c238(s1, s7);
6050 s3 = s4;
6051 } else {
6052 peg$currPos = s3;
6053 s3 = peg$FAILED;
6054 }
6055 } else {
6056 peg$currPos = s3;
6057 s3 = peg$FAILED;
6058 }
6059 } else {
6060 peg$currPos = s3;
6061 s3 = peg$FAILED;
6062 }
6063 } else {
6064 peg$currPos = s3;
6065 s3 = peg$FAILED;
6066 }
6067 }
6068 }
6069 if (s2 !== peg$FAILED) {
6070 peg$savedPos = s0;
6071 s1 = peg$c239(s1, s2);
6072 s0 = s1;
6073 } else {
6074 peg$currPos = s0;
6075 s0 = peg$FAILED;
6076 }
6077 } else {
6078 peg$currPos = s0;
6079 s0 = peg$FAILED;
6080 }
6081
6082 return s0;
6083 }
6084
6085 function peg$parseNewExpression() {
6086 var s0, s1, s2, s3;
6087
6088 s0 = peg$parseMemberExpression();
6089 if (s0 === peg$FAILED) {
6090 s0 = peg$currPos;
6091 s1 = peg$parseNewToken();
6092 if (s1 !== peg$FAILED) {
6093 s2 = peg$parse__();
6094 if (s2 !== peg$FAILED) {
6095 s3 = peg$parseNewExpression();
6096 if (s3 !== peg$FAILED) {
6097 peg$savedPos = s0;
6098 s1 = peg$c240(s3);
6099 s0 = s1;
6100 } else {
6101 peg$currPos = s0;
6102 s0 = peg$FAILED;
6103 }
6104 } else {
6105 peg$currPos = s0;
6106 s0 = peg$FAILED;
6107 }
6108 } else {
6109 peg$currPos = s0;
6110 s0 = peg$FAILED;
6111 }
6112 }
6113
6114 return s0;
6115 }
6116
6117 function peg$parseCallExpression() {
6118 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
6119
6120 s0 = peg$currPos;
6121 s1 = peg$currPos;
6122 s2 = peg$parseMemberExpression();
6123 if (s2 !== peg$FAILED) {
6124 s3 = peg$parse__();
6125 if (s3 !== peg$FAILED) {
6126 s4 = peg$parseArguments();
6127 if (s4 !== peg$FAILED) {
6128 peg$savedPos = s1;
6129 s2 = peg$c241(s2, s4);
6130 s1 = s2;
6131 } else {
6132 peg$currPos = s1;
6133 s1 = peg$FAILED;
6134 }
6135 } else {
6136 peg$currPos = s1;
6137 s1 = peg$FAILED;
6138 }
6139 } else {
6140 peg$currPos = s1;
6141 s1 = peg$FAILED;
6142 }
6143 if (s1 !== peg$FAILED) {
6144 s2 = [];
6145 s3 = peg$currPos;
6146 s4 = peg$parse__();
6147 if (s4 !== peg$FAILED) {
6148 s5 = peg$parseArguments();
6149 if (s5 !== peg$FAILED) {
6150 peg$savedPos = s3;
6151 s4 = peg$c242(s1, s5);
6152 s3 = s4;
6153 } else {
6154 peg$currPos = s3;
6155 s3 = peg$FAILED;
6156 }
6157 } else {
6158 peg$currPos = s3;
6159 s3 = peg$FAILED;
6160 }
6161 if (s3 === peg$FAILED) {
6162 s3 = peg$currPos;
6163 s4 = peg$parse__();
6164 if (s4 !== peg$FAILED) {
6165 if (input.charCodeAt(peg$currPos) === 91) {
6166 s5 = peg$c112;
6167 peg$currPos++;
6168 } else {
6169 s5 = peg$FAILED;
6170 if (peg$silentFails === 0) { peg$fail(peg$c113); }
6171 }
6172 if (s5 !== peg$FAILED) {
6173 s6 = peg$parse__();
6174 if (s6 !== peg$FAILED) {
6175 s7 = peg$parseExpression();
6176 if (s7 !== peg$FAILED) {
6177 s8 = peg$parse__();
6178 if (s8 !== peg$FAILED) {
6179 if (input.charCodeAt(peg$currPos) === 93) {
6180 s9 = peg$c114;
6181 peg$currPos++;
6182 } else {
6183 s9 = peg$FAILED;
6184 if (peg$silentFails === 0) { peg$fail(peg$c115); }
6185 }
6186 if (s9 !== peg$FAILED) {
6187 peg$savedPos = s3;
6188 s4 = peg$c243(s1, s7);
6189 s3 = s4;
6190 } else {
6191 peg$currPos = s3;
6192 s3 = peg$FAILED;
6193 }
6194 } else {
6195 peg$currPos = s3;
6196 s3 = peg$FAILED;
6197 }
6198 } else {
6199 peg$currPos = s3;
6200 s3 = peg$FAILED;
6201 }
6202 } else {
6203 peg$currPos = s3;
6204 s3 = peg$FAILED;
6205 }
6206 } else {
6207 peg$currPos = s3;
6208 s3 = peg$FAILED;
6209 }
6210 } else {
6211 peg$currPos = s3;
6212 s3 = peg$FAILED;
6213 }
6214 if (s3 === peg$FAILED) {
6215 s3 = peg$currPos;
6216 s4 = peg$parse__();
6217 if (s4 !== peg$FAILED) {
6218 if (input.charCodeAt(peg$currPos) === 46) {
6219 s5 = peg$c54;
6220 peg$currPos++;
6221 } else {
6222 s5 = peg$FAILED;
6223 if (peg$silentFails === 0) { peg$fail(peg$c55); }
6224 }
6225 if (s5 !== peg$FAILED) {
6226 s6 = peg$parse__();
6227 if (s6 !== peg$FAILED) {
6228 s7 = peg$parseIdentifierName();
6229 if (s7 !== peg$FAILED) {
6230 peg$savedPos = s3;
6231 s4 = peg$c244(s1, s7);
6232 s3 = s4;
6233 } else {
6234 peg$currPos = s3;
6235 s3 = peg$FAILED;
6236 }
6237 } else {
6238 peg$currPos = s3;
6239 s3 = peg$FAILED;
6240 }
6241 } else {
6242 peg$currPos = s3;
6243 s3 = peg$FAILED;
6244 }
6245 } else {
6246 peg$currPos = s3;
6247 s3 = peg$FAILED;
6248 }
6249 }
6250 }
6251 while (s3 !== peg$FAILED) {
6252 s2.push(s3);
6253 s3 = peg$currPos;
6254 s4 = peg$parse__();
6255 if (s4 !== peg$FAILED) {
6256 s5 = peg$parseArguments();
6257 if (s5 !== peg$FAILED) {
6258 peg$savedPos = s3;
6259 s4 = peg$c242(s1, s5);
6260 s3 = s4;
6261 } else {
6262 peg$currPos = s3;
6263 s3 = peg$FAILED;
6264 }
6265 } else {
6266 peg$currPos = s3;
6267 s3 = peg$FAILED;
6268 }
6269 if (s3 === peg$FAILED) {
6270 s3 = peg$currPos;
6271 s4 = peg$parse__();
6272 if (s4 !== peg$FAILED) {
6273 if (input.charCodeAt(peg$currPos) === 91) {
6274 s5 = peg$c112;
6275 peg$currPos++;
6276 } else {
6277 s5 = peg$FAILED;
6278 if (peg$silentFails === 0) { peg$fail(peg$c113); }
6279 }
6280 if (s5 !== peg$FAILED) {
6281 s6 = peg$parse__();
6282 if (s6 !== peg$FAILED) {
6283 s7 = peg$parseExpression();
6284 if (s7 !== peg$FAILED) {
6285 s8 = peg$parse__();
6286 if (s8 !== peg$FAILED) {
6287 if (input.charCodeAt(peg$currPos) === 93) {
6288 s9 = peg$c114;
6289 peg$currPos++;
6290 } else {
6291 s9 = peg$FAILED;
6292 if (peg$silentFails === 0) { peg$fail(peg$c115); }
6293 }
6294 if (s9 !== peg$FAILED) {
6295 peg$savedPos = s3;
6296 s4 = peg$c243(s1, s7);
6297 s3 = s4;
6298 } else {
6299 peg$currPos = s3;
6300 s3 = peg$FAILED;
6301 }
6302 } else {
6303 peg$currPos = s3;
6304 s3 = peg$FAILED;
6305 }
6306 } else {
6307 peg$currPos = s3;
6308 s3 = peg$FAILED;
6309 }
6310 } else {
6311 peg$currPos = s3;
6312 s3 = peg$FAILED;
6313 }
6314 } else {
6315 peg$currPos = s3;
6316 s3 = peg$FAILED;
6317 }
6318 } else {
6319 peg$currPos = s3;
6320 s3 = peg$FAILED;
6321 }
6322 if (s3 === peg$FAILED) {
6323 s3 = peg$currPos;
6324 s4 = peg$parse__();
6325 if (s4 !== peg$FAILED) {
6326 if (input.charCodeAt(peg$currPos) === 46) {
6327 s5 = peg$c54;
6328 peg$currPos++;
6329 } else {
6330 s5 = peg$FAILED;
6331 if (peg$silentFails === 0) { peg$fail(peg$c55); }
6332 }
6333 if (s5 !== peg$FAILED) {
6334 s6 = peg$parse__();
6335 if (s6 !== peg$FAILED) {
6336 s7 = peg$parseIdentifierName();
6337 if (s7 !== peg$FAILED) {
6338 peg$savedPos = s3;
6339 s4 = peg$c244(s1, s7);
6340 s3 = s4;
6341 } else {
6342 peg$currPos = s3;
6343 s3 = peg$FAILED;
6344 }
6345 } else {
6346 peg$currPos = s3;
6347 s3 = peg$FAILED;
6348 }
6349 } else {
6350 peg$currPos = s3;
6351 s3 = peg$FAILED;
6352 }
6353 } else {
6354 peg$currPos = s3;
6355 s3 = peg$FAILED;
6356 }
6357 }
6358 }
6359 }
6360 if (s2 !== peg$FAILED) {
6361 peg$savedPos = s0;
6362 s1 = peg$c245(s1, s2);
6363 s0 = s1;
6364 } else {
6365 peg$currPos = s0;
6366 s0 = peg$FAILED;
6367 }
6368 } else {
6369 peg$currPos = s0;
6370 s0 = peg$FAILED;
6371 }
6372
6373 return s0;
6374 }
6375
6376 function peg$parseArguments() {
6377 var s0, s1, s2, s3, s4, s5;
6378
6379 s0 = peg$currPos;
6380 if (input.charCodeAt(peg$currPos) === 40) {
6381 s1 = peg$c221;
6382 peg$currPos++;
6383 } else {
6384 s1 = peg$FAILED;
6385 if (peg$silentFails === 0) { peg$fail(peg$c222); }
6386 }
6387 if (s1 !== peg$FAILED) {
6388 s2 = peg$parse__();
6389 if (s2 !== peg$FAILED) {
6390 s3 = peg$currPos;
6391 s4 = peg$parseArgumentList();
6392 if (s4 !== peg$FAILED) {
6393 s5 = peg$parse__();
6394 if (s5 !== peg$FAILED) {
6395 s4 = [s4, s5];
6396 s3 = s4;
6397 } else {
6398 peg$currPos = s3;
6399 s3 = peg$FAILED;
6400 }
6401 } else {
6402 peg$currPos = s3;
6403 s3 = peg$FAILED;
6404 }
6405 if (s3 === peg$FAILED) {
6406 s3 = null;
6407 }
6408 if (s3 !== peg$FAILED) {
6409 if (input.charCodeAt(peg$currPos) === 41) {
6410 s4 = peg$c223;
6411 peg$currPos++;
6412 } else {
6413 s4 = peg$FAILED;
6414 if (peg$silentFails === 0) { peg$fail(peg$c224); }
6415 }
6416 if (s4 !== peg$FAILED) {
6417 peg$savedPos = s0;
6418 s1 = peg$c246(s3);
6419 s0 = s1;
6420 } else {
6421 peg$currPos = s0;
6422 s0 = peg$FAILED;
6423 }
6424 } else {
6425 peg$currPos = s0;
6426 s0 = peg$FAILED;
6427 }
6428 } else {
6429 peg$currPos = s0;
6430 s0 = peg$FAILED;
6431 }
6432 } else {
6433 peg$currPos = s0;
6434 s0 = peg$FAILED;
6435 }
6436
6437 return s0;
6438 }
6439
6440 function peg$parseArgumentList() {
6441 var s0, s1, s2, s3, s4, s5, s6, s7;
6442
6443 s0 = peg$currPos;
6444 s1 = peg$parseAssignmentExpression();
6445 if (s1 !== peg$FAILED) {
6446 s2 = [];
6447 s3 = peg$currPos;
6448 s4 = peg$parse__();
6449 if (s4 !== peg$FAILED) {
6450 if (input.charCodeAt(peg$currPos) === 44) {
6451 s5 = peg$c228;
6452 peg$currPos++;
6453 } else {
6454 s5 = peg$FAILED;
6455 if (peg$silentFails === 0) { peg$fail(peg$c229); }
6456 }
6457 if (s5 !== peg$FAILED) {
6458 s6 = peg$parse__();
6459 if (s6 !== peg$FAILED) {
6460 s7 = peg$parseAssignmentExpression();
6461 if (s7 !== peg$FAILED) {
6462 s4 = [s4, s5, s6, s7];
6463 s3 = s4;
6464 } else {
6465 peg$currPos = s3;
6466 s3 = peg$FAILED;
6467 }
6468 } else {
6469 peg$currPos = s3;
6470 s3 = peg$FAILED;
6471 }
6472 } else {
6473 peg$currPos = s3;
6474 s3 = peg$FAILED;
6475 }
6476 } else {
6477 peg$currPos = s3;
6478 s3 = peg$FAILED;
6479 }
6480 while (s3 !== peg$FAILED) {
6481 s2.push(s3);
6482 s3 = peg$currPos;
6483 s4 = peg$parse__();
6484 if (s4 !== peg$FAILED) {
6485 if (input.charCodeAt(peg$currPos) === 44) {
6486 s5 = peg$c228;
6487 peg$currPos++;
6488 } else {
6489 s5 = peg$FAILED;
6490 if (peg$silentFails === 0) { peg$fail(peg$c229); }
6491 }
6492 if (s5 !== peg$FAILED) {
6493 s6 = peg$parse__();
6494 if (s6 !== peg$FAILED) {
6495 s7 = peg$parseAssignmentExpression();
6496 if (s7 !== peg$FAILED) {
6497 s4 = [s4, s5, s6, s7];
6498 s3 = s4;
6499 } else {
6500 peg$currPos = s3;
6501 s3 = peg$FAILED;
6502 }
6503 } else {
6504 peg$currPos = s3;
6505 s3 = peg$FAILED;
6506 }
6507 } else {
6508 peg$currPos = s3;
6509 s3 = peg$FAILED;
6510 }
6511 } else {
6512 peg$currPos = s3;
6513 s3 = peg$FAILED;
6514 }
6515 }
6516 if (s2 !== peg$FAILED) {
6517 peg$savedPos = s0;
6518 s1 = peg$c247(s1, s2);
6519 s0 = s1;
6520 } else {
6521 peg$currPos = s0;
6522 s0 = peg$FAILED;
6523 }
6524 } else {
6525 peg$currPos = s0;
6526 s0 = peg$FAILED;
6527 }
6528
6529 return s0;
6530 }
6531
6532 function peg$parseLeftHandSideExpression() {
6533 var s0;
6534
6535 s0 = peg$parseCallExpression();
6536 if (s0 === peg$FAILED) {
6537 s0 = peg$parseNewExpression();
6538 }
6539
6540 return s0;
6541 }
6542
6543 function peg$parsePostfixExpression() {
6544 var s0, s1, s2, s3;
6545
6546 s0 = peg$currPos;
6547 s1 = peg$parseLeftHandSideExpression();
6548 if (s1 !== peg$FAILED) {
6549 s2 = peg$parse_();
6550 if (s2 !== peg$FAILED) {
6551 s3 = peg$parsePostfixOperator();
6552 if (s3 !== peg$FAILED) {
6553 peg$savedPos = s0;
6554 s1 = peg$c248(s1, s3);
6555 s0 = s1;
6556 } else {
6557 peg$currPos = s0;
6558 s0 = peg$FAILED;
6559 }
6560 } else {
6561 peg$currPos = s0;
6562 s0 = peg$FAILED;
6563 }
6564 } else {
6565 peg$currPos = s0;
6566 s0 = peg$FAILED;
6567 }
6568 if (s0 === peg$FAILED) {
6569 s0 = peg$parseLeftHandSideExpression();
6570 }
6571
6572 return s0;
6573 }
6574
6575 function peg$parsePostfixOperator() {
6576 var s0;
6577
6578 if (input.substr(peg$currPos, 2) === peg$c249) {
6579 s0 = peg$c249;
6580 peg$currPos += 2;
6581 } else {
6582 s0 = peg$FAILED;
6583 if (peg$silentFails === 0) { peg$fail(peg$c250); }
6584 }
6585 if (s0 === peg$FAILED) {
6586 if (input.substr(peg$currPos, 2) === peg$c251) {
6587 s0 = peg$c251;
6588 peg$currPos += 2;
6589 } else {
6590 s0 = peg$FAILED;
6591 if (peg$silentFails === 0) { peg$fail(peg$c252); }
6592 }
6593 }
6594
6595 return s0;
6596 }
6597
6598 function peg$parseUnaryExpression() {
6599 var s0, s1, s2, s3;
6600
6601 s0 = peg$parsePostfixExpression();
6602 if (s0 === peg$FAILED) {
6603 s0 = peg$currPos;
6604 s1 = peg$parseUnaryOperator();
6605 if (s1 !== peg$FAILED) {
6606 s2 = peg$parse__();
6607 if (s2 !== peg$FAILED) {
6608 s3 = peg$parseUnaryExpression();
6609 if (s3 !== peg$FAILED) {
6610 peg$savedPos = s0;
6611 s1 = peg$c253(s1, s3);
6612 s0 = s1;
6613 } else {
6614 peg$currPos = s0;
6615 s0 = peg$FAILED;
6616 }
6617 } else {
6618 peg$currPos = s0;
6619 s0 = peg$FAILED;
6620 }
6621 } else {
6622 peg$currPos = s0;
6623 s0 = peg$FAILED;
6624 }
6625 }
6626
6627 return s0;
6628 }
6629
6630 function peg$parseUnaryOperator() {
6631 var s0, s1, s2, s3, s4;
6632
6633 s0 = peg$currPos;
6634 s1 = peg$parseDeleteToken();
6635 if (s1 !== peg$FAILED) {
6636 s0 = input.substring(s0, peg$currPos);
6637 } else {
6638 s0 = s1;
6639 }
6640 if (s0 === peg$FAILED) {
6641 s0 = peg$currPos;
6642 s1 = peg$parseVoidToken();
6643 if (s1 !== peg$FAILED) {
6644 s0 = input.substring(s0, peg$currPos);
6645 } else {
6646 s0 = s1;
6647 }
6648 if (s0 === peg$FAILED) {
6649 s0 = peg$currPos;
6650 s1 = peg$parseTypeofToken();
6651 if (s1 !== peg$FAILED) {
6652 s0 = input.substring(s0, peg$currPos);
6653 } else {
6654 s0 = s1;
6655 }
6656 if (s0 === peg$FAILED) {
6657 if (input.substr(peg$currPos, 2) === peg$c249) {
6658 s0 = peg$c249;
6659 peg$currPos += 2;
6660 } else {
6661 s0 = peg$FAILED;
6662 if (peg$silentFails === 0) { peg$fail(peg$c250); }
6663 }
6664 if (s0 === peg$FAILED) {
6665 if (input.substr(peg$currPos, 2) === peg$c251) {
6666 s0 = peg$c251;
6667 peg$currPos += 2;
6668 } else {
6669 s0 = peg$FAILED;
6670 if (peg$silentFails === 0) { peg$fail(peg$c252); }
6671 }
6672 if (s0 === peg$FAILED) {
6673 s0 = peg$currPos;
6674 s1 = peg$currPos;
6675 if (input.charCodeAt(peg$currPos) === 43) {
6676 s2 = peg$c254;
6677 peg$currPos++;
6678 } else {
6679 s2 = peg$FAILED;
6680 if (peg$silentFails === 0) { peg$fail(peg$c255); }
6681 }
6682 if (s2 !== peg$FAILED) {
6683 s3 = peg$currPos;
6684 peg$silentFails++;
6685 if (input.charCodeAt(peg$currPos) === 61) {
6686 s4 = peg$c256;
6687 peg$currPos++;
6688 } else {
6689 s4 = peg$FAILED;
6690 if (peg$silentFails === 0) { peg$fail(peg$c257); }
6691 }
6692 peg$silentFails--;
6693 if (s4 === peg$FAILED) {
6694 s3 = void 0;
6695 } else {
6696 peg$currPos = s3;
6697 s3 = peg$FAILED;
6698 }
6699 if (s3 !== peg$FAILED) {
6700 s2 = [s2, s3];
6701 s1 = s2;
6702 } else {
6703 peg$currPos = s1;
6704 s1 = peg$FAILED;
6705 }
6706 } else {
6707 peg$currPos = s1;
6708 s1 = peg$FAILED;
6709 }
6710 if (s1 !== peg$FAILED) {
6711 s0 = input.substring(s0, peg$currPos);
6712 } else {
6713 s0 = s1;
6714 }
6715 if (s0 === peg$FAILED) {
6716 s0 = peg$currPos;
6717 s1 = peg$currPos;
6718 if (input.charCodeAt(peg$currPos) === 45) {
6719 s2 = peg$c258;
6720 peg$currPos++;
6721 } else {
6722 s2 = peg$FAILED;
6723 if (peg$silentFails === 0) { peg$fail(peg$c259); }
6724 }
6725 if (s2 !== peg$FAILED) {
6726 s3 = peg$currPos;
6727 peg$silentFails++;
6728 if (input.charCodeAt(peg$currPos) === 61) {
6729 s4 = peg$c256;
6730 peg$currPos++;
6731 } else {
6732 s4 = peg$FAILED;
6733 if (peg$silentFails === 0) { peg$fail(peg$c257); }
6734 }
6735 peg$silentFails--;
6736 if (s4 === peg$FAILED) {
6737 s3 = void 0;
6738 } else {
6739 peg$currPos = s3;
6740 s3 = peg$FAILED;
6741 }
6742 if (s3 !== peg$FAILED) {
6743 s2 = [s2, s3];
6744 s1 = s2;
6745 } else {
6746 peg$currPos = s1;
6747 s1 = peg$FAILED;
6748 }
6749 } else {
6750 peg$currPos = s1;
6751 s1 = peg$FAILED;
6752 }
6753 if (s1 !== peg$FAILED) {
6754 s0 = input.substring(s0, peg$currPos);
6755 } else {
6756 s0 = s1;
6757 }
6758 if (s0 === peg$FAILED) {
6759 if (input.charCodeAt(peg$currPos) === 126) {
6760 s0 = peg$c260;
6761 peg$currPos++;
6762 } else {
6763 s0 = peg$FAILED;
6764 if (peg$silentFails === 0) { peg$fail(peg$c261); }
6765 }
6766 if (s0 === peg$FAILED) {
6767 if (input.charCodeAt(peg$currPos) === 33) {
6768 s0 = peg$c262;
6769 peg$currPos++;
6770 } else {
6771 s0 = peg$FAILED;
6772 if (peg$silentFails === 0) { peg$fail(peg$c263); }
6773 }
6774 }
6775 }
6776 }
6777 }
6778 }
6779 }
6780 }
6781 }
6782
6783 return s0;
6784 }
6785
6786 function peg$parseMultiplicativeExpression() {
6787 var s0, s1, s2, s3, s4, s5, s6, s7;
6788
6789 s0 = peg$currPos;
6790 s1 = peg$parseUnaryExpression();
6791 if (s1 !== peg$FAILED) {
6792 s2 = [];
6793 s3 = peg$currPos;
6794 s4 = peg$parse__();
6795 if (s4 !== peg$FAILED) {
6796 s5 = peg$parseMultiplicativeOperator();
6797 if (s5 !== peg$FAILED) {
6798 s6 = peg$parse__();
6799 if (s6 !== peg$FAILED) {
6800 s7 = peg$parseUnaryExpression();
6801 if (s7 !== peg$FAILED) {
6802 s4 = [s4, s5, s6, s7];
6803 s3 = s4;
6804 } else {
6805 peg$currPos = s3;
6806 s3 = peg$FAILED;
6807 }
6808 } else {
6809 peg$currPos = s3;
6810 s3 = peg$FAILED;
6811 }
6812 } else {
6813 peg$currPos = s3;
6814 s3 = peg$FAILED;
6815 }
6816 } else {
6817 peg$currPos = s3;
6818 s3 = peg$FAILED;
6819 }
6820 while (s3 !== peg$FAILED) {
6821 s2.push(s3);
6822 s3 = peg$currPos;
6823 s4 = peg$parse__();
6824 if (s4 !== peg$FAILED) {
6825 s5 = peg$parseMultiplicativeOperator();
6826 if (s5 !== peg$FAILED) {
6827 s6 = peg$parse__();
6828 if (s6 !== peg$FAILED) {
6829 s7 = peg$parseUnaryExpression();
6830 if (s7 !== peg$FAILED) {
6831 s4 = [s4, s5, s6, s7];
6832 s3 = s4;
6833 } else {
6834 peg$currPos = s3;
6835 s3 = peg$FAILED;
6836 }
6837 } else {
6838 peg$currPos = s3;
6839 s3 = peg$FAILED;
6840 }
6841 } else {
6842 peg$currPos = s3;
6843 s3 = peg$FAILED;
6844 }
6845 } else {
6846 peg$currPos = s3;
6847 s3 = peg$FAILED;
6848 }
6849 }
6850 if (s2 !== peg$FAILED) {
6851 peg$savedPos = s0;
6852 s1 = peg$c264(s1, s2);
6853 s0 = s1;
6854 } else {
6855 peg$currPos = s0;
6856 s0 = peg$FAILED;
6857 }
6858 } else {
6859 peg$currPos = s0;
6860 s0 = peg$FAILED;
6861 }
6862
6863 return s0;
6864 }
6865
6866 function peg$parseMultiplicativeOperator() {
6867 var s0, s1, s2, s3, s4;
6868
6869 s0 = peg$currPos;
6870 s1 = peg$currPos;
6871 if (input.charCodeAt(peg$currPos) === 42) {
6872 s2 = peg$c265;
6873 peg$currPos++;
6874 } else {
6875 s2 = peg$FAILED;
6876 if (peg$silentFails === 0) { peg$fail(peg$c266); }
6877 }
6878 if (s2 !== peg$FAILED) {
6879 s3 = peg$currPos;
6880 peg$silentFails++;
6881 if (input.charCodeAt(peg$currPos) === 61) {
6882 s4 = peg$c256;
6883 peg$currPos++;
6884 } else {
6885 s4 = peg$FAILED;
6886 if (peg$silentFails === 0) { peg$fail(peg$c257); }
6887 }
6888 peg$silentFails--;
6889 if (s4 === peg$FAILED) {
6890 s3 = void 0;
6891 } else {
6892 peg$currPos = s3;
6893 s3 = peg$FAILED;
6894 }
6895 if (s3 !== peg$FAILED) {
6896 s2 = [s2, s3];
6897 s1 = s2;
6898 } else {
6899 peg$currPos = s1;
6900 s1 = peg$FAILED;
6901 }
6902 } else {
6903 peg$currPos = s1;
6904 s1 = peg$FAILED;
6905 }
6906 if (s1 !== peg$FAILED) {
6907 s0 = input.substring(s0, peg$currPos);
6908 } else {
6909 s0 = s1;
6910 }
6911 if (s0 === peg$FAILED) {
6912 s0 = peg$currPos;
6913 s1 = peg$currPos;
6914 if (input.charCodeAt(peg$currPos) === 47) {
6915 s2 = peg$c105;
6916 peg$currPos++;
6917 } else {
6918 s2 = peg$FAILED;
6919 if (peg$silentFails === 0) { peg$fail(peg$c106); }
6920 }
6921 if (s2 !== peg$FAILED) {
6922 s3 = peg$currPos;
6923 peg$silentFails++;
6924 if (input.charCodeAt(peg$currPos) === 61) {
6925 s4 = peg$c256;
6926 peg$currPos++;
6927 } else {
6928 s4 = peg$FAILED;
6929 if (peg$silentFails === 0) { peg$fail(peg$c257); }
6930 }
6931 peg$silentFails--;
6932 if (s4 === peg$FAILED) {
6933 s3 = void 0;
6934 } else {
6935 peg$currPos = s3;
6936 s3 = peg$FAILED;
6937 }
6938 if (s3 !== peg$FAILED) {
6939 s2 = [s2, s3];
6940 s1 = s2;
6941 } else {
6942 peg$currPos = s1;
6943 s1 = peg$FAILED;
6944 }
6945 } else {
6946 peg$currPos = s1;
6947 s1 = peg$FAILED;
6948 }
6949 if (s1 !== peg$FAILED) {
6950 s0 = input.substring(s0, peg$currPos);
6951 } else {
6952 s0 = s1;
6953 }
6954 if (s0 === peg$FAILED) {
6955 s0 = peg$currPos;
6956 s1 = peg$currPos;
6957 if (input.charCodeAt(peg$currPos) === 37) {
6958 s2 = peg$c267;
6959 peg$currPos++;
6960 } else {
6961 s2 = peg$FAILED;
6962 if (peg$silentFails === 0) { peg$fail(peg$c268); }
6963 }
6964 if (s2 !== peg$FAILED) {
6965 s3 = peg$currPos;
6966 peg$silentFails++;
6967 if (input.charCodeAt(peg$currPos) === 61) {
6968 s4 = peg$c256;
6969 peg$currPos++;
6970 } else {
6971 s4 = peg$FAILED;
6972 if (peg$silentFails === 0) { peg$fail(peg$c257); }
6973 }
6974 peg$silentFails--;
6975 if (s4 === peg$FAILED) {
6976 s3 = void 0;
6977 } else {
6978 peg$currPos = s3;
6979 s3 = peg$FAILED;
6980 }
6981 if (s3 !== peg$FAILED) {
6982 s2 = [s2, s3];
6983 s1 = s2;
6984 } else {
6985 peg$currPos = s1;
6986 s1 = peg$FAILED;
6987 }
6988 } else {
6989 peg$currPos = s1;
6990 s1 = peg$FAILED;
6991 }
6992 if (s1 !== peg$FAILED) {
6993 s0 = input.substring(s0, peg$currPos);
6994 } else {
6995 s0 = s1;
6996 }
6997 }
6998 }
6999
7000 return s0;
7001 }
7002
7003 function peg$parseAdditiveExpression() {
7004 var s0, s1, s2, s3, s4, s5, s6, s7;
7005
7006 s0 = peg$currPos;
7007 s1 = peg$parseMultiplicativeExpression();
7008 if (s1 !== peg$FAILED) {
7009 s2 = [];
7010 s3 = peg$currPos;
7011 s4 = peg$parse__();
7012 if (s4 !== peg$FAILED) {
7013 s5 = peg$parseAdditiveOperator();
7014 if (s5 !== peg$FAILED) {
7015 s6 = peg$parse__();
7016 if (s6 !== peg$FAILED) {
7017 s7 = peg$parseMultiplicativeExpression();
7018 if (s7 !== peg$FAILED) {
7019 s4 = [s4, s5, s6, s7];
7020 s3 = s4;
7021 } else {
7022 peg$currPos = s3;
7023 s3 = peg$FAILED;
7024 }
7025 } else {
7026 peg$currPos = s3;
7027 s3 = peg$FAILED;
7028 }
7029 } else {
7030 peg$currPos = s3;
7031 s3 = peg$FAILED;
7032 }
7033 } else {
7034 peg$currPos = s3;
7035 s3 = peg$FAILED;
7036 }
7037 while (s3 !== peg$FAILED) {
7038 s2.push(s3);
7039 s3 = peg$currPos;
7040 s4 = peg$parse__();
7041 if (s4 !== peg$FAILED) {
7042 s5 = peg$parseAdditiveOperator();
7043 if (s5 !== peg$FAILED) {
7044 s6 = peg$parse__();
7045 if (s6 !== peg$FAILED) {
7046 s7 = peg$parseMultiplicativeExpression();
7047 if (s7 !== peg$FAILED) {
7048 s4 = [s4, s5, s6, s7];
7049 s3 = s4;
7050 } else {
7051 peg$currPos = s3;
7052 s3 = peg$FAILED;
7053 }
7054 } else {
7055 peg$currPos = s3;
7056 s3 = peg$FAILED;
7057 }
7058 } else {
7059 peg$currPos = s3;
7060 s3 = peg$FAILED;
7061 }
7062 } else {
7063 peg$currPos = s3;
7064 s3 = peg$FAILED;
7065 }
7066 }
7067 if (s2 !== peg$FAILED) {
7068 peg$savedPos = s0;
7069 s1 = peg$c264(s1, s2);
7070 s0 = s1;
7071 } else {
7072 peg$currPos = s0;
7073 s0 = peg$FAILED;
7074 }
7075 } else {
7076 peg$currPos = s0;
7077 s0 = peg$FAILED;
7078 }
7079
7080 return s0;
7081 }
7082
7083 function peg$parseAdditiveOperator() {
7084 var s0, s1, s2, s3, s4;
7085
7086 s0 = peg$currPos;
7087 s1 = peg$currPos;
7088 if (input.charCodeAt(peg$currPos) === 43) {
7089 s2 = peg$c254;
7090 peg$currPos++;
7091 } else {
7092 s2 = peg$FAILED;
7093 if (peg$silentFails === 0) { peg$fail(peg$c255); }
7094 }
7095 if (s2 !== peg$FAILED) {
7096 s3 = peg$currPos;
7097 peg$silentFails++;
7098 if (peg$c269.test(input.charAt(peg$currPos))) {
7099 s4 = input.charAt(peg$currPos);
7100 peg$currPos++;
7101 } else {
7102 s4 = peg$FAILED;
7103 if (peg$silentFails === 0) { peg$fail(peg$c270); }
7104 }
7105 peg$silentFails--;
7106 if (s4 === peg$FAILED) {
7107 s3 = void 0;
7108 } else {
7109 peg$currPos = s3;
7110 s3 = peg$FAILED;
7111 }
7112 if (s3 !== peg$FAILED) {
7113 s2 = [s2, s3];
7114 s1 = s2;
7115 } else {
7116 peg$currPos = s1;
7117 s1 = peg$FAILED;
7118 }
7119 } else {
7120 peg$currPos = s1;
7121 s1 = peg$FAILED;
7122 }
7123 if (s1 !== peg$FAILED) {
7124 s0 = input.substring(s0, peg$currPos);
7125 } else {
7126 s0 = s1;
7127 }
7128 if (s0 === peg$FAILED) {
7129 s0 = peg$currPos;
7130 s1 = peg$currPos;
7131 if (input.charCodeAt(peg$currPos) === 45) {
7132 s2 = peg$c258;
7133 peg$currPos++;
7134 } else {
7135 s2 = peg$FAILED;
7136 if (peg$silentFails === 0) { peg$fail(peg$c259); }
7137 }
7138 if (s2 !== peg$FAILED) {
7139 s3 = peg$currPos;
7140 peg$silentFails++;
7141 if (peg$c271.test(input.charAt(peg$currPos))) {
7142 s4 = input.charAt(peg$currPos);
7143 peg$currPos++;
7144 } else {
7145 s4 = peg$FAILED;
7146 if (peg$silentFails === 0) { peg$fail(peg$c272); }
7147 }
7148 peg$silentFails--;
7149 if (s4 === peg$FAILED) {
7150 s3 = void 0;
7151 } else {
7152 peg$currPos = s3;
7153 s3 = peg$FAILED;
7154 }
7155 if (s3 !== peg$FAILED) {
7156 s2 = [s2, s3];
7157 s1 = s2;
7158 } else {
7159 peg$currPos = s1;
7160 s1 = peg$FAILED;
7161 }
7162 } else {
7163 peg$currPos = s1;
7164 s1 = peg$FAILED;
7165 }
7166 if (s1 !== peg$FAILED) {
7167 s0 = input.substring(s0, peg$currPos);
7168 } else {
7169 s0 = s1;
7170 }
7171 }
7172
7173 return s0;
7174 }
7175
7176 function peg$parseShiftExpression() {
7177 var s0, s1, s2, s3, s4, s5, s6, s7;
7178
7179 s0 = peg$currPos;
7180 s1 = peg$parseAdditiveExpression();
7181 if (s1 !== peg$FAILED) {
7182 s2 = [];
7183 s3 = peg$currPos;
7184 s4 = peg$parse__();
7185 if (s4 !== peg$FAILED) {
7186 s5 = peg$parseShiftOperator();
7187 if (s5 !== peg$FAILED) {
7188 s6 = peg$parse__();
7189 if (s6 !== peg$FAILED) {
7190 s7 = peg$parseAdditiveExpression();
7191 if (s7 !== peg$FAILED) {
7192 s4 = [s4, s5, s6, s7];
7193 s3 = s4;
7194 } else {
7195 peg$currPos = s3;
7196 s3 = peg$FAILED;
7197 }
7198 } else {
7199 peg$currPos = s3;
7200 s3 = peg$FAILED;
7201 }
7202 } else {
7203 peg$currPos = s3;
7204 s3 = peg$FAILED;
7205 }
7206 } else {
7207 peg$currPos = s3;
7208 s3 = peg$FAILED;
7209 }
7210 while (s3 !== peg$FAILED) {
7211 s2.push(s3);
7212 s3 = peg$currPos;
7213 s4 = peg$parse__();
7214 if (s4 !== peg$FAILED) {
7215 s5 = peg$parseShiftOperator();
7216 if (s5 !== peg$FAILED) {
7217 s6 = peg$parse__();
7218 if (s6 !== peg$FAILED) {
7219 s7 = peg$parseAdditiveExpression();
7220 if (s7 !== peg$FAILED) {
7221 s4 = [s4, s5, s6, s7];
7222 s3 = s4;
7223 } else {
7224 peg$currPos = s3;
7225 s3 = peg$FAILED;
7226 }
7227 } else {
7228 peg$currPos = s3;
7229 s3 = peg$FAILED;
7230 }
7231 } else {
7232 peg$currPos = s3;
7233 s3 = peg$FAILED;
7234 }
7235 } else {
7236 peg$currPos = s3;
7237 s3 = peg$FAILED;
7238 }
7239 }
7240 if (s2 !== peg$FAILED) {
7241 peg$savedPos = s0;
7242 s1 = peg$c264(s1, s2);
7243 s0 = s1;
7244 } else {
7245 peg$currPos = s0;
7246 s0 = peg$FAILED;
7247 }
7248 } else {
7249 peg$currPos = s0;
7250 s0 = peg$FAILED;
7251 }
7252
7253 return s0;
7254 }
7255
7256 function peg$parseShiftOperator() {
7257 var s0, s1, s2, s3, s4;
7258
7259 s0 = peg$currPos;
7260 s1 = peg$currPos;
7261 if (input.substr(peg$currPos, 2) === peg$c273) {
7262 s2 = peg$c273;
7263 peg$currPos += 2;
7264 } else {
7265 s2 = peg$FAILED;
7266 if (peg$silentFails === 0) { peg$fail(peg$c274); }
7267 }
7268 if (s2 !== peg$FAILED) {
7269 s3 = peg$currPos;
7270 peg$silentFails++;
7271 if (input.charCodeAt(peg$currPos) === 61) {
7272 s4 = peg$c256;
7273 peg$currPos++;
7274 } else {
7275 s4 = peg$FAILED;
7276 if (peg$silentFails === 0) { peg$fail(peg$c257); }
7277 }
7278 peg$silentFails--;
7279 if (s4 === peg$FAILED) {
7280 s3 = void 0;
7281 } else {
7282 peg$currPos = s3;
7283 s3 = peg$FAILED;
7284 }
7285 if (s3 !== peg$FAILED) {
7286 s2 = [s2, s3];
7287 s1 = s2;
7288 } else {
7289 peg$currPos = s1;
7290 s1 = peg$FAILED;
7291 }
7292 } else {
7293 peg$currPos = s1;
7294 s1 = peg$FAILED;
7295 }
7296 if (s1 !== peg$FAILED) {
7297 s0 = input.substring(s0, peg$currPos);
7298 } else {
7299 s0 = s1;
7300 }
7301 if (s0 === peg$FAILED) {
7302 s0 = peg$currPos;
7303 s1 = peg$currPos;
7304 if (input.substr(peg$currPos, 3) === peg$c275) {
7305 s2 = peg$c275;
7306 peg$currPos += 3;
7307 } else {
7308 s2 = peg$FAILED;
7309 if (peg$silentFails === 0) { peg$fail(peg$c276); }
7310 }
7311 if (s2 !== peg$FAILED) {
7312 s3 = peg$currPos;
7313 peg$silentFails++;
7314 if (input.charCodeAt(peg$currPos) === 61) {
7315 s4 = peg$c256;
7316 peg$currPos++;
7317 } else {
7318 s4 = peg$FAILED;
7319 if (peg$silentFails === 0) { peg$fail(peg$c257); }
7320 }
7321 peg$silentFails--;
7322 if (s4 === peg$FAILED) {
7323 s3 = void 0;
7324 } else {
7325 peg$currPos = s3;
7326 s3 = peg$FAILED;
7327 }
7328 if (s3 !== peg$FAILED) {
7329 s2 = [s2, s3];
7330 s1 = s2;
7331 } else {
7332 peg$currPos = s1;
7333 s1 = peg$FAILED;
7334 }
7335 } else {
7336 peg$currPos = s1;
7337 s1 = peg$FAILED;
7338 }
7339 if (s1 !== peg$FAILED) {
7340 s0 = input.substring(s0, peg$currPos);
7341 } else {
7342 s0 = s1;
7343 }
7344 if (s0 === peg$FAILED) {
7345 s0 = peg$currPos;
7346 s1 = peg$currPos;
7347 if (input.substr(peg$currPos, 2) === peg$c277) {
7348 s2 = peg$c277;
7349 peg$currPos += 2;
7350 } else {
7351 s2 = peg$FAILED;
7352 if (peg$silentFails === 0) { peg$fail(peg$c278); }
7353 }
7354 if (s2 !== peg$FAILED) {
7355 s3 = peg$currPos;
7356 peg$silentFails++;
7357 if (input.charCodeAt(peg$currPos) === 61) {
7358 s4 = peg$c256;
7359 peg$currPos++;
7360 } else {
7361 s4 = peg$FAILED;
7362 if (peg$silentFails === 0) { peg$fail(peg$c257); }
7363 }
7364 peg$silentFails--;
7365 if (s4 === peg$FAILED) {
7366 s3 = void 0;
7367 } else {
7368 peg$currPos = s3;
7369 s3 = peg$FAILED;
7370 }
7371 if (s3 !== peg$FAILED) {
7372 s2 = [s2, s3];
7373 s1 = s2;
7374 } else {
7375 peg$currPos = s1;
7376 s1 = peg$FAILED;
7377 }
7378 } else {
7379 peg$currPos = s1;
7380 s1 = peg$FAILED;
7381 }
7382 if (s1 !== peg$FAILED) {
7383 s0 = input.substring(s0, peg$currPos);
7384 } else {
7385 s0 = s1;
7386 }
7387 }
7388 }
7389
7390 return s0;
7391 }
7392
7393 function peg$parseRelationalExpression() {
7394 var s0, s1, s2, s3, s4, s5, s6, s7;
7395
7396 s0 = peg$currPos;
7397 s1 = peg$parseShiftExpression();
7398 if (s1 !== peg$FAILED) {
7399 s2 = [];
7400 s3 = peg$currPos;
7401 s4 = peg$parse__();
7402 if (s4 !== peg$FAILED) {
7403 s5 = peg$parseRelationalOperator();
7404 if (s5 !== peg$FAILED) {
7405 s6 = peg$parse__();
7406 if (s6 !== peg$FAILED) {
7407 s7 = peg$parseShiftExpression();
7408 if (s7 !== peg$FAILED) {
7409 s4 = [s4, s5, s6, s7];
7410 s3 = s4;
7411 } else {
7412 peg$currPos = s3;
7413 s3 = peg$FAILED;
7414 }
7415 } else {
7416 peg$currPos = s3;
7417 s3 = peg$FAILED;
7418 }
7419 } else {
7420 peg$currPos = s3;
7421 s3 = peg$FAILED;
7422 }
7423 } else {
7424 peg$currPos = s3;
7425 s3 = peg$FAILED;
7426 }
7427 while (s3 !== peg$FAILED) {
7428 s2.push(s3);
7429 s3 = peg$currPos;
7430 s4 = peg$parse__();
7431 if (s4 !== peg$FAILED) {
7432 s5 = peg$parseRelationalOperator();
7433 if (s5 !== peg$FAILED) {
7434 s6 = peg$parse__();
7435 if (s6 !== peg$FAILED) {
7436 s7 = peg$parseShiftExpression();
7437 if (s7 !== peg$FAILED) {
7438 s4 = [s4, s5, s6, s7];
7439 s3 = s4;
7440 } else {
7441 peg$currPos = s3;
7442 s3 = peg$FAILED;
7443 }
7444 } else {
7445 peg$currPos = s3;
7446 s3 = peg$FAILED;
7447 }
7448 } else {
7449 peg$currPos = s3;
7450 s3 = peg$FAILED;
7451 }
7452 } else {
7453 peg$currPos = s3;
7454 s3 = peg$FAILED;
7455 }
7456 }
7457 if (s2 !== peg$FAILED) {
7458 peg$savedPos = s0;
7459 s1 = peg$c264(s1, s2);
7460 s0 = s1;
7461 } else {
7462 peg$currPos = s0;
7463 s0 = peg$FAILED;
7464 }
7465 } else {
7466 peg$currPos = s0;
7467 s0 = peg$FAILED;
7468 }
7469
7470 return s0;
7471 }
7472
7473 function peg$parseRelationalOperator() {
7474 var s0, s1, s2, s3, s4;
7475
7476 if (input.substr(peg$currPos, 2) === peg$c279) {
7477 s0 = peg$c279;
7478 peg$currPos += 2;
7479 } else {
7480 s0 = peg$FAILED;
7481 if (peg$silentFails === 0) { peg$fail(peg$c280); }
7482 }
7483 if (s0 === peg$FAILED) {
7484 if (input.substr(peg$currPos, 2) === peg$c281) {
7485 s0 = peg$c281;
7486 peg$currPos += 2;
7487 } else {
7488 s0 = peg$FAILED;
7489 if (peg$silentFails === 0) { peg$fail(peg$c282); }
7490 }
7491 if (s0 === peg$FAILED) {
7492 s0 = peg$currPos;
7493 s1 = peg$currPos;
7494 if (input.charCodeAt(peg$currPos) === 60) {
7495 s2 = peg$c283;
7496 peg$currPos++;
7497 } else {
7498 s2 = peg$FAILED;
7499 if (peg$silentFails === 0) { peg$fail(peg$c284); }
7500 }
7501 if (s2 !== peg$FAILED) {
7502 s3 = peg$currPos;
7503 peg$silentFails++;
7504 if (input.charCodeAt(peg$currPos) === 60) {
7505 s4 = peg$c283;
7506 peg$currPos++;
7507 } else {
7508 s4 = peg$FAILED;
7509 if (peg$silentFails === 0) { peg$fail(peg$c284); }
7510 }
7511 peg$silentFails--;
7512 if (s4 === peg$FAILED) {
7513 s3 = void 0;
7514 } else {
7515 peg$currPos = s3;
7516 s3 = peg$FAILED;
7517 }
7518 if (s3 !== peg$FAILED) {
7519 s2 = [s2, s3];
7520 s1 = s2;
7521 } else {
7522 peg$currPos = s1;
7523 s1 = peg$FAILED;
7524 }
7525 } else {
7526 peg$currPos = s1;
7527 s1 = peg$FAILED;
7528 }
7529 if (s1 !== peg$FAILED) {
7530 s0 = input.substring(s0, peg$currPos);
7531 } else {
7532 s0 = s1;
7533 }
7534 if (s0 === peg$FAILED) {
7535 s0 = peg$currPos;
7536 s1 = peg$currPos;
7537 if (input.charCodeAt(peg$currPos) === 62) {
7538 s2 = peg$c285;
7539 peg$currPos++;
7540 } else {
7541 s2 = peg$FAILED;
7542 if (peg$silentFails === 0) { peg$fail(peg$c286); }
7543 }
7544 if (s2 !== peg$FAILED) {
7545 s3 = peg$currPos;
7546 peg$silentFails++;
7547 if (input.charCodeAt(peg$currPos) === 62) {
7548 s4 = peg$c285;
7549 peg$currPos++;
7550 } else {
7551 s4 = peg$FAILED;
7552 if (peg$silentFails === 0) { peg$fail(peg$c286); }
7553 }
7554 peg$silentFails--;
7555 if (s4 === peg$FAILED) {
7556 s3 = void 0;
7557 } else {
7558 peg$currPos = s3;
7559 s3 = peg$FAILED;
7560 }
7561 if (s3 !== peg$FAILED) {
7562 s2 = [s2, s3];
7563 s1 = s2;
7564 } else {
7565 peg$currPos = s1;
7566 s1 = peg$FAILED;
7567 }
7568 } else {
7569 peg$currPos = s1;
7570 s1 = peg$FAILED;
7571 }
7572 if (s1 !== peg$FAILED) {
7573 s0 = input.substring(s0, peg$currPos);
7574 } else {
7575 s0 = s1;
7576 }
7577 if (s0 === peg$FAILED) {
7578 s0 = peg$currPos;
7579 s1 = peg$parseInstanceofToken();
7580 if (s1 !== peg$FAILED) {
7581 s0 = input.substring(s0, peg$currPos);
7582 } else {
7583 s0 = s1;
7584 }
7585 if (s0 === peg$FAILED) {
7586 s0 = peg$currPos;
7587 s1 = peg$parseInToken();
7588 if (s1 !== peg$FAILED) {
7589 s0 = input.substring(s0, peg$currPos);
7590 } else {
7591 s0 = s1;
7592 }
7593 }
7594 }
7595 }
7596 }
7597 }
7598
7599 return s0;
7600 }
7601
7602 function peg$parseRelationalExpressionNoIn() {
7603 var s0, s1, s2, s3, s4, s5, s6, s7;
7604
7605 s0 = peg$currPos;
7606 s1 = peg$parseShiftExpression();
7607 if (s1 !== peg$FAILED) {
7608 s2 = [];
7609 s3 = peg$currPos;
7610 s4 = peg$parse__();
7611 if (s4 !== peg$FAILED) {
7612 s5 = peg$parseRelationalOperatorNoIn();
7613 if (s5 !== peg$FAILED) {
7614 s6 = peg$parse__();
7615 if (s6 !== peg$FAILED) {
7616 s7 = peg$parseShiftExpression();
7617 if (s7 !== peg$FAILED) {
7618 s4 = [s4, s5, s6, s7];
7619 s3 = s4;
7620 } else {
7621 peg$currPos = s3;
7622 s3 = peg$FAILED;
7623 }
7624 } else {
7625 peg$currPos = s3;
7626 s3 = peg$FAILED;
7627 }
7628 } else {
7629 peg$currPos = s3;
7630 s3 = peg$FAILED;
7631 }
7632 } else {
7633 peg$currPos = s3;
7634 s3 = peg$FAILED;
7635 }
7636 while (s3 !== peg$FAILED) {
7637 s2.push(s3);
7638 s3 = peg$currPos;
7639 s4 = peg$parse__();
7640 if (s4 !== peg$FAILED) {
7641 s5 = peg$parseRelationalOperatorNoIn();
7642 if (s5 !== peg$FAILED) {
7643 s6 = peg$parse__();
7644 if (s6 !== peg$FAILED) {
7645 s7 = peg$parseShiftExpression();
7646 if (s7 !== peg$FAILED) {
7647 s4 = [s4, s5, s6, s7];
7648 s3 = s4;
7649 } else {
7650 peg$currPos = s3;
7651 s3 = peg$FAILED;
7652 }
7653 } else {
7654 peg$currPos = s3;
7655 s3 = peg$FAILED;
7656 }
7657 } else {
7658 peg$currPos = s3;
7659 s3 = peg$FAILED;
7660 }
7661 } else {
7662 peg$currPos = s3;
7663 s3 = peg$FAILED;
7664 }
7665 }
7666 if (s2 !== peg$FAILED) {
7667 peg$savedPos = s0;
7668 s1 = peg$c264(s1, s2);
7669 s0 = s1;
7670 } else {
7671 peg$currPos = s0;
7672 s0 = peg$FAILED;
7673 }
7674 } else {
7675 peg$currPos = s0;
7676 s0 = peg$FAILED;
7677 }
7678
7679 return s0;
7680 }
7681
7682 function peg$parseRelationalOperatorNoIn() {
7683 var s0, s1, s2, s3, s4;
7684
7685 if (input.substr(peg$currPos, 2) === peg$c279) {
7686 s0 = peg$c279;
7687 peg$currPos += 2;
7688 } else {
7689 s0 = peg$FAILED;
7690 if (peg$silentFails === 0) { peg$fail(peg$c280); }
7691 }
7692 if (s0 === peg$FAILED) {
7693 if (input.substr(peg$currPos, 2) === peg$c281) {
7694 s0 = peg$c281;
7695 peg$currPos += 2;
7696 } else {
7697 s0 = peg$FAILED;
7698 if (peg$silentFails === 0) { peg$fail(peg$c282); }
7699 }
7700 if (s0 === peg$FAILED) {
7701 s0 = peg$currPos;
7702 s1 = peg$currPos;
7703 if (input.charCodeAt(peg$currPos) === 60) {
7704 s2 = peg$c283;
7705 peg$currPos++;
7706 } else {
7707 s2 = peg$FAILED;
7708 if (peg$silentFails === 0) { peg$fail(peg$c284); }
7709 }
7710 if (s2 !== peg$FAILED) {
7711 s3 = peg$currPos;
7712 peg$silentFails++;
7713 if (input.charCodeAt(peg$currPos) === 60) {
7714 s4 = peg$c283;
7715 peg$currPos++;
7716 } else {
7717 s4 = peg$FAILED;
7718 if (peg$silentFails === 0) { peg$fail(peg$c284); }
7719 }
7720 peg$silentFails--;
7721 if (s4 === peg$FAILED) {
7722 s3 = void 0;
7723 } else {
7724 peg$currPos = s3;
7725 s3 = peg$FAILED;
7726 }
7727 if (s3 !== peg$FAILED) {
7728 s2 = [s2, s3];
7729 s1 = s2;
7730 } else {
7731 peg$currPos = s1;
7732 s1 = peg$FAILED;
7733 }
7734 } else {
7735 peg$currPos = s1;
7736 s1 = peg$FAILED;
7737 }
7738 if (s1 !== peg$FAILED) {
7739 s0 = input.substring(s0, peg$currPos);
7740 } else {
7741 s0 = s1;
7742 }
7743 if (s0 === peg$FAILED) {
7744 s0 = peg$currPos;
7745 s1 = peg$currPos;
7746 if (input.charCodeAt(peg$currPos) === 62) {
7747 s2 = peg$c285;
7748 peg$currPos++;
7749 } else {
7750 s2 = peg$FAILED;
7751 if (peg$silentFails === 0) { peg$fail(peg$c286); }
7752 }
7753 if (s2 !== peg$FAILED) {
7754 s3 = peg$currPos;
7755 peg$silentFails++;
7756 if (input.charCodeAt(peg$currPos) === 62) {
7757 s4 = peg$c285;
7758 peg$currPos++;
7759 } else {
7760 s4 = peg$FAILED;
7761 if (peg$silentFails === 0) { peg$fail(peg$c286); }
7762 }
7763 peg$silentFails--;
7764 if (s4 === peg$FAILED) {
7765 s3 = void 0;
7766 } else {
7767 peg$currPos = s3;
7768 s3 = peg$FAILED;
7769 }
7770 if (s3 !== peg$FAILED) {
7771 s2 = [s2, s3];
7772 s1 = s2;
7773 } else {
7774 peg$currPos = s1;
7775 s1 = peg$FAILED;
7776 }
7777 } else {
7778 peg$currPos = s1;
7779 s1 = peg$FAILED;
7780 }
7781 if (s1 !== peg$FAILED) {
7782 s0 = input.substring(s0, peg$currPos);
7783 } else {
7784 s0 = s1;
7785 }
7786 if (s0 === peg$FAILED) {
7787 s0 = peg$currPos;
7788 s1 = peg$parseInstanceofToken();
7789 if (s1 !== peg$FAILED) {
7790 s0 = input.substring(s0, peg$currPos);
7791 } else {
7792 s0 = s1;
7793 }
7794 }
7795 }
7796 }
7797 }
7798
7799 return s0;
7800 }
7801
7802 function peg$parseEqualityExpression() {
7803 var s0, s1, s2, s3, s4, s5, s6, s7;
7804
7805 s0 = peg$currPos;
7806 s1 = peg$parseRelationalExpression();
7807 if (s1 !== peg$FAILED) {
7808 s2 = [];
7809 s3 = peg$currPos;
7810 s4 = peg$parse__();
7811 if (s4 !== peg$FAILED) {
7812 s5 = peg$parseEqualityOperator();
7813 if (s5 !== peg$FAILED) {
7814 s6 = peg$parse__();
7815 if (s6 !== peg$FAILED) {
7816 s7 = peg$parseRelationalExpression();
7817 if (s7 !== peg$FAILED) {
7818 s4 = [s4, s5, s6, s7];
7819 s3 = s4;
7820 } else {
7821 peg$currPos = s3;
7822 s3 = peg$FAILED;
7823 }
7824 } else {
7825 peg$currPos = s3;
7826 s3 = peg$FAILED;
7827 }
7828 } else {
7829 peg$currPos = s3;
7830 s3 = peg$FAILED;
7831 }
7832 } else {
7833 peg$currPos = s3;
7834 s3 = peg$FAILED;
7835 }
7836 while (s3 !== peg$FAILED) {
7837 s2.push(s3);
7838 s3 = peg$currPos;
7839 s4 = peg$parse__();
7840 if (s4 !== peg$FAILED) {
7841 s5 = peg$parseEqualityOperator();
7842 if (s5 !== peg$FAILED) {
7843 s6 = peg$parse__();
7844 if (s6 !== peg$FAILED) {
7845 s7 = peg$parseRelationalExpression();
7846 if (s7 !== peg$FAILED) {
7847 s4 = [s4, s5, s6, s7];
7848 s3 = s4;
7849 } else {
7850 peg$currPos = s3;
7851 s3 = peg$FAILED;
7852 }
7853 } else {
7854 peg$currPos = s3;
7855 s3 = peg$FAILED;
7856 }
7857 } else {
7858 peg$currPos = s3;
7859 s3 = peg$FAILED;
7860 }
7861 } else {
7862 peg$currPos = s3;
7863 s3 = peg$FAILED;
7864 }
7865 }
7866 if (s2 !== peg$FAILED) {
7867 peg$savedPos = s0;
7868 s1 = peg$c264(s1, s2);
7869 s0 = s1;
7870 } else {
7871 peg$currPos = s0;
7872 s0 = peg$FAILED;
7873 }
7874 } else {
7875 peg$currPos = s0;
7876 s0 = peg$FAILED;
7877 }
7878
7879 return s0;
7880 }
7881
7882 function peg$parseEqualityExpressionNoIn() {
7883 var s0, s1, s2, s3, s4, s5, s6, s7;
7884
7885 s0 = peg$currPos;
7886 s1 = peg$parseRelationalExpressionNoIn();
7887 if (s1 !== peg$FAILED) {
7888 s2 = [];
7889 s3 = peg$currPos;
7890 s4 = peg$parse__();
7891 if (s4 !== peg$FAILED) {
7892 s5 = peg$parseEqualityOperator();
7893 if (s5 !== peg$FAILED) {
7894 s6 = peg$parse__();
7895 if (s6 !== peg$FAILED) {
7896 s7 = peg$parseRelationalExpressionNoIn();
7897 if (s7 !== peg$FAILED) {
7898 s4 = [s4, s5, s6, s7];
7899 s3 = s4;
7900 } else {
7901 peg$currPos = s3;
7902 s3 = peg$FAILED;
7903 }
7904 } else {
7905 peg$currPos = s3;
7906 s3 = peg$FAILED;
7907 }
7908 } else {
7909 peg$currPos = s3;
7910 s3 = peg$FAILED;
7911 }
7912 } else {
7913 peg$currPos = s3;
7914 s3 = peg$FAILED;
7915 }
7916 while (s3 !== peg$FAILED) {
7917 s2.push(s3);
7918 s3 = peg$currPos;
7919 s4 = peg$parse__();
7920 if (s4 !== peg$FAILED) {
7921 s5 = peg$parseEqualityOperator();
7922 if (s5 !== peg$FAILED) {
7923 s6 = peg$parse__();
7924 if (s6 !== peg$FAILED) {
7925 s7 = peg$parseRelationalExpressionNoIn();
7926 if (s7 !== peg$FAILED) {
7927 s4 = [s4, s5, s6, s7];
7928 s3 = s4;
7929 } else {
7930 peg$currPos = s3;
7931 s3 = peg$FAILED;
7932 }
7933 } else {
7934 peg$currPos = s3;
7935 s3 = peg$FAILED;
7936 }
7937 } else {
7938 peg$currPos = s3;
7939 s3 = peg$FAILED;
7940 }
7941 } else {
7942 peg$currPos = s3;
7943 s3 = peg$FAILED;
7944 }
7945 }
7946 if (s2 !== peg$FAILED) {
7947 peg$savedPos = s0;
7948 s1 = peg$c264(s1, s2);
7949 s0 = s1;
7950 } else {
7951 peg$currPos = s0;
7952 s0 = peg$FAILED;
7953 }
7954 } else {
7955 peg$currPos = s0;
7956 s0 = peg$FAILED;
7957 }
7958
7959 return s0;
7960 }
7961
7962 function peg$parseEqualityOperator() {
7963 var s0;
7964
7965 if (input.substr(peg$currPos, 3) === peg$c287) {
7966 s0 = peg$c287;
7967 peg$currPos += 3;
7968 } else {
7969 s0 = peg$FAILED;
7970 if (peg$silentFails === 0) { peg$fail(peg$c288); }
7971 }
7972 if (s0 === peg$FAILED) {
7973 if (input.substr(peg$currPos, 3) === peg$c289) {
7974 s0 = peg$c289;
7975 peg$currPos += 3;
7976 } else {
7977 s0 = peg$FAILED;
7978 if (peg$silentFails === 0) { peg$fail(peg$c290); }
7979 }
7980 if (s0 === peg$FAILED) {
7981 if (input.substr(peg$currPos, 2) === peg$c291) {
7982 s0 = peg$c291;
7983 peg$currPos += 2;
7984 } else {
7985 s0 = peg$FAILED;
7986 if (peg$silentFails === 0) { peg$fail(peg$c292); }
7987 }
7988 if (s0 === peg$FAILED) {
7989 if (input.substr(peg$currPos, 2) === peg$c293) {
7990 s0 = peg$c293;
7991 peg$currPos += 2;
7992 } else {
7993 s0 = peg$FAILED;
7994 if (peg$silentFails === 0) { peg$fail(peg$c294); }
7995 }
7996 }
7997 }
7998 }
7999
8000 return s0;
8001 }
8002
8003 function peg$parseBitwiseANDExpression() {
8004 var s0, s1, s2, s3, s4, s5, s6, s7;
8005
8006 s0 = peg$currPos;
8007 s1 = peg$parseEqualityExpression();
8008 if (s1 !== peg$FAILED) {
8009 s2 = [];
8010 s3 = peg$currPos;
8011 s4 = peg$parse__();
8012 if (s4 !== peg$FAILED) {
8013 s5 = peg$parseBitwiseANDOperator();
8014 if (s5 !== peg$FAILED) {
8015 s6 = peg$parse__();
8016 if (s6 !== peg$FAILED) {
8017 s7 = peg$parseEqualityExpression();
8018 if (s7 !== peg$FAILED) {
8019 s4 = [s4, s5, s6, s7];
8020 s3 = s4;
8021 } else {
8022 peg$currPos = s3;
8023 s3 = peg$FAILED;
8024 }
8025 } else {
8026 peg$currPos = s3;
8027 s3 = peg$FAILED;
8028 }
8029 } else {
8030 peg$currPos = s3;
8031 s3 = peg$FAILED;
8032 }
8033 } else {
8034 peg$currPos = s3;
8035 s3 = peg$FAILED;
8036 }
8037 while (s3 !== peg$FAILED) {
8038 s2.push(s3);
8039 s3 = peg$currPos;
8040 s4 = peg$parse__();
8041 if (s4 !== peg$FAILED) {
8042 s5 = peg$parseBitwiseANDOperator();
8043 if (s5 !== peg$FAILED) {
8044 s6 = peg$parse__();
8045 if (s6 !== peg$FAILED) {
8046 s7 = peg$parseEqualityExpression();
8047 if (s7 !== peg$FAILED) {
8048 s4 = [s4, s5, s6, s7];
8049 s3 = s4;
8050 } else {
8051 peg$currPos = s3;
8052 s3 = peg$FAILED;
8053 }
8054 } else {
8055 peg$currPos = s3;
8056 s3 = peg$FAILED;
8057 }
8058 } else {
8059 peg$currPos = s3;
8060 s3 = peg$FAILED;
8061 }
8062 } else {
8063 peg$currPos = s3;
8064 s3 = peg$FAILED;
8065 }
8066 }
8067 if (s2 !== peg$FAILED) {
8068 peg$savedPos = s0;
8069 s1 = peg$c264(s1, s2);
8070 s0 = s1;
8071 } else {
8072 peg$currPos = s0;
8073 s0 = peg$FAILED;
8074 }
8075 } else {
8076 peg$currPos = s0;
8077 s0 = peg$FAILED;
8078 }
8079
8080 return s0;
8081 }
8082
8083 function peg$parseBitwiseANDExpressionNoIn() {
8084 var s0, s1, s2, s3, s4, s5, s6, s7;
8085
8086 s0 = peg$currPos;
8087 s1 = peg$parseEqualityExpressionNoIn();
8088 if (s1 !== peg$FAILED) {
8089 s2 = [];
8090 s3 = peg$currPos;
8091 s4 = peg$parse__();
8092 if (s4 !== peg$FAILED) {
8093 s5 = peg$parseBitwiseANDOperator();
8094 if (s5 !== peg$FAILED) {
8095 s6 = peg$parse__();
8096 if (s6 !== peg$FAILED) {
8097 s7 = peg$parseEqualityExpressionNoIn();
8098 if (s7 !== peg$FAILED) {
8099 s4 = [s4, s5, s6, s7];
8100 s3 = s4;
8101 } else {
8102 peg$currPos = s3;
8103 s3 = peg$FAILED;
8104 }
8105 } else {
8106 peg$currPos = s3;
8107 s3 = peg$FAILED;
8108 }
8109 } else {
8110 peg$currPos = s3;
8111 s3 = peg$FAILED;
8112 }
8113 } else {
8114 peg$currPos = s3;
8115 s3 = peg$FAILED;
8116 }
8117 while (s3 !== peg$FAILED) {
8118 s2.push(s3);
8119 s3 = peg$currPos;
8120 s4 = peg$parse__();
8121 if (s4 !== peg$FAILED) {
8122 s5 = peg$parseBitwiseANDOperator();
8123 if (s5 !== peg$FAILED) {
8124 s6 = peg$parse__();
8125 if (s6 !== peg$FAILED) {
8126 s7 = peg$parseEqualityExpressionNoIn();
8127 if (s7 !== peg$FAILED) {
8128 s4 = [s4, s5, s6, s7];
8129 s3 = s4;
8130 } else {
8131 peg$currPos = s3;
8132 s3 = peg$FAILED;
8133 }
8134 } else {
8135 peg$currPos = s3;
8136 s3 = peg$FAILED;
8137 }
8138 } else {
8139 peg$currPos = s3;
8140 s3 = peg$FAILED;
8141 }
8142 } else {
8143 peg$currPos = s3;
8144 s3 = peg$FAILED;
8145 }
8146 }
8147 if (s2 !== peg$FAILED) {
8148 peg$savedPos = s0;
8149 s1 = peg$c264(s1, s2);
8150 s0 = s1;
8151 } else {
8152 peg$currPos = s0;
8153 s0 = peg$FAILED;
8154 }
8155 } else {
8156 peg$currPos = s0;
8157 s0 = peg$FAILED;
8158 }
8159
8160 return s0;
8161 }
8162
8163 function peg$parseBitwiseANDOperator() {
8164 var s0, s1, s2, s3, s4;
8165
8166 s0 = peg$currPos;
8167 s1 = peg$currPos;
8168 if (input.charCodeAt(peg$currPos) === 38) {
8169 s2 = peg$c295;
8170 peg$currPos++;
8171 } else {
8172 s2 = peg$FAILED;
8173 if (peg$silentFails === 0) { peg$fail(peg$c296); }
8174 }
8175 if (s2 !== peg$FAILED) {
8176 s3 = peg$currPos;
8177 peg$silentFails++;
8178 if (peg$c297.test(input.charAt(peg$currPos))) {
8179 s4 = input.charAt(peg$currPos);
8180 peg$currPos++;
8181 } else {
8182 s4 = peg$FAILED;
8183 if (peg$silentFails === 0) { peg$fail(peg$c298); }
8184 }
8185 peg$silentFails--;
8186 if (s4 === peg$FAILED) {
8187 s3 = void 0;
8188 } else {
8189 peg$currPos = s3;
8190 s3 = peg$FAILED;
8191 }
8192 if (s3 !== peg$FAILED) {
8193 s2 = [s2, s3];
8194 s1 = s2;
8195 } else {
8196 peg$currPos = s1;
8197 s1 = peg$FAILED;
8198 }
8199 } else {
8200 peg$currPos = s1;
8201 s1 = peg$FAILED;
8202 }
8203 if (s1 !== peg$FAILED) {
8204 s0 = input.substring(s0, peg$currPos);
8205 } else {
8206 s0 = s1;
8207 }
8208
8209 return s0;
8210 }
8211
8212 function peg$parseBitwiseXORExpression() {
8213 var s0, s1, s2, s3, s4, s5, s6, s7;
8214
8215 s0 = peg$currPos;
8216 s1 = peg$parseBitwiseANDExpression();
8217 if (s1 !== peg$FAILED) {
8218 s2 = [];
8219 s3 = peg$currPos;
8220 s4 = peg$parse__();
8221 if (s4 !== peg$FAILED) {
8222 s5 = peg$parseBitwiseXOROperator();
8223 if (s5 !== peg$FAILED) {
8224 s6 = peg$parse__();
8225 if (s6 !== peg$FAILED) {
8226 s7 = peg$parseBitwiseANDExpression();
8227 if (s7 !== peg$FAILED) {
8228 s4 = [s4, s5, s6, s7];
8229 s3 = s4;
8230 } else {
8231 peg$currPos = s3;
8232 s3 = peg$FAILED;
8233 }
8234 } else {
8235 peg$currPos = s3;
8236 s3 = peg$FAILED;
8237 }
8238 } else {
8239 peg$currPos = s3;
8240 s3 = peg$FAILED;
8241 }
8242 } else {
8243 peg$currPos = s3;
8244 s3 = peg$FAILED;
8245 }
8246 while (s3 !== peg$FAILED) {
8247 s2.push(s3);
8248 s3 = peg$currPos;
8249 s4 = peg$parse__();
8250 if (s4 !== peg$FAILED) {
8251 s5 = peg$parseBitwiseXOROperator();
8252 if (s5 !== peg$FAILED) {
8253 s6 = peg$parse__();
8254 if (s6 !== peg$FAILED) {
8255 s7 = peg$parseBitwiseANDExpression();
8256 if (s7 !== peg$FAILED) {
8257 s4 = [s4, s5, s6, s7];
8258 s3 = s4;
8259 } else {
8260 peg$currPos = s3;
8261 s3 = peg$FAILED;
8262 }
8263 } else {
8264 peg$currPos = s3;
8265 s3 = peg$FAILED;
8266 }
8267 } else {
8268 peg$currPos = s3;
8269 s3 = peg$FAILED;
8270 }
8271 } else {
8272 peg$currPos = s3;
8273 s3 = peg$FAILED;
8274 }
8275 }
8276 if (s2 !== peg$FAILED) {
8277 peg$savedPos = s0;
8278 s1 = peg$c264(s1, s2);
8279 s0 = s1;
8280 } else {
8281 peg$currPos = s0;
8282 s0 = peg$FAILED;
8283 }
8284 } else {
8285 peg$currPos = s0;
8286 s0 = peg$FAILED;
8287 }
8288
8289 return s0;
8290 }
8291
8292 function peg$parseBitwiseXORExpressionNoIn() {
8293 var s0, s1, s2, s3, s4, s5, s6, s7;
8294
8295 s0 = peg$currPos;
8296 s1 = peg$parseBitwiseANDExpressionNoIn();
8297 if (s1 !== peg$FAILED) {
8298 s2 = [];
8299 s3 = peg$currPos;
8300 s4 = peg$parse__();
8301 if (s4 !== peg$FAILED) {
8302 s5 = peg$parseBitwiseXOROperator();
8303 if (s5 !== peg$FAILED) {
8304 s6 = peg$parse__();
8305 if (s6 !== peg$FAILED) {
8306 s7 = peg$parseBitwiseANDExpressionNoIn();
8307 if (s7 !== peg$FAILED) {
8308 s4 = [s4, s5, s6, s7];
8309 s3 = s4;
8310 } else {
8311 peg$currPos = s3;
8312 s3 = peg$FAILED;
8313 }
8314 } else {
8315 peg$currPos = s3;
8316 s3 = peg$FAILED;
8317 }
8318 } else {
8319 peg$currPos = s3;
8320 s3 = peg$FAILED;
8321 }
8322 } else {
8323 peg$currPos = s3;
8324 s3 = peg$FAILED;
8325 }
8326 while (s3 !== peg$FAILED) {
8327 s2.push(s3);
8328 s3 = peg$currPos;
8329 s4 = peg$parse__();
8330 if (s4 !== peg$FAILED) {
8331 s5 = peg$parseBitwiseXOROperator();
8332 if (s5 !== peg$FAILED) {
8333 s6 = peg$parse__();
8334 if (s6 !== peg$FAILED) {
8335 s7 = peg$parseBitwiseANDExpressionNoIn();
8336 if (s7 !== peg$FAILED) {
8337 s4 = [s4, s5, s6, s7];
8338 s3 = s4;
8339 } else {
8340 peg$currPos = s3;
8341 s3 = peg$FAILED;
8342 }
8343 } else {
8344 peg$currPos = s3;
8345 s3 = peg$FAILED;
8346 }
8347 } else {
8348 peg$currPos = s3;
8349 s3 = peg$FAILED;
8350 }
8351 } else {
8352 peg$currPos = s3;
8353 s3 = peg$FAILED;
8354 }
8355 }
8356 if (s2 !== peg$FAILED) {
8357 peg$savedPos = s0;
8358 s1 = peg$c264(s1, s2);
8359 s0 = s1;
8360 } else {
8361 peg$currPos = s0;
8362 s0 = peg$FAILED;
8363 }
8364 } else {
8365 peg$currPos = s0;
8366 s0 = peg$FAILED;
8367 }
8368
8369 return s0;
8370 }
8371
8372 function peg$parseBitwiseXOROperator() {
8373 var s0, s1, s2, s3, s4;
8374
8375 s0 = peg$currPos;
8376 s1 = peg$currPos;
8377 if (input.charCodeAt(peg$currPos) === 94) {
8378 s2 = peg$c299;
8379 peg$currPos++;
8380 } else {
8381 s2 = peg$FAILED;
8382 if (peg$silentFails === 0) { peg$fail(peg$c300); }
8383 }
8384 if (s2 !== peg$FAILED) {
8385 s3 = peg$currPos;
8386 peg$silentFails++;
8387 if (input.charCodeAt(peg$currPos) === 61) {
8388 s4 = peg$c256;
8389 peg$currPos++;
8390 } else {
8391 s4 = peg$FAILED;
8392 if (peg$silentFails === 0) { peg$fail(peg$c257); }
8393 }
8394 peg$silentFails--;
8395 if (s4 === peg$FAILED) {
8396 s3 = void 0;
8397 } else {
8398 peg$currPos = s3;
8399 s3 = peg$FAILED;
8400 }
8401 if (s3 !== peg$FAILED) {
8402 s2 = [s2, s3];
8403 s1 = s2;
8404 } else {
8405 peg$currPos = s1;
8406 s1 = peg$FAILED;
8407 }
8408 } else {
8409 peg$currPos = s1;
8410 s1 = peg$FAILED;
8411 }
8412 if (s1 !== peg$FAILED) {
8413 s0 = input.substring(s0, peg$currPos);
8414 } else {
8415 s0 = s1;
8416 }
8417
8418 return s0;
8419 }
8420
8421 function peg$parseBitwiseORExpression() {
8422 var s0, s1, s2, s3, s4, s5, s6, s7;
8423
8424 s0 = peg$currPos;
8425 s1 = peg$parseBitwiseXORExpression();
8426 if (s1 !== peg$FAILED) {
8427 s2 = [];
8428 s3 = peg$currPos;
8429 s4 = peg$parse__();
8430 if (s4 !== peg$FAILED) {
8431 s5 = peg$parseBitwiseOROperator();
8432 if (s5 !== peg$FAILED) {
8433 s6 = peg$parse__();
8434 if (s6 !== peg$FAILED) {
8435 s7 = peg$parseBitwiseXORExpression();
8436 if (s7 !== peg$FAILED) {
8437 s4 = [s4, s5, s6, s7];
8438 s3 = s4;
8439 } else {
8440 peg$currPos = s3;
8441 s3 = peg$FAILED;
8442 }
8443 } else {
8444 peg$currPos = s3;
8445 s3 = peg$FAILED;
8446 }
8447 } else {
8448 peg$currPos = s3;
8449 s3 = peg$FAILED;
8450 }
8451 } else {
8452 peg$currPos = s3;
8453 s3 = peg$FAILED;
8454 }
8455 while (s3 !== peg$FAILED) {
8456 s2.push(s3);
8457 s3 = peg$currPos;
8458 s4 = peg$parse__();
8459 if (s4 !== peg$FAILED) {
8460 s5 = peg$parseBitwiseOROperator();
8461 if (s5 !== peg$FAILED) {
8462 s6 = peg$parse__();
8463 if (s6 !== peg$FAILED) {
8464 s7 = peg$parseBitwiseXORExpression();
8465 if (s7 !== peg$FAILED) {
8466 s4 = [s4, s5, s6, s7];
8467 s3 = s4;
8468 } else {
8469 peg$currPos = s3;
8470 s3 = peg$FAILED;
8471 }
8472 } else {
8473 peg$currPos = s3;
8474 s3 = peg$FAILED;
8475 }
8476 } else {
8477 peg$currPos = s3;
8478 s3 = peg$FAILED;
8479 }
8480 } else {
8481 peg$currPos = s3;
8482 s3 = peg$FAILED;
8483 }
8484 }
8485 if (s2 !== peg$FAILED) {
8486 peg$savedPos = s0;
8487 s1 = peg$c264(s1, s2);
8488 s0 = s1;
8489 } else {
8490 peg$currPos = s0;
8491 s0 = peg$FAILED;
8492 }
8493 } else {
8494 peg$currPos = s0;
8495 s0 = peg$FAILED;
8496 }
8497
8498 return s0;
8499 }
8500
8501 function peg$parseBitwiseORExpressionNoIn() {
8502 var s0, s1, s2, s3, s4, s5, s6, s7;
8503
8504 s0 = peg$currPos;
8505 s1 = peg$parseBitwiseXORExpressionNoIn();
8506 if (s1 !== peg$FAILED) {
8507 s2 = [];
8508 s3 = peg$currPos;
8509 s4 = peg$parse__();
8510 if (s4 !== peg$FAILED) {
8511 s5 = peg$parseBitwiseOROperator();
8512 if (s5 !== peg$FAILED) {
8513 s6 = peg$parse__();
8514 if (s6 !== peg$FAILED) {
8515 s7 = peg$parseBitwiseXORExpressionNoIn();
8516 if (s7 !== peg$FAILED) {
8517 s4 = [s4, s5, s6, s7];
8518 s3 = s4;
8519 } else {
8520 peg$currPos = s3;
8521 s3 = peg$FAILED;
8522 }
8523 } else {
8524 peg$currPos = s3;
8525 s3 = peg$FAILED;
8526 }
8527 } else {
8528 peg$currPos = s3;
8529 s3 = peg$FAILED;
8530 }
8531 } else {
8532 peg$currPos = s3;
8533 s3 = peg$FAILED;
8534 }
8535 while (s3 !== peg$FAILED) {
8536 s2.push(s3);
8537 s3 = peg$currPos;
8538 s4 = peg$parse__();
8539 if (s4 !== peg$FAILED) {
8540 s5 = peg$parseBitwiseOROperator();
8541 if (s5 !== peg$FAILED) {
8542 s6 = peg$parse__();
8543 if (s6 !== peg$FAILED) {
8544 s7 = peg$parseBitwiseXORExpressionNoIn();
8545 if (s7 !== peg$FAILED) {
8546 s4 = [s4, s5, s6, s7];
8547 s3 = s4;
8548 } else {
8549 peg$currPos = s3;
8550 s3 = peg$FAILED;
8551 }
8552 } else {
8553 peg$currPos = s3;
8554 s3 = peg$FAILED;
8555 }
8556 } else {
8557 peg$currPos = s3;
8558 s3 = peg$FAILED;
8559 }
8560 } else {
8561 peg$currPos = s3;
8562 s3 = peg$FAILED;
8563 }
8564 }
8565 if (s2 !== peg$FAILED) {
8566 peg$savedPos = s0;
8567 s1 = peg$c264(s1, s2);
8568 s0 = s1;
8569 } else {
8570 peg$currPos = s0;
8571 s0 = peg$FAILED;
8572 }
8573 } else {
8574 peg$currPos = s0;
8575 s0 = peg$FAILED;
8576 }
8577
8578 return s0;
8579 }
8580
8581 function peg$parseBitwiseOROperator() {
8582 var s0, s1, s2, s3, s4;
8583
8584 s0 = peg$currPos;
8585 s1 = peg$currPos;
8586 if (input.charCodeAt(peg$currPos) === 124) {
8587 s2 = peg$c301;
8588 peg$currPos++;
8589 } else {
8590 s2 = peg$FAILED;
8591 if (peg$silentFails === 0) { peg$fail(peg$c302); }
8592 }
8593 if (s2 !== peg$FAILED) {
8594 s3 = peg$currPos;
8595 peg$silentFails++;
8596 if (peg$c303.test(input.charAt(peg$currPos))) {
8597 s4 = input.charAt(peg$currPos);
8598 peg$currPos++;
8599 } else {
8600 s4 = peg$FAILED;
8601 if (peg$silentFails === 0) { peg$fail(peg$c304); }
8602 }
8603 peg$silentFails--;
8604 if (s4 === peg$FAILED) {
8605 s3 = void 0;
8606 } else {
8607 peg$currPos = s3;
8608 s3 = peg$FAILED;
8609 }
8610 if (s3 !== peg$FAILED) {
8611 s2 = [s2, s3];
8612 s1 = s2;
8613 } else {
8614 peg$currPos = s1;
8615 s1 = peg$FAILED;
8616 }
8617 } else {
8618 peg$currPos = s1;
8619 s1 = peg$FAILED;
8620 }
8621 if (s1 !== peg$FAILED) {
8622 s0 = input.substring(s0, peg$currPos);
8623 } else {
8624 s0 = s1;
8625 }
8626
8627 return s0;
8628 }
8629
8630 function peg$parseLogicalANDExpression() {
8631 var s0, s1, s2, s3, s4, s5, s6, s7;
8632
8633 s0 = peg$currPos;
8634 s1 = peg$parseBitwiseORExpression();
8635 if (s1 !== peg$FAILED) {
8636 s2 = [];
8637 s3 = peg$currPos;
8638 s4 = peg$parse__();
8639 if (s4 !== peg$FAILED) {
8640 s5 = peg$parseLogicalANDOperator();
8641 if (s5 !== peg$FAILED) {
8642 s6 = peg$parse__();
8643 if (s6 !== peg$FAILED) {
8644 s7 = peg$parseBitwiseORExpression();
8645 if (s7 !== peg$FAILED) {
8646 s4 = [s4, s5, s6, s7];
8647 s3 = s4;
8648 } else {
8649 peg$currPos = s3;
8650 s3 = peg$FAILED;
8651 }
8652 } else {
8653 peg$currPos = s3;
8654 s3 = peg$FAILED;
8655 }
8656 } else {
8657 peg$currPos = s3;
8658 s3 = peg$FAILED;
8659 }
8660 } else {
8661 peg$currPos = s3;
8662 s3 = peg$FAILED;
8663 }
8664 while (s3 !== peg$FAILED) {
8665 s2.push(s3);
8666 s3 = peg$currPos;
8667 s4 = peg$parse__();
8668 if (s4 !== peg$FAILED) {
8669 s5 = peg$parseLogicalANDOperator();
8670 if (s5 !== peg$FAILED) {
8671 s6 = peg$parse__();
8672 if (s6 !== peg$FAILED) {
8673 s7 = peg$parseBitwiseORExpression();
8674 if (s7 !== peg$FAILED) {
8675 s4 = [s4, s5, s6, s7];
8676 s3 = s4;
8677 } else {
8678 peg$currPos = s3;
8679 s3 = peg$FAILED;
8680 }
8681 } else {
8682 peg$currPos = s3;
8683 s3 = peg$FAILED;
8684 }
8685 } else {
8686 peg$currPos = s3;
8687 s3 = peg$FAILED;
8688 }
8689 } else {
8690 peg$currPos = s3;
8691 s3 = peg$FAILED;
8692 }
8693 }
8694 if (s2 !== peg$FAILED) {
8695 peg$savedPos = s0;
8696 s1 = peg$c264(s1, s2);
8697 s0 = s1;
8698 } else {
8699 peg$currPos = s0;
8700 s0 = peg$FAILED;
8701 }
8702 } else {
8703 peg$currPos = s0;
8704 s0 = peg$FAILED;
8705 }
8706
8707 return s0;
8708 }
8709
8710 function peg$parseLogicalANDExpressionNoIn() {
8711 var s0, s1, s2, s3, s4, s5, s6, s7;
8712
8713 s0 = peg$currPos;
8714 s1 = peg$parseBitwiseORExpressionNoIn();
8715 if (s1 !== peg$FAILED) {
8716 s2 = [];
8717 s3 = peg$currPos;
8718 s4 = peg$parse__();
8719 if (s4 !== peg$FAILED) {
8720 s5 = peg$parseLogicalANDOperator();
8721 if (s5 !== peg$FAILED) {
8722 s6 = peg$parse__();
8723 if (s6 !== peg$FAILED) {
8724 s7 = peg$parseBitwiseORExpressionNoIn();
8725 if (s7 !== peg$FAILED) {
8726 s4 = [s4, s5, s6, s7];
8727 s3 = s4;
8728 } else {
8729 peg$currPos = s3;
8730 s3 = peg$FAILED;
8731 }
8732 } else {
8733 peg$currPos = s3;
8734 s3 = peg$FAILED;
8735 }
8736 } else {
8737 peg$currPos = s3;
8738 s3 = peg$FAILED;
8739 }
8740 } else {
8741 peg$currPos = s3;
8742 s3 = peg$FAILED;
8743 }
8744 while (s3 !== peg$FAILED) {
8745 s2.push(s3);
8746 s3 = peg$currPos;
8747 s4 = peg$parse__();
8748 if (s4 !== peg$FAILED) {
8749 s5 = peg$parseLogicalANDOperator();
8750 if (s5 !== peg$FAILED) {
8751 s6 = peg$parse__();
8752 if (s6 !== peg$FAILED) {
8753 s7 = peg$parseBitwiseORExpressionNoIn();
8754 if (s7 !== peg$FAILED) {
8755 s4 = [s4, s5, s6, s7];
8756 s3 = s4;
8757 } else {
8758 peg$currPos = s3;
8759 s3 = peg$FAILED;
8760 }
8761 } else {
8762 peg$currPos = s3;
8763 s3 = peg$FAILED;
8764 }
8765 } else {
8766 peg$currPos = s3;
8767 s3 = peg$FAILED;
8768 }
8769 } else {
8770 peg$currPos = s3;
8771 s3 = peg$FAILED;
8772 }
8773 }
8774 if (s2 !== peg$FAILED) {
8775 peg$savedPos = s0;
8776 s1 = peg$c264(s1, s2);
8777 s0 = s1;
8778 } else {
8779 peg$currPos = s0;
8780 s0 = peg$FAILED;
8781 }
8782 } else {
8783 peg$currPos = s0;
8784 s0 = peg$FAILED;
8785 }
8786
8787 return s0;
8788 }
8789
8790 function peg$parseLogicalANDOperator() {
8791 var s0;
8792
8793 if (input.substr(peg$currPos, 2) === peg$c305) {
8794 s0 = peg$c305;
8795 peg$currPos += 2;
8796 } else {
8797 s0 = peg$FAILED;
8798 if (peg$silentFails === 0) { peg$fail(peg$c306); }
8799 }
8800
8801 return s0;
8802 }
8803
8804 function peg$parseLogicalORExpression() {
8805 var s0, s1, s2, s3, s4, s5, s6, s7;
8806
8807 s0 = peg$currPos;
8808 s1 = peg$parseLogicalANDExpression();
8809 if (s1 !== peg$FAILED) {
8810 s2 = [];
8811 s3 = peg$currPos;
8812 s4 = peg$parse__();
8813 if (s4 !== peg$FAILED) {
8814 s5 = peg$parseLogicalOROperator();
8815 if (s5 !== peg$FAILED) {
8816 s6 = peg$parse__();
8817 if (s6 !== peg$FAILED) {
8818 s7 = peg$parseLogicalANDExpression();
8819 if (s7 !== peg$FAILED) {
8820 s4 = [s4, s5, s6, s7];
8821 s3 = s4;
8822 } else {
8823 peg$currPos = s3;
8824 s3 = peg$FAILED;
8825 }
8826 } else {
8827 peg$currPos = s3;
8828 s3 = peg$FAILED;
8829 }
8830 } else {
8831 peg$currPos = s3;
8832 s3 = peg$FAILED;
8833 }
8834 } else {
8835 peg$currPos = s3;
8836 s3 = peg$FAILED;
8837 }
8838 while (s3 !== peg$FAILED) {
8839 s2.push(s3);
8840 s3 = peg$currPos;
8841 s4 = peg$parse__();
8842 if (s4 !== peg$FAILED) {
8843 s5 = peg$parseLogicalOROperator();
8844 if (s5 !== peg$FAILED) {
8845 s6 = peg$parse__();
8846 if (s6 !== peg$FAILED) {
8847 s7 = peg$parseLogicalANDExpression();
8848 if (s7 !== peg$FAILED) {
8849 s4 = [s4, s5, s6, s7];
8850 s3 = s4;
8851 } else {
8852 peg$currPos = s3;
8853 s3 = peg$FAILED;
8854 }
8855 } else {
8856 peg$currPos = s3;
8857 s3 = peg$FAILED;
8858 }
8859 } else {
8860 peg$currPos = s3;
8861 s3 = peg$FAILED;
8862 }
8863 } else {
8864 peg$currPos = s3;
8865 s3 = peg$FAILED;
8866 }
8867 }
8868 if (s2 !== peg$FAILED) {
8869 peg$savedPos = s0;
8870 s1 = peg$c264(s1, s2);
8871 s0 = s1;
8872 } else {
8873 peg$currPos = s0;
8874 s0 = peg$FAILED;
8875 }
8876 } else {
8877 peg$currPos = s0;
8878 s0 = peg$FAILED;
8879 }
8880
8881 return s0;
8882 }
8883
8884 function peg$parseLogicalORExpressionNoIn() {
8885 var s0, s1, s2, s3, s4, s5, s6, s7;
8886
8887 s0 = peg$currPos;
8888 s1 = peg$parseLogicalANDExpressionNoIn();
8889 if (s1 !== peg$FAILED) {
8890 s2 = [];
8891 s3 = peg$currPos;
8892 s4 = peg$parse__();
8893 if (s4 !== peg$FAILED) {
8894 s5 = peg$parseLogicalOROperator();
8895 if (s5 !== peg$FAILED) {
8896 s6 = peg$parse__();
8897 if (s6 !== peg$FAILED) {
8898 s7 = peg$parseLogicalANDExpressionNoIn();
8899 if (s7 !== peg$FAILED) {
8900 s4 = [s4, s5, s6, s7];
8901 s3 = s4;
8902 } else {
8903 peg$currPos = s3;
8904 s3 = peg$FAILED;
8905 }
8906 } else {
8907 peg$currPos = s3;
8908 s3 = peg$FAILED;
8909 }
8910 } else {
8911 peg$currPos = s3;
8912 s3 = peg$FAILED;
8913 }
8914 } else {
8915 peg$currPos = s3;
8916 s3 = peg$FAILED;
8917 }
8918 while (s3 !== peg$FAILED) {
8919 s2.push(s3);
8920 s3 = peg$currPos;
8921 s4 = peg$parse__();
8922 if (s4 !== peg$FAILED) {
8923 s5 = peg$parseLogicalOROperator();
8924 if (s5 !== peg$FAILED) {
8925 s6 = peg$parse__();
8926 if (s6 !== peg$FAILED) {
8927 s7 = peg$parseLogicalANDExpressionNoIn();
8928 if (s7 !== peg$FAILED) {
8929 s4 = [s4, s5, s6, s7];
8930 s3 = s4;
8931 } else {
8932 peg$currPos = s3;
8933 s3 = peg$FAILED;
8934 }
8935 } else {
8936 peg$currPos = s3;
8937 s3 = peg$FAILED;
8938 }
8939 } else {
8940 peg$currPos = s3;
8941 s3 = peg$FAILED;
8942 }
8943 } else {
8944 peg$currPos = s3;
8945 s3 = peg$FAILED;
8946 }
8947 }
8948 if (s2 !== peg$FAILED) {
8949 peg$savedPos = s0;
8950 s1 = peg$c264(s1, s2);
8951 s0 = s1;
8952 } else {
8953 peg$currPos = s0;
8954 s0 = peg$FAILED;
8955 }
8956 } else {
8957 peg$currPos = s0;
8958 s0 = peg$FAILED;
8959 }
8960
8961 return s0;
8962 }
8963
8964 function peg$parseLogicalOROperator() {
8965 var s0;
8966
8967 if (input.substr(peg$currPos, 2) === peg$c307) {
8968 s0 = peg$c307;
8969 peg$currPos += 2;
8970 } else {
8971 s0 = peg$FAILED;
8972 if (peg$silentFails === 0) { peg$fail(peg$c308); }
8973 }
8974
8975 return s0;
8976 }
8977
8978 function peg$parseConditionalExpression() {
8979 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
8980
8981 s0 = peg$currPos;
8982 s1 = peg$parseLogicalORExpression();
8983 if (s1 !== peg$FAILED) {
8984 s2 = peg$parse__();
8985 if (s2 !== peg$FAILED) {
8986 if (input.charCodeAt(peg$currPos) === 63) {
8987 s3 = peg$c309;
8988 peg$currPos++;
8989 } else {
8990 s3 = peg$FAILED;
8991 if (peg$silentFails === 0) { peg$fail(peg$c310); }
8992 }
8993 if (s3 !== peg$FAILED) {
8994 s4 = peg$parse__();
8995 if (s4 !== peg$FAILED) {
8996 s5 = peg$parseAssignmentExpression();
8997 if (s5 !== peg$FAILED) {
8998 s6 = peg$parse__();
8999 if (s6 !== peg$FAILED) {
9000 if (input.charCodeAt(peg$currPos) === 58) {
9001 s7 = peg$c311;
9002 peg$currPos++;
9003 } else {
9004 s7 = peg$FAILED;
9005 if (peg$silentFails === 0) { peg$fail(peg$c312); }
9006 }
9007 if (s7 !== peg$FAILED) {
9008 s8 = peg$parse__();
9009 if (s8 !== peg$FAILED) {
9010 s9 = peg$parseAssignmentExpression();
9011 if (s9 !== peg$FAILED) {
9012 peg$savedPos = s0;
9013 s1 = peg$c313(s1, s5, s9);
9014 s0 = s1;
9015 } else {
9016 peg$currPos = s0;
9017 s0 = peg$FAILED;
9018 }
9019 } else {
9020 peg$currPos = s0;
9021 s0 = peg$FAILED;
9022 }
9023 } else {
9024 peg$currPos = s0;
9025 s0 = peg$FAILED;
9026 }
9027 } else {
9028 peg$currPos = s0;
9029 s0 = peg$FAILED;
9030 }
9031 } else {
9032 peg$currPos = s0;
9033 s0 = peg$FAILED;
9034 }
9035 } else {
9036 peg$currPos = s0;
9037 s0 = peg$FAILED;
9038 }
9039 } else {
9040 peg$currPos = s0;
9041 s0 = peg$FAILED;
9042 }
9043 } else {
9044 peg$currPos = s0;
9045 s0 = peg$FAILED;
9046 }
9047 } else {
9048 peg$currPos = s0;
9049 s0 = peg$FAILED;
9050 }
9051 if (s0 === peg$FAILED) {
9052 s0 = peg$parseLogicalORExpression();
9053 }
9054
9055 return s0;
9056 }
9057
9058 function peg$parseConditionalExpressionNoIn() {
9059 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
9060
9061 s0 = peg$currPos;
9062 s1 = peg$parseLogicalORExpressionNoIn();
9063 if (s1 !== peg$FAILED) {
9064 s2 = peg$parse__();
9065 if (s2 !== peg$FAILED) {
9066 if (input.charCodeAt(peg$currPos) === 63) {
9067 s3 = peg$c309;
9068 peg$currPos++;
9069 } else {
9070 s3 = peg$FAILED;
9071 if (peg$silentFails === 0) { peg$fail(peg$c310); }
9072 }
9073 if (s3 !== peg$FAILED) {
9074 s4 = peg$parse__();
9075 if (s4 !== peg$FAILED) {
9076 s5 = peg$parseAssignmentExpression();
9077 if (s5 !== peg$FAILED) {
9078 s6 = peg$parse__();
9079 if (s6 !== peg$FAILED) {
9080 if (input.charCodeAt(peg$currPos) === 58) {
9081 s7 = peg$c311;
9082 peg$currPos++;
9083 } else {
9084 s7 = peg$FAILED;
9085 if (peg$silentFails === 0) { peg$fail(peg$c312); }
9086 }
9087 if (s7 !== peg$FAILED) {
9088 s8 = peg$parse__();
9089 if (s8 !== peg$FAILED) {
9090 s9 = peg$parseAssignmentExpressionNoIn();
9091 if (s9 !== peg$FAILED) {
9092 peg$savedPos = s0;
9093 s1 = peg$c313(s1, s5, s9);
9094 s0 = s1;
9095 } else {
9096 peg$currPos = s0;
9097 s0 = peg$FAILED;
9098 }
9099 } else {
9100 peg$currPos = s0;
9101 s0 = peg$FAILED;
9102 }
9103 } else {
9104 peg$currPos = s0;
9105 s0 = peg$FAILED;
9106 }
9107 } else {
9108 peg$currPos = s0;
9109 s0 = peg$FAILED;
9110 }
9111 } else {
9112 peg$currPos = s0;
9113 s0 = peg$FAILED;
9114 }
9115 } else {
9116 peg$currPos = s0;
9117 s0 = peg$FAILED;
9118 }
9119 } else {
9120 peg$currPos = s0;
9121 s0 = peg$FAILED;
9122 }
9123 } else {
9124 peg$currPos = s0;
9125 s0 = peg$FAILED;
9126 }
9127 } else {
9128 peg$currPos = s0;
9129 s0 = peg$FAILED;
9130 }
9131 if (s0 === peg$FAILED) {
9132 s0 = peg$parseLogicalORExpressionNoIn();
9133 }
9134
9135 return s0;
9136 }
9137
9138 function peg$parseAssignmentExpression() {
9139 var s0, s1, s2, s3, s4, s5, s6;
9140
9141 s0 = peg$currPos;
9142 s1 = peg$parseLeftHandSideExpression();
9143 if (s1 !== peg$FAILED) {
9144 s2 = peg$parse__();
9145 if (s2 !== peg$FAILED) {
9146 if (input.charCodeAt(peg$currPos) === 61) {
9147 s3 = peg$c256;
9148 peg$currPos++;
9149 } else {
9150 s3 = peg$FAILED;
9151 if (peg$silentFails === 0) { peg$fail(peg$c257); }
9152 }
9153 if (s3 !== peg$FAILED) {
9154 s4 = peg$currPos;
9155 peg$silentFails++;
9156 if (input.charCodeAt(peg$currPos) === 61) {
9157 s5 = peg$c256;
9158 peg$currPos++;
9159 } else {
9160 s5 = peg$FAILED;
9161 if (peg$silentFails === 0) { peg$fail(peg$c257); }
9162 }
9163 peg$silentFails--;
9164 if (s5 === peg$FAILED) {
9165 s4 = void 0;
9166 } else {
9167 peg$currPos = s4;
9168 s4 = peg$FAILED;
9169 }
9170 if (s4 !== peg$FAILED) {
9171 s5 = peg$parse__();
9172 if (s5 !== peg$FAILED) {
9173 s6 = peg$parseAssignmentExpression();
9174 if (s6 !== peg$FAILED) {
9175 peg$savedPos = s0;
9176 s1 = peg$c314(s1, s6);
9177 s0 = s1;
9178 } else {
9179 peg$currPos = s0;
9180 s0 = peg$FAILED;
9181 }
9182 } else {
9183 peg$currPos = s0;
9184 s0 = peg$FAILED;
9185 }
9186 } else {
9187 peg$currPos = s0;
9188 s0 = peg$FAILED;
9189 }
9190 } else {
9191 peg$currPos = s0;
9192 s0 = peg$FAILED;
9193 }
9194 } else {
9195 peg$currPos = s0;
9196 s0 = peg$FAILED;
9197 }
9198 } else {
9199 peg$currPos = s0;
9200 s0 = peg$FAILED;
9201 }
9202 if (s0 === peg$FAILED) {
9203 s0 = peg$currPos;
9204 s1 = peg$parseLeftHandSideExpression();
9205 if (s1 !== peg$FAILED) {
9206 s2 = peg$parse__();
9207 if (s2 !== peg$FAILED) {
9208 s3 = peg$parseAssignmentOperator();
9209 if (s3 !== peg$FAILED) {
9210 s4 = peg$parse__();
9211 if (s4 !== peg$FAILED) {
9212 s5 = peg$parseAssignmentExpression();
9213 if (s5 !== peg$FAILED) {
9214 peg$savedPos = s0;
9215 s1 = peg$c315(s1, s3, s5);
9216 s0 = s1;
9217 } else {
9218 peg$currPos = s0;
9219 s0 = peg$FAILED;
9220 }
9221 } else {
9222 peg$currPos = s0;
9223 s0 = peg$FAILED;
9224 }
9225 } else {
9226 peg$currPos = s0;
9227 s0 = peg$FAILED;
9228 }
9229 } else {
9230 peg$currPos = s0;
9231 s0 = peg$FAILED;
9232 }
9233 } else {
9234 peg$currPos = s0;
9235 s0 = peg$FAILED;
9236 }
9237 if (s0 === peg$FAILED) {
9238 s0 = peg$parseConditionalExpression();
9239 }
9240 }
9241
9242 return s0;
9243 }
9244
9245 function peg$parseAssignmentExpressionNoIn() {
9246 var s0, s1, s2, s3, s4, s5, s6;
9247
9248 s0 = peg$currPos;
9249 s1 = peg$parseLeftHandSideExpression();
9250 if (s1 !== peg$FAILED) {
9251 s2 = peg$parse__();
9252 if (s2 !== peg$FAILED) {
9253 if (input.charCodeAt(peg$currPos) === 61) {
9254 s3 = peg$c256;
9255 peg$currPos++;
9256 } else {
9257 s3 = peg$FAILED;
9258 if (peg$silentFails === 0) { peg$fail(peg$c257); }
9259 }
9260 if (s3 !== peg$FAILED) {
9261 s4 = peg$currPos;
9262 peg$silentFails++;
9263 if (input.charCodeAt(peg$currPos) === 61) {
9264 s5 = peg$c256;
9265 peg$currPos++;
9266 } else {
9267 s5 = peg$FAILED;
9268 if (peg$silentFails === 0) { peg$fail(peg$c257); }
9269 }
9270 peg$silentFails--;
9271 if (s5 === peg$FAILED) {
9272 s4 = void 0;
9273 } else {
9274 peg$currPos = s4;
9275 s4 = peg$FAILED;
9276 }
9277 if (s4 !== peg$FAILED) {
9278 s5 = peg$parse__();
9279 if (s5 !== peg$FAILED) {
9280 s6 = peg$parseAssignmentExpressionNoIn();
9281 if (s6 !== peg$FAILED) {
9282 peg$savedPos = s0;
9283 s1 = peg$c314(s1, s6);
9284 s0 = s1;
9285 } else {
9286 peg$currPos = s0;
9287 s0 = peg$FAILED;
9288 }
9289 } else {
9290 peg$currPos = s0;
9291 s0 = peg$FAILED;
9292 }
9293 } else {
9294 peg$currPos = s0;
9295 s0 = peg$FAILED;
9296 }
9297 } else {
9298 peg$currPos = s0;
9299 s0 = peg$FAILED;
9300 }
9301 } else {
9302 peg$currPos = s0;
9303 s0 = peg$FAILED;
9304 }
9305 } else {
9306 peg$currPos = s0;
9307 s0 = peg$FAILED;
9308 }
9309 if (s0 === peg$FAILED) {
9310 s0 = peg$currPos;
9311 s1 = peg$parseLeftHandSideExpression();
9312 if (s1 !== peg$FAILED) {
9313 s2 = peg$parse__();
9314 if (s2 !== peg$FAILED) {
9315 s3 = peg$parseAssignmentOperator();
9316 if (s3 !== peg$FAILED) {
9317 s4 = peg$parse__();
9318 if (s4 !== peg$FAILED) {
9319 s5 = peg$parseAssignmentExpressionNoIn();
9320 if (s5 !== peg$FAILED) {
9321 peg$savedPos = s0;
9322 s1 = peg$c315(s1, s3, s5);
9323 s0 = s1;
9324 } else {
9325 peg$currPos = s0;
9326 s0 = peg$FAILED;
9327 }
9328 } else {
9329 peg$currPos = s0;
9330 s0 = peg$FAILED;
9331 }
9332 } else {
9333 peg$currPos = s0;
9334 s0 = peg$FAILED;
9335 }
9336 } else {
9337 peg$currPos = s0;
9338 s0 = peg$FAILED;
9339 }
9340 } else {
9341 peg$currPos = s0;
9342 s0 = peg$FAILED;
9343 }
9344 if (s0 === peg$FAILED) {
9345 s0 = peg$parseConditionalExpressionNoIn();
9346 }
9347 }
9348
9349 return s0;
9350 }
9351
9352 function peg$parseAssignmentOperator() {
9353 var s0;
9354
9355 if (input.substr(peg$currPos, 2) === peg$c316) {
9356 s0 = peg$c316;
9357 peg$currPos += 2;
9358 } else {
9359 s0 = peg$FAILED;
9360 if (peg$silentFails === 0) { peg$fail(peg$c317); }
9361 }
9362 if (s0 === peg$FAILED) {
9363 if (input.substr(peg$currPos, 2) === peg$c318) {
9364 s0 = peg$c318;
9365 peg$currPos += 2;
9366 } else {
9367 s0 = peg$FAILED;
9368 if (peg$silentFails === 0) { peg$fail(peg$c319); }
9369 }
9370 if (s0 === peg$FAILED) {
9371 if (input.substr(peg$currPos, 2) === peg$c320) {
9372 s0 = peg$c320;
9373 peg$currPos += 2;
9374 } else {
9375 s0 = peg$FAILED;
9376 if (peg$silentFails === 0) { peg$fail(peg$c321); }
9377 }
9378 if (s0 === peg$FAILED) {
9379 if (input.substr(peg$currPos, 2) === peg$c322) {
9380 s0 = peg$c322;
9381 peg$currPos += 2;
9382 } else {
9383 s0 = peg$FAILED;
9384 if (peg$silentFails === 0) { peg$fail(peg$c323); }
9385 }
9386 if (s0 === peg$FAILED) {
9387 if (input.substr(peg$currPos, 2) === peg$c324) {
9388 s0 = peg$c324;
9389 peg$currPos += 2;
9390 } else {
9391 s0 = peg$FAILED;
9392 if (peg$silentFails === 0) { peg$fail(peg$c325); }
9393 }
9394 if (s0 === peg$FAILED) {
9395 if (input.substr(peg$currPos, 3) === peg$c326) {
9396 s0 = peg$c326;
9397 peg$currPos += 3;
9398 } else {
9399 s0 = peg$FAILED;
9400 if (peg$silentFails === 0) { peg$fail(peg$c327); }
9401 }
9402 if (s0 === peg$FAILED) {
9403 if (input.substr(peg$currPos, 3) === peg$c328) {
9404 s0 = peg$c328;
9405 peg$currPos += 3;
9406 } else {
9407 s0 = peg$FAILED;
9408 if (peg$silentFails === 0) { peg$fail(peg$c329); }
9409 }
9410 if (s0 === peg$FAILED) {
9411 if (input.substr(peg$currPos, 4) === peg$c330) {
9412 s0 = peg$c330;
9413 peg$currPos += 4;
9414 } else {
9415 s0 = peg$FAILED;
9416 if (peg$silentFails === 0) { peg$fail(peg$c331); }
9417 }
9418 if (s0 === peg$FAILED) {
9419 if (input.substr(peg$currPos, 2) === peg$c332) {
9420 s0 = peg$c332;
9421 peg$currPos += 2;
9422 } else {
9423 s0 = peg$FAILED;
9424 if (peg$silentFails === 0) { peg$fail(peg$c333); }
9425 }
9426 if (s0 === peg$FAILED) {
9427 if (input.substr(peg$currPos, 2) === peg$c334) {
9428 s0 = peg$c334;
9429 peg$currPos += 2;
9430 } else {
9431 s0 = peg$FAILED;
9432 if (peg$silentFails === 0) { peg$fail(peg$c335); }
9433 }
9434 if (s0 === peg$FAILED) {
9435 if (input.substr(peg$currPos, 2) === peg$c336) {
9436 s0 = peg$c336;
9437 peg$currPos += 2;
9438 } else {
9439 s0 = peg$FAILED;
9440 if (peg$silentFails === 0) { peg$fail(peg$c337); }
9441 }
9442 }
9443 }
9444 }
9445 }
9446 }
9447 }
9448 }
9449 }
9450 }
9451 }
9452
9453 return s0;
9454 }
9455
9456 function peg$parseExpression() {
9457 var s0, s1, s2, s3, s4, s5, s6, s7;
9458
9459 s0 = peg$currPos;
9460 s1 = peg$parseAssignmentExpression();
9461 if (s1 !== peg$FAILED) {
9462 s2 = [];
9463 s3 = peg$currPos;
9464 s4 = peg$parse__();
9465 if (s4 !== peg$FAILED) {
9466 if (input.charCodeAt(peg$currPos) === 44) {
9467 s5 = peg$c228;
9468 peg$currPos++;
9469 } else {
9470 s5 = peg$FAILED;
9471 if (peg$silentFails === 0) { peg$fail(peg$c229); }
9472 }
9473 if (s5 !== peg$FAILED) {
9474 s6 = peg$parse__();
9475 if (s6 !== peg$FAILED) {
9476 s7 = peg$parseAssignmentExpression();
9477 if (s7 !== peg$FAILED) {
9478 s4 = [s4, s5, s6, s7];
9479 s3 = s4;
9480 } else {
9481 peg$currPos = s3;
9482 s3 = peg$FAILED;
9483 }
9484 } else {
9485 peg$currPos = s3;
9486 s3 = peg$FAILED;
9487 }
9488 } else {
9489 peg$currPos = s3;
9490 s3 = peg$FAILED;
9491 }
9492 } else {
9493 peg$currPos = s3;
9494 s3 = peg$FAILED;
9495 }
9496 while (s3 !== peg$FAILED) {
9497 s2.push(s3);
9498 s3 = peg$currPos;
9499 s4 = peg$parse__();
9500 if (s4 !== peg$FAILED) {
9501 if (input.charCodeAt(peg$currPos) === 44) {
9502 s5 = peg$c228;
9503 peg$currPos++;
9504 } else {
9505 s5 = peg$FAILED;
9506 if (peg$silentFails === 0) { peg$fail(peg$c229); }
9507 }
9508 if (s5 !== peg$FAILED) {
9509 s6 = peg$parse__();
9510 if (s6 !== peg$FAILED) {
9511 s7 = peg$parseAssignmentExpression();
9512 if (s7 !== peg$FAILED) {
9513 s4 = [s4, s5, s6, s7];
9514 s3 = s4;
9515 } else {
9516 peg$currPos = s3;
9517 s3 = peg$FAILED;
9518 }
9519 } else {
9520 peg$currPos = s3;
9521 s3 = peg$FAILED;
9522 }
9523 } else {
9524 peg$currPos = s3;
9525 s3 = peg$FAILED;
9526 }
9527 } else {
9528 peg$currPos = s3;
9529 s3 = peg$FAILED;
9530 }
9531 }
9532 if (s2 !== peg$FAILED) {
9533 peg$savedPos = s0;
9534 s1 = peg$c338(s1, s2);
9535 s0 = s1;
9536 } else {
9537 peg$currPos = s0;
9538 s0 = peg$FAILED;
9539 }
9540 } else {
9541 peg$currPos = s0;
9542 s0 = peg$FAILED;
9543 }
9544
9545 return s0;
9546 }
9547
9548 function peg$parseExpressionNoIn() {
9549 var s0, s1, s2, s3, s4, s5, s6, s7;
9550
9551 s0 = peg$currPos;
9552 s1 = peg$parseAssignmentExpressionNoIn();
9553 if (s1 !== peg$FAILED) {
9554 s2 = [];
9555 s3 = peg$currPos;
9556 s4 = peg$parse__();
9557 if (s4 !== peg$FAILED) {
9558 if (input.charCodeAt(peg$currPos) === 44) {
9559 s5 = peg$c228;
9560 peg$currPos++;
9561 } else {
9562 s5 = peg$FAILED;
9563 if (peg$silentFails === 0) { peg$fail(peg$c229); }
9564 }
9565 if (s5 !== peg$FAILED) {
9566 s6 = peg$parse__();
9567 if (s6 !== peg$FAILED) {
9568 s7 = peg$parseAssignmentExpressionNoIn();
9569 if (s7 !== peg$FAILED) {
9570 s4 = [s4, s5, s6, s7];
9571 s3 = s4;
9572 } else {
9573 peg$currPos = s3;
9574 s3 = peg$FAILED;
9575 }
9576 } else {
9577 peg$currPos = s3;
9578 s3 = peg$FAILED;
9579 }
9580 } else {
9581 peg$currPos = s3;
9582 s3 = peg$FAILED;
9583 }
9584 } else {
9585 peg$currPos = s3;
9586 s3 = peg$FAILED;
9587 }
9588 while (s3 !== peg$FAILED) {
9589 s2.push(s3);
9590 s3 = peg$currPos;
9591 s4 = peg$parse__();
9592 if (s4 !== peg$FAILED) {
9593 if (input.charCodeAt(peg$currPos) === 44) {
9594 s5 = peg$c228;
9595 peg$currPos++;
9596 } else {
9597 s5 = peg$FAILED;
9598 if (peg$silentFails === 0) { peg$fail(peg$c229); }
9599 }
9600 if (s5 !== peg$FAILED) {
9601 s6 = peg$parse__();
9602 if (s6 !== peg$FAILED) {
9603 s7 = peg$parseAssignmentExpressionNoIn();
9604 if (s7 !== peg$FAILED) {
9605 s4 = [s4, s5, s6, s7];
9606 s3 = s4;
9607 } else {
9608 peg$currPos = s3;
9609 s3 = peg$FAILED;
9610 }
9611 } else {
9612 peg$currPos = s3;
9613 s3 = peg$FAILED;
9614 }
9615 } else {
9616 peg$currPos = s3;
9617 s3 = peg$FAILED;
9618 }
9619 } else {
9620 peg$currPos = s3;
9621 s3 = peg$FAILED;
9622 }
9623 }
9624 if (s2 !== peg$FAILED) {
9625 peg$savedPos = s0;
9626 s1 = peg$c338(s1, s2);
9627 s0 = s1;
9628 } else {
9629 peg$currPos = s0;
9630 s0 = peg$FAILED;
9631 }
9632 } else {
9633 peg$currPos = s0;
9634 s0 = peg$FAILED;
9635 }
9636
9637 return s0;
9638 }
9639
9640 function peg$parseStatement() {
9641 var s0;
9642
9643 s0 = peg$parseBlock();
9644 if (s0 === peg$FAILED) {
9645 s0 = peg$parseVariableStatement();
9646 if (s0 === peg$FAILED) {
9647 s0 = peg$parseEmptyStatement();
9648 if (s0 === peg$FAILED) {
9649 s0 = peg$parseExpressionStatement();
9650 if (s0 === peg$FAILED) {
9651 s0 = peg$parseIfStatement();
9652 if (s0 === peg$FAILED) {
9653 s0 = peg$parseIterationStatement();
9654 if (s0 === peg$FAILED) {
9655 s0 = peg$parseContinueStatement();
9656 if (s0 === peg$FAILED) {
9657 s0 = peg$parseBreakStatement();
9658 if (s0 === peg$FAILED) {
9659 s0 = peg$parseReturnStatement();
9660 if (s0 === peg$FAILED) {
9661 s0 = peg$parseWithStatement();
9662 if (s0 === peg$FAILED) {
9663 s0 = peg$parseLabelledStatement();
9664 if (s0 === peg$FAILED) {
9665 s0 = peg$parseSwitchStatement();
9666 if (s0 === peg$FAILED) {
9667 s0 = peg$parseThrowStatement();
9668 if (s0 === peg$FAILED) {
9669 s0 = peg$parseTryStatement();
9670 if (s0 === peg$FAILED) {
9671 s0 = peg$parseDebuggerStatement();
9672 }
9673 }
9674 }
9675 }
9676 }
9677 }
9678 }
9679 }
9680 }
9681 }
9682 }
9683 }
9684 }
9685 }
9686
9687 return s0;
9688 }
9689
9690 function peg$parseBlock() {
9691 var s0, s1, s2, s3, s4, s5;
9692
9693 s0 = peg$currPos;
9694 if (input.charCodeAt(peg$currPos) === 123) {
9695 s1 = peg$c339;
9696 peg$currPos++;
9697 } else {
9698 s1 = peg$FAILED;
9699 if (peg$silentFails === 0) { peg$fail(peg$c340); }
9700 }
9701 if (s1 !== peg$FAILED) {
9702 s2 = peg$parse__();
9703 if (s2 !== peg$FAILED) {
9704 s3 = peg$currPos;
9705 s4 = peg$parseStatementList();
9706 if (s4 !== peg$FAILED) {
9707 s5 = peg$parse__();
9708 if (s5 !== peg$FAILED) {
9709 s4 = [s4, s5];
9710 s3 = s4;
9711 } else {
9712 peg$currPos = s3;
9713 s3 = peg$FAILED;
9714 }
9715 } else {
9716 peg$currPos = s3;
9717 s3 = peg$FAILED;
9718 }
9719 if (s3 === peg$FAILED) {
9720 s3 = null;
9721 }
9722 if (s3 !== peg$FAILED) {
9723 if (input.charCodeAt(peg$currPos) === 125) {
9724 s4 = peg$c218;
9725 peg$currPos++;
9726 } else {
9727 s4 = peg$FAILED;
9728 if (peg$silentFails === 0) { peg$fail(peg$c219); }
9729 }
9730 if (s4 !== peg$FAILED) {
9731 peg$savedPos = s0;
9732 s1 = peg$c341(s3);
9733 s0 = s1;
9734 } else {
9735 peg$currPos = s0;
9736 s0 = peg$FAILED;
9737 }
9738 } else {
9739 peg$currPos = s0;
9740 s0 = peg$FAILED;
9741 }
9742 } else {
9743 peg$currPos = s0;
9744 s0 = peg$FAILED;
9745 }
9746 } else {
9747 peg$currPos = s0;
9748 s0 = peg$FAILED;
9749 }
9750
9751 return s0;
9752 }
9753
9754 function peg$parseStatementList() {
9755 var s0, s1, s2, s3, s4, s5;
9756
9757 s0 = peg$currPos;
9758 s1 = peg$parseStatement();
9759 if (s1 !== peg$FAILED) {
9760 s2 = [];
9761 s3 = peg$currPos;
9762 s4 = peg$parse__();
9763 if (s4 !== peg$FAILED) {
9764 s5 = peg$parseStatement();
9765 if (s5 !== peg$FAILED) {
9766 s4 = [s4, s5];
9767 s3 = s4;
9768 } else {
9769 peg$currPos = s3;
9770 s3 = peg$FAILED;
9771 }
9772 } else {
9773 peg$currPos = s3;
9774 s3 = peg$FAILED;
9775 }
9776 while (s3 !== peg$FAILED) {
9777 s2.push(s3);
9778 s3 = peg$currPos;
9779 s4 = peg$parse__();
9780 if (s4 !== peg$FAILED) {
9781 s5 = peg$parseStatement();
9782 if (s5 !== peg$FAILED) {
9783 s4 = [s4, s5];
9784 s3 = s4;
9785 } else {
9786 peg$currPos = s3;
9787 s3 = peg$FAILED;
9788 }
9789 } else {
9790 peg$currPos = s3;
9791 s3 = peg$FAILED;
9792 }
9793 }
9794 if (s2 !== peg$FAILED) {
9795 peg$savedPos = s0;
9796 s1 = peg$c342(s1, s2);
9797 s0 = s1;
9798 } else {
9799 peg$currPos = s0;
9800 s0 = peg$FAILED;
9801 }
9802 } else {
9803 peg$currPos = s0;
9804 s0 = peg$FAILED;
9805 }
9806
9807 return s0;
9808 }
9809
9810 function peg$parseVariableStatement() {
9811 var s0, s1, s2, s3, s4;
9812
9813 s0 = peg$currPos;
9814 s1 = peg$parseVarToken();
9815 if (s1 !== peg$FAILED) {
9816 s2 = peg$parse__();
9817 if (s2 !== peg$FAILED) {
9818 s3 = peg$parseVariableDeclarationList();
9819 if (s3 !== peg$FAILED) {
9820 s4 = peg$parseEOS();
9821 if (s4 !== peg$FAILED) {
9822 peg$savedPos = s0;
9823 s1 = peg$c343(s3);
9824 s0 = s1;
9825 } else {
9826 peg$currPos = s0;
9827 s0 = peg$FAILED;
9828 }
9829 } else {
9830 peg$currPos = s0;
9831 s0 = peg$FAILED;
9832 }
9833 } else {
9834 peg$currPos = s0;
9835 s0 = peg$FAILED;
9836 }
9837 } else {
9838 peg$currPos = s0;
9839 s0 = peg$FAILED;
9840 }
9841
9842 return s0;
9843 }
9844
9845 function peg$parseVariableDeclarationList() {
9846 var s0, s1, s2, s3, s4, s5, s6, s7;
9847
9848 s0 = peg$currPos;
9849 s1 = peg$parseVariableDeclaration();
9850 if (s1 !== peg$FAILED) {
9851 s2 = [];
9852 s3 = peg$currPos;
9853 s4 = peg$parse__();
9854 if (s4 !== peg$FAILED) {
9855 if (input.charCodeAt(peg$currPos) === 44) {
9856 s5 = peg$c228;
9857 peg$currPos++;
9858 } else {
9859 s5 = peg$FAILED;
9860 if (peg$silentFails === 0) { peg$fail(peg$c229); }
9861 }
9862 if (s5 !== peg$FAILED) {
9863 s6 = peg$parse__();
9864 if (s6 !== peg$FAILED) {
9865 s7 = peg$parseVariableDeclaration();
9866 if (s7 !== peg$FAILED) {
9867 s4 = [s4, s5, s6, s7];
9868 s3 = s4;
9869 } else {
9870 peg$currPos = s3;
9871 s3 = peg$FAILED;
9872 }
9873 } else {
9874 peg$currPos = s3;
9875 s3 = peg$FAILED;
9876 }
9877 } else {
9878 peg$currPos = s3;
9879 s3 = peg$FAILED;
9880 }
9881 } else {
9882 peg$currPos = s3;
9883 s3 = peg$FAILED;
9884 }
9885 while (s3 !== peg$FAILED) {
9886 s2.push(s3);
9887 s3 = peg$currPos;
9888 s4 = peg$parse__();
9889 if (s4 !== peg$FAILED) {
9890 if (input.charCodeAt(peg$currPos) === 44) {
9891 s5 = peg$c228;
9892 peg$currPos++;
9893 } else {
9894 s5 = peg$FAILED;
9895 if (peg$silentFails === 0) { peg$fail(peg$c229); }
9896 }
9897 if (s5 !== peg$FAILED) {
9898 s6 = peg$parse__();
9899 if (s6 !== peg$FAILED) {
9900 s7 = peg$parseVariableDeclaration();
9901 if (s7 !== peg$FAILED) {
9902 s4 = [s4, s5, s6, s7];
9903 s3 = s4;
9904 } else {
9905 peg$currPos = s3;
9906 s3 = peg$FAILED;
9907 }
9908 } else {
9909 peg$currPos = s3;
9910 s3 = peg$FAILED;
9911 }
9912 } else {
9913 peg$currPos = s3;
9914 s3 = peg$FAILED;
9915 }
9916 } else {
9917 peg$currPos = s3;
9918 s3 = peg$FAILED;
9919 }
9920 }
9921 if (s2 !== peg$FAILED) {
9922 peg$savedPos = s0;
9923 s1 = peg$c247(s1, s2);
9924 s0 = s1;
9925 } else {
9926 peg$currPos = s0;
9927 s0 = peg$FAILED;
9928 }
9929 } else {
9930 peg$currPos = s0;
9931 s0 = peg$FAILED;
9932 }
9933
9934 return s0;
9935 }
9936
9937 function peg$parseVariableDeclarationListNoIn() {
9938 var s0, s1, s2, s3, s4, s5, s6, s7;
9939
9940 s0 = peg$currPos;
9941 s1 = peg$parseVariableDeclarationNoIn();
9942 if (s1 !== peg$FAILED) {
9943 s2 = [];
9944 s3 = peg$currPos;
9945 s4 = peg$parse__();
9946 if (s4 !== peg$FAILED) {
9947 if (input.charCodeAt(peg$currPos) === 44) {
9948 s5 = peg$c228;
9949 peg$currPos++;
9950 } else {
9951 s5 = peg$FAILED;
9952 if (peg$silentFails === 0) { peg$fail(peg$c229); }
9953 }
9954 if (s5 !== peg$FAILED) {
9955 s6 = peg$parse__();
9956 if (s6 !== peg$FAILED) {
9957 s7 = peg$parseVariableDeclarationNoIn();
9958 if (s7 !== peg$FAILED) {
9959 s4 = [s4, s5, s6, s7];
9960 s3 = s4;
9961 } else {
9962 peg$currPos = s3;
9963 s3 = peg$FAILED;
9964 }
9965 } else {
9966 peg$currPos = s3;
9967 s3 = peg$FAILED;
9968 }
9969 } else {
9970 peg$currPos = s3;
9971 s3 = peg$FAILED;
9972 }
9973 } else {
9974 peg$currPos = s3;
9975 s3 = peg$FAILED;
9976 }
9977 while (s3 !== peg$FAILED) {
9978 s2.push(s3);
9979 s3 = peg$currPos;
9980 s4 = peg$parse__();
9981 if (s4 !== peg$FAILED) {
9982 if (input.charCodeAt(peg$currPos) === 44) {
9983 s5 = peg$c228;
9984 peg$currPos++;
9985 } else {
9986 s5 = peg$FAILED;
9987 if (peg$silentFails === 0) { peg$fail(peg$c229); }
9988 }
9989 if (s5 !== peg$FAILED) {
9990 s6 = peg$parse__();
9991 if (s6 !== peg$FAILED) {
9992 s7 = peg$parseVariableDeclarationNoIn();
9993 if (s7 !== peg$FAILED) {
9994 s4 = [s4, s5, s6, s7];
9995 s3 = s4;
9996 } else {
9997 peg$currPos = s3;
9998 s3 = peg$FAILED;
9999 }
10000 } else {
10001 peg$currPos = s3;
10002 s3 = peg$FAILED;
10003 }
10004 } else {
10005 peg$currPos = s3;
10006 s3 = peg$FAILED;
10007 }
10008 } else {
10009 peg$currPos = s3;
10010 s3 = peg$FAILED;
10011 }
10012 }
10013 if (s2 !== peg$FAILED) {
10014 peg$savedPos = s0;
10015 s1 = peg$c247(s1, s2);
10016 s0 = s1;
10017 } else {
10018 peg$currPos = s0;
10019 s0 = peg$FAILED;
10020 }
10021 } else {
10022 peg$currPos = s0;
10023 s0 = peg$FAILED;
10024 }
10025
10026 return s0;
10027 }
10028
10029 function peg$parseVariableDeclaration() {
10030 var s0, s1, s2, s3, s4;
10031
10032 s0 = peg$currPos;
10033 s1 = peg$parseIdentifier();
10034 if (s1 !== peg$FAILED) {
10035 s2 = peg$currPos;
10036 s3 = peg$parse__();
10037 if (s3 !== peg$FAILED) {
10038 s4 = peg$parseInitialiser();
10039 if (s4 !== peg$FAILED) {
10040 s3 = [s3, s4];
10041 s2 = s3;
10042 } else {
10043 peg$currPos = s2;
10044 s2 = peg$FAILED;
10045 }
10046 } else {
10047 peg$currPos = s2;
10048 s2 = peg$FAILED;
10049 }
10050 if (s2 === peg$FAILED) {
10051 s2 = null;
10052 }
10053 if (s2 !== peg$FAILED) {
10054 peg$savedPos = s0;
10055 s1 = peg$c344(s1, s2);
10056 s0 = s1;
10057 } else {
10058 peg$currPos = s0;
10059 s0 = peg$FAILED;
10060 }
10061 } else {
10062 peg$currPos = s0;
10063 s0 = peg$FAILED;
10064 }
10065
10066 return s0;
10067 }
10068
10069 function peg$parseVariableDeclarationNoIn() {
10070 var s0, s1, s2, s3, s4;
10071
10072 s0 = peg$currPos;
10073 s1 = peg$parseIdentifier();
10074 if (s1 !== peg$FAILED) {
10075 s2 = peg$currPos;
10076 s3 = peg$parse__();
10077 if (s3 !== peg$FAILED) {
10078 s4 = peg$parseInitialiserNoIn();
10079 if (s4 !== peg$FAILED) {
10080 s3 = [s3, s4];
10081 s2 = s3;
10082 } else {
10083 peg$currPos = s2;
10084 s2 = peg$FAILED;
10085 }
10086 } else {
10087 peg$currPos = s2;
10088 s2 = peg$FAILED;
10089 }
10090 if (s2 === peg$FAILED) {
10091 s2 = null;
10092 }
10093 if (s2 !== peg$FAILED) {
10094 peg$savedPos = s0;
10095 s1 = peg$c344(s1, s2);
10096 s0 = s1;
10097 } else {
10098 peg$currPos = s0;
10099 s0 = peg$FAILED;
10100 }
10101 } else {
10102 peg$currPos = s0;
10103 s0 = peg$FAILED;
10104 }
10105
10106 return s0;
10107 }
10108
10109 function peg$parseInitialiser() {
10110 var s0, s1, s2, s3, s4;
10111
10112 s0 = peg$currPos;
10113 if (input.charCodeAt(peg$currPos) === 61) {
10114 s1 = peg$c256;
10115 peg$currPos++;
10116 } else {
10117 s1 = peg$FAILED;
10118 if (peg$silentFails === 0) { peg$fail(peg$c257); }
10119 }
10120 if (s1 !== peg$FAILED) {
10121 s2 = peg$currPos;
10122 peg$silentFails++;
10123 if (input.charCodeAt(peg$currPos) === 61) {
10124 s3 = peg$c256;
10125 peg$currPos++;
10126 } else {
10127 s3 = peg$FAILED;
10128 if (peg$silentFails === 0) { peg$fail(peg$c257); }
10129 }
10130 peg$silentFails--;
10131 if (s3 === peg$FAILED) {
10132 s2 = void 0;
10133 } else {
10134 peg$currPos = s2;
10135 s2 = peg$FAILED;
10136 }
10137 if (s2 !== peg$FAILED) {
10138 s3 = peg$parse__();
10139 if (s3 !== peg$FAILED) {
10140 s4 = peg$parseAssignmentExpression();
10141 if (s4 !== peg$FAILED) {
10142 peg$savedPos = s0;
10143 s1 = peg$c225(s4);
10144 s0 = s1;
10145 } else {
10146 peg$currPos = s0;
10147 s0 = peg$FAILED;
10148 }
10149 } else {
10150 peg$currPos = s0;
10151 s0 = peg$FAILED;
10152 }
10153 } else {
10154 peg$currPos = s0;
10155 s0 = peg$FAILED;
10156 }
10157 } else {
10158 peg$currPos = s0;
10159 s0 = peg$FAILED;
10160 }
10161
10162 return s0;
10163 }
10164
10165 function peg$parseInitialiserNoIn() {
10166 var s0, s1, s2, s3, s4;
10167
10168 s0 = peg$currPos;
10169 if (input.charCodeAt(peg$currPos) === 61) {
10170 s1 = peg$c256;
10171 peg$currPos++;
10172 } else {
10173 s1 = peg$FAILED;
10174 if (peg$silentFails === 0) { peg$fail(peg$c257); }
10175 }
10176 if (s1 !== peg$FAILED) {
10177 s2 = peg$currPos;
10178 peg$silentFails++;
10179 if (input.charCodeAt(peg$currPos) === 61) {
10180 s3 = peg$c256;
10181 peg$currPos++;
10182 } else {
10183 s3 = peg$FAILED;
10184 if (peg$silentFails === 0) { peg$fail(peg$c257); }
10185 }
10186 peg$silentFails--;
10187 if (s3 === peg$FAILED) {
10188 s2 = void 0;
10189 } else {
10190 peg$currPos = s2;
10191 s2 = peg$FAILED;
10192 }
10193 if (s2 !== peg$FAILED) {
10194 s3 = peg$parse__();
10195 if (s3 !== peg$FAILED) {
10196 s4 = peg$parseAssignmentExpressionNoIn();
10197 if (s4 !== peg$FAILED) {
10198 peg$savedPos = s0;
10199 s1 = peg$c225(s4);
10200 s0 = s1;
10201 } else {
10202 peg$currPos = s0;
10203 s0 = peg$FAILED;
10204 }
10205 } else {
10206 peg$currPos = s0;
10207 s0 = peg$FAILED;
10208 }
10209 } else {
10210 peg$currPos = s0;
10211 s0 = peg$FAILED;
10212 }
10213 } else {
10214 peg$currPos = s0;
10215 s0 = peg$FAILED;
10216 }
10217
10218 return s0;
10219 }
10220
10221 function peg$parseEmptyStatement() {
10222 var s0, s1;
10223
10224 s0 = peg$currPos;
10225 if (input.charCodeAt(peg$currPos) === 59) {
10226 s1 = peg$c216;
10227 peg$currPos++;
10228 } else {
10229 s1 = peg$FAILED;
10230 if (peg$silentFails === 0) { peg$fail(peg$c217); }
10231 }
10232 if (s1 !== peg$FAILED) {
10233 peg$savedPos = s0;
10234 s1 = peg$c345();
10235 }
10236 s0 = s1;
10237
10238 return s0;
10239 }
10240
10241 function peg$parseExpressionStatement() {
10242 var s0, s1, s2, s3;
10243
10244 s0 = peg$currPos;
10245 s1 = peg$currPos;
10246 peg$silentFails++;
10247 if (input.charCodeAt(peg$currPos) === 123) {
10248 s2 = peg$c339;
10249 peg$currPos++;
10250 } else {
10251 s2 = peg$FAILED;
10252 if (peg$silentFails === 0) { peg$fail(peg$c340); }
10253 }
10254 if (s2 === peg$FAILED) {
10255 s2 = peg$parseFunctionToken();
10256 }
10257 peg$silentFails--;
10258 if (s2 === peg$FAILED) {
10259 s1 = void 0;
10260 } else {
10261 peg$currPos = s1;
10262 s1 = peg$FAILED;
10263 }
10264 if (s1 !== peg$FAILED) {
10265 s2 = peg$parseExpression();
10266 if (s2 !== peg$FAILED) {
10267 s3 = peg$parseEOS();
10268 if (s3 !== peg$FAILED) {
10269 peg$savedPos = s0;
10270 s1 = peg$c346(s2);
10271 s0 = s1;
10272 } else {
10273 peg$currPos = s0;
10274 s0 = peg$FAILED;
10275 }
10276 } else {
10277 peg$currPos = s0;
10278 s0 = peg$FAILED;
10279 }
10280 } else {
10281 peg$currPos = s0;
10282 s0 = peg$FAILED;
10283 }
10284
10285 return s0;
10286 }
10287
10288 function peg$parseIfStatement() {
10289 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
10290
10291 s0 = peg$currPos;
10292 s1 = peg$parseIfToken();
10293 if (s1 !== peg$FAILED) {
10294 s2 = peg$parse__();
10295 if (s2 !== peg$FAILED) {
10296 if (input.charCodeAt(peg$currPos) === 40) {
10297 s3 = peg$c221;
10298 peg$currPos++;
10299 } else {
10300 s3 = peg$FAILED;
10301 if (peg$silentFails === 0) { peg$fail(peg$c222); }
10302 }
10303 if (s3 !== peg$FAILED) {
10304 s4 = peg$parse__();
10305 if (s4 !== peg$FAILED) {
10306 s5 = peg$parseExpression();
10307 if (s5 !== peg$FAILED) {
10308 s6 = peg$parse__();
10309 if (s6 !== peg$FAILED) {
10310 if (input.charCodeAt(peg$currPos) === 41) {
10311 s7 = peg$c223;
10312 peg$currPos++;
10313 } else {
10314 s7 = peg$FAILED;
10315 if (peg$silentFails === 0) { peg$fail(peg$c224); }
10316 }
10317 if (s7 !== peg$FAILED) {
10318 s8 = peg$parse__();
10319 if (s8 !== peg$FAILED) {
10320 s9 = peg$parseStatement();
10321 if (s9 !== peg$FAILED) {
10322 s10 = peg$parse__();
10323 if (s10 !== peg$FAILED) {
10324 s11 = peg$parseElseToken();
10325 if (s11 !== peg$FAILED) {
10326 s12 = peg$parse__();
10327 if (s12 !== peg$FAILED) {
10328 s13 = peg$parseStatement();
10329 if (s13 !== peg$FAILED) {
10330 peg$savedPos = s0;
10331 s1 = peg$c347(s5, s9, s13);
10332 s0 = s1;
10333 } else {
10334 peg$currPos = s0;
10335 s0 = peg$FAILED;
10336 }
10337 } else {
10338 peg$currPos = s0;
10339 s0 = peg$FAILED;
10340 }
10341 } else {
10342 peg$currPos = s0;
10343 s0 = peg$FAILED;
10344 }
10345 } else {
10346 peg$currPos = s0;
10347 s0 = peg$FAILED;
10348 }
10349 } else {
10350 peg$currPos = s0;
10351 s0 = peg$FAILED;
10352 }
10353 } else {
10354 peg$currPos = s0;
10355 s0 = peg$FAILED;
10356 }
10357 } else {
10358 peg$currPos = s0;
10359 s0 = peg$FAILED;
10360 }
10361 } else {
10362 peg$currPos = s0;
10363 s0 = peg$FAILED;
10364 }
10365 } else {
10366 peg$currPos = s0;
10367 s0 = peg$FAILED;
10368 }
10369 } else {
10370 peg$currPos = s0;
10371 s0 = peg$FAILED;
10372 }
10373 } else {
10374 peg$currPos = s0;
10375 s0 = peg$FAILED;
10376 }
10377 } else {
10378 peg$currPos = s0;
10379 s0 = peg$FAILED;
10380 }
10381 } else {
10382 peg$currPos = s0;
10383 s0 = peg$FAILED;
10384 }
10385 if (s0 === peg$FAILED) {
10386 s0 = peg$currPos;
10387 s1 = peg$parseIfToken();
10388 if (s1 !== peg$FAILED) {
10389 s2 = peg$parse__();
10390 if (s2 !== peg$FAILED) {
10391 if (input.charCodeAt(peg$currPos) === 40) {
10392 s3 = peg$c221;
10393 peg$currPos++;
10394 } else {
10395 s3 = peg$FAILED;
10396 if (peg$silentFails === 0) { peg$fail(peg$c222); }
10397 }
10398 if (s3 !== peg$FAILED) {
10399 s4 = peg$parse__();
10400 if (s4 !== peg$FAILED) {
10401 s5 = peg$parseExpression();
10402 if (s5 !== peg$FAILED) {
10403 s6 = peg$parse__();
10404 if (s6 !== peg$FAILED) {
10405 if (input.charCodeAt(peg$currPos) === 41) {
10406 s7 = peg$c223;
10407 peg$currPos++;
10408 } else {
10409 s7 = peg$FAILED;
10410 if (peg$silentFails === 0) { peg$fail(peg$c224); }
10411 }
10412 if (s7 !== peg$FAILED) {
10413 s8 = peg$parse__();
10414 if (s8 !== peg$FAILED) {
10415 s9 = peg$parseStatement();
10416 if (s9 !== peg$FAILED) {
10417 peg$savedPos = s0;
10418 s1 = peg$c348(s5, s9);
10419 s0 = s1;
10420 } else {
10421 peg$currPos = s0;
10422 s0 = peg$FAILED;
10423 }
10424 } else {
10425 peg$currPos = s0;
10426 s0 = peg$FAILED;
10427 }
10428 } else {
10429 peg$currPos = s0;
10430 s0 = peg$FAILED;
10431 }
10432 } else {
10433 peg$currPos = s0;
10434 s0 = peg$FAILED;
10435 }
10436 } else {
10437 peg$currPos = s0;
10438 s0 = peg$FAILED;
10439 }
10440 } else {
10441 peg$currPos = s0;
10442 s0 = peg$FAILED;
10443 }
10444 } else {
10445 peg$currPos = s0;
10446 s0 = peg$FAILED;
10447 }
10448 } else {
10449 peg$currPos = s0;
10450 s0 = peg$FAILED;
10451 }
10452 } else {
10453 peg$currPos = s0;
10454 s0 = peg$FAILED;
10455 }
10456 }
10457
10458 return s0;
10459 }
10460
10461 function peg$parseIterationStatement() {
10462 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17;
10463
10464 s0 = peg$currPos;
10465 s1 = peg$parseDoToken();
10466 if (s1 !== peg$FAILED) {
10467 s2 = peg$parse__();
10468 if (s2 !== peg$FAILED) {
10469 s3 = peg$parseStatement();
10470 if (s3 !== peg$FAILED) {
10471 s4 = peg$parse__();
10472 if (s4 !== peg$FAILED) {
10473 s5 = peg$parseWhileToken();
10474 if (s5 !== peg$FAILED) {
10475 s6 = peg$parse__();
10476 if (s6 !== peg$FAILED) {
10477 if (input.charCodeAt(peg$currPos) === 40) {
10478 s7 = peg$c221;
10479 peg$currPos++;
10480 } else {
10481 s7 = peg$FAILED;
10482 if (peg$silentFails === 0) { peg$fail(peg$c222); }
10483 }
10484 if (s7 !== peg$FAILED) {
10485 s8 = peg$parse__();
10486 if (s8 !== peg$FAILED) {
10487 s9 = peg$parseExpression();
10488 if (s9 !== peg$FAILED) {
10489 s10 = peg$parse__();
10490 if (s10 !== peg$FAILED) {
10491 if (input.charCodeAt(peg$currPos) === 41) {
10492 s11 = peg$c223;
10493 peg$currPos++;
10494 } else {
10495 s11 = peg$FAILED;
10496 if (peg$silentFails === 0) { peg$fail(peg$c224); }
10497 }
10498 if (s11 !== peg$FAILED) {
10499 s12 = peg$parseEOS();
10500 if (s12 !== peg$FAILED) {
10501 peg$savedPos = s0;
10502 s1 = peg$c349(s3, s9);
10503 s0 = s1;
10504 } else {
10505 peg$currPos = s0;
10506 s0 = peg$FAILED;
10507 }
10508 } else {
10509 peg$currPos = s0;
10510 s0 = peg$FAILED;
10511 }
10512 } else {
10513 peg$currPos = s0;
10514 s0 = peg$FAILED;
10515 }
10516 } else {
10517 peg$currPos = s0;
10518 s0 = peg$FAILED;
10519 }
10520 } else {
10521 peg$currPos = s0;
10522 s0 = peg$FAILED;
10523 }
10524 } else {
10525 peg$currPos = s0;
10526 s0 = peg$FAILED;
10527 }
10528 } else {
10529 peg$currPos = s0;
10530 s0 = peg$FAILED;
10531 }
10532 } else {
10533 peg$currPos = s0;
10534 s0 = peg$FAILED;
10535 }
10536 } else {
10537 peg$currPos = s0;
10538 s0 = peg$FAILED;
10539 }
10540 } else {
10541 peg$currPos = s0;
10542 s0 = peg$FAILED;
10543 }
10544 } else {
10545 peg$currPos = s0;
10546 s0 = peg$FAILED;
10547 }
10548 } else {
10549 peg$currPos = s0;
10550 s0 = peg$FAILED;
10551 }
10552 if (s0 === peg$FAILED) {
10553 s0 = peg$currPos;
10554 s1 = peg$parseWhileToken();
10555 if (s1 !== peg$FAILED) {
10556 s2 = peg$parse__();
10557 if (s2 !== peg$FAILED) {
10558 if (input.charCodeAt(peg$currPos) === 40) {
10559 s3 = peg$c221;
10560 peg$currPos++;
10561 } else {
10562 s3 = peg$FAILED;
10563 if (peg$silentFails === 0) { peg$fail(peg$c222); }
10564 }
10565 if (s3 !== peg$FAILED) {
10566 s4 = peg$parse__();
10567 if (s4 !== peg$FAILED) {
10568 s5 = peg$parseExpression();
10569 if (s5 !== peg$FAILED) {
10570 s6 = peg$parse__();
10571 if (s6 !== peg$FAILED) {
10572 if (input.charCodeAt(peg$currPos) === 41) {
10573 s7 = peg$c223;
10574 peg$currPos++;
10575 } else {
10576 s7 = peg$FAILED;
10577 if (peg$silentFails === 0) { peg$fail(peg$c224); }
10578 }
10579 if (s7 !== peg$FAILED) {
10580 s8 = peg$parse__();
10581 if (s8 !== peg$FAILED) {
10582 s9 = peg$parseStatement();
10583 if (s9 !== peg$FAILED) {
10584 peg$savedPos = s0;
10585 s1 = peg$c350(s5, s9);
10586 s0 = s1;
10587 } else {
10588 peg$currPos = s0;
10589 s0 = peg$FAILED;
10590 }
10591 } else {
10592 peg$currPos = s0;
10593 s0 = peg$FAILED;
10594 }
10595 } else {
10596 peg$currPos = s0;
10597 s0 = peg$FAILED;
10598 }
10599 } else {
10600 peg$currPos = s0;
10601 s0 = peg$FAILED;
10602 }
10603 } else {
10604 peg$currPos = s0;
10605 s0 = peg$FAILED;
10606 }
10607 } else {
10608 peg$currPos = s0;
10609 s0 = peg$FAILED;
10610 }
10611 } else {
10612 peg$currPos = s0;
10613 s0 = peg$FAILED;
10614 }
10615 } else {
10616 peg$currPos = s0;
10617 s0 = peg$FAILED;
10618 }
10619 } else {
10620 peg$currPos = s0;
10621 s0 = peg$FAILED;
10622 }
10623 if (s0 === peg$FAILED) {
10624 s0 = peg$currPos;
10625 s1 = peg$parseForToken();
10626 if (s1 !== peg$FAILED) {
10627 s2 = peg$parse__();
10628 if (s2 !== peg$FAILED) {
10629 if (input.charCodeAt(peg$currPos) === 40) {
10630 s3 = peg$c221;
10631 peg$currPos++;
10632 } else {
10633 s3 = peg$FAILED;
10634 if (peg$silentFails === 0) { peg$fail(peg$c222); }
10635 }
10636 if (s3 !== peg$FAILED) {
10637 s4 = peg$parse__();
10638 if (s4 !== peg$FAILED) {
10639 s5 = peg$currPos;
10640 s6 = peg$parseExpressionNoIn();
10641 if (s6 !== peg$FAILED) {
10642 s7 = peg$parse__();
10643 if (s7 !== peg$FAILED) {
10644 s6 = [s6, s7];
10645 s5 = s6;
10646 } else {
10647 peg$currPos = s5;
10648 s5 = peg$FAILED;
10649 }
10650 } else {
10651 peg$currPos = s5;
10652 s5 = peg$FAILED;
10653 }
10654 if (s5 === peg$FAILED) {
10655 s5 = null;
10656 }
10657 if (s5 !== peg$FAILED) {
10658 if (input.charCodeAt(peg$currPos) === 59) {
10659 s6 = peg$c216;
10660 peg$currPos++;
10661 } else {
10662 s6 = peg$FAILED;
10663 if (peg$silentFails === 0) { peg$fail(peg$c217); }
10664 }
10665 if (s6 !== peg$FAILED) {
10666 s7 = peg$parse__();
10667 if (s7 !== peg$FAILED) {
10668 s8 = peg$currPos;
10669 s9 = peg$parseExpression();
10670 if (s9 !== peg$FAILED) {
10671 s10 = peg$parse__();
10672 if (s10 !== peg$FAILED) {
10673 s9 = [s9, s10];
10674 s8 = s9;
10675 } else {
10676 peg$currPos = s8;
10677 s8 = peg$FAILED;
10678 }
10679 } else {
10680 peg$currPos = s8;
10681 s8 = peg$FAILED;
10682 }
10683 if (s8 === peg$FAILED) {
10684 s8 = null;
10685 }
10686 if (s8 !== peg$FAILED) {
10687 if (input.charCodeAt(peg$currPos) === 59) {
10688 s9 = peg$c216;
10689 peg$currPos++;
10690 } else {
10691 s9 = peg$FAILED;
10692 if (peg$silentFails === 0) { peg$fail(peg$c217); }
10693 }
10694 if (s9 !== peg$FAILED) {
10695 s10 = peg$parse__();
10696 if (s10 !== peg$FAILED) {
10697 s11 = peg$currPos;
10698 s12 = peg$parseExpression();
10699 if (s12 !== peg$FAILED) {
10700 s13 = peg$parse__();
10701 if (s13 !== peg$FAILED) {
10702 s12 = [s12, s13];
10703 s11 = s12;
10704 } else {
10705 peg$currPos = s11;
10706 s11 = peg$FAILED;
10707 }
10708 } else {
10709 peg$currPos = s11;
10710 s11 = peg$FAILED;
10711 }
10712 if (s11 === peg$FAILED) {
10713 s11 = null;
10714 }
10715 if (s11 !== peg$FAILED) {
10716 if (input.charCodeAt(peg$currPos) === 41) {
10717 s12 = peg$c223;
10718 peg$currPos++;
10719 } else {
10720 s12 = peg$FAILED;
10721 if (peg$silentFails === 0) { peg$fail(peg$c224); }
10722 }
10723 if (s12 !== peg$FAILED) {
10724 s13 = peg$parse__();
10725 if (s13 !== peg$FAILED) {
10726 s14 = peg$parseStatement();
10727 if (s14 !== peg$FAILED) {
10728 peg$savedPos = s0;
10729 s1 = peg$c351(s5, s8, s11, s14);
10730 s0 = s1;
10731 } else {
10732 peg$currPos = s0;
10733 s0 = peg$FAILED;
10734 }
10735 } else {
10736 peg$currPos = s0;
10737 s0 = peg$FAILED;
10738 }
10739 } else {
10740 peg$currPos = s0;
10741 s0 = peg$FAILED;
10742 }
10743 } else {
10744 peg$currPos = s0;
10745 s0 = peg$FAILED;
10746 }
10747 } else {
10748 peg$currPos = s0;
10749 s0 = peg$FAILED;
10750 }
10751 } else {
10752 peg$currPos = s0;
10753 s0 = peg$FAILED;
10754 }
10755 } else {
10756 peg$currPos = s0;
10757 s0 = peg$FAILED;
10758 }
10759 } else {
10760 peg$currPos = s0;
10761 s0 = peg$FAILED;
10762 }
10763 } else {
10764 peg$currPos = s0;
10765 s0 = peg$FAILED;
10766 }
10767 } else {
10768 peg$currPos = s0;
10769 s0 = peg$FAILED;
10770 }
10771 } else {
10772 peg$currPos = s0;
10773 s0 = peg$FAILED;
10774 }
10775 } else {
10776 peg$currPos = s0;
10777 s0 = peg$FAILED;
10778 }
10779 } else {
10780 peg$currPos = s0;
10781 s0 = peg$FAILED;
10782 }
10783 } else {
10784 peg$currPos = s0;
10785 s0 = peg$FAILED;
10786 }
10787 if (s0 === peg$FAILED) {
10788 s0 = peg$currPos;
10789 s1 = peg$parseForToken();
10790 if (s1 !== peg$FAILED) {
10791 s2 = peg$parse__();
10792 if (s2 !== peg$FAILED) {
10793 if (input.charCodeAt(peg$currPos) === 40) {
10794 s3 = peg$c221;
10795 peg$currPos++;
10796 } else {
10797 s3 = peg$FAILED;
10798 if (peg$silentFails === 0) { peg$fail(peg$c222); }
10799 }
10800 if (s3 !== peg$FAILED) {
10801 s4 = peg$parse__();
10802 if (s4 !== peg$FAILED) {
10803 s5 = peg$parseVarToken();
10804 if (s5 !== peg$FAILED) {
10805 s6 = peg$parse__();
10806 if (s6 !== peg$FAILED) {
10807 s7 = peg$parseVariableDeclarationListNoIn();
10808 if (s7 !== peg$FAILED) {
10809 s8 = peg$parse__();
10810 if (s8 !== peg$FAILED) {
10811 if (input.charCodeAt(peg$currPos) === 59) {
10812 s9 = peg$c216;
10813 peg$currPos++;
10814 } else {
10815 s9 = peg$FAILED;
10816 if (peg$silentFails === 0) { peg$fail(peg$c217); }
10817 }
10818 if (s9 !== peg$FAILED) {
10819 s10 = peg$parse__();
10820 if (s10 !== peg$FAILED) {
10821 s11 = peg$currPos;
10822 s12 = peg$parseExpression();
10823 if (s12 !== peg$FAILED) {
10824 s13 = peg$parse__();
10825 if (s13 !== peg$FAILED) {
10826 s12 = [s12, s13];
10827 s11 = s12;
10828 } else {
10829 peg$currPos = s11;
10830 s11 = peg$FAILED;
10831 }
10832 } else {
10833 peg$currPos = s11;
10834 s11 = peg$FAILED;
10835 }
10836 if (s11 === peg$FAILED) {
10837 s11 = null;
10838 }
10839 if (s11 !== peg$FAILED) {
10840 if (input.charCodeAt(peg$currPos) === 59) {
10841 s12 = peg$c216;
10842 peg$currPos++;
10843 } else {
10844 s12 = peg$FAILED;
10845 if (peg$silentFails === 0) { peg$fail(peg$c217); }
10846 }
10847 if (s12 !== peg$FAILED) {
10848 s13 = peg$parse__();
10849 if (s13 !== peg$FAILED) {
10850 s14 = peg$currPos;
10851 s15 = peg$parseExpression();
10852 if (s15 !== peg$FAILED) {
10853 s16 = peg$parse__();
10854 if (s16 !== peg$FAILED) {
10855 s15 = [s15, s16];
10856 s14 = s15;
10857 } else {
10858 peg$currPos = s14;
10859 s14 = peg$FAILED;
10860 }
10861 } else {
10862 peg$currPos = s14;
10863 s14 = peg$FAILED;
10864 }
10865 if (s14 === peg$FAILED) {
10866 s14 = null;
10867 }
10868 if (s14 !== peg$FAILED) {
10869 if (input.charCodeAt(peg$currPos) === 41) {
10870 s15 = peg$c223;
10871 peg$currPos++;
10872 } else {
10873 s15 = peg$FAILED;
10874 if (peg$silentFails === 0) { peg$fail(peg$c224); }
10875 }
10876 if (s15 !== peg$FAILED) {
10877 s16 = peg$parse__();
10878 if (s16 !== peg$FAILED) {
10879 s17 = peg$parseStatement();
10880 if (s17 !== peg$FAILED) {
10881 peg$savedPos = s0;
10882 s1 = peg$c352(s7, s11, s14, s17);
10883 s0 = s1;
10884 } else {
10885 peg$currPos = s0;
10886 s0 = peg$FAILED;
10887 }
10888 } else {
10889 peg$currPos = s0;
10890 s0 = peg$FAILED;
10891 }
10892 } else {
10893 peg$currPos = s0;
10894 s0 = peg$FAILED;
10895 }
10896 } else {
10897 peg$currPos = s0;
10898 s0 = peg$FAILED;
10899 }
10900 } else {
10901 peg$currPos = s0;
10902 s0 = peg$FAILED;
10903 }
10904 } else {
10905 peg$currPos = s0;
10906 s0 = peg$FAILED;
10907 }
10908 } else {
10909 peg$currPos = s0;
10910 s0 = peg$FAILED;
10911 }
10912 } else {
10913 peg$currPos = s0;
10914 s0 = peg$FAILED;
10915 }
10916 } else {
10917 peg$currPos = s0;
10918 s0 = peg$FAILED;
10919 }
10920 } else {
10921 peg$currPos = s0;
10922 s0 = peg$FAILED;
10923 }
10924 } else {
10925 peg$currPos = s0;
10926 s0 = peg$FAILED;
10927 }
10928 } else {
10929 peg$currPos = s0;
10930 s0 = peg$FAILED;
10931 }
10932 } else {
10933 peg$currPos = s0;
10934 s0 = peg$FAILED;
10935 }
10936 } else {
10937 peg$currPos = s0;
10938 s0 = peg$FAILED;
10939 }
10940 } else {
10941 peg$currPos = s0;
10942 s0 = peg$FAILED;
10943 }
10944 } else {
10945 peg$currPos = s0;
10946 s0 = peg$FAILED;
10947 }
10948 } else {
10949 peg$currPos = s0;
10950 s0 = peg$FAILED;
10951 }
10952 if (s0 === peg$FAILED) {
10953 s0 = peg$currPos;
10954 s1 = peg$parseForToken();
10955 if (s1 !== peg$FAILED) {
10956 s2 = peg$parse__();
10957 if (s2 !== peg$FAILED) {
10958 if (input.charCodeAt(peg$currPos) === 40) {
10959 s3 = peg$c221;
10960 peg$currPos++;
10961 } else {
10962 s3 = peg$FAILED;
10963 if (peg$silentFails === 0) { peg$fail(peg$c222); }
10964 }
10965 if (s3 !== peg$FAILED) {
10966 s4 = peg$parse__();
10967 if (s4 !== peg$FAILED) {
10968 s5 = peg$parseLeftHandSideExpression();
10969 if (s5 !== peg$FAILED) {
10970 s6 = peg$parse__();
10971 if (s6 !== peg$FAILED) {
10972 s7 = peg$parseInToken();
10973 if (s7 !== peg$FAILED) {
10974 s8 = peg$parse__();
10975 if (s8 !== peg$FAILED) {
10976 s9 = peg$parseExpression();
10977 if (s9 !== peg$FAILED) {
10978 s10 = peg$parse__();
10979 if (s10 !== peg$FAILED) {
10980 if (input.charCodeAt(peg$currPos) === 41) {
10981 s11 = peg$c223;
10982 peg$currPos++;
10983 } else {
10984 s11 = peg$FAILED;
10985 if (peg$silentFails === 0) { peg$fail(peg$c224); }
10986 }
10987 if (s11 !== peg$FAILED) {
10988 s12 = peg$parse__();
10989 if (s12 !== peg$FAILED) {
10990 s13 = peg$parseStatement();
10991 if (s13 !== peg$FAILED) {
10992 peg$savedPos = s0;
10993 s1 = peg$c353(s5, s9, s13);
10994 s0 = s1;
10995 } else {
10996 peg$currPos = s0;
10997 s0 = peg$FAILED;
10998 }
10999 } else {
11000 peg$currPos = s0;
11001 s0 = peg$FAILED;
11002 }
11003 } else {
11004 peg$currPos = s0;
11005 s0 = peg$FAILED;
11006 }
11007 } else {
11008 peg$currPos = s0;
11009 s0 = peg$FAILED;
11010 }
11011 } else {
11012 peg$currPos = s0;
11013 s0 = peg$FAILED;
11014 }
11015 } else {
11016 peg$currPos = s0;
11017 s0 = peg$FAILED;
11018 }
11019 } else {
11020 peg$currPos = s0;
11021 s0 = peg$FAILED;
11022 }
11023 } else {
11024 peg$currPos = s0;
11025 s0 = peg$FAILED;
11026 }
11027 } else {
11028 peg$currPos = s0;
11029 s0 = peg$FAILED;
11030 }
11031 } else {
11032 peg$currPos = s0;
11033 s0 = peg$FAILED;
11034 }
11035 } else {
11036 peg$currPos = s0;
11037 s0 = peg$FAILED;
11038 }
11039 } else {
11040 peg$currPos = s0;
11041 s0 = peg$FAILED;
11042 }
11043 } else {
11044 peg$currPos = s0;
11045 s0 = peg$FAILED;
11046 }
11047 if (s0 === peg$FAILED) {
11048 s0 = peg$currPos;
11049 s1 = peg$parseForToken();
11050 if (s1 !== peg$FAILED) {
11051 s2 = peg$parse__();
11052 if (s2 !== peg$FAILED) {
11053 if (input.charCodeAt(peg$currPos) === 40) {
11054 s3 = peg$c221;
11055 peg$currPos++;
11056 } else {
11057 s3 = peg$FAILED;
11058 if (peg$silentFails === 0) { peg$fail(peg$c222); }
11059 }
11060 if (s3 !== peg$FAILED) {
11061 s4 = peg$parse__();
11062 if (s4 !== peg$FAILED) {
11063 s5 = peg$parseVarToken();
11064 if (s5 !== peg$FAILED) {
11065 s6 = peg$parse__();
11066 if (s6 !== peg$FAILED) {
11067 s7 = peg$parseVariableDeclarationListNoIn();
11068 if (s7 !== peg$FAILED) {
11069 s8 = peg$parse__();
11070 if (s8 !== peg$FAILED) {
11071 s9 = peg$parseInToken();
11072 if (s9 !== peg$FAILED) {
11073 s10 = peg$parse__();
11074 if (s10 !== peg$FAILED) {
11075 s11 = peg$parseExpression();
11076 if (s11 !== peg$FAILED) {
11077 s12 = peg$parse__();
11078 if (s12 !== peg$FAILED) {
11079 if (input.charCodeAt(peg$currPos) === 41) {
11080 s13 = peg$c223;
11081 peg$currPos++;
11082 } else {
11083 s13 = peg$FAILED;
11084 if (peg$silentFails === 0) { peg$fail(peg$c224); }
11085 }
11086 if (s13 !== peg$FAILED) {
11087 s14 = peg$parse__();
11088 if (s14 !== peg$FAILED) {
11089 s15 = peg$parseStatement();
11090 if (s15 !== peg$FAILED) {
11091 peg$savedPos = s0;
11092 s1 = peg$c354(s7, s11, s15);
11093 s0 = s1;
11094 } else {
11095 peg$currPos = s0;
11096 s0 = peg$FAILED;
11097 }
11098 } else {
11099 peg$currPos = s0;
11100 s0 = peg$FAILED;
11101 }
11102 } else {
11103 peg$currPos = s0;
11104 s0 = peg$FAILED;
11105 }
11106 } else {
11107 peg$currPos = s0;
11108 s0 = peg$FAILED;
11109 }
11110 } else {
11111 peg$currPos = s0;
11112 s0 = peg$FAILED;
11113 }
11114 } else {
11115 peg$currPos = s0;
11116 s0 = peg$FAILED;
11117 }
11118 } else {
11119 peg$currPos = s0;
11120 s0 = peg$FAILED;
11121 }
11122 } else {
11123 peg$currPos = s0;
11124 s0 = peg$FAILED;
11125 }
11126 } else {
11127 peg$currPos = s0;
11128 s0 = peg$FAILED;
11129 }
11130 } else {
11131 peg$currPos = s0;
11132 s0 = peg$FAILED;
11133 }
11134 } else {
11135 peg$currPos = s0;
11136 s0 = peg$FAILED;
11137 }
11138 } else {
11139 peg$currPos = s0;
11140 s0 = peg$FAILED;
11141 }
11142 } else {
11143 peg$currPos = s0;
11144 s0 = peg$FAILED;
11145 }
11146 } else {
11147 peg$currPos = s0;
11148 s0 = peg$FAILED;
11149 }
11150 } else {
11151 peg$currPos = s0;
11152 s0 = peg$FAILED;
11153 }
11154 }
11155 }
11156 }
11157 }
11158 }
11159
11160 return s0;
11161 }
11162
11163 function peg$parseContinueStatement() {
11164 var s0, s1, s2, s3, s4;
11165
11166 s0 = peg$currPos;
11167 s1 = peg$parseContinueToken();
11168 if (s1 !== peg$FAILED) {
11169 s2 = peg$parseEOS();
11170 if (s2 !== peg$FAILED) {
11171 peg$savedPos = s0;
11172 s1 = peg$c355();
11173 s0 = s1;
11174 } else {
11175 peg$currPos = s0;
11176 s0 = peg$FAILED;
11177 }
11178 } else {
11179 peg$currPos = s0;
11180 s0 = peg$FAILED;
11181 }
11182 if (s0 === peg$FAILED) {
11183 s0 = peg$currPos;
11184 s1 = peg$parseContinueToken();
11185 if (s1 !== peg$FAILED) {
11186 s2 = peg$parse_();
11187 if (s2 !== peg$FAILED) {
11188 s3 = peg$parseIdentifier();
11189 if (s3 !== peg$FAILED) {
11190 s4 = peg$parseEOS();
11191 if (s4 !== peg$FAILED) {
11192 peg$savedPos = s0;
11193 s1 = peg$c356(s3);
11194 s0 = s1;
11195 } else {
11196 peg$currPos = s0;
11197 s0 = peg$FAILED;
11198 }
11199 } else {
11200 peg$currPos = s0;
11201 s0 = peg$FAILED;
11202 }
11203 } else {
11204 peg$currPos = s0;
11205 s0 = peg$FAILED;
11206 }
11207 } else {
11208 peg$currPos = s0;
11209 s0 = peg$FAILED;
11210 }
11211 }
11212
11213 return s0;
11214 }
11215
11216 function peg$parseBreakStatement() {
11217 var s0, s1, s2, s3, s4;
11218
11219 s0 = peg$currPos;
11220 s1 = peg$parseBreakToken();
11221 if (s1 !== peg$FAILED) {
11222 s2 = peg$parseEOS();
11223 if (s2 !== peg$FAILED) {
11224 peg$savedPos = s0;
11225 s1 = peg$c357();
11226 s0 = s1;
11227 } else {
11228 peg$currPos = s0;
11229 s0 = peg$FAILED;
11230 }
11231 } else {
11232 peg$currPos = s0;
11233 s0 = peg$FAILED;
11234 }
11235 if (s0 === peg$FAILED) {
11236 s0 = peg$currPos;
11237 s1 = peg$parseBreakToken();
11238 if (s1 !== peg$FAILED) {
11239 s2 = peg$parse_();
11240 if (s2 !== peg$FAILED) {
11241 s3 = peg$parseIdentifier();
11242 if (s3 !== peg$FAILED) {
11243 s4 = peg$parseEOS();
11244 if (s4 !== peg$FAILED) {
11245 peg$savedPos = s0;
11246 s1 = peg$c358(s3);
11247 s0 = s1;
11248 } else {
11249 peg$currPos = s0;
11250 s0 = peg$FAILED;
11251 }
11252 } else {
11253 peg$currPos = s0;
11254 s0 = peg$FAILED;
11255 }
11256 } else {
11257 peg$currPos = s0;
11258 s0 = peg$FAILED;
11259 }
11260 } else {
11261 peg$currPos = s0;
11262 s0 = peg$FAILED;
11263 }
11264 }
11265
11266 return s0;
11267 }
11268
11269 function peg$parseReturnStatement() {
11270 var s0, s1, s2, s3, s4;
11271
11272 s0 = peg$currPos;
11273 s1 = peg$parseReturnToken();
11274 if (s1 !== peg$FAILED) {
11275 s2 = peg$parseEOS();
11276 if (s2 !== peg$FAILED) {
11277 peg$savedPos = s0;
11278 s1 = peg$c359();
11279 s0 = s1;
11280 } else {
11281 peg$currPos = s0;
11282 s0 = peg$FAILED;
11283 }
11284 } else {
11285 peg$currPos = s0;
11286 s0 = peg$FAILED;
11287 }
11288 if (s0 === peg$FAILED) {
11289 s0 = peg$currPos;
11290 s1 = peg$parseReturnToken();
11291 if (s1 !== peg$FAILED) {
11292 s2 = peg$parse_();
11293 if (s2 !== peg$FAILED) {
11294 s3 = peg$parseExpression();
11295 if (s3 !== peg$FAILED) {
11296 s4 = peg$parseEOS();
11297 if (s4 !== peg$FAILED) {
11298 peg$savedPos = s0;
11299 s1 = peg$c360(s3);
11300 s0 = s1;
11301 } else {
11302 peg$currPos = s0;
11303 s0 = peg$FAILED;
11304 }
11305 } else {
11306 peg$currPos = s0;
11307 s0 = peg$FAILED;
11308 }
11309 } else {
11310 peg$currPos = s0;
11311 s0 = peg$FAILED;
11312 }
11313 } else {
11314 peg$currPos = s0;
11315 s0 = peg$FAILED;
11316 }
11317 }
11318
11319 return s0;
11320 }
11321
11322 function peg$parseWithStatement() {
11323 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
11324
11325 s0 = peg$currPos;
11326 s1 = peg$parseWithToken();
11327 if (s1 !== peg$FAILED) {
11328 s2 = peg$parse__();
11329 if (s2 !== peg$FAILED) {
11330 if (input.charCodeAt(peg$currPos) === 40) {
11331 s3 = peg$c221;
11332 peg$currPos++;
11333 } else {
11334 s3 = peg$FAILED;
11335 if (peg$silentFails === 0) { peg$fail(peg$c222); }
11336 }
11337 if (s3 !== peg$FAILED) {
11338 s4 = peg$parse__();
11339 if (s4 !== peg$FAILED) {
11340 s5 = peg$parseExpression();
11341 if (s5 !== peg$FAILED) {
11342 s6 = peg$parse__();
11343 if (s6 !== peg$FAILED) {
11344 if (input.charCodeAt(peg$currPos) === 41) {
11345 s7 = peg$c223;
11346 peg$currPos++;
11347 } else {
11348 s7 = peg$FAILED;
11349 if (peg$silentFails === 0) { peg$fail(peg$c224); }
11350 }
11351 if (s7 !== peg$FAILED) {
11352 s8 = peg$parse__();
11353 if (s8 !== peg$FAILED) {
11354 s9 = peg$parseStatement();
11355 if (s9 !== peg$FAILED) {
11356 peg$savedPos = s0;
11357 s1 = peg$c361(s5, s9);
11358 s0 = s1;
11359 } else {
11360 peg$currPos = s0;
11361 s0 = peg$FAILED;
11362 }
11363 } else {
11364 peg$currPos = s0;
11365 s0 = peg$FAILED;
11366 }
11367 } else {
11368 peg$currPos = s0;
11369 s0 = peg$FAILED;
11370 }
11371 } else {
11372 peg$currPos = s0;
11373 s0 = peg$FAILED;
11374 }
11375 } else {
11376 peg$currPos = s0;
11377 s0 = peg$FAILED;
11378 }
11379 } else {
11380 peg$currPos = s0;
11381 s0 = peg$FAILED;
11382 }
11383 } else {
11384 peg$currPos = s0;
11385 s0 = peg$FAILED;
11386 }
11387 } else {
11388 peg$currPos = s0;
11389 s0 = peg$FAILED;
11390 }
11391 } else {
11392 peg$currPos = s0;
11393 s0 = peg$FAILED;
11394 }
11395
11396 return s0;
11397 }
11398
11399 function peg$parseSwitchStatement() {
11400 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
11401
11402 s0 = peg$currPos;
11403 s1 = peg$parseSwitchToken();
11404 if (s1 !== peg$FAILED) {
11405 s2 = peg$parse__();
11406 if (s2 !== peg$FAILED) {
11407 if (input.charCodeAt(peg$currPos) === 40) {
11408 s3 = peg$c221;
11409 peg$currPos++;
11410 } else {
11411 s3 = peg$FAILED;
11412 if (peg$silentFails === 0) { peg$fail(peg$c222); }
11413 }
11414 if (s3 !== peg$FAILED) {
11415 s4 = peg$parse__();
11416 if (s4 !== peg$FAILED) {
11417 s5 = peg$parseExpression();
11418 if (s5 !== peg$FAILED) {
11419 s6 = peg$parse__();
11420 if (s6 !== peg$FAILED) {
11421 if (input.charCodeAt(peg$currPos) === 41) {
11422 s7 = peg$c223;
11423 peg$currPos++;
11424 } else {
11425 s7 = peg$FAILED;
11426 if (peg$silentFails === 0) { peg$fail(peg$c224); }
11427 }
11428 if (s7 !== peg$FAILED) {
11429 s8 = peg$parse__();
11430 if (s8 !== peg$FAILED) {
11431 s9 = peg$parseCaseBlock();
11432 if (s9 !== peg$FAILED) {
11433 peg$savedPos = s0;
11434 s1 = peg$c362(s5, s9);
11435 s0 = s1;
11436 } else {
11437 peg$currPos = s0;
11438 s0 = peg$FAILED;
11439 }
11440 } else {
11441 peg$currPos = s0;
11442 s0 = peg$FAILED;
11443 }
11444 } else {
11445 peg$currPos = s0;
11446 s0 = peg$FAILED;
11447 }
11448 } else {
11449 peg$currPos = s0;
11450 s0 = peg$FAILED;
11451 }
11452 } else {
11453 peg$currPos = s0;
11454 s0 = peg$FAILED;
11455 }
11456 } else {
11457 peg$currPos = s0;
11458 s0 = peg$FAILED;
11459 }
11460 } else {
11461 peg$currPos = s0;
11462 s0 = peg$FAILED;
11463 }
11464 } else {
11465 peg$currPos = s0;
11466 s0 = peg$FAILED;
11467 }
11468 } else {
11469 peg$currPos = s0;
11470 s0 = peg$FAILED;
11471 }
11472
11473 return s0;
11474 }
11475
11476 function peg$parseCaseBlock() {
11477 var s0, s1, s2, s3, s4, s5, s6, s7, s8;
11478
11479 s0 = peg$currPos;
11480 if (input.charCodeAt(peg$currPos) === 123) {
11481 s1 = peg$c339;
11482 peg$currPos++;
11483 } else {
11484 s1 = peg$FAILED;
11485 if (peg$silentFails === 0) { peg$fail(peg$c340); }
11486 }
11487 if (s1 !== peg$FAILED) {
11488 s2 = peg$parse__();
11489 if (s2 !== peg$FAILED) {
11490 s3 = peg$currPos;
11491 s4 = peg$parseCaseClauses();
11492 if (s4 !== peg$FAILED) {
11493 s5 = peg$parse__();
11494 if (s5 !== peg$FAILED) {
11495 s4 = [s4, s5];
11496 s3 = s4;
11497 } else {
11498 peg$currPos = s3;
11499 s3 = peg$FAILED;
11500 }
11501 } else {
11502 peg$currPos = s3;
11503 s3 = peg$FAILED;
11504 }
11505 if (s3 === peg$FAILED) {
11506 s3 = null;
11507 }
11508 if (s3 !== peg$FAILED) {
11509 if (input.charCodeAt(peg$currPos) === 125) {
11510 s4 = peg$c218;
11511 peg$currPos++;
11512 } else {
11513 s4 = peg$FAILED;
11514 if (peg$silentFails === 0) { peg$fail(peg$c219); }
11515 }
11516 if (s4 !== peg$FAILED) {
11517 peg$savedPos = s0;
11518 s1 = peg$c363(s3);
11519 s0 = s1;
11520 } else {
11521 peg$currPos = s0;
11522 s0 = peg$FAILED;
11523 }
11524 } else {
11525 peg$currPos = s0;
11526 s0 = peg$FAILED;
11527 }
11528 } else {
11529 peg$currPos = s0;
11530 s0 = peg$FAILED;
11531 }
11532 } else {
11533 peg$currPos = s0;
11534 s0 = peg$FAILED;
11535 }
11536 if (s0 === peg$FAILED) {
11537 s0 = peg$currPos;
11538 if (input.charCodeAt(peg$currPos) === 123) {
11539 s1 = peg$c339;
11540 peg$currPos++;
11541 } else {
11542 s1 = peg$FAILED;
11543 if (peg$silentFails === 0) { peg$fail(peg$c340); }
11544 }
11545 if (s1 !== peg$FAILED) {
11546 s2 = peg$parse__();
11547 if (s2 !== peg$FAILED) {
11548 s3 = peg$currPos;
11549 s4 = peg$parseCaseClauses();
11550 if (s4 !== peg$FAILED) {
11551 s5 = peg$parse__();
11552 if (s5 !== peg$FAILED) {
11553 s4 = [s4, s5];
11554 s3 = s4;
11555 } else {
11556 peg$currPos = s3;
11557 s3 = peg$FAILED;
11558 }
11559 } else {
11560 peg$currPos = s3;
11561 s3 = peg$FAILED;
11562 }
11563 if (s3 === peg$FAILED) {
11564 s3 = null;
11565 }
11566 if (s3 !== peg$FAILED) {
11567 s4 = peg$parseDefaultClause();
11568 if (s4 !== peg$FAILED) {
11569 s5 = peg$parse__();
11570 if (s5 !== peg$FAILED) {
11571 s6 = peg$currPos;
11572 s7 = peg$parseCaseClauses();
11573 if (s7 !== peg$FAILED) {
11574 s8 = peg$parse__();
11575 if (s8 !== peg$FAILED) {
11576 s7 = [s7, s8];
11577 s6 = s7;
11578 } else {
11579 peg$currPos = s6;
11580 s6 = peg$FAILED;
11581 }
11582 } else {
11583 peg$currPos = s6;
11584 s6 = peg$FAILED;
11585 }
11586 if (s6 === peg$FAILED) {
11587 s6 = null;
11588 }
11589 if (s6 !== peg$FAILED) {
11590 if (input.charCodeAt(peg$currPos) === 125) {
11591 s7 = peg$c218;
11592 peg$currPos++;
11593 } else {
11594 s7 = peg$FAILED;
11595 if (peg$silentFails === 0) { peg$fail(peg$c219); }
11596 }
11597 if (s7 !== peg$FAILED) {
11598 peg$savedPos = s0;
11599 s1 = peg$c364(s3, s4, s6);
11600 s0 = s1;
11601 } else {
11602 peg$currPos = s0;
11603 s0 = peg$FAILED;
11604 }
11605 } else {
11606 peg$currPos = s0;
11607 s0 = peg$FAILED;
11608 }
11609 } else {
11610 peg$currPos = s0;
11611 s0 = peg$FAILED;
11612 }
11613 } else {
11614 peg$currPos = s0;
11615 s0 = peg$FAILED;
11616 }
11617 } else {
11618 peg$currPos = s0;
11619 s0 = peg$FAILED;
11620 }
11621 } else {
11622 peg$currPos = s0;
11623 s0 = peg$FAILED;
11624 }
11625 } else {
11626 peg$currPos = s0;
11627 s0 = peg$FAILED;
11628 }
11629 }
11630
11631 return s0;
11632 }
11633
11634 function peg$parseCaseClauses() {
11635 var s0, s1, s2, s3, s4, s5;
11636
11637 s0 = peg$currPos;
11638 s1 = peg$parseCaseClause();
11639 if (s1 !== peg$FAILED) {
11640 s2 = [];
11641 s3 = peg$currPos;
11642 s4 = peg$parse__();
11643 if (s4 !== peg$FAILED) {
11644 s5 = peg$parseCaseClause();
11645 if (s5 !== peg$FAILED) {
11646 s4 = [s4, s5];
11647 s3 = s4;
11648 } else {
11649 peg$currPos = s3;
11650 s3 = peg$FAILED;
11651 }
11652 } else {
11653 peg$currPos = s3;
11654 s3 = peg$FAILED;
11655 }
11656 while (s3 !== peg$FAILED) {
11657 s2.push(s3);
11658 s3 = peg$currPos;
11659 s4 = peg$parse__();
11660 if (s4 !== peg$FAILED) {
11661 s5 = peg$parseCaseClause();
11662 if (s5 !== peg$FAILED) {
11663 s4 = [s4, s5];
11664 s3 = s4;
11665 } else {
11666 peg$currPos = s3;
11667 s3 = peg$FAILED;
11668 }
11669 } else {
11670 peg$currPos = s3;
11671 s3 = peg$FAILED;
11672 }
11673 }
11674 if (s2 !== peg$FAILED) {
11675 peg$savedPos = s0;
11676 s1 = peg$c342(s1, s2);
11677 s0 = s1;
11678 } else {
11679 peg$currPos = s0;
11680 s0 = peg$FAILED;
11681 }
11682 } else {
11683 peg$currPos = s0;
11684 s0 = peg$FAILED;
11685 }
11686
11687 return s0;
11688 }
11689
11690 function peg$parseCaseClause() {
11691 var s0, s1, s2, s3, s4, s5, s6, s7, s8;
11692
11693 s0 = peg$currPos;
11694 s1 = peg$parseCaseToken();
11695 if (s1 !== peg$FAILED) {
11696 s2 = peg$parse__();
11697 if (s2 !== peg$FAILED) {
11698 s3 = peg$parseExpression();
11699 if (s3 !== peg$FAILED) {
11700 s4 = peg$parse__();
11701 if (s4 !== peg$FAILED) {
11702 if (input.charCodeAt(peg$currPos) === 58) {
11703 s5 = peg$c311;
11704 peg$currPos++;
11705 } else {
11706 s5 = peg$FAILED;
11707 if (peg$silentFails === 0) { peg$fail(peg$c312); }
11708 }
11709 if (s5 !== peg$FAILED) {
11710 s6 = peg$currPos;
11711 s7 = peg$parse__();
11712 if (s7 !== peg$FAILED) {
11713 s8 = peg$parseStatementList();
11714 if (s8 !== peg$FAILED) {
11715 s7 = [s7, s8];
11716 s6 = s7;
11717 } else {
11718 peg$currPos = s6;
11719 s6 = peg$FAILED;
11720 }
11721 } else {
11722 peg$currPos = s6;
11723 s6 = peg$FAILED;
11724 }
11725 if (s6 === peg$FAILED) {
11726 s6 = null;
11727 }
11728 if (s6 !== peg$FAILED) {
11729 peg$savedPos = s0;
11730 s1 = peg$c365(s3, s6);
11731 s0 = s1;
11732 } else {
11733 peg$currPos = s0;
11734 s0 = peg$FAILED;
11735 }
11736 } else {
11737 peg$currPos = s0;
11738 s0 = peg$FAILED;
11739 }
11740 } else {
11741 peg$currPos = s0;
11742 s0 = peg$FAILED;
11743 }
11744 } else {
11745 peg$currPos = s0;
11746 s0 = peg$FAILED;
11747 }
11748 } else {
11749 peg$currPos = s0;
11750 s0 = peg$FAILED;
11751 }
11752 } else {
11753 peg$currPos = s0;
11754 s0 = peg$FAILED;
11755 }
11756
11757 return s0;
11758 }
11759
11760 function peg$parseDefaultClause() {
11761 var s0, s1, s2, s3, s4, s5, s6;
11762
11763 s0 = peg$currPos;
11764 s1 = peg$parseDefaultToken();
11765 if (s1 !== peg$FAILED) {
11766 s2 = peg$parse__();
11767 if (s2 !== peg$FAILED) {
11768 if (input.charCodeAt(peg$currPos) === 58) {
11769 s3 = peg$c311;
11770 peg$currPos++;
11771 } else {
11772 s3 = peg$FAILED;
11773 if (peg$silentFails === 0) { peg$fail(peg$c312); }
11774 }
11775 if (s3 !== peg$FAILED) {
11776 s4 = peg$currPos;
11777 s5 = peg$parse__();
11778 if (s5 !== peg$FAILED) {
11779 s6 = peg$parseStatementList();
11780 if (s6 !== peg$FAILED) {
11781 s5 = [s5, s6];
11782 s4 = s5;
11783 } else {
11784 peg$currPos = s4;
11785 s4 = peg$FAILED;
11786 }
11787 } else {
11788 peg$currPos = s4;
11789 s4 = peg$FAILED;
11790 }
11791 if (s4 === peg$FAILED) {
11792 s4 = null;
11793 }
11794 if (s4 !== peg$FAILED) {
11795 peg$savedPos = s0;
11796 s1 = peg$c366(s4);
11797 s0 = s1;
11798 } else {
11799 peg$currPos = s0;
11800 s0 = peg$FAILED;
11801 }
11802 } else {
11803 peg$currPos = s0;
11804 s0 = peg$FAILED;
11805 }
11806 } else {
11807 peg$currPos = s0;
11808 s0 = peg$FAILED;
11809 }
11810 } else {
11811 peg$currPos = s0;
11812 s0 = peg$FAILED;
11813 }
11814
11815 return s0;
11816 }
11817
11818 function peg$parseLabelledStatement() {
11819 var s0, s1, s2, s3, s4, s5;
11820
11821 s0 = peg$currPos;
11822 s1 = peg$parseIdentifier();
11823 if (s1 !== peg$FAILED) {
11824 s2 = peg$parse__();
11825 if (s2 !== peg$FAILED) {
11826 if (input.charCodeAt(peg$currPos) === 58) {
11827 s3 = peg$c311;
11828 peg$currPos++;
11829 } else {
11830 s3 = peg$FAILED;
11831 if (peg$silentFails === 0) { peg$fail(peg$c312); }
11832 }
11833 if (s3 !== peg$FAILED) {
11834 s4 = peg$parse__();
11835 if (s4 !== peg$FAILED) {
11836 s5 = peg$parseStatement();
11837 if (s5 !== peg$FAILED) {
11838 peg$savedPos = s0;
11839 s1 = peg$c367(s1, s5);
11840 s0 = s1;
11841 } else {
11842 peg$currPos = s0;
11843 s0 = peg$FAILED;
11844 }
11845 } else {
11846 peg$currPos = s0;
11847 s0 = peg$FAILED;
11848 }
11849 } else {
11850 peg$currPos = s0;
11851 s0 = peg$FAILED;
11852 }
11853 } else {
11854 peg$currPos = s0;
11855 s0 = peg$FAILED;
11856 }
11857 } else {
11858 peg$currPos = s0;
11859 s0 = peg$FAILED;
11860 }
11861
11862 return s0;
11863 }
11864
11865 function peg$parseThrowStatement() {
11866 var s0, s1, s2, s3, s4;
11867
11868 s0 = peg$currPos;
11869 s1 = peg$parseThrowToken();
11870 if (s1 !== peg$FAILED) {
11871 s2 = peg$parse_();
11872 if (s2 !== peg$FAILED) {
11873 s3 = peg$parseExpression();
11874 if (s3 !== peg$FAILED) {
11875 s4 = peg$parseEOS();
11876 if (s4 !== peg$FAILED) {
11877 peg$savedPos = s0;
11878 s1 = peg$c368(s3);
11879 s0 = s1;
11880 } else {
11881 peg$currPos = s0;
11882 s0 = peg$FAILED;
11883 }
11884 } else {
11885 peg$currPos = s0;
11886 s0 = peg$FAILED;
11887 }
11888 } else {
11889 peg$currPos = s0;
11890 s0 = peg$FAILED;
11891 }
11892 } else {
11893 peg$currPos = s0;
11894 s0 = peg$FAILED;
11895 }
11896
11897 return s0;
11898 }
11899
11900 function peg$parseTryStatement() {
11901 var s0, s1, s2, s3, s4, s5, s6, s7;
11902
11903 s0 = peg$currPos;
11904 s1 = peg$parseTryToken();
11905 if (s1 !== peg$FAILED) {
11906 s2 = peg$parse__();
11907 if (s2 !== peg$FAILED) {
11908 s3 = peg$parseBlock();
11909 if (s3 !== peg$FAILED) {
11910 s4 = peg$parse__();
11911 if (s4 !== peg$FAILED) {
11912 s5 = peg$parseCatch();
11913 if (s5 !== peg$FAILED) {
11914 s6 = peg$parse__();
11915 if (s6 !== peg$FAILED) {
11916 s7 = peg$parseFinally();
11917 if (s7 !== peg$FAILED) {
11918 peg$savedPos = s0;
11919 s1 = peg$c369(s3, s5, s7);
11920 s0 = s1;
11921 } else {
11922 peg$currPos = s0;
11923 s0 = peg$FAILED;
11924 }
11925 } else {
11926 peg$currPos = s0;
11927 s0 = peg$FAILED;
11928 }
11929 } else {
11930 peg$currPos = s0;
11931 s0 = peg$FAILED;
11932 }
11933 } else {
11934 peg$currPos = s0;
11935 s0 = peg$FAILED;
11936 }
11937 } else {
11938 peg$currPos = s0;
11939 s0 = peg$FAILED;
11940 }
11941 } else {
11942 peg$currPos = s0;
11943 s0 = peg$FAILED;
11944 }
11945 } else {
11946 peg$currPos = s0;
11947 s0 = peg$FAILED;
11948 }
11949 if (s0 === peg$FAILED) {
11950 s0 = peg$currPos;
11951 s1 = peg$parseTryToken();
11952 if (s1 !== peg$FAILED) {
11953 s2 = peg$parse__();
11954 if (s2 !== peg$FAILED) {
11955 s3 = peg$parseBlock();
11956 if (s3 !== peg$FAILED) {
11957 s4 = peg$parse__();
11958 if (s4 !== peg$FAILED) {
11959 s5 = peg$parseCatch();
11960 if (s5 !== peg$FAILED) {
11961 peg$savedPos = s0;
11962 s1 = peg$c370(s3, s5);
11963 s0 = s1;
11964 } else {
11965 peg$currPos = s0;
11966 s0 = peg$FAILED;
11967 }
11968 } else {
11969 peg$currPos = s0;
11970 s0 = peg$FAILED;
11971 }
11972 } else {
11973 peg$currPos = s0;
11974 s0 = peg$FAILED;
11975 }
11976 } else {
11977 peg$currPos = s0;
11978 s0 = peg$FAILED;
11979 }
11980 } else {
11981 peg$currPos = s0;
11982 s0 = peg$FAILED;
11983 }
11984 if (s0 === peg$FAILED) {
11985 s0 = peg$currPos;
11986 s1 = peg$parseTryToken();
11987 if (s1 !== peg$FAILED) {
11988 s2 = peg$parse__();
11989 if (s2 !== peg$FAILED) {
11990 s3 = peg$parseBlock();
11991 if (s3 !== peg$FAILED) {
11992 s4 = peg$parse__();
11993 if (s4 !== peg$FAILED) {
11994 s5 = peg$parseFinally();
11995 if (s5 !== peg$FAILED) {
11996 peg$savedPos = s0;
11997 s1 = peg$c371(s3, s5);
11998 s0 = s1;
11999 } else {
12000 peg$currPos = s0;
12001 s0 = peg$FAILED;
12002 }
12003 } else {
12004 peg$currPos = s0;
12005 s0 = peg$FAILED;
12006 }
12007 } else {
12008 peg$currPos = s0;
12009 s0 = peg$FAILED;
12010 }
12011 } else {
12012 peg$currPos = s0;
12013 s0 = peg$FAILED;
12014 }
12015 } else {
12016 peg$currPos = s0;
12017 s0 = peg$FAILED;
12018 }
12019 }
12020 }
12021
12022 return s0;
12023 }
12024
12025 function peg$parseCatch() {
12026 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
12027
12028 s0 = peg$currPos;
12029 s1 = peg$parseCatchToken();
12030 if (s1 !== peg$FAILED) {
12031 s2 = peg$parse__();
12032 if (s2 !== peg$FAILED) {
12033 if (input.charCodeAt(peg$currPos) === 40) {
12034 s3 = peg$c221;
12035 peg$currPos++;
12036 } else {
12037 s3 = peg$FAILED;
12038 if (peg$silentFails === 0) { peg$fail(peg$c222); }
12039 }
12040 if (s3 !== peg$FAILED) {
12041 s4 = peg$parse__();
12042 if (s4 !== peg$FAILED) {
12043 s5 = peg$parseIdentifier();
12044 if (s5 !== peg$FAILED) {
12045 s6 = peg$parse__();
12046 if (s6 !== peg$FAILED) {
12047 if (input.charCodeAt(peg$currPos) === 41) {
12048 s7 = peg$c223;
12049 peg$currPos++;
12050 } else {
12051 s7 = peg$FAILED;
12052 if (peg$silentFails === 0) { peg$fail(peg$c224); }
12053 }
12054 if (s7 !== peg$FAILED) {
12055 s8 = peg$parse__();
12056 if (s8 !== peg$FAILED) {
12057 s9 = peg$parseBlock();
12058 if (s9 !== peg$FAILED) {
12059 peg$savedPos = s0;
12060 s1 = peg$c372(s5, s9);
12061 s0 = s1;
12062 } else {
12063 peg$currPos = s0;
12064 s0 = peg$FAILED;
12065 }
12066 } else {
12067 peg$currPos = s0;
12068 s0 = peg$FAILED;
12069 }
12070 } else {
12071 peg$currPos = s0;
12072 s0 = peg$FAILED;
12073 }
12074 } else {
12075 peg$currPos = s0;
12076 s0 = peg$FAILED;
12077 }
12078 } else {
12079 peg$currPos = s0;
12080 s0 = peg$FAILED;
12081 }
12082 } else {
12083 peg$currPos = s0;
12084 s0 = peg$FAILED;
12085 }
12086 } else {
12087 peg$currPos = s0;
12088 s0 = peg$FAILED;
12089 }
12090 } else {
12091 peg$currPos = s0;
12092 s0 = peg$FAILED;
12093 }
12094 } else {
12095 peg$currPos = s0;
12096 s0 = peg$FAILED;
12097 }
12098
12099 return s0;
12100 }
12101
12102 function peg$parseFinally() {
12103 var s0, s1, s2, s3;
12104
12105 s0 = peg$currPos;
12106 s1 = peg$parseFinallyToken();
12107 if (s1 !== peg$FAILED) {
12108 s2 = peg$parse__();
12109 if (s2 !== peg$FAILED) {
12110 s3 = peg$parseBlock();
12111 if (s3 !== peg$FAILED) {
12112 peg$savedPos = s0;
12113 s1 = peg$c373(s3);
12114 s0 = s1;
12115 } else {
12116 peg$currPos = s0;
12117 s0 = peg$FAILED;
12118 }
12119 } else {
12120 peg$currPos = s0;
12121 s0 = peg$FAILED;
12122 }
12123 } else {
12124 peg$currPos = s0;
12125 s0 = peg$FAILED;
12126 }
12127
12128 return s0;
12129 }
12130
12131 function peg$parseDebuggerStatement() {
12132 var s0, s1, s2;
12133
12134 s0 = peg$currPos;
12135 s1 = peg$parseDebuggerToken();
12136 if (s1 !== peg$FAILED) {
12137 s2 = peg$parseEOS();
12138 if (s2 !== peg$FAILED) {
12139 peg$savedPos = s0;
12140 s1 = peg$c374();
12141 s0 = s1;
12142 } else {
12143 peg$currPos = s0;
12144 s0 = peg$FAILED;
12145 }
12146 } else {
12147 peg$currPos = s0;
12148 s0 = peg$FAILED;
12149 }
12150
12151 return s0;
12152 }
12153
12154 function peg$parseALPHA() {
12155 var s0;
12156
12157 if (peg$c375.test(input.charAt(peg$currPos))) {
12158 s0 = input.charAt(peg$currPos);
12159 peg$currPos++;
12160 } else {
12161 s0 = peg$FAILED;
12162 if (peg$silentFails === 0) { peg$fail(peg$c376); }
12163 }
12164 if (s0 === peg$FAILED) {
12165 if (peg$c377.test(input.charAt(peg$currPos))) {
12166 s0 = input.charAt(peg$currPos);
12167 peg$currPos++;
12168 } else {
12169 s0 = peg$FAILED;
12170 if (peg$silentFails === 0) { peg$fail(peg$c378); }
12171 }
12172 }
12173
12174 return s0;
12175 }
12176
12177 function peg$parseBIT() {
12178 var s0;
12179
12180 if (input.charCodeAt(peg$currPos) === 48) {
12181 s0 = peg$c59;
12182 peg$currPos++;
12183 } else {
12184 s0 = peg$FAILED;
12185 if (peg$silentFails === 0) { peg$fail(peg$c60); }
12186 }
12187 if (s0 === peg$FAILED) {
12188 if (input.charCodeAt(peg$currPos) === 49) {
12189 s0 = peg$c379;
12190 peg$currPos++;
12191 } else {
12192 s0 = peg$FAILED;
12193 if (peg$silentFails === 0) { peg$fail(peg$c380); }
12194 }
12195 }
12196
12197 return s0;
12198 }
12199
12200 function peg$parseCHAR() {
12201 var s0;
12202
12203 if (peg$c381.test(input.charAt(peg$currPos))) {
12204 s0 = input.charAt(peg$currPos);
12205 peg$currPos++;
12206 } else {
12207 s0 = peg$FAILED;
12208 if (peg$silentFails === 0) { peg$fail(peg$c382); }
12209 }
12210
12211 return s0;
12212 }
12213
12214 function peg$parseCR() {
12215 var s0;
12216
12217 if (input.charCodeAt(peg$currPos) === 13) {
12218 s0 = peg$c22;
12219 peg$currPos++;
12220 } else {
12221 s0 = peg$FAILED;
12222 if (peg$silentFails === 0) { peg$fail(peg$c23); }
12223 }
12224
12225 return s0;
12226 }
12227
12228 function peg$parseCRLF() {
12229 var s0, s1, s2;
12230
12231 s0 = peg$currPos;
12232 s1 = peg$parseCR();
12233 if (s1 !== peg$FAILED) {
12234 s2 = peg$parseLF();
12235 if (s2 !== peg$FAILED) {
12236 s1 = [s1, s2];
12237 s0 = s1;
12238 } else {
12239 peg$currPos = s0;
12240 s0 = peg$FAILED;
12241 }
12242 } else {
12243 peg$currPos = s0;
12244 s0 = peg$FAILED;
12245 }
12246
12247 return s0;
12248 }
12249
12250 function peg$parseCTL() {
12251 var s0;
12252
12253 if (peg$c383.test(input.charAt(peg$currPos))) {
12254 s0 = input.charAt(peg$currPos);
12255 peg$currPos++;
12256 } else {
12257 s0 = peg$FAILED;
12258 if (peg$silentFails === 0) { peg$fail(peg$c384); }
12259 }
12260 if (s0 === peg$FAILED) {
12261 if (input.charCodeAt(peg$currPos) === 127) {
12262 s0 = peg$c385;
12263 peg$currPos++;
12264 } else {
12265 s0 = peg$FAILED;
12266 if (peg$silentFails === 0) { peg$fail(peg$c386); }
12267 }
12268 }
12269
12270 return s0;
12271 }
12272
12273 function peg$parseDIGIT() {
12274 var s0;
12275
12276 if (peg$c61.test(input.charAt(peg$currPos))) {
12277 s0 = input.charAt(peg$currPos);
12278 peg$currPos++;
12279 } else {
12280 s0 = peg$FAILED;
12281 if (peg$silentFails === 0) { peg$fail(peg$c62); }
12282 }
12283
12284 return s0;
12285 }
12286
12287 function peg$parseDQUOTE() {
12288 var s0;
12289
12290 if (peg$c387.test(input.charAt(peg$currPos))) {
12291 s0 = input.charAt(peg$currPos);
12292 peg$currPos++;
12293 } else {
12294 s0 = peg$FAILED;
12295 if (peg$silentFails === 0) { peg$fail(peg$c388); }
12296 }
12297
12298 return s0;
12299 }
12300
12301 function peg$parseHEXDIG() {
12302 var s0;
12303
12304 s0 = peg$parseDIGIT();
12305 if (s0 === peg$FAILED) {
12306 if (input.substr(peg$currPos, 1).toLowerCase() === peg$c389) {
12307 s0 = input.charAt(peg$currPos);
12308 peg$currPos++;
12309 } else {
12310 s0 = peg$FAILED;
12311 if (peg$silentFails === 0) { peg$fail(peg$c390); }
12312 }
12313 if (s0 === peg$FAILED) {
12314 if (input.substr(peg$currPos, 1).toLowerCase() === peg$c81) {
12315 s0 = input.charAt(peg$currPos);
12316 peg$currPos++;
12317 } else {
12318 s0 = peg$FAILED;
12319 if (peg$silentFails === 0) { peg$fail(peg$c391); }
12320 }
12321 if (s0 === peg$FAILED) {
12322 if (input.substr(peg$currPos, 1).toLowerCase() === peg$c392) {
12323 s0 = input.charAt(peg$currPos);
12324 peg$currPos++;
12325 } else {
12326 s0 = peg$FAILED;
12327 if (peg$silentFails === 0) { peg$fail(peg$c393); }
12328 }
12329 if (s0 === peg$FAILED) {
12330 if (input.substr(peg$currPos, 1).toLowerCase() === peg$c394) {
12331 s0 = input.charAt(peg$currPos);
12332 peg$currPos++;
12333 } else {
12334 s0 = peg$FAILED;
12335 if (peg$silentFails === 0) { peg$fail(peg$c395); }
12336 }
12337 if (s0 === peg$FAILED) {
12338 if (input.substr(peg$currPos, 1).toLowerCase() === peg$c65) {
12339 s0 = input.charAt(peg$currPos);
12340 peg$currPos++;
12341 } else {
12342 s0 = peg$FAILED;
12343 if (peg$silentFails === 0) { peg$fail(peg$c396); }
12344 }
12345 if (s0 === peg$FAILED) {
12346 if (input.substr(peg$currPos, 1).toLowerCase() === peg$c84) {
12347 s0 = input.charAt(peg$currPos);
12348 peg$currPos++;
12349 } else {
12350 s0 = peg$FAILED;
12351 if (peg$silentFails === 0) { peg$fail(peg$c397); }
12352 }
12353 }
12354 }
12355 }
12356 }
12357 }
12358 }
12359
12360 return s0;
12361 }
12362
12363 function peg$parseHTAB() {
12364 var s0;
12365
12366 if (input.charCodeAt(peg$currPos) === 9) {
12367 s0 = peg$c3;
12368 peg$currPos++;
12369 } else {
12370 s0 = peg$FAILED;
12371 if (peg$silentFails === 0) { peg$fail(peg$c4); }
12372 }
12373
12374 return s0;
12375 }
12376
12377 function peg$parseLF() {
12378 var s0;
12379
12380 if (input.charCodeAt(peg$currPos) === 10) {
12381 s0 = peg$c18;
12382 peg$currPos++;
12383 } else {
12384 s0 = peg$FAILED;
12385 if (peg$silentFails === 0) { peg$fail(peg$c19); }
12386 }
12387
12388 return s0;
12389 }
12390
12391 function peg$parseLWSP() {
12392 var s0, s1, s2, s3, s4;
12393
12394 s0 = peg$currPos;
12395 s1 = [];
12396 s2 = peg$parseWSP();
12397 if (s2 === peg$FAILED) {
12398 s2 = peg$currPos;
12399 s3 = peg$parseCRLF();
12400 if (s3 !== peg$FAILED) {
12401 s4 = peg$parseWSP();
12402 if (s4 !== peg$FAILED) {
12403 s3 = [s3, s4];
12404 s2 = s3;
12405 } else {
12406 peg$currPos = s2;
12407 s2 = peg$FAILED;
12408 }
12409 } else {
12410 peg$currPos = s2;
12411 s2 = peg$FAILED;
12412 }
12413 }
12414 while (s2 !== peg$FAILED) {
12415 s1.push(s2);
12416 s2 = peg$parseWSP();
12417 if (s2 === peg$FAILED) {
12418 s2 = peg$currPos;
12419 s3 = peg$parseCRLF();
12420 if (s3 !== peg$FAILED) {
12421 s4 = peg$parseWSP();
12422 if (s4 !== peg$FAILED) {
12423 s3 = [s3, s4];
12424 s2 = s3;
12425 } else {
12426 peg$currPos = s2;
12427 s2 = peg$FAILED;
12428 }
12429 } else {
12430 peg$currPos = s2;
12431 s2 = peg$FAILED;
12432 }
12433 }
12434 }
12435 if (s1 !== peg$FAILED) {
12436 s0 = input.substring(s0, peg$currPos);
12437 } else {
12438 s0 = s1;
12439 }
12440
12441 return s0;
12442 }
12443
12444 function peg$parseOCTET() {
12445 var s0;
12446
12447 if (peg$c398.test(input.charAt(peg$currPos))) {
12448 s0 = input.charAt(peg$currPos);
12449 peg$currPos++;
12450 } else {
12451 s0 = peg$FAILED;
12452 if (peg$silentFails === 0) { peg$fail(peg$c399); }
12453 }
12454
12455 return s0;
12456 }
12457
12458 function peg$parseSP() {
12459 var s0;
12460
12461 if (input.charCodeAt(peg$currPos) === 32) {
12462 s0 = peg$c9;
12463 peg$currPos++;
12464 } else {
12465 s0 = peg$FAILED;
12466 if (peg$silentFails === 0) { peg$fail(peg$c10); }
12467 }
12468
12469 return s0;
12470 }
12471
12472 function peg$parseVCHAR() {
12473 var s0;
12474
12475 if (peg$c400.test(input.charAt(peg$currPos))) {
12476 s0 = input.charAt(peg$currPos);
12477 peg$currPos++;
12478 } else {
12479 s0 = peg$FAILED;
12480 if (peg$silentFails === 0) { peg$fail(peg$c401); }
12481 }
12482
12483 return s0;
12484 }
12485
12486 function peg$parseWSP() {
12487 var s0;
12488
12489 s0 = peg$parseSP();
12490 if (s0 === peg$FAILED) {
12491 s0 = peg$parseHTAB();
12492 }
12493
12494 return s0;
12495 }
12496
12497 function peg$parsepct_encoded() {
12498 var s0, s1, s2, s3, s4;
12499
12500 s0 = peg$currPos;
12501 s1 = peg$currPos;
12502 if (input.charCodeAt(peg$currPos) === 37) {
12503 s2 = peg$c267;
12504 peg$currPos++;
12505 } else {
12506 s2 = peg$FAILED;
12507 if (peg$silentFails === 0) { peg$fail(peg$c268); }
12508 }
12509 if (s2 !== peg$FAILED) {
12510 s3 = peg$parseHEXDIG();
12511 if (s3 !== peg$FAILED) {
12512 s4 = peg$parseHEXDIG();
12513 if (s4 !== peg$FAILED) {
12514 s2 = [s2, s3, s4];
12515 s1 = s2;
12516 } else {
12517 peg$currPos = s1;
12518 s1 = peg$FAILED;
12519 }
12520 } else {
12521 peg$currPos = s1;
12522 s1 = peg$FAILED;
12523 }
12524 } else {
12525 peg$currPos = s1;
12526 s1 = peg$FAILED;
12527 }
12528 if (s1 !== peg$FAILED) {
12529 s0 = input.substring(s0, peg$currPos);
12530 } else {
12531 s0 = s1;
12532 }
12533
12534 return s0;
12535 }
12536
12537 function peg$parsereserved() {
12538 var s0;
12539
12540 s0 = peg$parsegen_delims();
12541 if (s0 === peg$FAILED) {
12542 s0 = peg$parsesub_delims();
12543 }
12544
12545 return s0;
12546 }
12547
12548 function peg$parsegen_delims() {
12549 var s0;
12550
12551 if (input.charCodeAt(peg$currPos) === 58) {
12552 s0 = peg$c311;
12553 peg$currPos++;
12554 } else {
12555 s0 = peg$FAILED;
12556 if (peg$silentFails === 0) { peg$fail(peg$c312); }
12557 }
12558 if (s0 === peg$FAILED) {
12559 if (input.charCodeAt(peg$currPos) === 47) {
12560 s0 = peg$c105;
12561 peg$currPos++;
12562 } else {
12563 s0 = peg$FAILED;
12564 if (peg$silentFails === 0) { peg$fail(peg$c106); }
12565 }
12566 if (s0 === peg$FAILED) {
12567 if (input.charCodeAt(peg$currPos) === 63) {
12568 s0 = peg$c309;
12569 peg$currPos++;
12570 } else {
12571 s0 = peg$FAILED;
12572 if (peg$silentFails === 0) { peg$fail(peg$c310); }
12573 }
12574 if (s0 === peg$FAILED) {
12575 if (input.charCodeAt(peg$currPos) === 35) {
12576 s0 = peg$c402;
12577 peg$currPos++;
12578 } else {
12579 s0 = peg$FAILED;
12580 if (peg$silentFails === 0) { peg$fail(peg$c403); }
12581 }
12582 if (s0 === peg$FAILED) {
12583 if (input.charCodeAt(peg$currPos) === 91) {
12584 s0 = peg$c112;
12585 peg$currPos++;
12586 } else {
12587 s0 = peg$FAILED;
12588 if (peg$silentFails === 0) { peg$fail(peg$c113); }
12589 }
12590 if (s0 === peg$FAILED) {
12591 if (input.charCodeAt(peg$currPos) === 93) {
12592 s0 = peg$c114;
12593 peg$currPos++;
12594 } else {
12595 s0 = peg$FAILED;
12596 if (peg$silentFails === 0) { peg$fail(peg$c115); }
12597 }
12598 if (s0 === peg$FAILED) {
12599 if (input.charCodeAt(peg$currPos) === 64) {
12600 s0 = peg$c404;
12601 peg$currPos++;
12602 } else {
12603 s0 = peg$FAILED;
12604 if (peg$silentFails === 0) { peg$fail(peg$c405); }
12605 }
12606 }
12607 }
12608 }
12609 }
12610 }
12611 }
12612
12613 return s0;
12614 }
12615
12616 function peg$parsesub_delims() {
12617 var s0;
12618
12619 if (input.charCodeAt(peg$currPos) === 33) {
12620 s0 = peg$c262;
12621 peg$currPos++;
12622 } else {
12623 s0 = peg$FAILED;
12624 if (peg$silentFails === 0) { peg$fail(peg$c263); }
12625 }
12626 if (s0 === peg$FAILED) {
12627 if (input.charCodeAt(peg$currPos) === 36) {
12628 s0 = peg$c38;
12629 peg$currPos++;
12630 } else {
12631 s0 = peg$FAILED;
12632 if (peg$silentFails === 0) { peg$fail(peg$c39); }
12633 }
12634 if (s0 === peg$FAILED) {
12635 if (input.charCodeAt(peg$currPos) === 38) {
12636 s0 = peg$c295;
12637 peg$currPos++;
12638 } else {
12639 s0 = peg$FAILED;
12640 if (peg$silentFails === 0) { peg$fail(peg$c296); }
12641 }
12642 if (s0 === peg$FAILED) {
12643 if (input.charCodeAt(peg$currPos) === 39) {
12644 s0 = peg$c76;
12645 peg$currPos++;
12646 } else {
12647 s0 = peg$FAILED;
12648 if (peg$silentFails === 0) { peg$fail(peg$c77); }
12649 }
12650 if (s0 === peg$FAILED) {
12651 if (input.charCodeAt(peg$currPos) === 40) {
12652 s0 = peg$c221;
12653 peg$currPos++;
12654 } else {
12655 s0 = peg$FAILED;
12656 if (peg$silentFails === 0) { peg$fail(peg$c222); }
12657 }
12658 if (s0 === peg$FAILED) {
12659 if (input.charCodeAt(peg$currPos) === 41) {
12660 s0 = peg$c223;
12661 peg$currPos++;
12662 } else {
12663 s0 = peg$FAILED;
12664 if (peg$silentFails === 0) { peg$fail(peg$c224); }
12665 }
12666 if (s0 === peg$FAILED) {
12667 if (input.charCodeAt(peg$currPos) === 42) {
12668 s0 = peg$c265;
12669 peg$currPos++;
12670 } else {
12671 s0 = peg$FAILED;
12672 if (peg$silentFails === 0) { peg$fail(peg$c266); }
12673 }
12674 if (s0 === peg$FAILED) {
12675 if (input.charCodeAt(peg$currPos) === 43) {
12676 s0 = peg$c254;
12677 peg$currPos++;
12678 } else {
12679 s0 = peg$FAILED;
12680 if (peg$silentFails === 0) { peg$fail(peg$c255); }
12681 }
12682 if (s0 === peg$FAILED) {
12683 if (input.charCodeAt(peg$currPos) === 44) {
12684 s0 = peg$c228;
12685 peg$currPos++;
12686 } else {
12687 s0 = peg$FAILED;
12688 if (peg$silentFails === 0) { peg$fail(peg$c229); }
12689 }
12690 if (s0 === peg$FAILED) {
12691 if (input.charCodeAt(peg$currPos) === 59) {
12692 s0 = peg$c216;
12693 peg$currPos++;
12694 } else {
12695 s0 = peg$FAILED;
12696 if (peg$silentFails === 0) { peg$fail(peg$c217); }
12697 }
12698 if (s0 === peg$FAILED) {
12699 if (input.charCodeAt(peg$currPos) === 61) {
12700 s0 = peg$c256;
12701 peg$currPos++;
12702 } else {
12703 s0 = peg$FAILED;
12704 if (peg$silentFails === 0) { peg$fail(peg$c257); }
12705 }
12706 }
12707 }
12708 }
12709 }
12710 }
12711 }
12712 }
12713 }
12714 }
12715 }
12716
12717 return s0;
12718 }
12719
12720 function peg$parseunreserved() {
12721 var s0;
12722
12723 s0 = peg$parseALPHA();
12724 if (s0 === peg$FAILED) {
12725 s0 = peg$parseDIGIT();
12726 if (s0 === peg$FAILED) {
12727 if (input.charCodeAt(peg$currPos) === 45) {
12728 s0 = peg$c258;
12729 peg$currPos++;
12730 } else {
12731 s0 = peg$FAILED;
12732 if (peg$silentFails === 0) { peg$fail(peg$c259); }
12733 }
12734 if (s0 === peg$FAILED) {
12735 if (input.charCodeAt(peg$currPos) === 46) {
12736 s0 = peg$c54;
12737 peg$currPos++;
12738 } else {
12739 s0 = peg$FAILED;
12740 if (peg$silentFails === 0) { peg$fail(peg$c55); }
12741 }
12742 if (s0 === peg$FAILED) {
12743 if (input.charCodeAt(peg$currPos) === 95) {
12744 s0 = peg$c40;
12745 peg$currPos++;
12746 } else {
12747 s0 = peg$FAILED;
12748 if (peg$silentFails === 0) { peg$fail(peg$c41); }
12749 }
12750 if (s0 === peg$FAILED) {
12751 if (input.charCodeAt(peg$currPos) === 126) {
12752 s0 = peg$c260;
12753 peg$currPos++;
12754 } else {
12755 s0 = peg$FAILED;
12756 if (peg$silentFails === 0) { peg$fail(peg$c261); }
12757 }
12758 }
12759 }
12760 }
12761 }
12762 }
12763
12764 return s0;
12765 }
12766
12767 function peg$parseURI() {
12768 var s0, s1, s2, s3, s4, s5, s6, s7;
12769
12770 s0 = peg$currPos;
12771 s1 = peg$parsescheme();
12772 if (s1 !== peg$FAILED) {
12773 if (input.charCodeAt(peg$currPos) === 58) {
12774 s2 = peg$c311;
12775 peg$currPos++;
12776 } else {
12777 s2 = peg$FAILED;
12778 if (peg$silentFails === 0) { peg$fail(peg$c312); }
12779 }
12780 if (s2 !== peg$FAILED) {
12781 s3 = peg$parsehier_part();
12782 if (s3 !== peg$FAILED) {
12783 s4 = peg$currPos;
12784 if (input.charCodeAt(peg$currPos) === 63) {
12785 s5 = peg$c309;
12786 peg$currPos++;
12787 } else {
12788 s5 = peg$FAILED;
12789 if (peg$silentFails === 0) { peg$fail(peg$c310); }
12790 }
12791 if (s5 !== peg$FAILED) {
12792 s6 = peg$parsequery();
12793 if (s6 !== peg$FAILED) {
12794 s5 = [s5, s6];
12795 s4 = s5;
12796 } else {
12797 peg$currPos = s4;
12798 s4 = peg$FAILED;
12799 }
12800 } else {
12801 peg$currPos = s4;
12802 s4 = peg$FAILED;
12803 }
12804 if (s4 === peg$FAILED) {
12805 s4 = null;
12806 }
12807 if (s4 !== peg$FAILED) {
12808 s5 = peg$currPos;
12809 if (input.charCodeAt(peg$currPos) === 35) {
12810 s6 = peg$c402;
12811 peg$currPos++;
12812 } else {
12813 s6 = peg$FAILED;
12814 if (peg$silentFails === 0) { peg$fail(peg$c403); }
12815 }
12816 if (s6 !== peg$FAILED) {
12817 s7 = peg$parsefragment();
12818 if (s7 !== peg$FAILED) {
12819 s6 = [s6, s7];
12820 s5 = s6;
12821 } else {
12822 peg$currPos = s5;
12823 s5 = peg$FAILED;
12824 }
12825 } else {
12826 peg$currPos = s5;
12827 s5 = peg$FAILED;
12828 }
12829 if (s5 === peg$FAILED) {
12830 s5 = null;
12831 }
12832 if (s5 !== peg$FAILED) {
12833 s1 = [s1, s2, s3, s4, s5];
12834 s0 = s1;
12835 } else {
12836 peg$currPos = s0;
12837 s0 = peg$FAILED;
12838 }
12839 } else {
12840 peg$currPos = s0;
12841 s0 = peg$FAILED;
12842 }
12843 } else {
12844 peg$currPos = s0;
12845 s0 = peg$FAILED;
12846 }
12847 } else {
12848 peg$currPos = s0;
12849 s0 = peg$FAILED;
12850 }
12851 } else {
12852 peg$currPos = s0;
12853 s0 = peg$FAILED;
12854 }
12855
12856 return s0;
12857 }
12858
12859 function peg$parsehier_part() {
12860 var s0, s1, s2, s3;
12861
12862 s0 = peg$currPos;
12863 if (input.substr(peg$currPos, 2) === peg$c33) {
12864 s1 = peg$c33;
12865 peg$currPos += 2;
12866 } else {
12867 s1 = peg$FAILED;
12868 if (peg$silentFails === 0) { peg$fail(peg$c34); }
12869 }
12870 if (s1 !== peg$FAILED) {
12871 s2 = peg$parseauthority();
12872 if (s2 !== peg$FAILED) {
12873 s3 = peg$parsepath_abempty();
12874 if (s3 !== peg$FAILED) {
12875 s1 = [s1, s2, s3];
12876 s0 = s1;
12877 } else {
12878 peg$currPos = s0;
12879 s0 = peg$FAILED;
12880 }
12881 } else {
12882 peg$currPos = s0;
12883 s0 = peg$FAILED;
12884 }
12885 } else {
12886 peg$currPos = s0;
12887 s0 = peg$FAILED;
12888 }
12889 if (s0 === peg$FAILED) {
12890 s0 = peg$parsepath_absolute();
12891 if (s0 === peg$FAILED) {
12892 s0 = peg$parsepath_rootless();
12893 if (s0 === peg$FAILED) {
12894 s0 = peg$parsepath_empty();
12895 }
12896 }
12897 }
12898
12899 return s0;
12900 }
12901
12902 function peg$parsescheme() {
12903 var s0, s1, s2, s3, s4;
12904
12905 s0 = peg$currPos;
12906 s1 = peg$currPos;
12907 s2 = peg$parseALPHA();
12908 if (s2 !== peg$FAILED) {
12909 s3 = [];
12910 s4 = peg$parseALPHA();
12911 if (s4 === peg$FAILED) {
12912 s4 = peg$parseDIGIT();
12913 if (s4 === peg$FAILED) {
12914 if (input.charCodeAt(peg$currPos) === 43) {
12915 s4 = peg$c254;
12916 peg$currPos++;
12917 } else {
12918 s4 = peg$FAILED;
12919 if (peg$silentFails === 0) { peg$fail(peg$c255); }
12920 }
12921 if (s4 === peg$FAILED) {
12922 if (input.charCodeAt(peg$currPos) === 45) {
12923 s4 = peg$c258;
12924 peg$currPos++;
12925 } else {
12926 s4 = peg$FAILED;
12927 if (peg$silentFails === 0) { peg$fail(peg$c259); }
12928 }
12929 if (s4 === peg$FAILED) {
12930 if (input.charCodeAt(peg$currPos) === 46) {
12931 s4 = peg$c54;
12932 peg$currPos++;
12933 } else {
12934 s4 = peg$FAILED;
12935 if (peg$silentFails === 0) { peg$fail(peg$c55); }
12936 }
12937 }
12938 }
12939 }
12940 }
12941 while (s4 !== peg$FAILED) {
12942 s3.push(s4);
12943 s4 = peg$parseALPHA();
12944 if (s4 === peg$FAILED) {
12945 s4 = peg$parseDIGIT();
12946 if (s4 === peg$FAILED) {
12947 if (input.charCodeAt(peg$currPos) === 43) {
12948 s4 = peg$c254;
12949 peg$currPos++;
12950 } else {
12951 s4 = peg$FAILED;
12952 if (peg$silentFails === 0) { peg$fail(peg$c255); }
12953 }
12954 if (s4 === peg$FAILED) {
12955 if (input.charCodeAt(peg$currPos) === 45) {
12956 s4 = peg$c258;
12957 peg$currPos++;
12958 } else {
12959 s4 = peg$FAILED;
12960 if (peg$silentFails === 0) { peg$fail(peg$c259); }
12961 }
12962 if (s4 === peg$FAILED) {
12963 if (input.charCodeAt(peg$currPos) === 46) {
12964 s4 = peg$c54;
12965 peg$currPos++;
12966 } else {
12967 s4 = peg$FAILED;
12968 if (peg$silentFails === 0) { peg$fail(peg$c55); }
12969 }
12970 }
12971 }
12972 }
12973 }
12974 }
12975 if (s3 !== peg$FAILED) {
12976 s2 = [s2, s3];
12977 s1 = s2;
12978 } else {
12979 peg$currPos = s1;
12980 s1 = peg$FAILED;
12981 }
12982 } else {
12983 peg$currPos = s1;
12984 s1 = peg$FAILED;
12985 }
12986 if (s1 !== peg$FAILED) {
12987 s0 = input.substring(s0, peg$currPos);
12988 } else {
12989 s0 = s1;
12990 }
12991
12992 return s0;
12993 }
12994
12995 function peg$parseauthority() {
12996 var s0, s1, s2, s3, s4, s5;
12997
12998 s0 = peg$currPos;
12999 s1 = peg$currPos;
13000 s2 = peg$parseuserinfo();
13001 if (s2 !== peg$FAILED) {
13002 if (input.charCodeAt(peg$currPos) === 64) {
13003 s3 = peg$c404;
13004 peg$currPos++;
13005 } else {
13006 s3 = peg$FAILED;
13007 if (peg$silentFails === 0) { peg$fail(peg$c405); }
13008 }
13009 if (s3 !== peg$FAILED) {
13010 s2 = [s2, s3];
13011 s1 = s2;
13012 } else {
13013 peg$currPos = s1;
13014 s1 = peg$FAILED;
13015 }
13016 } else {
13017 peg$currPos = s1;
13018 s1 = peg$FAILED;
13019 }
13020 if (s1 === peg$FAILED) {
13021 s1 = null;
13022 }
13023 if (s1 !== peg$FAILED) {
13024 s2 = peg$parsehostname();
13025 if (s2 !== peg$FAILED) {
13026 s3 = peg$currPos;
13027 if (input.charCodeAt(peg$currPos) === 58) {
13028 s4 = peg$c311;
13029 peg$currPos++;
13030 } else {
13031 s4 = peg$FAILED;
13032 if (peg$silentFails === 0) { peg$fail(peg$c312); }
13033 }
13034 if (s4 !== peg$FAILED) {
13035 s5 = peg$parseport();
13036 if (s5 !== peg$FAILED) {
13037 s4 = [s4, s5];
13038 s3 = s4;
13039 } else {
13040 peg$currPos = s3;
13041 s3 = peg$FAILED;
13042 }
13043 } else {
13044 peg$currPos = s3;
13045 s3 = peg$FAILED;
13046 }
13047 if (s3 === peg$FAILED) {
13048 s3 = null;
13049 }
13050 if (s3 !== peg$FAILED) {
13051 s1 = [s1, s2, s3];
13052 s0 = s1;
13053 } else {
13054 peg$currPos = s0;
13055 s0 = peg$FAILED;
13056 }
13057 } else {
13058 peg$currPos = s0;
13059 s0 = peg$FAILED;
13060 }
13061 } else {
13062 peg$currPos = s0;
13063 s0 = peg$FAILED;
13064 }
13065
13066 return s0;
13067 }
13068
13069 function peg$parseuserinfo() {
13070 var s0, s1, s2;
13071
13072 s0 = peg$currPos;
13073 s1 = [];
13074 s2 = peg$parseunreserved();
13075 if (s2 === peg$FAILED) {
13076 s2 = peg$parsepct_encoded();
13077 if (s2 === peg$FAILED) {
13078 s2 = peg$parsesub_delims();
13079 if (s2 === peg$FAILED) {
13080 if (input.charCodeAt(peg$currPos) === 58) {
13081 s2 = peg$c311;
13082 peg$currPos++;
13083 } else {
13084 s2 = peg$FAILED;
13085 if (peg$silentFails === 0) { peg$fail(peg$c312); }
13086 }
13087 }
13088 }
13089 }
13090 while (s2 !== peg$FAILED) {
13091 s1.push(s2);
13092 s2 = peg$parseunreserved();
13093 if (s2 === peg$FAILED) {
13094 s2 = peg$parsepct_encoded();
13095 if (s2 === peg$FAILED) {
13096 s2 = peg$parsesub_delims();
13097 if (s2 === peg$FAILED) {
13098 if (input.charCodeAt(peg$currPos) === 58) {
13099 s2 = peg$c311;
13100 peg$currPos++;
13101 } else {
13102 s2 = peg$FAILED;
13103 if (peg$silentFails === 0) { peg$fail(peg$c312); }
13104 }
13105 }
13106 }
13107 }
13108 }
13109 if (s1 !== peg$FAILED) {
13110 s0 = input.substring(s0, peg$currPos);
13111 } else {
13112 s0 = s1;
13113 }
13114
13115 return s0;
13116 }
13117
13118 function peg$parsehostname() {
13119 var s0, s1, s2, s3;
13120
13121 s0 = peg$currPos;
13122 s1 = peg$parseIP_literal();
13123 if (s1 !== peg$FAILED) {
13124 s2 = peg$currPos;
13125 peg$silentFails++;
13126 s3 = peg$parsereg_name_item_();
13127 peg$silentFails--;
13128 if (s3 === peg$FAILED) {
13129 s2 = void 0;
13130 } else {
13131 peg$currPos = s2;
13132 s2 = peg$FAILED;
13133 }
13134 if (s2 !== peg$FAILED) {
13135 s1 = [s1, s2];
13136 s0 = s1;
13137 } else {
13138 peg$currPos = s0;
13139 s0 = peg$FAILED;
13140 }
13141 } else {
13142 peg$currPos = s0;
13143 s0 = peg$FAILED;
13144 }
13145 if (s0 === peg$FAILED) {
13146 s0 = peg$currPos;
13147 s1 = peg$parseIPv4address();
13148 if (s1 !== peg$FAILED) {
13149 s2 = peg$currPos;
13150 peg$silentFails++;
13151 s3 = peg$parsereg_name_item_();
13152 peg$silentFails--;
13153 if (s3 === peg$FAILED) {
13154 s2 = void 0;
13155 } else {
13156 peg$currPos = s2;
13157 s2 = peg$FAILED;
13158 }
13159 if (s2 !== peg$FAILED) {
13160 s1 = [s1, s2];
13161 s0 = s1;
13162 } else {
13163 peg$currPos = s0;
13164 s0 = peg$FAILED;
13165 }
13166 } else {
13167 peg$currPos = s0;
13168 s0 = peg$FAILED;
13169 }
13170 if (s0 === peg$FAILED) {
13171 s0 = peg$parsereg_name();
13172 }
13173 }
13174
13175 return s0;
13176 }
13177
13178 function peg$parseIP_literal() {
13179 var s0, s1, s2, s3;
13180
13181 s0 = peg$currPos;
13182 if (input.charCodeAt(peg$currPos) === 91) {
13183 s1 = peg$c112;
13184 peg$currPos++;
13185 } else {
13186 s1 = peg$FAILED;
13187 if (peg$silentFails === 0) { peg$fail(peg$c113); }
13188 }
13189 if (s1 !== peg$FAILED) {
13190 s2 = peg$parseIPv6address();
13191 if (s2 === peg$FAILED) {
13192 s2 = peg$parseIPvFuture();
13193 }
13194 if (s2 !== peg$FAILED) {
13195 if (input.charCodeAt(peg$currPos) === 93) {
13196 s3 = peg$c114;
13197 peg$currPos++;
13198 } else {
13199 s3 = peg$FAILED;
13200 if (peg$silentFails === 0) { peg$fail(peg$c115); }
13201 }
13202 if (s3 !== peg$FAILED) {
13203 s1 = [s1, s2, s3];
13204 s0 = s1;
13205 } else {
13206 peg$currPos = s0;
13207 s0 = peg$FAILED;
13208 }
13209 } else {
13210 peg$currPos = s0;
13211 s0 = peg$FAILED;
13212 }
13213 } else {
13214 peg$currPos = s0;
13215 s0 = peg$FAILED;
13216 }
13217
13218 return s0;
13219 }
13220
13221 function peg$parseIPvFuture() {
13222 var s0, s1, s2, s3, s4, s5, s6;
13223
13224 s0 = peg$currPos;
13225 if (input.charCodeAt(peg$currPos) === 118) {
13226 s1 = peg$c96;
13227 peg$currPos++;
13228 } else {
13229 s1 = peg$FAILED;
13230 if (peg$silentFails === 0) { peg$fail(peg$c97); }
13231 }
13232 if (s1 !== peg$FAILED) {
13233 s2 = peg$currPos;
13234 s3 = [];
13235 s4 = peg$parseHEXDIG();
13236 if (s4 !== peg$FAILED) {
13237 while (s4 !== peg$FAILED) {
13238 s3.push(s4);
13239 s4 = peg$parseHEXDIG();
13240 }
13241 } else {
13242 s3 = peg$FAILED;
13243 }
13244 if (s3 !== peg$FAILED) {
13245 s2 = input.substring(s2, peg$currPos);
13246 } else {
13247 s2 = s3;
13248 }
13249 if (s2 !== peg$FAILED) {
13250 if (input.charCodeAt(peg$currPos) === 46) {
13251 s3 = peg$c54;
13252 peg$currPos++;
13253 } else {
13254 s3 = peg$FAILED;
13255 if (peg$silentFails === 0) { peg$fail(peg$c55); }
13256 }
13257 if (s3 !== peg$FAILED) {
13258 s4 = peg$currPos;
13259 s5 = [];
13260 s6 = peg$parseunreserved();
13261 if (s6 === peg$FAILED) {
13262 if (input.charCodeAt(peg$currPos) === 58) {
13263 s6 = peg$c311;
13264 peg$currPos++;
13265 } else {
13266 s6 = peg$FAILED;
13267 if (peg$silentFails === 0) { peg$fail(peg$c312); }
13268 }
13269 }
13270 if (s6 !== peg$FAILED) {
13271 while (s6 !== peg$FAILED) {
13272 s5.push(s6);
13273 s6 = peg$parseunreserved();
13274 if (s6 === peg$FAILED) {
13275 if (input.charCodeAt(peg$currPos) === 58) {
13276 s6 = peg$c311;
13277 peg$currPos++;
13278 } else {
13279 s6 = peg$FAILED;
13280 if (peg$silentFails === 0) { peg$fail(peg$c312); }
13281 }
13282 }
13283 }
13284 } else {
13285 s5 = peg$FAILED;
13286 }
13287 if (s5 !== peg$FAILED) {
13288 s4 = input.substring(s4, peg$currPos);
13289 } else {
13290 s4 = s5;
13291 }
13292 if (s4 !== peg$FAILED) {
13293 s1 = [s1, s2, s3, s4];
13294 s0 = s1;
13295 } else {
13296 peg$currPos = s0;
13297 s0 = peg$FAILED;
13298 }
13299 } else {
13300 peg$currPos = s0;
13301 s0 = peg$FAILED;
13302 }
13303 } else {
13304 peg$currPos = s0;
13305 s0 = peg$FAILED;
13306 }
13307 } else {
13308 peg$currPos = s0;
13309 s0 = peg$FAILED;
13310 }
13311
13312 return s0;
13313 }
13314
13315 function peg$parseIPv6address() {
13316 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
13317
13318 s0 = peg$currPos;
13319 s1 = peg$currPos;
13320 s2 = peg$parseh16_();
13321 if (s2 !== peg$FAILED) {
13322 s3 = peg$parseh16_();
13323 if (s3 !== peg$FAILED) {
13324 s4 = peg$parseh16_();
13325 if (s4 !== peg$FAILED) {
13326 s5 = peg$parseh16_();
13327 if (s5 !== peg$FAILED) {
13328 s6 = peg$parseh16_();
13329 if (s6 !== peg$FAILED) {
13330 s7 = peg$parseh16_();
13331 if (s7 !== peg$FAILED) {
13332 s8 = peg$parsels32();
13333 if (s8 !== peg$FAILED) {
13334 s2 = [s2, s3, s4, s5, s6, s7, s8];
13335 s1 = s2;
13336 } else {
13337 peg$currPos = s1;
13338 s1 = peg$FAILED;
13339 }
13340 } else {
13341 peg$currPos = s1;
13342 s1 = peg$FAILED;
13343 }
13344 } else {
13345 peg$currPos = s1;
13346 s1 = peg$FAILED;
13347 }
13348 } else {
13349 peg$currPos = s1;
13350 s1 = peg$FAILED;
13351 }
13352 } else {
13353 peg$currPos = s1;
13354 s1 = peg$FAILED;
13355 }
13356 } else {
13357 peg$currPos = s1;
13358 s1 = peg$FAILED;
13359 }
13360 } else {
13361 peg$currPos = s1;
13362 s1 = peg$FAILED;
13363 }
13364 if (s1 === peg$FAILED) {
13365 s1 = peg$currPos;
13366 if (input.substr(peg$currPos, 2) === peg$c406) {
13367 s2 = peg$c406;
13368 peg$currPos += 2;
13369 } else {
13370 s2 = peg$FAILED;
13371 if (peg$silentFails === 0) { peg$fail(peg$c407); }
13372 }
13373 if (s2 !== peg$FAILED) {
13374 s3 = peg$parseh16_();
13375 if (s3 !== peg$FAILED) {
13376 s4 = peg$parseh16_();
13377 if (s4 !== peg$FAILED) {
13378 s5 = peg$parseh16_();
13379 if (s5 !== peg$FAILED) {
13380 s6 = peg$parseh16_();
13381 if (s6 !== peg$FAILED) {
13382 s7 = peg$parseh16_();
13383 if (s7 !== peg$FAILED) {
13384 s8 = peg$parsels32();
13385 if (s8 !== peg$FAILED) {
13386 s2 = [s2, s3, s4, s5, s6, s7, s8];
13387 s1 = s2;
13388 } else {
13389 peg$currPos = s1;
13390 s1 = peg$FAILED;
13391 }
13392 } else {
13393 peg$currPos = s1;
13394 s1 = peg$FAILED;
13395 }
13396 } else {
13397 peg$currPos = s1;
13398 s1 = peg$FAILED;
13399 }
13400 } else {
13401 peg$currPos = s1;
13402 s1 = peg$FAILED;
13403 }
13404 } else {
13405 peg$currPos = s1;
13406 s1 = peg$FAILED;
13407 }
13408 } else {
13409 peg$currPos = s1;
13410 s1 = peg$FAILED;
13411 }
13412 } else {
13413 peg$currPos = s1;
13414 s1 = peg$FAILED;
13415 }
13416 if (s1 === peg$FAILED) {
13417 s1 = peg$currPos;
13418 s2 = peg$parseh16();
13419 if (s2 === peg$FAILED) {
13420 s2 = null;
13421 }
13422 if (s2 !== peg$FAILED) {
13423 if (input.substr(peg$currPos, 2) === peg$c406) {
13424 s3 = peg$c406;
13425 peg$currPos += 2;
13426 } else {
13427 s3 = peg$FAILED;
13428 if (peg$silentFails === 0) { peg$fail(peg$c407); }
13429 }
13430 if (s3 !== peg$FAILED) {
13431 s4 = peg$parseh16_();
13432 if (s4 !== peg$FAILED) {
13433 s5 = peg$parseh16_();
13434 if (s5 !== peg$FAILED) {
13435 s6 = peg$parseh16_();
13436 if (s6 !== peg$FAILED) {
13437 s7 = peg$parseh16_();
13438 if (s7 !== peg$FAILED) {
13439 s8 = peg$parsels32();
13440 if (s8 !== peg$FAILED) {
13441 s2 = [s2, s3, s4, s5, s6, s7, s8];
13442 s1 = s2;
13443 } else {
13444 peg$currPos = s1;
13445 s1 = peg$FAILED;
13446 }
13447 } else {
13448 peg$currPos = s1;
13449 s1 = peg$FAILED;
13450 }
13451 } else {
13452 peg$currPos = s1;
13453 s1 = peg$FAILED;
13454 }
13455 } else {
13456 peg$currPos = s1;
13457 s1 = peg$FAILED;
13458 }
13459 } else {
13460 peg$currPos = s1;
13461 s1 = peg$FAILED;
13462 }
13463 } else {
13464 peg$currPos = s1;
13465 s1 = peg$FAILED;
13466 }
13467 } else {
13468 peg$currPos = s1;
13469 s1 = peg$FAILED;
13470 }
13471 if (s1 === peg$FAILED) {
13472 s1 = peg$currPos;
13473 s2 = peg$currPos;
13474 s3 = peg$parseh16_();
13475 if (s3 === peg$FAILED) {
13476 s3 = null;
13477 }
13478 if (s3 !== peg$FAILED) {
13479 s4 = peg$parseh16();
13480 if (s4 !== peg$FAILED) {
13481 s3 = [s3, s4];
13482 s2 = s3;
13483 } else {
13484 peg$currPos = s2;
13485 s2 = peg$FAILED;
13486 }
13487 } else {
13488 peg$currPos = s2;
13489 s2 = peg$FAILED;
13490 }
13491 if (s2 === peg$FAILED) {
13492 s2 = null;
13493 }
13494 if (s2 !== peg$FAILED) {
13495 if (input.substr(peg$currPos, 2) === peg$c406) {
13496 s3 = peg$c406;
13497 peg$currPos += 2;
13498 } else {
13499 s3 = peg$FAILED;
13500 if (peg$silentFails === 0) { peg$fail(peg$c407); }
13501 }
13502 if (s3 !== peg$FAILED) {
13503 s4 = peg$parseh16_();
13504 if (s4 !== peg$FAILED) {
13505 s5 = peg$parseh16_();
13506 if (s5 !== peg$FAILED) {
13507 s6 = peg$parseh16_();
13508 if (s6 !== peg$FAILED) {
13509 s7 = peg$parsels32();
13510 if (s7 !== peg$FAILED) {
13511 s2 = [s2, s3, s4, s5, s6, s7];
13512 s1 = s2;
13513 } else {
13514 peg$currPos = s1;
13515 s1 = peg$FAILED;
13516 }
13517 } else {
13518 peg$currPos = s1;
13519 s1 = peg$FAILED;
13520 }
13521 } else {
13522 peg$currPos = s1;
13523 s1 = peg$FAILED;
13524 }
13525 } else {
13526 peg$currPos = s1;
13527 s1 = peg$FAILED;
13528 }
13529 } else {
13530 peg$currPos = s1;
13531 s1 = peg$FAILED;
13532 }
13533 } else {
13534 peg$currPos = s1;
13535 s1 = peg$FAILED;
13536 }
13537 if (s1 === peg$FAILED) {
13538 s1 = peg$currPos;
13539 s2 = peg$currPos;
13540 s3 = peg$currPos;
13541 s4 = peg$parseh16_();
13542 if (s4 !== peg$FAILED) {
13543 s5 = peg$parseh16_();
13544 if (s5 === peg$FAILED) {
13545 s5 = null;
13546 }
13547 if (s5 !== peg$FAILED) {
13548 s4 = [s4, s5];
13549 s3 = s4;
13550 } else {
13551 peg$currPos = s3;
13552 s3 = peg$FAILED;
13553 }
13554 } else {
13555 peg$currPos = s3;
13556 s3 = peg$FAILED;
13557 }
13558 if (s3 === peg$FAILED) {
13559 s3 = null;
13560 }
13561 if (s3 !== peg$FAILED) {
13562 s4 = peg$parseh16();
13563 if (s4 !== peg$FAILED) {
13564 s3 = [s3, s4];
13565 s2 = s3;
13566 } else {
13567 peg$currPos = s2;
13568 s2 = peg$FAILED;
13569 }
13570 } else {
13571 peg$currPos = s2;
13572 s2 = peg$FAILED;
13573 }
13574 if (s2 === peg$FAILED) {
13575 s2 = null;
13576 }
13577 if (s2 !== peg$FAILED) {
13578 if (input.substr(peg$currPos, 2) === peg$c406) {
13579 s3 = peg$c406;
13580 peg$currPos += 2;
13581 } else {
13582 s3 = peg$FAILED;
13583 if (peg$silentFails === 0) { peg$fail(peg$c407); }
13584 }
13585 if (s3 !== peg$FAILED) {
13586 s4 = peg$parseh16_();
13587 if (s4 !== peg$FAILED) {
13588 s5 = peg$parseh16_();
13589 if (s5 !== peg$FAILED) {
13590 s6 = peg$parsels32();
13591 if (s6 !== peg$FAILED) {
13592 s2 = [s2, s3, s4, s5, s6];
13593 s1 = s2;
13594 } else {
13595 peg$currPos = s1;
13596 s1 = peg$FAILED;
13597 }
13598 } else {
13599 peg$currPos = s1;
13600 s1 = peg$FAILED;
13601 }
13602 } else {
13603 peg$currPos = s1;
13604 s1 = peg$FAILED;
13605 }
13606 } else {
13607 peg$currPos = s1;
13608 s1 = peg$FAILED;
13609 }
13610 } else {
13611 peg$currPos = s1;
13612 s1 = peg$FAILED;
13613 }
13614 if (s1 === peg$FAILED) {
13615 s1 = peg$currPos;
13616 s2 = peg$currPos;
13617 s3 = peg$currPos;
13618 s4 = peg$parseh16_();
13619 if (s4 !== peg$FAILED) {
13620 s5 = peg$currPos;
13621 s6 = peg$parseh16_();
13622 if (s6 !== peg$FAILED) {
13623 s7 = peg$parseh16_();
13624 if (s7 === peg$FAILED) {
13625 s7 = null;
13626 }
13627 if (s7 !== peg$FAILED) {
13628 s6 = [s6, s7];
13629 s5 = s6;
13630 } else {
13631 peg$currPos = s5;
13632 s5 = peg$FAILED;
13633 }
13634 } else {
13635 peg$currPos = s5;
13636 s5 = peg$FAILED;
13637 }
13638 if (s5 === peg$FAILED) {
13639 s5 = null;
13640 }
13641 if (s5 !== peg$FAILED) {
13642 s4 = [s4, s5];
13643 s3 = s4;
13644 } else {
13645 peg$currPos = s3;
13646 s3 = peg$FAILED;
13647 }
13648 } else {
13649 peg$currPos = s3;
13650 s3 = peg$FAILED;
13651 }
13652 if (s3 === peg$FAILED) {
13653 s3 = null;
13654 }
13655 if (s3 !== peg$FAILED) {
13656 s4 = peg$parseh16();
13657 if (s4 !== peg$FAILED) {
13658 s3 = [s3, s4];
13659 s2 = s3;
13660 } else {
13661 peg$currPos = s2;
13662 s2 = peg$FAILED;
13663 }
13664 } else {
13665 peg$currPos = s2;
13666 s2 = peg$FAILED;
13667 }
13668 if (s2 === peg$FAILED) {
13669 s2 = null;
13670 }
13671 if (s2 !== peg$FAILED) {
13672 if (input.substr(peg$currPos, 2) === peg$c406) {
13673 s3 = peg$c406;
13674 peg$currPos += 2;
13675 } else {
13676 s3 = peg$FAILED;
13677 if (peg$silentFails === 0) { peg$fail(peg$c407); }
13678 }
13679 if (s3 !== peg$FAILED) {
13680 s4 = peg$parseh16_();
13681 if (s4 !== peg$FAILED) {
13682 s5 = peg$parsels32();
13683 if (s5 !== peg$FAILED) {
13684 s2 = [s2, s3, s4, s5];
13685 s1 = s2;
13686 } else {
13687 peg$currPos = s1;
13688 s1 = peg$FAILED;
13689 }
13690 } else {
13691 peg$currPos = s1;
13692 s1 = peg$FAILED;
13693 }
13694 } else {
13695 peg$currPos = s1;
13696 s1 = peg$FAILED;
13697 }
13698 } else {
13699 peg$currPos = s1;
13700 s1 = peg$FAILED;
13701 }
13702 if (s1 === peg$FAILED) {
13703 s1 = peg$currPos;
13704 s2 = peg$currPos;
13705 s3 = peg$currPos;
13706 s4 = peg$parseh16_();
13707 if (s4 !== peg$FAILED) {
13708 s5 = peg$currPos;
13709 s6 = peg$parseh16_();
13710 if (s6 !== peg$FAILED) {
13711 s7 = peg$currPos;
13712 s8 = peg$parseh16_();
13713 if (s8 !== peg$FAILED) {
13714 s9 = peg$parseh16_();
13715 if (s9 === peg$FAILED) {
13716 s9 = null;
13717 }
13718 if (s9 !== peg$FAILED) {
13719 s8 = [s8, s9];
13720 s7 = s8;
13721 } else {
13722 peg$currPos = s7;
13723 s7 = peg$FAILED;
13724 }
13725 } else {
13726 peg$currPos = s7;
13727 s7 = peg$FAILED;
13728 }
13729 if (s7 === peg$FAILED) {
13730 s7 = null;
13731 }
13732 if (s7 !== peg$FAILED) {
13733 s6 = [s6, s7];
13734 s5 = s6;
13735 } else {
13736 peg$currPos = s5;
13737 s5 = peg$FAILED;
13738 }
13739 } else {
13740 peg$currPos = s5;
13741 s5 = peg$FAILED;
13742 }
13743 if (s5 === peg$FAILED) {
13744 s5 = null;
13745 }
13746 if (s5 !== peg$FAILED) {
13747 s4 = [s4, s5];
13748 s3 = s4;
13749 } else {
13750 peg$currPos = s3;
13751 s3 = peg$FAILED;
13752 }
13753 } else {
13754 peg$currPos = s3;
13755 s3 = peg$FAILED;
13756 }
13757 if (s3 === peg$FAILED) {
13758 s3 = null;
13759 }
13760 if (s3 !== peg$FAILED) {
13761 s4 = peg$parseh16();
13762 if (s4 !== peg$FAILED) {
13763 s3 = [s3, s4];
13764 s2 = s3;
13765 } else {
13766 peg$currPos = s2;
13767 s2 = peg$FAILED;
13768 }
13769 } else {
13770 peg$currPos = s2;
13771 s2 = peg$FAILED;
13772 }
13773 if (s2 === peg$FAILED) {
13774 s2 = null;
13775 }
13776 if (s2 !== peg$FAILED) {
13777 if (input.substr(peg$currPos, 2) === peg$c406) {
13778 s3 = peg$c406;
13779 peg$currPos += 2;
13780 } else {
13781 s3 = peg$FAILED;
13782 if (peg$silentFails === 0) { peg$fail(peg$c407); }
13783 }
13784 if (s3 !== peg$FAILED) {
13785 s4 = peg$parsels32();
13786 if (s4 !== peg$FAILED) {
13787 s2 = [s2, s3, s4];
13788 s1 = s2;
13789 } else {
13790 peg$currPos = s1;
13791 s1 = peg$FAILED;
13792 }
13793 } else {
13794 peg$currPos = s1;
13795 s1 = peg$FAILED;
13796 }
13797 } else {
13798 peg$currPos = s1;
13799 s1 = peg$FAILED;
13800 }
13801 if (s1 === peg$FAILED) {
13802 s1 = peg$currPos;
13803 s2 = peg$currPos;
13804 s3 = peg$currPos;
13805 s4 = peg$parseh16_();
13806 if (s4 !== peg$FAILED) {
13807 s5 = peg$currPos;
13808 s6 = peg$parseh16_();
13809 if (s6 !== peg$FAILED) {
13810 s7 = peg$currPos;
13811 s8 = peg$parseh16_();
13812 if (s8 !== peg$FAILED) {
13813 s9 = peg$currPos;
13814 s10 = peg$parseh16_();
13815 if (s10 !== peg$FAILED) {
13816 s11 = peg$parseh16_();
13817 if (s11 === peg$FAILED) {
13818 s11 = null;
13819 }
13820 if (s11 !== peg$FAILED) {
13821 s10 = [s10, s11];
13822 s9 = s10;
13823 } else {
13824 peg$currPos = s9;
13825 s9 = peg$FAILED;
13826 }
13827 } else {
13828 peg$currPos = s9;
13829 s9 = peg$FAILED;
13830 }
13831 if (s9 === peg$FAILED) {
13832 s9 = null;
13833 }
13834 if (s9 !== peg$FAILED) {
13835 s8 = [s8, s9];
13836 s7 = s8;
13837 } else {
13838 peg$currPos = s7;
13839 s7 = peg$FAILED;
13840 }
13841 } else {
13842 peg$currPos = s7;
13843 s7 = peg$FAILED;
13844 }
13845 if (s7 === peg$FAILED) {
13846 s7 = null;
13847 }
13848 if (s7 !== peg$FAILED) {
13849 s6 = [s6, s7];
13850 s5 = s6;
13851 } else {
13852 peg$currPos = s5;
13853 s5 = peg$FAILED;
13854 }
13855 } else {
13856 peg$currPos = s5;
13857 s5 = peg$FAILED;
13858 }
13859 if (s5 === peg$FAILED) {
13860 s5 = null;
13861 }
13862 if (s5 !== peg$FAILED) {
13863 s4 = [s4, s5];
13864 s3 = s4;
13865 } else {
13866 peg$currPos = s3;
13867 s3 = peg$FAILED;
13868 }
13869 } else {
13870 peg$currPos = s3;
13871 s3 = peg$FAILED;
13872 }
13873 if (s3 === peg$FAILED) {
13874 s3 = null;
13875 }
13876 if (s3 !== peg$FAILED) {
13877 s4 = peg$parseh16();
13878 if (s4 !== peg$FAILED) {
13879 s3 = [s3, s4];
13880 s2 = s3;
13881 } else {
13882 peg$currPos = s2;
13883 s2 = peg$FAILED;
13884 }
13885 } else {
13886 peg$currPos = s2;
13887 s2 = peg$FAILED;
13888 }
13889 if (s2 === peg$FAILED) {
13890 s2 = null;
13891 }
13892 if (s2 !== peg$FAILED) {
13893 if (input.substr(peg$currPos, 2) === peg$c406) {
13894 s3 = peg$c406;
13895 peg$currPos += 2;
13896 } else {
13897 s3 = peg$FAILED;
13898 if (peg$silentFails === 0) { peg$fail(peg$c407); }
13899 }
13900 if (s3 !== peg$FAILED) {
13901 s4 = peg$parseh16();
13902 if (s4 !== peg$FAILED) {
13903 s2 = [s2, s3, s4];
13904 s1 = s2;
13905 } else {
13906 peg$currPos = s1;
13907 s1 = peg$FAILED;
13908 }
13909 } else {
13910 peg$currPos = s1;
13911 s1 = peg$FAILED;
13912 }
13913 } else {
13914 peg$currPos = s1;
13915 s1 = peg$FAILED;
13916 }
13917 if (s1 === peg$FAILED) {
13918 s1 = peg$currPos;
13919 s2 = peg$currPos;
13920 s3 = peg$currPos;
13921 s4 = peg$parseh16_();
13922 if (s4 !== peg$FAILED) {
13923 s5 = peg$currPos;
13924 s6 = peg$parseh16_();
13925 if (s6 !== peg$FAILED) {
13926 s7 = peg$currPos;
13927 s8 = peg$parseh16_();
13928 if (s8 !== peg$FAILED) {
13929 s9 = peg$currPos;
13930 s10 = peg$parseh16_();
13931 if (s10 !== peg$FAILED) {
13932 s11 = peg$currPos;
13933 s12 = peg$parseh16_();
13934 if (s12 !== peg$FAILED) {
13935 s13 = peg$parseh16_();
13936 if (s13 === peg$FAILED) {
13937 s13 = null;
13938 }
13939 if (s13 !== peg$FAILED) {
13940 s12 = [s12, s13];
13941 s11 = s12;
13942 } else {
13943 peg$currPos = s11;
13944 s11 = peg$FAILED;
13945 }
13946 } else {
13947 peg$currPos = s11;
13948 s11 = peg$FAILED;
13949 }
13950 if (s11 === peg$FAILED) {
13951 s11 = null;
13952 }
13953 if (s11 !== peg$FAILED) {
13954 s10 = [s10, s11];
13955 s9 = s10;
13956 } else {
13957 peg$currPos = s9;
13958 s9 = peg$FAILED;
13959 }
13960 } else {
13961 peg$currPos = s9;
13962 s9 = peg$FAILED;
13963 }
13964 if (s9 === peg$FAILED) {
13965 s9 = null;
13966 }
13967 if (s9 !== peg$FAILED) {
13968 s8 = [s8, s9];
13969 s7 = s8;
13970 } else {
13971 peg$currPos = s7;
13972 s7 = peg$FAILED;
13973 }
13974 } else {
13975 peg$currPos = s7;
13976 s7 = peg$FAILED;
13977 }
13978 if (s7 === peg$FAILED) {
13979 s7 = null;
13980 }
13981 if (s7 !== peg$FAILED) {
13982 s6 = [s6, s7];
13983 s5 = s6;
13984 } else {
13985 peg$currPos = s5;
13986 s5 = peg$FAILED;
13987 }
13988 } else {
13989 peg$currPos = s5;
13990 s5 = peg$FAILED;
13991 }
13992 if (s5 === peg$FAILED) {
13993 s5 = null;
13994 }
13995 if (s5 !== peg$FAILED) {
13996 s4 = [s4, s5];
13997 s3 = s4;
13998 } else {
13999 peg$currPos = s3;
14000 s3 = peg$FAILED;
14001 }
14002 } else {
14003 peg$currPos = s3;
14004 s3 = peg$FAILED;
14005 }
14006 if (s3 === peg$FAILED) {
14007 s3 = null;
14008 }
14009 if (s3 !== peg$FAILED) {
14010 s4 = peg$parseh16();
14011 if (s4 !== peg$FAILED) {
14012 s3 = [s3, s4];
14013 s2 = s3;
14014 } else {
14015 peg$currPos = s2;
14016 s2 = peg$FAILED;
14017 }
14018 } else {
14019 peg$currPos = s2;
14020 s2 = peg$FAILED;
14021 }
14022 if (s2 === peg$FAILED) {
14023 s2 = null;
14024 }
14025 if (s2 !== peg$FAILED) {
14026 if (input.substr(peg$currPos, 2) === peg$c406) {
14027 s3 = peg$c406;
14028 peg$currPos += 2;
14029 } else {
14030 s3 = peg$FAILED;
14031 if (peg$silentFails === 0) { peg$fail(peg$c407); }
14032 }
14033 if (s3 !== peg$FAILED) {
14034 s2 = [s2, s3];
14035 s1 = s2;
14036 } else {
14037 peg$currPos = s1;
14038 s1 = peg$FAILED;
14039 }
14040 } else {
14041 peg$currPos = s1;
14042 s1 = peg$FAILED;
14043 }
14044 }
14045 }
14046 }
14047 }
14048 }
14049 }
14050 }
14051 }
14052 if (s1 !== peg$FAILED) {
14053 s0 = input.substring(s0, peg$currPos);
14054 } else {
14055 s0 = s1;
14056 }
14057
14058 return s0;
14059 }
14060
14061 function peg$parsels32() {
14062 var s0, s1, s2, s3;
14063
14064 s0 = peg$currPos;
14065 s1 = peg$parseh16();
14066 if (s1 !== peg$FAILED) {
14067 if (input.charCodeAt(peg$currPos) === 58) {
14068 s2 = peg$c311;
14069 peg$currPos++;
14070 } else {
14071 s2 = peg$FAILED;
14072 if (peg$silentFails === 0) { peg$fail(peg$c312); }
14073 }
14074 if (s2 !== peg$FAILED) {
14075 s3 = peg$parseh16();
14076 if (s3 !== peg$FAILED) {
14077 s1 = [s1, s2, s3];
14078 s0 = s1;
14079 } else {
14080 peg$currPos = s0;
14081 s0 = peg$FAILED;
14082 }
14083 } else {
14084 peg$currPos = s0;
14085 s0 = peg$FAILED;
14086 }
14087 } else {
14088 peg$currPos = s0;
14089 s0 = peg$FAILED;
14090 }
14091 if (s0 === peg$FAILED) {
14092 s0 = peg$parseIPv4address();
14093 }
14094
14095 return s0;
14096 }
14097
14098 function peg$parseh16_() {
14099 var s0, s1, s2;
14100
14101 s0 = peg$currPos;
14102 s1 = peg$parseh16();
14103 if (s1 !== peg$FAILED) {
14104 if (input.charCodeAt(peg$currPos) === 58) {
14105 s2 = peg$c311;
14106 peg$currPos++;
14107 } else {
14108 s2 = peg$FAILED;
14109 if (peg$silentFails === 0) { peg$fail(peg$c312); }
14110 }
14111 if (s2 !== peg$FAILED) {
14112 s1 = [s1, s2];
14113 s0 = s1;
14114 } else {
14115 peg$currPos = s0;
14116 s0 = peg$FAILED;
14117 }
14118 } else {
14119 peg$currPos = s0;
14120 s0 = peg$FAILED;
14121 }
14122
14123 return s0;
14124 }
14125
14126 function peg$parseh16() {
14127 var s0, s1, s2, s3, s4, s5, s6, s7;
14128
14129 s0 = peg$currPos;
14130 s1 = peg$currPos;
14131 s2 = peg$parseHEXDIG();
14132 if (s2 !== peg$FAILED) {
14133 s3 = peg$currPos;
14134 s4 = peg$parseHEXDIG();
14135 if (s4 !== peg$FAILED) {
14136 s5 = peg$currPos;
14137 s6 = peg$parseHEXDIG();
14138 if (s6 !== peg$FAILED) {
14139 s7 = peg$parseHEXDIG();
14140 if (s7 === peg$FAILED) {
14141 s7 = null;
14142 }
14143 if (s7 !== peg$FAILED) {
14144 s6 = [s6, s7];
14145 s5 = s6;
14146 } else {
14147 peg$currPos = s5;
14148 s5 = peg$FAILED;
14149 }
14150 } else {
14151 peg$currPos = s5;
14152 s5 = peg$FAILED;
14153 }
14154 if (s5 === peg$FAILED) {
14155 s5 = null;
14156 }
14157 if (s5 !== peg$FAILED) {
14158 s4 = [s4, s5];
14159 s3 = s4;
14160 } else {
14161 peg$currPos = s3;
14162 s3 = peg$FAILED;
14163 }
14164 } else {
14165 peg$currPos = s3;
14166 s3 = peg$FAILED;
14167 }
14168 if (s3 === peg$FAILED) {
14169 s3 = null;
14170 }
14171 if (s3 !== peg$FAILED) {
14172 s2 = [s2, s3];
14173 s1 = s2;
14174 } else {
14175 peg$currPos = s1;
14176 s1 = peg$FAILED;
14177 }
14178 } else {
14179 peg$currPos = s1;
14180 s1 = peg$FAILED;
14181 }
14182 if (s1 !== peg$FAILED) {
14183 s0 = input.substring(s0, peg$currPos);
14184 } else {
14185 s0 = s1;
14186 }
14187
14188 return s0;
14189 }
14190
14191 function peg$parseIPv4address() {
14192 var s0, s1, s2, s3, s4, s5, s6, s7, s8;
14193
14194 s0 = peg$currPos;
14195 s1 = peg$currPos;
14196 s2 = peg$parsedec_octet();
14197 if (s2 !== peg$FAILED) {
14198 if (input.charCodeAt(peg$currPos) === 46) {
14199 s3 = peg$c54;
14200 peg$currPos++;
14201 } else {
14202 s3 = peg$FAILED;
14203 if (peg$silentFails === 0) { peg$fail(peg$c55); }
14204 }
14205 if (s3 !== peg$FAILED) {
14206 s4 = peg$parsedec_octet();
14207 if (s4 !== peg$FAILED) {
14208 if (input.charCodeAt(peg$currPos) === 46) {
14209 s5 = peg$c54;
14210 peg$currPos++;
14211 } else {
14212 s5 = peg$FAILED;
14213 if (peg$silentFails === 0) { peg$fail(peg$c55); }
14214 }
14215 if (s5 !== peg$FAILED) {
14216 s6 = peg$parsedec_octet();
14217 if (s6 !== peg$FAILED) {
14218 if (input.charCodeAt(peg$currPos) === 46) {
14219 s7 = peg$c54;
14220 peg$currPos++;
14221 } else {
14222 s7 = peg$FAILED;
14223 if (peg$silentFails === 0) { peg$fail(peg$c55); }
14224 }
14225 if (s7 !== peg$FAILED) {
14226 s8 = peg$parsedec_octet();
14227 if (s8 !== peg$FAILED) {
14228 s2 = [s2, s3, s4, s5, s6, s7, s8];
14229 s1 = s2;
14230 } else {
14231 peg$currPos = s1;
14232 s1 = peg$FAILED;
14233 }
14234 } else {
14235 peg$currPos = s1;
14236 s1 = peg$FAILED;
14237 }
14238 } else {
14239 peg$currPos = s1;
14240 s1 = peg$FAILED;
14241 }
14242 } else {
14243 peg$currPos = s1;
14244 s1 = peg$FAILED;
14245 }
14246 } else {
14247 peg$currPos = s1;
14248 s1 = peg$FAILED;
14249 }
14250 } else {
14251 peg$currPos = s1;
14252 s1 = peg$FAILED;
14253 }
14254 } else {
14255 peg$currPos = s1;
14256 s1 = peg$FAILED;
14257 }
14258 if (s1 !== peg$FAILED) {
14259 s0 = input.substring(s0, peg$currPos);
14260 } else {
14261 s0 = s1;
14262 }
14263
14264 return s0;
14265 }
14266
14267 function peg$parsedec_octet() {
14268 var s0, s1, s2, s3, s4;
14269
14270 s0 = peg$currPos;
14271 s1 = peg$currPos;
14272 if (input.substr(peg$currPos, 2) === peg$c408) {
14273 s2 = peg$c408;
14274 peg$currPos += 2;
14275 } else {
14276 s2 = peg$FAILED;
14277 if (peg$silentFails === 0) { peg$fail(peg$c409); }
14278 }
14279 if (s2 !== peg$FAILED) {
14280 if (peg$c410.test(input.charAt(peg$currPos))) {
14281 s3 = input.charAt(peg$currPos);
14282 peg$currPos++;
14283 } else {
14284 s3 = peg$FAILED;
14285 if (peg$silentFails === 0) { peg$fail(peg$c411); }
14286 }
14287 if (s3 !== peg$FAILED) {
14288 s2 = [s2, s3];
14289 s1 = s2;
14290 } else {
14291 peg$currPos = s1;
14292 s1 = peg$FAILED;
14293 }
14294 } else {
14295 peg$currPos = s1;
14296 s1 = peg$FAILED;
14297 }
14298 if (s1 === peg$FAILED) {
14299 s1 = peg$currPos;
14300 if (input.charCodeAt(peg$currPos) === 50) {
14301 s2 = peg$c412;
14302 peg$currPos++;
14303 } else {
14304 s2 = peg$FAILED;
14305 if (peg$silentFails === 0) { peg$fail(peg$c413); }
14306 }
14307 if (s2 !== peg$FAILED) {
14308 if (peg$c414.test(input.charAt(peg$currPos))) {
14309 s3 = input.charAt(peg$currPos);
14310 peg$currPos++;
14311 } else {
14312 s3 = peg$FAILED;
14313 if (peg$silentFails === 0) { peg$fail(peg$c415); }
14314 }
14315 if (s3 !== peg$FAILED) {
14316 s4 = peg$parseDIGIT();
14317 if (s4 !== peg$FAILED) {
14318 s2 = [s2, s3, s4];
14319 s1 = s2;
14320 } else {
14321 peg$currPos = s1;
14322 s1 = peg$FAILED;
14323 }
14324 } else {
14325 peg$currPos = s1;
14326 s1 = peg$FAILED;
14327 }
14328 } else {
14329 peg$currPos = s1;
14330 s1 = peg$FAILED;
14331 }
14332 if (s1 === peg$FAILED) {
14333 s1 = peg$currPos;
14334 if (input.charCodeAt(peg$currPos) === 49) {
14335 s2 = peg$c379;
14336 peg$currPos++;
14337 } else {
14338 s2 = peg$FAILED;
14339 if (peg$silentFails === 0) { peg$fail(peg$c380); }
14340 }
14341 if (s2 !== peg$FAILED) {
14342 s3 = peg$parseDIGIT();
14343 if (s3 !== peg$FAILED) {
14344 s4 = peg$parseDIGIT();
14345 if (s4 !== peg$FAILED) {
14346 s2 = [s2, s3, s4];
14347 s1 = s2;
14348 } else {
14349 peg$currPos = s1;
14350 s1 = peg$FAILED;
14351 }
14352 } else {
14353 peg$currPos = s1;
14354 s1 = peg$FAILED;
14355 }
14356 } else {
14357 peg$currPos = s1;
14358 s1 = peg$FAILED;
14359 }
14360 if (s1 === peg$FAILED) {
14361 s1 = peg$currPos;
14362 if (peg$c63.test(input.charAt(peg$currPos))) {
14363 s2 = input.charAt(peg$currPos);
14364 peg$currPos++;
14365 } else {
14366 s2 = peg$FAILED;
14367 if (peg$silentFails === 0) { peg$fail(peg$c64); }
14368 }
14369 if (s2 !== peg$FAILED) {
14370 s3 = peg$parseDIGIT();
14371 if (s3 !== peg$FAILED) {
14372 s2 = [s2, s3];
14373 s1 = s2;
14374 } else {
14375 peg$currPos = s1;
14376 s1 = peg$FAILED;
14377 }
14378 } else {
14379 peg$currPos = s1;
14380 s1 = peg$FAILED;
14381 }
14382 if (s1 === peg$FAILED) {
14383 s1 = peg$parseDIGIT();
14384 }
14385 }
14386 }
14387 }
14388 if (s1 !== peg$FAILED) {
14389 s0 = input.substring(s0, peg$currPos);
14390 } else {
14391 s0 = s1;
14392 }
14393
14394 return s0;
14395 }
14396
14397 function peg$parsereg_name() {
14398 var s0, s1, s2;
14399
14400 s0 = peg$currPos;
14401 s1 = [];
14402 s2 = peg$parsereg_name_item_();
14403 while (s2 !== peg$FAILED) {
14404 s1.push(s2);
14405 s2 = peg$parsereg_name_item_();
14406 }
14407 if (s1 !== peg$FAILED) {
14408 s0 = input.substring(s0, peg$currPos);
14409 } else {
14410 s0 = s1;
14411 }
14412
14413 return s0;
14414 }
14415
14416 function peg$parsereg_name_item_() {
14417 var s0;
14418
14419 s0 = peg$parseunreserved();
14420 if (s0 === peg$FAILED) {
14421 s0 = peg$parsepct_encoded();
14422 }
14423
14424 return s0;
14425 }
14426
14427 function peg$parseport() {
14428 var s0, s1, s2;
14429
14430 s0 = peg$currPos;
14431 s1 = [];
14432 s2 = peg$parseDIGIT();
14433 while (s2 !== peg$FAILED) {
14434 s1.push(s2);
14435 s2 = peg$parseDIGIT();
14436 }
14437 if (s1 !== peg$FAILED) {
14438 s0 = input.substring(s0, peg$currPos);
14439 } else {
14440 s0 = s1;
14441 }
14442
14443 return s0;
14444 }
14445
14446 function peg$parsepath() {
14447 var s0;
14448
14449 s0 = peg$parsepath_abempty();
14450 if (s0 === peg$FAILED) {
14451 s0 = peg$parsepath_absolute();
14452 if (s0 === peg$FAILED) {
14453 s0 = peg$parsepath_noscheme();
14454 if (s0 === peg$FAILED) {
14455 s0 = peg$parsepath_rootless();
14456 if (s0 === peg$FAILED) {
14457 s0 = peg$parsepath_empty();
14458 }
14459 }
14460 }
14461 }
14462
14463 return s0;
14464 }
14465
14466 function peg$parsepath_abempty() {
14467 var s0, s1, s2, s3, s4;
14468
14469 s0 = peg$currPos;
14470 s1 = [];
14471 s2 = peg$currPos;
14472 if (input.charCodeAt(peg$currPos) === 47) {
14473 s3 = peg$c105;
14474 peg$currPos++;
14475 } else {
14476 s3 = peg$FAILED;
14477 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14478 }
14479 if (s3 !== peg$FAILED) {
14480 s4 = peg$parsesegment();
14481 if (s4 !== peg$FAILED) {
14482 s3 = [s3, s4];
14483 s2 = s3;
14484 } else {
14485 peg$currPos = s2;
14486 s2 = peg$FAILED;
14487 }
14488 } else {
14489 peg$currPos = s2;
14490 s2 = peg$FAILED;
14491 }
14492 while (s2 !== peg$FAILED) {
14493 s1.push(s2);
14494 s2 = peg$currPos;
14495 if (input.charCodeAt(peg$currPos) === 47) {
14496 s3 = peg$c105;
14497 peg$currPos++;
14498 } else {
14499 s3 = peg$FAILED;
14500 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14501 }
14502 if (s3 !== peg$FAILED) {
14503 s4 = peg$parsesegment();
14504 if (s4 !== peg$FAILED) {
14505 s3 = [s3, s4];
14506 s2 = s3;
14507 } else {
14508 peg$currPos = s2;
14509 s2 = peg$FAILED;
14510 }
14511 } else {
14512 peg$currPos = s2;
14513 s2 = peg$FAILED;
14514 }
14515 }
14516 if (s1 !== peg$FAILED) {
14517 s0 = input.substring(s0, peg$currPos);
14518 } else {
14519 s0 = s1;
14520 }
14521
14522 return s0;
14523 }
14524
14525 function peg$parsepath_absolute() {
14526 var s0, s1, s2, s3, s4, s5, s6, s7, s8;
14527
14528 s0 = peg$currPos;
14529 s1 = peg$currPos;
14530 if (input.charCodeAt(peg$currPos) === 47) {
14531 s2 = peg$c105;
14532 peg$currPos++;
14533 } else {
14534 s2 = peg$FAILED;
14535 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14536 }
14537 if (s2 !== peg$FAILED) {
14538 s3 = peg$currPos;
14539 s4 = peg$parsesegment_nz();
14540 if (s4 !== peg$FAILED) {
14541 s5 = [];
14542 s6 = peg$currPos;
14543 if (input.charCodeAt(peg$currPos) === 47) {
14544 s7 = peg$c105;
14545 peg$currPos++;
14546 } else {
14547 s7 = peg$FAILED;
14548 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14549 }
14550 if (s7 !== peg$FAILED) {
14551 s8 = peg$parsesegment();
14552 if (s8 !== peg$FAILED) {
14553 s7 = [s7, s8];
14554 s6 = s7;
14555 } else {
14556 peg$currPos = s6;
14557 s6 = peg$FAILED;
14558 }
14559 } else {
14560 peg$currPos = s6;
14561 s6 = peg$FAILED;
14562 }
14563 while (s6 !== peg$FAILED) {
14564 s5.push(s6);
14565 s6 = peg$currPos;
14566 if (input.charCodeAt(peg$currPos) === 47) {
14567 s7 = peg$c105;
14568 peg$currPos++;
14569 } else {
14570 s7 = peg$FAILED;
14571 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14572 }
14573 if (s7 !== peg$FAILED) {
14574 s8 = peg$parsesegment();
14575 if (s8 !== peg$FAILED) {
14576 s7 = [s7, s8];
14577 s6 = s7;
14578 } else {
14579 peg$currPos = s6;
14580 s6 = peg$FAILED;
14581 }
14582 } else {
14583 peg$currPos = s6;
14584 s6 = peg$FAILED;
14585 }
14586 }
14587 if (s5 !== peg$FAILED) {
14588 s4 = [s4, s5];
14589 s3 = s4;
14590 } else {
14591 peg$currPos = s3;
14592 s3 = peg$FAILED;
14593 }
14594 } else {
14595 peg$currPos = s3;
14596 s3 = peg$FAILED;
14597 }
14598 if (s3 === peg$FAILED) {
14599 s3 = null;
14600 }
14601 if (s3 !== peg$FAILED) {
14602 s2 = [s2, s3];
14603 s1 = s2;
14604 } else {
14605 peg$currPos = s1;
14606 s1 = peg$FAILED;
14607 }
14608 } else {
14609 peg$currPos = s1;
14610 s1 = peg$FAILED;
14611 }
14612 if (s1 !== peg$FAILED) {
14613 s0 = input.substring(s0, peg$currPos);
14614 } else {
14615 s0 = s1;
14616 }
14617
14618 return s0;
14619 }
14620
14621 function peg$parsepath_noscheme() {
14622 var s0, s1, s2, s3, s4, s5, s6;
14623
14624 s0 = peg$currPos;
14625 s1 = peg$currPos;
14626 s2 = peg$parsesegment_nz_nc();
14627 if (s2 !== peg$FAILED) {
14628 s3 = [];
14629 s4 = peg$currPos;
14630 if (input.charCodeAt(peg$currPos) === 47) {
14631 s5 = peg$c105;
14632 peg$currPos++;
14633 } else {
14634 s5 = peg$FAILED;
14635 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14636 }
14637 if (s5 !== peg$FAILED) {
14638 s6 = peg$parsesegment();
14639 if (s6 !== peg$FAILED) {
14640 s5 = [s5, s6];
14641 s4 = s5;
14642 } else {
14643 peg$currPos = s4;
14644 s4 = peg$FAILED;
14645 }
14646 } else {
14647 peg$currPos = s4;
14648 s4 = peg$FAILED;
14649 }
14650 while (s4 !== peg$FAILED) {
14651 s3.push(s4);
14652 s4 = peg$currPos;
14653 if (input.charCodeAt(peg$currPos) === 47) {
14654 s5 = peg$c105;
14655 peg$currPos++;
14656 } else {
14657 s5 = peg$FAILED;
14658 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14659 }
14660 if (s5 !== peg$FAILED) {
14661 s6 = peg$parsesegment();
14662 if (s6 !== peg$FAILED) {
14663 s5 = [s5, s6];
14664 s4 = s5;
14665 } else {
14666 peg$currPos = s4;
14667 s4 = peg$FAILED;
14668 }
14669 } else {
14670 peg$currPos = s4;
14671 s4 = peg$FAILED;
14672 }
14673 }
14674 if (s3 !== peg$FAILED) {
14675 s2 = [s2, s3];
14676 s1 = s2;
14677 } else {
14678 peg$currPos = s1;
14679 s1 = peg$FAILED;
14680 }
14681 } else {
14682 peg$currPos = s1;
14683 s1 = peg$FAILED;
14684 }
14685 if (s1 !== peg$FAILED) {
14686 s0 = input.substring(s0, peg$currPos);
14687 } else {
14688 s0 = s1;
14689 }
14690
14691 return s0;
14692 }
14693
14694 function peg$parsepath_rootless() {
14695 var s0, s1, s2, s3, s4, s5, s6;
14696
14697 s0 = peg$currPos;
14698 s1 = peg$currPos;
14699 s2 = peg$parsesegment_nz();
14700 if (s2 !== peg$FAILED) {
14701 s3 = [];
14702 s4 = peg$currPos;
14703 if (input.charCodeAt(peg$currPos) === 47) {
14704 s5 = peg$c105;
14705 peg$currPos++;
14706 } else {
14707 s5 = peg$FAILED;
14708 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14709 }
14710 if (s5 !== peg$FAILED) {
14711 s6 = peg$parsesegment();
14712 if (s6 !== peg$FAILED) {
14713 s5 = [s5, s6];
14714 s4 = s5;
14715 } else {
14716 peg$currPos = s4;
14717 s4 = peg$FAILED;
14718 }
14719 } else {
14720 peg$currPos = s4;
14721 s4 = peg$FAILED;
14722 }
14723 while (s4 !== peg$FAILED) {
14724 s3.push(s4);
14725 s4 = peg$currPos;
14726 if (input.charCodeAt(peg$currPos) === 47) {
14727 s5 = peg$c105;
14728 peg$currPos++;
14729 } else {
14730 s5 = peg$FAILED;
14731 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14732 }
14733 if (s5 !== peg$FAILED) {
14734 s6 = peg$parsesegment();
14735 if (s6 !== peg$FAILED) {
14736 s5 = [s5, s6];
14737 s4 = s5;
14738 } else {
14739 peg$currPos = s4;
14740 s4 = peg$FAILED;
14741 }
14742 } else {
14743 peg$currPos = s4;
14744 s4 = peg$FAILED;
14745 }
14746 }
14747 if (s3 !== peg$FAILED) {
14748 s2 = [s2, s3];
14749 s1 = s2;
14750 } else {
14751 peg$currPos = s1;
14752 s1 = peg$FAILED;
14753 }
14754 } else {
14755 peg$currPos = s1;
14756 s1 = peg$FAILED;
14757 }
14758 if (s1 !== peg$FAILED) {
14759 s0 = input.substring(s0, peg$currPos);
14760 } else {
14761 s0 = s1;
14762 }
14763
14764 return s0;
14765 }
14766
14767 function peg$parsepath_empty() {
14768 var s0;
14769
14770 s0 = peg$c416;
14771
14772 return s0;
14773 }
14774
14775 function peg$parsesegment() {
14776 var s0, s1, s2;
14777
14778 s0 = peg$currPos;
14779 s1 = [];
14780 s2 = peg$parsepchar();
14781 while (s2 !== peg$FAILED) {
14782 s1.push(s2);
14783 s2 = peg$parsepchar();
14784 }
14785 if (s1 !== peg$FAILED) {
14786 s0 = input.substring(s0, peg$currPos);
14787 } else {
14788 s0 = s1;
14789 }
14790
14791 return s0;
14792 }
14793
14794 function peg$parsesegment_nz() {
14795 var s0, s1, s2;
14796
14797 s0 = peg$currPos;
14798 s1 = [];
14799 s2 = peg$parsepchar();
14800 if (s2 !== peg$FAILED) {
14801 while (s2 !== peg$FAILED) {
14802 s1.push(s2);
14803 s2 = peg$parsepchar();
14804 }
14805 } else {
14806 s1 = peg$FAILED;
14807 }
14808 if (s1 !== peg$FAILED) {
14809 s0 = input.substring(s0, peg$currPos);
14810 } else {
14811 s0 = s1;
14812 }
14813
14814 return s0;
14815 }
14816
14817 function peg$parsesegment_nz_nc() {
14818 var s0, s1, s2;
14819
14820 s0 = peg$currPos;
14821 s1 = [];
14822 s2 = peg$parseunreserved();
14823 if (s2 === peg$FAILED) {
14824 s2 = peg$parsepct_encoded();
14825 if (s2 === peg$FAILED) {
14826 s2 = peg$parsesub_delims();
14827 if (s2 === peg$FAILED) {
14828 if (input.charCodeAt(peg$currPos) === 64) {
14829 s2 = peg$c404;
14830 peg$currPos++;
14831 } else {
14832 s2 = peg$FAILED;
14833 if (peg$silentFails === 0) { peg$fail(peg$c405); }
14834 }
14835 }
14836 }
14837 }
14838 if (s2 !== peg$FAILED) {
14839 while (s2 !== peg$FAILED) {
14840 s1.push(s2);
14841 s2 = peg$parseunreserved();
14842 if (s2 === peg$FAILED) {
14843 s2 = peg$parsepct_encoded();
14844 if (s2 === peg$FAILED) {
14845 s2 = peg$parsesub_delims();
14846 if (s2 === peg$FAILED) {
14847 if (input.charCodeAt(peg$currPos) === 64) {
14848 s2 = peg$c404;
14849 peg$currPos++;
14850 } else {
14851 s2 = peg$FAILED;
14852 if (peg$silentFails === 0) { peg$fail(peg$c405); }
14853 }
14854 }
14855 }
14856 }
14857 }
14858 } else {
14859 s1 = peg$FAILED;
14860 }
14861 if (s1 !== peg$FAILED) {
14862 s0 = input.substring(s0, peg$currPos);
14863 } else {
14864 s0 = s1;
14865 }
14866
14867 return s0;
14868 }
14869
14870 function peg$parsepchar() {
14871 var s0;
14872
14873 s0 = peg$parseunreserved();
14874 if (s0 === peg$FAILED) {
14875 s0 = peg$parsepct_encoded();
14876 if (s0 === peg$FAILED) {
14877 s0 = peg$parsesub_delims();
14878 if (s0 === peg$FAILED) {
14879 if (input.charCodeAt(peg$currPos) === 58) {
14880 s0 = peg$c311;
14881 peg$currPos++;
14882 } else {
14883 s0 = peg$FAILED;
14884 if (peg$silentFails === 0) { peg$fail(peg$c312); }
14885 }
14886 if (s0 === peg$FAILED) {
14887 if (input.charCodeAt(peg$currPos) === 64) {
14888 s0 = peg$c404;
14889 peg$currPos++;
14890 } else {
14891 s0 = peg$FAILED;
14892 if (peg$silentFails === 0) { peg$fail(peg$c405); }
14893 }
14894 }
14895 }
14896 }
14897 }
14898
14899 return s0;
14900 }
14901
14902 function peg$parsequery() {
14903 var s0, s1, s2;
14904
14905 s0 = peg$currPos;
14906 s1 = [];
14907 s2 = peg$parsepchar();
14908 if (s2 === peg$FAILED) {
14909 if (input.charCodeAt(peg$currPos) === 47) {
14910 s2 = peg$c105;
14911 peg$currPos++;
14912 } else {
14913 s2 = peg$FAILED;
14914 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14915 }
14916 if (s2 === peg$FAILED) {
14917 if (input.charCodeAt(peg$currPos) === 63) {
14918 s2 = peg$c309;
14919 peg$currPos++;
14920 } else {
14921 s2 = peg$FAILED;
14922 if (peg$silentFails === 0) { peg$fail(peg$c310); }
14923 }
14924 }
14925 }
14926 while (s2 !== peg$FAILED) {
14927 s1.push(s2);
14928 s2 = peg$parsepchar();
14929 if (s2 === peg$FAILED) {
14930 if (input.charCodeAt(peg$currPos) === 47) {
14931 s2 = peg$c105;
14932 peg$currPos++;
14933 } else {
14934 s2 = peg$FAILED;
14935 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14936 }
14937 if (s2 === peg$FAILED) {
14938 if (input.charCodeAt(peg$currPos) === 63) {
14939 s2 = peg$c309;
14940 peg$currPos++;
14941 } else {
14942 s2 = peg$FAILED;
14943 if (peg$silentFails === 0) { peg$fail(peg$c310); }
14944 }
14945 }
14946 }
14947 }
14948 if (s1 !== peg$FAILED) {
14949 s0 = input.substring(s0, peg$currPos);
14950 } else {
14951 s0 = s1;
14952 }
14953
14954 return s0;
14955 }
14956
14957 function peg$parsefragment() {
14958 var s0, s1, s2;
14959
14960 s0 = peg$currPos;
14961 s1 = [];
14962 s2 = peg$parsepchar();
14963 if (s2 === peg$FAILED) {
14964 if (input.charCodeAt(peg$currPos) === 47) {
14965 s2 = peg$c105;
14966 peg$currPos++;
14967 } else {
14968 s2 = peg$FAILED;
14969 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14970 }
14971 if (s2 === peg$FAILED) {
14972 if (input.charCodeAt(peg$currPos) === 63) {
14973 s2 = peg$c309;
14974 peg$currPos++;
14975 } else {
14976 s2 = peg$FAILED;
14977 if (peg$silentFails === 0) { peg$fail(peg$c310); }
14978 }
14979 }
14980 }
14981 while (s2 !== peg$FAILED) {
14982 s1.push(s2);
14983 s2 = peg$parsepchar();
14984 if (s2 === peg$FAILED) {
14985 if (input.charCodeAt(peg$currPos) === 47) {
14986 s2 = peg$c105;
14987 peg$currPos++;
14988 } else {
14989 s2 = peg$FAILED;
14990 if (peg$silentFails === 0) { peg$fail(peg$c106); }
14991 }
14992 if (s2 === peg$FAILED) {
14993 if (input.charCodeAt(peg$currPos) === 63) {
14994 s2 = peg$c309;
14995 peg$currPos++;
14996 } else {
14997 s2 = peg$FAILED;
14998 if (peg$silentFails === 0) { peg$fail(peg$c310); }
14999 }
15000 }
15001 }
15002 }
15003 if (s1 !== peg$FAILED) {
15004 s0 = input.substring(s0, peg$currPos);
15005 } else {
15006 s0 = s1;
15007 }
15008
15009 return s0;
15010 }
15011
15012 function peg$parseURI_reference() {
15013 var s0;
15014
15015 s0 = peg$parseURI();
15016 if (s0 === peg$FAILED) {
15017 s0 = peg$parserelative_ref();
15018 }
15019
15020 return s0;
15021 }
15022
15023 function peg$parserelative_ref() {
15024 var s0, s1, s2, s3, s4, s5;
15025
15026 s0 = peg$currPos;
15027 s1 = peg$parserelative_part();
15028 if (s1 !== peg$FAILED) {
15029 s2 = peg$currPos;
15030 if (input.charCodeAt(peg$currPos) === 63) {
15031 s3 = peg$c309;
15032 peg$currPos++;
15033 } else {
15034 s3 = peg$FAILED;
15035 if (peg$silentFails === 0) { peg$fail(peg$c310); }
15036 }
15037 if (s3 !== peg$FAILED) {
15038 s4 = peg$parsequery();
15039 if (s4 !== peg$FAILED) {
15040 s3 = [s3, s4];
15041 s2 = s3;
15042 } else {
15043 peg$currPos = s2;
15044 s2 = peg$FAILED;
15045 }
15046 } else {
15047 peg$currPos = s2;
15048 s2 = peg$FAILED;
15049 }
15050 if (s2 === peg$FAILED) {
15051 s2 = null;
15052 }
15053 if (s2 !== peg$FAILED) {
15054 s3 = peg$currPos;
15055 if (input.charCodeAt(peg$currPos) === 35) {
15056 s4 = peg$c402;
15057 peg$currPos++;
15058 } else {
15059 s4 = peg$FAILED;
15060 if (peg$silentFails === 0) { peg$fail(peg$c403); }
15061 }
15062 if (s4 !== peg$FAILED) {
15063 s5 = peg$parsefragment();
15064 if (s5 !== peg$FAILED) {
15065 s4 = [s4, s5];
15066 s3 = s4;
15067 } else {
15068 peg$currPos = s3;
15069 s3 = peg$FAILED;
15070 }
15071 } else {
15072 peg$currPos = s3;
15073 s3 = peg$FAILED;
15074 }
15075 if (s3 === peg$FAILED) {
15076 s3 = null;
15077 }
15078 if (s3 !== peg$FAILED) {
15079 s1 = [s1, s2, s3];
15080 s0 = s1;
15081 } else {
15082 peg$currPos = s0;
15083 s0 = peg$FAILED;
15084 }
15085 } else {
15086 peg$currPos = s0;
15087 s0 = peg$FAILED;
15088 }
15089 } else {
15090 peg$currPos = s0;
15091 s0 = peg$FAILED;
15092 }
15093
15094 return s0;
15095 }
15096
15097 function peg$parserelative_part() {
15098 var s0, s1, s2, s3;
15099
15100 s0 = peg$currPos;
15101 if (input.substr(peg$currPos, 2) === peg$c33) {
15102 s1 = peg$c33;
15103 peg$currPos += 2;
15104 } else {
15105 s1 = peg$FAILED;
15106 if (peg$silentFails === 0) { peg$fail(peg$c34); }
15107 }
15108 if (s1 !== peg$FAILED) {
15109 s2 = peg$parseauthority();
15110 if (s2 !== peg$FAILED) {
15111 s3 = peg$parsepath_abempty();
15112 if (s3 !== peg$FAILED) {
15113 s1 = [s1, s2, s3];
15114 s0 = s1;
15115 } else {
15116 peg$currPos = s0;
15117 s0 = peg$FAILED;
15118 }
15119 } else {
15120 peg$currPos = s0;
15121 s0 = peg$FAILED;
15122 }
15123 } else {
15124 peg$currPos = s0;
15125 s0 = peg$FAILED;
15126 }
15127 if (s0 === peg$FAILED) {
15128 s0 = peg$parsepath_absolute();
15129 if (s0 === peg$FAILED) {
15130 s0 = peg$parsepath_noscheme();
15131 if (s0 === peg$FAILED) {
15132 s0 = peg$parsepath_empty();
15133 }
15134 }
15135 }
15136
15137 return s0;
15138 }
15139
15140 function peg$parseabsolute_URI() {
15141 var s0, s1, s2, s3, s4, s5, s6;
15142
15143 s0 = peg$currPos;
15144 s1 = peg$parsescheme();
15145 if (s1 !== peg$FAILED) {
15146 if (input.charCodeAt(peg$currPos) === 58) {
15147 s2 = peg$c311;
15148 peg$currPos++;
15149 } else {
15150 s2 = peg$FAILED;
15151 if (peg$silentFails === 0) { peg$fail(peg$c312); }
15152 }
15153 if (s2 !== peg$FAILED) {
15154 s3 = peg$parsehier_part();
15155 if (s3 !== peg$FAILED) {
15156 s4 = peg$currPos;
15157 if (input.charCodeAt(peg$currPos) === 63) {
15158 s5 = peg$c309;
15159 peg$currPos++;
15160 } else {
15161 s5 = peg$FAILED;
15162 if (peg$silentFails === 0) { peg$fail(peg$c310); }
15163 }
15164 if (s5 !== peg$FAILED) {
15165 s6 = peg$parsequery();
15166 if (s6 !== peg$FAILED) {
15167 s5 = [s5, s6];
15168 s4 = s5;
15169 } else {
15170 peg$currPos = s4;
15171 s4 = peg$FAILED;
15172 }
15173 } else {
15174 peg$currPos = s4;
15175 s4 = peg$FAILED;
15176 }
15177 if (s4 === peg$FAILED) {
15178 s4 = null;
15179 }
15180 if (s4 !== peg$FAILED) {
15181 s1 = [s1, s2, s3, s4];
15182 s0 = s1;
15183 } else {
15184 peg$currPos = s0;
15185 s0 = peg$FAILED;
15186 }
15187 } else {
15188 peg$currPos = s0;
15189 s0 = peg$FAILED;
15190 }
15191 } else {
15192 peg$currPos = s0;
15193 s0 = peg$FAILED;
15194 }
15195 } else {
15196 peg$currPos = s0;
15197 s0 = peg$FAILED;
15198 }
15199
15200 return s0;
15201 }
15202
15203 function peg$parseNamespaceToken() {
15204 var s0, s1, s2, s3;
15205
15206 s0 = peg$currPos;
15207 if (input.substr(peg$currPos, 9) === peg$c417) {
15208 s1 = peg$c417;
15209 peg$currPos += 9;
15210 } else {
15211 s1 = peg$FAILED;
15212 if (peg$silentFails === 0) { peg$fail(peg$c418); }
15213 }
15214 if (s1 !== peg$FAILED) {
15215 s2 = peg$currPos;
15216 peg$silentFails++;
15217 s3 = peg$parseIdentifierPart();
15218 peg$silentFails--;
15219 if (s3 === peg$FAILED) {
15220 s2 = void 0;
15221 } else {
15222 peg$currPos = s2;
15223 s2 = peg$FAILED;
15224 }
15225 if (s2 !== peg$FAILED) {
15226 s1 = [s1, s2];
15227 s0 = s1;
15228 } else {
15229 peg$currPos = s0;
15230 s0 = peg$FAILED;
15231 }
15232 } else {
15233 peg$currPos = s0;
15234 s0 = peg$FAILED;
15235 }
15236
15237 return s0;
15238 }
15239
15240 function peg$parseAbstractToken() {
15241 var s0, s1, s2, s3;
15242
15243 s0 = peg$currPos;
15244 if (input.substr(peg$currPos, 8) === peg$c419) {
15245 s1 = peg$c419;
15246 peg$currPos += 8;
15247 } else {
15248 s1 = peg$FAILED;
15249 if (peg$silentFails === 0) { peg$fail(peg$c420); }
15250 }
15251 if (s1 !== peg$FAILED) {
15252 s2 = peg$currPos;
15253 peg$silentFails++;
15254 s3 = peg$parseIdentifierPart();
15255 peg$silentFails--;
15256 if (s3 === peg$FAILED) {
15257 s2 = void 0;
15258 } else {
15259 peg$currPos = s2;
15260 s2 = peg$FAILED;
15261 }
15262 if (s2 !== peg$FAILED) {
15263 s1 = [s1, s2];
15264 s0 = s1;
15265 } else {
15266 peg$currPos = s0;
15267 s0 = peg$FAILED;
15268 }
15269 } else {
15270 peg$currPos = s0;
15271 s0 = peg$FAILED;
15272 }
15273
15274 return s0;
15275 }
15276
15277 function peg$parseConceptToken() {
15278 var s0, s1, s2, s3;
15279
15280 s0 = peg$currPos;
15281 if (input.substr(peg$currPos, 7) === peg$c421) {
15282 s1 = peg$c421;
15283 peg$currPos += 7;
15284 } else {
15285 s1 = peg$FAILED;
15286 if (peg$silentFails === 0) { peg$fail(peg$c422); }
15287 }
15288 if (s1 !== peg$FAILED) {
15289 s2 = peg$currPos;
15290 peg$silentFails++;
15291 s3 = peg$parseIdentifierPart();
15292 peg$silentFails--;
15293 if (s3 === peg$FAILED) {
15294 s2 = void 0;
15295 } else {
15296 peg$currPos = s2;
15297 s2 = peg$FAILED;
15298 }
15299 if (s2 !== peg$FAILED) {
15300 s1 = [s1, s2];
15301 s0 = s1;
15302 } else {
15303 peg$currPos = s0;
15304 s0 = peg$FAILED;
15305 }
15306 } else {
15307 peg$currPos = s0;
15308 s0 = peg$FAILED;
15309 }
15310
15311 return s0;
15312 }
15313
15314 function peg$parseAssetToken() {
15315 var s0, s1, s2, s3;
15316
15317 s0 = peg$currPos;
15318 if (input.substr(peg$currPos, 5) === peg$c423) {
15319 s1 = peg$c423;
15320 peg$currPos += 5;
15321 } else {
15322 s1 = peg$FAILED;
15323 if (peg$silentFails === 0) { peg$fail(peg$c424); }
15324 }
15325 if (s1 !== peg$FAILED) {
15326 s2 = peg$currPos;
15327 peg$silentFails++;
15328 s3 = peg$parseIdentifierPart();
15329 peg$silentFails--;
15330 if (s3 === peg$FAILED) {
15331 s2 = void 0;
15332 } else {
15333 peg$currPos = s2;
15334 s2 = peg$FAILED;
15335 }
15336 if (s2 !== peg$FAILED) {
15337 s1 = [s1, s2];
15338 s0 = s1;
15339 } else {
15340 peg$currPos = s0;
15341 s0 = peg$FAILED;
15342 }
15343 } else {
15344 peg$currPos = s0;
15345 s0 = peg$FAILED;
15346 }
15347
15348 return s0;
15349 }
15350
15351 function peg$parseTransactionToken() {
15352 var s0, s1, s2, s3;
15353
15354 s0 = peg$currPos;
15355 if (input.substr(peg$currPos, 11) === peg$c425) {
15356 s1 = peg$c425;
15357 peg$currPos += 11;
15358 } else {
15359 s1 = peg$FAILED;
15360 if (peg$silentFails === 0) { peg$fail(peg$c426); }
15361 }
15362 if (s1 !== peg$FAILED) {
15363 s2 = peg$currPos;
15364 peg$silentFails++;
15365 s3 = peg$parseIdentifierPart();
15366 peg$silentFails--;
15367 if (s3 === peg$FAILED) {
15368 s2 = void 0;
15369 } else {
15370 peg$currPos = s2;
15371 s2 = peg$FAILED;
15372 }
15373 if (s2 !== peg$FAILED) {
15374 s1 = [s1, s2];
15375 s0 = s1;
15376 } else {
15377 peg$currPos = s0;
15378 s0 = peg$FAILED;
15379 }
15380 } else {
15381 peg$currPos = s0;
15382 s0 = peg$FAILED;
15383 }
15384
15385 return s0;
15386 }
15387
15388 function peg$parseEventToken() {
15389 var s0, s1, s2, s3;
15390
15391 s0 = peg$currPos;
15392 if (input.substr(peg$currPos, 5) === peg$c427) {
15393 s1 = peg$c427;
15394 peg$currPos += 5;
15395 } else {
15396 s1 = peg$FAILED;
15397 if (peg$silentFails === 0) { peg$fail(peg$c428); }
15398 }
15399 if (s1 !== peg$FAILED) {
15400 s2 = peg$currPos;
15401 peg$silentFails++;
15402 s3 = peg$parseIdentifierPart();
15403 peg$silentFails--;
15404 if (s3 === peg$FAILED) {
15405 s2 = void 0;
15406 } else {
15407 peg$currPos = s2;
15408 s2 = peg$FAILED;
15409 }
15410 if (s2 !== peg$FAILED) {
15411 s1 = [s1, s2];
15412 s0 = s1;
15413 } else {
15414 peg$currPos = s0;
15415 s0 = peg$FAILED;
15416 }
15417 } else {
15418 peg$currPos = s0;
15419 s0 = peg$FAILED;
15420 }
15421
15422 return s0;
15423 }
15424
15425 function peg$parseParticipantToken() {
15426 var s0, s1, s2, s3;
15427
15428 s0 = peg$currPos;
15429 if (input.substr(peg$currPos, 11) === peg$c429) {
15430 s1 = peg$c429;
15431 peg$currPos += 11;
15432 } else {
15433 s1 = peg$FAILED;
15434 if (peg$silentFails === 0) { peg$fail(peg$c430); }
15435 }
15436 if (s1 !== peg$FAILED) {
15437 s2 = peg$currPos;
15438 peg$silentFails++;
15439 s3 = peg$parseIdentifierPart();
15440 peg$silentFails--;
15441 if (s3 === peg$FAILED) {
15442 s2 = void 0;
15443 } else {
15444 peg$currPos = s2;
15445 s2 = peg$FAILED;
15446 }
15447 if (s2 !== peg$FAILED) {
15448 s1 = [s1, s2];
15449 s0 = s1;
15450 } else {
15451 peg$currPos = s0;
15452 s0 = peg$FAILED;
15453 }
15454 } else {
15455 peg$currPos = s0;
15456 s0 = peg$FAILED;
15457 }
15458
15459 return s0;
15460 }
15461
15462 function peg$parseFromToken() {
15463 var s0, s1, s2, s3;
15464
15465 s0 = peg$currPos;
15466 if (input.substr(peg$currPos, 4) === peg$c431) {
15467 s1 = peg$c431;
15468 peg$currPos += 4;
15469 } else {
15470 s1 = peg$FAILED;
15471 if (peg$silentFails === 0) { peg$fail(peg$c432); }
15472 }
15473 if (s1 !== peg$FAILED) {
15474 s2 = peg$currPos;
15475 peg$silentFails++;
15476 s3 = peg$parseIdentifierPart();
15477 peg$silentFails--;
15478 if (s3 === peg$FAILED) {
15479 s2 = void 0;
15480 } else {
15481 peg$currPos = s2;
15482 s2 = peg$FAILED;
15483 }
15484 if (s2 !== peg$FAILED) {
15485 s1 = [s1, s2];
15486 s0 = s1;
15487 } else {
15488 peg$currPos = s0;
15489 s0 = peg$FAILED;
15490 }
15491 } else {
15492 peg$currPos = s0;
15493 s0 = peg$FAILED;
15494 }
15495
15496 return s0;
15497 }
15498
15499 function peg$parseIntegerType() {
15500 var s0, s1, s2, s3;
15501
15502 s0 = peg$currPos;
15503 if (input.substr(peg$currPos, 7) === peg$c433) {
15504 s1 = peg$c433;
15505 peg$currPos += 7;
15506 } else {
15507 s1 = peg$FAILED;
15508 if (peg$silentFails === 0) { peg$fail(peg$c434); }
15509 }
15510 if (s1 !== peg$FAILED) {
15511 s2 = peg$currPos;
15512 peg$silentFails++;
15513 s3 = peg$parseIdentifierPart();
15514 peg$silentFails--;
15515 if (s3 === peg$FAILED) {
15516 s2 = void 0;
15517 } else {
15518 peg$currPos = s2;
15519 s2 = peg$FAILED;
15520 }
15521 if (s2 !== peg$FAILED) {
15522 peg$savedPos = s0;
15523 s1 = peg$c435();
15524 s0 = s1;
15525 } else {
15526 peg$currPos = s0;
15527 s0 = peg$FAILED;
15528 }
15529 } else {
15530 peg$currPos = s0;
15531 s0 = peg$FAILED;
15532 }
15533
15534 return s0;
15535 }
15536
15537 function peg$parseDoubleType() {
15538 var s0, s1, s2, s3;
15539
15540 s0 = peg$currPos;
15541 if (input.substr(peg$currPos, 6) === peg$c436) {
15542 s1 = peg$c436;
15543 peg$currPos += 6;
15544 } else {
15545 s1 = peg$FAILED;
15546 if (peg$silentFails === 0) { peg$fail(peg$c437); }
15547 }
15548 if (s1 !== peg$FAILED) {
15549 s2 = peg$currPos;
15550 peg$silentFails++;
15551 s3 = peg$parseIdentifierPart();
15552 peg$silentFails--;
15553 if (s3 === peg$FAILED) {
15554 s2 = void 0;
15555 } else {
15556 peg$currPos = s2;
15557 s2 = peg$FAILED;
15558 }
15559 if (s2 !== peg$FAILED) {
15560 peg$savedPos = s0;
15561 s1 = peg$c438();
15562 s0 = s1;
15563 } else {
15564 peg$currPos = s0;
15565 s0 = peg$FAILED;
15566 }
15567 } else {
15568 peg$currPos = s0;
15569 s0 = peg$FAILED;
15570 }
15571
15572 return s0;
15573 }
15574
15575 function peg$parseLongType() {
15576 var s0, s1, s2, s3;
15577
15578 s0 = peg$currPos;
15579 if (input.substr(peg$currPos, 4) === peg$c439) {
15580 s1 = peg$c439;
15581 peg$currPos += 4;
15582 } else {
15583 s1 = peg$FAILED;
15584 if (peg$silentFails === 0) { peg$fail(peg$c440); }
15585 }
15586 if (s1 !== peg$FAILED) {
15587 s2 = peg$currPos;
15588 peg$silentFails++;
15589 s3 = peg$parseIdentifierPart();
15590 peg$silentFails--;
15591 if (s3 === peg$FAILED) {
15592 s2 = void 0;
15593 } else {
15594 peg$currPos = s2;
15595 s2 = peg$FAILED;
15596 }
15597 if (s2 !== peg$FAILED) {
15598 peg$savedPos = s0;
15599 s1 = peg$c441();
15600 s0 = s1;
15601 } else {
15602 peg$currPos = s0;
15603 s0 = peg$FAILED;
15604 }
15605 } else {
15606 peg$currPos = s0;
15607 s0 = peg$FAILED;
15608 }
15609
15610 return s0;
15611 }
15612
15613 function peg$parseStringType() {
15614 var s0, s1, s2, s3;
15615
15616 s0 = peg$currPos;
15617 if (input.substr(peg$currPos, 6) === peg$c442) {
15618 s1 = peg$c442;
15619 peg$currPos += 6;
15620 } else {
15621 s1 = peg$FAILED;
15622 if (peg$silentFails === 0) { peg$fail(peg$c443); }
15623 }
15624 if (s1 !== peg$FAILED) {
15625 s2 = peg$currPos;
15626 peg$silentFails++;
15627 s3 = peg$parseIdentifierPart();
15628 peg$silentFails--;
15629 if (s3 === peg$FAILED) {
15630 s2 = void 0;
15631 } else {
15632 peg$currPos = s2;
15633 s2 = peg$FAILED;
15634 }
15635 if (s2 !== peg$FAILED) {
15636 peg$savedPos = s0;
15637 s1 = peg$c444();
15638 s0 = s1;
15639 } else {
15640 peg$currPos = s0;
15641 s0 = peg$FAILED;
15642 }
15643 } else {
15644 peg$currPos = s0;
15645 s0 = peg$FAILED;
15646 }
15647
15648 return s0;
15649 }
15650
15651 function peg$parseDateTimeType() {
15652 var s0, s1, s2, s3;
15653
15654 s0 = peg$currPos;
15655 if (input.substr(peg$currPos, 8) === peg$c445) {
15656 s1 = peg$c445;
15657 peg$currPos += 8;
15658 } else {
15659 s1 = peg$FAILED;
15660 if (peg$silentFails === 0) { peg$fail(peg$c446); }
15661 }
15662 if (s1 !== peg$FAILED) {
15663 s2 = peg$currPos;
15664 peg$silentFails++;
15665 s3 = peg$parseIdentifierPart();
15666 peg$silentFails--;
15667 if (s3 === peg$FAILED) {
15668 s2 = void 0;
15669 } else {
15670 peg$currPos = s2;
15671 s2 = peg$FAILED;
15672 }
15673 if (s2 !== peg$FAILED) {
15674 peg$savedPos = s0;
15675 s1 = peg$c447();
15676 s0 = s1;
15677 } else {
15678 peg$currPos = s0;
15679 s0 = peg$FAILED;
15680 }
15681 } else {
15682 peg$currPos = s0;
15683 s0 = peg$FAILED;
15684 }
15685
15686 return s0;
15687 }
15688
15689 function peg$parseBooleanType() {
15690 var s0, s1, s2, s3;
15691
15692 s0 = peg$currPos;
15693 if (input.substr(peg$currPos, 7) === peg$c448) {
15694 s1 = peg$c448;
15695 peg$currPos += 7;
15696 } else {
15697 s1 = peg$FAILED;
15698 if (peg$silentFails === 0) { peg$fail(peg$c449); }
15699 }
15700 if (s1 !== peg$FAILED) {
15701 s2 = peg$currPos;
15702 peg$silentFails++;
15703 s3 = peg$parseIdentifierPart();
15704 peg$silentFails--;
15705 if (s3 === peg$FAILED) {
15706 s2 = void 0;
15707 } else {
15708 peg$currPos = s2;
15709 s2 = peg$FAILED;
15710 }
15711 if (s2 !== peg$FAILED) {
15712 peg$savedPos = s0;
15713 s1 = peg$c450();
15714 s0 = s1;
15715 } else {
15716 peg$currPos = s0;
15717 s0 = peg$FAILED;
15718 }
15719 } else {
15720 peg$currPos = s0;
15721 s0 = peg$FAILED;
15722 }
15723
15724 return s0;
15725 }
15726
15727 function peg$parseNumberType() {
15728 var s0;
15729
15730 s0 = peg$parseIntegerType();
15731 if (s0 === peg$FAILED) {
15732 s0 = peg$parseDoubleType();
15733 if (s0 === peg$FAILED) {
15734 s0 = peg$parseLongType();
15735 }
15736 }
15737
15738 return s0;
15739 }
15740
15741 function peg$parseWholeNumberType() {
15742 var s0;
15743
15744 s0 = peg$parseIntegerType();
15745 if (s0 === peg$FAILED) {
15746 s0 = peg$parseLongType();
15747 }
15748
15749 return s0;
15750 }
15751
15752 function peg$parsePrimitiveType() {
15753 var s0;
15754
15755 s0 = peg$parseStringType();
15756 if (s0 === peg$FAILED) {
15757 s0 = peg$parseNumberType();
15758 if (s0 === peg$FAILED) {
15759 s0 = peg$parseDateTimeType();
15760 if (s0 === peg$FAILED) {
15761 s0 = peg$parseBooleanType();
15762 }
15763 }
15764 }
15765
15766 return s0;
15767 }
15768
15769 function peg$parseObjectType() {
15770 var s0, s1, s2, s3, s4;
15771
15772 s0 = peg$currPos;
15773 s1 = peg$currPos;
15774 peg$silentFails++;
15775 s2 = peg$parsePrimitiveType();
15776 peg$silentFails--;
15777 if (s2 === peg$FAILED) {
15778 s1 = void 0;
15779 } else {
15780 peg$currPos = s1;
15781 s1 = peg$FAILED;
15782 }
15783 if (s1 !== peg$FAILED) {
15784 s2 = peg$parseIdentifier();
15785 if (s2 !== peg$FAILED) {
15786 s3 = peg$currPos;
15787 peg$silentFails++;
15788 s4 = peg$parseIdentifierPart();
15789 peg$silentFails--;
15790 if (s4 === peg$FAILED) {
15791 s3 = void 0;
15792 } else {
15793 peg$currPos = s3;
15794 s3 = peg$FAILED;
15795 }
15796 if (s3 !== peg$FAILED) {
15797 peg$savedPos = s0;
15798 s1 = peg$c451(s2);
15799 s0 = s1;
15800 } else {
15801 peg$currPos = s0;
15802 s0 = peg$FAILED;
15803 }
15804 } else {
15805 peg$currPos = s0;
15806 s0 = peg$FAILED;
15807 }
15808 } else {
15809 peg$currPos = s0;
15810 s0 = peg$FAILED;
15811 }
15812
15813 return s0;
15814 }
15815
15816 function peg$parseSignedNumber() {
15817 var s0, s1, s2, s3;
15818
15819 s0 = peg$currPos;
15820 s1 = peg$currPos;
15821 if (input.charCodeAt(peg$currPos) === 45) {
15822 s2 = peg$c258;
15823 peg$currPos++;
15824 } else {
15825 s2 = peg$FAILED;
15826 if (peg$silentFails === 0) { peg$fail(peg$c259); }
15827 }
15828 if (s2 === peg$FAILED) {
15829 s2 = null;
15830 }
15831 if (s2 !== peg$FAILED) {
15832 s1 = input.substring(s1, peg$currPos);
15833 } else {
15834 s1 = s2;
15835 }
15836 if (s1 !== peg$FAILED) {
15837 s2 = peg$currPos;
15838 s3 = peg$parseNumericLiteral();
15839 if (s3 !== peg$FAILED) {
15840 s2 = input.substring(s2, peg$currPos);
15841 } else {
15842 s2 = s3;
15843 }
15844 if (s2 !== peg$FAILED) {
15845 peg$savedPos = s0;
15846 s1 = peg$c452(s1, s2);
15847 s0 = s1;
15848 } else {
15849 peg$currPos = s0;
15850 s0 = peg$FAILED;
15851 }
15852 } else {
15853 peg$currPos = s0;
15854 s0 = peg$FAILED;
15855 }
15856
15857 return s0;
15858 }
15859
15860 function peg$parseIdentifiedByField() {
15861 var s0, s1, s2, s3;
15862
15863 s0 = peg$currPos;
15864 if (input.substr(peg$currPos, 13) === peg$c453) {
15865 s1 = peg$c453;
15866 peg$currPos += 13;
15867 } else {
15868 s1 = peg$FAILED;
15869 if (peg$silentFails === 0) { peg$fail(peg$c454); }
15870 }
15871 if (s1 !== peg$FAILED) {
15872 s2 = peg$parse__();
15873 if (s2 !== peg$FAILED) {
15874 s3 = peg$parseIdentifier();
15875 if (s3 !== peg$FAILED) {
15876 peg$savedPos = s0;
15877 s1 = peg$c455(s3);
15878 s0 = s1;
15879 } else {
15880 peg$currPos = s0;
15881 s0 = peg$FAILED;
15882 }
15883 } else {
15884 peg$currPos = s0;
15885 s0 = peg$FAILED;
15886 }
15887 } else {
15888 peg$currPos = s0;
15889 s0 = peg$FAILED;
15890 }
15891
15892 return s0;
15893 }
15894
15895 function peg$parseDecoratorString() {
15896 var s0, s1;
15897
15898 s0 = peg$currPos;
15899 s1 = peg$parseStringLiteral();
15900 if (s1 !== peg$FAILED) {
15901 peg$savedPos = s0;
15902 s1 = peg$c456(s1);
15903 }
15904 s0 = s1;
15905
15906 return s0;
15907 }
15908
15909 function peg$parseDecoratorNumber() {
15910 var s0, s1;
15911
15912 s0 = peg$currPos;
15913 s1 = peg$parseSignedNumber();
15914 if (s1 !== peg$FAILED) {
15915 peg$savedPos = s0;
15916 s1 = peg$c457(s1);
15917 }
15918 s0 = s1;
15919
15920 return s0;
15921 }
15922
15923 function peg$parseDecoratorBoolean() {
15924 var s0, s1, s2;
15925
15926 s0 = peg$currPos;
15927 s1 = peg$currPos;
15928 s2 = peg$parseBooleanLiteral();
15929 if (s2 !== peg$FAILED) {
15930 s1 = input.substring(s1, peg$currPos);
15931 } else {
15932 s1 = s2;
15933 }
15934 if (s1 !== peg$FAILED) {
15935 peg$savedPos = s0;
15936 s1 = peg$c458(s1);
15937 }
15938 s0 = s1;
15939
15940 return s0;
15941 }
15942
15943 function peg$parseDecoratorIdentifier() {
15944 var s0, s1, s2, s3;
15945
15946 s0 = peg$currPos;
15947 s1 = peg$parseIdentifier();
15948 if (s1 !== peg$FAILED) {
15949 s2 = peg$parse__();
15950 if (s2 !== peg$FAILED) {
15951 if (input.substr(peg$currPos, 2) === peg$c459) {
15952 s3 = peg$c459;
15953 peg$currPos += 2;
15954 } else {
15955 s3 = peg$FAILED;
15956 if (peg$silentFails === 0) { peg$fail(peg$c460); }
15957 }
15958 if (s3 === peg$FAILED) {
15959 s3 = null;
15960 }
15961 if (s3 !== peg$FAILED) {
15962 peg$savedPos = s0;
15963 s1 = peg$c461(s1, s3);
15964 s0 = s1;
15965 } else {
15966 peg$currPos = s0;
15967 s0 = peg$FAILED;
15968 }
15969 } else {
15970 peg$currPos = s0;
15971 s0 = peg$FAILED;
15972 }
15973 } else {
15974 peg$currPos = s0;
15975 s0 = peg$FAILED;
15976 }
15977
15978 return s0;
15979 }
15980
15981 function peg$parseDecoratorLiteral() {
15982 var s0;
15983
15984 s0 = peg$parseDecoratorString();
15985 if (s0 === peg$FAILED) {
15986 s0 = peg$parseDecoratorBoolean();
15987 if (s0 === peg$FAILED) {
15988 s0 = peg$parseDecoratorNumber();
15989 if (s0 === peg$FAILED) {
15990 s0 = peg$parseDecoratorIdentifier();
15991 }
15992 }
15993 }
15994
15995 return s0;
15996 }
15997
15998 function peg$parseDecoratorArguments() {
15999 var s0, s1, s2, s3, s4, s5, s6, s7, s8;
16000
16001 s0 = peg$currPos;
16002 if (input.charCodeAt(peg$currPos) === 40) {
16003 s1 = peg$c221;
16004 peg$currPos++;
16005 } else {
16006 s1 = peg$FAILED;
16007 if (peg$silentFails === 0) { peg$fail(peg$c222); }
16008 }
16009 if (s1 !== peg$FAILED) {
16010 s2 = peg$parse__();
16011 if (s2 !== peg$FAILED) {
16012 s3 = [];
16013 s4 = peg$currPos;
16014 s5 = peg$parseDecoratorLiteral();
16015 if (s5 !== peg$FAILED) {
16016 s6 = peg$parse__();
16017 if (s6 !== peg$FAILED) {
16018 if (input.charCodeAt(peg$currPos) === 44) {
16019 s7 = peg$c228;
16020 peg$currPos++;
16021 } else {
16022 s7 = peg$FAILED;
16023 if (peg$silentFails === 0) { peg$fail(peg$c229); }
16024 }
16025 if (s7 !== peg$FAILED) {
16026 s8 = peg$parse__();
16027 if (s8 !== peg$FAILED) {
16028 peg$savedPos = s4;
16029 s5 = peg$c462(s5);
16030 s4 = s5;
16031 } else {
16032 peg$currPos = s4;
16033 s4 = peg$FAILED;
16034 }
16035 } else {
16036 peg$currPos = s4;
16037 s4 = peg$FAILED;
16038 }
16039 } else {
16040 peg$currPos = s4;
16041 s4 = peg$FAILED;
16042 }
16043 } else {
16044 peg$currPos = s4;
16045 s4 = peg$FAILED;
16046 }
16047 while (s4 !== peg$FAILED) {
16048 s3.push(s4);
16049 s4 = peg$currPos;
16050 s5 = peg$parseDecoratorLiteral();
16051 if (s5 !== peg$FAILED) {
16052 s6 = peg$parse__();
16053 if (s6 !== peg$FAILED) {
16054 if (input.charCodeAt(peg$currPos) === 44) {
16055 s7 = peg$c228;
16056 peg$currPos++;
16057 } else {
16058 s7 = peg$FAILED;
16059 if (peg$silentFails === 0) { peg$fail(peg$c229); }
16060 }
16061 if (s7 !== peg$FAILED) {
16062 s8 = peg$parse__();
16063 if (s8 !== peg$FAILED) {
16064 peg$savedPos = s4;
16065 s5 = peg$c462(s5);
16066 s4 = s5;
16067 } else {
16068 peg$currPos = s4;
16069 s4 = peg$FAILED;
16070 }
16071 } else {
16072 peg$currPos = s4;
16073 s4 = peg$FAILED;
16074 }
16075 } else {
16076 peg$currPos = s4;
16077 s4 = peg$FAILED;
16078 }
16079 } else {
16080 peg$currPos = s4;
16081 s4 = peg$FAILED;
16082 }
16083 }
16084 if (s3 !== peg$FAILED) {
16085 s4 = peg$parseDecoratorLiteral();
16086 if (s4 === peg$FAILED) {
16087 s4 = null;
16088 }
16089 if (s4 !== peg$FAILED) {
16090 s5 = peg$parse__();
16091 if (s5 !== peg$FAILED) {
16092 if (input.charCodeAt(peg$currPos) === 41) {
16093 s6 = peg$c223;
16094 peg$currPos++;
16095 } else {
16096 s6 = peg$FAILED;
16097 if (peg$silentFails === 0) { peg$fail(peg$c224); }
16098 }
16099 if (s6 !== peg$FAILED) {
16100 peg$savedPos = s0;
16101 s1 = peg$c463(s3, s4);
16102 s0 = s1;
16103 } else {
16104 peg$currPos = s0;
16105 s0 = peg$FAILED;
16106 }
16107 } else {
16108 peg$currPos = s0;
16109 s0 = peg$FAILED;
16110 }
16111 } else {
16112 peg$currPos = s0;
16113 s0 = peg$FAILED;
16114 }
16115 } else {
16116 peg$currPos = s0;
16117 s0 = peg$FAILED;
16118 }
16119 } else {
16120 peg$currPos = s0;
16121 s0 = peg$FAILED;
16122 }
16123 } else {
16124 peg$currPos = s0;
16125 s0 = peg$FAILED;
16126 }
16127
16128 return s0;
16129 }
16130
16131 function peg$parseDecorator() {
16132 var s0, s1, s2, s3;
16133
16134 s0 = peg$currPos;
16135 if (input.charCodeAt(peg$currPos) === 64) {
16136 s1 = peg$c404;
16137 peg$currPos++;
16138 } else {
16139 s1 = peg$FAILED;
16140 if (peg$silentFails === 0) { peg$fail(peg$c405); }
16141 }
16142 if (s1 !== peg$FAILED) {
16143 s2 = peg$currPos;
16144 s3 = peg$parseIdentifier();
16145 if (s3 !== peg$FAILED) {
16146 s2 = input.substring(s2, peg$currPos);
16147 } else {
16148 s2 = s3;
16149 }
16150 if (s2 !== peg$FAILED) {
16151 s3 = peg$parseDecoratorArguments();
16152 if (s3 === peg$FAILED) {
16153 s3 = null;
16154 }
16155 if (s3 !== peg$FAILED) {
16156 peg$savedPos = s0;
16157 s1 = peg$c464(s2, s3);
16158 s0 = s1;
16159 } else {
16160 peg$currPos = s0;
16161 s0 = peg$FAILED;
16162 }
16163 } else {
16164 peg$currPos = s0;
16165 s0 = peg$FAILED;
16166 }
16167 } else {
16168 peg$currPos = s0;
16169 s0 = peg$FAILED;
16170 }
16171
16172 return s0;
16173 }
16174
16175 function peg$parseDecorators() {
16176 var s0, s1, s2, s3;
16177
16178 s0 = [];
16179 s1 = peg$currPos;
16180 s2 = peg$parseDecorator();
16181 if (s2 !== peg$FAILED) {
16182 s3 = peg$parse__();
16183 if (s3 !== peg$FAILED) {
16184 peg$savedPos = s1;
16185 s2 = peg$c462(s2);
16186 s1 = s2;
16187 } else {
16188 peg$currPos = s1;
16189 s1 = peg$FAILED;
16190 }
16191 } else {
16192 peg$currPos = s1;
16193 s1 = peg$FAILED;
16194 }
16195 while (s1 !== peg$FAILED) {
16196 s0.push(s1);
16197 s1 = peg$currPos;
16198 s2 = peg$parseDecorator();
16199 if (s2 !== peg$FAILED) {
16200 s3 = peg$parse__();
16201 if (s3 !== peg$FAILED) {
16202 peg$savedPos = s1;
16203 s2 = peg$c462(s2);
16204 s1 = s2;
16205 } else {
16206 peg$currPos = s1;
16207 s1 = peg$FAILED;
16208 }
16209 } else {
16210 peg$currPos = s1;
16211 s1 = peg$FAILED;
16212 }
16213 }
16214
16215 return s0;
16216 }
16217
16218 function peg$parseAssetDeclaration() {
16219 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17;
16220
16221 s0 = peg$currPos;
16222 s1 = peg$parseDecorators();
16223 if (s1 !== peg$FAILED) {
16224 s2 = peg$parse__();
16225 if (s2 !== peg$FAILED) {
16226 s3 = peg$parseAbstractToken();
16227 if (s3 === peg$FAILED) {
16228 s3 = null;
16229 }
16230 if (s3 !== peg$FAILED) {
16231 s4 = peg$parse__();
16232 if (s4 !== peg$FAILED) {
16233 s5 = peg$parseAssetToken();
16234 if (s5 !== peg$FAILED) {
16235 s6 = peg$parse__();
16236 if (s6 !== peg$FAILED) {
16237 s7 = peg$parseIdentifier();
16238 if (s7 !== peg$FAILED) {
16239 s8 = peg$parse__();
16240 if (s8 !== peg$FAILED) {
16241 s9 = peg$parseIdentifiedByField();
16242 if (s9 === peg$FAILED) {
16243 s9 = null;
16244 }
16245 if (s9 !== peg$FAILED) {
16246 s10 = peg$parse__();
16247 if (s10 !== peg$FAILED) {
16248 s11 = peg$parseClassExtension();
16249 if (s11 === peg$FAILED) {
16250 s11 = null;
16251 }
16252 if (s11 !== peg$FAILED) {
16253 s12 = peg$parse__();
16254 if (s12 !== peg$FAILED) {
16255 if (input.charCodeAt(peg$currPos) === 123) {
16256 s13 = peg$c339;
16257 peg$currPos++;
16258 } else {
16259 s13 = peg$FAILED;
16260 if (peg$silentFails === 0) { peg$fail(peg$c340); }
16261 }
16262 if (s13 !== peg$FAILED) {
16263 s14 = peg$parse__();
16264 if (s14 !== peg$FAILED) {
16265 s15 = peg$parseClassDeclarationBody();
16266 if (s15 !== peg$FAILED) {
16267 s16 = peg$parse__();
16268 if (s16 !== peg$FAILED) {
16269 if (input.charCodeAt(peg$currPos) === 125) {
16270 s17 = peg$c218;
16271 peg$currPos++;
16272 } else {
16273 s17 = peg$FAILED;
16274 if (peg$silentFails === 0) { peg$fail(peg$c219); }
16275 }
16276 if (s17 !== peg$FAILED) {
16277 peg$savedPos = s0;
16278 s1 = peg$c465(s1, s3, s7, s9, s11, s15);
16279 s0 = s1;
16280 } else {
16281 peg$currPos = s0;
16282 s0 = peg$FAILED;
16283 }
16284 } else {
16285 peg$currPos = s0;
16286 s0 = peg$FAILED;
16287 }
16288 } else {
16289 peg$currPos = s0;
16290 s0 = peg$FAILED;
16291 }
16292 } else {
16293 peg$currPos = s0;
16294 s0 = peg$FAILED;
16295 }
16296 } else {
16297 peg$currPos = s0;
16298 s0 = peg$FAILED;
16299 }
16300 } else {
16301 peg$currPos = s0;
16302 s0 = peg$FAILED;
16303 }
16304 } else {
16305 peg$currPos = s0;
16306 s0 = peg$FAILED;
16307 }
16308 } else {
16309 peg$currPos = s0;
16310 s0 = peg$FAILED;
16311 }
16312 } else {
16313 peg$currPos = s0;
16314 s0 = peg$FAILED;
16315 }
16316 } else {
16317 peg$currPos = s0;
16318 s0 = peg$FAILED;
16319 }
16320 } else {
16321 peg$currPos = s0;
16322 s0 = peg$FAILED;
16323 }
16324 } else {
16325 peg$currPos = s0;
16326 s0 = peg$FAILED;
16327 }
16328 } else {
16329 peg$currPos = s0;
16330 s0 = peg$FAILED;
16331 }
16332 } else {
16333 peg$currPos = s0;
16334 s0 = peg$FAILED;
16335 }
16336 } else {
16337 peg$currPos = s0;
16338 s0 = peg$FAILED;
16339 }
16340 } else {
16341 peg$currPos = s0;
16342 s0 = peg$FAILED;
16343 }
16344 } else {
16345 peg$currPos = s0;
16346 s0 = peg$FAILED;
16347 }
16348
16349 return s0;
16350 }
16351
16352 function peg$parseParticipantDeclaration() {
16353 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17;
16354
16355 s0 = peg$currPos;
16356 s1 = peg$parseDecorators();
16357 if (s1 !== peg$FAILED) {
16358 s2 = peg$parse__();
16359 if (s2 !== peg$FAILED) {
16360 s3 = peg$parseAbstractToken();
16361 if (s3 === peg$FAILED) {
16362 s3 = null;
16363 }
16364 if (s3 !== peg$FAILED) {
16365 s4 = peg$parse__();
16366 if (s4 !== peg$FAILED) {
16367 s5 = peg$parseParticipantToken();
16368 if (s5 !== peg$FAILED) {
16369 s6 = peg$parse__();
16370 if (s6 !== peg$FAILED) {
16371 s7 = peg$parseIdentifier();
16372 if (s7 !== peg$FAILED) {
16373 s8 = peg$parse__();
16374 if (s8 !== peg$FAILED) {
16375 s9 = peg$parseIdentifiedByField();
16376 if (s9 === peg$FAILED) {
16377 s9 = null;
16378 }
16379 if (s9 !== peg$FAILED) {
16380 s10 = peg$parse__();
16381 if (s10 !== peg$FAILED) {
16382 s11 = peg$parseClassExtension();
16383 if (s11 === peg$FAILED) {
16384 s11 = null;
16385 }
16386 if (s11 !== peg$FAILED) {
16387 s12 = peg$parse__();
16388 if (s12 !== peg$FAILED) {
16389 if (input.charCodeAt(peg$currPos) === 123) {
16390 s13 = peg$c339;
16391 peg$currPos++;
16392 } else {
16393 s13 = peg$FAILED;
16394 if (peg$silentFails === 0) { peg$fail(peg$c340); }
16395 }
16396 if (s13 !== peg$FAILED) {
16397 s14 = peg$parse__();
16398 if (s14 !== peg$FAILED) {
16399 s15 = peg$parseClassDeclarationBody();
16400 if (s15 !== peg$FAILED) {
16401 s16 = peg$parse__();
16402 if (s16 !== peg$FAILED) {
16403 if (input.charCodeAt(peg$currPos) === 125) {
16404 s17 = peg$c218;
16405 peg$currPos++;
16406 } else {
16407 s17 = peg$FAILED;
16408 if (peg$silentFails === 0) { peg$fail(peg$c219); }
16409 }
16410 if (s17 !== peg$FAILED) {
16411 peg$savedPos = s0;
16412 s1 = peg$c466(s1, s3, s7, s9, s11, s15);
16413 s0 = s1;
16414 } else {
16415 peg$currPos = s0;
16416 s0 = peg$FAILED;
16417 }
16418 } else {
16419 peg$currPos = s0;
16420 s0 = peg$FAILED;
16421 }
16422 } else {
16423 peg$currPos = s0;
16424 s0 = peg$FAILED;
16425 }
16426 } else {
16427 peg$currPos = s0;
16428 s0 = peg$FAILED;
16429 }
16430 } else {
16431 peg$currPos = s0;
16432 s0 = peg$FAILED;
16433 }
16434 } else {
16435 peg$currPos = s0;
16436 s0 = peg$FAILED;
16437 }
16438 } else {
16439 peg$currPos = s0;
16440 s0 = peg$FAILED;
16441 }
16442 } else {
16443 peg$currPos = s0;
16444 s0 = peg$FAILED;
16445 }
16446 } else {
16447 peg$currPos = s0;
16448 s0 = peg$FAILED;
16449 }
16450 } else {
16451 peg$currPos = s0;
16452 s0 = peg$FAILED;
16453 }
16454 } else {
16455 peg$currPos = s0;
16456 s0 = peg$FAILED;
16457 }
16458 } else {
16459 peg$currPos = s0;
16460 s0 = peg$FAILED;
16461 }
16462 } else {
16463 peg$currPos = s0;
16464 s0 = peg$FAILED;
16465 }
16466 } else {
16467 peg$currPos = s0;
16468 s0 = peg$FAILED;
16469 }
16470 } else {
16471 peg$currPos = s0;
16472 s0 = peg$FAILED;
16473 }
16474 } else {
16475 peg$currPos = s0;
16476 s0 = peg$FAILED;
16477 }
16478 } else {
16479 peg$currPos = s0;
16480 s0 = peg$FAILED;
16481 }
16482
16483 return s0;
16484 }
16485
16486 function peg$parseClassExtension() {
16487 var s0, s1, s2, s3;
16488
16489 s0 = peg$currPos;
16490 if (input.substr(peg$currPos, 7) === peg$c166) {
16491 s1 = peg$c166;
16492 peg$currPos += 7;
16493 } else {
16494 s1 = peg$FAILED;
16495 if (peg$silentFails === 0) { peg$fail(peg$c167); }
16496 }
16497 if (s1 !== peg$FAILED) {
16498 s2 = peg$parse__();
16499 if (s2 !== peg$FAILED) {
16500 s3 = peg$parseIdentifier();
16501 if (s3 !== peg$FAILED) {
16502 peg$savedPos = s0;
16503 s1 = peg$c467(s3);
16504 s0 = s1;
16505 } else {
16506 peg$currPos = s0;
16507 s0 = peg$FAILED;
16508 }
16509 } else {
16510 peg$currPos = s0;
16511 s0 = peg$FAILED;
16512 }
16513 } else {
16514 peg$currPos = s0;
16515 s0 = peg$FAILED;
16516 }
16517
16518 return s0;
16519 }
16520
16521 function peg$parseTransactionDeclaration() {
16522 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17;
16523
16524 s0 = peg$currPos;
16525 s1 = peg$parseDecorators();
16526 if (s1 !== peg$FAILED) {
16527 s2 = peg$parse__();
16528 if (s2 !== peg$FAILED) {
16529 s3 = peg$parseAbstractToken();
16530 if (s3 === peg$FAILED) {
16531 s3 = null;
16532 }
16533 if (s3 !== peg$FAILED) {
16534 s4 = peg$parse__();
16535 if (s4 !== peg$FAILED) {
16536 s5 = peg$parseTransactionToken();
16537 if (s5 !== peg$FAILED) {
16538 s6 = peg$parse__();
16539 if (s6 !== peg$FAILED) {
16540 s7 = peg$parseIdentifier();
16541 if (s7 !== peg$FAILED) {
16542 s8 = peg$parse__();
16543 if (s8 !== peg$FAILED) {
16544 s9 = peg$parseIdentifiedByField();
16545 if (s9 === peg$FAILED) {
16546 s9 = null;
16547 }
16548 if (s9 !== peg$FAILED) {
16549 s10 = peg$parse__();
16550 if (s10 !== peg$FAILED) {
16551 s11 = peg$parseClassExtension();
16552 if (s11 === peg$FAILED) {
16553 s11 = null;
16554 }
16555 if (s11 !== peg$FAILED) {
16556 s12 = peg$parse__();
16557 if (s12 !== peg$FAILED) {
16558 if (input.charCodeAt(peg$currPos) === 123) {
16559 s13 = peg$c339;
16560 peg$currPos++;
16561 } else {
16562 s13 = peg$FAILED;
16563 if (peg$silentFails === 0) { peg$fail(peg$c340); }
16564 }
16565 if (s13 !== peg$FAILED) {
16566 s14 = peg$parse__();
16567 if (s14 !== peg$FAILED) {
16568 s15 = peg$parseClassDeclarationBody();
16569 if (s15 !== peg$FAILED) {
16570 s16 = peg$parse__();
16571 if (s16 !== peg$FAILED) {
16572 if (input.charCodeAt(peg$currPos) === 125) {
16573 s17 = peg$c218;
16574 peg$currPos++;
16575 } else {
16576 s17 = peg$FAILED;
16577 if (peg$silentFails === 0) { peg$fail(peg$c219); }
16578 }
16579 if (s17 !== peg$FAILED) {
16580 peg$savedPos = s0;
16581 s1 = peg$c468(s1, s3, s7, s9, s11, s15);
16582 s0 = s1;
16583 } else {
16584 peg$currPos = s0;
16585 s0 = peg$FAILED;
16586 }
16587 } else {
16588 peg$currPos = s0;
16589 s0 = peg$FAILED;
16590 }
16591 } else {
16592 peg$currPos = s0;
16593 s0 = peg$FAILED;
16594 }
16595 } else {
16596 peg$currPos = s0;
16597 s0 = peg$FAILED;
16598 }
16599 } else {
16600 peg$currPos = s0;
16601 s0 = peg$FAILED;
16602 }
16603 } else {
16604 peg$currPos = s0;
16605 s0 = peg$FAILED;
16606 }
16607 } else {
16608 peg$currPos = s0;
16609 s0 = peg$FAILED;
16610 }
16611 } else {
16612 peg$currPos = s0;
16613 s0 = peg$FAILED;
16614 }
16615 } else {
16616 peg$currPos = s0;
16617 s0 = peg$FAILED;
16618 }
16619 } else {
16620 peg$currPos = s0;
16621 s0 = peg$FAILED;
16622 }
16623 } else {
16624 peg$currPos = s0;
16625 s0 = peg$FAILED;
16626 }
16627 } else {
16628 peg$currPos = s0;
16629 s0 = peg$FAILED;
16630 }
16631 } else {
16632 peg$currPos = s0;
16633 s0 = peg$FAILED;
16634 }
16635 } else {
16636 peg$currPos = s0;
16637 s0 = peg$FAILED;
16638 }
16639 } else {
16640 peg$currPos = s0;
16641 s0 = peg$FAILED;
16642 }
16643 } else {
16644 peg$currPos = s0;
16645 s0 = peg$FAILED;
16646 }
16647 } else {
16648 peg$currPos = s0;
16649 s0 = peg$FAILED;
16650 }
16651
16652 return s0;
16653 }
16654
16655 function peg$parseEventDeclaration() {
16656 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17;
16657
16658 s0 = peg$currPos;
16659 s1 = peg$parseDecorators();
16660 if (s1 !== peg$FAILED) {
16661 s2 = peg$parse__();
16662 if (s2 !== peg$FAILED) {
16663 s3 = peg$parseAbstractToken();
16664 if (s3 === peg$FAILED) {
16665 s3 = null;
16666 }
16667 if (s3 !== peg$FAILED) {
16668 s4 = peg$parse__();
16669 if (s4 !== peg$FAILED) {
16670 s5 = peg$parseEventToken();
16671 if (s5 !== peg$FAILED) {
16672 s6 = peg$parse__();
16673 if (s6 !== peg$FAILED) {
16674 s7 = peg$parseIdentifier();
16675 if (s7 !== peg$FAILED) {
16676 s8 = peg$parse__();
16677 if (s8 !== peg$FAILED) {
16678 s9 = peg$parseIdentifiedByField();
16679 if (s9 === peg$FAILED) {
16680 s9 = null;
16681 }
16682 if (s9 !== peg$FAILED) {
16683 s10 = peg$parse__();
16684 if (s10 !== peg$FAILED) {
16685 s11 = peg$parseClassExtension();
16686 if (s11 === peg$FAILED) {
16687 s11 = null;
16688 }
16689 if (s11 !== peg$FAILED) {
16690 s12 = peg$parse__();
16691 if (s12 !== peg$FAILED) {
16692 if (input.charCodeAt(peg$currPos) === 123) {
16693 s13 = peg$c339;
16694 peg$currPos++;
16695 } else {
16696 s13 = peg$FAILED;
16697 if (peg$silentFails === 0) { peg$fail(peg$c340); }
16698 }
16699 if (s13 !== peg$FAILED) {
16700 s14 = peg$parse__();
16701 if (s14 !== peg$FAILED) {
16702 s15 = peg$parseClassDeclarationBody();
16703 if (s15 !== peg$FAILED) {
16704 s16 = peg$parse__();
16705 if (s16 !== peg$FAILED) {
16706 if (input.charCodeAt(peg$currPos) === 125) {
16707 s17 = peg$c218;
16708 peg$currPos++;
16709 } else {
16710 s17 = peg$FAILED;
16711 if (peg$silentFails === 0) { peg$fail(peg$c219); }
16712 }
16713 if (s17 !== peg$FAILED) {
16714 peg$savedPos = s0;
16715 s1 = peg$c469(s1, s3, s7, s9, s11, s15);
16716 s0 = s1;
16717 } else {
16718 peg$currPos = s0;
16719 s0 = peg$FAILED;
16720 }
16721 } else {
16722 peg$currPos = s0;
16723 s0 = peg$FAILED;
16724 }
16725 } else {
16726 peg$currPos = s0;
16727 s0 = peg$FAILED;
16728 }
16729 } else {
16730 peg$currPos = s0;
16731 s0 = peg$FAILED;
16732 }
16733 } else {
16734 peg$currPos = s0;
16735 s0 = peg$FAILED;
16736 }
16737 } else {
16738 peg$currPos = s0;
16739 s0 = peg$FAILED;
16740 }
16741 } else {
16742 peg$currPos = s0;
16743 s0 = peg$FAILED;
16744 }
16745 } else {
16746 peg$currPos = s0;
16747 s0 = peg$FAILED;
16748 }
16749 } else {
16750 peg$currPos = s0;
16751 s0 = peg$FAILED;
16752 }
16753 } else {
16754 peg$currPos = s0;
16755 s0 = peg$FAILED;
16756 }
16757 } else {
16758 peg$currPos = s0;
16759 s0 = peg$FAILED;
16760 }
16761 } else {
16762 peg$currPos = s0;
16763 s0 = peg$FAILED;
16764 }
16765 } else {
16766 peg$currPos = s0;
16767 s0 = peg$FAILED;
16768 }
16769 } else {
16770 peg$currPos = s0;
16771 s0 = peg$FAILED;
16772 }
16773 } else {
16774 peg$currPos = s0;
16775 s0 = peg$FAILED;
16776 }
16777 } else {
16778 peg$currPos = s0;
16779 s0 = peg$FAILED;
16780 }
16781 } else {
16782 peg$currPos = s0;
16783 s0 = peg$FAILED;
16784 }
16785
16786 return s0;
16787 }
16788
16789 function peg$parseConceptDeclaration() {
16790 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;
16791
16792 s0 = peg$currPos;
16793 s1 = peg$parseDecorators();
16794 if (s1 !== peg$FAILED) {
16795 s2 = peg$parse__();
16796 if (s2 !== peg$FAILED) {
16797 s3 = peg$parseAbstractToken();
16798 if (s3 === peg$FAILED) {
16799 s3 = null;
16800 }
16801 if (s3 !== peg$FAILED) {
16802 s4 = peg$parse__();
16803 if (s4 !== peg$FAILED) {
16804 s5 = peg$parseConceptToken();
16805 if (s5 !== peg$FAILED) {
16806 s6 = peg$parse__();
16807 if (s6 !== peg$FAILED) {
16808 s7 = peg$parseIdentifier();
16809 if (s7 !== peg$FAILED) {
16810 s8 = peg$parse__();
16811 if (s8 !== peg$FAILED) {
16812 s9 = peg$parseClassExtension();
16813 if (s9 === peg$FAILED) {
16814 s9 = null;
16815 }
16816 if (s9 !== peg$FAILED) {
16817 s10 = peg$parse__();
16818 if (s10 !== peg$FAILED) {
16819 if (input.charCodeAt(peg$currPos) === 123) {
16820 s11 = peg$c339;
16821 peg$currPos++;
16822 } else {
16823 s11 = peg$FAILED;
16824 if (peg$silentFails === 0) { peg$fail(peg$c340); }
16825 }
16826 if (s11 !== peg$FAILED) {
16827 s12 = peg$parse__();
16828 if (s12 !== peg$FAILED) {
16829 s13 = peg$parseClassDeclarationBody();
16830 if (s13 !== peg$FAILED) {
16831 s14 = peg$parse__();
16832 if (s14 !== peg$FAILED) {
16833 if (input.charCodeAt(peg$currPos) === 125) {
16834 s15 = peg$c218;
16835 peg$currPos++;
16836 } else {
16837 s15 = peg$FAILED;
16838 if (peg$silentFails === 0) { peg$fail(peg$c219); }
16839 }
16840 if (s15 !== peg$FAILED) {
16841 peg$savedPos = s0;
16842 s1 = peg$c470(s1, s3, s7, s9, s13);
16843 s0 = s1;
16844 } else {
16845 peg$currPos = s0;
16846 s0 = peg$FAILED;
16847 }
16848 } else {
16849 peg$currPos = s0;
16850 s0 = peg$FAILED;
16851 }
16852 } else {
16853 peg$currPos = s0;
16854 s0 = peg$FAILED;
16855 }
16856 } else {
16857 peg$currPos = s0;
16858 s0 = peg$FAILED;
16859 }
16860 } else {
16861 peg$currPos = s0;
16862 s0 = peg$FAILED;
16863 }
16864 } else {
16865 peg$currPos = s0;
16866 s0 = peg$FAILED;
16867 }
16868 } else {
16869 peg$currPos = s0;
16870 s0 = peg$FAILED;
16871 }
16872 } else {
16873 peg$currPos = s0;
16874 s0 = peg$FAILED;
16875 }
16876 } else {
16877 peg$currPos = s0;
16878 s0 = peg$FAILED;
16879 }
16880 } else {
16881 peg$currPos = s0;
16882 s0 = peg$FAILED;
16883 }
16884 } else {
16885 peg$currPos = s0;
16886 s0 = peg$FAILED;
16887 }
16888 } else {
16889 peg$currPos = s0;
16890 s0 = peg$FAILED;
16891 }
16892 } else {
16893 peg$currPos = s0;
16894 s0 = peg$FAILED;
16895 }
16896 } else {
16897 peg$currPos = s0;
16898 s0 = peg$FAILED;
16899 }
16900 } else {
16901 peg$currPos = s0;
16902 s0 = peg$FAILED;
16903 }
16904
16905 return s0;
16906 }
16907
16908 function peg$parseOptional() {
16909 var s0, s1;
16910
16911 s0 = peg$currPos;
16912 if (input.substr(peg$currPos, 8) === peg$c471) {
16913 s1 = peg$c471;
16914 peg$currPos += 8;
16915 } else {
16916 s1 = peg$FAILED;
16917 if (peg$silentFails === 0) { peg$fail(peg$c472); }
16918 }
16919 if (s1 !== peg$FAILED) {
16920 peg$savedPos = s0;
16921 s1 = peg$c473();
16922 }
16923 s0 = s1;
16924
16925 return s0;
16926 }
16927
16928 function peg$parseStringDefault() {
16929 var s0, s1, s2, s3, s4, s5;
16930
16931 s0 = peg$currPos;
16932 if (input.substr(peg$currPos, 7) === peg$c154) {
16933 s1 = peg$c154;
16934 peg$currPos += 7;
16935 } else {
16936 s1 = peg$FAILED;
16937 if (peg$silentFails === 0) { peg$fail(peg$c155); }
16938 }
16939 if (s1 !== peg$FAILED) {
16940 s2 = peg$parse__();
16941 if (s2 !== peg$FAILED) {
16942 if (input.charCodeAt(peg$currPos) === 61) {
16943 s3 = peg$c256;
16944 peg$currPos++;
16945 } else {
16946 s3 = peg$FAILED;
16947 if (peg$silentFails === 0) { peg$fail(peg$c257); }
16948 }
16949 if (s3 !== peg$FAILED) {
16950 s4 = peg$parse__();
16951 if (s4 !== peg$FAILED) {
16952 s5 = peg$parseStringLiteral();
16953 if (s5 !== peg$FAILED) {
16954 peg$savedPos = s0;
16955 s1 = peg$c474(s5);
16956 s0 = s1;
16957 } else {
16958 peg$currPos = s0;
16959 s0 = peg$FAILED;
16960 }
16961 } else {
16962 peg$currPos = s0;
16963 s0 = peg$FAILED;
16964 }
16965 } else {
16966 peg$currPos = s0;
16967 s0 = peg$FAILED;
16968 }
16969 } else {
16970 peg$currPos = s0;
16971 s0 = peg$FAILED;
16972 }
16973 } else {
16974 peg$currPos = s0;
16975 s0 = peg$FAILED;
16976 }
16977
16978 return s0;
16979 }
16980
16981 function peg$parseBooleanDefault() {
16982 var s0, s1, s2, s3, s4, s5, s6;
16983
16984 s0 = peg$currPos;
16985 if (input.substr(peg$currPos, 7) === peg$c154) {
16986 s1 = peg$c154;
16987 peg$currPos += 7;
16988 } else {
16989 s1 = peg$FAILED;
16990 if (peg$silentFails === 0) { peg$fail(peg$c155); }
16991 }
16992 if (s1 !== peg$FAILED) {
16993 s2 = peg$parse__();
16994 if (s2 !== peg$FAILED) {
16995 if (input.charCodeAt(peg$currPos) === 61) {
16996 s3 = peg$c256;
16997 peg$currPos++;
16998 } else {
16999 s3 = peg$FAILED;
17000 if (peg$silentFails === 0) { peg$fail(peg$c257); }
17001 }
17002 if (s3 !== peg$FAILED) {
17003 s4 = peg$parse__();
17004 if (s4 !== peg$FAILED) {
17005 s5 = peg$currPos;
17006 s6 = peg$parseBooleanLiteral();
17007 if (s6 !== peg$FAILED) {
17008 s5 = input.substring(s5, peg$currPos);
17009 } else {
17010 s5 = s6;
17011 }
17012 if (s5 !== peg$FAILED) {
17013 peg$savedPos = s0;
17014 s1 = peg$c475(s5);
17015 s0 = s1;
17016 } else {
17017 peg$currPos = s0;
17018 s0 = peg$FAILED;
17019 }
17020 } else {
17021 peg$currPos = s0;
17022 s0 = peg$FAILED;
17023 }
17024 } else {
17025 peg$currPos = s0;
17026 s0 = peg$FAILED;
17027 }
17028 } else {
17029 peg$currPos = s0;
17030 s0 = peg$FAILED;
17031 }
17032 } else {
17033 peg$currPos = s0;
17034 s0 = peg$FAILED;
17035 }
17036
17037 return s0;
17038 }
17039
17040 function peg$parseIntegerDefault() {
17041 var s0, s1, s2, s3, s4, s5, s6;
17042
17043 s0 = peg$currPos;
17044 if (input.substr(peg$currPos, 7) === peg$c154) {
17045 s1 = peg$c154;
17046 peg$currPos += 7;
17047 } else {
17048 s1 = peg$FAILED;
17049 if (peg$silentFails === 0) { peg$fail(peg$c155); }
17050 }
17051 if (s1 !== peg$FAILED) {
17052 s2 = peg$parse__();
17053 if (s2 !== peg$FAILED) {
17054 if (input.charCodeAt(peg$currPos) === 61) {
17055 s3 = peg$c256;
17056 peg$currPos++;
17057 } else {
17058 s3 = peg$FAILED;
17059 if (peg$silentFails === 0) { peg$fail(peg$c257); }
17060 }
17061 if (s3 !== peg$FAILED) {
17062 s4 = peg$parse__();
17063 if (s4 !== peg$FAILED) {
17064 s5 = peg$currPos;
17065 s6 = peg$parseSignedInteger();
17066 if (s6 !== peg$FAILED) {
17067 s5 = input.substring(s5, peg$currPos);
17068 } else {
17069 s5 = s6;
17070 }
17071 if (s5 !== peg$FAILED) {
17072 peg$savedPos = s0;
17073 s1 = peg$c476(s5);
17074 s0 = s1;
17075 } else {
17076 peg$currPos = s0;
17077 s0 = peg$FAILED;
17078 }
17079 } else {
17080 peg$currPos = s0;
17081 s0 = peg$FAILED;
17082 }
17083 } else {
17084 peg$currPos = s0;
17085 s0 = peg$FAILED;
17086 }
17087 } else {
17088 peg$currPos = s0;
17089 s0 = peg$FAILED;
17090 }
17091 } else {
17092 peg$currPos = s0;
17093 s0 = peg$FAILED;
17094 }
17095
17096 return s0;
17097 }
17098
17099 function peg$parseRealDefault() {
17100 var s0, s1, s2, s3, s4, s5, s6;
17101
17102 s0 = peg$currPos;
17103 if (input.substr(peg$currPos, 7) === peg$c154) {
17104 s1 = peg$c154;
17105 peg$currPos += 7;
17106 } else {
17107 s1 = peg$FAILED;
17108 if (peg$silentFails === 0) { peg$fail(peg$c155); }
17109 }
17110 if (s1 !== peg$FAILED) {
17111 s2 = peg$parse__();
17112 if (s2 !== peg$FAILED) {
17113 if (input.charCodeAt(peg$currPos) === 61) {
17114 s3 = peg$c256;
17115 peg$currPos++;
17116 } else {
17117 s3 = peg$FAILED;
17118 if (peg$silentFails === 0) { peg$fail(peg$c257); }
17119 }
17120 if (s3 !== peg$FAILED) {
17121 s4 = peg$parse__();
17122 if (s4 !== peg$FAILED) {
17123 s5 = peg$currPos;
17124 s6 = peg$parseSignedRealLiteral();
17125 if (s6 !== peg$FAILED) {
17126 s5 = input.substring(s5, peg$currPos);
17127 } else {
17128 s5 = s6;
17129 }
17130 if (s5 !== peg$FAILED) {
17131 peg$savedPos = s0;
17132 s1 = peg$c475(s5);
17133 s0 = s1;
17134 } else {
17135 peg$currPos = s0;
17136 s0 = peg$FAILED;
17137 }
17138 } else {
17139 peg$currPos = s0;
17140 s0 = peg$FAILED;
17141 }
17142 } else {
17143 peg$currPos = s0;
17144 s0 = peg$FAILED;
17145 }
17146 } else {
17147 peg$currPos = s0;
17148 s0 = peg$FAILED;
17149 }
17150 } else {
17151 peg$currPos = s0;
17152 s0 = peg$FAILED;
17153 }
17154
17155 return s0;
17156 }
17157
17158 function peg$parseFieldDeclarations() {
17159 var s0;
17160
17161 s0 = peg$parseStringFieldDeclaration();
17162 if (s0 === peg$FAILED) {
17163 s0 = peg$parseRealFieldDeclaration();
17164 if (s0 === peg$FAILED) {
17165 s0 = peg$parseBooleanFieldDeclaration();
17166 if (s0 === peg$FAILED) {
17167 s0 = peg$parseDateTimeFieldDeclaration();
17168 if (s0 === peg$FAILED) {
17169 s0 = peg$parseRelationshipDeclaration();
17170 if (s0 === peg$FAILED) {
17171 s0 = peg$parseObjectFieldDeclaration();
17172 if (s0 === peg$FAILED) {
17173 s0 = peg$parseIntegerFieldDeclaration();
17174 }
17175 }
17176 }
17177 }
17178 }
17179 }
17180
17181 return s0;
17182 }
17183
17184 function peg$parseClassDeclarationBody() {
17185 var s0, s1, s2;
17186
17187 s0 = peg$currPos;
17188 s1 = [];
17189 s2 = peg$parseFieldDeclarations();
17190 while (s2 !== peg$FAILED) {
17191 s1.push(s2);
17192 s2 = peg$parseFieldDeclarations();
17193 }
17194 if (s1 !== peg$FAILED) {
17195 peg$savedPos = s0;
17196 s1 = peg$c477(s1);
17197 }
17198 s0 = s1;
17199
17200 return s0;
17201 }
17202
17203 function peg$parseObjectFieldDeclaration() {
17204 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
17205
17206 s0 = peg$currPos;
17207 s1 = peg$parseDecorators();
17208 if (s1 !== peg$FAILED) {
17209 s2 = peg$parse__();
17210 if (s2 !== peg$FAILED) {
17211 if (input.charCodeAt(peg$currPos) === 111) {
17212 s3 = peg$c478;
17213 peg$currPos++;
17214 } else {
17215 s3 = peg$FAILED;
17216 if (peg$silentFails === 0) { peg$fail(peg$c479); }
17217 }
17218 if (s3 !== peg$FAILED) {
17219 s4 = peg$parse__();
17220 if (s4 !== peg$FAILED) {
17221 s5 = peg$parseObjectType();
17222 if (s5 !== peg$FAILED) {
17223 s6 = peg$parse__();
17224 if (s6 !== peg$FAILED) {
17225 if (input.substr(peg$currPos, 2) === peg$c459) {
17226 s7 = peg$c459;
17227 peg$currPos += 2;
17228 } else {
17229 s7 = peg$FAILED;
17230 if (peg$silentFails === 0) { peg$fail(peg$c460); }
17231 }
17232 if (s7 === peg$FAILED) {
17233 s7 = null;
17234 }
17235 if (s7 !== peg$FAILED) {
17236 s8 = peg$parse__();
17237 if (s8 !== peg$FAILED) {
17238 s9 = peg$parseIdentifier();
17239 if (s9 !== peg$FAILED) {
17240 s10 = peg$parse__();
17241 if (s10 !== peg$FAILED) {
17242 s11 = peg$parseStringDefault();
17243 if (s11 === peg$FAILED) {
17244 s11 = null;
17245 }
17246 if (s11 !== peg$FAILED) {
17247 s12 = peg$parse__();
17248 if (s12 !== peg$FAILED) {
17249 s13 = peg$parseOptional();
17250 if (s13 === peg$FAILED) {
17251 s13 = null;
17252 }
17253 if (s13 !== peg$FAILED) {
17254 s14 = peg$parse__();
17255 if (s14 !== peg$FAILED) {
17256 peg$savedPos = s0;
17257 s1 = peg$c480(s1, s5, s7, s9, s11, s13);
17258 s0 = s1;
17259 } else {
17260 peg$currPos = s0;
17261 s0 = peg$FAILED;
17262 }
17263 } else {
17264 peg$currPos = s0;
17265 s0 = peg$FAILED;
17266 }
17267 } else {
17268 peg$currPos = s0;
17269 s0 = peg$FAILED;
17270 }
17271 } else {
17272 peg$currPos = s0;
17273 s0 = peg$FAILED;
17274 }
17275 } else {
17276 peg$currPos = s0;
17277 s0 = peg$FAILED;
17278 }
17279 } else {
17280 peg$currPos = s0;
17281 s0 = peg$FAILED;
17282 }
17283 } else {
17284 peg$currPos = s0;
17285 s0 = peg$FAILED;
17286 }
17287 } else {
17288 peg$currPos = s0;
17289 s0 = peg$FAILED;
17290 }
17291 } else {
17292 peg$currPos = s0;
17293 s0 = peg$FAILED;
17294 }
17295 } else {
17296 peg$currPos = s0;
17297 s0 = peg$FAILED;
17298 }
17299 } else {
17300 peg$currPos = s0;
17301 s0 = peg$FAILED;
17302 }
17303 } else {
17304 peg$currPos = s0;
17305 s0 = peg$FAILED;
17306 }
17307 } else {
17308 peg$currPos = s0;
17309 s0 = peg$FAILED;
17310 }
17311 } else {
17312 peg$currPos = s0;
17313 s0 = peg$FAILED;
17314 }
17315
17316 return s0;
17317 }
17318
17319 function peg$parseBooleanFieldDeclaration() {
17320 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
17321
17322 s0 = peg$currPos;
17323 s1 = peg$parseDecorators();
17324 if (s1 !== peg$FAILED) {
17325 s2 = peg$parse__();
17326 if (s2 !== peg$FAILED) {
17327 if (input.charCodeAt(peg$currPos) === 111) {
17328 s3 = peg$c478;
17329 peg$currPos++;
17330 } else {
17331 s3 = peg$FAILED;
17332 if (peg$silentFails === 0) { peg$fail(peg$c479); }
17333 }
17334 if (s3 !== peg$FAILED) {
17335 s4 = peg$parse__();
17336 if (s4 !== peg$FAILED) {
17337 s5 = peg$parseBooleanType();
17338 if (s5 !== peg$FAILED) {
17339 s6 = peg$parse__();
17340 if (s6 !== peg$FAILED) {
17341 if (input.substr(peg$currPos, 2) === peg$c459) {
17342 s7 = peg$c459;
17343 peg$currPos += 2;
17344 } else {
17345 s7 = peg$FAILED;
17346 if (peg$silentFails === 0) { peg$fail(peg$c460); }
17347 }
17348 if (s7 === peg$FAILED) {
17349 s7 = null;
17350 }
17351 if (s7 !== peg$FAILED) {
17352 s8 = peg$parse__();
17353 if (s8 !== peg$FAILED) {
17354 s9 = peg$parseIdentifier();
17355 if (s9 !== peg$FAILED) {
17356 s10 = peg$parse__();
17357 if (s10 !== peg$FAILED) {
17358 s11 = peg$parseBooleanDefault();
17359 if (s11 === peg$FAILED) {
17360 s11 = null;
17361 }
17362 if (s11 !== peg$FAILED) {
17363 s12 = peg$parse__();
17364 if (s12 !== peg$FAILED) {
17365 s13 = peg$parseOptional();
17366 if (s13 === peg$FAILED) {
17367 s13 = null;
17368 }
17369 if (s13 !== peg$FAILED) {
17370 s14 = peg$parse__();
17371 if (s14 !== peg$FAILED) {
17372 peg$savedPos = s0;
17373 s1 = peg$c481(s1, s7, s9, s11, s13);
17374 s0 = s1;
17375 } else {
17376 peg$currPos = s0;
17377 s0 = peg$FAILED;
17378 }
17379 } else {
17380 peg$currPos = s0;
17381 s0 = peg$FAILED;
17382 }
17383 } else {
17384 peg$currPos = s0;
17385 s0 = peg$FAILED;
17386 }
17387 } else {
17388 peg$currPos = s0;
17389 s0 = peg$FAILED;
17390 }
17391 } else {
17392 peg$currPos = s0;
17393 s0 = peg$FAILED;
17394 }
17395 } else {
17396 peg$currPos = s0;
17397 s0 = peg$FAILED;
17398 }
17399 } else {
17400 peg$currPos = s0;
17401 s0 = peg$FAILED;
17402 }
17403 } else {
17404 peg$currPos = s0;
17405 s0 = peg$FAILED;
17406 }
17407 } else {
17408 peg$currPos = s0;
17409 s0 = peg$FAILED;
17410 }
17411 } else {
17412 peg$currPos = s0;
17413 s0 = peg$FAILED;
17414 }
17415 } else {
17416 peg$currPos = s0;
17417 s0 = peg$FAILED;
17418 }
17419 } else {
17420 peg$currPos = s0;
17421 s0 = peg$FAILED;
17422 }
17423 } else {
17424 peg$currPos = s0;
17425 s0 = peg$FAILED;
17426 }
17427 } else {
17428 peg$currPos = s0;
17429 s0 = peg$FAILED;
17430 }
17431
17432 return s0;
17433 }
17434
17435 function peg$parseDateTimeFieldDeclaration() {
17436 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
17437
17438 s0 = peg$currPos;
17439 s1 = peg$parseDecorators();
17440 if (s1 !== peg$FAILED) {
17441 s2 = peg$parse__();
17442 if (s2 !== peg$FAILED) {
17443 if (input.charCodeAt(peg$currPos) === 111) {
17444 s3 = peg$c478;
17445 peg$currPos++;
17446 } else {
17447 s3 = peg$FAILED;
17448 if (peg$silentFails === 0) { peg$fail(peg$c479); }
17449 }
17450 if (s3 !== peg$FAILED) {
17451 s4 = peg$parse__();
17452 if (s4 !== peg$FAILED) {
17453 s5 = peg$parseDateTimeType();
17454 if (s5 !== peg$FAILED) {
17455 s6 = peg$parse__();
17456 if (s6 !== peg$FAILED) {
17457 if (input.substr(peg$currPos, 2) === peg$c459) {
17458 s7 = peg$c459;
17459 peg$currPos += 2;
17460 } else {
17461 s7 = peg$FAILED;
17462 if (peg$silentFails === 0) { peg$fail(peg$c460); }
17463 }
17464 if (s7 === peg$FAILED) {
17465 s7 = null;
17466 }
17467 if (s7 !== peg$FAILED) {
17468 s8 = peg$parse__();
17469 if (s8 !== peg$FAILED) {
17470 s9 = peg$parseIdentifier();
17471 if (s9 !== peg$FAILED) {
17472 s10 = peg$parse__();
17473 if (s10 !== peg$FAILED) {
17474 s11 = peg$parseStringDefault();
17475 if (s11 === peg$FAILED) {
17476 s11 = null;
17477 }
17478 if (s11 !== peg$FAILED) {
17479 s12 = peg$parse__();
17480 if (s12 !== peg$FAILED) {
17481 s13 = peg$parseOptional();
17482 if (s13 === peg$FAILED) {
17483 s13 = null;
17484 }
17485 if (s13 !== peg$FAILED) {
17486 s14 = peg$parse__();
17487 if (s14 !== peg$FAILED) {
17488 peg$savedPos = s0;
17489 s1 = peg$c482(s1, s7, s9, s11, s13);
17490 s0 = s1;
17491 } else {
17492 peg$currPos = s0;
17493 s0 = peg$FAILED;
17494 }
17495 } else {
17496 peg$currPos = s0;
17497 s0 = peg$FAILED;
17498 }
17499 } else {
17500 peg$currPos = s0;
17501 s0 = peg$FAILED;
17502 }
17503 } else {
17504 peg$currPos = s0;
17505 s0 = peg$FAILED;
17506 }
17507 } else {
17508 peg$currPos = s0;
17509 s0 = peg$FAILED;
17510 }
17511 } else {
17512 peg$currPos = s0;
17513 s0 = peg$FAILED;
17514 }
17515 } else {
17516 peg$currPos = s0;
17517 s0 = peg$FAILED;
17518 }
17519 } else {
17520 peg$currPos = s0;
17521 s0 = peg$FAILED;
17522 }
17523 } else {
17524 peg$currPos = s0;
17525 s0 = peg$FAILED;
17526 }
17527 } else {
17528 peg$currPos = s0;
17529 s0 = peg$FAILED;
17530 }
17531 } else {
17532 peg$currPos = s0;
17533 s0 = peg$FAILED;
17534 }
17535 } else {
17536 peg$currPos = s0;
17537 s0 = peg$FAILED;
17538 }
17539 } else {
17540 peg$currPos = s0;
17541 s0 = peg$FAILED;
17542 }
17543 } else {
17544 peg$currPos = s0;
17545 s0 = peg$FAILED;
17546 }
17547
17548 return s0;
17549 }
17550
17551 function peg$parseStringFieldDeclaration() {
17552 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
17553
17554 s0 = peg$currPos;
17555 s1 = peg$parseDecorators();
17556 if (s1 !== peg$FAILED) {
17557 s2 = peg$parse__();
17558 if (s2 !== peg$FAILED) {
17559 if (input.charCodeAt(peg$currPos) === 111) {
17560 s3 = peg$c478;
17561 peg$currPos++;
17562 } else {
17563 s3 = peg$FAILED;
17564 if (peg$silentFails === 0) { peg$fail(peg$c479); }
17565 }
17566 if (s3 !== peg$FAILED) {
17567 s4 = peg$parse__();
17568 if (s4 !== peg$FAILED) {
17569 s5 = peg$parseStringType();
17570 if (s5 !== peg$FAILED) {
17571 s6 = peg$parse__();
17572 if (s6 !== peg$FAILED) {
17573 if (input.substr(peg$currPos, 2) === peg$c459) {
17574 s7 = peg$c459;
17575 peg$currPos += 2;
17576 } else {
17577 s7 = peg$FAILED;
17578 if (peg$silentFails === 0) { peg$fail(peg$c460); }
17579 }
17580 if (s7 === peg$FAILED) {
17581 s7 = null;
17582 }
17583 if (s7 !== peg$FAILED) {
17584 s8 = peg$parse__();
17585 if (s8 !== peg$FAILED) {
17586 s9 = peg$parseIdentifier();
17587 if (s9 !== peg$FAILED) {
17588 s10 = peg$parse__();
17589 if (s10 !== peg$FAILED) {
17590 s11 = peg$parseStringDefault();
17591 if (s11 === peg$FAILED) {
17592 s11 = null;
17593 }
17594 if (s11 !== peg$FAILED) {
17595 s12 = peg$parse__();
17596 if (s12 !== peg$FAILED) {
17597 s13 = peg$parseStringRegexValidator();
17598 if (s13 === peg$FAILED) {
17599 s13 = null;
17600 }
17601 if (s13 !== peg$FAILED) {
17602 s14 = peg$parse__();
17603 if (s14 !== peg$FAILED) {
17604 s15 = peg$parseOptional();
17605 if (s15 === peg$FAILED) {
17606 s15 = null;
17607 }
17608 if (s15 !== peg$FAILED) {
17609 s16 = peg$parse__();
17610 if (s16 !== peg$FAILED) {
17611 peg$savedPos = s0;
17612 s1 = peg$c483(s1, s7, s9, s11, s13, s15);
17613 s0 = s1;
17614 } else {
17615 peg$currPos = s0;
17616 s0 = peg$FAILED;
17617 }
17618 } else {
17619 peg$currPos = s0;
17620 s0 = peg$FAILED;
17621 }
17622 } else {
17623 peg$currPos = s0;
17624 s0 = peg$FAILED;
17625 }
17626 } else {
17627 peg$currPos = s0;
17628 s0 = peg$FAILED;
17629 }
17630 } else {
17631 peg$currPos = s0;
17632 s0 = peg$FAILED;
17633 }
17634 } else {
17635 peg$currPos = s0;
17636 s0 = peg$FAILED;
17637 }
17638 } else {
17639 peg$currPos = s0;
17640 s0 = peg$FAILED;
17641 }
17642 } else {
17643 peg$currPos = s0;
17644 s0 = peg$FAILED;
17645 }
17646 } else {
17647 peg$currPos = s0;
17648 s0 = peg$FAILED;
17649 }
17650 } else {
17651 peg$currPos = s0;
17652 s0 = peg$FAILED;
17653 }
17654 } else {
17655 peg$currPos = s0;
17656 s0 = peg$FAILED;
17657 }
17658 } else {
17659 peg$currPos = s0;
17660 s0 = peg$FAILED;
17661 }
17662 } else {
17663 peg$currPos = s0;
17664 s0 = peg$FAILED;
17665 }
17666 } else {
17667 peg$currPos = s0;
17668 s0 = peg$FAILED;
17669 }
17670 } else {
17671 peg$currPos = s0;
17672 s0 = peg$FAILED;
17673 }
17674 } else {
17675 peg$currPos = s0;
17676 s0 = peg$FAILED;
17677 }
17678
17679 return s0;
17680 }
17681
17682 function peg$parseStringRegexValidator() {
17683 var s0, s1, s2, s3, s4, s5, s6;
17684
17685 s0 = peg$currPos;
17686 if (input.substr(peg$currPos, 5) === peg$c484) {
17687 s1 = peg$c484;
17688 peg$currPos += 5;
17689 } else {
17690 s1 = peg$FAILED;
17691 if (peg$silentFails === 0) { peg$fail(peg$c485); }
17692 }
17693 if (s1 !== peg$FAILED) {
17694 s2 = peg$parse__();
17695 if (s2 !== peg$FAILED) {
17696 if (input.charCodeAt(peg$currPos) === 61) {
17697 s3 = peg$c256;
17698 peg$currPos++;
17699 } else {
17700 s3 = peg$FAILED;
17701 if (peg$silentFails === 0) { peg$fail(peg$c257); }
17702 }
17703 if (s3 !== peg$FAILED) {
17704 s4 = peg$parse__();
17705 if (s4 !== peg$FAILED) {
17706 s5 = peg$currPos;
17707 s6 = peg$parseRegularExpressionLiteral();
17708 if (s6 !== peg$FAILED) {
17709 s5 = input.substring(s5, peg$currPos);
17710 } else {
17711 s5 = s6;
17712 }
17713 if (s5 !== peg$FAILED) {
17714 peg$savedPos = s0;
17715 s1 = peg$c486(s5);
17716 s0 = s1;
17717 } else {
17718 peg$currPos = s0;
17719 s0 = peg$FAILED;
17720 }
17721 } else {
17722 peg$currPos = s0;
17723 s0 = peg$FAILED;
17724 }
17725 } else {
17726 peg$currPos = s0;
17727 s0 = peg$FAILED;
17728 }
17729 } else {
17730 peg$currPos = s0;
17731 s0 = peg$FAILED;
17732 }
17733 } else {
17734 peg$currPos = s0;
17735 s0 = peg$FAILED;
17736 }
17737
17738 return s0;
17739 }
17740
17741 function peg$parseRealDomainValidator() {
17742 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
17743
17744 s0 = peg$currPos;
17745 if (input.substr(peg$currPos, 5) === peg$c487) {
17746 s1 = peg$c487;
17747 peg$currPos += 5;
17748 } else {
17749 s1 = peg$FAILED;
17750 if (peg$silentFails === 0) { peg$fail(peg$c488); }
17751 }
17752 if (s1 !== peg$FAILED) {
17753 s2 = peg$parse__();
17754 if (s2 !== peg$FAILED) {
17755 if (input.charCodeAt(peg$currPos) === 61) {
17756 s3 = peg$c256;
17757 peg$currPos++;
17758 } else {
17759 s3 = peg$FAILED;
17760 if (peg$silentFails === 0) { peg$fail(peg$c257); }
17761 }
17762 if (s3 !== peg$FAILED) {
17763 s4 = peg$parse__();
17764 if (s4 !== peg$FAILED) {
17765 if (input.charCodeAt(peg$currPos) === 91) {
17766 s5 = peg$c112;
17767 peg$currPos++;
17768 } else {
17769 s5 = peg$FAILED;
17770 if (peg$silentFails === 0) { peg$fail(peg$c113); }
17771 }
17772 if (s5 !== peg$FAILED) {
17773 s6 = peg$parse__();
17774 if (s6 !== peg$FAILED) {
17775 s7 = peg$currPos;
17776 s8 = peg$parseSignedRealLiteral();
17777 if (s8 === peg$FAILED) {
17778 s8 = null;
17779 }
17780 if (s8 !== peg$FAILED) {
17781 s7 = input.substring(s7, peg$currPos);
17782 } else {
17783 s7 = s8;
17784 }
17785 if (s7 !== peg$FAILED) {
17786 s8 = peg$parse__();
17787 if (s8 !== peg$FAILED) {
17788 if (input.charCodeAt(peg$currPos) === 44) {
17789 s9 = peg$c228;
17790 peg$currPos++;
17791 } else {
17792 s9 = peg$FAILED;
17793 if (peg$silentFails === 0) { peg$fail(peg$c229); }
17794 }
17795 if (s9 !== peg$FAILED) {
17796 s10 = peg$parse__();
17797 if (s10 !== peg$FAILED) {
17798 s11 = peg$currPos;
17799 s12 = peg$parseSignedRealLiteral();
17800 if (s12 === peg$FAILED) {
17801 s12 = null;
17802 }
17803 if (s12 !== peg$FAILED) {
17804 s11 = input.substring(s11, peg$currPos);
17805 } else {
17806 s11 = s12;
17807 }
17808 if (s11 !== peg$FAILED) {
17809 s12 = peg$parse__();
17810 if (s12 !== peg$FAILED) {
17811 if (input.charCodeAt(peg$currPos) === 93) {
17812 s13 = peg$c114;
17813 peg$currPos++;
17814 } else {
17815 s13 = peg$FAILED;
17816 if (peg$silentFails === 0) { peg$fail(peg$c115); }
17817 }
17818 if (s13 !== peg$FAILED) {
17819 peg$savedPos = s0;
17820 s1 = peg$c489(s7, s11);
17821 s0 = s1;
17822 } else {
17823 peg$currPos = s0;
17824 s0 = peg$FAILED;
17825 }
17826 } else {
17827 peg$currPos = s0;
17828 s0 = peg$FAILED;
17829 }
17830 } else {
17831 peg$currPos = s0;
17832 s0 = peg$FAILED;
17833 }
17834 } else {
17835 peg$currPos = s0;
17836 s0 = peg$FAILED;
17837 }
17838 } else {
17839 peg$currPos = s0;
17840 s0 = peg$FAILED;
17841 }
17842 } else {
17843 peg$currPos = s0;
17844 s0 = peg$FAILED;
17845 }
17846 } else {
17847 peg$currPos = s0;
17848 s0 = peg$FAILED;
17849 }
17850 } else {
17851 peg$currPos = s0;
17852 s0 = peg$FAILED;
17853 }
17854 } else {
17855 peg$currPos = s0;
17856 s0 = peg$FAILED;
17857 }
17858 } else {
17859 peg$currPos = s0;
17860 s0 = peg$FAILED;
17861 }
17862 } else {
17863 peg$currPos = s0;
17864 s0 = peg$FAILED;
17865 }
17866 } else {
17867 peg$currPos = s0;
17868 s0 = peg$FAILED;
17869 }
17870 } else {
17871 peg$currPos = s0;
17872 s0 = peg$FAILED;
17873 }
17874
17875 return s0;
17876 }
17877
17878 function peg$parseIntegerDomainValidator() {
17879 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;
17880
17881 s0 = peg$currPos;
17882 if (input.substr(peg$currPos, 5) === peg$c487) {
17883 s1 = peg$c487;
17884 peg$currPos += 5;
17885 } else {
17886 s1 = peg$FAILED;
17887 if (peg$silentFails === 0) { peg$fail(peg$c488); }
17888 }
17889 if (s1 !== peg$FAILED) {
17890 s2 = peg$parse__();
17891 if (s2 !== peg$FAILED) {
17892 if (input.charCodeAt(peg$currPos) === 61) {
17893 s3 = peg$c256;
17894 peg$currPos++;
17895 } else {
17896 s3 = peg$FAILED;
17897 if (peg$silentFails === 0) { peg$fail(peg$c257); }
17898 }
17899 if (s3 !== peg$FAILED) {
17900 s4 = peg$parse__();
17901 if (s4 !== peg$FAILED) {
17902 if (input.charCodeAt(peg$currPos) === 91) {
17903 s5 = peg$c112;
17904 peg$currPos++;
17905 } else {
17906 s5 = peg$FAILED;
17907 if (peg$silentFails === 0) { peg$fail(peg$c113); }
17908 }
17909 if (s5 !== peg$FAILED) {
17910 s6 = peg$parse__();
17911 if (s6 !== peg$FAILED) {
17912 s7 = peg$currPos;
17913 s8 = peg$parseSignedInteger();
17914 if (s8 === peg$FAILED) {
17915 s8 = null;
17916 }
17917 if (s8 !== peg$FAILED) {
17918 s7 = input.substring(s7, peg$currPos);
17919 } else {
17920 s7 = s8;
17921 }
17922 if (s7 !== peg$FAILED) {
17923 s8 = peg$parse__();
17924 if (s8 !== peg$FAILED) {
17925 if (input.charCodeAt(peg$currPos) === 44) {
17926 s9 = peg$c228;
17927 peg$currPos++;
17928 } else {
17929 s9 = peg$FAILED;
17930 if (peg$silentFails === 0) { peg$fail(peg$c229); }
17931 }
17932 if (s9 !== peg$FAILED) {
17933 s10 = peg$parse__();
17934 if (s10 !== peg$FAILED) {
17935 s11 = peg$currPos;
17936 s12 = peg$parseSignedInteger();
17937 if (s12 === peg$FAILED) {
17938 s12 = null;
17939 }
17940 if (s12 !== peg$FAILED) {
17941 s11 = input.substring(s11, peg$currPos);
17942 } else {
17943 s11 = s12;
17944 }
17945 if (s11 !== peg$FAILED) {
17946 s12 = peg$parse__();
17947 if (s12 !== peg$FAILED) {
17948 if (input.charCodeAt(peg$currPos) === 93) {
17949 s13 = peg$c114;
17950 peg$currPos++;
17951 } else {
17952 s13 = peg$FAILED;
17953 if (peg$silentFails === 0) { peg$fail(peg$c115); }
17954 }
17955 if (s13 !== peg$FAILED) {
17956 peg$savedPos = s0;
17957 s1 = peg$c489(s7, s11);
17958 s0 = s1;
17959 } else {
17960 peg$currPos = s0;
17961 s0 = peg$FAILED;
17962 }
17963 } else {
17964 peg$currPos = s0;
17965 s0 = peg$FAILED;
17966 }
17967 } else {
17968 peg$currPos = s0;
17969 s0 = peg$FAILED;
17970 }
17971 } else {
17972 peg$currPos = s0;
17973 s0 = peg$FAILED;
17974 }
17975 } else {
17976 peg$currPos = s0;
17977 s0 = peg$FAILED;
17978 }
17979 } else {
17980 peg$currPos = s0;
17981 s0 = peg$FAILED;
17982 }
17983 } else {
17984 peg$currPos = s0;
17985 s0 = peg$FAILED;
17986 }
17987 } else {
17988 peg$currPos = s0;
17989 s0 = peg$FAILED;
17990 }
17991 } else {
17992 peg$currPos = s0;
17993 s0 = peg$FAILED;
17994 }
17995 } else {
17996 peg$currPos = s0;
17997 s0 = peg$FAILED;
17998 }
17999 } else {
18000 peg$currPos = s0;
18001 s0 = peg$FAILED;
18002 }
18003 } else {
18004 peg$currPos = s0;
18005 s0 = peg$FAILED;
18006 }
18007 } else {
18008 peg$currPos = s0;
18009 s0 = peg$FAILED;
18010 }
18011
18012 return s0;
18013 }
18014
18015 function peg$parseRealFieldDeclaration() {
18016 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
18017
18018 s0 = peg$currPos;
18019 s1 = peg$parseDecorators();
18020 if (s1 !== peg$FAILED) {
18021 s2 = peg$parse__();
18022 if (s2 !== peg$FAILED) {
18023 if (input.charCodeAt(peg$currPos) === 111) {
18024 s3 = peg$c478;
18025 peg$currPos++;
18026 } else {
18027 s3 = peg$FAILED;
18028 if (peg$silentFails === 0) { peg$fail(peg$c479); }
18029 }
18030 if (s3 !== peg$FAILED) {
18031 s4 = peg$parse__();
18032 if (s4 !== peg$FAILED) {
18033 s5 = peg$parseDoubleType();
18034 if (s5 !== peg$FAILED) {
18035 s6 = peg$parse__();
18036 if (s6 !== peg$FAILED) {
18037 if (input.substr(peg$currPos, 2) === peg$c459) {
18038 s7 = peg$c459;
18039 peg$currPos += 2;
18040 } else {
18041 s7 = peg$FAILED;
18042 if (peg$silentFails === 0) { peg$fail(peg$c460); }
18043 }
18044 if (s7 === peg$FAILED) {
18045 s7 = null;
18046 }
18047 if (s7 !== peg$FAILED) {
18048 s8 = peg$parse__();
18049 if (s8 !== peg$FAILED) {
18050 s9 = peg$parseIdentifier();
18051 if (s9 !== peg$FAILED) {
18052 s10 = peg$parse__();
18053 if (s10 !== peg$FAILED) {
18054 s11 = peg$parseRealDefault();
18055 if (s11 === peg$FAILED) {
18056 s11 = null;
18057 }
18058 if (s11 !== peg$FAILED) {
18059 s12 = peg$parse__();
18060 if (s12 !== peg$FAILED) {
18061 s13 = peg$parseRealDomainValidator();
18062 if (s13 === peg$FAILED) {
18063 s13 = null;
18064 }
18065 if (s13 !== peg$FAILED) {
18066 s14 = peg$parse__();
18067 if (s14 !== peg$FAILED) {
18068 s15 = peg$parseOptional();
18069 if (s15 === peg$FAILED) {
18070 s15 = null;
18071 }
18072 if (s15 !== peg$FAILED) {
18073 s16 = peg$parse__();
18074 if (s16 !== peg$FAILED) {
18075 peg$savedPos = s0;
18076 s1 = peg$c490(s1, s5, s7, s9, s11, s13, s15);
18077 s0 = s1;
18078 } else {
18079 peg$currPos = s0;
18080 s0 = peg$FAILED;
18081 }
18082 } else {
18083 peg$currPos = s0;
18084 s0 = peg$FAILED;
18085 }
18086 } else {
18087 peg$currPos = s0;
18088 s0 = peg$FAILED;
18089 }
18090 } else {
18091 peg$currPos = s0;
18092 s0 = peg$FAILED;
18093 }
18094 } else {
18095 peg$currPos = s0;
18096 s0 = peg$FAILED;
18097 }
18098 } else {
18099 peg$currPos = s0;
18100 s0 = peg$FAILED;
18101 }
18102 } else {
18103 peg$currPos = s0;
18104 s0 = peg$FAILED;
18105 }
18106 } else {
18107 peg$currPos = s0;
18108 s0 = peg$FAILED;
18109 }
18110 } else {
18111 peg$currPos = s0;
18112 s0 = peg$FAILED;
18113 }
18114 } else {
18115 peg$currPos = s0;
18116 s0 = peg$FAILED;
18117 }
18118 } else {
18119 peg$currPos = s0;
18120 s0 = peg$FAILED;
18121 }
18122 } else {
18123 peg$currPos = s0;
18124 s0 = peg$FAILED;
18125 }
18126 } else {
18127 peg$currPos = s0;
18128 s0 = peg$FAILED;
18129 }
18130 } else {
18131 peg$currPos = s0;
18132 s0 = peg$FAILED;
18133 }
18134 } else {
18135 peg$currPos = s0;
18136 s0 = peg$FAILED;
18137 }
18138 } else {
18139 peg$currPos = s0;
18140 s0 = peg$FAILED;
18141 }
18142
18143 return s0;
18144 }
18145
18146 function peg$parseIntegerFieldDeclaration() {
18147 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16;
18148
18149 s0 = peg$currPos;
18150 s1 = peg$parseDecorators();
18151 if (s1 !== peg$FAILED) {
18152 s2 = peg$parse__();
18153 if (s2 !== peg$FAILED) {
18154 if (input.charCodeAt(peg$currPos) === 111) {
18155 s3 = peg$c478;
18156 peg$currPos++;
18157 } else {
18158 s3 = peg$FAILED;
18159 if (peg$silentFails === 0) { peg$fail(peg$c479); }
18160 }
18161 if (s3 !== peg$FAILED) {
18162 s4 = peg$parse__();
18163 if (s4 !== peg$FAILED) {
18164 s5 = peg$parseWholeNumberType();
18165 if (s5 !== peg$FAILED) {
18166 s6 = peg$parse__();
18167 if (s6 !== peg$FAILED) {
18168 if (input.substr(peg$currPos, 2) === peg$c459) {
18169 s7 = peg$c459;
18170 peg$currPos += 2;
18171 } else {
18172 s7 = peg$FAILED;
18173 if (peg$silentFails === 0) { peg$fail(peg$c460); }
18174 }
18175 if (s7 === peg$FAILED) {
18176 s7 = null;
18177 }
18178 if (s7 !== peg$FAILED) {
18179 s8 = peg$parse__();
18180 if (s8 !== peg$FAILED) {
18181 s9 = peg$parseIdentifier();
18182 if (s9 !== peg$FAILED) {
18183 s10 = peg$parse__();
18184 if (s10 !== peg$FAILED) {
18185 s11 = peg$parseIntegerDefault();
18186 if (s11 === peg$FAILED) {
18187 s11 = null;
18188 }
18189 if (s11 !== peg$FAILED) {
18190 s12 = peg$parse__();
18191 if (s12 !== peg$FAILED) {
18192 s13 = peg$parseIntegerDomainValidator();
18193 if (s13 === peg$FAILED) {
18194 s13 = null;
18195 }
18196 if (s13 !== peg$FAILED) {
18197 s14 = peg$parse__();
18198 if (s14 !== peg$FAILED) {
18199 s15 = peg$parseOptional();
18200 if (s15 === peg$FAILED) {
18201 s15 = null;
18202 }
18203 if (s15 !== peg$FAILED) {
18204 s16 = peg$parse__();
18205 if (s16 !== peg$FAILED) {
18206 peg$savedPos = s0;
18207 s1 = peg$c490(s1, s5, s7, s9, s11, s13, s15);
18208 s0 = s1;
18209 } else {
18210 peg$currPos = s0;
18211 s0 = peg$FAILED;
18212 }
18213 } else {
18214 peg$currPos = s0;
18215 s0 = peg$FAILED;
18216 }
18217 } else {
18218 peg$currPos = s0;
18219 s0 = peg$FAILED;
18220 }
18221 } else {
18222 peg$currPos = s0;
18223 s0 = peg$FAILED;
18224 }
18225 } else {
18226 peg$currPos = s0;
18227 s0 = peg$FAILED;
18228 }
18229 } else {
18230 peg$currPos = s0;
18231 s0 = peg$FAILED;
18232 }
18233 } else {
18234 peg$currPos = s0;
18235 s0 = peg$FAILED;
18236 }
18237 } else {
18238 peg$currPos = s0;
18239 s0 = peg$FAILED;
18240 }
18241 } else {
18242 peg$currPos = s0;
18243 s0 = peg$FAILED;
18244 }
18245 } else {
18246 peg$currPos = s0;
18247 s0 = peg$FAILED;
18248 }
18249 } else {
18250 peg$currPos = s0;
18251 s0 = peg$FAILED;
18252 }
18253 } else {
18254 peg$currPos = s0;
18255 s0 = peg$FAILED;
18256 }
18257 } else {
18258 peg$currPos = s0;
18259 s0 = peg$FAILED;
18260 }
18261 } else {
18262 peg$currPos = s0;
18263 s0 = peg$FAILED;
18264 }
18265 } else {
18266 peg$currPos = s0;
18267 s0 = peg$FAILED;
18268 }
18269 } else {
18270 peg$currPos = s0;
18271 s0 = peg$FAILED;
18272 }
18273
18274 return s0;
18275 }
18276
18277 function peg$parseEnumDeclaration() {
18278 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
18279
18280 s0 = peg$currPos;
18281 s1 = peg$parseDecorators();
18282 if (s1 !== peg$FAILED) {
18283 s2 = peg$parse__();
18284 if (s2 !== peg$FAILED) {
18285 s3 = peg$parseEnumToken();
18286 if (s3 !== peg$FAILED) {
18287 s4 = peg$parse__();
18288 if (s4 !== peg$FAILED) {
18289 s5 = peg$parseIdentifier();
18290 if (s5 !== peg$FAILED) {
18291 s6 = peg$parse__();
18292 if (s6 !== peg$FAILED) {
18293 if (input.charCodeAt(peg$currPos) === 123) {
18294 s7 = peg$c339;
18295 peg$currPos++;
18296 } else {
18297 s7 = peg$FAILED;
18298 if (peg$silentFails === 0) { peg$fail(peg$c340); }
18299 }
18300 if (s7 !== peg$FAILED) {
18301 s8 = peg$parse__();
18302 if (s8 !== peg$FAILED) {
18303 s9 = peg$parseEnumDeclarationBody();
18304 if (s9 !== peg$FAILED) {
18305 s10 = peg$parse__();
18306 if (s10 !== peg$FAILED) {
18307 if (input.charCodeAt(peg$currPos) === 125) {
18308 s11 = peg$c218;
18309 peg$currPos++;
18310 } else {
18311 s11 = peg$FAILED;
18312 if (peg$silentFails === 0) { peg$fail(peg$c219); }
18313 }
18314 if (s11 !== peg$FAILED) {
18315 peg$savedPos = s0;
18316 s1 = peg$c491(s1, s5, s9);
18317 s0 = s1;
18318 } else {
18319 peg$currPos = s0;
18320 s0 = peg$FAILED;
18321 }
18322 } else {
18323 peg$currPos = s0;
18324 s0 = peg$FAILED;
18325 }
18326 } else {
18327 peg$currPos = s0;
18328 s0 = peg$FAILED;
18329 }
18330 } else {
18331 peg$currPos = s0;
18332 s0 = peg$FAILED;
18333 }
18334 } else {
18335 peg$currPos = s0;
18336 s0 = peg$FAILED;
18337 }
18338 } else {
18339 peg$currPos = s0;
18340 s0 = peg$FAILED;
18341 }
18342 } else {
18343 peg$currPos = s0;
18344 s0 = peg$FAILED;
18345 }
18346 } else {
18347 peg$currPos = s0;
18348 s0 = peg$FAILED;
18349 }
18350 } else {
18351 peg$currPos = s0;
18352 s0 = peg$FAILED;
18353 }
18354 } else {
18355 peg$currPos = s0;
18356 s0 = peg$FAILED;
18357 }
18358 } else {
18359 peg$currPos = s0;
18360 s0 = peg$FAILED;
18361 }
18362
18363 return s0;
18364 }
18365
18366 function peg$parseEnumDeclarationBody() {
18367 var s0, s1, s2;
18368
18369 s0 = peg$currPos;
18370 s1 = [];
18371 s2 = peg$parseEnumPropertyDeclaration();
18372 while (s2 !== peg$FAILED) {
18373 s1.push(s2);
18374 s2 = peg$parseEnumPropertyDeclaration();
18375 }
18376 if (s1 !== peg$FAILED) {
18377 peg$savedPos = s0;
18378 s1 = peg$c492(s1);
18379 }
18380 s0 = s1;
18381
18382 return s0;
18383 }
18384
18385 function peg$parseEnumPropertyDeclaration() {
18386 var s0, s1, s2, s3, s4, s5, s6, s7, s8;
18387
18388 s0 = peg$currPos;
18389 s1 = peg$parseDecorators();
18390 if (s1 !== peg$FAILED) {
18391 s2 = peg$parse__();
18392 if (s2 !== peg$FAILED) {
18393 if (input.charCodeAt(peg$currPos) === 111) {
18394 s3 = peg$c478;
18395 peg$currPos++;
18396 } else {
18397 s3 = peg$FAILED;
18398 if (peg$silentFails === 0) { peg$fail(peg$c479); }
18399 }
18400 if (s3 !== peg$FAILED) {
18401 s4 = peg$parse__();
18402 if (s4 !== peg$FAILED) {
18403 s5 = peg$parseIdentifier();
18404 if (s5 !== peg$FAILED) {
18405 s6 = peg$parse__();
18406 if (s6 !== peg$FAILED) {
18407 s7 = peg$parseOptional();
18408 if (s7 === peg$FAILED) {
18409 s7 = null;
18410 }
18411 if (s7 !== peg$FAILED) {
18412 s8 = peg$parse__();
18413 if (s8 !== peg$FAILED) {
18414 peg$savedPos = s0;
18415 s1 = peg$c493(s1, s5, s7);
18416 s0 = s1;
18417 } else {
18418 peg$currPos = s0;
18419 s0 = peg$FAILED;
18420 }
18421 } else {
18422 peg$currPos = s0;
18423 s0 = peg$FAILED;
18424 }
18425 } else {
18426 peg$currPos = s0;
18427 s0 = peg$FAILED;
18428 }
18429 } else {
18430 peg$currPos = s0;
18431 s0 = peg$FAILED;
18432 }
18433 } else {
18434 peg$currPos = s0;
18435 s0 = peg$FAILED;
18436 }
18437 } else {
18438 peg$currPos = s0;
18439 s0 = peg$FAILED;
18440 }
18441 } else {
18442 peg$currPos = s0;
18443 s0 = peg$FAILED;
18444 }
18445 } else {
18446 peg$currPos = s0;
18447 s0 = peg$FAILED;
18448 }
18449
18450 return s0;
18451 }
18452
18453 function peg$parseRelationshipDeclaration() {
18454 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;
18455
18456 s0 = peg$currPos;
18457 s1 = peg$parseDecorators();
18458 if (s1 !== peg$FAILED) {
18459 s2 = peg$parse__();
18460 if (s2 !== peg$FAILED) {
18461 if (input.substr(peg$currPos, 3) === peg$c494) {
18462 s3 = peg$c494;
18463 peg$currPos += 3;
18464 } else {
18465 s3 = peg$FAILED;
18466 if (peg$silentFails === 0) { peg$fail(peg$c495); }
18467 }
18468 if (s3 !== peg$FAILED) {
18469 s4 = peg$parse__();
18470 if (s4 !== peg$FAILED) {
18471 s5 = peg$parseIdentifier();
18472 if (s5 !== peg$FAILED) {
18473 s6 = peg$parse__();
18474 if (s6 !== peg$FAILED) {
18475 if (input.substr(peg$currPos, 2) === peg$c459) {
18476 s7 = peg$c459;
18477 peg$currPos += 2;
18478 } else {
18479 s7 = peg$FAILED;
18480 if (peg$silentFails === 0) { peg$fail(peg$c460); }
18481 }
18482 if (s7 === peg$FAILED) {
18483 s7 = null;
18484 }
18485 if (s7 !== peg$FAILED) {
18486 s8 = peg$parse__();
18487 if (s8 !== peg$FAILED) {
18488 s9 = peg$parseIdentifier();
18489 if (s9 !== peg$FAILED) {
18490 s10 = peg$parse__();
18491 if (s10 !== peg$FAILED) {
18492 s11 = peg$parseOptional();
18493 if (s11 === peg$FAILED) {
18494 s11 = null;
18495 }
18496 if (s11 !== peg$FAILED) {
18497 s12 = peg$parse__();
18498 if (s12 !== peg$FAILED) {
18499 peg$savedPos = s0;
18500 s1 = peg$c496(s1, s5, s7, s9, s11);
18501 s0 = s1;
18502 } else {
18503 peg$currPos = s0;
18504 s0 = peg$FAILED;
18505 }
18506 } else {
18507 peg$currPos = s0;
18508 s0 = peg$FAILED;
18509 }
18510 } else {
18511 peg$currPos = s0;
18512 s0 = peg$FAILED;
18513 }
18514 } else {
18515 peg$currPos = s0;
18516 s0 = peg$FAILED;
18517 }
18518 } else {
18519 peg$currPos = s0;
18520 s0 = peg$FAILED;
18521 }
18522 } else {
18523 peg$currPos = s0;
18524 s0 = peg$FAILED;
18525 }
18526 } else {
18527 peg$currPos = s0;
18528 s0 = peg$FAILED;
18529 }
18530 } else {
18531 peg$currPos = s0;
18532 s0 = peg$FAILED;
18533 }
18534 } else {
18535 peg$currPos = s0;
18536 s0 = peg$FAILED;
18537 }
18538 } else {
18539 peg$currPos = s0;
18540 s0 = peg$FAILED;
18541 }
18542 } else {
18543 peg$currPos = s0;
18544 s0 = peg$FAILED;
18545 }
18546 } else {
18547 peg$currPos = s0;
18548 s0 = peg$FAILED;
18549 }
18550
18551 return s0;
18552 }
18553
18554 function peg$parseQualifiedName() {
18555 var s0, s1, s2, s3, s4, s5, s6;
18556
18557 s0 = peg$currPos;
18558 s1 = peg$currPos;
18559 s2 = peg$parseIdentifier();
18560 if (s2 !== peg$FAILED) {
18561 s1 = input.substring(s1, peg$currPos);
18562 } else {
18563 s1 = s2;
18564 }
18565 if (s1 !== peg$FAILED) {
18566 s2 = peg$currPos;
18567 s3 = [];
18568 s4 = peg$currPos;
18569 if (input.charCodeAt(peg$currPos) === 46) {
18570 s5 = peg$c54;
18571 peg$currPos++;
18572 } else {
18573 s5 = peg$FAILED;
18574 if (peg$silentFails === 0) { peg$fail(peg$c55); }
18575 }
18576 if (s5 !== peg$FAILED) {
18577 s6 = peg$parseIdentifier();
18578 if (s6 !== peg$FAILED) {
18579 s5 = [s5, s6];
18580 s4 = s5;
18581 } else {
18582 peg$currPos = s4;
18583 s4 = peg$FAILED;
18584 }
18585 } else {
18586 peg$currPos = s4;
18587 s4 = peg$FAILED;
18588 }
18589 while (s4 !== peg$FAILED) {
18590 s3.push(s4);
18591 s4 = peg$currPos;
18592 if (input.charCodeAt(peg$currPos) === 46) {
18593 s5 = peg$c54;
18594 peg$currPos++;
18595 } else {
18596 s5 = peg$FAILED;
18597 if (peg$silentFails === 0) { peg$fail(peg$c55); }
18598 }
18599 if (s5 !== peg$FAILED) {
18600 s6 = peg$parseIdentifier();
18601 if (s6 !== peg$FAILED) {
18602 s5 = [s5, s6];
18603 s4 = s5;
18604 } else {
18605 peg$currPos = s4;
18606 s4 = peg$FAILED;
18607 }
18608 } else {
18609 peg$currPos = s4;
18610 s4 = peg$FAILED;
18611 }
18612 }
18613 if (s3 !== peg$FAILED) {
18614 s2 = input.substring(s2, peg$currPos);
18615 } else {
18616 s2 = s3;
18617 }
18618 if (s2 !== peg$FAILED) {
18619 peg$savedPos = s0;
18620 s1 = peg$c497(s1, s2);
18621 s0 = s1;
18622 } else {
18623 peg$currPos = s0;
18624 s0 = peg$FAILED;
18625 }
18626 } else {
18627 peg$currPos = s0;
18628 s0 = peg$FAILED;
18629 }
18630
18631 return s0;
18632 }
18633
18634 function peg$parseNamespace() {
18635 var s0, s1, s2, s3, s4;
18636
18637 s0 = peg$currPos;
18638 s1 = peg$parseNamespaceToken();
18639 if (s1 !== peg$FAILED) {
18640 s2 = peg$parse__();
18641 if (s2 !== peg$FAILED) {
18642 s3 = peg$parseQualifiedName();
18643 if (s3 !== peg$FAILED) {
18644 s4 = peg$parse__();
18645 if (s4 !== peg$FAILED) {
18646 peg$savedPos = s0;
18647 s1 = peg$c498(s3);
18648 s0 = s1;
18649 } else {
18650 peg$currPos = s0;
18651 s0 = peg$FAILED;
18652 }
18653 } else {
18654 peg$currPos = s0;
18655 s0 = peg$FAILED;
18656 }
18657 } else {
18658 peg$currPos = s0;
18659 s0 = peg$FAILED;
18660 }
18661 } else {
18662 peg$currPos = s0;
18663 s0 = peg$FAILED;
18664 }
18665
18666 return s0;
18667 }
18668
18669 function peg$parseImportInternal() {
18670 var s0, s1, s2, s3, s4, s5, s6;
18671
18672 s0 = peg$currPos;
18673 s1 = peg$parseImportToken();
18674 if (s1 !== peg$FAILED) {
18675 s2 = peg$parse__();
18676 if (s2 !== peg$FAILED) {
18677 s3 = peg$currPos;
18678 s4 = peg$currPos;
18679 s5 = peg$parseQualifiedName();
18680 if (s5 !== peg$FAILED) {
18681 if (input.substr(peg$currPos, 2) === peg$c499) {
18682 s6 = peg$c499;
18683 peg$currPos += 2;
18684 } else {
18685 s6 = peg$FAILED;
18686 if (peg$silentFails === 0) { peg$fail(peg$c500); }
18687 }
18688 if (s6 === peg$FAILED) {
18689 s6 = null;
18690 }
18691 if (s6 !== peg$FAILED) {
18692 s5 = [s5, s6];
18693 s4 = s5;
18694 } else {
18695 peg$currPos = s4;
18696 s4 = peg$FAILED;
18697 }
18698 } else {
18699 peg$currPos = s4;
18700 s4 = peg$FAILED;
18701 }
18702 if (s4 !== peg$FAILED) {
18703 s3 = input.substring(s3, peg$currPos);
18704 } else {
18705 s3 = s4;
18706 }
18707 if (s3 !== peg$FAILED) {
18708 s4 = peg$parse__();
18709 if (s4 !== peg$FAILED) {
18710 peg$savedPos = s0;
18711 s1 = peg$c501(s3);
18712 s0 = s1;
18713 } else {
18714 peg$currPos = s0;
18715 s0 = peg$FAILED;
18716 }
18717 } else {
18718 peg$currPos = s0;
18719 s0 = peg$FAILED;
18720 }
18721 } else {
18722 peg$currPos = s0;
18723 s0 = peg$FAILED;
18724 }
18725 } else {
18726 peg$currPos = s0;
18727 s0 = peg$FAILED;
18728 }
18729
18730 return s0;
18731 }
18732
18733 function peg$parseImportFrom() {
18734 var s0, s1, s2, s3, s4, s5, s6, s7, s8;
18735
18736 s0 = peg$currPos;
18737 s1 = peg$parseImportToken();
18738 if (s1 !== peg$FAILED) {
18739 s2 = peg$parse__();
18740 if (s2 !== peg$FAILED) {
18741 s3 = peg$currPos;
18742 s4 = peg$currPos;
18743 s5 = peg$parseQualifiedName();
18744 if (s5 !== peg$FAILED) {
18745 if (input.substr(peg$currPos, 2) === peg$c499) {
18746 s6 = peg$c499;
18747 peg$currPos += 2;
18748 } else {
18749 s6 = peg$FAILED;
18750 if (peg$silentFails === 0) { peg$fail(peg$c500); }
18751 }
18752 if (s6 === peg$FAILED) {
18753 s6 = null;
18754 }
18755 if (s6 !== peg$FAILED) {
18756 s5 = [s5, s6];
18757 s4 = s5;
18758 } else {
18759 peg$currPos = s4;
18760 s4 = peg$FAILED;
18761 }
18762 } else {
18763 peg$currPos = s4;
18764 s4 = peg$FAILED;
18765 }
18766 if (s4 !== peg$FAILED) {
18767 s3 = input.substring(s3, peg$currPos);
18768 } else {
18769 s3 = s4;
18770 }
18771 if (s3 !== peg$FAILED) {
18772 s4 = peg$parse__();
18773 if (s4 !== peg$FAILED) {
18774 s5 = peg$parseFromToken();
18775 if (s5 !== peg$FAILED) {
18776 s6 = peg$parse__();
18777 if (s6 !== peg$FAILED) {
18778 s7 = peg$currPos;
18779 s8 = peg$parseURI();
18780 if (s8 !== peg$FAILED) {
18781 s7 = input.substring(s7, peg$currPos);
18782 } else {
18783 s7 = s8;
18784 }
18785 if (s7 !== peg$FAILED) {
18786 s8 = peg$parse__();
18787 if (s8 !== peg$FAILED) {
18788 peg$savedPos = s0;
18789 s1 = peg$c502(s3, s7);
18790 s0 = s1;
18791 } else {
18792 peg$currPos = s0;
18793 s0 = peg$FAILED;
18794 }
18795 } else {
18796 peg$currPos = s0;
18797 s0 = peg$FAILED;
18798 }
18799 } else {
18800 peg$currPos = s0;
18801 s0 = peg$FAILED;
18802 }
18803 } else {
18804 peg$currPos = s0;
18805 s0 = peg$FAILED;
18806 }
18807 } else {
18808 peg$currPos = s0;
18809 s0 = peg$FAILED;
18810 }
18811 } else {
18812 peg$currPos = s0;
18813 s0 = peg$FAILED;
18814 }
18815 } else {
18816 peg$currPos = s0;
18817 s0 = peg$FAILED;
18818 }
18819 } else {
18820 peg$currPos = s0;
18821 s0 = peg$FAILED;
18822 }
18823
18824 return s0;
18825 }
18826
18827 function peg$parseImport() {
18828 var s0;
18829
18830 s0 = peg$parseImportFrom();
18831 if (s0 === peg$FAILED) {
18832 s0 = peg$parseImportInternal();
18833 }
18834
18835 return s0;
18836 }
18837
18838 function peg$parseProgram() {
18839 var s0, s1, s2, s3;
18840
18841 s0 = peg$currPos;
18842 s1 = peg$parseNamespace();
18843 if (s1 !== peg$FAILED) {
18844 s2 = peg$parseImports();
18845 if (s2 === peg$FAILED) {
18846 s2 = null;
18847 }
18848 if (s2 !== peg$FAILED) {
18849 s3 = peg$parseSourceElements();
18850 if (s3 === peg$FAILED) {
18851 s3 = null;
18852 }
18853 if (s3 !== peg$FAILED) {
18854 peg$savedPos = s0;
18855 s1 = peg$c503(s1, s2, s3);
18856 s0 = s1;
18857 } else {
18858 peg$currPos = s0;
18859 s0 = peg$FAILED;
18860 }
18861 } else {
18862 peg$currPos = s0;
18863 s0 = peg$FAILED;
18864 }
18865 } else {
18866 peg$currPos = s0;
18867 s0 = peg$FAILED;
18868 }
18869
18870 return s0;
18871 }
18872
18873 function peg$parseImports() {
18874 var s0, s1, s2, s3, s4, s5;
18875
18876 s0 = peg$currPos;
18877 s1 = peg$parseImport();
18878 if (s1 !== peg$FAILED) {
18879 s2 = [];
18880 s3 = peg$currPos;
18881 s4 = peg$parse__();
18882 if (s4 !== peg$FAILED) {
18883 s5 = peg$parseImport();
18884 if (s5 !== peg$FAILED) {
18885 s4 = [s4, s5];
18886 s3 = s4;
18887 } else {
18888 peg$currPos = s3;
18889 s3 = peg$FAILED;
18890 }
18891 } else {
18892 peg$currPos = s3;
18893 s3 = peg$FAILED;
18894 }
18895 while (s3 !== peg$FAILED) {
18896 s2.push(s3);
18897 s3 = peg$currPos;
18898 s4 = peg$parse__();
18899 if (s4 !== peg$FAILED) {
18900 s5 = peg$parseImport();
18901 if (s5 !== peg$FAILED) {
18902 s4 = [s4, s5];
18903 s3 = s4;
18904 } else {
18905 peg$currPos = s3;
18906 s3 = peg$FAILED;
18907 }
18908 } else {
18909 peg$currPos = s3;
18910 s3 = peg$FAILED;
18911 }
18912 }
18913 if (s2 !== peg$FAILED) {
18914 peg$savedPos = s0;
18915 s1 = peg$c504(s1, s2);
18916 s0 = s1;
18917 } else {
18918 peg$currPos = s0;
18919 s0 = peg$FAILED;
18920 }
18921 } else {
18922 peg$currPos = s0;
18923 s0 = peg$FAILED;
18924 }
18925
18926 return s0;
18927 }
18928
18929 function peg$parseSourceElements() {
18930 var s0, s1, s2, s3, s4, s5;
18931
18932 s0 = peg$currPos;
18933 s1 = peg$parseSourceElement();
18934 if (s1 !== peg$FAILED) {
18935 s2 = [];
18936 s3 = peg$currPos;
18937 s4 = peg$parse__();
18938 if (s4 !== peg$FAILED) {
18939 s5 = peg$parseSourceElement();
18940 if (s5 !== peg$FAILED) {
18941 s4 = [s4, s5];
18942 s3 = s4;
18943 } else {
18944 peg$currPos = s3;
18945 s3 = peg$FAILED;
18946 }
18947 } else {
18948 peg$currPos = s3;
18949 s3 = peg$FAILED;
18950 }
18951 while (s3 !== peg$FAILED) {
18952 s2.push(s3);
18953 s3 = peg$currPos;
18954 s4 = peg$parse__();
18955 if (s4 !== peg$FAILED) {
18956 s5 = peg$parseSourceElement();
18957 if (s5 !== peg$FAILED) {
18958 s4 = [s4, s5];
18959 s3 = s4;
18960 } else {
18961 peg$currPos = s3;
18962 s3 = peg$FAILED;
18963 }
18964 } else {
18965 peg$currPos = s3;
18966 s3 = peg$FAILED;
18967 }
18968 }
18969 if (s2 !== peg$FAILED) {
18970 peg$savedPos = s0;
18971 s1 = peg$c505(s1, s2);
18972 s0 = s1;
18973 } else {
18974 peg$currPos = s0;
18975 s0 = peg$FAILED;
18976 }
18977 } else {
18978 peg$currPos = s0;
18979 s0 = peg$FAILED;
18980 }
18981
18982 return s0;
18983 }
18984
18985 function peg$parseSourceElement() {
18986 var s0;
18987
18988 s0 = peg$parseAssetDeclaration();
18989 if (s0 === peg$FAILED) {
18990 s0 = peg$parseTransactionDeclaration();
18991 if (s0 === peg$FAILED) {
18992 s0 = peg$parseEventDeclaration();
18993 if (s0 === peg$FAILED) {
18994 s0 = peg$parseParticipantDeclaration();
18995 if (s0 === peg$FAILED) {
18996 s0 = peg$parseEnumDeclaration();
18997 if (s0 === peg$FAILED) {
18998 s0 = peg$parseConceptDeclaration();
18999 }
19000 }
19001 }
19002 }
19003 }
19004
19005 return s0;
19006 }
19007
19008
19009 var TYPES_TO_PROPERTY_NAMES = {
19010 CallExpression: "callee",
19011 MemberExpression: "object",
19012 };
19013
19014 function filledArray(count, value) {
19015 var result = new Array(count), i;
19016
19017 for (i = 0; i < count; i++) {
19018 result[i] = value;
19019 }
19020
19021 return result;
19022 }
19023
19024 function extractOptional(optional, index) {
19025 return optional ? optional[index] : null;
19026 }
19027
19028 function extractList(list, index) {
19029 var result = new Array(list.length), i;
19030
19031 for (i = 0; i < list.length; i++) {
19032 result[i] = list[i][index];
19033 }
19034
19035 return result;
19036 }
19037
19038 function buildList(first, rest, index) {
19039 return [first].concat(extractList(rest, index));
19040 }
19041
19042 function buildTree(first, rest, builder) {
19043 var result = first, i;
19044
19045 for (i = 0; i < rest.length; i++) {
19046 result = builder(result, rest[i]);
19047 }
19048
19049 return result;
19050 }
19051
19052 function buildBinaryExpression(first, rest) {
19053 return buildTree(first, rest, function(result, element) {
19054 return {
19055 type: "BinaryExpression",
19056 operator: element[1],
19057 left: result,
19058 right: element[3]
19059 };
19060 });
19061 }
19062
19063 function buildLogicalExpression(first, rest) {
19064 return buildTree(first, rest, function(result, element) {
19065 return {
19066 type: "LogicalExpression",
19067 operator: element[1],
19068 left: result,
19069 right: element[3]
19070 };
19071 });
19072 }
19073
19074 function optionalList(value) {
19075 return value !== null ? value : [];
19076 }
19077
19078
19079 peg$result = peg$startRuleFunction();
19080
19081 if (peg$result !== peg$FAILED && peg$currPos === input.length) {
19082 return peg$result;
19083 } else {
19084 if (peg$result !== peg$FAILED && peg$currPos < input.length) {
19085 peg$fail(peg$endExpectation());
19086 }
19087
19088 throw peg$buildStructuredError(
19089 peg$maxFailExpected,
19090 peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
19091 peg$maxFailPos < input.length
19092 ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
19093 : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
19094 );
19095 }
19096}
19097
19098module.exports = {
19099 SyntaxError: peg$SyntaxError,
19100 parse: peg$parse
19101};