Line data Source code
1 : /* A Bison parser, made by GNU Bison 3.7.5. */
2 :
3 : /* Bison implementation for Yacc-like parsers in C
4 :
5 : Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6 : Inc.
7 :
8 : This program is free software: you can redistribute it and/or modify
9 : it under the terms of the GNU General Public License as published by
10 : the Free Software Foundation, either version 3 of the License, or
11 : (at your option) any later version.
12 :
13 : This program is distributed in the hope that it will be useful,
14 : but WITHOUT ANY WARRANTY; without even the implied warranty of
15 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 : GNU General Public License for more details.
17 :
18 : You should have received a copy of the GNU General Public License
19 : along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 :
21 : /* As a special exception, you may create a larger work that contains
22 : part or all of the Bison parser skeleton and distribute that work
23 : under terms of your choice, so long as that work isn't itself a
24 : parser generator using the skeleton or a modified version thereof
25 : as a parser skeleton. Alternatively, if you modify or redistribute
26 : the parser skeleton itself, you may (at your option) remove this
27 : special exception, which will cause the skeleton and the resulting
28 : Bison output files to be licensed under the GNU General Public
29 : License without this special exception.
30 :
31 : This special exception was added by the Free Software Foundation in
32 : version 2.2 of Bison. */
33 :
34 : /* C LALR(1) parser skeleton written by Richard Stallman, by
35 : simplifying the original so-called "semantic" parser. */
36 :
37 : /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38 : especially those whose name start with YY_ or yy_. They are
39 : private implementation details that can be changed or removed. */
40 :
41 : /* All symbols defined below should begin with yy or YY, to avoid
42 : infringing on user name space. This should be done even for local
43 : variables, as they might otherwise be expanded by user macros.
44 : There are some unavoidable exceptions within include files to
45 : define necessary library symbols; they are noted "INFRINGES ON
46 : USER NAME SPACE" below. */
47 :
48 : /* Identify Bison output, and Bison version. */
49 : #define YYBISON 30705
50 :
51 : /* Bison version string. */
52 : #define YYBISON_VERSION "3.7.5"
53 :
54 : /* Skeleton name. */
55 : #define YYSKELETON_NAME "yacc.c"
56 :
57 : /* Pure parsers. */
58 : #define YYPURE 0
59 :
60 : /* Push parsers. */
61 : #define YYPUSH 0
62 :
63 : /* Pull parsers. */
64 : #define YYPULL 1
65 :
66 :
67 :
68 :
69 : /* First part of user prologue. */
70 : #line 18 "../src/preproc/eqn/eqn.ypp"
71 :
72 : #ifdef HAVE_CONFIG_H
73 : #include <config.h>
74 : #endif
75 :
76 : #include <stdio.h>
77 : #include <string.h>
78 : #include <stdlib.h>
79 :
80 : #include "lib.h"
81 :
82 : #include "box.h"
83 : extern int non_empty_flag;
84 : int yylex();
85 : void yyerror(const char *);
86 :
87 : #line 88 "src/preproc/eqn/eqn.cpp"
88 :
89 : # ifndef YY_CAST
90 : # ifdef __cplusplus
91 : # define YY_CAST(Type, Val) static_cast<Type> (Val)
92 : # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
93 : # else
94 : # define YY_CAST(Type, Val) ((Type) (Val))
95 : # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
96 : # endif
97 : # endif
98 : # ifndef YY_NULLPTR
99 : # if defined __cplusplus
100 : # if 201103L <= __cplusplus
101 : # define YY_NULLPTR nullptr
102 : # else
103 : # define YY_NULLPTR 0
104 : # endif
105 : # else
106 : # define YY_NULLPTR ((void*)0)
107 : # endif
108 : # endif
109 :
110 : /* Use api.header.include to #include this header
111 : instead of duplicating it here. */
112 : #ifndef YY_YY_SRC_PREPROC_EQN_EQN_HPP_INCLUDED
113 : # define YY_YY_SRC_PREPROC_EQN_EQN_HPP_INCLUDED
114 : /* Debug traces. */
115 : #ifndef YYDEBUG
116 : # define YYDEBUG 0
117 : #endif
118 : #if YYDEBUG
119 : extern int yydebug;
120 : #endif
121 :
122 : /* Token kinds. */
123 : #ifndef YYTOKENTYPE
124 : # define YYTOKENTYPE
125 : enum yytokentype
126 : {
127 : YYEMPTY = -2,
128 : YYEOF = 0, /* "end of file" */
129 : YYerror = 256, /* error */
130 : YYUNDEF = 257, /* "invalid token" */
131 : OVER = 258, /* OVER */
132 : SMALLOVER = 259, /* SMALLOVER */
133 : SQRT = 260, /* SQRT */
134 : SUB = 261, /* SUB */
135 : SUP = 262, /* SUP */
136 : LPILE = 263, /* LPILE */
137 : RPILE = 264, /* RPILE */
138 : CPILE = 265, /* CPILE */
139 : PILE = 266, /* PILE */
140 : LEFT = 267, /* LEFT */
141 : RIGHT = 268, /* RIGHT */
142 : TO = 269, /* TO */
143 : FROM = 270, /* FROM */
144 : SIZE = 271, /* SIZE */
145 : FONT = 272, /* FONT */
146 : ROMAN = 273, /* ROMAN */
147 : BOLD = 274, /* BOLD */
148 : ITALIC = 275, /* ITALIC */
149 : FAT = 276, /* FAT */
150 : ACCENT = 277, /* ACCENT */
151 : BAR = 278, /* BAR */
152 : UNDER = 279, /* UNDER */
153 : ABOVE = 280, /* ABOVE */
154 : TEXT = 281, /* TEXT */
155 : QUOTED_TEXT = 282, /* QUOTED_TEXT */
156 : FWD = 283, /* FWD */
157 : BACK = 284, /* BACK */
158 : DOWN = 285, /* DOWN */
159 : UP = 286, /* UP */
160 : MATRIX = 287, /* MATRIX */
161 : COL = 288, /* COL */
162 : LCOL = 289, /* LCOL */
163 : RCOL = 290, /* RCOL */
164 : CCOL = 291, /* CCOL */
165 : MARK = 292, /* MARK */
166 : LINEUP = 293, /* LINEUP */
167 : TYPE = 294, /* TYPE */
168 : VCENTER = 295, /* VCENTER */
169 : PRIME = 296, /* PRIME */
170 : SPLIT = 297, /* SPLIT */
171 : NOSPLIT = 298, /* NOSPLIT */
172 : UACCENT = 299, /* UACCENT */
173 : SPECIAL = 300, /* SPECIAL */
174 : SPACE = 301, /* SPACE */
175 : GFONT = 302, /* GFONT */
176 : GSIZE = 303, /* GSIZE */
177 : DEFINE = 304, /* DEFINE */
178 : NDEFINE = 305, /* NDEFINE */
179 : TDEFINE = 306, /* TDEFINE */
180 : SDEFINE = 307, /* SDEFINE */
181 : UNDEF = 308, /* UNDEF */
182 : IFDEF = 309, /* IFDEF */
183 : INCLUDE = 310, /* INCLUDE */
184 : DELIM = 311, /* DELIM */
185 : CHARTYPE = 312, /* CHARTYPE */
186 : SET = 313, /* SET */
187 : RESET = 314, /* RESET */
188 : GRFONT = 315, /* GRFONT */
189 : GBFONT = 316, /* GBFONT */
190 : GIFONT = 317 /* GIFONT */
191 : };
192 : typedef enum yytokentype yytoken_kind_t;
193 : #endif
194 : /* Token kinds. */
195 : #define YYEMPTY -2
196 : #define YYEOF 0
197 : #define YYerror 256
198 : #define YYUNDEF 257
199 : #define OVER 258
200 : #define SMALLOVER 259
201 : #define SQRT 260
202 : #define SUB 261
203 : #define SUP 262
204 : #define LPILE 263
205 : #define RPILE 264
206 : #define CPILE 265
207 : #define PILE 266
208 : #define LEFT 267
209 : #define RIGHT 268
210 : #define TO 269
211 : #define FROM 270
212 : #define SIZE 271
213 : #define FONT 272
214 : #define ROMAN 273
215 : #define BOLD 274
216 : #define ITALIC 275
217 : #define FAT 276
218 : #define ACCENT 277
219 : #define BAR 278
220 : #define UNDER 279
221 : #define ABOVE 280
222 : #define TEXT 281
223 : #define QUOTED_TEXT 282
224 : #define FWD 283
225 : #define BACK 284
226 : #define DOWN 285
227 : #define UP 286
228 : #define MATRIX 287
229 : #define COL 288
230 : #define LCOL 289
231 : #define RCOL 290
232 : #define CCOL 291
233 : #define MARK 292
234 : #define LINEUP 293
235 : #define TYPE 294
236 : #define VCENTER 295
237 : #define PRIME 296
238 : #define SPLIT 297
239 : #define NOSPLIT 298
240 : #define UACCENT 299
241 : #define SPECIAL 300
242 : #define SPACE 301
243 : #define GFONT 302
244 : #define GSIZE 303
245 : #define DEFINE 304
246 : #define NDEFINE 305
247 : #define TDEFINE 306
248 : #define SDEFINE 307
249 : #define UNDEF 308
250 : #define IFDEF 309
251 : #define INCLUDE 310
252 : #define DELIM 311
253 : #define CHARTYPE 312
254 : #define SET 313
255 : #define RESET 314
256 : #define GRFONT 315
257 : #define GBFONT 316
258 : #define GIFONT 317
259 :
260 : /* Value type. */
261 : #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
262 : union YYSTYPE
263 : {
264 : #line 35 "../src/preproc/eqn/eqn.ypp"
265 :
266 : char *str;
267 : box *b;
268 : pile_box *pb;
269 : matrix_box *mb;
270 : int n;
271 : column *col;
272 :
273 : #line 274 "src/preproc/eqn/eqn.cpp"
274 :
275 : };
276 : typedef union YYSTYPE YYSTYPE;
277 : # define YYSTYPE_IS_TRIVIAL 1
278 : # define YYSTYPE_IS_DECLARED 1
279 : #endif
280 :
281 :
282 : extern YYSTYPE yylval;
283 :
284 : int yyparse (void);
285 :
286 : #endif /* !YY_YY_SRC_PREPROC_EQN_EQN_HPP_INCLUDED */
287 : /* Symbol kind. */
288 : enum yysymbol_kind_t
289 : {
290 : YYSYMBOL_YYEMPTY = -2,
291 : YYSYMBOL_YYEOF = 0, /* "end of file" */
292 : YYSYMBOL_YYerror = 1, /* error */
293 : YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
294 : YYSYMBOL_OVER = 3, /* OVER */
295 : YYSYMBOL_SMALLOVER = 4, /* SMALLOVER */
296 : YYSYMBOL_SQRT = 5, /* SQRT */
297 : YYSYMBOL_SUB = 6, /* SUB */
298 : YYSYMBOL_SUP = 7, /* SUP */
299 : YYSYMBOL_LPILE = 8, /* LPILE */
300 : YYSYMBOL_RPILE = 9, /* RPILE */
301 : YYSYMBOL_CPILE = 10, /* CPILE */
302 : YYSYMBOL_PILE = 11, /* PILE */
303 : YYSYMBOL_LEFT = 12, /* LEFT */
304 : YYSYMBOL_RIGHT = 13, /* RIGHT */
305 : YYSYMBOL_TO = 14, /* TO */
306 : YYSYMBOL_FROM = 15, /* FROM */
307 : YYSYMBOL_SIZE = 16, /* SIZE */
308 : YYSYMBOL_FONT = 17, /* FONT */
309 : YYSYMBOL_ROMAN = 18, /* ROMAN */
310 : YYSYMBOL_BOLD = 19, /* BOLD */
311 : YYSYMBOL_ITALIC = 20, /* ITALIC */
312 : YYSYMBOL_FAT = 21, /* FAT */
313 : YYSYMBOL_ACCENT = 22, /* ACCENT */
314 : YYSYMBOL_BAR = 23, /* BAR */
315 : YYSYMBOL_UNDER = 24, /* UNDER */
316 : YYSYMBOL_ABOVE = 25, /* ABOVE */
317 : YYSYMBOL_TEXT = 26, /* TEXT */
318 : YYSYMBOL_QUOTED_TEXT = 27, /* QUOTED_TEXT */
319 : YYSYMBOL_FWD = 28, /* FWD */
320 : YYSYMBOL_BACK = 29, /* BACK */
321 : YYSYMBOL_DOWN = 30, /* DOWN */
322 : YYSYMBOL_UP = 31, /* UP */
323 : YYSYMBOL_MATRIX = 32, /* MATRIX */
324 : YYSYMBOL_COL = 33, /* COL */
325 : YYSYMBOL_LCOL = 34, /* LCOL */
326 : YYSYMBOL_RCOL = 35, /* RCOL */
327 : YYSYMBOL_CCOL = 36, /* CCOL */
328 : YYSYMBOL_MARK = 37, /* MARK */
329 : YYSYMBOL_LINEUP = 38, /* LINEUP */
330 : YYSYMBOL_TYPE = 39, /* TYPE */
331 : YYSYMBOL_VCENTER = 40, /* VCENTER */
332 : YYSYMBOL_PRIME = 41, /* PRIME */
333 : YYSYMBOL_SPLIT = 42, /* SPLIT */
334 : YYSYMBOL_NOSPLIT = 43, /* NOSPLIT */
335 : YYSYMBOL_UACCENT = 44, /* UACCENT */
336 : YYSYMBOL_SPECIAL = 45, /* SPECIAL */
337 : YYSYMBOL_SPACE = 46, /* SPACE */
338 : YYSYMBOL_GFONT = 47, /* GFONT */
339 : YYSYMBOL_GSIZE = 48, /* GSIZE */
340 : YYSYMBOL_DEFINE = 49, /* DEFINE */
341 : YYSYMBOL_NDEFINE = 50, /* NDEFINE */
342 : YYSYMBOL_TDEFINE = 51, /* TDEFINE */
343 : YYSYMBOL_SDEFINE = 52, /* SDEFINE */
344 : YYSYMBOL_UNDEF = 53, /* UNDEF */
345 : YYSYMBOL_IFDEF = 54, /* IFDEF */
346 : YYSYMBOL_INCLUDE = 55, /* INCLUDE */
347 : YYSYMBOL_DELIM = 56, /* DELIM */
348 : YYSYMBOL_CHARTYPE = 57, /* CHARTYPE */
349 : YYSYMBOL_SET = 58, /* SET */
350 : YYSYMBOL_RESET = 59, /* RESET */
351 : YYSYMBOL_GRFONT = 60, /* GRFONT */
352 : YYSYMBOL_GBFONT = 61, /* GBFONT */
353 : YYSYMBOL_GIFONT = 62, /* GIFONT */
354 : YYSYMBOL_63_ = 63, /* '^' */
355 : YYSYMBOL_64_ = 64, /* '~' */
356 : YYSYMBOL_65_t_ = 65, /* '\t' */
357 : YYSYMBOL_66_ = 66, /* '{' */
358 : YYSYMBOL_67_ = 67, /* '}' */
359 : YYSYMBOL_YYACCEPT = 68, /* $accept */
360 : YYSYMBOL_top = 69, /* top */
361 : YYSYMBOL_equation = 70, /* equation */
362 : YYSYMBOL_mark = 71, /* mark */
363 : YYSYMBOL_from_to = 72, /* from_to */
364 : YYSYMBOL_sqrt_over = 73, /* sqrt_over */
365 : YYSYMBOL_script = 74, /* script */
366 : YYSYMBOL_nonsup = 75, /* nonsup */
367 : YYSYMBOL_simple = 76, /* simple */
368 : YYSYMBOL_number = 77, /* number */
369 : YYSYMBOL_pile_element_list = 78, /* pile_element_list */
370 : YYSYMBOL_pile_arg = 79, /* pile_arg */
371 : YYSYMBOL_column_list = 80, /* column_list */
372 : YYSYMBOL_column_element_list = 81, /* column_element_list */
373 : YYSYMBOL_column_arg = 82, /* column_arg */
374 : YYSYMBOL_column = 83, /* column */
375 : YYSYMBOL_text = 84, /* text */
376 : YYSYMBOL_delim = 85 /* delim */
377 : };
378 : typedef enum yysymbol_kind_t yysymbol_kind_t;
379 :
380 :
381 :
382 :
383 : #ifdef short
384 : # undef short
385 : #endif
386 :
387 : /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
388 : <limits.h> and (if available) <stdint.h> are included
389 : so that the code can choose integer types of a good width. */
390 :
391 : #ifndef __PTRDIFF_MAX__
392 : # include <limits.h> /* INFRINGES ON USER NAME SPACE */
393 : # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
394 : # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
395 : # define YY_STDINT_H
396 : # endif
397 : #endif
398 :
399 : /* Narrow types that promote to a signed type and that can represent a
400 : signed or unsigned integer of at least N bits. In tables they can
401 : save space and decrease cache pressure. Promoting to a signed type
402 : helps avoid bugs in integer arithmetic. */
403 :
404 : #ifdef __INT_LEAST8_MAX__
405 : typedef __INT_LEAST8_TYPE__ yytype_int8;
406 : #elif defined YY_STDINT_H
407 : typedef int_least8_t yytype_int8;
408 : #else
409 : typedef signed char yytype_int8;
410 : #endif
411 :
412 : #ifdef __INT_LEAST16_MAX__
413 : typedef __INT_LEAST16_TYPE__ yytype_int16;
414 : #elif defined YY_STDINT_H
415 : typedef int_least16_t yytype_int16;
416 : #else
417 : typedef short yytype_int16;
418 : #endif
419 :
420 : /* Work around bug in HP-UX 11.23, which defines these macros
421 : incorrectly for preprocessor constants. This workaround can likely
422 : be removed in 2023, as HPE has promised support for HP-UX 11.23
423 : (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
424 : <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
425 : #ifdef __hpux
426 : # undef UINT_LEAST8_MAX
427 : # undef UINT_LEAST16_MAX
428 : # define UINT_LEAST8_MAX 255
429 : # define UINT_LEAST16_MAX 65535
430 : #endif
431 :
432 : #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
433 : typedef __UINT_LEAST8_TYPE__ yytype_uint8;
434 : #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
435 : && UINT_LEAST8_MAX <= INT_MAX)
436 : typedef uint_least8_t yytype_uint8;
437 : #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
438 : typedef unsigned char yytype_uint8;
439 : #else
440 : typedef short yytype_uint8;
441 : #endif
442 :
443 : #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
444 : typedef __UINT_LEAST16_TYPE__ yytype_uint16;
445 : #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
446 : && UINT_LEAST16_MAX <= INT_MAX)
447 : typedef uint_least16_t yytype_uint16;
448 : #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
449 : typedef unsigned short yytype_uint16;
450 : #else
451 : typedef int yytype_uint16;
452 : #endif
453 :
454 : #ifndef YYPTRDIFF_T
455 : # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
456 : # define YYPTRDIFF_T __PTRDIFF_TYPE__
457 : # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
458 : # elif defined PTRDIFF_MAX
459 : # ifndef ptrdiff_t
460 : # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
461 : # endif
462 : # define YYPTRDIFF_T ptrdiff_t
463 : # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
464 : # else
465 : # define YYPTRDIFF_T long
466 : # define YYPTRDIFF_MAXIMUM LONG_MAX
467 : # endif
468 : #endif
469 :
470 : #ifndef YYSIZE_T
471 : # ifdef __SIZE_TYPE__
472 : # define YYSIZE_T __SIZE_TYPE__
473 : # elif defined size_t
474 : # define YYSIZE_T size_t
475 : # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
476 : # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
477 : # define YYSIZE_T size_t
478 : # else
479 : # define YYSIZE_T unsigned
480 : # endif
481 : #endif
482 :
483 : #define YYSIZE_MAXIMUM \
484 : YY_CAST (YYPTRDIFF_T, \
485 : (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
486 : ? YYPTRDIFF_MAXIMUM \
487 : : YY_CAST (YYSIZE_T, -1)))
488 :
489 : #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
490 :
491 :
492 : /* Stored state numbers (used for stacks). */
493 : typedef yytype_uint8 yy_state_t;
494 :
495 : /* State numbers in computations. */
496 : typedef int yy_state_fast_t;
497 :
498 : #ifndef YY_
499 : # if defined YYENABLE_NLS && YYENABLE_NLS
500 : # if ENABLE_NLS
501 : # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
502 : # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
503 : # endif
504 : # endif
505 : # ifndef YY_
506 : # define YY_(Msgid) Msgid
507 : # endif
508 : #endif
509 :
510 :
511 : #ifndef YY_ATTRIBUTE_PURE
512 : # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
513 : # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
514 : # else
515 : # define YY_ATTRIBUTE_PURE
516 : # endif
517 : #endif
518 :
519 : #ifndef YY_ATTRIBUTE_UNUSED
520 : # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
521 : # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
522 : # else
523 : # define YY_ATTRIBUTE_UNUSED
524 : # endif
525 : #endif
526 :
527 : /* Suppress unused-variable warnings by "using" E. */
528 : #if ! defined lint || defined __GNUC__
529 : # define YY_USE(E) ((void) (E))
530 : #else
531 : # define YY_USE(E) /* empty */
532 : #endif
533 :
534 : #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
535 : /* Suppress an incorrect diagnostic about yylval being uninitialized. */
536 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
537 : _Pragma ("GCC diagnostic push") \
538 : _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
539 : _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
540 : # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
541 : _Pragma ("GCC diagnostic pop")
542 : #else
543 : # define YY_INITIAL_VALUE(Value) Value
544 : #endif
545 : #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
546 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
547 : # define YY_IGNORE_MAYBE_UNINITIALIZED_END
548 : #endif
549 : #ifndef YY_INITIAL_VALUE
550 : # define YY_INITIAL_VALUE(Value) /* Nothing. */
551 : #endif
552 :
553 : #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
554 : # define YY_IGNORE_USELESS_CAST_BEGIN \
555 : _Pragma ("GCC diagnostic push") \
556 : _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
557 : # define YY_IGNORE_USELESS_CAST_END \
558 : _Pragma ("GCC diagnostic pop")
559 : #endif
560 : #ifndef YY_IGNORE_USELESS_CAST_BEGIN
561 : # define YY_IGNORE_USELESS_CAST_BEGIN
562 : # define YY_IGNORE_USELESS_CAST_END
563 : #endif
564 :
565 :
566 : #define YY_ASSERT(E) ((void) (0 && (E)))
567 :
568 : #if !defined yyoverflow
569 :
570 : /* The parser invokes alloca or malloc; define the necessary symbols. */
571 :
572 : # ifdef YYSTACK_USE_ALLOCA
573 : # if YYSTACK_USE_ALLOCA
574 : # ifdef __GNUC__
575 : # define YYSTACK_ALLOC __builtin_alloca
576 : # elif defined __BUILTIN_VA_ARG_INCR
577 : # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
578 : # elif defined _AIX
579 : # define YYSTACK_ALLOC __alloca
580 : # elif defined _MSC_VER
581 : # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
582 : # define alloca _alloca
583 : # else
584 : # define YYSTACK_ALLOC alloca
585 : # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
586 : # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
587 : /* Use EXIT_SUCCESS as a witness for stdlib.h. */
588 : # ifndef EXIT_SUCCESS
589 : # define EXIT_SUCCESS 0
590 : # endif
591 : # endif
592 : # endif
593 : # endif
594 : # endif
595 :
596 : # ifdef YYSTACK_ALLOC
597 : /* Pacify GCC's 'empty if-body' warning. */
598 : # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
599 : # ifndef YYSTACK_ALLOC_MAXIMUM
600 : /* The OS might guarantee only one guard page at the bottom of the stack,
601 : and a page size can be as small as 4096 bytes. So we cannot safely
602 : invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
603 : to allow for a few compiler-allocated temporary stack slots. */
604 : # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
605 : # endif
606 : # else
607 : # define YYSTACK_ALLOC YYMALLOC
608 : # define YYSTACK_FREE YYFREE
609 : # ifndef YYSTACK_ALLOC_MAXIMUM
610 : # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
611 : # endif
612 : # if (defined __cplusplus && ! defined EXIT_SUCCESS \
613 : && ! ((defined YYMALLOC || defined malloc) \
614 : && (defined YYFREE || defined free)))
615 : # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
616 : # ifndef EXIT_SUCCESS
617 : # define EXIT_SUCCESS 0
618 : # endif
619 : # endif
620 : # ifndef YYMALLOC
621 : # define YYMALLOC malloc
622 : # if ! defined malloc && ! defined EXIT_SUCCESS
623 : void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
624 : # endif
625 : # endif
626 : # ifndef YYFREE
627 : # define YYFREE free
628 : # if ! defined free && ! defined EXIT_SUCCESS
629 : void free (void *); /* INFRINGES ON USER NAME SPACE */
630 : # endif
631 : # endif
632 : # endif
633 : #endif /* !defined yyoverflow */
634 :
635 : #if (! defined yyoverflow \
636 : && (! defined __cplusplus \
637 : || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
638 :
639 : /* A type that is properly aligned for any stack member. */
640 : union yyalloc
641 : {
642 : yy_state_t yyss_alloc;
643 : YYSTYPE yyvs_alloc;
644 : };
645 :
646 : /* The size of the maximum gap between one aligned stack and the next. */
647 : # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
648 :
649 : /* The size of an array large to enough to hold all stacks, each with
650 : N elements. */
651 : # define YYSTACK_BYTES(N) \
652 : ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
653 : + YYSTACK_GAP_MAXIMUM)
654 :
655 : # define YYCOPY_NEEDED 1
656 :
657 : /* Relocate STACK from its old location to the new one. The
658 : local variables YYSIZE and YYSTACKSIZE give the old and new number of
659 : elements in the stack, and YYPTR gives the new location of the
660 : stack. Advance YYPTR to a properly aligned location for the next
661 : stack. */
662 : # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
663 : do \
664 : { \
665 : YYPTRDIFF_T yynewbytes; \
666 : YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
667 : Stack = &yyptr->Stack_alloc; \
668 : yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
669 : yyptr += yynewbytes / YYSIZEOF (*yyptr); \
670 : } \
671 : while (0)
672 :
673 : #endif
674 :
675 : #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
676 : /* Copy COUNT objects from SRC to DST. The source and destination do
677 : not overlap. */
678 : # ifndef YYCOPY
679 : # if defined __GNUC__ && 1 < __GNUC__
680 : # define YYCOPY(Dst, Src, Count) \
681 : __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
682 : # else
683 : # define YYCOPY(Dst, Src, Count) \
684 : do \
685 : { \
686 : YYPTRDIFF_T yyi; \
687 : for (yyi = 0; yyi < (Count); yyi++) \
688 : (Dst)[yyi] = (Src)[yyi]; \
689 : } \
690 : while (0)
691 : # endif
692 : # endif
693 : #endif /* !YYCOPY_NEEDED */
694 :
695 : /* YYFINAL -- State number of the termination state. */
696 : #define YYFINAL 72
697 : /* YYLAST -- Last index in YYTABLE. */
698 : #define YYLAST 387
699 :
700 : /* YYNTOKENS -- Number of terminals. */
701 : #define YYNTOKENS 68
702 : /* YYNNTS -- Number of nonterminals. */
703 : #define YYNNTS 18
704 : /* YYNRULES -- Number of rules. */
705 : #define YYNRULES 75
706 : /* YYNSTATES -- Number of states. */
707 : #define YYNSTATES 142
708 :
709 : /* YYMAXUTOK -- Last valid token kind. */
710 : #define YYMAXUTOK 317
711 :
712 :
713 : /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
714 : as returned by yylex, with out-of-bounds checking. */
715 : #define YYTRANSLATE(YYX) \
716 : (0 <= (YYX) && (YYX) <= YYMAXUTOK \
717 : ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
718 : : YYSYMBOL_YYUNDEF)
719 :
720 : /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
721 : as returned by yylex. */
722 : static const yytype_int8 yytranslate[] =
723 : {
724 : 0, 2, 2, 2, 2, 2, 2, 2, 2, 65,
725 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
726 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
727 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
728 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
729 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
730 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
731 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
732 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
733 : 2, 2, 2, 2, 63, 2, 2, 2, 2, 2,
734 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
735 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
736 : 2, 2, 2, 66, 2, 67, 64, 2, 2, 2,
737 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
738 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
739 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
740 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
741 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
742 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
743 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
744 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
745 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
746 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
747 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
748 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
749 : 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
750 : 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
751 : 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
752 : 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
753 : 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
754 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
755 : 55, 56, 57, 58, 59, 60, 61, 62
756 : };
757 :
758 : #if YYDEBUG
759 : /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
760 : static const yytype_int16 yyrline[] =
761 : {
762 : 0, 128, 128, 130, 135, 137, 148, 150, 152, 157,
763 : 159, 161, 163, 165, 170, 172, 174, 176, 181, 183,
764 : 188, 190, 192, 197, 199, 201, 203, 205, 207, 209,
765 : 211, 213, 215, 217, 219, 221, 223, 225, 227, 229,
766 : 231, 233, 235, 237, 239, 241, 243, 245, 247, 249,
767 : 251, 253, 255, 257, 259, 261, 266, 276, 278, 283,
768 : 285, 290, 292, 297, 299, 304, 306, 311, 313, 315,
769 : 317, 321, 323, 328, 330, 332
770 : };
771 : #endif
772 :
773 : /** Accessing symbol of state STATE. */
774 : #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
775 :
776 : #if YYDEBUG || 0
777 : /* The user-facing name of the symbol whose (internal) number is
778 : YYSYMBOL. No bounds checking. */
779 : static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
780 :
781 : /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
782 : First, the terminals, then, starting at YYNTOKENS, nonterminals. */
783 : static const char *const yytname[] =
784 : {
785 : "\"end of file\"", "error", "\"invalid token\"", "OVER", "SMALLOVER",
786 : "SQRT", "SUB", "SUP", "LPILE", "RPILE", "CPILE", "PILE", "LEFT", "RIGHT",
787 : "TO", "FROM", "SIZE", "FONT", "ROMAN", "BOLD", "ITALIC", "FAT", "ACCENT",
788 : "BAR", "UNDER", "ABOVE", "TEXT", "QUOTED_TEXT", "FWD", "BACK", "DOWN",
789 : "UP", "MATRIX", "COL", "LCOL", "RCOL", "CCOL", "MARK", "LINEUP", "TYPE",
790 : "VCENTER", "PRIME", "SPLIT", "NOSPLIT", "UACCENT", "SPECIAL", "SPACE",
791 : "GFONT", "GSIZE", "DEFINE", "NDEFINE", "TDEFINE", "SDEFINE", "UNDEF",
792 : "IFDEF", "INCLUDE", "DELIM", "CHARTYPE", "SET", "RESET", "GRFONT",
793 : "GBFONT", "GIFONT", "'^'", "'~'", "'\\t'", "'{'", "'}'", "$accept",
794 : "top", "equation", "mark", "from_to", "sqrt_over", "script", "nonsup",
795 : "simple", "number", "pile_element_list", "pile_arg", "column_list",
796 : "column_element_list", "column_arg", "column", "text", "delim", YY_NULLPTR
797 : };
798 :
799 : static const char *
800 : yysymbol_name (yysymbol_kind_t yysymbol)
801 : {
802 : return yytname[yysymbol];
803 : }
804 : #endif
805 :
806 : #ifdef YYPRINT
807 : /* YYTOKNUM[NUM] -- (External) token number corresponding to the
808 : (internal) symbol number NUM (which must be that of a token). */
809 : static const yytype_int16 yytoknum[] =
810 : {
811 : 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
812 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
813 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
814 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
815 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
816 : 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
817 : 315, 316, 317, 94, 126, 9, 123, 125
818 : };
819 : #endif
820 :
821 : #define YYPACT_NINF (-76)
822 :
823 : #define yypact_value_is_default(Yyn) \
824 : ((Yyn) == YYPACT_NINF)
825 :
826 : #define YYTABLE_NINF (-1)
827 :
828 : #define yytable_value_is_error(Yyn) \
829 : 0
830 :
831 : /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
832 : STATE-NUM. */
833 : static const yytype_int16 yypact[] =
834 : {
835 : 234, 275, -13, -13, -13, -13, 6, 60, 60, 316,
836 : 316, 316, 316, -76, -76, 60, 60, 60, 60, -50,
837 : 234, 234, 60, 316, -9, -2, 60, -76, -76, -76,
838 : 234, 26, 234, -76, -76, 79, -76, -76, 22, -76,
839 : -76, -76, 234, -43, -76, -76, -76, -76, -76, -76,
840 : -76, -76, 234, 316, 316, 57, 57, 57, 57, 316,
841 : 316, 316, 316, 7, -76, -76, 316, 57, -76, -76,
842 : 316, 130, -76, -76, 275, 275, 275, 275, 316, 316,
843 : 316, -76, -76, -76, 316, 234, -8, 234, 193, 57,
844 : 57, 57, 57, 57, 57, 8, 8, 8, 8, 3,
845 : -76, 57, 57, -76, -76, -76, -76, 81, -76, 343,
846 : -76, -76, -76, 234, -76, -6, 6, 234, -39, -76,
847 : -76, -76, -76, -76, -76, 275, 275, 316, 234, -76,
848 : -76, 234, -5, 234, -76, -76, -76, 234, -76, -3,
849 : 234, -76
850 : };
851 :
852 : /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
853 : Performed when YYTABLE does not specify something else to do. Zero
854 : means the default is an error. */
855 : static const yytype_int8 yydefact[] =
856 : {
857 : 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858 : 0, 0, 0, 23, 24, 0, 0, 0, 0, 0,
859 : 0, 0, 0, 0, 0, 0, 0, 27, 28, 29,
860 : 0, 0, 3, 4, 6, 9, 14, 18, 20, 15,
861 : 71, 72, 0, 0, 32, 56, 33, 34, 31, 74,
862 : 75, 73, 0, 0, 0, 43, 44, 45, 46, 0,
863 : 0, 0, 0, 0, 7, 8, 0, 54, 25, 26,
864 : 0, 0, 1, 5, 0, 0, 0, 0, 0, 0,
865 : 0, 38, 39, 40, 0, 57, 0, 0, 37, 48,
866 : 47, 49, 50, 52, 51, 0, 0, 0, 0, 0,
867 : 61, 53, 55, 30, 16, 17, 10, 11, 21, 20,
868 : 19, 41, 42, 0, 59, 0, 0, 0, 0, 67,
869 : 68, 69, 70, 35, 62, 0, 0, 0, 58, 60,
870 : 36, 63, 0, 0, 12, 13, 22, 0, 65, 0,
871 : 64, 66
872 : };
873 :
874 : /* YYPGOTO[NTERM-NUM]. */
875 : static const yytype_int8 yypgoto[] =
876 : {
877 : -76, -76, 0, -17, -75, 1, -67, -47, 46, -7,
878 : -22, 44, -76, -66, 23, 4, -1, -24
879 : };
880 :
881 : /* YYDEFGOTO[NTERM-NUM]. */
882 : static const yytype_uint8 yydefgoto[] =
883 : {
884 : 0, 31, 85, 33, 34, 35, 36, 37, 38, 43,
885 : 86, 44, 99, 132, 119, 100, 45, 52
886 : };
887 :
888 : /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
889 : positive, shift that token. If negative, reduce the rule whose
890 : number is the opposite. If YYTABLE_NINF, syntax error. */
891 : static const yytype_uint8 yytable[] =
892 : {
893 : 32, 106, 39, 64, 65, 51, 53, 54, 59, 60,
894 : 61, 62, 110, 40, 41, 73, 63, 113, 68, 113,
895 : 137, 66, 137, 87, 69, 70, 72, 133, 78, 79,
896 : 71, 108, 40, 41, 40, 41, 95, 96, 97, 98,
897 : 95, 96, 97, 98, 80, 81, 82, 46, 47, 48,
898 : 134, 135, 88, 42, 73, 55, 56, 57, 58, 114,
899 : 136, 129, 138, 83, 141, 115, 84, 139, 73, 67,
900 : 123, 73, 49, 50, 117, 104, 105, 0, 107, 80,
901 : 81, 82, 74, 75, 74, 75, 40, 41, 118, 118,
902 : 118, 118, 130, 76, 77, 125, 126, 0, 83, 89,
903 : 90, 84, 0, 124, 0, 91, 92, 93, 94, 0,
904 : 0, 73, 101, 128, 73, 51, 102, 131, 0, 120,
905 : 121, 122, 0, 73, 109, 0, 111, 0, 0, 0,
906 : 112, 0, 0, 131, 0, 1, 0, 140, 2, 3,
907 : 4, 5, 6, 0, 0, 0, 7, 8, 9, 10,
908 : 11, 12, 0, 0, 0, 0, 13, 14, 15, 16,
909 : 17, 18, 19, 0, 0, 0, 0, 20, 21, 22,
910 : 23, 0, 24, 25, 0, 26, 0, 0, 0, 0,
911 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
912 : 0, 0, 0, 27, 28, 29, 30, 103, 1, 0,
913 : 0, 2, 3, 4, 5, 6, 116, 0, 0, 7,
914 : 8, 9, 10, 11, 12, 0, 0, 0, 0, 13,
915 : 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
916 : 20, 21, 22, 23, 0, 24, 25, 0, 26, 1,
917 : 0, 0, 2, 3, 4, 5, 6, 0, 0, 0,
918 : 7, 8, 9, 10, 11, 12, 27, 28, 29, 30,
919 : 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
920 : 0, 20, 21, 22, 23, 0, 24, 25, 0, 26,
921 : 1, 0, 0, 2, 3, 4, 5, 6, 0, 0,
922 : 0, 7, 8, 9, 10, 11, 12, 27, 28, 29,
923 : 30, 13, 14, 15, 16, 17, 18, 19, 0, 0,
924 : 0, 0, 0, 0, 22, 23, 0, 24, 25, 0,
925 : 26, 0, 0, 0, 2, 3, 4, 5, 6, 0,
926 : 0, 0, 7, 8, 9, 10, 11, 12, 27, 28,
927 : 29, 30, 13, 14, 15, 16, 17, 18, 19, 78,
928 : 127, 0, 0, 0, 0, 22, 23, 0, 24, 25,
929 : 0, 26, 0, 0, 0, 80, 81, 82, 0, 0,
930 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
931 : 28, 29, 30, 0, 83, 0, 0, 84
932 : };
933 :
934 : static const yytype_int16 yycheck[] =
935 : {
936 : 0, 76, 1, 20, 21, 6, 7, 8, 15, 16,
937 : 17, 18, 79, 26, 27, 32, 66, 25, 27, 25,
938 : 25, 22, 25, 66, 26, 26, 0, 66, 6, 7,
939 : 30, 78, 26, 27, 26, 27, 33, 34, 35, 36,
940 : 33, 34, 35, 36, 22, 23, 24, 3, 4, 5,
941 : 125, 126, 52, 66, 71, 9, 10, 11, 12, 67,
942 : 127, 67, 67, 41, 67, 87, 44, 133, 85, 23,
943 : 67, 88, 66, 67, 66, 74, 75, -1, 77, 22,
944 : 23, 24, 3, 4, 3, 4, 26, 27, 95, 96,
945 : 97, 98, 116, 14, 15, 14, 15, -1, 41, 53,
946 : 54, 44, -1, 99, -1, 59, 60, 61, 62, -1,
947 : -1, 128, 66, 113, 131, 116, 70, 117, -1, 96,
948 : 97, 98, -1, 140, 78, -1, 80, -1, -1, -1,
949 : 84, -1, -1, 133, -1, 5, -1, 137, 8, 9,
950 : 10, 11, 12, -1, -1, -1, 16, 17, 18, 19,
951 : 20, 21, -1, -1, -1, -1, 26, 27, 28, 29,
952 : 30, 31, 32, -1, -1, -1, -1, 37, 38, 39,
953 : 40, -1, 42, 43, -1, 45, -1, -1, -1, -1,
954 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
955 : -1, -1, -1, 63, 64, 65, 66, 67, 5, -1,
956 : -1, 8, 9, 10, 11, 12, 13, -1, -1, 16,
957 : 17, 18, 19, 20, 21, -1, -1, -1, -1, 26,
958 : 27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
959 : 37, 38, 39, 40, -1, 42, 43, -1, 45, 5,
960 : -1, -1, 8, 9, 10, 11, 12, -1, -1, -1,
961 : 16, 17, 18, 19, 20, 21, 63, 64, 65, 66,
962 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
963 : -1, 37, 38, 39, 40, -1, 42, 43, -1, 45,
964 : 5, -1, -1, 8, 9, 10, 11, 12, -1, -1,
965 : -1, 16, 17, 18, 19, 20, 21, 63, 64, 65,
966 : 66, 26, 27, 28, 29, 30, 31, 32, -1, -1,
967 : -1, -1, -1, -1, 39, 40, -1, 42, 43, -1,
968 : 45, -1, -1, -1, 8, 9, 10, 11, 12, -1,
969 : -1, -1, 16, 17, 18, 19, 20, 21, 63, 64,
970 : 65, 66, 26, 27, 28, 29, 30, 31, 32, 6,
971 : 7, -1, -1, -1, -1, 39, 40, -1, 42, 43,
972 : -1, 45, -1, -1, -1, 22, 23, 24, -1, -1,
973 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 63,
974 : 64, 65, 66, -1, 41, -1, -1, 44
975 : };
976 :
977 : /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
978 : symbol of state STATE-NUM. */
979 : static const yytype_int8 yystos[] =
980 : {
981 : 0, 5, 8, 9, 10, 11, 12, 16, 17, 18,
982 : 19, 20, 21, 26, 27, 28, 29, 30, 31, 32,
983 : 37, 38, 39, 40, 42, 43, 45, 63, 64, 65,
984 : 66, 69, 70, 71, 72, 73, 74, 75, 76, 73,
985 : 26, 27, 66, 77, 79, 84, 79, 79, 79, 66,
986 : 67, 84, 85, 84, 84, 76, 76, 76, 76, 77,
987 : 77, 77, 77, 66, 71, 71, 84, 76, 27, 26,
988 : 84, 70, 0, 71, 3, 4, 14, 15, 6, 7,
989 : 22, 23, 24, 41, 44, 70, 78, 66, 70, 76,
990 : 76, 76, 76, 76, 76, 33, 34, 35, 36, 80,
991 : 83, 76, 76, 67, 73, 73, 72, 73, 75, 76,
992 : 74, 76, 76, 25, 67, 78, 13, 66, 77, 82,
993 : 82, 82, 82, 67, 83, 14, 15, 7, 70, 67,
994 : 85, 70, 81, 66, 72, 72, 74, 25, 67, 81,
995 : 70, 67
996 : };
997 :
998 : /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
999 : static const yytype_int8 yyr1[] =
1000 : {
1001 : 0, 68, 69, 69, 70, 70, 71, 71, 71, 72,
1002 : 72, 72, 72, 72, 73, 73, 73, 73, 74, 74,
1003 : 75, 75, 75, 76, 76, 76, 76, 76, 76, 76,
1004 : 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
1005 : 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
1006 : 76, 76, 76, 76, 76, 76, 77, 78, 78, 79,
1007 : 79, 80, 80, 81, 81, 82, 82, 83, 83, 83,
1008 : 83, 84, 84, 85, 85, 85
1009 : };
1010 :
1011 : /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
1012 : static const yytype_int8 yyr2[] =
1013 : {
1014 : 0, 2, 0, 1, 1, 2, 1, 2, 2, 1,
1015 : 3, 3, 5, 5, 1, 2, 3, 3, 1, 3,
1016 : 1, 3, 5, 1, 1, 2, 2, 1, 1, 1,
1017 : 3, 2, 2, 2, 2, 4, 5, 3, 2, 2,
1018 : 2, 3, 3, 2, 2, 2, 2, 3, 3, 3,
1019 : 3, 3, 3, 3, 2, 3, 1, 1, 3, 3,
1020 : 4, 1, 2, 1, 3, 3, 4, 2, 2, 2,
1021 : 2, 1, 1, 1, 1, 1
1022 : };
1023 :
1024 :
1025 : enum { YYENOMEM = -2 };
1026 :
1027 : #define yyerrok (yyerrstatus = 0)
1028 : #define yyclearin (yychar = YYEMPTY)
1029 :
1030 : #define YYACCEPT goto yyacceptlab
1031 : #define YYABORT goto yyabortlab
1032 : #define YYERROR goto yyerrorlab
1033 :
1034 :
1035 : #define YYRECOVERING() (!!yyerrstatus)
1036 :
1037 : #define YYBACKUP(Token, Value) \
1038 : do \
1039 : if (yychar == YYEMPTY) \
1040 : { \
1041 : yychar = (Token); \
1042 : yylval = (Value); \
1043 : YYPOPSTACK (yylen); \
1044 : yystate = *yyssp; \
1045 : goto yybackup; \
1046 : } \
1047 : else \
1048 : { \
1049 : yyerror (YY_("syntax error: cannot back up")); \
1050 : YYERROR; \
1051 : } \
1052 : while (0)
1053 :
1054 : /* Backward compatibility with an undocumented macro.
1055 : Use YYerror or YYUNDEF. */
1056 : #define YYERRCODE YYUNDEF
1057 :
1058 :
1059 : /* Enable debugging if requested. */
1060 : #if YYDEBUG
1061 :
1062 : # ifndef YYFPRINTF
1063 : # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1064 : # define YYFPRINTF fprintf
1065 : # endif
1066 :
1067 : # define YYDPRINTF(Args) \
1068 : do { \
1069 : if (yydebug) \
1070 : YYFPRINTF Args; \
1071 : } while (0)
1072 :
1073 : /* This macro is provided for backward compatibility. */
1074 : # ifndef YY_LOCATION_PRINT
1075 : # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1076 : # endif
1077 :
1078 :
1079 : # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
1080 : do { \
1081 : if (yydebug) \
1082 : { \
1083 : YYFPRINTF (stderr, "%s ", Title); \
1084 : yy_symbol_print (stderr, \
1085 : Kind, Value); \
1086 : YYFPRINTF (stderr, "\n"); \
1087 : } \
1088 : } while (0)
1089 :
1090 :
1091 : /*-----------------------------------.
1092 : | Print this symbol's value on YYO. |
1093 : `-----------------------------------*/
1094 :
1095 : static void
1096 : yy_symbol_value_print (FILE *yyo,
1097 : yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
1098 : {
1099 : FILE *yyoutput = yyo;
1100 : YY_USE (yyoutput);
1101 : if (!yyvaluep)
1102 : return;
1103 : # ifdef YYPRINT
1104 : if (yykind < YYNTOKENS)
1105 : YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
1106 : # endif
1107 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1108 : YY_USE (yykind);
1109 : YY_IGNORE_MAYBE_UNINITIALIZED_END
1110 : }
1111 :
1112 :
1113 : /*---------------------------.
1114 : | Print this symbol on YYO. |
1115 : `---------------------------*/
1116 :
1117 : static void
1118 : yy_symbol_print (FILE *yyo,
1119 : yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
1120 : {
1121 : YYFPRINTF (yyo, "%s %s (",
1122 : yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
1123 :
1124 : yy_symbol_value_print (yyo, yykind, yyvaluep);
1125 : YYFPRINTF (yyo, ")");
1126 : }
1127 :
1128 : /*------------------------------------------------------------------.
1129 : | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1130 : | TOP (included). |
1131 : `------------------------------------------------------------------*/
1132 :
1133 : static void
1134 : yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
1135 : {
1136 : YYFPRINTF (stderr, "Stack now");
1137 : for (; yybottom <= yytop; yybottom++)
1138 : {
1139 : int yybot = *yybottom;
1140 : YYFPRINTF (stderr, " %d", yybot);
1141 : }
1142 : YYFPRINTF (stderr, "\n");
1143 : }
1144 :
1145 : # define YY_STACK_PRINT(Bottom, Top) \
1146 : do { \
1147 : if (yydebug) \
1148 : yy_stack_print ((Bottom), (Top)); \
1149 : } while (0)
1150 :
1151 :
1152 : /*------------------------------------------------.
1153 : | Report that the YYRULE is going to be reduced. |
1154 : `------------------------------------------------*/
1155 :
1156 : static void
1157 : yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
1158 : int yyrule)
1159 : {
1160 : int yylno = yyrline[yyrule];
1161 : int yynrhs = yyr2[yyrule];
1162 : int yyi;
1163 : YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
1164 : yyrule - 1, yylno);
1165 : /* The symbols being reduced. */
1166 : for (yyi = 0; yyi < yynrhs; yyi++)
1167 : {
1168 : YYFPRINTF (stderr, " $%d = ", yyi + 1);
1169 : yy_symbol_print (stderr,
1170 : YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
1171 : &yyvsp[(yyi + 1) - (yynrhs)]);
1172 : YYFPRINTF (stderr, "\n");
1173 : }
1174 : }
1175 :
1176 : # define YY_REDUCE_PRINT(Rule) \
1177 : do { \
1178 : if (yydebug) \
1179 : yy_reduce_print (yyssp, yyvsp, Rule); \
1180 : } while (0)
1181 :
1182 : /* Nonzero means print parse trace. It is left uninitialized so that
1183 : multiple parsers can coexist. */
1184 : int yydebug;
1185 : #else /* !YYDEBUG */
1186 : # define YYDPRINTF(Args) ((void) 0)
1187 : # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1188 : # define YY_STACK_PRINT(Bottom, Top)
1189 : # define YY_REDUCE_PRINT(Rule)
1190 : #endif /* !YYDEBUG */
1191 :
1192 :
1193 : /* YYINITDEPTH -- initial size of the parser's stacks. */
1194 : #ifndef YYINITDEPTH
1195 : # define YYINITDEPTH 200
1196 : #endif
1197 :
1198 : /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1199 : if the built-in stack extension method is used).
1200 :
1201 : Do not make this value too large; the results are undefined if
1202 : YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1203 : evaluated with infinite-precision integer arithmetic. */
1204 :
1205 : #ifndef YYMAXDEPTH
1206 : # define YYMAXDEPTH 10000
1207 : #endif
1208 :
1209 :
1210 :
1211 :
1212 :
1213 :
1214 : /*-----------------------------------------------.
1215 : | Release the memory associated to this symbol. |
1216 : `-----------------------------------------------*/
1217 :
1218 : static void
1219 8144 : yydestruct (const char *yymsg,
1220 : yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
1221 : {
1222 : YY_USE (yyvaluep);
1223 8144 : if (!yymsg)
1224 0 : yymsg = "Deleting";
1225 : YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
1226 :
1227 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1228 : YY_USE (yykind);
1229 : YY_IGNORE_MAYBE_UNINITIALIZED_END
1230 8144 : }
1231 :
1232 :
1233 : /* Lookahead token kind. */
1234 : int yychar;
1235 :
1236 : /* The semantic value of the lookahead symbol. */
1237 : YYSTYPE yylval;
1238 : /* Number of syntax errors so far. */
1239 : int yynerrs;
1240 :
1241 :
1242 :
1243 :
1244 : /*----------.
1245 : | yyparse. |
1246 : `----------*/
1247 :
1248 : int
1249 4072 : yyparse (void)
1250 : {
1251 4072 : yy_state_fast_t yystate = 0;
1252 : /* Number of tokens to shift before error messages enabled. */
1253 4072 : int yyerrstatus = 0;
1254 :
1255 : /* Refer to the stacks through separate pointers, to allow yyoverflow
1256 : to reallocate them elsewhere. */
1257 :
1258 : /* Their size. */
1259 4072 : YYPTRDIFF_T yystacksize = YYINITDEPTH;
1260 :
1261 : /* The state stack: array, bottom, top. */
1262 : yy_state_t yyssa[YYINITDEPTH];
1263 4072 : yy_state_t *yyss = yyssa;
1264 4072 : yy_state_t *yyssp = yyss;
1265 :
1266 : /* The semantic value stack: array, bottom, top. */
1267 : YYSTYPE yyvsa[YYINITDEPTH];
1268 4072 : YYSTYPE *yyvs = yyvsa;
1269 4072 : YYSTYPE *yyvsp = yyvs;
1270 :
1271 : int yyn;
1272 : /* The return value of yyparse. */
1273 : int yyresult;
1274 : /* Lookahead symbol kind. */
1275 4072 : yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1276 : /* The variables used to return semantic value and location from the
1277 : action routines. */
1278 : YYSTYPE yyval;
1279 :
1280 :
1281 :
1282 : #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1283 :
1284 : /* The number of symbols on the RHS of the reduced rule.
1285 : Keep to zero when no symbol should be popped. */
1286 4072 : int yylen = 0;
1287 :
1288 : YYDPRINTF ((stderr, "Starting parse\n"));
1289 :
1290 4072 : yychar = YYEMPTY; /* Cause a token to be read. */
1291 4072 : goto yysetstate;
1292 :
1293 :
1294 : /*------------------------------------------------------------.
1295 : | yynewstate -- push a new state, which is found in yystate. |
1296 : `------------------------------------------------------------*/
1297 16608 : yynewstate:
1298 : /* In all cases, when you get here, the value and location stacks
1299 : have just been pushed. So pushing a state here evens the stacks. */
1300 16608 : yyssp++;
1301 :
1302 :
1303 : /*--------------------------------------------------------------------.
1304 : | yysetstate -- set current state (the top of the stack) to yystate. |
1305 : `--------------------------------------------------------------------*/
1306 20680 : yysetstate:
1307 : YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1308 : YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1309 : YY_IGNORE_USELESS_CAST_BEGIN
1310 20680 : *yyssp = YY_CAST (yy_state_t, yystate);
1311 : YY_IGNORE_USELESS_CAST_END
1312 : YY_STACK_PRINT (yyss, yyssp);
1313 :
1314 20680 : if (yyss + yystacksize - 1 <= yyssp)
1315 : #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1316 : goto yyexhaustedlab;
1317 : #else
1318 : {
1319 : /* Get the current used size of the three stacks, in elements. */
1320 0 : YYPTRDIFF_T yysize = yyssp - yyss + 1;
1321 :
1322 : # if defined yyoverflow
1323 : {
1324 : /* Give user a chance to reallocate the stack. Use copies of
1325 : these so that the &'s don't force the real ones into
1326 : memory. */
1327 : yy_state_t *yyss1 = yyss;
1328 : YYSTYPE *yyvs1 = yyvs;
1329 :
1330 : /* Each stack pointer address is followed by the size of the
1331 : data in use in that stack, in bytes. This used to be a
1332 : conditional around just the two extra args, but that might
1333 : be undefined if yyoverflow is a macro. */
1334 : yyoverflow (YY_("memory exhausted"),
1335 : &yyss1, yysize * YYSIZEOF (*yyssp),
1336 : &yyvs1, yysize * YYSIZEOF (*yyvsp),
1337 : &yystacksize);
1338 : yyss = yyss1;
1339 : yyvs = yyvs1;
1340 : }
1341 : # else /* defined YYSTACK_RELOCATE */
1342 : /* Extend the stack our own way. */
1343 0 : if (YYMAXDEPTH <= yystacksize)
1344 0 : goto yyexhaustedlab;
1345 0 : yystacksize *= 2;
1346 0 : if (YYMAXDEPTH < yystacksize)
1347 0 : yystacksize = YYMAXDEPTH;
1348 :
1349 : {
1350 0 : yy_state_t *yyss1 = yyss;
1351 : union yyalloc *yyptr =
1352 0 : YY_CAST (union yyalloc *,
1353 : YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1354 0 : if (! yyptr)
1355 0 : goto yyexhaustedlab;
1356 0 : YYSTACK_RELOCATE (yyss_alloc, yyss);
1357 0 : YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1358 : # undef YYSTACK_RELOCATE
1359 0 : if (yyss1 != yyssa)
1360 0 : YYSTACK_FREE (yyss1);
1361 : }
1362 : # endif
1363 :
1364 0 : yyssp = yyss + yysize - 1;
1365 0 : yyvsp = yyvs + yysize - 1;
1366 :
1367 : YY_IGNORE_USELESS_CAST_BEGIN
1368 : YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1369 : YY_CAST (long, yystacksize)));
1370 : YY_IGNORE_USELESS_CAST_END
1371 :
1372 0 : if (yyss + yystacksize - 1 <= yyssp)
1373 0 : YYABORT;
1374 : }
1375 : #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1376 :
1377 20680 : if (yystate == YYFINAL)
1378 4072 : YYACCEPT;
1379 :
1380 16608 : goto yybackup;
1381 :
1382 :
1383 : /*-----------.
1384 : | yybackup. |
1385 : `-----------*/
1386 16608 : yybackup:
1387 : /* Do appropriate processing given the current state. Read a
1388 : lookahead token if we need one and don't already have one. */
1389 :
1390 : /* First try to decide what to do without reference to lookahead token. */
1391 16608 : yyn = yypact[yystate];
1392 16608 : if (yypact_value_is_default (yyn))
1393 4926 : goto yydefault;
1394 :
1395 : /* Not known => get a lookahead token if don't already have one. */
1396 :
1397 : /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
1398 11682 : if (yychar == YYEMPTY)
1399 : {
1400 : YYDPRINTF ((stderr, "Reading a token\n"));
1401 5691 : yychar = yylex ();
1402 : }
1403 :
1404 11682 : if (yychar <= YYEOF)
1405 : {
1406 8521 : yychar = YYEOF;
1407 8521 : yytoken = YYSYMBOL_YYEOF;
1408 : YYDPRINTF ((stderr, "Now at end of input.\n"));
1409 : }
1410 3161 : else if (yychar == YYerror)
1411 : {
1412 : /* The scanner already issued an error message, process directly
1413 : to error recovery. But do not keep the error token as
1414 : lookahead, it is too special and may lead us to an endless
1415 : loop in error recovery. */
1416 0 : yychar = YYUNDEF;
1417 0 : yytoken = YYSYMBOL_YYerror;
1418 0 : goto yyerrlab1;
1419 : }
1420 : else
1421 : {
1422 3161 : yytoken = YYTRANSLATE (yychar);
1423 : YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1424 : }
1425 :
1426 : /* If the proper action on seeing token YYTOKEN is to reduce or to
1427 : detect an error, take that action. */
1428 11682 : yyn += yytoken;
1429 11682 : if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1430 5991 : goto yydefault;
1431 5691 : yyn = yytable[yyn];
1432 5691 : if (yyn <= 0)
1433 : {
1434 : if (yytable_value_is_error (yyn))
1435 : goto yyerrlab;
1436 0 : yyn = -yyn;
1437 0 : goto yyreduce;
1438 : }
1439 :
1440 : /* Count tokens shifted since error; after three, turn off error
1441 : status. */
1442 5691 : if (yyerrstatus)
1443 0 : yyerrstatus--;
1444 :
1445 : /* Shift the lookahead token. */
1446 : YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1447 5691 : yystate = yyn;
1448 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1449 5691 : *++yyvsp = yylval;
1450 : YY_IGNORE_MAYBE_UNINITIALIZED_END
1451 :
1452 : /* Discard the shifted token. */
1453 5691 : yychar = YYEMPTY;
1454 5691 : goto yynewstate;
1455 :
1456 :
1457 : /*-----------------------------------------------------------.
1458 : | yydefault -- do the default action for the current state. |
1459 : `-----------------------------------------------------------*/
1460 10917 : yydefault:
1461 10917 : yyn = yydefact[yystate];
1462 10917 : if (yyn == 0)
1463 0 : goto yyerrlab;
1464 10917 : goto yyreduce;
1465 :
1466 :
1467 : /*-----------------------------.
1468 : | yyreduce -- do a reduction. |
1469 : `-----------------------------*/
1470 10917 : yyreduce:
1471 : /* yyn is the number of a rule to reduce with. */
1472 10917 : yylen = yyr2[yyn];
1473 :
1474 : /* If YYLEN is nonzero, implement the default value of the action:
1475 : '$$ = $1'.
1476 :
1477 : Otherwise, the following line sets YYVAL to garbage.
1478 : This behavior is undocumented and Bison
1479 : users should not rely upon it. Assigning to YYVAL
1480 : unconditionally makes the parser a bit smaller, and it avoids a
1481 : GCC warning that YYVAL may be used uninitialized. */
1482 10917 : yyval = yyvsp[1-yylen];
1483 :
1484 :
1485 : YY_REDUCE_PRINT (yyn);
1486 10917 : switch (yyn)
1487 : {
1488 184 : case 3: /* top: equation */
1489 : #line 131 "../src/preproc/eqn/eqn.ypp"
1490 : { (yyvsp[0].b)->top_level(); non_empty_flag = 1; }
1491 : #line 1492 "src/preproc/eqn/eqn.cpp"
1492 184 : break;
1493 :
1494 312 : case 4: /* equation: mark */
1495 : #line 136 "../src/preproc/eqn/eqn.ypp"
1496 : { (yyval.b) = (yyvsp[0].b); }
1497 : #line 1498 "src/preproc/eqn/eqn.cpp"
1498 312 : break;
1499 :
1500 558 : case 5: /* equation: equation mark */
1501 : #line 138 "../src/preproc/eqn/eqn.ypp"
1502 : {
1503 : list_box *lb = (yyvsp[-1].b)->to_list_box();
1504 : if (!lb)
1505 : lb = new list_box((yyvsp[-1].b));
1506 : lb->append((yyvsp[0].b));
1507 : (yyval.b) = lb;
1508 : }
1509 : #line 1510 "src/preproc/eqn/eqn.cpp"
1510 558 : break;
1511 :
1512 870 : case 6: /* mark: from_to */
1513 : #line 149 "../src/preproc/eqn/eqn.ypp"
1514 : { (yyval.b) = (yyvsp[0].b); }
1515 : #line 1516 "src/preproc/eqn/eqn.cpp"
1516 870 : break;
1517 :
1518 0 : case 7: /* mark: MARK mark */
1519 : #line 151 "../src/preproc/eqn/eqn.ypp"
1520 : { (yyval.b) = make_mark_box((yyvsp[0].b)); }
1521 : #line 1522 "src/preproc/eqn/eqn.cpp"
1522 0 : break;
1523 :
1524 0 : case 8: /* mark: LINEUP mark */
1525 : #line 153 "../src/preproc/eqn/eqn.ypp"
1526 : { (yyval.b) = make_lineup_box((yyvsp[0].b)); }
1527 : #line 1528 "src/preproc/eqn/eqn.cpp"
1528 0 : break;
1529 :
1530 870 : case 9: /* from_to: sqrt_over */
1531 : #line 158 "../src/preproc/eqn/eqn.ypp"
1532 : { (yyval.b) = (yyvsp[0].b); }
1533 : #line 1534 "src/preproc/eqn/eqn.cpp"
1534 870 : break;
1535 :
1536 0 : case 10: /* from_to: sqrt_over TO from_to */
1537 : #line 160 "../src/preproc/eqn/eqn.ypp"
1538 : { (yyval.b) = make_limit_box((yyvsp[-2].b), 0, (yyvsp[0].b)); }
1539 : #line 1540 "src/preproc/eqn/eqn.cpp"
1540 0 : break;
1541 :
1542 0 : case 11: /* from_to: sqrt_over FROM sqrt_over */
1543 : #line 162 "../src/preproc/eqn/eqn.ypp"
1544 : { (yyval.b) = make_limit_box((yyvsp[-2].b), (yyvsp[0].b), 0); }
1545 : #line 1546 "src/preproc/eqn/eqn.cpp"
1546 0 : break;
1547 :
1548 16 : case 12: /* from_to: sqrt_over FROM sqrt_over TO from_to */
1549 : #line 164 "../src/preproc/eqn/eqn.ypp"
1550 : { (yyval.b) = make_limit_box((yyvsp[-4].b), (yyvsp[-2].b), (yyvsp[0].b)); }
1551 : #line 1552 "src/preproc/eqn/eqn.cpp"
1552 16 : break;
1553 :
1554 0 : case 13: /* from_to: sqrt_over FROM sqrt_over FROM from_to */
1555 : #line 166 "../src/preproc/eqn/eqn.ypp"
1556 : { (yyval.b) = make_limit_box((yyvsp[-4].b), make_limit_box((yyvsp[-2].b), (yyvsp[0].b), 0), 0); }
1557 : #line 1558 "src/preproc/eqn/eqn.cpp"
1558 0 : break;
1559 :
1560 913 : case 14: /* sqrt_over: script */
1561 : #line 171 "../src/preproc/eqn/eqn.ypp"
1562 : { (yyval.b) = (yyvsp[0].b); }
1563 : #line 1564 "src/preproc/eqn/eqn.cpp"
1564 913 : break;
1565 :
1566 8 : case 15: /* sqrt_over: SQRT sqrt_over */
1567 : #line 173 "../src/preproc/eqn/eqn.ypp"
1568 : { (yyval.b) = make_sqrt_box((yyvsp[0].b)); }
1569 : #line 1570 "src/preproc/eqn/eqn.cpp"
1570 8 : break;
1571 :
1572 11 : case 16: /* sqrt_over: sqrt_over OVER sqrt_over */
1573 : #line 175 "../src/preproc/eqn/eqn.ypp"
1574 : { (yyval.b) = make_over_box((yyvsp[-2].b), (yyvsp[0].b)); }
1575 : #line 1576 "src/preproc/eqn/eqn.cpp"
1576 11 : break;
1577 :
1578 0 : case 17: /* sqrt_over: sqrt_over SMALLOVER sqrt_over */
1579 : #line 177 "../src/preproc/eqn/eqn.ypp"
1580 : { (yyval.b) = make_small_over_box((yyvsp[-2].b), (yyvsp[0].b)); }
1581 : #line 1582 "src/preproc/eqn/eqn.cpp"
1582 0 : break;
1583 :
1584 913 : case 18: /* script: nonsup */
1585 : #line 182 "../src/preproc/eqn/eqn.ypp"
1586 : { (yyval.b) = (yyvsp[0].b); }
1587 : #line 1588 "src/preproc/eqn/eqn.cpp"
1588 913 : break;
1589 :
1590 18 : case 19: /* script: simple SUP script */
1591 : #line 184 "../src/preproc/eqn/eqn.ypp"
1592 : { (yyval.b) = make_script_box((yyvsp[-2].b), 0, (yyvsp[0].b)); }
1593 : #line 1594 "src/preproc/eqn/eqn.cpp"
1594 18 : break;
1595 :
1596 913 : case 20: /* nonsup: simple */
1597 : #line 189 "../src/preproc/eqn/eqn.ypp"
1598 : { (yyval.b) = (yyvsp[0].b); }
1599 : #line 1600 "src/preproc/eqn/eqn.cpp"
1600 913 : break;
1601 :
1602 147 : case 21: /* nonsup: simple SUB nonsup */
1603 : #line 191 "../src/preproc/eqn/eqn.ypp"
1604 : { (yyval.b) = make_script_box((yyvsp[-2].b), (yyvsp[0].b), 0); }
1605 : #line 1606 "src/preproc/eqn/eqn.cpp"
1606 147 : break;
1607 :
1608 0 : case 22: /* nonsup: simple SUB simple SUP script */
1609 : #line 193 "../src/preproc/eqn/eqn.ypp"
1610 : { (yyval.b) = make_script_box((yyvsp[-4].b), (yyvsp[-2].b), (yyvsp[0].b)); }
1611 : #line 1612 "src/preproc/eqn/eqn.cpp"
1612 0 : break;
1613 :
1614 853 : case 23: /* simple: TEXT */
1615 : #line 198 "../src/preproc/eqn/eqn.ypp"
1616 : { (yyval.b) = split_text((yyvsp[0].str)); }
1617 : #line 1618 "src/preproc/eqn/eqn.cpp"
1618 853 : break;
1619 :
1620 26 : case 24: /* simple: QUOTED_TEXT */
1621 : #line 200 "../src/preproc/eqn/eqn.ypp"
1622 : { (yyval.b) = new quoted_text_box((yyvsp[0].str)); }
1623 : #line 1624 "src/preproc/eqn/eqn.cpp"
1624 26 : break;
1625 :
1626 0 : case 25: /* simple: SPLIT QUOTED_TEXT */
1627 : #line 202 "../src/preproc/eqn/eqn.ypp"
1628 : { (yyval.b) = split_text((yyvsp[0].str)); }
1629 : #line 1630 "src/preproc/eqn/eqn.cpp"
1630 0 : break;
1631 :
1632 0 : case 26: /* simple: NOSPLIT TEXT */
1633 : #line 204 "../src/preproc/eqn/eqn.ypp"
1634 : { (yyval.b) = new quoted_text_box((yyvsp[0].str)); }
1635 : #line 1636 "src/preproc/eqn/eqn.cpp"
1636 0 : break;
1637 :
1638 20 : case 27: /* simple: '^' */
1639 : #line 206 "../src/preproc/eqn/eqn.ypp"
1640 : { (yyval.b) = new half_space_box; }
1641 : #line 1642 "src/preproc/eqn/eqn.cpp"
1642 20 : break;
1643 :
1644 63 : case 28: /* simple: '~' */
1645 : #line 208 "../src/preproc/eqn/eqn.ypp"
1646 : { (yyval.b) = new full_space_box; }
1647 : #line 1648 "src/preproc/eqn/eqn.cpp"
1648 63 : break;
1649 :
1650 0 : case 29: /* simple: '\t' */
1651 : #line 210 "../src/preproc/eqn/eqn.ypp"
1652 : { (yyval.b) = new tab_box; }
1653 : #line 1654 "src/preproc/eqn/eqn.cpp"
1654 0 : break;
1655 :
1656 107 : case 30: /* simple: '{' equation '}' */
1657 : #line 212 "../src/preproc/eqn/eqn.ypp"
1658 : { (yyval.b) = (yyvsp[-1].b); }
1659 : #line 1660 "src/preproc/eqn/eqn.cpp"
1660 107 : break;
1661 :
1662 0 : case 31: /* simple: PILE pile_arg */
1663 : #line 214 "../src/preproc/eqn/eqn.ypp"
1664 : { (yyvsp[0].pb)->set_alignment(CENTER_ALIGN); (yyval.b) = (yyvsp[0].pb); }
1665 : #line 1666 "src/preproc/eqn/eqn.cpp"
1666 0 : break;
1667 :
1668 3 : case 32: /* simple: LPILE pile_arg */
1669 : #line 216 "../src/preproc/eqn/eqn.ypp"
1670 : { (yyvsp[0].pb)->set_alignment(LEFT_ALIGN); (yyval.b) = (yyvsp[0].pb); }
1671 : #line 1672 "src/preproc/eqn/eqn.cpp"
1672 3 : break;
1673 :
1674 3 : case 33: /* simple: RPILE pile_arg */
1675 : #line 218 "../src/preproc/eqn/eqn.ypp"
1676 : { (yyvsp[0].pb)->set_alignment(RIGHT_ALIGN); (yyval.b) = (yyvsp[0].pb); }
1677 : #line 1678 "src/preproc/eqn/eqn.cpp"
1678 3 : break;
1679 :
1680 0 : case 34: /* simple: CPILE pile_arg */
1681 : #line 220 "../src/preproc/eqn/eqn.ypp"
1682 : { (yyvsp[0].pb)->set_alignment(CENTER_ALIGN); (yyval.b) = (yyvsp[0].pb); }
1683 : #line 1684 "src/preproc/eqn/eqn.cpp"
1684 0 : break;
1685 :
1686 0 : case 35: /* simple: MATRIX '{' column_list '}' */
1687 : #line 222 "../src/preproc/eqn/eqn.ypp"
1688 : { (yyval.b) = (yyvsp[-1].mb); }
1689 : #line 1690 "src/preproc/eqn/eqn.cpp"
1690 0 : break;
1691 :
1692 0 : case 36: /* simple: LEFT delim equation RIGHT delim */
1693 : #line 224 "../src/preproc/eqn/eqn.ypp"
1694 : { (yyval.b) = make_delim_box((yyvsp[-3].str), (yyvsp[-2].b), (yyvsp[0].str)); }
1695 : #line 1696 "src/preproc/eqn/eqn.cpp"
1696 0 : break;
1697 :
1698 3 : case 37: /* simple: LEFT delim equation */
1699 : #line 226 "../src/preproc/eqn/eqn.ypp"
1700 : { (yyval.b) = make_delim_box((yyvsp[-1].str), (yyvsp[0].b), 0); }
1701 : #line 1702 "src/preproc/eqn/eqn.cpp"
1702 3 : break;
1703 :
1704 2 : case 38: /* simple: simple BAR */
1705 : #line 228 "../src/preproc/eqn/eqn.ypp"
1706 : { (yyval.b) = make_overline_box((yyvsp[-1].b)); }
1707 : #line 1708 "src/preproc/eqn/eqn.cpp"
1708 2 : break;
1709 :
1710 0 : case 39: /* simple: simple UNDER */
1711 : #line 230 "../src/preproc/eqn/eqn.ypp"
1712 : { (yyval.b) = make_underline_box((yyvsp[-1].b)); }
1713 : #line 1714 "src/preproc/eqn/eqn.cpp"
1714 0 : break;
1715 :
1716 0 : case 40: /* simple: simple PRIME */
1717 : #line 232 "../src/preproc/eqn/eqn.ypp"
1718 : { (yyval.b) = make_prime_box((yyvsp[-1].b)); }
1719 : #line 1720 "src/preproc/eqn/eqn.cpp"
1720 0 : break;
1721 :
1722 0 : case 41: /* simple: simple ACCENT simple */
1723 : #line 234 "../src/preproc/eqn/eqn.ypp"
1724 : { (yyval.b) = make_accent_box((yyvsp[-2].b), (yyvsp[0].b)); }
1725 : #line 1726 "src/preproc/eqn/eqn.cpp"
1726 0 : break;
1727 :
1728 0 : case 42: /* simple: simple UACCENT simple */
1729 : #line 236 "../src/preproc/eqn/eqn.ypp"
1730 : { (yyval.b) = make_uaccent_box((yyvsp[-2].b), (yyvsp[0].b)); }
1731 : #line 1732 "src/preproc/eqn/eqn.cpp"
1732 0 : break;
1733 :
1734 25 : case 43: /* simple: ROMAN simple */
1735 : #line 238 "../src/preproc/eqn/eqn.ypp"
1736 : { (yyval.b) = new font_box(strsave(get_grfont()), (yyvsp[0].b)); }
1737 : #line 1738 "src/preproc/eqn/eqn.cpp"
1738 25 : break;
1739 :
1740 0 : case 44: /* simple: BOLD simple */
1741 : #line 240 "../src/preproc/eqn/eqn.ypp"
1742 : { (yyval.b) = new font_box(strsave(get_gbfont()), (yyvsp[0].b)); }
1743 : #line 1744 "src/preproc/eqn/eqn.cpp"
1744 0 : break;
1745 :
1746 0 : case 45: /* simple: ITALIC simple */
1747 : #line 242 "../src/preproc/eqn/eqn.ypp"
1748 : { (yyval.b) = new font_box(strsave(get_gifont()), (yyvsp[0].b)); }
1749 : #line 1750 "src/preproc/eqn/eqn.cpp"
1750 0 : break;
1751 :
1752 0 : case 46: /* simple: FAT simple */
1753 : #line 244 "../src/preproc/eqn/eqn.ypp"
1754 : { (yyval.b) = new fat_box((yyvsp[0].b)); }
1755 : #line 1756 "src/preproc/eqn/eqn.cpp"
1756 0 : break;
1757 :
1758 0 : case 47: /* simple: FONT text simple */
1759 : #line 246 "../src/preproc/eqn/eqn.ypp"
1760 : { (yyval.b) = new font_box((yyvsp[-1].str), (yyvsp[0].b)); }
1761 : #line 1762 "src/preproc/eqn/eqn.cpp"
1762 0 : break;
1763 :
1764 16 : case 48: /* simple: SIZE text simple */
1765 : #line 248 "../src/preproc/eqn/eqn.ypp"
1766 : { (yyval.b) = new size_box((yyvsp[-1].str), (yyvsp[0].b)); }
1767 : #line 1768 "src/preproc/eqn/eqn.cpp"
1768 16 : break;
1769 :
1770 0 : case 49: /* simple: FWD number simple */
1771 : #line 250 "../src/preproc/eqn/eqn.ypp"
1772 : { (yyval.b) = new hmotion_box((yyvsp[-1].n), (yyvsp[0].b)); }
1773 : #line 1774 "src/preproc/eqn/eqn.cpp"
1774 0 : break;
1775 :
1776 0 : case 50: /* simple: BACK number simple */
1777 : #line 252 "../src/preproc/eqn/eqn.ypp"
1778 : { (yyval.b) = new hmotion_box(-(yyvsp[-1].n), (yyvsp[0].b)); }
1779 : #line 1780 "src/preproc/eqn/eqn.cpp"
1780 0 : break;
1781 :
1782 0 : case 51: /* simple: UP number simple */
1783 : #line 254 "../src/preproc/eqn/eqn.ypp"
1784 : { (yyval.b) = new vmotion_box((yyvsp[-1].n), (yyvsp[0].b)); }
1785 : #line 1786 "src/preproc/eqn/eqn.cpp"
1786 0 : break;
1787 :
1788 0 : case 52: /* simple: DOWN number simple */
1789 : #line 256 "../src/preproc/eqn/eqn.ypp"
1790 : { (yyval.b) = new vmotion_box(-(yyvsp[-1].n), (yyvsp[0].b)); }
1791 : #line 1792 "src/preproc/eqn/eqn.cpp"
1792 0 : break;
1793 :
1794 58 : case 53: /* simple: TYPE text simple */
1795 : #line 258 "../src/preproc/eqn/eqn.ypp"
1796 : { (yyvsp[0].b)->set_spacing_type((yyvsp[-1].str)); (yyval.b) = (yyvsp[0].b); }
1797 : #line 1798 "src/preproc/eqn/eqn.cpp"
1798 58 : break;
1799 :
1800 16 : case 54: /* simple: VCENTER simple */
1801 : #line 260 "../src/preproc/eqn/eqn.ypp"
1802 : { (yyval.b) = new vcenter_box((yyvsp[0].b)); }
1803 : #line 1804 "src/preproc/eqn/eqn.cpp"
1804 16 : break;
1805 :
1806 0 : case 55: /* simple: SPECIAL text simple */
1807 : #line 262 "../src/preproc/eqn/eqn.ypp"
1808 : { (yyval.b) = make_special_box((yyvsp[-1].str), (yyvsp[0].b)); }
1809 : #line 1810 "src/preproc/eqn/eqn.cpp"
1810 0 : break;
1811 :
1812 0 : case 56: /* number: text */
1813 : #line 267 "../src/preproc/eqn/eqn.ypp"
1814 : {
1815 : int n;
1816 : if (sscanf((yyvsp[0].str), "%d", &n) == 1)
1817 : (yyval.n) = n;
1818 : delete[] (yyvsp[0].str);
1819 : }
1820 : #line 1821 "src/preproc/eqn/eqn.cpp"
1821 0 : break;
1822 :
1823 6 : case 57: /* pile_element_list: equation */
1824 : #line 277 "../src/preproc/eqn/eqn.ypp"
1825 : { (yyval.pb) = new pile_box((yyvsp[0].b)); }
1826 : #line 1827 "src/preproc/eqn/eqn.cpp"
1827 6 : break;
1828 :
1829 12 : case 58: /* pile_element_list: pile_element_list ABOVE equation */
1830 : #line 279 "../src/preproc/eqn/eqn.ypp"
1831 : { (yyvsp[-2].pb)->append((yyvsp[0].b)); (yyval.pb) = (yyvsp[-2].pb); }
1832 : #line 1833 "src/preproc/eqn/eqn.cpp"
1833 12 : break;
1834 :
1835 6 : case 59: /* pile_arg: '{' pile_element_list '}' */
1836 : #line 284 "../src/preproc/eqn/eqn.ypp"
1837 : { (yyval.pb) = (yyvsp[-1].pb); }
1838 : #line 1839 "src/preproc/eqn/eqn.cpp"
1839 6 : break;
1840 :
1841 0 : case 60: /* pile_arg: number '{' pile_element_list '}' */
1842 : #line 286 "../src/preproc/eqn/eqn.ypp"
1843 : { (yyvsp[-1].pb)->set_space((yyvsp[-3].n)); (yyval.pb) = (yyvsp[-1].pb); }
1844 : #line 1845 "src/preproc/eqn/eqn.cpp"
1845 0 : break;
1846 :
1847 0 : case 61: /* column_list: column */
1848 : #line 291 "../src/preproc/eqn/eqn.ypp"
1849 : { (yyval.mb) = new matrix_box((yyvsp[0].col)); }
1850 : #line 1851 "src/preproc/eqn/eqn.cpp"
1851 0 : break;
1852 :
1853 0 : case 62: /* column_list: column_list column */
1854 : #line 293 "../src/preproc/eqn/eqn.ypp"
1855 : { (yyvsp[-1].mb)->append((yyvsp[0].col)); (yyval.mb) = (yyvsp[-1].mb); }
1856 : #line 1857 "src/preproc/eqn/eqn.cpp"
1857 0 : break;
1858 :
1859 0 : case 63: /* column_element_list: equation */
1860 : #line 298 "../src/preproc/eqn/eqn.ypp"
1861 : { (yyval.col) = new column((yyvsp[0].b)); }
1862 : #line 1863 "src/preproc/eqn/eqn.cpp"
1863 0 : break;
1864 :
1865 0 : case 64: /* column_element_list: column_element_list ABOVE equation */
1866 : #line 300 "../src/preproc/eqn/eqn.ypp"
1867 : { (yyvsp[-2].col)->append((yyvsp[0].b)); (yyval.col) = (yyvsp[-2].col); }
1868 : #line 1869 "src/preproc/eqn/eqn.cpp"
1869 0 : break;
1870 :
1871 0 : case 65: /* column_arg: '{' column_element_list '}' */
1872 : #line 305 "../src/preproc/eqn/eqn.ypp"
1873 : { (yyval.col) = (yyvsp[-1].col); }
1874 : #line 1875 "src/preproc/eqn/eqn.cpp"
1875 0 : break;
1876 :
1877 0 : case 66: /* column_arg: number '{' column_element_list '}' */
1878 : #line 307 "../src/preproc/eqn/eqn.ypp"
1879 : { (yyvsp[-1].col)->set_space((yyvsp[-3].n)); (yyval.col) = (yyvsp[-1].col); }
1880 : #line 1881 "src/preproc/eqn/eqn.cpp"
1881 0 : break;
1882 :
1883 0 : case 67: /* column: COL column_arg */
1884 : #line 312 "../src/preproc/eqn/eqn.ypp"
1885 : { (yyvsp[0].col)->set_alignment(CENTER_ALIGN); (yyval.col) = (yyvsp[0].col); }
1886 : #line 1887 "src/preproc/eqn/eqn.cpp"
1887 0 : break;
1888 :
1889 0 : case 68: /* column: LCOL column_arg */
1890 : #line 314 "../src/preproc/eqn/eqn.ypp"
1891 : { (yyvsp[0].col)->set_alignment(LEFT_ALIGN); (yyval.col) = (yyvsp[0].col); }
1892 : #line 1893 "src/preproc/eqn/eqn.cpp"
1893 0 : break;
1894 :
1895 0 : case 69: /* column: RCOL column_arg */
1896 : #line 316 "../src/preproc/eqn/eqn.ypp"
1897 : { (yyvsp[0].col)->set_alignment(RIGHT_ALIGN); (yyval.col) = (yyvsp[0].col); }
1898 : #line 1899 "src/preproc/eqn/eqn.cpp"
1899 0 : break;
1900 :
1901 0 : case 70: /* column: CCOL column_arg */
1902 : #line 318 "../src/preproc/eqn/eqn.ypp"
1903 : { (yyvsp[0].col)->set_alignment(CENTER_ALIGN); (yyval.col) = (yyvsp[0].col); }
1904 : #line 1905 "src/preproc/eqn/eqn.cpp"
1905 0 : break;
1906 :
1907 16 : case 71: /* text: TEXT */
1908 : #line 322 "../src/preproc/eqn/eqn.ypp"
1909 : { (yyval.str) = (yyvsp[0].str); }
1910 : #line 1911 "src/preproc/eqn/eqn.cpp"
1911 16 : break;
1912 :
1913 58 : case 72: /* text: QUOTED_TEXT */
1914 : #line 324 "../src/preproc/eqn/eqn.ypp"
1915 : { (yyval.str) = (yyvsp[0].str); }
1916 : #line 1917 "src/preproc/eqn/eqn.cpp"
1917 58 : break;
1918 :
1919 0 : case 73: /* delim: text */
1920 : #line 329 "../src/preproc/eqn/eqn.ypp"
1921 : { (yyval.str) = (yyvsp[0].str); }
1922 : #line 1923 "src/preproc/eqn/eqn.cpp"
1923 0 : break;
1924 :
1925 3 : case 74: /* delim: '{' */
1926 : #line 331 "../src/preproc/eqn/eqn.ypp"
1927 : { (yyval.str) = strsave("{"); }
1928 : #line 1929 "src/preproc/eqn/eqn.cpp"
1929 3 : break;
1930 :
1931 0 : case 75: /* delim: '}' */
1932 : #line 333 "../src/preproc/eqn/eqn.ypp"
1933 : { (yyval.str) = strsave("}"); }
1934 : #line 1935 "src/preproc/eqn/eqn.cpp"
1935 0 : break;
1936 :
1937 :
1938 : #line 1939 "src/preproc/eqn/eqn.cpp"
1939 :
1940 3888 : default: break;
1941 : }
1942 : /* User semantic actions sometimes alter yychar, and that requires
1943 : that yytoken be updated with the new translation. We take the
1944 : approach of translating immediately before every use of yytoken.
1945 : One alternative is translating here after every semantic action,
1946 : but that translation would be missed if the semantic action invokes
1947 : YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1948 : if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
1949 : incorrect destructor might then be invoked immediately. In the
1950 : case of YYERROR or YYBACKUP, subsequent parser actions might lead
1951 : to an incorrect destructor call or verbose syntax error message
1952 : before the lookahead is translated. */
1953 : YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1954 :
1955 10917 : YYPOPSTACK (yylen);
1956 10917 : yylen = 0;
1957 :
1958 10917 : *++yyvsp = yyval;
1959 :
1960 : /* Now 'shift' the result of the reduction. Determine what state
1961 : that goes to, based on the state we popped back to and the rule
1962 : number reduced by. */
1963 : {
1964 10917 : const int yylhs = yyr1[yyn] - YYNTOKENS;
1965 10917 : const int yyi = yypgoto[yylhs] + *yyssp;
1966 4507 : yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1967 12888 : ? yytable[yyi]
1968 8946 : : yydefgoto[yylhs]);
1969 : }
1970 :
1971 10917 : goto yynewstate;
1972 :
1973 :
1974 : /*--------------------------------------.
1975 : | yyerrlab -- here on detecting error. |
1976 : `--------------------------------------*/
1977 0 : yyerrlab:
1978 : /* Make sure we have latest lookahead translation. See comments at
1979 : user semantic actions for why this is necessary. */
1980 0 : yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1981 : /* If not already recovering from an error, report this error. */
1982 0 : if (!yyerrstatus)
1983 : {
1984 0 : ++yynerrs;
1985 0 : yyerror (YY_("syntax error"));
1986 : }
1987 :
1988 0 : if (yyerrstatus == 3)
1989 : {
1990 : /* If just tried and failed to reuse lookahead token after an
1991 : error, discard it. */
1992 :
1993 0 : if (yychar <= YYEOF)
1994 : {
1995 : /* Return failure if at end of input. */
1996 0 : if (yychar == YYEOF)
1997 0 : YYABORT;
1998 : }
1999 : else
2000 : {
2001 0 : yydestruct ("Error: discarding",
2002 : yytoken, &yylval);
2003 0 : yychar = YYEMPTY;
2004 : }
2005 : }
2006 :
2007 : /* Else will try to reuse lookahead token after shifting the error
2008 : token. */
2009 0 : goto yyerrlab1;
2010 :
2011 :
2012 : /*---------------------------------------------------.
2013 : | yyerrorlab -- error raised explicitly by YYERROR. |
2014 : `---------------------------------------------------*/
2015 : yyerrorlab:
2016 : /* Pacify compilers when the user code never invokes YYERROR and the
2017 : label yyerrorlab therefore never appears in user code. */
2018 : if (0)
2019 : YYERROR;
2020 :
2021 : /* Do not reclaim the symbols of the rule whose action triggered
2022 : this YYERROR. */
2023 : YYPOPSTACK (yylen);
2024 : yylen = 0;
2025 : YY_STACK_PRINT (yyss, yyssp);
2026 : yystate = *yyssp;
2027 : goto yyerrlab1;
2028 :
2029 :
2030 : /*-------------------------------------------------------------.
2031 : | yyerrlab1 -- common code for both syntax error and YYERROR. |
2032 : `-------------------------------------------------------------*/
2033 0 : yyerrlab1:
2034 0 : yyerrstatus = 3; /* Each real token shifted decrements this. */
2035 :
2036 : /* Pop stack until we find a state that shifts the error token. */
2037 : for (;;)
2038 : {
2039 0 : yyn = yypact[yystate];
2040 0 : if (!yypact_value_is_default (yyn))
2041 : {
2042 0 : yyn += YYSYMBOL_YYerror;
2043 0 : if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
2044 : {
2045 0 : yyn = yytable[yyn];
2046 0 : if (0 < yyn)
2047 0 : break;
2048 : }
2049 : }
2050 :
2051 : /* Pop the current state because it cannot handle the error token. */
2052 0 : if (yyssp == yyss)
2053 0 : YYABORT;
2054 :
2055 :
2056 0 : yydestruct ("Error: popping",
2057 0 : YY_ACCESSING_SYMBOL (yystate), yyvsp);
2058 0 : YYPOPSTACK (1);
2059 0 : yystate = *yyssp;
2060 : YY_STACK_PRINT (yyss, yyssp);
2061 : }
2062 :
2063 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2064 0 : *++yyvsp = yylval;
2065 : YY_IGNORE_MAYBE_UNINITIALIZED_END
2066 :
2067 :
2068 : /* Shift the error token. */
2069 : YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
2070 :
2071 0 : yystate = yyn;
2072 0 : goto yynewstate;
2073 :
2074 :
2075 : /*-------------------------------------.
2076 : | yyacceptlab -- YYACCEPT comes here. |
2077 : `-------------------------------------*/
2078 4072 : yyacceptlab:
2079 4072 : yyresult = 0;
2080 4072 : goto yyreturn;
2081 :
2082 :
2083 : /*-----------------------------------.
2084 : | yyabortlab -- YYABORT comes here. |
2085 : `-----------------------------------*/
2086 0 : yyabortlab:
2087 0 : yyresult = 1;
2088 0 : goto yyreturn;
2089 :
2090 :
2091 : #if !defined yyoverflow
2092 : /*-------------------------------------------------.
2093 : | yyexhaustedlab -- memory exhaustion comes here. |
2094 : `-------------------------------------------------*/
2095 0 : yyexhaustedlab:
2096 0 : yyerror (YY_("memory exhausted"));
2097 0 : yyresult = 2;
2098 0 : goto yyreturn;
2099 : #endif
2100 :
2101 :
2102 : /*-------------------------------------------------------.
2103 : | yyreturn -- parsing is finished, clean up and return. |
2104 : `-------------------------------------------------------*/
2105 4072 : yyreturn:
2106 4072 : if (yychar != YYEMPTY)
2107 : {
2108 : /* Make sure we have latest lookahead translation. See comments at
2109 : user semantic actions for why this is necessary. */
2110 0 : yytoken = YYTRANSLATE (yychar);
2111 0 : yydestruct ("Cleanup: discarding lookahead",
2112 : yytoken, &yylval);
2113 : }
2114 : /* Do not reclaim the symbols of the rule whose action triggered
2115 : this YYABORT or YYACCEPT. */
2116 4072 : YYPOPSTACK (yylen);
2117 : YY_STACK_PRINT (yyss, yyssp);
2118 12216 : while (yyssp != yyss)
2119 : {
2120 8144 : yydestruct ("Cleanup: popping",
2121 8144 : YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
2122 8144 : YYPOPSTACK (1);
2123 : }
2124 : #ifndef yyoverflow
2125 4072 : if (yyss != yyssa)
2126 0 : YYSTACK_FREE (yyss);
2127 : #endif
2128 :
2129 4072 : return yyresult;
2130 : }
2131 :
2132 : #line 336 "../src/preproc/eqn/eqn.ypp"
2133 :
|