%{ int var=0; #define yysetvalue(x) var=x %} %initnlex port %feat CAT G N TR T P SEM FSEM C %% [0-9] {yysetvalue(INTEIRO);} [.,?] {yysetvalue(PUNCT);} %word {*CAT=nc,ROOT=fim*} { printf("(EOF) ");yysetvalue(EOF);} {*CAT=nc,G=m*} { printf("(nome) ");yysetvalue(NOUN);} {*CAT=nc,G=f*} { printf("(nome) ");yysetvalue(NOUN); } {*CAT=np*} { printf("(nome) ");yysetvalue(NOUN);} {*CAT=prep*} { printf("(prep) ");yysetvalue(PREP);} {*CAT=v*} { printf("(v) ");yysetvalue(VERB);} {*CAT=art*} { printf("(art) ");yysetvalue(DET);} {*CAT=pind*} { printf("(pind) ");yysetvalue(PIND);} {*CAT=punct*} { printf("(punct) ");yysetvalue(PUNCT);} {**} { printf("(default %s)",yytext);yysetvalue(UNDEF);} <> { printf(".\n"); return var;} %undef {**} { printf("(Undefined %s)", yytext);yysetvalue(UNDEF);} <> { printf(".\n"); return var;} %%