@danielx/civet 0.6.51 → 0.6.52

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
@@ -3883,6 +3883,10 @@ ${input.slice(result.pos)}
3883
3883
  ShortArrowParameters,
3884
3884
  ArrowParameters,
3885
3885
  NonEmptyParameters,
3886
+ ParameterList,
3887
+ NestedParameterList,
3888
+ NestedParameter,
3889
+ Parameter,
3886
3890
  FunctionRestParameter,
3887
3891
  ParameterElement,
3888
3892
  ParameterElementDelimiter,
@@ -4209,6 +4213,7 @@ ${input.slice(result.pos)}
4209
4213
  Case,
4210
4214
  Catch,
4211
4215
  Class,
4216
+ CloseAngleBracket,
4212
4217
  CloseBrace,
4213
4218
  CloseBracket,
4214
4219
  CloseParen,
@@ -4680,7 +4685,7 @@ ${input.slice(result.pos)}
4680
4685
  var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
4681
4686
  var $R2 = $R(new RegExp("[0-9]", "suy"));
4682
4687
  var $R3 = $R(new RegExp("[ \\t]", "suy"));
4683
- var $R4 = $R(new RegExp("(?=['\"`])", "suy"));
4688
+ var $R4 = $R(new RegExp("(?=['\"`<])", "suy"));
4684
4689
  var $R5 = $R(new RegExp("(?=[\\/?])", "suy"));
4685
4690
  var $R6 = $R(new RegExp("(?=[\\/\\[{?.!@'\u2019:])", "suy"));
4686
4691
  var $R7 = $R(new RegExp("[)}]", "suy"));
@@ -5804,12 +5809,15 @@ ${input.slice(result.pos)}
5804
5809
  return $EVENT_C(ctx, state, "CallExpression", CallExpression$$);
5805
5810
  }
5806
5811
  var CallExpressionRest$0 = MemberExpressionRest;
5807
- var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`])/"), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
5808
- var literal = $2;
5812
+ var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`<])/"), $E(TypeArguments), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2, $3) {
5813
+ var args = $2;
5814
+ var literal = $3;
5809
5815
  if (literal.type === "StringLiteral") {
5810
- return "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
5816
+ literal = "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
5811
5817
  }
5812
- return literal;
5818
+ if (!args)
5819
+ return literal;
5820
+ return [args, literal];
5813
5821
  });
5814
5822
  var CallExpressionRest$2 = $TS($S($E(OptionalShorthand), ArgumentsWithTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
5815
5823
  if (!$1)
@@ -6149,15 +6157,55 @@ ${input.slice(result.pos)}
6149
6157
  function ArrowParameters(ctx, state) {
6150
6158
  return $EVENT_C(ctx, state, "ArrowParameters", ArrowParameters$$);
6151
6159
  }
6152
- var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, $E(ThisType), $Q(ParameterElement), $E(FunctionRestParameter), $Q(ParameterElement), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
6160
+ var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, ParameterList, $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4) {
6153
6161
  var tp = $1;
6154
6162
  var open = $2;
6155
- var tt = $3;
6156
- var pes = $4;
6157
- var rest = $5;
6158
- var after = $6;
6159
- var close = $7;
6160
- const names = pes.flatMap((p) => p.names);
6163
+ var params = $3;
6164
+ var close = $4;
6165
+ let tt, before = [], rest, after = [], errors = [];
6166
+ function append(p) {
6167
+ (rest ? after : before).push(p);
6168
+ }
6169
+ for (const param of params) {
6170
+ switch (param.type) {
6171
+ case "ThisType":
6172
+ if (tt) {
6173
+ append({
6174
+ type: "Error",
6175
+ message: "Only one typed this parameter is allowed"
6176
+ });
6177
+ append(param);
6178
+ } else {
6179
+ tt = insertTrimmingSpace(param, "");
6180
+ if (before.length || rest) {
6181
+ let delim = tt.children.at(-1);
6182
+ if (Array.isArray(delim))
6183
+ delim = delim.at(-1);
6184
+ if (delim?.token !== ",") {
6185
+ tt = {
6186
+ ...tt,
6187
+ children: [...tt.children, ", "]
6188
+ };
6189
+ }
6190
+ }
6191
+ }
6192
+ break;
6193
+ case "FunctionRestParameter":
6194
+ if (rest) {
6195
+ append({
6196
+ type: "Error",
6197
+ message: "Only one rest parameter is allowed"
6198
+ });
6199
+ append(param);
6200
+ } else {
6201
+ rest = param;
6202
+ }
6203
+ break;
6204
+ default:
6205
+ append(param);
6206
+ }
6207
+ }
6208
+ const names = before.flatMap((p) => p.names);
6161
6209
  if (rest) {
6162
6210
  const restIdentifier = rest.binding.ref || rest.binding;
6163
6211
  names.push(...rest.names || []);
@@ -6174,7 +6222,7 @@ ${input.slice(result.pos)}
6174
6222
  tp,
6175
6223
  open,
6176
6224
  tt,
6177
- ...pes,
6225
+ ...before,
6178
6226
  // Remove delimiter
6179
6227
  { ...rest, children: rest.children.slice(0, -1) },
6180
6228
  close
@@ -6186,19 +6234,61 @@ ${input.slice(result.pos)}
6186
6234
  }
6187
6235
  return {
6188
6236
  type: "Parameters",
6189
- children: [tp, open, tt, ...pes, close],
6190
- names: pes.flatMap((p) => p.names),
6237
+ children: [tp, open, tt, ...before, close],
6238
+ names,
6191
6239
  tp
6192
6240
  };
6193
6241
  });
6194
6242
  function NonEmptyParameters(ctx, state) {
6195
6243
  return $EVENT(ctx, state, "NonEmptyParameters", NonEmptyParameters$0);
6196
6244
  }
