#!/usr/bin/env python3 """calc — evaluate an arithmetic expression from the command line.""" import sys from calc.lexer import LexError, tokenize from calc.parser import ParseError, parse from calc.evaluator import EvalError, evaluate 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 exc: print(f"error: {exc}", file=sys.stderr) sys.exit(1) if __name__ == "__main__": main()