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