fix(parser): minor improvements for incomplete statements

This commit is contained in:
2026-02-08 14:31:50 +01:00
parent d23875524e
commit 94a3e3cbe2

View File

@@ -18,7 +18,7 @@ class Parser:
} }
STATEMENT_BOUNDARY: set[TokenType] = { STATEMENT_BOUNDARY: set[TokenType] = {
TokenType.FOR, TokenType.WHILE, TokenType.IF TokenType.FOR, TokenType.WHILE, TokenType.IF, TokenType.CLASS, TokenType.FUN, TokenType.LET, TokenType.RETURN
} }
def __init__(self, tokens: list[Token]): def __init__(self, tokens: list[Token]):
@@ -51,10 +51,10 @@ class Parser:
return False return False
return self.peek().type == token_type return self.peek().type == token_type
def advance(self): def advance(self) -> Token:
token: Token = self.peek() if not self.is_at_end():
self.current += 1 self.current += 1
return token return self.previous()
def match(self, *types: TokenType) -> bool: def match(self, *types: TokenType) -> bool:
for token_type in types: for token_type in types: