# include "stdio.h" # define U(x) x # 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 BUFSIZ # 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; #include #include "gram.h" #include "constants.h" # 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: { return (RUN); } break; case 2: { return (FUNCTION); } break; case 3: { yylval.num = GXclear; return (FUNCTIONTYPE); } break; case 4: { yylval.num = GXand; return (FUNCTIONTYPE); } break; case 5: { yylval.num = GXandReverse; return (FUNCTIONTYPE); } break; case 6: { yylval.num = GXcopy; return (FUNCTIONTYPE); } break; case 7: { yylval.num = GXandInverted; return (FUNCTIONTYPE); } break; case 8: { yylval.num = GXnoop; return (FUNCTIONTYPE); } break; case 9: { yylval.num = GXxor; return (FUNCTIONTYPE); } break; case 10: { yylval.num = GXor; return (FUNCTIONTYPE); } break; case 11: { yylval.num = GXnor; return (FUNCTIONTYPE); } break; case 12: { yylval.num = GXequiv; return (FUNCTIONTYPE); } break; case 13: { yylval.num = GXinvert; return (FUNCTIONTYPE); } break; case 14: { yylval.num = GXorReverse; return (FUNCTIONTYPE); } break; case 15: { yylval.num = GXcopyInverted; return (FUNCTIONTYPE); } break; case 16: { yylval.num = GXorInverted; return (FUNCTIONTYPE); } break; case 17: { yylval.num = GXnand; return (FUNCTIONTYPE); } break; case 18: { yylval.num = GXset; return (FUNCTIONTYPE); } break; case 19: { return (TEST); } break; case 20: { yylval.num = CopyArea; return (TESTTYPE); } break; case 21: { yylval.num = CopyPlane; return (TESTTYPE); } break; case 22: { yylval.num = PolyPoint; return (TESTTYPE); } break; case 23: { yylval.num = PolyLine; return (TESTTYPE); } break; case 24: { yylval.num = PolySegment; return (TESTTYPE); } break; case 25: { yylval.num = PolyRectangle; return (TESTTYPE); } break; case 26: { yylval.num = PolyArc; return (TESTTYPE); } break; case 27: { yylval.num = FillPolygon; return (TESTTYPE); } break; case 28: { yylval.num = PolyFillRect; return (TESTTYPE); } break; case 29: { yylval.num = PolyFillArc; return (TESTTYPE); } break; case 30: { yylval.num = PutImage; return (TESTTYPE); } break; case 31: { yylval.num = GetImage; return (TESTTYPE); } break; case 32: { yylval.num = PolyText8; return (TESTTYPE); } break; case 33: { yylval.num = ImageText8; return (TESTTYPE); } break; case 34: { yylval.num = PolyText16; return (TESTTYPE); } break; case 35: { yylval.num = ImageText16; return (TESTTYPE); } break; case 36: { return (LINESTYLE); } break; case 37: { yylval.num = LineOnOffDash; return (LINESTYLETYPE); } break; case 38: { yylval.num = LineDoubleDash; return (LINESTYLETYPE); } break; case 39: { return (CAPSTYLE); } break; case 40: { yylval.num = CapNotLast; return (CAPSTYLETYPE); } break; case 41: { yylval.num = CapButt; return (CAPSTYLETYPE); } break; case 42: { yylval.num = CapProjecting; return (CAPSTYLETYPE); } break; case 43: { return (JOINSTYLE); } break; case 44: { yylval.num = JoinMiter; return (JOINSTYLETYPE); } break; case 45: { yylval.num = JoinBevel; return (JOINSTYLETYPE); } break; case 46: { return (ROUND); } break; case 47: { return (FILLSTYLE); } break; case 48: { yylval.num = FillTiled; return (FILLSTYLETYPE); } break; case 49: { yylval.num = FillStippled; return (FILLSTYLETYPE); } break; case 50: { yylval.num = FillOpaqueStippled; return (FILLSTYLETYPE); } break; case 51: { return (SOLID); } break; case 52: { return (FILLRULE); } break; case 53: { yylval.num = EvenOddRule; return (FILLRULETYPE); } break; case 54: { yylval.num = WindingRule; return (FILLRULETYPE); } break; case 55: { return (ARCMODE); } break; case 56: { yylval.num = ArcChord; return (ARCMODETYPE); } break; case 57: { yylval.num = ArcPieSlice; return (ARCMODETYPE); } break; case 58: { return (FOREGROUND); } break; case 59: { return (BACKGROUND); } break; case 60: { return (LINEWIDTH); } break; case 61: { return (PLANEMASK); } break; case 62: { return (DASHLIST); } break; case 63: { return (FONT); } break; case 64: { return (PERCENT); } break; case 65: { (void) sscanf (yytext, "%d", &yylval.num); return (NUMBER); } break; case 66: { yylval.ptr = (char *) yytext; return (STRING); } break; case 67: { ; } break; case 68: { ; } break; case 69: { return ('\n'); } break; case 70: { yylval.ptr = (char *) yytext; return (STRING); } break; case 71: { fprintf(stderr, "xgc: bad character `%s', line %d\n", yytext, yylineno); } break; case -1: break; default: fprintf(yyout,"bad switch yylook %d",nstr); } return(0); } /* end of yylex */ yywrap() { return (1); } int yyvstop[] = { 0, 70, 71, 0, 68, 71, 0, 69, 0, 70, 71, 0, 70, 71, 0, 65, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 71, 0, 70, 0, 70, 0, 66, 70, 0, 70, 0, 70, 0, 67, 0, 65, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 10, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 66, 0, 66, 70, 0, 4, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 11, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 1, 70, 0, 18, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 9, 70, 0, 70, 0, 70, 0, 66, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 41, 70, 0, 70, 0, 70, 0, 70, 0, 6, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 63, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 17, 70, 0, 8, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 19, 70, 0, 70, 0, 70, 0, 6, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 45, 70, 0, 70, 0, 56, 70, 0, 3, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 12, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 44, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 46, 70, 0, 51, 70, 0, 70, 0, 48, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 13, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 55, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 53, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 40, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 64, 70, 0, 70, 0, 70, 0, 26, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 54, 70, 0, 70, 0, 70, 0, 70, 0, 39, 70, 0, 20, 70, 0, 70, 0, 70, 0, 62, 70, 0, 70, 0, 70, 0, 52, 70, 0, 70, 0, 70, 0, 2, 70, 0, 31, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 57, 70, 0, 70, 0, 70, 0, 23, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 30, 70, 0, 49, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 21, 70, 0, 70, 0, 70, 0, 47, 70, 0, 70, 0, 70, 0, 43, 70, 0, 36, 70, 0, 60, 70, 0, 37, 70, 0, 70, 0, 70, 0, 14, 70, 0, 61, 70, 0, 70, 0, 70, 0, 22, 70, 0, 70, 0, 70, 0, 70, 0, 32, 70, 0, 70, 0, 70, 0, 5, 70, 0, 59, 70, 0, 70, 0, 38, 70, 0, 70, 0, 58, 70, 0, 70, 0, 33, 70, 0, 70, 0, 16, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 34, 70, 0, 42, 70, 0, 7, 70, 0, 70, 0, 27, 70, 0, 35, 70, 0, 70, 0, 29, 70, 0, 70, 0, 70, 0, 24, 70, 0, 15, 70, 0, 70, 0, 28, 70, 0, 70, 0, 70, 0, 25, 70, 0, 50, 70, 0, 0}; # define YYTYPE int struct yywork { YYTYPE verify, advance; } yycrank[] = { 0,0, 0,0, 1,3, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,4, 1,5, 0,0, 0,0, 8,0, 8,0, 0,0, 0,0, 0,0, 0,0, 0,0, 12,0, 12,0, 9,0, 9,0, 0,0, 0,0, 0,0, 0,0, 40,0, 40,0, 43,0, 43,0, 31,0, 31,0, 1,6, 1,7, 8,0, 0,0, 16,0, 16,0, 0,0, 17,0, 17,0, 12,0, 0,0, 9,0, 0,0, 0,0, 1,8, 11,0, 11,0, 40,0, 8,48, 43,0, 2,7, 31,0, 0,0, 0,0, 10,0, 10,0, 0,0, 16,0, 15,0, 15,0, 17,0, 1,9, 1,10, 1,11, 1,12, 1,13, 1,14, 1,15, 11,0, 1,16, 1,17, 0,0, 1,18, 1,19, 1,20, 1,21, 1,22, 10,0, 1,23, 1,24, 1,25, 15,0, 0,0, 1,26, 1,27, 44,96, 2,15, 0,0, 0,0, 0,0, 0,0, 3,40, 2,19, 0,0, 1,28, 1,29, 1,30, 1,31, 1,32, 3,0, 3,0, 1,33, 2,26, 0,0, 12,58, 0,0, 1,34, 1,35, 1,36, 41,44, 1,37, 1,38, 1,39, 2,28, 2,29, 2,30, 2,31, 2,32, 12,59, 9,49, 2,33, 96,44, 3,0, 9,50, 3,40, 2,34, 2,35, 2,36, 6,41, 2,37, 2,38, 2,39, 31,60, 11,54, 16,66, 16,67, 6,42, 6,42, 3,40, 17,68, 11,55, 0,0, 10,51, 44,44, 11,56, 0,0, 10,52, 11,57, 0,0, 0,0, 15,65, 0,0, 0,0, 13,0, 13,0, 3,40, 3,40, 3,40, 3,40, 3,40, 3,40, 6,43, 10,53, 3,40, 3,40, 0,0, 3,40, 0,0, 3,40, 3,40, 3,40, 7,45, 3,40, 3,40, 3,40, 6,41, 13,0, 0,0, 3,40, 7,46, 7,47, 0,0, 0,0, 0,0, 0,0, 14,0, 14,0, 0,0, 0,0, 18,0, 18,0, 0,0, 6,41, 6,41, 6,41, 6,41, 6,41, 6,41, 19,0, 19,0, 6,41, 6,41, 0,0, 6,41, 7,45, 6,41, 6,41, 6,41, 14,0, 6,41, 6,41, 6,41, 18,0, 0,0, 0,0, 6,41, 0,0, 0,0, 7,45, 6,44, 0,0, 19,0, 20,0, 20,0, 21,0, 21,0, 0,0, 0,0, 23,0, 23,0, 0,0, 0,0, 0,0, 0,0, 0,0, 7,45, 7,45, 7,45, 7,45, 7,45, 7,45, 22,0, 22,0, 7,45, 7,45, 20,0, 7,45, 21,0, 7,45, 7,45, 7,45, 23,0, 7,45, 7,45, 7,45, 24,0, 24,0, 13,60, 7,45, 25,0, 25,0, 0,0, 13,61, 0,0, 22,0, 26,0, 26,0, 27,0, 27,0, 33,0, 33,0, 0,0, 28,0, 28,0, 0,0, 29,0, 29,0, 0,0, 24,0, 30,0, 30,0, 14,62, 25,0, 32,0, 32,0, 18,69, 0,0, 14,63, 26,0, 0,0, 27,0, 0,0, 33,0, 14,64, 19,70, 28,0, 34,0, 34,0, 29,0, 35,0, 35,0, 0,0, 30,0, 36,0, 36,0, 0,0, 32,0, 0,0, 37,0, 37,0, 20,71, 38,0, 38,0, 0,0, 0,0, 39,0, 39,0, 0,0, 0,0, 34,0, 0,0, 0,0, 35,0, 0,0, 20,72, 21,73, 36,0, 21,74, 0,0, 21,75, 23,82, 37,0, 0,0, 22,76, 38,0, 0,0, 23,83, 22,77, 39,0, 0,0, 22,78, 48,0, 48,0, 22,79, 0,0, 42,42, 22,80, 24,84, 0,0, 22,81, 0,0, 25,87, 49,0, 49,0, 0,0, 25,88, 0,0, 24,85, 52,0, 52,0, 28,51, 26,89, 24,86, 29,54, 48,0, 53,0, 53,0, 30,58, 0,0, 27,90, 33,67, 54,0, 54,0, 0,0, 29,56, 49,0, 0,0, 29,91, 42,94, 32,92, 48,48, 52,0, 46,46, 0,0, 34,71, 32,63, 0,0, 0,0, 53,0, 0,0, 0,0, 32,64, 42,42, 0,0, 54,0, 36,76, 50,0, 50,0, 34,93, 0,0, 0,0, 0,0, 36,78, 38,84, 35,75, 0,0, 0,0, 39,87, 0,0, 42,42, 42,42, 42,42, 42,42, 42,42, 42,42, 46,46, 37,83, 42,42, 42,42, 50,0, 42,42, 0,0, 42,42, 42,42, 42,42, 0,0, 42,42, 42,42, 42,42, 46,46, 51,0, 51,0, 42,42, 55,0, 55,0, 0,0, 42,95, 0,0, 0,0, 56,0, 56,0, 0,0, 0,0, 49,97, 0,0, 0,0, 46,46, 46,46, 46,46, 46,46, 46,46, 46,46, 0,0, 51,0, 46,46, 46,46, 55,0, 46,46, 0,0, 46,46, 46,46, 46,46, 56,0, 46,46, 46,46, 46,46, 0,0, 52,100, 0,0, 46,46, 57,0, 57,0, 53,101, 0,0, 54,102, 58,0, 58,0, 59,0, 59,0, 60,0, 60,0, 0,0, 61,0, 61,0, 62,0, 62,0, 50,98, 63,0, 63,0, 64,0, 64,0, 65,0, 65,0, 57,0, 66,0, 66,0, 67,0, 67,0, 58,0, 0,0, 59,0, 0,0, 60,0, 68,0, 68,0, 61,0, 0,0, 62,0, 0,0, 0,0, 63,0, 0,0, 64,0, 0,0, 65,0, 69,0, 69,0, 66,0, 0,0, 67,0, 51,99, 70,0, 70,0, 71,0, 71,0, 0,0, 68,0, 72,0, 72,0, 74,0, 74,0, 56,104, 0,0, 73,0, 73,0, 55,103, 76,0, 76,0, 69,0, 0,0, 75,0, 75,0, 78,0, 78,0, 70,0, 0,0, 71,0, 77,0, 77,0, 0,0, 72,0, 0,0, 74,0, 79,0, 79,0, 0,0, 73,0, 80,0, 80,0, 76,0, 0,0, 81,0, 81,0, 75,0, 0,0, 78,0, 82,0, 82,0, 83,0, 83,0, 77,0, 84,0, 84,0, 57,105, 61,109, 0,0, 79,0, 85,0, 85,0, 0,0, 80,0, 58,106, 66,115, 62,110, 81,0, 59,107, 0,0, 60,108, 63,111, 82,0, 64,113, 83,0, 63,112, 0,0, 84,0, 86,0, 86,0, 0,0, 65,114, 68,117, 85,0, 0,0, 0,0, 73,124, 75,126, 67,116, 0,0, 0,0, 87,0, 87,0, 88,0, 88,0, 0,0, 75,127, 89,0, 89,0, 69,118, 74,125, 86,0, 90,0, 90,0, 92,0, 92,0, 0,0, 71,120, 91,0, 91,0, 0,0, 70,119, 72,121, 78,130, 87,0, 72,122, 88,0, 72,123, 73,40, 75,40, 89,0, 0,0, 77,129, 0,0, 76,128, 90,0, 0,0, 92,0, 75,40, 0,0, 0,0, 91,0, 93,0, 93,0, 0,0, 79,131, 0,0, 97,0, 97,0, 0,0, 98,0, 98,0, 80,132, 99,0, 99,0, 0,0, 100,0, 100,0, 95,42, 101,0, 101,0, 81,133, 83,135, 102,0, 102,0, 93,0, 0,0, 82,134, 0,0, 85,137, 97,0, 84,136, 0,0, 98,0, 103,0, 103,0, 99,0, 104,0, 104,0, 100,0, 105,0, 105,0, 101,0, 0,0, 86,138, 0,0, 102,0, 106,0, 106,0, 107,0, 107,0, 95,145, 108,0, 108,0, 0,0, 109,0, 109,0, 103,0, 0,0, 0,0, 104,0, 0,0, 88,140, 105,0, 0,0, 95,42, 0,0, 87,139, 89,141, 0,0, 106,0, 97,146, 107,0, 92,144, 0,0, 108,0, 0,0, 90,142, 109,0, 0,0, 97,147, 91,143, 95,42, 95,42, 95,42, 95,42, 95,42, 95,42, 0,0, 0,0, 95,42, 95,42, 0,0, 95,42, 0,0, 95,42, 95,42, 95,42, 0,0, 95,42, 95,42, 95,42, 0,0, 97,40, 93,121, 95,42, 0,0, 93,122, 100,150, 95,95, 98,148, 99,149, 97,40, 110,0, 110,0, 0,0, 0,0, 111,0, 111,0, 0,0, 0,0, 112,0, 112,0, 114,0, 114,0, 104,154, 101,151, 113,0, 113,0, 102,152, 0,0, 115,0, 115,0, 0,0, 116,0, 116,0, 110,0, 0,0, 107,157, 103,153, 111,0, 0,0, 106,156, 0,0, 112,0, 0,0, 114,0, 0,0, 108,158, 0,0, 113,0, 0,0, 105,155, 0,0, 115,0, 0,0, 109,159, 116,0, 117,0, 117,0, 118,0, 118,0, 119,0, 119,0, 0,0, 120,0, 120,0, 121,0, 121,0, 122,0, 122,0, 0,0, 123,0, 123,0, 124,0, 124,0, 125,0, 125,0, 126,0, 126,0, 0,0, 117,0, 0,0, 118,0, 0,0, 119,0, 0,0, 114,164, 120,0, 0,0, 121,0, 0,0, 122,0, 127,0, 127,0, 123,0, 0,0, 124,0, 0,0, 125,0, 0,0, 126,0, 0,0, 0,0, 128,0, 128,0, 0,0, 129,0, 129,0, 130,0, 130,0, 0,0, 110,160, 112,162, 131,0, 131,0, 127,0, 113,163, 0,0, 114,40, 132,0, 132,0, 133,0, 133,0, 111,161, 115,165, 116,166, 128,0, 134,0, 134,0, 129,0, 0,0, 130,0, 0,0, 135,0, 135,0, 0,0, 131,0, 0,0, 123,172, 136,0, 136,0, 0,0, 132,0, 0,0, 133,0, 137,0, 137,0, 0,0, 138,0, 138,0, 134,0, 118,168, 0,0, 119,169, 0,0, 120,170, 135,0, 0,0, 117,167, 139,0, 139,0, 0,0, 136,0, 140,0, 140,0, 0,0, 124,173, 145,42, 137,0, 121,171, 123,40, 138,0, 141,0, 141,0, 142,0, 142,0, 143,0, 143,0, 126,175, 125,174, 129,178, 0,0, 139,0, 0,0, 127,176, 133,182, 140,0, 144,0, 144,0, 0,0, 146,0, 146,0, 0,0, 128,177, 0,0, 141,0, 0,0, 142,0, 0,0, 143,0, 145,94, 147,0, 147,0, 148,0, 148,0, 0,0, 149,0, 149,0, 0,0, 130,179, 144,0, 0,0, 129,40, 146,0, 145,42, 0,0, 132,181, 133,40, 0,0, 0,0, 150,0, 150,0, 0,0, 0,0, 147,0, 131,180, 148,0, 0,0, 134,183, 149,0, 0,0, 145,42, 145,42, 145,42, 145,42, 145,42, 145,42, 151,0, 151,0, 145,42, 145,42, 137,184, 145,42, 150,0, 145,42, 145,42, 145,42, 0,0, 145,42, 145,42, 145,42, 138,185, 152,0, 152,0, 145,42, 140,187, 153,0, 153,0, 145,95, 0,0, 151,0, 154,0, 154,0, 141,188, 155,0, 155,0, 139,186, 158,0, 158,0, 156,0, 156,0, 157,0, 157,0, 159,0, 159,0, 152,0, 161,0, 161,0, 0,0, 153,0, 160,0, 160,0, 0,0, 0,0, 154,0, 0,0, 144,190, 155,0, 143,189, 0,0, 158,0, 146,191, 156,0, 147,192, 157,0, 0,0, 159,0, 0,0, 0,0, 161,0, 149,194, 162,0, 162,0, 160,0, 0,0, 148,193, 163,0, 163,0, 164,0, 164,0, 165,0, 165,0, 0,0, 166,0, 166,0, 167,0, 167,0, 168,0, 168,0, 150,195, 155,199, 169,0, 169,0, 0,0, 162,0, 170,0, 170,0, 0,0, 155,200, 163,0, 0,0, 164,0, 0,0, 165,0, 0,0, 155,201, 166,0, 0,0, 167,0, 0,0, 168,0, 171,0, 171,0, 159,205, 169,0, 0,0, 0,0, 153,197, 170,0, 172,0, 172,0, 160,206, 155,40, 0,0, 173,0, 173,0, 174,0, 174,0, 0,0, 152,196, 155,40, 175,0, 175,0, 0,0, 171,0, 0,0, 154,198, 155,40, 156,202, 0,0, 157,203, 0,0, 172,0, 176,0, 176,0, 159,40, 158,204, 173,0, 0,0, 174,0, 177,0, 177,0, 0,0, 160,40, 175,0, 160,207, 160,208, 178,0, 178,0, 179,0, 179,0, 0,0, 180,0, 180,0, 0,0, 162,209, 176,0, 181,0, 181,0, 183,0, 183,0, 0,0, 165,212, 177,0, 0,0, 182,0, 182,0, 0,0, 164,211, 0,0, 178,0, 0,0, 179,0, 163,210, 0,0, 180,0, 184,0, 184,0, 166,213, 0,0, 181,0, 167,214, 183,0, 168,215, 0,0, 0,0, 169,217, 168,216, 182,0, 185,0, 185,0, 186,0, 186,0, 187,0, 187,0, 188,0, 188,0, 172,218, 0,0, 184,0, 0,0, 0,0, 0,0, 0,0, 0,0, 189,0, 189,0, 173,219, 180,226, 0,0, 190,0, 190,0, 185,0, 180,227, 186,0, 0,0, 187,0, 0,0, 188,0, 180,228, 191,0, 191,0, 0,0, 180,229, 174,220, 180,230, 180,231, 180,232, 189,0, 0,0, 175,221, 0,0, 177,223, 190,0, 0,0, 0,0, 0,0, 192,0, 192,0, 0,0, 180,40, 179,225, 176,222, 191,0, 0,0, 180,40, 178,224, 193,0, 193,0, 181,233, 183,235, 180,40, 194,0, 194,0, 0,0, 180,40, 0,0, 180,40, 180,40, 180,40, 192,0, 0,0, 195,0, 195,0, 0,0, 182,234, 0,0, 184,236, 0,0, 189,200, 193,0, 196,0, 196,0, 197,0, 197,0, 194,0, 198,0, 198,0, 0,0, 199,0, 199,0, 200,0, 200,0, 0,0, 187,238, 195,0, 201,0, 201,0, 203,0, 203,0, 0,0, 188,239, 185,237, 0,0, 196,0, 0,0, 197,0, 202,0, 202,0, 198,0, 0,0, 189,40, 199,0, 0,0, 200,0, 204,0, 204,0, 205,0, 205,0, 201,0, 0,0, 203,0, 206,0, 206,0, 0,0, 190,207, 190,208, 207,0, 207,0, 0,0, 202,0, 208,0, 208,0, 0,0, 209,0, 209,0, 210,0, 210,0, 204,0, 191,240, 205,0, 211,0, 211,0, 212,0, 212,0, 206,0, 213,0, 213,0, 193,242, 0,0, 207,0, 214,0, 214,0, 0,0, 208,0, 0,0, 192,241, 209,0, 0,0, 210,0, 215,0, 215,0, 217,0, 217,0, 211,0, 0,0, 212,0, 194,243, 0,0, 213,0, 0,0, 0,0, 0,0, 0,0, 214,0, 216,0, 216,0, 218,0, 218,0, 224,0, 224,0, 219,0, 219,0, 215,0, 0,0, 217,0, 220,0, 220,0, 221,0, 221,0, 203,249, 0,0, 200,246, 196,244, 199,245, 201,247, 222,0, 222,0, 216,0, 0,0, 218,0, 0,0, 224,0, 202,248, 219,0, 223,0, 223,0, 0,0, 205,250, 220,0, 0,0, 221,0, 0,0, 225,0, 225,0, 0,0, 0,0, 0,0, 212,257, 222,0, 226,0, 226,0, 227,0, 227,0, 206,251, 228,0, 228,0, 0,0, 223,0, 211,256, 0,0, 0,0, 210,255, 229,0, 229,0, 207,252, 225,0, 0,0, 208,253, 209,254, 219,263, 230,0, 230,0, 226,0, 0,0, 227,0, 231,0, 231,0, 228,0, 0,0, 212,40, 232,0, 232,0, 213,258, 233,0, 233,0, 229,0, 0,0, 214,259, 234,0, 234,0, 235,0, 235,0, 0,0, 230,0, 0,0, 0,0, 215,260, 0,0, 231,0, 0,0, 216,261, 219,40, 0,0, 232,0, 224,268, 0,0, 233,0, 220,264, 0,0, 221,265, 0,0, 234,0, 218,262, 235,0, 236,0, 236,0, 0,0, 222,266, 237,0, 237,0, 238,0, 238,0, 239,0, 239,0, 0,0, 0,0, 240,0, 240,0, 241,0, 241,0, 242,0, 242,0, 243,0, 243,0, 0,0, 223,267, 0,0, 236,0, 244,0, 244,0, 0,0, 237,0, 225,269, 238,0, 0,0, 239,0, 0,0, 227,271, 0,0, 240,0, 228,272, 241,0, 0,0, 242,0, 226,270, 243,0, 245,0, 245,0, 246,0, 246,0, 0,0, 244,0, 230,274, 0,0, 229,273, 247,0, 247,0, 231,275, 248,0, 248,0, 249,0, 249,0, 232,276, 233,277, 250,0, 250,0, 234,278, 251,0, 251,0, 245,0, 0,0, 246,0, 252,0, 252,0, 253,0, 253,0, 254,0, 254,0, 247,0, 255,0, 255,0, 248,0, 0,0, 249,0, 0,0, 0,0, 0,0, 250,0, 256,0, 256,0, 251,0, 257,0, 257,0, 258,0, 258,0, 252,0, 0,0, 253,0, 0,0, 254,0, 259,0, 259,0, 255,0, 260,0, 260,0, 261,0, 261,0, 237,279, 240,281, 0,0, 241,282, 256,0, 242,283, 239,280, 257,0, 0,0, 258,0, 262,0, 262,0, 249,290, 0,0, 263,0, 263,0, 259,0, 243,284, 0,0, 260,0, 244,285, 261,0, 264,0, 264,0, 265,0, 265,0, 266,0, 266,0, 267,0, 267,0, 0,0, 245,286, 0,0, 262,0, 0,0, 0,0, 247,288, 263,0, 269,0, 269,0, 268,0, 268,0, 270,0, 270,0, 249,40, 264,0, 0,0, 265,0, 250,291, 266,0, 246,287, 267,0, 0,0, 0,0, 271,0, 271,0, 0,0, 248,289, 0,0, 251,292, 0,0, 269,0, 0,0, 268,0, 252,293, 270,0, 0,0, 272,0, 272,0, 273,0, 273,0, 254,295, 274,0, 274,0, 255,296, 256,297, 257,298, 271,0, 0,0, 253,294, 275,0, 275,0, 0,0, 276,0, 276,0, 0,0, 277,0, 277,0, 0,0, 261,301, 272,0, 0,0, 273,0, 278,0, 278,0, 274,0, 264,304, 279,0, 279,0, 0,0, 281,0, 281,0, 263,303, 275,0, 0,0, 259,299, 276,0, 0,0, 260,300, 277,0, 280,0, 280,0, 0,0, 282,0, 282,0, 0,0, 278,0, 262,302, 283,0, 283,0, 279,0, 284,0, 284,0, 281,0, 285,0, 285,0, 269,309, 0,0, 264,40, 265,305, 268,308, 266,306, 270,310, 280,0, 0,0, 267,307, 282,0, 286,0, 286,0, 0,0, 0,0, 283,0, 0,0, 0,0, 284,0, 0,0, 0,0, 285,0, 287,0, 287,0, 288,0, 288,0, 0,0, 271,311, 289,0, 289,0, 290,0, 290,0, 291,0, 291,0, 286,0, 0,0, 274,314, 292,0, 292,0, 273,313, 0,0, 0,0, 272,312, 294,0, 294,0, 287,0, 0,0, 288,0, 275,315, 293,0, 293,0, 289,0, 0,0, 290,0, 0,0, 291,0, 0,0, 295,0, 295,0, 0,0, 292,0, 278,318, 0,0, 279,319, 297,0, 297,0, 294,0, 277,317, 276,316, 0,0, 296,0, 296,0, 293,0, 298,0, 298,0, 299,0, 299,0, 0,0, 280,320, 281,321, 295,0, 300,0, 300,0, 301,0, 301,0, 302,0, 302,0, 297,0, 303,0, 303,0, 285,324, 0,0, 282,322, 296,0, 304,0, 304,0, 298,0, 0,0, 299,0, 286,325, 305,0, 305,0, 0,0, 284,323, 300,0, 0,0, 301,0, 0,0, 302,0, 306,0, 306,0, 303,0, 0,0, 0,0, 287,326, 307,0, 307,0, 304,0, 290,329, 0,0, 308,0, 308,0, 0,0, 305,0, 0,0, 288,327, 0,0, 309,0, 309,0, 310,0, 310,0, 0,0, 306,0, 0,0, 0,0, 289,328, 311,0, 311,0, 307,0, 312,0, 312,0, 293,331, 294,332, 308,0, 313,0, 313,0, 314,0, 314,0, 0,0, 292,330, 309,0, 0,0, 310,0, 0,0, 315,0, 315,0, 297,335, 0,0, 0,0, 311,0, 316,0, 316,0, 312,0, 317,0, 317,0, 295,333, 0,0, 313,0, 0,0, 314,0, 0,0, 296,334, 318,0, 318,0, 299,337, 319,0, 319,0, 315,0, 0,0, 0,0, 300,338, 320,0, 320,0, 316,0, 298,336, 0,0, 317,0, 321,0, 321,0, 0,0, 301,339, 322,0, 322,0, 0,0, 303,340, 318,0, 324,0, 324,0, 319,0, 323,0, 323,0, 304,341, 325,0, 325,0, 320,0, 326,0, 326,0, 305,342, 0,0, 0,0, 321,0, 0,0, 308,344, 0,0, 322,0, 306,343, 327,0, 327,0, 0,0, 324,0, 328,0, 328,0, 323,0, 329,0, 329,0, 325,0, 330,0, 330,0, 326,0, 331,0, 331,0, 312,347, 0,0, 309,345, 0,0, 311,346, 0,0, 333,0, 333,0, 327,0, 332,0, 332,0, 0,0, 328,0, 0,0, 313,348, 329,0, 334,0, 334,0, 330,0, 335,0, 335,0, 331,0, 314,349, 315,350, 336,0, 336,0, 337,0, 337,0, 317,352, 333,0, 338,0, 338,0, 332,0, 318,353, 0,0, 319,354, 316,351, 339,0, 339,0, 334,0, 0,0, 0,0, 335,0, 0,0, 340,0, 340,0, 0,0, 336,0, 0,0, 337,0, 341,0, 341,0, 0,0, 338,0, 0,0, 342,0, 342,0, 343,0, 343,0, 0,0, 339,0, 344,0, 344,0, 321,355, 345,0, 345,0, 322,356, 340,0, 0,0, 323,357, 346,0, 346,0, 0,0, 341,0, 347,0, 347,0, 0,0, 327,359, 342,0, 326,358, 343,0, 348,0, 348,0, 0,0, 344,0, 349,0, 349,0, 345,0, 0,0, 330,361, 350,0, 350,0, 0,0, 346,0, 351,0, 351,0, 0,0, 347,0, 329,360, 0,0, 0,0, 332,362, 352,0, 352,0, 348,0, 353,0, 353,0, 333,363, 349,0, 0,0, 354,0, 354,0, 0,0, 350,0, 355,0, 355,0, 0,0, 351,0, 337,365, 356,0, 356,0, 0,0, 338,366, 0,0, 0,0, 352,0, 346,373, 0,0, 353,0, 357,0, 357,0, 336,364, 339,367, 354,0, 351,378, 0,0, 0,0, 355,0, 0,0, 340,368, 0,0, 351,379, 356,0, 346,374, 358,0, 358,0, 341,369, 342,370, 0,0, 343,371, 0,0, 0,0, 357,0, 359,0, 359,0, 360,0, 360,0, 0,0, 346,40, 0,0, 361,0, 361,0, 345,372, 362,0, 362,0, 0,0, 0,0, 358,0, 363,0, 363,0, 364,0, 364,0, 0,0, 349,376, 0,0, 346,40, 359,0, 0,0, 360,0, 365,0, 365,0, 0,0, 350,377, 361,0, 366,0, 366,0, 362,0, 0,0, 348,375, 367,0, 367,0, 363,0, 0,0, 364,0, 0,0, 368,0, 368,0, 0,0, 369,0, 369,0, 370,0, 370,0, 365,0, 352,380, 371,0, 371,0, 355,381, 366,0, 372,0, 372,0, 364,388, 356,382, 367,0, 373,0, 373,0, 374,0, 374,0, 364,389, 368,0, 0,0, 357,383, 369,0, 0,0, 370,0, 375,0, 375,0, 0,0, 371,0, 0,0, 376,0, 376,0, 372,0, 377,0, 377,0, 378,0, 378,0, 373,0, 0,0, 374,0, 0,0, 379,0, 379,0, 380,0, 380,0, 381,0, 381,0, 0,0, 375,0, 382,0, 382,0, 360,385, 358,384, 376,0, 383,0, 383,0, 377,0, 0,0, 378,0, 0,0, 363,387, 384,0, 384,0, 361,386, 379,0, 0,0, 380,0, 0,0, 381,0, 0,0, 385,0, 385,0, 382,0, 386,0, 386,0, 387,0, 387,0, 383,0, 388,0, 388,0, 378,396, 389,0, 389,0, 0,0, 384,0, 0,0, 390,0, 390,0, 391,0, 391,0, 392,0, 392,0, 370,391, 385,0, 393,0, 393,0, 386,0, 0,0, 387,0, 394,0, 394,0, 388,0, 369,390, 0,0, 389,0, 395,0, 395,0, 0,0, 374,393, 390,0, 0,0, 391,0, 0,0, 392,0, 0,0, 396,0, 396,0, 393,0, 0,0, 373,392, 397,0, 397,0, 394,0, 388,401, 398,0, 398,0, 399,0, 399,0, 395,0, 400,0, 400,0, 376,394, 401,0, 401,0, 377,395, 0,0, 381,398, 380,397, 396,0, 402,0, 402,0, 403,0, 403,0, 397,0, 404,0, 404,0, 0,0, 398,0, 0,0, 399,0, 405,0, 405,0, 400,0, 384,399, 0,0, 401,0, 406,0, 406,0, 407,0, 407,0, 408,0, 408,0, 402,0, 0,0, 403,0, 409,0, 409,0, 404,0, 410,0, 410,0, 0,0, 411,0, 411,0, 405,0, 386,400, 412,0, 412,0, 413,0, 413,0, 406,0, 392,403, 407,0, 0,0, 408,0, 393,404, 0,0, 0,0, 0,0, 409,0, 390,402, 0,0, 410,0, 0,0, 394,405, 411,0, 0,0, 0,0, 0,0, 412,0, 0,0, 413,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 395,406, 0,0, 0,0, 0,0, 0,0, 399,407, 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, 402,408, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 405,410, 0,0, 404,409, 408,411, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 410,412, 0,0, 411,413, 0,0, 0,0, 0,0}; struct yysvf yysvec[] = { 0, 0, 0, yycrank+-1, 0, 0, yycrank+-20, yysvec+1, 0, yycrank+-95, 0, yyvstop+1, yycrank+0, 0, yyvstop+4, yycrank+0, 0, yyvstop+7, yycrank+-132, 0, yyvstop+9, yycrank+-175, 0, yyvstop+12, yycrank+-5, yysvec+3, yyvstop+15, yycrank+-14, yysvec+3, yyvstop+19, yycrank+-50, yysvec+3, yyvstop+22, yycrank+-41, yysvec+3, yyvstop+25, yycrank+-12, yysvec+3, yyvstop+28, yycrank+-149, yysvec+3, yyvstop+31, yycrank+-181, yysvec+3, yyvstop+34, yycrank+-54, yysvec+3, yyvstop+37, yycrank+-30, yysvec+3, yyvstop+40, yycrank+-33, yysvec+3, yyvstop+43, yycrank+-185, yysvec+3, yyvstop+46, yycrank+-194, yysvec+3, yyvstop+49, yycrank+-218, yysvec+3, yyvstop+52, yycrank+-220, yysvec+3, yyvstop+55, yycrank+-237, yysvec+3, yyvstop+58, yycrank+-224, yysvec+3, yyvstop+61, yycrank+-251, yysvec+3, yyvstop+64, yycrank+-255, yysvec+3, yyvstop+67, yycrank+-261, yysvec+3, yyvstop+70, yycrank+-263, yysvec+3, yyvstop+73, yycrank+-268, yysvec+3, yyvstop+76, yycrank+-271, yysvec+3, yyvstop+79, yycrank+-275, yysvec+3, yyvstop+82, yycrank+-24, yysvec+3, yyvstop+85, yycrank+-279, yysvec+3, yyvstop+88, yycrank+-265, yysvec+3, yyvstop+91, yycrank+-292, yysvec+3, yyvstop+94, yycrank+-295, yysvec+3, yyvstop+97, yycrank+-299, yysvec+3, yyvstop+100, yycrank+-304, yysvec+3, yyvstop+103, yycrank+-307, yysvec+3, yyvstop+106, yycrank+-311, yysvec+3, yyvstop+109, yycrank+-20, yysvec+3, yyvstop+112, yycrank+-22, yysvec+6, yyvstop+114, yycrank+-349, yysvec+6, 0, yycrank+-22, yysvec+3, yyvstop+116, yycrank+-56, yysvec+6, yyvstop+119, yycrank+0, yysvec+7, yyvstop+121, yycrank+-386, yysvec+7, 0, yycrank+0, 0, yyvstop+123, yycrank+-337, yysvec+3, yyvstop+125, yycrank+-348, yysvec+3, yyvstop+128, yycrank+-392, yysvec+3, yyvstop+130, yycrank+-426, yysvec+3, yyvstop+132, yycrank+-354, yysvec+3, yyvstop+134, yycrank+-361, yysvec+3, yyvstop+136, yycrank+-367, yysvec+3, yyvstop+138, yycrank+-429, yysvec+3, yyvstop+140, yycrank+-435, yysvec+3, yyvstop+142, yycrank+-466, yysvec+3, yyvstop+144, yycrank+-471, yysvec+3, yyvstop+146, yycrank+-473, yysvec+3, yyvstop+148, yycrank+-475, yysvec+3, yyvstop+150, yycrank+-478, yysvec+3, yyvstop+152, yycrank+-480, yysvec+3, yyvstop+154, yycrank+-483, yysvec+3, yyvstop+156, yycrank+-485, yysvec+3, yyvstop+158, yycrank+-487, yysvec+3, yyvstop+160, yycrank+-490, yysvec+3, yyvstop+162, yycrank+-492, yysvec+3, yyvstop+164, yycrank+-499, yysvec+3, yyvstop+166, yycrank+-511, yysvec+3, yyvstop+168, yycrank+-517, yysvec+3, yyvstop+170, yycrank+-519, yysvec+3, yyvstop+172, yycrank+-523, yysvec+3, yyvstop+174, yycrank+-529, yysvec+3, yyvstop+176, yycrank+-525, yysvec+3, yyvstop+178, yycrank+-536, yysvec+3, yyvstop+180, yycrank+-532, yysvec+3, yyvstop+183, yycrank+-543, yysvec+3, yyvstop+185, yycrank+-538, yysvec+3, yyvstop+187, yycrank+-549, yysvec+3, yyvstop+189, yycrank+-553, yysvec+3, yyvstop+191, yycrank+-557, yysvec+3, yyvstop+193, yycrank+-562, yysvec+3, yyvstop+195, yycrank+-564, yysvec+3, yyvstop+197, yycrank+-567, yysvec+3, yyvstop+199, yycrank+-573, yysvec+3, yyvstop+201, yycrank+-591, yysvec+3, yyvstop+203, yycrank+-604, yysvec+3, yyvstop+205, yycrank+-606, yysvec+3, yyvstop+207, yycrank+-610, yysvec+3, yyvstop+209, yycrank+-615, yysvec+3, yyvstop+211, yycrank+-621, yysvec+3, yyvstop+213, yycrank+-617, yysvec+3, yyvstop+215, yycrank+-645, yysvec+3, yyvstop+217, yycrank+0, 0, yyvstop+219, yycrank+-669, yysvec+6, 0, yycrank+-34, yysvec+6, yyvstop+221, yycrank+-650, yysvec+3, yyvstop+224, yycrank+-653, yysvec+3, yyvstop+227, yycrank+-656, yysvec+3, yyvstop+229, yycrank+-659, yysvec+3, yyvstop+231, yycrank+-662, yysvec+3, yyvstop+233, yycrank+-666, yysvec+3, yyvstop+235, yycrank+-677, yysvec+3, yyvstop+237, yycrank+-680, yysvec+3, yyvstop+239, yycrank+-683, yysvec+3, yyvstop+241, yycrank+-690, yysvec+3, yyvstop+243, yycrank+-692, yysvec+3, yyvstop+245, yycrank+-695, yysvec+3, yyvstop+247, yycrank+-698, yysvec+3, yyvstop+249, yycrank+-756, yysvec+3, yyvstop+251, yycrank+-760, yysvec+3, yyvstop+253, yycrank+-764, yysvec+3, yyvstop+255, yycrank+-770, yysvec+3, yyvstop+257, yycrank+-766, yysvec+3, yyvstop+259, yycrank+-774, yysvec+3, yyvstop+261, yycrank+-777, yysvec+3, yyvstop+263, yycrank+-801, yysvec+3, yyvstop+265, yycrank+-803, yysvec+3, yyvstop+267, yycrank+-805, yysvec+3, yyvstop+269, yycrank+-808, yysvec+3, yyvstop+271, yycrank+-810, yysvec+3, yyvstop+273, yycrank+-812, yysvec+3, yyvstop+275, yycrank+-815, yysvec+3, yyvstop+278, yycrank+-817, yysvec+3, yyvstop+280, yycrank+-819, yysvec+3, yyvstop+282, yycrank+-821, yysvec+3, yyvstop+284, yycrank+-836, yysvec+3, yyvstop+286, yycrank+-847, yysvec+3, yyvstop+288, yycrank+-850, yysvec+3, yyvstop+290, yycrank+-852, yysvec+3, yyvstop+292, yycrank+-857, yysvec+3, yyvstop+294, yycrank+-863, yysvec+3, yyvstop+296, yycrank+-865, yysvec+3, yyvstop+298, yycrank+-871, yysvec+3, yyvstop+300, yycrank+-877, yysvec+3, yyvstop+302, yycrank+-883, yysvec+3, yyvstop+305, yycrank+-889, yysvec+3, yyvstop+308, yycrank+-892, yysvec+3, yyvstop+310, yycrank+-903, yysvec+3, yyvstop+312, yycrank+-907, yysvec+3, yyvstop+314, yycrank+-916, yysvec+3, yyvstop+316, yycrank+-918, yysvec+3, yyvstop+318, yycrank+-920, yysvec+3, yyvstop+321, yycrank+-931, yysvec+3, yyvstop+323, yycrank+-919, yysvec+6, yyvstop+325, yycrank+-934, yysvec+3, yyvstop+327, yycrank+-945, yysvec+3, yyvstop+329, yycrank+-947, yysvec+3, yyvstop+331, yycrank+-950, yysvec+3, yyvstop+333, yycrank+-964, yysvec+3, yyvstop+335, yycrank+-981, yysvec+3, yyvstop+337, yycrank+-996, yysvec+3, yyvstop+340, yycrank+-1000, yysvec+3, yyvstop+342, yycrank+-1005, yysvec+3, yyvstop+344, yycrank+-1008, yysvec+3, yyvstop+346, yycrank+-1013, yysvec+3, yyvstop+349, yycrank+-1015, yysvec+3, yyvstop+351, yycrank+-1011, yysvec+3, yyvstop+353, yycrank+-1017, yysvec+3, yyvstop+355, yycrank+-1024, yysvec+3, yyvstop+357, yycrank+-1020, yysvec+3, yyvstop+359, yycrank+-1045, yysvec+3, yyvstop+362, yycrank+-1050, yysvec+3, yyvstop+364, yycrank+-1052, yysvec+3, yyvstop+366, yycrank+-1054, yysvec+3, yyvstop+368, yycrank+-1057, yysvec+3, yyvstop+370, yycrank+-1059, yysvec+3, yyvstop+372, yycrank+-1061, yysvec+3, yyvstop+374, yycrank+-1065, yysvec+3, yyvstop+376, yycrank+-1069, yysvec+3, yyvstop+378, yycrank+-1085, yysvec+3, yyvstop+381, yycrank+-1093, yysvec+3, yyvstop+384, yycrank+-1098, yysvec+3, yyvstop+386, yycrank+-1100, yysvec+3, yyvstop+388, yycrank+-1105, yysvec+3, yyvstop+390, yycrank+-1117, yysvec+3, yyvstop+392, yycrank+-1124, yysvec+3, yyvstop+394, yycrank+-1131, yysvec+3, yyvstop+396, yycrank+-1133, yysvec+3, yyvstop+398, yycrank+-1136, yysvec+3, yyvstop+400, yycrank+-1141, yysvec+3, yyvstop+402, yycrank+-1149, yysvec+3, yyvstop+404, yycrank+-1143, yysvec+3, yyvstop+406, yycrank+-1160, yysvec+3, yyvstop+408, yycrank+-1173, yysvec+3, yyvstop+410, yycrank+-1175, yysvec+3, yyvstop+412, yycrank+-1177, yysvec+3, yyvstop+415, yycrank+-1179, yysvec+3, yyvstop+417, yycrank+-1189, yysvec+3, yyvstop+419, yycrank+-1194, yysvec+3, yyvstop+422, yycrank+-1204, yysvec+3, yyvstop+424, yycrank+-1221, yysvec+3, yyvstop+426, yycrank+-1231, yysvec+3, yyvstop+428, yycrank+-1236, yysvec+3, yyvstop+430, yycrank+-1246, yysvec+3, yyvstop+432, yycrank+-1255, yysvec+3, yyvstop+435, yycrank+-1257, yysvec+3, yyvstop+437, yycrank+-1260, yysvec+3, yyvstop+440, yycrank+-1263, yysvec+3, yyvstop+443, yycrank+-1265, yysvec+3, yyvstop+445, yycrank+-1270, yysvec+3, yyvstop+447, yycrank+-1281, yysvec+3, yyvstop+449, yycrank+-1272, yysvec+3, yyvstop+451, yycrank+-1289, yysvec+3, yyvstop+453, yycrank+-1291, yysvec+3, yyvstop+456, yycrank+-1296, yysvec+3, yyvstop+458, yycrank+-1301, yysvec+3, yyvstop+460, yycrank+-1305, yysvec+3, yyvstop+462, yycrank+-1308, yysvec+3, yyvstop+464, yycrank+-1310, yysvec+3, yyvstop+466, yycrank+-1315, yysvec+3, yyvstop+468, yycrank+-1317, yysvec+3, yyvstop+470, yycrank+-1320, yysvec+3, yyvstop+472, yycrank+-1325, yysvec+3, yyvstop+474, yycrank+-1334, yysvec+3, yyvstop+476, yycrank+-1349, yysvec+3, yyvstop+478, yycrank+-1336, yysvec+3, yyvstop+480, yycrank+-1351, yysvec+3, yyvstop+483, yycrank+-1355, yysvec+3, yyvstop+485, yycrank+-1360, yysvec+3, yyvstop+487, yycrank+-1362, yysvec+3, yyvstop+489, yycrank+-1370, yysvec+3, yyvstop+491, yycrank+-1379, yysvec+3, yyvstop+493, yycrank+-1353, yysvec+3, yyvstop+495, yycrank+-1387, yysvec+3, yyvstop+497, yycrank+-1394, yysvec+3, yyvstop+499, yycrank+-1396, yysvec+3, yyvstop+501, yycrank+-1399, yysvec+3, yyvstop+503, yycrank+-1407, yysvec+3, yyvstop+505, yycrank+-1415, yysvec+3, yyvstop+507, yycrank+-1420, yysvec+3, yyvstop+509, yycrank+-1425, yysvec+3, yyvstop+511, yycrank+-1428, yysvec+3, yyvstop+513, yycrank+-1433, yysvec+3, yyvstop+515, yycrank+-1435, yysvec+3, yyvstop+517, yycrank+-1459, yysvec+3, yyvstop+520, yycrank+-1463, yysvec+3, yyvstop+523, yycrank+-1465, yysvec+3, yyvstop+525, yycrank+-1467, yysvec+3, yyvstop+528, yycrank+-1471, yysvec+3, yyvstop+530, yycrank+-1473, yysvec+3, yyvstop+532, yycrank+-1475, yysvec+3, yyvstop+534, yycrank+-1477, yysvec+3, yyvstop+536, yycrank+-1483, yysvec+3, yyvstop+538, yycrank+-1501, yysvec+3, yyvstop+540, yycrank+-1503, yysvec+3, yyvstop+542, yycrank+-1510, yysvec+3, yyvstop+544, yycrank+-1513, yysvec+3, yyvstop+546, yycrank+-1515, yysvec+3, yyvstop+548, yycrank+-1519, yysvec+3, yyvstop+550, yycrank+-1522, yysvec+3, yyvstop+552, yycrank+-1527, yysvec+3, yyvstop+554, yycrank+-1529, yysvec+3, yyvstop+556, yycrank+-1531, yysvec+3, yyvstop+558, yycrank+-1534, yysvec+3, yyvstop+560, yycrank+-1543, yysvec+3, yyvstop+562, yycrank+-1546, yysvec+3, yyvstop+564, yycrank+-1548, yysvec+3, yyvstop+566, yycrank+-1555, yysvec+3, yyvstop+569, yycrank+-1558, yysvec+3, yyvstop+571, yycrank+-1560, yysvec+3, yyvstop+573, yycrank+-1572, yysvec+3, yyvstop+575, yycrank+-1576, yysvec+3, yyvstop+577, yycrank+-1584, yysvec+3, yyvstop+579, yycrank+-1586, yysvec+3, yyvstop+581, yycrank+-1588, yysvec+3, yyvstop+583, yycrank+-1590, yysvec+3, yyvstop+585, yycrank+-1602, yysvec+3, yyvstop+587, yycrank+-1600, yysvec+3, yyvstop+589, yycrank+-1604, yysvec+3, yyvstop+591, yycrank+-1616, yysvec+3, yyvstop+593, yycrank+-1629, yysvec+3, yyvstop+595, yycrank+-1631, yysvec+3, yyvstop+597, yycrank+-1634, yysvec+3, yyvstop+599, yycrank+-1642, yysvec+3, yyvstop+601, yycrank+-1645, yysvec+3, yyvstop+603, yycrank+-1648, yysvec+3, yyvstop+605, yycrank+-1655, yysvec+3, yyvstop+607, yycrank+-1659, yysvec+3, yyvstop+609, yycrank+-1672, yysvec+3, yyvstop+611, yycrank+-1662, yysvec+3, yyvstop+613, yycrank+-1675, yysvec+3, yyvstop+615, yycrank+-1680, yysvec+3, yyvstop+617, yycrank+-1683, yysvec+3, yyvstop+620, yycrank+-1686, yysvec+3, yyvstop+622, yycrank+-1699, yysvec+3, yyvstop+624, yycrank+-1710, yysvec+3, yyvstop+626, yycrank+-1712, yysvec+3, yyvstop+628, yycrank+-1716, yysvec+3, yyvstop+630, yycrank+-1718, yysvec+3, yyvstop+632, yycrank+-1720, yysvec+3, yyvstop+634, yycrank+-1725, yysvec+3, yyvstop+637, yycrank+-1737, yysvec+3, yyvstop+639, yycrank+-1731, yysvec+3, yyvstop+641, yycrank+-1745, yysvec+3, yyvstop+643, yycrank+-1758, yysvec+3, yyvstop+645, yycrank+-1752, yysvec+3, yyvstop+647, yycrank+-1761, yysvec+3, yyvstop+649, yycrank+-1763, yysvec+3, yyvstop+651, yycrank+-1769, yysvec+3, yyvstop+653, yycrank+-1771, yysvec+3, yyvstop+655, yycrank+-1773, yysvec+3, yyvstop+657, yycrank+-1776, yysvec+3, yyvstop+660, yycrank+-1782, yysvec+3, yyvstop+662, yycrank+-1788, yysvec+3, yyvstop+664, yycrank+-1797, yysvec+3, yyvstop+666, yycrank+-1803, yysvec+3, yyvstop+668, yycrank+-1808, yysvec+3, yyvstop+671, yycrank+-1815, yysvec+3, yyvstop+673, yycrank+-1817, yysvec+3, yyvstop+675, yycrank+-1824, yysvec+3, yyvstop+678, yycrank+-1827, yysvec+3, yyvstop+680, yycrank+-1832, yysvec+3, yyvstop+682, yycrank+-1834, yysvec+3, yyvstop+684, yycrank+-1842, yysvec+3, yyvstop+686, yycrank+-1848, yysvec+3, yyvstop+688, yycrank+-1851, yysvec+3, yyvstop+690, yycrank+-1860, yysvec+3, yyvstop+692, yycrank+-1863, yysvec+3, yyvstop+694, yycrank+-1869, yysvec+3, yyvstop+696, yycrank+-1875, yysvec+3, yyvstop+699, yycrank+-1879, yysvec+3, yyvstop+701, yycrank+-1887, yysvec+3, yyvstop+703, yycrank+-1884, yysvec+3, yyvstop+705, yycrank+-1890, yysvec+3, yyvstop+708, yycrank+-1893, yysvec+3, yyvstop+711, yycrank+-1904, yysvec+3, yyvstop+713, yycrank+-1908, yysvec+3, yyvstop+715, yycrank+-1911, yysvec+3, yyvstop+718, yycrank+-1914, yysvec+3, yyvstop+720, yycrank+-1917, yysvec+3, yyvstop+722, yycrank+-1928, yysvec+3, yyvstop+725, yycrank+-1925, yysvec+3, yyvstop+727, yycrank+-1935, yysvec+3, yyvstop+729, yycrank+-1938, yysvec+3, yyvstop+732, yycrank+-1943, yysvec+3, yyvstop+735, yycrank+-1945, yysvec+3, yyvstop+737, yycrank+-1949, yysvec+3, yyvstop+739, yycrank+-1956, yysvec+3, yyvstop+741, yycrank+-1963, yysvec+3, yyvstop+743, yycrank+-1969, yysvec+3, yyvstop+745, yycrank+-1974, yysvec+3, yyvstop+747, yycrank+-1976, yysvec+3, yyvstop+749, yycrank+-1980, yysvec+3, yyvstop+751, yycrank+-1983, yysvec+3, yyvstop+754, yycrank+-1989, yysvec+3, yyvstop+756, yycrank+-1993, yysvec+3, yyvstop+758, yycrank+-2000, yysvec+3, yyvstop+761, yycrank+-2004, yysvec+3, yyvstop+763, yycrank+-2009, yysvec+3, yyvstop+765, yycrank+-2013, yysvec+3, yyvstop+767, yycrank+-2021, yysvec+3, yyvstop+769, yycrank+-2024, yysvec+3, yyvstop+771, yycrank+-2029, yysvec+3, yyvstop+774, yycrank+-2033, yysvec+3, yyvstop+777, yycrank+-2038, yysvec+3, yyvstop+779, yycrank+-2048, yysvec+3, yyvstop+781, yycrank+-2063, yysvec+3, yyvstop+783, yycrank+-2072, yysvec+3, yyvstop+785, yycrank+-2074, yysvec+3, yyvstop+788, yycrank+-2079, yysvec+3, yyvstop+790, yycrank+-2082, yysvec+3, yyvstop+792, yycrank+-2087, yysvec+3, yyvstop+795, yycrank+-2089, yysvec+3, yyvstop+797, yycrank+-2098, yysvec+3, yyvstop+799, yycrank+-2103, yysvec+3, yyvstop+802, yycrank+-2108, yysvec+3, yyvstop+805, yycrank+-2114, yysvec+3, yyvstop+808, yycrank+-2117, yysvec+3, yyvstop+811, yycrank+-2119, yysvec+3, yyvstop+813, yycrank+-2123, yysvec+3, yyvstop+815, yycrank+-2127, yysvec+3, yyvstop+818, yycrank+-2132, yysvec+3, yyvstop+821, yycrank+-2134, yysvec+3, yyvstop+823, yycrank+-2143, yysvec+3, yyvstop+825, yycrank+-2148, yysvec+3, yyvstop+828, yycrank+-2151, yysvec+3, yyvstop+830, yycrank+-2153, yysvec+3, yyvstop+832, yycrank+-2159, yysvec+3, yyvstop+834, yycrank+-2161, yysvec+3, yyvstop+837, yycrank+-2163, yysvec+3, yyvstop+839, yycrank+-2167, yysvec+3, yyvstop+841, yycrank+-2172, yysvec+3, yyvstop+844, yycrank+-2179, yysvec+3, yyvstop+847, yycrank+-2188, yysvec+3, yyvstop+849, yycrank+-2191, yysvec+3, yyvstop+852, yycrank+-2193, yysvec+3, yyvstop+854, yycrank+-2196, yysvec+3, yyvstop+857, yycrank+-2199, yysvec+3, yyvstop+859, yycrank+-2204, yysvec+3, yyvstop+862, yycrank+-2206, yysvec+3, yyvstop+864, yycrank+-2208, yysvec+3, yyvstop+867, yycrank+-2212, yysvec+3, yyvstop+869, yycrank+-2217, yysvec+3, yyvstop+871, yycrank+-2223, yysvec+3, yyvstop+873, yycrank+-2233, yysvec+3, yyvstop+875, yycrank+-2238, yysvec+3, yyvstop+878, yycrank+-2242, yysvec+3, yyvstop+881, yycrank+-2244, yysvec+3, yyvstop+884, yycrank+-2247, yysvec+3, yyvstop+886, yycrank+-2250, yysvec+3, yyvstop+889, yycrank+-2257, yysvec+3, yyvstop+892, yycrank+-2259, yysvec+3, yyvstop+894, yycrank+-2262, yysvec+3, yyvstop+897, yycrank+-2268, yysvec+3, yyvstop+899, yycrank+-2274, yysvec+3, yyvstop+901, yycrank+-2276, yysvec+3, yyvstop+904, yycrank+-2278, yysvec+3, yyvstop+907, yycrank+-2283, yysvec+3, yyvstop+909, yycrank+-2286, yysvec+3, yyvstop+912, yycrank+-2289, yysvec+3, yyvstop+914, yycrank+-2293, yysvec+3, yyvstop+916, yycrank+-2295, yysvec+3, yyvstop+919, 0, 0, 0}; struct yywork *yytop = yycrank+2389; struct yysvf *yybgin = yysvec+1; char yymatch[] = { 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 011 ,01 ,'"' ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' , '0' ,'0' ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,'A' ,'B' ,'C' ,'D' ,'E' ,'F' ,01 , 01 ,'I' ,'J' ,01 ,'L' ,01 ,'N' ,'O' , 'P' ,01 ,'R' ,'S' ,'T' ,01 ,01 ,01 , 'X' ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,'A' ,'B' ,'C' ,'D' ,'E' ,'F' ,01 , 01 ,'I' ,'J' ,01 ,'L' ,01 ,'N' ,'O' , 'P' ,01 ,'R' ,'S' ,'T' ,01 ,01 ,01 , 'X' ,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,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0}; #ifndef lint static char ncform_sccsid[] = "@(#)ncform 1.6 88/02/08 SMI"; /* from S5R2 1.2 */ #endif 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, yyfirst; struct yywork *yyr; # ifdef LEXDEBUG int debug; # endif char *yylastch; /* start off machines */ # ifdef LEXDEBUG debug = 0; # endif yyfirst=1; 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 && !yyfirst){ /* may not be any transitions */ yyz = yystate->yyother; if(yyz == 0)break; if(yyz->yystoff == yycrank)break; } *yylastch++ = yych = input(); yyfirst=0; tryagain: # ifdef LEXDEBUG if(debug){ fprintf(yyout,"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); }