|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9569
|
Domanda su LEX
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... ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9569
|
dopo un'attenta analisi del man flex ecco quello che mi serviva:
Codice:
-s causes the default rule (that unmatched scanner input is echoed to stdout) to be suppressed. If the scanner encounters input that does not match any of its rules, it aborts with an error. This option is useful for finding holes in a scanner's rule set. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:05.