Grammar
(program (expression) a-program)
(expression (number) lit-exp)
(expression (identifier) var-exp)
(expression (primitive "(" (separated-list
expression ",") ")") primapp-exp)
(primitive ("+") add-prim)
(primitive ("-") subtract-prim)
(primitive ("*") mult-prim)
(primitive ("add1") incr-prim)
(primitive ("sub1") decr-prim)