- BASIC_IO (operazioni elementari di I/O)
void A_Capo_Lettura(vod)
/*avanza la lettura sul file ingresso.txt alla riga successiva*/
void A_Capo_Stampa(vod)
/*avanza la scrittura sul file uscita.txt alla riga successiva*/
char Look_Char(vod)
/*ritorna il prossimo carattere sul file ingresso.txt,
non avanza la lettura
se la linea è finita ritorna '/0'*/
void Salta(char c)
/*avanza la lettura sul file ingresso.txt fino a superare
la prossima occorenza di c */
void Salta_Blanks(char c)
/*avanza la lettura sul file ingresso.txt fino a raggiungere
il primo carattere diverso dal ' ' sulla linea corrente,
altrimenti raggiunge la fine della linea */
- REALI_ENORMI (il tipo di dato reali enormi)
typedef ... REALE_ENORME
void Stampa_Reale_Enorme(REALE_ENORME re);
REALE_ENORME Leggi_Reale_Enorme(void);
REALE_ENORME Somma(REALE_ENORME re1, REALE_ENORME re2);
REALE_ENORME Prodotto(REALE_ENORME re1, REALE_ENORME re2);
REALE_ENORME Differenza(REALE_ENORME re1, REALE_ENORME re2);
...
- IDENT (il tipo di dato identificatori)
typedef ... IDENT
IDENT Leggi_Ident(void);
int Uguali_Ident(IDENT id1, IDENT id2);
...
- ESPRESSIONI (il tipo di dato espressioni)
typedef ... ESPRESSIONE
ESPRESSIONE Leggi_Espressione(void);
int E_Identificatore(ESPRESSIONE esp);
int E_Valore(ESPRESSIONE esp);
int E_Chiamata_Funzione(ESPRESSIONE esp);
int E_Applicazione(ESPRESSIONE esp);
/*controllano se un'espressione è rispettivamente un identificatore,
un valore di tipo reale enorme, una chiamata di funzione o un'applicazione di un operatore.*/
IDENT Ident(ESPRESSIONE esp);
REALE_ENORME Valore(ESPRESSIONE esp);
ESPRESSIONE Parametro_Attuale(ESPRESSIONE esp);
IDENT Funzione(ESPRESSIONE esp);
ESPRESSIONE Primo_Arg(ESPRESSIONE esp);
ESPRESSIONE Secondo_Arg(ESPRESSIONE esp);
char Operatore(ESPRESSIONE esp);
/*ritornano le varie parti di un'espressione;
tale espressione deve essere del tipo giusto, cioè deve avere tale parte*/
- MEMORIA (le memorie per immagazzinare i valori delle costanti e
dei parametri delle funzioni)
typedef ... MEMORIA
const MEMORIA Vuota = ...;
MEMORIA Valori_Costanti = Vuota;
/*variabile globale che contiene i valori delle costanti*/
MEMORIA Modifica(IDENT id, REALE_ENORME re, MEMORIA m)
/*ritorna la memoria ottenuta modificando m in modo che il valore di id sia re*/
REALE_ENORME Valore_Di(MEMORIA m, IDENT id)
/*ritorna il valore associato ad id in m,
si assume che ci sia sempre un'associazione per id in m */
...
- AMBIENTE (gli ambienti per immagazzinare le definizioni delle funzioni)
typedef ... AMBIENTE
const AMBIENTE Vuoto = ...;
AMBIENTE Funzioni = Vuoto;
/*variabile globale che contiene le definizioni delle funzioni*/
void Aggiungi_Funzione(IDENT funz, IDENT param, ESPRESSIONE cor)
/*aggiunge a Funzioni la definizione della funzione funz con
parametro formale param e corpo cor*/
IDENT Parametro_Formale(IDENT funz)
/*ritorna il parametro formale della funzione funz come registrato in Funzioni,
si assume che ci sia sempre una definizione per funz in Funzioni */
ESPRESSIONE Corpo(IDENT funz)
/*ritorna il corpo della funzione funz come registrato in Funzioni,
si assume che ci sia sempre una definizione per funz in Funzioni */
...