26 Commits

Author SHA1 Message Date
d069f037a7 Fix order of operations for bitwise stuff
Signed-off-by: Slendi <slendi@socopon.com>
2024-04-09 02:37:52 +03:00
cb3183ba64 Fix bug with empty returns
Signed-off-by: Slendi <slendi@socopon.com>
2024-04-09 02:34:41 +03:00
a5fd0f24dc Add support for empty returns
Signed-off-by: Slendi <slendi@socopon.com>
2024-04-09 02:31:23 +03:00
66faf71ec7 Add support for struct field accesses
Signed-off-by: Slendi <slendi@socopon.com>
2024-04-09 02:24:45 +03:00
a966ff45a3 Improve messages, implement* field access
Compiler messages are now printed in color with their respective code,
field access support has been added in the type checker. However, field
access nodes that contain other field access nodes are not yet
supported.

Signed-off-by: Slendi <slendi@socopon.com>
2024-04-08 11:42:39 +03:00
0f5db0972c Use LLVM-18
Signed-off-by: Slendi <slendi@socopon.com>
2024-04-08 00:11:36 +03:00
3dbe9b6915 Change Color struct in example
Signed-off-by: Slendi <slendi@socopon.com>
2024-03-28 08:24:44 +02:00
81b0c139ef Add initial support for structs
There is an issue with calling C functions sadly because LLVM seems to
prefer passing each element as its own parameter than "packing" them
into 64 bit registers.

Signed-off-by: Slendi <slendi@socopon.com>
2024-03-26 13:32:51 +02:00
177a41ebd2 Add support for structure definitions and initializers
Signed-off-by: Slendi <slendi@socopon.com>
2024-03-12 10:15:38 +02:00
453689642c Add support for function declarations
Signed-off-by: Slendi <slendi@socopon.com>
2024-03-10 01:30:46 +02:00
64034e9086 Various improvements 2024-03-02 23:14:45 +02:00
3f2ee15302 Add support for while loops 2024-03-02 21:47:36 +02:00
907a5d12ca Add support for infinite loops 2024-03-02 20:46:57 +02:00
71c337a3f4 Add support for comparison operators
Signed-off-by: Slendi <slendi@socopon.com>
2024-03-01 15:30:25 +02:00
92c8509125 Add support for if-else
Signed-off-by: Slendi <slendi@socopon.com>
2024-03-01 14:07:11 +02:00
5dc73ab5f2 Update gitignore, add support for arrays and pointers
Signed-off-by: Slendi <slendi@socopon.com>
2024-03-01 12:21:44 +02:00
327f2bdd86 Add support for variables to LLVM emitter
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-29 16:20:51 +02:00
5455919d6e LLVM my beloved
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-29 14:04:28 +02:00
484d1a6e2c Add support or extern function
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-29 09:29:21 +02:00
9d7f79e576 Add support for pointer types and arrays
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-28 16:45:56 +02:00
7ab94d4ed5 Implement binary in the lexer
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-28 16:35:40 +02:00
eb258c8f4c Improve error message logging for function calls
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-28 16:19:01 +02:00
1d9277e200 Add return statement
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-28 15:07:07 +02:00
6d94a65649 Add support for function parameters in scope
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-28 15:07:07 +02:00
a1d74cd2ca Add support for return types to functions
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-28 15:07:07 +02:00
7fe927a683 Add type checking for functions
Signed-off-by: Slendi <slendi@socopon.com>
2024-02-28 15:07:06 +02:00