diff --git a/lang/src/tokeniser.asm b/lang/src/tokeniser.asm index 40eea1a..6202fff 100644 --- a/lang/src/tokeniser.asm +++ b/lang/src/tokeniser.asm @@ -24,6 +24,7 @@ global tokeniser_print global find_lexeme global expect_token global unwrap_token +global skip_token global peek_expect_token global peek_lexeme @@ -590,6 +591,17 @@ peek_lexeme: pop rbp ret +;; Skips one token ahead, without returning it. +skip_token: + push rbp + mov rbp, rsp + + sub rsp, 24 + lea rdi, [rsp] + call find_lexeme + add rsp, 24 + pop rbp + tokeniser_get_cursor: mov rax, [rel cursor] ret