Coccinelle release 0.2.5-rc3
[bpt/coccinelle.git] / parsing_c / pretty_print_c.mli
1 type type_with_ident =
2 (string * Ast_c.info) option ->
3 (Ast_c.storage * Ast_c.il) option ->
4 Ast_c.fullType ->
5 Ast_c.attribute list -> unit
6
7 type 'a printer = 'a -> unit
8
9 type pretty_printers = {
10 expression : Ast_c.expression printer;
11 arg_list : (Ast_c.argument Ast_c.wrap2 list) printer;
12 statement : Ast_c.statement printer;
13 decl : Ast_c.declaration printer;
14 field : Ast_c.field printer;
15 init : Ast_c.initialiser printer;
16 param : Ast_c.parameterType printer;
17 paramlist : (Ast_c.parameterType Ast_c.wrap2 list) printer;
18 ty : Ast_c.fullType printer;
19 type_with_ident : type_with_ident;
20 toplevel : Ast_c.toplevel printer;
21 flow : Control_flow_c.node printer
22 }
23
24 val mk_pretty_printers :
25 pr_elem:Ast_c.info printer ->
26 pr_space:unit printer ->
27 pr_nl: unit printer ->
28 pr_indent: unit printer ->
29 pr_outdent: unit printer ->
30 pr_unindent: unit printer ->
31 pretty_printers
32
33 (* used in pycocci mostly *)
34 val pp_expression_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
35 Ast_c.expression printer
36 val pp_arg_list_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
37 (Ast_c.argument Ast_c.wrap2 list) printer
38 val pp_decl_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
39 Ast_c.declaration printer
40 val pp_field_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
41 Ast_c.field printer
42 val pp_statement_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
43 Ast_c.statement printer
44 val pp_param_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
45 Ast_c.parameterType printer
46 val pp_param_list_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
47 (Ast_c.parameterType Ast_c.wrap2 list) printer
48 val pp_type_gen: pr_elem:Ast_c.info printer -> pr_space:unit printer ->
49 Ast_c.fullType printer
50 val pp_init_gen: pr_elem:Ast_c.info printer -> pr_space:unit printer ->
51 Ast_c.initialiser printer
52 val pp_program_gen : pr_elem:Ast_c.info printer -> pr_space:unit printer ->
53 Ast_c.toplevel printer
54
55
56 (* used in pretty_print_engine.ml mostly *)
57 val pp_expression_simple: Ast_c.expression printer
58 val pp_init_simple: Ast_c.initialiser printer
59 val pp_type_simple: Ast_c.fullType printer
60 val pp_decl_simple: Ast_c.declaration printer
61 val pp_field_simple: Ast_c.field printer
62 val pp_statement_simple: Ast_c.statement printer
63 val pp_toplevel_simple: Ast_c.toplevel printer
64
65 val debug_info_of_node:
66 Ograph_extended.nodei -> Control_flow_c.cflow -> string
67
68 val string_of_expression: Ast_c.expression -> string
69 val string_of_toplevel: Ast_c.toplevel -> string