/************* minimal.lex - versione 1 *********** Riconoscitore di semplici token. Aggiunge rispetto alla versione 0: - possibilità di leggere l'input da file - possibilità di leggere caratteri Unicode - utilizzo di alcune costanti di JFlex **************************************************/ import java.io.*; class Esempio { public static void main(String argv[]) throws IOException { Yylex yy; if (argv.length == 0) yy = new Yylex(System.in); else yy = new Yylex(new FileReader(argv[0])); Yytoken t = yy.yylex(); } } class Yytoken {} %% %unicode LETTERA = [:letter:] CIFRA = [:digit:] FINERIGA = \r | \n | \r\n SPAZIATURA = [ \t\f] | {FINERIGA} %% {LETTERA}+ {System.out.println("Stringa alfabetica: " + yytext());} {CIFRA}+ {System.out.println("Numero " + yytext());} "." {System.out.println("Punto");} "," {System.out.println("Virgola");} ":" {System.out.println("Due punti");} ";" {System.out.println("Punto e virgola");} "!" {System.out.println("Punto esclamativo");} "?" {System.out.println("Punto interrogativo");} {SPAZIATURA} {} . {System.out.println("Altro carattere: " + yytext());}