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