UNPKG

276 kBJavaScriptView Raw
1module.exports = (function() {
2 "use strict";
3
4 /*
5 * Generated by PEG.js 0.9.0.
6 *
7 * http://pegjs.org/
8 */
9
10 function peg$subclass(child, parent) {
11 function ctor() { this.constructor = child; }
12 ctor.prototype = parent.prototype;
13 child.prototype = new ctor();
14 }
15
16 function peg$SyntaxError(message, expected, found, location) {
17 this.message = message;
18 this.expected = expected;
19 this.found = found;
20 this.location = location;
21 this.name = "SyntaxError";
22
23 if (typeof Error.captureStackTrace === "function") {
24 Error.captureStackTrace(this, peg$SyntaxError);
25 }
26 }
27
28 peg$subclass(peg$SyntaxError, Error);
29
30 function peg$parse(input) {
31 var options = arguments.length > 1 ? arguments[1] : {},
32 parser = this,
33
34 peg$FAILED = {},
35
36 peg$startRuleFunctions = { start: peg$parsestart },
37 peg$startRuleFunction = peg$parsestart,
38
39 peg$c0 = function(body) {
40 return {
41 kind: 'script',
42 body: body.map(function (e) { return e[1]; })
43 };
44 },
45 peg$c1 = { type: "other", description: "whitespace" },
46 peg$c2 = /^[\t\x0B\f \xA0\uFEFF]/,
47 peg$c3 = { type: "class", value: "[\\t\\v\\f \\u00A0\\uFEFF]", description: "[\\t\\v\\f \\u00A0\\uFEFF]" },
48 peg$c4 = { type: "other", description: "end of line" },
49 peg$c5 = "\n",
50 peg$c6 = { type: "literal", value: "\n", description: "\"\\n\"" },
51 peg$c7 = "\r\n",
52 peg$c8 = { type: "literal", value: "\r\n", description: "\"\\r\\n\"" },
53 peg$c9 = "\r",
54 peg$c10 = { type: "literal", value: "\r", description: "\"\\r\"" },
55 peg$c11 = "\u2028",
56 peg$c12 = { type: "literal", value: "\u2028", description: "\"\\u2028\"" },
57 peg$c13 = "\u2029",
58 peg$c14 = { type: "literal", value: "\u2029", description: "\"\\u2029\"" },
59 peg$c15 = /^[\n\r\u2028\u2029]/,
60 peg$c16 = { type: "class", value: "[\\n\\r\\u2028\\u2029]", description: "[\\n\\r\\u2028\\u2029]" },
61 peg$c17 = "(;",
62 peg$c18 = { type: "literal", value: "(;", description: "\"(;\"" },
63 peg$c19 = ";)",
64 peg$c20 = { type: "literal", value: ";)", description: "\";)\"" },
65 peg$c21 = { type: "any", description: "any character" },
66 peg$c22 = function() { return null; },
67 peg$c23 = { type: "other", description: "comment" },
68 peg$c24 = ";;",
69 peg$c25 = { type: "literal", value: ";;", description: "\";;\"" },
70 peg$c26 = /^[a-zA-Z0-9\-_.]/,
71 peg$c27 = { type: "class", value: "[a-zA-Z0-9\\-\\_\\.]", description: "[a-zA-Z0-9\\-\\_\\.]" },
72 peg$c28 = function(name) { return name.join(''); },
73 peg$c29 = "i32",
74 peg$c30 = { type: "literal", value: "i32", description: "\"i32\"" },
75 peg$c31 = "i64",
76 peg$c32 = { type: "literal", value: "i64", description: "\"i64\"" },
77 peg$c33 = "f32",
78 peg$c34 = { type: "literal", value: "f32", description: "\"f32\"" },
79 peg$c35 = "f64",
80 peg$c36 = { type: "literal", value: "f64", description: "\"f64\"" },
81 peg$c37 = "0x",
82 peg$c38 = { type: "literal", value: "0x", description: "\"0x\"" },
83 peg$c39 = /^[0-9A-Fa-f]/,
84 peg$c40 = { type: "class", value: "[0-9A-Fa-f]", description: "[0-9A-Fa-f]" },
85 peg$c41 = "-",
86 peg$c42 = { type: "literal", value: "-", description: "\"-\"" },
87 peg$c43 = /^[0-9]/,
88 peg$c44 = { type: "class", value: "[0-9]", description: "[0-9]" },
89 peg$c45 = function(node) { return (node[0] || '') + node[1].join(''); },
90 peg$c46 = /^[0-9.]/,
91 peg$c47 = { type: "class", value: "[0-9.]", description: "[0-9.]" },
92 peg$c48 = "add",
93 peg$c49 = { type: "literal", value: "add", description: "\"add\"" },
94 peg$c50 = "sub",
95 peg$c51 = { type: "literal", value: "sub", description: "\"sub\"" },
96 peg$c52 = "mul",
97 peg$c53 = { type: "literal", value: "mul", description: "\"mul\"" },
98 peg$c54 = "div_s",
99 peg$c55 = { type: "literal", value: "div_s", description: "\"div_s\"" },
100 peg$c56 = "div_u",
101 peg$c57 = { type: "literal", value: "div_u", description: "\"div_u\"" },
102 peg$c58 = "rem_s",
103 peg$c59 = { type: "literal", value: "rem_s", description: "\"rem_s\"" },
104 peg$c60 = "rem_u",
105 peg$c61 = { type: "literal", value: "rem_u", description: "\"rem_u\"" },
106 peg$c62 = "and",
107 peg$c63 = { type: "literal", value: "and", description: "\"and\"" },
108 peg$c64 = "or",
109 peg$c65 = { type: "literal", value: "or", description: "\"or\"" },
110 peg$c66 = "xor",
111 peg$c67 = { type: "literal", value: "xor", description: "\"xor\"" },
112 peg$c68 = "shl",
113 peg$c69 = { type: "literal", value: "shl", description: "\"shl\"" },
114 peg$c70 = "shr_u",
115 peg$c71 = { type: "literal", value: "shr_u", description: "\"shr_u\"" },
116 peg$c72 = "shr_s",
117 peg$c73 = { type: "literal", value: "shr_s", description: "\"shr_s\"" },
118 peg$c74 = "rotl",
119 peg$c75 = { type: "literal", value: "rotl", description: "\"rotl\"" },
120 peg$c76 = "rotr",
121 peg$c77 = { type: "literal", value: "rotr", description: "\"rotr\"" },
122 peg$c78 = "div",
123 peg$c79 = { type: "literal", value: "div", description: "\"div\"" },
124 peg$c80 = "copysign",
125 peg$c81 = { type: "literal", value: "copysign", description: "\"copysign\"" },
126 peg$c82 = "min",
127 peg$c83 = { type: "literal", value: "min", description: "\"min\"" },
128 peg$c84 = "max",
129 peg$c85 = { type: "literal", value: "max", description: "\"max\"" },
130 peg$c86 = "clz",
131 peg$c87 = { type: "literal", value: "clz", description: "\"clz\"" },
132 peg$c88 = "ctz",
133 peg$c89 = { type: "literal", value: "ctz", description: "\"ctz\"" },
134 peg$c90 = "popcnt",
135 peg$c91 = { type: "literal", value: "popcnt", description: "\"popcnt\"" },
136 peg$c92 = "eqz",
137 peg$c93 = { type: "literal", value: "eqz", description: "\"eqz\"" },
138 peg$c94 = "neg",
139 peg$c95 = { type: "literal", value: "neg", description: "\"neg\"" },
140 peg$c96 = "abs",
141 peg$c97 = { type: "literal", value: "abs", description: "\"abs\"" },
142 peg$c98 = "ceil",
143 peg$c99 = { type: "literal", value: "ceil", description: "\"ceil\"" },
144 peg$c100 = "floor",
145 peg$c101 = { type: "literal", value: "floor", description: "\"floor\"" },
146 peg$c102 = "trunc",
147 peg$c103 = { type: "literal", value: "trunc", description: "\"trunc\"" },
148 peg$c104 = "nearest",
149 peg$c105 = { type: "literal", value: "nearest", description: "\"nearest\"" },
150 peg$c106 = "sqrt",
151 peg$c107 = { type: "literal", value: "sqrt", description: "\"sqrt\"" },
152 peg$c108 = /^[a-z_]/,
153 peg$c109 = { type: "class", value: "[a-z\\_]", description: "[a-z\\_]" },
154 peg$c110 = function(res) { return res.join(''); },
155 peg$c111 = "eq",
156 peg$c112 = { type: "literal", value: "eq", description: "\"eq\"" },
157 peg$c113 = "ne",
158 peg$c114 = { type: "literal", value: "ne", description: "\"ne\"" },
159 peg$c115 = "lt_s",
160 peg$c116 = { type: "literal", value: "lt_s", description: "\"lt_s\"" },
161 peg$c117 = "lt_u",
162 peg$c118 = { type: "literal", value: "lt_u", description: "\"lt_u\"" },
163 peg$c119 = "le_s",
164 peg$c120 = { type: "literal", value: "le_s", description: "\"le_s\"" },
165 peg$c121 = "le_u",
166 peg$c122 = { type: "literal", value: "le_u", description: "\"le_u\"" },
167 peg$c123 = "gt_s",
168 peg$c124 = { type: "literal", value: "gt_s", description: "\"gt_s\"" },
169 peg$c125 = "gt_u",
170 peg$c126 = { type: "literal", value: "gt_u", description: "\"gt_u\"" },
171 peg$c127 = "ge_s",
172 peg$c128 = { type: "literal", value: "ge_s", description: "\"ge_s\"" },
173 peg$c129 = "ge_u",
174 peg$c130 = { type: "literal", value: "ge_u", description: "\"ge_u\"" },
175 peg$c131 = "lt",
176 peg$c132 = { type: "literal", value: "lt", description: "\"lt\"" },
177 peg$c133 = "le",
178 peg$c134 = { type: "literal", value: "le", description: "\"le\"" },
179 peg$c135 = "gt",
180 peg$c136 = { type: "literal", value: "gt", description: "\"gt\"" },
181 peg$c137 = "ge",
182 peg$c138 = { type: "literal", value: "ge", description: "\"ge\"" },
183 peg$c139 = "nan:",
184 peg$c140 = { type: "literal", value: "nan:", description: "\"nan:\"" },
185 peg$c141 = "+nan:",
186 peg$c142 = { type: "literal", value: "+nan:", description: "\"+nan:\"" },
187 peg$c143 = "-nan:",
188 peg$c144 = { type: "literal", value: "-nan:", description: "\"-nan:\"" },
189 peg$c145 = /^[0-9A-Fa-f.\-+ep]/,
190 peg$c146 = { type: "class", value: "[0-9A-Fa-f\\.\\-\\+ep]", description: "[0-9A-Fa-f\\.\\-\\+ep]" },
191 peg$c147 = function(pre, sign, hex, digits) {
192 return pre[0] + (sign || '') + hex + digits.join('')
193 },
194 peg$c148 = "nan",
195 peg$c149 = { type: "literal", value: "nan", description: "\"nan\"" },
196 peg$c150 = "+nan",
197 peg$c151 = { type: "literal", value: "+nan", description: "\"+nan\"" },
198 peg$c152 = "-nan",
199 peg$c153 = { type: "literal", value: "-nan", description: "\"-nan\"" },
200 peg$c154 = "infinity",
201 peg$c155 = { type: "literal", value: "infinity", description: "\"infinity\"" },
202 peg$c156 = "+infinity",
203 peg$c157 = { type: "literal", value: "+infinity", description: "\"+infinity\"" },
204 peg$c158 = "-infinity",
205 peg$c159 = { type: "literal", value: "-infinity", description: "\"-infinity\"" },
206 peg$c160 = "+",
207 peg$c161 = { type: "literal", value: "+", description: "\"+\"" },
208 peg$c162 = /^[0-9A-Fa-f.\-+p]/,
209 peg$c163 = { type: "class", value: "[0-9A-Fa-f\\.\\-\\+p]", description: "[0-9A-Fa-f\\.\\-\\+p]" },
210 peg$c164 = function(sign, hex, digits) {
211 return (sign || '') + hex + digits.join('');
212 },
213 peg$c165 = /^[0-9.\-+e]/,
214 peg$c166 = { type: "class", value: "[0-9\\.\\-\\+e]", description: "[0-9\\.\\-\\+e]" },
215 peg$c167 = function(sign, digits) {
216 return (sign || '') + digits.join('');
217 },
218 peg$c168 = "s",
219 peg$c169 = { type: "literal", value: "s", description: "\"s\"" },
220 peg$c170 = "u",
221 peg$c171 = { type: "literal", value: "u", description: "\"u\"" },
222 peg$c172 = function(digit) { return digit.join(''); },
223 peg$c173 = function(int) {
224 return {
225 kind: 'literal',
226 value: Number(int),
227 raw: int
228 };
229 },
230 peg$c174 = "$",
231 peg$c175 = { type: "literal", value: "$", description: "\"$\"" },
232 peg$c176 = function(id) {
233 return {
234 kind: 'identifier',
235 name: id
236 };
237 },
238 peg$c177 = "(",
239 peg$c178 = { type: "literal", value: "(", description: "\"(\"" },
240 peg$c179 = "case",
241 peg$c180 = { type: "literal", value: "case", description: "\"case\"" },
242 peg$c181 = "fallthrough",
243 peg$c182 = { type: "literal", value: "fallthrough", description: "\"fallthrough\"" },
244 peg$c183 = ")",
245 peg$c184 = { type: "literal", value: ")", description: "\")\"" },
246 peg$c185 = function(kind, test, body, fallthrough) {
247 return {
248 kind: kind,
249 test: test,
250 body: body.map(function (e) { return e[1]; }),
251 fallthrough: fallthrough ? true : false
252 };
253 },
254 peg$c186 = function(kind, test) {
255 return {
256 kind: kind,
257 test: test ? value[1] : null
258 };
259 },
260 peg$c187 = ".",
261 peg$c188 = { type: "literal", value: ".", description: "\".\"" },
262 peg$c189 = "const",
263 peg$c190 = { type: "literal", value: "const", description: "\"const\"" },
264 peg$c191 = function(type, kind, init) {
265 return {
266 kind: kind,
267 type: type,
268 init: init
269 };
270 },
271 peg$c192 = "block",
272 peg$c193 = { type: "literal", value: "block", description: "\"block\"" },
273 peg$c194 = function(kind, id, body) {
274 return {
275 kind: kind,
276 id: id ? id[1] : id,
277 body: body.map(function (e) { return e[1]; })
278 };
279 },
280 peg$c195 = "if",
281 peg$c196 = { type: "literal", value: "if", description: "\"if\"" },
282 peg$c197 = function(kind, test, thene, elsee) {
283 return {
284 kind: kind,
285 test: test,
286 then: thene,
287 else: elsee ? elsee[1] : null
288 };
289 },
290 peg$c198 = "then",
291 peg$c199 = { type: "literal", value: "then", description: "\"then\"" },
292 peg$c200 = "else",
293 peg$c201 = { type: "literal", value: "else", description: "\"else\"" },
294 peg$c202 = "loop",
295 peg$c203 = { type: "literal", value: "loop", description: "\"loop\"" },
296 peg$c204 = function(kind, id, extra, body) {
297 return {
298 kind: kind,
299 id: id,
300 extra: extra ? extra[1] : extra,
301 body: body.map(function (e) { return e[1]; })
302 };
303 },
304 peg$c205 = function(kind, body) {
305 return {
306 kind: kind,
307 body: body.map(function (e) { return e[1]; })
308 };
309 },
310 peg$c206 = "label",
311 peg$c207 = { type: "literal", value: "label", description: "\"label\"" },
312 peg$c208 = function(kind, id, body) {
313 return {
314 kind: kind,
315 id: id ? id[1] : id,
316 body: body
317 };
318 },
319 peg$c209 = "br",
320 peg$c210 = { type: "literal", value: "br", description: "\"br\"" },
321 peg$c211 = function(kind, id, expr) {
322 return {
323 kind: kind,
324 id: id,
325 expr: expr ? expr[1] : expr
326 };
327 },
328 peg$c212 = "br_if",
329 peg$c213 = { type: "literal", value: "br_if", description: "\"br_if\"" },
330 peg$c214 = function(kind, id, test, expr) {
331 return {
332 kind: kind,
333 id: id,
334 test: test,
335 expr: expr ? expr[1] : expr
336 };
337 },
338 peg$c215 = "has_feature",
339 peg$c216 = { type: "literal", value: "has_feature", description: "\"has_feature\"" },
340 peg$c217 = function(kind, name) {
341 return {
342 kind: kind,
343 name: literal
344 };
345 },
346 peg$c218 = "switch",
347 peg$c219 = { type: "literal", value: "switch", description: "\"switch\"" },
348 peg$c220 = function(type, kind, before, body, after) {
349 return {
350 kind: kind,
351 type: type,
352 before: before,
353 body: body.map(function (e) { return e[1]; }),
354 after: after
355 };
356 },
357 peg$c221 = "br_table",
358 peg$c222 = { type: "literal", value: "br_table", description: "\"br_table\"" },
359 peg$c223 = function(kind, body, expr) {
360 return {
361 kind: kind,
362 exprs: expr.map(function (e) { return e[1]; }),
363 body: body.map(function (e) { return e[1]; })
364 };
365 },
366 peg$c224 = function(type, kind, id, before, body, after) {
367 return {
368 kind: kind,
369 id: id,
370 type: type,
371 before: before,
372 body: body.map(function (e) { return e[1]; }),
373 after: after
374 };
375 },
376 peg$c225 = "call_import",
377 peg$c226 = { type: "literal", value: "call_import", description: "\"call_import\"" },
378 peg$c227 = "call",
379 peg$c228 = { type: "literal", value: "call", description: "\"call\"" },
380 peg$c229 = function(kind, id, expr) {
381 return {
382 kind: kind,
383 id: id,
384 exprs: expr.map(function (e) { return e[1]; })
385 };
386 },
387 peg$c230 = "call_indirect",
388 peg$c231 = { type: "literal", value: "call_indirect", description: "\"call_indirect\"" },
389 peg$c232 = function(kind, id, expr) {
390 return {
391 kind: kind,
392 id: id,
393 exprs: expr.map(function (e) { return e[1]; })
394 }
395 },
396 peg$c233 = "return",
397 peg$c234 = { type: "literal", value: "return", description: "\"return\"" },
398 peg$c235 = function(kind, expr) {
399 return {
400 kind: kind,
401 expr: expr ? expr[1] : expr
402 }
403 },
404 peg$c236 = "get_local",
405 peg$c237 = { type: "literal", value: "get_local", description: "\"get_local\"" },
406 peg$c238 = function(kind, id) {
407 return {
408 kind: kind,
409 id: id
410 };
411 },
412 peg$c239 = "set_local",
413 peg$c240 = { type: "literal", value: "set_local", description: "\"set_local\"" },
414 peg$c241 = function(kind, id, expr) {
415 return {
416 kind: kind,
417 id: id,
418 init: expr
419 };
420 },
421 peg$c242 = "load",
422 peg$c243 = { type: "literal", value: "load", description: "\"load\"" },
423 peg$c244 = "8",
424 peg$c245 = { type: "literal", value: "8", description: "\"8\"" },
425 peg$c246 = "16",
426 peg$c247 = { type: "literal", value: "16", description: "\"16\"" },
427 peg$c248 = "32",
428 peg$c249 = { type: "literal", value: "32", description: "\"32\"" },
429 peg$c250 = "_",
430 peg$c251 = { type: "literal", value: "_", description: "\"_\"" },
431 peg$c252 = "offset=",
432 peg$c253 = { type: "literal", value: "offset=", description: "\"offset=\"" },
433 peg$c254 = "align=",
434 peg$c255 = { type: "literal", value: "align=", description: "\"align=\"" },
435 peg$c256 = function(type, kind, sufix, offset, align, expr) {
436 return {
437 kind: kind,
438 type: type,
439 size: sufix ? parseInt(sufix[0], 10) : null,
440 sign: (sufix && sufix[1]) ? (sufix[1][1] === 's') : null,
441 offset: offset ? parseInt(offset[2], 10) : 0,
442 align: align ? parseInt(align[2], 10) : 0,
443 expr: expr
444 };
445 },
446 peg$c257 = "store",
447 peg$c258 = { type: "literal", value: "store", description: "\"store\"" },
448 peg$c259 = function(type, kind, sufix, offset, align, addr, data) {
449 return {
450 kind: kind,
451 type: type,
452 size: sufix ? parseInt(sufix[0], 10) : null,
453 offset: offset ? parseInt(offset[2], 10) : 0,
454 align: align ? parseInt(align[2], 10) : 0,
455 addr: addr,
456 data: data
457 };
458 },
459 peg$c260 = "select",
460 peg$c261 = { type: "literal", value: "select", description: "\"select\"" },
461 peg$c262 = function(kind, thene, elsee, test) {
462 return {
463 kind: kind,
464 then: thene,
465 else: elsee,
466 test: test
467 };
468 },
469 peg$c263 = function(type, operator, left, right) {
470 return {
471 kind: 'binop',
472 type: type,
473 operator: operator,
474 left: left,
475 right: right
476 };
477 },
478 peg$c264 = function(type, operator, left, right) {
479 return {
480 kind: 'relop',
481 type: type,
482 operator: operator,
483 left: left,
484 right: right
485 };
486 },
487 peg$c265 = "/",
488 peg$c266 = { type: "literal", value: "/", description: "\"/\"" },
489 peg$c267 = function(type, operator, type1, expr) {
490 return {
491 kind: 'cvtop',
492 type: type,
493 type1: type1,
494 operator: operator,
495 expr: expr
496 };
497 },
498 peg$c268 = function(type, operator, expr) {
499 return {
500 kind: 'unop',
501 type: type,
502 operator: operator,
503 expr: expr
504 };
505 },
506 peg$c269 = "nop",
507 peg$c270 = { type: "literal", value: "nop", description: "\"nop\"" },
508 peg$c271 = "page_size",
509 peg$c272 = { type: "literal", value: "page_size", description: "\"page_size\"" },
510 peg$c273 = "unreachable",
511 peg$c274 = { type: "literal", value: "unreachable", description: "\"unreachable\"" },
512 peg$c275 = "current_memory",
513 peg$c276 = { type: "literal", value: "current_memory", description: "\"current_memory\"" },
514 peg$c277 = function(kind) {
515 return {
516 kind: kind
517 };
518 },
519 peg$c278 = "resize_memory",
520 peg$c279 = { type: "literal", value: "resize_memory", description: "\"resize_memory\"" },
521 peg$c280 = "grow_memory",
522 peg$c281 = { type: "literal", value: "grow_memory", description: "\"grow_memory\"" },
523 peg$c282 = function(kind, expr) {
524 return {
525 kind: kind,
526 expr: expr
527 };
528 },
529 peg$c283 = function(body) {
530 return body;
531 },
532 peg$c284 = /^["]/,
533 peg$c285 = { type: "class", value: "[\"]", description: "[\"]" },
534 peg$c286 = function(value) {
535 return {
536 kind: 'literal',
537 value: value.map(function (e) { return e[1]; }).join('').replace(/\\/g, '\\\\')
538 };
539 },
540 peg$c287 = "param",
541 peg$c288 = { type: "literal", value: "param", description: "\"param\"" },
542 peg$c289 = function(kind, items) {
543 return {
544 kind: kind,
545 items: items.map(function (e) { return { kind: 'item', type: e[1] }; })
546 };
547 },
548 peg$c290 = function(kind, name, type) {
549 return {
550 kind: kind,
551 items: [{ kind: 'item', name: name, type: type }]
552 };
553 },
554 peg$c291 = "local",
555 peg$c292 = { type: "literal", value: "local", description: "\"local\"" },
556 peg$c293 = "result",
557 peg$c294 = { type: "literal", value: "result", description: "\"result\"" },
558 peg$c295 = function(kind, type) {
559 return {
560 kind: kind,
561 type: type
562 };
563 },
564 peg$c296 = "segment",
565 peg$c297 = { type: "literal", value: "segment", description: "\"segment\"" },
566 peg$c298 = function(kind, int, name) {
567 return {
568 kind: kind,
569 int: int,
570 name: name
571 }
572 },
573 peg$c299 = "type",
574 peg$c300 = { type: "literal", value: "type", description: "\"type\"" },
575 peg$c301 = function(kind, id) {
576 return {
577 kind: kind,
578 id: id
579 };
580 },
581 peg$c302 = "func",
582 peg$c303 = { type: "literal", value: "func", description: "\"func\"" },
583 peg$c304 = function(kind, expo, id, type, param, result, local, body) {
584 return {
585 kind: kind,
586 id: id ? id[1] : id,
587 expo: expo ? expo[1] : expo,
588 type: type ? type[1] : type,
589 params: param.map(function (e) { return e[1]; }),
590 result: result ? result[1] : result,
591 local: local.map(function (e) { return e[1]; }),
592 body: body.map(function (e) { return e[1]; })
593 };
594 },
595 peg$c305 = "start",
596 peg$c306 = { type: "literal", value: "start", description: "\"start\"" },
597 peg$c307 = function(kind, items) {
598 return {
599 kind: kind,
600 items: items.map(function (e) { return { kind: 'item', type: e[1] }; })
601 }
602 },
603 peg$c308 = function(kind, type) {
604 return {
605 kind: kind,
606 type: type
607 }
608 },
609 peg$c309 = function(kind, param, result) {
610 return {
611 kind: kind,
612 params: param.map(function (e) { return e[1]; }),
613 result: result ? result[1] : result,
614 local: [],
615 body: []
616 };
617 },
618 peg$c310 = function(kind, id) {
619 return {
620 kind: kind,
621 id: id ? id[1] : id
622 };
623 },
624 peg$c311 = "import",
625 peg$c312 = { type: "literal", value: "import", description: "\"import\"" },
626 peg$c313 = function(kind, id, modName, funcName, type, params, result) {
627 return {
628 kind: kind,
629 id: id ? id[1] : id,
630 modName: modName,
631 funcName: funcName,
632 type: type ? type[1] : type,
633 params: params.map(function (e) { return e[1]; }),
634 result: result ? result[1] : result
635 };
636 },
637 peg$c314 = "export",
638 peg$c315 = { type: "literal", value: "export", description: "\"export\"" },
639 peg$c316 = "\\",
640 peg$c317 = { type: "literal", value: "\\", description: "\"\\\\\"" },
641 peg$c318 = "\"",
642 peg$c319 = { type: "literal", value: "\"", description: "\"\\\"\"" },
643 peg$c320 = "memory",
644 peg$c321 = { type: "literal", value: "memory", description: "\"memory\"" },
645 peg$c322 = function(kind, name, id) {
646 return {
647 kind: kind,
648 name: {
649 kind: 'literal',
650 value: name.map(function (e) { return e[1]; }).join('')
651 },
652 id: (id === 'memory') ? {
653 kind: 'literal',
654 value: id
655 } : id
656 };
657 },
658 peg$c323 = "table",
659 peg$c324 = { type: "literal", value: "table", description: "\"table\"" },
660 peg$c325 = function(kind, items) {
661 return {
662 kind: kind,
663 items: items.map(function (e) { return e[1]; })
664 };
665 },
666 peg$c326 = function(kind, int, int1, segment) {
667 return {
668 kind: kind,
669 int: int,
670 int1: int1 ? int1[1] : int1,
671 segment: segment.map(function (e) { return e[1]; })
672 };
673 },
674 peg$c327 = "invoke",
675 peg$c328 = { type: "literal", value: "invoke", description: "\"invoke\"" },
676 peg$c329 = "\\\"",
677 peg$c330 = { type: "literal", value: "\\\"", description: "\"\\\\\\\"\"" },
678 peg$c331 = function(kind, name, body) {
679 return {
680 kind: kind,
681 name: name.map(function (e) {
682 return e[1];
683 }).join(''),
684 body: body.map(function (e) { return e[1]; })
685 };
686 },
687 peg$c332 = "module",
688 peg$c333 = { type: "literal", value: "module", description: "\"module\"" },
689 peg$c334 = function(kind, body) {
690 var result = [];
691 return {
692 kind: kind,
693 body: body.map(function (e) { return e[1]; })
694 };
695 },
696 peg$c335 = "assert_return",
697 peg$c336 = { type: "literal", value: "assert_return", description: "\"assert_return\"" },
698 peg$c337 = function(kind, invoke, expr) {
699 return {
700 kind: kind,
701 invoke: invoke,
702 expr: expr
703 };
704 },
705 peg$c338 = "assert_return_nan",
706 peg$c339 = { type: "literal", value: "assert_return_nan", description: "\"assert_return_nan\"" },
707 peg$c340 = function(kind, invoke) {
708 return {
709 kind: kind,
710 invoke: invoke
711 };
712 },
713 peg$c341 = "assert_trap",
714 peg$c342 = { type: "literal", value: "assert_trap", description: "\"assert_trap\"" },
715 peg$c343 = function(kind, invoke, failure) {
716 return {
717 kind: kind,
718 invoke: invoke,
719 failure: failure
720 };
721 },
722 peg$c344 = "assert_invalid",
723 peg$c345 = { type: "literal", value: "assert_invalid", description: "\"assert_invalid\"" },
724 peg$c346 = function(kind, module, failure) {
725 return {
726 kind: kind,
727 module: module,
728 failure: failure
729 };
730 },
731 peg$c347 = function(node) { return node; },
732
733 peg$currPos = 0,
734 peg$savedPos = 0,
735 peg$posDetailsCache = [{ line: 1, column: 1, seenCR: false }],
736 peg$maxFailPos = 0,
737 peg$maxFailExpected = [],
738 peg$silentFails = 0,
739
740 peg$result;
741
742 if ("startRule" in options) {
743 if (!(options.startRule in peg$startRuleFunctions)) {
744 throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
745 }
746
747 peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
748 }
749
750 function text() {
751 return input.substring(peg$savedPos, peg$currPos);
752 }
753
754 function location() {
755 return peg$computeLocation(peg$savedPos, peg$currPos);
756 }
757
758 function expected(description) {
759 throw peg$buildException(
760 null,
761 [{ type: "other", description: description }],
762 input.substring(peg$savedPos, peg$currPos),
763 peg$computeLocation(peg$savedPos, peg$currPos)
764 );
765 }
766
767 function error(message) {
768 throw peg$buildException(
769 message,
770 null,
771 input.substring(peg$savedPos, peg$currPos),
772 peg$computeLocation(peg$savedPos, peg$currPos)
773 );
774 }
775
776 function peg$computePosDetails(pos) {
777 var details = peg$posDetailsCache[pos],
778 p, ch;
779
780 if (details) {
781 return details;
782 } else {
783 p = pos - 1;
784 while (!peg$posDetailsCache[p]) {
785 p--;
786 }
787
788 details = peg$posDetailsCache[p];
789 details = {
790 line: details.line,
791 column: details.column,
792 seenCR: details.seenCR
793 };
794
795 while (p < pos) {
796 ch = input.charAt(p);
797 if (ch === "\n") {
798 if (!details.seenCR) { details.line++; }
799 details.column = 1;
800 details.seenCR = false;
801 } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") {
802 details.line++;
803 details.column = 1;
804 details.seenCR = true;
805 } else {
806 details.column++;
807 details.seenCR = false;
808 }
809
810 p++;
811 }
812
813 peg$posDetailsCache[pos] = details;
814 return details;
815 }
816 }
817
818 function peg$computeLocation(startPos, endPos) {
819 var startPosDetails = peg$computePosDetails(startPos),
820 endPosDetails = peg$computePosDetails(endPos);
821
822 return {
823 start: {
824 offset: startPos,
825 line: startPosDetails.line,
826 column: startPosDetails.column
827 },
828 end: {
829 offset: endPos,
830 line: endPosDetails.line,
831 column: endPosDetails.column
832 }
833 };
834 }
835
836 function peg$fail(expected) {
837 if (peg$currPos < peg$maxFailPos) { return; }
838
839 if (peg$currPos > peg$maxFailPos) {
840 peg$maxFailPos = peg$currPos;
841 peg$maxFailExpected = [];
842 }
843
844 peg$maxFailExpected.push(expected);
845 }
846
847 function peg$buildException(message, expected, found, location) {
848 function cleanupExpected(expected) {
849 var i = 1;
850
851 expected.sort(function(a, b) {
852 if (a.description < b.description) {
853 return -1;
854 } else if (a.description > b.description) {
855 return 1;
856 } else {
857 return 0;
858 }
859 });
860
861 while (i < expected.length) {
862 if (expected[i - 1] === expected[i]) {
863 expected.splice(i, 1);
864 } else {
865 i++;
866 }
867 }
868 }
869
870 function buildMessage(expected, found) {
871 function stringEscape(s) {
872 function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }
873
874 return s
875 .replace(/\\/g, '\\\\')
876 .replace(/"/g, '\\"')
877 .replace(/\x08/g, '\\b')
878 .replace(/\t/g, '\\t')
879 .replace(/\n/g, '\\n')
880 .replace(/\f/g, '\\f')
881 .replace(/\r/g, '\\r')
882 .replace(/[\x00-\x07\x0B\x0E\x0F]/g, function(ch) { return '\\x0' + hex(ch); })
883 .replace(/[\x10-\x1F\x80-\xFF]/g, function(ch) { return '\\x' + hex(ch); })
884 .replace(/[\u0100-\u0FFF]/g, function(ch) { return '\\u0' + hex(ch); })
885 .replace(/[\u1000-\uFFFF]/g, function(ch) { return '\\u' + hex(ch); });
886 }
887
888 var expectedDescs = new Array(expected.length),
889 expectedDesc, foundDesc, i;
890
891 for (i = 0; i < expected.length; i++) {
892 expectedDescs[i] = expected[i].description;
893 }
894
895 expectedDesc = expected.length > 1
896 ? expectedDescs.slice(0, -1).join(", ")
897 + " or "
898 + expectedDescs[expected.length - 1]
899 : expectedDescs[0];
900
901 foundDesc = found ? "\"" + stringEscape(found) + "\"" : "end of input";
902
903 return "Expected " + expectedDesc + " but " + foundDesc + " found.";
904 }
905
906 if (expected !== null) {
907 cleanupExpected(expected);
908 }
909
910 return new peg$SyntaxError(
911 message !== null ? message : buildMessage(expected, found),
912 expected,
913 found,
914 location
915 );
916 }
917
918 function peg$parsestart() {
919 var s0, s1, s2, s3, s4;
920
921 s0 = peg$currPos;
922 s1 = [];
923 s2 = peg$currPos;
924 s3 = peg$parse__();
925 if (s3 !== peg$FAILED) {
926 s4 = peg$parsecmd();
927 if (s4 !== peg$FAILED) {
928 s3 = [s3, s4];
929 s2 = s3;
930 } else {
931 peg$currPos = s2;
932 s2 = peg$FAILED;
933 }
934 } else {
935 peg$currPos = s2;
936 s2 = peg$FAILED;
937 }
938 while (s2 !== peg$FAILED) {
939 s1.push(s2);
940 s2 = peg$currPos;
941 s3 = peg$parse__();
942 if (s3 !== peg$FAILED) {
943 s4 = peg$parsecmd();
944 if (s4 !== peg$FAILED) {
945 s3 = [s3, s4];
946 s2 = s3;
947 } else {
948 peg$currPos = s2;
949 s2 = peg$FAILED;
950 }
951 } else {
952 peg$currPos = s2;
953 s2 = peg$FAILED;
954 }
955 }
956 if (s1 !== peg$FAILED) {
957 s2 = peg$parse__();
958 if (s2 !== peg$FAILED) {
959 peg$savedPos = s0;
960 s1 = peg$c0(s1);
961 s0 = s1;
962 } else {
963 peg$currPos = s0;
964 s0 = peg$FAILED;
965 }
966 } else {
967 peg$currPos = s0;
968 s0 = peg$FAILED;
969 }
970
971 return s0;
972 }
973
974 function peg$parsewhite_space() {
975 var s0, s1;
976
977 peg$silentFails++;
978 if (peg$c2.test(input.charAt(peg$currPos))) {
979 s0 = input.charAt(peg$currPos);
980 peg$currPos++;
981 } else {
982 s0 = peg$FAILED;
983 if (peg$silentFails === 0) { peg$fail(peg$c3); }
984 }
985 peg$silentFails--;
986 if (s0 === peg$FAILED) {
987 s1 = peg$FAILED;
988 if (peg$silentFails === 0) { peg$fail(peg$c1); }
989 }
990
991 return s0;
992 }
993
994 function peg$parseLineTerminatorSequence() {
995 var s0, s1;
996
997 peg$silentFails++;
998 if (input.charCodeAt(peg$currPos) === 10) {
999 s0 = peg$c5;
1000 peg$currPos++;
1001 } else {
1002 s0 = peg$FAILED;
1003 if (peg$silentFails === 0) { peg$fail(peg$c6); }
1004 }
1005 if (s0 === peg$FAILED) {
1006 if (input.substr(peg$currPos, 2) === peg$c7) {
1007 s0 = peg$c7;
1008 peg$currPos += 2;
1009 } else {
1010 s0 = peg$FAILED;
1011 if (peg$silentFails === 0) { peg$fail(peg$c8); }
1012 }
1013 if (s0 === peg$FAILED) {
1014 if (input.charCodeAt(peg$currPos) === 13) {
1015 s0 = peg$c9;
1016 peg$currPos++;
1017 } else {
1018 s0 = peg$FAILED;
1019 if (peg$silentFails === 0) { peg$fail(peg$c10); }
1020 }
1021 if (s0 === peg$FAILED) {
1022 if (input.charCodeAt(peg$currPos) === 8232) {
1023 s0 = peg$c11;
1024 peg$currPos++;
1025 } else {
1026 s0 = peg$FAILED;
1027 if (peg$silentFails === 0) { peg$fail(peg$c12); }
1028 }
1029 if (s0 === peg$FAILED) {
1030 if (input.charCodeAt(peg$currPos) === 8233) {
1031 s0 = peg$c13;
1032 peg$currPos++;
1033 } else {
1034 s0 = peg$FAILED;
1035 if (peg$silentFails === 0) { peg$fail(peg$c14); }
1036 }
1037 }
1038 }
1039 }
1040 }
1041 peg$silentFails--;
1042 if (s0 === peg$FAILED) {
1043 s1 = peg$FAILED;
1044 if (peg$silentFails === 0) { peg$fail(peg$c4); }
1045 }
1046
1047 return s0;
1048 }
1049
1050 function peg$parseLineTerminator() {
1051 var s0;
1052
1053 if (peg$c15.test(input.charAt(peg$currPos))) {
1054 s0 = input.charAt(peg$currPos);
1055 peg$currPos++;
1056 } else {
1057 s0 = peg$FAILED;
1058 if (peg$silentFails === 0) { peg$fail(peg$c16); }
1059 }
1060
1061 return s0;
1062 }
1063
1064 function peg$parsemultiLineComment() {
1065 var s0, s1, s2, s3, s4, s5;
1066
1067 s0 = peg$currPos;
1068 if (input.substr(peg$currPos, 2) === peg$c17) {
1069 s1 = peg$c17;
1070 peg$currPos += 2;
1071 } else {
1072 s1 = peg$FAILED;
1073 if (peg$silentFails === 0) { peg$fail(peg$c18); }
1074 }
1075 if (s1 !== peg$FAILED) {
1076 s2 = [];
1077 s3 = peg$parsemultiLineComment();
1078 if (s3 === peg$FAILED) {
1079 s3 = peg$currPos;
1080 s4 = peg$currPos;
1081 peg$silentFails++;
1082 if (input.substr(peg$currPos, 2) === peg$c19) {
1083 s5 = peg$c19;
1084 peg$currPos += 2;
1085 } else {
1086 s5 = peg$FAILED;
1087 if (peg$silentFails === 0) { peg$fail(peg$c20); }
1088 }
1089 peg$silentFails--;
1090 if (s5 === peg$FAILED) {
1091 s4 = void 0;
1092 } else {
1093 peg$currPos = s4;
1094 s4 = peg$FAILED;
1095 }
1096 if (s4 !== peg$FAILED) {
1097 if (input.length > peg$currPos) {
1098 s5 = input.charAt(peg$currPos);
1099 peg$currPos++;
1100 } else {
1101 s5 = peg$FAILED;
1102 if (peg$silentFails === 0) { peg$fail(peg$c21); }
1103 }
1104 if (s5 !== peg$FAILED) {
1105 s4 = [s4, s5];
1106 s3 = s4;
1107 } else {
1108 peg$currPos = s3;
1109 s3 = peg$FAILED;
1110 }
1111 } else {
1112 peg$currPos = s3;
1113 s3 = peg$FAILED;
1114 }
1115 }
1116 while (s3 !== peg$FAILED) {
1117 s2.push(s3);
1118 s3 = peg$parsemultiLineComment();
1119 if (s3 === peg$FAILED) {
1120 s3 = peg$currPos;
1121 s4 = peg$currPos;
1122 peg$silentFails++;
1123 if (input.substr(peg$currPos, 2) === peg$c19) {
1124 s5 = peg$c19;
1125 peg$currPos += 2;
1126 } else {
1127 s5 = peg$FAILED;
1128 if (peg$silentFails === 0) { peg$fail(peg$c20); }
1129 }
1130 peg$silentFails--;
1131 if (s5 === peg$FAILED) {
1132 s4 = void 0;
1133 } else {
1134 peg$currPos = s4;
1135 s4 = peg$FAILED;
1136 }
1137 if (s4 !== peg$FAILED) {
1138 if (input.length > peg$currPos) {
1139 s5 = input.charAt(peg$currPos);
1140 peg$currPos++;
1141 } else {
1142 s5 = peg$FAILED;
1143 if (peg$silentFails === 0) { peg$fail(peg$c21); }
1144 }
1145 if (s5 !== peg$FAILED) {
1146 s4 = [s4, s5];
1147 s3 = s4;
1148 } else {
1149 peg$currPos = s3;
1150 s3 = peg$FAILED;
1151 }
1152 } else {
1153 peg$currPos = s3;
1154 s3 = peg$FAILED;
1155 }
1156 }
1157 }
1158 if (s2 !== peg$FAILED) {
1159 if (input.substr(peg$currPos, 2) === peg$c19) {
1160 s3 = peg$c19;
1161 peg$currPos += 2;
1162 } else {
1163 s3 = peg$FAILED;
1164 if (peg$silentFails === 0) { peg$fail(peg$c20); }
1165 }
1166 if (s3 !== peg$FAILED) {
1167 peg$savedPos = s0;
1168 s1 = peg$c22();
1169 s0 = s1;
1170 } else {
1171 peg$currPos = s0;
1172 s0 = peg$FAILED;
1173 }
1174 } else {
1175 peg$currPos = s0;
1176 s0 = peg$FAILED;
1177 }
1178 } else {
1179 peg$currPos = s0;
1180 s0 = peg$FAILED;
1181 }
1182
1183 return s0;
1184 }
1185
1186 function peg$parsecomment() {
1187 var s0, s1, s2, s3, s4, s5;
1188
1189 peg$silentFails++;
1190 s0 = peg$currPos;
1191 if (input.substr(peg$currPos, 2) === peg$c24) {
1192 s1 = peg$c24;
1193 peg$currPos += 2;
1194 } else {
1195 s1 = peg$FAILED;
1196 if (peg$silentFails === 0) { peg$fail(peg$c25); }
1197 }
1198 if (s1 !== peg$FAILED) {
1199 s2 = [];
1200 s3 = peg$currPos;
1201 s4 = peg$currPos;
1202 peg$silentFails++;
1203 s5 = peg$parseLineTerminator();
1204 peg$silentFails--;
1205 if (s5 === peg$FAILED) {
1206 s4 = void 0;
1207 } else {
1208 peg$currPos = s4;
1209 s4 = peg$FAILED;
1210 }
1211 if (s4 !== peg$FAILED) {
1212 if (input.length > peg$currPos) {
1213 s5 = input.charAt(peg$currPos);
1214 peg$currPos++;
1215 } else {
1216 s5 = peg$FAILED;
1217 if (peg$silentFails === 0) { peg$fail(peg$c21); }
1218 }
1219 if (s5 !== peg$FAILED) {
1220 s4 = [s4, s5];
1221 s3 = s4;
1222 } else {
1223 peg$currPos = s3;
1224 s3 = peg$FAILED;
1225 }
1226 } else {
1227 peg$currPos = s3;
1228 s3 = peg$FAILED;
1229 }
1230 while (s3 !== peg$FAILED) {
1231 s2.push(s3);
1232 s3 = peg$currPos;
1233 s4 = peg$currPos;
1234 peg$silentFails++;
1235 s5 = peg$parseLineTerminator();
1236 peg$silentFails--;
1237 if (s5 === peg$FAILED) {
1238 s4 = void 0;
1239 } else {
1240 peg$currPos = s4;
1241 s4 = peg$FAILED;
1242 }
1243 if (s4 !== peg$FAILED) {
1244 if (input.length > peg$currPos) {
1245 s5 = input.charAt(peg$currPos);
1246 peg$currPos++;
1247 } else {
1248 s5 = peg$FAILED;
1249 if (peg$silentFails === 0) { peg$fail(peg$c21); }
1250 }
1251 if (s5 !== peg$FAILED) {
1252 s4 = [s4, s5];
1253 s3 = s4;
1254 } else {
1255 peg$currPos = s3;
1256 s3 = peg$FAILED;
1257 }
1258 } else {
1259 peg$currPos = s3;
1260 s3 = peg$FAILED;
1261 }
1262 }
1263 if (s2 !== peg$FAILED) {
1264 peg$savedPos = s0;
1265 s1 = peg$c22();
1266 s0 = s1;
1267 } else {
1268 peg$currPos = s0;
1269 s0 = peg$FAILED;
1270 }
1271 } else {
1272 peg$currPos = s0;
1273 s0 = peg$FAILED;
1274 }
1275 if (s0 === peg$FAILED) {
1276 s0 = peg$parsemultiLineComment();
1277 }
1278 peg$silentFails--;
1279 if (s0 === peg$FAILED) {
1280 s1 = peg$FAILED;
1281 if (peg$silentFails === 0) { peg$fail(peg$c23); }
1282 }
1283
1284 return s0;
1285 }
1286
1287 function peg$parse__() {
1288 var s0, s1;
1289
1290 s0 = [];
1291 s1 = peg$parsewhite_space();
1292 if (s1 === peg$FAILED) {
1293 s1 = peg$parseLineTerminatorSequence();
1294 if (s1 === peg$FAILED) {
1295 s1 = peg$parsecomment();
1296 }
1297 }
1298 while (s1 !== peg$FAILED) {
1299 s0.push(s1);
1300 s1 = peg$parsewhite_space();
1301 if (s1 === peg$FAILED) {
1302 s1 = peg$parseLineTerminatorSequence();
1303 if (s1 === peg$FAILED) {
1304 s1 = peg$parsecomment();
1305 }
1306 }
1307 }
1308
1309 return s0;
1310 }
1311
1312 function peg$parsename() {
1313 var s0, s1, s2;
1314
1315 s0 = peg$currPos;
1316 s1 = [];
1317 if (peg$c26.test(input.charAt(peg$currPos))) {
1318 s2 = input.charAt(peg$currPos);
1319 peg$currPos++;
1320 } else {
1321 s2 = peg$FAILED;
1322 if (peg$silentFails === 0) { peg$fail(peg$c27); }
1323 }
1324 if (s2 !== peg$FAILED) {
1325 while (s2 !== peg$FAILED) {
1326 s1.push(s2);
1327 if (peg$c26.test(input.charAt(peg$currPos))) {
1328 s2 = input.charAt(peg$currPos);
1329 peg$currPos++;
1330 } else {
1331 s2 = peg$FAILED;
1332 if (peg$silentFails === 0) { peg$fail(peg$c27); }
1333 }
1334 }
1335 } else {
1336 s1 = peg$FAILED;
1337 }
1338 if (s1 !== peg$FAILED) {
1339 peg$savedPos = s0;
1340 s1 = peg$c28(s1);
1341 }
1342 s0 = s1;
1343
1344 return s0;
1345 }
1346
1347 function peg$parselocal_type() {
1348 var s0;
1349
1350 if (input.substr(peg$currPos, 3) === peg$c29) {
1351 s0 = peg$c29;
1352 peg$currPos += 3;
1353 } else {
1354 s0 = peg$FAILED;
1355 if (peg$silentFails === 0) { peg$fail(peg$c30); }
1356 }
1357 if (s0 === peg$FAILED) {
1358 if (input.substr(peg$currPos, 3) === peg$c31) {
1359 s0 = peg$c31;
1360 peg$currPos += 3;
1361 } else {
1362 s0 = peg$FAILED;
1363 if (peg$silentFails === 0) { peg$fail(peg$c32); }
1364 }
1365 if (s0 === peg$FAILED) {
1366 if (input.substr(peg$currPos, 3) === peg$c33) {
1367 s0 = peg$c33;
1368 peg$currPos += 3;
1369 } else {
1370 s0 = peg$FAILED;
1371 if (peg$silentFails === 0) { peg$fail(peg$c34); }
1372 }
1373 if (s0 === peg$FAILED) {
1374 if (input.substr(peg$currPos, 3) === peg$c35) {
1375 s0 = peg$c35;
1376 peg$currPos += 3;
1377 } else {
1378 s0 = peg$FAILED;
1379 if (peg$silentFails === 0) { peg$fail(peg$c36); }
1380 }
1381 }
1382 }
1383 }
1384
1385 return s0;
1386 }
1387
1388 function peg$parseint() {
1389 var s0, s1, s2, s3, s4;
1390
1391 s0 = peg$currPos;
1392 s1 = peg$currPos;
1393 if (input.substr(peg$currPos, 2) === peg$c37) {
1394 s2 = peg$c37;
1395 peg$currPos += 2;
1396 } else {
1397 s2 = peg$FAILED;
1398 if (peg$silentFails === 0) { peg$fail(peg$c38); }
1399 }
1400 if (s2 !== peg$FAILED) {
1401 s3 = [];
1402 if (peg$c39.test(input.charAt(peg$currPos))) {
1403 s4 = input.charAt(peg$currPos);
1404 peg$currPos++;
1405 } else {
1406 s4 = peg$FAILED;
1407 if (peg$silentFails === 0) { peg$fail(peg$c40); }
1408 }
1409 if (s4 !== peg$FAILED) {
1410 while (s4 !== peg$FAILED) {
1411 s3.push(s4);
1412 if (peg$c39.test(input.charAt(peg$currPos))) {
1413 s4 = input.charAt(peg$currPos);
1414 peg$currPos++;
1415 } else {
1416 s4 = peg$FAILED;
1417 if (peg$silentFails === 0) { peg$fail(peg$c40); }
1418 }
1419 }
1420 } else {
1421 s3 = peg$FAILED;
1422 }
1423 if (s3 !== peg$FAILED) {
1424 s2 = [s2, s3];
1425 s1 = s2;
1426 } else {
1427 peg$currPos = s1;
1428 s1 = peg$FAILED;
1429 }
1430 } else {
1431 peg$currPos = s1;
1432 s1 = peg$FAILED;
1433 }
1434 if (s1 === peg$FAILED) {
1435 s1 = peg$currPos;
1436 if (input.charCodeAt(peg$currPos) === 45) {
1437 s2 = peg$c41;
1438 peg$currPos++;
1439 } else {
1440 s2 = peg$FAILED;
1441 if (peg$silentFails === 0) { peg$fail(peg$c42); }
1442 }
1443 if (s2 === peg$FAILED) {
1444 s2 = null;
1445 }
1446 if (s2 !== peg$FAILED) {
1447 s3 = [];
1448 if (peg$c43.test(input.charAt(peg$currPos))) {
1449 s4 = input.charAt(peg$currPos);
1450 peg$currPos++;
1451 } else {
1452 s4 = peg$FAILED;
1453 if (peg$silentFails === 0) { peg$fail(peg$c44); }
1454 }
1455 if (s4 !== peg$FAILED) {
1456 while (s4 !== peg$FAILED) {
1457 s3.push(s4);
1458 if (peg$c43.test(input.charAt(peg$currPos))) {
1459 s4 = input.charAt(peg$currPos);
1460 peg$currPos++;
1461 } else {
1462 s4 = peg$FAILED;
1463 if (peg$silentFails === 0) { peg$fail(peg$c44); }
1464 }
1465 }
1466 } else {
1467 s3 = peg$FAILED;
1468 }
1469 if (s3 !== peg$FAILED) {
1470 s2 = [s2, s3];
1471 s1 = s2;
1472 } else {
1473 peg$currPos = s1;
1474 s1 = peg$FAILED;
1475 }
1476 } else {
1477 peg$currPos = s1;
1478 s1 = peg$FAILED;
1479 }
1480 }
1481 if (s1 !== peg$FAILED) {
1482 peg$savedPos = s0;
1483 s1 = peg$c45(s1);
1484 }
1485 s0 = s1;
1486
1487 return s0;
1488 }
1489
1490 function peg$parsefloat() {
1491 var s0, s1, s2, s3;
1492
1493 s0 = peg$currPos;
1494 if (input.charCodeAt(peg$currPos) === 45) {
1495 s1 = peg$c41;
1496 peg$currPos++;
1497 } else {
1498 s1 = peg$FAILED;
1499 if (peg$silentFails === 0) { peg$fail(peg$c42); }
1500 }
1501 if (s1 === peg$FAILED) {
1502 s1 = null;
1503 }
1504 if (s1 !== peg$FAILED) {
1505 s2 = [];
1506 if (peg$c46.test(input.charAt(peg$currPos))) {
1507 s3 = input.charAt(peg$currPos);
1508 peg$currPos++;
1509 } else {
1510 s3 = peg$FAILED;
1511 if (peg$silentFails === 0) { peg$fail(peg$c47); }
1512 }
1513 if (s3 !== peg$FAILED) {
1514 while (s3 !== peg$FAILED) {
1515 s2.push(s3);
1516 if (peg$c46.test(input.charAt(peg$currPos))) {
1517 s3 = input.charAt(peg$currPos);
1518 peg$currPos++;
1519 } else {
1520 s3 = peg$FAILED;
1521 if (peg$silentFails === 0) { peg$fail(peg$c47); }
1522 }
1523 }
1524 } else {
1525 s2 = peg$FAILED;
1526 }
1527 if (s2 !== peg$FAILED) {
1528 s1 = [s1, s2];
1529 s0 = s1;
1530 } else {
1531 peg$currPos = s0;
1532 s0 = peg$FAILED;
1533 }
1534 } else {
1535 peg$currPos = s0;
1536 s0 = peg$FAILED;
1537 }
1538
1539 return s0;
1540 }
1541
1542 function peg$parsebinop() {
1543 var s0;
1544
1545 if (input.substr(peg$currPos, 3) === peg$c48) {
1546 s0 = peg$c48;
1547 peg$currPos += 3;
1548 } else {
1549 s0 = peg$FAILED;
1550 if (peg$silentFails === 0) { peg$fail(peg$c49); }
1551 }
1552 if (s0 === peg$FAILED) {
1553 if (input.substr(peg$currPos, 3) === peg$c50) {
1554 s0 = peg$c50;
1555 peg$currPos += 3;
1556 } else {
1557 s0 = peg$FAILED;
1558 if (peg$silentFails === 0) { peg$fail(peg$c51); }
1559 }
1560 if (s0 === peg$FAILED) {
1561 if (input.substr(peg$currPos, 3) === peg$c52) {
1562 s0 = peg$c52;
1563 peg$currPos += 3;
1564 } else {
1565 s0 = peg$FAILED;
1566 if (peg$silentFails === 0) { peg$fail(peg$c53); }
1567 }
1568 if (s0 === peg$FAILED) {
1569 if (input.substr(peg$currPos, 5) === peg$c54) {
1570 s0 = peg$c54;
1571 peg$currPos += 5;
1572 } else {
1573 s0 = peg$FAILED;
1574 if (peg$silentFails === 0) { peg$fail(peg$c55); }
1575 }
1576 if (s0 === peg$FAILED) {
1577 if (input.substr(peg$currPos, 5) === peg$c56) {
1578 s0 = peg$c56;
1579 peg$currPos += 5;
1580 } else {
1581 s0 = peg$FAILED;
1582 if (peg$silentFails === 0) { peg$fail(peg$c57); }
1583 }
1584 if (s0 === peg$FAILED) {
1585 if (input.substr(peg$currPos, 5) === peg$c58) {
1586 s0 = peg$c58;
1587 peg$currPos += 5;
1588 } else {
1589 s0 = peg$FAILED;
1590 if (peg$silentFails === 0) { peg$fail(peg$c59); }
1591 }
1592 if (s0 === peg$FAILED) {
1593 if (input.substr(peg$currPos, 5) === peg$c60) {
1594 s0 = peg$c60;
1595 peg$currPos += 5;
1596 } else {
1597 s0 = peg$FAILED;
1598 if (peg$silentFails === 0) { peg$fail(peg$c61); }
1599 }
1600 if (s0 === peg$FAILED) {
1601 if (input.substr(peg$currPos, 3) === peg$c62) {
1602 s0 = peg$c62;
1603 peg$currPos += 3;
1604 } else {
1605 s0 = peg$FAILED;
1606 if (peg$silentFails === 0) { peg$fail(peg$c63); }
1607 }
1608 if (s0 === peg$FAILED) {
1609 if (input.substr(peg$currPos, 2) === peg$c64) {
1610 s0 = peg$c64;
1611 peg$currPos += 2;
1612 } else {
1613 s0 = peg$FAILED;
1614 if (peg$silentFails === 0) { peg$fail(peg$c65); }
1615 }
1616 if (s0 === peg$FAILED) {
1617 if (input.substr(peg$currPos, 3) === peg$c66) {
1618 s0 = peg$c66;
1619 peg$currPos += 3;
1620 } else {
1621 s0 = peg$FAILED;
1622 if (peg$silentFails === 0) { peg$fail(peg$c67); }
1623 }
1624 if (s0 === peg$FAILED) {
1625 if (input.substr(peg$currPos, 3) === peg$c68) {
1626 s0 = peg$c68;
1627 peg$currPos += 3;
1628 } else {
1629 s0 = peg$FAILED;
1630 if (peg$silentFails === 0) { peg$fail(peg$c69); }
1631 }
1632 if (s0 === peg$FAILED) {
1633 if (input.substr(peg$currPos, 5) === peg$c70) {
1634 s0 = peg$c70;
1635 peg$currPos += 5;
1636 } else {
1637 s0 = peg$FAILED;
1638 if (peg$silentFails === 0) { peg$fail(peg$c71); }
1639 }
1640 if (s0 === peg$FAILED) {
1641 if (input.substr(peg$currPos, 5) === peg$c72) {
1642 s0 = peg$c72;
1643 peg$currPos += 5;
1644 } else {
1645 s0 = peg$FAILED;
1646 if (peg$silentFails === 0) { peg$fail(peg$c73); }
1647 }
1648 if (s0 === peg$FAILED) {
1649 if (input.substr(peg$currPos, 4) === peg$c74) {
1650 s0 = peg$c74;
1651 peg$currPos += 4;
1652 } else {
1653 s0 = peg$FAILED;
1654 if (peg$silentFails === 0) { peg$fail(peg$c75); }
1655 }
1656 if (s0 === peg$FAILED) {
1657 if (input.substr(peg$currPos, 4) === peg$c76) {
1658 s0 = peg$c76;
1659 peg$currPos += 4;
1660 } else {
1661 s0 = peg$FAILED;
1662 if (peg$silentFails === 0) { peg$fail(peg$c77); }
1663 }
1664 if (s0 === peg$FAILED) {
1665 if (input.substr(peg$currPos, 3) === peg$c48) {
1666 s0 = peg$c48;
1667 peg$currPos += 3;
1668 } else {
1669 s0 = peg$FAILED;
1670 if (peg$silentFails === 0) { peg$fail(peg$c49); }
1671 }
1672 if (s0 === peg$FAILED) {
1673 if (input.substr(peg$currPos, 3) === peg$c50) {
1674 s0 = peg$c50;
1675 peg$currPos += 3;
1676 } else {
1677 s0 = peg$FAILED;
1678 if (peg$silentFails === 0) { peg$fail(peg$c51); }
1679 }
1680 if (s0 === peg$FAILED) {
1681 if (input.substr(peg$currPos, 3) === peg$c52) {
1682 s0 = peg$c52;
1683 peg$currPos += 3;
1684 } else {
1685 s0 = peg$FAILED;
1686 if (peg$silentFails === 0) { peg$fail(peg$c53); }
1687 }
1688 if (s0 === peg$FAILED) {
1689 if (input.substr(peg$currPos, 3) === peg$c78) {
1690 s0 = peg$c78;
1691 peg$currPos += 3;
1692 } else {
1693 s0 = peg$FAILED;
1694 if (peg$silentFails === 0) { peg$fail(peg$c79); }
1695 }
1696 if (s0 === peg$FAILED) {
1697 if (input.substr(peg$currPos, 8) === peg$c80) {
1698 s0 = peg$c80;
1699 peg$currPos += 8;
1700 } else {
1701 s0 = peg$FAILED;
1702 if (peg$silentFails === 0) { peg$fail(peg$c81); }
1703 }
1704 if (s0 === peg$FAILED) {
1705 if (input.substr(peg$currPos, 3) === peg$c82) {
1706 s0 = peg$c82;
1707 peg$currPos += 3;
1708 } else {
1709 s0 = peg$FAILED;
1710 if (peg$silentFails === 0) { peg$fail(peg$c83); }
1711 }
1712 if (s0 === peg$FAILED) {
1713 if (input.substr(peg$currPos, 3) === peg$c84) {
1714 s0 = peg$c84;
1715 peg$currPos += 3;
1716 } else {
1717 s0 = peg$FAILED;
1718 if (peg$silentFails === 0) { peg$fail(peg$c85); }
1719 }
1720 }
1721 }
1722 }
1723 }
1724 }
1725 }
1726 }
1727 }
1728 }
1729 }
1730 }
1731 }
1732 }
1733 }
1734 }
1735 }
1736 }
1737 }
1738 }
1739 }
1740 }
1741
1742 return s0;
1743 }
1744
1745 function peg$parseunop() {
1746 var s0;
1747
1748 if (input.substr(peg$currPos, 3) === peg$c86) {
1749 s0 = peg$c86;
1750 peg$currPos += 3;
1751 } else {
1752 s0 = peg$FAILED;
1753 if (peg$silentFails === 0) { peg$fail(peg$c87); }
1754 }
1755 if (s0 === peg$FAILED) {
1756 if (input.substr(peg$currPos, 3) === peg$c88) {
1757 s0 = peg$c88;
1758 peg$currPos += 3;
1759 } else {
1760 s0 = peg$FAILED;
1761 if (peg$silentFails === 0) { peg$fail(peg$c89); }
1762 }
1763 if (s0 === peg$FAILED) {
1764 if (input.substr(peg$currPos, 6) === peg$c90) {
1765 s0 = peg$c90;
1766 peg$currPos += 6;
1767 } else {
1768 s0 = peg$FAILED;
1769 if (peg$silentFails === 0) { peg$fail(peg$c91); }
1770 }
1771 if (s0 === peg$FAILED) {
1772 if (input.substr(peg$currPos, 3) === peg$c92) {
1773 s0 = peg$c92;
1774 peg$currPos += 3;
1775 } else {
1776 s0 = peg$FAILED;
1777 if (peg$silentFails === 0) { peg$fail(peg$c93); }
1778 }
1779 if (s0 === peg$FAILED) {
1780 if (input.substr(peg$currPos, 3) === peg$c94) {
1781 s0 = peg$c94;
1782 peg$currPos += 3;
1783 } else {
1784 s0 = peg$FAILED;
1785 if (peg$silentFails === 0) { peg$fail(peg$c95); }
1786 }
1787 if (s0 === peg$FAILED) {
1788 if (input.substr(peg$currPos, 3) === peg$c96) {
1789 s0 = peg$c96;
1790 peg$currPos += 3;
1791 } else {
1792 s0 = peg$FAILED;
1793 if (peg$silentFails === 0) { peg$fail(peg$c97); }
1794 }
1795 if (s0 === peg$FAILED) {
1796 if (input.substr(peg$currPos, 4) === peg$c98) {
1797 s0 = peg$c98;
1798 peg$currPos += 4;
1799 } else {
1800 s0 = peg$FAILED;
1801 if (peg$silentFails === 0) { peg$fail(peg$c99); }
1802 }
1803 if (s0 === peg$FAILED) {
1804 if (input.substr(peg$currPos, 5) === peg$c100) {
1805 s0 = peg$c100;
1806 peg$currPos += 5;
1807 } else {
1808 s0 = peg$FAILED;
1809 if (peg$silentFails === 0) { peg$fail(peg$c101); }
1810 }
1811 if (s0 === peg$FAILED) {
1812 if (input.substr(peg$currPos, 5) === peg$c102) {
1813 s0 = peg$c102;
1814 peg$currPos += 5;
1815 } else {
1816 s0 = peg$FAILED;
1817 if (peg$silentFails === 0) { peg$fail(peg$c103); }
1818 }
1819 if (s0 === peg$FAILED) {
1820 if (input.substr(peg$currPos, 7) === peg$c104) {
1821 s0 = peg$c104;
1822 peg$currPos += 7;
1823 } else {
1824 s0 = peg$FAILED;
1825 if (peg$silentFails === 0) { peg$fail(peg$c105); }
1826 }
1827 if (s0 === peg$FAILED) {
1828 if (input.substr(peg$currPos, 4) === peg$c106) {
1829 s0 = peg$c106;
1830 peg$currPos += 4;
1831 } else {
1832 s0 = peg$FAILED;
1833 if (peg$silentFails === 0) { peg$fail(peg$c107); }
1834 }
1835 }
1836 }
1837 }
1838 }
1839 }
1840 }
1841 }
1842 }
1843 }
1844 }
1845
1846 return s0;
1847 }
1848
1849 function peg$parsecvtop() {
1850 var s0, s1, s2;
1851
1852 s0 = peg$currPos;
1853 s1 = [];
1854 if (peg$c108.test(input.charAt(peg$currPos))) {
1855 s2 = input.charAt(peg$currPos);
1856 peg$currPos++;
1857 } else {
1858 s2 = peg$FAILED;
1859 if (peg$silentFails === 0) { peg$fail(peg$c109); }
1860 }
1861 if (s2 !== peg$FAILED) {
1862 while (s2 !== peg$FAILED) {
1863 s1.push(s2);
1864 if (peg$c108.test(input.charAt(peg$currPos))) {
1865 s2 = input.charAt(peg$currPos);
1866 peg$currPos++;
1867 } else {
1868 s2 = peg$FAILED;
1869 if (peg$silentFails === 0) { peg$fail(peg$c109); }
1870 }
1871 }
1872 } else {
1873 s1 = peg$FAILED;
1874 }
1875 if (s1 !== peg$FAILED) {
1876 peg$savedPos = s0;
1877 s1 = peg$c110(s1);
1878 }
1879 s0 = s1;
1880
1881 return s0;
1882 }
1883
1884 function peg$parserelop() {
1885 var s0;
1886
1887 if (input.substr(peg$currPos, 2) === peg$c111) {
1888 s0 = peg$c111;
1889 peg$currPos += 2;
1890 } else {
1891 s0 = peg$FAILED;
1892 if (peg$silentFails === 0) { peg$fail(peg$c112); }
1893 }
1894 if (s0 === peg$FAILED) {
1895 if (input.substr(peg$currPos, 2) === peg$c113) {
1896 s0 = peg$c113;
1897 peg$currPos += 2;
1898 } else {
1899 s0 = peg$FAILED;
1900 if (peg$silentFails === 0) { peg$fail(peg$c114); }
1901 }
1902 if (s0 === peg$FAILED) {
1903 if (input.substr(peg$currPos, 4) === peg$c115) {
1904 s0 = peg$c115;
1905 peg$currPos += 4;
1906 } else {
1907 s0 = peg$FAILED;
1908 if (peg$silentFails === 0) { peg$fail(peg$c116); }
1909 }
1910 if (s0 === peg$FAILED) {
1911 if (input.substr(peg$currPos, 4) === peg$c117) {
1912 s0 = peg$c117;
1913 peg$currPos += 4;
1914 } else {
1915 s0 = peg$FAILED;
1916 if (peg$silentFails === 0) { peg$fail(peg$c118); }
1917 }
1918 if (s0 === peg$FAILED) {
1919 if (input.substr(peg$currPos, 4) === peg$c119) {
1920 s0 = peg$c119;
1921 peg$currPos += 4;
1922 } else {
1923 s0 = peg$FAILED;
1924 if (peg$silentFails === 0) { peg$fail(peg$c120); }
1925 }
1926 if (s0 === peg$FAILED) {
1927 if (input.substr(peg$currPos, 4) === peg$c121) {
1928 s0 = peg$c121;
1929 peg$currPos += 4;
1930 } else {
1931 s0 = peg$FAILED;
1932 if (peg$silentFails === 0) { peg$fail(peg$c122); }
1933 }
1934 if (s0 === peg$FAILED) {
1935 if (input.substr(peg$currPos, 4) === peg$c123) {
1936 s0 = peg$c123;
1937 peg$currPos += 4;
1938 } else {
1939 s0 = peg$FAILED;
1940 if (peg$silentFails === 0) { peg$fail(peg$c124); }
1941 }
1942 if (s0 === peg$FAILED) {
1943 if (input.substr(peg$currPos, 4) === peg$c125) {
1944 s0 = peg$c125;
1945 peg$currPos += 4;
1946 } else {
1947 s0 = peg$FAILED;
1948 if (peg$silentFails === 0) { peg$fail(peg$c126); }
1949 }
1950 if (s0 === peg$FAILED) {
1951 if (input.substr(peg$currPos, 4) === peg$c127) {
1952 s0 = peg$c127;
1953 peg$currPos += 4;
1954 } else {
1955 s0 = peg$FAILED;
1956 if (peg$silentFails === 0) { peg$fail(peg$c128); }
1957 }
1958 if (s0 === peg$FAILED) {
1959 if (input.substr(peg$currPos, 4) === peg$c129) {
1960 s0 = peg$c129;
1961 peg$currPos += 4;
1962 } else {
1963 s0 = peg$FAILED;
1964 if (peg$silentFails === 0) { peg$fail(peg$c130); }
1965 }
1966 if (s0 === peg$FAILED) {
1967 if (input.substr(peg$currPos, 2) === peg$c111) {
1968 s0 = peg$c111;
1969 peg$currPos += 2;
1970 } else {
1971 s0 = peg$FAILED;
1972 if (peg$silentFails === 0) { peg$fail(peg$c112); }
1973 }
1974 if (s0 === peg$FAILED) {
1975 if (input.substr(peg$currPos, 2) === peg$c113) {
1976 s0 = peg$c113;
1977 peg$currPos += 2;
1978 } else {
1979 s0 = peg$FAILED;
1980 if (peg$silentFails === 0) { peg$fail(peg$c114); }
1981 }
1982 if (s0 === peg$FAILED) {
1983 if (input.substr(peg$currPos, 2) === peg$c131) {
1984 s0 = peg$c131;
1985 peg$currPos += 2;
1986 } else {
1987 s0 = peg$FAILED;
1988 if (peg$silentFails === 0) { peg$fail(peg$c132); }
1989 }
1990 if (s0 === peg$FAILED) {
1991 if (input.substr(peg$currPos, 2) === peg$c133) {
1992 s0 = peg$c133;
1993 peg$currPos += 2;
1994 } else {
1995 s0 = peg$FAILED;
1996 if (peg$silentFails === 0) { peg$fail(peg$c134); }
1997 }
1998 if (s0 === peg$FAILED) {
1999 if (input.substr(peg$currPos, 2) === peg$c135) {
2000 s0 = peg$c135;
2001 peg$currPos += 2;
2002 } else {
2003 s0 = peg$FAILED;
2004 if (peg$silentFails === 0) { peg$fail(peg$c136); }
2005 }
2006 if (s0 === peg$FAILED) {
2007 if (input.substr(peg$currPos, 2) === peg$c137) {
2008 s0 = peg$c137;
2009 peg$currPos += 2;
2010 } else {
2011 s0 = peg$FAILED;
2012 if (peg$silentFails === 0) { peg$fail(peg$c138); }
2013 }
2014 }
2015 }
2016 }
2017 }
2018 }
2019 }
2020 }
2021 }
2022 }
2023 }
2024 }
2025 }
2026 }
2027 }
2028 }
2029
2030 return s0;
2031 }
2032
2033 function peg$parsevalue() {
2034 var s0, s1, s2, s3, s4, s5;
2035
2036 s0 = peg$currPos;
2037 if (input.substr(peg$currPos, 4) === peg$c139) {
2038 s1 = peg$c139;
2039 peg$currPos += 4;
2040 } else {
2041 s1 = peg$FAILED;
2042 if (peg$silentFails === 0) { peg$fail(peg$c140); }
2043 }
2044 if (s1 === peg$FAILED) {
2045 if (input.substr(peg$currPos, 5) === peg$c141) {
2046 s1 = peg$c141;
2047 peg$currPos += 5;
2048 } else {
2049 s1 = peg$FAILED;
2050 if (peg$silentFails === 0) { peg$fail(peg$c142); }
2051 }
2052 if (s1 === peg$FAILED) {
2053 if (input.substr(peg$currPos, 5) === peg$c143) {
2054 s1 = peg$c143;
2055 peg$currPos += 5;
2056 } else {
2057 s1 = peg$FAILED;
2058 if (peg$silentFails === 0) { peg$fail(peg$c144); }
2059 }
2060 }
2061 }
2062 if (s1 !== peg$FAILED) {
2063 if (input.charCodeAt(peg$currPos) === 45) {
2064 s2 = peg$c41;
2065 peg$currPos++;
2066 } else {
2067 s2 = peg$FAILED;
2068 if (peg$silentFails === 0) { peg$fail(peg$c42); }
2069 }
2070 if (s2 === peg$FAILED) {
2071 s2 = null;
2072 }
2073 if (s2 !== peg$FAILED) {
2074 if (input.substr(peg$currPos, 2) === peg$c37) {
2075 s3 = peg$c37;
2076 peg$currPos += 2;
2077 } else {
2078 s3 = peg$FAILED;
2079 if (peg$silentFails === 0) { peg$fail(peg$c38); }
2080 }
2081 if (s3 !== peg$FAILED) {
2082 s4 = [];
2083 if (peg$c145.test(input.charAt(peg$currPos))) {
2084 s5 = input.charAt(peg$currPos);
2085 peg$currPos++;
2086 } else {
2087 s5 = peg$FAILED;
2088 if (peg$silentFails === 0) { peg$fail(peg$c146); }
2089 }
2090 if (s5 !== peg$FAILED) {
2091 while (s5 !== peg$FAILED) {
2092 s4.push(s5);
2093 if (peg$c145.test(input.charAt(peg$currPos))) {
2094 s5 = input.charAt(peg$currPos);
2095 peg$currPos++;
2096 } else {
2097 s5 = peg$FAILED;
2098 if (peg$silentFails === 0) { peg$fail(peg$c146); }
2099 }
2100 }
2101 } else {
2102 s4 = peg$FAILED;
2103 }
2104 if (s4 !== peg$FAILED) {
2105 peg$savedPos = s0;
2106 s1 = peg$c147(s1, s2, s3, s4);
2107 s0 = s1;
2108 } else {
2109 peg$currPos = s0;
2110 s0 = peg$FAILED;
2111 }
2112 } else {
2113 peg$currPos = s0;
2114 s0 = peg$FAILED;
2115 }
2116 } else {
2117 peg$currPos = s0;
2118 s0 = peg$FAILED;
2119 }
2120 } else {
2121 peg$currPos = s0;
2122 s0 = peg$FAILED;
2123 }
2124 if (s0 === peg$FAILED) {
2125 if (input.substr(peg$currPos, 3) === peg$c148) {
2126 s0 = peg$c148;
2127 peg$currPos += 3;
2128 } else {
2129 s0 = peg$FAILED;
2130 if (peg$silentFails === 0) { peg$fail(peg$c149); }
2131 }
2132 if (s0 === peg$FAILED) {
2133 if (input.substr(peg$currPos, 4) === peg$c150) {
2134 s0 = peg$c150;
2135 peg$currPos += 4;
2136 } else {
2137 s0 = peg$FAILED;
2138 if (peg$silentFails === 0) { peg$fail(peg$c151); }
2139 }
2140 if (s0 === peg$FAILED) {
2141 if (input.substr(peg$currPos, 4) === peg$c152) {
2142 s0 = peg$c152;
2143 peg$currPos += 4;
2144 } else {
2145 s0 = peg$FAILED;
2146 if (peg$silentFails === 0) { peg$fail(peg$c153); }
2147 }
2148 if (s0 === peg$FAILED) {
2149 if (input.substr(peg$currPos, 8) === peg$c154) {
2150 s0 = peg$c154;
2151 peg$currPos += 8;
2152 } else {
2153 s0 = peg$FAILED;
2154 if (peg$silentFails === 0) { peg$fail(peg$c155); }
2155 }
2156 if (s0 === peg$FAILED) {
2157 if (input.substr(peg$currPos, 9) === peg$c156) {
2158 s0 = peg$c156;
2159 peg$currPos += 9;
2160 } else {
2161 s0 = peg$FAILED;
2162 if (peg$silentFails === 0) { peg$fail(peg$c157); }
2163 }
2164 if (s0 === peg$FAILED) {
2165 if (input.substr(peg$currPos, 9) === peg$c158) {
2166 s0 = peg$c158;
2167 peg$currPos += 9;
2168 } else {
2169 s0 = peg$FAILED;
2170 if (peg$silentFails === 0) { peg$fail(peg$c159); }
2171 }
2172 if (s0 === peg$FAILED) {
2173 s0 = peg$currPos;
2174 if (input.charCodeAt(peg$currPos) === 45) {
2175 s1 = peg$c41;
2176 peg$currPos++;
2177 } else {
2178 s1 = peg$FAILED;
2179 if (peg$silentFails === 0) { peg$fail(peg$c42); }
2180 }
2181 if (s1 === peg$FAILED) {
2182 if (input.charCodeAt(peg$currPos) === 43) {
2183 s1 = peg$c160;
2184 peg$currPos++;
2185 } else {
2186 s1 = peg$FAILED;
2187 if (peg$silentFails === 0) { peg$fail(peg$c161); }
2188 }
2189 }
2190 if (s1 === peg$FAILED) {
2191 s1 = null;
2192 }
2193 if (s1 !== peg$FAILED) {
2194 if (input.substr(peg$currPos, 2) === peg$c37) {
2195 s2 = peg$c37;
2196 peg$currPos += 2;
2197 } else {
2198 s2 = peg$FAILED;
2199 if (peg$silentFails === 0) { peg$fail(peg$c38); }
2200 }
2201 if (s2 !== peg$FAILED) {
2202 s3 = [];
2203 if (peg$c162.test(input.charAt(peg$currPos))) {
2204 s4 = input.charAt(peg$currPos);
2205 peg$currPos++;
2206 } else {
2207 s4 = peg$FAILED;
2208 if (peg$silentFails === 0) { peg$fail(peg$c163); }
2209 }
2210 if (s4 !== peg$FAILED) {
2211 while (s4 !== peg$FAILED) {
2212 s3.push(s4);
2213 if (peg$c162.test(input.charAt(peg$currPos))) {
2214 s4 = input.charAt(peg$currPos);
2215 peg$currPos++;
2216 } else {
2217 s4 = peg$FAILED;
2218 if (peg$silentFails === 0) { peg$fail(peg$c163); }
2219 }
2220 }
2221 } else {
2222 s3 = peg$FAILED;
2223 }
2224 if (s3 !== peg$FAILED) {
2225 peg$savedPos = s0;
2226 s1 = peg$c164(s1, s2, s3);
2227 s0 = s1;
2228 } else {
2229 peg$currPos = s0;
2230 s0 = peg$FAILED;
2231 }
2232 } else {
2233 peg$currPos = s0;
2234 s0 = peg$FAILED;
2235 }
2236 } else {
2237 peg$currPos = s0;
2238 s0 = peg$FAILED;
2239 }
2240 if (s0 === peg$FAILED) {
2241 s0 = peg$currPos;
2242 if (input.charCodeAt(peg$currPos) === 45) {
2243 s1 = peg$c41;
2244 peg$currPos++;
2245 } else {
2246 s1 = peg$FAILED;
2247 if (peg$silentFails === 0) { peg$fail(peg$c42); }
2248 }
2249 if (s1 === peg$FAILED) {
2250 s1 = null;
2251 }
2252 if (s1 !== peg$FAILED) {
2253 s2 = [];
2254 if (peg$c165.test(input.charAt(peg$currPos))) {
2255 s3 = input.charAt(peg$currPos);
2256 peg$currPos++;
2257 } else {
2258 s3 = peg$FAILED;
2259 if (peg$silentFails === 0) { peg$fail(peg$c166); }
2260 }
2261 if (s3 !== peg$FAILED) {
2262 while (s3 !== peg$FAILED) {
2263 s2.push(s3);
2264 if (peg$c165.test(input.charAt(peg$currPos))) {
2265 s3 = input.charAt(peg$currPos);
2266 peg$currPos++;
2267 } else {
2268 s3 = peg$FAILED;
2269 if (peg$silentFails === 0) { peg$fail(peg$c166); }
2270 }
2271 }
2272 } else {
2273 s2 = peg$FAILED;
2274 }
2275 if (s2 !== peg$FAILED) {
2276 peg$savedPos = s0;
2277 s1 = peg$c167(s1, s2);
2278 s0 = s1;
2279 } else {
2280 peg$currPos = s0;
2281 s0 = peg$FAILED;
2282 }
2283 } else {
2284 peg$currPos = s0;
2285 s0 = peg$FAILED;
2286 }
2287 }
2288 }
2289 }
2290 }
2291 }
2292 }
2293 }
2294 }
2295
2296 return s0;
2297 }
2298
2299 function peg$parsesign() {
2300 var s0;
2301
2302 if (input.charCodeAt(peg$currPos) === 115) {
2303 s0 = peg$c168;
2304 peg$currPos++;
2305 } else {
2306 s0 = peg$FAILED;
2307 if (peg$silentFails === 0) { peg$fail(peg$c169); }
2308 }
2309 if (s0 === peg$FAILED) {
2310 if (input.charCodeAt(peg$currPos) === 117) {
2311 s0 = peg$c170;
2312 peg$currPos++;
2313 } else {
2314 s0 = peg$FAILED;
2315 if (peg$silentFails === 0) { peg$fail(peg$c171); }
2316 }
2317 }
2318
2319 return s0;
2320 }
2321
2322 function peg$parsealign() {
2323 var s0, s1, s2;
2324
2325 s0 = peg$currPos;
2326 s1 = [];
2327 if (peg$c43.test(input.charAt(peg$currPos))) {
2328 s2 = input.charAt(peg$currPos);
2329 peg$currPos++;
2330 } else {
2331 s2 = peg$FAILED;
2332 if (peg$silentFails === 0) { peg$fail(peg$c44); }
2333 }
2334 while (s2 !== peg$FAILED) {
2335 s1.push(s2);
2336 if (peg$c43.test(input.charAt(peg$currPos))) {
2337 s2 = input.charAt(peg$currPos);
2338 peg$currPos++;
2339 } else {
2340 s2 = peg$FAILED;
2341 if (peg$silentFails === 0) { peg$fail(peg$c44); }
2342 }
2343 }
2344 if (s1 !== peg$FAILED) {
2345 peg$savedPos = s0;
2346 s1 = peg$c172(s1);
2347 }
2348 s0 = s1;
2349
2350 return s0;
2351 }
2352
2353 function peg$parseoffset() {
2354 var s0, s1, s2;
2355
2356 s0 = peg$currPos;
2357 s1 = [];
2358 if (peg$c43.test(input.charAt(peg$currPos))) {
2359 s2 = input.charAt(peg$currPos);
2360 peg$currPos++;
2361 } else {
2362 s2 = peg$FAILED;
2363 if (peg$silentFails === 0) { peg$fail(peg$c44); }
2364 }
2365 while (s2 !== peg$FAILED) {
2366 s1.push(s2);
2367 if (peg$c43.test(input.charAt(peg$currPos))) {
2368 s2 = input.charAt(peg$currPos);
2369 peg$currPos++;
2370 } else {
2371 s2 = peg$FAILED;
2372 if (peg$silentFails === 0) { peg$fail(peg$c44); }
2373 }
2374 }
2375 if (s1 !== peg$FAILED) {
2376 peg$savedPos = s0;
2377 s1 = peg$c172(s1);
2378 }
2379 s0 = s1;
2380
2381 return s0;
2382 }
2383
2384 function peg$parsevar() {
2385 var s0, s1, s2;
2386
2387 s0 = peg$currPos;
2388 s1 = peg$parseint();
2389 if (s1 !== peg$FAILED) {
2390 peg$savedPos = s0;
2391 s1 = peg$c173(s1);
2392 }
2393 s0 = s1;
2394 if (s0 === peg$FAILED) {
2395 s0 = peg$currPos;
2396 if (input.charCodeAt(peg$currPos) === 36) {
2397 s1 = peg$c174;
2398 peg$currPos++;
2399 } else {
2400 s1 = peg$FAILED;
2401 if (peg$silentFails === 0) { peg$fail(peg$c175); }
2402 }
2403 if (s1 !== peg$FAILED) {
2404 s2 = peg$parsename();
2405 if (s2 !== peg$FAILED) {
2406 peg$savedPos = s0;
2407 s1 = peg$c176(s2);
2408 s0 = s1;
2409 } else {
2410 peg$currPos = s0;
2411 s0 = peg$FAILED;
2412 }
2413 } else {
2414 peg$currPos = s0;
2415 s0 = peg$FAILED;
2416 }
2417 }
2418
2419 return s0;
2420 }
2421
2422 function peg$parsecase() {
2423 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
2424
2425 s0 = peg$currPos;
2426 if (input.charCodeAt(peg$currPos) === 40) {
2427 s1 = peg$c177;
2428 peg$currPos++;
2429 } else {
2430 s1 = peg$FAILED;
2431 if (peg$silentFails === 0) { peg$fail(peg$c178); }
2432 }
2433 if (s1 !== peg$FAILED) {
2434 s2 = peg$parse__();
2435 if (s2 !== peg$FAILED) {
2436 if (input.substr(peg$currPos, 4) === peg$c179) {
2437 s3 = peg$c179;
2438 peg$currPos += 4;
2439 } else {
2440 s3 = peg$FAILED;
2441 if (peg$silentFails === 0) { peg$fail(peg$c180); }
2442 }
2443 if (s3 !== peg$FAILED) {
2444 s4 = peg$parse__();
2445 if (s4 !== peg$FAILED) {
2446 s5 = peg$currPos;
2447 if (input.charCodeAt(peg$currPos) === 36) {
2448 s6 = peg$c174;
2449 peg$currPos++;
2450 } else {
2451 s6 = peg$FAILED;
2452 if (peg$silentFails === 0) { peg$fail(peg$c175); }
2453 }
2454 if (s6 !== peg$FAILED) {
2455 s7 = peg$parsename();
2456 if (s7 !== peg$FAILED) {
2457 s6 = [s6, s7];
2458 s5 = s6;
2459 } else {
2460 peg$currPos = s5;
2461 s5 = peg$FAILED;
2462 }
2463 } else {
2464 peg$currPos = s5;
2465 s5 = peg$FAILED;
2466 }
2467 if (s5 === peg$FAILED) {
2468 s5 = peg$parsevalue();
2469 }
2470 if (s5 !== peg$FAILED) {
2471 s6 = [];
2472 s7 = peg$currPos;
2473 s8 = peg$parse__();
2474 if (s8 !== peg$FAILED) {
2475 s9 = peg$parseexpr();
2476 if (s9 !== peg$FAILED) {
2477 s8 = [s8, s9];
2478 s7 = s8;
2479 } else {
2480 peg$currPos = s7;
2481 s7 = peg$FAILED;
2482 }
2483 } else {
2484 peg$currPos = s7;
2485 s7 = peg$FAILED;
2486 }
2487 while (s7 !== peg$FAILED) {
2488 s6.push(s7);
2489 s7 = peg$currPos;
2490 s8 = peg$parse__();
2491 if (s8 !== peg$FAILED) {
2492 s9 = peg$parseexpr();
2493 if (s9 !== peg$FAILED) {
2494 s8 = [s8, s9];
2495 s7 = s8;
2496 } else {
2497 peg$currPos = s7;
2498 s7 = peg$FAILED;
2499 }
2500 } else {
2501 peg$currPos = s7;
2502 s7 = peg$FAILED;
2503 }
2504 }
2505 if (s6 !== peg$FAILED) {
2506 s7 = peg$currPos;
2507 s8 = peg$parse__();
2508 if (s8 !== peg$FAILED) {
2509 if (input.substr(peg$currPos, 11) === peg$c181) {
2510 s9 = peg$c181;
2511 peg$currPos += 11;
2512 } else {
2513 s9 = peg$FAILED;
2514 if (peg$silentFails === 0) { peg$fail(peg$c182); }
2515 }
2516 if (s9 !== peg$FAILED) {
2517 s8 = [s8, s9];
2518 s7 = s8;
2519 } else {
2520 peg$currPos = s7;
2521 s7 = peg$FAILED;
2522 }
2523 } else {
2524 peg$currPos = s7;
2525 s7 = peg$FAILED;
2526 }
2527 if (s7 === peg$FAILED) {
2528 s7 = null;
2529 }
2530 if (s7 !== peg$FAILED) {
2531 s8 = peg$parse__();
2532 if (s8 !== peg$FAILED) {
2533 if (input.charCodeAt(peg$currPos) === 41) {
2534 s9 = peg$c183;
2535 peg$currPos++;
2536 } else {
2537 s9 = peg$FAILED;
2538 if (peg$silentFails === 0) { peg$fail(peg$c184); }
2539 }
2540 if (s9 !== peg$FAILED) {
2541 peg$savedPos = s0;
2542 s1 = peg$c185(s3, s5, s6, s7);
2543 s0 = s1;
2544 } else {
2545 peg$currPos = s0;
2546 s0 = peg$FAILED;
2547 }
2548 } else {
2549 peg$currPos = s0;
2550 s0 = peg$FAILED;
2551 }
2552 } else {
2553 peg$currPos = s0;
2554 s0 = peg$FAILED;
2555 }
2556 } else {
2557 peg$currPos = s0;
2558 s0 = peg$FAILED;
2559 }
2560 } else {
2561 peg$currPos = s0;
2562 s0 = peg$FAILED;
2563 }
2564 } else {
2565 peg$currPos = s0;
2566 s0 = peg$FAILED;
2567 }
2568 } else {
2569 peg$currPos = s0;
2570 s0 = peg$FAILED;
2571 }
2572 } else {
2573 peg$currPos = s0;
2574 s0 = peg$FAILED;
2575 }
2576 } else {
2577 peg$currPos = s0;
2578 s0 = peg$FAILED;
2579 }
2580 if (s0 === peg$FAILED) {
2581 s0 = peg$currPos;
2582 if (input.charCodeAt(peg$currPos) === 40) {
2583 s1 = peg$c177;
2584 peg$currPos++;
2585 } else {
2586 s1 = peg$FAILED;
2587 if (peg$silentFails === 0) { peg$fail(peg$c178); }
2588 }
2589 if (s1 !== peg$FAILED) {
2590 s2 = peg$parse__();
2591 if (s2 !== peg$FAILED) {
2592 if (input.substr(peg$currPos, 4) === peg$c179) {
2593 s3 = peg$c179;
2594 peg$currPos += 4;
2595 } else {
2596 s3 = peg$FAILED;
2597 if (peg$silentFails === 0) { peg$fail(peg$c180); }
2598 }
2599 if (s3 !== peg$FAILED) {
2600 s4 = peg$currPos;
2601 s5 = peg$parse__();
2602 if (s5 !== peg$FAILED) {
2603 s6 = peg$parsevalue();
2604 if (s6 !== peg$FAILED) {
2605 s5 = [s5, s6];
2606 s4 = s5;
2607 } else {
2608 peg$currPos = s4;
2609 s4 = peg$FAILED;
2610 }
2611 } else {
2612 peg$currPos = s4;
2613 s4 = peg$FAILED;
2614 }
2615 if (s4 === peg$FAILED) {
2616 s4 = null;
2617 }
2618 if (s4 !== peg$FAILED) {
2619 s5 = peg$parse__();
2620 if (s5 !== peg$FAILED) {
2621 if (input.charCodeAt(peg$currPos) === 41) {
2622 s6 = peg$c183;
2623 peg$currPos++;
2624 } else {
2625 s6 = peg$FAILED;
2626 if (peg$silentFails === 0) { peg$fail(peg$c184); }
2627 }
2628 if (s6 !== peg$FAILED) {
2629 peg$savedPos = s0;
2630 s1 = peg$c186(s3, s4);
2631 s0 = s1;
2632 } else {
2633 peg$currPos = s0;
2634 s0 = peg$FAILED;
2635 }
2636 } else {
2637 peg$currPos = s0;
2638 s0 = peg$FAILED;
2639 }
2640 } else {
2641 peg$currPos = s0;
2642 s0 = peg$FAILED;
2643 }
2644 } else {
2645 peg$currPos = s0;
2646 s0 = peg$FAILED;
2647 }
2648 } else {
2649 peg$currPos = s0;
2650 s0 = peg$FAILED;
2651 }
2652 } else {
2653 peg$currPos = s0;
2654 s0 = peg$FAILED;
2655 }
2656 if (s0 === peg$FAILED) {
2657 s0 = peg$parseexpr();
2658 }
2659 }
2660
2661 return s0;
2662 }
2663
2664 function peg$parseexpr() {
2665 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14;
2666
2667 s0 = peg$currPos;
2668 if (input.charCodeAt(peg$currPos) === 40) {
2669 s1 = peg$c177;
2670 peg$currPos++;
2671 } else {
2672 s1 = peg$FAILED;
2673 if (peg$silentFails === 0) { peg$fail(peg$c178); }
2674 }
2675 if (s1 !== peg$FAILED) {
2676 s2 = peg$parse__();
2677 if (s2 !== peg$FAILED) {
2678 s3 = peg$currPos;
2679 s4 = peg$parselocal_type();
2680 if (s4 !== peg$FAILED) {
2681 if (input.charCodeAt(peg$currPos) === 46) {
2682 s5 = peg$c187;
2683 peg$currPos++;
2684 } else {
2685 s5 = peg$FAILED;
2686 if (peg$silentFails === 0) { peg$fail(peg$c188); }
2687 }
2688 if (s5 !== peg$FAILED) {
2689 if (input.substr(peg$currPos, 5) === peg$c189) {
2690 s6 = peg$c189;
2691 peg$currPos += 5;
2692 } else {
2693 s6 = peg$FAILED;
2694 if (peg$silentFails === 0) { peg$fail(peg$c190); }
2695 }
2696 if (s6 !== peg$FAILED) {
2697 s7 = peg$parse__();
2698 if (s7 !== peg$FAILED) {
2699 s8 = peg$parsevalue();
2700 if (s8 !== peg$FAILED) {
2701 peg$savedPos = s3;
2702 s4 = peg$c191(s4, s6, s8);
2703 s3 = s4;
2704 } else {
2705 peg$currPos = s3;
2706 s3 = peg$FAILED;
2707 }
2708 } else {
2709 peg$currPos = s3;
2710 s3 = peg$FAILED;
2711 }
2712 } else {
2713 peg$currPos = s3;
2714 s3 = peg$FAILED;
2715 }
2716 } else {
2717 peg$currPos = s3;
2718 s3 = peg$FAILED;
2719 }
2720 } else {
2721 peg$currPos = s3;
2722 s3 = peg$FAILED;
2723 }
2724 if (s3 === peg$FAILED) {
2725 s3 = peg$currPos;
2726 if (input.substr(peg$currPos, 5) === peg$c192) {
2727 s4 = peg$c192;
2728 peg$currPos += 5;
2729 } else {
2730 s4 = peg$FAILED;
2731 if (peg$silentFails === 0) { peg$fail(peg$c193); }
2732 }
2733 if (s4 !== peg$FAILED) {
2734 s5 = peg$currPos;
2735 s6 = peg$parse__();
2736 if (s6 !== peg$FAILED) {
2737 s7 = peg$parsevar();
2738 if (s7 !== peg$FAILED) {
2739 s6 = [s6, s7];
2740 s5 = s6;
2741 } else {
2742 peg$currPos = s5;
2743 s5 = peg$FAILED;
2744 }
2745 } else {
2746 peg$currPos = s5;
2747 s5 = peg$FAILED;
2748 }
2749 if (s5 === peg$FAILED) {
2750 s5 = null;
2751 }
2752 if (s5 !== peg$FAILED) {
2753 s6 = [];
2754 s7 = peg$currPos;
2755 s8 = peg$parse__();
2756 if (s8 !== peg$FAILED) {
2757 s9 = peg$parseexpr();
2758 if (s9 !== peg$FAILED) {
2759 s8 = [s8, s9];
2760 s7 = s8;
2761 } else {
2762 peg$currPos = s7;
2763 s7 = peg$FAILED;
2764 }
2765 } else {
2766 peg$currPos = s7;
2767 s7 = peg$FAILED;
2768 }
2769 while (s7 !== peg$FAILED) {
2770 s6.push(s7);
2771 s7 = peg$currPos;
2772 s8 = peg$parse__();
2773 if (s8 !== peg$FAILED) {
2774 s9 = peg$parseexpr();
2775 if (s9 !== peg$FAILED) {
2776 s8 = [s8, s9];
2777 s7 = s8;
2778 } else {
2779 peg$currPos = s7;
2780 s7 = peg$FAILED;
2781 }
2782 } else {
2783 peg$currPos = s7;
2784 s7 = peg$FAILED;
2785 }
2786 }
2787 if (s6 !== peg$FAILED) {
2788 peg$savedPos = s3;
2789 s4 = peg$c194(s4, s5, s6);
2790 s3 = s4;
2791 } else {
2792 peg$currPos = s3;
2793 s3 = peg$FAILED;
2794 }
2795 } else {
2796 peg$currPos = s3;
2797 s3 = peg$FAILED;
2798 }
2799 } else {
2800 peg$currPos = s3;
2801 s3 = peg$FAILED;
2802 }
2803 if (s3 === peg$FAILED) {
2804 s3 = peg$currPos;
2805 if (input.substr(peg$currPos, 2) === peg$c195) {
2806 s4 = peg$c195;
2807 peg$currPos += 2;
2808 } else {
2809 s4 = peg$FAILED;
2810 if (peg$silentFails === 0) { peg$fail(peg$c196); }
2811 }
2812 if (s4 !== peg$FAILED) {
2813 s5 = peg$parse__();
2814 if (s5 !== peg$FAILED) {
2815 s6 = peg$parseexpr();
2816 if (s6 !== peg$FAILED) {
2817 s7 = peg$parse__();
2818 if (s7 !== peg$FAILED) {
2819 s8 = peg$parseexpr();
2820 if (s8 !== peg$FAILED) {
2821 s9 = peg$currPos;
2822 s10 = peg$parse__();
2823 if (s10 !== peg$FAILED) {
2824 s11 = peg$parseexpr();
2825 if (s11 !== peg$FAILED) {
2826 s10 = [s10, s11];
2827 s9 = s10;
2828 } else {
2829 peg$currPos = s9;
2830 s9 = peg$FAILED;
2831 }
2832 } else {
2833 peg$currPos = s9;
2834 s9 = peg$FAILED;
2835 }
2836 if (s9 === peg$FAILED) {
2837 s9 = null;
2838 }
2839 if (s9 !== peg$FAILED) {
2840 peg$savedPos = s3;
2841 s4 = peg$c197(s4, s6, s8, s9);
2842 s3 = s4;
2843 } else {
2844 peg$currPos = s3;
2845 s3 = peg$FAILED;
2846 }
2847 } else {
2848 peg$currPos = s3;
2849 s3 = peg$FAILED;
2850 }
2851 } else {
2852 peg$currPos = s3;
2853 s3 = peg$FAILED;
2854 }
2855 } else {
2856 peg$currPos = s3;
2857 s3 = peg$FAILED;
2858 }
2859 } else {
2860 peg$currPos = s3;
2861 s3 = peg$FAILED;
2862 }
2863 } else {
2864 peg$currPos = s3;
2865 s3 = peg$FAILED;
2866 }
2867 if (s3 === peg$FAILED) {
2868 s3 = peg$currPos;
2869 if (input.substr(peg$currPos, 4) === peg$c198) {
2870 s4 = peg$c198;
2871 peg$currPos += 4;
2872 } else {
2873 s4 = peg$FAILED;
2874 if (peg$silentFails === 0) { peg$fail(peg$c199); }
2875 }
2876 if (s4 === peg$FAILED) {
2877 if (input.substr(peg$currPos, 4) === peg$c200) {
2878 s4 = peg$c200;
2879 peg$currPos += 4;
2880 } else {
2881 s4 = peg$FAILED;
2882 if (peg$silentFails === 0) { peg$fail(peg$c201); }
2883 }
2884 }
2885 if (s4 !== peg$FAILED) {
2886 s5 = peg$currPos;
2887 s6 = peg$parse__();
2888 if (s6 !== peg$FAILED) {
2889 s7 = peg$parsevar();
2890 if (s7 !== peg$FAILED) {
2891 s6 = [s6, s7];
2892 s5 = s6;
2893 } else {
2894 peg$currPos = s5;
2895 s5 = peg$FAILED;
2896 }
2897 } else {
2898 peg$currPos = s5;
2899 s5 = peg$FAILED;
2900 }
2901 if (s5 === peg$FAILED) {
2902 s5 = null;
2903 }
2904 if (s5 !== peg$FAILED) {
2905 s6 = [];
2906 s7 = peg$currPos;
2907 s8 = peg$parse__();
2908 if (s8 !== peg$FAILED) {
2909 s9 = peg$parseexpr();
2910 if (s9 !== peg$FAILED) {
2911 s8 = [s8, s9];
2912 s7 = s8;
2913 } else {
2914 peg$currPos = s7;
2915 s7 = peg$FAILED;
2916 }
2917 } else {
2918 peg$currPos = s7;
2919 s7 = peg$FAILED;
2920 }
2921 while (s7 !== peg$FAILED) {
2922 s6.push(s7);
2923 s7 = peg$currPos;
2924 s8 = peg$parse__();
2925 if (s8 !== peg$FAILED) {
2926 s9 = peg$parseexpr();
2927 if (s9 !== peg$FAILED) {
2928 s8 = [s8, s9];
2929 s7 = s8;
2930 } else {
2931 peg$currPos = s7;
2932 s7 = peg$FAILED;
2933 }
2934 } else {
2935 peg$currPos = s7;
2936 s7 = peg$FAILED;
2937 }
2938 }
2939 if (s6 !== peg$FAILED) {
2940 peg$savedPos = s3;
2941 s4 = peg$c194(s4, s5, s6);
2942 s3 = s4;
2943 } else {
2944 peg$currPos = s3;
2945 s3 = peg$FAILED;
2946 }
2947 } else {
2948 peg$currPos = s3;
2949 s3 = peg$FAILED;
2950 }
2951 } else {
2952 peg$currPos = s3;
2953 s3 = peg$FAILED;
2954 }
2955 if (s3 === peg$FAILED) {
2956 s3 = peg$currPos;
2957 if (input.substr(peg$currPos, 4) === peg$c202) {
2958 s4 = peg$c202;
2959 peg$currPos += 4;
2960 } else {
2961 s4 = peg$FAILED;
2962 if (peg$silentFails === 0) { peg$fail(peg$c203); }
2963 }
2964 if (s4 !== peg$FAILED) {
2965 s5 = peg$parse__();
2966 if (s5 !== peg$FAILED) {
2967 s6 = peg$parsevar();
2968 if (s6 !== peg$FAILED) {
2969 s7 = peg$currPos;
2970 s8 = peg$parse__();
2971 if (s8 !== peg$FAILED) {
2972 s9 = peg$parsevar();
2973 if (s9 !== peg$FAILED) {
2974 s8 = [s8, s9];
2975 s7 = s8;
2976 } else {
2977 peg$currPos = s7;
2978 s7 = peg$FAILED;
2979 }
2980 } else {
2981 peg$currPos = s7;
2982 s7 = peg$FAILED;
2983 }
2984 if (s7 === peg$FAILED) {
2985 s7 = null;
2986 }
2987 if (s7 !== peg$FAILED) {
2988 s8 = [];
2989 s9 = peg$currPos;
2990 s10 = peg$parse__();
2991 if (s10 !== peg$FAILED) {
2992 s11 = peg$parseexpr();
2993 if (s11 !== peg$FAILED) {
2994 s10 = [s10, s11];
2995 s9 = s10;
2996 } else {
2997 peg$currPos = s9;
2998 s9 = peg$FAILED;
2999 }
3000 } else {
3001 peg$currPos = s9;
3002 s9 = peg$FAILED;
3003 }
3004 while (s9 !== peg$FAILED) {
3005 s8.push(s9);
3006 s9 = peg$currPos;
3007 s10 = peg$parse__();
3008 if (s10 !== peg$FAILED) {
3009 s11 = peg$parseexpr();
3010 if (s11 !== peg$FAILED) {
3011 s10 = [s10, s11];
3012 s9 = s10;
3013 } else {
3014 peg$currPos = s9;
3015 s9 = peg$FAILED;
3016 }
3017 } else {
3018 peg$currPos = s9;
3019 s9 = peg$FAILED;
3020 }
3021 }
3022 if (s8 !== peg$FAILED) {
3023 peg$savedPos = s3;
3024 s4 = peg$c204(s4, s6, s7, s8);
3025 s3 = s4;
3026 } else {
3027 peg$currPos = s3;
3028 s3 = peg$FAILED;
3029 }
3030 } else {
3031 peg$currPos = s3;
3032 s3 = peg$FAILED;
3033 }
3034 } else {
3035 peg$currPos = s3;
3036 s3 = peg$FAILED;
3037 }
3038 } else {
3039 peg$currPos = s3;
3040 s3 = peg$FAILED;
3041 }
3042 } else {
3043 peg$currPos = s3;
3044 s3 = peg$FAILED;
3045 }
3046 if (s3 === peg$FAILED) {
3047 s3 = peg$currPos;
3048 if (input.substr(peg$currPos, 4) === peg$c202) {
3049 s4 = peg$c202;
3050 peg$currPos += 4;
3051 } else {
3052 s4 = peg$FAILED;
3053 if (peg$silentFails === 0) { peg$fail(peg$c203); }
3054 }
3055 if (s4 !== peg$FAILED) {
3056 s5 = [];
3057 s6 = peg$currPos;
3058 s7 = peg$parse__();
3059 if (s7 !== peg$FAILED) {
3060 s8 = peg$parseexpr();
3061 if (s8 !== peg$FAILED) {
3062 s7 = [s7, s8];
3063 s6 = s7;
3064 } else {
3065 peg$currPos = s6;
3066 s6 = peg$FAILED;
3067 }
3068 } else {
3069 peg$currPos = s6;
3070 s6 = peg$FAILED;
3071 }
3072 while (s6 !== peg$FAILED) {
3073 s5.push(s6);
3074 s6 = peg$currPos;
3075 s7 = peg$parse__();
3076 if (s7 !== peg$FAILED) {
3077 s8 = peg$parseexpr();
3078 if (s8 !== peg$FAILED) {
3079 s7 = [s7, s8];
3080 s6 = s7;
3081 } else {
3082 peg$currPos = s6;
3083 s6 = peg$FAILED;
3084 }
3085 } else {
3086 peg$currPos = s6;
3087 s6 = peg$FAILED;
3088 }
3089 }
3090 if (s5 !== peg$FAILED) {
3091 peg$savedPos = s3;
3092 s4 = peg$c205(s4, s5);
3093 s3 = s4;
3094 } else {
3095 peg$currPos = s3;
3096 s3 = peg$FAILED;
3097 }
3098 } else {
3099 peg$currPos = s3;
3100 s3 = peg$FAILED;
3101 }
3102 if (s3 === peg$FAILED) {
3103 s3 = peg$currPos;
3104 if (input.substr(peg$currPos, 5) === peg$c206) {
3105 s4 = peg$c206;
3106 peg$currPos += 5;
3107 } else {
3108 s4 = peg$FAILED;
3109 if (peg$silentFails === 0) { peg$fail(peg$c207); }
3110 }
3111 if (s4 !== peg$FAILED) {
3112 s5 = peg$currPos;
3113 s6 = peg$parse__();
3114 if (s6 !== peg$FAILED) {
3115 s7 = peg$parsevar();
3116 if (s7 !== peg$FAILED) {
3117 s6 = [s6, s7];
3118 s5 = s6;
3119 } else {
3120 peg$currPos = s5;
3121 s5 = peg$FAILED;
3122 }
3123 } else {
3124 peg$currPos = s5;
3125 s5 = peg$FAILED;
3126 }
3127 if (s5 === peg$FAILED) {
3128 s5 = null;
3129 }
3130 if (s5 !== peg$FAILED) {
3131 s6 = peg$parse__();
3132 if (s6 !== peg$FAILED) {
3133 s7 = peg$parseexpr();
3134 if (s7 !== peg$FAILED) {
3135 peg$savedPos = s3;
3136 s4 = peg$c208(s4, s5, s7);
3137 s3 = s4;
3138 } else {
3139 peg$currPos = s3;
3140 s3 = peg$FAILED;
3141 }
3142 } else {
3143 peg$currPos = s3;
3144 s3 = peg$FAILED;
3145 }
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 s3 = peg$currPos;
3156 if (input.substr(peg$currPos, 2) === peg$c209) {
3157 s4 = peg$c209;
3158 peg$currPos += 2;
3159 } else {
3160 s4 = peg$FAILED;
3161 if (peg$silentFails === 0) { peg$fail(peg$c210); }
3162 }
3163 if (s4 !== peg$FAILED) {
3164 s5 = peg$parse__();
3165 if (s5 !== peg$FAILED) {
3166 s6 = peg$parsevar();
3167 if (s6 !== peg$FAILED) {
3168 s7 = peg$currPos;
3169 s8 = peg$parse__();
3170 if (s8 !== peg$FAILED) {
3171 s9 = peg$parseexpr();
3172 if (s9 !== peg$FAILED) {
3173 s8 = [s8, s9];
3174 s7 = s8;
3175 } else {
3176 peg$currPos = s7;
3177 s7 = peg$FAILED;
3178 }
3179 } else {
3180 peg$currPos = s7;
3181 s7 = peg$FAILED;
3182 }
3183 if (s7 === peg$FAILED) {
3184 s7 = null;
3185 }
3186 if (s7 !== peg$FAILED) {
3187 peg$savedPos = s3;
3188 s4 = peg$c211(s4, s6, s7);
3189 s3 = s4;
3190 } else {
3191 peg$currPos = s3;
3192 s3 = peg$FAILED;
3193 }
3194 } else {
3195 peg$currPos = s3;
3196 s3 = peg$FAILED;
3197 }
3198 } else {
3199 peg$currPos = s3;
3200 s3 = peg$FAILED;
3201 }
3202 } else {
3203 peg$currPos = s3;
3204 s3 = peg$FAILED;
3205 }
3206 if (s3 === peg$FAILED) {
3207 s3 = peg$currPos;
3208 if (input.substr(peg$currPos, 5) === peg$c212) {
3209 s4 = peg$c212;
3210 peg$currPos += 5;
3211 } else {
3212 s4 = peg$FAILED;
3213 if (peg$silentFails === 0) { peg$fail(peg$c213); }
3214 }
3215 if (s4 !== peg$FAILED) {
3216 s5 = peg$parse__();
3217 if (s5 !== peg$FAILED) {
3218 s6 = peg$parsevar();
3219 if (s6 !== peg$FAILED) {
3220 s7 = peg$parse__();
3221 if (s7 !== peg$FAILED) {
3222 s8 = peg$parseexpr();
3223 if (s8 !== peg$FAILED) {
3224 s9 = peg$parse__();
3225 if (s9 !== peg$FAILED) {
3226 s10 = peg$currPos;
3227 s11 = peg$parse__();
3228 if (s11 !== peg$FAILED) {
3229 s12 = peg$parseexpr();
3230 if (s12 !== peg$FAILED) {
3231 s11 = [s11, s12];
3232 s10 = s11;
3233 } else {
3234 peg$currPos = s10;
3235 s10 = peg$FAILED;
3236 }
3237 } else {
3238 peg$currPos = s10;
3239 s10 = peg$FAILED;
3240 }
3241 if (s10 === peg$FAILED) {
3242 s10 = null;
3243 }
3244 if (s10 !== peg$FAILED) {
3245 peg$savedPos = s3;
3246 s4 = peg$c214(s4, s6, s8, s10);
3247 s3 = s4;
3248 } else {
3249 peg$currPos = s3;
3250 s3 = peg$FAILED;
3251 }
3252 } else {
3253 peg$currPos = s3;
3254 s3 = peg$FAILED;
3255 }
3256 } else {
3257 peg$currPos = s3;
3258 s3 = peg$FAILED;
3259 }
3260 } else {
3261 peg$currPos = s3;
3262 s3 = peg$FAILED;
3263 }
3264 } else {
3265 peg$currPos = s3;
3266 s3 = peg$FAILED;
3267 }
3268 } else {
3269 peg$currPos = s3;
3270 s3 = peg$FAILED;
3271 }
3272 } else {
3273 peg$currPos = s3;
3274 s3 = peg$FAILED;
3275 }
3276 if (s3 === peg$FAILED) {
3277 s3 = peg$currPos;
3278 if (input.substr(peg$currPos, 11) === peg$c215) {
3279 s4 = peg$c215;
3280 peg$currPos += 11;
3281 } else {
3282 s4 = peg$FAILED;
3283 if (peg$silentFails === 0) { peg$fail(peg$c216); }
3284 }
3285 if (s4 !== peg$FAILED) {
3286 s5 = peg$parse__();
3287 if (s5 !== peg$FAILED) {
3288 s6 = peg$parseliteral();
3289 if (s6 !== peg$FAILED) {
3290 peg$savedPos = s3;
3291 s4 = peg$c217(s4, s6);
3292 s3 = s4;
3293 } else {
3294 peg$currPos = s3;
3295 s3 = peg$FAILED;
3296 }
3297 } else {
3298 peg$currPos = s3;
3299 s3 = peg$FAILED;
3300 }
3301 } else {
3302 peg$currPos = s3;
3303 s3 = peg$FAILED;
3304 }
3305 if (s3 === peg$FAILED) {
3306 s3 = peg$currPos;
3307 s4 = peg$parselocal_type();
3308 if (s4 !== peg$FAILED) {
3309 if (input.charCodeAt(peg$currPos) === 46) {
3310 s5 = peg$c187;
3311 peg$currPos++;
3312 } else {
3313 s5 = peg$FAILED;
3314 if (peg$silentFails === 0) { peg$fail(peg$c188); }
3315 }
3316 if (s5 !== peg$FAILED) {
3317 if (input.substr(peg$currPos, 6) === peg$c218) {
3318 s6 = peg$c218;
3319 peg$currPos += 6;
3320 } else {
3321 s6 = peg$FAILED;
3322 if (peg$silentFails === 0) { peg$fail(peg$c219); }
3323 }
3324 if (s6 !== peg$FAILED) {
3325 s7 = peg$parse__();
3326 if (s7 !== peg$FAILED) {
3327 s8 = peg$parseexpr();
3328 if (s8 !== peg$FAILED) {
3329 s9 = [];
3330 s10 = peg$currPos;
3331 s11 = peg$parse__();
3332 if (s11 !== peg$FAILED) {
3333 s12 = peg$parsecase();
3334 if (s12 !== peg$FAILED) {
3335 s11 = [s11, s12];
3336 s10 = s11;
3337 } else {
3338 peg$currPos = s10;
3339 s10 = peg$FAILED;
3340 }
3341 } else {
3342 peg$currPos = s10;
3343 s10 = peg$FAILED;
3344 }
3345 while (s10 !== peg$FAILED) {
3346 s9.push(s10);
3347 s10 = peg$currPos;
3348 s11 = peg$parse__();
3349 if (s11 !== peg$FAILED) {
3350 s12 = peg$parsecase();
3351 if (s12 !== peg$FAILED) {
3352 s11 = [s11, s12];
3353 s10 = s11;
3354 } else {
3355 peg$currPos = s10;
3356 s10 = peg$FAILED;
3357 }
3358 } else {
3359 peg$currPos = s10;
3360 s10 = peg$FAILED;
3361 }
3362 }
3363 if (s9 !== peg$FAILED) {
3364 s10 = peg$parse__();
3365 if (s10 !== peg$FAILED) {
3366 s11 = peg$parseexpr();
3367 if (s11 !== peg$FAILED) {
3368 peg$savedPos = s3;
3369 s4 = peg$c220(s4, s6, s8, s9, s11);
3370 s3 = s4;
3371 } else {
3372 peg$currPos = s3;
3373 s3 = peg$FAILED;
3374 }
3375 } else {
3376 peg$currPos = s3;
3377 s3 = peg$FAILED;
3378 }
3379 } else {
3380 peg$currPos = s3;
3381 s3 = peg$FAILED;
3382 }
3383 } else {
3384 peg$currPos = s3;
3385 s3 = peg$FAILED;
3386 }
3387 } else {
3388 peg$currPos = s3;
3389 s3 = peg$FAILED;
3390 }
3391 } else {
3392 peg$currPos = s3;
3393 s3 = peg$FAILED;
3394 }
3395 } else {
3396 peg$currPos = s3;
3397 s3 = peg$FAILED;
3398 }
3399 } else {
3400 peg$currPos = s3;
3401 s3 = peg$FAILED;
3402 }
3403 if (s3 === peg$FAILED) {
3404 s3 = peg$currPos;
3405 if (input.substr(peg$currPos, 8) === peg$c221) {
3406 s4 = peg$c221;
3407 peg$currPos += 8;
3408 } else {
3409 s4 = peg$FAILED;
3410 if (peg$silentFails === 0) { peg$fail(peg$c222); }
3411 }
3412 if (s4 !== peg$FAILED) {
3413 s5 = [];
3414 s6 = peg$currPos;
3415 s7 = peg$parse__();
3416 if (s7 !== peg$FAILED) {
3417 s8 = peg$parsevar();
3418 if (s8 !== peg$FAILED) {
3419 s7 = [s7, s8];
3420 s6 = s7;
3421 } else {
3422 peg$currPos = s6;
3423 s6 = peg$FAILED;
3424 }
3425 } else {
3426 peg$currPos = s6;
3427 s6 = peg$FAILED;
3428 }
3429 while (s6 !== peg$FAILED) {
3430 s5.push(s6);
3431 s6 = peg$currPos;
3432 s7 = peg$parse__();
3433 if (s7 !== peg$FAILED) {
3434 s8 = peg$parsevar();
3435 if (s8 !== peg$FAILED) {
3436 s7 = [s7, s8];
3437 s6 = s7;
3438 } else {
3439 peg$currPos = s6;
3440 s6 = peg$FAILED;
3441 }
3442 } else {
3443 peg$currPos = s6;
3444 s6 = peg$FAILED;
3445 }
3446 }
3447 if (s5 !== peg$FAILED) {
3448 s6 = [];
3449 s7 = peg$currPos;
3450 s8 = peg$parse__();
3451 if (s8 !== peg$FAILED) {
3452 s9 = peg$parseexpr();
3453 if (s9 !== peg$FAILED) {
3454 s8 = [s8, s9];
3455 s7 = s8;
3456 } else {
3457 peg$currPos = s7;
3458 s7 = peg$FAILED;
3459 }
3460 } else {
3461 peg$currPos = s7;
3462 s7 = peg$FAILED;
3463 }
3464 while (s7 !== peg$FAILED) {
3465 s6.push(s7);
3466 s7 = peg$currPos;
3467 s8 = peg$parse__();
3468 if (s8 !== peg$FAILED) {
3469 s9 = peg$parseexpr();
3470 if (s9 !== peg$FAILED) {
3471 s8 = [s8, s9];
3472 s7 = s8;
3473 } else {
3474 peg$currPos = s7;
3475 s7 = peg$FAILED;
3476 }
3477 } else {
3478 peg$currPos = s7;
3479 s7 = peg$FAILED;
3480 }
3481 }
3482 if (s6 !== peg$FAILED) {
3483 peg$savedPos = s3;
3484 s4 = peg$c223(s4, s5, s6);
3485 s3 = s4;
3486 } else {
3487 peg$currPos = s3;
3488 s3 = peg$FAILED;
3489 }
3490 } else {
3491 peg$currPos = s3;
3492 s3 = peg$FAILED;
3493 }
3494 } else {
3495 peg$currPos = s3;
3496 s3 = peg$FAILED;
3497 }
3498 if (s3 === peg$FAILED) {
3499 s3 = peg$currPos;
3500 s4 = peg$parselocal_type();
3501 if (s4 !== peg$FAILED) {
3502 if (input.charCodeAt(peg$currPos) === 46) {
3503 s5 = peg$c187;
3504 peg$currPos++;
3505 } else {
3506 s5 = peg$FAILED;
3507 if (peg$silentFails === 0) { peg$fail(peg$c188); }
3508 }
3509 if (s5 !== peg$FAILED) {
3510 if (input.substr(peg$currPos, 6) === peg$c218) {
3511 s6 = peg$c218;
3512 peg$currPos += 6;
3513 } else {
3514 s6 = peg$FAILED;
3515 if (peg$silentFails === 0) { peg$fail(peg$c219); }
3516 }
3517 if (s6 !== peg$FAILED) {
3518 s7 = peg$parse__();
3519 if (s7 !== peg$FAILED) {
3520 s8 = peg$parsevar();
3521 if (s8 !== peg$FAILED) {
3522 s9 = peg$parse__();
3523 if (s9 !== peg$FAILED) {
3524 s10 = peg$parseexpr();
3525 if (s10 !== peg$FAILED) {
3526 s11 = [];
3527 s12 = peg$currPos;
3528 s13 = peg$parse__();
3529 if (s13 !== peg$FAILED) {
3530 s14 = peg$parsecase();
3531 if (s14 !== peg$FAILED) {
3532 s13 = [s13, s14];
3533 s12 = s13;
3534 } else {
3535 peg$currPos = s12;
3536 s12 = peg$FAILED;
3537 }
3538 } else {
3539 peg$currPos = s12;
3540 s12 = peg$FAILED;
3541 }
3542 while (s12 !== peg$FAILED) {
3543 s11.push(s12);
3544 s12 = peg$currPos;
3545 s13 = peg$parse__();
3546 if (s13 !== peg$FAILED) {
3547 s14 = peg$parsecase();
3548 if (s14 !== peg$FAILED) {
3549 s13 = [s13, s14];
3550 s12 = s13;
3551 } else {
3552 peg$currPos = s12;
3553 s12 = peg$FAILED;
3554 }
3555 } else {
3556 peg$currPos = s12;
3557 s12 = peg$FAILED;
3558 }
3559 }
3560 if (s11 !== peg$FAILED) {
3561 s12 = peg$parse__();
3562 if (s12 !== peg$FAILED) {
3563 s13 = peg$parseexpr();
3564 if (s13 !== peg$FAILED) {
3565 peg$savedPos = s3;
3566 s4 = peg$c224(s4, s6, s8, s10, s11, s13);
3567 s3 = s4;
3568 } else {
3569 peg$currPos = s3;
3570 s3 = peg$FAILED;
3571 }
3572 } else {
3573 peg$currPos = s3;
3574 s3 = peg$FAILED;
3575 }
3576 } else {
3577 peg$currPos = s3;
3578 s3 = peg$FAILED;
3579 }
3580 } else {
3581 peg$currPos = s3;
3582 s3 = peg$FAILED;
3583 }
3584 } else {
3585 peg$currPos = s3;
3586 s3 = peg$FAILED;
3587 }
3588 } else {
3589 peg$currPos = s3;
3590 s3 = peg$FAILED;
3591 }
3592 } else {
3593 peg$currPos = s3;
3594 s3 = peg$FAILED;
3595 }
3596 } else {
3597 peg$currPos = s3;
3598 s3 = peg$FAILED;
3599 }
3600 } else {
3601 peg$currPos = s3;
3602 s3 = peg$FAILED;
3603 }
3604 } else {
3605 peg$currPos = s3;
3606 s3 = peg$FAILED;
3607 }
3608 if (s3 === peg$FAILED) {
3609 s3 = peg$currPos;
3610 if (input.substr(peg$currPos, 11) === peg$c225) {
3611 s4 = peg$c225;
3612 peg$currPos += 11;
3613 } else {
3614 s4 = peg$FAILED;
3615 if (peg$silentFails === 0) { peg$fail(peg$c226); }
3616 }
3617 if (s4 === peg$FAILED) {
3618 if (input.substr(peg$currPos, 4) === peg$c227) {
3619 s4 = peg$c227;
3620 peg$currPos += 4;
3621 } else {
3622 s4 = peg$FAILED;
3623 if (peg$silentFails === 0) { peg$fail(peg$c228); }
3624 }
3625 }
3626 if (s4 !== peg$FAILED) {
3627 s5 = peg$parse__();
3628 if (s5 !== peg$FAILED) {
3629 s6 = peg$parsevar();
3630 if (s6 !== peg$FAILED) {
3631 s7 = [];
3632 s8 = peg$currPos;
3633 s9 = peg$parse__();
3634 if (s9 !== peg$FAILED) {
3635 s10 = peg$parseexpr();
3636 if (s10 !== peg$FAILED) {
3637 s9 = [s9, s10];
3638 s8 = s9;
3639 } else {
3640 peg$currPos = s8;
3641 s8 = peg$FAILED;
3642 }
3643 } else {
3644 peg$currPos = s8;
3645 s8 = peg$FAILED;
3646 }
3647 while (s8 !== peg$FAILED) {
3648 s7.push(s8);
3649 s8 = peg$currPos;
3650 s9 = peg$parse__();
3651 if (s9 !== peg$FAILED) {
3652 s10 = peg$parseexpr();
3653 if (s10 !== peg$FAILED) {
3654 s9 = [s9, s10];
3655 s8 = s9;
3656 } else {
3657 peg$currPos = s8;
3658 s8 = peg$FAILED;
3659 }
3660 } else {
3661 peg$currPos = s8;
3662 s8 = peg$FAILED;
3663 }
3664 }
3665 if (s7 !== peg$FAILED) {
3666 peg$savedPos = s3;
3667 s4 = peg$c229(s4, s6, s7);
3668 s3 = s4;
3669 } else {
3670 peg$currPos = s3;
3671 s3 = peg$FAILED;
3672 }
3673 } else {
3674 peg$currPos = s3;
3675 s3 = peg$FAILED;
3676 }
3677 } else {
3678 peg$currPos = s3;
3679 s3 = peg$FAILED;
3680 }
3681 } else {
3682 peg$currPos = s3;
3683 s3 = peg$FAILED;
3684 }
3685 if (s3 === peg$FAILED) {
3686 s3 = peg$currPos;
3687 if (input.substr(peg$currPos, 13) === peg$c230) {
3688 s4 = peg$c230;
3689 peg$currPos += 13;
3690 } else {
3691 s4 = peg$FAILED;
3692 if (peg$silentFails === 0) { peg$fail(peg$c231); }
3693 }
3694 if (s4 !== peg$FAILED) {
3695 s5 = peg$parse__();
3696 if (s5 !== peg$FAILED) {
3697 s6 = peg$parsevar();
3698 if (s6 !== peg$FAILED) {
3699 s7 = peg$parse__();
3700 if (s7 !== peg$FAILED) {
3701 s8 = [];
3702 s9 = peg$currPos;
3703 s10 = peg$parse__();
3704 if (s10 !== peg$FAILED) {
3705 s11 = peg$parseexpr();
3706 if (s11 !== peg$FAILED) {
3707 s10 = [s10, s11];
3708 s9 = s10;
3709 } else {
3710 peg$currPos = s9;
3711 s9 = peg$FAILED;
3712 }
3713 } else {
3714 peg$currPos = s9;
3715 s9 = peg$FAILED;
3716 }
3717 if (s9 !== peg$FAILED) {
3718 while (s9 !== peg$FAILED) {
3719 s8.push(s9);
3720 s9 = peg$currPos;
3721 s10 = peg$parse__();
3722 if (s10 !== peg$FAILED) {
3723 s11 = peg$parseexpr();
3724 if (s11 !== peg$FAILED) {
3725 s10 = [s10, s11];
3726 s9 = s10;
3727 } else {
3728 peg$currPos = s9;
3729 s9 = peg$FAILED;
3730 }
3731 } else {
3732 peg$currPos = s9;
3733 s9 = peg$FAILED;
3734 }
3735 }
3736 } else {
3737 s8 = peg$FAILED;
3738 }
3739 if (s8 !== peg$FAILED) {
3740 peg$savedPos = s3;
3741 s4 = peg$c232(s4, s6, s8);
3742 s3 = s4;
3743 } else {
3744 peg$currPos = s3;
3745 s3 = peg$FAILED;
3746 }
3747 } else {
3748 peg$currPos = s3;
3749 s3 = peg$FAILED;
3750 }
3751 } else {
3752 peg$currPos = s3;
3753 s3 = peg$FAILED;
3754 }
3755 } else {
3756 peg$currPos = s3;
3757 s3 = peg$FAILED;
3758 }
3759 } else {
3760 peg$currPos = s3;
3761 s3 = peg$FAILED;
3762 }
3763 if (s3 === peg$FAILED) {
3764 s3 = peg$currPos;
3765 if (input.substr(peg$currPos, 6) === peg$c233) {
3766 s4 = peg$c233;
3767 peg$currPos += 6;
3768 } else {
3769 s4 = peg$FAILED;
3770 if (peg$silentFails === 0) { peg$fail(peg$c234); }
3771 }
3772 if (s4 !== peg$FAILED) {
3773 s5 = peg$currPos;
3774 s6 = peg$parse__();
3775 if (s6 !== peg$FAILED) {
3776 s7 = peg$parseexpr();
3777 if (s7 !== peg$FAILED) {
3778 s6 = [s6, s7];
3779 s5 = s6;
3780 } else {
3781 peg$currPos = s5;
3782 s5 = peg$FAILED;
3783 }
3784 } else {
3785 peg$currPos = s5;
3786 s5 = peg$FAILED;
3787 }
3788 if (s5 === peg$FAILED) {
3789 s5 = null;
3790 }
3791 if (s5 !== peg$FAILED) {
3792 peg$savedPos = s3;
3793 s4 = peg$c235(s4, s5);
3794 s3 = s4;
3795 } else {
3796 peg$currPos = s3;
3797 s3 = peg$FAILED;
3798 }
3799 } else {
3800 peg$currPos = s3;
3801 s3 = peg$FAILED;
3802 }
3803 if (s3 === peg$FAILED) {
3804 s3 = peg$currPos;
3805 if (input.substr(peg$currPos, 9) === peg$c236) {
3806 s4 = peg$c236;
3807 peg$currPos += 9;
3808 } else {
3809 s4 = peg$FAILED;
3810 if (peg$silentFails === 0) { peg$fail(peg$c237); }
3811 }
3812 if (s4 !== peg$FAILED) {
3813 s5 = peg$parse__();
3814 if (s5 !== peg$FAILED) {
3815 s6 = peg$parsevar();
3816 if (s6 !== peg$FAILED) {
3817 peg$savedPos = s3;
3818 s4 = peg$c238(s4, s6);
3819 s3 = s4;
3820 } else {
3821 peg$currPos = s3;
3822 s3 = peg$FAILED;
3823 }
3824 } else {
3825 peg$currPos = s3;
3826 s3 = peg$FAILED;
3827 }
3828 } else {
3829 peg$currPos = s3;
3830 s3 = peg$FAILED;
3831 }
3832 if (s3 === peg$FAILED) {
3833 s3 = peg$currPos;
3834 if (input.substr(peg$currPos, 9) === peg$c239) {
3835 s4 = peg$c239;
3836 peg$currPos += 9;
3837 } else {
3838 s4 = peg$FAILED;
3839 if (peg$silentFails === 0) { peg$fail(peg$c240); }
3840 }
3841 if (s4 !== peg$FAILED) {
3842 s5 = peg$parse__();
3843 if (s5 !== peg$FAILED) {
3844 s6 = peg$parsevar();
3845 if (s6 !== peg$FAILED) {
3846 s7 = peg$parse__();
3847 if (s7 !== peg$FAILED) {
3848 s8 = peg$parseexpr();
3849 if (s8 !== peg$FAILED) {
3850 peg$savedPos = s3;
3851 s4 = peg$c241(s4, s6, s8);
3852 s3 = s4;
3853 } else {
3854 peg$currPos = s3;
3855 s3 = peg$FAILED;
3856 }
3857 } else {
3858 peg$currPos = s3;
3859 s3 = peg$FAILED;
3860 }
3861 } else {
3862 peg$currPos = s3;
3863 s3 = peg$FAILED;
3864 }
3865 } else {
3866 peg$currPos = s3;
3867 s3 = peg$FAILED;
3868 }
3869 } else {
3870 peg$currPos = s3;
3871 s3 = peg$FAILED;
3872 }
3873 if (s3 === peg$FAILED) {
3874 s3 = peg$currPos;
3875 s4 = peg$parselocal_type();
3876 if (s4 !== peg$FAILED) {
3877 if (input.charCodeAt(peg$currPos) === 46) {
3878 s5 = peg$c187;
3879 peg$currPos++;
3880 } else {
3881 s5 = peg$FAILED;
3882 if (peg$silentFails === 0) { peg$fail(peg$c188); }
3883 }
3884 if (s5 !== peg$FAILED) {
3885 if (input.substr(peg$currPos, 4) === peg$c242) {
3886 s6 = peg$c242;
3887 peg$currPos += 4;
3888 } else {
3889 s6 = peg$FAILED;
3890 if (peg$silentFails === 0) { peg$fail(peg$c243); }
3891 }
3892 if (s6 !== peg$FAILED) {
3893 s7 = peg$currPos;
3894 if (input.charCodeAt(peg$currPos) === 56) {
3895 s8 = peg$c244;
3896 peg$currPos++;
3897 } else {
3898 s8 = peg$FAILED;
3899 if (peg$silentFails === 0) { peg$fail(peg$c245); }
3900 }
3901 if (s8 === peg$FAILED) {
3902 if (input.substr(peg$currPos, 2) === peg$c246) {
3903 s8 = peg$c246;
3904 peg$currPos += 2;
3905 } else {
3906 s8 = peg$FAILED;
3907 if (peg$silentFails === 0) { peg$fail(peg$c247); }
3908 }
3909 if (s8 === peg$FAILED) {
3910 if (input.substr(peg$currPos, 2) === peg$c248) {
3911 s8 = peg$c248;
3912 peg$currPos += 2;
3913 } else {
3914 s8 = peg$FAILED;
3915 if (peg$silentFails === 0) { peg$fail(peg$c249); }
3916 }
3917 }
3918 }
3919 if (s8 !== peg$FAILED) {
3920 s9 = peg$currPos;
3921 if (input.charCodeAt(peg$currPos) === 95) {
3922 s10 = peg$c250;
3923 peg$currPos++;
3924 } else {
3925 s10 = peg$FAILED;
3926 if (peg$silentFails === 0) { peg$fail(peg$c251); }
3927 }
3928 if (s10 !== peg$FAILED) {
3929 s11 = peg$parsesign();
3930 if (s11 !== peg$FAILED) {
3931 s10 = [s10, s11];
3932 s9 = s10;
3933 } else {
3934 peg$currPos = s9;
3935 s9 = peg$FAILED;
3936 }
3937 } else {
3938 peg$currPos = s9;
3939 s9 = peg$FAILED;
3940 }
3941 if (s9 === peg$FAILED) {
3942 s9 = null;
3943 }
3944 if (s9 !== peg$FAILED) {
3945 s8 = [s8, s9];
3946 s7 = s8;
3947 } else {
3948 peg$currPos = s7;
3949 s7 = peg$FAILED;
3950 }
3951 } else {
3952 peg$currPos = s7;
3953 s7 = peg$FAILED;
3954 }
3955 if (s7 === peg$FAILED) {
3956 s7 = null;
3957 }
3958 if (s7 !== peg$FAILED) {
3959 s8 = peg$currPos;
3960 s9 = peg$parse__();
3961 if (s9 !== peg$FAILED) {
3962 if (input.substr(peg$currPos, 7) === peg$c252) {
3963 s10 = peg$c252;
3964 peg$currPos += 7;
3965 } else {
3966 s10 = peg$FAILED;
3967 if (peg$silentFails === 0) { peg$fail(peg$c253); }
3968 }
3969 if (s10 !== peg$FAILED) {
3970 s11 = peg$parseoffset();
3971 if (s11 !== peg$FAILED) {
3972 s9 = [s9, s10, s11];
3973 s8 = s9;
3974 } else {
3975 peg$currPos = s8;
3976 s8 = peg$FAILED;
3977 }
3978 } else {
3979 peg$currPos = s8;
3980 s8 = peg$FAILED;
3981 }
3982 } else {
3983 peg$currPos = s8;
3984 s8 = peg$FAILED;
3985 }
3986 if (s8 === peg$FAILED) {
3987 s8 = null;
3988 }
3989 if (s8 !== peg$FAILED) {
3990 s9 = peg$currPos;
3991 s10 = peg$parse__();
3992 if (s10 !== peg$FAILED) {
3993 if (input.substr(peg$currPos, 6) === peg$c254) {
3994 s11 = peg$c254;
3995 peg$currPos += 6;
3996 } else {
3997 s11 = peg$FAILED;
3998 if (peg$silentFails === 0) { peg$fail(peg$c255); }
3999 }
4000 if (s11 !== peg$FAILED) {
4001 s12 = peg$parsealign();
4002 if (s12 !== peg$FAILED) {
4003 s10 = [s10, s11, s12];
4004 s9 = s10;
4005 } else {
4006 peg$currPos = s9;
4007 s9 = peg$FAILED;
4008 }
4009 } else {
4010 peg$currPos = s9;
4011 s9 = peg$FAILED;
4012 }
4013 } else {
4014 peg$currPos = s9;
4015 s9 = peg$FAILED;
4016 }
4017 if (s9 === peg$FAILED) {
4018 s9 = null;
4019 }
4020 if (s9 !== peg$FAILED) {
4021 s10 = peg$parse__();
4022 if (s10 !== peg$FAILED) {
4023 s11 = peg$parseexpr();
4024 if (s11 !== peg$FAILED) {
4025 peg$savedPos = s3;
4026 s4 = peg$c256(s4, s6, s7, s8, s9, s11);
4027 s3 = s4;
4028 } else {
4029 peg$currPos = s3;
4030 s3 = peg$FAILED;
4031 }
4032 } else {
4033 peg$currPos = s3;
4034 s3 = peg$FAILED;
4035 }
4036 } else {
4037 peg$currPos = s3;
4038 s3 = peg$FAILED;
4039 }
4040 } else {
4041 peg$currPos = s3;
4042 s3 = peg$FAILED;
4043 }
4044 } else {
4045 peg$currPos = s3;
4046 s3 = peg$FAILED;
4047 }
4048 } else {
4049 peg$currPos = s3;
4050 s3 = peg$FAILED;
4051 }
4052 } else {
4053 peg$currPos = s3;
4054 s3 = peg$FAILED;
4055 }
4056 } else {
4057 peg$currPos = s3;
4058 s3 = peg$FAILED;
4059 }
4060 if (s3 === peg$FAILED) {
4061 s3 = peg$currPos;
4062 s4 = peg$parselocal_type();
4063 if (s4 !== peg$FAILED) {
4064 if (input.charCodeAt(peg$currPos) === 46) {
4065 s5 = peg$c187;
4066 peg$currPos++;
4067 } else {
4068 s5 = peg$FAILED;
4069 if (peg$silentFails === 0) { peg$fail(peg$c188); }
4070 }
4071 if (s5 !== peg$FAILED) {
4072 if (input.substr(peg$currPos, 5) === peg$c257) {
4073 s6 = peg$c257;
4074 peg$currPos += 5;
4075 } else {
4076 s6 = peg$FAILED;
4077 if (peg$silentFails === 0) { peg$fail(peg$c258); }
4078 }
4079 if (s6 !== peg$FAILED) {
4080 if (input.charCodeAt(peg$currPos) === 56) {
4081 s7 = peg$c244;
4082 peg$currPos++;
4083 } else {
4084 s7 = peg$FAILED;
4085 if (peg$silentFails === 0) { peg$fail(peg$c245); }
4086 }
4087 if (s7 === peg$FAILED) {
4088 if (input.substr(peg$currPos, 2) === peg$c246) {
4089 s7 = peg$c246;
4090 peg$currPos += 2;
4091 } else {
4092 s7 = peg$FAILED;
4093 if (peg$silentFails === 0) { peg$fail(peg$c247); }
4094 }
4095 if (s7 === peg$FAILED) {
4096 if (input.substr(peg$currPos, 2) === peg$c248) {
4097 s7 = peg$c248;
4098 peg$currPos += 2;
4099 } else {
4100 s7 = peg$FAILED;
4101 if (peg$silentFails === 0) { peg$fail(peg$c249); }
4102 }
4103 }
4104 }
4105 if (s7 === peg$FAILED) {
4106 s7 = null;
4107 }
4108 if (s7 !== peg$FAILED) {
4109 s8 = peg$currPos;
4110 s9 = peg$parse__();
4111 if (s9 !== peg$FAILED) {
4112 if (input.substr(peg$currPos, 7) === peg$c252) {
4113 s10 = peg$c252;
4114 peg$currPos += 7;
4115 } else {
4116 s10 = peg$FAILED;
4117 if (peg$silentFails === 0) { peg$fail(peg$c253); }
4118 }
4119 if (s10 !== peg$FAILED) {
4120 s11 = peg$parseoffset();
4121 if (s11 !== peg$FAILED) {
4122 s9 = [s9, s10, s11];
4123 s8 = s9;
4124 } else {
4125 peg$currPos = s8;
4126 s8 = peg$FAILED;
4127 }
4128 } else {
4129 peg$currPos = s8;
4130 s8 = peg$FAILED;
4131 }
4132 } else {
4133 peg$currPos = s8;
4134 s8 = peg$FAILED;
4135 }
4136 if (s8 === peg$FAILED) {
4137 s8 = null;
4138 }
4139 if (s8 !== peg$FAILED) {
4140 s9 = peg$currPos;
4141 s10 = peg$parse__();
4142 if (s10 !== peg$FAILED) {
4143 if (input.substr(peg$currPos, 6) === peg$c254) {
4144 s11 = peg$c254;
4145 peg$currPos += 6;
4146 } else {
4147 s11 = peg$FAILED;
4148 if (peg$silentFails === 0) { peg$fail(peg$c255); }
4149 }
4150 if (s11 !== peg$FAILED) {
4151 s12 = peg$parsealign();
4152 if (s12 !== peg$FAILED) {
4153 s10 = [s10, s11, s12];
4154 s9 = s10;
4155 } else {
4156 peg$currPos = s9;
4157 s9 = peg$FAILED;
4158 }
4159 } else {
4160 peg$currPos = s9;
4161 s9 = peg$FAILED;
4162 }
4163 } else {
4164 peg$currPos = s9;
4165 s9 = peg$FAILED;
4166 }
4167 if (s9 === peg$FAILED) {
4168 s9 = null;
4169 }
4170 if (s9 !== peg$FAILED) {
4171 s10 = peg$parse__();
4172 if (s10 !== peg$FAILED) {
4173 s11 = peg$parseexpr();
4174 if (s11 !== peg$FAILED) {
4175 s12 = peg$parse__();
4176 if (s12 !== peg$FAILED) {
4177 s13 = peg$parseexpr();
4178 if (s13 !== peg$FAILED) {
4179 peg$savedPos = s3;
4180 s4 = peg$c259(s4, s6, s7, s8, s9, s11, s13);
4181 s3 = s4;
4182 } else {
4183 peg$currPos = s3;
4184 s3 = peg$FAILED;
4185 }
4186 } else {
4187 peg$currPos = s3;
4188 s3 = peg$FAILED;
4189 }
4190 } else {
4191 peg$currPos = s3;
4192 s3 = peg$FAILED;
4193 }
4194 } else {
4195 peg$currPos = s3;
4196 s3 = peg$FAILED;
4197 }
4198 } else {
4199 peg$currPos = s3;
4200 s3 = peg$FAILED;
4201 }
4202 } else {
4203 peg$currPos = s3;
4204 s3 = peg$FAILED;
4205 }
4206 } else {
4207 peg$currPos = s3;
4208 s3 = peg$FAILED;
4209 }
4210 } else {
4211 peg$currPos = s3;
4212 s3 = peg$FAILED;
4213 }
4214 } else {
4215 peg$currPos = s3;
4216 s3 = peg$FAILED;
4217 }
4218 } else {
4219 peg$currPos = s3;
4220 s3 = peg$FAILED;
4221 }
4222 if (s3 === peg$FAILED) {
4223 s3 = peg$currPos;
4224 if (input.substr(peg$currPos, 6) === peg$c260) {
4225 s4 = peg$c260;
4226 peg$currPos += 6;
4227 } else {
4228 s4 = peg$FAILED;
4229 if (peg$silentFails === 0) { peg$fail(peg$c261); }
4230 }
4231 if (s4 !== peg$FAILED) {
4232 s5 = peg$parse__();
4233 if (s5 !== peg$FAILED) {
4234 s6 = peg$parseexpr();
4235 if (s6 !== peg$FAILED) {
4236 s7 = peg$parse__();
4237 if (s7 !== peg$FAILED) {
4238 s8 = peg$parseexpr();
4239 if (s8 !== peg$FAILED) {
4240 s9 = peg$parse__();
4241 if (s9 !== peg$FAILED) {
4242 s10 = peg$parseexpr();
4243 if (s10 !== peg$FAILED) {
4244 peg$savedPos = s3;
4245 s4 = peg$c262(s4, s6, s8, s10);
4246 s3 = s4;
4247 } else {
4248 peg$currPos = s3;
4249 s3 = peg$FAILED;
4250 }
4251 } else {
4252 peg$currPos = s3;
4253 s3 = peg$FAILED;
4254 }
4255 } else {
4256 peg$currPos = s3;
4257 s3 = peg$FAILED;
4258 }
4259 } else {
4260 peg$currPos = s3;
4261 s3 = peg$FAILED;
4262 }
4263 } else {
4264 peg$currPos = s3;
4265 s3 = peg$FAILED;
4266 }
4267 } else {
4268 peg$currPos = s3;
4269 s3 = peg$FAILED;
4270 }
4271 } else {
4272 peg$currPos = s3;
4273 s3 = peg$FAILED;
4274 }
4275 if (s3 === peg$FAILED) {
4276 s3 = peg$currPos;
4277 s4 = peg$parselocal_type();
4278 if (s4 !== peg$FAILED) {
4279 if (input.charCodeAt(peg$currPos) === 46) {
4280 s5 = peg$c187;
4281 peg$currPos++;
4282 } else {
4283 s5 = peg$FAILED;
4284 if (peg$silentFails === 0) { peg$fail(peg$c188); }
4285 }
4286 if (s5 !== peg$FAILED) {
4287 s6 = peg$parsebinop();
4288 if (s6 !== peg$FAILED) {
4289 s7 = peg$parse__();
4290 if (s7 !== peg$FAILED) {
4291 s8 = peg$parseexpr();
4292 if (s8 !== peg$FAILED) {
4293 s9 = peg$parse__();
4294 if (s9 !== peg$FAILED) {
4295 s10 = peg$parseexpr();
4296 if (s10 !== peg$FAILED) {
4297 peg$savedPos = s3;
4298 s4 = peg$c263(s4, s6, s8, s10);
4299 s3 = s4;
4300 } else {
4301 peg$currPos = s3;
4302 s3 = peg$FAILED;
4303 }
4304 } else {
4305 peg$currPos = s3;
4306 s3 = peg$FAILED;
4307 }
4308 } else {
4309 peg$currPos = s3;
4310 s3 = peg$FAILED;
4311 }
4312 } else {
4313 peg$currPos = s3;
4314 s3 = peg$FAILED;
4315 }
4316 } else {
4317 peg$currPos = s3;
4318 s3 = peg$FAILED;
4319 }
4320 } else {
4321 peg$currPos = s3;
4322 s3 = peg$FAILED;
4323 }
4324 } else {
4325 peg$currPos = s3;
4326 s3 = peg$FAILED;
4327 }
4328 if (s3 === peg$FAILED) {
4329 s3 = peg$currPos;
4330 s4 = peg$parselocal_type();
4331 if (s4 !== peg$FAILED) {
4332 if (input.charCodeAt(peg$currPos) === 46) {
4333 s5 = peg$c187;
4334 peg$currPos++;
4335 } else {
4336 s5 = peg$FAILED;
4337 if (peg$silentFails === 0) { peg$fail(peg$c188); }
4338 }
4339 if (s5 !== peg$FAILED) {
4340 s6 = peg$parserelop();
4341 if (s6 !== peg$FAILED) {
4342 s7 = peg$parse__();
4343 if (s7 !== peg$FAILED) {
4344 s8 = peg$parseexpr();
4345 if (s8 !== peg$FAILED) {
4346 s9 = peg$parse__();
4347 if (s9 !== peg$FAILED) {
4348 s10 = peg$parseexpr();
4349 if (s10 !== peg$FAILED) {
4350 peg$savedPos = s3;
4351 s4 = peg$c264(s4, s6, s8, s10);
4352 s3 = s4;
4353 } else {
4354 peg$currPos = s3;
4355 s3 = peg$FAILED;
4356 }
4357 } else {
4358 peg$currPos = s3;
4359 s3 = peg$FAILED;
4360 }
4361 } else {
4362 peg$currPos = s3;
4363 s3 = peg$FAILED;
4364 }
4365 } else {
4366 peg$currPos = s3;
4367 s3 = peg$FAILED;
4368 }
4369 } else {
4370 peg$currPos = s3;
4371 s3 = peg$FAILED;
4372 }
4373 } else {
4374 peg$currPos = s3;
4375 s3 = peg$FAILED;
4376 }
4377 } else {
4378 peg$currPos = s3;
4379 s3 = peg$FAILED;
4380 }
4381 if (s3 === peg$FAILED) {
4382 s3 = peg$currPos;
4383 s4 = peg$parselocal_type();
4384 if (s4 !== peg$FAILED) {
4385 if (input.charCodeAt(peg$currPos) === 46) {
4386 s5 = peg$c187;
4387 peg$currPos++;
4388 } else {
4389 s5 = peg$FAILED;
4390 if (peg$silentFails === 0) { peg$fail(peg$c188); }
4391 }
4392 if (s5 !== peg$FAILED) {
4393 s6 = peg$parsecvtop();
4394 if (s6 !== peg$FAILED) {
4395 if (input.charCodeAt(peg$currPos) === 47) {
4396 s7 = peg$c265;
4397 peg$currPos++;
4398 } else {
4399 s7 = peg$FAILED;
4400 if (peg$silentFails === 0) { peg$fail(peg$c266); }
4401 }
4402 if (s7 !== peg$FAILED) {
4403 s8 = peg$parselocal_type();
4404 if (s8 !== peg$FAILED) {
4405 s9 = peg$parse__();
4406 if (s9 !== peg$FAILED) {
4407 s10 = peg$parseexpr();
4408 if (s10 !== peg$FAILED) {
4409 peg$savedPos = s3;
4410 s4 = peg$c267(s4, s6, s8, s10);
4411 s3 = s4;
4412 } else {
4413 peg$currPos = s3;
4414 s3 = peg$FAILED;
4415 }
4416 } else {
4417 peg$currPos = s3;
4418 s3 = peg$FAILED;
4419 }
4420 } else {
4421 peg$currPos = s3;
4422 s3 = peg$FAILED;
4423 }
4424 } else {
4425 peg$currPos = s3;
4426 s3 = peg$FAILED;
4427 }
4428 } else {
4429 peg$currPos = s3;
4430 s3 = peg$FAILED;
4431 }
4432 } else {
4433 peg$currPos = s3;
4434 s3 = peg$FAILED;
4435 }
4436 } else {
4437 peg$currPos = s3;
4438 s3 = peg$FAILED;
4439 }
4440 if (s3 === peg$FAILED) {
4441 s3 = peg$currPos;
4442 s4 = peg$parselocal_type();
4443 if (s4 !== peg$FAILED) {
4444 if (input.charCodeAt(peg$currPos) === 46) {
4445 s5 = peg$c187;
4446 peg$currPos++;
4447 } else {
4448 s5 = peg$FAILED;
4449 if (peg$silentFails === 0) { peg$fail(peg$c188); }
4450 }
4451 if (s5 !== peg$FAILED) {
4452 s6 = peg$parseunop();
4453 if (s6 !== peg$FAILED) {
4454 s7 = peg$parse__();
4455 if (s7 !== peg$FAILED) {
4456 s8 = peg$parseexpr();
4457 if (s8 !== peg$FAILED) {
4458 peg$savedPos = s3;
4459 s4 = peg$c268(s4, s6, s8);
4460 s3 = s4;
4461 } else {
4462 peg$currPos = s3;
4463 s3 = peg$FAILED;
4464 }
4465 } else {
4466 peg$currPos = s3;
4467 s3 = peg$FAILED;
4468 }
4469 } else {
4470 peg$currPos = s3;
4471 s3 = peg$FAILED;
4472 }
4473 } else {
4474 peg$currPos = s3;
4475 s3 = peg$FAILED;
4476 }
4477 } else {
4478 peg$currPos = s3;
4479 s3 = peg$FAILED;
4480 }
4481 if (s3 === peg$FAILED) {
4482 s3 = peg$currPos;
4483 if (input.substr(peg$currPos, 3) === peg$c269) {
4484 s4 = peg$c269;
4485 peg$currPos += 3;
4486 } else {
4487 s4 = peg$FAILED;
4488 if (peg$silentFails === 0) { peg$fail(peg$c270); }
4489 }
4490 if (s4 === peg$FAILED) {
4491 if (input.substr(peg$currPos, 9) === peg$c271) {
4492 s4 = peg$c271;
4493 peg$currPos += 9;
4494 } else {
4495 s4 = peg$FAILED;
4496 if (peg$silentFails === 0) { peg$fail(peg$c272); }
4497 }
4498 if (s4 === peg$FAILED) {
4499 if (input.substr(peg$currPos, 11) === peg$c273) {
4500 s4 = peg$c273;
4501 peg$currPos += 11;
4502 } else {
4503 s4 = peg$FAILED;
4504 if (peg$silentFails === 0) { peg$fail(peg$c274); }
4505 }
4506 if (s4 === peg$FAILED) {
4507 if (input.substr(peg$currPos, 14) === peg$c275) {
4508 s4 = peg$c275;
4509 peg$currPos += 14;
4510 } else {
4511 s4 = peg$FAILED;
4512 if (peg$silentFails === 0) { peg$fail(peg$c276); }
4513 }
4514 }
4515 }
4516 }
4517 if (s4 !== peg$FAILED) {
4518 peg$savedPos = s3;
4519 s4 = peg$c277(s4);
4520 }
4521 s3 = s4;
4522 if (s3 === peg$FAILED) {
4523 s3 = peg$currPos;
4524 if (input.substr(peg$currPos, 13) === peg$c278) {
4525 s4 = peg$c278;
4526 peg$currPos += 13;
4527 } else {
4528 s4 = peg$FAILED;
4529 if (peg$silentFails === 0) { peg$fail(peg$c279); }
4530 }
4531 if (s4 === peg$FAILED) {
4532 if (input.substr(peg$currPos, 11) === peg$c280) {
4533 s4 = peg$c280;
4534 peg$currPos += 11;
4535 } else {
4536 s4 = peg$FAILED;
4537 if (peg$silentFails === 0) { peg$fail(peg$c281); }
4538 }
4539 }
4540 if (s4 !== peg$FAILED) {
4541 s5 = peg$parse__();
4542 if (s5 !== peg$FAILED) {
4543 s6 = peg$parseexpr();
4544 if (s6 !== peg$FAILED) {
4545 peg$savedPos = s3;
4546 s4 = peg$c282(s4, s6);
4547 s3 = s4;
4548 } else {
4549 peg$currPos = s3;
4550 s3 = peg$FAILED;
4551 }
4552 } else {
4553 peg$currPos = s3;
4554 s3 = peg$FAILED;
4555 }
4556 } else {
4557 peg$currPos = s3;
4558 s3 = peg$FAILED;
4559 }
4560 }
4561 }
4562 }
4563 }
4564 }
4565 }
4566 }
4567 }
4568 }
4569 }
4570 }
4571 }
4572 }
4573 }
4574 }
4575 }
4576 }
4577 }
4578 }
4579 }
4580 }
4581 }
4582 }
4583 }
4584 }
4585 }
4586 if (s3 !== peg$FAILED) {
4587 s4 = peg$parse__();
4588 if (s4 !== peg$FAILED) {
4589 if (input.charCodeAt(peg$currPos) === 41) {
4590 s5 = peg$c183;
4591 peg$currPos++;
4592 } else {
4593 s5 = peg$FAILED;
4594 if (peg$silentFails === 0) { peg$fail(peg$c184); }
4595 }
4596 if (s5 !== peg$FAILED) {
4597 peg$savedPos = s0;
4598 s1 = peg$c283(s3);
4599 s0 = s1;
4600 } else {
4601 peg$currPos = s0;
4602 s0 = peg$FAILED;
4603 }
4604 } else {
4605 peg$currPos = s0;
4606 s0 = peg$FAILED;
4607 }
4608 } else {
4609 peg$currPos = s0;
4610 s0 = peg$FAILED;
4611 }
4612 } else {
4613 peg$currPos = s0;
4614 s0 = peg$FAILED;
4615 }
4616 } else {
4617 peg$currPos = s0;
4618 s0 = peg$FAILED;
4619 }
4620
4621 return s0;
4622 }
4623
4624 function peg$parseliteral() {
4625 var s0, s1, s2, s3, s4, s5;
4626
4627 s0 = peg$currPos;
4628 if (peg$c284.test(input.charAt(peg$currPos))) {
4629 s1 = input.charAt(peg$currPos);
4630 peg$currPos++;
4631 } else {
4632 s1 = peg$FAILED;
4633 if (peg$silentFails === 0) { peg$fail(peg$c285); }
4634 }
4635 if (s1 !== peg$FAILED) {
4636 s2 = [];
4637 s3 = peg$currPos;
4638 s4 = peg$currPos;
4639 peg$silentFails++;
4640 if (peg$c284.test(input.charAt(peg$currPos))) {
4641 s5 = input.charAt(peg$currPos);
4642 peg$currPos++;
4643 } else {
4644 s5 = peg$FAILED;
4645 if (peg$silentFails === 0) { peg$fail(peg$c285); }
4646 }
4647 peg$silentFails--;
4648 if (s5 === peg$FAILED) {
4649 s4 = void 0;
4650 } else {
4651 peg$currPos = s4;
4652 s4 = peg$FAILED;
4653 }
4654 if (s4 !== peg$FAILED) {
4655 if (input.length > peg$currPos) {
4656 s5 = input.charAt(peg$currPos);
4657 peg$currPos++;
4658 } else {
4659 s5 = peg$FAILED;
4660 if (peg$silentFails === 0) { peg$fail(peg$c21); }
4661 }
4662 if (s5 !== peg$FAILED) {
4663 s4 = [s4, s5];
4664 s3 = s4;
4665 } else {
4666 peg$currPos = s3;
4667 s3 = peg$FAILED;
4668 }
4669 } else {
4670 peg$currPos = s3;
4671 s3 = peg$FAILED;
4672 }
4673 while (s3 !== peg$FAILED) {
4674 s2.push(s3);
4675 s3 = peg$currPos;
4676 s4 = peg$currPos;
4677 peg$silentFails++;
4678 if (peg$c284.test(input.charAt(peg$currPos))) {
4679 s5 = input.charAt(peg$currPos);
4680 peg$currPos++;
4681 } else {
4682 s5 = peg$FAILED;
4683 if (peg$silentFails === 0) { peg$fail(peg$c285); }
4684 }
4685 peg$silentFails--;
4686 if (s5 === peg$FAILED) {
4687 s4 = void 0;
4688 } else {
4689 peg$currPos = s4;
4690 s4 = peg$FAILED;
4691 }
4692 if (s4 !== peg$FAILED) {
4693 if (input.length > peg$currPos) {
4694 s5 = input.charAt(peg$currPos);
4695 peg$currPos++;
4696 } else {
4697 s5 = peg$FAILED;
4698 if (peg$silentFails === 0) { peg$fail(peg$c21); }
4699 }
4700 if (s5 !== peg$FAILED) {
4701 s4 = [s4, s5];
4702 s3 = s4;
4703 } else {
4704 peg$currPos = s3;
4705 s3 = peg$FAILED;
4706 }
4707 } else {
4708 peg$currPos = s3;
4709 s3 = peg$FAILED;
4710 }
4711 }
4712 if (s2 !== peg$FAILED) {
4713 if (peg$c284.test(input.charAt(peg$currPos))) {
4714 s3 = input.charAt(peg$currPos);
4715 peg$currPos++;
4716 } else {
4717 s3 = peg$FAILED;
4718 if (peg$silentFails === 0) { peg$fail(peg$c285); }
4719 }
4720 if (s3 !== peg$FAILED) {
4721 peg$savedPos = s0;
4722 s1 = peg$c286(s2);
4723 s0 = s1;
4724 } else {
4725 peg$currPos = s0;
4726 s0 = peg$FAILED;
4727 }
4728 } else {
4729 peg$currPos = s0;
4730 s0 = peg$FAILED;
4731 }
4732 } else {
4733 peg$currPos = s0;
4734 s0 = peg$FAILED;
4735 }
4736
4737 return s0;
4738 }
4739
4740 function peg$parseparam() {
4741 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
4742
4743 s0 = peg$currPos;
4744 if (input.charCodeAt(peg$currPos) === 40) {
4745 s1 = peg$c177;
4746 peg$currPos++;
4747 } else {
4748 s1 = peg$FAILED;
4749 if (peg$silentFails === 0) { peg$fail(peg$c178); }
4750 }
4751 if (s1 !== peg$FAILED) {
4752 s2 = peg$parse__();
4753 if (s2 !== peg$FAILED) {
4754 if (input.substr(peg$currPos, 5) === peg$c287) {
4755 s3 = peg$c287;
4756 peg$currPos += 5;
4757 } else {
4758 s3 = peg$FAILED;
4759 if (peg$silentFails === 0) { peg$fail(peg$c288); }
4760 }
4761 if (s3 !== peg$FAILED) {
4762 s4 = [];
4763 s5 = peg$currPos;
4764 s6 = peg$parse__();
4765 if (s6 !== peg$FAILED) {
4766 s7 = peg$parselocal_type();
4767 if (s7 !== peg$FAILED) {
4768 s6 = [s6, s7];
4769 s5 = s6;
4770 } else {
4771 peg$currPos = s5;
4772 s5 = peg$FAILED;
4773 }
4774 } else {
4775 peg$currPos = s5;
4776 s5 = peg$FAILED;
4777 }
4778 while (s5 !== peg$FAILED) {
4779 s4.push(s5);
4780 s5 = peg$currPos;
4781 s6 = peg$parse__();
4782 if (s6 !== peg$FAILED) {
4783 s7 = peg$parselocal_type();
4784 if (s7 !== peg$FAILED) {
4785 s6 = [s6, s7];
4786 s5 = s6;
4787 } else {
4788 peg$currPos = s5;
4789 s5 = peg$FAILED;
4790 }
4791 } else {
4792 peg$currPos = s5;
4793 s5 = peg$FAILED;
4794 }
4795 }
4796 if (s4 !== peg$FAILED) {
4797 s5 = peg$parse__();
4798 if (s5 !== peg$FAILED) {
4799 if (input.charCodeAt(peg$currPos) === 41) {
4800 s6 = peg$c183;
4801 peg$currPos++;
4802 } else {
4803 s6 = peg$FAILED;
4804 if (peg$silentFails === 0) { peg$fail(peg$c184); }
4805 }
4806 if (s6 !== peg$FAILED) {
4807 peg$savedPos = s0;
4808 s1 = peg$c289(s3, s4);
4809 s0 = s1;
4810 } else {
4811 peg$currPos = s0;
4812 s0 = peg$FAILED;
4813 }
4814 } else {
4815 peg$currPos = s0;
4816 s0 = peg$FAILED;
4817 }
4818 } else {
4819 peg$currPos = s0;
4820 s0 = peg$FAILED;
4821 }
4822 } else {
4823 peg$currPos = s0;
4824 s0 = peg$FAILED;
4825 }
4826 } else {
4827 peg$currPos = s0;
4828 s0 = peg$FAILED;
4829 }
4830 } else {
4831 peg$currPos = s0;
4832 s0 = peg$FAILED;
4833 }
4834 if (s0 === peg$FAILED) {
4835 s0 = peg$currPos;
4836 if (input.charCodeAt(peg$currPos) === 40) {
4837 s1 = peg$c177;
4838 peg$currPos++;
4839 } else {
4840 s1 = peg$FAILED;
4841 if (peg$silentFails === 0) { peg$fail(peg$c178); }
4842 }
4843 if (s1 !== peg$FAILED) {
4844 s2 = peg$parse__();
4845 if (s2 !== peg$FAILED) {
4846 if (input.substr(peg$currPos, 5) === peg$c287) {
4847 s3 = peg$c287;
4848 peg$currPos += 5;
4849 } else {
4850 s3 = peg$FAILED;
4851 if (peg$silentFails === 0) { peg$fail(peg$c288); }
4852 }
4853 if (s3 !== peg$FAILED) {
4854 s4 = peg$parse__();
4855 if (s4 !== peg$FAILED) {
4856 if (input.charCodeAt(peg$currPos) === 36) {
4857 s5 = peg$c174;
4858 peg$currPos++;
4859 } else {
4860 s5 = peg$FAILED;
4861 if (peg$silentFails === 0) { peg$fail(peg$c175); }
4862 }
4863 if (s5 !== peg$FAILED) {
4864 s6 = peg$parsename();
4865 if (s6 !== peg$FAILED) {
4866 s7 = peg$parse__();
4867 if (s7 !== peg$FAILED) {
4868 s8 = peg$parselocal_type();
4869 if (s8 !== peg$FAILED) {
4870 s9 = peg$parse__();
4871 if (s9 !== peg$FAILED) {
4872 if (input.charCodeAt(peg$currPos) === 41) {
4873 s10 = peg$c183;
4874 peg$currPos++;
4875 } else {
4876 s10 = peg$FAILED;
4877 if (peg$silentFails === 0) { peg$fail(peg$c184); }
4878 }
4879 if (s10 !== peg$FAILED) {
4880 peg$savedPos = s0;
4881 s1 = peg$c290(s3, s6, s8);
4882 s0 = s1;
4883 } else {
4884 peg$currPos = s0;
4885 s0 = peg$FAILED;
4886 }
4887 } else {
4888 peg$currPos = s0;
4889 s0 = peg$FAILED;
4890 }
4891 } else {
4892 peg$currPos = s0;
4893 s0 = peg$FAILED;
4894 }
4895 } else {
4896 peg$currPos = s0;
4897 s0 = peg$FAILED;
4898 }
4899 } else {
4900 peg$currPos = s0;
4901 s0 = peg$FAILED;
4902 }
4903 } else {
4904 peg$currPos = s0;
4905 s0 = peg$FAILED;
4906 }
4907 } else {
4908 peg$currPos = s0;
4909 s0 = peg$FAILED;
4910 }
4911 } else {
4912 peg$currPos = s0;
4913 s0 = peg$FAILED;
4914 }
4915 } else {
4916 peg$currPos = s0;
4917 s0 = peg$FAILED;
4918 }
4919 } else {
4920 peg$currPos = s0;
4921 s0 = peg$FAILED;
4922 }
4923 }
4924
4925 return s0;
4926 }
4927
4928 function peg$parselocal() {
4929 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
4930
4931 s0 = peg$currPos;
4932 if (input.charCodeAt(peg$currPos) === 40) {
4933 s1 = peg$c177;
4934 peg$currPos++;
4935 } else {
4936 s1 = peg$FAILED;
4937 if (peg$silentFails === 0) { peg$fail(peg$c178); }
4938 }
4939 if (s1 !== peg$FAILED) {
4940 s2 = peg$parse__();
4941 if (s2 !== peg$FAILED) {
4942 if (input.substr(peg$currPos, 5) === peg$c291) {
4943 s3 = peg$c291;
4944 peg$currPos += 5;
4945 } else {
4946 s3 = peg$FAILED;
4947 if (peg$silentFails === 0) { peg$fail(peg$c292); }
4948 }
4949 if (s3 !== peg$FAILED) {
4950 s4 = [];
4951 s5 = peg$currPos;
4952 s6 = peg$parse__();
4953 if (s6 !== peg$FAILED) {
4954 s7 = peg$parselocal_type();
4955 if (s7 !== peg$FAILED) {
4956 s6 = [s6, s7];
4957 s5 = s6;
4958 } else {
4959 peg$currPos = s5;
4960 s5 = peg$FAILED;
4961 }
4962 } else {
4963 peg$currPos = s5;
4964 s5 = peg$FAILED;
4965 }
4966 while (s5 !== peg$FAILED) {
4967 s4.push(s5);
4968 s5 = peg$currPos;
4969 s6 = peg$parse__();
4970 if (s6 !== peg$FAILED) {
4971 s7 = peg$parselocal_type();
4972 if (s7 !== peg$FAILED) {
4973 s6 = [s6, s7];
4974 s5 = s6;
4975 } else {
4976 peg$currPos = s5;
4977 s5 = peg$FAILED;
4978 }
4979 } else {
4980 peg$currPos = s5;
4981 s5 = peg$FAILED;
4982 }
4983 }
4984 if (s4 !== peg$FAILED) {
4985 s5 = peg$parse__();
4986 if (s5 !== peg$FAILED) {
4987 if (input.charCodeAt(peg$currPos) === 41) {
4988 s6 = peg$c183;
4989 peg$currPos++;
4990 } else {
4991 s6 = peg$FAILED;
4992 if (peg$silentFails === 0) { peg$fail(peg$c184); }
4993 }
4994 if (s6 !== peg$FAILED) {
4995 peg$savedPos = s0;
4996 s1 = peg$c289(s3, s4);
4997 s0 = s1;
4998 } else {
4999 peg$currPos = s0;
5000 s0 = peg$FAILED;
5001 }
5002 } else {
5003 peg$currPos = s0;
5004 s0 = peg$FAILED;
5005 }
5006 } else {
5007 peg$currPos = s0;
5008 s0 = peg$FAILED;
5009 }
5010 } else {
5011 peg$currPos = s0;
5012 s0 = peg$FAILED;
5013 }
5014 } else {
5015 peg$currPos = s0;
5016 s0 = peg$FAILED;
5017 }
5018 } else {
5019 peg$currPos = s0;
5020 s0 = peg$FAILED;
5021 }
5022 if (s0 === peg$FAILED) {
5023 s0 = peg$currPos;
5024 if (input.charCodeAt(peg$currPos) === 40) {
5025 s1 = peg$c177;
5026 peg$currPos++;
5027 } else {
5028 s1 = peg$FAILED;
5029 if (peg$silentFails === 0) { peg$fail(peg$c178); }
5030 }
5031 if (s1 !== peg$FAILED) {
5032 s2 = peg$parse__();
5033 if (s2 !== peg$FAILED) {
5034 if (input.substr(peg$currPos, 5) === peg$c291) {
5035 s3 = peg$c291;
5036 peg$currPos += 5;
5037 } else {
5038 s3 = peg$FAILED;
5039 if (peg$silentFails === 0) { peg$fail(peg$c292); }
5040 }
5041 if (s3 !== peg$FAILED) {
5042 s4 = peg$parse__();
5043 if (s4 !== peg$FAILED) {
5044 if (input.charCodeAt(peg$currPos) === 36) {
5045 s5 = peg$c174;
5046 peg$currPos++;
5047 } else {
5048 s5 = peg$FAILED;
5049 if (peg$silentFails === 0) { peg$fail(peg$c175); }
5050 }
5051 if (s5 !== peg$FAILED) {
5052 s6 = peg$parsename();
5053 if (s6 !== peg$FAILED) {
5054 s7 = peg$parse__();
5055 if (s7 !== peg$FAILED) {
5056 s8 = peg$parselocal_type();
5057 if (s8 !== peg$FAILED) {
5058 s9 = peg$parse__();
5059 if (s9 !== peg$FAILED) {
5060 if (input.charCodeAt(peg$currPos) === 41) {
5061 s10 = peg$c183;
5062 peg$currPos++;
5063 } else {
5064 s10 = peg$FAILED;
5065 if (peg$silentFails === 0) { peg$fail(peg$c184); }
5066 }
5067 if (s10 !== peg$FAILED) {
5068 peg$savedPos = s0;
5069 s1 = peg$c290(s3, s6, s8);
5070 s0 = s1;
5071 } else {
5072 peg$currPos = s0;
5073 s0 = peg$FAILED;
5074 }
5075 } else {
5076 peg$currPos = s0;
5077 s0 = peg$FAILED;
5078 }
5079 } else {
5080 peg$currPos = s0;
5081 s0 = peg$FAILED;
5082 }
5083 } else {
5084 peg$currPos = s0;
5085 s0 = peg$FAILED;
5086 }
5087 } else {
5088 peg$currPos = s0;
5089 s0 = peg$FAILED;
5090 }
5091 } else {
5092 peg$currPos = s0;
5093 s0 = peg$FAILED;
5094 }
5095 } else {
5096 peg$currPos = s0;
5097 s0 = peg$FAILED;
5098 }
5099 } else {
5100 peg$currPos = s0;
5101 s0 = peg$FAILED;
5102 }
5103 } else {
5104 peg$currPos = s0;
5105 s0 = peg$FAILED;
5106 }
5107 } else {
5108 peg$currPos = s0;
5109 s0 = peg$FAILED;
5110 }
5111 }
5112
5113 return s0;
5114 }
5115
5116 function peg$parseresult() {
5117 var s0, s1, s2, s3, s4, s5, s6, s7;
5118
5119 s0 = peg$currPos;
5120 if (input.charCodeAt(peg$currPos) === 40) {
5121 s1 = peg$c177;
5122 peg$currPos++;
5123 } else {
5124 s1 = peg$FAILED;
5125 if (peg$silentFails === 0) { peg$fail(peg$c178); }
5126 }
5127 if (s1 !== peg$FAILED) {
5128 s2 = peg$parse__();
5129 if (s2 !== peg$FAILED) {
5130 if (input.substr(peg$currPos, 6) === peg$c293) {
5131 s3 = peg$c293;
5132 peg$currPos += 6;
5133 } else {
5134 s3 = peg$FAILED;
5135 if (peg$silentFails === 0) { peg$fail(peg$c294); }
5136 }
5137 if (s3 !== peg$FAILED) {
5138 s4 = peg$parse__();
5139 if (s4 !== peg$FAILED) {
5140 s5 = peg$parselocal_type();
5141 if (s5 !== peg$FAILED) {
5142 s6 = peg$parse__();
5143 if (s6 !== peg$FAILED) {
5144 if (input.charCodeAt(peg$currPos) === 41) {
5145 s7 = peg$c183;
5146 peg$currPos++;
5147 } else {
5148 s7 = peg$FAILED;
5149 if (peg$silentFails === 0) { peg$fail(peg$c184); }
5150 }
5151 if (s7 !== peg$FAILED) {
5152 peg$savedPos = s0;
5153 s1 = peg$c295(s3, s5);
5154 s0 = s1;
5155 } else {
5156 peg$currPos = s0;
5157 s0 = peg$FAILED;
5158 }
5159 } else {
5160 peg$currPos = s0;
5161 s0 = peg$FAILED;
5162 }
5163 } else {
5164 peg$currPos = s0;
5165 s0 = peg$FAILED;
5166 }
5167 } else {
5168 peg$currPos = s0;
5169 s0 = peg$FAILED;
5170 }
5171 } else {
5172 peg$currPos = s0;
5173 s0 = peg$FAILED;
5174 }
5175 } else {
5176 peg$currPos = s0;
5177 s0 = peg$FAILED;
5178 }
5179 } else {
5180 peg$currPos = s0;
5181 s0 = peg$FAILED;
5182 }
5183
5184 return s0;
5185 }
5186
5187 function peg$parsesegment() {
5188 var s0, s1, s2, s3, s4, s5;
5189
5190 s0 = peg$currPos;
5191 if (input.substr(peg$currPos, 7) === peg$c296) {
5192 s1 = peg$c296;
5193 peg$currPos += 7;
5194 } else {
5195 s1 = peg$FAILED;
5196 if (peg$silentFails === 0) { peg$fail(peg$c297); }
5197 }
5198 if (s1 !== peg$FAILED) {
5199 s2 = peg$parse__();
5200 if (s2 !== peg$FAILED) {
5201 s3 = peg$parseint();
5202 if (s3 !== peg$FAILED) {
5203 s4 = peg$parse__();
5204 if (s4 !== peg$FAILED) {
5205 s5 = peg$parseliteral();
5206 if (s5 !== peg$FAILED) {
5207 peg$savedPos = s0;
5208 s1 = peg$c298(s1, s3, s5);
5209 s0 = s1;
5210 } else {
5211 peg$currPos = s0;
5212 s0 = peg$FAILED;
5213 }
5214 } else {
5215 peg$currPos = s0;
5216 s0 = peg$FAILED;
5217 }
5218 } else {
5219 peg$currPos = s0;
5220 s0 = peg$FAILED;
5221 }
5222 } else {
5223 peg$currPos = s0;
5224 s0 = peg$FAILED;
5225 }
5226 } else {
5227 peg$currPos = s0;
5228 s0 = peg$FAILED;
5229 }
5230
5231 return s0;
5232 }
5233
5234 function peg$parsefunc_type() {
5235 var s0, s1, s2, s3, s4, s5, s6, s7;
5236
5237 s0 = peg$currPos;
5238 if (input.charCodeAt(peg$currPos) === 40) {
5239 s1 = peg$c177;
5240 peg$currPos++;
5241 } else {
5242 s1 = peg$FAILED;
5243 if (peg$silentFails === 0) { peg$fail(peg$c178); }
5244 }
5245 if (s1 !== peg$FAILED) {
5246 s2 = peg$parse__();
5247 if (s2 !== peg$FAILED) {
5248 if (input.substr(peg$currPos, 4) === peg$c299) {
5249 s3 = peg$c299;
5250 peg$currPos += 4;
5251 } else {
5252 s3 = peg$FAILED;
5253 if (peg$silentFails === 0) { peg$fail(peg$c300); }
5254 }
5255 if (s3 !== peg$FAILED) {
5256 s4 = peg$parse__();
5257 if (s4 !== peg$FAILED) {
5258 s5 = peg$parsevar();
5259 if (s5 !== peg$FAILED) {
5260 s6 = peg$parse__();
5261 if (s6 !== peg$FAILED) {
5262 if (input.charCodeAt(peg$currPos) === 41) {
5263 s7 = peg$c183;
5264 peg$currPos++;
5265 } else {
5266 s7 = peg$FAILED;
5267 if (peg$silentFails === 0) { peg$fail(peg$c184); }
5268 }
5269 if (s7 !== peg$FAILED) {
5270 peg$savedPos = s0;
5271 s1 = peg$c301(s3, s5);
5272 s0 = s1;
5273 } else {
5274 peg$currPos = s0;
5275 s0 = peg$FAILED;
5276 }
5277 } else {
5278 peg$currPos = s0;
5279 s0 = peg$FAILED;
5280 }
5281 } else {
5282 peg$currPos = s0;
5283 s0 = peg$FAILED;
5284 }
5285 } else {
5286 peg$currPos = s0;
5287 s0 = peg$FAILED;
5288 }
5289 } else {
5290 peg$currPos = s0;
5291 s0 = peg$FAILED;
5292 }
5293 } else {
5294 peg$currPos = s0;
5295 s0 = peg$FAILED;
5296 }
5297 } else {
5298 peg$currPos = s0;
5299 s0 = peg$FAILED;
5300 }
5301
5302 return s0;
5303 }
5304
5305 function peg$parsefunc() {
5306 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
5307
5308 s0 = peg$currPos;
5309 if (input.substr(peg$currPos, 4) === peg$c302) {
5310 s1 = peg$c302;
5311 peg$currPos += 4;
5312 } else {
5313 s1 = peg$FAILED;
5314 if (peg$silentFails === 0) { peg$fail(peg$c303); }
5315 }
5316 if (s1 !== peg$FAILED) {
5317 s2 = peg$currPos;
5318 s3 = peg$parse__();
5319 if (s3 !== peg$FAILED) {
5320 s4 = peg$parseliteral();
5321 if (s4 !== peg$FAILED) {
5322 s3 = [s3, s4];
5323 s2 = s3;
5324 } else {
5325 peg$currPos = s2;
5326 s2 = peg$FAILED;
5327 }
5328 } else {
5329 peg$currPos = s2;
5330 s2 = peg$FAILED;
5331 }
5332 if (s2 === peg$FAILED) {
5333 s2 = null;
5334 }
5335 if (s2 !== peg$FAILED) {
5336 s3 = peg$currPos;
5337 s4 = peg$parse__();
5338 if (s4 !== peg$FAILED) {
5339 s5 = peg$parsevar();
5340 if (s5 !== peg$FAILED) {
5341 s4 = [s4, s5];
5342 s3 = s4;
5343 } else {
5344 peg$currPos = s3;
5345 s3 = peg$FAILED;
5346 }
5347 } else {
5348 peg$currPos = s3;
5349 s3 = peg$FAILED;
5350 }
5351 if (s3 === peg$FAILED) {
5352 s3 = null;
5353 }
5354 if (s3 !== peg$FAILED) {
5355 s4 = peg$currPos;
5356 s5 = peg$parse__();
5357 if (s5 !== peg$FAILED) {
5358 s6 = peg$parsefunc_type();
5359 if (s6 !== peg$FAILED) {
5360 s5 = [s5, s6];
5361 s4 = s5;
5362 } else {
5363 peg$currPos = s4;
5364 s4 = peg$FAILED;
5365 }
5366 } else {
5367 peg$currPos = s4;
5368 s4 = peg$FAILED;
5369 }
5370 if (s4 === peg$FAILED) {
5371 s4 = null;
5372 }
5373 if (s4 !== peg$FAILED) {
5374 s5 = [];
5375 s6 = peg$currPos;
5376 s7 = peg$parse__();
5377 if (s7 !== peg$FAILED) {
5378 s8 = peg$parseparam();
5379 if (s8 !== peg$FAILED) {
5380 s7 = [s7, s8];
5381 s6 = s7;
5382 } else {
5383 peg$currPos = s6;
5384 s6 = peg$FAILED;
5385 }
5386 } else {
5387 peg$currPos = s6;
5388 s6 = peg$FAILED;
5389 }
5390 while (s6 !== peg$FAILED) {
5391 s5.push(s6);
5392 s6 = peg$currPos;
5393 s7 = peg$parse__();
5394 if (s7 !== peg$FAILED) {
5395 s8 = peg$parseparam();
5396 if (s8 !== peg$FAILED) {
5397 s7 = [s7, s8];
5398 s6 = s7;
5399 } else {
5400 peg$currPos = s6;
5401 s6 = peg$FAILED;
5402 }
5403 } else {
5404 peg$currPos = s6;
5405 s6 = peg$FAILED;
5406 }
5407 }
5408 if (s5 !== peg$FAILED) {
5409 s6 = peg$currPos;
5410 s7 = peg$parse__();
5411 if (s7 !== peg$FAILED) {
5412 s8 = peg$parseresult();
5413 if (s8 !== peg$FAILED) {
5414 s7 = [s7, s8];
5415 s6 = s7;
5416 } else {
5417 peg$currPos = s6;
5418 s6 = peg$FAILED;
5419 }
5420 } else {
5421 peg$currPos = s6;
5422 s6 = peg$FAILED;
5423 }
5424 if (s6 === peg$FAILED) {
5425 s6 = null;
5426 }
5427 if (s6 !== peg$FAILED) {
5428 s7 = [];
5429 s8 = peg$currPos;
5430 s9 = peg$parse__();
5431 if (s9 !== peg$FAILED) {
5432 s10 = peg$parselocal();
5433 if (s10 !== peg$FAILED) {
5434 s9 = [s9, s10];
5435 s8 = s9;
5436 } else {
5437 peg$currPos = s8;
5438 s8 = peg$FAILED;
5439 }
5440 } else {
5441 peg$currPos = s8;
5442 s8 = peg$FAILED;
5443 }
5444 while (s8 !== peg$FAILED) {
5445 s7.push(s8);
5446 s8 = peg$currPos;
5447 s9 = peg$parse__();
5448 if (s9 !== peg$FAILED) {
5449 s10 = peg$parselocal();
5450 if (s10 !== peg$FAILED) {
5451 s9 = [s9, s10];
5452 s8 = s9;
5453 } else {
5454 peg$currPos = s8;
5455 s8 = peg$FAILED;
5456 }
5457 } else {
5458 peg$currPos = s8;
5459 s8 = peg$FAILED;
5460 }
5461 }
5462 if (s7 !== peg$FAILED) {
5463 s8 = [];
5464 s9 = peg$currPos;
5465 s10 = peg$parse__();
5466 if (s10 !== peg$FAILED) {
5467 s11 = peg$parseexpr();
5468 if (s11 !== peg$FAILED) {
5469 s10 = [s10, s11];
5470 s9 = s10;
5471 } else {
5472 peg$currPos = s9;
5473 s9 = peg$FAILED;
5474 }
5475 } else {
5476 peg$currPos = s9;
5477 s9 = peg$FAILED;
5478 }
5479 while (s9 !== peg$FAILED) {
5480 s8.push(s9);
5481 s9 = peg$currPos;
5482 s10 = peg$parse__();
5483 if (s10 !== peg$FAILED) {
5484 s11 = peg$parseexpr();
5485 if (s11 !== peg$FAILED) {
5486 s10 = [s10, s11];
5487 s9 = s10;
5488 } else {
5489 peg$currPos = s9;
5490 s9 = peg$FAILED;
5491 }
5492 } else {
5493 peg$currPos = s9;
5494 s9 = peg$FAILED;
5495 }
5496 }
5497 if (s8 !== peg$FAILED) {
5498 peg$savedPos = s0;
5499 s1 = peg$c304(s1, s2, s3, s4, s5, s6, s7, s8);
5500 s0 = s1;
5501 } else {
5502 peg$currPos = s0;
5503 s0 = peg$FAILED;
5504 }
5505 } else {
5506 peg$currPos = s0;
5507 s0 = peg$FAILED;
5508 }
5509 } else {
5510 peg$currPos = s0;
5511 s0 = peg$FAILED;
5512 }
5513 } else {
5514 peg$currPos = s0;
5515 s0 = peg$FAILED;
5516 }
5517 } else {
5518 peg$currPos = s0;
5519 s0 = peg$FAILED;
5520 }
5521 } else {
5522 peg$currPos = s0;
5523 s0 = peg$FAILED;
5524 }
5525 } else {
5526 peg$currPos = s0;
5527 s0 = peg$FAILED;
5528 }
5529 } else {
5530 peg$currPos = s0;
5531 s0 = peg$FAILED;
5532 }
5533
5534 return s0;
5535 }
5536
5537 function peg$parse_start() {
5538 var s0, s1, s2, s3;
5539
5540 s0 = peg$currPos;
5541 if (input.substr(peg$currPos, 5) === peg$c305) {
5542 s1 = peg$c305;
5543 peg$currPos += 5;
5544 } else {
5545 s1 = peg$FAILED;
5546 if (peg$silentFails === 0) { peg$fail(peg$c306); }
5547 }
5548 if (s1 !== peg$FAILED) {
5549 s2 = peg$parse__();
5550 if (s2 !== peg$FAILED) {
5551 s3 = peg$parsevar();
5552 if (s3 !== peg$FAILED) {
5553 peg$savedPos = s0;
5554 s1 = peg$c301(s1, s3);
5555 s0 = s1;
5556 } else {
5557 peg$currPos = s0;
5558 s0 = peg$FAILED;
5559 }
5560 } else {
5561 peg$currPos = s0;
5562 s0 = peg$FAILED;
5563 }
5564 } else {
5565 peg$currPos = s0;
5566 s0 = peg$FAILED;
5567 }
5568
5569 return s0;
5570 }
5571
5572 function peg$parseparam_def() {
5573 var s0, s1, s2, s3, s4, s5, s6, s7;
5574
5575 s0 = peg$currPos;
5576 if (input.charCodeAt(peg$currPos) === 40) {
5577 s1 = peg$c177;
5578 peg$currPos++;
5579 } else {
5580 s1 = peg$FAILED;
5581 if (peg$silentFails === 0) { peg$fail(peg$c178); }
5582 }
5583 if (s1 !== peg$FAILED) {
5584 s2 = peg$parse__();
5585 if (s2 !== peg$FAILED) {
5586 if (input.substr(peg$currPos, 5) === peg$c287) {
5587 s3 = peg$c287;
5588 peg$currPos += 5;
5589 } else {
5590 s3 = peg$FAILED;
5591 if (peg$silentFails === 0) { peg$fail(peg$c288); }
5592 }
5593 if (s3 !== peg$FAILED) {
5594 s4 = [];
5595 s5 = peg$currPos;
5596 s6 = peg$parse__();
5597 if (s6 !== peg$FAILED) {
5598 s7 = peg$parselocal_type();
5599 if (s7 !== peg$FAILED) {
5600 s6 = [s6, s7];
5601 s5 = s6;
5602 } else {
5603 peg$currPos = s5;
5604 s5 = peg$FAILED;
5605 }
5606 } else {
5607 peg$currPos = s5;
5608 s5 = peg$FAILED;
5609 }
5610 while (s5 !== peg$FAILED) {
5611 s4.push(s5);
5612 s5 = peg$currPos;
5613 s6 = peg$parse__();
5614 if (s6 !== peg$FAILED) {
5615 s7 = peg$parselocal_type();
5616 if (s7 !== peg$FAILED) {
5617 s6 = [s6, s7];
5618 s5 = s6;
5619 } else {
5620 peg$currPos = s5;
5621 s5 = peg$FAILED;
5622 }
5623 } else {
5624 peg$currPos = s5;
5625 s5 = peg$FAILED;
5626 }
5627 }
5628 if (s4 !== peg$FAILED) {
5629 s5 = peg$parse__();
5630 if (s5 !== peg$FAILED) {
5631 if (input.charCodeAt(peg$currPos) === 41) {
5632 s6 = peg$c183;
5633 peg$currPos++;
5634 } else {
5635 s6 = peg$FAILED;
5636 if (peg$silentFails === 0) { peg$fail(peg$c184); }
5637 }
5638 if (s6 !== peg$FAILED) {
5639 peg$savedPos = s0;
5640 s1 = peg$c307(s3, s4);
5641 s0 = s1;
5642 } else {
5643 peg$currPos = s0;
5644 s0 = peg$FAILED;
5645 }
5646 } else {
5647 peg$currPos = s0;
5648 s0 = peg$FAILED;
5649 }
5650 } else {
5651 peg$currPos = s0;
5652 s0 = peg$FAILED;
5653 }
5654 } else {
5655 peg$currPos = s0;
5656 s0 = peg$FAILED;
5657 }
5658 } else {
5659 peg$currPos = s0;
5660 s0 = peg$FAILED;
5661 }
5662 } else {
5663 peg$currPos = s0;
5664 s0 = peg$FAILED;
5665 }
5666
5667 return s0;
5668 }
5669
5670 function peg$parseresult_def() {
5671 var s0, s1, s2, s3, s4, s5, s6, s7;
5672
5673 s0 = peg$currPos;
5674 if (input.charCodeAt(peg$currPos) === 40) {
5675 s1 = peg$c177;
5676 peg$currPos++;
5677 } else {
5678 s1 = peg$FAILED;
5679 if (peg$silentFails === 0) { peg$fail(peg$c178); }
5680 }
5681 if (s1 !== peg$FAILED) {
5682 s2 = peg$parse__();
5683 if (s2 !== peg$FAILED) {
5684 if (input.substr(peg$currPos, 6) === peg$c293) {
5685 s3 = peg$c293;
5686 peg$currPos += 6;
5687 } else {
5688 s3 = peg$FAILED;
5689 if (peg$silentFails === 0) { peg$fail(peg$c294); }
5690 }
5691 if (s3 !== peg$FAILED) {
5692 s4 = peg$parse__();
5693 if (s4 !== peg$FAILED) {
5694 s5 = peg$parselocal_type();
5695 if (s5 !== peg$FAILED) {
5696 s6 = peg$parse__();
5697 if (s6 !== peg$FAILED) {
5698 if (input.charCodeAt(peg$currPos) === 41) {
5699 s7 = peg$c183;
5700 peg$currPos++;
5701 } else {
5702 s7 = peg$FAILED;
5703 if (peg$silentFails === 0) { peg$fail(peg$c184); }
5704 }
5705 if (s7 !== peg$FAILED) {
5706 peg$savedPos = s0;
5707 s1 = peg$c308(s3, s5);
5708 s0 = s1;
5709 } else {
5710 peg$currPos = s0;
5711 s0 = peg$FAILED;
5712 }
5713 } else {
5714 peg$currPos = s0;
5715 s0 = peg$FAILED;
5716 }
5717 } else {
5718 peg$currPos = s0;
5719 s0 = peg$FAILED;
5720 }
5721 } else {
5722 peg$currPos = s0;
5723 s0 = peg$FAILED;
5724 }
5725 } else {
5726 peg$currPos = s0;
5727 s0 = peg$FAILED;
5728 }
5729 } else {
5730 peg$currPos = s0;
5731 s0 = peg$FAILED;
5732 }
5733 } else {
5734 peg$currPos = s0;
5735 s0 = peg$FAILED;
5736 }
5737
5738 return s0;
5739 }
5740
5741 function peg$parsefunc_def() {
5742 var s0, s1, s2, s3, s4, s5, s6, s7;
5743
5744 s0 = peg$currPos;
5745 if (input.charCodeAt(peg$currPos) === 40) {
5746 s1 = peg$c177;
5747 peg$currPos++;
5748 } else {
5749 s1 = peg$FAILED;
5750 if (peg$silentFails === 0) { peg$fail(peg$c178); }
5751 }
5752 if (s1 !== peg$FAILED) {
5753 s2 = peg$parse__();
5754 if (s2 !== peg$FAILED) {
5755 if (input.substr(peg$currPos, 4) === peg$c302) {
5756 s3 = peg$c302;
5757 peg$currPos += 4;
5758 } else {
5759 s3 = peg$FAILED;
5760 if (peg$silentFails === 0) { peg$fail(peg$c303); }
5761 }
5762 if (s3 !== peg$FAILED) {
5763 s4 = [];
5764 s5 = peg$currPos;
5765 s6 = peg$parse__();
5766 if (s6 !== peg$FAILED) {
5767 s7 = peg$parseparam_def();
5768 if (s7 !== peg$FAILED) {
5769 s6 = [s6, s7];
5770 s5 = s6;
5771 } else {
5772 peg$currPos = s5;
5773 s5 = peg$FAILED;
5774 }
5775 } else {
5776 peg$currPos = s5;
5777 s5 = peg$FAILED;
5778 }
5779 while (s5 !== peg$FAILED) {
5780 s4.push(s5);
5781 s5 = peg$currPos;
5782 s6 = peg$parse__();
5783 if (s6 !== peg$FAILED) {
5784 s7 = peg$parseparam_def();
5785 if (s7 !== peg$FAILED) {
5786 s6 = [s6, s7];
5787 s5 = s6;
5788 } else {
5789 peg$currPos = s5;
5790 s5 = peg$FAILED;
5791 }
5792 } else {
5793 peg$currPos = s5;
5794 s5 = peg$FAILED;
5795 }
5796 }
5797 if (s4 !== peg$FAILED) {
5798 s5 = peg$currPos;
5799 s6 = peg$parse__();
5800 if (s6 !== peg$FAILED) {
5801 s7 = peg$parseresult_def();
5802 if (s7 !== peg$FAILED) {
5803 s6 = [s6, s7];
5804 s5 = s6;
5805 } else {
5806 peg$currPos = s5;
5807 s5 = peg$FAILED;
5808 }
5809 } else {
5810 peg$currPos = s5;
5811 s5 = peg$FAILED;
5812 }
5813 if (s5 === peg$FAILED) {
5814 s5 = null;
5815 }
5816 if (s5 !== peg$FAILED) {
5817 s6 = peg$parse__();
5818 if (s6 !== peg$FAILED) {
5819 if (input.charCodeAt(peg$currPos) === 41) {
5820 s7 = peg$c183;
5821 peg$currPos++;
5822 } else {
5823 s7 = peg$FAILED;
5824 if (peg$silentFails === 0) { peg$fail(peg$c184); }
5825 }
5826 if (s7 !== peg$FAILED) {
5827 peg$savedPos = s0;
5828 s1 = peg$c309(s3, s4, s5);
5829 s0 = s1;
5830 } else {
5831 peg$currPos = s0;
5832 s0 = peg$FAILED;
5833 }
5834 } else {
5835 peg$currPos = s0;
5836 s0 = peg$FAILED;
5837 }
5838 } else {
5839 peg$currPos = s0;
5840 s0 = peg$FAILED;
5841 }
5842 } else {
5843 peg$currPos = s0;
5844 s0 = peg$FAILED;
5845 }
5846 } else {
5847 peg$currPos = s0;
5848 s0 = peg$FAILED;
5849 }
5850 } else {
5851 peg$currPos = s0;
5852 s0 = peg$FAILED;
5853 }
5854 } else {
5855 peg$currPos = s0;
5856 s0 = peg$FAILED;
5857 }
5858
5859 return s0;
5860 }
5861
5862 function peg$parsetype_def() {
5863 var s0, s1, s2, s3, s4;
5864
5865 s0 = peg$currPos;
5866 if (input.substr(peg$currPos, 4) === peg$c299) {
5867 s1 = peg$c299;
5868 peg$currPos += 4;
5869 } else {
5870 s1 = peg$FAILED;
5871 if (peg$silentFails === 0) { peg$fail(peg$c300); }
5872 }
5873 if (s1 !== peg$FAILED) {
5874 s2 = peg$currPos;
5875 s3 = peg$parse__();
5876 if (s3 !== peg$FAILED) {
5877 s4 = peg$parsevar();
5878 if (s4 !== peg$FAILED) {
5879 s3 = [s3, s4];
5880 s2 = s3;
5881 } else {
5882 peg$currPos = s2;
5883 s2 = peg$FAILED;
5884 }
5885 } else {
5886 peg$currPos = s2;
5887 s2 = peg$FAILED;
5888 }
5889 if (s2 === peg$FAILED) {
5890 s2 = null;
5891 }
5892 if (s2 !== peg$FAILED) {
5893 s3 = peg$parse__();
5894 if (s3 !== peg$FAILED) {
5895 s4 = peg$parsefunc_def();
5896 if (s4 !== peg$FAILED) {
5897 peg$savedPos = s0;
5898 s1 = peg$c310(s1, s2);
5899 s0 = s1;
5900 } else {
5901 peg$currPos = s0;
5902 s0 = peg$FAILED;
5903 }
5904 } else {
5905 peg$currPos = s0;
5906 s0 = peg$FAILED;
5907 }
5908 } else {
5909 peg$currPos = s0;
5910 s0 = peg$FAILED;
5911 }
5912 } else {
5913 peg$currPos = s0;
5914 s0 = peg$FAILED;
5915 }
5916
5917 return s0;
5918 }
5919
5920 function peg$parseimport() {
5921 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
5922
5923 s0 = peg$currPos;
5924 if (input.substr(peg$currPos, 6) === peg$c311) {
5925 s1 = peg$c311;
5926 peg$currPos += 6;
5927 } else {
5928 s1 = peg$FAILED;
5929 if (peg$silentFails === 0) { peg$fail(peg$c312); }
5930 }
5931 if (s1 !== peg$FAILED) {
5932 s2 = peg$currPos;
5933 s3 = peg$parse__();
5934 if (s3 !== peg$FAILED) {
5935 s4 = peg$parsevar();
5936 if (s4 !== peg$FAILED) {
5937 s3 = [s3, s4];
5938 s2 = s3;
5939 } else {
5940 peg$currPos = s2;
5941 s2 = peg$FAILED;
5942 }
5943 } else {
5944 peg$currPos = s2;
5945 s2 = peg$FAILED;
5946 }
5947 if (s2 === peg$FAILED) {
5948 s2 = null;
5949 }
5950 if (s2 !== peg$FAILED) {
5951 s3 = peg$parse__();
5952 if (s3 !== peg$FAILED) {
5953 s4 = peg$parseliteral();
5954 if (s4 !== peg$FAILED) {
5955 s5 = peg$parse__();
5956 if (s5 !== peg$FAILED) {
5957 s6 = peg$parseliteral();
5958 if (s6 !== peg$FAILED) {
5959 s7 = peg$currPos;
5960 s8 = peg$parse__();
5961 if (s8 !== peg$FAILED) {
5962 s9 = peg$parsefunc_type();
5963 if (s9 !== peg$FAILED) {
5964 s8 = [s8, s9];
5965 s7 = s8;
5966 } else {
5967 peg$currPos = s7;
5968 s7 = peg$FAILED;
5969 }
5970 } else {
5971 peg$currPos = s7;
5972 s7 = peg$FAILED;
5973 }
5974 if (s7 === peg$FAILED) {
5975 s7 = null;
5976 }
5977 if (s7 !== peg$FAILED) {
5978 s8 = [];
5979 s9 = peg$currPos;
5980 s10 = peg$parse__();
5981 if (s10 !== peg$FAILED) {
5982 s11 = peg$parseparam();
5983 if (s11 !== peg$FAILED) {
5984 s10 = [s10, s11];
5985 s9 = s10;
5986 } else {
5987 peg$currPos = s9;
5988 s9 = peg$FAILED;
5989 }
5990 } else {
5991 peg$currPos = s9;
5992 s9 = peg$FAILED;
5993 }
5994 while (s9 !== peg$FAILED) {
5995 s8.push(s9);
5996 s9 = peg$currPos;
5997 s10 = peg$parse__();
5998 if (s10 !== peg$FAILED) {
5999 s11 = peg$parseparam();
6000 if (s11 !== peg$FAILED) {
6001 s10 = [s10, s11];
6002 s9 = s10;
6003 } else {
6004 peg$currPos = s9;
6005 s9 = peg$FAILED;
6006 }
6007 } else {
6008 peg$currPos = s9;
6009 s9 = peg$FAILED;
6010 }
6011 }
6012 if (s8 !== peg$FAILED) {
6013 s9 = peg$currPos;
6014 s10 = peg$parse__();
6015 if (s10 !== peg$FAILED) {
6016 s11 = peg$parseresult();
6017 if (s11 !== peg$FAILED) {
6018 s10 = [s10, s11];
6019 s9 = s10;
6020 } else {
6021 peg$currPos = s9;
6022 s9 = peg$FAILED;
6023 }
6024 } else {
6025 peg$currPos = s9;
6026 s9 = peg$FAILED;
6027 }
6028 if (s9 === peg$FAILED) {
6029 s9 = null;
6030 }
6031 if (s9 !== peg$FAILED) {
6032 peg$savedPos = s0;
6033 s1 = peg$c313(s1, s2, s4, s6, s7, s8, s9);
6034 s0 = s1;
6035 } else {
6036 peg$currPos = s0;
6037 s0 = peg$FAILED;
6038 }
6039 } else {
6040 peg$currPos = s0;
6041 s0 = peg$FAILED;
6042 }
6043 } else {
6044 peg$currPos = s0;
6045 s0 = peg$FAILED;
6046 }
6047 } else {
6048 peg$currPos = s0;
6049 s0 = peg$FAILED;
6050 }
6051 } else {
6052 peg$currPos = s0;
6053 s0 = peg$FAILED;
6054 }
6055 } else {
6056 peg$currPos = s0;
6057 s0 = peg$FAILED;
6058 }
6059 } else {
6060 peg$currPos = s0;
6061 s0 = peg$FAILED;
6062 }
6063 } else {
6064 peg$currPos = s0;
6065 s0 = peg$FAILED;
6066 }
6067 } else {
6068 peg$currPos = s0;
6069 s0 = peg$FAILED;
6070 }
6071
6072 return s0;
6073 }
6074
6075 function peg$parseexport() {
6076 var s0, s1, s2, s3, s4, s5, s6, s7;
6077
6078 s0 = peg$currPos;
6079 if (input.substr(peg$currPos, 6) === peg$c314) {
6080 s1 = peg$c314;
6081 peg$currPos += 6;
6082 } else {
6083 s1 = peg$FAILED;
6084 if (peg$silentFails === 0) { peg$fail(peg$c315); }
6085 }
6086 if (s1 !== peg$FAILED) {
6087 s2 = peg$parse__();
6088 if (s2 !== peg$FAILED) {
6089 if (peg$c284.test(input.charAt(peg$currPos))) {
6090 s3 = input.charAt(peg$currPos);
6091 peg$currPos++;
6092 } else {
6093 s3 = peg$FAILED;
6094 if (peg$silentFails === 0) { peg$fail(peg$c285); }
6095 }
6096 if (s3 !== peg$FAILED) {
6097 s4 = [];
6098 s5 = peg$currPos;
6099 if (input.charCodeAt(peg$currPos) === 92) {
6100 s6 = peg$c316;
6101 peg$currPos++;
6102 } else {
6103 s6 = peg$FAILED;
6104 if (peg$silentFails === 0) { peg$fail(peg$c317); }
6105 }
6106 if (s6 !== peg$FAILED) {
6107 if (input.charCodeAt(peg$currPos) === 34) {
6108 s7 = peg$c318;
6109 peg$currPos++;
6110 } else {
6111 s7 = peg$FAILED;
6112 if (peg$silentFails === 0) { peg$fail(peg$c319); }
6113 }
6114 if (s7 !== peg$FAILED) {
6115 s6 = [s6, s7];
6116 s5 = s6;
6117 } else {
6118 peg$currPos = s5;
6119 s5 = peg$FAILED;
6120 }
6121 } else {
6122 peg$currPos = s5;
6123 s5 = peg$FAILED;
6124 }
6125 if (s5 === peg$FAILED) {
6126 s5 = peg$currPos;
6127 s6 = peg$currPos;
6128 peg$silentFails++;
6129 if (peg$c284.test(input.charAt(peg$currPos))) {
6130 s7 = input.charAt(peg$currPos);
6131 peg$currPos++;
6132 } else {
6133 s7 = peg$FAILED;
6134 if (peg$silentFails === 0) { peg$fail(peg$c285); }
6135 }
6136 peg$silentFails--;
6137 if (s7 === peg$FAILED) {
6138 s6 = void 0;
6139 } else {
6140 peg$currPos = s6;
6141 s6 = peg$FAILED;
6142 }
6143 if (s6 !== peg$FAILED) {
6144 if (input.length > peg$currPos) {
6145 s7 = input.charAt(peg$currPos);
6146 peg$currPos++;
6147 } else {
6148 s7 = peg$FAILED;
6149 if (peg$silentFails === 0) { peg$fail(peg$c21); }
6150 }
6151 if (s7 !== peg$FAILED) {
6152 s6 = [s6, s7];
6153 s5 = s6;
6154 } else {
6155 peg$currPos = s5;
6156 s5 = peg$FAILED;
6157 }
6158 } else {
6159 peg$currPos = s5;
6160 s5 = peg$FAILED;
6161 }
6162 }
6163 while (s5 !== peg$FAILED) {
6164 s4.push(s5);
6165 s5 = peg$currPos;
6166 if (input.charCodeAt(peg$currPos) === 92) {
6167 s6 = peg$c316;
6168 peg$currPos++;
6169 } else {
6170 s6 = peg$FAILED;
6171 if (peg$silentFails === 0) { peg$fail(peg$c317); }
6172 }
6173 if (s6 !== peg$FAILED) {
6174 if (input.charCodeAt(peg$currPos) === 34) {
6175 s7 = peg$c318;
6176 peg$currPos++;
6177 } else {
6178 s7 = peg$FAILED;
6179 if (peg$silentFails === 0) { peg$fail(peg$c319); }
6180 }
6181 if (s7 !== peg$FAILED) {
6182 s6 = [s6, s7];
6183 s5 = s6;
6184 } else {
6185 peg$currPos = s5;
6186 s5 = peg$FAILED;
6187 }
6188 } else {
6189 peg$currPos = s5;
6190 s5 = peg$FAILED;
6191 }
6192 if (s5 === peg$FAILED) {
6193 s5 = peg$currPos;
6194 s6 = peg$currPos;
6195 peg$silentFails++;
6196 if (peg$c284.test(input.charAt(peg$currPos))) {
6197 s7 = input.charAt(peg$currPos);
6198 peg$currPos++;
6199 } else {
6200 s7 = peg$FAILED;
6201 if (peg$silentFails === 0) { peg$fail(peg$c285); }
6202 }
6203 peg$silentFails--;
6204 if (s7 === peg$FAILED) {
6205 s6 = void 0;
6206 } else {
6207 peg$currPos = s6;
6208 s6 = peg$FAILED;
6209 }
6210 if (s6 !== peg$FAILED) {
6211 if (input.length > peg$currPos) {
6212 s7 = input.charAt(peg$currPos);
6213 peg$currPos++;
6214 } else {
6215 s7 = peg$FAILED;
6216 if (peg$silentFails === 0) { peg$fail(peg$c21); }
6217 }
6218 if (s7 !== peg$FAILED) {
6219 s6 = [s6, s7];
6220 s5 = s6;
6221 } else {
6222 peg$currPos = s5;
6223 s5 = peg$FAILED;
6224 }
6225 } else {
6226 peg$currPos = s5;
6227 s5 = peg$FAILED;
6228 }
6229 }
6230 }
6231 if (s4 !== peg$FAILED) {
6232 if (peg$c284.test(input.charAt(peg$currPos))) {
6233 s5 = input.charAt(peg$currPos);
6234 peg$currPos++;
6235 } else {
6236 s5 = peg$FAILED;
6237 if (peg$silentFails === 0) { peg$fail(peg$c285); }
6238 }
6239 if (s5 !== peg$FAILED) {
6240 s6 = peg$parse__();
6241 if (s6 !== peg$FAILED) {
6242 s7 = peg$parsevar();
6243 if (s7 === peg$FAILED) {
6244 if (input.substr(peg$currPos, 6) === peg$c320) {
6245 s7 = peg$c320;
6246 peg$currPos += 6;
6247 } else {
6248 s7 = peg$FAILED;
6249 if (peg$silentFails === 0) { peg$fail(peg$c321); }
6250 }
6251 }
6252 if (s7 !== peg$FAILED) {
6253 peg$savedPos = s0;
6254 s1 = peg$c322(s1, s4, s7);
6255 s0 = s1;
6256 } else {
6257 peg$currPos = s0;
6258 s0 = peg$FAILED;
6259 }
6260 } else {
6261 peg$currPos = s0;
6262 s0 = peg$FAILED;
6263 }
6264 } else {
6265 peg$currPos = s0;
6266 s0 = peg$FAILED;
6267 }
6268 } else {
6269 peg$currPos = s0;
6270 s0 = peg$FAILED;
6271 }
6272 } else {
6273 peg$currPos = s0;
6274 s0 = peg$FAILED;
6275 }
6276 } else {
6277 peg$currPos = s0;
6278 s0 = peg$FAILED;
6279 }
6280 } else {
6281 peg$currPos = s0;
6282 s0 = peg$FAILED;
6283 }
6284
6285 return s0;
6286 }
6287
6288 function peg$parsetable() {
6289 var s0, s1, s2, s3, s4, s5;
6290
6291 s0 = peg$currPos;
6292 if (input.substr(peg$currPos, 5) === peg$c323) {
6293 s1 = peg$c323;
6294 peg$currPos += 5;
6295 } else {
6296 s1 = peg$FAILED;
6297 if (peg$silentFails === 0) { peg$fail(peg$c324); }
6298 }
6299 if (s1 !== peg$FAILED) {
6300 s2 = [];
6301 s3 = peg$currPos;
6302 s4 = peg$parse__();
6303 if (s4 !== peg$FAILED) {
6304 s5 = peg$parsevar();
6305 if (s5 !== peg$FAILED) {
6306 s4 = [s4, s5];
6307 s3 = s4;
6308 } else {
6309 peg$currPos = s3;
6310 s3 = peg$FAILED;
6311 }
6312 } else {
6313 peg$currPos = s3;
6314 s3 = peg$FAILED;
6315 }
6316 while (s3 !== peg$FAILED) {
6317 s2.push(s3);
6318 s3 = peg$currPos;
6319 s4 = peg$parse__();
6320 if (s4 !== peg$FAILED) {
6321 s5 = peg$parsevar();
6322 if (s5 !== peg$FAILED) {
6323 s4 = [s4, s5];
6324 s3 = s4;
6325 } else {
6326 peg$currPos = s3;
6327 s3 = peg$FAILED;
6328 }
6329 } else {
6330 peg$currPos = s3;
6331 s3 = peg$FAILED;
6332 }
6333 }
6334 if (s2 !== peg$FAILED) {
6335 peg$savedPos = s0;
6336 s1 = peg$c325(s1, s2);
6337 s0 = s1;
6338 } else {
6339 peg$currPos = s0;
6340 s0 = peg$FAILED;
6341 }
6342 } else {
6343 peg$currPos = s0;
6344 s0 = peg$FAILED;
6345 }
6346
6347 return s0;
6348 }
6349
6350 function peg$parsememory() {
6351 var s0, s1, s2, s3, s4, s5, s6, s7, s8;
6352
6353 s0 = peg$currPos;
6354 if (input.substr(peg$currPos, 6) === peg$c320) {
6355 s1 = peg$c320;
6356 peg$currPos += 6;
6357 } else {
6358 s1 = peg$FAILED;
6359 if (peg$silentFails === 0) { peg$fail(peg$c321); }
6360 }
6361 if (s1 !== peg$FAILED) {
6362 s2 = peg$parse__();
6363 if (s2 !== peg$FAILED) {
6364 s3 = peg$parseint();
6365 if (s3 !== peg$FAILED) {
6366 s4 = peg$currPos;
6367 s5 = peg$parse__();
6368 if (s5 !== peg$FAILED) {
6369 s6 = peg$parseint();
6370 if (s6 !== peg$FAILED) {
6371 s5 = [s5, s6];
6372 s4 = s5;
6373 } else {
6374 peg$currPos = s4;
6375 s4 = peg$FAILED;
6376 }
6377 } else {
6378 peg$currPos = s4;
6379 s4 = peg$FAILED;
6380 }
6381 if (s4 === peg$FAILED) {
6382 s4 = null;
6383 }
6384 if (s4 !== peg$FAILED) {
6385 s5 = [];
6386 s6 = peg$currPos;
6387 s7 = peg$parse__();
6388 if (s7 !== peg$FAILED) {
6389 s8 = peg$parsecmd();
6390 if (s8 !== peg$FAILED) {
6391 s7 = [s7, s8];
6392 s6 = s7;
6393 } else {
6394 peg$currPos = s6;
6395 s6 = peg$FAILED;
6396 }
6397 } else {
6398 peg$currPos = s6;
6399 s6 = peg$FAILED;
6400 }
6401 while (s6 !== peg$FAILED) {
6402 s5.push(s6);
6403 s6 = peg$currPos;
6404 s7 = peg$parse__();
6405 if (s7 !== peg$FAILED) {
6406 s8 = peg$parsecmd();
6407 if (s8 !== peg$FAILED) {
6408 s7 = [s7, s8];
6409 s6 = s7;
6410 } else {
6411 peg$currPos = s6;
6412 s6 = peg$FAILED;
6413 }
6414 } else {
6415 peg$currPos = s6;
6416 s6 = peg$FAILED;
6417 }
6418 }
6419 if (s5 !== peg$FAILED) {
6420 peg$savedPos = s0;
6421 s1 = peg$c326(s1, s3, s4, s5);
6422 s0 = s1;
6423 } else {
6424 peg$currPos = s0;
6425 s0 = peg$FAILED;
6426 }
6427 } else {
6428 peg$currPos = s0;
6429 s0 = peg$FAILED;
6430 }
6431 } else {
6432 peg$currPos = s0;
6433 s0 = peg$FAILED;
6434 }
6435 } else {
6436 peg$currPos = s0;
6437 s0 = peg$FAILED;
6438 }
6439 } else {
6440 peg$currPos = s0;
6441 s0 = peg$FAILED;
6442 }
6443
6444 return s0;
6445 }
6446
6447 function peg$parseinvoke() {
6448 var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
6449
6450 s0 = peg$currPos;
6451 if (input.substr(peg$currPos, 6) === peg$c327) {
6452 s1 = peg$c327;
6453 peg$currPos += 6;
6454 } else {
6455 s1 = peg$FAILED;
6456 if (peg$silentFails === 0) { peg$fail(peg$c328); }
6457 }
6458 if (s1 !== peg$FAILED) {
6459 s2 = peg$parse__();
6460 if (s2 !== peg$FAILED) {
6461 if (peg$c284.test(input.charAt(peg$currPos))) {
6462 s3 = input.charAt(peg$currPos);
6463 peg$currPos++;
6464 } else {
6465 s3 = peg$FAILED;
6466 if (peg$silentFails === 0) { peg$fail(peg$c285); }
6467 }
6468 if (s3 !== peg$FAILED) {
6469 s4 = [];
6470 if (input.substr(peg$currPos, 2) === peg$c329) {
6471 s5 = peg$c329;
6472 peg$currPos += 2;
6473 } else {
6474 s5 = peg$FAILED;
6475 if (peg$silentFails === 0) { peg$fail(peg$c330); }
6476 }
6477 if (s5 === peg$FAILED) {
6478 s5 = peg$currPos;
6479 s6 = peg$currPos;
6480 peg$silentFails++;
6481 if (peg$c284.test(input.charAt(peg$currPos))) {
6482 s7 = input.charAt(peg$currPos);
6483 peg$currPos++;
6484 } else {
6485 s7 = peg$FAILED;
6486 if (peg$silentFails === 0) { peg$fail(peg$c285); }
6487 }
6488 peg$silentFails--;
6489 if (s7 === peg$FAILED) {
6490 s6 = void 0;
6491 } else {
6492 peg$currPos = s6;
6493 s6 = peg$FAILED;
6494 }
6495 if (s6 !== peg$FAILED) {
6496 if (input.length > peg$currPos) {
6497 s7 = input.charAt(peg$currPos);
6498 peg$currPos++;
6499 } else {
6500 s7 = peg$FAILED;
6501 if (peg$silentFails === 0) { peg$fail(peg$c21); }
6502 }
6503 if (s7 !== peg$FAILED) {
6504 s6 = [s6, s7];
6505 s5 = s6;
6506 } else {
6507 peg$currPos = s5;
6508 s5 = peg$FAILED;
6509 }
6510 } else {
6511 peg$currPos = s5;
6512 s5 = peg$FAILED;
6513 }
6514 }
6515 while (s5 !== peg$FAILED) {
6516 s4.push(s5);
6517 if (input.substr(peg$currPos, 2) === peg$c329) {
6518 s5 = peg$c329;
6519 peg$currPos += 2;
6520 } else {
6521 s5 = peg$FAILED;
6522 if (peg$silentFails === 0) { peg$fail(peg$c330); }
6523 }
6524 if (s5 === peg$FAILED) {
6525 s5 = peg$currPos;
6526 s6 = peg$currPos;
6527 peg$silentFails++;
6528 if (peg$c284.test(input.charAt(peg$currPos))) {
6529 s7 = input.charAt(peg$currPos);
6530 peg$currPos++;
6531 } else {
6532 s7 = peg$FAILED;
6533 if (peg$silentFails === 0) { peg$fail(peg$c285); }
6534 }
6535 peg$silentFails--;
6536 if (s7 === peg$FAILED) {
6537 s6 = void 0;
6538 } else {
6539 peg$currPos = s6;
6540 s6 = peg$FAILED;
6541 }
6542 if (s6 !== peg$FAILED) {
6543 if (input.length > peg$currPos) {
6544 s7 = input.charAt(peg$currPos);
6545 peg$currPos++;
6546 } else {
6547 s7 = peg$FAILED;
6548 if (peg$silentFails === 0) { peg$fail(peg$c21); }
6549 }
6550 if (s7 !== peg$FAILED) {
6551 s6 = [s6, s7];
6552 s5 = s6;
6553 } else {
6554 peg$currPos = s5;
6555 s5 = peg$FAILED;
6556 }
6557 } else {
6558 peg$currPos = s5;
6559 s5 = peg$FAILED;
6560 }
6561 }
6562 }
6563 if (s4 !== peg$FAILED) {
6564 if (peg$c284.test(input.charAt(peg$currPos))) {
6565 s5 = input.charAt(peg$currPos);
6566 peg$currPos++;
6567 } else {
6568 s5 = peg$FAILED;
6569 if (peg$silentFails === 0) { peg$fail(peg$c285); }
6570 }
6571 if (s5 !== peg$FAILED) {
6572 s6 = [];
6573 s7 = peg$currPos;
6574 s8 = peg$parse__();
6575 if (s8 !== peg$FAILED) {
6576 s9 = peg$parseexpr();
6577 if (s9 !== peg$FAILED) {
6578 s8 = [s8, s9];
6579 s7 = s8;
6580 } else {
6581 peg$currPos = s7;
6582 s7 = peg$FAILED;
6583 }
6584 } else {
6585 peg$currPos = s7;
6586 s7 = peg$FAILED;
6587 }
6588 while (s7 !== peg$FAILED) {
6589 s6.push(s7);
6590 s7 = peg$currPos;
6591 s8 = peg$parse__();
6592 if (s8 !== peg$FAILED) {
6593 s9 = peg$parseexpr();
6594 if (s9 !== peg$FAILED) {
6595 s8 = [s8, s9];
6596 s7 = s8;
6597 } else {
6598 peg$currPos = s7;
6599 s7 = peg$FAILED;
6600 }
6601 } else {
6602 peg$currPos = s7;
6603 s7 = peg$FAILED;
6604 }
6605 }
6606 if (s6 !== peg$FAILED) {
6607 peg$savedPos = s0;
6608 s1 = peg$c331(s1, s4, s6);
6609 s0 = s1;
6610 } else {
6611 peg$currPos = s0;
6612 s0 = peg$FAILED;
6613 }
6614 } else {
6615 peg$currPos = s0;
6616 s0 = peg$FAILED;
6617 }
6618 } else {
6619 peg$currPos = s0;
6620 s0 = peg$FAILED;
6621 }
6622 } else {
6623 peg$currPos = s0;
6624 s0 = peg$FAILED;
6625 }
6626 } else {
6627 peg$currPos = s0;
6628 s0 = peg$FAILED;
6629 }
6630 } else {
6631 peg$currPos = s0;
6632 s0 = peg$FAILED;
6633 }
6634
6635 return s0;
6636 }
6637
6638 function peg$parsemodule() {
6639 var s0, s1, s2, s3, s4, s5;
6640
6641 s0 = peg$currPos;
6642 if (input.substr(peg$currPos, 6) === peg$c332) {
6643 s1 = peg$c332;
6644 peg$currPos += 6;
6645 } else {
6646 s1 = peg$FAILED;
6647 if (peg$silentFails === 0) { peg$fail(peg$c333); }
6648 }
6649 if (s1 !== peg$FAILED) {
6650 s2 = [];
6651 s3 = peg$currPos;
6652 s4 = peg$parse__();
6653 if (s4 !== peg$FAILED) {
6654 s5 = peg$parsecmd();
6655 if (s5 === peg$FAILED) {
6656 s5 = peg$parseliteral();
6657 }
6658 if (s5 !== peg$FAILED) {
6659 s4 = [s4, s5];
6660 s3 = s4;
6661 } else {
6662 peg$currPos = s3;
6663 s3 = peg$FAILED;
6664 }
6665 } else {
6666 peg$currPos = s3;
6667 s3 = peg$FAILED;
6668 }
6669 while (s3 !== peg$FAILED) {
6670 s2.push(s3);
6671 s3 = peg$currPos;
6672 s4 = peg$parse__();
6673 if (s4 !== peg$FAILED) {
6674 s5 = peg$parsecmd();
6675 if (s5 === peg$FAILED) {
6676 s5 = peg$parseliteral();
6677 }
6678 if (s5 !== peg$FAILED) {
6679 s4 = [s4, s5];
6680 s3 = s4;
6681 } else {
6682 peg$currPos = s3;
6683 s3 = peg$FAILED;
6684 }
6685 } else {
6686 peg$currPos = s3;
6687 s3 = peg$FAILED;
6688 }
6689 }
6690 if (s2 !== peg$FAILED) {
6691 peg$savedPos = s0;
6692 s1 = peg$c334(s1, s2);
6693 s0 = s1;
6694 } else {
6695 peg$currPos = s0;
6696 s0 = peg$FAILED;
6697 }
6698 } else {
6699 peg$currPos = s0;
6700 s0 = peg$FAILED;
6701 }
6702
6703 return s0;
6704 }
6705
6706 function peg$parseassert_return() {
6707 var s0, s1, s2, s3, s4, s5;
6708
6709 s0 = peg$currPos;
6710 if (input.substr(peg$currPos, 13) === peg$c335) {
6711 s1 = peg$c335;
6712 peg$currPos += 13;
6713 } else {
6714 s1 = peg$FAILED;
6715 if (peg$silentFails === 0) { peg$fail(peg$c336); }
6716 }
6717 if (s1 !== peg$FAILED) {
6718 s2 = peg$parse__();
6719 if (s2 !== peg$FAILED) {
6720 s3 = peg$parsecmd();
6721 if (s3 !== peg$FAILED) {
6722 s4 = peg$parse__();
6723 if (s4 !== peg$FAILED) {
6724 s5 = peg$parseexpr();
6725 if (s5 === peg$FAILED) {
6726 s5 = null;
6727 }
6728 if (s5 !== peg$FAILED) {
6729 peg$savedPos = s0;
6730 s1 = peg$c337(s1, s3, s5);
6731 s0 = s1;
6732 } else {
6733 peg$currPos = s0;
6734 s0 = peg$FAILED;
6735 }
6736 } else {
6737 peg$currPos = s0;
6738 s0 = peg$FAILED;
6739 }
6740 } else {
6741 peg$currPos = s0;
6742 s0 = peg$FAILED;
6743 }
6744 } else {
6745 peg$currPos = s0;
6746 s0 = peg$FAILED;
6747 }
6748 } else {
6749 peg$currPos = s0;
6750 s0 = peg$FAILED;
6751 }
6752
6753 return s0;
6754 }
6755
6756 function peg$parseassert_return_nan() {
6757 var s0, s1, s2, s3;
6758
6759 s0 = peg$currPos;
6760 if (input.substr(peg$currPos, 17) === peg$c338) {
6761 s1 = peg$c338;
6762 peg$currPos += 17;
6763 } else {
6764 s1 = peg$FAILED;
6765 if (peg$silentFails === 0) { peg$fail(peg$c339); }
6766 }
6767 if (s1 !== peg$FAILED) {
6768 s2 = peg$parse__();
6769 if (s2 !== peg$FAILED) {
6770 s3 = peg$parsecmd();
6771 if (s3 !== peg$FAILED) {
6772 peg$savedPos = s0;
6773 s1 = peg$c340(s1, s3);
6774 s0 = s1;
6775 } else {
6776 peg$currPos = s0;
6777 s0 = peg$FAILED;
6778 }
6779 } else {
6780 peg$currPos = s0;
6781 s0 = peg$FAILED;
6782 }
6783 } else {
6784 peg$currPos = s0;
6785 s0 = peg$FAILED;
6786 }
6787
6788 return s0;
6789 }
6790
6791 function peg$parseassert_trap() {
6792 var s0, s1, s2, s3, s4, s5;
6793
6794 s0 = peg$currPos;
6795 if (input.substr(peg$currPos, 11) === peg$c341) {
6796 s1 = peg$c341;
6797 peg$currPos += 11;
6798 } else {
6799 s1 = peg$FAILED;
6800 if (peg$silentFails === 0) { peg$fail(peg$c342); }
6801 }
6802 if (s1 !== peg$FAILED) {
6803 s2 = peg$parse__();
6804 if (s2 !== peg$FAILED) {
6805 s3 = peg$parsecmd();
6806 if (s3 !== peg$FAILED) {
6807 s4 = peg$parse__();
6808 if (s4 !== peg$FAILED) {
6809 s5 = peg$parseliteral();
6810 if (s5 !== peg$FAILED) {
6811 peg$savedPos = s0;
6812 s1 = peg$c343(s1, s3, s5);
6813 s0 = s1;
6814 } else {
6815 peg$currPos = s0;
6816 s0 = peg$FAILED;
6817 }
6818 } else {
6819 peg$currPos = s0;
6820 s0 = peg$FAILED;
6821 }
6822 } else {
6823 peg$currPos = s0;
6824 s0 = peg$FAILED;
6825 }
6826 } else {
6827 peg$currPos = s0;
6828 s0 = peg$FAILED;
6829 }
6830 } else {
6831 peg$currPos = s0;
6832 s0 = peg$FAILED;
6833 }
6834
6835 return s0;
6836 }
6837
6838 function peg$parseassert_invalid() {
6839 var s0, s1, s2, s3, s4, s5;
6840
6841 s0 = peg$currPos;
6842 if (input.substr(peg$currPos, 14) === peg$c344) {
6843 s1 = peg$c344;
6844 peg$currPos += 14;
6845 } else {
6846 s1 = peg$FAILED;
6847 if (peg$silentFails === 0) { peg$fail(peg$c345); }
6848 }
6849 if (s1 !== peg$FAILED) {
6850 s2 = peg$parse__();
6851 if (s2 !== peg$FAILED) {
6852 s3 = peg$parsecmd();
6853 if (s3 !== peg$FAILED) {
6854 s4 = peg$parse__();
6855 if (s4 !== peg$FAILED) {
6856 s5 = peg$parseliteral();
6857 if (s5 !== peg$FAILED) {
6858 peg$savedPos = s0;
6859 s1 = peg$c346(s1, s3, s5);
6860 s0 = s1;
6861 } else {
6862 peg$currPos = s0;
6863 s0 = peg$FAILED;
6864 }
6865 } else {
6866 peg$currPos = s0;
6867 s0 = peg$FAILED;
6868 }
6869 } else {
6870 peg$currPos = s0;
6871 s0 = peg$FAILED;
6872 }
6873 } else {
6874 peg$currPos = s0;
6875 s0 = peg$FAILED;
6876 }
6877 } else {
6878 peg$currPos = s0;
6879 s0 = peg$FAILED;
6880 }
6881
6882 return s0;
6883 }
6884
6885 function peg$parsecmd() {
6886 var s0, s1, s2, s3, s4, s5;
6887
6888 s0 = peg$currPos;
6889 if (input.charCodeAt(peg$currPos) === 40) {
6890 s1 = peg$c177;
6891 peg$currPos++;
6892 } else {
6893 s1 = peg$FAILED;
6894 if (peg$silentFails === 0) { peg$fail(peg$c178); }
6895 }
6896 if (s1 !== peg$FAILED) {
6897 s2 = peg$parse__();
6898 if (s2 !== peg$FAILED) {
6899 s3 = peg$parsemodule();
6900 if (s3 === peg$FAILED) {
6901 s3 = peg$parseinvoke();
6902 if (s3 === peg$FAILED) {
6903 s3 = peg$parseassert_return();
6904 if (s3 === peg$FAILED) {
6905 s3 = peg$parseassert_return_nan();
6906 if (s3 === peg$FAILED) {
6907 s3 = peg$parseassert_trap();
6908 if (s3 === peg$FAILED) {
6909 s3 = peg$parseassert_invalid();
6910 if (s3 === peg$FAILED) {
6911 s3 = peg$parsesegment();
6912 if (s3 === peg$FAILED) {
6913 s3 = peg$parsefunc();
6914 if (s3 === peg$FAILED) {
6915 s3 = peg$parseimport();
6916 if (s3 === peg$FAILED) {
6917 s3 = peg$parseexport();
6918 if (s3 === peg$FAILED) {
6919 s3 = peg$parsetable();
6920 if (s3 === peg$FAILED) {
6921 s3 = peg$parsememory();
6922 if (s3 === peg$FAILED) {
6923 s3 = peg$parsetype_def();
6924 if (s3 === peg$FAILED) {
6925 s3 = peg$parse_start();
6926 }
6927 }
6928 }
6929 }
6930 }
6931 }
6932 }
6933 }
6934 }
6935 }
6936 }
6937 }
6938 }
6939 if (s3 !== peg$FAILED) {
6940 s4 = peg$parse__();
6941 if (s4 !== peg$FAILED) {
6942 if (input.charCodeAt(peg$currPos) === 41) {
6943 s5 = peg$c183;
6944 peg$currPos++;
6945 } else {
6946 s5 = peg$FAILED;
6947 if (peg$silentFails === 0) { peg$fail(peg$c184); }
6948 }
6949 if (s5 !== peg$FAILED) {
6950 peg$savedPos = s0;
6951 s1 = peg$c347(s3);
6952 s0 = s1;
6953 } else {
6954 peg$currPos = s0;
6955 s0 = peg$FAILED;
6956 }
6957 } else {
6958 peg$currPos = s0;
6959 s0 = peg$FAILED;
6960 }
6961 } else {
6962 peg$currPos = s0;
6963 s0 = peg$FAILED;
6964 }
6965 } else {
6966 peg$currPos = s0;
6967 s0 = peg$FAILED;
6968 }
6969 } else {
6970 peg$currPos = s0;
6971 s0 = peg$FAILED;
6972 }
6973 if (s0 === peg$FAILED) {
6974 s0 = peg$currPos;
6975 s1 = peg$parseexpr();
6976 if (s1 !== peg$FAILED) {
6977 peg$savedPos = s0;
6978 s1 = peg$c347(s1);
6979 }
6980 s0 = s1;
6981 }
6982
6983 return s0;
6984 }
6985
6986 peg$result = peg$startRuleFunction();
6987
6988 if (peg$result !== peg$FAILED && peg$currPos === input.length) {
6989 return peg$result;
6990 } else {
6991 if (peg$result !== peg$FAILED && peg$currPos < input.length) {
6992 peg$fail({ type: "end", description: "end of input" });
6993 }
6994
6995 throw peg$buildException(
6996 null,
6997 peg$maxFailExpected,
6998 peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
6999 peg$maxFailPos < input.length
7000 ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
7001 : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
7002 );
7003 }
7004 }
7005
7006 return {
7007 SyntaxError: peg$SyntaxError,
7008 parse: peg$parse
7009 };
7010})();