@danielx/civet 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -505,6 +505,7 @@ var Civet = (() => {
505
505
  PropertyName,
506
506
  MethodDefinition,
507
507
  MethodModifier,
508
+ ConstructorShorthand,
508
509
  MethodSignature,
509
510
  ClassElementName,
510
511
  PrivateIdentifier,
@@ -583,6 +584,8 @@ var Civet = (() => {
583
584
  SingleStringCharacter,
584
585
  TripleDoubleStringCharacters,
585
586
  TripleSingleStringCharacters,
587
+ CoffeeStringSubstitution,
588
+ CoffeeSubstitutionStart,
586
589
  RegularExpressionLiteral,
587
590
  RegularExpressionBody,
588
591
  RegExpCharacter,
@@ -642,6 +645,7 @@ var Civet = (() => {
642
645
  Target,
643
646
  TripleDoubleQuote,
644
647
  TripleSingleQuote,
648
+ TripleTick,
645
649
  Try,
646
650
  Unless,
647
651
  Var,
@@ -717,7 +721,6 @@ var Civet = (() => {
717
721
  Init,
718
722
  Indent,
719
723
  TrackIndent,
720
- RestoreIndent,
721
724
  Samedent,
722
725
  IndentedFurther,
723
726
  PushIndent,
@@ -812,59 +815,61 @@ var Civet = (() => {
812
815
  var $L85 = $L(":=");
813
816
  var $L86 = $L('"');
814
817
  var $L87 = $L("'");
815
- var $L88 = $L("${");
816
- var $L89 = $L("/*");
817
- var $L90 = $L("*/");
818
- var $L91 = $L("###");
819
- var $L92 = $L("as");
820
- var $L93 = $L("async");
821
- var $L94 = $L("await");
822
- var $L95 = $L("catch");
823
- var $L96 = $L("class");
824
- var $L97 = $L(":");
825
- var $L98 = $L(".");
826
- var $L99 = $L("else");
827
- var $L100 = $L("export");
828
- var $L101 = $L("for");
829
- var $L102 = $L("from");
830
- var $L103 = $L("function");
831
- var $L104 = $L("get");
832
- var $L105 = $L("set");
833
- var $L106 = $L("if");
834
- var $L107 = $L("let");
835
- var $L108 = $L("const");
836
- var $L109 = $L("loop");
837
- var $L110 = $L("new");
838
- var $L111 = $L("of");
839
- var $L112 = $L("{");
840
- var $L113 = $L("[");
841
- var $L114 = $L("(");
842
- var $L115 = $L("?");
843
- var $L116 = $L("return");
844
- var $L117 = $L("static");
845
- var $L118 = $L("switch");
846
- var $L119 = $L("target");
847
- var $L120 = $L('"""');
848
- var $L121 = $L("'''");
849
- var $L122 = $L("try");
850
- var $L123 = $L("unless");
851
- var $L124 = $L("var");
852
- var $L125 = $L("when");
853
- var $L126 = $L("/>");
854
- var $L127 = $L("</");
855
- var $L128 = $L("<>");
856
- var $L129 = $L("</>");
857
- var $L130 = $L("declare");
858
- var $L131 = $L("type");
859
- var $L132 = $L("interface");
860
- var $L133 = $L("namespace");
861
- var $L134 = $L("readonly");
862
- var $L135 = $L("asserts");
863
- var $L136 = $L("keyof");
864
- var $L137 = $L("infer");
865
- var $L138 = $L("[]");
866
- var $L139 = $L(" ");
867
- var $L140 = $L(" ");
818
+ var $L88 = $L("#{");
819
+ var $L89 = $L("${");
820
+ var $L90 = $L("/*");
821
+ var $L91 = $L("*/");
822
+ var $L92 = $L("###");
823
+ var $L93 = $L("as");
824
+ var $L94 = $L("async");
825
+ var $L95 = $L("await");
826
+ var $L96 = $L("catch");
827
+ var $L97 = $L("class");
828
+ var $L98 = $L(":");
829
+ var $L99 = $L(".");
830
+ var $L100 = $L("else");
831
+ var $L101 = $L("export");
832
+ var $L102 = $L("for");
833
+ var $L103 = $L("from");
834
+ var $L104 = $L("function");
835
+ var $L105 = $L("get");
836
+ var $L106 = $L("set");
837
+ var $L107 = $L("if");
838
+ var $L108 = $L("let");
839
+ var $L109 = $L("const");
840
+ var $L110 = $L("loop");
841
+ var $L111 = $L("new");
842
+ var $L112 = $L("of");
843
+ var $L113 = $L("{");
844
+ var $L114 = $L("[");
845
+ var $L115 = $L("(");
846
+ var $L116 = $L("?");
847
+ var $L117 = $L("return");
848
+ var $L118 = $L("static");
849
+ var $L119 = $L("switch");
850
+ var $L120 = $L("target");
851
+ var $L121 = $L('"""');
852
+ var $L122 = $L("'''");
853
+ var $L123 = $L("```");
854
+ var $L124 = $L("try");
855
+ var $L125 = $L("unless");
856
+ var $L126 = $L("var");
857
+ var $L127 = $L("when");
858
+ var $L128 = $L("/>");
859
+ var $L129 = $L("</");
860
+ var $L130 = $L("<>");
861
+ var $L131 = $L("</>");
862
+ var $L132 = $L("declare");
863
+ var $L133 = $L("type");
864
+ var $L134 = $L("interface");
865
+ var $L135 = $L("namespace");
866
+ var $L136 = $L("readonly");
867
+ var $L137 = $L("asserts");
868
+ var $L138 = $L("keyof");
869
+ var $L139 = $L("infer");
870
+ var $L140 = $L("[]");
871
+ var $L141 = $L(" ");
872
+ var $L142 = $L(" ");
868
873
  var $R0 = $R(new RegExp("(of)(?!\\p{ID_Continue})", "suy"));
869
874
  var $R1 = $R(new RegExp("(?:\\p{ID_Start}|[_$])(?:\\p{ID_Continue}|[\\u200C\\u200D$])*", "suy"));
870
875
  var $R2 = $R(new RegExp("[!~+-]", "suy"));
@@ -876,7 +881,7 @@ var Civet = (() => {
876
881
  var $R8 = $R(new RegExp("0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_[0-9a-fA-F])*", "suy"));
877
882
  var $R9 = $R(new RegExp('(?:\\\\.|[^"])+', "suy"));
878
883
  var $R10 = $R(new RegExp("(?:\\\\.|[^'])+", "suy"));
879
- var $R11 = $R(new RegExp('(?:"(?!"")|\\\\.|[^"])*', "suy"));
884
+ var $R11 = $R(new RegExp('(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+', "suy"));
880
885
  var $R12 = $R(new RegExp("(?:'(?!'')|\\\\.|[^'])*", "suy"));
881
886
  var $R13 = $R(new RegExp("[*\\/\\r\\n]", "suy"));
882
887
  var $R14 = $R(new RegExp("(?:\\\\.|[^\\/\\r\\n])+", "suy"));
@@ -941,7 +946,7 @@ var Civet = (() => {
941
946
  return Arguments$0(state) || Arguments$1(state);
942
947
  }
943
948
  }
944
- var ArgumentsWithTrailingCallExpressions$0 = $TS($S(TrackIndent, $C($S(Arguments, $Q($S($Y(EOS), Samedent, $N($EXPECT($L0, fail, 'ArgumentsWithTrailingCallExpressions "`"')), CallExpressionRest)), RestoreIndent), RestoreIndent)), function($skip, $loc, $0, $1, $2) {
949
+ var ArgumentsWithTrailingCallExpressions$0 = $TS($S(TrackIndent, $C($S(Arguments, $Q($S($Y(EOS), Samedent, $N($EXPECT($L0, fail, 'ArgumentsWithTrailingCallExpressions "`"')), CallExpressionRest)), PopIndent), PopIndent)), function($skip, $loc, $0, $1, $2) {
945
950
  if (!$2)
946
951
  return $skip;
947
952
  return $2;
@@ -2038,14 +2043,25 @@ var Civet = (() => {
2038
2043
  return MethodModifier$0(state) || MethodModifier$1(state) || MethodModifier$2(state) || MethodModifier$3(state);
2039
2044
  }
2040
2045
  }
2041
- var MethodSignature$0 = $S($E(MethodModifier), ClassElementName, $Q(_), Parameters);
2042
- function MethodSignature(state) {
2046
+ var ConstructorShorthand$0 = $TV($EXPECT($L11, fail, 'ConstructorShorthand "@"'), function($skip, $loc, $0, $1) {
2047
+ return { $loc, token: "constructor" };
2048
+ });
2049
+ function ConstructorShorthand(state) {
2043
2050
  if (state.verbose)
2044
- console.log("ENTER:", "MethodSignature");
2051
+ console.log("ENTER:", "ConstructorShorthand");
2052
+ if (state.tokenize) {
2053
+ return $TOKEN("ConstructorShorthand", state, ConstructorShorthand$0(state));
2054
+ } else {
2055
+ return ConstructorShorthand$0(state);
2056
+ }
2057
+ }
2058
+ var MethodSignature$0 = $S(ConstructorShorthand, Parameters);
2059
+ var MethodSignature$1 = $S($E(MethodModifier), ClassElementName, $Q(_), Parameters);
2060
+ function MethodSignature(state) {
2045
2061
  if (state.tokenize) {
2046
- return $TOKEN("MethodSignature", state, MethodSignature$0(state));
2062
+ return $TOKEN("MethodSignature", state, MethodSignature$0(state) || MethodSignature$1(state));
2047
2063
  } else {
2048
- return MethodSignature$0(state);
2064
+ return MethodSignature$0(state) || MethodSignature$1(state);
2049
2065
  }
2050
2066
  }
2051
2067
  var ClassElementName$0 = PropertyName;
@@ -2932,11 +2948,38 @@ var Civet = (() => {
2932
2948
  return HexLiteral$0(state);
2933
2949
  }
2934
2950
  }
2935
- var StringLiteral$0 = $TS($S(TripleDoubleQuote, TripleDoubleStringCharacters, TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
2951
+ var StringLiteral$0 = $TS($S(TripleDoubleQuote, $Q($C(TripleDoubleStringCharacters, CoffeeStringSubstitution)), TripleDoubleQuote), function($skip, $loc, $0, $1, $2, $3) {
2936
2952
  var s = $1;
2937
- var str = $2;
2953
+ var strWithSubstitutions = $2;
2938
2954
  var e = $3;
2939
- return [s, module.dedentBlockString(str), e];
2955
+ if (strWithSubstitutions.length === 0) {
2956
+ return $0;
2957
+ }
2958
+ let initialSpacing, i = 0, l = strWithSubstitutions.length, results = [s];
2959
+ const { token } = strWithSubstitutions[0];
2960
+ if (token) {
2961
+ initialSpacing = token.match(/^(\r?\n|\n)\s+/);
2962
+ } else {
2963
+ initialSpacing = false;
2964
+ }
2965
+ while (i < l) {
2966
+ let segment = strWithSubstitutions[i];
2967
+ if (segment.token) {
2968
+ segment = module.dedentBlockString(segment, initialSpacing, false);
2969
+ if (i === 0) {
2970
+ segment.token = segment.token.replace(/^(\r?\n|\n)/, "");
2971
+ }
2972
+ if (i === l - 1) {
2973
+ segment.token = segment.token.replace(/(\r?\n|\n)[ \t]*$/, "");
2974
+ }
2975
+ results.push(segment);
2976
+ } else {
2977
+ results.push(segment);
2978
+ }
2979
+ i++;
2980
+ }
2981
+ results.push(e);
2982
+ return results;
2940
2983
  });
2941
2984
  var StringLiteral$1 = $TS($S(TripleSingleQuote, TripleSingleStringCharacters, TripleSingleQuote), function($skip, $loc, $0, $1, $2, $3) {
2942
2985
  var s = $1;
@@ -2977,7 +3020,7 @@ var Civet = (() => {
2977
3020
  return SingleStringCharacter$0(state);
2978
3021
  }
2979
3022
  }
2980
- var TripleDoubleStringCharacters$0 = $TR($EXPECT($R11, fail, 'TripleDoubleStringCharacters /(?:"(?!"")|\\\\.|[^"])*/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
3023
+ var TripleDoubleStringCharacters$0 = $TR($EXPECT($R11, fail, 'TripleDoubleStringCharacters /(?:"(?!"")|#(?!\\{)|\\\\.|[^#"])+/'), function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {
2981
3024
  return { $loc, token: $0 };
2982
3025
  });
2983
3026
  function TripleDoubleStringCharacters(state) {
@@ -3001,6 +3044,28 @@ var Civet = (() => {
3001
3044
  return TripleSingleStringCharacters$0(state);
3002
3045
  }
3003
3046
  }
3047
+ var CoffeeStringSubstitution$0 = $S(CoffeeSubstitutionStart, Expression, __, CloseBrace);
3048
+ function CoffeeStringSubstitution(state) {
3049
+ if (state.verbose)
3050
+ console.log("ENTER:", "CoffeeStringSubstitution");
3051
+ if (state.tokenize) {
3052
+ return $TOKEN("CoffeeStringSubstitution", state, CoffeeStringSubstitution$0(state));
3053
+ } else {
3054
+ return CoffeeStringSubstitution$0(state);
3055
+ }
3056
+ }
3057
+ var CoffeeSubstitutionStart$0 = $TV($EXPECT($L88, fail, 'CoffeeSubstitutionStart "#{"'), function($skip, $loc, $0, $1) {
3058
+ return { $loc, token: "${" };
3059
+ });
3060
+ function CoffeeSubstitutionStart(state) {
3061
+ if (state.verbose)
3062
+ console.log("ENTER:", "CoffeeSubstitutionStart");
3063
+ if (state.tokenize) {
3064
+ return $TOKEN("CoffeeSubstitutionStart", state, CoffeeSubstitutionStart$0(state));
3065
+ } else {
3066
+ return CoffeeSubstitutionStart$0(state);
3067
+ }
3068
+ }
3004
3069
  var RegularExpressionLiteral$0 = $TV($TEXT($S($EXPECT($L45, fail, 'RegularExpressionLiteral "/"'), RegularExpressionBody, $EXPECT($L45, fail, 'RegularExpressionLiteral "/"'), RegularExpressionFlags)), function($skip, $loc, $0, $1) {
3005
3070
  return { $loc, token: $1 };
3006
3071
  });
@@ -3053,7 +3118,7 @@ var Civet = (() => {
3053
3118
  return TemplateLiteral$0(state);
3054
3119
  }
3055
3120
  }
3056
- var TemplateSubstitution$0 = $S($EXPECT($L88, fail, 'TemplateSubstitution "${"'), Expression, __, CloseBrace);
3121
+ var TemplateSubstitution$0 = $S($EXPECT($L89, fail, 'TemplateSubstitution "${"'), Expression, __, CloseBrace);
3057
3122
  function TemplateSubstitution(state) {
3058
3123
  if (state.verbose)
3059
3124
  console.log("ENTER:", "TemplateSubstitution");
@@ -3112,7 +3177,7 @@ var Civet = (() => {
3112
3177
  return MultiLineComment$0(state) || MultiLineComment$1(state);
3113
3178
  }
3114
3179
  }
3115
- var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L89, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L90, fail, 'JSMultiLineComment "*/"')), $EXPECT($R19, fail, "JSMultiLineComment /./"))), $EXPECT($L90, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3180
+ var JSMultiLineComment$0 = $TV($TEXT($S($EXPECT($L90, fail, 'JSMultiLineComment "/*"'), $Q($S($N($EXPECT($L91, fail, 'JSMultiLineComment "*/"')), $EXPECT($R19, fail, "JSMultiLineComment /./"))), $EXPECT($L91, fail, 'JSMultiLineComment "*/"'))), function($skip, $loc, $0, $1) {
3116
3181
  return { $loc, token: $1 };
3117
3182
  });
3118
3183
  function JSMultiLineComment(state) {
@@ -3138,7 +3203,7 @@ var Civet = (() => {
3138
3203
  return CoffeeSingleLineComment$0(state);
3139
3204
  }
3140
3205
  }
3141
- var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L91, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L91, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L90, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R19, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L91, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3206
+ var CoffeeMultiLineComment$0 = $TS($S($EXPECT($L92, fail, 'CoffeeMultiLineComment "###"'), $TEXT($Q($S($N($C($EXPECT($L92, fail, 'CoffeeMultiLineComment "###"'), $EXPECT($L91, fail, 'CoffeeMultiLineComment "*/"'))), $EXPECT($R19, fail, "CoffeeMultiLineComment /./")))), $EXPECT($L92, fail, 'CoffeeMultiLineComment "###"')), function($skip, $loc, $0, $1, $2, $3) {
3142
3207
  return { $loc, token: `/*${$2}*/` };
3143
3208
  });
3144
3209
  function CoffeeMultiLineComment(state) {
@@ -3150,7 +3215,7 @@ var Civet = (() => {
3150
3215
  return CoffeeMultiLineComment$0(state);
3151
3216
  }
3152
3217
  }
3153
- var InlineComment$0 = $TV($TEXT($S($EXPECT($L89, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L90, fail, 'InlineComment "*/"')), $EXPECT($R21, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L90, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3218
+ var InlineComment$0 = $TV($TEXT($S($EXPECT($L90, fail, 'InlineComment "/*"'), $TEXT($Q($S($N($EXPECT($L91, fail, 'InlineComment "*/"')), $EXPECT($R21, fail, "InlineComment /[^\\r\\n]/")))), $EXPECT($L91, fail, 'InlineComment "*/"'))), function($skip, $loc, $0, $1) {
3154
3219
  return { $loc, token: $1 };
3155
3220
  });
3156
3221
  function InlineComment(state) {
@@ -3259,7 +3324,7 @@ var Civet = (() => {
3259
3324
  return Loc$0(state);
3260
3325
  }
3261
3326
  }
3262
- var As$0 = $TS($S($EXPECT($L92, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3327
+ var As$0 = $TS($S($EXPECT($L93, fail, 'As "as"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3263
3328
  return { $loc, token: $1 };
3264
3329
  });
3265
3330
  function As(state) {
@@ -3271,7 +3336,7 @@ var Civet = (() => {
3271
3336
  return As$0(state);
3272
3337
  }
3273
3338
  }
3274
- var Async$0 = $TV($EXPECT($L93, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3339
+ var Async$0 = $TV($EXPECT($L94, fail, 'Async "async"'), function($skip, $loc, $0, $1) {
3275
3340
  return { $loc, token: $1 };
3276
3341
  });
3277
3342
  function Async(state) {
@@ -3283,7 +3348,7 @@ var Civet = (() => {
3283
3348
  return Async$0(state);
3284
3349
  }
3285
3350
  }
3286
- var Await$0 = $TS($S($EXPECT($L94, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3351
+ var Await$0 = $TS($S($EXPECT($L95, fail, 'Await "await"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3287
3352
  return { $loc, token: $1 };
3288
3353
  });
3289
3354
  function Await(state) {
@@ -3295,7 +3360,7 @@ var Civet = (() => {
3295
3360
  return Await$0(state);
3296
3361
  }
3297
3362
  }
3298
- var Catch$0 = $TV($EXPECT($L95, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3363
+ var Catch$0 = $TV($EXPECT($L96, fail, 'Catch "catch"'), function($skip, $loc, $0, $1) {
3299
3364
  return { $loc, token: $1 };
3300
3365
  });
3301
3366
  function Catch(state) {
@@ -3307,7 +3372,7 @@ var Civet = (() => {
3307
3372
  return Catch$0(state);
3308
3373
  }
3309
3374
  }
3310
- var Class$0 = $TV($EXPECT($L96, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3375
+ var Class$0 = $TV($EXPECT($L97, fail, 'Class "class"'), function($skip, $loc, $0, $1) {
3311
3376
  return { $loc, token: $1 };
3312
3377
  });
3313
3378
  function Class(state) {
@@ -3355,7 +3420,7 @@ var Civet = (() => {
3355
3420
  return CloseParen$0(state);
3356
3421
  }
3357
3422
  }
3358
- var Colon$0 = $TV($EXPECT($L97, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3423
+ var Colon$0 = $TV($EXPECT($L98, fail, 'Colon ":"'), function($skip, $loc, $0, $1) {
3359
3424
  return { $loc, token: $1 };
3360
3425
  });
3361
3426
  function Colon(state) {
@@ -3367,7 +3432,7 @@ var Civet = (() => {
3367
3432
  return Colon$0(state);
3368
3433
  }
3369
3434
  }
3370
- var Dot$0 = $TV($EXPECT($L98, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
3435
+ var Dot$0 = $TV($EXPECT($L99, fail, 'Dot "."'), function($skip, $loc, $0, $1) {
3371
3436
  return { $loc, token: $1 };
3372
3437
  });
3373
3438
  function Dot(state) {
@@ -3379,7 +3444,7 @@ var Civet = (() => {
3379
3444
  return Dot$0(state);
3380
3445
  }
3381
3446
  }
3382
- var Else$0 = $TV($EXPECT($L99, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
3447
+ var Else$0 = $TV($EXPECT($L100, fail, 'Else "else"'), function($skip, $loc, $0, $1) {
3383
3448
  return { $loc, token: $1 };
3384
3449
  });
3385
3450
  function Else(state) {
@@ -3403,7 +3468,7 @@ var Civet = (() => {
3403
3468
  return Equals$0(state);
3404
3469
  }
3405
3470
  }
3406
- var Export$0 = $TS($S($EXPECT($L100, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3471
+ var Export$0 = $TS($S($EXPECT($L101, fail, 'Export "export"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3407
3472
  return { $loc, token: $1 };
3408
3473
  });
3409
3474
  function Export(state) {
@@ -3415,7 +3480,7 @@ var Civet = (() => {
3415
3480
  return Export$0(state);
3416
3481
  }
3417
3482
  }
3418
- var For$0 = $TS($S($EXPECT($L101, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3483
+ var For$0 = $TS($S($EXPECT($L102, fail, 'For "for"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3419
3484
  return { $loc, token: $1 };
3420
3485
  });
3421
3486
  function For(state) {
@@ -3427,7 +3492,7 @@ var Civet = (() => {
3427
3492
  return For$0(state);
3428
3493
  }
3429
3494
  }
3430
- var From$0 = $TS($S($EXPECT($L102, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3495
+ var From$0 = $TS($S($EXPECT($L103, fail, 'From "from"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3431
3496
  return { $loc, token: $1 };
3432
3497
  });
3433
3498
  function From(state) {
@@ -3439,7 +3504,7 @@ var Civet = (() => {
3439
3504
  return From$0(state);
3440
3505
  }
3441
3506
  }
3442
- var Function$0 = $TV($EXPECT($L103, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
3507
+ var Function$0 = $TV($EXPECT($L104, fail, 'Function "function"'), function($skip, $loc, $0, $1) {
3443
3508
  return { $loc, token: $1 };
3444
3509
  });
3445
3510
  function Function(state) {
@@ -3451,7 +3516,7 @@ var Civet = (() => {
3451
3516
  return Function$0(state);
3452
3517
  }
3453
3518
  }
3454
- var GetOrSet$0 = $TS($S($C($EXPECT($L104, fail, 'GetOrSet "get"'), $EXPECT($L105, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3519
+ var GetOrSet$0 = $TS($S($C($EXPECT($L105, fail, 'GetOrSet "get"'), $EXPECT($L106, fail, 'GetOrSet "set"')), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3455
3520
  return { $loc, token: $1 };
3456
3521
  });
3457
3522
  function GetOrSet(state) {
@@ -3463,7 +3528,7 @@ var Civet = (() => {
3463
3528
  return GetOrSet$0(state);
3464
3529
  }
3465
3530
  }
3466
- var If$0 = $TV($EXPECT($L106, fail, 'If "if"'), function($skip, $loc, $0, $1) {
3531
+ var If$0 = $TV($EXPECT($L107, fail, 'If "if"'), function($skip, $loc, $0, $1) {
3467
3532
  return { $loc, token: $1 };
3468
3533
  });
3469
3534
  function If(state) {
@@ -3499,7 +3564,7 @@ var Civet = (() => {
3499
3564
  return In$0(state);
3500
3565
  }
3501
3566
  }
3502
- var LetOrConst$0 = $TV($C($EXPECT($L107, fail, 'LetOrConst "let"'), $EXPECT($L108, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
3567
+ var LetOrConst$0 = $TV($C($EXPECT($L108, fail, 'LetOrConst "let"'), $EXPECT($L109, fail, 'LetOrConst "const"')), function($skip, $loc, $0, $1) {
3503
3568
  return { $loc, token: $1 };
3504
3569
  });
3505
3570
  function LetOrConst(state) {
@@ -3511,7 +3576,7 @@ var Civet = (() => {
3511
3576
  return LetOrConst$0(state);
3512
3577
  }
3513
3578
  }
3514
- var Loop$0 = $TS($S($EXPECT($L109, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3579
+ var Loop$0 = $TS($S($EXPECT($L110, fail, 'Loop "loop"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3515
3580
  return { $loc, token: "while(true)" };
3516
3581
  });
3517
3582
  function Loop(state) {
@@ -3523,7 +3588,7 @@ var Civet = (() => {
3523
3588
  return Loop$0(state);
3524
3589
  }
3525
3590
  }
3526
- var New$0 = $TV($EXPECT($L110, fail, 'New "new"'), function($skip, $loc, $0, $1) {
3591
+ var New$0 = $TV($EXPECT($L111, fail, 'New "new"'), function($skip, $loc, $0, $1) {
3527
3592
  return { $loc, token: $1 };
3528
3593
  });
3529
3594
  function New(state) {
@@ -3535,7 +3600,7 @@ var Civet = (() => {
3535
3600
  return New$0(state);
3536
3601
  }
3537
3602
  }
3538
- var Of$0 = $TV($EXPECT($L111, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
3603
+ var Of$0 = $TV($EXPECT($L112, fail, 'Of "of"'), function($skip, $loc, $0, $1) {
3539
3604
  return { $loc, token: $1 };
3540
3605
  });
3541
3606
  function Of(state) {
@@ -3547,7 +3612,7 @@ var Civet = (() => {
3547
3612
  return Of$0(state);
3548
3613
  }
3549
3614
  }
3550
- var OpenBrace$0 = $TV($EXPECT($L112, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
3615
+ var OpenBrace$0 = $TV($EXPECT($L113, fail, 'OpenBrace "{"'), function($skip, $loc, $0, $1) {
3551
3616
  return { $loc, token: $1 };
3552
3617
  });
3553
3618
  function OpenBrace(state) {
@@ -3559,7 +3624,7 @@ var Civet = (() => {
3559
3624
  return OpenBrace$0(state);
3560
3625
  }
3561
3626
  }
3562
- var OpenBracket$0 = $TV($EXPECT($L113, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
3627
+ var OpenBracket$0 = $TV($EXPECT($L114, fail, 'OpenBracket "["'), function($skip, $loc, $0, $1) {
3563
3628
  return { $loc, token: $1 };
3564
3629
  });
3565
3630
  function OpenBracket(state) {
@@ -3571,7 +3636,7 @@ var Civet = (() => {
3571
3636
  return OpenBracket$0(state);
3572
3637
  }
3573
3638
  }
3574
- var OpenParen$0 = $TV($EXPECT($L114, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
3639
+ var OpenParen$0 = $TV($EXPECT($L115, fail, 'OpenParen "("'), function($skip, $loc, $0, $1) {
3575
3640
  return { $loc, token: $1 };
3576
3641
  });
3577
3642
  function OpenParen(state) {
@@ -3583,7 +3648,7 @@ var Civet = (() => {
3583
3648
  return OpenParen$0(state);
3584
3649
  }
3585
3650
  }
3586
- var QuestionMark$0 = $TV($EXPECT($L115, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
3651
+ var QuestionMark$0 = $TV($EXPECT($L116, fail, 'QuestionMark "?"'), function($skip, $loc, $0, $1) {
3587
3652
  return { $loc, token: $1 };
3588
3653
  });
3589
3654
  function QuestionMark(state) {
@@ -3595,7 +3660,7 @@ var Civet = (() => {
3595
3660
  return QuestionMark$0(state);
3596
3661
  }
3597
3662
  }
3598
- var Return$0 = $TS($S($EXPECT($L116, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3663
+ var Return$0 = $TS($S($EXPECT($L117, fail, 'Return "return"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3599
3664
  return { $loc, token: $1 };
3600
3665
  });
3601
3666
  function Return(state) {
@@ -3619,10 +3684,10 @@ var Civet = (() => {
3619
3684
  return Semicolon$0(state);
3620
3685
  }
3621
3686
  }
3622
- var Static$0 = $TV($EXPECT($L117, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
3687
+ var Static$0 = $TV($EXPECT($L118, fail, 'Static "static"'), function($skip, $loc, $0, $1) {
3623
3688
  return { $loc, token: $1 };
3624
3689
  });
3625
- var Static$1 = $TV($EXPECT($L11, fail, 'Static "@"'), function($skip, $loc, $0, $1) {
3690
+ var Static$1 = $TS($S($EXPECT($L11, fail, 'Static "@"'), $N($EXPECT($L115, fail, 'Static "("'))), function($skip, $loc, $0, $1, $2) {
3626
3691
  return { $loc, token: "static " };
3627
3692
  });
3628
3693
  function Static(state) {
@@ -3632,7 +3697,7 @@ var Civet = (() => {
3632
3697
  return Static$0(state) || Static$1(state);
3633
3698
  }
3634
3699
  }
3635
- var Switch$0 = $TV($EXPECT($L118, fail, 'Switch "switch"'), function($skip, $loc, $0, $1) {
3700
+ var Switch$0 = $TV($EXPECT($L119, fail, 'Switch "switch"'), function($skip, $loc, $0, $1) {
3636
3701
  return { $loc, token: $1 };
3637
3702
  });
3638
3703
  function Switch(state) {
@@ -3644,7 +3709,7 @@ var Civet = (() => {
3644
3709
  return Switch$0(state);
3645
3710
  }
3646
3711
  }
3647
- var Target$0 = $TV($EXPECT($L119, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
3712
+ var Target$0 = $TV($EXPECT($L120, fail, 'Target "target"'), function($skip, $loc, $0, $1) {
3648
3713
  return { $loc, token: $1 };
3649
3714
  });
3650
3715
  function Target(state) {
@@ -3656,7 +3721,7 @@ var Civet = (() => {
3656
3721
  return Target$0(state);
3657
3722
  }
3658
3723
  }
3659
- var TripleDoubleQuote$0 = $TV($EXPECT($L120, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
3724
+ var TripleDoubleQuote$0 = $TV($EXPECT($L121, fail, 'TripleDoubleQuote "\\\\\\"\\\\\\"\\\\\\""'), function($skip, $loc, $0, $1) {
3660
3725
  return { $loc, token: "`" };
3661
3726
  });
3662
3727
  function TripleDoubleQuote(state) {
@@ -3668,7 +3733,7 @@ var Civet = (() => {
3668
3733
  return TripleDoubleQuote$0(state);
3669
3734
  }
3670
3735
  }
3671
- var TripleSingleQuote$0 = $TV($EXPECT($L121, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
3736
+ var TripleSingleQuote$0 = $TV($EXPECT($L122, fail, `TripleSingleQuote "'''"`), function($skip, $loc, $0, $1) {
3672
3737
  return { $loc, token: "`" };
3673
3738
  });
3674
3739
  function TripleSingleQuote(state) {
@@ -3680,7 +3745,19 @@ var Civet = (() => {
3680
3745
  return TripleSingleQuote$0(state);
3681
3746
  }
3682
3747
  }
3683
- var Try$0 = $TV($EXPECT($L122, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
3748
+ var TripleTick$0 = $TV($EXPECT($L123, fail, 'TripleTick "```"'), function($skip, $loc, $0, $1) {
3749
+ return { $loc, token: "`" };
3750
+ });
3751
+ function TripleTick(state) {
3752
+ if (state.verbose)
3753
+ console.log("ENTER:", "TripleTick");
3754
+ if (state.tokenize) {
3755
+ return $TOKEN("TripleTick", state, TripleTick$0(state));
3756
+ } else {
3757
+ return TripleTick$0(state);
3758
+ }
3759
+ }
3760
+ var Try$0 = $TV($EXPECT($L124, fail, 'Try "try"'), function($skip, $loc, $0, $1) {
3684
3761
  return { $loc, token: $1 };
3685
3762
  });
3686
3763
  function Try(state) {
@@ -3692,7 +3769,7 @@ var Civet = (() => {
3692
3769
  return Try$0(state);
3693
3770
  }
3694
3771
  }
3695
- var Unless$0 = $TV($EXPECT($L123, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
3772
+ var Unless$0 = $TV($EXPECT($L125, fail, 'Unless "unless"'), function($skip, $loc, $0, $1) {
3696
3773
  return { $loc, token: $1 };
3697
3774
  });
3698
3775
  function Unless(state) {
@@ -3704,7 +3781,7 @@ var Civet = (() => {
3704
3781
  return Unless$0(state);
3705
3782
  }
3706
3783
  }
3707
- var Var$0 = $TV($EXPECT($L124, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
3784
+ var Var$0 = $TV($EXPECT($L126, fail, 'Var "var"'), function($skip, $loc, $0, $1) {
3708
3785
  return { $loc, token: $1 };
3709
3786
  });
3710
3787
  function Var(state) {
@@ -3716,7 +3793,7 @@ var Civet = (() => {
3716
3793
  return Var$0(state);
3717
3794
  }
3718
3795
  }
3719
- var When$0 = $TS($S($EXPECT($L125, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3796
+ var When$0 = $TS($S($EXPECT($L127, fail, 'When "when"'), NonIdContinue), function($skip, $loc, $0, $1, $2) {
3720
3797
  return { $loc, token: "case" };
3721
3798
  });
3722
3799
  function When(state) {
@@ -3742,7 +3819,7 @@ var Civet = (() => {
3742
3819
  return JSXElement$0(state) || JSXElement$1(state);
3743
3820
  }
3744
3821
  }
3745
- var JSXSelfClosingElement$0 = $S($EXPECT($L7, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L126, fail, 'JSXSelfClosingElement "/>"'));
3822
+ var JSXSelfClosingElement$0 = $S($EXPECT($L7, fail, 'JSXSelfClosingElement "<"'), $TEXT(JSXElementName), $E(JSXAttributes), __, $EXPECT($L128, fail, 'JSXSelfClosingElement "/>"'));
3746
3823
  function JSXSelfClosingElement(state) {
3747
3824
  if (state.verbose)
3748
3825
  console.log("ENTER:", "JSXSelfClosingElement");
@@ -3762,7 +3839,7 @@ var Civet = (() => {
3762
3839
  return JSXOpeningElement$0(state);
3763
3840
  }
3764
3841
  }
3765
- var JSXClosingElement$0 = $S($EXPECT($L127, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L54, fail, 'JSXClosingElement ">"'));
3842
+ var JSXClosingElement$0 = $S($EXPECT($L129, fail, 'JSXClosingElement "</"'), __, $TEXT(JSXElementName), __, $EXPECT($L54, fail, 'JSXClosingElement ">"'));
3766
3843
  function JSXClosingElement(state) {
3767
3844
  if (state.verbose)
3768
3845
  console.log("ENTER:", "JSXClosingElement");
@@ -3772,7 +3849,7 @@ var Civet = (() => {
3772
3849
  return JSXClosingElement$0(state);
3773
3850
  }
3774
3851
  }
3775
- var JSXFragment$0 = $S($EXPECT($L128, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L129, fail, 'JSXFragment "</>"'));
3852
+ var JSXFragment$0 = $S($EXPECT($L130, fail, 'JSXFragment "<>"'), $E(JSXChildren), $EXPECT($L131, fail, 'JSXFragment "</>"'));
3776
3853
  function JSXFragment(state) {
3777
3854
  if (state.verbose)
3778
3855
  console.log("ENTER:", "JSXFragment");
@@ -3906,7 +3983,7 @@ var Civet = (() => {
3906
3983
  return TypeDeclaration$0(state);
3907
3984
  }
3908
3985
  }
3909
- var TypeDeclarationModifier$0 = $S($EXPECT($L130, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
3986
+ var TypeDeclarationModifier$0 = $S($EXPECT($L132, fail, 'TypeDeclarationModifier "declare"'), NonIdContinue);
3910
3987
  var TypeDeclarationModifier$1 = Export;
3911
3988
  function TypeDeclarationModifier(state) {
3912
3989
  if (state.tokenize) {
@@ -3925,7 +4002,7 @@ var Civet = (() => {
3925
4002
  return TypeDeclarationRest$0(state) || TypeDeclarationRest$1(state) || TypeDeclarationRest$2(state);
3926
4003
  }
3927
4004
  }
3928
- var TypeKeyword$0 = $S($EXPECT($L131, fail, 'TypeKeyword "type"'), NonIdContinue);
4005
+ var TypeKeyword$0 = $S($EXPECT($L133, fail, 'TypeKeyword "type"'), NonIdContinue);
3929
4006
  function TypeKeyword(state) {
3930
4007
  if (state.verbose)
3931
4008
  console.log("ENTER:", "TypeKeyword");
@@ -3935,7 +4012,7 @@ var Civet = (() => {
3935
4012
  return TypeKeyword$0(state);
3936
4013
  }
3937
4014
  }
3938
- var Interface$0 = $S($EXPECT($L132, fail, 'Interface "interface"'), NonIdContinue);
4015
+ var Interface$0 = $S($EXPECT($L134, fail, 'Interface "interface"'), NonIdContinue);
3939
4016
  function Interface(state) {
3940
4017
  if (state.verbose)
3941
4018
  console.log("ENTER:", "Interface");
@@ -3945,7 +4022,7 @@ var Civet = (() => {
3945
4022
  return Interface$0(state);
3946
4023
  }
3947
4024
  }
3948
- var Namespace$0 = $S($EXPECT($L133, fail, 'Namespace "namespace"'), NonIdContinue);
4025
+ var Namespace$0 = $S($EXPECT($L135, fail, 'Namespace "namespace"'), NonIdContinue);
3949
4026
  function Namespace(state) {
3950
4027
  if (state.verbose)
3951
4028
  console.log("ENTER:", "Namespace");
@@ -4049,7 +4126,7 @@ var Civet = (() => {
4049
4126
  return NestedTypeDeclaration$0(state);
4050
4127
  }
4051
4128
  }
4052
- var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R31, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L134, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R32, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4129
+ var TypeIndexSignature$0 = $S($E($S($R$0($EXPECT($R31, fail, "TypeIndexSignature /[+-]?/")), $EXPECT($L136, fail, 'TypeIndexSignature "readonly"'), __)), OpenBracket, TypeIndex, CloseBracket, $E($S(__, $R$0($EXPECT($R32, fail, "TypeIndexSignature /[+-]/")), QuestionMark)));
4053
4130
  function TypeIndexSignature(state) {
4054
4131
  if (state.verbose)
4055
4132
  console.log("ENTER:", "TypeIndexSignature");
@@ -4080,7 +4157,7 @@ var Civet = (() => {
4080
4157
  return TypeSuffix$0(state);
4081
4158
  }
4082
4159
  }
4083
- var ReturnTypeSuffix$0 = $T($S(__, Colon, $E($S(__, $EXPECT($L135, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function(value) {
4160
+ var ReturnTypeSuffix$0 = $T($S(__, Colon, $E($S(__, $EXPECT($L137, fail, 'ReturnTypeSuffix "asserts"'), NonIdContinue)), TypePredicate), function(value) {
4084
4161
  return { "ts": true, "children": value };
4085
4162
  });
4086
4163
  function ReturnTypeSuffix(state) {
@@ -4142,9 +4219,9 @@ var Civet = (() => {
4142
4219
  return TypeUnarySuffix$0(state);
4143
4220
  }
4144
4221
  }
4145
- var TypeUnaryOp$0 = $EXPECT($L136, fail, 'TypeUnaryOp "keyof"');
4222
+ var TypeUnaryOp$0 = $EXPECT($L138, fail, 'TypeUnaryOp "keyof"');
4146
4223
  var TypeUnaryOp$1 = $EXPECT($L72, fail, 'TypeUnaryOp "typeof"');
4147
- var TypeUnaryOp$2 = $EXPECT($L137, fail, 'TypeUnaryOp "infer"');
4224
+ var TypeUnaryOp$2 = $EXPECT($L139, fail, 'TypeUnaryOp "infer"');
4148
4225
  function TypeUnaryOp(state) {
4149
4226
  if (state.tokenize) {
4150
4227
  return $TOKEN("TypeUnaryOp", state, TypeUnaryOp$0(state) || TypeUnaryOp$1(state) || TypeUnaryOp$2(state));
@@ -4186,7 +4263,7 @@ var Civet = (() => {
4186
4263
  }
4187
4264
  var TypeLiteral$0 = Literal;
4188
4265
  var TypeLiteral$1 = $EXPECT($L71, fail, 'TypeLiteral "void"');
4189
- var TypeLiteral$2 = $EXPECT($L138, fail, 'TypeLiteral "[]"');
4266
+ var TypeLiteral$2 = $EXPECT($L140, fail, 'TypeLiteral "[]"');
4190
4267
  function TypeLiteral(state) {
4191
4268
  if (state.tokenize) {
4192
4269
  return $TOKEN("TypeLiteral", state, TypeLiteral$0(state) || TypeLiteral$1(state) || TypeLiteral$2(state));
@@ -4466,8 +4543,6 @@ var Civet = (() => {
4466
4543
  }
4467
4544
  var Init$0 = $TS($S($E(Shebang), DirectivePrologue, $EXPECT($L1, fail, 'Init ""')), function($skip, $loc, $0, $1, $2, $3) {
4468
4545
  var directives = $2;
4469
- module.lastIndent = 0;
4470
- module.trackedIndents = [0];
4471
4546
  module.currentIndent = 0;
4472
4547
  module.indentLevels = [0];
4473
4548
  module.verbose = false;
@@ -4475,15 +4550,19 @@ var Civet = (() => {
4475
4550
  const compatRe = /use coffee-compat/;
4476
4551
  module.coffeeCompat = directives.some((d) => d[1].token?.match(compatRe));
4477
4552
  }
4478
- module.dedentBlockString = function({ $loc: $loc2, token: str }) {
4479
- const spacing = str.match(/^(\r?\n|\n)\s+/);
4553
+ module.dedentBlockString = function({ $loc: $loc2, token: str }, spacing, trim = true) {
4554
+ if (spacing == null)
4555
+ spacing = str.match(/^(\r?\n|\n)[ \t]+/);
4480
4556
  if (spacing) {
4481
4557
  str = str.replaceAll(spacing[0], "\n");
4482
4558
  const l = spacing.length;
4483
4559
  $loc2.pos += l;
4484
4560
  $loc2.length -= l;
4485
4561
  }
4486
- str = str.replace(/^(\r?\n|\n)/, "").replace(/(\r?\n|\n)[ \t]*$/, "").replace(/(`|\$)/g, "\\$1");
4562
+ if (trim) {
4563
+ str = str.replace(/^(\r?\n|\n)/, "").replace(/(\r?\n|\n)[ \t]*$/, "");
4564
+ }
4565
+ str = str.replace(/(`|\$)/g, "\\$1");
4487
4566
  return {
4488
4567
  $loc: $loc2,
4489
4568
  token: str
@@ -4500,9 +4579,8 @@ var Civet = (() => {
4500
4579
  return Init$0(state);
4501
4580
  }
4502
4581
  }
4503
- var Indent$0 = $TV($Q($C($EXPECT($L139, fail, 'Indent " "'), $EXPECT($L140, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
4582
+ var Indent$0 = $TV($Q($C($EXPECT($L141, fail, 'Indent " "'), $EXPECT($L142, fail, 'Indent "\\\\t"'))), function($skip, $loc, $0, $1) {
4504
4583
  const level = $1.length;
4505
- module.lastIndent = level;
4506
4584
  return {
4507
4585
  $loc,
4508
4586
  token: "".padStart(level * 2),
@@ -4519,7 +4597,7 @@ var Civet = (() => {
4519
4597
  }
4520
4598
  }
4521
4599
  var TrackIndent$0 = $TV($EXPECT($L1, fail, 'TrackIndent ""'), function($skip, $loc, $0, $1) {
4522
- module.trackedIndents.push(module.lastIndent);
4600
+ module.indentLevels.push(module.currentIndent);
4523
4601
  });
4524
4602
  function TrackIndent(state) {
4525
4603
  if (state.verbose)
@@ -4530,22 +4608,11 @@ var Civet = (() => {
4530
4608
  return TrackIndent$0(state);
4531
4609
  }
4532
4610
  }
4533
- var RestoreIndent$0 = $TV($EXPECT($L1, fail, 'RestoreIndent ""'), function($skip, $loc, $0, $1) {
4534
- const topLevel = module.trackedIndents.pop();
4535
- module.lastIndent = topLevel;
4536
- });
4537
- function RestoreIndent(state) {
4538
- if (state.verbose)
4539
- console.log("ENTER:", "RestoreIndent");
4540
- if (state.tokenize) {
4541
- return $TOKEN("RestoreIndent", state, RestoreIndent$0(state));
4542
- } else {
4543
- return RestoreIndent$0(state);
4544
- }
4545
- }
4546
4611
  var Samedent$0 = $TS($S($E(EOS), Indent), function($skip, $loc, $0, $1, $2) {
4547
4612
  var indent = $2;
4548
- if (indent.level === module.trackedIndents[module.trackedIndents.length - 1]) {
4613
+ const { level } = indent;
4614
+ const currentIndent = module.indentLevels[module.indentLevels.length - 1];
4615
+ if (level === currentIndent) {
4549
4616
  return $0;
4550
4617
  }
4551
4618
  return $skip;
@@ -4561,7 +4628,9 @@ var Civet = (() => {
4561
4628
  }
4562
4629
  var IndentedFurther$0 = $TS($S($E(EOS), Indent), function($skip, $loc, $0, $1, $2) {
4563
4630
  var indent = $2;
4564
- if (indent.level > module.trackedIndents[module.trackedIndents.length - 1]) {
4631
+ const { level } = indent;
4632
+ const currentIndent = module.indentLevels[module.indentLevels.length - 1];
4633
+ if (level > currentIndent) {
4565
4634
  return $0;
4566
4635
  }
4567
4636
  return $skip;
@@ -4581,7 +4650,6 @@ var Civet = (() => {
4581
4650
  console.log("pushing indent", module.currentIndent);
4582
4651
  }
4583
4652
  module.indentLevels.push(module.currentIndent);
4584
- return module.currentIndent;
4585
4653
  });
4586
4654
  function PushIndent(state) {
4587
4655
  if (state.verbose)
@@ -4598,7 +4666,6 @@ var Civet = (() => {
4598
4666
  }
4599
4667
  module.indentLevels.pop();
4600
4668
  module.currentIndent = module.indentLevels[module.indentLevels.length - 1];
4601
- return module.currentIndent;
4602
4669
  });
4603
4670
  function PopIndent(state) {
4604
4671
  if (state.verbose)
@@ -4869,7 +4936,6 @@ var Civet = (() => {
4869
4936
  console.warn("No source map found in code");
4870
4937
  return codeWithSourceMap;
4871
4938
  }
4872
- debugger;
4873
4939
  composedLines = SourceMap.composeLines(upstreamMap.data.lines, parsed.lines);
4874
4940
  upstreamMap.data.lines = composedLines;
4875
4941
  remappedSourceMapJSON = upstreamMap.json(sourcePath, targetPath);