|
|
1.1 ! root 1: # include "stdio.h" ! 2: # define U(x) x ! 3: # define NLSTATE yyprevious=YYNEWLINE ! 4: # define BEGIN yybgin = yysvec + 1 + ! 5: # define INITIAL 0 ! 6: # define YYLERR yysvec ! 7: # define YYSTATE (yyestate-yysvec-1) ! 8: # define YYOPTIM 1 ! 9: # define YYLMAX 200 ! 10: # define output(c) putc(c,yyout) ! 11: # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) ! 12: # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} ! 13: # define yymore() (yymorfg=1) ! 14: # define ECHO fprintf(yyout, "%s",yytext) ! 15: # define REJECT { nstr = yyreject(); goto yyfussy;} ! 16: int yyleng; extern char yytext[]; ! 17: int yymorfg; ! 18: extern char *yysptr, yysbuf[]; ! 19: int yytchar; ! 20: FILE *yyin ={stdin}, *yyout ={stdout}; ! 21: extern int yylineno; ! 22: struct yysvf { ! 23: struct yywork *yystoff; ! 24: struct yysvf *yyother; ! 25: int *yystops;}; ! 26: struct yysvf *yyestate; ! 27: extern struct yysvf yysvec[], *yybgin; ! 28: #ifndef lint ! 29: static char RCSid[] = "$Header: lex.yy.c.bw,v 2.0 85/11/21 07:21:45 jqj Exp $"; ! 30: #endif ! 31: /* ! 32: * scanner.l -- scanner for the XNS courier compiler ! 33: */ ! 34: ! 35: /* $Log: lex.yy.c.bw,v $ ! 36: * Revision 2.0 85/11/21 07:21:45 jqj ! 37: * 4.3BSD standard release ! 38: * ! 39: * Revision 1.1 85/11/20 12:56:17 jqj ! 40: * Initial revision ! 41: * ! 42: * Revision 1.3 85/03/11 16:40:08 jqj ! 43: * Public alpha-test version, released 11 March 1985 ! 44: * ! 45: * Revision 1.2 85/02/21 11:05:51 jqj ! 46: * alpha test version ! 47: * ! 48: * Revision 1.1 85/02/15 13:55:58 jqj ! 49: * Initial revision ! 50: * ! 51: */ ! 52: ! 53: #include "compiler.h" ! 54: #include "y.tab.h" ! 55: # define YYNEWLINE 10 ! 56: yylex(){ ! 57: int nstr; extern int yyprevious; ! 58: while((nstr = yylook()) >= 0) ! 59: yyfussy: switch(nstr){ ! 60: case 0: ! 61: if(yywrap()) return(0); break; ! 62: case 1: ! 63: case 2: ! 64: case 3: ! 65: case 4: ! 66: /* whitespace */; ! 67: break; ! 68: case 5: ! 69: { return (ARRAY); } ! 70: break; ! 71: case 6: ! 72: { return (_BEGIN); } ! 73: break; ! 74: case 7: ! 75: { return (BOOLEAN); } ! 76: break; ! 77: case 8: ! 78: { return (CARDINAL); } ! 79: break; ! 80: case 9: ! 81: { return (CHOICE); } ! 82: break; ! 83: case 10: ! 84: { return (DEPENDS); } ! 85: break; ! 86: case 11: ! 87: { return (END); } ! 88: break; ! 89: case 12: ! 90: { return (ERROR); } ! 91: break; ! 92: case 13: ! 93: { return (INTEGER); } ! 94: break; ! 95: case 14: ! 96: { return (LONG); } ! 97: break; ! 98: case 15: ! 99: { return (OF); } ! 100: break; ! 101: case 16: ! 102: { return (PROCEDURE); } ! 103: break; ! 104: case 17: ! 105: { return (PROGRAM); } ! 106: break; ! 107: case 18: ! 108: { return (RECORD); } ! 109: break; ! 110: case 19: ! 111: { return (REPORTS); } ! 112: break; ! 113: case 20: ! 114: { return (RETURNS); } ! 115: break; ! 116: case 21: ! 117: { return (SEQUENCE); } ! 118: break; ! 119: case 22: ! 120: { return (STRING); } ! 121: break; ! 122: case 23: ! 123: { return (TYPE); } ! 124: break; ! 125: case 24: ! 126: { return (UNSPECIFIED); } ! 127: break; ! 128: case 25: ! 129: { return (UPON); } ! 130: break; ! 131: case 26: ! 132: { return (VERSION); } ! 133: break; ! 134: case 27: ! 135: { return (TRUE); } ! 136: break; ! 137: case 28: ! 138: { return (FALSE); } ! 139: break; ! 140: case 29: ! 141: { return (_CHOOSES); } ! 142: break; ! 143: case 30: ! 144: { ! 145: /* ! 146: * decimal constant. ! 147: */ ! 148: yylval.stringvalue = copy(yytext); ! 149: return (number); ! 150: } ! 151: break; ! 152: case 31: ! 153: { ! 154: /* ! 155: * decimal constant. ! 156: */ ! 157: yytext[yyleng-1] = '\0'; ! 158: yylval.stringvalue = copy(yytext); ! 159: return (number); ! 160: } ! 161: break; ! 162: case 32: ! 163: { ! 164: char buf[BUFSIZ]; ! 165: /* ! 166: * octal constant. ! 167: * change to C representation ! 168: */ ! 169: yytext[yyleng-1] = '\0'; ! 170: if (*yytext != '-') ! 171: sprintf(buf,"0%s", yytext); ! 172: else ! 173: sprintf(buf,"-0%s", yytext+1); ! 174: yylval.stringvalue = copy(buf); ! 175: return (number); ! 176: } ! 177: break; ! 178: case 33: ! 179: { ! 180: char buf[BUFSIZ]; ! 181: /* ! 182: * hex constant. ! 183: * change to C representation ! 184: */ ! 185: yytext[yyleng-1] = '\0'; ! 186: if (*yytext != '-') ! 187: sprintf(buf,"0x%s", yytext); ! 188: else ! 189: sprintf(buf,"-0x%s", yytext+1); ! 190: yylval.stringvalue = copy(buf); ! 191: return (number); ! 192: } ! 193: break; ! 194: case 34: ! 195: { ! 196: /* ! 197: * string constant ! 198: */ ! 199: ! 200: yylval.stringvalue = copy(yytext); ! 201: return (string); ! 202: } ! 203: break; ! 204: case 35: ! 205: { ! 206: register char *p; ! 207: /* ! 208: * string constant with embedded "" ! 209: */ ! 210: ! 211: for (p=yytext+1; p<yytext+yyleng-1; p++) ! 212: if (*p == '"') *p++='\\'; ! 213: yylval.stringvalue = copy(yytext); ! 214: return (string); ! 215: } ! 216: break; ! 217: case 36: ! 218: { ! 219: yylval.stringvalue = copy(yytext); ! 220: return (identifier); ! 221: } ! 222: break; ! 223: case 37: ! 224: { ! 225: return ((int) yytext[0]); ! 226: } ! 227: break; ! 228: case -1: ! 229: break; ! 230: default: ! 231: fprintf(yyout,"bad switch yylook %d",nstr); ! 232: } return(0); } ! 233: /* end of yylex */ ! 234: int yyvstop[] ={ ! 235: 0, ! 236: ! 237: 37, ! 238: 0, ! 239: ! 240: 4, ! 241: 37, ! 242: 0, ! 243: ! 244: 4, ! 245: 0, ! 246: ! 247: 37, ! 248: 0, ! 249: ! 250: 37, ! 251: 0, ! 252: ! 253: 30, ! 254: 37, ! 255: 0, ! 256: ! 257: 30, ! 258: 37, ! 259: 0, ! 260: ! 261: 37, ! 262: 0, ! 263: ! 264: 36, ! 265: 37, ! 266: 0, ! 267: ! 268: 36, ! 269: 37, ! 270: 0, ! 271: ! 272: 36, ! 273: 37, ! 274: 0, ! 275: ! 276: 36, ! 277: 37, ! 278: 0, ! 279: ! 280: 36, ! 281: 37, ! 282: 0, ! 283: ! 284: 36, ! 285: 37, ! 286: 0, ! 287: ! 288: 36, ! 289: 37, ! 290: 0, ! 291: ! 292: 36, ! 293: 37, ! 294: 0, ! 295: ! 296: 36, ! 297: 37, ! 298: 0, ! 299: ! 300: 36, ! 301: 37, ! 302: 0, ! 303: ! 304: 36, ! 305: 37, ! 306: 0, ! 307: ! 308: 36, ! 309: 37, ! 310: 0, ! 311: ! 312: 36, ! 313: 37, ! 314: 0, ! 315: ! 316: 36, ! 317: 37, ! 318: 0, ! 319: ! 320: 36, ! 321: 37, ! 322: 0, ! 323: ! 324: 36, ! 325: 37, ! 326: 0, ! 327: ! 328: 34, ! 329: 35, ! 330: 0, ! 331: ! 332: -1, ! 333: 0, ! 334: ! 335: 30, ! 336: 0, ! 337: ! 338: 30, ! 339: 0, ! 340: ! 341: 32, ! 342: 0, ! 343: ! 344: 31, ! 345: 0, ! 346: ! 347: 33, ! 348: 0, ! 349: ! 350: 29, ! 351: 0, ! 352: ! 353: 36, ! 354: 0, ! 355: ! 356: 36, ! 357: 0, ! 358: ! 359: 36, ! 360: 0, ! 361: ! 362: 36, ! 363: 0, ! 364: ! 365: 36, ! 366: 0, ! 367: ! 368: 36, ! 369: 0, ! 370: ! 371: 36, ! 372: 0, ! 373: ! 374: 36, ! 375: 0, ! 376: ! 377: 36, ! 378: 0, ! 379: ! 380: 36, ! 381: 0, ! 382: ! 383: 36, ! 384: 0, ! 385: ! 386: 36, ! 387: 0, ! 388: ! 389: 15, ! 390: 36, ! 391: 0, ! 392: ! 393: 36, ! 394: 0, ! 395: ! 396: 36, ! 397: 0, ! 398: ! 399: 36, ! 400: 0, ! 401: ! 402: 36, ! 403: 0, ! 404: ! 405: 36, ! 406: 0, ! 407: ! 408: 36, ! 409: 0, ! 410: ! 411: 36, ! 412: 0, ! 413: ! 414: 36, ! 415: 0, ! 416: ! 417: 36, ! 418: 0, ! 419: ! 420: 1, ! 421: 0, ! 422: ! 423: 36, ! 424: 0, ! 425: ! 426: 36, ! 427: 0, ! 428: ! 429: 36, ! 430: 0, ! 431: ! 432: 36, ! 433: 0, ! 434: ! 435: 36, ! 436: 0, ! 437: ! 438: 36, ! 439: 0, ! 440: ! 441: 11, ! 442: 36, ! 443: 0, ! 444: ! 445: 36, ! 446: 0, ! 447: ! 448: 36, ! 449: 0, ! 450: ! 451: 36, ! 452: 0, ! 453: ! 454: 36, ! 455: 0, ! 456: ! 457: 36, ! 458: 0, ! 459: ! 460: 36, ! 461: 0, ! 462: ! 463: 36, ! 464: 0, ! 465: ! 466: 36, ! 467: 0, ! 468: ! 469: 36, ! 470: 0, ! 471: ! 472: 36, ! 473: 0, ! 474: ! 475: 36, ! 476: 0, ! 477: ! 478: 36, ! 479: 0, ! 480: ! 481: 36, ! 482: 0, ! 483: ! 484: 36, ! 485: 0, ! 486: ! 487: 36, ! 488: 0, ! 489: ! 490: 35, ! 491: 0, ! 492: ! 493: 3, ! 494: 0, ! 495: ! 496: 2, ! 497: 0, ! 498: ! 499: 36, ! 500: 0, ! 501: ! 502: 36, ! 503: 0, ! 504: ! 505: 36, ! 506: 0, ! 507: ! 508: 36, ! 509: 0, ! 510: ! 511: 36, ! 512: 0, ! 513: ! 514: 36, ! 515: 0, ! 516: ! 517: 36, ! 518: 0, ! 519: ! 520: 36, ! 521: 0, ! 522: ! 523: 36, ! 524: 0, ! 525: ! 526: 14, ! 527: 36, ! 528: 0, ! 529: ! 530: 36, ! 531: 0, ! 532: ! 533: 36, ! 534: 0, ! 535: ! 536: 36, ! 537: 0, ! 538: ! 539: 36, ! 540: 0, ! 541: ! 542: 36, ! 543: 0, ! 544: ! 545: 36, ! 546: 0, ! 547: ! 548: 36, ! 549: 0, ! 550: ! 551: 27, ! 552: 36, ! 553: 0, ! 554: ! 555: 23, ! 556: 36, ! 557: 0, ! 558: ! 559: 36, ! 560: 0, ! 561: ! 562: 25, ! 563: 36, ! 564: 0, ! 565: ! 566: 36, ! 567: 0, ! 568: ! 569: 5, ! 570: 36, ! 571: 0, ! 572: ! 573: 6, ! 574: 36, ! 575: 0, ! 576: ! 577: 36, ! 578: 0, ! 579: ! 580: 36, ! 581: 0, ! 582: ! 583: 36, ! 584: 0, ! 585: ! 586: 36, ! 587: 0, ! 588: ! 589: 12, ! 590: 36, ! 591: 0, ! 592: ! 593: 28, ! 594: 36, ! 595: 0, ! 596: ! 597: 36, ! 598: 0, ! 599: ! 600: 36, ! 601: 0, ! 602: ! 603: 36, ! 604: 0, ! 605: ! 606: 36, ! 607: 0, ! 608: ! 609: 36, ! 610: 0, ! 611: ! 612: 36, ! 613: 0, ! 614: ! 615: 36, ! 616: 0, ! 617: ! 618: 36, ! 619: 0, ! 620: ! 621: 36, ! 622: 0, ! 623: ! 624: 36, ! 625: 0, ! 626: ! 627: 36, ! 628: 0, ! 629: ! 630: 36, ! 631: 0, ! 632: ! 633: 9, ! 634: 36, ! 635: 0, ! 636: ! 637: 36, ! 638: 0, ! 639: ! 640: 36, ! 641: 0, ! 642: ! 643: 36, ! 644: 0, ! 645: ! 646: 36, ! 647: 0, ! 648: ! 649: 18, ! 650: 36, ! 651: 0, ! 652: ! 653: 36, ! 654: 0, ! 655: ! 656: 36, ! 657: 0, ! 658: ! 659: 36, ! 660: 0, ! 661: ! 662: 22, ! 663: 36, ! 664: 0, ! 665: ! 666: 36, ! 667: 0, ! 668: ! 669: 36, ! 670: 0, ! 671: ! 672: 7, ! 673: 36, ! 674: 0, ! 675: ! 676: 36, ! 677: 0, ! 678: ! 679: 10, ! 680: 36, ! 681: 0, ! 682: ! 683: 13, ! 684: 36, ! 685: 0, ! 686: ! 687: 36, ! 688: 0, ! 689: ! 690: 17, ! 691: 36, ! 692: 0, ! 693: ! 694: 19, ! 695: 36, ! 696: 0, ! 697: ! 698: 20, ! 699: 36, ! 700: 0, ! 701: ! 702: 36, ! 703: 0, ! 704: ! 705: 36, ! 706: 0, ! 707: ! 708: 26, ! 709: 36, ! 710: 0, ! 711: ! 712: 8, ! 713: 36, ! 714: 0, ! 715: ! 716: 36, ! 717: 0, ! 718: ! 719: 21, ! 720: 36, ! 721: 0, ! 722: ! 723: 36, ! 724: 0, ! 725: ! 726: 16, ! 727: 36, ! 728: 0, ! 729: ! 730: 36, ! 731: 0, ! 732: ! 733: 36, ! 734: 0, ! 735: ! 736: 24, ! 737: 36, ! 738: 0, ! 739: 0}; ! 740: # define YYTYPE int ! 741: struct yywork { YYTYPE verify, advance; } yycrank[] ={ ! 742: 0,0, 0,0, 1,3, 0,0, ! 743: 0,0, 0,0, 0,0, 0,0, ! 744: 0,0, 0,0, 1,4, 1,5, ! 745: 0,0, 0,0, 27,0, 0,0, ! 746: 0,0, 0,0, 0,0, 0,0, ! 747: 0,0, 0,0, 0,0, 0,0, ! 748: 0,0, 0,0, 0,0, 0,0, ! 749: 0,0, 0,0, 0,0, 0,0, ! 750: 0,0, 0,0, 0,0, 1,6, ! 751: 0,0, 0,0, 28,59, 0,0, ! 752: 0,0, 0,0, 0,0, 0,0, ! 753: 0,0, 0,0, 1,7, 0,0, ! 754: 0,0, 1,8, 0,0, 0,0, ! 755: 0,0, 0,0, 0,0, 0,0, ! 756: 0,0, 1,9, 0,0, 0,0, ! 757: 0,0, 0,0, 1,10, 0,0, ! 758: 0,0, 10,36, 1,11, 1,12, ! 759: 1,13, 1,14, 1,15, 1,16, ! 760: 1,17, 16,46, 1,18, 13,41, ! 761: 0,0, 1,19, 12,39, 0,0, ! 762: 1,20, 1,21, 13,42, 1,22, ! 763: 1,23, 1,24, 1,25, 1,26, ! 764: 12,40, 1,17, 16,37, 12,37, ! 765: 13,37, 15,44, 14,43, 17,37, ! 766: 21,50, 15,45, 1,17, 1,17, ! 767: 1,17, 1,17, 1,17, 1,17, ! 768: 2,10, 18,47, 6,27, 14,37, ! 769: 19,48, 18,37, 2,13, 19,37, ! 770: 2,15, 2,16, 6,27, 6,0, ! 771: 2,18, 24,54, 20,49, 2,19, ! 772: 22,51, 23,52, 2,20, 2,21, ! 773: 24,55, 2,22, 2,23, 2,24, ! 774: 2,25, 2,26, 20,37, 37,37, ! 775: 38,63, 22,37, 23,37, 26,58, ! 776: 23,53, 41,66, 45,70, 6,28, ! 777: 2,17, 2,17, 2,17, 2,17, ! 778: 2,17, 2,17, 39,64, 25,56, ! 779: 26,37, 25,57, 6,27, 25,37, ! 780: 40,65, 6,27, 44,69, 40,37, ! 781: 42,67, 39,37, 43,68, 42,37, ! 782: 43,37, 6,27, 47,37, 46,71, ! 783: 47,72, 49,37, 52,78, 52,37, ! 784: 44,37, 46,37, 6,27, 6,27, ! 785: 50,74, 6,27, 7,29, 50,37, ! 786: 6,27, 7,30, 7,30, 7,30, ! 787: 7,30, 7,30, 7,30, 7,30, ! 788: 7,30, 7,31, 7,31, 48,73, ! 789: 53,79, 56,37, 56,82, 48,37, ! 790: 51,75, 6,27, 8,30, 8,30, ! 791: 8,30, 8,30, 8,30, 8,30, ! 792: 8,30, 8,30, 8,31, 8,31, ! 793: 55,81, 51,76, 55,37, 51,37, ! 794: 58,84, 51,77, 62,88, 8,32, ! 795: 8,33, 8,32, 8,34, 8,32, ! 796: 8,32, 9,31, 9,31, 9,31, ! 797: 9,31, 9,31, 9,31, 9,31, ! 798: 9,31, 54,37, 57,83, 60,86, ! 799: 54,80, 57,37, 64,90, 65,91, ! 800: 63,89, 67,93, 8,35, 9,32, ! 801: 66,92, 65,37, 69,37, 64,37, ! 802: 71,37, 71,96, 67,37, 8,32, ! 803: 8,33, 8,32, 8,34, 8,32, ! 804: 8,32, 63,37, 66,37, 11,37, ! 805: 11,37, 11,37, 11,37, 11,37, ! 806: 11,37, 11,37, 11,37, 11,37, ! 807: 11,37, 70,95, 60,87, 82,108, ! 808: 70,37, 82,37, 8,35, 9,32, ! 809: 11,37, 11,37, 11,37, 11,37, ! 810: 11,37, 11,37, 11,37, 11,37, ! 811: 11,37, 11,37, 11,37, 11,37, ! 812: 11,37, 11,37, 11,37, 11,37, ! 813: 11,37, 11,38, 11,37, 11,37, ! 814: 11,37, 11,37, 11,37, 11,37, ! 815: 11,37, 11,37, 75,101, 95,117, ! 816: 76,102, 75,37, 11,37, 76,37, ! 817: 11,37, 11,37, 11,37, 11,37, ! 818: 11,37, 11,37, 11,37, 11,37, ! 819: 11,37, 11,37, 11,37, 11,37, ! 820: 11,37, 11,37, 11,37, 11,37, ! 821: 11,37, 11,37, 11,37, 11,37, ! 822: 11,37, 11,37, 11,37, 11,37, ! 823: 11,37, 11,37, 29,60, 77,37, ! 824: 98,37, 83,109, 77,103, 68,94, ! 825: 72,97, 83,37, 29,60, 29,61, ! 826: 31,31, 31,31, 31,31, 31,31, ! 827: 31,31, 31,31, 31,31, 31,31, ! 828: 68,37, 72,37, 73,98, 78,37, ! 829: 87,0, 79,105, 78,104, 84,37, ! 830: 84,110, 100,121, 31,32, 101,122, ! 831: 102,123, 73,37, 79,37, 29,60, ! 832: 32,32, 32,32, 32,32, 32,32, ! 833: 32,32, 32,32, 32,32, 32,32, ! 834: 32,32, 32,32, 29,62, 80,106, ! 835: 74,99, 29,60, 103,124, 81,107, ! 836: 74,100, 106,37, 32,32, 91,113, ! 837: 32,32, 29,60, 89,37, 87,86, ! 838: 80,37, 92,114, 31,32, 74,37, ! 839: 81,37, 89,111, 29,60, 29,60, ! 840: 91,37, 29,60, 92,37, 96,118, ! 841: 29,60, 33,32, 33,32, 33,32, ! 842: 33,32, 33,32, 33,32, 33,32, ! 843: 33,32, 33,32, 33,32, 90,112, ! 844: 96,37, 107,37, 32,32, 90,37, ! 845: 32,32, 29,60, 93,115, 33,32, ! 846: 109,37, 33,32, 34,32, 34,32, ! 847: 34,32, 34,32, 34,32, 34,32, ! 848: 34,32, 34,32, 34,32, 34,32, ! 849: 94,116, 93,37, 97,119, 59,59, ! 850: 94,37, 99,120, 110,128, 104,125, ! 851: 34,32, 111,37, 34,32, 59,59, ! 852: 59,0, 97,37, 108,127, 110,37, ! 853: 112,37, 113,129, 99,37, 33,32, ! 854: 104,37, 33,32, 105,126, 116,132, ! 855: 114,130, 115,131, 105,37, 108,37, ! 856: 114,37, 117,37, 118,37, 119,133, ! 857: 120,134, 131,37, 113,37, 121,135, ! 858: 59,85, 116,37, 115,37, 122,136, ! 859: 34,32, 123,37, 34,32, 123,137, ! 860: 119,37, 124,138, 120,37, 59,59, ! 861: 126,140, 124,37, 59,59, 125,139, ! 862: 121,37, 122,37, 127,141, 125,37, ! 863: 133,146, 128,142, 59,59, 126,37, ! 864: 128,37, 129,143, 130,144, 132,37, ! 865: 132,145, 129,37, 136,37, 59,59, ! 866: 59,59, 127,37, 59,59, 134,37, ! 867: 135,148, 59,59, 134,147, 137,37, ! 868: 137,149, 135,37, 139,151, 130,37, ! 869: 138,37, 138,150, 140,37, 141,152, ! 870: 142,153, 143,37, 145,37, 146,37, ! 871: 142,37, 144,154, 59,59, 147,155, ! 872: 141,37, 139,37, 148,37, 144,37, ! 873: 149,37, 150,37, 151,156, 153,37, ! 874: 152,157, 154,37, 155,158, 156,37, ! 875: 157,159, 158,37, 159,160, 160,161, ! 876: 161,37, 0,0, 0,0, 151,37, ! 877: 152,37, 157,37, 0,0, 155,37, ! 878: 0,0, 0,0, 0,0, 159,37, ! 879: 0,0, 160,37, 0,0, 0,0, ! 880: 0,0}; ! 881: struct yysvf yysvec[] ={ ! 882: 0, 0, 0, ! 883: yycrank+-1, 0, 0, ! 884: yycrank+-43, yysvec+1, 0, ! 885: yycrank+0, 0, yyvstop+1, ! 886: yycrank+0, 0, yyvstop+3, ! 887: yycrank+0, 0, yyvstop+6, ! 888: yycrank+-105, 0, yyvstop+8, ! 889: yycrank+129, 0, yyvstop+10, ! 890: yycrank+146, 0, yyvstop+12, ! 891: yycrank+169, yysvec+8, yyvstop+15, ! 892: yycrank+3, 0, yyvstop+18, ! 893: yycrank+203, 0, yyvstop+20, ! 894: yycrank+9, yysvec+11, yyvstop+23, ! 895: yycrank+10, yysvec+11, yyvstop+26, ! 896: yycrank+25, yysvec+11, yyvstop+29, ! 897: yycrank+15, yysvec+11, yyvstop+32, ! 898: yycrank+8, yysvec+11, yyvstop+35, ! 899: yycrank+13, yysvec+11, yyvstop+38, ! 900: yycrank+27, yysvec+11, yyvstop+41, ! 901: yycrank+29, yysvec+11, yyvstop+44, ! 902: yycrank+48, yysvec+11, yyvstop+47, ! 903: yycrank+14, yysvec+11, yyvstop+50, ! 904: yycrank+51, yysvec+11, yyvstop+53, ! 905: yycrank+52, yysvec+11, yyvstop+56, ! 906: yycrank+35, yysvec+11, yyvstop+59, ! 907: yycrank+69, yysvec+11, yyvstop+62, ! 908: yycrank+66, yysvec+11, yyvstop+65, ! 909: yycrank+-4, yysvec+6, 0, ! 910: yycrank+4, 0, yyvstop+68, ! 911: yycrank+-325, 0, yyvstop+71, ! 912: yycrank+0, yysvec+8, yyvstop+73, ! 913: yycrank+288, yysvec+8, yyvstop+75, ! 914: yycrank+312, yysvec+8, 0, ! 915: yycrank+349, yysvec+8, yyvstop+77, ! 916: yycrank+370, yysvec+8, yyvstop+79, ! 917: yycrank+0, 0, yyvstop+81, ! 918: yycrank+0, 0, yyvstop+83, ! 919: yycrank+49, yysvec+11, yyvstop+85, ! 920: yycrank+50, yysvec+11, yyvstop+87, ! 921: yycrank+75, yysvec+11, yyvstop+89, ! 922: yycrank+73, yysvec+11, yyvstop+91, ! 923: yycrank+55, yysvec+11, yyvstop+93, ! 924: yycrank+77, yysvec+11, yyvstop+95, ! 925: yycrank+78, yysvec+11, yyvstop+97, ! 926: yycrank+86, yysvec+11, yyvstop+99, ! 927: yycrank+56, yysvec+11, yyvstop+101, ! 928: yycrank+87, yysvec+11, yyvstop+103, ! 929: yycrank+80, yysvec+11, yyvstop+105, ! 930: yycrank+109, yysvec+11, yyvstop+107, ! 931: yycrank+83, yysvec+11, yyvstop+109, ! 932: yycrank+93, yysvec+11, yyvstop+112, ! 933: yycrank+125, yysvec+11, yyvstop+114, ! 934: yycrank+85, yysvec+11, yyvstop+116, ! 935: yycrank+106, yysvec+11, yyvstop+118, ! 936: yycrank+143, yysvec+11, yyvstop+120, ! 937: yycrank+124, yysvec+11, yyvstop+122, ! 938: yycrank+107, yysvec+11, yyvstop+124, ! 939: yycrank+147, yysvec+11, yyvstop+126, ! 940: yycrank+126, yysvec+11, yyvstop+128, ! 941: yycrank+-430, 0, 0, ! 942: yycrank+-217, yysvec+29, 0, ! 943: yycrank+0, 0, yyvstop+130, ! 944: yycrank+165, 0, 0, ! 945: yycrank+167, yysvec+11, yyvstop+132, ! 946: yycrank+157, yysvec+11, yyvstop+134, ! 947: yycrank+155, yysvec+11, yyvstop+136, ! 948: yycrank+168, yysvec+11, yyvstop+138, ! 949: yycrank+160, yysvec+11, yyvstop+140, ! 950: yycrank+262, yysvec+11, yyvstop+142, ! 951: yycrank+156, yysvec+11, yyvstop+144, ! 952: yycrank+182, yysvec+11, yyvstop+147, ! 953: yycrank+158, yysvec+11, yyvstop+149, ! 954: yycrank+263, yysvec+11, yyvstop+151, ! 955: yycrank+275, yysvec+11, yyvstop+153, ! 956: yycrank+305, yysvec+11, yyvstop+155, ! 957: yycrank+215, yysvec+11, yyvstop+157, ! 958: yycrank+217, yysvec+11, yyvstop+159, ! 959: yycrank+245, yysvec+11, yyvstop+161, ! 960: yycrank+265, yysvec+11, yyvstop+163, ! 961: yycrank+276, yysvec+11, yyvstop+165, ! 962: yycrank+302, yysvec+11, yyvstop+167, ! 963: yycrank+306, yysvec+11, yyvstop+169, ! 964: yycrank+183, yysvec+11, yyvstop+171, ! 965: yycrank+251, yysvec+11, yyvstop+173, ! 966: yycrank+269, yysvec+11, yyvstop+175, ! 967: yycrank+0, yysvec+28, yyvstop+177, ! 968: yycrank+0, 0, yyvstop+179, ! 969: yycrank+-338, yysvec+29, 0, ! 970: yycrank+0, 0, yyvstop+181, ! 971: yycrank+300, yysvec+11, yyvstop+183, ! 972: yycrank+329, yysvec+11, yyvstop+185, ! 973: yycrank+310, yysvec+11, yyvstop+187, ! 974: yycrank+312, yysvec+11, yyvstop+189, ! 975: yycrank+347, yysvec+11, yyvstop+191, ! 976: yycrank+350, yysvec+11, yyvstop+193, ! 977: yycrank+213, yysvec+11, yyvstop+195, ! 978: yycrank+326, yysvec+11, yyvstop+197, ! 979: yycrank+359, yysvec+11, yyvstop+199, ! 980: yycrank+246, yysvec+11, yyvstop+201, ! 981: yycrank+364, yysvec+11, yyvstop+204, ! 982: yycrank+271, yysvec+11, yyvstop+206, ! 983: yycrank+273, yysvec+11, yyvstop+208, ! 984: yycrank+274, yysvec+11, yyvstop+210, ! 985: yycrank+292, yysvec+11, yyvstop+212, ! 986: yycrank+366, yysvec+11, yyvstop+214, ! 987: yycrank+372, yysvec+11, yyvstop+216, ! 988: yycrank+295, yysvec+11, yyvstop+218, ! 989: yycrank+327, yysvec+11, yyvstop+221, ! 990: yycrank+373, yysvec+11, yyvstop+224, ! 991: yycrank+334, yysvec+11, yyvstop+226, ! 992: yycrank+361, yysvec+11, yyvstop+229, ! 993: yycrank+355, yysvec+11, yyvstop+231, ! 994: yycrank+362, yysvec+11, yyvstop+234, ! 995: yycrank+380, yysvec+11, yyvstop+237, ! 996: yycrank+374, yysvec+11, yyvstop+239, ! 997: yycrank+384, yysvec+11, yyvstop+241, ! 998: yycrank+383, yysvec+11, yyvstop+243, ! 999: yycrank+375, yysvec+11, yyvstop+245, ! 1000: yycrank+376, yysvec+11, yyvstop+248, ! 1001: yycrank+390, yysvec+11, yyvstop+251, ! 1002: yycrank+392, yysvec+11, yyvstop+253, ! 1003: yycrank+398, yysvec+11, yyvstop+255, ! 1004: yycrank+399, yysvec+11, yyvstop+257, ! 1005: yycrank+387, yysvec+11, yyvstop+259, ! 1006: yycrank+395, yysvec+11, yyvstop+261, ! 1007: yycrank+401, yysvec+11, yyvstop+263, ! 1008: yycrank+405, yysvec+11, yyvstop+265, ! 1009: yycrank+415, yysvec+11, yyvstop+267, ! 1010: yycrank+406, yysvec+11, yyvstop+269, ! 1011: yycrank+411, yysvec+11, yyvstop+271, ! 1012: yycrank+425, yysvec+11, yyvstop+273, ! 1013: yycrank+379, yysvec+11, yyvstop+275, ! 1014: yycrank+409, yysvec+11, yyvstop+278, ! 1015: yycrank+402, yysvec+11, yyvstop+280, ! 1016: yycrank+417, yysvec+11, yyvstop+282, ! 1017: yycrank+423, yysvec+11, yyvstop+284, ! 1018: yycrank+412, yysvec+11, yyvstop+286, ! 1019: yycrank+421, yysvec+11, yyvstop+289, ! 1020: yycrank+426, yysvec+11, yyvstop+291, ! 1021: yycrank+439, yysvec+11, yyvstop+293, ! 1022: yycrank+428, yysvec+11, yyvstop+295, ! 1023: yycrank+438, yysvec+11, yyvstop+298, ! 1024: yycrank+434, yysvec+11, yyvstop+300, ! 1025: yycrank+431, yysvec+11, yyvstop+302, ! 1026: yycrank+441, yysvec+11, yyvstop+305, ! 1027: yycrank+432, yysvec+11, yyvstop+307, ! 1028: yycrank+433, yysvec+11, yyvstop+310, ! 1029: yycrank+437, yysvec+11, yyvstop+313, ! 1030: yycrank+440, yysvec+11, yyvstop+315, ! 1031: yycrank+442, yysvec+11, yyvstop+318, ! 1032: yycrank+443, yysvec+11, yyvstop+321, ! 1033: yycrank+457, yysvec+11, yyvstop+324, ! 1034: yycrank+458, yysvec+11, yyvstop+326, ! 1035: yycrank+445, yysvec+11, yyvstop+328, ! 1036: yycrank+447, yysvec+11, yyvstop+331, ! 1037: yycrank+461, yysvec+11, yyvstop+334, ! 1038: yycrank+449, yysvec+11, yyvstop+336, ! 1039: yycrank+459, yysvec+11, yyvstop+339, ! 1040: yycrank+451, yysvec+11, yyvstop+341, ! 1041: yycrank+465, yysvec+11, yyvstop+344, ! 1042: yycrank+467, yysvec+11, yyvstop+346, ! 1043: yycrank+454, yysvec+11, yyvstop+348, ! 1044: 0, 0, 0}; ! 1045: struct yywork *yytop = yycrank+549; ! 1046: struct yysvf *yybgin = yysvec+1; ! 1047: char yymatch[] ={ ! 1048: 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ! 1049: 01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 , ! 1050: 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ! 1051: 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , ! 1052: 011 ,01 ,'"' ,01 ,01 ,01 ,01 ,01 , ! 1053: 01 ,01 ,01 ,01 ,01 ,'-' ,01 ,01 , ! 1054: '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' , ! 1055: '8' ,'8' ,01 ,01 ,01 ,01 ,01 ,01 , ! 1056: 01 ,'A' ,'B' ,'A' ,'D' ,'A' ,'A' ,'G' , ! 1057: 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' , ! 1058: 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' , ! 1059: 'X' ,'G' ,'G' ,01 ,01 ,01 ,01 ,'G' , ! 1060: 01 ,'A' ,'B' ,'A' ,'D' ,'A' ,'A' ,'G' , ! 1061: 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' , ! 1062: 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' , ! 1063: 'X' ,'G' ,'G' ,01 ,01 ,01 ,01 ,01 , ! 1064: 0}; ! 1065: char yyextra[] ={ ! 1066: 0,1,0,0,0,0,0,0, ! 1067: 0,0,0,0,0,0,0,0, ! 1068: 0,0,0,0,0,0,0,0, ! 1069: 0,0,0,0,0,0,0,0, ! 1070: 0,0,0,0,0,0,0,0, ! 1071: 0}; ! 1072: int yylineno =1; ! 1073: # define YYU(x) x ! 1074: # define NLSTATE yyprevious=YYNEWLINE ! 1075: char yytext[YYLMAX]; ! 1076: struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; ! 1077: char yysbuf[YYLMAX]; ! 1078: char *yysptr = yysbuf; ! 1079: int *yyfnd; ! 1080: extern struct yysvf *yyestate; ! 1081: int yyprevious = YYNEWLINE; ! 1082: yylook(){ ! 1083: register struct yysvf *yystate, **lsp; ! 1084: register struct yywork *yyt; ! 1085: struct yysvf *yyz; ! 1086: int yych; ! 1087: struct yywork *yyr; ! 1088: # ifdef LEXDEBUG ! 1089: int debug; ! 1090: # endif ! 1091: char *yylastch; ! 1092: /* start off machines */ ! 1093: # ifdef LEXDEBUG ! 1094: debug = 0; ! 1095: # endif ! 1096: if (!yymorfg) ! 1097: yylastch = yytext; ! 1098: else { ! 1099: yymorfg=0; ! 1100: yylastch = yytext+yyleng; ! 1101: } ! 1102: for(;;){ ! 1103: lsp = yylstate; ! 1104: yyestate = yystate = yybgin; ! 1105: if (yyprevious==YYNEWLINE) yystate++; ! 1106: for (;;){ ! 1107: # ifdef LEXDEBUG ! 1108: if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); ! 1109: # endif ! 1110: yyt = yystate->yystoff; ! 1111: if(yyt == yycrank){ /* may not be any transitions */ ! 1112: yyz = yystate->yyother; ! 1113: if(yyz == 0)break; ! 1114: if(yyz->yystoff == yycrank)break; ! 1115: } ! 1116: *yylastch++ = yych = input(); ! 1117: tryagain: ! 1118: # ifdef LEXDEBUG ! 1119: if(debug){ ! 1120: fprintf(yyout,"char "); ! 1121: allprint(yych); ! 1122: putchar('\n'); ! 1123: } ! 1124: # endif ! 1125: yyr = yyt; ! 1126: if ( (int)yyt > (int)yycrank){ ! 1127: yyt = yyr + yych; ! 1128: if (yyt <= yytop && yyt->verify+yysvec == yystate){ ! 1129: if(yyt->advance+yysvec == YYLERR) /* error transitions */ ! 1130: {unput(*--yylastch);break;} ! 1131: *lsp++ = yystate = yyt->advance+yysvec; ! 1132: goto contin; ! 1133: } ! 1134: } ! 1135: # ifdef YYOPTIM ! 1136: else if((int)yyt < (int)yycrank) { /* r < yycrank */ ! 1137: yyt = yyr = yycrank+(yycrank-yyt); ! 1138: # ifdef LEXDEBUG ! 1139: if(debug)fprintf(yyout,"compressed state\n"); ! 1140: # endif ! 1141: yyt = yyt + yych; ! 1142: if(yyt <= yytop && yyt->verify+yysvec == yystate){ ! 1143: if(yyt->advance+yysvec == YYLERR) /* error transitions */ ! 1144: {unput(*--yylastch);break;} ! 1145: *lsp++ = yystate = yyt->advance+yysvec; ! 1146: goto contin; ! 1147: } ! 1148: yyt = yyr + YYU(yymatch[yych]); ! 1149: # ifdef LEXDEBUG ! 1150: if(debug){ ! 1151: fprintf(yyout,"try fall back character "); ! 1152: allprint(YYU(yymatch[yych])); ! 1153: putchar('\n'); ! 1154: } ! 1155: # endif ! 1156: if(yyt <= yytop && yyt->verify+yysvec == yystate){ ! 1157: if(yyt->advance+yysvec == YYLERR) /* error transition */ ! 1158: {unput(*--yylastch);break;} ! 1159: *lsp++ = yystate = yyt->advance+yysvec; ! 1160: goto contin; ! 1161: } ! 1162: } ! 1163: if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ ! 1164: # ifdef LEXDEBUG ! 1165: if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); ! 1166: # endif ! 1167: goto tryagain; ! 1168: } ! 1169: # endif ! 1170: else ! 1171: {unput(*--yylastch);break;} ! 1172: contin: ! 1173: # ifdef LEXDEBUG ! 1174: if(debug){ ! 1175: fprintf(yyout,"state %d char ",yystate-yysvec-1); ! 1176: allprint(yych); ! 1177: putchar('\n'); ! 1178: } ! 1179: # endif ! 1180: ; ! 1181: } ! 1182: # ifdef LEXDEBUG ! 1183: if(debug){ ! 1184: fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); ! 1185: allprint(yych); ! 1186: putchar('\n'); ! 1187: } ! 1188: # endif ! 1189: while (lsp-- > yylstate){ ! 1190: *yylastch-- = 0; ! 1191: if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ ! 1192: yyolsp = lsp; ! 1193: if(yyextra[*yyfnd]){ /* must backup */ ! 1194: while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ ! 1195: lsp--; ! 1196: unput(*yylastch--); ! 1197: } ! 1198: } ! 1199: yyprevious = YYU(*yylastch); ! 1200: yylsp = lsp; ! 1201: yyleng = yylastch-yytext+1; ! 1202: yytext[yyleng] = 0; ! 1203: # ifdef LEXDEBUG ! 1204: if(debug){ ! 1205: fprintf(yyout,"\nmatch "); ! 1206: sprint(yytext); ! 1207: fprintf(yyout," action %d\n",*yyfnd); ! 1208: } ! 1209: # endif ! 1210: return(*yyfnd++); ! 1211: } ! 1212: unput(*yylastch); ! 1213: } ! 1214: if (yytext[0] == 0 /* && feof(yyin) */) ! 1215: { ! 1216: yysptr=yysbuf; ! 1217: return(0); ! 1218: } ! 1219: yyprevious = yytext[0] = input(); ! 1220: if (yyprevious>0) ! 1221: output(yyprevious); ! 1222: yylastch=yytext; ! 1223: # ifdef LEXDEBUG ! 1224: if(debug)putchar('\n'); ! 1225: # endif ! 1226: } ! 1227: } ! 1228: yyback(p, m) ! 1229: int *p; ! 1230: { ! 1231: if (p==0) return(0); ! 1232: while (*p) ! 1233: { ! 1234: if (*p++ == m) ! 1235: return(1); ! 1236: } ! 1237: return(0); ! 1238: } ! 1239: /* the following are only used in the lex library */ ! 1240: yyinput(){ ! 1241: return(input()); ! 1242: } ! 1243: yyoutput(c) ! 1244: int c; { ! 1245: output(c); ! 1246: } ! 1247: yyunput(c) ! 1248: int c; { ! 1249: unput(c); ! 1250: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.