xref: /minix3/tools/m4/bootstrap/parser.c (revision c8a0e2f4c688362b79ef1474cea604c8ebd6045d)
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