tagged release 0.6.4
[parrot.git] / languages / WMLScript / pmc / wmlsinvalid.pmc
blob6bac6c85070978bc1b6addd6eef5bb556ef01cb6
1 /*
2 Copyright (C) 2006-2008, The Perl Foundation.
3 $Id$
5 =head1 NAME
7 pmc/wmlsinvalid.pmc - WMLScript Invalid
9 =head1 DESCRIPTION
11 C<WmlsInvalid> extends C<Undef> to provide a class with the behaviour of
12 the WMLScript C<Invalid> type.
14 =head2 Methods
16 =over 4
18 =cut
22 #include "parrot/embed.h"
24 static INTVAL dynpmc_WmlsBoolean;
25 static INTVAL dynpmc_WmlsInteger;
26 static INTVAL dynpmc_WmlsInvalid;
28 pmclass WmlsInvalid
29     extends Undef
30     provides scalar
31     dynpmc
32     group wmls_group
33     hll WMLScript maps Undef {
35 /* Class initialization. Caches constant strings that will be used later.
37     void class_init() {
38         if (pass) {
39             dynpmc_WmlsBoolean = pmc_type(INTERP,
40               const_string(INTERP, "WmlsBoolean"));
41             dynpmc_WmlsInteger = pmc_type(INTERP,
42               const_string(INTERP, "WmlsInteger"));
43             dynpmc_WmlsInvalid = pmc_type(INTERP,
44               const_string(INTERP, "WmlsInvalid"));
45         }
46     }
50 =item C<PMC *clone()>
52 =cut
55     PMC* clone() {
56         return pmc_new(INTERP, dynpmc_WmlsInvalid);
57     }
61 =item C<PMC* get_class()>
63 Return the integer 4.
65 =cut
68     PMC* get_class() {
69         PMC* retval = pmc_new(interp, dynpmc_WmlsInteger);
70         PMC_int_val(retval) = 4;
71         return retval;
72     }
76 =item C<STRING* get_string()>
78 Return the string "invalid".
80 =cut
83     STRING* get_string() {
84         return const_string(INTERP, "invalid");
85     }
89 =item C<void increment()>
91 =cut
94     void increment() {
95         return;
96     }
100 =item C<void decrement()>
102 =cut
105     void decrement() {
106         return;
107     }
111 =item C<PMC* absolute(PMC *dest)>
113 =item C<void i_absolute()>
115 =cut
118     PMC* absolute(PMC* dest) {
119         return pmc_new(INTERP, dynpmc_WmlsInvalid);
120     }
122     void i_absolute() {
123         return;
124     }
128 =item C<PMC* neg(PMC *dest)>
130 =item C<void i_neg()>
132 =cut
135     PMC* neg(PMC* dest) {
136         return pmc_new(INTERP, dynpmc_WmlsInvalid);
137     }
139     void i_neg() {
140         return;
141     }
145 =item C<PMC* bitwise_not(PMC *dest)>
147 =item C<void i_bitwise_not()>
149 =cut
152     PMC* bitwise_not(PMC* dest) {
153         return pmc_new(INTERP, dynpmc_WmlsInvalid);
154     }
156     void i_bitwise_not() {
157         return;
158     }
162 =item C<PMC* logical_not(PMC *dest)>
164 =item C<void i_logical_not()>
166 =cut
169     PMC* logical_not(PMC* dest) {
170         return pmc_new(INTERP, dynpmc_WmlsInvalid);
171     }
173     void i_logical_not() {
174         return;
175     }
179 =back
181 =head2 non-Vtable Methods
183 =over 4
185 =item C<void add(PMC *value, PMC *dest)>
187 =item C<void i_add(PMC *value)>
189 =cut
192     PMC* add(PMC* value, PMC* dest) {
193             return pmc_new(INTERP, dynpmc_WmlsInvalid);
194     }
196     void i_add(PMC* value) {
197             return;
198     }
202 =item C<PMC* subtract(PMC *value, PMC *dest)>
204 =item C<void i_subtract(PMC *value)>
206 =cut
209     PMC* subtract(PMC* value, PMC* dest) {
210             return pmc_new(INTERP, dynpmc_WmlsInvalid);
211     }
213     void i_subtract(PMC* value) {
214             return;
215     }
219 =item C<PMC* multiply(PMC *value, PMC *dest)>
221 =item C<void i_multiply(PMC *value)>
223 =cut
226     PMC* multiply(PMC* value, PMC* dest) {
227             return pmc_new(INTERP, dynpmc_WmlsInvalid);
228     }
230     void i_multiply(PMC* value) {
231             return;
232     }
236 =item C<PMC* divide(PMC *value, PMC *dest)>
238 =item C<void i_divide(PMC *value)>
240 =cut
243     PMC* divide(PMC* value, PMC* dest) {
244             return pmc_new(INTERP, dynpmc_WmlsInvalid);
245     }
247     void i_divide(PMC* value) {
248             return;
249     }
253 =item C<PMC* floor_divide(PMC *value, PMC *dest)>
255 =item C<void i_floor_divide(PMC *value)>
257 =cut
260     PMC* floor_divide(PMC* value, PMC* dest) {
261             return pmc_new(INTERP, dynpmc_WmlsInvalid);
262     }
264     void i_floor_divide(PMC* value) {
265             return;
266     }
270 =item C<PMC* cmodulus(PMC *value, PMC *dest)>
272 =item C<void i_cmodulus(PMC *value)>
274 =cut
277     PMC* cmodulus(PMC* value, PMC* dest) {
278             return pmc_new(INTERP, dynpmc_WmlsInvalid);
279     }
281     void i_cmodulus(PMC* value) {
282             return;
283     }
287 =item C<PMC* bitwise_or(PMC *value, PMC *dest)>
289 =item C<void i_bitwise_or(PMC *value)>
291 =cut
294     PMC* bitwise_or(PMC* value, PMC* dest) {
295             return pmc_new(INTERP, dynpmc_WmlsInvalid);
296     }
298     void i_bitwise_or(PMC* value) {
299             return;
300     }
304 =item C<PMC* bitwise_and(PMC *value, PMC *dest)>
306 =item C<void i_bitwise_and(PMC *value)>
308 =cut
311     PMC* bitwise_and(PMC* value, PMC* dest) {
312             return pmc_new(INTERP, dynpmc_WmlsInvalid);
313     }
315     void i_bitwise_and(PMC* value) {
316             return;
317     }
321 =item C<void bitwise_xor(PMC *value, PMC *dest)>
323 =item C<void i_bitwise_xor(PMC *value)>
325 =cut
328     PMC* bitwise_xor(PMC* value, PMC* dest) {
329             return pmc_new(INTERP, dynpmc_WmlsInvalid);
330     }
332     void i_bitwise_xor(PMC* value) {
333             return;
334     }
338 =item C<PMC* bitwise_shr(PMC *value, PMC *dest)>
340 =item C<void i_bitwise_shr(PMC *value)>
342 =cut
345     PMC* bitwise_shr(PMC* value, PMC* dest) {
346             return pmc_new(INTERP, dynpmc_WmlsInvalid);
347     }
349     void i_bitwise_shr(PMC* value) {
350             return;
351     }
355 =item C<PMC* bitwise_lsr(PMC *value, PMC *dest)>
357 =item C<void i_bitwise_lsr(PMC *value)>
359 =cut
362     PMC* bitwise_lsr(PMC* value, PMC* dest) {
363             return pmc_new(INTERP, dynpmc_WmlsInvalid);
364     }
366     void i_bitwise_lsr(PMC* value) {
367             return;
368     }
372 =item C<PMC* bitwise_shl(PMC *value, PMC *dest)>
374 =item C<void i_bitwise_shl(PMC *value)>
376 =cut
379     PMC* bitwise_shl(PMC* value, PMC* dest) {
380             return pmc_new(INTERP, dynpmc_WmlsInvalid);
381     }
383     void i_bitwise_shl(PMC* value) {
384             return;
385     }
389 =item C<PMC* is_equal(PMC* value)>
391 =cut
394     INTVAL is_equal(PMC* value) {
395             return 4;
396     }
400 =item C<PMC* cmp(PMC *value)>
402 =cut
405     INTVAL cmp(PMC* value) {
406             return 4;
407     }
413 =back
415 =head1 AUTHORS
417 Francois Perrad.
419 =cut
425  * Local variables:
426  *   c-file-style: "parrot"
427  * End:
428  * vim: expandtab shiftwidth=4:
429  */