yukigo-wollok-parser 0.1.3 → 0.2.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 (81) hide show
  1. package/.mocharc.json +3 -3
  2. package/CHANGELOG.md +49 -15
  3. package/dist/index.d.ts +6 -0
  4. package/dist/index.js +126 -12
  5. package/dist/index.js.map +1 -1
  6. package/dist/transformer.d.ts +4 -0
  7. package/dist/transformer.js +78 -14
  8. package/dist/transformer.js.map +1 -1
  9. package/dist/utils.d.ts +27 -0
  10. package/dist/utils.js +198 -0
  11. package/dist/utils.js.map +1 -0
  12. package/dist/wollok/constants.d.ts +10 -0
  13. package/dist/wollok/constants.js +9 -0
  14. package/dist/wollok/constants.js.map +1 -0
  15. package/dist/wollok/extensions.d.ts +3 -0
  16. package/dist/wollok/extensions.js +3 -0
  17. package/dist/wollok/extensions.js.map +1 -0
  18. package/dist/wollok/game.d.ts +1 -0
  19. package/dist/wollok/game.js +956 -0
  20. package/dist/wollok/game.js.map +1 -0
  21. package/dist/wollok/helpers.d.ts +2 -0
  22. package/dist/wollok/helpers.js +3 -0
  23. package/dist/wollok/helpers.js.map +1 -0
  24. package/dist/wollok/interpreter/runtimeModel.d.ts +39 -0
  25. package/dist/wollok/interpreter/runtimeModel.js +10 -0
  26. package/dist/wollok/interpreter/runtimeModel.js.map +1 -0
  27. package/dist/wollok/lang.d.ts +1 -0
  28. package/dist/wollok/lang.js +3511 -0
  29. package/dist/wollok/lang.js.map +1 -0
  30. package/dist/wollok/lib.d.ts +1 -0
  31. package/dist/wollok/lib.js +285 -0
  32. package/dist/wollok/lib.js.map +1 -0
  33. package/dist/wollok/mirror.d.ts +1 -0
  34. package/dist/wollok/mirror.js +47 -0
  35. package/dist/wollok/mirror.js.map +1 -0
  36. package/dist/wollok/model.d.ts +9 -0
  37. package/dist/wollok/model.js +8 -0
  38. package/dist/wollok/model.js.map +1 -0
  39. package/dist/wollok/natives/game.d.ts +3 -0
  40. package/dist/wollok/natives/game.js +137 -0
  41. package/dist/wollok/natives/game.js.map +1 -0
  42. package/dist/wollok/natives/index.d.ts +7 -0
  43. package/dist/wollok/natives/index.js +367 -0
  44. package/dist/wollok/natives/index.js.map +1 -0
  45. package/dist/wollok/natives/lang.d.ts +3 -0
  46. package/dist/wollok/natives/lang.js +784 -0
  47. package/dist/wollok/natives/lang.js.map +1 -0
  48. package/dist/wollok/natives/lib.d.ts +3 -0
  49. package/dist/wollok/natives/lib.js +24 -0
  50. package/dist/wollok/natives/lib.js.map +1 -0
  51. package/dist/wollok/natives/mirror.d.ts +3 -0
  52. package/dist/wollok/natives/mirror.js +24 -0
  53. package/dist/wollok/natives/mirror.js.map +1 -0
  54. package/package.json +3 -12
  55. package/src/index.ts +227 -49
  56. package/src/transformer.ts +552 -449
  57. package/src/utils.ts +269 -0
  58. package/src/wollok/constants.ts +8 -0
  59. package/src/wollok/extensions.ts +5 -0
  60. package/src/wollok/game.ts +955 -0
  61. package/src/wollok/helpers.ts +2 -0
  62. package/src/wollok/interpreter/runtimeModel.ts +46 -0
  63. package/src/wollok/lang.ts +3510 -0
  64. package/src/wollok/lib.ts +284 -0
  65. package/src/wollok/mirror.ts +46 -0
  66. package/src/wollok/model.ts +13 -0
  67. package/src/wollok/natives/game.ts +165 -0
  68. package/src/wollok/natives/index.ts +435 -0
  69. package/src/wollok/natives/lang.ts +1013 -0
  70. package/src/wollok/natives/lib.ts +36 -0
  71. package/src/wollok/natives/mirror.ts +33 -0
  72. package/src/wollok/natives/shims.d.ts +82 -0
  73. package/tests/operations.spec.ts +158 -154
  74. package/tests/transformer.spec.ts +404 -377
  75. package/tsconfig.json +25 -24
  76. package/dist/src/index.d.ts +0 -7
  77. package/dist/src/index.js +0 -39
  78. package/dist/src/index.js.map +0 -1
  79. package/dist/src/transformer.d.ts +0 -28
  80. package/dist/src/transformer.js +0 -296
  81. package/dist/src/transformer.js.map +0 -1
