Commit graph

101 commits

Author SHA1 Message Date
janis a0f4b56c64
skip_token method 2025-11-02 00:29:45 +01:00
janis c0dc1361ae
add more tokens 2025-11-02 00:00:22 +01:00
janis 9cb3331f60
method for pushing/poping registers before calling functions 2025-11-01 18:24:37 +01:00
janis 0436b23361
remove test line 2025-11-01 17:57:11 +01:00
janis 0be7ffba5a
change move_dst_src to call itself and use rax as a scratch register rather than xchging because immediate values 2025-11-01 17:51:46 +01:00
janis 703aa299c8
split current_stack_size u64 into current/max u32 to allow deallocating the top stack allocation 2025-11-01 17:39:17 +01:00
janis 16bdac93ad
free operands after use 2025-11-01 16:43:26 +01:00
janis ecb4a83153
allocate/free operand methods 2025-11-01 16:18:01 +01:00
janis ea4611111b
remove strange file and print source in codegen test 2025-11-01 03:09:46 +01:00
janis 2ca60ace59
codegen working? pogU? 2025-11-01 03:01:48 +01:00
janis 105c052e95
more fixes for codegen 2025-11-01 02:50:39 +01:00
janis a25dcdabbb
many small fixes 2025-11-01 01:41:13 +01:00
janis e43424b780
fix int_to_str2 for 0 2025-11-01 01:41:05 +01:00
janis dae2e00569
fix vec_insert_many 2025-11-01 00:28:59 +01:00
janis 1adeca36ec
vec_insert_many 2025-11-01 00:08:44 +01:00
janis 9509931bc2
safety commit 2025-10-31 22:14:44 +01:00
janis d144537c3b
insert stackvar sorted 2025-10-31 17:19:19 +01:00
janis da2a298baf
get-register-name from width and index 2025-10-31 17:14:20 +01:00
janis d793a3251f
init stack vec, push rplogue 2025-10-31 16:11:33 +01:00
janis e3e0d6843f
fix issues with initial codegen 2025-10-31 16:03:28 +01:00
janis d5de30d9e7
initial codegen 2025-10-31 15:49:10 +01:00
janis 6bdd2ef18a
export display/debug impls for ast to ast_debug.rs 2025-10-31 15:48:53 +01:00
janis c7f026a678
fix vec extend 2025-10-31 15:19:26 +01:00
janis 9b4d42ba3a
export ast defs to .inc file 2025-10-31 15:07:17 +01:00
janis 555f79f00e
args are var syms, recursively search parent scopes for symbols 2025-10-31 14:53:31 +01:00
janis d754f8c4b9
use trampoline to aign stack for call to rust panic 2025-10-31 14:52:59 +01:00
janis 402d295fff
block is a scope 2025-10-31 14:26:23 +01:00
janis 94d5d9e15b
uncommenting test stuff 2025-10-31 14:19:21 +01:00
janis c52b7ab8de
block as statement 2025-10-31 14:18:49 +01:00
janis 6041ec5102
flake: rr 2025-10-31 14:18:30 +01:00
janis 1201a6c45a
comments, skip empty semis in blocks 2025-10-31 13:17:47 +01:00
janis e79af01925
ast: correctly resolves var refs 2025-10-31 01:55:04 +01:00
janis 935a3e0a53
fix odd initial scope (is now -1usize) 2025-10-31 01:20:19 +01:00
janis cd04a5a4ca
try to redo scopes/symtable with passed down scope 2025-10-31 01:15:28 +01:00
janis cd5b714051
fix return statement push op 2025-10-31 01:11:03 +01:00
janis a769fece84
pass scope in walk_for_each 2025-10-31 00:58:27 +01:00
janis 746f82f732
try to resolve var refs 2025-10-30 23:28:31 +01:00
janis 928be75faf
sort symkey by ident before span 2025-10-30 23:00:36 +01:00
janis adb30e983c
ast node: span 2025-10-30 22:54:14 +01:00
janis 56354237c6
build symbol table 2025-10-30 22:16:45 +01:00
janis ad3b0205c2
ast walking 2025-10-30 21:41:27 +01:00
janis 525b78cdf4
pointer type 2025-10-30 14:35:49 +01:00
janis e54313b6a2
args, var-ref 2025-10-30 13:48:08 +01:00
janis 84e87824ba
ast: placeness, assignment, var decl, deref, address-of 2025-10-30 01:41:16 +01:00
janis 4491df79a2
tokeniser: int/float types 2025-10-30 00:35:35 +01:00
janis 2df4d182f9
ast: placeness 2025-10-30 00:31:51 +01:00
janis 099d774634
ast: sub, mul, div 2025-10-30 00:22:24 +01:00
janis 838c96f04f
update python script, add slash and star tokens 2025-10-30 00:11:46 +01:00
janis 886525cf7e
support parenthesised expressions 2025-10-29 23:48:55 +01:00
janis c609fe4ec6
fix blocks, increase AstNode by 1 qword 2025-10-29 23:31:52 +01:00