Commit | Line | Data |
---|---|---|
34e49164 C |
1 | type inherited = bool (* true if inherited *) |
2 | type keep_binding = Unitary (* need no info *) | |
3 | | Nonunitary (* need an env entry *) | Saved (* need a witness *) | |
4 | ||
faf9a90c | 5 | type typeC = |
34e49164 | 6 | ConstVol of const_vol * typeC |
faf9a90c C |
7 | | BaseType of baseType |
8 | | SignedT of sign * typeC option | |
34e49164 C |
9 | | Pointer of typeC |
10 | | FunctionPointer of typeC (* only return type *) | |
11 | | Array of typeC (* drop size info *) | |
faf9a90c | 12 | | EnumName of bool (* true if a metaId *) * string |
34e49164 C |
13 | | StructUnionName of structUnion * bool (* true if type metavar *) * string |
14 | | TypeName of string | |
15 | | MetaType of (string * string) * keep_binding * inherited | |
16 | | Unknown (* for metavariables of type expression *^* *) | |
17 | ||
18 | and tagged_string = string | |
faf9a90c | 19 | |
34e49164 | 20 | and baseType = VoidType | CharType | ShortType | IntType | DoubleType |
faf9a90c | 21 | | FloatType | LongType | LongLongType | BoolType |
34e49164 C |
22 | |
23 | and structUnion = Struct | Union | |
24 | ||
25 | and sign = Signed | Unsigned | |
26 | ||
27 | and const_vol = Const | Volatile | |
28 | ||
faf9a90c | 29 | val type2c : typeC -> string |
34e49164 C |
30 | val typeC : typeC -> unit |
31 | ||
32 | val compatible : typeC -> typeC option -> bool |