@weborigami/language 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,7 +21,7 @@ import {
21
21
  annotate,
22
22
  downgradeReference,
23
23
  makeArray,
24
- makeBinaryOperatorChain,
24
+ makeBinaryOperation,
25
25
  makeCall,
26
26
  makeDeferredArguments,
27
27
  makeObject,
@@ -29,7 +29,7 @@ import {
29
29
  makeProperty,
30
30
  makeReference,
31
31
  makeTemplate,
32
- makeUnaryOperatorCall
32
+ makeUnaryOperation
33
33
  } from "./parserHelpers.js";
34
34
 
35
35
 
@@ -202,244 +202,291 @@ function peg$parse(input, options) {
202
202
  var peg$FAILED = {};
203
203
  var peg$source = options.grammarSource;
204
204
 
205
- var peg$startRuleFunctions = { __: peg$parse__, arguments: peg$parsearguments, arrayLiteral: peg$parsearrayLiteral, arrayEntries: peg$parsearrayEntries, arrayEntry: peg$parsearrayEntry, arrowFunction: peg$parsearrowFunction, callExpression: peg$parsecallExpression, closingBrace: peg$parseclosingBrace, closingBracket: peg$parseclosingBracket, closingParenthesis: peg$parseclosingParenthesis, comment: peg$parsecomment, conditionalExpression: peg$parseconditionalExpression, digits: peg$parsedigits, doubleArrow: peg$parsedoubleArrow, doubleQuoteString: peg$parsedoubleQuoteString, doubleQuoteStringChar: peg$parsedoubleQuoteStringChar, ellipsis: peg$parseellipsis, equalityExpression: peg$parseequalityExpression, equalityOperator: peg$parseequalityOperator, escapedChar: peg$parseescapedChar, expression: peg$parseexpression, floatLiteral: peg$parsefloatLiteral, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, homeDirectory: peg$parsehomeDirectory, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, identifierList: peg$parseidentifierList, implicitParenthesesCallExpression: peg$parseimplicitParenthesesCallExpression, implicitParensthesesArguments: peg$parseimplicitParensthesesArguments, inlineSpace: peg$parseinlineSpace, integerLiteral: peg$parseintegerLiteral, list: peg$parselist, literal: peg$parseliteral, logicalAndExpression: peg$parselogicalAndExpression, logicalOrExpression: peg$parselogicalOrExpression, multiLineComment: peg$parsemultiLineComment, namespace: peg$parsenamespace, newLine: peg$parsenewLine, numericLiteral: peg$parsenumericLiteral, nullishCoalescingExpression: peg$parsenullishCoalescingExpression, objectLiteral: peg$parseobjectLiteral, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectGetter: peg$parseobjectGetter, objectHiddenKey: peg$parseobjectHiddenKey, objectKey: peg$parseobjectKey, objectProperty: peg$parseobjectProperty, objectShorthandProperty: peg$parseobjectShorthandProperty, objectPublicKey: peg$parseobjectPublicKey, parenthesesArguments: peg$parseparenthesesArguments, path: peg$parsepath, pathArguments: peg$parsepathArguments, pathKey: peg$parsepathKey, pathSegment: peg$parsepathSegment, pathSegmentChar: peg$parsepathSegmentChar, pipelineExpression: peg$parsepipelineExpression, primary: peg$parseprimary, program: peg$parseprogram, protocolExpression: peg$parseprotocolExpression, qualifiedReference: peg$parsequalifiedReference, reference: peg$parsereference, rootDirectory: peg$parserootDirectory, scopeReference: peg$parsescopeReference, separator: peg$parseseparator, slashFollows: peg$parseslashFollows, shebang: peg$parseshebang, shorthandFunction: peg$parseshorthandFunction, sign: peg$parsesign, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, spread: peg$parsespread, stringLiteral: peg$parsestringLiteral, templateDocument: peg$parsetemplateDocument, templateDocumentChar: peg$parsetemplateDocumentChar, templateDocumentContents: peg$parsetemplateDocumentContents, templateDocumentText: peg$parsetemplateDocumentText, templateLiteral: peg$parsetemplateLiteral, templateLiteralChar: peg$parsetemplateLiteralChar, templateLiteralContents: peg$parsetemplateLiteralContents, templateLiteralText: peg$parsetemplateLiteralText, templateSubstitution: peg$parsetemplateSubstitution, textChar: peg$parsetextChar, unaryExpression: peg$parseunaryExpression, unaryOperator: peg$parseunaryOperator, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
205
+ var peg$startRuleFunctions = { __: peg$parse__, additiveExpression: peg$parseadditiveExpression, additiveOperator: peg$parseadditiveOperator, arguments: peg$parsearguments, arrayLiteral: peg$parsearrayLiteral, arrayEntries: peg$parsearrayEntries, arrayEntry: peg$parsearrayEntry, arrowFunction: peg$parsearrowFunction, bitwiseAndExpression: peg$parsebitwiseAndExpression, bitwiseAndOperator: peg$parsebitwiseAndOperator, bitwiseOrExpression: peg$parsebitwiseOrExpression, bitwiseOrOperator: peg$parsebitwiseOrOperator, bitwiseXorExpression: peg$parsebitwiseXorExpression, bitwiseXorOperator: peg$parsebitwiseXorOperator, callExpression: peg$parsecallExpression, closingBrace: peg$parseclosingBrace, closingBracket: peg$parseclosingBracket, closingParenthesis: peg$parseclosingParenthesis, commaExpression: peg$parsecommaExpression, comment: peg$parsecomment, conditionalExpression: peg$parseconditionalExpression, digits: peg$parsedigits, doubleArrow: peg$parsedoubleArrow, doubleQuoteString: peg$parsedoubleQuoteString, doubleQuoteStringChar: peg$parsedoubleQuoteStringChar, ellipsis: peg$parseellipsis, equalityExpression: peg$parseequalityExpression, equalityOperator: peg$parseequalityOperator, escapedChar: peg$parseescapedChar, exponentiationExpression: peg$parseexponentiationExpression, expression: peg$parseexpression, floatLiteral: peg$parsefloatLiteral, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, homeDirectory: peg$parsehomeDirectory, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, identifierList: peg$parseidentifierList, implicitParenthesesCallExpression: peg$parseimplicitParenthesesCallExpression, implicitParensthesesArguments: peg$parseimplicitParensthesesArguments, inlineSpace: peg$parseinlineSpace, integerLiteral: peg$parseintegerLiteral, list: peg$parselist, literal: peg$parseliteral, logicalAndExpression: peg$parselogicalAndExpression, logicalOrExpression: peg$parselogicalOrExpression, multiLineComment: peg$parsemultiLineComment, multiplicativeExpression: peg$parsemultiplicativeExpression, multiplicativeOperator: peg$parsemultiplicativeOperator, namespace: peg$parsenamespace, newLine: peg$parsenewLine, numericLiteral: peg$parsenumericLiteral, nullishCoalescingExpression: peg$parsenullishCoalescingExpression, objectLiteral: peg$parseobjectLiteral, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectGetter: peg$parseobjectGetter, objectHiddenKey: peg$parseobjectHiddenKey, objectKey: peg$parseobjectKey, objectProperty: peg$parseobjectProperty, objectShorthandProperty: peg$parseobjectShorthandProperty, objectPublicKey: peg$parseobjectPublicKey, parenthesesArguments: peg$parseparenthesesArguments, path: peg$parsepath, pathArguments: peg$parsepathArguments, pathKey: peg$parsepathKey, pathSegment: peg$parsepathSegment, pathSegmentChar: peg$parsepathSegmentChar, pipelineExpression: peg$parsepipelineExpression, primary: peg$parseprimary, program: peg$parseprogram, protocolExpression: peg$parseprotocolExpression, qualifiedReference: peg$parsequalifiedReference, reference: peg$parsereference, relationalExpression: peg$parserelationalExpression, relationalOperator: peg$parserelationalOperator, rootDirectory: peg$parserootDirectory, scopeReference: peg$parsescopeReference, separator: peg$parseseparator, slashFollows: peg$parseslashFollows, shebang: peg$parseshebang, shiftExpression: peg$parseshiftExpression, shiftOperator: peg$parseshiftOperator, shorthandFunction: peg$parseshorthandFunction, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, spreadElement: peg$parsespreadElement, stringLiteral: peg$parsestringLiteral, templateDocument: peg$parsetemplateDocument, templateDocumentChar: peg$parsetemplateDocumentChar, templateDocumentContents: peg$parsetemplateDocumentContents, templateDocumentText: peg$parsetemplateDocumentText, templateLiteral: peg$parsetemplateLiteral, templateLiteralChar: peg$parsetemplateLiteralChar, templateLiteralContents: peg$parsetemplateLiteralContents, templateLiteralText: peg$parsetemplateLiteralText, templateSubstitution: peg$parsetemplateSubstitution, textChar: peg$parsetextChar, unaryExpression: peg$parseunaryExpression, unaryOperator: peg$parseunaryOperator, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
206
206
  var peg$startRuleFunction = peg$parse__;
207
207
 
208
208
  var peg$c0 = "[";
209
- var peg$c1 = "(";
210
- var peg$c2 = ")";
211
- var peg$c3 = "}";
212
- var peg$c4 = "]";
213
- var peg$c5 = "?";
214
- var peg$c6 = ":";
215
- var peg$c7 = "\u21D2";
216
- var peg$c8 = "=>";
217
- var peg$c9 = "\"";
218
- var peg$c10 = "...";
219
- var peg$c11 = "\u2026";
220
- var peg$c12 = "===";
221
- var peg$c13 = "!==";
222
- var peg$c14 = "==";
223
- var peg$c15 = "!=";
224
- var peg$c16 = "\\0";
225
- var peg$c17 = "\\b";
226
- var peg$c18 = "\\f";
227
- var peg$c19 = "\\n";
228
- var peg$c20 = "\\r";
229
- var peg$c21 = "\\t";
230
- var peg$c22 = "\\v";
231
- var peg$c23 = "\\";
232
- var peg$c24 = ".";
233
- var peg$c25 = "\xAB";
234
- var peg$c26 = "\xBB";
235
- var peg$c27 = "~";
236
- var peg$c28 = "-";
237
- var peg$c29 = ">";
238
- var peg$c30 = "&&";
239
- var peg$c31 = "||";
240
- var peg$c32 = "/*";
241
- var peg$c33 = "*/";
242
- var peg$c34 = "@";
243
- var peg$c35 = "\n";
244
- var peg$c36 = "\r\n";
245
- var peg$c37 = "\r";
246
- var peg$c38 = "??";
247
- var peg$c39 = "{";
248
- var peg$c40 = "=";
249
- var peg$c41 = "/";
250
- var peg$c42 = "//";
251
- var peg$c43 = ",";
252
- var peg$c44 = "#!";
253
- var peg$c45 = "\u2192";
254
- var peg$c46 = "->";
255
- var peg$c47 = "'";
256
- var peg$c48 = "${";
257
- var peg$c49 = "`";
258
- var peg$c50 = "!";
259
-
260
- var peg$r0 = /^[0-9]/;
261
- var peg$r1 = /^[^(){}[\]<>?!&|\-=,\/:`"'\xAB\xBB\\ \u2192\u21D2\t\n\r]/;
262
- var peg$r2 = /^[ \t]/;
263
- var peg$r3 = /^[A-Za-z]/;
264
- var peg$r4 = /^[^(){}[\],:\/\\ \t\n\r]/;
265
- var peg$r5 = /^[^\n\r]/;
266
- var peg$r6 = /^[+\-]/;
267
-
268
- var peg$e0 = peg$otherExpectation("function arguments");
269
- var peg$e1 = peg$otherExpectation("array");
270
- var peg$e2 = peg$literalExpectation("[", false);
271
- var peg$e3 = peg$literalExpectation("(", false);
272
- var peg$e4 = peg$literalExpectation(")", false);
273
- var peg$e5 = peg$otherExpectation("function call");
274
- var peg$e6 = peg$literalExpectation("}", false);
275
- var peg$e7 = peg$anyExpectation();
276
- var peg$e8 = peg$literalExpectation("]", false);
277
- var peg$e9 = peg$otherExpectation("comment");
278
- var peg$e10 = peg$literalExpectation("?", false);
279
- var peg$e11 = peg$literalExpectation(":", false);
280
- var peg$e12 = peg$classExpectation([["0", "9"]], false, false);
281
- var peg$e13 = peg$literalExpectation("\u21D2", false);
282
- var peg$e14 = peg$literalExpectation("=>", false);
283
- var peg$e15 = peg$otherExpectation("double quote string");
284
- var peg$e16 = peg$literalExpectation("\"", false);
285
- var peg$e17 = peg$literalExpectation("...", false);
286
- var peg$e18 = peg$literalExpectation("\u2026", false);
287
- var peg$e19 = peg$literalExpectation("===", false);
288
- var peg$e20 = peg$literalExpectation("!==", false);
289
- var peg$e21 = peg$literalExpectation("==", false);
290
- var peg$e22 = peg$literalExpectation("!=", false);
291
- var peg$e23 = peg$otherExpectation("backslash-escaped character");
292
- var peg$e24 = peg$literalExpectation("\\0", false);
293
- var peg$e25 = peg$literalExpectation("\\b", false);
294
- var peg$e26 = peg$literalExpectation("\\f", false);
295
- var peg$e27 = peg$literalExpectation("\\n", false);
296
- var peg$e28 = peg$literalExpectation("\\r", false);
297
- var peg$e29 = peg$literalExpectation("\\t", false);
298
- var peg$e30 = peg$literalExpectation("\\v", false);
299
- var peg$e31 = peg$literalExpectation("\\", false);
300
- var peg$e32 = peg$otherExpectation("floating-point number");
301
- var peg$e33 = peg$literalExpectation(".", false);
302
- var peg$e34 = peg$otherExpectation("parenthetical group");
303
- var peg$e35 = peg$otherExpectation("guillemet string");
304
- var peg$e36 = peg$literalExpectation("\xAB", false);
305
- var peg$e37 = peg$literalExpectation("\xBB", false);
306
- var peg$e38 = peg$literalExpectation("~", false);
307
- var peg$e39 = peg$otherExpectation("HTTP/HTTPS host");
308
- var peg$e40 = peg$otherExpectation("identifier");
309
- var peg$e41 = peg$classExpectation(["(", ")", "{", "}", "[", "]", "<", ">", "?", "!", "&", "|", "-", "=", ",", "/", ":", "`", "\"", "'", "\xAB", "\xBB", "\\", " ", "\u2192", "\u21D2", "\t", "\n", "\r"], true, false);
310
- var peg$e42 = peg$literalExpectation("-", false);
311
- var peg$e43 = peg$literalExpectation(">", false);
312
- var peg$e44 = peg$otherExpectation("function call with implicit parentheses");
313
- var peg$e45 = peg$classExpectation([" ", "\t"], false, false);
314
- var peg$e46 = peg$otherExpectation("integer");
315
- var peg$e47 = peg$otherExpectation("list");
316
- var peg$e48 = peg$literalExpectation("&&", false);
317
- var peg$e49 = peg$literalExpectation("||", false);
318
- var peg$e50 = peg$literalExpectation("/*", false);
319
- var peg$e51 = peg$literalExpectation("*/", false);
320
- var peg$e52 = peg$literalExpectation("@", false);
321
- var peg$e53 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false);
322
- var peg$e54 = peg$literalExpectation("\n", false);
323
- var peg$e55 = peg$literalExpectation("\r\n", false);
324
- var peg$e56 = peg$literalExpectation("\r", false);
325
- var peg$e57 = peg$otherExpectation("number");
326
- var peg$e58 = peg$literalExpectation("??", false);
327
- var peg$e59 = peg$otherExpectation("object literal");
328
- var peg$e60 = peg$literalExpectation("{", false);
329
- var peg$e61 = peg$otherExpectation("object getter");
330
- var peg$e62 = peg$literalExpectation("=", false);
331
- var peg$e63 = peg$otherExpectation("object key");
332
- var peg$e64 = peg$otherExpectation("object property");
333
- var peg$e65 = peg$otherExpectation("object identifier");
334
- var peg$e66 = peg$literalExpectation("/", false);
335
- var peg$e67 = peg$otherExpectation("function arguments in parentheses");
336
- var peg$e68 = peg$otherExpectation("slash-separated path");
337
- var peg$e69 = peg$classExpectation(["(", ")", "{", "}", "[", "]", ",", ":", "/", "\\", " ", "\t", "\n", "\r"], true, false);
338
- var peg$e70 = peg$otherExpectation("Origami program");
339
- var peg$e71 = peg$literalExpectation("//", false);
340
- var peg$e72 = peg$otherExpectation("scope reference");
341
- var peg$e73 = peg$literalExpectation(",", false);
342
- var peg$e74 = peg$literalExpectation("#!", false);
343
- var peg$e75 = peg$classExpectation(["\n", "\r"], true, false);
344
- var peg$e76 = peg$otherExpectation("lambda function");
345
- var peg$e77 = peg$classExpectation(["+", "-"], false, false);
346
- var peg$e78 = peg$literalExpectation("\u2192", false);
347
- var peg$e79 = peg$literalExpectation("->", false);
348
- var peg$e80 = peg$otherExpectation("single quote string");
349
- var peg$e81 = peg$literalExpectation("'", false);
350
- var peg$e82 = peg$otherExpectation("string");
351
- var peg$e83 = peg$otherExpectation("template");
352
- var peg$e84 = peg$literalExpectation("${", false);
353
- var peg$e85 = peg$otherExpectation("template text");
354
- var peg$e86 = peg$otherExpectation("template literal");
355
- var peg$e87 = peg$literalExpectation("`", false);
356
- var peg$e88 = peg$otherExpectation("template substitution");
357
- var peg$e89 = peg$literalExpectation("!", false);
209
+ var peg$c1 = "]";
210
+ var peg$c2 = "(";
211
+ var peg$c3 = ")";
212
+ var peg$c4 = "&";
213
+ var peg$c5 = "|";
214
+ var peg$c6 = "^";
215
+ var peg$c7 = "}";
216
+ var peg$c8 = ",";
217
+ var peg$c9 = "?";
218
+ var peg$c10 = ":";
219
+ var peg$c11 = "\u21D2";
220
+ var peg$c12 = "=>";
221
+ var peg$c13 = "\"";
222
+ var peg$c14 = "...";
223
+ var peg$c15 = "\u2026";
224
+ var peg$c16 = "===";
225
+ var peg$c17 = "!==";
226
+ var peg$c18 = "==";
227
+ var peg$c19 = "!=";
228
+ var peg$c20 = "\\0";
229
+ var peg$c21 = "\\b";
230
+ var peg$c22 = "\\f";
231
+ var peg$c23 = "\\n";
232
+ var peg$c24 = "\\r";
233
+ var peg$c25 = "\\t";
234
+ var peg$c26 = "\\v";
235
+ var peg$c27 = "\\";
236
+ var peg$c28 = "**";
237
+ var peg$c29 = ".";
238
+ var peg$c30 = "\xAB";
239
+ var peg$c31 = "\xBB";
240
+ var peg$c32 = "~";
241
+ var peg$c33 = "-";
242
+ var peg$c34 = ">";
243
+ var peg$c35 = "&&";
244
+ var peg$c36 = "||";
245
+ var peg$c37 = "/*";
246
+ var peg$c38 = "*/";
247
+ var peg$c39 = "@";
248
+ var peg$c40 = "\n";
249
+ var peg$c41 = "\r\n";
250
+ var peg$c42 = "\r";
251
+ var peg$c43 = "??";
252
+ var peg$c44 = "{";
253
+ var peg$c45 = "=";
254
+ var peg$c46 = "/";
255
+ var peg$c47 = "//";
256
+ var peg$c48 = "<=";
257
+ var peg$c49 = "<";
258
+ var peg$c50 = ">=";
259
+ var peg$c51 = "#!";
260
+ var peg$c52 = "<<";
261
+ var peg$c53 = ">>>";
262
+ var peg$c54 = ">>";
263
+ var peg$c55 = "\u2192";
264
+ var peg$c56 = "->";
265
+ var peg$c57 = "'";
266
+ var peg$c58 = "${";
267
+ var peg$c59 = "`";
268
+
269
+ var peg$r0 = /^[+\-]/;
270
+ var peg$r1 = /^[0-9]/;
271
+ var peg$r2 = /^[^(){}[\]<>?!|\-=,\/:`"'\xAB\xBB\\\u2192\u21D2\u2026 \t\n\r]/;
272
+ var peg$r3 = /^[ \t]/;
273
+ var peg$r4 = /^[%*\/]/;
274
+ var peg$r5 = /^[A-Za-z]/;
275
+ var peg$r6 = /^[^(){}[\],:\/\\ \t\n\r]/;
276
+ var peg$r7 = /^[^\n\r]/;
277
+ var peg$r8 = /^[!+\-~]/;
278
+
279
+ var peg$e0 = peg$classExpectation(["+", "-"], false, false);
280
+ var peg$e1 = peg$otherExpectation("function arguments");
281
+ var peg$e2 = peg$otherExpectation("array");
282
+ var peg$e3 = peg$literalExpectation("[", false);
283
+ var peg$e4 = peg$literalExpectation("]", false);
284
+ var peg$e5 = peg$literalExpectation("(", false);
285
+ var peg$e6 = peg$literalExpectation(")", false);
286
+ var peg$e7 = peg$literalExpectation("&", false);
287
+ var peg$e8 = peg$literalExpectation("|", false);
288
+ var peg$e9 = peg$literalExpectation("^", false);
289
+ var peg$e10 = peg$otherExpectation("function call");
290
+ var peg$e11 = peg$literalExpectation("}", false);
291
+ var peg$e12 = peg$anyExpectation();
292
+ var peg$e13 = peg$literalExpectation(",", false);
293
+ var peg$e14 = peg$otherExpectation("comment");
294
+ var peg$e15 = peg$literalExpectation("?", false);
295
+ var peg$e16 = peg$literalExpectation(":", false);
296
+ var peg$e17 = peg$classExpectation([["0", "9"]], false, false);
297
+ var peg$e18 = peg$literalExpectation("\u21D2", false);
298
+ var peg$e19 = peg$literalExpectation("=>", false);
299
+ var peg$e20 = peg$otherExpectation("double quote string");
300
+ var peg$e21 = peg$literalExpectation("\"", false);
301
+ var peg$e22 = peg$literalExpectation("...", false);
302
+ var peg$e23 = peg$literalExpectation("\u2026", false);
303
+ var peg$e24 = peg$literalExpectation("===", false);
304
+ var peg$e25 = peg$literalExpectation("!==", false);
305
+ var peg$e26 = peg$literalExpectation("==", false);
306
+ var peg$e27 = peg$literalExpectation("!=", false);
307
+ var peg$e28 = peg$otherExpectation("backslash-escaped character");
308
+ var peg$e29 = peg$literalExpectation("\\0", false);
309
+ var peg$e30 = peg$literalExpectation("\\b", false);
310
+ var peg$e31 = peg$literalExpectation("\\f", false);
311
+ var peg$e32 = peg$literalExpectation("\\n", false);
312
+ var peg$e33 = peg$literalExpectation("\\r", false);
313
+ var peg$e34 = peg$literalExpectation("\\t", false);
314
+ var peg$e35 = peg$literalExpectation("\\v", false);
315
+ var peg$e36 = peg$literalExpectation("\\", false);
316
+ var peg$e37 = peg$literalExpectation("**", false);
317
+ var peg$e38 = peg$otherExpectation("floating-point number");
318
+ var peg$e39 = peg$literalExpectation(".", false);
319
+ var peg$e40 = peg$otherExpectation("parenthetical group");
320
+ var peg$e41 = peg$otherExpectation("guillemet string");
321
+ var peg$e42 = peg$literalExpectation("\xAB", false);
322
+ var peg$e43 = peg$literalExpectation("\xBB", false);
323
+ var peg$e44 = peg$literalExpectation("~", false);
324
+ var peg$e45 = peg$otherExpectation("HTTP/HTTPS host");
325
+ var peg$e46 = peg$otherExpectation("identifier");
326
+ var peg$e47 = peg$classExpectation(["(", ")", "{", "}", "[", "]", "<", ">", "?", "!", "|", "-", "=", ",", "/", ":", "`", "\"", "'", "\xAB", "\xBB", "\\", "\u2192", "\u21D2", "\u2026", " ", "\t", "\n", "\r"], true, false);
327
+ var peg$e48 = peg$literalExpectation("-", false);
328
+ var peg$e49 = peg$literalExpectation(">", false);
329
+ var peg$e50 = peg$otherExpectation("function call with implicit parentheses");
330
+ var peg$e51 = peg$classExpectation([" ", "\t"], false, false);
331
+ var peg$e52 = peg$otherExpectation("integer");
332
+ var peg$e53 = peg$otherExpectation("list");
333
+ var peg$e54 = peg$literalExpectation("&&", false);
334
+ var peg$e55 = peg$literalExpectation("||", false);
335
+ var peg$e56 = peg$literalExpectation("/*", false);
336
+ var peg$e57 = peg$literalExpectation("*/", false);
337
+ var peg$e58 = peg$classExpectation(["%", "*", "/"], false, false);
338
+ var peg$e59 = peg$literalExpectation("@", false);
339
+ var peg$e60 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false);
340
+ var peg$e61 = peg$literalExpectation("\n", false);
341
+ var peg$e62 = peg$literalExpectation("\r\n", false);
342
+ var peg$e63 = peg$literalExpectation("\r", false);
343
+ var peg$e64 = peg$otherExpectation("number");
344
+ var peg$e65 = peg$literalExpectation("??", false);
345
+ var peg$e66 = peg$otherExpectation("object literal");
346
+ var peg$e67 = peg$literalExpectation("{", false);
347
+ var peg$e68 = peg$otherExpectation("object getter");
348
+ var peg$e69 = peg$literalExpectation("=", false);
349
+ var peg$e70 = peg$otherExpectation("object key");
350
+ var peg$e71 = peg$otherExpectation("object property");
351
+ var peg$e72 = peg$otherExpectation("object identifier");
352
+ var peg$e73 = peg$literalExpectation("/", false);
353
+ var peg$e74 = peg$otherExpectation("function arguments in parentheses");
354
+ var peg$e75 = peg$otherExpectation("slash-separated path");
355
+ var peg$e76 = peg$classExpectation(["(", ")", "{", "}", "[", "]", ",", ":", "/", "\\", " ", "\t", "\n", "\r"], true, false);
356
+ var peg$e77 = peg$otherExpectation("Origami program");
357
+ var peg$e78 = peg$literalExpectation("//", false);
358
+ var peg$e79 = peg$literalExpectation("<=", false);
359
+ var peg$e80 = peg$literalExpectation("<", false);
360
+ var peg$e81 = peg$literalExpectation(">=", false);
361
+ var peg$e82 = peg$otherExpectation("scope reference");
362
+ var peg$e83 = peg$literalExpectation("#!", false);
363
+ var peg$e84 = peg$classExpectation(["\n", "\r"], true, false);
364
+ var peg$e85 = peg$literalExpectation("<<", false);
365
+ var peg$e86 = peg$literalExpectation(">>>", false);
366
+ var peg$e87 = peg$literalExpectation(">>", false);
367
+ var peg$e88 = peg$otherExpectation("lambda function");
368
+ var peg$e89 = peg$literalExpectation("\u2192", false);
369
+ var peg$e90 = peg$literalExpectation("->", false);
370
+ var peg$e91 = peg$otherExpectation("single quote string");
371
+ var peg$e92 = peg$literalExpectation("'", false);
372
+ var peg$e93 = peg$otherExpectation("string");
373
+ var peg$e94 = peg$otherExpectation("template");
374
+ var peg$e95 = peg$literalExpectation("${", false);
375
+ var peg$e96 = peg$otherExpectation("template text");
376
+ var peg$e97 = peg$otherExpectation("template literal");
377
+ var peg$e98 = peg$literalExpectation("`", false);
378
+ var peg$e99 = peg$otherExpectation("template substitution");
379
+ var peg$e100 = peg$classExpectation(["!", "+", "-", "~"], false, false);
358
380
 
