Commit Graph

101 Commits

Author SHA1 Message Date
284bc61f24 typecheck chained pointer operations 2026-05-13 14:11:05 +02:00
027245684d type inference for variables 2026-05-13 14:01:44 +02:00
5f2082ef57 attach id to expressions 2026-05-13 13:14:55 +02:00
52443c837b --no-stdlib 2026-04-11 23:59:15 +02:00
a17ffa184a _var_arg 2026-04-04 13:14:58 +02:00
bb42e1fcf7 parse variadic functions 2026-04-04 12:17:44 +02:00
86de997be3 hashmaps, enforce main function type 2026-03-20 19:27:51 +01:00
8758295641 Analyzer -> SymbolTable 2026-03-19 13:18:24 +01:00
2d2a2c667f LICENSE 2026-03-19 13:14:50 +01:00
625fc0d811 typecheck_expr doesnt need to mutate the TypeChecker 2026-03-18 19:08:10 +01:00
0dbe7560b6 refactor the nasty RefCell by parsing everything first 2026-03-18 18:53:13 +01:00
2137d49abd typecheck if and while conditions, disallow ptr multiplication 2026-03-18 11:34:25 +01:00
4154901339 typecheck return types 2026-03-17 17:11:14 +01:00
5846f7e730 casts, typecheck struct field access 2026-03-17 15:25:28 +01:00
13fa93c611 start implementing typechecking 2026-03-17 14:55:07 +01:00
69c254382d TypeChecker 2026-03-17 14:04:14 +01:00
677521ca98 clean up main.rs 2026-03-16 13:07:33 +01:00
fee5dc3099 more error handling 2026-03-16 12:26:58 +01:00
720218cf31 error handling 2026-03-16 10:59:55 +01:00
3f9df4a32f don't heap allocate in io.printf 2026-03-14 11:44:14 +01:00
4a60c1fc12 io.printf, please dont look at it 2026-03-14 11:24:51 +01:00
192cff8f8d drop gcc by default, any type 2026-03-12 14:24:44 +01:00
1e7657ea2a implement our own malloc/free, finally drop libc 2026-03-12 10:02:51 +01:00
3fcd82cc04 replace array with an actual struct now that we have them 2026-03-11 20:44:55 +01:00
a07e2dc8dd move escape sequence parsing to tokenizer 2026-03-11 18:30:31 +01:00
12f283e5f8 zero initialize structs, begin porting my chip8 emulator 2026-03-11 16:21:57 +01:00
930d7b56cc implement MemberAccess and assignment to MemberAccess and Index 2026-03-11 15:31:08 +01:00
b79cd46b4b malloc structs and allow using them as types 2026-03-11 14:46:44 +01:00
316e60eedb add Stmt::Struct and Expr::New 2026-03-10 18:32:58 +01:00
b78223fae7 move crypto into stdlib 2026-01-03 14:21:53 +01:00
9a60518e0e speed up compilation by 40% by not cloning everything 2025-12-29 14:47:44 +01:00
55a8844699 fix continue skipping for increment 2025-12-27 15:38:03 +01:00
db2e639cc8 finally add real logical operators 2025-12-26 11:52:23 +01:00
07b46a987b allow more than 6 parameters, fix index bug, str.is_* 2025-12-25 20:29:31 +01:00
781c35d484 basic global constants 2025-12-25 15:19:15 +01:00
c527aceecd infer var type when initializer is a number constant 2025-12-23 18:10:56 +01:00
e447d4d7cd fix a bunch of old things 2025-12-22 21:58:08 +01:00
ebc887fb5b make types lowercase :) 2025-12-22 21:21:15 +01:00
d55ca11658 addr-of operator 2025-12-21 16:11:15 +01:00
a259d204be allow dynamic calls 2025-12-21 15:42:00 +01:00
7f93599f34 port some aoc solutions to zern 2025-12-21 14:26:12 +01:00
fdcf7eca37 analyze externs and catch undefined function calls 2025-12-19 15:55:31 +01:00
fbf28748c7 add export keyword 2025-12-18 16:15:56 +01:00
9f39f627ad advent of code day 1 2025-12-18 14:04:44 +01:00
7855e5b092 os.shell 2025-11-22 22:23:42 +01:00
73cd71c8e4 implement str.from_i64 2025-11-22 20:01:10 +01:00
06c979f177 drop even more libc functions 2025-11-22 18:41:35 +01:00
ce54d1b560 implement our own readdir and strtol, syscall builtin 2025-11-22 18:04:25 +01:00
7cffd73406 drop some libc functions, octal numerals, io.println, mem.read32 2025-11-22 17:31:36 +01:00
5a41163ca1 extern statement 2025-11-16 13:30:07 +01:00