NAME

object.ops - Class and Object Opcodes

DESCRIPTION

Parrot's library of object ops

When making changes to any ops file, run make bootstrap-ops to regenerate all generated ops files.

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.