Successivo: , Su: Accedere alla tabella simboli   [Contenuti][Indice]


16.4.10.1 Accedere alle variabili per nome e aggiornarle

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 *name,
                      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 name, 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 16.1).

awk_bool_t sym_update(const char *name, awk_value_t *valore);

Aggiorna la variabile il cui nome è contenuto nella stringa name, 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: , Su: Accedere alla tabella simboli   [Contenuti][Indice]