@gmb/bitmark-parser-generator 1.5.12 → 1.5.13
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/browser/bitmark-parser-generator.min.js +1 -1
- package/dist/browser/bundle-report.html +2 -2
- package/dist/cjs/ast/Ast.js +13 -13
- package/dist/cjs/ast/Ast.js.map +1 -1
- package/dist/cjs/generated/build-info.js +1 -1
- package/dist/cjs/generated/parser/text/text-peggy-parser.js +729 -642
- package/dist/cjs/generated/parser/text/text-peggy-parser.js.map +1 -1
- package/dist/cjs/generator/AstWalkerGenerator.js +83 -0
- package/dist/cjs/generator/AstWalkerGenerator.js.map +1 -0
- package/dist/cjs/generator/bitmark/BitmarkGenerator.js +144 -180
- package/dist/cjs/generator/bitmark/BitmarkGenerator.js.map +1 -1
- package/dist/cjs/generator/json/JsonGenerator.js +66 -95
- package/dist/cjs/generator/json/JsonGenerator.js.map +1 -1
- package/dist/cjs/generator/text/TextGenerator.js +36 -73
- package/dist/cjs/generator/text/TextGenerator.js.map +1 -1
- package/dist/cjs/model/enum/TextNodeType.js +1 -0
- package/dist/cjs/model/enum/TextNodeType.js.map +1 -1
- package/dist/esm/ast/Ast.js +13 -13
- package/dist/esm/ast/Ast.js.map +1 -1
- package/dist/esm/generated/build-info.js +1 -1
- package/dist/esm/generated/parser/text/text-peggy-parser.js +729 -642
- package/dist/esm/generated/parser/text/text-peggy-parser.js.map +1 -1
- package/dist/esm/generator/AstWalkerGenerator.js +80 -0
- package/dist/esm/generator/AstWalkerGenerator.js.map +1 -0
- package/dist/esm/generator/bitmark/BitmarkGenerator.js +144 -180
- package/dist/esm/generator/bitmark/BitmarkGenerator.js.map +1 -1
- package/dist/esm/generator/json/JsonGenerator.js +66 -95
- package/dist/esm/generator/json/JsonGenerator.js.map +1 -1
- package/dist/esm/generator/text/TextGenerator.js +36 -73
- package/dist/esm/generator/text/TextGenerator.js.map +1 -1
- package/dist/esm/model/enum/TextNodeType.js +1 -0
- package/dist/esm/model/enum/TextNodeType.js.map +1 -1
- package/dist/types/ast/Ast.d.ts +4 -8
- package/dist/types/ast/Ast.d.ts.map +1 -1
- package/dist/types/generated/parser/text/text-peggy-parser.d.ts.map +1 -1
- package/dist/types/generator/AstWalkerGenerator.d.ts +32 -0
- package/dist/types/generator/AstWalkerGenerator.d.ts.map +1 -0
- package/dist/types/generator/Generator.d.ts +2 -2
- package/dist/types/generator/Generator.d.ts.map +1 -1
- package/dist/types/generator/bitmark/BitmarkGenerator.d.ts +121 -127
- package/dist/types/generator/bitmark/BitmarkGenerator.d.ts.map +1 -1
- package/dist/types/generator/json/JsonGenerator.d.ts +43 -48
- package/dist/types/generator/json/JsonGenerator.d.ts.map +1 -1
- package/dist/types/generator/text/TextGenerator.d.ts +13 -17
- package/dist/types/generator/text/TextGenerator.d.ts.map +1 -1
- package/dist/types/model/enum/TextNodeType.d.ts +2 -0
- package/dist/types/model/enum/TextNodeType.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Ast } from '../ast/Ast';
|
|
2
|
+
/**
|
|
3
|
+
* Generator that walks bitmark AST.
|
|
4
|
+
*
|
|
5
|
+
* The implementation should implement functions with the correct naming, and these will be called when
|
|
6
|
+
* walking the AST:
|
|
7
|
+
*
|
|
8
|
+
* enter_<nodeKey>() - called when entering a branch node
|
|
9
|
+
* between_<nodeKey>() - called when between child nodes
|
|
10
|
+
* exit_<nodeKey>() - called when exiting a branch node
|
|
11
|
+
* leaf_<nodeKey>() - called when entering a leaf node
|
|
12
|
+
*/
|
|
13
|
+
class AstWalkerGenerator {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.ast = new Ast();
|
|
16
|
+
// Debugging
|
|
17
|
+
this.debugGenerationInline = false;
|
|
18
|
+
this.printed = false;
|
|
19
|
+
}
|
|
20
|
+
enter(node, route, context) {
|
|
21
|
+
let res = void 0;
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
const gen = this;
|
|
24
|
+
const funcName = `enter_${node.key}`;
|
|
25
|
+
if (!this.printed) {
|
|
26
|
+
this.printed = true;
|
|
27
|
+
}
|
|
28
|
+
if (this.debugGenerationInline)
|
|
29
|
+
this.writeInlineDebug(node.key, { open: true });
|
|
30
|
+
if (typeof gen[funcName] === 'function') {
|
|
31
|
+
res = gen[funcName](node, route, context);
|
|
32
|
+
}
|
|
33
|
+
return res;
|
|
34
|
+
}
|
|
35
|
+
between(node, left, right, route, context) {
|
|
36
|
+
let res = void 0;
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
const gen = this;
|
|
39
|
+
const funcName = `between_${node.key}`;
|
|
40
|
+
if (this.debugGenerationInline)
|
|
41
|
+
this.writeInlineDebug(node.key, { single: true });
|
|
42
|
+
if (typeof gen[funcName] === 'function') {
|
|
43
|
+
res = gen[funcName](node, left, right, route, context);
|
|
44
|
+
}
|
|
45
|
+
return res;
|
|
46
|
+
}
|
|
47
|
+
exit(node, route, context) {
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
const gen = this;
|
|
50
|
+
const funcName = `exit_${node.key}`;
|
|
51
|
+
if (this.debugGenerationInline)
|
|
52
|
+
this.writeInlineDebug(node.key, { close: true });
|
|
53
|
+
if (typeof gen[funcName] === 'function') {
|
|
54
|
+
gen[funcName](node, route, context);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
leaf(node, route, context) {
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
+
const gen = this;
|
|
60
|
+
const funcName = `leaf_${node.key}`;
|
|
61
|
+
if (this.debugGenerationInline)
|
|
62
|
+
this.writeInlineDebug(node.key, { open: true });
|
|
63
|
+
if (typeof gen[funcName] === 'function') {
|
|
64
|
+
gen[funcName](node, route, context);
|
|
65
|
+
}
|
|
66
|
+
if (this.debugGenerationInline)
|
|
67
|
+
this.writeInlineDebug(node.key, { close: true });
|
|
68
|
+
}
|
|
69
|
+
//
|
|
70
|
+
// HELPER FUNCTIONS
|
|
71
|
+
//
|
|
72
|
+
getParentNode(route, nodesBack = 1) {
|
|
73
|
+
if (route.length > nodesBack + 1) {
|
|
74
|
+
return route[route.length - nodesBack - 1];
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export { AstWalkerGenerator };
|
|
80
|
+
//# sourceMappingURL=AstWalkerGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AstWalkerGenerator.js","sourceRoot":"","sources":["../../../src/generator/AstWalkerGenerator.ts"],"names":[],"mappings":"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"}
|