test numbers
This commit is contained in:
parent
44ee13246e
commit
43a06ad55c
|
|
@ -323,6 +323,7 @@ is_ident:
|
|||
push r13
|
||||
push r14
|
||||
push rdi
|
||||
|
||||
mov rax, [rel cursor]
|
||||
mov r12, [rel buffer]
|
||||
mov r13, [rel buffer_len]
|
||||
|
|
@ -393,7 +394,7 @@ is_number:
|
|||
mov dil, [r12 + r14]
|
||||
call is_whitespace
|
||||
test rax, rax
|
||||
je .number
|
||||
jne .number
|
||||
cmp dil, '_'
|
||||
je .loop_next
|
||||
call is_numeric
|
||||
|
|
@ -572,4 +573,5 @@ find_lexeme:
|
|||
.is_number:
|
||||
mov rdi, [rsp + 8]
|
||||
mov qword [rdi], TOKEN_NUMBER
|
||||
mov [rdi + 16], rax
|
||||
jmp .epilogue
|
||||
|
|
|
|||
|
|
@ -158,6 +158,18 @@ fn main() {
|
|||
Lexeme(10, ""),
|
||||
Lexeme(23, ""),
|
||||
Lexeme(20, ""),
|
||||
]);
|
||||
|
||||
eprint!("Initializing tokeniser.. ");
|
||||
tokeniser_init(c"tests/tokens/number.l".as_ptr());
|
||||
eprintln!("ok.");
|
||||
|
||||
assert_eq!(&collect_tokens()[..], &[
|
||||
Lexeme(31, "1234"),
|
||||
Lexeme(31, "123_345_"),
|
||||
Lexeme(31, "1234____56"),
|
||||
Lexeme(31, "1"),
|
||||
Lexeme(31, "0"),
|
||||
]);
|
||||
|
||||
eprintln!("Finished tokenising.");
|
||||
|
|
|
|||
5
lang/tests/tokens/number.l
Normal file
5
lang/tests/tokens/number.l
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
1234
|
||||
123_345_
|
||||
1234____56
|
||||
1
|
||||
0
|
||||
Loading…
Reference in a new issue