1*c8a0e2f4SThomas Veerman #if HAVE_NBTOOL_CONFIG_H
2*c8a0e2f4SThomas Veerman #include "nbtool_config.h"
3*c8a0e2f4SThomas Veerman #endif
4*c8a0e2f4SThomas Veerman #include <stdlib.h>
5*c8a0e2f4SThomas Veerman #ifndef lint
6*c8a0e2f4SThomas Veerman #if 0
7*c8a0e2f4SThomas Veerman static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
8*c8a0e2f4SThomas Veerman #else
9*c8a0e2f4SThomas Veerman #if defined(__NetBSD__) && defined(__IDSTRING)
10*c8a0e2f4SThomas Veerman __IDSTRING(yyrcsid, "NetBSD: skeleton.c,v 1.29 2008/07/18 14:25:37 drochner Exp ");
11*c8a0e2f4SThomas Veerman #endif /* __NetBSD__ && __IDSTRING */
12*c8a0e2f4SThomas Veerman #endif /* 0 */
13*c8a0e2f4SThomas Veerman #endif /* lint */
14*c8a0e2f4SThomas Veerman #define YYBYACC 1
15*c8a0e2f4SThomas Veerman #define YYMAJOR 1
16*c8a0e2f4SThomas Veerman #define YYMINOR 9
17*c8a0e2f4SThomas Veerman #define YYLEX yylex()
18*c8a0e2f4SThomas Veerman #define YYEMPTY -1
19*c8a0e2f4SThomas Veerman #define yyclearin (yychar=(YYEMPTY))
20*c8a0e2f4SThomas Veerman #define yyerrok (yyerrflag=0)
21*c8a0e2f4SThomas Veerman #define YYRECOVERING (yyerrflag!=0)
22*c8a0e2f4SThomas Veerman #define YYPREFIX "yy"
23*c8a0e2f4SThomas Veerman #line 2 "../../../usr.bin/m4/parser.y"
24*c8a0e2f4SThomas Veerman /* NetBSD: parser.y,v 1.2 2009/10/26 21:11:28 christos Exp */
25*c8a0e2f4SThomas Veerman /* $OpenBSD: parser.y,v 1.6 2008/08/21 21:00:14 espie Exp $ */
26*c8a0e2f4SThomas Veerman /*
27*c8a0e2f4SThomas Veerman * Copyright (c) 2004 Marc Espie <espie@cvs.openbsd.org>
28*c8a0e2f4SThomas Veerman *
29*c8a0e2f4SThomas Veerman * Permission to use, copy, modify, and distribute this software for any
30*c8a0e2f4SThomas Veerman * purpose with or without fee is hereby granted, provided that the above
31*c8a0e2f4SThomas Veerman * copyright notice and this permission notice appear in all copies.
32*c8a0e2f4SThomas Veerman *
33*c8a0e2f4SThomas Veerman * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
34*c8a0e2f4SThomas Veerman * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
35*c8a0e2f4SThomas Veerman * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
36*c8a0e2f4SThomas Veerman * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
37*c8a0e2f4SThomas Veerman * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
38*c8a0e2f4SThomas Veerman * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
39*c8a0e2f4SThomas Veerman * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
40*c8a0e2f4SThomas Veerman */
41*c8a0e2f4SThomas Veerman #if HAVE_NBTOOL_CONFIG_H
42*c8a0e2f4SThomas Veerman #include "nbtool_config.h"
43*c8a0e2f4SThomas Veerman #endif
44*c8a0e2f4SThomas Veerman __RCSID("NetBSD: parser.y,v 1.2 2009/10/26 21:11:28 christos Exp ");
45*c8a0e2f4SThomas Veerman #include <stdint.h>
46*c8a0e2f4SThomas Veerman #define YYSTYPE int32_t
47*c8a0e2f4SThomas Veerman extern int32_t end_result;
48*c8a0e2f4SThomas Veerman extern int yylex(void);
49*c8a0e2f4SThomas Veerman extern int yyerror(const char *);
50*c8a0e2f4SThomas Veerman #line 48 "parser.c"
51*c8a0e2f4SThomas Veerman #define NUMBER 257
52*c8a0e2f4SThomas Veerman #define ERROR 258
53*c8a0e2f4SThomas Veerman #define LOR 259
54*c8a0e2f4SThomas Veerman #define LAND 260
55*c8a0e2f4SThomas Veerman #define EQ 261
56*c8a0e2f4SThomas Veerman #define NE 262
57*c8a0e2f4SThomas Veerman #define LE 263
58*c8a0e2f4SThomas Veerman #define GE 264
59*c8a0e2f4SThomas Veerman #define LSHIFT 265
60*c8a0e2f4SThomas Veerman #define RSHIFT 266
61*c8a0e2f4SThomas Veerman #define UMINUS 267
62*c8a0e2f4SThomas Veerman #define UPLUS 268
63*c8a0e2f4SThomas Veerman #define YYERRCODE 256
64*c8a0e2f4SThomas Veerman const short yylhs[] = { -1,
65*c8a0e2f4SThomas Veerman 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
66*c8a0e2f4SThomas Veerman 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
67*c8a0e2f4SThomas Veerman 1, 1, 1, 1, 1,
68*c8a0e2f4SThomas Veerman };
69*c8a0e2f4SThomas Veerman const short yylen[] = { 2,
70*c8a0e2f4SThomas Veerman 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
71*c8a0e2f4SThomas Veerman 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
72*c8a0e2f4SThomas Veerman 2, 2, 2, 2, 1,
73*c8a0e2f4SThomas Veerman };
74*c8a0e2f4SThomas Veerman const short yydefred[] = { 0,
75*c8a0e2f4SThomas Veerman 25, 0, 0, 0, 0, 0, 0, 0, 22, 21,
76*c8a0e2f4SThomas Veerman 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
77*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
78*c8a0e2f4SThomas Veerman 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,
79*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 4, 5, 6,
80*c8a0e2f4SThomas Veerman };
81*c8a0e2f4SThomas Veerman const short yydgoto[] = { 7,
82*c8a0e2f4SThomas Veerman 8,
83*c8a0e2f4SThomas Veerman };
84*c8a0e2f4SThomas Veerman const short yysindex[] = { -13,
85*c8a0e2f4SThomas Veerman 0, -13, -13, -13, -13, -13, 0, 190, 0, 0,
86*c8a0e2f4SThomas Veerman 0, 0, 114, -13, -13, -13, -13, -13, -13, -13,
87*c8a0e2f4SThomas Veerman -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
88*c8a0e2f4SThomas Veerman -13, 0, 321, 347, 159, 397, 354, -24, -24, -35,
89*c8a0e2f4SThomas Veerman -35, -35, -35, 136, 136, -31, -31, 0, 0, 0,
90*c8a0e2f4SThomas Veerman };
91*c8a0e2f4SThomas Veerman const short yyrindex[] = { 0,
92*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
93*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
94*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
95*c8a0e2f4SThomas Veerman 0, 0, 65, 56, 51, 48, 74, 60, 66, 34,
96*c8a0e2f4SThomas Veerman 40, 76, 83, 17, 26, 1, 9, 0, 0, 0,
97*c8a0e2f4SThomas Veerman };
98*c8a0e2f4SThomas Veerman const short yygindex[] = { 0,
99*c8a0e2f4SThomas Veerman 458,
100*c8a0e2f4SThomas Veerman };
101*c8a0e2f4SThomas Veerman #define YYTABLESIZE 663
102*c8a0e2f4SThomas Veerman const short yytable[] = { 0,
103*c8a0e2f4SThomas Veerman 2, 31, 1, 0, 0, 31, 29, 27, 3, 28,
104*c8a0e2f4SThomas Veerman 29, 30, 31, 0, 0, 30, 7, 29, 27, 4,
105*c8a0e2f4SThomas Veerman 28, 0, 30, 0, 0, 8, 6, 0, 0, 2,
106*c8a0e2f4SThomas Veerman 0, 3, 0, 9, 0, 21, 0, 23, 2, 11,
107*c8a0e2f4SThomas Veerman 0, 2, 0, 2, 0, 2, 3, 16, 0, 3,
108*c8a0e2f4SThomas Veerman 17, 3, 0, 3, 7, 18, 0, 7, 0, 13,
109*c8a0e2f4SThomas Veerman 2, 0, 2, 8, 19, 14, 8, 0, 3, 0,
110*c8a0e2f4SThomas Veerman 3, 9, 0, 15, 9, 10, 7, 11, 7, 0,
111*c8a0e2f4SThomas Veerman 11, 0, 12, 0, 0, 8, 0, 8, 16, 0,
112*c8a0e2f4SThomas Veerman 0, 17, 0, 9, 2, 9, 18, 13, 0, 11,
113*c8a0e2f4SThomas Veerman 13, 11, 3, 14, 0, 19, 14, 0, 0, 0,
114*c8a0e2f4SThomas Veerman 7, 15, 5, 10, 15, 0, 10, 0, 0, 8,
115*c8a0e2f4SThomas Veerman 12, 0, 0, 12, 2, 0, 0, 9, 0, 0,
116*c8a0e2f4SThomas Veerman 0, 0, 3, 11, 0, 10, 0, 10, 0, 0,
117*c8a0e2f4SThomas Veerman 7, 16, 12, 0, 12, 0, 0, 0, 0, 8,
118*c8a0e2f4SThomas Veerman 31, 18, 0, 13, 32, 29, 27, 9, 28, 14,
119*c8a0e2f4SThomas Veerman 30, 0, 0, 11, 0, 0, 0, 15, 0, 10,
120*c8a0e2f4SThomas Veerman 0, 16, 31, 21, 17, 23, 12, 29, 27, 0,
121*c8a0e2f4SThomas Veerman 28, 0, 30, 13, 0, 0, 0, 0, 0, 14,
122*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 31, 18, 15, 0, 10,
123*c8a0e2f4SThomas Veerman 29, 27, 0, 28, 0, 30, 12, 17, 0, 0,
124*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 21, 0,
125*c8a0e2f4SThomas Veerman 23, 0, 0, 0, 0, 0, 31, 18, 0, 25,
126*c8a0e2f4SThomas Veerman 26, 29, 27, 0, 28, 0, 30, 16, 22, 24,
127*c8a0e2f4SThomas Veerman 25, 26, 0, 1, 0, 0, 0, 0, 0, 21,
128*c8a0e2f4SThomas Veerman 0, 23, 17, 0, 0, 0, 0, 0, 0, 2,
129*c8a0e2f4SThomas Veerman 2, 2, 2, 2, 2, 2, 2, 3, 3, 3,
130*c8a0e2f4SThomas Veerman 3, 3, 3, 3, 3, 7, 7, 7, 7, 7,
131*c8a0e2f4SThomas Veerman 7, 7, 7, 17, 8, 8, 8, 8, 8, 8,
132*c8a0e2f4SThomas Veerman 8, 8, 9, 9, 9, 9, 9, 9, 11, 11,
133*c8a0e2f4SThomas Veerman 11, 11, 11, 11, 0, 0, 16, 16, 0, 17,
134*c8a0e2f4SThomas Veerman 17, 0, 0, 16, 18, 18, 0, 0, 13, 13,
135*c8a0e2f4SThomas Veerman 13, 13, 0, 19, 14, 14, 14, 14, 0, 0,
136*c8a0e2f4SThomas Veerman 0, 0, 15, 15, 10, 10, 10, 10, 10, 10,
137*c8a0e2f4SThomas Veerman 0, 12, 12, 12, 12, 12, 12, 0, 0, 0,
138*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 31, 18, 0,
139*c8a0e2f4SThomas Veerman 0, 0, 29, 27, 0, 28, 0, 30, 0, 0,
140*c8a0e2f4SThomas Veerman 0, 0, 14, 15, 19, 20, 22, 24, 25, 26,
141*c8a0e2f4SThomas Veerman 21, 0, 23, 31, 18, 0, 0, 0, 29, 27,
142*c8a0e2f4SThomas Veerman 31, 28, 0, 30, 0, 29, 27, 0, 28, 0,
143*c8a0e2f4SThomas Veerman 30, 0, 0, 0, 0, 0, 21, 0, 23, 0,
144*c8a0e2f4SThomas Veerman 0, 0, 0, 21, 17, 23, 0, 0, 0, 19,
145*c8a0e2f4SThomas Veerman 20, 22, 24, 25, 26, 0, 0, 0, 0, 0,
146*c8a0e2f4SThomas Veerman 0, 0, 0, 31, 18, 0, 0, 0, 29, 27,
147*c8a0e2f4SThomas Veerman 17, 28, 0, 30, 16, 0, 0, 0, 14, 15,
148*c8a0e2f4SThomas Veerman 19, 20, 22, 24, 25, 26, 21, 0, 23, 9,
149*c8a0e2f4SThomas Veerman 10, 11, 12, 13, 0, 0, 0, 0, 0, 0,
150*c8a0e2f4SThomas Veerman 16, 33, 34, 35, 36, 37, 38, 39, 40, 41,
151*c8a0e2f4SThomas Veerman 42, 43, 44, 45, 46, 47, 48, 49, 50, 0,
152*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
153*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
154*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
155*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
156*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
157*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
158*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
159*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
160*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
161*c8a0e2f4SThomas Veerman 15, 19, 20, 22, 24, 25, 26, 0, 0, 0,
162*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
163*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 19, 20, 22,
164*c8a0e2f4SThomas Veerman 24, 25, 26, 0, 19, 20, 22, 24, 25, 26,
165*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
166*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
167*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
168*c8a0e2f4SThomas Veerman 0, 0, 0, 0, 0, 0, 0, 19, 20, 22,
169*c8a0e2f4SThomas Veerman 24, 25, 26,
170*c8a0e2f4SThomas Veerman };
171*c8a0e2f4SThomas Veerman const short yycheck[] = { -1,
172*c8a0e2f4SThomas Veerman 0, 37, 0, -1, -1, 37, 42, 43, 0, 45,
173*c8a0e2f4SThomas Veerman 42, 47, 37, -1, -1, 47, 0, 42, 43, 33,
174*c8a0e2f4SThomas Veerman 45, -1, 47, -1, -1, 0, 40, -1, -1, 43,
175*c8a0e2f4SThomas Veerman -1, 45, -1, 0, -1, 60, -1, 62, 38, 0,
176*c8a0e2f4SThomas Veerman -1, 41, -1, 43, -1, 45, 38, 0, -1, 41,
177*c8a0e2f4SThomas Veerman 0, 43, -1, 45, 38, 0, -1, 41, -1, 0,
178*c8a0e2f4SThomas Veerman 60, -1, 62, 38, 0, 0, 41, -1, 60, -1,
179*c8a0e2f4SThomas Veerman 62, 38, -1, 0, 41, 0, 60, 38, 62, -1,
180*c8a0e2f4SThomas Veerman 41, -1, 0, -1, -1, 60, -1, 62, 41, -1,
181*c8a0e2f4SThomas Veerman -1, 41, -1, 60, 94, 62, 41, 38, -1, 60,
182*c8a0e2f4SThomas Veerman 41, 62, 94, 38, -1, 41, 41, -1, -1, -1,
183*c8a0e2f4SThomas Veerman 94, 38, 126, 38, 41, -1, 41, -1, -1, 94,
184*c8a0e2f4SThomas Veerman 38, -1, -1, 41, 124, -1, -1, 94, -1, -1,
185*c8a0e2f4SThomas Veerman -1, -1, 124, 94, -1, 60, -1, 62, -1, -1,
186*c8a0e2f4SThomas Veerman 124, 94, 60, -1, 62, -1, -1, -1, -1, 124,
187*c8a0e2f4SThomas Veerman 37, 38, -1, 94, 41, 42, 43, 124, 45, 94,
188*c8a0e2f4SThomas Veerman 47, -1, -1, 124, -1, -1, -1, 94, -1, 94,
189*c8a0e2f4SThomas Veerman -1, 124, 37, 60, 124, 62, 94, 42, 43, -1,
190*c8a0e2f4SThomas Veerman 45, -1, 47, 124, -1, -1, -1, -1, -1, 124,
191*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, 37, 38, 124, -1, 124,
192*c8a0e2f4SThomas Veerman 42, 43, -1, 45, -1, 47, 124, 94, -1, -1,
193*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
194*c8a0e2f4SThomas Veerman 62, -1, -1, -1, -1, -1, 37, 38, -1, 265,
195*c8a0e2f4SThomas Veerman 266, 42, 43, -1, 45, -1, 47, 124, 263, 264,
196*c8a0e2f4SThomas Veerman 265, 266, -1, 257, -1, -1, -1, -1, -1, 60,
197*c8a0e2f4SThomas Veerman -1, 62, 94, -1, -1, -1, -1, -1, -1, 259,
198*c8a0e2f4SThomas Veerman 260, 261, 262, 263, 264, 265, 266, 259, 260, 261,
199*c8a0e2f4SThomas Veerman 262, 263, 264, 265, 266, 259, 260, 261, 262, 263,
200*c8a0e2f4SThomas Veerman 264, 265, 266, 94, 259, 260, 261, 262, 263, 264,
201*c8a0e2f4SThomas Veerman 265, 266, 259, 260, 261, 262, 263, 264, 259, 260,
202*c8a0e2f4SThomas Veerman 261, 262, 263, 264, -1, -1, 259, 260, -1, 259,
203*c8a0e2f4SThomas Veerman 260, -1, -1, 124, 259, 260, -1, -1, 259, 260,
204*c8a0e2f4SThomas Veerman 261, 262, -1, 259, 259, 260, 261, 262, -1, -1,
205*c8a0e2f4SThomas Veerman -1, -1, 259, 260, 259, 260, 261, 262, 263, 264,
206*c8a0e2f4SThomas Veerman -1, 259, 260, 261, 262, 263, 264, -1, -1, -1,
207*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
208*c8a0e2f4SThomas Veerman -1, -1, 42, 43, -1, 45, -1, 47, -1, -1,
209*c8a0e2f4SThomas Veerman -1, -1, 259, 260, 261, 262, 263, 264, 265, 266,
210*c8a0e2f4SThomas Veerman 60, -1, 62, 37, 38, -1, -1, -1, 42, 43,
211*c8a0e2f4SThomas Veerman 37, 45, -1, 47, -1, 42, 43, -1, 45, -1,
212*c8a0e2f4SThomas Veerman 47, -1, -1, -1, -1, -1, 60, -1, 62, -1,
213*c8a0e2f4SThomas Veerman -1, -1, -1, 60, 94, 62, -1, -1, -1, 261,
214*c8a0e2f4SThomas Veerman 262, 263, 264, 265, 266, -1, -1, -1, -1, -1,
215*c8a0e2f4SThomas Veerman -1, -1, -1, 37, 38, -1, -1, -1, 42, 43,
216*c8a0e2f4SThomas Veerman 94, 45, -1, 47, 124, -1, -1, -1, 259, 260,
217*c8a0e2f4SThomas Veerman 261, 262, 263, 264, 265, 266, 60, -1, 62, 2,
218*c8a0e2f4SThomas Veerman 3, 4, 5, 6, -1, -1, -1, -1, -1, -1,
219*c8a0e2f4SThomas Veerman 124, 14, 15, 16, 17, 18, 19, 20, 21, 22,
220*c8a0e2f4SThomas Veerman 23, 24, 25, 26, 27, 28, 29, 30, 31, -1,
221*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
222*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
223*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
224*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
225*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
226*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
227*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
228*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
229*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
230*c8a0e2f4SThomas Veerman 260, 261, 262, 263, 264, 265, 266, -1, -1, -1,
231*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
232*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, 261, 262, 263,
233*c8a0e2f4SThomas Veerman 264, 265, 266, -1, 261, 262, 263, 264, 265, 266,
234*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
235*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
236*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
237*c8a0e2f4SThomas Veerman -1, -1, -1, -1, -1, -1, -1, 261, 262, 263,
238*c8a0e2f4SThomas Veerman 264, 265, 266,
239*c8a0e2f4SThomas Veerman };
240*c8a0e2f4SThomas Veerman #define YYFINAL 7
241*c8a0e2f4SThomas Veerman #ifndef YYDEBUG
242*c8a0e2f4SThomas Veerman #define YYDEBUG 0
243*c8a0e2f4SThomas Veerman #endif
244*c8a0e2f4SThomas Veerman #define YYMAXTOKEN 268
245*c8a0e2f4SThomas Veerman #if YYDEBUG
246*c8a0e2f4SThomas Veerman const char * const yyname[] = {
247*c8a0e2f4SThomas Veerman "end-of-file",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,
248*c8a0e2f4SThomas Veerman "'!'",0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,
249*c8a0e2f4SThomas Veerman 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,
250*c8a0e2f4SThomas Veerman 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,
251*c8a0e2f4SThomas Veerman "'~'",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,
252*c8a0e2f4SThomas Veerman 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,0,
253*c8a0e2f4SThomas Veerman 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,0,
254*c8a0e2f4SThomas Veerman 0,0,0,0,0,0,0,0,0,0,0,0,0,"NUMBER","ERROR","LOR","LAND","EQ","NE","LE","GE",
255*c8a0e2f4SThomas Veerman "LSHIFT","RSHIFT","UMINUS","UPLUS",
256*c8a0e2f4SThomas Veerman };
257*c8a0e2f4SThomas Veerman const char * const yyrule[] = {
258*c8a0e2f4SThomas Veerman "$accept : top",
259*c8a0e2f4SThomas Veerman "top : expr",
260*c8a0e2f4SThomas Veerman "expr : expr '+' expr",
261*c8a0e2f4SThomas Veerman "expr : expr '-' expr",
262*c8a0e2f4SThomas Veerman "expr : expr '*' expr",
263*c8a0e2f4SThomas Veerman "expr : expr '/' expr",
264*c8a0e2f4SThomas Veerman "expr : expr '%' expr",
265*c8a0e2f4SThomas Veerman "expr : expr LSHIFT expr",
266*c8a0e2f4SThomas Veerman "expr : expr RSHIFT expr",
267*c8a0e2f4SThomas Veerman "expr : expr '<' expr",
268*c8a0e2f4SThomas Veerman "expr : expr '>' expr",
269*c8a0e2f4SThomas Veerman "expr : expr LE expr",
270*c8a0e2f4SThomas Veerman "expr : expr GE expr",
271*c8a0e2f4SThomas Veerman "expr : expr EQ expr",
272*c8a0e2f4SThomas Veerman "expr : expr NE expr",
273*c8a0e2f4SThomas Veerman "expr : expr '&' expr",
274*c8a0e2f4SThomas Veerman "expr : expr '^' expr",
275*c8a0e2f4SThomas Veerman "expr : expr '|' expr",
276*c8a0e2f4SThomas Veerman "expr : expr LAND expr",
277*c8a0e2f4SThomas Veerman "expr : expr LOR expr",
278*c8a0e2f4SThomas Veerman "expr : '(' expr ')'",
279*c8a0e2f4SThomas Veerman "expr : '-' expr",
280*c8a0e2f4SThomas Veerman "expr : '+' expr",
281*c8a0e2f4SThomas Veerman "expr : '!' expr",
282*c8a0e2f4SThomas Veerman "expr : '~' expr",
283*c8a0e2f4SThomas Veerman "expr : NUMBER",
284*c8a0e2f4SThomas Veerman };
285*c8a0e2f4SThomas Veerman #endif
286*c8a0e2f4SThomas Veerman #ifndef YYSTYPE
287*c8a0e2f4SThomas Veerman typedef int YYSTYPE;
288*c8a0e2f4SThomas Veerman #endif
289*c8a0e2f4SThomas Veerman #ifdef YYSTACKSIZE
290*c8a0e2f4SThomas Veerman #undef YYMAXDEPTH
291*c8a0e2f4SThomas Veerman #define YYMAXDEPTH YYSTACKSIZE
292*c8a0e2f4SThomas Veerman #else
293*c8a0e2f4SThomas Veerman #ifdef YYMAXDEPTH
294*c8a0e2f4SThomas Veerman #define YYSTACKSIZE YYMAXDEPTH
295*c8a0e2f4SThomas Veerman #else
296*c8a0e2f4SThomas Veerman #define YYSTACKSIZE 10000
297*c8a0e2f4SThomas Veerman #define YYMAXDEPTH 10000
298*c8a0e2f4SThomas Veerman #endif
299*c8a0e2f4SThomas Veerman #endif
300*c8a0e2f4SThomas Veerman #define YYINITSTACKSIZE 200
301*c8a0e2f4SThomas Veerman int yydebug;
302*c8a0e2f4SThomas Veerman int yynerrs;
303*c8a0e2f4SThomas Veerman int yyerrflag;
304*c8a0e2f4SThomas Veerman int yychar;
305*c8a0e2f4SThomas Veerman short *yyssp;
306*c8a0e2f4SThomas Veerman YYSTYPE *yyvsp;
307*c8a0e2f4SThomas Veerman YYSTYPE yyval;
308*c8a0e2f4SThomas Veerman static YYSTYPE yyvalzero;
309*c8a0e2f4SThomas Veerman YYSTYPE yylval;
310*c8a0e2f4SThomas Veerman short *yyss;
311*c8a0e2f4SThomas Veerman short *yysslim;
312*c8a0e2f4SThomas Veerman YYSTYPE *yyvs;
313*c8a0e2f4SThomas Veerman int yystacksize;
314*c8a0e2f4SThomas Veerman int yyparse(void);
315*c8a0e2f4SThomas Veerman #line 85 "../../../usr.bin/m4/parser.y"
316*c8a0e2f4SThomas Veerman
317*c8a0e2f4SThomas Veerman #line 315 "parser.c"
318*c8a0e2f4SThomas Veerman /* allocate initial stack or double stack size, up to YYMAXDEPTH */
319*c8a0e2f4SThomas Veerman static int yygrowstack(void);
yygrowstack(void)320*c8a0e2f4SThomas Veerman static int yygrowstack(void)
321*c8a0e2f4SThomas Veerman {
322*c8a0e2f4SThomas Veerman int newsize, i;
323*c8a0e2f4SThomas Veerman short *newss;
324*c8a0e2f4SThomas Veerman YYSTYPE *newvs;
325*c8a0e2f4SThomas Veerman
326*c8a0e2f4SThomas Veerman if ((newsize = yystacksize) == 0)
327*c8a0e2f4SThomas Veerman newsize = YYINITSTACKSIZE;
328*c8a0e2f4SThomas Veerman else if (newsize >= YYMAXDEPTH)
329*c8a0e2f4SThomas Veerman return -1;
330*c8a0e2f4SThomas Veerman else if ((newsize *= 2) > YYMAXDEPTH)
331*c8a0e2f4SThomas Veerman newsize = YYMAXDEPTH;
332*c8a0e2f4SThomas Veerman i = yyssp - yyss;
333*c8a0e2f4SThomas Veerman if ((newss = (short *)realloc(yyss, newsize * sizeof *newss)) == NULL)
334*c8a0e2f4SThomas Veerman return -1;
335*c8a0e2f4SThomas Veerman yyss = newss;
336*c8a0e2f4SThomas Veerman yyssp = newss + i;
337*c8a0e2f4SThomas Veerman if ((newvs = (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs)) == NULL)
338*c8a0e2f4SThomas Veerman return -1;
339*c8a0e2f4SThomas Veerman yyvs = newvs;
340*c8a0e2f4SThomas Veerman yyvsp = newvs + i;
341*c8a0e2f4SThomas Veerman yystacksize = newsize;
342*c8a0e2f4SThomas Veerman yysslim = yyss + newsize - 1;
343*c8a0e2f4SThomas Veerman return 0;
344*c8a0e2f4SThomas Veerman }
345*c8a0e2f4SThomas Veerman
346*c8a0e2f4SThomas Veerman #define YYABORT goto yyabort
347*c8a0e2f4SThomas Veerman #define YYREJECT goto yyabort
348*c8a0e2f4SThomas Veerman #define YYACCEPT goto yyaccept
349*c8a0e2f4SThomas Veerman #define YYERROR goto yyerrlab
350*c8a0e2f4SThomas Veerman int
yyparse(void)351*c8a0e2f4SThomas Veerman yyparse(void)
352*c8a0e2f4SThomas Veerman {
353*c8a0e2f4SThomas Veerman int yym, yyn, yystate;
354*c8a0e2f4SThomas Veerman #if YYDEBUG
355*c8a0e2f4SThomas Veerman const char *yys;
356*c8a0e2f4SThomas Veerman
357*c8a0e2f4SThomas Veerman if ((yys = getenv("YYDEBUG")) != NULL)
358*c8a0e2f4SThomas Veerman {
359*c8a0e2f4SThomas Veerman yyn = *yys;
360*c8a0e2f4SThomas Veerman if (yyn >= '0' && yyn <= '9')
361*c8a0e2f4SThomas Veerman yydebug = yyn - '0';
362*c8a0e2f4SThomas Veerman }
363*c8a0e2f4SThomas Veerman #endif
364*c8a0e2f4SThomas Veerman
365*c8a0e2f4SThomas Veerman yynerrs = 0;
366*c8a0e2f4SThomas Veerman yyerrflag = 0;
367*c8a0e2f4SThomas Veerman yychar = (-1);
368*c8a0e2f4SThomas Veerman
369*c8a0e2f4SThomas Veerman if (yyss == NULL && yygrowstack()) goto yyoverflow;
370*c8a0e2f4SThomas Veerman yyssp = yyss;
371*c8a0e2f4SThomas Veerman yyvsp = yyvs;
372*c8a0e2f4SThomas Veerman *yyssp = yystate = 0;
373*c8a0e2f4SThomas Veerman
374*c8a0e2f4SThomas Veerman yyloop:
375*c8a0e2f4SThomas Veerman if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
376*c8a0e2f4SThomas Veerman if (yychar < 0)
377*c8a0e2f4SThomas Veerman {
378*c8a0e2f4SThomas Veerman if ((yychar = yylex()) < 0) yychar = 0;
379*c8a0e2f4SThomas Veerman #if YYDEBUG
380*c8a0e2f4SThomas Veerman if (yydebug)
381*c8a0e2f4SThomas Veerman {
382*c8a0e2f4SThomas Veerman yys = 0;
383*c8a0e2f4SThomas Veerman if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
384*c8a0e2f4SThomas Veerman if (!yys) yys = "illegal-symbol";
385*c8a0e2f4SThomas Veerman printf("%sdebug: state %d, reading %d (%s)\n",
386*c8a0e2f4SThomas Veerman YYPREFIX, yystate, yychar, yys);
387*c8a0e2f4SThomas Veerman }
388*c8a0e2f4SThomas Veerman #endif
389*c8a0e2f4SThomas Veerman }
390*c8a0e2f4SThomas Veerman if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
391*c8a0e2f4SThomas Veerman yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
392*c8a0e2f4SThomas Veerman {
393*c8a0e2f4SThomas Veerman #if YYDEBUG
394*c8a0e2f4SThomas Veerman if (yydebug)
395*c8a0e2f4SThomas Veerman printf("%sdebug: state %d, shifting to state %d\n",
396*c8a0e2f4SThomas Veerman YYPREFIX, yystate, yytable[yyn]);
397*c8a0e2f4SThomas Veerman #endif
398*c8a0e2f4SThomas Veerman if (yyssp >= yysslim && yygrowstack())
399*c8a0e2f4SThomas Veerman {
400*c8a0e2f4SThomas Veerman goto yyoverflow;
401*c8a0e2f4SThomas Veerman }
402*c8a0e2f4SThomas Veerman *++yyssp = yystate = yytable[yyn];
403*c8a0e2f4SThomas Veerman *++yyvsp = yylval;
404*c8a0e2f4SThomas Veerman yychar = (-1);
405*c8a0e2f4SThomas Veerman if (yyerrflag > 0) --yyerrflag;
406*c8a0e2f4SThomas Veerman goto yyloop;
407*c8a0e2f4SThomas Veerman }
408*c8a0e2f4SThomas Veerman if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
409*c8a0e2f4SThomas Veerman yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
410*c8a0e2f4SThomas Veerman {
411*c8a0e2f4SThomas Veerman yyn = yytable[yyn];
412*c8a0e2f4SThomas Veerman goto yyreduce;
413*c8a0e2f4SThomas Veerman }
414*c8a0e2f4SThomas Veerman if (yyerrflag) goto yyinrecovery;
415*c8a0e2f4SThomas Veerman goto yynewerror;
416*c8a0e2f4SThomas Veerman yynewerror:
417*c8a0e2f4SThomas Veerman yyerror("syntax error");
418*c8a0e2f4SThomas Veerman goto yyerrlab;
419*c8a0e2f4SThomas Veerman yyerrlab:
420*c8a0e2f4SThomas Veerman ++yynerrs;
421*c8a0e2f4SThomas Veerman yyinrecovery:
422*c8a0e2f4SThomas Veerman if (yyerrflag < 3)
423*c8a0e2f4SThomas Veerman {
424*c8a0e2f4SThomas Veerman yyerrflag = 3;
425*c8a0e2f4SThomas Veerman for (;;)
426*c8a0e2f4SThomas Veerman {
427*c8a0e2f4SThomas Veerman if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
428*c8a0e2f4SThomas Veerman yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
429*c8a0e2f4SThomas Veerman {
430*c8a0e2f4SThomas Veerman #if YYDEBUG
431*c8a0e2f4SThomas Veerman if (yydebug)
432*c8a0e2f4SThomas Veerman printf("%sdebug: state %d, error recovery shifting\
433*c8a0e2f4SThomas Veerman to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
434*c8a0e2f4SThomas Veerman #endif
435*c8a0e2f4SThomas Veerman if (yyssp >= yysslim && yygrowstack())
436*c8a0e2f4SThomas Veerman {
437*c8a0e2f4SThomas Veerman goto yyoverflow;
438*c8a0e2f4SThomas Veerman }
439*c8a0e2f4SThomas Veerman *++yyssp = yystate = yytable[yyn];
440*c8a0e2f4SThomas Veerman *++yyvsp = yylval;
441*c8a0e2f4SThomas Veerman goto yyloop;
442*c8a0e2f4SThomas Veerman }
443*c8a0e2f4SThomas Veerman else
444*c8a0e2f4SThomas Veerman {
445*c8a0e2f4SThomas Veerman #if YYDEBUG
446*c8a0e2f4SThomas Veerman if (yydebug)
447*c8a0e2f4SThomas Veerman printf("%sdebug: error recovery discarding state %d\n",
448*c8a0e2f4SThomas Veerman YYPREFIX, *yyssp);
449*c8a0e2f4SThomas Veerman #endif
450*c8a0e2f4SThomas Veerman if (yyssp <= yyss) goto yyabort;
451*c8a0e2f4SThomas Veerman --yyssp;
452*c8a0e2f4SThomas Veerman --yyvsp;
453*c8a0e2f4SThomas Veerman }
454*c8a0e2f4SThomas Veerman }
455*c8a0e2f4SThomas Veerman }
456*c8a0e2f4SThomas Veerman else
457*c8a0e2f4SThomas Veerman {
458*c8a0e2f4SThomas Veerman if (yychar == 0) goto yyabort;
459*c8a0e2f4SThomas Veerman #if YYDEBUG
460*c8a0e2f4SThomas Veerman if (yydebug)
461*c8a0e2f4SThomas Veerman {
462*c8a0e2f4SThomas Veerman yys = 0;
463*c8a0e2f4SThomas Veerman if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
464*c8a0e2f4SThomas Veerman if (!yys) yys = "illegal-symbol";
465*c8a0e2f4SThomas Veerman printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
466*c8a0e2f4SThomas Veerman YYPREFIX, yystate, yychar, yys);
467*c8a0e2f4SThomas Veerman }
468*c8a0e2f4SThomas Veerman #endif
469*c8a0e2f4SThomas Veerman yychar = (-1);
470*c8a0e2f4SThomas Veerman goto yyloop;
471*c8a0e2f4SThomas Veerman }
472*c8a0e2f4SThomas Veerman yyreduce:
473*c8a0e2f4SThomas Veerman #if YYDEBUG
474*c8a0e2f4SThomas Veerman if (yydebug)
475*c8a0e2f4SThomas Veerman printf("%sdebug: state %d, reducing by rule %d (%s)\n",
476*c8a0e2f4SThomas Veerman YYPREFIX, yystate, yyn, yyrule[yyn]);
477*c8a0e2f4SThomas Veerman #endif
478*c8a0e2f4SThomas Veerman yym = yylen[yyn];
479*c8a0e2f4SThomas Veerman if (yym)
480*c8a0e2f4SThomas Veerman yyval = yyvsp[1-yym];
481*c8a0e2f4SThomas Veerman else
482*c8a0e2f4SThomas Veerman yyval = yyvalzero;
483*c8a0e2f4SThomas Veerman switch (yyn)
484*c8a0e2f4SThomas Veerman {
485*c8a0e2f4SThomas Veerman case 1:
486*c8a0e2f4SThomas Veerman #line 45 "../../../usr.bin/m4/parser.y"
487*c8a0e2f4SThomas Veerman { end_result = yyvsp[0]; }
488*c8a0e2f4SThomas Veerman break;
489*c8a0e2f4SThomas Veerman case 2:
490*c8a0e2f4SThomas Veerman #line 47 "../../../usr.bin/m4/parser.y"
491*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] + yyvsp[0]; }
492*c8a0e2f4SThomas Veerman break;
493*c8a0e2f4SThomas Veerman case 3:
494*c8a0e2f4SThomas Veerman #line 48 "../../../usr.bin/m4/parser.y"
495*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] - yyvsp[0]; }
496*c8a0e2f4SThomas Veerman break;
497*c8a0e2f4SThomas Veerman case 4:
498*c8a0e2f4SThomas Veerman #line 49 "../../../usr.bin/m4/parser.y"
499*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] * yyvsp[0]; }
500*c8a0e2f4SThomas Veerman break;
501*c8a0e2f4SThomas Veerman case 5:
502*c8a0e2f4SThomas Veerman #line 50 "../../../usr.bin/m4/parser.y"
503*c8a0e2f4SThomas Veerman {
504*c8a0e2f4SThomas Veerman if (yyvsp[0] == 0) {
505*c8a0e2f4SThomas Veerman yyerror("division by zero");
506*c8a0e2f4SThomas Veerman exit(1);
507*c8a0e2f4SThomas Veerman }
508*c8a0e2f4SThomas Veerman yyval = yyvsp[-2] / yyvsp[0];
509*c8a0e2f4SThomas Veerman }
510*c8a0e2f4SThomas Veerman break;
511*c8a0e2f4SThomas Veerman case 6:
512*c8a0e2f4SThomas Veerman #line 57 "../../../usr.bin/m4/parser.y"
513*c8a0e2f4SThomas Veerman {
514*c8a0e2f4SThomas Veerman if (yyvsp[0] == 0) {
515*c8a0e2f4SThomas Veerman yyerror("modulo zero");
516*c8a0e2f4SThomas Veerman exit(1);
517*c8a0e2f4SThomas Veerman }
518*c8a0e2f4SThomas Veerman yyval = yyvsp[-2] % yyvsp[0];
519*c8a0e2f4SThomas Veerman }
520*c8a0e2f4SThomas Veerman break;
521*c8a0e2f4SThomas Veerman case 7:
522*c8a0e2f4SThomas Veerman #line 64 "../../../usr.bin/m4/parser.y"
523*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] << yyvsp[0]; }
524*c8a0e2f4SThomas Veerman break;
525*c8a0e2f4SThomas Veerman case 8:
526*c8a0e2f4SThomas Veerman #line 65 "../../../usr.bin/m4/parser.y"
527*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] >> yyvsp[0]; }
528*c8a0e2f4SThomas Veerman break;
529*c8a0e2f4SThomas Veerman case 9:
530*c8a0e2f4SThomas Veerman #line 66 "../../../usr.bin/m4/parser.y"
531*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] < yyvsp[0]; }
532*c8a0e2f4SThomas Veerman break;
533*c8a0e2f4SThomas Veerman case 10:
534*c8a0e2f4SThomas Veerman #line 67 "../../../usr.bin/m4/parser.y"
535*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] > yyvsp[0]; }
536*c8a0e2f4SThomas Veerman break;
537*c8a0e2f4SThomas Veerman case 11:
538*c8a0e2f4SThomas Veerman #line 68 "../../../usr.bin/m4/parser.y"
539*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] <= yyvsp[0]; }
540*c8a0e2f4SThomas Veerman break;
541*c8a0e2f4SThomas Veerman case 12:
542*c8a0e2f4SThomas Veerman #line 69 "../../../usr.bin/m4/parser.y"
543*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] >= yyvsp[0]; }
544*c8a0e2f4SThomas Veerman break;
545*c8a0e2f4SThomas Veerman case 13:
546*c8a0e2f4SThomas Veerman #line 70 "../../../usr.bin/m4/parser.y"
547*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] == yyvsp[0]; }
548*c8a0e2f4SThomas Veerman break;
549*c8a0e2f4SThomas Veerman case 14:
550*c8a0e2f4SThomas Veerman #line 71 "../../../usr.bin/m4/parser.y"
551*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] != yyvsp[0]; }
552*c8a0e2f4SThomas Veerman break;
553*c8a0e2f4SThomas Veerman case 15:
554*c8a0e2f4SThomas Veerman #line 72 "../../../usr.bin/m4/parser.y"
555*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] & yyvsp[0]; }
556*c8a0e2f4SThomas Veerman break;
557*c8a0e2f4SThomas Veerman case 16:
558*c8a0e2f4SThomas Veerman #line 73 "../../../usr.bin/m4/parser.y"
559*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] ^ yyvsp[0]; }
560*c8a0e2f4SThomas Veerman break;
561*c8a0e2f4SThomas Veerman case 17:
562*c8a0e2f4SThomas Veerman #line 74 "../../../usr.bin/m4/parser.y"
563*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] | yyvsp[0]; }
564*c8a0e2f4SThomas Veerman break;
565*c8a0e2f4SThomas Veerman case 18:
566*c8a0e2f4SThomas Veerman #line 75 "../../../usr.bin/m4/parser.y"
567*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] && yyvsp[0]; }
568*c8a0e2f4SThomas Veerman break;
569*c8a0e2f4SThomas Veerman case 19:
570*c8a0e2f4SThomas Veerman #line 76 "../../../usr.bin/m4/parser.y"
571*c8a0e2f4SThomas Veerman { yyval = yyvsp[-2] || yyvsp[0]; }
572*c8a0e2f4SThomas Veerman break;
573*c8a0e2f4SThomas Veerman case 20:
574*c8a0e2f4SThomas Veerman #line 77 "../../../usr.bin/m4/parser.y"
575*c8a0e2f4SThomas Veerman { yyval = yyvsp[-1]; }
576*c8a0e2f4SThomas Veerman break;
577*c8a0e2f4SThomas Veerman case 21:
578*c8a0e2f4SThomas Veerman #line 78 "../../../usr.bin/m4/parser.y"
579*c8a0e2f4SThomas Veerman { yyval = -yyvsp[0]; }
580*c8a0e2f4SThomas Veerman break;
581*c8a0e2f4SThomas Veerman case 22:
582*c8a0e2f4SThomas Veerman #line 79 "../../../usr.bin/m4/parser.y"
583*c8a0e2f4SThomas Veerman { yyval = yyvsp[0]; }
584*c8a0e2f4SThomas Veerman break;
585*c8a0e2f4SThomas Veerman case 23:
586*c8a0e2f4SThomas Veerman #line 80 "../../../usr.bin/m4/parser.y"
587*c8a0e2f4SThomas Veerman { yyval = !yyvsp[0]; }
588*c8a0e2f4SThomas Veerman break;
589*c8a0e2f4SThomas Veerman case 24:
590*c8a0e2f4SThomas Veerman #line 81 "../../../usr.bin/m4/parser.y"
591*c8a0e2f4SThomas Veerman { yyval = ~yyvsp[0]; }
592*c8a0e2f4SThomas Veerman break;
593*c8a0e2f4SThomas Veerman #line 591 "parser.c"
594*c8a0e2f4SThomas Veerman }
595*c8a0e2f4SThomas Veerman yyssp -= yym;
596*c8a0e2f4SThomas Veerman yystate = *yyssp;
597*c8a0e2f4SThomas Veerman yyvsp -= yym;
598*c8a0e2f4SThomas Veerman yym = yylhs[yyn];
599*c8a0e2f4SThomas Veerman if (yystate == 0 && yym == 0)
600*c8a0e2f4SThomas Veerman {
601*c8a0e2f4SThomas Veerman #if YYDEBUG
602*c8a0e2f4SThomas Veerman if (yydebug)
603*c8a0e2f4SThomas Veerman printf("%sdebug: after reduction, shifting from state 0 to\
604*c8a0e2f4SThomas Veerman state %d\n", YYPREFIX, YYFINAL);
605*c8a0e2f4SThomas Veerman #endif
606*c8a0e2f4SThomas Veerman yystate = YYFINAL;
607*c8a0e2f4SThomas Veerman *++yyssp = YYFINAL;
608*c8a0e2f4SThomas Veerman *++yyvsp = yyval;
609*c8a0e2f4SThomas Veerman if (yychar < 0)
610*c8a0e2f4SThomas Veerman {
611*c8a0e2f4SThomas Veerman if ((yychar = yylex()) < 0) yychar = 0;
612*c8a0e2f4SThomas Veerman #if YYDEBUG
613*c8a0e2f4SThomas Veerman if (yydebug)
614*c8a0e2f4SThomas Veerman {
615*c8a0e2f4SThomas Veerman yys = 0;
616*c8a0e2f4SThomas Veerman if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
617*c8a0e2f4SThomas Veerman if (!yys) yys = "illegal-symbol";
618*c8a0e2f4SThomas Veerman printf("%sdebug: state %d, reading %d (%s)\n",
619*c8a0e2f4SThomas Veerman YYPREFIX, YYFINAL, yychar, yys);
620*c8a0e2f4SThomas Veerman }
621*c8a0e2f4SThomas Veerman #endif
622*c8a0e2f4SThomas Veerman }
623*c8a0e2f4SThomas Veerman if (yychar == 0) goto yyaccept;
624*c8a0e2f4SThomas Veerman goto yyloop;
625*c8a0e2f4SThomas Veerman }
626*c8a0e2f4SThomas Veerman if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
627*c8a0e2f4SThomas Veerman yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
628*c8a0e2f4SThomas Veerman yystate = yytable[yyn];
629*c8a0e2f4SThomas Veerman else
630*c8a0e2f4SThomas Veerman yystate = yydgoto[yym];
631*c8a0e2f4SThomas Veerman #if YYDEBUG
632*c8a0e2f4SThomas Veerman if (yydebug)
633*c8a0e2f4SThomas Veerman printf("%sdebug: after reduction, shifting from state %d \
634*c8a0e2f4SThomas Veerman to state %d\n", YYPREFIX, *yyssp, yystate);
635*c8a0e2f4SThomas Veerman #endif
636*c8a0e2f4SThomas Veerman if (yyssp >= yysslim && yygrowstack())
637*c8a0e2f4SThomas Veerman {
638*c8a0e2f4SThomas Veerman goto yyoverflow;
639*c8a0e2f4SThomas Veerman }
640*c8a0e2f4SThomas Veerman *++yyssp = yystate;
641*c8a0e2f4SThomas Veerman *++yyvsp = yyval;
642*c8a0e2f4SThomas Veerman goto yyloop;
643*c8a0e2f4SThomas Veerman yyoverflow:
644*c8a0e2f4SThomas Veerman yyerror("yacc stack overflow");
645*c8a0e2f4SThomas Veerman yyabort:
646*c8a0e2f4SThomas Veerman return (1);
647*c8a0e2f4SThomas Veerman yyaccept:
648*c8a0e2f4SThomas Veerman return (0);
649*c8a0e2f4SThomas Veerman }
650