bc-minecraft-molang 1.21.100-9 → 1.21.133-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 (178) hide show
  1. package/README.md +21 -18
  2. package/{lib/src → dist}/data/animations-controllers.d.ts +2 -1
  3. package/dist/data/animations-controllers.d.ts.map +1 -0
  4. package/{lib/src → dist}/data/animations-controllers.js +2 -2
  5. package/dist/data/animations-controllers.js.map +1 -0
  6. package/{lib/src → dist}/data/animations.d.ts +2 -1
  7. package/dist/data/animations.d.ts.map +1 -0
  8. package/{lib/src → dist}/data/animations.js +2 -2
  9. package/dist/data/animations.js.map +1 -0
  10. package/{lib/src → dist}/data/attachables.d.ts +2 -1
  11. package/dist/data/attachables.d.ts.map +1 -0
  12. package/{lib/src → dist}/data/attachables.js +2 -2
  13. package/dist/data/attachables.js.map +1 -0
  14. package/{lib/src → dist}/data/blocks.d.ts +2 -1
  15. package/dist/data/blocks.d.ts.map +1 -0
  16. package/dist/data/blocks.js.map +1 -0
  17. package/dist/data/data.d.ts +4 -0
  18. package/dist/data/data.d.ts.map +1 -0
  19. package/{lib/src → dist}/data/data.js.map +1 -1
  20. package/{lib/src → dist}/data/entities.d.ts +2 -1
  21. package/dist/data/entities.d.ts.map +1 -0
  22. package/{lib/src → dist}/data/entities.js +2 -2
  23. package/dist/data/entities.js.map +1 -0
  24. package/{lib/src → dist}/data/features-rules.d.ts +2 -1
  25. package/dist/data/features-rules.d.ts.map +1 -0
  26. package/{lib/src → dist}/data/features-rules.js +8 -1
  27. package/dist/data/features-rules.js.map +1 -0
  28. package/{lib/src → dist}/data/general.d.ts +2 -1
  29. package/dist/data/general.d.ts.map +1 -0
  30. package/dist/data/general.js +1807 -0
  31. package/dist/data/general.js.map +1 -0
  32. package/dist/data/index.d.ts +14 -0
  33. package/dist/data/index.d.ts.map +1 -0
  34. package/dist/data/index.js.map +1 -0
  35. package/{lib/src → dist}/data/items.d.ts +2 -1
  36. package/dist/data/items.d.ts.map +1 -0
  37. package/{lib/src → dist}/data/items.js +1 -1
  38. package/dist/data/items.js.map +1 -0
  39. package/{lib/src → dist}/data/molang-data.d.ts +22 -12
  40. package/dist/data/molang-data.d.ts.map +1 -0
  41. package/{lib/src → dist}/data/molang-data.js +34 -2
  42. package/dist/data/molang-data.js.map +1 -0
  43. package/{lib/src → dist}/data/molang-function.d.ts +11 -4
  44. package/dist/data/molang-function.d.ts.map +1 -0
  45. package/{lib/src → dist}/data/molang-function.js +4 -4
  46. package/dist/data/molang-function.js.map +1 -0
  47. package/{lib/src → dist}/data/particles.d.ts +2 -1
  48. package/dist/data/particles.d.ts.map +1 -0
  49. package/dist/data/particles.js +28 -0
  50. package/dist/data/particles.js.map +1 -0
  51. package/{lib/src → dist}/data/render-controllers.d.ts +2 -1
  52. package/dist/data/render-controllers.d.ts.map +1 -0
  53. package/{lib/src → dist}/data/render-controllers.js +2 -2
  54. package/dist/data/render-controllers.js.map +1 -0
  55. package/{lib/src → dist}/graph/index.d.ts +1 -0
  56. package/dist/graph/index.d.ts.map +1 -0
  57. package/dist/graph/index.js.map +1 -0
  58. package/{lib/src → dist}/graph/mermaid.d.ts +3 -2
  59. package/dist/graph/mermaid.d.ts.map +1 -0
  60. package/{lib/src → dist}/graph/mermaid.js +43 -41
  61. package/dist/graph/mermaid.js.map +1 -0
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/{lib/src/main.js → dist/index.js} +1 -1
  65. package/dist/index.js.map +1 -0
  66. package/{lib/src → dist}/molang/cache.d.ts +3 -2
  67. package/dist/molang/cache.d.ts.map +1 -0
  68. package/{lib/src → dist}/molang/cache.js +1 -0
  69. package/dist/molang/cache.js.map +1 -0
  70. package/{lib/src → dist}/molang/functions.d.ts +1 -0
  71. package/dist/molang/functions.d.ts.map +1 -0
  72. package/{lib/src → dist}/molang/functions.js +14 -14
  73. package/dist/molang/functions.js.map +1 -0
  74. package/dist/molang/index.d.ts +6 -0
  75. package/dist/molang/index.d.ts.map +1 -0
  76. package/dist/molang/index.js.map +1 -0
  77. package/{lib/src → dist}/molang/molang-set.d.ts +5 -3
  78. package/dist/molang/molang-set.d.ts.map +1 -0
  79. package/{lib/src → dist}/molang/molang-set.js +36 -15
  80. package/dist/molang/molang-set.js.map +1 -0
  81. package/{lib/src → dist}/molang/syntax/builder.d.ts +2 -1
  82. package/dist/molang/syntax/builder.d.ts.map +1 -0
  83. package/{lib/src → dist}/molang/syntax/builder.js +8 -2
  84. package/dist/molang/syntax/builder.js.map +1 -0
  85. package/dist/molang/syntax/collect.d.ts +3 -0
  86. package/dist/molang/syntax/collect.d.ts.map +1 -0
  87. package/dist/molang/syntax/collect.js.map +1 -0
  88. package/{lib/src → dist}/molang/syntax/errors.d.ts +2 -1
  89. package/dist/molang/syntax/errors.d.ts.map +1 -0
  90. package/{lib/src → dist}/molang/syntax/errors.js +4 -2
  91. package/dist/molang/syntax/errors.js.map +1 -0
  92. package/dist/molang/syntax/flatten.d.ts +3 -0
  93. package/dist/molang/syntax/flatten.d.ts.map +1 -0
  94. package/dist/molang/syntax/flatten.js.map +1 -0
  95. package/dist/molang/syntax/index.d.ts +11 -0
  96. package/dist/molang/syntax/index.d.ts.map +1 -0
  97. package/dist/molang/syntax/index.js.map +1 -0
  98. package/{lib/src → dist}/molang/syntax/nodes.d.ts +6 -5
  99. package/dist/molang/syntax/nodes.d.ts.map +1 -0
  100. package/{lib/src → dist}/molang/syntax/nodes.js +4 -5
  101. package/dist/molang/syntax/nodes.js.map +1 -0
  102. package/{lib/src → dist}/molang/syntax/operators.d.ts +2 -1
  103. package/dist/molang/syntax/operators.d.ts.map +1 -0
  104. package/{lib/src → dist}/molang/syntax/operators.js +26 -27
  105. package/dist/molang/syntax/operators.js.map +1 -0
  106. package/dist/molang/syntax/parse.d.ts +5 -0
  107. package/dist/molang/syntax/parse.d.ts.map +1 -0
  108. package/{lib/src → dist}/molang/syntax/parse.js +94 -35
  109. package/dist/molang/syntax/parse.js.map +1 -0
  110. package/dist/molang/syntax/tokens.d.ts +37 -0
  111. package/dist/molang/syntax/tokens.d.ts.map +1 -0
  112. package/{lib/src → dist}/molang/syntax/tokens.js +110 -64
  113. package/dist/molang/syntax/tokens.js.map +1 -0
  114. package/{lib/src → dist}/molang/syntax/util.d.ts +1 -0
  115. package/dist/molang/syntax/util.d.ts.map +1 -0
  116. package/{lib/src → dist}/molang/syntax/util.js +3 -3
  117. package/dist/molang/syntax/util.js.map +1 -0
  118. package/{lib/src → dist}/molang/syntax/walk.d.ts +2 -1
  119. package/dist/molang/syntax/walk.d.ts.map +1 -0
  120. package/dist/molang/syntax/walk.js.map +1 -0
  121. package/{lib/src → dist}/molang/traverse.d.ts +2 -1
  122. package/dist/molang/traverse.d.ts.map +1 -0
  123. package/{lib/src → dist}/molang/traverse.js +6 -6
  124. package/dist/molang/traverse.js.map +1 -0
  125. package/package.json +59 -59
  126. package/LICENSE +0 -29
  127. package/lib/src/data/animations-controllers.js.map +0 -1
  128. package/lib/src/data/animations.js.map +0 -1
  129. package/lib/src/data/attachables.js.map +0 -1
  130. package/lib/src/data/blocks.js.map +0 -1
  131. package/lib/src/data/data.d.ts +0 -3
  132. package/lib/src/data/entities.js.map +0 -1
  133. package/lib/src/data/features-rules.js.map +0 -1
  134. package/lib/src/data/general.js +0 -1522
  135. package/lib/src/data/general.js.map +0 -1
  136. package/lib/src/data/index.d.ts +0 -13
  137. package/lib/src/data/index.js.map +0 -1
  138. package/lib/src/data/items.js.map +0 -1
  139. package/lib/src/data/molang-data.js.map +0 -1
  140. package/lib/src/data/molang-function.js.map +0 -1
  141. package/lib/src/data/particles.js +0 -28
  142. package/lib/src/data/particles.js.map +0 -1
  143. package/lib/src/data/render-controllers.js.map +0 -1
  144. package/lib/src/graph/index.js.map +0 -1
  145. package/lib/src/graph/mermaid.js.map +0 -1
  146. package/lib/src/main.d.ts +0 -3
  147. package/lib/src/main.js.map +0 -1
  148. package/lib/src/molang/cache.js.map +0 -1
  149. package/lib/src/molang/functions.js.map +0 -1
  150. package/lib/src/molang/index.d.ts +0 -5
  151. package/lib/src/molang/index.js.map +0 -1
  152. package/lib/src/molang/molang-set.js.map +0 -1
  153. package/lib/src/molang/syntax/builder.js.map +0 -1
  154. package/lib/src/molang/syntax/collect.d.ts +0 -2
  155. package/lib/src/molang/syntax/collect.js.map +0 -1
  156. package/lib/src/molang/syntax/errors.js.map +0 -1
  157. package/lib/src/molang/syntax/flatten.d.ts +0 -2
  158. package/lib/src/molang/syntax/flatten.js.map +0 -1
  159. package/lib/src/molang/syntax/index.d.ts +0 -10
  160. package/lib/src/molang/syntax/index.js.map +0 -1
  161. package/lib/src/molang/syntax/nodes.js.map +0 -1
  162. package/lib/src/molang/syntax/operators.js.map +0 -1
  163. package/lib/src/molang/syntax/parse.d.ts +0 -4
  164. package/lib/src/molang/syntax/parse.js.map +0 -1
  165. package/lib/src/molang/syntax/tokens.d.ts +0 -35
  166. package/lib/src/molang/syntax/tokens.js.map +0 -1
  167. package/lib/src/molang/syntax/util.js.map +0 -1
  168. package/lib/src/molang/syntax/walk.js.map +0 -1
  169. package/lib/src/molang/traverse.js.map +0 -1
  170. /package/{lib/src → dist}/data/blocks.js +0 -0
  171. /package/{lib/src → dist}/data/data.js +0 -0
  172. /package/{lib/src → dist}/data/index.js +0 -0
  173. /package/{lib/src → dist}/graph/index.js +0 -0
  174. /package/{lib/src → dist}/molang/index.js +0 -0
  175. /package/{lib/src → dist}/molang/syntax/collect.js +0 -0
  176. /package/{lib/src → dist}/molang/syntax/flatten.js +0 -0
  177. /package/{lib/src → dist}/molang/syntax/index.js +0 -0
  178. /package/{lib/src → dist}/molang/syntax/walk.js +0 -0
