grammar-well 1.3.2 → 2.0.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 (262) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +76 -560
  3. package/build/generator/artifacts/basic.d.ts +7 -0
  4. package/build/generator/artifacts/basic.js +24 -0
  5. package/build/generator/artifacts/basic.js.map +1 -0
  6. package/build/generator/artifacts/lexer.d.ts +13 -0
  7. package/build/generator/artifacts/lexer.js +204 -0
  8. package/build/generator/artifacts/lexer.js.map +1 -0
  9. package/build/{compiler/generator → generator}/artifacts/lr.d.ts +14 -14
  10. package/build/{compiler/generator → generator}/artifacts/lr.js +18 -22
  11. package/build/generator/artifacts/lr.js.map +1 -0
  12. package/build/generator/builtin/json.d.ts +183 -0
  13. package/build/generator/builtin/json.js +124 -0
  14. package/build/generator/builtin/json.js.map +1 -0
  15. package/build/generator/builtin/registry.json +1 -0
  16. package/build/generator/builtin/whitespace.d.ts +61 -0
  17. package/build/generator/builtin/whitespace.js +37 -0
  18. package/build/generator/builtin/whitespace.js.map +1 -0
  19. package/build/generator/generator.d.ts +38 -0
  20. package/build/generator/generator.js +368 -0
  21. package/build/generator/generator.js.map +1 -0
  22. package/build/generator/grammars/index.d.ts +2 -0
  23. package/build/generator/grammars/index.js +3 -0
  24. package/build/generator/grammars/index.js.map +1 -0
  25. package/build/generator/grammars/v1.d.ts +1190 -0
  26. package/build/generator/grammars/v1.js +614 -0
  27. package/build/generator/grammars/v1.js.map +1 -0
  28. package/build/generator/grammars/v2.d.ts +1367 -0
  29. package/build/generator/grammars/v2.js +695 -0
  30. package/build/generator/grammars/v2.js.map +1 -0
  31. package/build/generator/import-resolvers/auto.d.ts +2 -0
  32. package/build/generator/import-resolvers/auto.js +11 -0
  33. package/build/generator/import-resolvers/auto.js.map +1 -0
  34. package/build/generator/import-resolvers/browser.d.ts +7 -0
  35. package/build/generator/import-resolvers/browser.js +13 -0
  36. package/build/generator/import-resolvers/browser.js.map +1 -0
  37. package/build/generator/import-resolvers/default.d.ts +2 -0
  38. package/build/generator/import-resolvers/default.js +11 -0
  39. package/build/generator/import-resolvers/default.js.map +1 -0
  40. package/build/generator/import-resolvers/filesystem.d.ts +7 -0
  41. package/build/generator/import-resolvers/filesystem.js +15 -0
  42. package/build/generator/import-resolvers/filesystem.js.map +1 -0
  43. package/build/generator/index.d.ts +3 -0
  44. package/build/generator/index.js +4 -0
  45. package/build/generator/index.js.map +1 -0
  46. package/build/generator/state.d.ts +28 -0
  47. package/build/generator/state.js +73 -0
  48. package/build/generator/state.js.map +1 -0
  49. package/build/generator/stringify/common.d.ts +22 -0
  50. package/build/generator/stringify/common.js +83 -0
  51. package/build/generator/stringify/common.js.map +1 -0
  52. package/build/generator/stringify/exports/javascript.d.ts +3 -0
  53. package/build/generator/stringify/exports/javascript.js +26 -0
  54. package/build/generator/stringify/exports/javascript.js.map +1 -0
  55. package/build/generator/stringify/exports/json.d.ts +2 -0
  56. package/build/generator/stringify/exports/json.js +4 -0
  57. package/build/generator/stringify/exports/json.js.map +1 -0
  58. package/build/generator/stringify/exports/registry.d.ts +20 -0
  59. package/build/generator/stringify/exports/registry.js +17 -0
  60. package/build/generator/stringify/exports/registry.js.map +1 -0
  61. package/build/generator/stringify/exports/typescript.d.ts +2 -0
  62. package/build/generator/stringify/exports/typescript.js +16 -0
  63. package/build/generator/stringify/exports/typescript.js.map +1 -0
  64. package/build/generator/stringify/grammar/v2.d.ts +20 -0
  65. package/build/generator/stringify/grammar/v2.js +211 -0
  66. package/build/generator/stringify/grammar/v2.js.map +1 -0
  67. package/build/generator/stringify/javascript.d.ts +13 -0
  68. package/build/generator/stringify/javascript.js +83 -0
  69. package/build/generator/stringify/javascript.js.map +1 -0
  70. package/build/index.d.ts +7 -6
  71. package/build/index.js +7 -24
  72. package/build/index.js.map +1 -1
  73. package/build/lexers/character-lexer.d.ts +2 -2
  74. package/build/lexers/character-lexer.js +1 -5
  75. package/build/lexers/character-lexer.js.map +1 -1
  76. package/build/lexers/stateful-lexer.d.ts +12 -17
  77. package/build/lexers/stateful-lexer.js +38 -186
  78. package/build/lexers/stateful-lexer.js.map +1 -1
  79. package/build/lexers/token-buffer.d.ts +8 -8
  80. package/build/lexers/token-buffer.js +1 -5
  81. package/build/lexers/token-buffer.js.map +1 -1
  82. package/build/parser/algorithms/cyk.d.ts +6 -6
  83. package/build/parser/algorithms/cyk.js +10 -13
  84. package/build/parser/algorithms/cyk.js.map +1 -1
  85. package/build/parser/algorithms/earley.d.ts +7 -7
  86. package/build/parser/algorithms/earley.js +7 -11
  87. package/build/parser/algorithms/earley.js.map +1 -1
  88. package/build/parser/algorithms/lrk/algorithm.d.ts +3 -3
  89. package/build/parser/algorithms/lrk/algorithm.js +10 -13
  90. package/build/parser/algorithms/lrk/algorithm.js.map +1 -1
  91. package/build/parser/algorithms/lrk/bimap.js +1 -5
  92. package/build/parser/algorithms/lrk/bimap.js.map +1 -1
  93. package/build/parser/algorithms/lrk/canonical-collection.d.ts +7 -7
  94. package/build/parser/algorithms/lrk/canonical-collection.js +11 -15
  95. package/build/parser/algorithms/lrk/canonical-collection.js.map +1 -1
  96. package/build/parser/algorithms/lrk/closure.d.ts +3 -3
  97. package/build/parser/algorithms/lrk/closure.js +3 -7
  98. package/build/parser/algorithms/lrk/closure.js.map +1 -1
  99. package/build/parser/algorithms/lrk/stack.d.ts +6 -6
  100. package/build/parser/algorithms/lrk/stack.js +1 -5
  101. package/build/parser/algorithms/lrk/stack.js.map +1 -1
  102. package/build/parser/algorithms/lrk/state.d.ts +5 -5
  103. package/build/parser/algorithms/lrk/state.js +1 -2
  104. package/build/parser/parse.d.ts +10 -0
  105. package/build/parser/parse.js +34 -0
  106. package/build/parser/parse.js.map +1 -0
  107. package/build/parser/parser.d.ts +6 -17
  108. package/build/parser/parser.js +26 -42
  109. package/build/parser/parser.js.map +1 -1
  110. package/build/tsconfig.tsbuildinfo +1 -0
  111. package/build/typings/ast.d.ts +134 -0
  112. package/build/typings/ast.js +3 -0
  113. package/build/typings/ast.js.map +1 -0
  114. package/build/typings/common.d.ts +4 -0
  115. package/build/typings/common.js +2 -0
  116. package/build/typings/common.js.map +1 -0
  117. package/build/typings/generator.d.ts +58 -0
  118. package/build/typings/generator.js +3 -0
  119. package/build/typings/generator.js.map +1 -0
  120. package/build/typings/index.d.ts +43 -0
  121. package/build/typings/index.js +5 -0
  122. package/build/typings/index.js.map +1 -0
  123. package/build/typings/runtime.d.ts +70 -0
  124. package/build/typings/runtime.js +2 -0
  125. package/build/typings/runtime.js.map +1 -0
  126. package/build/utility/format.d.ts +1 -0
  127. package/build/utility/format.js +12 -0
  128. package/build/utility/format.js.map +1 -0
  129. package/build/utility/formatter.d.ts +1 -0
  130. package/build/utility/formatter.js +12 -0
  131. package/build/utility/formatter.js.map +1 -0
  132. package/build/utility/general.d.ts +1 -1
  133. package/build/utility/general.js +5 -13
  134. package/build/utility/general.js.map +1 -1
  135. package/build/utility/index.d.ts +4 -1
  136. package/build/utility/index.js +4 -17
  137. package/build/utility/index.js.map +1 -1
  138. package/build/utility/lint.d.ts +2 -2
  139. package/build/utility/lint.js +2 -6
  140. package/build/utility/lint.js.map +1 -1
  141. package/build/utility/migrate.d.ts +1 -0
  142. package/build/utility/migrate.js +10 -0
  143. package/build/utility/migrate.js.map +1 -0
  144. package/build/utility/monarch.d.ts +2 -2
  145. package/build/utility/monarch.js +33 -38
  146. package/build/utility/monarch.js.map +1 -1
  147. package/build/utility/parsing.d.ts +6 -0
  148. package/build/utility/parsing.js +26 -0
  149. package/build/utility/parsing.js.map +1 -0
  150. package/build/utility/text-format.d.ts +6 -6
  151. package/build/utility/text-format.js +2 -6
  152. package/build/utility/text-format.js.map +1 -1
  153. package/package.json +17 -24
  154. package/src/generator/artifacts/basic.ts +26 -0
  155. package/src/generator/artifacts/lexer.ts +228 -0
  156. package/src/{compiler/generator → generator}/artifacts/lr.ts +25 -24
  157. package/src/generator/builtin/character.well +7 -0
  158. package/src/generator/builtin/json.well +85 -0
  159. package/src/generator/builtin/number.well +21 -0
  160. package/src/generator/builtin/registry.json +1 -0
  161. package/src/generator/builtin/string.well +54 -0
  162. package/src/generator/builtin/whitespace.well +16 -0
  163. package/src/generator/generator.ts +401 -0
  164. package/src/generator/grammars/index.ts +2 -0
  165. package/src/generator/grammars/v1.ts +620 -0
  166. package/src/generator/grammars/v1.well +422 -0
  167. package/src/generator/grammars/v2.ts +701 -0
  168. package/src/generator/grammars/v2.well +413 -0
  169. package/src/generator/import-resolvers/auto.ts +12 -0
  170. package/src/generator/import-resolvers/browser.ts +13 -0
  171. package/src/generator/import-resolvers/filesystem.ts +18 -0
  172. package/src/generator/index.ts +3 -0
  173. package/src/generator/state.ts +89 -0
  174. package/src/generator/stringify/common.ts +90 -0
  175. package/src/generator/stringify/exports/javascript.ts +29 -0
  176. package/src/generator/stringify/exports/json.ts +5 -0
  177. package/src/generator/stringify/exports/registry.ts +20 -0
  178. package/src/generator/stringify/exports/typescript.ts +17 -0
  179. package/src/generator/stringify/grammar/v2.ts +223 -0
  180. package/src/generator/stringify/javascript.ts +94 -0
  181. package/src/index.ts +7 -6
  182. package/src/lexers/character-lexer.ts +2 -2
  183. package/src/lexers/stateful-lexer.ts +46 -203
  184. package/src/lexers/token-buffer.ts +3 -3
  185. package/src/parser/algorithms/cyk.ts +13 -12
  186. package/src/parser/algorithms/earley.ts +10 -10
  187. package/src/parser/algorithms/lrk/algorithm.ts +8 -7
  188. package/src/parser/algorithms/lrk/canonical-collection.ts +14 -14
  189. package/src/parser/algorithms/lrk/closure.ts +6 -6
  190. package/src/parser/algorithms/lrk/stack.ts +6 -6
  191. package/src/parser/algorithms/lrk/state.ts +5 -5
  192. package/src/parser/parse.ts +45 -0
  193. package/src/typings/ast.ts +148 -0
  194. package/src/typings/common.ts +2 -0
  195. package/src/typings/generator.ts +62 -0
  196. package/src/typings/index.ts +38 -0
  197. package/src/typings/runtime.ts +82 -0
  198. package/src/utility/format.ts +12 -0
  199. package/src/utility/general.ts +1 -2
  200. package/src/utility/index.ts +4 -1
  201. package/src/utility/lint.ts +5 -5
  202. package/src/utility/monarch.ts +34 -34
  203. package/src/utility/parsing.ts +30 -0
  204. package/src/utility/text-format.ts +7 -7
  205. package/.eslintrc.cjs +0 -14
  206. package/bootstrap.ts +0 -45
  207. package/build/compiler/builtin.json +0 -1
  208. package/build/compiler/compiler.d.ts +0 -50
  209. package/build/compiler/compiler.js +0 -249
  210. package/build/compiler/compiler.js.map +0 -1
  211. package/build/compiler/generator/artifacts/lr.js.map +0 -1
  212. package/build/compiler/generator/artifacts/standard.d.ts +0 -7
  213. package/build/compiler/generator/artifacts/standard.js +0 -28
  214. package/build/compiler/generator/artifacts/standard.js.map +0 -1
  215. package/build/compiler/generator/generator.d.ts +0 -24
  216. package/build/compiler/generator/generator.js +0 -217
  217. package/build/compiler/generator/generator.js.map +0 -1
  218. package/build/compiler/gwell.d.ts +0 -1112
  219. package/build/compiler/gwell.js +0 -576
  220. package/build/compiler/gwell.js.map +0 -1
  221. package/build/compiler/import-resolver.d.ts +0 -15
  222. package/build/compiler/import-resolver.js +0 -37
  223. package/build/compiler/import-resolver.js.map +0 -1
  224. package/build/compiler/index.d.ts +0 -2
  225. package/build/compiler/index.js +0 -19
  226. package/build/compiler/index.js.map +0 -1
  227. package/build/compiler/outputs/javascript.d.ts +0 -3
  228. package/build/compiler/outputs/javascript.js +0 -29
  229. package/build/compiler/outputs/javascript.js.map +0 -1
  230. package/build/compiler/outputs/json.d.ts +0 -2
  231. package/build/compiler/outputs/json.js +0 -8
  232. package/build/compiler/outputs/json.js.map +0 -1
  233. package/build/compiler/outputs/typescript.d.ts +0 -2
  234. package/build/compiler/outputs/typescript.js +0 -21
  235. package/build/compiler/outputs/typescript.js.map +0 -1
  236. package/build/parser/algorithms/lr.d.ts +0 -7
  237. package/build/parser/algorithms/lr.js +0 -108
  238. package/build/parser/algorithms/lr.js.map +0 -5
  239. package/build/parser/algorithms/lr0.d.ts +0 -7
  240. package/build/parser/algorithms/lr0.js +0 -156
  241. package/build/parser/algorithms/lr0.js.map +0 -1
  242. package/build/typings.d.ts +0 -226
  243. package/build/typings.js +0 -3
  244. package/build/typings.js.map +0 -1
  245. package/src/compiler/builtin/json.gwell +0 -74
  246. package/src/compiler/builtin/number.gwell +0 -20
  247. package/src/compiler/builtin/string.gwell +0 -48
  248. package/src/compiler/builtin/whitespace.gwell +0 -10
  249. package/src/compiler/builtin.json +0 -1
  250. package/src/compiler/compiler.ts +0 -265
  251. package/src/compiler/generator/artifacts/standard.ts +0 -26
  252. package/src/compiler/generator/generator.ts +0 -237
  253. package/src/compiler/gwell.gwell +0 -294
  254. package/src/compiler/gwell.js +0 -578
  255. package/src/compiler/import-resolver.ts +0 -36
  256. package/src/compiler/index.ts +0 -2
  257. package/src/compiler/outputs/javascript.ts +0 -27
  258. package/src/compiler/outputs/json.ts +0 -5
  259. package/src/compiler/outputs/typescript.ts +0 -18
  260. package/src/parser/parser.ts +0 -77
  261. package/src/typings.ts +0 -248
  262. package/testing.ts +0 -18
