@danielx/civet 0.11.9 → 0.11.10

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/CHANGELOG.md CHANGED
@@ -4,47 +4,61 @@ This changelog is generated automatically by [`build/changelog.civet`](build/cha
4
4
  For each version of Civet, it lists and links to all incorporated PRs,
5
5
  as well as a full diff and commit list.
6
6
 
7
+ ## 0.11.10 (2026-05-18, [diff](https://github.com/DanielXMoore/Civet/compare/v0.11.9...v0.11.10), [commits](https://github.com/DanielXMoore/Civet/commits/v0.11.10))
8
+ * Coverage: re-enable `--parallel` for test runs [[#2064](https://github.com/DanielXMoore/Civet/pull/2064)]
9
+ * LSP: implement workspace/symbol [[#2049](https://github.com/DanielXMoore/Civet/pull/2049)]
10
+ * Fix reserved word ref creation [[#2076](https://github.com/DanielXMoore/Civet/pull/2076)]
11
+ * Dev: add `pnpm test:grep` script and document bootstrapping binaries [[#2079](https://github.com/DanielXMoore/Civet/pull/2079)]
12
+ * Coffee classes: backtrack on `:symbol` LHS so `[Symbol.x]` wraps [[#2077](https://github.com/DanielXMoore/Civet/pull/2077)]
13
+ * LSP: fix missing line/column info by unwrapping ParseErrors [[#2075](https://github.com/DanielXMoore/Civet/pull/2075)]
14
+ * LSP: skip semantic tokens in unmapped TS prelude code [[#2070](https://github.com/DanielXMoore/Civet/pull/2070)]
15
+ * Fix `x.literal` shorthand [[#2074](https://github.com/DanielXMoore/Civet/pull/2074)]
16
+ * LSP: emit semantic tokens for import binding names [[#2071](https://github.com/DanielXMoore/Civet/pull/2071)]
17
+ * Sourcemap: walk back in `remapPosition` when line has no mapping [[#2066](https://github.com/DanielXMoore/Civet/pull/2066)]
18
+ * LSP: warn + narrow scope when project has no tsconfig.json [[#2078](https://github.com/DanielXMoore/Civet/pull/2078)]
19
+ * LSP handlers for `signatureHelp`, `prepareRename`, `documentHighlight`, `typeDefinition`, `implementation`, `foldingRange`, `selectionRange`, `linkedEditingRange` [[#2069](https://github.com/DanielXMoore/Civet/pull/2069)]
20
+
7
21
  ## 0.11.9 (2026-05-14, [diff](https://github.com/DanielXMoore/Civet/compare/v0.11.8...v0.11.9), [commits](https://github.com/DanielXMoore/Civet/commits/v0.11.9))
8
22
  * Browser LSP: fix `console` types in non-DOM mode [[#2047](https://github.com/DanielXMoore/Civet/pull/2047)]
9
23
  * LSP e2e: fix Linux test reliability (Wayland headless + flaky import-completion) [[#2050](https://github.com/DanielXMoore/Civet/pull/2050)]
10
- * Tests: force v8 coverage flush before mocha worker exit [[#2056](https://github.com/DanielXMoore/Civet/pull/2056)]
24
+ * Tests: force V8 coverage flush before mocha worker exit [[#2056](https://github.com/DanielXMoore/Civet/pull/2056)]
11
25
  * CI: rolling cache keys + prune stale entries [[#2057](https://github.com/DanielXMoore/Civet/pull/2057)]
12
- * Fix unicode property names in `@`-bind, `::` prototype access, `:` symbol shortand [[#2055](https://github.com/DanielXMoore/Civet/pull/2055)]
13
- * fix(coverage): eliminate flakiness from parallel mocha + dual-compile [[#2060](https://github.com/DanielXMoore/Civet/pull/2060)]
14
- * Restore leaf-glom fallback in `prepend` (fixes #2058) [[#2059](https://github.com/DanielXMoore/Civet/pull/2059)]
26
+ * Fix Unicode property names in `@`-bind, `::` prototype access, `:` symbol shorthand [[#2055](https://github.com/DanielXMoore/Civet/pull/2055)]
27
+ * Coverage: eliminate flakiness from parallel mocha + dual-compile [[#2060](https://github.com/DanielXMoore/Civet/pull/2060)]
28
+ * Restore leaf-glom fallback in `prepend` [[#2059](https://github.com/DanielXMoore/Civet/pull/2059)]
15
29
  * Upgrade Prettier, add `civet.dev` workspace [[#2063](https://github.com/DanielXMoore/Civet/pull/2063)]
16
- * fix: unwrap if/then/else assignment to ternary without ref (#2051) [[#2054](https://github.com/DanielXMoore/Civet/pull/2054)]
30
+ * Fix: unwrap if/then/else assignment to ternary without ref [[#2054](https://github.com/DanielXMoore/Civet/pull/2054)]
17
31
 
18
32
  ## 0.11.8 (2026-05-13, [diff](https://github.com/DanielXMoore/Civet/compare/v0.11.7...v0.11.8), [commits](https://github.com/DanielXMoore/Civet/commits/v0.11.8))
19
- * Dev: Autopublish vsce and ovsx from GitHub CI [[#1963](https://github.com/DanielXMoore/Civet/pull/1963)]
20
- * dev: show-uncovered script at root [[#1966](https://github.com/DanielXMoore/Civet/pull/1966)]
21
- * ci: upgrade claude; track output in s3 [[#1975](https://github.com/DanielXMoore/Civet/pull/1975)]
22
- * lsp: auto-reload TSService when tsconfig.json changes [[#1965](https://github.com/DanielXMoore/Civet/pull/1965)]
23
- * dev: coverage template and branch coverage report [[#1971](https://github.com/DanielXMoore/Civet/pull/1971)]
33
+ * Dev: autopublish vsce and ovsx from GitHub CI [[#1963](https://github.com/DanielXMoore/Civet/pull/1963)]
34
+ * Dev: show-uncovered script at root [[#1966](https://github.com/DanielXMoore/Civet/pull/1966)]
35
+ * CI: upgrade Claude; track output in S3 [[#1975](https://github.com/DanielXMoore/Civet/pull/1975)]
36
+ * LSP: auto-reload TSService when tsconfig.json changes [[#1965](https://github.com/DanielXMoore/Civet/pull/1965)]
37
+ * Dev: coverage template and branch coverage report [[#1971](https://github.com/DanielXMoore/Civet/pull/1971)]
24
38
  * Remove legacy esbuild-plugin; JS output extensions imply --js [[#1976](https://github.com/DanielXMoore/Civet/pull/1976)]
25
39
  * Coverage: 100% for generate.civet and sourcemap.civet [[#1974](https://github.com/DanielXMoore/Civet/pull/1974)]
26
- * test: increase coverage for compiler core (main, config, worker-pool, esm) [[#1972](https://github.com/DanielXMoore/Civet/pull/1972)]
40
+ * Test: increase coverage for compiler core (main, config, worker-pool, esm) [[#1972](https://github.com/DanielXMoore/Civet/pull/1972)]
27
41
  * Coverage: unplugin & build plugins — 100% line coverage [[#1973](https://github.com/DanielXMoore/Civet/pull/1973)]
28
- * ci: migrate to codecov [[#1978](https://github.com/DanielXMoore/Civet/pull/1978)]
29
- * ci: batched dot reporter [[#1977](https://github.com/DanielXMoore/Civet/pull/1977)]
30
- * test: increase parser transform coverage to 97% [[#1982](https://github.com/DanielXMoore/Civet/pull/1982)]
31
- * fix: LSP stale diagnostics on close/delete, add protocol test harness [[#1980](https://github.com/DanielXMoore/Civet/pull/1980)]
32
- * test(cli): add coverage for piped stdin, --config, --typecheck [[#1981](https://github.com/DanielXMoore/Civet/pull/1981)]
42
+ * CI: migrate to Codecov [[#1978](https://github.com/DanielXMoore/Civet/pull/1978)]
43
+ * CI: batched dot reporter [[#1977](https://github.com/DanielXMoore/Civet/pull/1977)]
44
+ * Test: increase parser transform coverage to 97% [[#1982](https://github.com/DanielXMoore/Civet/pull/1982)]
45
+ * Fix LSP stale diagnostics on close/delete, add protocol test harness [[#1980](https://github.com/DanielXMoore/Civet/pull/1980)]
46
+ * Test (CLI): add coverage for piped stdin, --config, --typecheck [[#1981](https://github.com/DanielXMoore/Civet/pull/1981)]
33
47
  * Test coverage for CLI and REPL [[#1983](https://github.com/DanielXMoore/Civet/pull/1983)]
34
48
  * Reforbid comma in `:=` shorthand [[#1987](https://github.com/DanielXMoore/Civet/pull/1987)]
35
49
  * Preserve quotes in method signature names [[#1989](https://github.com/DanielXMoore/Civet/pull/1989)]
36
50
  * Fix `case` list with newline before comma [[#1991](https://github.com/DanielXMoore/Civet/pull/1991)]
37
- * add helix config details [[#1992](https://github.com/DanielXMoore/Civet/pull/1992)]
51
+ * Add Helix config details [[#1992](https://github.com/DanielXMoore/Civet/pull/1992)]
38
52
  * Fix `asserts` in interface call signature return type [[#1994](https://github.com/DanielXMoore/Civet/pull/1994)]
39
- * fix: change zed extension grammar repository to github url [[#1996](https://github.com/DanielXMoore/Civet/pull/1996)]
40
- * add pnpm typecheck for .civet + .hera files, refactor types.civet onto shared bases [[#1995](https://github.com/DanielXMoore/Civet/pull/1995)]
41
- * don't lose claude logs when hitting max turns [[#2005](https://github.com/DanielXMoore/Civet/pull/2005)]
53
+ * Zed: point extension grammar repo to GitHub URL [[#1996](https://github.com/DanielXMoore/Civet/pull/1996)]
54
+ * Add `pnpm typecheck` for `.civet` + `.hera` files; refactor `types.civet` onto shared bases [[#1995](https://github.com/DanielXMoore/Civet/pull/1995)]
55
+ * CI: don't lose Claude logs when hitting max turns [[#2005](https://github.com/DanielXMoore/Civet/pull/2005)]
42
56
  * Upgrade @danielx/hera 0.8.20 → 0.9.0 [[#2006](https://github.com/DanielXMoore/Civet/pull/2006)]
43
57
  * CLI lazy loads unplugin, fix race, allow symlink failure on Windows [[#2007](https://github.com/DanielXMoore/Civet/pull/2007)]
44
- * Remove some unnecessary boolean checks [[#2008](https://github.com/DanielXMoore/Civet/pull/2008)]
58
+ * Remove unnecessary boolean checks [[#2008](https://github.com/DanielXMoore/Civet/pull/2008)]
45
59
  * Semantic tokens for comments, fixing `coffeeComment` syntax highlighting [[#2011](https://github.com/DanielXMoore/Civet/pull/2011)]
46
60
  * Document optional elements in tuple types [[#2012](https://github.com/DanielXMoore/Civet/pull/2012)]
47
- * ci: separate typecheck step [[#2013](https://github.com/DanielXMoore/Civet/pull/2013)]
61
+ * CI: separate typecheck step [[#2013](https://github.com/DanielXMoore/Civet/pull/2013)]
48
62
  * Add typecheck iteration tooling [[#2014](https://github.com/DanielXMoore/Civet/pull/2014)]
49
63
  * Fix `typeof` types consuming top-level assignments [[#2017](https://github.com/DanielXMoore/Civet/pull/2017)]
50
64
  * Fix computed index side effects evaluated twice in compound assignment expressions [[#1885](https://github.com/DanielXMoore/Civet/pull/1885)]
@@ -52,9 +66,9 @@ as well as a full diff and commit list.
52
66
  * VSCode basic syntax highlighting for `type`/`interface` [[#2022](https://github.com/DanielXMoore/Civet/pull/2022)]
53
67
  * Fix implicit return of `abstract class` mixin body [[#2020](https://github.com/DanielXMoore/Civet/pull/2020)]
54
68
  * Fix LSP `@` shorthand incorrectly completing as `@this.member` [[#2032](https://github.com/DanielXMoore/Civet/pull/2032)]
55
- * test(ci): reduce Windows mocha flakes via worker cap + warmup hook [[#2033](https://github.com/DanielXMoore/Civet/pull/2033)]
56
- * LSP: Fix `@` completion in implicit return context [[#2034](https://github.com/DanielXMoore/Civet/pull/2034)]
57
- * svelte lang="civet" support in vscode extension [[#2021](https://github.com/DanielXMoore/Civet/pull/2021)]
69
+ * Test (CI): reduce Windows mocha flakes via worker cap + warmup hook [[#2033](https://github.com/DanielXMoore/Civet/pull/2033)]
70
+ * LSP: fix `@` completion in implicit return context [[#2034](https://github.com/DanielXMoore/Civet/pull/2034)]
71
+ * VSCode: support `lang="civet"` in Svelte components [[#2021](https://github.com/DanielXMoore/Civet/pull/2021)]
58
72
  * Fix unplugin + esbuild sourcemap source paths when using library [[#2035](https://github.com/DanielXMoore/Civet/pull/2035)]
59
73
  * Make Import rule express its intent via NonIdContinue [[#2037](https://github.com/DanielXMoore/Civet/pull/2037)]
60
74
  * Allow non-identifier Unicode codepoints as identifiers [[#2036](https://github.com/DanielXMoore/Civet/pull/2036)]
package/dist/browser.js CHANGED
@@ -7035,6 +7035,7 @@ ${js}`
7035
7035
  ImplicitAccessStart,
7036
7036
  PropertyAccessModifier,
7037
7037
  PropertyAccess,
7038
+ AccessLiteral,
7038
7039
  ExplicitPropertyGlob,
7039
7040
  PropertyGlob,
7040
7041
  PropertyBind,
@@ -10836,9 +10837,9 @@ ${js}`
10836
10837
  if (!$$r)
10837
10838
  return;
10838
10839
  if ($$ctx.tokenize) return $$r;
10839
- let $$loc = $$r.loc, $$value = $$r.value, $$m = /* @__PURE__ */ (function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
10840
+ let $$loc = $$r.loc, $$value = $$r.value, $$m = (function($skip, $loc, $0, $1, $2, $3, $4, $5, $6, $7) {
10840
10841
  var decorators = $2, declare = $3, access = $4, static_ = $5, override = $6, assignment = $7;
10841
- return {
10842
+ return assignment.assigned?.type === "SymbolLiteral" ? $skip : {
10842
10843
  type: static_ ? "CoffeeClassPublic" : "CoffeeClassPrivate",
10843
10844
  children: [decorators, declare, access, static_, override, assignment],
10844
10845
  assignment
@@ -12009,19 +12010,21 @@ ${js}`
12009
12010
  loc: $$final.loc
12010
12011
  }), $$ctx.exit && $$ctx.exit("PropertyAccessModifier", $$state, $$final, $$eventData), $$final;
12011
12012
  }
12012
- var PropertyAccess$0$parser = (0, import_lib2.$S)(AccessStart, (0, import_lib2.$C)(TemplateLiteral, StringLiteral, IntegerLiteral, SymbolLiteral)), PropertyAccess$1$parser = (0, import_lib2.$S)(AccessStart, (0, import_lib2.$EXPECT)($L22, 'PropertyAccess "-"'), IntegerLiteral), PropertyAccess$2$parser = (0, import_lib2.$S)(AccessStart, (0, import_lib2.$Q)(InlineComment), (0, import_lib2.$C)(IdentifierName, PrivateIdentifier, LengthShorthand)), PropertyAccess$3$parser = (0, import_lib2.$S)(ExplicitAccessStart, (0, import_lib2.$Y)(EOS)), PropertyAccess$4$parser = (0, import_lib2.$S)(ImplicitAccessStart, (0, import_lib2.$C)(PrivateIdentifier, LengthShorthand)), PropertyAccess$5$parser = (0, import_lib2.$S)(CoffeePrototypeEnabled, (0, import_lib2.$E)(PropertyAccessModifier), DoubleColon, (0, import_lib2.$E)(IdentifierName));
12013
+ var PropertyAccess$0$parser = (0, import_lib2.$S)(AccessStart, (0, import_lib2.$C)(TemplateLiteral, AccessLiteral, SymbolLiteral)), PropertyAccess$1$parser = (0, import_lib2.$S)(AccessStart, (0, import_lib2.$EXPECT)($L22, 'PropertyAccess "-"'), IntegerLiteral), PropertyAccess$2$parser = (0, import_lib2.$S)(AccessStart, (0, import_lib2.$Q)(InlineComment), (0, import_lib2.$C)(IdentifierName, PrivateIdentifier, LengthShorthand)), PropertyAccess$3$parser = (0, import_lib2.$S)(ExplicitAccessStart, (0, import_lib2.$Y)(EOS)), PropertyAccess$4$parser = (0, import_lib2.$S)(ImplicitAccessStart, (0, import_lib2.$C)(PrivateIdentifier, LengthShorthand)), PropertyAccess$5$parser = (0, import_lib2.$S)(CoffeePrototypeEnabled, (0, import_lib2.$E)(PropertyAccessModifier), DoubleColon, (0, import_lib2.$E)(IdentifierName));
12013
12014
  function PropertyAccess$0($$ctx, $$state) {
12014
12015
  let $$r = PropertyAccess$0$parser($$ctx, $$state);
12015
12016
  if (!$$r)
12016
12017
  return;
12017
12018
  if ($$ctx.tokenize) return $$r;
12018
12019
  let $$loc = $$r.loc, $$value = $$r.value, $$m = (function($skip, $loc, $0, $1, $2) {
12019
- var dot = $1, literal = $2;
12020
+ var dot = $1, expression = $2;
12020
12021
  return {
12021
12022
  type: "Index",
12023
+ expression,
12022
12024
  children: [
12023
12025
  adjustIndexAccess(dot),
12024
- literal,
12026
+ expression,
12027
+ "",
12025
12028
  "]"
12026
12029
  ]
12027
12030
  };
@@ -12059,15 +12062,26 @@ ${js}`
12059
12062
  if ($$ctx.tokenize) return $$r;
12060
12063
  let $$loc = $$r.loc, $$value = $$r.value, $$m = (function($skip, $loc, $0, $1, $2, $3) {
12061
12064
  var dot = $1, comments = $2, id = $3;
12062
- return id.unicode ? {
12063
- type: "Index",
12064
- children: [
12065
- adjustIndexAccess(dot),
12066
- ...comments,
12067
- propertyKey(id),
12068
- "]"
12069
- ]
12070
- } : {
12065
+ if (id.unicode) {
12066
+ let key = propertyKey(id), expression = {
12067
+ type: "Literal",
12068
+ subtype: "StringLiteral",
12069
+ children: [key],
12070
+ raw: key.token
12071
+ };
12072
+ return {
12073
+ type: "Index",
12074
+ expression,
12075
+ children: [
12076
+ adjustIndexAccess(dot),
12077
+ ...comments,
12078
+ expression,
12079
+ "",
12080
+ "]"
12081
+ ]
12082
+ };
12083
+ }
12084
+ return {
12071
12085
  type: "PropertyAccess",
12072
12086
  name: id.name,
12073
12087
  dot,
@@ -12155,6 +12169,30 @@ ${js}`
12155
12169
  loc: $$final.loc
12156
12170
  }), $$ctx.exit && $$ctx.exit("PropertyAccess", $$state, $$final, $$eventData), $$final;
12157
12171
  }
12172
+ var AccessLiteral$parser = (0, import_lib2.$C)(StringLiteral, IntegerLiteral);
12173
+ function AccessLiteral($$ctx, $$state) {
12174
+ let $$entered = $$ctx.enter && $$ctx.enter("AccessLiteral", $$state);
12175
+ if ($$entered && "cache" in $$entered) return $$entered.cache;
12176
+ let $$eventData = $$entered && $$entered.data, $$r = AccessLiteral$parser($$ctx, $$state);
12177
+ if (!$$r) {
12178
+ $$ctx.exit && $$ctx.exit("AccessLiteral", $$state, void 0, $$eventData);
12179
+ return;
12180
+ }
12181
+ if ($$ctx.tokenize) {
12182
+ let $$tok = $$r;
12183
+ return $$tok.value = { type: "AccessLiteral", children: [$$r.value].flat(), token: $$state.input.substring($$state.pos, $$r.pos), loc: $$r.loc }, $$ctx.exit && $$ctx.exit("AccessLiteral", $$state, $$tok, $$eventData), $$tok;
12184
+ }
12185
+ let $$loc = $$r.loc, $$value = $$r.value, $$m = (function($skip, $loc, $0, $1) {
12186
+ var literal = $0;
12187
+ return {
12188
+ type: "Literal",
12189
+ subtype: literal.type,
12190
+ children: [literal],
12191
+ raw: literal.token
12192
+ };
12193
+ })(import_lib2.SKIP, $$loc, $$value, $$value), $$final;
12194
+ return $$m !== import_lib2.SKIP && ($$r.value = $$m, $$final = $$r), $$ctx.exit && $$ctx.exit("AccessLiteral", $$state, $$final, $$eventData), $$final;
12195
+ }
12158
12196
  var ExplicitPropertyGlob$parser = (0, import_lib2.$S)((0, import_lib2.$Y)(ExplicitAccessStart), PropertyGlob);
12159
12197
  function ExplicitPropertyGlob($$ctx, $$state) {
12160
12198
  let $$entered = $$ctx.enter && $$ctx.enter("ExplicitPropertyGlob", $$state);
@@ -22635,7 +22673,7 @@ ${js}`
22635
22673
  }
22636
22674
  let $$loc = $$r.loc, $$value = $$r.value, $$m = /* @__PURE__ */ (function($skip, $loc, $0, $1, $2) {
22637
22675
  var token = $2;
22638
- return { $loc, token };
22676
+ return { type: "NumericLiteral", $loc, token };
22639
22677
  })(import_lib2.SKIP, $$loc, $$value, $$value[0], $$value[1]), $$final;
22640
22678
  return $$m !== import_lib2.SKIP && ($$r.value = $$m, $$final = $$r), $$ctx.exit && $$ctx.exit("IntegerLiteral", $$state, $$final, $$eventData), $$final;
22641
22679
  }
@@ -23382,7 +23420,7 @@ ${js}`
23382
23420
  })(import_lib2.SKIP, $$loc, $$value[0], $$value[1], $$value[2], $$value[3], $$value[4], $$value[5], $$value[6], $$value[7], $$value[8], $$value[9]), $$final;
23383
23421
  return $$m !== import_lib2.SKIP && ($$r.value = $$m, $$final = $$r), $$ctx.exit && $$ctx.exit("TemplateBlockCharacters", $$state, $$final, $$eventData), $$final;
23384
23422
  }
23385
- var ReservedWord$0$parser = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($R67, "ReservedWord /(?:off|yes|on|no)/"), NonIdContinue, CoffeeBooleansEnabled), ReservedWord$1$parser = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($R68, "ReservedWord /isnt/"), NonIdContinue, CoffeeIsntEnabled), ReservedWord$2$parser = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($R69, "ReservedWord /by/"), NonIdContinue, CoffeeForLoopsEnabled), ReservedWord$3$parser = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($R70, "ReservedWord /of/"), NonIdContinue, CoffeeOfEnabled), ReservedWord$4$parser = (0, import_lib2.$S)((0, import_lib2.$EXPECT)($R71, "ReservedWord /(?:instanceof|interface|protected|continue|debugger|function|default|extends|finally|private|delete|export|import|public|return|static|switch|typeof|unless|await|break|catch|class|const|false|super|throw|until|while|yield|case|else|enum|loop|null|this|true|void|with|and|for|let|new|not|try|var|do|if|in|is|or)/"), NonIdContinue);
23423
+ var ReservedWord$0$parser = (0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R67, "ReservedWord /(?:off|yes|on|no)/")), NonIdContinue, CoffeeBooleansEnabled), ReservedWord$1$parser = (0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R68, "ReservedWord /isnt/")), NonIdContinue, CoffeeIsntEnabled), ReservedWord$2$parser = (0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R69, "ReservedWord /by/")), NonIdContinue, CoffeeForLoopsEnabled), ReservedWord$3$parser = (0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R70, "ReservedWord /of/")), NonIdContinue, CoffeeOfEnabled), ReservedWord$4$parser = (0, import_lib2.$S)((0, import_lib2.$TEXT)((0, import_lib2.$EXPECT)($R71, "ReservedWord /(?:instanceof|interface|protected|continue|debugger|function|default|extends|finally|private|delete|export|import|public|return|static|switch|typeof|unless|await|break|catch|class|const|false|super|throw|until|while|yield|case|else|enum|loop|null|this|true|void|with|and|for|let|new|not|try|var|do|if|in|is|or)/")), NonIdContinue);
23386
23424
  function ReservedWord$0($$ctx, $$state) {
23387
23425
  let $$r = ReservedWord$0$parser($$ctx, $$state);
23388
23426
  if (!$$r)