-
Notifications
You must be signed in to change notification settings - Fork 138
/
vtablize.pl
235 lines (223 loc) · 13.9 KB
/
vtablize.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
#! perl -pi.bak
# Copyright (C) 2008-2009, Parrot Foundation.
=head1 NAME
tools/dev/vtablize.pl - Update PMCs to new format
=head1 SYNOPSIS
% perl tools/dev/vtablize.pl *.pmc
=head1 DESCRIPTION
This script modifies a PMC definition file in place to mark all vtable function
declarations with the leading C<VTABLE> keyword. It was used to update all core
PMCs as part of the implementation of PDD 17 on PMCs, and will be useful in
updating HLL-specific and user-defined PMCs when we change the C<VTABLE>
keyword to be required. Once all conversions are completed, this script can be
deleted.
=head1 SEE ALSO
docs/pdds/pdd17_pmc.pod
=cut
use strict;
use warnings;
s/^(\s*)(void\s+init\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+init_pmc\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*instantiate\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+morph\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+mark\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+destroy\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_namespace\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*getprop\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+setprop\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+delprop\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*getprops\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+type\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(UINTVAL\s+subtype\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*name\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*clone\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*clone_pmc\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*find_method\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+get_integer\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+get_integer_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+get_integer_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+get_integer_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(FLOATVAL\s+get_number\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(FLOATVAL\s+get_number_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(FLOATVAL\s+get_number_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(FLOATVAL\s+get_number_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+get_bool\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*get_string\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*get_string_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*get_string_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*get_string_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*get_repr\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_pmc\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_pmc_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_pmc_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_pmc_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*slice\(PMC\s+\*\w*,\s+INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+\*get_pointer\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+\*get_pointer_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+\*get_pointer_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+\*get_pointer_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_integer_native\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_integer_same\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_integer_keyed\(PMC\s+\*\w*,\s+INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_integer_keyed_int\(INTVAL\s+\w*,\s+INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_integer_keyed_str\(STRING\s+\*\w*,\s+INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_number_native\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_number_same\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_number_keyed\(PMC\s+\*\w*,\s+FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_number_keyed_int\(INTVAL\s+\w*,\s+FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_number_keyed_str\(STRING\s+\*\w*,\s+FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_bignum_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_bignum_num\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_bignum_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_string_native\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+assign_string_native\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_string_same\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_string_keyed\(PMC\s+\*\w*,\s+STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_string_keyed_int\(INTVAL\s+\w*,\s+STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_string_keyed_str\(STRING\s+\*\w*,\s+STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_pmc\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+assign_pmc\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_pmc_keyed\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_pmc_keyed_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_pmc_keyed_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_pointer\(void\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_pointer_keyed\(PMC\s+\*\w*,\s+void\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_pointer_keyed_int\(INTVAL\s+\w*,\s+void\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_pointer_keyed_str\(STRING\s+\*\w*,\s+void\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_bool\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+elements\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+pop_integer\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(FLOATVAL\s+pop_float\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*pop_string\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*pop_pmc\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+push_integer\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+push_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+push_string\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+push_string\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+shift_integer\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(FLOATVAL\s+shift_float\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*shift_string\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*shift_pmc\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+unshift_integer\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+unshift_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+unshift_string\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+unshift_string\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*add\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*add_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*add_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_add\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_add_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_add_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*subtract\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*subtract_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*subtract_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_subtract\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_subtract_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_subtract_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*multiply\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*multiply_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*multiply_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_multiply\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_multiply_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_multiply_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*divide\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*divide_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*divide_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_divide\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_divide_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_divide_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*floor_divide\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*floor_divide_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*floor_divide_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_floor_divide\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_floor_divide_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_floor_divide_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*modulus\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*modulus_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*modulus_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_modulus\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_modulus_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_modulus_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*cmodulus\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*cmodulus_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*cmodulus_float\(FLOATVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_cmodulus\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_cmodulus_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_cmodulus_float\(FLOATVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+increment\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+decrement\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*absolute\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_absolute\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*neg\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_neg\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal_num\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_equal_string\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+is_same\(const\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+cmp\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+cmp_num\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+cmp_string\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+cmp_pmc\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*logical_or\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*logical_xor\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$2VTABLE $2/;
s/^(\s*)(PMC\s+\*logical_and\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*logical_not\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_logical_not\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*concatenate\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*concatenate_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_concatenate\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_concatenate_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*repeat\(PMC\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*repeat_int\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_repeat\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+i_repeat_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+substr\(INTVAL\s+\w*,\s+INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(STRING\s+\*substr_str\(INTVAL\s+\w*,\s+INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+exists_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+exists_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+exists_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+defined\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+defined_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+defined_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+defined_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+delete_keyed\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+delete_keyed_int\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+delete_keyed_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_iter\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(opcode_t\s+\*invoke\(void\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+can\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+does\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+isa\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+isa_pmc\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_attr\(INTVAL\s+\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_attr_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_attr_keyed\(PMC\s+\*\w*,\s+STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_attr\(INTVAL\s+\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_attr_str\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+set_attr_keyed\(PMC\s+\*\w*,\s+STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+add_role\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+remove_role\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+add_parent\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+remove_parent\(PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*get_class\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(INTVAL\s+class_type\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+add_attribute\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+remove_attribute\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+add_method\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+remove_method\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+add_vtable_override\(STRING\s+\*\w*,\s+PMC\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+remove_vtable_override\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*inspect\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*inspect_str\(STRING\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+freeze\(visit_info\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+thaw\(visit_info\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+thaw_finish\(visit_info\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+visit\(visit_info\s+\*\w*\)\s+{)/$1VTABLE $2/;
s/^(\s*)(void\s+share\(\)\s+{)/$1VTABLE $2/;
s/^(\s*)(PMC\s+\*share_ro\(\)\s+{)/$1VTABLE $2/;
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4: