Commit graph

33 commits

Author SHA1 Message Date
Martin Fredin
cc5755c3a9 Add layout grammar 2023-04-03 09:24:13 +02:00
sebastian
6c180554ec Reworked order of inference, added prettifier for tvars etc etc. 2023-04-02 00:04:33 +02:00
sebastianselander
8910d8adc0 temporary commit incase of breakage 2023-03-28 17:15:18 +02:00
sebastianselander
22783cf817 Removed custom Character in favor of BNFC Char 2023-03-27 16:14:40 +02:00
Martin Fredin
ac3f222753 Add bidirectional type checker, lambda lifter. 2023-03-27 16:07:11 +02:00
sebastianselander
41fc863658 added PEnum 2023-03-24 17:39:34 +01:00
sebastianselander
3c2cb1a713 new good version works 2023-03-24 17:06:40 +01:00
sebastianselander
38680a4dcb adapted new tree to fuck with samuel 2023-03-24 16:10:52 +01:00
sebastianselander
ce3971cf75 renamed stuff 2023-03-24 12:24:08 +01:00
sebastianselander
3371c3a146 Remade lets with bind & improvements 2023-03-24 11:21:51 +01:00
sebastianselander
8d1330ad42 typechecker is compatible with one extra addition to the spec 2023-03-23 11:13:48 +01:00
sebastian
3335ab7a57 compatible, EId rule for parsing is not working, testing not done yet 2023-03-22 21:26:14 +01:00
sebastianselander
914855e20f working on adapting the typechecker 2023-03-22 17:52:39 +01:00
sebastianselander
936cb1301f new grammar and adapted renamer 2023-03-22 12:45:51 +01:00
sebastianselander
2401b6437b continued work pattern matching 2023-03-02 16:05:43 +01:00
sebastianselander
05313652f9 unit tests, started on pattern matching 2023-02-28 17:15:48 +01:00
sebastianselander
bbf6e159c7 Type inference/checking on ADTs mostly complete(?). Still have to test 2023-02-27 17:22:42 +01:00
sebastianselander
2f45f39435 Incorporated most of main, as well as started on quickcheck 2023-02-27 11:12:05 +01:00
sebastianselander
8b5cd3cf9a Remade the algorithm myself. Still some bugs. 2023-02-18 23:08:27 +01:00
sebastianselander
7619e36c60 Inference works better now. Still work to do. Should use proper library 2023-02-15 17:40:18 +01:00
sebastianselander
5d247057f5 Minor rewrite of tc. Some bugs still left 2023-02-14 22:03:56 +01:00
sebastianselander
6218efac20 Renamer done.
It renames bound variables to numbers, converts let to lambda, and
removes all variables from binds
2023-02-14 16:44:38 +01:00
sebastianselander
200a9e57ed Fixed EId, more work on other expressions needed 2023-02-14 10:12:38 +01:00
sebastianselander
c10d7703ad Progression on type checker ;) 2023-02-13 19:03:06 +01:00
sebastianselander
73dc2e4b6a Inference on most expressions. HM based.
Still have to figure out how to infer type of lambda variables, as well
as how function application on polymorphic should work
2023-02-13 12:17:49 +01:00
sebastianselander
f4f1786be3 Revert "Merge branch 'typechecking' into codegen-martin-3"
This reverts commit e000e5159f, reversing
changes made to 3ac8377fa0.
2023-02-10 10:46:09 +01:00
sebastianselander
e000e5159f Merge branch 'typechecking' into codegen-martin-3 2023-02-10 10:33:15 +01:00
Martin Fredin
ce31e4d490 Fix first unnecessary supercombinator 2023-02-09 17:53:39 +01:00
Martin Fredin
1f47288fcf Implement lambda lifting passes: freeVars, abstract, and rename 2023-02-09 05:19:51 +01:00
sebastianselander
be3fcfc9e3 Typeinference/checking on expressions done.
Simplified the typechecker a bit, removed GADT solution for now.
Still not fully working
2023-01-24 16:39:22 +01:00
sebastianselander
b6b2dfa25f Some work on a typechecker 2023-01-23 17:17:06 +01:00
Martin Fredin
43e0f67fe2 Fix conflict 2023-01-22 20:16:03 +01:00
Martin Fredin
64ee4dc432 Implement basic interpreted language 2023-01-20 14:12:04 +01:00