Commit graph

260 commits

Author SHA1 Message Date
Samuel Hammersberg
91816abfe6 Constructors are now seen as global functions. 2023-03-21 10:11:02 +01:00
Samuel Hammersberg
bbf7a47e74 Started updating the Code Generator to the new monomorphizer tree. 2023-03-21 09:39:05 +01:00
sebastianselander
9cd2cdb511 continued work on pattern matching v2 2023-03-20 17:40:09 +01:00
sebastianselander
c3ea343d00 unified top level type with expression type 2023-03-10 16:54:29 +01:00
sebastian
62724964d7 fixed Maybe ('a -> 'a) bug. Pattern matching still wonky, will have to redo 2023-03-08 15:22:42 +01:00
Samuel Hammersberg
350cd3b0e9 Started importing Sebastian's new typechecker. 2023-03-08 11:01:07 +01:00
Samuel Hammersberg
d5dd7896d8 Moved modules into a proper folder structure. 2023-03-08 10:35:07 +01:00
Samuel Hammersberg
ac0ac2dac7 Removed a few imports. 2023-03-08 10:27:39 +01:00
Samuel Hammersberg
2af00da482 Renamed the compile function to generate code 2023-03-08 10:25:53 +01:00
Samuel Hammersberg
832efbcdd8 Gave the code generator a proper module name. 2023-03-08 10:24:52 +01:00
Samuel Hammersberg
bff75bb00b Switched an Int to Integer. 2023-03-08 10:22:21 +01:00
sebastianselander
fce54e7899 documented possible bad functions 2023-03-06 16:41:59 +01:00
sebastianselander
eef6fa7668 added new test and found another bug 2023-03-06 16:25:03 +01:00
sebastianselander
6947614fba Updated bug list & started working on more tests 2023-03-06 13:04:07 +01:00
sebastianselander
f5b5f11903 fixed formatting 2023-03-06 11:38:25 +01:00
sebastianselander
9c2f52f8bb fixed bug where bound variable didn't exist in case 2023-03-06 11:27:17 +01:00
sebastianselander
778fec3dc4 Implemented potential fix for one of the bugs 2023-03-05 14:34:39 +01:00
sebastianselander
fe63fa6215 Improved error message and created document for known bugs. 2023-03-05 13:24:56 +01:00
sebastianselander
fecb71bc07 Found a bug. 2023-03-03 18:17:51 +01:00
sebastianselander
03d7080396 pattern matching works? have to test more 2023-03-03 11:46:54 +01:00
sebastian
7656b46e3f a bit more work on pattern match + case expr 2023-03-02 22:07:38 +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
Sebastian Selander
d23d417ff3
Update TypeChecker.hs 2023-02-27 19:38:45 +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
Samuel Hammersberg
7cf6f30835 Data type constructors now properly tag the data. 2023-02-24 18:37:31 +01:00
Samuel Hammersberg
262543931c Types for data types are now created. 2023-02-24 16:05:49 +01:00
Samuel Hammersberg
272fbe3504 Removed some unused code. 2023-02-24 09:29:55 +01:00
Samuel Hammersberg
5d004f4286 Added calling conventions to functions. 2023-02-24 09:00:29 +01:00
sebastianselander
06e65de235 started on a test suite 2023-02-23 11:54:35 +01:00
sebastianselander
5daa5573f2 Added more comments to the code 2023-02-22 15:24:38 +01:00
sebastianselander
8065576c31 Let has a bug, otherwise probably(?) done 2023-02-20 20:38:36 +01:00
sebastianselander
a98135827c EAdd is bugged. Mostly complete though. 2023-02-20 16:51:44 +01:00
Samuel Hammersberg
4df3f705ed LLVMIr code now has the fastcc flag to enable speeed 😎 2023-02-20 16:44:27 +01:00
Samuel Hammersberg
afbc700db2 Fixed the type checker accidentally chucking cases in some cases. 2023-02-20 16:43:54 +01:00
Samuel Hammersberg
cd0f9dd456 The output directory is now cleared when the program is ran. 2023-02-20 15:27:13 +01:00
Samuel Hammersberg
a36de2bde1 Added support for the minus operator. 2023-02-20 14:52:11 +01:00
Samuel Hammersberg
fe4533c7ae Added an option to output some debug info. 2023-02-20 14:39:56 +01:00
Samuel Hammersberg
6749650223 Added support for pattern matching on ints. Might need a lookover. 2023-02-20 14:39:43 +01:00
Samuel Hammersberg
18e0a92fe0 Added grammar for case matching. 2023-02-20 14:39:00 +01:00
sebastianselander
dfbdb6678e Working on non-ugly version of algorithm W (Hindley-Milner) 2023-02-20 12:09:31 +01:00
sebastianselander
420fb107f0 Commented code and fixed some bugs I think. Still not complete
id : Int -> Int
id x = x
does not type check
2023-02-19 15:25:49 +01:00
sebastianselander
db932048ba Tried fixing bug. Failed. 2023-02-19 02:10:57 +01:00
sebastianselander
8b5cd3cf9a Remade the algorithm myself. Still some bugs. 2023-02-18 23:08:27 +01:00
Samuel Hammersberg
a4c12ede79 Merge branch 'prep-tc-martin' of github.com:bachelor-group-66-systemf/language into prep-tc-martin 2023-02-18 15:03:11 +01:00
Martin Fredin
4ab6681f68 Rearrange code 2023-02-18 14:36:59 +01:00
Samuel Hammersberg
287f84377c Implemented case matching on ints in the code generator 2023-02-18 14:36:46 +01:00
Martin Fredin
3efb27ac0c Document and fix code style 2023-02-18 13:41:38 +01:00
Martin Fredin
b8aedd541d Document and fix code style 2023-02-18 13:35:33 +01:00