Implementazione della sottoclasse. Assegnamenti

Implementazione della sottoclasse. Assegnamenti

L’assegnamento è una operazione binaria. Il riconoscitore garantisce che vi sia una variabile come operatore sinistro e una somma come operatore destro. Di conseguenza, quello che abbiamo necessità di implementare è di fatto l’operatore assegnazione, ossia la funzione dinamicamente linkata all’interno del componente .exec della descrizione di tipo

#include "value.h"
#include "value.r"
static double doAssign (const void * tree)
{
return value(left(tree)) = exec(right(tree));
}
static struct Type _Assign = { mkBin, doAssign, freeBin };
const void * Assign = & _Assign;

Condividiamo il costruttore e il distruttore per Bin che, di conseguenza, deve essere reso globale nell’implementazione delle operazioni aritmetiche. Dobbiamo inoltre condividere struct Bin e le funzioni di accesso left() e right(). Tutto ciò viene esportato con il file interfaccia in value.h e il file di rappresentazione value.r. La nostra funzione di accesso value() per la struct Var permette di effettuare modifiche così l’assegnazione diventa semplice da implementare.

STAMPA     Tags:

Leave a Reply