The following routines provide the ability to access and update global awk-level variables by name. In compiler terminology, identifiers of different kinds are termed symbols, thus the “sym” in the routines' names. The data structure which stores information about symbols is termed a symbol table.
awk_bool_t sym_lookup(const char *name,
awk_value_tstructure pointed to by
resultwith the value of the variable named by the string
name, which is a regular C string.
wantedindicates the type of value expected. Return true if the actual type matches
wanted, false otherwise In the latter case,
result->val_typeindicates the actual type (see Table 16.1).
awk_bool_t sym_update(const char *name, awk_value_t *value);
name, which is a regular C string. The variable is added to gawk's symbol table if it is not there. Return true if everything worked, false otherwise.
Changing types (scalar to array or vice versa) of an existing variable
is not allowed, nor may this routine be used to update an array.
This routine cannot be used to update any of the predefined
variables (such as
An extension can look up the value of gawk's special variables.
However, with the exception of the
PROCINFO array, an extension
cannot change any of those variables.