def run(self, source): scanner = Scanner(source, self) tokens = scanner.scan_tokens() statements = Parser(tokens, self).parse() if self.had_error: return resolver = self.resolver.resolve(statements) if self.had_error: return self.interpreter.interpret(statements)
def run_code(self, source_code): scanner = Scanner(source_code, self.error) tokens = scanner.scan_tokens() parser = Parser(tokens, self.error_token) expr = parser.parse() if Lox.has_error: return # print(AstPrinter().print(expr)) self.interpreter.interpret(expr)
def run(source: str) -> None: try: scanner = Scanner(source) tokens = scanner.scan_tokens() parser = Parser(tokens) stmts = parser.parse() Lox.interpreter.interpret(stmts) except ParseError as pe: Lox.error(pe.token, str(pe)) except LoxRuntimeError as lre: Lox.runtime_error(lre)
def run(self, source) -> None: scanner = Scanner(source) self.tokens = scanner.scan_tokens() pp.pprint(self.tokens)