NAME
src/pmc/iterator.pmc - Iterator PMC
DESCRIPTION
These are the vtable functions for the Iterator base class. Iterators are used in combination with other classes(mainly aggregates) to visit all entries in that aggregate.
SYNOPSIS
default usage
    .local pmc iterator, array, entry
    iterator = iter array
  iter_loop:
    unless iterator, iter_end  # while (more values)
    entry = shift iterator     # get an entry
    ...
    goto iter_loop
  iter_end:
iterate from the end, for arrays
    .local pmc iterator, array, entry
    iterator = iter array
    iterator = .ITERATE_FROM_END
  iter_loop:
    unless iterator, iter_end  # while (more values)
    entry = pop iterator     # get an entry
    ...
    goto iter_loop
  iter_end:
iterate over a hash
    .local pmc iterator, hash, key, entry
    iterator = iter hash
  iter_loop:
    unless iterator, iter_end  # while (more values)
    key   = shift iterator     # get the key..
    entry = hash[key]
    ...
    goto iter_loop
  iter_end:
Methods
- void init()Raises an exception. Use
- void init_pmc(PMC *initializer)Initializes the iterator with an aggregate PMC. Defaults iteration mode to iterate from start.
- INTVAL get_integer_keyed(PMC *key)
- FLOATVAL get_number_keyed(PMC *key)
- STRING *get_string_keyed(PMC *key)
- PMC *get_pmc_keyed(PMC *key)Returns the element for
- INTVAL exists_keyed(PMC *key)Returns whether an element for
- INTVAL defined()Returns whether the iterator contains an aggregate.
- INTVAL defined_keyed(PMC *key)
- void set_integer_native(INTVAL value)Restart iterator
init_pmc().
*key.
*key exists in the aggregate.
