#!/usr/bin/env python3 import sys from calc.lexer import tokenize, LexError from calc.parser import parse, ParseError from calc.evaluator import evaluate, EvalError def main(): if len(sys.argv) != 2: print('usage: calc.py ', file=sys.stderr) sys.exit(1) try: result = evaluate(parse(tokenize(sys.argv[1]))) print(result) except (LexError, ParseError, EvalError) as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) if __name__ == '__main__': main()