Linguaggi e traduttori
Anno Accademico 2010/2011
Parser bottom-up
CUP
Constructor of Useful Parsers
Note relative all'installazione.
Esempio: espressioni aritmetiche
Gli esempi presentati svolgono compiti analoghi a quelli presentati per il
parsing top-down.
È stata utilizzata la versione 11a beta di CUP.
In alcuni esempi viene inoltre utilzzata la classe
EspressioneException del package
lt2.calc.
Nota
L'analizzatore sintattico generato da CUP utilizza token prelevati
dall'analizzatore lessicale da uno stream di input. La fine dello
stream è indicata da un particolare token EOF. Nella maggior
parte dei casi lo stream è un file di testo. Negli esempi
precedenti, invece, l'input dell'applicazione è sempre una riga
di testo a partire dalla quale, mediante l'uso di
StringReader viene creato uno strem corrispondente a essa.
Forniamo un esempio in cui la lettura avviene
da un file (lo standard input). Si tratta sempre di una calcolatrice
(senza identificatori), in cui possono
essere inserite più espressioni, una per riga. Si notino le
modifiche al file di specifica sintattica, con una nuova variabile per
trattare più righe di testo.
Ultimo aggiornamento: 7 giugno 2011
© Giovanni
Pighizzini
Università degli Studi di
Milano