@weborigami/language 0.0.68 → 0.0.70

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.
@@ -18,6 +18,7 @@ import {
18
18
  makeFunctionCall,
19
19
  makeObject,
20
20
  makePipeline,
21
+ makeProperty,
21
22
  makeTemplate
22
23
  } from "./parserHelpers.js";
23
24
 
@@ -191,7 +192,7 @@ function peg$parse(input, options) {
191
192
  var peg$FAILED = {};
192
193
  var peg$source = options.grammarSource;
193
194
 
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
+ 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, taggedTemplate: peg$parsetaggedTemplate, 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
196
  var peg$startRuleFunction = peg$parse__;
196
197
 
197
198
  var peg$c0 = "//";
@@ -240,8 +241,8 @@ function peg$parse(input, options) {
240
241
  var peg$c43 = "\u2192";
241
242
  var peg$c44 = "->";
242
243
  var peg$c45 = "'";
243
- var peg$c46 = "${";
244
- var peg$c47 = "`";
244
+ var peg$c46 = "`";
245
+ var peg$c47 = "${";
245
246
 
246
247
  var peg$r0 = /^[0-9]/;
247
248
  var peg$r1 = /^[^(){}[\]<>\-=,\/:`"'\xAB\xBB\\ \u2192\u21D2\t\n\r]/;
@@ -336,11 +337,11 @@ function peg$parse(input, options) {
336
337
  var peg$e83 = peg$otherExpectation("single quote string");
337
338
  var peg$e84 = peg$literalExpectation("'", false);
338
339
  var peg$e85 = peg$otherExpectation("string");
339
- var peg$e86 = peg$otherExpectation("template");
340
- var peg$e87 = peg$literalExpectation("${", false);
341
- var peg$e88 = peg$otherExpectation("template text");
342
- var peg$e89 = peg$otherExpectation("template literal");
343
- var peg$e90 = peg$literalExpectation("`", false);
340
+ var peg$e86 = peg$literalExpectation("`", false);
341
+ var peg$e87 = peg$otherExpectation("template");
342
+ var peg$e88 = peg$literalExpectation("${", false);
343
+ var peg$e89 = peg$otherExpectation("template text");
344
+ var peg$e90 = peg$otherExpectation("template literal");
344
345
  var peg$e91 = peg$otherExpectation("template substitution");
345
346
 
346
347
  var peg$f0 = function() {
@@ -368,7 +369,7 @@ function peg$parse(input, options) {
368
369
  error("Expected right parenthesis");
369
370
  };
370
371
  var peg$f8 = function(chars) {
371
- return annotate([ops.primitive, chars.join("")], location());
372
+ return annotate([ops.literal, chars.join("")], location());
372
373
  };
373
374
  var peg$f9 = function() { return "\0"; };
374
375
  var peg$f10 = function() { return "\b"; };
@@ -378,7 +379,7 @@ function peg$parse(input, options) {
378
379
  var peg$f14 = function() { return "\t"; };
379
380
  var peg$f15 = function() { return "\v"; };
380
381
  var peg$f16 = function() {
381
- return annotate([ops.primitive, parseFloat(text())], location());
382
+ return annotate([ops.literal, parseFloat(text())], location());
382
383
  };
383
384
  var peg$f17 = function(target, chain, end) {
384
385
  if (end) {
@@ -386,128 +387,132 @@ function peg$parse(input, options) {
386
387
  }
387
388
  return annotate(makeFunctionCall(target, chain, location()), location());
388
389
  };
389
- var peg$f18 = function(expr) {
390
+ var peg$f18 = function(target, chain, end) {
391
+ if (end) {
392
+ chain.push(end);
393
+ }
394
+ return annotate(makeFunctionCall(target, chain, location()), location());
395
+ };
396
+ var peg$f19 = function(expr) {
390
397
  return annotate(expr, location());
391
398
  };
392
- var peg$f19 = function(chars) {
393
- return annotate([ops.primitive, chars.join("")], location());
399
+ var peg$f20 = function(chars) {
400
+ return annotate([ops.literal, chars.join("")], location());
394
401
  };
395
- var peg$f20 = function(identifier, port) {
402
+ var peg$f21 = function(identifier, port) {
396
403
  const portText = port ? `:${port[1]}` : "";
397
404
  const hostText = identifier + portText;
398
- return annotate([ops.primitive, hostText], location());
405
+ return annotate([ops.literal, hostText], location());
399
406
  };
400
- var peg$f21 = function(chars) { return chars.join(""); };
401
- var peg$f22 = function(list) {
407
+ var peg$f22 = function(chars) { return chars.join(""); };
408
+ var peg$f23 = function(list) {
402
409
  return annotate(list, location());
403
410
  };
404
- var peg$f23 = function(args) {
411
+ var peg$f24 = function(args) {
405
412
  /* Stuff */
406
413
  return annotate(args, location());
407
414
  };
408
- var peg$f24 = function() {
409
- return annotate([ops.primitive, parseInt(text())], location());
415
+ var peg$f25 = function() {
416
+ return annotate([ops.literal, parseInt(text())], location());
410
417
  };
411
- var peg$f25 = function(expr) {
418
+ var peg$f26 = function(expr) {
412
419
  return annotate([ops.lambda, null, expr], location());
413
420
  };
414
- var peg$f26 = function(path) {
421
+ var peg$f27 = function(path) {
415
422
  return annotate(path ?? [], location());
416
423
  };
417
- var peg$f27 = function(list) {
424
+ var peg$f28 = function(list) {
418
425
  return annotate(list, location());
419
426
  };
420
- var peg$f28 = function() { return null; };
421
- var peg$f29 = function(entries) {
427
+ var peg$f29 = function() { return null; };
428
+ var peg$f30 = function(entries) {
422
429
  return annotate(makeObject(entries ?? [], ops.object), location());
423
430
  };
424
- var peg$f30 = function(entries) {
431
+ var peg$f31 = function(entries) {
425
432
  return annotate(entries, location());
426
433
  };
427
- var peg$f31 = function(key, value) {
428
- return annotate([key, [ops.getter, value]], location());
434
+ var peg$f32 = function(key, value) {
435
+ return annotate(makeProperty(key, [ops.getter, value]), location());
429
436
  };
430
- var peg$f32 = function(hiddenKey) { return hiddenKey.join(""); };
431
- var peg$f33 = function(key, value) {
432
- return annotate([key, value], location());
437
+ var peg$f33 = function(hiddenKey) { return hiddenKey.join(""); };
438
+ var peg$f34 = function(key, value) {
439
+ return annotate(makeProperty(key, value), location());
433
440
  };
434
- var peg$f34 = function(key) {
441
+ var peg$f35 = function(key) {
435
442
  return annotate([key, [ops.inherited, key]], location());
436
443
  };
437
- var peg$f35 = function(identifier, slash) {
444
+ var peg$f36 = function(identifier, slash) {
438
445
  return identifier + (slash ?? "");
439
446
  };
440
- var peg$f36 = function(string) {
441
- // Remove `ops.primitive` from the string code
447
+ var peg$f37 = function(string) {
448
+ // Remove `ops.literal` from the string code
442
449
  return string[1];
443
450
  };
444
- var peg$f37 = function(parameters, expr) {
451
+ var peg$f38 = function(parameters, expr) {
445
452
  return annotate([ops.lambda, parameters ?? [], expr], location());
446
453
  };
447
- var peg$f38 = function(list) {
454
+ var peg$f39 = function(list) {
448
455
  return annotate(list ?? [undefined], location());
449
456
  };
450
- var peg$f39 = function(steps) {
457
+ var peg$f40 = function(steps) {
451
458
  return annotate(makePipeline(steps), location());
452
459
  };
453
- var peg$f40 = function(head, tail) {
460
+ var peg$f41 = function(head, tail) {
454
461
  let path = tail ? [...head, tail] : head;
455
462
  // Remove parts for consecutive slashes
456
463
  path = path.filter((part) => part[1] !== "/");
457
464
  return annotate(path, location());
458
465
  };
459
- var peg$f41 = function(chars) {
460
- return annotate([ops.primitive, chars.join("") + "/"], location());
461
- };
462
466
  var peg$f42 = function(chars) {
463
- return annotate([ops.primitive, chars.join("")], location());
467
+ return annotate([ops.literal, chars.join("") + "/"], location());
468
+ };
469
+ var peg$f43 = function(chars) {
470
+ return annotate([ops.literal, chars.join("")], location());
464
471
  };
465
- var peg$f43 = function(protocol, host, path) {
472
+ var peg$f44 = function(protocol, host, path) {
466
473
  return annotate([protocol, host, ...(path ?? [])], location());
467
474
  };
468
- var peg$f44 = function() { return ops.explorableSite; };
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"] };
473
- var peg$f49 = function() { return ops.treeHttps; };
474
- var peg$f50 = function() { return ops.treeHttp; };
475
- var peg$f51 = function() { return ops.treeHttps; };
476
- var peg$f52 = function(key) {
475
+ var peg$f45 = function() { return ops.explorableSite; };
476
+ var peg$f46 = function() { return ops.https; };
477
+ var peg$f47 = function() { return ops.http; };
478
+ var peg$f48 = function() { return ops.constructor; };
479
+ var peg$f49 = function() { return [ops.scope, "@package"] };
480
+ var peg$f50 = function() { return ops.treeHttps; };
481
+ var peg$f51 = function() { return ops.treeHttp; };
482
+ var peg$f52 = function() { return ops.treeHttps; };
483
+ var peg$f53 = function(key) {
477
484
  return annotate([ops.scope, key], location());
478
485
  };
479
- var peg$f53 = function(ref, path) {
486
+ var peg$f54 = function(ref, path) {
480
487
  const head = [ops.scope, `${ ref[1] }/`];
488
+ head.location = ref.location;
481
489
  return annotate([ops.traverse, head, ...path], location());
482
490
  };
483
- var peg$f54 = function() { return null; };
484
491
  var peg$f55 = function() { return null; };
485
- var peg$f56 = function(chars) {
486
- return annotate([ops.primitive, chars.join("")], location());
492
+ var peg$f56 = function() { return null; };
493
+ var peg$f57 = function(chars) {
494
+ return annotate([ops.literal, chars.join("")], location());
487
495
  };
488
- var peg$f57 = function(expr) {
496
+ var peg$f58 = function(expr) {
489
497
  return annotate([ops.spread, expr], location());
490
498
  };
491
- var peg$f58 = function(contents) {
499
+ var peg$f59 = function(tag, contents) {
500
+ return annotate(makeTemplate(tag, contents[0], contents[1]), location());
501
+ };
502
+ var peg$f60 = function(contents) {
492
503
  return annotate([ops.lambda, null, contents], location());
493
504
  };
494
- var peg$f59 = function(parts) {
495
- return annotate(makeTemplate(parts), location());
505
+ var peg$f61 = function(head, tail) {
506
+ return annotate(makeTemplate(ops.template, head, tail), location());
496
507
  };
497
- var peg$f60 = function(chars) {
498
- return annotate([ops.primitive, chars.join("")], location());
499
- };
500
- var peg$f61 = function(contents) {
501
- return annotate(contents, location());
508
+ var peg$f62 = function(chars) {
509
+ return chars.join("");
502
510
  };
503
- var peg$f62 = function(parts) {
504
- return annotate(makeTemplate(parts), location());
511
+ var peg$f63 = function(contents) {
512
+ return annotate(makeTemplate(ops.template, contents[0], contents[1]), location());
505
513
  };
506
- var peg$f63 = function(chars) {
507
- return annotate([ops.primitive, chars.join("")], location());
508
- };
509
- var peg$f64 = function(expr) {
510
- return annotate(expr, location());
514
+ var peg$f64 = function(chars) {
515
+ return chars.join("");
511
516
  };
512
517
  var peg$currPos = options.peg$currPos | 0;
513
518
  var peg$savedPos = peg$currPos;
@@ -1403,20 +1408,52 @@ function peg$parse(input, options) {
1403
1408
  if (s1 !== peg$FAILED) {
1404
1409
  s2 = [];
1405
1410
  s3 = peg$parseargs();
1406
- while (s3 !== peg$FAILED) {
1407
- s2.push(s3);
1408
- s3 = peg$parseargs();
1411
+ if (s3 !== peg$FAILED) {
1412
+ while (s3 !== peg$FAILED) {
1413
+ s2.push(s3);
1414
+ s3 = peg$parseargs();
1415
+ }
1416
+ } else {
1417
+ s2 = peg$FAILED;
1409
1418
  }
1410
- s3 = peg$parseimplicitParensArgs();
1411
- if (s3 === peg$FAILED) {
1412
- s3 = null;
1419
+ if (s2 !== peg$FAILED) {
1420
+ s3 = peg$parseimplicitParensArgs();
1421
+ if (s3 === peg$FAILED) {
1422
+ s3 = null;
1423
+ }
1424
+ peg$savedPos = s0;
1425
+ s0 = peg$f17(s1, s2, s3);
1426
+ } else {
1427
+ peg$currPos = s0;
1428
+ s0 = peg$FAILED;
1413
1429
  }
1414
- peg$savedPos = s0;
1415
- s0 = peg$f17(s1, s2, s3);
1416
1430
  } else {
1417
1431
  peg$currPos = s0;
1418
1432
  s0 = peg$FAILED;
1419
1433
  }
1434
+ if (s0 === peg$FAILED) {
1435
+ s0 = peg$currPos;
1436
+ s1 = peg$parsecallTarget();
1437
+ if (s1 !== peg$FAILED) {
1438
+ s2 = [];
1439
+ s3 = peg$parseargs();
1440
+ while (s3 !== peg$FAILED) {
1441
+ s2.push(s3);
1442
+ s3 = peg$parseargs();
1443
+ }
1444
+ s3 = peg$parseimplicitParensArgs();
1445
+ if (s3 !== peg$FAILED) {
1446
+ peg$savedPos = s0;
1447
+ s0 = peg$f18(s1, s2, s3);
1448
+ } else {
1449
+ peg$currPos = s0;
1450
+ s0 = peg$FAILED;
1451
+ }
1452
+ } else {
1453
+ peg$currPos = s0;
1454
+ s0 = peg$FAILED;
1455
+ }
1456
+ }
1420
1457
  peg$silentFails--;
1421
1458
  if (s0 === peg$FAILED) {
1422
1459
  s1 = peg$FAILED;
@@ -1446,7 +1483,7 @@ function peg$parse(input, options) {
1446
1483
  s5 = peg$parseclosingParen();
1447
1484
  if (s5 !== peg$FAILED) {
1448
1485
  peg$savedPos = s0;
1449
- s0 = peg$f18(s3);
1486
+ s0 = peg$f19(s3);
1450
1487
  } else {
1451
1488
  peg$currPos = s0;
1452
1489
  s0 = peg$FAILED;
@@ -1496,7 +1533,7 @@ function peg$parse(input, options) {
1496
1533
  }
1497
1534
  if (s3 !== peg$FAILED) {
1498
1535
  peg$savedPos = s0;
1499
- s0 = peg$f19(s2);
1536
+ s0 = peg$f20(s2);
1500
1537
  } else {
1501
1538
  peg$currPos = s0;
1502
1539
  s0 = peg$FAILED;
@@ -1584,7 +1621,7 @@ function peg$parse(input, options) {
1584
1621
  s2 = null;
1585
1622
  }
1586
1623
  peg$savedPos = s0;
1587
- s0 = peg$f20(s1, s2);
1624
+ s0 = peg$f21(s1, s2);
1588
1625
  } else {
1589
1626
  peg$currPos = s0;
1590
1627
  s0 = peg$FAILED;
@@ -1615,7 +1652,7 @@ function peg$parse(input, options) {
1615
1652
  }
1616
1653
  if (s1 !== peg$FAILED) {
1617
1654
  peg$savedPos = s0;
1618
- s1 = peg$f21(s1);
1655
+ s1 = peg$f22(s1);
1619
1656
  }
1620
1657
  s0 = s1;
1621
1658
  peg$silentFails--;
@@ -1716,7 +1753,7 @@ function peg$parse(input, options) {
1716
1753
  s2 = null;
1717
1754
  }
1718
1755
  peg$savedPos = s0;
1719
- s0 = peg$f22(s1);
1756
+ s0 = peg$f23(s1);
1720
1757
  } else {
1721
1758
  peg$currPos = s0;
1722
1759
  s0 = peg$FAILED;
@@ -1772,7 +1809,7 @@ function peg$parse(input, options) {
1772
1809
  s3 = null;
1773
1810
  }
1774
1811
  peg$savedPos = s0;
1775
- s0 = peg$f23(s2);
1812
+ s0 = peg$f24(s2);
1776
1813
  } else {
1777
1814
  peg$currPos = s0;
1778
1815
  s0 = peg$FAILED;
@@ -1816,7 +1853,7 @@ function peg$parse(input, options) {
1816
1853
  s2 = peg$parsedigits();
1817
1854
  if (s2 !== peg$FAILED) {
1818
1855
  peg$savedPos = s0;
1819
- s0 = peg$f24();
1856
+ s0 = peg$f25();
1820
1857
  } else {
1821
1858
  peg$currPos = s0;
1822
1859
  s0 = peg$FAILED;
@@ -1847,7 +1884,7 @@ function peg$parse(input, options) {
1847
1884
  s3 = peg$parsepipeline();
1848
1885
  if (s3 !== peg$FAILED) {
1849
1886
  peg$savedPos = s0;
1850
- s0 = peg$f25(s3);
1887
+ s0 = peg$f26(s3);
1851
1888
  } else {
1852
1889
  peg$currPos = s0;
1853
1890
  s0 = peg$FAILED;
@@ -1880,7 +1917,7 @@ function peg$parse(input, options) {
1880
1917
  if (s1 !== peg$FAILED) {
1881
1918
  s2 = peg$parsepath();
1882
1919
  peg$savedPos = s0;
1883
- s0 = peg$f26(s2);
1920
+ s0 = peg$f27(s2);
1884
1921
  } else {
1885
1922
  peg$currPos = s0;
1886
1923
  s0 = peg$FAILED;
@@ -1930,7 +1967,7 @@ function peg$parse(input, options) {
1930
1967
  s2 = null;
1931
1968
  }
1932
1969
  peg$savedPos = s0;
1933
- s0 = peg$f27(s1);
1970
+ s0 = peg$f28(s1);
1934
1971
  } else {
1935
1972
  peg$currPos = s0;
1936
1973
  s0 = peg$FAILED;
@@ -2041,7 +2078,7 @@ function peg$parse(input, options) {
2041
2078
  }
2042
2079
  if (s3 !== peg$FAILED) {
2043
2080
  peg$savedPos = s0;
2044
- s0 = peg$f28();
2081
+ s0 = peg$f29();
2045
2082
  } else {
2046
2083
  peg$currPos = s0;
2047
2084
  s0 = peg$FAILED;
@@ -2125,7 +2162,7 @@ function peg$parse(input, options) {
2125
2162
  s5 = peg$parseclosingBrace();
2126
2163
  if (s5 !== peg$FAILED) {
2127
2164
  peg$savedPos = s0;
2128
- s0 = peg$f29(s3);
2165
+ s0 = peg$f30(s3);
2129
2166
  } else {
2130
2167
  peg$currPos = s0;
2131
2168
  s0 = peg$FAILED;
@@ -2178,7 +2215,7 @@ function peg$parse(input, options) {
2178
2215
  s2 = null;
2179
2216
  }
2180
2217
  peg$savedPos = s0;
2181
- s0 = peg$f30(s1);
2218
+ s0 = peg$f31(s1);
2182
2219
  } else {
2183
2220
  peg$currPos = s0;
2184
2221
  s0 = peg$FAILED;
@@ -2224,7 +2261,7 @@ function peg$parse(input, options) {
2224
2261
  s5 = peg$parsepipeline();
2225
2262
  if (s5 !== peg$FAILED) {
2226
2263
  peg$savedPos = s0;
2227
- s0 = peg$f31(s1, s5);
2264
+ s0 = peg$f32(s1, s5);
2228
2265
  } else {
2229
2266
  peg$currPos = s0;
2230
2267
  s0 = peg$FAILED;
@@ -2285,7 +2322,7 @@ function peg$parse(input, options) {
2285
2322
  }
2286
2323
  if (s1 !== peg$FAILED) {
2287
2324
  peg$savedPos = s0;
2288
- s1 = peg$f32(s1);
2325
+ s1 = peg$f33(s1);
2289
2326
  }
2290
2327
  s0 = s1;
2291
2328
 
@@ -2329,7 +2366,7 @@ function peg$parse(input, options) {
2329
2366
  s5 = peg$parsepipeline();
2330
2367
  if (s5 !== peg$FAILED) {
2331
2368
  peg$savedPos = s0;
2332
- s0 = peg$f33(s1, s5);
2369
+ s0 = peg$f34(s1, s5);
2333
2370
  } else {
2334
2371
  peg$currPos = s0;
2335
2372
  s0 = peg$FAILED;
@@ -2359,7 +2396,7 @@ function peg$parse(input, options) {
2359
2396
  s1 = peg$parseobjectPublicKey();
2360
2397
  if (s1 !== peg$FAILED) {
2361
2398
  peg$savedPos = s0;
2362
- s1 = peg$f34(s1);
2399
+ s1 = peg$f35(s1);
2363
2400
  }
2364
2401
  s0 = s1;
2365
2402
  peg$silentFails--;
@@ -2388,7 +2425,7 @@ function peg$parse(input, options) {
2388
2425
  s2 = null;
2389
2426
  }
2390
2427
  peg$savedPos = s0;
2391
- s0 = peg$f35(s1, s2);
2428
+ s0 = peg$f36(s1, s2);
2392
2429
  } else {
2393
2430
  peg$currPos = s0;
2394
2431
  s0 = peg$FAILED;
@@ -2398,7 +2435,7 @@ function peg$parse(input, options) {
2398
2435
  s1 = peg$parsestring();
2399
2436
  if (s1 !== peg$FAILED) {
2400
2437
  peg$savedPos = s0;
2401
- s1 = peg$f36(s1);
2438
+ s1 = peg$f37(s1);
2402
2439
  }
2403
2440
  s0 = s1;
2404
2441
  }
@@ -2439,7 +2476,7 @@ function peg$parse(input, options) {
2439
2476
  s9 = peg$parsepipeline();
2440
2477
  if (s9 !== peg$FAILED) {
2441
2478
  peg$savedPos = s0;
2442
- s0 = peg$f37(s3, s9);
2479
+ s0 = peg$f38(s3, s9);
2443
2480
  } else {
2444
2481
  peg$currPos = s0;
2445
2482
  s0 = peg$FAILED;
@@ -2488,7 +2525,7 @@ function peg$parse(input, options) {
2488
2525
  }
2489
2526
  if (s5 !== peg$FAILED) {
2490
2527
  peg$savedPos = s0;
2491
- s0 = peg$f38(s3);
2528
+ s0 = peg$f39(s3);
2492
2529
  } else {
2493
2530
  peg$currPos = s0;
2494
2531
  s0 = peg$FAILED;
@@ -2554,7 +2591,7 @@ function peg$parse(input, options) {
2554
2591
  }
2555
2592
  if (s1 !== peg$FAILED) {
2556
2593
  peg$savedPos = s0;
2557
- s1 = peg$f39(s1);
2594
+ s1 = peg$f40(s1);
2558
2595
  }
2559
2596
  s0 = s1;
2560
2597
 
@@ -2577,7 +2614,7 @@ function peg$parse(input, options) {
2577
2614
  s2 = null;
2578
2615
  }
2579
2616
  peg$savedPos = s0;
2580
- s0 = peg$f40(s1, s2);
2617
+ s0 = peg$f41(s1, s2);
2581
2618
  peg$silentFails--;
2582
2619
  s1 = peg$FAILED;
2583
2620
  if (peg$silentFails === 0) { peg$fail(peg$e63); }
@@ -2604,7 +2641,7 @@ function peg$parse(input, options) {
2604
2641
  }
2605
2642
  if (s2 !== peg$FAILED) {
2606
2643
  peg$savedPos = s0;
2607
- s0 = peg$f41(s1);
2644
+ s0 = peg$f42(s1);
2608
2645
  } else {
2609
2646
  peg$currPos = s0;
2610
2647
  s0 = peg$FAILED;
@@ -2646,7 +2683,7 @@ function peg$parse(input, options) {
2646
2683
  }
2647
2684
  if (s1 !== peg$FAILED) {
2648
2685
  peg$savedPos = s0;
2649
- s1 = peg$f42(s1);
2686
+ s1 = peg$f43(s1);
2650
2687
  }
2651
2688
  s0 = s1;
2652
2689
 
@@ -2697,7 +2734,7 @@ function peg$parse(input, options) {
2697
2734
  s5 = null;
2698
2735
  }
2699
2736
  peg$savedPos = s0;
2700
- s0 = peg$f43(s1, s4, s5);
2737
+ s0 = peg$f44(s1, s4, s5);
2701
2738
  } else {
2702
2739
  peg$currPos = s0;
2703
2740
  s0 = peg$FAILED;
@@ -2750,7 +2787,7 @@ function peg$parse(input, options) {
2750
2787
  }
2751
2788
  if (s1 !== peg$FAILED) {
2752
2789
  peg$savedPos = s0;
2753
- s1 = peg$f44();
2790
+ s1 = peg$f45();
2754
2791
  }
2755
2792
  s0 = s1;
2756
2793
  if (s0 === peg$FAILED) {
@@ -2764,7 +2801,7 @@ function peg$parse(input, options) {
2764
2801
  }
2765
2802
  if (s1 !== peg$FAILED) {
2766
2803
  peg$savedPos = s0;
2767
- s1 = peg$f45();
2804
+ s1 = peg$f46();
2768
2805
  }
2769
2806
  s0 = s1;
2770
2807
  if (s0 === peg$FAILED) {
@@ -2778,7 +2815,7 @@ function peg$parse(input, options) {
2778
2815
  }
2779
2816
  if (s1 !== peg$FAILED) {
2780
2817
  peg$savedPos = s0;
2781
- s1 = peg$f46();
2818
+ s1 = peg$f47();
2782
2819
  }
2783
2820
  s0 = s1;
2784
2821
  if (s0 === peg$FAILED) {
@@ -2792,7 +2829,7 @@ function peg$parse(input, options) {
2792
2829
  }
2793
2830
  if (s1 !== peg$FAILED) {
2794
2831
  peg$savedPos = s0;
2795
- s1 = peg$f47();
2832
+ s1 = peg$f48();
2796
2833
  }
2797
2834
  s0 = s1;
2798
2835
  if (s0 === peg$FAILED) {
@@ -2806,7 +2843,7 @@ function peg$parse(input, options) {
2806
2843
  }
2807
2844
  if (s1 !== peg$FAILED) {
2808
2845
  peg$savedPos = s0;
2809
- s1 = peg$f48();
2846
+ s1 = peg$f49();
2810
2847
  }
2811
2848
  s0 = s1;
2812
2849
  if (s0 === peg$FAILED) {
@@ -2820,7 +2857,7 @@ function peg$parse(input, options) {
2820
2857
  }
2821
2858
  if (s1 !== peg$FAILED) {
2822
2859
  peg$savedPos = s0;
2823
- s1 = peg$f49();
2860
+ s1 = peg$f50();
2824
2861
  }
2825
2862
  s0 = s1;
2826
2863
  if (s0 === peg$FAILED) {
@@ -2834,7 +2871,7 @@ function peg$parse(input, options) {
2834
2871
  }
2835
2872
  if (s1 !== peg$FAILED) {
2836
2873
  peg$savedPos = s0;
2837
- s1 = peg$f50();
2874
+ s1 = peg$f51();
2838
2875
  }
2839
2876
  s0 = s1;
2840
2877
  if (s0 === peg$FAILED) {
@@ -2848,7 +2885,7 @@ function peg$parse(input, options) {
2848
2885
  }
2849
2886
  if (s1 !== peg$FAILED) {
2850
2887
  peg$savedPos = s0;
2851
- s1 = peg$f51();
2888
+ s1 = peg$f52();
2852
2889
  }
2853
2890
  s0 = s1;
2854
2891
  }
@@ -2875,7 +2912,7 @@ function peg$parse(input, options) {
2875
2912
  s1 = peg$parseidentifier();
2876
2913
  if (s1 !== peg$FAILED) {
2877
2914
  peg$savedPos = s0;
2878
- s1 = peg$f52(s1);
2915
+ s1 = peg$f53(s1);
2879
2916
  }
2880
2917
  s0 = s1;
2881
2918
  peg$silentFails--;
@@ -2903,7 +2940,7 @@ function peg$parse(input, options) {
2903
2940
  if (s2 !== peg$FAILED) {
2904
2941
  s3 = peg$parsepath();
2905
2942
  peg$savedPos = s0;
2906
- s0 = peg$f53(s1, s3);
2943
+ s0 = peg$f54(s1, s3);
2907
2944
  } else {
2908
2945
  peg$currPos = s0;
2909
2946
  s0 = peg$FAILED;
@@ -2974,7 +3011,7 @@ function peg$parse(input, options) {
2974
3011
  }
2975
3012
  }
2976
3013
  peg$savedPos = s0;
2977
- s0 = peg$f54();
3014
+ s0 = peg$f55();
2978
3015
  } else {
2979
3016
  peg$currPos = s0;
2980
3017
  s0 = peg$FAILED;
@@ -3051,7 +3088,7 @@ function peg$parse(input, options) {
3051
3088
  }
3052
3089
  }
3053
3090
  peg$savedPos = s0;
3054
- s0 = peg$f55();
3091
+ s0 = peg$f56();
3055
3092
  } else {
3056
3093
  peg$currPos = s0;
3057
3094
  s0 = peg$FAILED;
@@ -3088,7 +3125,7 @@ function peg$parse(input, options) {
3088
3125
  }
3089
3126
  if (s3 !== peg$FAILED) {
3090
3127
  peg$savedPos = s0;
3091
- s0 = peg$f56(s2);
3128
+ s0 = peg$f57(s2);
3092
3129
  } else {
3093
3130
  peg$currPos = s0;
3094
3131
  s0 = peg$FAILED;
@@ -3154,7 +3191,7 @@ function peg$parse(input, options) {
3154
3191
  s2 = peg$parsepipeline();
3155
3192
  if (s2 !== peg$FAILED) {
3156
3193
  peg$savedPos = s0;
3157
- s0 = peg$f57(s2);
3194
+ s0 = peg$f58(s2);
3158
3195
  } else {
3159
3196
  peg$currPos = s0;
3160
3197
  s0 = peg$FAILED;
@@ -3192,7 +3229,13 @@ function peg$parse(input, options) {
3192
3229
  if (s0 === peg$FAILED) {
3193
3230
  s0 = peg$parseprotocolCall();
3194
3231
  if (s0 === peg$FAILED) {
3195
- s0 = peg$parsescopeReference();
3232
+ s0 = peg$parsetaggedTemplate();
3233
+ if (s0 === peg$FAILED) {
3234
+ s0 = peg$parsescopeTraverse();
3235
+ if (s0 === peg$FAILED) {
3236
+ s0 = peg$parsescopeReference();
3237
+ }
3238
+ }
3196
3239
  }
3197
3240
  }
3198
3241
  }
@@ -3236,6 +3279,47 @@ function peg$parse(input, options) {
3236
3279
  return s0;
3237
3280
  }
3238
3281
 
3282
+ function peg$parsetaggedTemplate() {
3283
+ var s0, s1, s2, s3, s4;
3284
+
3285
+ s0 = peg$currPos;
3286
+ s1 = peg$parsecallTarget();
3287
+ if (s1 !== peg$FAILED) {
3288
+ if (input.charCodeAt(peg$currPos) === 96) {
3289
+ s2 = peg$c46;
3290
+ peg$currPos++;
3291
+ } else {
3292
+ s2 = peg$FAILED;
3293
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
3294
+ }
3295
+ if (s2 !== peg$FAILED) {
3296
+ s3 = peg$parsetemplateLiteralContents();
3297
+ if (input.charCodeAt(peg$currPos) === 96) {
3298
+ s4 = peg$c46;
3299
+ peg$currPos++;
3300
+ } else {
3301
+ s4 = peg$FAILED;
3302
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
3303
+ }
3304
+ if (s4 !== peg$FAILED) {
3305
+ peg$savedPos = s0;
3306
+ s0 = peg$f59(s1, s3);
3307
+ } else {
3308
+ peg$currPos = s0;
3309
+ s0 = peg$FAILED;
3310
+ }
3311
+ } else {
3312
+ peg$currPos = s0;
3313
+ s0 = peg$FAILED;
3314
+ }
3315
+ } else {
3316
+ peg$currPos = s0;
3317
+ s0 = peg$FAILED;
3318
+ }
3319
+
3320
+ return s0;
3321
+ }
3322
+
3239
3323
  function peg$parsetemplateDocument() {
3240
3324
  var s0, s1;
3241
3325
 
@@ -3243,11 +3327,11 @@ function peg$parse(input, options) {
3243
3327
  s0 = peg$currPos;
3244
3328
  s1 = peg$parsetemplateDocumentContents();
3245
3329
  peg$savedPos = s0;
3246
- s1 = peg$f58(s1);
3330
+ s1 = peg$f60(s1);
3247
3331
  s0 = s1;
3248
3332
  peg$silentFails--;
3249
3333
  s1 = peg$FAILED;
3250
- if (peg$silentFails === 0) { peg$fail(peg$e86); }
3334
+ if (peg$silentFails === 0) { peg$fail(peg$e87); }
3251
3335
 
3252
3336
  return s0;
3253
3337
  }
@@ -3258,12 +3342,12 @@ function peg$parse(input, options) {
3258
3342
  s0 = peg$currPos;
3259
3343
  s1 = peg$currPos;
3260
3344
  peg$silentFails++;
3261
- if (input.substr(peg$currPos, 2) === peg$c46) {
3262
- s2 = peg$c46;
3345
+ if (input.substr(peg$currPos, 2) === peg$c47) {
3346
+ s2 = peg$c47;
3263
3347
  peg$currPos += 2;
3264
3348
  } else {
3265
3349
  s2 = peg$FAILED;
3266
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
3350
+ if (peg$silentFails === 0) { peg$fail(peg$e88); }
3267
3351
  }
3268
3352
  peg$silentFails--;
3269
3353
  if (s2 === peg$FAILED) {
@@ -3289,24 +3373,36 @@ function peg$parse(input, options) {
3289
3373
  }
3290
3374
 
3291
3375
  function peg$parsetemplateDocumentContents() {
3292
- var s0, s1, s2;
3376
+ var s0, s1, s2, s3, s4, s5;
3293
3377
 
3294
3378
  s0 = peg$currPos;
3295
- s1 = [];
3296
- s2 = peg$parsetemplateDocumentText();
3297
- if (s2 === peg$FAILED) {
3298
- s2 = peg$parsetemplateSubstitution();
3379
+ s1 = peg$parsetemplateDocumentText();
3380
+ s2 = [];
3381
+ s3 = peg$currPos;
3382
+ s4 = peg$parsetemplateSubstitution();
3383
+ if (s4 !== peg$FAILED) {
3384
+ s5 = peg$parsetemplateDocumentText();
3385
+ s4 = [s4, s5];
3386
+ s3 = s4;
3387
+ } else {
3388
+ peg$currPos = s3;
3389
+ s3 = peg$FAILED;
3299
3390
  }
3300
- while (s2 !== peg$FAILED) {
3301
- s1.push(s2);
3302
- s2 = peg$parsetemplateDocumentText();
3303
- if (s2 === peg$FAILED) {
3304
- s2 = peg$parsetemplateSubstitution();
3391
+ while (s3 !== peg$FAILED) {
3392
+ s2.push(s3);
3393
+ s3 = peg$currPos;
3394
+ s4 = peg$parsetemplateSubstitution();
3395
+ if (s4 !== peg$FAILED) {
3396
+ s5 = peg$parsetemplateDocumentText();
3397
+ s4 = [s4, s5];
3398
+ s3 = s4;
3399
+ } else {
3400
+ peg$currPos = s3;
3401
+ s3 = peg$FAILED;
3305
3402
  }
3306
3403
  }
3307
3404
  peg$savedPos = s0;
3308
- s1 = peg$f59(s1);
3309
- s0 = s1;
3405
+ s0 = peg$f61(s1, s2);
3310
3406
 
3311
3407
  return s0;
3312
3408
  }
@@ -3318,24 +3414,16 @@ function peg$parse(input, options) {
3318
3414
  s0 = peg$currPos;
3319
3415
  s1 = [];
3320
3416
  s2 = peg$parsetemplateDocumentChar();
3321
- if (s2 !== peg$FAILED) {
3322
- while (s2 !== peg$FAILED) {
3323
- s1.push(s2);
3324
- s2 = peg$parsetemplateDocumentChar();
3325
- }
3326
- } else {
3327
- s1 = peg$FAILED;
3328
- }
3329
- if (s1 !== peg$FAILED) {
3330
- peg$savedPos = s0;
3331
- s1 = peg$f60(s1);
3417
+ while (s2 !== peg$FAILED) {
3418
+ s1.push(s2);
3419
+ s2 = peg$parsetemplateDocumentChar();
3332
3420
  }
3421
+ peg$savedPos = s0;
3422
+ s1 = peg$f62(s1);
3333
3423
  s0 = s1;
3334
3424
  peg$silentFails--;
3335
- if (s0 === peg$FAILED) {
3336
- s1 = peg$FAILED;
3337
- if (peg$silentFails === 0) { peg$fail(peg$e88); }
3338
- }
3425
+ s1 = peg$FAILED;
3426
+ if (peg$silentFails === 0) { peg$fail(peg$e89); }
3339
3427
 
3340
3428
  return s0;
3341
3429
  }
@@ -3346,24 +3434,24 @@ function peg$parse(input, options) {
3346
3434
  peg$silentFails++;
3347
3435
  s0 = peg$currPos;
3348
3436
  if (input.charCodeAt(peg$currPos) === 96) {
3349
- s1 = peg$c47;
3437
+ s1 = peg$c46;
3350
3438
  peg$currPos++;
3351
3439
  } else {
3352
3440
  s1 = peg$FAILED;
3353
- if (peg$silentFails === 0) { peg$fail(peg$e90); }
3441
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
3354
3442
  }
3355
3443
  if (s1 !== peg$FAILED) {
3356
3444
  s2 = peg$parsetemplateLiteralContents();
3357
3445
  if (input.charCodeAt(peg$currPos) === 96) {
3358
- s3 = peg$c47;
3446
+ s3 = peg$c46;
3359
3447
  peg$currPos++;
3360
3448
  } else {
3361
3449
  s3 = peg$FAILED;
3362
- if (peg$silentFails === 0) { peg$fail(peg$e90); }
3450
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
3363
3451
  }
3364
3452
  if (s3 !== peg$FAILED) {
3365
3453
  peg$savedPos = s0;
3366
- s0 = peg$f61(s2);
3454
+ s0 = peg$f63(s2);
3367
3455
  } else {
3368
3456
  peg$currPos = s0;
3369
3457
  s0 = peg$FAILED;
@@ -3375,7 +3463,7 @@ function peg$parse(input, options) {
3375
3463
  peg$silentFails--;
3376
3464
  if (s0 === peg$FAILED) {
3377
3465
  s1 = peg$FAILED;
3378
- if (peg$silentFails === 0) { peg$fail(peg$e89); }
3466
+ if (peg$silentFails === 0) { peg$fail(peg$e90); }
3379
3467
  }
3380
3468
 
3381
3469
  return s0;
@@ -3388,19 +3476,19 @@ function peg$parse(input, options) {
3388
3476
  s1 = peg$currPos;
3389
3477
  peg$silentFails++;
3390
3478
  if (input.charCodeAt(peg$currPos) === 96) {
3391
- s2 = peg$c47;
3479
+ s2 = peg$c46;
3392
3480
  peg$currPos++;
3393
3481
  } else {
3394
3482
  s2 = peg$FAILED;
3395
- if (peg$silentFails === 0) { peg$fail(peg$e90); }
3483
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
3396
3484
  }
3397
3485
  if (s2 === peg$FAILED) {
3398
- if (input.substr(peg$currPos, 2) === peg$c46) {
3399
- s2 = peg$c46;
3486
+ if (input.substr(peg$currPos, 2) === peg$c47) {
3487
+ s2 = peg$c47;
3400
3488
  peg$currPos += 2;
3401
3489
  } else {
3402
3490
  s2 = peg$FAILED;
3403
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
3491
+ if (peg$silentFails === 0) { peg$fail(peg$e88); }
3404
3492
  }
3405
3493
  }
3406
3494
  peg$silentFails--;
@@ -3427,23 +3515,35 @@ function peg$parse(input, options) {
3427
3515
  }
3428
3516
 
3429
3517
  function peg$parsetemplateLiteralContents() {
3430
- var s0, s1, s2;
3518
+ var s0, s1, s2, s3, s4, s5;
3431
3519
 
3432
3520
  s0 = peg$currPos;
3433
- s1 = [];
3434
- s2 = peg$parsetemplateLiteralText();
3435
- if (s2 === peg$FAILED) {
3436
- s2 = peg$parsetemplateSubstitution();
3521
+ s1 = peg$parsetemplateLiteralText();
3522
+ s2 = [];
3523
+ s3 = peg$currPos;
3524
+ s4 = peg$parsetemplateSubstitution();
3525
+ if (s4 !== peg$FAILED) {
3526
+ s5 = peg$parsetemplateLiteralText();
3527
+ s4 = [s4, s5];
3528
+ s3 = s4;
3529
+ } else {
3530
+ peg$currPos = s3;
3531
+ s3 = peg$FAILED;
3437
3532
  }
3438
- while (s2 !== peg$FAILED) {
3439
- s1.push(s2);
3440
- s2 = peg$parsetemplateLiteralText();
3441
- if (s2 === peg$FAILED) {
3442
- s2 = peg$parsetemplateSubstitution();
3533
+ while (s3 !== peg$FAILED) {
3534
+ s2.push(s3);
3535
+ s3 = peg$currPos;
3536
+ s4 = peg$parsetemplateSubstitution();
3537
+ if (s4 !== peg$FAILED) {
3538
+ s5 = peg$parsetemplateLiteralText();
3539
+ s4 = [s4, s5];
3540
+ s3 = s4;
3541
+ } else {
3542
+ peg$currPos = s3;
3543
+ s3 = peg$FAILED;
3443
3544
  }
3444
3545
  }
3445
- peg$savedPos = s0;
3446
- s1 = peg$f62(s1);
3546
+ s1 = [s1, s2];
3447
3547
  s0 = s1;
3448
3548
 
3449
3549
  return s0;
@@ -3455,18 +3555,12 @@ function peg$parse(input, options) {
3455
3555
  s0 = peg$currPos;
3456
3556
  s1 = [];
3457
3557
  s2 = peg$parsetemplateLiteralChar();
3458
- if (s2 !== peg$FAILED) {
3459
- while (s2 !== peg$FAILED) {
3460
- s1.push(s2);
3461
- s2 = peg$parsetemplateLiteralChar();
3462
- }
3463
- } else {
3464
- s1 = peg$FAILED;
3465
- }
3466
- if (s1 !== peg$FAILED) {
3467
- peg$savedPos = s0;
3468
- s1 = peg$f63(s1);
3558
+ while (s2 !== peg$FAILED) {
3559
+ s1.push(s2);
3560
+ s2 = peg$parsetemplateLiteralChar();
3469
3561
  }
3562
+ peg$savedPos = s0;
3563
+ s1 = peg$f64(s1);
3470
3564
  s0 = s1;
3471
3565
 
3472
3566
  return s0;
@@ -3477,12 +3571,12 @@ function peg$parse(input, options) {
3477
3571
 
3478
3572
  peg$silentFails++;
3479
3573
  s0 = peg$currPos;
3480
- if (input.substr(peg$currPos, 2) === peg$c46) {
3481
- s1 = peg$c46;
3574
+ if (input.substr(peg$currPos, 2) === peg$c47) {
3575
+ s1 = peg$c47;
3482
3576
  peg$currPos += 2;
3483
3577
  } else {
3484
3578
  s1 = peg$FAILED;
3485
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
3579
+ if (peg$silentFails === 0) { peg$fail(peg$e88); }
3486
3580
  }
3487
3581
  if (s1 !== peg$FAILED) {
3488
3582
  s2 = peg$parse__();
@@ -3497,8 +3591,7 @@ function peg$parse(input, options) {
3497
3591
  if (peg$silentFails === 0) { peg$fail(peg$e6); }
3498
3592
  }
3499
3593
  if (s5 !== peg$FAILED) {
3500
- peg$savedPos = s0;
3501
- s0 = peg$f64(s3);
3594
+ s0 = s3;
3502
3595
  } else {
3503
3596
  peg$currPos = s0;
3504
3597
  s0 = peg$FAILED;
@@ -3662,6 +3755,7 @@ const peg$allowedStartRules = [
3662
3755
  "step",
3663
3756
  "start",
3664
3757
  "string",
3758
+ "taggedTemplate",
3665
3759
  "templateDocument",
3666
3760
  "templateDocumentChar",
3667
3761
  "templateDocumentContents",