#! /usr/bin/env python
from decimal import Overflow, InvalidOperation, DivisionByZero
import sys

from rpn import solve_rpn, RPNError

def log_error(message: str, title='Error'):
    '''Print a message to stderr.'''
    print("rpn: {}: {}".format(title, message), file=sys.stderr)

if (len(sys.argv) < 2):
    log_error("No equation given")
else:
    try:
        result = solve_rpn(sys.argv[1])
    except RPNError as err:
        log_error(err.message)
    except (Overflow, InvalidOperation, DivisionByZero) as err:
        log_error(err, 'decimal.' + err.__class__.__name__)
    else:
        if result:
            print(result)
