fix(parser): minor improvements for incomplete statements
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user