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
|
@@ -14,7 +14,7 @@ export class EntryPoint extends ASTNode {
|
|
|
14
14
|
this.expression = expression;
|
|
15
15
|
}
|
|
16
16
|
accept(visitor) {
|
|
17
|
-
return visitor.visitEntryPoint
|
|
17
|
+
return this.dispatchVisit(visitor, visitor.visitEntryPoint);
|
|
18
18
|
}
|
|
19
19
|
toJSON() {
|
|
20
20
|
return {
|
|
@@ -39,7 +39,7 @@ export class Procedure extends ASTNode {
|
|
|
39
39
|
this.equations = equations;
|
|
40
40
|
}
|
|
41
41
|
accept(visitor) {
|
|
42
|
-
return visitor.visitProcedure
|
|
42
|
+
return this.dispatchVisit(visitor, visitor.visitProcedure);
|
|
43
43
|
}
|
|
44
44
|
toJSON() {
|
|
45
45
|
return {
|
|
@@ -65,7 +65,7 @@ export class Structure extends ASTNode {
|
|
|
65
65
|
this.loc = loc;
|
|
66
66
|
}
|
|
67
67
|
accept(visitor) {
|
|
68
|
-
return visitor.visitStructure
|
|
68
|
+
return this.dispatchVisit(visitor, visitor.visitStructure);
|
|
69
69
|
}
|
|
70
70
|
toJSON() {
|
|
71
71
|
return {
|
|
@@ -90,7 +90,7 @@ export class Enumeration extends ASTNode {
|
|
|
90
90
|
this.contents = contents;
|
|
91
91
|
}
|
|
92
92
|
accept(visitor) {
|
|
93
|
-
return visitor.visitEnumeration
|
|
93
|
+
return this.dispatchVisit(visitor, visitor.visitEnumeration);
|
|
94
94
|
}
|
|
95
95
|
toJSON() {
|
|
96
96
|
return {
|
|
@@ -118,7 +118,7 @@ export class While extends ASTNode {
|
|
|
118
118
|
this.body = body;
|
|
119
119
|
}
|
|
120
120
|
accept(visitor) {
|
|
121
|
-
return visitor.visitWhile
|
|
121
|
+
return this.dispatchVisit(visitor, visitor.visitWhile);
|
|
122
122
|
}
|
|
123
123
|
toJSON() {
|
|
124
124
|
return {
|
|
@@ -143,7 +143,7 @@ export class Repeat extends ASTNode {
|
|
|
143
143
|
this.body = body;
|
|
144
144
|
}
|
|
145
145
|
accept(visitor) {
|
|
146
|
-
return visitor.visitRepeat
|
|
146
|
+
return this.dispatchVisit(visitor, visitor.visitRepeat);
|
|
147
147
|
}
|
|
148
148
|
toJSON() {
|
|
149
149
|
return {
|
|
@@ -174,7 +174,7 @@ export class ForLoop extends ASTNode {
|
|
|
174
174
|
this.body = body;
|
|
175
175
|
}
|
|
176
176
|
accept(visitor) {
|
|
177
|
-
return visitor.visitForLoop
|
|
177
|
+
return this.dispatchVisit(visitor, visitor.visitForLoop);
|
|
178
178
|
}
|
|
179
179
|
toJSON() {
|
|
180
180
|
return {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Expression } from "../globals/expressions.js";
|
|
2
|
-
import { ASTNode, SourceLocation } from "../globals/generics.js";
|
|
2
|
+
import { ASTNode, SerializeNode, SourceLocation } from "../globals/generics.js";
|
|
3
3
|
import { Pattern } from "../globals/patterns.js";
|
|
4
4
|
import { Primitive, SymbolPrimitive } from "../globals/primitives.js";
|
|
5
5
|
import { Equation } from "../globals/statements.js";
|
|
@@ -19,29 +19,7 @@ export declare class Rule extends ASTNode {
|
|
|
19
19
|
identifier: SymbolPrimitive;
|
|
20
20
|
constructor(identifier: SymbolPrimitive, equations: Equation[], loc?: SourceLocation);
|
|
21
21
|
accept<R>(visitor: Visitor<R>): R;
|
|
22
|
-
toJSON():
|
|
23
|
-
type: string;
|
|
24
|
-
identifier: {
|
|
25
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
26
|
-
value: string;
|
|
27
|
-
};
|
|
28
|
-
equations: {
|
|
29
|
-
type: string;
|
|
30
|
-
patterns: any[];
|
|
31
|
-
body: {
|
|
32
|
-
type: string;
|
|
33
|
-
sequence: any;
|
|
34
|
-
} | {
|
|
35
|
-
type: string;
|
|
36
|
-
condition: any;
|
|
37
|
-
body: any;
|
|
38
|
-
}[];
|
|
39
|
-
return: {
|
|
40
|
-
type: string;
|
|
41
|
-
body: any;
|
|
42
|
-
};
|
|
43
|
-
}[];
|
|
44
|
-
};
|
|
22
|
+
toJSON(): SerializeNode;
|
|
45
23
|
}
|
|
46
24
|
/**
|
|
47
25
|
* Represents a call to a predicate or goal.
|
|
@@ -54,14 +32,7 @@ export declare class Call extends ASTNode {
|
|
|
54
32
|
callee: SymbolPrimitive;
|
|
55
33
|
constructor(callee: SymbolPrimitive, args: Expression[], loc?: SourceLocation);
|
|
56
34
|
accept<R>(visitor: Visitor<R>): R;
|
|
57
|
-
toJSON():
|
|
58
|
-
type: string;
|
|
59
|
-
callee: {
|
|
60
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
61
|
-
value: string;
|
|
62
|
-
};
|
|
63
|
-
patterns: any[];
|
|
64
|
-
};
|
|
35
|
+
toJSON(): SerializeNode;
|
|
65
36
|
}
|
|
66
37
|
/**
|
|
67
38
|
* Represents a fact, a rule with no body (always true).
|
|
@@ -77,14 +48,7 @@ export declare class Fact extends ASTNode {
|
|
|
77
48
|
identifier: SymbolPrimitive;
|
|
78
49
|
constructor(identifier: SymbolPrimitive, patterns: Pattern[], loc?: SourceLocation);
|
|
79
50
|
accept<R>(visitor: Visitor<R>): R;
|
|
80
|
-
toJSON():
|
|
81
|
-
type: string;
|
|
82
|
-
identifier: {
|
|
83
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
84
|
-
value: string;
|
|
85
|
-
};
|
|
86
|
-
patterns: any[];
|
|
87
|
-
};
|
|
51
|
+
toJSON(): SerializeNode;
|
|
88
52
|
}
|
|
89
53
|
/**
|
|
90
54
|
* Represents a query or goal to be proven.
|
|
@@ -98,10 +62,7 @@ export declare class Query extends ASTNode {
|
|
|
98
62
|
expressions: Expression[];
|
|
99
63
|
constructor(expressions: Expression[], loc?: SourceLocation);
|
|
100
64
|
accept<R>(visitor: Visitor<R>): R;
|
|
101
|
-
toJSON():
|
|
102
|
-
type: string;
|
|
103
|
-
expressions: any[];
|
|
104
|
-
};
|
|
65
|
+
toJSON(): SerializeNode;
|
|
105
66
|
}
|
|
106
67
|
/**
|
|
107
68
|
* Represents an existential quantification.
|
|
@@ -114,14 +75,7 @@ export declare class Exist extends ASTNode {
|
|
|
114
75
|
identifier: SymbolPrimitive;
|
|
115
76
|
constructor(identifier: SymbolPrimitive, patterns: Pattern[], loc?: SourceLocation);
|
|
116
77
|
accept<R>(visitor: Visitor<R>): R;
|
|
117
|
-
toJSON():
|
|
118
|
-
type: string;
|
|
119
|
-
identifier: {
|
|
120
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
121
|
-
value: string;
|
|
122
|
-
};
|
|
123
|
-
patterns: any[];
|
|
124
|
-
};
|
|
78
|
+
toJSON(): SerializeNode;
|
|
125
79
|
}
|
|
126
80
|
/**
|
|
127
81
|
* Represents logical negation or failure-as-negation.
|
|
@@ -132,7 +86,7 @@ export declare class Not extends ASTNode {
|
|
|
132
86
|
expression: Expression;
|
|
133
87
|
constructor(expression: Expression, loc?: SourceLocation);
|
|
134
88
|
accept<R>(visitor: Visitor<R>): R;
|
|
135
|
-
toJSON():
|
|
89
|
+
toJSON(): SerializeNode;
|
|
136
90
|
}
|
|
137
91
|
/**
|
|
138
92
|
* Represents a higher-order predicate finding all solutions (e.g., findall/3).
|
|
@@ -147,7 +101,7 @@ export declare class Findall extends ASTNode {
|
|
|
147
101
|
template: Pattern;
|
|
148
102
|
constructor(template: Pattern, goal: Expression, bag: Pattern, loc?: SourceLocation);
|
|
149
103
|
accept<R>(visitor: Visitor<R>): R;
|
|
150
|
-
toJSON():
|
|
104
|
+
toJSON(): SerializeNode;
|
|
151
105
|
}
|
|
152
106
|
/**
|
|
153
107
|
* Represents a universal quantification or forall predicate.
|
|
@@ -160,7 +114,7 @@ export declare class Forall extends ASTNode {
|
|
|
160
114
|
condition: Expression;
|
|
161
115
|
constructor(condition: Expression, action: Expression, loc?: SourceLocation);
|
|
162
116
|
accept<R>(visitor: Visitor<R>): R;
|
|
163
|
-
toJSON():
|
|
117
|
+
toJSON(): SerializeNode;
|
|
164
118
|
}
|
|
165
119
|
/**
|
|
166
120
|
* Represents a single goal within a logical rule or query.
|
|
@@ -173,14 +127,7 @@ export declare class Goal extends ASTNode {
|
|
|
173
127
|
identifier: SymbolPrimitive;
|
|
174
128
|
constructor(identifier: SymbolPrimitive, args: Pattern[], loc?: SourceLocation);
|
|
175
129
|
accept<R>(visitor: Visitor<R>): R;
|
|
176
|
-
toJSON():
|
|
177
|
-
type: string;
|
|
178
|
-
identifier: {
|
|
179
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
180
|
-
value: string;
|
|
181
|
-
};
|
|
182
|
-
arguments: any[];
|
|
183
|
-
};
|
|
130
|
+
toJSON(): SerializeNode;
|
|
184
131
|
}
|
|
185
132
|
/**
|
|
186
133
|
* Represents a logical constraint or guard that must evaluate to true.
|
|
@@ -196,9 +143,6 @@ export declare class LogicConstraint extends ASTNode {
|
|
|
196
143
|
expression: Expression;
|
|
197
144
|
constructor(expression: Expression, loc?: SourceLocation);
|
|
198
145
|
accept<R>(visitor: Visitor<R>): R;
|
|
199
|
-
toJSON():
|
|
200
|
-
type: string;
|
|
201
|
-
expression: any;
|
|
202
|
-
};
|
|
146
|
+
toJSON(): SerializeNode;
|
|
203
147
|
}
|
|
204
148
|
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../src/paradigms/logic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../src/paradigms/logic.ts"],"names":[],"mappings":"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"}
|
package/dist/paradigms/logic.js
CHANGED
|
@@ -17,7 +17,7 @@ export class Rule extends ASTNode {
|
|
|
17
17
|
this.equations = equations;
|
|
18
18
|
}
|
|
19
19
|
accept(visitor) {
|
|
20
|
-
return visitor.visitRule
|
|
20
|
+
return this.dispatchVisit(visitor, visitor.visitRule);
|
|
21
21
|
}
|
|
22
22
|
toJSON() {
|
|
23
23
|
return {
|
|
@@ -42,7 +42,7 @@ export class Call extends ASTNode {
|
|
|
42
42
|
this.args = args;
|
|
43
43
|
}
|
|
44
44
|
accept(visitor) {
|
|
45
|
-
return visitor.visitCall
|
|
45
|
+
return this.dispatchVisit(visitor, visitor.visitCall);
|
|
46
46
|
}
|
|
47
47
|
toJSON() {
|
|
48
48
|
return {
|
|
@@ -70,7 +70,7 @@ export class Fact extends ASTNode {
|
|
|
70
70
|
this.patterns = patterns;
|
|
71
71
|
}
|
|
72
72
|
accept(visitor) {
|
|
73
|
-
return visitor.visitFact
|
|
73
|
+
return this.dispatchVisit(visitor, visitor.visitFact);
|
|
74
74
|
}
|
|
75
75
|
toJSON() {
|
|
76
76
|
return {
|
|
@@ -95,7 +95,7 @@ export class Query extends ASTNode {
|
|
|
95
95
|
this.expressions = expressions;
|
|
96
96
|
}
|
|
97
97
|
accept(visitor) {
|
|
98
|
-
return visitor.visitQuery
|
|
98
|
+
return this.dispatchVisit(visitor, visitor.visitQuery);
|
|
99
99
|
}
|
|
100
100
|
toJSON() {
|
|
101
101
|
return {
|
|
@@ -119,7 +119,7 @@ export class Exist extends ASTNode {
|
|
|
119
119
|
this.patterns = patterns;
|
|
120
120
|
}
|
|
121
121
|
accept(visitor) {
|
|
122
|
-
return visitor.visitExist
|
|
122
|
+
return this.dispatchVisit(visitor, visitor.visitExist);
|
|
123
123
|
}
|
|
124
124
|
toJSON() {
|
|
125
125
|
return {
|
|
@@ -141,7 +141,7 @@ export class Not extends ASTNode {
|
|
|
141
141
|
this.expression = expression;
|
|
142
142
|
}
|
|
143
143
|
accept(visitor) {
|
|
144
|
-
return visitor.visitNot
|
|
144
|
+
return this.dispatchVisit(visitor, visitor.visitNot);
|
|
145
145
|
}
|
|
146
146
|
toJSON() {
|
|
147
147
|
return {
|
|
@@ -168,7 +168,7 @@ export class Findall extends ASTNode {
|
|
|
168
168
|
this.bag = bag;
|
|
169
169
|
}
|
|
170
170
|
accept(visitor) {
|
|
171
|
-
return visitor.visitFindall
|
|
171
|
+
return this.dispatchVisit(visitor, visitor.visitFindall);
|
|
172
172
|
}
|
|
173
173
|
toJSON() {
|
|
174
174
|
return {
|
|
@@ -194,7 +194,7 @@ export class Forall extends ASTNode {
|
|
|
194
194
|
this.action = action;
|
|
195
195
|
}
|
|
196
196
|
accept(visitor) {
|
|
197
|
-
return visitor.visitForall
|
|
197
|
+
return this.dispatchVisit(visitor, visitor.visitForall);
|
|
198
198
|
}
|
|
199
199
|
toJSON() {
|
|
200
200
|
return {
|
|
@@ -219,7 +219,7 @@ export class Goal extends ASTNode {
|
|
|
219
219
|
this.args = args;
|
|
220
220
|
}
|
|
221
221
|
accept(visitor) {
|
|
222
|
-
return visitor.visitGoal
|
|
222
|
+
return this.dispatchVisit(visitor, visitor.visitGoal);
|
|
223
223
|
}
|
|
224
224
|
toJSON() {
|
|
225
225
|
return {
|
|
@@ -246,7 +246,7 @@ export class LogicConstraint extends ASTNode {
|
|
|
246
246
|
this.expression = expression;
|
|
247
247
|
}
|
|
248
248
|
accept(visitor) {
|
|
249
|
-
return visitor.visitLogicConstraint
|
|
249
|
+
return this.dispatchVisit(visitor, visitor.visitLogicConstraint);
|
|
250
250
|
}
|
|
251
251
|
toJSON() {
|
|
252
252
|
return {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Expression } from "../globals/expressions.js";
|
|
2
|
-
import { ASTNode, SourceLocation } from "../globals/generics.js";
|
|
2
|
+
import { ASTNode, SerializeNode, SourceLocation } from "../globals/generics.js";
|
|
3
3
|
import { Operator } from "../globals/operators.js";
|
|
4
4
|
import { SymbolPrimitive } from "../globals/primitives.js";
|
|
5
5
|
import { Equation } from "../globals/statements.js";
|
|
@@ -18,31 +18,11 @@ export declare class Method extends ASTNode {
|
|
|
18
18
|
equations: Equation[];
|
|
19
19
|
/** @hidden */
|
|
20
20
|
identifier: SymbolPrimitive;
|
|
21
|
-
|
|
21
|
+
/** @hidden */
|
|
22
|
+
isAbstract: boolean;
|
|
23
|
+
constructor(identifier: SymbolPrimitive, equations: Equation[], loc?: SourceLocation, isAbstract?: boolean);
|
|
22
24
|
accept<R>(visitor: Visitor<R>): R;
|
|
23
|
-
toJSON():
|
|
24
|
-
type: string;
|
|
25
|
-
identifier: {
|
|
26
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
27
|
-
value: string;
|
|
28
|
-
};
|
|
29
|
-
equations: {
|
|
30
|
-
type: string;
|
|
31
|
-
patterns: any[];
|
|
32
|
-
body: {
|
|
33
|
-
type: string;
|
|
34
|
-
sequence: any;
|
|
35
|
-
} | {
|
|
36
|
-
type: string;
|
|
37
|
-
condition: any;
|
|
38
|
-
body: any;
|
|
39
|
-
}[];
|
|
40
|
-
return: {
|
|
41
|
-
type: string;
|
|
42
|
-
body: any;
|
|
43
|
-
};
|
|
44
|
-
}[];
|
|
45
|
-
};
|
|
25
|
+
toJSON(): SerializeNode;
|
|
46
26
|
}
|
|
47
27
|
/**
|
|
48
28
|
* Represents an attribute or instance variable of an object.
|
|
@@ -55,14 +35,7 @@ export declare class Attribute extends ASTNode {
|
|
|
55
35
|
identifier: SymbolPrimitive;
|
|
56
36
|
constructor(identifier: SymbolPrimitive, expression: Expression, loc?: SourceLocation);
|
|
57
37
|
accept<R>(visitor: Visitor<R>): R;
|
|
58
|
-
toJSON():
|
|
59
|
-
type: string;
|
|
60
|
-
identifier: {
|
|
61
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
62
|
-
value: string;
|
|
63
|
-
};
|
|
64
|
-
expression: any;
|
|
65
|
-
};
|
|
38
|
+
toJSON(): SerializeNode;
|
|
66
39
|
}
|
|
67
40
|
/**
|
|
68
41
|
* Represents an object definition or a singleton object.
|
|
@@ -76,16 +49,13 @@ export declare class Object extends ASTNode {
|
|
|
76
49
|
expression: Expression;
|
|
77
50
|
/** @hidden */
|
|
78
51
|
identifier: SymbolPrimitive;
|
|
52
|
+
/** @hidden */
|
|
53
|
+
extendsSymbol?: SymbolPrimitive;
|
|
54
|
+
/** @hidden */
|
|
55
|
+
extendsArgs?: Expression[];
|
|
79
56
|
constructor(identifier: SymbolPrimitive, expression: Expression, loc?: SourceLocation);
|
|
80
57
|
accept<R>(visitor: Visitor<R>): R;
|
|
81
|
-
toJSON():
|
|
82
|
-
type: string;
|
|
83
|
-
identifier: {
|
|
84
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
85
|
-
value: string;
|
|
86
|
-
};
|
|
87
|
-
expression: any;
|
|
88
|
-
};
|
|
58
|
+
toJSON(): SerializeNode;
|
|
89
59
|
}
|
|
90
60
|
/**
|
|
91
61
|
* Represents a class definition, a blueprint for objects.
|
|
@@ -107,29 +77,7 @@ export declare class Class extends ASTNode {
|
|
|
107
77
|
includes: SymbolPrimitive[];
|
|
108
78
|
constructor(identifier: SymbolPrimitive, extendsSymbol: SymbolPrimitive | undefined, implementsNode: Implement | undefined, includes: SymbolPrimitive[], expression: Expression, loc?: SourceLocation);
|
|
109
79
|
accept<R>(visitor: Visitor<R>): R;
|
|
110
|
-
toJSON():
|
|
111
|
-
type: string;
|
|
112
|
-
identifier: {
|
|
113
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
114
|
-
value: string;
|
|
115
|
-
};
|
|
116
|
-
extends: {
|
|
117
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
118
|
-
value: string;
|
|
119
|
-
};
|
|
120
|
-
implements: {
|
|
121
|
-
type: string;
|
|
122
|
-
identifier: {
|
|
123
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
124
|
-
value: string;
|
|
125
|
-
};
|
|
126
|
-
};
|
|
127
|
-
includes: {
|
|
128
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
129
|
-
value: string;
|
|
130
|
-
}[];
|
|
131
|
-
expression: any;
|
|
132
|
-
};
|
|
80
|
+
toJSON(): SerializeNode;
|
|
133
81
|
}
|
|
134
82
|
/**
|
|
135
83
|
* Represents an interface or protocol definition.
|
|
@@ -144,18 +92,7 @@ export declare class Interface extends ASTNode {
|
|
|
144
92
|
identifier: SymbolPrimitive;
|
|
145
93
|
constructor(identifier: SymbolPrimitive, extendsSymbol: SymbolPrimitive[], expression: Expression, loc?: SourceLocation);
|
|
146
94
|
accept<R>(visitor: Visitor<R>): R;
|
|
147
|
-
toJSON():
|
|
148
|
-
type: string;
|
|
149
|
-
identifier: {
|
|
150
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
151
|
-
value: string;
|
|
152
|
-
};
|
|
153
|
-
extends: {
|
|
154
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
155
|
-
value: string;
|
|
156
|
-
}[];
|
|
157
|
-
expression: any;
|
|
158
|
-
};
|
|
95
|
+
toJSON(): SerializeNode;
|
|
159
96
|
}
|
|
160
97
|
/**
|
|
161
98
|
* Represents a message send or method invocation on an object.
|
|
@@ -174,15 +111,7 @@ export declare class Send extends ASTNode {
|
|
|
174
111
|
/** @hidden */
|
|
175
112
|
constructor(receiver: Expression, selector: SymbolPrimitive, args: Expression[], loc?: SourceLocation);
|
|
176
113
|
accept<R>(visitor: Visitor<R>): R;
|
|
177
|
-
toJSON():
|
|
178
|
-
type: string;
|
|
179
|
-
receiver: any;
|
|
180
|
-
selector: {
|
|
181
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
182
|
-
value: string;
|
|
183
|
-
};
|
|
184
|
-
arguments: any[];
|
|
185
|
-
};
|
|
114
|
+
toJSON(): SerializeNode;
|
|
186
115
|
}
|
|
187
116
|
/**
|
|
188
117
|
* Represents the instantiation of a class.
|
|
@@ -198,7 +127,7 @@ export declare class New extends ASTNode {
|
|
|
198
127
|
identifier: SymbolPrimitive;
|
|
199
128
|
constructor(identifier: SymbolPrimitive, args: Expression[], loc?: SourceLocation);
|
|
200
129
|
accept<R>(visitor: Visitor<R>): R;
|
|
201
|
-
toJSON():
|
|
130
|
+
toJSON(): SerializeNode;
|
|
202
131
|
}
|
|
203
132
|
/**
|
|
204
133
|
* Represents an implementation clause for an interface.
|
|
@@ -209,13 +138,7 @@ export declare class Implement extends ASTNode {
|
|
|
209
138
|
identifier: SymbolPrimitive;
|
|
210
139
|
constructor(identifier: SymbolPrimitive, loc?: SourceLocation);
|
|
211
140
|
accept<R>(visitor: Visitor<R>): R;
|
|
212
|
-
toJSON():
|
|
213
|
-
type: string;
|
|
214
|
-
identifier: {
|
|
215
|
-
type: import("../globals/primitives.js").YukigoPrimitive;
|
|
216
|
-
value: string;
|
|
217
|
-
};
|
|
218
|
-
};
|
|
141
|
+
toJSON(): SerializeNode;
|
|
219
142
|
}
|
|
220
143
|
/**
|
|
221
144
|
* Represents a reference to the current object instance (self/this).
|
|
@@ -223,9 +146,7 @@ export declare class Implement extends ASTNode {
|
|
|
223
146
|
*/
|
|
224
147
|
export declare class Self extends ASTNode {
|
|
225
148
|
accept<R>(visitor: Visitor<R>): R;
|
|
226
|
-
toJSON():
|
|
227
|
-
type: string;
|
|
228
|
-
};
|
|
149
|
+
toJSON(): SerializeNode;
|
|
229
150
|
}
|
|
230
151
|
/**
|
|
231
152
|
* Represents a reference to the superclass or parent object.
|
|
@@ -236,10 +157,7 @@ export declare class Super extends ASTNode {
|
|
|
236
157
|
args: Expression[];
|
|
237
158
|
constructor(args: Expression[], loc?: SourceLocation);
|
|
238
159
|
accept<R>(visitor: Visitor<R>): R;
|
|
239
|
-
toJSON():
|
|
240
|
-
type: string;
|
|
241
|
-
args: Expression[];
|
|
242
|
-
};
|
|
160
|
+
toJSON(): SerializeNode;
|
|
243
161
|
}
|
|
244
162
|
/**
|
|
245
163
|
* Declaration of custom primitive operators - also known as operator overriding.
|
|
@@ -256,10 +174,6 @@ export declare class PrimitiveMethod extends ASTNode {
|
|
|
256
174
|
equations: Equation[];
|
|
257
175
|
constructor(operator: Operator, equations: Equation[], loc: SourceLocation);
|
|
258
176
|
accept<R>(visitor: Visitor<R>): R;
|
|
259
|
-
toJSON():
|
|
260
|
-
type: string;
|
|
261
|
-
operator: Operator;
|
|
262
|
-
equations: Equation[];
|
|
263
|
-
};
|
|
177
|
+
toJSON(): SerializeNode;
|
|
264
178
|
}
|
|
265
179
|
//# sourceMappingURL=object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/paradigms/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/paradigms/object.ts"],"names":[],"mappings":"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"}
|
package/dist/paradigms/object.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ASTNode
|
|
1
|
+
import { ASTNode } from "../globals/generics.js";
|
|
2
2
|
/**
|
|
3
3
|
* Represents a method definition within a class or object.
|
|
4
4
|
*
|
|
@@ -13,13 +13,16 @@ export class Method extends ASTNode {
|
|
|
13
13
|
equations;
|
|
14
14
|
/** @hidden */
|
|
15
15
|
identifier;
|
|
16
|
-
|
|
16
|
+
/** @hidden */
|
|
17
|
+
isAbstract;
|
|
18
|
+
constructor(identifier, equations, loc, isAbstract = false) {
|
|
17
19
|
super(loc);
|
|
18
20
|
this.identifier = identifier;
|
|
19
21
|
this.equations = equations;
|
|
22
|
+
this.isAbstract = isAbstract;
|
|
20
23
|
}
|
|
21
24
|
accept(visitor) {
|
|
22
|
-
return visitor.visitMethod
|
|
25
|
+
return this.dispatchVisit(visitor, visitor.visitMethod);
|
|
23
26
|
}
|
|
24
27
|
toJSON() {
|
|
25
28
|
return {
|
|
@@ -44,7 +47,7 @@ export class Attribute extends ASTNode {
|
|
|
44
47
|
this.expression = expression;
|
|
45
48
|
}
|
|
46
49
|
accept(visitor) {
|
|
47
|
-
return visitor.visitAttribute
|
|
50
|
+
return this.dispatchVisit(visitor, visitor.visitAttribute);
|
|
48
51
|
}
|
|
49
52
|
toJSON() {
|
|
50
53
|
return {
|
|
@@ -66,19 +69,25 @@ export class Object extends ASTNode {
|
|
|
66
69
|
expression;
|
|
67
70
|
/** @hidden */
|
|
68
71
|
identifier;
|
|
72
|
+
/** @hidden */
|
|
73
|
+
extendsSymbol;
|
|
74
|
+
/** @hidden */
|
|
75
|
+
extendsArgs;
|
|
69
76
|
constructor(identifier, expression, loc) {
|
|
70
77
|
super(loc);
|
|
71
78
|
this.identifier = identifier;
|
|
72
79
|
this.expression = expression;
|
|
73
80
|
}
|
|
74
81
|
accept(visitor) {
|
|
75
|
-
return visitor.visitObject
|
|
82
|
+
return this.dispatchVisit(visitor, visitor.visitObject);
|
|
76
83
|
}
|
|
77
84
|
toJSON() {
|
|
78
85
|
return {
|
|
79
86
|
type: "Object",
|
|
80
87
|
identifier: this.identifier.toJSON(),
|
|
81
88
|
expression: this.expression.toJSON(),
|
|
89
|
+
extendsSymbol: this.extendsSymbol ? this.extendsSymbol.toJSON() : undefined,
|
|
90
|
+
extendsArgs: this.extendsArgs ? this.extendsArgs.map(a => a.toJSON()) : undefined,
|
|
82
91
|
};
|
|
83
92
|
}
|
|
84
93
|
}
|
|
@@ -109,14 +118,14 @@ export class Class extends ASTNode {
|
|
|
109
118
|
this.expression = expression;
|
|
110
119
|
}
|
|
111
120
|
accept(visitor) {
|
|
112
|
-
return visitor.visitClass
|
|
121
|
+
return this.dispatchVisit(visitor, visitor.visitClass);
|
|
113
122
|
}
|
|
114
123
|
toJSON() {
|
|
115
124
|
return {
|
|
116
125
|
type: "Class",
|
|
117
126
|
identifier: this.identifier.toJSON(),
|
|
118
|
-
extends: this.extendsSymbol
|
|
119
|
-
implements: this.implementsNode
|
|
127
|
+
extends: this.extendsSymbol?.toJSON(),
|
|
128
|
+
implements: this.implementsNode?.toJSON(),
|
|
120
129
|
includes: this.includes.map((s) => s.toJSON()),
|
|
121
130
|
expression: this.expression.toJSON(),
|
|
122
131
|
};
|
|
@@ -140,7 +149,7 @@ export class Interface extends ASTNode {
|
|
|
140
149
|
this.expression = expression;
|
|
141
150
|
}
|
|
142
151
|
accept(visitor) {
|
|
143
|
-
return visitor.visitInterface
|
|
152
|
+
return this.dispatchVisit(visitor, visitor.visitInterface);
|
|
144
153
|
}
|
|
145
154
|
toJSON() {
|
|
146
155
|
return {
|
|
@@ -173,7 +182,7 @@ export class Send extends ASTNode {
|
|
|
173
182
|
this.args = args;
|
|
174
183
|
}
|
|
175
184
|
accept(visitor) {
|
|
176
|
-
return visitor.visitSend
|
|
185
|
+
return this.dispatchVisit(visitor, visitor.visitSend);
|
|
177
186
|
}
|
|
178
187
|
toJSON() {
|
|
179
188
|
return {
|
|
@@ -202,7 +211,7 @@ export class New extends ASTNode {
|
|
|
202
211
|
this.args = args;
|
|
203
212
|
}
|
|
204
213
|
accept(visitor) {
|
|
205
|
-
return visitor.visitNew
|
|
214
|
+
return this.dispatchVisit(visitor, visitor.visitNew);
|
|
206
215
|
}
|
|
207
216
|
toJSON() {
|
|
208
217
|
return {
|
|
@@ -224,7 +233,7 @@ export class Implement extends ASTNode {
|
|
|
224
233
|
this.identifier = identifier;
|
|
225
234
|
}
|
|
226
235
|
accept(visitor) {
|
|
227
|
-
return visitor.visitImplement
|
|
236
|
+
return this.dispatchVisit(visitor, visitor.visitImplement);
|
|
228
237
|
}
|
|
229
238
|
toJSON() {
|
|
230
239
|
return {
|
|
@@ -239,7 +248,7 @@ export class Implement extends ASTNode {
|
|
|
239
248
|
*/
|
|
240
249
|
export class Self extends ASTNode {
|
|
241
250
|
accept(visitor) {
|
|
242
|
-
return visitor.visitSelf
|
|
251
|
+
return this.dispatchVisit(visitor, visitor.visitSelf);
|
|
243
252
|
}
|
|
244
253
|
toJSON() {
|
|
245
254
|
return {
|
|
@@ -259,7 +268,7 @@ export class Super extends ASTNode {
|
|
|
259
268
|
this.args = args;
|
|
260
269
|
}
|
|
261
270
|
accept(visitor) {
|
|
262
|
-
return visitor.visitSuper
|
|
271
|
+
return this.dispatchVisit(visitor, visitor.visitSuper);
|
|
263
272
|
}
|
|
264
273
|
toJSON() {
|
|
265
274
|
return {
|
|
@@ -287,7 +296,7 @@ export class PrimitiveMethod extends ASTNode {
|
|
|
287
296
|
this.equations = equations;
|
|
288
297
|
}
|
|
289
298
|
accept(visitor) {
|
|
290
|
-
return visitor.visitPrimitiveMethod
|
|
299
|
+
return this.dispatchVisit(visitor, visitor.visitPrimitiveMethod);
|
|
291
300
|
}
|
|
292
301
|
toJSON() {
|
|
293
302
|
return {
|