/************ first.lex - versione 1 *********** Analizzatore lessicale per alcuni semplici token. Rispetto alla versione precedente la classe contenente il metodo main si trova in un altro file. Anche la classe Yytoken, riscritta per potere associare valori ai token, si trova in un altro file. Le istruzioni di codice associate alle regole lessicali sono state modificate in funzione della nuova classe Yytoken. *************************************************/ %% %unicode LETTERA = [:letter:] CIFRA = [:digit:] FINERIGA = \r | \n | \r\n SPAZIATURA = [ \t\f] | {FINERIGA} %% {LETTERA}+ {return new Yytoken(TipoToken.PAROLA, yytext());} {CIFRA}+ {return new Yytoken(TipoToken.NUMERO, new Integer(yytext()));} "." {return new Yytoken(TipoToken.PUNTO);} "," {return new Yytoken(TipoToken.VIRGOLA);} ":" {return new Yytoken(TipoToken.DUE_PUNTI);} ";" {return new Yytoken(TipoToken.PUNTO_E_VIRGOLA);} "!" {return new Yytoken(TipoToken.PUNTO_ESCLAMATIVO);} "?" {return new Yytoken(TipoToken.PUNTO_INTERROGATIVO);} {SPAZIATURA} {} . {return new Yytoken(TipoToken.ALTRO, yytext());}