xref: /src/contrib/byacc/test/yacc/code_error.code.c (revision 8e022d3cdea10ee1039a632f670c27fd93f65625)
14ecea33aSBaptiste Daroussin /* original parser id follows */
24ecea33aSBaptiste Daroussin /* yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93" */
34ecea33aSBaptiste Daroussin /* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */
4aec86590SBaptiste Daroussin 
5aec86590SBaptiste Daroussin #define YYBYACC 1
68e022d3cSDag-Erling Smørgrav #define YYMAJOR 2
78e022d3cSDag-Erling Smørgrav #define YYMINOR 0
84ecea33aSBaptiste Daroussin #define YYCHECK "yyyymmdd"
9aec86590SBaptiste Daroussin 
10aec86590SBaptiste Daroussin #define YYEMPTY        (-1)
11aec86590SBaptiste Daroussin #define yyclearin      (yychar = YYEMPTY)
12aec86590SBaptiste Daroussin #define yyerrok        (yyerrflag = 0)
13aec86590SBaptiste Daroussin #define YYRECOVERING() (yyerrflag != 0)
144ecea33aSBaptiste Daroussin #define YYENOMEM       (-2)
154ecea33aSBaptiste Daroussin #define YYEOF          0
16aec86590SBaptiste Daroussin 
17aec86590SBaptiste Daroussin #ifndef yyparse
18aec86590SBaptiste Daroussin #define yyparse    error_parse
19aec86590SBaptiste Daroussin #endif /* yyparse */
20aec86590SBaptiste Daroussin 
21aec86590SBaptiste Daroussin #ifndef yylex
22aec86590SBaptiste Daroussin #define yylex      error_lex
23aec86590SBaptiste Daroussin #endif /* yylex */
24aec86590SBaptiste Daroussin 
25aec86590SBaptiste Daroussin #ifndef yyerror
26aec86590SBaptiste Daroussin #define yyerror    error_error
27aec86590SBaptiste Daroussin #endif /* yyerror */
28aec86590SBaptiste Daroussin 
29aec86590SBaptiste Daroussin #ifndef yychar
30aec86590SBaptiste Daroussin #define yychar     error_char
31aec86590SBaptiste Daroussin #endif /* yychar */
32aec86590SBaptiste Daroussin 
33aec86590SBaptiste Daroussin #ifndef yyval
34aec86590SBaptiste Daroussin #define yyval      error_val
35aec86590SBaptiste Daroussin #endif /* yyval */
36aec86590SBaptiste Daroussin 
37aec86590SBaptiste Daroussin #ifndef yylval
38aec86590SBaptiste Daroussin #define yylval     error_lval
39aec86590SBaptiste Daroussin #endif /* yylval */
40aec86590SBaptiste Daroussin 
41aec86590SBaptiste Daroussin #ifndef yydebug
42aec86590SBaptiste Daroussin #define yydebug    error_debug
43aec86590SBaptiste Daroussin #endif /* yydebug */
44aec86590SBaptiste Daroussin 
45aec86590SBaptiste Daroussin #ifndef yynerrs
46aec86590SBaptiste Daroussin #define yynerrs    error_nerrs
47aec86590SBaptiste Daroussin #endif /* yynerrs */
48aec86590SBaptiste Daroussin 
49aec86590SBaptiste Daroussin #ifndef yyerrflag
50aec86590SBaptiste Daroussin #define yyerrflag  error_errflag
51aec86590SBaptiste Daroussin #endif /* yyerrflag */
52aec86590SBaptiste Daroussin 
53aec86590SBaptiste Daroussin #ifndef yylhs
54aec86590SBaptiste Daroussin #define yylhs      error_lhs
55aec86590SBaptiste Daroussin #endif /* yylhs */
56aec86590SBaptiste Daroussin 
57aec86590SBaptiste Daroussin #ifndef yylen
58aec86590SBaptiste Daroussin #define yylen      error_len
59aec86590SBaptiste Daroussin #endif /* yylen */
60aec86590SBaptiste Daroussin 
61aec86590SBaptiste Daroussin #ifndef yydefred
62aec86590SBaptiste Daroussin #define yydefred   error_defred
63aec86590SBaptiste Daroussin #endif /* yydefred */
64aec86590SBaptiste Daroussin 
65aec86590SBaptiste Daroussin #ifndef yydgoto
66aec86590SBaptiste Daroussin #define yydgoto    error_dgoto
67aec86590SBaptiste Daroussin #endif /* yydgoto */
68aec86590SBaptiste Daroussin 
69aec86590SBaptiste Daroussin #ifndef yysindex
70aec86590SBaptiste Daroussin #define yysindex   error_sindex
71aec86590SBaptiste Daroussin #endif /* yysindex */
72aec86590SBaptiste Daroussin 
73aec86590SBaptiste Daroussin #ifndef yyrindex
74aec86590SBaptiste Daroussin #define yyrindex   error_rindex
75aec86590SBaptiste Daroussin #endif /* yyrindex */
76aec86590SBaptiste Daroussin 
77aec86590SBaptiste Daroussin #ifndef yygindex
78aec86590SBaptiste Daroussin #define yygindex   error_gindex
79aec86590SBaptiste Daroussin #endif /* yygindex */
80aec86590SBaptiste Daroussin 
81aec86590SBaptiste Daroussin #ifndef yytable
82aec86590SBaptiste Daroussin #define yytable    error_table
83aec86590SBaptiste Daroussin #endif /* yytable */
84aec86590SBaptiste Daroussin 
85aec86590SBaptiste Daroussin #ifndef yycheck
86aec86590SBaptiste Daroussin #define yycheck    error_check
87aec86590SBaptiste Daroussin #endif /* yycheck */
88aec86590SBaptiste Daroussin 
89aec86590SBaptiste Daroussin #ifndef yyname
90aec86590SBaptiste Daroussin #define yyname     error_name
91aec86590SBaptiste Daroussin #endif /* yyname */
92aec86590SBaptiste Daroussin 
93aec86590SBaptiste Daroussin #ifndef yyrule
94aec86590SBaptiste Daroussin #define yyrule     error_rule
95aec86590SBaptiste Daroussin #endif /* yyrule */
96aec86590SBaptiste Daroussin #define YYPREFIX "error_"
97aec86590SBaptiste Daroussin 
984ecea33aSBaptiste Daroussin #define YYPURE 0
994ecea33aSBaptiste Daroussin 
1004ecea33aSBaptiste Daroussin #line 2 "code_error.y"
1014ecea33aSBaptiste Daroussin 
1024ecea33aSBaptiste Daroussin #ifdef YYBISON
1034ecea33aSBaptiste Daroussin int yylex(void);
1044ecea33aSBaptiste Daroussin static void yyerror(const char *);
1054ecea33aSBaptiste Daroussin #endif
1064ecea33aSBaptiste Daroussin 
1074ecea33aSBaptiste Daroussin #line 108 "code_error.code.c"
1084ecea33aSBaptiste Daroussin 
1094ecea33aSBaptiste Daroussin #if ! defined(YYSTYPE) && ! defined(YYSTYPE_IS_DECLARED)
1104ecea33aSBaptiste Daroussin /* Default: YYSTYPE is the semantic value type. */
1114ecea33aSBaptiste Daroussin typedef int YYSTYPE;
1124ecea33aSBaptiste Daroussin # define YYSTYPE_IS_DECLARED 1
1134ecea33aSBaptiste Daroussin #endif
1144ecea33aSBaptiste Daroussin 
1154ecea33aSBaptiste Daroussin /* compatibility with bison */
1164ecea33aSBaptiste Daroussin #ifdef YYPARSE_PARAM
1174ecea33aSBaptiste Daroussin /* compatibility with FreeBSD */
1184ecea33aSBaptiste Daroussin # ifdef YYPARSE_PARAM_TYPE
1194ecea33aSBaptiste Daroussin #  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
1204ecea33aSBaptiste Daroussin # else
1214ecea33aSBaptiste Daroussin #  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
1224ecea33aSBaptiste Daroussin # endif
1234ecea33aSBaptiste Daroussin #else
1244ecea33aSBaptiste Daroussin # define YYPARSE_DECL() yyparse(void)
1254ecea33aSBaptiste Daroussin #endif
1264ecea33aSBaptiste Daroussin 
1274ecea33aSBaptiste Daroussin /* Parameters sent to lex. */
1284ecea33aSBaptiste Daroussin #ifdef YYLEX_PARAM
1294ecea33aSBaptiste Daroussin # define YYLEX_DECL() yylex(void *YYLEX_PARAM)
1304ecea33aSBaptiste Daroussin # define YYLEX yylex(YYLEX_PARAM)
1314ecea33aSBaptiste Daroussin #else
1324ecea33aSBaptiste Daroussin # define YYLEX_DECL() yylex(void)
1334ecea33aSBaptiste Daroussin # define YYLEX yylex()
1344ecea33aSBaptiste Daroussin #endif
1354ecea33aSBaptiste Daroussin 
1364ecea33aSBaptiste Daroussin /* Parameters sent to yyerror. */
1374ecea33aSBaptiste Daroussin #ifndef YYERROR_DECL
1384ecea33aSBaptiste Daroussin #define YYERROR_DECL() yyerror(const char *s)
1394ecea33aSBaptiste Daroussin #endif
1404ecea33aSBaptiste Daroussin #ifndef YYERROR_CALL
1414ecea33aSBaptiste Daroussin #define YYERROR_CALL(msg) yyerror(msg)
1424ecea33aSBaptiste Daroussin #endif
1434ecea33aSBaptiste Daroussin 
1444ecea33aSBaptiste Daroussin #define YYERRCODE 256
1454ecea33aSBaptiste Daroussin #define YYTABLESIZE 0
1464ecea33aSBaptiste Daroussin #define YYFINAL 2
1474ecea33aSBaptiste Daroussin #ifndef YYDEBUG
1484ecea33aSBaptiste Daroussin #define YYDEBUG 0
1494ecea33aSBaptiste Daroussin #endif
1504ecea33aSBaptiste Daroussin #define YYMAXTOKEN 256
1514ecea33aSBaptiste Daroussin #define YYUNDFTOKEN 259
1524ecea33aSBaptiste Daroussin #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
1534ecea33aSBaptiste Daroussin 
154aec86590SBaptiste Daroussin extern int YYPARSE_DECL();
155ea2af5c8SJung-uk Kim typedef int YYINT;
1564ecea33aSBaptiste Daroussin extern YYINT yylhs[];
1574ecea33aSBaptiste Daroussin extern YYINT yylen[];
1584ecea33aSBaptiste Daroussin extern YYINT yydefred[];
1594ecea33aSBaptiste Daroussin extern YYINT yydgoto[];
1604ecea33aSBaptiste Daroussin extern YYINT yysindex[];
1614ecea33aSBaptiste Daroussin extern YYINT yyrindex[];
1624ecea33aSBaptiste Daroussin extern YYINT yygindex[];
1634ecea33aSBaptiste Daroussin extern YYINT yytable[];
1644ecea33aSBaptiste Daroussin extern YYINT yycheck[];
165aec86590SBaptiste Daroussin 
166c5b5d71aSJung-uk Kim #if YYDEBUG || defined(yytname)
167aec86590SBaptiste Daroussin extern char *yyname[];
168c5b5d71aSJung-uk Kim #endif
169c5b5d71aSJung-uk Kim #if YYDEBUG
170aec86590SBaptiste Daroussin extern char *yyrule[];
171aec86590SBaptiste Daroussin #endif
172aec86590SBaptiste Daroussin 
173b53bb29fSJung-uk Kim #if YYDEBUG
174aec86590SBaptiste Daroussin int      yydebug;
175b53bb29fSJung-uk Kim #endif
176aec86590SBaptiste Daroussin 
177aec86590SBaptiste Daroussin int      yyerrflag;
178aec86590SBaptiste Daroussin int      yychar;
179aec86590SBaptiste Daroussin YYSTYPE  yyval;
180aec86590SBaptiste Daroussin YYSTYPE  yylval;
181b53bb29fSJung-uk Kim int      yynerrs;
182aec86590SBaptiste Daroussin 
183aec86590SBaptiste Daroussin /* define the initial stack-sizes */
184aec86590SBaptiste Daroussin #ifdef YYSTACKSIZE
185aec86590SBaptiste Daroussin #undef YYMAXDEPTH
186aec86590SBaptiste Daroussin #define YYMAXDEPTH  YYSTACKSIZE
187aec86590SBaptiste Daroussin #else
188aec86590SBaptiste Daroussin #ifdef YYMAXDEPTH
189aec86590SBaptiste Daroussin #define YYSTACKSIZE YYMAXDEPTH
190aec86590SBaptiste Daroussin #else
1913eb8784eSBaptiste Daroussin #define YYSTACKSIZE 10000
1923eb8784eSBaptiste Daroussin #define YYMAXDEPTH  10000
193aec86590SBaptiste Daroussin #endif
194aec86590SBaptiste Daroussin #endif
195aec86590SBaptiste Daroussin 
1963eb8784eSBaptiste Daroussin #define YYINITSTACKSIZE 200
197aec86590SBaptiste Daroussin 
198aec86590SBaptiste Daroussin typedef struct {
199aec86590SBaptiste Daroussin     unsigned stacksize;
2004ecea33aSBaptiste Daroussin     YYINT    *s_base;
2014ecea33aSBaptiste Daroussin     YYINT    *s_mark;
2024ecea33aSBaptiste Daroussin     YYINT    *s_last;
203aec86590SBaptiste Daroussin     YYSTYPE  *l_base;
204aec86590SBaptiste Daroussin     YYSTYPE  *l_mark;
205aec86590SBaptiste Daroussin } YYSTACKDATA;
206aec86590SBaptiste Daroussin /* variables for the parser stack */
207aec86590SBaptiste Daroussin static YYSTACKDATA yystack;
208aec86590SBaptiste Daroussin #line 12 "code_error.y"
209aec86590SBaptiste Daroussin 
210aec86590SBaptiste Daroussin #include <stdio.h>
211aec86590SBaptiste Daroussin 
212aec86590SBaptiste Daroussin #ifdef YYBYACC
213aec86590SBaptiste Daroussin extern int YYLEX_DECL();
214aec86590SBaptiste Daroussin #endif
215aec86590SBaptiste Daroussin 
216aec86590SBaptiste Daroussin int
main(void)217aec86590SBaptiste Daroussin main(void)
218aec86590SBaptiste Daroussin {
219aec86590SBaptiste Daroussin     printf("yyparse() = %d\n", yyparse());
220aec86590SBaptiste Daroussin     return 0;
221aec86590SBaptiste Daroussin }
222aec86590SBaptiste Daroussin 
223aec86590SBaptiste Daroussin int
yylex(void)224aec86590SBaptiste Daroussin yylex(void)
225aec86590SBaptiste Daroussin {
226aec86590SBaptiste Daroussin     return -1;
227aec86590SBaptiste Daroussin }
228aec86590SBaptiste Daroussin 
229aec86590SBaptiste Daroussin static void
yyerror(const char * s)230aec86590SBaptiste Daroussin yyerror(const char* s)
231aec86590SBaptiste Daroussin {
232aec86590SBaptiste Daroussin     printf("%s\n", s);
233aec86590SBaptiste Daroussin }
234b53bb29fSJung-uk Kim #line 235 "code_error.code.c"
235aec86590SBaptiste Daroussin 
236aec86590SBaptiste Daroussin #if YYDEBUG
237aec86590SBaptiste Daroussin #include <stdio.h>	/* needed for printf */
238aec86590SBaptiste Daroussin #endif
239aec86590SBaptiste Daroussin 
240aec86590SBaptiste Daroussin #include <stdlib.h>	/* needed for malloc, etc */
241aec86590SBaptiste Daroussin #include <string.h>	/* needed for memset */
242aec86590SBaptiste Daroussin 
243aec86590SBaptiste Daroussin /* allocate initial stack or double stack size, up to YYMAXDEPTH */
yygrowstack(YYSTACKDATA * data)244aec86590SBaptiste Daroussin static int yygrowstack(YYSTACKDATA *data)
245aec86590SBaptiste Daroussin {
246aec86590SBaptiste Daroussin     int i;
247aec86590SBaptiste Daroussin     unsigned newsize;
2484ecea33aSBaptiste Daroussin     YYINT *newss;
249aec86590SBaptiste Daroussin     YYSTYPE *newvs;
250aec86590SBaptiste Daroussin 
251aec86590SBaptiste Daroussin     if ((newsize = data->stacksize) == 0)
252aec86590SBaptiste Daroussin         newsize = YYINITSTACKSIZE;
253aec86590SBaptiste Daroussin     else if (newsize >= YYMAXDEPTH)
2544ecea33aSBaptiste Daroussin         return YYENOMEM;
255aec86590SBaptiste Daroussin     else if ((newsize *= 2) > YYMAXDEPTH)
256aec86590SBaptiste Daroussin         newsize = YYMAXDEPTH;
257aec86590SBaptiste Daroussin 
258c943539bSBaptiste Daroussin     i = (int) (data->s_mark - data->s_base);
2594ecea33aSBaptiste Daroussin     newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
260bf80e08eSJung-uk Kim     if (newss == NULL)
2614ecea33aSBaptiste Daroussin         return YYENOMEM;
262aec86590SBaptiste Daroussin 
263aec86590SBaptiste Daroussin     data->s_base = newss;
264aec86590SBaptiste Daroussin     data->s_mark = newss + i;
265aec86590SBaptiste Daroussin 
266aec86590SBaptiste Daroussin     newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
267bf80e08eSJung-uk Kim     if (newvs == NULL)
2684ecea33aSBaptiste Daroussin         return YYENOMEM;
269aec86590SBaptiste Daroussin 
270aec86590SBaptiste Daroussin     data->l_base = newvs;
271aec86590SBaptiste Daroussin     data->l_mark = newvs + i;
272aec86590SBaptiste Daroussin 
273aec86590SBaptiste Daroussin     data->stacksize = newsize;
274aec86590SBaptiste Daroussin     data->s_last = data->s_base + newsize - 1;
275aec86590SBaptiste Daroussin     return 0;
276aec86590SBaptiste Daroussin }
277aec86590SBaptiste Daroussin 
278aec86590SBaptiste Daroussin #if YYPURE || defined(YY_NO_LEAKS)
yyfreestack(YYSTACKDATA * data)279aec86590SBaptiste Daroussin static void yyfreestack(YYSTACKDATA *data)
280aec86590SBaptiste Daroussin {
281aec86590SBaptiste Daroussin     free(data->s_base);
282aec86590SBaptiste Daroussin     free(data->l_base);
283aec86590SBaptiste Daroussin     memset(data, 0, sizeof(*data));
284aec86590SBaptiste Daroussin }
285aec86590SBaptiste Daroussin #else
286aec86590SBaptiste Daroussin #define yyfreestack(data) /* nothing */
287aec86590SBaptiste Daroussin #endif
288aec86590SBaptiste Daroussin 
289aec86590SBaptiste Daroussin #define YYABORT  goto yyabort
290aec86590SBaptiste Daroussin #define YYREJECT goto yyabort
291aec86590SBaptiste Daroussin #define YYACCEPT goto yyaccept
292aec86590SBaptiste Daroussin #define YYERROR  goto yyerrlab
293aec86590SBaptiste Daroussin 
294aec86590SBaptiste Daroussin int
YYPARSE_DECL()295aec86590SBaptiste Daroussin YYPARSE_DECL()
296aec86590SBaptiste Daroussin {
297aec86590SBaptiste Daroussin     int yym, yyn, yystate;
298aec86590SBaptiste Daroussin #if YYDEBUG
299aec86590SBaptiste Daroussin     const char *yys;
300aec86590SBaptiste Daroussin 
301bf80e08eSJung-uk Kim     if ((yys = getenv("YYDEBUG")) != NULL)
302aec86590SBaptiste Daroussin     {
303aec86590SBaptiste Daroussin         yyn = *yys;
304aec86590SBaptiste Daroussin         if (yyn >= '0' && yyn <= '9')
305aec86590SBaptiste Daroussin             yydebug = yyn - '0';
306aec86590SBaptiste Daroussin     }
307aec86590SBaptiste Daroussin #endif
308aec86590SBaptiste Daroussin 
3098e022d3cSDag-Erling Smørgrav     /* yym is set below */
3108e022d3cSDag-Erling Smørgrav     /* yyn is set below */
311aec86590SBaptiste Daroussin     yynerrs = 0;
312aec86590SBaptiste Daroussin     yyerrflag = 0;
313aec86590SBaptiste Daroussin     yychar = YYEMPTY;
314aec86590SBaptiste Daroussin     yystate = 0;
315aec86590SBaptiste Daroussin 
316aec86590SBaptiste Daroussin #if YYPURE
317aec86590SBaptiste Daroussin     memset(&yystack, 0, sizeof(yystack));
318aec86590SBaptiste Daroussin #endif
319aec86590SBaptiste Daroussin 
3204ecea33aSBaptiste Daroussin     if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
321aec86590SBaptiste Daroussin     yystack.s_mark = yystack.s_base;
322aec86590SBaptiste Daroussin     yystack.l_mark = yystack.l_base;
323aec86590SBaptiste Daroussin     yystate = 0;
324aec86590SBaptiste Daroussin     *yystack.s_mark = 0;
325aec86590SBaptiste Daroussin 
326aec86590SBaptiste Daroussin yyloop:
327aec86590SBaptiste Daroussin     if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
328aec86590SBaptiste Daroussin     if (yychar < 0)
329aec86590SBaptiste Daroussin     {
330c5b5d71aSJung-uk Kim         yychar = YYLEX;
331c5b5d71aSJung-uk Kim         if (yychar < 0) yychar = YYEOF;
332aec86590SBaptiste Daroussin #if YYDEBUG
333aec86590SBaptiste Daroussin         if (yydebug)
334aec86590SBaptiste Daroussin         {
335c5b5d71aSJung-uk Kim             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
336aec86590SBaptiste Daroussin             printf("%sdebug: state %d, reading %d (%s)\n",
337aec86590SBaptiste Daroussin                     YYPREFIX, yystate, yychar, yys);
338aec86590SBaptiste Daroussin         }
339aec86590SBaptiste Daroussin #endif
340aec86590SBaptiste Daroussin     }
341c5b5d71aSJung-uk Kim     if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
342c5b5d71aSJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
343aec86590SBaptiste Daroussin     {
344aec86590SBaptiste Daroussin #if YYDEBUG
345aec86590SBaptiste Daroussin         if (yydebug)
346aec86590SBaptiste Daroussin             printf("%sdebug: state %d, shifting to state %d\n",
347aec86590SBaptiste Daroussin                     YYPREFIX, yystate, yytable[yyn]);
348aec86590SBaptiste Daroussin #endif
349c5b5d71aSJung-uk Kim         if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
350aec86590SBaptiste Daroussin         yystate = yytable[yyn];
351aec86590SBaptiste Daroussin         *++yystack.s_mark = yytable[yyn];
352aec86590SBaptiste Daroussin         *++yystack.l_mark = yylval;
353aec86590SBaptiste Daroussin         yychar = YYEMPTY;
354aec86590SBaptiste Daroussin         if (yyerrflag > 0)  --yyerrflag;
355aec86590SBaptiste Daroussin         goto yyloop;
356aec86590SBaptiste Daroussin     }
357c5b5d71aSJung-uk Kim     if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
358c5b5d71aSJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
359aec86590SBaptiste Daroussin     {
360aec86590SBaptiste Daroussin         yyn = yytable[yyn];
361aec86590SBaptiste Daroussin         goto yyreduce;
362aec86590SBaptiste Daroussin     }
363c5b5d71aSJung-uk Kim     if (yyerrflag != 0) goto yyinrecovery;
364aec86590SBaptiste Daroussin 
3654ecea33aSBaptiste Daroussin     YYERROR_CALL("syntax error");
366aec86590SBaptiste Daroussin 
367c5b5d71aSJung-uk Kim     goto yyerrlab; /* redundant goto avoids 'unused label' warning */
368aec86590SBaptiste Daroussin yyerrlab:
369aec86590SBaptiste Daroussin     ++yynerrs;
370aec86590SBaptiste Daroussin 
371aec86590SBaptiste Daroussin yyinrecovery:
372aec86590SBaptiste Daroussin     if (yyerrflag < 3)
373aec86590SBaptiste Daroussin     {
374aec86590SBaptiste Daroussin         yyerrflag = 3;
375aec86590SBaptiste Daroussin         for (;;)
376aec86590SBaptiste Daroussin         {
377c5b5d71aSJung-uk Kim             if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
378c5b5d71aSJung-uk Kim                     yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
379aec86590SBaptiste Daroussin             {
380aec86590SBaptiste Daroussin #if YYDEBUG
381aec86590SBaptiste Daroussin                 if (yydebug)
382aec86590SBaptiste Daroussin                     printf("%sdebug: state %d, error recovery shifting\
383aec86590SBaptiste Daroussin  to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
384aec86590SBaptiste Daroussin #endif
385c5b5d71aSJung-uk Kim                 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
386aec86590SBaptiste Daroussin                 yystate = yytable[yyn];
387aec86590SBaptiste Daroussin                 *++yystack.s_mark = yytable[yyn];
388aec86590SBaptiste Daroussin                 *++yystack.l_mark = yylval;
389aec86590SBaptiste Daroussin                 goto yyloop;
390aec86590SBaptiste Daroussin             }
391aec86590SBaptiste Daroussin             else
392aec86590SBaptiste Daroussin             {
393aec86590SBaptiste Daroussin #if YYDEBUG
394aec86590SBaptiste Daroussin                 if (yydebug)
395aec86590SBaptiste Daroussin                     printf("%sdebug: error recovery discarding state %d\n",
396aec86590SBaptiste Daroussin                             YYPREFIX, *yystack.s_mark);
397aec86590SBaptiste Daroussin #endif
398aec86590SBaptiste Daroussin                 if (yystack.s_mark <= yystack.s_base) goto yyabort;
399aec86590SBaptiste Daroussin                 --yystack.s_mark;
400aec86590SBaptiste Daroussin                 --yystack.l_mark;
401aec86590SBaptiste Daroussin             }
402aec86590SBaptiste Daroussin         }
403aec86590SBaptiste Daroussin     }
404aec86590SBaptiste Daroussin     else
405aec86590SBaptiste Daroussin     {
4064ecea33aSBaptiste Daroussin         if (yychar == YYEOF) goto yyabort;
407aec86590SBaptiste Daroussin #if YYDEBUG
408aec86590SBaptiste Daroussin         if (yydebug)
409aec86590SBaptiste Daroussin         {
410c5b5d71aSJung-uk Kim             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
411aec86590SBaptiste Daroussin             printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
412aec86590SBaptiste Daroussin                     YYPREFIX, yystate, yychar, yys);
413aec86590SBaptiste Daroussin         }
414aec86590SBaptiste Daroussin #endif
415aec86590SBaptiste Daroussin         yychar = YYEMPTY;
416aec86590SBaptiste Daroussin         goto yyloop;
417aec86590SBaptiste Daroussin     }
418aec86590SBaptiste Daroussin 
419aec86590SBaptiste Daroussin yyreduce:
420aec86590SBaptiste Daroussin #if YYDEBUG
421aec86590SBaptiste Daroussin     if (yydebug)
422aec86590SBaptiste Daroussin         printf("%sdebug: state %d, reducing by rule %d (%s)\n",
423aec86590SBaptiste Daroussin                 YYPREFIX, yystate, yyn, yyrule[yyn]);
424aec86590SBaptiste Daroussin #endif
425aec86590SBaptiste Daroussin     yym = yylen[yyn];
426c5b5d71aSJung-uk Kim     if (yym > 0)
427aec86590SBaptiste Daroussin         yyval = yystack.l_mark[1-yym];
428aec86590SBaptiste Daroussin     else
429aec86590SBaptiste Daroussin         memset(&yyval, 0, sizeof yyval);
430c5b5d71aSJung-uk Kim 
431aec86590SBaptiste Daroussin     switch (yyn)
432aec86590SBaptiste Daroussin     {
433aec86590SBaptiste Daroussin     }
434aec86590SBaptiste Daroussin     yystack.s_mark -= yym;
435aec86590SBaptiste Daroussin     yystate = *yystack.s_mark;
436aec86590SBaptiste Daroussin     yystack.l_mark -= yym;
437aec86590SBaptiste Daroussin     yym = yylhs[yyn];
438aec86590SBaptiste Daroussin     if (yystate == 0 && yym == 0)
439aec86590SBaptiste Daroussin     {
440aec86590SBaptiste Daroussin #if YYDEBUG
441aec86590SBaptiste Daroussin         if (yydebug)
442aec86590SBaptiste Daroussin             printf("%sdebug: after reduction, shifting from state 0 to\
443aec86590SBaptiste Daroussin  state %d\n", YYPREFIX, YYFINAL);
444aec86590SBaptiste Daroussin #endif
445aec86590SBaptiste Daroussin         yystate = YYFINAL;
446aec86590SBaptiste Daroussin         *++yystack.s_mark = YYFINAL;
447aec86590SBaptiste Daroussin         *++yystack.l_mark = yyval;
448aec86590SBaptiste Daroussin         if (yychar < 0)
449aec86590SBaptiste Daroussin         {
450c5b5d71aSJung-uk Kim             yychar = YYLEX;
451c5b5d71aSJung-uk Kim             if (yychar < 0) yychar = YYEOF;
452aec86590SBaptiste Daroussin #if YYDEBUG
453aec86590SBaptiste Daroussin             if (yydebug)
454aec86590SBaptiste Daroussin             {
455c5b5d71aSJung-uk Kim                 if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
456aec86590SBaptiste Daroussin                 printf("%sdebug: state %d, reading %d (%s)\n",
457aec86590SBaptiste Daroussin                         YYPREFIX, YYFINAL, yychar, yys);
458aec86590SBaptiste Daroussin             }
459aec86590SBaptiste Daroussin #endif
460aec86590SBaptiste Daroussin         }
4614ecea33aSBaptiste Daroussin         if (yychar == YYEOF) goto yyaccept;
462aec86590SBaptiste Daroussin         goto yyloop;
463aec86590SBaptiste Daroussin     }
464c5b5d71aSJung-uk Kim     if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
465c5b5d71aSJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
466aec86590SBaptiste Daroussin         yystate = yytable[yyn];
467aec86590SBaptiste Daroussin     else
468aec86590SBaptiste Daroussin         yystate = yydgoto[yym];
469aec86590SBaptiste Daroussin #if YYDEBUG
470aec86590SBaptiste Daroussin     if (yydebug)
471aec86590SBaptiste Daroussin         printf("%sdebug: after reduction, shifting from state %d \
472aec86590SBaptiste Daroussin to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
473aec86590SBaptiste Daroussin #endif
474c5b5d71aSJung-uk Kim     if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
4754ecea33aSBaptiste Daroussin     *++yystack.s_mark = (YYINT) yystate;
476aec86590SBaptiste Daroussin     *++yystack.l_mark = yyval;
477aec86590SBaptiste Daroussin     goto yyloop;
478aec86590SBaptiste Daroussin 
479aec86590SBaptiste Daroussin yyoverflow:
4804ecea33aSBaptiste Daroussin     YYERROR_CALL("yacc stack overflow");
481aec86590SBaptiste Daroussin 
482aec86590SBaptiste Daroussin yyabort:
483aec86590SBaptiste Daroussin     yyfreestack(&yystack);
484aec86590SBaptiste Daroussin     return (1);
485aec86590SBaptiste Daroussin 
486aec86590SBaptiste Daroussin yyaccept:
487aec86590SBaptiste Daroussin     yyfreestack(&yystack);
488aec86590SBaptiste Daroussin     return (0);
489aec86590SBaptiste Daroussin }
490