@weborigami/language 0.3.0 → 0.3.1

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.
@@ -25,6 +25,7 @@ import {
25
25
  makeBinaryOperation,
26
26
  makeCall,
27
27
  makeDeferredArguments,
28
+ makeJsPropertyAccess,
28
29
  makeObject,
29
30
  makePipeline,
30
31
  makeProperty,
@@ -205,7 +206,7 @@ function peg$parse(input, options) {
205
206
  var peg$FAILED = {};
206
207
  var peg$source = options.grammarSource;
207
208
 
208
- 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, 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, expectBacktick: peg$parseexpectBacktick, expectClosingBrace: peg$parseexpectClosingBrace, expectClosingBracket: peg$parseexpectClosingBracket, expectClosingParenthesis: peg$parseexpectClosingParenthesis, expectDoubleQuote: peg$parseexpectDoubleQuote, expectExpression: peg$parseexpectExpression, expectFrontDelimiter: peg$parseexpectFrontDelimiter, expectGuillemet: peg$parseexpectGuillemet, expectSingleQuote: peg$parseexpectSingleQuote, expectPipelineExpression: peg$parseexpectPipelineExpression, exponentiationExpression: peg$parseexponentiationExpression, expression: peg$parseexpression, floatLiteral: peg$parsefloatLiteral, frontDelimiter: peg$parsefrontDelimiter, frontMatterExpression: peg$parsefrontMatterExpression, frontMatterText: peg$parsefrontMatterText, frontMatterYaml: peg$parsefrontMatterYaml, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, homeDirectory: peg$parsehomeDirectory, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, 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, parameter: peg$parseparameter, parameterList: peg$parseparameterList, parameterSingleton: peg$parseparameterSingleton, 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, inherited: peg$parseinherited, relationalExpression: peg$parserelationalExpression, relationalOperator: peg$parserelationalOperator, rootDirectory: peg$parserootDirectory, scopeReference: peg$parsescopeReference, separator: peg$parseseparator, shebang: peg$parseshebang, shiftExpression: peg$parseshiftExpression, shiftOperator: peg$parseshiftOperator, shorthandFunction: peg$parseshorthandFunction, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, slash: peg$parseslash, slashFollows: peg$parseslashFollows, spreadElement: peg$parsespreadElement, stringLiteral: peg$parsestringLiteral, templateBody: peg$parsetemplateBody, templateBodyChar: peg$parsetemplateBodyChar, templateBodyText: peg$parsetemplateBodyText, templateDocument: peg$parsetemplateDocument, templateLiteral: peg$parsetemplateLiteral, templateLiteralChar: peg$parsetemplateLiteralChar, templateLiteralText: peg$parsetemplateLiteralText, templateSubstitution: peg$parsetemplateSubstitution, textChar: peg$parsetextChar, unaryExpression: peg$parseunaryExpression, unaryOperator: peg$parseunaryOperator, whitespace: peg$parsewhitespace, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
209
+ 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, commaExpression: peg$parsecommaExpression, comment: peg$parsecomment, computedPropertyAccess: peg$parsecomputedPropertyAccess, 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, expectBacktick: peg$parseexpectBacktick, expectClosingBrace: peg$parseexpectClosingBrace, expectClosingBracket: peg$parseexpectClosingBracket, expectClosingParenthesis: peg$parseexpectClosingParenthesis, expectDoubleQuote: peg$parseexpectDoubleQuote, expectExpression: peg$parseexpectExpression, expectFrontDelimiter: peg$parseexpectFrontDelimiter, expectGuillemet: peg$parseexpectGuillemet, expectSingleQuote: peg$parseexpectSingleQuote, expectPipelineExpression: peg$parseexpectPipelineExpression, exponentiationExpression: peg$parseexponentiationExpression, expression: peg$parseexpression, floatLiteral: peg$parsefloatLiteral, frontDelimiter: peg$parsefrontDelimiter, frontMatterExpression: peg$parsefrontMatterExpression, frontMatterText: peg$parsefrontMatterText, frontMatterYaml: peg$parsefrontMatterYaml, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, homeDirectory: peg$parsehomeDirectory, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, implicitParenthesesCallExpression: peg$parseimplicitParenthesesCallExpression, implicitParensthesesArguments: peg$parseimplicitParensthesesArguments, inherited: peg$parseinherited, inlineSpace: peg$parseinlineSpace, integerLiteral: peg$parseintegerLiteral, jsIdentifier: peg$parsejsIdentifier, jsIdentifierPart: peg$parsejsIdentifierPart, jsIdentifierStart: peg$parsejsIdentifierStart, jsPropertyAccess: peg$parsejsPropertyAccess, 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, parameter: peg$parseparameter, parameterList: peg$parseparameterList, parameterSingleton: peg$parseparameterSingleton, 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, relationalExpression: peg$parserelationalExpression, relationalOperator: peg$parserelationalOperator, rootDirectory: peg$parserootDirectory, scopeReference: peg$parsescopeReference, separator: peg$parseseparator, shebang: peg$parseshebang, shiftExpression: peg$parseshiftExpression, shiftOperator: peg$parseshiftOperator, shorthandFunction: peg$parseshorthandFunction, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, slash: peg$parseslash, slashFollows: peg$parseslashFollows, spreadElement: peg$parsespreadElement, stringLiteral: peg$parsestringLiteral, templateBody: peg$parsetemplateBody, templateBodyChar: peg$parsetemplateBodyChar, templateBodyText: peg$parsetemplateBodyText, templateDocument: peg$parsetemplateDocument, templateLiteral: peg$parsetemplateLiteral, templateLiteralChar: peg$parsetemplateLiteralChar, templateLiteralText: peg$parsetemplateLiteralText, templateSubstitution: peg$parsetemplateSubstitution, textChar: peg$parsetextChar, unaryExpression: peg$parseunaryExpression, unaryOperator: peg$parseunaryOperator, whitespace: peg$parsewhitespace, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
209
210
  var peg$startRuleFunction = peg$parse__;
210
211
 
211
212
  var peg$c0 = "[";
@@ -336,52 +337,54 @@ function peg$parse(input, options) {
336
337
  var peg$e54 = peg$otherExpectation("function call with implicit parentheses");
337
338
  var peg$e55 = peg$classExpectation([" ", "\t"], false, false);
338
339
  var peg$e56 = peg$otherExpectation("integer");
339
- var peg$e57 = peg$otherExpectation("list");
340
- var peg$e58 = peg$literalExpectation("&&", false);
341
- var peg$e59 = peg$literalExpectation("||", false);
342
- var peg$e60 = peg$literalExpectation("/*", false);
343
- var peg$e61 = peg$literalExpectation("*/", false);
344
- var peg$e62 = peg$classExpectation(["%", "*", "/"], false, false);
345
- var peg$e63 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false);
346
- var peg$e64 = peg$literalExpectation("\n", false);
347
- var peg$e65 = peg$literalExpectation("\r\n", false);
348
- var peg$e66 = peg$literalExpectation("\r", false);
349
- var peg$e67 = peg$otherExpectation("number");
350
- var peg$e68 = peg$literalExpectation("??", false);
351
- var peg$e69 = peg$otherExpectation("object literal");
352
- var peg$e70 = peg$literalExpectation("{", false);
353
- var peg$e71 = peg$otherExpectation("object getter");
354
- var peg$e72 = peg$literalExpectation("=", false);
355
- var peg$e73 = peg$otherExpectation("object key");
356
- var peg$e74 = peg$otherExpectation("object property");
357
- var peg$e75 = peg$otherExpectation("object identifier");
358
- var peg$e76 = peg$literalExpectation("/", false);
359
- var peg$e77 = peg$otherExpectation("function arguments in parentheses");
360
- var peg$e78 = peg$otherExpectation("slash-separated path");
361
- var peg$e79 = peg$classExpectation(["(", ")", "{", "}", "[", "]", ",", ":", "/", "\\", " ", "\t", "\n", "\r"], true, false);
362
- var peg$e80 = peg$otherExpectation("Origami program");
363
- var peg$e81 = peg$literalExpectation("//", false);
364
- var peg$e82 = peg$literalExpectation("<=", false);
365
- var peg$e83 = peg$literalExpectation("<", false);
366
- var peg$e84 = peg$literalExpectation(">=", false);
367
- var peg$e85 = peg$otherExpectation("scope reference");
368
- var peg$e86 = peg$literalExpectation("#!", false);
369
- var peg$e87 = peg$classExpectation(["\n", "\r"], true, false);
370
- var peg$e88 = peg$literalExpectation("<<", false);
371
- var peg$e89 = peg$literalExpectation(">>>", false);
372
- var peg$e90 = peg$literalExpectation(">>", false);
373
- var peg$e91 = peg$otherExpectation("lambda function");
374
- var peg$e92 = peg$literalExpectation("\u2192", false);
375
- var peg$e93 = peg$literalExpectation("->", false);
376
- var peg$e94 = peg$otherExpectation("single quote string");
377
- var peg$e95 = peg$otherExpectation("string");
378
- var peg$e96 = peg$otherExpectation("template");
379
- var peg$e97 = peg$literalExpectation("${", false);
380
- var peg$e98 = peg$otherExpectation("template text");
381
- var peg$e99 = peg$otherExpectation("template document");
382
- var peg$e100 = peg$otherExpectation("template literal");
383
- var peg$e101 = peg$otherExpectation("template substitution");
384
- var peg$e102 = peg$classExpectation(["!", "+", "-", "~"], false, false);
340
+ var peg$e57 = peg$otherExpectation("JavaScript identifier continuation");
341
+ var peg$e58 = peg$otherExpectation("JavaScript identifier start");
342
+ var peg$e59 = peg$otherExpectation("list");
343
+ var peg$e60 = peg$literalExpectation("&&", false);
344
+ var peg$e61 = peg$literalExpectation("||", false);
345
+ var peg$e62 = peg$literalExpectation("/*", false);
346
+ var peg$e63 = peg$literalExpectation("*/", false);
347
+ var peg$e64 = peg$classExpectation(["%", "*", "/"], false, false);
348
+ var peg$e65 = peg$classExpectation([["A", "Z"], ["a", "z"]], false, false);
349
+ var peg$e66 = peg$literalExpectation("\n", false);
350
+ var peg$e67 = peg$literalExpectation("\r\n", false);
351
+ var peg$e68 = peg$literalExpectation("\r", false);
352
+ var peg$e69 = peg$otherExpectation("number");
353
+ var peg$e70 = peg$literalExpectation("??", false);
354
+ var peg$e71 = peg$otherExpectation("object literal");
355
+ var peg$e72 = peg$literalExpectation("{", false);
356
+ var peg$e73 = peg$otherExpectation("object getter");
357
+ var peg$e74 = peg$literalExpectation("=", false);
358
+ var peg$e75 = peg$otherExpectation("object key");
359
+ var peg$e76 = peg$otherExpectation("object property");
360
+ var peg$e77 = peg$otherExpectation("object identifier");
361
+ var peg$e78 = peg$literalExpectation("/", false);
362
+ var peg$e79 = peg$otherExpectation("function arguments in parentheses");
363
+ var peg$e80 = peg$otherExpectation("slash-separated path");
364
+ var peg$e81 = peg$classExpectation(["(", ")", "{", "}", "[", "]", ",", ":", "/", "\\", " ", "\t", "\n", "\r"], true, false);
365
+ var peg$e82 = peg$otherExpectation("Origami program");
366
+ var peg$e83 = peg$literalExpectation("//", false);
367
+ var peg$e84 = peg$literalExpectation("<=", false);
368
+ var peg$e85 = peg$literalExpectation("<", false);
369
+ var peg$e86 = peg$literalExpectation(">=", false);
370
+ var peg$e87 = peg$otherExpectation("scope reference");
371
+ var peg$e88 = peg$literalExpectation("#!", false);
372
+ var peg$e89 = peg$classExpectation(["\n", "\r"], true, false);
373
+ var peg$e90 = peg$literalExpectation("<<", false);
374
+ var peg$e91 = peg$literalExpectation(">>>", false);
375
+ var peg$e92 = peg$literalExpectation(">>", false);
376
+ var peg$e93 = peg$otherExpectation("lambda function");
377
+ var peg$e94 = peg$literalExpectation("\u2192", false);
378
+ var peg$e95 = peg$literalExpectation("->", false);
379
+ var peg$e96 = peg$otherExpectation("single quote string");
380
+ var peg$e97 = peg$otherExpectation("string");
381
+ var peg$e98 = peg$otherExpectation("template");
382
+ var peg$e99 = peg$literalExpectation("${", false);
383
+ var peg$e100 = peg$otherExpectation("template text");
384
+ var peg$e101 = peg$otherExpectation("template document");
385
+ var peg$e102 = peg$otherExpectation("template literal");
386
+ var peg$e103 = peg$otherExpectation("template substitution");
387
+ var peg$e104 = peg$classExpectation(["!", "+", "-", "~"], false, false);
385
388
 
386
389
  var peg$f0 = function() {
387
390
  return null;
@@ -422,7 +425,10 @@ function peg$parse(input, options) {
422
425
  ? list[0]
423
426
  : annotate([ops.comma, ...list], location());
424
427
  };
425
- var peg$f12 = function(condition, tail) {
428
+ var peg$f12 = function(expression) {
429
+ return annotate([ops.traverse, expression], location());
430
+ };
431
+ var peg$f13 = function(condition, tail) {
426
432
  if (!tail) {
427
433
  return condition;
428
434
  }
@@ -434,93 +440,99 @@ function peg$parse(input, options) {
434
440
  downgradeReference(deferred[1])
435
441
  ], location());
436
442
  };
437
- var peg$f13 = function(chars) {
443
+ var peg$f14 = function(chars) {
438
444
  return annotate([ops.literal, chars.join("")], location());
439
445
  };
440
- var peg$f14 = function(head, tail) {
446
+ var peg$f15 = function(head, tail) {
441
447
  return tail.reduce(makeBinaryOperation, head);
442
448
  };
443
- var peg$f15 = function() { return "\0"; };
444
- var peg$f16 = function() { return "\b"; };
445
- var peg$f17 = function() { return "\f"; };
446
- var peg$f18 = function() { return "\n"; };
447
- var peg$f19 = function() { return "\r"; };
448
- var peg$f20 = function() { return "\t"; };
449
- var peg$f21 = function() { return "\v"; };
450
- var peg$f22 = function() {
449
+ var peg$f16 = function() { return "\0"; };
450
+ var peg$f17 = function() { return "\b"; };
451
+ var peg$f18 = function() { return "\f"; };
452
+ var peg$f19 = function() { return "\n"; };
453
+ var peg$f20 = function() { return "\r"; };
454
+ var peg$f21 = function() { return "\t"; };
455
+ var peg$f22 = function() { return "\v"; };
456
+ var peg$f23 = function() {
451
457
  error("Expected closing backtick");
452
458
  };
453
- var peg$f23 = function() {
459
+ var peg$f24 = function() {
454
460
  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").`);
455
461
  };
456
- var peg$f24 = function() {
462
+ var peg$f25 = function() {
457
463
  error("Expected right bracket");
458
464
  };
459
- var peg$f25 = function() {
465
+ var peg$f26 = function() {
460
466
  error("Expected right parenthesis");
461
467
  };
462
- var peg$f26 = function() {
468
+ var peg$f27 = function() {
463
469
  error("Expected closing quote");
464
470
  };
465
- var peg$f27 = function() {
471
+ var peg$f28 = function() {
466
472
  error("Expected an Origami expression");
467
473
  };
468
- var peg$f28 = function() {
474
+ var peg$f29 = function() {
469
475
  error("Expected \"---\"");
470
476
  };
471
- var peg$f29 = function() {
477
+ var peg$f30 = function() {
472
478
  error("Expected closing guillemet");
473
479
  };
474
- var peg$f30 = function() {
480
+ var peg$f31 = function() {
475
481
  error("Expected closing quote");
476
482
  };
477
- var peg$f31 = function() {
483
+ var peg$f32 = function() {
478
484
  error("Expected an expression");
479
485
  };
480
- var peg$f32 = function(left, right) {
486
+ var peg$f33 = function(left, right) {
481
487
  return right ? annotate([ops.exponentiation, left, right], location()) : left;
482
488
  };
483
- var peg$f33 = function() {
489
+ var peg$f34 = function() {
484
490
  return annotate([ops.literal, parseFloat(text())], location());
485
491
  };
486
- var peg$f34 = function() {
492
+ var peg$f35 = function() {
487
493
  return isOrigamiFrontMatter(input.slice(location().end.offset))
488
494
  };
489
- var peg$f35 = function(chars) {
495
+ var peg$f36 = function(chars) {
490
496
  return chars.join("");
491
497
  };
492
- var peg$f36 = function(yaml) {
498
+ var peg$f37 = function(yaml) {
493
499
  return makeYamlObject(yaml, location());
494
500
  };
495
- var peg$f37 = function(expression) {
496
- return annotate(downgradeReference(expression), location());
497
- };
498
- var peg$f38 = function(chars) {
501
+ var peg$f38 = function(expression) {
502
+ return annotate(downgradeReference(expression), location());
503
+ };
504
+ var peg$f39 = function(chars) {
499
505
  return annotate([ops.literal, chars.join("")], location());
500
506
  };
501
- var peg$f39 = function() {
507
+ var peg$f40 = function() {
502
508
  return annotate([ops.homeDirectory], location());
503
509
  };
504
- var peg$f40 = function(identifier, port, slashFollows) {
510
+ var peg$f41 = function(identifier, port, slashFollows) {
505
511
  const portText = port ? `:${port[1]}` : "";
506
512
  const slashText = slashFollows ? "/" : "";
507
513
  const hostText = identifier + portText + slashText;
508
514
  return annotate([ops.literal, hostText], location());
509
515
  };
510
- var peg$f41 = function(chars) { return chars.join(""); };
511
- var peg$f42 = function(head, args) {
516
+ var peg$f42 = function(chars) { return chars.join(""); };
517
+ var peg$f43 = function(head, args) {
512
518
  return args ? makeCall(head, args) : head;
513
519
  };
514
- var peg$f43 = function(values) {
520
+ var peg$f44 = function(values) {
515
521
  return annotate(values, location());
516
522
  };
517
- var peg$f44 = function() {
523
+ var peg$f45 = function() {
518
524
  return annotate([ops.literal, parseInt(text())], location());
519
525
  };
520
- var peg$f45 = function(values) {
526
+ var peg$f46 = function(char) { return char.match(/[$_\p{ID_Continue}]/u) };
527
+ var peg$f47 = function(char) { return char.match(/[$_\p{ID_Start}]/u) };
528
+ var peg$f48 = function(property) {
529
+ const literal = annotate([ops.literal, property], location());
530
+ return annotate([ops.traverse, literal], location());
531
+ };
532
+ var peg$f49 = function(values) {
521
533
  return annotate(values, location());
522
534
  };
523
- var peg$f46 = function(head, tail) {
535
+ var peg$f50 = function(head, tail) {
524
536
  return tail.length === 0
525
537
  ? head
526
538
  : annotate(
@@ -528,7 +540,7 @@ function peg$parse(input, options) {
528
540
  location()
529
541
  );
530
542
  };
531
- var peg$f47 = function(head, tail) {
543
+ var peg$f51 = function(head, tail) {
532
544
  return tail.length === 0
533
545
  ? head
534
546
  : annotate(
@@ -536,14 +548,14 @@ function peg$parse(input, options) {
536
548
  location()
537
549
  );
538
550
  };
539
- var peg$f48 = function() { return null; };
540
- var peg$f49 = function(head, tail) {
551
+ var peg$f52 = function() { return null; };
552
+ var peg$f53 = function(head, tail) {
541
553
  return tail.reduce(makeBinaryOperation, head);
542
554
  };
543
- var peg$f50 = function(chars) {
555
+ var peg$f54 = function(chars) {
544
556
  return annotate([ops.builtin, chars.join("") + ":"], location());
545
557
  };
546
- var peg$f51 = function(head, tail) {
558
+ var peg$f55 = function(head, tail) {
547
559
  return tail.length === 0
548
560
  ? head
549
561
  : annotate(
@@ -551,113 +563,113 @@ function peg$parse(input, options) {
551
563
  location()
552
564
  );
553
565
  };
554
- var peg$f52 = function(entries) {
566
+ var peg$f56 = function(entries) {
555
567
  return makeObject(entries ?? [], location());
556
568
  };
557
- var peg$f53 = function(entries) {
569
+ var peg$f57 = function(entries) {
558
570
  return annotate(entries, location());
559
571
  };
560
- var peg$f54 = function(key, pipeline) {
572
+ var peg$f58 = function(key, pipeline) {
561
573
  return annotate(
562
574
  makeProperty(key, annotate([ops.getter, pipeline], location())),
563
575
  location()
564
576
  );
565
577
  };
566
- var peg$f55 = function(hiddenKey) { return hiddenKey.join(""); };
567
- var peg$f56 = function(key, pipeline) {
578
+ var peg$f59 = function(hiddenKey) { return hiddenKey.join(""); };
579
+ var peg$f60 = function(key, pipeline) {
568
580
  return annotate(makeProperty(key, pipeline), location());
569
581
  };
570
- var peg$f57 = function(key) {
582
+ var peg$f61 = function(key) {
571
583
  const inherited = annotate([ops.inherited, key], location());
572
584
  return annotate([key, inherited], location());
573
585
  };
574
- var peg$f58 = function(identifier, slash) {
586
+ var peg$f62 = function(identifier, slash) {
575
587
  return identifier + (slash ?? "");
576
588
  };
577
- var peg$f59 = function(string) {
589
+ var peg$f63 = function(string) {
578
590
  // Remove `ops.literal` from the string code
579
591
  return string[1];
580
592
  };
581
- var peg$f60 = function(identifier) {
593
+ var peg$f64 = function(identifier) {
582
594
  return annotate([ops.literal, identifier], location());
583
595
  };
584
- var peg$f61 = function(list) {
596
+ var peg$f65 = function(list) {
585
597
  return annotate(list, location());
586
598
  };
587
- var peg$f62 = function(identifier) {
599
+ var peg$f66 = function(identifier) {
588
600
  return annotate(
589
601
  [annotate([ops.literal, identifier], location())],
590
602
  location()
591
603
  );
592
604
  };
593
- var peg$f63 = function(list) {
605
+ var peg$f67 = function(list) {
594
606
  return annotate(list ?? [undefined], location());
595
607
  };
596
- var peg$f64 = function(segments) {
608
+ var peg$f68 = function(segments) {
597
609
  // Drop empty segments that represent consecutive or final slashes
598
610
  segments = segments.filter(segment => segment);
599
611
  return annotate(segments, location());
600
612
  };
601
- var peg$f65 = function(path) {
613
+ var peg$f69 = function(path) {
602
614
  return annotate([ops.traverse, ...path], location());
603
615
  };
604
- var peg$f66 = function(chars, slashFollows) {
616
+ var peg$f70 = function(chars, slashFollows) {
605
617
  // Append a trailing slash if one follows (but don't consume it)
606
618
  const key = chars.join("") + (slashFollows ? "/" : "");
607
619
  return annotate([ops.literal, key], location());
608
620
  };
609
- var peg$f67 = function(head, tail) {
621
+ var peg$f71 = function(head, tail) {
610
622
  return annotate(
611
623
  tail.reduce(makePipeline, downgradeReference(head)),
612
624
  location()
613
625
  );
614
626
  };
615
- var peg$f68 = function(fn, host, path) {
627
+ var peg$f72 = function(fn, host, path) {
616
628
  const keys = annotate([host, ...(path ?? [])], location());
617
629
  return makeCall(fn, keys);
618
630
  };
619
- var peg$f69 = function(fn, reference) {
631
+ var peg$f73 = function(fn, reference) {
620
632
  const literal = annotate([ops.literal, reference[1]], reference.location);
621
633
  return makeCall(fn, [literal]);
622
634
  };
623
- var peg$f70 = function(head, tail) {
635
+ var peg$f74 = function(head, tail) {
624
636
  return tail.reduce(makeBinaryOperation, head);
625
637
  };
626
- var peg$f71 = function(key) {
638
+ var peg$f75 = function(key) {
627
639
  return annotate([ops.rootDirectory, key], location());
628
640
  };
629
- var peg$f72 = function() {
641
+ var peg$f76 = function() {
630
642
  return annotate([ops.rootDirectory], location());
631
643
  };
632
- var peg$f73 = function(identifier, slashFollows) {
644
+ var peg$f77 = function(identifier, slashFollows) {
633
645
  const id = identifier + (slashFollows ? "/" : "");
634
646
  return annotate(makeReference(id), location());
635
647
  };
636
- var peg$f74 = function() { return null; };
637
- var peg$f75 = function(head, tail) {
648
+ var peg$f78 = function() { return null; };
649
+ var peg$f79 = function(head, tail) {
638
650
  return tail.reduce(makeBinaryOperation, head);
639
651
  };
640
- var peg$f76 = function(definition) {
652
+ var peg$f80 = function(definition) {
641
653
  const lambdaParameters = annotate(
642
654
  [annotate([ops.literal, "_"], location())],
643
655
  location()
644
656
  );
645
657
  return annotate([ops.lambda, lambdaParameters, definition], location());
646
658
  };
647
- var peg$f77 = function() { return null; };
648
- var peg$f78 = function(chars) {
659
+ var peg$f81 = function() { return null; };
660
+ var peg$f82 = function(chars) {
649
661
  return annotate([ops.literal, chars.join("")], location());
650
662
  };
651
- var peg$f79 = function() {
663
+ var peg$f83 = function() {
652
664
  return annotate([ops.literal, "/"], location());
653
665
  };
654
- var peg$f80 = function() {
666
+ var peg$f84 = function() {
655
667
  return true;
656
668
  };
657
- var peg$f81 = function(value) {
669
+ var peg$f85 = function(value) {
658
670
  return annotate([ops.spread, value], location());
659
671
  };
660
- var peg$f82 = function(head, tail) {
672
+ var peg$f86 = function(head, tail) {
661
673
  const lambdaParameters = annotate(
662
674
  [annotate([ops.literal, "_"], location())],
663
675
  location()
@@ -667,27 +679,27 @@ function peg$parse(input, options) {
667
679
  location()
668
680
  );
669
681
  };
670
- var peg$f83 = function(chars) {
682
+ var peg$f87 = function(chars) {
671
683
  return annotate([ops.literal, chars.join("")], location());
672
684
  };
673
- var peg$f84 = function(front, body) {
685
+ var peg$f88 = function(front, body) {
674
686
  return annotate(applyMacro(front, "@template", body), location());
675
687
  };
676
- var peg$f85 = function(front, body) {
688
+ var peg$f89 = function(front, body) {
677
689
  return front
678
690
  ? annotate([ops.document, front, body], location())
679
691
  : annotate(body, location());
680
692
  };
681
- var peg$f86 = function(head, tail) {
693
+ var peg$f90 = function(head, tail) {
682
694
  return makeTemplate(ops.template, head, tail, location());
683
695
  };
684
- var peg$f87 = function(chars) {
696
+ var peg$f91 = function(chars) {
685
697
  return annotate([ops.literal, chars.join("")], location());
686
698
  };
687
- var peg$f88 = function(expression) {
699
+ var peg$f92 = function(expression) {
688
700
  return annotate(expression, location());
689
701
  };
690
- var peg$f89 = function(operator, expression) {
702
+ var peg$f93 = function(operator, expression) {
691
703
  return makeUnaryOperation(operator, expression, location());
692
704
  };
693
705
  var peg$currPos = options.peg$currPos | 0;
@@ -963,7 +975,13 @@ function peg$parse(input, options) {
963
975
  if (s0 === peg$FAILED) {
964
976
  s0 = peg$parsepathArguments();
965
977
  if (s0 === peg$FAILED) {
966
- s0 = peg$parsetemplateLiteral();
978
+ s0 = peg$parsejsPropertyAccess();
979
+ if (s0 === peg$FAILED) {
980
+ s0 = peg$parsecomputedPropertyAccess();
981
+ if (s0 === peg$FAILED) {
982
+ s0 = peg$parsetemplateLiteral();
983
+ }
984
+ }
967
985
  }
968
986
  }
969
987
  peg$silentFails--;
@@ -1532,6 +1550,41 @@ function peg$parse(input, options) {
1532
1550
  return s0;
1533
1551
  }
1534
1552
 
1553
+ function peg$parsecomputedPropertyAccess() {
1554
+ var s0, s1, s2, s3, s4;
1555
+
1556
+ s0 = peg$currPos;
1557
+ s1 = peg$parse__();
1558
+ if (input.charCodeAt(peg$currPos) === 91) {
1559
+ s2 = peg$c0;
1560
+ peg$currPos++;
1561
+ } else {
1562
+ s2 = peg$FAILED;
1563
+ if (peg$silentFails === 0) { peg$fail(peg$e3); }
1564
+ }
1565
+ if (s2 !== peg$FAILED) {
1566
+ s3 = peg$parseexpression();
1567
+ if (s3 !== peg$FAILED) {
1568
+ s4 = peg$parseexpectClosingBracket();
1569
+ if (s4 !== peg$FAILED) {
1570
+ peg$savedPos = s0;
1571
+ s0 = peg$f12(s3);
1572
+ } else {
1573
+ peg$currPos = s0;
1574
+ s0 = peg$FAILED;
1575
+ }
1576
+ } else {
1577
+ peg$currPos = s0;
1578
+ s0 = peg$FAILED;
1579
+ }
1580
+ } else {
1581
+ peg$currPos = s0;
1582
+ s0 = peg$FAILED;
1583
+ }
1584
+
1585
+ return s0;
1586
+ }
1587
+
1535
1588
  function peg$parseconditionalExpression() {
1536
1589
  var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
1537
1590
 
@@ -1584,7 +1637,7 @@ function peg$parse(input, options) {
1584
1637
  s2 = null;
1585
1638
  }
1586
1639
  peg$savedPos = s0;
1587
- s0 = peg$f12(s1, s2);
1640
+ s0 = peg$f13(s1, s2);
1588
1641
  } else {
1589
1642
  peg$currPos = s0;
1590
1643
  s0 = peg$FAILED;
@@ -1674,7 +1727,7 @@ function peg$parse(input, options) {
1674
1727
  s3 = peg$parseexpectDoubleQuote();
1675
1728
  if (s3 !== peg$FAILED) {
1676
1729
  peg$savedPos = s0;
1677
- s0 = peg$f13(s2);
1730
+ s0 = peg$f14(s2);
1678
1731
  } else {
1679
1732
  peg$currPos = s0;
1680
1733
  s0 = peg$FAILED;
@@ -1797,7 +1850,7 @@ function peg$parse(input, options) {
1797
1850
  }
1798
1851
  }
1799
1852
  peg$savedPos = s0;
1800
- s0 = peg$f14(s1, s2);
1853
+ s0 = peg$f15(s1, s2);
1801
1854
  } else {
1802
1855
  peg$currPos = s0;
1803
1856
  s0 = peg$FAILED;
@@ -1861,7 +1914,7 @@ function peg$parse(input, options) {
1861
1914
  }
1862
1915
  if (s1 !== peg$FAILED) {
1863
1916
  peg$savedPos = s0;
1864
- s1 = peg$f15();
1917
+ s1 = peg$f16();
1865
1918
  }
1866
1919
  s0 = s1;
1867
1920
  if (s0 === peg$FAILED) {
@@ -1875,7 +1928,7 @@ function peg$parse(input, options) {
1875
1928
  }
1876
1929
  if (s1 !== peg$FAILED) {
1877
1930
  peg$savedPos = s0;
1878
- s1 = peg$f16();
1931
+ s1 = peg$f17();
1879
1932
  }
1880
1933
  s0 = s1;
1881
1934
  if (s0 === peg$FAILED) {
@@ -1889,7 +1942,7 @@ function peg$parse(input, options) {
1889
1942
  }
1890
1943
  if (s1 !== peg$FAILED) {
1891
1944
  peg$savedPos = s0;
1892
- s1 = peg$f17();
1945
+ s1 = peg$f18();
1893
1946
  }
1894
1947
  s0 = s1;
1895
1948
  if (s0 === peg$FAILED) {
@@ -1903,7 +1956,7 @@ function peg$parse(input, options) {
1903
1956
  }
1904
1957
  if (s1 !== peg$FAILED) {
1905
1958
  peg$savedPos = s0;
1906
- s1 = peg$f18();
1959
+ s1 = peg$f19();
1907
1960
  }
1908
1961
  s0 = s1;
1909
1962
  if (s0 === peg$FAILED) {
@@ -1917,7 +1970,7 @@ function peg$parse(input, options) {
1917
1970
  }
1918
1971
  if (s1 !== peg$FAILED) {
1919
1972
  peg$savedPos = s0;
1920
- s1 = peg$f19();
1973
+ s1 = peg$f20();
1921
1974
  }
1922
1975
  s0 = s1;
1923
1976
  if (s0 === peg$FAILED) {
@@ -1931,7 +1984,7 @@ function peg$parse(input, options) {
1931
1984
  }
1932
1985
  if (s1 !== peg$FAILED) {
1933
1986
  peg$savedPos = s0;
1934
- s1 = peg$f20();
1987
+ s1 = peg$f21();
1935
1988
  }
1936
1989
  s0 = s1;
1937
1990
  if (s0 === peg$FAILED) {
@@ -1945,7 +1998,7 @@ function peg$parse(input, options) {
1945
1998
  }
1946
1999
  if (s1 !== peg$FAILED) {
1947
2000
  peg$savedPos = s0;
1948
- s1 = peg$f21();
2001
+ s1 = peg$f22();
1949
2002
  }
1950
2003
  s0 = s1;
1951
2004
  if (s0 === peg$FAILED) {
@@ -2014,7 +2067,7 @@ function peg$parse(input, options) {
2014
2067
  s1 = null;
2015
2068
  }
2016
2069
  peg$savedPos = s0;
2017
- s1 = peg$f22();
2070
+ s1 = peg$f23();
2018
2071
  s0 = s1;
2019
2072
  }
2020
2073
 
@@ -2044,7 +2097,7 @@ function peg$parse(input, options) {
2044
2097
  s1 = null;
2045
2098
  }
2046
2099
  peg$savedPos = s0;
2047
- s1 = peg$f23();
2100
+ s1 = peg$f24();
2048
2101
  s0 = s1;
2049
2102
  }
2050
2103
 
@@ -2074,7 +2127,7 @@ function peg$parse(input, options) {
2074
2127
  s1 = null;
2075
2128
  }
2076
2129
  peg$savedPos = s0;
2077
- s1 = peg$f24();
2130
+ s1 = peg$f25();
2078
2131
  s0 = s1;
2079
2132
  }
2080
2133
 
@@ -2104,7 +2157,7 @@ function peg$parse(input, options) {
2104
2157
  s1 = null;
2105
2158
  }
2106
2159
  peg$savedPos = s0;
2107
- s1 = peg$f25();
2160
+ s1 = peg$f26();
2108
2161
  s0 = s1;
2109
2162
  }
2110
2163
 
@@ -2134,7 +2187,7 @@ function peg$parse(input, options) {
2134
2187
  s1 = null;
2135
2188
  }
2136
2189
  peg$savedPos = s0;
2137
- s1 = peg$f26();
2190
+ s1 = peg$f27();
2138
2191
  s0 = s1;
2139
2192
  }
2140
2193
 
@@ -2158,7 +2211,7 @@ function peg$parse(input, options) {
2158
2211
  s1 = null;
2159
2212
  }
2160
2213
  peg$savedPos = s0;
2161
- s1 = peg$f27();
2214
+ s1 = peg$f28();
2162
2215
  s0 = s1;
2163
2216
  }
2164
2217
 
@@ -2182,7 +2235,7 @@ function peg$parse(input, options) {
2182
2235
  s1 = null;
2183
2236
  }
2184
2237
  peg$savedPos = s0;
2185
- s1 = peg$f28();
2238
+ s1 = peg$f29();
2186
2239
  s0 = s1;
2187
2240
  }
2188
2241
 
@@ -2212,7 +2265,7 @@ function peg$parse(input, options) {
2212
2265
  s1 = null;
2213
2266
  }
2214
2267
  peg$savedPos = s0;
2215
- s1 = peg$f29();
2268
+ s1 = peg$f30();
2216
2269
  s0 = s1;
2217
2270
  }
2218
2271
 
@@ -2242,7 +2295,7 @@ function peg$parse(input, options) {
2242
2295
  s1 = null;
2243
2296
  }
2244
2297
  peg$savedPos = s0;
2245
- s1 = peg$f30();
2298
+ s1 = peg$f31();
2246
2299
  s0 = s1;
2247
2300
  }
2248
2301
 
@@ -2266,7 +2319,7 @@ function peg$parse(input, options) {
2266
2319
  s1 = null;
2267
2320
  }
2268
2321
  peg$savedPos = s0;
2269
- s1 = peg$f31();
2322
+ s1 = peg$f32();
2270
2323
  s0 = s1;
2271
2324
  }
2272
2325
 
@@ -2305,7 +2358,7 @@ function peg$parse(input, options) {
2305
2358
  s2 = null;
2306
2359
  }
2307
2360
  peg$savedPos = s0;
2308
- s0 = peg$f32(s1, s2);
2361
+ s0 = peg$f33(s1, s2);
2309
2362
  } else {
2310
2363
  peg$currPos = s0;
2311
2364
  s0 = peg$FAILED;
@@ -2351,7 +2404,7 @@ function peg$parse(input, options) {
2351
2404
  s3 = peg$parsedigits();
2352
2405
  if (s3 !== peg$FAILED) {
2353
2406
  peg$savedPos = s0;
2354
- s0 = peg$f33();
2407
+ s0 = peg$f34();
2355
2408
  } else {
2356
2409
  peg$currPos = s0;
2357
2410
  s0 = peg$FAILED;
@@ -2390,7 +2443,7 @@ function peg$parse(input, options) {
2390
2443
  s1 = peg$parsefrontDelimiter();
2391
2444
  if (s1 !== peg$FAILED) {
2392
2445
  peg$savedPos = peg$currPos;
2393
- s2 = peg$f34();
2446
+ s2 = peg$f35();
2394
2447
  if (s2) {
2395
2448
  s2 = undefined;
2396
2449
  } else {
@@ -2489,7 +2542,7 @@ function peg$parse(input, options) {
2489
2542
  }
2490
2543
  }
2491
2544
  peg$savedPos = s0;
2492
- s1 = peg$f35(s1);
2545
+ s1 = peg$f36(s1);
2493
2546
  s0 = s1;
2494
2547
 
2495
2548
  return s0;
@@ -2506,7 +2559,7 @@ function peg$parse(input, options) {
2506
2559
  s3 = peg$parsefrontDelimiter();
2507
2560
  if (s3 !== peg$FAILED) {
2508
2561
  peg$savedPos = s0;
2509
- s0 = peg$f36(s2);
2562
+ s0 = peg$f37(s2);
2510
2563
  } else {
2511
2564
  peg$currPos = s0;
2512
2565
  s0 = peg$FAILED;
@@ -2542,7 +2595,7 @@ function peg$parse(input, options) {
2542
2595
  s3 = peg$parseexpectClosingParenthesis();
2543
2596
  if (s3 !== peg$FAILED) {
2544
2597
  peg$savedPos = s0;
2545
- s0 = peg$f37(s2);
2598
+ s0 = peg$f38(s2);
2546
2599
  } else {
2547
2600
  peg$currPos = s0;
2548
2601
  s0 = peg$FAILED;
@@ -2586,7 +2639,7 @@ function peg$parse(input, options) {
2586
2639
  s3 = peg$parseexpectGuillemet();
2587
2640
  if (s3 !== peg$FAILED) {
2588
2641
  peg$savedPos = s0;
2589
- s0 = peg$f38(s2);
2642
+ s0 = peg$f39(s2);
2590
2643
  } else {
2591
2644
  peg$currPos = s0;
2592
2645
  s0 = peg$FAILED;
@@ -2656,7 +2709,7 @@ function peg$parse(input, options) {
2656
2709
  }
2657
2710
  if (s1 !== peg$FAILED) {
2658
2711
  peg$savedPos = s0;
2659
- s1 = peg$f39();
2712
+ s1 = peg$f40();
2660
2713
  }
2661
2714
  s0 = s1;
2662
2715
 
@@ -2698,7 +2751,7 @@ function peg$parse(input, options) {
2698
2751
  s3 = null;
2699
2752
  }
2700
2753
  peg$savedPos = s0;
2701
- s0 = peg$f40(s1, s2, s3);
2754
+ s0 = peg$f41(s1, s2, s3);
2702
2755
  } else {
2703
2756
  peg$currPos = s0;
2704
2757
  s0 = peg$FAILED;
@@ -2729,7 +2782,7 @@ function peg$parse(input, options) {
2729
2782
  }
2730
2783
  if (s1 !== peg$FAILED) {
2731
2784
  peg$savedPos = s0;
2732
- s1 = peg$f41(s1);
2785
+ s1 = peg$f42(s1);
2733
2786
  }
2734
2787
  s0 = s1;
2735
2788
  peg$silentFails--;
@@ -2829,7 +2882,7 @@ function peg$parse(input, options) {
2829
2882
  s2 = null;
2830
2883
  }
2831
2884
  peg$savedPos = s0;
2832
- s0 = peg$f42(s1, s2);
2885
+ s0 = peg$f43(s1, s2);
2833
2886
  } else {
2834
2887
  peg$currPos = s0;
2835
2888
  s0 = peg$FAILED;
@@ -2878,7 +2931,7 @@ function peg$parse(input, options) {
2878
2931
  s2 = null;
2879
2932
  }
2880
2933
  peg$savedPos = s0;
2881
- s0 = peg$f43(s1);
2934
+ s0 = peg$f44(s1);
2882
2935
  } else {
2883
2936
  peg$currPos = s0;
2884
2937
  s0 = peg$FAILED;
@@ -2887,6 +2940,26 @@ function peg$parse(input, options) {
2887
2940
  return s0;
2888
2941
  }
2889
2942
 
2943
+ function peg$parseinherited() {
2944
+ var s0;
2945
+
2946
+ s0 = peg$parserootDirectory();
2947
+ if (s0 === peg$FAILED) {
2948
+ s0 = peg$parsehomeDirectory();
2949
+ if (s0 === peg$FAILED) {
2950
+ s0 = peg$parsequalifiedReference();
2951
+ if (s0 === peg$FAILED) {
2952
+ s0 = peg$parsenamespace();
2953
+ if (s0 === peg$FAILED) {
2954
+ s0 = peg$parsescopeReference();
2955
+ }
2956
+ }
2957
+ }
2958
+ }
2959
+
2960
+ return s0;
2961
+ }
2962
+
2890
2963
  function peg$parseinlineSpace() {
2891
2964
  var s0;
2892
2965
 
@@ -2909,7 +2982,7 @@ function peg$parse(input, options) {
2909
2982
  s1 = peg$parsedigits();
2910
2983
  if (s1 !== peg$FAILED) {
2911
2984
  peg$savedPos = s0;
2912
- s1 = peg$f44();
2985
+ s1 = peg$f45();
2913
2986
  }
2914
2987
  s0 = s1;
2915
2988
  peg$silentFails--;
@@ -2921,6 +2994,144 @@ function peg$parse(input, options) {
2921
2994
  return s0;
2922
2995
  }
2923
2996
 
2997
+ function peg$parsejsIdentifier() {
2998
+ var s0, s1, s2, s3, s4;
2999
+
3000
+ s0 = peg$currPos;
3001
+ s1 = peg$currPos;
3002
+ s2 = peg$parsejsIdentifierStart();
3003
+ if (s2 !== peg$FAILED) {
3004
+ s3 = [];
3005
+ s4 = peg$parsejsIdentifierPart();
3006
+ while (s4 !== peg$FAILED) {
3007
+ s3.push(s4);
3008
+ s4 = peg$parsejsIdentifierPart();
3009
+ }
3010
+ s2 = [s2, s3];
3011
+ s1 = s2;
3012
+ } else {
3013
+ peg$currPos = s1;
3014
+ s1 = peg$FAILED;
3015
+ }
3016
+ if (s1 !== peg$FAILED) {
3017
+ s0 = input.substring(s0, peg$currPos);
3018
+ } else {
3019
+ s0 = s1;
3020
+ }
3021
+
3022
+ return s0;
3023
+ }
3024
+
3025
+ function peg$parsejsIdentifierPart() {
3026
+ var s0, s1, s2;
3027
+
3028
+ peg$silentFails++;
3029
+ s0 = peg$currPos;
3030
+ if (input.length > peg$currPos) {
3031
+ s1 = input.charAt(peg$currPos);
3032
+ peg$currPos++;
3033
+ } else {
3034
+ s1 = peg$FAILED;
3035
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
3036
+ }
3037
+ if (s1 !== peg$FAILED) {
3038
+ peg$savedPos = peg$currPos;
3039
+ s2 = peg$f46(s1);
3040
+ if (s2) {
3041
+ s2 = undefined;
3042
+ } else {
3043
+ s2 = peg$FAILED;
3044
+ }
3045
+ if (s2 !== peg$FAILED) {
3046
+ s1 = [s1, s2];
3047
+ s0 = s1;
3048
+ } else {
3049
+ peg$currPos = s0;
3050
+ s0 = peg$FAILED;
3051
+ }
3052
+ } else {
3053
+ peg$currPos = s0;
3054
+ s0 = peg$FAILED;
3055
+ }
3056
+ peg$silentFails--;
3057
+ if (s0 === peg$FAILED) {
3058
+ s1 = peg$FAILED;
3059
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
3060
+ }
3061
+
3062
+ return s0;
3063
+ }
3064
+
3065
+ function peg$parsejsIdentifierStart() {
3066
+ var s0, s1, s2;
3067
+
3068
+ peg$silentFails++;
3069
+ s0 = peg$currPos;
3070
+ if (input.length > peg$currPos) {
3071
+ s1 = input.charAt(peg$currPos);
3072
+ peg$currPos++;
3073
+ } else {
3074
+ s1 = peg$FAILED;
3075
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
3076
+ }
3077
+ if (s1 !== peg$FAILED) {
3078
+ peg$savedPos = peg$currPos;
3079
+ s2 = peg$f47(s1);
3080
+ if (s2) {
3081
+ s2 = undefined;
3082
+ } else {
3083
+ s2 = peg$FAILED;
3084
+ }
3085
+ if (s2 !== peg$FAILED) {
3086
+ s1 = [s1, s2];
3087
+ s0 = s1;
3088
+ } else {
3089
+ peg$currPos = s0;
3090
+ s0 = peg$FAILED;
3091
+ }
3092
+ } else {
3093
+ peg$currPos = s0;
3094
+ s0 = peg$FAILED;
3095
+ }
3096
+ peg$silentFails--;
3097
+ if (s0 === peg$FAILED) {
3098
+ s1 = peg$FAILED;
3099
+ if (peg$silentFails === 0) { peg$fail(peg$e58); }
3100
+ }
3101
+
3102
+ return s0;
3103
+ }
3104
+
3105
+ function peg$parsejsPropertyAccess() {
3106
+ var s0, s1, s2, s3, s4;
3107
+
3108
+ s0 = peg$currPos;
3109
+ s1 = peg$parse__();
3110
+ if (input.charCodeAt(peg$currPos) === 46) {
3111
+ s2 = peg$c32;
3112
+ peg$currPos++;
3113
+ } else {
3114
+ s2 = peg$FAILED;
3115
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
3116
+ }
3117
+ if (s2 !== peg$FAILED) {
3118
+ s3 = peg$parse__();
3119
+ s4 = peg$parsejsIdentifier();
3120
+ if (s4 !== peg$FAILED) {
3121
+ peg$savedPos = s0;
3122
+ s0 = peg$f48(s4);
3123
+ } else {
3124
+ peg$currPos = s0;
3125
+ s0 = peg$FAILED;
3126
+ }
3127
+ } else {
3128
+ peg$currPos = s0;
3129
+ s0 = peg$FAILED;
3130
+ }
3131
+
3132
+ return s0;
3133
+ }
3134
+
2924
3135
  function peg$parselist() {
2925
3136
  var s0, s1, s2, s3, s4;
2926
3137
 
@@ -2957,7 +3168,7 @@ function peg$parse(input, options) {
2957
3168
  s2 = null;
2958
3169
  }
2959
3170
  peg$savedPos = s0;
2960
- s0 = peg$f45(s1);
3171
+ s0 = peg$f49(s1);
2961
3172
  } else {
2962
3173
  peg$currPos = s0;
2963
3174
  s0 = peg$FAILED;
@@ -2965,7 +3176,7 @@ function peg$parse(input, options) {
2965
3176
  peg$silentFails--;
2966
3177
  if (s0 === peg$FAILED) {
2967
3178
  s1 = peg$FAILED;
2968
- if (peg$silentFails === 0) { peg$fail(peg$e57); }
3179
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
2969
3180
  }
2970
3181
 
2971
3182
  return s0;
@@ -2996,7 +3207,7 @@ function peg$parse(input, options) {
2996
3207
  peg$currPos += 2;
2997
3208
  } else {
2998
3209
  s5 = peg$FAILED;
2999
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
3210
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
3000
3211
  }
3001
3212
  if (s5 !== peg$FAILED) {
3002
3213
  s6 = peg$parse__();
@@ -3020,7 +3231,7 @@ function peg$parse(input, options) {
3020
3231
  peg$currPos += 2;
3021
3232
  } else {
3022
3233
  s5 = peg$FAILED;
3023
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
3234
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
3024
3235
  }
3025
3236
  if (s5 !== peg$FAILED) {
3026
3237
  s6 = peg$parse__();
@@ -3037,7 +3248,7 @@ function peg$parse(input, options) {
3037
3248
  }
3038
3249
  }
3039
3250
  peg$savedPos = s0;
3040
- s0 = peg$f46(s1, s2);
3251
+ s0 = peg$f50(s1, s2);
3041
3252
  } else {
3042
3253
  peg$currPos = s0;
3043
3254
  s0 = peg$FAILED;
@@ -3060,7 +3271,7 @@ function peg$parse(input, options) {
3060
3271
  peg$currPos += 2;
3061
3272
  } else {
3062
3273
  s5 = peg$FAILED;
3063
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
3274
+ if (peg$silentFails === 0) { peg$fail(peg$e61); }
3064
3275
  }
3065
3276
  if (s5 !== peg$FAILED) {
3066
3277
  s6 = peg$parse__();
@@ -3084,7 +3295,7 @@ function peg$parse(input, options) {
3084
3295
  peg$currPos += 2;
3085
3296
  } else {
3086
3297
  s5 = peg$FAILED;
3087
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
3298
+ if (peg$silentFails === 0) { peg$fail(peg$e61); }
3088
3299
  }
3089
3300
  if (s5 !== peg$FAILED) {
3090
3301
  s6 = peg$parse__();
@@ -3101,7 +3312,7 @@ function peg$parse(input, options) {
3101
3312
  }
3102
3313
  }
3103
3314
  peg$savedPos = s0;
3104
- s0 = peg$f47(s1, s2);
3315
+ s0 = peg$f51(s1, s2);
3105
3316
  } else {
3106
3317
  peg$currPos = s0;
3107
3318
  s0 = peg$FAILED;
@@ -3119,7 +3330,7 @@ function peg$parse(input, options) {
3119
3330
  peg$currPos += 2;
3120
3331
  } else {
3121
3332
  s1 = peg$FAILED;
3122
- if (peg$silentFails === 0) { peg$fail(peg$e60); }
3333
+ if (peg$silentFails === 0) { peg$fail(peg$e62); }
3123
3334
  }
3124
3335
  if (s1 !== peg$FAILED) {
3125
3336
  s2 = [];
@@ -3131,7 +3342,7 @@ function peg$parse(input, options) {
3131
3342
  peg$currPos += 2;
3132
3343
  } else {
3133
3344
  s5 = peg$FAILED;
3134
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
3345
+ if (peg$silentFails === 0) { peg$fail(peg$e63); }
3135
3346
  }
3136
3347
  peg$silentFails--;
3137
3348
  if (s5 === peg$FAILED) {
@@ -3169,7 +3380,7 @@ function peg$parse(input, options) {
3169
3380
  peg$currPos += 2;
3170
3381
  } else {
3171
3382
  s5 = peg$FAILED;
3172
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
3383
+ if (peg$silentFails === 0) { peg$fail(peg$e63); }
3173
3384
  }
3174
3385
  peg$silentFails--;
3175
3386
  if (s5 === peg$FAILED) {
@@ -3203,11 +3414,11 @@ function peg$parse(input, options) {
3203
3414
  peg$currPos += 2;
3204
3415
  } else {
3205
3416
  s3 = peg$FAILED;
3206
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
3417
+ if (peg$silentFails === 0) { peg$fail(peg$e63); }
3207
3418
  }
3208
3419
  if (s3 !== peg$FAILED) {
3209
3420
  peg$savedPos = s0;
3210
- s0 = peg$f48();
3421
+ s0 = peg$f52();
3211
3422
  } else {
3212
3423
  peg$currPos = s0;
3213
3424
  s0 = peg$FAILED;
@@ -3283,7 +3494,7 @@ function peg$parse(input, options) {
3283
3494
  }
3284
3495
  }
3285
3496
  peg$savedPos = s0;
3286
- s0 = peg$f49(s1, s2);
3497
+ s0 = peg$f53(s1, s2);
3287
3498
  } else {
3288
3499
  peg$currPos = s0;
3289
3500
  s0 = peg$FAILED;
@@ -3300,7 +3511,7 @@ function peg$parse(input, options) {
3300
3511
  peg$currPos++;
3301
3512
  } else {
3302
3513
  s0 = peg$FAILED;
3303
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
3514
+ if (peg$silentFails === 0) { peg$fail(peg$e64); }
3304
3515
  }
3305
3516
 
3306
3517
  return s0;
@@ -3316,7 +3527,7 @@ function peg$parse(input, options) {
3316
3527
  peg$currPos++;
3317
3528
  } else {
3318
3529
  s2 = peg$FAILED;
3319
- if (peg$silentFails === 0) { peg$fail(peg$e63); }
3530
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
3320
3531
  }
3321
3532
  if (s2 !== peg$FAILED) {
3322
3533
  while (s2 !== peg$FAILED) {
@@ -3326,7 +3537,7 @@ function peg$parse(input, options) {
3326
3537
  peg$currPos++;
3327
3538
  } else {
3328
3539
  s2 = peg$FAILED;
3329
- if (peg$silentFails === 0) { peg$fail(peg$e63); }
3540
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
3330
3541
  }
3331
3542
  }
3332
3543
  } else {
@@ -3342,7 +3553,7 @@ function peg$parse(input, options) {
3342
3553
  }
3343
3554
  if (s2 !== peg$FAILED) {
3344
3555
  peg$savedPos = s0;
3345
- s0 = peg$f50(s1);
3556
+ s0 = peg$f54(s1);
3346
3557
  } else {
3347
3558
  peg$currPos = s0;
3348
3559
  s0 = peg$FAILED;
@@ -3363,7 +3574,7 @@ function peg$parse(input, options) {
3363
3574
  peg$currPos++;
3364
3575
  } else {
3365
3576
  s0 = peg$FAILED;
3366
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
3577
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
3367
3578
  }
3368
3579
  if (s0 === peg$FAILED) {
3369
3580
  if (input.substr(peg$currPos, 2) === peg$c43) {
@@ -3371,7 +3582,7 @@ function peg$parse(input, options) {
3371
3582
  peg$currPos += 2;
3372
3583
  } else {
3373
3584
  s0 = peg$FAILED;
3374
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
3585
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
3375
3586
  }
3376
3587
  if (s0 === peg$FAILED) {
3377
3588
  if (input.charCodeAt(peg$currPos) === 13) {
@@ -3379,7 +3590,7 @@ function peg$parse(input, options) {
3379
3590
  peg$currPos++;
3380
3591
  } else {
3381
3592
  s0 = peg$FAILED;
3382
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3593
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
3383
3594
  }
3384
3595
  }
3385
3596
  }
@@ -3398,7 +3609,7 @@ function peg$parse(input, options) {
3398
3609
  peg$silentFails--;
3399
3610
  if (s0 === peg$FAILED) {
3400
3611
  s1 = peg$FAILED;
3401
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
3612
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3402
3613
  }
3403
3614
 
3404
3615
  return s0;
@@ -3418,7 +3629,7 @@ function peg$parse(input, options) {
3418
3629
  peg$currPos += 2;
3419
3630
  } else {
3420
3631
  s5 = peg$FAILED;
3421
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
3632
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3422
3633
  }
3423
3634
  if (s5 !== peg$FAILED) {
3424
3635
  s6 = peg$parse__();
@@ -3442,7 +3653,7 @@ function peg$parse(input, options) {
3442
3653
  peg$currPos += 2;
3443
3654
  } else {
3444
3655
  s5 = peg$FAILED;
3445
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
3656
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3446
3657
  }
3447
3658
  if (s5 !== peg$FAILED) {
3448
3659
  s6 = peg$parse__();
@@ -3459,7 +3670,7 @@ function peg$parse(input, options) {
3459
3670
  }
3460
3671
  }
3461
3672
  peg$savedPos = s0;
3462
- s0 = peg$f51(s1, s2);
3673
+ s0 = peg$f55(s1, s2);
3463
3674
  } else {
3464
3675
  peg$currPos = s0;
3465
3676
  s0 = peg$FAILED;
@@ -3478,7 +3689,7 @@ function peg$parse(input, options) {
3478
3689
  peg$currPos++;
3479
3690
  } else {
3480
3691
  s1 = peg$FAILED;
3481
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3692
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
3482
3693
  }
3483
3694
  if (s1 !== peg$FAILED) {
3484
3695
  s2 = peg$parse__();
@@ -3490,7 +3701,7 @@ function peg$parse(input, options) {
3490
3701
  s5 = peg$parseexpectClosingBrace();
3491
3702
  if (s5 !== peg$FAILED) {
3492
3703
  peg$savedPos = s0;
3493
- s0 = peg$f52(s3);
3704
+ s0 = peg$f56(s3);
3494
3705
  } else {
3495
3706
  peg$currPos = s0;
3496
3707
  s0 = peg$FAILED;
@@ -3502,7 +3713,7 @@ function peg$parse(input, options) {
3502
3713
  peg$silentFails--;
3503
3714
  if (s0 === peg$FAILED) {
3504
3715
  s1 = peg$FAILED;
3505
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3716
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
3506
3717
  }
3507
3718
 
3508
3719
  return s0;
@@ -3543,7 +3754,7 @@ function peg$parse(input, options) {
3543
3754
  s2 = null;
3544
3755
  }
3545
3756
  peg$savedPos = s0;
3546
- s0 = peg$f53(s1);
3757
+ s0 = peg$f57(s1);
3547
3758
  } else {
3548
3759
  peg$currPos = s0;
3549
3760
  s0 = peg$FAILED;
@@ -3582,14 +3793,14 @@ function peg$parse(input, options) {
3582
3793
  peg$currPos++;
3583
3794
  } else {
3584
3795
  s3 = peg$FAILED;
3585
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
3796
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
3586
3797
  }
3587
3798
  if (s3 !== peg$FAILED) {
3588
3799
  s4 = peg$parse__();
3589
3800
  s5 = peg$parseexpectPipelineExpression();
3590
3801
  if (s5 !== peg$FAILED) {
3591
3802
  peg$savedPos = s0;
3592
- s0 = peg$f54(s1, s5);
3803
+ s0 = peg$f58(s1, s5);
3593
3804
  } else {
3594
3805
  peg$currPos = s0;
3595
3806
  s0 = peg$FAILED;
@@ -3605,7 +3816,7 @@ function peg$parse(input, options) {
3605
3816
  peg$silentFails--;
3606
3817
  if (s0 === peg$FAILED) {
3607
3818
  s1 = peg$FAILED;
3608
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3819
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3609
3820
  }
3610
3821
 
3611
3822
  return s0;
@@ -3650,7 +3861,7 @@ function peg$parse(input, options) {
3650
3861
  }
3651
3862
  if (s1 !== peg$FAILED) {
3652
3863
  peg$savedPos = s0;
3653
- s1 = peg$f55(s1);
3864
+ s1 = peg$f59(s1);
3654
3865
  }
3655
3866
  s0 = s1;
3656
3867
 
@@ -3668,7 +3879,7 @@ function peg$parse(input, options) {
3668
3879
  peg$silentFails--;
3669
3880
  if (s0 === peg$FAILED) {
3670
3881
  s1 = peg$FAILED;
3671
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
3882
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3672
3883
  }
3673
3884
 
3674
3885
  return s0;
@@ -3694,7 +3905,7 @@ function peg$parse(input, options) {
3694
3905
  s5 = peg$parseexpectPipelineExpression();
3695
3906
  if (s5 !== peg$FAILED) {
3696
3907
  peg$savedPos = s0;
3697
- s0 = peg$f56(s1, s5);
3908
+ s0 = peg$f60(s1, s5);
3698
3909
  } else {
3699
3910
  peg$currPos = s0;
3700
3911
  s0 = peg$FAILED;
@@ -3710,7 +3921,7 @@ function peg$parse(input, options) {
3710
3921
  peg$silentFails--;
3711
3922
  if (s0 === peg$FAILED) {
3712
3923
  s1 = peg$FAILED;
3713
- if (peg$silentFails === 0) { peg$fail(peg$e74); }
3924
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
3714
3925
  }
3715
3926
 
3716
3927
  return s0;
@@ -3724,13 +3935,13 @@ function peg$parse(input, options) {
3724
3935
  s1 = peg$parseobjectPublicKey();
3725
3936
  if (s1 !== peg$FAILED) {
3726
3937
  peg$savedPos = s0;
3727
- s1 = peg$f57(s1);
3938
+ s1 = peg$f61(s1);
3728
3939
  }
3729
3940
  s0 = s1;
3730
3941
  peg$silentFails--;
3731
3942
  if (s0 === peg$FAILED) {
3732
3943
  s1 = peg$FAILED;
3733
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
3944
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
3734
3945
  }
3735
3946
 
3736
3947
  return s0;
@@ -3747,13 +3958,13 @@ function peg$parse(input, options) {
3747
3958
  peg$currPos++;
3748
3959
  } else {
3749
3960
  s2 = peg$FAILED;
3750
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
3961
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
3751
3962
  }
3752
3963
  if (s2 === peg$FAILED) {
3753
3964
  s2 = null;
3754
3965
  }
3755
3966
  peg$savedPos = s0;
3756
- s0 = peg$f58(s1, s2);
3967
+ s0 = peg$f62(s1, s2);
3757
3968
  } else {
3758
3969
  peg$currPos = s0;
3759
3970
  s0 = peg$FAILED;
@@ -3763,7 +3974,7 @@ function peg$parse(input, options) {
3763
3974
  s1 = peg$parsestringLiteral();
3764
3975
  if (s1 !== peg$FAILED) {
3765
3976
  peg$savedPos = s0;
3766
- s1 = peg$f59(s1);
3977
+ s1 = peg$f63(s1);
3767
3978
  }
3768
3979
  s0 = s1;
3769
3980
  }
@@ -3778,7 +3989,7 @@ function peg$parse(input, options) {
3778
3989
  s1 = peg$parseidentifier();
3779
3990
  if (s1 !== peg$FAILED) {
3780
3991
  peg$savedPos = s0;
3781
- s1 = peg$f60(s1);
3992
+ s1 = peg$f64(s1);
3782
3993
  }
3783
3994
  s0 = s1;
3784
3995
 
@@ -3820,7 +4031,7 @@ function peg$parse(input, options) {
3820
4031
  s2 = null;
3821
4032
  }
3822
4033
  peg$savedPos = s0;
3823
- s0 = peg$f61(s1);
4034
+ s0 = peg$f65(s1);
3824
4035
  } else {
3825
4036
  peg$currPos = s0;
3826
4037
  s0 = peg$FAILED;
@@ -3836,7 +4047,7 @@ function peg$parse(input, options) {
3836
4047
  s1 = peg$parseidentifier();
3837
4048
  if (s1 !== peg$FAILED) {
3838
4049
  peg$savedPos = s0;
3839
- s1 = peg$f62(s1);
4050
+ s1 = peg$f66(s1);
3840
4051
  }
3841
4052
  s0 = s1;
3842
4053
 
@@ -3865,7 +4076,7 @@ function peg$parse(input, options) {
3865
4076
  s5 = peg$parseexpectClosingParenthesis();
3866
4077
  if (s5 !== peg$FAILED) {
3867
4078
  peg$savedPos = s0;
3868
- s0 = peg$f63(s3);
4079
+ s0 = peg$f67(s3);
3869
4080
  } else {
3870
4081
  peg$currPos = s0;
3871
4082
  s0 = peg$FAILED;
@@ -3877,7 +4088,7 @@ function peg$parse(input, options) {
3877
4088
  peg$silentFails--;
3878
4089
  if (s0 === peg$FAILED) {
3879
4090
  s1 = peg$FAILED;
3880
- if (peg$silentFails === 0) { peg$fail(peg$e77); }
4091
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
3881
4092
  }
3882
4093
 
3883
4094
  return s0;
@@ -3903,13 +4114,13 @@ function peg$parse(input, options) {
3903
4114
  }
3904
4115
  if (s1 !== peg$FAILED) {
3905
4116
  peg$savedPos = s0;
3906
- s1 = peg$f64(s1);
4117
+ s1 = peg$f68(s1);
3907
4118
  }
3908
4119
  s0 = s1;
3909
4120
  peg$silentFails--;
3910
4121
  if (s0 === peg$FAILED) {
3911
4122
  s1 = peg$FAILED;
3912
- if (peg$silentFails === 0) { peg$fail(peg$e78); }
4123
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
3913
4124
  }
3914
4125
 
3915
4126
  return s0;
@@ -3922,7 +4133,7 @@ function peg$parse(input, options) {
3922
4133
  s1 = peg$parsepath();
3923
4134
  if (s1 !== peg$FAILED) {
3924
4135
  peg$savedPos = s0;
3925
- s1 = peg$f65(s1);
4136
+ s1 = peg$f69(s1);
3926
4137
  }
3927
4138
  s0 = s1;
3928
4139
 
@@ -3949,7 +4160,7 @@ function peg$parse(input, options) {
3949
4160
  s2 = null;
3950
4161
  }
3951
4162
  peg$savedPos = s0;
3952
- s0 = peg$f66(s1, s2);
4163
+ s0 = peg$f70(s1, s2);
3953
4164
  } else {
3954
4165
  peg$currPos = s0;
3955
4166
  s0 = peg$FAILED;
@@ -3967,7 +4178,7 @@ function peg$parse(input, options) {
3967
4178
  peg$currPos++;
3968
4179
  } else {
3969
4180
  s1 = peg$FAILED;
3970
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
4181
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
3971
4182
  }
3972
4183
  if (s1 !== peg$FAILED) {
3973
4184
  s2 = peg$parsepathKey();
@@ -3991,7 +4202,7 @@ function peg$parse(input, options) {
3991
4202
  peg$currPos++;
3992
4203
  } else {
3993
4204
  s0 = peg$FAILED;
3994
- if (peg$silentFails === 0) { peg$fail(peg$e79); }
4205
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
3995
4206
  }
3996
4207
  if (s0 === peg$FAILED) {
3997
4208
  s0 = peg$parseescapedChar();
@@ -4043,7 +4254,7 @@ function peg$parse(input, options) {
4043
4254
  }
4044
4255
  }
4045
4256
  peg$savedPos = s0;
4046
- s0 = peg$f67(s1, s2);
4257
+ s0 = peg$f71(s1, s2);
4047
4258
  } else {
4048
4259
  peg$currPos = s0;
4049
4260
  s0 = peg$FAILED;
@@ -4094,7 +4305,7 @@ function peg$parse(input, options) {
4094
4305
  peg$silentFails--;
4095
4306
  if (s0 === peg$FAILED) {
4096
4307
  s1 = peg$FAILED;
4097
- if (peg$silentFails === 0) { peg$fail(peg$e80); }
4308
+ if (peg$silentFails === 0) { peg$fail(peg$e82); }
4098
4309
  }
4099
4310
 
4100
4311
  return s0;
@@ -4111,7 +4322,7 @@ function peg$parse(input, options) {
4111
4322
  peg$currPos += 2;
4112
4323
  } else {
4113
4324
  s2 = peg$FAILED;
4114
- if (peg$silentFails === 0) { peg$fail(peg$e81); }
4325
+ if (peg$silentFails === 0) { peg$fail(peg$e83); }
4115
4326
  }
4116
4327
  if (s2 !== peg$FAILED) {
4117
4328
  s3 = peg$parsehost();
@@ -4124,7 +4335,7 @@ function peg$parse(input, options) {
4124
4335
  s4 = null;
4125
4336
  }
4126
4337
  peg$savedPos = s0;
4127
- s0 = peg$f68(s1, s3, s4);
4338
+ s0 = peg$f72(s1, s3, s4);
4128
4339
  } else {
4129
4340
  peg$currPos = s0;
4130
4341
  s0 = peg$FAILED;
@@ -4153,7 +4364,7 @@ function peg$parse(input, options) {
4153
4364
  s2 = peg$parsescopeReference();
4154
4365
  if (s2 !== peg$FAILED) {
4155
4366
  peg$savedPos = s0;
4156
- s0 = peg$f69(s1, s2);
4367
+ s0 = peg$f73(s1, s2);
4157
4368
  } else {
4158
4369
  peg$currPos = s0;
4159
4370
  s0 = peg$FAILED;
@@ -4166,26 +4377,6 @@ function peg$parse(input, options) {
4166
4377
  return s0;
4167
4378
  }
4168
4379
 
4169
- function peg$parseinherited() {
4170
- var s0;
4171
-
4172
- s0 = peg$parserootDirectory();
4173
- if (s0 === peg$FAILED) {
4174
- s0 = peg$parsehomeDirectory();
4175
- if (s0 === peg$FAILED) {
4176
- s0 = peg$parsequalifiedReference();
4177
- if (s0 === peg$FAILED) {
4178
- s0 = peg$parsenamespace();
4179
- if (s0 === peg$FAILED) {
4180
- s0 = peg$parsescopeReference();
4181
- }
4182
- }
4183
- }
4184
- }
4185
-
4186
- return s0;
4187
- }
4188
-
4189
4380
  function peg$parserelationalExpression() {
4190
4381
  var s0, s1, s2, s3, s4, s5, s6, s7;
4191
4382
 
@@ -4229,7 +4420,7 @@ function peg$parse(input, options) {
4229
4420
  }
4230
4421
  }
4231
4422
  peg$savedPos = s0;
4232
- s0 = peg$f70(s1, s2);
4423
+ s0 = peg$f74(s1, s2);
4233
4424
  } else {
4234
4425
  peg$currPos = s0;
4235
4426
  s0 = peg$FAILED;
@@ -4246,7 +4437,7 @@ function peg$parse(input, options) {
4246
4437
  peg$currPos += 2;
4247
4438
  } else {
4248
4439
  s0 = peg$FAILED;
4249
- if (peg$silentFails === 0) { peg$fail(peg$e82); }
4440
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
4250
4441
  }
4251
4442
  if (s0 === peg$FAILED) {
4252
4443
  if (input.charCodeAt(peg$currPos) === 60) {
@@ -4254,7 +4445,7 @@ function peg$parse(input, options) {
4254
4445
  peg$currPos++;
4255
4446
  } else {
4256
4447
  s0 = peg$FAILED;
4257
- if (peg$silentFails === 0) { peg$fail(peg$e83); }
4448
+ if (peg$silentFails === 0) { peg$fail(peg$e85); }
4258
4449
  }
4259
4450
  if (s0 === peg$FAILED) {
4260
4451
  if (input.substr(peg$currPos, 2) === peg$c52) {
@@ -4262,7 +4453,7 @@ function peg$parse(input, options) {
4262
4453
  peg$currPos += 2;
4263
4454
  } else {
4264
4455
  s0 = peg$FAILED;
4265
- if (peg$silentFails === 0) { peg$fail(peg$e84); }
4456
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
4266
4457
  }
4267
4458
  if (s0 === peg$FAILED) {
4268
4459
  if (input.charCodeAt(peg$currPos) === 62) {
@@ -4288,13 +4479,13 @@ function peg$parse(input, options) {
4288
4479
  peg$currPos++;
4289
4480
  } else {
4290
4481
  s1 = peg$FAILED;
4291
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
4482
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
4292
4483
  }
4293
4484
  if (s1 !== peg$FAILED) {
4294
4485
  s2 = peg$parsepathKey();
4295
4486
  if (s2 !== peg$FAILED) {
4296
4487
  peg$savedPos = s0;
4297
- s0 = peg$f71(s2);
4488
+ s0 = peg$f75(s2);
4298
4489
  } else {
4299
4490
  peg$currPos = s0;
4300
4491
  s0 = peg$FAILED;
@@ -4310,7 +4501,7 @@ function peg$parse(input, options) {
4310
4501
  peg$currPos++;
4311
4502
  } else {
4312
4503
  s1 = peg$FAILED;
4313
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
4504
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
4314
4505
  }
4315
4506
  if (s1 !== peg$FAILED) {
4316
4507
  s2 = peg$currPos;
@@ -4320,7 +4511,7 @@ function peg$parse(input, options) {
4320
4511
  peg$currPos++;
4321
4512
  } else {
4322
4513
  s3 = peg$FAILED;
4323
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
4514
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
4324
4515
  }
4325
4516
  peg$silentFails--;
4326
4517
  if (s3 === peg$FAILED) {
@@ -4331,7 +4522,7 @@ function peg$parse(input, options) {
4331
4522
  }
4332
4523
  if (s2 !== peg$FAILED) {
4333
4524
  peg$savedPos = s0;
4334
- s0 = peg$f72();
4525
+ s0 = peg$f76();
4335
4526
  } else {
4336
4527
  peg$currPos = s0;
4337
4528
  s0 = peg$FAILED;
@@ -4357,7 +4548,7 @@ function peg$parse(input, options) {
4357
4548
  s2 = null;
4358
4549
  }
4359
4550
  peg$savedPos = s0;
4360
- s0 = peg$f73(s1, s2);
4551
+ s0 = peg$f77(s1, s2);
4361
4552
  } else {
4362
4553
  peg$currPos = s0;
4363
4554
  s0 = peg$FAILED;
@@ -4365,7 +4556,7 @@ function peg$parse(input, options) {
4365
4556
  peg$silentFails--;
4366
4557
  if (s0 === peg$FAILED) {
4367
4558
  s1 = peg$FAILED;
4368
- if (peg$silentFails === 0) { peg$fail(peg$e85); }
4559
+ if (peg$silentFails === 0) { peg$fail(peg$e87); }
4369
4560
  }
4370
4561
 
4371
4562
  return s0;
@@ -4407,7 +4598,7 @@ function peg$parse(input, options) {
4407
4598
  peg$currPos += 2;
4408
4599
  } else {
4409
4600
  s1 = peg$FAILED;
4410
- if (peg$silentFails === 0) { peg$fail(peg$e86); }
4601
+ if (peg$silentFails === 0) { peg$fail(peg$e88); }
4411
4602
  }
4412
4603
  if (s1 !== peg$FAILED) {
4413
4604
  s2 = [];
@@ -4416,7 +4607,7 @@ function peg$parse(input, options) {
4416
4607
  peg$currPos++;
4417
4608
  } else {
4418
4609
  s3 = peg$FAILED;
4419
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
4610
+ if (peg$silentFails === 0) { peg$fail(peg$e89); }
4420
4611
  }
4421
4612
  while (s3 !== peg$FAILED) {
4422
4613
  s2.push(s3);
@@ -4425,11 +4616,11 @@ function peg$parse(input, options) {
4425
4616
  peg$currPos++;
4426
4617
  } else {
4427
4618
  s3 = peg$FAILED;
4428
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
4619
+ if (peg$silentFails === 0) { peg$fail(peg$e89); }
4429
4620
  }
4430
4621
  }
4431
4622
  peg$savedPos = s0;
4432
- s0 = peg$f74();
4623
+ s0 = peg$f78();
4433
4624
  } else {
4434
4625
  peg$currPos = s0;
4435
4626
  s0 = peg$FAILED;
@@ -4481,7 +4672,7 @@ function peg$parse(input, options) {
4481
4672
  }
4482
4673
  }
4483
4674
  peg$savedPos = s0;
4484
- s0 = peg$f75(s1, s2);
4675
+ s0 = peg$f79(s1, s2);
4485
4676
  } else {
4486
4677
  peg$currPos = s0;
4487
4678
  s0 = peg$FAILED;
@@ -4498,7 +4689,7 @@ function peg$parse(input, options) {
4498
4689
  peg$currPos += 2;
4499
4690
  } else {
4500
4691
  s0 = peg$FAILED;
4501
- if (peg$silentFails === 0) { peg$fail(peg$e88); }
4692
+ if (peg$silentFails === 0) { peg$fail(peg$e90); }
4502
4693
  }
4503
4694
  if (s0 === peg$FAILED) {
4504
4695
  if (input.substr(peg$currPos, 3) === peg$c55) {
@@ -4506,7 +4697,7 @@ function peg$parse(input, options) {
4506
4697
  peg$currPos += 3;
4507
4698
  } else {
4508
4699
  s0 = peg$FAILED;
4509
- if (peg$silentFails === 0) { peg$fail(peg$e89); }
4700
+ if (peg$silentFails === 0) { peg$fail(peg$e91); }
4510
4701
  }
4511
4702
  if (s0 === peg$FAILED) {
4512
4703
  if (input.substr(peg$currPos, 2) === peg$c56) {
@@ -4514,7 +4705,7 @@ function peg$parse(input, options) {
4514
4705
  peg$currPos += 2;
4515
4706
  } else {
4516
4707
  s0 = peg$FAILED;
4517
- if (peg$silentFails === 0) { peg$fail(peg$e90); }
4708
+ if (peg$silentFails === 0) { peg$fail(peg$e92); }
4518
4709
  }
4519
4710
  }
4520
4711
  }
@@ -4532,7 +4723,7 @@ function peg$parse(input, options) {
4532
4723
  peg$currPos++;
4533
4724
  } else {
4534
4725
  s1 = peg$FAILED;
4535
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
4726
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
4536
4727
  }
4537
4728
  if (s1 !== peg$FAILED) {
4538
4729
  s2 = peg$currPos;
@@ -4542,7 +4733,7 @@ function peg$parse(input, options) {
4542
4733
  peg$currPos++;
4543
4734
  } else {
4544
4735
  s3 = peg$FAILED;
4545
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
4736
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
4546
4737
  }
4547
4738
  peg$silentFails--;
4548
4739
  if (s3 === peg$FAILED) {
@@ -4556,7 +4747,7 @@ function peg$parse(input, options) {
4556
4747
  s4 = peg$parseimplicitParenthesesCallExpression();
4557
4748
  if (s4 !== peg$FAILED) {
4558
4749
  peg$savedPos = s0;
4559
- s0 = peg$f76(s4);
4750
+ s0 = peg$f80(s4);
4560
4751
  } else {
4561
4752
  peg$currPos = s0;
4562
4753
  s0 = peg$FAILED;
@@ -4575,7 +4766,7 @@ function peg$parse(input, options) {
4575
4766
  peg$silentFails--;
4576
4767
  if (s0 === peg$FAILED) {
4577
4768
  s1 = peg$FAILED;
4578
- if (peg$silentFails === 0) { peg$fail(peg$e91); }
4769
+ if (peg$silentFails === 0) { peg$fail(peg$e93); }
4579
4770
  }
4580
4771
 
4581
4772
  return s0;
@@ -4589,7 +4780,7 @@ function peg$parse(input, options) {
4589
4780
  peg$currPos++;
4590
4781
  } else {
4591
4782
  s0 = peg$FAILED;
4592
- if (peg$silentFails === 0) { peg$fail(peg$e92); }
4783
+ if (peg$silentFails === 0) { peg$fail(peg$e94); }
4593
4784
  }
4594
4785
  if (s0 === peg$FAILED) {
4595
4786
  if (input.substr(peg$currPos, 2) === peg$c58) {
@@ -4597,7 +4788,7 @@ function peg$parse(input, options) {
4597
4788
  peg$currPos += 2;
4598
4789
  } else {
4599
4790
  s0 = peg$FAILED;
4600
- if (peg$silentFails === 0) { peg$fail(peg$e93); }
4791
+ if (peg$silentFails === 0) { peg$fail(peg$e95); }
4601
4792
  }
4602
4793
  }
4603
4794
 
@@ -4613,7 +4804,7 @@ function peg$parse(input, options) {
4613
4804
  peg$currPos += 2;
4614
4805
  } else {
4615
4806
  s1 = peg$FAILED;
4616
- if (peg$silentFails === 0) { peg$fail(peg$e81); }
4807
+ if (peg$silentFails === 0) { peg$fail(peg$e83); }
4617
4808
  }
4618
4809
  if (s1 !== peg$FAILED) {
4619
4810
  s2 = [];
@@ -4622,7 +4813,7 @@ function peg$parse(input, options) {
4622
4813
  peg$currPos++;
4623
4814
  } else {
4624
4815
  s3 = peg$FAILED;
4625
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
4816
+ if (peg$silentFails === 0) { peg$fail(peg$e89); }
4626
4817
  }
4627
4818
  while (s3 !== peg$FAILED) {
4628
4819
  s2.push(s3);
@@ -4631,11 +4822,11 @@ function peg$parse(input, options) {
4631
4822
  peg$currPos++;
4632
4823
  } else {
4633
4824
  s3 = peg$FAILED;
4634
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
4825
+ if (peg$silentFails === 0) { peg$fail(peg$e89); }
4635
4826
  }
4636
4827
  }
4637
4828
  peg$savedPos = s0;
4638
- s0 = peg$f77();
4829
+ s0 = peg$f81();
4639
4830
  } else {
4640
4831
  peg$currPos = s0;
4641
4832
  s0 = peg$FAILED;
@@ -4666,7 +4857,7 @@ function peg$parse(input, options) {
4666
4857
  s3 = peg$parseexpectSingleQuote();
4667
4858
  if (s3 !== peg$FAILED) {
4668
4859
  peg$savedPos = s0;
4669
- s0 = peg$f78(s2);
4860
+ s0 = peg$f82(s2);
4670
4861
  } else {
4671
4862
  peg$currPos = s0;
4672
4863
  s0 = peg$FAILED;
@@ -4678,7 +4869,7 @@ function peg$parse(input, options) {
4678
4869
  peg$silentFails--;
4679
4870
  if (s0 === peg$FAILED) {
4680
4871
  s1 = peg$FAILED;
4681
- if (peg$silentFails === 0) { peg$fail(peg$e94); }
4872
+ if (peg$silentFails === 0) { peg$fail(peg$e96); }
4682
4873
  }
4683
4874
 
4684
4875
  return s0;
@@ -4730,7 +4921,7 @@ function peg$parse(input, options) {
4730
4921
  s1 = peg$parseslashFollows();
4731
4922
  if (s1 !== peg$FAILED) {
4732
4923
  peg$savedPos = s0;
4733
- s1 = peg$f79();
4924
+ s1 = peg$f83();
4734
4925
  }
4735
4926
  s0 = s1;
4736
4927
 
@@ -4748,7 +4939,7 @@ function peg$parse(input, options) {
4748
4939
  peg$currPos++;
4749
4940
  } else {
4750
4941
  s2 = peg$FAILED;
4751
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
4942
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
4752
4943
  }
4753
4944
  peg$silentFails--;
4754
4945
  if (s2 !== peg$FAILED) {
@@ -4759,7 +4950,7 @@ function peg$parse(input, options) {
4759
4950
  }
4760
4951
  if (s1 !== peg$FAILED) {
4761
4952
  peg$savedPos = s0;
4762
- s1 = peg$f80();
4953
+ s1 = peg$f84();
4763
4954
  }
4764
4955
  s0 = s1;
4765
4956
 
@@ -4776,7 +4967,7 @@ function peg$parse(input, options) {
4776
4967
  s3 = peg$parsepipelineExpression();
4777
4968
  if (s3 !== peg$FAILED) {
4778
4969
  peg$savedPos = s0;
4779
- s0 = peg$f81(s3);
4970
+ s0 = peg$f85(s3);
4780
4971
  } else {
4781
4972
  peg$currPos = s0;
4782
4973
  s0 = peg$FAILED;
@@ -4803,7 +4994,7 @@ function peg$parse(input, options) {
4803
4994
  peg$silentFails--;
4804
4995
  if (s0 === peg$FAILED) {
4805
4996
  s1 = peg$FAILED;
4806
- if (peg$silentFails === 0) { peg$fail(peg$e95); }
4997
+ if (peg$silentFails === 0) { peg$fail(peg$e97); }
4807
4998
  }
4808
4999
 
4809
5000
  return s0;
@@ -4840,10 +5031,10 @@ function peg$parse(input, options) {
4840
5031
  }
4841
5032
  }
4842
5033
  peg$savedPos = s0;
4843
- s0 = peg$f82(s1, s2);
5034
+ s0 = peg$f86(s1, s2);
4844
5035
  peg$silentFails--;
4845
5036
  s1 = peg$FAILED;
4846
- if (peg$silentFails === 0) { peg$fail(peg$e96); }
5037
+ if (peg$silentFails === 0) { peg$fail(peg$e98); }
4847
5038
 
4848
5039
  return s0;
4849
5040
  }
@@ -4859,7 +5050,7 @@ function peg$parse(input, options) {
4859
5050
  peg$currPos += 2;
4860
5051
  } else {
4861
5052
  s2 = peg$FAILED;
4862
- if (peg$silentFails === 0) { peg$fail(peg$e97); }
5053
+ if (peg$silentFails === 0) { peg$fail(peg$e99); }
4863
5054
  }
4864
5055
  peg$silentFails--;
4865
5056
  if (s2 === peg$FAILED) {
@@ -4896,11 +5087,11 @@ function peg$parse(input, options) {
4896
5087
  s2 = peg$parsetemplateBodyChar();
4897
5088
  }
4898
5089
  peg$savedPos = s0;
4899
- s1 = peg$f83(s1);
5090
+ s1 = peg$f87(s1);
4900
5091
  s0 = s1;
4901
5092
  peg$silentFails--;
4902
5093
  s1 = peg$FAILED;
4903
- if (peg$silentFails === 0) { peg$fail(peg$e98); }
5094
+ if (peg$silentFails === 0) { peg$fail(peg$e100); }
4904
5095
 
4905
5096
  return s0;
4906
5097
  }
@@ -4915,7 +5106,7 @@ function peg$parse(input, options) {
4915
5106
  s2 = peg$parse__();
4916
5107
  s3 = peg$parsetemplateBody();
4917
5108
  peg$savedPos = s0;
4918
- s0 = peg$f84(s1, s3);
5109
+ s0 = peg$f88(s1, s3);
4919
5110
  } else {
4920
5111
  peg$currPos = s0;
4921
5112
  s0 = peg$FAILED;
@@ -4928,12 +5119,12 @@ function peg$parse(input, options) {
4928
5119
  }
4929
5120
  s2 = peg$parsetemplateBody();
4930
5121
  peg$savedPos = s0;
4931
- s0 = peg$f85(s1, s2);
5122
+ s0 = peg$f89(s1, s2);
4932
5123
  }
4933
5124
  peg$silentFails--;
4934
5125
  if (s0 === peg$FAILED) {
4935
5126
  s1 = peg$FAILED;
4936
- if (peg$silentFails === 0) { peg$fail(peg$e99); }
5127
+ if (peg$silentFails === 0) { peg$fail(peg$e101); }
4937
5128
  }
4938
5129
 
4939
5130
  return s0;
@@ -4980,7 +5171,7 @@ function peg$parse(input, options) {
4980
5171
  s4 = peg$parseexpectBacktick();
4981
5172
  if (s4 !== peg$FAILED) {
4982
5173
  peg$savedPos = s0;
4983
- s0 = peg$f86(s2, s3);
5174
+ s0 = peg$f90(s2, s3);
4984
5175
  } else {
4985
5176
  peg$currPos = s0;
4986
5177
  s0 = peg$FAILED;
@@ -4992,7 +5183,7 @@ function peg$parse(input, options) {
4992
5183
  peg$silentFails--;
4993
5184
  if (s0 === peg$FAILED) {
4994
5185
  s1 = peg$FAILED;
4995
- if (peg$silentFails === 0) { peg$fail(peg$e100); }
5186
+ if (peg$silentFails === 0) { peg$fail(peg$e102); }
4996
5187
  }
4997
5188
 
4998
5189
  return s0;
@@ -5017,7 +5208,7 @@ function peg$parse(input, options) {
5017
5208
  peg$currPos += 2;
5018
5209
  } else {
5019
5210
  s2 = peg$FAILED;
5020
- if (peg$silentFails === 0) { peg$fail(peg$e97); }
5211
+ if (peg$silentFails === 0) { peg$fail(peg$e99); }
5021
5212
  }
5022
5213
  }
5023
5214
  peg$silentFails--;
@@ -5054,7 +5245,7 @@ function peg$parse(input, options) {
5054
5245
  s2 = peg$parsetemplateLiteralChar();
5055
5246
  }
5056
5247
  peg$savedPos = s0;
5057
- s1 = peg$f87(s1);
5248
+ s1 = peg$f91(s1);
5058
5249
  s0 = s1;
5059
5250
 
5060
5251
  return s0;
@@ -5070,7 +5261,7 @@ function peg$parse(input, options) {
5070
5261
  peg$currPos += 2;
5071
5262
  } else {
5072
5263
  s1 = peg$FAILED;
5073
- if (peg$silentFails === 0) { peg$fail(peg$e97); }
5264
+ if (peg$silentFails === 0) { peg$fail(peg$e99); }
5074
5265
  }
5075
5266
  if (s1 !== peg$FAILED) {
5076
5267
  s2 = peg$parseexpectExpression();
@@ -5084,7 +5275,7 @@ function peg$parse(input, options) {
5084
5275
  }
5085
5276
  if (s3 !== peg$FAILED) {
5086
5277
  peg$savedPos = s0;
5087
- s0 = peg$f88(s2);
5278
+ s0 = peg$f92(s2);
5088
5279
  } else {
5089
5280
  peg$currPos = s0;
5090
5281
  s0 = peg$FAILED;
@@ -5100,7 +5291,7 @@ function peg$parse(input, options) {
5100
5291
  peg$silentFails--;
5101
5292
  if (s0 === peg$FAILED) {
5102
5293
  s1 = peg$FAILED;
5103
- if (peg$silentFails === 0) { peg$fail(peg$e101); }
5294
+ if (peg$silentFails === 0) { peg$fail(peg$e103); }
5104
5295
  }
5105
5296
 
5106
5297
  return s0;
@@ -5133,7 +5324,7 @@ function peg$parse(input, options) {
5133
5324
  s3 = peg$parseunaryExpression();
5134
5325
  if (s3 !== peg$FAILED) {
5135
5326
  peg$savedPos = s0;
5136
- s0 = peg$f89(s1, s3);
5327
+ s0 = peg$f93(s1, s3);
5137
5328
  } else {
5138
5329
  peg$currPos = s0;
5139
5330
  s0 = peg$FAILED;
@@ -5157,7 +5348,7 @@ function peg$parse(input, options) {
5157
5348
  peg$currPos++;
5158
5349
  } else {
5159
5350
  s0 = peg$FAILED;
5160
- if (peg$silentFails === 0) { peg$fail(peg$e102); }
5351
+ if (peg$silentFails === 0) { peg$fail(peg$e104); }
5161
5352
  }
5162
5353
 
5163
5354
  return s0;
@@ -5250,6 +5441,7 @@ const peg$allowedStartRules = [
5250
5441
  "callExpression",
5251
5442
  "commaExpression",
5252
5443
  "comment",
5444
+ "computedPropertyAccess",
5253
5445
  "conditionalExpression",
5254
5446
  "digits",
5255
5447
  "doubleArrow",
@@ -5285,8 +5477,13 @@ const peg$allowedStartRules = [
5285
5477
  "identifierChar",
5286
5478
  "implicitParenthesesCallExpression",
5287
5479
  "implicitParensthesesArguments",
5480
+ "inherited",
5288
5481
  "inlineSpace",
5289
5482
  "integerLiteral",
5483
+ "jsIdentifier",
5484
+ "jsIdentifierPart",
5485
+ "jsIdentifierStart",
5486
+ "jsPropertyAccess",
5290
5487
  "list",
5291
5488
  "literal",
5292
5489
  "logicalAndExpression",
@@ -5321,7 +5518,6 @@ const peg$allowedStartRules = [
5321
5518
  "program",
5322
5519
  "protocolExpression",
5323
5520
  "qualifiedReference",
5324
- "inherited",
5325
5521
  "relationalExpression",
5326
5522
  "relationalOperator",
5327
5523
  "rootDirectory",