Successivo: Funzioni di registrazione, Precedente: Funzioni di allocazione memoria, Su: Descrizione dell'estensione API [Contenuti][Indice]
L’API fornisce varie funzioni di costruzione per creare valori di tipo stringa e di tipo numerico, e anche varie macro di utilità. Questa sottosezione le presenta tutte come prototipi di funzione, nel modo in cui il codice sorgente di un’estensione le userebbe:
static inline awk_value_t *
make_const_string(const char *stringa, size_t lunghezza, awk_value_t *risultato);
Questa funzione mette il valore di una stringa nella variabile
awk_value_t
puntata da risultato
. La funzione presuppone che
stringa
sia una costante stringa C
(o altri dati che formano una stringa), e automaticamente crea una
copia dei dati che sarà immagazzinata in risultato
.
Viene restituito il puntatore risultato
.
static inline awk_value_t *
make_malloced_string(const char *stringa, size_t lunghezza, awk_value_t *risultato);
Questa funzione mette il valore di una stringa nella variabile
awk_value_t
puntata da risultato
. Si presuppone che
stringa
sia un valore ‘char *’
che punta a dati ottenuti in precedenza per mezzo di
gawk_malloc()
, gawk_calloc()
o gawk_realloc()
.
L’idea è che questi dati siano comunicati direttamente a gawk
,
che se ne assume la responsabilità.
Viene restituito il puntatore risultato
.
static inline awk_value_t *
make_null_string(awk_value_t *risultato);
Questa funzione specializzata crea una stringa nulla (il valore “undefined”)
nella variabile awk_value_t
puntata da risultato
.
Viene restituito il puntatore risultato
.
static inline awk_value_t *
make_number(double num, awk_value_t *risultato);
Questa funzione crea semplicemente un valore numerico nella variabile
awk_value_t
, puntata da risultato
.
static inline awk_value_t *
make_number_mpz(void *mpz, awk_value_t *result);
Questa funzione crea un valore di numero GMP in result
.
mpz
deve provenire da una chiamata a get_mpz_ptr()
(e quindi essere veramente del corrispondente tipo mpz_ptr
).
gawk
assume la proprietà di questa memoria.
static inline awk_value_t *
make_number_mpfr(void *mpfr, awk_value_t *result);
Questa funzione crea un valore di numero MPFR in result
.
mpz
deve provenire da una chiamata a get_mpfr_ptr()
(e quindi essere veramente del corrispondente tipo mpfr_ptr
).
gawk
assume la proprietà di questa memoria.
static inline awk_value_t *
make_const_user_input(const char *stringa, size_t lunghezza, awk_value_t *risultato);
Questa funzione è identica a make_const_string()
, ma la stringa è
marcata come input dell’utente, che dovrà essere trattata come strnum
se il contenuto della stringa appare essere numerico.
static inline awk_value_t *
make_malloced_user_input(const char *stringa, size_t lunghezza, awk_value_t *risultato);
Questa funzione è identica a make_malloced_string()
, ma la stringa è
marcata come input dell’utente, che dovrà essere trattata come strnum
se il contenuto della stringa appare essere numerico.
static inline awk_value_t *
make_const_regex(const char *stringa, size_t lunghezza, awk_value_t *risultato);
Questa funzione crea un valore di regexp fortemente tipizzata, allocando una
copia della stringa.
stringa
è l’espressione regolare, di lunghezza lunghezza
.
static inline awk_value_t *
make_malloced_regex(const char *stringa, size_t lunghezza, awk_value_t *risultato);
Questa funzione crea un valore di regexp fortemente tipizzata.
stringa
è l’espressione regolare, di lunghezza lunghezza
.
Si aspetta che stringa
sia un valore di tipo ‘char *’ che punta a
dati ottenuti in precedenza tramite una chiamata a
gawk_malloc()
, gawk_calloc()
o gawk_realloc()
.
Successivo: Funzioni di registrazione, Precedente: Funzioni di allocazione memoria, Su: Descrizione dell'estensione API [Contenuti][Indice]