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