var.ops - Variable Ops
These operations deal with both lexical and global variables,
as well as the symbol tables that contain them.
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.
- 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.
- 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.
- 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 $1 to the global named $2 in the current HLL root namespace.
If the global doesn't exist,
$1 is set to null.
- set_hll_global(in PMC,
in STR,
invar PMC)
- 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.
- set_root_global(in STR,
invar PMC)
- Set $1 to the global named $2 in the true root namespace.
If the global doesn't exist,
$1 is set to null.
- set_root_global(in PMC,
in STR,
invar PMC)
- 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.
Operations to modify global variables
- store_global(in STR,
invar PMC)
- Store value $2 as global symbol $1 in the current namespace.
- store_global(in STR,
in STR,
invar PMC)
- store_global(in PMC,
in STR,
invar PMC)
- Store global $3 as global symbol $2 in namespace designated by $1.
If namespace does not exist,
create it.
$1 may be a key,
a string,
or an array of strings.
- find_global(out PMC,
in STR)
- Find the global named $2 in the current namespace and store it in $1.
- If the global doesn't exist either throws an exception or sets $1 to the Null PMC,
depending on current errors settings.
See errorson.
- find_global(out PMC,
in STR,
in STR)
- Find the global named $3 in the namespace named $2 and store it in $1.
- If the global doesn't exist either throws an exception or sets $1 to the Null PMC,
depending on current errors settings.
See errorson.
- find_global(out PMC,
in PMC,
in STR)
- Find the global named $3 in the namespace designated by $2 and store it in $1.
$2 may be a key,
a string,
or an array of strings.
- If the global doesn't exist either throws an exception or sets $1 to the Null PMC,
depending on current errors settings.
See errorson.
- 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 (C) 2001-2006,
The Perl Foundation.
This program is free software.
It is subject to the same license as the Parrot interpreter itself.