@danielx/civet 0.5.55 → 0.5.57

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.
package/dist/main.mjs CHANGED
@@ -519,6 +519,8 @@ ${input.slice(result.pos)}
519
519
  BindingPropertyList,
520
520
  ArrayBindingPattern,
521
521
  ArrayBindingPatternContent,
522
+ BindingElementList,
523
+ NestedBindingElementList,
522
524
  Elision,
523
525
  NestedBindingProperties,
524
526
  NestedBindingPropertyList,
@@ -529,9 +531,26 @@ ${input.slice(result.pos)}
529
531
  BindingElement,
530
532
  BindingRestElement,
531
533
  EmptyBindingPattern,
534
+ MatchingPattern,
535
+ ObjectMatchingPattern,
536
+ ObjectMatchingPatternContent,
537
+ NestedMatchingProperties,
538
+ MatchingPropertyList,
539
+ NestedMatchingPropertyList,
540
+ MatchingProperty,
541
+ MatchingRestProperty,
542
+ ArrayMatchingPattern,
543
+ ArrayMatchingPatternContent,
544
+ NestedMatchingElements,
545
+ MatchingElementList,
546
+ NestedMatchingElementList,
547
+ MatchingElement,
548
+ MatchingRestElement,
532
549
  FunctionDeclaration,
533
550
  FunctionSignature,
534
551
  FunctionExpression,
552
+ OperatorDeclaration,
553
+ OperatorSignature,
535
554
  AmpersandBlockRHS,
536
555
  AmpersandUnaryPrefix,
537
556
  ThinArrowFunction,
@@ -542,6 +561,7 @@ ${input.slice(result.pos)}
542
561
  ThenClause,
543
562
  BracedOrEmptyBlock,
544
563
  EmptyBlock,
564
+ EmptyBareBlock,
545
565
  BracedBlock,
546
566
  SingleLineStatements,
547
567
  BracedContent,
@@ -552,7 +572,6 @@ ${input.slice(result.pos)}
552
572
  NullLiteral,
553
573
  BooleanLiteral,
554
574
  CoffeeScriptBooleanLiteral,
555
- Comma,
556
575
  Identifier,
557
576
  IdentifierName,
558
577
  IdentifierReference,
@@ -639,7 +658,6 @@ ${input.slice(result.pos)}
639
658
  NestedCaseClause,
640
659
  CaseClause,
641
660
  CaseExpressionList,
642
- NoExpressions,
643
661
  ImpliedColon,
644
662
  TryStatement,
645
663
  TryExpression,
@@ -702,7 +720,6 @@ ${input.slice(result.pos)}
702
720
  IntegerLiteralKind,
703
721
  DecimalIntegerLiteral,
704
722
  StringLiteral,
705
- BasicStringLiteral,
706
723
  DoubleStringCharacters,
707
724
  SingleStringCharacters,
708
725
  TripleDoubleStringCharacters,
@@ -764,6 +781,7 @@ ${input.slice(result.pos)}
764
781
  CloseParen,
765
782
  CoffeeSubstitutionStart,
766
783
  Colon,
784
+ Comma,
767
785
  ConstructorShorthand,
768
786
  Declare,
769
787
  Default,
@@ -794,6 +812,7 @@ ${input.slice(result.pos)}
794
812
  OpenBrace,
795
813
  OpenBracket,
796
814
  OpenParen,
815
+ Operator,
797
816
  Public,
798
817
  Private,
799
818
  Protected,
@@ -841,6 +860,7 @@ ${input.slice(result.pos)}
841
860
  JSXIdentifierName,
842
861
  JSXAttributes,
843
862
  JSXAttribute,
863
+ JSXAttributeSpace,
844
864
  JSXShorthandString,
845
865
  JSXAttributeName,
846
866
  JSXAttributeInitializer,
@@ -934,6 +954,8 @@ ${input.slice(result.pos)}
934
954
  InsertOpenBrace,
935
955
  InsertInlineOpenBrace,
936
956
  InsertCloseBrace,
957
+ InsertOpenBracket,
958
+ InsertCloseBracket,
937
959
  InsertComma,
938
960
  InsertConst,
939
961
  InsertLet,
@@ -969,33 +991,33 @@ ${input.slice(result.pos)}
969
991
  Nested
970
992
  });
971
993
  var $L0 = $L("/ ");
972
- var $L1 = $L("?");
973
- var $L2 = $L(".");
974
- var $L3 = $L("++");
975
- var $L4 = $L("--");
976
- var $L5 = $L("=>");
977
- var $L6 = $L(" ");
978
- var $L7 = $L("implements");
979
- var $L8 = $L("<:");
980
- var $L9 = $L("#");
981
- var $L10 = $L("super");
982
- var $L11 = $L("import");
983
- var $L12 = $L("!");
984
- var $L13 = $L("-");
985
- var $L14 = $L("super[");
986
- var $L15 = $L("import.meta");
987
- var $L16 = $L("");
988
- var $L17 = $L(")");
989
- var $L18 = $L("->");
990
- var $L19 = $L("}");
991
- var $L20 = $L("null");
992
- var $L21 = $L("true");
993
- var $L22 = $L("false");
994
- var $L23 = $L("yes");
995
- var $L24 = $L("on");
996
- var $L25 = $L("no");
997
- var $L26 = $L("off");
998
- var $L27 = $L(",");
994
+ var $L1 = $L("(");
995
+ var $L2 = $L("?");
996
+ var $L3 = $L(".");
997
+ var $L4 = $L("++");
998
+ var $L5 = $L("--");
999
+ var $L6 = $L("=>");
1000
+ var $L7 = $L(" ");
1001
+ var $L8 = $L("implements");
1002
+ var $L9 = $L("<:");
1003
+ var $L10 = $L("#");
1004
+ var $L11 = $L("super");
1005
+ var $L12 = $L("import");
1006
+ var $L13 = $L("!");
1007
+ var $L14 = $L("-");
1008
+ var $L15 = $L("super[");
1009
+ var $L16 = $L("import.meta");
1010
+ var $L17 = $L("");
1011
+ var $L18 = $L(")");
1012
+ var $L19 = $L("->");
1013
+ var $L20 = $L("}");
1014
+ var $L21 = $L("null");
1015
+ var $L22 = $L("true");
1016
+ var $L23 = $L("false");
1017
+ var $L24 = $L("yes");
1018
+ var $L25 = $L("on");
1019
+ var $L26 = $L("no");
1020
+ var $L27 = $L("off");
999
1021
  var $L28 = $L("=");
1000
1022
  var $L29 = $L(">");
1001
1023
  var $L30 = $L("]");
@@ -1018,49 +1040,49 @@ ${input.slice(result.pos)}
1018
1040
  var $L47 = $L("?=");
1019
1041
  var $L48 = $L("and=");
1020
1042
  var $L49 = $L("or=");
1021
- var $L50 = $L("**");
1022
- var $L51 = $L("*");
1023
- var $L52 = $L("/");
1024
- var $L53 = $L("%%");
1025
- var $L54 = $L("%");
1026
- var $L55 = $L("+");
1027
- var $L56 = $L("<=");
1028
- var $L57 = $L(">=");
1029
- var $L58 = $L("<?");
1030
- var $L59 = $L("<<");
1031
- var $L60 = $L(">>>");
1032
- var $L61 = $L(">>");
1033
- var $L62 = $L("!==");
1034
- var $L63 = $L("!=");
1035
- var $L64 = $L("isnt");
1036
- var $L65 = $L("===");
1037
- var $L66 = $L("==");
1038
- var $L67 = $L("and");
1039
- var $L68 = $L("&&");
1040
- var $L69 = $L("of");
1041
- var $L70 = $L("or");
1042
- var $L71 = $L("||");
1043
- var $L72 = $L("??");
1044
- var $L73 = $L("instanceof");
1045
- var $L74 = $L("not");
1046
- var $L75 = $L("in");
1047
- var $L76 = $L("is");
1048
- var $L77 = $L("&");
1049
- var $L78 = $L("^");
1050
- var $L79 = $L("|");
1051
- var $L80 = $L(";");
1052
- var $L81 = $L("own");
1053
- var $L82 = $L("finally");
1054
- var $L83 = $L("break");
1055
- var $L84 = $L("continue");
1056
- var $L85 = $L("debugger");
1057
- var $L86 = $L("assert");
1058
- var $L87 = $L(":=");
1059
- var $L88 = $L(".=");
1060
- var $L89 = $L("/*");
1061
- var $L90 = $L("*/");
1062
- var $L91 = $L("\\");
1063
- var $L92 = $L("(");
1043
+ var $L50 = $L("not");
1044
+ var $L51 = $L("**");
1045
+ var $L52 = $L("*");
1046
+ var $L53 = $L("/");
1047
+ var $L54 = $L("%%");
1048
+ var $L55 = $L("%");
1049
+ var $L56 = $L("+");
1050
+ var $L57 = $L("<=");
1051
+ var $L58 = $L(">=");
1052
+ var $L59 = $L("<?");
1053
+ var $L60 = $L("!<?");
1054
+ var $L61 = $L("<<");
1055
+ var $L62 = $L(">>>");
1056
+ var $L63 = $L(">>");
1057
+ var $L64 = $L("!==");
1058
+ var $L65 = $L("!=");
1059
+ var $L66 = $L("isnt");
1060
+ var $L67 = $L("===");
1061
+ var $L68 = $L("==");
1062
+ var $L69 = $L("and");
1063
+ var $L70 = $L("&&");
1064
+ var $L71 = $L("of");
1065
+ var $L72 = $L("or");
1066
+ var $L73 = $L("||");
1067
+ var $L74 = $L("??");
1068
+ var $L75 = $L("instanceof");
1069
+ var $L76 = $L("in");
1070
+ var $L77 = $L("is");
1071
+ var $L78 = $L("&");
1072
+ var $L79 = $L("^");
1073
+ var $L80 = $L("|");
1074
+ var $L81 = $L(";");
1075
+ var $L82 = $L("own");
1076
+ var $L83 = $L("finally");
1077
+ var $L84 = $L("break");
1078
+ var $L85 = $L("continue");
1079
+ var $L86 = $L("debugger");
1080
+ var $L87 = $L("assert");
1081
+ var $L88 = $L(":=");
1082
+ var $L89 = $L(".=");
1083
+ var $L90 = $L("/*");
1084
+ var $L91 = $L("*/");
1085
+ var $L92 = $L("\\");
1064
1086
  var $L93 = $L("[");
1065
1087
  var $L94 = $L("`");
1066
1088
  var $L95 = $L("abstract");
@@ -1074,71 +1096,73 @@ ${input.slice(result.pos)}
1074
1096
  var $L103 = $L("catch");
1075
1097
  var $L104 = $L("class");
1076
1098
  var $L105 = $L("#{");
1077
- var $L106 = $L("declare");
1078
- var $L107 = $L("default");
1079
- var $L108 = $L("delete");
1080
- var $L109 = $L("do");
1081
- var $L110 = $L("..");
1082
- var $L111 = $L("...");
1083
- var $L112 = $L("::");
1084
- var $L113 = $L('"');
1085
- var $L114 = $L("else");
1086
- var $L115 = $L("export");
1087
- var $L116 = $L("extends");
1088
- var $L117 = $L("for");
1089
- var $L118 = $L("from");
1090
- var $L119 = $L("function");
1091
- var $L120 = $L("get");
1092
- var $L121 = $L("set");
1093
- var $L122 = $L("if");
1094
- var $L123 = $L("let");
1095
- var $L124 = $L("const");
1096
- var $L125 = $L("loop");
1097
- var $L126 = $L("new");
1098
- var $L127 = $L("<");
1099
- var $L128 = $L("{");
1100
- var $L129 = $L("public");
1101
- var $L130 = $L("private");
1102
- var $L131 = $L("protected");
1103
- var $L132 = $L("|>");
1104
- var $L133 = $L("readonly");
1105
- var $L134 = $L("return");
1106
- var $L135 = $L("satisfies");
1107
- var $L136 = $L("'");
1108
- var $L137 = $L("static");
1109
- var $L138 = $L("${");
1110
- var $L139 = $L("switch");
1111
- var $L140 = $L("target");
1112
- var $L141 = $L("then");
1113
- var $L142 = $L("this");
1114
- var $L143 = $L("throw");
1115
- var $L144 = $L('"""');
1116
- var $L145 = $L("'''");
1117
- var $L146 = $L("///");
1118
- var $L147 = $L("```");
1119
- var $L148 = $L("try");
1120
- var $L149 = $L("typeof");
1121
- var $L150 = $L("unless");
1122
- var $L151 = $L("until");
1123
- var $L152 = $L("var");
1124
- var $L153 = $L("void");
1125
- var $L154 = $L("when");
1126
- var $L155 = $L("while");
1127
- var $L156 = $L("yield");
1128
- var $L157 = $L("/>");
1129
- var $L158 = $L("</");
1130
- var $L159 = $L("<>");
1131
- var $L160 = $L("</>");
1132
- var $L161 = $L("<!--");
1133
- var $L162 = $L("-->");
1134
- var $L163 = $L("type");
1135
- var $L164 = $L("interface");
1136
- var $L165 = $L("namespace");
1137
- var $L166 = $L("asserts");
1138
- var $L167 = $L("keyof");
1139
- var $L168 = $L("infer");
1140
- var $L169 = $L("[]");
1141
- var $L170 = $L("civet");
1099
+ var $L106 = $L(",");
1100
+ var $L107 = $L("declare");
1101
+ var $L108 = $L("default");
1102
+ var $L109 = $L("delete");
1103
+ var $L110 = $L("do");
1104
+ var $L111 = $L("..");
1105
+ var $L112 = $L("...");
1106
+ var $L113 = $L("::");
1107
+ var $L114 = $L('"');
1108
+ var $L115 = $L("else");
1109
+ var $L116 = $L("export");
1110
+ var $L117 = $L("extends");
1111
+ var $L118 = $L("for");
1112
+ var $L119 = $L("from");
1113
+ var $L120 = $L("function");
1114
+ var $L121 = $L("get");
1115
+ var $L122 = $L("set");
1116
+ var $L123 = $L("if");
1117
+ var $L124 = $L("let");
1118
+ var $L125 = $L("const");
1119
+ var $L126 = $L("loop");
1120
+ var $L127 = $L("new");
1121
+ var $L128 = $L("<");
1122
+ var $L129 = $L("{");
1123
+ var $L130 = $L("operator");
1124
+ var $L131 = $L("public");
1125
+ var $L132 = $L("private");
1126
+ var $L133 = $L("protected");
1127
+ var $L134 = $L("|>");
1128
+ var $L135 = $L("readonly");
1129
+ var $L136 = $L("return");
1130
+ var $L137 = $L("satisfies");
1131
+ var $L138 = $L("'");
1132
+ var $L139 = $L("static");
1133
+ var $L140 = $L("${");
1134
+ var $L141 = $L("switch");
1135
+ var $L142 = $L("target");
1136
+ var $L143 = $L("then");
1137
+ var $L144 = $L("this");
1138
+ var $L145 = $L("throw");
1139
+ var $L146 = $L('"""');
1140
+ var $L147 = $L("'''");
1141
+ var $L148 = $L("///");
1142
+ var $L149 = $L("```");
1143
+ var $L150 = $L("try");
1144
+ var $L151 = $L("typeof");
1145
+ var $L152 = $L("unless");
1146
+ var $L153 = $L("until");
1147
+ var $L154 = $L("var");
1148
+ var $L155 = $L("void");
1149
+ var $L156 = $L("when");
1150
+ var $L157 = $L("while");
1151
+ var $L158 = $L("yield");
1152
+ var $L159 = $L("/>");
1153
+ var $L160 = $L("</");
1154
+ var $L161 = $L("<>");
1155
+ var $L162 = $L("</>");
1156
+ var $L163 = $L("<!--");
1157
+ var $L164 = $L("-->");
1158
+ var $L165 = $L("type");
1159
+ var $L166 = $L("interface");
1160
+ var $L167 = $L("namespace");
1161
+ var $L168 = $L("asserts");
1162
+ var $L169 = $L("keyof");
1163
+ var $L170 = $L("infer");
1164
+ var $L171 = $L("[]");
1165
+ var $L172 = $L("civet");
1142
1166
  var $R0 = $R(new RegExp("(as|for|of|satisfies|then|when|implements)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
1143
1167
  var $R1 = $R(new RegExp("[0-9]", "suy"));
1144
1168
  var $R2 = $R(new RegExp("[&]", "suy"));
@@ -1177,29 +1201,30 @@ ${input.slice(result.pos)}
1177
1201
  var $R35 = $R(new RegExp("(?:isnt)(?!\\p{ID_Continue})", "suy"));
1178
1202
  var $R36 = $R(new RegExp("(?:by)(?!\\p{ID_Continue})", "suy"));
1179
1203
  var $R37 = $R(new RegExp("(?:of)(?!\\p{ID_Continue})", "suy"));
1180
- var $R38 = $R(new RegExp("(?:not)(?!\\p{ID_Continue})", "suy"));
1181
- var $R39 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1182
- var $R40 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1183
- var $R41 = $R(new RegExp(".", "suy"));
1184
- var $R42 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
1204
+ var $R38 = $R(new RegExp("(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})", "suy"));
1205
+ var $R39 = $R(new RegExp("\\/\\/(?!\\/)[^\\r\\n]*", "suy"));
1206
+ var $R40 = $R(new RegExp(".", "suy"));
1207
+ var $R41 = $R(new RegExp("#(?!##(?!#))([^\\r\\n]*)", "suy"));
1208
+ var $R42 = $R(new RegExp("[^]*?###", "suy"));
1185
1209
  var $R43 = $R(new RegExp("###(?!#)", "suy"));
1186
1210
  var $R44 = $R(new RegExp("[^\\r\\n]", "suy"));
1187
1211
  var $R45 = $R(new RegExp("[ \\t]+", "suy"));
1188
1212
  var $R46 = $R(new RegExp("(?!\\p{ID_Continue})", "suy"));
1189
1213
  var $R47 = $R(new RegExp("\\s", "suy"));
1190
1214
  var $R48 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$-])*", "suy"));
1191
- var $R49 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
1192
- var $R50 = $R(new RegExp("[<>]", "suy"));
1193
- var $R51 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
1194
- var $R52 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1195
- var $R53 = $R(new RegExp("[+-]?", "suy"));
1196
- var $R54 = $R(new RegExp("[+-]", "suy"));
1197
- var $R55 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1198
- var $R56 = $R(new RegExp("[\\t ]*", "suy"));
1199
- var $R57 = $R(new RegExp("[\\s]*", "suy"));
1200
- var $R58 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1201
- var $R59 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1202
- var $R60 = $R(new RegExp("[ \\t]*", "suy"));
1215
+ var $R49 = $R(new RegExp("[\\s>]", "suy"));
1216
+ var $R50 = $R(new RegExp("(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+", "suy"));
1217
+ var $R51 = $R(new RegExp("[<>]", "suy"));
1218
+ var $R52 = $R(new RegExp("(?:-[^-]|[^-]*)*", "suy"));
1219
+ var $R53 = $R(new RegExp("[^{}<>\\r\\n]+", "suy"));
1220
+ var $R54 = $R(new RegExp("[+-]?", "suy"));
1221
+ var $R55 = $R(new RegExp("[+-]", "suy"));
1222
+ var $R56 = $R(new RegExp("#![^\\r\\n]*", "suy"));
1223
+ var $R57 = $R(new RegExp("[\\t ]*", "suy"));
1224
+ var $R58 = $R(new RegExp("[\\s]*", "suy"));
1225
+ var $R59 = $R(new RegExp("\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?", "suy"));
1226
+ var $R60 = $R(new RegExp("\\r\\n|\\n|\\r|$", "suy"));
1227
+ var $R61 = $R(new RegExp("[ \\t]*", "suy"));
1203
1228
  var Program$0 = $TS($S(Reset, Init, __, $Q(TopLevelStatement), __), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1204
1229
  var statements = $4;
1205
1230
  module.processProgram(statements);
@@ -1496,7 +1521,7 @@ ${input.slice(result.pos)}
1496
1521
  }
1497
1522
  }
1498
1523
  var ApplicationStart$0 = $S(IndentedApplicationAllowed, $Y(NestedImplicitObjectLiteral));
