yukigo-haskell-parser 0.1.2 → 0.2.1

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 (57) hide show
  1. package/.mocharc.json +3 -3
  2. package/CHANGELOG.md +41 -7
  3. package/README.md +5 -10
  4. package/dist/index.js +21 -13
  5. package/dist/index.js.map +1 -1
  6. package/dist/parser/grammar.cjs +397 -0
  7. package/dist/parser/grammar.cjs.map +1 -0
  8. package/dist/parser/grammar.d.cts +38 -0
  9. package/dist/parser/lexer.d.ts +2 -1
  10. package/dist/parser/lexer.js +6 -1
  11. package/dist/parser/lexer.js.map +1 -1
  12. package/dist/prelude.js +279 -279
  13. package/dist/typechecker/DeclarationCollector.d.ts +2 -0
  14. package/dist/typechecker/DeclarationCollector.js +6 -5
  15. package/dist/typechecker/DeclarationCollector.js.map +1 -1
  16. package/dist/typechecker/TypeBuilder.js +9 -7
  17. package/dist/typechecker/TypeBuilder.js.map +1 -1
  18. package/dist/typechecker/checker.d.ts +9 -4
  19. package/dist/typechecker/checker.js +66 -94
  20. package/dist/typechecker/checker.js.map +1 -1
  21. package/dist/typechecker/core.js +8 -7
  22. package/dist/typechecker/core.js.map +1 -1
  23. package/dist/typechecker/inference.d.ts +4 -1
  24. package/dist/typechecker/inference.js +39 -19
  25. package/dist/typechecker/inference.js.map +1 -1
  26. package/dist/utils/helpers.d.ts +3 -0
  27. package/dist/utils/helpers.js +5 -0
  28. package/dist/utils/helpers.js.map +1 -1
  29. package/dist/utils/types.d.ts +12 -3
  30. package/dist/utils/types.js +34 -22
  31. package/dist/utils/types.js.map +1 -1
  32. package/package.json +9 -10
  33. package/src/index.ts +223 -192
  34. package/src/parser/{grammar.ts → grammar.cjs} +191 -223
  35. package/src/parser/grammar.d.ts +3 -0
  36. package/src/parser/grammar.ne +521 -518
  37. package/src/parser/lexer.ts +357 -353
  38. package/src/prelude.ts +281 -281
  39. package/src/typechecker/DeclarationCollector.ts +160 -157
  40. package/src/typechecker/TypeBuilder.ts +153 -150
  41. package/src/typechecker/checker.ts +487 -501
  42. package/src/typechecker/core.ts +195 -192
  43. package/src/typechecker/inference.ts +1442 -1421
  44. package/src/utils/helpers.ts +34 -29
  45. package/src/utils/types.ts +75 -63
  46. package/tests/hspec.spec.ts +95 -92
  47. package/tests/lexer.spec.ts +175 -175
  48. package/tests/parser.spec.ts +838 -829
  49. package/tests/prelude.spec.ts +17 -17
  50. package/tests/typechecker.spec.ts +326 -327
  51. package/tsconfig.build.json +16 -0
  52. package/tsconfig.build.tsbuildinfo +1 -0
  53. package/tsconfig.json +29 -26
  54. package/tsconfig.tsbuildinfo +1 -1
  55. package/dist/parser/grammar.d.ts +0 -28
  56. package/dist/parser/grammar.js +0 -393
  57. package/dist/parser/grammar.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,25 +1,59 @@
1
- ## 0.1.2 (2026-04-11)
1
+ ## 0.2.1 (2026-08-01)
2
2
 
3
3
  ### 🧱 Updated Dependencies
4
4
 
5
- - Updated yukigo-ast to 0.2.0
5
+ - Updated yukigo-ast to 0.3.1
6
6
 
7
- ## 0.1.0 (2025-12-09)
7
+ ## 0.2.0 (2026-08-01)
8
8
 
9
9
  ### 🚀 Features
