datatype exp =
Var of ident
+ | Cast of Type.vtype * exp
| ConstExp of Word32.word
+ | StringExp of string
| OpExp of oper * exp list
| Marked of (* Kane *) exp Mark.marked
| FuncCall of ident * (exp list)
datatype exp =
Var of ident
+ | Cast of Type.vtype * exp
| ConstExp of Word32.word
+ | StringExp of string
| OpExp of oper * exp list
| Marked of exp Mark.marked
| FuncCall of ident * (exp list)
| pp_oper GE = ">="
fun pp_exp (Var(id)) = pp_ident id
+ | pp_exp (Cast(ty, exp)) = "["^(Type.Print.pp_type ty)^"]"^(pp_exp exp)
| pp_exp (ConstExp(c)) = Word32Signed.toString c
+ | pp_exp (StringExp(s)) = "\"" ^ s ^ "\""
| pp_exp (OpExp(oper, [e])) =
pp_oper oper ^ "(" ^ pp_exp e ^ ")"
| pp_exp (OpExp(oper, [e1,e2])) =