tokeniser: int/float types

This commit is contained in:
janis 2025-10-30 00:35:35 +01:00
parent 2df4d182f9
commit 4491df79a2
Signed by: janis
SSH key fingerprint: SHA256:bB1qbbqmDXZNT0KKD5c2Dfjg53JGhj7B3CFcLIzSqq8
2 changed files with 79 additions and 9 deletions

View file

@ -34,6 +34,16 @@ LEXEMES:
dq LEX_VOID
dq LEX_SLASH
dq LEX_STAR
dq LEX_U8
dq LEX_I8
dq LEX_U16
dq LEX_I16
dq LEX_U64
dq LEX_I64
dq LEX_USIZE
dq LEX_ISIZE
dq LEX_F32
dq LEX_F64
align 8
TOKENS:
@ -70,6 +80,16 @@ TOKENS:
db TOKEN_VOID ;; 30
db TOKEN_SLASH ;; 31
db TOKEN_STAR ;; 32
db TOKEN_U8 ;; 33
db TOKEN_I8 ;; 34
db TOKEN_U16 ;; 35
db TOKEN_I16 ;; 36
db TOKEN_U64 ;; 37
db TOKEN_I64 ;; 38
db TOKEN_USIZE ;; 39
db TOKEN_ISIZE ;; 40
db TOKEN_F32 ;; 41
db TOKEN_F64 ;; 42
align 8
LEXEME_LENS:
@ -106,9 +126,19 @@ LEXEME_LENS:
dq LEX_VOID_len
dq LEX_SLASH_len
dq LEX_STAR_len
dq LEX_U8_len
dq LEX_I8_len
dq LEX_U16_len
dq LEX_I16_len
dq LEX_U64_len
dq LEX_I64_len
dq LEX_USIZE_len
dq LEX_ISIZE_len
dq LEX_F32_len
dq LEX_F64_len
align 8
NUM_LEXEMES: dq 33
NUM_LEXEMES: dq 43
LEX_NOT_A_LEXEME db "<not a lexeme>", 0
LEX_LET db "let"
@ -175,6 +205,26 @@ NUM_LEXEMES: dq 33
LEX_SLASH_len equ $ - LEX_SLASH
LEX_STAR db "*"
LEX_STAR_len equ $ - LEX_STAR
LEX_U8 db "u8"
LEX_U8_len equ $ - LEX_U8
LEX_I8 db "i8"
LEX_I8_len equ $ - LEX_I8
LEX_U16 db "u16"
LEX_U16_len equ $ - LEX_U16
LEX_I16 db "i16"
LEX_I16_len equ $ - LEX_I16
LEX_U64 db "u64"
LEX_U64_len equ $ - LEX_U64
LEX_I64 db "i64"
LEX_I64_len equ $ - LEX_I64
LEX_USIZE db "usize"
LEX_USIZE_len equ $ - LEX_USIZE
LEX_ISIZE db "isize"
LEX_ISIZE_len equ $ - LEX_ISIZE
LEX_F32 db "f32"
LEX_F32_len equ $ - LEX_F32
LEX_F64 db "f64"
LEX_F64_len equ $ - LEX_F64
LEX_IDENT db "<identifier>"
LEX_IDENT_len equ $ - LEX_IDENT
LEX_NUMBER db "<number>"
@ -218,8 +268,18 @@ NUM_LEXEMES: dq 33
TOKEN_VOID equ 30 ; :u8
TOKEN_SLASH equ 31 ; :u8
TOKEN_STAR equ 32 ; :u8
TOKEN_IDENT equ 33 ; :u8
TOKEN_NUMBER equ 34 ; :u8
TOKEN_STRING equ 35 ; :u8
TOKEN_COMMENT equ 36 ; :u8
TOKEN_U8 equ 33 ; :u8
TOKEN_I8 equ 34 ; :u8
TOKEN_U16 equ 35 ; :u8
TOKEN_I16 equ 36 ; :u8
TOKEN_U64 equ 37 ; :u8
TOKEN_I64 equ 38 ; :u8
TOKEN_USIZE equ 39 ; :u8
TOKEN_ISIZE equ 40 ; :u8
TOKEN_F32 equ 41 ; :u8
TOKEN_F64 equ 42 ; :u8
TOKEN_IDENT equ 43 ; :u8
TOKEN_NUMBER equ 44 ; :u8
TOKEN_STRING equ 45 ; :u8
TOKEN_COMMENT equ 46 ; :u8
;; end-consts

View file

@ -58,10 +58,20 @@ pub const TOKEN_RBRACKET: u8 = 29;
pub const TOKEN_VOID: u8 = 30;
pub const TOKEN_SLASH: u8 = 31;
pub const TOKEN_STAR: u8 = 32;
pub const TOKEN_IDENT: u8 = 33;
pub const TOKEN_NUMBER: u8 = 34;
pub const TOKEN_STRING: u8 = 35;
pub const TOKEN_COMMENT: u8 = 36;
pub const TOKEN_U8: u8 = 33;
pub const TOKEN_I8: u8 = 34;
pub const TOKEN_U16: u8 = 35;
pub const TOKEN_I16: u8 = 36;
pub const TOKEN_U64: u8 = 37;
pub const TOKEN_I64: u8 = 38;
pub const TOKEN_USIZE: u8 = 39;
pub const TOKEN_ISIZE: u8 = 40;
pub const TOKEN_F32: u8 = 41;
pub const TOKEN_F64: u8 = 42;
pub const TOKEN_IDENT: u8 = 43;
pub const TOKEN_NUMBER: u8 = 44;
pub const TOKEN_STRING: u8 = 45;
pub const TOKEN_COMMENT: u8 = 46;
#[repr(C)]
#[derive(Debug)]