package/.mocharc.json CHANGED
@@ -1,4 +1,4 @@
1
- {
2
- "extension": ["ts"],
3
- "spec": "tests/**/*.spec.ts"
1
+ {
2
+ "extension": ["ts"],
3
+ "spec": "tests/**/*.spec.ts"
4
4
  }
package/CHANGELOG.md CHANGED
@@ -1,36 +1,70 @@
1
- ## 0.1.3 (2026-05-01)
1
+ ## 0.2.2 (2026-08-04)
2
2
 
3
3
  ### 🧱 Updated Dependencies
4
4
 
5
- - Updated yukigo-ast to 0.2.1
5
+ - Updated yukigo-ast to 0.3.2
6
+ - Updated yukigo to 0.3.2
6
7
 
7
- ## 0.1.2 (2026-04-11)
8
+ ## 0.2.1 (2026-08-01)
8
9
 
9
10
  ### 🧱 Updated Dependencies
10
11
 
11
- - Updated yukigo-ast to 0.2.0
12
+ - Updated yukigo-ast to 0.3.1
13
+ - Updated yukigo to 0.3.1
12
14
 
13
- ## 0.1.0 (2025-12-09)
15
+ ## 0.2.0 (2026-08-01)
14
16
 
15
17
  ### 🚀 Features
16
18
 
17
- - **yukigo:** Nx Release added ([0bee88f](https://github.com/miyukiproject/yukigo/commit/0bee88f))
18
- - **yukigo-wollok-parser:** Schmol refactor to visitSend ([2e0e20f](https://github.com/miyukiproject/yukigo/commit/2e0e20f))
19
- - **yukigo-wollok-parser:** RangeExpression & Collections ([85c7c2f](https://github.com/miyukiproject/yukigo/commit/85c7c2f))
20
- - **yukigo-wollok-parser:** Added missing operations ([421df52](https://github.com/miyukiproject/yukigo/commit/421df52))
21
- - **yukigo-wollok-parser:** Added support for more nodes. Missing some operations ([847b0c2](https://github.com/miyukiproject/yukigo/commit/847b0c2))
22
- - **yukigo-wollok-parser:** Return methods & ArithmeticBinaryOperations ([7fc4cf5](https://github.com/miyukiproject/yukigo/commit/7fc4cf5))
23
- - **yukigo-wollok-parser:** Initial parser using transformation strategy ([d6a563b](https://github.com/miyukiproject/yukigo/commit/d6a563b))
19
+ - Wollok native methods support ([8886fd0](https://github.com/miyukiproject/yukigo/commit/8886fd0))
24
20
 
25
21
  ### 🩹 Fixes
26
22
 
27
- - **general:** Remove build step from tests command ([9d6e02f](https://github.com/miyukiproject/yukigo/commit/9d6e02f))
28
- - **yukigo-wollok-parser:** Small skill issue in a test ([71ce305](https://github.com/miyukiproject/yukigo/commit/71ce305))
23
+ - **yukigo:** zero-arity functions and Wollok bugs ([995dad4](https://github.com/miyukiproject/yukigo/commit/995dad4))
24
+ - **yukigo:** arreglar fallo en throwsException ([a417e7d](https://github.com/miyukiproject/yukigo/commit/a417e7d))
29
25
 
30
26
  ### 🧱 Updated Dependencies
31
27
 
32
- - Updated @yukigo/ast to 0.1.0
28
+ - Updated yukigo-ast to 0.3.0
29
+ - Updated yukigo to 0.3.0
33
30
 
34
31
  ### ❤️ Thank You
35
32
 
33
+ - noiseArch
34
+
35
+ ## 0.1.3 (2026-05-01)
36
+
37
+ ### 🧱 Updated Dependencies
38
+
39
+ - Updated yukigo-ast to 0.2.1
40
+
41
+ ## 0.1.2 (2026-04-11)
42
+
43
+ ### 🧱 Updated Dependencies
44
+
45
+ - Updated yukigo-ast to 0.2.0
46
+
47
+ ## 0.1.0 (2025-12-09)
48
+
49
+ ### 🚀 Features
50
+
51
+ - **yukigo:** Nx Release added ([0bee88f](https://github.com/miyukiproject/yukigo/commit/0bee88f))
52
+ - **yukigo-wollok-parser:** Schmol refactor to visitSend ([2e0e20f](https://github.com/miyukiproject/yukigo/commit/2e0e20f))
53
+ - **yukigo-wollok-parser:** RangeExpression & Collections ([85c7c2f](https://github.com/miyukiproject/yukigo/commit/85c7c2f))
54
+ - **yukigo-wollok-parser:** Added missing operations ([421df52](https://github.com/miyukiproject/yukigo/commit/421df52))
55
+ - **yukigo-wollok-parser:** Added support for more nodes. Missing some operations ([847b0c2](https://github.com/miyukiproject/yukigo/commit/847b0c2))
56
+ - **yukigo-wollok-parser:** Return methods & ArithmeticBinaryOperations ([7fc4cf5](https://github.com/miyukiproject/yukigo/commit/7fc4cf5))
57
+ - **yukigo-wollok-parser:** Initial parser using transformation strategy ([d6a563b](https://github.com/miyukiproject/yukigo/commit/d6a563b))
58
+
59
+ ### 🩹 Fixes
60
+
61
+ - **general:** Remove build step from tests command ([9d6e02f](https://github.com/miyukiproject/yukigo/commit/9d6e02f))
62
+ - **yukigo-wollok-parser:** Small skill issue in a test ([71ce305](https://github.com/miyukiproject/yukigo/commit/71ce305))
63
+
64
+ ### 🧱 Updated Dependencies
65
+
66
+ - Updated @yukigo/ast to 0.1.0
67
+
68
+ ### ❤️ Thank You
69
+
36
70
  - noiseArch
package/dist/index.d.ts CHANGED
@@ -1,7 +1,13 @@
1
1
  import { AST, Expression, YukigoParser } from "yukigo-ast";
2
+ import { YukigoHook } from "../../yukigo/dist/interpreter/components/hooks/YukigoHook.js";
2
3
  export declare class YukigoWollokParser implements YukigoParser {
3
4
  errors: string[];
5
+ private prelude;
4
6
  constructor();
5
7
  parse(code: string): AST;
6
8
  parseExpression(code: string): Expression;
9
+ private handleUnexpectedToken;
7
10
  }
11
+ declare const providers: Map<string, any>;
12
+ declare function createWollokTestConfig(ast: AST): YukigoHook;
13
+ export { providers, createWollokTestConfig };
package/dist/index.js CHANGED
@@ -1,5 +1,12 @@
1
+ import { Function, TestGroup, } from "yukigo-ast";
1
2
  import { parse } from "wollok-ts";
2
3
  import { WollokToYukigoTransformer } from "./transformer.js";
4
+ import { lib } from "./wollok/lib.js";
5
+ import { lang } from "./wollok/lang.js";
6
+ import { buildWollokNativeProviders } from "./utils.js";
7
+ import nativeSpecs, { CorePrimitiveExtensions, } from "./wollok/natives/index.js";
8
+ import { YuBoolean, YuString, } from "../../yukigo/dist/interpreter/primitives/index.js";
9
+ import { StepCommand } from "../../yukigo/dist/interpreter/components/kernel/commands.js";
3
10
  class UnexpectedToken extends Error {
4
11
  constructor(line, column, expectation) {
5
12
  super(`Parse error at line ${line} column ${column}: expected ${expectation}.`);
@@ -7,33 +14,140 @@ class UnexpectedToken extends Error {
7
14
  }
8
15
  export class YukigoWollokParser {
9
16
  errors = [];
17
+ prelude;
10
18
  constructor() {
19
+ const preludeParseRes = parse.File("example").parse([lang, lib].join("\n"));
20
+ if (preludeParseRes.status === false)
21
+ throw this.handleUnexpectedToken(preludeParseRes);
22
+ const transformer = new WollokToYukigoTransformer();
23
+ this.prelude = transformer.transform(preludeParseRes.value);
11
24
  this.errors = [];
12
25
  }
13
26
  parse(code) {
14
- const parserResult = parse.File("example").parse(code);
15
- if (parserResult.status === false) {
16
- const { index, expected } = parserResult;
17
- const expectation = expected.join(" or ");
18
- throw new UnexpectedToken(index.line, index.column, expectation);
27
+ let cleanedCode = expandFixtures(code)
28
+ .replace(/\r\n/g, "\n")
29
+ .replace(/\r/g, "\n")
30
+ .replace(/#\s*\{\s*\}/g, "[]");
31
+ if (!cleanedCode.includes("describe ") && !cleanedCode.includes("test ")) {
32
+ cleanedCode = cleanedCode.replace(/const\s+(\w+)\s*=\s*new\s+(\w+)\((.*)\)/g, "object $1 inherits $2($3) {}");
19
33
  }
34
+ cleanedCode = cleanedCode.replace(/\.forEach\s*\{([^}]+)\}/g, (match, body) => {
35
+ const flattenedBody = body.replace(/\n/g, " ");
36
+ return `.forEach({${flattenedBody}})`;
37
+ });
38
+ const fullCode = cleanedCode;
39
+ const parserResult = parse.File("example").parse(fullCode);
40
+ if (parserResult.status === false)
41
+ throw this.handleUnexpectedToken(parserResult);
20
42
  const resultAST = parserResult.value;
21
43
  const transformer = new WollokToYukigoTransformer();
22
44
  const yukigoAst = transformer.transform(resultAST);
23
- return yukigoAst;
45
+ return this.prelude.concat(yukigoAst);
24
46
  }
25
47
  parseExpression(code) {
26
48
  const parserResult = parse.Expression.parse(code);
27
- if (parserResult.status === false) {
28
- const { index, expected } = parserResult;
29
- const expectation = expected.join(" or ");
30
- const message = `Parse error at line ${index.line} column ${index.column}: expected ${expectation}.`;
31
- throw new Error(message);
32
- }
49
+ if (parserResult.status === false)
50
+ throw this.handleUnexpectedToken(parserResult);
33
51
  const resultAST = parserResult.value;
34
52
  const transformer = new WollokToYukigoTransformer();
35
53
  const yukigoAst = transformer.transformExpr(resultAST);
36
54
  return yukigoAst;
37
55
  }
56
+ handleUnexpectedToken(result) {
57
+ const { index, expected } = result;
58
+ const expectation = expected.join(" or ");
59
+ return new UnexpectedToken(index.line, index.column, expectation);
60
+ }
61
+ }
62
+ function expandFixtures(code) {
63
+ let index = 0;
64
+ while (true) {
65
+ const descMatch = code.indexOf("describe ", index);
66
+ if (descMatch === -1)
67
+ break;
68
+ const openBrace = code.indexOf("{", descMatch);
69
+ if (openBrace === -1) {
70
+ index = descMatch + 9;
71
+ continue;
72
+ }
73
+ const closeBrace = findMatchingBrace(code, openBrace);
74
+ if (closeBrace === -1) {
75
+ index = descMatch + 9;
76
+ continue;
77
+ }
78
+ const describeContent = code.substring(openBrace + 1, closeBrace);
79
+ const fixtureIndex = describeContent.indexOf("fixture");
80
+ if (fixtureIndex !== -1) {
81
+ const fixtureOpen = describeContent.indexOf("{", fixtureIndex);
82
+ if (fixtureOpen !== -1) {
83
+ const fixtureClose = findMatchingBrace(describeContent, fixtureOpen);
84
+ if (fixtureClose !== -1) {
85
+ const fixtureBody = describeContent.substring(fixtureOpen + 1, fixtureClose);
86
+ let newDescContent = describeContent.substring(0, fixtureIndex) +
87
+ describeContent.substring(fixtureClose + 1);
88
+ let testIdx = 0;
89
+ while (true) {
90
+ const nextTest = newDescContent.indexOf("test ", testIdx);
91
+ if (nextTest === -1)
92
+ break;
93
+ const testOpen = newDescContent.indexOf("{", nextTest);
94
+ if (testOpen === -1) {
95
+ testIdx = nextTest + 5;
96
+ continue;
97
+ }
98
+ newDescContent =
99
+ newDescContent.substring(0, testOpen + 1) +
100
+ "\n" +
101
+ fixtureBody +
102
+ "\n" +
103
+ newDescContent.substring(testOpen + 1);
104
+ testIdx = testOpen + 1 + fixtureBody.length + 2;
105
+ }
106
+ code =
107
+ code.substring(0, openBrace + 1) +
108
+ newDescContent +
109
+ code.substring(closeBrace);
110
+ }
111
+ }
112
+ }
113
+ index = closeBrace + 1;
114
+ }
115
+ return code;
116
+ }
117
+ function findMatchingBrace(str, openIndex) {
118
+ let count = 1;
119
+ for (let i = openIndex + 1; i < str.length; i++) {
120
+ if (str[i] === "{")
121
+ count++;
122
+ else if (str[i] === "}") {
123
+ count--;
124
+ if (count === 0)
125
+ return i;
126
+ }
127
+ }
128
+ return -1;
129
+ }
130
+ const providers = buildWollokNativeProviders(nativeSpecs);
131
+ for (const [key, impl] of Object.entries(CorePrimitiveExtensions)) {
132
+ providers.set(key, impl);
133
+ }
134
+ // 2. Envolvemos los retornos en StepCommand para cumplir con la firma de la infraestructura
135
+ providers.set("YuNumber.printString", (rec) => new StepCommand(new YuString(String(rec.value))));
136
+ providers.set("YuString.printString", (rec) => new StepCommand(new YuString(rec.value)));
137
+ providers.set("YuBoolean.printString", (rec) => new StepCommand(new YuString(String(rec.value))));
138
+ providers.set("YuArray.printString", (arr) => new StepCommand(new YuString(arr.toString())));
139
+ providers.set("YuNumber.equals", (rec, args) => new StepCommand(new YuBoolean(rec.value === args[0].value)));
140
+ providers.set("YuString.contains", (rec, args) => new StepCommand(new YuBoolean(rec.value.includes(args[0].value))));
141
+ function createWollokTestConfig(ast) {
142
+ const testGroup = ast.find((node) => node instanceof TestGroup);
143
+ const initializeNode = testGroup?.group.statements.find((stmt) => stmt instanceof Function && stmt.identifier.value === "initialize")?.equations?.[0].body;
144
+ return {
145
+ beforeEachTest: (interpreter, testNode) => {
146
+ if (initializeNode) {
147
+ interpreter.evaluate(initializeNode.sequence);
148
+ }
149
+ },
150
+ };
38
151
  }
152
+ export { providers, createWollokTestConfig };
39
153
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,MAAM,eAAgB,SAAQ,KAAK;IACjC,YAAY,IAAI,EAAE,MAAM,EAAE,WAAW;QACnC,KAAK,CACH,uBAAuB,IAAI,WAAW,MAAM,cAAc,WAAW,GAAG,CACzE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IACtB,MAAM,GAAa,EAAE,CAAC;IAC7B;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,IAAY;QACvB,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAClC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;YACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,yBAAyB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEnD,OAAO,SAAS,CAAC;IACnB,CAAC;IACM,eAAe,CAAC,IAAY;QACjC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAClC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;YACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,uBAAuB,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,MAAM,cAAc,WAAW,GAAG,CAAC;YACrG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;QAErC,MAAM,WAAW,GAAG,IAAI,yBAAyB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export declare class WollokToYukigoTransformer {
18
18
  private visitSingleton;
19
19
  private visitClass;
20
20
  private visitMethod;
21
+ private getBody;
21
22
  private visitParameter;
22
23
  private visitReturn;
23
24
  private visitBody;
@@ -25,4 +26,7 @@ export declare class WollokToYukigoTransformer {
25
26
  private visitReference;
26
27
  private visitSelf;
27
28
  private visitLiteral;
29
+ private visitProgram;
30
+ private visitDescribe;
31
+ private visitTest;
28
32
  }
@@ -6,8 +6,6 @@ const ARITHMETIC_BINARY_OPS = {
6
6
  "/": "Divide",
7
7
  "%": "Modulo",
8
8
  "**": "Power",
9
- max: "Max",
10
- min: "Min",
11
9
  };
12
10
  const COMPARISON_OPS = {
13
11
  "==": "Equal",
@@ -40,6 +38,7 @@ function mapLocation(wollokNode) {
40
38
  }
41
39
  return undefined;
42
40
  }
41
+ let anonymousIdCounter = 0;
43
42
  export class WollokToYukigoTransformer {
44
43
  transform(root) {
45
44
  const result = this.visit(root);
@@ -59,6 +58,12 @@ export class WollokToYukigoTransformer {
59
58
  case "Mixin":
60
59
  case "Class":
61
60
  return this.visitClass(node);
61
+ case "Program":
62
+ return this.visitProgram(node);
63
+ case "Describe":
64
+ return this.visitDescribe(node);
65
+ case "Test":
66
+ return this.visitTest(node);
62
67
  case "Method":
63
68
  return this.visitMethod(node);
64
69
  case "Body":
@@ -158,7 +163,8 @@ export class WollokToYukigoTransformer {
158
163
  }
159
164
  visitTry(node) {
160
165
  const body = this.visit(node.body);
161
- const catchExprs = (node.catches || []).map((c) => this.visitCatch(c));
166
+ const rawCatches = node.catches;
167
+ const catchExprs = rawCatches.map((c) => this.visitCatch(c));
162
168
  let finallyExpr;
163
169
  if (node.always) {
164
170
  finallyExpr = this.visit(node.always);
@@ -178,10 +184,35 @@ export class WollokToYukigoTransformer {
178
184
  return new Yu.Super(node.args.map((arg) => this.visit(arg)), mapLocation(node));
179
185
  }
180
186
  visitSingleton(node) {
181
- const identifier = new Yu.SymbolPrimitive(node.name, mapLocation(node));
187
+ // 1. Detectamos la clausura mirando los supertipos (¡Match exacto con tu JSON!)
188
+ const isClosure = node.supertypes?.some((t) => t.reference?.name === "wollok.lang.Closure");
189
+ if (isClosure) {
190
+ // 2. Buscamos el método <apply> (¡Match exacto con tu JSON!)
191
+ const applyMethod = node.members.find((m) => m.name === "apply" || m.name === "<apply>");
192
+ if (applyMethod && applyMethod.body && applyMethod.body !== "native") {
193
+ const params = (applyMethod.parameters || []).map((p) => this.visit(p));
194
+ // Transformamos el cuerpo del <apply> en la secuencia ejecutable del Lambda
195
+ const bodyExpr = this.visit(applyMethod.body);
196
+ return new Yu.Lambda(params, bodyExpr, mapLocation(node));
197
+ }
198
+ }
199
+ // 3. Fallback: Si no es Closure, armamos el objeto anónimo normal
200
+ const name = node.name || `anonymous_object_${anonymousIdCounter++}`;
201
+ const identifier = new Yu.SymbolPrimitive(name, mapLocation(node));
182
202
  const members = node.members.map((m) => this.visit(m));
183
203
  const bodyExpression = new Yu.Sequence(members, mapLocation(node));
184
- return new Yu.Object(identifier, bodyExpression, mapLocation(node));
204
+ const obj = new Yu.Object(identifier, bodyExpression, mapLocation(node));
205
+ const supertype = node.supertypes && node.supertypes[0];
206
+ if (supertype && !isClosure) {
207
+ const superclass = new Yu.SymbolPrimitive(supertype.reference.name, mapLocation(supertype));
208
+ obj.extendsSymbol = superclass;
209
+ obj.extendsArgs = (supertype.args || []).map((arg) => this.visit(arg));
210
+ }
211
+ else {
212
+ obj.extendsSymbol = new Yu.SymbolPrimitive("Object", mapLocation(node));
213
+ obj.extendsArgs = [];
214
+ }
215
+ return obj;
185
216
  }
186
217
  visitClass(node) {
187
218
  const identifier = new Yu.SymbolPrimitive(node.name, mapLocation(node));
@@ -196,18 +227,28 @@ export class WollokToYukigoTransformer {
196
227
  visitMethod(node) {
197
228
  const identifier = new Yu.SymbolPrimitive(node.name, mapLocation(node));
198
229
  const patterns = (node.parameters || []).map((param) => this.visit(param));
199
- if (node.body === "native")
200
- throw Error("Native methods not supported yet.");
201
- const bodySequence = this.visit(node.body);
202
- const unguardedBody = new Yu.UnguardedBody(bodySequence, mapLocation(node.body));
203
- const equation = new Yu.Equation(patterns, unguardedBody, undefined, mapLocation(node));
230
+ const methodBody = this.getBody(node);
231
+ const equation = new Yu.Equation(patterns, methodBody, undefined, mapLocation(node));
204
232
  return new Yu.Method(identifier, [equation], mapLocation(node));
205
233
  }
234
+ getBody(node) {
235
+ const body = node.body;
236
+ // Abstract methods have no body
237
+ if (!body)
238
+ return new Yu.UnguardedBody(new Yu.Sequence([], mapLocation(node)), mapLocation(node));
239
+ if (body === "native")
240
+ return new Yu.NativeBody(mapLocation(node));
241
+ const bodySequence = this.visit(body);
242
+ return new Yu.UnguardedBody(bodySequence, mapLocation(body));
243
+ }
206
244
  visitParameter(node) {
207
245
  const nameSymbol = new Yu.SymbolPrimitive(node.name, mapLocation(node));
208
246
  return new Yu.VariablePattern(nameSymbol, mapLocation(node));
209
247
  }
210
248
  visitReturn(node) {
249
+ const value = node.value;
250
+ if (!value)
251
+ throw new Error("Parser: In Return, value cannot be undefined.");
211
252
  const expression = this.visit(node.value);
212
253
  return new Yu.Return(expression, mapLocation(node));
213
254
  }
@@ -231,6 +272,9 @@ export class WollokToYukigoTransformer {
231
272
  if (unaryExpr)
232
273
  return unaryExpr;
233
274
  }
275
+ if (receiver instanceof Yu.NilPrimitive) {
276
+ return new Yu.Send(new Yu.SymbolPrimitive(op, loc), new Yu.SymbolPrimitive("apply", loc), args, loc);
277
+ }
234
278
  const selector = new Yu.SymbolPrimitive(op, loc);
235
279
  return new Yu.Send(receiver, selector, args, loc);
236
280
  }
@@ -245,10 +289,7 @@ export class WollokToYukigoTransformer {
245
289
  visitLiteral(node) {
246
290
  const val = node.value;
247
291
  const loc = mapLocation(node);
248
- const isCollection = Array.isArray(val) &&
249
- "name" in val[0] &&
250
- WollokListTypes.includes(val[0].name);
251
- if (isCollection)
292
+ if (isCollection(val))
252
293
  return new Yu.ListPrimitive(val[1].map((element) => this.visit(element)), loc);
253
294
  if (typeof val === "number")
254
295
  return new Yu.NumberPrimitive(val, loc);
@@ -258,8 +299,31 @@ export class WollokToYukigoTransformer {
258
299
  return new Yu.NilPrimitive(null, loc);
259
300
  return new Yu.StringPrimitive(String(val), loc);
260
301
  }
302
+ visitProgram(node) {
303
+ return this.visit(node.body);
304
+ }
305
+ visitDescribe(node) {
306
+ const nameExpr = new Yu.StringPrimitive(node.name, mapLocation(node));
307
+ const members = node.members.map((m) => {
308
+ const visited = this.visit(m);
309
+ if (visited instanceof Yu.Method) {
310
+ return new Yu.Function(visited.identifier, visited.equations, mapLocation(m));
311
+ }
312
+ return visited;
313
+ });
314
+ const groupSeq = new Yu.Sequence(members, mapLocation(node));
315
+ return new Yu.TestGroup(nameExpr, groupSeq, mapLocation(node));
316
+ }
317
+ visitTest(node) {
318
+ const nameExpr = new Yu.StringPrimitive(node.name, mapLocation(node));
319
+ const bodySeq = this.visit(node.body);
320
+ return new Yu.Test(nameExpr, bodySeq, [], mapLocation(node));
321
+ }
261
322
  }
262
323
  const WollokListTypes = ["wollok.lang.List", "wollok.lang.Set"];
324
+ const isCollection = (val) => Array.isArray(val) &&
325
+ "name" in val[0] &&
326
+ WollokListTypes.includes(val[0].name);
263
327
  function transformBinary(op, left, right, loc) {
264
328
  // RangeExpression
265
329
  if (op === "..")
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { ExecutionCommand } from "../../yukigo/dist/interpreter/components/kernel/commands.js";
2
+ import { RuntimeContext } from "../../yukigo/dist/interpreter/components/RuntimeContext.js";
3
+ import { YuValue } from "../../yukigo/dist/interpreter/primitives/index.js";
4
+ export declare function runGeneratorCommand(gen: Generator<any, any, any>): ExecutionCommand;
5
+ export declare class WollokNativeBridge {
6
+ private ctx;
7
+ constructor(ctx: RuntimeContext);
8
+ /**
9
+ * Traduce tipos primitivos de JavaScript a las primitivas de Yukigo.
10
+ * Usa un generador para que coincida con el `yield* this.reify(...)` del repo.
11
+ */
12
+ reify(value: any): Generator<any, YuValue, any>;
13
+ /**
14
+ * Instancia una clase/módulo de Wollok y le setea sus campos iniciales.
15
+ */
16
+ instantiate(className: string | {
17
+ fullyQualifiedName: string;
18
+ name?: string;
19
+ }, initialFields: Record<string, YuValue>): Generator<any, any, any>;
20
+ /**
21
+ * El método send que invocan los nativos del repo
22
+ */
23
+ send(methodName: string, target: any, ...args: any[]): Generator<any, any, any>;
24
+ }
25
+ type WollokNativeFunction = (self: any, args: any[], ctx: any) => Generator<any, any, any>;
26
+ export declare function buildWollokNativeProviders(specs: Record<string, Record<string, WollokNativeFunction>>): Map<string, any>;
27
+ export {};