+ | pp_exp (UNOP (unop, e1)) =
+ pp_unop unop ^ "(" ^ pp_exp e1 ^ ")"
+ | pp_exp (CALL (f, l, sz)) =
+ Symbol.name f ^ "(" ^ (String.concatWith ", " (List.map (fn (e, _) => pp_exp e) l)) ^ ")"
+ | pp_exp (MEMORY exp) = "M[" ^ pp_exp exp ^ "]"
+ | pp_exp (ALLOC(e)) = "NEW(" ^ pp_exp e ^ ")"