1264790Sbapt/* original parser id follows */
2264790Sbapt/* yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93" */
3272955Srodrigc/* (use YYMAJOR/YYMINOR for ifdefs dependent of parser version) */
4264790Sbapt
5264790Sbapt#define YYBYACC 1
6264790Sbapt#define YYMAJOR 1
7264790Sbapt#define YYMINOR 9
8264790Sbapt#define YYCHECK "yyyymmdd"
9264790Sbapt
10264790Sbapt#define YYEMPTY        (-1)
11264790Sbapt#define yyclearin      (yychar = YYEMPTY)
12264790Sbapt#define yyerrok        (yyerrflag = 0)
13264790Sbapt#define YYRECOVERING() (yyerrflag != 0)
14264790Sbapt#define YYENOMEM       (-2)
15264790Sbapt#define YYEOF          0
16264790Sbapt#undef YYBTYACC
17264790Sbapt#define YYBTYACC 0
18264790Sbapt#define YYDEBUGSTR YYPREFIX "debug"
19264790Sbapt
20264790Sbapt#ifndef yyparse
21264790Sbapt#define yyparse    quote_calc4_parse
22264790Sbapt#endif /* yyparse */
23264790Sbapt
24264790Sbapt#ifndef yylex
25264790Sbapt#define yylex      quote_calc4_lex
26264790Sbapt#endif /* yylex */
27264790Sbapt
28264790Sbapt#ifndef yyerror
29264790Sbapt#define yyerror    quote_calc4_error
30264790Sbapt#endif /* yyerror */
31264790Sbapt
32264790Sbapt#ifndef yychar
33264790Sbapt#define yychar     quote_calc4_char
34264790Sbapt#endif /* yychar */
35264790Sbapt
36264790Sbapt#ifndef yyval
37264790Sbapt#define yyval      quote_calc4_val
38264790Sbapt#endif /* yyval */
39264790Sbapt
40264790Sbapt#ifndef yylval
41264790Sbapt#define yylval     quote_calc4_lval
42264790Sbapt#endif /* yylval */
43264790Sbapt
44264790Sbapt#ifndef yydebug
45264790Sbapt#define yydebug    quote_calc4_debug
46264790Sbapt#endif /* yydebug */
47264790Sbapt
48264790Sbapt#ifndef yynerrs
49264790Sbapt#define yynerrs    quote_calc4_nerrs
50264790Sbapt#endif /* yynerrs */
51264790Sbapt
52264790Sbapt#ifndef yyerrflag
53264790Sbapt#define yyerrflag  quote_calc4_errflag
54264790Sbapt#endif /* yyerrflag */
55264790Sbapt
56264790Sbapt#ifndef yylhs
57264790Sbapt#define yylhs      quote_calc4_lhs
58264790Sbapt#endif /* yylhs */
59264790Sbapt
60264790Sbapt#ifndef yylen
61264790Sbapt#define yylen      quote_calc4_len
62264790Sbapt#endif /* yylen */
63264790Sbapt
64264790Sbapt#ifndef yydefred
65264790Sbapt#define yydefred   quote_calc4_defred
66264790Sbapt#endif /* yydefred */
67264790Sbapt
68264790Sbapt#ifndef yystos
69264790Sbapt#define yystos     quote_calc4_stos
70264790Sbapt#endif /* yystos */
71264790Sbapt
72264790Sbapt#ifndef yydgoto
73264790Sbapt#define yydgoto    quote_calc4_dgoto
74264790Sbapt#endif /* yydgoto */
75264790Sbapt
76264790Sbapt#ifndef yysindex
77264790Sbapt#define yysindex   quote_calc4_sindex
78264790Sbapt#endif /* yysindex */
79264790Sbapt
80264790Sbapt#ifndef yyrindex
81264790Sbapt#define yyrindex   quote_calc4_rindex
82264790Sbapt#endif /* yyrindex */
83264790Sbapt
84264790Sbapt#ifndef yygindex
85264790Sbapt#define yygindex   quote_calc4_gindex
86264790Sbapt#endif /* yygindex */
87264790Sbapt
88264790Sbapt#ifndef yytable
89264790Sbapt#define yytable    quote_calc4_table
90264790Sbapt#endif /* yytable */
91264790Sbapt
92264790Sbapt#ifndef yycheck
93264790Sbapt#define yycheck    quote_calc4_check
94264790Sbapt#endif /* yycheck */
95264790Sbapt
96264790Sbapt#ifndef yyname
97264790Sbapt#define yyname     quote_calc4_name
98264790Sbapt#endif /* yyname */
99264790Sbapt
100264790Sbapt#ifndef yyrule
101264790Sbapt#define yyrule     quote_calc4_rule
102264790Sbapt#endif /* yyrule */
103264790Sbapt
104264790Sbapt#if YYBTYACC
105264790Sbapt
106264790Sbapt#ifndef yycindex
107264790Sbapt#define yycindex   quote_calc4_cindex
108264790Sbapt#endif /* yycindex */
109264790Sbapt
110264790Sbapt#ifndef yyctable
111264790Sbapt#define yyctable   quote_calc4_ctable
112264790Sbapt#endif /* yyctable */
113264790Sbapt
114264790Sbapt#endif /* YYBTYACC */
115264790Sbapt
116264790Sbapt#define YYPREFIX "quote_calc4_"
117264790Sbapt
118264790Sbapt#define YYPURE 0
119264790Sbapt
120264790Sbapt#line 2 "quote_calc4.y"
121264790Sbapt# include <stdio.h>
122264790Sbapt# include <ctype.h>
123264790Sbapt
124264790Sbaptint regs[26];
125264790Sbaptint base;
126264790Sbapt
127264790Sbaptint yylex(void);
128264790Sbaptstatic void yyerror(const char *s);
129264790Sbapt
130264790Sbapt#line 131 "quote_calc4-s.tab.c"
131264790Sbapt
132264790Sbapt#if ! defined(YYSTYPE) && ! defined(YYSTYPE_IS_DECLARED)
133264790Sbapt/* Default: YYSTYPE is the semantic value type. */
134264790Sbapttypedef int YYSTYPE;
135264790Sbapt# define YYSTYPE_IS_DECLARED 1
136264790Sbapt#endif
137264790Sbapt
138264790Sbapt/* compatibility with bison */
139264790Sbapt#ifdef YYPARSE_PARAM
140264790Sbapt/* compatibility with FreeBSD */
141264790Sbapt# ifdef YYPARSE_PARAM_TYPE
142264790Sbapt#  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
143264790Sbapt# else
144264790Sbapt#  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
145264790Sbapt# endif
146264790Sbapt#else
147264790Sbapt# define YYPARSE_DECL() yyparse(void)
148264790Sbapt#endif
149264790Sbapt
150264790Sbapt/* Parameters sent to lex. */
151264790Sbapt#ifdef YYLEX_PARAM
152264790Sbapt# define YYLEX_DECL() yylex(void *YYLEX_PARAM)
153264790Sbapt# define YYLEX yylex(YYLEX_PARAM)
154264790Sbapt#else
155264790Sbapt# define YYLEX_DECL() yylex(void)
156264790Sbapt# define YYLEX yylex()
157264790Sbapt#endif
158264790Sbapt
159264790Sbapt/* Parameters sent to yyerror. */
160264790Sbapt#ifndef YYERROR_DECL
161264790Sbapt#define YYERROR_DECL() yyerror(const char *s)
162264790Sbapt#endif
163264790Sbapt#ifndef YYERROR_CALL
164264790Sbapt#define YYERROR_CALL(msg) yyerror(msg)
165264790Sbapt#endif
166264790Sbapt
167264790Sbaptextern int YYPARSE_DECL();
168264790Sbapt
169264790Sbapt#define OP_ADD 257
170264790Sbapt#define OP_SUB 259
171264790Sbapt#define OP_MUL 261
172264790Sbapt#define OP_DIV 263
173264790Sbapt#define OP_MOD 265
174264790Sbapt#define OP_AND 267
175264790Sbapt#define DIGIT 269
176264790Sbapt#define LETTER 270
177264790Sbapt#define UMINUS 271
178264790Sbapt#define YYERRCODE 256
179264790Sbapttypedef short YYINT;
180264790Sbaptstatic const YYINT quote_calc4_lhs[] = {                 -1,
181264790Sbapt    0,    0,    0,    1,    1,    2,    2,    2,    2,    2,
182264790Sbapt    2,    2,    2,    2,    2,    2,    3,    3,
183264790Sbapt};
184264790Sbaptstatic const YYINT quote_calc4_len[] = {                  2,
185264790Sbapt    0,    3,    3,    1,    3,    3,    3,    3,    3,    3,
186264790Sbapt    3,    3,    3,    2,    1,    1,    1,    2,
187264790Sbapt};
188264790Sbaptstatic const YYINT quote_calc4_defred[] = {               1,
189264790Sbapt    0,    0,    0,   17,    0,    0,    0,    0,    0,    3,
190264790Sbapt   15,    0,    0,    0,    2,    0,    0,    0,    0,    0,
191264790Sbapt    0,    0,   18,    0,    6,    0,    0,    0,    0,    0,
192264790Sbapt    0,    0,
193264790Sbapt};
194264790Sbaptstatic const YYINT quote_calc4_stos[] = {                 0,
195264790Sbapt  273,  256,  260,  269,  270,   40,  274,  275,  276,   10,
196264790Sbapt  270,  275,   61,  275,   10,  258,  260,  262,  264,  266,
197264790Sbapt  268,  124,  269,  275,   41,  275,  275,  275,  275,  275,
198264790Sbapt  275,  275,
199264790Sbapt};
200264790Sbaptstatic const YYINT quote_calc4_dgoto[] = {                1,
201264790Sbapt    7,    8,    9,
202264790Sbapt};
203264790Sbaptstatic const YYINT quote_calc4_sindex[] = {               0,
204264790Sbapt  -38,    4,  -36,    0,  -51,  -36,    6, -121, -249,    0,
205264790Sbapt    0, -243,  -36,  -23,    0,  -36,  -36,  -36,  -36,  -36,
206264790Sbapt  -36,  -36,    0, -121,    0, -121, -121, -121, -121, -121,
207264790Sbapt -121, -243,
208264790Sbapt};
209264790Sbaptstatic const YYINT quote_calc4_rindex[] = {               0,
210264790Sbapt    0,    0,    0,    0,   -9,    0,    0,   12,  -10,    0,
211264790Sbapt    0,   -5,    0,    0,    0,    0,    0,    0,    0,    0,
212264790Sbapt    0,    0,    0,   14,    0,   -3,   -2,   -1,    1,    2,
213264790Sbapt    3,   -4,
214264790Sbapt};
215264790Sbapt#if YYBTYACC
216264790Sbaptstatic const YYINT quote_calc4_cindex[] = {               0,
217264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
218264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
219264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
220264790Sbapt    0,    0,
221264790Sbapt};
222264790Sbapt#endif
223264790Sbaptstatic const YYINT quote_calc4_gindex[] = {               0,
224264790Sbapt    0,   42,    0,
225264790Sbapt};
226264790Sbapt#define YYTABLESIZE 259
227264790Sbaptstatic const YYINT quote_calc4_table[] = {               16,
228264790Sbapt   15,    6,   22,    6,   14,   13,    7,    8,    9,   13,
229264790Sbapt   10,   11,   12,   10,   16,   15,   17,   25,   18,   23,
230264790Sbapt   19,    4,   20,    5,   21,    0,    0,    0,    0,    0,
231264790Sbapt   16,    0,    0,    0,    0,   14,   13,    7,    8,    9,
232264790Sbapt    0,   10,   11,   12,   12,    0,    0,   14,    0,    0,
233264790Sbapt    0,    0,    0,    0,   24,    0,    0,   26,   27,   28,
234264790Sbapt   29,   30,   31,   32,    0,    0,    0,    0,    0,    0,
235264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
236264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
237264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
238264790Sbapt   22,    0,    0,    0,    0,    0,    0,    0,    0,    0,
239264790Sbapt    0,    0,    0,   16,   15,    0,    0,    0,   14,   13,
240264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
241264790Sbapt    0,    0,    0,    0,    0,    0,   16,    0,   17,    0,
242264790Sbapt   18,    0,   19,    0,   20,    0,   21,    0,    0,    0,
243264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
244264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
245264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
246264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
247264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
248264790Sbapt    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
249264790Sbapt    0,    0,    0,    0,    0,    0,    0,    2,    0,    0,
250264790Sbapt    0,    3,    0,    3,    0,    0,    0,    0,    0,    0,
251264790Sbapt    4,    5,    4,   11,   16,    0,   17,    0,   18,    0,
252264790Sbapt   19,    0,   20,    0,   21,    0,    0,   16,   15,   16,
253264790Sbapt   15,   16,   15,   16,   15,   16,   15,   16,   15,
254264790Sbapt};
255264790Sbaptstatic const YYINT quote_calc4_check[] = {               10,
256264790Sbapt   10,   40,  124,   40,   10,   10,   10,   10,   10,   61,
257264790Sbapt   10,   10,   10,   10,  258,   10,  260,   41,  262,  269,
258264790Sbapt  264,   10,  266,   10,  268,   -1,   -1,   -1,   -1,   -1,
259264790Sbapt   41,   -1,   -1,   -1,   -1,   41,   41,   41,   41,   41,
260264790Sbapt   -1,   41,   41,   41,    3,   -1,   -1,    6,   -1,   -1,
261264790Sbapt   -1,   -1,   -1,   -1,   13,   -1,   -1,   16,   17,   18,
262264790Sbapt   19,   20,   21,   22,   -1,   -1,   -1,   -1,   -1,   -1,
263264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
264264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
265264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
266264790Sbapt  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
267264790Sbapt   -1,   -1,   -1,  124,  124,   -1,   -1,   -1,  124,  124,
268264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
269264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,  258,   -1,  260,   -1,
270264790Sbapt  262,   -1,  264,   -1,  266,   -1,  268,   -1,   -1,   -1,
271264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
272264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
273264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
274264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
275264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
276264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
277264790Sbapt   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,
278264790Sbapt   -1,  260,   -1,  260,   -1,   -1,   -1,   -1,   -1,   -1,
279264790Sbapt  269,  270,  269,  270,  258,   -1,  260,   -1,  262,   -1,
280264790Sbapt  264,   -1,  266,   -1,  268,   -1,   -1,  258,  258,  260,
281264790Sbapt  260,  262,  262,  264,  264,  266,  266,  268,  268,
282264790Sbapt};
283272955Srodrigc#if YYBTYACC
284272955Srodrigcstatic const YYINT quote_calc4_ctable[] = {              -1,
285272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
286272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
287272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
288272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
289272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
290272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
291272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
292272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
293272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
294272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
295272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
296272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
297272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
298272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
299272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
300272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
301272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
302272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
303272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
304272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
305272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
306272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
307272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
308272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
309272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
310272955Srodrigc   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
311272955Srodrigc};
312272955Srodrigc#endif
313264790Sbapt#define YYFINAL 1
314264790Sbapt#ifndef YYDEBUG
315264790Sbapt#define YYDEBUG 0
316264790Sbapt#endif
317264790Sbapt#define YYMAXTOKEN 271
318264790Sbapt#define YYUNDFTOKEN 277
319264790Sbapt#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
320264790Sbapt#if YYDEBUG
321264790Sbaptstatic const char *const quote_calc4_name[] = {
322264790Sbapt
323264790Sbapt"$end",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
324264790Sbapt0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
325264790Sbapt0,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,
326264790Sbapt0,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,
327264790Sbapt0,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,
328264790Sbapt0,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,
329264790Sbapt0,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,
330264790Sbapt0,0,"error","OP_ADD","\"ADD-operator\"","OP_SUB","\"SUB-operator\"","OP_MUL",
331264790Sbapt"\"MUL-operator\"","OP_DIV","\"DIV-operator\"","OP_MOD","\"MOD-operator\"",
332264790Sbapt"OP_AND","\"AND-operator\"","DIGIT","LETTER","UMINUS","$accept","list","stat",
333264790Sbapt"expr","number","illegal-symbol",
334264790Sbapt};
335264790Sbaptstatic const char *const quote_calc4_rule[] = {
336264790Sbapt"$accept : list",
337264790Sbapt"list :",
338264790Sbapt"list : list stat '\\n'",
339264790Sbapt"list : list error '\\n'",
340264790Sbapt"stat : expr",
341264790Sbapt"stat : LETTER '=' expr",
342264790Sbapt"expr : '(' expr ')'",
343264790Sbapt"expr : expr \"ADD-operator\" expr",
344264790Sbapt"expr : expr \"SUB-operator\" expr",
345264790Sbapt"expr : expr \"MUL-operator\" expr",
346264790Sbapt"expr : expr \"DIV-operator\" expr",
347264790Sbapt"expr : expr \"MOD-operator\" expr",
348264790Sbapt"expr : expr \"AND-operator\" expr",
349264790Sbapt"expr : expr '|' expr",
350264790Sbapt"expr : \"SUB-operator\" expr",
351264790Sbapt"expr : LETTER",
352264790Sbapt"expr : number",
353264790Sbapt"number : DIGIT",
354264790Sbapt"number : number DIGIT",
355264790Sbapt
356264790Sbapt};
357264790Sbapt#endif
358264790Sbapt
359264790Sbaptint      yydebug;
360264790Sbaptint      yynerrs;
361264790Sbapt
362264790Sbaptint      yyerrflag;
363264790Sbaptint      yychar;
364264790SbaptYYSTYPE  yyval;
365264790SbaptYYSTYPE  yylval;
366264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
367264790SbaptYYLTYPE  yyloc; /* position returned by actions */
368264790SbaptYYLTYPE  yylloc; /* position from the lexer */
369264790Sbapt#endif
370264790Sbapt
371264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
372264790Sbapt#ifndef YYLLOC_DEFAULT
373264790Sbapt#define YYLLOC_DEFAULT(loc, rhs, n) \
374264790Sbaptdo \
375264790Sbapt{ \
376264790Sbapt    if (n == 0) \
377264790Sbapt    { \
378264790Sbapt        (loc).first_line   = ((rhs)[-1]).last_line; \
379264790Sbapt        (loc).first_column = ((rhs)[-1]).last_column; \
380264790Sbapt        (loc).last_line    = ((rhs)[-1]).last_line; \
381264790Sbapt        (loc).last_column  = ((rhs)[-1]).last_column; \
382264790Sbapt    } \
383264790Sbapt    else \
384264790Sbapt    { \
385264790Sbapt        (loc).first_line   = ((rhs)[ 0 ]).first_line; \
386264790Sbapt        (loc).first_column = ((rhs)[ 0 ]).first_column; \
387264790Sbapt        (loc).last_line    = ((rhs)[n-1]).last_line; \
388264790Sbapt        (loc).last_column  = ((rhs)[n-1]).last_column; \
389264790Sbapt    } \
390264790Sbapt} while (0)
391264790Sbapt#endif /* YYLLOC_DEFAULT */
392264790Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
393264790Sbapt#if YYBTYACC
394264790Sbapt
395264790Sbapt#ifndef YYLVQUEUEGROWTH
396264790Sbapt#define YYLVQUEUEGROWTH 32
397264790Sbapt#endif
398264790Sbapt#endif /* YYBTYACC */
399264790Sbapt
400264790Sbapt/* define the initial stack-sizes */
401264790Sbapt#ifdef YYSTACKSIZE
402264790Sbapt#undef YYMAXDEPTH
403264790Sbapt#define YYMAXDEPTH  YYSTACKSIZE
404264790Sbapt#else
405264790Sbapt#ifdef YYMAXDEPTH
406264790Sbapt#define YYSTACKSIZE YYMAXDEPTH
407264790Sbapt#else
408264790Sbapt#define YYSTACKSIZE 10000
409264790Sbapt#define YYMAXDEPTH  10000
410264790Sbapt#endif
411264790Sbapt#endif
412264790Sbapt
413264790Sbapt#ifndef YYINITSTACKSIZE
414264790Sbapt#define YYINITSTACKSIZE 200
415264790Sbapt#endif
416264790Sbapt
417264790Sbapttypedef struct {
418264790Sbapt    unsigned stacksize;
419264790Sbapt    short    *s_base;
420264790Sbapt    short    *s_mark;
421264790Sbapt    short    *s_last;
422264790Sbapt    YYSTYPE  *l_base;
423264790Sbapt    YYSTYPE  *l_mark;
424264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
425264790Sbapt    YYLTYPE  *p_base;
426264790Sbapt    YYLTYPE  *p_mark;
427264790Sbapt#endif
428264790Sbapt} YYSTACKDATA;
429264790Sbapt#if YYBTYACC
430264790Sbapt
431264790Sbaptstruct YYParseState_s
432264790Sbapt{
433264790Sbapt    struct YYParseState_s *save;    /* Previously saved parser state */
434264790Sbapt    YYSTACKDATA            yystack; /* saved parser stack */
435264790Sbapt    int                    state;   /* saved parser state */
436264790Sbapt    int                    errflag; /* saved error recovery status */
437264790Sbapt    int                    lexeme;  /* saved index of the conflict lexeme in the lexical queue */
438264790Sbapt    YYINT                  ctry;    /* saved index in yyctable[] for this conflict */
439264790Sbapt};
440264790Sbapttypedef struct YYParseState_s YYParseState;
441264790Sbapt#endif /* YYBTYACC */
442264790Sbapt/* variables for the parser stack */
443264790Sbaptstatic YYSTACKDATA yystack;
444264790Sbapt#if YYBTYACC
445264790Sbapt
446264790Sbapt/* Current parser state */
447264790Sbaptstatic YYParseState *yyps = 0;
448264790Sbapt
449264790Sbapt/* yypath != NULL: do the full parse, starting at *yypath parser state. */
450264790Sbaptstatic YYParseState *yypath = 0;
451264790Sbapt
452264790Sbapt/* Base of the lexical value queue */
453264790Sbaptstatic YYSTYPE *yylvals = 0;
454264790Sbapt
455264790Sbapt/* Current position at lexical value queue */
456264790Sbaptstatic YYSTYPE *yylvp = 0;
457264790Sbapt
458264790Sbapt/* End position of lexical value queue */
459264790Sbaptstatic YYSTYPE *yylve = 0;
460264790Sbapt
461264790Sbapt/* The last allocated position at the lexical value queue */
462264790Sbaptstatic YYSTYPE *yylvlim = 0;
463264790Sbapt
464264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
465264790Sbapt/* Base of the lexical position queue */
466264790Sbaptstatic YYLTYPE *yylpsns = 0;
467264790Sbapt
468264790Sbapt/* Current position at lexical position queue */
469264790Sbaptstatic YYLTYPE *yylpp = 0;
470264790Sbapt
471264790Sbapt/* End position of lexical position queue */
472264790Sbaptstatic YYLTYPE *yylpe = 0;
473264790Sbapt
474264790Sbapt/* The last allocated position at the lexical position queue */
475264790Sbaptstatic YYLTYPE *yylplim = 0;
476264790Sbapt#endif
477264790Sbapt
478264790Sbapt/* Current position at lexical token queue */
479264790Sbaptstatic short  *yylexp = 0;
480264790Sbapt
481264790Sbaptstatic short  *yylexemes = 0;
482264790Sbapt#endif /* YYBTYACC */
483264790Sbapt#line 73 "quote_calc4.y"
484264790Sbapt /* start of programs */
485264790Sbapt
486264790Sbaptint
487264790Sbaptmain (void)
488264790Sbapt{
489264790Sbapt    while(!feof(stdin)) {
490264790Sbapt	yyparse();
491264790Sbapt    }
492264790Sbapt    return 0;
493264790Sbapt}
494264790Sbapt
495264790Sbaptstatic void
496264790Sbaptyyerror(const char *s)
497264790Sbapt{
498264790Sbapt    fprintf(stderr, "%s\n", s);
499264790Sbapt}
500264790Sbapt
501264790Sbaptint
502264790Sbaptyylex(void) {
503264790Sbapt	/* lexical analysis routine */
504264790Sbapt	/* returns LETTER for a lower case letter, yylval = 0 through 25 */
505264790Sbapt	/* return DIGIT for a digit, yylval = 0 through 9 */
506264790Sbapt	/* all other characters are returned immediately */
507264790Sbapt
508264790Sbapt    int c;
509264790Sbapt
510264790Sbapt    while( (c=getchar()) == ' ' )   { /* skip blanks */ }
511264790Sbapt
512264790Sbapt    /* c is now nonblank */
513264790Sbapt
514264790Sbapt    if( islower( c )) {
515264790Sbapt	yylval = c - 'a';
516264790Sbapt	return ( LETTER );
517264790Sbapt    }
518264790Sbapt    if( isdigit( c )) {
519264790Sbapt	yylval = c - '0';
520264790Sbapt	return ( DIGIT );
521264790Sbapt    }
522264790Sbapt    return( c );
523264790Sbapt}
524272955Srodrigc#line 525 "quote_calc4-s.tab.c"
525264790Sbapt
526264790Sbapt/* For use in generated program */
527264790Sbapt#define yydepth (int)(yystack.s_mark - yystack.s_base)
528264790Sbapt#if YYBTYACC
529264790Sbapt#define yytrial (yyps->save)
530264790Sbapt#endif /* YYBTYACC */
531264790Sbapt
532264790Sbapt#if YYDEBUG
533272955Srodrigc#include <stdio.h>         /* needed for printf */
534264790Sbapt#endif
535264790Sbapt
536272955Srodrigc#include <stdlib.h>        /* needed for malloc, etc */
537272955Srodrigc#include <string.h>        /* needed for memset */
538264790Sbapt
539264790Sbapt/* allocate initial stack or double stack size, up to YYMAXDEPTH */
540264790Sbaptstatic int yygrowstack(YYSTACKDATA *data)
541264790Sbapt{
542264790Sbapt    int i;
543264790Sbapt    unsigned newsize;
544264790Sbapt    short *newss;
545264790Sbapt    YYSTYPE *newvs;
546264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
547264790Sbapt    YYLTYPE *newps;
548264790Sbapt#endif
549264790Sbapt
550264790Sbapt    if ((newsize = data->stacksize) == 0)
551264790Sbapt        newsize = YYINITSTACKSIZE;
552264790Sbapt    else if (newsize >= YYMAXDEPTH)
553264790Sbapt        return YYENOMEM;
554264790Sbapt    else if ((newsize *= 2) > YYMAXDEPTH)
555264790Sbapt        newsize = YYMAXDEPTH;
556264790Sbapt
557264790Sbapt    i = (int) (data->s_mark - data->s_base);
558264790Sbapt    newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));
559264790Sbapt    if (newss == 0)
560264790Sbapt        return YYENOMEM;
561264790Sbapt
562264790Sbapt    data->s_base = newss;
563264790Sbapt    data->s_mark = newss + i;
564264790Sbapt
565264790Sbapt    newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
566264790Sbapt    if (newvs == 0)
567264790Sbapt        return YYENOMEM;
568264790Sbapt
569264790Sbapt    data->l_base = newvs;
570264790Sbapt    data->l_mark = newvs + i;
571264790Sbapt
572264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
573264790Sbapt    newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps));
574264790Sbapt    if (newps == 0)
575264790Sbapt        return YYENOMEM;
576264790Sbapt
577264790Sbapt    data->p_base = newps;
578264790Sbapt    data->p_mark = newps + i;
579264790Sbapt#endif
580264790Sbapt
581264790Sbapt    data->stacksize = newsize;
582264790Sbapt    data->s_last = data->s_base + newsize - 1;
583264790Sbapt
584264790Sbapt#if YYDEBUG
585264790Sbapt    if (yydebug)
586264790Sbapt        fprintf(stderr, "%sdebug: stack size increased to %d\n", YYPREFIX, newsize);
587264790Sbapt#endif
588264790Sbapt    return 0;
589264790Sbapt}
590264790Sbapt
591264790Sbapt#if YYPURE || defined(YY_NO_LEAKS)
592264790Sbaptstatic void yyfreestack(YYSTACKDATA *data)
593264790Sbapt{
594264790Sbapt    free(data->s_base);
595264790Sbapt    free(data->l_base);
596264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
597264790Sbapt    free(data->p_base);
598264790Sbapt#endif
599264790Sbapt    memset(data, 0, sizeof(*data));
600264790Sbapt}
601264790Sbapt#else
602264790Sbapt#define yyfreestack(data) /* nothing */
603264790Sbapt#endif /* YYPURE || defined(YY_NO_LEAKS) */
604264790Sbapt#if YYBTYACC
605264790Sbapt
606264790Sbaptstatic YYParseState *
607264790SbaptyyNewState(unsigned size)
608264790Sbapt{
609264790Sbapt    YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState));
610264790Sbapt    if (p == NULL) return NULL;
611264790Sbapt
612264790Sbapt    p->yystack.stacksize = size;
613264790Sbapt    if (size == 0)
614264790Sbapt    {
615264790Sbapt        p->yystack.s_base = NULL;
616264790Sbapt        p->yystack.l_base = NULL;
617264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
618264790Sbapt        p->yystack.p_base = NULL;
619264790Sbapt#endif
620264790Sbapt        return p;
621264790Sbapt    }
622264790Sbapt    p->yystack.s_base    = (short *) malloc(size * sizeof(short));
623264790Sbapt    if (p->yystack.s_base == NULL) return NULL;
624264790Sbapt    p->yystack.l_base    = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));
625264790Sbapt    if (p->yystack.l_base == NULL) return NULL;
626264790Sbapt    memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE));
627264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
628264790Sbapt    p->yystack.p_base    = (YYLTYPE *) malloc(size * sizeof(YYLTYPE));
629264790Sbapt    if (p->yystack.p_base == NULL) return NULL;
630264790Sbapt    memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE));
631264790Sbapt#endif
632264790Sbapt
633264790Sbapt    return p;
634264790Sbapt}
635264790Sbapt
636264790Sbaptstatic void
637264790SbaptyyFreeState(YYParseState *p)
638264790Sbapt{
639264790Sbapt    yyfreestack(&p->yystack);
640264790Sbapt    free(p);
641264790Sbapt}
642264790Sbapt#endif /* YYBTYACC */
643264790Sbapt
644264790Sbapt#define YYABORT  goto yyabort
645264790Sbapt#define YYREJECT goto yyabort
646264790Sbapt#define YYACCEPT goto yyaccept
647264790Sbapt#define YYERROR  goto yyerrlab
648264790Sbapt#if YYBTYACC
649264790Sbapt#define YYVALID        do { if (yyps->save)            goto yyvalid; } while(0)
650264790Sbapt#define YYVALID_NESTED do { if (yyps->save && \
651264790Sbapt                                yyps->save->save == 0) goto yyvalid; } while(0)
652264790Sbapt#endif /* YYBTYACC */
653264790Sbapt
654264790Sbaptint
655264790SbaptYYPARSE_DECL()
656264790Sbapt{
657264790Sbapt    int yym, yyn, yystate, yyresult;
658264790Sbapt#if YYBTYACC
659264790Sbapt    int yynewerrflag;
660264790Sbapt    YYParseState *yyerrctx = NULL;
661264790Sbapt#endif /* YYBTYACC */
662264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
663264790Sbapt    YYLTYPE  yyerror_loc_range[2]; /* position of error start & end */
664264790Sbapt#endif
665264790Sbapt#if YYDEBUG
666264790Sbapt    const char *yys;
667264790Sbapt
668264790Sbapt    if ((yys = getenv("YYDEBUG")) != 0)
669264790Sbapt    {
670264790Sbapt        yyn = *yys;
671264790Sbapt        if (yyn >= '0' && yyn <= '9')
672264790Sbapt            yydebug = yyn - '0';
673264790Sbapt    }
674264790Sbapt    if (yydebug)
675264790Sbapt        fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX);
676264790Sbapt#endif
677264790Sbapt
678264790Sbapt#if YYBTYACC
679264790Sbapt    yyps = yyNewState(0); if (yyps == 0) goto yyenomem;
680264790Sbapt    yyps->save = 0;
681264790Sbapt#endif /* YYBTYACC */
682264790Sbapt    yynerrs = 0;
683264790Sbapt    yyerrflag = 0;
684264790Sbapt    yychar = YYEMPTY;
685264790Sbapt    yystate = 0;
686264790Sbapt
687264790Sbapt#if YYPURE
688264790Sbapt    memset(&yystack, 0, sizeof(yystack));
689264790Sbapt#endif
690264790Sbapt
691264790Sbapt    if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
692264790Sbapt    yystack.s_mark = yystack.s_base;
693264790Sbapt    yystack.l_mark = yystack.l_base;
694264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
695264790Sbapt    yystack.p_mark = yystack.p_base;
696264790Sbapt#endif
697264790Sbapt    yystate = 0;
698264790Sbapt    *yystack.s_mark = 0;
699264790Sbapt
700264790Sbaptyyloop:
701264790Sbapt    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
702264790Sbapt    if (yychar < 0)
703264790Sbapt    {
704264790Sbapt#if YYBTYACC
705264790Sbapt        do {
706264790Sbapt        if (yylvp < yylve)
707264790Sbapt        {
708264790Sbapt            /* we're currently re-reading tokens */
709264790Sbapt            yylval = *yylvp++;
710264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
711264790Sbapt            yylloc = *yylpp++;
712264790Sbapt#endif
713264790Sbapt            yychar = *yylexp++;
714264790Sbapt            break;
715264790Sbapt        }
716264790Sbapt        if (yyps->save)
717264790Sbapt        {
718264790Sbapt            /* in trial mode; save scanner results for future parse attempts */
719264790Sbapt            if (yylvp == yylvlim)
720264790Sbapt            {   /* Enlarge lexical value queue */
721272955Srodrigc                size_t p = (size_t) (yylvp - yylvals);
722272955Srodrigc                size_t s = (size_t) (yylvlim - yylvals);
723264790Sbapt
724264790Sbapt                s += YYLVQUEUEGROWTH;
725264790Sbapt                if ((yylexemes = (short *)   realloc(yylexemes, s * sizeof(short))) == NULL) goto yyenomem;
726264790Sbapt                if ((yylvals   = (YYSTYPE *) realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
727264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
728264790Sbapt                if ((yylpsns   = (YYLTYPE *) realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
729264790Sbapt#endif
730264790Sbapt                yylvp   = yylve = yylvals + p;
731264790Sbapt                yylvlim = yylvals + s;
732264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
733264790Sbapt                yylpp   = yylpe = yylpsns + p;
734264790Sbapt                yylplim = yylpsns + s;
735264790Sbapt#endif
736264790Sbapt                yylexp  = yylexemes + p;
737264790Sbapt            }
738264790Sbapt            *yylexp = (short) YYLEX;
739264790Sbapt            *yylvp++ = yylval;
740264790Sbapt            yylve++;
741264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
742264790Sbapt            *yylpp++ = yylloc;
743264790Sbapt            yylpe++;
744264790Sbapt#endif
745264790Sbapt            yychar = *yylexp++;
746264790Sbapt            break;
747264790Sbapt        }
748264790Sbapt        /* normal operation, no conflict encountered */
749264790Sbapt#endif /* YYBTYACC */
750264790Sbapt        yychar = YYLEX;
751264790Sbapt#if YYBTYACC
752264790Sbapt        } while (0);
753264790Sbapt#endif /* YYBTYACC */
754264790Sbapt        if (yychar < 0) yychar = YYEOF;
755264790Sbapt        /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */
756264790Sbapt#if YYDEBUG
757264790Sbapt        if (yydebug)
758264790Sbapt        {
759264790Sbapt            yys = yyname[YYTRANSLATE(yychar)];
760264790Sbapt            fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)",
761264790Sbapt                            YYDEBUGSTR, yydepth, yystate, yychar, yys);
762264790Sbapt#ifdef YYSTYPE_TOSTRING
763264790Sbapt#if YYBTYACC
764264790Sbapt            if (!yytrial)
765264790Sbapt#endif /* YYBTYACC */
766264790Sbapt                fprintf(stderr, " <%s>", YYSTYPE_TOSTRING(yychar, yylval));
767264790Sbapt#endif
768264790Sbapt            fputc('\n', stderr);
769264790Sbapt        }
770264790Sbapt#endif
771264790Sbapt    }
772264790Sbapt#if YYBTYACC
773264790Sbapt
774264790Sbapt    /* Do we have a conflict? */
775264790Sbapt    if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
776264790Sbapt        yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
777264790Sbapt    {
778264790Sbapt        YYINT ctry;
779264790Sbapt
780264790Sbapt        if (yypath)
781264790Sbapt        {
782264790Sbapt            YYParseState *save;
783264790Sbapt#if YYDEBUG
784264790Sbapt            if (yydebug)
785264790Sbapt                fprintf(stderr, "%s[%d]: CONFLICT in state %d: following successful trial parse\n",
786264790Sbapt                                YYDEBUGSTR, yydepth, yystate);
787264790Sbapt#endif
788264790Sbapt            /* Switch to the next conflict context */
789264790Sbapt            save = yypath;
790264790Sbapt            yypath = save->save;
791264790Sbapt            save->save = NULL;
792264790Sbapt            ctry = save->ctry;
793264790Sbapt            if (save->state != yystate) YYABORT;
794264790Sbapt            yyFreeState(save);
795264790Sbapt
796264790Sbapt        }
797264790Sbapt        else
798264790Sbapt        {
799264790Sbapt
800264790Sbapt            /* Unresolved conflict - start/continue trial parse */
801264790Sbapt            YYParseState *save;
802264790Sbapt#if YYDEBUG
803264790Sbapt            if (yydebug)
804264790Sbapt            {
805264790Sbapt                fprintf(stderr, "%s[%d]: CONFLICT in state %d. ", YYDEBUGSTR, yydepth, yystate);
806264790Sbapt                if (yyps->save)
807264790Sbapt                    fputs("ALREADY in conflict, continuing trial parse.\n", stderr);
808264790Sbapt                else
809264790Sbapt                    fputs("Starting trial parse.\n", stderr);
810264790Sbapt            }
811264790Sbapt#endif
812264790Sbapt            save                  = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
813264790Sbapt            if (save == NULL) goto yyenomem;
814264790Sbapt            save->save            = yyps->save;
815264790Sbapt            save->state           = yystate;
816264790Sbapt            save->errflag         = yyerrflag;
817264790Sbapt            save->yystack.s_mark  = save->yystack.s_base + (yystack.s_mark - yystack.s_base);
818272955Srodrigc            memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
819264790Sbapt            save->yystack.l_mark  = save->yystack.l_base + (yystack.l_mark - yystack.l_base);
820272955Srodrigc            memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
821264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
822264790Sbapt            save->yystack.p_mark  = save->yystack.p_base + (yystack.p_mark - yystack.p_base);
823272955Srodrigc            memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
824264790Sbapt#endif
825264790Sbapt            ctry                  = yytable[yyn];
826264790Sbapt            if (yyctable[ctry] == -1)
827264790Sbapt            {
828264790Sbapt#if YYDEBUG
829264790Sbapt                if (yydebug && yychar >= YYEOF)
830264790Sbapt                    fprintf(stderr, "%s[%d]: backtracking 1 token\n", YYDEBUGSTR, yydepth);
831264790Sbapt#endif
832264790Sbapt                ctry++;
833264790Sbapt            }
834264790Sbapt            save->ctry = ctry;
835264790Sbapt            if (yyps->save == NULL)
836264790Sbapt            {
837264790Sbapt                /* If this is a first conflict in the stack, start saving lexemes */
838264790Sbapt                if (!yylexemes)
839264790Sbapt                {
840264790Sbapt                    yylexemes = (short *) malloc((YYLVQUEUEGROWTH) * sizeof(short));
841264790Sbapt                    if (yylexemes == NULL) goto yyenomem;
842264790Sbapt                    yylvals   = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
843264790Sbapt                    if (yylvals == NULL) goto yyenomem;
844264790Sbapt                    yylvlim   = yylvals + YYLVQUEUEGROWTH;
845264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
846264790Sbapt                    yylpsns   = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE));
847264790Sbapt                    if (yylpsns == NULL) goto yyenomem;
848264790Sbapt                    yylplim   = yylpsns + YYLVQUEUEGROWTH;
849264790Sbapt#endif
850264790Sbapt                }
851264790Sbapt                if (yylvp == yylve)
852264790Sbapt                {
853264790Sbapt                    yylvp  = yylve = yylvals;
854264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
855264790Sbapt                    yylpp  = yylpe = yylpsns;
856264790Sbapt#endif
857264790Sbapt                    yylexp = yylexemes;
858264790Sbapt                    if (yychar >= YYEOF)
859264790Sbapt                    {
860264790Sbapt                        *yylve++ = yylval;
861264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
862264790Sbapt                        *yylpe++ = yylloc;
863264790Sbapt#endif
864264790Sbapt                        *yylexp  = (short) yychar;
865264790Sbapt                        yychar   = YYEMPTY;
866264790Sbapt                    }
867264790Sbapt                }
868264790Sbapt            }
869264790Sbapt            if (yychar >= YYEOF)
870264790Sbapt            {
871264790Sbapt                yylvp--;
872264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
873264790Sbapt                yylpp--;
874264790Sbapt#endif
875264790Sbapt                yylexp--;
876264790Sbapt                yychar = YYEMPTY;
877264790Sbapt            }
878272955Srodrigc            save->lexeme = (int) (yylvp - yylvals);
879264790Sbapt            yyps->save   = save;
880264790Sbapt        }
881264790Sbapt        if (yytable[yyn] == ctry)
882264790Sbapt        {
883264790Sbapt#if YYDEBUG
884264790Sbapt            if (yydebug)
885264790Sbapt                fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
886264790Sbapt                                YYDEBUGSTR, yydepth, yystate, yyctable[ctry]);
887264790Sbapt#endif
888264790Sbapt            if (yychar < 0)
889264790Sbapt            {
890264790Sbapt                yylvp++;
891264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
892264790Sbapt                yylpp++;
893264790Sbapt#endif
894264790Sbapt                yylexp++;
895264790Sbapt            }
896264790Sbapt            if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
897264790Sbapt                goto yyoverflow;
898264790Sbapt            yystate = yyctable[ctry];
899264790Sbapt            *++yystack.s_mark = (short) yystate;
900264790Sbapt            *++yystack.l_mark = yylval;
901264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
902264790Sbapt            *++yystack.p_mark = yylloc;
903264790Sbapt#endif
904264790Sbapt            yychar  = YYEMPTY;
905264790Sbapt            if (yyerrflag > 0) --yyerrflag;
906264790Sbapt            goto yyloop;
907264790Sbapt        }
908264790Sbapt        else
909264790Sbapt        {
910264790Sbapt            yyn = yyctable[ctry];
911264790Sbapt            goto yyreduce;
912264790Sbapt        }
913264790Sbapt    } /* End of code dealing with conflicts */
914264790Sbapt#endif /* YYBTYACC */
915264790Sbapt    if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
916264790Sbapt            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
917264790Sbapt    {
918264790Sbapt#if YYDEBUG
919264790Sbapt        if (yydebug)
920264790Sbapt            fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
921264790Sbapt                            YYDEBUGSTR, yydepth, yystate, yytable[yyn]);
922264790Sbapt#endif
923264790Sbapt        if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
924264790Sbapt        yystate = yytable[yyn];
925264790Sbapt        *++yystack.s_mark = yytable[yyn];
926264790Sbapt        *++yystack.l_mark = yylval;
927264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
928264790Sbapt        *++yystack.p_mark = yylloc;
929264790Sbapt#endif
930264790Sbapt        yychar = YYEMPTY;
931264790Sbapt        if (yyerrflag > 0)  --yyerrflag;
932264790Sbapt        goto yyloop;
933264790Sbapt    }
934264790Sbapt    if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
935264790Sbapt            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
936264790Sbapt    {
937264790Sbapt        yyn = yytable[yyn];
938264790Sbapt        goto yyreduce;
939264790Sbapt    }
940264790Sbapt    if (yyerrflag != 0) goto yyinrecovery;
941264790Sbapt#if YYBTYACC
942264790Sbapt
943264790Sbapt    yynewerrflag = 1;
944264790Sbapt    goto yyerrhandler;
945264790Sbapt    goto yyerrlab;
946264790Sbapt
947264790Sbaptyyerrlab:
948264790Sbapt    yynewerrflag = 0;
949264790Sbaptyyerrhandler:
950264790Sbapt    while (yyps->save)
951264790Sbapt    {
952264790Sbapt        int ctry;
953264790Sbapt        YYParseState *save = yyps->save;
954264790Sbapt#if YYDEBUG
955264790Sbapt        if (yydebug)
956264790Sbapt            fprintf(stderr, "%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\n",
957264790Sbapt                            YYDEBUGSTR, yydepth, yystate, yyps->save->state,
958264790Sbapt                    (int)(yylvp - yylvals - yyps->save->lexeme));
959264790Sbapt#endif
960264790Sbapt        /* Memorize most forward-looking error state in case it's really an error. */
961264790Sbapt        if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals)
962264790Sbapt        {
963264790Sbapt            /* Free old saved error context state */
964264790Sbapt            if (yyerrctx) yyFreeState(yyerrctx);
965264790Sbapt            /* Create and fill out new saved error context state */
966264790Sbapt            yyerrctx                 = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
967264790Sbapt            if (yyerrctx == NULL) goto yyenomem;
968264790Sbapt            yyerrctx->save           = yyps->save;
969264790Sbapt            yyerrctx->state          = yystate;
970264790Sbapt            yyerrctx->errflag        = yyerrflag;
971264790Sbapt            yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);
972272955Srodrigc            memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
973264790Sbapt            yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);
974272955Srodrigc            memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
975264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
976264790Sbapt            yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);
977272955Srodrigc            memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
978264790Sbapt#endif
979272955Srodrigc            yyerrctx->lexeme         = (int) (yylvp - yylvals);
980264790Sbapt        }
981264790Sbapt        yylvp          = yylvals   + save->lexeme;
982264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
983264790Sbapt        yylpp          = yylpsns   + save->lexeme;
984264790Sbapt#endif
985264790Sbapt        yylexp         = yylexemes + save->lexeme;
986264790Sbapt        yychar         = YYEMPTY;
987264790Sbapt        yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);
988272955Srodrigc        memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
989264790Sbapt        yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);
990272955Srodrigc        memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
991264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
992264790Sbapt        yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);
993272955Srodrigc        memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
994264790Sbapt#endif
995264790Sbapt        ctry           = ++save->ctry;
996264790Sbapt        yystate        = save->state;
997264790Sbapt        /* We tried shift, try reduce now */
998264790Sbapt        if ((yyn = yyctable[ctry]) >= 0) goto yyreduce;
999264790Sbapt        yyps->save     = save->save;
1000264790Sbapt        save->save     = NULL;
1001264790Sbapt        yyFreeState(save);
1002264790Sbapt
1003264790Sbapt        /* Nothing left on the stack -- error */
1004264790Sbapt        if (!yyps->save)
1005264790Sbapt        {
1006264790Sbapt#if YYDEBUG
1007264790Sbapt            if (yydebug)
1008264790Sbapt                fprintf(stderr, "%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\n",
1009264790Sbapt                                YYPREFIX, yydepth);
1010264790Sbapt#endif
1011264790Sbapt            /* Restore state as it was in the most forward-advanced error */
1012264790Sbapt            yylvp          = yylvals   + yyerrctx->lexeme;
1013264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1014264790Sbapt            yylpp          = yylpsns   + yyerrctx->lexeme;
1015264790Sbapt#endif
1016264790Sbapt            yylexp         = yylexemes + yyerrctx->lexeme;
1017264790Sbapt            yychar         = yylexp[-1];
1018264790Sbapt            yylval         = yylvp[-1];
1019264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1020264790Sbapt            yylloc         = yylpp[-1];
1021264790Sbapt#endif
1022264790Sbapt            yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);
1023272955Srodrigc            memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
1024264790Sbapt            yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);
1025272955Srodrigc            memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
1026264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1027264790Sbapt            yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);
1028272955Srodrigc            memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
1029264790Sbapt#endif
1030264790Sbapt            yystate        = yyerrctx->state;
1031264790Sbapt            yyFreeState(yyerrctx);
1032264790Sbapt            yyerrctx       = NULL;
1033264790Sbapt        }
1034264790Sbapt        yynewerrflag = 1;
1035264790Sbapt    }
1036264790Sbapt    if (yynewerrflag == 0) goto yyinrecovery;
1037264790Sbapt#endif /* YYBTYACC */
1038264790Sbapt
1039264790Sbapt    YYERROR_CALL("syntax error");
1040264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1041264790Sbapt    yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
1042264790Sbapt#endif
1043264790Sbapt
1044264790Sbapt#if !YYBTYACC
1045264790Sbapt    goto yyerrlab;
1046264790Sbaptyyerrlab:
1047264790Sbapt#endif
1048264790Sbapt    ++yynerrs;
1049264790Sbapt
1050264790Sbaptyyinrecovery:
1051264790Sbapt    if (yyerrflag < 3)
1052264790Sbapt    {
1053264790Sbapt        yyerrflag = 3;
1054264790Sbapt        for (;;)
1055264790Sbapt        {
1056264790Sbapt            if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
1057264790Sbapt                    yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
1058264790Sbapt            {
1059264790Sbapt#if YYDEBUG
1060264790Sbapt                if (yydebug)
1061264790Sbapt                    fprintf(stderr, "%s[%d]: state %d, error recovery shifting to state %d\n",
1062264790Sbapt                                    YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]);
1063264790Sbapt#endif
1064264790Sbapt                if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
1065264790Sbapt                yystate = yytable[yyn];
1066264790Sbapt                *++yystack.s_mark = yytable[yyn];
1067264790Sbapt                *++yystack.l_mark = yylval;
1068264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1069264790Sbapt                /* lookahead position is error end position */
1070264790Sbapt                yyerror_loc_range[1] = yylloc;
1071264790Sbapt                YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
1072264790Sbapt                *++yystack.p_mark = yyloc;
1073264790Sbapt#endif
1074264790Sbapt                goto yyloop;
1075264790Sbapt            }
1076264790Sbapt            else
1077264790Sbapt            {
1078264790Sbapt#if YYDEBUG
1079264790Sbapt                if (yydebug)
1080264790Sbapt                    fprintf(stderr, "%s[%d]: error recovery discarding state %d\n",
1081264790Sbapt                                    YYDEBUGSTR, yydepth, *yystack.s_mark);
1082264790Sbapt#endif
1083264790Sbapt                if (yystack.s_mark <= yystack.s_base) goto yyabort;
1084264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1085264790Sbapt                /* the current TOS position is the error start position */
1086264790Sbapt                yyerror_loc_range[0] = *yystack.p_mark;
1087264790Sbapt#endif
1088264790Sbapt#if defined(YYDESTRUCT_CALL)
1089264790Sbapt#if YYBTYACC
1090264790Sbapt                if (!yytrial)
1091264790Sbapt#endif /* YYBTYACC */
1092264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1093264790Sbapt                    YYDESTRUCT_CALL("error: discarding state",
1094264790Sbapt                                    yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark);
1095264790Sbapt#else
1096264790Sbapt                    YYDESTRUCT_CALL("error: discarding state",
1097264790Sbapt                                    yystos[*yystack.s_mark], yystack.l_mark);
1098264790Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
1099264790Sbapt#endif /* defined(YYDESTRUCT_CALL) */
1100264790Sbapt                --yystack.s_mark;
1101264790Sbapt                --yystack.l_mark;
1102264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1103264790Sbapt                --yystack.p_mark;
1104264790Sbapt#endif
1105264790Sbapt            }
1106264790Sbapt        }
1107264790Sbapt    }
1108264790Sbapt    else
1109264790Sbapt    {
1110264790Sbapt        if (yychar == YYEOF) goto yyabort;
1111264790Sbapt#if YYDEBUG
1112264790Sbapt        if (yydebug)
1113264790Sbapt        {
1114264790Sbapt            yys = yyname[YYTRANSLATE(yychar)];
1115264790Sbapt            fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n",
1116264790Sbapt                            YYDEBUGSTR, yydepth, yystate, yychar, yys);
1117264790Sbapt        }
1118264790Sbapt#endif
1119264790Sbapt#if defined(YYDESTRUCT_CALL)
1120264790Sbapt#if YYBTYACC
1121264790Sbapt        if (!yytrial)
1122264790Sbapt#endif /* YYBTYACC */
1123264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1124264790Sbapt            YYDESTRUCT_CALL("error: discarding token", yychar, &yylval, &yylloc);
1125264790Sbapt#else
1126264790Sbapt            YYDESTRUCT_CALL("error: discarding token", yychar, &yylval);
1127264790Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
1128264790Sbapt#endif /* defined(YYDESTRUCT_CALL) */
1129264790Sbapt        yychar = YYEMPTY;
1130264790Sbapt        goto yyloop;
1131264790Sbapt    }
1132264790Sbapt
1133264790Sbaptyyreduce:
1134264790Sbapt    yym = yylen[yyn];
1135264790Sbapt#if YYDEBUG
1136264790Sbapt    if (yydebug)
1137264790Sbapt    {
1138264790Sbapt        fprintf(stderr, "%s[%d]: state %d, reducing by rule %d (%s)",
1139264790Sbapt                        YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]);
1140264790Sbapt#ifdef YYSTYPE_TOSTRING
1141264790Sbapt#if YYBTYACC
1142264790Sbapt        if (!yytrial)
1143264790Sbapt#endif /* YYBTYACC */
1144264790Sbapt            if (yym > 0)
1145264790Sbapt            {
1146264790Sbapt                int i;
1147264790Sbapt                fputc('<', stderr);
1148264790Sbapt                for (i = yym; i > 0; i--)
1149264790Sbapt                {
1150264790Sbapt                    if (i != yym) fputs(", ", stderr);
1151264790Sbapt                    fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]],
1152264790Sbapt                                           yystack.l_mark[1-i]), stderr);
1153264790Sbapt                }
1154264790Sbapt                fputc('>', stderr);
1155264790Sbapt            }
1156264790Sbapt#endif
1157264790Sbapt        fputc('\n', stderr);
1158264790Sbapt    }
1159264790Sbapt#endif
1160264790Sbapt    if (yym > 0)
1161264790Sbapt        yyval = yystack.l_mark[1-yym];
1162264790Sbapt    else
1163264790Sbapt        memset(&yyval, 0, sizeof yyval);
1164264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1165264790Sbapt
1166264790Sbapt    /* Perform position reduction */
1167264790Sbapt    memset(&yyloc, 0, sizeof(yyloc));
1168264790Sbapt#if YYBTYACC
1169264790Sbapt    if (!yytrial)
1170264790Sbapt#endif /* YYBTYACC */
1171264790Sbapt    {
1172264790Sbapt        YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
1173264790Sbapt        /* just in case YYERROR is invoked within the action, save
1174264790Sbapt           the start of the rhs as the error start position */
1175264790Sbapt        yyerror_loc_range[0] = yystack.p_mark[1-yym];
1176264790Sbapt    }
1177264790Sbapt#endif
1178264790Sbapt
1179264790Sbapt    switch (yyn)
1180264790Sbapt    {
1181264790Sbaptcase 3:
1182264790Sbapt#line 35 "quote_calc4.y"
1183264790Sbapt	{  yyerrok ; }
1184264790Sbaptbreak;
1185264790Sbaptcase 4:
1186264790Sbapt#line 39 "quote_calc4.y"
1187264790Sbapt	{  printf("%d\n",yystack.l_mark[0]);}
1188264790Sbaptbreak;
1189264790Sbaptcase 5:
1190264790Sbapt#line 41 "quote_calc4.y"
1191264790Sbapt	{  regs[yystack.l_mark[-2]] = yystack.l_mark[0]; }
1192264790Sbaptbreak;
1193264790Sbaptcase 6:
1194264790Sbapt#line 45 "quote_calc4.y"
1195264790Sbapt	{  yyval = yystack.l_mark[-1]; }
1196264790Sbaptbreak;
1197264790Sbaptcase 7:
1198264790Sbapt#line 47 "quote_calc4.y"
1199264790Sbapt	{  yyval = yystack.l_mark[-2] + yystack.l_mark[0]; }
1200264790Sbaptbreak;
1201264790Sbaptcase 8:
1202264790Sbapt#line 49 "quote_calc4.y"
1203264790Sbapt	{  yyval = yystack.l_mark[-2] - yystack.l_mark[0]; }
1204264790Sbaptbreak;
1205264790Sbaptcase 9:
1206264790Sbapt#line 51 "quote_calc4.y"
1207264790Sbapt	{  yyval = yystack.l_mark[-2] * yystack.l_mark[0]; }
1208264790Sbaptbreak;
1209264790Sbaptcase 10:
1210264790Sbapt#line 53 "quote_calc4.y"
1211264790Sbapt	{  yyval = yystack.l_mark[-2] / yystack.l_mark[0]; }
1212264790Sbaptbreak;
1213264790Sbaptcase 11:
1214264790Sbapt#line 55 "quote_calc4.y"
1215264790Sbapt	{  yyval = yystack.l_mark[-2] % yystack.l_mark[0]; }
1216264790Sbaptbreak;
1217264790Sbaptcase 12:
1218264790Sbapt#line 57 "quote_calc4.y"
1219264790Sbapt	{  yyval = yystack.l_mark[-2] & yystack.l_mark[0]; }
1220264790Sbaptbreak;
1221264790Sbaptcase 13:
1222264790Sbapt#line 59 "quote_calc4.y"
1223264790Sbapt	{  yyval = yystack.l_mark[-2] | yystack.l_mark[0]; }
1224264790Sbaptbreak;
1225264790Sbaptcase 14:
1226264790Sbapt#line 61 "quote_calc4.y"
1227264790Sbapt	{  yyval = - yystack.l_mark[0]; }
1228264790Sbaptbreak;
1229264790Sbaptcase 15:
1230264790Sbapt#line 63 "quote_calc4.y"
1231264790Sbapt	{  yyval = regs[yystack.l_mark[0]]; }
1232264790Sbaptbreak;
1233264790Sbaptcase 17:
1234264790Sbapt#line 68 "quote_calc4.y"
1235264790Sbapt	{  yyval = yystack.l_mark[0]; base = (yystack.l_mark[0]==0) ? 8 : 10; }
1236264790Sbaptbreak;
1237264790Sbaptcase 18:
1238264790Sbapt#line 70 "quote_calc4.y"
1239264790Sbapt	{  yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
1240264790Sbaptbreak;
1241272955Srodrigc#line 1242 "quote_calc4-s.tab.c"
1242264790Sbapt    default:
1243264790Sbapt        break;
1244264790Sbapt    }
1245264790Sbapt    yystack.s_mark -= yym;
1246264790Sbapt    yystate = *yystack.s_mark;
1247264790Sbapt    yystack.l_mark -= yym;
1248264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1249264790Sbapt    yystack.p_mark -= yym;
1250264790Sbapt#endif
1251264790Sbapt    yym = yylhs[yyn];
1252264790Sbapt    if (yystate == 0 && yym == 0)
1253264790Sbapt    {
1254264790Sbapt#if YYDEBUG
1255264790Sbapt        if (yydebug)
1256264790Sbapt        {
1257264790Sbapt            fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
1258264790Sbapt#ifdef YYSTYPE_TOSTRING
1259264790Sbapt#if YYBTYACC
1260264790Sbapt            if (!yytrial)
1261264790Sbapt#endif /* YYBTYACC */
1262264790Sbapt                fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval));
1263264790Sbapt#endif
1264264790Sbapt            fprintf(stderr, "shifting from state 0 to final state %d\n", YYFINAL);
1265264790Sbapt        }
1266264790Sbapt#endif
1267264790Sbapt        yystate = YYFINAL;
1268264790Sbapt        *++yystack.s_mark = YYFINAL;
1269264790Sbapt        *++yystack.l_mark = yyval;
1270264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1271264790Sbapt        *++yystack.p_mark = yyloc;
1272264790Sbapt#endif
1273264790Sbapt        if (yychar < 0)
1274264790Sbapt        {
1275264790Sbapt#if YYBTYACC
1276264790Sbapt            do {
1277264790Sbapt            if (yylvp < yylve)
1278264790Sbapt            {
1279264790Sbapt                /* we're currently re-reading tokens */
1280264790Sbapt                yylval = *yylvp++;
1281264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1282264790Sbapt                yylloc = *yylpp++;
1283264790Sbapt#endif
1284264790Sbapt                yychar = *yylexp++;
1285264790Sbapt                break;
1286264790Sbapt            }
1287264790Sbapt            if (yyps->save)
1288264790Sbapt            {
1289264790Sbapt                /* in trial mode; save scanner results for future parse attempts */
1290264790Sbapt                if (yylvp == yylvlim)
1291264790Sbapt                {   /* Enlarge lexical value queue */
1292272955Srodrigc                    size_t p = (size_t) (yylvp - yylvals);
1293272955Srodrigc                    size_t s = (size_t) (yylvlim - yylvals);
1294264790Sbapt
1295264790Sbapt                    s += YYLVQUEUEGROWTH;
1296264790Sbapt                    if ((yylexemes = (short *)   realloc(yylexemes, s * sizeof(short))) == NULL)
1297264790Sbapt                        goto yyenomem;
1298264790Sbapt                    if ((yylvals   = (YYSTYPE *) realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
1299264790Sbapt                        goto yyenomem;
1300264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1301264790Sbapt                    if ((yylpsns   = (YYLTYPE *) realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
1302264790Sbapt                        goto yyenomem;
1303264790Sbapt#endif
1304264790Sbapt                    yylvp   = yylve = yylvals + p;
1305264790Sbapt                    yylvlim = yylvals + s;
1306264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1307264790Sbapt                    yylpp   = yylpe = yylpsns + p;
1308264790Sbapt                    yylplim = yylpsns + s;
1309264790Sbapt#endif
1310264790Sbapt                    yylexp  = yylexemes + p;
1311264790Sbapt                }
1312264790Sbapt                *yylexp = (short) YYLEX;
1313264790Sbapt                *yylvp++ = yylval;
1314264790Sbapt                yylve++;
1315264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1316264790Sbapt                *yylpp++ = yylloc;
1317264790Sbapt                yylpe++;
1318264790Sbapt#endif
1319264790Sbapt                yychar = *yylexp++;
1320264790Sbapt                break;
1321264790Sbapt            }
1322264790Sbapt            /* normal operation, no conflict encountered */
1323264790Sbapt#endif /* YYBTYACC */
1324264790Sbapt            yychar = YYLEX;
1325264790Sbapt#if YYBTYACC
1326264790Sbapt            } while (0);
1327264790Sbapt#endif /* YYBTYACC */
1328264790Sbapt            if (yychar < 0) yychar = YYEOF;
1329264790Sbapt            /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */
1330264790Sbapt#if YYDEBUG
1331264790Sbapt            if (yydebug)
1332264790Sbapt            {
1333264790Sbapt                yys = yyname[YYTRANSLATE(yychar)];
1334264790Sbapt                fprintf(stderr, "%s[%d]: state %d, reading %d (%s)\n",
1335264790Sbapt                                YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);
1336264790Sbapt            }
1337264790Sbapt#endif
1338264790Sbapt        }
1339264790Sbapt        if (yychar == YYEOF) goto yyaccept;
1340264790Sbapt        goto yyloop;
1341264790Sbapt    }
1342264790Sbapt    if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
1343264790Sbapt            yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
1344264790Sbapt        yystate = yytable[yyn];
1345264790Sbapt    else
1346264790Sbapt        yystate = yydgoto[yym];
1347264790Sbapt#if YYDEBUG
1348264790Sbapt    if (yydebug)
1349264790Sbapt    {
1350264790Sbapt        fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
1351264790Sbapt#ifdef YYSTYPE_TOSTRING
1352264790Sbapt#if YYBTYACC
1353264790Sbapt        if (!yytrial)
1354264790Sbapt#endif /* YYBTYACC */
1355264790Sbapt            fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[yystate], yyval));
1356264790Sbapt#endif
1357264790Sbapt        fprintf(stderr, "shifting from state %d to state %d\n", *yystack.s_mark, yystate);
1358264790Sbapt    }
1359264790Sbapt#endif
1360264790Sbapt    if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
1361264790Sbapt    *++yystack.s_mark = (short) yystate;
1362264790Sbapt    *++yystack.l_mark = yyval;
1363264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1364264790Sbapt    *++yystack.p_mark = yyloc;
1365264790Sbapt#endif
1366264790Sbapt    goto yyloop;
1367264790Sbapt#if YYBTYACC
1368264790Sbapt
1369264790Sbapt    /* Reduction declares that this path is valid. Set yypath and do a full parse */
1370264790Sbaptyyvalid:
1371264790Sbapt    if (yypath) YYABORT;
1372264790Sbapt    while (yyps->save)
1373264790Sbapt    {
1374264790Sbapt        YYParseState *save = yyps->save;
1375264790Sbapt        yyps->save = save->save;
1376264790Sbapt        save->save = yypath;
1377264790Sbapt        yypath = save;
1378264790Sbapt    }
1379264790Sbapt#if YYDEBUG
1380264790Sbapt    if (yydebug)
1381264790Sbapt        fprintf(stderr, "%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\n",
1382264790Sbapt                        YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme));
1383264790Sbapt#endif
1384264790Sbapt    if (yyerrctx)
1385264790Sbapt    {
1386264790Sbapt        yyFreeState(yyerrctx);
1387264790Sbapt        yyerrctx = NULL;
1388264790Sbapt    }
1389264790Sbapt    yylvp          = yylvals + yypath->lexeme;
1390264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1391264790Sbapt    yylpp          = yylpsns + yypath->lexeme;
1392264790Sbapt#endif
1393264790Sbapt    yylexp         = yylexemes + yypath->lexeme;
1394264790Sbapt    yychar         = YYEMPTY;
1395264790Sbapt    yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);
1396272955Srodrigc    memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
1397264790Sbapt    yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);
1398272955Srodrigc    memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
1399264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1400264790Sbapt    yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);
1401272955Srodrigc    memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
1402264790Sbapt#endif
1403264790Sbapt    yystate        = yypath->state;
1404264790Sbapt    goto yyloop;
1405264790Sbapt#endif /* YYBTYACC */
1406264790Sbapt
1407264790Sbaptyyoverflow:
1408264790Sbapt    YYERROR_CALL("yacc stack overflow");
1409264790Sbapt#if YYBTYACC
1410264790Sbapt    goto yyabort_nomem;
1411264790Sbaptyyenomem:
1412264790Sbapt    YYERROR_CALL("memory exhausted");
1413264790Sbaptyyabort_nomem:
1414264790Sbapt#endif /* YYBTYACC */
1415264790Sbapt    yyresult = 2;
1416264790Sbapt    goto yyreturn;
1417264790Sbapt
1418264790Sbaptyyabort:
1419264790Sbapt    yyresult = 1;
1420264790Sbapt    goto yyreturn;
1421264790Sbapt
1422264790Sbaptyyaccept:
1423264790Sbapt#if YYBTYACC
1424264790Sbapt    if (yyps->save) goto yyvalid;
1425264790Sbapt#endif /* YYBTYACC */
1426264790Sbapt    yyresult = 0;
1427264790Sbapt
1428264790Sbaptyyreturn:
1429264790Sbapt#if defined(YYDESTRUCT_CALL)
1430264790Sbapt    if (yychar != YYEOF && yychar != YYEMPTY)
1431264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1432264790Sbapt        YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval, &yylloc);
1433264790Sbapt#else
1434264790Sbapt        YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval);
1435264790Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
1436264790Sbapt
1437264790Sbapt    {
1438264790Sbapt        YYSTYPE *pv;
1439264790Sbapt#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1440264790Sbapt        YYLTYPE *pp;
1441264790Sbapt
1442264790Sbapt        for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp)
1443264790Sbapt             YYDESTRUCT_CALL("cleanup: discarding state",
1444264790Sbapt                             yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp);
1445264790Sbapt#else
1446264790Sbapt        for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv)
1447264790Sbapt             YYDESTRUCT_CALL("cleanup: discarding state",
1448264790Sbapt                             yystos[*(yystack.s_base + (pv - yystack.l_base))], pv);
1449264790Sbapt#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
1450264790Sbapt    }
1451264790Sbapt#endif /* defined(YYDESTRUCT_CALL) */
1452264790Sbapt
1453264790Sbapt#if YYBTYACC
1454264790Sbapt    if (yyerrctx)
1455264790Sbapt    {
1456264790Sbapt        yyFreeState(yyerrctx);
1457264790Sbapt        yyerrctx = NULL;
1458264790Sbapt    }
1459264790Sbapt    while (yyps)
1460264790Sbapt    {
1461264790Sbapt        YYParseState *save = yyps;
1462264790Sbapt        yyps = save->save;
1463264790Sbapt        save->save = NULL;
1464264790Sbapt        yyFreeState(save);
1465264790Sbapt    }
1466264790Sbapt    while (yypath)
1467264790Sbapt    {
1468264790Sbapt        YYParseState *save = yypath;
1469264790Sbapt        yypath = save->save;
1470264790Sbapt        save->save = NULL;
1471264790Sbapt        yyFreeState(save);
1472264790Sbapt    }
1473264790Sbapt#endif /* YYBTYACC */
1474264790Sbapt    yyfreestack(&yystack);
1475264790Sbapt    return (yyresult);
1476264790Sbapt}
1477