move defintions out of tokeniser into include file
This commit is contained in:
parent
62751f30ab
commit
39e8d6ae96
|
|
@ -23,6 +23,8 @@ global tokeniser_print
|
||||||
global find_lexeme
|
global find_lexeme
|
||||||
global expect_token
|
global expect_token
|
||||||
global unwrap_token
|
global unwrap_token
|
||||||
|
global peek_expect_token
|
||||||
|
global peek_lexeme
|
||||||
|
|
||||||
;; =============================
|
;; =============================
|
||||||
;; Tokeniser functions
|
;; Tokeniser functions
|
||||||
|
|
@ -115,210 +117,7 @@ global TOKENS
|
||||||
global LEXEME_LENS
|
global LEXEME_LENS
|
||||||
global NUM_LEXEMES
|
global NUM_LEXEMES
|
||||||
|
|
||||||
align 8
|
%include "src/tokeniser.inc"
|
||||||
LEXEMES:
|
|
||||||
dq LEX_NOT_A_LEXEME
|
|
||||||
dq LEX_LET
|
|
||||||
dq LEX_IF
|
|
||||||
dq LEX_ELSE
|
|
||||||
dq LEX_FN
|
|
||||||
dq LEX_RETURN
|
|
||||||
dq LEX_LOOP
|
|
||||||
dq LEX_BREAK
|
|
||||||
dq LEX_CONTINUE
|
|
||||||
dq LEX_TRUE
|
|
||||||
dq LEX_FALSE
|
|
||||||
dq LEX_BOOL
|
|
||||||
dq LEX_ARROW
|
|
||||||
dq LEX_I32
|
|
||||||
dq LEX_U32
|
|
||||||
dq LEX_EQUALS
|
|
||||||
dq LEX_PLUS
|
|
||||||
dq LEX_MINUS
|
|
||||||
dq LEX_RPARENS
|
|
||||||
dq LEX_LPARENS
|
|
||||||
dq LEX_RBRACE
|
|
||||||
dq LEX_LBRACE
|
|
||||||
dq LEX_COLON
|
|
||||||
dq LEX_SEMI
|
|
||||||
dq LEX_COMMA
|
|
||||||
dq LEX_PIPE
|
|
||||||
dq LEX_AMP
|
|
||||||
dq LEX_EQEQ
|
|
||||||
dq LEX_LBRACKET
|
|
||||||
dq LEX_RBRACKET
|
|
||||||
|
|
||||||
align 8
|
|
||||||
TOKENS:
|
|
||||||
db TOKEN_EOF ;; 0
|
|
||||||
db TOKEN_LET ;; 1
|
|
||||||
db TOKEN_IF ;; 2
|
|
||||||
db TOKEN_ELSE ;; 3
|
|
||||||
db TOKEN_FN ;; 4
|
|
||||||
db TOKEN_RETURN ;; 5
|
|
||||||
db TOKEN_LOOP ;; 6
|
|
||||||
db TOKEN_BREAK ;; 7
|
|
||||||
db TOKEN_CONTINUE ;; 8
|
|
||||||
db TOKEN_TRUE ;; 9
|
|
||||||
db TOKEN_FALSE ;; 10
|
|
||||||
db TOKEN_BOOL ;; 11
|
|
||||||
db TOKEN_ARROW ;; 12
|
|
||||||
db TOKEN_I32 ;; 13
|
|
||||||
db TOKEN_U32 ;; 14
|
|
||||||
db TOKEN_EQUALS ;; 15
|
|
||||||
db TOKEN_PLUS ;; 16
|
|
||||||
db TOKEN_MINUS ;; 17
|
|
||||||
db TOKEN_RPARENS ;; 18
|
|
||||||
db TOKEN_LPARENS ;; 19
|
|
||||||
db TOKEN_RBRACE ;; 20
|
|
||||||
db TOKEN_LBRACE ;; 21
|
|
||||||
db TOKEN_COLON ;; 22
|
|
||||||
db TOKEN_SEMI ;; 23
|
|
||||||
db TOKEN_COMMA ;; 24
|
|
||||||
db TOKEN_PIPE ;; 25
|
|
||||||
db TOKEN_AMP ;; 26
|
|
||||||
db TOKEN_EQEQ ;; 27
|
|
||||||
db TOKEN_LBRACKET ;; 28
|
|
||||||
db TOKEN_RBRACKET ;; 29
|
|
||||||
|
|
||||||
align 8
|
|
||||||
LEXEME_LENS:
|
|
||||||
dq 0
|
|
||||||
dq LEX_LET_len
|
|
||||||
dq LEX_IF_len
|
|
||||||
dq LEX_ELSE_len
|
|
||||||
dq LEX_FN_len
|
|
||||||
dq LEX_RETURN_len
|
|
||||||
dq LEX_LOOP_len
|
|
||||||
dq LEX_BREAK_len
|
|
||||||
dq LEX_CONTINUE_len
|
|
||||||
dq LEX_TRUE_len
|
|
||||||
dq LEX_FALSE_len
|
|
||||||
dq LEX_BOOL_len
|
|
||||||
dq LEX_ARROW_len
|
|
||||||
dq LEX_I32_len
|
|
||||||
dq LEX_U32_len
|
|
||||||
dq LEX_EQUALS_len
|
|
||||||
dq LEX_PLUS_len
|
|
||||||
dq LEX_MINUS_len
|
|
||||||
dq LEX_RPARENS_len
|
|
||||||
dq LEX_LPARENS_len
|
|
||||||
dq LEX_RBRACE_len
|
|
||||||
dq LEX_LBRACE_len
|
|
||||||
dq LEX_COLON_len
|
|
||||||
dq LEX_SEMI_len
|
|
||||||
dq LEX_COMMA_len
|
|
||||||
dq LEX_PIPE_len
|
|
||||||
dq LEX_AMP_len
|
|
||||||
dq LEX_EQEQ_len
|
|
||||||
dq LEX_LBRACKET_len
|
|
||||||
dq LEX_RBRACKET_len
|
|
||||||
|
|
||||||
align 8
|
|
||||||
NUM_LEXEMES: dq 30
|
|
||||||
|
|
||||||
LEX_NOT_A_LEXEME db "<not a lexeme>", 0
|
|
||||||
TOKEN_EOF equ 0
|
|
||||||
TOKEN_LET equ 1
|
|
||||||
LEX_LET db "let"
|
|
||||||
LEX_LET_len equ $ - LEX_LET
|
|
||||||
TOKEN_IF equ 2
|
|
||||||
LEX_IF db "if"
|
|
||||||
LEX_IF_len equ $ - LEX_IF
|
|
||||||
TOKEN_ELSE equ 3
|
|
||||||
LEX_ELSE db "else"
|
|
||||||
LEX_ELSE_len equ $ - LEX_ELSE
|
|
||||||
TOKEN_FN equ 4
|
|
||||||
LEX_FN db "fn"
|
|
||||||
LEX_FN_len equ $ - LEX_FN
|
|
||||||
TOKEN_RETURN equ 5
|
|
||||||
LEX_RETURN db "return"
|
|
||||||
LEX_RETURN_len equ $ - LEX_RETURN
|
|
||||||
TOKEN_LOOP equ 6
|
|
||||||
LEX_LOOP db "loop"
|
|
||||||
LEX_LOOP_len equ $ - LEX_LOOP
|
|
||||||
TOKEN_BREAK equ 7
|
|
||||||
LEX_BREAK db "break"
|
|
||||||
LEX_BREAK_len equ $ - LEX_BREAK
|
|
||||||
TOKEN_CONTINUE equ 8
|
|
||||||
LEX_CONTINUE db "continue"
|
|
||||||
LEX_CONTINUE_len equ $ - LEX_CONTINUE
|
|
||||||
TOKEN_TRUE equ 9
|
|
||||||
LEX_TRUE db "true"
|
|
||||||
LEX_TRUE_len equ $ - LEX_TRUE
|
|
||||||
TOKEN_FALSE equ 10
|
|
||||||
LEX_FALSE db "false"
|
|
||||||
LEX_FALSE_len equ $ - LEX_FALSE
|
|
||||||
TOKEN_BOOL equ 11
|
|
||||||
LEX_BOOL db "bool"
|
|
||||||
LEX_BOOL_len equ $ - LEX_BOOL
|
|
||||||
TOKEN_ARROW equ 12
|
|
||||||
LEX_ARROW db "->"
|
|
||||||
LEX_ARROW_len equ $ - LEX_ARROW
|
|
||||||
TOKEN_I32 equ 13
|
|
||||||
LEX_I32 db "i32"
|
|
||||||
LEX_I32_len equ $ - LEX_I32
|
|
||||||
TOKEN_U32 equ 14
|
|
||||||
LEX_U32 db "u32"
|
|
||||||
LEX_U32_len equ $ - LEX_U32
|
|
||||||
TOKEN_EQUALS equ 15
|
|
||||||
LEX_EQUALS db "="
|
|
||||||
LEX_EQUALS_len equ $ - LEX_EQUALS
|
|
||||||
TOKEN_PLUS equ 16
|
|
||||||
LEX_PLUS db "+"
|
|
||||||
LEX_PLUS_len equ $ - LEX_PLUS
|
|
||||||
TOKEN_MINUS equ 17
|
|
||||||
LEX_MINUS db "-"
|
|
||||||
LEX_MINUS_len equ $ - LEX_MINUS
|
|
||||||
TOKEN_RPARENS equ 18
|
|
||||||
LEX_RPARENS db ")"
|
|
||||||
LEX_RPARENS_len equ $ - LEX_RPARENS
|
|
||||||
TOKEN_LPARENS equ 19
|
|
||||||
LEX_LPARENS db "("
|
|
||||||
LEX_LPARENS_len equ $ - LEX_LPARENS
|
|
||||||
TOKEN_RBRACE equ 20
|
|
||||||
LEX_RBRACE db "}"
|
|
||||||
LEX_RBRACE_len equ $ - LEX_RBRACE
|
|
||||||
TOKEN_LBRACE equ 21
|
|
||||||
LEX_LBRACE db "{"
|
|
||||||
LEX_LBRACE_len equ $ - LEX_LBRACE
|
|
||||||
TOKEN_COLON equ 22
|
|
||||||
LEX_COLON db ":"
|
|
||||||
LEX_COLON_len equ $ - LEX_COLON
|
|
||||||
TOKEN_SEMI equ 23
|
|
||||||
LEX_SEMI db ";"
|
|
||||||
LEX_SEMI_len equ $ - LEX_SEMI
|
|
||||||
TOKEN_COMMA equ 24
|
|
||||||
LEX_COMMA db ","
|
|
||||||
LEX_COMMA_len equ $ - LEX_COMMA
|
|
||||||
TOKEN_PIPE equ 25
|
|
||||||
LEX_PIPE db "|"
|
|
||||||
LEX_PIPE_len equ $ - LEX_PIPE
|
|
||||||
TOKEN_AMP equ 26
|
|
||||||
LEX_AMP db "&"
|
|
||||||
LEX_AMP_len equ $ - LEX_AMP
|
|
||||||
TOKEN_EQEQ equ 27
|
|
||||||
LEX_EQEQ db "=="
|
|
||||||
LEX_EQEQ_len equ $ - LEX_EQEQ
|
|
||||||
TOKEN_LBRACKET equ 28
|
|
||||||
LEX_LBRACKET db "["
|
|
||||||
LEX_LBRACKET_len equ $ - LEX_LBRACKET
|
|
||||||
TOKEN_RBRACKET equ 29
|
|
||||||
LEX_RBRACKET db "]"
|
|
||||||
LEX_RBRACKET_len equ $ - LEX_RBRACKET
|
|
||||||
TOKEN_IDENT equ 30
|
|
||||||
LEX_IDENT db "<identifier>"
|
|
||||||
LEX_IDENT_len equ $ - LEX_IDENT
|
|
||||||
TOKEN_NUMBER equ 31
|
|
||||||
LEX_NUMBER db "<number>"
|
|
||||||
LEX_NUMBER_len equ $ - LEX_NUMBER
|
|
||||||
TOKEN_STRING equ 32
|
|
||||||
LEX_STRING db "<string>"
|
|
||||||
LEX_STRING_len equ $ - LEX_STRING
|
|
||||||
TOKEN_COMMENT equ 33
|
|
||||||
LEX_COMMENT db "<comment>"
|
|
||||||
LEX_COMMENT_len equ $ - LEX_COMMENT
|
|
||||||
|
|
||||||
|
|
||||||
section .text
|
section .text
|
||||||
;; rdi: length of previously matched lexeme
|
;; rdi: length of previously matched lexeme
|
||||||
|
|
@ -743,3 +542,27 @@ unwrap_token:
|
||||||
ret
|
ret
|
||||||
.panic:
|
.panic:
|
||||||
call panic
|
call panic
|
||||||
|
|
||||||
|
;; dil: expected token
|
||||||
|
peek_expect_token:
|
||||||
|
push rbp
|
||||||
|
mov rbp, rsp
|
||||||
|
push qword [rel cursor]
|
||||||
|
call expect_token
|
||||||
|
pop rdi
|
||||||
|
mov [rel cursor], rdi
|
||||||
|
pop rbp
|
||||||
|
ret
|
||||||
|
|
||||||
|
;; rdi: out-struct pointer
|
||||||
|
peek_lexeme:
|
||||||
|
push rbp
|
||||||
|
mov rbp, rsp
|
||||||
|
push rdi
|
||||||
|
push qword [rel cursor] ; save cursor
|
||||||
|
call find_lexeme
|
||||||
|
pop rdi
|
||||||
|
mov [rel cursor], rdi ; restore cursor
|
||||||
|
pop rax
|
||||||
|
pop rbp
|
||||||
|
ret
|
||||||
|
|
|
||||||
210
lang/src/tokeniser.inc
Normal file
210
lang/src/tokeniser.inc
Normal file
|
|
@ -0,0 +1,210 @@
|
||||||
|
section .rdata
|
||||||
|
align 8
|
||||||
|
LEXEMES:
|
||||||
|
dq LEX_NOT_A_LEXEME
|
||||||
|
dq LEX_LET
|
||||||
|
dq LEX_IF
|
||||||
|
dq LEX_ELSE
|
||||||
|
dq LEX_FN
|
||||||
|
dq LEX_RETURN
|
||||||
|
dq LEX_LOOP
|
||||||
|
dq LEX_BREAK
|
||||||
|
dq LEX_CONTINUE
|
||||||
|
dq LEX_TRUE
|
||||||
|
dq LEX_FALSE
|
||||||
|
dq LEX_BOOL
|
||||||
|
dq LEX_ARROW
|
||||||
|
dq LEX_I32
|
||||||
|
dq LEX_U32
|
||||||
|
dq LEX_EQUALS
|
||||||
|
dq LEX_PLUS
|
||||||
|
dq LEX_MINUS
|
||||||
|
dq LEX_RPARENS
|
||||||
|
dq LEX_LPARENS
|
||||||
|
dq LEX_RBRACE
|
||||||
|
dq LEX_LBRACE
|
||||||
|
dq LEX_COLON
|
||||||
|
dq LEX_SEMI
|
||||||
|
dq LEX_COMMA
|
||||||
|
dq LEX_PIPE
|
||||||
|
dq LEX_AMP
|
||||||
|
dq LEX_EQEQ
|
||||||
|
dq LEX_LBRACKET
|
||||||
|
dq LEX_RBRACKET
|
||||||
|
dq LEX_VOID
|
||||||
|
|
||||||
|
align 8
|
||||||
|
TOKENS:
|
||||||
|
db TOKEN_EOF ;; 0
|
||||||
|
db TOKEN_LET ;; 1
|
||||||
|
db TOKEN_IF ;; 2
|
||||||
|
db TOKEN_ELSE ;; 3
|
||||||
|
db TOKEN_FN ;; 4
|
||||||
|
db TOKEN_RETURN ;; 5
|
||||||
|
db TOKEN_LOOP ;; 6
|
||||||
|
db TOKEN_BREAK ;; 7
|
||||||
|
db TOKEN_CONTINUE ;; 8
|
||||||
|
db TOKEN_TRUE ;; 9
|
||||||
|
db TOKEN_FALSE ;; 10
|
||||||
|
db TOKEN_BOOL ;; 11
|
||||||
|
db TOKEN_ARROW ;; 12
|
||||||
|
db TOKEN_I32 ;; 13
|
||||||
|
db TOKEN_U32 ;; 14
|
||||||
|
db TOKEN_EQUALS ;; 15
|
||||||
|
db TOKEN_PLUS ;; 16
|
||||||
|
db TOKEN_MINUS ;; 17
|
||||||
|
db TOKEN_RPARENS ;; 18
|
||||||
|
db TOKEN_LPARENS ;; 19
|
||||||
|
db TOKEN_RBRACE ;; 20
|
||||||
|
db TOKEN_LBRACE ;; 21
|
||||||
|
db TOKEN_COLON ;; 22
|
||||||
|
db TOKEN_SEMI ;; 23
|
||||||
|
db TOKEN_COMMA ;; 24
|
||||||
|
db TOKEN_PIPE ;; 25
|
||||||
|
db TOKEN_AMP ;; 26
|
||||||
|
db TOKEN_EQEQ ;; 27
|
||||||
|
db TOKEN_LBRACKET ;; 28
|
||||||
|
db TOKEN_RBRACKET ;; 29
|
||||||
|
db TOKEN_VOID ;; 30
|
||||||
|
|
||||||
|
align 8
|
||||||
|
LEXEME_LENS:
|
||||||
|
dq 0
|
||||||
|
dq LEX_LET_len
|
||||||
|
dq LEX_IF_len
|
||||||
|
dq LEX_ELSE_len
|
||||||
|
dq LEX_FN_len
|
||||||
|
dq LEX_RETURN_len
|
||||||
|
dq LEX_LOOP_len
|
||||||
|
dq LEX_BREAK_len
|
||||||
|
dq LEX_CONTINUE_len
|
||||||
|
dq LEX_TRUE_len
|
||||||
|
dq LEX_FALSE_len
|
||||||
|
dq LEX_BOOL_len
|
||||||
|
dq LEX_ARROW_len
|
||||||
|
dq LEX_I32_len
|
||||||
|
dq LEX_U32_len
|
||||||
|
dq LEX_EQUALS_len
|
||||||
|
dq LEX_PLUS_len
|
||||||
|
dq LEX_MINUS_len
|
||||||
|
dq LEX_RPARENS_len
|
||||||
|
dq LEX_LPARENS_len
|
||||||
|
dq LEX_RBRACE_len
|
||||||
|
dq LEX_LBRACE_len
|
||||||
|
dq LEX_COLON_len
|
||||||
|
dq LEX_SEMI_len
|
||||||
|
dq LEX_COMMA_len
|
||||||
|
dq LEX_PIPE_len
|
||||||
|
dq LEX_AMP_len
|
||||||
|
dq LEX_EQEQ_len
|
||||||
|
dq LEX_LBRACKET_len
|
||||||
|
dq LEX_RBRACKET_len
|
||||||
|
dq LEX_VOID_len
|
||||||
|
|
||||||
|
align 8
|
||||||
|
NUM_LEXEMES: dq 30
|
||||||
|
|
||||||
|
LEX_NOT_A_LEXEME db "<not a lexeme>", 0
|
||||||
|
TOKEN_EOF equ 0
|
||||||
|
TOKEN_LET equ 1
|
||||||
|
LEX_LET db "let"
|
||||||
|
LEX_LET_len equ $ - LEX_LET
|
||||||
|
TOKEN_IF equ 2
|
||||||
|
LEX_IF db "if"
|
||||||
|
LEX_IF_len equ $ - LEX_IF
|
||||||
|
TOKEN_ELSE equ 3
|
||||||
|
LEX_ELSE db "else"
|
||||||
|
LEX_ELSE_len equ $ - LEX_ELSE
|
||||||
|
TOKEN_FN equ 4
|
||||||
|
LEX_FN db "fn"
|
||||||
|
LEX_FN_len equ $ - LEX_FN
|
||||||
|
TOKEN_RETURN equ 5
|
||||||
|
LEX_RETURN db "return"
|
||||||
|
LEX_RETURN_len equ $ - LEX_RETURN
|
||||||
|
TOKEN_LOOP equ 6
|
||||||
|
LEX_LOOP db "loop"
|
||||||
|
LEX_LOOP_len equ $ - LEX_LOOP
|
||||||
|
TOKEN_BREAK equ 7
|
||||||
|
LEX_BREAK db "break"
|
||||||
|
LEX_BREAK_len equ $ - LEX_BREAK
|
||||||
|
TOKEN_CONTINUE equ 8
|
||||||
|
LEX_CONTINUE db "continue"
|
||||||
|
LEX_CONTINUE_len equ $ - LEX_CONTINUE
|
||||||
|
TOKEN_TRUE equ 9
|
||||||
|
LEX_TRUE db "true"
|
||||||
|
LEX_TRUE_len equ $ - LEX_TRUE
|
||||||
|
TOKEN_FALSE equ 10
|
||||||
|
LEX_FALSE db "false"
|
||||||
|
LEX_FALSE_len equ $ - LEX_FALSE
|
||||||
|
TOKEN_BOOL equ 11
|
||||||
|
LEX_BOOL db "bool"
|
||||||
|
LEX_BOOL_len equ $ - LEX_BOOL
|
||||||
|
TOKEN_ARROW equ 12
|
||||||
|
LEX_ARROW db "->"
|
||||||
|
LEX_ARROW_len equ $ - LEX_ARROW
|
||||||
|
TOKEN_I32 equ 13
|
||||||
|
LEX_I32 db "i32"
|
||||||
|
LEX_I32_len equ $ - LEX_I32
|
||||||
|
TOKEN_U32 equ 14
|
||||||
|
LEX_U32 db "u32"
|
||||||
|
LEX_U32_len equ $ - LEX_U32
|
||||||
|
TOKEN_EQUALS equ 15
|
||||||
|
LEX_EQUALS db "="
|
||||||
|
LEX_EQUALS_len equ $ - LEX_EQUALS
|
||||||
|
TOKEN_PLUS equ 16
|
||||||
|
LEX_PLUS db "+"
|
||||||
|
LEX_PLUS_len equ $ - LEX_PLUS
|
||||||
|
TOKEN_MINUS equ 17
|
||||||
|
LEX_MINUS db "-"
|
||||||
|
LEX_MINUS_len equ $ - LEX_MINUS
|
||||||
|
TOKEN_RPARENS equ 18
|
||||||
|
LEX_RPARENS db ")"
|
||||||
|
LEX_RPARENS_len equ $ - LEX_RPARENS
|
||||||
|
TOKEN_LPARENS equ 19
|
||||||
|
LEX_LPARENS db "("
|
||||||
|
LEX_LPARENS_len equ $ - LEX_LPARENS
|
||||||
|
TOKEN_RBRACE equ 20
|
||||||
|
LEX_RBRACE db "}"
|
||||||
|
LEX_RBRACE_len equ $ - LEX_RBRACE
|
||||||
|
TOKEN_LBRACE equ 21
|
||||||
|
LEX_LBRACE db "{"
|
||||||
|
LEX_LBRACE_len equ $ - LEX_LBRACE
|
||||||
|
TOKEN_COLON equ 22
|
||||||
|
LEX_COLON db ":"
|
||||||
|
LEX_COLON_len equ $ - LEX_COLON
|
||||||
|
TOKEN_SEMI equ 23
|
||||||
|
LEX_SEMI db ";"
|
||||||
|
LEX_SEMI_len equ $ - LEX_SEMI
|
||||||
|
TOKEN_COMMA equ 24
|
||||||
|
LEX_COMMA db ","
|
||||||
|
LEX_COMMA_len equ $ - LEX_COMMA
|
||||||
|
TOKEN_PIPE equ 25
|
||||||
|
LEX_PIPE db "|"
|
||||||
|
LEX_PIPE_len equ $ - LEX_PIPE
|
||||||
|
TOKEN_AMP equ 26
|
||||||
|
LEX_AMP db "&"
|
||||||
|
LEX_AMP_len equ $ - LEX_AMP
|
||||||
|
TOKEN_EQEQ equ 27
|
||||||
|
LEX_EQEQ db "=="
|
||||||
|
LEX_EQEQ_len equ $ - LEX_EQEQ
|
||||||
|
TOKEN_LBRACKET equ 28
|
||||||
|
LEX_LBRACKET db "["
|
||||||
|
LEX_LBRACKET_len equ $ - LEX_LBRACKET
|
||||||
|
TOKEN_RBRACKET equ 29
|
||||||
|
LEX_RBRACKET db "]"
|
||||||
|
LEX_RBRACKET_len equ $ - LEX_RBRACKET
|
||||||
|
TOKEN_VOID equ 30
|
||||||
|
LEX_VOID db "void"
|
||||||
|
LEX_VOID_len equ $ - LEX_VOID
|
||||||
|
TOKEN_IDENT equ 31
|
||||||
|
LEX_IDENT db "<identifier>"
|
||||||
|
LEX_IDENT_len equ $ - LEX_IDENT
|
||||||
|
TOKEN_NUMBER equ 32
|
||||||
|
LEX_NUMBER db "<number>"
|
||||||
|
LEX_NUMBER_len equ $ - LEX_NUMBER
|
||||||
|
TOKEN_STRING equ 33
|
||||||
|
LEX_STRING db "<string>"
|
||||||
|
LEX_STRING_len equ $ - LEX_STRING
|
||||||
|
TOKEN_COMMENT equ 34
|
||||||
|
LEX_COMMENT db "<comment>"
|
||||||
|
LEX_COMMENT_len equ $ - LEX_COMMENT
|
||||||
Loading…
Reference in a new issue