rpn-python/main.py

41 lines
649 B
Python

from lexer import Lexer
from interpreter import Interpreter
from constants import DEC
def print_stack(interpreter, stack):
for item in stack:
if interpreter.mode == DEC and item.is_integer():
print(int(item))
else:
print(interpreter.mode_func(item))
def main():
interpreter = Interpreter()
while True:
try:
text = input('> ')
except (EOFError, KeyboardInterrupt):
break
if not text:
continue
if text == 'exit':
break
lexer = Lexer(text)
try:
stack = interpreter.parse(lexer)
except Exception as exception:
print(exception)
print_stack(interpreter, stack)
if __name__ == "__main__":
main()