parser-lr 0.6.1 → 0.7.0

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.
Files changed (173) hide show
  1. package/README.md +14 -30
  2. package/bin/parser-lr.js +11388 -11409
  3. package/bin/parser-lr.js.map +1 -1
  4. package/dist/lib/grammar/index.d.ts +1 -1
  5. package/dist/lib/grammar/index.d.ts.map +1 -1
  6. package/dist/lib/grammar/index.js +1 -1
  7. package/dist/lib/grammar/index.js.map +1 -1
  8. package/dist/lib/grammar/meta-grammar-table.d.ts +0 -12
  9. package/dist/lib/grammar/meta-grammar-table.d.ts.map +1 -1
  10. package/dist/lib/grammar/meta-grammar-table.js +5 -22
  11. package/dist/lib/grammar/meta-grammar-table.js.map +1 -1
  12. package/dist/lib/grammar-entry.d.ts +42 -0
  13. package/dist/lib/grammar-entry.d.ts.map +1 -0
  14. package/dist/lib/grammar-entry.js +45 -0
  15. package/dist/lib/grammar-entry.js.map +1 -0
  16. package/dist/lib/index.d.ts +7 -5
  17. package/dist/lib/index.d.ts.map +1 -1
  18. package/dist/lib/index.js +0 -3
  19. package/dist/lib/index.js.map +1 -1
  20. package/dist/lib/parse-context.d.ts +4 -15
  21. package/dist/lib/parse-context.d.ts.map +1 -1
  22. package/dist/lib/parse-context.js +4 -23
  23. package/dist/lib/parse-context.js.map +1 -1
  24. package/dist/lib/transform/grammar-fixture.js +3 -3
  25. package/dist/lib/transform/grammar-fixture.js.map +1 -1
  26. package/docs/parser-lr-browser-lib-split.md +174 -0
  27. package/package.json +7 -2
  28. package/dist/lib/grammar/grammar-json-path.d.ts +0 -2
  29. package/dist/lib/grammar/grammar-json-path.d.ts.map +0 -1
  30. package/dist/lib/grammar/grammar-json-path.esm.d.ts +0 -5
  31. package/dist/lib/grammar/grammar-json-path.esm.d.ts.map +0 -1
  32. package/dist/lib/grammar/grammar-json-path.esm.js +0 -9
  33. package/dist/lib/grammar/grammar-json-path.esm.js.map +0 -1
  34. package/dist/lib/grammar/grammar-json-path.js +0 -2
  35. package/dist/lib/grammar/grammar-json-path.js.map +0 -1
  36. package/dist/lib-cjs/ast/ast-node.js +0 -70
  37. package/dist/lib-cjs/ast/ast-node.js.map +0 -1
  38. package/dist/lib-cjs/errors/index.js +0 -9
  39. package/dist/lib-cjs/errors/index.js.map +0 -1
  40. package/dist/lib-cjs/errors/parser-lr-error.js +0 -52
  41. package/dist/lib-cjs/errors/parser-lr-error.js.map +0 -1
  42. package/dist/lib-cjs/grammar/ast-schema.js +0 -43
  43. package/dist/lib-cjs/grammar/ast-schema.js.map +0 -1
  44. package/dist/lib-cjs/grammar/ast-type.js +0 -3
  45. package/dist/lib-cjs/grammar/ast-type.js.map +0 -1
  46. package/dist/lib-cjs/grammar/expression.js +0 -3
  47. package/dist/lib-cjs/grammar/expression.js.map +0 -1
  48. package/dist/lib-cjs/grammar/grammar-from-cst.js +0 -641
  49. package/dist/lib-cjs/grammar/grammar-from-cst.js.map +0 -1
  50. package/dist/lib-cjs/grammar/grammar-json-path.js +0 -13
  51. package/dist/lib-cjs/grammar/grammar-json-path.js.map +0 -1
  52. package/dist/lib-cjs/grammar/grammar-literals.js +0 -71
  53. package/dist/lib-cjs/grammar/grammar-literals.js.map +0 -1
  54. package/dist/lib-cjs/grammar/grammar.js +0 -64
  55. package/dist/lib-cjs/grammar/grammar.js.map +0 -1
  56. package/dist/lib-cjs/grammar/grammar.json +0 -5760
  57. package/dist/lib-cjs/grammar/index.js +0 -21
  58. package/dist/lib-cjs/grammar/index.js.map +0 -1
  59. package/dist/lib-cjs/grammar/meta-grammar-table.js +0 -68
  60. package/dist/lib-cjs/grammar/meta-grammar-table.js.map +0 -1
  61. package/dist/lib-cjs/grammar/production.js +0 -3
  62. package/dist/lib-cjs/grammar/production.js.map +0 -1
  63. package/dist/lib-cjs/grammar/read-grammar-error.js +0 -22
  64. package/dist/lib-cjs/grammar/read-grammar-error.js.map +0 -1
  65. package/dist/lib-cjs/grammar/read-grammar.js +0 -24
  66. package/dist/lib-cjs/grammar/read-grammar.js.map +0 -1
  67. package/dist/lib-cjs/grammar/table-validator.js +0 -262
  68. package/dist/lib-cjs/grammar/table-validator.js.map +0 -1
  69. package/dist/lib-cjs/grammar/token-rule.js +0 -3
  70. package/dist/lib-cjs/grammar/token-rule.js.map +0 -1
  71. package/dist/lib-cjs/grammar/transform-expression.js +0 -3
  72. package/dist/lib-cjs/grammar/transform-expression.js.map +0 -1
  73. package/dist/lib-cjs/grammar/transform-rule.js +0 -3
  74. package/dist/lib-cjs/grammar/transform-rule.js.map +0 -1
  75. package/dist/lib-cjs/grammar/transform-schema.js +0 -43
  76. package/dist/lib-cjs/grammar/transform-schema.js.map +0 -1
  77. package/dist/lib-cjs/index.js +0 -66
  78. package/dist/lib-cjs/index.js.map +0 -1
  79. package/dist/lib-cjs/lexer/index.js +0 -32
  80. package/dist/lib-cjs/lexer/index.js.map +0 -1
  81. package/dist/lib-cjs/lexer/lexer-compile-error.js +0 -22
  82. package/dist/lib-cjs/lexer/lexer-compile-error.js.map +0 -1
  83. package/dist/lib-cjs/lexer/lexer-compile.js +0 -201
  84. package/dist/lib-cjs/lexer/lexer-compile.js.map +0 -1
  85. package/dist/lib-cjs/lexer/lexer-error.js +0 -22
  86. package/dist/lib-cjs/lexer/lexer-error.js.map +0 -1
  87. package/dist/lib-cjs/lexer/lexer-input-error.js +0 -17
  88. package/dist/lib-cjs/lexer/lexer-input-error.js.map +0 -1
  89. package/dist/lib-cjs/lexer/lexer-state-error.js +0 -19
  90. package/dist/lib-cjs/lexer/lexer-state-error.js.map +0 -1
  91. package/dist/lib-cjs/lexer/lexer.js +0 -278
  92. package/dist/lib-cjs/lexer/lexer.js.map +0 -1
  93. package/dist/lib-cjs/lexer/token.js +0 -44
  94. package/dist/lib-cjs/lexer/token.js.map +0 -1
  95. package/dist/lib-cjs/package.json +0 -3
  96. package/dist/lib-cjs/parse-context-error.js +0 -19
  97. package/dist/lib-cjs/parse-context-error.js.map +0 -1
  98. package/dist/lib-cjs/parse-context.js +0 -137
  99. package/dist/lib-cjs/parse-context.js.map +0 -1
  100. package/dist/lib-cjs/parse-output-error.js +0 -19
  101. package/dist/lib-cjs/parse-output-error.js.map +0 -1
  102. package/dist/lib-cjs/parse-output.js +0 -18
  103. package/dist/lib-cjs/parse-output.js.map +0 -1
  104. package/dist/lib-cjs/parse-table/analysis/first-follow.js +0 -294
  105. package/dist/lib-cjs/parse-table/analysis/first-follow.js.map +0 -1
  106. package/dist/lib-cjs/parse-table/analysis/index.js +0 -9
  107. package/dist/lib-cjs/parse-table/analysis/index.js.map +0 -1
  108. package/dist/lib-cjs/parse-table/bnf/bnf-grammar.js +0 -140
  109. package/dist/lib-cjs/parse-table/bnf/bnf-grammar.js.map +0 -1
  110. package/dist/lib-cjs/parse-table/bnf/bnf-production.js +0 -3
  111. package/dist/lib-cjs/parse-table/bnf/bnf-production.js.map +0 -1
  112. package/dist/lib-cjs/parse-table/bnf/bnf-symbol.js +0 -39
  113. package/dist/lib-cjs/parse-table/bnf/bnf-symbol.js.map +0 -1
  114. package/dist/lib-cjs/parse-table/bnf/desugar-ebnf.js +0 -224
  115. package/dist/lib-cjs/parse-table/bnf/desugar-ebnf.js.map +0 -1
  116. package/dist/lib-cjs/parse-table/bnf/index.js +0 -13
  117. package/dist/lib-cjs/parse-table/bnf/index.js.map +0 -1
  118. package/dist/lib-cjs/parse-table/build-lr-table.js +0 -171
  119. package/dist/lib-cjs/parse-table/build-lr-table.js.map +0 -1
  120. package/dist/lib-cjs/parse-table/index.js +0 -49
  121. package/dist/lib-cjs/parse-table/index.js.map +0 -1
  122. package/dist/lib-cjs/parse-table/lr-algorithm-error.js +0 -19
  123. package/dist/lib-cjs/parse-table/lr-algorithm-error.js.map +0 -1
  124. package/dist/lib-cjs/parse-table/lr-algorithm.js +0 -31
  125. package/dist/lib-cjs/parse-table/lr-algorithm.js.map +0 -1
  126. package/dist/lib-cjs/parse-table/lr0/index.js +0 -14
  127. package/dist/lib-cjs/parse-table/lr0/index.js.map +0 -1
  128. package/dist/lib-cjs/parse-table/lr0/lr0-item-set.js +0 -286
  129. package/dist/lib-cjs/parse-table/lr0/lr0-item-set.js.map +0 -1
  130. package/dist/lib-cjs/parse-table/lr1/index.js +0 -18
  131. package/dist/lib-cjs/parse-table/lr1/index.js.map +0 -1
  132. package/dist/lib-cjs/parse-table/lr1/lr1-item-set.js +0 -432
  133. package/dist/lib-cjs/parse-table/lr1/lr1-item-set.js.map +0 -1
  134. package/dist/lib-cjs/parse-table/parse-table-build-error.js +0 -24
  135. package/dist/lib-cjs/parse-table/parse-table-build-error.js.map +0 -1
  136. package/dist/lib-cjs/parse-table/parse-table-error.js +0 -19
  137. package/dist/lib-cjs/parse-table/parse-table-error.js.map +0 -1
  138. package/dist/lib-cjs/parse-table/parse-table-json.js +0 -12
  139. package/dist/lib-cjs/parse-table/parse-table-json.js.map +0 -1
  140. package/dist/lib-cjs/parse-table/parse-table.js +0 -345
  141. package/dist/lib-cjs/parse-table/parse-table.js.map +0 -1
  142. package/dist/lib-cjs/parse-table/slr/index.js +0 -13
  143. package/dist/lib-cjs/parse-table/slr/index.js.map +0 -1
  144. package/dist/lib-cjs/parse-table/slr/parse-action.js +0 -8
  145. package/dist/lib-cjs/parse-table/slr/parse-action.js.map +0 -1
  146. package/dist/lib-cjs/parse-table/slr/slr-table.js +0 -18
  147. package/dist/lib-cjs/parse-table/slr/slr-table.js.map +0 -1
  148. package/dist/lib-cjs/parse-table/table/index.js +0 -21
  149. package/dist/lib-cjs/parse-table/table/index.js.map +0 -1
  150. package/dist/lib-cjs/parse-table/table/lr-parse-table.js +0 -192
  151. package/dist/lib-cjs/parse-table/table/lr-parse-table.js.map +0 -1
  152. package/dist/lib-cjs/parse-table/table/parse-action.js +0 -54
  153. package/dist/lib-cjs/parse-table/table/parse-action.js.map +0 -1
  154. package/dist/lib-cjs/parse-table/table/table-builder-base.js +0 -153
  155. package/dist/lib-cjs/parse-table/table/table-builder-base.js.map +0 -1
  156. package/dist/lib-cjs/parse-table/token-inventory.js +0 -18
  157. package/dist/lib-cjs/parse-table/token-inventory.js.map +0 -1
  158. package/dist/lib-cjs/parser-lr.js +0 -143
  159. package/dist/lib-cjs/parser-lr.js.map +0 -1
  160. package/dist/lib-cjs/shift-reduce/index.js +0 -11
  161. package/dist/lib-cjs/shift-reduce/index.js.map +0 -1
  162. package/dist/lib-cjs/shift-reduce/shift-reduce-engine.js +0 -224
  163. package/dist/lib-cjs/shift-reduce/shift-reduce-engine.js.map +0 -1
  164. package/dist/lib-cjs/transform/binding-map.js +0 -82
  165. package/dist/lib-cjs/transform/binding-map.js.map +0 -1
  166. package/dist/lib-cjs/transform/cst-transformer.js +0 -480
  167. package/dist/lib-cjs/transform/cst-transformer.js.map +0 -1
  168. package/dist/lib-cjs/transform/grammar-fixture.js +0 -109
  169. package/dist/lib-cjs/transform/grammar-fixture.js.map +0 -1
  170. package/dist/lib-cjs/transform/index.js +0 -12
  171. package/dist/lib-cjs/transform/index.js.map +0 -1
  172. package/docs/parser-lr-enhancement-proposals.md +0 -337
  173. package/grammars/fixtures/table-only-import/table-only-smoke.cjs +0 -38
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "parser-lr",
3
3
  "author": "Adam R Moss <adamrmoss@gmail.com>",
