@traqula/core 0.0.22 → 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.
- package/dist/cjs/lib/AstCoreFactory.js +136 -149
- package/dist/cjs/lib/AstCoreFactory.js.map +1 -0
- package/dist/cjs/lib/generator-builder/builderTypes.js +2 -15
- package/dist/cjs/lib/generator-builder/builderTypes.js.map +1 -0
- package/dist/cjs/lib/generator-builder/dynamicGenerator.js +189 -200
- package/dist/cjs/lib/generator-builder/dynamicGenerator.js.map +1 -0
- package/dist/cjs/lib/generator-builder/generatorBuilder.js +103 -117
- package/dist/cjs/lib/generator-builder/generatorBuilder.js.map +1 -0
- package/dist/cjs/lib/generator-builder/generatorTypes.js +2 -15
- package/dist/cjs/lib/generator-builder/generatorTypes.js.map +1 -0
- package/dist/cjs/lib/index.js +39 -57
- package/dist/cjs/lib/index.js.map +1 -0
- package/dist/cjs/lib/indirection-builder/IndirBuilder.js +63 -85
- package/dist/cjs/lib/indirection-builder/IndirBuilder.js.map +1 -0
- package/dist/cjs/lib/indirection-builder/dynamicIndirected.js +28 -50
- package/dist/cjs/lib/indirection-builder/dynamicIndirected.js.map +1 -0
- package/dist/cjs/lib/indirection-builder/helpers.js +11 -31
- package/dist/cjs/lib/indirection-builder/helpers.js.map +1 -0
- package/dist/cjs/lib/lexer-builder/LexerBuilder.js +92 -114
- package/dist/cjs/lib/lexer-builder/LexerBuilder.js.map +1 -0
- package/dist/cjs/lib/parser-builder/builderTypes.js +2 -15
- package/dist/cjs/lib/parser-builder/builderTypes.js.map +1 -0
- package/dist/cjs/lib/parser-builder/dynamicParser.js +115 -136
- package/dist/cjs/lib/parser-builder/dynamicParser.js.map +1 -0
- package/dist/cjs/lib/parser-builder/parserBuilder.js +167 -169
- package/dist/cjs/lib/parser-builder/parserBuilder.js.map +1 -0
- package/dist/cjs/lib/parser-builder/ruleDefTypes.js +2 -15
- package/dist/cjs/lib/parser-builder/ruleDefTypes.js.map +1 -0
- package/dist/cjs/lib/transformers/TransformerObject.js +196 -198
- package/dist/cjs/lib/transformers/TransformerObject.js.map +1 -0
- package/dist/cjs/lib/transformers/TransformerSubTyped.js +120 -141
- package/dist/cjs/lib/transformers/TransformerSubTyped.js.map +1 -0
- package/dist/cjs/lib/transformers/TransformerTyped.js +99 -120
- package/dist/cjs/lib/transformers/TransformerTyped.js.map +1 -0
- package/dist/cjs/lib/types.js +2 -15
- package/dist/cjs/lib/types.js.map +1 -0
- package/dist/cjs/lib/utils.js +13 -34
- package/dist/cjs/lib/utils.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/package.json +9 -8
- package/dist/cjs/test/generatorBuilder/generatorBuilder.types.test.js +0 -30
- package/dist/cjs/test/grammar-builder/parserBuilder.types.test.js +0 -27
- package/dist/cjs/test/transformer.test.js +0 -82
- package/dist/esm/test/generatorBuilder/generatorBuilder.types.test.d.ts +0 -1
- package/dist/esm/test/generatorBuilder/generatorBuilder.types.test.js +0 -38
- package/dist/esm/test/generatorBuilder/generatorBuilder.types.test.js.map +0 -1
- package/dist/esm/test/grammar-builder/parserBuilder.types.test.d.ts +0 -1
- package/dist/esm/test/grammar-builder/parserBuilder.types.test.js +0 -38
- package/dist/esm/test/grammar-builder/parserBuilder.types.test.js.map +0 -1
- package/dist/esm/test/transformer.test.d.ts +0 -1
- package/dist/esm/test/transformer.test.js +0 -82
- package/dist/esm/test/transformer.test.js.map +0 -1
|
@@ -1,123 +1,101 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
94
|
-
|
|
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
|
-
|
|
121
|
-
|
|
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
|
-
|
|
3
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
137
|
-
|
|
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"]}
|