@traqula/core 0.0.23 → 0.0.24

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 (51) hide show
  1. package/dist/cjs/lib/AstCoreFactory.js +136 -149
  2. package/dist/cjs/lib/AstCoreFactory.js.map +1 -0
  3. package/dist/cjs/lib/generator-builder/builderTypes.js +2 -15
  4. package/dist/cjs/lib/generator-builder/builderTypes.js.map +1 -0
  5. package/dist/cjs/lib/generator-builder/dynamicGenerator.js +189 -200
  6. package/dist/cjs/lib/generator-builder/dynamicGenerator.js.map +1 -0
  7. package/dist/cjs/lib/generator-builder/generatorBuilder.js +103 -117
  8. package/dist/cjs/lib/generator-builder/generatorBuilder.js.map +1 -0
  9. package/dist/cjs/lib/generator-builder/generatorTypes.js +2 -15
  10. package/dist/cjs/lib/generator-builder/generatorTypes.js.map +1 -0
  11. package/dist/cjs/lib/index.js +39 -57
  12. package/dist/cjs/lib/index.js.map +1 -0
  13. package/dist/cjs/lib/indirection-builder/IndirBuilder.js +63 -85
  14. package/dist/cjs/lib/indirection-builder/IndirBuilder.js.map +1 -0
  15. package/dist/cjs/lib/indirection-builder/dynamicIndirected.js +28 -50
  16. package/dist/cjs/lib/indirection-builder/dynamicIndirected.js.map +1 -0
  17. package/dist/cjs/lib/indirection-builder/helpers.js +11 -31
  18. package/dist/cjs/lib/indirection-builder/helpers.js.map +1 -0
  19. package/dist/cjs/lib/lexer-builder/LexerBuilder.js +92 -114
  20. package/dist/cjs/lib/lexer-builder/LexerBuilder.js.map +1 -0
  21. package/dist/cjs/lib/parser-builder/builderTypes.js +2 -15
  22. package/dist/cjs/lib/parser-builder/builderTypes.js.map +1 -0
  23. package/dist/cjs/lib/parser-builder/dynamicParser.js +115 -136
  24. package/dist/cjs/lib/parser-builder/dynamicParser.js.map +1 -0
  25. package/dist/cjs/lib/parser-builder/parserBuilder.js +167 -169
  26. package/dist/cjs/lib/parser-builder/parserBuilder.js.map +1 -0
  27. package/dist/cjs/lib/parser-builder/ruleDefTypes.js +2 -15
  28. package/dist/cjs/lib/parser-builder/ruleDefTypes.js.map +1 -0
  29. package/dist/cjs/lib/transformers/TransformerObject.js +196 -198
  30. package/dist/cjs/lib/transformers/TransformerObject.js.map +1 -0
  31. package/dist/cjs/lib/transformers/TransformerSubTyped.js +120 -141
  32. package/dist/cjs/lib/transformers/TransformerSubTyped.js.map +1 -0
  33. package/dist/cjs/lib/transformers/TransformerTyped.js +99 -120
  34. package/dist/cjs/lib/transformers/TransformerTyped.js.map +1 -0
  35. package/dist/cjs/lib/types.js +2 -15
  36. package/dist/cjs/lib/types.js.map +1 -0
  37. package/dist/cjs/lib/utils.js +13 -34
  38. package/dist/cjs/lib/utils.js.map +1 -0
  39. package/package.json +9 -9
  40. package/dist/cjs/test/generatorBuilder/generatorBuilder.types.test.js +0 -30
  41. package/dist/cjs/test/grammar-builder/parserBuilder.types.test.js +0 -27
  42. package/dist/cjs/test/transformer.test.js +0 -82
  43. package/dist/esm/test/generatorBuilder/generatorBuilder.types.test.d.ts +0 -1
  44. package/dist/esm/test/generatorBuilder/generatorBuilder.types.test.js +0 -38
  45. package/dist/esm/test/generatorBuilder/generatorBuilder.types.test.js.map +0 -1
  46. package/dist/esm/test/grammar-builder/parserBuilder.types.test.d.ts +0 -1
  47. package/dist/esm/test/grammar-builder/parserBuilder.types.test.js +0 -38
  48. package/dist/esm/test/grammar-builder/parserBuilder.types.test.js.map +0 -1
  49. package/dist/esm/test/transformer.test.d.ts +0 -1
  50. package/dist/esm/test/transformer.test.js +0 -82
  51. package/dist/esm/test/transformer.test.js.map +0 -1
