1 /* A Bison parser, made by GNU Bison 3.7.4. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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 30704
50
51 /* Bison version string. */
52 #define YYBISON_VERSION "3.7.4"
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 /* Substitute the variable and function names. */
68 #define yyparse itex2MML_yyparse
69 #define yylex itex2MML_yylex
70 #define yyerror itex2MML_yyerror
71 #define yydebug itex2MML_yydebug
72 #define yynerrs itex2MML_yynerrs
73 #define yylval itex2MML_yylval
74 #define yychar itex2MML_yychar
75
76 /* First part of user prologue. */
77 #line 7 "itex2MML.y"
78
79 #include <stdio.h>
80 #include <string.h>
81 #include <stdlib.h>
82
83 #include "itex2MML.h"
84
85 #define YYSTYPE char *
86 #define YYPARSE_PARAM_TYPE char **
87 #define YYPARSE_PARAM ret_str
88
89 #define yytext itex2MML_yytext
90
91 extern int yylex ();
92
93 extern char * yytext;
94
itex2MML_default_error(const char * msg)95 static void itex2MML_default_error (const char * msg)
96 {
97 if (msg)
98 fprintf(stderr, "Line: %d Error: %s\n", itex2MML_lineno, msg);
99 }
100
101 void (*itex2MML_error) (const char * msg) = itex2MML_default_error;
102
yyerror(char ** ret_str,char * s)103 static void yyerror (char **ret_str, char * s)
104 {
105 char * msg = itex2MML_copy3 (s, " at token ", yytext);
106 if (itex2MML_error)
107 (*itex2MML_error) (msg);
108 itex2MML_free_string (msg);
109 }
110
111 /* Note: If length is 0, then buffer is treated like a string; otherwise only length bytes are written.
112 */
itex2MML_default_write(const char * buffer,unsigned long length)113 static void itex2MML_default_write (const char * buffer, unsigned long length)
114 {
115 if (buffer)
116 {
117 if (length)
118 fwrite (buffer, 1, length, stdout);
119 else
120 fputs (buffer, stdout);
121 }
122 }
123
itex2MML_default_write_mathml(const char * mathml)124 static void itex2MML_default_write_mathml (const char * mathml)
125 {
126 if (itex2MML_write)
127 (*itex2MML_write) (mathml, 0);
128 }
129
130 #ifdef itex2MML_CAPTURE
131 static char * itex2MML_output_string = "" ;
132
itex2MML_output()133 const char * itex2MML_output ()
134 {
135 char * copy = (char *) malloc((itex2MML_output_string ? strlen(itex2MML_output_string) : 0) + 1);
136 if (copy)
137 {
138 if (itex2MML_output_string)
139 {
140 strcpy(copy, itex2MML_output_string);
141 if (*itex2MML_output_string != '\0')
142 free(itex2MML_output_string);
143 }
144 else
145 copy[0] = 0;
146 itex2MML_output_string = "";
147 }
148 return copy;
149 }
150
itex2MML_capture(const char * buffer,unsigned long length)151 static void itex2MML_capture (const char * buffer, unsigned long length)
152 {
153 if (buffer)
154 {
155 if (length)
156 {
157 unsigned long first_length = itex2MML_output_string ? strlen(itex2MML_output_string) : 0;
158 char * copy = (char *) malloc(first_length + length + 1);
159 if (copy)
160 {
161 if (itex2MML_output_string)
162 {
163 strcpy(copy, itex2MML_output_string);
164 if (*itex2MML_output_string != '\0')
165 free(itex2MML_output_string);
166 }
167 else
168 copy[0] = 0;
169 strncat(copy, buffer, length);
170 itex2MML_output_string = copy;
171 }
172 }
173 else
174 {
175 char * copy = itex2MML_copy2(itex2MML_output_string, buffer);
176 if (*itex2MML_output_string != '\0')
177 free(itex2MML_output_string);
178 itex2MML_output_string = copy;
179 }
180 }
181 }
182
itex2MML_capture_mathml(const char * buffer)183 static void itex2MML_capture_mathml (const char * buffer)
184 {
185 char * temp = itex2MML_copy2(itex2MML_output_string, buffer);
186 if (*itex2MML_output_string != '\0')
187 free(itex2MML_output_string);
188 itex2MML_output_string = temp;
189 }
190 void (*itex2MML_write) (const char * buffer, unsigned long length) = itex2MML_capture;
191 void (*itex2MML_write_mathml) (const char * mathml) = itex2MML_capture_mathml;
192 #else
193 void (*itex2MML_write) (const char * buffer, unsigned long length) = itex2MML_default_write;
194 void (*itex2MML_write_mathml) (const char * mathml) = itex2MML_default_write_mathml;
195 #endif
196
197 char * itex2MML_empty_string = "";
198
199 /* Create a copy of a string, adding space for extra chars
200 */
itex2MML_copy_string_extra(const char * str,unsigned extra)201 char * itex2MML_copy_string_extra (const char * str, unsigned extra)
202 {
203 char * copy = (char *) malloc(extra + (str ? strlen (str) : 0) + 1);
204 if (copy)
205 {
206 if (str)
207 strcpy(copy, str);
208 else
209 copy[0] = 0;
210 }
211 return copy ? copy : itex2MML_empty_string;
212 }
213
214 /* Create a copy of a string, appending two strings
215 */
itex2MML_copy3(const char * first,const char * second,const char * third)216 char * itex2MML_copy3 (const char * first, const char * second, const char * third)
217 {
218 int first_length = first ? strlen( first) : 0;
219 int second_length = second ? strlen(second) : 0;
220 int third_length = third ? strlen( third) : 0;
221
222 char * copy = (char *) malloc(first_length + second_length + third_length + 1);
223
224 if (copy)
225 {
226 if (first)
227 strcpy(copy, first);
228 else
229 copy[0] = 0;
230
231 if (second) strcat(copy, second);
232 if ( third) strcat(copy, third);
233 }
234 return copy ? copy : itex2MML_empty_string;
235 }
236
237 /* Create a copy of a string, appending a second string
238 */
itex2MML_copy2(const char * first,const char * second)239 char * itex2MML_copy2 (const char * first, const char * second)
240 {
241 return itex2MML_copy3(first, second, 0);
242 }
243
244 /* Create a copy of a string
245 */
itex2MML_copy_string(const char * str)246 char * itex2MML_copy_string (const char * str)
247 {
248 return itex2MML_copy3(str, 0, 0);
249 }
250
251 /* Create a copy of a string, escaping unsafe characters for XML
252 */
itex2MML_copy_escaped(const char * str)253 char * itex2MML_copy_escaped (const char * str)
254 {
255 unsigned long length = 0;
256
257 const char * ptr1 = str;
258
259 char * ptr2 = 0;
260 char * copy = 0;
261
262 if ( str == 0) return itex2MML_empty_string;
263 if (*str == 0) return itex2MML_empty_string;
264
265 while (*ptr1)
266 {
267 switch (*ptr1)
268 {
269 case '<': /* < */
270 case '>': /* > */
271 length += 4;
272 break;
273 case '&': /* & */
274 length += 5;
275 break;
276 case '\'': /* ' */
277 case '"': /* " */
278 case '-': /* - */
279 length += 6;
280 break;
281 default:
282 length += 1;
283 break;
284 }
285 ++ptr1;
286 }
287
288 copy = (char *) malloc (length + 1);
289
290 if (copy)
291 {
292 ptr1 = str;
293 ptr2 = copy;
294
295 while (*ptr1)
296 {
297 switch (*ptr1)
298 {
299 case '<':
300 strcpy (ptr2, "<");
301 ptr2 += 4;
302 break;
303 case '>':
304 strcpy (ptr2, ">");
305 ptr2 += 4;
306 break;
307 case '&': /* & */
308 strcpy (ptr2, "&");
309 ptr2 += 5;
310 break;
311 case '\'': /* ' */
312 strcpy (ptr2, "'");
313 ptr2 += 6;
314 break;
315 case '"': /* " */
316 strcpy (ptr2, """);
317 ptr2 += 6;
318 break;
319 case '-': /* - */
320 strcpy (ptr2, "-");
321 ptr2 += 6;
322 break;
323 default:
324 *ptr2++ = *ptr1;
325 break;
326 }
327 ++ptr1;
328 }
329 *ptr2 = 0;
330 }
331 return copy ? copy : itex2MML_empty_string;
332 }
333
334 /* Create a hex character reference string corresponding to code
335 */
itex2MML_character_reference(unsigned long int code)336 char * itex2MML_character_reference (unsigned long int code)
337 {
338 #define ENTITY_LENGTH 10
339 char * entity = (char *) malloc(ENTITY_LENGTH);
340 sprintf(entity, "&#x%05lx;", code);
341 return entity;
342 }
343
itex2MML_free_string(char * str)344 void itex2MML_free_string (char * str)
345 {
346 if (str && str != itex2MML_empty_string)
347 free(str);
348 }
349
350
351 #line 352 "y.tab.c"
352
353 # ifndef YY_CAST
354 # ifdef __cplusplus
355 # define YY_CAST(Type, Val) static_cast<Type> (Val)
356 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
357 # else
358 # define YY_CAST(Type, Val) ((Type) (Val))
359 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
360 # endif
361 # endif
362 # ifndef YY_NULLPTR
363 # if defined __cplusplus
364 # if 201103L <= __cplusplus
365 # define YY_NULLPTR nullptr
366 # else
367 # define YY_NULLPTR 0
368 # endif
369 # else
370 # define YY_NULLPTR ((void*)0)
371 # endif
372 # endif
373
374 /* Use api.header.include to #include this header
375 instead of duplicating it here. */
376 #ifndef YY_ITEX2MML_YY_Y_TAB_H_INCLUDED
377 # define YY_ITEX2MML_YY_Y_TAB_H_INCLUDED
378 /* Debug traces. */
379 #ifndef YYDEBUG
380 # define YYDEBUG 0
381 #endif
382 #if YYDEBUG
383 extern int itex2MML_yydebug;
384 #endif
385
386 /* Token kinds. */
387 #ifndef YYTOKENTYPE
388 # define YYTOKENTYPE
389 enum yytokentype
390 {
391 YYEMPTY = -2,
392 YYEOF = 0, /* "end of file" */
393 YYerror = 256, /* error */
394 YYUNDEF = 257, /* "invalid token" */
395 TEXOVER = 258, /* TEXOVER */
396 TEXATOP = 259, /* TEXATOP */
397 CHAR = 260, /* CHAR */
398 STARTMATH = 261, /* STARTMATH */
399 STARTDMATH = 262, /* STARTDMATH */
400 ENDMATH = 263, /* ENDMATH */
401 MI = 264, /* MI */
402 MIB = 265, /* MIB */
403 MN = 266, /* MN */
404 MO = 267, /* MO */
405 SUP = 268, /* SUP */
406 SUB = 269, /* SUB */
407 MROWOPEN = 270, /* MROWOPEN */
408 MROWCLOSE = 271, /* MROWCLOSE */
409 LEFT = 272, /* LEFT */
410 RIGHT = 273, /* RIGHT */
411 BIG = 274, /* BIG */
412 BBIG = 275, /* BBIG */
413 BIGG = 276, /* BIGG */
414 BBIGG = 277, /* BBIGG */
415 BIGL = 278, /* BIGL */
416 BBIGL = 279, /* BBIGL */
417 BIGGL = 280, /* BIGGL */
418 BBIGGL = 281, /* BBIGGL */
419 FRAC = 282, /* FRAC */
420 TFRAC = 283, /* TFRAC */
421 OPERATORNAME = 284, /* OPERATORNAME */
422 MATHOP = 285, /* MATHOP */
423 MATHBIN = 286, /* MATHBIN */
424 MATHREL = 287, /* MATHREL */
425 MOP = 288, /* MOP */
426 MOL = 289, /* MOL */
427 MOLL = 290, /* MOLL */
428 MOF = 291, /* MOF */
429 MOR = 292, /* MOR */
430 PERIODDELIM = 293, /* PERIODDELIM */
431 OTHERDELIM = 294, /* OTHERDELIM */
432 LEFTDELIM = 295, /* LEFTDELIM */
433 RIGHTDELIM = 296, /* RIGHTDELIM */
434 MOS = 297, /* MOS */
435 MOB = 298, /* MOB */
436 SQRT = 299, /* SQRT */
437 ROOT = 300, /* ROOT */
438 BINOM = 301, /* BINOM */
439 TBINOM = 302, /* TBINOM */
440 UNDER = 303, /* UNDER */
441 OVER = 304, /* OVER */
442 OVERBRACE = 305, /* OVERBRACE */
443 UNDERLINE = 306, /* UNDERLINE */
444 UNDERBRACE = 307, /* UNDERBRACE */
445 UNDEROVER = 308, /* UNDEROVER */
446 TENSOR = 309, /* TENSOR */
447 MULTI = 310, /* MULTI */
448 ARRAYALIGN = 311, /* ARRAYALIGN */
449 COLUMNALIGN = 312, /* COLUMNALIGN */
450 ARRAY = 313, /* ARRAY */
451 COLSEP = 314, /* COLSEP */
452 ROWSEP = 315, /* ROWSEP */
453 ARRAYOPTS = 316, /* ARRAYOPTS */
454 COLLAYOUT = 317, /* COLLAYOUT */
455 COLALIGN = 318, /* COLALIGN */
456 ROWALIGN = 319, /* ROWALIGN */
457 ALIGN = 320, /* ALIGN */
458 EQROWS = 321, /* EQROWS */
459 EQCOLS = 322, /* EQCOLS */
460 ROWLINES = 323, /* ROWLINES */
461 COLLINES = 324, /* COLLINES */
462 FRAME = 325, /* FRAME */
463 PADDING = 326, /* PADDING */
464 ATTRLIST = 327, /* ATTRLIST */
465 ITALICS = 328, /* ITALICS */
466 BOLD = 329, /* BOLD */
467 BOXED = 330, /* BOXED */
468 SLASHED = 331, /* SLASHED */
469 RM = 332, /* RM */
470 BB = 333, /* BB */
471 ST = 334, /* ST */
472 END = 335, /* END */
473 BBLOWERCHAR = 336, /* BBLOWERCHAR */
474 BBUPPERCHAR = 337, /* BBUPPERCHAR */
475 BBDIGIT = 338, /* BBDIGIT */
476 CALCHAR = 339, /* CALCHAR */
477 FRAKCHAR = 340, /* FRAKCHAR */
478 CAL = 341, /* CAL */
479 FRAK = 342, /* FRAK */
480 CLAP = 343, /* CLAP */
481 LLAP = 344, /* LLAP */
482 RLAP = 345, /* RLAP */
483 ROWOPTS = 346, /* ROWOPTS */
484 TEXTSIZE = 347, /* TEXTSIZE */
485 SCSIZE = 348, /* SCSIZE */
486 SCSCSIZE = 349, /* SCSCSIZE */
487 DISPLAY = 350, /* DISPLAY */
488 TEXTSTY = 351, /* TEXTSTY */
489 TEXTBOX = 352, /* TEXTBOX */
490 TEXTSTRING = 353, /* TEXTSTRING */
491 XMLSTRING = 354, /* XMLSTRING */
492 CELLOPTS = 355, /* CELLOPTS */
493 ROWSPAN = 356, /* ROWSPAN */
494 COLSPAN = 357, /* COLSPAN */
495 THINSPACE = 358, /* THINSPACE */
496 MEDSPACE = 359, /* MEDSPACE */
497 THICKSPACE = 360, /* THICKSPACE */
498 QUAD = 361, /* QUAD */
499 QQUAD = 362, /* QQUAD */
500 NEGSPACE = 363, /* NEGSPACE */
501 PHANTOM = 364, /* PHANTOM */
502 HREF = 365, /* HREF */
503 UNKNOWNCHAR = 366, /* UNKNOWNCHAR */
504 EMPTYMROW = 367, /* EMPTYMROW */
505 STATLINE = 368, /* STATLINE */
506 TOOLTIP = 369, /* TOOLTIP */
507 TOGGLE = 370, /* TOGGLE */
508 FGHIGHLIGHT = 371, /* FGHIGHLIGHT */
509 BGHIGHLIGHT = 372, /* BGHIGHLIGHT */
510 SPACE = 373, /* SPACE */
511 INTONE = 374, /* INTONE */
512 INTTWO = 375, /* INTTWO */
513 INTTHREE = 376, /* INTTHREE */
514 BAR = 377, /* BAR */
515 WIDEBAR = 378, /* WIDEBAR */
516 VEC = 379, /* VEC */
517 WIDEVEC = 380, /* WIDEVEC */
518 HAT = 381, /* HAT */
519 WIDEHAT = 382, /* WIDEHAT */
520 CHECK = 383, /* CHECK */
521 WIDECHECK = 384, /* WIDECHECK */
522 TILDE = 385, /* TILDE */
523 WIDETILDE = 386, /* WIDETILDE */
524 DOT = 387, /* DOT */
525 DDOT = 388, /* DDOT */
526 DDDOT = 389, /* DDDOT */
527 DDDDOT = 390, /* DDDDOT */
528 UNARYMINUS = 391, /* UNARYMINUS */
529 UNARYPLUS = 392, /* UNARYPLUS */
530 BEGINENV = 393, /* BEGINENV */
531 ENDENV = 394, /* ENDENV */
532 MATRIX = 395, /* MATRIX */
533 PMATRIX = 396, /* PMATRIX */
534 BMATRIX = 397, /* BMATRIX */
535 BBMATRIX = 398, /* BBMATRIX */
536 VMATRIX = 399, /* VMATRIX */
537 VVMATRIX = 400, /* VVMATRIX */
538 SVG = 401, /* SVG */
539 ENDSVG = 402, /* ENDSVG */
540 SMALLMATRIX = 403, /* SMALLMATRIX */
541 CASES = 404, /* CASES */
542 ALIGNED = 405, /* ALIGNED */
543 GATHERED = 406, /* GATHERED */
544 SUBSTACK = 407, /* SUBSTACK */
545 PMOD = 408, /* PMOD */
546 RMCHAR = 409, /* RMCHAR */
547 COLOR = 410, /* COLOR */
548 BGCOLOR = 411, /* BGCOLOR */
549 XARROW = 412, /* XARROW */
550 OPTARGOPEN = 413, /* OPTARGOPEN */
551 OPTARGCLOSE = 414, /* OPTARGCLOSE */
552 ITEXNUM = 415, /* ITEXNUM */
553 RAISEBOX = 416, /* RAISEBOX */
554 NEG = 417 /* NEG */
555 };
556 typedef enum yytokentype yytoken_kind_t;
557 #endif
558 /* Token kinds. */
559 #define YYEMPTY -2
560 #define YYEOF 0
561 #define YYerror 256
562 #define YYUNDEF 257
563 #define TEXOVER 258
564 #define TEXATOP 259
565 #define CHAR 260
566 #define STARTMATH 261
567 #define STARTDMATH 262
568 #define ENDMATH 263
569 #define MI 264
570 #define MIB 265
571 #define MN 266
572 #define MO 267
573 #define SUP 268
574 #define SUB 269
575 #define MROWOPEN 270
576 #define MROWCLOSE 271
577 #define LEFT 272
578 #define RIGHT 273
579 #define BIG 274
580 #define BBIG 275
581 #define BIGG 276
582 #define BBIGG 277
583 #define BIGL 278
584 #define BBIGL 279
585 #define BIGGL 280
586 #define BBIGGL 281
587 #define FRAC 282
588 #define TFRAC 283
589 #define OPERATORNAME 284
590 #define MATHOP 285
591 #define MATHBIN 286
592 #define MATHREL 287
593 #define MOP 288
594 #define MOL 289
595 #define MOLL 290
596 #define MOF 291
597 #define MOR 292
598 #define PERIODDELIM 293
599 #define OTHERDELIM 294
600 #define LEFTDELIM 295
601 #define RIGHTDELIM 296
602 #define MOS 297
603 #define MOB 298
604 #define SQRT 299
605 #define ROOT 300
606 #define BINOM 301
607 #define TBINOM 302
608 #define UNDER 303
609 #define OVER 304
610 #define OVERBRACE 305
611 #define UNDERLINE 306
612 #define UNDERBRACE 307
613 #define UNDEROVER 308
614 #define TENSOR 309
615 #define MULTI 310
616 #define ARRAYALIGN 311
617 #define COLUMNALIGN 312
618 #define ARRAY 313
619 #define COLSEP 314
620 #define ROWSEP 315
621 #define ARRAYOPTS 316
622 #define COLLAYOUT 317
623 #define COLALIGN 318
624 #define ROWALIGN 319
625 #define ALIGN 320
626 #define EQROWS 321
627 #define EQCOLS 322
628 #define ROWLINES 323
629 #define COLLINES 324
630 #define FRAME 325
631 #define PADDING 326
632 #define ATTRLIST 327
633 #define ITALICS 328
634 #define BOLD 329
635 #define BOXED 330
636 #define SLASHED 331
637 #define RM 332
638 #define BB 333
639 #define ST 334
640 #define END 335
641 #define BBLOWERCHAR 336
642 #define BBUPPERCHAR 337
643 #define BBDIGIT 338
644 #define CALCHAR 339
645 #define FRAKCHAR 340
646 #define CAL 341
647 #define FRAK 342
648 #define CLAP 343
649 #define LLAP 344
650 #define RLAP 345
651 #define ROWOPTS 346
652 #define TEXTSIZE 347
653 #define SCSIZE 348
654 #define SCSCSIZE 349
655 #define DISPLAY 350
656 #define TEXTSTY 351
657 #define TEXTBOX 352
658 #define TEXTSTRING 353
659 #define XMLSTRING 354
660 #define CELLOPTS 355
661 #define ROWSPAN 356
662 #define COLSPAN 357
663 #define THINSPACE 358
664 #define MEDSPACE 359
665 #define THICKSPACE 360
666 #define QUAD 361
667 #define QQUAD 362
668 #define NEGSPACE 363
669 #define PHANTOM 364
670 #define HREF 365
671 #define UNKNOWNCHAR 366
672 #define EMPTYMROW 367
673 #define STATLINE 368
674 #define TOOLTIP 369
675 #define TOGGLE 370
676 #define FGHIGHLIGHT 371
677 #define BGHIGHLIGHT 372
678 #define SPACE 373
679 #define INTONE 374
680 #define INTTWO 375
681 #define INTTHREE 376
682 #define BAR 377
683 #define WIDEBAR 378
684 #define VEC 379
685 #define WIDEVEC 380
686 #define HAT 381
687 #define WIDEHAT 382
688 #define CHECK 383
689 #define WIDECHECK 384
690 #define TILDE 385
691 #define WIDETILDE 386
692 #define DOT 387
693 #define DDOT 388
694 #define DDDOT 389
695 #define DDDDOT 390
696 #define UNARYMINUS 391
697 #define UNARYPLUS 392
698 #define BEGINENV 393
699 #define ENDENV 394
700 #define MATRIX 395
701 #define PMATRIX 396
702 #define BMATRIX 397
703 #define BBMATRIX 398
704 #define VMATRIX 399
705 #define VVMATRIX 400
706 #define SVG 401
707 #define ENDSVG 402
708 #define SMALLMATRIX 403
709 #define CASES 404
710 #define ALIGNED 405
711 #define GATHERED 406
712 #define SUBSTACK 407
713 #define PMOD 408
714 #define RMCHAR 409
715 #define COLOR 410
716 #define BGCOLOR 411
717 #define XARROW 412
718 #define OPTARGOPEN 413
719 #define OPTARGCLOSE 414
720 #define ITEXNUM 415
721 #define RAISEBOX 416
722 #define NEG 417
723
724 /* Value type. */
725 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
726 typedef int YYSTYPE;
727 # define YYSTYPE_IS_TRIVIAL 1
728 # define YYSTYPE_IS_DECLARED 1
729 #endif
730
731
732 extern YYSTYPE itex2MML_yylval;
733
734 int itex2MML_yyparse (char **ret_str);
735
736 #endif /* !YY_ITEX2MML_YY_Y_TAB_H_INCLUDED */
737 /* Symbol kind. */
738 enum yysymbol_kind_t
739 {
740 YYSYMBOL_YYEMPTY = -2,
741 YYSYMBOL_YYEOF = 0, /* "end of file" */
742 YYSYMBOL_YYerror = 1, /* error */
743 YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
744 YYSYMBOL_TEXOVER = 3, /* TEXOVER */
745 YYSYMBOL_TEXATOP = 4, /* TEXATOP */
746 YYSYMBOL_CHAR = 5, /* CHAR */
747 YYSYMBOL_STARTMATH = 6, /* STARTMATH */
748 YYSYMBOL_STARTDMATH = 7, /* STARTDMATH */
749 YYSYMBOL_ENDMATH = 8, /* ENDMATH */
750 YYSYMBOL_MI = 9, /* MI */
751 YYSYMBOL_MIB = 10, /* MIB */
752 YYSYMBOL_MN = 11, /* MN */
753 YYSYMBOL_MO = 12, /* MO */
754 YYSYMBOL_SUP = 13, /* SUP */
755 YYSYMBOL_SUB = 14, /* SUB */
756 YYSYMBOL_MROWOPEN = 15, /* MROWOPEN */
757 YYSYMBOL_MROWCLOSE = 16, /* MROWCLOSE */
758 YYSYMBOL_LEFT = 17, /* LEFT */
759 YYSYMBOL_RIGHT = 18, /* RIGHT */
760 YYSYMBOL_BIG = 19, /* BIG */
761 YYSYMBOL_BBIG = 20, /* BBIG */
762 YYSYMBOL_BIGG = 21, /* BIGG */
763 YYSYMBOL_BBIGG = 22, /* BBIGG */
764 YYSYMBOL_BIGL = 23, /* BIGL */
765 YYSYMBOL_BBIGL = 24, /* BBIGL */
766 YYSYMBOL_BIGGL = 25, /* BIGGL */
767 YYSYMBOL_BBIGGL = 26, /* BBIGGL */
768 YYSYMBOL_FRAC = 27, /* FRAC */
769 YYSYMBOL_TFRAC = 28, /* TFRAC */
770 YYSYMBOL_OPERATORNAME = 29, /* OPERATORNAME */
771 YYSYMBOL_MATHOP = 30, /* MATHOP */
772 YYSYMBOL_MATHBIN = 31, /* MATHBIN */
773 YYSYMBOL_MATHREL = 32, /* MATHREL */
774 YYSYMBOL_MOP = 33, /* MOP */
775 YYSYMBOL_MOL = 34, /* MOL */
776 YYSYMBOL_MOLL = 35, /* MOLL */
777 YYSYMBOL_MOF = 36, /* MOF */
778 YYSYMBOL_MOR = 37, /* MOR */
779 YYSYMBOL_PERIODDELIM = 38, /* PERIODDELIM */
780 YYSYMBOL_OTHERDELIM = 39, /* OTHERDELIM */
781 YYSYMBOL_LEFTDELIM = 40, /* LEFTDELIM */
782 YYSYMBOL_RIGHTDELIM = 41, /* RIGHTDELIM */
783 YYSYMBOL_MOS = 42, /* MOS */
784 YYSYMBOL_MOB = 43, /* MOB */
785 YYSYMBOL_SQRT = 44, /* SQRT */
786 YYSYMBOL_ROOT = 45, /* ROOT */
787 YYSYMBOL_BINOM = 46, /* BINOM */
788 YYSYMBOL_TBINOM = 47, /* TBINOM */
789 YYSYMBOL_UNDER = 48, /* UNDER */
790 YYSYMBOL_OVER = 49, /* OVER */
791 YYSYMBOL_OVERBRACE = 50, /* OVERBRACE */
792 YYSYMBOL_UNDERLINE = 51, /* UNDERLINE */
793 YYSYMBOL_UNDERBRACE = 52, /* UNDERBRACE */
794 YYSYMBOL_UNDEROVER = 53, /* UNDEROVER */
795 YYSYMBOL_TENSOR = 54, /* TENSOR */
796 YYSYMBOL_MULTI = 55, /* MULTI */
797 YYSYMBOL_ARRAYALIGN = 56, /* ARRAYALIGN */
798 YYSYMBOL_COLUMNALIGN = 57, /* COLUMNALIGN */
799 YYSYMBOL_ARRAY = 58, /* ARRAY */
800 YYSYMBOL_COLSEP = 59, /* COLSEP */
801 YYSYMBOL_ROWSEP = 60, /* ROWSEP */
802 YYSYMBOL_ARRAYOPTS = 61, /* ARRAYOPTS */
803 YYSYMBOL_COLLAYOUT = 62, /* COLLAYOUT */
804 YYSYMBOL_COLALIGN = 63, /* COLALIGN */
805 YYSYMBOL_ROWALIGN = 64, /* ROWALIGN */
806 YYSYMBOL_ALIGN = 65, /* ALIGN */
807 YYSYMBOL_EQROWS = 66, /* EQROWS */
808 YYSYMBOL_EQCOLS = 67, /* EQCOLS */
809 YYSYMBOL_ROWLINES = 68, /* ROWLINES */
810 YYSYMBOL_COLLINES = 69, /* COLLINES */
811 YYSYMBOL_FRAME = 70, /* FRAME */
812 YYSYMBOL_PADDING = 71, /* PADDING */
813 YYSYMBOL_ATTRLIST = 72, /* ATTRLIST */
814 YYSYMBOL_ITALICS = 73, /* ITALICS */
815 YYSYMBOL_BOLD = 74, /* BOLD */
816 YYSYMBOL_BOXED = 75, /* BOXED */
817 YYSYMBOL_SLASHED = 76, /* SLASHED */
818 YYSYMBOL_RM = 77, /* RM */
819 YYSYMBOL_BB = 78, /* BB */
820 YYSYMBOL_ST = 79, /* ST */
821 YYSYMBOL_END = 80, /* END */
822 YYSYMBOL_BBLOWERCHAR = 81, /* BBLOWERCHAR */
823 YYSYMBOL_BBUPPERCHAR = 82, /* BBUPPERCHAR */
824 YYSYMBOL_BBDIGIT = 83, /* BBDIGIT */
825 YYSYMBOL_CALCHAR = 84, /* CALCHAR */
826 YYSYMBOL_FRAKCHAR = 85, /* FRAKCHAR */
827 YYSYMBOL_CAL = 86, /* CAL */
828 YYSYMBOL_FRAK = 87, /* FRAK */
829 YYSYMBOL_CLAP = 88, /* CLAP */
830 YYSYMBOL_LLAP = 89, /* LLAP */
831 YYSYMBOL_RLAP = 90, /* RLAP */
832 YYSYMBOL_ROWOPTS = 91, /* ROWOPTS */
833 YYSYMBOL_TEXTSIZE = 92, /* TEXTSIZE */
834 YYSYMBOL_SCSIZE = 93, /* SCSIZE */
835 YYSYMBOL_SCSCSIZE = 94, /* SCSCSIZE */
836 YYSYMBOL_DISPLAY = 95, /* DISPLAY */
837 YYSYMBOL_TEXTSTY = 96, /* TEXTSTY */
838 YYSYMBOL_TEXTBOX = 97, /* TEXTBOX */
839 YYSYMBOL_TEXTSTRING = 98, /* TEXTSTRING */
840 YYSYMBOL_XMLSTRING = 99, /* XMLSTRING */
841 YYSYMBOL_CELLOPTS = 100, /* CELLOPTS */
842 YYSYMBOL_ROWSPAN = 101, /* ROWSPAN */
843 YYSYMBOL_COLSPAN = 102, /* COLSPAN */
844 YYSYMBOL_THINSPACE = 103, /* THINSPACE */
845 YYSYMBOL_MEDSPACE = 104, /* MEDSPACE */
846 YYSYMBOL_THICKSPACE = 105, /* THICKSPACE */
847 YYSYMBOL_QUAD = 106, /* QUAD */
848 YYSYMBOL_QQUAD = 107, /* QQUAD */
849 YYSYMBOL_NEGSPACE = 108, /* NEGSPACE */
850 YYSYMBOL_PHANTOM = 109, /* PHANTOM */
851 YYSYMBOL_HREF = 110, /* HREF */
852 YYSYMBOL_UNKNOWNCHAR = 111, /* UNKNOWNCHAR */
853 YYSYMBOL_EMPTYMROW = 112, /* EMPTYMROW */
854 YYSYMBOL_STATLINE = 113, /* STATLINE */
855 YYSYMBOL_TOOLTIP = 114, /* TOOLTIP */
856 YYSYMBOL_TOGGLE = 115, /* TOGGLE */
857 YYSYMBOL_FGHIGHLIGHT = 116, /* FGHIGHLIGHT */
858 YYSYMBOL_BGHIGHLIGHT = 117, /* BGHIGHLIGHT */
859 YYSYMBOL_SPACE = 118, /* SPACE */
860 YYSYMBOL_INTONE = 119, /* INTONE */
861 YYSYMBOL_INTTWO = 120, /* INTTWO */
862 YYSYMBOL_INTTHREE = 121, /* INTTHREE */
863 YYSYMBOL_BAR = 122, /* BAR */
864 YYSYMBOL_WIDEBAR = 123, /* WIDEBAR */
865 YYSYMBOL_VEC = 124, /* VEC */
866 YYSYMBOL_WIDEVEC = 125, /* WIDEVEC */
867 YYSYMBOL_HAT = 126, /* HAT */
868 YYSYMBOL_WIDEHAT = 127, /* WIDEHAT */
869 YYSYMBOL_CHECK = 128, /* CHECK */
870 YYSYMBOL_WIDECHECK = 129, /* WIDECHECK */
871 YYSYMBOL_TILDE = 130, /* TILDE */
872 YYSYMBOL_WIDETILDE = 131, /* WIDETILDE */
873 YYSYMBOL_DOT = 132, /* DOT */
874 YYSYMBOL_DDOT = 133, /* DDOT */
875 YYSYMBOL_DDDOT = 134, /* DDDOT */
876 YYSYMBOL_DDDDOT = 135, /* DDDDOT */
877 YYSYMBOL_UNARYMINUS = 136, /* UNARYMINUS */
878 YYSYMBOL_UNARYPLUS = 137, /* UNARYPLUS */
879 YYSYMBOL_BEGINENV = 138, /* BEGINENV */
880 YYSYMBOL_ENDENV = 139, /* ENDENV */
881 YYSYMBOL_MATRIX = 140, /* MATRIX */
882 YYSYMBOL_PMATRIX = 141, /* PMATRIX */
883 YYSYMBOL_BMATRIX = 142, /* BMATRIX */
884 YYSYMBOL_BBMATRIX = 143, /* BBMATRIX */
885 YYSYMBOL_VMATRIX = 144, /* VMATRIX */
886 YYSYMBOL_VVMATRIX = 145, /* VVMATRIX */
887 YYSYMBOL_SVG = 146, /* SVG */
888 YYSYMBOL_ENDSVG = 147, /* ENDSVG */
889 YYSYMBOL_SMALLMATRIX = 148, /* SMALLMATRIX */
890 YYSYMBOL_CASES = 149, /* CASES */
891 YYSYMBOL_ALIGNED = 150, /* ALIGNED */
892 YYSYMBOL_GATHERED = 151, /* GATHERED */
893 YYSYMBOL_SUBSTACK = 152, /* SUBSTACK */
894 YYSYMBOL_PMOD = 153, /* PMOD */
895 YYSYMBOL_RMCHAR = 154, /* RMCHAR */
896 YYSYMBOL_COLOR = 155, /* COLOR */
897 YYSYMBOL_BGCOLOR = 156, /* BGCOLOR */
898 YYSYMBOL_XARROW = 157, /* XARROW */
899 YYSYMBOL_OPTARGOPEN = 158, /* OPTARGOPEN */
900 YYSYMBOL_OPTARGCLOSE = 159, /* OPTARGCLOSE */
901 YYSYMBOL_ITEXNUM = 160, /* ITEXNUM */
902 YYSYMBOL_RAISEBOX = 161, /* RAISEBOX */
903 YYSYMBOL_NEG = 162, /* NEG */
904 YYSYMBOL_YYACCEPT = 163, /* $accept */
905 YYSYMBOL_doc = 164, /* doc */
906 YYSYMBOL_xmlmmlTermList = 165, /* xmlmmlTermList */
907 YYSYMBOL_char = 166, /* char */
908 YYSYMBOL_expression = 167, /* expression */
909 YYSYMBOL_compoundTermList = 168, /* compoundTermList */
910 YYSYMBOL_compoundTerm = 169, /* compoundTerm */
911 YYSYMBOL_closedTerm = 170, /* closedTerm */
912 YYSYMBOL_left = 171, /* left */
913 YYSYMBOL_right = 172, /* right */
914 YYSYMBOL_bigdelim = 173, /* bigdelim */
915 YYSYMBOL_unrecognized = 174, /* unrecognized */
916 YYSYMBOL_unaryminus = 175, /* unaryminus */
917 YYSYMBOL_unaryplus = 176, /* unaryplus */
918 YYSYMBOL_mi = 177, /* mi */
919 YYSYMBOL_mib = 178, /* mib */
920 YYSYMBOL_mn = 179, /* mn */
921 YYSYMBOL_mob = 180, /* mob */
922 YYSYMBOL_mo = 181, /* mo */
923 YYSYMBOL_space = 182, /* space */
924 YYSYMBOL_statusline = 183, /* statusline */
925 YYSYMBOL_tooltip = 184, /* tooltip */
926 YYSYMBOL_toggle = 185, /* toggle */
927 YYSYMBOL_fghighlight = 186, /* fghighlight */
928 YYSYMBOL_bghighlight = 187, /* bghighlight */
929 YYSYMBOL_color = 188, /* color */
930 YYSYMBOL_mathrlap = 189, /* mathrlap */
931 YYSYMBOL_mathllap = 190, /* mathllap */
932 YYSYMBOL_mathclap = 191, /* mathclap */
933 YYSYMBOL_textstring = 192, /* textstring */
934 YYSYMBOL_displaystyle = 193, /* displaystyle */
935 YYSYMBOL_textstyle = 194, /* textstyle */
936 YYSYMBOL_textsize = 195, /* textsize */
937 YYSYMBOL_scriptsize = 196, /* scriptsize */
938 YYSYMBOL_scriptscriptsize = 197, /* scriptscriptsize */
939 YYSYMBOL_italics = 198, /* italics */
940 YYSYMBOL_slashed = 199, /* slashed */
941 YYSYMBOL_boxed = 200, /* boxed */
942 YYSYMBOL_bold = 201, /* bold */
943 YYSYMBOL_roman = 202, /* roman */
944 YYSYMBOL_rmchars = 203, /* rmchars */
945 YYSYMBOL_bbold = 204, /* bbold */
946 YYSYMBOL_bbchars = 205, /* bbchars */
947 YYSYMBOL_bbchar = 206, /* bbchar */
948 YYSYMBOL_frak = 207, /* frak */
949 YYSYMBOL_frakletters = 208, /* frakletters */
950 YYSYMBOL_frakletter = 209, /* frakletter */
951 YYSYMBOL_cal = 210, /* cal */
952 YYSYMBOL_calletters = 211, /* calletters */
953 YYSYMBOL_calletter = 212, /* calletter */
954 YYSYMBOL_thinspace = 213, /* thinspace */
955 YYSYMBOL_medspace = 214, /* medspace */
956 YYSYMBOL_thickspace = 215, /* thickspace */
957 YYSYMBOL_quad = 216, /* quad */
958 YYSYMBOL_qquad = 217, /* qquad */
959 YYSYMBOL_negspace = 218, /* negspace */
960 YYSYMBOL_phantom = 219, /* phantom */
961 YYSYMBOL_href = 220, /* href */
962 YYSYMBOL_tensor = 221, /* tensor */
963 YYSYMBOL_multi = 222, /* multi */
964 YYSYMBOL_subsupList = 223, /* subsupList */
965 YYSYMBOL_subsupTerm = 224, /* subsupTerm */
966 YYSYMBOL_mfrac = 225, /* mfrac */
967 YYSYMBOL_pmod = 226, /* pmod */
968 YYSYMBOL_texover = 227, /* texover */
969 YYSYMBOL_texatop = 228, /* texatop */
970 YYSYMBOL_binom = 229, /* binom */
971 YYSYMBOL_munderbrace = 230, /* munderbrace */
972 YYSYMBOL_munderline = 231, /* munderline */
973 YYSYMBOL_moverbrace = 232, /* moverbrace */
974 YYSYMBOL_bar = 233, /* bar */
975 YYSYMBOL_vec = 234, /* vec */
976 YYSYMBOL_dot = 235, /* dot */
977 YYSYMBOL_ddot = 236, /* ddot */
978 YYSYMBOL_dddot = 237, /* dddot */
979 YYSYMBOL_ddddot = 238, /* ddddot */
980 YYSYMBOL_tilde = 239, /* tilde */
981 YYSYMBOL_check = 240, /* check */
982 YYSYMBOL_hat = 241, /* hat */
983 YYSYMBOL_msqrt = 242, /* msqrt */
984 YYSYMBOL_mroot = 243, /* mroot */
985 YYSYMBOL_raisebox = 244, /* raisebox */
986 YYSYMBOL_munder = 245, /* munder */
987 YYSYMBOL_mover = 246, /* mover */
988 YYSYMBOL_munderover = 247, /* munderover */
989 YYSYMBOL_emptymrow = 248, /* emptymrow */
990 YYSYMBOL_mathenv = 249, /* mathenv */
991 YYSYMBOL_columnAlignList = 250, /* columnAlignList */
992 YYSYMBOL_substack = 251, /* substack */
993 YYSYMBOL_array = 252, /* array */
994 YYSYMBOL_arrayopts = 253, /* arrayopts */
995 YYSYMBOL_anarrayopt = 254, /* anarrayopt */
996 YYSYMBOL_collayout = 255, /* collayout */
997 YYSYMBOL_colalign = 256, /* colalign */
998 YYSYMBOL_rowalign = 257, /* rowalign */
999 YYSYMBOL_align = 258, /* align */
1000 YYSYMBOL_eqrows = 259, /* eqrows */
1001 YYSYMBOL_eqcols = 260, /* eqcols */
1002 YYSYMBOL_rowlines = 261, /* rowlines */
1003 YYSYMBOL_collines = 262, /* collines */
1004 YYSYMBOL_frame = 263, /* frame */
1005 YYSYMBOL_padding = 264, /* padding */
1006 YYSYMBOL_tableRowList = 265, /* tableRowList */
1007 YYSYMBOL_tableRow = 266, /* tableRow */
1008 YYSYMBOL_simpleTableRow = 267, /* simpleTableRow */
1009 YYSYMBOL_optsTableRow = 268, /* optsTableRow */
1010 YYSYMBOL_rowopts = 269, /* rowopts */
1011 YYSYMBOL_arowopt = 270, /* arowopt */
1012 YYSYMBOL_tableCell = 271, /* tableCell */
1013 YYSYMBOL_cellopts = 272, /* cellopts */
1014 YYSYMBOL_acellopt = 273, /* acellopt */
1015 YYSYMBOL_rowspan = 274, /* rowspan */
1016 YYSYMBOL_colspan = 275 /* colspan */
1017 };
1018 typedef enum yysymbol_kind_t yysymbol_kind_t;
1019
1020
1021
1022
1023 #ifdef short
1024 # undef short
1025 #endif
1026
1027 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
1028 <limits.h> and (if available) <stdint.h> are included
1029 so that the code can choose integer types of a good width. */
1030
1031 #ifndef __PTRDIFF_MAX__
1032 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
1033 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1034 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
1035 # define YY_STDINT_H
1036 # endif
1037 #endif
1038
1039 /* Narrow types that promote to a signed type and that can represent a
1040 signed or unsigned integer of at least N bits. In tables they can
1041 save space and decrease cache pressure. Promoting to a signed type
1042 helps avoid bugs in integer arithmetic. */
1043
1044 #ifdef __INT_LEAST8_MAX__
1045 typedef __INT_LEAST8_TYPE__ yytype_int8;
1046 #elif defined YY_STDINT_H
1047 typedef int_least8_t yytype_int8;
1048 #else
1049 typedef signed char yytype_int8;
1050 #endif
1051
1052 #ifdef __INT_LEAST16_MAX__
1053 typedef __INT_LEAST16_TYPE__ yytype_int16;
1054 #elif defined YY_STDINT_H
1055 typedef int_least16_t yytype_int16;
1056 #else
1057 typedef short yytype_int16;
1058 #endif
1059
1060 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
1061 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
1062 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
1063 && UINT_LEAST8_MAX <= INT_MAX)
1064 typedef uint_least8_t yytype_uint8;
1065 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
1066 typedef unsigned char yytype_uint8;
1067 #else
1068 typedef short yytype_uint8;
1069 #endif
1070
1071 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
1072 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
1073 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
1074 && UINT_LEAST16_MAX <= INT_MAX)
1075 typedef uint_least16_t yytype_uint16;
1076 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
1077 typedef unsigned short yytype_uint16;
1078 #else
1079 typedef int yytype_uint16;
1080 #endif
1081
1082 #ifndef YYPTRDIFF_T
1083 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
1084 # define YYPTRDIFF_T __PTRDIFF_TYPE__
1085 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
1086 # elif defined PTRDIFF_MAX
1087 # ifndef ptrdiff_t
1088 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1089 # endif
1090 # define YYPTRDIFF_T ptrdiff_t
1091 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
1092 # else
1093 # define YYPTRDIFF_T long
1094 # define YYPTRDIFF_MAXIMUM LONG_MAX
1095 # endif
1096 #endif
1097
1098 #ifndef YYSIZE_T
1099 # ifdef __SIZE_TYPE__
1100 # define YYSIZE_T __SIZE_TYPE__
1101 # elif defined size_t
1102 # define YYSIZE_T size_t
1103 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1104 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1105 # define YYSIZE_T size_t
1106 # else
1107 # define YYSIZE_T unsigned
1108 # endif
1109 #endif
1110
1111 #define YYSIZE_MAXIMUM \
1112 YY_CAST (YYPTRDIFF_T, \
1113 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
1114 ? YYPTRDIFF_MAXIMUM \
1115 : YY_CAST (YYSIZE_T, -1)))
1116
1117 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
1118
1119
1120 /* Stored state numbers (used for stacks). */
1121 typedef yytype_int16 yy_state_t;
1122
1123 /* State numbers in computations. */
1124 typedef int yy_state_fast_t;
1125
1126 #ifndef YY_
1127 # if defined YYENABLE_NLS && YYENABLE_NLS
1128 # if ENABLE_NLS
1129 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1130 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1131 # endif
1132 # endif
1133 # ifndef YY_
1134 # define YY_(Msgid) Msgid
1135 # endif
1136 #endif
1137
1138
1139 #ifndef YY_ATTRIBUTE_PURE
1140 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
1141 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
1142 # else
1143 # define YY_ATTRIBUTE_PURE
1144 # endif
1145 #endif
1146
1147 #ifndef YY_ATTRIBUTE_UNUSED
1148 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
1149 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
1150 # else
1151 # define YY_ATTRIBUTE_UNUSED
1152 # endif
1153 #endif
1154
1155 /* Suppress unused-variable warnings by "using" E. */
1156 #if ! defined lint || defined __GNUC__
1157 # define YYUSE(E) ((void) (E))
1158 #else
1159 # define YYUSE(E) /* empty */
1160 #endif
1161
1162 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1163 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
1164 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1165 _Pragma ("GCC diagnostic push") \
1166 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
1167 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1168 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1169 _Pragma ("GCC diagnostic pop")
1170 #else
1171 # define YY_INITIAL_VALUE(Value) Value
1172 #endif
1173 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1174 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1175 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
1176 #endif
1177 #ifndef YY_INITIAL_VALUE
1178 # define YY_INITIAL_VALUE(Value) /* Nothing. */
1179 #endif
1180
1181 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1182 # define YY_IGNORE_USELESS_CAST_BEGIN \
1183 _Pragma ("GCC diagnostic push") \
1184 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1185 # define YY_IGNORE_USELESS_CAST_END \
1186 _Pragma ("GCC diagnostic pop")
1187 #endif
1188 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
1189 # define YY_IGNORE_USELESS_CAST_BEGIN
1190 # define YY_IGNORE_USELESS_CAST_END
1191 #endif
1192
1193
1194 #define YY_ASSERT(E) ((void) (0 && (E)))
1195
1196 #if !defined yyoverflow
1197
1198 /* The parser invokes alloca or malloc; define the necessary symbols. */
1199
1200 # ifdef YYSTACK_USE_ALLOCA
1201 # if YYSTACK_USE_ALLOCA
1202 # ifdef __GNUC__
1203 # define YYSTACK_ALLOC __builtin_alloca
1204 # elif defined __BUILTIN_VA_ARG_INCR
1205 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1206 # elif defined _AIX
1207 # define YYSTACK_ALLOC __alloca
1208 # elif defined _MSC_VER
1209 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1210 # define alloca _alloca
1211 # else
1212 # define YYSTACK_ALLOC alloca
1213 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1214 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1215 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
1216 # ifndef EXIT_SUCCESS
1217 # define EXIT_SUCCESS 0
1218 # endif
1219 # endif
1220 # endif
1221 # endif
1222 # endif
1223
1224 # ifdef YYSTACK_ALLOC
1225 /* Pacify GCC's 'empty if-body' warning. */
1226 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1227 # ifndef YYSTACK_ALLOC_MAXIMUM
1228 /* The OS might guarantee only one guard page at the bottom of the stack,
1229 and a page size can be as small as 4096 bytes. So we cannot safely
1230 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1231 to allow for a few compiler-allocated temporary stack slots. */
1232 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1233 # endif
1234 # else
1235 # define YYSTACK_ALLOC YYMALLOC
1236 # define YYSTACK_FREE YYFREE
1237 # ifndef YYSTACK_ALLOC_MAXIMUM
1238 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1239 # endif
1240 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1241 && ! ((defined YYMALLOC || defined malloc) \
1242 && (defined YYFREE || defined free)))
1243 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1244 # ifndef EXIT_SUCCESS
1245 # define EXIT_SUCCESS 0
1246 # endif
1247 # endif
1248 # ifndef YYMALLOC
1249 # define YYMALLOC malloc
1250 # if ! defined malloc && ! defined EXIT_SUCCESS
1251 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1252 # endif
1253 # endif
1254 # ifndef YYFREE
1255 # define YYFREE free
1256 # if ! defined free && ! defined EXIT_SUCCESS
1257 void free (void *); /* INFRINGES ON USER NAME SPACE */
1258 # endif
1259 # endif
1260 # endif
1261 #endif /* !defined yyoverflow */
1262
1263 #if (! defined yyoverflow \
1264 && (! defined __cplusplus \
1265 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1266
1267 /* A type that is properly aligned for any stack member. */
1268 union yyalloc
1269 {
1270 yy_state_t yyss_alloc;
1271 YYSTYPE yyvs_alloc;
1272 };
1273
1274 /* The size of the maximum gap between one aligned stack and the next. */
1275 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1276
1277 /* The size of an array large to enough to hold all stacks, each with
1278 N elements. */
1279 # define YYSTACK_BYTES(N) \
1280 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
1281 + YYSTACK_GAP_MAXIMUM)
1282
1283 # define YYCOPY_NEEDED 1
1284
1285 /* Relocate STACK from its old location to the new one. The
1286 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1287 elements in the stack, and YYPTR gives the new location of the
1288 stack. Advance YYPTR to a properly aligned location for the next
1289 stack. */
1290 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1291 do \
1292 { \
1293 YYPTRDIFF_T yynewbytes; \
1294 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1295 Stack = &yyptr->Stack_alloc; \
1296 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1297 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1298 } \
1299 while (0)
1300
1301 #endif
1302
1303 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1304 /* Copy COUNT objects from SRC to DST. The source and destination do
1305 not overlap. */
1306 # ifndef YYCOPY
1307 # if defined __GNUC__ && 1 < __GNUC__
1308 # define YYCOPY(Dst, Src, Count) \
1309 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1310 # else
1311 # define YYCOPY(Dst, Src, Count) \
1312 do \
1313 { \
1314 YYPTRDIFF_T yyi; \
1315 for (yyi = 0; yyi < (Count); yyi++) \
1316 (Dst)[yyi] = (Src)[yyi]; \
1317 } \
1318 while (0)
1319 # endif
1320 # endif
1321 #endif /* !YYCOPY_NEEDED */
1322
1323 /* YYFINAL -- State number of the termination state. */
1324 #define YYFINAL 190
1325 /* YYLAST -- Last index in YYTABLE. */
1326 #define YYLAST 4668
1327
1328 /* YYNTOKENS -- Number of terminals. */
1329 #define YYNTOKENS 163
1330 /* YYNNTS -- Number of nonterminals. */
1331 #define YYNNTS 113
1332 /* YYNRULES -- Number of rules. */
1333 #define YYNRULES 314
1334 /* YYNSTATES -- Number of states. */
1335 #define YYNSTATES 561
1336
1337 /* YYMAXUTOK -- Last valid token kind. */
1338 #define YYMAXUTOK 417
1339
1340
1341 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1342 as returned by yylex, with out-of-bounds checking. */
1343 #define YYTRANSLATE(YYX) \
1344 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1345 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1346 : YYSYMBOL_YYUNDEF)
1347
1348 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1349 as returned by yylex. */
1350 static const yytype_uint8 yytranslate[] =
1351 {
1352 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1358 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1363 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1364 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1365 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1366 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1367 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1368 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1369 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1370 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1371 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1372 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1373 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1374 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1375 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1377 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1378 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1379 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1380 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1381 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1382 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1383 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1384 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1385 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1386 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1387 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1388 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1389 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1390 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1391 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1392 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1393 155, 156, 157, 158, 159, 160, 161, 162
1394 };
1395
1396 #if YYDEBUG
1397 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1398 static const yytype_int16 yyrline[] =
1399 {
1400 0, 286, 286, 289, 290, 291, 292, 293, 295, 297,
1401 298, 299, 312, 326, 330, 336, 355, 369, 388, 402,
1402 421, 435, 454, 468, 478, 488, 495, 502, 506, 510,
1403 515, 516, 517, 518, 519, 523, 527, 528, 529, 530,
1404 531, 532, 533, 534, 535, 536, 537, 538, 539, 540,
1405 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
1406 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
1407 561, 562, 563, 564, 565, 566, 567, 568, 569, 570,
1408 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
1409 581, 582, 583, 584, 585, 586, 590, 594, 602, 603,
1410 604, 605, 607, 612, 617, 623, 627, 631, 636, 641,
1411 645, 649, 654, 658, 662, 667, 671, 675, 680, 684,
1412 688, 693, 698, 703, 708, 713, 718, 723, 729, 733,
1413 737, 741, 743, 749, 750, 756, 762, 763, 764, 769,
1414 774, 779, 783, 788, 792, 796, 800, 805, 810, 815,
1415 820, 825, 830, 836, 847, 855, 863, 871, 879, 887,
1416 894, 902, 907, 912, 917, 922, 927, 932, 937, 942,
1417 947, 952, 957, 962, 967, 972, 976, 982, 987, 991,
1418 997, 1001, 1005, 1013, 1018, 1022, 1028, 1033, 1038, 1042,
1419 1048, 1053, 1057, 1061, 1065, 1069, 1073, 1077, 1082, 1092,
1420 1099, 1107, 1117, 1126, 1134, 1138, 1144, 1149, 1153, 1157,
1421 1162, 1169, 1177, 1182, 1189, 1203, 1210, 1224, 1231, 1239,
1422 1244, 1249, 1254, 1258, 1263, 1267, 1272, 1277, 1282, 1287,
1423 1292, 1296, 1301, 1305, 1310, 1314, 1319, 1324, 1331, 1339,
1424 1352, 1365, 1375, 1387, 1396, 1406, 1413, 1421, 1428, 1436,
1425 1446, 1455, 1459, 1463, 1467, 1471, 1475, 1479, 1483, 1487,
1426 1491, 1495, 1499, 1509, 1516, 1520, 1524, 1529, 1534, 1539,
1427 1543, 1551, 1555, 1561, 1565, 1569, 1573, 1577, 1581, 1585,
1428 1589, 1593, 1597, 1602, 1607, 1612, 1617, 1622, 1627, 1632,
1429 1637, 1642, 1647, 1654, 1658, 1664, 1668, 1673, 1677, 1683,
1430 1691, 1695, 1701, 1705, 1710, 1713, 1717, 1725, 1729, 1735,
1431 1739, 1743, 1747, 1752, 1757
1432 };
1433 #endif
1434
1435 /** Accessing symbol of state STATE. */
1436 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1437
1438 #if YYDEBUG || 0
1439 /* The user-facing name of the symbol whose (internal) number is
1440 YYSYMBOL. No bounds checking. */
1441 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1442
1443 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1444 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1445 static const char *const yytname[] =
1446 {
1447 "\"end of file\"", "error", "\"invalid token\"", "TEXOVER", "TEXATOP",
1448 "CHAR", "STARTMATH", "STARTDMATH", "ENDMATH", "MI", "MIB", "MN", "MO",
1449 "SUP", "SUB", "MROWOPEN", "MROWCLOSE", "LEFT", "RIGHT", "BIG", "BBIG",
1450 "BIGG", "BBIGG", "BIGL", "BBIGL", "BIGGL", "BBIGGL", "FRAC", "TFRAC",
1451 "OPERATORNAME", "MATHOP", "MATHBIN", "MATHREL", "MOP", "MOL", "MOLL",
1452 "MOF", "MOR", "PERIODDELIM", "OTHERDELIM", "LEFTDELIM", "RIGHTDELIM",
1453 "MOS", "MOB", "SQRT", "ROOT", "BINOM", "TBINOM", "UNDER", "OVER",
1454 "OVERBRACE", "UNDERLINE", "UNDERBRACE", "UNDEROVER", "TENSOR", "MULTI",
1455 "ARRAYALIGN", "COLUMNALIGN", "ARRAY", "COLSEP", "ROWSEP", "ARRAYOPTS",
1456 "COLLAYOUT", "COLALIGN", "ROWALIGN", "ALIGN", "EQROWS", "EQCOLS",
1457 "ROWLINES", "COLLINES", "FRAME", "PADDING", "ATTRLIST", "ITALICS",
1458 "BOLD", "BOXED", "SLASHED", "RM", "BB", "ST", "END", "BBLOWERCHAR",
1459 "BBUPPERCHAR", "BBDIGIT", "CALCHAR", "FRAKCHAR", "CAL", "FRAK", "CLAP",
1460 "LLAP", "RLAP", "ROWOPTS", "TEXTSIZE", "SCSIZE", "SCSCSIZE", "DISPLAY",
1461 "TEXTSTY", "TEXTBOX", "TEXTSTRING", "XMLSTRING", "CELLOPTS", "ROWSPAN",
1462 "COLSPAN", "THINSPACE", "MEDSPACE", "THICKSPACE", "QUAD", "QQUAD",
1463 "NEGSPACE", "PHANTOM", "HREF", "UNKNOWNCHAR", "EMPTYMROW", "STATLINE",
1464 "TOOLTIP", "TOGGLE", "FGHIGHLIGHT", "BGHIGHLIGHT", "SPACE", "INTONE",
1465 "INTTWO", "INTTHREE", "BAR", "WIDEBAR", "VEC", "WIDEVEC", "HAT",
1466 "WIDEHAT", "CHECK", "WIDECHECK", "TILDE", "WIDETILDE", "DOT", "DDOT",
1467 "DDDOT", "DDDDOT", "UNARYMINUS", "UNARYPLUS", "BEGINENV", "ENDENV",
1468 "MATRIX", "PMATRIX", "BMATRIX", "BBMATRIX", "VMATRIX", "VVMATRIX", "SVG",
1469 "ENDSVG", "SMALLMATRIX", "CASES", "ALIGNED", "GATHERED", "SUBSTACK",
1470 "PMOD", "RMCHAR", "COLOR", "BGCOLOR", "XARROW", "OPTARGOPEN",
1471 "OPTARGCLOSE", "ITEXNUM", "RAISEBOX", "NEG", "$accept", "doc",
1472 "xmlmmlTermList", "char", "expression", "compoundTermList",
1473 "compoundTerm", "closedTerm", "left", "right", "bigdelim",
1474 "unrecognized", "unaryminus", "unaryplus", "mi", "mib", "mn", "mob",
1475 "mo", "space", "statusline", "tooltip", "toggle", "fghighlight",
1476 "bghighlight", "color", "mathrlap", "mathllap", "mathclap", "textstring",
1477 "displaystyle", "textstyle", "textsize", "scriptsize",
1478 "scriptscriptsize", "italics", "slashed", "boxed", "bold", "roman",
1479 "rmchars", "bbold", "bbchars", "bbchar", "frak", "frakletters",
1480 "frakletter", "cal", "calletters", "calletter", "thinspace", "medspace",
1481 "thickspace", "quad", "qquad", "negspace", "phantom", "href", "tensor",
1482 "multi", "subsupList", "subsupTerm", "mfrac", "pmod", "texover",
1483 "texatop", "binom", "munderbrace", "munderline", "moverbrace", "bar",
1484 "vec", "dot", "ddot", "dddot", "ddddot", "tilde", "check", "hat",
1485 "msqrt", "mroot", "raisebox", "munder", "mover", "munderover",
1486 "emptymrow", "mathenv", "columnAlignList", "substack", "array",
1487 "arrayopts", "anarrayopt", "collayout", "colalign", "rowalign", "align",
1488 "eqrows", "eqcols", "rowlines", "collines", "frame", "padding",
1489 "tableRowList", "tableRow", "simpleTableRow", "optsTableRow", "rowopts",
1490 "arowopt", "tableCell", "cellopts", "acellopt", "rowspan", "colspan", YY_NULLPTR
1491 };
1492
1493 static const char *
yysymbol_name(yysymbol_kind_t yysymbol)1494 yysymbol_name (yysymbol_kind_t yysymbol)
1495 {
1496 return yytname[yysymbol];
1497 }
1498 #endif
1499
1500 #ifdef YYPRINT
1501 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1502 (internal) symbol number NUM (which must be that of a token). */
1503 static const yytype_int16 yytoknum[] =
1504 {
1505 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1506 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1507 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1508 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1509 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1510 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1511 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1512 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1513 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1514 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1515 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1516 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1517 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1518 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1519 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1520 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1521 415, 416, 417
1522 };
1523 #endif
1524
1525 #define YYPACT_NINF (-396)
1526
1527 #define yypact_value_is_default(Yyn) \
1528 ((Yyn) == YYPACT_NINF)
1529
1530 #define YYTABLE_NINF (-1)
1531
1532 #define yytable_value_is_error(Yyn) \
1533 0
1534
1535 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1536 STATE-NUM. */
1537 static const yytype_int16 yypact[] =
1538 {
1539 203, -396, 1291, 1445, 27, 203, -396, -396, -396, -396,
1540 -396, -396, -396, 4354, 4354, 3130, 173, 180, 189, 192,
1541 195, 22, 92, 107, 141, 4354, 4354, -20, -18, -9,
1542 3, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1543 -396, -396, 3283, 4354, 4354, 4354, 4354, 4354, 4354, 4354,
1544 4354, 4354, 4354, -13, 39, 4354, 4354, 4354, 4354, 14,
1545 58, 72, 76, 4354, 4354, 4354, 3130, 3130, 3130, 3130,
1546 3130, 70, -396, -396, -396, -396, -396, -396, 4354, 90,
1547 -396, -396, 100, 104, 4354, 24, 38, 127, 4354, 4354,
1548 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354, 4354,
1549 4354, 4354, -396, -396, -25, 67, 4354, -396, 122, 150,
1550 3436, 148, -64, 1599, -396, 35, 3130, -396, -396, -396,
1551 -396, -396, 171, -396, 211, -396, -396, -396, -396, -396,
1552 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1553 -396, -396, -396, -396, -396, -396, -396, 97, -396, -396,
1554 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1555 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1556 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1557 -396, -396, -396, -396, -396, -396, -396, -396, -396, 1753,
1558 -396, -396, -396, -396, -396, -396, -396, 982, 31, -396,
1559 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1560 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1561 -396, -396, 4354, 4354, -396, -396, -396, -396, 3130, -396,
1562 4354, 4354, 4354, 4354, 4354, -396, -396, -396, 4354, 224,
1563 231, 4354, 1906, -396, -396, -396, -396, 103, 160, 174,
1564 175, -396, -396, -396, 3130, 3130, 3130, 3130, 3130, -396,
1565 -396, 4354, 4354, 4354, 4354, 4354, 4354, 140, -396, -396,
1566 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1567 -396, -396, -16, 2059, 2059, 2059, 2059, 2059, 2059, -87,
1568 2059, 2059, 2059, 2059, 2059, -396, 3130, 3130, 3130, -396,
1569 -396, 3589, 163, -396, -396, 4354, 4354, 1137, 4354, 4354,
1570 4354, 4354, -396, -396, 3130, 3130, -396, -396, -396, -396,
1571 2212, -396, -396, -396, -396, -396, 4354, 4354, 3742, 231,
1572 231, -396, 114, 248, 251, 253, 254, 3130, 10, -396,
1573 212, -396, -396, -60, -396, -396, -396, 110, -396, -396,
1574 -38, -396, -396, -44, -396, -396, -396, -396, -396, -396,
1575 -396, 193, 196, 215, -56, -52, -31, -30, -17, -10,
1576 129, -396, -5, -4, -3, -1, 12, 3130, 3130, 2365,
1577 3895, -396, 4048, 263, 265, 3130, 3130, 115, -396, 279,
1578 266, 284, 286, 2518, 2671, 4354, -396, -396, 4354, 287,
1579 183, -396, 4354, 231, 108, 184, 81, -396, 2059, 2824,
1580 -396, -396, -396, -396, -396, -396, -396, 223, 215, -396,
1581 1, 164, 162, 165, 166, 167, 161, -396, 168, 159,
1582 169, 170, -396, 4507, 4354, -396, 4201, -396, 4354, 4354,
1583 2977, 2977, -396, -396, -396, 4354, 4354, 4354, 4354, -396,
1584 -396, -396, -396, 4354, -396, -12, 187, 238, 242, 245,
1585 250, 252, 264, 268, 269, 270, 271, 96, -396, -396,
1586 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1587 -396, 21, -396, 272, 273, -396, -396, -11, -396, -396,
1588 -396, -396, -396, 200, 17, -396, 2059, -396, -396, -396,
1589 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1590 4354, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1591 -396, 231, -396, -396, -396, -396, -396, -396, -396, -396,
1592 -396, -396, -396, -396, 2059, -396, 2824, -396, -396, -396,
1593 3130, -396, 243, 2059, 9, -396, 191, 19, 212, 3130,
1594 246, 11, 288, -396, -396, 205, 289, -396, 275, -396,
1595 -396
1596 };
1597
1598 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1599 Performed when YYTABLE does not specify something else to do. Zero
1600 means the default is an error. */
1601 static const yytype_int16 yydefact[] =
1602 {
1603 3, 8, 0, 0, 0, 2, 4, 5, 9, 131,
1604 132, 133, 138, 0, 0, 0, 0, 0, 0, 0,
1605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606 0, 147, 139, 140, 144, 148, 145, 143, 142, 141,
1607 146, 135, 0, 0, 0, 0, 0, 0, 0, 0,
1608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1610 0, 0, 191, 192, 193, 194, 195, 196, 0, 0,
1611 128, 251, 0, 0, 0, 0, 0, 0, 0, 0,
1612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613 0, 0, 129, 130, 0, 0, 0, 175, 0, 0,
1614 0, 0, 0, 0, 13, 29, 0, 137, 101, 31,
1615 32, 34, 33, 35, 136, 36, 77, 87, 88, 89,
1616 90, 91, 92, 62, 61, 60, 78, 63, 64, 65,
1617 66, 67, 68, 74, 75, 69, 70, 71, 72, 73,
1618 76, 79, 80, 81, 82, 83, 84, 85, 86, 37,
1619 38, 39, 100, 93, 94, 40, 56, 57, 55, 46,
1620 47, 49, 50, 51, 52, 54, 53, 48, 41, 42,
1621 43, 44, 45, 58, 59, 98, 99, 30, 10, 0,
1622 1, 6, 7, 28, 33, 136, 27, 0, 29, 104,
1623 103, 102, 110, 108, 109, 113, 111, 112, 116, 114,
1624 115, 119, 117, 118, 121, 120, 123, 122, 125, 124,
1625 127, 126, 0, 0, 149, 150, 151, 152, 0, 236,
1626 0, 0, 0, 0, 0, 221, 220, 219, 0, 0,
1627 0, 0, 304, 170, 173, 172, 171, 0, 0, 0,
1628 0, 163, 162, 161, 167, 168, 169, 165, 166, 164,
1629 197, 0, 0, 0, 0, 0, 0, 0, 222, 223,
1630 224, 225, 234, 235, 232, 233, 230, 231, 226, 227,
1631 228, 229, 0, 304, 304, 304, 304, 304, 304, 0,
1632 304, 304, 304, 304, 304, 212, 0, 0, 0, 247,
1633 134, 0, 0, 11, 14, 0, 0, 0, 0, 0,
1634 0, 0, 176, 12, 0, 0, 96, 95, 210, 211,
1635 0, 238, 217, 218, 246, 248, 0, 0, 0, 0,
1636 200, 204, 0, 0, 0, 0, 0, 305, 0, 293,
1637 295, 296, 297, 0, 180, 181, 182, 0, 178, 190,
1638 0, 188, 186, 0, 184, 198, 154, 155, 156, 157,
1639 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1640 0, 265, 0, 0, 0, 0, 0, 159, 160, 0,
1641 0, 243, 0, 26, 25, 0, 0, 0, 97, 22,
1642 20, 18, 16, 0, 0, 0, 250, 208, 0, 207,
1643 0, 205, 0, 0, 0, 0, 0, 269, 304, 304,
1644 174, 177, 179, 187, 189, 183, 185, 0, 0, 267,
1645 0, 0, 0, 0, 0, 0, 0, 264, 0, 0,
1646 0, 0, 268, 0, 0, 241, 0, 244, 0, 0,
1647 0, 0, 107, 106, 105, 0, 0, 0, 0, 213,
1648 215, 237, 209, 0, 199, 0, 0, 0, 0, 0,
1649 0, 0, 0, 0, 0, 0, 0, 0, 271, 273,
1650 274, 275, 276, 277, 278, 279, 280, 281, 282, 302,
1651 303, 0, 300, 0, 0, 309, 310, 0, 307, 311,
1652 312, 294, 298, 0, 0, 266, 304, 252, 254, 255,
1653 257, 256, 258, 259, 260, 261, 253, 245, 249, 239,
1654 0, 242, 24, 23, 214, 216, 21, 19, 17, 15,
1655 206, 0, 202, 203, 283, 284, 285, 286, 287, 288,
1656 289, 290, 291, 292, 304, 272, 304, 301, 313, 314,
1657 0, 308, 0, 304, 0, 240, 0, 0, 299, 306,
1658 0, 0, 0, 201, 270, 0, 0, 263, 0, 262,
1659 153
1660 };
1661
1662 /* YYPGOTO[NTERM-NUM]. */
1663 static const yytype_int16 yypgoto[] =
1664 {
1665 -396, -396, -396, 343, 344, 36, -40, 536, -396, -191,
1666 -396, -396, -396, -396, -396, -2, -396, 73, -396, -396,
1667 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1668 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1669 105, -396, -396, 15, -396, -396, 20, -396, -396, 18,
1670 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1671 -234, -323, -396, -396, -396, -396, -396, -396, -396, -396,
1672 -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
1673 -396, -396, -396, -396, -396, -396, -396, -46, -396, -396,
1674 -396, -93, -396, -395, -374, -396, -396, -396, -396, -396,
1675 -396, -396, -269, -29, -158, -396, -396, -100, -27, -396,
1676 -102, -396, -396
1677 };
1678
1679 /* YYDEFGOTO[NTERM-NUM]. */
1680 static const yytype_int16 yydefgoto[] =
1681 {
1682 -1, 4, 5, 6, 7, 337, 114, 115, 116, 388,
1683 117, 118, 119, 120, 121, 194, 123, 195, 125, 126,
1684 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1685 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1686 147, 148, 347, 348, 149, 353, 354, 150, 350, 351,
1687 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
1688 330, 331, 161, 162, 163, 164, 165, 166, 167, 168,
1689 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
1690 179, 180, 181, 182, 183, 184, 185, 420, 186, 187,
1691 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
1692 477, 478, 338, 339, 340, 341, 481, 482, 342, 487,
1693 488, 489, 490
1694 };
1695
1696 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1697 positive, shift that token. If negative, reduce the rule whose
1698 number is the opposite. If YYTABLE_NINF, syntax error. */
1699 static const yytype_int16 yytable[] =
1700 {
1701 122, 122, 240, 521, 408, 540, 332, 401, 408, 401,
1702 479, 485, 370, 122, 364, 365, 366, 367, 368, 369,
1703 410, 372, 373, 374, 375, 376, 407, 190, 432, 408,
1704 408, 480, 486, 282, 301, 554, 415, 536, 113, 189,
1705 362, 352, 413, 408, 305, 306, 349, 317, 305, 306,
1706 408, 197, 458, 459, 242, 408, 408, 408, 495, 408,
1707 371, 214, 215, 363, 122, 122, 122, 122, 122, 408,
1708 408, 408, 408, 304, 495, 124, 124, 401, 224, 408,
1709 225, 496, 294, 421, 458, 459, 479, 422, 124, 226,
1710 483, 484, 485, 247, 312, 400, 265, 543, 302, 241,
1711 522, 227, 254, 255, 256, 257, 258, 480, 423, 424,
1712 266, 122, 534, 486, 122, 283, 284, 285, 286, 287,
1713 288, 289, 425, 290, 291, 292, 293, 327, 328, 426,
1714 402, 216, 217, 401, 428, 429, 430, 248, 431, 124,
1715 124, 124, 124, 124, 458, 459, 218, 219, 552, 304,
1716 556, 249, 307, 442, 443, 250, 444, 304, 457, 458,
1717 459, 460, 461, 462, 463, 464, 465, 466, 259, 456,
1718 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
1719 220, 221, 483, 484, 308, 309, 124, 122, 261, 124,
1720 411, 344, 345, 346, 296, 122, 327, 328, 262, 454,
1721 327, 328, 263, 523, 327, 328, 267, 553, 1, 2,
1722 3, 199, 200, 201, 304, 304, 304, 304, 304, 202,
1723 203, 204, 297, 401, 310, 311, 122, 544, 205, 206,
1724 207, 208, 209, 210, 211, 212, 213, 327, 328, 329,
1725 122, 344, 345, 346, 327, 328, 300, 458, 459, 514,
1726 515, 312, 122, 122, 122, 122, 122, 107, 349, 361,
1727 352, 382, 124, 403, 320, 547, 404, 304, 405, 406,
1728 124, 409, 419, 417, 551, 418, 427, 438, 439, 446,
1729 304, 122, 122, 122, 122, 122, 122, 546, 122, 122,
1730 122, 122, 122, 445, 122, 122, 122, 304, 447, 448,
1731 453, 124, 493, 498, 497, 122, 502, 499, 504, 500,
1732 524, 501, 122, 122, 525, 124, 503, 526, 122, 505,
1733 542, 506, 527, 550, 528, 555, 558, 124, 124, 124,
1734 124, 124, 377, 378, 379, 122, 529, 304, 304, 304,
1735 530, 531, 532, 533, 538, 539, 557, 559, 191, 192,
1736 393, 394, 343, 304, 304, 560, 124, 124, 124, 124,
1737 124, 124, 412, 124, 124, 124, 124, 124, 414, 124,
1738 124, 124, 494, 416, 535, 122, 122, 122, 548, 491,
1739 124, 537, 492, 122, 122, 541, 0, 124, 124, 0,
1740 0, 122, 122, 124, 0, 0, 0, 0, 0, 0,
1741 304, 304, 0, 0, 0, 0, 122, 122, 0, 0,
1742 124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743 0, 440, 441, 0, 0, 0, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 0, 0, 0, 122, 122,
1745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746 124, 124, 124, 0, 0, 0, 0, 0, 124, 124,
1747 0, 0, 0, 0, 0, 0, 124, 124, 0, 0,
1748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749 0, 124, 124, 0, 0, 0, 0, 0, 0, 0,
1750 0, 0, 0, 0, 122, 0, 0, 0, 0, 0,
1751 0, 0, 0, 0, 0, 0, 0, 0, 0, 304,
1752 0, 0, 0, 124, 124, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754 0, 0, 122, 0, 122, 0, 0, 0, 122, 0,
1755 0, 122, 0, 0, 0, 0, 0, 122, 0, 193,
1756 196, 198, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 222, 223, 0, 0, 0, 0, 0, 0, 124,
1758 0, 0, 0, 0, 0, 0, 549, 0, 229, 230,
1759 231, 232, 233, 234, 235, 236, 237, 238, 239, 0,
1760 0, 243, 244, 245, 246, 0, 0, 0, 0, 251,
1761 252, 253, 0, 0, 0, 0, 0, 124, 0, 124,
1762 0, 0, 0, 124, 260, 0, 124, 0, 0, 0,
1763 264, 0, 124, 0, 268, 269, 270, 271, 272, 273,
1764 274, 275, 276, 277, 278, 279, 280, 281, 0, 0,
1765 0, 0, 295, 0, 0, 0, 299, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 318, 319,
1777 0, 0, 0, 0, 0, 0, 321, 322, 323, 324,
1778 325, 0, 0, 0, 326, 0, 0, 333, 0, 0,
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780 0, 0, 0, 0, 0, 0, 0, 355, 356, 357,
1781 358, 359, 360, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 381, 0, 0,
1785 0, 383, 384, 0, 389, 390, 391, 392, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 396, 397, 399, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 435, 0, 437, 0,
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1794 0, 451, 0, 0, 452, 0, 0, 0, 455, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 508,
1798 509, 0, 511, 0, 512, 513, 0, 0, 0, 0,
1799 0, 516, 517, 518, 519, 314, 315, 0, 0, 520,
1800 0, 9, 10, 11, 12, 13, 14, 15, 316, 16,
1801 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1802 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1803 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1804 46, 47, 48, 49, 50, 51, 52, 53, 0, 0,
1805 54, 0, 0, 0, 0, 0, 545, 0, 0, 0,
1806 0, 0, 0, 0, 0, 55, 56, 57, 58, 59,
1807 60, 0, 0, 0, 0, 0, 0, 0, 61, 62,
1808 63, 64, 65, 0, 66, 67, 68, 69, 70, 71,
1809 0, 0, 0, 0, 0, 72, 73, 74, 75, 76,
1810 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1811 87, 0, 0, 0, 88, 89, 90, 91, 92, 93,
1812 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1813 104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1814 0, 0, 0, 0, 105, 106, 107, 108, 109, 110,
1815 385, 386, 111, 112, 0, 0, 9, 10, 11, 12,
1816 13, 14, 15, 0, 16, 387, 17, 18, 19, 20,
1817 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1818 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1819 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1820 51, 52, 53, 0, 0, 54, 0, 0, 0, 0,
1821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
1823 0, 0, 0, 61, 62, 63, 64, 65, 0, 66,
1824 67, 68, 69, 70, 71, 0, 0, 0, 0, 0,
1825 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1826 82, 83, 84, 85, 86, 87, 0, 0, 0, 88,
1827 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1828 99, 100, 101, 102, 103, 104, 0, 0, 0, 0,
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 105,
1830 106, 107, 108, 109, 110, 0, 0, 111, 112, 8,
1831 9, 10, 11, 12, 13, 14, 15, 0, 16, 0,
1832 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1833 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1834 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1835 47, 48, 49, 50, 51, 52, 53, 0, 0, 54,
1836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837 0, 0, 0, 0, 55, 56, 57, 58, 59, 60,
1838 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
1839 64, 65, 0, 66, 67, 68, 69, 70, 71, 0,
1840 0, 0, 0, 0, 72, 73, 74, 75, 76, 77,
1841 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1842 0, 0, 0, 88, 89, 90, 91, 92, 93, 94,
1843 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 105, 106, 107, 108, 109, 110, 0,
1846 0, 111, 112, 188, 9, 10, 11, 12, 13, 14,
1847 15, 0, 16, 0, 17, 18, 19, 20, 21, 22,
1848 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1849 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1850 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1851 53, 0, 0, 54, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0, 55, 56,
1853 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
1854 0, 61, 62, 63, 64, 65, 0, 66, 67, 68,
1855 69, 70, 71, 0, 0, 0, 0, 0, 72, 73,
1856 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1857 84, 85, 86, 87, 0, 0, 0, 88, 89, 90,
1858 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1859 101, 102, 103, 104, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1861 108, 109, 110, 0, 0, 111, 112, 303, 9, 10,
1862 11, 12, 13, 14, 15, 0, 16, 0, 17, 18,
1863 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1864 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1865 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1866 49, 50, 51, 52, 53, 0, 0, 54, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 55, 56, 57, 58, 59, 60, 0, 0,
1869 0, 0, 0, 0, 0, 61, 62, 63, 64, 65,
1870 0, 66, 67, 68, 69, 70, 71, 0, 0, 0,
1871 0, 0, 72, 73, 74, 75, 76, 77, 78, 79,
1872 80, 81, 82, 83, 84, 85, 86, 87, 0, 0,
1873 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1874 97, 98, 99, 100, 101, 102, 103, 104, 0, 0,
1875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876 0, 105, 106, 107, 108, 109, 110, 0, 0, 111,
1877 112, 313, 9, 10, 11, 12, 13, 14, 15, 0,
1878 16, 0, 17, 18, 19, 20, 21, 22, 23, 24,
1879 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1880 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1881 45, 46, 47, 48, 49, 50, 51, 52, 53, 0,
1882 0, 54, 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 55, 56, 57, 58,
1884 59, 60, 0, 0, 0, 0, 0, 0, 0, 61,
1885 62, 63, 64, 65, 0, 66, 67, 68, 69, 70,
1886 71, 0, 0, 0, 0, 0, 72, 73, 74, 75,
1887 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
1888 86, 87, 0, 0, 0, 88, 89, 90, 91, 92,
1889 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
1890 103, 104, 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 105, 106, 107, 108, 109,
1892 110, 0, 0, 111, 112, 9, 10, 11, 12, 13,
1893 14, 15, 0, 16, 0, 17, 18, 19, 20, 21,
1894 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1895 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1896 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
1897 52, 53, 0, 0, 54, 0, 0, 334, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
1899 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
1900 0, 0, 61, 62, 63, 64, 65, 335, 66, 67,
1901 68, 69, 70, 71, 0, 0, 336, 0, 0, 72,
1902 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1903 83, 84, 85, 86, 87, 0, 0, 0, 88, 89,
1904 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1905 100, 101, 102, 103, 104, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1907 107, 108, 109, 110, 0, 0, 111, 112, 9, 10,
1908 11, 12, 13, 14, 15, 0, 16, 0, 17, 18,
1909 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1910 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1911 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1912 49, 50, 51, 52, 53, 0, 0, 54, 0, 0,
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 55, 56, 57, 58, 59, 60, 0, 0,
1915 0, 0, 0, 0, 0, 61, 62, 63, 64, 65,
1916 335, 66, 67, 68, 69, 70, 71, 0, 0, 336,
1917 0, 0, 72, 73, 74, 75, 76, 77, 78, 79,
1918 80, 81, 82, 83, 84, 85, 86, 87, 0, 0,
1919 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1920 97, 98, 99, 100, 101, 102, 103, 104, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 105, 106, 107, 108, 109, 110, 0, 0, 111,
1923 112, 9, 10, 11, 12, 13, 14, 15, 0, 16,
1924 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1925 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1926 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1927 46, 47, 48, 49, 50, 51, 52, 53, 0, 0,
1928 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 55, 56, 57, 58, 59,
1930 60, 0, 0, 0, 0, 0, 0, 0, 61, 62,
1931 63, 64, 65, 0, 66, 67, 68, 69, 70, 71,
1932 0, 0, 0, 0, 0, 72, 73, 74, 75, 76,
1933 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1934 87, 0, 0, 0, 88, 89, 90, 91, 92, 93,
1935 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1936 104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 105, 106, 107, 108, 109, 110,
1938 0, 395, 111, 112, 9, 10, 11, 12, 13, 14,
1939 15, 0, 16, 0, 17, 18, 19, 20, 21, 22,
1940 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1941 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1942 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
1943 53, 0, 0, 54, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0, 55, 56,
1945 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
1946 0, 61, 62, 63, 64, 65, 0, 66, 67, 68,
1947 69, 70, 71, 0, 0, 0, 0, 0, 72, 73,
1948 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1949 84, 85, 86, 87, 0, 0, 0, 88, 89, 90,
1950 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1951 101, 102, 103, 104, 0, 0, 0, 0, 0, 0,
1952 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
1953 108, 109, 110, 0, 433, 111, 112, 9, 10, 11,
1954 12, 13, 14, 15, 449, 16, 0, 17, 18, 19,
1955 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1956 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1957 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
1958 50, 51, 52, 53, 0, 0, 54, 0, 0, 0,
1959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1960 0, 55, 56, 57, 58, 59, 60, 0, 0, 0,
1961 0, 0, 0, 0, 61, 62, 63, 64, 65, 0,
1962 66, 67, 68, 69, 70, 71, 0, 0, 0, 0,
1963 0, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1964 81, 82, 83, 84, 85, 86, 87, 0, 0, 0,
1965 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
1966 98, 99, 100, 101, 102, 103, 104, 0, 0, 0,
1967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1968 105, 106, 107, 108, 109, 110, 0, 0, 111, 112,
1969 9, 10, 11, 12, 13, 14, 15, 450, 16, 0,
1970 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1971 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1972 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1973 47, 48, 49, 50, 51, 52, 53, 0, 0, 54,
1974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 0, 55, 56, 57, 58, 59, 60,
1976 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
1977 64, 65, 0, 66, 67, 68, 69, 70, 71, 0,
1978 0, 0, 0, 0, 72, 73, 74, 75, 76, 77,
1979 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1980 0, 0, 0, 88, 89, 90, 91, 92, 93, 94,
1981 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1983 0, 0, 0, 105, 106, 107, 108, 109, 110, 0,
1984 0, 111, 112, 9, 10, 11, 12, 13, 14, 15,
1985 0, 16, 0, 17, 18, 19, 20, 21, 22, 23,
1986 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1987 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1988 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
1989 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 55, 56, 57,
1991 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
1992 61, 62, 63, 64, 65, 0, 66, 67, 68, 69,
1993 70, 71, 0, 0, 336, 0, 0, 72, 73, 74,
1994 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1995 85, 86, 87, 0, 0, 0, 88, 89, 90, 91,
1996 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
1997 102, 103, 104, 0, 0, 0, 0, 0, 0, 0,
1998 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
1999 109, 110, 0, 0, 111, 112, 9, 10, 11, 12,
2000 13, 14, 15, 0, 16, 387, 17, 18, 19, 20,
2001 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2002 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2003 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2004 51, 52, 53, 0, 0, 54, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2007 0, 0, 0, 61, 62, 63, 64, 65, 0, 66,
2008 67, 68, 69, 70, 71, 0, 0, 0, 0, 0,
2009 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2010 82, 83, 84, 85, 86, 87, 0, 0, 0, 88,
2011 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2012 99, 100, 101, 102, 103, 104, 0, 0, 0, 0,
2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 105,
2014 106, 107, 108, 109, 110, 0, 0, 111, 112, 9,
2015 10, 11, 12, 13, 14, 15, 0, 16, 0, 17,
2016 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2017 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2018 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2019 48, 49, 50, 51, 52, 53, 0, 0, 54, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2021 0, 0, 0, 55, 56, 57, 58, 59, 60, 0,
2022 0, 0, 0, 0, 0, 0, 61, 62, 63, 64,
2023 65, 0, 66, 67, 68, 69, 70, 71, 0, 0,
2024 0, 0, 0, 72, 73, 74, 75, 76, 77, 78,
2025 79, 80, 81, 82, 83, 84, 85, 86, 87, 0,
2026 0, 0, 88, 89, 90, 91, 92, 93, 94, 95,
2027 96, 97, 98, 99, 100, 101, 102, 103, 104, 0,
2028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029 0, 0, 105, 106, 107, 108, 109, 110, 0, 0,
2030 111, 112, 9, 10, 11, 12, 0, 0, 15, 0,
2031 16, 0, 17, 18, 19, 20, 21, 22, 23, 24,
2032 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2033 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2034 45, 46, 47, 48, 49, 50, 51, 52, 53, 0,
2035 0, 54, 0, 0, 0, 0, 0, 0, 0, 0,
2036 0, 0, 0, 0, 0, 0, 55, 56, 57, 58,
2037 59, 60, 0, 0, 0, 0, 0, 0, 0, 61,
2038 62, 63, 64, 65, 0, 66, 67, 68, 69, 70,
2039 71, 0, 0, 0, 0, 0, 72, 73, 74, 75,
2040 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2041 86, 87, 0, 0, 0, 88, 89, 90, 91, 92,
2042 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2043 103, 104, 0, 0, 0, 0, 0, 0, 0, 0,
2044 0, 0, 0, 0, 0, 105, 106, 107, 108, 109,
2045 110, 228, 0, 111, 112, 9, 10, 11, 12, 0,
2046 0, 15, 0, 16, 0, 17, 18, 19, 20, 21,
2047 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2048 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2049 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2050 52, 53, 0, 0, 54, 0, 0, 0, 0, 0,
2051 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
2052 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2053 0, 0, 61, 62, 63, 64, 65, 0, 66, 67,
2054 68, 69, 70, 71, 0, 0, 0, 0, 0, 72,
2055 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2056 83, 84, 85, 86, 87, 0, 0, 0, 88, 89,
2057 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2058 100, 101, 102, 103, 104, 0, 0, 0, 0, 0,
2059 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
2060 107, 108, 109, 110, 298, 0, 111, 112, 9, 10,
2061 11, 12, 0, 0, 15, 0, 16, 0, 17, 18,
2062 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2063 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2064 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2065 49, 50, 51, 52, 53, 0, 0, 54, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2067 0, 0, 55, 56, 57, 58, 59, 60, 0, 0,
2068 0, 0, 0, 0, 0, 61, 62, 63, 64, 65,
2069 0, 66, 67, 68, 69, 70, 71, 380, 0, 0,
2070 0, 0, 72, 73, 74, 75, 76, 77, 78, 79,
2071 80, 81, 82, 83, 84, 85, 86, 87, 0, 0,
2072 0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2073 97, 98, 99, 100, 101, 102, 103, 104, 0, 0,
2074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2075 0, 105, 106, 107, 108, 109, 110, 0, 0, 111,
2076 112, 9, 10, 11, 12, 398, 0, 15, 0, 16,
2077 0, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2078 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2079 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2080 46, 47, 48, 49, 50, 51, 52, 53, 0, 0,
2081 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2082 0, 0, 0, 0, 0, 55, 56, 57, 58, 59,
2083 60, 0, 0, 0, 0, 0, 0, 0, 61, 62,
2084 63, 64, 65, 0, 66, 67, 68, 69, 70, 71,
2085 0, 0, 0, 0, 0, 72, 73, 74, 75, 76,
2086 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2087 87, 0, 0, 0, 88, 89, 90, 91, 92, 93,
2088 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2089 104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2090 0, 0, 0, 0, 105, 106, 107, 108, 109, 110,
2091 0, 0, 111, 112, 9, 10, 11, 12, 0, 0,
2092 15, 0, 16, 0, 17, 18, 19, 20, 21, 22,
2093 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2094 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2095 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2096 53, 0, 0, 54, 0, 0, 0, 0, 0, 0,
2097 0, 0, 0, 0, 0, 0, 0, 0, 55, 56,
2098 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2099 0, 61, 62, 63, 64, 65, 0, 66, 67, 68,
2100 69, 70, 71, 434, 0, 0, 0, 0, 72, 73,
2101 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2102 84, 85, 86, 87, 0, 0, 0, 88, 89, 90,
2103 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
2104 101, 102, 103, 104, 0, 0, 0, 0, 0, 0,
2105 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
2106 108, 109, 110, 0, 0, 111, 112, 9, 10, 11,
2107 12, 0, 0, 15, 0, 16, 0, 17, 18, 19,
2108 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2109 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2110 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2111 50, 51, 52, 53, 0, 0, 54, 0, 0, 0,
2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2113 0, 55, 56, 57, 58, 59, 60, 0, 0, 0,
2114 0, 0, 0, 0, 61, 62, 63, 64, 65, 0,
2115 66, 67, 68, 69, 70, 71, 436, 0, 0, 0,
2116 0, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2117 81, 82, 83, 84, 85, 86, 87, 0, 0, 0,
2118 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2119 98, 99, 100, 101, 102, 103, 104, 0, 0, 0,
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121 105, 106, 107, 108, 109, 110, 0, 0, 111, 112,
2122 9, 10, 11, 12, 0, 0, 15, 0, 16, 0,
2123 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2124 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2125 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2126 47, 48, 49, 50, 51, 52, 53, 0, 0, 54,
2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2128 0, 0, 0, 0, 55, 56, 57, 58, 59, 60,
2129 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
2130 64, 65, 0, 66, 67, 68, 69, 70, 71, 510,
2131 0, 0, 0, 0, 72, 73, 74, 75, 76, 77,
2132 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2133 0, 0, 0, 88, 89, 90, 91, 92, 93, 94,
2134 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2136 0, 0, 0, 105, 106, 107, 108, 109, 110, 0,
2137 0, 111, 112, 9, 10, 11, 12, 0, 0, 15,
2138 0, 16, 0, 17, 18, 19, 20, 21, 22, 23,
2139 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2140 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2141 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2142 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 55, 56, 57,
2144 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2145 61, 62, 63, 64, 65, 0, 66, 67, 68, 69,
2146 70, 71, 0, 0, 0, 0, 0, 72, 73, 74,
2147 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2148 85, 86, 87, 0, 0, 0, 88, 89, 90, 91,
2149 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2150 102, 103, 104, 0, 0, 0, 0, 0, 0, 0,
2151 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
2152 109, 110, 0, 0, 111, 112, 9, 10, 11, 12,
2153 0, 0, 15, 0, 16, 0, 17, 18, 19, 20,
2154 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2155 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2156 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2157 51, 52, 53, 0, 0, 54, 0, 0, 0, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2159 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2160 0, 0, 0, 61, 62, 63, 64, 65, 0, 66,
2161 67, 68, 69, 70, 71, 0, 0, 0, 0, 0,
2162 72, 73, 74, 75, 76, 77, 78, 79, 80, 507,
2163 82, 83, 84, 85, 86, 87, 0, 0, 0, 88,
2164 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
2165 99, 100, 101, 102, 103, 104, 0, 0, 0, 0,
2166 0, 0, 0, 0, 0, 0, 0, 0, 0, 105,
2167 106, 107, 108, 109, 110, 0, 0, 111, 112
2168 };
2169
2170 static const yytype_int16 yycheck[] =
2171 {
2172 2, 3, 15, 15, 60, 16, 240, 330, 60, 332,
2173 405, 406, 99, 15, 283, 284, 285, 286, 287, 288,
2174 80, 290, 291, 292, 293, 294, 16, 0, 16, 60,
2175 60, 405, 406, 58, 98, 16, 80, 16, 2, 3,
2176 56, 85, 80, 60, 13, 14, 84, 16, 13, 14,
2177 60, 15, 63, 64, 15, 60, 60, 60, 57, 60,
2178 147, 39, 40, 79, 66, 67, 68, 69, 70, 60,
2179 60, 60, 60, 113, 57, 2, 3, 400, 98, 60,
2180 98, 80, 15, 139, 63, 64, 481, 139, 15, 98,
2181 101, 102, 487, 79, 154, 329, 72, 80, 162, 112,
2182 112, 98, 66, 67, 68, 69, 70, 481, 139, 139,
2183 72, 113, 16, 487, 116, 140, 141, 142, 143, 144,
2184 145, 146, 139, 148, 149, 150, 151, 13, 14, 139,
2185 16, 39, 40, 456, 139, 139, 139, 79, 139, 66,
2186 67, 68, 69, 70, 63, 64, 39, 40, 139, 189,
2187 139, 79, 116, 38, 39, 79, 41, 197, 62, 63,
2188 64, 65, 66, 67, 68, 69, 70, 71, 98, 403,
2189 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
2190 39, 40, 101, 102, 13, 14, 113, 189, 98, 116,
2191 80, 81, 82, 83, 72, 197, 13, 14, 98, 16,
2192 13, 14, 98, 16, 13, 14, 79, 16, 5, 6,
2193 7, 38, 39, 40, 254, 255, 256, 257, 258, 39,
2194 40, 41, 72, 546, 13, 14, 228, 496, 39, 40,
2195 41, 39, 40, 41, 39, 40, 41, 13, 14, 15,
2196 242, 81, 82, 83, 13, 14, 98, 63, 64, 440,
2197 441, 154, 254, 255, 256, 257, 258, 154, 84, 119,
2198 85, 98, 189, 15, 228, 534, 15, 307, 15, 15,
2199 197, 59, 57, 80, 543, 79, 147, 14, 13, 13,
2200 320, 283, 284, 285, 286, 287, 288, 521, 290, 291,
2201 292, 293, 294, 14, 296, 297, 298, 337, 14, 13,
2202 13, 228, 79, 141, 140, 307, 145, 142, 149, 143,
2203 72, 144, 314, 315, 72, 242, 148, 72, 320, 150,
2204 120, 151, 72, 80, 72, 79, 121, 254, 255, 256,
2205 257, 258, 296, 297, 298, 337, 72, 377, 378, 379,
2206 72, 72, 72, 72, 72, 72, 58, 58, 5, 5,
2207 314, 315, 247, 393, 394, 80, 283, 284, 285, 286,
2208 287, 288, 347, 290, 291, 292, 293, 294, 350, 296,
2209 297, 298, 418, 353, 467, 377, 378, 379, 536, 408,
2210 307, 481, 409, 385, 386, 487, -1, 314, 315, -1,
2211 -1, 393, 394, 320, -1, -1, -1, -1, -1, -1,
2212 440, 441, -1, -1, -1, -1, 408, 409, -1, -1,
2213 337, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2214 -1, 385, 386, -1, -1, -1, -1, -1, -1, -1,
2215 -1, -1, -1, -1, -1, -1, -1, -1, 440, 441,
2216 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2217 377, 378, 379, -1, -1, -1, -1, -1, 385, 386,
2218 -1, -1, -1, -1, -1, -1, 393, 394, -1, -1,
2219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2220 -1, 408, 409, -1, -1, -1, -1, -1, -1, -1,
2221 -1, -1, -1, -1, 496, -1, -1, -1, -1, -1,
2222 -1, -1, -1, -1, -1, -1, -1, -1, -1, 549,
2223 -1, -1, -1, 440, 441, -1, -1, -1, -1, -1,
2224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2225 -1, -1, 534, -1, 536, -1, -1, -1, 540, -1,
2226 -1, 543, -1, -1, -1, -1, -1, 549, -1, 13,
2227 14, 15, -1, -1, -1, -1, -1, -1, -1, -1,
2228 -1, 25, 26, -1, -1, -1, -1, -1, -1, 496,
2229 -1, -1, -1, -1, -1, -1, 540, -1, 42, 43,
2230 44, 45, 46, 47, 48, 49, 50, 51, 52, -1,
2231 -1, 55, 56, 57, 58, -1, -1, -1, -1, 63,
2232 64, 65, -1, -1, -1, -1, -1, 534, -1, 536,
2233 -1, -1, -1, 540, 78, -1, 543, -1, -1, -1,
2234 84, -1, 549, -1, 88, 89, 90, 91, 92, 93,
2235 94, 95, 96, 97, 98, 99, 100, 101, -1, -1,
2236 -1, -1, 106, -1, -1, -1, 110, -1, -1, -1,
2237 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2238 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2239 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2240 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2241 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2243 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2244 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, -1, -1, -1, -1, -1, 222, 223,
2248 -1, -1, -1, -1, -1, -1, 230, 231, 232, 233,
2249 234, -1, -1, -1, 238, -1, -1, 241, -1, -1,
2250 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2251 -1, -1, -1, -1, -1, -1, -1, 261, 262, 263,
2252 264, 265, 266, -1, -1, -1, -1, -1, -1, -1,
2253 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2254 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2255 -1, -1, -1, -1, -1, -1, -1, 301, -1, -1,
2256 -1, 305, 306, -1, 308, 309, 310, 311, -1, -1,
2257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2258 -1, -1, 326, 327, 328, -1, -1, -1, -1, -1,
2259 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2261 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2262 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2263 -1, -1, -1, -1, -1, -1, 380, -1, 382, -1,
2264 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2265 -1, 395, -1, -1, 398, -1, -1, -1, 402, -1,
2266 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2267 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2268 -1, -1, -1, -1, -1, -1, -1, -1, -1, 433,
2269 434, -1, 436, -1, 438, 439, -1, -1, -1, -1,
2270 -1, 445, 446, 447, 448, 3, 4, -1, -1, 453,
2271 -1, 9, 10, 11, 12, 13, 14, 15, 16, 17,
2272 -1, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2273 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2274 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2275 48, 49, 50, 51, 52, 53, 54, 55, -1, -1,
2276 58, -1, -1, -1, -1, -1, 510, -1, -1, -1,
2277 -1, -1, -1, -1, -1, 73, 74, 75, 76, 77,
2278 78, -1, -1, -1, -1, -1, -1, -1, 86, 87,
2279 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
2280 -1, -1, -1, -1, -1, 103, 104, 105, 106, 107,
2281 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2282 118, -1, -1, -1, 122, 123, 124, 125, 126, 127,
2283 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2284 138, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2285 -1, -1, -1, -1, 152, 153, 154, 155, 156, 157,
2286 3, 4, 160, 161, -1, -1, 9, 10, 11, 12,
2287 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
2288 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2289 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2290 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2291 53, 54, 55, -1, -1, 58, -1, -1, -1, -1,
2292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293 73, 74, 75, 76, 77, 78, -1, -1, -1, -1,
2294 -1, -1, -1, 86, 87, 88, 89, 90, -1, 92,
2295 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2296 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2297 113, 114, 115, 116, 117, 118, -1, -1, -1, 122,
2298 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2299 133, 134, 135, 136, 137, 138, -1, -1, -1, -1,
2300 -1, -1, -1, -1, -1, -1, -1, -1, -1, 152,
2301 153, 154, 155, 156, 157, -1, -1, 160, 161, 8,
2302 9, 10, 11, 12, 13, 14, 15, -1, 17, -1,
2303 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2304 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2305 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2306 49, 50, 51, 52, 53, 54, 55, -1, -1, 58,
2307 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2308 -1, -1, -1, -1, 73, 74, 75, 76, 77, 78,
2309 -1, -1, -1, -1, -1, -1, -1, 86, 87, 88,
2310 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
2311 -1, -1, -1, -1, 103, 104, 105, 106, 107, 108,
2312 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2313 -1, -1, -1, 122, 123, 124, 125, 126, 127, 128,
2314 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2315 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2316 -1, -1, -1, 152, 153, 154, 155, 156, 157, -1,
2317 -1, 160, 161, 8, 9, 10, 11, 12, 13, 14,
2318 15, -1, 17, -1, 19, 20, 21, 22, 23, 24,
2319 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2320 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2321 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2322 55, -1, -1, 58, -1, -1, -1, -1, -1, -1,
2323 -1, -1, -1, -1, -1, -1, -1, -1, 73, 74,
2324 75, 76, 77, 78, -1, -1, -1, -1, -1, -1,
2325 -1, 86, 87, 88, 89, 90, -1, 92, 93, 94,
2326 95, 96, 97, -1, -1, -1, -1, -1, 103, 104,
2327 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2328 115, 116, 117, 118, -1, -1, -1, 122, 123, 124,
2329 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2330 135, 136, 137, 138, -1, -1, -1, -1, -1, -1,
2331 -1, -1, -1, -1, -1, -1, -1, 152, 153, 154,
2332 155, 156, 157, -1, -1, 160, 161, 8, 9, 10,
2333 11, 12, 13, 14, 15, -1, 17, -1, 19, 20,
2334 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2335 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2336 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2337 51, 52, 53, 54, 55, -1, -1, 58, -1, -1,
2338 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2339 -1, -1, 73, 74, 75, 76, 77, 78, -1, -1,
2340 -1, -1, -1, -1, -1, 86, 87, 88, 89, 90,
2341 -1, 92, 93, 94, 95, 96, 97, -1, -1, -1,
2342 -1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
2343 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
2344 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2345 131, 132, 133, 134, 135, 136, 137, 138, -1, -1,
2346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2347 -1, 152, 153, 154, 155, 156, 157, -1, -1, 160,
2348 161, 8, 9, 10, 11, 12, 13, 14, 15, -1,
2349 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
2350 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2351 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2352 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
2353 -1, 58, -1, -1, -1, -1, -1, -1, -1, -1,
2354 -1, -1, -1, -1, -1, -1, 73, 74, 75, 76,
2355 77, 78, -1, -1, -1, -1, -1, -1, -1, 86,
2356 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
2357 97, -1, -1, -1, -1, -1, 103, 104, 105, 106,
2358 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2359 117, 118, -1, -1, -1, 122, 123, 124, 125, 126,
2360 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2361 137, 138, -1, -1, -1, -1, -1, -1, -1, -1,
2362 -1, -1, -1, -1, -1, 152, 153, 154, 155, 156,
2363 157, -1, -1, 160, 161, 9, 10, 11, 12, 13,
2364 14, 15, -1, 17, -1, 19, 20, 21, 22, 23,
2365 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2366 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2367 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2368 54, 55, -1, -1, 58, -1, -1, 61, -1, -1,
2369 -1, -1, -1, -1, -1, -1, -1, -1, -1, 73,
2370 74, 75, 76, 77, 78, -1, -1, -1, -1, -1,
2371 -1, -1, 86, 87, 88, 89, 90, 91, 92, 93,
2372 94, 95, 96, 97, -1, -1, 100, -1, -1, 103,
2373 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2374 114, 115, 116, 117, 118, -1, -1, -1, 122, 123,
2375 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2376 134, 135, 136, 137, 138, -1, -1, -1, -1, -1,
2377 -1, -1, -1, -1, -1, -1, -1, -1, 152, 153,
2378 154, 155, 156, 157, -1, -1, 160, 161, 9, 10,
2379 11, 12, 13, 14, 15, -1, 17, -1, 19, 20,
2380 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2381 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2382 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2383 51, 52, 53, 54, 55, -1, -1, 58, -1, -1,
2384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2385 -1, -1, 73, 74, 75, 76, 77, 78, -1, -1,
2386 -1, -1, -1, -1, -1, 86, 87, 88, 89, 90,
2387 91, 92, 93, 94, 95, 96, 97, -1, -1, 100,
2388 -1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
2389 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
2390 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2391 131, 132, 133, 134, 135, 136, 137, 138, -1, -1,
2392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393 -1, 152, 153, 154, 155, 156, 157, -1, -1, 160,
2394 161, 9, 10, 11, 12, 13, 14, 15, -1, 17,
2395 -1, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2396 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2397 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2398 48, 49, 50, 51, 52, 53, 54, 55, -1, -1,
2399 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2400 -1, -1, -1, -1, -1, 73, 74, 75, 76, 77,
2401 78, -1, -1, -1, -1, -1, -1, -1, 86, 87,
2402 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
2403 -1, -1, -1, -1, -1, 103, 104, 105, 106, 107,
2404 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2405 118, -1, -1, -1, 122, 123, 124, 125, 126, 127,
2406 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2407 138, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2408 -1, -1, -1, -1, 152, 153, 154, 155, 156, 157,
2409 -1, 159, 160, 161, 9, 10, 11, 12, 13, 14,
2410 15, -1, 17, -1, 19, 20, 21, 22, 23, 24,
2411 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2412 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2413 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2414 55, -1, -1, 58, -1, -1, -1, -1, -1, -1,
2415 -1, -1, -1, -1, -1, -1, -1, -1, 73, 74,
2416 75, 76, 77, 78, -1, -1, -1, -1, -1, -1,
2417 -1, 86, 87, 88, 89, 90, -1, 92, 93, 94,
2418 95, 96, 97, -1, -1, -1, -1, -1, 103, 104,
2419 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2420 115, 116, 117, 118, -1, -1, -1, 122, 123, 124,
2421 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2422 135, 136, 137, 138, -1, -1, -1, -1, -1, -1,
2423 -1, -1, -1, -1, -1, -1, -1, 152, 153, 154,
2424 155, 156, 157, -1, 159, 160, 161, 9, 10, 11,
2425 12, 13, 14, 15, 16, 17, -1, 19, 20, 21,
2426 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2427 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2428 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2429 52, 53, 54, 55, -1, -1, 58, -1, -1, -1,
2430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2431 -1, 73, 74, 75, 76, 77, 78, -1, -1, -1,
2432 -1, -1, -1, -1, 86, 87, 88, 89, 90, -1,
2433 92, 93, 94, 95, 96, 97, -1, -1, -1, -1,
2434 -1, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2435 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
2436 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2437 132, 133, 134, 135, 136, 137, 138, -1, -1, -1,
2438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2439 152, 153, 154, 155, 156, 157, -1, -1, 160, 161,
2440 9, 10, 11, 12, 13, 14, 15, 16, 17, -1,
2441 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2442 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2443 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2444 49, 50, 51, 52, 53, 54, 55, -1, -1, 58,
2445 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2446 -1, -1, -1, -1, 73, 74, 75, 76, 77, 78,
2447 -1, -1, -1, -1, -1, -1, -1, 86, 87, 88,
2448 89, 90, -1, 92, 93, 94, 95, 96, 97, -1,
2449 -1, -1, -1, -1, 103, 104, 105, 106, 107, 108,
2450 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2451 -1, -1, -1, 122, 123, 124, 125, 126, 127, 128,
2452 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2453 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2454 -1, -1, -1, 152, 153, 154, 155, 156, 157, -1,
2455 -1, 160, 161, 9, 10, 11, 12, 13, 14, 15,
2456 -1, 17, -1, 19, 20, 21, 22, 23, 24, 25,
2457 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2458 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2459 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2460 -1, -1, 58, -1, -1, -1, -1, -1, -1, -1,
2461 -1, -1, -1, -1, -1, -1, -1, 73, 74, 75,
2462 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
2463 86, 87, 88, 89, 90, -1, 92, 93, 94, 95,
2464 96, 97, -1, -1, 100, -1, -1, 103, 104, 105,
2465 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2466 116, 117, 118, -1, -1, -1, 122, 123, 124, 125,
2467 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2468 136, 137, 138, -1, -1, -1, -1, -1, -1, -1,
2469 -1, -1, -1, -1, -1, -1, 152, 153, 154, 155,
2470 156, 157, -1, -1, 160, 161, 9, 10, 11, 12,
2471 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
2472 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2473 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2474 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2475 53, 54, 55, -1, -1, 58, -1, -1, -1, -1,
2476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2477 73, 74, 75, 76, 77, 78, -1, -1, -1, -1,
2478 -1, -1, -1, 86, 87, 88, 89, 90, -1, 92,
2479 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2480 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2481 113, 114, 115, 116, 117, 118, -1, -1, -1, 122,
2482 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2483 133, 134, 135, 136, 137, 138, -1, -1, -1, -1,
2484 -1, -1, -1, -1, -1, -1, -1, -1, -1, 152,
2485 153, 154, 155, 156, 157, -1, -1, 160, 161, 9,
2486 10, 11, 12, 13, 14, 15, -1, 17, -1, 19,
2487 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2488 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2489 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2490 50, 51, 52, 53, 54, 55, -1, -1, 58, -1,
2491 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2492 -1, -1, -1, 73, 74, 75, 76, 77, 78, -1,
2493 -1, -1, -1, -1, -1, -1, 86, 87, 88, 89,
2494 90, -1, 92, 93, 94, 95, 96, 97, -1, -1,
2495 -1, -1, -1, 103, 104, 105, 106, 107, 108, 109,
2496 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
2497 -1, -1, 122, 123, 124, 125, 126, 127, 128, 129,
2498 130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
2499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2500 -1, -1, 152, 153, 154, 155, 156, 157, -1, -1,
2501 160, 161, 9, 10, 11, 12, -1, -1, 15, -1,
2502 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
2503 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2504 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2505 47, 48, 49, 50, 51, 52, 53, 54, 55, -1,
2506 -1, 58, -1, -1, -1, -1, -1, -1, -1, -1,
2507 -1, -1, -1, -1, -1, -1, 73, 74, 75, 76,
2508 77, 78, -1, -1, -1, -1, -1, -1, -1, 86,
2509 87, 88, 89, 90, -1, 92, 93, 94, 95, 96,
2510 97, -1, -1, -1, -1, -1, 103, 104, 105, 106,
2511 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
2512 117, 118, -1, -1, -1, 122, 123, 124, 125, 126,
2513 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2514 137, 138, -1, -1, -1, -1, -1, -1, -1, -1,
2515 -1, -1, -1, -1, -1, 152, 153, 154, 155, 156,
2516 157, 158, -1, 160, 161, 9, 10, 11, 12, -1,
2517 -1, 15, -1, 17, -1, 19, 20, 21, 22, 23,
2518 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2519 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
2520 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
2521 54, 55, -1, -1, 58, -1, -1, -1, -1, -1,
2522 -1, -1, -1, -1, -1, -1, -1, -1, -1, 73,
2523 74, 75, 76, 77, 78, -1, -1, -1, -1, -1,
2524 -1, -1, 86, 87, 88, 89, 90, -1, 92, 93,
2525 94, 95, 96, 97, -1, -1, -1, -1, -1, 103,
2526 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
2527 114, 115, 116, 117, 118, -1, -1, -1, 122, 123,
2528 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2529 134, 135, 136, 137, 138, -1, -1, -1, -1, -1,
2530 -1, -1, -1, -1, -1, -1, -1, -1, 152, 153,
2531 154, 155, 156, 157, 158, -1, 160, 161, 9, 10,
2532 11, 12, -1, -1, 15, -1, 17, -1, 19, 20,
2533 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2534 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2535 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2536 51, 52, 53, 54, 55, -1, -1, 58, -1, -1,
2537 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2538 -1, -1, 73, 74, 75, 76, 77, 78, -1, -1,
2539 -1, -1, -1, -1, -1, 86, 87, 88, 89, 90,
2540 -1, 92, 93, 94, 95, 96, 97, 98, -1, -1,
2541 -1, -1, 103, 104, 105, 106, 107, 108, 109, 110,
2542 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
2543 -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
2544 131, 132, 133, 134, 135, 136, 137, 138, -1, -1,
2545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2546 -1, 152, 153, 154, 155, 156, 157, -1, -1, 160,
2547 161, 9, 10, 11, 12, 13, -1, 15, -1, 17,
2548 -1, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2549 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2550 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2551 48, 49, 50, 51, 52, 53, 54, 55, -1, -1,
2552 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2553 -1, -1, -1, -1, -1, 73, 74, 75, 76, 77,
2554 78, -1, -1, -1, -1, -1, -1, -1, 86, 87,
2555 88, 89, 90, -1, 92, 93, 94, 95, 96, 97,
2556 -1, -1, -1, -1, -1, 103, 104, 105, 106, 107,
2557 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2558 118, -1, -1, -1, 122, 123, 124, 125, 126, 127,
2559 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
2560 138, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2561 -1, -1, -1, -1, 152, 153, 154, 155, 156, 157,
2562 -1, -1, 160, 161, 9, 10, 11, 12, -1, -1,
2563 15, -1, 17, -1, 19, 20, 21, 22, 23, 24,
2564 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2565 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2566 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2567 55, -1, -1, 58, -1, -1, -1, -1, -1, -1,
2568 -1, -1, -1, -1, -1, -1, -1, -1, 73, 74,
2569 75, 76, 77, 78, -1, -1, -1, -1, -1, -1,
2570 -1, 86, 87, 88, 89, 90, -1, 92, 93, 94,
2571 95, 96, 97, 98, -1, -1, -1, -1, 103, 104,
2572 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
2573 115, 116, 117, 118, -1, -1, -1, 122, 123, 124,
2574 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2575 135, 136, 137, 138, -1, -1, -1, -1, -1, -1,
2576 -1, -1, -1, -1, -1, -1, -1, 152, 153, 154,
2577 155, 156, 157, -1, -1, 160, 161, 9, 10, 11,
2578 12, -1, -1, 15, -1, 17, -1, 19, 20, 21,
2579 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2580 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2581 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2582 52, 53, 54, 55, -1, -1, 58, -1, -1, -1,
2583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2584 -1, 73, 74, 75, 76, 77, 78, -1, -1, -1,
2585 -1, -1, -1, -1, 86, 87, 88, 89, 90, -1,
2586 92, 93, 94, 95, 96, 97, 98, -1, -1, -1,
2587 -1, 103, 104, 105, 106, 107, 108, 109, 110, 111,
2588 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
2589 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2590 132, 133, 134, 135, 136, 137, 138, -1, -1, -1,
2591 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2592 152, 153, 154, 155, 156, 157, -1, -1, 160, 161,
2593 9, 10, 11, 12, -1, -1, 15, -1, 17, -1,
2594 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2595 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
2596 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2597 49, 50, 51, 52, 53, 54, 55, -1, -1, 58,
2598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2599 -1, -1, -1, -1, 73, 74, 75, 76, 77, 78,
2600 -1, -1, -1, -1, -1, -1, -1, 86, 87, 88,
2601 89, 90, -1, 92, 93, 94, 95, 96, 97, 98,
2602 -1, -1, -1, -1, 103, 104, 105, 106, 107, 108,
2603 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
2604 -1, -1, -1, 122, 123, 124, 125, 126, 127, 128,
2605 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2607 -1, -1, -1, 152, 153, 154, 155, 156, 157, -1,
2608 -1, 160, 161, 9, 10, 11, 12, -1, -1, 15,
2609 -1, 17, -1, 19, 20, 21, 22, 23, 24, 25,
2610 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2611 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2612 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2613 -1, -1, 58, -1, -1, -1, -1, -1, -1, -1,
2614 -1, -1, -1, -1, -1, -1, -1, 73, 74, 75,
2615 76, 77, 78, -1, -1, -1, -1, -1, -1, -1,
2616 86, 87, 88, 89, 90, -1, 92, 93, 94, 95,
2617 96, 97, -1, -1, -1, -1, -1, 103, 104, 105,
2618 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2619 116, 117, 118, -1, -1, -1, 122, 123, 124, 125,
2620 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2621 136, 137, 138, -1, -1, -1, -1, -1, -1, -1,
2622 -1, -1, -1, -1, -1, -1, 152, 153, 154, 155,
2623 156, 157, -1, -1, 160, 161, 9, 10, 11, 12,
2624 -1, -1, 15, -1, 17, -1, 19, 20, 21, 22,
2625 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2626 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2627 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2628 53, 54, 55, -1, -1, 58, -1, -1, -1, -1,
2629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2630 73, 74, 75, 76, 77, 78, -1, -1, -1, -1,
2631 -1, -1, -1, 86, 87, 88, 89, 90, -1, 92,
2632 93, 94, 95, 96, 97, -1, -1, -1, -1, -1,
2633 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
2634 113, 114, 115, 116, 117, 118, -1, -1, -1, 122,
2635 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2636 133, 134, 135, 136, 137, 138, -1, -1, -1, -1,
2637 -1, -1, -1, -1, -1, -1, -1, -1, -1, 152,
2638 153, 154, 155, 156, 157, -1, -1, 160, 161
2639 };
2640
2641 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2642 symbol of state STATE-NUM. */
2643 static const yytype_int16 yystos[] =
2644 {
2645 0, 5, 6, 7, 164, 165, 166, 167, 8, 9,
2646 10, 11, 12, 13, 14, 15, 17, 19, 20, 21,
2647 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2648 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
2649 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
2650 52, 53, 54, 55, 58, 73, 74, 75, 76, 77,
2651 78, 86, 87, 88, 89, 90, 92, 93, 94, 95,
2652 96, 97, 103, 104, 105, 106, 107, 108, 109, 110,
2653 111, 112, 113, 114, 115, 116, 117, 118, 122, 123,
2654 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2655 134, 135, 136, 137, 138, 152, 153, 154, 155, 156,
2656 157, 160, 161, 168, 169, 170, 171, 173, 174, 175,
2657 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
2658 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
2659 196, 197, 198, 199, 200, 201, 202, 203, 204, 207,
2660 210, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2661 222, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2662 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
2663 244, 245, 246, 247, 248, 249, 251, 252, 8, 168,
2664 0, 166, 167, 170, 178, 180, 170, 168, 170, 38,
2665 39, 40, 39, 40, 41, 39, 40, 41, 39, 40,
2666 41, 39, 40, 41, 39, 40, 39, 40, 39, 40,
2667 39, 40, 170, 170, 98, 98, 98, 98, 158, 170,
2668 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2669 15, 112, 15, 170, 170, 170, 170, 79, 79, 79,
2670 79, 170, 170, 170, 168, 168, 168, 168, 168, 98,
2671 170, 98, 98, 98, 170, 72, 72, 79, 170, 170,
2672 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2673 170, 170, 58, 140, 141, 142, 143, 144, 145, 146,
2674 148, 149, 150, 151, 15, 170, 72, 72, 158, 170,
2675 98, 98, 162, 8, 169, 13, 14, 168, 13, 14,
2676 13, 14, 154, 8, 3, 4, 16, 16, 170, 170,
2677 168, 170, 170, 170, 170, 170, 170, 13, 14, 15,
2678 223, 224, 223, 170, 61, 91, 100, 168, 265, 266,
2679 267, 268, 271, 203, 81, 82, 83, 205, 206, 84,
2680 211, 212, 85, 208, 209, 170, 170, 170, 170, 170,
2681 170, 119, 56, 79, 265, 265, 265, 265, 265, 265,
2682 99, 147, 265, 265, 265, 265, 265, 168, 168, 168,
2683 98, 170, 98, 170, 170, 3, 4, 18, 172, 170,
2684 170, 170, 170, 168, 168, 159, 170, 170, 13, 170,
2685 223, 224, 16, 15, 15, 15, 15, 16, 60, 59,
2686 80, 80, 206, 80, 212, 80, 209, 80, 79, 57,
2687 250, 139, 139, 139, 139, 139, 139, 147, 139, 139,
2688 139, 139, 16, 159, 98, 170, 98, 170, 14, 13,
2689 168, 168, 38, 39, 41, 14, 13, 14, 13, 16,
2690 16, 170, 170, 13, 16, 170, 223, 62, 63, 64,
2691 65, 66, 67, 68, 69, 70, 71, 253, 254, 255,
2692 256, 257, 258, 259, 260, 261, 262, 263, 264, 256,
2693 257, 269, 270, 101, 102, 256, 257, 272, 273, 274,
2694 275, 266, 271, 79, 250, 57, 80, 140, 141, 142,
2695 143, 144, 145, 148, 149, 150, 151, 112, 170, 170,
2696 98, 170, 170, 170, 172, 172, 170, 170, 170, 170,
2697 170, 15, 112, 16, 72, 72, 72, 72, 72, 72,
2698 72, 72, 72, 72, 16, 254, 16, 270, 72, 72,
2699 16, 273, 120, 80, 265, 170, 223, 265, 267, 168,
2700 80, 265, 139, 16, 16, 79, 139, 58, 121, 58,
2701 80
2702 };
2703
2704 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2705 static const yytype_int16 yyr1[] =
2706 {
2707 0, 163, 164, 165, 165, 165, 165, 165, 166, 167,
2708 167, 167, 167, 168, 168, 169, 169, 169, 169, 169,
2709 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
2710 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2711 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2712 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2713 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2714 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2715 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2716 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
2717 170, 170, 171, 171, 171, 172, 172, 172, 173, 173,
2718 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
2719 173, 173, 173, 173, 173, 173, 173, 173, 174, 175,
2720 176, 177, 178, 179, 179, 180, 181, 181, 181, 181,
2721 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
2722 181, 181, 181, 182, 183, 184, 185, 186, 187, 188,
2723 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
2724 198, 199, 200, 201, 202, 203, 203, 204, 205, 205,
2725 206, 206, 206, 207, 208, 208, 209, 210, 211, 211,
2726 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
2727 221, 222, 222, 222, 223, 223, 224, 224, 224, 224,
2728 225, 225, 226, 227, 227, 228, 228, 229, 229, 230,
2729 231, 232, 233, 233, 234, 234, 235, 236, 237, 238,
2730 239, 239, 240, 240, 241, 241, 242, 243, 243, 244,
2731 244, 244, 244, 244, 244, 245, 245, 246, 246, 247,
2732 247, 248, 249, 249, 249, 249, 249, 249, 249, 249,
2733 249, 249, 249, 249, 249, 249, 250, 250, 251, 252,
2734 252, 253, 253, 254, 254, 254, 254, 254, 254, 254,
2735 254, 254, 254, 255, 256, 257, 258, 259, 260, 261,
2736 262, 263, 264, 265, 265, 266, 266, 267, 267, 268,
2737 269, 269, 270, 270, 271, 271, 271, 272, 272, 273,
2738 273, 273, 273, 274, 275
2739 };
2740
2741 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2742 static const yytype_int8 yyr2[] =
2743 {
2744 0, 2, 1, 0, 1, 1, 2, 2, 1, 2,
2745 2, 3, 3, 1, 2, 5, 3, 5, 3, 5,
2746 3, 5, 3, 5, 5, 3, 3, 2, 2, 1,
2747 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2748 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2749 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2750 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2751 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2752 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2753 1, 1, 1, 1, 1, 3, 3, 3, 1, 1,
2754 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
2755 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2756 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
2757 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
2758 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2759 2, 2, 2, 10, 3, 3, 3, 3, 3, 3,
2760 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2761 2, 2, 2, 2, 4, 1, 2, 4, 1, 2,
2762 1, 1, 1, 4, 1, 2, 1, 4, 1, 2,
2763 1, 1, 1, 1, 1, 1, 1, 2, 3, 5,
2764 3, 8, 6, 6, 1, 2, 4, 2, 2, 3,
2765 3, 3, 2, 5, 5, 5, 5, 3, 3, 2,
2766 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2767 2, 2, 2, 2, 2, 2, 2, 5, 3, 5,
2768 6, 4, 5, 3, 4, 5, 3, 2, 3, 5,
2769 4, 1, 5, 5, 5, 5, 5, 5, 5, 5,
2770 5, 5, 9, 8, 4, 3, 2, 1, 4, 4,
2771 8, 1, 2, 1, 1, 1, 1, 1, 1, 1,
2772 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
2773 2, 2, 2, 1, 3, 1, 1, 1, 3, 5,
2774 1, 2, 1, 1, 0, 1, 5, 1, 2, 1,
2775 1, 1, 1, 2, 2
2776 };
2777
2778
2779 enum { YYENOMEM = -2 };
2780
2781 #define yyerrok (yyerrstatus = 0)
2782 #define yyclearin (yychar = YYEMPTY)
2783
2784 #define YYACCEPT goto yyacceptlab
2785 #define YYABORT goto yyabortlab
2786 #define YYERROR goto yyerrorlab
2787
2788
2789 #define YYRECOVERING() (!!yyerrstatus)
2790
2791 #define YYBACKUP(Token, Value) \
2792 do \
2793 if (yychar == YYEMPTY) \
2794 { \
2795 yychar = (Token); \
2796 yylval = (Value); \
2797 YYPOPSTACK (yylen); \
2798 yystate = *yyssp; \
2799 goto yybackup; \
2800 } \
2801 else \
2802 { \
2803 yyerror (ret_str, YY_("syntax error: cannot back up")); \
2804 YYERROR; \
2805 } \
2806 while (0)
2807
2808 /* Backward compatibility with an undocumented macro.
2809 Use YYerror or YYUNDEF. */
2810 #define YYERRCODE YYUNDEF
2811
2812
2813 /* Enable debugging if requested. */
2814 #if YYDEBUG
2815
2816 # ifndef YYFPRINTF
2817 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2818 # define YYFPRINTF fprintf
2819 # endif
2820
2821 # define YYDPRINTF(Args) \
2822 do { \
2823 if (yydebug) \
2824 YYFPRINTF Args; \
2825 } while (0)
2826
2827 /* This macro is provided for backward compatibility. */
2828 # ifndef YY_LOCATION_PRINT
2829 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2830 # endif
2831
2832
2833 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
2834 do { \
2835 if (yydebug) \
2836 { \
2837 YYFPRINTF (stderr, "%s ", Title); \
2838 yy_symbol_print (stderr, \
2839 Kind, Value, ret_str); \
2840 YYFPRINTF (stderr, "\n"); \
2841 } \
2842 } while (0)
2843
2844
2845 /*-----------------------------------.
2846 | Print this symbol's value on YYO. |
2847 `-----------------------------------*/
2848
2849 static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,char ** ret_str)2850 yy_symbol_value_print (FILE *yyo,
2851 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, char **ret_str)
2852 {
2853 FILE *yyoutput = yyo;
2854 YYUSE (yyoutput);
2855 YYUSE (ret_str);
2856 if (!yyvaluep)
2857 return;
2858 # ifdef YYPRINT
2859 if (yykind < YYNTOKENS)
2860 YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
2861 # endif
2862 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2863 YYUSE (yykind);
2864 YY_IGNORE_MAYBE_UNINITIALIZED_END
2865 }
2866
2867
2868 /*---------------------------.
2869 | Print this symbol on YYO. |
2870 `---------------------------*/
2871
2872 static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,char ** ret_str)2873 yy_symbol_print (FILE *yyo,
2874 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, char **ret_str)
2875 {
2876 YYFPRINTF (yyo, "%s %s (",
2877 yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2878
2879 yy_symbol_value_print (yyo, yykind, yyvaluep, ret_str);
2880 YYFPRINTF (yyo, ")");
2881 }
2882
2883 /*------------------------------------------------------------------.
2884 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2885 | TOP (included). |
2886 `------------------------------------------------------------------*/
2887
2888 static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2889 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2890 {
2891 YYFPRINTF (stderr, "Stack now");
2892 for (; yybottom <= yytop; yybottom++)
2893 {
2894 int yybot = *yybottom;
2895 YYFPRINTF (stderr, " %d", yybot);
2896 }
2897 YYFPRINTF (stderr, "\n");
2898 }
2899
2900 # define YY_STACK_PRINT(Bottom, Top) \
2901 do { \
2902 if (yydebug) \
2903 yy_stack_print ((Bottom), (Top)); \
2904 } while (0)
2905
2906
2907 /*------------------------------------------------.
2908 | Report that the YYRULE is going to be reduced. |
2909 `------------------------------------------------*/
2910
2911 static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,int yyrule,char ** ret_str)2912 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
2913 int yyrule, char **ret_str)
2914 {
2915 int yylno = yyrline[yyrule];
2916 int yynrhs = yyr2[yyrule];
2917 int yyi;
2918 YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2919 yyrule - 1, yylno);
2920 /* The symbols being reduced. */
2921 for (yyi = 0; yyi < yynrhs; yyi++)
2922 {
2923 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2924 yy_symbol_print (stderr,
2925 YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2926 &yyvsp[(yyi + 1) - (yynrhs)], ret_str);
2927 YYFPRINTF (stderr, "\n");
2928 }
2929 }
2930
2931 # define YY_REDUCE_PRINT(Rule) \
2932 do { \
2933 if (yydebug) \
2934 yy_reduce_print (yyssp, yyvsp, Rule, ret_str); \
2935 } while (0)
2936
2937 /* Nonzero means print parse trace. It is left uninitialized so that
2938 multiple parsers can coexist. */
2939 int yydebug;
2940 #else /* !YYDEBUG */
2941 # define YYDPRINTF(Args) ((void) 0)
2942 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2943 # define YY_STACK_PRINT(Bottom, Top)
2944 # define YY_REDUCE_PRINT(Rule)
2945 #endif /* !YYDEBUG */
2946
2947
2948 /* YYINITDEPTH -- initial size of the parser's stacks. */
2949 #ifndef YYINITDEPTH
2950 # define YYINITDEPTH 200
2951 #endif
2952
2953 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2954 if the built-in stack extension method is used).
2955
2956 Do not make this value too large; the results are undefined if
2957 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2958 evaluated with infinite-precision integer arithmetic. */
2959
2960 #ifndef YYMAXDEPTH
2961 # define YYMAXDEPTH 10000
2962 #endif
2963
2964
2965
2966
2967
2968
2969 /*-----------------------------------------------.
2970 | Release the memory associated to this symbol. |
2971 `-----------------------------------------------*/
2972
2973 static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,char ** ret_str)2974 yydestruct (const char *yymsg,
2975 yysymbol_kind_t yykind, YYSTYPE *yyvaluep, char **ret_str)
2976 {
2977 YYUSE (yyvaluep);
2978 YYUSE (ret_str);
2979 if (!yymsg)
2980 yymsg = "Deleting";
2981 YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2982
2983 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2984 YYUSE (yykind);
2985 YY_IGNORE_MAYBE_UNINITIALIZED_END
2986 }
2987
2988
2989 /* Lookahead token kind. */
2990 int yychar;
2991
2992 /* The semantic value of the lookahead symbol. */
2993 YYSTYPE yylval;
2994 /* Number of syntax errors so far. */
2995 int yynerrs;
2996
2997
2998
2999
3000 /*----------.
3001 | yyparse. |
3002 `----------*/
3003
3004 int
yyparse(char ** ret_str)3005 yyparse (char **ret_str)
3006 {
3007 yy_state_fast_t yystate = 0;
3008 /* Number of tokens to shift before error messages enabled. */
3009 int yyerrstatus = 0;
3010
3011 /* Refer to the stacks through separate pointers, to allow yyoverflow
3012 to reallocate them elsewhere. */
3013
3014 /* Their size. */
3015 YYPTRDIFF_T yystacksize = YYINITDEPTH;
3016
3017 /* The state stack: array, bottom, top. */
3018 yy_state_t yyssa[YYINITDEPTH];
3019 yy_state_t *yyss = yyssa;
3020 yy_state_t *yyssp = yyss;
3021
3022 /* The semantic value stack: array, bottom, top. */
3023 YYSTYPE yyvsa[YYINITDEPTH];
3024 YYSTYPE *yyvs = yyvsa;
3025 YYSTYPE *yyvsp = yyvs;
3026
3027 int yyn;
3028 /* The return value of yyparse. */
3029 int yyresult;
3030 /* Lookahead symbol kind. */
3031 yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
3032 /* The variables used to return semantic value and location from the
3033 action routines. */
3034 YYSTYPE yyval;
3035
3036
3037
3038 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3039
3040 /* The number of symbols on the RHS of the reduced rule.
3041 Keep to zero when no symbol should be popped. */
3042 int yylen = 0;
3043
3044 YYDPRINTF ((stderr, "Starting parse\n"));
3045
3046 yychar = YYEMPTY; /* Cause a token to be read. */
3047 goto yysetstate;
3048
3049
3050 /*------------------------------------------------------------.
3051 | yynewstate -- push a new state, which is found in yystate. |
3052 `------------------------------------------------------------*/
3053 yynewstate:
3054 /* In all cases, when you get here, the value and location stacks
3055 have just been pushed. So pushing a state here evens the stacks. */
3056 yyssp++;
3057
3058
3059 /*--------------------------------------------------------------------.
3060 | yysetstate -- set current state (the top of the stack) to yystate. |
3061 `--------------------------------------------------------------------*/
3062 yysetstate:
3063 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3064 YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
3065 YY_IGNORE_USELESS_CAST_BEGIN
3066 *yyssp = YY_CAST (yy_state_t, yystate);
3067 YY_IGNORE_USELESS_CAST_END
3068 YY_STACK_PRINT (yyss, yyssp);
3069
3070 if (yyss + yystacksize - 1 <= yyssp)
3071 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3072 goto yyexhaustedlab;
3073 #else
3074 {
3075 /* Get the current used size of the three stacks, in elements. */
3076 YYPTRDIFF_T yysize = yyssp - yyss + 1;
3077
3078 # if defined yyoverflow
3079 {
3080 /* Give user a chance to reallocate the stack. Use copies of
3081 these so that the &'s don't force the real ones into
3082 memory. */
3083 yy_state_t *yyss1 = yyss;
3084 YYSTYPE *yyvs1 = yyvs;
3085
3086 /* Each stack pointer address is followed by the size of the
3087 data in use in that stack, in bytes. This used to be a
3088 conditional around just the two extra args, but that might
3089 be undefined if yyoverflow is a macro. */
3090 yyoverflow (YY_("memory exhausted"),
3091 &yyss1, yysize * YYSIZEOF (*yyssp),
3092 &yyvs1, yysize * YYSIZEOF (*yyvsp),
3093 &yystacksize);
3094 yyss = yyss1;
3095 yyvs = yyvs1;
3096 }
3097 # else /* defined YYSTACK_RELOCATE */
3098 /* Extend the stack our own way. */
3099 if (YYMAXDEPTH <= yystacksize)
3100 goto yyexhaustedlab;
3101 yystacksize *= 2;
3102 if (YYMAXDEPTH < yystacksize)
3103 yystacksize = YYMAXDEPTH;
3104
3105 {
3106 yy_state_t *yyss1 = yyss;
3107 union yyalloc *yyptr =
3108 YY_CAST (union yyalloc *,
3109 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3110 if (! yyptr)
3111 goto yyexhaustedlab;
3112 YYSTACK_RELOCATE (yyss_alloc, yyss);
3113 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3114 # undef YYSTACK_RELOCATE
3115 if (yyss1 != yyssa)
3116 YYSTACK_FREE (yyss1);
3117 }
3118 # endif
3119
3120 yyssp = yyss + yysize - 1;
3121 yyvsp = yyvs + yysize - 1;
3122
3123 YY_IGNORE_USELESS_CAST_BEGIN
3124 YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3125 YY_CAST (long, yystacksize)));
3126 YY_IGNORE_USELESS_CAST_END
3127
3128 if (yyss + yystacksize - 1 <= yyssp)
3129 YYABORT;
3130 }
3131 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3132
3133 if (yystate == YYFINAL)
3134 YYACCEPT;
3135
3136 goto yybackup;
3137
3138
3139 /*-----------.
3140 | yybackup. |
3141 `-----------*/
3142 yybackup:
3143 /* Do appropriate processing given the current state. Read a
3144 lookahead token if we need one and don't already have one. */
3145
3146 /* First try to decide what to do without reference to lookahead token. */
3147 yyn = yypact[yystate];
3148 if (yypact_value_is_default (yyn))
3149 goto yydefault;
3150
3151 /* Not known => get a lookahead token if don't already have one. */
3152
3153 /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
3154 if (yychar == YYEMPTY)
3155 {
3156 YYDPRINTF ((stderr, "Reading a token\n"));
3157 yychar = yylex ();
3158 }
3159
3160 if (yychar <= YYEOF)
3161 {
3162 yychar = YYEOF;
3163 yytoken = YYSYMBOL_YYEOF;
3164 YYDPRINTF ((stderr, "Now at end of input.\n"));
3165 }
3166 else if (yychar == YYerror)
3167 {
3168 /* The scanner already issued an error message, process directly
3169 to error recovery. But do not keep the error token as
3170 lookahead, it is too special and may lead us to an endless
3171 loop in error recovery. */
3172 yychar = YYUNDEF;
3173 yytoken = YYSYMBOL_YYerror;
3174 goto yyerrlab1;
3175 }
3176 else
3177 {
3178 yytoken = YYTRANSLATE (yychar);
3179 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3180 }
3181
3182 /* If the proper action on seeing token YYTOKEN is to reduce or to
3183 detect an error, take that action. */
3184 yyn += yytoken;
3185 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3186 goto yydefault;
3187 yyn = yytable[yyn];
3188 if (yyn <= 0)
3189 {
3190 if (yytable_value_is_error (yyn))
3191 goto yyerrlab;
3192 yyn = -yyn;
3193 goto yyreduce;
3194 }
3195
3196 /* Count tokens shifted since error; after three, turn off error
3197 status. */
3198 if (yyerrstatus)
3199 yyerrstatus--;
3200
3201 /* Shift the lookahead token. */
3202 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3203 yystate = yyn;
3204 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3205 *++yyvsp = yylval;
3206 YY_IGNORE_MAYBE_UNINITIALIZED_END
3207
3208 /* Discard the shifted token. */
3209 yychar = YYEMPTY;
3210 goto yynewstate;
3211
3212
3213 /*-----------------------------------------------------------.
3214 | yydefault -- do the default action for the current state. |
3215 `-----------------------------------------------------------*/
3216 yydefault:
3217 yyn = yydefact[yystate];
3218 if (yyn == 0)
3219 goto yyerrlab;
3220 goto yyreduce;
3221
3222
3223 /*-----------------------------.
3224 | yyreduce -- do a reduction. |
3225 `-----------------------------*/
3226 yyreduce:
3227 /* yyn is the number of a rule to reduce with. */
3228 yylen = yyr2[yyn];
3229
3230 /* If YYLEN is nonzero, implement the default value of the action:
3231 '$$ = $1'.
3232
3233 Otherwise, the following line sets YYVAL to garbage.
3234 This behavior is undocumented and Bison
3235 users should not rely upon it. Assigning to YYVAL
3236 unconditionally makes the parser a bit smaller, and it avoids a
3237 GCC warning that YYVAL may be used uninitialized. */
3238 yyval = yyvsp[1-yylen];
3239
3240
3241 YY_REDUCE_PRINT (yyn);
3242 switch (yyn)
3243 {
3244 case 2: /* doc: xmlmmlTermList */
3245 #line 286 "itex2MML.y"
3246 {/* all processing done in body*/}
3247 #line 3248 "y.tab.c"
3248 break;
3249
3250 case 3: /* xmlmmlTermList: %empty */
3251 #line 289 "itex2MML.y"
3252 {/* nothing - do nothing*/}
3253 #line 3254 "y.tab.c"
3254 break;
3255
3256 case 4: /* xmlmmlTermList: char */
3257 #line 290 "itex2MML.y"
3258 {/* proc done in body*/}
3259 #line 3260 "y.tab.c"
3260 break;
3261
3262 case 5: /* xmlmmlTermList: expression */
3263 #line 291 "itex2MML.y"
3264 {/* all proc. in body*/}
3265 #line 3266 "y.tab.c"
3266 break;
3267
3268 case 6: /* xmlmmlTermList: xmlmmlTermList char */
3269 #line 292 "itex2MML.y"
3270 {/* all proc. in body*/}
3271 #line 3272 "y.tab.c"
3272 break;
3273
3274 case 7: /* xmlmmlTermList: xmlmmlTermList expression */
3275 #line 293 "itex2MML.y"
3276 {/* all proc. in body*/}
3277 #line 3278 "y.tab.c"
3278 break;
3279
3280 case 8: /* char: CHAR */
3281 #line 295 "itex2MML.y"
3282 {printf("%s", yyvsp[0]);}
3283 #line 3284 "y.tab.c"
3284 break;
3285
3286 case 9: /* expression: STARTMATH ENDMATH */
3287 #line 297 "itex2MML.y"
3288 {/* empty math group - ignore*/}
3289 #line 3290 "y.tab.c"
3290 break;
3291
3292 case 10: /* expression: STARTDMATH ENDMATH */
3293 #line 298 "itex2MML.y"
3294 {/* ditto */}
3295 #line 3296 "y.tab.c"
3296 break;
3297
3298 case 11: /* expression: STARTMATH compoundTermList ENDMATH */
3299 #line 299 "itex2MML.y"
3300 {
3301 char ** r = (char **) ret_str;
3302 char * s = itex2MML_copy3("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'>", yyvsp[-1], "</math>");
3303 itex2MML_free_string(yyvsp[-1]);
3304 if (r) {
3305 (*r) = (s == itex2MML_empty_string) ? 0 : s;
3306 }
3307 else {
3308 if (itex2MML_write_mathml)
3309 (*itex2MML_write_mathml) (s);
3310 itex2MML_free_string(s);
3311 }
3312 }
3313 #line 3314 "y.tab.c"
3314 break;
3315
3316 case 12: /* expression: STARTDMATH compoundTermList ENDMATH */
3317 #line 312 "itex2MML.y"
3318 {
3319 char ** r = (char **) ret_str;
3320 char * s = itex2MML_copy3("<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'>", yyvsp[-1], "</math>");
3321 itex2MML_free_string(yyvsp[-1]);
3322 if (r) {
3323 (*r) = (s == itex2MML_empty_string) ? 0 : s;
3324 }
3325 else {
3326 if (itex2MML_write_mathml)
3327 (*itex2MML_write_mathml) (s);
3328 itex2MML_free_string(s);
3329 }
3330 }
3331 #line 3332 "y.tab.c"
3332 break;
3333
3334 case 13: /* compoundTermList: compoundTerm */
3335 #line 326 "itex2MML.y"
3336 {
3337 yyval = itex2MML_copy_string(yyvsp[0]);
3338 itex2MML_free_string(yyvsp[0]);
3339 }
3340 #line 3341 "y.tab.c"
3341 break;
3342
3343 case 14: /* compoundTermList: compoundTermList compoundTerm */
3344 #line 330 "itex2MML.y"
3345 {
3346 yyval = itex2MML_copy2(yyvsp[-1], yyvsp[0]);
3347 itex2MML_free_string(yyvsp[-1]);
3348 itex2MML_free_string(yyvsp[0]);
3349 }
3350 #line 3351 "y.tab.c"
3351 break;
3352
3353 case 15: /* compoundTerm: mob SUB closedTerm SUP closedTerm */
3354 #line 336 "itex2MML.y"
3355 {
3356 if (itex2MML_displaymode == 1) {
3357 char * s1 = itex2MML_copy3("<munderover>", yyvsp[-4], " ");
3358 char * s2 = itex2MML_copy3(yyvsp[-2], " ", yyvsp[0]);
3359 yyval = itex2MML_copy3(s1, s2, "</munderover>");
3360 itex2MML_free_string(s1);
3361 itex2MML_free_string(s2);
3362 }
3363 else {
3364 char * s1 = itex2MML_copy3("<msubsup>", yyvsp[-4], " ");
3365 char * s2 = itex2MML_copy3(yyvsp[-2], " ", yyvsp[0]);
3366 yyval = itex2MML_copy3(s1, s2, "</msubsup>");
3367 itex2MML_free_string(s1);
3368 itex2MML_free_string(s2);
3369 }
3370 itex2MML_free_string(yyvsp[-4]);
3371 itex2MML_free_string(yyvsp[-2]);
3372 itex2MML_free_string(yyvsp[0]);
3373 }
3374 #line 3375 "y.tab.c"
3375 break;
3376
3377 case 16: /* compoundTerm: mob SUB closedTerm */
3378 #line 355 "itex2MML.y"
3379 {
3380 if (itex2MML_displaymode == 1) {
3381 char * s1 = itex2MML_copy3("<munder>", yyvsp[-2], " ");
3382 yyval = itex2MML_copy3(s1, yyvsp[0], "</munder>");
3383 itex2MML_free_string(s1);
3384 }
3385 else {
3386 char * s1 = itex2MML_copy3("<msub>", yyvsp[-2], " ");
3387 yyval = itex2MML_copy3(s1, yyvsp[0], "</msub>");
3388 itex2MML_free_string(s1);
3389 }
3390 itex2MML_free_string(yyvsp[-2]);
3391 itex2MML_free_string(yyvsp[0]);
3392 }
3393 #line 3394 "y.tab.c"
3394 break;
3395
3396 case 17: /* compoundTerm: mob SUP closedTerm SUB closedTerm */
3397 #line 369 "itex2MML.y"
3398 {
3399 if (itex2MML_displaymode == 1) {
3400 char * s1 = itex2MML_copy3("<munderover>", yyvsp[-4], " ");
3401 char * s2 = itex2MML_copy3(yyvsp[0], " ", yyvsp[-2]);
3402 yyval = itex2MML_copy3(s1, s2, "</munderover>");
3403 itex2MML_free_string(s1);
3404 itex2MML_free_string(s2);
3405 }
3406 else {
3407 char * s1 = itex2MML_copy3("<msubsup>", yyvsp[-4], " ");
3408 char * s2 = itex2MML_copy3(yyvsp[0], " ", yyvsp[-2]);
3409 yyval = itex2MML_copy3(s1, s2, "</msubsup>");
3410 itex2MML_free_string(s1);
3411 itex2MML_free_string(s2);
3412 }
3413 itex2MML_free_string(yyvsp[-4]);
3414 itex2MML_free_string(yyvsp[-2]);
3415 itex2MML_free_string(yyvsp[0]);
3416 }
3417 #line 3418 "y.tab.c"
3418 break;
3419
3420 case 18: /* compoundTerm: mob SUP closedTerm */
3421 #line 388 "itex2MML.y"
3422 {
3423 if (itex2MML_displaymode == 1) {
3424 char * s1 = itex2MML_copy3("<mover>", yyvsp[-2], " ");
3425 yyval = itex2MML_copy3(s1, yyvsp[0], "</mover>");
3426 itex2MML_free_string(s1);
3427 }
3428 else {
3429 char * s1 = itex2MML_copy3("<msup>", yyvsp[-2], " ");
3430 yyval = itex2MML_copy3(s1, yyvsp[0], "</msup>");
3431 itex2MML_free_string(s1);
3432 }
3433 itex2MML_free_string(yyvsp[-2]);
3434 itex2MML_free_string(yyvsp[0]);
3435 }
3436 #line 3437 "y.tab.c"
3437 break;
3438
3439 case 19: /* compoundTerm: mib SUB closedTerm SUP closedTerm */
3440 #line 402 "itex2MML.y"
3441 {
3442 if (itex2MML_displaymode == 1) {
3443 char * s1 = itex2MML_copy3("<munderover>", yyvsp[-4], " ");
3444 char * s2 = itex2MML_copy3(yyvsp[-2], " ", yyvsp[0]);
3445 yyval = itex2MML_copy3(s1, s2, "</munderover>");
3446 itex2MML_free_string(s1);
3447 itex2MML_free_string(s2);
3448 }
3449 else {
3450 char * s1 = itex2MML_copy3("<msubsup>", yyvsp[-4], " ");
3451 char * s2 = itex2MML_copy3(yyvsp[-2], " ", yyvsp[0]);
3452 yyval = itex2MML_copy3(s1, s2, "</msubsup>");
3453 itex2MML_free_string(s1);
3454 itex2MML_free_string(s2);
3455 }
3456 itex2MML_free_string(yyvsp[-4]);
3457 itex2MML_free_string(yyvsp[-2]);
3458 itex2MML_free_string(yyvsp[0]);
3459 }
3460 #line 3461 "y.tab.c"
3461 break;
3462
3463 case 20: /* compoundTerm: mib SUB closedTerm */
3464 #line 421 "itex2MML.y"
3465 {
3466 if (itex2MML_displaymode == 1) {
3467 char * s1 = itex2MML_copy3("<munder>", yyvsp[-2], " ");
3468 yyval = itex2MML_copy3(s1, yyvsp[0], "</munder>");
3469 itex2MML_free_string(s1);
3470 }
3471 else {
3472 char * s1 = itex2MML_copy3("<msub>", yyvsp[-2], " ");
3473 yyval = itex2MML_copy3(s1, yyvsp[0], "</msub>");
3474 itex2MML_free_string(s1);
3475 }
3476 itex2MML_free_string(yyvsp[-2]);
3477 itex2MML_free_string(yyvsp[0]);
3478 }
3479 #line 3480 "y.tab.c"
3480 break;
3481
3482 case 21: /* compoundTerm: mib SUP closedTerm SUB closedTerm */
3483 #line 435 "itex2MML.y"
3484 {
3485 if (itex2MML_displaymode == 1) {
3486 char * s1 = itex2MML_copy3("<munderover>", yyvsp[-4], " ");
3487 char * s2 = itex2MML_copy3(yyvsp[0], " ", yyvsp[-2]);
3488 yyval = itex2MML_copy3(s1, s2, "</munderover>");
3489 itex2MML_free_string(s1);
3490 itex2MML_free_string(s2);
3491 }
3492 else {
3493 char * s1 = itex2MML_copy3("<msubsup>", yyvsp[-4], " ");
3494 char * s2 = itex2MML_copy3(yyvsp[0], " ", yyvsp[-2]);
3495 yyval = itex2MML_copy3(s1, s2, "</msubsup>");
3496 itex2MML_free_string(s1);
3497 itex2MML_free_string(s2);
3498 }
3499 itex2MML_free_string(yyvsp[-4]);
3500 itex2MML_free_string(yyvsp[-2]);
3501 itex2MML_free_string(yyvsp[0]);
3502 }
3503 #line 3504 "y.tab.c"
3504 break;
3505
3506 case 22: /* compoundTerm: mib SUP closedTerm */
3507 #line 454 "itex2MML.y"
3508 {
3509 if (itex2MML_displaymode == 1) {
3510 char * s1 = itex2MML_copy3("<mover>", yyvsp[-2], " ");
3511 yyval = itex2MML_copy3(s1, yyvsp[0], "</mover>");
3512 itex2MML_free_string(s1);
3513 }
3514 else {
3515 char * s1 = itex2MML_copy3("<msup>", yyvsp[-2], " ");
3516 yyval = itex2MML_copy3(s1, yyvsp[0], "</msup>");
3517 itex2MML_free_string(s1);
3518 }
3519 itex2MML_free_string(yyvsp[-2]);
3520 itex2MML_free_string(yyvsp[0]);
3521 }
3522 #line 3523 "y.tab.c"
3523 break;
3524
3525 case 23: /* compoundTerm: closedTerm SUB closedTerm SUP closedTerm */
3526 #line 468 "itex2MML.y"
3527 {
3528 char * s1 = itex2MML_copy3("<msubsup>", yyvsp[-4], " ");
3529 char * s2 = itex2MML_copy3(yyvsp[-2], " ", yyvsp[0]);
3530 yyval = itex2MML_copy3(s1, s2, "</msubsup>");
3531 itex2MML_free_string(s1);
3532 itex2MML_free_string(s2);
3533 itex2MML_free_string(yyvsp[-4]);
3534 itex2MML_free_string(yyvsp[-2]);
3535 itex2MML_free_string(yyvsp[0]);
3536 }
3537 #line 3538 "y.tab.c"
3538 break;
3539
3540 case 24: /* compoundTerm: closedTerm SUP closedTerm SUB closedTerm */
3541 #line 478 "itex2MML.y"
3542 {
3543 char * s1 = itex2MML_copy3("<msubsup>", yyvsp[-4], " ");
3544 char * s2 = itex2MML_copy3(yyvsp[0], " ", yyvsp[-2]);
3545 yyval = itex2MML_copy3(s1, s2, "</msubsup>");
3546 itex2MML_free_string(s1);
3547 itex2MML_free_string(s2);
3548 itex2MML_free_string(yyvsp[-4]);
3549 itex2MML_free_string(yyvsp[-2]);
3550 itex2MML_free_string(yyvsp[0]);
3551 }
3552 #line 3553 "y.tab.c"
3553 break;
3554
3555 case 25: /* compoundTerm: closedTerm SUB closedTerm */
3556 #line 488 "itex2MML.y"
3557 {
3558 char * s1 = itex2MML_copy3("<msub>", yyvsp[-2], " ");
3559 yyval = itex2MML_copy3(s1, yyvsp[0], "</msub>");
3560 itex2MML_free_string(s1);
3561 itex2MML_free_string(yyvsp[-2]);
3562 itex2MML_free_string(yyvsp[0]);
3563 }
3564 #line 3565 "y.tab.c"
3565 break;
3566
3567 case 26: /* compoundTerm: closedTerm SUP closedTerm */
3568 #line 495 "itex2MML.y"
3569 {
3570 char * s1 = itex2MML_copy3("<msup>", yyvsp[-2], " ");
3571 yyval = itex2MML_copy3(s1, yyvsp[0], "</msup>");
3572 itex2MML_free_string(s1);
3573 itex2MML_free_string(yyvsp[-2]);
3574 itex2MML_free_string(yyvsp[0]);
3575 }
3576 #line 3577 "y.tab.c"
3577 break;
3578
3579 case 27: /* compoundTerm: SUB closedTerm */
3580 #line 502 "itex2MML.y"
3581 {
3582 yyval = itex2MML_copy3("<msub><mo></mo>", yyvsp[0], "</msub>");
3583 itex2MML_free_string(yyvsp[0]);
3584 }
3585 #line 3586 "y.tab.c"
3586 break;
3587
3588 case 28: /* compoundTerm: SUP closedTerm */
3589 #line 506 "itex2MML.y"
3590 {
3591 yyval = itex2MML_copy3("<msup><mo></mo>", yyvsp[0], "</msup>");
3592 itex2MML_free_string(yyvsp[0]);
3593 }
3594 #line 3595 "y.tab.c"
3595 break;
3596
3597 case 29: /* compoundTerm: closedTerm */
3598 #line 510 "itex2MML.y"
3599 {
3600 yyval = itex2MML_copy_string(yyvsp[0]);
3601 itex2MML_free_string(yyvsp[0]);
3602 }
3603 #line 3604 "y.tab.c"
3604 break;
3605
3606 case 34: /* closedTerm: mi */
3607 #line 519 "itex2MML.y"
3608 {
3609 yyval = itex2MML_copy3("<mi>", yyvsp[0], "</mi>");
3610 itex2MML_free_string(yyvsp[0]);
3611 }
3612 #line 3613 "y.tab.c"
3613 break;
3614
3615 case 35: /* closedTerm: mn */
3616 #line 523 "itex2MML.y"
3617 {
3618 yyval = itex2MML_copy3("<mn>", yyvsp[0], "</mn>");
3619 itex2MML_free_string(yyvsp[0]);
3620 }
3621 #line 3622 "y.tab.c"
3622 break;
3623
3624 case 95: /* closedTerm: MROWOPEN closedTerm MROWCLOSE */
3625 #line 586 "itex2MML.y"
3626 {
3627 yyval = itex2MML_copy_string(yyvsp[-1]);
3628 itex2MML_free_string(yyvsp[-1]);
3629 }
3630 #line 3631 "y.tab.c"
3631 break;
3632
3633 case 96: /* closedTerm: MROWOPEN compoundTermList MROWCLOSE */
3634 #line 590 "itex2MML.y"
3635 {
3636 yyval = itex2MML_copy3("<mrow>", yyvsp[-1], "</mrow>");
3637 itex2MML_free_string(yyvsp[-1]);
3638 }
3639 #line 3640 "y.tab.c"
3640 break;
3641
3642 case 97: /* closedTerm: left compoundTermList right */
3643 #line 594 "itex2MML.y"
3644 {
3645 char * s1 = itex2MML_copy3("<mrow>", yyvsp[-2], yyvsp[-1]);
3646 yyval = itex2MML_copy3(s1, yyvsp[0], "</mrow>");
3647 itex2MML_free_string(s1);
3648 itex2MML_free_string(yyvsp[-2]);
3649 itex2MML_free_string(yyvsp[-1]);
3650 itex2MML_free_string(yyvsp[0]);
3651 }
3652 #line 3653 "y.tab.c"
3653 break;
3654
3655 case 102: /* left: LEFT LEFTDELIM */
3656 #line 607 "itex2MML.y"
3657 {
3658 itex2MML_rowposn = 2;
3659 yyval = itex2MML_copy3("<mo>", yyvsp[0], "</mo>");
3660 itex2MML_free_string(yyvsp[0]);
3661 }
3662 #line 3663 "y.tab.c"
3663 break;
3664
3665 case 103: /* left: LEFT OTHERDELIM */
3666 #line 612 "itex2MML.y"
3667 {
3668 itex2MML_rowposn = 2;
3669 yyval = itex2MML_copy3("<mo>", yyvsp[0], "</mo>");
3670 itex2MML_free_string(yyvsp[0]);
3671 }
3672 #line 3673 "y.tab.c"
3673 break;
3674
3675 case 104: /* left: LEFT PERIODDELIM */
3676 #line 617 "itex2MML.y"
3677 {
3678 itex2MML_rowposn = 2;
3679 yyval = itex2MML_copy_string("");
3680 itex2MML_free_string(yyvsp[0]);
3681 }
3682 #line 3683 "y.tab.c"
3683 break;
3684
3685 case 105: /* right: RIGHT RIGHTDELIM */
3686 #line 623 "itex2MML.y"
3687 {
3688 yyval = itex2MML_copy3("<mo>", yyvsp[0], "</mo>");
3689 itex2MML_free_string(yyvsp[0]);
3690 }
3691 #line 3692 "y.tab.c"
3692 break;
3693
3694 case 106: /* right: RIGHT OTHERDELIM */
3695 #line 627 "itex2MML.y"
3696 {
3697 yyval = itex2MML_copy3("<mo>", yyvsp[0], "</mo>");
3698 itex2MML_free_string(yyvsp[0]);
3699 }
3700 #line 3701 "y.tab.c"
3701 break;
3702
3703 case 107: /* right: RIGHT PERIODDELIM */
3704 #line 631 "itex2MML.y"
3705 {
3706 yyval = itex2MML_copy_string("");
3707 itex2MML_free_string(yyvsp[0]);
3708 }
3709 #line 3710 "y.tab.c"
3710 break;
3711
3712 case 108: /* bigdelim: BIG LEFTDELIM */
3713 #line 636 "itex2MML.y"
3714 {
3715 itex2MML_rowposn = 2;
3716 yyval = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", yyvsp[0], "</mo>");
3717 itex2MML_free_string(yyvsp[0]);
3718 }
3719 #line 3720 "y.tab.c"
3720 break;
3721
3722 case 109: /* bigdelim: BIG RIGHTDELIM */
3723 #line 641 "itex2MML.y"
3724 {
3725 yyval = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", yyvsp[0], "</mo>");
3726 itex2MML_free_string(yyvsp[0]);
3727 }
3728 #line 3729 "y.tab.c"
3729 break;
3730
3731 case 110: /* bigdelim: BIG OTHERDELIM */
3732 #line 645 "itex2MML.y"
3733 {
3734 yyval = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", yyvsp[0], "</mo>");
3735 itex2MML_free_string(yyvsp[0]);
3736 }
3737 #line 3738 "y.tab.c"
3738 break;
3739
3740 case 111: /* bigdelim: BBIG LEFTDELIM */
3741 #line 649 "itex2MML.y"
3742 {
3743 itex2MML_rowposn = 2;
3744 yyval = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", yyvsp[0], "</mo>");
3745 itex2MML_free_string(yyvsp[0]);
3746 }
3747 #line 3748 "y.tab.c"
3748 break;
3749
3750 case 112: /* bigdelim: BBIG RIGHTDELIM */
3751 #line 654 "itex2MML.y"
3752 {
3753 yyval = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", yyvsp[0], "</mo>");
3754 itex2MML_free_string(yyvsp[0]);
3755 }
3756 #line 3757 "y.tab.c"
3757 break;
3758
3759 case 113: /* bigdelim: BBIG OTHERDELIM */
3760 #line 658 "itex2MML.y"
3761 {
3762 yyval = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", yyvsp[0], "</mo>");
3763 itex2MML_free_string(yyvsp[0]);
3764 }
3765 #line 3766 "y.tab.c"
3766 break;
3767
3768 case 114: /* bigdelim: BIGG LEFTDELIM */
3769 #line 662 "itex2MML.y"
3770 {
3771 itex2MML_rowposn = 2;
3772 yyval = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", yyvsp[0], "</mo>");
3773 itex2MML_free_string(yyvsp[0]);
3774 }
3775 #line 3776 "y.tab.c"
3776 break;
3777
3778 case 115: /* bigdelim: BIGG RIGHTDELIM */
3779 #line 667 "itex2MML.y"
3780 {
3781 yyval = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", yyvsp[0], "</mo>");
3782 itex2MML_free_string(yyvsp[0]);
3783 }
3784 #line 3785 "y.tab.c"
3785 break;
3786
3787 case 116: /* bigdelim: BIGG OTHERDELIM */
3788 #line 671 "itex2MML.y"
3789 {
3790 yyval = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", yyvsp[0], "</mo>");
3791 itex2MML_free_string(yyvsp[0]);
3792 }
3793 #line 3794 "y.tab.c"
3794 break;
3795
3796 case 117: /* bigdelim: BBIGG LEFTDELIM */
3797 #line 675 "itex2MML.y"
3798 {
3799 itex2MML_rowposn = 2;
3800 yyval = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", yyvsp[0], "</mo>");
3801 itex2MML_free_string(yyvsp[0]);
3802 }
3803 #line 3804 "y.tab.c"
3804 break;
3805
3806 case 118: /* bigdelim: BBIGG RIGHTDELIM */
3807 #line 680 "itex2MML.y"
3808 {
3809 yyval = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", yyvsp[0], "</mo>");
3810 itex2MML_free_string(yyvsp[0]);
3811 }
3812 #line 3813 "y.tab.c"
3813 break;
3814
3815 case 119: /* bigdelim: BBIGG OTHERDELIM */
3816 #line 684 "itex2MML.y"
3817 {
3818 yyval = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", yyvsp[0], "</mo>");
3819 itex2MML_free_string(yyvsp[0]);
3820 }
3821 #line 3822 "y.tab.c"
3822 break;
3823
3824 case 120: /* bigdelim: BIGL LEFTDELIM */
3825 #line 688 "itex2MML.y"
3826 {
3827 itex2MML_rowposn = 2;
3828 yyval = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", yyvsp[0], "</mo>");
3829 itex2MML_free_string(yyvsp[0]);
3830 }
3831 #line 3832 "y.tab.c"
3832 break;
3833
3834 case 121: /* bigdelim: BIGL OTHERDELIM */
3835 #line 693 "itex2MML.y"
3836 {
3837 itex2MML_rowposn = 2;
3838 yyval = itex2MML_copy3("<mo maxsize=\"1.2em\" minsize=\"1.2em\">", yyvsp[0], "</mo>");
3839 itex2MML_free_string(yyvsp[0]);
3840 }
3841 #line 3842 "y.tab.c"
3842 break;
3843
3844 case 122: /* bigdelim: BBIGL LEFTDELIM */
3845 #line 698 "itex2MML.y"
3846 {
3847 itex2MML_rowposn = 2;
3848 yyval = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", yyvsp[0], "</mo>");
3849 itex2MML_free_string(yyvsp[0]);
3850 }
3851 #line 3852 "y.tab.c"
3852 break;
3853
3854 case 123: /* bigdelim: BBIGL OTHERDELIM */
3855 #line 703 "itex2MML.y"
3856 {
3857 itex2MML_rowposn = 2;
3858 yyval = itex2MML_copy3("<mo maxsize=\"1.8em\" minsize=\"1.8em\">", yyvsp[0], "</mo>");
3859 itex2MML_free_string(yyvsp[0]);
3860 }
3861 #line 3862 "y.tab.c"
3862 break;
3863
3864 case 124: /* bigdelim: BIGGL LEFTDELIM */
3865 #line 708 "itex2MML.y"
3866 {
3867 itex2MML_rowposn = 2;
3868 yyval = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", yyvsp[0], "</mo>");
3869 itex2MML_free_string(yyvsp[0]);
3870 }
3871 #line 3872 "y.tab.c"
3872 break;
3873
3874 case 125: /* bigdelim: BIGGL OTHERDELIM */
3875 #line 713 "itex2MML.y"
3876 {
3877 itex2MML_rowposn = 2;
3878 yyval = itex2MML_copy3("<mo maxsize=\"2.4em\" minsize=\"2.4em\">", yyvsp[0], "</mo>");
3879 itex2MML_free_string(yyvsp[0]);
3880 }
3881 #line 3882 "y.tab.c"
3882 break;
3883
3884 case 126: /* bigdelim: BBIGGL LEFTDELIM */
3885 #line 718 "itex2MML.y"
3886 {
3887 itex2MML_rowposn = 2;
3888 yyval = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", yyvsp[0], "</mo>");
3889 itex2MML_free_string(yyvsp[0]);
3890 }
3891 #line 3892 "y.tab.c"
3892 break;
3893
3894 case 127: /* bigdelim: BBIGGL OTHERDELIM */
3895 #line 723 "itex2MML.y"
3896 {
3897 itex2MML_rowposn = 2;
3898 yyval = itex2MML_copy3("<mo maxsize=\"3em\" minsize=\"3em\">", yyvsp[0], "</mo>");
3899 itex2MML_free_string(yyvsp[0]);
3900 }
3901 #line 3902 "y.tab.c"
3902 break;
3903
3904 case 128: /* unrecognized: UNKNOWNCHAR */
3905 #line 729 "itex2MML.y"
3906 {
3907 yyval = itex2MML_copy_string("<merror><mtext>Unknown character</mtext></merror>");
3908 }
3909 #line 3910 "y.tab.c"
3910 break;
3911
3912 case 129: /* unaryminus: UNARYMINUS */
3913 #line 733 "itex2MML.y"
3914 {
3915 yyval = itex2MML_copy_string("<mo lspace=\"verythinmathspace\" rspace=\"0em\">−</mo>");
3916 }
3917 #line 3918 "y.tab.c"
3918 break;
3919
3920 case 130: /* unaryplus: UNARYPLUS */
3921 #line 737 "itex2MML.y"
3922 {
3923 yyval = itex2MML_copy_string("<mo lspace=\"verythinmathspace\" rspace=\"0em\">+</mo>");
3924 }
3925 #line 3926 "y.tab.c"
3926 break;
3927
3928 case 132: /* mib: MIB */
3929 #line 743 "itex2MML.y"
3930 {
3931 itex2MML_rowposn=2;
3932 yyval = itex2MML_copy3("<mi>", yyvsp[0], "</mi>");
3933 itex2MML_free_string(yyvsp[0]);
3934 }
3935 #line 3936 "y.tab.c"
3936 break;
3937
3938 case 134: /* mn: ITEXNUM TEXTSTRING */
3939 #line 750 "itex2MML.y"
3940 {
3941 itex2MML_rowposn = 2;
3942 yyval = itex2MML_copy_string(yyvsp[0]);
3943 itex2MML_free_string(yyvsp[0]);
3944 }
3945 #line 3946 "y.tab.c"
3946 break;
3947
3948 case 135: /* mob: MOB */
3949 #line 756 "itex2MML.y"
3950 {
3951 itex2MML_rowposn = 2;
3952 yyval = itex2MML_copy3("<mo lspace=\"thinmathspace\" rspace=\"thinmathspace\">", yyvsp[0], "</mo>");
3953 itex2MML_free_string(yyvsp[0]);
3954 }
3955 #line 3956 "y.tab.c"
3956 break;
3957
3958 case 138: /* mo: MO */
3959 #line 764 "itex2MML.y"
3960 {
3961 itex2MML_rowposn = 2;
3962 yyval = itex2MML_copy3("<mo>", yyvsp[0], "</mo>");
3963 itex2MML_free_string(yyvsp[0]);
3964 }
3965 #line 3966 "y.tab.c"
3966 break;
3967
3968 case 139: /* mo: MOL */
3969 #line 769 "itex2MML.y"
3970 {
3971 itex2MML_rowposn = 2;
3972 yyval = itex2MML_copy3("<mo>", yyvsp[0], "</mo>");
3973 itex2MML_free_string(yyvsp[0]);
3974 }
3975 #line 3976 "y.tab.c"
3976 break;
3977
3978 case 140: /* mo: MOLL */
3979 #line 774 "itex2MML.y"
3980 {
3981 itex2MML_rowposn = 2;
3982 yyval = itex2MML_copy3("<mstyle scriptlevel=\"0\"><mo>", yyvsp[0], "</mo></mstyle>");
3983 itex2MML_free_string(yyvsp[0]);
3984 }
3985 #line 3986 "y.tab.c"
3986 break;
3987
3988 case 141: /* mo: RIGHTDELIM */
3989 #line 779 "itex2MML.y"
3990 {
3991 yyval = itex2MML_copy3("<mo stretchy=\"false\">", yyvsp[0], "</mo>");
3992 itex2MML_free_string(yyvsp[0]);
3993 }
3994 #line 3995 "y.tab.c"
3995 break;
3996
3997 case 142: /* mo: LEFTDELIM */
3998 #line 783 "itex2MML.y"
3999 {
4000 itex2MML_rowposn = 2;
4001 yyval = itex2MML_copy3("<mo stretchy=\"false\">", yyvsp[0], "</mo>");
4002 itex2MML_free_string(yyvsp[0]);
4003 }
4004 #line 4005 "y.tab.c"
4005 break;
4006
4007 case 143: /* mo: OTHERDELIM */
4008 #line 788 "itex2MML.y"
4009 {
4010 yyval = itex2MML_copy3("<mo stretchy=\"false\">", yyvsp[0], "</mo>");
4011 itex2MML_free_string(yyvsp[0]);
4012 }
4013 #line 4014 "y.tab.c"
4014 break;
4015
4016 case 144: /* mo: MOF */
4017 #line 792 "itex2MML.y"
4018 {
4019 yyval = itex2MML_copy3("<mo stretchy=\"false\">", yyvsp[0], "</mo>");
4020 itex2MML_free_string(yyvsp[0]);
4021 }
4022 #line 4023 "y.tab.c"
4023 break;
4024
4025 case 145: /* mo: PERIODDELIM */
4026 #line 796 "itex2MML.y"
4027 {
4028 yyval = itex2MML_copy3("<mo>", yyvsp[0], "</mo>");
4029 itex2MML_free_string(yyvsp[0]);
4030 }
4031 #line 4032 "y.tab.c"
4032 break;
4033
4034 case 146: /* mo: MOS */
4035 #line 800 "itex2MML.y"
4036 {
4037 itex2MML_rowposn=2;
4038 yyval = itex2MML_copy3("<mo lspace=\"mediummathspace\" rspace=\"mediummathspace\">", yyvsp[0], "</mo>");
4039 itex2MML_free_string(yyvsp[0]);
4040 }
4041 #line 4042 "y.tab.c"
4042 break;
4043
4044 case 147: /* mo: MOP */
4045 #line 805 "itex2MML.y"
4046 {
4047 itex2MML_rowposn = 2;
4048 yyval = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"thinmathspace\">", yyvsp[0], "</mo>");
4049 itex2MML_free_string(yyvsp[0]);
4050 }
4051 #line 4052 "y.tab.c"
4052 break;
4053
4054 case 148: /* mo: MOR */
4055 #line 810 "itex2MML.y"
4056 {
4057 itex2MML_rowposn = 2;
4058 yyval = itex2MML_copy3("<mo lspace=\"verythinmathspace\">", yyvsp[0], "</mo>");
4059 itex2MML_free_string(yyvsp[0]);
4060 }
4061 #line 4062 "y.tab.c"
4062 break;
4063
4064 case 149: /* mo: OPERATORNAME TEXTSTRING */
4065 #line 815 "itex2MML.y"
4066 {
4067 itex2MML_rowposn = 2;
4068 yyval = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"thinmathspace\">", yyvsp[0], "</mo>");
4069 itex2MML_free_string(yyvsp[0]);
4070 }
4071 #line 4072 "y.tab.c"
4072 break;
4073
4074 case 150: /* mo: MATHOP TEXTSTRING */
4075 #line 820 "itex2MML.y"
4076 {
4077 itex2MML_rowposn = 2;
4078 yyval = itex2MML_copy3("<mo lspace=\"thinmathspace\" rspace=\"thinmathspace\">", yyvsp[0], "</mo>");
4079 itex2MML_free_string(yyvsp[0]);
4080 }
4081 #line 4082 "y.tab.c"
4082 break;
4083
4084 case 151: /* mo: MATHBIN TEXTSTRING */
4085 #line 825 "itex2MML.y"
4086 {
4087 itex2MML_rowposn = 2;
4088 yyval = itex2MML_copy3("<mo lspace=\"mediummathspace\" rspace=\"mediummathspace\">", yyvsp[0], "</mo>");
4089 itex2MML_free_string(yyvsp[0]);
4090 }
4091 #line 4092 "y.tab.c"
4092 break;
4093
4094 case 152: /* mo: MATHREL TEXTSTRING */
4095 #line 830 "itex2MML.y"
4096 {
4097 itex2MML_rowposn = 2;
4098 yyval = itex2MML_copy3("<mo lspace=\"thickmathspace\" rspace=\"thickmathspace\">", yyvsp[0], "</mo>");
4099 itex2MML_free_string(yyvsp[0]);
4100 }
4101 #line 4102 "y.tab.c"
4102 break;
4103
4104 case 153: /* space: SPACE ST INTONE END ST INTTWO END ST INTTHREE END */
4105 #line 836 "itex2MML.y"
4106 {
4107 char * s1 = itex2MML_copy3("<mspace height=\"", yyvsp[-7], "ex\" depth=\"");
4108 char * s2 = itex2MML_copy3(yyvsp[-4], "ex\" width=\"", yyvsp[-1]);
4109 yyval = itex2MML_copy3(s1, s2, "em\"></mspace>");
4110 itex2MML_free_string(s1);
4111 itex2MML_free_string(s2);
4112 itex2MML_free_string(yyvsp[-7]);
4113 itex2MML_free_string(yyvsp[-4]);
4114 itex2MML_free_string(yyvsp[-1]);
4115 }
4116 #line 4117 "y.tab.c"
4117 break;
4118
4119 case 154: /* statusline: STATLINE TEXTSTRING closedTerm */
4120 #line 847 "itex2MML.y"
4121 {
4122 char * s1 = itex2MML_copy3("<maction actiontype=\"statusline\">", yyvsp[0], "<mtext>");
4123 yyval = itex2MML_copy3(s1, yyvsp[-1], "</mtext></maction>");
4124 itex2MML_free_string(s1);
4125 itex2MML_free_string(yyvsp[-1]);
4126 itex2MML_free_string(yyvsp[0]);
4127 }
4128 #line 4129 "y.tab.c"
4129 break;
4130
4131 case 155: /* tooltip: TOOLTIP TEXTSTRING closedTerm */
4132 #line 855 "itex2MML.y"
4133 {
4134 char * s1 = itex2MML_copy3("<maction actiontype=\"tooltip\">", yyvsp[0], "<mtext>");
4135 yyval = itex2MML_copy3(s1, yyvsp[-1], "</mtext></maction>");
4136 itex2MML_free_string(s1);
4137 itex2MML_free_string(yyvsp[-1]);
4138 itex2MML_free_string(yyvsp[0]);
4139 }
4140 #line 4141 "y.tab.c"
4141 break;
4142
4143 case 156: /* toggle: TOGGLE closedTerm closedTerm */
4144 #line 863 "itex2MML.y"
4145 {
4146 char * s1 = itex2MML_copy3("<maction actiontype=\"toggle\" selection=\"2\">", yyvsp[-1], " ");
4147 yyval = itex2MML_copy3(s1, yyvsp[0], "</maction>");
4148 itex2MML_free_string(s1);
4149 itex2MML_free_string(yyvsp[-1]);
4150 itex2MML_free_string(yyvsp[0]);
4151 }
4152 #line 4153 "y.tab.c"
4153 break;
4154
4155 case 157: /* fghighlight: FGHIGHLIGHT ATTRLIST closedTerm */
4156 #line 871 "itex2MML.y"
4157 {
4158 char * s1 = itex2MML_copy3("<maction actiontype=\"highlight\" other='color=", yyvsp[-1], "'>");
4159 yyval = itex2MML_copy3(s1, yyvsp[0], "</maction>");
4160 itex2MML_free_string(s1);
4161 itex2MML_free_string(yyvsp[-1]);
4162 itex2MML_free_string(yyvsp[0]);
4163 }
4164 #line 4165 "y.tab.c"
4165 break;
4166
4167 case 158: /* bghighlight: BGHIGHLIGHT ATTRLIST closedTerm */
4168 #line 879 "itex2MML.y"
4169 {
4170 char * s1 = itex2MML_copy3("<maction actiontype=\"highlight\" other='background=", yyvsp[-1], "'>");
4171 yyval = itex2MML_copy3(s1, yyvsp[0], "</maction>");
4172 itex2MML_free_string(s1);
4173 itex2MML_free_string(yyvsp[-1]);
4174 itex2MML_free_string(yyvsp[0]);
4175 }
4176 #line 4177 "y.tab.c"
4177 break;
4178
4179 case 159: /* color: COLOR ATTRLIST compoundTermList */
4180 #line 887 "itex2MML.y"
4181 {
4182 char * s1 = itex2MML_copy3("<mstyle mathcolor=", yyvsp[-1], ">");
4183 yyval = itex2MML_copy3(s1, yyvsp[0], "</mstyle>");
4184 itex2MML_free_string(s1);
4185 itex2MML_free_string(yyvsp[-1]);
4186 itex2MML_free_string(yyvsp[0]);
4187 }
4188 #line 4189 "y.tab.c"
4189 break;
4190
4191 case 160: /* color: BGCOLOR ATTRLIST compoundTermList */
4192 #line 894 "itex2MML.y"
4193 {
4194 char * s1 = itex2MML_copy3("<mstyle mathbackground=", yyvsp[-1], ">");
4195 yyval = itex2MML_copy3(s1, yyvsp[0], "</mstyle>");
4196 itex2MML_free_string(s1);
4197 itex2MML_free_string(yyvsp[-1]);
4198 itex2MML_free_string(yyvsp[0]);
4199 }
4200 #line 4201 "y.tab.c"
4201 break;
4202
4203 case 161: /* mathrlap: RLAP closedTerm */
4204 #line 902 "itex2MML.y"
4205 {
4206 yyval = itex2MML_copy3("<mpadded width=\"0\">", yyvsp[0], "</mpadded>");
4207 itex2MML_free_string(yyvsp[0]);
4208 }
4209 #line 4210 "y.tab.c"
4210 break;
4211
4212 case 162: /* mathllap: LLAP closedTerm */
4213 #line 907 "itex2MML.y"
4214 {
4215 yyval = itex2MML_copy3("<mpadded width=\"0\" lspace=\"-100%width\">", yyvsp[0], "</mpadded>");
4216 itex2MML_free_string(yyvsp[0]);
4217 }
4218 #line 4219 "y.tab.c"
4219 break;
4220
4221 case 163: /* mathclap: CLAP closedTerm */
4222 #line 912 "itex2MML.y"
4223 {
4224 yyval = itex2MML_copy3("<mpadded width=\"0\" lspace=\"-50%width\">", yyvsp[0], "</mpadded>");
4225 itex2MML_free_string(yyvsp[0]);
4226 }
4227 #line 4228 "y.tab.c"
4228 break;
4229
4230 case 164: /* textstring: TEXTBOX TEXTSTRING */
4231 #line 917 "itex2MML.y"
4232 {
4233 yyval = itex2MML_copy3("<mtext>", yyvsp[0], "</mtext>");
4234 itex2MML_free_string(yyvsp[0]);
4235 }
4236 #line 4237 "y.tab.c"
4237 break;
4238
4239 case 165: /* displaystyle: DISPLAY compoundTermList */
4240 #line 922 "itex2MML.y"
4241 {
4242 yyval = itex2MML_copy3("<mstyle displaystyle=\"true\">", yyvsp[0], "</mstyle>");
4243 itex2MML_free_string(yyvsp[0]);
4244 }
4245 #line 4246 "y.tab.c"
4246 break;
4247
4248 case 166: /* textstyle: TEXTSTY compoundTermList */
4249 #line 927 "itex2MML.y"
4250 {
4251 yyval = itex2MML_copy3("<mstyle displaystyle=\"false\">", yyvsp[0], "</mstyle>");
4252 itex2MML_free_string(yyvsp[0]);
4253 }
4254 #line 4255 "y.tab.c"
4255 break;
4256
4257 case 167: /* textsize: TEXTSIZE compoundTermList */
4258 #line 932 "itex2MML.y"
4259 {
4260 yyval = itex2MML_copy3("<mstyle scriptlevel=\"0\">", yyvsp[0], "</mstyle>");
4261 itex2MML_free_string(yyvsp[0]);
4262 }
4263 #line 4264 "y.tab.c"
4264 break;
4265
4266 case 168: /* scriptsize: SCSIZE compoundTermList */
4267 #line 937 "itex2MML.y"
4268 {
4269 yyval = itex2MML_copy3("<mstyle scriptlevel=\"1\">", yyvsp[0], "</mstyle>");
4270 itex2MML_free_string(yyvsp[0]);
4271 }
4272 #line 4273 "y.tab.c"
4273 break;
4274
4275 case 169: /* scriptscriptsize: SCSCSIZE compoundTermList */
4276 #line 942 "itex2MML.y"
4277 {
4278 yyval = itex2MML_copy3("<mstyle scriptlevel=\"2\">", yyvsp[0], "</mstyle>");
4279 itex2MML_free_string(yyvsp[0]);
4280 }
4281 #line 4282 "y.tab.c"
4282 break;
4283
4284 case 170: /* italics: ITALICS closedTerm */
4285 #line 947 "itex2MML.y"
4286 {
4287 yyval = itex2MML_copy3("<mstyle mathvariant=\"italic\">", yyvsp[0], "</mstyle>");
4288 itex2MML_free_string(yyvsp[0]);
4289 }
4290 #line 4291 "y.tab.c"
4291 break;
4292
4293 case 171: /* slashed: SLASHED closedTerm */
4294 #line 952 "itex2MML.y"
4295 {
4296 yyval = itex2MML_copy3("<menclose notation=\"updiagonalstrike\">", yyvsp[0], "</menclose>");
4297 itex2MML_free_string(yyvsp[0]);
4298 }
4299 #line 4300 "y.tab.c"
4300 break;
4301
4302 case 172: /* boxed: BOXED closedTerm */
4303 #line 957 "itex2MML.y"
4304 {
4305 yyval = itex2MML_copy3("<menclose notation=\"box\">", yyvsp[0], "</menclose>");
4306 itex2MML_free_string(yyvsp[0]);
4307 }
4308 #line 4309 "y.tab.c"
4309 break;
4310
4311 case 173: /* bold: BOLD closedTerm */
4312 #line 962 "itex2MML.y"
4313 {
4314 yyval = itex2MML_copy3("<mstyle mathvariant=\"bold\">", yyvsp[0], "</mstyle>");
4315 itex2MML_free_string(yyvsp[0]);
4316 }
4317 #line 4318 "y.tab.c"
4318 break;
4319
4320 case 174: /* roman: RM ST rmchars END */
4321 #line 967 "itex2MML.y"
4322 {
4323 yyval = itex2MML_copy3("<mi mathvariant=\"normal\">", yyvsp[-1], "</mi>");
4324 itex2MML_free_string(yyvsp[-1]);
4325 }
4326 #line 4327 "y.tab.c"
4327 break;
4328
4329 case 175: /* rmchars: RMCHAR */
4330 #line 972 "itex2MML.y"
4331 {
4332 yyval = itex2MML_copy_string(yyvsp[0]);
4333 itex2MML_free_string(yyvsp[0]);
4334 }
4335 #line 4336 "y.tab.c"
4336 break;
4337
4338 case 176: /* rmchars: rmchars RMCHAR */
4339 #line 976 "itex2MML.y"
4340 {
4341 yyval = itex2MML_copy2(yyvsp[-1], yyvsp[0]);
4342 itex2MML_free_string(yyvsp[-1]);
4343 itex2MML_free_string(yyvsp[0]);
4344 }
4345 #line 4346 "y.tab.c"
4346 break;
4347
4348 case 177: /* bbold: BB ST bbchars END */
4349 #line 982 "itex2MML.y"
4350 {
4351 yyval = itex2MML_copy3("<mi>", yyvsp[-1], "</mi>");
4352 itex2MML_free_string(yyvsp[-1]);
4353 }
4354 #line 4355 "y.tab.c"
4355 break;
4356
4357 case 178: /* bbchars: bbchar */
4358 #line 987 "itex2MML.y"
4359 {
4360 yyval = itex2MML_copy_string(yyvsp[0]);
4361 itex2MML_free_string(yyvsp[0]);
4362 }
4363 #line 4364 "y.tab.c"
4364 break;
4365
4366 case 179: /* bbchars: bbchars bbchar */
4367 #line 991 "itex2MML.y"
4368 {
4369 yyval = itex2MML_copy2(yyvsp[-1], yyvsp[0]);
4370 itex2MML_free_string(yyvsp[-1]);
4371 itex2MML_free_string(yyvsp[0]);
4372 }
4373 #line 4374 "y.tab.c"
4374 break;
4375
4376 case 180: /* bbchar: BBLOWERCHAR */
4377 #line 997 "itex2MML.y"
4378 {
4379 yyval = itex2MML_copy3("&", yyvsp[0], "opf;");
4380 itex2MML_free_string(yyvsp[0]);
4381 }
4382 #line 4383 "y.tab.c"
4383 break;
4384
4385 case 181: /* bbchar: BBUPPERCHAR */
4386 #line 1001 "itex2MML.y"
4387 {
4388 yyval = itex2MML_copy3("&", yyvsp[0], "opf;");
4389 itex2MML_free_string(yyvsp[0]);
4390 }
4391 #line 4392 "y.tab.c"
4392 break;
4393
4394 case 182: /* bbchar: BBDIGIT */
4395 #line 1005 "itex2MML.y"
4396 {
4397 /* Blackboard digits 0-9 correspond to Unicode characters 0x1D7D8-0x1D7E1 */
4398 char * end = yyvsp[0] + 1;
4399 int code = 0x1D7D8 + strtoul(yyvsp[0], &end, 10);
4400 yyval = itex2MML_character_reference(code);
4401 itex2MML_free_string(yyvsp[0]);
4402 }
4403 #line 4404 "y.tab.c"
4404 break;
4405
4406 case 183: /* frak: FRAK ST frakletters END */
4407 #line 1013 "itex2MML.y"
4408 {
4409 yyval = itex2MML_copy3("<mi>", yyvsp[-1], "</mi>");
4410 itex2MML_free_string(yyvsp[-1]);
4411 }
4412 #line 4413 "y.tab.c"
4413 break;
4414
4415 case 184: /* frakletters: frakletter */
4416 #line 1018 "itex2MML.y"
4417 {
4418 yyval = itex2MML_copy_string(yyvsp[0]);
4419 itex2MML_free_string(yyvsp[0]);
4420 }
4421 #line 4422 "y.tab.c"
4422 break;
4423
4424 case 185: /* frakletters: frakletters frakletter */
4425 #line 1022 "itex2MML.y"
4426 {
4427 yyval = itex2MML_copy2(yyvsp[-1], yyvsp[0]);
4428 itex2MML_free_string(yyvsp[-1]);
4429 itex2MML_free_string(yyvsp[0]);
4430 }
4431 #line 4432 "y.tab.c"
4432 break;
4433
4434 case 186: /* frakletter: FRAKCHAR */
4435 #line 1028 "itex2MML.y"
4436 {
4437 yyval = itex2MML_copy3("&", yyvsp[0], "fr;");
4438 itex2MML_free_string(yyvsp[0]);
4439 }
4440 #line 4441 "y.tab.c"
4441 break;
4442
4443 case 187: /* cal: CAL ST calletters END */
4444 #line 1033 "itex2MML.y"
4445 {
4446 yyval = itex2MML_copy3("<mi>", yyvsp[-1], "</mi>");
4447 itex2MML_free_string(yyvsp[-1]);
4448 }
4449 #line 4450 "y.tab.c"
4450 break;
4451
4452 case 188: /* calletters: calletter */
4453 #line 1038 "itex2MML.y"
4454 {
4455 yyval = itex2MML_copy_string(yyvsp[0]);
4456 itex2MML_free_string(yyvsp[0]);
4457 }
4458 #line 4459 "y.tab.c"
4459 break;
4460
4461 case 189: /* calletters: calletters calletter */
4462 #line 1042 "itex2MML.y"
4463 {
4464 yyval = itex2MML_copy2(yyvsp[-1], yyvsp[0]);
4465 itex2MML_free_string(yyvsp[-1]);
4466 itex2MML_free_string(yyvsp[0]);
4467 }
4468 #line 4469 "y.tab.c"
4469 break;
4470
4471 case 190: /* calletter: CALCHAR */
4472 #line 1048 "itex2MML.y"
4473 {
4474 yyval = itex2MML_copy3("&", yyvsp[0], "scr;");
4475 itex2MML_free_string(yyvsp[0]);
4476 }
4477 #line 4478 "y.tab.c"
4478 break;
4479
4480 case 191: /* thinspace: THINSPACE */
4481 #line 1053 "itex2MML.y"
4482 {
4483 yyval = itex2MML_copy_string("<mspace width=\"thinmathspace\"></mspace>");
4484 }
4485 #line 4486 "y.tab.c"
4486 break;
4487
4488 case 192: /* medspace: MEDSPACE */
4489 #line 1057 "itex2MML.y"
4490 {
4491 yyval = itex2MML_copy_string("<mspace width=\"mediummathspace\"></mspace>");
4492 }
4493 #line 4494 "y.tab.c"
4494 break;
4495
4496 case 193: /* thickspace: THICKSPACE */
4497 #line 1061 "itex2MML.y"
4498 {
4499 yyval = itex2MML_copy_string("<mspace width=\"thickmathspace\"></mspace>");
4500 }
4501 #line 4502 "y.tab.c"
4502 break;
4503
4504 case 194: /* quad: QUAD */
4505 #line 1065 "itex2MML.y"
4506 {
4507 yyval = itex2MML_copy_string("<mspace width=\"1em\"></mspace>");
4508 }
4509 #line 4510 "y.tab.c"
4510 break;
4511
4512 case 195: /* qquad: QQUAD */
4513 #line 1069 "itex2MML.y"
4514 {
4515 yyval = itex2MML_copy_string("<mspace width=\"2em\"></mspace>");
4516 }
4517 #line 4518 "y.tab.c"
4518 break;
4519
4520 case 196: /* negspace: NEGSPACE */
4521 #line 1073 "itex2MML.y"
4522 {
4523 yyval = itex2MML_copy_string("<mspace width=\"-0.1667 em\"></mspace>");
4524 }
4525 #line 4526 "y.tab.c"
4526 break;
4527
4528 case 197: /* phantom: PHANTOM closedTerm */
4529 #line 1077 "itex2MML.y"
4530 {
4531 yyval = itex2MML_copy3("<mphantom>", yyvsp[0], "</mphantom>");
4532 itex2MML_free_string(yyvsp[0]);
4533 }
4534 #line 4535 "y.tab.c"
4535 break;
4536
4537 case 198: /* href: HREF TEXTSTRING closedTerm */
4538 #line 1082 "itex2MML.y"
4539 {
4540 char * s1 = itex2MML_copy3("<mrow href=\"", yyvsp[-1], "\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\"");
4541 char * s2 = itex2MML_copy3(s1, yyvsp[-1], "\">");
4542 yyval = itex2MML_copy3(s2, yyvsp[0], "</mrow>");
4543 itex2MML_free_string(s1);
4544 itex2MML_free_string(s2);
4545 itex2MML_free_string(yyvsp[-1]);
4546 itex2MML_free_string(yyvsp[0]);
4547 }
4548 #line 4549 "y.tab.c"
4549 break;
4550
4551 case 199: /* tensor: TENSOR closedTerm MROWOPEN subsupList MROWCLOSE */
4552 #line 1092 "itex2MML.y"
4553 {
4554 char * s1 = itex2MML_copy3("<mmultiscripts>", yyvsp[-3], yyvsp[-1]);
4555 yyval = itex2MML_copy2(s1, "</mmultiscripts>");
4556 itex2MML_free_string(s1);
4557 itex2MML_free_string(yyvsp[-3]);
4558 itex2MML_free_string(yyvsp[-1]);
4559 }
4560 #line 4561 "y.tab.c"
4561 break;
4562
4563 case 200: /* tensor: TENSOR closedTerm subsupList */
4564 #line 1099 "itex2MML.y"
4565 {
4566 char * s1 = itex2MML_copy3("<mmultiscripts>", yyvsp[-1], yyvsp[0]);
4567 yyval = itex2MML_copy2(s1, "</mmultiscripts>");
4568 itex2MML_free_string(s1);
4569 itex2MML_free_string(yyvsp[-1]);
4570 itex2MML_free_string(yyvsp[0]);
4571 }
4572 #line 4573 "y.tab.c"
4573 break;
4574
4575 case 201: /* multi: MULTI MROWOPEN subsupList MROWCLOSE closedTerm MROWOPEN subsupList MROWCLOSE */
4576 #line 1107 "itex2MML.y"
4577 {
4578 char * s1 = itex2MML_copy3("<mmultiscripts>", yyvsp[-3], yyvsp[-1]);
4579 char * s2 = itex2MML_copy3("<mprescripts></mprescripts>", yyvsp[-5], "</mmultiscripts>");
4580 yyval = itex2MML_copy2(s1, s2);
4581 itex2MML_free_string(s1);
4582 itex2MML_free_string(s2);
4583 itex2MML_free_string(yyvsp[-5]);
4584 itex2MML_free_string(yyvsp[-3]);
4585 itex2MML_free_string(yyvsp[-1]);
4586 }
4587 #line 4588 "y.tab.c"
4588 break;
4589
4590 case 202: /* multi: MULTI MROWOPEN subsupList MROWCLOSE closedTerm EMPTYMROW */
4591 #line 1117 "itex2MML.y"
4592 {
4593 char * s1 = itex2MML_copy2("<mmultiscripts>", yyvsp[-1]);
4594 char * s2 = itex2MML_copy3("<mprescripts></mprescripts>", yyvsp[-3], "</mmultiscripts>");
4595 yyval = itex2MML_copy2(s1, s2);
4596 itex2MML_free_string(s1);
4597 itex2MML_free_string(s2);
4598 itex2MML_free_string(yyvsp[-3]);
4599 itex2MML_free_string(yyvsp[-1]);
4600 }
4601 #line 4602 "y.tab.c"
4602 break;
4603
4604 case 203: /* multi: MULTI EMPTYMROW closedTerm MROWOPEN subsupList MROWCLOSE */
4605 #line 1126 "itex2MML.y"
4606 {
4607 char * s1 = itex2MML_copy3("<mmultiscripts>", yyvsp[-3], yyvsp[-1]);
4608 yyval = itex2MML_copy2(s1, "</mmultiscripts>");
4609 itex2MML_free_string(s1);
4610 itex2MML_free_string(yyvsp[-3]);
4611 itex2MML_free_string(yyvsp[-1]);
4612 }
4613 #line 4614 "y.tab.c"
4614 break;
4615
4616 case 204: /* subsupList: subsupTerm */
4617 #line 1134 "itex2MML.y"
4618 {
4619 yyval = itex2MML_copy_string(yyvsp[0]);
4620 itex2MML_free_string(yyvsp[0]);
4621 }
4622 #line 4623 "y.tab.c"
4623 break;
4624
4625 case 205: /* subsupList: subsupList subsupTerm */
4626 #line 1138 "itex2MML.y"
4627 {
4628 yyval = itex2MML_copy3(yyvsp[-1], " ", yyvsp[0]);
4629 itex2MML_free_string(yyvsp[-1]);
4630 itex2MML_free_string(yyvsp[0]);
4631 }
4632 #line 4633 "y.tab.c"
4633 break;
4634
4635 case 206: /* subsupTerm: SUB closedTerm SUP closedTerm */
4636 #line 1144 "itex2MML.y"
4637 {
4638 yyval = itex2MML_copy3(yyvsp[-2], " ", yyvsp[0]);
4639 itex2MML_free_string(yyvsp[-2]);
4640 itex2MML_free_string(yyvsp[0]);
4641 }
4642 #line 4643 "y.tab.c"
4643 break;
4644
4645 case 207: /* subsupTerm: SUB closedTerm */
4646 #line 1149 "itex2MML.y"
4647 {
4648 yyval = itex2MML_copy2(yyvsp[0], " <none></none>");
4649 itex2MML_free_string(yyvsp[0]);
4650 }
4651 #line 4652 "y.tab.c"
4652 break;
4653
4654 case 208: /* subsupTerm: SUP closedTerm */
4655 #line 1153 "itex2MML.y"
4656 {
4657 yyval = itex2MML_copy2("<none></none> ", yyvsp[0]);
4658 itex2MML_free_string(yyvsp[0]);
4659 }
4660 #line 4661 "y.tab.c"
4661 break;
4662
4663 case 209: /* subsupTerm: SUB SUP closedTerm */
4664 #line 1157 "itex2MML.y"
4665 {
4666 yyval = itex2MML_copy2("<none></none> ", yyvsp[0]);
4667 itex2MML_free_string(yyvsp[0]);
4668 }
4669 #line 4670 "y.tab.c"
4670 break;
4671
4672 case 210: /* mfrac: FRAC closedTerm closedTerm */
4673 #line 1162 "itex2MML.y"
4674 {
4675 char * s1 = itex2MML_copy3("<mfrac>", yyvsp[-1], yyvsp[0]);
4676 yyval = itex2MML_copy2(s1, "</mfrac>");
4677 itex2MML_free_string(s1);
4678 itex2MML_free_string(yyvsp[-1]);
4679 itex2MML_free_string(yyvsp[0]);
4680 }
4681 #line 4682 "y.tab.c"
4682 break;
4683
4684 case 211: /* mfrac: TFRAC closedTerm closedTerm */
4685 #line 1169 "itex2MML.y"
4686 {
4687 char * s1 = itex2MML_copy3("<mstyle displaystyle=\"false\"><mfrac>", yyvsp[-1], yyvsp[0]);
4688 yyval = itex2MML_copy2(s1, "</mfrac></mstyle>");
4689 itex2MML_free_string(s1);
4690 itex2MML_free_string(yyvsp[-1]);
4691 itex2MML_free_string(yyvsp[0]);
4692 }
4693 #line 4694 "y.tab.c"
4694 break;
4695
4696 case 212: /* pmod: PMOD closedTerm */
4697 #line 1177 "itex2MML.y"
4698 {
4699 yyval = itex2MML_copy3( "<mo lspace=\"mediummathspace\">(</mo><mo rspace=\"thinmathspace\">mod</mo>", yyvsp[0], "<mo rspace=\"mediummathspace\">)</mo>");
4700 itex2MML_free_string(yyvsp[0]);
4701 }
4702 #line 4703 "y.tab.c"
4703 break;
4704
4705 case 213: /* texover: MROWOPEN compoundTermList TEXOVER compoundTermList MROWCLOSE */
4706 #line 1182 "itex2MML.y"
4707 {
4708 char * s1 = itex2MML_copy3("<mfrac><mrow>", yyvsp[-3], "</mrow><mrow>");
4709 yyval = itex2MML_copy3(s1, yyvsp[-1], "</mrow></mfrac>");
4710 itex2MML_free_string(s1);
4711 itex2MML_free_string(yyvsp[-3]);
4712 itex2MML_free_string(yyvsp[-1]);
4713 }
4714 #line 4715 "y.tab.c"
4715 break;
4716
4717 case 214: /* texover: left compoundTermList TEXOVER compoundTermList right */
4718 #line 1189 "itex2MML.y"
4719 {
4720 char * s1 = itex2MML_copy3("<mrow>", yyvsp[-4], "<mfrac><mrow>");
4721 char * s2 = itex2MML_copy3(yyvsp[-3], "</mrow><mrow>", yyvsp[-1]);
4722 char * s3 = itex2MML_copy3("</mrow></mfrac>", yyvsp[0], "</mrow>");
4723 yyval = itex2MML_copy3(s1, s2, s3);
4724 itex2MML_free_string(s1);
4725 itex2MML_free_string(s2);
4726 itex2MML_free_string(s3);
4727 itex2MML_free_string(yyvsp[-4]);
4728 itex2MML_free_string(yyvsp[-3]);
4729 itex2MML_free_string(yyvsp[-1]);
4730 itex2MML_free_string(yyvsp[0]);
4731 }
4732 #line 4733 "y.tab.c"
4733 break;
4734
4735 case 215: /* texatop: MROWOPEN compoundTermList TEXATOP compoundTermList MROWCLOSE */
4736 #line 1203 "itex2MML.y"
4737 {
4738 char * s1 = itex2MML_copy3("<mfrac linethickness=\"0\"><mrow>", yyvsp[-3], "</mrow><mrow>");
4739 yyval = itex2MML_copy3(s1, yyvsp[-1], "</mrow></mfrac>");
4740 itex2MML_free_string(s1);
4741 itex2MML_free_string(yyvsp[-3]);
4742 itex2MML_free_string(yyvsp[-1]);
4743 }
4744 #line 4745 "y.tab.c"
4745 break;
4746
4747 case 216: /* texatop: left compoundTermList TEXATOP compoundTermList right */
4748 #line 1210 "itex2MML.y"
4749 {
4750 char * s1 = itex2MML_copy3("<mrow>", yyvsp[-4], "<mfrac linethickness=\"0\"><mrow>");
4751 char * s2 = itex2MML_copy3(yyvsp[-3], "</mrow><mrow>", yyvsp[-1]);
4752 char * s3 = itex2MML_copy3("</mrow></mfrac>", yyvsp[0], "</mrow>");
4753 yyval = itex2MML_copy3(s1, s2, s3);
4754 itex2MML_free_string(s1);
4755 itex2MML_free_string(s2);
4756 itex2MML_free_string(s3);
4757 itex2MML_free_string(yyvsp[-4]);
4758 itex2MML_free_string(yyvsp[-3]);
4759 itex2MML_free_string(yyvsp[-1]);
4760 itex2MML_free_string(yyvsp[0]);
4761 }
4762 #line 4763 "y.tab.c"
4763 break;
4764
4765 case 217: /* binom: BINOM closedTerm closedTerm */
4766 #line 1224 "itex2MML.y"
4767 {
4768 char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mfrac linethickness=\"0\">", yyvsp[-1], yyvsp[0]);
4769 yyval = itex2MML_copy2(s1, "</mfrac><mo>)</mo></mrow>");
4770 itex2MML_free_string(s1);
4771 itex2MML_free_string(yyvsp[-1]);
4772 itex2MML_free_string(yyvsp[0]);
4773 }
4774 #line 4775 "y.tab.c"
4775 break;
4776
4777 case 218: /* binom: TBINOM closedTerm closedTerm */
4778 #line 1231 "itex2MML.y"
4779 {
4780 char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mstyle displaystyle=\"false\"><mfrac linethickness=\"0\">", yyvsp[-1], yyvsp[0]);
4781 yyval = itex2MML_copy2(s1, "</mfrac></mstyle><mo>)</mo></mrow>");
4782 itex2MML_free_string(s1);
4783 itex2MML_free_string(yyvsp[-1]);
4784 itex2MML_free_string(yyvsp[0]);
4785 }
4786 #line 4787 "y.tab.c"
4787 break;
4788
4789 case 219: /* munderbrace: UNDERBRACE closedTerm */
4790 #line 1239 "itex2MML.y"
4791 {
4792 yyval = itex2MML_copy3("<munder>", yyvsp[0], "<mo>⏟</mo></munder>");
4793 itex2MML_free_string(yyvsp[0]);
4794 }
4795 #line 4796 "y.tab.c"
4796 break;
4797
4798 case 220: /* munderline: UNDERLINE closedTerm */
4799 #line 1244 "itex2MML.y"
4800 {
4801 yyval = itex2MML_copy3("<munder>", yyvsp[0], "<mo>̲</mo></munder>");
4802 itex2MML_free_string(yyvsp[0]);
4803 }
4804 #line 4805 "y.tab.c"
4805 break;
4806
4807 case 221: /* moverbrace: OVERBRACE closedTerm */
4808 #line 1249 "itex2MML.y"
4809 {
4810 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>⏞</mo></mover>");
4811 itex2MML_free_string(yyvsp[0]);
4812 }
4813 #line 4814 "y.tab.c"
4814 break;
4815
4816 case 222: /* bar: BAR closedTerm */
4817 #line 1254 "itex2MML.y"
4818 {
4819 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo stretchy=\"false\">¯</mo></mover>");
4820 itex2MML_free_string(yyvsp[0]);
4821 }
4822 #line 4823 "y.tab.c"
4823 break;
4824
4825 case 223: /* bar: WIDEBAR closedTerm */
4826 #line 1258 "itex2MML.y"
4827 {
4828 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>¯</mo></mover>");
4829 itex2MML_free_string(yyvsp[0]);
4830 }
4831 #line 4832 "y.tab.c"
4832 break;
4833
4834 case 224: /* vec: VEC closedTerm */
4835 #line 1263 "itex2MML.y"
4836 {
4837 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo stretchy=\"false\">⇀</mo></mover>");
4838 itex2MML_free_string(yyvsp[0]);
4839 }
4840 #line 4841 "y.tab.c"
4841 break;
4842
4843 case 225: /* vec: WIDEVEC closedTerm */
4844 #line 1267 "itex2MML.y"
4845 {
4846 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>⇀</mo></mover>");
4847 itex2MML_free_string(yyvsp[0]);
4848 }
4849 #line 4850 "y.tab.c"
4850 break;
4851
4852 case 226: /* dot: DOT closedTerm */
4853 #line 1272 "itex2MML.y"
4854 {
4855 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>˙</mo></mover>");
4856 itex2MML_free_string(yyvsp[0]);
4857 }
4858 #line 4859 "y.tab.c"
4859 break;
4860
4861 case 227: /* ddot: DDOT closedTerm */
4862 #line 1277 "itex2MML.y"
4863 {
4864 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>¨</mo></mover>");
4865 itex2MML_free_string(yyvsp[0]);
4866 }
4867 #line 4868 "y.tab.c"
4868 break;
4869
4870 case 228: /* dddot: DDDOT closedTerm */
4871 #line 1282 "itex2MML.y"
4872 {
4873 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>⃛</mo></mover>");
4874 itex2MML_free_string(yyvsp[0]);
4875 }
4876 #line 4877 "y.tab.c"
4877 break;
4878
4879 case 229: /* ddddot: DDDDOT closedTerm */
4880 #line 1287 "itex2MML.y"
4881 {
4882 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>⃜</mo></mover>");
4883 itex2MML_free_string(yyvsp[0]);
4884 }
4885 #line 4886 "y.tab.c"
4886 break;
4887
4888 case 230: /* tilde: TILDE closedTerm */
4889 #line 1292 "itex2MML.y"
4890 {
4891 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo stretchy=\"false\">˜</mo></mover>");
4892 itex2MML_free_string(yyvsp[0]);
4893 }
4894 #line 4895 "y.tab.c"
4895 break;
4896
4897 case 231: /* tilde: WIDETILDE closedTerm */
4898 #line 1296 "itex2MML.y"
4899 {
4900 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>˜</mo></mover>");
4901 itex2MML_free_string(yyvsp[0]);
4902 }
4903 #line 4904 "y.tab.c"
4904 break;
4905
4906 case 232: /* check: CHECK closedTerm */
4907 #line 1301 "itex2MML.y"
4908 {
4909 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo stretchy=\"false\">ˇ</mo></mover>");
4910 itex2MML_free_string(yyvsp[0]);
4911 }
4912 #line 4913 "y.tab.c"
4913 break;
4914
4915 case 233: /* check: WIDECHECK closedTerm */
4916 #line 1305 "itex2MML.y"
4917 {
4918 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>ˇ</mo></mover>");
4919 itex2MML_free_string(yyvsp[0]);
4920 }
4921 #line 4922 "y.tab.c"
4922 break;
4923
4924 case 234: /* hat: HAT closedTerm */
4925 #line 1310 "itex2MML.y"
4926 {
4927 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo stretchy=\"false\">^</mo></mover>");
4928 itex2MML_free_string(yyvsp[0]);
4929 }
4930 #line 4931 "y.tab.c"
4931 break;
4932
4933 case 235: /* hat: WIDEHAT closedTerm */
4934 #line 1314 "itex2MML.y"
4935 {
4936 yyval = itex2MML_copy3("<mover>", yyvsp[0], "<mo>^</mo></mover>");
4937 itex2MML_free_string(yyvsp[0]);
4938 }
4939 #line 4940 "y.tab.c"
4940 break;
4941
4942 case 236: /* msqrt: SQRT closedTerm */
4943 #line 1319 "itex2MML.y"
4944 {
4945 yyval = itex2MML_copy3("<msqrt>", yyvsp[0], "</msqrt>");
4946 itex2MML_free_string(yyvsp[0]);
4947 }
4948 #line 4949 "y.tab.c"
4949 break;
4950
4951 case 237: /* mroot: SQRT OPTARGOPEN compoundTermList OPTARGCLOSE closedTerm */
4952 #line 1324 "itex2MML.y"
4953 {
4954 char * s1 = itex2MML_copy3("<mroot>", yyvsp[0], yyvsp[-2]);
4955 yyval = itex2MML_copy2(s1, "</mroot>");
4956 itex2MML_free_string(s1);
4957 itex2MML_free_string(yyvsp[-2]);
4958 itex2MML_free_string(yyvsp[0]);
4959 }
4960 #line 4961 "y.tab.c"
4961 break;
4962
4963 case 238: /* mroot: ROOT closedTerm closedTerm */
4964 #line 1331 "itex2MML.y"
4965 {
4966 char * s1 = itex2MML_copy3("<mroot>", yyvsp[0], yyvsp[-1]);
4967 yyval = itex2MML_copy2(s1, "</mroot>");
4968 itex2MML_free_string(s1);
4969 itex2MML_free_string(yyvsp[-1]);
4970 itex2MML_free_string(yyvsp[0]);
4971 }
4972 #line 4973 "y.tab.c"
4973 break;
4974
4975 case 239: /* raisebox: RAISEBOX TEXTSTRING TEXTSTRING TEXTSTRING closedTerm */
4976 #line 1339 "itex2MML.y"
4977 {
4978 char * s1 = itex2MML_copy3("<mpadded voffset='", yyvsp[-3], "' height='");
4979 char * s2 = itex2MML_copy3(s1, yyvsp[-2], "' depth='");
4980 char * s3 = itex2MML_copy3(s2, yyvsp[-1], "'>");
4981 yyval = itex2MML_copy3(s3, yyvsp[0], "</mpadded>");
4982 itex2MML_free_string(s1);
4983 itex2MML_free_string(s2);
4984 itex2MML_free_string(s3);
4985 itex2MML_free_string(yyvsp[-3]);
4986 itex2MML_free_string(yyvsp[-2]);
4987 itex2MML_free_string(yyvsp[-1]);
4988 itex2MML_free_string(yyvsp[0]);
4989 }
4990 #line 4991 "y.tab.c"
4991 break;
4992
4993 case 240: /* raisebox: RAISEBOX NEG TEXTSTRING TEXTSTRING TEXTSTRING closedTerm */
4994 #line 1352 "itex2MML.y"
4995 {
4996 char * s1 = itex2MML_copy3("<mpadded voffset='-", yyvsp[-3], "' height='");
4997 char * s2 = itex2MML_copy3(s1, yyvsp[-2], "' depth='");
4998 char * s3 = itex2MML_copy3(s2, yyvsp[-1], "'>");
4999 yyval = itex2MML_copy3(s3, yyvsp[0], "</mpadded>");
5000 itex2MML_free_string(s1);
5001 itex2MML_free_string(s2);
5002 itex2MML_free_string(s3);
5003 itex2MML_free_string(yyvsp[-3]);
5004 itex2MML_free_string(yyvsp[-2]);
5005 itex2MML_free_string(yyvsp[-1]);
5006 itex2MML_free_string(yyvsp[0]);
5007 }
5008 #line 5009 "y.tab.c"
5009 break;
5010
5011 case 241: /* raisebox: RAISEBOX TEXTSTRING TEXTSTRING closedTerm */
5012 #line 1365 "itex2MML.y"
5013 {
5014 char * s1 = itex2MML_copy3("<mpadded voffset='", yyvsp[-2], "' height='");
5015 char * s2 = itex2MML_copy3(s1, yyvsp[-1], "' depth='depth'>");
5016 yyval = itex2MML_copy3(s2, yyvsp[0], "</mpadded>");
5017 itex2MML_free_string(s1);
5018 itex2MML_free_string(s2);
5019 itex2MML_free_string(yyvsp[-2]);
5020 itex2MML_free_string(yyvsp[-1]);
5021 itex2MML_free_string(yyvsp[0]);
5022 }
5023 #line 5024 "y.tab.c"
5024 break;
5025
5026 case 242: /* raisebox: RAISEBOX NEG TEXTSTRING TEXTSTRING closedTerm */
5027 #line 1375 "itex2MML.y"
5028 {
5029 char * s1 = itex2MML_copy3("<mpadded voffset='-", yyvsp[-2], "' height='");
5030 char * s2 = itex2MML_copy3(s1, yyvsp[-1], "' depth='+");
5031 char * s3 = itex2MML_copy3(s2, yyvsp[-2], "'>");
5032 yyval = itex2MML_copy3(s3, yyvsp[0], "</mpadded>");
5033 itex2MML_free_string(s1);
5034 itex2MML_free_string(s2);
5035 itex2MML_free_string(s3);
5036 itex2MML_free_string(yyvsp[-2]);
5037 itex2MML_free_string(yyvsp[-1]);
5038 itex2MML_free_string(yyvsp[0]);
5039 }
5040 #line 5041 "y.tab.c"
5041 break;
5042
5043 case 243: /* raisebox: RAISEBOX TEXTSTRING closedTerm */
5044 #line 1387 "itex2MML.y"
5045 {
5046 char * s1 = itex2MML_copy3("<mpadded voffset='", yyvsp[-1], "' height='+");
5047 char * s2 = itex2MML_copy3(s1, yyvsp[-1], "' depth='depth'>");
5048 yyval = itex2MML_copy3(s2, yyvsp[0], "</mpadded>");
5049 itex2MML_free_string(s1);
5050 itex2MML_free_string(s2);
5051 itex2MML_free_string(yyvsp[-1]);
5052 itex2MML_free_string(yyvsp[0]);
5053 }
5054 #line 5055 "y.tab.c"
5055 break;
5056
5057 case 244: /* raisebox: RAISEBOX NEG TEXTSTRING closedTerm */
5058 #line 1396 "itex2MML.y"
5059 {
5060 char * s1 = itex2MML_copy3("<mpadded voffset='-", yyvsp[-1], "' height='0pt' depth='+");
5061 char * s2 = itex2MML_copy3(s1, yyvsp[-1], "'>");
5062 yyval = itex2MML_copy3(s2, yyvsp[0], "</mpadded>");
5063 itex2MML_free_string(s1);
5064 itex2MML_free_string(s2);
5065 itex2MML_free_string(yyvsp[-1]);
5066 itex2MML_free_string(yyvsp[0]);
5067 }
5068 #line 5069 "y.tab.c"
5069 break;
5070
5071 case 245: /* munder: XARROW OPTARGOPEN compoundTermList OPTARGCLOSE EMPTYMROW */
5072 #line 1406 "itex2MML.y"
5073 {
5074 char * s1 = itex2MML_copy3("<munder><mo>", yyvsp[-4], "</mo><mrow>");
5075 yyval = itex2MML_copy3(s1, yyvsp[-2], "</mrow></munder>");
5076 itex2MML_free_string(s1);
5077 itex2MML_free_string(yyvsp[-4]);
5078 itex2MML_free_string(yyvsp[-2]);
5079 }
5080 #line 5081 "y.tab.c"
5081 break;
5082
5083 case 246: /* munder: UNDER closedTerm closedTerm */
5084 #line 1413 "itex2MML.y"
5085 {
5086 char * s1 = itex2MML_copy3("<munder>", yyvsp[0], yyvsp[-1]);
5087 yyval = itex2MML_copy2(s1, "</munder>");
5088 itex2MML_free_string(s1);
5089 itex2MML_free_string(yyvsp[-1]);
5090 itex2MML_free_string(yyvsp[0]);
5091 }
5092 #line 5093 "y.tab.c"
5093 break;
5094
5095 case 247: /* mover: XARROW closedTerm */
5096 #line 1421 "itex2MML.y"
5097 {
5098 char * s1 = itex2MML_copy3("<mover><mo>", yyvsp[-1], "</mo>");
5099 yyval = itex2MML_copy3(s1, yyvsp[0], "</mover>");
5100 itex2MML_free_string(s1);
5101 itex2MML_free_string(yyvsp[-1]);
5102 itex2MML_free_string(yyvsp[0]);
5103 }
5104 #line 5105 "y.tab.c"
5105 break;
5106
5107 case 248: /* mover: OVER closedTerm closedTerm */
5108 #line 1428 "itex2MML.y"
5109 {
5110 char * s1 = itex2MML_copy3("<mover>", yyvsp[0], yyvsp[-1]);
5111 yyval = itex2MML_copy2(s1, "</mover>");
5112 itex2MML_free_string(s1);
5113 itex2MML_free_string(yyvsp[-1]);
5114 itex2MML_free_string(yyvsp[0]);
5115 }
5116 #line 5117 "y.tab.c"
5117 break;
5118
5119 case 249: /* munderover: XARROW OPTARGOPEN compoundTermList OPTARGCLOSE closedTerm */
5120 #line 1436 "itex2MML.y"
5121 {
5122 char * s1 = itex2MML_copy3("<munderover><mo>", yyvsp[-4], "</mo><mrow>");
5123 char * s2 = itex2MML_copy3(s1, yyvsp[-2], "</mrow>");
5124 yyval = itex2MML_copy3(s2, yyvsp[0], "</munderover>");
5125 itex2MML_free_string(s1);
5126 itex2MML_free_string(s2);
5127 itex2MML_free_string(yyvsp[-4]);
5128 itex2MML_free_string(yyvsp[-2]);
5129 itex2MML_free_string(yyvsp[0]);
5130 }
5131 #line 5132 "y.tab.c"
5132 break;
5133
5134 case 250: /* munderover: UNDEROVER closedTerm closedTerm closedTerm */
5135 #line 1446 "itex2MML.y"
5136 {
5137 char * s1 = itex2MML_copy3("<munderover>", yyvsp[0], yyvsp[-2]);
5138 yyval = itex2MML_copy3(s1, yyvsp[-1], "</munderover>");
5139 itex2MML_free_string(s1);
5140 itex2MML_free_string(yyvsp[-2]);
5141 itex2MML_free_string(yyvsp[-1]);
5142 itex2MML_free_string(yyvsp[0]);
5143 }
5144 #line 5145 "y.tab.c"
5145 break;
5146
5147 case 251: /* emptymrow: EMPTYMROW */
5148 #line 1455 "itex2MML.y"
5149 {
5150 yyval = itex2MML_copy_string("<mrow></mrow>");
5151 }
5152 #line 5153 "y.tab.c"
5153 break;
5154
5155 case 252: /* mathenv: BEGINENV MATRIX tableRowList ENDENV MATRIX */
5156 #line 1459 "itex2MML.y"
5157 {
5158 yyval = itex2MML_copy3("<mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow>");
5159 itex2MML_free_string(yyvsp[-2]);
5160 }
5161 #line 5162 "y.tab.c"
5162 break;
5163
5164 case 253: /* mathenv: BEGINENV GATHERED tableRowList ENDENV GATHERED */
5165 #line 1463 "itex2MML.y"
5166 {
5167 yyval = itex2MML_copy3("<mrow><mtable rowspacing=\"1.0ex\">", yyvsp[-2], "</mtable></mrow>");
5168 itex2MML_free_string(yyvsp[-2]);
5169 }
5170 #line 5171 "y.tab.c"
5171 break;
5172
5173 case 254: /* mathenv: BEGINENV PMATRIX tableRowList ENDENV PMATRIX */
5174 #line 1467 "itex2MML.y"
5175 {
5176 yyval = itex2MML_copy3("<mrow><mo>(</mo><mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow><mo>)</mo></mrow>");
5177 itex2MML_free_string(yyvsp[-2]);
5178 }
5179 #line 5180 "y.tab.c"
5180 break;
5181
5182 case 255: /* mathenv: BEGINENV BMATRIX tableRowList ENDENV BMATRIX */
5183 #line 1471 "itex2MML.y"
5184 {
5185 yyval = itex2MML_copy3("<mrow><mo>[</mo><mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow><mo>]</mo></mrow>");
5186 itex2MML_free_string(yyvsp[-2]);
5187 }
5188 #line 5189 "y.tab.c"
5189 break;
5190
5191 case 256: /* mathenv: BEGINENV VMATRIX tableRowList ENDENV VMATRIX */
5192 #line 1475 "itex2MML.y"
5193 {
5194 yyval = itex2MML_copy3("<mrow><mo>∣</mo><mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow><mo>∣</mo></mrow>");
5195 itex2MML_free_string(yyvsp[-2]);
5196 }
5197 #line 5198 "y.tab.c"
5198 break;
5199
5200 case 257: /* mathenv: BEGINENV BBMATRIX tableRowList ENDENV BBMATRIX */
5201 #line 1479 "itex2MML.y"
5202 {
5203 yyval = itex2MML_copy3("<mrow><mo>{</mo><mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow><mo>}</mo></mrow>");
5204 itex2MML_free_string(yyvsp[-2]);
5205 }
5206 #line 5207 "y.tab.c"
5207 break;
5208
5209 case 258: /* mathenv: BEGINENV VVMATRIX tableRowList ENDENV VVMATRIX */
5210 #line 1483 "itex2MML.y"
5211 {
5212 yyval = itex2MML_copy3("<mrow><mo>∥</mo><mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow><mo>∥</mo></mrow>");
5213 itex2MML_free_string(yyvsp[-2]);
5214 }
5215 #line 5216 "y.tab.c"
5216 break;
5217
5218 case 259: /* mathenv: BEGINENV SMALLMATRIX tableRowList ENDENV SMALLMATRIX */
5219 #line 1487 "itex2MML.y"
5220 {
5221 yyval = itex2MML_copy3("<mstyle scriptlevel=\"2\"><mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow></mstyle>");
5222 itex2MML_free_string(yyvsp[-2]);
5223 }
5224 #line 5225 "y.tab.c"
5225 break;
5226
5227 case 260: /* mathenv: BEGINENV CASES tableRowList ENDENV CASES */
5228 #line 1491 "itex2MML.y"
5229 {
5230 yyval = itex2MML_copy3("<mrow><mo>{</mo><mrow><mtable columnalign=\"left left\">", yyvsp[-2], "</mtable></mrow></mrow>");
5231 itex2MML_free_string(yyvsp[-2]);
5232 }
5233 #line 5234 "y.tab.c"
5234 break;
5235
5236 case 261: /* mathenv: BEGINENV ALIGNED tableRowList ENDENV ALIGNED */
5237 #line 1495 "itex2MML.y"
5238 {
5239 yyval = itex2MML_copy3("<mrow><mtable columnalign=\"right left right left right left right left right left\" columnspacing=\"0em\">", yyvsp[-2], "</mtable></mrow>");
5240 itex2MML_free_string(yyvsp[-2]);
5241 }
5242 #line 5243 "y.tab.c"
5243 break;
5244
5245 case 262: /* mathenv: BEGINENV ARRAY ARRAYALIGN ST columnAlignList END tableRowList ENDENV ARRAY */
5246 #line 1499 "itex2MML.y"
5247 {
5248 char * s1 = itex2MML_copy3("<mtable rowspacing=\"0.5ex\" align=\"", yyvsp[-6], "\" columnalign=\"");
5249 char * s2 = itex2MML_copy3(s1, yyvsp[-4], "\">");
5250 yyval = itex2MML_copy3(s2, yyvsp[-2], "</mtable>");
5251 itex2MML_free_string(s1);
5252 itex2MML_free_string(s2);
5253 itex2MML_free_string(yyvsp[-6]);
5254 itex2MML_free_string(yyvsp[-4]);
5255 itex2MML_free_string(yyvsp[-2]);
5256 }
5257 #line 5258 "y.tab.c"
5258 break;
5259
5260 case 263: /* mathenv: BEGINENV ARRAY ST columnAlignList END tableRowList ENDENV ARRAY */
5261 #line 1509 "itex2MML.y"
5262 {
5263 char * s1 = itex2MML_copy3("<mtable rowspacing=\"0.5ex\" columnalign=\"", yyvsp[-4], "\">");
5264 yyval = itex2MML_copy3(s1, yyvsp[-2], "</mtable>");
5265 itex2MML_free_string(s1);
5266 itex2MML_free_string(yyvsp[-4]);
5267 itex2MML_free_string(yyvsp[-2]);
5268 }
5269 #line 5270 "y.tab.c"
5270 break;
5271
5272 case 264: /* mathenv: BEGINENV SVG XMLSTRING ENDSVG */
5273 #line 1516 "itex2MML.y"
5274 {
5275 yyval = itex2MML_copy3("<semantics><annotation-xml encoding=\"SVG1.1\">", yyvsp[-1], "</annotation-xml></semantics>");
5276 itex2MML_free_string(yyvsp[-1]);
5277 }
5278 #line 5279 "y.tab.c"
5279 break;
5280
5281 case 265: /* mathenv: BEGINENV SVG ENDSVG */
5282 #line 1520 "itex2MML.y"
5283 {
5284 yyval = itex2MML_copy_string(" ");
5285 }
5286 #line 5287 "y.tab.c"
5287 break;
5288
5289 case 266: /* columnAlignList: columnAlignList COLUMNALIGN */
5290 #line 1524 "itex2MML.y"
5291 {
5292 yyval = itex2MML_copy3(yyvsp[-1], " ", yyvsp[0]);
5293 itex2MML_free_string(yyvsp[-1]);
5294 itex2MML_free_string(yyvsp[0]);
5295 }
5296 #line 5297 "y.tab.c"
5297 break;
5298
5299 case 267: /* columnAlignList: COLUMNALIGN */
5300 #line 1529 "itex2MML.y"
5301 {
5302 yyval = itex2MML_copy_string(yyvsp[0]);
5303 itex2MML_free_string(yyvsp[0]);
5304 }
5305 #line 5306 "y.tab.c"
5306 break;
5307
5308 case 268: /* substack: SUBSTACK MROWOPEN tableRowList MROWCLOSE */
5309 #line 1534 "itex2MML.y"
5310 {
5311 yyval = itex2MML_copy3("<mrow><mtable columnalign=\"center\" rowspacing=\"0.5ex\">", yyvsp[-1], "</mtable></mrow>");
5312 itex2MML_free_string(yyvsp[-1]);
5313 }
5314 #line 5315 "y.tab.c"
5315 break;
5316
5317 case 269: /* array: ARRAY MROWOPEN tableRowList MROWCLOSE */
5318 #line 1539 "itex2MML.y"
5319 {
5320 yyval = itex2MML_copy3("<mrow><mtable>", yyvsp[-1], "</mtable></mrow>");
5321 itex2MML_free_string(yyvsp[-1]);
5322 }
5323 #line 5324 "y.tab.c"
5324 break;
5325
5326 case 270: /* array: ARRAY MROWOPEN ARRAYOPTS MROWOPEN arrayopts MROWCLOSE tableRowList MROWCLOSE */
5327 #line 1543 "itex2MML.y"
5328 {
5329 char * s1 = itex2MML_copy3("<mrow><mtable ", yyvsp[-3], ">");
5330 yyval = itex2MML_copy3(s1, yyvsp[-1], "</mtable></mrow>");
5331 itex2MML_free_string(s1);
5332 itex2MML_free_string(yyvsp[-3]);
5333 itex2MML_free_string(yyvsp[-1]);
5334 }
5335 #line 5336 "y.tab.c"
5336 break;
5337
5338 case 271: /* arrayopts: anarrayopt */
5339 #line 1551 "itex2MML.y"
5340 {
5341 yyval = itex2MML_copy_string(yyvsp[0]);
5342 itex2MML_free_string(yyvsp[0]);
5343 }
5344 #line 5345 "y.tab.c"
5345 break;
5346
5347 case 272: /* arrayopts: arrayopts anarrayopt */
5348 #line 1555 "itex2MML.y"
5349 {
5350 yyval = itex2MML_copy3(yyvsp[-1], " ", yyvsp[0]);
5351 itex2MML_free_string(yyvsp[-1]);
5352 itex2MML_free_string(yyvsp[0]);
5353 }
5354 #line 5355 "y.tab.c"
5355 break;
5356
5357 case 273: /* anarrayopt: collayout */
5358 #line 1561 "itex2MML.y"
5359 {
5360 yyval = itex2MML_copy_string(yyvsp[0]);
5361 itex2MML_free_string(yyvsp[0]);
5362 }
5363 #line 5364 "y.tab.c"
5364 break;
5365
5366 case 274: /* anarrayopt: colalign */
5367 #line 1565 "itex2MML.y"
5368 {
5369 yyval = itex2MML_copy_string(yyvsp[0]);
5370 itex2MML_free_string(yyvsp[0]);
5371 }
5372 #line 5373 "y.tab.c"
5373 break;
5374
5375 case 275: /* anarrayopt: rowalign */
5376 #line 1569 "itex2MML.y"
5377 {
5378 yyval = itex2MML_copy_string(yyvsp[0]);
5379 itex2MML_free_string(yyvsp[0]);
5380 }
5381 #line 5382 "y.tab.c"
5382 break;
5383
5384 case 276: /* anarrayopt: align */
5385 #line 1573 "itex2MML.y"
5386 {
5387 yyval = itex2MML_copy_string(yyvsp[0]);
5388 itex2MML_free_string(yyvsp[0]);
5389 }
5390 #line 5391 "y.tab.c"
5391 break;
5392
5393 case 277: /* anarrayopt: eqrows */
5394 #line 1577 "itex2MML.y"
5395 {
5396 yyval = itex2MML_copy_string(yyvsp[0]);
5397 itex2MML_free_string(yyvsp[0]);
5398 }
5399 #line 5400 "y.tab.c"
5400 break;
5401
5402 case 278: /* anarrayopt: eqcols */
5403 #line 1581 "itex2MML.y"
5404 {
5405 yyval = itex2MML_copy_string(yyvsp[0]);
5406 itex2MML_free_string(yyvsp[0]);
5407 }
5408 #line 5409 "y.tab.c"
5409 break;
5410
5411 case 279: /* anarrayopt: rowlines */
5412 #line 1585 "itex2MML.y"
5413 {
5414 yyval = itex2MML_copy_string(yyvsp[0]);
5415 itex2MML_free_string(yyvsp[0]);
5416 }
5417 #line 5418 "y.tab.c"
5418 break;
5419
5420 case 280: /* anarrayopt: collines */
5421 #line 1589 "itex2MML.y"
5422 {
5423 yyval = itex2MML_copy_string(yyvsp[0]);
5424 itex2MML_free_string(yyvsp[0]);
5425 }
5426 #line 5427 "y.tab.c"
5427 break;
5428
5429 case 281: /* anarrayopt: frame */
5430 #line 1593 "itex2MML.y"
5431 {
5432 yyval = itex2MML_copy_string(yyvsp[0]);
5433 itex2MML_free_string(yyvsp[0]);
5434 }
5435 #line 5436 "y.tab.c"
5436 break;
5437
5438 case 282: /* anarrayopt: padding */
5439 #line 1597 "itex2MML.y"
5440 {
5441 yyval = itex2MML_copy_string(yyvsp[0]);
5442 itex2MML_free_string(yyvsp[0]);
5443 }
5444 #line 5445 "y.tab.c"
5445 break;
5446
5447 case 283: /* collayout: COLLAYOUT ATTRLIST */
5448 #line 1602 "itex2MML.y"
5449 {
5450 yyval = itex2MML_copy2("columnalign=", yyvsp[0]);
5451 itex2MML_free_string(yyvsp[0]);
5452 }
5453 #line 5454 "y.tab.c"
5454 break;
5455
5456 case 284: /* colalign: COLALIGN ATTRLIST */
5457 #line 1607 "itex2MML.y"
5458 {
5459 yyval = itex2MML_copy2("columnalign=", yyvsp[0]);
5460 itex2MML_free_string(yyvsp[0]);
5461 }
5462 #line 5463 "y.tab.c"
5463 break;
5464
5465 case 285: /* rowalign: ROWALIGN ATTRLIST */
5466 #line 1612 "itex2MML.y"
5467 {
5468 yyval = itex2MML_copy2("rowalign=", yyvsp[0]);
5469 itex2MML_free_string(yyvsp[0]);
5470 }
5471 #line 5472 "y.tab.c"
5472 break;
5473
5474 case 286: /* align: ALIGN ATTRLIST */
5475 #line 1617 "itex2MML.y"
5476 {
5477 yyval = itex2MML_copy2("align=", yyvsp[0]);
5478 itex2MML_free_string(yyvsp[0]);
5479 }
5480 #line 5481 "y.tab.c"
5481 break;
5482
5483 case 287: /* eqrows: EQROWS ATTRLIST */
5484 #line 1622 "itex2MML.y"
5485 {
5486 yyval = itex2MML_copy2("equalrows=", yyvsp[0]);
5487 itex2MML_free_string(yyvsp[0]);
5488 }
5489 #line 5490 "y.tab.c"
5490 break;
5491
5492 case 288: /* eqcols: EQCOLS ATTRLIST */
5493 #line 1627 "itex2MML.y"
5494 {
5495 yyval = itex2MML_copy2("equalcolumns=", yyvsp[0]);
5496 itex2MML_free_string(yyvsp[0]);
5497 }
5498 #line 5499 "y.tab.c"
5499 break;
5500
5501 case 289: /* rowlines: ROWLINES ATTRLIST */
5502 #line 1632 "itex2MML.y"
5503 {
5504 yyval = itex2MML_copy2("rowlines=", yyvsp[0]);
5505 itex2MML_free_string(yyvsp[0]);
5506 }
5507 #line 5508 "y.tab.c"
5508 break;
5509
5510 case 290: /* collines: COLLINES ATTRLIST */
5511 #line 1637 "itex2MML.y"
5512 {
5513 yyval = itex2MML_copy2("columnlines=", yyvsp[0]);
5514 itex2MML_free_string(yyvsp[0]);
5515 }
5516 #line 5517 "y.tab.c"
5517 break;
5518
5519 case 291: /* frame: FRAME ATTRLIST */
5520 #line 1642 "itex2MML.y"
5521 {
5522 yyval = itex2MML_copy2("frame=", yyvsp[0]);
5523 itex2MML_free_string(yyvsp[0]);
5524 }
5525 #line 5526 "y.tab.c"
5526 break;
5527
5528 case 292: /* padding: PADDING ATTRLIST */
5529 #line 1647 "itex2MML.y"
5530 {
5531 char * s1 = itex2MML_copy3("rowspacing=", yyvsp[0], " columnspacing=");
5532 yyval = itex2MML_copy2(s1, yyvsp[0]);
5533 itex2MML_free_string(s1);
5534 itex2MML_free_string(yyvsp[0]);
5535 }
5536 #line 5537 "y.tab.c"
5537 break;
5538
5539 case 293: /* tableRowList: tableRow */
5540 #line 1654 "itex2MML.y"
5541 {
5542 yyval = itex2MML_copy_string(yyvsp[0]);
5543 itex2MML_free_string(yyvsp[0]);
5544 }
5545 #line 5546 "y.tab.c"
5546 break;
5547
5548 case 294: /* tableRowList: tableRowList ROWSEP tableRow */
5549 #line 1658 "itex2MML.y"
5550 {
5551 yyval = itex2MML_copy3(yyvsp[-2], " ", yyvsp[0]);
5552 itex2MML_free_string(yyvsp[-2]);
5553 itex2MML_free_string(yyvsp[0]);
5554 }
5555 #line 5556 "y.tab.c"
5556 break;
5557
5558 case 295: /* tableRow: simpleTableRow */
5559 #line 1664 "itex2MML.y"
5560 {
5561 yyval = itex2MML_copy3("<mtr>", yyvsp[0], "</mtr>");
5562 itex2MML_free_string(yyvsp[0]);
5563 }
5564 #line 5565 "y.tab.c"
5565 break;
5566
5567 case 296: /* tableRow: optsTableRow */
5568 #line 1668 "itex2MML.y"
5569 {
5570 yyval = itex2MML_copy_string(yyvsp[0]);
5571 itex2MML_free_string(yyvsp[0]);
5572 }
5573 #line 5574 "y.tab.c"
5574 break;
5575
5576 case 297: /* simpleTableRow: tableCell */
5577 #line 1673 "itex2MML.y"
5578 {
5579 yyval = itex2MML_copy_string(yyvsp[0]);
5580 itex2MML_free_string(yyvsp[0]);
5581 }
5582 #line 5583 "y.tab.c"
5583 break;
5584
5585 case 298: /* simpleTableRow: simpleTableRow COLSEP tableCell */
5586 #line 1677 "itex2MML.y"
5587 {
5588 yyval = itex2MML_copy3(yyvsp[-2], " ", yyvsp[0]);
5589 itex2MML_free_string(yyvsp[-2]);
5590 itex2MML_free_string(yyvsp[0]);
5591 }
5592 #line 5593 "y.tab.c"
5593 break;
5594
5595 case 299: /* optsTableRow: ROWOPTS MROWOPEN rowopts MROWCLOSE simpleTableRow */
5596 #line 1683 "itex2MML.y"
5597 {
5598 char * s1 = itex2MML_copy3("<mtr ", yyvsp[-2], ">");
5599 yyval = itex2MML_copy3(s1, yyvsp[0], "</mtr>");
5600 itex2MML_free_string(s1);
5601 itex2MML_free_string(yyvsp[-2]);
5602 itex2MML_free_string(yyvsp[0]);
5603 }
5604 #line 5605 "y.tab.c"
5605 break;
5606
5607 case 300: /* rowopts: arowopt */
5608 #line 1691 "itex2MML.y"
5609 {
5610 yyval = itex2MML_copy_string(yyvsp[0]);
5611 itex2MML_free_string(yyvsp[0]);
5612 }
5613 #line 5614 "y.tab.c"
5614 break;
5615
5616 case 301: /* rowopts: rowopts arowopt */
5617 #line 1695 "itex2MML.y"
5618 {
5619 yyval = itex2MML_copy3(yyvsp[-1], " ", yyvsp[0]);
5620 itex2MML_free_string(yyvsp[-1]);
5621 itex2MML_free_string(yyvsp[0]);
5622 }
5623 #line 5624 "y.tab.c"
5624 break;
5625
5626 case 302: /* arowopt: colalign */
5627 #line 1701 "itex2MML.y"
5628 {
5629 yyval = itex2MML_copy_string(yyvsp[0]);
5630 itex2MML_free_string(yyvsp[0]);
5631 }
5632 #line 5633 "y.tab.c"
5633 break;
5634
5635 case 303: /* arowopt: rowalign */
5636 #line 1705 "itex2MML.y"
5637 {
5638 yyval = itex2MML_copy_string(yyvsp[0]);
5639 itex2MML_free_string(yyvsp[0]);
5640 }
5641 #line 5642 "y.tab.c"
5642 break;
5643
5644 case 304: /* tableCell: %empty */
5645 #line 1710 "itex2MML.y"
5646 {
5647 yyval = itex2MML_copy_string("<mtd></mtd>");
5648 }
5649 #line 5650 "y.tab.c"
5650 break;
5651
5652 case 305: /* tableCell: compoundTermList */
5653 #line 1713 "itex2MML.y"
5654 {
5655 yyval = itex2MML_copy3("<mtd>", yyvsp[0], "</mtd>");
5656 itex2MML_free_string(yyvsp[0]);
5657 }
5658 #line 5659 "y.tab.c"
5659 break;
5660
5661 case 306: /* tableCell: CELLOPTS MROWOPEN cellopts MROWCLOSE compoundTermList */
5662 #line 1717 "itex2MML.y"
5663 {
5664 char * s1 = itex2MML_copy3("<mtd ", yyvsp[-2], ">");
5665 yyval = itex2MML_copy3(s1, yyvsp[0], "</mtd>");
5666 itex2MML_free_string(s1);
5667 itex2MML_free_string(yyvsp[-2]);
5668 itex2MML_free_string(yyvsp[0]);
5669 }
5670 #line 5671 "y.tab.c"
5671 break;
5672
5673 case 307: /* cellopts: acellopt */
5674 #line 1725 "itex2MML.y"
5675 {
5676 yyval = itex2MML_copy_string(yyvsp[0]);
5677 itex2MML_free_string(yyvsp[0]);
5678 }
5679 #line 5680 "y.tab.c"
5680 break;
5681
5682 case 308: /* cellopts: cellopts acellopt */
5683 #line 1729 "itex2MML.y"
5684 {
5685 yyval = itex2MML_copy3(yyvsp[-1], " ", yyvsp[0]);
5686 itex2MML_free_string(yyvsp[-1]);
5687 itex2MML_free_string(yyvsp[0]);
5688 }
5689 #line 5690 "y.tab.c"
5690 break;
5691
5692 case 309: /* acellopt: colalign */
5693 #line 1735 "itex2MML.y"
5694 {
5695 yyval = itex2MML_copy_string(yyvsp[0]);
5696 itex2MML_free_string(yyvsp[0]);
5697 }
5698 #line 5699 "y.tab.c"
5699 break;
5700
5701 case 310: /* acellopt: rowalign */
5702 #line 1739 "itex2MML.y"
5703 {
5704 yyval = itex2MML_copy_string(yyvsp[0]);
5705 itex2MML_free_string(yyvsp[0]);
5706 }
5707 #line 5708 "y.tab.c"
5708 break;
5709
5710 case 311: /* acellopt: rowspan */
5711 #line 1743 "itex2MML.y"
5712 {
5713 yyval = itex2MML_copy_string(yyvsp[0]);
5714 itex2MML_free_string(yyvsp[0]);
5715 }
5716 #line 5717 "y.tab.c"
5717 break;
5718
5719 case 312: /* acellopt: colspan */
5720 #line 1747 "itex2MML.y"
5721 {
5722 yyval = itex2MML_copy_string(yyvsp[0]);
5723 itex2MML_free_string(yyvsp[0]);
5724 }
5725 #line 5726 "y.tab.c"
5726 break;
5727
5728 case 313: /* rowspan: ROWSPAN ATTRLIST */
5729 #line 1752 "itex2MML.y"
5730 {
5731 yyval = itex2MML_copy2("rowspan=", yyvsp[0]);
5732 itex2MML_free_string(yyvsp[0]);
5733 }
5734 #line 5735 "y.tab.c"
5735 break;
5736
5737 case 314: /* colspan: COLSPAN ATTRLIST */
5738 #line 1757 "itex2MML.y"
5739 {
5740 yyval = itex2MML_copy2("columnspan=", yyvsp[0]);
5741 itex2MML_free_string(yyvsp[0]);
5742 }
5743 #line 5744 "y.tab.c"
5744 break;
5745
5746
5747 #line 5748 "y.tab.c"
5748
5749 default: break;
5750 }
5751 /* User semantic actions sometimes alter yychar, and that requires
5752 that yytoken be updated with the new translation. We take the
5753 approach of translating immediately before every use of yytoken.
5754 One alternative is translating here after every semantic action,
5755 but that translation would be missed if the semantic action invokes
5756 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
5757 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
5758 incorrect destructor might then be invoked immediately. In the
5759 case of YYERROR or YYBACKUP, subsequent parser actions might lead
5760 to an incorrect destructor call or verbose syntax error message
5761 before the lookahead is translated. */
5762 YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
5763
5764 YYPOPSTACK (yylen);
5765 yylen = 0;
5766
5767 *++yyvsp = yyval;
5768
5769 /* Now 'shift' the result of the reduction. Determine what state
5770 that goes to, based on the state we popped back to and the rule
5771 number reduced by. */
5772 {
5773 const int yylhs = yyr1[yyn] - YYNTOKENS;
5774 const int yyi = yypgoto[yylhs] + *yyssp;
5775 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
5776 ? yytable[yyi]
5777 : yydefgoto[yylhs]);
5778 }
5779
5780 goto yynewstate;
5781
5782
5783 /*--------------------------------------.
5784 | yyerrlab -- here on detecting error. |
5785 `--------------------------------------*/
5786 yyerrlab:
5787 /* Make sure we have latest lookahead translation. See comments at
5788 user semantic actions for why this is necessary. */
5789 yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
5790 /* If not already recovering from an error, report this error. */
5791 if (!yyerrstatus)
5792 {
5793 ++yynerrs;
5794 yyerror (ret_str, YY_("syntax error"));
5795 }
5796
5797 if (yyerrstatus == 3)
5798 {
5799 /* If just tried and failed to reuse lookahead token after an
5800 error, discard it. */
5801
5802 if (yychar <= YYEOF)
5803 {
5804 /* Return failure if at end of input. */
5805 if (yychar == YYEOF)
5806 YYABORT;
5807 }
5808 else
5809 {
5810 yydestruct ("Error: discarding",
5811 yytoken, &yylval, ret_str);
5812 yychar = YYEMPTY;
5813 }
5814 }
5815
5816 /* Else will try to reuse lookahead token after shifting the error
5817 token. */
5818 goto yyerrlab1;
5819
5820
5821 /*---------------------------------------------------.
5822 | yyerrorlab -- error raised explicitly by YYERROR. |
5823 `---------------------------------------------------*/
5824 yyerrorlab:
5825 /* Pacify compilers when the user code never invokes YYERROR and the
5826 label yyerrorlab therefore never appears in user code. */
5827 if (0)
5828 YYERROR;
5829
5830 /* Do not reclaim the symbols of the rule whose action triggered
5831 this YYERROR. */
5832 YYPOPSTACK (yylen);
5833 yylen = 0;
5834 YY_STACK_PRINT (yyss, yyssp);
5835 yystate = *yyssp;
5836 goto yyerrlab1;
5837
5838
5839 /*-------------------------------------------------------------.
5840 | yyerrlab1 -- common code for both syntax error and YYERROR. |
5841 `-------------------------------------------------------------*/
5842 yyerrlab1:
5843 yyerrstatus = 3; /* Each real token shifted decrements this. */
5844
5845 /* Pop stack until we find a state that shifts the error token. */
5846 for (;;)
5847 {
5848 yyn = yypact[yystate];
5849 if (!yypact_value_is_default (yyn))
5850 {
5851 yyn += YYSYMBOL_YYerror;
5852 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
5853 {
5854 yyn = yytable[yyn];
5855 if (0 < yyn)
5856 break;
5857 }
5858 }
5859
5860 /* Pop the current state because it cannot handle the error token. */
5861 if (yyssp == yyss)
5862 YYABORT;
5863
5864
5865 yydestruct ("Error: popping",
5866 YY_ACCESSING_SYMBOL (yystate), yyvsp, ret_str);
5867 YYPOPSTACK (1);
5868 yystate = *yyssp;
5869 YY_STACK_PRINT (yyss, yyssp);
5870 }
5871
5872 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5873 *++yyvsp = yylval;
5874 YY_IGNORE_MAYBE_UNINITIALIZED_END
5875
5876
5877 /* Shift the error token. */
5878 YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
5879
5880 yystate = yyn;
5881 goto yynewstate;
5882
5883
5884 /*-------------------------------------.
5885 | yyacceptlab -- YYACCEPT comes here. |
5886 `-------------------------------------*/
5887 yyacceptlab:
5888 yyresult = 0;
5889 goto yyreturn;
5890
5891
5892 /*-----------------------------------.
5893 | yyabortlab -- YYABORT comes here. |
5894 `-----------------------------------*/
5895 yyabortlab:
5896 yyresult = 1;
5897 goto yyreturn;
5898
5899
5900 #if !defined yyoverflow
5901 /*-------------------------------------------------.
5902 | yyexhaustedlab -- memory exhaustion comes here. |
5903 `-------------------------------------------------*/
5904 yyexhaustedlab:
5905 yyerror (ret_str, YY_("memory exhausted"));
5906 yyresult = 2;
5907 goto yyreturn;
5908 #endif
5909
5910
5911 /*-------------------------------------------------------.
5912 | yyreturn -- parsing is finished, clean up and return. |
5913 `-------------------------------------------------------*/
5914 yyreturn:
5915 if (yychar != YYEMPTY)
5916 {
5917 /* Make sure we have latest lookahead translation. See comments at
5918 user semantic actions for why this is necessary. */
5919 yytoken = YYTRANSLATE (yychar);
5920 yydestruct ("Cleanup: discarding lookahead",
5921 yytoken, &yylval, ret_str);
5922 }
5923 /* Do not reclaim the symbols of the rule whose action triggered
5924 this YYABORT or YYACCEPT. */
5925 YYPOPSTACK (yylen);
5926 YY_STACK_PRINT (yyss, yyssp);
5927 while (yyssp != yyss)
5928 {
5929 yydestruct ("Cleanup: popping",
5930 YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, ret_str);
5931 YYPOPSTACK (1);
5932 }
5933 #ifndef yyoverflow
5934 if (yyss != yyssa)
5935 YYSTACK_FREE (yyss);
5936 #endif
5937
5938 return yyresult;
5939 }
5940
5941 #line 1762 "itex2MML.y"
5942
5943
itex2MML_parse(const char * buffer,unsigned long length)5944 char * itex2MML_parse (const char * buffer, unsigned long length)
5945 {
5946 char * mathml = 0;
5947
5948 int result;
5949
5950 itex2MML_setup (buffer, length);
5951 itex2MML_restart ();
5952
5953 result = itex2MML_yyparse (&mathml);
5954
5955 if (result && mathml) /* shouldn't happen? */
5956 {
5957 itex2MML_free_string (mathml);
5958 mathml = 0;
5959 }
5960 return mathml;
5961 }
5962
itex2MML_filter(const char * buffer,unsigned long length)5963 int itex2MML_filter (const char * buffer, unsigned long length)
5964 {
5965 itex2MML_setup (buffer, length);
5966 itex2MML_restart ();
5967
5968 return itex2MML_yyparse (0);
5969 }
5970
5971 #define ITEX_DELIMITER_DOLLAR 0
5972 #define ITEX_DELIMITER_DOUBLE 1
5973 #define ITEX_DELIMITER_SQUARE 2
5974
5975 static char * itex2MML_last_error = 0;
5976
itex2MML_keep_error(const char * msg)5977 static void itex2MML_keep_error (const char * msg)
5978 {
5979 if (itex2MML_last_error)
5980 {
5981 itex2MML_free_string (itex2MML_last_error);
5982 itex2MML_last_error = 0;
5983 }
5984 itex2MML_last_error = itex2MML_copy_escaped (msg);
5985 }
5986
itex2MML_html_filter(const char * buffer,unsigned long length)5987 int itex2MML_html_filter (const char * buffer, unsigned long length)
5988 {
5989 return itex2MML_do_html_filter (buffer, length, 0);
5990 }
5991
itex2MML_strict_html_filter(const char * buffer,unsigned long length)5992 int itex2MML_strict_html_filter (const char * buffer, unsigned long length)
5993 {
5994 return itex2MML_do_html_filter (buffer, length, 1);
5995 }
5996
itex2MML_do_html_filter(const char * buffer,unsigned long length,const int forbid_markup)5997 int itex2MML_do_html_filter (const char * buffer, unsigned long length, const int forbid_markup)
5998 {
5999 int result = 0;
6000
6001 int type = 0;
6002 int skip = 0;
6003 int match = 0;
6004
6005 const char * ptr1 = buffer;
6006 const char * ptr2 = 0;
6007
6008 const char * end = buffer + length;
6009
6010 char * mathml = 0;
6011
6012 void (*save_error_fn) (const char * msg) = itex2MML_error;
6013
6014 itex2MML_error = itex2MML_keep_error;
6015
6016 _until_math:
6017 ptr2 = ptr1;
6018
6019 while (ptr2 < end)
6020 {
6021 if (*ptr2 == '$') break;
6022 if ((*ptr2 == '\\') && (ptr2 + 1 < end))
6023 {
6024 if (*(ptr2+1) == '[') break;
6025 }
6026 ++ptr2;
6027 }
6028 if (itex2MML_write && ptr2 > ptr1)
6029 (*itex2MML_write) (ptr1, ptr2 - ptr1);
6030
6031 if (ptr2 == end) goto _finish;
6032
6033 _until_html:
6034 ptr1 = ptr2;
6035
6036 if (ptr2 + 1 < end)
6037 {
6038 if ((*ptr2 == '\\') && (*(ptr2+1) == '['))
6039 {
6040 type = ITEX_DELIMITER_SQUARE;
6041 ptr2 += 2;
6042 }
6043 else if ((*ptr2 == '$') && (*(ptr2+1) == '$'))
6044 {
6045 type = ITEX_DELIMITER_DOUBLE;
6046 ptr2 += 2;
6047 }
6048 else
6049 {
6050 type = ITEX_DELIMITER_DOLLAR;
6051 ptr2 += 2;
6052 }
6053 }
6054 else goto _finish;
6055
6056 skip = 0;
6057 match = 0;
6058
6059 while (ptr2 < end)
6060 {
6061 switch (*ptr2)
6062 {
6063 case '<':
6064 case '>':
6065 if (forbid_markup == 1) skip = 1;
6066 break;
6067
6068 case '\\':
6069 if (ptr2 + 1 < end)
6070 {
6071 if (*(ptr2 + 1) == '[')
6072 {
6073 skip = 1;
6074 }
6075 else if (*(ptr2 + 1) == ']')
6076 {
6077 if (type == ITEX_DELIMITER_SQUARE)
6078 {
6079 ptr2 += 2;
6080 match = 1;
6081 }
6082 else
6083 {
6084 skip = 1;
6085 }
6086 }
6087 }
6088 break;
6089
6090 case '$':
6091 if (type == ITEX_DELIMITER_SQUARE)
6092 {
6093 skip = 1;
6094 }
6095 else if (ptr2 + 1 < end)
6096 {
6097 if (*(ptr2 + 1) == '$')
6098 {
6099 if (type == ITEX_DELIMITER_DOLLAR)
6100 {
6101 ptr2++;
6102 match = 1;
6103 }
6104 else
6105 {
6106 ptr2 += 2;
6107 match = 1;
6108 }
6109 }
6110 else
6111 {
6112 if (type == ITEX_DELIMITER_DOLLAR)
6113 {
6114 ptr2++;
6115 match = 1;
6116 }
6117 else
6118 {
6119 skip = 1;
6120 }
6121 }
6122 }
6123 else
6124 {
6125 if (type == ITEX_DELIMITER_DOLLAR)
6126 {
6127 ptr2++;
6128 match = 1;
6129 }
6130 else
6131 {
6132 skip = 1;
6133 }
6134 }
6135 break;
6136
6137 default:
6138 break;
6139 }
6140 if (skip || match) break;
6141
6142 ++ptr2;
6143 }
6144 if (skip)
6145 {
6146 if (type == ITEX_DELIMITER_DOLLAR)
6147 {
6148 if (itex2MML_write)
6149 (*itex2MML_write) (ptr1, 1);
6150 ptr1++;
6151 }
6152 else
6153 {
6154 if (itex2MML_write)
6155 (*itex2MML_write) (ptr1, 2);
6156 ptr1 += 2;
6157 }
6158 goto _until_math;
6159 }
6160 if (match)
6161 {
6162 mathml = itex2MML_parse (ptr1, ptr2 - ptr1);
6163
6164 if (mathml)
6165 {
6166 if (itex2MML_write_mathml)
6167 (*itex2MML_write_mathml) (mathml);
6168 itex2MML_free_string (mathml);
6169 mathml = 0;
6170 }
6171 else
6172 {
6173 ++result;
6174 if (itex2MML_write)
6175 {
6176 if (type == ITEX_DELIMITER_DOLLAR)
6177 (*itex2MML_write) ("<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><merror><mtext>", 0);
6178 else
6179 (*itex2MML_write) ("<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'><merror><mtext>", 0);
6180
6181 (*itex2MML_write) (itex2MML_last_error, 0);
6182 (*itex2MML_write) ("</mtext></merror></math>", 0);
6183 }
6184 }
6185 ptr1 = ptr2;
6186
6187 goto _until_math;
6188 }
6189 if (itex2MML_write)
6190 (*itex2MML_write) (ptr1, ptr2 - ptr1);
6191
6192 _finish:
6193 if (itex2MML_last_error)
6194 {
6195 itex2MML_free_string (itex2MML_last_error);
6196 itex2MML_last_error = 0;
6197 }
6198 itex2MML_error = save_error_fn;
6199
6200 return result;
6201 }
6202