#include #include #include # define U(x) x # define NLSTATE yyprevious=YYNEWLINE # define BEGIN yybgin = yysvec + 1 + # define INITIAL 0 # define YYLERR yysvec # define YYSTATE (yyestate-yysvec-1) # define YYOPTIM 1 # ifndef YYLMAX # define YYLMAX BUFSIZ # endif #ifndef __cplusplus # define output(c) (void)putc(c,yyout) #else # define lex_output(c) (void)putc(c,yyout) #endif #if defined(__cplusplus) || defined(__STDC__) #if defined(__cplusplus) && defined(__EXTERN_C__) extern "C" { #endif int yyback(int *, int); int yyinput(void); int yylook(void); void yyoutput(int); int yyracc(int); int yyreject(void); void yyunput(int); int yylex(void); #ifdef YYLEX_E void yywoutput(wchar_t); wchar_t yywinput(void); void yywunput(wchar_t); #endif #ifndef yyless int yyless(int); #endif #ifndef yywrap int yywrap(void); #endif #ifdef LEXDEBUG void allprint(char); void sprint(char *); #endif #if defined(__cplusplus) && defined(__EXTERN_C__) } #endif #ifdef __cplusplus extern "C" { #endif void exit(int); #ifdef __cplusplus } #endif #endif # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} # define yymore() (yymorfg=1) #ifndef __cplusplus # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) #else # define lex_input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) #endif #define ECHO fprintf(yyout, "%s",yytext) # define REJECT { nstr = yyreject(); goto yyfussy;} int yyleng; #define YYISARRAY char yytext[YYLMAX]; int yymorfg; extern char *yysptr, yysbuf[]; int yytchar; FILE *yyin = {stdin}, *yyout = {stdout}; extern int yylineno; struct yysvf { struct yywork *yystoff; struct yysvf *yyother; int *yystops;}; struct yysvf *yyestate; extern struct yysvf yysvec[], *yybgin; # line 3 "../prexlex.l" /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * Copyright (c) 1994, by Sun Microsytems, Inc. */ #pragma ident "%Z%%M% %I% %E% SMI" #include "spec.h" #include "expr.h" #include "y.tab.h" #include #include char * qtstr (char * instr); char * rgstr (char * instr); # line 43 "../prexlex.l" /* ** we substitute i/o routines defined in main.c for the ** standard fare. This allows us to support the "source" ** function by redirecting the input stream from different ** places */ #include "source.h" #undef input #undef unput #undef output #define input() source_input() #define unput(c) source_unput(c) #define output(c) source_output(c) # define YYNEWLINE 10 int yylex(){ int nstr; extern int yyprevious; #ifdef __cplusplus /* to avoid CC and lint complaining yyfussy not being used ...*/ static int __lex_hack = 0; if (__lex_hack) goto yyfussy; #endif while((nstr = yylook()) >= 0) yyfussy: switch(nstr){ case 0: if(yywrap()) return(0); break; case 1: # line 63 "../prexlex.l" ; break; case 2: # line 64 "../prexlex.l" ; break; case 3: # line 66 "../prexlex.l" { source_nl(); return NL; } break; case 4: # line 67 "../prexlex.l" { source_nl(); } break; case 5: # line 68 "../prexlex.l" return (EQ); break; case 6: # line 69 "../prexlex.l" return (COMMA); break; case 7: # line 71 "../prexlex.l" { yylval.intval = ADD; return (ADD); } break; case 8: # line 72 "../prexlex.l" { yylval.intval = ALLOC; return (ALLOC); } break; case 9: # line 73 "../prexlex.l" { yylval.intval = BUFFER; return (BUFFER); } break; case 10: # line 74 "../prexlex.l" { yylval.intval = CLEAR; return (CLEAR); } break; case 11: # line 75 "../prexlex.l" { yylval.intval = CONNECT; return (CONNECT); } break; case 12: # line 76 "../prexlex.l" { yylval.intval = CONTINUE; return (CONTINUE); } break; case 13: # line 77 "../prexlex.l" { yylval.intval = CREATE; return (CREATE); } break; case 14: # line 78 "../prexlex.l" { yylval.intval = DEALLOC; return (DEALLOC); } break; case 15: # line 79 "../prexlex.l" { yylval.intval = DELETE; return (DELETE); } break; case 16: # line 80 "../prexlex.l" { yylval.intval = DISABLE; return (DISABLE); } break; case 17: # line 81 "../prexlex.l" { yylval.intval = ENABLE; return (ENABLE); } break; case 18: # line 82 "../prexlex.l" { yylval.intval = FCNS; return (FCNS); } break; case 19: # line 83 "../prexlex.l" { yylval.intval = FILTER; return (FILTER); } break; case 20: # line 84 "../prexlex.l" { yylval.intval = HELP; return (HELP); } break; case 21: # line 85 "../prexlex.l" { yylval.intval = HISTORY; return (HISTORY); } break; case 22: # line 86 "../prexlex.l" { yylval.intval = TRACEFILE; return (TRACEFILE); } break; case 23: # line 87 "../prexlex.l" { yylval.intval = KILL; return (KILL); } break; case 24: # line 88 "../prexlex.l" { yylval.intval = KTRACE; return (KTRACE); } break; case 25: # line 89 "../prexlex.l" { yylval.intval = LIST; return (LIST); } break; case 26: # line 90 "../prexlex.l" { yylval.intval = OFF; return (OFF); } break; case 27: # line 91 "../prexlex.l" { yylval.intval = ON; return (ON); } break; case 28: # line 92 "../prexlex.l" { yylval.intval = PFILTER; return (PFILTER); } break; case 29: # line 93 "../prexlex.l" { yylval.intval = PROBES; return (PROBES); } break; case 30: # line 94 "../prexlex.l" { yylval.intval = QUIT; return (QUIT); } break; case 31: # line 95 "../prexlex.l" { yylval.intval = RESUME; return (RESUME); } break; case 32: # line 96 "../prexlex.l" { yylval.intval = SETS; return (SETS); } break; case 33: # line 97 "../prexlex.l" { yylval.intval = SOURCE; return (SOURCE); } break; case 34: # line 98 "../prexlex.l" { yylval.intval = SUSPEND; return (SUSPEND); } break; case 35: # line 99 "../prexlex.l" { yylval.intval = TRACE; return (TRACE); } break; case 36: # line 100 "../prexlex.l" { yylval.intval = UNTRACE; return (UNTRACE); } break; case 37: # line 101 "../prexlex.l" { yylval.intval = VALUES; return (VALUES); } break; case 38: # line 103 "../prexlex.l" { yylval.strval = strdup(&yytext[1]); return SETNAME; } break; case 39: # line 104 "../prexlex.l" { yylval.strval = strdup(&yytext[1]); return FCNNAME; } break; case 40: # line 105 "../prexlex.l" { yylval.strval = strdup(yytext); return IDENT; } break; case 41: # line 106 "../prexlex.l" { yylval.strval = qtstr(yytext); return VALSTR; } break; case 42: # line 108 "../prexlex.l" { yylval.strval = rgstr(yytext); return REGEXP; } break; case 43: # line 110 "../prexlex.l" { char scale = yytext[yyleng - 1]; yylval.intval = atoi(yytext); if (scale == 'k' || scale == 'K') yylval.intval *= 1024; else if (scale == 'm' || scale == 'M') yylval.intval *= 1024 * 1024; return (SCALED_INT); } break; case 44: # line 120 "../prexlex.l" return (INVAL); break; case -1: break; default: (void)fprintf(yyout,"bad switch yylook %d",nstr); } return(0); } /* end of yylex */ # line 123 "../prexlex.l" /**************************************************************** qtstr() - shucks a quoted str, and copies it into new memory ****************************************************************/ char * qtstr (char * instr) { char *ptr; int indx; /* skip the leading quote in the copy */ ptr = strdup(&instr[1]); /* null out the trailing quote */ indx = strlen(ptr) - 1; indx = (indx < 0) ? 0 : indx; ptr[indx] = '\0'; return ptr; } /* end qtstr */ /**************************************************************** rgstr() - shucks a decorated regular expression, and copies it into new memory ****************************************************************/ char * rgstr (char * instr) { char *ptr; int indx; /* skip the leading slash in the copy */ ptr = strdup(&instr[1]); /* null out the trailing slash */ indx = strlen(ptr) - 1; indx = (indx < 0) ? 0 : indx; ptr[indx] = '\0'; return (ptr); } /* end rgstr */ int yyvstop[] = { 0, 44, 0, 2, 44, 0, 3, 0, 1, 44, 0, 44, 0, 40, 44, 0, 44, 0, 44, 0, 6, 44, 0, 44, 0, 43, 44, 0, 5, 44, 0, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 40, 44, 0, 2, 0, 1, 0, 38, 0, 40, 0, 39, 0, 41, 0, 42, 0, 43, 0, 43, 0, 4, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 27, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 7, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 26, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 18, 40, 0, 40, 0, 20, 40, 0, 40, 0, 23, 40, 0, 40, 0, 25, 40, 0, 40, 0, 40, 0, 30, 40, 0, 40, 0, 32, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 8, 40, 0, 40, 0, 10, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 40, 0, 35, 40, 0, 40, 0, 40, 0, 9, 40, 0, 40, 0, 40, 0, 13, 40, 0, 40, 0, 15, 40, 0, 40, 0, 17, 40, 0, 19, 40, 0, 40, 0, 24, 40, 0, 40, 0, 29, 40, 0, 31, 40, 0, 33, 40, 0, 40, 0, 40, 0, 40, 0, 37, 40, 0, 11, 40, 0, 40, 0, 14, 40, 0, 16, 40, 0, 21, 40, 0, 28, 40, 0, 34, 40, 0, 40, 0, 36, 40, 0, 12, 40, 0, 40, 0, 22, 40, 0, 0}; # define YYTYPE unsigned char struct yywork { YYTYPE verify, advance; } yycrank[] = { 0,0, 0,0, 1,3, 0,0, 0,0, 6,34, 0,0, 0,0, 10,38, 0,0, 1,4, 1,5, 4,33, 6,34, 6,0, 0,0, 10,38, 10,0, 15,45, 34,0, 38,0, 42,40, 0,0, 0,0, 40,0, 0,0, 0,0, 0,0, 0,0, 42,40, 42,0, 0,0, 0,0, 0,0, 0,0, 4,33, 1,6, 1,7, 1,8, 1,9, 1,10, 6,34, 0,0, 6,34, 10,38, 1,11, 10,39, 0,0, 1,12, 1,13, 0,0, 6,34, 6,34, 0,0, 10,38, 10,38, 0,0, 42,40, 0,0, 42,40, 0,0, 0,0, 1,14, 2,6, 2,7, 0,0, 2,9, 42,40, 42,40, 0,0, 0,0, 0,0, 2,11, 0,0, 0,0, 0,0, 1,8, 0,0, 0,0, 6,34, 0,0, 0,0, 10,38, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 2,14, 0,0, 0,0, 0,0, 1,15, 0,0, 42,40, 0,0, 0,0, 1,16, 1,17, 1,18, 1,19, 1,20, 1,21, 32,73, 1,22, 40,42, 46,74, 1,23, 1,24, 28,67, 48,76, 1,25, 1,26, 1,27, 1,28, 1,29, 1,30, 1,31, 1,32, 2,15, 20,54, 7,35, 24,61, 17,48, 2,16, 2,17, 2,18, 2,19, 2,20, 2,21, 7,35, 2,22, 19,52, 22,57, 2,23, 2,24, 19,53, 22,58, 2,25, 2,26, 2,27, 2,28, 2,29, 2,30, 2,31, 2,32, 27,66, 30,71, 31,72, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 47,75, 49,77, 50,78, 51,79, 7,35, 53,82, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 7,35, 8,36, 18,49, 16,46, 54,83, 18,50, 55,84, 56,85, 18,51, 57,86, 8,36, 16,47, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 21,55, 58,87, 59,88, 60,89, 61,90, 62,91, 21,56, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 64,92, 65,93, 66,94, 67,95, 8,36, 68,96, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 8,36, 9,37, 23,59, 25,62, 26,64, 29,68, 52,80, 69,97, 70,98, 71,99, 9,37, 25,63, 72,100, 23,60, 73,101, 29,69, 26,65, 52,81, 75,102, 76,103, 77,104, 29,70, 78,105, 79,107, 80,108, 81,109, 82,110, 83,111, 78,106, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 84,112, 85,113, 86,114, 87,115, 9,37, 88,116, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 9,37, 12,40, 89,117, 90,118, 92,119, 93,120, 94,121, 95,122, 96,123, 12,40, 12,0, 13,43, 13,43, 13,43, 13,43, 13,43, 13,43, 13,43, 13,43, 13,43, 13,43, 35,35, 35,35, 35,35, 35,35, 35,35, 35,35, 35,35, 35,35, 35,35, 35,35, 97,124, 98,125, 99,126, 100,127, 101,128, 102,129, 12,40, 13,44, 12,40, 13,44, 103,130, 104,131, 105,132, 106,133, 107,134, 108,135, 12,41, 12,40, 37,37, 37,37, 37,37, 37,37, 37,37, 37,37, 37,37, 37,37, 37,37, 37,37, 109,136, 110,137, 111,138, 113,139, 115,140, 117,141, 119,142, 120,143, 122,144, 124,145, 125,146, 13,44, 126,147, 13,44, 127,148, 128,149, 12,40, 130,150, 132,151, 133,152, 134,153, 135,154, 136,155, 137,156, 138,157, 139,158, 140,159, 141,160, 142,161, 143,162, 144,163, 145,164, 146,165, 12,42, 147,166, 148,167, 149,168, 151,169, 152,170, 154,171, 156,172, 159,173, 161,174, 165,175, 166,176, 167,177, 170,178, 176,179, 179,180, 0,0, 0,0}; struct yysvf yysvec[] = { 0, 0, 0, yycrank+-1, 0, 0, yycrank+-28, yysvec+1, 0, yycrank+0, 0, yyvstop+1, yycrank+3, 0, yyvstop+3, yycrank+0, 0, yyvstop+6, yycrank+-4, 0, yyvstop+8, yycrank+85, 0, yyvstop+11, yycrank+171, 0, yyvstop+13, yycrank+257, 0, yyvstop+16, yycrank+-7, 0, yyvstop+18, yycrank+0, 0, yyvstop+20, yycrank+-379, 0, yyvstop+23, yycrank+342, 0, yyvstop+25, yycrank+0, 0, yyvstop+28, yycrank+8, 0, yyvstop+31, yycrank+110, yysvec+8, yyvstop+33, yycrank+7, yysvec+8, yyvstop+36, yycrank+101, yysvec+8, yyvstop+39, yycrank+32, yysvec+8, yyvstop+42, yycrank+11, yysvec+8, yyvstop+45, yycrank+130, yysvec+8, yyvstop+48, yycrank+33, yysvec+8, yyvstop+51, yycrank+190, yysvec+8, yyvstop+54, yycrank+18, yysvec+8, yyvstop+57, yycrank+194, yysvec+8, yyvstop+60, yycrank+195, yysvec+8, yyvstop+63, yycrank+30, yysvec+8, yyvstop+66, yycrank+9, yysvec+8, yyvstop+69, yycrank+197, yysvec+8, yyvstop+72, yycrank+34, yysvec+8, yyvstop+75, yycrank+39, yysvec+8, yyvstop+78, yycrank+7, yysvec+8, yyvstop+81, yycrank+0, yysvec+4, yyvstop+84, yycrank+-9, yysvec+6, yyvstop+86, yycrank+352, yysvec+7, yyvstop+88, yycrank+0, yysvec+8, yyvstop+90, yycrank+380, yysvec+9, yyvstop+92, yycrank+-10, yysvec+10, 0, yycrank+0, 0, yyvstop+94, yycrank+-14, yysvec+12, 0, yycrank+0, 0, yyvstop+96, yycrank+-20, 0, 0, yycrank+0, yysvec+13, yyvstop+98, yycrank+0, 0, yyvstop+100, yycrank+0, 0, yyvstop+102, yycrank+7, yysvec+8, yyvstop+104, yycrank+68, yysvec+8, yyvstop+106, yycrank+9, yysvec+8, yyvstop+108, yycrank+76, yysvec+8, yyvstop+110, yycrank+68, yysvec+8, yyvstop+112, yycrank+78, yysvec+8, yyvstop+114, yycrank+202, yysvec+8, yyvstop+116, yycrank+66, yysvec+8, yyvstop+118, yycrank+114, yysvec+8, yyvstop+120, yycrank+103, yysvec+8, yyvstop+122, yycrank+106, yysvec+8, yyvstop+124, yycrank+108, yysvec+8, yyvstop+126, yycrank+115, yysvec+8, yyvstop+128, yycrank+123, yysvec+8, yyvstop+130, yycrank+118, yysvec+8, yyvstop+132, yycrank+118, yysvec+8, yyvstop+134, yycrank+132, yysvec+8, yyvstop+136, yycrank+0, yysvec+8, yyvstop+138, yycrank+157, yysvec+8, yyvstop+141, yycrank+152, yysvec+8, yyvstop+143, yycrank+159, yysvec+8, yyvstop+145, yycrank+150, yysvec+8, yyvstop+147, yycrank+151, yysvec+8, yyvstop+149, yycrank+183, yysvec+8, yyvstop+151, yycrank+186, yysvec+8, yyvstop+153, yycrank+205, yysvec+8, yyvstop+155, yycrank+189, yysvec+8, yyvstop+157, yycrank+199, yysvec+8, yyvstop+159, yycrank+0, yysvec+8, yyvstop+161, yycrank+200, yysvec+8, yyvstop+164, yycrank+210, yysvec+8, yyvstop+166, yycrank+216, yysvec+8, yyvstop+168, yycrank+205, yysvec+8, yyvstop+170, yycrank+219, yysvec+8, yyvstop+172, yycrank+209, yysvec+8, yyvstop+174, yycrank+217, yysvec+8, yyvstop+176, yycrank+222, yysvec+8, yyvstop+178, yycrank+222, yysvec+8, yyvstop+180, yycrank+233, yysvec+8, yyvstop+182, yycrank+233, yysvec+8, yyvstop+184, yycrank+238, yysvec+8, yyvstop+186, yycrank+235, yysvec+8, yyvstop+188, yycrank+245, yysvec+8, yyvstop+190, yycrank+284, yysvec+8, yyvstop+192, yycrank+266, yysvec+8, yyvstop+194, yycrank+0, yysvec+8, yyvstop+196, yycrank+275, yysvec+8, yyvstop+199, yycrank+286, yysvec+8, yyvstop+201, yycrank+269, yysvec+8, yyvstop+203, yycrank+269, yysvec+8, yyvstop+205, yycrank+272, yysvec+8, yyvstop+207, yycrank+296, yysvec+8, yyvstop+209, yycrank+299, yysvec+8, yyvstop+211, yycrank+313, yysvec+8, yyvstop+213, yycrank+299, yysvec+8, yyvstop+215, yycrank+297, yysvec+8, yyvstop+217, yycrank+316, yysvec+8, yyvstop+219, yycrank+319, yysvec+8, yyvstop+221, yycrank+307, yysvec+8, yyvstop+223, yycrank+321, yysvec+8, yyvstop+225, yycrank+318, yysvec+8, yyvstop+227, yycrank+308, yysvec+8, yyvstop+229, yycrank+317, yysvec+8, yyvstop+231, yycrank+322, yysvec+8, yyvstop+233, yycrank+341, yysvec+8, yyvstop+235, yycrank+332, yysvec+8, yyvstop+237, yycrank+0, yysvec+8, yyvstop+239, yycrank+340, yysvec+8, yyvstop+242, yycrank+0, yysvec+8, yyvstop+244, yycrank+331, yysvec+8, yyvstop+247, yycrank+0, yysvec+8, yyvstop+249, yycrank+344, yysvec+8, yyvstop+252, yycrank+0, yysvec+8, yyvstop+254, yycrank+328, yysvec+8, yyvstop+257, yycrank+344, yysvec+8, yyvstop+259, yycrank+0, yysvec+8, yyvstop+261, yycrank+337, yysvec+8, yyvstop+264, yycrank+0, yysvec+8, yyvstop+266, yycrank+348, yysvec+8, yyvstop+269, yycrank+347, yysvec+8, yyvstop+271, yycrank+349, yysvec+8, yyvstop+273, yycrank+355, yysvec+8, yyvstop+275, yycrank+352, yysvec+8, yyvstop+277, yycrank+0, yysvec+8, yyvstop+279, yycrank+341, yysvec+8, yyvstop+282, yycrank+0, yysvec+8, yyvstop+284, yycrank+357, yysvec+8, yyvstop+287, yycrank+347, yysvec+8, yyvstop+289, yycrank+357, yysvec+8, yyvstop+291, yycrank+348, yysvec+8, yyvstop+293, yycrank+359, yysvec+8, yyvstop+295, yycrank+353, yysvec+8, yyvstop+297, yycrank+361, yysvec+8, yyvstop+299, yycrank+349, yysvec+8, yyvstop+301, yycrank+350, yysvec+8, yyvstop+303, yycrank+364, yysvec+8, yyvstop+305, yycrank+365, yysvec+8, yyvstop+307, yycrank+352, yysvec+8, yyvstop+309, yycrank+367, yysvec+8, yyvstop+311, yycrank+368, yysvec+8, yyvstop+313, yycrank+360, yysvec+8, yyvstop+315, yycrank+370, yysvec+8, yyvstop+317, yycrank+374, yysvec+8, yyvstop+320, yycrank+359, yysvec+8, yyvstop+322, yycrank+0, yysvec+8, yyvstop+324, yycrank+359, yysvec+8, yyvstop+327, yycrank+359, yysvec+8, yyvstop+329, yycrank+0, yysvec+8, yyvstop+331, yycrank+378, yysvec+8, yyvstop+334, yycrank+0, yysvec+8, yyvstop+336, yycrank+377, yysvec+8, yyvstop+339, yycrank+0, yysvec+8, yyvstop+341, yycrank+0, yysvec+8, yyvstop+344, yycrank+358, yysvec+8, yyvstop+347, yycrank+0, yysvec+8, yyvstop+349, yycrank+366, yysvec+8, yyvstop+352, yycrank+0, yysvec+8, yyvstop+354, yycrank+0, yysvec+8, yyvstop+357, yycrank+0, yysvec+8, yyvstop+360, yycrank+381, yysvec+8, yyvstop+363, yycrank+377, yysvec+8, yyvstop+365, yycrank+382, yysvec+8, yyvstop+367, yycrank+0, yysvec+8, yyvstop+369, yycrank+0, yysvec+8, yyvstop+372, yycrank+383, yysvec+8, yyvstop+375, yycrank+0, yysvec+8, yyvstop+377, yycrank+0, yysvec+8, yyvstop+380, yycrank+0, yysvec+8, yyvstop+383, yycrank+0, yysvec+8, yyvstop+386, yycrank+0, yysvec+8, yyvstop+389, yycrank+377, yysvec+8, yyvstop+392, yycrank+0, yysvec+8, yyvstop+394, yycrank+0, yysvec+8, yyvstop+397, yycrank+385, yysvec+8, yyvstop+400, yycrank+0, yysvec+8, yyvstop+402, 0, 0, 0}; struct yywork *yytop = yycrank+486; struct yysvf *yybgin = yysvec+1; char yymatch[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 9, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 1, 1, 1, 1, 37, 1, 39, 1, 1, 1, 1, 1, 1, 37, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 1, 1, 1, 1, 1, 1, 1, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 75, 37, 75, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 1, 47, 1, 1, 37, 1, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 75, 37, 75, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}; char yyextra[] = { 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0}; /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* Copyright (c) 1989 AT&T */ /* All Rights Reserved */ #pragma ident "%Z%%M% %I% %E% SMI" int yylineno =1; # define YYU(x) x # define NLSTATE yyprevious=YYNEWLINE struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; char yysbuf[YYLMAX]; char *yysptr = yysbuf; int *yyfnd; extern struct yysvf *yyestate; int yyprevious = YYNEWLINE; #if defined(__cplusplus) || defined(__STDC__) int yylook(void) #else yylook() #endif { register struct yysvf *yystate, **lsp; register struct yywork *yyt; struct yysvf *yyz; int yych, yyfirst; struct yywork *yyr; # ifdef LEXDEBUG int debug; # endif char *yylastch; /* start off machines */ # ifdef LEXDEBUG debug = 0; # endif yyfirst=1; if (!yymorfg) yylastch = yytext; else { yymorfg=0; yylastch = yytext+yyleng; } for(;;){ lsp = yylstate; yyestate = yystate = yybgin; if (yyprevious==YYNEWLINE) yystate++; for (;;){ # ifdef LEXDEBUG if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); # endif yyt = yystate->yystoff; if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ yyz = yystate->yyother; if(yyz == 0)break; if(yyz->yystoff == yycrank)break; } #ifndef __cplusplus *yylastch++ = yych = input(); #else *yylastch++ = yych = lex_input(); #endif #ifdef YYISARRAY if(yylastch > &yytext[YYLMAX]) { fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); exit(1); } #else if (yylastch >= &yytext[ yytextsz ]) { int x = yylastch - yytext; yytextsz += YYTEXTSZINC; if (yytext == yy_tbuf) { yytext = (char *) malloc(yytextsz); memcpy(yytext, yy_tbuf, sizeof (yy_tbuf)); } else yytext = (char *) realloc(yytext, yytextsz); if (!yytext) { fprintf(yyout, "Cannot realloc yytext\n"); exit(1); } yylastch = yytext + x; } #endif yyfirst=0; tryagain: # ifdef LEXDEBUG if(debug){ fprintf(yyout,"char "); allprint(yych); putchar('\n'); } # endif yyr = yyt; if ( (uintptr_t)yyt > (uintptr_t)yycrank){ yyt = yyr + yych; if (yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transitions */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; if(lsp > &yylstate[YYLMAX]) { fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); exit(1); } goto contin; } } # ifdef YYOPTIM else if((uintptr_t)yyt < (uintptr_t)yycrank) { /* r < yycrank */ yyt = yyr = yycrank+(yycrank-yyt); # ifdef LEXDEBUG if(debug)fprintf(yyout,"compressed state\n"); # endif yyt = yyt + yych; if(yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transitions */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; if(lsp > &yylstate[YYLMAX]) { fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); exit(1); } goto contin; } yyt = yyr + YYU(yymatch[yych]); # ifdef LEXDEBUG if(debug){ fprintf(yyout,"try fall back character "); allprint(YYU(yymatch[yych])); putchar('\n'); } # endif if(yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transition */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; if(lsp > &yylstate[YYLMAX]) { fprintf(yyout,"Input string too long, limit %d\n",YYLMAX); exit(1); } goto contin; } } if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ # ifdef LEXDEBUG if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); # endif goto tryagain; } # endif else {unput(*--yylastch);break;} contin: # ifdef LEXDEBUG if(debug){ fprintf(yyout,"state %d char ",yystate-yysvec-1); allprint(yych); putchar('\n'); } # endif ; } # ifdef LEXDEBUG if(debug){ fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); allprint(yych); putchar('\n'); } # endif while (lsp-- > yylstate){ *yylastch-- = 0; if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ yyolsp = lsp; if(yyextra[*yyfnd]){ /* must backup */ while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ lsp--; unput(*yylastch--); } } yyprevious = YYU(*yylastch); yylsp = lsp; yyleng = yylastch-yytext+1; yytext[yyleng] = 0; # ifdef LEXDEBUG if(debug){ fprintf(yyout,"\nmatch "); sprint(yytext); fprintf(yyout," action %d\n",*yyfnd); } # endif return(*yyfnd++); } unput(*yylastch); } if (yytext[0] == 0 /* && feof(yyin) */) { yysptr=yysbuf; return(0); } #ifndef __cplusplus yyprevious = yytext[0] = input(); if (yyprevious>0) output(yyprevious); #else yyprevious = yytext[0] = lex_input(); if (yyprevious>0) lex_output(yyprevious); #endif yylastch=yytext; # ifdef LEXDEBUG if(debug)putchar('\n'); # endif } } #if defined(__cplusplus) || defined(__STDC__) int yyback(int *p, int m) #else yyback(p, m) int *p; #endif { if (p==0) return(0); while (*p) { if (*p++ == m) return(1); } return(0); } /* the following are only used in the lex library */ #if defined(__cplusplus) || defined(__STDC__) int yyinput(void) #else yyinput() #endif { #ifndef __cplusplus return(input()); #else return(lex_input()); #endif } #if defined(__cplusplus) || defined(__STDC__) void yyoutput(int c) #else yyoutput(c) int c; #endif { #ifndef __cplusplus output(c); #else lex_output(c); #endif } #if defined(__cplusplus) || defined(__STDC__) void yyunput(int c) #else yyunput(c) int c; #endif { unput(c); }