yukigo-ast 0.2.1 → 0.3.2

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 (107) hide show
  1. package/.mocharc.json +3 -3
  2. package/CHANGELOG.md +41 -17
  3. package/dist/globals/expressions.d.ts +27 -25
  4. package/dist/globals/expressions.d.ts.map +1 -1
  5. package/dist/globals/expressions.js +47 -10
  6. package/dist/globals/generics.d.ts +8 -2
  7. package/dist/globals/generics.d.ts.map +1 -1
  8. package/dist/globals/generics.js +15 -1
  9. package/dist/globals/operators.d.ts +13 -69
  10. package/dist/globals/operators.d.ts.map +1 -1
  11. package/dist/globals/operators.js +12 -12
  12. package/dist/globals/patterns.d.ts +24 -25
  13. package/dist/globals/patterns.d.ts.map +1 -1
  14. package/dist/globals/patterns.js +66 -12
  15. package/dist/globals/primitives.d.ts +2 -5
  16. package/dist/globals/primitives.d.ts.map +1 -1
  17. package/dist/globals/primitives.js +7 -7
  18. package/dist/globals/statements.d.ts +28 -194
  19. package/dist/globals/statements.d.ts.map +1 -1
  20. package/dist/globals/statements.js +32 -52
  21. package/dist/globals/testing.d.ts +7 -31
  22. package/dist/globals/testing.d.ts.map +1 -1
  23. package/dist/globals/testing.js +6 -6
  24. package/dist/globals/types.d.ts +13 -35
  25. package/dist/globals/types.d.ts.map +1 -1
  26. package/dist/globals/types.js +12 -12
  27. package/dist/index.d.ts +0 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +0 -1
  30. package/dist/paradigms/functional.d.ts +5 -8
  31. package/dist/paradigms/functional.d.ts.map +1 -1
  32. package/dist/paradigms/functional.js +4 -4
  33. package/dist/paradigms/imperative.d.ts +8 -61
  34. package/dist/paradigms/imperative.d.ts.map +1 -1
  35. package/dist/paradigms/imperative.js +7 -7
  36. package/dist/paradigms/logic.d.ts +11 -67
  37. package/dist/paradigms/logic.d.ts.map +1 -1
  38. package/dist/paradigms/logic.js +10 -10
  39. package/dist/paradigms/object.d.ts +19 -105
  40. package/dist/paradigms/object.d.ts.map +1 -1
  41. package/dist/paradigms/object.js +24 -15
  42. package/dist/paradigms/typeclasses.d.ts +3 -51
  43. package/dist/paradigms/typeclasses.d.ts.map +1 -1
  44. package/dist/paradigms/typeclasses.js +2 -2
  45. package/dist/visitor/base.d.ts +4 -2
  46. package/dist/visitor/base.d.ts.map +1 -1
  47. package/dist/visitor/expressions.d.ts +34 -31
  48. package/dist/visitor/expressions.d.ts.map +1 -1
  49. package/dist/visitor/expressions.js +11 -2
  50. package/dist/visitor/index.d.ts +160 -164
  51. package/dist/visitor/index.d.ts.map +1 -1
  52. package/dist/visitor/operations.d.ts +25 -26
  53. package/dist/visitor/operations.d.ts.map +1 -1
  54. package/dist/visitor/operations.js +3 -2
  55. package/dist/visitor/patterns.d.ts +18 -19
  56. package/dist/visitor/patterns.d.ts.map +1 -1
  57. package/dist/visitor/patterns.js +4 -2
  58. package/dist/visitor/primitives.d.ts +13 -14
  59. package/dist/visitor/primitives.d.ts.map +1 -1
  60. package/dist/visitor/primitives.js +3 -2
  61. package/dist/visitor/statements.d.ts +49 -50
  62. package/dist/visitor/statements.d.ts.map +1 -1
  63. package/dist/visitor/statements.js +9 -6
  64. package/dist/visitor/testing.d.ts +12 -13
  65. package/dist/visitor/testing.d.ts.map +1 -1
  66. package/dist/visitor/testing.js +4 -2
  67. package/dist/visitor/typeclasses.d.ts +8 -9
  68. package/dist/visitor/typeclasses.d.ts.map +1 -1
  69. package/dist/visitor/typeclasses.js +4 -2
  70. package/dist/visitor/types.d.ts +17 -18
  71. package/dist/visitor/types.d.ts.map +1 -1
  72. package/dist/visitor/types.js +3 -2
  73. package/package.json +2 -11
  74. package/src/globals/expressions.ts +382 -338
  75. package/src/globals/generics.ts +86 -65
  76. package/src/globals/operators.ts +517 -517
  77. package/src/globals/patterns.ts +406 -347
  78. package/src/globals/primitives.ts +169 -169
  79. package/src/globals/statements.ts +746 -768
  80. package/src/globals/testing.ts +131 -131
  81. package/src/globals/types.ts +372 -375
  82. package/src/index.ts +13 -14
  83. package/src/paradigms/functional.ts +129 -128
  84. package/src/paradigms/imperative.ts +227 -227
  85. package/src/paradigms/logic.ts +307 -308
  86. package/src/paradigms/object.ts +362 -356
  87. package/src/paradigms/typeclasses.ts +96 -95
  88. package/src/visitor/base.ts +19 -17
  89. package/src/visitor/expressions.ts +165 -153
  90. package/src/visitor/index.ts +59 -52
  91. package/src/visitor/operations.ts +86 -82
  92. package/src/visitor/patterns.ts +77 -76
  93. package/src/visitor/primitives.ts +40 -36
  94. package/src/visitor/statements.ts +264 -261
  95. package/src/visitor/testing.ts +50 -49
  96. package/src/visitor/typeclasses.ts +24 -23
  97. package/src/visitor/types.ts +76 -75
  98. package/tests/ast.spec.ts +16 -16
  99. package/tsconfig.json +23 -25
  100. package/tsconfig.tsbuildinfo +1 -1
  101. package/dist/globals/runtime.d.ts +0 -64
  102. package/dist/globals/runtime.d.ts.map +0 -1
  103. package/dist/globals/runtime.js +0 -32
  104. package/dist/types.d.ts +0 -4
  105. package/dist/types.d.ts.map +0 -1
  106. package/dist/types.js +0 -1
  107. package/src/globals/runtime.ts +0 -132
