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