yukigo-ast 0.2.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/.mocharc.json +3 -3
  2. package/CHANGELOG.md +41 -17
  3. package/dist/globals/expressions.d.ts +27 -25
  4. package/dist/globals/expressions.d.ts.map +1 -1
  5. package/dist/globals/expressions.js +47 -10
  6. package/dist/globals/generics.d.ts +8 -2
  7. package/dist/globals/generics.d.ts.map +1 -1
  8. package/dist/globals/generics.js +15 -1
  9. package/dist/globals/operators.d.ts +13 -69
  10. package/dist/globals/operators.d.ts.map +1 -1
  11. package/dist/globals/operators.js +12 -12
  12. package/dist/globals/patterns.d.ts +24 -25
  13. package/dist/globals/patterns.d.ts.map +1 -1
  14. package/dist/globals/patterns.js +66 -12
  15. package/dist/globals/primitives.d.ts +2 -5
  16. package/dist/globals/primitives.d.ts.map +1 -1
  17. package/dist/globals/primitives.js +7 -7
  18. package/dist/globals/statements.d.ts +28 -194
  19. package/dist/globals/statements.d.ts.map +1 -1
  20. package/dist/globals/statements.js +32 -52
  21. package/dist/globals/testing.d.ts +7 -31
  22. package/dist/globals/testing.d.ts.map +1 -1
  23. package/dist/globals/testing.js +6 -6
  24. package/dist/globals/types.d.ts +13 -35
  25. package/dist/globals/types.d.ts.map +1 -1
  26. package/dist/globals/types.js +12 -12
  27. package/dist/index.d.ts +0 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +0 -1
  30. package/dist/paradigms/functional.d.ts +5 -8
  31. package/dist/paradigms/functional.d.ts.map +1 -1
  32. package/dist/paradigms/functional.js +4 -4
  33. package/dist/paradigms/imperative.d.ts +8 -61
  34. package/dist/paradigms/imperative.d.ts.map +1 -1
  35. package/dist/paradigms/imperative.js +7 -7
  36. package/dist/paradigms/logic.d.ts +11 -67
  37. package/dist/paradigms/logic.d.ts.map +1 -1
  38. package/dist/paradigms/logic.js +10 -10
  39. package/dist/paradigms/object.d.ts +19 -105
  40. package/dist/paradigms/object.d.ts.map +1 -1
  41. package/dist/paradigms/object.js +24 -15
  42. package/dist/paradigms/typeclasses.d.ts +3 -51
  43. package/dist/paradigms/typeclasses.d.ts.map +1 -1
  44. package/dist/paradigms/typeclasses.js +2 -2
  45. package/dist/visitor/base.d.ts +4 -2
  46. package/dist/visitor/base.d.ts.map +1 -1
  47. package/dist/visitor/expressions.d.ts +34 -31
  48. package/dist/visitor/expressions.d.ts.map +1 -1
  49. package/dist/visitor/expressions.js +11 -2
  50. package/dist/visitor/index.d.ts +160 -164
  51. package/dist/visitor/index.d.ts.map +1 -1
  52. package/dist/visitor/operations.d.ts +25 -26
  53. package/dist/visitor/operations.d.ts.map +1 -1
  54. package/dist/visitor/operations.js +3 -2
  55. package/dist/visitor/patterns.d.ts +18 -19
  56. package/dist/visitor/patterns.d.ts.map +1 -1
  57. package/dist/visitor/patterns.js +4 -2
  58. package/dist/visitor/primitives.d.ts +13 -14
  59. package/dist/visitor/primitives.d.ts.map +1 -1
  60. package/dist/visitor/primitives.js +3 -2
  61. package/dist/visitor/statements.d.ts +49 -50
  62. package/dist/visitor/statements.d.ts.map +1 -1
  63. package/dist/visitor/statements.js +9 -6
  64. package/dist/visitor/testing.d.ts +12 -13
  65. package/dist/visitor/testing.d.ts.map +1 -1
  66. package/dist/visitor/testing.js +4 -2
  67. package/dist/visitor/typeclasses.d.ts +8 -9
  68. package/dist/visitor/typeclasses.d.ts.map +1 -1
  69. package/dist/visitor/typeclasses.js +4 -2
  70. package/dist/visitor/types.d.ts +17 -18
  71. package/dist/visitor/types.d.ts.map +1 -1
  72. package/dist/visitor/types.js +3 -2
  73. package/package.json +2 -11
  74. package/src/globals/expressions.ts +382 -338
  75. package/src/globals/generics.ts +86 -65
  76. package/src/globals/operators.ts +517 -517
  77. package/src/globals/patterns.ts +406 -347
  78. package/src/globals/primitives.ts +169 -169
  79. package/src/globals/statements.ts +746 -768
  80. package/src/globals/testing.ts +131 -131
  81. package/src/globals/types.ts +372 -375
  82. package/src/index.ts +13 -14
  83. package/src/paradigms/functional.ts +129 -128
  84. package/src/paradigms/imperative.ts +227 -227
  85. package/src/paradigms/logic.ts +307 -308
  86. package/src/paradigms/object.ts +362 -356
  87. package/src/paradigms/typeclasses.ts +96 -95
  88. package/src/visitor/base.ts +19 -17
  89. package/src/visitor/expressions.ts +165 -153
  90. package/src/visitor/index.ts +59 -52
  91. package/src/visitor/operations.ts +86 -82
  92. package/src/visitor/patterns.ts +77 -76
  93. package/src/visitor/primitives.ts +40 -36
  94. package/src/visitor/statements.ts +264 -261
  95. package/src/visitor/testing.ts +50 -49
  96. package/src/visitor/typeclasses.ts +24 -23
  97. package/src/visitor/types.ts +76 -75
  98. package/tests/ast.spec.ts +16 -16
  99. package/tsconfig.json +23 -25
  100. package/tsconfig.tsbuildinfo +1 -1
  101. package/dist/globals/runtime.d.ts +0 -64
  102. package/dist/globals/runtime.d.ts.map +0 -1
  103. package/dist/globals/runtime.js +0 -32
  104. package/dist/types.d.ts +0 -4
  105. package/dist/types.d.ts.map +0 -1
  106. package/dist/types.js +0 -1
  107. package/src/globals/runtime.ts +0 -132
