@weborigami/language 0.0.66-beta.1 → 0.0.66-beta.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.
@@ -191,7 +191,7 @@ function peg$parse(input, options) {
191
191
  var peg$FAILED = {};
192
192
  var peg$source = options.grammarSource;
193
193
 
194
- var peg$startRuleFunctions = { __: peg$parse__, absoluteFilePath: peg$parseabsoluteFilePath, args: peg$parseargs, array: peg$parsearray, arrayEntries: peg$parsearrayEntries, arrayEntry: peg$parsearrayEntry, callTarget: peg$parsecallTarget, closingBrace: peg$parseclosingBrace, closingBracket: peg$parseclosingBracket, closingParen: peg$parseclosingParen, comment: peg$parsecomment, digits: peg$parsedigits, doubleArrow: peg$parsedoubleArrow, doubleQuoteString: peg$parsedoubleQuoteString, doubleQuoteStringChar: peg$parsedoubleQuoteStringChar, ellipsis: peg$parseellipsis, escapedChar: peg$parseescapedChar, expr: peg$parseexpr, expression: peg$parseexpression, float: peg$parsefloat, functionComposition: peg$parsefunctionComposition, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, identifierList: peg$parseidentifierList, implicitParensArgs: peg$parseimplicitParensArgs, inlineSpace: peg$parseinlineSpace, integer: peg$parseinteger, lambda: peg$parselambda, leadingSlashPath: peg$parseleadingSlashPath, list: peg$parselist, multiLineComment: peg$parsemultiLineComment, newLine: peg$parsenewLine, number: peg$parsenumber, object: peg$parseobject, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectGetter: peg$parseobjectGetter, objectHiddenKey: peg$parseobjectHiddenKey, objectKey: peg$parseobjectKey, objectPublicKey: peg$parseobjectPublicKey, objectProperty: peg$parseobjectProperty, objectShorthandProperty: peg$parseobjectShorthandProperty, parameterizedLambda: peg$parseparameterizedLambda, parensArgs: peg$parseparensArgs, pipeline: peg$parsepipeline, path: peg$parsepath, pathKey: peg$parsepathKey, pathKeyChar: peg$parsepathKeyChar, protocolCall: peg$parseprotocolCall, protocol: peg$parseprotocol, reservedProtocol: peg$parsereservedProtocol, scopeReference: peg$parsescopeReference, separator: peg$parseseparator, shebang: peg$parseshebang, sign: peg$parsesign, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, spread: peg$parsespread, step: peg$parsestep, start: peg$parsestart, string: peg$parsestring, 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, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
194
+ var peg$startRuleFunctions = { __: peg$parse__, absoluteFilePath: peg$parseabsoluteFilePath, args: peg$parseargs, array: peg$parsearray, arrayEntries: peg$parsearrayEntries, arrayEntry: peg$parsearrayEntry, callTarget: peg$parsecallTarget, closingBrace: peg$parseclosingBrace, closingBracket: peg$parseclosingBracket, closingParen: peg$parseclosingParen, comment: peg$parsecomment, digits: peg$parsedigits, doubleArrow: peg$parsedoubleArrow, doubleQuoteString: peg$parsedoubleQuoteString, doubleQuoteStringChar: peg$parsedoubleQuoteStringChar, ellipsis: peg$parseellipsis, escapedChar: peg$parseescapedChar, expr: peg$parseexpr, expression: peg$parseexpression, float: peg$parsefloat, functionComposition: peg$parsefunctionComposition, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, identifierList: peg$parseidentifierList, implicitParensArgs: peg$parseimplicitParensArgs, inlineSpace: peg$parseinlineSpace, integer: peg$parseinteger, lambda: peg$parselambda, leadingSlashPath: peg$parseleadingSlashPath, list: peg$parselist, multiLineComment: peg$parsemultiLineComment, newLine: peg$parsenewLine, number: peg$parsenumber, object: peg$parseobject, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectGetter: peg$parseobjectGetter, objectHiddenKey: peg$parseobjectHiddenKey, objectKey: peg$parseobjectKey, objectProperty: peg$parseobjectProperty, objectShorthandProperty: peg$parseobjectShorthandProperty, objectPublicKey: peg$parseobjectPublicKey, parameterizedLambda: peg$parseparameterizedLambda, parensArgs: peg$parseparensArgs, pipeline: peg$parsepipeline, path: peg$parsepath, pathElement: peg$parsepathElement, pathKeyChar: peg$parsepathKeyChar, pathTail: peg$parsepathTail, protocolCall: peg$parseprotocolCall, protocol: peg$parseprotocol, reservedProtocol: peg$parsereservedProtocol, scopeReference: peg$parsescopeReference, scopeTraverse: peg$parsescopeTraverse, separator: peg$parseseparator, shebang: peg$parseshebang, sign: peg$parsesign, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, spread: peg$parsespread, step: peg$parsestep, start: peg$parsestart, string: peg$parsestring, 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, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
195
195
  var peg$startRuleFunction = peg$parse__;
196
196
 
197
197
  var peg$c0 = "//";
@@ -227,20 +227,21 @@ function peg$parse(input, options) {
227
227
  var peg$c30 = "\r\n";
228
228
  var peg$c31 = "\r";
229
229
  var peg$c32 = "{";
230
- var peg$c33 = "https";
231
- var peg$c34 = "http";
232
- var peg$c35 = "new";
233
- var peg$c36 = "package";
234
- var peg$c37 = "treehttps";
235
- var peg$c38 = "treehttp";
236
- var peg$c39 = "tree";
237
- var peg$c40 = ",";
238
- var peg$c41 = "#!";
239
- var peg$c42 = "\u2192";
240
- var peg$c43 = "->";
241
- var peg$c44 = "'";
242
- var peg$c45 = "${";
243
- var peg$c46 = "`";
230
+ var peg$c33 = "haskeys";
231
+ var peg$c34 = "https";
232
+ var peg$c35 = "http";
233
+ var peg$c36 = "new";
234
+ var peg$c37 = "package";
235
+ var peg$c38 = "tree";
236
+ var peg$c39 = "treehttp";
237
+ var peg$c40 = "treehttps";
238
+ var peg$c41 = ",";
239
+ var peg$c42 = "#!";
240
+ var peg$c43 = "\u2192";
241
+ var peg$c44 = "->";
242
+ var peg$c45 = "'";
243
+ var peg$c46 = "${";
244
+ var peg$c47 = "`";
244
245
 
245
246
  var peg$r0 = /^[0-9]/;
246
247
  var peg$r1 = /^[^(){}[\]<>\-=,\/:`"'\xAB\xBB\\ \u2192\u21D2\t\n\r]/;
@@ -313,18 +314,18 @@ function peg$parse(input, options) {
313
314
  var peg$e61 = peg$otherExpectation("object identifier");
314
315
  var peg$e62 = peg$otherExpectation("function arguments in parentheses");
315
316
  var peg$e63 = peg$otherExpectation("slash-separated path");
316
- var peg$e64 = peg$otherExpectation("path element");
317
- var peg$e65 = peg$classExpectation(["(", ")", "{", "}", "[", "]", ",", ":", "/", "\\", " ", "\t", "\n", "\r"], true, false);
318
- var peg$e66 = peg$otherExpectation("function call using protocol: syntax");
319
- var peg$e67 = peg$otherExpectation("protocol");
320
- var peg$e68 = peg$otherExpectation("reserved protocol");
317
+ var peg$e64 = peg$classExpectation(["(", ")", "{", "}", "[", "]", ",", ":", "/", "\\", " ", "\t", "\n", "\r"], true, false);
318
+ var peg$e65 = peg$otherExpectation("function call using protocol: syntax");
319
+ var peg$e66 = peg$otherExpectation("protocol");
320
+ var peg$e67 = peg$otherExpectation("reserved protocol");
321
+ var peg$e68 = peg$literalExpectation("haskeys", false);
321
322
  var peg$e69 = peg$literalExpectation("https", false);
322
323
  var peg$e70 = peg$literalExpectation("http", false);
323
324
  var peg$e71 = peg$literalExpectation("new", false);
324
325
  var peg$e72 = peg$literalExpectation("package", false);
325
- var peg$e73 = peg$literalExpectation("treehttps", false);
326
+ var peg$e73 = peg$literalExpectation("tree", false);
326
327
  var peg$e74 = peg$literalExpectation("treehttp", false);
327
- var peg$e75 = peg$literalExpectation("tree", false);
328
+ var peg$e75 = peg$literalExpectation("treehttps", false);
328
329
  var peg$e76 = peg$otherExpectation("scope reference");
329
330
  var peg$e77 = peg$literalExpectation(",", false);
330
331
  var peg$e78 = peg$literalExpectation("#!", false);
@@ -391,8 +392,10 @@ function peg$parse(input, options) {
391
392
  var peg$f19 = function(chars) {
392
393
  return annotate([ops.primitive, chars.join("")], location());
393
394
  };
394
- var peg$f20 = function() {
395
- return annotate([ops.primitive, text()], location());
395
+ var peg$f20 = function(identifier, port) {
396
+ const portText = port ? `:${port[1]}` : "";
397
+ const hostText = identifier + portText;
398
+ return annotate([ops.primitive, hostText], location());
396
399
  };
397
400
  var peg$f21 = function(chars) { return chars.join(""); };
398
401
  var peg$f22 = function(list) {
@@ -409,35 +412,35 @@ function peg$parse(input, options) {
409
412
  return annotate([ops.lambda, null, expr], location());
410
413
  };
411
414
  var peg$f26 = function(path) {
412
- return annotate(path, location());
413
- };
414
- var peg$f27 = function() {
415
- return annotate([""], location());
415
+ return annotate(path ?? [], location());
416
416
  };
417
- var peg$f28 = function(list) {
417
+ var peg$f27 = function(list) {
418
418
  return annotate(list, location());
419
419
  };
420
- var peg$f29 = function() { return null; };
421
- var peg$f30 = function(entries) {
420
+ var peg$f28 = function() { return null; };
421
+ var peg$f29 = function(entries) {
422
422
  return annotate(makeObject(entries ?? [], ops.object), location());
423
423
  };
424
- var peg$f31 = function(entries) {
424
+ var peg$f30 = function(entries) {
425
425
  return annotate(entries, location());
426
426
  };
427
- var peg$f32 = function(key, value) {
427
+ var peg$f31 = function(key, value) {
428
428
  return annotate([key, [ops.getter, value]], location());
429
429
  };
430
- var peg$f33 = function(hiddenKey) { return hiddenKey.join(""); };
431
- var peg$f34 = function(string) {
432
- // Remove `ops.primitive` from the string code
433
- return string[1];
434
- };
435
- var peg$f35 = function(key, value) {
430
+ var peg$f32 = function(hiddenKey) { return hiddenKey.join(""); };
431
+ var peg$f33 = function(key, value) {
436
432
  return annotate([key, value], location());
437
433
  };
438
- var peg$f36 = function(key) {
434
+ var peg$f34 = function(key) {
439
435
  return annotate([key, [ops.inherited, key]], location());
440
436
  };
437
+ var peg$f35 = function(identifier, slash) {
438
+ return identifier + (slash ?? "");
439
+ };
440
+ var peg$f36 = function(string) {
441
+ // Remove `ops.primitive` from the string code
442
+ return string[1];
443
+ };
441
444
  var peg$f37 = function(parameters, expr) {
442
445
  return annotate([ops.lambda, parameters ?? [], expr], location());
443
446
  };
@@ -447,52 +450,63 @@ function peg$parse(input, options) {
447
450
  var peg$f39 = function(steps) {
448
451
  return annotate(makePipeline(steps), location());
449
452
  };
450
- var peg$f40 = function(path) {
453
+ var peg$f40 = function(head, tail) {
454
+ let path = tail ? [...head, tail] : head;
455
+ // Remove parts for consecutive slashes
456
+ path = path.filter((part) => part[1] !== "/");
451
457
  return annotate(path, location());
452
458
  };
453
459
  var peg$f41 = function(chars) {
460
+ return annotate([ops.primitive, chars.join("") + "/"], location());
461
+ };
462
+ var peg$f42 = function(chars) {
454
463
  return annotate([ops.primitive, chars.join("")], location());
455
464
  };
456
- var peg$f42 = function(protocol, host, path) {
465
+ var peg$f43 = function(protocol, host, path) {
457
466
  return annotate([protocol, host, ...(path ?? [])], location());
458
467
  };
459
- var peg$f43 = function() { return ops.https; };
460
- var peg$f44 = function() { return ops.http; };
461
- var peg$f45 = function() { return ops.constructor; };
462
- var peg$f46 = function() { return [ops.scope, "@package"] };
463
- var peg$f47 = function() { return ops.treeHttps; };
464
- var peg$f48 = function() { return ops.treeHttp; };
468
+ var peg$f44 = function() { return ops.openSite; };
469
+ var peg$f45 = function() { return ops.https; };
470
+ var peg$f46 = function() { return ops.http; };
471
+ var peg$f47 = function() { return ops.constructor; };
472
+ var peg$f48 = function() { return [ops.scope, "@package"] };
465
473
  var peg$f49 = function() { return ops.treeHttps; };
466
- var peg$f50 = function(key) {
474
+ var peg$f50 = function() { return ops.treeHttp; };
475
+ var peg$f51 = function() { return ops.treeHttps; };
476
+ var peg$f52 = function(key) {
467
477
  return annotate([ops.scope, key], location());
468
478
  };
469
- var peg$f51 = function() { return null; };
470
- var peg$f52 = function() { return null; };
471
- var peg$f53 = function(chars) {
479
+ var peg$f53 = function(ref, path) {
480
+ const head = [ops.scope, `${ ref[1] }/`];
481
+ return annotate([ops.traverse, head, ...path], location());
482
+ };
483
+ var peg$f54 = function() { return null; };
484
+ var peg$f55 = function() { return null; };
485
+ var peg$f56 = function(chars) {
472
486
  return annotate([ops.primitive, chars.join("")], location());
473
487
  };
474
- var peg$f54 = function(expr) {
488
+ var peg$f57 = function(expr) {
475
489
  return annotate([ops.spread, expr], location());
476
490
  };
477
- var peg$f55 = function(contents) {
491
+ var peg$f58 = function(contents) {
478
492
  return annotate([ops.lambda, null, contents], location());
479
493
  };
480
- var peg$f56 = function(parts) {
494
+ var peg$f59 = function(parts) {
481
495
  return annotate(makeTemplate(parts), location());
482
496
  };
483
- var peg$f57 = function(chars) {
497
+ var peg$f60 = function(chars) {
484
498
  return annotate([ops.primitive, chars.join("")], location());
485
499
  };
486
- var peg$f58 = function(contents) {
500
+ var peg$f61 = function(contents) {
487
501
  return annotate(contents, location());
488
502
  };
489
- var peg$f59 = function(parts) {
503
+ var peg$f62 = function(parts) {
490
504
  return annotate(makeTemplate(parts), location());
491
505
  };
492
- var peg$f60 = function(chars) {
506
+ var peg$f63 = function(chars) {
493
507
  return annotate([ops.primitive, chars.join("")], location());
494
508
  };
495
- var peg$f61 = function(expr) {
509
+ var peg$f64 = function(expr) {
496
510
  return annotate(expr, location());
497
511
  };
498
512
  var peg$currPos = options.peg$currPos | 0;
@@ -865,7 +879,10 @@ function peg$parse(input, options) {
865
879
  if (s0 === peg$FAILED) {
866
880
  s0 = peg$parsegroup();
867
881
  if (s0 === peg$FAILED) {
868
- s0 = peg$parsescopeReference();
882
+ s0 = peg$parsescopeTraverse();
883
+ if (s0 === peg$FAILED) {
884
+ s0 = peg$parsescopeReference();
885
+ }
869
886
  }
870
887
  }
871
888
  }
@@ -1554,8 +1571,7 @@ function peg$parse(input, options) {
1554
1571
  if (s3 !== peg$FAILED) {
1555
1572
  s4 = peg$parsenumber();
1556
1573
  if (s4 !== peg$FAILED) {
1557
- s3 = [s3, s4];
1558
- s2 = s3;
1574
+ s2 = s4;
1559
1575
  } else {
1560
1576
  peg$currPos = s2;
1561
1577
  s2 = peg$FAILED;
@@ -1568,7 +1584,7 @@ function peg$parse(input, options) {
1568
1584
  s2 = null;
1569
1585
  }
1570
1586
  peg$savedPos = s0;
1571
- s0 = peg$f20();
1587
+ s0 = peg$f20(s1, s2);
1572
1588
  } else {
1573
1589
  peg$currPos = s0;
1574
1590
  s0 = peg$FAILED;
@@ -1869,21 +1885,6 @@ function peg$parse(input, options) {
1869
1885
  peg$currPos = s0;
1870
1886
  s0 = peg$FAILED;
1871
1887
  }
1872
- if (s0 === peg$FAILED) {
1873
- s0 = peg$currPos;
1874
- if (input.charCodeAt(peg$currPos) === 47) {
1875
- s1 = peg$c26;
1876
- peg$currPos++;
1877
- } else {
1878
- s1 = peg$FAILED;
1879
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
1880
- }
1881
- if (s1 !== peg$FAILED) {
1882
- peg$savedPos = s0;
1883
- s1 = peg$f27();
1884
- }
1885
- s0 = s1;
1886
- }
1887
1888
  peg$silentFails--;
1888
1889
  if (s0 === peg$FAILED) {
1889
1890
  s1 = peg$FAILED;
@@ -1929,7 +1930,7 @@ function peg$parse(input, options) {
1929
1930
  s2 = null;
1930
1931
  }
1931
1932
  peg$savedPos = s0;
1932
- s0 = peg$f28(s1);
1933
+ s0 = peg$f27(s1);
1933
1934
  } else {
1934
1935
  peg$currPos = s0;
1935
1936
  s0 = peg$FAILED;
@@ -2040,7 +2041,7 @@ function peg$parse(input, options) {
2040
2041
  }
2041
2042
  if (s3 !== peg$FAILED) {
2042
2043
  peg$savedPos = s0;
2043
- s0 = peg$f29();
2044
+ s0 = peg$f28();
2044
2045
  } else {
2045
2046
  peg$currPos = s0;
2046
2047
  s0 = peg$FAILED;
@@ -2124,7 +2125,7 @@ function peg$parse(input, options) {
2124
2125
  s5 = peg$parseclosingBrace();
2125
2126
  if (s5 !== peg$FAILED) {
2126
2127
  peg$savedPos = s0;
2127
- s0 = peg$f30(s3);
2128
+ s0 = peg$f29(s3);
2128
2129
  } else {
2129
2130
  peg$currPos = s0;
2130
2131
  s0 = peg$FAILED;
@@ -2177,7 +2178,7 @@ function peg$parse(input, options) {
2177
2178
  s2 = null;
2178
2179
  }
2179
2180
  peg$savedPos = s0;
2180
- s0 = peg$f31(s1);
2181
+ s0 = peg$f30(s1);
2181
2182
  } else {
2182
2183
  peg$currPos = s0;
2183
2184
  s0 = peg$FAILED;
@@ -2223,7 +2224,7 @@ function peg$parse(input, options) {
2223
2224
  s5 = peg$parsepipeline();
2224
2225
  if (s5 !== peg$FAILED) {
2225
2226
  peg$savedPos = s0;
2226
- s0 = peg$f32(s1, s5);
2227
+ s0 = peg$f31(s1, s5);
2227
2228
  } else {
2228
2229
  peg$currPos = s0;
2229
2230
  s0 = peg$FAILED;
@@ -2284,7 +2285,7 @@ function peg$parse(input, options) {
2284
2285
  }
2285
2286
  if (s1 !== peg$FAILED) {
2286
2287
  peg$savedPos = s0;
2287
- s1 = peg$f33(s1);
2288
+ s1 = peg$f32(s1);
2288
2289
  }
2289
2290
  s0 = s1;
2290
2291
 
@@ -2308,23 +2309,6 @@ function peg$parse(input, options) {
2308
2309
  return s0;
2309
2310
  }
2310
2311
 
2311
- function peg$parseobjectPublicKey() {
2312
- var s0, s1;
2313
-
2314
- s0 = peg$parseidentifier();
2315
- if (s0 === peg$FAILED) {
2316
- s0 = peg$currPos;
2317
- s1 = peg$parsestring();
2318
- if (s1 !== peg$FAILED) {
2319
- peg$savedPos = s0;
2320
- s1 = peg$f34(s1);
2321
- }
2322
- s0 = s1;
2323
- }
2324
-
2325
- return s0;
2326
- }
2327
-
2328
2312
  function peg$parseobjectProperty() {
2329
2313
  var s0, s1, s2, s3, s4, s5;
2330
2314
 
@@ -2345,7 +2329,7 @@ function peg$parse(input, options) {
2345
2329
  s5 = peg$parsepipeline();
2346
2330
  if (s5 !== peg$FAILED) {
2347
2331
  peg$savedPos = s0;
2348
- s0 = peg$f35(s1, s5);
2332
+ s0 = peg$f33(s1, s5);
2349
2333
  } else {
2350
2334
  peg$currPos = s0;
2351
2335
  s0 = peg$FAILED;
@@ -2375,7 +2359,7 @@ function peg$parse(input, options) {
2375
2359
  s1 = peg$parseobjectPublicKey();
2376
2360
  if (s1 !== peg$FAILED) {
2377
2361
  peg$savedPos = s0;
2378
- s1 = peg$f36(s1);
2362
+ s1 = peg$f34(s1);
2379
2363
  }
2380
2364
  s0 = s1;
2381
2365
  peg$silentFails--;
@@ -2387,6 +2371,41 @@ function peg$parse(input, options) {
2387
2371
  return s0;
2388
2372
  }
2389
2373
 
2374
+ function peg$parseobjectPublicKey() {
2375
+ var s0, s1, s2;
2376
+
2377
+ s0 = peg$currPos;
2378
+ s1 = peg$parseidentifier();
2379
+ if (s1 !== peg$FAILED) {
2380
+ if (input.charCodeAt(peg$currPos) === 47) {
2381
+ s2 = peg$c26;
2382
+ peg$currPos++;
2383
+ } else {
2384
+ s2 = peg$FAILED;
2385
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
2386
+ }
2387
+ if (s2 === peg$FAILED) {
2388
+ s2 = null;
2389
+ }
2390
+ peg$savedPos = s0;
2391
+ s0 = peg$f35(s1, s2);
2392
+ } else {
2393
+ peg$currPos = s0;
2394
+ s0 = peg$FAILED;
2395
+ }
2396
+ if (s0 === peg$FAILED) {
2397
+ s0 = peg$currPos;
2398
+ s1 = peg$parsestring();
2399
+ if (s1 !== peg$FAILED) {
2400
+ peg$savedPos = s0;
2401
+ s1 = peg$f36(s1);
2402
+ }
2403
+ s0 = s1;
2404
+ }
2405
+
2406
+ return s0;
2407
+ }
2408
+
2390
2409
  function peg$parseparameterizedLambda() {
2391
2410
  var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
2392
2411
 
@@ -2543,39 +2562,22 @@ function peg$parse(input, options) {
2543
2562
  }
2544
2563
 
2545
2564
  function peg$parsepath() {
2546
- var s0, s1, s2, s3, s4;
2565
+ var s0, s1, s2;
2547
2566
 
2548
2567
  peg$silentFails++;
2549
2568
  s0 = peg$currPos;
2550
- s1 = peg$currPos;
2551
- s2 = [];
2552
- s3 = peg$parsepathKey();
2553
- while (s3 !== peg$FAILED) {
2554
- s2.push(s3);
2555
- s3 = peg$currPos;
2556
- if (input.charCodeAt(peg$currPos) === 47) {
2557
- s4 = peg$c26;
2558
- peg$currPos++;
2559
- } else {
2560
- s4 = peg$FAILED;
2561
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
2562
- }
2563
- if (s4 !== peg$FAILED) {
2564
- s4 = peg$parsepathKey();
2565
- s3 = s4;
2566
- } else {
2567
- s3 = s4;
2568
- }
2569
+ s1 = [];
2570
+ s2 = peg$parsepathElement();
2571
+ while (s2 !== peg$FAILED) {
2572
+ s1.push(s2);
2573
+ s2 = peg$parsepathElement();
2569
2574
  }
2570
- if (s2.length < 1) {
2571
- peg$currPos = s1;
2572
- s1 = peg$FAILED;
2573
- } else {
2574
- s1 = s2;
2575
+ s2 = peg$parsepathTail();
2576
+ if (s2 === peg$FAILED) {
2577
+ s2 = null;
2575
2578
  }
2576
2579
  peg$savedPos = s0;
2577
- s1 = peg$f40(s1);
2578
- s0 = s1;
2580
+ s0 = peg$f40(s1, s2);
2579
2581
  peg$silentFails--;
2580
2582
  s1 = peg$FAILED;
2581
2583
  if (peg$silentFails === 0) { peg$fail(peg$e63); }
@@ -2583,10 +2585,9 @@ function peg$parse(input, options) {
2583
2585
  return s0;
2584
2586
  }
2585
2587
 
2586
- function peg$parsepathKey() {
2588
+ function peg$parsepathElement() {
2587
2589
  var s0, s1, s2;
2588
2590
 
2589
- peg$silentFails++;
2590
2591
  s0 = peg$currPos;
2591
2592
  s1 = [];
2592
2593
  s2 = peg$parsepathKeyChar();
@@ -2594,12 +2595,20 @@ function peg$parse(input, options) {
2594
2595
  s1.push(s2);
2595
2596
  s2 = peg$parsepathKeyChar();
2596
2597
  }
2597
- peg$savedPos = s0;
2598
- s1 = peg$f41(s1);
2599
- s0 = s1;
2600
- peg$silentFails--;
2601
- s1 = peg$FAILED;
2602
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
2598
+ if (input.charCodeAt(peg$currPos) === 47) {
2599
+ s2 = peg$c26;
2600
+ peg$currPos++;
2601
+ } else {
2602
+ s2 = peg$FAILED;
2603
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
2604
+ }
2605
+ if (s2 !== peg$FAILED) {
2606
+ peg$savedPos = s0;
2607
+ s0 = peg$f41(s1);
2608
+ } else {
2609
+ peg$currPos = s0;
2610
+ s0 = peg$FAILED;
2611
+ }
2603
2612
 
2604
2613
  return s0;
2605
2614
  }
@@ -2612,7 +2621,7 @@ function peg$parse(input, options) {
2612
2621
  peg$currPos++;
2613
2622
  } else {
2614
2623
  s0 = peg$FAILED;
2615
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2624
+ if (peg$silentFails === 0) { peg$fail(peg$e64); }
2616
2625
  }
2617
2626
  if (s0 === peg$FAILED) {
2618
2627
  s0 = peg$parseescapedChar();
@@ -2621,6 +2630,29 @@ function peg$parse(input, options) {
2621
2630
  return s0;
2622
2631
  }
2623
2632
 
2633
+ function peg$parsepathTail() {
2634
+ var s0, s1, s2;
2635
+
2636
+ s0 = peg$currPos;
2637
+ s1 = [];
2638
+ s2 = peg$parsepathKeyChar();
2639
+ if (s2 !== peg$FAILED) {
2640
+ while (s2 !== peg$FAILED) {
2641
+ s1.push(s2);
2642
+ s2 = peg$parsepathKeyChar();
2643
+ }
2644
+ } else {
2645
+ s1 = peg$FAILED;
2646
+ }
2647
+ if (s1 !== peg$FAILED) {
2648
+ peg$savedPos = s0;
2649
+ s1 = peg$f42(s1);
2650
+ }
2651
+ s0 = s1;
2652
+
2653
+ return s0;
2654
+ }
2655
+
2624
2656
  function peg$parseprotocolCall() {
2625
2657
  var s0, s1, s2, s3, s4, s5;
2626
2658
 
@@ -2665,7 +2697,7 @@ function peg$parse(input, options) {
2665
2697
  s5 = null;
2666
2698
  }
2667
2699
  peg$savedPos = s0;
2668
- s0 = peg$f42(s1, s4, s5);
2700
+ s0 = peg$f43(s1, s4, s5);
2669
2701
  } else {
2670
2702
  peg$currPos = s0;
2671
2703
  s0 = peg$FAILED;
@@ -2681,7 +2713,7 @@ function peg$parse(input, options) {
2681
2713
  peg$silentFails--;
2682
2714
  if (s0 === peg$FAILED) {
2683
2715
  s1 = peg$FAILED;
2684
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
2716
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2685
2717
  }
2686
2718
 
2687
2719
  return s0;
@@ -2698,7 +2730,7 @@ function peg$parse(input, options) {
2698
2730
  peg$silentFails--;
2699
2731
  if (s0 === peg$FAILED) {
2700
2732
  s1 = peg$FAILED;
2701
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
2733
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2702
2734
  }
2703
2735
 
2704
2736
  return s0;
@@ -2709,102 +2741,117 @@ function peg$parse(input, options) {
2709
2741
 
2710
2742
  peg$silentFails++;
2711
2743
  s0 = peg$currPos;
2712
- if (input.substr(peg$currPos, 5) === peg$c33) {
2744
+ if (input.substr(peg$currPos, 7) === peg$c33) {
2713
2745
  s1 = peg$c33;
2714
- peg$currPos += 5;
2746
+ peg$currPos += 7;
2715
2747
  } else {
2716
2748
  s1 = peg$FAILED;
2717
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
2749
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
2718
2750
  }
2719
2751
  if (s1 !== peg$FAILED) {
2720
2752
  peg$savedPos = s0;
2721
- s1 = peg$f43();
2753
+ s1 = peg$f44();
2722
2754
  }
2723
2755
  s0 = s1;
2724
2756
  if (s0 === peg$FAILED) {
2725
2757
  s0 = peg$currPos;
2726
- if (input.substr(peg$currPos, 4) === peg$c34) {
2758
+ if (input.substr(peg$currPos, 5) === peg$c34) {
2727
2759
  s1 = peg$c34;
2728
- peg$currPos += 4;
2760
+ peg$currPos += 5;
2729
2761
  } else {
2730
2762
  s1 = peg$FAILED;
2731
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
2763
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
2732
2764
  }
2733
2765
  if (s1 !== peg$FAILED) {
2734
2766
  peg$savedPos = s0;
2735
- s1 = peg$f44();
2767
+ s1 = peg$f45();
2736
2768
  }
2737
2769
  s0 = s1;
2738
2770
  if (s0 === peg$FAILED) {
2739
2771
  s0 = peg$currPos;
2740
- if (input.substr(peg$currPos, 3) === peg$c35) {
2772
+ if (input.substr(peg$currPos, 4) === peg$c35) {
2741
2773
  s1 = peg$c35;
2742
- peg$currPos += 3;
2774
+ peg$currPos += 4;
2743
2775
  } else {
2744
2776
  s1 = peg$FAILED;
2745
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
2777
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
2746
2778
  }
2747
2779
  if (s1 !== peg$FAILED) {
2748
2780
  peg$savedPos = s0;
2749
- s1 = peg$f45();
2781
+ s1 = peg$f46();
2750
2782
  }
2751
2783
  s0 = s1;
2752
2784
  if (s0 === peg$FAILED) {
2753
2785
  s0 = peg$currPos;
2754
- if (input.substr(peg$currPos, 7) === peg$c36) {
2786
+ if (input.substr(peg$currPos, 3) === peg$c36) {
2755
2787
  s1 = peg$c36;
2756
- peg$currPos += 7;
2788
+ peg$currPos += 3;
2757
2789
  } else {
2758
2790
  s1 = peg$FAILED;
2759
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
2791
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
2760
2792
  }
2761
2793
  if (s1 !== peg$FAILED) {
2762
2794
  peg$savedPos = s0;
2763
- s1 = peg$f46();
2795
+ s1 = peg$f47();
2764
2796
  }
2765
2797
  s0 = s1;
2766
2798
  if (s0 === peg$FAILED) {
2767
2799
  s0 = peg$currPos;
2768
- if (input.substr(peg$currPos, 9) === peg$c37) {
2800
+ if (input.substr(peg$currPos, 7) === peg$c37) {
2769
2801
  s1 = peg$c37;
2770
- peg$currPos += 9;
2802
+ peg$currPos += 7;
2771
2803
  } else {
2772
2804
  s1 = peg$FAILED;
2773
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
2805
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
2774
2806
  }
2775
2807
  if (s1 !== peg$FAILED) {
2776
2808
  peg$savedPos = s0;
2777
- s1 = peg$f47();
2809
+ s1 = peg$f48();
2778
2810
  }
2779
2811
  s0 = s1;
2780
2812
  if (s0 === peg$FAILED) {
2781
2813
  s0 = peg$currPos;
2782
- if (input.substr(peg$currPos, 8) === peg$c38) {
2814
+ if (input.substr(peg$currPos, 4) === peg$c38) {
2783
2815
  s1 = peg$c38;
2784
- peg$currPos += 8;
2816
+ peg$currPos += 4;
2785
2817
  } else {
2786
2818
  s1 = peg$FAILED;
2787
- if (peg$silentFails === 0) { peg$fail(peg$e74); }
2819
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
2788
2820
  }
2789
2821
  if (s1 !== peg$FAILED) {
2790
2822
  peg$savedPos = s0;
2791
- s1 = peg$f48();
2823
+ s1 = peg$f49();
2792
2824
  }
2793
2825
  s0 = s1;
2794
2826
  if (s0 === peg$FAILED) {
2795
2827
  s0 = peg$currPos;
2796
- if (input.substr(peg$currPos, 4) === peg$c39) {
2828
+ if (input.substr(peg$currPos, 8) === peg$c39) {
2797
2829
  s1 = peg$c39;
2798
- peg$currPos += 4;
2830
+ peg$currPos += 8;
2799
2831
  } else {
2800
2832
  s1 = peg$FAILED;
2801
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
2833
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
2802
2834
  }
2803
2835
  if (s1 !== peg$FAILED) {
2804
2836
  peg$savedPos = s0;
2805
- s1 = peg$f49();
2837
+ s1 = peg$f50();
2806
2838
  }
2807
2839
  s0 = s1;
2840
+ if (s0 === peg$FAILED) {
2841
+ s0 = peg$currPos;
2842
+ if (input.substr(peg$currPos, 9) === peg$c40) {
2843
+ s1 = peg$c40;
2844
+ peg$currPos += 9;
2845
+ } else {
2846
+ s1 = peg$FAILED;
2847
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
2848
+ }
2849
+ if (s1 !== peg$FAILED) {
2850
+ peg$savedPos = s0;
2851
+ s1 = peg$f51();
2852
+ }
2853
+ s0 = s1;
2854
+ }
2808
2855
  }
2809
2856
  }
2810
2857
  }
@@ -2814,7 +2861,7 @@ function peg$parse(input, options) {
2814
2861
  peg$silentFails--;
2815
2862
  if (s0 === peg$FAILED) {
2816
2863
  s1 = peg$FAILED;
2817
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
2864
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
2818
2865
  }
2819
2866
 
2820
2867
  return s0;
@@ -2828,7 +2875,7 @@ function peg$parse(input, options) {
2828
2875
  s1 = peg$parseidentifier();
2829
2876
  if (s1 !== peg$FAILED) {
2830
2877
  peg$savedPos = s0;
2831
- s1 = peg$f50(s1);
2878
+ s1 = peg$f52(s1);
2832
2879
  }
2833
2880
  s0 = s1;
2834
2881
  peg$silentFails--;
@@ -2840,13 +2887,42 @@ function peg$parse(input, options) {
2840
2887
  return s0;
2841
2888
  }
2842
2889
 
2890
+ function peg$parsescopeTraverse() {
2891
+ var s0, s1, s2, s3;
2892
+
2893
+ s0 = peg$currPos;
2894
+ s1 = peg$parsescopeReference();
2895
+ if (s1 !== peg$FAILED) {
2896
+ if (input.charCodeAt(peg$currPos) === 47) {
2897
+ s2 = peg$c26;
2898
+ peg$currPos++;
2899
+ } else {
2900
+ s2 = peg$FAILED;
2901
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
2902
+ }
2903
+ if (s2 !== peg$FAILED) {
2904
+ s3 = peg$parsepath();
2905
+ peg$savedPos = s0;
2906
+ s0 = peg$f53(s1, s3);
2907
+ } else {
2908
+ peg$currPos = s0;
2909
+ s0 = peg$FAILED;
2910
+ }
2911
+ } else {
2912
+ peg$currPos = s0;
2913
+ s0 = peg$FAILED;
2914
+ }
2915
+
2916
+ return s0;
2917
+ }
2918
+
2843
2919
  function peg$parseseparator() {
2844
2920
  var s0, s1, s2, s3;
2845
2921
 
2846
2922
  s0 = peg$currPos;
2847
2923
  s1 = peg$parse__();
2848
2924
  if (input.charCodeAt(peg$currPos) === 44) {
2849
- s2 = peg$c40;
2925
+ s2 = peg$c41;
2850
2926
  peg$currPos++;
2851
2927
  } else {
2852
2928
  s2 = peg$FAILED;
@@ -2871,8 +2947,8 @@ function peg$parse(input, options) {
2871
2947
  var s0, s1, s2, s3;
2872
2948
 
2873
2949
  s0 = peg$currPos;
2874
- if (input.substr(peg$currPos, 2) === peg$c41) {
2875
- s1 = peg$c41;
2950
+ if (input.substr(peg$currPos, 2) === peg$c42) {
2951
+ s1 = peg$c42;
2876
2952
  peg$currPos += 2;
2877
2953
  } else {
2878
2954
  s1 = peg$FAILED;
@@ -2898,7 +2974,7 @@ function peg$parse(input, options) {
2898
2974
  }
2899
2975
  }
2900
2976
  peg$savedPos = s0;
2901
- s0 = peg$f51();
2977
+ s0 = peg$f54();
2902
2978
  } else {
2903
2979
  peg$currPos = s0;
2904
2980
  s0 = peg$FAILED;
@@ -2925,15 +3001,15 @@ function peg$parse(input, options) {
2925
3001
  var s0;
2926
3002
 
2927
3003
  if (input.charCodeAt(peg$currPos) === 8594) {
2928
- s0 = peg$c42;
3004
+ s0 = peg$c43;
2929
3005
  peg$currPos++;
2930
3006
  } else {
2931
3007
  s0 = peg$FAILED;
2932
3008
  if (peg$silentFails === 0) { peg$fail(peg$e81); }
2933
3009
  }
2934
3010
  if (s0 === peg$FAILED) {
2935
- if (input.substr(peg$currPos, 2) === peg$c43) {
2936
- s0 = peg$c43;
3011
+ if (input.substr(peg$currPos, 2) === peg$c44) {
3012
+ s0 = peg$c44;
2937
3013
  peg$currPos += 2;
2938
3014
  } else {
2939
3015
  s0 = peg$FAILED;
@@ -2975,7 +3051,7 @@ function peg$parse(input, options) {
2975
3051
  }
2976
3052
  }
2977
3053
  peg$savedPos = s0;
2978
- s0 = peg$f52();
3054
+ s0 = peg$f55();
2979
3055
  } else {
2980
3056
  peg$currPos = s0;
2981
3057
  s0 = peg$FAILED;
@@ -2990,7 +3066,7 @@ function peg$parse(input, options) {
2990
3066
  peg$silentFails++;
2991
3067
  s0 = peg$currPos;
2992
3068
  if (input.charCodeAt(peg$currPos) === 39) {
2993
- s1 = peg$c44;
3069
+ s1 = peg$c45;
2994
3070
  peg$currPos++;
2995
3071
  } else {
2996
3072
  s1 = peg$FAILED;
@@ -3004,7 +3080,7 @@ function peg$parse(input, options) {
3004
3080
  s3 = peg$parsesingleQuoteStringChar();
3005
3081
  }
3006
3082
  if (input.charCodeAt(peg$currPos) === 39) {
3007
- s3 = peg$c44;
3083
+ s3 = peg$c45;
3008
3084
  peg$currPos++;
3009
3085
  } else {
3010
3086
  s3 = peg$FAILED;
@@ -3012,7 +3088,7 @@ function peg$parse(input, options) {
3012
3088
  }
3013
3089
  if (s3 !== peg$FAILED) {
3014
3090
  peg$savedPos = s0;
3015
- s0 = peg$f53(s2);
3091
+ s0 = peg$f56(s2);
3016
3092
  } else {
3017
3093
  peg$currPos = s0;
3018
3094
  s0 = peg$FAILED;
@@ -3037,7 +3113,7 @@ function peg$parse(input, options) {
3037
3113
  s1 = peg$currPos;
3038
3114
  peg$silentFails++;
3039
3115
  if (input.charCodeAt(peg$currPos) === 39) {
3040
- s2 = peg$c44;
3116
+ s2 = peg$c45;
3041
3117
  peg$currPos++;
3042
3118
  } else {
3043
3119
  s2 = peg$FAILED;
@@ -3078,7 +3154,7 @@ function peg$parse(input, options) {
3078
3154
  s2 = peg$parsepipeline();
3079
3155
  if (s2 !== peg$FAILED) {
3080
3156
  peg$savedPos = s0;
3081
- s0 = peg$f54(s2);
3157
+ s0 = peg$f57(s2);
3082
3158
  } else {
3083
3159
  peg$currPos = s0;
3084
3160
  s0 = peg$FAILED;
@@ -3167,7 +3243,7 @@ function peg$parse(input, options) {
3167
3243
  s0 = peg$currPos;
3168
3244
  s1 = peg$parsetemplateDocumentContents();
3169
3245
  peg$savedPos = s0;
3170
- s1 = peg$f55(s1);
3246
+ s1 = peg$f58(s1);
3171
3247
  s0 = s1;
3172
3248
  peg$silentFails--;
3173
3249
  s1 = peg$FAILED;
@@ -3182,8 +3258,8 @@ function peg$parse(input, options) {
3182
3258
  s0 = peg$currPos;
3183
3259
  s1 = peg$currPos;
3184
3260
  peg$silentFails++;
3185
- if (input.substr(peg$currPos, 2) === peg$c45) {
3186
- s2 = peg$c45;
3261
+ if (input.substr(peg$currPos, 2) === peg$c46) {
3262
+ s2 = peg$c46;
3187
3263
  peg$currPos += 2;
3188
3264
  } else {
3189
3265
  s2 = peg$FAILED;
@@ -3229,7 +3305,7 @@ function peg$parse(input, options) {
3229
3305
  }
3230
3306
  }
3231
3307
  peg$savedPos = s0;
3232
- s1 = peg$f56(s1);
3308
+ s1 = peg$f59(s1);
3233
3309
  s0 = s1;
3234
3310
 
3235
3311
  return s0;
@@ -3252,7 +3328,7 @@ function peg$parse(input, options) {
3252
3328
  }
3253
3329
  if (s1 !== peg$FAILED) {
3254
3330
  peg$savedPos = s0;
3255
- s1 = peg$f57(s1);
3331
+ s1 = peg$f60(s1);
3256
3332
  }
3257
3333
  s0 = s1;
3258
3334
  peg$silentFails--;
@@ -3270,7 +3346,7 @@ function peg$parse(input, options) {
3270
3346
  peg$silentFails++;
3271
3347
  s0 = peg$currPos;
3272
3348
  if (input.charCodeAt(peg$currPos) === 96) {
3273
- s1 = peg$c46;
3349
+ s1 = peg$c47;
3274
3350
  peg$currPos++;
3275
3351
  } else {
3276
3352
  s1 = peg$FAILED;
@@ -3279,7 +3355,7 @@ function peg$parse(input, options) {
3279
3355
  if (s1 !== peg$FAILED) {
3280
3356
  s2 = peg$parsetemplateLiteralContents();
3281
3357
  if (input.charCodeAt(peg$currPos) === 96) {
3282
- s3 = peg$c46;
3358
+ s3 = peg$c47;
3283
3359
  peg$currPos++;
3284
3360
  } else {
3285
3361
  s3 = peg$FAILED;
@@ -3287,7 +3363,7 @@ function peg$parse(input, options) {
3287
3363
  }
3288
3364
  if (s3 !== peg$FAILED) {
3289
3365
  peg$savedPos = s0;
3290
- s0 = peg$f58(s2);
3366
+ s0 = peg$f61(s2);
3291
3367
  } else {
3292
3368
  peg$currPos = s0;
3293
3369
  s0 = peg$FAILED;
@@ -3312,15 +3388,15 @@ function peg$parse(input, options) {
3312
3388
  s1 = peg$currPos;
3313
3389
  peg$silentFails++;
3314
3390
  if (input.charCodeAt(peg$currPos) === 96) {
3315
- s2 = peg$c46;
3391
+ s2 = peg$c47;
3316
3392
  peg$currPos++;
3317
3393
  } else {
3318
3394
  s2 = peg$FAILED;
3319
3395
  if (peg$silentFails === 0) { peg$fail(peg$e90); }
3320
3396
  }
3321
3397
  if (s2 === peg$FAILED) {
3322
- if (input.substr(peg$currPos, 2) === peg$c45) {
3323
- s2 = peg$c45;
3398
+ if (input.substr(peg$currPos, 2) === peg$c46) {
3399
+ s2 = peg$c46;
3324
3400
  peg$currPos += 2;
3325
3401
  } else {
3326
3402
  s2 = peg$FAILED;
@@ -3367,7 +3443,7 @@ function peg$parse(input, options) {
3367
3443
  }
3368
3444
  }
3369
3445
  peg$savedPos = s0;
3370
- s1 = peg$f59(s1);
3446
+ s1 = peg$f62(s1);
3371
3447
  s0 = s1;
3372
3448
 
3373
3449
  return s0;
@@ -3389,7 +3465,7 @@ function peg$parse(input, options) {
3389
3465
  }
3390
3466
  if (s1 !== peg$FAILED) {
3391
3467
  peg$savedPos = s0;
3392
- s1 = peg$f60(s1);
3468
+ s1 = peg$f63(s1);
3393
3469
  }
3394
3470
  s0 = s1;
3395
3471
 
@@ -3401,8 +3477,8 @@ function peg$parse(input, options) {
3401
3477
 
3402
3478
  peg$silentFails++;
3403
3479
  s0 = peg$currPos;
3404
- if (input.substr(peg$currPos, 2) === peg$c45) {
3405
- s1 = peg$c45;
3480
+ if (input.substr(peg$currPos, 2) === peg$c46) {
3481
+ s1 = peg$c46;
3406
3482
  peg$currPos += 2;
3407
3483
  } else {
3408
3484
  s1 = peg$FAILED;
@@ -3422,7 +3498,7 @@ function peg$parse(input, options) {
3422
3498
  }
3423
3499
  if (s5 !== peg$FAILED) {
3424
3500
  peg$savedPos = s0;
3425
- s0 = peg$f61(s3);
3501
+ s0 = peg$f64(s3);
3426
3502
  } else {
3427
3503
  peg$currPos = s0;
3428
3504
  s0 = peg$FAILED;
@@ -3560,19 +3636,21 @@ const peg$allowedStartRules = [
3560
3636
  "objectGetter",
3561
3637
  "objectHiddenKey",
3562
3638
  "objectKey",
3563
- "objectPublicKey",
3564
3639
  "objectProperty",
3565
3640
  "objectShorthandProperty",
3641
+ "objectPublicKey",
3566
3642
  "parameterizedLambda",
3567
3643
  "parensArgs",
3568
3644
  "pipeline",
3569
3645
  "path",
3570
- "pathKey",
3646
+ "pathElement",
3571
3647
  "pathKeyChar",
3648
+ "pathTail",
3572
3649
  "protocolCall",
3573
3650
  "protocol",
3574
3651
  "reservedProtocol",
3575
3652
  "scopeReference",
3653
+ "scopeTraverse",
3576
3654
  "separator",
3577
3655
  "shebang",
3578
3656
  "sign",