def test_interpreter(): from lox.scanner import Scanner from lox.parser import Parser from lox.ast.ast_printer import ASTPrinter from lox.interpreter import Interpreter source = """ 1 + 999 """ lox_scan = Scanner(source) tokens = lox_scan.scanTokens() print("Tokens:") for tok in tokens: print(tok) print("\n") lox_parser = Parser(tokens) result = lox_parser.parse() printer = ASTPrinter() print(printer.print(result)) print(Interpreter().evaluate(result))
def test_scanner(): from lox.scanner import Scanner lox_scanner = Scanner(""" var x = 12.1 if else for // kdjkdkkd / {} () print "fias'' // " class @ " student // this is a comment (( )){} // grouping stuff !*+-/=<> <= == // operators """) token_list = lox_scanner.scanTokens() for tok in token_list: print(tok)
def run(source): scan = Scanner(source) tokens = scan.scanTokens() # for token in tokens: # print(token) pars = Parser(tokens) result = pars.parse() print(ASTPrinter().print(result)) print(Interpreter().interpret(result))
def test_parser(): from lox.scanner import Scanner from lox.parser import Parser from lox.ast.ast_printer import ASTPrinter source = " 1 + 2 >= 133 + \" gggg \"" lox_scan = Scanner(source) tokens = lox_scan.scanTokens() print("Tokens:") for tok in tokens: print(tok) print("\n") lox_parser = Parser(tokens) result = lox_parser.parse() printer = ASTPrinter() print(printer.print(result))