groff: update vendor branch to v1.20.1
[dragonfly.git] / contrib / groff / src / preproc / eqn / eqn.cpp
CommitLineData
92d0a6a6 1#ifndef lint
4d3e9548 2static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
92d0a6a6 3#endif
4d3e9548
JL
4
5#include <stdlib.h>
6#include <string.h>
7
92d0a6a6
JR
8#define YYBYACC 1
9#define YYMAJOR 1
10#define YYMINOR 9
4d3e9548
JL
11#define YYPATCH 20081224
12
13#define YYEMPTY (-1)
14#define yyclearin (yychar = YYEMPTY)
15#define yyerrok (yyerrflag = 0)
16#define YYRECOVERING() (yyerrflag != 0)
17
18/* compatibility with bison */
19#ifdef YYPARSE_PARAM
20/* compatibility with FreeBSD */
21#ifdef YYPARSE_PARAM_TYPE
22#define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
23#else
24#define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
25#endif
26#else
27#define YYPARSE_DECL() yyparse(void)
28#endif /* YYPARSE_PARAM */
29
30extern int YYPARSE_DECL();
31
32static int yygrowstack(void);
92d0a6a6
JR
33#define YYPREFIX "yy"
34#line 20 "eqn.y"
35#include <stdio.h>
36#include <string.h>
37#include <stdlib.h>
38
39#include "lib.h"
40#include "box.h"
41extern int non_empty_flag;
42int yylex();
43void yyerror(const char *);
44#line 31 "eqn.y"
45typedef union {
46 char *str;
47 box *b;
48 pile_box *pb;
49 matrix_box *mb;
50 int n;
51 column *col;
52} YYSTYPE;
4d3e9548 53#line 53 "eqn.cpp"
92d0a6a6
JR
54#define OVER 257
55#define SMALLOVER 258
56#define SQRT 259
57#define SUB 260
58#define SUP 261
59#define LPILE 262
60#define RPILE 263
61#define CPILE 264
62#define PILE 265
63#define LEFT 266
64#define RIGHT 267
65#define TO 268
66#define FROM 269
67#define SIZE 270
68#define FONT 271
69#define ROMAN 272
70#define BOLD 273
71#define ITALIC 274
72#define FAT 275
73#define ACCENT 276
74#define BAR 277
75#define UNDER 278
76#define ABOVE 279
77#define TEXT 280
78#define QUOTED_TEXT 281
79#define FWD 282
80#define BACK 283
81#define DOWN 284
82#define UP 285
83#define MATRIX 286
84#define COL 287
85#define LCOL 288
86#define RCOL 289
87#define CCOL 290
88#define MARK 291
89#define LINEUP 292
90#define TYPE 293
91#define VCENTER 294
92#define PRIME 295
93#define SPLIT 296
94#define NOSPLIT 297
95#define UACCENT 298
96#define SPECIAL 299
97#define SPACE 300
98#define GFONT 301
99#define GSIZE 302
100#define DEFINE 303
101#define NDEFINE 304
102#define TDEFINE 305
103#define SDEFINE 306
104#define UNDEF 307
105#define IFDEF 308
106#define INCLUDE 309
107#define DELIM 310
108#define CHARTYPE 311
109#define SET 312
110#define GRFONT 313
111#define GBFONT 314
112#define YYERRCODE 256
4d3e9548 113static const short yylhs[] = { -1,
92d0a6a6
JR
114 0, 0, 6, 6, 1, 1, 1, 2, 2, 2,
115 2, 2, 3, 3, 3, 3, 4, 4, 7, 7,
116 7, 5, 5, 5, 5, 5, 5, 5, 5, 5,
117 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
118 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
119 5, 5, 5, 5, 8, 11, 11, 12, 12, 13,
120 13, 16, 16, 15, 15, 14, 14, 14, 14, 9,
121 9, 10, 10, 10,
122};
4d3e9548 123static const short yylen[] = { 2,
92d0a6a6
JR
124 0, 1, 1, 2, 1, 2, 2, 1, 3, 3,
125 5, 5, 1, 2, 3, 3, 1, 3, 1, 3,
126 5, 1, 1, 2, 2, 1, 1, 1, 3, 2,
127 2, 2, 2, 4, 5, 3, 2, 2, 2, 3,
128 3, 2, 2, 2, 2, 3, 3, 3, 3, 3,
129 3, 3, 2, 3, 1, 1, 3, 3, 4, 1,
130 2, 1, 3, 3, 4, 2, 2, 2, 2, 1,
131 1, 1, 1, 1,
132};
4d3e9548 133static const short yydefred[] = { 0,
92d0a6a6
JR
134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
135 0, 0, 22, 23, 0, 0, 0, 0, 0, 0,
136 0, 0, 0, 0, 0, 0, 26, 27, 28, 0,
137 0, 3, 5, 0, 13, 0, 0, 17, 14, 70,
138 71, 0, 0, 55, 31, 32, 33, 30, 73, 74,
139 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
140 0, 0, 0, 6, 7, 0, 0, 24, 25, 0,
141 0, 0, 0, 0, 0, 0, 0, 0, 37, 38,
142 39, 0, 4, 0, 0, 0, 0, 0, 0, 0,
143 0, 0, 0, 0, 0, 0, 0, 0, 60, 0,
144 0, 29, 15, 16, 9, 0, 0, 20, 18, 40,
145 41, 0, 58, 0, 0, 0, 0, 66, 67, 68,
146 69, 34, 61, 0, 0, 0, 0, 59, 35, 0,
147 0, 0, 11, 12, 21, 0, 64, 0, 0, 65,
148};
4d3e9548 149static const short yydgoto[] = { 31,
92d0a6a6
JR
150 32, 33, 34, 35, 36, 84, 38, 43, 44, 52,
151 85, 45, 98, 99, 118, 131,
152};
4d3e9548 153static const short yysindex[] = { 1488,
92d0a6a6
JR
154 1527, -120, -120, -120, -120, -123, -249, -249, 1566, 1566,
155 1566, 1566, 0, 0, -249, -249, -249, -249, -115, 1488,
156 1488, -249, 1566, -256, -251, -249, 0, 0, 0, 1488,
157 0, 0, 0, -221, 0, -233, 1488, 0, 0, 0,
158 0, 1488, -85, 0, 0, 0, 0, 0, 0, 0,
159 0, 1488, 1566, 1566, -195, -195, -195, -195, 1566, 1566,
160 1566, 1566, -272, 0, 0, 1566, -195, 0, 0, 1566,
161 1402, 1527, 1527, 1527, 1527, 1566, 1566, 1566, 0, 0,
162 0, 1566, 0, 1488, -113, 1488, 1444, -195, -195, -195,
163 -195, -195, -195, -117, -117, -117, -117, -118, 0, -195,
164 -195, 0, 0, 0, 0, -167, -189, 0, 0, 0,
165 0, 1488, 0, -106, -123, 1488, -83, 0, 0, 0,
166 0, 0, 0, 1527, 1527, 1566, 1488, 0, 0, 1488,
167 -105, 1488, 0, 0, 0, 1488, 0, -104, 1488, 0,
168};
4d3e9548 169static const short yyrindex[] = { 41,
92d0a6a6
JR
170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
173 0, 0, 0, 1, 0, 1220, 46, 0, 0, 0,
174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
175 0, 0, 0, 0, 85, 128, 363, 406, 0, 0,
176 0, 0, 0, 0, 0, 0, 449, 0, 0, 0,
177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
178 0, 0, 0, -103, 0, 0, 185, 492, 727, 770,
179 813, 856, 1091, 0, 0, 0, 0, 0, 0, 1134,
180 1177, 0, 0, 0, 0, 42, 1220, 0, 0, 0,
181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
182 0, 0, 0, 0, 0, 0, -102, 0, 0, -101,
183 0, 0, 0, 0, 0, 0, 0, 0, -99, 0,
184};
4d3e9548 185static const short yygindex[] = { 0,
92d0a6a6
JR
186 -7, -69, 3, -66, 458, 9, -26, 52, 27, -63,
187 -32, 54, 0, -35, 2, -59,
188};
189#define YYTABLESIZE 1865
4d3e9548 190static const short yytable[] = { 49,
92d0a6a6
JR
191 8, 50, 42, 39, 105, 116, 122, 63, 37, 8,
192 109, 113, 64, 65, 94, 95, 96, 97, 128, 137,
193 140, 56, 57, 62, 68, 63, 76, 77, 69, 83,
194 40, 41, 51, 53, 54, 72, 73, 86, 71, 132,
195 1, 10, 78, 79, 80, 2, 74, 75, 66, 108,
196 10, 129, 70, 114, 133, 134, 46, 47, 48, 135,
197 87, 81, 123, 83, 82, 0, 59, 60, 61, 62,
198 76, 126, 138, 0, 103, 104, 83, 106, 0, 83,
199 78, 79, 80, 0, 42, 0, 78, 79, 80, 72,
200 73, 0, 0, 42, 8, 0, 119, 120, 121, 81,
201 124, 125, 82, 0, 0, 81, 0, 0, 82, 0,
202 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
203 127, 0, 83, 8, 130, 8, 8, 43, 0, 0,
204 0, 83, 0, 0, 0, 10, 43, 0, 0, 0,
205 130, 51, 0, 0, 139, 117, 117, 117, 117, 0,
206 0, 0, 0, 0, 0, 0, 40, 41, 0, 40,
207 41, 0, 40, 41, 10, 112, 10, 10, 94, 95,
208 96, 97, 112, 136, 136, 56, 57, 62, 42, 63,
209 0, 0, 0, 0, 36, 0, 0, 0, 0, 0,
210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
211 0, 0, 0, 0, 0, 0, 0, 42, 0, 42,
212 42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
213 0, 43, 0, 0, 0, 0, 0, 0, 0, 0,
214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
216 43, 0, 43, 43, 0, 0, 0, 0, 0, 8,
217 8, 8, 8, 8, 8, 8, 8, 8, 0, 0,
218 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
219 8, 8, 8, 8, 8, 8, 8, 0, 0, 0,
220 0, 8, 8, 8, 8, 8, 8, 8, 8, 8,
221 10, 10, 10, 10, 10, 10, 10, 10, 10, 36,
222 0, 10, 10, 10, 10, 10, 10, 10, 10, 10,
223 10, 10, 10, 10, 10, 10, 10, 10, 0, 0,
224 0, 0, 10, 10, 10, 10, 10, 10, 10, 10,
225 10, 42, 42, 42, 42, 42, 42, 42, 42, 42,
226 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
227 0, 0, 44, 42, 42, 42, 42, 42, 42, 42,
228 42, 44, 0, 0, 0, 42, 42, 42, 42, 0,
229 42, 42, 0, 42, 43, 43, 43, 43, 43, 43,
230 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
231 43, 43, 43, 0, 0, 45, 43, 43, 43, 43,
232 43, 43, 43, 43, 45, 0, 0, 0, 43, 43,
233 43, 43, 0, 43, 43, 0, 43, 0, 0, 0,
234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
235 0, 36, 36, 0, 36, 36, 0, 0, 53, 0,
236 0, 0, 36, 36, 0, 0, 44, 53, 0, 0,
237 36, 36, 36, 36, 0, 0, 55, 56, 57, 58,
238 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
239 67, 0, 36, 0, 0, 44, 0, 44, 44, 0,
240 0, 47, 0, 0, 0, 0, 0, 0, 0, 45,
241 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
242 88, 89, 0, 0, 0, 0, 90, 91, 92, 93,
243 0, 0, 0, 100, 0, 0, 0, 101, 45, 0,
244 45, 45, 0, 107, 0, 110, 0, 0, 0, 111,
245 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
248 0, 53, 0, 53, 53, 0, 0, 0, 0, 0,
249 0, 0, 0, 0, 0, 47, 0, 0, 0, 0,
250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
252 0, 0, 0, 0, 47, 0, 47, 47, 0, 44,
253 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
254 44, 44, 44, 44, 44, 44, 44, 44, 0, 0,
255 0, 44, 44, 44, 44, 44, 44, 44, 44, 0,
256 0, 0, 0, 44, 44, 44, 44, 0, 44, 44,
257 0, 44, 45, 45, 45, 45, 45, 45, 45, 45,
258 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
259 45, 0, 0, 0, 45, 45, 45, 45, 45, 45,
260 45, 45, 0, 0, 0, 0, 45, 45, 45, 45,
261 0, 45, 45, 0, 45, 53, 53, 53, 53, 53,
262 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
263 53, 53, 53, 53, 0, 0, 46, 53, 53, 53,
264 53, 53, 53, 53, 53, 46, 0, 0, 0, 53,
265 53, 53, 53, 0, 53, 53, 0, 53, 47, 47,
266 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
267 47, 47, 47, 47, 47, 47, 47, 0, 0, 48,
268 47, 47, 47, 47, 47, 47, 47, 47, 48, 0,
269 0, 0, 47, 47, 47, 47, 0, 47, 47, 0,
270 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
272 0, 0, 49, 0, 0, 0, 0, 0, 0, 0,
273 46, 49, 0, 0, 0, 0, 0, 0, 0, 0,
274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
275 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
276 0, 46, 46, 0, 0, 51, 0, 0, 0, 0,
277 0, 0, 0, 48, 51, 0, 0, 0, 0, 0,
278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
280 0, 0, 48, 0, 48, 48, 0, 0, 0, 0,
281 0, 0, 0, 0, 0, 0, 49, 0, 0, 0,
282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
284 0, 0, 0, 0, 0, 49, 0, 49, 49, 0,
285 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
288 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
289 51, 51, 0, 46, 46, 46, 46, 46, 46, 46,
290 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
291 46, 46, 0, 0, 0, 46, 46, 46, 46, 46,
292 46, 46, 46, 0, 0, 0, 0, 46, 46, 46,
293 46, 0, 46, 46, 0, 46, 48, 48, 48, 48,
294 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
295 48, 48, 48, 48, 48, 0, 0, 0, 48, 48,
296 48, 48, 48, 48, 48, 48, 0, 0, 0, 0,
297 48, 48, 48, 48, 0, 48, 48, 0, 48, 49,
298 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
299 49, 49, 49, 49, 49, 49, 49, 49, 0, 0,
300 50, 49, 49, 49, 49, 49, 49, 49, 49, 50,
301 0, 0, 0, 49, 49, 49, 49, 0, 49, 49,
302 0, 49, 51, 51, 51, 51, 51, 51, 51, 51,
303 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
304 51, 0, 0, 52, 51, 51, 51, 51, 51, 51,
305 51, 51, 52, 0, 0, 0, 51, 51, 51, 51,
306 0, 51, 51, 0, 51, 0, 0, 0, 0, 0,
307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
308 0, 0, 0, 0, 0, 0, 54, 0, 0, 0,
309 0, 0, 0, 0, 50, 54, 0, 0, 0, 0,
310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 50, 0, 50, 50, 0, 0, 19,
313 0, 0, 0, 0, 0, 0, 0, 52, 19, 0,
314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
316 0, 0, 0, 0, 0, 0, 52, 0, 52, 52,
317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
318 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
320 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
321 0, 54, 54, 0, 0, 0, 0, 0, 0, 0,
322 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
325 0, 0, 19, 0, 19, 19, 0, 50, 50, 50,
326 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
327 50, 50, 50, 50, 50, 50, 0, 0, 0, 50,
328 50, 50, 50, 50, 50, 50, 50, 0, 0, 0,
329 0, 50, 50, 50, 50, 0, 50, 50, 0, 50,
330 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
331 52, 52, 52, 52, 52, 52, 52, 52, 52, 0,
332 29, 0, 52, 52, 52, 52, 52, 52, 52, 52,
333 0, 0, 0, 0, 52, 52, 52, 52, 0, 52,
334 52, 0, 52, 54, 54, 54, 54, 54, 54, 54,
335 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
336 54, 54, 29, 0, 0, 54, 54, 54, 54, 54,
337 54, 54, 54, 0, 0, 0, 0, 54, 54, 54,
338 54, 0, 54, 54, 0, 54, 19, 19, 19, 0,
339 0, 19, 19, 19, 19, 19, 19, 19, 19, 19,
340 19, 19, 19, 19, 19, 27, 29, 0, 19, 19,
341 19, 19, 19, 19, 19, 19, 0, 0, 0, 0,
342 19, 19, 19, 19, 0, 19, 19, 0, 19, 0,
343 0, 0, 0, 0, 30, 0, 102, 28, 0, 0,
344 0, 0, 0, 0, 0, 29, 0, 27, 0, 0,
345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
347 0, 0, 0, 0, 0, 0, 30, 0, 0, 28,
348 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
349 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
352 30, 0, 0, 28, 0, 0, 0, 0, 0, 0,
353 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,
356 0, 0, 28, 0, 0, 0, 0, 0, 0, 27,
357 1, 0, 0, 2, 3, 4, 5, 6, 0, 0,
358 0, 7, 8, 9, 10, 11, 12, 0, 0, 0,
359 0, 13, 14, 15, 16, 17, 18, 19, 30, 0,
360 0, 28, 20, 21, 22, 23, 0, 24, 25, 0,
361 26, 0, 1, 0, 0, 2, 3, 4, 5, 6,
362 115, 0, 0, 7, 8, 9, 10, 11, 12, 0,
363 0, 0, 0, 13, 14, 15, 16, 17, 18, 19,
364 0, 0, 0, 0, 20, 21, 22, 23, 0, 24,
365 25, 0, 26, 0, 0, 0, 1, 0, 0, 2,
366 3, 4, 5, 6, 0, 0, 0, 7, 8, 9,
367 10, 11, 12, 0, 0, 0, 0, 13, 14, 15,
368 16, 17, 18, 19, 0, 0, 0, 0, 20, 21,
369 22, 23, 0, 24, 25, 1, 26, 0, 2, 3,
370 4, 5, 6, 0, 0, 0, 7, 8, 9, 10,
371 11, 12, 0, 0, 0, 0, 13, 14, 15, 16,
372 17, 18, 19, 0, 0, 0, 0, 0, 0, 22,
373 23, 0, 24, 25, 0, 26, 0, 2, 3, 4,
374 5, 6, 0, 0, 0, 7, 8, 9, 10, 11,
375 12, 0, 0, 0, 0, 13, 14, 15, 16, 17,
376 18, 19, 0, 0, 0, 0, 0, 0, 22, 23,
377 0, 24, 25, 0, 26,
378};
4d3e9548 379static const short yycheck[] = { 123,
92d0a6a6
JR
380 0, 125, 123, 1, 74, 123, 125, 123, 0, 9,
381 77, 125, 20, 21, 287, 288, 289, 290, 125, 125,
382 125, 125, 125, 125, 281, 125, 260, 261, 280, 37,
383 280, 281, 6, 7, 8, 257, 258, 123, 30, 123,
384 0, 0, 276, 277, 278, 0, 268, 269, 22, 76,
385 9, 115, 26, 86, 124, 125, 3, 4, 5, 126,
386 52, 295, 98, 71, 298, -1, 15, 16, 17, 18,
387 260, 261, 132, -1, 72, 73, 84, 75, -1, 87,
388 276, 277, 278, -1, 0, -1, 276, 277, 278, 257,
389 258, -1, -1, 9, 94, -1, 95, 96, 97, 295,
390 268, 269, 298, -1, -1, 295, -1, -1, 298, -1,
391 -1, -1, -1, -1, -1, -1, -1, -1, -1, 127,
392 112, -1, 130, 123, 116, 125, 126, 0, -1, -1,
393 -1, 139, -1, -1, -1, 94, 9, -1, -1, -1,
394 132, 115, -1, -1, 136, 94, 95, 96, 97, -1,
395 -1, -1, -1, -1, -1, -1, 280, 281, -1, 280,
396 281, -1, 280, 281, 123, 279, 125, 126, 287, 288,
397 289, 290, 279, 279, 279, 279, 279, 279, 94, 279,
398 -1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
399 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
400 -1, -1, -1, -1, -1, -1, -1, 123, -1, 125,
401 126, -1, -1, -1, -1, -1, -1, -1, -1, -1,
402 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
403 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
404 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
405 123, -1, 125, 126, -1, -1, -1, -1, -1, 259,
406 260, 261, 262, 263, 264, 265, 266, 267, -1, -1,
407 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
408 280, 281, 282, 283, 284, 285, 286, -1, -1, -1,
409 -1, 291, 292, 293, 294, 295, 296, 297, 298, 299,
410 259, 260, 261, 262, 263, 264, 265, 266, 267, 125,
411 -1, 270, 271, 272, 273, 274, 275, 276, 277, 278,
412 279, 280, 281, 282, 283, 284, 285, 286, -1, -1,
413 -1, -1, 291, 292, 293, 294, 295, 296, 297, 298,
414 299, 257, 258, 259, 260, 261, 262, 263, 264, 265,
415 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
416 -1, -1, 0, 279, 280, 281, 282, 283, 284, 285,
417 286, 9, -1, -1, -1, 291, 292, 293, 294, -1,
418 296, 297, -1, 299, 257, 258, 259, 260, 261, 262,
419 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
420 273, 274, 275, -1, -1, 0, 279, 280, 281, 282,
421 283, 284, 285, 286, 9, -1, -1, -1, 291, 292,
422 293, 294, -1, 296, 297, -1, 299, -1, -1, -1,
423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
424 -1, 257, 258, -1, 260, 261, -1, -1, 0, -1,
425 -1, -1, 268, 269, -1, -1, 94, 9, -1, -1,
426 276, 277, 278, 279, -1, -1, 9, 10, 11, 12,
427 -1, -1, -1, -1, -1, -1, -1, -1, -1, 295,
428 23, -1, 298, -1, -1, 123, -1, 125, 126, -1,
429 -1, 0, -1, -1, -1, -1, -1, -1, -1, 94,
430 9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
431 53, 54, -1, -1, -1, -1, 59, 60, 61, 62,
432 -1, -1, -1, 66, -1, -1, -1, 70, 123, -1,
433 125, 126, -1, 76, -1, 78, -1, -1, -1, 82,
434 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1,
435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
436 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
437 -1, 123, -1, 125, 126, -1, -1, -1, -1, -1,
438 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1,
439 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
441 -1, -1, -1, -1, 123, -1, 125, 126, -1, 257,
442 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
443 268, 269, 270, 271, 272, 273, 274, 275, -1, -1,
444 -1, 279, 280, 281, 282, 283, 284, 285, 286, -1,
445 -1, -1, -1, 291, 292, 293, 294, -1, 296, 297,
446 -1, 299, 257, 258, 259, 260, 261, 262, 263, 264,
447 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
448 275, -1, -1, -1, 279, 280, 281, 282, 283, 284,
449 285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
450 -1, 296, 297, -1, 299, 257, 258, 259, 260, 261,
451 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
452 272, 273, 274, 275, -1, -1, 0, 279, 280, 281,
453 282, 283, 284, 285, 286, 9, -1, -1, -1, 291,
454 292, 293, 294, -1, 296, 297, -1, 299, 257, 258,
455 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
456 269, 270, 271, 272, 273, 274, 275, -1, -1, 0,
457 279, 280, 281, 282, 283, 284, 285, 286, 9, -1,
458 -1, -1, 291, 292, 293, 294, -1, 296, 297, -1,
459 299, -1, -1, -1, -1, -1, -1, -1, -1, -1,
460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
461 -1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
462 94, 9, -1, -1, -1, -1, -1, -1, -1, -1,
463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
464 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
465 -1, 125, 126, -1, -1, 0, -1, -1, -1, -1,
466 -1, -1, -1, 94, 9, -1, -1, -1, -1, -1,
467 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
469 -1, -1, 123, -1, 125, 126, -1, -1, -1, -1,
470 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1,
471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
473 -1, -1, -1, -1, -1, 123, -1, 125, 126, -1,
474 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
477 -1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
478 125, 126, -1, 257, 258, 259, 260, 261, 262, 263,
479 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
480 274, 275, -1, -1, -1, 279, 280, 281, 282, 283,
481 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
482 294, -1, 296, 297, -1, 299, 257, 258, 259, 260,
483 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
484 271, 272, 273, 274, 275, -1, -1, -1, 279, 280,
485 281, 282, 283, 284, 285, 286, -1, -1, -1, -1,
486 291, 292, 293, 294, -1, 296, 297, -1, 299, 257,
487 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
488 268, 269, 270, 271, 272, 273, 274, 275, -1, -1,
489 0, 279, 280, 281, 282, 283, 284, 285, 286, 9,
490 -1, -1, -1, 291, 292, 293, 294, -1, 296, 297,
491 -1, 299, 257, 258, 259, 260, 261, 262, 263, 264,
492 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
493 275, -1, -1, 0, 279, 280, 281, 282, 283, 284,
494 285, 286, 9, -1, -1, -1, 291, 292, 293, 294,
495 -1, 296, 297, -1, 299, -1, -1, -1, -1, -1,
496 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
497 -1, -1, -1, -1, -1, -1, 0, -1, -1, -1,
498 -1, -1, -1, -1, 94, 9, -1, -1, -1, -1,
499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
501 -1, -1, -1, 123, -1, 125, 126, -1, -1, 0,
502 -1, -1, -1, -1, -1, -1, -1, 94, 9, -1,
503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
505 -1, -1, -1, -1, -1, -1, 123, -1, 125, 126,
506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
507 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
508 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
509 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
510 -1, 125, 126, -1, -1, -1, -1, -1, -1, -1,
511 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
514 -1, -1, 123, -1, 125, 126, -1, 257, 258, 259,
515 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
516 270, 271, 272, 273, 274, 275, -1, -1, -1, 279,
517 280, 281, 282, 283, 284, 285, 286, -1, -1, -1,
518 -1, 291, 292, 293, 294, -1, 296, 297, -1, 299,
519 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
520 267, 268, 269, 270, 271, 272, 273, 274, 275, -1,
521 9, -1, 279, 280, 281, 282, 283, 284, 285, 286,
522 -1, -1, -1, -1, 291, 292, 293, 294, -1, 296,
523 297, -1, 299, 257, 258, 259, 260, 261, 262, 263,
524 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
525 274, 275, 9, -1, -1, 279, 280, 281, 282, 283,
526 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
527 294, -1, 296, 297, -1, 299, 257, 258, 259, -1,
528 -1, 262, 263, 264, 265, 266, 267, 268, 269, 270,
529 271, 272, 273, 274, 275, 94, 9, -1, 279, 280,
530 281, 282, 283, 284, 285, 286, -1, -1, -1, -1,
531 291, 292, 293, 294, -1, 296, 297, -1, 299, -1,
532 -1, -1, -1, -1, 123, -1, 125, 126, -1, -1,
533 -1, -1, -1, -1, -1, 9, -1, 94, -1, -1,
534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
535 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
536 -1, -1, -1, -1, -1, -1, 123, -1, -1, 126,
537 -1, -1, -1, -1, 9, -1, -1, -1, -1, -1,
538 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
540 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
541 123, -1, -1, 126, -1, -1, -1, -1, -1, -1,
542 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
544 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
545 -1, -1, 126, -1, -1, -1, -1, -1, -1, 94,
546 259, -1, -1, 262, 263, 264, 265, 266, -1, -1,
547 -1, 270, 271, 272, 273, 274, 275, -1, -1, -1,
548 -1, 280, 281, 282, 283, 284, 285, 286, 123, -1,
549 -1, 126, 291, 292, 293, 294, -1, 296, 297, -1,
550 299, -1, 259, -1, -1, 262, 263, 264, 265, 266,
551 267, -1, -1, 270, 271, 272, 273, 274, 275, -1,
552 -1, -1, -1, 280, 281, 282, 283, 284, 285, 286,
553 -1, -1, -1, -1, 291, 292, 293, 294, -1, 296,
554 297, -1, 299, -1, -1, -1, 259, -1, -1, 262,
555 263, 264, 265, 266, -1, -1, -1, 270, 271, 272,
556 273, 274, 275, -1, -1, -1, -1, 280, 281, 282,
557 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
558 293, 294, -1, 296, 297, 259, 299, -1, 262, 263,
559 264, 265, 266, -1, -1, -1, 270, 271, 272, 273,
560 274, 275, -1, -1, -1, -1, 280, 281, 282, 283,
561 284, 285, 286, -1, -1, -1, -1, -1, -1, 293,
562 294, -1, 296, 297, -1, 299, -1, 262, 263, 264,
563 265, 266, -1, -1, -1, 270, 271, 272, 273, 274,
564 275, -1, -1, -1, -1, 280, 281, 282, 283, 284,
565 285, 286, -1, -1, -1, -1, -1, -1, 293, 294,
566 -1, 296, 297, -1, 299,
567};
568#define YYFINAL 31
569#ifndef YYDEBUG
570#define YYDEBUG 0
571#endif
572#define YYMAXTOKEN 314
573#if YYDEBUG
4d3e9548
JL
574static const char *yyname[] = {
575
92d0a6a6
JR
576"end-of-file",0,0,0,0,0,0,0,0,"'\\t'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5770,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5780,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5790,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",0,"'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5810,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5820,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"OVER",
583"SMALLOVER","SQRT","SUB","SUP","LPILE","RPILE","CPILE","PILE","LEFT","RIGHT",
584"TO","FROM","SIZE","FONT","ROMAN","BOLD","ITALIC","FAT","ACCENT","BAR","UNDER",
585"ABOVE","TEXT","QUOTED_TEXT","FWD","BACK","DOWN","UP","MATRIX","COL","LCOL",
586"RCOL","CCOL","MARK","LINEUP","TYPE","VCENTER","PRIME","SPLIT","NOSPLIT",
587"UACCENT","SPECIAL","SPACE","GFONT","GSIZE","DEFINE","NDEFINE","TDEFINE",
588"SDEFINE","UNDEF","IFDEF","INCLUDE","DELIM","CHARTYPE","SET","GRFONT","GBFONT",
589};
4d3e9548 590static const char *yyrule[] = {
92d0a6a6
JR
591"$accept : top",
592"top :",
593"top : equation",
594"equation : mark",
595"equation : equation mark",
596"mark : from_to",
597"mark : MARK mark",
598"mark : LINEUP mark",
599"from_to : sqrt_over",
600"from_to : sqrt_over TO from_to",
601"from_to : sqrt_over FROM sqrt_over",
602"from_to : sqrt_over FROM sqrt_over TO from_to",
603"from_to : sqrt_over FROM sqrt_over FROM from_to",
604"sqrt_over : script",
605"sqrt_over : SQRT sqrt_over",
606"sqrt_over : sqrt_over OVER sqrt_over",
607"sqrt_over : sqrt_over SMALLOVER sqrt_over",
608"script : nonsup",
609"script : simple SUP script",
610"nonsup : simple",
611"nonsup : simple SUB nonsup",
612"nonsup : simple SUB simple SUP script",
613"simple : TEXT",
614"simple : QUOTED_TEXT",
615"simple : SPLIT QUOTED_TEXT",
616"simple : NOSPLIT TEXT",
617"simple : '^'",
618"simple : '~'",
619"simple : '\\t'",
620"simple : '{' equation '}'",
621"simple : PILE pile_arg",
622"simple : LPILE pile_arg",
623"simple : RPILE pile_arg",
624"simple : CPILE pile_arg",
625"simple : MATRIX '{' column_list '}'",
626"simple : LEFT delim equation RIGHT delim",
627"simple : LEFT delim equation",
628"simple : simple BAR",
629"simple : simple UNDER",
630"simple : simple PRIME",
631"simple : simple ACCENT simple",
632"simple : simple UACCENT simple",
633"simple : ROMAN simple",
634"simple : BOLD simple",
635"simple : ITALIC simple",
636"simple : FAT simple",
637"simple : FONT text simple",
638"simple : SIZE text simple",
639"simple : FWD number simple",
640"simple : BACK number simple",
641"simple : UP number simple",
642"simple : DOWN number simple",
643"simple : TYPE text simple",
644"simple : VCENTER simple",
645"simple : SPECIAL text simple",
646"number : text",
647"pile_element_list : equation",
648"pile_element_list : pile_element_list ABOVE equation",
649"pile_arg : '{' pile_element_list '}'",
650"pile_arg : number '{' pile_element_list '}'",
651"column_list : column",
652"column_list : column_list column",
653"column_element_list : equation",
654"column_element_list : column_element_list ABOVE equation",
655"column_arg : '{' column_element_list '}'",
656"column_arg : number '{' column_element_list '}'",
657"column : COL column_arg",
658"column : LCOL column_arg",
659"column : RCOL column_arg",
660"column : CCOL column_arg",
661"text : TEXT",
662"text : QUOTED_TEXT",
663"delim : text",
664"delim : '{'",
665"delim : '}'",
4d3e9548 666
92d0a6a6
JR
667};
668#endif
4d3e9548
JL
669#if YYDEBUG
670#include <stdio.h>
671#endif
672
673/* define the initial stack-sizes */
92d0a6a6
JR
674#ifdef YYSTACKSIZE
675#undef YYMAXDEPTH
4d3e9548 676#define YYMAXDEPTH YYSTACKSIZE
92d0a6a6
JR
677#else
678#ifdef YYMAXDEPTH
679#define YYSTACKSIZE YYMAXDEPTH
680#else
681#define YYSTACKSIZE 500
4d3e9548 682#define YYMAXDEPTH 500
92d0a6a6
JR
683#endif
684#endif
4d3e9548
JL
685
686#define YYINITSTACKSIZE 500
687
688int yydebug;
689int yynerrs;
690int yyerrflag;
691int yychar;
692short *yyssp;
92d0a6a6 693YYSTYPE *yyvsp;
4d3e9548
JL
694YYSTYPE yyval;
695YYSTYPE yylval;
696
697/* variables for the parser stack */
698static short *yyss;
699static short *yysslim;
700static YYSTYPE *yyvs;
701static unsigned yystacksize;
702/* allocate initial stack or double stack size, up to YYMAXDEPTH */
703static int yygrowstack(void)
704{
705 int i;
706 unsigned newsize;
707 short *newss;
708 YYSTYPE *newvs;
709
710 if ((newsize = yystacksize) == 0)
711 newsize = YYINITSTACKSIZE;
712 else if (newsize >= YYMAXDEPTH)
713 return -1;
714 else if ((newsize *= 2) > YYMAXDEPTH)
715 newsize = YYMAXDEPTH;
716
717 i = yyssp - yyss;
718 newss = (yyss != 0)
719 ? (short *)realloc(yyss, newsize * sizeof(*newss))
720 : (short *)malloc(newsize * sizeof(*newss));
721 if (newss == 0)
722 return -1;
723
724 yyss = newss;
725 yyssp = newss + i;
726 newvs = (yyvs != 0)
727 ? (YYSTYPE *)realloc(yyvs, newsize * sizeof(*newvs))
728 : (YYSTYPE *)malloc(newsize * sizeof(*newvs));
729 if (newvs == 0)
730 return -1;
731
732 yyvs = newvs;
733 yyvsp = newvs + i;
734 yystacksize = newsize;
735 yysslim = yyss + newsize - 1;
736 return 0;
737}
738
739#define YYABORT goto yyabort
92d0a6a6
JR
740#define YYREJECT goto yyabort
741#define YYACCEPT goto yyaccept
4d3e9548
JL
742#define YYERROR goto yyerrlab
743
92d0a6a6 744int
4d3e9548 745YYPARSE_DECL()
92d0a6a6 746{
4d3e9548 747 int yym, yyn, yystate;
92d0a6a6 748#if YYDEBUG
4d3e9548 749 const char *yys;
92d0a6a6 750
4d3e9548 751 if ((yys = getenv("YYDEBUG")) != 0)
92d0a6a6
JR
752 {
753 yyn = *yys;
754 if (yyn >= '0' && yyn <= '9')
755 yydebug = yyn - '0';
756 }
757#endif
758
759 yynerrs = 0;
760 yyerrflag = 0;
4d3e9548
JL
761 yychar = YYEMPTY;
762 yystate = 0;
92d0a6a6 763
4d3e9548 764 if (yyss == NULL && yygrowstack()) goto yyoverflow;
92d0a6a6
JR
765 yyssp = yyss;
766 yyvsp = yyvs;
4d3e9548
JL
767 yystate = 0;
768 *yyssp = 0;
92d0a6a6
JR
769
770yyloop:
771 if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
772 if (yychar < 0)
773 {
774 if ((yychar = yylex()) < 0) yychar = 0;
775#if YYDEBUG
776 if (yydebug)
777 {
778 yys = 0;
779 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
780 if (!yys) yys = "illegal-symbol";
781 printf("%sdebug: state %d, reading %d (%s)\n",
782 YYPREFIX, yystate, yychar, yys);
783 }
784#endif
785 }
786 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
787 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
788 {
789#if YYDEBUG
790 if (yydebug)
791 printf("%sdebug: state %d, shifting to state %d\n",
792 YYPREFIX, yystate, yytable[yyn]);
793#endif
4d3e9548 794 if (yyssp >= yysslim && yygrowstack())
92d0a6a6
JR
795 {
796 goto yyoverflow;
797 }
4d3e9548
JL
798 yystate = yytable[yyn];
799 *++yyssp = yytable[yyn];
92d0a6a6 800 *++yyvsp = yylval;
4d3e9548 801 yychar = YYEMPTY;
92d0a6a6
JR
802 if (yyerrflag > 0) --yyerrflag;
803 goto yyloop;
804 }
805 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
806 yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
807 {
808 yyn = yytable[yyn];
809 goto yyreduce;
810 }
811 if (yyerrflag) goto yyinrecovery;
4d3e9548 812
92d0a6a6 813 yyerror("syntax error");
4d3e9548 814
92d0a6a6 815 goto yyerrlab;
4d3e9548 816
92d0a6a6
JR
817yyerrlab:
818 ++yynerrs;
4d3e9548 819
92d0a6a6
JR
820yyinrecovery:
821 if (yyerrflag < 3)
822 {
823 yyerrflag = 3;
824 for (;;)
825 {
826 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
827 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
828 {
829#if YYDEBUG
830 if (yydebug)
831 printf("%sdebug: state %d, error recovery shifting\
832 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
833#endif
4d3e9548 834 if (yyssp >= yysslim && yygrowstack())
92d0a6a6
JR
835 {
836 goto yyoverflow;
837 }
4d3e9548
JL
838 yystate = yytable[yyn];
839 *++yyssp = yytable[yyn];
92d0a6a6
JR
840 *++yyvsp = yylval;
841 goto yyloop;
842 }
843 else
844 {
845#if YYDEBUG
846 if (yydebug)
847 printf("%sdebug: error recovery discarding state %d\n",
848 YYPREFIX, *yyssp);
849#endif
850 if (yyssp <= yyss) goto yyabort;
851 --yyssp;
852 --yyvsp;
853 }
854 }
855 }
856 else
857 {
858 if (yychar == 0) goto yyabort;
859#if YYDEBUG
860 if (yydebug)
861 {
862 yys = 0;
863 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
864 if (!yys) yys = "illegal-symbol";
865 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
866 YYPREFIX, yystate, yychar, yys);
867 }
868#endif
4d3e9548 869 yychar = YYEMPTY;
92d0a6a6
JR
870 goto yyloop;
871 }
4d3e9548 872
92d0a6a6
JR
873yyreduce:
874#if YYDEBUG
875 if (yydebug)
876 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
877 YYPREFIX, yystate, yyn, yyrule[yyn]);
878#endif
879 yym = yylen[yyn];
4d3e9548
JL
880 if (yym)
881 yyval = yyvsp[1-yym];
882 else
883 memset(&yyval, 0, sizeof yyval);
92d0a6a6
JR
884 switch (yyn)
885 {
886case 2:
887#line 125 "eqn.y"
4d3e9548 888 { yyvsp[0].b->top_level(); non_empty_flag = 1; }
92d0a6a6
JR
889break;
890case 3:
891#line 130 "eqn.y"
4d3e9548 892 { yyval.b = yyvsp[0].b; }
92d0a6a6
JR
893break;
894case 4:
895#line 132 "eqn.y"
4d3e9548 896 {
92d0a6a6
JR
897 list_box *lb = yyvsp[-1].b->to_list_box();
898 if (!lb)
899 lb = new list_box(yyvsp[-1].b);
900 lb->append(yyvsp[0].b);
901 yyval.b = lb;
902 }
903break;
904case 5:
905#line 143 "eqn.y"
4d3e9548 906 { yyval.b = yyvsp[0].b; }
92d0a6a6
JR
907break;
908case 6:
909#line 145 "eqn.y"
4d3e9548 910 { yyval.b = make_mark_box(yyvsp[0].b); }
92d0a6a6
JR
911break;
912case 7:
913#line 147 "eqn.y"
4d3e9548 914 { yyval.b = make_lineup_box(yyvsp[0].b); }
92d0a6a6
JR
915break;
916case 8:
917#line 152 "eqn.y"
4d3e9548 918 { yyval.b = yyvsp[0].b; }
92d0a6a6
JR
919break;
920case 9:
921#line 154 "eqn.y"
4d3e9548 922 { yyval.b = make_limit_box(yyvsp[-2].b, 0, yyvsp[0].b); }
92d0a6a6
JR
923break;
924case 10:
925#line 156 "eqn.y"
4d3e9548 926 { yyval.b = make_limit_box(yyvsp[-2].b, yyvsp[0].b, 0); }
92d0a6a6
JR
927break;
928case 11:
929#line 158 "eqn.y"
4d3e9548 930 { yyval.b = make_limit_box(yyvsp[-4].b, yyvsp[-2].b, yyvsp[0].b); }
92d0a6a6
JR
931break;
932case 12:
933#line 160 "eqn.y"
4d3e9548 934 { yyval.b = make_limit_box(yyvsp[-4].b, make_limit_box(yyvsp[-2].b, yyvsp[0].b, 0), 0); }
92d0a6a6
JR
935break;
936case 13:
937#line 165 "eqn.y"
4d3e9548 938 { yyval.b = yyvsp[0].b; }
92d0a6a6
JR
939break;
940case 14:
941#line 167 "eqn.y"
4d3e9548 942 { yyval.b = make_sqrt_box(yyvsp[0].b); }
92d0a6a6
JR
943break;
944case 15:
945#line 169 "eqn.y"
4d3e9548 946 { yyval.b = make_over_box(yyvsp[-2].b, yyvsp[0].b); }
92d0a6a6
JR
947break;
948case 16:
949#line 171 "eqn.y"
4d3e9548 950 { yyval.b = make_small_over_box(yyvsp[-2].b, yyvsp[0].b); }
92d0a6a6
JR
951break;
952case 17:
953#line 176 "eqn.y"
4d3e9548 954 { yyval.b = yyvsp[0].b; }
92d0a6a6
JR
955break;
956case 18:
957#line 178 "eqn.y"
4d3e9548 958 { yyval.b = make_script_box(yyvsp[-2].b, 0, yyvsp[0].b); }
92d0a6a6
JR
959break;
960case 19:
961#line 183 "eqn.y"
4d3e9548 962 { yyval.b = yyvsp[0].b; }
92d0a6a6
JR
963break;
964case 20:
965#line 185 "eqn.y"
4d3e9548 966 { yyval.b = make_script_box(yyvsp[-2].b, yyvsp[0].b, 0); }
92d0a6a6
JR
967break;
968case 21:
969#line 187 "eqn.y"
4d3e9548 970 { yyval.b = make_script_box(yyvsp[-4].b, yyvsp[-2].b, yyvsp[0].b); }
92d0a6a6
JR
971break;
972case 22:
973#line 192 "eqn.y"
4d3e9548 974 { yyval.b = split_text(yyvsp[0].str); }
92d0a6a6
JR
975break;
976case 23:
977#line 194 "eqn.y"
4d3e9548 978 { yyval.b = new quoted_text_box(yyvsp[0].str); }
92d0a6a6
JR
979break;
980case 24:
981#line 196 "eqn.y"
4d3e9548 982 { yyval.b = split_text(yyvsp[0].str); }
92d0a6a6
JR
983break;
984case 25:
985#line 198 "eqn.y"
4d3e9548 986 { yyval.b = new quoted_text_box(yyvsp[0].str); }
92d0a6a6
JR
987break;
988case 26:
989#line 200 "eqn.y"
4d3e9548 990 { yyval.b = new half_space_box; }
92d0a6a6
JR
991break;
992case 27:
993#line 202 "eqn.y"
4d3e9548 994 { yyval.b = new space_box; }
92d0a6a6
JR
995break;
996case 28:
997#line 204 "eqn.y"
4d3e9548 998 { yyval.b = new tab_box; }
92d0a6a6
JR
999break;
1000case 29:
1001#line 206 "eqn.y"
4d3e9548 1002 { yyval.b = yyvsp[-1].b; }
92d0a6a6
JR
1003break;
1004case 30:
1005#line 208 "eqn.y"
4d3e9548 1006 { yyvsp[0].pb->set_alignment(CENTER_ALIGN); yyval.b = yyvsp[0].pb; }
92d0a6a6
JR
1007break;
1008case 31:
1009#line 210 "eqn.y"
4d3e9548 1010 { yyvsp[0].pb->set_alignment(LEFT_ALIGN); yyval.b = yyvsp[0].pb; }
92d0a6a6
JR
1011break;
1012case 32:
1013#line 212 "eqn.y"
4d3e9548 1014 { yyvsp[0].pb->set_alignment(RIGHT_ALIGN); yyval.b = yyvsp[0].pb; }
92d0a6a6
JR
1015break;
1016case 33:
1017#line 214 "eqn.y"
4d3e9548 1018 { yyvsp[0].pb->set_alignment(CENTER_ALIGN); yyval.b = yyvsp[0].pb; }
92d0a6a6
JR
1019break;
1020case 34:
1021#line 216 "eqn.y"
4d3e9548 1022 { yyval.b = yyvsp[-1].mb; }
92d0a6a6
JR
1023break;
1024case 35:
1025#line 218 "eqn.y"
4d3e9548 1026 { yyval.b = make_delim_box(yyvsp[-3].str, yyvsp[-2].b, yyvsp[0].str); }
92d0a6a6
JR
1027break;
1028case 36:
1029#line 220 "eqn.y"
4d3e9548 1030 { yyval.b = make_delim_box(yyvsp[-1].str, yyvsp[0].b, 0); }
92d0a6a6
JR
1031break;
1032case 37:
1033#line 222 "eqn.y"
4d3e9548 1034 { yyval.b = make_overline_box(yyvsp[-1].b); }
92d0a6a6
JR
1035break;
1036case 38:
1037#line 224 "eqn.y"
4d3e9548 1038 { yyval.b = make_underline_box(yyvsp[-1].b); }
92d0a6a6
JR
1039break;
1040case 39:
1041#line 226 "eqn.y"
4d3e9548 1042 { yyval.b = make_prime_box(yyvsp[-1].b); }
92d0a6a6
JR
1043break;
1044case 40:
1045#line 228 "eqn.y"
4d3e9548 1046 { yyval.b = make_accent_box(yyvsp[-2].b, yyvsp[0].b); }
92d0a6a6
JR
1047break;
1048case 41:
1049#line 230 "eqn.y"
4d3e9548 1050 { yyval.b = make_uaccent_box(yyvsp[-2].b, yyvsp[0].b); }
92d0a6a6
JR
1051break;
1052case 42:
1053#line 232 "eqn.y"
4d3e9548 1054 { yyval.b = new font_box(strsave(get_grfont()), yyvsp[0].b); }
92d0a6a6
JR
1055break;
1056case 43:
1057#line 234 "eqn.y"
4d3e9548 1058 { yyval.b = new font_box(strsave(get_gbfont()), yyvsp[0].b); }
92d0a6a6
JR
1059break;
1060case 44:
1061#line 236 "eqn.y"
4d3e9548 1062 { yyval.b = new font_box(strsave(get_gfont()), yyvsp[0].b); }
92d0a6a6
JR
1063break;
1064case 45:
1065#line 238 "eqn.y"
4d3e9548 1066 { yyval.b = new fat_box(yyvsp[0].b); }
92d0a6a6
JR
1067break;
1068case 46:
1069#line 240 "eqn.y"
4d3e9548 1070 { yyval.b = new font_box(yyvsp[-1].str, yyvsp[0].b); }
92d0a6a6
JR
1071break;
1072case 47:
1073#line 242 "eqn.y"
4d3e9548 1074 { yyval.b = new size_box(yyvsp[-1].str, yyvsp[0].b); }
92d0a6a6
JR
1075break;
1076case 48:
1077#line 244 "eqn.y"
4d3e9548 1078 { yyval.b = new hmotion_box(yyvsp[-1].n, yyvsp[0].b); }
92d0a6a6
JR
1079break;
1080case 49:
1081#line 246 "eqn.y"
4d3e9548 1082 { yyval.b = new hmotion_box(-yyvsp[-1].n, yyvsp[0].b); }
92d0a6a6
JR
1083break;
1084case 50:
1085#line 248 "eqn.y"
4d3e9548 1086 { yyval.b = new vmotion_box(yyvsp[-1].n, yyvsp[0].b); }
92d0a6a6
JR
1087break;
1088case 51:
1089#line 250 "eqn.y"
4d3e9548 1090 { yyval.b = new vmotion_box(-yyvsp[-1].n, yyvsp[0].b); }
92d0a6a6
JR
1091break;
1092case 52:
1093#line 252 "eqn.y"
4d3e9548 1094 { yyvsp[0].b->set_spacing_type(yyvsp[-1].str); yyval.b = yyvsp[0].b; }
92d0a6a6
JR
1095break;
1096case 53:
1097#line 254 "eqn.y"
4d3e9548 1098 { yyval.b = new vcenter_box(yyvsp[0].b); }
92d0a6a6
JR
1099break;
1100case 54:
1101#line 256 "eqn.y"
4d3e9548 1102 { yyval.b = make_special_box(yyvsp[-1].str, yyvsp[0].b); }
92d0a6a6
JR
1103break;
1104case 55:
1105#line 261 "eqn.y"
4d3e9548 1106 {
92d0a6a6
JR
1107 int n;
1108 if (sscanf(yyvsp[0].str, "%d", &n) == 1)
1109 yyval.n = n;
1110 a_delete yyvsp[0].str;
1111 }
1112break;
1113case 56:
1114#line 271 "eqn.y"
4d3e9548 1115 { yyval.pb = new pile_box(yyvsp[0].b); }
92d0a6a6
JR
1116break;
1117case 57:
1118#line 273 "eqn.y"
4d3e9548 1119 { yyvsp[-2].pb->append(yyvsp[0].b); yyval.pb = yyvsp[-2].pb; }
92d0a6a6
JR
1120break;
1121case 58:
1122#line 278 "eqn.y"
4d3e9548 1123 { yyval.pb = yyvsp[-1].pb; }
92d0a6a6
JR
1124break;
1125case 59:
1126#line 280 "eqn.y"
4d3e9548 1127 { yyvsp[-1].pb->set_space(yyvsp[-3].n); yyval.pb = yyvsp[-1].pb; }
92d0a6a6
JR
1128break;
1129case 60:
1130#line 285 "eqn.y"
4d3e9548 1131 { yyval.mb = new matrix_box(yyvsp[0].col); }
92d0a6a6
JR
1132break;
1133case 61:
1134#line 287 "eqn.y"
4d3e9548 1135 { yyvsp[-1].mb->append(yyvsp[0].col); yyval.mb = yyvsp[-1].mb; }
92d0a6a6
JR
1136break;
1137case 62:
1138#line 292 "eqn.y"
4d3e9548 1139 { yyval.col = new column(yyvsp[0].b); }
92d0a6a6
JR
1140break;
1141case 63:
1142#line 294 "eqn.y"
4d3e9548 1143 { yyvsp[-2].col->append(yyvsp[0].b); yyval.col = yyvsp[-2].col; }
92d0a6a6
JR
1144break;
1145case 64:
1146#line 299 "eqn.y"
4d3e9548 1147 { yyval.col = yyvsp[-1].col; }
92d0a6a6
JR
1148break;
1149case 65:
1150#line 301 "eqn.y"
4d3e9548 1151 { yyvsp[-1].col->set_space(yyvsp[-3].n); yyval.col = yyvsp[-1].col; }
92d0a6a6
JR
1152break;
1153case 66:
1154#line 306 "eqn.y"
4d3e9548 1155 { yyvsp[0].col->set_alignment(CENTER_ALIGN); yyval.col = yyvsp[0].col; }
92d0a6a6
JR
1156break;
1157case 67:
1158#line 308 "eqn.y"
4d3e9548 1159 { yyvsp[0].col->set_alignment(LEFT_ALIGN); yyval.col = yyvsp[0].col; }
92d0a6a6
JR
1160break;
1161case 68:
1162#line 310 "eqn.y"
4d3e9548 1163 { yyvsp[0].col->set_alignment(RIGHT_ALIGN); yyval.col = yyvsp[0].col; }
92d0a6a6
JR
1164break;
1165case 69:
1166#line 312 "eqn.y"
4d3e9548 1167 { yyvsp[0].col->set_alignment(CENTER_ALIGN); yyval.col = yyvsp[0].col; }
92d0a6a6
JR
1168break;
1169case 70:
1170#line 316 "eqn.y"
4d3e9548 1171 { yyval.str = yyvsp[0].str; }
92d0a6a6
JR
1172break;
1173case 71:
1174#line 318 "eqn.y"
4d3e9548 1175 { yyval.str = yyvsp[0].str; }
92d0a6a6
JR
1176break;
1177case 72:
1178#line 323 "eqn.y"
4d3e9548 1179 { yyval.str = yyvsp[0].str; }
92d0a6a6
JR
1180break;
1181case 73:
1182#line 325 "eqn.y"
4d3e9548 1183 { yyval.str = strsave("{"); }
92d0a6a6
JR
1184break;
1185case 74:
1186#line 327 "eqn.y"
4d3e9548 1187 { yyval.str = strsave("}"); }
92d0a6a6 1188break;
4d3e9548 1189#line 1189 "eqn.cpp"
92d0a6a6
JR
1190 }
1191 yyssp -= yym;
1192 yystate = *yyssp;
1193 yyvsp -= yym;
1194 yym = yylhs[yyn];
1195 if (yystate == 0 && yym == 0)
1196 {
1197#if YYDEBUG
1198 if (yydebug)
1199 printf("%sdebug: after reduction, shifting from state 0 to\
1200 state %d\n", YYPREFIX, YYFINAL);
1201#endif
1202 yystate = YYFINAL;
1203 *++yyssp = YYFINAL;
1204 *++yyvsp = yyval;
1205 if (yychar < 0)
1206 {
1207 if ((yychar = yylex()) < 0) yychar = 0;
1208#if YYDEBUG
1209 if (yydebug)
1210 {
1211 yys = 0;
1212 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1213 if (!yys) yys = "illegal-symbol";
1214 printf("%sdebug: state %d, reading %d (%s)\n",
1215 YYPREFIX, YYFINAL, yychar, yys);
1216 }
1217#endif
1218 }
1219 if (yychar == 0) goto yyaccept;
1220 goto yyloop;
1221 }
1222 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
1223 yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
1224 yystate = yytable[yyn];
1225 else
1226 yystate = yydgoto[yym];
1227#if YYDEBUG
1228 if (yydebug)
1229 printf("%sdebug: after reduction, shifting from state %d \
1230to state %d\n", YYPREFIX, *yyssp, yystate);
1231#endif
4d3e9548 1232 if (yyssp >= yysslim && yygrowstack())
92d0a6a6
JR
1233 {
1234 goto yyoverflow;
1235 }
4d3e9548 1236 *++yyssp = (short) yystate;
92d0a6a6
JR
1237 *++yyvsp = yyval;
1238 goto yyloop;
4d3e9548 1239
92d0a6a6
JR
1240yyoverflow:
1241 yyerror("yacc stack overflow");
4d3e9548 1242
92d0a6a6
JR
1243yyabort:
1244 return (1);
4d3e9548 1245
92d0a6a6
JR
1246yyaccept:
1247 return (0);
1248}