%{ int var=0,pr=1; %} %initnlex port %feat CAT G N TR P T SEM I Prep Art PFSEM FSEM C Pdem AP AG AN Ppes Pind ABR GR %% [0-9]+ { printf("(ncard)%s\n",yytext);} [A-Z]\. { printf("(abre)%s\n",yytext);} \$[^$]\$ { printf("(npm)<%s>", yytext);} [0-9]+\% { printf("(nprec)%s\n",yytext); } [0-9]+º { printf("(nord m)%s\n",yytext); } [0-9]+ª { printf("(nord f)%s\n",yytext); } [0-9]+h[0-9][0-9]m? { printf("(nc fp)%s\n",yytext); } [;:,()] { printf("(p1)%s\n",yytext); } [.?!] { printf("(p0)%s\n",yytext); } «[^»]*» { printf("«...»","quote","quote");} {P} { printf("\n----\n");} %word {*CAT=nc*} { printf("(n%s%s)",G,N);} {*CAT=np*} { printf("(np)");} {*CAT=prep*} { printf("(p)");} {*CAT=v,T=i*} { ;} {*CAT=v,ROOT=ser*} { printf("(ser_%s%s%s)",T,N,P);} {*CAT=v,ROOT=ter*} { printf("(ter_%s%s%s)",T,N,P);} {*CAT=v,ROOT=ir*} { printf("(ir_%s%s%s)",T,N,P);} {*CAT=v*} { printf("(v_%s%s%s)",T,N,P);} {*CAT=art*} { printf("(art)");} {*CAT=pind*} { printf("(pind)");} {*CAT=punct*} { if(yytext[0]=='.') {printf(".\n");pr=0;} else printf("(punct)");} {**} { printf("(%s)",CAT);} <> { if(pr){printf("%s\n",nltext);}else{pr=1;}} %undef {*CAT=v*} { printf("(v?-%s)",ROOT);} {*CAT=nc*} { printf("(nc?-%s)",ROOT);} {*CAT=adv*} { printf("(adv?-%s)",ROOT);} {*CAT=adj*} { printf("(adj?-%s)",ROOT);} {*nltext=pt*} { printf("(np mp)Portugal");pr=0;} {*UC*} { printf("(pn?)");} {*AUC*} { printf("(abr?)");} {**} { printf("(%s-?)",LETT);} <> { if(pr){printf("%s\n",nltext);}else{pr=1;}} %% main() { yylex(); }