export ast defs to .inc file
This commit is contained in:
parent
555f79f00e
commit
9b4d42ba3a
|
|
@ -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
24
lang/src/ast.inc
Normal 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
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue