Coccinelle release-1.0.0-rc11
[bpt/coccinelle.git] / parsing_cocci / visitor_ast0.mli
1 (*
2 * Copyright 2012, INRIA
3 * Julia Lawall, Gilles Muller
4 * Copyright 2010-2011, INRIA, University of Copenhagen
5 * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix
6 * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
7 * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
8 * This file is part of Coccinelle.
9 *
10 * Coccinelle is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, according to version 2 of the License.
13 *
14 * Coccinelle is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with Coccinelle. If not, see <http://www.gnu.org/licenses/>.
21 *
22 * The authors reserve the right to distribute this or future versions of
23 * Coccinelle under other licenses.
24 *)
25
26
27 val combiner_functions : 'a Visitor_ast0_types.combiner_functions
28 val combiner :
29 ('a -> 'a -> 'a) ->
30 'a -> 'a Visitor_ast0_types.combiner_functions ->
31 'a Visitor_ast0_types.combiner_rec_functions
32
33 val flat_combiner :
34 ('a -> 'a -> 'a) -> 'a ->
35 ((Ast_cocci.meta_name,'a) Visitor_ast0_types.flat_cmcode) ->
36 ((string,'a) Visitor_ast0_types.flat_cmcode) ->
37 ((Ast_cocci.constant,'a) Visitor_ast0_types.flat_cmcode) ->
38 ((Ast_cocci.assignOp,'a) Visitor_ast0_types.flat_cmcode) ->
39 ((Ast_cocci.fixOp,'a) Visitor_ast0_types.flat_cmcode) ->
40 ((Ast_cocci.unaryOp,'a) Visitor_ast0_types.flat_cmcode) ->
41 ((Ast_cocci.binaryOp,'a) Visitor_ast0_types.flat_cmcode) ->
42 ((Ast_cocci.const_vol,'a) Visitor_ast0_types.flat_cmcode) ->
43 ((Ast_cocci.sign,'a) Visitor_ast0_types.flat_cmcode) ->
44 ((Ast_cocci.structUnion,'a) Visitor_ast0_types.flat_cmcode) ->
45 ((Ast_cocci.storage,'a) Visitor_ast0_types.flat_cmcode) ->
46 ((Ast_cocci.inc_file,'a) Visitor_ast0_types.flat_cmcode) ->
47 ((Ast0_cocci.expression Ast0_cocci.dots,'a) Visitor_ast0_types.ccode) ->
48 ((Ast0_cocci.initialiser Ast0_cocci.dots,'a) Visitor_ast0_types.ccode) ->
49 ((Ast0_cocci.parameterTypeDef Ast0_cocci.dots,'a)
50 Visitor_ast0_types.ccode) ->
51 ((Ast0_cocci.statement Ast0_cocci.dots,'a) Visitor_ast0_types.ccode) ->
52 ((Ast0_cocci.declaration Ast0_cocci.dots,'a) Visitor_ast0_types.ccode) ->
53 ((Ast0_cocci.case_line Ast0_cocci.dots,'a) Visitor_ast0_types.ccode) ->
54 ((Ast0_cocci.ident,'a) Visitor_ast0_types.ccode) ->
55 ((Ast0_cocci.expression,'a) Visitor_ast0_types.ccode) ->
56 ((Ast0_cocci.typeC,'a) Visitor_ast0_types.ccode) ->
57 ((Ast0_cocci.initialiser,'a) Visitor_ast0_types.ccode) ->
58 ((Ast0_cocci.parameterTypeDef,'a) Visitor_ast0_types.ccode) ->
59 ((Ast0_cocci.declaration,'a) Visitor_ast0_types.ccode) ->
60 ((Ast0_cocci.statement,'a) Visitor_ast0_types.ccode) ->
61 ((Ast0_cocci.case_line,'a) Visitor_ast0_types.ccode) ->
62 ((Ast0_cocci.top_level,'a) Visitor_ast0_types.ccode) ->
63 'a Visitor_ast0_types.combiner_rec_functions
64
65 val rebuilder_functions : Visitor_ast0_types.rebuilder_functions
66 val rebuilder : Visitor_ast0_types.rebuilder_functions ->
67 Visitor_ast0_types.rebuilder_rec_functions
68
69 val flat_rebuilder :
70 (Ast_cocci.meta_name Visitor_ast0_types.rmcode) ->
71 (string Visitor_ast0_types.rmcode) ->
72 (Ast_cocci.constant Visitor_ast0_types.rmcode) ->
73 (Ast_cocci.assignOp Visitor_ast0_types.rmcode) ->
74 (Ast_cocci.fixOp Visitor_ast0_types.rmcode) ->
75 (Ast_cocci.unaryOp Visitor_ast0_types.rmcode) ->
76 (Ast_cocci.binaryOp Visitor_ast0_types.rmcode) ->
77 (Ast_cocci.const_vol Visitor_ast0_types.rmcode) ->
78 (Ast_cocci.sign Visitor_ast0_types.rmcode) ->
79 (Ast_cocci.structUnion Visitor_ast0_types.rmcode) ->
80 (Ast_cocci.storage Visitor_ast0_types.rmcode) ->
81 (Ast_cocci.inc_file Visitor_ast0_types.rmcode) ->
82 (Ast0_cocci.expression Ast0_cocci.dots Visitor_ast0_types.rcode) ->
83 (Ast0_cocci.initialiser Ast0_cocci.dots Visitor_ast0_types.rcode) ->
84 (Ast0_cocci.parameterTypeDef Ast0_cocci.dots Visitor_ast0_types.rcode) ->
85 (Ast0_cocci.statement Ast0_cocci.dots Visitor_ast0_types.rcode) ->
86 (Ast0_cocci.declaration Ast0_cocci.dots Visitor_ast0_types.rcode) ->
87 (Ast0_cocci.case_line Ast0_cocci.dots Visitor_ast0_types.rcode) ->
88 (Ast0_cocci.ident Visitor_ast0_types.rcode) ->
89 (Ast0_cocci.expression Visitor_ast0_types.rcode) ->
90 (Ast0_cocci.typeC Visitor_ast0_types.rcode) ->
91 (Ast0_cocci.initialiser Visitor_ast0_types.rcode) ->
92 (Ast0_cocci.parameterTypeDef Visitor_ast0_types.rcode) ->
93 (Ast0_cocci.declaration Visitor_ast0_types.rcode) ->
94 (Ast0_cocci.statement Visitor_ast0_types.rcode) ->
95 (Ast0_cocci.case_line Visitor_ast0_types.rcode) ->
96 (Ast0_cocci.top_level Visitor_ast0_types.rcode) ->
97 Visitor_ast0_types.rebuilder_rec_functions
98
99 val combiner_rebuilder_functions :
100 'a Visitor_ast0_types.combiner_rebuilder_functions
101 val combiner_rebuilder :
102 ('a -> 'a -> 'a) -> 'a ->
103 'a Visitor_ast0_types.combiner_rebuilder_functions ->
104 'a Visitor_ast0_types.all_functions