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,6 +1,6 @@
|
|
|
1
1
|
import { ASTNode } from "../globals/generics.js";
|
|
2
2
|
import { ArithmeticUnaryOperation, ArithmeticBinaryOperation, ListUnaryOperation, ListBinaryOperation, ComparisonOperation, LogicalBinaryOperation, LogicalUnaryOperation, StringOperation, UnifyOperation, AssignOperation, BitwiseBinaryOperation, BitwiseUnaryOperation } from "../globals/operators.js";
|
|
3
|
-
import { TraverseBase,
|
|
3
|
+
import { TraverseBase, VisitorConstructor } from "./base.js";
|
|
4
4
|
export interface OperationVisitor<TReturn> {
|
|
5
5
|
visitArithmeticUnaryOperation(node: ArithmeticUnaryOperation): TReturn;
|
|
6
6
|
visitArithmeticBinaryOperation(node: ArithmeticBinaryOperation): TReturn;
|
|
@@ -15,29 +15,28 @@ export interface OperationVisitor<TReturn> {
|
|
|
15
15
|
visitUnifyOperation(node: UnifyOperation): TReturn;
|
|
16
16
|
visitAssignOperation(node: AssignOperation): TReturn;
|
|
17
17
|
}
|
|
18
|
-
export declare function OperationTraverser<TBase extends
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
} & TBase;
|
|
18
|
+
export declare function OperationTraverser<TBase extends VisitorConstructor<TraverseBase>>(Base: TBase): (abstract new (...args: any[]) => {
|
|
19
|
+
traverseBinary(node: {
|
|
20
|
+
left: ASTNode;
|
|
21
|
+
right: ASTNode;
|
|
22
|
+
}): void;
|
|
23
|
+
traverseUnary(node: {
|
|
24
|
+
operand: ASTNode;
|
|
25
|
+
}): void;
|
|
26
|
+
visitArithmeticUnaryOperation(node: ArithmeticUnaryOperation): void;
|
|
27
|
+
visitArithmeticBinaryOperation(node: ArithmeticBinaryOperation): void;
|
|
28
|
+
visitListUnaryOperation(node: ListUnaryOperation): void;
|
|
29
|
+
visitListBinaryOperation(node: ListBinaryOperation): void;
|
|
30
|
+
visitComparisonOperation(node: ComparisonOperation): void;
|
|
31
|
+
visitLogicalBinaryOperation(node: LogicalBinaryOperation): void;
|
|
32
|
+
visitLogicalUnaryOperation(node: LogicalUnaryOperation): void;
|
|
33
|
+
visitBitwiseBinaryOperation(node: BitwiseBinaryOperation): void;
|
|
34
|
+
visitBitwiseUnaryOperation(node: BitwiseUnaryOperation): void;
|
|
35
|
+
visitStringOperation(node: StringOperation): void;
|
|
36
|
+
visitUnifyOperation(node: UnifyOperation): void;
|
|
37
|
+
visitAssignOperation(node: AssignOperation): void;
|
|
38
|
+
visit(node: ASTNode): void;
|
|
39
|
+
traverseCollection(nodes: ASTNode[]): void;
|
|
40
|
+
fallback(node: ASTNode): void;
|
|
41
|
+
}) & TBase;
|
|
43
42
|
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/visitor/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/visitor/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,gBAAgB,CAAC,OAAO;IACvC,6BAA6B,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC;IACvE,8BAA8B,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC;IACzE,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAC3D,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAC7D,wBAAwB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAC7D,2BAA2B,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;IACnE,0BAA0B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC;IACjE,2BAA2B,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;IACnE,0BAA0B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC;IACjE,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IACnD,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;CACtD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,kBAAkB,CAAC,YAAY,CAAC,EAC/E,IAAI,EAAE,KAAK;yBAMmB;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;wBAIzC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;wCAIlB,wBAAwB,GAAG,IAAI;yCAG9B,yBAAyB,GAAG,IAAI;kCAGvC,kBAAkB,GAAG,IAAI;mCAGxB,mBAAmB,GAAG,IAAI;mCAG1B,mBAAmB,GAAG,IAAI;sCAGvB,sBAAsB,GAAG,IAAI;qCAG9B,qBAAqB,GAAG,IAAI;sCAG3B,sBAAsB,GAAG,IAAI;qCAG9B,qBAAqB,GAAG,IAAI;+BAGlC,eAAe,GAAG,IAAI;8BAGvB,cAAc,GAAG,IAAI;+BAGpB,eAAe,GAAG,IAAI;;;;WAKpD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function OperationTraverser(Base) {
|
|
2
|
-
|
|
2
|
+
class OperationTraverser extends Base {
|
|
3
3
|
traverseBinary(node) {
|
|
4
4
|
node.left.accept(this);
|
|
5
5
|
node.right.accept(this);
|
|
@@ -43,5 +43,6 @@ export function OperationTraverser(Base) {
|
|
|
43
43
|
visitAssignOperation(node) {
|
|
44
44
|
this.traverseBinary(node);
|
|
45
45
|
}
|
|
46
|
-
}
|
|
46
|
+
}
|
|
47
|
+
return OperationTraverser;
|
|
47
48
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { VariablePattern, LiteralPattern, ApplicationPattern, TuplePattern, ListPattern, FunctorPattern, AsPattern, WildcardPattern, UnionPattern, ConstructorPattern, ConsPattern, TypePattern } from "../globals/patterns.js";
|
|
2
|
-
import { TraverseBase,
|
|
2
|
+
import { TraverseBase, VisitorConstructor } from "./base.js";
|
|
3
3
|
export interface PatternVisitor<TReturn> {
|
|
4
4
|
visitVariablePattern(node: VariablePattern): TReturn;
|
|
5
5
|
visitLiteralPattern(node: LiteralPattern): TReturn;
|
|
@@ -14,22 +14,21 @@ export interface PatternVisitor<TReturn> {
|
|
|
14
14
|
visitConsPattern(node: ConsPattern): TReturn;
|
|
15
15
|
visitTypePattern(node: TypePattern): TReturn;
|
|
16
16
|
}
|
|
17
|
-
export declare function PatternTraverser<TBase extends
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
} & TBase;
|
|
17
|
+
export declare function PatternTraverser<TBase extends VisitorConstructor<TraverseBase>>(Base: TBase): (abstract new (...args: any[]) => {
|
|
18
|
+
visitVariablePattern(node: VariablePattern): void;
|
|
19
|
+
visitLiteralPattern(node: LiteralPattern): void;
|
|
20
|
+
visitApplicationPattern(node: ApplicationPattern): void;
|
|
21
|
+
visitTuplePattern(node: TuplePattern): void;
|
|
22
|
+
visitListPattern(node: ListPattern): void;
|
|
23
|
+
visitFunctorPattern(node: FunctorPattern): void;
|
|
24
|
+
visitAsPattern(node: AsPattern): void;
|
|
25
|
+
visitWildcardPattern(node: WildcardPattern): void;
|
|
26
|
+
visitUnionPattern(node: UnionPattern): void;
|
|
27
|
+
visitConstructorPattern(node: ConstructorPattern): void;
|
|
28
|
+
visitConsPattern(node: ConsPattern): void;
|
|
29
|
+
visitTypePattern(node: TypePattern): void;
|
|
30
|
+
visit(node: import("../index.js").ASTNode): void;
|
|
31
|
+
traverseCollection(nodes: import("../index.js").ASTNode[]): void;
|
|
32
|
+
fallback(node: import("../index.js").ASTNode): void;
|
|
33
|
+
}) & TBase;
|
|
35
34
|
//# sourceMappingURL=patterns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/visitor/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/visitor/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,WAAW,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,cAAc,CAAC,OAAO;IACnC,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IACnD,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAC3D,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAC/C,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7C,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IACnD,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAC/C,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAC3D,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7C,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;CAChD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,kBAAkB,CAAC,YAAY,CAAC,EAC3E,IAAI,EAAE,KAAK;+BAGoB,eAAe,GAAG,IAAI;8BAGvB,cAAc,GAAG,IAAI;kCAGjB,kBAAkB,GAAG,IAAI;4BAI/B,YAAY,GAAG,IAAI;2BAGpB,WAAW,GAAG,IAAI;8BAGf,cAAc,GAAG,IAAI;yBAI1B,SAAS,GAAG,IAAI;+BAIV,eAAe,GAAG,IAAI;4BACzB,YAAY,GAAG,IAAI;kCAGb,kBAAkB,GAAG,IAAI;2BAGhC,WAAW,GAAG,IAAI;2BAIlB,WAAW,GAAG,IAAI;;;;WAMhD"}
|
package/dist/visitor/patterns.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function PatternTraverser(Base) {
|
|
2
|
-
|
|
2
|
+
class PatternTraverser extends Base {
|
|
3
3
|
visitVariablePattern(node) {
|
|
4
4
|
node.name.accept(this);
|
|
5
5
|
}
|
|
@@ -39,5 +39,7 @@ export function PatternTraverser(Base) {
|
|
|
39
39
|
node.targetType.accept(this);
|
|
40
40
|
node.innerPattern?.accept(this);
|
|
41
41
|
}
|
|
42
|
-
}
|
|
42
|
+
}
|
|
43
|
+
;
|
|
44
|
+
return PatternTraverser;
|
|
43
45
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BooleanPrimitive, CharPrimitive, ListPrimitive, NilPrimitive, NumberPrimitive, StringPrimitive, SymbolPrimitive } from "../globals/primitives.js";
|
|
2
|
-
import { TraverseBase,
|
|
2
|
+
import { TraverseBase, VisitorConstructor } from "./base.js";
|
|
3
3
|
export interface PrimitiveVisitor<TReturn> {
|
|
4
4
|
visitNumberPrimitive(node: NumberPrimitive): TReturn;
|
|
5
5
|
visitBooleanPrimitive(node: BooleanPrimitive): TReturn;
|
|
@@ -9,17 +9,16 @@ export interface PrimitiveVisitor<TReturn> {
|
|
|
9
9
|
visitSymbolPrimitive(node: SymbolPrimitive): TReturn;
|
|
10
10
|
visitCharPrimitive(node: CharPrimitive): TReturn;
|
|
11
11
|
}
|
|
12
|
-
export declare function PrimitiveTraverser<TBase extends
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} & TBase;
|
|
12
|
+
export declare function PrimitiveTraverser<TBase extends VisitorConstructor<TraverseBase>>(Base: TBase): (abstract new (...args: any[]) => {
|
|
13
|
+
visitNumberPrimitive(node: NumberPrimitive): void;
|
|
14
|
+
visitBooleanPrimitive(node: BooleanPrimitive): void;
|
|
15
|
+
visitStringPrimitive(node: StringPrimitive): void;
|
|
16
|
+
visitListPrimitive(node: ListPrimitive): void;
|
|
17
|
+
visitNilPrimitive(node: NilPrimitive): void;
|
|
18
|
+
visitSymbolPrimitive(node: SymbolPrimitive): void;
|
|
19
|
+
visitCharPrimitive(node: CharPrimitive): void;
|
|
20
|
+
visit(node: import("../index.js").ASTNode): void;
|
|
21
|
+
traverseCollection(nodes: import("../index.js").ASTNode[]): void;
|
|
22
|
+
fallback(node: import("../index.js").ASTNode): void;
|
|
23
|
+
}) & TBase;
|
|
25
24
|
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/visitor/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/visitor/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,gBAAgB,CAAC,OAAO;IACvC,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACvD,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IACjD,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAC/C,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;CAClD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,kBAAkB,CAAC,YAAY,CAAC,EAC/E,IAAI,EAAE,KAAK;+BAMkB,eAAe,GAAG,IAAI;gCACrB,gBAAgB,GAAG,IAAI;+BACxB,eAAe,GAAG,IAAI;6BACxB,aAAa,GAAG,IAAI;4BAGrB,YAAY,GAAG,IAAI;+BAChB,eAAe,GAAG,IAAI;6BACxB,aAAa,GAAG,IAAI;;;;WAGhD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function PrimitiveTraverser(Base) {
|
|
2
|
-
|
|
2
|
+
class PrimitiveTraverser extends Base {
|
|
3
3
|
visitNumberPrimitive(node) { }
|
|
4
4
|
visitBooleanPrimitive(node) { }
|
|
5
5
|
visitStringPrimitive(node) { }
|
|
@@ -9,5 +9,6 @@ export function PrimitiveTraverser(Base) {
|
|
|
9
9
|
visitNilPrimitive(node) { }
|
|
10
10
|
visitSymbolPrimitive(node) { }
|
|
11
11
|
visitCharPrimitive(node) { }
|
|
12
|
-
}
|
|
12
|
+
}
|
|
13
|
+
return PrimitiveTraverser;
|
|
13
14
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Sequence, If, Return, Field, UnguardedBody,
|
|
1
|
+
import { Sequence, If, Return, Field, UnguardedBody, NativeBody, Equation, Switch, Case, Try, Catch, Raise, Print, Input, For, Break, Continue, Variable, Assignment, Constructor, Record, Function } from "../globals/statements.js";
|
|
2
2
|
import { EntryPoint, Procedure, Enumeration, While, Repeat, ForLoop, Structure } from "../paradigms/imperative.js";
|
|
3
3
|
import { Rule, Fact, Query, LogicConstraint } from "../paradigms/logic.js";
|
|
4
4
|
import { Method, Attribute, Class, Interface, Object, Super, Self, PrimitiveMethod } from "../paradigms/object.js";
|
|
5
|
-
import { TraverseBase,
|
|
5
|
+
import { TraverseBase, VisitorConstructor } from "./base.js";
|
|
6
6
|
export interface StatementVisitor<TReturn> {
|
|
7
7
|
visitSequence(node: Sequence): TReturn;
|
|
8
8
|
visitSelf(node: Self): TReturn;
|
|
@@ -14,7 +14,7 @@ export interface StatementVisitor<TReturn> {
|
|
|
14
14
|
visitConstructor(node: Constructor): TReturn;
|
|
15
15
|
visitRecord(node: Record): TReturn;
|
|
16
16
|
visitUnguardedBody(node: UnguardedBody): TReturn;
|
|
17
|
-
|
|
17
|
+
visitNativeBody(node: NativeBody): TReturn;
|
|
18
18
|
visitEquation(node: Equation): TReturn;
|
|
19
19
|
visitSwitch(node: Switch): TReturn;
|
|
20
20
|
visitCase(node: Case): TReturn;
|
|
@@ -46,51 +46,50 @@ export interface StatementVisitor<TReturn> {
|
|
|
46
46
|
visitInterface(node: Interface): TReturn;
|
|
47
47
|
visitLogicConstraint(node: LogicConstraint): TReturn;
|
|
48
48
|
}
|
|
49
|
-
export declare function StatementTraverser<TBase extends
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
} & TBase;
|
|
49
|
+
export declare function StatementTraverser<TBase extends VisitorConstructor<TraverseBase>>(Base: TBase): (abstract new (...args: any[]) => {
|
|
50
|
+
visitSequence(node: Sequence): void;
|
|
51
|
+
visitSelf(node: Self): void;
|
|
52
|
+
visitSuper(node: Super): void;
|
|
53
|
+
visitIf(node: If): void;
|
|
54
|
+
visitReturn(node: Return): void;
|
|
55
|
+
visitFunction(node: Function): void;
|
|
56
|
+
visitField(node: Field): void;
|
|
57
|
+
visitConstructor(node: Constructor): void;
|
|
58
|
+
visitRecord(node: Record): void;
|
|
59
|
+
visitUnguardedBody(node: UnguardedBody): void;
|
|
60
|
+
visitNativeBody(node: NativeBody): void;
|
|
61
|
+
visitEquation(node: Equation): void;
|
|
62
|
+
visitSwitch(node: Switch): void;
|
|
63
|
+
visitCase(node: Case): void;
|
|
64
|
+
visitTry(node: Try): void;
|
|
65
|
+
visitCatch(node: Catch): void;
|
|
66
|
+
visitRaise(node: Raise): void;
|
|
67
|
+
visitPrint(node: Print): void;
|
|
68
|
+
visitInput(node: Input): void;
|
|
69
|
+
visitFor(node: For): void;
|
|
70
|
+
visitBreak(node: Break): void;
|
|
71
|
+
visitContinue(node: Continue): void;
|
|
72
|
+
visitVariable(node: Variable): void;
|
|
73
|
+
visitAssignment(node: Assignment): void;
|
|
74
|
+
visitStructure(node: Structure): void;
|
|
75
|
+
visitEntryPoint(node: EntryPoint): void;
|
|
76
|
+
visitProcedure(node: Procedure): void;
|
|
77
|
+
visitEnumeration(node: Enumeration): void;
|
|
78
|
+
visitWhile(node: While): void;
|
|
79
|
+
visitRepeat(node: Repeat): void;
|
|
80
|
+
visitForLoop(node: ForLoop): void;
|
|
81
|
+
visitRule(node: Rule): void;
|
|
82
|
+
visitFact(node: Fact): void;
|
|
83
|
+
visitQuery(node: Query): void;
|
|
84
|
+
visitMethod(node: Method): void;
|
|
85
|
+
visitPrimitiveMethod(node: PrimitiveMethod): void;
|
|
86
|
+
visitAttribute(node: Attribute): void;
|
|
87
|
+
visitObject(node: Object): void;
|
|
88
|
+
visitClass(node: Class): void;
|
|
89
|
+
visitInterface(node: Interface): void;
|
|
90
|
+
visitLogicConstraint(node: LogicConstraint): void;
|
|
91
|
+
visit(node: import("../index.js").ASTNode): void;
|
|
92
|
+
traverseCollection(nodes: import("../index.js").ASTNode[]): void;
|
|
93
|
+
fallback(node: import("../index.js").ASTNode): void;
|
|
94
|
+
}) & TBase;
|
|
96
95
|
//# sourceMappingURL=statements.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/visitor/statements.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../src/visitor/statements.ts"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EACR,EAAE,EACF,MAAM,EACN,KAAK,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,GAAG,EACH,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,WAAW,EACX,MAAM,EACN,QAAQ,EACX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,UAAU,EACV,SAAS,EACT,WAAW,EACX,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,eAAe,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAI,EACJ,eAAe,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,gBAAgB,CAAC,OAAO;IACrC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC/B,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC;IAC3B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IACjD,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3C,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAC7B,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAC7B,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3C,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3C,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAC7C,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC/B,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC/B,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;CACxD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,kBAAkB,CAAC,YAAY,CAAC,EAC7E,IAAI,EAAE,KAAK;wBAGa,QAAQ,GAAG,IAAI;oBAGnB,IAAI,GAAG,IAAI;qBACV,KAAK,GAAG,IAAI;kBACf,EAAE,GAAG,IAAI;sBAKL,MAAM,GAAG,IAAI;wBAGX,QAAQ,GAAG,IAAI;qBAIlB,KAAK,GAAG,IAAI;2BAIN,WAAW,GAAG,IAAI;sBAIvB,MAAM,GAAG,IAAI;6BAKN,aAAa,GAAG,IAAI;0BAGvB,UAAU,GAAG,IAAI;wBACnB,QAAQ,GAAG,IAAI;sBASjB,MAAM,GAAG,IAAI;oBAIf,IAAI,GAAG,IAAI;mBAIZ,GAAG,GAAG,IAAI;qBAKR,KAAK,GAAG,IAAI;qBAIZ,KAAK,GAAG,IAAI;qBAGZ,KAAK,GAAG,IAAI;qBAGZ,KAAK,GAAG,IAAI;mBAGd,GAAG,GAAG,IAAI;qBAIR,KAAK,GAAG,IAAI;wBAGT,QAAQ,GAAG,IAAI;wBAGf,QAAQ,GAAG,IAAI;0BAKb,UAAU,GAAG,IAAI;yBAIlB,SAAS,GAAG,IAAI;0BAGf,UAAU,GAAG,IAAI;yBAIlB,SAAS,GAAG,IAAI;2BAId,WAAW,GAAG,IAAI;qBAIxB,KAAK,GAAG,IAAI;sBAIX,MAAM,GAAG,IAAI;uBAIZ,OAAO,GAAG,IAAI;oBAMjB,IAAI,GAAG,IAAI;oBAIX,IAAI,GAAG,IAAI;qBAIV,KAAK,GAAG,IAAI;sBAGX,MAAM,GAAG,IAAI;+BAIJ,eAAe,GAAG,IAAI;yBAG5B,SAAS,GAAG,IAAI;sBAInB,MAAM,GAAG,IAAI;qBAQd,KAAK,GAAG,IAAI;yBAMR,SAAS,GAAG,IAAI;+BAKV,eAAe,GAAG,IAAI;;;;WAKxD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function StatementTraverser(Base) {
|
|
2
|
-
|
|
2
|
+
class StatementTraverser extends Base {
|
|
3
3
|
visitSequence(node) {
|
|
4
4
|
this.traverseCollection(node.statements);
|
|
5
5
|
}
|
|
@@ -34,10 +34,7 @@ export function StatementTraverser(Base) {
|
|
|
34
34
|
visitUnguardedBody(node) {
|
|
35
35
|
node.sequence.accept(this);
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
node.condition.accept(this);
|
|
39
|
-
node.body.accept(this);
|
|
40
|
-
}
|
|
37
|
+
visitNativeBody(node) { }
|
|
41
38
|
visitEquation(node) {
|
|
42
39
|
if (Array.isArray(node.body)) {
|
|
43
40
|
this.traverseCollection(node.body);
|
|
@@ -147,6 +144,10 @@ export function StatementTraverser(Base) {
|
|
|
147
144
|
visitObject(node) {
|
|
148
145
|
node.identifier.accept(this);
|
|
149
146
|
node.expression.accept(this);
|
|
147
|
+
node.extendsSymbol?.accept(this);
|
|
148
|
+
if (node.extendsArgs) {
|
|
149
|
+
this.traverseCollection(node.extendsArgs);
|
|
150
|
+
}
|
|
150
151
|
}
|
|
151
152
|
visitClass(node) {
|
|
152
153
|
node.identifier.accept(this);
|
|
@@ -162,5 +163,7 @@ export function StatementTraverser(Base) {
|
|
|
162
163
|
visitLogicConstraint(node) {
|
|
163
164
|
node.expression.accept(this);
|
|
164
165
|
}
|
|
165
|
-
}
|
|
166
|
+
}
|
|
167
|
+
;
|
|
168
|
+
return StatementTraverser;
|
|
166
169
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Assert, Equality, Failure, Test, TestGroup, Truth } from "../globals/testing.js";
|
|
2
|
-
import { TraverseBase,
|
|
2
|
+
import { TraverseBase, VisitorConstructor } from "./base.js";
|
|
3
3
|
export interface TestingVisitor<TReturn> {
|
|
4
4
|
visitTestGroup(node: TestGroup): TReturn;
|
|
5
5
|
visitTest(node: Test): TReturn;
|
|
@@ -8,16 +8,15 @@ export interface TestingVisitor<TReturn> {
|
|
|
8
8
|
visitEquality(node: Equality): TReturn;
|
|
9
9
|
visitFailure(node: Failure): TReturn;
|
|
10
10
|
}
|
|
11
|
-
export declare function TestingTraverser<TBase extends
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
} & TBase;
|
|
11
|
+
export declare function TestingTraverser<TBase extends VisitorConstructor<TraverseBase>>(Base: TBase): (abstract new (...args: any[]) => {
|
|
12
|
+
visitTestGroup(node: TestGroup): void;
|
|
13
|
+
visitTest(node: Test): void;
|
|
14
|
+
visitAssert(node: Assert): void;
|
|
15
|
+
visitTruth(node: Truth): void;
|
|
16
|
+
visitEquality(node: Equality): void;
|
|
17
|
+
visitFailure(node: Failure): void;
|
|
18
|
+
visit(node: import("../index.js").ASTNode): void;
|
|
19
|
+
traverseCollection(nodes: import("../index.js").ASTNode[]): void;
|
|
20
|
+
fallback(node: import("../index.js").ASTNode): void;
|
|
21
|
+
}) & TBase;
|
|
23
22
|
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/visitor/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,SAAS,EACT,KAAK,EACN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/visitor/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,SAAS,EACT,KAAK,EACN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,cAAc,CAAC,OAAO;IACrC,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAC/B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;IACjC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CACtC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,kBAAkB,CAAC,YAAY,CAAC,EAC7E,IAAI,EAAE,KAAK;yBAGY,SAAS,GAAG,IAAI;oBAIrB,IAAI,GAAG,IAAI;sBAKT,MAAM,GAAG,IAAI;qBAId,KAAK,GAAG,IAAI;wBAGT,QAAQ,GAAG,IAAI;uBAIhB,OAAO,GAAG,IAAI;;;;WAMpC"}
|
package/dist/visitor/testing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function TestingTraverser(Base) {
|
|
2
|
-
|
|
2
|
+
class TestingTraverser extends Base {
|
|
3
3
|
visitTestGroup(node) {
|
|
4
4
|
node.name.accept(this);
|
|
5
5
|
node.group.accept(this);
|
|
@@ -24,5 +24,7 @@ export function TestingTraverser(Base) {
|
|
|
24
24
|
node.func.accept(this);
|
|
25
25
|
node.message.accept(this);
|
|
26
26
|
}
|
|
27
|
-
}
|
|
27
|
+
}
|
|
28
|
+
;
|
|
29
|
+
return TestingTraverser;
|
|
28
30
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { TypeClass, Instance } from "../paradigms/typeclasses.js";
|
|
2
|
-
import { TraverseBase,
|
|
2
|
+
import { TraverseBase, VisitorConstructor } from "./base.js";
|
|
3
3
|
export interface TypeClassVisitor<TReturn> {
|
|
4
4
|
visitTypeClass(node: TypeClass): TReturn;
|
|
5
5
|
visitInstance(node: Instance): TReturn;
|
|
6
6
|
}
|
|
7
|
-
export declare function TypeClassTraverser<TBase extends
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} & TBase;
|
|
7
|
+
export declare function TypeClassTraverser<TBase extends VisitorConstructor<TraverseBase>>(Base: TBase): (abstract new (...args: any[]) => {
|
|
8
|
+
visitTypeClass(node: TypeClass): void;
|
|
9
|
+
visitInstance(node: Instance): void;
|
|
10
|
+
visit(node: import("../index.js").ASTNode): void;
|
|
11
|
+
traverseCollection(nodes: import("../index.js").ASTNode[]): void;
|
|
12
|
+
fallback(node: import("../index.js").ASTNode): void;
|
|
13
|
+
}) & TBase;
|
|
15
14
|
//# sourceMappingURL=typeclasses.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeclasses.d.ts","sourceRoot":"","sources":["../../src/visitor/typeclasses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,QAAQ,EACT,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"typeclasses.d.ts","sourceRoot":"","sources":["../../src/visitor/typeclasses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,QAAQ,EACT,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,gBAAgB,CAAC,OAAO;IACvC,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;CACxC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,kBAAkB,CAAC,YAAY,CAAC,EAC/E,IAAI,EAAE,KAAK;yBAGY,SAAS,GAAG,IAAI;wBAGjB,QAAQ,GAAG,IAAI;;;;WAKtC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export function TypeClassTraverser(Base) {
|
|
2
|
-
|
|
2
|
+
class TypeClassTraverser extends Base {
|
|
3
3
|
visitTypeClass(node) {
|
|
4
4
|
this.traverseCollection(node.signatures);
|
|
5
5
|
}
|
|
6
6
|
visitInstance(node) {
|
|
7
7
|
this.traverseCollection(node.functions);
|
|
8
8
|
}
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
|
+
;
|
|
11
|
+
return TypeClassTraverser;
|
|
10
12
|
}
|
package/dist/visitor/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SimpleType, TypeVar, TypeApplication, ListType, TupleType, Constraint, ParameterizedType, ConstrainedType, TypeAlias, TypeSignature, TypeCast } from "../globals/types.js";
|
|
2
|
-
import { TraverseBase,
|
|
2
|
+
import { TraverseBase, VisitorConstructor } from "./base.js";
|
|
3
3
|
export interface TypeVisitor<TReturn> {
|
|
4
4
|
visitSimpleType(node: SimpleType): TReturn;
|
|
5
5
|
visitTypeVar(node: TypeVar): TReturn;
|
|
@@ -13,21 +13,20 @@ export interface TypeVisitor<TReturn> {
|
|
|
13
13
|
visitTypeSignature(node: TypeSignature): TReturn;
|
|
14
14
|
visitTypeCast(node: TypeCast): TReturn;
|
|
15
15
|
}
|
|
16
|
-
export declare function TypeTraverser<TBase extends
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
} & TBase;
|
|
16
|
+
export declare function TypeTraverser<TBase extends VisitorConstructor<TraverseBase>>(Base: TBase): (abstract new (...args: any[]) => {
|
|
17
|
+
visitSimpleType(node: SimpleType): void;
|
|
18
|
+
visitTypeVar(node: TypeVar): void;
|
|
19
|
+
visitTypeApplication(node: TypeApplication): void;
|
|
20
|
+
visitListType(node: ListType): void;
|
|
21
|
+
visitTupleType(node: TupleType): void;
|
|
22
|
+
visitConstraint(node: Constraint): void;
|
|
23
|
+
visitParameterizedType(node: ParameterizedType): void;
|
|
24
|
+
visitConstrainedType(node: ConstrainedType): void;
|
|
25
|
+
visitTypeAlias(node: TypeAlias): void;
|
|
26
|
+
visitTypeSignature(node: TypeSignature): void;
|
|
27
|
+
visitTypeCast(node: TypeCast): void;
|
|
28
|
+
visit(node: import("../index.js").ASTNode): void;
|
|
29
|
+
traverseCollection(nodes: import("../index.js").ASTNode[]): void;
|
|
30
|
+
fallback(node: import("../index.js").ASTNode): void;
|
|
31
|
+
}) & TBase;
|
|
33
32
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/visitor/types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/visitor/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,OAAO,EACP,eAAe,EACf,QAAQ,EACR,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,aAAa,EACb,QAAQ,EACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,WAAW,WAAW,CAAC,OAAO;IAClC,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3C,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC;IACzD,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACrD,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACzC,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IACjD,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;CACxC;AAED,wBAAgB,aAAa,CAAC,KAAK,SAAS,kBAAkB,CAAC,YAAY,CAAC,EAC1E,IAAI,EAAE,KAAK;0BAGa,UAAU,GAAG,IAAI;uBAGpB,OAAO,GAAG,IAAI;+BAGN,eAAe,GAAG,IAAI;wBAI7B,QAAQ,GAAG,IAAI;yBAGd,SAAS,GAAG,IAAI;0BAIf,UAAU,GAAG,IAAI;iCAGV,iBAAiB,GAAG,IAAI;+BAK1B,eAAe,GAAG,IAAI;yBAG5B,SAAS,GAAG,IAAI;6BAIZ,aAAa,GAAG,IAAI;wBAIzB,QAAQ,GAAG,IAAI;;;;WAMtC"}
|
package/dist/visitor/types.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export function TypeTraverser(Base) {
|
|
2
|
-
|
|
2
|
+
class TypeTraverser extends Base {
|
|
3
3
|
visitSimpleType(node) {
|
|
4
4
|
this.traverseCollection(node.constraints);
|
|
5
5
|
}
|
|
@@ -40,5 +40,6 @@ export function TypeTraverser(Base) {
|
|
|
40
40
|
node.body.accept(this);
|
|
41
41
|
node.expression.accept(this);
|
|
42
42
|
}
|
|
43
|
-
}
|
|
43
|
+
}
|
|
44
|
+
return TypeTraverser;
|
|
44
45
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yukigo-ast",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -18,14 +18,5 @@
|
|
|
18
18
|
},
|
|
19
19
|
"keywords": [],
|
|
20
20
|
"author": "noiseArch",
|
|
21
|
-
"license": "ISC"
|
|
22
|
-
"devDependencies": {
|
|
23
|
-
"tsup": "^8.5.0",
|
|
24
|
-
"typescript": "^5.9.2",
|
|
25
|
-
"@types/chai": "^5.2.2",
|
|
26
|
-
"@types/mocha": "^10.0.10",
|
|
27
|
-
"@types/node": "^24.2.0",
|
|
28
|
-
"chai": "^6.2.0",
|
|
29
|
-
"mocha": "^11.7.1"
|
|
30
|
-
}
|
|
21
|
+
"license": "ISC"
|
|
31
22
|
}
|