@manifesto-ai/compiler 1.6.2 → 1.7.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 (201) hide show
  1. package/README.md +64 -16
  2. package/dist/chunk-DJY6BFGK.js +74 -0
  3. package/dist/chunk-DJY6BFGK.js.map +1 -0
  4. package/dist/chunk-QP2LGMBA.js +4522 -0
  5. package/dist/chunk-QP2LGMBA.js.map +1 -0
  6. package/dist/chunk-QXLPDCLA.js +33 -0
  7. package/dist/chunk-QXLPDCLA.js.map +1 -0
  8. package/dist/esbuild.d.ts +8 -0
  9. package/dist/esbuild.js +14 -0
  10. package/dist/esbuild.js.map +1 -0
  11. package/dist/index.d.ts +2710 -11
  12. package/dist/index.js +2189 -43
  13. package/dist/index.js.map +1 -1
  14. package/dist/node-loader.d.ts +18 -0
  15. package/dist/node-loader.js +47 -0
  16. package/dist/node-loader.js.map +1 -0
  17. package/dist/rollup.d.ts +8 -0
  18. package/dist/rollup.js +14 -0
  19. package/dist/rollup.js.map +1 -0
  20. package/dist/rspack.d.ts +7 -0
  21. package/dist/rspack.js +14 -0
  22. package/dist/rspack.js.map +1 -0
  23. package/dist/unplugin-6wnvFiEo.d.ts +17 -0
  24. package/dist/vite.d.ts +8 -17
  25. package/dist/vite.js +13 -33
  26. package/dist/vite.js.map +1 -1
  27. package/dist/webpack.d.ts +8 -0
  28. package/dist/webpack.js +14 -0
  29. package/dist/webpack.js.map +1 -0
  30. package/package.json +39 -21
  31. package/dist/analyzer/index.d.ts +0 -6
  32. package/dist/analyzer/index.d.ts.map +0 -1
  33. package/dist/analyzer/index.js +0 -6
  34. package/dist/analyzer/index.js.map +0 -1
  35. package/dist/analyzer/scope.d.ts +0 -77
  36. package/dist/analyzer/scope.d.ts.map +0 -1
  37. package/dist/analyzer/scope.js +0 -296
  38. package/dist/analyzer/scope.js.map +0 -1
  39. package/dist/analyzer/validator.d.ts +0 -60
  40. package/dist/analyzer/validator.d.ts.map +0 -1
  41. package/dist/analyzer/validator.js +0 -439
  42. package/dist/analyzer/validator.js.map +0 -1
  43. package/dist/api/compile-mel-patch-collector.d.ts +0 -32
  44. package/dist/api/compile-mel-patch-collector.d.ts.map +0 -1
  45. package/dist/api/compile-mel-patch-collector.js +0 -425
  46. package/dist/api/compile-mel-patch-collector.js.map +0 -1
  47. package/dist/api/compile-mel-patch-expr.d.ts +0 -9
  48. package/dist/api/compile-mel-patch-expr.d.ts.map +0 -1
  49. package/dist/api/compile-mel-patch-expr.js +0 -179
  50. package/dist/api/compile-mel-patch-expr.js.map +0 -1
  51. package/dist/api/compile-mel-patch-location.d.ts +0 -10
  52. package/dist/api/compile-mel-patch-location.d.ts.map +0 -1
  53. package/dist/api/compile-mel-patch-location.js +0 -48
  54. package/dist/api/compile-mel-patch-location.js.map +0 -1
  55. package/dist/api/compile-mel-patch.d.ts +0 -6
  56. package/dist/api/compile-mel-patch.d.ts.map +0 -1
  57. package/dist/api/compile-mel-patch.js +0 -244
  58. package/dist/api/compile-mel-patch.js.map +0 -1
  59. package/dist/api/compile-mel.d.ts +0 -126
  60. package/dist/api/compile-mel.d.ts.map +0 -1
  61. package/dist/api/compile-mel.js +0 -114
  62. package/dist/api/compile-mel.js.map +0 -1
  63. package/dist/api/index.d.ts +0 -10
  64. package/dist/api/index.d.ts.map +0 -1
  65. package/dist/api/index.js +0 -9
  66. package/dist/api/index.js.map +0 -1
  67. package/dist/diagnostics/codes.d.ts +0 -25
  68. package/dist/diagnostics/codes.d.ts.map +0 -1
  69. package/dist/diagnostics/codes.js +0 -154
  70. package/dist/diagnostics/codes.js.map +0 -1
  71. package/dist/diagnostics/index.d.ts +0 -6
  72. package/dist/diagnostics/index.d.ts.map +0 -1
  73. package/dist/diagnostics/index.js +0 -6
  74. package/dist/diagnostics/index.js.map +0 -1
  75. package/dist/diagnostics/types.d.ts +0 -67
  76. package/dist/diagnostics/types.d.ts.map +0 -1
  77. package/dist/diagnostics/types.js +0 -58
  78. package/dist/diagnostics/types.js.map +0 -1
  79. package/dist/evaluation/context.d.ts +0 -91
  80. package/dist/evaluation/context.d.ts.map +0 -1
  81. package/dist/evaluation/context.js +0 -53
  82. package/dist/evaluation/context.js.map +0 -1
  83. package/dist/evaluation/evaluate-expr.d.ts +0 -24
  84. package/dist/evaluation/evaluate-expr.d.ts.map +0 -1
  85. package/dist/evaluation/evaluate-expr.js +0 -577
  86. package/dist/evaluation/evaluate-expr.js.map +0 -1
  87. package/dist/evaluation/evaluate-patch.d.ts +0 -123
  88. package/dist/evaluation/evaluate-patch.d.ts.map +0 -1
  89. package/dist/evaluation/evaluate-patch.js +0 -202
  90. package/dist/evaluation/evaluate-patch.js.map +0 -1
  91. package/dist/evaluation/evaluate-runtime-patch.d.ts +0 -86
  92. package/dist/evaluation/evaluate-runtime-patch.d.ts.map +0 -1
  93. package/dist/evaluation/evaluate-runtime-patch.js +0 -185
  94. package/dist/evaluation/evaluate-runtime-patch.js.map +0 -1
  95. package/dist/evaluation/index.d.ts +0 -15
  96. package/dist/evaluation/index.d.ts.map +0 -1
  97. package/dist/evaluation/index.js +0 -13
  98. package/dist/evaluation/index.js.map +0 -1
  99. package/dist/generator/index.d.ts +0 -7
  100. package/dist/generator/index.d.ts.map +0 -1
  101. package/dist/generator/index.js +0 -7
  102. package/dist/generator/index.js.map +0 -1
  103. package/dist/generator/ir.d.ts +0 -348
  104. package/dist/generator/ir.d.ts.map +0 -1
  105. package/dist/generator/ir.js +0 -715
  106. package/dist/generator/ir.js.map +0 -1
  107. package/dist/generator/lowering.d.ts +0 -11
  108. package/dist/generator/lowering.d.ts.map +0 -1
  109. package/dist/generator/lowering.js +0 -369
  110. package/dist/generator/lowering.js.map +0 -1
  111. package/dist/generator/normalizer.d.ts +0 -16
  112. package/dist/generator/normalizer.d.ts.map +0 -1
  113. package/dist/generator/normalizer.js +0 -181
  114. package/dist/generator/normalizer.js.map +0 -1
  115. package/dist/index.d.ts.map +0 -1
  116. package/dist/lexer/index.d.ts +0 -7
  117. package/dist/lexer/index.d.ts.map +0 -1
  118. package/dist/lexer/index.js +0 -7
  119. package/dist/lexer/index.js.map +0 -1
  120. package/dist/lexer/lexer.d.ts +0 -59
  121. package/dist/lexer/lexer.d.ts.map +0 -1
  122. package/dist/lexer/lexer.js +0 -433
  123. package/dist/lexer/lexer.js.map +0 -1
  124. package/dist/lexer/source-location.d.ts +0 -41
  125. package/dist/lexer/source-location.d.ts.map +0 -1
  126. package/dist/lexer/source-location.js +0 -33
  127. package/dist/lexer/source-location.js.map +0 -1
  128. package/dist/lexer/tokens.d.ts +0 -47
  129. package/dist/lexer/tokens.d.ts.map +0 -1
  130. package/dist/lexer/tokens.js +0 -73
  131. package/dist/lexer/tokens.js.map +0 -1
  132. package/dist/loader.d.ts +0 -23
  133. package/dist/loader.d.ts.map +0 -1
  134. package/dist/loader.js +0 -62
  135. package/dist/loader.js.map +0 -1
  136. package/dist/lowering/context.d.ts +0 -96
  137. package/dist/lowering/context.d.ts.map +0 -1
  138. package/dist/lowering/context.js +0 -42
  139. package/dist/lowering/context.js.map +0 -1
  140. package/dist/lowering/errors.d.ts +0 -84
  141. package/dist/lowering/errors.d.ts.map +0 -1
  142. package/dist/lowering/errors.js +0 -81
  143. package/dist/lowering/errors.js.map +0 -1
  144. package/dist/lowering/index.d.ts +0 -20
  145. package/dist/lowering/index.d.ts.map +0 -1
  146. package/dist/lowering/index.js +0 -13
  147. package/dist/lowering/index.js.map +0 -1
  148. package/dist/lowering/lower-expr.d.ts +0 -76
  149. package/dist/lowering/lower-expr.d.ts.map +0 -1
  150. package/dist/lowering/lower-expr.js +0 -366
  151. package/dist/lowering/lower-expr.js.map +0 -1
  152. package/dist/lowering/lower-patch.d.ts +0 -231
  153. package/dist/lowering/lower-patch.d.ts.map +0 -1
  154. package/dist/lowering/lower-patch.js +0 -146
  155. package/dist/lowering/lower-patch.js.map +0 -1
  156. package/dist/lowering/lower-runtime-patch.d.ts +0 -100
  157. package/dist/lowering/lower-runtime-patch.d.ts.map +0 -1
  158. package/dist/lowering/lower-runtime-patch.js +0 -49
  159. package/dist/lowering/lower-runtime-patch.js.map +0 -1
  160. package/dist/mel-module.d.ts +0 -13
  161. package/dist/mel-module.d.ts.map +0 -1
  162. package/dist/mel-module.js +0 -33
  163. package/dist/mel-module.js.map +0 -1
  164. package/dist/parser/ast.d.ts +0 -344
  165. package/dist/parser/ast.d.ts.map +0 -1
  166. package/dist/parser/ast.js +0 -24
  167. package/dist/parser/ast.js.map +0 -1
  168. package/dist/parser/index.d.ts +0 -7
  169. package/dist/parser/index.d.ts.map +0 -1
  170. package/dist/parser/index.js +0 -7
  171. package/dist/parser/index.js.map +0 -1
  172. package/dist/parser/parser.d.ts +0 -92
  173. package/dist/parser/parser.d.ts.map +0 -1
  174. package/dist/parser/parser.js +0 -892
  175. package/dist/parser/parser.js.map +0 -1
  176. package/dist/parser/precedence.d.ts +0 -44
  177. package/dist/parser/precedence.d.ts.map +0 -1
  178. package/dist/parser/precedence.js +0 -69
  179. package/dist/parser/precedence.js.map +0 -1
  180. package/dist/renderer/expr-node.d.ts +0 -172
  181. package/dist/renderer/expr-node.d.ts.map +0 -1
  182. package/dist/renderer/expr-node.js +0 -218
  183. package/dist/renderer/expr-node.js.map +0 -1
  184. package/dist/renderer/fragment.d.ts +0 -84
  185. package/dist/renderer/fragment.d.ts.map +0 -1
  186. package/dist/renderer/fragment.js +0 -172
  187. package/dist/renderer/fragment.js.map +0 -1
  188. package/dist/renderer/index.d.ts +0 -23
  189. package/dist/renderer/index.d.ts.map +0 -1
  190. package/dist/renderer/index.js +0 -27
  191. package/dist/renderer/index.js.map +0 -1
  192. package/dist/renderer/patch-op.d.ts +0 -82
  193. package/dist/renderer/patch-op.d.ts.map +0 -1
  194. package/dist/renderer/patch-op.js +0 -204
  195. package/dist/renderer/patch-op.js.map +0 -1
  196. package/dist/renderer/type-expr.d.ts +0 -61
  197. package/dist/renderer/type-expr.d.ts.map +0 -1
  198. package/dist/renderer/type-expr.js +0 -131
  199. package/dist/renderer/type-expr.js.map +0 -1
  200. package/dist/vite.d.ts.map +0 -1
  201. package/loader.cjs +0 -22
