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