@@ -1,4 +1,4 @@
1
- import { ASTNode, SourceLocation } from "./generics.js";
1
+ import { ASTNode, SerializeNode, SourceLocation } from "./generics.js";
2
2
  import { Visitor } from "../visitor/index.js";
3
3
  import { Expression } from "./expressions.js";
4
4
  import { SymbolPrimitive } from "./primitives.js";
@@ -25,12 +25,7 @@ export declare class If extends ASTNode {
25
25
  condition: Expression;
26
26
  constructor(condition: Expression, then: Expression, elseExpr: Expression, loc?: SourceLocation);
27
27
  accept<R>(visitor: Visitor<R>): R;
28
- toJSON(): {
29
- type: string;
30
- condition: any;
31
- then: any;
32
- else: any;
33
- };
28
+ toJSON(): SerializeNode;
34
29
  }
35
30
  /**
36
31
  * Generic return statement.
@@ -49,10 +44,7 @@ export declare class Return extends ASTNode {
49
44
  body?: Expression;
50
45
  constructor(body?: Expression, loc?: SourceLocation);
51
46
  accept<R>(visitor: Visitor<R>): R;
52
- toJSON(): {
53
- type: string;
54
- body: any;
55
- };
47
+ toJSON(): SerializeNode;
56
48
  }
57
49
  /**
58
50
  * Generic field in a Record statement.
@@ -68,14 +60,7 @@ export declare class Field extends ASTNode {
68
60
  name: SymbolPrimitive | undefined;
69
61
  constructor(name: SymbolPrimitive | undefined, value: Type, loc?: SourceLocation);
70
62
  accept<R>(visitor: Visitor<R>): R;
71
- toJSON(): {
72
- type: string;
73
- name: {
74
- type: import("./primitives.js").YukigoPrimitive;
75
- value: string;
76
- };
77
- value: any;
78
- };
63
+ toJSON(): SerializeNode;
79
64
  }
80
65
  /**
81
66
  * Generic constructor node.
@@ -91,21 +76,7 @@ export declare class Constructor extends ASTNode {
91
76
  name: SymbolPrimitive;
92
77
  constructor(name: SymbolPrimitive, fields: Field[], loc?: SourceLocation);
93
78
  accept<R>(visitor: Visitor<R>): R;
94
- toJSON(): {
95
- type: string;
96
- name: {
97
- type: import("./primitives.js").YukigoPrimitive;
98
- value: string;
99
- };
100
- fields: {
101
- type: string;
102
- name: {
103
- type: import("./primitives.js").YukigoPrimitive;
104
- value: string;
105
- };
106
- value: any;
107
- }[];
108
- };
79
+ toJSON(): SerializeNode;
109
80
  }
110
81
  /**
111
82
  * Generic Record statement node.
@@ -123,32 +94,7 @@ export declare class Record extends ASTNode {
123
94
  name: SymbolPrimitive;
124
95
  constructor(name: SymbolPrimitive, contents: Constructor[], deriving?: SymbolPrimitive[], loc?: SourceLocation);
125
96
  accept<R>(visitor: Visitor<R>): R;
126
- toJSON(): {
127
- type: string;
128
- name: {
129
- type: import("./primitives.js").YukigoPrimitive;
130
- value: string;
131
- };
132
- contents: {
133
- type: string;
134
- name: {
135
- type: import("./primitives.js").YukigoPrimitive;
136
- value: string;
137
- };
138
- fields: {
139
- type: string;
140
- name: {
141
- type: import("./primitives.js").YukigoPrimitive;
142
- value: string;
143
- };
144
- value: any;
145
- }[];
146
- }[];
147
- deriving: {
148
- type: import("./primitives.js").YukigoPrimitive;
149
- value: string;
150
- }[];
151
- };
97
+ toJSON(): SerializeNode;
152
98
  }
153
99
  /**
154
100
  * Represents the body of an Equation that does not have guards.
@@ -167,34 +113,14 @@ export declare class UnguardedBody extends ASTNode {
167
113
  sequence: Sequence;
168
114
  constructor(sequence: Sequence, loc?: SourceLocation);
169
115
  accept<R>(visitor: Visitor<R>): R;
170
- toJSON(): {
171
- type: string;
172
- sequence: any;
173
- };
116
+ toJSON(): SerializeNode;
174
117
  }
175
- export declare function isUnguardedBody(body: UnguardedBody | GuardedBody[]): body is UnguardedBody;
176
- /**
177
- * Represents the body of an Equation that does have guards.
178
- * For example, Haskell's guards
179
- * @example
180
- * f x
181
- * | x > 2 = x * 2
182
- * | otherwise = x / 2
183
- * @category Declarations
184
- */
185
- export declare class GuardedBody extends ASTNode {
186
- /** @hidden */
187
- body: Expression;
188
- /** @hidden */
189
- condition: Expression;
190
- constructor(condition: Expression, body: Expression, loc?: SourceLocation);
118
+ export declare class NativeBody extends ASTNode {
119
+ constructor(loc?: SourceLocation);
191
120
  accept<R>(visitor: Visitor<R>): R;
192
- toJSON(): {
193
- type: string;
194
- condition: any;
195
- body: any;
196
- };
121
+ toJSON(): SerializeNode;
197
122
  }
123
+ export type Body = UnguardedBody | NativeBody;
198
124
  /**
199
125
  * Represents one Equation with its arguments and body. Allows for overloading and pattern matching.
200
126
  * You may define the return statement to access it more easily.
@@ -208,29 +134,14 @@ export declare class Equation extends ASTNode {
208
134
  /** @hidden */
209
135
  patterns: Pattern[];
210
136
  /** @hidden */
211
- body: UnguardedBody | GuardedBody[];
137
+ body: Body;
212
138
  /** @hidden */
213
139
  returnExpr?: Return;
214
- constructor(patterns: Pattern[], body: UnguardedBody | GuardedBody[], returnExpr?: Return, loc?: SourceLocation);
140
+ constructor(patterns: Pattern[], body: Body, returnExpr?: Return, loc?: SourceLocation);
215
141
  /** @hidden */
216
142
  accept<R>(visitor: Visitor<R>): R;
217
143
  /** @hidden */
218
- toJSON(): {
219
- type: string;
220
- patterns: any[];
221
- body: {
222
- type: string;
223
- sequence: any;
224
- } | {
225
- type: string;
226
- condition: any;
227
- body: any;
228
- }[];
229
- return: {
230
- type: string;
231
- body: any;
232
- };
233
- };
144
+ toJSON(): SerializeNode;
234
145
  }
