@danielx/civet 0.6.86 → 0.6.87

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.js CHANGED
@@ -3199,8 +3199,11 @@ function addPostfixStatement(statement, ws, post) {
3199
3199
  return post;
3200
3200
  }
3201
3201
  function adjustIndexAccess(dot) {
3202
- if (gatherRecursive(dot, (node) => node.token === "?").length) {
3203
- dot = [...dot, "["];
3202
+ if (dot.optional) {
3203
+ return {
3204
+ ...dot,
3205
+ children: [...dot.children, "["]
3206
+ };
3204
3207
  } else {
3205
3208
  dot = replaceNodes(
3206
3209
  deepCopy(dot),
@@ -3721,108 +3724,231 @@ function processAssignments(statements) {
3721
3724
  if (pre.length)
3722
3725
  exp.children.unshift(...pre);
3723
3726
  if (post.length)
3724
- return exp.children.push(...post);
3725
- return;
3726
- });
3727
- replaceNodesRecursive(statements, (n) => n.type === "AssignmentExpression" && n.names === null, (exp) => {
3728
- let { lhs: $1, exp: $2 } = exp, tail = [], i = 0, len = $1.length;
3729
- let block;
3730
- if (exp.parent.type === "BlockStatement" && !$1.at(-1)?.at(-1)?.special) {
3731
- block = makeBlockFragment();
3732
- let ref4;
3733
- if (ref4 = prependStatementExpressionBlock([null, null, $2], block)) {
3734
- const ref = ref4;
3735
- exp.children = exp.children.map(function(c) {
3736
- if (c === $2)
3737
- return ref;
3738
- else
3727
+ exp.children.push(...post);
3728
+ if (exp.type === "UpdateExpression") {
3729
+ const { assigned } = exp;
3730
+ const ref = makeRef();
3731
+ const newMemberExp = unchainOptionalMemberExpression(assigned, ref, (children) => {
3732
+ return exp.children.map((c) => {
3733
+ if (c === assigned) {
3734
+ return children;
3735
+ } else {
3739
3736
  return c;
3737
+ }
3740
3738
  });
3741
- $2 = ref;
3742
- } else {
3743
- block = void 0;
3739
+ });
3740
+ if (newMemberExp !== assigned) {
3741
+ if (newMemberExp.usesRef) {
3742
+ newMemberExp.hoistDec = {
3743
+ type: "Declaration",
3744
+ children: ["let ", ref],
3745
+ names: []
3746
+ };
3747
+ }
3748
+ return replaceNode(exp, newMemberExp);
3744
3749
  }
3750
+ ;
3751
+ return;
3745
3752
  }
3746
- if ($1.some((left) => left[left.length - 1].special)) {
3747
- if ($1.length !== 1)
3748
- throw new Error("Only one assignment with id= is allowed");
3749
- const [, lhs, , op] = $1[0];
3750
- const { call, omitLhs } = op;
3751
- const index2 = exp.children.indexOf($2);
3752
- if (index2 < 0)
3753
- throw new Error("Assertion error: exp not in AssignmentExpression");
3754
- exp.children.splice(
3755
- index2,
3756
- 1,
3757
- exp.exp = $2 = [call, "(", lhs, ", ", $2, ")"]
3758
- );
3759
- if (omitLhs) {
3760
- return $2;
3753
+ ;
3754
+ return;
3755
+ });
3756
+ replaceNodesRecursive(
3757
+ statements,
3758
+ (n) => n.type === "AssignmentExpression" && n.names === null,
3759
+ (exp) => {
3760
+ let { lhs: $1, exp: $2 } = exp, tail = [], i = 0, len = $1.length;
3761
+ let block;
3762
+ if (exp.parent.type === "BlockStatement" && !$1.at(-1)?.at(-1)?.special) {
3763
+ block = makeBlockFragment();
3764
+ let ref4;
3765
+ if (ref4 = prependStatementExpressionBlock([null, null, $2], block)) {
3766
+ const ref = ref4;
3767
+ exp.children = exp.children.map(function(c) {
3768
+ if (c === $2)
3769
+ return ref;
3770
+ else
3771
+ return c;
3772
+ });
3773
+ $2 = ref;
3774
+ } else {
3775
+ block = void 0;
3776
+ }
3761
3777
  }
3762
- }
3763
- let wrapped = false;
3764
- while (i < len) {
3765
- const lastAssignment = $1[i++];
3766
- const [, lhs, , op] = lastAssignment;
3767
- if (op.token !== "=")
3768
- continue;
3769
- if (lhs.type === "ObjectExpression" || lhs.type === "ObjectBindingPattern") {
3770
- if (!wrapped) {
3771
- wrapped = true;
3772
- lhs.children.splice(0, 0, "(");
3773
- tail.push(")");
3778
+ if ($1.some((left) => left[left.length - 1].special)) {
3779
+ if ($1.length !== 1)
3780
+ throw new Error("Only one assignment with id= is allowed");
3781
+ const [, lhs, , op] = $1[0];
3782
+ const { call, omitLhs } = op;
3783
+ const index2 = exp.children.indexOf($2);
3784
+ if (index2 < 0)
3785
+ throw new Error("Assertion error: exp not in AssignmentExpression");
3786
+ exp.children.splice(
3787
+ index2,
3788
+ 1,
3789
+ exp.exp = $2 = [call, "(", lhs, ", ", $2, ")"]
3790
+ );
3791
+ if (omitLhs) {
3792
+ return $2;
3774
3793
  }
3775
3794
  }
3776
- }
3777
- i = len - 1;
3778
- while (i >= 0) {
3779
- const lastAssignment = $1[i];
3780
- if (lastAssignment[3].token === "=") {
3781
- const lhs = lastAssignment[1];
3782
- if (lhs.type === "MemberExpression") {
3783
- const members = lhs.children;
3784
- const lastMember = members[members.length - 1];
3785
- if (lastMember.type === "SliceExpression") {
3786
- const { start, end, children: c } = lastMember;
3787
- c[0].token = ".splice(";
3788
- c[1] = start;
3789
- c[2] = ", ";
3790
- if (end) {
3791
- c[3] = [end, " - ", start];
3792
- } else {
3793
- c[3] = ["1/0"];
3794
- }
3795
- c[4] = [", ...", $2];
3796
- c[5] = ")";
3797
- lastAssignment.pop();
3798
- if (isWhitespaceOrEmpty(lastAssignment[2]))
3795
+ let wrapped = false;
3796
+ while (i < len) {
3797
+ const lastAssignment = $1[i++];
3798
+ const [, lhs, , op] = lastAssignment;
3799
+ if (op.token !== "=")
3800
+ continue;
3801
+ if (lhs.type === "ObjectExpression" || lhs.type === "ObjectBindingPattern") {
3802
+ if (!wrapped) {
3803
+ wrapped = true;
3804
+ lhs.children.splice(0, 0, "(");
3805
+ tail.push(")");
3806
+ }
3807
+ }
3808
+ }
3809
+ i = len - 1;
3810
+ while (i >= 0) {
3811
+ const lastAssignment = $1[i];
3812
+ if (lastAssignment[3].token === "=") {
3813
+ const lhs = lastAssignment[1];
3814
+ if (lhs.type === "MemberExpression") {
3815
+ const members = lhs.children;
3816
+ const lastMember = members[members.length - 1];
3817
+ if (lastMember.type === "SliceExpression") {
3818
+ const { start, end, children: c } = lastMember;
3819
+ c[0].token = ".splice(";
3820
+ c[1] = start;
3821
+ c[2] = ", ";
3822
+ if (end) {
3823
+ c[3] = [end, " - ", start];
3824
+ } else {
3825
+ c[3] = ["1/0"];
3826
+ }
3827
+ c[4] = [", ...", $2];
3828
+ c[5] = ")";
3799
3829
  lastAssignment.pop();
3800
- if ($1.length > 1) {
3801
- throw new Error("Not implemented yet! TODO: Handle multiple splice assignments");
3830
+ if (isWhitespaceOrEmpty(lastAssignment[2]))
3831
+ lastAssignment.pop();
3832
+ if ($1.length > 1) {
3833
+ throw new Error("Not implemented yet! TODO: Handle multiple splice assignments");
3834
+ }
3835
+ exp.children = [$1];
3836
+ exp.names = [];
3837
+ return exp;
3802
3838
  }
3803
- exp.children = [$1];
3804
- exp.names = [];
3805
- return exp;
3839
+ } else if (lhs.type === "ObjectBindingPattern" || lhs.type === "ArrayBindingPattern") {
3840
+ processBindingPatternLHS(lhs, tail);
3806
3841
  }
3807
- } else if (lhs.type === "ObjectBindingPattern" || lhs.type === "ArrayBindingPattern") {
3808
- processBindingPatternLHS(lhs, tail);
3809
3842
  }
3843
+ i--;
3810
3844
  }
3811
- i--;
3845
+ i = len - 1;
3846
+ const optionalChainRef = makeRef();
3847
+ while (i >= 0) {
3848
+ const assignment = $1[i];
3849
+ const [ws1, lhs, ws2, op] = assignment;
3850
+ if (lhs.type === "MemberExpression" || lhs.type === "CallExpression") {
3851
+ const newMemberExp = unchainOptionalMemberExpression(lhs, optionalChainRef, (children) => {
3852
+ const assigns = $1.splice(i + 1, len - 1 - i);
3853
+ $1.pop();
3854
+ return [ws1, ...children, ws2, op, ...assigns, $2];
3855
+ });
3856
+ if (newMemberExp !== lhs) {
3857
+ if (newMemberExp.usesRef) {
3858
+ exp.hoistDec = {
3859
+ type: "Declaration",
3860
+ children: ["let ", optionalChainRef],
3861
+ names: []
3862
+ };
3863
+ }
3864
+ replaceNode($2, newMemberExp);
3865
+ newMemberExp.parent = exp;
3866
+ $2 = newMemberExp;
3867
+ }
3868
+ }
3869
+ i--;
3870
+ }
3871
+ exp.names = $1.flatMap(([, l]) => l.names || []);
3872
+ const index = exp.children.indexOf($2);
3873
+ if (index < 0)
3874
+ throw new Error("Assertion error: exp not in AssignmentExpression");
3875
+ exp.children.splice(index + 1, 0, ...tail);
3876
+ if (block) {
3877
+ block.parent = exp.parent;
3878
+ block.expressions.push(["", exp]);
3879
+ exp.parent = block;
3880
+ return block;
3881
+ }
3882
+ return exp;
3812
3883
  }
3813
- exp.names = $1.flatMap(([, l]) => l.names || []);
3814
- const index = exp.children.indexOf($2);
3815
- if (index < 0)
3816
- throw new Error("Assertion error: exp not in AssignmentExpression");
3817
- exp.children.splice(index + 1, 0, ...tail);
3818
- if (block) {
3819
- block.parent = exp.parent;
3820
- block.expressions.push(["", exp]);
3821
- exp.parent = block;
3822
- return block;
3884
+ );
3885
+ }
3886
+ function unchainOptionalMemberExpression(exp, ref, innerExp) {
3887
+ let j = 0;
3888
+ const { children } = exp;
3889
+ let usesRef = false;
3890
+ const conditions = [];
3891
+ while (j < children.length) {
3892
+ const child = children[j];
3893
+ const type = child?.type;
3894
+ let hasOptional = false;
3895
+ switch (type) {
3896
+ case "PropertyAccess": {
3897
+ if (child.dot?.optional) {
3898
+ hasOptional = true;
3899
+ child.dot.children.shift();
3900
+ child.dot.optional = false;
3901
+ }
3902
+ ;
3903
+ break;
3904
+ }
3905
+ case "Call":
3906
+ case "Index": {
3907
+ if (child.optional) {
3908
+ hasOptional = true;
3909
+ child.children.shift();
3910
+ child.optional = void 0;
3911
+ }
3912
+ ;
3913
+ break;
3914
+ }
3823
3915
  }
3916
+ if (hasOptional) {
3917
+ let base;
3918
+ if (j > 1 || needsRef(children[0])) {
3919
+ usesRef = true;
3920
+ base = makeLeftHandSideExpression({
3921
+ type: "AssignmentExpression",
3922
+ children: [ref, " = ", children.splice(0, j)]
3923
+ });
3924
+ base.parent = child;
3925
+ children.unshift(ref);
3926
+ j = 0;
3927
+ } else {
3928
+ base = children[0];
3929
+ }
3930
+ conditions.push([base, " != null"]);
3931
+ }
3932
+ j++;
3933
+ }
3934
+ let ref5;
3935
+ if (ref5 = conditions.length) {
3936
+ const l = ref5;
3937
+ const cs = conditions.map((c, i) => {
3938
+ if (i === l - 1) {
3939
+ return c;
3940
+ } else {
3941
+ return [c, " && "];
3942
+ }
3943
+ });
3944
+ return {
3945
+ ...exp,
3946
+ children: [...cs, " ? ", innerExp(children), " : void 0"],
3947
+ usesRef
3948
+ };
3949
+ } else {
3824
3950
  return exp;
3825
- });
3951
+ }
3826
3952
  }
3827
3953
  function attachPostfixStatementAsExpression(exp, post) {
3828
3954
  const postfixStatement = post[1];
@@ -3888,11 +4014,11 @@ function processStatementExpressions(statements) {
3888
4014
  if (!(exp.children[0] === exp.statement)) {
3889
4015
  ws = exp.children[0];
3890
4016
  }
3891
- let ref5;
4017
+ let ref6;
3892
4018
  switch (statement.type) {
3893
4019
  case "IfStatement": {
3894
- if (ref5 = expressionizeIfStatement(statement)) {
3895
- const expression = ref5;
4020
+ if (ref6 = expressionizeIfStatement(statement)) {
4021
+ const expression = ref6;
3896
4022
  exp.statement = expression;
3897
4023
  exp.children = [exp.statement];
3898
4024
  } else {
@@ -4197,9 +4323,9 @@ var init_lib = __esm({
4197
4323
  }
4198
4324
  });
4199
4325
 
4200
- // ../Hera/dist/machine.js
4326
+ // node_modules/@danielx/hera/dist/machine.js
4201
4327
  var require_machine = __commonJS({
4202
- "../Hera/dist/machine.js"(exports2, module2) {
4328
+ "node_modules/@danielx/hera/dist/machine.js"(exports2, module2) {
4203
4329
  "use strict";
4204
4330
  var __defProp2 = Object.defineProperty;
4205
4331
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
@@ -4670,6 +4796,8 @@ var require_parser = __commonJS({
4670
4796
  $TV,
4671
4797
  $Y,
4672
4798
  Parser,
4799
+ ParserContext,
4800
+ ParserOptions,
4673
4801
  Validator
4674
4802
  } = require_machine();
4675
4803
  var grammar = {
@@ -5174,6 +5302,7 @@ var require_parser = __commonJS({
5174
5302
  OpenBracket,
5175
5303
  OpenParen,
5176
5304
  Operator,
5305
+ Override,
5177
5306
  Own,
5178
5307
  Public,
5179
5308
  Private,
@@ -5571,59 +5700,60 @@ var require_parser = __commonJS({
5571
5700
  var $L170 = $L("of");
5572
5701
  var $L171 = $L("[");
5573
5702
  var $L172 = $L("operator");
5574
- var $L173 = $L("own");
5575
- var $L174 = $L("public");
5576
- var $L175 = $L("private");
5577
- var $L176 = $L("protected");
5578
- var $L177 = $L("||>");
5579
- var $L178 = $L("|\u25B7");
5580
- var $L179 = $L("|>=");
5581
- var $L180 = $L("\u25B7=");
5582
- var $L181 = $L("|>");
5583
- var $L182 = $L("\u25B7");
5584
- var $L183 = $L("readonly");
5585
- var $L184 = $L("return");
5586
- var $L185 = $L("satisfies");
5587
- var $L186 = $L("'");
5588
- var $L187 = $L("static");
5589
- var $L188 = $L("${");
5590
- var $L189 = $L("super");
5591
- var $L190 = $L("switch");
5592
- var $L191 = $L("target");
5593
- var $L192 = $L("then");
5594
- var $L193 = $L("this");
5595
- var $L194 = $L("throw");
5596
- var $L195 = $L('"""');
5597
- var $L196 = $L("'''");
5598
- var $L197 = $L("///");
5599
- var $L198 = $L("```");
5600
- var $L199 = $L("try");
5601
- var $L200 = $L("typeof");
5602
- var $L201 = $L("unless");
5603
- var $L202 = $L("until");
5604
- var $L203 = $L("using");
5605
- var $L204 = $L("var");
5606
- var $L205 = $L("void");
5607
- var $L206 = $L("when");
5608
- var $L207 = $L("while");
5609
- var $L208 = $L("yield");
5610
- var $L209 = $L("/>");
5611
- var $L210 = $L("</");
5612
- var $L211 = $L("<>");
5613
- var $L212 = $L("</>");
5614
- var $L213 = $L("<!--");
5615
- var $L214 = $L("-->");
5616
- var $L215 = $L("type");
5617
- var $L216 = $L("enum");
5618
- var $L217 = $L("interface");
5619
- var $L218 = $L("global");
5620
- var $L219 = $L("module");
5621
- var $L220 = $L("namespace");
5622
- var $L221 = $L("asserts");
5623
- var $L222 = $L("keyof");
5624
- var $L223 = $L("???");
5625
- var $L224 = $L("[]");
5626
- var $L225 = $L("civet");
5703
+ var $L173 = $L("override");
5704
+ var $L174 = $L("own");
5705
+ var $L175 = $L("public");
5706
+ var $L176 = $L("private");
5707
+ var $L177 = $L("protected");
5708
+ var $L178 = $L("||>");
5709
+ var $L179 = $L("|\u25B7");
5710
+ var $L180 = $L("|>=");
5711
+ var $L181 = $L("\u25B7=");
5712
+ var $L182 = $L("|>");
5713
+ var $L183 = $L("\u25B7");
5714
+ var $L184 = $L("readonly");
5715
+ var $L185 = $L("return");
5716
+ var $L186 = $L("satisfies");
5717
+ var $L187 = $L("'");
5718
+ var $L188 = $L("static");
5719
+ var $L189 = $L("${");
5720
+ var $L190 = $L("super");
5721
+ var $L191 = $L("switch");
5722
+ var $L192 = $L("target");
5723
+ var $L193 = $L("then");
5724
+ var $L194 = $L("this");
5725
+ var $L195 = $L("throw");
5726
+ var $L196 = $L('"""');
5727
+ var $L197 = $L("'''");
5728
+ var $L198 = $L("///");
5729
+ var $L199 = $L("```");
5730
+ var $L200 = $L("try");
5731
+ var $L201 = $L("typeof");
5732
+ var $L202 = $L("unless");
5733
+ var $L203 = $L("until");
5734
+ var $L204 = $L("using");
5735
+ var $L205 = $L("var");
5736
+ var $L206 = $L("void");
5737
+ var $L207 = $L("when");
5738
+ var $L208 = $L("while");
5739
+ var $L209 = $L("yield");
5740
+ var $L210 = $L("/>");
5741
+ var $L211 = $L("</");
5742
+ var $L212 = $L("<>");
5743
+ var $L213 = $L("</>");
5744
+ var $L214 = $L("<!--");
5745
+ var $L215 = $L("-->");
5746
+ var $L216 = $L("type");
5747
+ var $L217 = $L("enum");
5748
+ var $L218 = $L("interface");
5749
+ var $L219 = $L("global");
5750
+ var $L220 = $L("module");
5751
+ var $L221 = $L("namespace");
5752
+ var $L222 = $L("asserts");
5753
+ var $L223 = $L("keyof");
5754
+ var $L224 = $L("???");
5755
+ var $L225 = $L("[]");
5756
+ var $L226 = $L("civet");
5627
5757
  var $R0 = $R(new RegExp("(?=async|debugger|if|unless|do|for|loop|until|while|switch|throw|try)", "suy"));
5628
5758
  var $R1 = $R(new RegExp("(as|of|satisfies|then|when|implements|xor|xnor)(?!\\p{ID_Continue}|[\\u200C\\u200D$])", "suy"));
5629
5759
  var $R2 = $R(new RegExp("[0-9]", "suy"));
@@ -6708,9 +6838,9 @@ var require_parser = __commonJS({
6708
6838
  function NestedClassElement(ctx, state) {
6709
6839
  return $EVENT(ctx, state, "NestedClassElement", NestedClassElement$0);
6710
6840
  }
6711
- var ClassElement$0 = $TS($S($E(Decorators), $E(AccessModifier), $E($S(Static, $E(_))), ClassElementDefinition), function($skip, $loc, $0, $1, $2, $3, $4) {
6841
+ var ClassElement$0 = $TS($S($E(Decorators), $E(AccessModifier), $E($S(Static, $E(_))), $E($S(Override, $E(_))), ClassElementDefinition), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
6712
6842
  var decorators = $1;
6713
- var definition = $4;
6843
+ var definition = $5;
6714
6844
  if (definition.type === "MultiMethodDefinition") {
6715
6845
  return {
6716
6846
  ...definition,
@@ -6724,7 +6854,7 @@ var require_parser = __commonJS({
6724
6854
  }
6725
6855
  return {
6726
6856
  ...definition,
6727
- children: [decorators, $2, $3, ...definition.children]
6857
+ children: [decorators, $2, $3, $4, ...definition.children]
6728
6858
  };
6729
6859
  });
6730
6860
  var ClassElement$1 = $TS($S(Static, BracedBlock), function($skip, $loc, $0, $1, $2) {
@@ -6766,7 +6896,7 @@ var require_parser = __commonJS({
6766
6896
  function NestedClassSignatureElement(ctx, state) {
6767
6897
  return $EVENT(ctx, state, "NestedClassSignatureElement", NestedClassSignatureElement$0);
6768
6898
  }
6769
- var ClassSignatureElement$0 = $S($E(Decorators), $E(AccessModifier), $E($S(Static, $E(_))), $C(MethodSignature, FieldDefinition));
6899
+ var ClassSignatureElement$0 = $S($E(Decorators), $E(AccessModifier), $E($S(Static, $E(_))), $E($S(Override, $E(_))), $C(MethodSignature, FieldDefinition));
6770
6900
  var ClassSignatureElement$1 = $S(Static, ClassSignatureBody);
6771
6901
  var ClassSignatureElement$$ = [ClassSignatureElement$0, ClassSignatureElement$1];
6772
6902
  function ClassSignatureElement(ctx, state) {
@@ -6964,18 +7094,28 @@ var require_parser = __commonJS({
6964
7094
  return literal;
6965
7095
  });
6966
7096
  var CallExpressionRest$3 = $TS($S($E(OptionalShorthand), ArgumentsWithTrailingMemberExpressions), function($skip, $loc, $0, $1, $2) {
6967
- if (!$1)
6968
- return $2;
6969
- return [$1, ...$2];
7097
+ var optional = $1;
7098
+ var argsWithTrailing = $2;
7099
+ if (!optional)
7100
+ return argsWithTrailing;
7101
+ const call = argsWithTrailing[0];
7102
+ return [{
7103
+ ...call,
7104
+ children: [optional, ...call.children],
7105
+ optional
7106
+ }, ...argsWithTrailing.slice(1)];
6970
7107
  });
6971
7108
  var CallExpressionRest$$ = [CallExpressionRest$0, CallExpressionRest$1, CallExpressionRest$2, CallExpressionRest$3];
6972
7109
  function CallExpressionRest(ctx, state) {
6973
7110
  return $EVENT_C(ctx, state, "CallExpressionRest", CallExpressionRest$$);
6974
7111
  }
6975
7112
  var OptionalShorthand$0 = $TS($S($EXPECT($R6, "OptionalShorthand /(?=[\\/?])/"), $Q(InlineComment), QuestionMark, OptionalDot), function($skip, $loc, $0, $1, $2, $3, $4) {
7113
+ var comments = $2;
7114
+ var q = $3;
7115
+ var d = $4;
6976
7116
  return {
6977
7117
  type: "Optional",
6978
- children: $0
7118
+ children: [...comments, q, d]
6979
7119
  };
6980
7120
  });
6981
7121
  function OptionalShorthand(ctx, state) {
@@ -7046,7 +7186,11 @@ var require_parser = __commonJS({
7046
7186
  if (dot.type === "Optional" && content.type === "SliceExpression") {
7047
7187
  return [...dot.children.slice(0, -1), ...comments, content];
7048
7188
  }
7049
- return [dot, ...comments, content];
7189
+ return {
7190
+ ...content,
7191
+ children: [dot, ...comments, ...content.children],
7192
+ optional: dot
7193
+ };
7050
7194
  }
7051
7195
  return [...comments, content];
7052
7196
  });
@@ -7150,9 +7294,14 @@ var require_parser = __commonJS({
7150
7294
  return $EVENT_C(ctx, state, "SliceParameters", SliceParameters$$);
7151
7295
  }
7152
7296
  var AccessStart$0 = $TS($S($E(PropertyAccessModifier), Dot, $N(Dot)), function($skip, $loc, $0, $1, $2, $3) {
7153
- if ($1)
7154
- return [$1, $2];
7155
- return $2;
7297
+ var modifier = $1;
7298
+ var dot = $2;
7299
+ let children = modifier ? [modifier, dot] : [dot];
7300
+ return {
7301
+ type: "AccessStart",
7302
+ children,
7303
+ optional: modifier?.token === "?"
7304
+ };
7156
7305
  });
7157
7306
  function AccessStart(ctx, state) {
7158
7307
  return $EVENT(ctx, state, "AccessStart", AccessStart$0);
@@ -7195,13 +7344,14 @@ var require_parser = __commonJS({
7195
7344
  };
7196
7345
  });
7197
7346
  var PropertyAccess$2 = $TS($S(AccessStart, $Q(InlineComment), $C(IdentifierName, PrivateIdentifier, LengthShorthand)), function($skip, $loc, $0, $1, $2, $3) {
7198
- var access = $1;
7347
+ var dot = $1;
7199
7348
  var comments = $2;
7200
7349
  var id = $3;
7201
- const children = [access, ...comments, ...id.children];
7350
+ const children = [dot, ...comments, ...id.children];
7202
7351
  return {
7203
7352
  type: "PropertyAccess",
7204
7353
  name: id.name,
7354
+ dot,
7205
7355
  children
7206
7356
  };
7207
7357
  });
@@ -7209,16 +7359,20 @@ var require_parser = __commonJS({
7209
7359
  var p = $2;
7210
7360
  var id = $3;
7211
7361
  if (id) {
7362
+ const dot = { token: ".prototype.", $loc: p.$loc };
7212
7363
  return {
7213
7364
  type: "PropertyAccess",
7214
7365
  name: id.name,
7215
- children: [{ token: ".prototype.", $loc: p.$loc }, id]
7366
+ dot,
7367
+ children: [dot, id]
7216
7368
  };
7217
7369
  } else {
7370
+ const dot = { token: ".prototype", $loc: p.$loc };
7218
7371
  return {
7219
7372
  type: "PropertyAccess",
7220
7373
  name: "prototype",
7221
- children: [{ token: ".prototype", $loc: p.$loc }]
7374
+ dot,
7375
+ children: [dot]
7222
7376
  };
7223
7377
  }
7224
7378
  });
@@ -12469,37 +12623,43 @@ var require_parser = __commonJS({
12469
12623
  function Operator(ctx, state) {
12470
12624
  return $EVENT(ctx, state, "Operator", Operator$0);
12471
12625
  }
12472
- var Own$0 = $TS($S($EXPECT($L173, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12626
+ var Override$0 = $TS($S($EXPECT($L173, 'Override "override"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12627
+ return { $loc, token: $1, ts: true };
12628
+ });
12629
+ function Override(ctx, state) {
12630
+ return $EVENT(ctx, state, "Override", Override$0);
12631
+ }
12632
+ var Own$0 = $TS($S($EXPECT($L174, 'Own "own"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12473
12633
  return { $loc, token: $1 };
12474
12634
  });
12475
12635
  function Own(ctx, state) {
12476
12636
  return $EVENT(ctx, state, "Own", Own$0);
12477
12637
  }
12478
- var Public$0 = $TS($S($EXPECT($L174, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12638
+ var Public$0 = $TS($S($EXPECT($L175, 'Public "public"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12479
12639
  return { $loc, token: $1 };
12480
12640
  });
12481
12641
  function Public(ctx, state) {
12482
12642
  return $EVENT(ctx, state, "Public", Public$0);
12483
12643
  }
12484
- var Private$0 = $TS($S($EXPECT($L175, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12644
+ var Private$0 = $TS($S($EXPECT($L176, 'Private "private"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12485
12645
  return { $loc, token: $1 };
12486
12646
  });
12487
12647
  function Private(ctx, state) {
12488
12648
  return $EVENT(ctx, state, "Private", Private$0);
12489
12649
  }
12490
- var Protected$0 = $TS($S($EXPECT($L176, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12650
+ var Protected$0 = $TS($S($EXPECT($L177, 'Protected "protected"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12491
12651
  return { $loc, token: $1 };
12492
12652
  });
12493
12653
  function Protected(ctx, state) {
12494
12654
  return $EVENT(ctx, state, "Protected", Protected$0);
12495
12655
  }
12496
- var Pipe$0 = $TV($C($EXPECT($L177, 'Pipe "||>"'), $EXPECT($L178, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
12656
+ var Pipe$0 = $TV($C($EXPECT($L178, 'Pipe "||>"'), $EXPECT($L179, 'Pipe "|\u25B7"')), function($skip, $loc, $0, $1) {
12497
12657
  return { $loc, token: "||>" };
12498
12658
  });
12499
- var Pipe$1 = $TV($C($EXPECT($L179, 'Pipe "|>="'), $EXPECT($L180, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
12659
+ var Pipe$1 = $TV($C($EXPECT($L180, 'Pipe "|>="'), $EXPECT($L181, 'Pipe "\u25B7="')), function($skip, $loc, $0, $1) {
12500
12660
  return { $loc, token: "|>=" };
12501
12661
  });
12502
- var Pipe$2 = $TV($C($EXPECT($L181, 'Pipe "|>"'), $EXPECT($L182, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
12662
+ var Pipe$2 = $TV($C($EXPECT($L182, 'Pipe "|>"'), $EXPECT($L183, 'Pipe "\u25B7"')), function($skip, $loc, $0, $1) {
12503
12663
  return { $loc, token: "|>" };
12504
12664
  });
12505
12665
  var Pipe$$ = [Pipe$0, Pipe$1, Pipe$2];
@@ -12512,19 +12672,19 @@ var require_parser = __commonJS({
12512
12672
  function QuestionMark(ctx, state) {
12513
12673
  return $EVENT(ctx, state, "QuestionMark", QuestionMark$0);
12514
12674
  }
12515
- var Readonly$0 = $TS($S($EXPECT($L183, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12675
+ var Readonly$0 = $TS($S($EXPECT($L184, 'Readonly "readonly"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12516
12676
  return { $loc, token: $1, ts: true };
12517
12677
  });
12518
12678
  function Readonly(ctx, state) {
12519
12679
  return $EVENT(ctx, state, "Readonly", Readonly$0);
12520
12680
  }
12521
- var Return$0 = $TS($S($EXPECT($L184, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12681
+ var Return$0 = $TS($S($EXPECT($L185, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12522
12682
  return { $loc, token: $1 };
12523
12683
  });
12524
12684
  function Return(ctx, state) {
12525
12685
  return $EVENT(ctx, state, "Return", Return$0);
12526
12686
  }
12527
- var Satisfies$0 = $TS($S($EXPECT($L185, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12687
+ var Satisfies$0 = $TS($S($EXPECT($L186, 'Satisfies "satisfies"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12528
12688
  return { $loc, token: $1 };
12529
12689
  });
12530
12690
  function Satisfies(ctx, state) {
@@ -12536,7 +12696,7 @@ var require_parser = __commonJS({
12536
12696
  function Semicolon(ctx, state) {
12537
12697
  return $EVENT(ctx, state, "Semicolon", Semicolon$0);
12538
12698
  }
12539
- var SingleQuote$0 = $TV($EXPECT($L186, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
12699
+ var SingleQuote$0 = $TV($EXPECT($L187, `SingleQuote "'"`), function($skip, $loc, $0, $1) {
12540
12700
  return { $loc, token: $1 };
12541
12701
  });
12542
12702
  function SingleQuote(ctx, state) {
@@ -12548,7 +12708,7 @@ var require_parser = __commonJS({
12548
12708
  function Star(ctx, state) {
12549
12709
  return $EVENT(ctx, state, "Star", Star$0);
12550
12710
  }
12551
- var Static$0 = $TS($S($EXPECT($L187, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12711
+ var Static$0 = $TS($S($EXPECT($L188, 'Static "static"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12552
12712
  return { $loc, token: $1 };
12553
12713
  });
12554
12714
  var Static$1 = $TS($S($EXPECT($L129, 'Static "@"'), $N($C($EXPECT($L4, 'Static "("'), $EXPECT($L129, 'Static "@"')))), function($skip, $loc, $0, $1, $2) {
@@ -12558,127 +12718,127 @@ var require_parser = __commonJS({
12558
12718
  function Static(ctx, state) {
12559
12719
  return $EVENT_C(ctx, state, "Static", Static$$);
12560
12720
  }
12561
- var SubstitutionStart$0 = $TV($EXPECT($L188, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
12721
+ var SubstitutionStart$0 = $TV($EXPECT($L189, 'SubstitutionStart "${"'), function($skip, $loc, $0, $1) {
12562
12722
  return { $loc, token: $1 };
12563
12723
  });
12564
12724
  function SubstitutionStart(ctx, state) {
12565
12725
  return $EVENT(ctx, state, "SubstitutionStart", SubstitutionStart$0);
12566
12726
  }
12567
- var Super$0 = $TS($S($EXPECT($L189, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12727
+ var Super$0 = $TS($S($EXPECT($L190, 'Super "super"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12568
12728
  return { $loc, token: $1 };
12569
12729
  });
12570
12730
  function Super(ctx, state) {
12571
12731
  return $EVENT(ctx, state, "Super", Super$0);
12572
12732
  }
12573
- var Switch$0 = $TS($S($EXPECT($L190, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12733
+ var Switch$0 = $TS($S($EXPECT($L191, 'Switch "switch"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12574
12734
  return { $loc, token: $1 };
12575
12735
  });
12576
12736
  function Switch(ctx, state) {
12577
12737
  return $EVENT(ctx, state, "Switch", Switch$0);
12578
12738
  }
12579
- var Target$0 = $TS($S($EXPECT($L191, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12739
+ var Target$0 = $TS($S($EXPECT($L192, 'Target "target"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12580
12740
  return { $loc, token: $1 };
12581
12741
  });
12582
12742
  function Target(ctx, state) {
12583
12743
  return $EVENT(ctx, state, "Target", Target$0);
12584
12744
  }
12585
- var Then$0 = $TS($S(__, $EXPECT($L192, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
12745
+ var Then$0 = $TS($S(__, $EXPECT($L193, 'Then "then"'), NonIdContinue), function($skip, $loc, $0, $1, $2, $3) {
12586
12746
  return { $loc, token: "" };
12587
12747
  });
12588
12748
  function Then(ctx, state) {
12589
12749
  return $EVENT(ctx, state, "Then", Then$0);
12590
12750
  }
12591
- var This$0 = $TS($S($EXPECT($L193, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12751
+ var This$0 = $TS($S($EXPECT($L194, 'This "this"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12592
12752
  return { $loc, token: $1 };
12593
12753
  });
12594
12754
  function This(ctx, state) {
12595
12755
  return $EVENT(ctx, state, "This", This$0);
12596
12756
  }
12597
- var Throw$0 = $TS($S($EXPECT($L194, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12757
+ var Throw$0 = $TS($S($EXPECT($L195, 'Throw "throw"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12598
12758
  return { $loc, token: $1 };
12599
12759
  });
12600
12760
  function Throw(ctx, state) {
12601
12761
  return $EVENT(ctx, state, "Throw", Throw$0);
12602
12762
  }
12603
- var TripleDoubleQuote$0 = $TV($EXPECT($L195, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
12763
+ var TripleDoubleQuote$0 = $TV($EXPECT($L196, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
12604
12764
  return { $loc, token: "`" };
12605
12765
  });
12606
12766
  function TripleDoubleQuote(ctx, state) {
12607
12767
  return $EVENT(ctx, state, "TripleDoubleQuote", TripleDoubleQuote$0);
12608
12768
  }
12609
- var TripleSingleQuote$0 = $TV($EXPECT($L196, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
12769
+ var TripleSingleQuote$0 = $TV($EXPECT($L197, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
12610
12770
  return { $loc, token: "`" };
12611
12771
  });
12612
12772
  function TripleSingleQuote(ctx, state) {
12613
12773
  return $EVENT(ctx, state, "TripleSingleQuote", TripleSingleQuote$0);
12614
12774
  }
12615
- var TripleSlash$0 = $TV($EXPECT($L197, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
12775
+ var TripleSlash$0 = $TV($EXPECT($L198, 'TripleSlash "///"'), function($skip, $loc, $0, $1) {
12616
12776
  return { $loc, token: "/" };
12617
12777
  });
12618
12778
  function TripleSlash(ctx, state) {
12619
12779
  return $EVENT(ctx, state, "TripleSlash", TripleSlash$0);
12620
12780
  }
12621
- var TripleTick$0 = $TV($EXPECT($L198, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
12781
+ var TripleTick$0 = $TV($EXPECT($L199, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
12622
12782
  return { $loc, token: "`" };
12623
12783
  });
12624
12784
  function TripleTick(ctx, state) {
12625
12785
  return $EVENT(ctx, state, "TripleTick", TripleTick$0);
12626
12786
  }
12627
- var Try$0 = $TS($S($EXPECT($L199, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12787
+ var Try$0 = $TS($S($EXPECT($L200, 'Try "try"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12628
12788
  return { $loc, token: $1 };
12629
12789
  });
12630
12790
  function Try(ctx, state) {
12631
12791
  return $EVENT(ctx, state, "Try", Try$0);
12632
12792
  }
12633
- var Typeof$0 = $TS($S($EXPECT($L200, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12793
+ var Typeof$0 = $TS($S($EXPECT($L201, 'Typeof "typeof"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12634
12794
  return { $loc, token: $1 };
12635
12795
  });
12636
12796
  function Typeof(ctx, state) {
12637
12797
  return $EVENT(ctx, state, "Typeof", Typeof$0);
12638
12798
  }
12639
- var Unless$0 = $TS($S($EXPECT($L201, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12799
+ var Unless$0 = $TS($S($EXPECT($L202, 'Unless "unless"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12640
12800
  return { $loc, token: $1, negated: true };
12641
12801
  });
12642
12802
  function Unless(ctx, state) {
12643
12803
  return $EVENT(ctx, state, "Unless", Unless$0);
12644
12804
  }
12645
- var Until$0 = $TS($S($EXPECT($L202, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12805
+ var Until$0 = $TS($S($EXPECT($L203, 'Until "until"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12646
12806
  return { $loc, token: $1 };
12647
12807
  });
12648
12808
  function Until(ctx, state) {
12649
12809
  return $EVENT(ctx, state, "Until", Until$0);
12650
12810
  }
12651
- var Using$0 = $TS($S($EXPECT($L203, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12811
+ var Using$0 = $TS($S($EXPECT($L204, 'Using "using"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12652
12812
  return { $loc, token: $1 };
12653
12813
  });
12654
12814
  function Using(ctx, state) {
12655
12815
  return $EVENT(ctx, state, "Using", Using$0);
12656
12816
  }
12657
- var Var$0 = $TS($S($EXPECT($L204, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12817
+ var Var$0 = $TS($S($EXPECT($L205, 'Var "var"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12658
12818
  return { $loc, token: $1 };
12659
12819
  });
12660
12820
  function Var(ctx, state) {
12661
12821
  return $EVENT(ctx, state, "Var", Var$0);
12662
12822
  }
12663
- var Void$0 = $TS($S($EXPECT($L205, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12823
+ var Void$0 = $TS($S($EXPECT($L206, 'Void "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12664
12824
  return { $loc, token: $1 };
12665
12825
  });
12666
12826
  function Void(ctx, state) {
12667
12827
  return $EVENT(ctx, state, "Void", Void$0);
12668
12828
  }
12669
- var When$0 = $TS($S($EXPECT($L206, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12829
+ var When$0 = $TS($S($EXPECT($L207, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12670
12830
  return { $loc, token: "case" };
12671
12831
  });
12672
12832
  function When(ctx, state) {
12673
12833
  return $EVENT(ctx, state, "When", When$0);
12674
12834
  }
12675
- var While$0 = $TS($S($EXPECT($L207, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12835
+ var While$0 = $TS($S($EXPECT($L208, 'While "while"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12676
12836
  return { $loc, token: $1 };
12677
12837
  });
12678
12838
  function While(ctx, state) {
12679
12839
  return $EVENT(ctx, state, "While", While$0);
12680
12840
  }
12681
- var Yield$0 = $TS($S($EXPECT($L208, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12841
+ var Yield$0 = $TS($S($EXPECT($L209, 'Yield "yield"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
12682
12842
  return { $loc, token: $1, type: "Yield" };
12683
12843
  });
12684
12844
  function Yield(ctx, state) {
@@ -12757,7 +12917,7 @@ var require_parser = __commonJS({
12757
12917
  function JSXElement(ctx, state) {
12758
12918
  return $EVENT_C(ctx, state, "JSXElement", JSXElement$$);
12759
12919
  }
12760
- var JSXSelfClosingElement$0 = $TS($S($EXPECT($L17, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L209, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12920
+ var JSXSelfClosingElement$0 = $TS($S($EXPECT($L17, 'JSXSelfClosingElement "<"'), JSXElementName, $E(TypeArguments), $E(JSXAttributes), $E(Whitespace), $EXPECT($L210, 'JSXSelfClosingElement "/>"')), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6) {
12761
12921
  return { type: "JSXElement", children: $0, tag: $2 };
12762
12922
  });
12763
12923
  function JSXSelfClosingElement(ctx, state) {
@@ -12791,7 +12951,7 @@ var require_parser = __commonJS({
12791
12951
  function JSXOptionalClosingElement(ctx, state) {
12792
12952
  return $EVENT_C(ctx, state, "JSXOptionalClosingElement", JSXOptionalClosingElement$$);
12793
12953
  }
12794
- var JSXClosingElement$0 = $S($EXPECT($L210, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L45, 'JSXClosingElement ">"'));
12954
+ var JSXClosingElement$0 = $S($EXPECT($L211, 'JSXClosingElement "</"'), $E(Whitespace), JSXElementName, $E(Whitespace), $EXPECT($L45, 'JSXClosingElement ">"'));
12795
12955
  function JSXClosingElement(ctx, state) {
12796
12956
  return $EVENT(ctx, state, "JSXClosingElement", JSXClosingElement$0);
12797
12957
  }
@@ -12812,7 +12972,7 @@ var require_parser = __commonJS({
12812
12972
  ];
12813
12973
  return { type: "JSXFragment", children: parts, jsxChildren: children.jsxChildren };
12814
12974
  });
12815
- var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L211, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12975
+ var JSXFragment$1 = $TS($S(CoffeeJSXEnabled, $EXPECT($L212, 'JSXFragment "<>"'), $E(JSXChildren), $E(Whitespace), JSXClosingFragment), function($skip, $loc, $0, $1, $2, $3, $4, $5) {
12816
12976
  var children = $3;
12817
12977
  $0 = $0.slice(1);
12818
12978
  return {
@@ -12825,7 +12985,7 @@ var require_parser = __commonJS({
12825
12985
  function JSXFragment(ctx, state) {
12826
12986
  return $EVENT_C(ctx, state, "JSXFragment", JSXFragment$$);
12827
12987
  }
12828
- var PushJSXOpeningFragment$0 = $TV($EXPECT($L211, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
12988
+ var PushJSXOpeningFragment$0 = $TV($EXPECT($L212, 'PushJSXOpeningFragment "<>"'), function($skip, $loc, $0, $1) {
12829
12989
  module2.JSXTagStack.push("");
12830
12990
  return $1;
12831
12991
  });
@@ -12842,7 +13002,7 @@ var require_parser = __commonJS({
12842
13002
  function JSXOptionalClosingFragment(ctx, state) {
12843
13003
  return $EVENT_C(ctx, state, "JSXOptionalClosingFragment", JSXOptionalClosingFragment$$);
12844
13004
  }
12845
- var JSXClosingFragment$0 = $EXPECT($L212, 'JSXClosingFragment "</>"');
13005
+ var JSXClosingFragment$0 = $EXPECT($L213, 'JSXClosingFragment "</>"');
12846
13006
  function JSXClosingFragment(ctx, state) {
12847
13007
  return $EVENT(ctx, state, "JSXClosingFragment", JSXClosingFragment$0);
12848
13008
  }
@@ -13321,7 +13481,7 @@ var require_parser = __commonJS({
13321
13481
  function JSXChild(ctx, state) {
13322
13482
  return $EVENT_C(ctx, state, "JSXChild", JSXChild$$);
13323
13483
  }
13324
- var JSXComment$0 = $TS($S($EXPECT($L213, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L214, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
13484
+ var JSXComment$0 = $TS($S($EXPECT($L214, 'JSXComment "<!--"'), JSXCommentContent, $EXPECT($L215, 'JSXComment "-->"')), function($skip, $loc, $0, $1, $2, $3) {
13325
13485
  return ["{/*", $2, "*/}"];
13326
13486
  });
13327
13487
  function JSXComment(ctx, state) {
@@ -13508,37 +13668,37 @@ var require_parser = __commonJS({
13508
13668
  function InterfaceExtendsTarget(ctx, state) {
13509
13669
  return $EVENT(ctx, state, "InterfaceExtendsTarget", InterfaceExtendsTarget$0);
13510
13670
  }
13511
- var TypeKeyword$0 = $TS($S($EXPECT($L215, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13671
+ var TypeKeyword$0 = $TS($S($EXPECT($L216, 'TypeKeyword "type"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13512
13672
  return { $loc, token: $1 };
13513
13673
  });
13514
13674
  function TypeKeyword(ctx, state) {
13515
13675
  return $EVENT(ctx, state, "TypeKeyword", TypeKeyword$0);
13516
13676
  }
13517
- var Enum$0 = $TS($S($EXPECT($L216, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13677
+ var Enum$0 = $TS($S($EXPECT($L217, 'Enum "enum"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13518
13678
  return { $loc, token: $1 };
13519
13679
  });
13520
13680
  function Enum(ctx, state) {
13521
13681
  return $EVENT(ctx, state, "Enum", Enum$0);
13522
13682
  }
13523
- var Interface$0 = $TS($S($EXPECT($L217, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13683
+ var Interface$0 = $TS($S($EXPECT($L218, 'Interface "interface"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13524
13684
  return { $loc, token: $1 };
13525
13685
  });
13526
13686
  function Interface(ctx, state) {
13527
13687
  return $EVENT(ctx, state, "Interface", Interface$0);
13528
13688
  }
13529
- var Global$0 = $TS($S($EXPECT($L218, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13689
+ var Global$0 = $TS($S($EXPECT($L219, 'Global "global"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13530
13690
  return { $loc, token: $1 };
13531
13691
  });
13532
13692
  function Global(ctx, state) {
13533
13693
  return $EVENT(ctx, state, "Global", Global$0);
13534
13694
  }
13535
- var Module$0 = $TS($S($EXPECT($L219, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13695
+ var Module$0 = $TS($S($EXPECT($L220, 'Module "module"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13536
13696
  return { $loc, token: $1 };
13537
13697
  });
13538
13698
  function Module(ctx, state) {
13539
13699
  return $EVENT(ctx, state, "Module", Module$0);
13540
13700
  }
13541
- var Namespace$0 = $TS($S($EXPECT($L220, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13701
+ var Namespace$0 = $TS($S($EXPECT($L221, 'Namespace "namespace"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
13542
13702
  return { $loc, token: $1 };
13543
13703
  });
13544
13704
  function Namespace(ctx, state) {
@@ -13812,7 +13972,7 @@ var require_parser = __commonJS({
13812
13972
  function ReturnTypeSuffix(ctx, state) {
13813
13973
  return $EVENT(ctx, state, "ReturnTypeSuffix", ReturnTypeSuffix$0);
13814
13974
  }
13815
- var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L221, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
13975
+ var ReturnType$0 = $TS($S($E($S(__, $EXPECT($L222, 'ReturnType "asserts"'), NonIdContinue)), TypePredicate), function($skip, $loc, $0, $1, $2) {
13816
13976
  var asserts = $1;
13817
13977
  var t = $2;
13818
13978
  if (asserts) {
@@ -13891,8 +14051,8 @@ var require_parser = __commonJS({
13891
14051
  function TypeUnarySuffix(ctx, state) {
13892
14052
  return $EVENT_C(ctx, state, "TypeUnarySuffix", TypeUnarySuffix$$);
13893
14053
  }
13894
- var TypeUnaryOp$0 = $S($EXPECT($L222, 'TypeUnaryOp "keyof"'), NonIdContinue);
13895
- var TypeUnaryOp$1 = $S($EXPECT($L183, 'TypeUnaryOp "readonly"'), NonIdContinue);
14054
+ var TypeUnaryOp$0 = $S($EXPECT($L223, 'TypeUnaryOp "keyof"'), NonIdContinue);
14055
+ var TypeUnaryOp$1 = $S($EXPECT($L184, 'TypeUnaryOp "readonly"'), NonIdContinue);
13896
14056
  var TypeUnaryOp$$ = [TypeUnaryOp$0, TypeUnaryOp$1];
13897
14057
  function TypeUnaryOp(ctx, state) {
13898
14058
  return $EVENT_C(ctx, state, "TypeUnaryOp", TypeUnaryOp$$);
@@ -13922,7 +14082,7 @@ var require_parser = __commonJS({
13922
14082
  function TypeIndexedAccess(ctx, state) {
13923
14083
  return $EVENT_C(ctx, state, "TypeIndexedAccess", TypeIndexedAccess$$);
13924
14084
  }
13925
- var UnknownAlias$0 = $TV($EXPECT($L223, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
14085
+ var UnknownAlias$0 = $TV($EXPECT($L224, 'UnknownAlias "???"'), function($skip, $loc, $0, $1) {
13926
14086
  return { $loc, token: "unknown" };
13927
14087
  });
13928
14088
  function UnknownAlias(ctx, state) {
@@ -14128,13 +14288,20 @@ var require_parser = __commonJS({
14128
14288
  }
14129
14289
  var TypeLiteral$0 = TypeTemplateLiteral;
14130
14290
  var TypeLiteral$1 = Literal;
14131
- var TypeLiteral$2 = $TS($S($EXPECT($L205, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14291
+ var TypeLiteral$2 = $TS($S($EXPECT($R17, "TypeLiteral /[+-]/"), NumericLiteral), function($skip, $loc, $0, $1, $2) {
14292
+ var sign = $1;
14293
+ var num = $2;
14294
+ if (sign[0] === "+")
14295
+ return num;
14296
+ return $0;
14297
+ });
14298
+ var TypeLiteral$3 = $TS($S($EXPECT($L206, 'TypeLiteral "void"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
14132
14299
  return { type: "VoidType", $loc, token: $1 };
14133
14300
  });
14134
- var TypeLiteral$3 = $TV($EXPECT($L224, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
14301
+ var TypeLiteral$4 = $TV($EXPECT($L225, 'TypeLiteral "[]"'), function($skip, $loc, $0, $1) {
14135
14302
  return { $loc, token: "[]" };
14136
14303
  });
14137
- var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3];
14304
+ var TypeLiteral$$ = [TypeLiteral$0, TypeLiteral$1, TypeLiteral$2, TypeLiteral$3, TypeLiteral$4];
14138
14305
  function TypeLiteral(ctx, state) {
14139
14306
  return $EVENT_C(ctx, state, "TypeLiteral", TypeLiteral$$);
14140
14307
  }
@@ -14257,7 +14424,7 @@ var require_parser = __commonJS({
14257
14424
  function CivetPrologue(ctx, state) {
14258
14425
  return $EVENT_C(ctx, state, "CivetPrologue", CivetPrologue$$);
14259
14426
  }
14260
- var CivetPrologueContent$0 = $TS($S($EXPECT($L225, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R86, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
14427
+ var CivetPrologueContent$0 = $TS($S($EXPECT($L226, 'CivetPrologueContent "civet"'), NonIdContinue, $Q(CivetOption), $EXPECT($R86, "CivetPrologueContent /[\\s]*/")), function($skip, $loc, $0, $1, $2, $3, $4) {
14261
14428
  var options = $3;
14262
14429
  return {
14263
14430
  type: "CivetPrologue",
@@ -14843,9 +15010,9 @@ var require_parser = __commonJS({
14843
15010
  }
14844
15011
  }
14845
15012
  });
14846
- if (typeof parse2 !== "undefined") {
14847
- Object.assign(module2.config, parse2.config);
14848
- parse2.config = module2.config;
15013
+ if (typeof parse !== "undefined") {
15014
+ Object.assign(module2.config, parse.config);
15015
+ parse.config = module2.config;
14849
15016
  } else {
14850
15017
  Object.assign(module2.config, exports2.parse.config);
14851
15018
  exports2.parse.config = module2.config;
@@ -14996,7 +15163,7 @@ var require_parser = __commonJS({
14996
15163
  };
14997
15164
  }();
14998
15165
  exports2.default = parser;
14999
- var parse2 = exports2.parse = parser.parse;
15166
+ exports2.parse = parser.parse;
15000
15167
  exports2.Program = Program;
15001
15168
  exports2.TopLevelStatements = TopLevelStatements;
15002
15169
  exports2.NestedTopLevelStatements = NestedTopLevelStatements;
@@ -15498,6 +15665,7 @@ var require_parser = __commonJS({
15498
15665
  exports2.OpenBracket = OpenBracket;
15499
15666
  exports2.OpenParen = OpenParen;
15500
15667
  exports2.Operator = Operator;
15668
+ exports2.Override = Override;
15501
15669
  exports2.Own = Own;
15502
15670
  exports2.Public = Public;
15503
15671
  exports2.Private = Private;