3fc184a0ce
Move compiler to its own subdirectory
2023-04-14 20:04:14 +02:00
26f50c5b50
Make most classes serializable and remove bolt-selftest.ts
...
bin/bolt-selftest.ts will be moved to a separate package
2023-04-14 19:58:23 +02:00
e2923f63c0
Fix infinite loop while searching for nodes in type chain
2023-04-13 17:22:15 +02:00
af996c13fe
Fix wrong refactor of error messages containing 'this'
2023-03-19 16:37:40 +01:00
c559d13df9
Minor improvements, add some experimental type class logic and refactor diagnostics
2023-03-16 21:50:15 +01:00
df5f857905
Add extensible records and add foundations for typeclasses
2023-03-14 13:15:33 +01:00
3e14538d15
[WIP] Add support for typeclasses
2023-02-03 17:52:34 +01:00
0d5c791a70
Refactor and improve module references in kind inference
2022-09-18 19:33:34 +02:00
3e169e9ab9
Add experimental support for referencing module elements
2022-09-18 14:33:49 +02:00
f43a66f453
Add some codegen infrastructure
2022-09-16 19:44:13 +02:00
cd357e03f5
Add support for tuples
2022-09-16 12:43:06 +02:00
1ea65236a5
Add support for currying
2022-09-16 12:00:00 +02:00
1a4a07bdd1
Clean up unused nodes in cst.ts
2022-09-16 11:35:18 +02:00
6c29d49ac6
Add experimental support for match-expressions and some new patterns
2022-09-16 11:31:34 +02:00
2d10ceedc9
Multiple enhancements
...
- Make record expressions anonymous
- Introduce `TNominal`
- Add experimental support for type declarations (fixes #32 )
- Fix inference of StructDeclaration
2022-09-15 20:36:15 +02:00
175cdbd394
Prefix kind variables with 'k' instead of 'a'
2022-09-15 13:47:41 +02:00
2f359107c4
Multiple fixes related to the type-checker
...
- Add more tests
- Make struct-declarations type-check
- Split environment into type bindings and variable bindings
- Fix kind inference adding the wrong element to the env
2022-09-15 11:49:53 +02:00
c5fe5004b6
Many fixes and add better support for enum-declarations
2022-09-14 22:34:53 +02:00
4cc2b23109
Add experimental support for kind inference
2022-09-14 16:46:30 +02:00
988215cdb3
Multiple updates to the type-checker
...
- Add support for type declarations
- Make polymorphism in struct declarations work
2022-09-11 11:20:21 +02:00
3611dedf24
Enable parsing enum-declarations
2022-09-10 14:11:04 +02:00
843be74e48
Add support for indenting in type-checker
2022-09-09 20:18:51 +02:00
dac8c9d946
First attempt at making the typing diagnositcs prettier
2022-09-09 20:02:35 +02:00
ebf600bdfc
Fix parse diagnostics not working
2022-09-08 23:35:07 +02:00
80bfc5f57b
Improve type-checking of struct declarations/expressions
2022-09-08 23:32:44 +02:00
b4fc8c87cb
Add a simple test script
2022-09-08 15:58:08 +02:00
00bcaa93ee
Make record types partially work
2022-09-07 12:45:38 +02:00
204d2961e3
Improve diagnostic messages for unification errors
2022-09-06 11:56:17 +02:00
062ca46752
Make recursive function definitions work
2022-09-05 17:25:55 +02:00
666256ed15
Add support for type-checking recursion and improove Checker.addConstraint
2022-09-01 20:07:09 +02:00
2d880f0f0d
Improve diagnostics for parsing errors
2022-08-31 13:45:46 +02:00
eac4279a5e
Make scanner work with exceptions
2022-08-31 13:37:26 +02:00
48f1b0f45c
Add some type-checking logic and improve diagnostics
2022-08-31 13:29:56 +02:00
d813e85d00
Enable parsing of simple let-expressions
2022-08-28 21:12:25 +02:00