%{ extern int yylex(); #include int yyerror (char const *message) { fprintf(stderr,"<%s>", message); return 0; } %} %error-verbose %token WORD ART TRANS_VERB COMM_NOUN PROP_NOUN '\n' '.' %% Text : /* Mot vide */ | Text Mot { } | Text '.' { fprintf(stderr,"."); } | Text '\n' { fprintf(stderr,"\\n\n"); } ; Mot : ART { fprintf(stderr,"ART "); } | TRANS_VERB { fprintf(stderr,"TRANS_VERB "); } | COMM_NOUN { fprintf(stderr,"COMM_NOUN "); } | PROP_NOUN { fprintf(stderr,"PROP_NOUN "); } | WORD { fprintf(stderr,"UNK_WORD "); } ; %% int main(void) { return yyparse(); }