Commit graph

38 commits

Author SHA1 Message Date
1cbd2e8a23 Merge with local implementation of toStringTag 2023-04-13 14:36:28 +02:00
e7493d0d49
Multiple updates to code base
- Fix variable polymorphism by addding missing generalization step
 - Add method for `util.inspect` to make pretty-printing easier
 - Remove WrappedOperator and replace it with NamedPattern
2023-04-12 21:16:48 +02:00
17bdb2d7cb
Fix some bugs in textual input/ouput 2023-04-12 19:38:45 +02:00
1b918dcaf0 Add support for AssignStatement in lexical analysis and CST 2023-03-19 17:02:59 +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
f995d887e7 Add Syntax.clone() method and '\\' token 2023-02-06 11:52:20 +01:00
3e14538d15 [WIP] Add support for typeclasses 2023-02-03 17:52:34 +01:00
3e169e9ab9 Add experimental support for referencing module elements 2022-09-18 14:33:49 +02:00
9dc62d0836 Fix module paths not being parsed in type reference expressions 2022-09-17 16:31:05 +02:00
cea177e4a6 Add support for parsing module declarations 2022-09-17 13:20:49 +02:00
117f49f343 Add support for parsing the 'foreign' keyword in let-declarations 2022-09-16 19:50:18 +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
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
9221441aa4 Multiple updates to the kind inferencer
- Clean up some code
 - Ensure more syntax is covered during kind inference
 - Make wrongly kinded types not trigger another typing error in the
   next layer
2022-09-15 22:39:20 +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
fe4cc61819 Fix all TypeScript type errors 2022-09-15 16:56:02 +02:00
9d28d47d6f Add an analysis module and integrate with type checker
Fixes #34.
2022-09-15 16:06:04 +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
5f373a9d13 Make struct-declarations polymorphic 2022-09-10 16:52:14 +02:00
3611dedf24 Enable parsing enum-declarations 2022-09-10 14:11:04 +02:00
7b3f1948bb Remove TAny; support operator declarations and arrow type expressions 2022-09-09 22:37:14 +02:00
f1a365e29c Add support for parsing/type-checking member expressions 2022-09-09 00:00:28 +02:00
00bcaa93ee Make record types partially work 2022-09-07 12:45:38 +02:00
97150d64e0 Add better support for if-statements in type-checker 2022-09-06 15:17:27 +02:00
88e09052e6 Fix support for nesting of scopes in type-checker 2022-09-05 19:33:37 +02:00
062ca46752 Make recursive function definitions work 2022-09-05 17:25:55 +02:00
20af138fa5 Minor changes
- Refactor Constructor to IdentifierAlt
 - Make () -> a unify with a
2022-09-01 20:18:47 +02:00
666256ed15 Add support for type-checking recursion and improove Checker.addConstraint 2022-09-01 20:07:09 +02:00
12559e93a2 Fix incorrect typing of ReturnStatement.expression 2022-08-31 13:54:22 +02:00
48f1b0f45c Add some type-checking logic and improve diagnostics 2022-08-31 13:29:56 +02:00
cda44e4c25 Extend scanner/parser to support more syntactic structures 2022-08-29 16:17:55 +02:00
d813e85d00 Enable parsing of simple let-expressions 2022-08-28 21:12:25 +02:00