9e8e4751fb2bcd2bb99e3e8277d8fac857f5cf6f
[bpt/coccinelle.git] / parsing_c / pretty_print_c.mli
1
2 type pr_elem_func = Ast_c.info -> unit
3 type pr_space_func = unit -> unit
4 type pr_nl_func = unit -> unit
5 type pr_indent_func = unit -> unit
6 type pr_outdent_func = unit -> unit
7 type pr_unindent_func = unit -> unit
8
9 type expression_printer = Ast_c.expression -> unit
10 type arg_list_printer = Ast_c.argument Ast_c.wrap2 list -> unit
11 type statement_printer = Ast_c.statement -> unit
12 type declaration_printer = Ast_c.declaration -> unit
13 type initialiser_printer = Ast_c.initialiser -> unit
14 type param_printer = Ast_c.parameterType -> unit
15 type type_printer = Ast_c.fullType -> unit
16 type type_with_ident_printer =
17 (string * Ast_c.info) option ->
18 (Ast_c.storage * Ast_c.il) option -> Ast_c.fullType ->
19 Ast_c.attribute list -> unit
20 type toplevel_printer = Ast_c.toplevel -> unit
21 type flow_printer = Control_flow_c.node -> unit
22
23 type pretty_printers =
24 {expression : expression_printer;
25 arg_list : arg_list_printer;
26 statement : statement_printer;
27 decl : declaration_printer;
28 init : initialiser_printer;
29 param : param_printer;
30 ty : type_printer;
31 type_with_ident : type_with_ident_printer;
32 toplevel : toplevel_printer;
33 flow : flow_printer}
34
35 val pretty_print_c :
36 pr_elem_func -> pr_space_func -> pr_nl_func -> pr_indent_func ->
37 pr_outdent_func -> pr_unindent_func -> pretty_printers
38
39
40 val pp_expression_gen : pr_elem_func -> pr_space_func -> expression_printer
41 val pp_arg_list_gen : pr_elem_func -> pr_space_func -> arg_list_printer
42 val pp_statement_gen : pr_elem_func -> pr_space_func -> statement_printer
43 val pp_decl_gen : pr_elem_func -> pr_space_func -> declaration_printer
44 val pp_init_gen : pr_elem_func -> pr_space_func -> initialiser_printer
45 val pp_param_gen : pr_elem_func -> pr_space_func -> param_printer
46
47 val pp_type_gen : pr_elem_func -> pr_space_func -> type_printer
48 val pp_type_with_ident_gen :
49 pr_elem_func -> pr_space_func -> type_with_ident_printer
50
51 val pp_program_gen : pr_elem_func -> pr_space_func -> toplevel_printer
52
53
54 val pp_expression_simple : expression_printer
55 val pp_statement_simple : statement_printer
56 val pp_type_simple : type_printer
57 val pp_init_simple : initialiser_printer
58 val pp_toplevel_simple : toplevel_printer
59 val pp_flow_simple: flow_printer
60
61
62 val debug_info_of_node: Ograph_extended.nodei -> Control_flow_c.cflow -> string
63
64 val string_of_expression: Ast_c.expression -> string