Commit Graph

96 Commits

Author SHA1 Message Date
1555c12bbd Improve casts 2026-04-13 21:28:50 +03:00
c8d4b653da Fix bug with binop assignment typechecking 2026-04-13 21:24:34 +03:00
1814ce2cc9 Fix bug with loading values, parse casts 2026-04-13 21:21:46 +03:00
fa01b22b81 Add compilation of casts 2026-04-13 21:08:57 +03:00
dab4d47b8e Separate signed and unsigned comparisons correctly 2026-04-13 20:46:43 +03:00
e6a16ab667 Fix bug in codegen 2026-04-13 20:44:29 +03:00
810dd3595e Allow implicitly converting IntLiteralExpr to other int types 2026-04-13 20:15:48 +03:00
2695a83ac8 Fix LT 2026-04-13 20:06:43 +03:00
b541cf6baf Update README.md 2026-04-13 18:28:17 +03:00
4baeaff705 Add rest of typechecking 2026-04-13 18:26:47 +03:00
8314fe2b61 Use binops for codegen as well 2026-04-13 18:24:07 +03:00
1037024730 Add binops for typechecker 2026-04-13 18:18:25 +03:00
d6b730945c Check binops 2026-04-13 18:17:33 +03:00
bb4d1c6045 Add binops 2026-04-13 18:11:54 +03:00
9791c9c8da Add binops.h and binops.cpp 2026-04-13 18:00:47 +03:00
e3e0cd9f9f Check return type as well 2026-04-13 17:25:36 +03:00
3f4b8569ea Fix bug with parameter typechecking 2026-04-13 17:23:53 +03:00
185f25d412 Typecheck parameter types 2026-04-13 17:21:07 +03:00
a901806dfb Add a function to test if types are equal 2026-04-13 17:09:50 +03:00
8ec4e538f5 Fix a bug, add type kind 2026-04-13 16:56:33 +03:00
cf965dd47a Fix some bugs 2026-04-13 16:50:29 +03:00
5ed26f4139 Perform typechecking 2026-04-13 01:22:14 +03:00
85dbce112f Fill typechecking methods 2026-04-13 01:08:34 +03:00
d11da4d1e6 Make expressions return type on typecheck 2026-04-13 00:55:38 +03:00
902610aaea Add statement typecheckings 2026-04-13 00:54:14 +03:00
44c9e31556 Make types in the AST be shared_ptr 2026-04-13 00:40:05 +03:00
e45f120f1c Add typecheck-functions to AST 2026-04-13 00:35:14 +03:00
5706a81098 Separate errors to own header-file 2026-04-13 00:24:18 +03:00
85644457d0 Tokenize whitespace as well, skip it in next 2026-04-12 00:49:59 +03:00
cdff4cc9db Add binops for more fundamental type kinds 2026-04-12 00:47:38 +03:00
01434b8097 Eliminate repetition 2026-04-12 00:46:36 +03:00
e015ada6e4 Update README.md 2026-04-11 23:19:42 +03:00
866d78e6d1 Compile vararg 2026-04-11 23:18:13 +03:00
8646d5c0d0 Parse varargs 2026-04-11 22:18:02 +03:00
3f61e3749e Allow anonymous parameters 2026-04-11 22:11:52 +03:00
5dc6e8ca16 Modify printf to take a number additionally 2026-04-11 22:07:48 +03:00
96e4d6232f Fix tokenization of long words 2026-04-11 22:06:15 +03:00
bd76e8676f Add literal strings 2026-04-11 22:03:38 +03:00
ac7731446e Add pointer types 2026-04-11 21:45:54 +03:00
6855360a97 Add void and char types 2026-04-11 21:40:59 +03:00
7cf752f67b Add forward declarations 2026-04-11 21:34:44 +03:00
07c0059c5c Remove unused forward-declaration 2026-04-11 19:18:46 +03:00
44f9438839 Add new comments 2026-04-11 19:17:47 +03:00
1aed5c93f1 Add comments 2026-04-11 19:15:21 +03:00
d5a28b1580 Link everything in main.cpp 2026-04-11 19:14:13 +03:00
25343e0856 Produce LLVM IR and object file 2026-04-11 18:40:35 +03:00
712c0bed51 Improve memory management for Result 2026-04-11 17:55:49 +03:00
344b7588d8 Make slightly better error raporting at codegen 2026-04-11 00:09:26 +03:00
6a315711cf Make metadata actually have start and end separately 2026-04-11 00:01:14 +03:00
a035d07505 Add metadata to AST 2026-04-10 23:58:06 +03:00