Osservazioni ed esercizi - Cambia qualcosa (e cosa) se il campo nToken viene definito statico? - Come si potrebbe fare contare alla classe Token il numero di token costruiti, evitando cosi' il campo nToken dell'analizzatore lessicale e l'incremento di nToken nelle azioni dell'analizzatore lessicale? - Si potrebbe definire un secondo costruttore per l'analizzatore lessicale (all'interno del codice nella parte %{ ... %}) che riceva come argomenti lo stream di lettura e un boolean. Se il boolean e' false i messaggi di inizio e fine analisi lessicale devono essere disabilitati. - Sarebbe interessante modificare la classe ElencaParole in modo che fornisca un elenco alfabetico di tutte le parole presenti nel testo esaminato e i numeri delle righe in cui ciascuna di essa appare. Per fornire l'elenco in ordine alfabetico, e' sufficiente modificare ElencaParole. Per ottenere invece informazioni sui numeri di riga occorre modificare la classe Token (e l'analizzatore lessicale) in modo che in ciascun token sia memorizzato il numero della riga in cui e' stato individuato e che questa informazione sia resa disponibile mendicante un metodo opportuno. - L'analizzatore lessicale, la classe Token e TipoToken potrebbero essere collocate in un package. In questo modo, utilizzando una direttiva di importazione statica, e' possibile scrivere le azioni dell'analizzatore lessicale in maniera un po piu' sintetica, evitando di indicare il nome della classe TipoToken davanti a ogni costante.