359
381
  var peg$f0 = function() {
360
382
  return null;
361
383
  };
362
- var peg$f1 = function(entries) {
363
- return annotate(makeArray(entries ?? []), location());
384
+ var peg$f1 = function(head, tail) {
385
+ return annotate(tail.reduce(makeBinaryOperation, head), location());
364
386
  };
365
387
  var peg$f2 = function(entries) {
388
+ return annotate(makeArray(entries ?? []), location());
389
+ };
390
+ var peg$f3 = function(entries) {
366
391
  return annotate(entries, location());
367
392
  };
368
- var peg$f3 = function(parameters, pipeline) {
393
+ var peg$f4 = function() {
394
+ return annotate([ops.literal, undefined], location());
395
+ };
396
+ var peg$f5 = function(parameters, pipeline) {
369
397
  return annotate([ops.lambda, parameters ?? [], pipeline], location());
370
398
  };
371
- var peg$f4 = function(head, tail) {
372
- return tail.length === 0
373
- ? head
374
- : annotate(tail.reduce(makeCall, head), location());
399
+ var peg$f6 = function(identifier, pipeline) {
400
+ return annotate([ops.lambda, [identifier], pipeline], location());
401
+ };
402
+ var peg$f7 = function(head, tail) {
403
+ return annotate(tail.reduce(makeBinaryOperation, head), location());
404
+ };
405
+ var peg$f8 = function(head, tail) {
406
+ return annotate(tail.reduce(makeBinaryOperation, head), location());
407
+ };
408
+ var peg$f9 = function(head, tail) {
409
+ return annotate(tail.reduce(makeBinaryOperation, head), location());
410
+ };
411
+ var peg$f10 = function(head, tail) {
412
+ return annotate(tail.reduce(makeCall, head), location());
375
413
  };
376
- var peg$f5 = function() {
377
- error("Expected right curly brace");
414
+ var peg$f11 = function() {
415
+ error(`An object ended without a closing brace, or contained something that wasn't expected.\nThe top level of an object can only contain definitions ("a: b" or "a = b") or spreads ("...a").`);
378
416
  };
379
- var peg$f6 = function() {
417
+ var peg$f12 = function() {
380
418
  error("Expected right bracket");
381
419
  };
382
- var peg$f7 = function() {
420
+ var peg$f13 = function() {
383
421
  error("Expected right parenthesis");
384
422
  };
385
- var peg$f8 = function(condition, truthy, falsy) {
423
+ var peg$f14 = function(list) {
424
+ return list.length === 1
425
+ ? list[0]
426
+ : annotate([ops.comma, ...list], location());
427
+ };
428
+ var peg$f15 = function(condition, tail) {
429
+ if (!tail) {
430
+ return condition;
431
+ }
386
432
  return annotate([
387
433
  ops.conditional,
388
434
  downgradeReference(condition),
389
- [ops.lambda, [], downgradeReference(truthy)],
390
- [ops.lambda, [], downgradeReference(falsy)]
435
+ [ops.lambda, [], downgradeReference(tail[0])],
436
+ [ops.lambda, [], downgradeReference(tail[1])]
391
437
  ], location());
392
438
  };
393
- var peg$f9 = function(chars) {
439
+ var peg$f16 = function(chars) {
394
440
  return annotate([ops.literal, chars.join("")], location());
395
441
  };
396
- var peg$f10 = function(head, tail) {
397
- return tail.length === 0
398
- ? head
399
- : annotate(makeBinaryOperatorChain(head, tail), location());
442
+ var peg$f17 = function(head, tail) {
443
+ return annotate(tail.reduce(makeBinaryOperation, head), location());
444
+ };
445
+ var peg$f18 = function() { return "\0"; };
446
+ var peg$f19 = function() { return "\b"; };
447
+ var peg$f20 = function() { return "\f"; };
448
+ var peg$f21 = function() { return "\n"; };
449
+ var peg$f22 = function() { return "\r"; };
450
+ var peg$f23 = function() { return "\t"; };
451
+ var peg$f24 = function() { return "\v"; };
452
+ var peg$f25 = function(left, right) {
453
+ return right ? annotate([ops.exponentiation, left, right], location()) : left;
400
454
  };
401
- var peg$f11 = function() { return "\0"; };
402
- var peg$f12 = function() { return "\b"; };
403
- var peg$f13 = function() { return "\f"; };
404
- var peg$f14 = function() { return "\n"; };
405
- var peg$f15 = function() { return "\r"; };
406
- var peg$f16 = function() { return "\t"; };
407
- var peg$f17 = function() { return "\v"; };
408
- var peg$f18 = function() {
455
+ var peg$f26 = function() {
409
456
  return annotate([ops.literal, parseFloat(text())], location());
410
457
  };
411
- var peg$f19 = function(expression) {
458
+ var peg$f27 = function(expression) {
412
459
  return annotate(downgradeReference(expression), location());
413
460
  };
414
- var peg$f20 = function(chars) {
461
+ var peg$f28 = function(chars) {
415
462
  return annotate([ops.literal, chars.join("")], location());
416
463
  };
417
- var peg$f21 = function() {
464
+ var peg$f29 = function() {
418
465
  return annotate([ops.homeDirectory], location());
419
466
  };
420
- var peg$f22 = function(identifier, port, slashFollows) {
467
+ var peg$f30 = function(identifier, port, slashFollows) {
421
468
  const portText = port ? `:${port[1]}` : "";
422
469
  const slashText = slashFollows ? "/" : "";
423
470
  const hostText = identifier + portText + slashText;
424
471
  return annotate([ops.literal, hostText], location());
425
472
  };
426
- var peg$f23 = function(chars) { return chars.join(""); };
427
- var peg$f24 = function(list) {
473
+ var peg$f31 = function(chars) { return chars.join(""); };
474
+ var peg$f32 = function(list) {
428
475
  return annotate(list, location());
429
476
  };
430
- var peg$f25 = function(head, args) {
477
+ var peg$f33 = function(head, args) {
431
478
  return args ? makeCall(head, args) : head;
432
479
  };
433
- var peg$f26 = function(values) {
480
+ var peg$f34 = function(values) {
434
481
  return annotate(values, location());
435
482
  };
436
- var peg$f27 = function() {
483
+ var peg$f35 = function() {
437
484
  return annotate([ops.literal, parseInt(text())], location());
438
485
  };
439
- var peg$f28 = function(values) {
486
+ var peg$f36 = function(values) {
440
487
  return annotate(values, location());
441
488
  };
442
- var peg$f29 = function(head, tail) {
489
+ var peg$f37 = function(head, tail) {
443
490
  return tail.length === 0
444
491
  ? head
445
492
  : annotate(
@@ -447,7 +494,7 @@ function peg$parse(input, options) {
447
494
  location()
448
495
  );
449
496
  };
450
- var peg$f30 = function(head, tail) {
497
+ var peg$f38 = function(head, tail) {
451
498
  return tail.length === 0
452
499
  ? head
453
500
  : annotate(
@@ -455,11 +502,14 @@ function peg$parse(input, options) {
455
502
  location()
456
503
  );
457
504
  };
458
- var peg$f31 = function() { return null; };
459
- var peg$f32 = function(at, chars) {
505
+ var peg$f39 = function() { return null; };
506
+ var peg$f40 = function(head, tail) {
507
+ return annotate(tail.reduce(makeBinaryOperation, head), location());
508
+ };
509
+ var peg$f41 = function(at, chars) {
460
510
  return annotate([ops.builtin, (at ?? "") + chars.join("") + ":"], location());
461
511
  };
462
- var peg$f33 = function(head, tail) {
512
+ var peg$f42 = function(head, tail) {
463
513
  return tail.length === 0
464
514
  ? head
465
515
  : annotate(
@@ -467,103 +517,112 @@ function peg$parse(input, options) {
467
517
  location()
468
518
  );
469
519
  };
470
- var peg$f34 = function(entries) {
520
+ var peg$f43 = function(entries) {
471
521
  return annotate(makeObject(entries ?? [], ops.object), location());
472
522
  };
473
- var peg$f35 = function(entries) {
523
+ var peg$f44 = function(entries) {
474
524
  return annotate(entries, location());
475
525
  };
476
- var peg$f36 = function(key, pipeline) {
526
+ var peg$f45 = function(key, pipeline) {
477
527
  return annotate(
478
528
  makeProperty(key, annotate([ops.getter, pipeline], location())),
479
529
  location()
480
530
  );
481
531
  };
482
- var peg$f37 = function(hiddenKey) { return hiddenKey.join(""); };
483
- var peg$f38 = function(key, pipeline) {
532
+ var peg$f46 = function(hiddenKey) { return hiddenKey.join(""); };
533
+ var peg$f47 = function(key, pipeline) {
484
534
  return annotate(makeProperty(key, pipeline), location());
485
535
  };
486
- var peg$f39 = function(key) {
536
+ var peg$f48 = function(key) {
487
537
  return annotate([key, [ops.inherited, key]], location());
488
538
  };
489
- var peg$f40 = function(identifier, slash) {
539
+ var peg$f49 = function(identifier, slash) {
490
540
  return identifier + (slash ?? "");
491
541
  };
492
- var peg$f41 = function(string) {
542
+ var peg$f50 = function(string) {
493
543
  // Remove `ops.literal` from the string code
494
544
  return string[1];
495
545
  };
496
- var peg$f42 = function(list) {
546
+ var peg$f51 = function(list) {
497
547
  return annotate(list ?? [undefined], location());
498
548
  };
499
- var peg$f43 = function(segments) {
549
+ var peg$f52 = function(segments) {
500
550
  // Drop empty segments that represent consecutive or final slashes
501
551
  segments = segments.filter(segment => segment);
502
552
  return annotate(segments, location());
503
553
  };
504
- var peg$f44 = function(path) {
554
+ var peg$f53 = function(path) {
505
555
  return annotate([ops.traverse, ...path], location());
506
556
  };
507
- var peg$f45 = function(chars, slashFollows) {
557
+ var peg$f54 = function(chars, slashFollows) {
508
558
  // Append a trailing slash if one follows (but don't consume it)
509
559
  const key = chars.join("") + (slashFollows ? "/" : "");
510
560
  return annotate([ops.literal, key], location());
511
561
  };
512
- var peg$f46 = function(head, tail) {
513
- return tail.reduce(makePipeline, downgradeReference(head));
562
+ var peg$f55 = function(head, tail) {
563
+ return annotate(
564
+ tail.reduce(makePipeline, downgradeReference(head)),
565
+ location()
566
+ );
514
567
  };
515
- var peg$f47 = function(fn, host, path) {
568
+ var peg$f56 = function(fn, host, path) {
516
569
  const keys = annotate([host, ...(path ?? [])], location());
517
570
  return annotate(makeCall(fn, keys), location());
518
571
  };
519
- var peg$f48 = function(fn, reference) {
572
+ var peg$f57 = function(fn, reference) {
520
573
  const literal = annotate([ops.literal, reference[1]], reference.location);
521
574
  return annotate(makeCall(fn, [literal]), location());
522
575
  };
523
- var peg$f49 = function(key) {
576
+ var peg$f58 = function(head, tail) {
577
+ return annotate(tail.reduce(makeBinaryOperation, head), location());
578
+ };
579
+ var peg$f59 = function(key) {
524
580
  return annotate([ops.rootDirectory, key], location());
525
581
  };
526
- var peg$f50 = function() {
582
+ var peg$f60 = function() {
527
583
  return annotate([ops.rootDirectory], location());
528
584
  };
529
- var peg$f51 = function(identifier, slashFollows) {
585
+ var peg$f61 = function(identifier, slashFollows) {
530
586
  const id = identifier + (slashFollows ? "/" : "");
531
587
  return annotate(makeReference(id), location());
532
588
  };
533
- var peg$f52 = function() {
589
+ var peg$f62 = function() {
534
590
  return true;
535
591
  };
536
- var peg$f53 = function() { return null; };
537
- var peg$f54 = function(definition) {
592
+ var peg$f63 = function() { return null; };
593
+ var peg$f64 = function(head, tail) {
594
+ return annotate(tail.reduce(makeBinaryOperation, head), location());
595
+ };
596
+ var peg$f65 = function(definition) {
538
597
  return annotate([ops.lambda, ["_"], definition], location());
539
598
  };
540
- var peg$f55 = function() { return null; };
541
- var peg$f56 = function(chars) {
599
+ var peg$f66 = function() { return null; };
600
+ var peg$f67 = function(chars) {
542
601
  return annotate([ops.literal, chars.join("")], location());
543
602
  };
544
- var peg$f57 = function(value) {
603
+ var peg$f68 = function(value) {
545
604
  return annotate([ops.spread, value], location());
546
605
  };
547
- var peg$f58 = function(contents) {
606
+ var peg$f69 = function(contents) {
548
607
  return annotate([ops.lambda, ["_"], contents], location());
549
608
  };
550
- var peg$f59 = function(head, tail) {
609
+ var peg$f70 = function(head, tail) {
551
610
  return annotate(makeTemplate(ops.template, head, tail), location());
552
611
  };
553
- var peg$f60 = function(chars) {
612
+ var peg$f71 = function(chars) {
554
613
  return chars.join("");
555
614
  };
556
- var peg$f61 = function(contents) {
615
+ var peg$f72 = function(contents) {
557
616
  return annotate(makeTemplate(ops.template, contents[0], contents[1]), location());
558
617
  };
559
- var peg$f62 = function(chars) {
618
+ var peg$f73 = function(chars) {
560
619
  return chars.join("");
561
620
  };
562
- var peg$f63 = function(expression) {
621
+ var peg$f74 = function(expression) {
563
622
  return annotate(expression, location());
564
623
  };
565
- var peg$f64 = function(operator, expression) {
566
- return annotate(makeUnaryOperatorCall(operator, expression), location());
624
+ var peg$f75 = function(operator, expression) {
625
+ return annotate(makeUnaryOperation(operator, expression), location());
567
626
  };
568
627
  var peg$currPos = options.peg$currPos | 0;
569
628
  var peg$savedPos = peg$currPos;
@@ -756,6 +815,72 @@ function peg$parse(input, options) {
756
815
  return s0;
757
816
  }
758
817
 
818
+ function peg$parseadditiveExpression() {
819
+ var s0, s1, s2, s3, s4, s5, s6, s7;
820
+
821
+ s0 = peg$currPos;
822
+ s1 = peg$parsemultiplicativeExpression();
823
+ if (s1 !== peg$FAILED) {
824
+ s2 = [];
825
+ s3 = peg$currPos;
826
+ s4 = peg$parse__();
827
+ s5 = peg$parseadditiveOperator();
828
+ if (s5 !== peg$FAILED) {
829
+ s6 = peg$parse__();
830
+ s7 = peg$parsemultiplicativeExpression();
831
+ if (s7 !== peg$FAILED) {
832
+ s3 = [ s5, s7 ];
833
+ } else {
834
+ peg$currPos = s3;
835
+ s3 = peg$FAILED;
836
+ }
837
+ } else {
838
+ peg$currPos = s3;
839
+ s3 = peg$FAILED;
840
+ }
841
+ while (s3 !== peg$FAILED) {
842
+ s2.push(s3);
843
+ s3 = peg$currPos;
844
+ s4 = peg$parse__();
845
+ s5 = peg$parseadditiveOperator();
846
+ if (s5 !== peg$FAILED) {
847
+ s6 = peg$parse__();
848
+ s7 = peg$parsemultiplicativeExpression();
849
+ if (s7 !== peg$FAILED) {
850
+ s3 = [ s5, s7 ];
851
+ } else {
852
+ peg$currPos = s3;
853
+ s3 = peg$FAILED;
854
+ }
855
+ } else {
856
+ peg$currPos = s3;
857
+ s3 = peg$FAILED;
858
+ }
859
+ }
860
+ peg$savedPos = s0;
861
+ s0 = peg$f1(s1, s2);
862
+ } else {
863
+ peg$currPos = s0;
864
+ s0 = peg$FAILED;
865
+ }
866
+
867
+ return s0;
868
+ }
869
+
870
+ function peg$parseadditiveOperator() {
871
+ var s0;
872
+
873
+ s0 = input.charAt(peg$currPos);
874
+ if (peg$r0.test(s0)) {
875
+ peg$currPos++;
876
+ } else {
877
+ s0 = peg$FAILED;
878
+ if (peg$silentFails === 0) { peg$fail(peg$e0); }
879
+ }
880
+
881
+ return s0;
882
+ }
883
+
759
884
  function peg$parsearguments() {
760
885
  var s0, s1;
761
886
 
@@ -770,7 +895,7 @@ function peg$parse(input, options) {
770
895
  peg$silentFails--;
771
896
  if (s0 === peg$FAILED) {
772
897
  s1 = peg$FAILED;
773
- if (peg$silentFails === 0) { peg$fail(peg$e0); }
898
+ if (peg$silentFails === 0) { peg$fail(peg$e1); }
774
899
  }
775
900
 
776
901
  return s0;
@@ -786,7 +911,7 @@ function peg$parse(input, options) {
786
911
  peg$currPos++;
787
912
  } else {
788
913
  s1 = peg$FAILED;
789
- if (peg$silentFails === 0) { peg$fail(peg$e2); }
914
+ if (peg$silentFails === 0) { peg$fail(peg$e3); }
790
915
  }
791
916
  if (s1 !== peg$FAILED) {
792
917
  s2 = peg$parse__();
@@ -798,7 +923,7 @@ function peg$parse(input, options) {
798
923
  s5 = peg$parseclosingBracket();
799
924
  if (s5 !== peg$FAILED) {
800
925
  peg$savedPos = s0;
801
- s0 = peg$f1(s3);
926
+ s0 = peg$f2(s3);
802
927
  } else {
803
928
  peg$currPos = s0;
804
929
  s0 = peg$FAILED;
@@ -810,7 +935,7 @@ function peg$parse(input, options) {
810
935
  peg$silentFails--;
811
936
  if (s0 === peg$FAILED) {
812
937
  s1 = peg$FAILED;
813
- if (peg$silentFails === 0) { peg$fail(peg$e1); }
938
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
814
939
  }
815
940
 
816
941
  return s0;
@@ -851,7 +976,7 @@ function peg$parse(input, options) {
851
976
  s2 = null;
852
977
  }
853
978
  peg$savedPos = s0;
854
- s0 = peg$f2(s1);
979
+ s0 = peg$f3(s1);
855
980
  } else {
856
981
  peg$currPos = s0;
857
982
  s0 = peg$FAILED;
@@ -861,11 +986,38 @@ function peg$parse(input, options) {
861
986
  }
862
987
 
863
988
  function peg$parsearrayEntry() {
864
- var s0;
989
+ var s0, s1, s2, s3;
865
990
 
866
- s0 = peg$parsespread();
991
+ s0 = peg$parsespreadElement();
867
992
  if (s0 === peg$FAILED) {
868
993
  s0 = peg$parsepipelineExpression();
994
+ if (s0 === peg$FAILED) {
995
+ s0 = peg$currPos;
996
+ s1 = peg$parse__();
997
+ s2 = peg$currPos;
998
+ peg$silentFails++;
999
+ if (input.charCodeAt(peg$currPos) === 93) {
1000
+ s3 = peg$c1;
1001
+ peg$currPos++;
1002
+ } else {
1003
+ s3 = peg$FAILED;
1004
+ if (peg$silentFails === 0) { peg$fail(peg$e4); }
1005
+ }
1006
+ peg$silentFails--;
1007
+ if (s3 === peg$FAILED) {
1008
+ s2 = undefined;
1009
+ } else {
1010
+ peg$currPos = s2;
1011
+ s2 = peg$FAILED;
1012
+ }
1013
+ if (s2 !== peg$FAILED) {
1014
+ peg$savedPos = s0;
1015
+ s0 = peg$f4();
1016
+ } else {
1017
+ peg$currPos = s0;
1018
+ s0 = peg$FAILED;
1019
+ }
1020
+ }
869
1021
  }
870
1022
 
871
1023
  return s0;
@@ -876,11 +1028,11 @@ function peg$parse(input, options) {
876
1028
 
877
1029
  s0 = peg$currPos;
878
1030
  if (input.charCodeAt(peg$currPos) === 40) {
879
- s1 = peg$c1;
1031
+ s1 = peg$c2;
880
1032
  peg$currPos++;
881
1033
  } else {
882
1034
  s1 = peg$FAILED;
883
- if (peg$silentFails === 0) { peg$fail(peg$e3); }
1035
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
884
1036
  }
885
1037
  if (s1 !== peg$FAILED) {
886
1038
  s2 = peg$parse__();
@@ -890,11 +1042,11 @@ function peg$parse(input, options) {
890
1042
  }
891
1043
  s4 = peg$parse__();
892
1044
  if (input.charCodeAt(peg$currPos) === 41) {
893
- s5 = peg$c2;
1045
+ s5 = peg$c3;
894
1046
  peg$currPos++;
895
1047
  } else {
896
1048
  s5 = peg$FAILED;
897
- if (peg$silentFails === 0) { peg$fail(peg$e4); }
1049
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
898
1050
  }
899
1051
  if (s5 !== peg$FAILED) {
900
1052
  s6 = peg$parse__();
@@ -904,7 +1056,35 @@ function peg$parse(input, options) {
904
1056
  s9 = peg$parsepipelineExpression();
905
1057
  if (s9 !== peg$FAILED) {
906
1058
  peg$savedPos = s0;
907
- s0 = peg$f3(s3, s9);
1059
+ s0 = peg$f5(s3, s9);
1060
+ } else {
1061
+ peg$currPos = s0;
1062
+ s0 = peg$FAILED;
1063
+ }
1064
+ } else {
1065
+ peg$currPos = s0;
1066
+ s0 = peg$FAILED;
1067
+ }
1068
+ } else {
1069
+ peg$currPos = s0;
1070
+ s0 = peg$FAILED;
1071
+ }
1072
+ } else {
1073
+ peg$currPos = s0;
1074
+ s0 = peg$FAILED;
1075
+ }
1076
+ if (s0 === peg$FAILED) {
1077
+ s0 = peg$currPos;
1078
+ s1 = peg$parseidentifier();
1079
+ if (s1 !== peg$FAILED) {
1080
+ s2 = peg$parse__();
1081
+ s3 = peg$parsedoubleArrow();
1082
+ if (s3 !== peg$FAILED) {
1083
+ s4 = peg$parse__();
1084
+ s5 = peg$parsepipelineExpression();
1085
+ if (s5 !== peg$FAILED) {
1086
+ peg$savedPos = s0;
1087
+ s0 = peg$f6(s1, s5);
908
1088
  } else {
909
1089
  peg$currPos = s0;
910
1090
  s0 = peg$FAILED;
@@ -917,12 +1097,263 @@ function peg$parse(input, options) {
917
1097
  peg$currPos = s0;
918
1098
  s0 = peg$FAILED;
919
1099
  }
1100
+ if (s0 === peg$FAILED) {
1101
+ s0 = peg$parseconditionalExpression();
1102
+ }
1103
+ }
1104
+
1105
+ return s0;
1106
+ }
1107
+
1108
+ function peg$parsebitwiseAndExpression() {
1109
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1110
+
1111
+ s0 = peg$currPos;
1112
+ s1 = peg$parseequalityExpression();
1113
+ if (s1 !== peg$FAILED) {
1114
+ s2 = [];
1115
+ s3 = peg$currPos;
1116
+ s4 = peg$parse__();
1117
+ s5 = peg$parsebitwiseAndOperator();
1118
+ if (s5 !== peg$FAILED) {
1119
+ s6 = peg$parse__();
1120
+ s7 = peg$parseequalityExpression();
1121
+ if (s7 !== peg$FAILED) {
1122
+ s3 = [ s5, s7 ];
1123
+ } else {
1124
+ peg$currPos = s3;
1125
+ s3 = peg$FAILED;
1126
+ }
1127
+ } else {
1128
+ peg$currPos = s3;
1129
+ s3 = peg$FAILED;
1130
+ }
1131
+ while (s3 !== peg$FAILED) {
1132
+ s2.push(s3);
1133
+ s3 = peg$currPos;
1134
+ s4 = peg$parse__();
1135
+ s5 = peg$parsebitwiseAndOperator();
1136
+ if (s5 !== peg$FAILED) {
1137
+ s6 = peg$parse__();
1138
+ s7 = peg$parseequalityExpression();
1139
+ if (s7 !== peg$FAILED) {
1140
+ s3 = [ s5, s7 ];
1141
+ } else {
1142
+ peg$currPos = s3;
1143
+ s3 = peg$FAILED;
1144
+ }
1145
+ } else {
1146
+ peg$currPos = s3;
1147
+ s3 = peg$FAILED;
1148
+ }
1149
+ }
1150
+ peg$savedPos = s0;
1151
+ s0 = peg$f7(s1, s2);
1152
+ } else {
1153
+ peg$currPos = s0;
1154
+ s0 = peg$FAILED;
1155
+ }
1156
+
1157
+ return s0;
1158
+ }
1159
+
1160
+ function peg$parsebitwiseAndOperator() {
1161
+ var s0, s1, s2, s3;
1162
+
1163
+ s0 = peg$currPos;
1164
+ if (input.charCodeAt(peg$currPos) === 38) {
1165
+ s1 = peg$c4;
1166
+ peg$currPos++;
1167
+ } else {
1168
+ s1 = peg$FAILED;
1169
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
1170
+ }
1171
+ if (s1 !== peg$FAILED) {
1172
+ s2 = peg$currPos;
1173
+ peg$silentFails++;
1174
+ if (input.charCodeAt(peg$currPos) === 38) {
1175
+ s3 = peg$c4;
1176
+ peg$currPos++;
1177
+ } else {
1178
+ s3 = peg$FAILED;
1179
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
1180
+ }
1181
+ peg$silentFails--;
1182
+ if (s3 === peg$FAILED) {
1183
+ s2 = undefined;
1184
+ } else {
1185
+ peg$currPos = s2;
1186
+ s2 = peg$FAILED;
1187
+ }
1188
+ if (s2 !== peg$FAILED) {
1189
+ s0 = s1;
1190
+ } else {
1191
+ peg$currPos = s0;
1192
+ s0 = peg$FAILED;
1193
+ }
1194
+ } else {
1195
+ peg$currPos = s0;
1196
+ s0 = peg$FAILED;
1197
+ }
1198
+
1199
+ return s0;
1200
+ }
1201
+
1202
+ function peg$parsebitwiseOrExpression() {
1203
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1204
+
1205
+ s0 = peg$currPos;
1206
+ s1 = peg$parsebitwiseXorExpression();
1207
+ if (s1 !== peg$FAILED) {
1208
+ s2 = [];
1209
+ s3 = peg$currPos;
1210
+ s4 = peg$parse__();
1211
+ s5 = peg$parsebitwiseOrOperator();
1212
+ if (s5 !== peg$FAILED) {
1213
+ s6 = peg$parse__();
1214
+ s7 = peg$parsebitwiseXorExpression();
1215
+ if (s7 !== peg$FAILED) {
1216
+ s3 = [ s5, s7 ];
1217
+ } else {
1218
+ peg$currPos = s3;
1219
+ s3 = peg$FAILED;
1220
+ }
1221
+ } else {
1222
+ peg$currPos = s3;
1223
+ s3 = peg$FAILED;
1224
+ }
1225
+ while (s3 !== peg$FAILED) {
1226
+ s2.push(s3);
1227
+ s3 = peg$currPos;
1228
+ s4 = peg$parse__();
1229
+ s5 = peg$parsebitwiseOrOperator();
1230
+ if (s5 !== peg$FAILED) {
1231
+ s6 = peg$parse__();
1232
+ s7 = peg$parsebitwiseXorExpression();
1233
+ if (s7 !== peg$FAILED) {
1234
+ s3 = [ s5, s7 ];
1235
+ } else {
1236
+ peg$currPos = s3;
1237
+ s3 = peg$FAILED;
1238
+ }
1239
+ } else {
1240
+ peg$currPos = s3;
1241
+ s3 = peg$FAILED;
1242
+ }
1243
+ }
1244
+ peg$savedPos = s0;
1245
+ s0 = peg$f8(s1, s2);
1246
+ } else {
1247
+ peg$currPos = s0;
1248
+ s0 = peg$FAILED;
1249
+ }
1250
+
1251
+ return s0;
1252
+ }
1253
+
1254
+ function peg$parsebitwiseOrOperator() {
1255
+ var s0, s1, s2, s3;
1256
+
1257
+ s0 = peg$currPos;
1258
+ if (input.charCodeAt(peg$currPos) === 124) {
1259
+ s1 = peg$c5;
1260
+ peg$currPos++;
1261
+ } else {
1262
+ s1 = peg$FAILED;
1263
+ if (peg$silentFails === 0) { peg$fail(peg$e8); }
1264
+ }
1265
+ if (s1 !== peg$FAILED) {
1266
+ s2 = peg$currPos;
1267
+ peg$silentFails++;
1268
+ if (input.charCodeAt(peg$currPos) === 124) {
1269
+ s3 = peg$c5;
1270
+ peg$currPos++;
1271
+ } else {
1272
+ s3 = peg$FAILED;
1273
+ if (peg$silentFails === 0) { peg$fail(peg$e8); }
1274
+ }
1275
+ peg$silentFails--;
1276
+ if (s3 === peg$FAILED) {
1277
+ s2 = undefined;
1278
+ } else {
1279
+ peg$currPos = s2;
1280
+ s2 = peg$FAILED;
1281
+ }
1282
+ if (s2 !== peg$FAILED) {
1283
+ s0 = s1;
1284
+ } else {
1285
+ peg$currPos = s0;
1286
+ s0 = peg$FAILED;
1287
+ }
1288
+ } else {
1289
+ peg$currPos = s0;
1290
+ s0 = peg$FAILED;
1291
+ }
1292
+
1293
+ return s0;
1294
+ }
1295
+
1296
+ function peg$parsebitwiseXorExpression() {
1297
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1298
+
1299
+ s0 = peg$currPos;
1300
+ s1 = peg$parsebitwiseAndExpression();
1301
+ if (s1 !== peg$FAILED) {
1302
+ s2 = [];
1303
+ s3 = peg$currPos;
1304
+ s4 = peg$parse__();
1305
+ s5 = peg$parsebitwiseXorOperator();
1306
+ if (s5 !== peg$FAILED) {
1307
+ s6 = peg$parse__();
1308
+ s7 = peg$parsebitwiseAndExpression();
1309
+ if (s7 !== peg$FAILED) {
1310
+ s3 = [ s5, s7 ];
1311
+ } else {
1312
+ peg$currPos = s3;
1313
+ s3 = peg$FAILED;
1314
+ }
1315
+ } else {
1316
+ peg$currPos = s3;
1317
+ s3 = peg$FAILED;
1318
+ }
1319
+ while (s3 !== peg$FAILED) {
1320
+ s2.push(s3);
1321
+ s3 = peg$currPos;
1322
+ s4 = peg$parse__();
1323
+ s5 = peg$parsebitwiseXorOperator();
1324
+ if (s5 !== peg$FAILED) {
1325
+ s6 = peg$parse__();
1326
+ s7 = peg$parsebitwiseAndExpression();
1327
+ if (s7 !== peg$FAILED) {
1328
+ s3 = [ s5, s7 ];
1329
+ } else {
1330
+ peg$currPos = s3;
1331
+ s3 = peg$FAILED;
1332
+ }
1333
+ } else {
1334
+ peg$currPos = s3;
1335
+ s3 = peg$FAILED;
1336
+ }
1337
+ }
1338
+ peg$savedPos = s0;
1339
+ s0 = peg$f9(s1, s2);
1340
+ } else {
1341
+ peg$currPos = s0;
1342
+ s0 = peg$FAILED;
1343
+ }
1344
+
1345
+ return s0;
1346
+ }
1347
+
1348
+ function peg$parsebitwiseXorOperator() {
1349
+ var s0;
1350
+
1351
+ if (input.charCodeAt(peg$currPos) === 94) {
1352
+ s0 = peg$c6;
1353
+ peg$currPos++;
920
1354
  } else {
921
- peg$currPos = s0;
922
1355
  s0 = peg$FAILED;
923
- }
924
- if (s0 === peg$FAILED) {
925
- s0 = peg$parseconditionalExpression();
1356
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
926
1357
  }
927
1358
 
928
1359
  return s0;
@@ -942,7 +1373,7 @@ function peg$parse(input, options) {
942
1373
  s3 = peg$parsearguments();
943
1374
  }
944
1375
  peg$savedPos = s0;
945
- s0 = peg$f4(s1, s2);
1376
+ s0 = peg$f10(s1, s2);
946
1377
  } else {
947
1378
  peg$currPos = s0;
948
1379
  s0 = peg$FAILED;
@@ -950,7 +1381,7 @@ function peg$parse(input, options) {
950
1381
  peg$silentFails--;
951
1382
  if (s0 === peg$FAILED) {
952
1383
  s1 = peg$FAILED;
953
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
1384
+ if (peg$silentFails === 0) { peg$fail(peg$e10); }
954
1385
  }
955
1386
 
956
1387
  return s0;
@@ -960,11 +1391,11 @@ function peg$parse(input, options) {
960
1391
  var s0, s1;
961
1392
 
962
1393
  if (input.charCodeAt(peg$currPos) === 125) {
963
- s0 = peg$c3;
1394
+ s0 = peg$c7;
964
1395
  peg$currPos++;
965
1396
  } else {
966
1397
  s0 = peg$FAILED;
967
- if (peg$silentFails === 0) { peg$fail(peg$e6); }
1398
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
968
1399
  }
969
1400
  if (s0 === peg$FAILED) {
970
1401
  s0 = peg$currPos;
@@ -973,13 +1404,13 @@ function peg$parse(input, options) {
973
1404
  peg$currPos++;
974
1405
  } else {
975
1406
  s1 = peg$FAILED;
976
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
1407
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
977
1408
  }
978
1409
  if (s1 === peg$FAILED) {
979
1410
  s1 = null;
980
1411
  }
981
1412
  peg$savedPos = s0;
982
- s1 = peg$f5();
1413
+ s1 = peg$f11();
983
1414
  s0 = s1;
984
1415
  }
985
1416
 
@@ -990,11 +1421,11 @@ function peg$parse(input, options) {
990
1421
  var s0, s1;
991
1422
 
992
1423
  if (input.charCodeAt(peg$currPos) === 93) {
993
- s0 = peg$c4;
1424
+ s0 = peg$c1;
994
1425
  peg$currPos++;
995
1426
  } else {
996
1427
  s0 = peg$FAILED;
997
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
1428
+ if (peg$silentFails === 0) { peg$fail(peg$e4); }
998
1429
  }
999
1430
  if (s0 === peg$FAILED) {
1000
1431
  s0 = peg$currPos;
@@ -1003,13 +1434,13 @@ function peg$parse(input, options) {
1003
1434
  peg$currPos++;
1004
1435
  } else {
1005
1436
  s1 = peg$FAILED;
1006
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
1437
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1007
1438
  }
1008
1439
  if (s1 === peg$FAILED) {
1009
1440
  s1 = null;
1010
1441
  }
1011
1442
  peg$savedPos = s0;
1012
- s1 = peg$f6();
1443
+ s1 = peg$f12();
1013
1444
  s0 = s1;
1014
1445
  }
1015
1446
 
@@ -1020,11 +1451,11 @@ function peg$parse(input, options) {
1020
1451
  var s0, s1;
1021
1452
 
1022
1453
  if (input.charCodeAt(peg$currPos) === 41) {
1023
- s0 = peg$c2;
1454
+ s0 = peg$c3;
1024
1455
  peg$currPos++;
1025
1456
  } else {
1026
1457
  s0 = peg$FAILED;
1027
- if (peg$silentFails === 0) { peg$fail(peg$e4); }
1458
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
1028
1459
  }
1029
1460
  if (s0 === peg$FAILED) {
1030
1461
  s0 = peg$currPos;
@@ -1033,19 +1464,73 @@ function peg$parse(input, options) {
1033
1464
  peg$currPos++;
1034
1465
  } else {
1035
1466
  s1 = peg$FAILED;
1036
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
1467
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1037
1468
  }
1038
1469
  if (s1 === peg$FAILED) {
1039
1470
  s1 = null;
1040
1471
  }
1041
1472
  peg$savedPos = s0;
1042
- s1 = peg$f7();
1473
+ s1 = peg$f13();
1043
1474
  s0 = s1;
1044
1475
  }
1045
1476
 
1046
1477
  return s0;
1047
1478
  }
1048
1479
 
1480
+ function peg$parsecommaExpression() {
1481
+ var s0, s1, s2, s3, s4, s5, s6, s7;
1482
+
1483
+ s0 = peg$currPos;
1484
+ s1 = peg$currPos;
1485
+ s2 = [];
1486
+ s3 = peg$parsepipelineExpression();
1487
+ while (s3 !== peg$FAILED) {
1488
+ s2.push(s3);
1489
+ s3 = peg$currPos;
1490
+ s4 = peg$currPos;
1491
+ s5 = peg$parse__();
1492
+ if (input.charCodeAt(peg$currPos) === 44) {
1493
+ s6 = peg$c8;
1494
+ peg$currPos++;
1495
+ } else {
1496
+ s6 = peg$FAILED;
1497
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
1498
+ }
1499
+ if (s6 !== peg$FAILED) {
1500
+ s7 = peg$parse__();
1501
+ s5 = [s5, s6, s7];
1502
+ s4 = s5;
1503
+ } else {
1504
+ peg$currPos = s4;
1505
+ s4 = peg$FAILED;
1506
+ }
1507
+ if (s4 !== peg$FAILED) {
1508
+ s4 = peg$parsepipelineExpression();
1509
+ if (s4 === peg$FAILED) {
1510
+ peg$currPos = s3;
1511
+ s3 = peg$FAILED;
1512
+ } else {
1513
+ s3 = s4;
1514
+ }
1515
+ } else {
1516
+ s3 = s4;
1517
+ }
1518
+ }
1519
+ if (s2.length < 1) {
1520
+ peg$currPos = s1;
1521
+ s1 = peg$FAILED;
1522
+ } else {
1523
+ s1 = s2;
1524
+ }
1525
+ if (s1 !== peg$FAILED) {
1526
+ peg$savedPos = s0;
1527
+ s1 = peg$f14(s1);
1528
+ }
1529
+ s0 = s1;
1530
+
1531
+ return s0;
1532
+ }
1533
+
1049
1534
  function peg$parsecomment() {
1050
1535
  var s0, s1;
1051
1536
 
@@ -1057,67 +1542,69 @@ function peg$parse(input, options) {
1057
1542
  peg$silentFails--;
1058
1543
  if (s0 === peg$FAILED) {
1059
1544
  s1 = peg$FAILED;
1060
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
1545
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
1061
1546
  }
1062
1547
 
1063
1548
  return s0;
1064
1549
  }
1065
1550
 
1066
1551
  function peg$parseconditionalExpression() {
1067
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
1552
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
1068
1553
 
1069
1554
  s0 = peg$currPos;
1070
1555
  s1 = peg$parselogicalOrExpression();
1071
1556
  if (s1 !== peg$FAILED) {
1072
- s2 = peg$parse__();
1557
+ s2 = peg$currPos;
1558
+ s3 = peg$parse__();
1073
1559
  if (input.charCodeAt(peg$currPos) === 63) {
1074
- s3 = peg$c5;
1560
+ s4 = peg$c9;
1075
1561
  peg$currPos++;
1076
1562
  } else {
1077
- s3 = peg$FAILED;
1078
- if (peg$silentFails === 0) { peg$fail(peg$e10); }
1563
+ s4 = peg$FAILED;
1564
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
1079
1565
  }
1080
- if (s3 !== peg$FAILED) {
1081
- s4 = peg$parse__();
1082
- s5 = peg$parsepipelineExpression();
1083
- if (s5 !== peg$FAILED) {
1084
- s6 = peg$parse__();
1566
+ if (s4 !== peg$FAILED) {
1567
+ s5 = peg$parse__();
1568
+ s6 = peg$parsepipelineExpression();
1569
+ if (s6 !== peg$FAILED) {
1570
+ s7 = peg$parse__();
1085
1571
  if (input.charCodeAt(peg$currPos) === 58) {
1086
- s7 = peg$c6;
1572
+ s8 = peg$c10;
1087
1573
  peg$currPos++;
1088
1574
  } else {
1089
- s7 = peg$FAILED;
1090
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
1575
+ s8 = peg$FAILED;
1576
+ if (peg$silentFails === 0) { peg$fail(peg$e16); }
1091
1577
  }
1092
- if (s7 !== peg$FAILED) {
1093
- s8 = peg$parse__();
1094
- s9 = peg$parsepipelineExpression();
1095
- if (s9 !== peg$FAILED) {
1096
- peg$savedPos = s0;
1097
- s0 = peg$f8(s1, s5, s9);
1578
+ if (s8 !== peg$FAILED) {
1579
+ s9 = peg$parse__();
1580
+ s10 = peg$parsepipelineExpression();
1581
+ if (s10 !== peg$FAILED) {
1582
+ s2 = [ s6, s10 ];
1098
1583
  } else {
1099
- peg$currPos = s0;
1100
- s0 = peg$FAILED;
1584
+ peg$currPos = s2;
1585
+ s2 = peg$FAILED;
1101
1586
  }
1102
1587
  } else {
1103
- peg$currPos = s0;
1104
- s0 = peg$FAILED;
1588
+ peg$currPos = s2;
1589
+ s2 = peg$FAILED;
1105
1590
  }
1106
1591
  } else {
1107
- peg$currPos = s0;
1108
- s0 = peg$FAILED;
1592
+ peg$currPos = s2;
1593
+ s2 = peg$FAILED;
1109
1594
  }
1110
1595
  } else {
1111
- peg$currPos = s0;
1112
- s0 = peg$FAILED;
1596
+ peg$currPos = s2;
1597
+ s2 = peg$FAILED;
1598
+ }
1599
+ if (s2 === peg$FAILED) {
1600
+ s2 = null;
1113
1601
  }
1602
+ peg$savedPos = s0;
1603
+ s0 = peg$f15(s1, s2);
1114
1604
  } else {
1115
1605
  peg$currPos = s0;
1116
1606
  s0 = peg$FAILED;
1117
1607
  }
1118
- if (s0 === peg$FAILED) {
1119
- s0 = peg$parselogicalOrExpression();
1120
- }
1121
1608
 
1122
1609
  return s0;
1123
1610
  }
@@ -1128,21 +1615,21 @@ function peg$parse(input, options) {
1128
1615
  s0 = peg$currPos;
1129
1616
  s1 = [];
1130
1617
  s2 = input.charAt(peg$currPos);
1131
- if (peg$r0.test(s2)) {
1618
+ if (peg$r1.test(s2)) {
1132
1619
  peg$currPos++;
1133
1620
  } else {
1134
1621
  s2 = peg$FAILED;
1135
- if (peg$silentFails === 0) { peg$fail(peg$e12); }
1622
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
1136
1623
  }
1137
1624
  if (s2 !== peg$FAILED) {
1138
1625
  while (s2 !== peg$FAILED) {
1139
1626
  s1.push(s2);
1140
1627
  s2 = input.charAt(peg$currPos);
1141
- if (peg$r0.test(s2)) {
1628
+ if (peg$r1.test(s2)) {
1142
1629
  peg$currPos++;
1143
1630
  } else {
1144
1631
  s2 = peg$FAILED;
1145
- if (peg$silentFails === 0) { peg$fail(peg$e12); }
1632
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
1146
1633
  }
1147
1634
  }
1148
1635
  } else {
@@ -1162,19 +1649,19 @@ function peg$parse(input, options) {
1162
1649
  var s0;
1163
1650
 
1164
1651
  if (input.charCodeAt(peg$currPos) === 8658) {
1165
- s0 = peg$c7;
1652
+ s0 = peg$c11;
1166
1653
  peg$currPos++;
1167
1654
  } else {
1168
1655
  s0 = peg$FAILED;
1169
- if (peg$silentFails === 0) { peg$fail(peg$e13); }
1656
+ if (peg$silentFails === 0) { peg$fail(peg$e18); }
1170
1657
  }
1171
1658
  if (s0 === peg$FAILED) {
1172
- if (input.substr(peg$currPos, 2) === peg$c8) {
1173
- s0 = peg$c8;
1659
+ if (input.substr(peg$currPos, 2) === peg$c12) {
1660
+ s0 = peg$c12;
1174
1661
  peg$currPos += 2;
1175
1662
  } else {
1176
1663
  s0 = peg$FAILED;
1177
- if (peg$silentFails === 0) { peg$fail(peg$e14); }
1664
+ if (peg$silentFails === 0) { peg$fail(peg$e19); }
1178
1665
  }
1179
1666
  }
1180
1667
 
@@ -1187,11 +1674,11 @@ function peg$parse(input, options) {
1187
1674
  peg$silentFails++;
1188
1675
  s0 = peg$currPos;
1189
1676
  if (input.charCodeAt(peg$currPos) === 34) {
1190
- s1 = peg$c9;
1677
+ s1 = peg$c13;
1191
1678
  peg$currPos++;
1192
1679
  } else {
1193
1680
  s1 = peg$FAILED;
1194
- if (peg$silentFails === 0) { peg$fail(peg$e16); }
1681
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
1195
1682
  }
1196
1683
  if (s1 !== peg$FAILED) {
1197
1684
  s2 = [];
@@ -1201,15 +1688,15 @@ function peg$parse(input, options) {
1201
1688
  s3 = peg$parsedoubleQuoteStringChar();
1202
1689
  }
1203
1690
  if (input.charCodeAt(peg$currPos) === 34) {
1204
- s3 = peg$c9;
1691
+ s3 = peg$c13;
1205
1692
  peg$currPos++;
1206
1693
  } else {
1207
1694
  s3 = peg$FAILED;
1208
- if (peg$silentFails === 0) { peg$fail(peg$e16); }
1695
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
1209
1696
  }
1210
1697
  if (s3 !== peg$FAILED) {
1211
1698
  peg$savedPos = s0;
1212
- s0 = peg$f9(s2);
1699
+ s0 = peg$f16(s2);
1213
1700
  } else {
1214
1701
  peg$currPos = s0;
1215
1702
  s0 = peg$FAILED;
@@ -1221,7 +1708,7 @@ function peg$parse(input, options) {
1221
1708
  peg$silentFails--;
1222
1709
  if (s0 === peg$FAILED) {
1223
1710
  s1 = peg$FAILED;
1224
- if (peg$silentFails === 0) { peg$fail(peg$e15); }
1711
+ if (peg$silentFails === 0) { peg$fail(peg$e20); }
1225
1712
  }
1226
1713
 
1227
1714
  return s0;
@@ -1234,11 +1721,11 @@ function peg$parse(input, options) {
1234
1721
  s1 = peg$currPos;
1235
1722
  peg$silentFails++;
1236
1723
  if (input.charCodeAt(peg$currPos) === 34) {
1237
- s2 = peg$c9;
1724
+ s2 = peg$c13;
1238
1725
  peg$currPos++;
1239
1726
  } else {
1240
1727
  s2 = peg$FAILED;
1241
- if (peg$silentFails === 0) { peg$fail(peg$e16); }
1728
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
1242
1729
  }
1243
1730
  if (s2 === peg$FAILED) {
1244
1731
  s2 = peg$parsenewLine();
@@ -1269,20 +1756,20 @@ function peg$parse(input, options) {
1269
1756
  function peg$parseellipsis() {
1270
1757
  var s0;
1271
1758
 
1272
- if (input.substr(peg$currPos, 3) === peg$c10) {
1273
- s0 = peg$c10;
1759
+ if (input.substr(peg$currPos, 3) === peg$c14) {
1760
+ s0 = peg$c14;
1274
1761
  peg$currPos += 3;
1275
1762
  } else {
1276
1763
  s0 = peg$FAILED;
1277
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
1764
+ if (peg$silentFails === 0) { peg$fail(peg$e22); }
1278
1765
  }
1279
1766
  if (s0 === peg$FAILED) {
1280
1767
  if (input.charCodeAt(peg$currPos) === 8230) {
1281
- s0 = peg$c11;
1768
+ s0 = peg$c15;
1282
1769
  peg$currPos++;
1283
1770
  } else {
1284
1771
  s0 = peg$FAILED;
1285
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
1772
+ if (peg$silentFails === 0) { peg$fail(peg$e23); }
1286
1773
  }
1287
1774
  }
1288
1775
 
@@ -1293,7 +1780,7 @@ function peg$parse(input, options) {
1293
1780
  var s0, s1, s2, s3, s4, s5, s6, s7;
1294
1781
 
1295
1782
  s0 = peg$currPos;
1296
- s1 = peg$parseunaryExpression();
1783
+ s1 = peg$parserelationalExpression();
1297
1784
  if (s1 !== peg$FAILED) {
1298
1785
  s2 = [];
1299
1786
  s3 = peg$currPos;
@@ -1301,7 +1788,7 @@ function peg$parse(input, options) {
1301
1788
  s5 = peg$parseequalityOperator();
1302
1789
  if (s5 !== peg$FAILED) {
1303
1790
  s6 = peg$parse__();
1304
- s7 = peg$parseunaryExpression();
1791
+ s7 = peg$parserelationalExpression();
1305
1792
  if (s7 !== peg$FAILED) {
1306
1793
  s3 = [ s5, s7 ];
1307
1794
  } else {
@@ -1319,7 +1806,7 @@ function peg$parse(input, options) {
1319
1806
  s5 = peg$parseequalityOperator();
1320
1807
  if (s5 !== peg$FAILED) {
1321
1808
  s6 = peg$parse__();
1322
- s7 = peg$parseunaryExpression();
1809
+ s7 = peg$parserelationalExpression();
1323
1810
  if (s7 !== peg$FAILED) {
1324
1811
  s3 = [ s5, s7 ];
1325
1812
  } else {
@@ -1332,7 +1819,7 @@ function peg$parse(input, options) {
1332
1819
  }
1333
1820
  }
1334
1821
  peg$savedPos = s0;
1335
- s0 = peg$f10(s1, s2);
1822
+ s0 = peg$f17(s1, s2);
1336
1823
  } else {
1337
1824
  peg$currPos = s0;
1338
1825
  s0 = peg$FAILED;
@@ -1344,36 +1831,36 @@ function peg$parse(input, options) {
1344
1831
  function peg$parseequalityOperator() {
1345
1832
  var s0;
1346
1833
 
1347
- if (input.substr(peg$currPos, 3) === peg$c12) {
1348
- s0 = peg$c12;
1834
+ if (input.substr(peg$currPos, 3) === peg$c16) {
1835
+ s0 = peg$c16;
1349
1836
  peg$currPos += 3;
1350
1837
  } else {
1351
1838
  s0 = peg$FAILED;
1352
- if (peg$silentFails === 0) { peg$fail(peg$e19); }
1839
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
1353
1840
  }
1354
1841
  if (s0 === peg$FAILED) {
1355
- if (input.substr(peg$currPos, 3) === peg$c13) {
1356
- s0 = peg$c13;
1842
+ if (input.substr(peg$currPos, 3) === peg$c17) {
1843
+ s0 = peg$c17;
1357
1844
  peg$currPos += 3;
1358
1845
  } else {
1359
1846
  s0 = peg$FAILED;
1360
- if (peg$silentFails === 0) { peg$fail(peg$e20); }
1847
+ if (peg$silentFails === 0) { peg$fail(peg$e25); }
1361
1848
  }
1362
1849
  if (s0 === peg$FAILED) {
1363
- if (input.substr(peg$currPos, 2) === peg$c14) {
1364
- s0 = peg$c14;
1850
+ if (input.substr(peg$currPos, 2) === peg$c18) {
1851
+ s0 = peg$c18;
1365
1852
  peg$currPos += 2;
1366
1853
  } else {
1367
1854
  s0 = peg$FAILED;
1368
- if (peg$silentFails === 0) { peg$fail(peg$e21); }
1855
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
1369
1856
  }
1370
1857
  if (s0 === peg$FAILED) {
1371
- if (input.substr(peg$currPos, 2) === peg$c15) {
1372
- s0 = peg$c15;
1858
+ if (input.substr(peg$currPos, 2) === peg$c19) {
1859
+ s0 = peg$c19;
1373
1860
  peg$currPos += 2;
1374
1861
  } else {
1375
1862
  s0 = peg$FAILED;
1376
- if (peg$silentFails === 0) { peg$fail(peg$e22); }
1863
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
1377
1864
  }
1378
1865
  }
1379
1866
  }
@@ -1387,110 +1874,110 @@ function peg$parse(input, options) {
1387
1874
 
1388
1875
  peg$silentFails++;
1389
1876
  s0 = peg$currPos;
1390
- if (input.substr(peg$currPos, 2) === peg$c16) {
1391
- s1 = peg$c16;
1877
+ if (input.substr(peg$currPos, 2) === peg$c20) {
1878
+ s1 = peg$c20;
1392
1879
  peg$currPos += 2;
1393
1880
  } else {
1394
1881
  s1 = peg$FAILED;
1395
- if (peg$silentFails === 0) { peg$fail(peg$e24); }
1882
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
1396
1883
  }
1397
1884
  if (s1 !== peg$FAILED) {
1398
1885
  peg$savedPos = s0;
1399
- s1 = peg$f11();
1886
+ s1 = peg$f18();
1400
1887
  }
1401
1888
  s0 = s1;
1402
1889
  if (s0 === peg$FAILED) {
1403
1890
  s0 = peg$currPos;
1404
- if (input.substr(peg$currPos, 2) === peg$c17) {
1405
- s1 = peg$c17;
1891
+ if (input.substr(peg$currPos, 2) === peg$c21) {
1892
+ s1 = peg$c21;
1406
1893
  peg$currPos += 2;
1407
1894
  } else {
1408
1895
  s1 = peg$FAILED;
1409
- if (peg$silentFails === 0) { peg$fail(peg$e25); }
1896
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
1410
1897
  }
1411
1898
  if (s1 !== peg$FAILED) {
1412
1899
  peg$savedPos = s0;
1413
- s1 = peg$f12();
1900
+ s1 = peg$f19();
1414
1901
  }
1415
1902
  s0 = s1;
1416
1903
  if (s0 === peg$FAILED) {
1417
1904
  s0 = peg$currPos;
1418
- if (input.substr(peg$currPos, 2) === peg$c18) {
1419
- s1 = peg$c18;
1905
+ if (input.substr(peg$currPos, 2) === peg$c22) {
1906
+ s1 = peg$c22;
1420
1907
  peg$currPos += 2;
1421
1908
  } else {
1422
1909
  s1 = peg$FAILED;
1423
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
1910
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
1424
1911
  }
1425
1912
  if (s1 !== peg$FAILED) {
1426
1913
  peg$savedPos = s0;
1427
- s1 = peg$f13();
1914
+ s1 = peg$f20();
1428
1915
  }
1429
1916
  s0 = s1;
1430
1917
  if (s0 === peg$FAILED) {
1431
1918
  s0 = peg$currPos;
1432
- if (input.substr(peg$currPos, 2) === peg$c19) {
1433
- s1 = peg$c19;
1919
+ if (input.substr(peg$currPos, 2) === peg$c23) {
1920
+ s1 = peg$c23;
1434
1921
  peg$currPos += 2;
1435
1922
  } else {
1436
1923
  s1 = peg$FAILED;
1437
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
1924
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
1438
1925
  }
1439
1926
  if (s1 !== peg$FAILED) {
1440
1927
  peg$savedPos = s0;
1441
- s1 = peg$f14();
1928
+ s1 = peg$f21();
1442
1929
  }
1443
1930
  s0 = s1;
1444
1931
  if (s0 === peg$FAILED) {
1445
1932
  s0 = peg$currPos;
1446
- if (input.substr(peg$currPos, 2) === peg$c20) {
1447
- s1 = peg$c20;
1933
+ if (input.substr(peg$currPos, 2) === peg$c24) {
1934
+ s1 = peg$c24;
1448
1935
  peg$currPos += 2;
1449
1936
  } else {
1450
1937
  s1 = peg$FAILED;
1451
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
1938
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
1452
1939
  }
1453
1940
  if (s1 !== peg$FAILED) {
1454
1941
  peg$savedPos = s0;
1455
- s1 = peg$f15();
1942
+ s1 = peg$f22();
1456
1943
  }
1457
1944
  s0 = s1;
1458
1945
  if (s0 === peg$FAILED) {
1459
1946
  s0 = peg$currPos;
1460
- if (input.substr(peg$currPos, 2) === peg$c21) {
1461
- s1 = peg$c21;
1947
+ if (input.substr(peg$currPos, 2) === peg$c25) {
1948
+ s1 = peg$c25;
1462
1949
  peg$currPos += 2;
1463
1950
  } else {
1464
1951
  s1 = peg$FAILED;
1465
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
1952
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
1466
1953
  }
1467
1954
  if (s1 !== peg$FAILED) {
1468
1955
  peg$savedPos = s0;
1469
- s1 = peg$f16();
1956
+ s1 = peg$f23();
1470
1957
  }
1471
1958
  s0 = s1;
1472
1959
  if (s0 === peg$FAILED) {
1473
1960
  s0 = peg$currPos;
1474
- if (input.substr(peg$currPos, 2) === peg$c22) {
1475
- s1 = peg$c22;
1961
+ if (input.substr(peg$currPos, 2) === peg$c26) {
1962
+ s1 = peg$c26;
1476
1963
  peg$currPos += 2;
1477
1964
  } else {
1478
1965
  s1 = peg$FAILED;
1479
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
1966
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
1480
1967
  }
1481
1968
  if (s1 !== peg$FAILED) {
1482
1969
  peg$savedPos = s0;
1483
- s1 = peg$f17();
1970
+ s1 = peg$f24();
1484
1971
  }
1485
1972
  s0 = s1;
1486
1973
  if (s0 === peg$FAILED) {
1487
1974
  s0 = peg$currPos;
1488
1975
  if (input.charCodeAt(peg$currPos) === 92) {
1489
- s1 = peg$c23;
1976
+ s1 = peg$c27;
1490
1977
  peg$currPos++;
1491
1978
  } else {
1492
1979
  s1 = peg$FAILED;
1493
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
1980
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
1494
1981
  }
1495
1982
  if (s1 !== peg$FAILED) {
1496
1983
  if (input.length > peg$currPos) {
@@ -1498,7 +1985,7 @@ function peg$parse(input, options) {
1498
1985
  peg$currPos++;
1499
1986
  } else {
1500
1987
  s2 = peg$FAILED;
1501
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
1988
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1502
1989
  }
1503
1990
  if (s2 !== peg$FAILED) {
1504
1991
  s0 = s2;
@@ -1520,7 +2007,48 @@ function peg$parse(input, options) {
1520
2007
  peg$silentFails--;
1521
2008
  if (s0 === peg$FAILED) {
1522
2009
  s1 = peg$FAILED;
1523
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
2010
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2011
+ }
2012
+
2013
+ return s0;
2014
+ }
2015
+
2016
+ function peg$parseexponentiationExpression() {
2017
+ var s0, s1, s2, s3, s4, s5, s6;
2018
+
2019
+ s0 = peg$currPos;
2020
+ s1 = peg$parseunaryExpression();
2021
+ if (s1 !== peg$FAILED) {
2022
+ s2 = peg$currPos;
2023
+ s3 = peg$parse__();
2024
+ if (input.substr(peg$currPos, 2) === peg$c28) {
2025
+ s4 = peg$c28;
2026
+ peg$currPos += 2;
2027
+ } else {
2028
+ s4 = peg$FAILED;
2029
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
2030
+ }
2031
+ if (s4 !== peg$FAILED) {
2032
+ s5 = peg$parse__();
2033
+ s6 = peg$parseexponentiationExpression();
2034
+ if (s6 !== peg$FAILED) {
2035
+ s2 = s6;
2036
+ } else {
2037
+ peg$currPos = s2;
2038
+ s2 = peg$FAILED;
2039
+ }
2040
+ } else {
2041
+ peg$currPos = s2;
2042
+ s2 = peg$FAILED;
2043
+ }
2044
+ if (s2 === peg$FAILED) {
2045
+ s2 = null;
2046
+ }
2047
+ peg$savedPos = s0;
2048
+ s0 = peg$f25(s1, s2);
2049
+ } else {
2050
+ peg$currPos = s0;
2051
+ s0 = peg$FAILED;
1524
2052
  }
1525
2053
 
1526
2054
  return s0;
@@ -1531,7 +2059,7 @@ function peg$parse(input, options) {
1531
2059
 
1532
2060
  s0 = peg$currPos;
1533
2061
  s1 = peg$parse__();
1534
- s2 = peg$parsepipelineExpression();
2062
+ s2 = peg$parsecommaExpression();
1535
2063
  if (s2 !== peg$FAILED) {
1536
2064
  s3 = peg$parse__();
1537
2065
  s0 = s2;
@@ -1544,30 +2072,26 @@ function peg$parse(input, options) {
1544
2072
  }
1545
2073
 
1546
2074
  function peg$parsefloatLiteral() {
1547
- var s0, s1, s2, s3, s4;
2075
+ var s0, s1, s2, s3;
1548
2076
 
1549
2077
  peg$silentFails++;
1550
2078
  s0 = peg$currPos;
1551
- s1 = peg$parsesign();
2079
+ s1 = peg$parsedigits();
1552
2080
  if (s1 === peg$FAILED) {
1553
2081
  s1 = null;
1554
2082
  }
1555
- s2 = peg$parsedigits();
1556
- if (s2 === peg$FAILED) {
1557
- s2 = null;
1558
- }
1559
2083
  if (input.charCodeAt(peg$currPos) === 46) {
1560
- s3 = peg$c24;
2084
+ s2 = peg$c29;
1561
2085
  peg$currPos++;
1562
2086
  } else {
1563
- s3 = peg$FAILED;
1564
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2087
+ s2 = peg$FAILED;
2088
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
1565
2089
  }
1566
- if (s3 !== peg$FAILED) {
1567
- s4 = peg$parsedigits();
1568
- if (s4 !== peg$FAILED) {
2090
+ if (s2 !== peg$FAILED) {
2091
+ s3 = peg$parsedigits();
2092
+ if (s3 !== peg$FAILED) {
1569
2093
  peg$savedPos = s0;
1570
- s0 = peg$f18();
2094
+ s0 = peg$f26();
1571
2095
  } else {
1572
2096
  peg$currPos = s0;
1573
2097
  s0 = peg$FAILED;
@@ -1579,7 +2103,7 @@ function peg$parse(input, options) {
1579
2103
  peg$silentFails--;
1580
2104
  if (s0 === peg$FAILED) {
1581
2105
  s1 = peg$FAILED;
1582
- if (peg$silentFails === 0) { peg$fail(peg$e32); }
2106
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
1583
2107
  }
1584
2108
 
1585
2109
  return s0;
@@ -1591,11 +2115,11 @@ function peg$parse(input, options) {
1591
2115
  peg$silentFails++;
1592
2116
  s0 = peg$currPos;
1593
2117
  if (input.charCodeAt(peg$currPos) === 40) {
1594
- s1 = peg$c1;
2118
+ s1 = peg$c2;
1595
2119
  peg$currPos++;
1596
2120
  } else {
1597
2121
  s1 = peg$FAILED;
1598
- if (peg$silentFails === 0) { peg$fail(peg$e3); }
2122
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
1599
2123
  }
1600
2124
  if (s1 !== peg$FAILED) {
1601
2125
  s2 = peg$parseexpression();
@@ -1603,7 +2127,7 @@ function peg$parse(input, options) {
1603
2127
  s3 = peg$parseclosingParenthesis();
1604
2128
  if (s3 !== peg$FAILED) {
1605
2129
  peg$savedPos = s0;
1606
- s0 = peg$f19(s2);
2130
+ s0 = peg$f27(s2);
1607
2131
  } else {
1608
2132
  peg$currPos = s0;
1609
2133
  s0 = peg$FAILED;
@@ -1619,7 +2143,7 @@ function peg$parse(input, options) {
1619
2143
  peg$silentFails--;
1620
2144
  if (s0 === peg$FAILED) {
1621
2145
  s1 = peg$FAILED;
1622
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2146
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
1623
2147
  }
1624
2148
 
1625
2149
  return s0;
@@ -1631,11 +2155,11 @@ function peg$parse(input, options) {
1631
2155
  peg$silentFails++;
1632
2156
  s0 = peg$currPos;
1633
2157
  if (input.charCodeAt(peg$currPos) === 171) {
1634
- s1 = peg$c25;
2158
+ s1 = peg$c30;
1635
2159
  peg$currPos++;
1636
2160
  } else {
1637
2161
  s1 = peg$FAILED;
1638
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
2162
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
1639
2163
  }
1640
2164
  if (s1 !== peg$FAILED) {
1641
2165
  s2 = [];
@@ -1645,15 +2169,15 @@ function peg$parse(input, options) {
1645
2169
  s3 = peg$parseguillemetStringChar();
1646
2170
  }
1647
2171
  if (input.charCodeAt(peg$currPos) === 187) {
1648
- s3 = peg$c26;
2172
+ s3 = peg$c31;
1649
2173
  peg$currPos++;
1650
2174
  } else {
1651
2175
  s3 = peg$FAILED;
1652
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2176
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
1653
2177
  }
1654
2178
  if (s3 !== peg$FAILED) {
1655
2179
  peg$savedPos = s0;
1656
- s0 = peg$f20(s2);
2180
+ s0 = peg$f28(s2);
1657
2181
  } else {
1658
2182
  peg$currPos = s0;
1659
2183
  s0 = peg$FAILED;
@@ -1665,7 +2189,7 @@ function peg$parse(input, options) {
1665
2189
  peg$silentFails--;
1666
2190
  if (s0 === peg$FAILED) {
1667
2191
  s1 = peg$FAILED;
1668
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
2192
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
1669
2193
  }
1670
2194
 
1671
2195
  return s0;
@@ -1678,11 +2202,11 @@ function peg$parse(input, options) {
1678
2202
  s1 = peg$currPos;
1679
2203
  peg$silentFails++;
1680
2204
  if (input.charCodeAt(peg$currPos) === 187) {
1681
- s2 = peg$c26;
2205
+ s2 = peg$c31;
1682
2206
  peg$currPos++;
1683
2207
  } else {
1684
2208
  s2 = peg$FAILED;
1685
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2209
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
1686
2210
  }
1687
2211
  if (s2 === peg$FAILED) {
1688
2212
  s2 = peg$parsenewLine();
@@ -1715,15 +2239,15 @@ function peg$parse(input, options) {
1715
2239
 
1716
2240
  s0 = peg$currPos;
1717
2241
  if (input.charCodeAt(peg$currPos) === 126) {
1718
- s1 = peg$c27;
2242
+ s1 = peg$c32;
1719
2243
  peg$currPos++;
1720
2244
  } else {
1721
2245
  s1 = peg$FAILED;
1722
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2246
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
1723
2247
  }
1724
2248
  if (s1 !== peg$FAILED) {
1725
2249
  peg$savedPos = s0;
1726
- s1 = peg$f21();
2250
+ s1 = peg$f29();
1727
2251
  }
1728
2252
  s0 = s1;
1729
2253
 
@@ -1739,11 +2263,11 @@ function peg$parse(input, options) {
1739
2263
  if (s1 !== peg$FAILED) {
1740
2264
  s2 = peg$currPos;
1741
2265
  if (input.charCodeAt(peg$currPos) === 58) {
1742
- s3 = peg$c6;
2266
+ s3 = peg$c10;
1743
2267
  peg$currPos++;
1744
2268
  } else {
1745
2269
  s3 = peg$FAILED;
1746
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
2270
+ if (peg$silentFails === 0) { peg$fail(peg$e16); }
1747
2271
  }
1748
2272
  if (s3 !== peg$FAILED) {
1749
2273
  s4 = peg$parseintegerLiteral();
@@ -1765,7 +2289,7 @@ function peg$parse(input, options) {
1765
2289
  s3 = null;
1766
2290
  }
1767
2291
  peg$savedPos = s0;
1768
- s0 = peg$f22(s1, s2, s3);
2292
+ s0 = peg$f30(s1, s2, s3);
1769
2293
  } else {
1770
2294
  peg$currPos = s0;
1771
2295
  s0 = peg$FAILED;
@@ -1773,7 +2297,7 @@ function peg$parse(input, options) {
1773
2297
  peg$silentFails--;
1774
2298
  if (s0 === peg$FAILED) {
1775
2299
  s1 = peg$FAILED;
1776
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
2300
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
1777
2301
  }
1778
2302
 
1779
2303
  return s0;
@@ -1796,13 +2320,13 @@ function peg$parse(input, options) {
1796
2320
  }
1797
2321
  if (s1 !== peg$FAILED) {
1798
2322
  peg$savedPos = s0;
1799
- s1 = peg$f23(s1);
2323
+ s1 = peg$f31(s1);
1800
2324
  }
1801
2325
  s0 = s1;
1802
2326
  peg$silentFails--;
1803
2327
  if (s0 === peg$FAILED) {
1804
2328
  s1 = peg$FAILED;
1805
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
2329
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
1806
2330
  }
1807
2331
 
1808
2332
  return s0;
@@ -1812,30 +2336,30 @@ function peg$parse(input, options) {
1812
2336
  var s0, s1, s2, s3;
1813
2337
 
1814
2338
  s0 = input.charAt(peg$currPos);
1815
- if (peg$r1.test(s0)) {
2339
+ if (peg$r2.test(s0)) {
1816
2340
  peg$currPos++;
1817
2341
  } else {
1818
2342
  s0 = peg$FAILED;
1819
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
2343
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
1820
2344
  }
1821
2345
  if (s0 === peg$FAILED) {
1822
2346
  s0 = peg$currPos;
1823
2347
  if (input.charCodeAt(peg$currPos) === 45) {
1824
- s1 = peg$c28;
2348
+ s1 = peg$c33;
1825
2349
  peg$currPos++;
1826
2350
  } else {
1827
2351
  s1 = peg$FAILED;
1828
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
2352
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
1829
2353
  }
1830
2354
  if (s1 !== peg$FAILED) {
1831
2355
  s2 = peg$currPos;
1832
2356
  peg$silentFails++;
1833
2357
  if (input.charCodeAt(peg$currPos) === 62) {
1834
- s3 = peg$c29;
2358
+ s3 = peg$c34;
1835
2359
  peg$currPos++;
1836
2360
  } else {
1837
2361
  s3 = peg$FAILED;
1838
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
2362
+ if (peg$silentFails === 0) { peg$fail(peg$e49); }
1839
2363
  }
1840
2364
  peg$silentFails--;
1841
2365
  if (s3 === peg$FAILED) {
@@ -1897,7 +2421,7 @@ function peg$parse(input, options) {
1897
2421
  s2 = null;
1898
2422
  }
1899
2423
  peg$savedPos = s0;
1900
- s0 = peg$f24(s1);
2424
+ s0 = peg$f32(s1);
1901
2425
  } else {
1902
2426
  peg$currPos = s0;
1903
2427
  s0 = peg$FAILED;
@@ -1940,7 +2464,7 @@ function peg$parse(input, options) {
1940
2464
  s2 = null;
1941
2465
  }
1942
2466
  peg$savedPos = s0;
1943
- s0 = peg$f25(s1, s2);
2467
+ s0 = peg$f33(s1, s2);
1944
2468
  } else {
1945
2469
  peg$currPos = s0;
1946
2470
  s0 = peg$FAILED;
@@ -1948,7 +2472,7 @@ function peg$parse(input, options) {
1948
2472
  peg$silentFails--;
1949
2473
  if (s0 === peg$FAILED) {
1950
2474
  s1 = peg$FAILED;
1951
- if (peg$silentFails === 0) { peg$fail(peg$e44); }
2475
+ if (peg$silentFails === 0) { peg$fail(peg$e50); }
1952
2476
  }
1953
2477
 
1954
2478
  return s0;
@@ -1989,7 +2513,7 @@ function peg$parse(input, options) {
1989
2513
  s2 = null;
1990
2514
  }
1991
2515
  peg$savedPos = s0;
1992
- s0 = peg$f26(s1);
2516
+ s0 = peg$f34(s1);
1993
2517
  } else {
1994
2518
  peg$currPos = s0;
1995
2519
  s0 = peg$FAILED;
@@ -2002,37 +2526,31 @@ function peg$parse(input, options) {
2002
2526
  var s0;
2003
2527
 
2004
2528
  s0 = input.charAt(peg$currPos);
2005
- if (peg$r2.test(s0)) {
2529
+ if (peg$r3.test(s0)) {
2006
2530
  peg$currPos++;
2007
2531
  } else {
2008
2532
  s0 = peg$FAILED;
2009
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
2533
+ if (peg$silentFails === 0) { peg$fail(peg$e51); }
2010
2534
  }
2011
2535
 
2012
2536
  return s0;
2013
2537
  }
2014
2538
 
2015
2539
  function peg$parseintegerLiteral() {
2016
- var s0, s1, s2;
2540
+ var s0, s1;
2017
2541
 
2018
2542
  peg$silentFails++;
2019
2543
  s0 = peg$currPos;
2020
- s1 = peg$parsesign();
2021
- if (s1 === peg$FAILED) {
2022
- s1 = null;
2023
- }
2024
- s2 = peg$parsedigits();
2025
- if (s2 !== peg$FAILED) {
2544
+ s1 = peg$parsedigits();
2545
+ if (s1 !== peg$FAILED) {
2026
2546
  peg$savedPos = s0;
2027
- s0 = peg$f27();
2028
- } else {
2029
- peg$currPos = s0;
2030
- s0 = peg$FAILED;
2547
+ s1 = peg$f35();
2031
2548
  }
2549
+ s0 = s1;
2032
2550
  peg$silentFails--;
2033
2551
  if (s0 === peg$FAILED) {
2034
2552
  s1 = peg$FAILED;
2035
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
2553
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
2036
2554
  }
2037
2555
 
2038
2556
  return s0;
@@ -2074,7 +2592,7 @@ function peg$parse(input, options) {
2074
2592
  s2 = null;
2075
2593
  }
2076
2594
  peg$savedPos = s0;
2077
- s0 = peg$f28(s1);
2595
+ s0 = peg$f36(s1);
2078
2596
  } else {
2079
2597
  peg$currPos = s0;
2080
2598
  s0 = peg$FAILED;
@@ -2082,7 +2600,7 @@ function peg$parse(input, options) {
2082
2600
  peg$silentFails--;
2083
2601
  if (s0 === peg$FAILED) {
2084
2602
  s1 = peg$FAILED;
2085
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
2603
+ if (peg$silentFails === 0) { peg$fail(peg$e53); }
2086
2604
  }
2087
2605
 
2088
2606
  return s0;
@@ -2103,21 +2621,21 @@ function peg$parse(input, options) {
2103
2621
  var s0, s1, s2, s3, s4, s5, s6, s7;
2104
2622
 
2105
2623
  s0 = peg$currPos;
2106
- s1 = peg$parseequalityExpression();
2624
+ s1 = peg$parsebitwiseOrExpression();
2107
2625
  if (s1 !== peg$FAILED) {
2108
2626
  s2 = [];
2109
2627
  s3 = peg$currPos;
2110
2628
  s4 = peg$parse__();
2111
- if (input.substr(peg$currPos, 2) === peg$c30) {
2112
- s5 = peg$c30;
2629
+ if (input.substr(peg$currPos, 2) === peg$c35) {
2630
+ s5 = peg$c35;
2113
2631
  peg$currPos += 2;
2114
2632
  } else {
2115
2633
  s5 = peg$FAILED;
2116
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
2634
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
2117
2635
  }
2118
2636
  if (s5 !== peg$FAILED) {
2119
2637
  s6 = peg$parse__();
2120
- s7 = peg$parseequalityExpression();
2638
+ s7 = peg$parsebitwiseOrExpression();
2121
2639
  if (s7 !== peg$FAILED) {
2122
2640
  s3 = s7;
2123
2641
  } else {
@@ -2132,16 +2650,16 @@ function peg$parse(input, options) {
2132
2650
  s2.push(s3);
2133
2651
  s3 = peg$currPos;
2134
2652
  s4 = peg$parse__();
2135
- if (input.substr(peg$currPos, 2) === peg$c30) {
2136
- s5 = peg$c30;
2653
+ if (input.substr(peg$currPos, 2) === peg$c35) {
2654
+ s5 = peg$c35;
2137
2655
  peg$currPos += 2;
2138
2656
  } else {
2139
2657
  s5 = peg$FAILED;
2140
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
2658
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
2141
2659
  }
2142
2660
  if (s5 !== peg$FAILED) {
2143
2661
  s6 = peg$parse__();
2144
- s7 = peg$parseequalityExpression();
2662
+ s7 = peg$parsebitwiseOrExpression();
2145
2663
  if (s7 !== peg$FAILED) {
2146
2664
  s3 = s7;
2147
2665
  } else {
@@ -2154,7 +2672,7 @@ function peg$parse(input, options) {
2154
2672
  }
2155
2673
  }
2156
2674
  peg$savedPos = s0;
2157
- s0 = peg$f29(s1, s2);
2675
+ s0 = peg$f37(s1, s2);
2158
2676
  } else {
2159
2677
  peg$currPos = s0;
2160
2678
  s0 = peg$FAILED;
@@ -2172,12 +2690,12 @@ function peg$parse(input, options) {
2172
2690
  s2 = [];
2173
2691
  s3 = peg$currPos;
2174
2692
  s4 = peg$parse__();
2175
- if (input.substr(peg$currPos, 2) === peg$c31) {
2176
- s5 = peg$c31;
2693
+ if (input.substr(peg$currPos, 2) === peg$c36) {
2694
+ s5 = peg$c36;
2177
2695
  peg$currPos += 2;
2178
2696
  } else {
2179
2697
  s5 = peg$FAILED;
2180
- if (peg$silentFails === 0) { peg$fail(peg$e49); }
2698
+ if (peg$silentFails === 0) { peg$fail(peg$e55); }
2181
2699
  }
2182
2700
  if (s5 !== peg$FAILED) {
2183
2701
  s6 = peg$parse__();
@@ -2196,12 +2714,12 @@ function peg$parse(input, options) {
2196
2714
  s2.push(s3);
2197
2715
  s3 = peg$currPos;
2198
2716
  s4 = peg$parse__();
2199
- if (input.substr(peg$currPos, 2) === peg$c31) {
2200
- s5 = peg$c31;
2717
+ if (input.substr(peg$currPos, 2) === peg$c36) {
2718
+ s5 = peg$c36;
2201
2719
  peg$currPos += 2;
2202
2720
  } else {
2203
2721
  s5 = peg$FAILED;
2204
- if (peg$silentFails === 0) { peg$fail(peg$e49); }
2722
+ if (peg$silentFails === 0) { peg$fail(peg$e55); }
2205
2723
  }
2206
2724
  if (s5 !== peg$FAILED) {
2207
2725
  s6 = peg$parse__();
@@ -2218,7 +2736,7 @@ function peg$parse(input, options) {
2218
2736
  }
2219
2737
  }
2220
2738
  peg$savedPos = s0;
2221
- s0 = peg$f30(s1, s2);
2739
+ s0 = peg$f38(s1, s2);
2222
2740
  } else {
2223
2741
  peg$currPos = s0;
2224
2742
  s0 = peg$FAILED;
@@ -2231,24 +2749,24 @@ function peg$parse(input, options) {
2231
2749
  var s0, s1, s2, s3, s4, s5;
2232
2750
 
2233
2751
  s0 = peg$currPos;
2234
- if (input.substr(peg$currPos, 2) === peg$c32) {
2235
- s1 = peg$c32;
2752
+ if (input.substr(peg$currPos, 2) === peg$c37) {
2753
+ s1 = peg$c37;
2236
2754
  peg$currPos += 2;
2237
2755
  } else {
2238
2756
  s1 = peg$FAILED;
2239
- if (peg$silentFails === 0) { peg$fail(peg$e50); }
2757
+ if (peg$silentFails === 0) { peg$fail(peg$e56); }
2240
2758
  }
2241
2759
  if (s1 !== peg$FAILED) {
2242
2760
  s2 = [];
2243
2761
  s3 = peg$currPos;
2244
2762
  s4 = peg$currPos;
2245
2763
  peg$silentFails++;
2246
- if (input.substr(peg$currPos, 2) === peg$c33) {
2247
- s5 = peg$c33;
2764
+ if (input.substr(peg$currPos, 2) === peg$c38) {
2765
+ s5 = peg$c38;
2248
2766
  peg$currPos += 2;
2249
2767
  } else {
2250
2768
  s5 = peg$FAILED;
2251
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
2769
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
2252
2770
  }
2253
2771
  peg$silentFails--;
2254
2772
  if (s5 === peg$FAILED) {
@@ -2263,7 +2781,7 @@ function peg$parse(input, options) {
2263
2781
  peg$currPos++;
2264
2782
  } else {
2265
2783
  s5 = peg$FAILED;
2266
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
2784
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
2267
2785
  }
2268
2786
  if (s5 !== peg$FAILED) {
2269
2787
  s4 = [s4, s5];
@@ -2281,12 +2799,12 @@ function peg$parse(input, options) {
2281
2799
  s3 = peg$currPos;
2282
2800
  s4 = peg$currPos;
2283
2801
  peg$silentFails++;
2284
- if (input.substr(peg$currPos, 2) === peg$c33) {
2285
- s5 = peg$c33;
2802
+ if (input.substr(peg$currPos, 2) === peg$c38) {
2803
+ s5 = peg$c38;
2286
2804
  peg$currPos += 2;
2287
2805
  } else {
2288
2806
  s5 = peg$FAILED;
2289
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
2807
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
2290
2808
  }
2291
2809
  peg$silentFails--;
2292
2810
  if (s5 === peg$FAILED) {
@@ -2301,7 +2819,7 @@ function peg$parse(input, options) {
2301
2819
  peg$currPos++;
2302
2820
  } else {
2303
2821
  s5 = peg$FAILED;
2304
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
2822
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
2305
2823
  }
2306
2824
  if (s5 !== peg$FAILED) {
2307
2825
  s4 = [s4, s5];
@@ -2315,16 +2833,16 @@ function peg$parse(input, options) {
2315
2833
  s3 = peg$FAILED;
2316
2834
  }
2317
2835
  }
2318
- if (input.substr(peg$currPos, 2) === peg$c33) {
2319
- s3 = peg$c33;
2836
+ if (input.substr(peg$currPos, 2) === peg$c38) {
2837
+ s3 = peg$c38;
2320
2838
  peg$currPos += 2;
2321
2839
  } else {
2322
2840
  s3 = peg$FAILED;
2323
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
2841
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
2324
2842
  }
2325
2843
  if (s3 !== peg$FAILED) {
2326
2844
  peg$savedPos = s0;
2327
- s0 = peg$f31();
2845
+ s0 = peg$f39();
2328
2846
  } else {
2329
2847
  peg$currPos = s0;
2330
2848
  s0 = peg$FAILED;
@@ -2337,37 +2855,103 @@ function peg$parse(input, options) {
2337
2855
  return s0;
2338
2856
  }
2339
2857
 
2858
+ function peg$parsemultiplicativeExpression() {
2859
+ var s0, s1, s2, s3, s4, s5, s6, s7;
2860
+
2861
+ s0 = peg$currPos;
2862
+ s1 = peg$parseexponentiationExpression();
2863
+ if (s1 !== peg$FAILED) {
2864
+ s2 = [];
2865
+ s3 = peg$currPos;
2866
+ s4 = peg$parse__();
2867
+ s5 = peg$parsemultiplicativeOperator();
2868
+ if (s5 !== peg$FAILED) {
2869
+ s6 = peg$parse__();
2870
+ s7 = peg$parseexponentiationExpression();
2871
+ if (s7 !== peg$FAILED) {
2872
+ s3 = [ s5, s7 ];
2873
+ } else {
2874
+ peg$currPos = s3;
2875
+ s3 = peg$FAILED;
2876
+ }
2877
+ } else {
2878
+ peg$currPos = s3;
2879
+ s3 = peg$FAILED;
2880
+ }
2881
+ while (s3 !== peg$FAILED) {
2882
+ s2.push(s3);
2883
+ s3 = peg$currPos;
2884
+ s4 = peg$parse__();
2885
+ s5 = peg$parsemultiplicativeOperator();
2886
+ if (s5 !== peg$FAILED) {
2887
+ s6 = peg$parse__();
2888
+ s7 = peg$parseexponentiationExpression();
2889
+ if (s7 !== peg$FAILED) {
2890
+ s3 = [ s5, s7 ];
2891
+ } else {
2892
+ peg$currPos = s3;
2893
+ s3 = peg$FAILED;
2894
+ }
2895
+ } else {
2896
+ peg$currPos = s3;
2897
+ s3 = peg$FAILED;
2898
+ }
2899
+ }
2900
+ peg$savedPos = s0;
2901
+ s0 = peg$f40(s1, s2);
2902
+ } else {
2903
+ peg$currPos = s0;
2904
+ s0 = peg$FAILED;
2905
+ }
2906
+
2907
+ return s0;
2908
+ }
2909
+
2910
+ function peg$parsemultiplicativeOperator() {
2911
+ var s0;
2912
+
2913
+ s0 = input.charAt(peg$currPos);
2914
+ if (peg$r4.test(s0)) {
2915
+ peg$currPos++;
2916
+ } else {
2917
+ s0 = peg$FAILED;
2918
+ if (peg$silentFails === 0) { peg$fail(peg$e58); }
2919
+ }
2920
+
2921
+ return s0;
2922
+ }
2923
+
2340
2924
  function peg$parsenamespace() {
2341
2925
  var s0, s1, s2, s3;
2342
2926
 
2343
2927
  s0 = peg$currPos;
2344
2928
  if (input.charCodeAt(peg$currPos) === 64) {
2345
- s1 = peg$c34;
2929
+ s1 = peg$c39;
2346
2930
  peg$currPos++;
2347
2931
  } else {
2348
2932
  s1 = peg$FAILED;
2349
- if (peg$silentFails === 0) { peg$fail(peg$e52); }
2933
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
2350
2934
  }
2351
2935
  if (s1 === peg$FAILED) {
2352
2936
  s1 = null;
2353
2937
  }
2354
2938
  s2 = [];
2355
2939
  s3 = input.charAt(peg$currPos);
2356
- if (peg$r3.test(s3)) {
2940
+ if (peg$r5.test(s3)) {
2357
2941
  peg$currPos++;
2358
2942
  } else {
2359
2943
  s3 = peg$FAILED;
2360
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
2944
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
2361
2945
  }
2362
2946
  if (s3 !== peg$FAILED) {
2363
2947
  while (s3 !== peg$FAILED) {
2364
2948
  s2.push(s3);
2365
2949
  s3 = input.charAt(peg$currPos);
2366
- if (peg$r3.test(s3)) {
2950
+ if (peg$r5.test(s3)) {
2367
2951
  peg$currPos++;
2368
2952
  } else {
2369
2953
  s3 = peg$FAILED;
2370
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
2954
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
2371
2955
  }
2372
2956
  }
2373
2957
  } else {
@@ -2375,15 +2959,15 @@ function peg$parse(input, options) {
2375
2959
  }
2376
2960
  if (s2 !== peg$FAILED) {
2377
2961
  if (input.charCodeAt(peg$currPos) === 58) {
2378
- s3 = peg$c6;
2962
+ s3 = peg$c10;
2379
2963
  peg$currPos++;
2380
2964
  } else {
2381
2965
  s3 = peg$FAILED;
2382
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
2966
+ if (peg$silentFails === 0) { peg$fail(peg$e16); }
2383
2967
  }
2384
2968
  if (s3 !== peg$FAILED) {
2385
2969
  peg$savedPos = s0;
2386
- s0 = peg$f32(s1, s2);
2970
+ s0 = peg$f41(s1, s2);
2387
2971
  } else {
2388
2972
  peg$currPos = s0;
2389
2973
  s0 = peg$FAILED;
@@ -2400,27 +2984,27 @@ function peg$parse(input, options) {
2400
2984
  var s0;
2401
2985
 
2402
2986
  if (input.charCodeAt(peg$currPos) === 10) {
2403
- s0 = peg$c35;
2987
+ s0 = peg$c40;
2404
2988
  peg$currPos++;
2405
2989
  } else {
2406
2990
  s0 = peg$FAILED;
2407
- if (peg$silentFails === 0) { peg$fail(peg$e54); }
2991
+ if (peg$silentFails === 0) { peg$fail(peg$e61); }
2408
2992
  }
2409
2993
  if (s0 === peg$FAILED) {
2410
- if (input.substr(peg$currPos, 2) === peg$c36) {
2411
- s0 = peg$c36;
2994
+ if (input.substr(peg$currPos, 2) === peg$c41) {
2995
+ s0 = peg$c41;
2412
2996
  peg$currPos += 2;
2413
2997
  } else {
2414
2998
  s0 = peg$FAILED;
2415
- if (peg$silentFails === 0) { peg$fail(peg$e55); }
2999
+ if (peg$silentFails === 0) { peg$fail(peg$e62); }
2416
3000
  }
2417
3001
  if (s0 === peg$FAILED) {
2418
3002
  if (input.charCodeAt(peg$currPos) === 13) {
2419
- s0 = peg$c37;
3003
+ s0 = peg$c42;
2420
3004
  peg$currPos++;
2421
3005
  } else {
2422
3006
  s0 = peg$FAILED;
2423
- if (peg$silentFails === 0) { peg$fail(peg$e56); }
3007
+ if (peg$silentFails === 0) { peg$fail(peg$e63); }
2424
3008
  }
2425
3009
  }
2426
3010
  }
@@ -2439,7 +3023,7 @@ function peg$parse(input, options) {
2439
3023
  peg$silentFails--;
2440
3024
  if (s0 === peg$FAILED) {
2441
3025
  s1 = peg$FAILED;
2442
- if (peg$silentFails === 0) { peg$fail(peg$e57); }
3026
+ if (peg$silentFails === 0) { peg$fail(peg$e64); }
2443
3027
  }
2444
3028
 
2445
3029
  return s0;
@@ -2454,12 +3038,12 @@ function peg$parse(input, options) {
2454
3038
  s2 = [];
2455
3039
  s3 = peg$currPos;
2456
3040
  s4 = peg$parse__();
2457
- if (input.substr(peg$currPos, 2) === peg$c38) {
2458
- s5 = peg$c38;
3041
+ if (input.substr(peg$currPos, 2) === peg$c43) {
3042
+ s5 = peg$c43;
2459
3043
  peg$currPos += 2;
2460
3044
  } else {
2461
3045
  s5 = peg$FAILED;
2462
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
3046
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2463
3047
  }
2464
3048
  if (s5 !== peg$FAILED) {
2465
3049
  s6 = peg$parse__();
@@ -2478,12 +3062,12 @@ function peg$parse(input, options) {
2478
3062
  s2.push(s3);
2479
3063
  s3 = peg$currPos;
2480
3064
  s4 = peg$parse__();
2481
- if (input.substr(peg$currPos, 2) === peg$c38) {
2482
- s5 = peg$c38;
3065
+ if (input.substr(peg$currPos, 2) === peg$c43) {
3066
+ s5 = peg$c43;
2483
3067
  peg$currPos += 2;
2484
3068
  } else {
2485
3069
  s5 = peg$FAILED;
2486
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
3070
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2487
3071
  }
2488
3072
  if (s5 !== peg$FAILED) {
2489
3073
  s6 = peg$parse__();
@@ -2500,7 +3084,7 @@ function peg$parse(input, options) {
2500
3084
  }
2501
3085
  }
2502
3086
  peg$savedPos = s0;
2503
- s0 = peg$f33(s1, s2);
3087
+ s0 = peg$f42(s1, s2);
2504
3088
  } else {
2505
3089
  peg$currPos = s0;
2506
3090
  s0 = peg$FAILED;
@@ -2515,11 +3099,11 @@ function peg$parse(input, options) {
2515
3099
  peg$silentFails++;
2516
3100
  s0 = peg$currPos;
2517
3101
  if (input.charCodeAt(peg$currPos) === 123) {
2518
- s1 = peg$c39;
3102
+ s1 = peg$c44;
2519
3103
  peg$currPos++;
2520
3104
  } else {
2521
3105
  s1 = peg$FAILED;
2522
- if (peg$silentFails === 0) { peg$fail(peg$e60); }
3106
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
2523
3107
  }
2524
3108
  if (s1 !== peg$FAILED) {
2525
3109
  s2 = peg$parse__();
@@ -2531,7 +3115,7 @@ function peg$parse(input, options) {
2531
3115
  s5 = peg$parseclosingBrace();
2532
3116
  if (s5 !== peg$FAILED) {
2533
3117
  peg$savedPos = s0;
2534
- s0 = peg$f34(s3);
3118
+ s0 = peg$f43(s3);
2535
3119
  } else {
2536
3120
  peg$currPos = s0;
2537
3121
  s0 = peg$FAILED;
@@ -2543,7 +3127,7 @@ function peg$parse(input, options) {
2543
3127
  peg$silentFails--;
2544
3128
  if (s0 === peg$FAILED) {
2545
3129
  s1 = peg$FAILED;
2546
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
3130
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2547
3131
  }
2548
3132
 
2549
3133
  return s0;
@@ -2584,7 +3168,7 @@ function peg$parse(input, options) {
2584
3168
  s2 = null;
2585
3169
  }
2586
3170
  peg$savedPos = s0;
2587
- s0 = peg$f35(s1);
3171
+ s0 = peg$f44(s1);
2588
3172
  } else {
2589
3173
  peg$currPos = s0;
2590
3174
  s0 = peg$FAILED;
@@ -2596,7 +3180,7 @@ function peg$parse(input, options) {
2596
3180
  function peg$parseobjectEntry() {
2597
3181
  var s0;
2598
3182
 
2599
- s0 = peg$parsespread();
3183
+ s0 = peg$parsespreadElement();
2600
3184
  if (s0 === peg$FAILED) {
2601
3185
  s0 = peg$parseobjectProperty();
2602
3186
  if (s0 === peg$FAILED) {
@@ -2619,18 +3203,18 @@ function peg$parse(input, options) {
2619
3203
  if (s1 !== peg$FAILED) {
2620
3204
  s2 = peg$parse__();
2621
3205
  if (input.charCodeAt(peg$currPos) === 61) {
2622
- s3 = peg$c40;
3206
+ s3 = peg$c45;
2623
3207
  peg$currPos++;
2624
3208
  } else {
2625
3209
  s3 = peg$FAILED;
2626
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
3210
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
2627
3211
  }
2628
3212
  if (s3 !== peg$FAILED) {
2629
3213
  s4 = peg$parse__();
2630
3214
  s5 = peg$parsepipelineExpression();
2631
3215
  if (s5 !== peg$FAILED) {
2632
3216
  peg$savedPos = s0;
2633
- s0 = peg$f36(s1, s5);
3217
+ s0 = peg$f45(s1, s5);
2634
3218
  } else {
2635
3219
  peg$currPos = s0;
2636
3220
  s0 = peg$FAILED;
@@ -2646,7 +3230,7 @@ function peg$parse(input, options) {
2646
3230
  peg$silentFails--;
2647
3231
  if (s0 === peg$FAILED) {
2648
3232
  s1 = peg$FAILED;
2649
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
3233
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
2650
3234
  }
2651
3235
 
2652
3236
  return s0;
@@ -2658,21 +3242,21 @@ function peg$parse(input, options) {
2658
3242
  s0 = peg$currPos;
2659
3243
  s1 = peg$currPos;
2660
3244
  if (input.charCodeAt(peg$currPos) === 40) {
2661
- s2 = peg$c1;
3245
+ s2 = peg$c2;
2662
3246
  peg$currPos++;
2663
3247
  } else {
2664
3248
  s2 = peg$FAILED;
2665
- if (peg$silentFails === 0) { peg$fail(peg$e3); }
3249
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
2666
3250
  }
2667
3251
  if (s2 !== peg$FAILED) {
2668
3252
  s3 = peg$parseobjectPublicKey();
2669
3253
  if (s3 !== peg$FAILED) {
2670
3254
  if (input.charCodeAt(peg$currPos) === 41) {
2671
- s4 = peg$c2;
3255
+ s4 = peg$c3;
2672
3256
  peg$currPos++;
2673
3257
  } else {
2674
3258
  s4 = peg$FAILED;
2675
- if (peg$silentFails === 0) { peg$fail(peg$e4); }
3259
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
2676
3260
  }
2677
3261
  if (s4 !== peg$FAILED) {
2678
3262
  s2 = [s2, s3, s4];
@@ -2691,7 +3275,7 @@ function peg$parse(input, options) {
2691
3275
  }
2692
3276
  if (s1 !== peg$FAILED) {
2693
3277
  peg$savedPos = s0;
2694
- s1 = peg$f37(s1);
3278
+ s1 = peg$f46(s1);
2695
3279
  }
2696
3280
  s0 = s1;
2697
3281
 
@@ -2709,7 +3293,7 @@ function peg$parse(input, options) {
2709
3293
  peg$silentFails--;
2710
3294
  if (s0 === peg$FAILED) {
2711
3295
  s1 = peg$FAILED;
2712
- if (peg$silentFails === 0) { peg$fail(peg$e63); }
3296
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
2713
3297
  }
2714
3298
 
2715
3299
  return s0;
@@ -2724,18 +3308,18 @@ function peg$parse(input, options) {
2724
3308
  if (s1 !== peg$FAILED) {
2725
3309
  s2 = peg$parse__();
2726
3310
  if (input.charCodeAt(peg$currPos) === 58) {
2727
- s3 = peg$c6;
3311
+ s3 = peg$c10;
2728
3312
  peg$currPos++;
2729
3313
  } else {
2730
3314
  s3 = peg$FAILED;
2731
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
3315
+ if (peg$silentFails === 0) { peg$fail(peg$e16); }
2732
3316
  }
2733
3317
  if (s3 !== peg$FAILED) {
2734
3318
  s4 = peg$parse__();
2735
3319
  s5 = peg$parsepipelineExpression();
2736
3320
  if (s5 !== peg$FAILED) {
2737
3321
  peg$savedPos = s0;
2738
- s0 = peg$f38(s1, s5);
3322
+ s0 = peg$f47(s1, s5);
2739
3323
  } else {
2740
3324
  peg$currPos = s0;
2741
3325
  s0 = peg$FAILED;
@@ -2751,7 +3335,7 @@ function peg$parse(input, options) {
2751
3335
  peg$silentFails--;
2752
3336
  if (s0 === peg$FAILED) {
2753
3337
  s1 = peg$FAILED;
2754
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
3338
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
2755
3339
  }
2756
3340
 
2757
3341
  return s0;
@@ -2765,13 +3349,13 @@ function peg$parse(input, options) {
2765
3349
  s1 = peg$parseobjectPublicKey();
2766
3350
  if (s1 !== peg$FAILED) {
2767
3351
  peg$savedPos = s0;
2768
- s1 = peg$f39(s1);
3352
+ s1 = peg$f48(s1);
2769
3353
  }
2770
3354
  s0 = s1;
2771
3355
  peg$silentFails--;
2772
3356
  if (s0 === peg$FAILED) {
2773
3357
  s1 = peg$FAILED;
2774
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
3358
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
2775
3359
  }
2776
3360
 
2777
3361
  return s0;
@@ -2784,17 +3368,17 @@ function peg$parse(input, options) {
2784
3368
  s1 = peg$parseidentifier();
2785
3369
  if (s1 !== peg$FAILED) {
2786
3370
  if (input.charCodeAt(peg$currPos) === 47) {
2787
- s2 = peg$c41;
3371
+ s2 = peg$c46;
2788
3372
  peg$currPos++;
2789
3373
  } else {
2790
3374
  s2 = peg$FAILED;
2791
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3375
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
2792
3376
  }
2793
3377
  if (s2 === peg$FAILED) {
2794
3378
  s2 = null;
2795
3379
  }
2796
3380
  peg$savedPos = s0;
2797
- s0 = peg$f40(s1, s2);
3381
+ s0 = peg$f49(s1, s2);
2798
3382
  } else {
2799
3383
  peg$currPos = s0;
2800
3384
  s0 = peg$FAILED;
@@ -2804,7 +3388,7 @@ function peg$parse(input, options) {
2804
3388
  s1 = peg$parsestringLiteral();
2805
3389
  if (s1 !== peg$FAILED) {
2806
3390
  peg$savedPos = s0;
2807
- s1 = peg$f41(s1);
3391
+ s1 = peg$f50(s1);
2808
3392
  }
2809
3393
  s0 = s1;
2810
3394
  }
@@ -2818,11 +3402,11 @@ function peg$parse(input, options) {
2818
3402
  peg$silentFails++;
2819
3403
  s0 = peg$currPos;
2820
3404
  if (input.charCodeAt(peg$currPos) === 40) {
2821
- s1 = peg$c1;
3405
+ s1 = peg$c2;
2822
3406
  peg$currPos++;
2823
3407
  } else {
2824
3408
  s1 = peg$FAILED;
2825
- if (peg$silentFails === 0) { peg$fail(peg$e3); }
3409
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
2826
3410
  }
2827
3411
  if (s1 !== peg$FAILED) {
2828
3412
  s2 = peg$parse__();
@@ -2832,15 +3416,15 @@ function peg$parse(input, options) {
2832
3416
  }
2833
3417
  s4 = peg$parse__();
2834
3418
  if (input.charCodeAt(peg$currPos) === 41) {
2835
- s5 = peg$c2;
3419
+ s5 = peg$c3;
2836
3420
  peg$currPos++;
2837
3421
  } else {
2838
3422
  s5 = peg$FAILED;
2839
- if (peg$silentFails === 0) { peg$fail(peg$e4); }
3423
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
2840
3424
  }
2841
3425
  if (s5 !== peg$FAILED) {
2842
3426
  peg$savedPos = s0;
2843
- s0 = peg$f42(s3);
3427
+ s0 = peg$f51(s3);
2844
3428
  } else {
2845
3429
  peg$currPos = s0;
2846
3430
  s0 = peg$FAILED;
@@ -2852,7 +3436,7 @@ function peg$parse(input, options) {
2852
3436
  peg$silentFails--;
2853
3437
  if (s0 === peg$FAILED) {
2854
3438
  s1 = peg$FAILED;
2855
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
3439
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
2856
3440
  }
2857
3441
 
2858
3442
  return s0;
@@ -2878,13 +3462,13 @@ function peg$parse(input, options) {
2878
3462
  }
2879
3463
  if (s1 !== peg$FAILED) {
2880
3464
  peg$savedPos = s0;
2881
- s1 = peg$f43(s1);
3465
+ s1 = peg$f52(s1);
2882
3466
  }
2883
3467
  s0 = s1;
2884
3468
  peg$silentFails--;
2885
3469
  if (s0 === peg$FAILED) {
2886
3470
  s1 = peg$FAILED;
2887
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
3471
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
2888
3472
  }
2889
3473
 
2890
3474
  return s0;
@@ -2897,7 +3481,7 @@ function peg$parse(input, options) {
2897
3481
  s1 = peg$parsepath();
2898
3482
  if (s1 !== peg$FAILED) {
2899
3483
  peg$savedPos = s0;
2900
- s1 = peg$f44(s1);
3484
+ s1 = peg$f53(s1);
2901
3485
  }
2902
3486
  s0 = s1;
2903
3487
 
@@ -2924,7 +3508,7 @@ function peg$parse(input, options) {
2924
3508
  s2 = null;
2925
3509
  }
2926
3510
  peg$savedPos = s0;
2927
- s0 = peg$f45(s1, s2);
3511
+ s0 = peg$f54(s1, s2);
2928
3512
  } else {
2929
3513
  peg$currPos = s0;
2930
3514
  s0 = peg$FAILED;
@@ -2938,11 +3522,11 @@ function peg$parse(input, options) {
2938
3522
 
2939
3523
  s0 = peg$currPos;
2940
3524
  if (input.charCodeAt(peg$currPos) === 47) {
2941
- s1 = peg$c41;
3525
+ s1 = peg$c46;
2942
3526
  peg$currPos++;
2943
3527
  } else {
2944
3528
  s1 = peg$FAILED;
2945
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3529
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
2946
3530
  }
2947
3531
  if (s1 !== peg$FAILED) {
2948
3532
  s2 = peg$parsepathKey();
@@ -2962,11 +3546,11 @@ function peg$parse(input, options) {
2962
3546
  var s0;
2963
3547
 
2964
3548
  s0 = input.charAt(peg$currPos);
2965
- if (peg$r4.test(s0)) {
3549
+ if (peg$r6.test(s0)) {
2966
3550
  peg$currPos++;
2967
3551
  } else {
2968
3552
  s0 = peg$FAILED;
2969
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3553
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
2970
3554
  }
2971
3555
  if (s0 === peg$FAILED) {
2972
3556
  s0 = peg$parseescapedChar();
@@ -3018,7 +3602,7 @@ function peg$parse(input, options) {
3018
3602
  }
3019
3603
  }
3020
3604
  peg$savedPos = s0;
3021
- s0 = peg$f46(s1, s2);
3605
+ s0 = peg$f55(s1, s2);
3022
3606
  } else {
3023
3607
  peg$currPos = s0;
3024
3608
  s0 = peg$FAILED;
@@ -3069,7 +3653,7 @@ function peg$parse(input, options) {
3069
3653
  peg$silentFails--;
3070
3654
  if (s0 === peg$FAILED) {
3071
3655
  s1 = peg$FAILED;
3072
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3656
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
3073
3657
  }
3074
3658
 
3075
3659
  return s0;
@@ -3081,12 +3665,12 @@ function peg$parse(input, options) {
3081
3665
  s0 = peg$currPos;
3082
3666
  s1 = peg$parsenamespace();
3083
3667
  if (s1 !== peg$FAILED) {
3084
- if (input.substr(peg$currPos, 2) === peg$c42) {
3085
- s2 = peg$c42;
3668
+ if (input.substr(peg$currPos, 2) === peg$c47) {
3669
+ s2 = peg$c47;
3086
3670
  peg$currPos += 2;
3087
3671
  } else {
3088
3672
  s2 = peg$FAILED;
3089
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3673
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
3090
3674
  }
3091
3675
  if (s2 !== peg$FAILED) {
3092
3676
  s3 = peg$parsehost();
@@ -3096,7 +3680,7 @@ function peg$parse(input, options) {
3096
3680
  s4 = null;
3097
3681
  }
3098
3682
  peg$savedPos = s0;
3099
- s0 = peg$f47(s1, s3, s4);
3683
+ s0 = peg$f56(s1, s3, s4);
3100
3684
  } else {
3101
3685
  peg$currPos = s0;
3102
3686
  s0 = peg$FAILED;
@@ -3125,7 +3709,7 @@ function peg$parse(input, options) {
3125
3709
  s2 = peg$parsescopeReference();
3126
3710
  if (s2 !== peg$FAILED) {
3127
3711
  peg$savedPos = s0;
3128
- s0 = peg$f48(s1, s2);
3712
+ s0 = peg$f57(s1, s2);
3129
3713
  } else {
3130
3714
  peg$currPos = s0;
3131
3715
  s0 = peg$FAILED;
@@ -3158,22 +3742,115 @@ function peg$parse(input, options) {
3158
3742
  return s0;
3159
3743
  }
3160
3744
 
3745
+ function peg$parserelationalExpression() {
3746
+ var s0, s1, s2, s3, s4, s5, s6, s7;
3747
+
3748
+ s0 = peg$currPos;
3749
+ s1 = peg$parseshiftExpression();
3750
+ if (s1 !== peg$FAILED) {
3751
+ s2 = [];
3752
+ s3 = peg$currPos;
3753
+ s4 = peg$parse__();
3754
+ s5 = peg$parserelationalOperator();
3755
+ if (s5 !== peg$FAILED) {
3756
+ s6 = peg$parse__();
3757
+ s7 = peg$parseshiftExpression();
3758
+ if (s7 !== peg$FAILED) {
3759
+ s3 = [ s5, s7 ];
3760
+ } else {
3761
+ peg$currPos = s3;
3762
+ s3 = peg$FAILED;
3763
+ }
3764
+ } else {
3765
+ peg$currPos = s3;
3766
+ s3 = peg$FAILED;
3767
+ }
3768
+ while (s3 !== peg$FAILED) {
3769
+ s2.push(s3);
3770
+ s3 = peg$currPos;
3771
+ s4 = peg$parse__();
3772
+ s5 = peg$parserelationalOperator();
3773
+ if (s5 !== peg$FAILED) {
3774
+ s6 = peg$parse__();
3775
+ s7 = peg$parseshiftExpression();
3776
+ if (s7 !== peg$FAILED) {
3777
+ s3 = [ s5, s7 ];
3778
+ } else {
3779
+ peg$currPos = s3;
3780
+ s3 = peg$FAILED;
3781
+ }
3782
+ } else {
3783
+ peg$currPos = s3;
3784
+ s3 = peg$FAILED;
3785
+ }
3786
+ }
3787
+ peg$savedPos = s0;
3788
+ s0 = peg$f58(s1, s2);
3789
+ } else {
3790
+ peg$currPos = s0;
3791
+ s0 = peg$FAILED;
3792
+ }
3793
+
3794
+ return s0;
3795
+ }
3796
+
3797
+ function peg$parserelationalOperator() {
3798
+ var s0;
3799
+
3800
+ if (input.substr(peg$currPos, 2) === peg$c48) {
3801
+ s0 = peg$c48;
3802
+ peg$currPos += 2;
3803
+ } else {
3804
+ s0 = peg$FAILED;
3805
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
3806
+ }
3807
+ if (s0 === peg$FAILED) {
3808
+ if (input.charCodeAt(peg$currPos) === 60) {
3809
+ s0 = peg$c49;
3810
+ peg$currPos++;
3811
+ } else {
3812
+ s0 = peg$FAILED;
3813
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
3814
+ }
3815
+ if (s0 === peg$FAILED) {
3816
+ if (input.substr(peg$currPos, 2) === peg$c50) {
3817
+ s0 = peg$c50;
3818
+ peg$currPos += 2;
3819
+ } else {
3820
+ s0 = peg$FAILED;
3821
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
3822
+ }
3823
+ if (s0 === peg$FAILED) {
3824
+ if (input.charCodeAt(peg$currPos) === 62) {
3825
+ s0 = peg$c34;
3826
+ peg$currPos++;
3827
+ } else {
3828
+ s0 = peg$FAILED;
3829
+ if (peg$silentFails === 0) { peg$fail(peg$e49); }
3830
+ }
3831
+ }
3832
+ }
3833
+ }
3834
+
3835
+ return s0;
3836
+ }
3837
+
3161
3838
  function peg$parserootDirectory() {
3162
3839
  var s0, s1, s2, s3;
3163
3840
 
3164
3841
  s0 = peg$currPos;
3165
3842
  if (input.charCodeAt(peg$currPos) === 47) {
3166
- s1 = peg$c41;
3843
+ s1 = peg$c46;
3167
3844
  peg$currPos++;
3168
3845
  } else {
3169
3846
  s1 = peg$FAILED;
3170
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3847
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3171
3848
  }
3172
3849
  if (s1 !== peg$FAILED) {
3173
3850
  s2 = peg$parsepathKey();
3174
3851
  if (s2 !== peg$FAILED) {
3175
3852
  peg$savedPos = s0;
3176
- s0 = peg$f49(s2);
3853
+ s0 = peg$f59(s2);
3177
3854
  } else {
3178
3855
  peg$currPos = s0;
3179
3856
  s0 = peg$FAILED;
@@ -3185,21 +3862,21 @@ function peg$parse(input, options) {
3185
3862
  if (s0 === peg$FAILED) {
3186
3863
  s0 = peg$currPos;
3187
3864
  if (input.charCodeAt(peg$currPos) === 47) {
3188
- s1 = peg$c41;
3865
+ s1 = peg$c46;
3189
3866
  peg$currPos++;
3190
3867
  } else {
3191
3868
  s1 = peg$FAILED;
3192
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3869
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3193
3870
  }
3194
3871
  if (s1 !== peg$FAILED) {
3195
3872
  s2 = peg$currPos;
3196
3873
  peg$silentFails++;
3197
3874
  if (input.charCodeAt(peg$currPos) === 47) {
3198
- s3 = peg$c41;
3875
+ s3 = peg$c46;
3199
3876
  peg$currPos++;
3200
3877
  } else {
3201
3878
  s3 = peg$FAILED;
3202
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3879
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3203
3880
  }
3204
3881
  peg$silentFails--;
3205
3882
  if (s3 === peg$FAILED) {
@@ -3210,7 +3887,7 @@ function peg$parse(input, options) {
3210
3887
  }
3211
3888
  if (s2 !== peg$FAILED) {
3212
3889
  peg$savedPos = s0;
3213
- s0 = peg$f50();
3890
+ s0 = peg$f60();
3214
3891
  } else {
3215
3892
  peg$currPos = s0;
3216
3893
  s0 = peg$FAILED;
@@ -3236,7 +3913,7 @@ function peg$parse(input, options) {
3236
3913
  s2 = null;
3237
3914
  }
3238
3915
  peg$savedPos = s0;
3239
- s0 = peg$f51(s1, s2);
3916
+ s0 = peg$f61(s1, s2);
3240
3917
  } else {
3241
3918
  peg$currPos = s0;
3242
3919
  s0 = peg$FAILED;
@@ -3244,7 +3921,7 @@ function peg$parse(input, options) {
3244
3921
  peg$silentFails--;
3245
3922
  if (s0 === peg$FAILED) {
3246
3923
  s1 = peg$FAILED;
3247
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
3924
+ if (peg$silentFails === 0) { peg$fail(peg$e82); }
3248
3925
  }
3249
3926
 
3250
3927
  return s0;
@@ -3256,11 +3933,11 @@ function peg$parse(input, options) {
3256
3933
  s0 = peg$currPos;
3257
3934
  s1 = peg$parse__();
3258
3935
  if (input.charCodeAt(peg$currPos) === 44) {
3259
- s2 = peg$c43;
3936
+ s2 = peg$c8;
3260
3937
  peg$currPos++;
3261
3938
  } else {
3262
3939
  s2 = peg$FAILED;
3263
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
3940
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
3264
3941
  }
3265
3942
  if (s2 !== peg$FAILED) {
3266
3943
  s3 = peg$parse__();
@@ -3284,11 +3961,11 @@ function peg$parse(input, options) {
3284
3961
  s1 = peg$currPos;
3285
3962
  peg$silentFails++;
3286
3963
  if (input.charCodeAt(peg$currPos) === 47) {
3287
- s2 = peg$c41;
3964
+ s2 = peg$c46;
3288
3965
  peg$currPos++;
3289
3966
  } else {
3290
3967
  s2 = peg$FAILED;
3291
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3968
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3292
3969
  }
3293
3970
  peg$silentFails--;
3294
3971
  if (s2 !== peg$FAILED) {
@@ -3299,7 +3976,7 @@ function peg$parse(input, options) {
3299
3976
  }
3300
3977
  if (s1 !== peg$FAILED) {
3301
3978
  peg$savedPos = s0;
3302
- s1 = peg$f52();
3979
+ s1 = peg$f62();
3303
3980
  }
3304
3981
  s0 = s1;
3305
3982
 
@@ -3310,34 +3987,86 @@ function peg$parse(input, options) {
3310
3987
  var s0, s1, s2, s3;
3311
3988
 
3312
3989
  s0 = peg$currPos;
3313
- if (input.substr(peg$currPos, 2) === peg$c44) {
3314
- s1 = peg$c44;
3990
+ if (input.substr(peg$currPos, 2) === peg$c51) {
3991
+ s1 = peg$c51;
3315
3992
  peg$currPos += 2;
3316
3993
  } else {
3317
3994
  s1 = peg$FAILED;
3318
- if (peg$silentFails === 0) { peg$fail(peg$e74); }
3995
+ if (peg$silentFails === 0) { peg$fail(peg$e83); }
3319
3996
  }
3320
3997
  if (s1 !== peg$FAILED) {
3321
3998
  s2 = [];
3322
3999
  s3 = input.charAt(peg$currPos);
3323
- if (peg$r5.test(s3)) {
4000
+ if (peg$r7.test(s3)) {
3324
4001
  peg$currPos++;
3325
4002
  } else {
3326
4003
  s3 = peg$FAILED;
3327
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
4004
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
3328
4005
  }
3329
4006
  while (s3 !== peg$FAILED) {
3330
4007
  s2.push(s3);
3331
4008
  s3 = input.charAt(peg$currPos);
3332
- if (peg$r5.test(s3)) {
4009
+ if (peg$r7.test(s3)) {
3333
4010
  peg$currPos++;
3334
4011
  } else {
3335
4012
  s3 = peg$FAILED;
3336
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
4013
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
4014
+ }
4015
+ }
4016
+ peg$savedPos = s0;
4017
+ s0 = peg$f63();
4018
+ } else {
4019
+ peg$currPos = s0;
4020
+ s0 = peg$FAILED;
4021
+ }
4022
+
4023
+ return s0;
4024
+ }
4025
+
4026
+ function peg$parseshiftExpression() {
4027
+ var s0, s1, s2, s3, s4, s5, s6, s7;
4028
+
4029
+ s0 = peg$currPos;
4030
+ s1 = peg$parseadditiveExpression();
4031
+ if (s1 !== peg$FAILED) {
4032
+ s2 = [];
4033
+ s3 = peg$currPos;
4034
+ s4 = peg$parse__();
4035
+ s5 = peg$parseshiftOperator();
4036
+ if (s5 !== peg$FAILED) {
4037
+ s6 = peg$parse__();
4038
+ s7 = peg$parseadditiveExpression();
4039
+ if (s7 !== peg$FAILED) {
4040
+ s3 = [ s5, s7 ];
4041
+ } else {
4042
+ peg$currPos = s3;
4043
+ s3 = peg$FAILED;
4044
+ }
4045
+ } else {
4046
+ peg$currPos = s3;
4047
+ s3 = peg$FAILED;
4048
+ }
4049
+ while (s3 !== peg$FAILED) {
4050
+ s2.push(s3);
4051
+ s3 = peg$currPos;
4052
+ s4 = peg$parse__();
4053
+ s5 = peg$parseshiftOperator();
4054
+ if (s5 !== peg$FAILED) {
4055
+ s6 = peg$parse__();
4056
+ s7 = peg$parseadditiveExpression();
4057
+ if (s7 !== peg$FAILED) {
4058
+ s3 = [ s5, s7 ];
4059
+ } else {
4060
+ peg$currPos = s3;
4061
+ s3 = peg$FAILED;
4062
+ }
4063
+ } else {
4064
+ peg$currPos = s3;
4065
+ s3 = peg$FAILED;
3337
4066
  }
3338
4067
  }
3339
4068
  peg$savedPos = s0;
3340
- s0 = peg$f53();
4069
+ s0 = peg$f64(s1, s2);
3341
4070
  } else {
3342
4071
  peg$currPos = s0;
3343
4072
  s0 = peg$FAILED;
@@ -3346,27 +4075,59 @@ function peg$parse(input, options) {
3346
4075
  return s0;
3347
4076
  }
3348
4077
 
4078
+ function peg$parseshiftOperator() {
4079
+ var s0;
4080
+
4081
+ if (input.substr(peg$currPos, 2) === peg$c52) {
4082
+ s0 = peg$c52;
4083
+ peg$currPos += 2;
4084
+ } else {
4085
+ s0 = peg$FAILED;
4086
+ if (peg$silentFails === 0) { peg$fail(peg$e85); }
4087
+ }
4088
+ if (s0 === peg$FAILED) {
4089
+ if (input.substr(peg$currPos, 3) === peg$c53) {
4090
+ s0 = peg$c53;
4091
+ peg$currPos += 3;
4092
+ } else {
4093
+ s0 = peg$FAILED;
4094
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
4095
+ }
4096
+ if (s0 === peg$FAILED) {
4097
+ if (input.substr(peg$currPos, 2) === peg$c54) {
4098
+ s0 = peg$c54;
4099
+ peg$currPos += 2;
4100
+ } else {
4101
+ s0 = peg$FAILED;
4102
+ if (peg$silentFails === 0) { peg$fail(peg$e87); }
4103
+ }
4104
+ }
4105
+ }
4106
+
4107
+ return s0;
4108
+ }
4109
+
3349
4110
  function peg$parseshorthandFunction() {
3350
4111
  var s0, s1, s2, s3, s4;
3351
4112
 
3352
4113
  peg$silentFails++;
3353
4114
  s0 = peg$currPos;
3354
4115
  if (input.charCodeAt(peg$currPos) === 61) {
3355
- s1 = peg$c40;
4116
+ s1 = peg$c45;
3356
4117
  peg$currPos++;
3357
4118
  } else {
3358
4119
  s1 = peg$FAILED;
3359
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
4120
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3360
4121
  }
3361
4122
  if (s1 !== peg$FAILED) {
3362
4123
  s2 = peg$currPos;
3363
4124
  peg$silentFails++;
3364
4125
  if (input.charCodeAt(peg$currPos) === 61) {
3365
- s3 = peg$c40;
4126
+ s3 = peg$c45;
3366
4127
  peg$currPos++;
3367
4128
  } else {
3368
4129
  s3 = peg$FAILED;
3369
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
4130
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3370
4131
  }
3371
4132
  peg$silentFails--;
3372
4133
  if (s3 === peg$FAILED) {
@@ -3380,7 +4141,7 @@ function peg$parse(input, options) {
3380
4141
  s4 = peg$parseimplicitParenthesesCallExpression();
3381
4142
  if (s4 !== peg$FAILED) {
3382
4143
  peg$savedPos = s0;
3383
- s0 = peg$f54(s4);
4144
+ s0 = peg$f65(s4);
3384
4145
  } else {
3385
4146
  peg$currPos = s0;
3386
4147
  s0 = peg$FAILED;
@@ -3399,21 +4160,7 @@ function peg$parse(input, options) {
3399
4160
  peg$silentFails--;
3400
4161
  if (s0 === peg$FAILED) {
3401
4162
  s1 = peg$FAILED;
3402
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
3403
- }
3404
-
3405
- return s0;
3406
- }
3407
-
3408
- function peg$parsesign() {
3409
- var s0;
3410
-
3411
- s0 = input.charAt(peg$currPos);
3412
- if (peg$r6.test(s0)) {
3413
- peg$currPos++;
3414
- } else {
3415
- s0 = peg$FAILED;
3416
- if (peg$silentFails === 0) { peg$fail(peg$e77); }
4163
+ if (peg$silentFails === 0) { peg$fail(peg$e88); }
3417
4164
  }
3418
4165
 
3419
4166
  return s0;
@@ -3423,19 +4170,19 @@ function peg$parse(input, options) {
3423
4170
  var s0;
3424
4171
 
3425
4172
  if (input.charCodeAt(peg$currPos) === 8594) {
3426
- s0 = peg$c45;
4173
+ s0 = peg$c55;
3427
4174
  peg$currPos++;
3428
4175
  } else {
3429
4176
  s0 = peg$FAILED;
3430
- if (peg$silentFails === 0) { peg$fail(peg$e78); }
4177
+ if (peg$silentFails === 0) { peg$fail(peg$e89); }
3431
4178
  }
3432
4179
  if (s0 === peg$FAILED) {
3433
- if (input.substr(peg$currPos, 2) === peg$c46) {
3434
- s0 = peg$c46;
4180
+ if (input.substr(peg$currPos, 2) === peg$c56) {
4181
+ s0 = peg$c56;
3435
4182
  peg$currPos += 2;
3436
4183
  } else {
3437
4184
  s0 = peg$FAILED;
3438
- if (peg$silentFails === 0) { peg$fail(peg$e79); }
4185
+ if (peg$silentFails === 0) { peg$fail(peg$e90); }
3439
4186
  }
3440
4187
  }
3441
4188
 
@@ -3446,34 +4193,34 @@ function peg$parse(input, options) {
3446
4193
  var s0, s1, s2, s3;
3447
4194
 
3448
4195
  s0 = peg$currPos;
3449
- if (input.substr(peg$currPos, 2) === peg$c42) {
3450
- s1 = peg$c42;
4196
+ if (input.substr(peg$currPos, 2) === peg$c47) {
4197
+ s1 = peg$c47;
3451
4198
  peg$currPos += 2;
3452
4199
  } else {
3453
4200
  s1 = peg$FAILED;
3454
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
4201
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
3455
4202
  }
3456
4203
  if (s1 !== peg$FAILED) {
3457
4204
  s2 = [];
3458
4205
  s3 = input.charAt(peg$currPos);
3459
- if (peg$r5.test(s3)) {
4206
+ if (peg$r7.test(s3)) {
3460
4207
  peg$currPos++;
3461
4208
  } else {
3462
4209
  s3 = peg$FAILED;
3463
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
4210
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
3464
4211
  }
3465
4212
  while (s3 !== peg$FAILED) {
3466
4213
  s2.push(s3);
3467
4214
  s3 = input.charAt(peg$currPos);
3468
- if (peg$r5.test(s3)) {
4215
+ if (peg$r7.test(s3)) {
3469
4216
  peg$currPos++;
3470
4217
  } else {
3471
4218
  s3 = peg$FAILED;
3472
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
4219
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
3473
4220
  }
3474
4221
  }
3475
4222
  peg$savedPos = s0;
3476
- s0 = peg$f55();
4223
+ s0 = peg$f66();
3477
4224
  } else {
3478
4225
  peg$currPos = s0;
3479
4226
  s0 = peg$FAILED;
@@ -3488,11 +4235,11 @@ function peg$parse(input, options) {
3488
4235
  peg$silentFails++;
3489
4236
  s0 = peg$currPos;
3490
4237
  if (input.charCodeAt(peg$currPos) === 39) {
3491
- s1 = peg$c47;
4238
+ s1 = peg$c57;
3492
4239
  peg$currPos++;
3493
4240
  } else {
3494
4241
  s1 = peg$FAILED;
3495
- if (peg$silentFails === 0) { peg$fail(peg$e81); }
4242
+ if (peg$silentFails === 0) { peg$fail(peg$e92); }
3496
4243
  }
3497
4244
  if (s1 !== peg$FAILED) {
3498
4245
  s2 = [];
@@ -3502,15 +4249,15 @@ function peg$parse(input, options) {
3502
4249
  s3 = peg$parsesingleQuoteStringChar();
3503
4250
  }
3504
4251
  if (input.charCodeAt(peg$currPos) === 39) {
3505
- s3 = peg$c47;
4252
+ s3 = peg$c57;
3506
4253
  peg$currPos++;
3507
4254
  } else {
3508
4255
  s3 = peg$FAILED;
3509
- if (peg$silentFails === 0) { peg$fail(peg$e81); }
4256
+ if (peg$silentFails === 0) { peg$fail(peg$e92); }
3510
4257
  }
3511
4258
  if (s3 !== peg$FAILED) {
3512
4259
  peg$savedPos = s0;
3513
- s0 = peg$f56(s2);
4260
+ s0 = peg$f67(s2);
3514
4261
  } else {
3515
4262
  peg$currPos = s0;
3516
4263
  s0 = peg$FAILED;
@@ -3522,7 +4269,7 @@ function peg$parse(input, options) {
3522
4269
  peg$silentFails--;
3523
4270
  if (s0 === peg$FAILED) {
3524
4271
  s1 = peg$FAILED;
3525
- if (peg$silentFails === 0) { peg$fail(peg$e80); }
4272
+ if (peg$silentFails === 0) { peg$fail(peg$e91); }
3526
4273
  }
3527
4274
 
3528
4275
  return s0;
@@ -3535,11 +4282,11 @@ function peg$parse(input, options) {
3535
4282
  s1 = peg$currPos;
3536
4283
  peg$silentFails++;
3537
4284
  if (input.charCodeAt(peg$currPos) === 39) {
3538
- s2 = peg$c47;
4285
+ s2 = peg$c57;
3539
4286
  peg$currPos++;
3540
4287
  } else {
3541
4288
  s2 = peg$FAILED;
3542
- if (peg$silentFails === 0) { peg$fail(peg$e81); }
4289
+ if (peg$silentFails === 0) { peg$fail(peg$e92); }
3543
4290
  }
3544
4291
  if (s2 === peg$FAILED) {
3545
4292
  s2 = peg$parsenewLine();
@@ -3567,17 +4314,17 @@ function peg$parse(input, options) {
3567
4314
  return s0;
3568
4315
  }
3569
4316
 
3570
- function peg$parsespread() {
4317
+ function peg$parsespreadElement() {
3571
4318
  var s0, s1, s2, s3;
3572
4319
 
3573
4320
  s0 = peg$currPos;
3574
4321
  s1 = peg$parseellipsis();
3575
4322
  if (s1 !== peg$FAILED) {
3576
4323
  s2 = peg$parse__();
3577
- s3 = peg$parseconditionalExpression();
4324
+ s3 = peg$parsepipelineExpression();
3578
4325
  if (s3 !== peg$FAILED) {
3579
4326
  peg$savedPos = s0;
3580
- s0 = peg$f57(s3);
4327
+ s0 = peg$f68(s3);
3581
4328
  } else {
3582
4329
  peg$currPos = s0;
3583
4330
  s0 = peg$FAILED;
@@ -3604,7 +4351,7 @@ function peg$parse(input, options) {
3604
4351
  peg$silentFails--;
3605
4352
  if (s0 === peg$FAILED) {
3606
4353
  s1 = peg$FAILED;
3607
- if (peg$silentFails === 0) { peg$fail(peg$e82); }
4354
+ if (peg$silentFails === 0) { peg$fail(peg$e93); }
3608
4355
  }
3609
4356
 
3610
4357
  return s0;
@@ -3617,11 +4364,11 @@ function peg$parse(input, options) {
3617
4364
  s0 = peg$currPos;
3618
4365
  s1 = peg$parsetemplateDocumentContents();
3619
4366
  peg$savedPos = s0;
3620
- s1 = peg$f58(s1);
4367
+ s1 = peg$f69(s1);
3621
4368
  s0 = s1;
3622
4369
  peg$silentFails--;
3623
4370
  s1 = peg$FAILED;
3624
- if (peg$silentFails === 0) { peg$fail(peg$e83); }
4371
+ if (peg$silentFails === 0) { peg$fail(peg$e94); }
3625
4372
 
3626
4373
  return s0;
3627
4374
  }
@@ -3632,12 +4379,12 @@ function peg$parse(input, options) {
3632
4379
  s0 = peg$currPos;
3633
4380
  s1 = peg$currPos;
3634
4381
  peg$silentFails++;
3635
- if (input.substr(peg$currPos, 2) === peg$c48) {
3636
- s2 = peg$c48;
4382
+ if (input.substr(peg$currPos, 2) === peg$c58) {
4383
+ s2 = peg$c58;
3637
4384
  peg$currPos += 2;
3638
4385
  } else {
3639
4386
  s2 = peg$FAILED;
3640
- if (peg$silentFails === 0) { peg$fail(peg$e84); }
4387
+ if (peg$silentFails === 0) { peg$fail(peg$e95); }
3641
4388
  }
3642
4389
  peg$silentFails--;
3643
4390
  if (s2 === peg$FAILED) {
@@ -3692,7 +4439,7 @@ function peg$parse(input, options) {
3692
4439
  }
3693
4440
  }
3694
4441
  peg$savedPos = s0;
3695
- s0 = peg$f59(s1, s2);
4442
+ s0 = peg$f70(s1, s2);
3696
4443
 
3697
4444
  return s0;
3698
4445
  }
@@ -3709,11 +4456,11 @@ function peg$parse(input, options) {
3709
4456
  s2 = peg$parsetemplateDocumentChar();
3710
4457
  }
3711
4458
  peg$savedPos = s0;
3712
- s1 = peg$f60(s1);
4459
+ s1 = peg$f71(s1);
3713
4460
  s0 = s1;
3714
4461
  peg$silentFails--;
3715
4462
  s1 = peg$FAILED;
3716
- if (peg$silentFails === 0) { peg$fail(peg$e85); }
4463
+ if (peg$silentFails === 0) { peg$fail(peg$e96); }
3717
4464
 
3718
4465
  return s0;
3719
4466
  }
@@ -3724,24 +4471,24 @@ function peg$parse(input, options) {
3724
4471
  peg$silentFails++;
3725
4472
  s0 = peg$currPos;
3726
4473
  if (input.charCodeAt(peg$currPos) === 96) {
3727
- s1 = peg$c49;
4474
+ s1 = peg$c59;
3728
4475
  peg$currPos++;
3729
4476
  } else {
3730
4477
  s1 = peg$FAILED;
3731
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
4478
+ if (peg$silentFails === 0) { peg$fail(peg$e98); }
3732
4479
  }
3733
4480
  if (s1 !== peg$FAILED) {
3734
4481
  s2 = peg$parsetemplateLiteralContents();
3735
4482
  if (input.charCodeAt(peg$currPos) === 96) {
3736
- s3 = peg$c49;
4483
+ s3 = peg$c59;
3737
4484
  peg$currPos++;
3738
4485
  } else {
3739
4486
  s3 = peg$FAILED;
3740
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
4487
+ if (peg$silentFails === 0) { peg$fail(peg$e98); }
3741
4488
  }
3742
4489
  if (s3 !== peg$FAILED) {
3743
4490
  peg$savedPos = s0;
3744
- s0 = peg$f61(s2);
4491
+ s0 = peg$f72(s2);
3745
4492
  } else {
3746
4493
  peg$currPos = s0;
3747
4494
  s0 = peg$FAILED;
@@ -3753,7 +4500,7 @@ function peg$parse(input, options) {
3753
4500
  peg$silentFails--;
3754
4501
  if (s0 === peg$FAILED) {
3755
4502
  s1 = peg$FAILED;
3756
- if (peg$silentFails === 0) { peg$fail(peg$e86); }
4503
+ if (peg$silentFails === 0) { peg$fail(peg$e97); }
3757
4504
  }
3758
4505
 
3759
4506
  return s0;
@@ -3766,19 +4513,19 @@ function peg$parse(input, options) {
3766
4513
  s1 = peg$currPos;
3767
4514
  peg$silentFails++;
3768
4515
  if (input.charCodeAt(peg$currPos) === 96) {
3769
- s2 = peg$c49;
4516
+ s2 = peg$c59;
3770
4517
  peg$currPos++;
3771
4518
  } else {
3772
4519
  s2 = peg$FAILED;
3773
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
4520
+ if (peg$silentFails === 0) { peg$fail(peg$e98); }
3774
4521
  }
3775
4522
  if (s2 === peg$FAILED) {
3776
- if (input.substr(peg$currPos, 2) === peg$c48) {
3777
- s2 = peg$c48;
4523
+ if (input.substr(peg$currPos, 2) === peg$c58) {
4524
+ s2 = peg$c58;
3778
4525
  peg$currPos += 2;
3779
4526
  } else {
3780
4527
  s2 = peg$FAILED;
3781
- if (peg$silentFails === 0) { peg$fail(peg$e84); }
4528
+ if (peg$silentFails === 0) { peg$fail(peg$e95); }
3782
4529
  }
3783
4530
  }
3784
4531
  peg$silentFails--;
@@ -3850,7 +4597,7 @@ function peg$parse(input, options) {
3850
4597
  s2 = peg$parsetemplateLiteralChar();
3851
4598
  }
3852
4599
  peg$savedPos = s0;
3853
- s1 = peg$f62(s1);
4600
+ s1 = peg$f73(s1);
3854
4601
  s0 = s1;
3855
4602
 
3856
4603
  return s0;
@@ -3861,26 +4608,26 @@ function peg$parse(input, options) {
3861
4608
 
3862
4609
  peg$silentFails++;
3863
4610
  s0 = peg$currPos;
3864
- if (input.substr(peg$currPos, 2) === peg$c48) {
3865
- s1 = peg$c48;
4611
+ if (input.substr(peg$currPos, 2) === peg$c58) {
4612
+ s1 = peg$c58;
3866
4613
  peg$currPos += 2;
3867
4614
  } else {
3868
4615
  s1 = peg$FAILED;
3869
- if (peg$silentFails === 0) { peg$fail(peg$e84); }
4616
+ if (peg$silentFails === 0) { peg$fail(peg$e95); }
3870
4617
  }
3871
4618
  if (s1 !== peg$FAILED) {
3872
4619
  s2 = peg$parseexpression();
3873
4620
  if (s2 !== peg$FAILED) {
3874
4621
  if (input.charCodeAt(peg$currPos) === 125) {
3875
- s3 = peg$c3;
4622
+ s3 = peg$c7;
3876
4623
  peg$currPos++;
3877
4624
  } else {
3878
4625
  s3 = peg$FAILED;
3879
- if (peg$silentFails === 0) { peg$fail(peg$e6); }
4626
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
3880
4627
  }
3881
4628
  if (s3 !== peg$FAILED) {
3882
4629
  peg$savedPos = s0;
3883
- s0 = peg$f63(s2);
4630
+ s0 = peg$f74(s2);
3884
4631
  } else {
3885
4632
  peg$currPos = s0;
3886
4633
  s0 = peg$FAILED;
@@ -3896,7 +4643,7 @@ function peg$parse(input, options) {
3896
4643
  peg$silentFails--;
3897
4644
  if (s0 === peg$FAILED) {
3898
4645
  s1 = peg$FAILED;
3899
- if (peg$silentFails === 0) { peg$fail(peg$e88); }
4646
+ if (peg$silentFails === 0) { peg$fail(peg$e99); }
3900
4647
  }
3901
4648
 
3902
4649
  return s0;
@@ -3912,7 +4659,7 @@ function peg$parse(input, options) {
3912
4659
  peg$currPos++;
3913
4660
  } else {
3914
4661
  s0 = peg$FAILED;
3915
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
4662
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
3916
4663
  }
3917
4664
  }
3918
4665
 
@@ -3929,7 +4676,7 @@ function peg$parse(input, options) {
3929
4676
  s3 = peg$parseunaryExpression();
3930
4677
  if (s3 !== peg$FAILED) {
3931
4678
  peg$savedPos = s0;
3932
- s0 = peg$f64(s1, s3);
4679
+ s0 = peg$f75(s1, s3);
3933
4680
  } else {
3934
4681
  peg$currPos = s0;
3935
4682
  s0 = peg$FAILED;
@@ -3948,12 +4695,12 @@ function peg$parse(input, options) {
3948
4695
  function peg$parseunaryOperator() {
3949
4696
  var s0;
3950
4697
 
3951
- if (input.charCodeAt(peg$currPos) === 33) {
3952
- s0 = peg$c50;
4698
+ s0 = input.charAt(peg$currPos);
4699
+ if (peg$r8.test(s0)) {
3953
4700
  peg$currPos++;
3954
4701
  } else {
3955
4702
  s0 = peg$FAILED;
3956
- if (peg$silentFails === 0) { peg$fail(peg$e89); }
4703
+ if (peg$silentFails === 0) { peg$fail(peg$e100); }
3957
4704
  }
3958
4705
 
3959
4706
  return s0;
@@ -4016,15 +4763,24 @@ function peg$parse(input, options) {
4016
4763
 
4017
4764
  const peg$allowedStartRules = [
4018
4765
  "__",
4766
+ "additiveExpression",
4767
+ "additiveOperator",
4019
4768
  "arguments",
4020
4769
  "arrayLiteral",
4021
4770
  "arrayEntries",
4022
4771
  "arrayEntry",
4023
4772
  "arrowFunction",
4773
+ "bitwiseAndExpression",
4774
+ "bitwiseAndOperator",
4775
+ "bitwiseOrExpression",
4776
+ "bitwiseOrOperator",
4777
+ "bitwiseXorExpression",
4778
+ "bitwiseXorOperator",
4024
4779
  "callExpression",
4025
4780
  "closingBrace",
4026
4781
  "closingBracket",
4027
4782
  "closingParenthesis",
4783
+ "commaExpression",
4028
4784
  "comment",
4029
4785
  "conditionalExpression",
4030
4786
  "digits",
@@ -4035,6 +4791,7 @@ const peg$allowedStartRules = [
4035
4791
  "equalityExpression",
4036
4792
  "equalityOperator",
4037
4793
  "escapedChar",
4794
+ "exponentiationExpression",
4038
4795
  "expression",
4039
4796
  "floatLiteral",
4040
4797
  "group",
@@ -4054,6 +4811,8 @@ const peg$allowedStartRules = [
4054
4811
  "logicalAndExpression",
4055
4812
  "logicalOrExpression",
4056
4813
  "multiLineComment",
4814
+ "multiplicativeExpression",
4815
+ "multiplicativeOperator",
4057
4816
  "namespace",
4058
4817
  "newLine",
4059
4818
  "numericLiteral",
@@ -4079,18 +4838,21 @@ const peg$allowedStartRules = [
4079
4838
  "protocolExpression",
4080
4839
  "qualifiedReference",
4081
4840
  "reference",
4841
+ "relationalExpression",
4842
+ "relationalOperator",
4082
4843
  "rootDirectory",
4083
4844
  "scopeReference",
4084
4845
  "separator",
4085
4846
  "slashFollows",
4086
4847
  "shebang",
4848
+ "shiftExpression",
4849
+ "shiftOperator",
4087
4850
  "shorthandFunction",
4088
- "sign",
4089
4851
  "singleArrow",
4090
4852
  "singleLineComment",
4091
4853
  "singleQuoteString",
4092
4854
  "singleQuoteStringChar",
4093
- "spread",
4855
+ "spreadElement",
4094
4856
  "stringLiteral",
4095
4857
  "templateDocument",
4096
4858
  "templateDocumentChar",