1272651Sbapt/* original parser id follows */
2272651Sbapt/* yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93" */
3319297Sdelphij/* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */
4272651Sbapt
5272651Sbapt#define YYBYACC 1
6272651Sbapt#define YYMAJOR 1
7272651Sbapt#define YYMINOR 9
8272651Sbapt#define YYCHECK "yyyymmdd"
9272651Sbapt
10272651Sbapt#define YYEMPTY        (-1)
11272651Sbapt#define yyclearin      (yychar = YYEMPTY)
12272651Sbapt#define yyerrok        (yyerrflag = 0)
13272651Sbapt#define YYRECOVERING() (yyerrflag != 0)
14272651Sbapt#define YYENOMEM       (-2)
15272651Sbapt#define YYEOF          0
16272651Sbapt#undef YYBTYACC
17272651Sbapt#define YYBTYACC 1
18272651Sbapt#define YYDEBUGSTR (yytrial ? YYPREFIX "debug(trial)" : YYPREFIX "debug")
19272651Sbapt
20272651Sbapt#ifndef yyparse
21272651Sbapt#define yyparse    destroy1_parse
22272651Sbapt#endif /* yyparse */
23272651Sbapt
24272651Sbapt#ifndef yylex
25272651Sbapt#define yylex      destroy1_lex
26272651Sbapt#endif /* yylex */
27272651Sbapt
28272651Sbapt#ifndef yyerror
29272651Sbapt#define yyerror    destroy1_error
30272651Sbapt#endif /* yyerror */
31272651Sbapt
32272651Sbapt#ifndef yychar
33272651Sbapt#define yychar     destroy1_char
34272651Sbapt#endif /* yychar */
35272651Sbapt
36272651Sbapt#ifndef yyval
37272651Sbapt#define yyval      destroy1_val
38272651Sbapt#endif /* yyval */
39272651Sbapt
40272651Sbapt#ifndef yylval
41272651Sbapt#define yylval     destroy1_lval
42272651Sbapt#endif /* yylval */
43272651Sbapt
44272651Sbapt#ifndef yydebug
45272651Sbapt#define yydebug    destroy1_debug
46272651Sbapt#endif /* yydebug */
47272651Sbapt
48272651Sbapt#ifndef yynerrs
49272651Sbapt#define yynerrs    destroy1_nerrs
50272651Sbapt#endif /* yynerrs */
51272651Sbapt
52272651Sbapt#ifndef yyerrflag
53272651Sbapt#define yyerrflag  destroy1_errflag
54272651Sbapt#endif /* yyerrflag */
55272651Sbapt
56272651Sbapt#ifndef yylhs
57272651Sbapt#define yylhs      destroy1_lhs
58272651Sbapt#endif /* yylhs */
59272651Sbapt
60272651Sbapt#ifndef yylen
61272651Sbapt#define yylen      destroy1_len
62272651Sbapt#endif /* yylen */
63272651Sbapt
64272651Sbapt#ifndef yydefred
65272651Sbapt#define yydefred   destroy1_defred
66272651Sbapt#endif /* yydefred */
67272651Sbapt
68272651Sbapt#ifndef yystos
69272651Sbapt#define yystos     destroy1_stos
70272651Sbapt#endif /* yystos */
71272651Sbapt
72272651Sbapt#ifndef yydgoto
73272651Sbapt#define yydgoto    destroy1_dgoto
74272651Sbapt#endif /* yydgoto */
75272651Sbapt
76272651Sbapt#ifndef yysindex
77272651Sbapt#define yysindex   destroy1_sindex
78272651Sbapt#endif /* yysindex */
79272651Sbapt
80272651Sbapt#ifndef yyrindex
81272651Sbapt#define yyrindex   destroy1_rindex
82272651Sbapt#endif /* yyrindex */
83272651Sbapt
84272651Sbapt#ifndef yygindex
85272651Sbapt#define yygindex   destroy1_gindex
86272651Sbapt#endif /* yygindex */
87272651Sbapt
88272651Sbapt#ifndef yytable
89272651Sbapt#define yytable    destroy1_table
90272651Sbapt#endif /* yytable */
91272651Sbapt
92272651Sbapt#ifndef yycheck
93272651Sbapt#define yycheck    destroy1_check
94272651Sbapt#endif /* yycheck */
95272651Sbapt
96272651Sbapt#ifndef yyname
97272651Sbapt#define yyname     destroy1_name
98272651Sbapt#endif /* yyname */
99272651Sbapt
100272651Sbapt#ifndef yyrule
101272651Sbapt#define yyrule     destroy1_rule
102272651Sbapt#endif /* yyrule */
103272651Sbapt
104272651Sbapt#if YYBTYACC
105272651Sbapt
106272651Sbapt#ifndef yycindex
107272651Sbapt#define yycindex   destroy1_cindex
108272651Sbapt#endif /* yycindex */
109272651Sbapt
110272651Sbapt#ifndef yyctable
111272651Sbapt#define yyctable   destroy1_ctable
112272651Sbapt#endif /* yyctable */
113272651Sbapt
114272651Sbapt#endif /* YYBTYACC */
115272651Sbapt
116272651Sbapt#define YYPREFIX "destroy1_"
117272651Sbapt
118272651Sbapt#define YYPURE 0
119272651Sbapt
120272651Sbapt#line 4 "btyacc_destroy1.y"
121272651Sbapt#include <stdlib.h>
122272651Sbapt
123272651Sbapttypedef enum {cGLOBAL, cLOCAL} class;
124272651Sbapttypedef enum {tREAL, tINTEGER} type;
125272651Sbapttypedef char * name;
126272651Sbapt
127272651Sbaptstruct symbol { class c; type t; name id; };
128272651Sbapttypedef struct symbol symbol;
129272651Sbapt
130272651Sbaptstruct namelist { symbol *s; struct namelist *next; };
131272651Sbapttypedef struct namelist namelist;
132272651Sbapt
133272651Sbaptstruct parser_param {
134272651Sbapt	int *rtrn;
135272651Sbapt	symbol ss;
136272651Sbapt};
137272651Sbapt
138272651Sbaptextern symbol *mksymbol(type t, class c, name id);
139272651Sbapt
140272651Sbapt#ifdef YYBISON
141272651Sbapt#define YYLEX_DECL() yylex(void)
142272651Sbapt#define YYERROR_DECL() yyerror(const char *s)
143272651Sbapt#endif
144272651Sbapt#ifdef YYSTYPE
145272651Sbapt#undef  YYSTYPE_IS_DECLARED
146272651Sbapt#define YYSTYPE_IS_DECLARED 1
147272651Sbapt#endif
148272651Sbapt#ifndef YYSTYPE_IS_DECLARED
149272651Sbapt#define YYSTYPE_IS_DECLARED 1
150319297Sdelphij#line 50 "btyacc_destroy1.y"
151272651Sbapttypedef union
152272651Sbapt{
153272651Sbapt    class	cval;
154272651Sbapt    type	tval;
155272651Sbapt    namelist *	nlist;
156272651Sbapt    name	id;
157272651Sbapt} YYSTYPE;
158272651Sbapt#endif /* !YYSTYPE_IS_DECLARED */
159272651Sbapt#line 160 "btyacc_destroy1.tab.c"
160272651Sbapt
161272651Sbapt/* compatibility with bison */
162272651Sbapt#ifdef YYPARSE_PARAM
163272651Sbapt/* compatibility with FreeBSD */
164272651Sbapt# ifdef YYPARSE_PARAM_TYPE
165272651Sbapt#  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
166272651Sbapt# else
167272651Sbapt#  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
168272651Sbapt# endif
169272651Sbapt#else
170272651Sbapt# define YYPARSE_DECL() yyparse(struct parser_param *param, int flag)
171272651Sbapt#endif
172272651Sbapt
173272651Sbapt/* Parameters sent to lex. */
174272651Sbapt#ifdef YYLEX_PARAM
175272651Sbapt# define YYLEX_DECL() yylex(void *YYLEX_PARAM)
176272651Sbapt# define YYLEX yylex(YYLEX_PARAM)
177272651Sbapt#else
178272651Sbapt# define YYLEX_DECL() yylex(void)
179272651Sbapt# define YYLEX yylex()
180272651Sbapt#endif
181272651Sbapt
182272651Sbapt/* Parameters sent to yyerror. */
183272651Sbapt#ifndef YYERROR_DECL
184272651Sbapt#define YYERROR_DECL() yyerror(struct parser_param *param, int flag, const char *s)
185272651Sbapt#endif
186272651Sbapt#ifndef YYERROR_CALL
187272651Sbapt#define YYERROR_CALL(msg) yyerror(param, flag, msg)
188272651Sbapt#endif
189272651Sbapt
190272651Sbapt#ifndef YYDESTRUCT_DECL
191272651Sbapt#define YYDESTRUCT_DECL() yydestruct(const char *msg, int psymb, YYSTYPE *val, struct parser_param *param, int flag)
192272651Sbapt#endif
193272651Sbapt#ifndef YYDESTRUCT_CALL
194272651Sbapt#define YYDESTRUCT_CALL(msg, psymb, val) yydestruct(msg, psymb, val, param, flag)
195272651Sbapt#endif
196272651Sbapt
197272651Sbaptextern int YYPARSE_DECL();
198272651Sbapt
199272651Sbapt#define GLOBAL 257
200272651Sbapt#define LOCAL 258
201272651Sbapt#define REAL 259
202272651Sbapt#define INTEGER 260
203272651Sbapt#define NAME 261
204272651Sbapt#define YYERRCODE 256
205272651Sbapttypedef short YYINT;
206272651Sbaptstatic const YYINT destroy1_lhs[] = {                    -1,
207272651Sbapt    0,    0,    2,    2,    3,    3,    4,    4,    1,
208272651Sbapt};
209272651Sbaptstatic const YYINT destroy1_len[] = {                     2,
210272651Sbapt    8,    5,    1,    1,    1,    1,    2,    1,    6,
211272651Sbapt};
212272651Sbaptstatic const YYINT destroy1_defred[] = {                  0,
213272651Sbapt    3,    4,    5,    6,    0,    0,    0,    0,    8,    0,
214272651Sbapt    0,    0,    0,    7,    0,    0,    0,    0,    0,    2,
215272651Sbapt    0,    0,    0,    0,    9,    1,
216272651Sbapt};
217319297Sdelphij#if defined(YYDESTRUCT_CALL) || defined(YYSTYPE_TOSTRING)
218272651Sbaptstatic const YYINT destroy1_stos[] = {                    0,
219272651Sbapt  257,  258,  259,  260,  263,  265,  266,  266,  261,  264,
220272651Sbapt  267,  267,   40,  261,   40,   40,  265,  258,  265,   41,
221272651Sbapt   44,   44,  266,  266,   41,   41,
222272651Sbapt};
223319297Sdelphij#endif /* YYDESTRUCT_CALL || YYSTYPE_TOSTRING */
224272651Sbaptstatic const YYINT destroy1_dgoto[] = {                   5,
225272651Sbapt   10,    6,    7,   11,
226272651Sbapt};
227272651Sbaptstatic const YYINT destroy1_sindex[] = {               -254,
228272651Sbapt    0,    0,    0,    0,    0, -251, -248, -248,    0,  -26,
229272651Sbapt  -40,  -39, -246,    0, -243, -246,  -25,  -24,  -23,    0,
230272651Sbapt -251, -251,  -22,  -19,    0,    0,
231272651Sbapt};
232272651Sbaptstatic const YYINT destroy1_rindex[] = {                  0,
233272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
234272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
235272651Sbapt    0,    0,    0,    0,    0,    0,
236272651Sbapt};
237272651Sbapt#if YYBTYACC
238272651Sbaptstatic const YYINT destroy1_cindex[] = {                  0,
239272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
240272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
241272651Sbapt    0,    0,    0,    0,    0,    0,
242272651Sbapt};
243272651Sbapt#endif
244272651Sbaptstatic const YYINT destroy1_gindex[] = {                  0,
245272651Sbapt    0,   -6,   -4,   15,
246272651Sbapt};
247272651Sbapt#define YYTABLESIZE 222
248272651Sbaptstatic const YYINT destroy1_table[] = {                  15,
249272651Sbapt   16,    8,    1,    2,    3,    4,   17,    3,    4,   19,
250272651Sbapt    1,    2,    9,   13,   18,   20,   23,   24,   25,   21,
251272651Sbapt   22,   26,   12,    0,    0,    0,    0,    0,    0,    0,
252272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
253272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
254272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
255272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
256272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
257272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
258272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
259272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
260272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
261272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
262272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
263272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
264272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
265272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
266272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
267272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
268272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
269272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
270272651Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
271272651Sbapt   14,   14,
272272651Sbapt};
273272651Sbaptstatic const YYINT destroy1_check[] = {                  40,
274272651Sbapt   40,    6,  257,  258,  259,  260,   13,  259,  260,   16,
275272651Sbapt  257,  258,  261,   40,  258,   41,   21,   22,   41,   44,
276272651Sbapt   44,   41,    8,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
277272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
278272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
279272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
280272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
281272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
282272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
283272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
284272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
285272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
286272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
287272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
288272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
289272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
290272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
291272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
292272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
293272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
294272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
295272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
296272651Sbapt  261,  261,
297272651Sbapt};
298272651Sbapt#if YYBTYACC
299272651Sbaptstatic const YYINT destroy1_ctable[] = {                 -1,
300272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
301272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
302272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
303272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
304272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
305272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
306272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
307272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
308272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
309272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
310272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
311272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
312272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
313272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
314272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
315272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
316272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
317272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
318272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
319272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
320272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
321272651Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
322272651Sbapt   -1,
323272651Sbapt};
324272651Sbapt#endif
325272651Sbapt#define YYFINAL 5
326272651Sbapt#ifndef YYDEBUG
327272651Sbapt#define YYDEBUG 0
328272651Sbapt#endif
329272651Sbapt#define YYMAXTOKEN 261
330272651Sbapt#define YYUNDFTOKEN 268
331272651Sbapt#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
332272651Sbapt#if YYDEBUG
333272651Sbaptstatic const char *const destroy1_name[] = {
334272651Sbapt
335272651Sbapt"$end",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,
336272651Sbapt0,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,
337272651Sbapt0,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,
338272651Sbapt0,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,
339272651Sbapt0,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,
340272651Sbapt0,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,
341272651Sbapt0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"error","GLOBAL","LOCAL",
342272651Sbapt"REAL","INTEGER","NAME","$accept","declaration","locnamelist","class","type",
343272651Sbapt"namelist","illegal-symbol",
344272651Sbapt};
345272651Sbaptstatic const char *const destroy1_rule[] = {
346272651Sbapt"$accept : declaration",
347272651Sbapt"declaration : class type namelist '(' class ',' type ')'",
348272651Sbapt"declaration : type locnamelist '(' class ')'",
349272651Sbapt"class : GLOBAL",
350272651Sbapt"class : LOCAL",
351272651Sbapt"type : REAL",
352272651Sbapt"type : INTEGER",
353272651Sbapt"namelist : namelist NAME",
354272651Sbapt"namelist : NAME",
355272651Sbapt"locnamelist : namelist '(' LOCAL ',' type ')'",
356272651Sbapt
357272651Sbapt};
358272651Sbapt#endif
359272651Sbapt
360272651Sbaptint      yydebug;
361272651Sbaptint      yynerrs;
362272651Sbapt
363272651Sbaptint      yyerrflag;
364272651Sbaptint      yychar;
365272651SbaptYYSTYPE  yyval;
366272651SbaptYYSTYPE  yylval;
367272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
368272651SbaptYYLTYPE  yyloc; /* position returned by actions */
369272651SbaptYYLTYPE  yylloc; /* position from the lexer */
370272651Sbapt#endif
371272651Sbapt
372272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
373272651Sbapt#ifndef YYLLOC_DEFAULT
374272651Sbapt#define YYLLOC_DEFAULT(loc, rhs, n) \
375272651Sbaptdo \
376272651Sbapt{ \
377272651Sbapt    if (n == 0) \
378272651Sbapt    { \
379272651Sbapt        (loc).first_line   = ((rhs)[-1]).last_line; \
380272651Sbapt        (loc).first_column = ((rhs)[-1]).last_column; \
381272651Sbapt        (loc).last_line    = ((rhs)[-1]).last_line; \
382272651Sbapt        (loc).last_column  = ((rhs)[-1]).last_column; \
383272651Sbapt    } \
384272651Sbapt    else \
385272651Sbapt    { \
386272651Sbapt        (loc).first_line   = ((rhs)[ 0 ]).first_line; \
387272651Sbapt        (loc).first_column = ((rhs)[ 0 ]).first_column; \
388272651Sbapt        (loc).last_line    = ((rhs)[n-1]).last_line; \
389272651Sbapt        (loc).last_column  = ((rhs)[n-1]).last_column; \
390272651Sbapt    } \
391272651Sbapt} while (0)
392272651Sbapt#endif /* YYLLOC_DEFAULT */
393272651Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
394272651Sbapt#if YYBTYACC
395272651Sbapt
396272651Sbapt#ifndef YYLVQUEUEGROWTH
397272651Sbapt#define YYLVQUEUEGROWTH 32
398272651Sbapt#endif
399272651Sbapt#endif /* YYBTYACC */
400272651Sbapt
401272651Sbapt/* define the initial stack-sizes */
402272651Sbapt#ifdef YYSTACKSIZE
403272651Sbapt#undef YYMAXDEPTH
404272651Sbapt#define YYMAXDEPTH  YYSTACKSIZE
405272651Sbapt#else
406272651Sbapt#ifdef YYMAXDEPTH
407272651Sbapt#define YYSTACKSIZE YYMAXDEPTH
408272651Sbapt#else
409272651Sbapt#define YYSTACKSIZE 10000
410272651Sbapt#define YYMAXDEPTH  10000
411272651Sbapt#endif
412272651Sbapt#endif
413272651Sbapt
414272651Sbapt#ifndef YYINITSTACKSIZE
415272651Sbapt#define YYINITSTACKSIZE 200
416272651Sbapt#endif
417272651Sbapt
418272651Sbapttypedef struct {
419272651Sbapt    unsigned stacksize;
420319297Sdelphij    YYINT    *s_base;
421319297Sdelphij    YYINT    *s_mark;
422319297Sdelphij    YYINT    *s_last;
423272651Sbapt    YYSTYPE  *l_base;
424272651Sbapt    YYSTYPE  *l_mark;
425272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
426272651Sbapt    YYLTYPE  *p_base;
427272651Sbapt    YYLTYPE  *p_mark;
428272651Sbapt#endif
429272651Sbapt} YYSTACKDATA;
430272651Sbapt#if YYBTYACC
431272651Sbapt
432272651Sbaptstruct YYParseState_s
433272651Sbapt{
434272651Sbapt    struct YYParseState_s *save;    /* Previously saved parser state */
435272651Sbapt    YYSTACKDATA            yystack; /* saved parser stack */
436272651Sbapt    int                    state;   /* saved parser state */
437272651Sbapt    int                    errflag; /* saved error recovery status */
438272651Sbapt    int                    lexeme;  /* saved index of the conflict lexeme in the lexical queue */
439272651Sbapt    YYINT                  ctry;    /* saved index in yyctable[] for this conflict */
440272651Sbapt};
441272651Sbapttypedef struct YYParseState_s YYParseState;
442272651Sbapt#endif /* YYBTYACC */
443272651Sbapt/* variables for the parser stack */
444272651Sbaptstatic YYSTACKDATA yystack;
445272651Sbapt#if YYBTYACC
446272651Sbapt
447272651Sbapt/* Current parser state */
448272651Sbaptstatic YYParseState *yyps = 0;
449272651Sbapt
450272651Sbapt/* yypath != NULL: do the full parse, starting at *yypath parser state. */
451272651Sbaptstatic YYParseState *yypath = 0;
452272651Sbapt
453272651Sbapt/* Base of the lexical value queue */
454272651Sbaptstatic YYSTYPE *yylvals = 0;
455272651Sbapt
456272651Sbapt/* Current position at lexical value queue */
457272651Sbaptstatic YYSTYPE *yylvp = 0;
458272651Sbapt
459272651Sbapt/* End position of lexical value queue */
460272651Sbaptstatic YYSTYPE *yylve = 0;
461272651Sbapt
462272651Sbapt/* The last allocated position at the lexical value queue */
463272651Sbaptstatic YYSTYPE *yylvlim = 0;
464272651Sbapt
465272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
466272651Sbapt/* Base of the lexical position queue */
467272651Sbaptstatic YYLTYPE *yylpsns = 0;
468272651Sbapt
469272651Sbapt/* Current position at lexical position queue */
470272651Sbaptstatic YYLTYPE *yylpp = 0;
471272651Sbapt
472272651Sbapt/* End position of lexical position queue */
473272651Sbaptstatic YYLTYPE *yylpe = 0;
474272651Sbapt
475272651Sbapt/* The last allocated position at the lexical position queue */
476272651Sbaptstatic YYLTYPE *yylplim = 0;
477272651Sbapt#endif
478272651Sbapt
479272651Sbapt/* Current position at lexical token queue */
480319297Sdelphijstatic YYINT  *yylexp = 0;
481272651Sbapt
482319297Sdelphijstatic YYINT  *yylexemes = 0;
483272651Sbapt#endif /* YYBTYACC */
484272651Sbapt#line 89 "btyacc_destroy1.y"
485272651Sbapt
486272651Sbaptextern int YYLEX_DECL();
487272651Sbaptextern void YYERROR_DECL();
488319297Sdelphij#line 489 "btyacc_destroy1.tab.c"
489272651Sbapt
490272651Sbapt/* Release memory associated with symbol. */
491272651Sbapt#if ! defined YYDESTRUCT_IS_DECLARED
492272651Sbaptstatic void
493272651SbaptYYDESTRUCT_DECL()
494272651Sbapt{
495272651Sbapt    switch (psymb)
496272651Sbapt    {
497272651Sbapt	case 263:
498272651Sbapt#line 41 "btyacc_destroy1.y"
499272651Sbapt	{
500272651Sbapt		  namelist *p = (*val).nlist;
501272651Sbapt		  while (p != NULL)
502272651Sbapt		  { namelist *pp = p;
503272651Sbapt		    p = p->next;
504272651Sbapt		    free(pp->s); free(pp);
505272651Sbapt		  }
506272651Sbapt		}
507272651Sbapt	break;
508319297Sdelphij#line 509 "btyacc_destroy1.tab.c"
509272651Sbapt    }
510272651Sbapt}
511272651Sbapt#define YYDESTRUCT_IS_DECLARED 1
512272651Sbapt#endif
513272651Sbapt
514272651Sbapt/* For use in generated program */
515272651Sbapt#define yydepth (int)(yystack.s_mark - yystack.s_base)
516272651Sbapt#if YYBTYACC
517272651Sbapt#define yytrial (yyps->save)
518272651Sbapt#endif /* YYBTYACC */
519272651Sbapt
520272651Sbapt#if YYDEBUG
521319297Sdelphij#include <stdio.h>	/* needed for printf */
522272651Sbapt#endif
523272651Sbapt
524319297Sdelphij#include <stdlib.h>	/* needed for malloc, etc */
525319297Sdelphij#include <string.h>	/* needed for memset */
526272651Sbapt
527272651Sbapt/* allocate initial stack or double stack size, up to YYMAXDEPTH */
528272651Sbaptstatic int yygrowstack(YYSTACKDATA *data)
529272651Sbapt{
530272651Sbapt    int i;
531272651Sbapt    unsigned newsize;
532319297Sdelphij    YYINT *newss;
533272651Sbapt    YYSTYPE *newvs;
534272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
535272651Sbapt    YYLTYPE *newps;
536272651Sbapt#endif
537272651Sbapt
538272651Sbapt    if ((newsize = data->stacksize) == 0)
539272651Sbapt        newsize = YYINITSTACKSIZE;
540272651Sbapt    else if (newsize >= YYMAXDEPTH)
541272651Sbapt        return YYENOMEM;
542272651Sbapt    else if ((newsize *= 2) > YYMAXDEPTH)
543272651Sbapt        newsize = YYMAXDEPTH;
544272651Sbapt
545272651Sbapt    i = (int) (data->s_mark - data->s_base);
546319297Sdelphij    newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
547272651Sbapt    if (newss == 0)
548272651Sbapt        return YYENOMEM;
549272651Sbapt
550272651Sbapt    data->s_base = newss;
551272651Sbapt    data->s_mark = newss + i;
552272651Sbapt
553272651Sbapt    newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
554272651Sbapt    if (newvs == 0)
555272651Sbapt        return YYENOMEM;
556272651Sbapt
557272651Sbapt    data->l_base = newvs;
558272651Sbapt    data->l_mark = newvs + i;
559272651Sbapt
560272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
561272651Sbapt    newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps));
562272651Sbapt    if (newps == 0)
563272651Sbapt        return YYENOMEM;
564272651Sbapt
565272651Sbapt    data->p_base = newps;
566272651Sbapt    data->p_mark = newps + i;
567272651Sbapt#endif
568272651Sbapt
569272651Sbapt    data->stacksize = newsize;
570272651Sbapt    data->s_last = data->s_base + newsize - 1;
571272651Sbapt
572272651Sbapt#if YYDEBUG
573272651Sbapt    if (yydebug)
574272651Sbapt        fprintf(stderr, "%sdebug: stack size increased to %d\n", YYPREFIX, newsize);
575272651Sbapt#endif
576272651Sbapt    return 0;
577272651Sbapt}
578272651Sbapt
579272651Sbapt#if YYPURE || defined(YY_NO_LEAKS)
580272651Sbaptstatic void yyfreestack(YYSTACKDATA *data)
581272651Sbapt{
582272651Sbapt    free(data->s_base);
583272651Sbapt    free(data->l_base);
584272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
585272651Sbapt    free(data->p_base);
586272651Sbapt#endif
587272651Sbapt    memset(data, 0, sizeof(*data));
588272651Sbapt}
589272651Sbapt#else
590272651Sbapt#define yyfreestack(data) /* nothing */
591272651Sbapt#endif /* YYPURE || defined(YY_NO_LEAKS) */
592272651Sbapt#if YYBTYACC
593272651Sbapt
594272651Sbaptstatic YYParseState *
595272651SbaptyyNewState(unsigned size)
596272651Sbapt{
597272651Sbapt    YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState));
598272651Sbapt    if (p == NULL) return NULL;
599272651Sbapt
600272651Sbapt    p->yystack.stacksize = size;
601272651Sbapt    if (size == 0)
602272651Sbapt    {
603272651Sbapt        p->yystack.s_base = NULL;
604272651Sbapt        p->yystack.l_base = NULL;
605272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
606272651Sbapt        p->yystack.p_base = NULL;
607272651Sbapt#endif
608272651Sbapt        return p;
609272651Sbapt    }
610319297Sdelphij    p->yystack.s_base    = (YYINT *) malloc(size * sizeof(YYINT));
611272651Sbapt    if (p->yystack.s_base == NULL) return NULL;
612272651Sbapt    p->yystack.l_base    = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));
613272651Sbapt    if (p->yystack.l_base == NULL) return NULL;
614272651Sbapt    memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE));
615272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
616272651Sbapt    p->yystack.p_base    = (YYLTYPE *) malloc(size * sizeof(YYLTYPE));
617272651Sbapt    if (p->yystack.p_base == NULL) return NULL;
618272651Sbapt    memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE));
619272651Sbapt#endif
620272651Sbapt
621272651Sbapt    return p;
622272651Sbapt}
623272651Sbapt
624272651Sbaptstatic void
625272651SbaptyyFreeState(YYParseState *p)
626272651Sbapt{
627272651Sbapt    yyfreestack(&p->yystack);
628272651Sbapt    free(p);
629272651Sbapt}
630272651Sbapt#endif /* YYBTYACC */
631272651Sbapt
632272651Sbapt#define YYABORT  goto yyabort
633272651Sbapt#define YYREJECT goto yyabort
634272651Sbapt#define YYACCEPT goto yyaccept
635272651Sbapt#define YYERROR  goto yyerrlab
636272651Sbapt#if YYBTYACC
637272651Sbapt#define YYVALID        do { if (yyps->save)            goto yyvalid; } while(0)
638272651Sbapt#define YYVALID_NESTED do { if (yyps->save && \
639272651Sbapt                                yyps->save->save == 0) goto yyvalid; } while(0)
640272651Sbapt#endif /* YYBTYACC */
641272651Sbapt
642272651Sbaptint
643272651SbaptYYPARSE_DECL()
644272651Sbapt{
645272651Sbapt    int yym, yyn, yystate, yyresult;
646272651Sbapt#if YYBTYACC
647272651Sbapt    int yynewerrflag;
648272651Sbapt    YYParseState *yyerrctx = NULL;
649272651Sbapt#endif /* YYBTYACC */
650272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
651272651Sbapt    YYLTYPE  yyerror_loc_range[2]; /* position of error start & end */
652272651Sbapt#endif
653272651Sbapt#if YYDEBUG
654272651Sbapt    const char *yys;
655272651Sbapt
656272651Sbapt    if ((yys = getenv("YYDEBUG")) != 0)
657272651Sbapt    {
658272651Sbapt        yyn = *yys;
659272651Sbapt        if (yyn >= '0' && yyn <= '9')
660272651Sbapt            yydebug = yyn - '0';
661272651Sbapt    }
662272651Sbapt    if (yydebug)
663272651Sbapt        fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX);
664272651Sbapt#endif
665272651Sbapt
666272651Sbapt#if YYBTYACC
667272651Sbapt    yyps = yyNewState(0); if (yyps == 0) goto yyenomem;
668272651Sbapt    yyps->save = 0;
669272651Sbapt#endif /* YYBTYACC */
670319297Sdelphij    yym = 0;
671319297Sdelphij    yyn = 0;
672272651Sbapt    yynerrs = 0;
673272651Sbapt    yyerrflag = 0;
674272651Sbapt    yychar = YYEMPTY;
675272651Sbapt    yystate = 0;
676272651Sbapt
677272651Sbapt#if YYPURE
678272651Sbapt    memset(&yystack, 0, sizeof(yystack));
679272651Sbapt#endif
680272651Sbapt
681272651Sbapt    if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
682272651Sbapt    yystack.s_mark = yystack.s_base;
683272651Sbapt    yystack.l_mark = yystack.l_base;
684272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
685272651Sbapt    yystack.p_mark = yystack.p_base;
686272651Sbapt#endif
687272651Sbapt    yystate = 0;
688272651Sbapt    *yystack.s_mark = 0;
689272651Sbapt
690272651Sbaptyyloop:
691272651Sbapt    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
692272651Sbapt    if (yychar < 0)
693272651Sbapt    {
694272651Sbapt#if YYBTYACC
695272651Sbapt        do {
696272651Sbapt        if (yylvp < yylve)
697272651Sbapt        {
698272651Sbapt            /* we're currently re-reading tokens */
699272651Sbapt            yylval = *yylvp++;
700272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
701272651Sbapt            yylloc = *yylpp++;
702272651Sbapt#endif
703272651Sbapt            yychar = *yylexp++;
704272651Sbapt            break;
705272651Sbapt        }
706272651Sbapt        if (yyps->save)
707272651Sbapt        {
708272651Sbapt            /* in trial mode; save scanner results for future parse attempts */
709272651Sbapt            if (yylvp == yylvlim)
710272651Sbapt            {   /* Enlarge lexical value queue */
711272651Sbapt                size_t p = (size_t) (yylvp - yylvals);
712272651Sbapt                size_t s = (size_t) (yylvlim - yylvals);
713272651Sbapt
714272651Sbapt                s += YYLVQUEUEGROWTH;
715319297Sdelphij                if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
716319297Sdelphij                if ((yylvals   = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
717272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
718319297Sdelphij                if ((yylpsns   = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
719272651Sbapt#endif
720272651Sbapt                yylvp   = yylve = yylvals + p;
721272651Sbapt                yylvlim = yylvals + s;
722272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
723272651Sbapt                yylpp   = yylpe = yylpsns + p;
724272651Sbapt                yylplim = yylpsns + s;
725272651Sbapt#endif
726272651Sbapt                yylexp  = yylexemes + p;
727272651Sbapt            }
728319297Sdelphij            *yylexp = (YYINT) YYLEX;
729272651Sbapt            *yylvp++ = yylval;
730272651Sbapt            yylve++;
731272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
732272651Sbapt            *yylpp++ = yylloc;
733272651Sbapt            yylpe++;
734272651Sbapt#endif
735272651Sbapt            yychar = *yylexp++;
736272651Sbapt            break;
737272651Sbapt        }
738272651Sbapt        /* normal operation, no conflict encountered */
739272651Sbapt#endif /* YYBTYACC */
740272651Sbapt        yychar = YYLEX;
741272651Sbapt#if YYBTYACC
742272651Sbapt        } while (0);
743272651Sbapt#endif /* YYBTYACC */
744272651Sbapt        if (yychar < 0) yychar = YYEOF;
745272651Sbapt#if YYDEBUG
746272651Sbapt        if (yydebug)
747272651Sbapt        {
748319297Sdelphij            if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
749272651Sbapt            fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)",
750272651Sbapt                            YYDEBUGSTR, yydepth, yystate, yychar, yys);
751272651Sbapt#ifdef YYSTYPE_TOSTRING
752272651Sbapt#if YYBTYACC
753272651Sbapt            if (!yytrial)
754272651Sbapt#endif /* YYBTYACC */
755272651Sbapt                fprintf(stderr, " <%s>", YYSTYPE_TOSTRING(yychar, yylval));
756272651Sbapt#endif
757272651Sbapt            fputc('\n', stderr);
758272651Sbapt        }
759272651Sbapt#endif
760272651Sbapt    }
761272651Sbapt#if YYBTYACC
762272651Sbapt
763272651Sbapt    /* Do we have a conflict? */
764272651Sbapt    if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
765272651Sbapt        yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
766272651Sbapt    {
767272651Sbapt        YYINT ctry;
768272651Sbapt
769272651Sbapt        if (yypath)
770272651Sbapt        {
771272651Sbapt            YYParseState *save;
772272651Sbapt#if YYDEBUG
773272651Sbapt            if (yydebug)
774272651Sbapt                fprintf(stderr, "%s[%d]: CONFLICT in state %d: following successful trial parse\n",
775272651Sbapt                                YYDEBUGSTR, yydepth, yystate);
776272651Sbapt#endif
777272651Sbapt            /* Switch to the next conflict context */
778272651Sbapt            save = yypath;
779272651Sbapt            yypath = save->save;
780272651Sbapt            save->save = NULL;
781272651Sbapt            ctry = save->ctry;
782272651Sbapt            if (save->state != yystate) YYABORT;
783272651Sbapt            yyFreeState(save);
784272651Sbapt
785272651Sbapt        }
786272651Sbapt        else
787272651Sbapt        {
788272651Sbapt
789272651Sbapt            /* Unresolved conflict - start/continue trial parse */
790272651Sbapt            YYParseState *save;
791272651Sbapt#if YYDEBUG
792272651Sbapt            if (yydebug)
793272651Sbapt            {
794272651Sbapt                fprintf(stderr, "%s[%d]: CONFLICT in state %d. ", YYDEBUGSTR, yydepth, yystate);
795272651Sbapt                if (yyps->save)
796272651Sbapt                    fputs("ALREADY in conflict, continuing trial parse.\n", stderr);
797272651Sbapt                else
798272651Sbapt                    fputs("Starting trial parse.\n", stderr);
799272651Sbapt            }
800272651Sbapt#endif
801272651Sbapt            save                  = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
802272651Sbapt            if (save == NULL) goto yyenomem;
803272651Sbapt            save->save            = yyps->save;
804272651Sbapt            save->state           = yystate;
805272651Sbapt            save->errflag         = yyerrflag;
806272651Sbapt            save->yystack.s_mark  = save->yystack.s_base + (yystack.s_mark - yystack.s_base);
807319297Sdelphij            memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
808272651Sbapt            save->yystack.l_mark  = save->yystack.l_base + (yystack.l_mark - yystack.l_base);
809272651Sbapt            memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
810272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
811272651Sbapt            save->yystack.p_mark  = save->yystack.p_base + (yystack.p_mark - yystack.p_base);
812272651Sbapt            memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
813272651Sbapt#endif
814272651Sbapt            ctry                  = yytable[yyn];
815272651Sbapt            if (yyctable[ctry] == -1)
816272651Sbapt            {
817272651Sbapt#if YYDEBUG
818272651Sbapt                if (yydebug && yychar >= YYEOF)
819272651Sbapt                    fprintf(stderr, "%s[%d]: backtracking 1 token\n", YYDEBUGSTR, yydepth);
820272651Sbapt#endif
821272651Sbapt                ctry++;
822272651Sbapt            }
823272651Sbapt            save->ctry = ctry;
824272651Sbapt            if (yyps->save == NULL)
825272651Sbapt            {
826272651Sbapt                /* If this is a first conflict in the stack, start saving lexemes */
827272651Sbapt                if (!yylexemes)
828272651Sbapt                {
829319297Sdelphij                    yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
830272651Sbapt                    if (yylexemes == NULL) goto yyenomem;
831272651Sbapt                    yylvals   = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
832272651Sbapt                    if (yylvals == NULL) goto yyenomem;
833272651Sbapt                    yylvlim   = yylvals + YYLVQUEUEGROWTH;
834272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
835272651Sbapt                    yylpsns   = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE));
836272651Sbapt                    if (yylpsns == NULL) goto yyenomem;
837272651Sbapt                    yylplim   = yylpsns + YYLVQUEUEGROWTH;
838272651Sbapt#endif
839272651Sbapt                }
840272651Sbapt                if (yylvp == yylve)
841272651Sbapt                {
842272651Sbapt                    yylvp  = yylve = yylvals;
843272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
844272651Sbapt                    yylpp  = yylpe = yylpsns;
845272651Sbapt#endif
846272651Sbapt                    yylexp = yylexemes;
847272651Sbapt                    if (yychar >= YYEOF)
848272651Sbapt                    {
849272651Sbapt                        *yylve++ = yylval;
850272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
851272651Sbapt                        *yylpe++ = yylloc;
852272651Sbapt#endif
853319297Sdelphij                        *yylexp  = (YYINT) yychar;
854272651Sbapt                        yychar   = YYEMPTY;
855272651Sbapt                    }
856272651Sbapt                }
857272651Sbapt            }
858272651Sbapt            if (yychar >= YYEOF)
859272651Sbapt            {
860272651Sbapt                yylvp--;
861272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
862272651Sbapt                yylpp--;
863272651Sbapt#endif
864272651Sbapt                yylexp--;
865272651Sbapt                yychar = YYEMPTY;
866272651Sbapt            }
867272651Sbapt            save->lexeme = (int) (yylvp - yylvals);
868272651Sbapt            yyps->save   = save;
869272651Sbapt        }
870272651Sbapt        if (yytable[yyn] == ctry)
871272651Sbapt        {
872272651Sbapt#if YYDEBUG
873272651Sbapt            if (yydebug)
874272651Sbapt                fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
875272651Sbapt                                YYDEBUGSTR, yydepth, yystate, yyctable[ctry]);
876272651Sbapt#endif
877272651Sbapt            if (yychar < 0)
878272651Sbapt            {
879272651Sbapt                yylvp++;
880272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
881272651Sbapt                yylpp++;
882272651Sbapt#endif
883272651Sbapt                yylexp++;
884272651Sbapt            }
885272651Sbapt            if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
886272651Sbapt                goto yyoverflow;
887272651Sbapt            yystate = yyctable[ctry];
888319297Sdelphij            *++yystack.s_mark = (YYINT) yystate;
889272651Sbapt            *++yystack.l_mark = yylval;
890272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
891272651Sbapt            *++yystack.p_mark = yylloc;
892272651Sbapt#endif
893272651Sbapt            yychar  = YYEMPTY;
894272651Sbapt            if (yyerrflag > 0) --yyerrflag;
895272651Sbapt            goto yyloop;
896272651Sbapt        }
897272651Sbapt        else
898272651Sbapt        {
899272651Sbapt            yyn = yyctable[ctry];
900272651Sbapt            goto yyreduce;
901272651Sbapt        }
902272651Sbapt    } /* End of code dealing with conflicts */
903272651Sbapt#endif /* YYBTYACC */
904272651Sbapt    if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
905272651Sbapt            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
906272651Sbapt    {
907272651Sbapt#if YYDEBUG
908272651Sbapt        if (yydebug)
909272651Sbapt            fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
910272651Sbapt                            YYDEBUGSTR, yydepth, yystate, yytable[yyn]);
911272651Sbapt#endif
912272651Sbapt        if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
913272651Sbapt        yystate = yytable[yyn];
914272651Sbapt        *++yystack.s_mark = yytable[yyn];
915272651Sbapt        *++yystack.l_mark = yylval;
916272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
917272651Sbapt        *++yystack.p_mark = yylloc;
918272651Sbapt#endif
919272651Sbapt        yychar = YYEMPTY;
920272651Sbapt        if (yyerrflag > 0)  --yyerrflag;
921272651Sbapt        goto yyloop;
922272651Sbapt    }
923272651Sbapt    if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
924272651Sbapt            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
925272651Sbapt    {
926272651Sbapt        yyn = yytable[yyn];
927272651Sbapt        goto yyreduce;
928272651Sbapt    }
929272651Sbapt    if (yyerrflag != 0) goto yyinrecovery;
930272651Sbapt#if YYBTYACC
931272651Sbapt
932272651Sbapt    yynewerrflag = 1;
933272651Sbapt    goto yyerrhandler;
934319297Sdelphij    goto yyerrlab; /* redundant goto avoids 'unused label' warning */
935272651Sbapt
936272651Sbaptyyerrlab:
937319297Sdelphij    /* explicit YYERROR from an action -- pop the rhs of the rule reduced
938319297Sdelphij     * before looking for error recovery */
939319297Sdelphij    yystack.s_mark -= yym;
940319297Sdelphij    yystate = *yystack.s_mark;
941319297Sdelphij    yystack.l_mark -= yym;
942319297Sdelphij#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
943319297Sdelphij    yystack.p_mark -= yym;
944319297Sdelphij#endif
945319297Sdelphij
946272651Sbapt    yynewerrflag = 0;
947272651Sbaptyyerrhandler:
948272651Sbapt    while (yyps->save)
949272651Sbapt    {
950272651Sbapt        int ctry;
951272651Sbapt        YYParseState *save = yyps->save;
952272651Sbapt#if YYDEBUG
953272651Sbapt        if (yydebug)
954272651Sbapt            fprintf(stderr, "%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\n",
955272651Sbapt                            YYDEBUGSTR, yydepth, yystate, yyps->save->state,
956272651Sbapt                    (int)(yylvp - yylvals - yyps->save->lexeme));
957272651Sbapt#endif
958272651Sbapt        /* Memorize most forward-looking error state in case it's really an error. */
959272651Sbapt        if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals)
960272651Sbapt        {
961272651Sbapt            /* Free old saved error context state */
962272651Sbapt            if (yyerrctx) yyFreeState(yyerrctx);
963272651Sbapt            /* Create and fill out new saved error context state */
964272651Sbapt            yyerrctx                 = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
965272651Sbapt            if (yyerrctx == NULL) goto yyenomem;
966272651Sbapt            yyerrctx->save           = yyps->save;
967272651Sbapt            yyerrctx->state          = yystate;
968272651Sbapt            yyerrctx->errflag        = yyerrflag;
969272651Sbapt            yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);
970319297Sdelphij            memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
971272651Sbapt            yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);
972272651Sbapt            memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
973272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
974272651Sbapt            yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);
975272651Sbapt            memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
976272651Sbapt#endif
977272651Sbapt            yyerrctx->lexeme         = (int) (yylvp - yylvals);
978272651Sbapt        }
979272651Sbapt        yylvp          = yylvals   + save->lexeme;
980272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
981272651Sbapt        yylpp          = yylpsns   + save->lexeme;
982272651Sbapt#endif
983272651Sbapt        yylexp         = yylexemes + save->lexeme;
984272651Sbapt        yychar         = YYEMPTY;
985272651Sbapt        yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);
986319297Sdelphij        memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
987272651Sbapt        yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);
988272651Sbapt        memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
989272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
990272651Sbapt        yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);
991272651Sbapt        memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
992272651Sbapt#endif
993272651Sbapt        ctry           = ++save->ctry;
994272651Sbapt        yystate        = save->state;
995272651Sbapt        /* We tried shift, try reduce now */
996272651Sbapt        if ((yyn = yyctable[ctry]) >= 0) goto yyreduce;
997272651Sbapt        yyps->save     = save->save;
998272651Sbapt        save->save     = NULL;
999272651Sbapt        yyFreeState(save);
1000272651Sbapt
1001272651Sbapt        /* Nothing left on the stack -- error */
1002272651Sbapt        if (!yyps->save)
1003272651Sbapt        {
1004272651Sbapt#if YYDEBUG
1005272651Sbapt            if (yydebug)
1006272651Sbapt                fprintf(stderr, "%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\n",
1007272651Sbapt                                YYPREFIX, yydepth);
1008272651Sbapt#endif
1009272651Sbapt            /* Restore state as it was in the most forward-advanced error */
1010272651Sbapt            yylvp          = yylvals   + yyerrctx->lexeme;
1011272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1012272651Sbapt            yylpp          = yylpsns   + yyerrctx->lexeme;
1013272651Sbapt#endif
1014272651Sbapt            yylexp         = yylexemes + yyerrctx->lexeme;
1015272651Sbapt            yychar         = yylexp[-1];
1016272651Sbapt            yylval         = yylvp[-1];
1017272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1018272651Sbapt            yylloc         = yylpp[-1];
1019272651Sbapt#endif
1020272651Sbapt            yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);
1021319297Sdelphij            memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
1022272651Sbapt            yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);
1023272651Sbapt            memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
1024272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1025272651Sbapt            yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);
1026272651Sbapt            memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
1027272651Sbapt#endif
1028272651Sbapt            yystate        = yyerrctx->state;
1029272651Sbapt            yyFreeState(yyerrctx);
1030272651Sbapt            yyerrctx       = NULL;
1031272651Sbapt        }
1032272651Sbapt        yynewerrflag = 1;
1033272651Sbapt    }
1034272651Sbapt    if (yynewerrflag == 0) goto yyinrecovery;
1035272651Sbapt#endif /* YYBTYACC */
1036272651Sbapt
1037272651Sbapt    YYERROR_CALL("syntax error");
1038272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1039272651Sbapt    yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
1040272651Sbapt#endif
1041272651Sbapt
1042272651Sbapt#if !YYBTYACC
1043319297Sdelphij    goto yyerrlab; /* redundant goto avoids 'unused label' warning */
1044272651Sbaptyyerrlab:
1045272651Sbapt#endif
1046272651Sbapt    ++yynerrs;
1047272651Sbapt
1048272651Sbaptyyinrecovery:
1049272651Sbapt    if (yyerrflag < 3)
1050272651Sbapt    {
1051272651Sbapt        yyerrflag = 3;
1052272651Sbapt        for (;;)
1053272651Sbapt        {
1054272651Sbapt            if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
1055272651Sbapt                    yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
1056272651Sbapt            {
1057272651Sbapt#if YYDEBUG
1058272651Sbapt                if (yydebug)
1059272651Sbapt                    fprintf(stderr, "%s[%d]: state %d, error recovery shifting to state %d\n",
1060272651Sbapt                                    YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]);
1061272651Sbapt#endif
1062272651Sbapt                if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
1063272651Sbapt                yystate = yytable[yyn];
1064272651Sbapt                *++yystack.s_mark = yytable[yyn];
1065272651Sbapt                *++yystack.l_mark = yylval;
1066272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1067272651Sbapt                /* lookahead position is error end position */
1068272651Sbapt                yyerror_loc_range[1] = yylloc;
1069272651Sbapt                YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
1070272651Sbapt                *++yystack.p_mark = yyloc;
1071272651Sbapt#endif
1072272651Sbapt                goto yyloop;
1073272651Sbapt            }
1074272651Sbapt            else
1075272651Sbapt            {
1076272651Sbapt#if YYDEBUG
1077272651Sbapt                if (yydebug)
1078272651Sbapt                    fprintf(stderr, "%s[%d]: error recovery discarding state %d\n",
1079272651Sbapt                                    YYDEBUGSTR, yydepth, *yystack.s_mark);
1080272651Sbapt#endif
1081272651Sbapt                if (yystack.s_mark <= yystack.s_base) goto yyabort;
1082272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1083272651Sbapt                /* the current TOS position is the error start position */
1084272651Sbapt                yyerror_loc_range[0] = *yystack.p_mark;
1085272651Sbapt#endif
1086272651Sbapt#if defined(YYDESTRUCT_CALL)
1087272651Sbapt#if YYBTYACC
1088272651Sbapt                if (!yytrial)
1089272651Sbapt#endif /* YYBTYACC */
1090272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1091272651Sbapt                    YYDESTRUCT_CALL("error: discarding state",
1092272651Sbapt                                    yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark);
1093272651Sbapt#else
1094272651Sbapt                    YYDESTRUCT_CALL("error: discarding state",
1095272651Sbapt                                    yystos[*yystack.s_mark], yystack.l_mark);
1096272651Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
1097272651Sbapt#endif /* defined(YYDESTRUCT_CALL) */
1098272651Sbapt                --yystack.s_mark;
1099272651Sbapt                --yystack.l_mark;
1100272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1101272651Sbapt                --yystack.p_mark;
1102272651Sbapt#endif
1103272651Sbapt            }
1104272651Sbapt        }
1105272651Sbapt    }
1106272651Sbapt    else
1107272651Sbapt    {
1108272651Sbapt        if (yychar == YYEOF) goto yyabort;
1109272651Sbapt#if YYDEBUG
1110272651Sbapt        if (yydebug)
1111272651Sbapt        {
1112319297Sdelphij            if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
1113272651Sbapt            fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n",
1114272651Sbapt                            YYDEBUGSTR, yydepth, yystate, yychar, yys);
1115272651Sbapt        }
1116272651Sbapt#endif
1117272651Sbapt#if defined(YYDESTRUCT_CALL)
1118272651Sbapt#if YYBTYACC
1119272651Sbapt        if (!yytrial)
1120272651Sbapt#endif /* YYBTYACC */
1121272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1122272651Sbapt            YYDESTRUCT_CALL("error: discarding token", yychar, &yylval, &yylloc);
1123272651Sbapt#else
1124272651Sbapt            YYDESTRUCT_CALL("error: discarding token", yychar, &yylval);
1125272651Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
1126272651Sbapt#endif /* defined(YYDESTRUCT_CALL) */
1127272651Sbapt        yychar = YYEMPTY;
1128272651Sbapt        goto yyloop;
1129272651Sbapt    }
1130272651Sbapt
1131272651Sbaptyyreduce:
1132272651Sbapt    yym = yylen[yyn];
1133272651Sbapt#if YYDEBUG
1134272651Sbapt    if (yydebug)
1135272651Sbapt    {
1136272651Sbapt        fprintf(stderr, "%s[%d]: state %d, reducing by rule %d (%s)",
1137272651Sbapt                        YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]);
1138272651Sbapt#ifdef YYSTYPE_TOSTRING
1139272651Sbapt#if YYBTYACC
1140272651Sbapt        if (!yytrial)
1141272651Sbapt#endif /* YYBTYACC */
1142272651Sbapt            if (yym > 0)
1143272651Sbapt            {
1144272651Sbapt                int i;
1145272651Sbapt                fputc('<', stderr);
1146272651Sbapt                for (i = yym; i > 0; i--)
1147272651Sbapt                {
1148272651Sbapt                    if (i != yym) fputs(", ", stderr);
1149272651Sbapt                    fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]],
1150272651Sbapt                                           yystack.l_mark[1-i]), stderr);
1151272651Sbapt                }
1152272651Sbapt                fputc('>', stderr);
1153272651Sbapt            }
1154272651Sbapt#endif
1155272651Sbapt        fputc('\n', stderr);
1156272651Sbapt    }
1157272651Sbapt#endif
1158272651Sbapt    if (yym > 0)
1159272651Sbapt        yyval = yystack.l_mark[1-yym];
1160272651Sbapt    else
1161272651Sbapt        memset(&yyval, 0, sizeof yyval);
1162272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1163272651Sbapt
1164272651Sbapt    /* Perform position reduction */
1165272651Sbapt    memset(&yyloc, 0, sizeof(yyloc));
1166272651Sbapt#if YYBTYACC
1167272651Sbapt    if (!yytrial)
1168272651Sbapt#endif /* YYBTYACC */
1169272651Sbapt    {
1170272651Sbapt        YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
1171272651Sbapt        /* just in case YYERROR is invoked within the action, save
1172272651Sbapt           the start of the rhs as the error start position */
1173272651Sbapt        yyerror_loc_range[0] = yystack.p_mark[1-yym];
1174272651Sbapt    }
1175272651Sbapt#endif
1176272651Sbapt
1177272651Sbapt    switch (yyn)
1178272651Sbapt    {
1179272651Sbaptcase 1:
1180272651Sbapt  if (!yytrial)
1181272651Sbapt#line 62 "btyacc_destroy1.y"
1182272651Sbapt	{ yyval.nlist = yystack.l_mark[-5].nlist; }
1183272651Sbaptbreak;
1184272651Sbaptcase 2:
1185272651Sbapt  if (!yytrial)
1186272651Sbapt#line 64 "btyacc_destroy1.y"
1187272651Sbapt	{ yyval.nlist = yystack.l_mark[-3].nlist; }
1188272651Sbaptbreak;
1189272651Sbaptcase 3:
1190272651Sbapt  if (!yytrial)
1191272651Sbapt#line 67 "btyacc_destroy1.y"
1192272651Sbapt	{ yyval.cval = cGLOBAL; }
1193272651Sbaptbreak;
1194272651Sbaptcase 4:
1195272651Sbapt  if (!yytrial)
1196272651Sbapt#line 68 "btyacc_destroy1.y"
1197272651Sbapt	{ yyval.cval = cLOCAL; }
1198272651Sbaptbreak;
1199272651Sbaptcase 5:
1200272651Sbapt  if (!yytrial)
1201272651Sbapt#line 71 "btyacc_destroy1.y"
1202272651Sbapt	{ yyval.tval = tREAL; }
1203272651Sbaptbreak;
1204272651Sbaptcase 6:
1205272651Sbapt  if (!yytrial)
1206272651Sbapt#line 72 "btyacc_destroy1.y"
1207272651Sbapt	{ yyval.tval = tINTEGER; }
1208272651Sbaptbreak;
1209272651Sbaptcase 7:
1210272651Sbapt  if (!yytrial)
1211272651Sbapt#line 76 "btyacc_destroy1.y"
1212272651Sbapt	{ yyval.nlist->s = mksymbol(yystack.l_mark[-2].tval, yystack.l_mark[-2].cval, yystack.l_mark[0].id);
1213272651Sbapt	      yyval.nlist->next = yystack.l_mark[-1].nlist;
1214272651Sbapt	    }
1215272651Sbaptbreak;
1216272651Sbaptcase 8:
1217272651Sbapt  if (!yytrial)
1218272651Sbapt#line 80 "btyacc_destroy1.y"
1219272651Sbapt	{ yyval.nlist->s = mksymbol(0, 0, yystack.l_mark[0].id);
1220272651Sbapt	      yyval.nlist->next = NULL;
1221272651Sbapt	    }
1222272651Sbaptbreak;
1223272651Sbaptcase 9:
1224272651Sbapt  if (!yytrial)
1225272651Sbapt#line 86 "btyacc_destroy1.y"
1226272651Sbapt	{ yyval.nlist = yystack.l_mark[-5].nlist; }
1227272651Sbaptbreak;
1228319297Sdelphij#line 1229 "btyacc_destroy1.tab.c"
1229272651Sbapt    default:
1230272651Sbapt        break;
1231272651Sbapt    }
1232272651Sbapt    yystack.s_mark -= yym;
1233272651Sbapt    yystate = *yystack.s_mark;
1234272651Sbapt    yystack.l_mark -= yym;
1235272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1236272651Sbapt    yystack.p_mark -= yym;
1237272651Sbapt#endif
1238272651Sbapt    yym = yylhs[yyn];
1239272651Sbapt    if (yystate == 0 && yym == 0)
1240272651Sbapt    {
1241272651Sbapt#if YYDEBUG
1242272651Sbapt        if (yydebug)
1243272651Sbapt        {
1244272651Sbapt            fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
1245272651Sbapt#ifdef YYSTYPE_TOSTRING
1246272651Sbapt#if YYBTYACC
1247272651Sbapt            if (!yytrial)
1248272651Sbapt#endif /* YYBTYACC */
1249272651Sbapt                fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval));
1250272651Sbapt#endif
1251272651Sbapt            fprintf(stderr, "shifting from state 0 to final state %d\n", YYFINAL);
1252272651Sbapt        }
1253272651Sbapt#endif
1254272651Sbapt        yystate = YYFINAL;
1255272651Sbapt        *++yystack.s_mark = YYFINAL;
1256272651Sbapt        *++yystack.l_mark = yyval;
1257272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1258272651Sbapt        *++yystack.p_mark = yyloc;
1259272651Sbapt#endif
1260272651Sbapt        if (yychar < 0)
1261272651Sbapt        {
1262272651Sbapt#if YYBTYACC
1263272651Sbapt            do {
1264272651Sbapt            if (yylvp < yylve)
1265272651Sbapt            {
1266272651Sbapt                /* we're currently re-reading tokens */
1267272651Sbapt                yylval = *yylvp++;
1268272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1269272651Sbapt                yylloc = *yylpp++;
1270272651Sbapt#endif
1271272651Sbapt                yychar = *yylexp++;
1272272651Sbapt                break;
1273272651Sbapt            }
1274272651Sbapt            if (yyps->save)
1275272651Sbapt            {
1276272651Sbapt                /* in trial mode; save scanner results for future parse attempts */
1277272651Sbapt                if (yylvp == yylvlim)
1278272651Sbapt                {   /* Enlarge lexical value queue */
1279272651Sbapt                    size_t p = (size_t) (yylvp - yylvals);
1280272651Sbapt                    size_t s = (size_t) (yylvlim - yylvals);
1281272651Sbapt
1282272651Sbapt                    s += YYLVQUEUEGROWTH;
1283319297Sdelphij                    if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
1284272651Sbapt                        goto yyenomem;
1285319297Sdelphij                    if ((yylvals   = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
1286272651Sbapt                        goto yyenomem;
1287272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1288319297Sdelphij                    if ((yylpsns   = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
1289272651Sbapt                        goto yyenomem;
1290272651Sbapt#endif
1291272651Sbapt                    yylvp   = yylve = yylvals + p;
1292272651Sbapt                    yylvlim = yylvals + s;
1293272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1294272651Sbapt                    yylpp   = yylpe = yylpsns + p;
1295272651Sbapt                    yylplim = yylpsns + s;
1296272651Sbapt#endif
1297272651Sbapt                    yylexp  = yylexemes + p;
1298272651Sbapt                }
1299319297Sdelphij                *yylexp = (YYINT) YYLEX;
1300272651Sbapt                *yylvp++ = yylval;
1301272651Sbapt                yylve++;
1302272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1303272651Sbapt                *yylpp++ = yylloc;
1304272651Sbapt                yylpe++;
1305272651Sbapt#endif
1306272651Sbapt                yychar = *yylexp++;
1307272651Sbapt                break;
1308272651Sbapt            }
1309272651Sbapt            /* normal operation, no conflict encountered */
1310272651Sbapt#endif /* YYBTYACC */
1311272651Sbapt            yychar = YYLEX;
1312272651Sbapt#if YYBTYACC
1313272651Sbapt            } while (0);
1314272651Sbapt#endif /* YYBTYACC */
1315272651Sbapt            if (yychar < 0) yychar = YYEOF;
1316272651Sbapt#if YYDEBUG
1317272651Sbapt            if (yydebug)
1318272651Sbapt            {
1319319297Sdelphij                if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
1320319297Sdelphij                fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)\n",
1321272651Sbapt                                YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);
1322272651Sbapt            }
1323272651Sbapt#endif
1324272651Sbapt        }
1325272651Sbapt        if (yychar == YYEOF) goto yyaccept;
1326272651Sbapt        goto yyloop;
1327272651Sbapt    }
1328272651Sbapt    if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
1329272651Sbapt            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
1330272651Sbapt        yystate = yytable[yyn];
1331272651Sbapt    else
1332272651Sbapt        yystate = yydgoto[yym];
1333272651Sbapt#if YYDEBUG
1334272651Sbapt    if (yydebug)
1335272651Sbapt    {
1336272651Sbapt        fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
1337272651Sbapt#ifdef YYSTYPE_TOSTRING
1338272651Sbapt#if YYBTYACC
1339272651Sbapt        if (!yytrial)
1340272651Sbapt#endif /* YYBTYACC */
1341272651Sbapt            fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[yystate], yyval));
1342272651Sbapt#endif
1343272651Sbapt        fprintf(stderr, "shifting from state %d to state %d\n", *yystack.s_mark, yystate);
1344272651Sbapt    }
1345272651Sbapt#endif
1346272651Sbapt    if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
1347319297Sdelphij    *++yystack.s_mark = (YYINT) yystate;
1348272651Sbapt    *++yystack.l_mark = yyval;
1349272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1350272651Sbapt    *++yystack.p_mark = yyloc;
1351272651Sbapt#endif
1352272651Sbapt    goto yyloop;
1353272651Sbapt#if YYBTYACC
1354272651Sbapt
1355272651Sbapt    /* Reduction declares that this path is valid. Set yypath and do a full parse */
1356272651Sbaptyyvalid:
1357272651Sbapt    if (yypath) YYABORT;
1358272651Sbapt    while (yyps->save)
1359272651Sbapt    {
1360272651Sbapt        YYParseState *save = yyps->save;
1361272651Sbapt        yyps->save = save->save;
1362272651Sbapt        save->save = yypath;
1363272651Sbapt        yypath = save;
1364272651Sbapt    }
1365272651Sbapt#if YYDEBUG
1366272651Sbapt    if (yydebug)
1367272651Sbapt        fprintf(stderr, "%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\n",
1368272651Sbapt                        YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme));
1369272651Sbapt#endif
1370272651Sbapt    if (yyerrctx)
1371272651Sbapt    {
1372272651Sbapt        yyFreeState(yyerrctx);
1373272651Sbapt        yyerrctx = NULL;
1374272651Sbapt    }
1375272651Sbapt    yylvp          = yylvals + yypath->lexeme;
1376272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1377272651Sbapt    yylpp          = yylpsns + yypath->lexeme;
1378272651Sbapt#endif
1379272651Sbapt    yylexp         = yylexemes + yypath->lexeme;
1380272651Sbapt    yychar         = YYEMPTY;
1381272651Sbapt    yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);
1382319297Sdelphij    memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
1383272651Sbapt    yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);
1384272651Sbapt    memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
1385272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1386272651Sbapt    yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);
1387272651Sbapt    memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
1388272651Sbapt#endif
1389272651Sbapt    yystate        = yypath->state;
1390272651Sbapt    goto yyloop;
1391272651Sbapt#endif /* YYBTYACC */
1392272651Sbapt
1393272651Sbaptyyoverflow:
1394272651Sbapt    YYERROR_CALL("yacc stack overflow");
1395272651Sbapt#if YYBTYACC
1396272651Sbapt    goto yyabort_nomem;
1397272651Sbaptyyenomem:
1398272651Sbapt    YYERROR_CALL("memory exhausted");
1399272651Sbaptyyabort_nomem:
1400272651Sbapt#endif /* YYBTYACC */
1401272651Sbapt    yyresult = 2;
1402272651Sbapt    goto yyreturn;
1403272651Sbapt
1404272651Sbaptyyabort:
1405272651Sbapt    yyresult = 1;
1406272651Sbapt    goto yyreturn;
1407272651Sbapt
1408272651Sbaptyyaccept:
1409272651Sbapt#if YYBTYACC
1410272651Sbapt    if (yyps->save) goto yyvalid;
1411272651Sbapt#endif /* YYBTYACC */
1412272651Sbapt    yyresult = 0;
1413272651Sbapt
1414272651Sbaptyyreturn:
1415272651Sbapt#if defined(YYDESTRUCT_CALL)
1416272651Sbapt    if (yychar != YYEOF && yychar != YYEMPTY)
1417272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1418272651Sbapt        YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval, &yylloc);
1419272651Sbapt#else
1420272651Sbapt        YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval);
1421272651Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
1422272651Sbapt
1423272651Sbapt    {
1424272651Sbapt        YYSTYPE *pv;
1425272651Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1426272651Sbapt        YYLTYPE *pp;
1427272651Sbapt
1428272651Sbapt        for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp)
1429272651Sbapt             YYDESTRUCT_CALL("cleanup: discarding state",
1430272651Sbapt                             yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp);
1431272651Sbapt#else
1432272651Sbapt        for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv)
1433272651Sbapt             YYDESTRUCT_CALL("cleanup: discarding state",
1434272651Sbapt                             yystos[*(yystack.s_base + (pv - yystack.l_base))], pv);
1435272651Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
1436272651Sbapt    }
1437272651Sbapt#endif /* defined(YYDESTRUCT_CALL) */
1438272651Sbapt
1439272651Sbapt#if YYBTYACC
1440272651Sbapt    if (yyerrctx)
1441272651Sbapt    {
1442272651Sbapt        yyFreeState(yyerrctx);
1443272651Sbapt        yyerrctx = NULL;
1444272651Sbapt    }
1445272651Sbapt    while (yyps)
1446272651Sbapt    {
1447272651Sbapt        YYParseState *save = yyps;
1448272651Sbapt        yyps = save->save;
1449272651Sbapt        save->save = NULL;
1450272651Sbapt        yyFreeState(save);
1451272651Sbapt    }
1452272651Sbapt    while (yypath)
1453272651Sbapt    {
1454272651Sbapt        YYParseState *save = yypath;
1455272651Sbapt        yypath = save->save;
1456272651Sbapt        save->save = NULL;
1457272651Sbapt        yyFreeState(save);
1458272651Sbapt    }
1459272651Sbapt#endif /* YYBTYACC */
1460272651Sbapt    yyfreestack(&yystack);
1461272651Sbapt    return (yyresult);
1462272651Sbapt}
1463