1 #ifndef EUC 2 #define EUC 3 #endif 4 #include <stdio.h> 5 #include <stdlib.h> 6 #include <inttypes.h> 7 #include <widec.h> 8 #include <limits.h> 9 #include <sys/euc.h> 10 #define YYLEX_E 1 11 #define YYTEXT yywtext 12 #define YYLENG yywleng 13 #define YYINPUT yywinput 14 #define YYOUTPUT yywoutput 15 #define YYUNPUT yywunput 16 # define U(x) x 17 # define NLSTATE yyprevious=YYNEWLINE 18 # define BEGIN yybgin = yysvec + 1 + 19 # define INITIAL 0 20 # define YYLERR yysvec 21 # define YYSTATE (yyestate-yysvec-1) 22 # define YYOPTIM 1 23 # ifndef YYLMAX 24 # define YYLMAX BUFSIZ 25 # endif 26 #ifndef __cplusplus 27 # define output(c) (void)putc(c,yyout) 28 #else 29 # define lex_output(c) (void)putc(c,yyout) 30 #endif 31 32 #if defined(__cplusplus) || defined(__STDC__) 33 34 #if defined(__cplusplus) && defined(__EXTERN_C__) 35 extern "C" { 36 #endif 37 int yyback(int *, int); 38 int yyinput(void); 39 int yylook(void); 40 void yyoutput(int); 41 int yyracc(int); 42 int yyreject(void); 43 void yyunput(int); 44 int yylex(void); 45 #ifdef YYLEX_E 46 void yywoutput(wchar_t); 47 wchar_t yywinput(void); 48 void yywunput(wchar_t); 49 #endif 50 #ifndef yyless 51 int yyless(int); 52 #endif 53 #ifndef yywrap 54 int yywrap(void); 55 #endif 56 #ifdef LEXDEBUG 57 void allprint(char); 58 void sprint(char *); 59 #endif 60 #if defined(__cplusplus) && defined(__EXTERN_C__) 61 } 62 #endif 63 64 #ifdef __cplusplus 65 extern "C" { 66 #endif 67 void exit(int); 68 #ifdef __cplusplus 69 } 70 #endif 71 72 #endif 73 # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} 74 # define yymore() (yymorfg=1) 75 #ifndef __cplusplus 76 # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) 77 #else 78 # define lex_input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) 79 #endif 80 #define ECHO fprintf(yyout, "%s",yytext) 81 # define REJECT { nstr = yyreject_e(); goto yyfussy;} 82 int yyleng; 83 size_t yywleng; 84 #define YYISARRAY 85 unsigned char yytext[YYLMAX*MB_LEN_MAX]; 86 wchar_t yywtext[YYLMAX]; 87 int yymorfg; 88 extern wchar_t *yysptr, yysbuf[]; 89 int yytchar; 90 FILE *yyin = {stdin}, *yyout = {stdout}; 91 extern int yylineno; 92 struct yysvf { 93 struct yywork *yystoff; 94 struct yysvf *yyother; 95 int *yystops;}; 96 struct yysvf *yyestate; 97 extern struct yysvf yysvec[], *yybgin; 98 99 # line 3 "fsdb_lex.l" 100 /* 101 * CDDL HEADER START 102 * 103 * The contents of this file are subject to the terms of the 104 * Common Development and Distribution License (the "License"). 105 * You may not use this file except in compliance with the License. 106 * 107 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 108 * or http://www.opensolaris.org/os/licensing. 109 * See the License for the specific language governing permissions 110 * and limitations under the License. 111 * 112 * When distributing Covered Code, include this CDDL HEADER in each 113 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 114 * If applicable, add the following below this CDDL HEADER, with the 115 * fields enclosed by brackets "[]" replaced with your own identifying 116 * information: Portions Copyright [yyyy] [name of copyright owner] 117 * 118 * CDDL HEADER END 119 * 120 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 121 * Use is subject to license terms. 122 */ 123 124 #pragma ident "%Z%%M% %I% %E% SMI" 125 126 #include <locale.h> 127 #include "y.tab.h" 128 129 extern int base; 130 131 int cmd_no = 1; 132 133 # define YYNEWLINE 10 134 int yylex(){ 135 int nstr; extern int yyprevious; 136 #ifdef __cplusplus 137 /* to avoid CC and lint complaining yyfussy not being used ...*/ 138 static int __lex_hack = 0; 139 if (__lex_hack) goto yyfussy; 140 #endif 141 while((nstr = yylook()) >= 0) 142 yyfussy: switch(nstr){ 143 case 0: 144 if(yywrap()) return(0); break; 145 case 1: 146 147 # line 43 "fsdb_lex.l" 148 { cmd_no++; return NL; } 149 break; 150 case 2: 151 152 # line 44 "fsdb_lex.l" 153 { return DOT; } 154 break; 155 case 3: 156 157 # line 46 "fsdb_lex.l" 158 { return BASE; } 159 break; 160 case 4: 161 162 # line 47 "fsdb_lex.l" 163 { return BASE; } 164 break; 165 case 5: 166 167 # line 48 "fsdb_lex.l" 168 { return BLOCK; } 169 break; 170 case 6: 171 172 # line 49 "fsdb_lex.l" 173 { return CD; } 174 break; 175 case 7: 176 177 # line 50 "fsdb_lex.l" 178 { return CD; } 179 break; 180 case 8: 181 182 # line 51 "fsdb_lex.l" 183 { return DIRECTORY; } 184 break; 185 case 9: 186 187 # line 52 "fsdb_lex.l" 188 { return TFILE; } 189 break; 190 case 10: 191 192 # line 53 "fsdb_lex.l" 193 { return FIND; } 194 break; 195 case 11: 196 197 # line 54 "fsdb_lex.l" 198 { return FIND; } 199 break; 200 case 12: 201 202 # line 55 "fsdb_lex.l" 203 { return FILL; } 204 break; 205 case 13: 206 207 # line 56 "fsdb_lex.l" 208 { return INODE; } 209 break; 210 case 14: 211 212 # line 57 "fsdb_lex.l" 213 { return LS; } 214 break; 215 case 15: 216 217 # line 58 "fsdb_lex.l" 218 { return LS; } 219 break; 220 case 16: 221 222 # line 59 "fsdb_lex.l" 223 { return OVERRIDE; } 224 break; 225 case 17: 226 227 # line 60 "fsdb_lex.l" 228 { return OVERRIDE; } 229 break; 230 case 18: 231 232 # line 61 "fsdb_lex.l" 233 { return PROMPT; } 234 break; 235 case 19: 236 237 # line 62 "fsdb_lex.l" 238 { return PROMPT; } 239 break; 240 case 20: 241 242 # line 63 "fsdb_lex.l" 243 { return PWD; } 244 break; 245 case 21: 246 247 # line 64 "fsdb_lex.l" 248 { return PWD; } 249 break; 250 case 22: 251 252 # line 65 "fsdb_lex.l" 253 { return QUIT; } 254 break; 255 case 23: 256 257 # line 66 "fsdb_lex.l" 258 { return QUIT; } 259 break; 260 case 24: 261 262 # line 67 "fsdb_lex.l" 263 { return TAG; } 264 break; 265 case 25: 266 267 # line 68 "fsdb_lex.l" 268 { return BANG; } 269 break; 270 case 26: 271 272 # line 69 "fsdb_lex.l" 273 { return BANG; } 274 break; 275 case 27: 276 277 # line 72 "fsdb_lex.l" 278 { return AVD; } 279 break; 280 case 28: 281 282 # line 73 "fsdb_lex.l" 283 { return MVDS; } 284 break; 285 case 29: 286 287 # line 74 "fsdb_lex.l" 288 { return RVDS; } 289 break; 290 case 30: 291 292 # line 75 "fsdb_lex.l" 293 { return INTS; } 294 break; 295 case 31: 296 297 # line 76 "fsdb_lex.l" 298 { return FSDS; } 299 break; 300 case 32: 301 302 # line 77 "fsdb_lex.l" 303 { return ROOT; } 304 break; 305 case 33: 306 307 # line 79 "fsdb_lex.l" 308 { return ATTZ; } 309 break; 310 case 34: 311 312 # line 80 "fsdb_lex.l" 313 { return ATYE; } 314 break; 315 case 35: 316 317 # line 81 "fsdb_lex.l" 318 { return ATMO; } 319 break; 320 case 36: 321 322 # line 82 "fsdb_lex.l" 323 { return ATDA; } 324 break; 325 case 37: 326 327 # line 83 "fsdb_lex.l" 328 { return ATHO; } 329 break; 330 case 38: 331 332 # line 84 "fsdb_lex.l" 333 { return ATMI; } 334 break; 335 case 39: 336 337 # line 85 "fsdb_lex.l" 338 { return ATSE; } 339 break; 340 case 40: 341 342 # line 86 "fsdb_lex.l" 343 { return ATCE; } 344 break; 345 case 41: 346 347 # line 87 "fsdb_lex.l" 348 { return ATHU; } 349 break; 350 case 42: 351 352 # line 88 "fsdb_lex.l" 353 { return ATMIC; } 354 break; 355 case 43: 356 357 # line 90 "fsdb_lex.l" 358 { return CTTZ; } 359 break; 360 case 44: 361 362 # line 91 "fsdb_lex.l" 363 { return CTYE; } 364 break; 365 case 45: 366 367 # line 92 "fsdb_lex.l" 368 { return CTMO; } 369 break; 370 case 46: 371 372 # line 93 "fsdb_lex.l" 373 { return CTDA; } 374 break; 375 case 47: 376 377 # line 94 "fsdb_lex.l" 378 { return CTHO; } 379 break; 380 case 48: 381 382 # line 95 "fsdb_lex.l" 383 { return CTMI; } 384 break; 385 case 49: 386 387 # line 96 "fsdb_lex.l" 388 { return CTSE; } 389 break; 390 case 50: 391 392 # line 97 "fsdb_lex.l" 393 { return CTCE; } 394 break; 395 case 51: 396 397 # line 98 "fsdb_lex.l" 398 { return CTHU; } 399 break; 400 case 52: 401 402 # line 99 "fsdb_lex.l" 403 { return CTMIC; } 404 break; 405 case 53: 406 407 # line 101 "fsdb_lex.l" 408 { return MTTZ; } 409 break; 410 case 54: 411 412 # line 102 "fsdb_lex.l" 413 { return MTYE; } 414 break; 415 case 55: 416 417 # line 103 "fsdb_lex.l" 418 { return MTMO; } 419 break; 420 case 56: 421 422 # line 104 "fsdb_lex.l" 423 { return MTDA; } 424 break; 425 case 57: 426 427 # line 105 "fsdb_lex.l" 428 { return MTHO; } 429 break; 430 case 58: 431 432 # line 106 "fsdb_lex.l" 433 { return MTMI; } 434 break; 435 case 59: 436 437 # line 107 "fsdb_lex.l" 438 { return MTSE; } 439 break; 440 case 60: 441 442 # line 108 "fsdb_lex.l" 443 { return MTCE; } 444 break; 445 case 61: 446 447 # line 109 "fsdb_lex.l" 448 { return MTHU; } 449 break; 450 case 62: 451 452 # line 110 "fsdb_lex.l" 453 { return MTMIC; } 454 break; 455 case 63: 456 457 # line 113 "fsdb_lex.l" 458 { return GID; } 459 break; 460 case 64: 461 462 # line 114 "fsdb_lex.l" 463 { return LN; } 464 break; 465 case 65: 466 467 # line 115 "fsdb_lex.l" 468 { return MD; } 469 break; 470 case 66: 471 472 # line 116 "fsdb_lex.l" 473 { return MAJ; } 474 break; 475 case 67: 476 477 # line 117 "fsdb_lex.l" 478 { return MIO; } 479 break; 480 case 68: 481 482 # line 118 "fsdb_lex.l" 483 { return NM; } 484 break; 485 case 69: 486 487 # line 119 "fsdb_lex.l" 488 { return SZ; } 489 break; 490 case 70: 491 492 # line 120 "fsdb_lex.l" 493 { return UID; } 494 break; 495 case 71: 496 497 # line 121 "fsdb_lex.l" 498 { return UNIQ; } 499 break; 500 case 72: 501 502 # line 124 "fsdb_lex.l" 503 { yylval.strval = yytext; return WORD; } 504 break; 505 case 73: 506 507 # line 126 "fsdb_lex.l" 508 { return yytext[0]; } 509 break; 510 case -1: 511 break; 512 default: 513 (void)fprintf(yyout,"bad switch yylook %d",nstr); 514 } return(0); } 515 /* end of yylex */ 516 517 # line 129 "fsdb_lex.l" 518 519 void 520 yyerror() 521 { 522 fprintf(stderr, 523 gettext("Syntax error line : %d token : %s \n"), 524 cmd_no, yytext); 525 } 526 527 /* 528 :{WS}*fsds { return FSDS; } 529 :{WS}*root { return ROOT; } 530 */ 531 int yyvstop[] = { 532 0, 533 534 73, 535 0, 536 537 73, 538 0, 539 540 1, 541 0, 542 543 72, 544 73, 545 0, 546 547 2, 548 72, 549 73, 550 0, 551 552 73, 553 0, 554 555 73, 556 0, 557 558 73, 559 0, 560 561 73, 562 0, 563 564 72, 565 0, 566 567 26, 568 0, 569 570 64, 571 0, 572 573 65, 574 0, 575 576 68, 577 0, 578 579 69, 580 0, 581 582 25, 583 0, 584 585 7, 586 0, 587 588 15, 589 0, 590 591 27, 592 0, 593 594 63, 595 0, 596 597 66, 598 0, 599 600 67, 601 0, 602 603 24, 604 0, 605 606 70, 607 0, 608 609 6, 610 0, 611 612 14, 613 0, 614 615 21, 616 0, 617 618 40, 619 0, 620 621 36, 622 0, 623 624 37, 625 0, 626 627 41, 628 0, 629 630 38, 631 0, 632 633 35, 634 0, 635 636 39, 637 0, 638 639 33, 640 0, 641 642 34, 643 0, 644 645 49, 646 0, 647 648 50, 649 0, 650 651 46, 652 0, 653 654 47, 655 0, 656 657 51, 658 0, 659 660 48, 661 0, 662 663 45, 664 0, 665 666 43, 667 0, 668 669 44, 670 0, 671 672 9, 673 0, 674 675 12, 676 0, 677 678 31, 679 0, 680 681 30, 682 0, 683 684 60, 685 0, 686 687 56, 688 0, 689 690 57, 691 0, 692 693 61, 694 0, 695 696 58, 697 0, 698 699 55, 700 0, 701 702 59, 703 0, 704 705 53, 706 0, 707 708 54, 709 0, 710 711 28, 712 0, 713 714 32, 715 0, 716 717 29, 718 0, 719 720 71, 721 0, 722 723 20, 724 0, 725 726 4, 727 0, 728 729 11, 730 0, 731 732 23, 733 0, 734 735 42, 736 0, 737 738 5, 739 0, 740 741 52, 742 0, 743 744 13, 745 0, 746 747 62, 748 0, 749 750 3, 751 0, 752 753 10, 754 0, 755 756 22, 757 0, 758 759 19, 760 0, 761 762 18, 763 0, 764 765 17, 766 0, 767 768 8, 769 0, 770 771 16, 772 0, 773 0}; 774 # define YYTYPE unsigned char 775 struct yywork { YYTYPE verify, advance; } yycrank[] = { 776 0,0, 0,0, 1,3, 1,4, 777 2,10, 1,5, 0,0, 0,0, 778 4,12, 0,0, 0,0, 1,6, 779 4,12, 1,7, 2,7, 0,0, 780 0,0, 0,0, 0,0, 1,8, 781 2,11, 1,9, 2,9, 0,0, 782 4,13, 6,0, 6,0, 6,0, 783 6,0, 6,0, 6,0, 6,0, 784 6,0, 6,0, 6,14, 6,0, 785 28,64, 6,0, 0,0, 18,47, 786 0,0, 6,0, 6,0, 6,0, 787 6,0, 6,0, 13,13, 19,49, 788 21,52, 6,0, 13,13, 6,0, 789 7,0, 7,0, 7,0, 7,0, 790 7,0, 7,0, 7,0, 7,0, 791 7,0, 9,30, 7,0, 10,32, 792 7,0, 9,30, 17,46, 10,32, 793 7,0, 7,0, 7,0, 7,0, 794 7,0, 18,48, 13,17, 20,50, 795 7,0, 9,31, 7,0, 10,33, 796 16,44, 22,53, 13,43, 23,54, 797 16,45, 25,60, 26,61, 27,63, 798 11,34, 29,65, 36,78, 37,79, 799 11,34, 35,35, 11,35, 20,51, 800 38,80, 35,35, 39,54, 29,66, 801 26,62, 6,0, 6,0, 6,0, 802 6,0, 6,0, 6,0, 6,0, 803 39,81, 8,15, 40,82, 24,55, 804 36,46, 8,15, 42,85, 41,83, 805 11,36, 24,56, 11,37, 43,86, 806 45,94, 46,95, 47,96, 49,103, 807 11,38, 41,84, 50,104, 24,57, 808 7,0, 7,0, 7,0, 7,0, 809 7,0, 7,0, 7,0, 8,16, 810 11,39, 8,17, 51,105, 8,18, 811 52,106, 8,19, 11,40, 55,109, 812 11,41, 8,20, 11,42, 8,21, 813 53,107, 24,58, 57,110, 8,22, 814 59,118, 24,59, 61,119, 62,120, 815 64,121, 8,23, 53,108, 8,24, 816 65,122, 8,25, 66,123, 67,67, 817 68,124, 69,125, 70,126, 67,67, 818 71,127, 8,26, 72,128, 8,27, 819 74,131, 8,28, 75,79, 8,29, 820 14,0, 14,0, 14,0, 14,0, 821 14,0, 14,0, 14,0, 14,0, 822 14,0, 31,31, 14,0, 73,129, 823 14,0, 31,31, 76,132, 31,67, 824 14,0, 14,0, 14,0, 14,0, 825 14,0, 73,130, 77,81, 78,133, 826 14,0, 80,104, 14,0, 82,135, 827 44,87, 80,134, 44,88, 83,136, 828 84,137, 85,138, 86,139, 87,140, 829 33,33, 31,68, 44,89, 31,69, 830 33,33, 88,141, 33,35, 91,146, 831 89,142, 31,70, 90,144, 92,147, 832 44,90, 93,148, 95,149, 96,150, 833 97,151, 98,152, 101,157, 34,34, 834 89,143, 31,71, 90,145, 34,34, 835 44,91, 34,35, 44,92, 31,72, 836 33,36, 31,73, 33,75, 31,74, 837 102,158, 103,159, 44,93, 105,162, 838 33,76, 107,163, 108,164, 111,165, 839 14,0, 14,0, 14,0, 14,0, 840 14,0, 14,0, 14,0, 34,36, 841 33,77, 34,37, 48,97, 58,111, 842 48,98, 58,112, 33,40, 34,38, 843 33,41, 99,153, 33,42, 112,166, 844 48,99, 58,113, 100,155, 115,171, 845 104,160, 116,172, 117,173, 34,39, 846 113,167, 99,154, 48,100, 58,114, 847 118,174, 34,40, 100,156, 34,41, 848 114,169, 34,42, 104,161, 119,175, 849 113,168, 120,176, 121,121, 58,115, 850 48,101, 58,116, 121,121, 123,177, 851 114,170, 124,178, 126,179, 128,180, 852 48,102, 58,117, 129,181, 130,182, 853 131,183, 132,139, 133,184, 134,185, 854 135,186, 136,187, 137,137, 138,188, 855 139,161, 144,189, 137,137, 149,190, 856 155,191, 159,192, 160,160, 161,161, 857 163,193, 169,194, 160,160, 161,161, 858 178,195, 179,196, 180,197, 181,198, 859 182,182, 183,199, 184,184, 185,185, 860 182,182, 186,200, 184,184, 185,185, 861 187,201, 188,188, 190,190, 192,202, 862 193,193, 188,188, 190,190, 195,195, 863 193,193, 196,196, 197,203, 195,195, 864 198,204, 196,196, 199,199, 200,205, 865 201,206, 202,207, 199,199, 203,208, 866 204,209, 205,210, 206,206, 207,211, 867 208,212, 209,209, 206,206, 210,213, 868 211,214, 209,209, 212,215, 213,213, 869 214,214, 215,215, 0,0, 213,213, 870 214,214, 215,215, 0,0, 0,0, 871 0,0}; 872 struct yysvf yysvec[] = { 873 0, 0, 0, 874 yycrank+-1, 0, 0, 875 yycrank+-2, yysvec+1, 0, 876 yycrank+0, 0, yyvstop+1, 877 yycrank+6, 0, yyvstop+3, 878 yycrank+0, 0, yyvstop+5, 879 yycrank+-24, 0, yyvstop+7, 880 yycrank+-51, yysvec+6, yyvstop+10, 881 yycrank+107, 0, yyvstop+14, 882 yycrank+59, 0, yyvstop+16, 883 yycrank+61, 0, yyvstop+18, 884 yycrank+86, yysvec+8, yyvstop+20, 885 yycrank+0, yysvec+4, 0, 886 yycrank+44, 0, 0, 887 yycrank+-175, yysvec+6, yyvstop+22, 888 yycrank+0, yysvec+8, 0, 889 yycrank+14, 0, 0, 890 yycrank+16, 0, 0, 891 yycrank+7, 0, 0, 892 yycrank+3, 0, 0, 893 yycrank+31, 0, 0, 894 yycrank+4, 0, 0, 895 yycrank+27, 0, 0, 896 yycrank+29, 0, 0, 897 yycrank+83, 0, 0, 898 yycrank+33, 0, 0, 899 yycrank+30, 0, 0, 900 yycrank+11, 0, 0, 901 yycrank+8, 0, 0, 902 yycrank+45, 0, 0, 903 yycrank+0, yysvec+9, 0, 904 yycrank+183, 0, 0, 905 yycrank+0, yysvec+10, 0, 906 yycrank+210, 0, 0, 907 yycrank+229, yysvec+8, 0, 908 yycrank+91, 0, yyvstop+24, 909 yycrank+62, 0, 0, 910 yycrank+57, yysvec+18, 0, 911 yycrank+52, yysvec+20, 0, 912 yycrank+44, 0, 0, 913 yycrank+40, 0, 0, 914 yycrank+53, 0, 0, 915 yycrank+46, 0, 0, 916 yycrank+75, 0, 0, 917 yycrank+172, 0, 0, 918 yycrank+86, 0, 0, 919 yycrank+65, 0, 0, 920 yycrank+56, 0, 0, 921 yycrank+230, 0, 0, 922 yycrank+61, 0, 0, 923 yycrank+76, 0, 0, 924 yycrank+104, 0, 0, 925 yycrank+106, 0, 0, 926 yycrank+92, 0, 0, 927 yycrank+0, 0, yyvstop+26, 928 yycrank+97, 0, 0, 929 yycrank+0, 0, yyvstop+28, 930 yycrank+96, 0, 0, 931 yycrank+231, 0, 0, 932 yycrank+118, 0, 0, 933 yycrank+0, 0, yyvstop+30, 934 yycrank+98, 0, 0, 935 yycrank+121, 0, 0, 936 yycrank+0, 0, yyvstop+32, 937 yycrank+116, 0, 0, 938 yycrank+126, 0, 0, 939 yycrank+118, 0, 0, 940 yycrank+161, 0, yyvstop+34, 941 yycrank+136, 0, 0, 942 yycrank+131, 0, 0, 943 yycrank+122, 0, 0, 944 yycrank+104, 0, 0, 945 yycrank+100, 0, 0, 946 yycrank+125, 0, 0, 947 yycrank+104, 0, 0, 948 yycrank+140, 0, 0, 949 yycrank+146, 0, 0, 950 yycrank+134, 0, 0, 951 yycrank+135, 0, 0, 952 yycrank+0, 0, yyvstop+36, 953 yycrank+151, 0, 0, 954 yycrank+0, 0, yyvstop+38, 955 yycrank+167, 0, 0, 956 yycrank+151, 0, 0, 957 yycrank+174, 0, 0, 958 yycrank+165, 0, 0, 959 yycrank+160, 0, 0, 960 yycrank+175, 0, 0, 961 yycrank+189, 0, 0, 962 yycrank+164, 0, 0, 963 yycrank+178, 0, 0, 964 yycrank+183, 0, 0, 965 yycrank+147, 0, 0, 966 yycrank+189, 0, 0, 967 yycrank+0, 0, yyvstop+40, 968 yycrank+194, 0, 0, 969 yycrank+191, 0, 0, 970 yycrank+192, 0, 0, 971 yycrank+201, 0, 0, 972 yycrank+213, 0, 0, 973 yycrank+230, 0, 0, 974 yycrank+154, 0, 0, 975 yycrank+208, 0, 0, 976 yycrank+209, 0, 0, 977 yycrank+240, 0, 0, 978 yycrank+183, 0, 0, 979 yycrank+0, 0, yyvstop+42, 980 yycrank+215, 0, 0, 981 yycrank+186, 0, 0, 982 yycrank+0, 0, yyvstop+44, 983 yycrank+0, 0, yyvstop+46, 984 yycrank+215, 0, 0, 985 yycrank+243, 0, 0, 986 yycrank+224, 0, 0, 987 yycrank+244, 0, 0, 988 yycrank+239, 0, 0, 989 yycrank+201, 0, 0, 990 yycrank+242, 0, 0, 991 yycrank+220, 0, 0, 992 yycrank+225, 0, 0, 993 yycrank+229, 0, 0, 994 yycrank+292, 0, yyvstop+48, 995 yycrank+0, 0, yyvstop+50, 996 yycrank+239, 0, 0, 997 yycrank+237, 0, 0, 998 yycrank+0, 0, yyvstop+52, 999 yycrank+248, 0, 0, 1000 yycrank+0, 0, yyvstop+54, 1001 yycrank+267, 0, 0, 1002 yycrank+250, 0, 0, 1003 yycrank+273, 0, 0, 1004 yycrank+264, 0, 0, 1005 yycrank+259, yysvec+80, 0, 1006 yycrank+274, 0, 0, 1007 yycrank+277, 0, 0, 1008 yycrank+250, 0, 0, 1009 yycrank+261, 0, 0, 1010 yycrank+312, 0, yyvstop+56, 1011 yycrank+249, 0, 0, 1012 yycrank+266, 0, 0, 1013 yycrank+0, 0, yyvstop+58, 1014 yycrank+0, 0, yyvstop+60, 1015 yycrank+0, 0, yyvstop+62, 1016 yycrank+0, 0, yyvstop+64, 1017 yycrank+285, 0, yyvstop+66, 1018 yycrank+0, 0, yyvstop+68, 1019 yycrank+0, 0, yyvstop+70, 1020 yycrank+0, 0, yyvstop+72, 1021 yycrank+0, 0, yyvstop+74, 1022 yycrank+271, 0, 0, 1023 yycrank+0, 0, yyvstop+76, 1024 yycrank+0, 0, yyvstop+78, 1025 yycrank+0, 0, yyvstop+80, 1026 yycrank+0, 0, yyvstop+82, 1027 yycrank+0, 0, yyvstop+84, 1028 yycrank+288, 0, yyvstop+86, 1029 yycrank+0, 0, yyvstop+88, 1030 yycrank+0, 0, yyvstop+90, 1031 yycrank+0, 0, yyvstop+92, 1032 yycrank+289, 0, 0, 1033 yycrank+320, 0, yyvstop+94, 1034 yycrank+321, 0, yyvstop+96, 1035 yycrank+0, 0, yyvstop+98, 1036 yycrank+288, 0, 0, 1037 yycrank+0, 0, yyvstop+100, 1038 yycrank+0, 0, yyvstop+102, 1039 yycrank+0, 0, yyvstop+104, 1040 yycrank+0, 0, yyvstop+106, 1041 yycrank+0, 0, yyvstop+108, 1042 yycrank+293, 0, yyvstop+110, 1043 yycrank+0, 0, yyvstop+112, 1044 yycrank+0, 0, yyvstop+114, 1045 yycrank+0, 0, yyvstop+116, 1046 yycrank+0, 0, yyvstop+118, 1047 yycrank+0, 0, yyvstop+120, 1048 yycrank+0, 0, yyvstop+122, 1049 yycrank+0, 0, yyvstop+124, 1050 yycrank+0, 0, yyvstop+126, 1051 yycrank+292, 0, 0, 1052 yycrank+295, 0, 0, 1053 yycrank+268, 0, 0, 1054 yycrank+279, 0, 0, 1055 yycrank+330, 0, yyvstop+128, 1056 yycrank+267, 0, 0, 1057 yycrank+332, 0, yyvstop+130, 1058 yycrank+333, 0, yyvstop+132, 1059 yycrank+275, 0, 0, 1060 yycrank+282, 0, 0, 1061 yycrank+339, 0, yyvstop+134, 1062 yycrank+0, 0, yyvstop+136, 1063 yycrank+340, 0, yyvstop+138, 1064 yycrank+0, 0, yyvstop+140, 1065 yycrank+277, 0, 0, 1066 yycrank+342, 0, yyvstop+142, 1067 yycrank+0, 0, yyvstop+144, 1068 yycrank+345, 0, yyvstop+146, 1069 yycrank+347, 0, yyvstop+148, 1070 yycrank+288, 0, 0, 1071 yycrank+294, 0, 0, 1072 yycrank+352, 0, yyvstop+150, 1073 yycrank+311, 0, 0, 1074 yycrank+290, 0, 0, 1075 yycrank+301, 0, 0, 1076 yycrank+315, 0, 0, 1077 yycrank+294, 0, 0, 1078 yycrank+327, 0, 0, 1079 yycrank+360, 0, yyvstop+152, 1080 yycrank+301, 0, 0, 1081 yycrank+330, 0, 0, 1082 yycrank+363, 0, yyvstop+154, 1083 yycrank+331, 0, 0, 1084 yycrank+294, 0, 0, 1085 yycrank+334, 0, 0, 1086 yycrank+369, 0, yyvstop+156, 1087 yycrank+370, 0, yyvstop+158, 1088 yycrank+371, 0, yyvstop+160, 1089 0, 0, 0}; 1090 struct yywork *yytop = yycrank+377; 1091 struct yysvf *yybgin = yysvec+1; 1092 int yymatch[] = { 1093 0, 1, 2, 1, 4, 1, 2, 1, 1094 1, 1, 10, 1, 10, 1, 10, 10, 1095 10, 1, 1, 1, 1, 1, 10, 10, 1096 10, 1, 10, 1, 10, 10, 10, 10, 1097 10, 10, 10, 10, 10, 10, 10, 10, 1098 10, 10, 10, 10, 10, 10, 10, 10, 1099 10, 10, 10, 10, 10, 10, 10, 10, 1100 10, 10, 10, 10, 10, 10, 10, 10, 1101 10, 10, 10, 10, 10, 10, 10, 10, 1102 10, 10, 10, 10, 10, 1, 1, 1, 1103 1, 1, 1, 1, 0, 0, 0, 0, 1104 0}; 1105 char yyextra[] = { 1106 0,0,0,0,0,0,0,0, 1107 0,0,0,0,0,0,0,0, 1108 0,0,0,0,0,0,0,0, 1109 0,0,0,0,0,0,0,0, 1110 0,0,0,0,0,0,0,0, 1111 0,0,0,0,0,0,0,0, 1112 0,0,0,0,0,0,0,0, 1113 0,0,0,0,0,0,0,0, 1114 0,0,0,0,0,0,0,0, 1115 0,0,0,0,0,0,0,0, 1116 0}; 1117 #define YYNCGIDTBL 42 1118 unsigned long yycgidtbl[]={ 1119 0x00000000, 0x00000009, 0x0000000a, 0x00000020, 0x00000021, 0x0000002d, 0x0000002e, 0x00000030, 1120 0x00000039, 0x0000003a, 0x0000003b, 0x00000041, 0x0000005a, 0x0000005f, 0x00000061, 0x00000062, 1121 0x00000063, 0x00000064, 0x00000065, 0x00000066, 0x00000067, 0x00000068, 0x00000069, 0x0000006a, 1122 0x0000006b, 0x0000006c, 0x0000006d, 0x0000006e, 0x0000006f, 0x00000070, 0x00000071, 0x00000072, 1123 0x00000073, 0x00000074, 0x00000075, 0x00000076, 0x00000077, 0x00000079, 0x0000007a, 0x000000ff, 1124 0x20ffffff, 0x40ffffff, 1125 0}; 1126 /* 1127 * CDDL HEADER START 1128 * 1129 * The contents of this file are subject to the terms of the 1130 * Common Development and Distribution License, Version 1.0 only 1131 * (the "License"). You may not use this file except in compliance 1132 * with the License. 1133 * 1134 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1135 * or http://www.opensolaris.org/os/licensing. 1136 * See the License for the specific language governing permissions 1137 * and limitations under the License. 1138 * 1139 * When distributing Covered Code, include this CDDL HEADER in each 1140 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1141 * If applicable, add the following below this CDDL HEADER, with the 1142 * fields enclosed by brackets "[]" replaced with your own identifying 1143 * information: Portions Copyright [yyyy] [name of copyright owner] 1144 * 1145 * CDDL HEADER END 1146 */ 1147 /* 1148 * Copyright 2005 Sun Microsystems, Inc. 1149 * All rights reserved. 1150 * Use is subject to license terms. 1151 */ 1152 1153 /* Copyright (c) 1989 AT&T */ 1154 /* All Rights Reserved */ 1155 1156 1157 #pragma ident "%Z%%M% %I% %E% SMI" 1158 1159 int yylineno =1; 1160 int yygid; 1161 #define LONG_WCHAR_T 1 1162 # define YYU(x) x 1163 # define NLSTATE yyprevious=YYNEWLINE 1164 wchar_t yysbuf[YYLMAX]; 1165 wchar_t *yysptr = yysbuf; 1166 struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; 1167 int *yyfnd; 1168 extern struct yysvf *yyestate; 1169 int yyprevious = YYNEWLINE; 1170 #if defined(__cplusplus) || defined(__STDC__) 1171 int yylook(void) 1172 #else 1173 yylook() 1174 #endif 1175 { 1176 struct yysvf *yystate, **lsp; 1177 struct yywork *yyt; 1178 struct yysvf *yyz; 1179 int yych, yyfirst; 1180 struct yywork *yyr; 1181 # ifdef LEXDEBUG 1182 int debug; 1183 # endif 1184 wchar_t *yylastch; 1185 /* start off machines */ 1186 # ifdef LEXDEBUG 1187 debug = 0; 1188 # endif 1189 yyfirst=1; 1190 if (!yymorfg) 1191 yylastch = YYTEXT; 1192 else { 1193 yymorfg=0; 1194 yylastch = YYTEXT+YYLENG; 1195 } 1196 for(;;){ 1197 lsp = yylstate; 1198 yyestate = yystate = yybgin; 1199 if (yyprevious==YYNEWLINE) yystate++; 1200 for (;;){ 1201 # ifdef LEXDEBUG 1202 if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); 1203 # endif 1204 yyt = yystate->yystoff; 1205 if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ 1206 yyz = yystate->yyother; 1207 if(yyz == 0)break; 1208 if(yyz->yystoff == yycrank)break; 1209 } 1210 *yylastch++ = yych = YYINPUT(); 1211 #ifdef YYISARRAY 1212 if(yylastch > &YYTEXT[YYLMAX]) { 1213 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 1214 exit(1); 1215 } 1216 #else 1217 if (yylastch >= &YYTEXT[ yytextsz ]) { 1218 int x = yylastch - YYTEXT; 1219 1220 yytextsz += YYTEXTSZINC; 1221 #ifdef YYLEX_E /* -e */ 1222 if (YYTEXT == yy_twbuf) { 1223 YYTEXT = (wchar_t *) 1224 malloc(yytextsz * 1225 sizeof (wchar_t)); 1226 memcpy(YYTEXT, yy_twbuf, 1227 sizeof (yy_twbuf)); 1228 yytext = (wchar_t *) 1229 malloc(yytextsz * 1230 sizeof (wchar_t)); 1231 memcpy(yytext, yy_tbuf, 1232 sizeof (yy_tbuf)); 1233 #else 1234 if (YYTEXT == yy_tbuf) { 1235 YYTEXT = (wchar_t *) 1236 malloc(yytextsz * 1237 sizeof (wchar_t)); 1238 memcpy(YYTEXT, yy_tbuf, 1239 sizeof (yy_tbuf)); 1240 #endif 1241 } 1242 else { 1243 YYTEXT = (wchar_t *) 1244 realloc(YYTEXT, yytextsz); 1245 #ifdef YYLEX_E /* -e */ 1246 yytext = (wchar_t *) 1247 realloc(yytext, 1248 yytextsz * sizeof (wchar_t)); 1249 #endif 1250 } 1251 if (!YYTEXT) { 1252 fprintf(yyout, 1253 "Cannot realloc YYTEXT\n"); 1254 exit(1); 1255 } 1256 yylastch = YYTEXT + x; 1257 } 1258 #endif 1259 yygid = yycgid(yych); 1260 yyfirst=0; 1261 tryagain: 1262 # ifdef LEXDEBUG 1263 if(debug){ 1264 fprintf(yyout,"wchar_t "); 1265 allprint(yych); 1266 fprintf(yyout," gid %d\n", yygid); 1267 } 1268 # endif 1269 yyr = yyt; 1270 if ( (uintptr_t)yyt > (uintptr_t)yycrank){ 1271 yyt = yyr + yygid; 1272 if (yyt <= yytop && yyt->verify+yysvec == yystate){ 1273 if(yyt->advance+yysvec == YYLERR) /* error transitions */ 1274 {YYUNPUT(*--yylastch);break;} 1275 *lsp++ = yystate = yyt->advance+yysvec; 1276 if(lsp > &yylstate[YYLMAX]) { 1277 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 1278 exit(1); 1279 } 1280 goto contin; 1281 } 1282 } 1283 # ifdef YYOPTIM 1284 else if((uintptr_t)yyt < (uintptr_t)yycrank) { /* r < yycrank */ 1285 yyt = yyr = yycrank+(yycrank-yyt); 1286 # ifdef LEXDEBUG 1287 if(debug)fprintf(yyout,"compressed state\n"); 1288 # endif 1289 yyt = yyt + yygid; 1290 if(yyt <= yytop && yyt->verify+yysvec == yystate){ 1291 if(yyt->advance+yysvec == YYLERR) /* error transitions */ 1292 {YYUNPUT(*--yylastch);break;} 1293 *lsp++ = yystate = yyt->advance+yysvec; 1294 if(lsp > &yylstate[YYLMAX]) { 1295 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 1296 exit(1); 1297 } 1298 goto contin; 1299 } 1300 yyt = yyr + YYU(yymatch[yygid]); 1301 # ifdef LEXDEBUG 1302 if(debug){ 1303 fprintf(yyout,"try fall back character "); 1304 allprint_w(YYU(yymatch[yygid])); 1305 fprintf(yyout," gid %d\n", yygid); 1306 } 1307 # endif 1308 if(yyt <= yytop && yyt->verify+yysvec == yystate){ 1309 if(yyt->advance+yysvec == YYLERR) /* error transition */ 1310 {YYUNPUT(*--yylastch);break;} 1311 *lsp++ = yystate = yyt->advance+yysvec; 1312 if(lsp > &yylstate[YYLMAX]) { 1313 fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); 1314 exit(1); 1315 } 1316 goto contin; 1317 } 1318 } 1319 if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ 1320 # ifdef LEXDEBUG 1321 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); 1322 # endif 1323 goto tryagain; 1324 } 1325 # endif 1326 else 1327 {YYUNPUT(*--yylastch);break;} 1328 contin: 1329 # ifdef LEXDEBUG 1330 if(debug){ 1331 fprintf(yyout,"state %d wchar_t ",yystate-yysvec-1); 1332 allprint_w(yych); 1333 fprintf(yyout," gid %d\n", yygid); 1334 } 1335 # endif 1336 ; 1337 } 1338 # ifdef LEXDEBUG 1339 if(debug){ 1340 fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); 1341 allprint_w(yych); 1342 fprintf(yyout," gid %d\n", yygid); 1343 } 1344 # endif 1345 while (lsp-- > yylstate){ 1346 *yylastch-- = 0; 1347 if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ 1348 yyolsp = lsp; 1349 if(yyextra[*yyfnd]){ /* must backup */ 1350 while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ 1351 lsp--; 1352 YYUNPUT(*yylastch--); 1353 } 1354 } 1355 yyprevious = YYU(*yylastch); 1356 yylsp = lsp; 1357 YYLENG = yylastch-YYTEXT+1; 1358 YYTEXT[YYLENG] = 0; 1359 # ifdef LEXDEBUG 1360 if(debug){ 1361 fprintf(yyout,"\nmatch "); 1362 sprint_w(YYTEXT); 1363 fprintf(yyout," action %d\n",*yyfnd); 1364 } 1365 # endif 1366 #ifdef YYLEX_E /* -e */ 1367 yyleng=wcstombs((char *)yytext, YYTEXT, sizeof(yytext)-1); 1368 #ifdef LEXDEBUG 1369 if(yyleng>=sizeof(yytext)-1) 1370 fprintf(yyout, "yytext[] too short\n"); 1371 #endif 1372 #endif 1373 return(*yyfnd++); 1374 } 1375 YYUNPUT(*yylastch); 1376 } 1377 if (YYTEXT[0] == 0 /* && feof(yyin) */) 1378 { 1379 yysptr=yysbuf; 1380 return(0); 1381 } 1382 yyprevious = YYTEXT[0] = YYINPUT(); 1383 if (yyprevious>0) 1384 YYOUTPUT(yyprevious); 1385 yylastch=YYTEXT; 1386 # ifdef LEXDEBUG 1387 if(debug)putchar('\n'); 1388 # endif 1389 } 1390 } 1391 int 1392 #if defined(__cplusplus) || defined(__STDC__) 1393 yyback(int *p, int m) 1394 #else 1395 yyback(p, m) 1396 int *p; 1397 int m; 1398 #endif 1399 { 1400 if (p==0) return(0); 1401 while (*p) { 1402 if (*p++ == m) 1403 return(1); 1404 } 1405 return(0); 1406 } 1407 1408 #ifdef YYLEX_E /* -e */ 1409 wchar_t 1410 #if defined(__cplusplus) || defined(__STDC__) 1411 yywinput(void){ 1412 #else 1413 yywinput(){ 1414 #endif 1415 unsigned char eucbuf[MB_LEN_MAX]; 1416 wchar_t wc; 1417 unsigned char *p=eucbuf; 1418 int n; 1419 1420 #ifndef __cplusplus 1421 *p++=input(); 1422 n=euclen(eucbuf); 1423 while(--n>0) *p++=input(); 1424 #else 1425 *p++=lex_input(); 1426 n=euclen(eucbuf); 1427 while(--n>0) *p++=lex_input(); 1428 #endif 1429 *p=0; 1430 1431 mbtowc( &wc, (char *)eucbuf, MB_LEN_MAX ); 1432 return wc; 1433 } 1434 1435 #if defined(__cplusplus) || defined(__STDC__) 1436 void 1437 yywoutput(wchar_t wc) 1438 #else 1439 yywoutput(wc) 1440 wchar_t wc; 1441 #endif 1442 { 1443 unsigned char eucbuf[MB_LEN_MAX]; 1444 int n; 1445 unsigned char *p=eucbuf; 1446 1447 n=wctomb( (char *)eucbuf, wc ); 1448 #ifndef __cplusplus 1449 while(n-->0) output(*p++); 1450 #else 1451 while(n-->0) lex_output(*p++); 1452 #endif 1453 } 1454 1455 #if defined(__cplusplus) || defined(__STDC__) 1456 void 1457 yywunput(wchar_t wc) 1458 #else 1459 yywunput(wc) 1460 wchar_t wc; 1461 #endif 1462 { 1463 unsigned char eucbuf[MB_LEN_MAX]; 1464 int n; 1465 unsigned char *p; 1466 1467 n=wctomb( (char *)eucbuf, wc ); 1468 p=eucbuf+n; 1469 while(n-->0) unput(*--p); 1470 } 1471 #endif 1472 1473 #ifdef LONG_WCHAR_T 1474 #define yylinearize(lc) lc 1475 #else/*!LONG_WCHAR_T*/ 1476 unsigned long 1477 yylinearize(wc) 1478 wchar_t wc; 1479 { 1480 unsigned long prefix; 1481 switch(wc&0x8080){ 1482 case 0x0000: prefix=0x00000000; break; 1483 case 0x0080: prefix=0x20000000; break; 1484 case 0x8000: prefix=0x40000000; break; 1485 case 0x8080: prefix=0x60000000; break; 1486 } 1487 return prefix|wc; 1488 } 1489 #endif/*!LONG_WCHAR_T*/ 1490 int 1491 yycgid(c) 1492 wchar_t c; 1493 { 1494 int first = 0; 1495 int last = YYNCGIDTBL - 1; 1496 unsigned long lc=yylinearize(c); 1497 1498 if( yycgidtbl[YYNCGIDTBL-1] < lc ) return YYNCGIDTBL*2-1; 1499 1500 while (last >= 0) { 1501 int i = (first+last)/2; 1502 if (lc == yycgidtbl[i]) 1503 return (2*i); 1504 else if ( yycgidtbl[i]<lc) { 1505 if (lc<yycgidtbl[i+1]) 1506 return (2*i+1); 1507 else 1508 first = i + 1; 1509 }else 1510 last = i - 1; 1511 } 1512 return 0; /*Error*/ 1513 } 1514 1515 1516 1517 1518 1519 /* the following are only used in the lex library */ 1520 int 1521 #if defined(__cplusplus) || defined(__STDC__) 1522 yyinput(void) 1523 #else 1524 yyinput() 1525 #endif 1526 { 1527 #ifndef __cplusplus 1528 return(input()); 1529 #else 1530 return(lex_input()); 1531 #endif 1532 } 1533 #if defined(__cplusplus) || defined(__STDC__) 1534 void 1535 yyoutput(int c) 1536 #else 1537 yyoutput(c) 1538 int c; 1539 #endif 1540 { 1541 #ifndef __cplusplus 1542 output(c); 1543 #else 1544 lex_output(c); 1545 #endif 1546 } 1547 #if defined(__cplusplus) || defined(__STDC__) 1548 void 1549 yyunput(int c) 1550 #else 1551 yyunput(c) 1552 int c; 1553 #endif 1554 { 1555 unput(c); 1556 } 1557