@@ -1,6 +1,6 @@
1
1
  import { Visitor } from "../visitor/index.js";
2
2
  import { Expression } from "./expressions.js";
3
- import { ASTNode, SourceLocation } from "./generics.js";
3
+ import { ASTNode, SerializeNode, SourceLocation } from "./generics.js";
4
4
  import { Pattern } from "./patterns.js";
5
5
  import { Sequence } from "./statements.js";
6
6
  export declare class TestGroup extends ASTNode {
@@ -8,11 +8,7 @@ export declare class TestGroup extends ASTNode {
8
8
  group: Sequence;
9
9
  constructor(name: Expression, group: Sequence, loc?: SourceLocation);
10
10
  accept<R>(visitor: Visitor<R>): R;
11
- toJSON(): {
12
- type: string;
13
- name: Expression;
14
- group: Sequence;
15
- };
11
+ toJSON(): SerializeNode;
16
12
  }
17
13
  export declare class Test extends ASTNode {
18
14
  name: Expression;
@@ -20,12 +16,7 @@ export declare class Test extends ASTNode {
20
16
  args: Pattern[];
21
17
  constructor(name: Expression, body: Sequence, args?: Pattern[], loc?: SourceLocation);
22
18
  accept<R>(visitor: Visitor<R>): R;
23
- toJSON(): {
24
- type: string;
25
- name: Expression;
26
- body: Sequence;
27
- args: Pattern[];
28
- };
19
+ toJSON(): SerializeNode;
29
20
  }
30
21
  export type Assertion = Truth | Equality | Failure;
31
22
  export declare class Assert extends ASTNode {
@@ -33,41 +24,26 @@ export declare class Assert extends ASTNode {
33
24
  body: Assertion;
34
25
  constructor(negated: Expression, body: Assertion, loc?: SourceLocation);
35
26
  accept<R>(visitor: Visitor<R>): R;
36
- toJSON(): {
37
- type: string;
38
- negated: Expression;
39
- body: Assertion;
40
- };
27
+ toJSON(): SerializeNode;
41
28
  }
42
29
  export declare class Truth extends ASTNode {
43
30
  body: Expression;
44
31
  constructor(body: Expression, loc?: SourceLocation);
45
32
  accept<R>(visitor: Visitor<R>): R;
46
- toJSON(): {
47
- type: string;
48
- body: Expression;
49
- };
33
+ toJSON(): SerializeNode;
50
34
  }
51
35
  export declare class Equality extends ASTNode {
52
36
  expected: Expression;
53
37
  value: Expression;
54
38
  constructor(expected: Expression, value: Expression, loc?: SourceLocation);
55
39
  accept<R>(visitor: Visitor<R>): R;
56
- toJSON(): {
57
- type: string;
58
- expected: Expression;
59
- value: Expression;
60
- };
40
+ toJSON(): SerializeNode;
61
41
  }
62
42
  export declare class Failure extends ASTNode {
63
43
  func: Expression;
64
44
  message: Expression;
65
45
  constructor(func: Expression, message: Expression, loc?: SourceLocation);
66
46
  accept<R>(visitor: Visitor<R>): R;
67
- toJSON(): {
68
- type: string;
69
- func: Expression;
70
- message: Expression;
71
- };
47
+ toJSON(): SerializeNode;
72
48
  }
73
49
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/globals/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,SAAU,SAAQ,OAAO;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;gBACX,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,cAAc;IAMnE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;;;;;CAOP;AACD,qBAAa,IAAK,SAAQ,OAAO;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;gBACX,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAO,EAAO,EAAE,GAAG,CAAC,EAAE,cAAc;IAOxF,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;;;;;;CAQP;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,qBAAa,MAAO,SAAQ,OAAO;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;gBACX,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,cAAc;IAMtE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;;;;;CAOP;AAED,qBAAa,KAAM,SAAQ,OAAO;IACzB,IAAI,EAAE,UAAU,CAAC;gBACZ,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,cAAc;IAKlD,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;;;;CAMP;AACD,qBAAa,QAAS,SAAQ,OAAO;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;gBACb,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,cAAc;IAMzE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;;;;;CAOP;AAED,qBAAa,OAAQ,SAAQ,OAAO;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;gBACf,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,cAAc;IAMvE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;;;;;CAOP"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/globals/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,SAAU,SAAQ,OAAO;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;gBACX,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,cAAc;IAMnE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAOxB;AACD,qBAAa,IAAK,SAAQ,OAAO;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;gBACX,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAO,EAAO,EAAE,GAAG,CAAC,EAAE,cAAc;IAOxF,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAQxB;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,qBAAa,MAAO,SAAQ,OAAO;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;gBACX,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,cAAc;IAMtE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAOxB;AAED,qBAAa,KAAM,SAAQ,OAAO;IACzB,IAAI,EAAE,UAAU,CAAC;gBACZ,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,cAAc;IAKlD,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAMxB;AACD,qBAAa,QAAS,SAAQ,OAAO;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;gBACb,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,cAAc;IAMzE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAOxB;AAED,qBAAa,OAAQ,SAAQ,OAAO;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;gBACf,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,cAAc;IAMvE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAOxB"}
@@ -8,7 +8,7 @@ export class TestGroup extends ASTNode {
8
8
  this.group = group;
9
9
  }
10
10
  accept(visitor) {
11
- return visitor.visitTestGroup(this);
11
+ return this.dispatchVisit(visitor, visitor.visitTestGroup);
12
12
  }
13
13
  toJSON() {
14
14
  return {
@@ -29,7 +29,7 @@ export class Test extends ASTNode {
29
29
  this.args = args;
30
30
  }
31
31
  accept(visitor) {
32
- return visitor.visitTest(this);
32
+ return this.dispatchVisit(visitor, visitor.visitTest);
33
33
  }
34
34
  toJSON() {
35
35
  return {
@@ -49,7 +49,7 @@ export class Assert extends ASTNode {
49
49
  this.body = body;
50
50
  }
51
51
  accept(visitor) {
52
- return visitor.visitAssert(this);
52
+ return this.dispatchVisit(visitor, visitor.visitAssert);
53
53
  }
54
54
  toJSON() {
55
55
  return {
@@ -66,7 +66,7 @@ export class Truth extends ASTNode {
66
66
  this.body = body;
67
67
  }
68
68
  accept(visitor) {
69
- return visitor.visitTruth(this);
69
+ return this.dispatchVisit(visitor, visitor.visitTruth);
70
70
  }
71
71
  toJSON() {
72
72
  return {
@@ -84,7 +84,7 @@ export class Equality extends ASTNode {
84
84
  this.value = value;
85
85
  }
86
86
  accept(visitor) {
87
- return visitor.visitEquality(this);
87
+ return this.dispatchVisit(visitor, visitor.visitEquality);
88
88
  }
89
89
  toJSON() {
90
90
  return {
@@ -103,7 +103,7 @@ export class Failure extends ASTNode {
103
103
  this.message = message;
104
104
  }
105
105
  accept(visitor) {
106
- return visitor.visitFailure(this);
106
+ return this.dispatchVisit(visitor, visitor.visitFailure);
107
107
  }
108
108
  toJSON() {
109
109
  return {
@@ -1,6 +1,6 @@
1
1
  import { Visitor } from "../visitor/index.js";
2
2
  import { Expression } from "./expressions.js";
3
- import { ASTNode, SourceLocation } from "./generics.js";
3
+ import { ASTNode, SerializeNode, SourceLocation } from "./generics.js";
4
4
  import { SymbolPrimitive } from "./primitives.js";
5
5
  export type Type = SimpleType | TypeVar | ListType | TypeApplication | TupleType | ParameterizedType | ConstrainedType;
6
6
  /**
@@ -15,7 +15,7 @@ export declare class SimpleType extends ASTNode {
15
15
  constructor(value: string, constraints: Constraint[], loc?: SourceLocation);
16
16
  accept<R>(visitor: Visitor<R>): R;
17
17
  toString(): string;
18
- toJSON(): any;
18
+ toJSON(): SerializeNode;
19
19
  }
20
20
  /**
21
21
  * Represents a type variable (e.g., 'a), used in polymorphic types.
@@ -29,11 +29,7 @@ export declare class TypeVar extends ASTNode {
29
29
  constructor(value: string, constraints: Constraint[], loc?: SourceLocation);
30
30
  accept<R>(visitor: Visitor<R>): R;
31
31
  toString(): string;
32
- toJSON(): {
33
- type: string;
34
- value: string;
35
- constraints: any[];
36
- };
32
+ toJSON(): SerializeNode;
37
33
  }
38
34
  /**
39
35
  * Represents the application of a type constructor to arguments (e.g., List Int).
@@ -47,7 +43,7 @@ export declare class TypeApplication extends ASTNode {
47
43
  constructor(functionType: Type, argument: Type, loc?: SourceLocation);
48
44
  accept<R>(visitor: Visitor<R>): R;
49
45
  toString(): string;
50
- toJSON(): any;
46
+ toJSON(): SerializeNode;
51
47
  }
52
48
  /**
53
49
  * Represents a list type (e.g., [Int]).
@@ -61,7 +57,7 @@ export declare class ListType extends ASTNode {
61
57
  constructor(values: Type, constraints: Constraint[], loc?: SourceLocation);
62
58
  accept<R>(visitor: Visitor<R>): R;
63
59
  toString(): string;
64
- toJSON(): any;
60
+ toJSON(): SerializeNode;
65
61
  }
66
62
  /**
67
63
  * Represents a tuple type (e.g., (Int, Bool)).
@@ -75,7 +71,7 @@ export declare class TupleType extends ASTNode {
75
71
  constructor(values: Type[], constraints: Constraint[], loc?: SourceLocation);
76
72
  accept<R>(visitor: Visitor<R>): R;
77
73
  toString(): string;
78
- toJSON(): any;
74
+ toJSON(): SerializeNode;
79
75
  }
80
76
  /**
81
77
  * Represents a type constraint or class constraint (e.g., Eq a).
@@ -91,7 +87,7 @@ export declare class Constraint extends ASTNode {
91
87
  name: string;
92
88
  constructor(name: string, parameters: Type[], loc?: SourceLocation);
93
89
  accept<R>(visitor: Visitor<R>): R;
94
- toJSON(): any;
90
+ toJSON(): SerializeNode;
95
91
  }
96
92
  /**
97
93
  * Represents a type that accepts type parameters.
@@ -106,8 +102,8 @@ export declare class ParameterizedType extends ASTNode {
106
102
  inputs: Type[];
107
103
  constructor(inputs: Type[], returnType: Type, constraints: Constraint[], loc?: SourceLocation);
108
104
  accept<R>(visitor: Visitor<R>): R;
109
- toString(): any;
110
- toJSON(): any;
105
+ toString(): string;
106
+ toJSON(): SerializeNode;
111
107
  }
112
108
  /**
113
109
  * Represents a type qualified by a context of constraints.
@@ -118,10 +114,7 @@ export declare class ConstrainedType extends ASTNode {
118
114
  constraints: Constraint[];
119
115
  constructor(constraints: Constraint[], loc?: SourceLocation);
120
116
  accept<R>(visitor: Visitor<R>): R;
121
- toJSON(): {
122
- type: string;
123
- constraints: any[];
124
- };
117
+ toJSON(): SerializeNode;
125
118
  }
126
119
  /**
127
120
  * Represents a type alias definition, giving a new name to an existing type.
@@ -139,15 +132,7 @@ export declare class TypeAlias extends ASTNode {
139
132
  identifier: SymbolPrimitive;
140
133
  constructor(identifier: SymbolPrimitive, variables: string[], value: Type, loc?: SourceLocation);
141
134
  accept<R>(visitor: Visitor<R>): R;
142
- toJSON(): {
143
- type: string;
144
- identifier: {
145
- type: import("./primitives.js").YukigoPrimitive;
146
- value: string;
147
- };
148
- variables: string[];
149
- value: any;
150
- };
135
+ toJSON(): SerializeNode;
151
136
  }
152
137
  /**
153
138
  * Represents an explicit type signature declaration for a function or variable.
@@ -163,14 +148,7 @@ export declare class TypeSignature extends ASTNode {
163
148
  identifier: SymbolPrimitive;
164
149
  constructor(identifier: SymbolPrimitive, body: Type, loc?: SourceLocation);
165
150
  accept<R>(visitor: Visitor<R>): R;
166
- toJSON(): {
167
- type: string;
168
- identifier: {
169
- type: import("./primitives.js").YukigoPrimitive;
170
- value: string;
171
- };
172
- body: any;
173
- };
151
+ toJSON(): SerializeNode;
174
152
  }
175
153
  /**
176
154
  * Represents an explicit type casting or annotation expression.
@@ -183,6 +161,6 @@ export declare class TypeCast extends ASTNode {
183
161
  expression: Expression;
184
162
  constructor(expression: Expression, body: Type, loc?: SourceLocation);
185
163
  accept<R>(visitor: Visitor<R>): R;
186
- toJSON(): any;
164
+ toJSON(): SerializeNode;
187
165
  }
188
166
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/globals/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/globals/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,IAAI,GACZ,UAAU,GACV,OAAO,GACP,QAAQ,GACR,eAAe,GACf,SAAS,GACT,iBAAiB,GACjB,eAAe,CAAC;AAEpB;;;GAGG;AACH,qBAAa,UAAW,SAAQ,OAAO;IACrC,cAAc;IACP,WAAW,EAAE,UAAU,EAAE,CAAC;IACjC,cAAc;IACP,KAAK,EAAE,MAAM,CAAC;gBAET,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,cAAc;IAK1E,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,aAAa;CAOxB;AACD;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,OAAO;IAClC,cAAc;IACP,WAAW,EAAE,UAAU,EAAE,CAAC;IACjC,cAAc;IACP,KAAK,EAAE,MAAM,CAAC;gBAET,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,cAAc;IAK1E,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,aAAa;CAOxB;AACD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,cAAc;IACP,QAAQ,EAAE,IAAI,CAAC;IACtB,cAAc;IACP,YAAY,EAAE,IAAI,CAAC;gBAEd,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,cAAc;IAKpE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,QAAQ,IAAI,MAAM;IAWlB,MAAM,IAAI,aAAa;CAOxB;AACD;;;GAGG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC,cAAc;IACP,WAAW,EAAE,UAAU,EAAE,CAAC;IACjC,cAAc;IACP,MAAM,EAAE,IAAI,CAAC;gBAER,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,cAAc;IAMzE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,aAAa;CAOxB;AACD;;;GAGG;AACH,qBAAa,SAAU,SAAQ,OAAO;IACpC,cAAc;IACP,WAAW,EAAE,UAAU,EAAE,CAAC;IACjC,cAAc;IACP,MAAM,EAAE,IAAI,EAAE,CAAC;gBAEV,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,cAAc;IAK3E,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,aAAa;CAOxB;AAED;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,OAAO;IACrC,cAAc;IACP,UAAU,EAAE,IAAI,EAAE,CAAC;IAC1B,cAAc;IACP,IAAI,EAAE,MAAM,CAAC;gBAER,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,cAAc;IAKlE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAOxB;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,OAAO;IAC5C,cAAc;IACP,WAAW,EAAE,UAAU,EAAE,CAAC;IACjC,cAAc;IACP,UAAU,EAAE,IAAI,CAAC;IACxB,cAAc;IACP,MAAM,EAAE,IAAI,EAAE,CAAC;gBAGpB,MAAM,EAAE,IAAI,EAAE,EACd,UAAU,EAAE,IAAI,EAChB,WAAW,EAAE,UAAU,EAAE,EACzB,GAAG,CAAC,EAAE,cAAc;IAOtB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,QAAQ,IAAI,MAAM;IAqBlB,MAAM,IAAI,aAAa;CAQxB;AACD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,OAAO;IAC1C,cAAc;IACP,WAAW,EAAE,UAAU,EAAE,CAAC;gBAErB,WAAW,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,EAAE,cAAc;IAI3D,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAMxB;AAED;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,OAAO;IACpC,cAAc;IACP,KAAK,EAAE,IAAI,CAAC;IACnB,cAAc;IACP,SAAS,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc;IACP,UAAU,EAAE,eAAe,CAAC;gBAGjC,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,IAAI,EACX,GAAG,CAAC,EAAE,cAAc;IAOtB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAQxB;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,OAAO;IACxC,cAAc;IACP,IAAI,EAAE,IAAI,CAAC;IAClB,cAAc;IACP,UAAU,EAAE,eAAe,CAAC;gBAEvB,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,cAAc;IAKzE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAOxB;AACD;;;GAGG;AACH,qBAAa,QAAS,SAAQ,OAAO;IACnC,cAAc;IACP,IAAI,EAAE,IAAI,CAAC;IAClB,cAAc;IACP,UAAU,EAAE,UAAU,CAAC;gBAElB,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,cAAc;IAKpE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAOxB"}
@@ -1,4 +1,4 @@
1
- import { ASTNode, } from "./generics.js";
1
+ import { ASTNode } from "./generics.js";
2
2
  /**
3
3
  * Represents a basic named type (e.g., Int, Bool).
4
4
  * @category Types
@@ -14,7 +14,7 @@ export class SimpleType extends ASTNode {
14
14
  this.constraints = constraints;
15
15
  }
16
16
  accept(visitor) {
17
- return visitor.visitSimpleType?.(this);
17
+ return this.dispatchVisit(visitor, visitor.visitSimpleType);
18
18
  }
19
19
  toString() {
20
20
  return this.value;
@@ -42,7 +42,7 @@ export class TypeVar extends ASTNode {
42
42
  this.constraints = constraints;
43
43
  }
44
44
  accept(visitor) {
45
- return visitor.visitTypeVar?.(this);
45
+ return this.dispatchVisit(visitor, visitor.visitTypeVar);
46
46
  }
47
47
  toString() {
48
48
  return this.value;
@@ -70,7 +70,7 @@ export class TypeApplication extends ASTNode {
70
70
  this.argument = argument;
71
71
  }
72
72
  accept(visitor) {
73
- return visitor.visitTypeApplication?.(this);
73
+ return this.dispatchVisit(visitor, visitor.visitTypeApplication);
74
74
  }
75
75
  toString() {
76
76
  const func = this.functionType.toString();
@@ -104,7 +104,7 @@ export class ListType extends ASTNode {
104
104
  this.constraints = constraints;
105
105
  }
106
106
  accept(visitor) {
107
- return visitor.visitListType?.(this);
107
+ return this.dispatchVisit(visitor, visitor.visitListType);
108
108
  }
109
109
  toString() {
110
110
  return `[${this.values.toString()}]`;
@@ -132,7 +132,7 @@ export class TupleType extends ASTNode {
132
132
  this.constraints = constraints;
133
133
  }
134
134
  accept(visitor) {
135
- return visitor.visitTupleType?.(this);
135
+ return this.dispatchVisit(visitor, visitor.visitTupleType);
136
136
  }
137
137
  toString() {
138
138
  return `(${this.values.map((t) => t.toString()).join(", ")})`;
@@ -163,7 +163,7 @@ export class Constraint extends ASTNode {
163
163
  this.parameters = parameters;
164
164
  }
165
165
  accept(visitor) {
166
- return visitor.visitConstraint?.(this);
166
+ return this.dispatchVisit(visitor, visitor.visitConstraint);
167
167
  }
168
168
  toJSON() {
169
169
  return {
@@ -191,7 +191,7 @@ export class ParameterizedType extends ASTNode {
191
191
  this.constraints = constraints;
192
192
  }
193
193
  accept(visitor) {
194
- return visitor.visitParameterizedType?.(this);
194
+ return this.dispatchVisit(visitor, visitor.visitParameterizedType);
195
195
  }
196
196
  toString() {
197
197
  const inputs = this.inputs.map((t) => {
@@ -233,7 +233,7 @@ export class ConstrainedType extends ASTNode {
233
233
  this.constraints = constraints;
234
234
  }
235
235
  accept(visitor) {
236
- return visitor.visitConstrainedType?.(this);
236
+ return this.dispatchVisit(visitor, visitor.visitConstrainedType);
237
237
  }
238
238
  toJSON() {
239
239
  return {
@@ -263,7 +263,7 @@ export class TypeAlias extends ASTNode {
263
263
  this.value = value;
264
264
  }
265
265
  accept(visitor) {
266
- return visitor.visitTypeAlias?.(this);
266
+ return this.dispatchVisit(visitor, visitor.visitTypeAlias);
267
267
  }
268
268
  toJSON() {
269
269
  return {
@@ -292,7 +292,7 @@ export class TypeSignature extends ASTNode {
292
292
  this.body = body;
293
293
  }
294
294
  accept(visitor) {
295
- return visitor.visitTypeSignature?.(this);
295
+ return this.dispatchVisit(visitor, visitor.visitTypeSignature);
296
296
  }
297
297
  toJSON() {
298
298
  return {
@@ -317,7 +317,7 @@ export class TypeCast extends ASTNode {
317
317
  this.body = body;
318
318
  }
319
319
  accept(visitor) {
320
- return visitor.visitTypeCast?.(this);
320
+ return this.dispatchVisit(visitor, visitor.visitTypeCast);
321
321
  }
322
322
  toJSON() {
323
323
  return {
package/dist/index.d.ts CHANGED
@@ -5,7 +5,6 @@ export * from "./globals/primitives.js";
5
5
  export * from "./globals/operators.js";
6
6
  export * from "./globals/patterns.js";
7
7
  export * from "./globals/types.js";
8
- export * from "./globals/runtime.js";
9
8
  export * from "./globals/testing.js";
10
9
  export * from "./paradigms/functional.js";
11
10
  export * from "./paradigms/object.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -5,7 +5,6 @@ export * from "./globals/primitives.js";
5
5
  export * from "./globals/operators.js";
6
6
  export * from "./globals/patterns.js";
7
7
  export * from "./globals/types.js";
8
- export * from "./globals/runtime.js";
9
8
  export * from "./globals/testing.js";
10
9
  export * from "./paradigms/functional.js";
11
10
  export * from "./paradigms/object.js";
@@ -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 { Visitor } from "../visitor/index.js";
5
5
  /**
@@ -13,7 +13,7 @@ export declare class CompositionExpression extends ASTNode {
13
13
  left: Expression;
14
14
  constructor(left: Expression, right: Expression, loc?: SourceLocation);
15
15
  accept<R>(visitor: Visitor<R>): R;
16
- toJSON(): any;
16
+ toJSON(): SerializeNode;
17
17
  }
18
18
  /**
19
19
  * Represents an anonymous function or lambda abstraction.
@@ -29,7 +29,7 @@ export declare class Lambda extends ASTNode {
29
29
  parameters: Pattern[];
30
30
  constructor(parameters: Pattern[], body: Expression, loc?: SourceLocation);
31
31
  accept<R>(visitor: Visitor<R>): R;
32
- toJSON(): any;
32
+ toJSON(): SerializeNode;
33
33
  }
34
34
  /**
35
35
  * Represents a yield statement, often used in generators or coroutines.
@@ -40,10 +40,7 @@ export declare class Yield extends ASTNode {
40
40
  expression: Expression;
41
41
  constructor(expression: Expression, loc?: SourceLocation);
42
42
  accept<R>(visitor: Visitor<R>): R;
43
- toJSON(): {
44
- type: string;
45
- expression: any;
46
- };
43
+ toJSON(): SerializeNode;
47
44
  }
48
45
  /**
49
46
  * Represents the application of a function to an argument.
@@ -59,6 +56,6 @@ export declare class Application extends ASTNode {
59
56
  functionExpr: Expression;
60
57
  constructor(functionExpr: Expression, parameter: Expression, loc?: SourceLocation);
61
58
  accept<R>(visitor: Visitor<R>): R;
62
- toJSON(): any;
59
+ toJSON(): SerializeNode;
63
60
  }
64
61
  //# sourceMappingURL=functional.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"functional.d.ts","sourceRoot":"","sources":["../../src/paradigms/functional.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACL,OAAO,EACP,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,cAAc;IACP,KAAK,EAAE,UAAU,CAAC;IACzB,cAAc;IACP,IAAI,EAAE,UAAU,CAAC;gBAGtB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,EACjB,GAAG,CAAC,EAAE,cAAc;IAMf,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;CAOd;AAED;;;;;;GAMG;AACH,qBAAa,MAAO,SAAQ,OAAO;IACjC,cAAc;IACP,IAAI,EAAE,UAAU,CAAC;IACxB,cAAc;IACP,UAAU,EAAE,OAAO,EAAE,CAAC;gBAG3B,UAAU,EAAE,OAAO,EAAE,EACrB,IAAI,EAAE,UAAU,EAChB,GAAG,CAAC,EAAE,cAAc;IAMf,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;CAOd;AACD;;;GAGG;AACH,qBAAa,KAAM,SAAQ,OAAO;IAChC,cAAc;IACP,UAAU,EAAE,UAAU,CAAC;gBAElB,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,cAAc;IAIjD,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;;;;CAMd;AAED;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC,cAAc;IACP,SAAS,EAAE,UAAU,CAAC;IAC7B,cAAc;IACP,YAAY,EAAE,UAAU,CAAC;gBAG9B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,UAAU,EACrB,GAAG,CAAC,EAAE,cAAc;IAMf,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM;CAOd"}
1
+ {"version":3,"file":"functional.d.ts","sourceRoot":"","sources":["../../src/paradigms/functional.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACL,OAAO,EACP,aAAa,EACb,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,cAAc;IACP,KAAK,EAAE,UAAU,CAAC;IACzB,cAAc;IACP,IAAI,EAAE,UAAU,CAAC;gBAGtB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,UAAU,EACjB,GAAG,CAAC,EAAE,cAAc;IAMf,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAO/B;AAED;;;;;;GAMG;AACH,qBAAa,MAAO,SAAQ,OAAO;IACjC,cAAc;IACP,IAAI,EAAE,UAAU,CAAC;IACxB,cAAc;IACP,UAAU,EAAE,OAAO,EAAE,CAAC;gBAG3B,UAAU,EAAE,OAAO,EAAE,EACrB,IAAI,EAAE,UAAU,EAChB,GAAG,CAAC,EAAE,cAAc;IAMf,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAO/B;AACD;;;GAGG;AACH,qBAAa,KAAM,SAAQ,OAAO;IAChC,cAAc;IACP,UAAU,EAAE,UAAU,CAAC;gBAElB,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,cAAc;IAIjD,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAM/B;AAED;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC,cAAc;IACP,SAAS,EAAE,UAAU,CAAC;IAC7B,cAAc;IACP,YAAY,EAAE,UAAU,CAAC;gBAG9B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,UAAU,EACrB,GAAG,CAAC,EAAE,cAAc;IAMf,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAGjC,MAAM,IAAI,aAAa;CAO/B"}
@@ -14,7 +14,7 @@ export class CompositionExpression extends ASTNode {
14
14
  this.right = right;
15
15
  }
16
16
  accept(visitor) {
17
- return visitor.visitCompositionExpression?.(this);
17
+ return this.dispatchVisit(visitor, visitor.visitCompositionExpression);
18
18
  }
19
19
  toJSON() {
20
20
  return {
@@ -42,7 +42,7 @@ export class Lambda extends ASTNode {
42
42
  this.body = body;
43
43
  }
44
44
  accept(visitor) {
45
- return visitor.visitLambda?.(this);
45
+ return this.dispatchVisit(visitor, visitor.visitLambda);
46
46
  }
47
47
  toJSON() {
48
48
  return {
@@ -64,7 +64,7 @@ export class Yield extends ASTNode {
64
64
  this.expression = expression;
65
65
  }
66
66
  accept(visitor) {
67
- return visitor.visitYield?.(this);
67
+ return this.dispatchVisit(visitor, visitor.visitYield);
68
68
  }
69
69
  toJSON() {
70
70
  return {
@@ -91,7 +91,7 @@ export class Application extends ASTNode {
91
91
  this.parameter = parameter;
92
92
  }
93
93
  accept(visitor) {
94
- return visitor.visitApplication?.(this);
94
+ return this.dispatchVisit(visitor, visitor.visitApplication);
95
95
  }
96
96
  toJSON() {
97
97
  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 { SymbolPrimitive } from "../globals/primitives.js";
4
4
  import { Sequence, Equation, Variable } from "../globals/statements.js";
5
5
  import { Visitor } from "../visitor/index.js";
@@ -14,14 +14,7 @@ export declare class EntryPoint extends ASTNode {
14
14
  identifier: SymbolPrimitive;
15
15
  constructor(identifier: SymbolPrimitive, expression: Sequence, loc?: SourceLocation);
16
16
  accept<R>(visitor: Visitor<R>): R;
17
- toJSON(): {
18
- type: string;
19
- identifier: {
20
- type: import("../globals/primitives.js").YukigoPrimitive;
21
- value: string;
22
- };
23
- expression: any;
24
- };
17
+ toJSON(): SerializeNode;
25
18
  }
26
19
  /**
27
20
  * Represents a procedure definition, typically a function without a return value.
@@ -34,29 +27,7 @@ export declare class Procedure extends ASTNode {
34
27
  identifier: SymbolPrimitive;
35
28
  constructor(identifier: SymbolPrimitive, equations: Equation[], loc?: SourceLocation);
36
29
  accept<R>(visitor: Visitor<R>): R;
37
- toJSON(): {
38
- type: string;
39
- identifier: {
40
- type: import("../globals/primitives.js").YukigoPrimitive;
41
- value: string;
42
- };
43
- equations: {
44
- type: string;
45
- patterns: any[];
46
- body: {
47
- type: string;
48
- sequence: any;
49
- } | {
50
- type: string;
51
- condition: any;
52
- body: any;
53
- }[];
54
- return: {
55
- type: string;
56
- body: any;
57
- };
58
- }[];
59
- };
30
+ toJSON(): SerializeNode;
60
31
  }
61
32
  /**
62
33
  * Represents a definition of a structured data type (struct).
@@ -69,7 +40,7 @@ export declare class Structure extends ASTNode {
69
40
  identifier: SymbolPrimitive;
70
41
  constructor(identifier: SymbolPrimitive, elements: (Variable | Structure)[], loc?: SourceLocation);
71
42
  accept<R>(visitor: Visitor<R>): R;
72
- toJSON(): any;
43
+ toJSON(): SerializeNode;
73
44
  }
74
45
  /**
75
46
  * Represents an enumeration type definition.
@@ -82,17 +53,7 @@ export declare class Enumeration extends ASTNode {
82
53
  identifier: SymbolPrimitive;
83
54
  constructor(identifier: SymbolPrimitive, contents: SymbolPrimitive[], loc?: SourceLocation);
84
55
  accept<R>(visitor: Visitor<R>): R;
85
- toJSON(): {
86
- type: string;
87
- identifier: {
88
- type: import("../globals/primitives.js").YukigoPrimitive;
89
- value: string;
90
- };
91
- expressions: {
92
- type: import("../globals/primitives.js").YukigoPrimitive;
93
- value: string;
94
- }[];
95
- };
56
+ toJSON(): SerializeNode;
96
57
  }
97
58
  /**
98
59
  * Represents a while loop control structure.
@@ -108,11 +69,7 @@ export declare class While extends ASTNode {
108
69
  condition: Expression;
109
70
  constructor(condition: Expression, body: Expression, loc?: SourceLocation);
110
71
  accept<R>(visitor: Visitor<R>): R;
111
- toJSON(): {
112
- type: string;
113
- condition: any;
114
- body: any;
115
- };
72
+ toJSON(): SerializeNode;
116
73
  }
117
74
  /**
118
75
  * Represents a repeat-until loop control structure.
@@ -125,11 +82,7 @@ export declare class Repeat extends ASTNode {
125
82
  count: Expression;
126
83
  constructor(count: Expression, body: Expression, loc?: SourceLocation);
127
84
  accept<R>(visitor: Visitor<R>): R;
128
- toJSON(): {
129
- type: string;
130
- count: any;
131
- body: any;
132
- };
85
+ toJSON(): SerializeNode;
133
86
  }
134
87
  /**
135
88
  * Represents a C-style or range-based for loop.
@@ -146,12 +99,6 @@ export declare class ForLoop extends ASTNode {
146
99
  initialization: Expression;
147
100
  constructor(initialization: Expression, condition: Expression, update: Expression, body: Expression, loc?: SourceLocation);
148
101
  accept<R>(visitor: Visitor<R>): R;
149
- toJSON(): {
150
- type: string;
151
- initialization: any;
152
- condition: any;
153
- update: any;
154
- body: any;
155
- };
102
+ toJSON(): SerializeNode;
156
103
  }
157
104
  //# sourceMappingURL=imperative.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imperative.d.ts","sourceRoot":"","sources":["../../src/paradigms/imperative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imperative.d.ts","sourceRoot":"","sources":["../../src/paradigms/imperative.ts"],"names":[],"mappings":"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"}