Sei sulla pagina 1di 3

File: token.

h
[tipi di dato]
enum type: enumerazione che pu assumere i seguenti valori:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
|
| 12 | 13 |
{EOL, PLUS, MINUS, UMINUS, FOR, DIV, POW, TON_AP, ON_CH, QUAD_AP,
QUAD_CH, GRAF_AP, GRAF_CH, NUM}
10 |

11

Type: sinonimo di enum type.


union Switch: union, che pu contenere un operatore o un numero, con la seguente s
truttura:
union Switch
{
char op; /*operatore*/
float num; /*operando*/
};
struct token: struttura adatta a memorizzare un token:
struct token
{
Type symbol; /*identifica l'operatore/operando*/
union Switch ON; /*memorizza l'operatore/operando*/
};
Token: sinonimo di struct token;
TokenPtr: sinonimo di Token*;
[prototipi di funzione]
Type getToken(TokenPtr a, char *str)
Estrae il token da str e lo memorizza in una struttura di tipo Toke
n;
riceve due parametri la stringa dalla quale estrarre il
token e l'indirizzo
di un dato di tipo Token adatto a memorizzarlo.
Restituisce un dato di Tipo Type che identifica l'opera
tore/operando contenuto nel token.
File: stack.h
[tipi di dato]
struct pila: struttura adatta a contenere dati da inserire in una pila(stack):
struct pila
{
Token date;
struct pila *next;
};
Pila: sinonimo di struct pila;
pilaPtr: sinonimo di Pila*;

[prototipi di funzioni]
int push(pilaPtr *stack, void *value, Type id)
Inserisce un elemento di tipo Pila in uno stack.
Riceve tre parametri, l'indirizzo del dato da immagazzi
nare identificato da id,
che viene opportunamente memorizzato in una struttura d
i tipo Pila;
e l'indirizzo di un puntatore a pilaPtr che punta all'i
ndirizzo dell'ultimo elemento
aggiunto.
Restituisce 0 se l'elemento stato correttamente aggiunt
o, altrimenti -1.
int pop(pilaPtr *stack)
Elimina l'elemento che si trova in cima allo stack.
Riceve come argomento l'indirizzo di un puntatore a pila
Ptr che contiene l'indirizzo
dell'elemento che si trova in cima allo stack.
Restituisce 0 se l'elemento stato eliminato, altrimenti
-1.
/*modifica in modo che possa contare operandi, operatori o parentesi*/
int getElements(pilaPtr *stack)
Conta gli elementi presenti nello stack che non siano parentesi.
Riceve come argomento un puntatore a pilaPtr.
Restituisce il numero di elementi presenti.
int searchElement(pilaPtr *stack, Type id)
Cerca un elemento nello stack identificato da id.
Riceve due argomenti, un puntatore a pilaPtr che contiene l'indirizz
o dell'elemento
che si trova in cima allo stack, e un dato di tipo Type che identifi
ca l'elemento
da cercare.
Restituisce 0 se l'elemento stato trovato, altrimenti -1.
File: freesolver.h
[tipi di dato]
nessuno
[prototipi di funzione]
char getOperator(Type operatorID)
Riceve come argomento un dato di tipo Type che identifica l'operator
e e
ne restituisce un carattere equivalente.
float bCalculate(float num1, float num2, char operator)
Esegue un calcolo tra due numeri.
Riceve come parametri due dati di tipo float, e un dato
di tipo char che identifica

l'operatore da utilizzare per il calcolo.


Restituisce il risultato dell'operazione.
float uCalculate(float num, char operator)
Restituisce l'equivalente negativo di num se operator vale '-', altr
imenti restituisce il numero inalterato.
void reduce(pilaPtr *pilaNum, pilaPtr *pilaOp)
(Da controllare e definire)
float resolve(char *expression)
(Da controllare e definire)