@@ -0,0 +1,4 @@
1
+ export type Dictionary<T> = {
2
+ [key: string]: T;
3
+ };
4
+ export type Override<T, R> = Omit<T, keyof R> & R;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/typings/common.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { GeneratorState } from "../generator/state.js";
2
+ import { ASTGrammarSymbolLiteral, ASTGrammarSymbolNonTerminal, ASTGrammarSymbolRegex, ASTGrammarSymbolToken, ASTJavaScriptBuiltin, ASTJavaScriptLiteral, ASTJavaScriptTemplate, ASTLexerStateImportRule, ASTLexerStateMatchRule, ASTLexerStateNonMatchRule } from "./ast.js";
3
+ import { Dictionary } from "./common.js";
4
+ import { ImportResolver, ImportResolverConstructor } from "./index.js";
5
+ export type GenerateOptions = GeneratorOptions & {
6
+ output?: GeneratorOutputOptions;
7
+ };
8
+ export interface GeneratorOptions {
9
+ version?: string;
10
+ basedir?: string;
11
+ resolver?: ImportResolverConstructor | ImportResolver;
12
+ overrides?: Dictionary<string>;
13
+ }
14
+ export interface GeneratorOutputOptions {
15
+ artifacts?: {
16
+ lexer?: boolean;
17
+ grammar?: boolean;
18
+ [key: string]: boolean;
19
+ };
20
+ parser?: boolean;
21
+ format?: GeneratorExportFormat;
22
+ noscript?: boolean;
23
+ name?: string;
24
+ }
25
+ export type GeneratorExportFormat = 'object' | 'json' | 'cjs' | 'commonjs' | 'js' | 'javascript' | 'module' | 'esmodule' | 'esm' | 'ts' | 'typescript';
26
+ export interface GeneratorContext {
27
+ imported: Set<string>;
28
+ resolver: ImportResolver;
29
+ state: GeneratorState;
30
+ }
31
+ export interface GeneratorStateGrammar {
32
+ start: string;
33
+ config: {
34
+ algorithm?: 'earley' | 'lr0' | 'cyk';
35
+ postprocessorDefault?: ASTJavaScriptLiteral | ASTJavaScriptBuiltin;
36
+ postprocessorOverride?: ASTJavaScriptLiteral | ASTJavaScriptBuiltin;
37
+ };
38
+ rules: Dictionary<GeneratorGrammarProductionRule[]>;
39
+ uuids: {
40
+ [key: string]: number;
41
+ };
42
+ }
43
+ export interface GeneratorLexerConfig {
44
+ start?: string;
45
+ states: Dictionary<GeneratorLexerState>;
46
+ }
47
+ export interface GeneratorLexerState {
48
+ unmatched?: ASTLexerStateNonMatchRule;
49
+ rules: (ASTLexerStateImportRule | ASTLexerStateMatchRule)[];
50
+ }
51
+ export interface GeneratorGrammarProductionRule {
52
+ name: string;
53
+ symbols: GeneratorGrammarSymbol[];
54
+ postprocess?: ASTJavaScriptTemplate | ASTJavaScriptLiteral | ASTJavaScriptBuiltin;
55
+ }
56
+ export type GeneratorGrammarSymbol = {
57
+ alias?: string;
58
+ } & (ASTGrammarSymbolNonTerminal | ASTGrammarSymbolRegex | ASTGrammarSymbolLiteral | ASTGrammarSymbolToken);
@@ -0,0 +1,3 @@
1
+ ;
2
+ export {};
3
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/typings/generator.ts"],"names":[],"mappings":"AA2CC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { TokenBuffer } from "../lexers/token-buffer.js";
2
+ import { ParserUtility } from "../utility/parsing.js";
3
+ import { ASTLexerStateNonMatchRule } from "./ast.js";
4
+ import { RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol, RuntimeParserClass, RuntimeLexerStateMatchRule } from "./runtime.js";
5
+ export * from './ast.js';
6
+ export * from './common.js';
7
+ export * from './generator.js';
8
+ export * from './runtime.js';
9
+ export interface ImportResolver {
10
+ path(path: string): string;
11
+ body(path: string): Promise<string>;
12
+ }
13
+ export interface ImportResolverConstructor {
14
+ new (basePath: string): ImportResolver;
15
+ }
16
+ export type ParserAlgorithm = ((language: RuntimeParserClass & {
17
+ tokens: TokenBuffer;
18
+ utility: ParserUtility;
19
+ }, options?: any) => {
20
+ results: any[];
21
+ info?: any;
22
+ });
23
+ export interface LRState {
24
+ actions: Next[];
25
+ goto: {
26
+ [key: string]: string;
27
+ };
28
+ reduce?: RuntimeGrammarProductionRule;
29
+ isFinal: boolean;
30
+ }
31
+ type Next = {
32
+ symbol: RuntimeGrammarRuleSymbol;
33
+ next: string;
34
+ };
35
+ export interface TQRestorePoint {
36
+ historyIndex: number;
37
+ offset: number;
38
+ }
39
+ export interface StatefulLexerStateDefinition {
40
+ regex: RegExp;
41
+ unmatched?: ASTLexerStateNonMatchRule;
42
+ rules: RuntimeLexerStateMatchRule[];
43
+ }
@@ -0,0 +1,5 @@
1
+ export * from './ast.js';
2
+ export * from './common.js';
3
+ export * from './generator.js';
4
+ export * from './runtime.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typings/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { LRState } from "./index.js";
2
+ import { ASTGrammarSymbolLiteral, ASTGrammarSymbolToken, ASTLexerStateNonMatchRule } from "./ast.js";
3
+ import { Dictionary } from "./common.js";
4
+ export interface RuntimeParserClass {
5
+ artifacts: {
6
+ lexer?: RuntimeLexer | RuntimeLexerConfig;
7
+ grammar: {
8
+ start: string;
9
+ rules: Dictionary<RuntimeGrammarProductionRule[]>;
10
+ };
11
+ lr?: {
12
+ k: number;
13
+ table: Dictionary<LRState>;
14
+ };
15
+ };
16
+ new (): any;
17
+ }
18
+ export interface RuntimeGrammarProductionRule {
19
+ name: string;
20
+ symbols: RuntimeGrammarRuleSymbol[];
21
+ postprocess?: RuntimePostProcessor;
22
+ }
23
+ export type RuntimeGrammarRuleSymbol = string | RegExp | ASTGrammarSymbolLiteral | ASTGrammarSymbolToken | RuntimeGrammarRuleSymbolFunction;
24
+ type RuntimeGrammarRuleSymbolFunction = (data: RuntimeLexerToken) => boolean;
25
+ export type RuntimePostProcessor = (payload: RuntimePostProcessorPayload) => any;
26
+ interface RuntimePostProcessorPayload {
27
+ data: any[];
28
+ rule: RuntimeGrammarProductionRule;
29
+ meta: any;
30
+ }
31
+ export interface RuntimeLexerConfig {
32
+ start?: string;
33
+ states: Dictionary<RuntimeLexerState>;
34
+ }
35
+ export interface RuntimeLexerState {
36
+ unmatched?: ASTLexerStateNonMatchRule;
37
+ rules: RuntimeLexerStateMatchRule[];
38
+ regex: RegExp;
39
+ }
40
+ export interface RuntimeLexer {
41
+ next(): RuntimeLexerToken | undefined;
42
+ feed(chunk?: string, state?: ReturnType<RuntimeLexer['state']>): void;
43
+ state(): any;
44
+ flush?(): void;
45
+ }
46
+ export interface RuntimeLexerToken {
47
+ type?: string | undefined;
48
+ tag?: Set<string>;
49
+ value: string;
50
+ offset: number;
51
+ line: number;
52
+ column: number;
53
+ }
54
+ export interface RuntimeLexerStateMatchRule {
55
+ when: string | RegExp;
56
+ type?: string;
57
+ tag?: string[];
58
+ before?: boolean;
59
+ skip?: boolean;
60
+ highlight?: string;
61
+ open?: string;
62
+ close?: string;
63
+ embed?: string;
64
+ unembed?: boolean;
65
+ pop?: number | 'all';
66
+ inset?: number;
67
+ goto?: string;
68
+ set?: string;
69
+ }
70
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/typings/runtime.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare function Format(source: string, sourceVersion?: '1' | '2'): string;
@@ -0,0 +1,12 @@
1
+ import V1Grammar from '../generator/grammars/v1.js';
2
+ import V2Grammar from '../generator/grammars/v2.js';
3
+ import { V2GrammarString } from "../generator/stringify/grammar/v2.js";
4
+ import { Parse } from '../parser/parse.js';
5
+ export function Format(source, sourceVersion = '2') {
6
+ const grammar = sourceVersion.toString() == '1' ? V1Grammar : V2Grammar;
7
+ const result = Parse(new grammar(), source);
8
+ const stringer = new V2GrammarString();
9
+ stringer.append(result);
10
+ return stringer.source;
11
+ }
12
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utility/format.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,UAAU,MAAM,CAAC,MAAc,EAAE,gBAA2B,GAAG;IACjE,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,OAAO,EAAS,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,QAAQ,CAAC,MAAM,CAAC;AAC3B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function Formatter(source: string, version?: '1' | '2'): string;
@@ -0,0 +1,12 @@
1
+ import V1Grammar from '../generator/grammars/v1';
2
+ import V2Grammar from '../generator/grammars/v2';
3
+ import { V2GrammarString } from "../generator/stringify/grammar/v2";
4
+ import { Parse } from "../parser/parser";
5
+ export function Formatter(source, version = '2') {
6
+ const grammar = version.toString() == '1' ? V1Grammar : V2Grammar;
7
+ const result = Parse(grammar(), source);
8
+ const stringer = new V2GrammarString();
9
+ stringer.append(result);
10
+ return stringer.source;
11
+ }
12
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/utility/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,UAAqB,GAAG;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAS,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,QAAQ,CAAC,MAAM,CAAC;AAC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Dictionary, GeneratorGrammarSymbol } from "../typings";
1
+ import { Dictionary, GeneratorGrammarSymbol } from "../typings/index.js";
2
2
  export declare class Collection<T> {
3
3
  categorized: Dictionary<Dictionary<number>>;
4
4
  uncategorized: Map<T, number>;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Unflatten = exports.Flatten = exports.Matrix = exports.GeneratorSymbolCollection = exports.Collection = void 0;
4
- class Collection {
1
+ export class Collection {
5
2
  categorized = {};
6
3
  uncategorized = new Map();
7
4
  items = [];
@@ -44,8 +41,7 @@ class Collection {
44
41
  return this.uncategorized.get(ref);
45
42
  }
46
43
  }
47
- exports.Collection = Collection;
48
- class GeneratorSymbolCollection extends Collection {
44
+ export class GeneratorSymbolCollection extends Collection {
49
45
  categorized = {
50
46
  nonTerminal: {},
51
47
  literalI: {},
@@ -70,8 +66,7 @@ class GeneratorSymbolCollection extends Collection {
70
66
  }
71
67
  }
72
68
  }
73
- exports.GeneratorSymbolCollection = GeneratorSymbolCollection;
74
- class Matrix {
69
+ export class Matrix {
75
70
  initial;
76
71
  $x = 0;
77
72
  $y = 0;
@@ -113,8 +108,7 @@ class Matrix {
113
108
  return Array.from({ length }, (typeof initial == 'function' ? initial : () => initial));
114
109
  }
115
110
  }
116
- exports.Matrix = Matrix;
117
- function Flatten(obj) {
111
+ export function Flatten(obj) {
118
112
  const collection = new Collection();
119
113
  const $null = Symbol();
120
114
  function Traverse(src) {
@@ -144,8 +138,7 @@ function Flatten(obj) {
144
138
  collection.redirect($null, null);
145
139
  return collection.items;
146
140
  }
147
- exports.Flatten = Flatten;
148
- function Unflatten(items) {
141
+ export function Unflatten(items) {
149
142
  const visited = new Set();
150
143
  function Traverse(id) {
151
144
  if (visited.has(id)) {
@@ -168,5 +161,4 @@ function Unflatten(items) {
168
161
  }
169
162
  return Traverse(0);
170
163
  }
171
- exports.Unflatten = Unflatten;
172
164
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/utility/general.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/utility/general.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,UAAU;IACnB,WAAW,GAAmC,EAAE,CAAC;IACjD,aAAa,GAAG,IAAI,GAAG,EAAa,CAAC;IACrC,KAAK,GAAQ,EAAE,CAAC;IAEhB,YAAY,MAAW,EAAE;QACrB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAM;QACT,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,EAAmB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,GAAG,CAAC,GAAM;QACN,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ,CAAC,MAAS,EAAE,MAAS;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;IAC7C,CAAC;IAGD,OAAO,CAAC,CAAI,IAA0E,CAAC;IAE/E,cAAc,CAAC,QAA4C,EAAE,GAAW,EAAE,GAAM;QACpF,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEO,gBAAgB,CAAC,GAAM;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;CAEJ;AAED,MAAM,OAAO,yBAA0B,SAAQ,UAAkC;IAC7E,WAAW,GAAG;QACV,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACZ,CAAA;IAED,OAAO,CAAC,MAA8B;QAClC,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACpD,CAAC;aAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,WAAW;gBAClB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;YACxD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;QACxD,CAAC;aAAM,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;QACnD,CAAC;aAAM,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QACxE,CAAC;IACL,CAAC;CACJ;AAED,MAAM,OAAO,MAAM;IAU2B;IATlC,EAAE,GAAG,CAAC,CAAC;IACP,EAAE,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,EAAE,CAAA,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,CAAS,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,EAAE,CAAA,CAAC,CAAC;IAC1B,IAAI,CAAC,CAAC,CAAS,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5D,MAAM,GAA8B,EAAE,CAAC;IAEvC,YAAY,CAAS,EAAE,CAAS,EAAU,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;QACzE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,CAAS,EAAE,CAAS;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,KAAU;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAChB,CAAC;aAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;YAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAChB,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAI,MAAM,EAAE,OAAmC;QACvD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAQ,CAAC,CAAC;IACnG,CAAC;CACJ;AAGD,MAAM,UAAU,OAAO,CAAC,GAAmC;IACvD,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;IACvB,SAAS,QAAQ,CAAC,GAAQ;QACtB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,GAAG,GAAG,KAAK,CAAC;QAChB,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;QACD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3B,CAAC;YACD,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,CAAC;IACd,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,UAAU,CAAC,KAAY,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAiB;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,SAAS,QAAQ,CAAC,EAAU;QACxB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAQ,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE1B,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,GAA6B,EAAE,CAAC;gBAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7B,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC"}
@@ -1 +1,4 @@
1
- export * from './monarch';
1
+ export * from './monarch.js';
2
+ export * from './general.js';
3
+ export * from './format.js';
4
+ export * from './parsing.js';
@@ -1,18 +1,5 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./monarch"), exports);
1
+ export * from './monarch.js';
2
+ export * from './general.js';
3
+ export * from './format.js';
4
+ export * from './parsing.js';
18
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utility/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utility/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -1,2 +1,2 @@
1
- import { LanguageDefinition, GrammarRuleSymbol } from "../typings";
2
- export declare function LintGrammarSymbols(language: LanguageDefinition): GrammarRuleSymbol[];
1
+ import { RuntimeGrammarRuleSymbol, RuntimeParserClass } from "../typings/index.js";
2
+ export declare function LintGrammarSymbols(grammar: RuntimeParserClass['artifacts']['grammar']): RuntimeGrammarRuleSymbol[];
@@ -1,16 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LintGrammarSymbols = void 0;
4
- function LintGrammarSymbols(language) {
1
+ export function LintGrammarSymbols(grammar) {
5
2
  const unused = new Set();
6
- const { rules, start } = language.grammar;
3
+ const { rules, start } = grammar;
7
4
  for (const rule in rules) {
8
5
  unused.add(rule);
9
6
  }
10
7
  TraverseRule(start, rules, unused);
11
8
  return Array.from(unused);
12
9
  }
13
- exports.LintGrammarSymbols = LintGrammarSymbols;
14
10
  function TraverseRule(name, rules, unvisited) {
15
11
  if (!unvisited.has(name)) {
16
12
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/utility/lint.ts"],"names":[],"mappings":";;;AAGA,SAAgB,kBAAkB,CAAC,QAA4B;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACpB;IACD,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AARD,gDAQC;AACD,SAAS,YAAY,CAAC,IAAY,EAAE,KAAgC,EAAE,SAAsB;IACxF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO;KACV;IACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;QACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC1B,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;gBAC3B,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;aAC1C;SACJ;KACJ;AACL,CAAC"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/utility/lint.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,OAAmD;IAClF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAiD,EAAE,SAAsB;IACzG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO;IACX,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC5B,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function MigrateV1toV2(content: string): string;
@@ -0,0 +1,10 @@
1
+ import v1 from '../generator/grammars/v1';
2
+ import { V2GrammarString } from "../generator/stringify/grammar/v2";
3
+ import { Parser } from "../parser/parser";
4
+ export function MigrateV1toV2(content) {
5
+ const parser = new Parser(v1());
6
+ const stringer = new V2GrammarString();
7
+ stringer.append(parser.run(content).results[0]);
8
+ return stringer.source;
9
+ }
10
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/utility/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,OAAe;IACzC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,EAAS,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,MAAM,CAAC;AAE3B,CAAC"}
@@ -1,5 +1,5 @@
1
- import { LexerConfig } from "../typings";
2
- export declare function CreateMonarchTokenizer(lexer: LexerConfig): {
1
+ import { RuntimeLexerConfig } from "../typings/index.js";
2
+ export declare function CreateMonarchTokenizer(lexer: RuntimeLexerConfig): {
3
3
  start: string;
4
4
  tokenizer: any;
5
5
  };
@@ -1,50 +1,45 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateMonarchTokenizer = void 0;
4
- function CreateMonarchTokenizer(lexer) {
1
+ export function CreateMonarchTokenizer(lexer) {
5
2
  const tokenizer = {};
6
3
  const { start, states } = lexer;
7
- for (const key in states) {
8
- const { name, rules } = states[key];
4
+ for (const name in states) {
5
+ const { rules, unmatched } = states[name];
9
6
  tokenizer[name] = [];
10
7
  for (const rule of rules) {
11
- if ('import' in rule) {
12
- for (const i of rule.import) {
13
- tokenizer[name].push({ include: i });
14
- }
15
- }
16
- else {
17
- const action = { token: rule.highlight || 'source' };
18
- if ('pop' in rule) {
19
- action.next = '@pop';
20
- }
21
- else if ('goto' in rule) {
22
- action.next = '@' + rule.goto;
23
- }
24
- else if ('set' in rule) {
25
- action.switchTo = '@' + rule.set;
26
- }
27
- else if ('inset' in rule) {
28
- action.next = '@push';
29
- }
30
- if ('embed' in rule) {
31
- action.nextEmbedded = rule.embed;
32
- }
33
- else if ('unembed' in rule) {
34
- action.nextEmbedded = '@pop';
35
- }
36
- if (rule.before) {
37
- action.token = '@rematch';
38
- }
39
- tokenizer[name].push([TransformWhen(rule.when), action]);
40
- }
8
+ tokenizer[name].push([TransformWhen(rule.when), CreateAction(rule)]);
9
+ }
10
+ if (unmatched) {
11
+ tokenizer[name].push([`.*?(?:(${tokenizer[name].map(v => `(${v.source})`).join('|')}))`, CreateAction(unmatched)]);
41
12
  }
42
13
  }
43
14
  return { start, tokenizer };
44
15
  }
45
- exports.CreateMonarchTokenizer = CreateMonarchTokenizer;
16
+ function CreateAction(rule) {
17
+ const action = { token: rule.highlight || 'source' };
18
+ if ('pop' in rule) {
19
+ action.next = '@pop';
20
+ }
21
+ else if ('goto' in rule) {
22
+ action.next = '@' + rule.goto;
23
+ }
24
+ else if ('set' in rule) {
25
+ action.switchTo = '@' + rule.set;
26
+ }
27
+ else if ('inset' in rule) {
28
+ action.next = '@push';
29
+ }
30
+ if ('embed' in rule) {
31
+ action.nextEmbedded = rule.embed;
32
+ }
33
+ else if ('unembed' in rule) {
34
+ action.nextEmbedded = '@pop';
35
+ }
36
+ if (rule.before) {
37
+ action.token = '@rematch';
38
+ }
39
+ return action;
40
+ }
46
41
  function TransformWhen(obj) {
47
- return typeof obj == 'string' ? new RegExp(RegexEscape(obj)) : new RegExp(obj.regex, obj.flags);
42
+ return typeof obj == 'string' ? new RegExp(RegexEscape(obj)) : obj;
48
43
  }
49
44
  function RegexEscape(string) {
50
45
  return string.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
@@ -1 +1 @@
1
- {"version":3,"file":"monarch.js","sourceRoot":"","sources":["../../src/utility/monarch.ts"],"names":[],"mappings":";;;AAEA,SAAgB,sBAAsB,CAAC,KAAkB;IACrD,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,QAAQ,IAAI,IAAI,EAAE;gBAClB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;oBACzB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;iBACvC;aACJ;iBAAM;gBACH,MAAM,MAAM,GAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;gBAC1D,IAAI,KAAK,IAAI,IAAI,EAAE;oBACf,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;iBACxB;qBAAM,IAAI,MAAM,IAAI,IAAI,EAAE;oBACvB,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;iBACjC;qBAAM,IAAI,KAAK,IAAI,IAAI,EAAE;oBACtB,MAAM,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;iBACpC;qBAAM,IAAI,OAAO,IAAI,IAAI,EAAE;oBACxB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;iBACzB;gBAED,IAAI,OAAO,IAAI,IAAI,EAAE;oBACjB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;iBACpC;qBAAM,IAAI,SAAS,IAAI,IAAI,EAAE;oBAC1B,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;iBAChC;gBAED,IAAI,IAAI,CAAC,MAAM,EAAE;oBACb,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;iBAC7B;gBAED,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;aAC3D;SACJ;KACJ;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAtCD,wDAsCC;AAED,SAAS,aAAa,CAAC,GAAG;IACtB,OAAO,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,WAAW,CAAC,MAAM;IACvB,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"monarch.js","sourceRoot":"","sources":["../../src/utility/monarch.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CAAC,KAAyB;IAC5D,MAAM,SAAS,GAAQ,EAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACZ,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvH,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,YAAY,CAAC,IAA4D;IAC9E,MAAM,MAAM,GAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;IAC1D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IACzB,CAAC;SAAM,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;IAClC,CAAC;SAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrC,CAAC;SAAM,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;IACrC,CAAC;SAAM,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,GAAuC;IAC1D,OAAO,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvE,CAAC;AAED,SAAS,WAAW,CAAC,MAAM;IACvB,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;AAC1D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol, RuntimeLexerToken } from "../typings/index.js";
2
+ export declare class ParserUtility {
3
+ static SymbolMatchesToken(symbol: RuntimeGrammarRuleSymbol, token: RuntimeLexerToken): boolean;
4
+ static SymbolIsTerminal(symbol: RuntimeGrammarRuleSymbol): symbol is RegExp | import("../index.js").ASTGrammarSymbolLiteral | import("../index.js").ASTGrammarSymbolToken | ((data: RuntimeLexerToken) => boolean);
5
+ static PostProcess(rule: RuntimeGrammarProductionRule, data: any, meta?: any): any;
6
+ }
@@ -0,0 +1,26 @@
1
+ export class ParserUtility {
2
+ static SymbolMatchesToken(symbol, token) {
3
+ if (typeof symbol === 'string')
4
+ throw 'Attempted to match token against non-terminal';
5
+ if (typeof symbol == 'function')
6
+ return symbol(token);
7
+ if (!symbol)
8
+ return;
9
+ if ("test" in symbol)
10
+ return symbol.test(token.value);
11
+ if ("token" in symbol)
12
+ return symbol.token === token.type || token.tag?.has(symbol.token);
13
+ if ("literal" in symbol)
14
+ return symbol.literal === token.value;
15
+ }
16
+ static SymbolIsTerminal(symbol) {
17
+ return typeof symbol != 'string';
18
+ }
19
+ static PostProcess(rule, data, meta) {
20
+ if (rule.postprocess) {
21
+ return rule.postprocess({ rule, data, meta });
22
+ }
23
+ return data;
24
+ }
25
+ }
26
+ //# sourceMappingURL=parsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsing.js","sourceRoot":"","sources":["../../src/utility/parsing.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAEtB,MAAM,CAAC,kBAAkB,CAAC,MAAgC,EAAE,KAAwB;QAChF,IAAI,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,+CAA+C,CAAC;QAC1D,IAAI,OAAO,MAAM,IAAI,UAAU;YAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM;YACP,OAAM;QACV,IAAI,MAAM,IAAI,MAAM;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,OAAO,IAAI,MAAM;YACjB,OAAO,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,SAAS,IAAI,MAAM;YACnB,OAAO,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAgC;QACpD,OAAO,OAAO,MAAM,IAAI,QAAQ,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAkC,EAAE,IAAS,EAAE,IAAU;QACxE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -1,11 +1,11 @@
1
- import { TokenBuffer } from "../lexers/token-buffer";
2
- import { GrammarRule, GrammarRuleSymbol, LexerToken } from "../typings";
1
+ import { TokenBuffer } from "../lexers/token-buffer.js";
2
+ import { RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol, RuntimeLexerToken } from "../typings/index.js";
3
3
  export declare class TextFormatter {
4
- static UnexpectedToken(queue: TokenBuffer, expected: (GrammarRule & {
4
+ static UnexpectedToken(queue: TokenBuffer, expected: (RuntimeGrammarProductionRule & {
5
5
  index?: number;
6
6
  })[]): string;
7
- static LexerTokenShort(token: LexerToken): string;
7
+ static LexerTokenShort(token: RuntimeLexerToken): string;
8
8
  static LexerTokenError(lexer: TokenBuffer): string;
9
- static GrammarRuleSymbol(symbol: GrammarRuleSymbol, short?: boolean, error?: boolean): string;
10
- static GrammarRule(rule: GrammarRule, withCursorAt?: number): string;
9
+ static GrammarRuleSymbol(symbol: RuntimeGrammarRuleSymbol, short?: boolean, error?: boolean): string;
10
+ static GrammarRule(rule: RuntimeGrammarProductionRule, withCursorAt?: number): string;
11
11
  }
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TextFormatter = void 0;
4
- class TextFormatter {
1
+ export class TextFormatter {
5
2
  static UnexpectedToken(queue, expected) {
6
3
  const token = queue.active;
7
4
  const tokenDisplay = TextFormatter.LexerTokenShort(token);
@@ -65,7 +62,7 @@ class TextFormatter {
65
62
  return short ? symbol.toString() : `character matching ${symbol.toString()}`;
66
63
  }
67
64
  else if ("token" in symbol) {
68
- return short ? `%${symbol.token}` : `${symbol.token} token`;
65
+ return short ? `<${symbol.token}>` : `${symbol.token} token`;
69
66
  }
70
67
  else if (error) {
71
68
  return 'Unknown symbol type: ' + JSON.stringify(symbol);
@@ -80,5 +77,4 @@ class TextFormatter {
80
77
  return rule.name + " → " + symbolSequence;
81
78
  }
82
79
  }
83
- exports.TextFormatter = TextFormatter;
84
80
  //# sourceMappingURL=text-format.js.map