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