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