NAME
src/pmc/resizablepmcarray.pmc - ResizablePMCArray PMC
DESCRIPTION
This class, ResizablePMCArray, implements an resizable array which stores PMCs. It puts things into Integer, Float, or String PMCs as appropriate.
Internal Functions
inline static void do_shift(ARGIN(PMC *arr))
Removes and returns an item from the start of the array.
Moves the whole rest of the array around.
inline static void do_unshift(ARGIN(PMC *arr))
Adds an item at the start of the array.
Moves the whole rest of the array around.
Vtable Functions
void init_int(INTVAL size)
Initializes the array.
void set_integer_native(INTVAL size)
Resizes the array to FLOATVAL shift_float()
INTVAL shift_integer()
PMC *shift_pmc()
STRING *shift_string()
Removes and returns an item from the start of the array.
PMC *get_pmc_keyed_int(INTVAL key)
Returns the PMC value of the element at index void set_pmc_keyed_int(INTVAL key, PMC *src)
Sets the PMC value of the element at index void set_pmc_keyed(PMC *key, PMC *src)
Sets the PMC value of the element keyed by void delete_keyed_int(INTVAL key)
void delete_keyed(PMC *key)
Delete the element at index INTVAL exists_keyed_int(INTVAL key)
INTVAL exists_keyed(PMC *key)
Returns TRUE is the element at INTVAL defined_keyed_int(INTVAL key)
Returns TRUE is the element at void push_float(FLOATVAL value)
void push_integer(INTVAL value)
void push_pmc(PMC *value)
void push_string(STRING *value)
Extends the array by adding an element of value INTVAL pop_float()
INTVAL pop_integer()
PMC *pop_pmc()
STRING *pop_string()
void unshift_float(FLOATVAL value)
void unshift_integer(INTVAL value)
void unshift_pmc(PMC *value)
void unshift_string(STRING *value)
Extends the array by adding an element of value PMC *clone()
Creates and returns a copy of the array.
STRING *get_repr()
Returns the Parrot string representation void splice(PMC *from, INTVAL offset, INTVAL count)
Replaces
size
elements.
key
.
key
to *src
.
key
to *src
.
key
.
key
exists; otherwise returns false.
key
is defined; otherwise returns false.
*value
to the end of the array.
*value
to the begin of the array.
ResizablePMCArray
.
count
elements starting at offset
with the elements in from
.Note that the from
PMC can be of any of the various array types.Methods
- METHOD append(PMC *other) Append the other array to this array.
- METHOD PMC* shift()
- METHOD PMC* pop() Method forms to remove and return a PMC from the beginning or end of the array.
- METHOD unshift(PMC* value)
- METHOD push(PMC* value) Method forms to add a PMC to the beginning or end of the array.
Auxiliar functions
static void do_shift(PMC *arr)
Common part for shift operations.
static void do_unshift(PARROT_INTERP, PMC *arr, PMC *val)
Common part for unshift operations.
static void throw_shift_empty(PARROT_INTERP)
static void throw_pop_empty(PARROT_INTERP)
Throws with the appropriate message.
See also
docs/pdds/pdd17_basic_types.pod.