export ast defs to .inc file

This commit is contained in:
janis 2025-10-31 15:06:54 +01:00
parent 555f79f00e
commit 9b4d42ba3a
Signed by: janis
SSH key fingerprint: SHA256:bB1qbbqmDXZNT0KKD5c2Dfjg53JGhj7B3CFcLIzSqq8
3 changed files with 32 additions and 31 deletions

View file

@ -1,32 +1,9 @@
default rel default rel
%include "src/tokeniser.inc" %include "src/tokeniser.inc"
%include "src/ast.inc"
section .rdata section .rdata
;; start-consts
AST_FUNCTION equ 1 ; :u8
AST_BLOCK equ 2 ; :u8
AST_VARIABLE equ 3 ; :u8
AST_NUMBER equ 4 ; :u8
AST_BINARY_OP equ 5 ; :u8
AST_RETURN_STATEMENT equ 6 ; :u8
AST_VALUE_TO_PLACE equ 7 ; :u8
AST_PLACE_TO_VALUE equ 8 ; :u8
AST_ASSIGNMENT equ 9 ; :u8
AST_DEREF equ 10 ; :u8
AST_ADDRESS_OF equ 11 ; :u8
AST_VAR_DECL equ 12 ; :u8
AST_VAR_REF equ 13 ; :u8
AST_ARG equ 14 ; :u8
TYPE_VOID equ 1 ; :u8
TYPE_BOOL equ 2 ; :u8
TYPE_I32 equ 3 ; :u8
TYPE_U32 equ 4 ; :u8
TYPE_STR equ 5 ; :u8
TYPE_POINTER equ 6 ; :u8
;; end-consts
PRECEDENCE_ADD equ 90 PRECEDENCE_ADD equ 90
PRECEDENCE_SUB equ 90 PRECEDENCE_SUB equ 90
PRECEDENCE_MUL equ 100 PRECEDENCE_MUL equ 100

24
lang/src/ast.inc Normal file
View file

@ -0,0 +1,24 @@
section .rdata
;; start-consts
AST_FUNCTION equ 1 ; :u8
AST_BLOCK equ 2 ; :u8
AST_VARIABLE equ 3 ; :u8
AST_NUMBER equ 4 ; :u8
AST_BINARY_OP equ 5 ; :u8
AST_RETURN_STATEMENT equ 6 ; :u8
AST_VALUE_TO_PLACE equ 7 ; :u8
AST_PLACE_TO_VALUE equ 8 ; :u8
AST_ASSIGNMENT equ 9 ; :u8
AST_DEREF equ 10 ; :u8
AST_ADDRESS_OF equ 11 ; :u8
AST_VAR_DECL equ 12 ; :u8
AST_VAR_REF equ 13 ; :u8
AST_ARG equ 14 ; :u8
TYPE_VOID equ 1 ; :u8
TYPE_BOOL equ 2 ; :u8
TYPE_I32 equ 3 ; :u8
TYPE_U32 equ 4 ; :u8
TYPE_STR equ 5 ; :u8
TYPE_POINTER equ 6 ; :u8
;; end-consts

View file

@ -19,6 +19,13 @@ unsafe extern "C" {
pub unsafe fn ast_resolve_var_refs(ast: *mut Ast, ctx: *mut SymbolTable, root_index: u64); pub unsafe fn ast_resolve_var_refs(ast: *mut Ast, ctx: *mut SymbolTable, root_index: u64);
} }
pub const SYM_KEY_SCOPE: u8 = 1;
pub const SYM_KEY_SCOPE_NAME: u8 = 2;
pub const SYM_KEY_PARENT_SCOPE: u8 = 3;
pub const SYM_KEY_START_LOCALS: u8 = 4;
pub const SYM_KEY_ARG: u8 = 5;
pub const SYM_KEY_VAR: u8 = 6;
pub const SYM_KEY_END_LOCALS: u8 = 7;
pub const AST_FUNCTION: u8 = 1; pub const AST_FUNCTION: u8 = 1;
pub const AST_BLOCK: u8 = 2; pub const AST_BLOCK: u8 = 2;
pub const AST_VARIABLE: u8 = 3; pub const AST_VARIABLE: u8 = 3;
@ -39,13 +46,6 @@ pub const TYPE_I32: u8 = 3;
pub const TYPE_U32: u8 = 4; pub const TYPE_U32: u8 = 4;
pub const TYPE_STR: u8 = 5; pub const TYPE_STR: u8 = 5;
pub const TYPE_POINTER: u8 = 6; pub const TYPE_POINTER: u8 = 6;
pub const SYM_KEY_SCOPE: u8 = 1;
pub const SYM_KEY_SCOPE_NAME: u8 = 2;
pub const SYM_KEY_PARENT_SCOPE: u8 = 3;
pub const SYM_KEY_START_LOCALS: u8 = 4;
pub const SYM_KEY_ARG: u8 = 5;
pub const SYM_KEY_VAR: u8 = 6;
pub const SYM_KEY_END_LOCALS: u8 = 7;
pub const TOKEN_EOF: u8 = 0; pub const TOKEN_EOF: u8 = 0;
pub const TOKEN_LET: u8 = 1; pub const TOKEN_LET: u8 = 1;
pub const TOKEN_IF: u8 = 2; pub const TOKEN_IF: u8 = 2;