1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <inttypes.h> 4 # define U(x) x 5 # define NLSTATE yyprevious=YYNEWLINE 6 # define BEGIN yybgin = yysvec + 1 + 7 # define INITIAL 0 8 # define YYLERR yysvec 9 # define YYSTATE (yyestate-yysvec-1) 10 # define YYOPTIM 1 11 # ifndef YYLMAX 12 # define YYLMAX BUFSIZ 13 # endif 14 #ifndef __cplusplus 15 # define output(c) (void)putc(c,yyout) 16 #else 17 # define lex_output(c) (void)putc(c,yyout) 18 #endif 19 20 #if defined(__cplusplus) || defined(__STDC__) 21 22 #if defined(__cplusplus) && defined(__EXTERN_C__) 23 extern "C" { 24 #endif 25 int yyback(int *, int); 26 int yyinput(void); 27 int yylook(void); 28 void yyoutput(int); 29 int yyracc(int); 30 int yyreject(void); 31 void yyunput(int); 32 int yylex(void); 33 #ifdef YYLEX_E 34 void yywoutput(wchar_t); 35 wchar_t yywinput(void); 36 void yywunput(wchar_t); 37 #endif 38 #ifndef yyless 39 int yyless(int); 40 #endif 41 #ifndef yywrap 42 int yywrap(void); 43 #endif 44 #ifdef LEXDEBUG 45 void allprint(char); 46 void sprint(char *); 47 #endif 48 #if defined(__cplusplus) && defined(__EXTERN_C__) 49 } 50 #endif 51 52 #ifdef __cplusplus 53 extern "C" { 54 #endif 55 void exit(int); 56 #ifdef __cplusplus 57 } 58 #endif 59 60 #endif 61 # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} 62 # define yymore() (yymorfg=1) 63 #ifndef __cplusplus 64 # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) 65 #else 66 # define lex_input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) 67 #endif 68 #define ECHO fprintf(yyout, "%s",yytext) 69 # define REJECT { nstr = yyreject(); goto yyfussy;} 70 int yyleng; 71 #define YYISARRAY 72 char yytext[YYLMAX]; 73 int yymorfg; 74 extern char *yysptr, yysbuf[]; 75 int yytchar; 76 FILE *yyin = {stdin}, *yyout = {stdout}; 77 extern int yylineno; 78 struct yysvf { 79 struct yywork *yystoff; 80 struct yysvf *yyother; 81 int *yystops;}; 82 struct yysvf *yyestate; 83 extern struct yysvf yysvec[], *yybgin; 84 85 # line 3 "awk.lx.l" 86 /* 87 * CDDL HEADER START 88 * 89 * The contents of this file are subject to the terms of the 90 * Common Development and Distribution License, Version 1.0 only 91 * (the "License"). You may not use this file except in compliance 92 * with the License. 93 * 94 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 95 * or http://www.opensolaris.org/os/licensing. 96 * See the License for the specific language governing permissions 97 * and limitations under the License. 98 * 99 * When distributing Covered Code, include this CDDL HEADER in each 100 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 101 * If applicable, add the following below this CDDL HEADER, with the 102 * fields enclosed by brackets "[]" replaced with your own identifying 103 * information: Portions Copyright [yyyy] [name of copyright owner] 104 * 105 * CDDL HEADER END 106 */ 107 108 109 # line 25 "awk.lx.l" 110 /* 111 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 112 * Use is subject to license terms. 113 */ 114 115 116 # line 30 "awk.lx.l" 117 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 118 119 # line 31 "awk.lx.l" 120 /* All Rights Reserved */ 121 #pragma ident "%Z%%M% %I% %E% SMI" 122 # define A 2 123 # define str 4 124 # define sc 6 125 # define reg 8 126 # define comment 10 127 128 #include <sys/types.h> 129 #include "awk.h" 130 #include "y.tab.h" 131 132 #undef input /* defeat lex */ 133 #undef unput 134 135 static void unput(int); 136 static void unputstr(char *); 137 138 extern YYSTYPE yylval; 139 extern int infunc; 140 141 off_t lineno = 1; 142 int bracecnt = 0; 143 int brackcnt = 0; 144 int parencnt = 0; 145 #define DEBUG 146 #ifdef DEBUG 147 # define RET(x) {if(dbg)printf("lex %s [%s]\n", tokname(x), yytext); return(x); } 148 #else 149 # define RET(x) return(x) 150 #endif 151 152 153 # line 66 "awk.lx.l" 154 /* 155 * The standards (SUSV2) requires that Record size be atleast LINE_MAX. 156 * LINE_MAX is a standard variable defined in limits.h. 157 * Though nawk is not standards compliant, we let RECSIZE 158 * grow with LINE_MAX instead of the magic number 1024. 159 */ 160 #define CBUFLEN (3 * LINE_MAX) 161 162 #define CADD cbuf[clen++] = yytext[0]; \ 163 if (clen >= CBUFLEN-1) { \ 164 ERROR "string/reg expr %.10s... too long", cbuf SYNTAX; \ 165 BEGIN A; \ 166 } 167 168 static uchar cbuf[CBUFLEN]; 169 static uchar *s; 170 static int clen, cflag; 171 # define YYNEWLINE 10 172 int yylex(){ 173 int nstr; extern int yyprevious; 174 175 # line 92 "awk.lx.l" 176 switch (yybgin-yysvec-1) { /* witchcraft */ 177 case 0: 178 BEGIN A; 179 break; 180 case sc: 181 BEGIN A; 182 RET('}'); 183 } 184 #ifdef __cplusplus 185 /* to avoid CC and lint complaining yyfussy not being used ...*/ 186 static int __lex_hack = 0; 187 if (__lex_hack) goto yyfussy; 188 #endif 189 while((nstr = yylook()) >= 0) 190 yyfussy: switch(nstr){ 191 case 0: 192 if(yywrap()) return(0); break; 193 case 1: 194 195 # line 101 "awk.lx.l" 196 { lineno++; RET(NL); } 197 break; 198 case 2: 199 200 # line 102 "awk.lx.l" 201 { ; } 202 break; 203 case 3: 204 205 # line 103 "awk.lx.l" 206 { ; } 207 break; 208 case 4: 209 210 # line 104 "awk.lx.l" 211 { RET(';'); } 212 break; 213 case 5: 214 215 # line 106 "awk.lx.l" 216 { lineno++; } 217 break; 218 case 6: 219 220 # line 107 "awk.lx.l" 221 { RET(XBEGIN); } 222 break; 223 case 7: 224 225 # line 108 "awk.lx.l" 226 { RET(XEND); } 227 break; 228 case 8: 229 230 # line 109 "awk.lx.l" 231 { if (infunc) ERROR "illegal nested function" SYNTAX; RET(FUNC); } 232 break; 233 case 9: 234 235 # line 110 "awk.lx.l" 236 { if (!infunc) ERROR "return not in function" SYNTAX; RET(RETURN); } 237 break; 238 case 10: 239 240 # line 111 "awk.lx.l" 241 { RET(AND); } 242 break; 243 case 11: 244 245 # line 112 "awk.lx.l" 246 { RET(BOR); } 247 break; 248 case 12: 249 250 # line 113 "awk.lx.l" 251 { RET(NOT); } 252 break; 253 case 13: 254 255 # line 114 "awk.lx.l" 256 { yylval.i = NE; RET(NE); } 257 break; 258 case 14: 259 260 # line 115 "awk.lx.l" 261 { yylval.i = MATCH; RET(MATCHOP); } 262 break; 263 case 15: 264 265 # line 116 "awk.lx.l" 266 { yylval.i = NOTMATCH; RET(MATCHOP); } 267 break; 268 case 16: 269 270 # line 117 "awk.lx.l" 271 { yylval.i = LT; RET(LT); } 272 break; 273 case 17: 274 275 # line 118 "awk.lx.l" 276 { yylval.i = LE; RET(LE); } 277 break; 278 case 18: 279 280 # line 119 "awk.lx.l" 281 { yylval.i = EQ; RET(EQ); } 282 break; 283 case 19: 284 285 # line 120 "awk.lx.l" 286 { yylval.i = GE; RET(GE); } 287 break; 288 case 20: 289 290 # line 121 "awk.lx.l" 291 { yylval.i = GT; RET(GT); } 292 break; 293 case 21: 294 295 # line 122 "awk.lx.l" 296 { yylval.i = APPEND; RET(APPEND); } 297 break; 298 case 22: 299 300 # line 123 "awk.lx.l" 301 { yylval.i = INCR; RET(INCR); } 302 break; 303 case 23: 304 305 # line 124 "awk.lx.l" 306 { yylval.i = DECR; RET(DECR); } 307 break; 308 case 24: 309 310 # line 125 "awk.lx.l" 311 { yylval.i = ADDEQ; RET(ASGNOP); } 312 break; 313 case 25: 314 315 # line 126 "awk.lx.l" 316 { yylval.i = SUBEQ; RET(ASGNOP); } 317 break; 318 case 26: 319 320 # line 127 "awk.lx.l" 321 { yylval.i = MULTEQ; RET(ASGNOP); } 322 break; 323 case 27: 324 325 # line 128 "awk.lx.l" 326 { yylval.i = DIVEQ; RET(ASGNOP); } 327 break; 328 case 28: 329 330 # line 129 "awk.lx.l" 331 { yylval.i = MODEQ; RET(ASGNOP); } 332 break; 333 case 29: 334 335 # line 130 "awk.lx.l" 336 { yylval.i = POWEQ; RET(ASGNOP); } 337 break; 338 case 30: 339 340 # line 131 "awk.lx.l" 341 { yylval.i = POWEQ; RET(ASGNOP); } 342 break; 343 case 31: 344 345 # line 132 "awk.lx.l" 346 { yylval.i = ASSIGN; RET(ASGNOP); } 347 break; 348 case 32: 349 350 # line 133 "awk.lx.l" 351 { RET(POWER); } 352 break; 353 case 33: 354 355 # line 134 "awk.lx.l" 356 { RET(POWER); } 357 break; 358 case 34: 359 360 # line 136 "awk.lx.l" 361 { yylval.cp = fieldadr(atoi(yytext+1)); RET(FIELD); } 362 break; 363 case 35: 364 365 # line 137 "awk.lx.l" 366 { unputstr("(NF)"); return(INDIRECT); } 367 break; 368 case 36: 369 370 # line 138 "awk.lx.l" 371 { int c, n; 372 c = input(); unput(c); 373 if (c == '(' || c == '[' || infunc && (n=isarg(yytext+1)) >= 0) { 374 unputstr(yytext+1); 375 return(INDIRECT); 376 } else { 377 yylval.cp = setsymtab((uchar *)yytext+1, 378 (uchar *)"",0.0,STR|NUM,symtab); 379 RET(IVAR); 380 } 381 } 382 break; 383 case 37: 384 385 # line 149 "awk.lx.l" 386 { RET(INDIRECT); } 387 break; 388 case 38: 389 390 # line 150 "awk.lx.l" 391 { yylval.cp = setsymtab((uchar *)yytext, (uchar *)"", 0.0, NUM, symtab); RET(VARNF); } 392 break; 393 case 39: 394 395 # line 152 "awk.lx.l" 396 { 397 yylval.cp = setsymtab((uchar *)yytext, tostring((uchar *)yytext), atof(yytext), CON|NUM, symtab); 398 RET(NUMBER); } 399 break; 400 case 40: 401 402 # line 156 "awk.lx.l" 403 { RET(WHILE); } 404 break; 405 case 41: 406 407 # line 157 "awk.lx.l" 408 { RET(FOR); } 409 break; 410 case 42: 411 412 # line 158 "awk.lx.l" 413 { RET(DO); } 414 break; 415 case 43: 416 417 # line 159 "awk.lx.l" 418 { RET(IF); } 419 break; 420 case 44: 421 422 # line 160 "awk.lx.l" 423 { RET(ELSE); } 424 break; 425 case 45: 426 427 # line 161 "awk.lx.l" 428 { RET(NEXT); } 429 break; 430 case 46: 431 432 # line 162 "awk.lx.l" 433 { RET(EXIT); } 434 break; 435 case 47: 436 437 # line 163 "awk.lx.l" 438 { RET(BREAK); } 439 break; 440 case 48: 441 442 # line 164 "awk.lx.l" 443 { RET(CONTINUE); } 444 break; 445 case 49: 446 447 # line 165 "awk.lx.l" 448 { yylval.i = PRINT; RET(PRINT); } 449 break; 450 case 50: 451 452 # line 166 "awk.lx.l" 453 { yylval.i = PRINTF; RET(PRINTF); } 454 break; 455 case 51: 456 457 # line 167 "awk.lx.l" 458 { yylval.i = SPRINTF; RET(SPRINTF); } 459 break; 460 case 52: 461 462 # line 168 "awk.lx.l" 463 { yylval.i = SPLIT; RET(SPLIT); } 464 break; 465 case 53: 466 467 # line 169 "awk.lx.l" 468 { RET(SUBSTR); } 469 break; 470 case 54: 471 472 # line 170 "awk.lx.l" 473 { yylval.i = SUB; RET(SUB); } 474 break; 475 case 55: 476 477 # line 171 "awk.lx.l" 478 { yylval.i = GSUB; RET(GSUB); } 479 break; 480 case 56: 481 482 # line 172 "awk.lx.l" 483 { RET(INDEX); } 484 break; 485 case 57: 486 487 # line 173 "awk.lx.l" 488 { RET(MATCHFCN); } 489 break; 490 case 58: 491 492 # line 174 "awk.lx.l" 493 { RET(IN); } 494 break; 495 case 59: 496 497 # line 175 "awk.lx.l" 498 { RET(GETLINE); } 499 break; 500 case 60: 501 502 # line 176 "awk.lx.l" 503 { RET(CLOSE); } 504 break; 505 case 61: 506 507 # line 177 "awk.lx.l" 508 { RET(DELETE); } 509 break; 510 case 62: 511 512 # line 178 "awk.lx.l" 513 { yylval.i = FLENGTH; RET(BLTIN); } 514 break; 515 case 63: 516 517 # line 179 "awk.lx.l" 518 { yylval.i = FLOG; RET(BLTIN); } 519 break; 520 case 64: 521 522 # line 180 "awk.lx.l" 523 { yylval.i = FINT; RET(BLTIN); } 524 break; 525 case 65: 526 527 # line 181 "awk.lx.l" 528 { yylval.i = FEXP; RET(BLTIN); } 529 break; 530 case 66: 531 532 # line 182 "awk.lx.l" 533 { yylval.i = FSQRT; RET(BLTIN); } 534 break; 535 case 67: 536 537 # line 183 "awk.lx.l" 538 { yylval.i = FSIN; RET(BLTIN); } 539 break; 540 case 68: 541 542 # line 184 "awk.lx.l" 543 { yylval.i = FCOS; RET(BLTIN); } 544 break; 545 case 69: 546 547 # line 185 "awk.lx.l" 548 { yylval.i = FATAN; RET(BLTIN); } 549 break; 550 case 70: 551 552 # line 186 "awk.lx.l" 553 { yylval.i = FSYSTEM; RET(BLTIN); } 554 break; 555 case 71: 556 557 # line 187 "awk.lx.l" 558 { yylval.i = FRAND; RET(BLTIN); } 559 break; 560 case 72: 561 562 # line 188 "awk.lx.l" 563 { yylval.i = FSRAND; RET(BLTIN); } 564 break; 565 case 73: 566 567 # line 189 "awk.lx.l" 568 { yylval.i = FTOUPPER; RET(BLTIN); } 569 break; 570 case 74: 571 572 # line 190 "awk.lx.l" 573 { yylval.i = FTOLOWER; RET(BLTIN); } 574 break; 575 case 75: 576 577 # line 192 "awk.lx.l" 578 { int n, c; 579 c = input(); unput(c); /* look for '(' */ 580 if (c != '(' && infunc && (n=isarg(yytext)) >= 0) { 581 yylval.i = n; 582 RET(ARG); 583 } else { 584 yylval.cp = setsymtab((uchar *)yytext, 585 (uchar *)"",0.0,STR|NUM,symtab); 586 if (c == '(') { 587 RET(CALL); 588 } else { 589 RET(VAR); 590 } 591 } 592 } 593 break; 594 case 76: 595 596 # line 207 "awk.lx.l" 597 { BEGIN str; clen = 0; } 598 break; 599 case 77: 600 601 # line 209 "awk.lx.l" 602 { if (--bracecnt < 0) ERROR "extra }" SYNTAX; BEGIN sc; RET(';'); } 603 break; 604 case 78: 605 606 # line 210 "awk.lx.l" 607 { if (--brackcnt < 0) ERROR "extra ]" SYNTAX; RET(']'); } 608 break; 609 case 79: 610 611 # line 211 "awk.lx.l" 612 { if (--parencnt < 0) ERROR "extra )" SYNTAX; RET(')'); } 613 break; 614 case 80: 615 616 # line 213 "awk.lx.l" 617 { if (yytext[0] == '{') bracecnt++; 618 else if (yytext[0] == '[') brackcnt++; 619 else if (yytext[0] == '(') parencnt++; 620 RET(yylval.i = yytext[0]); /* everything else */ } 621 break; 622 case 81: 623 624 # line 218 "awk.lx.l" 625 { cbuf[clen++] = '\\'; cbuf[clen++] = yytext[1]; } 626 break; 627 case 82: 628 629 # line 219 "awk.lx.l" 630 { ERROR "newline in regular expression %.10s...", cbuf SYNTAX; lineno++; BEGIN A; } 631 break; 632 case 83: 633 634 # line 220 "awk.lx.l" 635 { BEGIN A; 636 cbuf[clen] = 0; 637 yylval.s = tostring(cbuf); 638 unput('/'); 639 RET(REGEXPR); } 640 break; 641 case 84: 642 643 # line 225 "awk.lx.l" 644 { CADD; } 645 break; 646 case 85: 647 648 # line 227 "awk.lx.l" 649 { BEGIN A; 650 cbuf[clen] = 0; s = tostring(cbuf); 651 cbuf[clen] = ' '; cbuf[++clen] = 0; 652 yylval.cp = setsymtab(cbuf, s, 0.0, CON|STR, symtab); 653 RET(STRING); } 654 break; 655 case 86: 656 657 # line 232 "awk.lx.l" 658 { ERROR "newline in string %.10s...", cbuf SYNTAX; lineno++; BEGIN A; } 659 break; 660 case 87: 661 662 # line 233 "awk.lx.l" 663 { cbuf[clen++] = '"'; } 664 break; 665 case 88: 666 667 # line 234 "awk.lx.l" 668 { cbuf[clen++] = '\n'; } 669 break; 670 case 89: 671 672 # line 235 "awk.lx.l" 673 { cbuf[clen++] = '\t'; } 674 break; 675 case 90: 676 677 # line 236 "awk.lx.l" 678 { cbuf[clen++] = '\f'; } 679 break; 680 case 91: 681 682 # line 237 "awk.lx.l" 683 { cbuf[clen++] = '\r'; } 684 break; 685 case 92: 686 687 # line 238 "awk.lx.l" 688 { cbuf[clen++] = '\b'; } 689 break; 690 case 93: 691 692 # line 239 "awk.lx.l" 693 { cbuf[clen++] = '\v'; } 694 break; 695 case 94: 696 697 # line 240 "awk.lx.l" 698 { cbuf[clen++] = '\007'; } 699 break; 700 case 95: 701 702 # line 241 "awk.lx.l" 703 { cbuf[clen++] = '\\'; } 704 break; 705 case 96: 706 707 # line 242 "awk.lx.l" 708 { int n; 709 sscanf(yytext+1, "%o", &n); cbuf[clen++] = n; } 710 break; 711 case 97: 712 713 # line 244 "awk.lx.l" 714 { int n; /* ANSI permits any number! */ 715 sscanf(yytext+2, "%x", &n); cbuf[clen++] = n; } 716 break; 717 case 98: 718 719 # line 246 "awk.lx.l" 720 { cbuf[clen++] = yytext[1]; } 721 break; 722 case 99: 723 724 # line 247 "awk.lx.l" 725 { CADD; } 726 break; 727 case -1: 728 break; 729 default: 730 (void)fprintf(yyout,"bad switch yylook %d",nstr); 731 } return(0); } 732 /* end of yylex */ 733 734 # line 250 "awk.lx.l" 735 736 void 737 startreg() 738 { 739 BEGIN reg; 740 clen = 0; 741 } 742 743 /* input() and unput() are transcriptions of the standard lex 744 macros for input and output with additions for error message 745 printing. God help us all if someone changes how lex works. 746 */ 747 748 uchar ebuf[300]; 749 uchar *ep = ebuf; 750 751 int 752 input(void) 753 { 754 register int c; 755 extern uchar *lexprog; 756 757 if (yysptr > yysbuf) 758 c = U(*--yysptr); 759 else if (lexprog != NULL) /* awk '...' */ 760 c = *lexprog++; 761 else /* awk -f ... */ 762 c = pgetc(); 763 if (c == '\n') 764 yylineno++; 765 else if (c == EOF) 766 c = 0; 767 if (ep >= ebuf + sizeof ebuf) 768 ep = ebuf; 769 return *ep++ = c; 770 } 771 772 static void 773 unput(int c) 774 { 775 yytchar = c; 776 if (yytchar == '\n') 777 yylineno--; 778 *yysptr++ = yytchar; 779 if (--ep < ebuf) 780 ep = ebuf + sizeof(ebuf) - 1; 781 } 782 783 784 static void 785 unputstr(char *s) 786 { 787 int i; 788 789 for (i = strlen(s)-1; i >= 0; i--) 790 unput(s[i]); 791 } 792 int yyvstop[] = { 793 0, 794 795 80, 796 0, 797 798 3, 799 80, 800 0, 801 802 1, 803 0, 804 805 12, 806 80, 807 0, 808 809 76, 810 80, 811 0, 812 813 2, 814 80, 815 0, 816 817 37, 818 80, 819 0, 820 821 80, 822 0, 823 824 80, 825 0, 826 827 79, 828 80, 829 0, 830 831 80, 832 0, 833 834 80, 835 0, 836 837 80, 838 0, 839 840 80, 841 0, 842 843 80, 844 0, 845 846 39, 847 80, 848 0, 849 850 4, 851 80, 852 0, 853 854 16, 855 80, 856 0, 857 858 31, 859 80, 860 0, 861 862 20, 863 80, 864 0, 865 866 75, 867 80, 868 0, 869 870 75, 871 80, 872 0, 873 874 75, 875 80, 876 0, 877 878 75, 879 80, 880 0, 881 882 80, 883 0, 884 885 78, 886 80, 887 0, 888 889 33, 890 80, 891 0, 892 893 75, 894 80, 895 0, 896 897 75, 898 80, 899 0, 900 901 75, 902 80, 903 0, 904 905 75, 906 80, 907 0, 908 909 75, 910 80, 911 0, 912 913 75, 914 80, 915 0, 916 917 75, 918 80, 919 0, 920 921 75, 922 80, 923 0, 924 925 75, 926 80, 927 0, 928 929 75, 930 80, 931 0, 932 933 75, 934 80, 935 0, 936 937 75, 938 80, 939 0, 940 941 75, 942 80, 943 0, 944 945 75, 946 80, 947 0, 948 949 75, 950 80, 951 0, 952 953 75, 954 80, 955 0, 956 957 80, 958 0, 959 960 77, 961 80, 962 0, 963 964 14, 965 80, 966 0, 967 968 99, 969 0, 970 971 86, 972 0, 973 974 85, 975 99, 976 0, 977 978 99, 979 0, 980 981 84, 982 0, 983 984 82, 985 0, 986 987 83, 988 84, 989 0, 990 991 84, 992 0, 993 994 3, 995 0, 996 997 13, 998 0, 999 1000 15, 1001 0, 1002 1003 2, 1004 0, 1005 1006 34, 1007 0, 1008 1009 36, 1010 0, 1011 1012 36, 1013 0, 1014 1015 28, 1016 0, 1017 1018 10, 1019 0, 1020 1021 32, 1022 0, 1023 1024 26, 1025 0, 1026 1027 22, 1028 0, 1029 1030 24, 1031 0, 1032 1033 23, 1034 0, 1035 1036 25, 1037 0, 1038 1039 39, 1040 0, 1041 1042 27, 1043 0, 1044 1045 39, 1046 0, 1047 1048 39, 1049 0, 1050 1051 17, 1052 0, 1053 1054 18, 1055 0, 1056 1057 19, 1058 0, 1059 1060 21, 1061 0, 1062 1063 75, 1064 0, 1065 1066 75, 1067 0, 1068 1069 75, 1070 0, 1071 1072 38, 1073 75, 1074 0, 1075 1076 5, 1077 0, 1078 1079 29, 1080 0, 1081 1082 75, 1083 0, 1084 1085 75, 1086 0, 1087 1088 75, 1089 0, 1090 1091 75, 1092 0, 1093 1094 75, 1095 0, 1096 1097 42, 1098 75, 1099 0, 1100 1101 75, 1102 0, 1103 1104 75, 1105 0, 1106 1107 75, 1108 0, 1109 1110 75, 1111 0, 1112 1113 75, 1114 0, 1115 1116 75, 1117 0, 1118 1119 43, 1120 75, 1121 0, 1122 1123 58, 1124 75, 1125 0, 1126 1127 75, 1128 0, 1129 1130 75, 1131 0, 1132 1133 75, 1134 0, 1135 1136 75, 1137 0, 1138 1139 75, 1140 0, 1141 1142 75, 1143 0, 1144 1145 75, 1146 0, 1147 1148 75, 1149 0, 1150 1151 75, 1152 0, 1153 1154 75, 1155 0, 1156 1157 75, 1158 0, 1159 1160 75, 1161 0, 1162 1163 75, 1164 0, 1165 1166 75, 1167 0, 1168 1169 75, 1170 0, 1171 1172 11, 1173 0, 1174 1175 98, 1176 0, 1177 1178 87, 1179 98, 1180 0, 1181 1182 96, 1183 98, 1184 0, 1185 1186 95, 1187 98, 1188 0, 1189 1190 94, 1191 98, 1192 0, 1193 1194 92, 1195 98, 1196 0, 1197 1198 90, 1199 98, 1200 0, 1201 1202 88, 1203 98, 1204 0, 1205 1206 91, 1207 98, 1208 0, 1209 1210 89, 1211 98, 1212 0, 1213 1214 93, 1215 98, 1216 0, 1217 1218 98, 1219 0, 1220 1221 81, 1222 0, 1223 1224 35, 1225 36, 1226 0, 1227 1228 30, 1229 0, 1230 1231 39, 1232 0, 1233 1234 75, 1235 0, 1236 1237 7, 1238 75, 1239 0, 1240 1241 75, 1242 0, 1243 1244 75, 1245 0, 1246 1247 75, 1248 0, 1249 1250 75, 1251 0, 1252 1253 68, 1254 75, 1255 0, 1256 1257 75, 1258 0, 1259 1260 75, 1261 0, 1262 1263 75, 1264 0, 1265 1266 65, 1267 75, 1268 0, 1269 1270 41, 1271 75, 1272 0, 1273 1274 75, 1275 0, 1276 1277 75, 1278 0, 1279 1280 75, 1281 0, 1282 1283 75, 1284 0, 1285 1286 64, 1287 75, 1288 0, 1289 1290 75, 1291 0, 1292 1293 63, 1294 75, 1295 0, 1296 1297 75, 1298 0, 1299 1300 75, 1301 0, 1302 1303 75, 1304 0, 1305 1306 75, 1307 0, 1308 1309 75, 1310 0, 1311 1312 67, 1313 75, 1314 0, 1315 1316 75, 1317 0, 1318 1319 75, 1320 0, 1321 1322 75, 1323 0, 1324 1325 75, 1326 0, 1327 1328 54, 1329 75, 1330 0, 1331 1332 75, 1333 0, 1334 1335 75, 1336 0, 1337 1338 75, 1339 0, 1340 1341 75, 1342 0, 1343 1344 96, 1345 0, 1346 1347 97, 1348 0, 1349 1350 75, 1351 0, 1352 1353 75, 1354 0, 1355 1356 75, 1357 0, 1358 1359 75, 1360 0, 1361 1362 75, 1363 0, 1364 1365 75, 1366 0, 1367 1368 44, 1369 75, 1370 0, 1371 1372 46, 1373 75, 1374 0, 1375 1376 8, 1377 75, 1378 0, 1379 1380 75, 1381 0, 1382 1383 55, 1384 75, 1385 0, 1386 1387 75, 1388 0, 1389 1390 75, 1391 0, 1392 1393 75, 1394 0, 1395 1396 45, 1397 75, 1398 0, 1399 1400 75, 1401 0, 1402 1403 71, 1404 75, 1405 0, 1406 1407 75, 1408 0, 1409 1410 75, 1411 0, 1412 1413 75, 1414 0, 1415 1416 66, 1417 75, 1418 0, 1419 1420 75, 1421 0, 1422 1423 75, 1424 0, 1425 1426 75, 1427 0, 1428 1429 75, 1430 0, 1431 1432 75, 1433 0, 1434 1435 75, 1436 0, 1437 1438 96, 1439 0, 1440 1441 6, 1442 75, 1443 0, 1444 1445 69, 1446 75, 1447 0, 1448 1449 47, 1450 75, 1451 0, 1452 1453 60, 1454 75, 1455 0, 1456 1457 75, 1458 0, 1459 1460 75, 1461 0, 1462 1463 75, 1464 0, 1465 1466 75, 1467 0, 1468 1469 56, 1470 75, 1471 0, 1472 1473 75, 1474 0, 1475 1476 57, 1477 75, 1478 0, 1479 1480 49, 1481 75, 1482 0, 1483 1484 75, 1485 0, 1486 1487 52, 1488 75, 1489 0, 1490 1491 75, 1492 0, 1493 1494 72, 1495 75, 1496 0, 1497 1498 75, 1499 0, 1500 1501 75, 1502 0, 1503 1504 75, 1505 0, 1506 1507 75, 1508 0, 1509 1510 40, 1511 75, 1512 0, 1513 1514 75, 1515 0, 1516 1517 61, 1518 75, 1519 0, 1520 1521 75, 1522 0, 1523 1524 75, 1525 0, 1526 1527 62, 1528 75, 1529 0, 1530 1531 50, 1532 75, 1533 0, 1534 1535 9, 1536 75, 1537 0, 1538 1539 75, 1540 0, 1541 1542 53, 1543 75, 1544 0, 1545 1546 70, 1547 75, 1548 0, 1549 1550 75, 1551 0, 1552 1553 75, 1554 0, 1555 1556 75, 1557 0, 1558 1559 75, 1560 0, 1561 1562 59, 1563 75, 1564 0, 1565 1566 51, 1567 75, 1568 0, 1569 1570 74, 1571 75, 1572 0, 1573 1574 73, 1575 75, 1576 0, 1577 1578 48, 1579 75, 1580 0, 1581 1582 8, 1583 75, 1584 0, 1585 0}; 1586 # define YYTYPE unsigned char 1587 struct yywork { YYTYPE verify, advance; } yycrank[] = { 1588 0,0, 0,0, 3,13, 0,0, 1589 0,0, 0,0, 0,0, 0,0, 1590 0,0, 0,0, 3,14, 3,15, 1591 0,0, 0,0, 0,0, 0,0, 1592 0,0, 14,67, 0,0, 0,0, 1593 0,0, 5,59, 0,0, 0,0, 1594 0,0, 0,0, 0,0, 0,0, 1595 0,0, 5,59, 5,60, 0,0, 1596 0,0, 0,0, 3,16, 3,17, 1597 3,18, 3,19, 3,20, 3,21, 1598 14,67, 37,95, 3,22, 3,23, 1599 3,24, 70,0, 3,25, 3,26, 1600 3,27, 3,28, 6,61, 0,0, 1601 0,0, 0,0, 5,61, 0,0, 1602 0,0, 3,28, 0,0, 0,0, 1603 3,29, 3,30, 3,31, 3,32, 1604 0,0, 21,75, 3,33, 3,34, 1605 5,59, 10,65, 3,35, 23,76, 1606 3,33, 0,0, 16,68, 0,0, 1607 5,59, 0,0, 0,0, 3,36, 1608 0,0, 0,0, 0,0, 0,0, 1609 0,0, 5,59, 0,0, 24,78, 1610 9,63, 20,74, 23,77, 5,59, 1611 27,83, 3,37, 3,38, 3,39, 1612 9,63, 9,64, 3,40, 3,41, 1613 3,42, 3,43, 3,44, 3,45, 1614 3,46, 24,79, 3,47, 25,80, 1615 6,62, 3,48, 3,49, 3,50, 1616 5,62, 3,51, 10,66, 3,52, 1617 3,53, 3,54, 30,87, 31,88, 1618 3,55, 32,89, 32,90, 25,81, 1619 34,92, 3,56, 3,57, 3,58, 1620 4,16, 4,17, 4,18, 4,19, 1621 4,20, 4,21, 9,65, 9,63, 1622 4,22, 4,23, 4,24, 16,69, 1623 4,25, 4,26, 4,27, 9,63, 1624 35,93, 36,94, 39,96, 40,97, 1625 41,98, 43,101, 42,99, 44,103, 1626 9,63, 42,100, 4,29, 4,30, 1627 4,31, 4,32, 9,63, 43,102, 1628 45,105, 4,34, 47,109, 44,104, 1629 4,35, 48,111, 45,106, 46,107, 1630 18,70, 49,113, 47,110, 50,114, 1631 51,115, 4,36, 52,116, 48,112, 1632 18,70, 18,0, 52,117, 9,66, 1633 54,124, 46,108, 55,125, 56,126, 1634 76,141, 92,144, 82,86, 4,37, 1635 4,38, 4,39, 93,145, 97,146, 1636 4,40, 4,41, 4,42, 4,43, 1637 4,44, 4,45, 4,46, 98,147, 1638 4,47, 99,148, 101,151, 4,48, 1639 4,49, 4,50, 103,152, 4,51, 1640 100,149, 4,52, 4,53, 4,54, 1641 105,155, 100,150, 4,55, 18,70, 1642 106,156, 53,118, 82,86, 4,56, 1643 4,57, 4,58, 107,157, 18,70, 1644 53,119, 53,120, 53,121, 104,153, 1645 108,158, 53,122, 111,161, 112,162, 1646 18,70, 53,123, 104,154, 110,159, 1647 113,163, 114,164, 18,70, 19,71, 1648 19,71, 19,71, 19,71, 19,71, 1649 19,71, 19,71, 19,71, 19,71, 1650 19,71, 115,165, 116,166, 110,160, 1651 117,167, 118,168, 120,171, 121,172, 1652 19,72, 19,72, 19,72, 19,72, 1653 19,72, 19,72, 19,72, 19,72, 1654 19,72, 19,72, 19,72, 19,72, 1655 19,72, 19,73, 19,72, 19,72, 1656 19,72, 19,72, 19,72, 19,72, 1657 19,72, 19,72, 19,72, 19,72, 1658 19,72, 19,72, 122,173, 123,174, 1659 125,177, 144,180, 19,72, 146,181, 1660 19,72, 19,72, 19,72, 19,72, 1661 19,72, 19,72, 19,72, 19,72, 1662 19,72, 19,72, 19,72, 19,72, 1663 19,72, 19,72, 19,72, 19,72, 1664 19,72, 19,72, 19,72, 19,72, 1665 19,72, 19,72, 19,72, 19,72, 1666 19,72, 19,72, 26,82, 26,82, 1667 26,82, 26,82, 26,82, 26,82, 1668 26,82, 26,82, 26,82, 26,82, 1669 28,84, 147,182, 28,85, 28,85, 1670 28,85, 28,85, 28,85, 28,85, 1671 28,85, 28,85, 28,85, 28,85, 1672 33,91, 33,91, 33,91, 33,91, 1673 33,91, 33,91, 33,91, 33,91, 1674 33,91, 33,91, 119,169, 28,86, 1675 148,183, 149,184, 151,185, 152,186, 1676 119,170, 33,91, 33,91, 33,91, 1677 33,91, 33,91, 33,91, 33,91, 1678 33,91, 33,91, 33,91, 33,91, 1679 33,91, 33,91, 33,91, 33,91, 1680 33,91, 33,91, 33,91, 33,91, 1681 33,91, 33,91, 33,91, 33,91, 1682 33,91, 33,91, 33,91, 28,86, 1683 153,187, 156,188, 157,189, 33,91, 1684 158,190, 33,91, 33,91, 33,91, 1685 33,91, 33,91, 33,91, 33,91, 1686 33,91, 33,91, 33,91, 33,91, 1687 33,91, 33,91, 33,91, 33,91, 1688 33,91, 33,91, 33,91, 33,91, 1689 33,91, 33,91, 33,91, 33,91, 1690 33,91, 33,91, 33,91, 62,127, 1691 159,191, 66,139, 161,192, 163,193, 1692 164,194, 165,195, 166,196, 62,127, 1693 62,0, 66,139, 66,0, 71,71, 1694 71,71, 71,71, 71,71, 71,71, 1695 71,71, 71,71, 71,71, 71,71, 1696 71,71, 72,72, 72,72, 72,72, 1697 72,72, 72,72, 72,72, 72,72, 1698 72,72, 72,72, 72,72, 167,197, 1699 62,128, 169,198, 170,199, 171,200, 1700 73,72, 73,72, 73,72, 73,72, 1701 73,72, 73,72, 73,72, 73,72, 1702 73,72, 73,72, 62,129, 172,201, 1703 66,139, 173,202, 124,175, 72,72, 1704 174,203, 175,204, 62,127, 176,205, 1705 66,139, 177,206, 73,140, 124,176, 1706 180,208, 181,209, 182,210, 62,127, 1707 183,211, 66,139, 73,72, 184,212, 1708 185,213, 62,127, 188,214, 66,139, 1709 84,84, 84,84, 84,84, 84,84, 1710 84,84, 84,84, 84,84, 84,84, 1711 84,84, 84,84, 129,178, 129,178, 1712 129,178, 129,178, 129,178, 129,178, 1713 129,178, 129,178, 62,130, 189,215, 1714 191,216, 84,86, 192,217, 62,131, 1715 62,132, 193,218, 195,219, 197,220, 1716 62,133, 198,221, 199,222, 201,223, 1717 202,224, 203,225, 204,226, 205,227, 1718 62,134, 206,228, 212,229, 213,230, 1719 62,135, 214,231, 62,136, 215,232, 1720 62,137, 217,233, 62,138, 219,234, 1721 220,235, 86,142, 222,236, 86,142, 1722 224,237, 84,86, 86,143, 86,143, 1723 86,143, 86,143, 86,143, 86,143, 1724 86,143, 86,143, 86,143, 86,143, 1725 138,179, 138,179, 138,179, 138,179, 1726 138,179, 138,179, 138,179, 138,179, 1727 138,179, 138,179, 225,238, 226,239, 1728 227,240, 229,241, 231,242, 232,243, 1729 236,244, 138,179, 138,179, 138,179, 1730 138,179, 138,179, 138,179, 239,245, 1731 240,246, 140,72, 140,72, 140,72, 1732 140,72, 140,72, 140,72, 140,72, 1733 140,72, 140,72, 140,72, 142,143, 1734 142,143, 142,143, 142,143, 142,143, 1735 142,143, 142,143, 142,143, 142,143, 1736 142,143, 241,247, 242,248, 0,0, 1737 0,0, 138,179, 138,179, 138,179, 1738 138,179, 138,179, 138,179, 140,72, 1739 178,207, 178,207, 178,207, 178,207, 1740 178,207, 178,207, 178,207, 178,207, 1741 0,0}; 1742 struct yysvf yysvec[] = { 1743 0, 0, 0, 1744 yycrank+0, 0, 0, 1745 yycrank+0, 0, 0, 1746 yycrank+-1, 0, 0, 1747 yycrank+-95, yysvec+3, 0, 1748 yycrank+-20, 0, 0, 1749 yycrank+-16, yysvec+5, 0, 1750 yycrank+0, 0, 0, 1751 yycrank+0, 0, 0, 1752 yycrank+-87, 0, 0, 1753 yycrank+-22, yysvec+9, 0, 1754 yycrank+0, 0, 0, 1755 yycrank+0, 0, 0, 1756 yycrank+0, 0, yyvstop+1, 1757 yycrank+8, 0, yyvstop+3, 1758 yycrank+0, 0, yyvstop+6, 1759 yycrank+13, 0, yyvstop+8, 1760 yycrank+0, 0, yyvstop+11, 1761 yycrank+-167, 0, yyvstop+14, 1762 yycrank+191, 0, yyvstop+17, 1763 yycrank+28, 0, yyvstop+20, 1764 yycrank+27, 0, yyvstop+22, 1765 yycrank+0, 0, yyvstop+24, 1766 yycrank+29, 0, yyvstop+27, 1767 yycrank+44, 0, yyvstop+29, 1768 yycrank+62, 0, yyvstop+31, 1769 yycrank+266, 0, yyvstop+33, 1770 yycrank+31, 0, yyvstop+35, 1771 yycrank+278, 0, yyvstop+37, 1772 yycrank+0, 0, yyvstop+40, 1773 yycrank+57, 0, yyvstop+43, 1774 yycrank+58, 0, yyvstop+46, 1775 yycrank+60, 0, yyvstop+49, 1776 yycrank+288, 0, yyvstop+52, 1777 yycrank+55, yysvec+33, yyvstop+55, 1778 yycrank+66, yysvec+33, yyvstop+58, 1779 yycrank+75, yysvec+33, yyvstop+61, 1780 yycrank+31, 0, yyvstop+64, 1781 yycrank+0, 0, yyvstop+66, 1782 yycrank+85, 0, yyvstop+69, 1783 yycrank+31, yysvec+33, yyvstop+72, 1784 yycrank+34, yysvec+33, yyvstop+75, 1785 yycrank+42, yysvec+33, yyvstop+78, 1786 yycrank+48, yysvec+33, yyvstop+81, 1787 yycrank+43, yysvec+33, yyvstop+84, 1788 yycrank+49, yysvec+33, yyvstop+87, 1789 yycrank+66, yysvec+33, yyvstop+90, 1790 yycrank+60, yysvec+33, yyvstop+93, 1791 yycrank+64, yysvec+33, yyvstop+96, 1792 yycrank+72, yysvec+33, yyvstop+99, 1793 yycrank+70, yysvec+33, yyvstop+102, 1794 yycrank+58, yysvec+33, yyvstop+105, 1795 yycrank+77, yysvec+33, yyvstop+108, 1796 yycrank+112, yysvec+33, yyvstop+111, 1797 yycrank+69, yysvec+33, yyvstop+114, 1798 yycrank+78, yysvec+33, yyvstop+117, 1799 yycrank+59, 0, yyvstop+120, 1800 yycrank+0, 0, yyvstop+122, 1801 yycrank+0, 0, yyvstop+125, 1802 yycrank+0, 0, yyvstop+128, 1803 yycrank+0, 0, yyvstop+130, 1804 yycrank+0, 0, yyvstop+132, 1805 yycrank+-410, 0, yyvstop+135, 1806 yycrank+0, 0, yyvstop+137, 1807 yycrank+0, 0, yyvstop+139, 1808 yycrank+0, 0, yyvstop+141, 1809 yycrank+-412, 0, yyvstop+144, 1810 yycrank+0, yysvec+14, yyvstop+146, 1811 yycrank+0, 0, yyvstop+148, 1812 yycrank+0, 0, yyvstop+150, 1813 yycrank+-35, yysvec+18, yyvstop+152, 1814 yycrank+375, 0, yyvstop+154, 1815 yycrank+385, yysvec+19, yyvstop+156, 1816 yycrank+400, yysvec+19, yyvstop+158, 1817 yycrank+0, 0, yyvstop+160, 1818 yycrank+0, 0, yyvstop+162, 1819 yycrank+123, 0, yyvstop+164, 1820 yycrank+0, 0, yyvstop+166, 1821 yycrank+0, 0, yyvstop+168, 1822 yycrank+0, 0, yyvstop+170, 1823 yycrank+0, 0, yyvstop+172, 1824 yycrank+0, 0, yyvstop+174, 1825 yycrank+117, yysvec+26, yyvstop+176, 1826 yycrank+0, 0, yyvstop+178, 1827 yycrank+436, 0, yyvstop+180, 1828 yycrank+0, yysvec+28, yyvstop+182, 1829 yycrank+490, 0, 0, 1830 yycrank+0, 0, yyvstop+184, 1831 yycrank+0, 0, yyvstop+186, 1832 yycrank+0, 0, yyvstop+188, 1833 yycrank+0, 0, yyvstop+190, 1834 yycrank+0, yysvec+33, yyvstop+192, 1835 yycrank+114, yysvec+33, yyvstop+194, 1836 yycrank+122, yysvec+33, yyvstop+196, 1837 yycrank+0, yysvec+33, yyvstop+198, 1838 yycrank+0, 0, yyvstop+201, 1839 yycrank+0, 0, yyvstop+203, 1840 yycrank+94, yysvec+33, yyvstop+205, 1841 yycrank+98, yysvec+33, yyvstop+207, 1842 yycrank+90, yysvec+33, yyvstop+209, 1843 yycrank+98, yysvec+33, yyvstop+211, 1844 yycrank+94, yysvec+33, yyvstop+213, 1845 yycrank+0, yysvec+33, yyvstop+215, 1846 yycrank+91, yysvec+33, yyvstop+218, 1847 yycrank+122, yysvec+33, yyvstop+220, 1848 yycrank+98, yysvec+33, yyvstop+222, 1849 yycrank+106, yysvec+33, yyvstop+224, 1850 yycrank+106, yysvec+33, yyvstop+226, 1851 yycrank+111, yysvec+33, yyvstop+228, 1852 yycrank+0, yysvec+33, yyvstop+230, 1853 yycrank+135, yysvec+33, yyvstop+233, 1854 yycrank+120, yysvec+33, yyvstop+236, 1855 yycrank+128, yysvec+33, yyvstop+238, 1856 yycrank+120, yysvec+33, yyvstop+240, 1857 yycrank+117, yysvec+33, yyvstop+242, 1858 yycrank+144, yysvec+33, yyvstop+244, 1859 yycrank+140, yysvec+33, yyvstop+246, 1860 yycrank+136, yysvec+33, yyvstop+248, 1861 yycrank+143, yysvec+33, yyvstop+250, 1862 yycrank+238, yysvec+33, yyvstop+252, 1863 yycrank+140, yysvec+33, yyvstop+254, 1864 yycrank+158, yysvec+33, yyvstop+256, 1865 yycrank+184, yysvec+33, yyvstop+258, 1866 yycrank+168, yysvec+33, yyvstop+260, 1867 yycrank+354, yysvec+33, yyvstop+262, 1868 yycrank+179, yysvec+33, yyvstop+264, 1869 yycrank+0, 0, yyvstop+266, 1870 yycrank+0, 0, yyvstop+268, 1871 yycrank+0, 0, yyvstop+270, 1872 yycrank+446, 0, yyvstop+273, 1873 yycrank+0, 0, yyvstop+276, 1874 yycrank+0, 0, yyvstop+279, 1875 yycrank+0, 0, yyvstop+282, 1876 yycrank+0, 0, yyvstop+285, 1877 yycrank+0, 0, yyvstop+288, 1878 yycrank+0, 0, yyvstop+291, 1879 yycrank+0, 0, yyvstop+294, 1880 yycrank+0, 0, yyvstop+297, 1881 yycrank+500, 0, yyvstop+300, 1882 yycrank+0, 0, yyvstop+302, 1883 yycrank+525, yysvec+19, yyvstop+304, 1884 yycrank+0, 0, yyvstop+307, 1885 yycrank+535, 0, 0, 1886 yycrank+0, yysvec+142, yyvstop+309, 1887 yycrank+212, yysvec+33, yyvstop+311, 1888 yycrank+0, yysvec+33, yyvstop+313, 1889 yycrank+177, yysvec+33, yyvstop+316, 1890 yycrank+228, yysvec+33, yyvstop+318, 1891 yycrank+233, yysvec+33, yyvstop+320, 1892 yycrank+233, yysvec+33, yyvstop+322, 1893 yycrank+0, yysvec+33, yyvstop+324, 1894 yycrank+249, yysvec+33, yyvstop+327, 1895 yycrank+250, yysvec+33, yyvstop+329, 1896 yycrank+264, yysvec+33, yyvstop+331, 1897 yycrank+0, yysvec+33, yyvstop+333, 1898 yycrank+0, yysvec+33, yyvstop+336, 1899 yycrank+282, yysvec+33, yyvstop+339, 1900 yycrank+274, yysvec+33, yyvstop+341, 1901 yycrank+286, yysvec+33, yyvstop+343, 1902 yycrank+311, yysvec+33, yyvstop+345, 1903 yycrank+0, yysvec+33, yyvstop+347, 1904 yycrank+311, yysvec+33, yyvstop+350, 1905 yycrank+0, yysvec+33, yyvstop+352, 1906 yycrank+316, yysvec+33, yyvstop+355, 1907 yycrank+300, yysvec+33, yyvstop+357, 1908 yycrank+307, yysvec+33, yyvstop+359, 1909 yycrank+318, yysvec+33, yyvstop+361, 1910 yycrank+326, yysvec+33, yyvstop+363, 1911 yycrank+0, yysvec+33, yyvstop+365, 1912 yycrank+340, yysvec+33, yyvstop+368, 1913 yycrank+341, yysvec+33, yyvstop+370, 1914 yycrank+331, yysvec+33, yyvstop+372, 1915 yycrank+349, yysvec+33, yyvstop+374, 1916 yycrank+346, yysvec+33, yyvstop+376, 1917 yycrank+348, yysvec+33, yyvstop+379, 1918 yycrank+354, yysvec+33, yyvstop+381, 1919 yycrank+355, yysvec+33, yyvstop+383, 1920 yycrank+361, yysvec+33, yyvstop+385, 1921 yycrank+556, 0, yyvstop+387, 1922 yycrank+0, yysvec+138, yyvstop+389, 1923 yycrank+394, yysvec+33, yyvstop+391, 1924 yycrank+423, yysvec+33, yyvstop+393, 1925 yycrank+367, yysvec+33, yyvstop+395, 1926 yycrank+375, yysvec+33, yyvstop+397, 1927 yycrank+374, yysvec+33, yyvstop+399, 1928 yycrank+364, yysvec+33, yyvstop+401, 1929 yycrank+0, yysvec+33, yyvstop+403, 1930 yycrank+0, yysvec+33, yyvstop+406, 1931 yycrank+366, yysvec+33, yyvstop+409, 1932 yycrank+398, yysvec+33, yyvstop+412, 1933 yycrank+0, yysvec+33, yyvstop+414, 1934 yycrank+384, yysvec+33, yyvstop+417, 1935 yycrank+390, yysvec+33, yyvstop+419, 1936 yycrank+405, yysvec+33, yyvstop+421, 1937 yycrank+0, yysvec+33, yyvstop+423, 1938 yycrank+394, yysvec+33, yyvstop+426, 1939 yycrank+0, yysvec+33, yyvstop+428, 1940 yycrank+397, yysvec+33, yyvstop+431, 1941 yycrank+397, yysvec+33, yyvstop+433, 1942 yycrank+404, yysvec+33, yyvstop+435, 1943 yycrank+0, yysvec+33, yyvstop+437, 1944 yycrank+415, yysvec+33, yyvstop+440, 1945 yycrank+400, yysvec+33, yyvstop+442, 1946 yycrank+416, yysvec+33, yyvstop+444, 1947 yycrank+399, yysvec+33, yyvstop+446, 1948 yycrank+407, yysvec+33, yyvstop+448, 1949 yycrank+420, yysvec+33, yyvstop+450, 1950 yycrank+0, 0, yyvstop+452, 1951 yycrank+0, yysvec+33, yyvstop+454, 1952 yycrank+0, yysvec+33, yyvstop+457, 1953 yycrank+0, yysvec+33, yyvstop+460, 1954 yycrank+0, yysvec+33, yyvstop+463, 1955 yycrank+412, yysvec+33, yyvstop+466, 1956 yycrank+422, yysvec+33, yyvstop+468, 1957 yycrank+420, yysvec+33, yyvstop+470, 1958 yycrank+417, yysvec+33, yyvstop+472, 1959 yycrank+0, yysvec+33, yyvstop+474, 1960 yycrank+425, yysvec+33, yyvstop+477, 1961 yycrank+0, yysvec+33, yyvstop+479, 1962 yycrank+429, yysvec+33, yyvstop+482, 1963 yycrank+422, yysvec+33, yyvstop+485, 1964 yycrank+0, yysvec+33, yyvstop+487, 1965 yycrank+418, yysvec+33, yyvstop+490, 1966 yycrank+0, yysvec+33, yyvstop+492, 1967 yycrank+422, yysvec+33, yyvstop+495, 1968 yycrank+449, yysvec+33, yyvstop+497, 1969 yycrank+458, yysvec+33, yyvstop+499, 1970 yycrank+459, yysvec+33, yyvstop+501, 1971 yycrank+0, yysvec+33, yyvstop+503, 1972 yycrank+444, yysvec+33, yyvstop+506, 1973 yycrank+0, yysvec+33, yyvstop+508, 1974 yycrank+451, yysvec+33, yyvstop+511, 1975 yycrank+462, yysvec+33, yyvstop+513, 1976 yycrank+0, yysvec+33, yyvstop+515, 1977 yycrank+0, yysvec+33, yyvstop+518, 1978 yycrank+0, yysvec+33, yyvstop+521, 1979 yycrank+462, yysvec+33, yyvstop+524, 1980 yycrank+0, yysvec+33, yyvstop+526, 1981 yycrank+0, yysvec+33, yyvstop+529, 1982 yycrank+457, yysvec+33, yyvstop+532, 1983 yycrank+458, yysvec+33, yyvstop+534, 1984 yycrank+492, yysvec+33, yyvstop+536, 1985 yycrank+484, yysvec+33, yyvstop+538, 1986 yycrank+0, yysvec+33, yyvstop+540, 1987 yycrank+0, yysvec+33, yyvstop+543, 1988 yycrank+0, yysvec+33, yyvstop+546, 1989 yycrank+0, yysvec+33, yyvstop+549, 1990 yycrank+0, yysvec+33, yyvstop+552, 1991 yycrank+0, yysvec+33, yyvstop+555, 1992 0, 0, 0}; 1993 struct yywork *yytop = yycrank+611; 1994 struct yysvf *yybgin = yysvec+1; 1995 char yymatch[] = { 1996 0, 1, 1, 1, 1, 1, 1, 1, 1997 1, 9, 10, 1, 1, 1, 1, 1, 1998 1, 1, 1, 1, 1, 1, 1, 1, 1999 1, 1, 1, 1, 1, 1, 1, 1, 2000 9, 1, 1, 1, 1, 1, 1, 1, 2001 1, 1, 1, 1, 1, 1, 1, 1, 2002 48, 48, 48, 48, 48, 48, 48, 48, 2003 56, 56, 1, 1, 1, 1, 1, 1, 2004 1, 65, 65, 65, 65, 65, 65, 71, 2005 71, 71, 71, 71, 71, 71, 71, 71, 2006 71, 71, 71, 71, 71, 71, 71, 71, 2007 71, 71, 71, 1, 1, 1, 1, 71, 2008 1, 65, 65, 65, 65, 65, 65, 71, 2009 71, 71, 71, 71, 71, 71, 71, 71, 2010 71, 71, 71, 71, 71, 71, 71, 71, 2011 71, 71, 71, 1, 1, 1, 1, 1, 2012 1, 1, 1, 1, 1, 1, 1, 1, 2013 1, 1, 1, 1, 1, 1, 1, 1, 2014 1, 1, 1, 1, 1, 1, 1, 1, 2015 1, 1, 1, 1, 1, 1, 1, 1, 2016 1, 1, 1, 1, 1, 1, 1, 1, 2017 1, 1, 1, 1, 1, 1, 1, 1, 2018 1, 1, 1, 1, 1, 1, 1, 1, 2019 1, 1, 1, 1, 1, 1, 1, 1, 2020 1, 1, 1, 1, 1, 1, 1, 1, 2021 1, 1, 1, 1, 1, 1, 1, 1, 2022 1, 1, 1, 1, 1, 1, 1, 1, 2023 1, 1, 1, 1, 1, 1, 1, 1, 2024 1, 1, 1, 1, 1, 1, 1, 1, 2025 1, 1, 1, 1, 1, 1, 1, 1, 2026 1, 1, 1, 1, 1, 1, 1, 1, 2027 1, 1, 1, 1, 1, 1, 1, 1, 2028 0}; 2029 char yyextra[] = { 2030 0,0,0,0,0,0,0,0, 2031 0,0,0,0,0,0,0,0, 2032 0,0,0,0,0,0,0,0, 2033 0,0,0,0,0,0,0,0, 2034 0,0,0,0,0,0,0,0, 2035 0,0,0,0,0,0,0,0, 2036 0,0,0,0,0,0,0,0, 2037 0,0,0,0,0,0,0,0, 2038 0,0,0,0,0,0,0,0, 2039 0,0,0,0,0,0,0,0, 2040 0,0,0,0,0,0,0,0, 2041 0,0,0,0,0,0,0,0, 2042 0,0,0,0,0,0,0,0, 2043 0}; 2044 /* 2045 * CDDL HEADER START 2046 * 2047 * The contents of this file are subject to the terms of the 2048 * Common Development and Distribution License, Version 1.0 only 2049 * (the "License"). You may not use this file except in compliance 2050 * with the License. 2051 * 2052 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2053 * or http://www.opensolaris.org/os/licensing. 2054 * See the License for the specific language governing permissions 2055 * and limitations under the License. 2056 * 2057 * When distributing Covered Code, include this CDDL HEADER in each 2058 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2059 * If applicable, add the following below this CDDL HEADER, with the 2060 * fields enclosed by brackets "[]" replaced with your own identifying 2061 * information: Portions Copyright [yyyy] [name of copyright owner] 2062 * 2063 * CDDL HEADER END 2064 */ 2065 2066 /* Copyright (c) 1989 AT&T */ 2067 /* All Rights Reserved */ 2068 2069 #pragma ident "%Z%%M% %I% %E% SMI" 2070 2071 int yylineno =1; 2072 # define YYU(x) x 2073 # define NLSTATE yyprevious=YYNEWLINE 2074 struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; 2075 char yysbuf[YYLMAX]; 2076 char *yysptr = yysbuf; 2077 int *yyfnd; 2078 extern struct yysvf *yyestate; 2079 int yyprevious = YYNEWLINE; 2080 #if defined(__cplusplus) || defined(__STDC__) 2081 int yylook(void) 2082 #else 2083 yylook() 2084 #endif 2085 { 2086 register struct yysvf *yystate, **lsp; 2087 register struct yywork *yyt; 2088 struct yysvf *yyz; 2089 int yych, yyfirst; 2090 struct yywork *yyr; 2091 # ifdef LEXDEBUG 2092 int debug; 2093 # endif 2094 char *yylastch; 2095 /* start off machines */ 2096 # ifdef LEXDEBUG 2097 debug = 0; 2098 # endif 2099 yyfirst=1; 2100 if (!yymorfg) 2101 yylastch = yytext; 2102 else { 2103 yymorfg=0; 2104 yylastch = yytext+yyleng; 2105 } 2106 for(;;){ 2107 lsp = yylstate; 2108 yyestate = yystate = yybgin; 2109 if (yyprevious==YYNEWLINE) yystate++; 2110 for (;;){ 2111 # ifdef LEXDEBUG 2112 if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); 2113 # endif 2114 yyt = yystate->yystoff; 2115 if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ 2116 yyz = yystate->yyother; 2117 if(yyz == 0)break; 2118 if(yyz->yystoff == yycrank)break; 2119 } 2120 #ifndef __cplusplus 2121 *yylastch++ = yych = input(); 2122 #else 2123 *yylastch++ = yych = lex_input(); 2124 #endif 2125 #ifdef YYISARRAY 2126 if(yylastch > &yytext[YYLMAX]) { 2127 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 2128 exit(1); 2129 } 2130 #else 2131 if (yylastch >= &yytext[ yytextsz ]) { 2132 int x = yylastch - yytext; 2133 2134 yytextsz += YYTEXTSZINC; 2135 if (yytext == yy_tbuf) { 2136 yytext = (char *) malloc(yytextsz); 2137 memcpy(yytext, yy_tbuf, sizeof (yy_tbuf)); 2138 } 2139 else 2140 yytext = (char *) realloc(yytext, yytextsz); 2141 if (!yytext) { 2142 fprintf(yyout, 2143 "Cannot realloc yytext\n"); 2144 exit(1); 2145 } 2146 yylastch = yytext + x; 2147 } 2148 #endif 2149 yyfirst=0; 2150 tryagain: 2151 # ifdef LEXDEBUG 2152 if(debug){ 2153 fprintf(yyout,"char "); 2154 allprint(yych); 2155 putchar('\n'); 2156 } 2157 # endif 2158 yyr = yyt; 2159 if ( (uintptr_t)yyt > (uintptr_t)yycrank){ 2160 yyt = yyr + yych; 2161 if (yyt <= yytop && yyt->verify+yysvec == yystate){ 2162 if(yyt->advance+yysvec == YYLERR) /* error transitions */ 2163 {unput(*--yylastch);break;} 2164 *lsp++ = yystate = yyt->advance+yysvec; 2165 if(lsp > &yylstate[YYLMAX]) { 2166 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 2167 exit(1); 2168 } 2169 goto contin; 2170 } 2171 } 2172 # ifdef YYOPTIM 2173 else if((uintptr_t)yyt < (uintptr_t)yycrank) { /* r < yycrank */ 2174 yyt = yyr = yycrank+(yycrank-yyt); 2175 # ifdef LEXDEBUG 2176 if(debug)fprintf(yyout,"compressed state\n"); 2177 # endif 2178 yyt = yyt + yych; 2179 if(yyt <= yytop && yyt->verify+yysvec == yystate){ 2180 if(yyt->advance+yysvec == YYLERR) /* error transitions */ 2181 {unput(*--yylastch);break;} 2182 *lsp++ = yystate = yyt->advance+yysvec; 2183 if(lsp > &yylstate[YYLMAX]) { 2184 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 2185 exit(1); 2186 } 2187 goto contin; 2188 } 2189 yyt = yyr + YYU(yymatch[yych]); 2190 # ifdef LEXDEBUG 2191 if(debug){ 2192 fprintf(yyout,"try fall back character "); 2193 allprint(YYU(yymatch[yych])); 2194 putchar('\n'); 2195 } 2196 # endif 2197 if(yyt <= yytop && yyt->verify+yysvec == yystate){ 2198 if(yyt->advance+yysvec == YYLERR) /* error transition */ 2199 {unput(*--yylastch);break;} 2200 *lsp++ = yystate = yyt->advance+yysvec; 2201 if(lsp > &yylstate[YYLMAX]) { 2202 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 2203 exit(1); 2204 } 2205 goto contin; 2206 } 2207 } 2208 if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ 2209 # ifdef LEXDEBUG 2210 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); 2211 # endif 2212 goto tryagain; 2213 } 2214 # endif 2215 else 2216 {unput(*--yylastch);break;} 2217 contin: 2218 # ifdef LEXDEBUG 2219 if(debug){ 2220 fprintf(yyout,"state %d char ",yystate-yysvec-1); 2221 allprint(yych); 2222 putchar('\n'); 2223 } 2224 # endif 2225 ; 2226 } 2227 # ifdef LEXDEBUG 2228 if(debug){ 2229 fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); 2230 allprint(yych); 2231 putchar('\n'); 2232 } 2233 # endif 2234 while (lsp-- > yylstate){ 2235 *yylastch-- = 0; 2236 if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ 2237 yyolsp = lsp; 2238 if(yyextra[*yyfnd]){ /* must backup */ 2239 while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ 2240 lsp--; 2241 unput(*yylastch--); 2242 } 2243 } 2244 yyprevious = YYU(*yylastch); 2245 yylsp = lsp; 2246 yyleng = yylastch-yytext+1; 2247 yytext[yyleng] = 0; 2248 # ifdef LEXDEBUG 2249 if(debug){ 2250 fprintf(yyout,"\nmatch "); 2251 sprint(yytext); 2252 fprintf(yyout," action %d\n",*yyfnd); 2253 } 2254 # endif 2255 return(*yyfnd++); 2256 } 2257 unput(*yylastch); 2258 } 2259 if (yytext[0] == 0 /* && feof(yyin) */) 2260 { 2261 yysptr=yysbuf; 2262 return(0); 2263 } 2264 #ifndef __cplusplus 2265 yyprevious = yytext[0] = input(); 2266 if (yyprevious>0) 2267 output(yyprevious); 2268 #else 2269 yyprevious = yytext[0] = lex_input(); 2270 if (yyprevious>0) 2271 lex_output(yyprevious); 2272 #endif 2273 yylastch=yytext; 2274 # ifdef LEXDEBUG 2275 if(debug)putchar('\n'); 2276 # endif 2277 } 2278 } 2279 #if defined(__cplusplus) || defined(__STDC__) 2280 int yyback(int *p, int m) 2281 #else 2282 yyback(p, m) 2283 int *p; 2284 #endif 2285 { 2286 if (p==0) return(0); 2287 while (*p) { 2288 if (*p++ == m) 2289 return(1); 2290 } 2291 return(0); 2292 } 2293 /* the following are only used in the lex library */ 2294 #if defined(__cplusplus) || defined(__STDC__) 2295 int yyinput(void) 2296 #else 2297 yyinput() 2298 #endif 2299 { 2300 #ifndef __cplusplus 2301 return(input()); 2302 #else 2303 return(lex_input()); 2304 #endif 2305 } 2306 #if defined(__cplusplus) || defined(__STDC__) 2307 void yyoutput(int c) 2308 #else 2309 yyoutput(c) 2310 int c; 2311 #endif 2312 { 2313 #ifndef __cplusplus 2314 output(c); 2315 #else 2316 lex_output(c); 2317 #endif 2318 } 2319 #if defined(__cplusplus) || defined(__STDC__) 2320 void yyunput(int c) 2321 #else 2322 yyunput(c) 2323 int c; 2324 #endif 2325 { 2326 unput(c); 2327 } 2328