Commit graph

77 commits

Author SHA1 Message Date
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
janis d2597d2de7
can parse basic function 2025-10-29 23:17:02 +01:00
janis 8740fea99d
fix tokeniser for: void 2025-10-29 22:39:27 +01:00
janis 8f4d626968
ast tests 2025-10-29 22:10:34 +01:00
janis 4e55fa74f4
parse structs and functions from asm for rust tests 2025-10-29 22:10:14 +01:00
janis 5ae3e17693
initial ast 2025-10-29 20:39:32 +01:00
janis bf9d07b462
init tokeniser with buffer 2025-10-29 20:39:22 +01:00
janis 46053090f4
initial parsing 2025-10-29 16:21:15 +01:00
janis 39e8d6ae96
move defintions out of tokeniser into include file 2025-10-29 16:21:01 +01:00
janis 62751f30ab
move more stuff to shared test file 2025-10-29 16:20:42 +01:00
janis 86bbab90c3
modularise test with shared rust structs
add expect/unwrap token methods to tokeniser to aid with parsing
2025-10-29 14:00:17 +01:00
janis cd21ecb782
insert sorted, return tuple instead of strange signed index from binary search methods 2025-10-29 13:38:39 +01:00
janis 1a4055a69a
memmove, vec_insert, vec_binary_search_by working and tested 2025-10-29 00:39:23 +01:00
janis af19946dc4
remove size from some vec functions 2025-10-28 23:40:00 +01:00
janis 8ac409c677
isnert and binary search by 2025-10-28 23:39:51 +01:00
janis fd52df1307
more testing and fixes for vec.asm 2025-10-28 23:13:02 +01:00
janis edc4f4e576
parsing numbers 2025-10-28 21:43:23 +01:00
janis f60573c06f
radix, negative numbers 2025-10-28 21:18:00 +01:00
janis 15c2aea16a
rewrite int_to_str 2025-10-28 21:05:16 +01:00
janis 6a6af53667
bump allocator 2025-10-28 20:40:25 +01:00
janis 5f63d4303e
formatting, strings, comments 2025-10-28 18:16:39 +01:00
janis 43a06ad55c
test numbers 2025-10-28 17:16:28 +01:00
janis 44ee13246e
is_number 2025-10-28 17:07:05 +01:00
janis 82104cfe0d
edge case identifiers, simple function parsing 2025-10-28 16:52:17 +01:00
janis 26c37e9dd3
test identifiers 2025-10-28 16:48:13 +01:00