@@ -1,123 +1,101 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var LexerBuilder_exports = {};
20
- __export(LexerBuilder_exports, {
21
- LexerBuilder: () => LexerBuilder
22
- });
23
- module.exports = __toCommonJS(LexerBuilder_exports);
24
- var import_chevrotain = require("@traqula/chevrotain");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LexerBuilder = void 0;
4
+ const chevrotain_1 = require("@traqula/chevrotain");
25
5
  class LexerBuilder {
26
- tokens;
27
- static create(starter) {
28
- return new LexerBuilder(starter);
29
- }
30
- constructor(starter) {
31
- this.tokens = starter?.tokens ? [...starter.tokens] : [];
32
- }
33
- merge(merge, overwrite = []) {
34
- const extraTokens = merge.tokens.filter((token) => {
35
- const overwriteToken = overwrite.find((t) => t.name === token.name);
36
- if (overwriteToken) {
37
- return false;
38
- }
39
- const match = this.tokens.find((t) => t.name === token.name);
40
- if (match) {
41
- if (match !== token) {
42
- throw new Error(`Token with name ${token.name} already exists. Implementation is different and no overwrite was provided.`);
6
+ tokens;
7
+ static create(starter) {
8
+ return new LexerBuilder(starter);
9
+ }
10
+ constructor(starter) {
11
+ this.tokens = starter?.tokens ? [...starter.tokens] : [];
12
+ }
13
+ merge(merge, overwrite = []) {
14
+ const extraTokens = merge.tokens.filter((token) => {
15
+ const overwriteToken = overwrite.find(t => t.name === token.name);
16
+ if (overwriteToken) {
17
+ return false;
18
+ }
19
+ const match = this.tokens.find(t => t.name === token.name);
20
+ if (match) {
21
+ if (match !== token) {
22
+ throw new Error(`Token with name ${token.name} already exists. Implementation is different and no overwrite was provided.`);
23
+ }
24
+ return false;
25
+ }
26
+ return true;
27
+ });
28
+ this.tokens.push(...extraTokens);
29
+ return this;
30
+ }
31
+ add(...token) {
32
+ this.tokens.push(...token);
33
+ return this;
34
+ }
35
+ addBefore(before, ...token) {
36
+ const index = this.tokens.indexOf(before);
37
+ if (index === -1) {
38
+ throw new Error('Token not found');
43
39
  }
44
- return false;
45
- }
46
- return true;
47
- });
48
- this.tokens.push(...extraTokens);
49
- return this;
50
- }
51
- add(...token) {
52
- this.tokens.push(...token);
53
- return this;
54
- }
55
- addBefore(before, ...token) {
56
- const index = this.tokens.indexOf(before);
57
- if (index === -1) {
58
- throw new Error("Token not found");
40
+ this.tokens.splice(index, 0, ...token);
41
+ return this;
59
42
  }
60
- this.tokens.splice(index, 0, ...token);
61
- return this;
62
- }
63
- moveBeforeOrAfter(beforeOrAfter, before, ...tokens) {
64
- const beforeIndex = this.tokens.indexOf(before) + (beforeOrAfter === "before" ? 0 : 1);
65
- if (beforeIndex === -1) {
66
- throw new Error("BeforeToken not found");
43
+ moveBeforeOrAfter(beforeOrAfter, before, ...tokens) {
44
+ const beforeIndex = this.tokens.indexOf(before) + (beforeOrAfter === 'before' ? 0 : 1);
45
+ if (beforeIndex === -1) {
46
+ throw new Error('BeforeToken not found');
47
+ }
48
+ for (const token of tokens) {
49
+ const tokenIndex = this.tokens.indexOf(token);
50
+ if (tokenIndex === -1) {
51
+ throw new Error('Token not found');
52
+ }
53
+ this.tokens.splice(tokenIndex, 1);
54
+ this.tokens.splice(beforeIndex, 0, token);
55
+ }
56
+ return this;
67
57
  }
68
- for (const token of tokens) {
69
- const tokenIndex = this.tokens.indexOf(token);
70
- if (tokenIndex === -1) {
71
- throw new Error("Token not found");
72
- }
73
- this.tokens.splice(tokenIndex, 1);
74
- this.tokens.splice(beforeIndex, 0, token);
58
+ /**
59
+ * @param before token to move rest before
60
+ * @param tokens tokens to move before the first token
61
+ */
62
+ moveBefore(before, ...tokens) {
63
+ return this.moveBeforeOrAfter('before', before, ...tokens);
64
+ }
65
+ moveAfter(after, ...tokens) {
66
+ return this.moveBeforeOrAfter('after', after, ...tokens);
67
+ }
68
+ addAfter(after, ...token) {
69
+ const index = this.tokens.indexOf(after);
70
+ if (index === -1) {
71
+ throw new Error('Token not found');
72
+ }
73
+ this.tokens.splice(index + 1, 0, ...token);
74
+ return this;
75
+ }
76
+ delete(...token) {
77
+ for (const t of token) {
78
+ const index = this.tokens.indexOf(t);
79
+ if (index === -1) {
80
+ throw new Error('Token not found');
81
+ }
82
+ this.tokens.splice(index, 1);
83
+ }
84
+ return this;
75
85
  }
76
- return this;
77
- }
78
- /**
79
- * @param before token to move rest before
80
- * @param tokens tokens to move before the first token
81
- */
82
- moveBefore(before, ...tokens) {
83
- return this.moveBeforeOrAfter("before", before, ...tokens);
84
- }
85
- moveAfter(after, ...tokens) {
86
- return this.moveBeforeOrAfter("after", after, ...tokens);
87
- }
88
- addAfter(after, ...token) {
89
- const index = this.tokens.indexOf(after);
90
- if (index === -1) {
91
- throw new Error("Token not found");
86
+ build(lexerConfig) {
87
+ return new chevrotain_1.Lexer(this.tokens, {
88
+ positionTracking: 'onlyStart',
89
+ recoveryEnabled: false,
90
+ ensureOptimizations: true,
91
+ // SafeMode: true,
92
+ // SkipValidations: true,
93
+ ...lexerConfig,
94
+ });
92
95
  }
93
- this.tokens.splice(index + 1, 0, ...token);
94
- return this;
95
- }
96
- delete(...token) {
97
- for (const t of token) {
98
- const index = this.tokens.indexOf(t);
99
- if (index === -1) {
100
- throw new Error("Token not found");
101
- }
102
- this.tokens.splice(index, 1);
96
+ get tokenVocabulary() {
97
+ return this.tokens;
103
98
  }
104
- return this;
105
- }
106
- build(lexerConfig) {
107
- return new import_chevrotain.Lexer(this.tokens, {
108
- positionTracking: "onlyStart",
109
- recoveryEnabled: false,
110
- ensureOptimizations: true,
111
- // SafeMode: true,
112
- // SkipValidations: true,
113
- ...lexerConfig
114
- });
115
- }
116
- get tokenVocabulary() {
117
- return this.tokens;
118
- }
119
99
  }
120
- // Annotate the CommonJS export names for ESM import in node:
121
- 0 && (module.exports = {
122
- LexerBuilder
123
- });
100
+ exports.LexerBuilder = LexerBuilder;
101
+ //# sourceMappingURL=LexerBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexerBuilder.js","sourceRoot":"","sources":["../../../../lib/lexer-builder/LexerBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ILexerConfig, TokenType } from '@traqula/chevrotain';\nimport { Lexer } from '@traqula/chevrotain';\nimport type { CheckOverlap, NamedToken } from '../utils.js';\n\nexport class LexerBuilder<NAMES extends string = string> {\n private readonly tokens: TokenType[];\n\n public static create<U extends LexerBuilder<T>, T extends string = never>(starter?: U): U {\n return <U> new LexerBuilder(starter);\n }\n\n private constructor(starter?: LexerBuilder<NAMES>) {\n this.tokens = starter?.tokens ? [ ...starter.tokens ] : [];\n }\n\n public merge<OtherNames extends string, OW extends string>(\n merge: LexerBuilder<OtherNames>,\n overwrite: NamedToken<OW>[] = [],\n ):\n LexerBuilder<NAMES | OtherNames> {\n const extraTokens = merge.tokens.filter((token) => {\n const overwriteToken = overwrite.find(t => t.name === token.name);\n if (overwriteToken) {\n return false;\n }\n const match = this.tokens.find(t => t.name === token.name);\n if (match) {\n if (match !== token) {\n throw new Error(`Token with name ${token.name} already exists. Implementation is different and no overwrite was provided.`);\n }\n return false;\n }\n return true;\n });\n this.tokens.push(...extraTokens);\n return this;\n }\n\n public add<Name extends string>(...token: CheckOverlap<Name, NAMES, NamedToken<Name>[]>):\n LexerBuilder<Name | NAMES> {\n this.tokens.push(...token);\n return this;\n }\n\n public addBefore<Name extends string>(\n before: NamedToken<NAMES>,\n ...token: CheckOverlap<Name, NAMES, NamedToken<Name>[]>\n ): LexerBuilder<NAMES | Name> {\n const index = this.tokens.indexOf(before);\n if (index === -1) {\n throw new Error('Token not found');\n }\n this.tokens.splice(index, 0, ...token);\n return this;\n }\n\n private moveBeforeOrAfter<Name extends string>(\n beforeOrAfter: 'before' | 'after',\n before: NamedToken<NAMES>,\n ...tokens: CheckOverlap<Name, NAMES, never, NamedToken<Name>[]>\n ): LexerBuilder<NAMES> {\n const beforeIndex = this.tokens.indexOf(before) + (beforeOrAfter === 'before' ? 0 : 1);\n if (beforeIndex === -1) {\n throw new Error('BeforeToken not found');\n }\n for (const token of tokens) {\n const tokenIndex = this.tokens.indexOf(token);\n if (tokenIndex === -1) {\n throw new Error('Token not found');\n }\n this.tokens.splice(tokenIndex, 1);\n this.tokens.splice(beforeIndex, 0, token);\n }\n return this;\n }\n\n /**\n * @param before token to move rest before\n * @param tokens tokens to move before the first token\n */\n public moveBefore<Name extends string>(\n before: NamedToken<NAMES>,\n ...tokens: CheckOverlap<Name, NAMES, never, NamedToken<Name>[]>\n ): LexerBuilder<NAMES> {\n return this.moveBeforeOrAfter('before', before, ...tokens);\n }\n\n public moveAfter<Name extends string>(\n after: NamedToken<NAMES>,\n ...tokens: CheckOverlap<Name, NAMES, never, NamedToken<Name>[]>\n ): LexerBuilder<NAMES> {\n return this.moveBeforeOrAfter('after', after, ...tokens);\n }\n\n public addAfter<Name extends string>(\n after: NamedToken<NAMES>,\n ...token: CheckOverlap<Name, NAMES, never, NamedToken<Name>[]>\n ): LexerBuilder<NAMES | Name> {\n const index = this.tokens.indexOf(after);\n if (index === -1) {\n throw new Error('Token not found');\n }\n this.tokens.splice(index + 1, 0, ...token);\n return this;\n }\n\n public delete<Name extends NAMES>(...token: NamedToken<Name>[]): LexerBuilder<Exclude<NAMES, Name>> {\n for (const t of token) {\n const index = this.tokens.indexOf(t);\n if (index === -1) {\n throw new Error('Token not found');\n }\n this.tokens.splice(index, 1);\n }\n return this;\n }\n\n public build(lexerConfig?: ILexerConfig): Lexer {\n return new Lexer(this.tokens, {\n positionTracking: 'onlyStart',\n recoveryEnabled: false,\n ensureOptimizations: true,\n // SafeMode: true,\n // SkipValidations: true,\n ...lexerConfig,\n });\n }\n\n public get tokenVocabulary(): readonly TokenType[] {\n return this.tokens;\n }\n}\n"]}
@@ -1,16 +1,3 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var builderTypes_exports = {};
16
- module.exports = __toCommonJS(builderTypes_exports);
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=builderTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builderTypes.js","sourceRoot":"","sources":["../../../../lib/parser-builder/builderTypes.ts"],"names":[],"mappings":"","sourcesContent":["import type { ParserMethod } from '@traqula/chevrotain';\nimport type { ParserRule } from './ruleDefTypes.js';\n\n/**\n * Get union-type of names used in list of ruledefs.\n */\nexport type ParseNamesFromList<T extends readonly { name: string }[]> = T[number]['name'];\n\n/**\n * Convert a list of ruledefs to a record that maps each rule name to its definition.\n */\nexport type ParseRuleMap<RuleNames extends string> = {[Key in RuleNames]: ParserRule<any, Key> };\n\n/**\n * Convert a list of RuleDefs to a Record with the name of the RuleDef as the key, matching the RuleDefMap type.\n */\nexport type ParseRulesToObject<\n T extends readonly ParserRule[],\n Names extends string = ParseNamesFromList<T>,\n Agg extends Record<string, ParserRule> = Record<never, never>,\n> = T extends readonly [infer First, ...infer Rest] ? (\n First extends ParserRule ? (\n Rest extends readonly ParserRule[] ? (\n ParseRulesToObject<Rest, Names, {[K in keyof Agg | First['name']]: K extends First['name'] ? First : Agg[K] }>\n ) : never\n ) : never\n) : ParseRuleMap<Names> & Agg;\n\nexport type ParserFromRules<Context, Names extends string, RuleDefs extends ParseRuleMap<Names>> = {\n [K in Names]: RuleDefs[K] extends ParserRule<Context, K, infer RET, infer ARGS> ?\n (input: string, context: Context, ...args: ARGS) => RET : never\n};\n\nexport type ParseMethodsFromRules<Context, Names extends string, RuleDefs extends ParseRuleMap<Names>> = {\n [K in Names]: RuleDefs[K] extends ParserRule<Context, K, infer RET, infer ARGS> ?\n ParserMethod<[Context, ...ARGS], RET> : never\n};\n"]}
@@ -1,139 +1,118 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var dynamicParser_exports = {};
20
- __export(dynamicParser_exports, {
21
- DynamicParser: () => DynamicParser
22
- });
23
- module.exports = __toCommonJS(dynamicParser_exports);
24
- var import_chevrotain = require("@traqula/chevrotain");
25
- class DynamicParser extends import_chevrotain.EmbeddedActionsParser {
26
- context;
27
- setContext(context) {
28
- this.context = context;
29
- }
30
- constructor(rules, tokenVocabulary, config = {}) {
31
- super(tokenVocabulary, {
32
- // RecoveryEnabled: true,
33
- maxLookahead: 1,
34
- skipValidations: true,
35
- ...config
36
- });
37
- this.context = void 0;
38
- const selfRef = this.constructSelfRef();
39
- const implArgs = {
40
- ...selfRef,
41
- cache: /* @__PURE__ */ new WeakMap()
42
- };
43
- for (const rule of Object.values(rules)) {
44
- this[rule.name] = this.RULE(rule.name, rule.impl(implArgs));
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamicParser = void 0;
4
+ const chevrotain_1 = require("@traqula/chevrotain");
5
+ class DynamicParser extends chevrotain_1.EmbeddedActionsParser {
6
+ context;
7
+ setContext(context) {
8
+ this.context = context;
9
+ }
10
+ constructor(rules, tokenVocabulary, config = {}) {
11
+ super(tokenVocabulary, {
12
+ // RecoveryEnabled: true,
13
+ maxLookahead: 1,
14
+ skipValidations: true,
15
+ ...config,
16
+ });
17
+ this.context = undefined;
18
+ const selfRef = this.constructSelfRef();
19
+ const implArgs = {
20
+ ...selfRef,
21
+ cache: new WeakMap(),
22
+ };
23
+ for (const rule of Object.values(rules)) {
24
+ // Function implementation itself - this function is called AFTER lexing
25
+ this[rule.name] = this.RULE(rule.name, rule.impl(implArgs));
26
+ }
27
+ this.performSelfAnalysis();
28
+ }
29
+ constructSelfRef() {
30
+ const subRuleImpl = (chevrotainSubrule) => ((cstDef, ...arg) => chevrotainSubrule(this[cstDef.name], { ARGS: [this.context, ...arg] }));
31
+ return {
32
+ CONSUME: (tokenType, option) => this.CONSUME(tokenType, option),
33
+ CONSUME1: (tokenType, option) => this.CONSUME1(tokenType, option),
34
+ CONSUME2: (tokenType, option) => this.CONSUME2(tokenType, option),
35
+ CONSUME3: (tokenType, option) => this.CONSUME3(tokenType, option),
36
+ CONSUME4: (tokenType, option) => this.CONSUME4(tokenType, option),
37
+ CONSUME5: (tokenType, option) => this.CONSUME5(tokenType, option),
38
+ CONSUME6: (tokenType, option) => this.CONSUME6(tokenType, option),
39
+ CONSUME7: (tokenType, option) => this.CONSUME7(tokenType, option),
40
+ CONSUME8: (tokenType, option) => this.CONSUME8(tokenType, option),
41
+ CONSUME9: (tokenType, option) => this.CONSUME9(tokenType, option),
42
+ OPTION: actionORMethodDef => this.OPTION(actionORMethodDef),
43
+ OPTION1: actionORMethodDef => this.OPTION1(actionORMethodDef),
44
+ OPTION2: actionORMethodDef => this.OPTION2(actionORMethodDef),
45
+ OPTION3: actionORMethodDef => this.OPTION3(actionORMethodDef),
46
+ OPTION4: actionORMethodDef => this.OPTION4(actionORMethodDef),
47
+ OPTION5: actionORMethodDef => this.OPTION5(actionORMethodDef),
48
+ OPTION6: actionORMethodDef => this.OPTION6(actionORMethodDef),
49
+ OPTION7: actionORMethodDef => this.OPTION7(actionORMethodDef),
50
+ OPTION8: actionORMethodDef => this.OPTION8(actionORMethodDef),
51
+ OPTION9: actionORMethodDef => this.OPTION9(actionORMethodDef),
52
+ OR: altsOrOpts => this.OR(altsOrOpts),
53
+ OR1: altsOrOpts => this.OR1(altsOrOpts),
54
+ OR2: altsOrOpts => this.OR2(altsOrOpts),
55
+ OR3: altsOrOpts => this.OR3(altsOrOpts),
56
+ OR4: altsOrOpts => this.OR4(altsOrOpts),
57
+ OR5: altsOrOpts => this.OR5(altsOrOpts),
58
+ OR6: altsOrOpts => this.OR6(altsOrOpts),
59
+ OR7: altsOrOpts => this.OR7(altsOrOpts),
60
+ OR8: altsOrOpts => this.OR8(altsOrOpts),
61
+ OR9: altsOrOpts => this.OR9(altsOrOpts),
62
+ MANY: actionORMethodDef => this.MANY(actionORMethodDef),
63
+ MANY1: actionORMethodDef => this.MANY1(actionORMethodDef),
64
+ MANY2: actionORMethodDef => this.MANY2(actionORMethodDef),
65
+ MANY3: actionORMethodDef => this.MANY3(actionORMethodDef),
66
+ MANY4: actionORMethodDef => this.MANY4(actionORMethodDef),
67
+ MANY5: actionORMethodDef => this.MANY5(actionORMethodDef),
68
+ MANY6: actionORMethodDef => this.MANY6(actionORMethodDef),
69
+ MANY7: actionORMethodDef => this.MANY7(actionORMethodDef),
70
+ MANY8: actionORMethodDef => this.MANY8(actionORMethodDef),
71
+ MANY9: actionORMethodDef => this.MANY9(actionORMethodDef),
72
+ MANY_SEP: options => this.MANY_SEP(options),
73
+ MANY_SEP1: options => this.MANY_SEP1(options),
74
+ MANY_SEP2: options => this.MANY_SEP2(options),
75
+ MANY_SEP3: options => this.MANY_SEP3(options),
76
+ MANY_SEP4: options => this.MANY_SEP4(options),
77
+ MANY_SEP5: options => this.MANY_SEP5(options),
78
+ MANY_SEP6: options => this.MANY_SEP6(options),
79
+ MANY_SEP7: options => this.MANY_SEP7(options),
80
+ MANY_SEP8: options => this.MANY_SEP8(options),
81
+ MANY_SEP9: options => this.MANY_SEP9(options),
82
+ AT_LEAST_ONE: actionORMethodDef => this.AT_LEAST_ONE(actionORMethodDef),
83
+ AT_LEAST_ONE1: actionORMethodDef => this.AT_LEAST_ONE1(actionORMethodDef),
84
+ AT_LEAST_ONE2: actionORMethodDef => this.AT_LEAST_ONE2(actionORMethodDef),
85
+ AT_LEAST_ONE3: actionORMethodDef => this.AT_LEAST_ONE3(actionORMethodDef),
86
+ AT_LEAST_ONE4: actionORMethodDef => this.AT_LEAST_ONE4(actionORMethodDef),
87
+ AT_LEAST_ONE5: actionORMethodDef => this.AT_LEAST_ONE5(actionORMethodDef),
88
+ AT_LEAST_ONE6: actionORMethodDef => this.AT_LEAST_ONE6(actionORMethodDef),
89
+ AT_LEAST_ONE7: actionORMethodDef => this.AT_LEAST_ONE7(actionORMethodDef),
90
+ AT_LEAST_ONE8: actionORMethodDef => this.AT_LEAST_ONE8(actionORMethodDef),
91
+ AT_LEAST_ONE9: actionORMethodDef => this.AT_LEAST_ONE9(actionORMethodDef),
92
+ AT_LEAST_ONE_SEP: options => this.AT_LEAST_ONE_SEP(options),
93
+ AT_LEAST_ONE_SEP1: options => this.AT_LEAST_ONE_SEP1(options),
94
+ AT_LEAST_ONE_SEP2: options => this.AT_LEAST_ONE_SEP2(options),
95
+ AT_LEAST_ONE_SEP3: options => this.AT_LEAST_ONE_SEP3(options),
96
+ AT_LEAST_ONE_SEP4: options => this.AT_LEAST_ONE_SEP4(options),
97
+ AT_LEAST_ONE_SEP5: options => this.AT_LEAST_ONE_SEP5(options),
98
+ AT_LEAST_ONE_SEP6: options => this.AT_LEAST_ONE_SEP6(options),
99
+ AT_LEAST_ONE_SEP7: options => this.AT_LEAST_ONE_SEP7(options),
100
+ AT_LEAST_ONE_SEP8: options => this.AT_LEAST_ONE_SEP8(options),
101
+ AT_LEAST_ONE_SEP9: options => this.AT_LEAST_ONE_SEP9(options),
102
+ ACTION: func => this.ACTION(func),
103
+ BACKTRACK: (cstDef, ...args) => this.BACKTRACK(this[cstDef.name], { ARGS: args }),
104
+ SUBRULE: subRuleImpl((rule, args) => this.SUBRULE(rule, args)),
105
+ SUBRULE1: subRuleImpl((rule, args) => this.SUBRULE1(rule, args)),
106
+ SUBRULE2: subRuleImpl((rule, args) => this.SUBRULE2(rule, args)),
107
+ SUBRULE3: subRuleImpl((rule, args) => this.SUBRULE3(rule, args)),
108
+ SUBRULE4: subRuleImpl((rule, args) => this.SUBRULE4(rule, args)),
109
+ SUBRULE5: subRuleImpl((rule, args) => this.SUBRULE5(rule, args)),
110
+ SUBRULE6: subRuleImpl((rule, args) => this.SUBRULE6(rule, args)),
111
+ SUBRULE7: subRuleImpl((rule, args) => this.SUBRULE7(rule, args)),
112
+ SUBRULE8: subRuleImpl((rule, args) => this.SUBRULE8(rule, args)),
113
+ SUBRULE9: subRuleImpl((rule, args) => this.SUBRULE9(rule, args)),
114
+ };
45
115
  }
46
- this.performSelfAnalysis();
47
- }
48
- constructSelfRef() {
49
- const subRuleImpl = (chevrotainSubrule) => ((cstDef, ...arg) => chevrotainSubrule(this[cstDef.name], { ARGS: [this.context, ...arg] }));
50
- return {
51
- CONSUME: (tokenType, option) => this.CONSUME(tokenType, option),
52
- CONSUME1: (tokenType, option) => this.CONSUME1(tokenType, option),
53
- CONSUME2: (tokenType, option) => this.CONSUME2(tokenType, option),
54
- CONSUME3: (tokenType, option) => this.CONSUME3(tokenType, option),
55
- CONSUME4: (tokenType, option) => this.CONSUME4(tokenType, option),
56
- CONSUME5: (tokenType, option) => this.CONSUME5(tokenType, option),
57
- CONSUME6: (tokenType, option) => this.CONSUME6(tokenType, option),
58
- CONSUME7: (tokenType, option) => this.CONSUME7(tokenType, option),
59
- CONSUME8: (tokenType, option) => this.CONSUME8(tokenType, option),
60
- CONSUME9: (tokenType, option) => this.CONSUME9(tokenType, option),
61
- OPTION: (actionORMethodDef) => this.OPTION(actionORMethodDef),
62
- OPTION1: (actionORMethodDef) => this.OPTION1(actionORMethodDef),
63
- OPTION2: (actionORMethodDef) => this.OPTION2(actionORMethodDef),
64
- OPTION3: (actionORMethodDef) => this.OPTION3(actionORMethodDef),
65
- OPTION4: (actionORMethodDef) => this.OPTION4(actionORMethodDef),
66
- OPTION5: (actionORMethodDef) => this.OPTION5(actionORMethodDef),
67
- OPTION6: (actionORMethodDef) => this.OPTION6(actionORMethodDef),
68
- OPTION7: (actionORMethodDef) => this.OPTION7(actionORMethodDef),
69
- OPTION8: (actionORMethodDef) => this.OPTION8(actionORMethodDef),
70
- OPTION9: (actionORMethodDef) => this.OPTION9(actionORMethodDef),
71
- OR: (altsOrOpts) => this.OR(altsOrOpts),
72
- OR1: (altsOrOpts) => this.OR1(altsOrOpts),
73
- OR2: (altsOrOpts) => this.OR2(altsOrOpts),
74
- OR3: (altsOrOpts) => this.OR3(altsOrOpts),
75
- OR4: (altsOrOpts) => this.OR4(altsOrOpts),
76
- OR5: (altsOrOpts) => this.OR5(altsOrOpts),
77
- OR6: (altsOrOpts) => this.OR6(altsOrOpts),
78
- OR7: (altsOrOpts) => this.OR7(altsOrOpts),
79
- OR8: (altsOrOpts) => this.OR8(altsOrOpts),
80
- OR9: (altsOrOpts) => this.OR9(altsOrOpts),
81
- MANY: (actionORMethodDef) => this.MANY(actionORMethodDef),
82
- MANY1: (actionORMethodDef) => this.MANY1(actionORMethodDef),
83
- MANY2: (actionORMethodDef) => this.MANY2(actionORMethodDef),
84
- MANY3: (actionORMethodDef) => this.MANY3(actionORMethodDef),
85
- MANY4: (actionORMethodDef) => this.MANY4(actionORMethodDef),
86
- MANY5: (actionORMethodDef) => this.MANY5(actionORMethodDef),
87
- MANY6: (actionORMethodDef) => this.MANY6(actionORMethodDef),
88
- MANY7: (actionORMethodDef) => this.MANY7(actionORMethodDef),
89
- MANY8: (actionORMethodDef) => this.MANY8(actionORMethodDef),
90
- MANY9: (actionORMethodDef) => this.MANY9(actionORMethodDef),
91
- MANY_SEP: (options) => this.MANY_SEP(options),
92
- MANY_SEP1: (options) => this.MANY_SEP1(options),
93
- MANY_SEP2: (options) => this.MANY_SEP2(options),
94
- MANY_SEP3: (options) => this.MANY_SEP3(options),
95
- MANY_SEP4: (options) => this.MANY_SEP4(options),
96
- MANY_SEP5: (options) => this.MANY_SEP5(options),
97
- MANY_SEP6: (options) => this.MANY_SEP6(options),
98
- MANY_SEP7: (options) => this.MANY_SEP7(options),
99
- MANY_SEP8: (options) => this.MANY_SEP8(options),
100
- MANY_SEP9: (options) => this.MANY_SEP9(options),
101
- AT_LEAST_ONE: (actionORMethodDef) => this.AT_LEAST_ONE(actionORMethodDef),
102
- AT_LEAST_ONE1: (actionORMethodDef) => this.AT_LEAST_ONE1(actionORMethodDef),
103
- AT_LEAST_ONE2: (actionORMethodDef) => this.AT_LEAST_ONE2(actionORMethodDef),
104
- AT_LEAST_ONE3: (actionORMethodDef) => this.AT_LEAST_ONE3(actionORMethodDef),
105
- AT_LEAST_ONE4: (actionORMethodDef) => this.AT_LEAST_ONE4(actionORMethodDef),
106
- AT_LEAST_ONE5: (actionORMethodDef) => this.AT_LEAST_ONE5(actionORMethodDef),
107
- AT_LEAST_ONE6: (actionORMethodDef) => this.AT_LEAST_ONE6(actionORMethodDef),
108
- AT_LEAST_ONE7: (actionORMethodDef) => this.AT_LEAST_ONE7(actionORMethodDef),
109
- AT_LEAST_ONE8: (actionORMethodDef) => this.AT_LEAST_ONE8(actionORMethodDef),
110
- AT_LEAST_ONE9: (actionORMethodDef) => this.AT_LEAST_ONE9(actionORMethodDef),
111
- AT_LEAST_ONE_SEP: (options) => this.AT_LEAST_ONE_SEP(options),
112
- AT_LEAST_ONE_SEP1: (options) => this.AT_LEAST_ONE_SEP1(options),
113
- AT_LEAST_ONE_SEP2: (options) => this.AT_LEAST_ONE_SEP2(options),
114
- AT_LEAST_ONE_SEP3: (options) => this.AT_LEAST_ONE_SEP3(options),
115
- AT_LEAST_ONE_SEP4: (options) => this.AT_LEAST_ONE_SEP4(options),
116
- AT_LEAST_ONE_SEP5: (options) => this.AT_LEAST_ONE_SEP5(options),
117
- AT_LEAST_ONE_SEP6: (options) => this.AT_LEAST_ONE_SEP6(options),
118
- AT_LEAST_ONE_SEP7: (options) => this.AT_LEAST_ONE_SEP7(options),
119
- AT_LEAST_ONE_SEP8: (options) => this.AT_LEAST_ONE_SEP8(options),
120
- AT_LEAST_ONE_SEP9: (options) => this.AT_LEAST_ONE_SEP9(options),
121
- ACTION: (func) => this.ACTION(func),
122
- BACKTRACK: (cstDef, ...args) => this.BACKTRACK(this[cstDef.name], { ARGS: args }),
123
- SUBRULE: subRuleImpl((rule, args) => this.SUBRULE(rule, args)),
124
- SUBRULE1: subRuleImpl((rule, args) => this.SUBRULE1(rule, args)),
125
- SUBRULE2: subRuleImpl((rule, args) => this.SUBRULE2(rule, args)),
126
- SUBRULE3: subRuleImpl((rule, args) => this.SUBRULE3(rule, args)),
127
- SUBRULE4: subRuleImpl((rule, args) => this.SUBRULE4(rule, args)),
128
- SUBRULE5: subRuleImpl((rule, args) => this.SUBRULE5(rule, args)),
129
- SUBRULE6: subRuleImpl((rule, args) => this.SUBRULE6(rule, args)),
130
- SUBRULE7: subRuleImpl((rule, args) => this.SUBRULE7(rule, args)),
131
- SUBRULE8: subRuleImpl((rule, args) => this.SUBRULE8(rule, args)),
132
- SUBRULE9: subRuleImpl((rule, args) => this.SUBRULE9(rule, args))
133
- };
134
- }
135
116
  }
136
- // Annotate the CommonJS export names for ESM import in node:
137
- 0 && (module.exports = {
138
- DynamicParser
139
- });
117
+ exports.DynamicParser = DynamicParser;
118
+ //# sourceMappingURL=dynamicParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicParser.js","sourceRoot":"","sources":["../../../../lib/parser-builder/dynamicParser.ts"],"names":[],"mappings":"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","sourcesContent":["import { EmbeddedActionsParser } from '@traqula/chevrotain';\nimport type { IParserConfig, TokenVocabulary } from '@traqula/chevrotain';\nimport type { ParseRuleMap } from './builderTypes.js';\nimport type { CstDef, ImplArgs, ParserRule } from './ruleDefTypes.js';\n\nexport class DynamicParser<Context, Names extends string, RuleDefs extends ParseRuleMap<Names>>\n extends EmbeddedActionsParser {\n private context: Context | undefined;\n\n public setContext(context: Context): void {\n this.context = context;\n }\n\n public constructor(rules: RuleDefs, tokenVocabulary: TokenVocabulary, config: IParserConfig = {}) {\n super(tokenVocabulary, {\n // RecoveryEnabled: true,\n maxLookahead: 1,\n skipValidations: true,\n ...config,\n });\n this.context = undefined;\n const selfRef = this.constructSelfRef();\n const implArgs: ImplArgs = {\n ...selfRef,\n cache: new WeakMap(),\n };\n\n for (const rule of Object.values(<Record<string, ParserRule<Context>>>rules)) {\n // Function implementation itself - this function is called AFTER lexing\n this[<keyof (typeof this)>rule.name] = <any> this.RULE(rule.name, rule.impl(implArgs));\n }\n this.performSelfAnalysis();\n }\n\n private constructSelfRef(): CstDef {\n const subRuleImpl = (chevrotainSubrule: typeof this.SUBRULE): CstDef['SUBRULE'] =>\n ((cstDef, ...arg) =>\n chevrotainSubrule(<any> this[<keyof (typeof this)>cstDef.name], <any>{ ARGS: [ this.context, ...arg ]})\n ) satisfies CstDef['SUBRULE'];\n return {\n CONSUME: (tokenType, option) => this.CONSUME(tokenType, option),\n CONSUME1: (tokenType, option) => this.CONSUME1(tokenType, option),\n CONSUME2: (tokenType, option) => this.CONSUME2(tokenType, option),\n CONSUME3: (tokenType, option) => this.CONSUME3(tokenType, option),\n CONSUME4: (tokenType, option) => this.CONSUME4(tokenType, option),\n CONSUME5: (tokenType, option) => this.CONSUME5(tokenType, option),\n CONSUME6: (tokenType, option) => this.CONSUME6(tokenType, option),\n CONSUME7: (tokenType, option) => this.CONSUME7(tokenType, option),\n CONSUME8: (tokenType, option) => this.CONSUME8(tokenType, option),\n CONSUME9: (tokenType, option) => this.CONSUME9(tokenType, option),\n OPTION: actionORMethodDef => this.OPTION(actionORMethodDef),\n OPTION1: actionORMethodDef => this.OPTION1(actionORMethodDef),\n OPTION2: actionORMethodDef => this.OPTION2(actionORMethodDef),\n OPTION3: actionORMethodDef => this.OPTION3(actionORMethodDef),\n OPTION4: actionORMethodDef => this.OPTION4(actionORMethodDef),\n OPTION5: actionORMethodDef => this.OPTION5(actionORMethodDef),\n OPTION6: actionORMethodDef => this.OPTION6(actionORMethodDef),\n OPTION7: actionORMethodDef => this.OPTION7(actionORMethodDef),\n OPTION8: actionORMethodDef => this.OPTION8(actionORMethodDef),\n OPTION9: actionORMethodDef => this.OPTION9(actionORMethodDef),\n OR: altsOrOpts => this.OR(altsOrOpts),\n OR1: altsOrOpts => this.OR1(altsOrOpts),\n OR2: altsOrOpts => this.OR2(altsOrOpts),\n OR3: altsOrOpts => this.OR3(altsOrOpts),\n OR4: altsOrOpts => this.OR4(altsOrOpts),\n OR5: altsOrOpts => this.OR5(altsOrOpts),\n OR6: altsOrOpts => this.OR6(altsOrOpts),\n OR7: altsOrOpts => this.OR7(altsOrOpts),\n OR8: altsOrOpts => this.OR8(altsOrOpts),\n OR9: altsOrOpts => this.OR9(altsOrOpts),\n MANY: actionORMethodDef => this.MANY(actionORMethodDef),\n MANY1: actionORMethodDef => this.MANY1(actionORMethodDef),\n MANY2: actionORMethodDef => this.MANY2(actionORMethodDef),\n MANY3: actionORMethodDef => this.MANY3(actionORMethodDef),\n MANY4: actionORMethodDef => this.MANY4(actionORMethodDef),\n MANY5: actionORMethodDef => this.MANY5(actionORMethodDef),\n MANY6: actionORMethodDef => this.MANY6(actionORMethodDef),\n MANY7: actionORMethodDef => this.MANY7(actionORMethodDef),\n MANY8: actionORMethodDef => this.MANY8(actionORMethodDef),\n MANY9: actionORMethodDef => this.MANY9(actionORMethodDef),\n MANY_SEP: options => this.MANY_SEP(options),\n MANY_SEP1: options => this.MANY_SEP1(options),\n MANY_SEP2: options => this.MANY_SEP2(options),\n MANY_SEP3: options => this.MANY_SEP3(options),\n MANY_SEP4: options => this.MANY_SEP4(options),\n MANY_SEP5: options => this.MANY_SEP5(options),\n MANY_SEP6: options => this.MANY_SEP6(options),\n MANY_SEP7: options => this.MANY_SEP7(options),\n MANY_SEP8: options => this.MANY_SEP8(options),\n MANY_SEP9: options => this.MANY_SEP9(options),\n AT_LEAST_ONE: actionORMethodDef => this.AT_LEAST_ONE(actionORMethodDef),\n AT_LEAST_ONE1: actionORMethodDef => this.AT_LEAST_ONE1(actionORMethodDef),\n AT_LEAST_ONE2: actionORMethodDef => this.AT_LEAST_ONE2(actionORMethodDef),\n AT_LEAST_ONE3: actionORMethodDef => this.AT_LEAST_ONE3(actionORMethodDef),\n AT_LEAST_ONE4: actionORMethodDef => this.AT_LEAST_ONE4(actionORMethodDef),\n AT_LEAST_ONE5: actionORMethodDef => this.AT_LEAST_ONE5(actionORMethodDef),\n AT_LEAST_ONE6: actionORMethodDef => this.AT_LEAST_ONE6(actionORMethodDef),\n AT_LEAST_ONE7: actionORMethodDef => this.AT_LEAST_ONE7(actionORMethodDef),\n AT_LEAST_ONE8: actionORMethodDef => this.AT_LEAST_ONE8(actionORMethodDef),\n AT_LEAST_ONE9: actionORMethodDef => this.AT_LEAST_ONE9(actionORMethodDef),\n AT_LEAST_ONE_SEP: options => this.AT_LEAST_ONE_SEP(options),\n AT_LEAST_ONE_SEP1: options => this.AT_LEAST_ONE_SEP1(options),\n AT_LEAST_ONE_SEP2: options => this.AT_LEAST_ONE_SEP2(options),\n AT_LEAST_ONE_SEP3: options => this.AT_LEAST_ONE_SEP3(options),\n AT_LEAST_ONE_SEP4: options => this.AT_LEAST_ONE_SEP4(options),\n AT_LEAST_ONE_SEP5: options => this.AT_LEAST_ONE_SEP5(options),\n AT_LEAST_ONE_SEP6: options => this.AT_LEAST_ONE_SEP6(options),\n AT_LEAST_ONE_SEP7: options => this.AT_LEAST_ONE_SEP7(options),\n AT_LEAST_ONE_SEP8: options => this.AT_LEAST_ONE_SEP8(options),\n AT_LEAST_ONE_SEP9: options => this.AT_LEAST_ONE_SEP9(options),\n ACTION: func => this.ACTION(func),\n BACKTRACK: (cstDef, ...args) =>\n this.BACKTRACK(<any> this[<keyof (typeof this)>cstDef.name], <any>{ ARGS: args }),\n SUBRULE: subRuleImpl((rule, args) => this.SUBRULE(rule, args)),\n SUBRULE1: subRuleImpl((rule, args) => this.SUBRULE1(rule, args)),\n SUBRULE2: subRuleImpl((rule, args) => this.SUBRULE2(rule, args)),\n SUBRULE3: subRuleImpl((rule, args) => this.SUBRULE3(rule, args)),\n SUBRULE4: subRuleImpl((rule, args) => this.SUBRULE4(rule, args)),\n SUBRULE5: subRuleImpl((rule, args) => this.SUBRULE5(rule, args)),\n SUBRULE6: subRuleImpl((rule, args) => this.SUBRULE6(rule, args)),\n SUBRULE7: subRuleImpl((rule, args) => this.SUBRULE7(rule, args)),\n SUBRULE8: subRuleImpl((rule, args) => this.SUBRULE8(rule, args)),\n SUBRULE9: subRuleImpl((rule, args) => this.SUBRULE9(rule, args)),\n };\n }\n}\n"]}