@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.
Files changed (48) hide show
  1. package/dist/browser/bitmark-parser-generator.min.js +1 -1
  2. package/dist/browser/bundle-report.html +2 -2
  3. package/dist/cjs/ast/Ast.js +13 -13
  4. package/dist/cjs/ast/Ast.js.map +1 -1
  5. package/dist/cjs/generated/build-info.js +1 -1
  6. package/dist/cjs/generated/parser/text/text-peggy-parser.js +729 -642
  7. package/dist/cjs/generated/parser/text/text-peggy-parser.js.map +1 -1
  8. package/dist/cjs/generator/AstWalkerGenerator.js +83 -0
  9. package/dist/cjs/generator/AstWalkerGenerator.js.map +1 -0
  10. package/dist/cjs/generator/bitmark/BitmarkGenerator.js +144 -180
  11. package/dist/cjs/generator/bitmark/BitmarkGenerator.js.map +1 -1
  12. package/dist/cjs/generator/json/JsonGenerator.js +66 -95
  13. package/dist/cjs/generator/json/JsonGenerator.js.map +1 -1
  14. package/dist/cjs/generator/text/TextGenerator.js +36 -73
  15. package/dist/cjs/generator/text/TextGenerator.js.map +1 -1
  16. package/dist/cjs/model/enum/TextNodeType.js +1 -0
  17. package/dist/cjs/model/enum/TextNodeType.js.map +1 -1
  18. package/dist/esm/ast/Ast.js +13 -13
  19. package/dist/esm/ast/Ast.js.map +1 -1
  20. package/dist/esm/generated/build-info.js +1 -1
  21. package/dist/esm/generated/parser/text/text-peggy-parser.js +729 -642
  22. package/dist/esm/generated/parser/text/text-peggy-parser.js.map +1 -1
  23. package/dist/esm/generator/AstWalkerGenerator.js +80 -0
  24. package/dist/esm/generator/AstWalkerGenerator.js.map +1 -0
  25. package/dist/esm/generator/bitmark/BitmarkGenerator.js +144 -180
  26. package/dist/esm/generator/bitmark/BitmarkGenerator.js.map +1 -1
  27. package/dist/esm/generator/json/JsonGenerator.js +66 -95
  28. package/dist/esm/generator/json/JsonGenerator.js.map +1 -1
  29. package/dist/esm/generator/text/TextGenerator.js +36 -73
  30. package/dist/esm/generator/text/TextGenerator.js.map +1 -1
  31. package/dist/esm/model/enum/TextNodeType.js +1 -0
  32. package/dist/esm/model/enum/TextNodeType.js.map +1 -1
  33. package/dist/types/ast/Ast.d.ts +4 -8
  34. package/dist/types/ast/Ast.d.ts.map +1 -1
  35. package/dist/types/generated/parser/text/text-peggy-parser.d.ts.map +1 -1
  36. package/dist/types/generator/AstWalkerGenerator.d.ts +32 -0
  37. package/dist/types/generator/AstWalkerGenerator.d.ts.map +1 -0
  38. package/dist/types/generator/Generator.d.ts +2 -2
  39. package/dist/types/generator/Generator.d.ts.map +1 -1
  40. package/dist/types/generator/bitmark/BitmarkGenerator.d.ts +121 -127
  41. package/dist/types/generator/bitmark/BitmarkGenerator.d.ts.map +1 -1
  42. package/dist/types/generator/json/JsonGenerator.d.ts +43 -48
  43. package/dist/types/generator/json/JsonGenerator.d.ts.map +1 -1
  44. package/dist/types/generator/text/TextGenerator.d.ts +13 -17
  45. package/dist/types/generator/text/TextGenerator.d.ts.map +1 -1
  46. package/dist/types/model/enum/TextNodeType.d.ts +2 -0
  47. package/dist/types/model/enum/TextNodeType.d.ts.map +1 -1
  48. 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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"}