1 module Ast0
= Ast0_cocci
4 type ('a
,'n
) inout
= 'a
-> ('n
* 'a
)
6 type 'n all_functions
=
7 {ident
: (Ast0.ident
,'n
) inout
;
8 expression
: (Ast0.expression
,'n
) inout
;
9 typeC
: (Ast0.typeC
,'n
) inout
;
10 declaration
: (Ast0.declaration
,'n
) inout
;
11 initialiser
: (Ast0.initialiser
,'n
) inout
;
12 initialiser_list
: (Ast0.initialiser_list
,'n
) inout
;
13 parameter
: (Ast0.parameterTypeDef
,'n
) inout
;
14 parameter_list
: (Ast0.parameter_list
,'n
) inout
;
15 statement
: (Ast0.statement
,'n
) inout
;
16 case_line
: (Ast0.case_line
,'n
) inout
;
17 top_level
: (Ast0.top_level
,'n
) inout
;
18 expression_dots
: (Ast0.expression
Ast0.dots
,'n
) inout
;
19 statement_dots
: (Ast0.statement
Ast0.dots
,'n
) inout
;
20 declaration_dots
: (Ast0.declaration
Ast0.dots
,'n
) inout
;
21 case_line_dots
: (Ast0.case_line
Ast0.dots
,'n
) inout
;
22 anything
: (Ast0.anything
,'n
) inout
}
24 (* ----------------------------------------------------------------------- *)
27 type ('a
,'n
) combiner_inout
= 'a
-> 'n
29 type 'n combiner_rec_functions
=
30 {combiner_rec_ident
: (Ast0.ident
,'n
) combiner_inout
;
31 combiner_rec_expression
: (Ast0.expression
,'n
) combiner_inout
;
32 combiner_rec_typeC
: (Ast0.typeC
,'n
) combiner_inout
;
33 combiner_rec_declaration
: (Ast0.declaration
,'n
) combiner_inout
;
34 combiner_rec_initialiser
: (Ast0.initialiser
,'n
) combiner_inout
;
35 combiner_rec_initialiser_list
:
36 (Ast0.initialiser_list
,'n
) combiner_inout
;
37 combiner_rec_parameter
: (Ast0.parameterTypeDef
,'n
) combiner_inout
;
38 combiner_rec_parameter_list
: (Ast0.parameter_list
,'n
) combiner_inout
;
39 combiner_rec_statement
: (Ast0.statement
,'n
) combiner_inout
;
40 combiner_rec_case_line
: (Ast0.case_line
,'n
) combiner_inout
;
41 combiner_rec_top_level
: (Ast0.top_level
,'n
) combiner_inout
;
42 combiner_rec_expression_dots
:
43 (Ast0.expression
Ast0.dots
,'n
) combiner_inout
;
44 combiner_rec_statement_dots
:
45 (Ast0.statement
Ast0.dots
,'n
) combiner_inout
;
46 combiner_rec_declaration_dots
:
47 (Ast0.declaration
Ast0.dots
,'n
) combiner_inout
;
48 combiner_rec_case_line_dots
:
49 (Ast0.case_line
Ast0.dots
,'n
) combiner_inout
;
50 combiner_rec_anything
: (Ast0.anything
,'n
) combiner_inout
}
52 type ('mc
,'n
) cmcode
= 'n
-> 'mc
Ast0.mcode
-> 'n
53 type ('mc
,'n
) flat_cmcode
= 'mc
Ast0.mcode
-> 'n
54 type ('cd
,'n
) ccode
= 'n combiner_rec_functions
-> ('cd
-> 'n
) -> 'cd
-> 'n
56 type 'n combiner_functions
=
57 {combiner_meta_mcode
: ((string*string),'n
) cmcode
;
58 combiner_string_mcode
: (string,'n
) cmcode
;
59 combiner_const_mcode
: (Ast.constant
,'n
) cmcode
;
60 combiner_assign_mcode
: (Ast.assignOp
,'n
) cmcode
;
61 combiner_fix_mcode
: (Ast.fixOp
,'n
) cmcode
;
62 combiner_unary_mcode
: (Ast.unaryOp
,'n
) cmcode
;
63 combiner_binary_mcode
: (Ast.binaryOp
,'n
) cmcode
;
64 combiner_cv_mcode
: (Ast.const_vol
,'n
) cmcode
;
65 combiner_sign_mcode
: (Ast.sign
,'n
) cmcode
;
66 combiner_struct_mcode
: (Ast.structUnion
,'n
) cmcode
;
67 combiner_storage_mcode
: (Ast.storage
,'n
) cmcode
;
68 combiner_inc_mcode
: (Ast.inc_file
,'n
) cmcode
;
69 combiner_dotsexprfn
: (Ast0.expression
Ast0.dots
,'n
) ccode
;
70 combiner_dotsinitfn
: (Ast0.initialiser
Ast0.dots
,'n
) ccode
;
71 combiner_dotsparamfn
: (Ast0.parameterTypeDef
Ast0.dots
,'n
) ccode
;
72 combiner_dotsstmtfn
: (Ast0.statement
Ast0.dots
,'n
) ccode
;
73 combiner_dotsdeclfn
: (Ast0.declaration
Ast0.dots
,'n
) ccode
;
74 combiner_dotscasefn
: (Ast0.case_line
Ast0.dots
,'n
) ccode
;
75 combiner_identfn
: (Ast0.ident
,'n
) ccode
;
76 combiner_exprfn
: (Ast0.expression
,'n
) ccode
;
77 combiner_tyfn
: (Ast0.typeC
,'n
) ccode
;
78 combiner_initfn
: (Ast0.initialiser
,'n
) ccode
;
79 combiner_paramfn
: (Ast0.parameterTypeDef
,'n
) ccode
;
80 combiner_declfn
: (Ast0.declaration
,'n
) ccode
;
81 combiner_stmtfn
: (Ast0.statement
,'n
) ccode
;
82 combiner_casefn
: (Ast0.case_line
,'n
) ccode
;
83 combiner_topfn
: (Ast0.top_level
,'n
) ccode
}
85 (* ----------------------------------------------------------------------- *)
88 type 'a rebuilder_inout
= 'a
-> 'a
90 type rebuilder_rec_functions
=
91 {rebuilder_rec_ident
: Ast0.ident rebuilder_inout
;
92 rebuilder_rec_expression
: Ast0.expression rebuilder_inout
;
93 rebuilder_rec_typeC
: Ast0.typeC rebuilder_inout
;
94 rebuilder_rec_declaration
: Ast0.declaration rebuilder_inout
;
95 rebuilder_rec_initialiser
: Ast0.initialiser rebuilder_inout
;
96 rebuilder_rec_initialiser_list
:
97 Ast0.initialiser_list rebuilder_inout
;
98 rebuilder_rec_parameter
: Ast0.parameterTypeDef rebuilder_inout
;
99 rebuilder_rec_parameter_list
: Ast0.parameter_list rebuilder_inout
;
100 rebuilder_rec_statement
: Ast0.statement rebuilder_inout
;
101 rebuilder_rec_case_line
: Ast0.case_line rebuilder_inout
;
102 rebuilder_rec_top_level
: Ast0.top_level rebuilder_inout
;
103 rebuilder_rec_expression_dots
:
104 Ast0.expression
Ast0.dots rebuilder_inout
;
105 rebuilder_rec_statement_dots
:
106 Ast0.statement
Ast0.dots rebuilder_inout
;
107 rebuilder_rec_declaration_dots
:
108 Ast0.declaration
Ast0.dots rebuilder_inout
;
109 rebuilder_rec_case_line_dots
:
110 Ast0.case_line
Ast0.dots rebuilder_inout
;
111 rebuilder_rec_anything
: Ast0.anything rebuilder_inout
}
113 type 'mc rmcode
= 'mc
Ast0.mcode rebuilder_inout
115 rebuilder_rec_functions
-> ('cd rebuilder_inout
) -> 'cd rebuilder_inout
117 type rebuilder_functions
=
118 {rebuilder_meta_mcode
: (string*string) rmcode
;
119 rebuilder_string_mcode
: string rmcode
;
120 rebuilder_const_mcode
: Ast.constant rmcode
;
121 rebuilder_assign_mcode
: Ast.assignOp rmcode
;
122 rebuilder_fix_mcode
: Ast.fixOp rmcode
;
123 rebuilder_unary_mcode
: Ast.unaryOp rmcode
;
124 rebuilder_binary_mcode
: Ast.binaryOp rmcode
;
125 rebuilder_cv_mcode
: Ast.const_vol rmcode
;
126 rebuilder_sign_mcode
: Ast.sign rmcode
;
127 rebuilder_struct_mcode
: Ast.structUnion rmcode
;
128 rebuilder_storage_mcode
: Ast.storage rmcode
;
129 rebuilder_inc_mcode
: Ast.inc_file rmcode
;
130 rebuilder_dotsexprfn
: Ast0.expression
Ast0.dots rcode
;
131 rebuilder_dotsinitfn
: Ast0.initialiser
Ast0.dots rcode
;
132 rebuilder_dotsparamfn
: Ast0.parameterTypeDef
Ast0.dots rcode
;
133 rebuilder_dotsstmtfn
: Ast0.statement
Ast0.dots rcode
;
134 rebuilder_dotsdeclfn
: Ast0.declaration
Ast0.dots rcode
;
135 rebuilder_dotscasefn
: Ast0.case_line
Ast0.dots rcode
;
136 rebuilder_identfn
: Ast0.ident rcode
;
137 rebuilder_exprfn
: Ast0.expression rcode
;
138 rebuilder_tyfn
: Ast0.typeC rcode
;
139 rebuilder_initfn
: Ast0.initialiser rcode
;
140 rebuilder_paramfn
: Ast0.parameterTypeDef rcode
;
141 rebuilder_declfn
: Ast0.declaration rcode
;
142 rebuilder_stmtfn
: Ast0.statement rcode
;
143 rebuilder_casefn
: Ast0.case_line rcode
;
144 rebuilder_topfn
: Ast0.top_level rcode
}
146 (* ----------------------------------------------------------------------- *)
147 (* combiner_rebuilder *)
149 type ('mc
,'a
) rcmcode
= 'a
-> 'mc
Ast0.mcode
-> ('a
* 'mc
Ast0.mcode
)
150 type ('cd
,'a
) rccode
=
151 'a all_functions
-> ('cd
-> ('a
* 'cd
)) -> 'cd
-> ('a
* 'cd
)
153 type 'n combiner_rebuilder_functions
=
154 {combiner_rebuilder_meta_mcode
: ((string*string),'n
) rcmcode
;
155 combiner_rebuilder_string_mcode
: (string,'n
) rcmcode
;
156 combiner_rebuilder_const_mcode
: (Ast.constant
,'n
) rcmcode
;
157 combiner_rebuilder_assign_mcode
: (Ast.assignOp
,'n
) rcmcode
;
158 combiner_rebuilder_fix_mcode
: (Ast.fixOp
,'n
) rcmcode
;
159 combiner_rebuilder_unary_mcode
: (Ast.unaryOp
,'n
) rcmcode
;
160 combiner_rebuilder_binary_mcode
: (Ast.binaryOp
,'n
) rcmcode
;
161 combiner_rebuilder_cv_mcode
: (Ast.const_vol
,'n
) rcmcode
;
162 combiner_rebuilder_sign_mcode
: (Ast.sign
,'n
) rcmcode
;
163 combiner_rebuilder_struct_mcode
: (Ast.structUnion
,'n
) rcmcode
;
164 combiner_rebuilder_storage_mcode
: (Ast.storage
,'n
) rcmcode
;
165 combiner_rebuilder_inc_mcode
: (Ast.inc_file
,'n
) rcmcode
;
166 combiner_rebuilder_dotsexprfn
: (Ast0.expression
Ast0.dots
,'n
) rccode
;
167 combiner_rebuilder_dotsinitfn
: (Ast0.initialiser
Ast0.dots
,'n
) rccode
;
168 combiner_rebuilder_dotsparamfn
:
169 (Ast0.parameterTypeDef
Ast0.dots
,'n
) rccode
;
170 combiner_rebuilder_dotsstmtfn
: (Ast0.statement
Ast0.dots
,'n
) rccode
;
171 combiner_rebuilder_dotsdeclfn
: (Ast0.declaration
Ast0.dots
,'n
) rccode
;
172 combiner_rebuilder_dotscasefn
: (Ast0.case_line
Ast0.dots
,'n
) rccode
;
173 combiner_rebuilder_identfn
: (Ast0.ident
,'n
) rccode
;
174 combiner_rebuilder_exprfn
: (Ast0.expression
,'n
) rccode
;
175 combiner_rebuilder_tyfn
: (Ast0.typeC
,'n
) rccode
;
176 combiner_rebuilder_initfn
: (Ast0.initialiser
,'n
) rccode
;
177 combiner_rebuilder_paramfn
: (Ast0.parameterTypeDef
,'n
) rccode
;
178 combiner_rebuilder_declfn
: (Ast0.declaration
,'n
) rccode
;
179 combiner_rebuilder_stmtfn
: (Ast0.statement
,'n
) rccode
;
180 combiner_rebuilder_casefn
: (Ast0.case_line
,'n
) rccode
;
181 combiner_rebuilder_topfn
: (Ast0.top_level
,'n
) rccode
}