1 #ifndef lint
2 static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
3 #endif
4 #define YYBYACC 1
5 #define YYMAJOR 1
6 #define YYMINOR 9
7 #define yyclearin (yychar=(-1))
8 #define yyerrok (yyerrflag=0)
9 #define YYRECOVERING (yyerrflag!=0)
10 #define YYPREFIX "yy"
11 #define YYERRCODE 256
12 short yylhs[] = { -1,
13 0,
14 };
15 short yylen[] = { 2,
16 1,
17 };
18 short yydefred[] = { 0,
19 1, 0,
20 };
21 short yydgoto[] = { 2,
22 };
23 short yysindex[] = { -256,
24 0, 0,
25 };
26 short yyrindex[] = { 0,
27 0, 0,
28 };
29 short yygindex[] = { 0,
30 };
31 #define YYTABLESIZE 0
32 short yytable[] = { 1,
33 };
34 short yycheck[] = { 256,
35 };
36 #define YYFINAL 2
37 #ifndef YYDEBUG
38 #define YYDEBUG 0
39 #endif
40 #define YYMAXTOKEN 0
41 #if YYDEBUG
42 char *yyname[] = {
43 "end-of-file",
44 };
45 char *yyrule[] = {
46 "$accept : S",
47 "S : error",
48 };
49 #endif
50 #ifndef YYSTYPE
51 typedef int YYSTYPE;
52 #endif
53 #ifdef YYSTACKSIZE
54 #undef YYMAXDEPTH
55 #define YYMAXDEPTH YYSTACKSIZE
56 #else
57 #ifdef YYMAXDEPTH
58 #define YYSTACKSIZE YYMAXDEPTH
59 #else
60 #define YYSTACKSIZE 500
61 #define YYMAXDEPTH 500
62 #endif
63 #endif
64 int yydebug;
65 int yynerrs;
66 int yyerrflag;
67 int yychar;
68 short *yyssp;
69 YYSTYPE *yyvsp;
70 YYSTYPE yyval;
71 YYSTYPE yylval;
72 short yyss[YYSTACKSIZE];
73 YYSTYPE yyvs[YYSTACKSIZE];
74 #define yystacksize YYSTACKSIZE
75 #line 4 "error.y"
main()76 main(){printf("yyparse() = %d\n",yyparse());}
yylex()77 yylex(){return-1;}
yyerror(s)78 yyerror(s)char*s;{printf("%s\n",s);}
79 #line 80 "error.tab.c"
80 #define YYABORT goto yyabort
81 #define YYREJECT goto yyabort
82 #define YYACCEPT goto yyaccept
83 #define YYERROR goto yyerrlab
84 int
yyparse()85 yyparse()
86 {
87 register int yym, yyn, yystate;
88 #if YYDEBUG
89 register char *yys;
90 extern char *getenv();
91
92 if (yys = getenv("YYDEBUG"))
93 {
94 yyn = *yys;
95 if (yyn >= '0' && yyn <= '9')
96 yydebug = yyn - '0';
97 }
98 #endif
99
100 yynerrs = 0;
101 yyerrflag = 0;
102 yychar = (-1);
103
104 yyssp = yyss;
105 yyvsp = yyvs;
106 *yyssp = yystate = 0;
107
108 yyloop:
109 if (yyn = yydefred[yystate]) goto yyreduce;
110 if (yychar < 0)
111 {
112 if ((yychar = yylex()) < 0) yychar = 0;
113 #if YYDEBUG
114 if (yydebug)
115 {
116 yys = 0;
117 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
118 if (!yys) yys = "illegal-symbol";
119 printf("%sdebug: state %d, reading %d (%s)\n",
120 YYPREFIX, yystate, yychar, yys);
121 }
122 #endif
123 }
124 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
125 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
126 {
127 #if YYDEBUG
128 if (yydebug)
129 printf("%sdebug: state %d, shifting to state %d\n",
130 YYPREFIX, yystate, yytable[yyn]);
131 #endif
132 if (yyssp >= yyss + yystacksize - 1)
133 {
134 goto yyoverflow;
135 }
136 *++yyssp = yystate = yytable[yyn];
137 *++yyvsp = yylval;
138 yychar = (-1);
139 if (yyerrflag > 0) --yyerrflag;
140 goto yyloop;
141 }
142 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
143 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
144 {
145 yyn = yytable[yyn];
146 goto yyreduce;
147 }
148 if (yyerrflag) goto yyinrecovery;
149 #ifdef lint
150 goto yynewerror;
151 #endif
152 yynewerror:
153 yyerror("syntax error");
154 #ifdef lint
155 goto yyerrlab;
156 #endif
157 yyerrlab:
158 ++yynerrs;
159 yyinrecovery:
160 if (yyerrflag < 3)
161 {
162 yyerrflag = 3;
163 for (;;)
164 {
165 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
166 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
167 {
168 #if YYDEBUG
169 if (yydebug)
170 printf("%sdebug: state %d, error recovery shifting\
171 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
172 #endif
173 if (yyssp >= yyss + yystacksize - 1)
174 {
175 goto yyoverflow;
176 }
177 *++yyssp = yystate = yytable[yyn];
178 *++yyvsp = yylval;
179 goto yyloop;
180 }
181 else
182 {
183 #if YYDEBUG
184 if (yydebug)
185 printf("%sdebug: error recovery discarding state %d\n",
186 YYPREFIX, *yyssp);
187 #endif
188 if (yyssp <= yyss) goto yyabort;
189 --yyssp;
190 --yyvsp;
191 }
192 }
193 }
194 else
195 {
196 if (yychar == 0) goto yyabort;
197 #if YYDEBUG
198 if (yydebug)
199 {
200 yys = 0;
201 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
202 if (!yys) yys = "illegal-symbol";
203 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
204 YYPREFIX, yystate, yychar, yys);
205 }
206 #endif
207 yychar = (-1);
208 goto yyloop;
209 }
210 yyreduce:
211 #if YYDEBUG
212 if (yydebug)
213 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
214 YYPREFIX, yystate, yyn, yyrule[yyn]);
215 #endif
216 yym = yylen[yyn];
217 yyval = yyvsp[1-yym];
218 switch (yyn)
219 {
220 }
221 yyssp -= yym;
222 yystate = *yyssp;
223 yyvsp -= yym;
224 yym = yylhs[yyn];
225 if (yystate == 0 && yym == 0)
226 {
227 #if YYDEBUG
228 if (yydebug)
229 printf("%sdebug: after reduction, shifting from state 0 to\
230 state %d\n", YYPREFIX, YYFINAL);
231 #endif
232 yystate = YYFINAL;
233 *++yyssp = YYFINAL;
234 *++yyvsp = yyval;
235 if (yychar < 0)
236 {
237 if ((yychar = yylex()) < 0) yychar = 0;
238 #if YYDEBUG
239 if (yydebug)
240 {
241 yys = 0;
242 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
243 if (!yys) yys = "illegal-symbol";
244 printf("%sdebug: state %d, reading %d (%s)\n",
245 YYPREFIX, YYFINAL, yychar, yys);
246 }
247 #endif
248 }
249 if (yychar == 0) goto yyaccept;
250 goto yyloop;
251 }
252 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
253 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
254 yystate = yytable[yyn];
255 else
256 yystate = yydgoto[yym];
257 #if YYDEBUG
258 if (yydebug)
259 printf("%sdebug: after reduction, shifting from state %d \
260 to state %d\n", YYPREFIX, *yyssp, yystate);
261 #endif
262 if (yyssp >= yyss + yystacksize - 1)
263 {
264 goto yyoverflow;
265 }
266 *++yyssp = yystate;
267 *++yyvsp = yyval;
268 goto yyloop;
269 yyoverflow:
270 yyerror("yacc stack overflow");
271 yyabort:
272 return (1);
273 yyaccept:
274 return (0);
275 }
276