NAME

var.ops - Variable Ops

DESCRIPTION

These operations deal with both lexical and global variables, as well as the symbol tables that contain them.

Lexical variable ops

Operations to create, modify and delete lexical variables.

store_lex(in STR, invar PMC)
Store object $2 as lexical symbol $1. The opcode might succeed or throw an exception on unknown lexical names depending on the implementation of the LexPad PMC. Parrot's LexPad throws an exception for unknown names.
find_lex(out PMC, in STR)
Find the lexical variable named $2 and store it in $1. This opcode either throws an exception or returns a Null PMC for the failure case, depending on the implementation of the LexPad PMC. Parrot's standard LexPad throws and exception for non-existing names.

Namespace opcodes

get_namespace(out PMC)
Set $1 to the current namespace.
get_namespace(out PMC, in PMC)
Set $1 to the namespace denoted by the key constant $2, relative to the current namespace. If the namespace doesn't exist, $1 is set to null.
get_hll_namespace(out PMC)
Set $1 to the current HLL root namespace.
get_hll_namespace(out PMC, in PMC)
Set $1 to the namespace denoted by the key constant $2, relative to the current HLL root namespace. If the namespace doesn't exist, $1 is set to null.
get_root_namespace(out PMC)
Set $1 to the true root namespace.
get_root_namespace(out PMC, in PMC)
Set $1 to the namespace denoted by the key constant $2, relative to the true root namespace. If the namespace doesn't exist, $1 is set to null.

Global variable 'get' opcodes

get_global(out PMC, in STR)
Set $1 to the global named $2 in current namespace. If the global doesn't exist, $1 is set to null.
get_global(out PMC, in PMC, in STR)
Set $1 to the global named $3 in the namespace denoted by the key constant $2, relative to the current namespace. If the namespace or the global doesn't exist, $1 is set to null.
get_hll_global(out PMC, in STR)
Set $1 to the global named $2 in the current HLL root namespace. If the global doesn't exist, $1 is set to null.
get_hll_global(out PMC, in PMC, in STR)
Set $1 to the global named $3 in the namespace denoted by the key constant $2, relative to the current HLL root namespace. If the namespace or the global doesn't exist, $1 is set to null.
get_root_global(out PMC, in STR)
Set $1 to the global named $2 in the true root namespace. If the global doesn't exist, $1 is set to null.
get_root_global(out PMC, in PMC, in STR)
Set $1 to the global named $3 in the namespace denoted by the key constant $2, relative to the true root namespace. If the namespace or the global doesn't exist, $1 is set to null.

Global variable 'set' opcodes

set_global(in STR, invar PMC)
Set the global named $1 in the current namespace to $2.
set_global(in PMC, in STR, invar PMC)
Set the global named $2 in the namespace denoted by the key constant $1, relative to the current namespace, to $3. If the namespace does not exist, it is created.
set_hll_global(in STR, invar PMC)
Set the global named $1 to $2 in the current HLL root namespace.
set_hll_global(in PMC, in STR, invar PMC)
Set the global named $2 in the namespace denoted by the key constant $1 (relative to the current HLL namespace) to $3. If the namespace does not exist, it is created.
set_root_global(in STR, invar PMC)
Set the global named $1 in the true root namespace to $2.
set_root_global(in PMC, in STR, invar PMC)
Set the global named $2 in the namespace denoted by the key constant $1 (relative to the true root namespace) to $3. If the namespace does not exist, it is created.

Global variable ops

Operations to modify global variables

find_name(out PMC, in STR)
Find the name $2 in lexical, current, global, or builtin namespace and store it in $1. If the name doesn't exist either throws an exception or sets $1 to PMCNULL, depending on current errors settings. See errorson.

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.