#
#define YYLMAX 200

# define BINARY 1
# define HASH 2
int yylexl();
extern int yyleng; extern char yytext[];
extern struct {int *yyaa, *yybb, *yycc;} yysvec[], *yybgin;
int (*yyplex)() &yylexl;

yylex() {
return( (*yyplex)() );
}
# define REJECT  {nstr=yyreject(); goto fussy;}
# define ECHO printf("%s", yytext);


yylexl() {
int nstr;
char s[200];
while((nstr=yylook()) >= 0)
fussy: switch(nstr)
 {

 case 0:
 if (yywrap()) return(0); break;
  
case 1:
return(Int);break;  
case 2:
return(Char);break;  
case 3:
return(String);break;  
case 4:
return(Size);break;  
case 5:
return(Exist);break;  
case 6:
{
	yylval = HASH;
	return(Method);
	}break;  
case 7:
{
	yylval = BINARY;
	return(Method);
	}break;  
case 8:
{
	while (gets(s) && !streq(s,"%}"))
		puts(s);
	}break;  
case 9:
return(0);break;  
case 10:
;break;  
case 11:
{
		return(name);
		}break;  
case 12:
{
	scanf (-1, yytext, "%d", &yylval);
	return(number);
	}break;  
case 13:
return('(');break;  
case 14:
return(')');break;  
case 15:
return(yytext[0]);break;;}
}

