File Coverage

y.tab.c
Criterion Covered Total %
statement 80 376 21.2
branch 27 74 36.4
condition n/a
subroutine n/a
pod n/a
total 107 450 23.7


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