zotnet/tws/lexedit.sed does not work correctly with HP-UX 11.00 lex.
Attached below is a copy of the C code generated by lex against
zotnet/tws/dtimep.lex.
The part that matters is:
#ifdef YYREENTRANT
__thread int yylineno;
#else
int yylineno = 1;
#endif /* reentrant */
According to zotnet/tws/lexedit.sed, everything from 'int yylineno '
onward will be deleted, leaving a hanging #ifdef. A quick solution is
to apply the following patch:
--- lexedit.sed.orig Mon Apr 24 16:25:01 2000
+++ lexedit.sed Mon Apr 24 16:25:15 2000
@@ -8,6 +8,7 @@
default: return(0);\
} }
/^struct yysvf *yybgin = yysvec+1;$/d
+/^#ifdef YYREENTRANT/,$d
/^int yylineno /,$d
/^# define YYTYPE short/c\
# define YYTYPE int
This seems prone to future hiccups though. Is it possible to get rid
of the sed hackery altogether?
--
albert chin ([EMAIL PROTECTED])
-- snip snip
# include "stdio.h"
#if defined(__cplusplus)
extern "C" {
#endif
#if (defined(__cplusplus) || defined(__STDC__))
extern int yyreject();
extern int yywrap();
extern int yylook();
extern int yyback(int *, int);
extern int yyinput();
extern void yyoutput(int);
extern void yyunput(int);
extern int yylex();
extern int yyless(int);
#ifdef LEXDEBUG
extern void allprint();
extern void sprint();
#endif
#if defined(__cplusplus)
}
#endif
#endif /* __cplusplus or __STDC__ */
# 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
# define YYLMAX 200
# define output(c) putc(c,yyout)
# define input()
(((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
# define yymore() (yymorfg=1)
# define ECHO fprintf(yyout, "%s",yytext)
# define REJECT { nstr = yyreject(); goto yyfussy;}
long yyleng;
long yylenguc;
extern unsigned char yytextarr[];
# ifdef YYCHAR_ARRAY
extern char yytext[];
# else
extern unsigned char yytext[];
# endif
int yyposix_point=0;
int yynls16=0;
int yynls_wchar=0;
char *yylocale = "C C C C C C";
int yymorfg;
extern unsigned char *yysptr, yysbuf[];
int yytchar;
FILE *yyin = {stdin}, *yyout = {stdout};
extern int yylineno;
struct yysvf {
int yystoff;
struct yysvf *yyother;
int *yystops;};
struct yysvf *yyestate;
extern struct yysvf yysvec[], *yybgin;
# define Z 2
#include <h/nmh.h>
#include <tws.h>
#if !defined(HAVE_TM_GMTOFF) && !defined(HAVE_TZSET)
# include <sys/timeb.h>
#endif
#if !defined(HAVE_TM_GMTOFF) && defined(HAVE_TZSET)
extern int daylight;
extern long timezone;
extern char *tzname[];
#endif
/*
* Patchable flag that says how to interpret NN/NN/NN dates. When
* true, we do it European style: DD/MM/YY. When false, we do it
* American style: MM/DD/YY. Of course, these are all non-RFC822
* compliant.
*/
int europeandate = 0;
/*
* Table to convert month names to numeric month. We use the
* fact that the low order 5 bits of the sum of the 2nd & 3rd
* characters of the name is a hash with no collisions for the 12
* valid month names. (The mask to 5 bits maps any combination of
* upper and lower case into the same hash value).
*/
static int month_map[] = {
0,
6, /* 1 - Jul */
3, /* 2 - Apr */
5, /* 3 - Jun */
0,
10, /* 5 - Nov */
0,
1, /* 7 - Feb */
11, /* 8 - Dec */
0,
0,
0,
0,
0,
0,
0, /*15 - Jan */
0,
0,
0,
2, /*19 - Mar */
0,
8, /*21 - Sep */
0,
9, /*23 - Oct */
0,
0,
4, /*26 - May */
0,
7 /*28 - Aug */
};
/*
* Same trick for day-of-week using the hash function
* (c1 & 7) + (c2 & 4)
*/
static int day_map[] = {
0,
0,
0,
6, /* 3 - Sat */
4, /* 4 - Thu */
0,
5, /* 6 - Fri */
0, /* 7 - Sun */
2, /* 8 - Tue */
1 /* 9 - Mon */,
0,
3 /*11 - Wed */
};
#define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\
cp += 2; }
#define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
cp += 2;\
SKIPD;}
#define CVT1OR2 (i=(*cp++ - '0'), isdigit(*cp)? i*10 + (*cp++ - '0') : i)
#define CVT2 ((cp[0] - '0')*10 + (cp[1] - '0'))
#define CVT4 ((((cp[0] - '0')*10 + (cp[1] - '0'))*10 + \
(cp[2] - '0'))*10 + (cp[3] - '0'))
#define SKIPD { while ( !isdigit(*cp++) ) ; --cp; }
#define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; }
#define ZONE(x) { tw.tw_zone=(x); EXPZONE; }
#define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; }
#define LC(c) (isupper (c) ? tolower (c) : (c))
#ifdef DSTXXX
# ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
# else
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
# endif
static void
zonehack (struct tws *tw)
{
register struct tm *tm;
if (dmktime (tw) == (time_t) -1)
return;
tm = localtime (&tw->tw_clock);
if (tm->tm_isdst) {
tw->tw_flags |= TW_DST;
tw->tw_zone -= 60;
}
}
#endif /* DSTXXX */
# define YYNEWLINE 10
yylex(){
int nstr; extern int yyprevious;
struct tws *
dparsetime (char *str)
{
register int i;
static struct tws tw;
register char *cp;
register int gotdate = 0;
time_t tclock;
#ifdef HAVE_TM_GMTOFF
struct tm *tm;
time_t clock;
#else
# ifndef HAVE_TZSET
struct timeb tb;
# endif /* not HAVE_TZSET */
#endif /* HAVE_TM_GMTOFF */
start_cond = 0;
/* Zero out the struct. */
memset( (char *) &tw, 0, sizeof(tw));
/* Set default time zone. */
#ifdef HAVE_TM_GMTOFF
time (&clock);
tm = localtime(&clock);
tw.tw_zone = tm->tm_gmtoff / 60;
if (tm->tm_isdst) /* if DST is in effect */
tw.tw_zone -= 60; /* reset to normal offset */
#else
# ifdef HAVE_TZSET
tzset();
tw.tw_zone = -(timezone / 60);
# else
ftime(&tb);
tw.tw_zone = -tb.timezone;
# endif /* HAVE_TZSET */
#endif /* HAVE_TM_GMTOFF */
while (isspace(*str))
str++;
while (1)
switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
case -1:
if (!gotdate || tw.tw_year == 0)
return (struct tws *)0;
/* fall through */
case 0:
if (tw.tw_year == 0) {
/* Set default year. */
time (&tclock);
tw.tw_year = localtime(&tclock)->tm_year + 1900;
} else if (tw.tw_year < 100) {
/* assume no 2-digit years > 1999 */
tw.tw_year += 1900;
}
return &tw;
while((nstr = yylook()) >= 0)
yyfussy: switch(nstr){
case 0:
if(yywrap()) return(0); break;
case 1:
SETDAY;
break;
case 2:
{
cp++;
SETDAY;
}
break;
case 3:
{
if (europeandate) {
/* European: DD/MM/YY */
tw.tw_mday = CVT1OR2;
cp++;
tw.tw_mon = CVT1OR2 - 1;
} else {
/* American: MM/DD/YY */
tw.tw_mon = CVT1OR2 - 1;
cp++;
tw.tw_mday = CVT1OR2;
}
cp++;
for (i = 0; isdigit(*cp); )
i = i*10 + (*cp++ - '0');
tw.tw_year = i;
gotdate++; /* XXX */
}
break;
case 4:
{
if (europeandate) {
tw.tw_mday = CVT1OR2; cp++;
tw.tw_mon = CVT1OR2 - 1;
} else {
tw.tw_mon = CVT1OR2 - 1; cp++;
tw.tw_mday = CVT1OR2;
}
gotdate++;
}
break;
case 5:
{
tw.tw_mday = CVT1OR2;
while ( !isalpha(*cp++) )
;
SETMONTH;
for (i = 0; isdigit(*cp); )
i = i*10 + (*cp++ - '0');
tw.tw_year = i;
#ifdef FIX_NON_Y2K_COMPLIANT_MUA_DATES
/* handle broken mua's that don't add
1900, or just use the last two
digits. Assume no email before
1972. */
if (tw.tw_year < 72)
tw.tw_year += 100;
if (tw.tw_year < 1900)
tw.tw_year += 1900;
#endif /* FIX_NON_Y2K_COMPLIANT_MUA_DATES */
}
break;
case 6:
{
tw.tw_mday = CVT1OR2;
while ( ! isalpha( *cp++ ) )
;
SETMONTH;
}
break;
case 7:
{
cp++;
SETMONTH;
tw.tw_mday = CVT1OR2;
SKIPD;
for (i = 0; isdigit(*cp); )
i = i*10 + (*cp++ - '0');
tw.tw_year = i;
}
break;
case 8:
{
cp++;
SETMONTH;
tw.tw_mday = CVT1OR2;
}
break;
case 9:
{ /* hack: ctime w/o TZ */
tw.tw_hour = CVT1OR2; cp++;
tw.tw_min = CVT1OR2; cp++;
tw.tw_sec = CVT1OR2;
SKIPD;
tw.tw_year = CVT4; cp+=4;
}
break;
case 10:
{
tw.tw_hour = CVT1OR2; cp++;
tw.tw_min = CVT1OR2; cp++;
tw.tw_sec = CVT1OR2;
BEGIN Z;
}
break;
case 11:
{
tw.tw_hour = CVT1OR2; cp++;
tw.tw_min = CVT1OR2;
BEGIN Z;
}
break;
case 12:
{
tw.tw_hour = CVT1OR2; cp++;
if (tw.tw_hour == 12)
tw.tw_hour = 0;
tw.tw_min = CVT1OR2;
BEGIN Z;
}
break;
case 13:
{
tw.tw_hour = CVT1OR2; cp++;
if (tw.tw_hour == 12)
tw.tw_hour = 0;
tw.tw_min = CVT1OR2; cp++;
tw.tw_sec = CVT1OR2;
BEGIN Z;
}
break;
case 14:
{
tw.tw_hour = CVT1OR2; cp++;
if (tw.tw_hour != 12)
tw.tw_hour += 12;
tw.tw_min = CVT1OR2;
BEGIN Z;
}
break;
case 15:
{
tw.tw_hour = CVT1OR2; cp++;
if (tw.tw_hour != 12)
tw.tw_hour += 12;
tw.tw_min = CVT1OR2; cp++;
tw.tw_sec = CVT1OR2;
BEGIN Z;
}
break;
case 16:
{
tw.tw_hour = CVT2; cp+=2;
tw.tw_min = CVT2; cp+=2;
tw.tw_sec = CVT2; cp+=2;
BEGIN Z;
}
break;
case 17:
{
/*
* Luckly, 4 digit times in the range
* 1960-1999 aren't legal as hour
* and minutes.
*/
tw.tw_year = CVT4; cp+=4;
}
break;
case 18:
{
if (tw.tw_hour || tw.tw_min
|| tw.tw_sec) {
tw.tw_year = CVT4; cp+=4;
tw.tw_zone = 0;
} else {
tw.tw_hour = CVT2; cp+=2;
tw.tw_min = CVT2; cp+=2;
BEGIN Z;
}
}
break;
case 19:
ZONE(0 * 60);
break;
case 20:
ZONE(0 * 60);
break;
case 21:
ZONE(2 * 60);
break;
case 22:
ZONED(2 * 60);
break;
case 23:
ZONE(-5 * 60);
break;
case 24:
ZONED(-5 * 60);
break;
case 25:
ZONE(-6 * 60);
break;
case 26:
ZONED(-6 * 60);
break;
case 27:
ZONE(-7 * 60);
break;
case 28:
ZONED(-7 * 60);
break;
case 29:
ZONE(-8 * 60);
break;
case 30:
ZONED(-8 * 60);
break;
case 31:
ZONE(-(3 * 60 + 30));
break;
case 32:
ZONE(-4 * 60);
break;
case 33:
ZONED(-4 * 60);
break;
case 34:
ZONE(-9 * 60);
break;
case 35:
ZONED(-9 * 60);
break;
case 36:
ZONE(-10 * 60);
break;
case 37:
ZONED(-10 * 60);
break;
case 38:
ZONED(-1 * 60);
break;
case 39:
{
tw.tw_zone = 60 * (('a'-1) - LC(*cp));
EXPZONE;
}
break;
case 40:
{
tw.tw_zone = 60 * ('a' - LC(*cp));
EXPZONE;
}
break;
case 41:
{
tw.tw_zone = 60 * (LC(*cp) - 'm');
EXPZONE;
}
break;
case 42:
{
cp++;
tw.tw_zone = ((cp[0] * 10 + cp[1])
-('0' * 10 + '0'))*60
+((cp[2] * 10 + cp[3])
-('0' * 10 + '0'));
EXPZONE;
#ifdef DSTXXX
zonehack (&tw);
#endif /* DSTXXX */
cp += 4;
}
break;
case 43:
{
cp++;
tw.tw_zone = (('0' * 10 + '0')
-(cp[0] * 10 + cp[1]))*60
+(('0' * 10 + '0')
-(cp[2] * 10 + cp[3]));
EXPZONE;
#ifdef DSTXXX
zonehack (&tw);
#endif /* DSTXXX */
cp += 4;
}
break;
case 44:
{
SKIPD;
tw.tw_year = CVT4; cp+=4;
}
break;
case 45:
case 46:
;
break;
case -1:
break;
default:
fprintf(yyout,"bad switch yylook %d",nstr);
} return(0); }
/* end of yylex */
#ifndef __cplusplus
static void __yy__unused() { main(); }
#endif
int yyvstop[] = {
0,
46,
0,
45,
0,
46,
0,
39,
0,
39,
0,
39,
0,
39,
0,
39,
0,
39,
0,
39,
0,
39,
0,
39,
0,
40,
0,
40,
0,
41,
0,
41,
0,
41,
0,
41,
0,
41,
0,
41,
0,
41,
0,
41,
0,
41,
0,
19,
0,
4,
0,
4,
0,
11,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
33,
0,
32,
0,
38,
0,
26,
0,
25,
0,
24,
0,
23,
0,
20,
0,
37,
0,
36,
0,
22,
0,
21,
0,
28,
0,
27,
0,
31,
0,
30,
0,
29,
0,
35,
0,
34,
0,
4,
0,
4,
0,
4,
0,
18,
0,
11,
0,
11,
0,
6,
0,
6,
0,
6,
0,
6,
0,
6,
0,
6,
0,
6,
0,
6,
0,
6,
0,
6,
0,
6,
0,
6,
0,
17,
18,
0,
1,
0,
2,
0,
18,
0,
10,
0,
12,
0,
14,
0,
6,
0,
17,
18,
0,
8,
0,
44,
0,
42,
0,
43,
0,
2,
0,
3,
0,
16,
0,
10,
0,
10,
0,
5,
0,
8,
0,
8,
0,
1,
0,
3,
0,
3,
0,
13,
0,
15,
0,
6,
0,
5,
0,
5,
0,
5,
0,
5,
0,
7,
0,
9,
0,
7,
0,
7,
0,
0};
# define YYTYPE int
struct yywork { YYTYPE verify, advance; } yycrank[] = {
{0,0}, {0,0}, {0,0}, {0,0},
{0,0}, {0,0}, {0,0}, {0,0},
{0,0}, {0,0}, {1,5}, {1,6},
{5,5}, {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}, {1,5}, {0,0}, {5,5},
{3,21}, {3,6}, {0,0}, {0,0},
{0,0}, {1,7}, {0,0}, {0,0},
{0,0}, {0,0}, {0,0}, {0,0},
{0,0}, {1,8}, {1,9}, {1,8},
{1,10}, {1,10}, {1,10}, {1,10},
{1,10}, {1,10}, {1,10}, {3,21},
{9,63}, {22,83}, {22,83}, {0,0},
{0,0}, {0,0}, {0,0}, {3,7},
{0,0}, {0,0}, {3,22}, {0,0},
{3,23}, {0,0}, {0,0}, {3,8},
{3,9}, {3,8}, {3,10}, {3,10},
{3,10}, {3,10}, {3,10}, {3,10},
{3,10}, {10,64}, {10,64}, {10,64},
{10,64}, {10,64}, {10,64}, {10,64},
{10,64}, {10,64}, {10,64}, {0,0},
{0,0}, {0,0}, {1,11}, {15,72},
{59,143}, {1,12}, {14,70}, {1,13},
{12,67}, {13,68}, {17,75}, {1,14},
{19,79}, {20,81}, {1,15}, {1,16},
{1,17}, {15,73}, {11,65}, {16,74},
{1,18}, {1,19}, {13,69}, {11,66},
{1,20}, {19,80}, {14,71}, {25,99},
{3,24}, {3,25}, {3,26}, {3,27},
{3,28}, {3,29}, {3,30}, {3,31},
{3,32}, {3,33}, {3,34}, {3,34},
{3,35}, {3,36}, {3,37}, {3,38},
{3,39}, {3,39}, {3,40}, {3,41},
{3,42}, {3,39}, {3,43}, {3,39},
{3,44}, {7,45}, {8,50}, {18,76},
{26,100}, {28,102}, {30,104}, {18,77},
{7,46}, {24,97}, {42,114}, {45,117},
{31,105}, {21,21}, {7,47}, {7,48},
{23,84}, {23,84}, {7,49}, {26,101},
{28,103}, {24,65}, {38,112}, {18,78},
{24,98}, {8,50}, {24,66}, {31,106},
{36,74}, {46,118}, {49,123}, {56,139},
{36,111}, {57,140}, {55,137}, {60,144},
{21,21}, {38,113}, {8,51}, {55,138},
{8,52}, {8,53}, {8,53}, {8,53},
{8,53}, {8,53}, {8,53}, {8,53},
{8,53}, {8,53}, {8,53}, {8,54},
{21,82}, {21,82}, {21,82}, {21,82},
{21,82}, {21,82}, {21,82}, {21,82},
{21,82}, {21,82}, {47,119}, {61,145},
{62,146}, {23,85}, {23,86}, {23,87},
{44,115}, {23,88}, {35,72}, {23,89},
{23,90}, {35,109}, {23,91}, {50,50},
{33,70}, {23,92}, {23,93}, {33,107},
{23,94}, {58,141}, {47,120}, {44,116},
{35,73}, {23,95}, {65,148}, {48,121},
{35,110}, {23,96}, {8,55}, {51,124},
{66,149}, {8,56}, {33,108}, {8,57},
{33,71}, {67,150}, {50,50}, {8,58},
{48,122}, {58,142}, {8,59}, {8,60},
{8,61}, {68,151}, {69,152}, {70,153},
{8,62}, {73,158}, {71,154}, {50,124},
{71,155}, {74,159}, {51,124}, {52,134},
{52,134}, {52,134}, {52,134}, {52,134},
{52,134}, {52,134}, {52,134}, {52,134},
{52,134}, {75,160}, {76,161}, {77,162},
{78,163}, {79,164}, {51,133}, {51,133},
{51,133}, {51,133}, {51,133}, {51,133},
{51,133}, {51,133}, {51,133}, {51,133},
{53,135}, {53,135}, {53,135}, {53,135},
{53,135}, {53,135}, {53,135}, {53,135},
{53,135}, {53,135}, {54,136}, {54,136},
{54,136}, {54,136}, {54,136}, {54,136},
{54,136}, {54,136}, {54,136}, {54,136},
{72,156}, {80,165}, {81,166}, {50,125},
{93,111}, {85,97}, {50,126}, {72,157},
{50,127}, {97,170}, {91,107}, {92,109},
{50,128}, {64,50}, {98,171}, {50,129},
{50,130}, {50,131}, {99,172}, {51,55},
{85,98}, {50,132}, {51,56}, {100,173},
{51,57}, {91,108}, {92,110}, {101,174},
{51,58}, {102,175}, {103,176}, {51,59},
{51,60}, {51,61}, {104,177}, {105,178},
{64,50}, {51,62}, {63,135}, {63,135},
{63,135}, {63,135}, {63,135}, {63,135},
{63,147}, {63,147}, {63,147}, {63,147},
{106,179}, {64,51}, {107,180}, {64,52},
{82,167}, {82,167}, {82,167}, {82,167},
{82,167}, {82,167}, {82,167}, {82,167},
{82,167}, {82,167}, {64,54}, {83,168},
{83,168}, {83,168}, {83,168}, {83,168},
{83,168}, {83,168}, {83,168}, {83,168},
{83,168}, {84,169}, {84,169}, {84,169},
{84,169}, {84,169}, {84,169}, {84,169},
{84,169}, {84,169}, {84,169}, {108,181},
{109,182}, {110,183}, {111,184}, {112,185},
{113,186}, {115,187}, {116,188}, {117,189},
{118,190}, {119,191}, {120,192}, {121,193},
{122,194}, {123,195}, {124,124}, {126,198},
{125,196}, {64,55}, {127,199}, {128,200},
{64,56}, {125,197}, {64,57}, {129,202},
{130,203}, {131,204}, {64,58}, {132,205},
{133,206}, {64,59}, {64,60}, {64,61},
{137,216}, {138,217}, {139,218}, {64,62},
{140,219}, {124,124}, {141,220}, {128,201},
{134,206}, {135,210}, {135,210}, {135,210},
{135,210}, {135,210}, {135,210}, {135,210},
{135,210}, {135,210}, {135,210}, {133,206},
{142,221}, {143,223}, {142,222}, {144,225},
{145,226}, {146,227}, {153,236}, {155,157},
{143,224}, {158,238}, {159,239}, {134,206},
{133,207}, {160,240}, {162,242}, {133,208},
{133,208}, {133,208}, {133,208}, {133,208},
{133,208}, {133,208}, {133,208}, {133,208},
{133,208}, {148,229}, {134,207}, {134,209},
{134,209}, {134,209}, {134,209}, {134,209},
{134,209}, {134,209}, {134,209}, {134,209},
{134,209}, {136,211}, {147,228}, {147,228},
{147,228}, {147,228}, {147,228}, {147,228},
{147,228}, {147,228}, {147,228}, {147,228},
{148,229}, {149,229}, {124,125}, {150,229},
{154,229}, {124,126}, {163,243}, {124,127},
{190,252}, {192,254}, {196,258}, {124,128},
{136,211}, {191,250}, {124,129}, {124,130},
{124,131}, {151,229}, {156,229}, {152,234},
{124,132}, {157,229}, {161,234}, {164,234},
{149,229}, {165,234}, {150,229}, {154,229},
{136,212}, {136,212}, {136,212}, {136,212},
{136,212}, {136,212}, {136,212}, {136,212},
{136,212}, {136,212}, {136,213}, {166,234},
{151,229}, {156,229}, {152,234}, {194,250},
{157,229}, {161,234}, {164,234}, {189,250},
{165,234}, {195,250}, {193,250}, {197,259},
{198,260}, {199,261}, {152,234}, {200,262},
{203,267}, {161,234}, {164,234}, {201,263},
{165,234}, {201,264}, {166,234}, {167,247},
{167,247}, {167,247}, {167,247}, {167,247},
{167,247}, {167,247}, {167,247}, {167,247},
{167,247}, {148,230}, {166,234}, {204,268},
{205,269}, {136,214}, {168,248}, {168,248},
{168,248}, {168,248}, {168,248}, {168,248},
{168,248}, {168,248}, {168,248}, {168,248},
{206,206}, {191,253}, {208,207}, {209,207},
{136,215}, {212,213}, {214,274}, {150,232},
{169,249}, {169,249}, {169,249}, {169,249},
{169,249}, {169,249}, {169,249}, {169,249},
{169,249}, {169,249}, {189,251}, {202,265},
{156,237}, {149,231}, {152,235}, {206,206},
{210,271}, {211,211}, {202,266}, {215,275},
{154,157}, {194,256}, {195,257}, {220,283},
{222,224}, {225,285}, {151,233}, {193,255},
{226,286}, {227,287}, {230,157}, {231,290},
{164,244}, {232,291}, {161,241}, {165,245},
{233,292}, {235,293}, {236,294}, {210,271},
{211,211}, {237,157}, {238,295}, {239,296},
{166,246}, {207,270}, {207,270}, {207,270},
{207,270}, {207,270}, {207,270}, {207,270},
{207,270}, {207,270}, {207,270}, {210,272},
{210,272}, {210,272}, {210,272}, {210,272},
{210,272}, {210,272}, {210,272}, {210,272},
{210,272}, {213,273}, {213,273}, {213,273},
{213,273}, {213,273}, {213,273}, {213,273},
{213,273}, {213,273}, {213,273}, {240,297},
{228,288}, {234,234}, {241,298}, {242,299},
{243,300}, {244,301}, {245,302}, {216,276},
{246,303}, {247,304}, {247,304}, {247,304},
{247,304}, {247,304}, {247,304}, {247,304},
{247,304}, {247,304}, {247,304}, {250,307},
{251,308}, {252,309}, {217,276}, {228,288},
{234,234}, {253,310}, {254,311}, {255,312},
{256,313}, {211,214}, {216,276}, {257,314},
{276,330}, {258,266}, {260,266}, {279,224},
{218,276}, {265,266}, {280,332}, {281,333},
{282,334}, {283,335}, {284,224}, {216,277},
{211,215}, {217,276}, {216,278}, {216,278},
{216,278}, {216,278}, {216,278}, {216,278},
{216,278}, {216,278}, {216,278}, {216,278},
{258,266}, {260,266}, {217,277}, {218,276},
{265,266}, {217,278}, {217,278}, {217,278},
{217,278}, {217,278}, {217,278}, {217,278},
{217,278}, {217,278}, {217,278}, {219,276},
{218,277}, {259,266}, {285,336}, {218,278},
{218,278}, {218,278}, {218,278}, {218,278},
{218,278}, {218,278}, {218,278}, {218,278},
{218,278}, {264,266}, {263,266}, {286,337},
{287,338}, {290,157}, {291,342}, {292,343},
{293,344}, {294,345}, {219,276}, {296,346},
{259,266}, {221,276}, {266,266}, {271,271},
{297,347}, {274,274}, {262,266}, {216,279},
{298,348}, {299,349}, {301,350}, {219,277},
{264,266}, {263,266}, {219,278}, {219,278},
{219,278}, {219,278}, {219,278}, {219,278},
{219,278}, {219,278}, {219,278}, {219,278},
{221,276}, {266,266}, {271,271}, {223,276},
{274,274}, {262,266}, {260,317}, {265,320},
{218,281}, {258,315}, {217,280}, {261,266},
{268,266}, {221,277}, {269,266}, {275,275},
{221,278}, {221,278}, {221,278}, {221,278},
{221,278}, {221,278}, {221,278}, {221,278},
{221,278}, {221,278}, {223,276}, {302,351},
{303,352}, {224,276}, {267,266}, {288,288},
{308,353}, {310,354}, {261,266}, {268,266},
{312,355}, {269,266}, {275,275}, {223,277},
{229,229}, {313,356}, {223,278}, {223,278},
{223,278}, {223,278}, {223,278}, {223,278},
{223,278}, {223,278}, {223,278}, {223,278},
{224,276}, {267,266}, {288,288}, {314,357},
{219,282}, {264,266}, {315,266}, {316,358},
{317,359}, {259,316}, {318,360}, {229,229},
{319,361}, {224,277}, {320,266}, {321,362},
{224,278}, {224,278}, {224,278}, {224,278},
{224,278}, {224,278}, {224,278}, {224,278},
{224,278}, {224,278}, {263,266}, {229,289},
{229,289}, {229,289}, {229,289}, {229,289},
{229,289}, {229,289}, {229,289}, {229,289},
{229,289}, {221,224}, {262,319}, {322,363},
{323,364}, {223,284}, {248,305}, {248,305},
{248,305}, {248,305}, {248,305}, {248,305},
{248,305}, {248,305}, {248,305}, {248,305},
{249,306}, {249,306}, {249,306}, {249,306},
{249,306}, {249,306}, {249,306}, {249,306},
{249,306}, {249,306}, {268,322}, {328,368},
{261,318}, {329,369}, {330,370}, {332,224},
{273,326}, {269,323}, {267,321}, {270,324},
{270,324}, {270,324}, {270,324}, {270,324},
{270,324}, {270,324}, {270,324}, {270,324},
{270,324}, {272,325}, {272,325}, {272,325},
{272,325}, {272,325}, {272,325}, {272,325},
{272,325}, {272,325}, {272,325}, {273,326},
{333,373}, {334,374}, {277,277}, {278,331},
{278,331}, {278,331}, {278,331}, {278,331},
{278,331}, {278,331}, {278,331}, {278,331},
{278,331}, {324,365}, {325,325}, {273,327},
{273,327}, {273,327}, {273,327}, {273,327},
{273,327}, {273,327}, {273,327}, {273,327},
{273,327}, {277,277}, {335,375}, {336,376},
{289,339}, {337,377}, {338,378}, {341,340},
{342,380}, {343,381}, {344,234}, {345,157},
{324,365}, {325,325}, {346,382}, {347,157},
{348,383}, {277,278}, {277,278}, {277,278},
{277,278}, {277,278}, {277,278}, {277,278},
{277,278}, {277,278}, {277,278}, {289,339},
{324,366}, {324,366}, {324,366}, {324,366},
{324,366}, {324,366}, {324,366}, {324,366},
{324,366}, {324,366}, {326,326}, {289,340},
{273,328}, {327,326}, {331,371}, {289,341},
{289,341}, {289,341}, {289,341}, {289,341},
{289,341}, {289,341}, {289,341}, {289,341},
{289,341}, {339,339}, {340,379}, {273,329},
{349,384}, {350,385}, {352,386}, {353,250},
{354,387}, {326,326}, {355,388}, {357,389},
{327,326}, {331,371}, {358,266}, {359,390},
{360,391}, {361,392}, {362,393}, {363,394},
{364,395}, {365,365}, {367,396}, {373,399},
{339,339}, {340,379}, {326,367}, {374,400},
{375,224}, {331,372}, {331,372}, {331,372},
{331,372}, {331,372}, {331,372}, {331,372},
{331,372}, {331,372}, {331,372}, {368,368},
{369,369}, {370,370}, {371,371}, {376,401},
{365,365}, {366,365}, {366,365}, {366,365},
{366,365}, {366,365}, {366,365}, {366,365},
{366,365}, {366,365}, {366,365}, {377,224},
{378,402}, {384,404}, {386,405}, {389,406},
{390,407}, {391,408}, {368,368}, {369,369},
{370,370}, {371,371}, {392,266}, {379,379},
{393,409}, {394,266}, {395,410}, {397,412},
{402,413}, {410,415}, {326,328}, {398,371},
{412,412}, {327,328}, {372,398}, {372,398},
{372,398}, {372,398}, {372,398}, {372,398},
{372,398}, {372,398}, {372,398}, {372,398},
{0,0}, {326,329}, {379,379}, {0,0},
{327,329}, {396,411}, {396,411}, {396,411},
{396,411}, {0,0}, {398,371}, {412,412},
{0,0}, {0,0}, {0,0}, {414,417},
{417,417}, {0,0}, {379,403}, {379,403},
{379,403}, {379,403}, {379,403}, {379,403},
{379,403}, {379,403}, {379,403}, {379,403},
{403,414}, {403,414}, {403,414}, {403,414},
{403,414}, {403,414}, {403,414}, {403,414},
{403,414}, {403,414}, {414,417}, {417,417},
{0,0}, {0,0}, {371,397}, {411,416},
{411,416}, {411,416}, {411,416}, {411,416},
{411,416}, {411,416}, {411,416}, {411,416},
{411,416}, {0,0}, {414,418}, {414,418},
{414,418}, {414,418}, {414,418}, {414,418},
{414,418}, {414,418}, {414,418}, {414,418},
{418,417}, {418,417}, {418,417}, {418,417},
{418,417}, {418,417}, {418,417}, {418,417},
{418,417}, {418,417}, {0,0}, {0,0},
{0,0}};
struct yysvf yysvec[] = {
{0, 0, 0},
{1, 0, 0},
{0, yysvec+1, 0},
{27, 0, 0},
{0, yysvec+3, 0},
{3, 0, yyvstop+1},
{0, 0, yyvstop+3},
{47, 0, 0},
{141, 0, 0},
{3, yysvec+8, 0},
{37, yysvec+8, 0},
{2, 0, 0},
{3, 0, 0},
{4, 0, 0},
{5, 0, 0},
{2, 0, 0},
{4, 0, 0},
{7, 0, 0},
{54, 0, 0},
{4, 0, 0},
{8, 0, 0},
{152, 0, yyvstop+5},
{13, 0, 0},
{116, 0, 0},
{57, 0, yyvstop+7},
{8, 0, yyvstop+9},
{52, 0, yyvstop+11},
{0, yysvec+12, yyvstop+13},
{53, 0, yyvstop+15},
{0, yysvec+13, yyvstop+17},
{45, 0, yyvstop+19},
{60, 0, yyvstop+21},
{0, 0, yyvstop+23},
{127, 0, 0},
{0, 0, yyvstop+25},
{121, 0, yyvstop+27},
{65, 0, yyvstop+29},
{0, yysvec+17, yyvstop+31},
{70, 0, yyvstop+33},
{0, 0, yyvstop+35},
{0, yysvec+18, yyvstop+37},
{0, yysvec+19, yyvstop+39},
{42, 0, yyvstop+41},
{0, yysvec+20, yyvstop+43},
{116, 0, yyvstop+45},
{45, 0, 0},
{66, 0, 0},
{113, 0, 0},
{131, 0, 0},
{77, 0, 0},
{214, 0, 0},
{230, 0, 0},
{215, 0, 0},
{240, yysvec+8, 0},
{250, 0, 0},
{70, 0, 0},
{78, 0, 0},
{80, 0, 0},
{132, 0, 0},
{3, 0, 0},
{72, 0, 0},
{112, 0, 0},
{111, 0, 0},
{298, yysvec+8, 0},
{312, 0, 0},
{120, 0, 0},
{137, 0, 0},
{146, 0, 0},
{155, 0, 0},
{149, 0, 0},
{145, 0, 0},
{150, 0, 0},
{194, 0, 0},
{147, 0, 0},
{143, 0, 0},
{157, 0, 0},
{158, 0, 0},
{163, 0, 0},
{166, 0, 0},
{160, 0, 0},
{208, 0, 0},
{210, 0, 0},
{312, 0, 0},
{323, 0, 0},
{333, 0, 0},
{213, 0, 0},
{0, yysvec+25, 0},
{0, yysvec+26, 0},
{0, yysvec+28, 0},
{0, yysvec+30, 0},
{0, yysvec+31, 0},
{218, 0, 0},
{219, 0, 0},
{197, 0, 0},
{0, yysvec+38, 0},
{0, yysvec+42, 0},
{0, yysvec+44, 0},
{201, 0, 0},
{206, 0, 0},
{210, 0, 0},
{215, 0, 0},
{219, 0, 0},
{221, 0, 0},
{222, 0, 0},
{226, 0, 0},
{227, 0, 0},
{240, 0, 0},
{242, 0, 0},
{275, 0, 0},
{276, 0, 0},
{277, 0, 0},
{278, 0, 0},
{279, 0, 0},
{280, 0, 0},
{0, 0, yyvstop+47},
{281, 0, 0},
{282, 0, 0},
{294, 0, 0},
{290, 0, 0},
{285, 0, 0},
{292, 0, 0},
{286, 0, 0},
{303, 0, 0},
{305, 0, 0},
{397, 0, 0},
{296, 0, 0},
{306, 0, 0},
{309, 0, 0},
{314, 0, 0},
{318, 0, 0},
{305, 0, 0},
{318, 0, 0},
{318, 0, 0},
{411, 0, yyvstop+49},
{423, 0, yyvstop+51},
{385, 0, 0},
{472, 0, yyvstop+53},
{310, 0, 0},
{322, 0, 0},
{327, 0, 0},
{330, 0, 0},
{320, 0, 0},
{336, 0, 0},
{331, 0, 0},
{329, 0, 0},
{332, 0, 0},
{337, 0, 0},
{434, 0, 0},
{460, 0, 0},
{484, 0, 0},
{486, 0, 0},
{500, 0, 0},
{502, 0, yyvstop+55},
{333, yysvec+149, 0},
{487, 0, 0},
{350, yysvec+150, 0},
{501, 0, 0},
{504, 0, 0},
{353, yysvec+152, yyvstop+57},
{353, yysvec+150, 0},
{346, yysvec+157, 0},
{505, 0, yyvstop+59},
{342, yysvec+157, 0},
{398, yysvec+152, yyvstop+61},
{506, 0, yyvstop+63},
{508, 0, yyvstop+65},
{522, 0, yyvstop+67},
{507, 0, 0},
{522, 0, 0},
{540, 0, 0},
{0, 0, yyvstop+69},
{0, 0, yyvstop+71},
{0, 0, yyvstop+73},
{0, 0, yyvstop+75},
{0, 0, yyvstop+77},
{0, 0, yyvstop+79},
{0, 0, yyvstop+81},
{0, 0, yyvstop+83},
{0, 0, yyvstop+85},
{0, 0, yyvstop+87},
{0, 0, yyvstop+89},
{0, 0, yyvstop+91},
{0, 0, yyvstop+93},
{0, 0, yyvstop+95},
{0, 0, yyvstop+97},
{0, 0, yyvstop+99},
{0, 0, yyvstop+101},
{0, 0, yyvstop+103},
{0, 0, yyvstop+105},
{498, 0, 0},
{400, yysvec+189, 0},
{464, 0, 0},
{401, yysvec+189, 0},
{501, 0, 0},
{494, 0, 0},
{500, 0, 0},
{388, 0, 0},
{440, 0, 0},
{445, 0, 0},
{447, 0, 0},
{437, 0, 0},
{443, 0, 0},
{485, 0, 0},
{430, 0, 0},
{451, 0, 0},
{456, 0, 0},
{571, 0, yyvstop+107},
{585, 0, 0},
{537, yysvec+206, yyvstop+109},
{536, yysvec+206, yyvstop+111},
{595, 0, yyvstop+113},
{596, 0, yyvstop+115},
{527, yysvec+211, yyvstop+117},
{605, 0, 0},
{477, 0, 0},
{498, 0, 0},
{662, 0, yyvstop+119},
{677, 0, yyvstop+121},
{691, 0, yyvstop+123},
{726, 0, yyvstop+125},
{494, yysvec+217, yyvstop+127},
{752, 0, yyvstop+129},
{511, yysvec+218, yyvstop+131},
{778, 0, yyvstop+133},
{804, 0, yyvstop+135},
{512, yysvec+218, yyvstop+137},
{505, yysvec+224, yyvstop+139},
{501, yysvec+224, yyvstop+141},
{655, yysvec+210, yyvstop+143},
{815, 0, 0},
{510, 0, 0},
{504, 0, 0},
{512, 0, 0},
{507, 0, 0},
{656, 0, yyvstop+146},
{528, 0, 0},
{529, 0, 0},
{525, 0, 0},
{533, 0, 0},
{522, 0, 0},
{565, 0, 0},
{552, 0, 0},
{566, 0, 0},
{571, 0, 0},
{554, 0, 0},
{570, 0, 0},
{571, 0, 0},
{625, 0, 0},
{830, 0, 0},
{840, 0, 0},
{639, 0, yyvstop+148},
{587, 0, 0},
{588, 0, 0},
{575, 0, 0},
{593, 0, 0},
{576, 0, 0},
{592, 0, 0},
{594, 0, 0},
{688, yysvec+216, 0},
{728, yysvec+217, 0},
{689, yysvec+218, 0},
{786, yysvec+219, 0},
{757, yysvec+217, 0},
{741, yysvec+221, 0},
{740, yysvec+218, 0},
{692, yysvec+223, 0},
{753, yysvec+224, 0},
{805, yysvec+218, 0},
{787, yysvec+224, 0},
{789, yysvec+224, 0},
{859, 0, 0},
{754, 0, yyvstop+150},
{869, 0, 0},
{895, 0, yyvstop+152},
{756, 0, yyvstop+154},
{790, 0, yyvstop+156},
{599, yysvec+224, yyvstop+158},
{921, 0, 0},
{883, 0, 0},
{591, 0, 0},
{587, 0, 0},
{594, 0, 0},
{587, 0, 0},
{608, 0, 0},
{602, 0, 0},
{629, 0, 0},
{653, 0, 0},
{651, 0, 0},
{806, 0, yyvstop+160},
{947, 0, yyvstop+163},
{637, 0, 0},
{656, 0, 0},
{658, 0, 0},
{635, 0, 0},
{643, 0, 0},
{0, yysvec+293, 0},
{661, 0, 0},
{663, 0, 0},
{668, 0, 0},
{660, 0, 0},
{0, yysvec+293, 0},
{670, 0, 0},
{714, 0, 0},
{697, 0, 0},
{0, 0, yyvstop+165},
{0, 0, yyvstop+167},
{0, 0, yyvstop+169},
{0, 0, yyvstop+171},
{695, 0, 0},
{0, yysvec+308, 0},
{717, 0, 0},
{0, yysvec+308, 0},
{720, 0, 0},
{728, 0, 0},
{724, 0, 0},
{734, 0, 0},
{728, 0, 0},
{735, 0, 0},
{729, 0, 0},
{751, 0, 0},
{746, 0, 0},
{742, 0, 0},
{777, 0, 0},
{775, 0, 0},
{932, 0, yyvstop+173},
{933, 0, yyvstop+175},
{981, 0, yyvstop+177},
{984, 0, yyvstop+179},
{790, 0, 0},
{792, 0, 0},
{786, 0, 0},
{985, 0, yyvstop+181},
{787, 0, 0},
{830, 0, 0},
{832, 0, 0},
{840, 0, 0},
{857, 0, 0},
{856, 0, 0},
{849, 0, 0},
{996, 0, yyvstop+183},
{997, 0, 0},
{915, yysvec+339, yyvstop+185},
{859, 0, 0},
{847, 0, 0},
{918, yysvec+234, yyvstop+187},
{842, 0, 0},
{865, 0, 0},
{853, 0, 0},
{871, 0, 0},
{910, 0, 0},
{912, 0, 0},
{0, yysvec+293, 0},
{910, 0, 0},
{970, 0, 0},
{915, 0, 0},
{917, 0, 0},
{0, yysvec+308, 0},
{915, 0, 0},
{902, 0, 0},
{921, 0, 0},
{923, 0, 0},
{907, 0, 0},
{924, 0, 0},
{922, 0, 0},
{915, 0, 0},
{1016, 0, yyvstop+189},
{1001, yysvec+324, yyvstop+191},
{969, 0, 0},
{1034, 0, yyvstop+193},
{1035, 0, yyvstop+195},
{1036, 0, yyvstop+197},
{1037, 0, yyvstop+199},
{1034, yysvec+331, yyvstop+201},
{926, 0, 0},
{917, 0, 0},
{911, 0, 0},
{946, 0, 0},
{945, 0, 0},
{962, 0, 0},
{1062, 0, 0},
{0, yysvec+347, 0},
{0, yysvec+345, 0},
{0, yysvec+347, 0},
{0, yysvec+293, 0},
{960, 0, 0},
{0, yysvec+293, 0},
{965, 0, 0},
{0, yysvec+308, 0},
{0, yysvec+308, 0},
{966, 0, 0},
{963, 0, 0},
{951, 0, 0},
{949, 0, 0},
{971, 0, 0},
{959, 0, 0},
{976, 0, 0},
{1043, 0, 0},
{959, 0, 0},
{1070, 0, yyvstop+203},
{0, yysvec+377, 0},
{0, yysvec+375, 0},
{0, yysvec+377, 0},
{975, 0, 0},
{1072, 0, 0},
{0, yysvec+347, 0},
{0, yysvec+293, 0},
{0, yysvec+308, 0},
{0, yysvec+394, 0},
{0, yysvec+392, 0},
{0, yysvec+394, 0},
{976, 0, 0},
{1087, 0, 0},
{1071, 0, yyvstop+205},
{0, yysvec+377, 0},
{1098, 0, yyvstop+207},
{0, yysvec+394, 0},
{0, 0, yyvstop+209},
{1099, 0, yyvstop+211},
{1108, yysvec+414, yyvstop+213},
{0, 0, 0}};
struct yywork *yytop = yycrank+1165;
struct yysvf *yybgin = yysvec+1;
unsigned char yymatch[] = {
00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,011 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
'0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' ,
'6' ,'6' ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,
'a' ,'a' ,01 ,'k' ,'k' ,'k' ,'n' ,'n' ,
'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,
'n' ,'n' ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
0};
unsigned 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};
/* @(#) A.11.01.00 HP C LANGUAGE TOOL (NCFORM) 980815 $ */
#ifdef YYREENTRANT
__thread int yylineno;
#else
int yylineno = 1;
#endif /* reentrant */
# define YYU(x) x
# define NLSTATE yyprevious=YYNEWLINE
#ifdef YYNLS16_WCHAR
# ifdef YYREENTRANT
__thread unsigned char yytextuc[YYLMAX * sizeof(wchar_t)];
# else
unsigned char yytextuc[YYLMAX * sizeof(wchar_t)];
# endif /* reentrant */
# ifdef YY_PCT_POINT /* for %pointer */
# ifdef YYREENTRANT
__thread wchar_t yytextarr[YYLMAX];
__thread wchar_t *yytext;
# else
wchar_t yytextarr[YYLMAX];
wchar_t *yytext;
# endif /* reentrant */
# else /* %array */
# ifdef YYREENTRANT
__thread wchar_t yytextarr[YYLMAX];
__thread wchar_t yytext[YYLMAX];
# else
wchar_t yytextarr[YYLMAX];
wchar_t yytext[YYLMAX];
# endif /* reentrant */
# endif /* YY_PCT_POINT */
#else
# ifdef YYREENTRANT
__thread unsigned char yytextuc;
# else
unsigned char yytextuc;
# endif /* reentrant */
# ifdef YY_PCT_POINT /* for %pointer */
# ifdef YYREENTRANT
__thread unsigned char yytextarr[YYLMAX];
__thread unsigned char *yytext;
# else
unsigned char yytextarr[YYLMAX];
unsigned char *yytext;
# endif /* reentrant */
# else /* %array */
# ifdef YYREENTRANT
__thread unsigned char yytextarr[YYLMAX];
# else
unsigned char yytextarr[YYLMAX];
# endif /* reentrant */
# ifdef YYCHAR_ARRAY
# ifdef YYREENTRANT
__thread char yytext[YYLMAX];
# else
char yytext[YYLMAX];
# endif /* reentrant */
# else
# ifdef YYREENTRANT
__thread unsigned char yytext[YYLMAX];
# else
unsigned char yytext[YYLMAX];
# endif /* reentrant */
# endif /* YYCHAR_ARRAY */
# endif /* YY_PCT_POINT */
#endif /* YYNLS16_WCHAR */
#ifdef YYREENTRANT
__thread struct yysvf *yylstate[YYLMAX], **yylsp, **yyolsp;
__thread unsigned char yysbuf[YYLMAX];
__thread unsigned char *yysptr; /* = yysbuf; */
__thread int *yyfnd;
__thread extern struct yysvf *yyestate;
#else
struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
unsigned char yysbuf[YYLMAX];
unsigned char *yysptr = yysbuf;
int *yyfnd;
extern struct yysvf *yyestate;
#endif
#ifdef YYREENTRANT
__thread int yyprevious; /* YYNEWLINE; */
#else
int yyprevious = YYNEWLINE;
#endif
#ifdef YYREENTRANT
/*
* initialize tls data. These were global data and were init
* when declared. Lex will always generate this function
* but invoke it only once.
*/
yyinit_tls()
{
yylineno = 1;
yysptr = yysbuf;
yyprevious = YYNEWLINE;
if (!yyin) yyin = stdin;
if (!yyout) yyout = stdout;
}
#endif
yylook(){
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;
* ***** nls8 ***** */
unsigned char *yylastch, sec, third, fourth;
/* start off machines */
# ifdef LEXDEBUG
debug = 0;
# endif
yyfirst=1;
if (!yymorfg)
#ifdef YYNLS16_WCHAR
yylastch = yytextuc;
#else
# ifdef YYCHAR_ARRAY
yylastch = (unsigned char *)yytext;
# else
yylastch = yytext;
# endif
#endif
else {
yymorfg=0;
#ifdef YYNLS16_WCHAR
yylastch = yytextuc+yylenguc;
#else
# ifdef YYCHAR_ARRAY
yylastch = (unsigned char *)yytext+yyleng;
# else
yylastch = yytext+yyleng;
# endif
#endif
}
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 = &yycrank[yystate->yystoff];
if(yyt == yycrank && !yyfirst){ /* may not be any transitions
*/
yyz = yystate->yyother;
if(yyz == 0)break;
if(yyz->yystoff == 0)break;
}
*yylastch++ = yych = input();
yyfirst=0;
tryagain:
# ifdef LEXDEBUG
if(debug){
fprintf(yyout,"char ");
allprint(yych);
putchar('\n');
}
# endif
yyr = yyt;
if ((long)yyt > (long)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;
goto contin;
}
}
# ifdef YYOPTIM
else if((long)yyt < (long)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;
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;
goto contin;
}
}
if ((yystate = yystate->yyother) && (yyt =
&yycrank[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;
#ifdef YYNLS16_WCHAR
yylenguc = yylastch-yytextuc+1;
yytextuc[yylenguc] = 0;
#else
# ifdef YYCHAR_ARRAY
yyleng = yylastch-(unsigned char*)yytext+1;
# else
yyleng = yylastch-yytext+1;
# endif
yytext[yyleng] = 0;
#endif
# ifdef LEXDEBUG
if(debug){
fprintf(yyout,"\nmatch ");
#ifdef YYNLS16_WCHAR
sprint(yytextuc);
#else
sprint(yytext);
#endif
fprintf(yyout," action %d\n",*yyfnd);
}
# endif
return(*yyfnd++);
}
unput(*yylastch);
}
#ifdef YYNLS16_WCHAR
if (yytextuc[0] == 0 /* && feof(yyin) */)
#else
if (yytext[0] == 0 /* && feof(yyin) */)
#endif
{
yysptr=yysbuf;
return(0);
}
#ifdef YYNLS16_WCHAR
yyprevious = yytextuc[0] = input();
#else
yyprevious = yytext[0] = input();
#endif
if (yyprevious>0) {
output(yyprevious);
#ifdef YYNLS16
if (yynls16) {
int noBytes;
sec = input();
third = input();
fourth = input();
#ifdef YYNLS16_WCHAR
noBytes = MultiByte(yytextuc[0],sec,third,fourth);
#else
noBytes = MultiByte(yytext[0],sec,third,fourth);
#endif
switch(noBytes) {
case 2:
#ifdef YYNLS16_WCHAR
output(yyprevious=yytextuc[0]=sec);
#else
output(yyprevious=yytext[0]=sec);
#endif
unput(fourth);
unput(third);
break;
case 3:
#ifdef YYNLS16_WCHAR
output(yyprevious=yytextuc[0]=sec);
output(yyprevious=yytextuc[0]=third);
#else
output(yyprevious=yytext[0]=sec);
output(yyprevious=yytext[0]=third);
#endif
unput(fourth);
break;
case 4:
#ifdef YYNLS16_WCHAR
output(yyprevious=yytextuc[0]=sec);
output(yyprevious=yytextuc[0]=third);
output(yyprevious=yytextuc[0]=fourth);
#else
output(yyprevious=yytext[0]=sec);
output(yyprevious=yytext[0]=third);
output(yyprevious=yytext[0]=fourth);
#endif
break;
default:
unput(fourth);
unput(third);
unput(sec);
break;
}
}
#endif
}
#ifdef YYNLS16_WCHAR
yylastch=yytextuc;
#else
# ifdef YYCHAR_ARRAY
yylastch=(unsigned char*)yytext;
# else
yylastch=yytext;
# endif
#endif
# ifdef LEXDEBUG
if(debug)putchar('\n');
# endif
}
}
# ifdef __cplusplus
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 */
yyinput(){
return(input());
}
#if (defined(__cplusplus) || defined(__STDC__))
void yyoutput(int c)
#else
yyoutput(c)
int c;
# endif
{
output(c);
}
#if (defined(__cplusplus) || defined(__STDC__))
void yyunput(int c)
#else
yyunput(c)
int c;
#endif
{
unput(c);
}