@@ -6,17 +6,19 @@ exports.generateDetailedMermaidDiagram = generateDetailedMermaidDiagram;
6
6
  const nodes_1 = require("../molang/syntax/nodes");
7
7
  const tokens_1 = require("../molang/syntax/tokens");
8
8
  class MermaidDiagramBuilder {
9
+ nodeCounter = 0;
10
+ nodeMap = new Map();
11
+ edges;
12
+ nodes;
13
+ options;
9
14
  constructor(options = {}) {
10
- var _a, _b, _c, _d;
11
- this.nodeCounter = 0;
12
- this.nodeMap = new Map();
13
15
  this.nodes = ['start@{ shape: sm-circ, label: "Small start" }'];
14
- this.edges = ["start-->node0"];
16
+ this.edges = ['start-->node0'];
15
17
  this.options = {
16
- direction: (_a = options.direction) !== null && _a !== void 0 ? _a : "TD",
17
- showPosition: (_b = options.showPosition) !== null && _b !== void 0 ? _b : false,
18
- maxDepth: (_c = options.maxDepth) !== null && _c !== void 0 ? _c : Infinity,
19
- compactMode: (_d = options.compactMode) !== null && _d !== void 0 ? _d : false,
18
+ direction: options.direction ?? 'TD',
19
+ showPosition: options.showPosition ?? false,
20
+ maxDepth: options.maxDepth ?? Infinity,
21
+ compactMode: options.compactMode ?? false,
20
22
  };
21
23
  }
22
24
  /**
@@ -25,20 +27,20 @@ class MermaidDiagramBuilder {
25
27
  generateDiagram(rootNode) {
26
28
  this.reset();
27
29
  this.processNode(rootNode, 0);
28
- const header = `---
29
- config:
30
- theme: redux
31
- ---
30
+ const header = `---
31
+ config:
32
+ theme: redux
33
+ ---
32
34
  flowchart ${this.options.direction}`;
33
- const nodeDefinitions = this.nodes.join("\n ");
34
- const edgeDefinitions = this.edges.join("\n ");
35
+ const nodeDefinitions = this.nodes.join('\n ');
36
+ const edgeDefinitions = this.edges.join('\n ');
35
37
  return `${header}\n ${nodeDefinitions}\n ${edgeDefinitions}`;
36
38
  }
37
39
  reset() {
38
40
  this.nodeCounter = 0;
39
41
  this.nodeMap.clear();
40
42
  this.nodes = ['start@{ shape: sm-circ, label: "Small start" }'];
41
- this.edges = ["start-->node0"];
43
+ this.edges = ['start-->node0'];
42
44
  }
43
45
  getNodeId(node) {
44
46
  if (!this.nodeMap.has(node)) {
@@ -48,7 +50,7 @@ flowchart ${this.options.direction}`;
48
50
  }
49
51
  processNode(node, depth) {
50
52
  if (depth > this.options.maxDepth) {
51
- return this.createLeafNode("...");
53
+ return this.createLeafNode('...');
52
54
  }
53
55
  const nodeId = this.getNodeId(node);
54
56
  const nodeInfo = this.getNodeInfo(node);
@@ -59,41 +61,41 @@ flowchart ${this.options.direction}`;
59
61
  return nodeId;
60
62
  }
61
63
  getNodeInfo(node) {
62
- const position = this.options.showPosition ? `@${node.position}` : "";
64
+ const position = this.options.showPosition ? `@${node.position}` : '';
63
65
  switch (node.type) {
64
66
  case nodes_1.NodeType.Assignment:
65
- return createNodeInfo(`{"=${position}"}`, "=");
67
+ return createNodeInfo(`{"=${position}"}`, '=');
66
68
  case nodes_1.NodeType.ArrayAccess:
67
- return createNodeInfo(`["[]${position}"]`, "[]");
69
+ return createNodeInfo(`["[]${position}"]`, '[]');
68
70
  case nodes_1.NodeType.BinaryOperation:
69
71
  return createNodeInfo(`{"\\${node.operator}${position}"}`, `${node.operator}`);
70
72
  case nodes_1.NodeType.Conditional:
71
- return createNodeInfo(`{"?:${position}"}`, "?:");
73
+ return createNodeInfo(`{"?:${position}"}`, '?:');
72
74
  case nodes_1.NodeType.Literal:
73
75
  return createNodeInfo(`["${node.value}${position}"]`, node.value);
74
76
  case nodes_1.NodeType.Marker:
75
77
  return createNodeInfo(`>"${node.token.type}${position}"]`, tokens_1.TokenType[node.token.type]);
76
78
  case nodes_1.NodeType.NullishCoalescing:
77
- return createNodeInfo(`{"??${position}"}`, "??");
79
+ return createNodeInfo(`{"??${position}"}`, '??');
78
80
  case nodes_1.NodeType.StatementSequence:
79
- return createNodeInfo(`[";${position}"]`, "sequence");
81
+ return createNodeInfo(`[";${position}"]`, 'sequence');
80
82
  case nodes_1.NodeType.StringLiteral:
81
83
  return createNodeInfo(`["'${node.value}'${position}"]`, `'${node.value}'`);
82
84
  case nodes_1.NodeType.UnaryOperation:
83
85
  return createNodeInfo(`{"${node.operator}${position}"}`, `${node.operator}`);
84
86
  case nodes_1.NodeType.Variable:
85
- const varName = node.names.join(".");
87
+ const varName = node.names.join('.');
86
88
  return createNodeInfo(`[["${node.scope}.${varName}${position}"]]`, `${node.scope}.${varName}`);
87
89
  case nodes_1.NodeType.FunctionCall:
88
- const funcName = node.names.join(".");
90
+ const funcName = node.names.join('.');
89
91
  return createNodeInfo(`{{"${node.scope}.${funcName}()${position}"}}`, `${node.scope}.${funcName}()`);
90
92
  case nodes_1.NodeType.ResourceReference:
91
- const resName = node.names.join(".");
93
+ const resName = node.names.join('.');
92
94
  return createNodeInfo(`[/"${node.scope}.${resName}${position}"/]`, `${node.scope}.${resName}`);
93
95
  default:
94
96
  return {
95
97
  shape: `["Unknown${position}"]`,
96
- label: "Unknown",
98
+ label: 'Unknown',
97
99
  };
98
100
  }
99
101
  }
@@ -101,42 +103,42 @@ flowchart ${this.options.direction}`;
101
103
  const children = this.getChildren(node);
102
104
  children.forEach(({ child, label }) => {
103
105
  const childId = this.processNode(child, depth + 1);
104
- const edgeLabel = label ? ` -->|${label}| ` : " --> ";
106
+ const edgeLabel = label ? ` -->|${label}| ` : ' --> ';
105
107
  this.edges.push(`${parentId}${edgeLabel}${childId}`);
106
108
  });
107
109
  }
108
110
  getChildren(node) {
109
111
  switch (node.type) {
110
112
  case nodes_1.NodeType.UnaryOperation:
111
- return [{ child: node.operand, label: "operand" }];
113
+ return [{ child: node.operand, label: 'operand' }];
112
114
  case nodes_1.NodeType.BinaryOperation:
113
115
  return [
114
- { child: node.left, label: "left" },
115
- { child: node.right, label: "right" },
116
+ { child: node.left, label: 'left' },
117
+ { child: node.right, label: 'right' },
116
118
  ];
117
119
  case nodes_1.NodeType.Assignment:
118
120
  return [
119
- { child: node.left, label: "target" },
120
- { child: node.right, label: "value" },
121
+ { child: node.left, label: 'target' },
122
+ { child: node.right, label: 'value' },
121
123
  ];
122
124
  case nodes_1.NodeType.ArrayAccess:
123
125
  return [
124
- { child: node.array, label: "array" },
125
- { child: node.index, label: "index" },
126
+ { child: node.array, label: 'array' },
127
+ { child: node.index, label: 'index' },
126
128
  ];
127
129
  case nodes_1.NodeType.Conditional:
128
130
  const conditionalChildren = [
129
- { child: node.condition, label: "condition" },
130
- { child: node.trueExpression, label: "true" },
131
+ { child: node.condition, label: 'condition' },
132
+ { child: node.trueExpression, label: 'true' },
131
133
  ];
132
134
  if (node.falseExpression) {
133
- conditionalChildren.push({ child: node.falseExpression, label: "false" });
135
+ conditionalChildren.push({ child: node.falseExpression, label: 'false' });
134
136
  }
135
137
  return conditionalChildren;
136
138
  case nodes_1.NodeType.NullishCoalescing:
137
139
  return [
138
- { child: node.left, label: "left" },
139
- { child: node.right, label: "right" },
140
+ { child: node.left, label: 'left' },
141
+ { child: node.right, label: 'right' },
140
142
  ];
141
143
  case nodes_1.NodeType.FunctionCall:
142
144
  return node.arguments.map((arg, index) => ({
@@ -208,7 +210,7 @@ function generateCompactMermaidDiagram(rootNode, maxDepth = 3) {
208
210
  return generateMermaidDiagram(rootNode, {
209
211
  compactMode: true,
210
212
  maxDepth,
211
- direction: "LR",
213
+ direction: 'LR',
212
214
  });
213
215
  }
214
216
  /**
@@ -217,7 +219,7 @@ function generateCompactMermaidDiagram(rootNode, maxDepth = 3) {
217
219
  function generateDetailedMermaidDiagram(rootNode) {
218
220
  return generateMermaidDiagram(rootNode, {
219
221
  showPosition: true,
220
- direction: "TD",
222
+ direction: 'TD',
221
223
  });
222
224
  }
223
225
  //# sourceMappingURL=mermaid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid.js","sourceRoot":"","sources":["../../src/graph/mermaid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './data';
2
+ export * from './graph';
3
+ export * from './molang';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -17,4 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./data"), exports);
18
18
  __exportStar(require("./graph"), exports);
19
19
  __exportStar(require("./molang"), exports);
20
- //# sourceMappingURL=main.js.map
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,2CAAyB"}
@@ -1,5 +1,5 @@
1
- import { OffsetWord } from "bc-minecraft-bedrock-types/lib/types";
2
- import { ExpressionNode } from "./syntax";
1
+ import { OffsetWord } from '@blockception/packages-shared';
2
+ import { ExpressionNode } from './syntax';
3
3
  export declare class MolangSyntaxCache {
4
4
  private _data;
5
5
  constructor();
@@ -9,3 +9,4 @@ export declare class MolangSyntaxCache {
9
9
  syntaxes(): MapIterator<string>;
10
10
  expressions(): MapIterator<ExpressionNode[]>;
11
11
  }
12
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/molang/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAe,MAAM,UAAU,CAAC;AAEvD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAgC;;IAM7C,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,GAAG,SAAS;IAWrD,KAAK;IAIL,OAAO;IAIP,QAAQ;IAIR,WAAW;CAGZ"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MolangSyntaxCache = void 0;
4
4
  const syntax_1 = require("./syntax");
5
5
  class MolangSyntaxCache {
6
+ _data;
6
7
  constructor() {
7
8
  this._data = new Map();
8
9
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/molang/cache.ts"],"names":[],"mappings":";;;AACA,qCAAuD;AAEvD,MAAa,iBAAiB;IACpB,KAAK,CAAgC;IAE7C;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAgB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7B,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;CACF;AAjCD,8CAiCC"}
@@ -35,3 +35,4 @@ export declare function isValidMolang(molang: string): boolean;
35
35
  * @returns The index of the molang expression
36
36
  */
37
37
  export declare function find(molang: string, startIndex: number, find: string): number;
38
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/molang/functions.ts"],"names":[],"mappings":"AACA,yBAAyB;AACzB,oBAAY,UAAU;IACpB,gBAAgB;IAChB,OAAO,IAAA;IACP,eAAe;IACf,KAAK,IAAA;IACL,qBAAqB;IACrB,MAAM,IAAA;IACN,cAAc;IACd,OAAO,IAAA;CACR;AAOD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAMrD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,WAEpC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAyBrD;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC7E"}
@@ -21,7 +21,7 @@ var MolangType;
21
21
  })(MolangType || (exports.MolangType = MolangType = {}));
