Mirko Manea: lavoro svolto dal 7/1/97 al 31/1/97
Analizzatore sintattico
L'analizzatore sintattico viene invocato su un ogetto di tipo stringa
contenente i tokens separati da spazi. A questo punto sappiamo gia` che
la cella contiene una formula e percio' procediamo ad analizzare l'espressione
che la compone. Questa attivita` e` basata sull'uso di una grammatica context-free
la cui espressione BNF e` la seguente:
espr ::= espr2 | espr2 + espr | espr2 - espr
espr2 ::= espr3 | espr3 * espr | espr3 / espr
espr3 ::= espr4 | espr4 ^ espr
espr4 ::= [+|-] espr5
espr5 ::= ( espr ) | termine
termine ::= numero | perc | cella | ABS(espr) | MOD(espr
; espr) | SOMMA(range) | MEDIA(range)
perc ::= val %
range ::= cella : cella
cella ::= {A,...,Z}+{0,...,9}+
numero ::= val[.val][[{+|-}{e|E}.val]]
val ::= {0,...,9}+
Questo passo viene svolto contemporaneamente alla costruzione dell'albero
di valutazione.