Release coccinelle-0.2.0rc1
[bpt/coccinelle.git] / parsing_cocci / type_cocci.mli
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
5 type typeC =
6 ConstVol of const_vol * typeC
7 | BaseType of baseType
8 | SignedT of sign * typeC option
9 | Pointer of typeC
10 | FunctionPointer of typeC (* only return type *)
11 | Array of typeC (* drop size info *)
12 | EnumName of bool (* true if a metaId *) * string
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
19
20 and baseType = VoidType | CharType | ShortType | IntType | DoubleType
21 | FloatType | LongType | LongLongType | BoolType
22
23 and structUnion = Struct | Union
24
25 and sign = Signed | Unsigned
26
27 and const_vol = Const | Volatile
28
29 val type2c : typeC -> string
30 val typeC : typeC -> unit
31
32 val compatible : typeC -> typeC option -> bool