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 '<':  /* &lt;   */
270 	   case '>':  /* &gt;   */
271 	     length += 4;
272 	     break;
273 	   case '&':  /* &amp;  */
274 	     length += 5;
275 	     break;
276 	   case '\'': /* &apos; */
277 	   case '"':  /* &quot; */
278 	   case '-':  /* &#x2d; */
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, "&lt;");
301 		 ptr2 += 4;
302 		 break;
303 	       case '>':
304 		 strcpy (ptr2, "&gt;");
305 		 ptr2 += 4;
306 		 break;
307 	       case '&':  /* &amp;  */
308 		 strcpy (ptr2, "&amp;");
309 		 ptr2 += 5;
310 		 break;
311 	       case '\'': /* &apos; */
312 		 strcpy (ptr2, "&apos;");
313 		 ptr2 += 6;
314 		 break;
315 	       case '"':  /* &quot; */
316 		 strcpy (ptr2, "&quot;");
317 		 ptr2 += 6;
318 		 break;
319 	       case '-':  /* &#x2d; */
320 		 strcpy (ptr2, "&#x2d;");
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\">&minus;</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>&UnderBrace;</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>&#x00332;</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>&OverBrace;</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\">&#x000AF;</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>&#x000AF;</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\">&RightVector;</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>&RightVector;</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>&dot;</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>&Dot;</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>&tdot;</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>&DotDot;</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\">&tilde;</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>&tilde;</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\">&#x2c7;</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>&#x2c7;</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\">&#x5E;</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>&#x5E;</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>&VerticalBar;</mo><mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow><mo>&VerticalBar;</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>&DoubleVerticalBar;</mo><mrow><mtable rowspacing=\"0.5ex\">", yyvsp[-2], "</mtable></mrow><mo>&DoubleVerticalBar;</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