NAME
object.ops - Class and Object Opcodes
DESCRIPTION
Parrot's library of object ops
- callmethodcc(invar PMC, in STR) Call method $2 with invocant $1 and generate a new return continuation. The invocant ($1) is used for method lookup. The object is passed as the first argument in set_args.Throws a Method_Not_Found_Exception for a non-existent method.
- callmethodcc(invar PMC, invar PMC) Like above but use the Sub object $2 as method.
- callmethod(invar PMC, in STR, invar PMC)
- callmethod(invar PMC, invar PMC, invar PMC) Like above, but use continuation $3 instead of creating a new continuation.
- tailcallmethod(invar PMC, in STR)
- tailcallmethod(invar PMC, invar PMC) Make a tailcall to method $2 with invocant $1.
- addmethod(invar PMC, in STR, invar PMC) Adds $3 as a method named $2 to $1.
- can(out INT, invar PMC, in STR) Sets result $1 to the result of the "can" vtable function for PMC $2, given method $3.
- does(out INT, invar PMC, in STR) Sets result $1 to the result of the "does" vtable function for PMC $2, given the role of name $3.
- does(out INT, invar PMC, in PMC) Sets result $1 to the result of the "does" vtable function for PMC $2, given the role $3.
- isa(out INT, invar PMC, in STR)
- isa(out INT, invar PMC, in PMC) Sets result $1 to the result of the "isa" vtable function for PMC $2, given class $3.
- newclass(out PMC, in STR) Create a new Parrot-style class, named $2, and puts the new PMC for it into $1.
- newclass(out PMC, in PMC) Create a new Parrot-style class, with the name given in $2 as a key, namespace, or string PMC.
- subclass(out PMC, in PMC)
- subclass(out PMC, in PMC, in STR)
- subclass(out PMC, in PMC, in PMC) Create a new class, put in $1, that is a subclass of $2. $3, if available and not null, is the name of the new class--if not, the subclass is an anonymous subclass.
- subclass(out PMC, in STR)
- subclass(out PMC, in STR, in STR)
- subclass(out PMC, in STR, in PMC) Create a new class, put in $1, that is a subclass of the class named $2. $3, if available and not null, is the name of the new class--if not, the subclass is an anonymous subclass.
- get_class(out PMC, in STR)
- get_class(out PMC, in PMC) Find the PMC for a class, by string name or by key.
- class(out PMC, invar PMC) Get the class PMC for the object in $2 and put it in $1.
- addparent(invar PMC, invar PMC) Add class $2 to the list of parent classes for $1.
- removeparent(invar PMC, invar PMC) Remove class $2 from class $1's list of parents.
- addrole(invar PMC, invar PMC) Compose the role $2 into $1.
- addattribute(invar PMC, in STR) Add the attribute named $2 to the class $1.
- removeattribute(invar PMC, in STR) (unimplemented) Remove attribute $2 from class $1, specified by name.
- getattribute(out PMC, invar PMC, in STR) Get the attribute $3 from object $2 and put the result in $1.
- getattribute(out PMC, invar PMC, in PMC, in STR) Get the attribute $4 from the parent $3 of object $2 and put the result in $1. (This is useful for storing data for a parent class attribute that is overridden in a child class.) The parent $3 is a class name, namespace, or key PMC.
- setattribute(invar PMC, in STR, invar PMC) Set attribute $2 of object $1 to $3.
- setattribute(invar PMC, in PMC, in STR, invar PMC) Set attribute $3 of the parent $2 of object $1 to $4. (This is useful for storing data for a parent class attribute that is overridden in a child class.) The parent $2 is a class name, namespace, or key PMC.
- inspect(out PMC, in PMC) Sets $1 to a PMC hash of all introspection data available for $2, keyed on name.
- inspect(out PMC, in PMC, in STR) Sets $1 to a PMC Hash, Array, String, Integer, or Number value with introspection information corresponding to the requested string name.
COPYRIGHT
Copyright (C) 2001-2009, Parrot Foundation.
LICENSE
This program is free software. It is subject to the same license as the Parrot interpreter itself.