Home
Accesso / Registrazione
 di 

Programmazione orientata agli oggetti in ANSI-C. Usare le variabili

Programmazione orientata agli oggetti in ANSI-C. Usare le variabili

Una variabile prende parte ad un'operazione in due modi: il suo valore viene usato come operando in un'espressione oppure il valore di un'espressione viene assegnato alla variabile stessa. La prima operazione è una semplice estensione della funzione factor() parte del riconoscitore illustrato in un altro articolo:

static void * factor (void)
{ void * result;
...
switch (token) {
case VAR:
result = symbol;
break;
...

VAR è un valore unico che screen() pone in token quando un identificatore idoneo viene trovato. Informazioni aggiuntive circa l'identificatore vengono inserite nella variabile globale symbol. In questo caso symbol contiene un nodo che rappresenta la variabile come una foglia nell'albero dell'espressione. Screen() trova la variabile nella tabella dei simboli o usa la descrizione VAR per crearla.

Riconoscere un assegnazione è un po' più complicato. Il nostro calcolatore è facile da usare se consentiamo due tipi di istruzioni con la sintassi seguente:

asgn : sum
| VAR = asgn
Sfortunatamente, VAR può anche apparire al termine sinistro di una somma, ossia non è immediatamente chiaro come riconoscere le assegnazioni in stile C con la nostra tecnica ricorsiva. Poiché vogliamo imparare a lavorare con le keywords comunque, dobbiamo impostare la seguente grammatica:
stmt : sum
| LET VAR = sum

Nel programma principale si chiama stmt() al posto di sum() e il nostro riconoscitore è pronto per gestire le variabili. Assign è una nuova descrizione di tipo per un nodo che calcola il valore di una somma e lo assegna ad una variabile.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 10 utenti e 74 visitatori collegati.

Ultimi Commenti