/* Questo e' un piccolo esempio di uno scanner di tipo standalone. Viene letta la parola dopo la keyword name e vengono sostituite nel testo tutte le occorrenze di "ciao" con la stringa "ciao !" */ //SEZIONE DEL CODICE %% //SEZIONE DELLE DICHIARAZIONI // La classe contenente lo scanner avra' il nome Subst %class Subst // Viene creato un metodo main che si aspetta in ingresso // una lista di file su cui applicare lo scanner:wq %standalone // Definisce il set di caratteri su cui lo scanner lavora: // quando si usa lo scanner su file testuali deve essere attivato %unicode %{ // Verra' creata una variabile di tipo String nella classe Subst String nome; %} %% //SEZIONE DELLE REGOLE // Quando viene trovarla la parola nome si salva la parola che segue // nella variabili di tipo String nome "nome " [a-zA-Z]+ { nome = yytext().substring(5); } // Quando viene trovata la parola "Ciao" o "ciao" si riscrive la parola // seguita dal nome salvato nella variabile nome [Cc] "iao" { System.out.print(yytext()+" "+nome+"!"); }