22
22
  const eventRegex = /^@s ([\w:_-]+)/im;
23
23
  const commandRegex = /^\/[a-z]+/im;
24
- const molangRegexp = /\b((query|math|variable|texture|temp|geometry|material|array|context|c|q|v|t)\.[A-Za-z_0-9]+|->|this)\b/im;
24
+ const molangRegexp = /(?<!:)\b((query|math|variable|texture|temp|geometry|material|array|context|c|q|v|t)\.[A-Za-z_0-9]+|->|this)\b/im;
25
25
  /**
26
26
  * Checks if the string is a molang type
27
27
  * @param data The string to check
@@ -37,7 +37,7 @@ function isMolangType(data) {
37
37
  return MolangType.unknown;
38
38
  }
39
39
  function isMolang(data) {
40
- return molangRegexp.test(data) && data !== "this";
40
+ return molangRegexp.test(data) && data !== 'this';
41
41
  }
42
42
  /**
43
43
  * Already assumes that the given data is of type MolangType.event
@@ -59,15 +59,15 @@ function isValidMolang(molang) {
59
59
  case "'":
60
60
  instr = !instr;
61
61
  break;
62
- case "[":
63
- case "{":
64
- case "(":
62
+ case '[':
63
+ case '{':
64
+ case '(':
65
65
  if (!instr)
66
66
  level++;
67
67
  break;
68
- case "]":
69
- case ")":
70
- case "}":
68
+ case ']':
69
+ case ')':
70
+ case '}':
71
71
  if (!instr)
72
72
  level--;
73
73
  break;
@@ -96,15 +96,15 @@ function find(molang, startIndex, find) {
96
96
  switch (molang[I]) {
97
97
  case "'":
98
98
  instr = !instr;
99
- case "[":
100
- case "{":
101
- case "(":
99
+ case '[':
100
+ case '{':
101
+ case '(':
102
102
  if (!instr)
103
103
  level++;
104
104
  break;
105
- case "]":
106
- case ")":
107
- case "}":
105
+ case ']':
106
+ case ')':
107
+ case '}':
108
108
  if (!instr)
109
109
  level--;
110
110
  break;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/molang/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './cache';
2
+ export * from './functions';
3
+ export * from './molang-set';
4
+ export * from './syntax';
5
+ export * from './traverse';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/molang/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/molang/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,0CAAwB;AACxB,8CAA4B;AAC5B,+CAA6B;AAC7B,2CAAyB;AACzB,6CAA2B"}
@@ -1,6 +1,6 @@
1
- import { OffsetWord } from "bc-minecraft-bedrock-types/lib/types";
2
- import { MolangSyntaxCache } from "./cache";
3
- import { FunctionCallNode, ResourceReferenceNode, VariableNode } from "./syntax";
1
+ import { OffsetWord } from '@blockception/packages-shared';
2
+ import { MolangSyntaxCache } from './cache';
3
+ import { FunctionCallNode, ResourceReferenceNode, VariableNode } from './syntax';
4
4
  /** The interface for the molang set */
