fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / src / vtable.tbl
blobfb0953920a4a9e23ead2d560fda9de03eaa8001a
1 # $Id$
2 # [MAIN] #default section name
4 # MMD_EQ ... MMD_STRCMP must be in one block
5 # see src/multidispatch.c
7 # INPLACE MMD variant must always be normal op + 1
9 void init()
10 # init must be first for JITed vtable meths
11 void init_pmc(PMC* initializer)
12 PMC* instantiate(PMC* sig)
13 void morph(PMC* type) :write
14 void mark()
15 void destroy()
16 PMC* get_namespace()
18 # XXX FIXME should this be marked as writing?
19 PMC* getprop(STRING* key)
20 void setprop(STRING* key, PMC* value)
21 void delprop(STRING* key)
22 PMC* getprops()
24 INTVAL type()
26 STRING* name()
28 PMC* clone()
29 PMC* clone_pmc(PMC* args)
31 PMC* find_method(STRING* method_name)
33 [FETCH]
34 INTVAL get_integer()
35 INTVAL get_integer_keyed(PMC* key)
36 INTVAL get_integer_keyed_int(INTVAL key)
37 INTVAL get_integer_keyed_str(STRING* key)
39 FLOATVAL get_number()
40 FLOATVAL get_number_keyed(PMC* key)
41 FLOATVAL get_number_keyed_int(INTVAL key)
42 FLOATVAL get_number_keyed_str(STRING* key)
44 STRING* get_string()
45 STRING* get_repr()
46 STRING* get_string_keyed(PMC* key)
47 STRING* get_string_keyed_int(INTVAL key)
48 STRING* get_string_keyed_str(STRING* key)
50 INTVAL get_bool()
52 PMC* get_pmc()
53 PMC* get_pmc_keyed(PMC* key)
54 PMC* get_pmc_keyed_int(INTVAL key)
55 PMC* get_pmc_keyed_str(STRING* key)
57 void* get_pointer()
58 void* get_pointer_keyed(PMC* key)
59 void* get_pointer_keyed_int(INTVAL key)
60 void* get_pointer_keyed_str(STRING* key)
62 [STORE] :write
63 void set_integer_native(INTVAL value)
64 void set_integer_keyed(PMC* key, INTVAL value)
65 void set_integer_keyed_int(INTVAL key, INTVAL value)
66 void set_integer_keyed_str(STRING* key, INTVAL value)
68 void set_number_native(FLOATVAL value)
69 void set_number_keyed(PMC* key, FLOATVAL value)
70 void set_number_keyed_int(INTVAL key, FLOATVAL value)
71 void set_number_keyed_str(STRING* key, FLOATVAL value)
73 void set_string_native(STRING* value)
74 void assign_string_native(STRING* value)
75 void set_string_keyed(PMC* key, STRING* value)
76 void set_string_keyed_int(INTVAL key, STRING* value)
77 void set_string_keyed_str(STRING* key, STRING* value)
79 void set_bool(INTVAL value)
81 void set_pmc(PMC* value)
82 void assign_pmc(PMC* value)
83 void set_pmc_keyed(PMC* key, PMC* value)
84 void set_pmc_keyed_int(INTVAL key, PMC* value)
85 void set_pmc_keyed_str(STRING* key, PMC* value)
87 void set_pointer(void* value)
88 void set_pointer_keyed(PMC* key, void* value)
89 void set_pointer_keyed_int(INTVAL key, void* value)
90 void set_pointer_keyed_str(STRING* key, void* value)
92 [FETCHSIZE]
93 INTVAL elements()
95 [POP] :write
96 INTVAL pop_integer()
97 FLOATVAL pop_float()
98 STRING* pop_string()
99 PMC* pop_pmc()
101 [PUSH] :write
102 void push_integer(INTVAL value)
103 void push_float(FLOATVAL value)
104 void push_string(STRING* value)
105 void push_pmc(PMC* value)
107 [SHIFT] :write
108 INTVAL shift_integer()
109 FLOATVAL shift_float()
110 STRING* shift_string()
111 PMC* shift_pmc()
113 [UNSHIFT] :write
114 void unshift_integer(INTVAL value)
115 void unshift_float(FLOATVAL value)
116 void unshift_string(STRING* value)
117 void unshift_pmc(PMC* value)
119 ## void splice ???
121 [SPLICE] :write
122 void splice(PMC* value, INTVAL offset, INTVAL count)
124 # XXX marking writing here?
125 [MATH]
126 PMC* add(PMC* value, PMC* dest)
127 PMC* add_int(INTVAL value, PMC* dest)
128 PMC* add_float(FLOATVAL value, PMC* dest)
130 void i_add(PMC* value) :write
131 void i_add_int(INTVAL value) :write
132 void i_add_float(FLOATVAL value) :write
134 PMC* subtract(PMC* value, PMC* dest)
135 PMC* subtract_int(INTVAL value, PMC* dest)
136 PMC* subtract_float(FLOATVAL value, PMC* dest)
138 void i_subtract(PMC* value) :write
139 void i_subtract_int(INTVAL value) :write
140 void i_subtract_float(FLOATVAL value) :write
142 PMC* multiply(PMC* value, PMC* dest)
143 PMC* multiply_int(INTVAL value, PMC* dest)
144 PMC* multiply_float(FLOATVAL value, PMC* dest)
146 void i_multiply(PMC* value) :write
147 void i_multiply_int(INTVAL value) :write
148 void i_multiply_float(FLOATVAL value) :write
150 PMC* divide(PMC* value, PMC* dest)
151 PMC* divide_int(INTVAL value, PMC* dest)
152 PMC* divide_float(FLOATVAL value, PMC* dest)
154 void i_divide(PMC* value) :write
155 void i_divide_int(INTVAL value) :write
156 void i_divide_float(FLOATVAL value) :write
158 PMC* floor_divide(PMC* value, PMC* dest)
159 PMC* floor_divide_int(INTVAL value, PMC* dest)
160 PMC* floor_divide_float(FLOATVAL value, PMC* dest)
162 void i_floor_divide(PMC* value) :write
163 void i_floor_divide_int(INTVAL value) :write
164 void i_floor_divide_float(FLOATVAL value) :write
166 PMC* modulus(PMC* value, PMC* dest)
167 PMC* modulus_int(INTVAL value, PMC* dest)
168 PMC* modulus_float(FLOATVAL value, PMC* dest)
170 void i_modulus(PMC* value) :write
171 void i_modulus_int(INTVAL value) :write
172 void i_modulus_float(FLOATVAL value) :write
174 void increment() :write
175 void decrement() :write
177 PMC* absolute(PMC* dest)
178 void i_absolute() :write
180 PMC* neg(PMC* dest)
181 void i_neg() :write
183 [CMP]
184 INTVAL is_equal(PMC* value)
185 INTVAL is_equal_num(PMC* value)
186 INTVAL is_equal_string(PMC* value)
188 INTVAL is_same(PMC* value)
190 INTVAL cmp(PMC* value)
191 INTVAL cmp_num(PMC* value)
192 INTVAL cmp_string(PMC* value)
193 PMC* cmp_pmc(PMC* value)
195 [STRING]
196 PMC* concatenate(PMC* value, PMC* dest)
197 PMC* concatenate_str(STRING* value, PMC* dest)
199 void i_concatenate(PMC* value) :write
200 void i_concatenate_str(STRING* value) :write
202 PMC* repeat(PMC* value, PMC* dest)
203 PMC* repeat_int(INTVAL value, PMC* dest)
205 void i_repeat(PMC* value) :write
206 void i_repeat_int(INTVAL value) :write
208 void substr(INTVAL offset, INTVAL length, PMC* dest)
209 STRING* substr_str(INTVAL offset, INTVAL length)
211 [EXISTS]
212 INTVAL exists_keyed(PMC* key)
213 INTVAL exists_keyed_int(INTVAL key)
214 INTVAL exists_keyed_str(STRING* key)
216 [MAIN]
217 INTVAL defined()
218 INTVAL defined_keyed(PMC* key)
219 INTVAL defined_keyed_int(INTVAL key)
220 INTVAL defined_keyed_str(STRING* key)
222 [DELETE] :write
223 void delete_keyed(PMC* key)
224 void delete_keyed_int(INTVAL key)
225 void delete_keyed_str(STRING* key)
227 [MAIN]
228 PMC* get_iter()
229 INTVAL hashvalue()
231 opcode_t* invoke(void* next)
233 INTVAL can(STRING* method)
235 INTVAL does_pmc(PMC* role)
236 INTVAL does(STRING* role)
238 INTVAL isa_pmc(PMC* _class)
239 INTVAL isa(STRING* _class)
241 PMC* get_attr_str(STRING* idx)
242 PMC* get_attr_keyed(PMC* key, STRING* idx)
243 void set_attr_str(STRING* idx, PMC* value) :write
244 void set_attr_keyed(PMC* key, STRING* idx, PMC* value) :write
246 PMC* get_class()
248 void add_parent(PMC* parent) :write
249 void remove_parent(PMC* parent) :write
251 void add_role(PMC* role) :write
252 void remove_role(PMC* role) :write
254 void add_attribute(STRING* name, PMC* type) :write
255 void remove_attribute(STRING* name) :write
257 void add_method(STRING* method_name, PMC* sub_pmc) :write
258 void remove_method(STRING* method_name) :write
260 void add_vtable_override(STRING* vtable_name, PMC* sub_pmc) :write
261 void remove_vtable_override(STRING* vtable_name) :write
263 PMC* inspect()
264 PMC* inspect_str(STRING* what)
266 void freeze(PMC* info)
267 void thaw(PMC* info) :write
268 void thawfinish(PMC* info) :write
269 void visit(PMC* info)
271 void share()
273 PMC* share_ro()
275 void init_int(INTVAL initializer)