streq(s,t)
	char *s, *t;
{
int c;
while ((c= *s++) == *t++)
	if (c==0)
		return(1);
return(0);
}
# define YYNEWLINE 10
struct yywork {int *verify, *advance;} yycrank[] {
0, 0,
0, 0,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+12,
yysvec+1, yysvec+13,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+12,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+14,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+15,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+17,
yysvec+1, yysvec+11,
yysvec+1, yysvec+18,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+16,
yysvec+1, yysvec+19,
yysvec+1, yysvec+20,
yysvec+1, yysvec+16,
yysvec+1, yysvec+21,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+22,
yysvec+1, yysvec+23,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+24,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+16,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+1, yysvec+11,
yysvec+3, yysvec+4,
yysvec+5, yysvec+6,
yysvec+6, yysvec+7,
yysvec+7, yysvec+8,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+19, yysvec+25,
yysvec+20, yysvec+26,
yysvec+21, yysvec+27,
yysvec+22, yysvec+28,
yysvec+23, yysvec+29,
yysvec+25, yysvec+32,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+9, yysvec+9,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+10, yysvec+10,
yysvec+24, yysvec+30,
yysvec+26, yysvec+33,
yysvec+27, yysvec+34,
yysvec+28, yysvec+35,
yysvec+29, yysvec+36,
yysvec+30, yysvec+37,
yysvec+31, yysvec+38,
yysvec+32, yysvec+39,
yysvec+33, yysvec+40,
yysvec+34, yysvec+41,
yysvec+35, yysvec+42,
yysvec+24, yysvec+31,
yysvec+37, yysvec+43,
yysvec+38, yysvec+44,
yysvec+39, yysvec+45,
yysvec+41, yysvec+46,
yysvec+44, yysvec+47,
yysvec+45, yysvec+48,
yysvec+47, yysvec+49,
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, 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,
0, 0,
0, 0,
0};
int yyvstop[] {
0,
8,
0,
9,
0,
11,
0,
12,
0,
15,
0,
10,
15,
0,
10,
0,
12,
15,
0,
11,
15,
0,
13,
15,
0,
14,
15,
0,
1,
11,
0,
2,
11,
0,
6,
11,
0,
4,
11,
0,
5,
11,
0,
7,
11,
0,
3,
11,
0,
0};
struct yysvf {
	struct yywork *yystoff;
	struct yysvf *yyother;
	int *yystops;} yysvec []{
0,0,0,
yycrank+1, 0,0,
yycrank+0, yysvec+1,0,
yycrank+6, 0,0,
0, 0,yyvstop+1,
yycrank+93, 0,0,
yycrank+94, 0,0,
yycrank+122, 0,0,
0, 0,yyvstop+3,
yycrank+68, 0,yyvstop+5,
yycrank+143, 0,yyvstop+7,
0, 0,yyvstop+9,
0, 0,yyvstop+11,
0, yysvec+5,yyvstop+14,
0, yysvec+3,yyvstop+9,
0, yysvec+10,yyvstop+16,
0, yysvec+9,yyvstop+19,
0, 0,yyvstop+22,
0, 0,yyvstop+25,
yycrank+54, yysvec+9,yyvstop+19,
yycrank+56, yysvec+9,yyvstop+19,
yycrank+41, yysvec+9,yyvstop+19,
yycrank+65, yysvec+9,yyvstop+19,
yycrank+53, yysvec+9,yyvstop+19,
yycrank+96, yysvec+9,yyvstop+19,
yycrank+54, yysvec+9,yyvstop+5,
yycrank+105, yysvec+9,yyvstop+5,
yycrank+98, yysvec+9,yyvstop+5,
yycrank+89, yysvec+9,yyvstop+5,
yycrank+89, yysvec+9,yyvstop+5,
yycrank+84, yysvec+9,yyvstop+5,
yycrank+93, yysvec+9,yyvstop+5,
yycrank+111, yysvec+9,yyvstop+5,
yycrank+95, yysvec+9,yyvstop+5,
yycrank+95, yysvec+9,yyvstop+5,
yycrank+107, yysvec+9,yyvstop+5,
0, yysvec+9,yyvstop+28,
yycrank+112, yysvec+9,yyvstop+5,
yycrank+109, yysvec+9,yyvstop+5,
yycrank+101, yysvec+9,yyvstop+5,
0, yysvec+9,yyvstop+31,
yycrank+100, yysvec+9,yyvstop+5,
0, yysvec+9,yyvstop+34,
0, yysvec+9,yyvstop+37,
yycrank+107, yysvec+9,yyvstop+5,
yycrank+97, yysvec+9,yyvstop+5,
0, yysvec+9,yyvstop+40,
yycrank+116, yysvec+9,yyvstop+5,
0, yysvec+9,yyvstop+43,
0, yysvec+9,yyvstop+46,
0,0,0};
int yyextra[] {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0};
struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
int *yyfnd, yymorfg, yyleng;
char yytext[YYLMAX];
struct yysvf *yybgin yysvec+1;
int yyprevious YYNEWLINE;
yylook ()
{
register struct yysvf *state, **lsp;
register struct yywork *r;
int ch, n;
char *yylastch;
/* start off machines */
if (!yymorfg)
	yylastch = yytext;
else
	{
	yymorfg=0;
	yylastch = yytext+yyleng-1;
	}
loop:
lsp = yylstate;
state = yybgin;
if (yyprevious==YYNEWLINE) state++;
for (;;)
	{
	if ((r = state->yystoff) == 0)
		if((state= state->yyother) ==0)
			break;
		else r = state->yystoff;
	*yylastch++ = ch = input();
	tryagain:
	r =+ ch;
	if (r->verify == state)
		*lsp++ = state = r->advance;
	else
	if ((state = state->yyother) && (r= state->yystoff))
		goto tryagain;
	else
		{
		unput(*--yylastch);
		break;
		}
	}
while (lsp-- > yylstate)
	{
	*yylastch-- = 0;
	if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0)
		{
		yyolsp = lsp;
		if (yyextra[*yyfnd])
			{
			while (yyback((*lsp)->yystops, -*yyfnd) != 1 && lsp>yylstate)
				{
				lsp--;
				unput(*yylastch--);
				}
			}
		yyprevious = *yylastch;
		yylsp = lsp;
		yyleng = yylastch-yytext+1;
		yytext[yyleng] = 0;
		return(*yyfnd++);
		}
	unput(*yylastch);
	}
if (yytext[0] == 0)
	return(0);
output(yyprevious = input());
yylastch=yytext;
goto loop;
}
yyback(p, m)
	int *p;
{
if (p==0) return(0);
while (*p)
	{
	if (*p++ == m)
		return(1);
	}
return(0);
}
