- | Constant (Int (s)) -> make_info_def (type_of_s "int")
- | Constant (Float (s,kind)) ->
+ | Constant (Int (s,kind)) ->
+ (* this seems really unpleasant, but perhaps the type needs to be set
+ up in some way that allows pretty printing *)
+ make_info_def
+ (match kind with
+ (* matches limited by what is generated in lexer_c.mll *)
+ Si(Signed,CInt) -> type_of_s "int"
+ | Si(UnSigned,CInt) -> type_of_s "unsigned int"
+ | Si(Signed,CLong) -> type_of_s "long"
+ | Si(UnSigned,CLong) -> type_of_s "unsigned long"
+ | Si(Signed,CLongLong) -> type_of_s "long long"
+ | Si(UnSigned,CLongLong) -> type_of_s "unsigned long long"
+ | _ -> failwith "unexpected kind for constant")
+ | Constant (Float (s,kind)) ->