# include "stdio.h" # define U(x) ((x)&0377) # define NLSTATE yyprevious=YYNEWLINE # define BEGIN yybgin = yysvec + 1 + # define INITIAL 0 # define YYLERR yysvec # define YYSTATE (yyestate-yysvec-1) # define YYOPTIM 1 # define YYLMAX 200 # define output(c) putc(c,yyout) # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} # define yymore() (yymorfg=1) # define ECHO fprintf(yyout, "%s",yytext) # define REJECT { nstr = yyreject(); goto yyfussy;} int yyleng; extern char yytext[]; int yymorfg; extern char *yysptr, yysbuf[]; int yytchar; FILE *yyin ={stdin}, *yyout ={stdout}; extern int yylineno; struct yysvf { struct yywork *yystoff; struct yysvf *yyother; int *yystops;}; struct yysvf *yyestate; extern struct yysvf yysvec[], *yybgin; # define YYNEWLINE 10 yylex(){ int nstr; extern int yyprevious; while((nstr = yylook()) >= 0) yyfussy: switch(nstr){ case 0: if(yywrap()) return(0); break; case 1: printf("à"); break; case 2: printf("ä"); break; case 3: printf("â"); break; case 4: printf("å"); break; case 5: printf("À"); break; case 6: printf("Ä"); break; case 7: printf("Â"); break; case 8: printf("Å"); break; case 9: printf("è"); break; case 10: printf("é"); break; case 11: printf("ë"); break; case 12: printf("ê"); break; case 13: printf("È"); break; case 14: printf("É"); break; case 15: printf("Ë"); break; case 16: printf("Ê"); break; case 17: printf("ï"); break; case 18: printf("î"); break; case 19: printf("Ï"); break; case 20: printf("Î"); break; case 21: printf("ö"); break; case 22: printf("ô"); break; case 23: printf("Ö"); break; case 24: printf("Ô"); break; case 25: printf("ù"); break; case 26: printf("ü"); break; case 27: printf("û"); break; case 28: printf("Ù"); break; case 29: printf("Ü"); break; case 30: printf("Û"); break; case 31: printf("ç"); break; case 32: printf("Ç"); break; case 33: printf("÷"); break; case 34: printf("×"); break; case 35: printf("æ"); break; case 36: printf("Æ"); break; case 37: printf("ø"); break; case 38: printf("Ø"); break; case 39: printf("½"); break; case 40: printf("¾"); break; case 41: printf("«"); break; case 42: printf("»"); break; case 43: printf("ß"); break; case 44: printf("¿"); break; case 45: printf("©"); break; case 46: printf("¶"); break; case 47: printf("§"); break; case -1: break; default: fprintf(yyout,"bad switch yylook %d",nstr); } return(0); } /* end of yylex */ int yyvstop[] ={ 0, 47, 0, 45, 0, 41, 0, 46, 0, 42, 0, 39, 0, 40, 0, 44, 0, 5, 0, 7, 0, 6, 0, 8, 0, 36, 0, 32, 0, 13, 0, 14, 0, 16, 0, 15, 0, 20, 0, 19, 0, 24, 0, 23, 0, 34, 0, 38, 0, 28, 0, 30, 0, 29, 0, 43, 0, 1, 0, 3, 0, 2, 0, 4, 0, 35, 0, 31, 0, 9, 0, 10, 0, 12, 0, 11, 0, 18, 0, 17, 0, 22, 0, 21, 0, 33, 0, 37, 0, 25, 0, 27, 0, 26, 0, 0}; # define YYTYPE unsigned char struct yywork { YYTYPE verify, advance; } yycrank[] ={ 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,3, 57,32, 58,12, 59,9, 62,52, 61,73, 64,79, 67,21, 68,31, 0,0, 0,0, 0,0, 0,0, 72,41, 76,51, 0,0, 81,36, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,4, 4,11, 1,5, 1,6, 5,13, 0,0, 7,56, 73,22, 0,0, 56,67, 75,99, 57,68, 79,20, 80,103, 84,118, 83,116, 0,0, 0,0, 0,0, 0,0, 7,57, 7,58, 0,0, 0,0, 7,59, 85,119, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,7, 8,66, 0,0, 0,0, 3,14, 6,15, 7,60, 73,42, 7,61, 60,72, 75,100, 66,82, 79,40, 80,104, 62,76, 83,117, 66,83, 90,136, 102,142, 63,78, 7,62, 7,63, 74,98, 7,64, 7,65, 61,74, 65,81, 78,102, 91,137, 92,138, 93,139, 1,8, 94,140, 57,69, 58,70, 59,71, 62,77, 61,75, 64,80, 67,95, 68,96, 69,32, 66,84, 70,12, 71,9, 72,97, 76,101, 77,52, 81,105, 85,32, 95,21, 96,31, 97,41, 92,52, 98,141, 99,22, 66,85, 66,86, 100,42, 101,51, 66,87, 103,20, 104,40, 105,36, 106,19, 107,26, 108,28, 109,30, 110,35, 111,143, 112,39, 66,88, 113,46, 66,89, 66,90, 1,9, 66,91, 1,10, 114,50, 1,11, 115,55, 89,130, 116,24, 117,44, 120,18, 89,131, 121,25, 122,27, 66,92, 66,93, 1,12, 123,29, 66,94, 124,34, 125,144, 1,13, 126,38, 1,14, 1,15, 1,16, 1,17, 89,132, 1,18, 127,45, 1,19, 1,20, 1,21, 1,22, 1,23, 1,24, 1,25, 1,26, 128,49, 89,133, 1,27, 1,28, 129,54, 89,134, 130,17, 131,23, 1,29, 132,33, 1,30, 1,31, 1,32, 1,33, 133,37, 1,34, 1,35, 134,43, 135,53, 1,36, 1,37, 89,135, 1,38, 137,145, 1,39, 1,40, 1,41, 1,42, 1,43, 1,44, 1,45, 1,46, 139,146, 141,147, 1,47, 1,48, 142,148, 143,48, 144,47, 145,149, 1,49, 146,150, 1,50, 1,51, 1,52, 1,53, 82,106, 1,54, 1,55, 88,120, 82,107, 147,151, 148,152, 88,121, 82,108, 149,153, 150,154, 88,122, 151,155, 152,16, 82,109, 153,157, 154,158, 88,123, 155,159, 156,16, 82,110, 157,160, 159,161, 88,124, 160,162, 161,10, 162,164, 82,111, 163,10, 0,0, 88,125, 0,0, 82,112, 0,0, 0,0, 88,126, 82,113, 0,0, 0,0, 88,127, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 82,114, 0,0, 0,0, 88,128, 0,0, 0,0, 82,115, 0,0, 0,0, 88,129, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 152,156, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 161,163, 0,0}; struct yysvf yysvec[] ={ 0, 0, 0, yycrank+1, 0, 0, yycrank+0, yysvec+1, 0, yycrank+1, 0, 0, yycrank+2, 0, 0, yycrank+3, 0, 0, yycrank+2, 0, 0, yycrank+2, 0, 0, yycrank+2, 0, 0, yycrank+0, 0, yyvstop+1, yycrank+0, 0, yyvstop+3, yycrank+0, 0, yyvstop+5, yycrank+0, 0, yyvstop+7, yycrank+0, 0, yyvstop+9, yycrank+0, 0, yyvstop+11, yycrank+0, 0, yyvstop+13, yycrank+0, 0, yyvstop+15, yycrank+0, 0, yyvstop+17, yycrank+0, 0, yyvstop+19, yycrank+0, 0, yyvstop+21, yycrank+0, 0, yyvstop+23, yycrank+0, 0, yyvstop+25, yycrank+0, 0, yyvstop+27, yycrank+0, 0, yyvstop+29, yycrank+0, 0, yyvstop+31, yycrank+0, 0, yyvstop+33, yycrank+0, 0, yyvstop+35, yycrank+0, 0, yyvstop+37, yycrank+0, 0, yyvstop+39, yycrank+0, 0, yyvstop+41, yycrank+0, 0, yyvstop+43, yycrank+0, 0, yyvstop+45, yycrank+0, 0, yyvstop+47, yycrank+0, 0, yyvstop+49, yycrank+0, 0, yyvstop+51, yycrank+0, 0, yyvstop+53, yycrank+0, 0, yyvstop+55, yycrank+0, 0, yyvstop+57, yycrank+0, 0, yyvstop+59, yycrank+0, 0, yyvstop+61, yycrank+0, 0, yyvstop+63, yycrank+0, 0, yyvstop+65, yycrank+0, 0, yyvstop+67, yycrank+0, 0, yyvstop+69, yycrank+0, 0, yyvstop+71, yycrank+0, 0, yyvstop+73, yycrank+0, 0, yyvstop+75, yycrank+0, 0, yyvstop+77, yycrank+0, 0, yyvstop+79, yycrank+0, 0, yyvstop+81, yycrank+0, 0, yyvstop+83, yycrank+0, 0, yyvstop+85, yycrank+0, 0, yyvstop+87, yycrank+0, 0, yyvstop+89, yycrank+0, 0, yyvstop+91, yycrank+0, 0, yyvstop+93, yycrank+1, 0, 0, yycrank+3, 0, 0, yycrank+4, 0, 0, yycrank+5, 0, 0, yycrank+1, 0, 0, yycrank+7, 0, 0, yycrank+6, 0, 0, yycrank+1, 0, 0, yycrank+8, 0, 0, yycrank+4, 0, 0, yycrank+70, 0, 0, yycrank+9, 0, 0, yycrank+10, 0, 0, yycrank+9, 0, 0, yycrank+11, 0, 0, yycrank+12, 0, 0, yycrank+15, 0, 0, yycrank+1, 0, 0, yycrank+3, 0, 0, yycrank+4, 0, 0, yycrank+16, 0, 0, yycrank+15, 0, 0, yycrank+3, 0, 0, yycrank+8, 0, 0, yycrank+9, 0, 0, yycrank+18, 0, 0, yycrank+186, 0, 0, yycrank+7, 0, 0, yycrank+6, 0, 0, yycrank+17, 0, 0, yycrank+0, yysvec+70, 0, yycrank+0, yysvec+71, 0, yycrank+189, 0, 0, yycrank+109, 0, 0, yycrank+9, 0, 0, yycrank+10, 0, 0, yycrank+21, 0, 0, yycrank+12, 0, 0, yycrank+10, 0, 0, yycrank+18, 0, 0, yycrank+19, 0, 0, yycrank+20, 0, 0, yycrank+26, 0, 0, yycrank+23, 0, 0, yycrank+26, 0, 0, yycrank+27, 0, 0, yycrank+1, 0, 0, yycrank+29, 0, 0, yycrank+30, 0, 0, yycrank+31, 0, 0, yycrank+32, 0, 0, yycrank+33, 0, 0, yycrank+34, 0, 0, yycrank+35, 0, 0, yycrank+36, 0, 0, yycrank+57, 0, 0, yycrank+38, 0, 0, yycrank+40, 0, 0, yycrank+46, 0, 0, yycrank+48, 0, 0, yycrank+50, 0, 0, yycrank+51, 0, 0, yycrank+0, yysvec+95, 0, yycrank+0, yysvec+96, 0, yycrank+52, 0, 0, yycrank+54, 0, 0, yycrank+55, 0, 0, yycrank+59, 0, 0, yycrank+61, 0, 0, yycrank+82, 0, 0, yycrank+64, 0, 0, yycrank+71, 0, 0, yycrank+80, 0, 0, yycrank+84, 0, 0, yycrank+86, 0, 0, yycrank+87, 0, 0, yycrank+89, 0, 0, yycrank+94, 0, 0, yycrank+97, 0, 0, yycrank+98, 0, 0, yycrank+0, yysvec+97, 0, yycrank+116, 0, 0, yycrank+0, yysvec+101, 0, yycrank+120, 0, 0, yycrank+0, yysvec+105, 0, yycrank+124, 0, 0, yycrank+141, 0, 0, yycrank+117, 0, 0, yycrank+118, 0, 0, yycrank+123, 0, 0, yycrank+136, 0, 0, yycrank+151, 0, 0, yycrank+142, 0, 0, yycrank+146, 0, 0, yycrank+161, 0, 0, yycrank+160, 0, 0, yycrank+232, 0, 0, yycrank+161, 0, 0, yycrank+152, 0, 0, yycrank+165, 0, 0, yycrank+145, 0, 0, yycrank+169, 0, 0, yycrank+0, yysvec+156, 0, yycrank+157, 0, 0, yycrank+171, 0, 0, yycrank+244, 0, 0, yycrank+161, 0, 0, yycrank+154, 0, 0, yycrank+0, yysvec+163, 0, 0, 0, 0}; struct yywork *yytop = yycrank+367; struct yysvf *yybgin = yysvec+1; char yymatch[] ={ 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 0}; char yyextra[] ={ 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0}; /* ncform 4.1 83/08/11 */ int yylineno =1; # define YYU(x) x # define NLSTATE yyprevious=YYNEWLINE char yytext[YYLMAX]; struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; char yysbuf[YYLMAX]; char *yysptr = yysbuf; int *yyfnd; extern struct yysvf *yyestate; int yyprevious = YYNEWLINE; yylook(){ register struct yysvf *yystate, **lsp; register struct yywork *yyt; struct yysvf *yyz; int yych; struct yywork *yyr; # ifdef LEXDEBUG int debug; # endif char *yylastch; /* start off machines */ # ifdef LEXDEBUG debug = 0; # endif if (!yymorfg) yylastch = yytext; else { yymorfg=0; yylastch = yytext+yyleng; } for(;;){ lsp = yylstate; yyestate = yystate = yybgin; if (yyprevious==YYNEWLINE) yystate++; for (;;){ # ifdef LEXDEBUG if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); # endif yyt = yystate->yystoff; if(yyt == yycrank){ /* may not be any transitions */ yyz = yystate->yyother; if(yyz == 0)break; if(yyz->yystoff == yycrank)break; } *yylastch++ = yych = input(); tryagain: # ifdef LEXDEBUG if(debug){ fprintf(yyout,"unsigned char "); allprint(yych); putchar('\n'); } # endif yyr = yyt; if ( (int)yyt > (int)yycrank){ yyt = yyr + yych; if (yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transitions */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; goto contin; } } # ifdef YYOPTIM else if((int)yyt < (int)yycrank) { /* r < yycrank */ yyt = yyr = yycrank+(yycrank-yyt); # ifdef LEXDEBUG if(debug)fprintf(yyout,"compressed state\n"); # endif yyt = yyt + yych; if(yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transitions */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; goto contin; } yyt = yyr + YYU(yymatch[yych]); # ifdef LEXDEBUG if(debug){ fprintf(yyout,"try fall back character "); allprint(YYU(yymatch[yych])); putchar('\n'); } # endif if(yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transition */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; goto contin; } } if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ # ifdef LEXDEBUG if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); # endif goto tryagain; } # endif else {unput(*--yylastch);break;} contin: # ifdef LEXDEBUG if(debug){ fprintf(yyout,"state %d char ",yystate-yysvec-1); allprint(yych); putchar('\n'); } # endif ; } # ifdef LEXDEBUG if(debug){ fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); allprint(yych); putchar('\n'); } # endif while (lsp-- > yylstate){ *yylastch-- = 0; if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ yyolsp = lsp; if(yyextra[*yyfnd]){ /* must backup */ while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ lsp--; unput(*yylastch--); } } yyprevious = YYU(*yylastch); yylsp = lsp; yyleng = yylastch-yytext+1; yytext[yyleng] = 0; # ifdef LEXDEBUG if(debug){ fprintf(yyout,"\nmatch "); sprint(yytext); fprintf(yyout," action %d\n",*yyfnd); } # endif return(*yyfnd++); } unput(*yylastch); } if (yytext[0] == 0 /* && feof(yyin) */) { yysptr=yysbuf; return(0); } yyprevious = yytext[0] = input(); if (yyprevious>0) output(yyprevious); yylastch=yytext; # ifdef LEXDEBUG if(debug)putchar('\n'); # endif } } yyback(p, m) int *p; { if (p==0) return(0); while (*p) { if (*p++ == m) return(1); } return(0); } /* the following are only used in the lex library */ yyinput(){ return(input()); } yyoutput(c) int c; { output(c); } yyunput(c) int c; { unput(c); } /* proposed patch by vial@vaxli.enst-bretagne.fr, May 25 1994 */ yywrap() { return(1); } main(int ac,char **av) { return yylex(); } /* ========================================================== */