@weborigami/language 0.6.2 → 0.6.4

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.
@@ -23,6 +23,7 @@ import {
23
23
  makeArray,
24
24
  makeBinaryOperation,
25
25
  makeCall,
26
+ makeCallChain,
26
27
  makeDeferredArguments,
27
28
  makeDocument,
28
29
  makeObject,
@@ -252,14 +253,15 @@ function peg$parse(input, options) {
252
253
  identifierLiteral: peg$parseidentifierLiteral,
253
254
  identifierPart: peg$parseidentifierPart,
254
255
  identifierStart: peg$parseidentifierStart,
256
+ implicitParenthesesArgument: peg$parseimplicitParenthesesArgument,
257
+ implicitParenthesesArgumentList: peg$parseimplicitParenthesesArgumentList,
258
+ implicitParenthesesArguments: peg$parseimplicitParenthesesArguments,
255
259
  implicitParenthesesCallExpression: peg$parseimplicitParenthesesCallExpression,
256
- implicitParensthesesArguments: peg$parseimplicitParensthesesArguments,
257
260
  inlineSpace: peg$parseinlineSpace,
258
261
  integerLiteral: peg$parseintegerLiteral,
259
262
  key: peg$parsekey,
260
263
  keyChar: peg$parsekeyChar,
261
264
  keyCharStart: peg$parsekeyCharStart,
262
- list: peg$parselist,
263
265
  logicalAndExpression: peg$parselogicalAndExpression,
264
266
  logicalOrExpression: peg$parselogicalOrExpression,
265
267
  minus: peg$parseminus,
@@ -279,10 +281,12 @@ function peg$parse(input, options) {
279
281
  objectProperty: peg$parseobjectProperty,
280
282
  objectShorthandProperty: peg$parseobjectShorthandProperty,
281
283
  objectPublicKey: peg$parseobjectPublicKey,
282
- optionalChaining: peg$parseoptionalChaining,
284
+ optional: peg$parseoptional,
283
285
  parameter: peg$parseparameter,
284
286
  parameterList: peg$parseparameterList,
285
287
  parameterSingleton: peg$parseparameterSingleton,
288
+ parenthesesArgument: peg$parseparenthesesArgument,
289
+ parenthesesArgumentList: peg$parseparenthesesArgumentList,
286
290
  parenthesesArguments: peg$parseparenthesesArguments,
287
291
  pathArguments: peg$parsepathArguments,
288
292
  pathKeys: peg$parsepathKeys,
@@ -483,12 +487,12 @@ function peg$parse(input, options) {
483
487
  const peg$e54 = peg$otherExpectation("HTTP/HTTPS host");
484
488
  const peg$e55 = peg$otherExpectation("JavaScript identifier continuation");
485
489
  const peg$e56 = peg$otherExpectation("JavaScript identifier start");
486
- const peg$e57 = peg$otherExpectation("function call with implicit parentheses");
487
- const peg$e58 = peg$classExpectation([" ", "\t"], false, false, false);
488
- const peg$e59 = peg$otherExpectation("integer");
489
- const peg$e60 = peg$classExpectation(["!", ["%", "&"], ["*", "+"], "^", "|"], false, false, false);
490
- const peg$e61 = peg$classExpectation([".", "@", "~"], false, false, false);
491
- const peg$e62 = peg$otherExpectation("list");
490
+ const peg$e57 = peg$otherExpectation("list");
491
+ const peg$e58 = peg$otherExpectation("function call with implicit parentheses");
492
+ const peg$e59 = peg$classExpectation([" ", "\t"], false, false, false);
493
+ const peg$e60 = peg$otherExpectation("integer");
494
+ const peg$e61 = peg$classExpectation(["!", ["%", "&"], ["*", "+"], "^", "|"], false, false, false);
495
+ const peg$e62 = peg$classExpectation([".", "@", "~"], false, false, false);
492
496
  const peg$e63 = peg$literalExpectation("&&", false);
493
497
  const peg$e64 = peg$literalExpectation("||", false);
494
498
  const peg$e65 = peg$literalExpectation("-", false);
@@ -594,10 +598,7 @@ function peg$parse(input, options) {
594
598
  return tail.reduce(makeBinaryOperation, head);
595
599
  }
596
600
  function peg$f14(head, tail) {
597
- return tail.reduce(
598
- (target, args) => makeCall(target, args, location()),
599
- head
600
- );
601
+ return makeCallChain(head, tail, location());
601
602
  }
602
603
  function peg$f15(list) {
603
604
  return list.length === 1
@@ -703,22 +704,22 @@ function peg$parse(input, options) {
703
704
  }
704
705
  function peg$f49(char) { return char.match(/[$_\p{ID_Continue}]/u) }
705
706
  function peg$f50(char) { return char.match(/[$_\p{ID_Start}]/u) }
706
- function peg$f51(head, args) {
707
- return args ? makeCall(head, args, location()) : head;
707
+ function peg$f51(arg) {
708
+ return annotate([markers.spread, arg], location());
708
709
  }
709
- function peg$f52(values) {
710
- return annotate(values, location());
710
+ function peg$f52(args) {
711
+ return annotate(args, location());
711
712
  }
712
- function peg$f53() {
713
- return annotate([ops.literal, parseInt(text())], location());
713
+ function peg$f53(head, args) {
714
+ return args ? makeCall(head, args, location()) : head;
714
715
  }
715
716
  function peg$f54() {
716
- return text();
717
+ return annotate([ops.literal, parseInt(text())], location());
717
718
  }
718
- function peg$f55(char) { return char.match(/[$_\p{ID_Continue}]/u) }
719
- function peg$f56(values) {
720
- return annotate(values, location());
719
+ function peg$f55() {
720
+ return text();
721
721
  }
722
+ function peg$f56(char) { return char.match(/[$_\p{ID_Continue}]/u) }
722
723
  function peg$f57(head, tail) {
723
724
  return tail.length === 0
724
725
  ? head
@@ -789,60 +790,73 @@ function peg$parse(input, options) {
789
790
  // Remove `ops.literal` from the string code
790
791
  return string[1];
791
792
  }
792
- function peg$f73(property) {
793
- return annotate([ops.optionalTraverse, property], location());
793
+ function peg$f73(args) {
794
+ return annotate([ops.optional, args], location());
794
795
  }
795
- function peg$f74(key) {
796
+ function peg$f74(access) {
797
+ return annotate([ops.optional, access], location());
798
+ }
799
+ function peg$f75(property) {
800
+ const propertyAccess = annotate([markers.property, property], location());
801
+ return annotate([ops.optional, propertyAccess], location());
802
+ }
803
+ function peg$f76(key) {
796
804
  return annotate([ops.literal, key], location());
797
805
  }
798
- function peg$f75(list) {
806
+ function peg$f77(list) {
799
807
  return annotate(list, location());
800
808
  }
801
- function peg$f76(param) {
809
+ function peg$f78(param) {
802
810
  return annotate([param], location());
803
811
  }
804
- function peg$f77(list) {
812
+ function peg$f79(arg) {
813
+ return annotate([markers.spread, arg], location());
814
+ }
815
+ function peg$f80(args) {
816
+ return annotate(args, location());
817
+ }
818
+ function peg$f81(list) {
805
819
  return annotate(list ?? [undefined], location());
806
820
  }
807
- function peg$f78(keys) {
821
+ function peg$f82(keys) {
808
822
  const args = keys ?? [];
809
823
  return annotate([markers.traverse, ...args], location());
810
824
  }
811
- function peg$f79(keys) {
825
+ function peg$f83(keys) {
812
826
  return makePath(keys);
813
827
  }
814
- function peg$f80(key) {
828
+ function peg$f84(key) {
815
829
  return annotate([ops.literal, text()], location());
816
830
  }
817
- function peg$f81() {
831
+ function peg$f85() {
818
832
  return annotate([ops.literal, text()], location());
819
833
  }
820
- function peg$f82(head, tail) {
834
+ function peg$f86(head, tail) {
821
835
  return annotate(
822
836
  tail.reduce((arg, fn) => makePipeline(arg, fn, location()), head),
823
837
  location()
824
838
  );
825
839
  }
826
- function peg$f83() { return options.mode === "program" }
827
- function peg$f84(property) {
840
+ function peg$f87() { return options.mode === "program" }
841
+ function peg$f88(property) {
828
842
  return annotate([markers.property, property], location());
829
843
  }
830
- function peg$f85(flags) {
844
+ function peg$f89(flags) {
831
845
  return flags.join("");
832
846
  }
833
- function peg$f86(chars, flags) {
847
+ function peg$f90(chars, flags) {
834
848
  const regex = new RegExp(chars.join(""), flags);
835
849
  return annotate([ops.literal, regex], location());
836
850
  }
837
- function peg$f87(head, tail) {
851
+ function peg$f91(head, tail) {
838
852
  return tail.reduce(makeBinaryOperation, head);
839
853
  }
840
- function peg$f88() { return null; }
841
- function peg$f89() { return options.mode === "shell" }
842
- function peg$f90(head, tail) {
854
+ function peg$f92() { return null; }
855
+ function peg$f93() { return options.mode === "shell" }
856
+ function peg$f94(head, tail) {
843
857
  return tail.reduce(makeBinaryOperation, head);
844
858
  }
845
- function peg$f91(definition) {
859
+ function peg$f95(definition) {
846
860
  if (options.mode === "program") {
847
861
  throw new Error("Parse error: shorthand function syntax isn't allowed in Origami programs. Use arrow syntax instead.");
848
862
  }
@@ -852,35 +866,35 @@ function peg$parse(input, options) {
852
866
  );
853
867
  return annotate([ops.lambda, lambdaParameters, definition], location());
854
868
  }
855
- function peg$f92() { return null; }
856
- function peg$f93(chars) {
869
+ function peg$f96() { return null; }
870
+ function peg$f97(chars) {
857
871
  return annotate([ops.literal, chars.join("")], location());
858
872
  }
859
- function peg$f94() {
873
+ function peg$f98() {
860
874
  return annotate([ops.literal, "/"], location());
861
875
  }
862
- function peg$f95() {
876
+ function peg$f99() {
863
877
  return annotate([ops.literal, "/"], location());
864
878
  }
865
- function peg$f96() {
879
+ function peg$f100() {
866
880
  return true;
867
881
  }
868
- function peg$f97(value) {
869
- return annotate([ops.spread, value], location());
882
+ function peg$f101(value) {
883
+ return annotate([markers.spread, value], location());
870
884
  }
871
- function peg$f98(head, tail) {
885
+ function peg$f102(head, tail) {
872
886
  return makeTemplate(ops.templateIndent, head, tail, location());
873
887
  }
874
- function peg$f99(chars) {
888
+ function peg$f103(chars) {
875
889
  return annotate([ops.literal, chars.join("")], location());
876
890
  }
877
- function peg$f100(front, body) {
891
+ function peg$f104(front, body) {
878
892
  return annotate(applyMacro(front, "_template", body), location());
879
893
  }
880
- function peg$f101(front, body) {
894
+ function peg$f105(front, body) {
881
895
  return makeDocument(front, body, location());
882
896
  }
883
- function peg$f102(body) {
897
+ function peg$f106(body) {
884
898
  if (options.front) {
885
899
  return makeDocument(options.front, body, location());
886
900
  }
@@ -890,43 +904,43 @@ function peg$parse(input, options) {
890
904
  );
891
905
  return annotate([ops.lambda, lambdaParameters, body], location());
892
906
  }
893
- function peg$f103(head, tail) {
907
+ function peg$f107(head, tail) {
894
908
  return makeTemplate(ops.templateText, head, tail, location());
895
909
  }
896
- function peg$f104(chars) {
910
+ function peg$f108(chars) {
897
911
  return annotate([ops.literal, chars.join("")], location());
898
912
  }
899
- function peg$f105(expression) {
913
+ function peg$f109(expression) {
900
914
  return annotate(expression, location());
901
915
  }
902
- function peg$f106(operator, expression) {
916
+ function peg$f110(operator, expression) {
903
917
  return makeUnaryOperation(operator, expression, location());
904
918
  }
905
- function peg$f107(scheme, host, path) {
919
+ function peg$f111(scheme, host, path) {
906
920
  const rest = path ? path[1] : [];
907
921
  const keys = annotate([host, ...rest], location());
908
922
  return makeCall(scheme, keys, location());
909
923
  }
910
- function peg$f108(scheme, keys) {
924
+ function peg$f112(scheme, keys) {
911
925
  return makeCall(scheme, keys, location());
912
926
  }
913
- function peg$f109(chars) {
927
+ function peg$f113(chars) {
914
928
  return annotate([ops.literal, text()], location());
915
929
  }
916
- function peg$f110() {
930
+ function peg$f114() {
917
931
  // A single slash is a path key
918
932
  return annotate([ops.literal, ""], location());
919
933
  }
920
- function peg$f111(char) { return /\s/.test(char); }
921
- function peg$f112(char) { return char; }
922
- function peg$f113(keys) {
934
+ function peg$f115(char) { return /\s/.test(char); }
935
+ function peg$f116(char) { return char; }
936
+ function peg$f117(keys) {
923
937
  return annotate(keys, location());
924
938
  }
925
- function peg$f114() {
939
+ function peg$f118() {
926
940
  return annotate([markers.global, text()], location());
927
941
  }
928
- function peg$f115(char) { return /\s/.test(char); }
929
- function peg$f116(char) { return char; }
942
+ function peg$f119(char) { return /\s/.test(char); }
943
+ function peg$f120(char) { return char; }
930
944
  let peg$currPos = options.peg$currPos | 0;
931
945
  let peg$savedPos = peg$currPos;
932
946
  const peg$posDetailsCache = [{ line: 1, column: 1 }];
@@ -1415,7 +1429,10 @@ function peg$parse(input, options) {
1415
1429
  if (s0 === peg$FAILED) {
1416
1430
  s0 = peg$parsecomputedPropertyAccess();
1417
1431
  if (s0 === peg$FAILED) {
1418
- s0 = peg$parsetemplateLiteral();
1432
+ s0 = peg$parseoptional();
1433
+ if (s0 === peg$FAILED) {
1434
+ s0 = peg$parsetemplateLiteral();
1435
+ }
1419
1436
  }
1420
1437
  }
1421
1438
  }
@@ -3461,41 +3478,74 @@ function peg$parse(input, options) {
3461
3478
  return s0;
3462
3479
  }
3463
3480
 
3464
- function peg$parseimplicitParenthesesCallExpression() {
3465
- let s0, s1, s2, s3, s4;
3481
+ function peg$parseimplicitParenthesesArgument() {
3482
+ let s0, s1, s2;
3466
3483
 
3467
- peg$silentFails++;
3468
3484
  s0 = peg$currPos;
3469
- s1 = peg$parsearrowFunction();
3485
+ if (input.substr(peg$currPos, 3) === peg$c20) {
3486
+ s1 = peg$c20;
3487
+ peg$currPos += 3;
3488
+ } else {
3489
+ s1 = peg$FAILED;
3490
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
3491
+ }
3470
3492
  if (s1 !== peg$FAILED) {
3471
- s2 = peg$currPos;
3472
- s3 = [];
3473
- s4 = peg$parseinlineSpace();
3474
- if (s4 !== peg$FAILED) {
3475
- while (s4 !== peg$FAILED) {
3476
- s3.push(s4);
3477
- s4 = peg$parseinlineSpace();
3478
- }
3493
+ s2 = peg$parseshorthandFunction();
3494
+ if (s2 !== peg$FAILED) {
3495
+ peg$savedPos = s0;
3496
+ s0 = peg$f51(s2);
3479
3497
  } else {
3480
- s3 = peg$FAILED;
3498
+ peg$currPos = s0;
3499
+ s0 = peg$FAILED;
3481
3500
  }
3482
- if (s3 !== peg$FAILED) {
3483
- s4 = peg$parseimplicitParensthesesArguments();
3484
- if (s4 !== peg$FAILED) {
3485
- s2 = s4;
3501
+ } else {
3502
+ peg$currPos = s0;
3503
+ s0 = peg$FAILED;
3504
+ }
3505
+ if (s0 === peg$FAILED) {
3506
+ s0 = peg$parseshorthandFunction();
3507
+ }
3508
+
3509
+ return s0;
3510
+ }
3511
+
3512
+ function peg$parseimplicitParenthesesArgumentList() {
3513
+ let s0, s1, s2, s3, s4;
3514
+
3515
+ peg$silentFails++;
3516
+ s0 = peg$currPos;
3517
+ s1 = peg$currPos;
3518
+ s2 = [];
3519
+ s3 = peg$parseimplicitParenthesesArgument();
3520
+ while (s3 !== peg$FAILED) {
3521
+ s2.push(s3);
3522
+ s3 = peg$currPos;
3523
+ s4 = peg$parseseparator();
3524
+ if (s4 !== peg$FAILED) {
3525
+ s4 = peg$parseimplicitParenthesesArgument();
3526
+ if (s4 === peg$FAILED) {
3527
+ peg$currPos = s3;
3528
+ s3 = peg$FAILED;
3486
3529
  } else {
3487
- peg$currPos = s2;
3488
- s2 = peg$FAILED;
3530
+ s3 = s4;
3489
3531
  }
3490
3532
  } else {
3491
- peg$currPos = s2;
3492
- s2 = peg$FAILED;
3533
+ s3 = s4;
3493
3534
  }
3535
+ }
3536
+ if (s2.length < 1) {
3537
+ peg$currPos = s1;
3538
+ s1 = peg$FAILED;
3539
+ } else {
3540
+ s1 = s2;
3541
+ }
3542
+ if (s1 !== peg$FAILED) {
3543
+ s2 = peg$parseseparator();
3494
3544
  if (s2 === peg$FAILED) {
3495
3545
  s2 = null;
3496
3546
  }
3497
3547
  peg$savedPos = s0;
3498
- s0 = peg$f51(s1, s2);
3548
+ s0 = peg$f52(s1);
3499
3549
  } else {
3500
3550
  peg$currPos = s0;
3501
3551
  s0 = peg$FAILED;
@@ -3509,44 +3559,30 @@ function peg$parse(input, options) {
3509
3559
  return s0;
3510
3560
  }
3511
3561
 
3512
- function peg$parseimplicitParensthesesArguments() {
3513
- let s0, s1, s2, s3, s4, s5;
3562
+ function peg$parseimplicitParenthesesArguments() {
3563
+ let s0, s1, s2, s3;
3514
3564
 
3515
3565
  s0 = peg$currPos;
3516
3566
  s1 = peg$parseshellMode();
3517
3567
  if (s1 !== peg$FAILED) {
3518
- s2 = peg$currPos;
3519
- s3 = [];
3520
- s4 = peg$parseshorthandFunction();
3521
- while (s4 !== peg$FAILED) {
3522
- s3.push(s4);
3523
- s4 = peg$currPos;
3524
- s5 = peg$parseseparator();
3525
- if (s5 !== peg$FAILED) {
3526
- s5 = peg$parseshorthandFunction();
3527
- if (s5 === peg$FAILED) {
3528
- peg$currPos = s4;
3529
- s4 = peg$FAILED;
3530
- } else {
3531
- s4 = s5;
3532
- }
3533
- } else {
3534
- s4 = s5;
3568
+ s2 = [];
3569
+ s3 = peg$parseinlineSpace();
3570
+ if (s3 !== peg$FAILED) {
3571
+ while (s3 !== peg$FAILED) {
3572
+ s2.push(s3);
3573
+ s3 = peg$parseinlineSpace();
3535
3574
  }
3536
- }
3537
- if (s3.length < 1) {
3538
- peg$currPos = s2;
3539
- s2 = peg$FAILED;
3540
3575
  } else {
3541
- s2 = s3;
3576
+ s2 = peg$FAILED;
3542
3577
  }
3543
3578
  if (s2 !== peg$FAILED) {
3544
- s3 = peg$parseseparator();
3545
- if (s3 === peg$FAILED) {
3546
- s3 = null;
3579
+ s3 = peg$parseimplicitParenthesesArgumentList();
3580
+ if (s3 !== peg$FAILED) {
3581
+ s0 = s3;
3582
+ } else {
3583
+ peg$currPos = s0;
3584
+ s0 = peg$FAILED;
3547
3585
  }
3548
- peg$savedPos = s0;
3549
- s0 = peg$f52(s2);
3550
3586
  } else {
3551
3587
  peg$currPos = s0;
3552
3588
  s0 = peg$FAILED;
@@ -3559,6 +3595,32 @@ function peg$parse(input, options) {
3559
3595
  return s0;
3560
3596
  }
3561
3597
 
3598
+ function peg$parseimplicitParenthesesCallExpression() {
3599
+ let s0, s1, s2;
3600
+
3601
+ peg$silentFails++;
3602
+ s0 = peg$currPos;
3603
+ s1 = peg$parsearrowFunction();
3604
+ if (s1 !== peg$FAILED) {
3605
+ s2 = peg$parseimplicitParenthesesArguments();
3606
+ if (s2 === peg$FAILED) {
3607
+ s2 = null;
3608
+ }
3609
+ peg$savedPos = s0;
3610
+ s0 = peg$f53(s1, s2);
3611
+ } else {
3612
+ peg$currPos = s0;
3613
+ s0 = peg$FAILED;
3614
+ }
3615
+ peg$silentFails--;
3616
+ if (s0 === peg$FAILED) {
3617
+ s1 = peg$FAILED;
3618
+ if (peg$silentFails === 0) { peg$fail(peg$e58); }
3619
+ }
3620
+
3621
+ return s0;
3622
+ }
3623
+
3562
3624
  function peg$parseinlineSpace() {
3563
3625
  let s0;
3564
3626
 
@@ -3567,7 +3629,7 @@ function peg$parse(input, options) {
3567
3629
  peg$currPos++;
3568
3630
  } else {
3569
3631
  s0 = peg$FAILED;
3570
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
3632
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
3571
3633
  }
3572
3634
 
3573
3635
  return s0;
@@ -3581,13 +3643,13 @@ function peg$parse(input, options) {
3581
3643
  s1 = peg$parsedigits();
3582
3644
  if (s1 !== peg$FAILED) {
3583
3645
  peg$savedPos = s0;
3584
- s1 = peg$f53();
3646
+ s1 = peg$f54();
3585
3647
  }
3586
3648
  s0 = s1;
3587
3649
  peg$silentFails--;
3588
3650
  if (s0 === peg$FAILED) {
3589
3651
  s1 = peg$FAILED;
3590
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
3652
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
3591
3653
  }
3592
3654
 
3593
3655
  return s0;
@@ -3606,7 +3668,7 @@ function peg$parse(input, options) {
3606
3668
  s3 = peg$parsekeyChar();
3607
3669
  }
3608
3670
  peg$savedPos = s0;
3609
- s0 = peg$f54();
3671
+ s0 = peg$f55();
3610
3672
  } else {
3611
3673
  peg$currPos = s0;
3612
3674
  s0 = peg$FAILED;
@@ -3625,7 +3687,7 @@ function peg$parse(input, options) {
3625
3687
  peg$currPos++;
3626
3688
  } else {
3627
3689
  s0 = peg$FAILED;
3628
- if (peg$silentFails === 0) { peg$fail(peg$e60); }
3690
+ if (peg$silentFails === 0) { peg$fail(peg$e61); }
3629
3691
  }
3630
3692
  if (s0 === peg$FAILED) {
3631
3693
  s0 = peg$parseminus();
@@ -3648,7 +3710,7 @@ function peg$parse(input, options) {
3648
3710
  }
3649
3711
  if (s1 !== peg$FAILED) {
3650
3712
  peg$savedPos = peg$currPos;
3651
- s2 = peg$f55(s1);
3713
+ s2 = peg$f56(s1);
3652
3714
  if (s2) {
3653
3715
  s2 = undefined;
3654
3716
  } else {
@@ -3671,63 +3733,13 @@ function peg$parse(input, options) {
3671
3733
  peg$currPos++;
3672
3734
  } else {
3673
3735
  s0 = peg$FAILED;
3674
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
3736
+ if (peg$silentFails === 0) { peg$fail(peg$e62); }
3675
3737
  }
3676
3738
  }
3677
3739
 
3678
3740
  return s0;
3679
3741
  }
3680
3742
 
3681
- function peg$parselist() {
3682
- let s0, s1, s2, s3, s4;
3683
-
3684
- peg$silentFails++;
3685
- s0 = peg$currPos;
3686
- s1 = peg$currPos;
3687
- s2 = [];
3688
- s3 = peg$parsepipelineExpression();
3689
- while (s3 !== peg$FAILED) {
3690
- s2.push(s3);
3691
- s3 = peg$currPos;
3692
- s4 = peg$parseseparator();
3693
- if (s4 !== peg$FAILED) {
3694
- s4 = peg$parsepipelineExpression();
3695
- if (s4 === peg$FAILED) {
3696
- peg$currPos = s3;
3697
- s3 = peg$FAILED;
3698
- } else {
3699
- s3 = s4;
3700
- }
3701
- } else {
3702
- s3 = s4;
3703
- }
3704
- }
3705
- if (s2.length < 1) {
3706
- peg$currPos = s1;
3707
- s1 = peg$FAILED;
3708
- } else {
3709
- s1 = s2;
3710
- }
3711
- if (s1 !== peg$FAILED) {
3712
- s2 = peg$parseseparator();
3713
- if (s2 === peg$FAILED) {
3714
- s2 = null;
3715
- }
3716
- peg$savedPos = s0;
3717
- s0 = peg$f56(s1);
3718
- } else {
3719
- peg$currPos = s0;
3720
- s0 = peg$FAILED;
3721
- }
3722
- peg$silentFails--;
3723
- if (s0 === peg$FAILED) {
3724
- s1 = peg$FAILED;
3725
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
3726
- }
3727
-
3728
- return s0;
3729
- }
3730
-
3731
3743
  function peg$parselogicalAndExpression() {
3732
3744
  let s0, s1, s2, s3, s4, s5, s6, s7;
3733
3745
 
@@ -4568,41 +4580,71 @@ function peg$parse(input, options) {
4568
4580
  }
4569
4581
 
4570
4582
  function peg$parseobjectPublicKey() {
4571
- let s0, s1, s2;
4583
+ let s0, s1, s2, s3, s4, s5;
4572
4584
 
4573
4585
  s0 = peg$currPos;
4574
- s1 = peg$parsekey();
4586
+ if (input.charCodeAt(peg$currPos) === 91) {
4587
+ s1 = peg$c6;
4588
+ peg$currPos++;
4589
+ } else {
4590
+ s1 = peg$FAILED;
4591
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
4592
+ }
4575
4593
  if (s1 !== peg$FAILED) {
4576
- if (input.charCodeAt(peg$currPos) === 47) {
4577
- s2 = peg$c5;
4578
- peg$currPos++;
4594
+ s2 = peg$parse__();
4595
+ s3 = peg$parsepipelineExpression();
4596
+ if (s3 !== peg$FAILED) {
4597
+ s4 = peg$parse__();
4598
+ s5 = peg$parseexpectClosingBracket();
4599
+ if (s5 !== peg$FAILED) {
4600
+ s0 = s3;
4601
+ } else {
4602
+ peg$currPos = s0;
4603
+ s0 = peg$FAILED;
4604
+ }
4579
4605
  } else {
4580
- s2 = peg$FAILED;
4581
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
4582
- }
4583
- if (s2 === peg$FAILED) {
4584
- s2 = null;
4606
+ peg$currPos = s0;
4607
+ s0 = peg$FAILED;
4585
4608
  }
4586
- peg$savedPos = s0;
4587
- s0 = peg$f71(s1, s2);
4588
4609
  } else {
4589
4610
  peg$currPos = s0;
4590
4611
  s0 = peg$FAILED;
4591
4612
  }
4592
4613
  if (s0 === peg$FAILED) {
4593
4614
  s0 = peg$currPos;
4594
- s1 = peg$parsestringLiteral();
4615
+ s1 = peg$parsekey();
4595
4616
  if (s1 !== peg$FAILED) {
4617
+ if (input.charCodeAt(peg$currPos) === 47) {
4618
+ s2 = peg$c5;
4619
+ peg$currPos++;
4620
+ } else {
4621
+ s2 = peg$FAILED;
4622
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
4623
+ }
4624
+ if (s2 === peg$FAILED) {
4625
+ s2 = null;
4626
+ }
4596
4627
  peg$savedPos = s0;
4597
- s1 = peg$f72(s1);
4628
+ s0 = peg$f71(s1, s2);
4629
+ } else {
4630
+ peg$currPos = s0;
4631
+ s0 = peg$FAILED;
4632
+ }
4633
+ if (s0 === peg$FAILED) {
4634
+ s0 = peg$currPos;
4635
+ s1 = peg$parsestringLiteral();
4636
+ if (s1 !== peg$FAILED) {
4637
+ peg$savedPos = s0;
4638
+ s1 = peg$f72(s1);
4639
+ }
4640
+ s0 = s1;
4598
4641
  }
4599
- s0 = s1;
4600
4642
  }
4601
4643
 
4602
4644
  return s0;
4603
4645
  }
4604
4646
 
4605
- function peg$parseoptionalChaining() {
4647
+ function peg$parseoptional() {
4606
4648
  let s0, s1, s2, s3, s4;
4607
4649
 
4608
4650
  s0 = peg$currPos;
@@ -4615,11 +4657,10 @@ function peg$parse(input, options) {
4615
4657
  if (peg$silentFails === 0) { peg$fail(peg$e84); }
4616
4658
  }
4617
4659
  if (s2 !== peg$FAILED) {
4618
- s3 = peg$parse__();
4619
- s4 = peg$parseidentifier();
4620
- if (s4 !== peg$FAILED) {
4660
+ s3 = peg$parseparenthesesArguments();
4661
+ if (s3 !== peg$FAILED) {
4621
4662
  peg$savedPos = s0;
4622
- s0 = peg$f73(s4);
4663
+ s0 = peg$f73(s3);
4623
4664
  } else {
4624
4665
  peg$currPos = s0;
4625
4666
  s0 = peg$FAILED;
@@ -4628,6 +4669,60 @@ function peg$parse(input, options) {
4628
4669
  peg$currPos = s0;
4629
4670
  s0 = peg$FAILED;
4630
4671
  }
4672
+ if (s0 === peg$FAILED) {
4673
+ s0 = peg$currPos;
4674
+ s1 = peg$parse__();
4675
+ if (input.substr(peg$currPos, 2) === peg$c55) {
4676
+ s2 = peg$c55;
4677
+ peg$currPos += 2;
4678
+ } else {
4679
+ s2 = peg$FAILED;
4680
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
4681
+ }
4682
+ if (s2 !== peg$FAILED) {
4683
+ s3 = peg$parsecomputedPropertyAccess();
4684
+ if (s3 !== peg$FAILED) {
4685
+ peg$savedPos = s0;
4686
+ s0 = peg$f74(s3);
4687
+ } else {
4688
+ peg$currPos = s0;
4689
+ s0 = peg$FAILED;
4690
+ }
4691
+ } else {
4692
+ peg$currPos = s0;
4693
+ s0 = peg$FAILED;
4694
+ }
4695
+ if (s0 === peg$FAILED) {
4696
+ s0 = peg$currPos;
4697
+ s1 = peg$parse__();
4698
+ if (input.substr(peg$currPos, 2) === peg$c55) {
4699
+ s2 = peg$c55;
4700
+ peg$currPos += 2;
4701
+ } else {
4702
+ s2 = peg$FAILED;
4703
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
4704
+ }
4705
+ if (s2 !== peg$FAILED) {
4706
+ s3 = peg$parsewhitespaceOptionalForProgram();
4707
+ if (s3 !== peg$FAILED) {
4708
+ s4 = peg$parseidentifierLiteral();
4709
+ if (s4 !== peg$FAILED) {
4710
+ peg$savedPos = s0;
4711
+ s0 = peg$f75(s4);
4712
+ } else {
4713
+ peg$currPos = s0;
4714
+ s0 = peg$FAILED;
4715
+ }
4716
+ } else {
4717
+ peg$currPos = s0;
4718
+ s0 = peg$FAILED;
4719
+ }
4720
+ } else {
4721
+ peg$currPos = s0;
4722
+ s0 = peg$FAILED;
4723
+ }
4724
+ }
4725
+ }
4631
4726
 
4632
4727
  return s0;
4633
4728
  }
@@ -4639,7 +4734,7 @@ function peg$parse(input, options) {
4639
4734
  s1 = peg$parsekey();
4640
4735
  if (s1 !== peg$FAILED) {
4641
4736
  peg$savedPos = s0;
4642
- s1 = peg$f74(s1);
4737
+ s1 = peg$f76(s1);
4643
4738
  }
4644
4739
  s0 = s1;
4645
4740
 
@@ -4681,7 +4776,7 @@ function peg$parse(input, options) {
4681
4776
  s2 = null;
4682
4777
  }
4683
4778
  peg$savedPos = s0;
4684
- s0 = peg$f75(s1);
4779
+ s0 = peg$f77(s1);
4685
4780
  } else {
4686
4781
  peg$currPos = s0;
4687
4782
  s0 = peg$FAILED;
@@ -4697,36 +4792,123 @@ function peg$parse(input, options) {
4697
4792
  s1 = peg$parseparameter();
4698
4793
  if (s1 !== peg$FAILED) {
4699
4794
  peg$savedPos = s0;
4700
- s1 = peg$f76(s1);
4795
+ s1 = peg$f78(s1);
4701
4796
  }
4702
4797
  s0 = s1;
4703
4798
 
4704
4799
  return s0;
4705
4800
  }
4706
4801
 
4802
+ function peg$parseparenthesesArgument() {
4803
+ let s0, s1, s2;
4804
+
4805
+ s0 = peg$currPos;
4806
+ if (input.substr(peg$currPos, 3) === peg$c20) {
4807
+ s1 = peg$c20;
4808
+ peg$currPos += 3;
4809
+ } else {
4810
+ s1 = peg$FAILED;
4811
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
4812
+ }
4813
+ if (s1 !== peg$FAILED) {
4814
+ s2 = peg$parsepipelineExpression();
4815
+ if (s2 !== peg$FAILED) {
4816
+ peg$savedPos = s0;
4817
+ s0 = peg$f79(s2);
4818
+ } else {
4819
+ peg$currPos = s0;
4820
+ s0 = peg$FAILED;
4821
+ }
4822
+ } else {
4823
+ peg$currPos = s0;
4824
+ s0 = peg$FAILED;
4825
+ }
4826
+ if (s0 === peg$FAILED) {
4827
+ s0 = peg$parsepipelineExpression();
4828
+ }
4829
+
4830
+ return s0;
4831
+ }
4832
+
4833
+ function peg$parseparenthesesArgumentList() {
4834
+ let s0, s1, s2, s3, s4;
4835
+
4836
+ peg$silentFails++;
4837
+ s0 = peg$currPos;
4838
+ s1 = peg$currPos;
4839
+ s2 = [];
4840
+ s3 = peg$parseparenthesesArgument();
4841
+ while (s3 !== peg$FAILED) {
4842
+ s2.push(s3);
4843
+ s3 = peg$currPos;
4844
+ s4 = peg$parseseparator();
4845
+ if (s4 !== peg$FAILED) {
4846
+ s4 = peg$parseparenthesesArgument();
4847
+ if (s4 === peg$FAILED) {
4848
+ peg$currPos = s3;
4849
+ s3 = peg$FAILED;
4850
+ } else {
4851
+ s3 = s4;
4852
+ }
4853
+ } else {
4854
+ s3 = s4;
4855
+ }
4856
+ }
4857
+ if (s2.length < 1) {
4858
+ peg$currPos = s1;
4859
+ s1 = peg$FAILED;
4860
+ } else {
4861
+ s1 = s2;
4862
+ }
4863
+ if (s1 !== peg$FAILED) {
4864
+ s2 = peg$parseseparator();
4865
+ if (s2 === peg$FAILED) {
4866
+ s2 = null;
4867
+ }
4868
+ peg$savedPos = s0;
4869
+ s0 = peg$f80(s1);
4870
+ } else {
4871
+ peg$currPos = s0;
4872
+ s0 = peg$FAILED;
4873
+ }
4874
+ peg$silentFails--;
4875
+ if (s0 === peg$FAILED) {
4876
+ s1 = peg$FAILED;
4877
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
4878
+ }
4879
+
4880
+ return s0;
4881
+ }
4882
+
4707
4883
  function peg$parseparenthesesArguments() {
4708
- let s0, s1, s2, s3, s4, s5;
4884
+ let s0, s1, s2, s3, s4, s5, s6;
4709
4885
 
4710
4886
  peg$silentFails++;
4711
4887
  s0 = peg$currPos;
4888
+ s1 = [];
4889
+ s2 = peg$parseinlineSpace();
4890
+ while (s2 !== peg$FAILED) {
4891
+ s1.push(s2);
4892
+ s2 = peg$parseinlineSpace();
4893
+ }
4712
4894
  if (input.charCodeAt(peg$currPos) === 40) {
4713
- s1 = peg$c9;
4895
+ s2 = peg$c9;
4714
4896
  peg$currPos++;
4715
4897
  } else {
4716
- s1 = peg$FAILED;
4898
+ s2 = peg$FAILED;
4717
4899
  if (peg$silentFails === 0) { peg$fail(peg$e12); }
4718
4900
  }
4719
- if (s1 !== peg$FAILED) {
4720
- s2 = peg$parse__();
4721
- s3 = peg$parselist();
4722
- if (s3 === peg$FAILED) {
4723
- s3 = null;
4901
+ if (s2 !== peg$FAILED) {
4902
+ s3 = peg$parse__();
4903
+ s4 = peg$parseparenthesesArgumentList();
4904
+ if (s4 === peg$FAILED) {
4905
+ s4 = null;
4724
4906
  }
4725
- s4 = peg$parse__();
4726
- s5 = peg$parseexpectClosingParenthesis();
4727
- if (s5 !== peg$FAILED) {
4907
+ s5 = peg$parse__();
4908
+ s6 = peg$parseexpectClosingParenthesis();
4909
+ if (s6 !== peg$FAILED) {
4728
4910
  peg$savedPos = s0;
4729
- s0 = peg$f77(s3);
4911
+ s0 = peg$f81(s4);
4730
4912
  } else {
4731
4913
  peg$currPos = s0;
4732
4914
  s0 = peg$FAILED;
@@ -4761,7 +4943,7 @@ function peg$parse(input, options) {
4761
4943
  s2 = null;
4762
4944
  }
4763
4945
  peg$savedPos = s0;
4764
- s0 = peg$f78(s2);
4946
+ s0 = peg$f82(s2);
4765
4947
  } else {
4766
4948
  peg$currPos = s0;
4767
4949
  s0 = peg$FAILED;
@@ -4797,7 +4979,7 @@ function peg$parse(input, options) {
4797
4979
  s1 = peg$parsepathKeys();
4798
4980
  if (s1 !== peg$FAILED) {
4799
4981
  peg$savedPos = s0;
4800
- s1 = peg$f79(s1);
4982
+ s1 = peg$f83(s1);
4801
4983
  }
4802
4984
  s0 = s1;
4803
4985
 
@@ -4821,7 +5003,7 @@ function peg$parse(input, options) {
4821
5003
  s2 = null;
4822
5004
  }
4823
5005
  peg$savedPos = s0;
4824
- s0 = peg$f80(s1);
5006
+ s0 = peg$f84(s1);
4825
5007
  } else {
4826
5008
  peg$currPos = s0;
4827
5009
  s0 = peg$FAILED;
@@ -4837,7 +5019,7 @@ function peg$parse(input, options) {
4837
5019
  }
4838
5020
  if (s1 !== peg$FAILED) {
4839
5021
  peg$savedPos = s0;
4840
- s1 = peg$f81();
5022
+ s1 = peg$f85();
4841
5023
  }
4842
5024
  s0 = s1;
4843
5025
  }
@@ -4888,7 +5070,7 @@ function peg$parse(input, options) {
4888
5070
  }
4889
5071
  }
4890
5072
  peg$savedPos = s0;
4891
- s0 = peg$f82(s1, s2);
5073
+ s0 = peg$f86(s1, s2);
4892
5074
  } else {
4893
5075
  peg$currPos = s0;
4894
5076
  s0 = peg$FAILED;
@@ -4980,7 +5162,7 @@ function peg$parse(input, options) {
4980
5162
  let s0;
4981
5163
 
4982
5164
  peg$savedPos = peg$currPos;
4983
- s0 = peg$f83();
5165
+ s0 = peg$f87();
4984
5166
  if (s0) {
4985
5167
  s0 = undefined;
4986
5168
  } else {
@@ -5009,7 +5191,7 @@ function peg$parse(input, options) {
5009
5191
  s4 = peg$parseidentifierLiteral();
5010
5192
  if (s4 !== peg$FAILED) {
5011
5193
  peg$savedPos = s0;
5012
- s0 = peg$f84(s4);
5194
+ s0 = peg$f88(s4);
5013
5195
  } else {
5014
5196
  peg$currPos = s0;
5015
5197
  s0 = peg$FAILED;
@@ -5053,7 +5235,7 @@ function peg$parse(input, options) {
5053
5235
  }
5054
5236
  }
5055
5237
  peg$savedPos = s0;
5056
- s1 = peg$f85(s1);
5238
+ s1 = peg$f89(s1);
5057
5239
  s0 = s1;
5058
5240
 
5059
5241
  return s0;
@@ -5087,7 +5269,7 @@ function peg$parse(input, options) {
5087
5269
  if (s3 !== peg$FAILED) {
5088
5270
  s4 = peg$parseregexFlags();
5089
5271
  peg$savedPos = s0;
5090
- s0 = peg$f86(s2, s4);
5272
+ s0 = peg$f90(s2, s4);
5091
5273
  } else {
5092
5274
  peg$currPos = s0;
5093
5275
  s0 = peg$FAILED;
@@ -5170,7 +5352,7 @@ function peg$parse(input, options) {
5170
5352
  }
5171
5353
  }
5172
5354
  peg$savedPos = s0;
5173
- s0 = peg$f87(s1, s2);
5355
+ s0 = peg$f91(s1, s2);
5174
5356
  } else {
5175
5357
  peg$currPos = s0;
5176
5358
  s0 = peg$FAILED;
@@ -5303,7 +5485,7 @@ function peg$parse(input, options) {
5303
5485
  }
5304
5486
  }
5305
5487
  peg$savedPos = s0;
5306
- s0 = peg$f88();
5488
+ s0 = peg$f92();
5307
5489
  } else {
5308
5490
  peg$currPos = s0;
5309
5491
  s0 = peg$FAILED;
@@ -5316,7 +5498,7 @@ function peg$parse(input, options) {
5316
5498
  let s0;
5317
5499
 
5318
5500
  peg$savedPos = peg$currPos;
5319
- s0 = peg$f89();
5501
+ s0 = peg$f93();
5320
5502
  if (s0) {
5321
5503
  s0 = undefined;
5322
5504
  } else {
@@ -5369,7 +5551,7 @@ function peg$parse(input, options) {
5369
5551
  }
5370
5552
  }
5371
5553
  peg$savedPos = s0;
5372
- s0 = peg$f90(s1, s2);
5554
+ s0 = peg$f94(s1, s2);
5373
5555
  } else {
5374
5556
  peg$currPos = s0;
5375
5557
  s0 = peg$FAILED;
@@ -5449,7 +5631,7 @@ function peg$parse(input, options) {
5449
5631
  s5 = peg$parseimplicitParenthesesCallExpression();
5450
5632
  if (s5 !== peg$FAILED) {
5451
5633
  peg$savedPos = s0;
5452
- s0 = peg$f91(s5);
5634
+ s0 = peg$f95(s5);
5453
5635
  } else {
5454
5636
  peg$currPos = s0;
5455
5637
  s0 = peg$FAILED;
@@ -5532,7 +5714,7 @@ function peg$parse(input, options) {
5532
5714
  }
5533
5715
  }
5534
5716
  peg$savedPos = s0;
5535
- s0 = peg$f92();
5717
+ s0 = peg$f96();
5536
5718
  } else {
5537
5719
  peg$currPos = s0;
5538
5720
  s0 = peg$FAILED;
@@ -5563,7 +5745,7 @@ function peg$parse(input, options) {
5563
5745
  s3 = peg$parseexpectSingleQuote();
5564
5746
  if (s3 !== peg$FAILED) {
5565
5747
  peg$savedPos = s0;
5566
- s0 = peg$f93(s2);
5748
+ s0 = peg$f97(s2);
5567
5749
  } else {
5568
5750
  peg$currPos = s0;
5569
5751
  s0 = peg$FAILED;
@@ -5627,7 +5809,7 @@ function peg$parse(input, options) {
5627
5809
  s1 = peg$parseslashFollows();
5628
5810
  if (s1 !== peg$FAILED) {
5629
5811
  peg$savedPos = s0;
5630
- s1 = peg$f94();
5812
+ s1 = peg$f98();
5631
5813
  }
5632
5814
  s0 = s1;
5633
5815
 
@@ -5662,7 +5844,7 @@ function peg$parse(input, options) {
5662
5844
  }
5663
5845
  if (s1 !== peg$FAILED) {
5664
5846
  peg$savedPos = s0;
5665
- s1 = peg$f95();
5847
+ s1 = peg$f99();
5666
5848
  }
5667
5849
  s0 = s1;
5668
5850
 
@@ -5691,7 +5873,7 @@ function peg$parse(input, options) {
5691
5873
  }
5692
5874
  if (s1 !== peg$FAILED) {
5693
5875
  peg$savedPos = s0;
5694
- s1 = peg$f96();
5876
+ s1 = peg$f100();
5695
5877
  }
5696
5878
  s0 = s1;
5697
5879
 
@@ -5708,7 +5890,7 @@ function peg$parse(input, options) {
5708
5890
  s3 = peg$parseexpectPipelineExpression();
5709
5891
  if (s3 !== peg$FAILED) {
5710
5892
  peg$savedPos = s0;
5711
- s0 = peg$f97(s3);
5893
+ s0 = peg$f101(s3);
5712
5894
  } else {
5713
5895
  peg$currPos = s0;
5714
5896
  s0 = peg$FAILED;
@@ -5785,7 +5967,7 @@ function peg$parse(input, options) {
5785
5967
  }
5786
5968
  }
5787
5969
  peg$savedPos = s0;
5788
- s0 = peg$f98(s1, s2);
5970
+ s0 = peg$f102(s1, s2);
5789
5971
  peg$silentFails--;
5790
5972
 
5791
5973
  return s0;
@@ -5839,7 +6021,7 @@ function peg$parse(input, options) {
5839
6021
  s2 = peg$parsetemplateBodyChar();
5840
6022
  }
5841
6023
  peg$savedPos = s0;
5842
- s1 = peg$f99(s1);
6024
+ s1 = peg$f103(s1);
5843
6025
  s0 = s1;
5844
6026
  peg$silentFails--;
5845
6027
 
@@ -5856,7 +6038,7 @@ function peg$parse(input, options) {
5856
6038
  s2 = peg$parse__();
5857
6039
  s3 = peg$parsetemplateBody();
5858
6040
  peg$savedPos = s0;
5859
- s0 = peg$f100(s1, s3);
6041
+ s0 = peg$f104(s1, s3);
5860
6042
  } else {
5861
6043
  peg$currPos = s0;
5862
6044
  s0 = peg$FAILED;
@@ -5867,7 +6049,7 @@ function peg$parse(input, options) {
5867
6049
  if (s1 !== peg$FAILED) {
5868
6050
  s2 = peg$parsetemplateBody();
5869
6051
  peg$savedPos = s0;
5870
- s0 = peg$f101(s1, s2);
6052
+ s0 = peg$f105(s1, s2);
5871
6053
  } else {
5872
6054
  peg$currPos = s0;
5873
6055
  s0 = peg$FAILED;
@@ -5876,7 +6058,7 @@ function peg$parse(input, options) {
5876
6058
  s0 = peg$currPos;
5877
6059
  s1 = peg$parsetemplateBody();
5878
6060
  peg$savedPos = s0;
5879
- s1 = peg$f102(s1);
6061
+ s1 = peg$f106(s1);
5880
6062
  s0 = s1;
5881
6063
  }
5882
6064
  }
@@ -5930,7 +6112,7 @@ function peg$parse(input, options) {
5930
6112
  s4 = peg$parseexpectBacktick();
5931
6113
  if (s4 !== peg$FAILED) {
5932
6114
  peg$savedPos = s0;
5933
- s0 = peg$f103(s2, s3);
6115
+ s0 = peg$f107(s2, s3);
5934
6116
  } else {
5935
6117
  peg$currPos = s0;
5936
6118
  s0 = peg$FAILED;
@@ -6004,7 +6186,7 @@ function peg$parse(input, options) {
6004
6186
  s2 = peg$parsetemplateLiteralChar();
6005
6187
  }
6006
6188
  peg$savedPos = s0;
6007
- s1 = peg$f104(s1);
6189
+ s1 = peg$f108(s1);
6008
6190
  s0 = s1;
6009
6191
 
6010
6192
  return s0;
@@ -6034,7 +6216,7 @@ function peg$parse(input, options) {
6034
6216
  }
6035
6217
  if (s3 !== peg$FAILED) {
6036
6218
  peg$savedPos = s0;
6037
- s0 = peg$f105(s2);
6219
+ s0 = peg$f109(s2);
6038
6220
  } else {
6039
6221
  peg$currPos = s0;
6040
6222
  s0 = peg$FAILED;
@@ -6083,7 +6265,7 @@ function peg$parse(input, options) {
6083
6265
  s3 = peg$parseexpectUnaryExpression();
6084
6266
  if (s3 !== peg$FAILED) {
6085
6267
  peg$savedPos = s0;
6086
- s0 = peg$f106(s1, s3);
6268
+ s0 = peg$f110(s1, s3);
6087
6269
  } else {
6088
6270
  peg$currPos = s0;
6089
6271
  s0 = peg$FAILED;
@@ -6287,7 +6469,7 @@ function peg$parse(input, options) {
6287
6469
  s4 = null;
6288
6470
  }
6289
6471
  peg$savedPos = s0;
6290
- s0 = peg$f107(s1, s3, s4);
6472
+ s0 = peg$f111(s1, s3, s4);
6291
6473
  } else {
6292
6474
  peg$currPos = s0;
6293
6475
  s0 = peg$FAILED;
@@ -6307,7 +6489,7 @@ function peg$parse(input, options) {
6307
6489
  s2 = peg$parsepathKeys();
6308
6490
  if (s2 !== peg$FAILED) {
6309
6491
  peg$savedPos = s0;
6310
- s0 = peg$f108(s1, s2);
6492
+ s0 = peg$f112(s1, s2);
6311
6493
  } else {
6312
6494
  peg$currPos = s0;
6313
6495
  s0 = peg$FAILED;
@@ -6361,7 +6543,7 @@ function peg$parse(input, options) {
6361
6543
  s2 = null;
6362
6544
  }
6363
6545
  peg$savedPos = s0;
6364
- s0 = peg$f109(s1);
6546
+ s0 = peg$f113(s1);
6365
6547
  } else {
6366
6548
  peg$currPos = s0;
6367
6549
  s0 = peg$FAILED;
@@ -6377,7 +6559,7 @@ function peg$parse(input, options) {
6377
6559
  }
6378
6560
  if (s1 !== peg$FAILED) {
6379
6561
  peg$savedPos = s0;
6380
- s1 = peg$f110();
6562
+ s1 = peg$f114();
6381
6563
  }
6382
6564
  s0 = s1;
6383
6565
  }
@@ -6400,7 +6582,7 @@ function peg$parse(input, options) {
6400
6582
  s2 = peg$currPos;
6401
6583
  peg$silentFails++;
6402
6584
  peg$savedPos = peg$currPos;
6403
- s3 = peg$f111(s1);
6585
+ s3 = peg$f115(s1);
6404
6586
  if (s3) {
6405
6587
  s3 = undefined;
6406
6588
  } else {
@@ -6415,7 +6597,7 @@ function peg$parse(input, options) {
6415
6597
  }
6416
6598
  if (s2 !== peg$FAILED) {
6417
6599
  peg$savedPos = s0;
6418
- s0 = peg$f112(s1);
6600
+ s0 = peg$f116(s1);
6419
6601
  } else {
6420
6602
  peg$currPos = s0;
6421
6603
  s0 = peg$FAILED;
@@ -6451,7 +6633,7 @@ function peg$parse(input, options) {
6451
6633
  }
6452
6634
  if (s1 !== peg$FAILED) {
6453
6635
  peg$savedPos = s0;
6454
- s1 = peg$f113(s1);
6636
+ s1 = peg$f117(s1);
6455
6637
  }
6456
6638
  s0 = s1;
6457
6639
  peg$silentFails--;
@@ -6502,7 +6684,7 @@ function peg$parse(input, options) {
6502
6684
  }
6503
6685
  if (s3 !== peg$FAILED) {
6504
6686
  peg$savedPos = s0;
6505
- s0 = peg$f114();
6687
+ s0 = peg$f118();
6506
6688
  } else {
6507
6689
  peg$currPos = s0;
6508
6690
  s0 = peg$FAILED;
@@ -6551,7 +6733,7 @@ function peg$parse(input, options) {
6551
6733
  }
6552
6734
  if (s1 !== peg$FAILED) {
6553
6735
  peg$savedPos = peg$currPos;
6554
- s2 = peg$f115(s1);
6736
+ s2 = peg$f119(s1);
6555
6737
  if (s2) {
6556
6738
  s2 = undefined;
6557
6739
  } else {
@@ -6559,7 +6741,7 @@ function peg$parse(input, options) {
6559
6741
  }
6560
6742
  if (s2 !== peg$FAILED) {
6561
6743
  peg$savedPos = s0;
6562
- s0 = peg$f116(s1);
6744
+ s0 = peg$f120(s1);
6563
6745
  } else {
6564
6746
  peg$currPos = s0;
6565
6747
  s0 = peg$FAILED;
@@ -6730,14 +6912,15 @@ const peg$allowedStartRules = [
6730
6912
  "identifierLiteral",
6731
6913
  "identifierPart",
6732
6914
  "identifierStart",
6915
+ "implicitParenthesesArgument",
6916
+ "implicitParenthesesArgumentList",
6917
+ "implicitParenthesesArguments",
6733
6918
  "implicitParenthesesCallExpression",
6734
- "implicitParensthesesArguments",
6735
6919
  "inlineSpace",
6736
6920
  "integerLiteral",
6737
6921
  "key",
6738
6922
  "keyChar",
6739
6923
  "keyCharStart",
6740
- "list",
6741
6924
  "logicalAndExpression",
6742
6925
  "logicalOrExpression",
6743
6926
  "minus",
@@ -6757,10 +6940,12 @@ const peg$allowedStartRules = [
6757
6940
  "objectProperty",
6758
6941
  "objectShorthandProperty",
6759
6942
  "objectPublicKey",
6760
- "optionalChaining",
6943
+ "optional",
6761
6944
  "parameter",
6762
6945
  "parameterList",
6763
6946
  "parameterSingleton",
6947
+ "parenthesesArgument",
6948
+ "parenthesesArgumentList",
6764
6949
  "parenthesesArguments",
6765
6950
  "pathArguments",
6766
6951
  "pathKeys",