Coccinelle release-1.0.0-rc11
[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 arg : Ast_c.argument printer;
13 statement : Ast_c.statement printer;
14 decl : Ast_c.declaration printer;
15 field : Ast_c.field printer;
16 field_list : Ast_c.field list printer;
17 init : Ast_c.initialiser printer;
18 init_list : (Ast_c.initialiser Ast_c.wrap2 list) printer;
19 param : Ast_c.parameterType printer;
20 paramlist : (Ast_c.parameterType Ast_c.wrap2 list) printer;
21 ty : Ast_c.fullType printer;
22 type_with_ident : type_with_ident;
23 toplevel : Ast_c.toplevel printer;
24 flow : Control_flow_c.node printer
25 }
26
27 val mk_pretty_printers :
28 pr_elem:Ast_c.info printer ->
29 pr_space:unit printer ->
30 pr_nl: unit printer ->
31 pr_indent: unit printer ->
32 pr_outdent: unit printer ->
33 pr_unindent: unit printer ->
34 pretty_printers
35
36 (* used in pycocci mostly *)
37 val pp_expression_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
38 Ast_c.expression printer
39 val pp_arg_list_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
40 (Ast_c.argument Ast_c.wrap2 list) printer
41 val pp_arg_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
42 Ast_c.argument printer
43 val pp_decl_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
44 Ast_c.declaration printer
45 val pp_field_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
46 Ast_c.field printer
47 val pp_field_list_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
48 Ast_c.field list printer
49 val pp_statement_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
50 Ast_c.statement printer
51 val pp_param_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
52 Ast_c.parameterType printer
53 val pp_param_list_gen: pr_elem:Ast_c.info printer -> pr_space: unit printer ->
54 (Ast_c.parameterType Ast_c.wrap2 list) printer
55 val pp_type_gen: pr_elem:Ast_c.info printer -> pr_space:unit printer ->
56 Ast_c.fullType printer
57 val pp_init_gen: pr_elem:Ast_c.info printer -> pr_space:unit printer ->
58 Ast_c.initialiser printer
59 val pp_init_list_gen: pr_elem:Ast_c.info printer -> pr_space:unit printer ->
60 (Ast_c.initialiser Ast_c.wrap2 list) printer
61 val pp_program_gen : pr_elem:Ast_c.info printer -> pr_space:unit printer ->
62 Ast_c.toplevel printer
63
64
65 (* used in pretty_print_engine.ml mostly *)
66 val pp_expression_simple: Ast_c.expression printer
67 val pp_init_simple: Ast_c.initialiser printer
68 val pp_type_simple: Ast_c.fullType printer
69 val pp_decl_simple: Ast_c.declaration printer
70 val pp_field_simple: Ast_c.field printer
71 val pp_statement_simple: Ast_c.statement printer
72 val pp_toplevel_simple: Ast_c.toplevel printer
73
74 val debug_info_of_node:
75 Ograph_extended.nodei -> Control_flow_c.cflow -> string
76
77 val string_of_expression: Ast_c.expression -> string
78 val string_of_toplevel: Ast_c.toplevel -> string