2 (* --------------------------------------------------------------------- *)
5 {combiner_ident
: Ast0_cocci.ident
-> 'a
;
6 combiner_expression
: Ast0_cocci.expression
-> 'a
;
7 combiner_typeC
: Ast0_cocci.typeC
-> 'a
;
8 combiner_declaration
: Ast0_cocci.declaration
-> 'a
;
9 combiner_initialiser
: Ast0_cocci.initialiser
-> 'a
;
10 combiner_initialiser_list
: Ast0_cocci.initialiser_list
-> 'a
;
11 combiner_parameter
: Ast0_cocci.parameterTypeDef
-> 'a
;
12 combiner_parameter_list
: Ast0_cocci.parameter_list
-> 'a
;
13 combiner_statement
: Ast0_cocci.statement
-> 'a
;
14 combiner_case_line
: Ast0_cocci.case_line
-> 'a
;
15 combiner_top_level
: Ast0_cocci.top_level
-> 'a
;
16 combiner_expression_dots
:
17 Ast0_cocci.expression
Ast0_cocci.dots
-> 'a
;
18 combiner_statement_dots
:
19 Ast0_cocci.statement
Ast0_cocci.dots
-> 'a
;
20 combiner_declaration_dots
:
21 Ast0_cocci.declaration
Ast0_cocci.dots
-> 'a
;
22 combiner_case_line_dots
:
23 Ast0_cocci.case_line
Ast0_cocci.dots
-> 'a
;
24 combiner_anything
: Ast0_cocci.anything
-> 'a
}
26 type ('mc
,'a
) cmcode
= 'mc
Ast0_cocci.mcode
-> 'a
27 type ('cd
,'a
) ccode
= 'a combiner
-> ('cd
-> 'a
) -> 'cd
-> 'a
30 ('a
-> 'a
-> 'a
) -> 'a
->
31 ((string*string,'a
) cmcode
) ->
32 ((string,'a
) cmcode
) ->
33 ((Ast_cocci.constant
,'a
) cmcode
) ->
34 ((Ast_cocci.assignOp
,'a
) cmcode
) ->
35 ((Ast_cocci.fixOp
,'a
) cmcode
) ->
36 ((Ast_cocci.unaryOp
,'a
) cmcode
) ->
37 ((Ast_cocci.binaryOp
,'a
) cmcode
) ->
38 ((Ast_cocci.const_vol
,'a
) cmcode
) ->
39 ((Ast_cocci.baseType
,'a
) cmcode
) ->
40 ((Ast_cocci.sign
,'a
) cmcode
) ->
41 ((Ast_cocci.structUnion
,'a
) cmcode
) ->
42 ((Ast_cocci.storage
,'a
) cmcode
) ->
43 ((Ast_cocci.inc_file
,'a
) cmcode
) ->
44 ((Ast0_cocci.expression
Ast0_cocci.dots
,'a
) ccode
) ->
45 ((Ast0_cocci.initialiser
Ast0_cocci.dots
,'a
) ccode
) ->
46 ((Ast0_cocci.parameterTypeDef
Ast0_cocci.dots
,'a
) ccode
) ->
47 ((Ast0_cocci.statement
Ast0_cocci.dots
,'a
) ccode
) ->
48 ((Ast0_cocci.declaration
Ast0_cocci.dots
,'a
) ccode
) ->
49 ((Ast0_cocci.case_line
Ast0_cocci.dots
,'a
) ccode
) ->
50 ((Ast0_cocci.ident
,'a
) ccode
) ->
51 ((Ast0_cocci.expression
,'a
) ccode
) ->
52 ((Ast0_cocci.typeC
,'a
) ccode
) ->
53 ((Ast0_cocci.initialiser
,'a
) ccode
) ->
54 ((Ast0_cocci.parameterTypeDef
,'a
) ccode
) ->
55 ((Ast0_cocci.declaration
,'a
) ccode
) ->
56 ((Ast0_cocci.statement
,'a
) ccode
) ->
57 ((Ast0_cocci.case_line
,'a
) ccode
) ->
58 ((Ast0_cocci.top_level
,'a
) ccode
) ->
61 type 'a inout
= 'a
-> 'a
(* for specifying the type of rebuilder *)
64 {rebuilder_ident
: Ast0_cocci.ident inout
;
65 rebuilder_expression
: Ast0_cocci.expression inout
;
66 rebuilder_typeC
: Ast0_cocci.typeC inout
;
67 rebuilder_declaration
: Ast0_cocci.declaration inout
;
68 rebuilder_initialiser
: Ast0_cocci.initialiser inout
;
69 rebuilder_initialiser_list
: Ast0_cocci.initialiser_list inout
;
70 rebuilder_parameter
: Ast0_cocci.parameterTypeDef inout
;
71 rebuilder_parameter_list
: Ast0_cocci.parameter_list inout
;
72 rebuilder_statement
: Ast0_cocci.statement inout
;
73 rebuilder_case_line
: Ast0_cocci.case_line inout
;
74 rebuilder_top_level
: Ast0_cocci.top_level inout
;
75 rebuilder_expression_dots
:
76 Ast0_cocci.expression
Ast0_cocci.dots
->
77 Ast0_cocci.expression
Ast0_cocci.dots
;
78 rebuilder_statement_dots
:
79 Ast0_cocci.statement
Ast0_cocci.dots
->
80 Ast0_cocci.statement
Ast0_cocci.dots
;
81 rebuilder_declaration_dots
:
82 Ast0_cocci.declaration
Ast0_cocci.dots
->
83 Ast0_cocci.declaration
Ast0_cocci.dots
;
84 rebuilder_case_line_dots
:
85 Ast0_cocci.case_line
Ast0_cocci.dots
->
86 Ast0_cocci.case_line
Ast0_cocci.dots
;
87 rebuilder_anything
: Ast0_cocci.anything
-> Ast0_cocci.anything
}
89 type 'mc rmcode
= 'mc
Ast0_cocci.mcode inout
90 type 'cd rcode
= rebuilder
-> ('cd inout
) -> 'cd inout
93 ((string*string) rmcode
) ->
95 (Ast_cocci.constant rmcode
) ->
96 (Ast_cocci.assignOp rmcode
) ->
97 (Ast_cocci.fixOp rmcode
) ->
98 (Ast_cocci.unaryOp rmcode
) ->
99 (Ast_cocci.binaryOp rmcode
) ->
100 (Ast_cocci.const_vol rmcode
) ->
101 (Ast_cocci.baseType rmcode
) ->
102 (Ast_cocci.sign rmcode
) ->
103 (Ast_cocci.structUnion rmcode
) ->
104 (Ast_cocci.storage rmcode
) ->
105 (Ast_cocci.inc_file rmcode
) ->
106 (Ast0_cocci.expression
Ast0_cocci.dots rcode
) ->
107 (Ast0_cocci.initialiser
Ast0_cocci.dots rcode
) ->
108 (Ast0_cocci.parameterTypeDef
Ast0_cocci.dots rcode
) ->
109 (Ast0_cocci.statement
Ast0_cocci.dots rcode
) ->
110 (Ast0_cocci.declaration
Ast0_cocci.dots rcode
) ->
111 (Ast0_cocci.case_line
Ast0_cocci.dots rcode
) ->
112 (Ast0_cocci.ident rcode
) ->
113 (Ast0_cocci.expression rcode
) ->
114 (Ast0_cocci.typeC rcode
) ->
115 (Ast0_cocci.initialiser rcode
) ->
116 (Ast0_cocci.parameterTypeDef rcode
) ->
117 (Ast0_cocci.declaration rcode
) ->
118 (Ast0_cocci.statement rcode
) ->
119 (Ast0_cocci.case_line rcode
) ->
120 (Ast0_cocci.top_level rcode
) ->