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.