10
10
 
11
- - **yukigo:** Nx Release added ([0bee88f](https://github.com/miyukiproject/yukigo/commit/0bee88f))
12
- - **LogicEngine:** Added LogicEngine with unification algorithm ([57b48a0](https://github.com/miyukiproject/yukigo/commit/57b48a0))
11
+ - **yukigo-e2e:** Initial commit of Yukigo E2E package ([d4de9ea](https://github.com/miyukiproject/yukigo/commit/d4de9ea))
13
12
 
14
13
  ### 🩹 Fixes
15
14
 
16
- - **general:** Remove build step from tests command ([9d6e02f](https://github.com/miyukiproject/yukigo/commit/9d6e02f))
15
+ - **yukigo:** fix mapped runtime typenames ([7589d2f](https://github.com/miyukiproject/yukigo/commit/7589d2f))
16
+ - **yukigo-haskell-parser:** fix failing tests from haskell parser ([9e67474](https://github.com/miyukiproject/yukigo/commit/9e67474))
17
+ - **yukigo-haskell-parser:** grammar missidentified let declaration breaking with semicolon from lexer ([879ad1b](https://github.com/miyukiproject/yukigo/commit/879ad1b))
18
+ - fix parsers grammar compilation to export to .cjs ([ef59727](https://github.com/miyukiproject/yukigo/commit/ef59727))
19
+ - **haskell-parser:** fix bad fallback in DeclarationCollector ([a537aa1](https://github.com/miyukiproject/yukigo/commit/a537aa1))
17
20
 
18
21
  ### 🧱 Updated Dependencies
19
22
 
20
- - Updated @yukigo/ast to 0.1.0
23
+ - Updated yukigo-ast to 0.3.0
21
24
 
22
25
  ### ❤️ Thank You
23
26
 
24
27
  - noiseArch
28
+
29
+ ## 0.1.3 (2026-05-01)
30
+
31
+ ### 🧱 Updated Dependencies
32
+
33
+ - Updated yukigo-ast to 0.2.1
34
+
35
+ ## 0.1.2 (2026-04-11)
36
+
37
+ ### 🧱 Updated Dependencies
38
+
39
+ - Updated yukigo-ast to 0.2.0
40
+
41
+ ## 0.1.0 (2025-12-09)
42
+
43
+ ### 🚀 Features
44
+
45
+ - **yukigo:** Nx Release added ([0bee88f](https://github.com/miyukiproject/yukigo/commit/0bee88f))
46
+ - **LogicEngine:** Added LogicEngine with unification algorithm ([57b48a0](https://github.com/miyukiproject/yukigo/commit/57b48a0))
47
+
48
+ ### 🩹 Fixes
49
+
50
+ - **general:** Remove build step from tests command ([9d6e02f](https://github.com/miyukiproject/yukigo/commit/9d6e02f))
51
+
52
+ ### 🧱 Updated Dependencies
53
+
54
+ - Updated @yukigo/ast to 0.1.0
55
+
56
+ ### ❤️ Thank You
57
+
58
+ - noiseArch
25
59
  - Valtolina Matias
package/README.md CHANGED
@@ -1,10 +1,5 @@
1
- # Yukigo Haskell Parser
2
-
3
- Parser for a subset of Haskell written in Typescript using [nearley.js](https://nearley.js.org/) and [moo](https://github.com/no-context/moo).
4
-
5
- Parses a valid [yukigo](https://github.com/noiseArch/yukigo) AST.
6
-
7
- ## List of missing features
8
- - [Standard library](http://www.zvon.org/other/haskell/Outputprelude/functionIndex.html)
9
- - [Type classes](http://www.zvon.org/other/haskell/Outputprelude/classIndex.html)
10
- - ...
1
+ # Yukigo Haskell Parser
2
+
3
+ Parser for a subset of Haskell written in Typescript using [nearley.js](https://nearley.js.org/) and [moo](https://github.com/no-context/moo).
4
+
5
+ Parses a valid [yukigo](https://github.com/miyukiproject/yukigo) AST.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import grammar from "./parser/grammar.js";
1
+ import grammar from "./parser/grammar.cjs";
2
2
  import nearley from "nearley";
3
3
  import { groupFunctionDeclarations } from "./utils/helpers.js";
4
4
  import { TypeChecker } from "./typechecker/checker.js";
@@ -41,33 +41,39 @@ export class YukigoHaskellParser {
41
41
  const processedCode = this.preprocessor(code);
42
42
  const result = this.feedParser(processedCode);
43
43
  const fullAst = this.prelude.concat(result);
44
- const makePrim = (name) => new Function(new SymbolPrimitive(name), [
45
- new Equation([new VariablePattern(new SymbolPrimitive("x"))], new UnguardedBody(new Sequence([new Return(new ArithmeticUnaryOperation("ToString", new SymbolPrimitive("x")))])))
46
- ]);
44
+ const makePrim = (name) => {
45
+ const returnExpr = new Return(new ArithmeticUnaryOperation("ToString", new SymbolPrimitive("x")));
46
+ return new Function(new SymbolPrimitive(name), [
47
+ new Equation([new VariablePattern(new SymbolPrimitive("x"))], new UnguardedBody(new Sequence([returnExpr])), returnExpr),
48
+ ]);
49
+ };
47
50
  const prims = [
48
51
  makePrim("primShow"),
49
52
  makePrim("primShowChar"),
50
53
  makePrim("primShowString"),
51
- makePrim("primShowList")
54
+ makePrim("primShowList"),
52
55
  ];
53
56
  const resolveYukigoType = (t) => {
54
57
  if (t instanceof SimpleType) {
55
58
  const mapped = typeMappings[t.value];
56
- if (mapped)
57
- return new SimpleType(mapped, t.constraints, t.loc);
59
+ if (mapped) {
60
+ const runtimeTypeName = mapped.replace(/^Yu/, "");
61
+ return new SimpleType(runtimeTypeName, t.constraints, t.loc);
62
+ }
58
63
  return t;
59
64
  }
60
65
  if (t instanceof ListType)
61
66
  return t;
62
67
  return t;
63
68
  };
69
+ const primShowStringReturnExpr = new Return(new StringOperation("Concat", new StringPrimitive('"'), new StringOperation("Concat", new SymbolPrimitive("s"), new StringPrimitive('"'))));
64
70
  const primShowString = new Function(new SymbolPrimitive("primShowString"), [
65
- new Equation([new VariablePattern(new SymbolPrimitive("s"))], new UnguardedBody(new Sequence([
66
- new Return(new StringOperation("Concat", new StringPrimitive("\""), new StringOperation("Concat", new SymbolPrimitive("s"), new StringPrimitive("\""))))
67
- ])))
71
+ new Equation([new VariablePattern(new SymbolPrimitive("s"))], new UnguardedBody(new Sequence([primShowStringReturnExpr])), primShowStringReturnExpr),
68
72
  ]);
69
73
  // Transform Instance nodes into Function nodes with TypePatterns
70
- const transformedAst = this.config.includePrims ? [...prims, primShowString] : [];
74
+ const transformedAst = this.config.includePrims
75
+ ? [...prims, primShowString]
76
+ : [];
71
77
  for (const node of fullAst) {
72
78
  if (node instanceof Instance) {
73
79
  const instanceNode = node;
@@ -107,9 +113,11 @@ export class YukigoHaskellParser {
107
113
  parser.feed(code);
108
114
  parser.finish();
109
115
  }
110
- catch (error) {
111
- if ("token" in error && error.token)
116
+ catch (e) {
117
+ const error = e; // Assert the shape
118
+ if (error.token) {
112
119
  throw new UnexpectedToken(error.token);
120
+ }
113
121
  throw error;
114
122
  }
115
123
  const { results } = parser;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}