%{ #define set_estado(x) BEGIN(_stack[_i]=x) #define push_to_stack(x) _stack[++_i]=YY_START; set_estado(x) #define pop_back set_estado(_stack[--_i]) #include #include #define MAX 1000 int _i=0; int _stack[MAX]; int i=0; int cont_pags=1; int cont_fig=1; int cont_tab=1; int cont_grv=1; int cont_toc=1; int cont_link=1; int cont_entrada=1; int cont_pagebreak=1; %} LETRA [a-zA-Z] PALAVRA [a-zA-Z&0-9\[\]]+ PALAVRASUPER [a-zA-Z&0-9\[\]\(\)]+ PALAVRASPAS [a-zA-Z&0-9\[\]\(\)]+ BLANK [ \t\n] PONTUACAO [:\.;',?!\-_] TEXTO ({BLANK}*{PALAVRA}{BLANK}*{PONTUACAO}*{BLANK}*)+ TEXTOASPAS ({BLANK}*{PALAVRASPAS}{BLANK}*{PONTUACAO}*{BLANK}*)+ NUMINT [0-9]+ NUMREAL {NUMINT}\.{NUMINT} %Start e1 e2 e3 e4 e5 e6 e7 e8 e9 %% set_estado(e1); \\pi printf("π"); \\normalsize ; \\numeracao\{{PALAVRA}\} ; \\pagina\{{NUMINT}\} ; \\vspace\{{NUMINT}(cm)\}|\\vspace\{{NUMREAL}(cm)\} ; \\hspace\{{NUMINT}(cm)\}|\\hspace\{{NUMREAL}(cm)\} ; \\input\{defs\} ; \\thispagestyle\{empty\} ; \\noindent ; \\vspace\*\{{BLANK}*{NUMINT}(cm)\} ; _\\\\ printf("\n"); ^(\n)+ printf("\n"); \\\\ printf("\n"); \\espaco printf(""); (\\linha|\\stracos) {printf("");} ũ printf("u"); Ũ printf("U"); &etilde; printf("e"); &Etilde; printf("E"); ĩ printf("i"); Ĩ printf("I"); \< printf("<"); \> printf(">"); \\espacamento\{0\.4\} ; \\espacamento\{7\} {printf("\n\n\t", cont_tab); cont_tab++;} \\espacamento\{5\} {printf("\n\n\t", cont_tab); cont_tab++;} \\espacamento\{8\.5\} {printf("\n\n\t", cont_tab); cont_tab++;} \\supers\{{PALAVRASUPER}\} {i=8; printf("."); while(i\n\n"); \\end\{quotation\} printf("\n\n\n\n"); \\hifen\{{TEXTO}\} {i=7; printf("-"); while(i\n"); push_to_stack(e6);} \\cal\{ push_to_stack(e7); \} pop_back; \\\) {printf("\n\n"); pop_back;} \\centrado{BLANK}*\{{BLANK}*\{\\[lL]arge{BLANK}* {printf("\n\n", cont_link++); push_to_stack(e4);} \}\} {printf("\n");pop_back;} \\aspas\{ {push_to_stack(e2); printf("\n\"\n"); } \} {printf("\n \" \n"); pop_back;} \\addtocounter\{footnote\}\{{NUMINT}\} ; \\livro\[({TEXTO}*\\\\*{TEXTO}\\\\{TEXTO})\] {printf("\n\n\n\n\t\n", cont_fig); cont_fig++;} \\Desc\[aZZ=\"{BLANK}*\"\] ; \\pags {switch(cont_pags){ case 82: {printf("\n\n[Página %d]\n\n", cont_pags); printf("\n\n\t", cont_tab++); break;} case 83: {printf("\n\n[Página %d]\n\n", cont_pags); printf("\n\n\t", cont_tab++); break;} case 84: {printf("\n\n[Página %d]\n\n", cont_pags); printf("\n\n\t", cont_tab++); break;} case 85: {printf("\n\n[Página %d]\n\n", cont_pags); printf("\n\n\t", cont_tab++); break;} case 86: {printf("\n\n[Página %d]\n\n", cont_pags); printf("\n\n\t", cont_tab++); break;} default: {printf("\n\n[Página %d]\n\n", cont_pags);} } cont_pags++; } \\begin\{itemize\} printf("\n\n"); \\end\{itemize\} printf("\n\n\n\n"); \\entrada\{ {switch(cont_entrada){ case 1: { printf("\n\n\n"); break;} default: printf("\n\n\n\n"); } cont_entrada++; push_to_stack(e9); } \} pop_back; \\ultima printf("\n\n \n\n\n\n"); \\last ; \\pagebreak {switch(cont_pagebreak){ case 1: {printf("\n\n\n\n\n"); break;} default: printf("\\novapagina"); } cont_pagebreak++; } \\esima printf(".a"); \\esimo printf(".o"); \\gamma printf("γ"); \\delta printf("δ"); \\omega printf("ω"); \\beta printf("β"); \\addcontentsline\{toc\}\{section\}\{\\protect\\numberline\{\}\{{TEXTO}\}\} {printf("\n\n\t",cont_toc++);} \\addcontentsline\{grv\}\{section\}\{\\protect\\numberline\{\}\{{TEXTO}\}\} {printf("\n\n\t",cont_grv++);} \\lado\{Estampa{BLANK}*{NUMINT}\} ; %%