2 static char const yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
10 #define yyclearin (yychar=(YYEMPTY))
11 #define yyerrok (yyerrflag=0)
12 #define YYRECOVERING (yyerrflag!=0)
13 #if defined(c_plusplus) || defined(__cplusplus)
16 extern char *getenv();
17 extern void *realloc();
19 static int yygrowstack();
22 const short yylhs[] = { -1,
25 const short yylen[] = { 2,
28 const short yydefred[] = { 0,
31 const short yydgoto[] = { 2,
33 const short yysindex[] = { -256,
36 const short yyrindex[] = { 0,
39 const short yygindex[] = { 0,
42 const short yytable[] = { 1,
44 const short yycheck[] = { 256,
54 const char * const yyname[] = {
57 const char * const yyrule[] = {
67 #define YYMAXDEPTH YYSTACKSIZE
70 #define YYSTACKSIZE YYMAXDEPTH
72 #define YYSTACKSIZE 10000
73 #define YYMAXDEPTH 10000
76 #define YYINITSTACKSIZE 200
90 main(){printf("yyparse() = %d\n",yyparse());}
92 yyerror(s)char*s;{printf("%s\n",s);}
93 #line 92 "error.tab.c"
94 /* allocate initial stack or double stack size, up to YYMAXDEPTH */
95 static int yygrowstack()
101 if ((newsize = yystacksize) == 0)
102 newsize = YYINITSTACKSIZE;
103 else if (newsize >= YYMAXDEPTH)
105 else if ((newsize *= 2) > YYMAXDEPTH)
106 newsize = YYMAXDEPTH;
108 if ((newss = (short *)realloc(yyss, newsize * sizeof *newss)) == NULL)
112 if ((newvs = (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs)) == NULL)
116 yystacksize = newsize;
117 yysslim = yyss + newsize - 1;
121 #define YYABORT goto yyabort
122 #define YYREJECT goto yyabort
123 #define YYACCEPT goto yyaccept
124 #define YYERROR goto yyerrlab
129 register int yym, yyn, yystate;
131 register const char *yys;
133 if ((yys = getenv("YYDEBUG")))
136 if (yyn >= '0' && yyn <= '9')
145 if (yyss == NULL && yygrowstack()) goto yyoverflow;
148 *yyssp = yystate = 0;
151 if ((yyn = yydefred[yystate])) goto yyreduce;
154 if ((yychar = yylex()) < 0) yychar = 0;
159 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
160 if (!yys) yys = "illegal-symbol";
161 printf("%sdebug: state %d, reading %d (%s)\n",
162 YYPREFIX, yystate, yychar, yys);
166 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
167 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
171 printf("%sdebug: state %d, shifting to state %d\n",
172 YYPREFIX, yystate, yytable[yyn]);
174 if (yyssp >= yysslim && yygrowstack())
178 *++yyssp = yystate = yytable[yyn];
181 if (yyerrflag > 0) --yyerrflag;
184 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
185 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
190 if (yyerrflag) goto yyinrecovery;
191 #if defined(lint) || defined(__GNUC__)
195 yyerror("syntax error");
196 #if defined(lint) || defined(__GNUC__)
207 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
208 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
212 printf("%sdebug: state %d, error recovery shifting\
213 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
215 if (yyssp >= yysslim && yygrowstack())
219 *++yyssp = yystate = yytable[yyn];
227 printf("%sdebug: error recovery discarding state %d\n",
230 if (yyssp <= yyss) goto yyabort;
238 if (yychar == 0) goto yyabort;
243 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
244 if (!yys) yys = "illegal-symbol";
245 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
246 YYPREFIX, yystate, yychar, yys);
255 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
256 YYPREFIX, yystate, yyn, yyrule[yyn]);
259 yyval = yyvsp[1-yym];
267 if (yystate == 0 && yym == 0)
271 printf("%sdebug: after reduction, shifting from state 0 to\
272 state %d\n", YYPREFIX, YYFINAL);
279 if ((yychar = yylex()) < 0) yychar = 0;
284 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
285 if (!yys) yys = "illegal-symbol";
286 printf("%sdebug: state %d, reading %d (%s)\n",
287 YYPREFIX, YYFINAL, yychar, yys);
291 if (yychar == 0) goto yyaccept;
294 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
295 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
296 yystate = yytable[yyn];
298 yystate = yydgoto[yym];
301 printf("%sdebug: after reduction, shifting from state %d \
302 to state %d\n", YYPREFIX, *yyssp, yystate);
304 if (yyssp >= yysslim && yygrowstack())
312 yyerror("yacc stack overflow");