5
5
  export declare class MolangSet {
6
6
  cache: MolangSyntaxCache;
@@ -20,7 +20,9 @@ export declare class MolangSet {
20
20
  */
21
21
  add(molang: OffsetWord): void;
22
22
  private walkFn;
23
+ private walkChildren;
23
24
  private checkAssigned;
24
25
  harvest(object: Record<string, any> | string, originalText: string): this;
25
26
  static harvest(object: Record<string, any> | string, originalText: string): MolangSet;
26
27
  }
28
+ //# sourceMappingURL=molang-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"molang-set.d.ts","sourceRoot":"","sources":["../../src/molang/molang-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAkB,gBAAgB,EAAY,qBAAqB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE3G,uCAAuC;AACvC,qBAAa,SAAS;IACb,KAAK,oBAA2B;IAChC,QAAQ,4CAAmD;IAC3D,SAAS,wBAA+B;IACxC,KAAK,4CAAmD;;IAI/D;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,UAAU;IAIxB;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,UAAU;IAMtB,OAAO,CAAC,MAAM;IAyBd,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAyBzE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS;CAGtF"}
@@ -1,18 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MolangSet = void 0;
4
- const types_1 = require("bc-minecraft-bedrock-types/lib/types");
4
+ const packages_shared_1 = require("@blockception/packages-shared");
5
5
  const cache_1 = require("./cache");
6
6
  const functions_1 = require("./functions");
7
7
  const syntax_1 = require("./syntax");
8
8
  /** The interface for the molang set */
9
9
  class MolangSet {
10
- constructor() {
11
- this.cache = new cache_1.MolangSyntaxCache();
12
- this.assigned = new Set();
13
- this.functions = new Set();
14
- this.using = new Set();
15
- }
10
+ cache = new cache_1.MolangSyntaxCache();
11
+ assigned = new Set();
12
+ functions = new Set();
13
+ using = new Set();
14
+ constructor() { }
16
15
  /**
17
16
  * adds the data from the molang code if it is valid molang
18
17
  * @param molang
@@ -30,9 +29,9 @@ class MolangSet {
30
29
  const exp = this.cache.build(molang);
31
30
  if (exp === undefined)
32
31
  return;
33
- exp.forEach((e) => (0, syntax_1.walk)(e, this.walkFn.bind(this)));
32
+ exp.forEach((e) => this.walkChildren(e));
34
33
  }
35
- walkFn(node) {
34
+ walkFn(node, skipUsing = false) {
36
35
  switch (node.type) {
37
36
  case syntax_1.NodeType.Assignment:
38
37
  this.checkAssigned(node.left);
@@ -40,14 +39,36 @@ class MolangSet {
40
39
  case syntax_1.NodeType.FunctionCall:
41
40
  this.functions.add(node);
42
41
  break;
42
+ case syntax_1.NodeType.NullishCoalescing:
43
+ // The left side of ?? is expected to potentially be undefined, so don't mark it as "using"
44
+ // But we still need to walk it to collect functions, assignments, etc.
45
+ this.walkChildren(node.left, true);
46
+ // The right side should be walked normally
47
+ this.walkChildren(node.right, false);
48
+ break;
43
49
  case syntax_1.NodeType.ResourceReference:
44
50
  case syntax_1.NodeType.Variable:
45
51
  if (this.assigned.has(node))
46
52
  break;
47
- this.using.add(node);
53
+ if (!skipUsing) {
54
+ this.using.add(node);
55
+ }
48
56
  break;
49
57
  }
50
58
  }
59
+ walkChildren(node, skipUsing = false) {
60
+ const objs = [node];
61
+ for (let i = 0; i < objs.length; i++) {
62
+ const n = objs[i];
63
+ if (n === undefined)
64
+ continue;
65
+ this.walkFn(n, skipUsing);
66
+ // For NullishCoalescing nodes, don't add children to the queue since walkFn handles them
67
+ if (n.type === syntax_1.NodeType.NullishCoalescing)
68
+ continue;
69
+ objs.push(...syntax_1.ExpressionNode.getChildern(n));
70
+ }
71
+ }
51
72
  checkAssigned(node) {
52
73
  switch (node.type) {
53
74
  case syntax_1.NodeType.ResourceReference:
@@ -57,19 +78,19 @@ class MolangSet {
57
78
  }
58
79
  }
59
80
  harvest(object, originalText) {
60
- if (typeof object === "string") {
81
+ if (typeof object === 'string') {
61
82
  if ((0, functions_1.isMolang)(object)) {
62
- this.add(types_1.OffsetWord.create(object, originalText.indexOf(object)));
83
+ this.add(packages_shared_1.OffsetWord.create(object, originalText.indexOf(object)));
63
84
  return this;
64
85
  }
65
86
  }
66
87
  for (const [, value] of Object.entries(object)) {
67
- if (typeof value === "string") {
88
+ if (typeof value === 'string') {
68
89
  if ((0, functions_1.isMolang)(value)) {
69
- this.add(types_1.OffsetWord.create(value, originalText.indexOf(value)));
90
+ this.add(packages_shared_1.OffsetWord.create(value, originalText.indexOf(value)));
70
91
  }
71
92
  }
72
- else if (typeof value === "object") {
93
+ else if (typeof value === 'object') {
73
94
  if (Array.isArray(value)) {
74
95
  value.forEach((v) => this.harvest(v, originalText));
75
96
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"molang-set.js","sourceRoot":"","sources":["../../src/molang/molang-set.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ExpressionNode, StatementSequenceNode } from "./nodes";
1
+ import { ExpressionNode, StatementSequenceNode } from './nodes';
2
2
  export declare class SyntaxBuilder {
3
3
  result: StatementSequenceNode;
4
4
  /**
@@ -14,3 +14,4 @@ export declare class SyntaxBuilder {
14
14
  replace<T extends ExpressionNode, U extends ExpressionNode>(original: T, newnode: U): U;
15
15
  build(): ExpressionNode;
16
16
  }
17
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/molang/syntax/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAY,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE1E,qBAAa,aAAa;IACxB,MAAM,EAAE,qBAAqB,CAAC;IAC9B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEvB,QAAQ,EAAE,MAAM;IAS5B,GAAG,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IASzC,mBAAmB,CAAC,IAAI,EAAE,cAAc;IAexC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC;IAGxC,OAAO,CAAC,CAAC,SAAS,cAAc,EAAE,CAAC,SAAS,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;IAQvF,KAAK,IAAI,cAAc;CAKxB"}
@@ -3,6 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SyntaxBuilder = void 0;
4
4
  const nodes_1 = require("./nodes");
5
5
  class SyntaxBuilder {
6
+ result;
7
+ /**
8
+ * Operators is a list of operators in the current statements found, used for optimization.
9
+ * Though false positives are possible as operators can be processed down into others.
10
+ */
11
+ operators;
6
12
  constructor(position) {
7
13
  this.operators = {};
8
14
  this.result = {
@@ -25,10 +31,10 @@ class SyntaxBuilder {
25
31
  this.operators[node.operator] = true;
26
32
  return;
27
33
  case nodes_1.NodeType.NullishCoalescing:
28
- this.operators["??"] = true;
34
+ this.operators['??'] = true;
29
35
  return;
30
36
  case nodes_1.NodeType.Conditional:
31
- this.operators["?"] = true;
37
+ this.operators['?'] = true;
32
38
  return;
33
39
  }
34
40
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/molang/syntax/builder.ts"],"names":[],"mappings":";;;AAAA,mCAA0E;AAE1E,MAAa,aAAa;IACxB,MAAM,CAAwB;IAC9B;;;OAGG;IACH,SAAS,CAA0B;IAEnC,YAAY,QAAgB;QAC1B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,gBAAQ,CAAC,iBAAiB;YAChC,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,QAAQ;SACnB,CAAC;IACJ,CAAC;IAED,GAAG,CAA2B,IAAO;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,IAAoB;QACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,gBAAQ,CAAC,cAAc,CAAC;YAC7B,KAAK,gBAAQ,CAAC,eAAe;gBAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBACrC,OAAO;YACT,KAAK,gBAAQ,CAAC,iBAAiB;gBAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC5B,OAAO;YACT,KAAK,gBAAQ,CAAC,WAAW;gBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAC3B,OAAO;QACX,CAAC;IACH,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACrC,CAAC;IAED,MAAM,CAA2B,IAAO;QACtC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,CAAqD,QAAW,EAAE,OAAU;QACjF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACpD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAE1E,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AA7DD,sCA6DC"}
@@ -0,0 +1,3 @@
1
+ import { ExpressionNode } from './nodes';
2
+ export declare function collect<T extends ExpressionNode>(node: ExpressionNode, token: T['type']): T[];
3
+ //# sourceMappingURL=collect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../../src/molang/syntax/collect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,wBAAgB,OAAO,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAS7F"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../src/molang/syntax/collect.ts"],"names":[],"mappings":";;AAGA,0BASC;AAXD,iCAA8B;AAE9B,SAAgB,OAAO,CAA2B,IAAoB,EAAE,KAAgB;IACtF,MAAM,KAAK,GAAQ,EAAE,CAAC;IAEtB,IAAA,WAAI,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QACf,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAS,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Token } from "./tokens";
1
+ import { Token } from './tokens';
2
2
  /** Represents a syntax error in the Molang code */
3
3
  export declare class MolangSyntaxError extends Error {
4
4
  position: number;
@@ -7,3 +7,4 @@ export declare class MolangSyntaxError extends Error {
7
7
  static fromToken(token: Token, message: string): MolangSyntaxError;
8
8
  static fromTokens(tokens: Token[], message: string): MolangSyntaxError;
9
9
  }
10
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/molang/syntax/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,mDAAmD;AACnD,qBAAa,iBAAkB,SAAQ,KAAK;IAGjC,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,MAAM;gBAFnB,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM;IAMrB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;IAG9C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM;CAGnD"}
@@ -3,17 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MolangSyntaxError = void 0;
4
4
  /** Represents a syntax error in the Molang code */
5
5
  class MolangSyntaxError extends Error {
6
+ position;
7
+ code;
6
8
  constructor(message, position, code) {
7
9
  super(message);
8
10
  this.position = position;
9
11
  this.code = code;
10
- this.name = "MolangSyntaxError";
12
+ this.name = 'MolangSyntaxError';
11
13
  }
12
14
  static fromToken(token, message) {
13
15
  return new MolangSyntaxError(message, token.position, token.value);
14
16
  }
15
17
  static fromTokens(tokens, message) {
16
- return new MolangSyntaxError(message, tokens[0].position, tokens.map((i) => i.value).join(""));
18
+ return new MolangSyntaxError(message, tokens[0].position, tokens.map((i) => i.value).join(''));
17
19
  }
18
20
  }
19
21
  exports.MolangSyntaxError = MolangSyntaxError;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/molang/syntax/errors.ts"],"names":[],"mappings":";;;AAEA,mDAAmD;AACnD,MAAa,iBAAkB,SAAQ,KAAK;IAGjC;IACA;IAHT,YACE,OAAe,EACR,QAAgB,EAChB,IAAY;QAEnB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAQ;QAGnB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAY,EAAE,OAAe;QAC5C,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,MAAe,EAAE,OAAe;QAChD,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC;CACF;AAhBD,8CAgBC"}
@@ -0,0 +1,3 @@
1
+ import { ExpressionNode } from './nodes';
2
+ export declare function flatten(node: ExpressionNode): ExpressionNode[];
3
+ //# sourceMappingURL=flatten.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../src/molang/syntax/flatten.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,EAAE,CAK9D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../../src/molang/syntax/flatten.ts"],"names":[],"mappings":";;AAGA,0BAKC;AAPD,iCAA8B;AAE9B,SAAgB,OAAO,CAAC,IAAoB;IAC1C,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,IAAA,WAAI,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from './builder';
2
+ export * from './collect';
3
+ export * from './errors';
4
+ export * from './flatten';
5
+ export * from './nodes';
6
+ export * from './operators';
7
+ export * from './parse';
8
+ export * from './tokens';
9
+ export * from './util';
10
+ export * from './walk';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molang/syntax/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}