@@ -1,344 +0,0 @@
1
- /**
2
- * AST Node Types for MEL Parser
3
- * Based on MEL SPEC v0.3.3 Section 4
4
- */
5
- import type { SourceLocation } from "../lexer/source-location.js";
6
- /**
7
- * Base interface for all AST nodes
8
- */
9
- export interface ASTNode {
10
- location: SourceLocation;
11
- }
12
- /**
13
- * Root node of a MEL program
14
- */
15
- export interface ProgramNode extends ASTNode {
16
- kind: "program";
17
- imports: ImportNode[];
18
- domain: DomainNode;
19
- }
20
- /**
21
- * Import declaration
22
- */
23
- export interface ImportNode extends ASTNode {
24
- kind: "import";
25
- names: string[];
26
- from: string;
27
- }
28
- /**
29
- * Domain declaration
30
- */
31
- export interface DomainNode extends ASTNode {
32
- kind: "domain";
33
- name: string;
34
- /** v0.3.3: Named type declarations */
35
- types: TypeDeclNode[];
36
- members: DomainMember[];
37
- }
38
- /**
39
- * Domain member types
40
- */
41
- export type DomainMember = StateNode | ComputedNode | ActionNode;
42
- /**
43
- * Type declaration (v0.3.3)
44
- * Syntax: type Name = TypeExpr
45
- */
46
- export interface TypeDeclNode extends ASTNode {
47
- kind: "typeDecl";
48
- name: string;
49
- typeExpr: TypeExprNode;
50
- }
51
- /**
52
- * State block declaration
53
- */
54
- export interface StateNode extends ASTNode {
55
- kind: "state";
56
- fields: StateFieldNode[];
57
- }
58
- /**
59
- * State field declaration
60
- */
61
- export interface StateFieldNode extends ASTNode {
62
- kind: "stateField";
63
- name: string;
64
- typeExpr: TypeExprNode;
65
- initializer?: ExprNode;
66
- }
67
- /**
68
- * Computed value declaration
69
- */
70
- export interface ComputedNode extends ASTNode {
71
- kind: "computed";
72
- name: string;
73
- expression: ExprNode;
74
- }
75
- /**
76
- * Action declaration
77
- */
78
- export interface ActionNode extends ASTNode {
79
- kind: "action";
80
- name: string;
81
- params: ParamNode[];
82
- /** v0.3.2: Optional availability condition */
83
- available?: ExprNode;
84
- body: GuardedStmtNode[];
85
- }
86
- /**
87
- * Parameter declaration
88
- */
89
- export interface ParamNode extends ASTNode {
90
- kind: "param";
91
- name: string;
92
- typeExpr: TypeExprNode;
93
- }
94
- /**
95
- * Guarded statement types (top-level in action body)
96
- */
97
- export type GuardedStmtNode = WhenStmtNode | OnceStmtNode | OnceIntentStmtNode;
98
- /**
99
- * Inner statement types (inside guards)
100
- */
101
- export type InnerStmtNode = PatchStmtNode | EffectStmtNode | WhenStmtNode | OnceStmtNode | OnceIntentStmtNode | FailStmtNode | StopStmtNode;
102
- /**
103
- * When guard statement
104
- */
105
- export interface WhenStmtNode extends ASTNode {
106
- kind: "when";
107
- condition: ExprNode;
108
- body: InnerStmtNode[];
109
- }
110
- /**
111
- * Once guard statement (per-intent idempotency)
112
- */
113
- export interface OnceStmtNode extends ASTNode {
114
- kind: "once";
115
- marker: PathNode;
116
- condition?: ExprNode;
117
- body: InnerStmtNode[];
118
- }
119
- /**
120
- * Once-intent guard statement (per-intent idempotency sugar)
121
- */
122
- export interface OnceIntentStmtNode extends ASTNode {
123
- kind: "onceIntent";
124
- condition?: ExprNode;
125
- body: InnerStmtNode[];
126
- }
127
- /**
128
- * Patch statement
129
- */
130
- export interface PatchStmtNode extends ASTNode {
131
- kind: "patch";
132
- path: PathNode;
133
- op: "set" | "unset" | "merge";
134
- value?: ExprNode;
135
- }
136
- /**
137
- * Effect statement
138
- */
139
- export interface EffectStmtNode extends ASTNode {
140
- kind: "effect";
141
- effectType: string;
142
- args: EffectArgNode[];
143
- }
144
- /**
145
- * Effect argument
146
- */
147
- export interface EffectArgNode extends ASTNode {
148
- kind: "effectArg";
149
- name: string;
150
- value: ExprNode | PathNode;
151
- isPath: boolean;
152
- }
153
- /**
154
- * Fail statement (v0.3.2) - terminates flow with error
155
- * Compiles to FlowNode { kind: "fail", code, message }
156
- */
157
- export interface FailStmtNode extends ASTNode {
158
- kind: "fail";
159
- code: string;
160
- message?: ExprNode;
161
- }
162
- /**
163
- * Stop statement (v0.3.2) - early exit, no error
164
- * Compiles to FlowNode { kind: "halt", reason }
165
- */
166
- export interface StopStmtNode extends ASTNode {
167
- kind: "stop";
168
- reason: string;
169
- }
170
- /**
171
- * Type expression node
172
- */
173
- export type TypeExprNode = SimpleTypeNode | UnionTypeNode | ArrayTypeNode | RecordTypeNode | LiteralTypeNode | ObjectTypeNode;
174
- export interface SimpleTypeNode extends ASTNode {
175
- kind: "simpleType";
176
- name: string;
177
- }
178
- export interface UnionTypeNode extends ASTNode {
179
- kind: "unionType";
180
- types: TypeExprNode[];
181
- }
182
- export interface ArrayTypeNode extends ASTNode {
183
- kind: "arrayType";
184
- elementType: TypeExprNode;
185
- }
186
- export interface RecordTypeNode extends ASTNode {
187
- kind: "recordType";
188
- keyType: TypeExprNode;
189
- valueType: TypeExprNode;
190
- }
191
- export interface LiteralTypeNode extends ASTNode {
192
- kind: "literalType";
193
- value: string | number | boolean | null;
194
- }
195
- /**
196
- * Object type node (v0.3.3)
197
- * Represents inline object types: { field: Type, ... }
198
- * Note: In state fields, this triggers W012 warning (use named type instead)
199
- */
200
- export interface ObjectTypeNode extends ASTNode {
201
- kind: "objectType";
202
- fields: TypeFieldNode[];
203
- }
204
- /**
205
- * Type field within an object type
206
- */
207
- export interface TypeFieldNode extends ASTNode {
208
- kind: "typeField";
209
- name: string;
210
- typeExpr: TypeExprNode;
211
- optional: boolean;
212
- }
213
- /**
214
- * All expression types
215
- */
216
- export type ExprNode = LiteralExprNode | IdentifierExprNode | SystemIdentExprNode | IterationVarExprNode | PropertyAccessExprNode | IndexAccessExprNode | FunctionCallExprNode | UnaryExprNode | BinaryExprNode | TernaryExprNode | ObjectLiteralExprNode | ArrayLiteralExprNode;
217
- /**
218
- * Literal expression (number, string, boolean, null)
219
- */
220
- export interface LiteralExprNode extends ASTNode {
221
- kind: "literal";
222
- value: unknown;
223
- literalType: "number" | "string" | "boolean" | "null";
224
- }
225
- /**
226
- * Identifier expression
227
- */
228
- export interface IdentifierExprNode extends ASTNode {
229
- kind: "identifier";
230
- name: string;
231
- }
232
- /**
233
- * System identifier expression ($system.*, $meta.*, $input.*)
234
- */
235
- export interface SystemIdentExprNode extends ASTNode {
236
- kind: "systemIdent";
237
- path: string[];
238
- }
239
- /**
240
- * Iteration variable expression ($item only)
241
- * v0.3.2: $acc removed - reduce pattern deprecated
242
- */
243
- export interface IterationVarExprNode extends ASTNode {
244
- kind: "iterationVar";
245
- name: "item";
246
- }
247
- /**
248
- * Property access expression (a.b)
249
- */
250
- export interface PropertyAccessExprNode extends ASTNode {
251
- kind: "propertyAccess";
252
- object: ExprNode;
253
- property: string;
254
- }
255
- /**
256
- * Index access expression (a[b])
257
- */
258
- export interface IndexAccessExprNode extends ASTNode {
259
- kind: "indexAccess";
260
- object: ExprNode;
261
- index: ExprNode;
262
- }
263
- /**
264
- * Function call expression
265
- */
266
- export interface FunctionCallExprNode extends ASTNode {
267
- kind: "functionCall";
268
- name: string;
269
- args: ExprNode[];
270
- }
271
- /**
272
- * Unary expression (!a, -a)
273
- */
274
- export interface UnaryExprNode extends ASTNode {
275
- kind: "unary";
276
- operator: "!" | "-";
277
- operand: ExprNode;
278
- }
279
- /**
280
- * Binary operators
281
- */
282
- export type BinaryOperator = "+" | "-" | "*" | "/" | "%" | "==" | "!=" | "<" | "<=" | ">" | ">=" | "&&" | "||" | "??";
283
- /**
284
- * Binary expression (a + b, a && b, etc.)
285
- */
286
- export interface BinaryExprNode extends ASTNode {
287
- kind: "binary";
288
- operator: BinaryOperator;
289
- left: ExprNode;
290
- right: ExprNode;
291
- }
292
- /**
293
- * Ternary expression (a ? b : c)
294
- */
295
- export interface TernaryExprNode extends ASTNode {
296
- kind: "ternary";
297
- condition: ExprNode;
298
- consequent: ExprNode;
299
- alternate: ExprNode;
300
- }
301
- /**
302
- * Object literal expression ({ a: 1, b: 2 })
303
- */
304
- export interface ObjectLiteralExprNode extends ASTNode {
305
- kind: "objectLiteral";
306
- properties: ObjectPropertyNode[];
307
- }
308
- export interface ObjectPropertyNode extends ASTNode {
309
- kind: "objectProperty";
310
- key: string;
311
- value: ExprNode;
312
- }
313
- /**
314
- * Array literal expression ([1, 2, 3])
315
- */
316
- export interface ArrayLiteralExprNode extends ASTNode {
317
- kind: "arrayLiteral";
318
- elements: ExprNode[];
319
- }
320
- /**
321
- * Path node for patch targets and effect destinations
322
- */
323
- export interface PathNode extends ASTNode {
324
- kind: "path";
325
- segments: PathSegmentNode[];
326
- }
327
- export type PathSegmentNode = PropertySegmentNode | IndexSegmentNode;
328
- export interface PropertySegmentNode extends ASTNode {
329
- kind: "propertySegment";
330
- name: string;
331
- }
332
- export interface IndexSegmentNode extends ASTNode {
333
- kind: "indexSegment";
334
- index: ExprNode;
335
- }
336
- /**
337
- * Check if a node is an expression
338
- */
339
- export declare function isExprNode(node: ASTNode): node is ExprNode;
340
- /**
341
- * Check if a node is a statement
342
- */
343
- export declare function isStmtNode(node: ASTNode): node is InnerStmtNode;
344
- //# sourceMappingURL=ast.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAIlE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAID;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;CACxB;AAID;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,CAAC,EAAE,QAAQ,CAAC;CACxB;AAID;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,CAAC;CACtB;AAID;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;CACxB;AAID;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,YAAY,GAAG,kBAAkB,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,CAAC;IACpB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,cAAc,GACd,aAAa,GACb,aAAa,GACb,cAAc,GACd,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,YAAY,CAAC;CAC3B;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,eAAe,GACf,kBAAkB,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,GACnB,oBAAoB,GACpB,aAAa,GACb,cAAc,GACd,eAAe,GACf,qBAAqB,GACrB,oBAAoB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,OAAO;IACrD,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAC;IACpB,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC3B,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GACrC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,QAAQ,CAAC;IACpB,UAAU,EAAE,QAAQ,CAAC;IACrB,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,OAAO;IACpD,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAID;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,OAAO;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAErE,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,QAAQ,CAO1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAG/D"}
@@ -1,24 +0,0 @@
1
- /**
2
- * AST Node Types for MEL Parser
3
- * Based on MEL SPEC v0.3.3 Section 4
4
- */
5
- // ============ Helpers ============
6
- /**
7
- * Check if a node is an expression
8
- */
9
- export function isExprNode(node) {
10
- const exprKinds = [
11
- "literal", "identifier", "systemIdent", "iterationVar",
12
- "propertyAccess", "indexAccess", "functionCall",
13
- "unary", "binary", "ternary", "objectLiteral", "arrayLiteral"
14
- ];
15
- return exprKinds.includes(node.kind);
16
- }
17
- /**
18
- * Check if a node is a statement
19
- */
20
- export function isStmtNode(node) {
21
- const stmtKinds = ["when", "once", "onceIntent", "patch", "effect", "fail", "stop"];
22
- return stmtKinds.includes(node.kind);
23
- }
24
- //# sourceMappingURL=ast.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4aH,oCAAoC;AAEpC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,MAAM,SAAS,GAAG;QAChB,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc;QACtD,gBAAgB,EAAE,aAAa,EAAE,cAAc;QAC/C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc;KAC9D,CAAC;IACF,OAAO,SAAS,CAAC,QAAQ,CAAE,IAAiB,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,OAAO,SAAS,CAAC,QAAQ,CAAE,IAAsB,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Parser Module - Parses MEL tokens into AST
3
- */
4
- export * from "./ast.js";
5
- export * from "./precedence.js";
6
- export * from "./parser.js";
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Parser Module - Parses MEL tokens into AST
3
- */
4
- export * from "./ast.js";
5
- export * from "./precedence.js";
6
- export * from "./parser.js";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
@@ -1,92 +0,0 @@
1
- /**
2
- * MEL Parser
3
- * Recursive descent parser with Pratt parsing for expressions
4
- * Based on MEL SPEC v0.3.3 Section 4
5
- */
6
- import type { Diagnostic } from "../diagnostics/types.js";
7
- import type { Token } from "../lexer/tokens.js";
8
- import { type ProgramNode } from "./ast.js";
9
- /**
10
- * Result of parsing
11
- */
12
- export interface ParseResult {
13
- program: ProgramNode | null;
14
- diagnostics: Diagnostic[];
15
- }
16
- /**
17
- * Parser for MEL source code
18
- */
19
- export declare class Parser {
20
- private tokens;
21
- private current;
22
- private diagnostics;
23
- constructor(tokens: Token[]);
24
- /**
25
- * Parse tokens into an AST
26
- */
27
- parse(): ParseResult;
28
- private parseProgram;
29
- private parseImport;
30
- private parseDomain;
31
- /**
32
- * v0.3.3: Parse type declaration
33
- * Syntax: type Name = TypeExpr
34
- */
35
- private parseTypeDecl;
36
- private parseDomainMember;
37
- private parseState;
38
- private parseStateField;
39
- private parseComputed;
40
- private parseAction;
41
- private parseParam;
42
- private parseGuardedStmt;
43
- private parseWhenStmt;
44
- private parseOnceStmt;
45
- private parseOnceIntentStmt;
46
- private parseInnerStmt;
47
- private parsePatchStmt;
48
- private parseEffectStmt;
49
- private parseEffectArg;
50
- /**
51
- * v0.3.2: Parse fail statement
52
- * FailStmt ::= 'fail' StringLiteral ('with' Expr)?
53
- */
54
- private parseFailStmt;
55
- /**
56
- * v0.3.2: Parse stop statement
57
- * StopStmt ::= 'stop' StringLiteral
58
- */
59
- private parseStopStmt;
60
- private parseTypeExpr;
61
- private parseBaseType;
62
- /**
63
- * v0.3.3: Parse object type
64
- * Syntax: { field: Type, field?: Type, ... }
65
- */
66
- private parseObjectType;
67
- private parseExpression;
68
- private parseTernary;
69
- private parsePrimary;
70
- private parseFunctionCall;
71
- private parsePostfix;
72
- private parseObjectLiteral;
73
- private parseArrayLiteral;
74
- private parsePath;
75
- private isUnaryContext;
76
- private peek;
77
- private peekNext;
78
- private previous;
79
- private isAtEnd;
80
- private advance;
81
- private check;
82
- private isOnceIntentContext;
83
- private match;
84
- private consume;
85
- private error;
86
- private errorAtCurrent;
87
- }
88
- /**
89
- * Parse tokens into an AST
90
- */
91
- export declare function parse(tokens: Token[]): ParseResult;
92
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAa,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,KAAK,WAAW,EA0BjB,MAAM,UAAU,CAAC;AAQlB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,WAAW,CAAoB;gBAE3B,MAAM,EAAE,KAAK,EAAE;IAI3B;;OAEG;IACH,KAAK,IAAI,WAAW;IAYpB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,WAAW;IAiCnB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;IAyCnB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,cAAc;IAmBtB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,aAAa;IA+ErB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,YAAY;IAuHpB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,SAAS;IA4CjB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,cAAc;CASvB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAGlD"}