Successivo: Tabella simboli tramite cookie, Su: Accedere alla tabella simboli [Contenuti][Indice]
Le routine che seguono permettono di raggiungere e aggiornare
le variabili globali a livello di awk
per nome. Nel gergo dei
compilatori, gli identificativi di vario tipo sono noti come simboli,
da cui il prefisso “sym” nei nomi delle routine. La struttura di dati che
contiene informazioni sui simboli è chiamata Tabella dei simboli
(Symbol table).
Le funzioni sono le seguenti:
awk_bool_t sym_lookup(const char *nome,
awk_valtype_t wanted,
awk_value_t *risultato);
Riempie la struttura awk_value_t
puntata da risultato
con il valore della variabile il cui nome è nella stringa nome
,
che è una normale stringa di caratteri C.
wanted
indica il tipo di valore atteso.
La funzione restituisce true se il tipo effettivo della variabile è quello
specificato in wanted
, e false in caso contrario.
In quest’ultimo caso, risultato>val_type
indica il tipo effettivo
della variabile
(vedi Tabella 17.2).
awk_bool_t sym_lookup_ns(const char *nome,
const char *name_space,
awk_valtype_t wanted,
awk_value_t *risultato);
Simile a sym_lookup()
, ma il parametro name_space
consente di
specificare a quale spazio-di-nomi appartiene nome
.
name_space
non può essere la stringa nulla (NULL
).
Se vale ""
o "awk"
, allora nome
è cercato nello
spazio-di-nomi di default, ossia awk
.
Si noti che namespace
è una parola chiave di C++. Per ragioni di
interoperabilità con C++, si dovrebbe evitare di usare questo identificativo
nel codice C.
awk_bool_t sym_update(const char *nome, awk_value_t *valore);
Aggiorna la variabile il cui nome è contenuto nella stringa nome
,
che è una normale stringa di caratteri C.
La variabile è aggiunta alla Tabella dei simboli di gawk
,
se non è già presente. Restituisce true se tutto è andato bene, e
false in caso contrario.
La modifica del tipo (da scalare a vettoriale o viceversa) di una variabile
già esistente non è consentito, e questa routine non può neppure
essere usata per aggiornare un vettore.
Questa routine non può essere usata per modificare nessuna delle variabili
predefinite (come ARGC
o NF
).
Un’estensione può andare a cercare il valore delle variabili speciali di
gawk
.
Tuttavia, con l’eccezione del vettore PROCINFO
, un’estensione
non può cambiare alcuna di queste variabili.
Successivo: Tabella simboli tramite cookie, Su: Accedere alla tabella simboli [Contenuti][Indice]