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.
- package/.mocharc.json +3 -3
- package/CHANGELOG.md +41 -17
- package/dist/globals/expressions.d.ts +27 -25
- package/dist/globals/expressions.d.ts.map +1 -1
- package/dist/globals/expressions.js +47 -10
- package/dist/globals/generics.d.ts +8 -2
- package/dist/globals/generics.d.ts.map +1 -1
- package/dist/globals/generics.js +15 -1
- package/dist/globals/operators.d.ts +13 -69
- package/dist/globals/operators.d.ts.map +1 -1
- package/dist/globals/operators.js +12 -12
- package/dist/globals/patterns.d.ts +24 -25
- package/dist/globals/patterns.d.ts.map +1 -1
- package/dist/globals/patterns.js +66 -12
- package/dist/globals/primitives.d.ts +2 -5
- package/dist/globals/primitives.d.ts.map +1 -1
- package/dist/globals/primitives.js +7 -7
- package/dist/globals/statements.d.ts +28 -194
- package/dist/globals/statements.d.ts.map +1 -1
- package/dist/globals/statements.js +32 -52
- package/dist/globals/testing.d.ts +7 -31
- package/dist/globals/testing.d.ts.map +1 -1
- package/dist/globals/testing.js +6 -6
- package/dist/globals/types.d.ts +13 -35
- package/dist/globals/types.d.ts.map +1 -1
- package/dist/globals/types.js +12 -12
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/paradigms/functional.d.ts +5 -8
- package/dist/paradigms/functional.d.ts.map +1 -1
- package/dist/paradigms/functional.js +4 -4
- package/dist/paradigms/imperative.d.ts +8 -61
- package/dist/paradigms/imperative.d.ts.map +1 -1
- package/dist/paradigms/imperative.js +7 -7
- package/dist/paradigms/logic.d.ts +11 -67
- package/dist/paradigms/logic.d.ts.map +1 -1
- package/dist/paradigms/logic.js +10 -10
- package/dist/paradigms/object.d.ts +19 -105
- package/dist/paradigms/object.d.ts.map +1 -1
- package/dist/paradigms/object.js +24 -15
- package/dist/paradigms/typeclasses.d.ts +3 -51
- package/dist/paradigms/typeclasses.d.ts.map +1 -1
- package/dist/paradigms/typeclasses.js +2 -2
- package/dist/visitor/base.d.ts +4 -2
- package/dist/visitor/base.d.ts.map +1 -1
- package/dist/visitor/expressions.d.ts +34 -31
- package/dist/visitor/expressions.d.ts.map +1 -1
- package/dist/visitor/expressions.js +11 -2
- package/dist/visitor/index.d.ts +160 -164
- package/dist/visitor/index.d.ts.map +1 -1
- package/dist/visitor/operations.d.ts +25 -26
- package/dist/visitor/operations.d.ts.map +1 -1
- package/dist/visitor/operations.js +3 -2
- package/dist/visitor/patterns.d.ts +18 -19
- package/dist/visitor/patterns.d.ts.map +1 -1
- package/dist/visitor/patterns.js +4 -2
- package/dist/visitor/primitives.d.ts +13 -14
- package/dist/visitor/primitives.d.ts.map +1 -1
- package/dist/visitor/primitives.js +3 -2
- package/dist/visitor/statements.d.ts +49 -50
- package/dist/visitor/statements.d.ts.map +1 -1
- package/dist/visitor/statements.js +9 -6
- package/dist/visitor/testing.d.ts +12 -13
- package/dist/visitor/testing.d.ts.map +1 -1
- package/dist/visitor/testing.js +4 -2
- package/dist/visitor/typeclasses.d.ts +8 -9
- package/dist/visitor/typeclasses.d.ts.map +1 -1
- package/dist/visitor/typeclasses.js +4 -2
- package/dist/visitor/types.d.ts +17 -18
- package/dist/visitor/types.d.ts.map +1 -1
- package/dist/visitor/types.js +3 -2
- package/package.json +2 -11
- package/src/globals/expressions.ts +382 -338
- package/src/globals/generics.ts +86 -65
- package/src/globals/operators.ts +517 -517
- package/src/globals/patterns.ts +406 -347
- package/src/globals/primitives.ts +169 -169
- package/src/globals/statements.ts +746 -768
- package/src/globals/testing.ts +131 -131
- package/src/globals/types.ts +372 -375
- package/src/index.ts +13 -14
- package/src/paradigms/functional.ts +129 -128
- package/src/paradigms/imperative.ts +227 -227
- package/src/paradigms/logic.ts +307 -308
- package/src/paradigms/object.ts +362 -356
- package/src/paradigms/typeclasses.ts +96 -95
- package/src/visitor/base.ts +19 -17
- package/src/visitor/expressions.ts +165 -153
- package/src/visitor/index.ts +59 -52
- package/src/visitor/operations.ts +86 -82
- package/src/visitor/patterns.ts +77 -76
- package/src/visitor/primitives.ts +40 -36
- package/src/visitor/statements.ts +264 -261
- package/src/visitor/testing.ts +50 -49
- package/src/visitor/typeclasses.ts +24 -23
- package/src/visitor/types.ts +76 -75
- package/tests/ast.spec.ts +16 -16
- package/tsconfig.json +23 -25
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/globals/runtime.d.ts +0 -64
- package/dist/globals/runtime.d.ts.map +0 -1
- package/dist/globals/runtime.js +0 -32
- package/dist/types.d.ts +0 -4
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -1
- 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
|
|
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:
|
|
137
|
+
body: Body;
|
|
212
138
|
/** @hidden */
|
|
213
139
|
returnExpr?: Return;
|
|
214
|
-
constructor(patterns: Pattern[], body:
|
|
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():
|
|
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():
|
|
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():
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
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
|
|
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
|
|
55
|
+
return this.dispatchVisit(visitor, visitor.visitReturn);
|
|
56
56
|
}
|
|
57
57
|
toJSON() {
|
|
58
58
|
return {
|
|
59
59
|
type: "Return",
|
|
60
|
-
body: this.body
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
182
|
-
|
|
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.
|
|
186
|
+
return this.dispatchVisit(visitor, visitor.visitNativeBody);
|
|
205
187
|
}
|
|
206
188
|
toJSON() {
|
|
207
189
|
return {
|
|
208
|
-
type: "
|
|
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
|
|
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:
|
|
246
|
-
? this.body.toJSON()
|
|
247
|
-
: this.body.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
491
|
+
return this.dispatchVisit(visitor, visitor.visitBreak);
|
|
512
492
|
}
|
|
513
493
|
toJSON() {
|
|
514
494
|
return {
|
|
515
495
|
type: "Break",
|
|
516
|
-
body: this.body
|
|
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
|
|
512
|
+
return this.dispatchVisit(visitor, visitor.visitContinue);
|
|
533
513
|
}
|
|
534
514
|
toJSON() {
|
|
535
515
|
return {
|
|
536
516
|
type: "Continue",
|
|
537
|
-
body: this.body
|
|
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
|
|
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
|
|
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
|
|
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
|
|
590
|
+
return this.dispatchVisit(visitor, visitor.visitSequence);
|
|
611
591
|
}
|
|
612
592
|
toJSON() {
|
|
613
593
|
return {
|