minimathematica.py 525 Bytes
from support.parsing import parse
from support.canonicalize import simplify
from support.to_string import expr_to_string

import readline


def eval(expr):
    result_parens = expr_to_string(simplify(parse(expr)), use_parens=True)
    print(result_parens)


while True:
    try:
        expr = input("minimathematica$ ")
        if expr in ['quit', 'quit()', 'exit', 'exit()']:
            break
    except EOFError:
        print()
        break
    except KeyboardInterrupt:
        print()
        continue
    eval(expr)