6197
- var FunctionRestParameter$0 = $TS($S(__, BindingRestElement, $E(TypeSuffix), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
6245
+ var ParameterList$0 = $TS($S($Q(Parameter), NestedParameterList), function($skip, $loc, $0, $1, $2) {
6246
+ return [...$1, ...$2];
6247
+ });
6248
+ var ParameterList$1 = $TV($Q($S(__, Parameter)), function($skip, $loc, $0, $1) {
6249
+ return $1.map(([eos, p]) => ({
6250
+ ...p,
6251
+ children: [eos, ...p.children]
6252
+ }));
6253
+ });
6254
+ var ParameterList$$ = [ParameterList$0, ParameterList$1];
6255
+ function ParameterList(ctx, state) {
6256
+ return $EVENT_C(ctx, state, "ParameterList", ParameterList$$);
6257
+ }
6258
+ var NestedParameterList$0 = $TS($S(PushIndent, $Q(NestedParameter), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
6259
+ var params = $2;
6260
+ if (!params.length)
6261
+ return $skip;
6262
+ return params;
6263
+ });
6264
+ function NestedParameterList(ctx, state) {
6265
+ return $EVENT(ctx, state, "NestedParameterList", NestedParameterList$0);
6266
+ }
6267
+ var NestedParameter$0 = $TS($S(Nested, $P(Parameter)), function($skip, $loc, $0, $1, $2) {
6268
+ var ws = $1;
6269
+ var params = $2;
6270
+ params = [...params];
6271
+ params[0] = {
6272
+ ...params[0],
6273
+ children: [ws, ...params[0].children]
6274
+ };
6275
+ return params;
6276
+ });
6277
+ function NestedParameter(ctx, state) {
6278
+ return $EVENT(ctx, state, "NestedParameter", NestedParameter$0);
6279
+ }
6280
+ var Parameter$0 = ThisType;
6281
+ var Parameter$1 = ParameterElement;
6282
+ var Parameter$2 = FunctionRestParameter;
6283
+ var Parameter$$ = [Parameter$0, Parameter$1, Parameter$2];
6284
+ function Parameter(ctx, state) {
6285
+ return $EVENT_C(ctx, state, "Parameter", Parameter$$);
6286
+ }
6287
+ var FunctionRestParameter$0 = $TS($S($N(EOS), BindingRestElement, $E(TypeSuffix), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
6198
6288
  var id = $2;
6199
6289
  return {
6200
6290
  type: "FunctionRestParameter",
6201
- children: $0,
6291
+ children: $0.slice(1),
6202
6292
  names: id.names,
6203
6293
  binding: id.binding
6204
6294
  };
@@ -6206,12 +6296,14 @@ ${input.slice(result.pos)}
6206
6296
  function FunctionRestParameter(ctx, state) {
6207
6297
  return $EVENT(ctx, state, "FunctionRestParameter", FunctionRestParameter$0);
6208
6298
  }
6209
- var ParameterElement$0 = $TS($S(__, $E(AccessModifier), $C(BindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6299
+ var ParameterElement$0 = $TS($S($E(_), $E(AccessModifier), $E(_), $C(NWBindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
6300
+ var accessModifier = $2;
6301
+ var binding = $4;
6210
6302
  return {
6211
6303
  type: "Parameter",
6212
6304
  children: $0,
6213
- names: $3.names,
6214
- accessModifier: $2
6305
+ names: binding.names,
6306
+ accessModifier
6215
6307
  };
6216
6308
  });
6217
6309
  function ParameterElement(ctx, state) {
@@ -6606,8 +6698,8 @@ ${input.slice(result.pos)}
6606
6698
  async,
6607
6699
  generator,
6608
6700
  modifier: {
6609
- async: !async.length,
6610
- generator: !generator.length
6701
+ async: !!async.length,
6702
+ generator: !!generator.length
6611
6703
  },
6612
6704
  block: null,
6613
6705
  children: !parameters.implicit ? [async, func, generator, wid, w, parameters, suffix] : [async, func, generator, wid, parameters, w, suffix]
@@ -6630,9 +6722,11 @@ ${input.slice(result.pos)}
6630
6722
  }
6631
6723
  if (hasAwait(block) && !signature.async.length) {
6632
6724
  signature.async.push("async ");
6725
+ signature.modifier.async = true;
6633
6726
  }
6634
6727
  if (hasYield(block) && !signature.generator.length) {
6635
6728
  signature.generator.push("*");
6729
+ signature.modifier.generator = true;
6636
6730
  }
6637
6731
  return {
6638
6732
  ...signature,
@@ -6807,10 +6901,11 @@ ${input.slice(result.pos)}
6807
6901
  function AmpersandBlockRHS(ctx, state) {
6808
6902
  return $EVENT(ctx, state, "AmpersandBlockRHS", AmpersandBlockRHS$0);
6809
6903
  }
6810
- var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3) {
6904
+ var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4) {
6811
6905
  var callExpRest = $1;
6812
6906
  var unaryPostfix = $2;
6813
- var binopRHS = $3;
6907
+ var assign = $3;
6908
+ var binopRHS = $4;
6814
6909
  if (!callExpRest && !binopRHS && !unaryPostfix)
6815
6910
  return $skip;
6816
6911
  const ref = makeRef("$");
@@ -6826,8 +6921,24 @@ ${input.slice(result.pos)}
6826
6921
  if (unaryPostfix) {
6827
6922
  exp = processUnaryExpression([], exp, unaryPostfix);
6828
6923
  }
6924
+ if (assign) {
6925
+ const [op1, more, rhs] = assign;
6926
+ const lhs = [
6927
+ [void 0, exp, ...op1],
6928
+ ...more.map((x) => [x[0], x[1], ...x[2]])
6929
+ ];
6930
+ exp = {
6931
+ type: "AssignmentExpression",
6932
+ children: [lhs, rhs],
6933
+ names: null,
6934
+ lhs,
6935
+ assigned: exp,
6936
+ exp: rhs,
6937
+ ref
6938
+ };
6939
+ }
6829
6940
  if (binopRHS) {
6830
- return {
6941
+ exp = {
6831
6942
  children: processBinaryOpExpression([exp, binopRHS[1]]),
6832
6943
  ref
6833
6944
  };
@@ -10712,6 +10823,12 @@ ${input.slice(result.pos)}
10712
10823
  function Class(ctx, state) {
10713
10824
  return $EVENT(ctx, state, "Class", Class$0);
10714
10825
  }
10826
+ var CloseAngleBracket$0 = $TV($EXPECT($L33, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
10827
+ return { $loc, token: $1 };
10828
+ });
10829
+ function CloseAngleBracket(ctx, state) {
10830
+ return $EVENT(ctx, state, "CloseAngleBracket", CloseAngleBracket$0);
10831
+ }
10715
10832
  var CloseBrace$0 = $TV($EXPECT($L25, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
10716
10833
  return { $loc, token: $1 };
10717
10834
  });
@@ -12510,9 +12627,14 @@ ${input.slice(result.pos)}
12510
12627
  function TypeArrowFunction(ctx, state) {
12511
12628
  return $EVENT(ctx, state, "TypeArrowFunction", TypeArrowFunction$0);
12512
12629
  }
12513
- var TypeArguments$0 = $TS($S($EXPECT($L154, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L33, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
12630
+ var TypeArguments$0 = $TS($S(OpenAngleBracket, $P(TypeArgument), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
12514
12631
  var args = $2;
12515
- return { ts: true, types: args.map(([, t]) => t), children: $0 };
12632
+ return {
12633
+ type: "TypeArguments",
12634
+ ts: true,
12635
+ types: args.map(([, t]) => t),
12636
+ children: $0
12637
+ };
12516
12638
  });
12517
12639
  function TypeArguments(ctx, state) {
12518
12640
  return $EVENT(ctx, state, "TypeArguments", TypeArguments$0);
@@ -12525,7 +12647,7 @@ ${input.slice(result.pos)}
12525
12647
  function TypeArgumentDelimiter(ctx, state) {
12526
12648
  return $EVENT(ctx, state, "TypeArgumentDelimiter", TypeArgumentDelimiter$0);
12527
12649
  }
12528
- var TypeParameters$0 = $TS($S($E(_), $EXPECT($L154, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L33, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12650
+ var TypeParameters$0 = $TS($S($E(_), OpenAngleBracket, $P(TypeParameter), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12529
12651
  var parameters = $3;
12530
12652
  return {
12531
12653
  type: "TypeParameters",
@@ -12558,7 +12680,7 @@ ${input.slice(result.pos)}
12558
12680
  function TypeParameterDelimiter(ctx, state) {
12559
12681
  return $EVENT_C(ctx, state, "TypeParameterDelimiter", TypeParameterDelimiter$$);
12560
12682
  }
12561
- var ThisType$0 = $T($S($C(This, AtThis), Colon, Type, ParameterElementDelimiter), function(value) {
12683
+ var ThisType$0 = $T($S($E(_), $C(This, AtThis), Colon, Type, ParameterElementDelimiter), function(value) {
12562
12684
  return { "type": "ThisType", "ts": true, "children": value };
12563
12685
  });
12564
12686
  function ThisType(ctx, state) {
@@ -13379,6 +13501,10 @@ ${input.slice(result.pos)}
13379
13501
  exports.ShortArrowParameters = ShortArrowParameters;
13380
13502
  exports.ArrowParameters = ArrowParameters;
13381
13503
  exports.NonEmptyParameters = NonEmptyParameters;
13504
+ exports.ParameterList = ParameterList;
13505
+ exports.NestedParameterList = NestedParameterList;
13506
+ exports.NestedParameter = NestedParameter;
13507
+ exports.Parameter = Parameter;
13382
13508
  exports.FunctionRestParameter = FunctionRestParameter;
13383
13509
  exports.ParameterElement = ParameterElement;
13384
13510
  exports.ParameterElementDelimiter = ParameterElementDelimiter;
@@ -13705,6 +13831,7 @@ ${input.slice(result.pos)}
13705
13831
  exports.Case = Case;
13706
13832
  exports.Catch = Catch;
13707
13833
  exports.Class = Class;
13834
+ exports.CloseAngleBracket = CloseAngleBracket;
13708
13835
  exports.CloseBrace = CloseBrace;
13709
13836
  exports.CloseBracket = CloseBracket;
13710
13837
  exports.CloseParen = CloseParen;
package/dist/main.js CHANGED
@@ -3875,6 +3875,10 @@ var require_parser = __commonJS({
3875
3875
  ShortArrowParameters,
3876
3876
  ArrowParameters,
3877
3877
  NonEmptyParameters,
3878
+ ParameterList,
3879
+ NestedParameterList,
3880
+ NestedParameter,
3881
+ Parameter,
3878
3882
  FunctionRestParameter,
3879
3883
  ParameterElement,
3880
3884
  ParameterElementDelimiter,
@@ -4201,6 +4205,7 @@ var require_parser = __commonJS({
4201
4205
  Case,
4202
4206
  Catch,
4203
4207
  Class,
4208
+ CloseAngleBracket,
4204
4209
  CloseBrace,
4205
4210
  CloseBracket,
4206
4211
  CloseParen,
@@ -4672,7 +4677,7 @@ var require_parser = __commonJS({
4672
4677
  var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
4673
4678
  var $R2 = $R(new RegExp("[0-9]", "suy"));
4674
4679
  var $R3 = $R(new RegExp("[ \\t]", "suy"));
4675
- var $R4 = $R(new RegExp("(?=['\"`])", "suy"));
4680
+ var $R4 = $R(new RegExp("(?=['\"`<])", "suy"));
4676
4681
  var $R5 = $R(new RegExp("(?=[\\/?])", "suy"));
4677
4682
  var $R6 = $R(new RegExp("(?=[\\/\\[{?.!@'\u2019:])", "suy"));
4678
4683
  var $R7 = $R(new RegExp("[)}]", "suy"));
@@ -5796,12 +5801,15 @@ var require_parser = __commonJS({
5796
5801
  return $EVENT_C(ctx, state, "CallExpression", CallExpression$$);
5797
5802
  }
5798
5803
  var CallExpressionRest$0 = MemberExpressionRest;
5799
- var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`])/"), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
5800
- var literal = $2;
5804
+ var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`<])/"), $E(TypeArguments), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2, $3) {
5805
+ var args = $2;
5806
+ var literal = $3;
5801
5807
  if (literal.type === "StringLiteral") {
5802
- return "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
5808
+ literal = "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
5803
5809
  }
5804
- return literal;
5810
+ if (!args)
5811
+ return literal;
5812
+ return [args, literal];
5805
5813
  });
5806
5814
  var CallExpressionRest$2 = $TS($S($E(OptionalShorthand), ArgumentsWithTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
5807
5815
  if (!$1)
@@ -6141,15 +6149,55 @@ var require_parser = __commonJS({
6141
6149
  function ArrowParameters(ctx, state) {
6142
6150
  return $EVENT_C(ctx, state, "ArrowParameters", ArrowParameters$$);
6143
6151
  }
6144
- var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, $E(ThisType), $Q(ParameterElement), $E(FunctionRestParameter), $Q(ParameterElement), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
6152
+ var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, ParameterList, $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4) {
6145
6153
  var tp = $1;
6146
6154
  var open = $2;
6147
- var tt = $3;
6148
- var pes = $4;
6149
- var rest = $5;
6150
- var after = $6;
6151
- var close = $7;
6152
- const names = pes.flatMap((p) => p.names);
6155
+ var params = $3;
6156
+ var close = $4;
6157
+ let tt, before = [], rest, after = [], errors = [];
6158
+ function append(p) {
6159
+ (rest ? after : before).push(p);
6160
+ }
6161
+ for (const param of params) {
6162
+ switch (param.type) {
6163
+ case "ThisType":
6164
+ if (tt) {
6165
+ append({
6166
+ type: "Error",
6167
+ message: "Only one typed this parameter is allowed"
6168
+ });
6169
+ append(param);
6170
+ } else {
6171
+ tt = insertTrimmingSpace(param, "");
6172
+ if (before.length || rest) {
6173
+ let delim = tt.children.at(-1);
6174
+ if (Array.isArray(delim))
6175
+ delim = delim.at(-1);
6176
+ if (delim?.token !== ",") {
6177
+ tt = {
6178
+ ...tt,
6179
+ children: [...tt.children, ", "]
6180
+ };
6181
+ }
6182
+ }
6183
+ }
6184
+ break;
6185
+ case "FunctionRestParameter":
6186
+ if (rest) {
6187
+ append({
6188
+ type: "Error",
6189
+ message: "Only one rest parameter is allowed"
6190
+ });
6191
+ append(param);
6192
+ } else {
6193
+ rest = param;
6194
+ }
6195
+ break;
6196
+ default:
6197
+ append(param);
6198
+ }
6199
+ }
6200
+ const names = before.flatMap((p) => p.names);
6153
6201
  if (rest) {
6154
6202
  const restIdentifier = rest.binding.ref || rest.binding;
6155
6203
  names.push(...rest.names || []);
@@ -6166,7 +6214,7 @@ var require_parser = __commonJS({
6166
6214
  tp,
6167
6215
  open,
6168
6216
  tt,
6169
- ...pes,
6217
+ ...before,
6170
6218
  // Remove delimiter
6171
6219
  { ...rest, children: rest.children.slice(0, -1) },
6172
6220
  close
@@ -6178,19 +6226,61 @@ var require_parser = __commonJS({
6178
6226
  }
6179
6227
  return {
6180
6228
  type: "Parameters",
6181
- children: [tp, open, tt, ...pes, close],
6182
- names: pes.flatMap((p) => p.names),
6229
+ children: [tp, open, tt, ...before, close],
6230
+ names,
6183
6231
  tp
6184
6232
  };
6185
6233
  });
6186
6234
  function NonEmptyParameters(ctx, state) {
6187
6235
  return $EVENT(ctx, state, "NonEmptyParameters", NonEmptyParameters$0);
6188
6236
  }
6189
- var FunctionRestParameter$0 = $TS($S(__, BindingRestElement, $E(TypeSuffix), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
6237
+ var ParameterList$0 = $TS($S($Q(Parameter), NestedParameterList), function($skip, $loc, $0, $1, $2) {
6238
+ return [...$1, ...$2];
6239
+ });
6240
+ var ParameterList$1 = $TV($Q($S(__, Parameter)), function($skip, $loc, $0, $1) {
6241
+ return $1.map(([eos, p]) => ({
6242
+ ...p,
6243
+ children: [eos, ...p.children]
6244
+ }));
6245
+ });
6246
+ var ParameterList$$ = [ParameterList$0, ParameterList$1];
6247
+ function ParameterList(ctx, state) {
6248
+ return $EVENT_C(ctx, state, "ParameterList", ParameterList$$);
6249
+ }
6250
+ var NestedParameterList$0 = $TS($S(PushIndent, $Q(NestedParameter), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
6251
+ var params = $2;
6252
+ if (!params.length)
6253
+ return $skip;
6254
+ return params;
6255
+ });
6256
+ function NestedParameterList(ctx, state) {
6257
+ return $EVENT(ctx, state, "NestedParameterList", NestedParameterList$0);
6258
+ }
6259
+ var NestedParameter$0 = $TS($S(Nested, $P(Parameter)), function($skip, $loc, $0, $1, $2) {
6260
+ var ws = $1;
6261
+ var params = $2;
6262
+ params = [...params];
6263
+ params[0] = {
6264
+ ...params[0],
6265
+ children: [ws, ...params[0].children]
6266
+ };
6267
+ return params;
6268
+ });
6269
+ function NestedParameter(ctx, state) {
6270
+ return $EVENT(ctx, state, "NestedParameter", NestedParameter$0);
6271
+ }
6272
+ var Parameter$0 = ThisType;
6273
+ var Parameter$1 = ParameterElement;
6274
+ var Parameter$2 = FunctionRestParameter;
6275
+ var Parameter$$ = [Parameter$0, Parameter$1, Parameter$2];
6276
+ function Parameter(ctx, state) {
6277
+ return $EVENT_C(ctx, state, "Parameter", Parameter$$);
6278
+ }
6279
+ var FunctionRestParameter$0 = $TS($S($N(EOS), BindingRestElement, $E(TypeSuffix), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
6190
6280
  var id = $2;
6191
6281
  return {
6192
6282
  type: "FunctionRestParameter",
6193
- children: $0,
6283
+ children: $0.slice(1),
6194
6284
  names: id.names,
6195
6285
  binding: id.binding
6196
6286
  };
@@ -6198,12 +6288,14 @@ var require_parser = __commonJS({
6198
6288
  function FunctionRestParameter(ctx, state) {
6199
6289
  return $EVENT(ctx, state, "FunctionRestParameter", FunctionRestParameter$0);
6200
6290
  }
6201
- var ParameterElement$0 = $TS($S(__, $E(AccessModifier), $C(BindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6291
+ var ParameterElement$0 = $TS($S($E(_), $E(AccessModifier), $E(_), $C(NWBindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
6292
+ var accessModifier = $2;
6293
+ var binding = $4;
6202
6294
  return {
6203
6295
  type: "Parameter",
6204
6296
  children: $0,
6205
- names: $3.names,
6206
- accessModifier: $2
6297
+ names: binding.names,
6298
+ accessModifier
6207
6299
  };
6208
6300
  });
6209
6301
  function ParameterElement(ctx, state) {
@@ -6598,8 +6690,8 @@ var require_parser = __commonJS({
6598
6690
  async,
6599
6691
  generator,
6600
6692
  modifier: {
6601
- async: !async.length,
6602
- generator: !generator.length
6693
+ async: !!async.length,
6694
+ generator: !!generator.length
6603
6695
  },
6604
6696
  block: null,
6605
6697
  children: !parameters.implicit ? [async, func, generator, wid, w, parameters, suffix] : [async, func, generator, wid, parameters, w, suffix]
@@ -6622,9 +6714,11 @@ var require_parser = __commonJS({
6622
6714
  }
6623
6715
  if (hasAwait(block) && !signature.async.length) {
6624
6716
  signature.async.push("async ");
6717
+ signature.modifier.async = true;
6625
6718
  }
6626
6719
  if (hasYield(block) && !signature.generator.length) {
6627
6720
  signature.generator.push("*");
6721
+ signature.modifier.generator = true;
6628
6722
  }
6629
6723
  return {
6630
6724
  ...signature,
@@ -6799,10 +6893,11 @@ var require_parser = __commonJS({
6799
6893
  function AmpersandBlockRHS(ctx, state) {
6800
6894
  return $EVENT(ctx, state, "AmpersandBlockRHS", AmpersandBlockRHS$0);
6801
6895
  }
6802
- var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3) {
6896
+ var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4) {
6803
6897
  var callExpRest = $1;
6804
6898
  var unaryPostfix = $2;
6805
- var binopRHS = $3;
6899
+ var assign = $3;
6900
+ var binopRHS = $4;
6806
6901
  if (!callExpRest && !binopRHS && !unaryPostfix)
6807
6902
  return $skip;
6808
6903
  const ref = makeRef("$");
@@ -6818,8 +6913,24 @@ var require_parser = __commonJS({
6818
6913
  if (unaryPostfix) {
6819
6914
  exp = processUnaryExpression([], exp, unaryPostfix);
6820
6915
  }
6916
+ if (assign) {
6917
+ const [op1, more, rhs] = assign;
6918
+ const lhs = [
6919
+ [void 0, exp, ...op1],
6920
+ ...more.map((x) => [x[0], x[1], ...x[2]])
6921
+ ];
6922
+ exp = {
6923
+ type: "AssignmentExpression",
6924
+ children: [lhs, rhs],
6925
+ names: null,
6926
+ lhs,
6927
+ assigned: exp,
6928
+ exp: rhs,
6929
+ ref
6930
+ };
6931
+ }
6821
6932
  if (binopRHS) {
6822
- return {
6933
+ exp = {
6823
6934
  children: processBinaryOpExpression([exp, binopRHS[1]]),
6824
6935
  ref
6825
6936
  };
@@ -10704,6 +10815,12 @@ var require_parser = __commonJS({
10704
10815
  function Class(ctx, state) {
10705
10816
  return $EVENT(ctx, state, "Class", Class$0);
10706
10817
  }
10818
+ var CloseAngleBracket$0 = $TV($EXPECT($L33, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
10819
+ return { $loc, token: $1 };
10820
+ });
10821
+ function CloseAngleBracket(ctx, state) {
10822
+ return $EVENT(ctx, state, "CloseAngleBracket", CloseAngleBracket$0);
10823
+ }
10707
10824
  var CloseBrace$0 = $TV($EXPECT($L25, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
10708
10825
  return { $loc, token: $1 };
10709
10826
  });
@@ -12502,9 +12619,14 @@ var require_parser = __commonJS({
12502
12619
  function TypeArrowFunction(ctx, state) {
12503
12620
  return $EVENT(ctx, state, "TypeArrowFunction", TypeArrowFunction$0);
12504
12621
  }
12505
- var TypeArguments$0 = $TS($S($EXPECT($L154, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L33, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
12622
+ var TypeArguments$0 = $TS($S(OpenAngleBracket, $P(TypeArgument), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
12506
12623
  var args = $2;
12507
- return { ts: true, types: args.map(([, t]) => t), children: $0 };
12624
+ return {
12625
+ type: "TypeArguments",
12626
+ ts: true,
12627
+ types: args.map(([, t]) => t),
12628
+ children: $0
12629
+ };
12508
12630
  });
12509
12631
  function TypeArguments(ctx, state) {
12510
12632
  return $EVENT(ctx, state, "TypeArguments", TypeArguments$0);
@@ -12517,7 +12639,7 @@ var require_parser = __commonJS({
12517
12639
  function TypeArgumentDelimiter(ctx, state) {
12518
12640
  return $EVENT(ctx, state, "TypeArgumentDelimiter", TypeArgumentDelimiter$0);
12519
12641
  }
12520
- var TypeParameters$0 = $TS($S($E(_), $EXPECT($L154, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L33, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12642
+ var TypeParameters$0 = $TS($S($E(_), OpenAngleBracket, $P(TypeParameter), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12521
12643
  var parameters = $3;
12522
12644
  return {
12523
12645
  type: "TypeParameters",
@@ -12550,7 +12672,7 @@ var require_parser = __commonJS({
12550
12672
  function TypeParameterDelimiter(ctx, state) {
12551
12673
  return $EVENT_C(ctx, state, "TypeParameterDelimiter", TypeParameterDelimiter$$);
12552
12674
  }
12553
- var ThisType$0 = $T($S($C(This, AtThis), Colon, Type, ParameterElementDelimiter), function(value) {
12675
+ var ThisType$0 = $T($S($E(_), $C(This, AtThis), Colon, Type, ParameterElementDelimiter), function(value) {
12554
12676
  return { "type": "ThisType", "ts": true, "children": value };
12555
12677
  });
12556
12678
  function ThisType(ctx, state) {
@@ -13371,6 +13493,10 @@ var require_parser = __commonJS({
13371
13493
  exports.ShortArrowParameters = ShortArrowParameters;
13372
13494
  exports.ArrowParameters = ArrowParameters;
13373
13495
  exports.NonEmptyParameters = NonEmptyParameters;
13496
+ exports.ParameterList = ParameterList;
13497
+ exports.NestedParameterList = NestedParameterList;
13498
+ exports.NestedParameter = NestedParameter;
13499
+ exports.Parameter = Parameter;
13374
13500
  exports.FunctionRestParameter = FunctionRestParameter;
13375
13501
  exports.ParameterElement = ParameterElement;
13376
13502
  exports.ParameterElementDelimiter = ParameterElementDelimiter;
@@ -13697,6 +13823,7 @@ var require_parser = __commonJS({
13697
13823
  exports.Case = Case;
13698
13824
  exports.Catch = Catch;
13699
13825
  exports.Class = Class;
13826
+ exports.CloseAngleBracket = CloseAngleBracket;
13700
13827
  exports.CloseBrace = CloseBrace;
13701
13828
  exports.CloseBracket = CloseBracket;
13702
13829
  exports.CloseParen = CloseParen;
package/dist/main.mjs CHANGED
@@ -3873,6 +3873,10 @@ var require_parser = __commonJS({
3873
3873
  ShortArrowParameters,
3874
3874
  ArrowParameters,
3875
3875
  NonEmptyParameters,
3876
+ ParameterList,
3877
+ NestedParameterList,
3878
+ NestedParameter,
3879
+ Parameter,
3876
3880
  FunctionRestParameter,
3877
3881
  ParameterElement,
3878
3882
  ParameterElementDelimiter,
@@ -4199,6 +4203,7 @@ var require_parser = __commonJS({
4199
4203
  Case,
4200
4204
  Catch,
4201
4205
  Class,
4206
+ CloseAngleBracket,
4202
4207
  CloseBrace,
4203
4208
  CloseBracket,
4204
4209
  CloseParen,
@@ -4670,7 +4675,7 @@ var require_parser = __commonJS({
4670
4675
  var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
4671
4676
  var $R2 = $R(new RegExp("[0-9]", "suy"));
4672
4677
  var $R3 = $R(new RegExp("[ \\t]", "suy"));
4673
- var $R4 = $R(new RegExp("(?=['\"`])", "suy"));
4678
+ var $R4 = $R(new RegExp("(?=['\"`<])", "suy"));
4674
4679
  var $R5 = $R(new RegExp("(?=[\\/?])", "suy"));
4675
4680
  var $R6 = $R(new RegExp("(?=[\\/\\[{?.!@'\u2019:])", "suy"));
4676
4681
  var $R7 = $R(new RegExp("[)}]", "suy"));
@@ -5794,12 +5799,15 @@ var require_parser = __commonJS({
5794
5799
  return $EVENT_C(ctx, state, "CallExpression", CallExpression$$);
5795
5800
  }
5796
5801
  var CallExpressionRest$0 = MemberExpressionRest;
5797
- var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`])/"), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2) {
5798
- var literal = $2;
5802
+ var CallExpressionRest$1 = $TS($S($EXPECT($R4, "CallExpressionRest /(?=['\"`<])/"), $E(TypeArguments), $C(TemplateLiteral, StringLiteral)), function($skip, $loc, $0, $1, $2, $3) {
5803
+ var args = $2;
5804
+ var literal = $3;
5799
5805
  if (literal.type === "StringLiteral") {
5800
- return "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
5806
+ literal = "`" + literal.token.slice(1, -1).replace(/(`|\$\{)/g, "\\$1") + "`";
5801
5807
  }
5802
- return literal;
5808
+ if (!args)
5809
+ return literal;
5810
+ return [args, literal];
5803
5811
  });
5804
5812
  var CallExpressionRest$2 = $TS($S($E(OptionalShorthand), ArgumentsWithTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
5805
5813
  if (!$1)
@@ -6139,15 +6147,55 @@ var require_parser = __commonJS({
6139
6147
  function ArrowParameters(ctx, state) {
6140
6148
  return $EVENT_C(ctx, state, "ArrowParameters", ArrowParameters$$);
6141
6149
  }
6142
- var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, $E(ThisType), $Q(ParameterElement), $E(FunctionRestParameter), $Q(ParameterElement), $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
6150
+ var NonEmptyParameters$0 = $TS($S($E(TypeParameters), OpenParen, ParameterList, $S(__, CloseParen)), function($skip, $loc, $0, $1, $2, $3, $4) {
6143
6151
  var tp = $1;
6144
6152
  var open = $2;
6145
- var tt = $3;
6146
- var pes = $4;
6147
- var rest = $5;
6148
- var after = $6;
6149
- var close = $7;
6150
- const names = pes.flatMap((p) => p.names);
6153
+ var params = $3;
6154
+ var close = $4;
6155
+ let tt, before = [], rest, after = [], errors = [];
6156
+ function append(p) {
6157
+ (rest ? after : before).push(p);
6158
+ }
6159
+ for (const param of params) {
6160
+ switch (param.type) {
6161
+ case "ThisType":
6162
+ if (tt) {
6163
+ append({
6164
+ type: "Error",
6165
+ message: "Only one typed this parameter is allowed"
6166
+ });
6167
+ append(param);
6168
+ } else {
6169
+ tt = insertTrimmingSpace(param, "");
6170
+ if (before.length || rest) {
6171
+ let delim = tt.children.at(-1);
6172
+ if (Array.isArray(delim))
6173
+ delim = delim.at(-1);
6174
+ if (delim?.token !== ",") {
6175
+ tt = {
6176
+ ...tt,
6177
+ children: [...tt.children, ", "]
6178
+ };
6179
+ }
6180
+ }
6181
+ }
6182
+ break;
6183
+ case "FunctionRestParameter":
6184
+ if (rest) {
6185
+ append({
6186
+ type: "Error",
6187
+ message: "Only one rest parameter is allowed"
6188
+ });
6189
+ append(param);
6190
+ } else {
6191
+ rest = param;
6192
+ }
6193
+ break;
6194
+ default:
6195
+ append(param);
6196
+ }
6197
+ }
6198
+ const names = before.flatMap((p) => p.names);
6151
6199
  if (rest) {
6152
6200
  const restIdentifier = rest.binding.ref || rest.binding;
6153
6201
  names.push(...rest.names || []);
@@ -6164,7 +6212,7 @@ var require_parser = __commonJS({
6164
6212
  tp,
6165
6213
  open,
6166
6214
  tt,
6167
- ...pes,
6215
+ ...before,
6168
6216
  // Remove delimiter
6169
6217
  { ...rest, children: rest.children.slice(0, -1) },
6170
6218
  close
@@ -6176,19 +6224,61 @@ var require_parser = __commonJS({
6176
6224
  }
6177
6225
  return {
6178
6226
  type: "Parameters",
6179
- children: [tp, open, tt, ...pes, close],
6180
- names: pes.flatMap((p) => p.names),
6227
+ children: [tp, open, tt, ...before, close],
6228
+ names,
6181
6229
  tp
6182
6230
  };
6183
6231
  });
6184
6232
  function NonEmptyParameters(ctx, state) {
6185
6233
  return $EVENT(ctx, state, "NonEmptyParameters", NonEmptyParameters$0);
6186
6234
  }
6187
- var FunctionRestParameter$0 = $TS($S(__, BindingRestElement, $E(TypeSuffix), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
6235
+ var ParameterList$0 = $TS($S($Q(Parameter), NestedParameterList), function($skip, $loc, $0, $1, $2) {
6236
+ return [...$1, ...$2];
6237
+ });
6238
+ var ParameterList$1 = $TV($Q($S(__, Parameter)), function($skip, $loc, $0, $1) {
6239
+ return $1.map(([eos, p]) => ({
6240
+ ...p,
6241
+ children: [eos, ...p.children]
6242
+ }));
6243
+ });
6244
+ var ParameterList$$ = [ParameterList$0, ParameterList$1];
6245
+ function ParameterList(ctx, state) {
6246
+ return $EVENT_C(ctx, state, "ParameterList", ParameterList$$);
6247
+ }
6248
+ var NestedParameterList$0 = $TS($S(PushIndent, $Q(NestedParameter), PopIndent), function($skip, $loc, $0, $1, $2, $3) {
6249
+ var params = $2;
6250
+ if (!params.length)
6251
+ return $skip;
6252
+ return params;
6253
+ });
6254
+ function NestedParameterList(ctx, state) {
6255
+ return $EVENT(ctx, state, "NestedParameterList", NestedParameterList$0);
6256
+ }
6257
+ var NestedParameter$0 = $TS($S(Nested, $P(Parameter)), function($skip, $loc, $0, $1, $2) {
6258
+ var ws = $1;
6259
+ var params = $2;
6260
+ params = [...params];
6261
+ params[0] = {
6262
+ ...params[0],
6263
+ children: [ws, ...params[0].children]
6264
+ };
6265
+ return params;
6266
+ });
6267
+ function NestedParameter(ctx, state) {
6268
+ return $EVENT(ctx, state, "NestedParameter", NestedParameter$0);
6269
+ }
6270
+ var Parameter$0 = ThisType;
6271
+ var Parameter$1 = ParameterElement;
6272
+ var Parameter$2 = FunctionRestParameter;
6273
+ var Parameter$$ = [Parameter$0, Parameter$1, Parameter$2];
6274
+ function Parameter(ctx, state) {
6275
+ return $EVENT_C(ctx, state, "Parameter", Parameter$$);
6276
+ }
6277
+ var FunctionRestParameter$0 = $TS($S($N(EOS), BindingRestElement, $E(TypeSuffix), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4) {
6188
6278
  var id = $2;
6189
6279
  return {
6190
6280
  type: "FunctionRestParameter",
6191
- children: $0,
6281
+ children: $0.slice(1),
6192
6282
  names: id.names,
6193
6283
  binding: id.binding
6194
6284
  };
@@ -6196,12 +6286,14 @@ var require_parser = __commonJS({
6196
6286
  function FunctionRestParameter(ctx, state) {
6197
6287
  return $EVENT(ctx, state, "FunctionRestParameter", FunctionRestParameter$0);
6198
6288
  }
6199
- var ParameterElement$0 = $TS($S(__, $E(AccessModifier), $C(BindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
6289
+ var ParameterElement$0 = $TS($S($E(_), $E(AccessModifier), $E(_), $C(NWBindingIdentifier, BindingPattern), $E(TypeSuffix), $E(Initializer), ParameterElementDelimiter), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
6290
+ var accessModifier = $2;
6291
+ var binding = $4;
6200
6292
  return {
6201
6293
  type: "Parameter",
6202
6294
  children: $0,
6203
- names: $3.names,
6204
- accessModifier: $2
6295
+ names: binding.names,
6296
+ accessModifier
6205
6297
  };
6206
6298
  });
6207
6299
  function ParameterElement(ctx, state) {
@@ -6596,8 +6688,8 @@ var require_parser = __commonJS({
6596
6688
  async,
6597
6689
  generator,
6598
6690
  modifier: {
6599
- async: !async.length,
6600
- generator: !generator.length
6691
+ async: !!async.length,
6692
+ generator: !!generator.length
6601
6693
  },
6602
6694
  block: null,
6603
6695
  children: !parameters.implicit ? [async, func, generator, wid, w, parameters, suffix] : [async, func, generator, wid, parameters, w, suffix]
@@ -6620,9 +6712,11 @@ var require_parser = __commonJS({
6620
6712
  }
6621
6713
  if (hasAwait(block) && !signature.async.length) {
6622
6714
  signature.async.push("async ");
6715
+ signature.modifier.async = true;
6623
6716
  }
6624
6717
  if (hasYield(block) && !signature.generator.length) {
6625
6718
  signature.generator.push("*");
6719
+ signature.modifier.generator = true;
6626
6720
  }
6627
6721
  return {
6628
6722
  ...signature,
@@ -6797,10 +6891,11 @@ var require_parser = __commonJS({
6797
6891
  function AmpersandBlockRHS(ctx, state) {
6798
6892
  return $EVENT(ctx, state, "AmpersandBlockRHS", AmpersandBlockRHS$0);
6799
6893
  }
6800
- var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3) {
6894
+ var AmpersandBlockRHSBody$0 = $TS($S($E($S($N(_), $P(CallExpressionRest))), $E(QuestionMark), $E($S(WAssignmentOp, $Q($S(NotDedented, UpdateExpression, WAssignmentOp)), NonPipelineExtendedExpression)), $E($S($N($EXPECT($R8, "AmpersandBlockRHSBody /[&]/")), $P(BinaryOpRHS)))), function($skip, $loc, $0, $1, $2, $3, $4) {
6801
6895
  var callExpRest = $1;
6802
6896
  var unaryPostfix = $2;
6803
- var binopRHS = $3;
6897
+ var assign = $3;
6898
+ var binopRHS = $4;
6804
6899
  if (!callExpRest && !binopRHS && !unaryPostfix)
6805
6900
  return $skip;
6806
6901
  const ref = makeRef("$");
@@ -6816,8 +6911,24 @@ var require_parser = __commonJS({
6816
6911
  if (unaryPostfix) {
6817
6912
  exp = processUnaryExpression([], exp, unaryPostfix);
6818
6913
  }
6914
+ if (assign) {
6915
+ const [op1, more, rhs] = assign;
6916
+ const lhs = [
6917
+ [void 0, exp, ...op1],
6918
+ ...more.map((x) => [x[0], x[1], ...x[2]])
6919
+ ];
6920
+ exp = {
6921
+ type: "AssignmentExpression",
6922
+ children: [lhs, rhs],
6923
+ names: null,
6924
+ lhs,
6925
+ assigned: exp,
6926
+ exp: rhs,
6927
+ ref
6928
+ };
6929
+ }
6819
6930
  if (binopRHS) {
6820
- return {
6931
+ exp = {
6821
6932
  children: processBinaryOpExpression([exp, binopRHS[1]]),
6822
6933
  ref
6823
6934
  };
@@ -10702,6 +10813,12 @@ var require_parser = __commonJS({
10702
10813
  function Class(ctx, state) {
10703
10814
  return $EVENT(ctx, state, "Class", Class$0);
10704
10815
  }
10816
+ var CloseAngleBracket$0 = $TV($EXPECT($L33, 'CloseAngleBracket ">"'), function($skip, $loc, $0, $1) {
10817
+ return { $loc, token: $1 };
10818
+ });
10819
+ function CloseAngleBracket(ctx, state) {
10820
+ return $EVENT(ctx, state, "CloseAngleBracket", CloseAngleBracket$0);
10821
+ }
10705
10822
  var CloseBrace$0 = $TV($EXPECT($L25, 'CloseBrace "}"'), function($skip, $loc, $0, $1) {
10706
10823
  return { $loc, token: $1 };
10707
10824
  });
@@ -12500,9 +12617,14 @@ var require_parser = __commonJS({
12500
12617
  function TypeArrowFunction(ctx, state) {
12501
12618
  return $EVENT(ctx, state, "TypeArrowFunction", TypeArrowFunction$0);
12502
12619
  }
12503
- var TypeArguments$0 = $TS($S($EXPECT($L154, 'TypeArguments "<"'), $P(TypeArgument), __, $EXPECT($L33, 'TypeArguments ">"')), function($skip, $loc, $0, $1, $2, $3, $4) {
12620
+ var TypeArguments$0 = $TS($S(OpenAngleBracket, $P(TypeArgument), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4) {
12504
12621
  var args = $2;
12505
- return { ts: true, types: args.map(([, t]) => t), children: $0 };
12622
+ return {
12623
+ type: "TypeArguments",
12624
+ ts: true,
12625
+ types: args.map(([, t]) => t),
12626
+ children: $0
12627
+ };
12506
12628
  });
12507
12629
  function TypeArguments(ctx, state) {
12508
12630
  return $EVENT(ctx, state, "TypeArguments", TypeArguments$0);
@@ -12515,7 +12637,7 @@ var require_parser = __commonJS({
12515
12637
  function TypeArgumentDelimiter(ctx, state) {
12516
12638
  return $EVENT(ctx, state, "TypeArgumentDelimiter", TypeArgumentDelimiter$0);
12517
12639
  }
12518
- var TypeParameters$0 = $TS($S($E(_), $EXPECT($L154, 'TypeParameters "<"'), $P(TypeParameter), __, $EXPECT($L33, 'TypeParameters ">"')), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12640
+ var TypeParameters$0 = $TS($S($E(_), OpenAngleBracket, $P(TypeParameter), __, CloseAngleBracket), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12519
12641
  var parameters = $3;
12520
12642
  return {
12521
12643
  type: "TypeParameters",
@@ -12548,7 +12670,7 @@ var require_parser = __commonJS({
12548
12670
  function TypeParameterDelimiter(ctx, state) {
12549
12671
  return $EVENT_C(ctx, state, "TypeParameterDelimiter", TypeParameterDelimiter$$);
12550
12672
  }
12551
- var ThisType$0 = $T($S($C(This, AtThis), Colon, Type, ParameterElementDelimiter), function(value) {
12673
+ var ThisType$0 = $T($S($E(_), $C(This, AtThis), Colon, Type, ParameterElementDelimiter), function(value) {
12552
12674
  return { "type": "ThisType", "ts": true, "children": value };
12553
12675
  });
12554
12676
  function ThisType(ctx, state) {
@@ -13369,6 +13491,10 @@ var require_parser = __commonJS({
13369
13491
  exports.ShortArrowParameters = ShortArrowParameters;
13370
13492
  exports.ArrowParameters = ArrowParameters;
13371
13493
  exports.NonEmptyParameters = NonEmptyParameters;
13494
+ exports.ParameterList = ParameterList;
13495
+ exports.NestedParameterList = NestedParameterList;
13496
+ exports.NestedParameter = NestedParameter;
13497
+ exports.Parameter = Parameter;
13372
13498
  exports.FunctionRestParameter = FunctionRestParameter;
13373
13499
  exports.ParameterElement = ParameterElement;
13374
13500
  exports.ParameterElementDelimiter = ParameterElementDelimiter;
@@ -13695,6 +13821,7 @@ var require_parser = __commonJS({
13695
13821
  exports.Case = Case;
13696
13822
  exports.Catch = Catch;
13697
13823
  exports.Class = Class;
13824
+ exports.CloseAngleBracket = CloseAngleBracket;
13698
13825
  exports.CloseBrace = CloseBrace;
13699
13826
  exports.CloseBracket = CloseBracket;
13700
13827
  exports.CloseParen = CloseParen;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@danielx/civet",
3
3
  "type": "commonjs",
4
- "version": "0.6.51",
4
+ "version": "0.6.52",
5
5
  "description": "CoffeeScript style syntax for TypeScript",
6
6
  "main": "dist/main.js",
7
7
  "module": "dist/main.mjs",