def calculate(self, vars_value): """Function returns the result of the equation.""" tokens = copy.deepcopy(self.token_list) variable = self.var_value(vars_value) parser = Parser(self.token_list, variable) tree = parser.parse() interpreter = Interpreter() value = interpreter.visit(tree) self.token_list = tokens return value.value
ctx.symbol_table = symb_table while (True): line = input('cassian: ') if (line == ':q'): break elif (line == 'st'): print(ctx.symbol_table) continue elif (line == 'cls'): ctx.restart(['null', 'false', 'true']) continue tokens, error = lex.scanner('<stdin>', line) if (error): print(error) else: # print(tokens) ast = par.parse(tokens) if (ast.error): print(ast.error) else: # print(type(ast.node).__name__) res = inter.visit(ast.node, ctx) if (res.error): print(res.error) elif (res.value): print(res.value)