diff --git a/src/runner.py b/src/runner.py index b42b775..9bb6467 100644 --- a/src/runner.py +++ b/src/runner.py @@ -22,7 +22,13 @@ class Runner: @staticmethod def run(source: str, path: Optional[Path] = None): lexer: Lexer = Lexer(source, path) - tokens: list[Token] = lexer.process() + tokens: list[Token] + try: + tokens = lexer.process() + except: + print("Partially parsed tokens:") + print(lexer.tokens) + return print(list(filter(lambda t: t.type not in Parser.IGNORE, tokens))) if Pebble.had_error: diff --git a/src/token/lexer.py b/src/token/lexer.py index af94adf..a22e527 100644 --- a/src/token/lexer.py +++ b/src/token/lexer.py @@ -21,13 +21,8 @@ class Lexer: raise SyntaxError(f"[ERROR] Error at {self.start_pos}: {msg}") def process(self) -> list[Token]: - try: - self.scan_tokens() - self.tokens.append(Token(TokenType.EOF, "", None, self.get_position())) - except Exception as e: - print("Partially parsed tokens:") - print(self.tokens) - raise e + self.scan_tokens() + self.tokens.append(Token(TokenType.EOF, "", None, self.get_position())) return self.tokens def is_at_end(self) -> bool: