Release coccinelle-0.1.8
[bpt/coccinelle.git] / parsing_c / type_c.mli
CommitLineData
91eba41f
C
1
2type finalType = Ast_c.fullType
3
0708f913
C
4(* completed TypeName, removed ParenType, use StructUnionName when can *)
5type completed_and_simplified = Ast_c.fullType
6
7type completed_typedef = Ast_c.fullType
8type removed_typedef = Ast_c.fullType
9
10val is_completed_and_simplified: finalType -> bool
11val is_completed_typedef_fullType : finalType -> bool
12val is_removed_typedef_fullType: finalType -> bool
13
14val remove_typedef: completed_typedef -> removed_typedef
15
16
17
91eba41f
C
18(* lookup *)
19val type_field:
20 string -> (Ast_c.structUnion * Ast_c.structType) -> Ast_c.fullType
21
22(* typing rules *)
23val lub:
708f4980 24 Ast_c.arithOp -> finalType option -> finalType option -> Ast_c.exp_info
91eba41f
C
25
26(* helpers *)
27val structdef_to_struct_name:
28 finalType -> finalType
29val fake_function_type:
30 finalType option -> Ast_c.argument Ast_c.wrap2 list -> finalType option
31
32(* return normalize types ? *)
33val type_of_function:
34 Ast_c.definition -> finalType
35val type_of_decl:
36 Ast_c.declaration -> finalType
37val structdef_of_decl:
38 Ast_c.declaration -> Ast_c.structUnion * Ast_c.structType
39
40
41(* builders *)
42val make_info_def: finalType -> Ast_c.exp_info
43val make_info: Ast_c.exp_type -> Ast_c.exp_info
44
45val noTypeHere: Ast_c.exp_info
46
47val do_with_type:
48 (finalType -> Ast_c.exp_info) -> Ast_c.exp_info -> Ast_c.exp_info
49val get_opt_type:
50 Ast_c.expression -> finalType option
0708f913
C
51
52(* helpers bis *)
53val is_function_type: finalType -> bool
54val function_pointer_type_opt: finalType -> Ast_c.functionType option