@danielx/civet 0.4.14 → 0.4.16

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/browser.js CHANGED
@@ -452,6 +452,7 @@ var Civet = (() => {
452
452
  AdditionalReservedWords,
453
453
  MemberExpression,
454
454
  MemberExpressionRest,
455
+ MemberBracketContent,
455
456
  PropertyAccess,
456
457
  SuperProperty,
457
458
  MetaProperty,
@@ -642,6 +643,7 @@ var Civet = (() => {
642
643
  Delete,
643
644
  Do,
644
645
  Dot,
646
+ DotDot,
645
647
  DotDotDot,
646
648
  DoubleQuote,
647
649
  Else,
@@ -865,60 +867,61 @@ var Civet = (() => {
865
867
  var $L91 = $L("delete");
866
868
  var $L92 = $L("do");
867
869
  var $L93 = $L(".");
868
- var $L94 = $L("...");
869
- var $L95 = $L('"');
870
- var $L96 = $L("else");
871
- var $L97 = $L("export");
872
- var $L98 = $L("for");
873
- var $L99 = $L("from");
874
- var $L100 = $L("function");
875
- var $L101 = $L("get");
876
- var $L102 = $L("set");
877
- var $L103 = $L("if");
878
- var $L104 = $L("let");
879
- var $L105 = $L("const");
880
- var $L106 = $L("loop");
881
- var $L107 = $L("new");
882
- var $L108 = $L("of");
883
- var $L109 = $L("{");
884
- var $L110 = $L("[");
885
- var $L111 = $L("(");
886
- var $L112 = $L("?");
887
- var $L113 = $L("return");
888
- var $L114 = $L("'");
889
- var $L115 = $L("static");
890
- var $L116 = $L("${");
891
- var $L117 = $L("switch");
892
- var $L118 = $L("target");
893
- var $L119 = $L("throw");
894
- var $L120 = $L('"""');
895
- var $L121 = $L("'''");
896
- var $L122 = $L("```");
897
- var $L123 = $L("try");
898
- var $L124 = $L("typeof");
899
- var $L125 = $L("unless");
900
- var $L126 = $L("until");
901
- var $L127 = $L("var");
902
- var $L128 = $L("void");
903
- var $L129 = $L("when");
904
- var $L130 = $L("while");
905
- var $L131 = $L("yield");
906
- var $L132 = $L("/>");
907
- var $L133 = $L("</");
908
- var $L134 = $L("<>");
909
- var $L135 = $L("</>");
910
- var $L136 = $L("declare");
911
- var $L137 = $L("type");
912
- var $L138 = $L("interface");
913
- var $L139 = $L("namespace");
914
- var $L140 = $L("readonly");
915
- var $L141 = $L("asserts");
916
- var $L142 = $L("keyof");
917
- var $L143 = $L("infer");
918
- var $L144 = $L("[]");
919
- var $L145 = $L("civet");
920
- var $L146 = $L(" ");
921
- var $L147 = $L(" ");
870
+ var $L94 = $L("..");
871
+ var $L95 = $L("...");
872
+ var $L96 = $L('"');
873
+ var $L97 = $L("else");
874
+ var $L98 = $L("export");
875
+ var $L99 = $L("for");
876
+ var $L100 = $L("from");
877
+ var $L101 = $L("function");
878
+ var $L102 = $L("get");
879
+ var $L103 = $L("set");
880
+ var $L104 = $L("if");
881
+ var $L105 = $L("let");
882
+ var $L106 = $L("const");
883
+ var $L107 = $L("loop");
884
+ var $L108 = $L("new");
885
+ var $L109 = $L("of");
886
+ var $L110 = $L("{");
887
+ var $L111 = $L("[");
888
+ var $L112 = $L("(");
889
+ var $L113 = $L("?");
890
+ var $L114 = $L("return");
891
+ var $L115 = $L("'");
892
+ var $L116 = $L("static");
893
+ var $L117 = $L("${");
894
+ var $L118 = $L("switch");
895
+ var $L119 = $L("target");
896
+ var $L120 = $L("throw");
897
+ var $L121 = $L('"""');
898
+ var $L122 = $L("'''");
899
+ var $L123 = $L("```");
900
+ var $L124 = $L("try");
901
+ var $L125 = $L("typeof");
902
+ var $L126 = $L("unless");
903
+ var $L127 = $L("until");
904
+ var $L128 = $L("var");
905
+ var $L129 = $L("void");
906
+ var $L130 = $L("when");
907
+ var $L131 = $L("while");
908
+ var $L132 = $L("yield");
909
+ var $L133 = $L("/>");
910
+ var $L134 = $L("</");
911
+ var $L135 = $L("<>");
912
+ var $L136 = $L("</>");
913
+ var $L137 = $L("declare");
914
+ var $L138 = $L("type");
915
+ var $L139 = $L("interface");
916
+ var $L140 = $L("namespace");
917
+ var $L141 = $L("readonly");
918
+ var $L142 = $L("asserts");
919
+ var $L143 = $L("keyof");
920
+ var $L144 = $L("infer");
921
+ var $L145 = $L("[]");
922
+ var $L146 = $L("civet");
923
+ var $L147 = $L(" ");
924
+ var $L148 = $L(" ");
922
925
  var $R0 = $R(new RegExp("(of)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
923
926
  var $R1 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
924
927
  var $R2 = $R(new RegExp("[!~+-]", "suy"));
@@ -926,8 +929,8 @@ var Civet = (() => {
926
929
  var $R4 = $R(new RegExp('[^;"\\s]+', "suy"));
927
930
  var $R5 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)n", "suy"));
928
931
  var $R6 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))", "suy"));
929
- var $R7 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*)?)?", "suy"));
930
- var $R8 = $R(new RegExp("(?:\\.(?!\\p{ID_Start})[0-9](?:_[0-9]|[0-9])*)", "suy"));
932
+ var $R7 = $R(new RegExp("(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?", "suy"));
933
+ var $R8 = $R(new RegExp("(?:\\.[0-9](?:_[0-9]|[0-9])*)", "suy"));
931
934
  var $R9 = $R(new RegExp("(?:[eE][+-]?[0-9]+(?:_[0-9]|[0-9])*)", "suy"));
932
935
  var $R10 = $R(new RegExp("0[bB][01](?:[01]|_[01])*n?", "suy"));
933
936
  var $R11 = $R(new RegExp("0[oO][0-7](?:[0-7]|_[0-7])*n?", "suy"));
@@ -1198,8 +1201,37 @@ var Civet = (() => {
1198
1201
  var AssignmentExpressionRest$0 = AwaitExpression;
1199
1202
  var AssignmentExpressionRest$1 = YieldExpression;
1200
1203
  var AssignmentExpressionRest$2 = $S($E($S(Async, __)), ArrowFunction);
1201
- var AssignmentExpressionRest$3 = $T($S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), Expression), function(value) {
1202
- return { "type": "AssignmentExpression", "children": value };
1204
+ var AssignmentExpressionRest$3 = $TS($S($P($S(__, LeftHandSideExpression, __, AssignmentOp)), Expression), function($skip, $loc, $0, $1, $2) {
1205
+ const lastAssignment = $1[$1.length - 1];
1206
+ if (lastAssignment[3].token === "=") {
1207
+ const lhs = lastAssignment[1];
1208
+ if (Array.isArray(lhs) && lhs.length > 1) {
1209
+ const props = lhs[lhs.length - 1];
1210
+ if (Array.isArray(props)) {
1211
+ const lastProp = props[props.length - 1];
1212
+ if (lastProp.type === "SliceExpression") {
1213
+ const { start, end, children: c } = lastProp;
1214
+ c[0].token = ".splice(";
1215
+ c[1] = start;
1216
+ c[2] = ", ";
1217
+ if (end)
1218
+ c[3] = [end, " - ", start];
1219
+ else
1220
+ c[3] = ["1/0"];
1221
+ c[4] = [", ...", $2];
1222
+ c[5] = ")";
1223
+ lastAssignment.pop();
1224
+ if (module.isWhitespaceOrEmpty(lastAssignment[2]))
1225
+ lastAssignment.pop();
1226
+ return $1;
1227
+ }
1228
+ }
1229
+ }
1230
+ }
1231
+ return {
1232
+ type: "AssignmentExpression",
1233
+ children: $0
1234
+ };
1203
1235
  });
1204
1236
  var AssignmentExpressionRest$4 = ConditionalExpression;
1205
1237
  function AssignmentExpressionRest(state) {
@@ -1544,7 +1576,11 @@ var Civet = (() => {
1544
1576
  return MemberExpression$0(state) || MemberExpression$1(state) || MemberExpression$2(state);
1545
1577
  }
1546
1578
  }
1547
- var MemberExpressionRest$0 = $S($E($C(OptionalShorthand, NonNullAssertion)), OpenBracket, Expression, __, CloseBracket);
1579
+ var MemberExpressionRest$0 = $TS($S($E($C(OptionalShorthand, NonNullAssertion)), MemberBracketContent), function($skip, $loc, $0, $1, $2) {
1580
+ if ($1)
1581
+ return $0;
1582
+ return $2;
1583
+ });
1548
1584
  var MemberExpressionRest$1 = $S($E($S($Y(EOS), IndentedFurther)), PropertyAccess);
1549
1585
  var MemberExpressionRest$2 = $TS($S($E($S($Y(EOS), IndentedFurther)), $EXPECT($L12, fail, 'MemberExpressionRest "::"'), $E(IdentifierName)), function($skip, $loc, $0, $1, $2, $3) {
1550
1586
  var id = $3;
@@ -1560,6 +1596,48 @@ var Civet = (() => {
1560
1596
  return MemberExpressionRest$0(state) || MemberExpressionRest$1(state) || MemberExpressionRest$2(state) || MemberExpressionRest$3(state);
1561
1597
  }
1562
1598
  }
1599
+ var MemberBracketContent$0 = $TS($S(OpenBracket, Expression, $E($S($C(DotDotDot, DotDot), $E(Expression))), __, CloseBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
1600
+ if ($3) {
1601
+ const sep = $3[0];
1602
+ const end = $3[1];
1603
+ const inclusive = sep.token === "..";
1604
+ sep.token = ", ";
1605
+ $1.token = ".slice(";
1606
+ $5.token = ")";
1607
+ if (!end) {
1608
+ return {
1609
+ type: "SliceExpression",
1610
+ start: $2,
1611
+ end: void 0,
1612
+ children: [$1, $2, $4, $5]
1613
+ };
1614
+ }
1615
+ if (inclusive) {
1616
+ return {
1617
+ type: "SliceExpression",
1618
+ start: $2,
1619
+ end: ["1 + ", end],
1620
+ children: [$1, $2, sep, ["1 + ", end, " || 1/0"], $4, $5]
1621
+ };
1622
+ }
1623
+ return {
1624
+ type: "SliceExpression",
1625
+ start: $2,
1626
+ end,
1627
+ children: [$1, $2, sep, end, $4, $5]
1628
+ };
1629
+ }
1630
+ return $0;
1631
+ });
1632
+ function MemberBracketContent(state) {
1633
+ if (state.verbose)
1634
+ console.log("ENTER:", "MemberBracketContent");
1635
+ if (state.tokenize) {
1636
+ return $TOKEN("MemberBracketContent", state, MemberBracketContent$0(state));
1637
+ } else {
1638
+ return MemberBracketContent$0(state);
1639
+ }
1640
+ }
1563
1641
  var PropertyAccess$0 = $S($E($C(QuestionMark, NonNullAssertion)), Dot, $C(IdentifierName, PrivateIdentifier));
1564
1642
  function PropertyAccess(state) {
1565
1643
  if (state.verbose)
@@ -3331,8 +3409,8 @@ var Civet = (() => {
3331
3409
  var DecimalLiteral$0 = $TV($TEXT($EXPECT($R6, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?=\\.(?:\\p{ID_Start}|[_$]))/")), function($skip, $loc, $0, $1) {
3332
3410
  return $1 + ".";
3333
3411
  });
3334
- var DecimalLiteral$1 = $TEXT($S($EXPECT($R7, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*)?)?/"), $E(ExponentPart)));
3335
- var DecimalLiteral$2 = $TEXT($S($EXPECT($R8, fail, "DecimalLiteral /(?:\\.(?!\\p{ID_Start})[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
3412
+ var DecimalLiteral$1 = $TEXT($S($EXPECT($R7, fail, "DecimalLiteral /(?:0|[1-9](?:_[0-9]|[0-9])*)(?:\\.(?:[0-9](?:_[0-9]|[0-9])*))?/"), $E(ExponentPart)));
3413
+ var DecimalLiteral$2 = $TEXT($S($EXPECT($R8, fail, "DecimalLiteral /(?:\\.[0-9](?:_[0-9]|[0-9])*)/"), $E(ExponentPart)));
3336
3414
  function DecimalLiteral(state) {
3337
3415
  if (state.tokenize) {
3338
3416
  return $TOKEN("DecimalLiteral", state, DecimalLiteral$0(state) || DecimalLiteral$1(state) || DecimalLiteral$2(state));
@@ -3990,7 +4068,19 @@ var Civet = (() => {
3990
4068
  return Dot$0(state);
3991
4069
  }
3992
4070
  }
3993
- var DotDotDot$0 = $TV($EXPECT($L94, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
4071
+ var DotDot$0 = $TV($EXPECT($L94, fail, 'DotDot ".."'), function($skip, $loc, $0, $1) {
4072
+ return { $loc, token: $1 };
4073
+ });
4074
+ function DotDot(state) {
4075
+ if (state.verbose)
4076
+ console.log("ENTER:", "DotDot");
4077
+ if (state.tokenize) {
4078
+ return $TOKEN("DotDot", state, DotDot$0(state));
4079
+ } else {
4080
+ return DotDot$0(state);
4081
+ }
4082
+ }
4083
+ var DotDotDot$0 = $TV($EXPECT($L95, fail, 'DotDotDot "..."'), function($skip, $loc, $0, $1) {
3994
4084
  return { $loc, token: $1 };
3995
4085
  });
3996
4086
  function DotDotDot(state) {
@@ -4002,7 +4092,7 @@ var Civet = (() => {
4002
4092
  return DotDotDot$0(state);
4003
4093
  }
4004
4094
  }
4005
- var DoubleQuote$0 = $TV($EXPECT($L95, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
4095
+ var DoubleQuote$0 = $TV($EXPECT($L96, fail, 'DoubleQuote "\\\\\\""'), function($skip, $loc, $0, $1) {
4006
4096
  return { $loc, token: $1 };
4007
4097
  });
4008
4098
  function DoubleQuote(state) {
@@ -4014,7 +4104,7 @@ var Civet = (() => {
4014
4104
  return DoubleQuote$0(state);
4015
4105
  }
4016
4106
  }
4017
- var Else$0 = $TV($EXPECT($L96, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
4107
+ var Else$0 = $TV($EXPECT($L97, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
4018
4108
  return { $loc, token: $1 };
4019
4109
  });
4020
4110
  function Else(state) {
@@ -4038,7 +4128,7 @@ var Civet = (() => {
4038
4128
  return Equals$0(state);
4039
4129
  }
4040
4130
  }
4041
- var Export$0 = $TS($S($EXPECT($L97, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4131
+ var Export$0 = $TS($S($EXPECT($L98, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4042
4132
  return { $loc, token: $1 };
4043
4133
  });
4044
4134
  function Export(state) {
@@ -4050,7 +4140,7 @@ var Civet = (() => {
4050
4140
  return Export$0(state);
4051
4141
  }
4052
4142
  }
4053
- var For$0 = $TS($S($EXPECT($L98, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4143
+ var For$0 = $TS($S($EXPECT($L99, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4054
4144
  return { $loc, token: $1 };
4055
4145
  });
4056
4146
  function For(state) {
@@ -4062,7 +4152,7 @@ var Civet = (() => {
4062
4152
  return For$0(state);
4063
4153
  }
4064
4154
  }
4065
- var From$0 = $TS($S($EXPECT($L99, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4155
+ var From$0 = $TS($S($EXPECT($L100, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4066
4156
  return { $loc, token: $1 };
4067
4157
  });
4068
4158
  function From(state) {
@@ -4074,7 +4164,7 @@ var Civet = (() => {
4074
4164
  return From$0(state);
4075
4165
  }
4076
4166
  }
4077
- var Function$0 = $TV($EXPECT($L100, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
4167
+ var Function$0 = $TV($EXPECT($L101, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
4078
4168
  return { $loc, token: $1 };
4079
4169
  });
4080
4170
  function Function(state) {
@@ -4086,7 +4176,7 @@ var Civet = (() => {
4086
4176
  return Function$0(state);
4087
4177
  }
4088
4178
  }
4089
- var GetOrSet$0 = $TS($S($C($EXPECT($L101, fail, 'GetOrSet "get"'), $EXPECT($L102, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4179
+ var GetOrSet$0 = $TS($S($C($EXPECT($L102, fail, 'GetOrSet "get"'), $EXPECT($L103, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4090
4180
  return { $loc, token: $1 };
4091
4181
  });
4092
4182
  function GetOrSet(state) {
@@ -4098,7 +4188,7 @@ var Civet = (() => {
4098
4188
  return GetOrSet$0(state);
4099
4189
  }
4100
4190
  }
4101
- var If$0 = $TV($EXPECT($L103, fail, 'If "if"'), function($skip, $loc, $0, $1) {
4191
+ var If$0 = $TV($EXPECT($L104, fail, 'If "if"'), function($skip, $loc, $0, $1) {
4102
4192
  return { $loc, token: $1 };
4103
4193
  });
4104
4194
  function If(state) {
@@ -4134,7 +4224,7 @@ var Civet = (() => {
4134
4224
  return In$0(state);
4135
4225
  }
4136
4226
  }
4137
- var LetOrConst$0 = $TV($C($EXPECT($L104, fail, 'LetOrConst "let"'), $EXPECT($L105, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
4227
+ var LetOrConst$0 = $TV($C($EXPECT($L105, fail, 'LetOrConst "let"'), $EXPECT($L106, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
4138
4228
  return { $loc, token: $1 };
4139
4229
  });
4140
4230
  function LetOrConst(state) {
@@ -4146,7 +4236,7 @@ var Civet = (() => {
4146
4236
  return LetOrConst$0(state);
4147
4237
  }
4148
4238
  }
4149
- var Loop$0 = $TS($S($EXPECT($L106, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4239
+ var Loop$0 = $TS($S($EXPECT($L107, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4150
4240
  return { $loc, token: "while(true)" };
4151
4241
  });
4152
4242
  function Loop(state) {
@@ -4158,7 +4248,7 @@ var Civet = (() => {
4158
4248
  return Loop$0(state);
4159
4249
  }
4160
4250
  }
4161
- var New$0 = $TV($EXPECT($L107, fail, 'New "new"'), function($skip, $loc, $0, $1) {
4251
+ var New$0 = $TV($EXPECT($L108, fail, 'New "new"'), function($skip, $loc, $0, $1) {
4162
4252
  return { $loc, token: $1 };
4163
4253
  });
4164
4254
  function New(state) {
@@ -4170,7 +4260,7 @@ var Civet = (() => {
4170
4260
  return New$0(state);
4171
4261
  }
4172
4262
  }
4173
- var Of$0 = $TV($EXPECT($L108, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
4263
+ var Of$0 = $TV($EXPECT($L109, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
4174
4264
  return { $loc, token: $1 };
4175
4265
  });
4176
4266
  function Of(state) {
@@ -4182,7 +4272,7 @@ var Civet = (() => {
4182
4272
  return Of$0(state);
4183
4273
  }
4184
4274
  }
4185
- var OpenBrace$0 = $TV($EXPECT($L109, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
4275
+ var OpenBrace$0 = $TV($EXPECT($L110, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
4186
4276
  return { $loc, token: $1 };
4187
4277
  });
4188
4278
  function OpenBrace(state) {
@@ -4194,7 +4284,7 @@ var Civet = (() => {
4194
4284
  return OpenBrace$0(state);
4195
4285
  }
4196
4286
  }
4197
- var OpenBracket$0 = $TV($EXPECT($L110, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
4287
+ var OpenBracket$0 = $TV($EXPECT($L111, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
4198
4288
  return { $loc, token: $1 };
4199
4289
  });
4200
4290
  function OpenBracket(state) {
@@ -4206,7 +4296,7 @@ var Civet = (() => {
4206
4296
  return OpenBracket$0(state);
4207
4297
  }
4208
4298
  }
4209
- var OpenParen$0 = $TV($EXPECT($L111, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
4299
+ var OpenParen$0 = $TV($EXPECT($L112, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
4210
4300
  return { $loc, token: $1 };
4211
4301
  });
4212
4302
  function OpenParen(state) {
@@ -4218,7 +4308,7 @@ var Civet = (() => {
4218
4308
  return OpenParen$0(state);
4219
4309
  }
4220
4310
  }
4221
- var QuestionMark$0 = $TV($EXPECT($L112, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
4311
+ var QuestionMark$0 = $TV($EXPECT($L113, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
4222
4312
  return { $loc, token: $1 };
4223
4313
  });
4224
4314
  function QuestionMark(state) {
@@ -4230,7 +4320,7 @@ var Civet = (() => {
4230
4320
  return QuestionMark$0(state);
4231
4321
  }
4232
4322
  }
4233
- var Return$0 = $TS($S($EXPECT($L113, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4323
+ var Return$0 = $TS($S($EXPECT($L114, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4234
4324
  return { $loc, token: $1 };
4235
4325
  });
4236
4326
  function Return(state) {
@@ -4254,7 +4344,7 @@ var Civet = (() => {
4254
4344
  return Semicolon$0(state);
4255
4345
  }
4256
4346
  }
4257
- var SingleQuote$0 = $TV($EXPECT($L114, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
4347
+ var SingleQuote$0 = $TV($EXPECT($L115, fail, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
4258
4348
  return { $loc, token: $1 };
4259
4349
  });
4260
4350
  function SingleQuote(state) {
@@ -4278,10 +4368,10 @@ var Civet = (() => {
4278
4368
  return Star$0(state);
4279
4369
  }
4280
4370
  }
4281
- var Static$0 = $TV($EXPECT($L115, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
4371
+ var Static$0 = $TV($EXPECT($L116, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
4282
4372
  return { $loc, token: $1 };
4283
4373
  });
4284
- var Static$1 = $TS($S($EXPECT($L8, fail, 'Static "@"'), $N($EXPECT($L111, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
4374
+ var Static$1 = $TS($S($EXPECT($L8, fail, 'Static "@"'), $N($EXPECT($L112, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
4285
4375
  return { $loc, token: "static " };
4286
4376
  });
4287
4377
  function Static(state) {
@@ -4291,7 +4381,7 @@ var Civet = (() => {
4291
4381
  return Static$0(state) || Static$1(state);
4292
4382
  }
4293
4383
  }
4294
- var SubstitutionStart$0 = $TV($EXPECT($L116, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
4384
+ var SubstitutionStart$0 = $TV($EXPECT($L117, fail, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
4295
4385
  return { $loc, token: $1 };
4296
4386
  });
4297
4387
  function SubstitutionStart(state) {
@@ -4303,7 +4393,7 @@ var Civet = (() => {
4303
4393
  return SubstitutionStart$0(state);
4304
4394
  }
4305
4395
  }
4306
- var Switch$0 = $TS($S($EXPECT($L117, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4396
+ var Switch$0 = $TS($S($EXPECT($L118, fail, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4307
4397
  return { $loc, token: $1 };
4308
4398
  });
4309
4399
  function Switch(state) {
@@ -4315,7 +4405,7 @@ var Civet = (() => {
4315
4405
  return Switch$0(state);
4316
4406
  }
4317
4407
  }
4318
- var Target$0 = $TV($EXPECT($L118, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
4408
+ var Target$0 = $TV($EXPECT($L119, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
4319
4409
  return { $loc, token: $1 };
4320
4410
  });
4321
4411
  function Target(state) {
@@ -4327,7 +4417,7 @@ var Civet = (() => {
4327
4417
  return Target$0(state);
4328
4418
  }
4329
4419
  }
4330
- var Throw$0 = $TS($S($EXPECT($L119, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4420
+ var Throw$0 = $TS($S($EXPECT($L120, fail, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4331
4421
  return { $loc, token: $1 };
4332
4422
  });
4333
4423
  function Throw(state) {
@@ -4339,7 +4429,7 @@ var Civet = (() => {
4339
4429
  return Throw$0(state);
4340
4430
  }
4341
4431
  }
4342
- var TripleDoubleQuote$0 = $TV($EXPECT($L120, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
4432
+ var TripleDoubleQuote$0 = $TV($EXPECT($L121, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
4343
4433
  return { $loc, token: "`" };
4344
4434
  });
4345
4435
  function TripleDoubleQuote(state) {
@@ -4351,7 +4441,7 @@ var Civet = (() => {
4351
4441
  return TripleDoubleQuote$0(state);
4352
4442
  }
4353
4443
  }
4354
- var TripleSingleQuote$0 = $TV($EXPECT($L121, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
4444
+ var TripleSingleQuote$0 = $TV($EXPECT($L122, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
4355
4445
  return { $loc, token: "`" };
4356
4446
  });
4357
4447
  function TripleSingleQuote(state) {
@@ -4363,7 +4453,7 @@ var Civet = (() => {
4363
4453
  return TripleSingleQuote$0(state);
4364
4454
  }
4365
4455
  }
4366
- var TripleTick$0 = $TV($EXPECT($L122, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
4456
+ var TripleTick$0 = $TV($EXPECT($L123, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
4367
4457
  return { $loc, token: "`" };
4368
4458
  });
4369
4459
  function TripleTick(state) {
@@ -4375,7 +4465,7 @@ var Civet = (() => {
4375
4465
  return TripleTick$0(state);
4376
4466
  }
4377
4467
  }
4378
- var Try$0 = $TV($EXPECT($L123, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
4468
+ var Try$0 = $TV($EXPECT($L124, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
4379
4469
  return { $loc, token: $1 };
4380
4470
  });
4381
4471
  function Try(state) {
@@ -4387,7 +4477,7 @@ var Civet = (() => {
4387
4477
  return Try$0(state);
4388
4478
  }
4389
4479
  }
4390
- var Typeof$0 = $TS($S($EXPECT($L124, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4480
+ var Typeof$0 = $TS($S($EXPECT($L125, fail, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4391
4481
  return { $loc, token: $1 };
4392
4482
  });
4393
4483
  function Typeof(state) {
@@ -4399,7 +4489,7 @@ var Civet = (() => {
4399
4489
  return Typeof$0(state);
4400
4490
  }
4401
4491
  }
4402
- var Unless$0 = $TV($EXPECT($L125, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
4492
+ var Unless$0 = $TV($EXPECT($L126, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
4403
4493
  return { $loc, token: $1 };
4404
4494
  });
4405
4495
  function Unless(state) {
@@ -4411,7 +4501,7 @@ var Civet = (() => {
4411
4501
  return Unless$0(state);
4412
4502
  }
4413
4503
  }
4414
- var Until$0 = $TS($S($EXPECT($L126, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4504
+ var Until$0 = $TS($S($EXPECT($L127, fail, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4415
4505
  return { $loc, token: $1 };
4416
4506
  });
4417
4507
  function Until(state) {
@@ -4423,7 +4513,7 @@ var Civet = (() => {
4423
4513
  return Until$0(state);
4424
4514
  }
4425
4515
  }
4426
- var Var$0 = $TV($EXPECT($L127, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
4516
+ var Var$0 = $TV($EXPECT($L128, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
4427
4517
  return { $loc, token: $1 };
4428
4518
  });
4429
4519
  function Var(state) {
@@ -4435,7 +4525,7 @@ var Civet = (() => {
4435
4525
  return Var$0(state);
4436
4526
  }
4437
4527
  }
4438
- var Void$0 = $TS($S($EXPECT($L128, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4528
+ var Void$0 = $TS($S($EXPECT($L129, fail, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4439
4529
  return { $loc, token: $1 };
4440
4530
  });
4441
4531
  function Void(state) {
@@ -4447,7 +4537,7 @@ var Civet = (() => {
4447
4537
  return Void$0(state);
4448
4538
  }
4449
4539
  }
4450
- var When$0 = $TS($S($EXPECT($L129, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4540
+ var When$0 = $TS($S($EXPECT($L130, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4451
4541
  return { $loc, token: "case" };
4452
4542
  });
4453
4543
  function When(state) {
@@ -4459,7 +4549,7 @@ var Civet = (() => {
4459
4549
  return When$0(state);
4460
4550
  }
4461
4551
  }
4462
- var While$0 = $TS($S($EXPECT($L130, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4552
+ var While$0 = $TS($S($EXPECT($L131, fail, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4463
4553
  return { $loc, token: $1 };
4464
4554
  });
4465
4555
  function While(state) {
@@ -4471,7 +4561,7 @@ var Civet = (() => {
4471
4561
  return While$0(state);
4472
4562
  }
4473
4563
  }
4474
- var Yield$0 = $TS($S($EXPECT($L131, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4564
+ var Yield$0 = $TS($S($EXPECT($L132, fail, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
4475
4565
  return { $loc, token: $1 };
4476
4566
  });
4477
4567
  function Yield(state) {
@@ -4497,7 +4587,7 @@ var Civet = (() => {
4497
4587
  return JSXElement$0(state) || JSXElement$1(state);
4498
4588
  }
4499
4589
  }
4500
- var JSXSelfClosingElement$0 = $S($EXPECT($L4, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L132, fail, 'JSXSelfClosingElement "/>"'));
4590
+ var JSXSelfClosingElement$0 = $S($EXPECT($L4, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L133, fail, 'JSXSelfClosingElement "/>"'));
4501
4591
  function JSXSelfClosingElement(state) {
4502
4592
  if (state.verbose)
4503
4593
  console.log("ENTER:", "JSXSelfClosingElement");
@@ -4517,7 +4607,7 @@ var Civet = (() => {
4517
4607
  return JSXOpeningElement$0(state);
4518
4608
  }
4519
4609
  }
4520
- var JSXClosingElement$0 = $S($EXPECT($L133, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L55, fail, 'JSXClosingElement ">"'));
4610
+ var JSXClosingElement$0 = $S($EXPECT($L134, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L55, fail, 'JSXClosingElement ">"'));
4521
4611
  function JSXClosingElement(state) {
4522
4612
  if (state.verbose)
4523
4613
  console.log("ENTER:", "JSXClosingElement");
@@ -4527,7 +4617,7 @@ var Civet = (() => {
4527
4617
  return JSXClosingElement$0(state);
4528
4618
  }
4529
4619
  }
4530
- var JSXFragment$0 = $S($EXPECT($L134, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L135, fail, 'JSXFragment "</>"'));
4620
+ var JSXFragment$0 = $S($EXPECT($L135, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L136, fail, 'JSXFragment "</>"'));
4531
4621
  function JSXFragment(state) {
4532
4622
  if (state.verbose)
4533
4623
  console.log("ENTER:", "JSXFragment");
@@ -4661,7 +4751,7 @@ var Civet = (() => {
4661
4751
  return TypeDeclaration$0(state);
4662
4752
  }
4663
4753
  }
4664
- var TypeDeclarationModifier$0 = $S($EXPECT($L136, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
4754
+ var TypeDeclarationModifier$0 = $S($EXPECT($L137, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
4665
4755
  var TypeDeclarationModifier$1 = Export;
4666
4756
  function TypeDeclarationModifier(state) {
4667
4757
  if (state.tokenize) {
@@ -4681,7 +4771,7 @@ var Civet = (() => {
4681
4771
  return TypeDeclarationRest$0(state) || TypeDeclarationRest$1(state) || TypeDeclarationRest$2(state) || TypeDeclarationRest$3(state);
4682
4772
  }
4683
4773
  }
4684
- var TypeKeyword$0 = $S($EXPECT($L137, fail, 'TypeKeyword "type"'), NonIdContinue);
4774
+ var TypeKeyword$0 = $S($EXPECT($L138, fail, 'TypeKeyword "type"'), NonIdContinue);
4685
4775
  function TypeKeyword(state) {
4686
4776
  if (state.verbose)
4687
4777
  console.log("ENTER:", "TypeKeyword");
@@ -4691,7 +4781,7 @@ var Civet = (() => {
4691
4781
  return TypeKeyword$0(state);
4692
4782
  }
4693
4783
  }
4694
- var Interface$0 = $S($EXPECT($L138, fail, 'Interface "interface"'), NonIdContinue);
4784
+ var Interface$0 = $S($EXPECT($L139, fail, 'Interface "interface"'), NonIdContinue);
4695
4785
  function Interface(state) {
4696
4786
  if (state.verbose)
4697
4787
  console.log("ENTER:", "Interface");
@@ -4701,7 +4791,7 @@ var Civet = (() => {
4701
4791
  return Interface$0(state);
4702
4792
  }
4703
4793
  }
4704
- var Namespace$0 = $S($EXPECT($L139, fail, 'Namespace "namespace"'), NonIdContinue);
4794
+ var Namespace$0 = $S($EXPECT($L140, fail, 'Namespace "namespace"'), NonIdContinue);
4705
4795
  function Namespace(state) {
4706
4796
  if (state.verbose)
4707
4797
  console.log("ENTER:", "Namespace");
@@ -4801,7 +4891,7 @@ var Civet = (() => {
4801
4891
  return NestedTypeDeclaration$0(state);
4802
4892
  }
4803
4893
  }
4804
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R37, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L140, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R38, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4894
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R37, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L141, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R38, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4805
4895
  function TypeIndexSignature(state) {
4806
4896
  if (state.verbose)
4807
4897
  console.log("ENTER:", "TypeIndexSignature");
@@ -4832,7 +4922,7 @@ var Civet = (() => {
4832
4922
  return TypeSuffix$0(state);
4833
4923
  }
4834
4924
  }
4835
- var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L141, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
4925
+ var ReturnTypeSuffix$0 = $TS($S(__, Colon, $E($S(__, $EXPECT($L142, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2, $3, $4) {
4836
4926
  if (!$3)
4837
4927
  $0.splice(2, 1);
4838
4928
  if ($1.length === 0)
@@ -4915,9 +5005,9 @@ var Civet = (() => {
4915
5005
  return TypeUnarySuffix$0(state) || TypeUnarySuffix$1(state);
4916
5006
  }
4917
5007
  }
4918
- var TypeUnaryOp$0 = $EXPECT($L142, fail, 'TypeUnaryOp "keyof"');
4919
- var TypeUnaryOp$1 = $EXPECT($L124, fail, 'TypeUnaryOp "typeof"');
4920
- var TypeUnaryOp$2 = $EXPECT($L143, fail, 'TypeUnaryOp "infer"');
5008
+ var TypeUnaryOp$0 = $EXPECT($L143, fail, 'TypeUnaryOp "keyof"');
5009
+ var TypeUnaryOp$1 = $EXPECT($L125, fail, 'TypeUnaryOp "typeof"');
5010
+ var TypeUnaryOp$2 = $EXPECT($L144, fail, 'TypeUnaryOp "infer"');
4921
5011
  function TypeUnaryOp(state) {
4922
5012
  if (state.tokenize) {
4923
5013
  return $TOKEN("TypeUnaryOp", state, TypeUnaryOp$0(state) || TypeUnaryOp$1(state) || TypeUnaryOp$2(state));
@@ -5007,10 +5097,10 @@ var Civet = (() => {
5007
5097
  }
5008
5098
  }
5009
5099
  var TypeLiteral$0 = Literal;
5010
- var TypeLiteral$1 = $TV($EXPECT($L128, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
5100
+ var TypeLiteral$1 = $TV($EXPECT($L129, fail, 'TypeLiteral "void"'), function($skip, $loc, $0, $1) {
5011
5101
  return { $loc, token: "void" };
5012
5102
  });
5013
- var TypeLiteral$2 = $TV($EXPECT($L144, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
5103
+ var TypeLiteral$2 = $TV($EXPECT($L145, fail, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
5014
5104
  return { $loc, token: "[]" };
5015
5105
  });
5016
5106
  function TypeLiteral(state) {
@@ -5125,7 +5215,7 @@ var Civet = (() => {
5125
5215
  return CivetPrologue$0(state) || CivetPrologue$1(state);
5126
5216
  }
5127
5217
  }
5128
- var CivetPrologueContent$0 = $TS($S($EXPECT($L145, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R41, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
5218
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L146, fail, 'CivetPrologueContent "civet"'), $Q(CivetOption), $EXPECT($R41, fail, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3) {
5129
5219
  var options = $2;
5130
5220
  return {
5131
5221
  type: "CivetPrologue",
@@ -5598,6 +5688,7 @@ var Civet = (() => {
5598
5688
  }
5599
5689
  return spacing;
5600
5690
  };
5691
+ const initialSpacingRe = /^(?:\r?\n|\n)*((?:\r?\n|\n)\s+)/;
5601
5692
  module.dedentBlockSubstitutions = function($02) {
5602
5693
  const [s, strWithSubstitutions, e] = $02;
5603
5694
  if (strWithSubstitutions.length === 0) {
@@ -5606,7 +5697,7 @@ var Civet = (() => {
5606
5697
  let initialSpacing, i = 0, l = strWithSubstitutions.length, results = [s];
5607
5698
  const { token } = strWithSubstitutions[0];
5608
5699
  if (token) {
5609
- initialSpacing = token.match(/^(\r?\n|\n)\s+/);
5700
+ initialSpacing = token.match(initialSpacingRe);
5610
5701
  } else {
5611
5702
  initialSpacing = false;
5612
5703
  }
@@ -5631,9 +5722,9 @@ var Civet = (() => {
5631
5722
  };
5632
5723
  module.dedentBlockString = function({ $loc: $loc2, token: str }, spacing, trim = true) {
5633
5724
  if (spacing == null)
5634
- spacing = str.match(/^(\r?\n|\n)[ \t]+/);
5725
+ spacing = str.match(initialSpacingRe);
5635
5726
  if (spacing) {
5636
- str = str.replaceAll(spacing[0], "\n");
5727
+ str = str.replaceAll(spacing[1], "\n");
5637
5728
  const l = spacing.length;
5638
5729
  $loc2.pos += l;
5639
5730
  $loc2.length -= l;
@@ -5658,7 +5749,7 @@ var Civet = (() => {
5658
5749
  return Init$0(state);
5659
5750
  }
5660
5751
  }
5661
- var Indent$0 = $TV($Q($C($EXPECT($L146, fail, 'Indent " "'), $EXPECT($L147, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
5752
+ var Indent$0 = $TV($Q($C($EXPECT($L147, fail, 'Indent " "'), $EXPECT($L148, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
5662
5753
  const level = $1.length;
5663
5754
  return {
5664
5755
  $loc,