1499
- var ApplicationStart$1 = $S($N(EOS), $Y($S($P(_), $N(ForbiddenImplicitCalls))));
1524
+ var ApplicationStart$1 = $S($N(EOS), $Y($S(_, $N(ForbiddenImplicitCalls))));
1500
1525
  function ApplicationStart(state) {
1501
1526
  let eventData;
1502
1527
  if (state.events) {
@@ -1522,6 +1547,11 @@ ${input.slice(result.pos)}
1522
1547
  var ForbiddenImplicitCalls$0 = $R$0($EXPECT($R0, fail, "ForbiddenImplicitCalls /(as|for|of|satisfies|then|when|implements)(?!\\p{ID_Continue}|[\\u200C\\u200D$])/"));
1523
1548
  var ForbiddenImplicitCalls$1 = $EXPECT($L0, fail, 'ForbiddenImplicitCalls "/ "');
1524
1549
  var ForbiddenImplicitCalls$2 = AtAt;
1550
+ var ForbiddenImplicitCalls$3 = $TS($S(Identifier, $N($EXPECT($L1, fail, 'ForbiddenImplicitCalls "("'))), function($skip, $loc, $0, $1, $2) {
1551
+ if (module.operators.has($1.name))
1552
+ return $1;
1553
+ return $skip;
1554
+ });
1525
1555
  function ForbiddenImplicitCalls(state) {
1526
1556
  let eventData;
1527
1557
  if (state.events) {
@@ -1533,12 +1563,12 @@ ${input.slice(result.pos)}
1533
1563
  }
1534
1564
  }
1535
1565
  if (state.tokenize) {
1536
- const result = $TOKEN("ForbiddenImplicitCalls", state, ForbiddenImplicitCalls$0(state) || ForbiddenImplicitCalls$1(state) || ForbiddenImplicitCalls$2(state));
1566
+ const result = $TOKEN("ForbiddenImplicitCalls", state, ForbiddenImplicitCalls$0(state) || ForbiddenImplicitCalls$1(state) || ForbiddenImplicitCalls$2(state) || ForbiddenImplicitCalls$3(state));
1537
1567
  if (state.events)
1538
1568
  state.events.exit?.("ForbiddenImplicitCalls", state, result, eventData);
1539
1569
  return result;
1540
1570
  } else {
1541
- const result = ForbiddenImplicitCalls$0(state) || ForbiddenImplicitCalls$1(state) || ForbiddenImplicitCalls$2(state);
1571
+ const result = ForbiddenImplicitCalls$0(state) || ForbiddenImplicitCalls$1(state) || ForbiddenImplicitCalls$2(state) || ForbiddenImplicitCalls$3(state);
1542
1572
  if (state.events)
1543
1573
  state.events.exit?.("ForbiddenImplicitCalls", state, result, eventData);
1544
1574
  return result;
@@ -1575,7 +1605,7 @@ ${input.slice(result.pos)}
1575
1605
  return result;
1576
1606
  }
1577
1607
  }
1578
- var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S($C(Samedent, IndentedFurther), $Y($S($E($EXPECT($L1, fail, 'TrailingMemberExpressions "?"')), $EXPECT($L2, fail, 'TrailingMemberExpressions "."'), $N($EXPECT($R1, fail, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
1608
+ var TrailingMemberExpressions$0 = $TS($S($Q(MemberExpressionRest), $Q($S($C(Samedent, IndentedFurther), $Y($S($E($EXPECT($L2, fail, 'TrailingMemberExpressions "?"')), $EXPECT($L3, fail, 'TrailingMemberExpressions "."'), $N($EXPECT($R1, fail, "TrailingMemberExpressions /[0-9]/")))), MemberExpressionRest))), function($skip, $loc, $0, $1, $2) {
1579
1609
  return $1.concat($2);
1580
1610
  });
1581
1611
  function TrailingMemberExpressions(state) {
@@ -1969,7 +1999,7 @@ ${input.slice(result.pos)}
1969
1999
  return result;
1970
2000
  }
1971
2001
  }
1972
- var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L3, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L4, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
2002
+ var UpdateExpressionSymbol$0 = $TV($C($EXPECT($L4, fail, 'UpdateExpressionSymbol "++"'), $EXPECT($L5, fail, 'UpdateExpressionSymbol "--"')), function($skip, $loc, $0, $1) {
1973
2003
  return { $loc, token: $1 };
1974
2004
  });
1975
2005
  function UpdateExpressionSymbol(state) {
@@ -2248,7 +2278,7 @@ ${input.slice(result.pos)}
2248
2278
  return result;
2249
2279
  }
2250
2280
  }
2251
- var FatArrow$0 = $TS($S(__, $EXPECT($L5, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
2281
+ var FatArrow$0 = $TS($S(__, $EXPECT($L6, fail, 'FatArrow "=>"')), function($skip, $loc, $0, $1, $2) {
2252
2282
  var ws = $1;
2253
2283
  if (!ws.length)
2254
2284
  return " =>";
@@ -2331,7 +2361,7 @@ ${input.slice(result.pos)}
2331
2361
  }
2332
2362
  }
2333
2363
  var TernaryRest$0 = NestedTernaryRest;
2334
- var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L6, fail, 'TernaryRest " "')), $Q(TrailingComment), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
2364
+ var TernaryRest$1 = $TS($S($N(CoffeeBinaryExistentialEnabled), $Y($EXPECT($L7, fail, 'TernaryRest " "')), $Q(TrailingComment), QuestionMark, ExtendedExpression, __, Colon, ExtendedExpression), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
2335
2365
  return $0.slice(2);
2336
2366
  });
2337
2367
  function TernaryRest(state) {
@@ -2506,13 +2536,13 @@ ${input.slice(result.pos)}
2506
2536
  }
2507
2537
  var PrimaryExpression$0 = ObjectLiteral;
2508
2538
  var PrimaryExpression$1 = ThisLiteral;
2509
- var PrimaryExpression$2 = Literal;
2510
- var PrimaryExpression$3 = ArrayLiteral;
2511
- var PrimaryExpression$4 = IdentifierReference;
2512
- var PrimaryExpression$5 = FunctionExpression;
2513
- var PrimaryExpression$6 = ClassExpression;
2514
- var PrimaryExpression$7 = RegularExpressionLiteral;
2515
- var PrimaryExpression$8 = TemplateLiteral;
2539
+ var PrimaryExpression$2 = TemplateLiteral;
2540
+ var PrimaryExpression$3 = Literal;
2541
+ var PrimaryExpression$4 = ArrayLiteral;
2542
+ var PrimaryExpression$5 = IdentifierReference;
2543
+ var PrimaryExpression$6 = FunctionExpression;
2544
+ var PrimaryExpression$7 = ClassExpression;
2545
+ var PrimaryExpression$8 = RegularExpressionLiteral;
2516
2546
  var PrimaryExpression$9 = ParenthesizedExpression;
2517
2547
  var PrimaryExpression$10 = JSXImplicitFragment;
2518
2548
  function PrimaryExpression(state) {
@@ -2545,8 +2575,8 @@ ${input.slice(result.pos)}
2545
2575
  }
2546
2576
  return {
2547
2577
  type: "ParenthesizedExpression",
2548
- expression: exp,
2549
- children: $0
2578
+ children: $0,
2579
+ expression: exp
2550
2580
  };
2551
2581
  });
2552
2582
  function ParenthesizedExpression(state) {
@@ -2691,7 +2721,7 @@ ${input.slice(result.pos)}
2691
2721
  return result;
2692
2722
  }
2693
2723
  }
2694
- var ExtendsToken$0 = $TS($S(Loc, __, OpenAngleBracket, $E($EXPECT($L6, fail, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2724
+ var ExtendsToken$0 = $TS($S(Loc, __, OpenAngleBracket, $E($EXPECT($L7, fail, 'ExtendsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2695
2725
  var l = $1;
2696
2726
  var ws = $2;
2697
2727
  var lt = $3;
@@ -2785,7 +2815,7 @@ ${input.slice(result.pos)}
2785
2815
  return result;
2786
2816
  }
2787
2817
  }
2788
- var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L6, fail, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2818
+ var ImplementsToken$0 = $TS($S(Loc, __, ImplementsShorthand, $E($EXPECT($L7, fail, 'ImplementsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
2789
2819
  var l = $1;
2790
2820
  var ws = $2;
2791
2821
  var token = $3;
@@ -2795,7 +2825,7 @@ ${input.slice(result.pos)}
2795
2825
  }
2796
2826
  return { children };
2797
2827
  });
2798
- var ImplementsToken$1 = $TS($S(__, $EXPECT($L7, fail, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
2828
+ var ImplementsToken$1 = $TS($S(__, $EXPECT($L8, fail, 'ImplementsToken "implements"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
2799
2829
  $2 = { $loc, token: $2 };
2800
2830
  return [$1, $2];
2801
2831
  });
@@ -2821,7 +2851,7 @@ ${input.slice(result.pos)}
2821
2851
  return result;
2822
2852
  }
2823
2853
  }
2824
- var ImplementsShorthand$0 = $TV($EXPECT($L8, fail, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
2854
+ var ImplementsShorthand$0 = $TV($EXPECT($L9, fail, 'ImplementsShorthand "<:"'), function($skip, $loc, $0, $1) {
2825
2855
  return { $loc, token: "implements " };
2826
2856
  });
2827
2857
  function ImplementsShorthand(state) {
@@ -3072,7 +3102,7 @@ ${input.slice(result.pos)}
3072
3102
  }
3073
3103
  }
3074
3104
  var ThisLiteral$0 = This;
3075
- var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E($EXPECT($L9, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
3105
+ var ThisLiteral$1 = $TS($S(AtThis, $TEXT($S($E($EXPECT($L10, fail, 'ThisLiteral "#"')), IdentifierName))), function($skip, $loc, $0, $1, $2) {
3076
3106
  var at = $1;
3077
3107
  var id = $2;
3078
3108
  return [at, ".", id];
@@ -3126,7 +3156,7 @@ ${input.slice(result.pos)}
3126
3156
  return result;
3127
3157
  }
3128
3158
  }
3129
- var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L2, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
3159
+ var LeftHandSideExpression$0 = $TS($S($Q($S(New, $N($EXPECT($L3, fail, 'LeftHandSideExpression "."')), __)), CallExpression), function($skip, $loc, $0, $1, $2) {
3130
3160
  if ($1.length)
3131
3161
  return $0;
3132
3162
  return $2;
@@ -3153,14 +3183,14 @@ ${input.slice(result.pos)}
3153
3183
  return result;
3154
3184
  }
3155
3185
  }
3156
- var CallExpression$0 = $TS($S($EXPECT($L10, fail, 'CallExpression "super"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3186
+ var CallExpression$0 = $TS($S($EXPECT($L11, fail, 'CallExpression "super"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3157
3187
  var rest = $3;
3158
3188
  return {
3159
3189
  type: "CallExpression",
3160
3190
  children: [$1, ...$2, ...rest.flat()]
3161
3191
  };
3162
3192
  });
3163
- var CallExpression$1 = $TS($S($EXPECT($L11, fail, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3193
+ var CallExpression$1 = $TS($S($EXPECT($L12, fail, 'CallExpression "import"'), ArgumentsWithTrailingMemberExpressions, $Q(CallExpressionRest)), function($skip, $loc, $0, $1, $2, $3) {
3164
3194
  var rest = $3;
3165
3195
  return {
3166
3196
  type: "CallExpression",
@@ -3259,7 +3289,7 @@ ${input.slice(result.pos)}
3259
3289
  return result;
3260
3290
  }
3261
3291
  }
3262
- var NonNullAssertion$0 = $T($EXPECT($L12, fail, 'NonNullAssertion "!"'), function(value) {
3292
+ var NonNullAssertion$0 = $T($EXPECT($L13, fail, 'NonNullAssertion "!"'), function(value) {
3263
3293
  return { "type": "NonNullAssertion", "ts": true, "children": value };
3264
3294
  });
3265
3295
  function NonNullAssertion(state) {
@@ -3289,7 +3319,7 @@ ${input.slice(result.pos)}
3289
3319
  if (rest.length) {
3290
3320
  return {
3291
3321
  type: "MemberExpression",
3292
- children: [$1].concat(rest)
3322
+ children: [$1].concat(rest.flat())
3293
3323
  };
3294
3324
  }
3295
3325
  return $1;
@@ -3323,7 +3353,7 @@ ${input.slice(result.pos)}
3323
3353
  if ($1.type === "Optional" && $2.type === "SliceExpression") {
3324
3354
  return [$1.children[0], $2];
3325
3355
  }
3326
- return $0;
3356
+ return $0.flat();
3327
3357
  }
3328
3358
  return $2;
3329
3359
  });
@@ -3369,35 +3399,42 @@ ${input.slice(result.pos)}
3369
3399
  ]
3370
3400
  };
3371
3401
  }
3372
- return $0;
3402
+ return {
3403
+ type: "Index",
3404
+ children: $0
3405
+ };
3373
3406
  });
3374
- var MemberBracketContent$1 = $TS($S(Dot, $C(StringLiteral, TemplateLiteral)), function($skip, $loc, $0, $1, $2) {
3407
+ var MemberBracketContent$1 = $TS($S(Dot, $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
3375
3408
  var dot = $1;
3376
3409
  var str = $2;
3377
- return [
3378
- { token: "[", $loc: dot.$loc },
3379
- str,
3380
- "]"
3381
- ];
3410
+ return {
3411
+ type: "Index",
3412
+ children: [
3413
+ { token: "[", $loc: dot.$loc },
3414
+ str,
3415
+ "]"
3416
+ ]
3417
+ };
3382
3418
  });
3383
- var MemberBracketContent$2 = $TS($S(Dot, $N($EXPECT($L2, fail, 'MemberBracketContent "."')), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
3419
+ var MemberBracketContent$2 = $TS($S(Dot, IntegerLiteral), function($skip, $loc, $0, $1, $2) {
3384
3420
  var dot = $1;
3385
- var num = $3;
3386
- return [
3387
- { token: "[", $loc: dot.$loc },
3388
- num,
3389
- "]"
3390
- ];
3421
+ var num = $2;
3422
+ return {
3423
+ type: "Index",
3424
+ children: [
3425
+ { token: "[", $loc: dot.$loc },
3426
+ num,
3427
+ "]"
3428
+ ]
3429
+ };
3391
3430
  });
3392
- var MemberBracketContent$3 = $TS($S(Dot, $EXPECT($L13, fail, 'MemberBracketContent "-"'), $N($EXPECT($L2, fail, 'MemberBracketContent "."')), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3, $4) {
3431
+ var MemberBracketContent$3 = $TS($S(Dot, $EXPECT($L14, fail, 'MemberBracketContent "-"'), IntegerLiteral), function($skip, $loc, $0, $1, $2, $3) {
3393
3432
  var dot = $1;
3394
3433
  var neg = $2;
3395
- var num = $4;
3434
+ var num = $3;
3396
3435
  return [
3397
- { token: ".at(", $loc: dot.$loc },
3398
- neg,
3399
- num,
3400
- ")"
3436
+ { type: "PropertyAccess", children: [dot, "at"] },
3437
+ { type: "Call", children: ["(", neg, num, ")"] }
3401
3438
  ];
3402
3439
  });
3403
3440
  function MemberBracketContent(state) {
@@ -3533,8 +3570,8 @@ ${input.slice(result.pos)}
3533
3570
  return result;
3534
3571
  }
3535
3572
  }
3536
- var SuperProperty$0 = $S($EXPECT($L14, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
3537
- var SuperProperty$1 = $S($EXPECT($L10, fail, 'SuperProperty "super"'), $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
3573
+ var SuperProperty$0 = $S($EXPECT($L15, fail, 'SuperProperty "super["'), ExtendedExpression, __, CloseBracket);
3574
+ var SuperProperty$1 = $S($EXPECT($L11, fail, 'SuperProperty "super"'), $N($C(QuestionMark, NonNullAssertion)), PropertyAccess);
3538
3575
  function SuperProperty(state) {
3539
3576
  let eventData;
3540
3577
  if (state.events) {
@@ -3558,7 +3595,7 @@ ${input.slice(result.pos)}
3558
3595
  }
3559
3596
  }
3560
3597
  var MetaProperty$0 = $S(New, Dot, Target);
3561
- var MetaProperty$1 = $TS($S($EXPECT($L15, fail, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3598
+ var MetaProperty$1 = $TS($S($EXPECT($L16, fail, 'MetaProperty "import.meta"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3562
3599
  return { $loc, token: $1 };
3563
3600
  });
3564
3601
  function MetaProperty(state) {
@@ -3584,7 +3621,7 @@ ${input.slice(result.pos)}
3584
3621
  }
3585
3622
  }
3586
3623
  var Parameters$0 = NonEmptyParameters;
3587
- var Parameters$1 = $TV($EXPECT($L16, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
3624
+ var Parameters$1 = $TV($EXPECT($L17, fail, 'Parameters ""'), function($skip, $loc, $0, $1) {
3588
3625
  return {
3589
3626
  type: "Parameters",
3590
3627
  children: [{ $loc, token: "()" }],
@@ -3745,7 +3782,7 @@ ${input.slice(result.pos)}
3745
3782
  }
3746
3783
  }
3747
3784
  var ParameterElementDelimiter$0 = $S($Q(_), Comma);
3748
- var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L17, fail, 'ParameterElementDelimiter ")"')));
3785
+ var ParameterElementDelimiter$1 = $Y($S(__, $EXPECT($L18, fail, 'ParameterElementDelimiter ")"')));
3749
3786
  var ParameterElementDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
3750
3787
  return value[1];
3751
3788
  });
@@ -3935,10 +3972,10 @@ ${input.slice(result.pos)}
3935
3972
  }
3936
3973
  var ObjectBindingPatternContent$0 = NestedBindingProperties;
3937
3974
  var ObjectBindingPatternContent$1 = $TV($E(BindingPropertyList), function($skip, $loc, $0, $1) {
3938
- var props = $0;
3939
- if (!props)
3975
+ var props2 = $0;
3976
+ if (!props2)
3940
3977
  return { children: [], names: [] };
3941
- return module.reorderBindingRestProperty(props);
3978
+ return module.reorderBindingRestProperty(props2);
3942
3979
  });
3943
3980
  function ObjectBindingPatternContent(state) {
3944
3981
  let eventData;
@@ -3963,8 +4000,8 @@ ${input.slice(result.pos)}
3963
4000
  }
3964
4001
  }
3965
4002
  var BindingPropertyList$0 = $TV($P($S(BindingProperty, ObjectPropertyDelimiter)), function($skip, $loc, $0, $1) {
3966
- var props = $0;
3967
- return props.map(([prop, delim]) => {
4003
+ var props2 = $0;
4004
+ return props2.map(([prop, delim]) => {
3968
4005
  return {
3969
4006
  ...prop,
3970
4007
  children: [...prop.children, delim]
@@ -4024,36 +4061,11 @@ ${input.slice(result.pos)}
4024
4061
  }
4025
4062
  }
4026
4063
  var ArrayBindingPatternContent$0 = NestedBindingElements;
4027
- var ArrayBindingPatternContent$1 = $TS($S($Q($C(BindingElement, Elision)), $E($S(BindingRestElement, ArrayElementDelimiter)), $Q($C(BindingElement, Elision))), function($skip, $loc, $0, $1, $2, $3) {
4028
- var props = $1;
4029
- var rest = $2;
4030
- var after = $3;
4031
- const names = props.flatMap((p) => p.names || []);
4032
- const children = [...props];
4033
- let blockPrefix;
4034
- if (rest) {
4035
- const [restBinding] = rest;
4036
- children.push(restBinding);
4037
- let restIdentifier;
4038
- if (restBinding.ref) {
4039
- restIdentifier = restBinding.ref;
4040
- } else {
4041
- restIdentifier = restBinding.names[0];
4042
- names.push(...restBinding.names);
4043
- }
4044
- if (after.length) {
4045
- const spliceRef = module.getRef("splice");
4046
- blockPrefix = {
4047
- children: ["[", module.insertTrimmingSpace(after, ""), "] = ", spliceRef, ".call(", restIdentifier, ", -", after.length.toString(), ")"],
4048
- names: after.flatMap((p) => p.names)
4049
- };
4050
- }
4051
- }
4052
- return {
4053
- names,
4054
- children,
4055
- blockPrefix
4056
- };
4064
+ var ArrayBindingPatternContent$1 = $TV($E(BindingElementList), function($skip, $loc, $0, $1) {
4065
+ var elements = $0;
4066
+ if (!elements)
4067
+ return { children: [], names: [] };
4068
+ return module.adjustBindingElements(elements);
4057
4069
  });
4058
4070
  function ArrayBindingPatternContent(state) {
4059
4071
  let eventData;
@@ -4077,6 +4089,71 @@ ${input.slice(result.pos)}
4077
4089
  return result;
4078
4090
  }
4079
4091
  }
4092
+ var BindingElementList$0 = $TV($P($S(BindingElement, ArrayElementDelimiter)), function($skip, $loc, $0, $1) {
4093
+ var elements = $0;
4094
+ return elements.map(([element, delim]) => {
4095
+ return {
4096
+ ...element,
4097
+ children: [...element.children, delim]
4098
+ };
4099
+ });
4100
+ });
4101
+ function BindingElementList(state) {
4102
+ let eventData;
4103
+ if (state.events) {
4104
+ const result = state.events.enter?.("BindingElementList", state);
4105
+ if (result) {
4106
+ if (result.cache)
4107
+ return result.cache;
4108
+ eventData = result.data;
4109
+ }
4110
+ }
4111
+ if (state.tokenize) {
4112
+ const result = $TOKEN("BindingElementList", state, BindingElementList$0(state));
4113
+ if (state.events)
4114
+ state.events.exit?.("BindingElementList", state, result, eventData);
4115
+ return result;
4116
+ } else {
4117
+ const result = BindingElementList$0(state);
4118
+ if (state.events)
4119
+ state.events.exit?.("BindingElementList", state, result, eventData);
4120
+ return result;
4121
+ }
4122
+ }
4123
+ var NestedBindingElementList$0 = $TS($S(Nested, BindingElementList), function($skip, $loc, $0, $1, $2) {
4124
+ var ws = $1;
4125
+ var elements = $2;
4126
+ return elements.map((element, i) => {
4127
+ if (i > 0)
4128
+ return element;
4129
+ return {
4130
+ ...element,
4131
+ children: [ws, ...element.children]
4132
+ };
4133
+ });
4134
+ });
4135
+ function NestedBindingElementList(state) {
4136
+ let eventData;
4137
+ if (state.events) {
4138
+ const result = state.events.enter?.("NestedBindingElementList", state);
4139
+ if (result) {
4140
+ if (result.cache)
4141
+ return result.cache;
4142
+ eventData = result.data;
4143
+ }
4144
+ }
4145
+ if (state.tokenize) {
4146
+ const result = $TOKEN("NestedBindingElementList", state, NestedBindingElementList$0(state));
4147
+ if (state.events)
4148
+ state.events.exit?.("NestedBindingElementList", state, result, eventData);
4149
+ return result;
4150
+ } else {
4151
+ const result = NestedBindingElementList$0(state);
4152
+ if (state.events)
4153
+ state.events.exit?.("NestedBindingElementList", state, result, eventData);
4154
+ return result;
4155
+ }
4156
+ }
4080
4157
  var Elision$0 = $S(__, Comma);
4081
4158
  function Elision(state) {
4082
4159
  let eventData;
@@ -4101,11 +4178,10 @@ ${input.slice(result.pos)}
4101
4178
  }
4102
4179
  }
4103
4180
  var NestedBindingProperties$0 = $TS($S(PushIndent, $Q(NestedBindingPropertyList), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4104
- var props = $2;
4105
- if (!props.length)
4181
+ var props2 = $2;
4182
+ if (!props2.length)
4106
4183
  return $skip;
4107
- props = props.flat();
4108
- return module.reorderBindingRestProperty(props);
4184
+ return module.reorderBindingRestProperty(props2.flat());
4109
4185
  });
4110
4186
  function NestedBindingProperties(state) {
4111
4187
  let eventData;
@@ -4131,8 +4207,8 @@ ${input.slice(result.pos)}
4131
4207
  }
4132
4208
  var NestedBindingPropertyList$0 = $TS($S(Nested, BindingPropertyList), function($skip, $loc, $0, $1, $2) {
4133
4209
  var ws = $1;
4134
- var props = $2;
4135
- return props.map((prop, i) => {
4210
+ var props2 = $2;
4211
+ return props2.map((prop, i) => {
4136
4212
  if (i > 0)
4137
4213
  return prop;
4138
4214
  return {
@@ -4250,37 +4326,11 @@ ${input.slice(result.pos)}
4250
4326
  return result;
4251
4327
  }
4252
4328
  }
4253
- var NestedBindingElements$0 = $TS($S(PushIndent, $Q(NestedBindingElement), $E($S(Nested, BindingRestElement, ArrayElementDelimiter)), $Q(NestedBindingElement), PopIndent), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4254
- var props = $2;
4255
- var rest = $3;
4256
- var after = $4;
4257
- if (!(props.length || rest))
4329
+ var NestedBindingElements$0 = $TS($S(PushIndent, $Q(NestedBindingElementList), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4330
+ var elements = $2;
4331
+ if (!elements.length)
4258
4332
  return $skip;
4259
- const names = props.flatMap((p) => p.names), children = [...props];
4260
- let blockPrefix;
4261
- if (rest) {
4262
- const [, restBinding] = rest;
4263
- let restIdentifier;
4264
- if (restBinding.ref) {
4265
- restIdentifier = restBinding.binding.ref;
4266
- } else {
4267
- restIdentifier = restBinding.names[0];
4268
- }
4269
- if (after.length) {
4270
- const spliceRef = module.getRef("splice");
4271
- blockPrefix = {
4272
- children: ["[", module.insertTrimmingSpace(after, ""), "] = ", spliceRef, ".call(", restIdentifier, ", -", after.length.toString(), ")"],
4273
- names: after.flatMap((p) => p.names)
4274
- };
4275
- }
4276
- children.push(...rest);
4277
- names.push(...restBinding.names);
4278
- }
4279
- return {
4280
- children,
4281
- names,
4282
- blockPrefix
4283
- };
4333
+ return module.adjustBindingElements(elements.flat());
4284
4334
  });
4285
4335
  function NestedBindingElements(state) {
4286
4336
  let eventData;
@@ -4312,10 +4362,498 @@ ${input.slice(result.pos)}
4312
4362
  children: [indent, ...element.children]
4313
4363
  };
4314
4364
  });
4315
- function NestedBindingElement(state) {
4365
+ function NestedBindingElement(state) {
4366
+ let eventData;
4367
+ if (state.events) {
4368
+ const result = state.events.enter?.("NestedBindingElement", state);
4369
+ if (result) {
4370
+ if (result.cache)
4371
+ return result.cache;
4372
+ eventData = result.data;
4373
+ }
4374
+ }
4375
+ if (state.tokenize) {
4376
+ const result = $TOKEN("NestedBindingElement", state, NestedBindingElement$0(state));
4377
+ if (state.events)
4378
+ state.events.exit?.("NestedBindingElement", state, result, eventData);
4379
+ return result;
4380
+ } else {
4381
+ const result = NestedBindingElement$0(state);
4382
+ if (state.events)
4383
+ state.events.exit?.("NestedBindingElement", state, result, eventData);
4384
+ return result;
4385
+ }
4386
+ }
4387
+ var BindingElement$0 = BindingRestElement;
4388
+ var BindingElement$1 = $TS($S($C(BindingIdentifier, BindingPattern), $E(Initializer)), function($skip, $loc, $0, $1, $2) {
4389
+ var binding = $1;
4390
+ return {
4391
+ names: binding.names,
4392
+ children: $0
4393
+ };
4394
+ });
4395
+ var BindingElement$2 = $TV($EXPECT($L17, fail, 'BindingElement ""'), function($skip, $loc, $0, $1) {
4396
+ return {
4397
+ type: "ElisionElement",
4398
+ children: [],
4399
+ names: []
4400
+ };
4401
+ });
4402
+ function BindingElement(state) {
4403
+ let eventData;
4404
+ if (state.events) {
4405
+ const result = state.events.enter?.("BindingElement", state);
4406
+ if (result) {
4407
+ if (result.cache)
4408
+ return result.cache;
4409
+ eventData = result.data;
4410
+ }
4411
+ }
4412
+ if (state.tokenize) {
4413
+ const result = $TOKEN("BindingElement", state, BindingElement$0(state) || BindingElement$1(state) || BindingElement$2(state));
4414
+ if (state.events)
4415
+ state.events.exit?.("BindingElement", state, result, eventData);
4416
+ return result;
4417
+ } else {
4418
+ const result = BindingElement$0(state) || BindingElement$1(state) || BindingElement$2(state);
4419
+ if (state.events)
4420
+ state.events.exit?.("BindingElement", state, result, eventData);
4421
+ return result;
4422
+ }
4423
+ }
4424
+ var BindingRestElement$0 = $TS($S($E(_), DotDotDot, $C(BindingIdentifier, BindingPattern, EmptyBindingPattern)), function($skip, $loc, $0, $1, $2, $3) {
4425
+ var ws = $1;
4426
+ var dots = $2;
4427
+ var binding = $3;
4428
+ return {
4429
+ ...binding,
4430
+ children: [...ws || [], dots, ...binding.children],
4431
+ rest: true
4432
+ };
4433
+ });
4434
+ var BindingRestElement$1 = $TS($S($E(_), $C(BindingIdentifier, BindingPattern), DotDotDot), function($skip, $loc, $0, $1, $2, $3) {
4435
+ var ws = $1;
4436
+ var binding = $2;
4437
+ var dots = $3;
4438
+ return {
4439
+ ...binding,
4440
+ children: [...ws || [], dots, ...binding.children],
4441
+ rest: true
4442
+ };
4443
+ });
4444
+ function BindingRestElement(state) {
4445
+ let eventData;
4446
+ if (state.events) {
4447
+ const result = state.events.enter?.("BindingRestElement", state);
4448
+ if (result) {
4449
+ if (result.cache)
4450
+ return result.cache;
4451
+ eventData = result.data;
4452
+ }
4453
+ }
4454
+ if (state.tokenize) {
4455
+ const result = $TOKEN("BindingRestElement", state, BindingRestElement$0(state) || BindingRestElement$1(state));
4456
+ if (state.events)
4457
+ state.events.exit?.("BindingRestElement", state, result, eventData);
4458
+ return result;
4459
+ } else {
4460
+ const result = BindingRestElement$0(state) || BindingRestElement$1(state);
4461
+ if (state.events)
4462
+ state.events.exit?.("BindingRestElement", state, result, eventData);
4463
+ return result;
4464
+ }
4465
+ }
4466
+ var EmptyBindingPattern$0 = $TV($EXPECT($L17, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
4467
+ const ref = {
4468
+ type: "Ref",
4469
+ base: "ref",
4470
+ id: "ref"
4471
+ };
4472
+ return {
4473
+ type: "EmptyBinding",
4474
+ children: [ref],
4475
+ names: [],
4476
+ ref
4477
+ };
4478
+ });
4479
+ function EmptyBindingPattern(state) {
4480
+ let eventData;
4481
+ if (state.events) {
4482
+ const result = state.events.enter?.("EmptyBindingPattern", state);
4483
+ if (result) {
4484
+ if (result.cache)
4485
+ return result.cache;
4486
+ eventData = result.data;
4487
+ }
4488
+ }
4489
+ if (state.tokenize) {
4490
+ const result = $TOKEN("EmptyBindingPattern", state, EmptyBindingPattern$0(state));
4491
+ if (state.events)
4492
+ state.events.exit?.("EmptyBindingPattern", state, result, eventData);
4493
+ return result;
4494
+ } else {
4495
+ const result = EmptyBindingPattern$0(state);
4496
+ if (state.events)
4497
+ state.events.exit?.("EmptyBindingPattern", state, result, eventData);
4498
+ return result;
4499
+ }
4500
+ }
4501
+ var MatchingPattern$0 = ObjectMatchingPattern;
4502
+ var MatchingPattern$1 = ArrayMatchingPattern;
4503
+ var MatchingPattern$2 = Literal;
4504
+ var MatchingPattern$3 = RegularExpressionLiteral;
4505
+ function MatchingPattern(state) {
4506
+ let eventData;
4507
+ if (state.events) {
4508
+ const result = state.events.enter?.("MatchingPattern", state);
4509
+ if (result) {
4510
+ if (result.cache)
4511
+ return result.cache;
4512
+ eventData = result.data;
4513
+ }
4514
+ }
4515
+ if (state.tokenize) {
4516
+ const result = $TOKEN("MatchingPattern", state, MatchingPattern$0(state) || MatchingPattern$1(state) || MatchingPattern$2(state) || MatchingPattern$3(state));
4517
+ if (state.events)
4518
+ state.events.exit?.("MatchingPattern", state, result, eventData);
4519
+ return result;
4520
+ } else {
4521
+ const result = MatchingPattern$0(state) || MatchingPattern$1(state) || MatchingPattern$2(state) || MatchingPattern$3(state);
4522
+ if (state.events)
4523
+ state.events.exit?.("MatchingPattern", state, result, eventData);
4524
+ return result;
4525
+ }
4526
+ }
4527
+ var ObjectMatchingPattern$0 = $TS($S($E(_), OpenBrace, ObjectMatchingPatternContent, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4528
+ var ws = $1;
4529
+ var open = $2;
4530
+ var properties = $3;
4531
+ var ws = $4;
4532
+ var close = $5;
4533
+ return {
4534
+ type: "ObjectMatchingPattern",
4535
+ children: [ws, open, ...properties.children, ...ws, close],
4536
+ properties: properties.children
4537
+ };
4538
+ });
4539
+ function ObjectMatchingPattern(state) {
4540
+ let eventData;
4541
+ if (state.events) {
4542
+ const result = state.events.enter?.("ObjectMatchingPattern", state);
4543
+ if (result) {
4544
+ if (result.cache)
4545
+ return result.cache;
4546
+ eventData = result.data;
4547
+ }
4548
+ }
4549
+ if (state.tokenize) {
4550
+ const result = $TOKEN("ObjectMatchingPattern", state, ObjectMatchingPattern$0(state));
4551
+ if (state.events)
4552
+ state.events.exit?.("ObjectMatchingPattern", state, result, eventData);
4553
+ return result;
4554
+ } else {
4555
+ const result = ObjectMatchingPattern$0(state);
4556
+ if (state.events)
4557
+ state.events.exit?.("ObjectMatchingPattern", state, result, eventData);
4558
+ return result;
4559
+ }
4560
+ }
4561
+ var ObjectMatchingPatternContent$0 = NestedMatchingProperties;
4562
+ var ObjectMatchingPatternContent$1 = $TV($E(MatchingPropertyList), function($skip, $loc, $0, $1) {
4563
+ var properties = $0;
4564
+ if (!properties)
4565
+ return { children: [], names: [] };
4566
+ return module.reorderBindingRestProperty(properties);
4567
+ });
4568
+ function ObjectMatchingPatternContent(state) {
4569
+ let eventData;
4570
+ if (state.events) {
4571
+ const result = state.events.enter?.("ObjectMatchingPatternContent", state);
4572
+ if (result) {
4573
+ if (result.cache)
4574
+ return result.cache;
4575
+ eventData = result.data;
4576
+ }
4577
+ }
4578
+ if (state.tokenize) {
4579
+ const result = $TOKEN("ObjectMatchingPatternContent", state, ObjectMatchingPatternContent$0(state) || ObjectMatchingPatternContent$1(state));
4580
+ if (state.events)
4581
+ state.events.exit?.("ObjectMatchingPatternContent", state, result, eventData);
4582
+ return result;
4583
+ } else {
4584
+ const result = ObjectMatchingPatternContent$0(state) || ObjectMatchingPatternContent$1(state);
4585
+ if (state.events)
4586
+ state.events.exit?.("ObjectMatchingPatternContent", state, result, eventData);
4587
+ return result;
4588
+ }
4589
+ }
4590
+ var NestedMatchingProperties$0 = $TS($S(PushIndent, $Q(NestedMatchingPropertyList), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4591
+ var properties = $2;
4592
+ if (!props.length)
4593
+ return $skip;
4594
+ return module.reorderBindingRestProperty(props.flat());
4595
+ });
4596
+ function NestedMatchingProperties(state) {
4597
+ let eventData;
4598
+ if (state.events) {
4599
+ const result = state.events.enter?.("NestedMatchingProperties", state);
4600
+ if (result) {
4601
+ if (result.cache)
4602
+ return result.cache;
4603
+ eventData = result.data;
4604
+ }
4605
+ }
4606
+ if (state.tokenize) {
4607
+ const result = $TOKEN("NestedMatchingProperties", state, NestedMatchingProperties$0(state));
4608
+ if (state.events)
4609
+ state.events.exit?.("NestedMatchingProperties", state, result, eventData);
4610
+ return result;
4611
+ } else {
4612
+ const result = NestedMatchingProperties$0(state);
4613
+ if (state.events)
4614
+ state.events.exit?.("NestedMatchingProperties", state, result, eventData);
4615
+ return result;
4616
+ }
4617
+ }
4618
+ var MatchingPropertyList$0 = $TV($P($S(MatchingProperty, ObjectPropertyDelimiter)), function($skip, $loc, $0, $1) {
4619
+ var props2 = $0;
4620
+ return props2.map(([prop, delim]) => {
4621
+ return {
4622
+ ...prop,
4623
+ children: [...prop.children, delim]
4624
+ };
4625
+ });
4626
+ });
4627
+ function MatchingPropertyList(state) {
4628
+ let eventData;
4629
+ if (state.events) {
4630
+ const result = state.events.enter?.("MatchingPropertyList", state);
4631
+ if (result) {
4632
+ if (result.cache)
4633
+ return result.cache;
4634
+ eventData = result.data;
4635
+ }
4636
+ }
4637
+ if (state.tokenize) {
4638
+ const result = $TOKEN("MatchingPropertyList", state, MatchingPropertyList$0(state));
4639
+ if (state.events)
4640
+ state.events.exit?.("MatchingPropertyList", state, result, eventData);
4641
+ return result;
4642
+ } else {
4643
+ const result = MatchingPropertyList$0(state);
4644
+ if (state.events)
4645
+ state.events.exit?.("MatchingPropertyList", state, result, eventData);
4646
+ return result;
4647
+ }
4648
+ }
4649
+ var NestedMatchingPropertyList$0 = $TS($S(Nested, MatchingPropertyList), function($skip, $loc, $0, $1, $2) {
4650
+ var ws = $1;
4651
+ var props2 = $2;
4652
+ return props2.map((prop, i) => {
4653
+ if (i > 0)
4654
+ return prop;
4655
+ return {
4656
+ ...prop,
4657
+ children: [ws, ...prop.children]
4658
+ };
4659
+ });
4660
+ });
4661
+ function NestedMatchingPropertyList(state) {
4662
+ let eventData;
4663
+ if (state.events) {
4664
+ const result = state.events.enter?.("NestedMatchingPropertyList", state);
4665
+ if (result) {
4666
+ if (result.cache)
4667
+ return result.cache;
4668
+ eventData = result.data;
4669
+ }
4670
+ }
4671
+ if (state.tokenize) {
4672
+ const result = $TOKEN("NestedMatchingPropertyList", state, NestedMatchingPropertyList$0(state));
4673
+ if (state.events)
4674
+ state.events.exit?.("NestedMatchingPropertyList", state, result, eventData);
4675
+ return result;
4676
+ } else {
4677
+ const result = NestedMatchingPropertyList$0(state);
4678
+ if (state.events)
4679
+ state.events.exit?.("NestedMatchingPropertyList", state, result, eventData);
4680
+ return result;
4681
+ }
4682
+ }
4683
+ var MatchingProperty$0 = MatchingRestProperty;
4684
+ var MatchingProperty$1 = $TS($S($E(_), PropertyName, __, Colon, $E(_), $C(BindingIdentifier, MatchingPattern)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
4685
+ var name = $2;
4686
+ var match = $6;
4687
+ return {
4688
+ type: "BindingMatchProperty",
4689
+ name,
4690
+ match,
4691
+ children: $0
4692
+ };
4693
+ });
4694
+ var MatchingProperty$2 = $TS($S($E(_), BindingIdentifier), function($skip, $loc, $0, $1, $2) {
4695
+ var ws = $1;
4696
+ var b = $2;
4697
+ if (b.type === "AtBinding") {
4698
+ return {
4699
+ type: "AtBindingProperty",
4700
+ ref: b.ref,
4701
+ names: [],
4702
+ children: [ws, b]
4703
+ };
4704
+ }
4705
+ return {
4706
+ type: "BindingProperty",
4707
+ names: b.names,
4708
+ children: [ws, b],
4709
+ identifier: b
4710
+ };
4711
+ });
4712
+ function MatchingProperty(state) {
4713
+ let eventData;
4714
+ if (state.events) {
4715
+ const result = state.events.enter?.("MatchingProperty", state);
4716
+ if (result) {
4717
+ if (result.cache)
4718
+ return result.cache;
4719
+ eventData = result.data;
4720
+ }
4721
+ }
4722
+ if (state.tokenize) {
4723
+ const result = $TOKEN("MatchingProperty", state, MatchingProperty$0(state) || MatchingProperty$1(state) || MatchingProperty$2(state));
4724
+ if (state.events)
4725
+ state.events.exit?.("MatchingProperty", state, result, eventData);
4726
+ return result;
4727
+ } else {
4728
+ const result = MatchingProperty$0(state) || MatchingProperty$1(state) || MatchingProperty$2(state);
4729
+ if (state.events)
4730
+ state.events.exit?.("MatchingProperty", state, result, eventData);
4731
+ return result;
4732
+ }
4733
+ }
4734
+ var MatchingRestProperty$0 = BindingRestProperty;
4735
+ function MatchingRestProperty(state) {
4736
+ let eventData;
4737
+ if (state.events) {
4738
+ const result = state.events.enter?.("MatchingRestProperty", state);
4739
+ if (result) {
4740
+ if (result.cache)
4741
+ return result.cache;
4742
+ eventData = result.data;
4743
+ }
4744
+ }
4745
+ if (state.tokenize) {
4746
+ const result = $TOKEN("MatchingRestProperty", state, MatchingRestProperty$0(state));
4747
+ if (state.events)
4748
+ state.events.exit?.("MatchingRestProperty", state, result, eventData);
4749
+ return result;
4750
+ } else {
4751
+ const result = MatchingRestProperty$0(state);
4752
+ if (state.events)
4753
+ state.events.exit?.("MatchingRestProperty", state, result, eventData);
4754
+ return result;
4755
+ }
4756
+ }
4757
+ var ArrayMatchingPattern$0 = $TS($S($E(_), OpenBracket, ArrayMatchingPatternContent, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4758
+ var ws = $1;
4759
+ var elements = $3;
4760
+ return {
4761
+ type: "ArrayMatchingPattern",
4762
+ children: $0,
4763
+ elements: elements.children,
4764
+ length: elements.length
4765
+ };
4766
+ });
4767
+ function ArrayMatchingPattern(state) {
4768
+ let eventData;
4769
+ if (state.events) {
4770
+ const result = state.events.enter?.("ArrayMatchingPattern", state);
4771
+ if (result) {
4772
+ if (result.cache)
4773
+ return result.cache;
4774
+ eventData = result.data;
4775
+ }
4776
+ }
4777
+ if (state.tokenize) {
4778
+ const result = $TOKEN("ArrayMatchingPattern", state, ArrayMatchingPattern$0(state));
4779
+ if (state.events)
4780
+ state.events.exit?.("ArrayMatchingPattern", state, result, eventData);
4781
+ return result;
4782
+ } else {
4783
+ const result = ArrayMatchingPattern$0(state);
4784
+ if (state.events)
4785
+ state.events.exit?.("ArrayMatchingPattern", state, result, eventData);
4786
+ return result;
4787
+ }
4788
+ }
4789
+ var ArrayMatchingPatternContent$0 = NestedMatchingElements;
4790
+ var ArrayMatchingPatternContent$1 = $TV($E(MatchingElementList), function($skip, $loc, $0, $1) {
4791
+ var elements = $0;
4792
+ if (!elements)
4793
+ return { children: [], names: [], length: 0 };
4794
+ return module.adjustBindingElements(elements);
4795
+ });
4796
+ function ArrayMatchingPatternContent(state) {
4797
+ let eventData;
4798
+ if (state.events) {
4799
+ const result = state.events.enter?.("ArrayMatchingPatternContent", state);
4800
+ if (result) {
4801
+ if (result.cache)
4802
+ return result.cache;
4803
+ eventData = result.data;
4804
+ }
4805
+ }
4806
+ if (state.tokenize) {
4807
+ const result = $TOKEN("ArrayMatchingPatternContent", state, ArrayMatchingPatternContent$0(state) || ArrayMatchingPatternContent$1(state));
4808
+ if (state.events)
4809
+ state.events.exit?.("ArrayMatchingPatternContent", state, result, eventData);
4810
+ return result;
4811
+ } else {
4812
+ const result = ArrayMatchingPatternContent$0(state) || ArrayMatchingPatternContent$1(state);
4813
+ if (state.events)
4814
+ state.events.exit?.("ArrayMatchingPatternContent", state, result, eventData);
4815
+ return result;
4816
+ }
4817
+ }
4818
+ var NestedMatchingElements$0 = $TS($S(PushIndent, $Q(NestedMatchingElementList), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
4819
+ var elements = $2;
4820
+ return module.adjustBindingElements(elements.flat());
4821
+ });
4822
+ function NestedMatchingElements(state) {
4823
+ let eventData;
4824
+ if (state.events) {
4825
+ const result = state.events.enter?.("NestedMatchingElements", state);
4826
+ if (result) {
4827
+ if (result.cache)
4828
+ return result.cache;
4829
+ eventData = result.data;
4830
+ }
4831
+ }
4832
+ if (state.tokenize) {
4833
+ const result = $TOKEN("NestedMatchingElements", state, NestedMatchingElements$0(state));
4834
+ if (state.events)
4835
+ state.events.exit?.("NestedMatchingElements", state, result, eventData);
4836
+ return result;
4837
+ } else {
4838
+ const result = NestedMatchingElements$0(state);
4839
+ if (state.events)
4840
+ state.events.exit?.("NestedMatchingElements", state, result, eventData);
4841
+ return result;
4842
+ }
4843
+ }
4844
+ var MatchingElementList$0 = $TV($P($S(MatchingElement, ArrayElementDelimiter)), function($skip, $loc, $0, $1) {
4845
+ var elements = $0;
4846
+ return elements.map(([element, delim]) => {
4847
+ return {
4848
+ ...element,
4849
+ children: [...element.children, delim]
4850
+ };
4851
+ });
4852
+ });
4853
+ function MatchingElementList(state) {
4316
4854
  let eventData;
4317
4855
  if (state.events) {
4318
- const result = state.events.enter?.("NestedBindingElement", state);
4856
+ const result = state.events.enter?.("MatchingElementList", state);
4319
4857
  if (result) {
4320
4858
  if (result.cache)
4321
4859
  return result.cache;
@@ -4323,28 +4861,33 @@ ${input.slice(result.pos)}
4323
4861
  }
4324
4862
  }
4325
4863
  if (state.tokenize) {
4326
- const result = $TOKEN("NestedBindingElement", state, NestedBindingElement$0(state));
4864
+ const result = $TOKEN("MatchingElementList", state, MatchingElementList$0(state));
4327
4865
  if (state.events)
4328
- state.events.exit?.("NestedBindingElement", state, result, eventData);
4866
+ state.events.exit?.("MatchingElementList", state, result, eventData);
4329
4867
  return result;
4330
4868
  } else {
4331
- const result = NestedBindingElement$0(state);
4869
+ const result = MatchingElementList$0(state);
4332
4870
  if (state.events)
4333
- state.events.exit?.("NestedBindingElement", state, result, eventData);
4871
+ state.events.exit?.("MatchingElementList", state, result, eventData);
4334
4872
  return result;
4335
4873
  }
4336
4874
  }
4337
- var BindingElement$0 = $TS($S($C(BindingIdentifier, BindingPattern), $E(Initializer), ArrayElementDelimiter), function($skip, $loc, $0, $1, $2, $3) {
4338
- var binding = $1;
4339
- return {
4340
- names: binding.names,
4341
- children: $0
4342
- };
4875
+ var NestedMatchingElementList$0 = $TS($S(Nested, MatchingElementList), function($skip, $loc, $0, $1, $2) {
4876
+ var ws = $1;
4877
+ var elements = $2;
4878
+ return elements.map((element, i) => {
4879
+ if (i > 0)
4880
+ return element;
4881
+ return {
4882
+ ...element,
4883
+ children: [ws, ...element.children]
4884
+ };
4885
+ });
4343
4886
  });
4344
- function BindingElement(state) {
4887
+ function NestedMatchingElementList(state) {
4345
4888
  let eventData;
4346
4889
  if (state.events) {
4347
- const result = state.events.enter?.("BindingElement", state);
4890
+ const result = state.events.enter?.("NestedMatchingElementList", state);
4348
4891
  if (result) {
4349
4892
  if (result.cache)
4350
4893
  return result.cache;
@@ -4352,39 +4895,61 @@ ${input.slice(result.pos)}
4352
4895
  }
4353
4896
  }
4354
4897
  if (state.tokenize) {
4355
- const result = $TOKEN("BindingElement", state, BindingElement$0(state));
4898
+ const result = $TOKEN("NestedMatchingElementList", state, NestedMatchingElementList$0(state));
4356
4899
  if (state.events)
4357
- state.events.exit?.("BindingElement", state, result, eventData);
4900
+ state.events.exit?.("NestedMatchingElementList", state, result, eventData);
4358
4901
  return result;
4359
4902
  } else {
4360
- const result = BindingElement$0(state);
4903
+ const result = NestedMatchingElementList$0(state);
4361
4904
  if (state.events)
4362
- state.events.exit?.("BindingElement", state, result, eventData);
4905
+ state.events.exit?.("NestedMatchingElementList", state, result, eventData);
4363
4906
  return result;
4364
4907
  }
4365
4908
  }
4366
- var BindingRestElement$0 = $TS($S(__, DotDotDot, $C(BindingIdentifier, BindingPattern, EmptyBindingPattern)), function($skip, $loc, $0, $1, $2, $3) {
4909
+ var MatchingElement$0 = MatchingRestElement;
4910
+ var MatchingElement$1 = $TS($S($E(_), BindingIdentifier, __, Colon, $E(_), $C(BindingIdentifier, MatchingPattern)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
4367
4911
  var ws = $1;
4368
- var dots = $2;
4369
- var binding = $3;
4912
+ var name = $2;
4913
+ var match = $6;
4914
+ let blockPrefix;
4915
+ switch (match.type) {
4916
+ case "ArrayMatchingPattern":
4917
+ case "ObjectMatchingPattern":
4918
+ blockPrefix = [match, " = ", name];
4919
+ break;
4920
+ default:
4921
+ break;
4922
+ }
4370
4923
  return {
4371
- ...binding,
4372
- children: [...ws, dots, ...binding.children]
4924
+ names: name.names,
4925
+ children: [ws, {
4926
+ type: "BindingMatchElement",
4927
+ name,
4928
+ match,
4929
+ children: [name],
4930
+ blockPrefix
4931
+ }]
4373
4932
  };
4374
4933
  });
4375
- var BindingRestElement$1 = $TS($S(__, $C(BindingIdentifier, BindingPattern), DotDotDot), function($skip, $loc, $0, $1, $2, $3) {
4934
+ var MatchingElement$2 = $TS($S($E(_), $C(BindingIdentifier, MatchingPattern)), function($skip, $loc, $0, $1, $2) {
4376
4935
  var ws = $1;
4377
4936
  var binding = $2;
4378
- var dots = $3;
4379
4937
  return {
4380
- ...binding,
4381
- children: [...ws, dots, ...binding.children]
4938
+ names: binding.names,
4939
+ children: [ws, binding]
4382
4940
  };
4383
4941
  });
4384
- function BindingRestElement(state) {
4942
+ var MatchingElement$3 = $TV($EXPECT($L17, fail, 'MatchingElement ""'), function($skip, $loc, $0, $1) {
4943
+ return {
4944
+ type: "ElisionElement",
4945
+ children: [],
4946
+ names: []
4947
+ };
4948
+ });
4949
+ function MatchingElement(state) {
4385
4950
  let eventData;
4386
4951
  if (state.events) {
4387
- const result = state.events.enter?.("BindingRestElement", state);
4952
+ const result = state.events.enter?.("MatchingElement", state);
4388
4953
  if (result) {
4389
4954
  if (result.cache)
4390
4955
  return result.cache;
@@ -4392,34 +4957,22 @@ ${input.slice(result.pos)}
4392
4957
  }
4393
4958
  }
4394
4959
  if (state.tokenize) {
4395
- const result = $TOKEN("BindingRestElement", state, BindingRestElement$0(state) || BindingRestElement$1(state));
4960
+ const result = $TOKEN("MatchingElement", state, MatchingElement$0(state) || MatchingElement$1(state) || MatchingElement$2(state) || MatchingElement$3(state));
4396
4961
  if (state.events)
4397
- state.events.exit?.("BindingRestElement", state, result, eventData);
4962
+ state.events.exit?.("MatchingElement", state, result, eventData);
4398
4963
  return result;
4399
4964
  } else {
4400
- const result = BindingRestElement$0(state) || BindingRestElement$1(state);
4965
+ const result = MatchingElement$0(state) || MatchingElement$1(state) || MatchingElement$2(state) || MatchingElement$3(state);
4401
4966
  if (state.events)
4402
- state.events.exit?.("BindingRestElement", state, result, eventData);
4967
+ state.events.exit?.("MatchingElement", state, result, eventData);
4403
4968
  return result;
4404
4969
  }
4405
4970
  }
4406
- var EmptyBindingPattern$0 = $TV($EXPECT($L16, fail, 'EmptyBindingPattern ""'), function($skip, $loc, $0, $1) {
4407
- const ref = {
4408
- type: "Ref",
4409
- base: "ref",
4410
- id: "ref"
4411
- };
4412
- return {
4413
- type: "EmptyBinding",
4414
- children: [ref],
4415
- names: [],
4416
- ref
4417
- };
4418
- });
4419
- function EmptyBindingPattern(state) {
4971
+ var MatchingRestElement$0 = BindingRestElement;
4972
+ function MatchingRestElement(state) {
4420
4973
  let eventData;
4421
4974
  if (state.events) {
4422
- const result = state.events.enter?.("EmptyBindingPattern", state);
4975
+ const result = state.events.enter?.("MatchingRestElement", state);
4423
4976
  if (result) {
4424
4977
  if (result.cache)
4425
4978
  return result.cache;
@@ -4427,14 +4980,14 @@ ${input.slice(result.pos)}
4427
4980
  }
4428
4981
  }
4429
4982
  if (state.tokenize) {
4430
- const result = $TOKEN("EmptyBindingPattern", state, EmptyBindingPattern$0(state));
4983
+ const result = $TOKEN("MatchingRestElement", state, MatchingRestElement$0(state));
4431
4984
  if (state.events)
4432
- state.events.exit?.("EmptyBindingPattern", state, result, eventData);
4985
+ state.events.exit?.("MatchingRestElement", state, result, eventData);
4433
4986
  return result;
4434
4987
  } else {
4435
- const result = EmptyBindingPattern$0(state);
4988
+ const result = MatchingRestElement$0(state);
4436
4989
  if (state.events)
4437
- state.events.exit?.("EmptyBindingPattern", state, result, eventData);
4990
+ state.events.exit?.("MatchingRestElement", state, result, eventData);
4438
4991
  return result;
4439
4992
  }
4440
4993
  }
@@ -4565,6 +5118,101 @@ ${input.slice(result.pos)}
4565
5118
  return result;
4566
5119
  }
4567
5120
  }
5121
+ var OperatorDeclaration$0 = $TS($S(Operator, _, LexicalDeclaration), function($skip, $loc, $0, $1, $2, $3) {
5122
+ var op = $1;
5123
+ var w = $2;
5124
+ var decl = $3;
5125
+ decl.names.forEach((name) => module.operators.add(name));
5126
+ return [module.insertTrimmingSpace(w, ""), decl];
5127
+ });
5128
+ var OperatorDeclaration$1 = $TS($S(OperatorSignature, BracedBlock), function($skip, $loc, $0, $1, $2) {
5129
+ var signature = $1;
5130
+ var block = $2;
5131
+ module.operators.add(signature.id.name);
5132
+ return {
5133
+ ...signature,
5134
+ type: "FunctionExpression",
5135
+ children: [...signature.children, block],
5136
+ block,
5137
+ operator: true
5138
+ };
5139
+ });
5140
+ var OperatorDeclaration$2 = $TS($S(Operator, _, Identifier, $Q($S(CommaDelimiter, $E(_), Identifier))), function($skip, $loc, $0, $1, $2, $3, $4) {
5141
+ var op = $1;
5142
+ var w1 = $2;
5143
+ var id = $3;
5144
+ var ids = $4;
5145
+ module.operators.add(id.name);
5146
+ ids.forEach(([, , id2]) => module.operators.add(id2.name));
5147
+ return [];
5148
+ });
5149
+ function OperatorDeclaration(state) {
5150
+ let eventData;
5151
+ if (state.events) {
5152
+ const result = state.events.enter?.("OperatorDeclaration", state);
5153
+ if (result) {
5154
+ if (result.cache)
5155
+ return result.cache;
5156
+ eventData = result.data;
5157
+ }
5158
+ }
5159
+ if (state.tokenize) {
5160
+ const result = $TOKEN("OperatorDeclaration", state, OperatorDeclaration$0(state) || OperatorDeclaration$1(state) || OperatorDeclaration$2(state));
5161
+ if (state.events)
5162
+ state.events.exit?.("OperatorDeclaration", state, result, eventData);
5163
+ return result;
5164
+ } else {
5165
+ const result = OperatorDeclaration$0(state) || OperatorDeclaration$1(state) || OperatorDeclaration$2(state);
5166
+ if (state.events)
5167
+ state.events.exit?.("OperatorDeclaration", state, result, eventData);
5168
+ return result;
5169
+ }
5170
+ }
5171
+ var OperatorSignature$0 = $TS($S(Operator, $E($S(_, Function)), _, Identifier, $E(_), NonEmptyParameters, $E(ReturnTypeSuffix)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
5172
+ var op = $1;
5173
+ var func = $2;
5174
+ var w1 = $3;
5175
+ var id = $4;
5176
+ var w2 = $5;
5177
+ var parameters = $6;
5178
+ var suffix = $7;
5179
+ if (!func) {
5180
+ func = { $loc: op.$loc, token: "function" };
5181
+ } else {
5182
+ func = [module.insertTrimmingSpace(func[0], ""), func[1]];
5183
+ }
5184
+ return {
5185
+ type: "FunctionSignature",
5186
+ id,
5187
+ parameters,
5188
+ returnType: suffix?.children?.[1]?.[0]?.[1]?.token,
5189
+ ts: false,
5190
+ block: null,
5191
+ children: [func, w1, id, w2, parameters, suffix]
5192
+ };
5193
+ });
5194
+ function OperatorSignature(state) {
5195
+ let eventData;
5196
+ if (state.events) {
5197
+ const result = state.events.enter?.("OperatorSignature", state);
5198
+ if (result) {
5199
+ if (result.cache)
5200
+ return result.cache;
5201
+ eventData = result.data;
5202
+ }
5203
+ }
5204
+ if (state.tokenize) {
5205
+ const result = $TOKEN("OperatorSignature", state, OperatorSignature$0(state));
5206
+ if (state.events)
5207
+ state.events.exit?.("OperatorSignature", state, result, eventData);
5208
+ return result;
5209
+ } else {
5210
+ const result = OperatorSignature$0(state);
5211
+ if (state.events)
5212
+ state.events.exit?.("OperatorSignature", state, result, eventData);
5213
+ return result;
5214
+ }
5215
+ }
4568
5216
  var AmpersandBlockRHS$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E($S($N($EXPECT($R2, fail, "AmpersandBlockRHS /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2) {
4569
5217
  var callExpRest = $1;
4570
5218
  var binopRHS = $2;
@@ -4679,7 +5327,7 @@ ${input.slice(result.pos)}
4679
5327
  return result;
4680
5328
  }
4681
5329
  }
4682
- var Arrow$0 = $TV($EXPECT($L18, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
5330
+ var Arrow$0 = $TV($EXPECT($L19, fail, 'Arrow "->"'), function($skip, $loc, $0, $1) {
4683
5331
  return { $loc, token: $1 };
4684
5332
  });
4685
5333
  function Arrow(state) {
@@ -4889,6 +5537,37 @@ ${input.slice(result.pos)}
4889
5537
  return result;
4890
5538
  }
4891
5539
  }
5540
+ var EmptyBareBlock$0 = $TV($EXPECT($L17, fail, 'EmptyBareBlock ""'), function($skip, $loc, $0, $1) {
5541
+ const expressions = [];
5542
+ return {
5543
+ type: "BlockStatement",
5544
+ expressions,
5545
+ children: [expressions],
5546
+ bare: true
5547
+ };
5548
+ });
5549
+ function EmptyBareBlock(state) {
5550
+ let eventData;
5551
+ if (state.events) {
5552
+ const result = state.events.enter?.("EmptyBareBlock", state);
5553
+ if (result) {
5554
+ if (result.cache)
5555
+ return result.cache;
5556
+ eventData = result.data;
5557
+ }
5558
+ }
5559
+ if (state.tokenize) {
5560
+ const result = $TOKEN("EmptyBareBlock", state, EmptyBareBlock$0(state));
5561
+ if (state.events)
5562
+ state.events.exit?.("EmptyBareBlock", state, result, eventData);
5563
+ return result;
5564
+ } else {
5565
+ const result = EmptyBareBlock$0(state);
5566
+ if (state.events)
5567
+ state.events.exit?.("EmptyBareBlock", state, result, eventData);
5568
+ return result;
5569
+ }
5570
+ }
4892
5571
  var BracedBlock$0 = $TS($S($Q(TrailingComment), OpenBrace, BracedContent, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
4893
5572
  var block = $3;
4894
5573
  return {
@@ -4987,7 +5666,7 @@ ${input.slice(result.pos)}
4987
5666
  children: [$1, expressions]
4988
5667
  };
4989
5668
  });
4990
- var BracedContent$2 = $TV($Y($S(__, $EXPECT($L19, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
5669
+ var BracedContent$2 = $TV($Y($S(__, $EXPECT($L20, fail, 'BracedContent "}"'))), function($skip, $loc, $0, $1) {
4991
5670
  const expressions = [];
4992
5671
  return {
4993
5672
  type: "BlockStatement",
@@ -5132,7 +5811,7 @@ ${input.slice(result.pos)}
5132
5811
  return result;
5133
5812
  }
5134
5813
  }
5135
- var NullLiteral$0 = $TS($S($EXPECT($L20, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5814
+ var NullLiteral$0 = $TS($S($EXPECT($L21, fail, 'NullLiteral "null"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5136
5815
  return { $loc, token: $1 };
5137
5816
  });
5138
5817
  function NullLiteral(state) {
@@ -5160,7 +5839,7 @@ ${input.slice(result.pos)}
5160
5839
  var BooleanLiteral$0 = $T($S(CoffeeBooleansEnabled, CoffeeScriptBooleanLiteral), function(value) {
5161
5840
  return value[1];
5162
5841
  });
5163
- var BooleanLiteral$1 = $TS($S($C($EXPECT($L21, fail, 'BooleanLiteral "true"'), $EXPECT($L22, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5842
+ var BooleanLiteral$1 = $TS($S($C($EXPECT($L22, fail, 'BooleanLiteral "true"'), $EXPECT($L23, fail, 'BooleanLiteral "false"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5164
5843
  return { $loc, token: $1 };
5165
5844
  });
5166
5845
  function BooleanLiteral(state) {
@@ -5185,10 +5864,10 @@ ${input.slice(result.pos)}
5185
5864
  return result;
5186
5865
  }
5187
5866
  }
5188
- var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L23, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L24, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5867
+ var CoffeeScriptBooleanLiteral$0 = $TS($S($C($EXPECT($L24, fail, 'CoffeeScriptBooleanLiteral "yes"'), $EXPECT($L25, fail, 'CoffeeScriptBooleanLiteral "on"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5189
5868
  return { $loc, token: "true" };
5190
5869
  });
5191
- var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L25, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L26, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5870
+ var CoffeeScriptBooleanLiteral$1 = $TS($S($C($EXPECT($L26, fail, 'CoffeeScriptBooleanLiteral "no"'), $EXPECT($L27, fail, 'CoffeeScriptBooleanLiteral "off"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
5192
5871
  return { $loc, token: "false" };
5193
5872
  });
5194
5873
  function CoffeeScriptBooleanLiteral(state) {
@@ -5213,31 +5892,6 @@ ${input.slice(result.pos)}
5213
5892
  return result;
5214
5893
  }
5215
5894
  }
5216
- var Comma$0 = $TV($EXPECT($L27, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
5217
- return { $loc, token: $1 };
5218
- });
5219
- function Comma(state) {
5220
- let eventData;
5221
- if (state.events) {
5222
- const result = state.events.enter?.("Comma", state);
5223
- if (result) {
5224
- if (result.cache)
5225
- return result.cache;
5226
- eventData = result.data;
5227
- }
5228
- }
5229
- if (state.tokenize) {
5230
- const result = $TOKEN("Comma", state, Comma$0(state));
5231
- if (state.events)
5232
- state.events.exit?.("Comma", state, result, eventData);
5233
- return result;
5234
- } else {
5235
- const result = Comma$0(state);
5236
- if (state.events)
5237
- state.events.exit?.("Comma", state, result, eventData);
5238
- return result;
5239
- }
5240
- }
5241
5895
  var Identifier$0 = $T($S($N(ReservedWord), IdentifierName), function(value) {
5242
5896
  return value[1];
5243
5897
  });
@@ -6017,7 +6671,7 @@ ${input.slice(result.pos)}
6017
6671
  var ImplicitInlineObjectPropertyDelimiter$1 = $T($S($Y($S($C(Samedent, $Q(_)), NamedProperty)), InsertComma), function(value) {
6018
6672
  return value[1];
6019
6673
  });
6020
- var ImplicitInlineObjectPropertyDelimiter$2 = $T($Y($S(__, $C($EXPECT($L31, fail, 'ImplicitInlineObjectPropertyDelimiter ":"'), $EXPECT($L17, fail, 'ImplicitInlineObjectPropertyDelimiter ")"'), $EXPECT($L30, fail, 'ImplicitInlineObjectPropertyDelimiter "]"'), $EXPECT($L19, fail, 'ImplicitInlineObjectPropertyDelimiter "}"'), ReservedWord))), function(value) {
6674
+ var ImplicitInlineObjectPropertyDelimiter$2 = $T($Y($S(__, $C($EXPECT($L31, fail, 'ImplicitInlineObjectPropertyDelimiter ":"'), $EXPECT($L18, fail, 'ImplicitInlineObjectPropertyDelimiter ")"'), $EXPECT($L30, fail, 'ImplicitInlineObjectPropertyDelimiter "]"'), $EXPECT($L20, fail, 'ImplicitInlineObjectPropertyDelimiter "}"'), ReservedWord))), function(value) {
6021
6675
  return "";
6022
6676
  });
6023
6677
  var ImplicitInlineObjectPropertyDelimiter$3 = $T($Y(EOS), function(value) {
@@ -6046,7 +6700,7 @@ ${input.slice(result.pos)}
6046
6700
  }
6047
6701
  }
6048
6702
  var ObjectPropertyDelimiter$0 = $S($Q(_), Comma);
6049
- var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L19, fail, 'ObjectPropertyDelimiter "}"')));
6703
+ var ObjectPropertyDelimiter$1 = $Y($S(__, $EXPECT($L20, fail, 'ObjectPropertyDelimiter "}"')));
6050
6704
  var ObjectPropertyDelimiter$2 = $T($S($Y(EOS), InsertComma), function(value) {
6051
6705
  return value[1];
6052
6706
  });
@@ -6115,7 +6769,15 @@ ${input.slice(result.pos)}
6115
6769
  value
6116
6770
  };
6117
6771
  });
6118
- var PropertyDefinition$1 = $TS($S(__, $TEXT($EXPECT($R5, fail, "PropertyDefinition /[!+-]/")), IdentifierName), function($skip, $loc, $0, $1, $2, $3) {
6772
+ var PropertyDefinition$1 = $TS($S(__, NamedProperty), function($skip, $loc, $0, $1, $2) {
6773
+ var ws = $1;
6774
+ var prop = $2;
6775
+ return {
6776
+ ...prop,
6777
+ children: [...ws, ...prop.children]
6778
+ };
6779
+ });
6780
+ var PropertyDefinition$2 = $TS($S(__, $TEXT($EXPECT($R5, fail, "PropertyDefinition /[!+-]/")), PropertyName), function($skip, $loc, $0, $1, $2, $3) {
6119
6781
  var ws = $1;
6120
6782
  var toggle = $2;
6121
6783
  var id = $3;
@@ -6128,14 +6790,6 @@ ${input.slice(result.pos)}
6128
6790
  value
6129
6791
  };
6130
6792
  });
6131
- var PropertyDefinition$2 = $TS($S(__, NamedProperty), function($skip, $loc, $0, $1, $2) {
6132
- var ws = $1;
6133
- var prop = $2;
6134
- return {
6135
- ...prop,
6136
- children: [...ws, ...prop.children]
6137
- };
6138
- });
6139
6793
  var PropertyDefinition$3 = $TS($S(__, MethodDefinition), function($skip, $loc, $0, $1, $2) {
6140
6794
  var ws = $1;
6141
6795
  var def = $2;
@@ -6172,9 +6826,18 @@ ${input.slice(result.pos)}
6172
6826
  if (i < 0)
6173
6827
  return $skip;
6174
6828
  } while (children[i].type === "MemberExpression" && (exp = children[i]));
6175
- const { name } = children[i];
6176
- if (!name)
6829
+ const last = children[i];
6830
+ let name;
6831
+ if (last.name) {
6832
+ ({ name } = last);
6833
+ } else if (last.type === "Index") {
6834
+ name = {
6835
+ type: "ComputedPropertyName",
6836
+ children: last.children
6837
+ };
6838
+ } else {
6177
6839
  return $skip;
6840
+ }
6178
6841
  return {
6179
6842
  type: "Property",
6180
6843
  children: [ws, name, ": ", value],
@@ -6269,9 +6932,9 @@ ${input.slice(result.pos)}
6269
6932
  }
6270
6933
  }
6271
6934
  var PropertyName$0 = NumericLiteral;
6272
- var PropertyName$1 = StringLiteral;
6273
- var PropertyName$2 = IdentifierName;
6274
- var PropertyName$3 = ComputedPropertyName;
6935
+ var PropertyName$1 = ComputedPropertyName;
6936
+ var PropertyName$2 = StringLiteral;
6937
+ var PropertyName$3 = IdentifierName;
6275
6938
  function PropertyName(state) {
6276
6939
  let eventData;
6277
6940
  if (state.events) {
@@ -6295,6 +6958,24 @@ ${input.slice(result.pos)}
6295
6958
  }
6296
6959
  }
6297
6960
  var ComputedPropertyName$0 = $TS($S(OpenBracket, ExtendedExpression, __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
6961
+ var expression = $2;
6962
+ return {
6963
+ type: "ComputedPropertyName",
6964
+ children: $0,
6965
+ expression
6966
+ };
6967
+ });
6968
+ var ComputedPropertyName$1 = $TS($S(InsertOpenBracket, TemplateLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3) {
6969
+ var expression = $2;
6970
+ if ($2.type === "StringLiteral")
6971
+ return $2;
6972
+ return {
6973
+ type: "ComputedPropertyName",
6974
+ children: $0,
6975
+ expression
6976
+ };
6977
+ });
6978
+ var ComputedPropertyName$2 = $TS($S(InsertOpenBracket, $EXPECT($L14, fail, 'ComputedPropertyName "-"'), NumericLiteral, InsertCloseBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
6298
6979
  return {
6299
6980
  type: "ComputedPropertyName",
6300
6981
  children: $0
@@ -6311,12 +6992,12 @@ ${input.slice(result.pos)}
6311
6992
  }
6312
6993
  }
6313
6994
  if (state.tokenize) {
6314
- const result = $TOKEN("ComputedPropertyName", state, ComputedPropertyName$0(state));
6995
+ const result = $TOKEN("ComputedPropertyName", state, ComputedPropertyName$0(state) || ComputedPropertyName$1(state) || ComputedPropertyName$2(state));
6315
6996
  if (state.events)
6316
6997
  state.events.exit?.("ComputedPropertyName", state, result, eventData);
6317
6998
  return result;
6318
6999
  } else {
6319
- const result = ComputedPropertyName$0(state);
7000
+ const result = ComputedPropertyName$0(state) || ComputedPropertyName$1(state) || ComputedPropertyName$2(state);
6320
7001
  if (state.events)
6321
7002
  state.events.exit?.("ComputedPropertyName", state, result, eventData);
6322
7003
  return result;
@@ -6512,7 +7193,7 @@ ${input.slice(result.pos)}
6512
7193
  return result;
6513
7194
  }
6514
7195
  }
6515
- var PrivateIdentifier$0 = $TV($TEXT($S($EXPECT($L9, fail, 'PrivateIdentifier "#"'), IdentifierName)), function($skip, $loc, $0, $1) {
7196
+ var PrivateIdentifier$0 = $TV($TEXT($S($EXPECT($L10, fail, 'PrivateIdentifier "#"'), IdentifierName)), function($skip, $loc, $0, $1) {
6516
7197
  return {
6517
7198
  type: "Identifier",
6518
7199
  name: $0,
@@ -6655,6 +7336,25 @@ ${input.slice(result.pos)}
6655
7336
  return { $loc, token: $1 };
6656
7337
  return $1;
6657
7338
  });
7339
+ var BinaryOp$1 = $TV(Identifier, function($skip, $loc, $0, $1) {
7340
+ var id = $0;
7341
+ if (!module.operators.has(id.name))
7342
+ return $skip;
7343
+ return {
7344
+ call: id,
7345
+ special: true
7346
+ };
7347
+ });
7348
+ var BinaryOp$2 = $TS($S($EXPECT($L50, fail, 'BinaryOp "not"'), NonIdContinue, __, Identifier), function($skip, $loc, $0, $1, $2, $3, $4) {
7349
+ var id = $4;
7350
+ if (!module.operators.has(id.name))
7351
+ return $skip;
7352
+ return {
7353
+ call: id,
7354
+ special: true,
7355
+ negated: true
7356
+ };
7357
+ });
6658
7358
  function BinaryOp(state) {
6659
7359
  let eventData;
6660
7360
  if (state.events) {
@@ -6666,32 +7366,32 @@ ${input.slice(result.pos)}
6666
7366
  }
6667
7367
  }
6668
7368
  if (state.tokenize) {
6669
- const result = $TOKEN("BinaryOp", state, BinaryOp$0(state));
7369
+ const result = $TOKEN("BinaryOp", state, BinaryOp$0(state) || BinaryOp$1(state) || BinaryOp$2(state));
6670
7370
  if (state.events)
6671
7371
  state.events.exit?.("BinaryOp", state, result, eventData);
6672
7372
  return result;
6673
7373
  } else {
6674
- const result = BinaryOp$0(state);
7374
+ const result = BinaryOp$0(state) || BinaryOp$1(state) || BinaryOp$2(state);
6675
7375
  if (state.events)
6676
7376
  state.events.exit?.("BinaryOp", state, result, eventData);
6677
7377
  return result;
6678
7378
  }
6679
7379
  }
6680
- var BinaryOpSymbol$0 = $EXPECT($L50, fail, 'BinaryOpSymbol "**"');
6681
- var BinaryOpSymbol$1 = $EXPECT($L51, fail, 'BinaryOpSymbol "*"');
6682
- var BinaryOpSymbol$2 = $EXPECT($L52, fail, 'BinaryOpSymbol "/"');
6683
- var BinaryOpSymbol$3 = $TV($EXPECT($L53, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
7380
+ var BinaryOpSymbol$0 = $EXPECT($L51, fail, 'BinaryOpSymbol "**"');
7381
+ var BinaryOpSymbol$1 = $EXPECT($L52, fail, 'BinaryOpSymbol "*"');
7382
+ var BinaryOpSymbol$2 = $EXPECT($L53, fail, 'BinaryOpSymbol "/"');
7383
+ var BinaryOpSymbol$3 = $TV($EXPECT($L54, fail, 'BinaryOpSymbol "%%"'), function($skip, $loc, $0, $1) {
6684
7384
  return {
6685
7385
  call: module.getRef("modulo"),
6686
7386
  special: true
6687
7387
  };
6688
7388
  });
6689
- var BinaryOpSymbol$4 = $EXPECT($L54, fail, 'BinaryOpSymbol "%"');
6690
- var BinaryOpSymbol$5 = $EXPECT($L55, fail, 'BinaryOpSymbol "+"');
6691
- var BinaryOpSymbol$6 = $EXPECT($L13, fail, 'BinaryOpSymbol "-"');
6692
- var BinaryOpSymbol$7 = $EXPECT($L56, fail, 'BinaryOpSymbol "<="');
6693
- var BinaryOpSymbol$8 = $EXPECT($L57, fail, 'BinaryOpSymbol ">="');
6694
- var BinaryOpSymbol$9 = $TV($EXPECT($L58, fail, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
7389
+ var BinaryOpSymbol$4 = $EXPECT($L55, fail, 'BinaryOpSymbol "%"');
7390
+ var BinaryOpSymbol$5 = $EXPECT($L56, fail, 'BinaryOpSymbol "+"');
7391
+ var BinaryOpSymbol$6 = $EXPECT($L14, fail, 'BinaryOpSymbol "-"');
7392
+ var BinaryOpSymbol$7 = $EXPECT($L57, fail, 'BinaryOpSymbol "<="');
7393
+ var BinaryOpSymbol$8 = $EXPECT($L58, fail, 'BinaryOpSymbol ">="');
7394
+ var BinaryOpSymbol$9 = $TV($EXPECT($L59, fail, 'BinaryOpSymbol "<?"'), function($skip, $loc, $0, $1) {
6695
7395
  return {
6696
7396
  $loc,
6697
7397
  token: "instanceof",
@@ -6699,49 +7399,58 @@ ${input.slice(result.pos)}
6699
7399
  special: true
6700
7400
  };
6701
7401
  });
6702
- var BinaryOpSymbol$10 = $EXPECT($L59, fail, 'BinaryOpSymbol "<<"');
6703
- var BinaryOpSymbol$11 = $TR($EXPECT($R6, fail, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
7402
+ var BinaryOpSymbol$10 = $TV($EXPECT($L60, fail, 'BinaryOpSymbol "!<?"'), function($skip, $loc, $0, $1) {
7403
+ return {
7404
+ $loc,
7405
+ token: "instanceof",
7406
+ relational: true,
7407
+ special: true,
7408
+ negated: true
7409
+ };
7410
+ });
7411
+ var BinaryOpSymbol$11 = $EXPECT($L61, fail, 'BinaryOpSymbol "<<"');
7412
+ var BinaryOpSymbol$12 = $TR($EXPECT($R6, fail, "BinaryOpSymbol /<(?!\\p{ID_Start}|[_$])/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
6704
7413
  return "<";
6705
7414
  });
6706
- var BinaryOpSymbol$12 = $EXPECT($L60, fail, 'BinaryOpSymbol ">>>"');
6707
- var BinaryOpSymbol$13 = $EXPECT($L61, fail, 'BinaryOpSymbol ">>"');
6708
- var BinaryOpSymbol$14 = $EXPECT($L29, fail, 'BinaryOpSymbol ">"');
6709
- var BinaryOpSymbol$15 = $EXPECT($L62, fail, 'BinaryOpSymbol "!=="');
6710
- var BinaryOpSymbol$16 = $TV($EXPECT($L63, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
7415
+ var BinaryOpSymbol$13 = $EXPECT($L62, fail, 'BinaryOpSymbol ">>>"');
7416
+ var BinaryOpSymbol$14 = $EXPECT($L63, fail, 'BinaryOpSymbol ">>"');
7417
+ var BinaryOpSymbol$15 = $EXPECT($L29, fail, 'BinaryOpSymbol ">"');
7418
+ var BinaryOpSymbol$16 = $EXPECT($L64, fail, 'BinaryOpSymbol "!=="');
7419
+ var BinaryOpSymbol$17 = $TV($EXPECT($L65, fail, 'BinaryOpSymbol "!="'), function($skip, $loc, $0, $1) {
6711
7420
  if (module.config.coffeeEq)
6712
7421
  return "!==";
6713
7422
  return $1;
6714
7423
  });
6715
- var BinaryOpSymbol$17 = $TS($S($EXPECT($L64, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7424
+ var BinaryOpSymbol$18 = $TS($S($EXPECT($L66, fail, 'BinaryOpSymbol "isnt"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6716
7425
  if (module.config.coffeeIsnt)
6717
7426
  return "!==";
6718
7427
  return $skip;
6719
7428
  });
6720
- var BinaryOpSymbol$18 = $EXPECT($L65, fail, 'BinaryOpSymbol "==="');
6721
- var BinaryOpSymbol$19 = $TV($EXPECT($L66, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
7429
+ var BinaryOpSymbol$19 = $EXPECT($L67, fail, 'BinaryOpSymbol "==="');
7430
+ var BinaryOpSymbol$20 = $TV($EXPECT($L68, fail, 'BinaryOpSymbol "=="'), function($skip, $loc, $0, $1) {
6722
7431
  if (module.config.coffeeEq)
6723
7432
  return "===";
6724
7433
  return $1;
6725
7434
  });
6726
- var BinaryOpSymbol$20 = $T($S($EXPECT($L67, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
7435
+ var BinaryOpSymbol$21 = $T($S($EXPECT($L69, fail, 'BinaryOpSymbol "and"'), NonIdContinue), function(value) {
6727
7436
  return "&&";
6728
7437
  });
6729
- var BinaryOpSymbol$21 = $EXPECT($L68, fail, 'BinaryOpSymbol "&&"');
6730
- var BinaryOpSymbol$22 = $T($S(CoffeeOfEnabled, $EXPECT($L69, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
7438
+ var BinaryOpSymbol$22 = $EXPECT($L70, fail, 'BinaryOpSymbol "&&"');
7439
+ var BinaryOpSymbol$23 = $T($S(CoffeeOfEnabled, $EXPECT($L71, fail, 'BinaryOpSymbol "of"'), NonIdContinue), function(value) {
6731
7440
  return "in";
6732
7441
  });
6733
- var BinaryOpSymbol$23 = $T($S($EXPECT($L70, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
7442
+ var BinaryOpSymbol$24 = $T($S($EXPECT($L72, fail, 'BinaryOpSymbol "or"'), NonIdContinue), function(value) {
6734
7443
  return "||";
6735
7444
  });
6736
- var BinaryOpSymbol$24 = $EXPECT($L71, fail, 'BinaryOpSymbol "||"');
6737
- var BinaryOpSymbol$25 = $EXPECT($L72, fail, 'BinaryOpSymbol "??"');
6738
- var BinaryOpSymbol$26 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L1, fail, 'BinaryOpSymbol "?"')), function(value) {
7445
+ var BinaryOpSymbol$25 = $EXPECT($L73, fail, 'BinaryOpSymbol "||"');
7446
+ var BinaryOpSymbol$26 = $EXPECT($L74, fail, 'BinaryOpSymbol "??"');
7447
+ var BinaryOpSymbol$27 = $T($S(CoffeeBinaryExistentialEnabled, $EXPECT($L2, fail, 'BinaryOpSymbol "?"')), function(value) {
6739
7448
  return "??";
6740
7449
  });
6741
- var BinaryOpSymbol$27 = $TS($S($EXPECT($L73, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7450
+ var BinaryOpSymbol$28 = $TS($S($EXPECT($L75, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6742
7451
  return $1;
6743
7452
  });
6744
- var BinaryOpSymbol$28 = $TS($S(CoffeeNotEnabled, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L73, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7453
+ var BinaryOpSymbol$29 = $TS($S($EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "instanceof"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6745
7454
  return {
6746
7455
  $loc,
6747
7456
  token: "instanceof",
@@ -6750,7 +7459,7 @@ ${input.slice(result.pos)}
6750
7459
  negated: true
6751
7460
  };
6752
7461
  });
6753
- var BinaryOpSymbol$29 = $TV($C($S($N(CoffeeOfEnabled), $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), $S(CoffeeOfEnabled, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L69, fail, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
7462
+ var BinaryOpSymbol$30 = $TV($C($S($N(CoffeeOfEnabled), $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), $S(CoffeeOfEnabled, $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L71, fail, 'BinaryOpSymbol "of"'), NonIdContinue)), function($skip, $loc, $0, $1) {
6754
7463
  return {
6755
7464
  $loc,
6756
7465
  token: "in",
@@ -6758,7 +7467,7 @@ ${input.slice(result.pos)}
6758
7467
  negated: true
6759
7468
  };
6760
7469
  });
6761
- var BinaryOpSymbol$30 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
7470
+ var BinaryOpSymbol$31 = $TS($S($EXPECT($L77, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6762
7471
  return {
6763
7472
  method: "includes",
6764
7473
  relational: true,
@@ -6766,7 +7475,7 @@ ${input.slice(result.pos)}
6766
7475
  special: true
6767
7476
  };
6768
7477
  });
6769
- var BinaryOpSymbol$31 = $TS($S(CoffeeOfEnabled, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
7478
+ var BinaryOpSymbol$32 = $TS($S(CoffeeOfEnabled, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
6770
7479
  return {
6771
7480
  call: [module.getRef("indexOf"), ".call"],
6772
7481
  relational: true,
@@ -6775,7 +7484,7 @@ ${input.slice(result.pos)}
6775
7484
  special: true
6776
7485
  };
6777
7486
  });
6778
- var BinaryOpSymbol$32 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
7487
+ var BinaryOpSymbol$33 = $TS($S($EXPECT($L77, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
6779
7488
  return {
6780
7489
  method: "includes",
6781
7490
  relational: true,
@@ -6784,7 +7493,7 @@ ${input.slice(result.pos)}
6784
7493
  negated: true
6785
7494
  };
6786
7495
  });
6787
- var BinaryOpSymbol$33 = $TS($S(CoffeeOfEnabled, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7496
+ var BinaryOpSymbol$34 = $TS($S(CoffeeOfEnabled, $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue, __, $EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6788
7497
  return {
6789
7498
  call: [module.getRef("indexOf"), ".call"],
6790
7499
  relational: true,
@@ -6793,7 +7502,7 @@ ${input.slice(result.pos)}
6793
7502
  special: true
6794
7503
  };
6795
7504
  });
6796
- var BinaryOpSymbol$34 = $TS($S($N(CoffeeNotEnabled), $EXPECT($L76, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L74, fail, 'BinaryOpSymbol "not"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
7505
+ var BinaryOpSymbol$35 = $TS($S($N(CoffeeNotEnabled), $EXPECT($L77, fail, 'BinaryOpSymbol "is"'), NonIdContinue, __, $EXPECT($L50, fail, 'BinaryOpSymbol "not"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6797
7506
  if (module.config.objectIs) {
6798
7507
  return {
6799
7508
  call: module.getRef("is"),
@@ -6805,7 +7514,7 @@ ${input.slice(result.pos)}
6805
7514
  }
6806
7515
  return "!==";
6807
7516
  });
6808
- var BinaryOpSymbol$35 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7517
+ var BinaryOpSymbol$36 = $TS($S($EXPECT($L77, fail, 'BinaryOpSymbol "is"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6809
7518
  if (module.config.objectIs) {
6810
7519
  return {
6811
7520
  call: module.getRef("is"),
@@ -6816,12 +7525,12 @@ ${input.slice(result.pos)}
6816
7525
  }
6817
7526
  return "===";
6818
7527
  });
6819
- var BinaryOpSymbol$36 = $TS($S($EXPECT($L75, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
7528
+ var BinaryOpSymbol$37 = $TS($S($EXPECT($L76, fail, 'BinaryOpSymbol "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
6820
7529
  return $1;
6821
7530
  });
6822
- var BinaryOpSymbol$37 = $EXPECT($L77, fail, 'BinaryOpSymbol "&"');
6823
- var BinaryOpSymbol$38 = $EXPECT($L78, fail, 'BinaryOpSymbol "^"');
6824
- var BinaryOpSymbol$39 = $EXPECT($L79, fail, 'BinaryOpSymbol "|"');
7531
+ var BinaryOpSymbol$38 = $EXPECT($L78, fail, 'BinaryOpSymbol "&"');
7532
+ var BinaryOpSymbol$39 = $EXPECT($L79, fail, 'BinaryOpSymbol "^"');
7533
+ var BinaryOpSymbol$40 = $EXPECT($L80, fail, 'BinaryOpSymbol "|"');
6825
7534
  function BinaryOpSymbol(state) {
6826
7535
  let eventData;
6827
7536
  if (state.events) {
@@ -6833,12 +7542,12 @@ ${input.slice(result.pos)}
6833
7542
  }
6834
7543
  }
6835
7544
  if (state.tokenize) {
6836
- const result = $TOKEN("BinaryOpSymbol", state, BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state) || BinaryOpSymbol$31(state) || BinaryOpSymbol$32(state) || BinaryOpSymbol$33(state) || BinaryOpSymbol$34(state) || BinaryOpSymbol$35(state) || BinaryOpSymbol$36(state) || BinaryOpSymbol$37(state) || BinaryOpSymbol$38(state) || BinaryOpSymbol$39(state));
7545
+ const result = $TOKEN("BinaryOpSymbol", state, BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state) || BinaryOpSymbol$31(state) || BinaryOpSymbol$32(state) || BinaryOpSymbol$33(state) || BinaryOpSymbol$34(state) || BinaryOpSymbol$35(state) || BinaryOpSymbol$36(state) || BinaryOpSymbol$37(state) || BinaryOpSymbol$38(state) || BinaryOpSymbol$39(state) || BinaryOpSymbol$40(state));
6837
7546
  if (state.events)
6838
7547
  state.events.exit?.("BinaryOpSymbol", state, result, eventData);
6839
7548
  return result;
6840
7549
  } else {
6841
- const result = BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state) || BinaryOpSymbol$31(state) || BinaryOpSymbol$32(state) || BinaryOpSymbol$33(state) || BinaryOpSymbol$34(state) || BinaryOpSymbol$35(state) || BinaryOpSymbol$36(state) || BinaryOpSymbol$37(state) || BinaryOpSymbol$38(state) || BinaryOpSymbol$39(state);
7550
+ const result = BinaryOpSymbol$0(state) || BinaryOpSymbol$1(state) || BinaryOpSymbol$2(state) || BinaryOpSymbol$3(state) || BinaryOpSymbol$4(state) || BinaryOpSymbol$5(state) || BinaryOpSymbol$6(state) || BinaryOpSymbol$7(state) || BinaryOpSymbol$8(state) || BinaryOpSymbol$9(state) || BinaryOpSymbol$10(state) || BinaryOpSymbol$11(state) || BinaryOpSymbol$12(state) || BinaryOpSymbol$13(state) || BinaryOpSymbol$14(state) || BinaryOpSymbol$15(state) || BinaryOpSymbol$16(state) || BinaryOpSymbol$17(state) || BinaryOpSymbol$18(state) || BinaryOpSymbol$19(state) || BinaryOpSymbol$20(state) || BinaryOpSymbol$21(state) || BinaryOpSymbol$22(state) || BinaryOpSymbol$23(state) || BinaryOpSymbol$24(state) || BinaryOpSymbol$25(state) || BinaryOpSymbol$26(state) || BinaryOpSymbol$27(state) || BinaryOpSymbol$28(state) || BinaryOpSymbol$29(state) || BinaryOpSymbol$30(state) || BinaryOpSymbol$31(state) || BinaryOpSymbol$32(state) || BinaryOpSymbol$33(state) || BinaryOpSymbol$34(state) || BinaryOpSymbol$35(state) || BinaryOpSymbol$36(state) || BinaryOpSymbol$37(state) || BinaryOpSymbol$38(state) || BinaryOpSymbol$39(state) || BinaryOpSymbol$40(state);
6842
7551
  if (state.events)
6843
7552
  state.events.exit?.("BinaryOpSymbol", state, result, eventData);
6844
7553
  return result;
@@ -6964,7 +7673,8 @@ ${input.slice(result.pos)}
6964
7673
  if ($1.type === "ObjectExpression") {
6965
7674
  return {
6966
7675
  type: "ParenthesizedExpression",
6967
- children: ["(", $1, ")"]
7676
+ children: ["(", $1, ")"],
7677
+ expression: $1
6968
7678
  };
6969
7679
  }
6970
7680
  return $1;
@@ -6992,7 +7702,7 @@ ${input.slice(result.pos)}
6992
7702
  return result;
6993
7703
  }
6994
7704
  }
6995
- var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L80, fail, 'EmptyStatement ";"'))), function(value) {
7705
+ var EmptyStatement$0 = $T($S($Q(TrailingComment), $Y($EXPECT($L81, fail, 'EmptyStatement ";"'))), function(value) {
6996
7706
  return { "type": "EmptyStatement", "children": value[0] };
6997
7707
  });
6998
7708
  function EmptyStatement(state) {
@@ -7952,7 +8662,7 @@ ${input.slice(result.pos)}
7952
8662
  return result;
7953
8663
  }
7954
8664
  }
7955
- var CoffeeForDeclaration$0 = $TS($S($E($S(__, $EXPECT($L81, fail, 'CoffeeForDeclaration "own"'), NonIdContinue)), ForBinding), function($skip, $loc, $0, $1, $2) {
8665
+ var CoffeeForDeclaration$0 = $TS($S($E($S(__, $EXPECT($L82, fail, 'CoffeeForDeclaration "own"'), NonIdContinue)), ForBinding), function($skip, $loc, $0, $1, $2) {
7956
8666
  var own = $1;
7957
8667
  var binding = $2;
7958
8668
  return {
@@ -8153,6 +8863,7 @@ ${input.slice(result.pos)}
8153
8863
  return {
8154
8864
  type: "SwitchStatement",
8155
8865
  children: $0,
8866
+ expression: condition,
8156
8867
  caseBlock
8157
8868
  };
8158
8869
  });
@@ -8239,7 +8950,7 @@ ${input.slice(result.pos)}
8239
8950
  return result;
8240
8951
  }
8241
8952
  }
8242
- var CaseBlock$0 = $TS($S(__, OpenBrace, NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8953
+ var CaseBlock$0 = $TS($S($E($C(Samedent, _)), OpenBrace, NestedCaseClauses, __, CloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
8243
8954
  var clauses = $3;
8244
8955
  return {
8245
8956
  type: "CaseBlock",
@@ -8335,10 +9046,20 @@ ${input.slice(result.pos)}
8335
9046
  return result;
8336
9047
  }
8337
9048
  }
8338
- var CaseClause$0 = $T($S(Case, CaseExpressionList, $C(NestedBlockStatements, NoExpressions)), function(value) {
9049
+ var CaseClause$0 = $TS($S(MatchingPattern, $C(ThenClause, NestedBlockStatements, EmptyBareBlock)), function($skip, $loc, $0, $1, $2) {
9050
+ var pattern = $1;
9051
+ var block = $2;
9052
+ return {
9053
+ type: "PatternClause",
9054
+ children: $0,
9055
+ block,
9056
+ pattern
9057
+ };
9058
+ });
9059
+ var CaseClause$1 = $T($S(Case, CaseExpressionList, $C(NestedBlockStatements, EmptyBareBlock)), function(value) {
8339
9060
  return { "type": "CaseClause", "children": value };
8340
9061
  });
8341
- var CaseClause$1 = $TS($S(When, CaseExpressionList, InsertOpenBrace, $C(ThenClause, NestedBlockStatements, NoExpressions), InsertBreak, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
9062
+ var CaseClause$2 = $TS($S(When, CaseExpressionList, InsertOpenBrace, $C(ThenClause, NestedBlockStatements, EmptyBareBlock), InsertBreak, InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8) {
8342
9063
  var cases = $2;
8343
9064
  var block = $4;
8344
9065
  var b = $5;
@@ -8350,7 +9071,7 @@ ${input.slice(result.pos)}
8350
9071
  children: $0
8351
9072
  };
8352
9073
  });
8353
- var CaseClause$2 = $TS($S(Default, ImpliedColon, $C(NestedBlockStatements, NoExpressions)), function($skip, $loc, $0, $1, $2, $3) {
9074
+ var CaseClause$3 = $TS($S(Default, ImpliedColon, $C(NestedBlockStatements, EmptyBareBlock)), function($skip, $loc, $0, $1, $2, $3) {
8354
9075
  var block = $3;
8355
9076
  return {
8356
9077
  type: "DefaultClause",
@@ -8358,7 +9079,7 @@ ${input.slice(result.pos)}
8358
9079
  children: $0
8359
9080
  };
8360
9081
  });
8361
- var CaseClause$3 = $TS($S(Else, ImpliedColon, InsertOpenBrace, $C(NestedBlockStatements, SingleLineStatements), InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
9082
+ var CaseClause$4 = $TS($S(Else, ImpliedColon, InsertOpenBrace, $C(NestedBlockStatements, SingleLineStatements), InsertNewline, InsertIndent, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
8362
9083
  var block = $4;
8363
9084
  $1.token = "default";
8364
9085
  return {
@@ -8378,12 +9099,12 @@ ${input.slice(result.pos)}
8378
9099
  }
8379
9100
  }
8380
9101
  if (state.tokenize) {
8381
- const result = $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state));
9102
+ const result = $TOKEN("CaseClause", state, CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state) || CaseClause$4(state));
8382
9103
  if (state.events)
8383
9104
  state.events.exit?.("CaseClause", state, result, eventData);
8384
9105
  return result;
8385
9106
  } else {
8386
- const result = CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state);
9107
+ const result = CaseClause$0(state) || CaseClause$1(state) || CaseClause$2(state) || CaseClause$3(state) || CaseClause$4(state);
8387
9108
  if (state.events)
8388
9109
  state.events.exit?.("CaseClause", state, result, eventData);
8389
9110
  return result;
@@ -8421,33 +9142,8 @@ ${input.slice(result.pos)}
8421
9142
  return result;
8422
9143
  }
8423
9144
  }
8424
- var NoExpressions$0 = $T($EXPECT($L16, fail, 'NoExpressions ""'), function(value) {
8425
- return [];
8426
- });
8427
- function NoExpressions(state) {
8428
- let eventData;
8429
- if (state.events) {
8430
- const result = state.events.enter?.("NoExpressions", state);
8431
- if (result) {
8432
- if (result.cache)
8433
- return result.cache;
8434
- eventData = result.data;
8435
- }
8436
- }
8437
- if (state.tokenize) {
8438
- const result = $TOKEN("NoExpressions", state, NoExpressions$0(state));
8439
- if (state.events)
8440
- state.events.exit?.("NoExpressions", state, result, eventData);
8441
- return result;
8442
- } else {
8443
- const result = NoExpressions$0(state);
8444
- if (state.events)
8445
- state.events.exit?.("NoExpressions", state, result, eventData);
8446
- return result;
8447
- }
8448
- }
8449
9145
  var ImpliedColon$0 = $S(__, Colon);
8450
- var ImpliedColon$1 = $TV($EXPECT($L16, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
9146
+ var ImpliedColon$1 = $TV($EXPECT($L17, fail, 'ImpliedColon ""'), function($skip, $loc, $0, $1) {
8451
9147
  return { $loc, token: ":" };
8452
9148
  });
8453
9149
  function ImpliedColon(state) {
@@ -8587,7 +9283,7 @@ ${input.slice(result.pos)}
8587
9283
  return result;
8588
9284
  }
8589
9285
  }
8590
- var Finally$0 = $S(__, $EXPECT($L82, fail, 'Finally "finally"'), NonIdContinue, BracedBlock);
9286
+ var Finally$0 = $S(__, $EXPECT($L83, fail, 'Finally "finally"'), NonIdContinue, BracedBlock);
8591
9287
  function Finally(state) {
8592
9288
  let eventData;
8593
9289
  if (state.events) {
@@ -8639,13 +9335,15 @@ ${input.slice(result.pos)}
8639
9335
  });
8640
9336
  var Condition$1 = $TS($S(InsertOpenParen, ExpressionWithIndentedApplicationSuppressed, InsertCloseParen), function($skip, $loc, $0, $1, $2, $3) {
8641
9337
  var open = $1;
8642
- var exp = $2;
9338
+ var expression = $2;
8643
9339
  var close = $3;
8644
- if (exp.type === "ParenthesizedExpression")
8645
- return exp;
9340
+ if (expression.type === "ParenthesizedExpression")
9341
+ return expression;
9342
+ expression = module.insertTrimmingSpace(expression, "");
8646
9343
  return {
8647
9344
  type: "ParenthesizedExpression",
8648
- children: [open, module.insertTrimmingSpace(exp, ""), close]
9345
+ children: [open, expression, close],
9346
+ expression
8649
9347
  };
8650
9348
  });
8651
9349
  function Condition(state) {
@@ -8699,7 +9397,7 @@ ${input.slice(result.pos)}
8699
9397
  return result;
8700
9398
  }
8701
9399
  }
8702
- var SuppressIndentedApplication$0 = $TV($EXPECT($L16, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
9400
+ var SuppressIndentedApplication$0 = $TV($EXPECT($L17, fail, 'SuppressIndentedApplication ""'), function($skip, $loc, $0, $1) {
8703
9401
  module.suppressIndentedApplication = true;
8704
9402
  });
8705
9403
  function SuppressIndentedApplication(state) {
@@ -8724,7 +9422,7 @@ ${input.slice(result.pos)}
8724
9422
  return result;
8725
9423
  }
8726
9424
  }
8727
- var IndentedApplicationAllowed$0 = $TV($EXPECT($L16, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
9425
+ var IndentedApplicationAllowed$0 = $TV($EXPECT($L17, fail, 'IndentedApplicationAllowed ""'), function($skip, $loc, $0, $1) {
8728
9426
  if (module.suppressIndentedApplication)
8729
9427
  return $skip;
8730
9428
  return;
@@ -8751,7 +9449,7 @@ ${input.slice(result.pos)}
8751
9449
  return result;
8752
9450
  }
8753
9451
  }
8754
- var SuppressTrailingMemberProperty$0 = $TV($EXPECT($L16, fail, 'SuppressTrailingMemberProperty ""'), function($skip, $loc, $0, $1) {
9452
+ var SuppressTrailingMemberProperty$0 = $TV($EXPECT($L17, fail, 'SuppressTrailingMemberProperty ""'), function($skip, $loc, $0, $1) {
8755
9453
  module.suppressTrailingMemberProperty.push(true);
8756
9454
  });
8757
9455
  function SuppressTrailingMemberProperty(state) {
@@ -8776,7 +9474,7 @@ ${input.slice(result.pos)}
8776
9474
  return result;
8777
9475
  }
8778
9476
  }
8779
- var TrailingMemberPropertyAllowed$0 = $TV($EXPECT($L16, fail, 'TrailingMemberPropertyAllowed ""'), function($skip, $loc, $0, $1) {
9477
+ var TrailingMemberPropertyAllowed$0 = $TV($EXPECT($L17, fail, 'TrailingMemberPropertyAllowed ""'), function($skip, $loc, $0, $1) {
8780
9478
  if (module.trailingMemberPropertySuppressed)
8781
9479
  return $skip;
8782
9480
  });
@@ -8825,13 +9523,13 @@ ${input.slice(result.pos)}
8825
9523
  return result;
8826
9524
  }
8827
9525
  }
8828
- var KeywordStatement$0 = $T($S($EXPECT($L83, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
9526
+ var KeywordStatement$0 = $T($S($EXPECT($L84, fail, 'KeywordStatement "break"'), NonIdContinue), function(value) {
8829
9527
  return { "type": "BreakStatement", "children": value };
8830
9528
  });
8831
- var KeywordStatement$1 = $T($S($EXPECT($L84, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
9529
+ var KeywordStatement$1 = $T($S($EXPECT($L85, fail, 'KeywordStatement "continue"'), NonIdContinue), function(value) {
8832
9530
  return { "type": "ContinueStatement", "children": value };
8833
9531
  });
8834
- var KeywordStatement$2 = $T($S($EXPECT($L85, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
9532
+ var KeywordStatement$2 = $T($S($EXPECT($L86, fail, 'KeywordStatement "debugger"'), NonIdContinue), function(value) {
8835
9533
  return { "type": "DebuggerStatement", "children": value };
8836
9534
  });
8837
9535
  var KeywordStatement$3 = $T($S(Return, $E(MaybeNestedExpression)), function(value) {
@@ -8862,7 +9560,7 @@ ${input.slice(result.pos)}
8862
9560
  return result;
8863
9561
  }
8864
9562
  }
8865
- var DebuggerExpression$0 = $TS($S($EXPECT($L85, fail, 'DebuggerExpression "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
9563
+ var DebuggerExpression$0 = $TS($S($EXPECT($L86, fail, 'DebuggerExpression "debugger"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
8866
9564
  return {
8867
9565
  type: "DebuggerExpression",
8868
9566
  children: ["(()=>{", $1, "})()"]
@@ -8990,7 +9688,7 @@ ${input.slice(result.pos)}
8990
9688
  return result;
8991
9689
  }
8992
9690
  }
8993
- var ImpliedImport$0 = $TV($EXPECT($L16, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
9691
+ var ImpliedImport$0 = $TV($EXPECT($L17, fail, 'ImpliedImport ""'), function($skip, $loc, $0, $1) {
8994
9692
  return { $loc, token: "import " };
8995
9693
  });
8996
9694
  function ImpliedImport(state) {
@@ -9139,7 +9837,7 @@ ${input.slice(result.pos)}
9139
9837
  return result;
9140
9838
  }
9141
9839
  }
9142
- var ImportAssertion$0 = $S($E(_), $EXPECT($L86, fail, 'ImportAssertion "assert"'), NonIdContinue, $E(_), ObjectLiteral);
9840
+ var ImportAssertion$0 = $S($E(_), $EXPECT($L87, fail, 'ImportAssertion "assert"'), NonIdContinue, $E(_), ObjectLiteral);
9143
9841
  function ImportAssertion(state) {
9144
9842
  let eventData;
9145
9843
  if (state.events) {
@@ -9167,6 +9865,22 @@ ${input.slice(result.pos)}
9167
9865
  return $2;
9168
9866
  return { ts: true, children: $0, binding: $2.binding };
9169
9867
  });
9868
+ var TypeAndImportSpecifier$1 = $TS($S(__, Operator, ImportSpecifier), function($skip, $loc, $0, $1, $2, $3) {
9869
+ var ws = $1;
9870
+ var spec = $3;
9871
+ if (spec.binding.type !== "Identifier") {
9872
+ throw new Error("Expected identifier after `operator`");
9873
+ }
9874
+ module.operators.add(spec.binding.name);
9875
+ return {
9876
+ ...spec,
9877
+ children: [
9878
+ ws,
9879
+ module.insertTrimmingSpace(spec[0], ""),
9880
+ spec.children.slice(1)
9881
+ ]
9882
+ };
9883
+ });
9170
9884
  function TypeAndImportSpecifier(state) {
9171
9885
  let eventData;
9172
9886
  if (state.events) {
@@ -9178,12 +9892,12 @@ ${input.slice(result.pos)}
9178
9892
  }
9179
9893
  }
9180
9894
  if (state.tokenize) {
9181
- const result = $TOKEN("TypeAndImportSpecifier", state, TypeAndImportSpecifier$0(state));
9895
+ const result = $TOKEN("TypeAndImportSpecifier", state, TypeAndImportSpecifier$0(state) || TypeAndImportSpecifier$1(state));
9182
9896
  if (state.events)
9183
9897
  state.events.exit?.("TypeAndImportSpecifier", state, result, eventData);
9184
9898
  return result;
9185
9899
  } else {
9186
- const result = TypeAndImportSpecifier$0(state);
9900
+ const result = TypeAndImportSpecifier$0(state) || TypeAndImportSpecifier$1(state);
9187
9901
  if (state.events)
9188
9902
  state.events.exit?.("TypeAndImportSpecifier", state, result, eventData);
9189
9903
  return result;
@@ -9226,7 +9940,7 @@ ${input.slice(result.pos)}
9226
9940
  }
9227
9941
  }
9228
9942
  var ImportAsToken$0 = $S(__, As);
9229
- var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L6, fail, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
9943
+ var ImportAsToken$1 = $TS($S(Loc, __, Colon, $E($EXPECT($L7, fail, 'ImportAsToken " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
9230
9944
  var l = $1;
9231
9945
  var ws = $2;
9232
9946
  var c = $3;
@@ -9313,7 +10027,7 @@ ${input.slice(result.pos)}
9313
10027
  return result;
9314
10028
  }
9315
10029
  }
9316
- var UnprocessedModuleSpecifier$0 = BasicStringLiteral;
10030
+ var UnprocessedModuleSpecifier$0 = StringLiteral;
9317
10031
  var UnprocessedModuleSpecifier$1 = UnquotedSpecifier;
9318
10032
  function UnprocessedModuleSpecifier(state) {
9319
10033
  let eventData;
@@ -9580,6 +10294,7 @@ ${input.slice(result.pos)}
9580
10294
  var Declaration$1 = ClassDeclaration;
9581
10295
  var Declaration$2 = LexicalDeclaration;
9582
10296
  var Declaration$3 = TypeDeclaration;
10297
+ var Declaration$4 = OperatorDeclaration;
9583
10298
  function Declaration(state) {
9584
10299
  let eventData;
9585
10300
  if (state.events) {
@@ -9591,12 +10306,12 @@ ${input.slice(result.pos)}
9591
10306
  }
9592
10307
  }
9593
10308
  if (state.tokenize) {
9594
- const result = $TOKEN("Declaration", state, Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state));
10309
+ const result = $TOKEN("Declaration", state, Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state) || Declaration$4(state));
9595
10310
  if (state.events)
9596
10311
  state.events.exit?.("Declaration", state, result, eventData);
9597
10312
  return result;
9598
10313
  } else {
9599
- const result = Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state);
10314
+ const result = Declaration$0(state) || Declaration$1(state) || Declaration$2(state) || Declaration$3(state) || Declaration$4(state);
9600
10315
  if (state.events)
9601
10316
  state.events.exit?.("Declaration", state, result, eventData);
9602
10317
  return result;
@@ -9724,7 +10439,7 @@ ${input.slice(result.pos)}
9724
10439
  return result;
9725
10440
  }
9726
10441
  }
9727
- var ConstAssignment$0 = $TV($EXPECT($L87, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
10442
+ var ConstAssignment$0 = $TV($EXPECT($L88, fail, 'ConstAssignment ":="'), function($skip, $loc, $0, $1) {
9728
10443
  return { $loc, token: "=" };
9729
10444
  });
9730
10445
  function ConstAssignment(state) {
@@ -9749,7 +10464,7 @@ ${input.slice(result.pos)}
9749
10464
  return result;
9750
10465
  }
9751
10466
  }
9752
- var LetAssignment$0 = $TV($EXPECT($L88, fail, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
10467
+ var LetAssignment$0 = $TV($EXPECT($L89, fail, 'LetAssignment ".="'), function($skip, $loc, $0, $1) {
9753
10468
  return { $loc, token: "=" };
9754
10469
  });
9755
10470
  function LetAssignment(state) {
@@ -10215,57 +10930,24 @@ ${input.slice(result.pos)}
10215
10930
  return result;
10216
10931
  }
10217
10932
  }
10218
- var StringLiteral$0 = $TS($S(TripleDoubleQuote, $Q($C(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
10219
- return module.dedentBlockSubstitutions($0);
10220
- });
10221
- var StringLiteral$1 = $TS($S(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
10222
- var s = $1;
10223
- var str = $2;
10224
- var e = $3;
10225
- return [s, module.dedentBlockString(str), e];
10226
- });
10227
- var StringLiteral$2 = CoffeeInterpolatedDoubleQuotedString;
10228
- var StringLiteral$3 = BasicStringLiteral;
10229
- function StringLiteral(state) {
10230
- let eventData;
10231
- if (state.events) {
10232
- const result = state.events.enter?.("StringLiteral", state);
10233
- if (result) {
10234
- if (result.cache)
10235
- return result.cache;
10236
- eventData = result.data;
10237
- }
10238
- }
10239
- if (state.tokenize) {
10240
- const result = $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state) || StringLiteral$3(state));
10241
- if (state.events)
10242
- state.events.exit?.("StringLiteral", state, result, eventData);
10243
- return result;
10244
- } else {
10245
- const result = StringLiteral$0(state) || StringLiteral$1(state) || StringLiteral$2(state) || StringLiteral$3(state);
10246
- if (state.events)
10247
- state.events.exit?.("StringLiteral", state, result, eventData);
10248
- return result;
10249
- }
10250
- }
10251
- var BasicStringLiteral$0 = $TS($S(DoubleQuote, DoubleStringCharacters, DoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
10933
+ var StringLiteral$0 = $TS($S(DoubleQuote, DoubleStringCharacters, DoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
10252
10934
  var str = $2;
10253
10935
  return {
10254
10936
  token: `"${module.modifyString(str.token)}"`,
10255
10937
  $loc
10256
10938
  };
10257
10939
  });
10258
- var BasicStringLiteral$1 = $TS($S(SingleQuote, SingleStringCharacters, SingleQuote), function($skip, $loc, $0, $1, $2, $3) {
10940
+ var StringLiteral$1 = $TS($S(SingleQuote, SingleStringCharacters, SingleQuote), function($skip, $loc, $0, $1, $2, $3) {
10259
10941
  var str = $2;
10260
10942
  return {
10261
10943
  token: `'${module.modifyString(str.token)}'`,
10262
10944
  $loc
10263
10945
  };
10264
10946
  });
10265
- function BasicStringLiteral(state) {
10947
+ function StringLiteral(state) {
10266
10948
  let eventData;
10267
10949
  if (state.events) {
10268
- const result = state.events.enter?.("BasicStringLiteral", state);
10950
+ const result = state.events.enter?.("StringLiteral", state);
10269
10951
  if (result) {
10270
10952
  if (result.cache)
10271
10953
  return result.cache;
@@ -10273,14 +10955,14 @@ ${input.slice(result.pos)}
10273
10955
  }
10274
10956
  }
10275
10957
  if (state.tokenize) {
10276
- const result = $TOKEN("BasicStringLiteral", state, BasicStringLiteral$0(state) || BasicStringLiteral$1(state));
10958
+ const result = $TOKEN("StringLiteral", state, StringLiteral$0(state) || StringLiteral$1(state));
10277
10959
  if (state.events)
10278
- state.events.exit?.("BasicStringLiteral", state, result, eventData);
10960
+ state.events.exit?.("StringLiteral", state, result, eventData);
10279
10961
  return result;
10280
10962
  } else {
10281
- const result = BasicStringLiteral$0(state) || BasicStringLiteral$1(state);
10963
+ const result = StringLiteral$0(state) || StringLiteral$1(state);
10282
10964
  if (state.events)
10283
- state.events.exit?.("BasicStringLiteral", state, result, eventData);
10965
+ state.events.exit?.("StringLiteral", state, result, eventData);
10284
10966
  return result;
10285
10967
  }
10286
10968
  }
@@ -10413,6 +11095,7 @@ ${input.slice(result.pos)}
10413
11095
  var e = $4;
10414
11096
  if (parts.length === 0 || parts.length === 1 && parts[0].token != null) {
10415
11097
  return {
11098
+ type: "StringLiteral",
10416
11099
  token: parts.length ? `"${module.modifyString(parts[0].token)}"` : '""',
10417
11100
  $loc
10418
11101
  };
@@ -10424,7 +11107,10 @@ ${input.slice(result.pos)}
10424
11107
  }
10425
11108
  });
10426
11109
  s.token = e.token = "`";
10427
- return [s, parts, e];
11110
+ return {
11111
+ type: "TemplateLiteral",
11112
+ children: [s, parts, e]
11113
+ };
10428
11114
  });
10429
11115
  function CoffeeInterpolatedDoubleQuotedString(state) {
10430
11116
  let eventData;
@@ -10474,8 +11160,8 @@ ${input.slice(result.pos)}
10474
11160
  }
10475
11161
  }
10476
11162
  var RegularExpressionLiteral$0 = HeregexLiteral;
10477
- var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L52, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L52, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
10478
- return { $loc, token: $1 };
11163
+ var RegularExpressionLiteral$1 = $TV($TEXT($S($EXPECT($L53, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L53, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
11164
+ return { type: "RegularExpressionLiteral", $loc, token: $1 };
10479
11165
  });
10480
11166
  function RegularExpressionLiteral(state) {
10481
11167
  let eventData;
@@ -10575,7 +11261,10 @@ ${input.slice(result.pos)}
10575
11261
  result.push({ ...close, token: ")" });
10576
11262
  return result;
10577
11263
  }
10578
- return $0;
11264
+ return {
11265
+ type: "RegularExpressionLiteral",
11266
+ children: $0
11267
+ };
10579
11268
  });
10580
11269
  function HeregexLiteral(state) {
10581
11270
  let eventData;
@@ -10776,7 +11465,25 @@ ${input.slice(result.pos)}
10776
11465
  var TemplateLiteral$0 = $TS($S(TripleTick, $Q($C(TemplateBlockCharacters, TemplateSubstitution)), TripleTick), function($skip, $loc, $0, $1, $2, $3) {
10777
11466
  return module.dedentBlockSubstitutions($0);
10778
11467
  });
10779
- var TemplateLiteral$1 = $S(Backtick, $Q($C(TemplateCharacters, TemplateSubstitution)), Backtick);
11468
+ var TemplateLiteral$1 = $TS($S(Backtick, $Q($C(TemplateCharacters, TemplateSubstitution)), Backtick), function($skip, $loc, $0, $1, $2, $3) {
11469
+ return {
11470
+ type: "TemplateLiteral",
11471
+ children: $0
11472
+ };
11473
+ });
11474
+ var TemplateLiteral$2 = $TS($S(TripleDoubleQuote, $Q($C(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
11475
+ return module.dedentBlockSubstitutions($0);
11476
+ });
11477
+ var TemplateLiteral$3 = $TS($S(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
11478
+ var s = $1;
11479
+ var str = $2;
11480
+ var e = $3;
11481
+ return {
11482
+ type: "TemplateLiteral",
11483
+ children: [s, module.dedentBlockString(str), e]
11484
+ };
11485
+ });
11486
+ var TemplateLiteral$4 = CoffeeInterpolatedDoubleQuotedString;
10780
11487
  function TemplateLiteral(state) {
10781
11488
  let eventData;
10782
11489
  if (state.events) {
@@ -10788,12 +11495,12 @@ ${input.slice(result.pos)}
10788
11495
  }
10789
11496
  }
10790
11497
  if (state.tokenize) {
10791
- const result = $TOKEN("TemplateLiteral", state, TemplateLiteral$0(state) || TemplateLiteral$1(state));
11498
+ const result = $TOKEN("TemplateLiteral", state, TemplateLiteral$0(state) || TemplateLiteral$1(state) || TemplateLiteral$2(state) || TemplateLiteral$3(state) || TemplateLiteral$4(state));
10792
11499
  if (state.events)
10793
11500
  state.events.exit?.("TemplateLiteral", state, result, eventData);
10794
11501
  return result;
10795
11502
  } else {
10796
- const result = TemplateLiteral$0(state) || TemplateLiteral$1(state);
11503
+ const result = TemplateLiteral$0(state) || TemplateLiteral$1(state) || TemplateLiteral$2(state) || TemplateLiteral$3(state) || TemplateLiteral$4(state);
10797
11504
  if (state.events)
10798
11505
  state.events.exit?.("TemplateLiteral", state, result, eventData);
10799
11506
  return result;
@@ -10876,9 +11583,7 @@ ${input.slice(result.pos)}
10876
11583
  var ReservedWord$1 = $S(CoffeeIsntEnabled, $R$0($EXPECT($R35, fail, "ReservedWord /(?:isnt)(?!\\p{ID_Continue})/")));
10877
11584
  var ReservedWord$2 = $S(CoffeeForLoopsEnabled, $R$0($EXPECT($R36, fail, "ReservedWord /(?:by)(?!\\p{ID_Continue})/")));
10878
11585
  var ReservedWord$3 = $S(CoffeeOfEnabled, $R$0($EXPECT($R37, fail, "ReservedWord /(?:of)(?!\\p{ID_Continue})/")));
10879
- var ReservedWord$4 = $S(CoffeeNotEnabled, $R$0($EXPECT($R38, fail, "ReservedWord /(?:not)(?!\\p{ID_Continue})/")));
10880
- var ReservedWord$5 = $S($EXPECT($L74, fail, 'ReservedWord "not"'), NonIdContinue, __, $EXPECT($L75, fail, 'ReservedWord "in"'), NonIdContinue);
10881
- var ReservedWord$6 = $R$0($EXPECT($R39, fail, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
11586
+ var ReservedWord$4 = $R$0($EXPECT($R38, fail, "ReservedWord /(?:and|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|interface|is|let|loop|new|not|null|or|private|protected|public|return|static|super|switch|this|throw|true|try|typeof|unless|until|var|void|while|with|yield)(?!\\p{ID_Continue})/"));
10882
11587
  function ReservedWord(state) {
10883
11588
  let eventData;
10884
11589
  if (state.events) {
@@ -10890,12 +11595,12 @@ ${input.slice(result.pos)}
10890
11595
  }
10891
11596
  }
10892
11597
  if (state.tokenize) {
10893
- const result = $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state) || ReservedWord$3(state) || ReservedWord$4(state) || ReservedWord$5(state) || ReservedWord$6(state));
11598
+ const result = $TOKEN("ReservedWord", state, ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state) || ReservedWord$3(state) || ReservedWord$4(state));
10894
11599
  if (state.events)
10895
11600
  state.events.exit?.("ReservedWord", state, result, eventData);
10896
11601
  return result;
10897
11602
  } else {
10898
- const result = ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state) || ReservedWord$3(state) || ReservedWord$4(state) || ReservedWord$5(state) || ReservedWord$6(state);
11603
+ const result = ReservedWord$0(state) || ReservedWord$1(state) || ReservedWord$2(state) || ReservedWord$3(state) || ReservedWord$4(state);
10899
11604
  if (state.events)
10900
11605
  state.events.exit?.("ReservedWord", state, result, eventData);
10901
11606
  return result;
@@ -10949,7 +11654,7 @@ ${input.slice(result.pos)}
10949
11654
  return result;
10950
11655
  }
10951
11656
  }
10952
- var JSSingleLineComment$0 = $TR($EXPECT($R40, fail, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11657
+ var JSSingleLineComment$0 = $TR($EXPECT($R39, fail, "JSSingleLineComment /\\/\\/(?!\\/)[^\\r\\n]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
10953
11658
  return { $loc, token: $0 };
10954
11659
  });
10955
11660
  function JSSingleLineComment(state) {
@@ -10998,7 +11703,7 @@ ${input.slice(result.pos)}
10998
11703
  return result;
10999
11704
  }
11000
11705
  }
11001
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L89, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L90, fail, 'JSMultiLineComment "*/"')), $EXPECT($R41, fail, "JSMultiLineComment /./"))), $EXPECT($L90, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11706
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L90, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L91, fail, 'JSMultiLineComment "*/"')), $EXPECT($R40, fail, "JSMultiLineComment /./"))), $EXPECT($L91, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
11002
11707
  return { $loc, token: $1 };
11003
11708
  });
11004
11709
  function JSMultiLineComment(state) {
@@ -11023,7 +11728,7 @@ ${input.slice(result.pos)}
11023
11728
  return result;
11024
11729
  }
11025
11730
  }
11026
- var CoffeeSingleLineComment$0 = $TR($EXPECT($R42, fail, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11731
+ var CoffeeSingleLineComment$0 = $TR($EXPECT($R41, fail, "CoffeeSingleLineComment /#(?!##(?!#))([^\\r\\n]*)/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11027
11732
  return { $loc, token: `//${$1}` };
11028
11733
  });
11029
11734
  function CoffeeSingleLineComment(state) {
@@ -11048,7 +11753,8 @@ ${input.slice(result.pos)}
11048
11753
  return result;
11049
11754
  }
11050
11755
  }
11051
- var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($Q($S($N($C(CoffeeHereCommentStart, $EXPECT($L90, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R41, fail, "CoffeeMultiLineComment /./")))), CoffeeHereCommentStart), function($skip, $loc, $0, $1, $2, $3) {
11756
+ var CoffeeMultiLineComment$0 = $TS($S(CoffeeHereCommentStart, $TEXT($EXPECT($R42, fail, "CoffeeMultiLineComment /[^]*?###/"))), function($skip, $loc, $0, $1, $2) {
11757
+ $2 = $2.slice(0, $2.length - 3).replace(/\*\//g, "* /");
11052
11758
  return { $loc, token: `/*${$2}*/` };
11053
11759
  });
11054
11760
  function CoffeeMultiLineComment(state) {
@@ -11096,7 +11802,7 @@ ${input.slice(result.pos)}
11096
11802
  return result;
11097
11803
  }
11098
11804
  }
11099
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L89, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L90, fail, 'InlineComment "*/"')), $EXPECT($R44, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L90, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
11805
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L90, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L91, fail, 'InlineComment "*/"')), $EXPECT($R44, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L91, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
11100
11806
  return { $loc, token: $1 };
11101
11807
  });
11102
11808
  function InlineComment(state) {
@@ -11195,7 +11901,7 @@ ${input.slice(result.pos)}
11195
11901
  var NonNewlineWhitespace$0 = $TR($EXPECT($R45, fail, "NonNewlineWhitespace /[ \\t]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
11196
11902
  return { $loc, token: $0 };
11197
11903
  });
11198
- var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L91, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
11904
+ var NonNewlineWhitespace$1 = $T($S(CoffeeLineContinuationEnabled, $EXPECT($L92, fail, 'NonNewlineWhitespace "\\\\\\\\"'), EOL), function(value) {
11199
11905
  return "";
11200
11906
  });
11201
11907
  function NonNewlineWhitespace(state) {
@@ -11347,7 +12053,7 @@ ${input.slice(result.pos)}
11347
12053
  }
11348
12054
  }
11349
12055
  var StatementDelimiter$0 = SemicolonDelimiter;
11350
- var StatementDelimiter$1 = $S($Y($S(Samedent, $C($EXPECT($L92, fail, 'StatementDelimiter "("'), $EXPECT($L93, fail, 'StatementDelimiter "["'), $EXPECT($L94, fail, 'StatementDelimiter "`"'), $EXPECT($L55, fail, 'StatementDelimiter "+"'), $EXPECT($L13, fail, 'StatementDelimiter "-"'), $EXPECT($L51, fail, 'StatementDelimiter "*"'), $EXPECT($L52, fail, 'StatementDelimiter "/"'), ObjectLiteral))), InsertSemicolon);
12056
+ var StatementDelimiter$1 = $S($Y($S(Samedent, $C($EXPECT($L1, fail, 'StatementDelimiter "("'), $EXPECT($L93, fail, 'StatementDelimiter "["'), $EXPECT($L94, fail, 'StatementDelimiter "`"'), $EXPECT($L56, fail, 'StatementDelimiter "+"'), $EXPECT($L14, fail, 'StatementDelimiter "-"'), $EXPECT($L52, fail, 'StatementDelimiter "*"'), $EXPECT($L53, fail, 'StatementDelimiter "/"'), ObjectLiteral))), InsertSemicolon);
11351
12057
  var StatementDelimiter$2 = $Y(EOS);
11352
12058
  function StatementDelimiter(state) {
11353
12059
  let eventData;
@@ -11422,7 +12128,7 @@ ${input.slice(result.pos)}
11422
12128
  return result;
11423
12129
  }
11424
12130
  }
11425
- var Loc$0 = $TV($EXPECT($L16, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
12131
+ var Loc$0 = $TV($EXPECT($L17, fail, 'Loc ""'), function($skip, $loc, $0, $1) {
11426
12132
  return { $loc, token: "" };
11427
12133
  });
11428
12134
  function Loc(state) {
@@ -11447,7 +12153,7 @@ ${input.slice(result.pos)}
11447
12153
  return result;
11448
12154
  }
11449
12155
  }
11450
- var Abstract$0 = $TV($TEXT($S($EXPECT($L95, fail, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L6, fail, 'Abstract " "')))), function($skip, $loc, $0, $1) {
12156
+ var Abstract$0 = $TV($TEXT($S($EXPECT($L95, fail, 'Abstract "abstract"'), NonIdContinue, $E($EXPECT($L7, fail, 'Abstract " "')))), function($skip, $loc, $0, $1) {
11451
12157
  return { $loc, token: $1, ts: true };
11452
12158
  });
11453
12159
  function Abstract(state) {
@@ -11472,7 +12178,7 @@ ${input.slice(result.pos)}
11472
12178
  return result;
11473
12179
  }
11474
12180
  }
11475
- var Ampersand$0 = $TV($EXPECT($L77, fail, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
12181
+ var Ampersand$0 = $TV($EXPECT($L78, fail, 'Ampersand "&"'), function($skip, $loc, $0, $1) {
11476
12182
  return { $loc, token: $1 };
11477
12183
  });
11478
12184
  function Ampersand(state) {
@@ -11747,7 +12453,7 @@ ${input.slice(result.pos)}
11747
12453
  return result;
11748
12454
  }
11749
12455
  }
11750
- var CloseBrace$0 = $TV($EXPECT($L19, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
12456
+ var CloseBrace$0 = $TV($EXPECT($L20, fail, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
11751
12457
  return { $loc, token: $1 };
11752
12458
  });
11753
12459
  function CloseBrace(state) {
@@ -11797,7 +12503,7 @@ ${input.slice(result.pos)}
11797
12503
  return result;
11798
12504
  }
11799
12505
  }
11800
- var CloseParen$0 = $TV($EXPECT($L17, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
12506
+ var CloseParen$0 = $TV($EXPECT($L18, fail, 'CloseParen ")"'), function($skip, $loc, $0, $1) {
11801
12507
  return { $loc, token: $1 };
11802
12508
  });
11803
12509
  function CloseParen(state) {
@@ -11872,6 +12578,31 @@ ${input.slice(result.pos)}
11872
12578
  return result;
11873
12579
  }
11874
12580
  }
12581
+ var Comma$0 = $TV($EXPECT($L106, fail, 'Comma ","'), function($skip, $loc, $0, $1) {
12582
+ return { $loc, token: $1 };
12583
+ });
12584
+ function Comma(state) {
12585
+ let eventData;
12586
+ if (state.events) {
12587
+ const result = state.events.enter?.("Comma", state);
12588
+ if (result) {
12589
+ if (result.cache)
12590
+ return result.cache;
12591
+ eventData = result.data;
12592
+ }
12593
+ }
12594
+ if (state.tokenize) {
12595
+ const result = $TOKEN("Comma", state, Comma$0(state));
12596
+ if (state.events)
12597
+ state.events.exit?.("Comma", state, result, eventData);
12598
+ return result;
12599
+ } else {
12600
+ const result = Comma$0(state);
12601
+ if (state.events)
12602
+ state.events.exit?.("Comma", state, result, eventData);
12603
+ return result;
12604
+ }
12605
+ }
11875
12606
  var ConstructorShorthand$0 = $TV($EXPECT($L97, fail, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
11876
12607
  return { $loc, token: "constructor" };
11877
12608
  });
@@ -11897,7 +12628,7 @@ ${input.slice(result.pos)}
11897
12628
  return result;
11898
12629
  }
11899
12630
  }
11900
- var Declare$0 = $TS($S($EXPECT($L106, fail, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12631
+ var Declare$0 = $TS($S($EXPECT($L107, fail, 'Declare "declare"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11901
12632
  return { $loc, token: $1 };
11902
12633
  });
11903
12634
  function Declare(state) {
@@ -11922,7 +12653,7 @@ ${input.slice(result.pos)}
11922
12653
  return result;
11923
12654
  }
11924
12655
  }
11925
- var Default$0 = $TS($S($EXPECT($L107, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12656
+ var Default$0 = $TS($S($EXPECT($L108, fail, 'Default "default"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11926
12657
  return { $loc, token: $1 };
11927
12658
  });
11928
12659
  function Default(state) {
@@ -11947,7 +12678,7 @@ ${input.slice(result.pos)}
11947
12678
  return result;
11948
12679
  }
11949
12680
  }
11950
- var Delete$0 = $TS($S($EXPECT($L108, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12681
+ var Delete$0 = $TS($S($EXPECT($L109, fail, 'Delete "delete"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11951
12682
  return { $loc, token: $1 };
11952
12683
  });
11953
12684
  function Delete(state) {
@@ -11972,7 +12703,7 @@ ${input.slice(result.pos)}
11972
12703
  return result;
11973
12704
  }
11974
12705
  }
11975
- var Do$0 = $TS($S($EXPECT($L109, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12706
+ var Do$0 = $TS($S($EXPECT($L110, fail, 'Do "do"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
11976
12707
  return { $loc, token: $1 };
11977
12708
  });
11978
12709
  function Do(state) {
@@ -11997,7 +12728,7 @@ ${input.slice(result.pos)}
11997
12728
  return result;
11998
12729
  }
11999
12730
  }
12000
- var Dot$0 = $TV($EXPECT($L2, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
12731
+ var Dot$0 = $TV($EXPECT($L3, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
12001
12732
  return { $loc, token: $1 };
12002
12733
  });
12003
12734
  function Dot(state) {
@@ -12022,7 +12753,7 @@ ${input.slice(result.pos)}
12022
12753
  return result;
12023
12754
  }
12024
12755
  }
12025
- var DotDot$0 = $TV($EXPECT($L110, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
12756
+ var DotDot$0 = $TV($EXPECT($L111, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
12026
12757
  return { $loc, token: $1 };
12027
12758
  });
12028
12759
  function DotDot(state) {
@@ -12047,7 +12778,7 @@ ${input.slice(result.pos)}
12047
12778
  return result;
12048
12779
  }
12049
12780
  }
12050
- var DotDotDot$0 = $TV($EXPECT($L111, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
12781
+ var DotDotDot$0 = $TV($EXPECT($L112, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
12051
12782
  return { $loc, token: $1 };
12052
12783
  });
12053
12784
  function DotDotDot(state) {
@@ -12072,7 +12803,7 @@ ${input.slice(result.pos)}
12072
12803
  return result;
12073
12804
  }
12074
12805
  }
12075
- var DoubleColon$0 = $TV($EXPECT($L112, fail, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
12806
+ var DoubleColon$0 = $TV($EXPECT($L113, fail, 'DoubleColon "::"'), function($skip, $loc, $0, $1) {
12076
12807
  return { $loc, token: $1 };
12077
12808
  });
12078
12809
  function DoubleColon(state) {
@@ -12097,7 +12828,7 @@ ${input.slice(result.pos)}
12097
12828
  return result;
12098
12829
  }
12099
12830
  }
12100
- var DoubleQuote$0 = $TV($EXPECT($L113, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
12831
+ var DoubleQuote$0 = $TV($EXPECT($L114, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
12101
12832
  return { $loc, token: $1 };
12102
12833
  });
12103
12834
  function DoubleQuote(state) {
@@ -12122,7 +12853,7 @@ ${input.slice(result.pos)}
12122
12853
  return result;
12123
12854
  }
12124
12855
  }
12125
- var Else$0 = $TS($S($EXPECT($L114, fail, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12856
+ var Else$0 = $TS($S($EXPECT($L115, fail, 'Else "else"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12126
12857
  return { $loc, token: $1 };
12127
12858
  });
12128
12859
  function Else(state) {
@@ -12172,7 +12903,7 @@ ${input.slice(result.pos)}
12172
12903
  return result;
12173
12904
  }
12174
12905
  }
12175
- var Export$0 = $TS($S($EXPECT($L115, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12906
+ var Export$0 = $TS($S($EXPECT($L116, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12176
12907
  return { $loc, token: $1 };
12177
12908
  });
12178
12909
  function Export(state) {
@@ -12197,7 +12928,7 @@ ${input.slice(result.pos)}
12197
12928
  return result;
12198
12929
  }
12199
12930
  }
12200
- var Extends$0 = $TS($S($EXPECT($L116, fail, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12931
+ var Extends$0 = $TS($S($EXPECT($L117, fail, 'Extends "extends"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12201
12932
  return { $loc, token: $1 };
12202
12933
  });
12203
12934
  function Extends(state) {
@@ -12222,7 +12953,7 @@ ${input.slice(result.pos)}
12222
12953
  return result;
12223
12954
  }
12224
12955
  }
12225
- var For$0 = $TS($S($EXPECT($L117, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12956
+ var For$0 = $TS($S($EXPECT($L118, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12226
12957
  return { $loc, token: $1 };
12227
12958
  });
12228
12959
  function For(state) {
@@ -12247,7 +12978,7 @@ ${input.slice(result.pos)}
12247
12978
  return result;
12248
12979
  }
12249
12980
  }
12250
- var From$0 = $TS($S($EXPECT($L118, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12981
+ var From$0 = $TS($S($EXPECT($L119, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12251
12982
  return { $loc, token: $1 };
12252
12983
  });
12253
12984
  function From(state) {
@@ -12272,7 +13003,7 @@ ${input.slice(result.pos)}
12272
13003
  return result;
12273
13004
  }
12274
13005
  }
12275
- var Function$0 = $TS($S($EXPECT($L119, fail, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13006
+ var Function$0 = $TS($S($EXPECT($L120, fail, 'Function "function"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12276
13007
  return { $loc, token: $1 };
12277
13008
  });
12278
13009
  function Function(state) {
@@ -12297,7 +13028,7 @@ ${input.slice(result.pos)}
12297
13028
  return result;
12298
13029
  }
12299
13030
  }
12300
- var GetOrSet$0 = $TS($S($C($EXPECT($L120, fail, 'GetOrSet "get"'), $EXPECT($L121, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13031
+ var GetOrSet$0 = $TS($S($C($EXPECT($L121, fail, 'GetOrSet "get"'), $EXPECT($L122, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12301
13032
  return { $loc, token: $1, type: "GetOrSet" };
12302
13033
  });
12303
13034
  function GetOrSet(state) {
@@ -12322,7 +13053,7 @@ ${input.slice(result.pos)}
12322
13053
  return result;
12323
13054
  }
12324
13055
  }
12325
- var If$0 = $TV($TEXT($S($EXPECT($L122, fail, 'If "if"'), NonIdContinue, $E($EXPECT($L6, fail, 'If " "')))), function($skip, $loc, $0, $1) {
13056
+ var If$0 = $TV($TEXT($S($EXPECT($L123, fail, 'If "if"'), NonIdContinue, $E($EXPECT($L7, fail, 'If " "')))), function($skip, $loc, $0, $1) {
12326
13057
  return { $loc, token: $1 };
12327
13058
  });
12328
13059
  function If(state) {
@@ -12347,7 +13078,7 @@ ${input.slice(result.pos)}
12347
13078
  return result;
12348
13079
  }
12349
13080
  }
12350
- var Import$0 = $TS($S($EXPECT($L11, fail, 'Import "import"'), $Y($EXPECT($R47, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
13081
+ var Import$0 = $TS($S($EXPECT($L12, fail, 'Import "import"'), $Y($EXPECT($R47, fail, "Import /\\s/"))), function($skip, $loc, $0, $1, $2) {
12351
13082
  return { $loc, token: $1 };
12352
13083
  });
12353
13084
  function Import(state) {
@@ -12372,7 +13103,7 @@ ${input.slice(result.pos)}
12372
13103
  return result;
12373
13104
  }
12374
13105
  }
12375
- var In$0 = $TS($S($EXPECT($L75, fail, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13106
+ var In$0 = $TS($S($EXPECT($L76, fail, 'In "in"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12376
13107
  return { $loc, token: $1 };
12377
13108
  });
12378
13109
  function In(state) {
@@ -12397,7 +13128,7 @@ ${input.slice(result.pos)}
12397
13128
  return result;
12398
13129
  }
12399
13130
  }
12400
- var LetOrConst$0 = $TS($S($C($EXPECT($L123, fail, 'LetOrConst "let"'), $EXPECT($L124, fail, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13131
+ var LetOrConst$0 = $TS($S($C($EXPECT($L124, fail, 'LetOrConst "let"'), $EXPECT($L125, fail, 'LetOrConst "const"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12401
13132
  return { $loc, token: $1 };
12402
13133
  });
12403
13134
  function LetOrConst(state) {
@@ -12422,7 +13153,7 @@ ${input.slice(result.pos)}
12422
13153
  return result;
12423
13154
  }
12424
13155
  }
12425
- var Loop$0 = $TS($S($EXPECT($L125, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13156
+ var Loop$0 = $TS($S($EXPECT($L126, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12426
13157
  return { $loc, token: "while(true)" };
12427
13158
  });
12428
13159
  function Loop(state) {
@@ -12447,7 +13178,7 @@ ${input.slice(result.pos)}
12447
13178
  return result;
12448
13179
  }
12449
13180
  }
12450
- var New$0 = $TS($S($EXPECT($L126, fail, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13181
+ var New$0 = $TS($S($EXPECT($L127, fail, 'New "new"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12451
13182
  return { $loc, token: $1 };
12452
13183
  });
12453
13184
  function New(state) {
@@ -12472,7 +13203,7 @@ ${input.slice(result.pos)}
12472
13203
  return result;
12473
13204
  }
12474
13205
  }
12475
- var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L74, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L6, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
13206
+ var Not$0 = $TS($S(CoffeeNotEnabled, $EXPECT($L50, fail, 'Not "not"'), NonIdContinue, $E($EXPECT($L7, fail, 'Not " "'))), function($skip, $loc, $0, $1, $2, $3, $4) {
12476
13207
  return { $loc, token: "!" };
12477
13208
  });
12478
13209
  function Not(state) {
@@ -12497,7 +13228,7 @@ ${input.slice(result.pos)}
12497
13228
  return result;
12498
13229
  }
12499
13230
  }
12500
- var Of$0 = $TS($S($EXPECT($L69, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13231
+ var Of$0 = $TS($S($EXPECT($L71, fail, 'Of "of"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12501
13232
  return { $loc, token: $1 };
12502
13233
  });
12503
13234
  function Of(state) {
@@ -12522,7 +13253,7 @@ ${input.slice(result.pos)}
12522
13253
  return result;
12523
13254
  }
12524
13255
  }
12525
- var OpenAngleBracket$0 = $TV($EXPECT($L127, fail, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
13256
+ var OpenAngleBracket$0 = $TV($EXPECT($L128, fail, 'OpenAngleBracket "<"'), function($skip, $loc, $0, $1) {
12526
13257
  return { $loc, token: $1 };
12527
13258
  });
12528
13259
  function OpenAngleBracket(state) {
@@ -12547,7 +13278,7 @@ ${input.slice(result.pos)}
12547
13278
  return result;
12548
13279
  }
12549
13280
  }
12550
- var OpenBrace$0 = $TV($EXPECT($L128, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
13281
+ var OpenBrace$0 = $TV($EXPECT($L129, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
12551
13282
  return { $loc, token: $1 };
12552
13283
  });
12553
13284
  function OpenBrace(state) {
@@ -12597,7 +13328,7 @@ ${input.slice(result.pos)}
12597
13328
  return result;
12598
13329
  }
12599
13330
  }
12600
- var OpenParen$0 = $TV($EXPECT($L92, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
13331
+ var OpenParen$0 = $TV($EXPECT($L1, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
12601
13332
  return { $loc, token: $1 };
12602
13333
  });
12603
13334
  function OpenParen(state) {
@@ -12622,7 +13353,32 @@ ${input.slice(result.pos)}
12622
13353
  return result;
12623
13354
  }
12624
13355
  }
12625
- var Public$0 = $TS($S($EXPECT($L129, fail, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13356
+ var Operator$0 = $TS($S($EXPECT($L130, fail, 'Operator "operator"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13357
+ return { $loc, token: $1 };
13358
+ });
13359
+ function Operator(state) {
13360
+ let eventData;
13361
+ if (state.events) {
13362
+ const result = state.events.enter?.("Operator", state);
13363
+ if (result) {
13364
+ if (result.cache)
13365
+ return result.cache;
13366
+ eventData = result.data;
13367
+ }
13368
+ }
13369
+ if (state.tokenize) {
13370
+ const result = $TOKEN("Operator", state, Operator$0(state));
13371
+ if (state.events)
13372
+ state.events.exit?.("Operator", state, result, eventData);
13373
+ return result;
13374
+ } else {
13375
+ const result = Operator$0(state);
13376
+ if (state.events)
13377
+ state.events.exit?.("Operator", state, result, eventData);
13378
+ return result;
13379
+ }
13380
+ }
13381
+ var Public$0 = $TS($S($EXPECT($L131, fail, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12626
13382
  return { $loc, token: $1 };
12627
13383
  });
12628
13384
  function Public(state) {
@@ -12647,7 +13403,7 @@ ${input.slice(result.pos)}
12647
13403
  return result;
12648
13404
  }
12649
13405
  }
12650
- var Private$0 = $TS($S($EXPECT($L130, fail, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13406
+ var Private$0 = $TS($S($EXPECT($L132, fail, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12651
13407
  return { $loc, token: $1 };
12652
13408
  });
12653
13409
  function Private(state) {
@@ -12672,7 +13428,7 @@ ${input.slice(result.pos)}
12672
13428
  return result;
12673
13429
  }
12674
13430
  }
12675
- var Protected$0 = $TS($S($EXPECT($L131, fail, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13431
+ var Protected$0 = $TS($S($EXPECT($L133, fail, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12676
13432
  return { $loc, token: $1 };
12677
13433
  });
12678
13434
  function Protected(state) {
@@ -12697,7 +13453,7 @@ ${input.slice(result.pos)}
12697
13453
  return result;
12698
13454
  }
12699
13455
  }
12700
- var Pipe$0 = $TV($EXPECT($L132, fail, 'Pipe "|>"'), function($skip, $loc, $0, $1) {
13456
+ var Pipe$0 = $TV($EXPECT($L134, fail, 'Pipe "|>"'), function($skip, $loc, $0, $1) {
12701
13457
  return { $loc, token: $1 };
12702
13458
  });
12703
13459
  function Pipe(state) {
@@ -12722,7 +13478,7 @@ ${input.slice(result.pos)}
12722
13478
  return result;
12723
13479
  }
12724
13480
  }
12725
- var QuestionMark$0 = $TV($EXPECT($L1, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
13481
+ var QuestionMark$0 = $TV($EXPECT($L2, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
12726
13482
  return { $loc, token: $1 };
12727
13483
  });
12728
13484
  function QuestionMark(state) {
@@ -12747,7 +13503,7 @@ ${input.slice(result.pos)}
12747
13503
  return result;
12748
13504
  }
12749
13505
  }
12750
- var Readonly$0 = $TS($S($EXPECT($L133, fail, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13506
+ var Readonly$0 = $TS($S($EXPECT($L135, fail, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12751
13507
  return { $loc, token: $1, ts: true };
12752
13508
  });
12753
13509
  function Readonly(state) {
@@ -12772,7 +13528,7 @@ ${input.slice(result.pos)}
12772
13528
  return result;
12773
13529
  }
12774
13530
  }
12775
- var Return$0 = $TS($S($EXPECT($L134, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13531
+ var Return$0 = $TS($S($EXPECT($L136, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12776
13532
  return { $loc, token: $1 };
12777
13533
  });
12778
13534
  function Return(state) {
@@ -12797,7 +13553,7 @@ ${input.slice(result.pos)}
12797
13553
  return result;
12798
13554
  }
12799
13555
  }
12800
- var Satisfies$0 = $TS($S($EXPECT($L135, fail, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13556
+ var Satisfies$0 = $TS($S($EXPECT($L137, fail, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12801
13557
  return { $loc, token: $1 };
12802
13558
  });
12803
13559
  function Satisfies(state) {
@@ -12822,7 +13578,7 @@ ${input.slice(result.pos)}
12822
13578
  return result;
12823
13579
  }
12824
13580
  }
12825
- var Semicolon$0 = $TV($EXPECT($L80, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
13581
+ var Semicolon$0 = $TV($EXPECT($L81, fail, 'Semicolon ";"'), function($skip, $loc, $0, $1) {
12826
13582
  return { $loc, token: $1 };
12827
13583
  });
12828
13584
  function Semicolon(state) {
@@ -12847,7 +13603,7 @@ ${input.slice(result.pos)}
12847
13603
  return result;
12848
13604
  }
12849
13605
  }
12850
- var SingleQuote$0 = $TV($EXPECT($L136, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
13606
+ var SingleQuote$0 = $TV($EXPECT($L138, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
12851
13607
  return { $loc, token: $1 };
12852
13608
  });
12853
13609
  function SingleQuote(state) {
@@ -12872,7 +13628,7 @@ ${input.slice(result.pos)}
12872
13628
  return result;
12873
13629
  }
12874
13630
  }
12875
- var Star$0 = $TV($EXPECT($L51, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
13631
+ var Star$0 = $TV($EXPECT($L52, fail, 'Star "*"'), function($skip, $loc, $0, $1) {
12876
13632
  return { $loc, token: $1 };
12877
13633
  });
12878
13634
  function Star(state) {
@@ -12897,10 +13653,10 @@ ${input.slice(result.pos)}
12897
13653
  return result;
12898
13654
  }
12899
13655
  }
12900
- var Static$0 = $TS($S($EXPECT($L137, fail, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13656
+ var Static$0 = $TS($S($EXPECT($L139, fail, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12901
13657
  return { $loc, token: $1 };
12902
13658
  });
12903
- var Static$1 = $TS($S($EXPECT($L97, fail, 'Static "@"'), $N($C($EXPECT($L92, fail, 'Static "("'), $EXPECT($L97, fail, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
13659
+ var Static$1 = $TS($S($EXPECT($L97, fail, 'Static "@"'), $N($C($EXPECT($L1, fail, 'Static "("'), $EXPECT($L97, fail, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
12904
13660
  return { $loc, token: "static " };
12905
13661
  });
12906
13662
  function Static(state) {
@@ -12925,7 +13681,7 @@ ${input.slice(result.pos)}
12925
13681
  return result;
12926
13682
  }
12927
13683
  }
12928
- var SubstitutionStart$0 = $TV($EXPECT($L138, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
13684
+ var SubstitutionStart$0 = $TV($EXPECT($L140, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
12929
13685
  return { $loc, token: $1 };
12930
13686
  });
12931
13687
  function SubstitutionStart(state) {
@@ -12950,7 +13706,7 @@ ${input.slice(result.pos)}
12950
13706
  return result;
12951
13707
  }
12952
13708
  }
12953
- var Switch$0 = $TS($S($EXPECT($L139, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13709
+ var Switch$0 = $TS($S($EXPECT($L141, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12954
13710
  return { $loc, token: $1 };
12955
13711
  });
12956
13712
  function Switch(state) {
@@ -12975,7 +13731,7 @@ ${input.slice(result.pos)}
12975
13731
  return result;
12976
13732
  }
12977
13733
  }
12978
- var Target$0 = $TS($S($EXPECT($L140, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13734
+ var Target$0 = $TS($S($EXPECT($L142, fail, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12979
13735
  return { $loc, token: $1 };
12980
13736
  });
12981
13737
  function Target(state) {
@@ -13000,7 +13756,7 @@ ${input.slice(result.pos)}
13000
13756
  return result;
13001
13757
  }
13002
13758
  }
13003
- var Then$0 = $TS($S(__, $EXPECT($L141, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
13759
+ var Then$0 = $TS($S(__, $EXPECT($L143, fail, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
13004
13760
  return { $loc, token: "" };
13005
13761
  });
13006
13762
  function Then(state) {
@@ -13025,7 +13781,7 @@ ${input.slice(result.pos)}
13025
13781
  return result;
13026
13782
  }
13027
13783
  }
13028
- var This$0 = $TS($S($EXPECT($L142, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13784
+ var This$0 = $TS($S($EXPECT($L144, fail, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13029
13785
  return { $loc, token: $1 };
13030
13786
  });
13031
13787
  function This(state) {
@@ -13050,7 +13806,7 @@ ${input.slice(result.pos)}
13050
13806
  return result;
13051
13807
  }
13052
13808
  }
13053
- var Throw$0 = $TS($S($EXPECT($L143, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13809
+ var Throw$0 = $TS($S($EXPECT($L145, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13054
13810
  return { $loc, token: $1 };
13055
13811
  });
13056
13812
  function Throw(state) {
@@ -13075,7 +13831,7 @@ ${input.slice(result.pos)}
13075
13831
  return result;
13076
13832
  }
13077
13833
  }
13078
- var TripleDoubleQuote$0 = $TV($EXPECT($L144, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13834
+ var TripleDoubleQuote$0 = $TV($EXPECT($L146, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
13079
13835
  return { $loc, token: "`" };
13080
13836
  });
13081
13837
  function TripleDoubleQuote(state) {
@@ -13100,7 +13856,7 @@ ${input.slice(result.pos)}
13100
13856
  return result;
13101
13857
  }
13102
13858
  }
13103
- var TripleSingleQuote$0 = $TV($EXPECT($L145, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13859
+ var TripleSingleQuote$0 = $TV($EXPECT($L147, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
13104
13860
  return { $loc, token: "`" };
13105
13861
  });
13106
13862
  function TripleSingleQuote(state) {
@@ -13125,7 +13881,7 @@ ${input.slice(result.pos)}
13125
13881
  return result;
13126
13882
  }
13127
13883
  }
13128
- var TripleSlash$0 = $TV($EXPECT($L146, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13884
+ var TripleSlash$0 = $TV($EXPECT($L148, fail, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
13129
13885
  return { $loc, token: "/" };
13130
13886
  });
13131
13887
  function TripleSlash(state) {
@@ -13150,7 +13906,7 @@ ${input.slice(result.pos)}
13150
13906
  return result;
13151
13907
  }
13152
13908
  }
13153
- var TripleTick$0 = $TV($EXPECT($L147, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13909
+ var TripleTick$0 = $TV($EXPECT($L149, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
13154
13910
  return { $loc, token: "`" };
13155
13911
  });
13156
13912
  function TripleTick(state) {
@@ -13175,7 +13931,7 @@ ${input.slice(result.pos)}
13175
13931
  return result;
13176
13932
  }
13177
13933
  }
13178
- var Try$0 = $TS($S($EXPECT($L148, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13934
+ var Try$0 = $TS($S($EXPECT($L150, fail, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13179
13935
  return { $loc, token: $1 };
13180
13936
  });
13181
13937
  function Try(state) {
@@ -13200,7 +13956,7 @@ ${input.slice(result.pos)}
13200
13956
  return result;
13201
13957
  }
13202
13958
  }
13203
- var Typeof$0 = $TS($S($EXPECT($L149, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13959
+ var Typeof$0 = $TS($S($EXPECT($L151, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13204
13960
  return { $loc, token: $1 };
13205
13961
  });
13206
13962
  function Typeof(state) {
@@ -13225,7 +13981,7 @@ ${input.slice(result.pos)}
13225
13981
  return result;
13226
13982
  }
13227
13983
  }
13228
- var Unless$0 = $TS($S($EXPECT($L150, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13984
+ var Unless$0 = $TS($S($EXPECT($L152, fail, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13229
13985
  return { $loc, token: $1 };
13230
13986
  });
13231
13987
  function Unless(state) {
@@ -13250,7 +14006,7 @@ ${input.slice(result.pos)}
13250
14006
  return result;
13251
14007
  }
13252
14008
  }
13253
- var Until$0 = $TS($S($EXPECT($L151, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14009
+ var Until$0 = $TS($S($EXPECT($L153, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13254
14010
  return { $loc, token: $1 };
13255
14011
  });
13256
14012
  function Until(state) {
@@ -13275,7 +14031,7 @@ ${input.slice(result.pos)}
13275
14031
  return result;
13276
14032
  }
13277
14033
  }
13278
- var Var$0 = $TS($S($EXPECT($L152, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14034
+ var Var$0 = $TS($S($EXPECT($L154, fail, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13279
14035
  return { $loc, token: $1 };
13280
14036
  });
13281
14037
  function Var(state) {
@@ -13300,7 +14056,7 @@ ${input.slice(result.pos)}
13300
14056
  return result;
13301
14057
  }
13302
14058
  }
13303
- var Void$0 = $TS($S($EXPECT($L153, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14059
+ var Void$0 = $TS($S($EXPECT($L155, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13304
14060
  return { $loc, token: $1 };
13305
14061
  });
13306
14062
  function Void(state) {
@@ -13325,7 +14081,7 @@ ${input.slice(result.pos)}
13325
14081
  return result;
13326
14082
  }
13327
14083
  }
13328
- var When$0 = $TS($S($EXPECT($L154, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14084
+ var When$0 = $TS($S($EXPECT($L156, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13329
14085
  return { $loc, token: "case" };
13330
14086
  });
13331
14087
  function When(state) {
@@ -13350,7 +14106,7 @@ ${input.slice(result.pos)}
13350
14106
  return result;
13351
14107
  }
13352
14108
  }
13353
- var While$0 = $TS($S($EXPECT($L155, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14109
+ var While$0 = $TS($S($EXPECT($L157, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13354
14110
  return { $loc, token: $1 };
13355
14111
  });
13356
14112
  function While(state) {
@@ -13375,7 +14131,7 @@ ${input.slice(result.pos)}
13375
14131
  return result;
13376
14132
  }
13377
14133
  }
13378
- var Yield$0 = $TS($S($EXPECT($L156, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14134
+ var Yield$0 = $TS($S($EXPECT($L158, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13379
14135
  return { $loc, token: $1 };
13380
14136
  });
13381
14137
  function Yield(state) {
@@ -13521,7 +14277,7 @@ ${input.slice(result.pos)}
13521
14277
  return result;
13522
14278
  }
13523
14279
  }
13524
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L127, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L157, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
14280
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L128, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L159, fail, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
13525
14281
  return { type: "JSXElement", children: $0, tag: $2 };
13526
14282
  });
13527
14283
  function JSXSelfClosingElement(state) {
@@ -13572,7 +14328,7 @@ ${input.slice(result.pos)}
13572
14328
  return result;
13573
14329
  }
13574
14330
  }
13575
- var JSXOpeningElement$0 = $S($EXPECT($L127, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L29, fail, 'JSXOpeningElement ">"'));
14331
+ var JSXOpeningElement$0 = $S($EXPECT($L128, fail, 'JSXOpeningElement "<"'), $TEXT(JSXElementName), $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L29, fail, 'JSXOpeningElement ">"'));
13576
14332
  function JSXOpeningElement(state) {
13577
14333
  let eventData;
13578
14334
  if (state.events) {
@@ -13601,7 +14357,7 @@ ${input.slice(result.pos)}
13601
14357
  return $skip;
13602
14358
  return $0;
13603
14359
  });
13604
- var JSXOptionalClosingElement$1 = $EXPECT($L16, fail, 'JSXOptionalClosingElement ""');
14360
+ var JSXOptionalClosingElement$1 = $EXPECT($L17, fail, 'JSXOptionalClosingElement ""');
13605
14361
  function JSXOptionalClosingElement(state) {
13606
14362
  let eventData;
13607
14363
  if (state.events) {
@@ -13624,7 +14380,7 @@ ${input.slice(result.pos)}
13624
14380
  return result;
13625
14381
  }
13626
14382
  }
13627
- var JSXClosingElement$0 = $S($EXPECT($L158, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L29, fail, 'JSXClosingElement ">"'));
14383
+ var JSXClosingElement$0 = $S($EXPECT($L160, fail, 'JSXClosingElement "</"'), $E(Whitespace), $TEXT(JSXElementName), $E(Whitespace), $EXPECT($L29, fail, 'JSXClosingElement ">"'));
13628
14384
  function JSXClosingElement(state) {
13629
14385
  let eventData;
13630
14386
  if (state.events) {
@@ -13663,7 +14419,7 @@ ${input.slice(result.pos)}
13663
14419
  ];
13664
14420
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
13665
14421
  });
13666
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L159, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
14422
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L161, fail, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
13667
14423
  var children = $3;
13668
14424
  $0 = $0.slice(1);
13669
14425
  return {
@@ -13694,7 +14450,7 @@ ${input.slice(result.pos)}
13694
14450
  return result;
13695
14451
  }
13696
14452
  }
13697
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L159, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
14453
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L161, fail, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
13698
14454
  module.JSXTagStack.push("");
13699
14455
  return $1;
13700
14456
  });
@@ -13725,7 +14481,7 @@ ${input.slice(result.pos)}
13725
14481
  return $skip;
13726
14482
  return $0;
13727
14483
  });
13728
- var JSXOptionalClosingFragment$1 = $EXPECT($L16, fail, 'JSXOptionalClosingFragment ""');
14484
+ var JSXOptionalClosingFragment$1 = $EXPECT($L17, fail, 'JSXOptionalClosingFragment ""');
13729
14485
  function JSXOptionalClosingFragment(state) {
13730
14486
  let eventData;
13731
14487
  if (state.events) {
@@ -13748,7 +14504,7 @@ ${input.slice(result.pos)}
13748
14504
  return result;
13749
14505
  }
13750
14506
  }
13751
- var JSXClosingFragment$0 = $EXPECT($L160, fail, 'JSXClosingFragment "</>"');
14507
+ var JSXClosingFragment$0 = $EXPECT($L162, fail, 'JSXClosingFragment "</>"');
13752
14508
  function JSXClosingFragment(state) {
13753
14509
  let eventData;
13754
14510
  if (state.events) {
@@ -13955,7 +14711,7 @@ ${input.slice(result.pos)}
13955
14711
  }
13956
14712
  return parts;
13957
14713
  });
13958
- var JSXAttribute$1 = $TS($S(JSXAttributeName, $E(JSXAttributeInitializer)), function($skip, $loc, $0, $1, $2) {
14714
+ var JSXAttribute$1 = $TS($S(JSXAttributeName, $C(JSXAttributeInitializer, $Y(JSXAttributeSpace))), function($skip, $loc, $0, $1, $2) {
13959
14715
  var name = $1;
13960
14716
  var value = $2;
13961
14717
  if (name.type === "ComputedPropertyName") {
@@ -13972,8 +14728,8 @@ ${input.slice(result.pos)}
13972
14728
  return $0;
13973
14729
  }
13974
14730
  });
13975
- var JSXAttribute$2 = $S(InsertInlineOpenBrace, DotDotDot, InlineJSXAttributeValue, InsertCloseBrace);
13976
- var JSXAttribute$3 = $TS($S($EXPECT($L9, fail, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
14731
+ var JSXAttribute$2 = $S(InsertInlineOpenBrace, DotDotDot, InlineJSXAttributeValue, InsertCloseBrace, $Y(JSXAttributeSpace));
14732
+ var JSXAttribute$3 = $TS($S($EXPECT($L10, fail, 'JSXAttribute "#"'), JSXShorthandString), function($skip, $loc, $0, $1, $2) {
13977
14733
  return [" ", "id=", $2];
13978
14734
  });
13979
14735
  var JSXAttribute$4 = $TS($S(Dot, JSXShorthandString), function($skip, $loc, $0, $1, $2) {
@@ -14010,19 +14766,36 @@ ${input.slice(result.pos)}
14010
14766
  return result;
14011
14767
  }
14012
14768
  }
14013
- var JSXShorthandString$0 = $TR($EXPECT($R49, fail, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14014
- return module.quoteString($0);
14015
- });
14016
- var JSXShorthandString$1 = $TS($S(StringLiteral), function($skip, $loc, $0, $1) {
14017
- if (module.isTemplateLiteral($1)) {
14018
- return ["{", $1, "}"];
14769
+ var JSXAttributeSpace$0 = $R$0($EXPECT($R49, fail, "JSXAttributeSpace /[\\s>]/"));
14770
+ function JSXAttributeSpace(state) {
14771
+ let eventData;
14772
+ if (state.events) {
14773
+ const result = state.events.enter?.("JSXAttributeSpace", state);
14774
+ if (result) {
14775
+ if (result.cache)
14776
+ return result.cache;
14777
+ eventData = result.data;
14778
+ }
14779
+ }
14780
+ if (state.tokenize) {
14781
+ const result = $TOKEN("JSXAttributeSpace", state, JSXAttributeSpace$0(state));
14782
+ if (state.events)
14783
+ state.events.exit?.("JSXAttributeSpace", state, result, eventData);
14784
+ return result;
14019
14785
  } else {
14020
- return $1;
14786
+ const result = JSXAttributeSpace$0(state);
14787
+ if (state.events)
14788
+ state.events.exit?.("JSXAttributeSpace", state, result, eventData);
14789
+ return result;
14021
14790
  }
14791
+ }
14792
+ var JSXShorthandString$0 = $TR($EXPECT($R50, fail, "JSXShorthandString /(?:[\\w\\-:]+|\\([^()]*\\)|\\[[^\\[\\]]*\\])+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14793
+ return module.quoteString($0);
14022
14794
  });
14023
- var JSXShorthandString$2 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
14795
+ var JSXShorthandString$1 = $TS($S(TemplateLiteral), function($skip, $loc, $0, $1) {
14024
14796
  return ["{", $1, "}"];
14025
14797
  });
14798
+ var JSXShorthandString$2 = StringLiteral;
14026
14799
  var JSXShorthandString$3 = $S(OpenBrace, ExtendedExpression, $E(Whitespace), CloseBrace);
14027
14800
  function JSXShorthandString(state) {
14028
14801
  let eventData;
@@ -14093,15 +14866,16 @@ ${input.slice(result.pos)}
14093
14866
  return result;
14094
14867
  }
14095
14868
  }
14096
- var JSXAttributeValue$0 = $TS($S(StringLiteral), function($skip, $loc, $0, $1) {
14097
- if (module.isTemplateLiteral($1))
14098
- return $skip;
14099
- return $1;
14869
+ var JSXAttributeValue$0 = $S(OpenBrace, ExtendedExpression, $E(Whitespace), CloseBrace);
14870
+ var JSXAttributeValue$1 = JSXElement;
14871
+ var JSXAttributeValue$2 = JSXFragment;
14872
+ var JSXAttributeValue$3 = $TS($S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace), function($skip, $loc, $0, $1, $2, $3) {
14873
+ if ($2.children?.length === 1 && $2.children[0].type === "StringLiteral") {
14874
+ return $2.children[0];
14875
+ }
14876
+ return $0;
14100
14877
  });
14101
- var JSXAttributeValue$1 = $S(OpenBrace, ExtendedExpression, $E(Whitespace), CloseBrace);
14102
- var JSXAttributeValue$2 = JSXElement;
14103
- var JSXAttributeValue$3 = JSXFragment;
14104
- var JSXAttributeValue$4 = $S(InsertInlineOpenBrace, InlineJSXAttributeValue, InsertCloseBrace);
14878
+ var JSXAttributeValue$4 = StringLiteral;
14105
14879
  function JSXAttributeValue(state) {
14106
14880
  let eventData;
14107
14881
  if (state.events) {
@@ -14151,7 +14925,7 @@ ${input.slice(result.pos)}
14151
14925
  return result;
14152
14926
  }
14153
14927
  }
14154
- var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R50, fail, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, $C(ParenthesizedAssignment, InlineJSXUnaryExpression)), function($skip, $loc, $0, $1, $2, $3) {
14928
+ var InlineJSXBinaryOpRHS$0 = $TS($S($N($EXPECT($R51, fail, "InlineJSXBinaryOpRHS /[<>]/")), BinaryOp, $C(ParenthesizedAssignment, InlineJSXUnaryExpression)), function($skip, $loc, $0, $1, $2, $3) {
14155
14929
  var op = $2;
14156
14930
  var rhs = $3;
14157
14931
  return [[], op, [], rhs];
@@ -14282,8 +15056,8 @@ ${input.slice(result.pos)}
14282
15056
  return result;
14283
15057
  }
14284
15058
  }
14285
- var InlineJSXCallExpression$0 = $S($EXPECT($L10, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments);
14286
- var InlineJSXCallExpression$1 = $S($EXPECT($L11, fail, 'InlineJSXCallExpression "import"'), OpenParen, ExtendedExpression, __, CloseParen);
15059
+ var InlineJSXCallExpression$0 = $S($EXPECT($L11, fail, 'InlineJSXCallExpression "super"'), ExplicitArguments);
15060
+ var InlineJSXCallExpression$1 = $S($EXPECT($L12, fail, 'InlineJSXCallExpression "import"'), OpenParen, ExtendedExpression, __, CloseParen);
14287
15061
  var InlineJSXCallExpression$2 = $TS($S(InlineJSXMemberExpression, $Q(InlineJSXCallExpressionRest)), function($skip, $loc, $0, $1, $2) {
14288
15062
  if ($2.length)
14289
15063
  return $0;
@@ -14401,14 +15175,13 @@ ${input.slice(result.pos)}
14401
15175
  var InlineJSXPrimaryExpression$0 = NullLiteral;
14402
15176
  var InlineJSXPrimaryExpression$1 = BooleanLiteral;
14403
15177
  var InlineJSXPrimaryExpression$2 = NumericLiteral;
14404
- var InlineJSXPrimaryExpression$3 = StringLiteral;
15178
+ var InlineJSXPrimaryExpression$3 = TemplateLiteral;
14405
15179
  var InlineJSXPrimaryExpression$4 = ThisLiteral;
14406
15180
  var InlineJSXPrimaryExpression$5 = ArrayLiteral;
14407
15181
  var InlineJSXPrimaryExpression$6 = BracedObjectLiteral;
14408
15182
  var InlineJSXPrimaryExpression$7 = IdentifierReference;
14409
15183
  var InlineJSXPrimaryExpression$8 = RegularExpressionLiteral;
14410
- var InlineJSXPrimaryExpression$9 = TemplateLiteral;
14411
- var InlineJSXPrimaryExpression$10 = ParenthesizedExpression;
15184
+ var InlineJSXPrimaryExpression$9 = ParenthesizedExpression;
14412
15185
  function InlineJSXPrimaryExpression(state) {
14413
15186
  let eventData;
14414
15187
  if (state.events) {
@@ -14420,12 +15193,12 @@ ${input.slice(result.pos)}
14420
15193
  }
14421
15194
  }
14422
15195
  if (state.tokenize) {
14423
- const result = $TOKEN("InlineJSXPrimaryExpression", state, InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state) || InlineJSXPrimaryExpression$10(state));
15196
+ const result = $TOKEN("InlineJSXPrimaryExpression", state, InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state));
14424
15197
  if (state.events)
14425
15198
  state.events.exit?.("InlineJSXPrimaryExpression", state, result, eventData);
14426
15199
  return result;
14427
15200
  } else {
14428
- const result = InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state) || InlineJSXPrimaryExpression$10(state);
15201
+ const result = InlineJSXPrimaryExpression$0(state) || InlineJSXPrimaryExpression$1(state) || InlineJSXPrimaryExpression$2(state) || InlineJSXPrimaryExpression$3(state) || InlineJSXPrimaryExpression$4(state) || InlineJSXPrimaryExpression$5(state) || InlineJSXPrimaryExpression$6(state) || InlineJSXPrimaryExpression$7(state) || InlineJSXPrimaryExpression$8(state) || InlineJSXPrimaryExpression$9(state);
14429
15202
  if (state.events)
14430
15203
  state.events.exit?.("InlineJSXPrimaryExpression", state, result, eventData);
14431
15204
  return result;
@@ -14498,7 +15271,7 @@ ${input.slice(result.pos)}
14498
15271
  }
14499
15272
  return $skip;
14500
15273
  });
14501
- var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L19, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
15274
+ var JSXNestedChildren$1 = $TV($Y($C(JSXEOS, $EXPECT($L20, fail, 'JSXNestedChildren "}"'), JSXClosingElement, JSXClosingFragment)), function($skip, $loc, $0, $1) {
14502
15275
  return { children: [], jsxChildren: [] };
14503
15276
  });
14504
15277
  function JSXNestedChildren(state) {
@@ -14627,7 +15400,7 @@ ${input.slice(result.pos)}
14627
15400
  return result;
14628
15401
  }
14629
15402
  }
14630
- var JSXComment$0 = $TS($S($EXPECT($L161, fail, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L162, fail, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
15403
+ var JSXComment$0 = $TS($S($EXPECT($L163, fail, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L164, fail, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
14631
15404
  return ["{/*", $2, "*/}"];
14632
15405
  });
14633
15406
  function JSXComment(state) {
@@ -14652,7 +15425,7 @@ ${input.slice(result.pos)}
14652
15425
  return result;
14653
15426
  }
14654
15427
  }
14655
- var JSXCommentContent$0 = $TR($EXPECT($R51, fail, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15428
+ var JSXCommentContent$0 = $TR($EXPECT($R52, fail, "JSXCommentContent /(?:-[^-]|[^-]*)*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14656
15429
  return { $loc, token: $0.replace(/\*\//g, "* /") };
14657
15430
  });
14658
15431
  function JSXCommentContent(state) {
@@ -14677,7 +15450,7 @@ ${input.slice(result.pos)}
14677
15450
  return result;
14678
15451
  }
14679
15452
  }
14680
- var JSXText$0 = $TR($EXPECT($R52, fail, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
15453
+ var JSXText$0 = $TR($EXPECT($R53, fail, "JSXText /[^{}<>\\r\\n]+/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
14681
15454
  return {
14682
15455
  type: "JSXText",
14683
15456
  token: $0,
@@ -14925,7 +15698,7 @@ ${input.slice(result.pos)}
14925
15698
  return result;
14926
15699
  }
14927
15700
  }
14928
- var TypeKeyword$0 = $S($EXPECT($L163, fail, 'TypeKeyword "type"'), NonIdContinue);
15701
+ var TypeKeyword$0 = $S($EXPECT($L165, fail, 'TypeKeyword "type"'), NonIdContinue);
14929
15702
  function TypeKeyword(state) {
14930
15703
  let eventData;
14931
15704
  if (state.events) {
@@ -14948,7 +15721,7 @@ ${input.slice(result.pos)}
14948
15721
  return result;
14949
15722
  }
14950
15723
  }
14951
- var Interface$0 = $S($EXPECT($L164, fail, 'Interface "interface"'), NonIdContinue);
15724
+ var Interface$0 = $S($EXPECT($L166, fail, 'Interface "interface"'), NonIdContinue);
14952
15725
  function Interface(state) {
14953
15726
  let eventData;
14954
15727
  if (state.events) {
@@ -14971,7 +15744,7 @@ ${input.slice(result.pos)}
14971
15744
  return result;
14972
15745
  }
14973
15746
  }
14974
- var Namespace$0 = $S($EXPECT($L165, fail, 'Namespace "namespace"'), NonIdContinue);
15747
+ var Namespace$0 = $S($EXPECT($L167, fail, 'Namespace "namespace"'), NonIdContinue);
14975
15748
  function Namespace(state) {
14976
15749
  let eventData;
14977
15750
  if (state.events) {
@@ -15020,9 +15793,9 @@ ${input.slice(result.pos)}
15020
15793
  }
15021
15794
  }
15022
15795
  var NestedInterfaceProperties$0 = $TS($S(PushIndent, $Q(NestedInterfaceProperty), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
15023
- var props = $2;
15024
- if (props.length)
15025
- return props;
15796
+ var props2 = $2;
15797
+ if (props2.length)
15798
+ return props2;
15026
15799
  return $skip;
15027
15800
  });
15028
15801
  function NestedInterfaceProperties(state) {
@@ -15219,7 +15992,7 @@ ${input.slice(result.pos)}
15219
15992
  return result;
15220
15993
  }
15221
15994
  }
15222
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R53, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L133, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R54, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
15995
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R54, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L135, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R55, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
15223
15996
  function TypeIndexSignature(state) {
15224
15997
  let eventData;
15225
15998
  if (state.events) {
@@ -15291,7 +16064,7 @@ ${input.slice(result.pos)}
15291
16064
  return result;
15292
16065
  }
15293
16066
  }
15294
- var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L166, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
16067
+ var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L168, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
15295
16068
  const children = [...$1, $2];
15296
16069
  if ($3)
15297
16070
  children.push($3);
@@ -15324,7 +16097,7 @@ ${input.slice(result.pos)}
15324
16097
  return result;
15325
16098
  }
15326
16099
  }
15327
- var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L76, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
16100
+ var TypePredicate$0 = $TS($S(Type, $E($S(__, $EXPECT($L77, fail, 'TypePredicate "is"'), NonIdContinue, Type))), function($skip, $loc, $0, $1, $2) {
15328
16101
  if (!$2)
15329
16102
  return $1;
15330
16103
  return $0;
@@ -15450,10 +16223,10 @@ ${input.slice(result.pos)}
15450
16223
  return result;
15451
16224
  }
15452
16225
  }
15453
- var TypeUnaryOp$0 = $S($EXPECT($L167, fail, 'TypeUnaryOp "keyof"'), NonIdContinue);
15454
- var TypeUnaryOp$1 = $S($EXPECT($L149, fail, 'TypeUnaryOp "typeof"'), NonIdContinue);
15455
- var TypeUnaryOp$2 = $S($EXPECT($L168, fail, 'TypeUnaryOp "infer"'), NonIdContinue);
15456
- var TypeUnaryOp$3 = $S($EXPECT($L133, fail, 'TypeUnaryOp "readonly"'), NonIdContinue);
16226
+ var TypeUnaryOp$0 = $S($EXPECT($L169, fail, 'TypeUnaryOp "keyof"'), NonIdContinue);
16227
+ var TypeUnaryOp$1 = $S($EXPECT($L151, fail, 'TypeUnaryOp "typeof"'), NonIdContinue);
16228
+ var TypeUnaryOp$2 = $S($EXPECT($L170, fail, 'TypeUnaryOp "infer"'), NonIdContinue);
16229
+ var TypeUnaryOp$3 = $S($EXPECT($L135, fail, 'TypeUnaryOp "readonly"'), NonIdContinue);
15457
16230
  function TypeUnaryOp(state) {
15458
16231
  let eventData;
15459
16232
  if (state.events) {
@@ -15529,8 +16302,8 @@ ${input.slice(result.pos)}
15529
16302
  return result;
15530
16303
  }
15531
16304
  }
15532
- var ImportType$0 = $S($EXPECT($L11, fail, 'ImportType "import"'), OpenParen, __, BasicStringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
15533
- var ImportType$1 = $S($EXPECT($L11, fail, 'ImportType "import"'), InsertOpenParen, Trimmed_, BasicStringLiteral, InsertCloseParen);
16305
+ var ImportType$0 = $S($EXPECT($L12, fail, 'ImportType "import"'), OpenParen, __, StringLiteral, __, CloseParen, $E($S(Dot, IdentifierName)), $E(TypeArguments));
16306
+ var ImportType$1 = $S($EXPECT($L12, fail, 'ImportType "import"'), InsertOpenParen, Trimmed_, StringLiteral, InsertCloseParen);
15534
16307
  function ImportType(state) {
15535
16308
  let eventData;
15536
16309
  if (state.events) {
@@ -15651,7 +16424,7 @@ ${input.slice(result.pos)}
15651
16424
  return result;
15652
16425
  }
15653
16426
  }
15654
- var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L116, fail, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
16427
+ var TypeConditional$0 = $TS($S(TypeBinary, $E($S(__, $EXPECT($L117, fail, 'TypeConditional "extends"'), NonIdContinue, Type, $E($S(__, QuestionMark, Type, __, Colon, Type))))), function($skip, $loc, $0, $1, $2) {
15655
16428
  if ($2)
15656
16429
  return $0;
15657
16430
  return $1;
@@ -15678,12 +16451,12 @@ ${input.slice(result.pos)}
15678
16451
  return result;
15679
16452
  }
15680
16453
  }
15681
- var TypeLiteral$0 = Literal;
15682
- var TypeLiteral$1 = TemplateLiteral;
15683
- var TypeLiteral$2 = $TS($S($EXPECT($L153, fail, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
16454
+ var TypeLiteral$0 = TemplateLiteral;
16455
+ var TypeLiteral$1 = Literal;
16456
+ var TypeLiteral$2 = $TS($S($EXPECT($L155, fail, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
15684
16457
  return { $loc, token: "void" };
15685
16458
  });
15686
- var TypeLiteral$3 = $TV($EXPECT($L169, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
16459
+ var TypeLiteral$3 = $TV($EXPECT($L171, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
15687
16460
  return { $loc, token: "[]" };
15688
16461
  });
15689
16462
  function TypeLiteral(state) {
@@ -15758,7 +16531,7 @@ ${input.slice(result.pos)}
15758
16531
  var InlineInterfacePropertyDelimiter$1 = $T($S($Y($S($C(IndentedFurther, $E(_)), InlineBasicInterfaceProperty)), InsertComma), function(value) {
15759
16532
  return value[1];
15760
16533
  });
15761
- var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L31, fail, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L17, fail, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L30, fail, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L19, fail, 'InlineInterfacePropertyDelimiter "}"'))));
16534
+ var InlineInterfacePropertyDelimiter$2 = $Y($S(__, $C($EXPECT($L31, fail, 'InlineInterfacePropertyDelimiter ":"'), $EXPECT($L18, fail, 'InlineInterfacePropertyDelimiter ")"'), $EXPECT($L30, fail, 'InlineInterfacePropertyDelimiter "]"'), $EXPECT($L20, fail, 'InlineInterfacePropertyDelimiter "}"'))));
15762
16535
  var InlineInterfacePropertyDelimiter$3 = $Y(EOS);
15763
16536
  function InlineInterfacePropertyDelimiter(state) {
15764
16537
  let eventData;
@@ -15782,10 +16555,10 @@ ${input.slice(result.pos)}
15782
16555
  return result;
15783
16556
  }
15784
16557
  }
15785
- var TypeBinaryOp$0 = $TV($EXPECT($L79, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
16558
+ var TypeBinaryOp$0 = $TV($EXPECT($L80, fail, 'TypeBinaryOp "|"'), function($skip, $loc, $0, $1) {
15786
16559
  return { $loc, token: "|" };
15787
16560
  });
15788
- var TypeBinaryOp$1 = $TV($EXPECT($L77, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
16561
+ var TypeBinaryOp$1 = $TV($EXPECT($L78, fail, 'TypeBinaryOp "&"'), function($skip, $loc, $0, $1) {
15789
16562
  return { $loc, token: "&" };
15790
16563
  });
15791
16564
  function TypeBinaryOp(state) {
@@ -15810,7 +16583,7 @@ ${input.slice(result.pos)}
15810
16583
  return result;
15811
16584
  }
15812
16585
  }
15813
- var FunctionType$0 = $TS($S(Parameters, __, $EXPECT($L5, fail, 'FunctionType "=>"'), $E(Type)), function($skip, $loc, $0, $1, $2, $3, $4) {
16586
+ var FunctionType$0 = $TS($S(Parameters, __, $EXPECT($L6, fail, 'FunctionType "=>"'), $E(Type)), function($skip, $loc, $0, $1, $2, $3, $4) {
15814
16587
  var type = $4;
15815
16588
  if (type) {
15816
16589
  return $0;
@@ -15839,7 +16612,7 @@ ${input.slice(result.pos)}
15839
16612
  return result;
15840
16613
  }
15841
16614
  }
15842
- var TypeArguments$0 = $TS($S($EXPECT($L127, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L29, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
16615
+ var TypeArguments$0 = $TS($S($EXPECT($L128, fail, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L29, fail, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
15843
16616
  return { ts: true, children: $0 };
15844
16617
  });
15845
16618
  function TypeArguments(state) {
@@ -15910,7 +16683,7 @@ ${input.slice(result.pos)}
15910
16683
  return result;
15911
16684
  }
15912
16685
  }
15913
- var TypeParameters$0 = $TS($S(__, $EXPECT($L127, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L29, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
16686
+ var TypeParameters$0 = $TS($S(__, $EXPECT($L128, fail, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L29, fail, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
15914
16687
  var parameters = $3;
15915
16688
  return {
15916
16689
  type: "TypeParameters",
@@ -15964,7 +16737,7 @@ ${input.slice(result.pos)}
15964
16737
  return result;
15965
16738
  }
15966
16739
  }
15967
- var TypeConstraint$0 = $S(__, $EXPECT($L116, fail, 'TypeConstraint "extends"'), NonIdContinue, Type);
16740
+ var TypeConstraint$0 = $S(__, $EXPECT($L117, fail, 'TypeConstraint "extends"'), NonIdContinue, Type);
15968
16741
  function TypeConstraint(state) {
15969
16742
  let eventData;
15970
16743
  if (state.events) {
@@ -16062,7 +16835,7 @@ ${input.slice(result.pos)}
16062
16835
  return result;
16063
16836
  }
16064
16837
  }
16065
- var Shebang$0 = $S($R$0($EXPECT($R55, fail, "Shebang /#![^\\r\\n]*/")), EOL);
16838
+ var Shebang$0 = $S($R$0($EXPECT($R56, fail, "Shebang /#![^\\r\\n]*/")), EOL);
16066
16839
  function Shebang(state) {
16067
16840
  let eventData;
16068
16841
  if (state.events) {
@@ -16085,11 +16858,11 @@ ${input.slice(result.pos)}
16085
16858
  return result;
16086
16859
  }
16087
16860
  }
16088
- var CivetPrologue$0 = $T($S($EXPECT($R56, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(SimpleStatementDelimiter), $E(EOS)), function(value) {
16861
+ var CivetPrologue$0 = $T($S($EXPECT($R57, fail, "CivetPrologue /[\\t ]*/"), DoubleQuote, CivetPrologueContent, DoubleQuote, $TEXT(SimpleStatementDelimiter), $E(EOS)), function(value) {
16089
16862
  var content = value[2];
16090
16863
  return content;
16091
16864
  });
16092
- var CivetPrologue$1 = $T($S($EXPECT($R56, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(SimpleStatementDelimiter), $E(EOS)), function(value) {
16865
+ var CivetPrologue$1 = $T($S($EXPECT($R57, fail, "CivetPrologue /[\\t ]*/"), SingleQuote, CivetPrologueContent, SingleQuote, $TEXT(SimpleStatementDelimiter), $E(EOS)), function(value) {
16093
16866
  var content = value[2];
16094
16867
  return content;
16095
16868
  });
@@ -16115,7 +16888,7 @@ ${input.slice(result.pos)}
16115
16888
  return result;
16116
16889
  }
16117
16890
  }
16118
- var CivetPrologueContent$0 = $TS($S($EXPECT($L170, fail, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R57, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
16891
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L172, fail, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R58, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
16119
16892
  var options = $3;
16120
16893
  return {
16121
16894
  type: "CivetPrologue",
@@ -16145,7 +16918,7 @@ ${input.slice(result.pos)}
16145
16918
  return result;
16146
16919
  }
16147
16920
  }
16148
- var CivetOption$0 = $TR($EXPECT($R58, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16921
+ var CivetOption$0 = $TR($EXPECT($R59, fail, "CivetOption /\\s+([+-]?)([a-zA-Z0-9-]+)(\\s*=\\s*([a-zA-Z0-9.+-]*))?/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16149
16922
  const optionName = $2.replace(/-+([a-z]?)/g, (_2, l) => {
16150
16923
  if (l)
16151
16924
  return l.toUpperCase();
@@ -16181,7 +16954,7 @@ ${input.slice(result.pos)}
16181
16954
  return result;
16182
16955
  }
16183
16956
  }
16184
- var UnknownPrologue$0 = $S($R$0($EXPECT($R56, fail, "UnknownPrologue /[\\t ]*/")), BasicStringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
16957
+ var UnknownPrologue$0 = $S($R$0($EXPECT($R57, fail, "UnknownPrologue /[\\t ]*/")), StringLiteral, $TEXT(SimpleStatementDelimiter), EOS);
16185
16958
  function UnknownPrologue(state) {
16186
16959
  let eventData;
16187
16960
  if (state.events) {
@@ -16251,7 +17024,7 @@ ${input.slice(result.pos)}
16251
17024
  return result;
16252
17025
  }
16253
17026
  }
16254
- var EOL$0 = $TR($EXPECT($R59, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
17027
+ var EOL$0 = $TR($EXPECT($R60, fail, "EOL /\\r\\n|\\n|\\r|$/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
16255
17028
  return { $loc, token: $0 };
16256
17029
  });
16257
17030
  function EOL(state) {
@@ -16276,7 +17049,7 @@ ${input.slice(result.pos)}
16276
17049
  return result;
16277
17050
  }
16278
17051
  }
16279
- var Debugger$0 = $TV($EXPECT($L16, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
17052
+ var Debugger$0 = $TV($EXPECT($L17, fail, 'Debugger ""'), function($skip, $loc, $0, $1) {
16280
17053
  debugger;
16281
17054
  });
16282
17055
  function Debugger(state) {
@@ -16301,7 +17074,7 @@ ${input.slice(result.pos)}
16301
17074
  return result;
16302
17075
  }
16303
17076
  }
16304
- var InsertSemicolon$0 = $TV($EXPECT($L16, fail, 'InsertSemicolon ""'), function($skip, $loc, $0, $1) {
17077
+ var InsertSemicolon$0 = $TV($EXPECT($L17, fail, 'InsertSemicolon ""'), function($skip, $loc, $0, $1) {
16305
17078
  return { $loc, token: ";" };
16306
17079
  });
16307
17080
  function InsertSemicolon(state) {
@@ -16326,7 +17099,7 @@ ${input.slice(result.pos)}
16326
17099
  return result;
16327
17100
  }
16328
17101
  }
16329
- var InsertOpenParen$0 = $TV($EXPECT($L16, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
17102
+ var InsertOpenParen$0 = $TV($EXPECT($L17, fail, 'InsertOpenParen ""'), function($skip, $loc, $0, $1) {
16330
17103
  return { $loc, token: "(" };
16331
17104
  });
16332
17105
  function InsertOpenParen(state) {
@@ -16351,7 +17124,7 @@ ${input.slice(result.pos)}
16351
17124
  return result;
16352
17125
  }
16353
17126
  }
16354
- var InsertCloseParen$0 = $TV($EXPECT($L16, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
17127
+ var InsertCloseParen$0 = $TV($EXPECT($L17, fail, 'InsertCloseParen ""'), function($skip, $loc, $0, $1) {
16355
17128
  return { $loc, token: ")" };
16356
17129
  });
16357
17130
  function InsertCloseParen(state) {
@@ -16376,7 +17149,7 @@ ${input.slice(result.pos)}
16376
17149
  return result;
16377
17150
  }
16378
17151
  }
16379
- var InsertOpenBrace$0 = $TV($EXPECT($L16, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
17152
+ var InsertOpenBrace$0 = $TV($EXPECT($L17, fail, 'InsertOpenBrace ""'), function($skip, $loc, $0, $1) {
16380
17153
  return [{ $loc, token: " " }, { $loc, token: "{" }];
16381
17154
  });
16382
17155
  function InsertOpenBrace(state) {
@@ -16401,7 +17174,7 @@ ${input.slice(result.pos)}
16401
17174
  return result;
16402
17175
  }
16403
17176
  }
16404
- var InsertInlineOpenBrace$0 = $TV($EXPECT($L16, fail, 'InsertInlineOpenBrace ""'), function($skip, $loc, $0, $1) {
17177
+ var InsertInlineOpenBrace$0 = $TV($EXPECT($L17, fail, 'InsertInlineOpenBrace ""'), function($skip, $loc, $0, $1) {
16405
17178
  return { $loc, token: "{" };
16406
17179
  });
16407
17180
  function InsertInlineOpenBrace(state) {
@@ -16426,7 +17199,7 @@ ${input.slice(result.pos)}
16426
17199
  return result;
16427
17200
  }
16428
17201
  }
16429
- var InsertCloseBrace$0 = $TV($EXPECT($L16, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
17202
+ var InsertCloseBrace$0 = $TV($EXPECT($L17, fail, 'InsertCloseBrace ""'), function($skip, $loc, $0, $1) {
16430
17203
  return { $loc, token: "}" };
16431
17204
  });
16432
17205
  function InsertCloseBrace(state) {
@@ -16451,7 +17224,57 @@ ${input.slice(result.pos)}
16451
17224
  return result;
16452
17225
  }
16453
17226
  }
16454
- var InsertComma$0 = $TV($EXPECT($L16, fail, 'InsertComma ""'), function($skip, $loc, $0, $1) {
17227
+ var InsertOpenBracket$0 = $TV($EXPECT($L17, fail, 'InsertOpenBracket ""'), function($skip, $loc, $0, $1) {
17228
+ return { $loc, token: "[" };
17229
+ });
17230
+ function InsertOpenBracket(state) {
17231
+ let eventData;
17232
+ if (state.events) {
17233
+ const result = state.events.enter?.("InsertOpenBracket", state);
17234
+ if (result) {
17235
+ if (result.cache)
17236
+ return result.cache;
17237
+ eventData = result.data;
17238
+ }
17239
+ }
17240
+ if (state.tokenize) {
17241
+ const result = $TOKEN("InsertOpenBracket", state, InsertOpenBracket$0(state));
17242
+ if (state.events)
17243
+ state.events.exit?.("InsertOpenBracket", state, result, eventData);
17244
+ return result;
17245
+ } else {
17246
+ const result = InsertOpenBracket$0(state);
17247
+ if (state.events)
17248
+ state.events.exit?.("InsertOpenBracket", state, result, eventData);
17249
+ return result;
17250
+ }
17251
+ }
17252
+ var InsertCloseBracket$0 = $TV($EXPECT($L17, fail, 'InsertCloseBracket ""'), function($skip, $loc, $0, $1) {
17253
+ return { $loc, token: "]" };
17254
+ });
17255
+ function InsertCloseBracket(state) {
17256
+ let eventData;
17257
+ if (state.events) {
17258
+ const result = state.events.enter?.("InsertCloseBracket", state);
17259
+ if (result) {
17260
+ if (result.cache)
17261
+ return result.cache;
17262
+ eventData = result.data;
17263
+ }
17264
+ }
17265
+ if (state.tokenize) {
17266
+ const result = $TOKEN("InsertCloseBracket", state, InsertCloseBracket$0(state));
17267
+ if (state.events)
17268
+ state.events.exit?.("InsertCloseBracket", state, result, eventData);
17269
+ return result;
17270
+ } else {
17271
+ const result = InsertCloseBracket$0(state);
17272
+ if (state.events)
17273
+ state.events.exit?.("InsertCloseBracket", state, result, eventData);
17274
+ return result;
17275
+ }
17276
+ }
17277
+ var InsertComma$0 = $TV($EXPECT($L17, fail, 'InsertComma ""'), function($skip, $loc, $0, $1) {
16455
17278
  return { $loc, token: "," };
16456
17279
  });
16457
17280
  function InsertComma(state) {
@@ -16476,7 +17299,7 @@ ${input.slice(result.pos)}
16476
17299
  return result;
16477
17300
  }
16478
17301
  }
16479
- var InsertConst$0 = $TV($EXPECT($L16, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
17302
+ var InsertConst$0 = $TV($EXPECT($L17, fail, 'InsertConst ""'), function($skip, $loc, $0, $1) {
16480
17303
  return { $loc, token: "const " };
16481
17304
  });
16482
17305
  function InsertConst(state) {
@@ -16501,7 +17324,7 @@ ${input.slice(result.pos)}
16501
17324
  return result;
16502
17325
  }
16503
17326
  }
16504
- var InsertLet$0 = $TV($EXPECT($L16, fail, 'InsertLet ""'), function($skip, $loc, $0, $1) {
17327
+ var InsertLet$0 = $TV($EXPECT($L17, fail, 'InsertLet ""'), function($skip, $loc, $0, $1) {
16505
17328
  return { $loc, token: "let " };
16506
17329
  });
16507
17330
  function InsertLet(state) {
@@ -16526,7 +17349,7 @@ ${input.slice(result.pos)}
16526
17349
  return result;
16527
17350
  }
16528
17351
  }
16529
- var InsertReadonly$0 = $TV($EXPECT($L16, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
17352
+ var InsertReadonly$0 = $TV($EXPECT($L17, fail, 'InsertReadonly ""'), function($skip, $loc, $0, $1) {
16530
17353
  return { ts: true, children: [{ $loc, token: "readonly " }] };
16531
17354
  });
16532
17355
  function InsertReadonly(state) {
@@ -16551,7 +17374,7 @@ ${input.slice(result.pos)}
16551
17374
  return result;
16552
17375
  }
16553
17376
  }
16554
- var InsertNewline$0 = $TV($EXPECT($L16, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
17377
+ var InsertNewline$0 = $TV($EXPECT($L17, fail, 'InsertNewline ""'), function($skip, $loc, $0, $1) {
16555
17378
  return "\n";
16556
17379
  });
16557
17380
  function InsertNewline(state) {
@@ -16576,7 +17399,7 @@ ${input.slice(result.pos)}
16576
17399
  return result;
16577
17400
  }
16578
17401
  }
16579
- var InsertIndent$0 = $TV($EXPECT($L16, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
17402
+ var InsertIndent$0 = $TV($EXPECT($L17, fail, 'InsertIndent ""'), function($skip, $loc, $0, $1) {
16580
17403
  return module.currentIndent.token;
16581
17404
  });
16582
17405
  function InsertIndent(state) {
@@ -16601,7 +17424,7 @@ ${input.slice(result.pos)}
16601
17424
  return result;
16602
17425
  }
16603
17426
  }
16604
- var InsertSpace$0 = $TV($EXPECT($L16, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
17427
+ var InsertSpace$0 = $TV($EXPECT($L17, fail, 'InsertSpace ""'), function($skip, $loc, $0, $1) {
16605
17428
  return { $loc, token: " " };
16606
17429
  });
16607
17430
  function InsertSpace(state) {
@@ -16626,7 +17449,7 @@ ${input.slice(result.pos)}
16626
17449
  return result;
16627
17450
  }
16628
17451
  }
16629
- var InsertDot$0 = $TV($EXPECT($L16, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
17452
+ var InsertDot$0 = $TV($EXPECT($L17, fail, 'InsertDot ""'), function($skip, $loc, $0, $1) {
16630
17453
  return { $loc, token: "." };
16631
17454
  });
16632
17455
  function InsertDot(state) {
@@ -16651,7 +17474,7 @@ ${input.slice(result.pos)}
16651
17474
  return result;
16652
17475
  }
16653
17476
  }
16654
- var InsertBreak$0 = $TV($EXPECT($L16, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
17477
+ var InsertBreak$0 = $TV($EXPECT($L17, fail, 'InsertBreak ""'), function($skip, $loc, $0, $1) {
16655
17478
  return { $loc, token: ";break;" };
16656
17479
  });
16657
17480
  function InsertBreak(state) {
@@ -16676,7 +17499,7 @@ ${input.slice(result.pos)}
16676
17499
  return result;
16677
17500
  }
16678
17501
  }
16679
- var InsertVar$0 = $TV($EXPECT($L16, fail, 'InsertVar ""'), function($skip, $loc, $0, $1) {
17502
+ var InsertVar$0 = $TV($EXPECT($L17, fail, 'InsertVar ""'), function($skip, $loc, $0, $1) {
16680
17503
  return { $loc, token: "var " };
16681
17504
  });
16682
17505
  function InsertVar(state) {
@@ -16701,7 +17524,7 @@ ${input.slice(result.pos)}
16701
17524
  return result;
16702
17525
  }
16703
17526
  }
16704
- var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
17527
+ var CoffeeBinaryExistentialEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeBinaryExistentialEnabled ""'), function($skip, $loc, $0, $1) {
16705
17528
  if (module.config.coffeeBinaryExistential)
16706
17529
  return;
16707
17530
  return $skip;
@@ -16728,7 +17551,7 @@ ${input.slice(result.pos)}
16728
17551
  return result;
16729
17552
  }
16730
17553
  }
16731
- var CoffeeBooleansEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
17554
+ var CoffeeBooleansEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeBooleansEnabled ""'), function($skip, $loc, $0, $1) {
16732
17555
  if (module.config.coffeeBooleans)
16733
17556
  return;
16734
17557
  return $skip;
@@ -16755,7 +17578,7 @@ ${input.slice(result.pos)}
16755
17578
  return result;
16756
17579
  }
16757
17580
  }
16758
- var CoffeeClassesEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
17581
+ var CoffeeClassesEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeClassesEnabled ""'), function($skip, $loc, $0, $1) {
16759
17582
  if (module.config.coffeeClasses)
16760
17583
  return;
16761
17584
  return $skip;
@@ -16782,7 +17605,7 @@ ${input.slice(result.pos)}
16782
17605
  return result;
16783
17606
  }
16784
17607
  }
16785
- var CoffeeCommentEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
17608
+ var CoffeeCommentEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeCommentEnabled ""'), function($skip, $loc, $0, $1) {
16786
17609
  if (module.config.coffeeComment)
16787
17610
  return;
16788
17611
  return $skip;
@@ -16809,7 +17632,7 @@ ${input.slice(result.pos)}
16809
17632
  return result;
16810
17633
  }
16811
17634
  }
16812
- var CoffeeDoEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
17635
+ var CoffeeDoEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeDoEnabled ""'), function($skip, $loc, $0, $1) {
16813
17636
  if (module.config.coffeeDo)
16814
17637
  return;
16815
17638
  return $skip;
@@ -16836,7 +17659,7 @@ ${input.slice(result.pos)}
16836
17659
  return result;
16837
17660
  }
16838
17661
  }
16839
- var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
17662
+ var CoffeeForLoopsEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeForLoopsEnabled ""'), function($skip, $loc, $0, $1) {
16840
17663
  if (module.config.coffeeForLoops)
16841
17664
  return;
16842
17665
  return $skip;
@@ -16863,7 +17686,7 @@ ${input.slice(result.pos)}
16863
17686
  return result;
16864
17687
  }
16865
17688
  }
16866
- var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
17689
+ var CoffeeInterpolationEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeInterpolationEnabled ""'), function($skip, $loc, $0, $1) {
16867
17690
  if (module.config.coffeeInterpolation)
16868
17691
  return;
16869
17692
  return $skip;
@@ -16890,7 +17713,7 @@ ${input.slice(result.pos)}
16890
17713
  return result;
16891
17714
  }
16892
17715
  }
16893
- var CoffeeIsntEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
17716
+ var CoffeeIsntEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeIsntEnabled ""'), function($skip, $loc, $0, $1) {
16894
17717
  if (module.config.coffeeIsnt)
16895
17718
  return;
16896
17719
  return $skip;
@@ -16917,7 +17740,7 @@ ${input.slice(result.pos)}
16917
17740
  return result;
16918
17741
  }
16919
17742
  }
16920
- var CoffeeJSXEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeJSXEnabled ""'), function($skip, $loc, $0, $1) {
17743
+ var CoffeeJSXEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeJSXEnabled ""'), function($skip, $loc, $0, $1) {
16921
17744
  if (module.config.coffeeJSX)
16922
17745
  return;
16923
17746
  return $skip;
@@ -16944,7 +17767,7 @@ ${input.slice(result.pos)}
16944
17767
  return result;
16945
17768
  }
16946
17769
  }
16947
- var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
17770
+ var CoffeeLineContinuationEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeLineContinuationEnabled ""'), function($skip, $loc, $0, $1) {
16948
17771
  if (module.config.coffeeLineContinuation)
16949
17772
  return;
16950
17773
  return $skip;
@@ -16971,7 +17794,7 @@ ${input.slice(result.pos)}
16971
17794
  return result;
16972
17795
  }
16973
17796
  }
16974
- var CoffeeNotEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
17797
+ var CoffeeNotEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeNotEnabled ""'), function($skip, $loc, $0, $1) {
16975
17798
  if (module.config.coffeeNot)
16976
17799
  return;
16977
17800
  return $skip;
@@ -16998,7 +17821,7 @@ ${input.slice(result.pos)}
16998
17821
  return result;
16999
17822
  }
17000
17823
  }
17001
- var CoffeeOfEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
17824
+ var CoffeeOfEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeeOfEnabled ""'), function($skip, $loc, $0, $1) {
17002
17825
  if (module.config.coffeeOf)
17003
17826
  return;
17004
17827
  return $skip;
@@ -17025,7 +17848,7 @@ ${input.slice(result.pos)}
17025
17848
  return result;
17026
17849
  }
17027
17850
  }
17028
- var CoffeePrototypeEnabled$0 = $TV($EXPECT($L16, fail, 'CoffeePrototypeEnabled ""'), function($skip, $loc, $0, $1) {
17851
+ var CoffeePrototypeEnabled$0 = $TV($EXPECT($L17, fail, 'CoffeePrototypeEnabled ""'), function($skip, $loc, $0, $1) {
17029
17852
  if (module.config.coffeePrototype)
17030
17853
  return;
17031
17854
  return $skip;
@@ -17052,7 +17875,7 @@ ${input.slice(result.pos)}
17052
17875
  return result;
17053
17876
  }
17054
17877
  }
17055
- var ObjectIsEnabled$0 = $TV($EXPECT($L16, fail, 'ObjectIsEnabled ""'), function($skip, $loc, $0, $1) {
17878
+ var ObjectIsEnabled$0 = $TV($EXPECT($L17, fail, 'ObjectIsEnabled ""'), function($skip, $loc, $0, $1) {
17056
17879
  if (module.config.objectIs)
17057
17880
  return;
17058
17881
  return $skip;
@@ -17079,13 +17902,14 @@ ${input.slice(result.pos)}
17079
17902
  return result;
17080
17903
  }
17081
17904
  }
17082
- var Reset$0 = $TV($EXPECT($L16, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
17905
+ var Reset$0 = $TV($EXPECT($L17, fail, 'Reset ""'), function($skip, $loc, $0, $1) {
17083
17906
  module.indentLevels = [{
17084
17907
  level: 0,
17085
17908
  token: ""
17086
17909
  }];
17087
17910
  module.suppressTrailingMemberProperty = [false];
17088
17911
  module.JSXTagStack = [];
17912
+ module.operators = /* @__PURE__ */ new Set();
17089
17913
  if (!module._init) {
17090
17914
  module._init = true;
17091
17915
  Object.defineProperties(module, {
@@ -17349,7 +18173,7 @@ ${input.slice(result.pos)}
17349
18173
  return result;
17350
18174
  }
17351
18175
  }
17352
- var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L16, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
18176
+ var Init$0 = $TS($S($E(Shebang), $Q(DirectivePrologue), $EXPECT($L17, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
17353
18177
  var directives = $2;
17354
18178
  directives.forEach((directive) => {
17355
18179
  if (directive.type === "CivetPrologue") {
@@ -17559,11 +18383,11 @@ ${input.slice(result.pos)}
17559
18383
  return;
17560
18384
  case "WhenClause":
17561
18385
  node.children.splice(node.children.indexOf(node.break), 1);
17562
- if (node.block.length === 0) {
17563
- node.block.push(wrapWithReturn());
17564
- return;
18386
+ if (node.block.expressions.length) {
18387
+ insertReturn(node.block);
18388
+ } else {
18389
+ node.block.expressions.push(wrapWithReturn());
17565
18390
  }
17566
- insertReturn(node.block);
17567
18391
  return;
17568
18392
  case "DefaultClause":
17569
18393
  insertReturn(node.block);
@@ -17614,18 +18438,19 @@ ${input.slice(result.pos)}
17614
18438
  const returnStatement = wrapWithReturn(node[1]);
17615
18439
  node.splice(1, 1, returnStatement);
17616
18440
  }
17617
- module.makeLeftHandSideExpression = function(exp) {
17618
- switch (exp.type) {
18441
+ module.makeLeftHandSideExpression = function(expression) {
18442
+ switch (expression.type) {
17619
18443
  case "Identifier":
17620
18444
  case "Literal":
17621
18445
  case "CallExpression":
17622
18446
  case "MemberExpression":
17623
18447
  case "ParenthesizedExpression":
17624
- return exp;
18448
+ return expression;
17625
18449
  default:
17626
18450
  return {
17627
18451
  type: "ParenthesizedExpression",
17628
- children: ["(", exp, ")"]
18452
+ children: ["(", expression, ")"],
18453
+ expression
17629
18454
  };
17630
18455
  }
17631
18456
  };
@@ -17678,7 +18503,9 @@ ${input.slice(result.pos)}
17678
18503
  children = [a, wsOp, ".", op2.method, "(", wsB, b, ")"];
17679
18504
  }
17680
18505
  } else if (op2.token) {
17681
- children = ["(", a, wsOp, op2, wsB, b, ")"];
18506
+ children = [a, wsOp, op2, wsB, b];
18507
+ if (op2.negated)
18508
+ children = ["(", ...children, ")"];
17682
18509
  } else {
17683
18510
  throw new Error("Unknown operator: " + JSON.stringify(op2));
17684
18511
  }
@@ -17830,7 +18657,10 @@ ${input.slice(result.pos)}
17830
18657
  i++;
17831
18658
  }
17832
18659
  results.push(e);
17833
- return results;
18660
+ return {
18661
+ type: "TemplateLiteral",
18662
+ children: results
18663
+ };
17834
18664
  };
17835
18665
  module.dedentBlockString = function({ $loc: $loc2, token: str }, spacing, trim = true) {
17836
18666
  if (spacing == null)
@@ -17850,11 +18680,67 @@ ${input.slice(result.pos)}
17850
18680
  token: str
17851
18681
  };
17852
18682
  };
17853
- module.reorderBindingRestProperty = function(props) {
17854
- const names = props.flatMap((p) => p.names);
18683
+ module.adjustBindingElements = function(elements) {
18684
+ const names = elements.flatMap((p) => p.names || []), { length } = elements;
18685
+ let blockPrefix, restIndex = -1, restCount = 0;
18686
+ elements.forEach(({ rest }, i) => {
18687
+ if (rest) {
18688
+ if (restIndex < 0)
18689
+ restIndex = i;
18690
+ restCount++;
18691
+ }
18692
+ });
18693
+ if (restCount === 0) {
18694
+ return {
18695
+ children: elements,
18696
+ names,
18697
+ blockPrefix,
18698
+ length
18699
+ };
18700
+ } else if (restCount === 1) {
18701
+ const rest = elements[restIndex];
18702
+ const after = elements.slice(restIndex + 1);
18703
+ let restIdentifier;
18704
+ if (rest.ref) {
18705
+ restIdentifier = rest.ref;
18706
+ } else {
18707
+ restIdentifier = rest.names[0];
18708
+ names.push(...rest.names);
18709
+ }
18710
+ if (after.length) {
18711
+ const spliceRef = module.getRef("splice");
18712
+ blockPrefix = {
18713
+ type: "PostRestBindingElements",
18714
+ children: ["[", module.insertTrimmingSpace(after, ""), "] = ", spliceRef, ".call(", restIdentifier, ", -", after.length.toString(), ")"],
18715
+ names: after.flatMap((p) => p.names)
18716
+ };
18717
+ }
18718
+ return {
18719
+ names,
18720
+ children: [...elements.slice(0, restIndex), {
18721
+ ...rest,
18722
+ children: rest.children.slice(0, -1)
18723
+ }],
18724
+ blockPrefix,
18725
+ length
18726
+ };
18727
+ }
18728
+ const err = {
18729
+ type: "Error",
18730
+ children: ["Multiple rest elements in array pattern"]
18731
+ };
18732
+ return {
18733
+ names,
18734
+ children: [...elements, err],
18735
+ blockPrefix,
18736
+ length
18737
+ };
18738
+ };
18739
+ module.reorderBindingRestProperty = function(props2) {
18740
+ const names = props2.flatMap((p) => p.names);
17855
18741
  let restIndex = -1;
17856
18742
  let restCount = 0;
17857
- props.forEach(({ type }, i) => {
18743
+ props2.forEach(({ type }, i) => {
17858
18744
  if (type === "BindingRestProperty") {
17859
18745
  if (restIndex < 0)
17860
18746
  restIndex = i;
@@ -17862,21 +18748,20 @@ ${input.slice(result.pos)}
17862
18748
  }
17863
18749
  });
17864
18750
  if (restCount === 0) {
17865
- const children = [...props];
17866
18751
  return {
17867
- children,
18752
+ children: props2,
17868
18753
  names
17869
18754
  };
17870
18755
  } else if (restCount === 1) {
17871
- let after = props.slice(restIndex + 1);
17872
- let rest = props[restIndex];
17873
- props = props.slice(0, restIndex);
18756
+ let after = props2.slice(restIndex + 1);
18757
+ let rest = props2[restIndex];
18758
+ props2 = props2.slice(0, restIndex);
17874
18759
  if (after.length) {
17875
18760
  const [restDelim] = rest.children.slice(-1), lastAfterProp = after[after.length - 1], lastAfterChildren = lastAfterProp.children, [lastDelim] = lastAfterChildren.slice(-1);
17876
18761
  rest = { ...rest, children: [...rest.children.slice(0, -1), lastDelim] };
17877
18762
  after = [...after.slice(0, -1), { ...lastAfterProp, children: [...lastAfterChildren.slice(0, -1), restDelim] }];
17878
18763
  }
17879
- const children = [...props, ...after, rest];
18764
+ const children = [...props2, ...after, rest];
17880
18765
  return {
17881
18766
  children,
17882
18767
  names
@@ -18130,11 +19015,260 @@ ${input.slice(result.pos)}
18130
19015
  block
18131
19016
  };
18132
19017
  };
19018
+ function getPatternConditions(pattern, ref, conditions) {
19019
+ switch (pattern.type) {
19020
+ case "ArrayMatchingPattern": {
19021
+ const { elements, length } = pattern, hasRest = elements.some((e) => e.rest), comparator = hasRest ? " >= " : " === ", l = [comparator, (length - hasRest).toString()];
19022
+ conditions.push(
19023
+ ["Array.isArray(", ref, ")"],
19024
+ [ref, ".length", l]
19025
+ );
19026
+ elements.forEach(({ children: [, e] }, i) => {
19027
+ const subRef = [ref, "[", i.toString(), "]"];
19028
+ switch (e.type) {
19029
+ case "ArrayMatchingPattern":
19030
+ case "ObjectMatchingPattern":
19031
+ case "RegularExpressionLiteral":
19032
+ getPatternConditions(e, subRef, conditions);
19033
+ break;
19034
+ case "BindingMatchElement":
19035
+ getPatternConditions(e.match, subRef, conditions);
19036
+ break;
19037
+ }
19038
+ });
19039
+ const postRest = pattern.children.find((c) => c?.blockPrefix);
19040
+ if (postRest) {
19041
+ const postElements = postRest.blockPrefix.children[1], { length: postLength } = postElements;
19042
+ postElements.forEach(({ children: [, e] }, i) => {
19043
+ const subRef = [ref, "[", ref, ".length - ", (postLength + i).toString(), "]"];
19044
+ switch (e.type) {
19045
+ case "ArrayMatchingPattern":
19046
+ case "ObjectMatchingPattern":
19047
+ case "RegularExpressionLiteral":
19048
+ case "Literal":
19049
+ getPatternConditions(e, subRef, conditions);
19050
+ break;
19051
+ case "BindingMatchElement":
19052
+ getPatternConditions(e.match, subRef, conditions);
19053
+ break;
19054
+ }
19055
+ });
19056
+ }
19057
+ break;
19058
+ }
19059
+ case "ObjectMatchingPattern": {
19060
+ conditions.push(
19061
+ ["typeof ", ref, " === 'object'"],
19062
+ [ref, " != null"]
19063
+ );
19064
+ pattern.properties.forEach((p) => {
19065
+ switch (p.type) {
19066
+ case "BindingMatchProperty": {
19067
+ const { name, match } = p;
19068
+ let subRef;
19069
+ switch (name.type) {
19070
+ case "ComputedPropertyName":
19071
+ conditions.push([name.expression, " in ", ref]);
19072
+ subRef = [ref, name];
19073
+ break;
19074
+ case "Literal":
19075
+ case "StringLiteral":
19076
+ case void 0:
19077
+ conditions.push([name, " in ", ref]);
19078
+ subRef = [ref, "[", name, "]"];
19079
+ break;
19080
+ default:
19081
+ conditions.push(["'", name, "' in ", ref]);
19082
+ subRef = [ref, ".", name];
19083
+ }
19084
+ getPatternConditions(p.match, subRef, conditions);
19085
+ break;
19086
+ }
19087
+ case "BindingProperty":
19088
+ conditions.push(["'", p.identifier, "' in ", ref]);
19089
+ break;
19090
+ }
19091
+ });
19092
+ break;
19093
+ }
19094
+ case "RegularExpressionLiteral": {
19095
+ conditions.push(
19096
+ ["typeof ", ref, " === 'string'"],
19097
+ [pattern, ".test(", ref, ")"]
19098
+ );
19099
+ break;
19100
+ }
19101
+ default: {
19102
+ conditions.push([
19103
+ ref,
19104
+ " === ",
19105
+ pattern
19106
+ ]);
19107
+ }
19108
+ }
19109
+ }
19110
+ function elideMatchersFromArrayBindings(elements) {
19111
+ return elements.map(({ children: [ws, e, sep] }) => {
19112
+ switch (e.type) {
19113
+ case "Literal":
19114
+ case "RegularExpressionLiteral":
19115
+ case "StringLiteral":
19116
+ return sep;
19117
+ default:
19118
+ return [ws, nonMatcherBindings(e), sep];
19119
+ }
19120
+ });
19121
+ }
19122
+ function elideMatchersFromPropertyBindings(properties) {
19123
+ return properties.map((p) => {
19124
+ switch (p.type) {
19125
+ case "BindingMatchProperty": {
19126
+ const { children, name, match } = p;
19127
+ const [ws, , , , , , sep] = children;
19128
+ switch (match.type) {
19129
+ case "ArrayMatchingPattern":
19130
+ case "ObjectMatchingPattern":
19131
+ return {
19132
+ ...p,
19133
+ children: [ws, name, ": ", nonMatcherBindings(match)]
19134
+ };
19135
+ case "Identifier":
19136
+ switch (name.type) {
19137
+ case "ComputedPropertyName":
19138
+ case "Literal":
19139
+ case void 0:
19140
+ return {
19141
+ ...p,
19142
+ children: [ws, name, ": ", match, sep]
19143
+ };
19144
+ }
19145
+ case "Literal":
19146
+ case "RegularExpressionLiteral":
19147
+ case "StringLiteral":
19148
+ default:
19149
+ return {
19150
+ ...p,
19151
+ children: [ws, name, sep]
19152
+ };
19153
+ }
19154
+ }
19155
+ case "BindingProperty":
19156
+ case "BindingRestProperty":
19157
+ default:
19158
+ return p;
19159
+ }
19160
+ });
19161
+ }
19162
+ function nonMatcherBindings(pattern) {
19163
+ switch (pattern.type) {
19164
+ case "ArrayMatchingPattern":
19165
+ return ["[", elideMatchersFromArrayBindings(pattern.elements), "]"];
19166
+ case "PostRestBindingElements": {
19167
+ const els = elideMatchersFromArrayBindings(pattern.children[1]);
19168
+ return {
19169
+ ...pattern,
19170
+ children: [
19171
+ pattern.children[0],
19172
+ els,
19173
+ ...pattern.children.slice(2)
19174
+ ]
19175
+ };
19176
+ }
19177
+ case "ObjectMatchingPattern":
19178
+ return ["{", elideMatchersFromPropertyBindings(pattern.properties), "}"];
19179
+ default:
19180
+ return pattern;
19181
+ }
19182
+ }
19183
+ function processPatternMatching(statements) {
19184
+ gatherRecursiveAll(statements, (n) => n.type === "SwitchStatement").forEach((s) => {
19185
+ const { caseBlock } = s;
19186
+ const { clauses } = caseBlock;
19187
+ let errors = false;
19188
+ let isPattern = false;
19189
+ if (clauses.some((c) => c.type === "PatternClause")) {
19190
+ isPattern = true;
19191
+ clauses.forEach((c) => {
19192
+ if (!(c.type === "PatternClause" || c.type === "DefaultClause")) {
19193
+ errors = true;
19194
+ c.children.push({
19195
+ type: "Error",
19196
+ message: "Can't mix pattern matching and non-pattern matching clauses"
19197
+ });
19198
+ }
19199
+ });
19200
+ }
19201
+ if (errors || !isPattern)
19202
+ return;
19203
+ let { expression } = s;
19204
+ if (expression.type === "ParenthesizedExpression") {
19205
+ expression = expression.expression;
19206
+ }
19207
+ let ref;
19208
+ switch (expression.type) {
19209
+ case "Identifier":
19210
+ case "Literal":
19211
+ ref = expression;
19212
+ break;
19213
+ default:
19214
+ ref = {
19215
+ type: "Ref",
19216
+ base: "m",
19217
+ id: "m"
19218
+ };
19219
+ }
19220
+ let prev = [], root = prev;
19221
+ const l = clauses.length;
19222
+ clauses.forEach((c, i) => {
19223
+ let { pattern, block } = c;
19224
+ const indent = block.expressions[0][0];
19225
+ const conditions = [];
19226
+ getPatternConditions(pattern, ref, conditions);
19227
+ const condition = {
19228
+ type: "ParenthesizedExpression",
19229
+ children: ["(", conditions.map((c2, i2) => {
19230
+ if (i2 === 0)
19231
+ return c2;
19232
+ return [" && ", ...c2];
19233
+ }), ")"],
19234
+ expression: conditions
19235
+ };
19236
+ const prefix = [];
19237
+ switch (pattern.type) {
19238
+ case "ArrayMatchingPattern":
19239
+ case "ObjectMatchingPattern": {
19240
+ let [splices, thisAssignments] = gatherBindingCode(pattern);
19241
+ splices = splices.map((s2) => [", ", nonMatcherBindings(s2)]);
19242
+ thisAssignments = thisAssignments.map((a) => [indent, a, ";\n"]);
19243
+ prefix.push([indent, "const ", nonMatcherBindings(pattern), " = ", ref, splices, ";\n"]);
19244
+ prefix.push(...thisAssignments);
19245
+ break;
19246
+ }
19247
+ }
19248
+ block.expressions.unshift(...prefix);
19249
+ const next = [];
19250
+ if (block.bare) {
19251
+ block.children.unshift(" {");
19252
+ block.children.push("}");
19253
+ block.bare = false;
19254
+ }
19255
+ const e = i < l - 1 ? ["\nelse "] : [];
19256
+ prev.push({
19257
+ type: "IfStatement",
19258
+ children: ["if", condition, block, ...e, next]
19259
+ });
19260
+ prev = next;
19261
+ });
19262
+ s.type = "PatternMatchingStatement";
19263
+ s.children = [root];
19264
+ });
19265
+ }
18133
19266
  module.processProgram = function(statements) {
18134
19267
  processAssignments(statements);
18135
19268
  processFunctions(statements);
18136
19269
  processSwitchExpressions(statements);
18137
19270
  processTryExpressions(statements);
19271
+ processPatternMatching(statements);
18138
19272
  gatherRecursiveAll(statements, (n) => n.type === "IterationExpression").forEach((e) => expressionizeIteration(e));
18139
19273
  checkSpliceRef(statements);
18140
19274
  statements.unshift(...module.prelude);
@@ -18381,7 +19515,7 @@ ${input.slice(result.pos)}
18381
19515
  return result;
18382
19516
  }
18383
19517
  }
18384
- var Indent$0 = $TR($EXPECT($R60, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
19518
+ var Indent$0 = $TR($EXPECT($R61, fail, "Indent /[ \\t]*/"), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
18385
19519
  let level;
18386
19520
  if (module.config.tab) {
18387
19521
  const tabs = $0.match(/\t/g);
@@ -18536,7 +19670,7 @@ ${input.slice(result.pos)}
18536
19670
  return result;
18537
19671
  }
18538
19672
  }
18539
- var PopIndent$0 = $TV($EXPECT($L16, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
19673
+ var PopIndent$0 = $TV($EXPECT($L17, fail, 'PopIndent ""'), function($skip, $loc, $0, $1) {
18540
19674
  if (module.config.verbose) {
18541
19675
  console.log("popping indent", module.indentLevels[module.indentLevels.length - 1], "->", module.indentLevels[module.indentLevels.length - 2]);
18542
19676
  }
@@ -18632,6 +19766,13 @@ var generate_default = gen = function(node, options) {
18632
19766
  }).join("");
18633
19767
  }
18634
19768
  if (typeof node === "object") {
19769
+ if (node.type === "Error") {
19770
+ if (options.errors == null) {
19771
+ options.errors = [];
19772
+ }
19773
+ options.errors.push(node);
19774
+ return "";
19775
+ }
18635
19776
  if (options.js && node.ts) {
18636
19777
  return "";
18637
19778
  }
@@ -18648,13 +19789,17 @@ var generate_default = gen = function(node, options) {
18648
19789
  return token;
18649
19790
  }
18650
19791
  if (!node.children) {
19792
+ switch (node.type) {
19793
+ case "Ref":
19794
+ throw new Error(`Unpopulated ref ${JSON.stringify(node)}`);
19795
+ }
18651
19796
  debugger;
18652
- throw new Error("Unknown node", JSON.stringify(node));
19797
+ throw new Error(`Unknown node ${JSON.stringify(node)}`);
18653
19798
  }
18654
19799
  return gen(node.children, options);
18655
19800
  }
18656
19801
  debugger;
18657
- throw new Error("Unknown node", JSON.stringify(node));
19802
+ throw new Error(`Unknown node ${JSON.stringify(node)}`);
18658
19803
  };
18659
19804
  var prune = function(node) {
18660
19805
  var a;
@@ -19012,16 +20157,19 @@ remapPosition = function(position, sourcemapLines) {
19012
20157
  "civet coffeeCompat";
19013
20158
  var SourceMap2;
19014
20159
  var base64Encode2;
19015
- var defaultOptions;
19016
20160
  var makeCache;
19017
20161
  var parse;
19018
20162
  var uncacheable;
19019
20163
  ({ parse } = import_parser.default);
19020
20164
  ({ SourceMap: SourceMap2, base64Encode: base64Encode2 } = util_exports);
19021
- defaultOptions = {};
19022
20165
  uncacheable = /* @__PURE__ */ new Set(["ActualAssignment", "ApplicationStart", "Arguments", "ArgumentsWithTrailingMemberExpressions", "ArrowFunction", "ArrowFunctionTail", "AssignmentExpression", "AssignmentExpressionTail", "BinaryOpExpression", "BinaryOpRHS", "BracedBlock", "BracedObjectLiteralContent", "BracedOrEmptyBlock", "CallExpression", "CallExpressionRest", "CoffeeCommentEnabled", "CommaDelimiter", "ConditionalExpression", "Declaration", "Debugger", "ElseClause", "Expression", "ExpressionStatement", "ExpressionWithIndentedApplicationSuppressed", "ExtendedExpression", "FatArrowBody", "FunctionDeclaration", "FunctionExpression", "HoistableDeclaration", "ImplicitArguments", "ImplicitInlineObjectPropertyDelimiter", "ImplicitNestedBlock", "IndentedApplicationAllowed", "IndentedFurther", "IndentedJSXChildExpression", "InlineObjectLiteral", "InsertIndent", "JSXChild", "JSXChildren", "JSXElement", "JSXFragment", "JSXImplicitFragment", "JSXMixedChildren", "JSXNested", "JSXNestedChildren", "JSXOptionalClosingElement", "JSXOptionalClosingFragment", "JSXTag", "LeftHandSideExpression", "MemberExpression", "MemberExpressionRest", "Nested", "NestedBindingElement", "NestedBindingElements", "NestedBlockExpression", "NestedBlockExpression", "NestedBlockStatement", "NestedBlockStatements", "NestedElement", "NestedElementList", "NestedImplicitObjectLiteral", "NestedImplicitPropertyDefinition", "NestedImplicitPropertyDefinitions", "NestedInterfaceProperty", "NestedJSXChildExpression", "NestedObject", "NestedPropertyDefinitions", "NonSuppressedTrailingMemberExpressions", "ObjectLiteral", "PopIndent", "PrimaryExpression", "PushIndent", "PushJSXOpeningElement", "PushJSXOpeningFragment", "Samedent", "ShortCircuitExpression", "SingleLineAssignmentExpression", "SingleLineComment", "SingleLineStatements", "SnugNamedProperty", "Statement", "StatementListItem", "SuppressIndentedApplication", "SuppressTrailingMemberProperty", "ThinArrowFunction", "TrackIndented", "TrailingMemberExpressions", "TrailingMemberPropertyAllowed", "TypedJSXElement", "TypedJSXFragment", "UnaryExpression", "UpdateExpression"]);
19023
- var compile = function(src, options = defaultOptions) {
19024
- var ast, code, events, filename, sm, srcMapJSON;
20166
+ var compile = function(src, options) {
20167
+ var ast, code, events, filename, ref, result, sm, srcMapJSON;
20168
+ if (!options) {
20169
+ options = {};
20170
+ } else {
20171
+ options = { ...options };
20172
+ }
19025
20173
  filename = options.filename || "unknown";
19026
20174
  if (filename.endsWith(".coffee") && !/^(#![^\r\n]*(\r\n|\n|\r))?\s*['"]civet/.test(src)) {
19027
20175
  src = `"civet coffeeCompat"; ${src}`;
@@ -19049,7 +20197,11 @@ ${"//#"} sourceMappingURL=data:application/json;base64,${base64Encode2(JSON.stri
19049
20197
  };
19050
20198
  }
19051
20199
  }
19052
- return generate_default(ast, options);
20200
+ result = generate_default(ast, options);
20201
+ if ((ref = options.errors) != null ? ref.length : void 0) {
20202
+ throw new Error(`Parse errors: ${options.errors.join("\n")} `);
20203
+ }
20204
+ return result;
19053
20205
  };
19054
20206
  makeCache = function() {
19055
20207
  var caches, events;