VegetaSSJ5
20-01-2005, 16:41
Salve ragazzi, per il corso di compilatori all'università devo imparare un po' di lex e yacc. Ieri il prof ha spiegato la sintassi di un programma lex. Oggi sto facendo un po' di pratica. La mia domanda è questa:
Se lex riconosce che la stringa è un lessema, esegue la action associata. Se lex non riconosce la stringa come un lessema la copia su stdout. Io vorrei che non effettuasse la copia su stdout delle stringhe che non fanno match con nessun pattern. Come si può fare?
P.S.
il man lex è lungo 2410 righe, l'ho consultato prima e infatti ho risolto anche altri problemi: ho capito che devo dichiarare nel .l il main() e la yywrap() e che per far partire l'analisi devo richiamare la funzione yylex(). Ho cercato di cercare nel man la soluzione anche a questo problema ma non essendoci riuscito ho postato qui...:)
Se lex riconosce che la stringa è un lessema, esegue la action associata. Se lex non riconosce la stringa come un lessema la copia su stdout. Io vorrei che non effettuasse la copia su stdout delle stringhe che non fanno match con nessun pattern. Come si può fare?
P.S.
il man lex è lungo 2410 righe, l'ho consultato prima e infatti ho risolto anche altri problemi: ho capito che devo dichiarare nel .l il main() e la yywrap() e che per far partire l'analisi devo richiamare la funzione yylex(). Ho cercato di cercare nel man la soluzione anche a questo problema ma non essendoci riuscito ho postato qui...:)