示例#1
0
 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)
示例#2
0
    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)
示例#3
0
文件: lox.py 项目: ehomrich/lox
    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)
示例#4
0
文件: lox.py 项目: yashvesikar/pylox
    def run(self, source) -> None:

        scanner = Scanner(source)
        self.tokens = scanner.scan_tokens()
        pp.pprint(self.tokens)