calculator/main.py

25 lines
717 B
Python

import sys
from calculator.interpreter import Interpreter
from calculator.lexer import Lexer
from calculator.parser_ import Parser
if __name__ == "__main__":
MIN_PYTHON = (3, 10)
if sys.version_info < MIN_PYTHON:
sys.exit("Python {}.{} or later is required".format(*MIN_PYTHON))
while True:
try:
text = input(">> ")
lexer = Lexer(text)
tokens = lexer.generate_tokens()
parser = Parser(tokens)
tree = parser.parse()
if not tree:
continue
interpreter = Interpreter()
value = interpreter.visit(tree)
print(value)
except Exception as e:
print(e)