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