235
146
  /**
236
147
  * Functional / Imperative programming function declaration.
@@ -251,29 +162,7 @@ export declare class Function extends ASTNode {
251
162
  identifier: SymbolPrimitive;
252
163
  constructor(identifier: SymbolPrimitive, equations: Equation[], loc?: SourceLocation);
253
164
  accept<R>(visitor: Visitor<R>): R;
254
- toJSON(): {
255
- type: string;
256
- identifier: {
257
- type: import("./primitives.js").YukigoPrimitive;
258
- value: string;
259
- };
260
- equations: {
261
- type: string;
262
- patterns: any[];
263
- body: {
264
- type: string;
265
- sequence: any;
266
- } | {
267
- type: string;
268
- condition: any;
269
- body: any;
270
- }[];
271
- return: {
272
- type: string;
273
- body: any;
274
- };
275
- }[];
276
- };
165
+ toJSON(): SerializeNode;
277
166
  }
278
167
  /**
279
168
  * Represents a case expression, selecting a branch based on pattern matching against a value.
@@ -291,11 +180,7 @@ export declare class Case extends ASTNode {
291
180
  condition: Expression;
292
181
  constructor(condition: Expression, body: Expression, loc?: SourceLocation);
293
182
  accept<R>(visitor: Visitor<R>): R;
294
- toJSON(): {
295
- type: string;
296
- condition: any;
297
- body: any;
298
- };
183
+ toJSON(): SerializeNode;
299
184
  }
300
185
  /**
301
186
  * Represents a switch statement, selecting execution paths based on value equality.
@@ -310,15 +195,7 @@ export declare class Switch extends ASTNode {
310
195
  value: Expression;
311
196
  constructor(value: Expression, cases: Case[], defaultExpr?: Expression, loc?: SourceLocation);
312
197
  accept<R>(visitor: Visitor<R>): R;
313
- toJSON(): {
314
- type: string;
315
- value: any;
316
- cases: {
317
- condition: any;
318
- body: any;
319
- }[];
320
- default: any;
321
- };
198
+ toJSON(): SerializeNode;
322
199
  }
323
200
  /**
324
201
  * Represents a catch block for handling exceptions thrown in a try block.
@@ -331,11 +208,7 @@ export declare class Catch extends ASTNode {
331
208
  patterns: Pattern[];
332
209
  constructor(patterns: Pattern[], body: Expression, loc?: SourceLocation);
333
210
  accept<R>(visitor: Visitor<R>): R;
334
- toJSON(): {
335
- type: string;
336
- patterns: any[];
337
- body: any;
338
- };
211
+ toJSON(): SerializeNode;
339
212
  }
340
213
  /**
341
214
  * Represents a try block, wrapping code that might throw exceptions.
@@ -353,15 +226,7 @@ export declare class Try extends ASTNode {
353
226
  body: Expression;
354
227
  constructor(body: Expression, catchExpr: Catch[], finallyExpr: Expression, loc?: SourceLocation);
355
228
  accept<R>(visitor: Visitor<R>): R;
356
- toJSON(): {
357
- type: string;
358
- body: any;
359
- catch: {
360
- condition: any[];
361
- body: any;
362
- }[];
363
- finally: any;
364
- };
229
+ toJSON(): SerializeNode;
365
230
  }
366
231
  /**
367
232
  * Represents an explicit raising or throwing of an exception or error.
@@ -372,10 +237,7 @@ export declare class Raise extends ASTNode {
372
237
  body: Expression;
373
238
  constructor(body: Expression, loc?: SourceLocation);
374
239
  accept<R>(visitor: Visitor<R>): R;
375
- toJSON(): {
376
- type: string;
377
- body: any;
378
- };
240
+ toJSON(): SerializeNode;
379
241
  }
380
242
  /**
381
243
  * Represents a command to output data to the standard output.
@@ -386,7 +248,7 @@ export declare class Print extends ASTNode {
386
248
  expression: Expression;
387
249
  constructor(expression: Expression, loc?: SourceLocation);
388
250
  accept<R>(visitor: Visitor<R>): R;
389
- toJSON(): any;
251
+ toJSON(): SerializeNode;
390
252
  }
391
253
  /**
392
254
  * Represents a command to read input from the user or standard input.
@@ -399,14 +261,7 @@ export declare class Input extends ASTNode {
399
261
  message: Expression;
400
262
  constructor(message: Expression, variable: SymbolPrimitive, loc?: SourceLocation);
401
263
  accept<R>(visitor: Visitor<R>): R;
402
- toJSON(): {
403
- type: string;
404
- message: any;
405
- variable: {
406
- type: import("./primitives.js").YukigoPrimitive;
407
- value: string;
408
- };
409
- };
264
+ toJSON(): SerializeNode;
410
265
  }
411
266
  /**
412
267
  * Represents a for-loop control structure for iterating over a sequence or range.
@@ -419,7 +274,7 @@ export declare class For extends ASTNode {
419
274
  body: Expression;
420
275
  constructor(body: Expression, statements: Statement[], loc?: SourceLocation);
421
276
  accept<R>(visitor: Visitor<R>): R;
422
- toJSON(): any;
277
+ toJSON(): SerializeNode;
423
278
  }
424
279
  /**
425
280
  * Represents a control flow statement to exit the current loop immediately.
@@ -430,10 +285,7 @@ export declare class Break extends ASTNode {
430
285
  body?: Expression;
431
286
  constructor(body?: Expression, loc?: SourceLocation);
432
287
  accept<R>(visitor: Visitor<R>): R;
433
- toJSON(): {
434
- type: string;
435
- body: any;
436
- };
288
+ toJSON(): SerializeNode;
437
289
  }
438
290
  /**
439
291
  * Represents a control flow statement to skip the rest of the current loop iteration.
@@ -444,10 +296,7 @@ export declare class Continue extends ASTNode {
444
296
  body?: Expression;
445
297
  constructor(body?: Expression, loc?: SourceLocation);
446
298
  accept<R>(visitor: Visitor<R>): R;
447
- toJSON(): {
448
- type: string;
449
- body: any;
450
- };
299
+ toJSON(): SerializeNode;
451
300
  }
452
301
  /**
453
302
  * Represents a variable usage or reference in an expression.
@@ -462,15 +311,7 @@ export declare class Variable extends ASTNode {
462
311
  identifier: SymbolPrimitive;
463
312
  constructor(identifier: SymbolPrimitive, expression: Expression, variableType?: Type, loc?: SourceLocation);
464
313
  accept<R>(visitor: Visitor<R>): R;
465
- toJSON(): {
466
- type: string;
467
- identifier: {
468
- type: import("./primitives.js").YukigoPrimitive;
469
- value: string;
470
- };
471
- expression: any;
472
- variableType: any;
473
- };
314
+ toJSON(): SerializeNode;
474
315
  }
475
316
  /**
476
317
  * Represents an assignment operation, binding a value to a variable.
@@ -486,14 +327,7 @@ export declare class Assignment extends ASTNode {
486
327
  identifier: SymbolPrimitive;
487
328
  constructor(identifier: SymbolPrimitive, expression: Expression, loc?: SourceLocation);
488
329
  accept<R>(visitor: Visitor<R>): R;
489
- toJSON(): {
490
- type: string;
491
- identifier: {
492
- type: import("./primitives.js").YukigoPrimitive;
493
- value: string;
494
- };
495
- expression: any;
496
- };
330
+ toJSON(): SerializeNode;
497
331
  }
498
332
  /**
499
333
  * Represents a sequence of statements executed in order.
@@ -504,7 +338,7 @@ export declare class Sequence extends ASTNode {
504
338
  statements: Statement[];
505
339
  constructor(statements: Statement[], loc?: SourceLocation);
506
340
  accept<R>(visitor: Visitor<R>): R;
507
- toJSON(): any;
341
+ toJSON(): SerializeNode;
508
342
  }
509
343
  export type Statement = EntryPoint | Function | Clause | Procedure | TypeAlias | TypeSignature | Class | Object | Method | Super | Attribute | Interface | Switch | Send | Try | Return | Print | Input | Raise | Structure | Break | Continue | Call | Enumeration | Variable | Assignment | Yield | Record | If | Repeat | ForLoop | While | LogicConstraint | Assert | Test | TestGroup;
510
344
  //# sourceMappingURL=statements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/globals/statements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/globals/statements.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export class If extends ASTNode {
21
21
  this.elseExpr = elseExpr;
22
22
  }
23
23
  accept(visitor) {
24
- return visitor.visitIf?.(this);
24
+ return this.dispatchVisit(visitor, visitor.visitIf);
25
25
  }
26
26
  toJSON() {
27
27
  return {
@@ -52,12 +52,12 @@ export class Return extends ASTNode {
52
52
  this.body = body;
53
53
  }
54
54
  accept(visitor) {
55
- return visitor.visitReturn?.(this);
55
+ return this.dispatchVisit(visitor, visitor.visitReturn);
56
56
  }
57
57
  toJSON() {
58
58
  return {
59
59
  type: "Return",
60
- body: this.body.toJSON(),
60
+ body: this.body?.toJSON(),
61
61
  };
62
62
  }
63
63
  }
@@ -79,7 +79,7 @@ export class Field extends ASTNode {
79
79
  this.value = value;
80
80
  }
81
81
  accept(visitor) {
82
- return visitor.visitField?.(this);
82
+ return this.dispatchVisit(visitor, visitor.visitField);
83
83
  }
84
84
  toJSON() {
85
85
  return {
@@ -107,7 +107,7 @@ export class Constructor extends ASTNode {
107
107
  this.fields = fields;
108
108
  }
109
109
  accept(visitor) {
110
- return visitor.visitConstructor?.(this);
110
+ return this.dispatchVisit(visitor, visitor.visitConstructor);
111
111
  }
112
112
  toJSON() {
113
113
  return {
@@ -138,7 +138,7 @@ export class Record extends ASTNode {
138
138
  this.deriving = deriving;
139
139
  }
140
140
  accept(visitor) {
141
- return visitor.visitRecord?.(this);
141
+ return this.dispatchVisit(visitor, visitor.visitRecord);
142
142
  }
143
143
  toJSON() {
144
144
  return {
@@ -169,7 +169,7 @@ export class UnguardedBody extends ASTNode {
169
169
  this.sequence = sequence;
170
170
  }
171
171
  accept(visitor) {
172
- return visitor.visitUnguardedBody?.(this);
172
+ return this.dispatchVisit(visitor, visitor.visitUnguardedBody);
173
173
  }
174
174
  toJSON() {
175
175
  return {
@@ -178,36 +178,16 @@ export class UnguardedBody extends ASTNode {
178
178
  };
179
179
  }
180
180
  }
181
- export function isUnguardedBody(body) {
182
- return !Array.isArray(body);
183
- }
184
- /**
185
- * Represents the body of an Equation that does have guards.
186
- * For example, Haskell's guards
187
- * @example
188
- * f x
189
- * | x > 2 = x * 2
190
- * | otherwise = x / 2
191
- * @category Declarations
192
- */
193
- export class GuardedBody extends ASTNode {
194
- /** @hidden */
195
- body;
196
- /** @hidden */
197
- condition;
198
- constructor(condition, body, loc) {
181
+ export class NativeBody extends ASTNode {
182
+ constructor(loc) {
199
183
  super(loc);
200
- this.condition = condition;
201
- this.body = body;
202
184
  }
203
185
  accept(visitor) {
204
- return visitor.visitGuardedBody?.(this);
186
+ return this.dispatchVisit(visitor, visitor.visitNativeBody);
205
187
  }
206
188
  toJSON() {
207
189
  return {
208
- type: "GuardedBody",
209
- condition: this.condition.toJSON(),
210
- body: this.body.toJSON(),
190
+ type: "NativeBody",
211
191
  };
212
192
  }
213
193
  }
@@ -235,16 +215,16 @@ export class Equation extends ASTNode {
235
215
  }
236
216
  /** @hidden */
237
217
  accept(visitor) {
238
- return visitor.visitEquation?.(this);
218
+ return this.dispatchVisit(visitor, visitor.visitEquation);
239
219
  }
240
220
  /** @hidden */
241
221
  toJSON() {
242
222
  return {
243
223
  type: "Equation",
244
224
  patterns: this.patterns.map((pattern) => pattern.toJSON()),
245
- body: isUnguardedBody(this.body)
246
- ? this.body.toJSON()
247
- : this.body.map((guard) => guard.toJSON()),
225
+ body: Array.isArray(this.body)
226
+ ? this.body.map((guard) => guard.toJSON())
227
+ : this.body.toJSON(),
248
228
  return: this.returnExpr?.toJSON(),
249
229
  };
250
230
  }
@@ -272,7 +252,7 @@ export class Function extends ASTNode {
272
252
  this.equations = equations;
273
253
  }
274
254
  accept(visitor) {
275
- return visitor.visitFunction?.(this);
255
+ return this.dispatchVisit(visitor, visitor.visitFunction);
276
256
  }
277
257
  toJSON() {
278
258
  return {
@@ -302,7 +282,7 @@ export class Case extends ASTNode {
302
282
  this.body = body;
303
283
  }
304
284
  accept(visitor) {
305
- return visitor.visitCase?.(this);
285
+ return this.dispatchVisit(visitor, visitor.visitCase);
306
286
  }
307
287
  toJSON() {
308
288
  return {
@@ -330,7 +310,7 @@ export class Switch extends ASTNode {
330
310
  this.defaultExpr = defaultExpr;
331
311
  }
332
312
  accept(visitor) {
333
- return visitor.visitSwitch?.(this);
313
+ return this.dispatchVisit(visitor, visitor.visitSwitch);
334
314
  }
335
315
  toJSON() {
336
316
  return {
@@ -359,7 +339,7 @@ export class Catch extends ASTNode {
359
339
  this.body = body;
360
340
  }
361
341
  accept(visitor) {
362
- return visitor.visitCatch?.(this);
342
+ return this.dispatchVisit(visitor, visitor.visitCatch);
363
343
  }
364
344
  toJSON() {
365
345
  return {
@@ -390,7 +370,7 @@ export class Try extends ASTNode {
390
370
  this.finallyExpr = finallyExpr;
391
371
  }
392
372
  accept(visitor) {
393
- return visitor.visitTry?.(this);
373
+ return this.dispatchVisit(visitor, visitor.visitTry);
394
374
  }
395
375
  toJSON() {
396
376
  return {
@@ -416,7 +396,7 @@ export class Raise extends ASTNode {
416
396
  this.body = body;
417
397
  }
418
398
  accept(visitor) {
419
- return visitor.visitRaise?.(this);
399
+ return this.dispatchVisit(visitor, visitor.visitRaise);
420
400
  }
421
401
  toJSON() {
422
402
  return {
@@ -437,7 +417,7 @@ export class Print extends ASTNode {
437
417
  this.expression = expression;
438
418
  }
439
419
  accept(visitor) {
440
- return visitor.visitPrint?.(this);
420
+ return this.dispatchVisit(visitor, visitor.visitPrint);
441
421
  }
442
422
  toJSON() {
443
423
  return {
@@ -461,7 +441,7 @@ export class Input extends ASTNode {
461
441
  this.variable = variable;
462
442
  }
463
443
  accept(visitor) {
464
- return visitor.visitInput?.(this);
444
+ return this.dispatchVisit(visitor, visitor.visitInput);
465
445
  }
466
446
  toJSON() {
467
447
  return {
@@ -486,7 +466,7 @@ export class For extends ASTNode {
486
466
  this.statements = statements;
487
467
  }
488
468
  accept(visitor) {
489
- return visitor.visitFor?.(this);
469
+ return this.dispatchVisit(visitor, visitor.visitFor);
490
470
  }
491
471
  toJSON() {
492
472
  return {
@@ -508,12 +488,12 @@ export class Break extends ASTNode {
508
488
  this.body = body;
509
489
  }
510
490
  accept(visitor) {
511
- return visitor.visitBreak?.(this);
491
+ return this.dispatchVisit(visitor, visitor.visitBreak);
512
492
  }
513
493
  toJSON() {
514
494
  return {
515
495
  type: "Break",
516
- body: this.body.toJSON(),
496
+ body: this.body?.toJSON(),
517
497
  };
518
498
  }
519
499
  }
@@ -529,12 +509,12 @@ export class Continue extends ASTNode {
529
509
  this.body = body;
530
510
  }
531
511
  accept(visitor) {
532
- return visitor.visitContinue?.(this);
512
+ return this.dispatchVisit(visitor, visitor.visitContinue);
533
513
  }
534
514
  toJSON() {
535
515
  return {
536
516
  type: "Continue",
537
- body: this.body.toJSON(),
517
+ body: this.body?.toJSON(),
538
518
  };
539
519
  }
540
520
  }
@@ -556,14 +536,14 @@ export class Variable extends ASTNode {
556
536
  this.variableType = variableType;
557
537
  }
558
538
  accept(visitor) {
559
- return visitor.visitVariable?.(this);
539
+ return this.dispatchVisit(visitor, visitor.visitVariable);
560
540
  }
561
541
  toJSON() {
562
542
  return {
563
543
  type: "Variable",
564
544
  identifier: this.identifier.toJSON(),
565
545
  expression: this.expression.toJSON(),
566
- variableType: this.variableType.toJSON(),
546
+ variableType: this.variableType?.toJSON(),
567
547
  };
568
548
  }
569
549
  }
@@ -585,7 +565,7 @@ export class Assignment extends ASTNode {
585
565
  this.expression = expression;
586
566
  }
587
567
  accept(visitor) {
588
- return visitor.visitAssignment?.(this);
568
+ return this.dispatchVisit(visitor, visitor.visitAssignment);
589
569
  }
590
570
  toJSON() {
591
571
  return {
@@ -607,7 +587,7 @@ export class Sequence extends ASTNode {
607
587
  this.statements = statements;
608
588
  }
609
589
  accept(visitor) {
610
- return visitor.visitSequence?.(this);
590
+ return this.dispatchVisit(visitor, visitor.visitSequence);
611
591
  }
612
592
  toJSON() {
613
593
  return {