4
- "version": "0.6.1",
4
+ "version": "0.7.0",
5
5
  "description": "Shift-reduce parser library for EBNF grammars with LR table generation, lexing, and CST-to-AST transforms",
6
6
  "keywords": [
7
7
  "ast",
@@ -41,8 +41,12 @@
41
41
  ".": {
42
42
  "types": "./dist/lib/index.d.ts",
43
43
  "import": "./dist/lib/index.js",
44
- "require": "./dist/lib-cjs/index.js",
45
44
  "default": "./dist/lib/index.js"
45
+ },
46
+ "./grammar": {
47
+ "types": "./dist/lib/grammar-entry.d.ts",
48
+ "import": "./dist/lib/grammar-entry.js",
49
+ "default": "./dist/lib/grammar-entry.js"
46
50
  }
47
51
  },
48
52
  "bin": {
@@ -82,6 +86,7 @@
82
86
  "@types/jest": "29.x",
83
87
  "@types/node": "22.x",
84
88
  "commander": "12.x",
89
+ "esbuild": "0.x",
85
90
  "jest": "29.x",
86
91
  "rollup": "4.x",
87
92
  "ts-jest": "29.x",
@@ -1,2 +0,0 @@
1
- export { grammarJsonDirectory } from './grammar-json-path.esm.js';
2
- //# sourceMappingURL=grammar-json-path.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar-json-path.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/grammar-json-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Returns the directory containing bootstrapped `grammar.json` for the ESM build.
3
- */
4
- export declare function grammarJsonDirectory(): string;
5
- //# sourceMappingURL=grammar-json-path.esm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar-json-path.esm.d.ts","sourceRoot":"","sources":["../../../src/lib/grammar/grammar-json-path.esm.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C"}
@@ -1,9 +0,0 @@
1
- import { dirname } from 'node:path';
2
- import { fileURLToPath } from 'node:url';
3
- /**
4
- * Returns the directory containing bootstrapped `grammar.json` for the ESM build.
5
- */
6
- export function grammarJsonDirectory() {
7
- return dirname(fileURLToPath(import.meta.url));
8
- }
9
- //# sourceMappingURL=grammar-json-path.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar-json-path.esm.js","sourceRoot":"","sources":["../../../src/lib/grammar/grammar-json-path.esm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAEhC,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -1,2 +0,0 @@
1
- export { grammarJsonDirectory } from './grammar-json-path.esm.js';
2
- //# sourceMappingURL=grammar-json-path.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar-json-path.js","sourceRoot":"","sources":["../../../src/lib/grammar/grammar-json-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AstNode = void 0;
4
- /**
5
- * Tree node used for both parse (CST) and abstract (AST) phases.
6
- *
7
- * After parsing, {@link symbol} is a grammar production and {@link variant}
8
- * is the matched `#` label. After transform, {@link symbol} is an AST type
9
- * name and {@link variant} is the AST alternative label.
10
- */
11
- class AstNode {
12
- symbol;
13
- children;
14
- text;
15
- location;
16
- variant;
17
- productionId;
18
- origin;
19
- /**
20
- * Creates a tree node.
21
- *
22
- * @param symbol - Production or AST type name.
23
- * @param children - Child subtrees.
24
- * @param text - Lexeme or literal text for leaves; null for interior nodes.
25
- * @param location - Optional source span.
26
- * @param variant - `#` alternative label when present.
27
- * @param productionId - Parse table production id for CST nodes, or null after transform.
28
- * @param origin - Source production or synthetic construct name for CST nodes.
29
- */
30
- constructor(symbol, children = [], text = null, location = null, variant = null, productionId = null, origin = null) {
31
- this.symbol = symbol;
32
- this.children = children;
33
- this.text = text;
34
- this.location = location;
35
- this.variant = variant;
36
- this.productionId = productionId;
37
- this.origin = origin;
38
- }
39
- /**
40
- * Whether this node is a terminal leaf with lexeme text.
41
- */
42
- get isTerminal() {
43
- return this.text !== null;
44
- }
45
- /**
46
- * Builds an interior node from a grammar or AST reduction.
47
- *
48
- * @param symbol - Production or AST type name.
49
- * @param children - Reduced child subtrees.
50
- * @param location - Optional source span covering the full production.
51
- * @param variant - `#` alternative label when present.
52
- * @param productionId - Parse table production id for CST nodes.
53
- * @param origin - Source production or synthetic construct name for CST nodes.
54
- */
55
- static rule(symbol, children, location = null, variant = null, productionId = null, origin = null) {
56
- return new AstNode(symbol, children, null, location, variant, productionId, origin);
57
- }
58
- /**
59
- * Builds a terminal leaf node.
60
- *
61
- * @param symbol - Terminal symbol name.
62
- * @param text - Matched lexeme text.
63
- * @param location - Optional source span for the lexeme.
64
- */
65
- static terminal(symbol, text, location = null) {
66
- return new AstNode(symbol, [], text, location, null);
67
- }
68
- }
69
- exports.AstNode = AstNode;
70
- //# sourceMappingURL=ast-node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-node.js","sourceRoot":"","sources":["../../../src/lib/ast/ast-node.ts"],"names":[],"mappings":";;;AASA;;;;;;GAMG;AACH,MAAa,OAAO;IAcI;IACA;IACA;IACA;IACA;IACA;IACA;IAlBpB;;;;;;;;;;OAUG;IACH,YACoB,MAAc,EACd,WAA+B,EAAE,EACjC,OAAsB,IAAI,EAC1B,WAAkC,IAAI,EACtC,UAAyB,IAAI,EAC7B,eAA8B,IAAI,EAClC,SAAwB,IAAI;QAN5B,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAyB;QACjC,SAAI,GAAJ,IAAI,CAAsB;QAC1B,aAAQ,GAAR,QAAQ,CAA8B;QACtC,YAAO,GAAP,OAAO,CAAsB;QAC7B,iBAAY,GAAZ,YAAY,CAAsB;QAClC,WAAM,GAAN,MAAM,CAAsB;IAGhD,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QAEjB,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,IAAI,CACd,MAAc,EACd,QAA4B,EAC5B,WAAkC,IAAI,EACtC,UAAyB,IAAI,EAC7B,eAA8B,IAAI,EAClC,SAAwB,IAAI;QAG5B,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,QAAQ,CAClB,MAAc,EACd,IAAY,EACZ,WAAkC,IAAI;QAGtC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;CACJ;AAtED,0BAsEC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParserLrError = exports.messageContainsStackTrace = exports.isParserLrError = exports.formatUserError = void 0;
4
- var parser_lr_error_js_1 = require("./parser-lr-error.js");
5
- Object.defineProperty(exports, "formatUserError", { enumerable: true, get: function () { return parser_lr_error_js_1.formatUserError; } });
6
- Object.defineProperty(exports, "isParserLrError", { enumerable: true, get: function () { return parser_lr_error_js_1.isParserLrError; } });
7
- Object.defineProperty(exports, "messageContainsStackTrace", { enumerable: true, get: function () { return parser_lr_error_js_1.messageContainsStackTrace; } });
8
- Object.defineProperty(exports, "ParserLrError", { enumerable: true, get: function () { return parser_lr_error_js_1.ParserLrError; } });
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/errors/index.ts"],"names":[],"mappings":";;;AAAA,2DAK8B;AAJ1B,qHAAA,eAAe,OAAA;AACf,qHAAA,eAAe,OAAA;AACf,+HAAA,yBAAyB,OAAA;AACzB,mHAAA,aAAa,OAAA"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParserLrError = void 0;
4
- exports.isParserLrError = isParserLrError;
5
- exports.formatUserError = formatUserError;
6
- exports.messageContainsStackTrace = messageContainsStackTrace;
7
- /**
8
- * Base class for library errors surfaced to callers and the CLI.
9
- */
10
- class ParserLrError extends Error {
11
- /**
12
- * Creates a parser-lr error with a caller-safe message.
13
- *
14
- * @param message - Human-readable failure description without stack frames.
15
- */
16
- constructor(message) {
17
- super(message);
18
- this.name = new.target.name;
19
- }
20
- }
21
- exports.ParserLrError = ParserLrError;
22
- /**
23
- * Returns whether a value is a parser-lr domain error.
24
- *
25
- * @param error - Value to test.
26
- */
27
- function isParserLrError(error) {
28
- return error instanceof ParserLrError;
29
- }
30
- /**
31
- * Returns a user-facing message for an error value.
32
- *
33
- * @param error - Thrown value or Error instance.
34
- */
35
- function formatUserError(error) {
36
- if (error instanceof ParserLrError) {
37
- return error.message;
38
- }
39
- if (error instanceof Error) {
40
- return error.message;
41
- }
42
- return String(error);
43
- }
44
- /**
45
- * Returns whether a message contains embedded stack trace frames.
46
- *
47
- * @param message - Error message text to inspect.
48
- */
49
- function messageContainsStackTrace(message) {
50
- return /\n\s+at .+/.test(message);
51
- }
52
- //# sourceMappingURL=parser-lr-error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser-lr-error.js","sourceRoot":"","sources":["../../../src/lib/errors/parser-lr-error.ts"],"names":[],"mappings":";;;AAsBA,0CAGC;AAOD,0CAaC;AAOD,8DAGC;AAvDD;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IAEpC;;;;OAIG;IACH,YAAmB,OAAe;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAChC,CAAC;CACJ;AAZD,sCAYC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAc;IAE1C,OAAO,KAAK,YAAY,aAAa,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAc;IAE1C,IAAI,KAAK,YAAY,aAAa,EAClC,CAAC;QACG,OAAO,KAAK,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAC1B,CAAC;QACG,OAAO,KAAK,CAAC,OAAO,CAAC;IACzB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,OAAe;IAErD,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AstSchema = void 0;
4
- /**
5
- * AST shape declared in the `ast` section of a `.grammar` file.
6
- */
7
- class AstSchema {
8
- types;
9
- typesByName;
10
- /**
11
- * Creates an AST schema from declared types.
12
- *
13
- * @param types - Named AST types from the `ast` section.
14
- */
15
- constructor(types) {
16
- this.types = types;
17
- // Index types by name for lookup.
18
- const typesByName = new Map();
19
- for (const type of types) {
20
- typesByName.set(type.name, type);
21
- }
22
- this.typesByName = typesByName;
23
- }
24
- /**
25
- * Returns an AST type by name.
26
- *
27
- * @param name - Type name to look up.
28
- * @returns The matching type, or null when the name is undefined.
29
- */
30
- type(name) {
31
- return this.typesByName.get(name) ?? null;
32
- }
33
- /**
34
- * Whether a named AST type is defined in this schema.
35
- *
36
- * @param name - Type name to test.
37
- */
38
- hasType(name) {
39
- return this.typesByName.has(name);
40
- }
41
- }
42
- exports.AstSchema = AstSchema;
43
- //# sourceMappingURL=ast-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-schema.js","sourceRoot":"","sources":["../../../src/lib/grammar/ast-schema.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,SAAS;IASiB;IAPlB,WAAW,CAA+B;IAE3D;;;;OAIG;IACH,YAAmC,KAAyB;QAAzB,UAAK,GAAL,KAAK,CAAoB;QAExD,kCAAkC;QAClC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EACxB,CAAC;YACG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAC,IAAY;QAEpB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,IAAY;QAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACJ;AA1CD,8BA0CC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ast-type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-type.js","sourceRoot":"","sources":["../../../src/lib/grammar/ast-type.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=expression.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/lib/grammar/expression.ts"],"names":[],"mappings":""}