| 1 | |
| 2 | type finalType = Ast_c.fullType |
| 3 | |
| 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 | |
| 18 | (* lookup *) |
| 19 | val type_field: |
| 20 | string -> (Ast_c.structUnion * Ast_c.structType) -> Ast_c.fullType |
| 21 | |
| 22 | (* typing rules *) |
| 23 | val lub: |
| 24 | Ast_c.arithOp -> finalType option -> finalType option -> Ast_c.exp_info |
| 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 |
| 51 | |
| 52 | (* helpers bis *) |
| 53 | val is_function_type: finalType -> bool |
| 54 | val function_pointer_type_opt: finalType -> Ast_c.functionType option |