cprover
ansi_c_y.tab.cpp
Go to the documentation of this file.
1 /* A Bison parser, made by GNU Bison 3.0.4. */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5  Copyright (C) 1984, 1989-1990, 2000-2015 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 <http://www.gnu.org/licenses/>. */
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 /* Identify Bison output. */
44 #define YYBISON 1
45 
46 /* Bison version. */
47 #define YYBISON_VERSION "3.0.4"
48 
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers. */
53 #define YYPURE 0
54 
55 /* Push parsers. */
56 #define YYPUSH 0
57 
58 /* Pull parsers. */
59 #define YYPULL 1
60 
61 
62 /* Substitute the variable and function names. */
63 #define yyparse yyansi_cparse
64 #define yylex yyansi_clex
65 #define yyerror yyansi_cerror
66 #define yydebug yyansi_cdebug
67 #define yynerrs yyansi_cnerrs
68 
69 #define yylval yyansi_clval
70 #define yychar yyansi_cchar
71 
72 /* Copy the first part of user declarations. */
73 #line 1 "parser.y" /* yacc.c:339 */
74 
75 
76 /*
77  * This parser is based on:
78  *
79  * c5.y, a ANSI-C grammar written by James A. Roskind.
80  * "Portions Copyright (c) 1989, 1990 James A. Roskind".
81  * (http://www.idiom.com/free-compilers/,
82  * ftp://ftp.infoseek.com/ftp/pub/c++grammar/,
83  * ftp://ftp.sra.co.jp/.a/pub/cmd/c++grammar2.0.tar.gz)
84  */
85 
86 #ifdef ANSI_C_DEBUG
87 #define YYDEBUG 1
88 #endif
89 #define PARSER ansi_c_parser
90 
91 #include "ansi_c_parser.h"
92 
93 int yyansi_clex();
94 extern char *yyansi_ctext;
95 
96 #include "parser_static.inc"
97 
99 
100 #include "ansi_c_y.tab.h"
101 
102 // statements have right recursion, deep nesting of statements thus
103 // requires more stack space
104 #define YYMAXDEPTH 25600
105 
106 /*** token declaration **************************************************/
107 #line 257 "parser.y" /* yacc.c:339 */
108 
109 /************************************************************************/
110 /*** rules **************************************************************/
111 /************************************************************************/
112 
113 #line 114 "ansi_c_y.tab.cpp" /* yacc.c:339 */
114 
115 # ifndef YY_NULLPTR
116 # if defined __cplusplus && 201103L <= __cplusplus
117 # define YY_NULLPTR nullptr
118 # else
119 # define YY_NULLPTR 0
120 # endif
121 # endif
122 
123 /* Enabling verbose error messages. */
124 #ifdef YYERROR_VERBOSE
125 # undef YYERROR_VERBOSE
126 # define YYERROR_VERBOSE 1
127 #else
128 # define YYERROR_VERBOSE 0
129 #endif
130 
131 /* In a future release of Bison, this section will be replaced
132  by #include "ansi_c_y.tab.hpp". */
133 #ifndef YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED
134 # define YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED
135 /* Debug traces. */
136 #ifndef YYDEBUG
137 # define YYDEBUG 0
138 #endif
139 #if YYDEBUG
140 extern int yyansi_cdebug;
141 #endif
142 
143 /* Token type. */
144 #ifndef YYTOKENTYPE
145 # define YYTOKENTYPE
146  enum yytokentype
147  {
148  TOK_AUTO = 258,
149  TOK_BOOL = 259,
150  TOK_COMPLEX = 260,
151  TOK_BREAK = 261,
152  TOK_CASE = 262,
153  TOK_CHAR = 263,
154  TOK_CONST = 264,
155  TOK_CONTINUE = 265,
156  TOK_DEFAULT = 266,
157  TOK_DO = 267,
158  TOK_DOUBLE = 268,
159  TOK_ELSE = 269,
160  TOK_ENUM = 270,
161  TOK_EXTERN = 271,
162  TOK_FLOAT = 272,
163  TOK_FOR = 273,
164  TOK_GOTO = 274,
165  TOK_IF = 275,
166  TOK_INLINE = 276,
167  TOK_INT = 277,
168  TOK_LONG = 278,
169  TOK_REGISTER = 279,
170  TOK_RESTRICT = 280,
171  TOK_RETURN = 281,
172  TOK_SHORT = 282,
173  TOK_SIGNED = 283,
174  TOK_SIZEOF = 284,
175  TOK_STATIC = 285,
176  TOK_STRUCT = 286,
177  TOK_SWITCH = 287,
178  TOK_TYPEDEF = 288,
179  TOK_UNION = 289,
180  TOK_UNSIGNED = 290,
181  TOK_VOID = 291,
182  TOK_VOLATILE = 292,
183  TOK_WCHAR_T = 293,
184  TOK_WHILE = 294,
185  TOK_ARROW = 295,
186  TOK_INCR = 296,
187  TOK_DECR = 297,
188  TOK_SHIFTLEFT = 298,
189  TOK_SHIFTRIGHT = 299,
190  TOK_LE = 300,
191  TOK_GE = 301,
192  TOK_EQ = 302,
193  TOK_NE = 303,
194  TOK_ANDAND = 304,
195  TOK_OROR = 305,
196  TOK_ELLIPSIS = 306,
197  TOK_MULTASSIGN = 307,
198  TOK_DIVASSIGN = 308,
199  TOK_MODASSIGN = 309,
200  TOK_PLUSASSIGN = 310,
201  TOK_MINUSASSIGN = 311,
202  TOK_SHLASSIGN = 312,
203  TOK_SHRASSIGN = 313,
204  TOK_ANDASSIGN = 314,
205  TOK_XORASSIGN = 315,
206  TOK_ORASSIGN = 316,
207  TOK_IDENTIFIER = 317,
208  TOK_TYPEDEFNAME = 318,
209  TOK_INTEGER = 319,
210  TOK_FLOATING = 320,
211  TOK_CHARACTER = 321,
212  TOK_STRING = 322,
213  TOK_ASM_STRING = 323,
214  TOK_INT8 = 324,
215  TOK_INT16 = 325,
216  TOK_INT32 = 326,
217  TOK_INT64 = 327,
218  TOK_PTR32 = 328,
219  TOK_PTR64 = 329,
220  TOK_TYPEOF = 330,
221  TOK_GCC_AUTO_TYPE = 331,
222  TOK_GCC_FLOAT16 = 332,
223  TOK_GCC_FLOAT32 = 333,
224  TOK_GCC_FLOAT32X = 334,
225  TOK_GCC_FLOAT80 = 335,
226  TOK_GCC_FLOAT64 = 336,
227  TOK_GCC_FLOAT64X = 337,
228  TOK_GCC_FLOAT128 = 338,
229  TOK_GCC_FLOAT128X = 339,
230  TOK_GCC_INT128 = 340,
231  TOK_GCC_DECIMAL32 = 341,
232  TOK_GCC_DECIMAL64 = 342,
233  TOK_GCC_DECIMAL128 = 343,
234  TOK_GCC_ASM = 344,
235  TOK_GCC_ASM_PAREN = 345,
236  TOK_GCC_ATTRIBUTE = 346,
252  TOK_GCC_LABEL = 362,
253  TOK_MSC_ASM = 363,
254  TOK_MSC_BASED = 364,
255  TOK_CW_VAR_ARG_TYPEOF = 365,
256  TOK_BUILTIN_VA_ARG = 366,
259  TOK_OFFSETOF = 369,
260  TOK_ALIGNOF = 370,
261  TOK_MSC_TRY = 371,
262  TOK_MSC_FINALLY = 372,
263  TOK_MSC_EXCEPT = 373,
264  TOK_MSC_LEAVE = 374,
265  TOK_MSC_DECLSPEC = 375,
266  TOK_INTERFACE = 376,
267  TOK_CDECL = 377,
268  TOK_STDCALL = 378,
269  TOK_FASTCALL = 379,
270  TOK_CLRCALL = 380,
271  TOK_FORALL = 381,
272  TOK_EXISTS = 382,
273  TOK_ACSL_FORALL = 383,
274  TOK_ACSL_EXISTS = 384,
275  TOK_ARRAY_OF = 385,
276  TOK_CPROVER_BITVECTOR = 386,
277  TOK_CPROVER_FLOATBV = 387,
278  TOK_CPROVER_FIXEDBV = 388,
279  TOK_CPROVER_ATOMIC = 389,
280  TOK_CPROVER_BOOL = 390,
281  TOK_CPROVER_THROW = 391,
282  TOK_CPROVER_CATCH = 392,
283  TOK_CPROVER_TRY = 393,
284  TOK_CPROVER_FINALLY = 394,
285  TOK_CPROVER_ID = 395,
287  TOK_CPROVER_REQUIRES = 397,
288  TOK_CPROVER_ENSURES = 398,
289  TOK_IMPLIES = 399,
290  TOK_EQUIVALENT = 400,
291  TOK_TRUE = 401,
292  TOK_FALSE = 402,
293  TOK_REAL = 403,
294  TOK_IMAG = 404,
295  TOK_ALIGNAS = 405,
298  TOK_GENERIC = 408,
299  TOK_IMAGINARY = 409,
300  TOK_NORETURN = 410,
301  TOK_STATIC_ASSERT = 411,
302  TOK_THREAD_LOCAL = 412,
303  TOK_NULLPTR = 413,
304  TOK_CONSTEXPR = 414,
305  TOK_SCANNER_ERROR = 415,
306  TOK_SCANNER_EOF = 416,
307  TOK_CATCH = 417,
308  TOK_CHAR16_T = 418,
309  TOK_CHAR32_T = 419,
310  TOK_CLASS = 420,
311  TOK_DELETE = 421,
312  TOK_DECLTYPE = 422,
313  TOK_EXPLICIT = 423,
314  TOK_FRIEND = 424,
315  TOK_MUTABLE = 425,
316  TOK_NAMESPACE = 426,
317  TOK_NEW = 427,
318  TOK_NOEXCEPT = 428,
319  TOK_OPERATOR = 429,
320  TOK_PRIVATE = 430,
321  TOK_PROTECTED = 431,
322  TOK_PUBLIC = 432,
323  TOK_TEMPLATE = 433,
324  TOK_THIS = 434,
325  TOK_THROW = 435,
326  TOK_TYPEID = 436,
327  TOK_TYPENAME = 437,
328  TOK_TRY = 438,
329  TOK_USING = 439,
330  TOK_VIRTUAL = 440,
331  TOK_SCOPE = 441,
332  TOK_DOTPM = 442,
333  TOK_ARROWPM = 443,
336  TOK_MSC_UUIDOF = 446,
337  TOK_MSC_IF_EXISTS = 447,
338  TOK_MSC_IF_NOT_EXISTS = 448,
339  TOK_UNDERLYING_TYPE = 449
340  };
341 #endif
342 /* Tokens. */
343 #define TOK_AUTO 258
344 #define TOK_BOOL 259
345 #define TOK_COMPLEX 260
346 #define TOK_BREAK 261
347 #define TOK_CASE 262
348 #define TOK_CHAR 263
349 #define TOK_CONST 264
350 #define TOK_CONTINUE 265
351 #define TOK_DEFAULT 266
352 #define TOK_DO 267
353 #define TOK_DOUBLE 268
354 #define TOK_ELSE 269
355 #define TOK_ENUM 270
356 #define TOK_EXTERN 271
357 #define TOK_FLOAT 272
358 #define TOK_FOR 273
359 #define TOK_GOTO 274
360 #define TOK_IF 275
361 #define TOK_INLINE 276
362 #define TOK_INT 277
363 #define TOK_LONG 278
364 #define TOK_REGISTER 279
365 #define TOK_RESTRICT 280
366 #define TOK_RETURN 281
367 #define TOK_SHORT 282
368 #define TOK_SIGNED 283
369 #define TOK_SIZEOF 284
370 #define TOK_STATIC 285
371 #define TOK_STRUCT 286
372 #define TOK_SWITCH 287
373 #define TOK_TYPEDEF 288
374 #define TOK_UNION 289
375 #define TOK_UNSIGNED 290
376 #define TOK_VOID 291
377 #define TOK_VOLATILE 292
378 #define TOK_WCHAR_T 293
379 #define TOK_WHILE 294
380 #define TOK_ARROW 295
381 #define TOK_INCR 296
382 #define TOK_DECR 297
383 #define TOK_SHIFTLEFT 298
384 #define TOK_SHIFTRIGHT 299
385 #define TOK_LE 300
386 #define TOK_GE 301
387 #define TOK_EQ 302
388 #define TOK_NE 303
389 #define TOK_ANDAND 304
390 #define TOK_OROR 305
391 #define TOK_ELLIPSIS 306
392 #define TOK_MULTASSIGN 307
393 #define TOK_DIVASSIGN 308
394 #define TOK_MODASSIGN 309
395 #define TOK_PLUSASSIGN 310
396 #define TOK_MINUSASSIGN 311
397 #define TOK_SHLASSIGN 312
398 #define TOK_SHRASSIGN 313
399 #define TOK_ANDASSIGN 314
400 #define TOK_XORASSIGN 315
401 #define TOK_ORASSIGN 316
402 #define TOK_IDENTIFIER 317
403 #define TOK_TYPEDEFNAME 318
404 #define TOK_INTEGER 319
405 #define TOK_FLOATING 320
406 #define TOK_CHARACTER 321
407 #define TOK_STRING 322
408 #define TOK_ASM_STRING 323
409 #define TOK_INT8 324
410 #define TOK_INT16 325
411 #define TOK_INT32 326
412 #define TOK_INT64 327
413 #define TOK_PTR32 328
414 #define TOK_PTR64 329
415 #define TOK_TYPEOF 330
416 #define TOK_GCC_AUTO_TYPE 331
417 #define TOK_GCC_FLOAT16 332
418 #define TOK_GCC_FLOAT32 333
419 #define TOK_GCC_FLOAT32X 334
420 #define TOK_GCC_FLOAT80 335
421 #define TOK_GCC_FLOAT64 336
422 #define TOK_GCC_FLOAT64X 337
423 #define TOK_GCC_FLOAT128 338
424 #define TOK_GCC_FLOAT128X 339
425 #define TOK_GCC_INT128 340
426 #define TOK_GCC_DECIMAL32 341
427 #define TOK_GCC_DECIMAL64 342
428 #define TOK_GCC_DECIMAL128 343
429 #define TOK_GCC_ASM 344
430 #define TOK_GCC_ASM_PAREN 345
431 #define TOK_GCC_ATTRIBUTE 346
432 #define TOK_GCC_ATTRIBUTE_ALIGNED 347
433 #define TOK_GCC_ATTRIBUTE_TRANSPARENT_UNION 348
434 #define TOK_GCC_ATTRIBUTE_PACKED 349
435 #define TOK_GCC_ATTRIBUTE_VECTOR_SIZE 350
436 #define TOK_GCC_ATTRIBUTE_MODE 351
437 #define TOK_GCC_ATTRIBUTE_GNU_INLINE 352
438 #define TOK_GCC_ATTRIBUTE_WEAK 353
439 #define TOK_GCC_ATTRIBUTE_ALIAS 354
440 #define TOK_GCC_ATTRIBUTE_SECTION 355
441 #define TOK_GCC_ATTRIBUTE_NORETURN 356
442 #define TOK_GCC_ATTRIBUTE_CONSTRUCTOR 357
443 #define TOK_GCC_ATTRIBUTE_DESTRUCTOR 358
444 #define TOK_GCC_ATTRIBUTE_FALLTHROUGH 359
445 #define TOK_GCC_ATTRIBUTE_USED 360
446 #define TOK_GCC_ATTRIBUTE_ALWAYS_INLINE 361
447 #define TOK_GCC_LABEL 362
448 #define TOK_MSC_ASM 363
449 #define TOK_MSC_BASED 364
450 #define TOK_CW_VAR_ARG_TYPEOF 365
451 #define TOK_BUILTIN_VA_ARG 366
452 #define TOK_GCC_BUILTIN_TYPES_COMPATIBLE_P 367
453 #define TOK_CLANG_BUILTIN_CONVERTVECTOR 368
454 #define TOK_OFFSETOF 369
455 #define TOK_ALIGNOF 370
456 #define TOK_MSC_TRY 371
457 #define TOK_MSC_FINALLY 372
458 #define TOK_MSC_EXCEPT 373
459 #define TOK_MSC_LEAVE 374
460 #define TOK_MSC_DECLSPEC 375
461 #define TOK_INTERFACE 376
462 #define TOK_CDECL 377
463 #define TOK_STDCALL 378
464 #define TOK_FASTCALL 379
465 #define TOK_CLRCALL 380
466 #define TOK_FORALL 381
467 #define TOK_EXISTS 382
468 #define TOK_ACSL_FORALL 383
469 #define TOK_ACSL_EXISTS 384
470 #define TOK_ARRAY_OF 385
471 #define TOK_CPROVER_BITVECTOR 386
472 #define TOK_CPROVER_FLOATBV 387
473 #define TOK_CPROVER_FIXEDBV 388
474 #define TOK_CPROVER_ATOMIC 389
475 #define TOK_CPROVER_BOOL 390
476 #define TOK_CPROVER_THROW 391
477 #define TOK_CPROVER_CATCH 392
478 #define TOK_CPROVER_TRY 393
479 #define TOK_CPROVER_FINALLY 394
480 #define TOK_CPROVER_ID 395
481 #define TOK_CPROVER_LOOP_INVARIANT 396
482 #define TOK_CPROVER_REQUIRES 397
483 #define TOK_CPROVER_ENSURES 398
484 #define TOK_IMPLIES 399
485 #define TOK_EQUIVALENT 400
486 #define TOK_TRUE 401
487 #define TOK_FALSE 402
488 #define TOK_REAL 403
489 #define TOK_IMAG 404
490 #define TOK_ALIGNAS 405
491 #define TOK_ATOMIC_TYPE_QUALIFIER 406
492 #define TOK_ATOMIC_TYPE_SPECIFIER 407
493 #define TOK_GENERIC 408
494 #define TOK_IMAGINARY 409
495 #define TOK_NORETURN 410
496 #define TOK_STATIC_ASSERT 411
497 #define TOK_THREAD_LOCAL 412
498 #define TOK_NULLPTR 413
499 #define TOK_CONSTEXPR 414
500 #define TOK_SCANNER_ERROR 415
501 #define TOK_SCANNER_EOF 416
502 #define TOK_CATCH 417
503 #define TOK_CHAR16_T 418
504 #define TOK_CHAR32_T 419
505 #define TOK_CLASS 420
506 #define TOK_DELETE 421
507 #define TOK_DECLTYPE 422
508 #define TOK_EXPLICIT 423
509 #define TOK_FRIEND 424
510 #define TOK_MUTABLE 425
511 #define TOK_NAMESPACE 426
512 #define TOK_NEW 427
513 #define TOK_NOEXCEPT 428
514 #define TOK_OPERATOR 429
515 #define TOK_PRIVATE 430
516 #define TOK_PROTECTED 431
517 #define TOK_PUBLIC 432
518 #define TOK_TEMPLATE 433
519 #define TOK_THIS 434
520 #define TOK_THROW 435
521 #define TOK_TYPEID 436
522 #define TOK_TYPENAME 437
523 #define TOK_TRY 438
524 #define TOK_USING 439
525 #define TOK_VIRTUAL 440
526 #define TOK_SCOPE 441
527 #define TOK_DOTPM 442
528 #define TOK_ARROWPM 443
529 #define TOK_UNARY_TYPE_PREDICATE 444
530 #define TOK_BINARY_TYPE_PREDICATE 445
531 #define TOK_MSC_UUIDOF 446
532 #define TOK_MSC_IF_EXISTS 447
533 #define TOK_MSC_IF_NOT_EXISTS 448
534 #define TOK_UNDERLYING_TYPE 449
535 
536 /* Value type. */
537 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
538 typedef int YYSTYPE;
539 # define YYSTYPE_IS_TRIVIAL 1
540 # define YYSTYPE_IS_DECLARED 1
541 #endif
542 
543 
544 extern YYSTYPE yyansi_clval;
545 
546 int yyansi_cparse (void);
547 
548 #endif /* !YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED */
549 
550 /* Copy the second part of user declarations. */
551 
552 #line 553 "ansi_c_y.tab.cpp" /* yacc.c:358 */
553 
554 #ifdef short
555 # undef short
556 #endif
557 
558 #ifdef YYTYPE_UINT8
559 typedef YYTYPE_UINT8 yytype_uint8;
560 #else
561 typedef unsigned char yytype_uint8;
562 #endif
563 
564 #ifdef YYTYPE_INT8
565 typedef YYTYPE_INT8 yytype_int8;
566 #else
567 typedef signed char yytype_int8;
568 #endif
569 
570 #ifdef YYTYPE_UINT16
571 typedef YYTYPE_UINT16 yytype_uint16;
572 #else
573 typedef unsigned short int yytype_uint16;
574 #endif
575 
576 #ifdef YYTYPE_INT16
577 typedef YYTYPE_INT16 yytype_int16;
578 #else
579 typedef short int yytype_int16;
580 #endif
581 
582 #ifndef YYSIZE_T
583 # ifdef __SIZE_TYPE__
584 # define YYSIZE_T __SIZE_TYPE__
585 # elif defined size_t
586 # define YYSIZE_T size_t
587 # elif ! defined YYSIZE_T
588 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
589 # define YYSIZE_T size_t
590 # else
591 # define YYSIZE_T unsigned int
592 # endif
593 #endif
594 
595 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
596 
597 #ifndef YY_
598 # if defined YYENABLE_NLS && YYENABLE_NLS
599 # if ENABLE_NLS
600 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
601 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
602 # endif
603 # endif
604 # ifndef YY_
605 # define YY_(Msgid) Msgid
606 # endif
607 #endif
608 
609 #ifndef YY_ATTRIBUTE
610 # if (defined __GNUC__ \
611  && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
612  || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
613 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
614 # else
615 # define YY_ATTRIBUTE(Spec) /* empty */
616 # endif
617 #endif
618 
619 #ifndef YY_ATTRIBUTE_PURE
620 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
621 #endif
622 
623 #ifndef YY_ATTRIBUTE_UNUSED
624 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
625 #endif
626 
627 #if !defined _Noreturn \
628  && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
629 # if defined _MSC_VER && 1200 <= _MSC_VER
630 # define _Noreturn __declspec (noreturn)
631 # else
632 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
633 # endif
634 #endif
635 
636 /* Suppress unused-variable warnings by "using" E. */
637 #if ! defined lint || defined __GNUC__
638 # define YYUSE(E) ((void) (E))
639 #else
640 # define YYUSE(E) /* empty */
641 #endif
642 
643 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
644 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
645 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
646  _Pragma ("GCC diagnostic push") \
647  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
648  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
649 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
650  _Pragma ("GCC diagnostic pop")
651 #else
652 # define YY_INITIAL_VALUE(Value) Value
653 #endif
654 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
655 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
656 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
657 #endif
658 #ifndef YY_INITIAL_VALUE
659 # define YY_INITIAL_VALUE(Value) /* Nothing. */
660 #endif
661 
662 
663 #if ! defined yyoverflow || YYERROR_VERBOSE
664 
665 /* The parser invokes alloca or malloc; define the necessary symbols. */
666 
667 # ifdef YYSTACK_USE_ALLOCA
668 # if YYSTACK_USE_ALLOCA
669 # ifdef __GNUC__
670 # define YYSTACK_ALLOC __builtin_alloca
671 # elif defined __BUILTIN_VA_ARG_INCR
672 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
673 # elif defined _AIX
674 # define YYSTACK_ALLOC __alloca
675 # elif defined _MSC_VER
676 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
677 # define alloca _alloca
678 # else
679 # define YYSTACK_ALLOC alloca
680 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
681 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
682  /* Use EXIT_SUCCESS as a witness for stdlib.h. */
683 # ifndef EXIT_SUCCESS
684 # define EXIT_SUCCESS 0
685 # endif
686 # endif
687 # endif
688 # endif
689 # endif
690 
691 # ifdef YYSTACK_ALLOC
692  /* Pacify GCC's 'empty if-body' warning. */
693 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
694 # ifndef YYSTACK_ALLOC_MAXIMUM
695  /* The OS might guarantee only one guard page at the bottom of the stack,
696  and a page size can be as small as 4096 bytes. So we cannot safely
697  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
698  to allow for a few compiler-allocated temporary stack slots. */
699 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
700 # endif
701 # else
702 # define YYSTACK_ALLOC YYMALLOC
703 # define YYSTACK_FREE YYFREE
704 # ifndef YYSTACK_ALLOC_MAXIMUM
705 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
706 # endif
707 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
708  && ! ((defined YYMALLOC || defined malloc) \
709  && (defined YYFREE || defined free)))
710 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
711 # ifndef EXIT_SUCCESS
712 # define EXIT_SUCCESS 0
713 # endif
714 # endif
715 # ifndef YYMALLOC
716 # define YYMALLOC malloc
717 # if ! defined malloc && ! defined EXIT_SUCCESS
718 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
719 # endif
720 # endif
721 # ifndef YYFREE
722 # define YYFREE free
723 # if ! defined free && ! defined EXIT_SUCCESS
724 void free (void *); /* INFRINGES ON USER NAME SPACE */
725 # endif
726 # endif
727 # endif
728 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
729 
730 
731 #if (! defined yyoverflow \
732  && (! defined __cplusplus \
733  || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
734 
735 /* A type that is properly aligned for any stack member. */
736 union yyalloc
737 {
740 };
741 
742 /* The size of the maximum gap between one aligned stack and the next. */
743 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
744 
745 /* The size of an array large to enough to hold all stacks, each with
746  N elements. */
747 # define YYSTACK_BYTES(N) \
748  ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
749  + YYSTACK_GAP_MAXIMUM)
750 
751 # define YYCOPY_NEEDED 1
752 
753 /* Relocate STACK from its old location to the new one. The
754  local variables YYSIZE and YYSTACKSIZE give the old and new number of
755  elements in the stack, and YYPTR gives the new location of the
756  stack. Advance YYPTR to a properly aligned location for the next
757  stack. */
758 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
759  do \
760  { \
761  YYSIZE_T yynewbytes; \
762  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
763  Stack = &yyptr->Stack_alloc; \
764  yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
765  yyptr += yynewbytes / sizeof (*yyptr); \
766  } \
767  while (0)
768 
769 #endif
770 
771 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
772 /* Copy COUNT objects from SRC to DST. The source and destination do
773  not overlap. */
774 # ifndef YYCOPY
775 # if defined __GNUC__ && 1 < __GNUC__
776 # define YYCOPY(Dst, Src, Count) \
777  __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
778 # else
779 # define YYCOPY(Dst, Src, Count) \
780  do \
781  { \
782  YYSIZE_T yyi; \
783  for (yyi = 0; yyi < (Count); yyi++) \
784  (Dst)[yyi] = (Src)[yyi]; \
785  } \
786  while (0)
787 # endif
788 # endif
789 #endif /* !YYCOPY_NEEDED */
790 
791 /* YYFINAL -- State number of the termination state. */
792 #define YYFINAL 148
793 /* YYLAST -- Last index in YYTABLE. */
794 #define YYLAST 6391
795 
796 /* YYNTOKENS -- Number of terminals. */
797 #define YYNTOKENS 219
798 /* YYNNTS -- Number of nonterminals. */
799 #define YYNNTS 207
800 /* YYNRULES -- Number of rules. */
801 #define YYNRULES 612
802 /* YYNSTATES -- Number of states. */
803 #define YYNSTATES 1106
804 
805 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
806  by yylex, with out-of-bounds checking. */
807 #define YYUNDEFTOK 2
808 #define YYMAXUTOK 449
809 
810 #define YYTRANSLATE(YYX) \
811  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
812 
813 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
814  as returned by yylex, without out-of-bounds checking. */
815 static const yytype_uint8 yytranslate[] =
816 {
817  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
818  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
819  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
820  2, 2, 2, 209, 2, 2, 2, 211, 204, 2,
821  195, 196, 205, 206, 197, 207, 199, 210, 2, 2,
822  2, 2, 2, 2, 2, 2, 2, 2, 198, 218,
823  212, 217, 213, 216, 2, 2, 2, 2, 2, 2,
824  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
825  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
826  2, 200, 2, 201, 214, 2, 2, 2, 2, 2,
827  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
828  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
829  2, 2, 2, 202, 215, 203, 208, 2, 2, 2,
830  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
831  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
832  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
833  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
834  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
835  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
836  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
837  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
838  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
839  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
840  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
841  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
842  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
843  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
844  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
845  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
846  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
847  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
848  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
849  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
850  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
851  85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
852  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
853  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
854  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
855  125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
856  135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
857  145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
858  155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
859  165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
860  175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
861  185, 186, 187, 188, 189, 190, 191, 192, 193, 194
862 };
863 
864 #if YYDEBUG
865  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
866 static const yytype_uint16 yyrline[] =
867 {
868  0, 265, 265, 271, 272, 285, 289, 293, 297, 301,
869  306, 307, 308, 309, 315, 316, 317, 319, 320, 321,
870  322, 323, 324, 325, 329, 339, 343, 350, 357, 367,
871  374, 388, 398, 407, 417, 425, 432, 439, 453, 461,
872  471, 479, 493, 494, 500, 501, 507, 508, 512, 522,
873  523, 525, 534, 543, 549, 555, 561, 568, 578, 592,
874  593, 597, 602, 610, 611, 617, 623, 628, 638, 643,
875  648, 653, 658, 663, 668, 673, 679, 688, 689, 696,
876  701, 709, 710, 712, 714, 719, 720, 722, 727, 728,
877  730, 735, 736, 738, 740, 742, 747, 748, 750, 755,
878  756, 761, 762, 767, 768, 773, 774, 779, 780, 788,
879  789, 797, 798, 803, 804, 811, 821, 822, 824, 826,
880  828, 830, 832, 834, 836, 838, 840, 842, 847, 848,
881  853, 858, 859, 865, 871, 877, 878, 879, 883, 895,
882  894, 907, 906, 919, 918, 934, 941, 945, 949, 954,
883  957, 963, 961, 979, 977, 993, 1011, 1009, 1026, 1027,
884  1028, 1029, 1030, 1034, 1035, 1036, 1037, 1038, 1042, 1043,
885  1047, 1048, 1052, 1059, 1060, 1067, 1074, 1075, 1082, 1083,
886  1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1099,
887  1104, 1112, 1113, 1117, 1118, 1119, 1123, 1124, 1131, 1135,
888  1139, 1143, 1150, 1154, 1158, 1162, 1170, 1174, 1178, 1186,
889  1187, 1191, 1198, 1202, 1206, 1213, 1217, 1221, 1228, 1232,
890  1236, 1243, 1247, 1251, 1258, 1263, 1271, 1272, 1276, 1280,
891  1287, 1296, 1297, 1301, 1305, 1312, 1316, 1320, 1327, 1328,
892  1332, 1336, 1340, 1344, 1348, 1352, 1359, 1364, 1372, 1375,
893  1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1391,
894  1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
895  1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411,
896  1412, 1413, 1414, 1415, 1416, 1417, 1418, 1424, 1431, 1438,
897  1442, 1443, 1444, 1448, 1453, 1465, 1462, 1483, 1479, 1503,
898  1499, 1516, 1518, 1523, 1525, 1527, 1529, 1531, 1533, 1535,
899  1537, 1539, 1541, 1543, 1545, 1547, 1549, 1551, 1557, 1560,
900  1564, 1565, 1572, 1574, 1580, 1583, 1587, 1588, 1596, 1599,
901  1603, 1608, 1616, 1617, 1618, 1622, 1629, 1640, 1648, 1675,
902  1683, 1694, 1697, 1708, 1717, 1729, 1732, 1736, 1748, 1746,
903  1760, 1757, 1770, 1781, 1790, 1793, 1797, 1802, 1807, 1814,
904  1825, 1829, 1836, 1837, 1846, 1851, 1858, 1867, 1872, 1880,
905  1888, 1895, 1903, 1912, 1920, 1927, 1935, 1943, 1950, 1958,
906  1966, 1974, 1981, 1992, 1993, 1997, 2001, 2006, 2010, 2019,
907  2023, 2033, 2034, 2040, 2049, 2057, 2065, 2067, 2075, 2076,
908  2084, 2090, 2105, 2112, 2119, 2127, 2134, 2142, 2154, 2155,
909  2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165,
910  2166, 2170, 2179, 2191, 2199, 2206, 2215, 2226, 2234, 2241,
911  2249, 2261, 2268, 2273, 2280, 2295, 2304, 2313, 2324, 2325,
912  2329, 2341, 2354, 2353, 2385, 2402, 2409, 2411, 2413, 2415,
913  2420, 2442, 2447, 2454, 2458, 2464, 2475, 2481, 2490, 2499,
914  2507, 2515, 2520, 2528, 2538, 2540, 2541, 2542, 2543, 2555,
915  2561, 2568, 2576, 2585, 2597, 2601, 2605, 2609, 2615, 2625,
916  2630, 2638, 2642, 2646, 2652, 2662, 2667, 2675, 2679, 2683,
917  2691, 2696, 2704, 2708, 2712, 2717, 2725, 2733, 2735, 2739,
918  2740, 2744, 2749, 2753, 2754, 2758, 2762, 2769, 2796, 2801,
919  2804, 2808, 2813, 2821, 2826, 2827, 2831, 2838, 2842, 2846,
920  2850, 2858, 2862, 2866, 2874, 2879, 2889, 2890, 2891, 2895,
921  2901, 2907, 2915, 2923, 2930, 2937, 2944, 2954, 2955, 2956,
922  2960, 2967, 2977, 2985, 2986, 2990, 2991, 2996, 3000, 3001,
923  3006, 3014, 3016, 3026, 3027, 3032, 3038, 3043, 3051, 3053,
924  3058, 3068, 3069, 3074, 3075, 3079, 3080, 3085, 3092, 3107,
925  3113, 3115, 3125, 3132, 3137, 3138, 3139, 3143, 3144, 3148,
926  3150, 3161, 3160, 3183, 3184, 3192, 3191, 3217, 3224, 3234,
927  3242, 3249, 3258, 3267, 3280, 3288, 3298, 3303, 3315, 3326,
928  3334, 3344, 3349, 3361, 3372, 3374, 3376, 3378, 3384, 3393,
929  3395, 3397, 3398
930 };
931 #endif
932 
933 #if YYDEBUG || YYERROR_VERBOSE || 0
934 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
935  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
936 static const char *const yytname[] =
937 {
938  "$end", "error", "$undefined", "\"auto\"", "\"bool\"", "\"complex\"",
939  "\"break\"", "\"case\"", "\"char\"", "\"const\"", "\"continue\"",
940  "\"default\"", "\"do\"", "\"double\"", "\"else\"", "\"enum\"",
941  "\"extern\"", "\"float\"", "\"for\"", "\"goto\"", "\"if\"", "\"inline\"",
942  "\"int\"", "\"long\"", "\"register\"", "\"restrict\"", "\"return\"",
943  "\"short\"", "\"signed\"", "\"sizeof\"", "\"static\"", "\"struct\"",
944  "\"switch\"", "\"typedef\"", "\"union\"", "\"unsigned\"", "\"void\"",
945  "\"volatile\"", "\"wchar_t\"", "\"while\"", "\"->\"", "\"++\"", "\"--\"",
946  "\"<<\"", "\">>\"", "\"<=\"", "\">=\"", "\"==\"", "\"!=\"", "\"&&\"",
947  "\"||\"", "\"...\"", "\"*=\"", "\"/=\"", "\"%=\"", "\"+=\"", "\"-=\"",
948  "\"<<=\"", "\">>=\"", "\"&=\"", "\"^=\"", "\"|=\"", "TOK_IDENTIFIER",
949  "TOK_TYPEDEFNAME", "TOK_INTEGER", "TOK_FLOATING", "TOK_CHARACTER",
950  "TOK_STRING", "TOK_ASM_STRING", "\"__int8\"", "\"__int16\"",
951  "\"__int32\"", "\"__int64\"", "\"__ptr32\"", "\"__ptr64\"", "\"typeof\"",
952  "\"__auto_type\"", "\"_Float16\"", "\"_Float32\"", "\"_Float32x\"",
953  "\"__float80\"", "\"_Float64\"", "\"_Float64x\"", "\"_Float128\"",
954  "\"_Float128x\"", "\"__int128\"", "\"_Decimal32\"", "\"_Decimal64\"",
955  "\"_Decimal128\"", "\"__asm__\"", "\"__asm__ (with parentheses)\"",
956  "\"__attribute__\"", "\"aligned\"", "\"transparent_union\"",
957  "\"packed\"", "\"vector_size\"", "\"mode\"", "\"__gnu_inline__\"",
958  "\"weak\"", "\"alias\"", "\"section\"", "\"noreturn\"",
959  "\"constructor\"", "\"destructor\"", "\"fallthrough\"", "\"used\"",
960  "\"always_inline\"", "\"__label__\"", "\"__asm\"", "\"__based\"",
961  "\"_var_arg_typeof\"", "\"__builtin_va_arg\"",
962  "\"__builtin_types_compatible_p\"", "\"__builtin_convertvector\"",
963  "\"__offsetof\"", "\"__alignof__\"", "\"__try\"", "\"__finally\"",
964  "\"__except\"", "\"__leave\"", "\"__declspec\"", "\"__interface\"",
965  "\"__cdecl\"", "\"__stdcall\"", "\"__fastcall\"", "\"__clrcall\"",
966  "\"forall\"", "\"exists\"", "\"\\\\forall\"", "\"\\\\exists\"",
967  "\"array_of\"", "\"__CPROVER_bitvector\"", "\"__CPROVER_floatbv\"",
968  "\"__CPROVER_fixedbv\"", "\"__CPROVER_atomic\"", "\"__CPROVER_bool\"",
969  "\"__CPROVER_throw\"", "\"__CPROVER_catch\"", "\"__CPROVER_try\"",
970  "\"__CPROVER_finally\"", "\"__CPROVER_ID\"",
971  "\"__CPROVER_loop_invariant\"", "\"__CPROVER_requires\"",
972  "\"__CPROVER_ensures\"", "\"==>\"", "\"<==>\"", "\"TRUE\"", "\"FALSE\"",
973  "\"__real__\"", "\"__imag__\"", "\"_Alignas\"", "\"_Atomic\"",
974  "\"_Atomic()\"", "\"_Generic\"", "\"_Imaginary\"", "\"_Noreturn\"",
975  "\"_Static_assert\"", "\"_Thread_local\"", "\"nullptr\"",
976  "\"constexpr\"", "TOK_SCANNER_ERROR", "TOK_SCANNER_EOF", "\"catch\"",
977  "\"char16_t\"", "\"char32_t\"", "\"class\"", "\"delete\"",
978  "\"decltype\"", "\"explicit\"", "\"friend\"", "\"mutable\"",
979  "\"namespace\"", "\"new\"", "\"noexcept\"", "\"operator\"",
980  "\"private\"", "\"protected\"", "\"public\"", "\"template\"", "\"this\"",
981  "\"throw\"", "\"typeid\"", "\"typename\"", "\"try\"", "\"using\"",
982  "\"virtual\"", "\"::\"", "\".*\"", "\"->*\"", "TOK_UNARY_TYPE_PREDICATE",
983  "TOK_BINARY_TYPE_PREDICATE", "\"__uuidof\"", "\"__if_exists\"",
984  "\"__if_not_exists\"", "\"__underlying_type\"", "'('", "')'", "','",
985  "':'", "'.'", "'['", "']'", "'{'", "'}'", "'&'", "'*'", "'+'", "'-'",
986  "'~'", "'!'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "'='",
987  "';'", "$accept", "grammar", "identifier", "typedef_name", "integer",
988  "floating", "character", "string", "constant", "primary_expression",
989  "generic_selection", "generic_assoc_list", "generic_association",
990  "gcc_builtin_expressions", "clang_builtin_expressions",
991  "cw_builtin_expressions", "offsetof", "offsetof_member_designator",
992  "quantifier_expression", "loop_invariant_opt", "requires_opt",
993  "ensures_opt", "statement_expression", "postfix_expression",
994  "member_name", "argument_expression_list", "unary_expression",
995  "cast_expression", "multiplicative_expression", "additive_expression",
996  "shift_expression", "relational_expression", "equality_expression",
997  "and_expression", "exclusive_or_expression", "inclusive_or_expression",
998  "logical_and_expression", "logical_or_expression",
999  "logical_implication_expression", "logical_equivalence_expression",
1000  "conditional_expression", "assignment_expression", "comma_expression",
1001  "constant_expression", "comma_expression_opt", "declaration",
1002  "static_assert_declaration", "default_declaring_list", "@1", "@2", "$@3",
1003  "post_declarator_attribute", "post_declarator_attributes",
1004  "post_declarator_attributes_opt", "declaring_list", "@4", "@5", "$@6",
1005  "declaration_specifier", "type_specifier", "declaration_qualifier_list",
1006  "type_qualifier_list", "attribute_type_qualifier_list",
1007  "declaration_qualifier", "type_qualifier", "alignas_specifier",
1008  "attribute_or_type_qualifier",
1009  "attribute_or_type_qualifier_or_storage_class",
1010  "attribute_type_qualifier_storage_class_list",
1011  "basic_declaration_specifier", "basic_type_specifier",
1012  "sue_declaration_specifier", "sue_type_specifier",
1013  "typedef_declaration_specifier", "typeof_declaration_specifier",
1014  "atomic_declaration_specifier", "typedef_type_specifier",
1015  "typeof_specifier", "typeof_type_specifier", "atomic_specifier",
1016  "atomic_type_specifier", "msc_decl_identifier", "msc_decl_modifier",
1017  "msc_declspec_seq", "msc_declspec", "msc_declspec_opt", "storage_class",
1018  "basic_type_name", "elaborated_type_name", "array_of_construct",
1019  "pragma_packed", "aggregate_name", "$@7", "$@8", "$@9", "aggregate_key",
1020  "gcc_type_attribute", "gcc_attribute", "gcc_attribute_list",
1021  "gcc_attribute_specifier", "gcc_type_attribute_opt",
1022  "gcc_type_attribute_list", "member_declaration_list_opt",
1023  "member_declaration_list", "member_declaration",
1024  "member_default_declaring_list", "member_declaring_list",
1025  "member_declarator", "member_identifier_declarator",
1026  "bit_field_size_opt", "bit_field_size", "enum_name", "$@10", "$@11",
1027  "enum_key", "enumerator_list_opt", "enumerator_list",
1028  "enumerator_declaration", "enumerator_value_opt", "parameter_type_list",
1029  "KnR_parameter_list", "KnR_parameter", "parameter_list",
1030  "parameter_declaration", "identifier_or_typedef_name", "type_name",
1031  "initializer_opt", "initializer", "initializer_list",
1032  "initializer_list_opt", "designated_initializer", "designator",
1033  "statement", "declaration_statement", "labeled_statement",
1034  "statement_attribute", "compound_statement", "compound_scope",
1035  "statement_list", "expression_statement", "selection_statement",
1036  "declaration_or_expression_statement", "iteration_statement", "$@12",
1037  "jump_statement", "gcc_local_label_statement", "gcc_local_label_list",
1038  "gcc_local_label", "gcc_asm_statement", "msc_asm_statement",
1039  "msc_seh_statement", "cprover_exception_statement",
1040  "volatile_or_goto_opt", "gcc_asm_commands", "gcc_asm_assembler_template",
1041  "gcc_asm_outputs", "gcc_asm_output", "gcc_asm_output_list",
1042  "gcc_asm_inputs", "gcc_asm_input", "gcc_asm_input_list",
1043  "gcc_asm_clobbered_registers", "gcc_asm_clobbered_register",
1044  "gcc_asm_clobbered_registers_list", "gcc_asm_labels",
1045  "gcc_asm_labels_list", "gcc_asm_label", "translation_unit",
1046  "external_definition_list", "external_definition", "asm_definition",
1047  "function_definition", "function_body", "KnR_parameter_header_opt",
1048  "KnR_parameter_header", "KnR_parameter_declaration",
1049  "KnR_declaration_qualifier_list", "KnR_basic_declaration_specifier",
1050  "KnR_typedef_declaration_specifier", "KnR_sue_declaration_specifier",
1051  "KnR_declaration_specifier", "KnR_parameter_declaring_list",
1052  "function_head", "declarator", "paren_attribute_declarator",
1053  "typedef_declarator", "parameter_typedef_declarator",
1054  "clean_typedef_declarator", "clean_postfix_typedef_declarator",
1055  "paren_typedef_declarator", "paren_postfix_typedef_declarator",
1056  "simple_paren_typedef_declarator", "identifier_declarator",
1057  "unary_identifier_declarator", "postfix_identifier_declarator",
1058  "paren_identifier_declarator", "abstract_declarator",
1059  "parameter_abstract_declarator", "postfixing_abstract_declarator",
1060  "$@13", "parameter_postfixing_abstract_declarator", "$@14",
1061  "array_abstract_declarator", "unary_abstract_declarator",
1062  "parameter_unary_abstract_declarator", "postfix_abstract_declarator",
1063  "parameter_postfix_abstract_declarator", YY_NULLPTR
1064 };
1065 #endif
1066 
1067 # ifdef YYPRINT
1068 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1069  (internal) symbol number NUM (which must be that of a token). */
1070 static const yytype_uint16 yytoknum[] =
1071 {
1072  0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1073  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1074  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1075  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1076  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1077  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1078  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1079  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1080  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1081  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1082  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1083  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1084  375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1085  385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1086  395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1087  405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1088  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1089  425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1090  435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1091  445, 446, 447, 448, 449, 40, 41, 44, 58, 46,
1092  91, 93, 123, 125, 38, 42, 43, 45, 126, 33,
1093  47, 37, 60, 62, 94, 124, 63, 61, 59
1094 };
1095 # endif
1096 
1097 #define YYPACT_NINF -1012
1098 
1099 #define yypact_value_is_default(Yystate) \
1100  (!!((Yystate) == (-1012)))
1101 
1102 #define YYTABLE_NINF -582
1103 
1104 #define yytable_value_is_error(Yytable_value) \
1105  0
1106 
1107  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1108  STATE-NUM. */
1109 static const yytype_int16 yypact[] =
1110 {
1111  2070, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
1112  -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
1113  -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
1114  -1012, -1012, -141, 588, -1012, -1012, -1012, -1012, -1012, -1012,
1115  -1012, -1012, -1012, -1012, -1012, -1012, -1012, -89, 24, 43,
1116  65, -11, -86, -28, 79, -1012, -1012, 219, 109, -1012,
1117  141, -1012, 154, -1012, 171, 221, 3739, 171, -1012, 292,
1118  -1012, 49, -1012, 134, -153, 64, 67, 88, 2388, 2388,
1119  -1012, -1012, 5975, 5975, 3506, 3506, 3506, 3506, 3506, 3506,
1120  1276, 756, 1276, 756, -1012, -1012, 49, -1012, -1012, -1012,
1121  49, -1012, -1012, 49, -1012, 2070, -1012, -1012, -1012, 223,
1122  -1012, -1012, -1012, -8, 4452, 247, 1513, -8, 158, -1012,
1123  -1012, -1012, -1012, -1012, -1012, -1012, -1012, 304, 191, 5136,
1124  6, 49, 5136, 5136, 5136, -1012, 4452, 49, 5136, 205,
1125  124, 207, 3739, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
1126  -1012, 49, -1012, 171, -1012, 49, -1012, -1012, 610, -1012,
1127  926, 49, -1012, -1012, 49, 49, -1012, 49, -1012, -1012,
1128  103, 49, -1012, 1276, 1276, -1012, 49, -1012, -1012, 113,
1129  49, 49, -1012, 49, 49, -1012, -1012, -1012, 49, 49,
1130  49, 49, 49, 1023, 49, 1023, 49, -1012, 308, 97,
1131  -1012, 248, 323, 21, 3496, -1012, -1012, 280, 5268, 5369,
1132  5369, 97, -1012, -1012, -1012, -1012, 293, 309, 317, 341,
1133  344, 5375, -1012, -1012, -1012, -1012, 5136, 5136, 355, 4351,
1134  5136, 5136, 5136, 5136, 5136, 5136, -1012, -1012, -1012, -1012,
1135  -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
1136  40, -1012, 952, 136, 210, 119, 11, 417, 356, 294,
1137  347, 516, -10, -1012, -98, -1012, -1012, 296, 6155, 395,
1138  590, 1712, -1012, 272, 398, 402, -8, 247, 1802, -1012,
1139  -1012, -1012, -1012, 117, -1012, 158, 371, -1012, 405, 1343,
1140  301, -1012, -1012, -1012, -1012, -1012, 418, -1012, 12, 424,
1141  -54, -53, 29, 314, 419, 435, 442, -8, -1012, -1012,
1142  -1012, -1012, -1012, -1012, 588, -1012, -1012, -1012, -1012, -1012,
1143  -1012, 444, -1012, 1023, 1023, -1012, 444, -1012, -1012, -1012,
1144  -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, 97,
1145  -1012, -1012, 447, -45, 5136, 464, -1012, 5795, -7, 5704,
1146  -1012, 4483, -1012, 480, -1012, -1012, 3645, -1012, -1012, 5167,
1147  4351, -1012, 4351, -1012, -1012, -1012, -1012, 49, 5136, 49,
1148  5136, 49, 4351, -1012, 477, 481, 5522, 5522, -1012, -1012,
1149  5136, 346, 491, 495, 505, -1012, -1012, -1012, -1012, -1012,
1150  -1012, 97, -1012, -1012, 4584, 97, 5136, 5136, 5136, 5136,
1151  5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136,
1152  5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136,
1153  5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136, 4685, -1012,
1154  5136, 244, 2569, 6240, 1276, 1276, -1012, -1012, -1012, 137,
1155  590, 501, -8, -8, 520, 255, 590, -1012, -1012, 682,
1156  703, 534, -1012, 4786, 538, 543, -1012, -1012, 547, 563,
1157  -1012, -1012, 565, 573, -1012, -1012, -1012, -1012, -1012, -1012,
1158  -1012, 352, -1012, 808, -1012, -1012, -1012, -1012, 525, 575,
1159  -1012, -1012, -1012, 5136, -1012, 444, 158, 444, 444, 4786,
1160  -1012, -1012, 580, 582, 97, -1012, 585, -1012, 594, 5136,
1161  -1012, -1012, 588, 6065, 756, 5975, 3506, -1012, 5795, -1012,
1162  5886, 5975, 3506, -1012, 588, 70, -1012, 358, -1012, 126,
1163  126, 2233, 2233, 603, 604, -1012, -1012, -1012, -1012, 609,
1164  -1012, 4887, 613, 607, 620, 625, 639, 641, 643, 655,
1165  664, 5522, 5522, 1571, 67, 88, 2388, 2388, 1571, 665,
1166  -1012, 4918, -1012, 2724, -1012, -1012, -1012, -1012, 384, -1012,
1167  -1012, 160, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
1168  -1012, -1012, -1012, -1012, -1012, -1012, 136, 136, 210, 210,
1169  119, 119, 119, 119, 11, 11, 417, 356, 294, 347,
1170  516, -1012, -1012, 5136, 388, -1012, 361, 842, -1012, -1012,
1171  -1012, -1012, -1012, -1012, -1012, -8, -1012, -1012, -1012, -1012,
1172  295, -1012, -1012, 304, 4250, -1012, -1012, -1012, 5136, 5136,
1173  -7, 794, 797, 672, 1343, 677, 681, 661, 5136, 5136,
1174  687, -1012, -1012, -1012, -1012, -1012, 313, 683, 49, 684,
1175  689, -1012, 49, 97, -1012, 688, -1012, -1012, 49, 49,
1176  -1012, 49, -1012, 49, 97, 97, 49, 49, 49, -1012,
1177  588, -1012, 5795, -7, 729, 1159, 171, -1012, 49, -1012,
1178  -1012, -1012, -1012, -1012, 49, -1012, 880, 3671, 49, -1012,
1179  49, -1012, 5795, 5613, -1012, -1012, -1012, 699, 699, -1012,
1180  49, 49, 49, 97, 699, 5136, 5136, 5136, -1012, 158,
1181  158, -1012, -1012, -1012, 121, 4250, -1012, 671, 5136, 673,
1182  705, 3138, -1012, 5035, 711, 3846, 713, 714, 716, 117,
1183  719, 97, -26, -1012, -1012, 708, -1012, -1012, 723, 61,
1184  720, 712, -1012, 734, -1012, -1012, -1012, -1012, -1012, 2931,
1185  -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
1186  5136, -1012, -1012, 5136, 739, 741, 742, 842, -1012, -1012,
1187  -1012, -1012, 743, 747, 97, 5136, 748, 749, -1012, 752,
1188  737, -1012, 3947, 400, 422, 757, 758, 760, -1012, -1012,
1189  -1012, -1012, 63, 177, 199, -1012, 444, -1012, 744, 6155,
1190  762, 589, -1012, 72, 77, 313, -1012, 49, 97, 735,
1191  766, -1012, -1012, -1012, -1012, -1012, 49, 49, -1012, -1012,
1192  -1012, -1012, -1012, 5795, -1012, -1012, 763, 764, 1159, -1012,
1193  -1012, -1012, 3671, -1012, -1012, -1012, -1012, -1012, 774, 775,
1194  779, 51, -1012, 100, 147, 780, 426, -1012, 781, 784,
1195  787, -1012, -16, -1012, 3138, 938, 788, 769, 83, 5136,
1196  -1012, 90, 5136, 5136, -1012, -24, 789, 94, -1012, -1012,
1197  914, 524, -1012, -66, -1012, 3138, -1012, -1012, -1012, -1012,
1198  -1012, -8, -8, -1012, -1012, -17, 793, -1012, 35, 4786,
1199  4048, -1012, 97, 5136, 4786, -1012, -1012, -1012, -1012, -1012,
1200  -1012, 461, -1012, -1012, -1012, -1012, 939, 2479, 49, -1012,
1201  636, -1012, 939, -1012, 791, -1012, -1012, 5136, -1012, 49,
1202  -1012, -1012, 122, -1012, -1012, -1012, -1012, -1012, 97, -1012,
1203  97, 5136, -1012, -1012, 5136, -1012, 121, 5136, 4149, -1012,
1204  5136, 3138, -1012, 801, 3345, -1012, -1012, 471, -1012, 475,
1205  807, 304, 946, 1107, 97, -1012, 818, -1012, 827, -1012,
1206  -1012, 805, -1012, -1012, -1012, 97, 830, -1012, 829, -14,
1207  833, 5136, -1012, -1012, -1012, -1012, -1012, 56, -1012, -1012,
1208  63, 5136, -1012, 49, 835, -1012, 49, 835, -1012, -1012,
1209  -1012, 49, -1012, -1012, 831, -1012, -1012, -1012, 229, -1012,
1210  -1012, -1012, -1012, 837, -1012, 5136, -1012, -1012, 5136, 3138,
1211  3138, 887, 840, 836, 845, -1012, -1012, -1012, 5136, -1012,
1212  -1012, -1012, 848, 5136, -17, 97, 843, -1012, 846, 304,
1213  854, 237, 5136, -1012, 838, -1012, -1012, 49, -1012, -1012,
1214  49, -1012, -1012, -1012, 3138, 478, 839, 1039, -1012, 863,
1215  3138, 841, -1012, 865, 507, 304, 518, -1012, 861, 5136,
1216  -14, -1012, -1012, 866, 97, -1012, -1012, 274, 63, -1012,
1217  -1012, -1012, -1012, 887, 5136, 3138, 5136, -1012, -1012, 849,
1218  -1012, 871, -1012, 304, 536, -1012, 304, -1012, 876, -1012,
1219  -1012, 878, 859, 882, -1012, 886, 530, -1012, 5136, 888,
1220  -1012, -1012, 97, -1012, -1012, 887, -1012, -1012, 566, 5136,
1221  -1012, 3138, -1012, 574, -1012, -1012
1222 };
1223 
1224  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1225  Performed when YYTABLE does not specify something else to do. Zero
1226  means the default is an error. */
1227 static const yytype_uint16 yydefact[] =
1228 {
1229  497, 253, 284, 285, 264, 181, 280, 353, 251, 267,
1230  255, 259, 266, 254, 182, 265, 281, 252, 301, 250,
1231  302, 282, 283, 183, 3, 5, 260, 261, 262, 263,
1232  185, 186, 0, 0, 268, 269, 270, 273, 271, 272,
1233  274, 275, 276, 277, 278, 279, 257, 0, 0, 0,
1234  0, 0, 0, 0, 0, 184, 289, 0, 0, 180,
1235  0, 323, 0, 256, 0, 0, 0, 0, 504, 0,
1236  572, 324, 502, 0, 0, 0, 0, 0, 0, 0,
1237  173, 188, 158, 163, 159, 164, 160, 161, 162, 165,
1238  226, 166, 231, 167, 258, 168, 324, 209, 292, 290,
1239  324, 170, 291, 324, 2, 498, 499, 503, 501, 44,
1240  532, 563, 565, 564, 324, 0, 0, 545, 149, 539,
1241  538, 544, 547, 548, 543, 553, 537, 0, 0, 0,
1242  0, 324, 0, 0, 0, 4, 324, 324, 0, 0,
1243  0, 0, 0, 191, 176, 192, 566, 567, 1, 326,
1244  221, 325, 135, 0, 137, 324, 136, 133, 149, 134,
1245  149, 324, 172, 179, 324, 324, 178, 324, 206, 171,
1246  139, 324, 174, 227, 232, 169, 324, 210, 175, 141,
1247  324, 324, 204, 324, 324, 208, 211, 207, 324, 324,
1248  324, 324, 324, 229, 324, 234, 324, 202, 248, 348,
1249  500, 0, 46, 585, 0, 569, 579, 583, 0, 0,
1250  0, 0, 6, 7, 8, 9, 0, 0, 0, 0,
1251  0, 0, 431, 431, 431, 431, 0, 0, 0, 324,
1252  0, 0, 0, 0, 0, 0, 14, 10, 11, 12,
1253  13, 15, 49, 23, 18, 19, 20, 21, 22, 17,
1254  63, 77, 81, 85, 88, 91, 96, 99, 101, 103,
1255  105, 107, 109, 111, 113, 116, 128, 0, 0, 0,
1256  0, 0, 561, 0, 0, 0, 0, 0, 0, 542,
1257  549, 556, 546, 464, 148, 150, 0, 146, 0, 318,
1258  0, 237, 235, 236, 247, 243, 238, 244, 0, 0,
1259  0, 0, 0, 0, 0, 0, 0, 570, 573, 506,
1260  177, 568, 327, 143, 0, 151, 153, 213, 216, 219,
1261  198, 389, 222, 228, 233, 203, 389, 200, 201, 199,
1262  205, 214, 217, 220, 223, 212, 215, 218, 249, 295,
1263  383, 384, 0, 324, 0, 0, 431, 584, 0, 0,
1264  587, 0, 130, 0, 193, 196, 0, 195, 194, 0,
1265  324, 73, 324, 64, 65, 453, 67, 324, 0, 324,
1266  0, 324, 324, 75, 0, 0, 0, 0, 79, 80,
1267  0, 0, 0, 0, 0, 66, 68, 69, 70, 71,
1268  72, 0, 55, 56, 0, 0, 0, 0, 0, 0,
1269  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271  0, 0, 0, 0, 0, 0, 0, 0, 0, 224,
1272  0, 385, 387, 163, 164, 165, 166, 167, 225, 0,
1273  0, 0, 551, 558, 0, 0, 0, 550, 557, 466,
1274  465, 0, 147, 0, 0, 306, 304, 303, 0, 0,
1275  309, 310, 0, 0, 313, 314, 315, 316, 317, 319,
1276  320, 0, 187, 0, 246, 245, 293, 286, 0, 0,
1277  189, 190, 230, 0, 571, 389, 149, 389, 389, 0,
1278  140, 142, 0, 299, 354, 352, 0, 81, 0, 0,
1279  508, 507, 0, 0, 173, 163, 165, 514, 580, 511,
1280  0, 526, 527, 528, 0, 0, 366, 0, 364, 369,
1281  376, 373, 380, 0, 362, 367, 589, 590, 588, 0,
1282  197, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1283  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284  16, 0, 48, 131, 59, 60, 54, 51, 0, 61,
1285  53, 0, 118, 119, 120, 121, 122, 123, 124, 125,
1286  126, 127, 117, 82, 83, 84, 86, 87, 89, 90,
1287  94, 95, 92, 93, 97, 98, 100, 102, 104, 106,
1288  108, 110, 112, 0, 0, 129, 585, 594, 598, 386,
1289  576, 574, 575, 388, 562, 540, 552, 560, 559, 554,
1290  0, 467, 468, 0, 397, 391, 155, 505, 0, 0,
1291  0, 0, 0, 0, 318, 0, 0, 0, 0, 0,
1292  0, 144, 156, 152, 154, 390, 324, 0, 324, 0,
1293  355, 356, 324, 354, 45, 0, 530, 515, 324, 324,
1294  512, 324, 516, 324, 0, 0, 324, 324, 324, 529,
1295  0, 513, 509, 0, 585, 599, 603, 372, 324, 370,
1296  611, 577, 578, 379, 324, 377, 585, 599, 324, 374,
1297  324, 381, 509, 0, 591, 593, 592, 74, 0, 32,
1298  324, 324, 324, 0, 76, 0, 0, 431, 39, 149,
1299  149, 139, 141, 41, 324, 397, 78, 0, 0, 0,
1300  0, 131, 442, 0, 0, 0, 0, 0, 0, 464,
1301  0, 0, 0, 431, 460, 0, 431, 428, 14, 324,
1302  132, 0, 421, 0, 432, 410, 408, 420, 409, 131,
1303  411, 412, 413, 414, 416, 415, 417, 418, 419, 52,
1304  0, 50, 115, 0, 0, 0, 0, 595, 596, 541,
1305  555, 474, 0, 469, 0, 0, 14, 0, 398, 396,
1306  0, 394, 0, 0, 0, 0, 0, 0, 322, 321,
1307  240, 239, 0, 0, 0, 138, 389, 334, 0, 0,
1308  0, 324, 330, 0, 0, 324, 300, 324, 358, 360,
1309  0, 47, 518, 521, 522, 517, 324, 324, 519, 520,
1310  523, 531, 582, 510, 365, 584, 0, 0, 600, 601,
1311  371, 378, 600, 375, 382, 586, 363, 368, 0, 0,
1312  0, 0, 34, 0, 0, 0, 0, 25, 0, 396,
1313  0, 447, 0, 446, 131, 0, 0, 0, 0, 0,
1314  448, 0, 0, 131, 430, 0, 0, 0, 451, 457,
1315  0, 0, 461, 0, 434, 131, 429, 433, 62, 114,
1316  606, 604, 605, 597, 145, 476, 470, 402, 0, 0,
1317  0, 392, 0, 0, 0, 400, 307, 305, 308, 311,
1318  312, 0, 287, 288, 157, 335, 341, 0, 324, 331,
1319  0, 333, 341, 332, 0, 349, 357, 0, 359, 324,
1320  524, 525, 609, 610, 602, 29, 30, 31, 0, 33,
1321  0, 0, 38, 40, 0, 24, 324, 0, 0, 57,
1322  0, 131, 426, 0, 131, 445, 444, 0, 449, 0,
1323  0, 0, 0, 318, 0, 450, 0, 431, 0, 431,
1324  431, 170, 423, 608, 607, 0, 0, 479, 475, 482,
1325  471, 0, 403, 401, 393, 395, 407, 0, 399, 241,
1326  0, 0, 338, 324, 345, 336, 324, 345, 294, 337,
1327  339, 324, 361, 351, 585, 612, 37, 35, 0, 28,
1328  26, 27, 58, 0, 424, 0, 438, 439, 131, 131,
1329  131, 42, 0, 0, 0, 452, 456, 459, 0, 462,
1330  463, 422, 0, 0, 0, 0, 0, 485, 481, 488,
1331  472, 0, 0, 405, 0, 347, 342, 324, 346, 344,
1332  324, 296, 294, 36, 131, 0, 0, 435, 437, 0,
1333  131, 0, 455, 0, 0, 0, 0, 480, 0, 0,
1334  0, 489, 490, 487, 493, 473, 404, 0, 0, 340,
1335  343, 298, 425, 42, 131, 131, 0, 440, 454, 0,
1336  431, 0, 477, 0, 0, 486, 0, 496, 492, 494,
1337  406, 0, 0, 0, 436, 0, 0, 458, 0, 0,
1338  483, 491, 0, 242, 441, 42, 43, 427, 0, 0,
1339  495, 131, 478, 0, 443, 484
1340 };
1341 
1342  /* YYPGOTO[NTERM-NUM]. */
1343 static const yytype_int16 yypgoto[] =
1344 {
1345  -1012, -1012, 0, 30, -1012, -1012, -1012, -78, -1012, -285,
1346  -1012, -1012, 161, -1012, -1012, -1012, -1012, -1012, -1012, -1011,
1347  -1012, -1012, -1012, -1012, -350, -1012, 172, 916, 367, 392,
1348  212, 389, 669, 678, 668, 680, 693, -1012, 432, -1012,
1349  -329, 1101, 470, -190, -821, 22, -585, -1012, -1012, -1012,
1350  -1012, 820, -1012, -75, -1012, -1012, -1012, -1012, 19, 26,
1351  23, 7, -39, 16, 1530, -1012, -140, 765, -1012, -1012,
1352  -173, -1012, -157, -1012, -1012, -1012, -103, -68, -95, -62,
1353  -93, -453, 795, -1012, 921, -1012, 1024, -74, -40, -1012,
1354  91, -1012, -1012, -1012, -1012, 614, -1012, 496, -1012, 695,
1355  1090, -81, 330, -1012, 335, -1012, -1012, 227, 230, 156,
1356  -632, -1012, -1012, -1012, 626, 492, -1012, 340, -1012, -1012,
1357  -1012, 476, -1012, 458, -198, -44, -290, -289, 440, 449,
1358  -832, -1012, -77, 218, 69, -1012, -223, 602, -1012, 222,
1359  -1012, -1012, -1012, -1012, -1012, -1012, -1012, -208, -1012, -1012,
1360  -1012, -1012, 439, 231, -1012, -1012, 145, -1012, -1012, 110,
1361  -1012, -1012, 86, -1012, -1012, -1012, 71, -1012, -1012, 1059,
1362  -1012, -1012, -1012, 488, 824, -483, -1012, -1012, -1012, -1012,
1363  -1012, -1012, -1012, -15, 1060, -1012, -87, -57, -1012, -56,
1364  -1012, -91, 89, -52, -1012, -43, -404, -400, -23, -1012,
1365  228, -1012, -1012, 579, -563, 581, -518
1366 };
1367 
1368  /* YYDEFGOTO[NTERM-NUM]. */
1369 static const yytype_int16 yydefgoto[] =
1370 {
1371  -1, 69, 236, 117, 237, 238, 239, 240, 241, 242,
1372  243, 836, 837, 244, 245, 246, 247, 831, 248, 1040,
1373  202, 346, 249, 250, 767, 558, 251, 252, 253, 254,
1374  255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1375  265, 266, 730, 615, 731, 732, 73, 74, 321, 326,
1376  485, 284, 285, 315, 75, 487, 488, 786, 544, 545,
1377  546, 547, 278, 162, 80, 81, 144, 355, 356, 82,
1378  83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1379  93, 296, 297, 298, 94, 339, 95, 96, 97, 98,
1380  1031, 99, 492, 637, 638, 100, 469, 470, 471, 149,
1381  268, 151, 790, 791, 792, 793, 794, 972, 975, 1027,
1382  973, 102, 342, 496, 103, 639, 640, 641, 908, 523,
1383  517, 518, 524, 525, 733, 838, 490, 768, 769, 770,
1384  771, 772, 734, 735, 736, 737, 738, 384, 739, 740,
1385  741, 998, 742, 846, 743, 744, 857, 1077, 745, 746,
1386  747, 748, 451, 762, 763, 876, 957, 958, 960, 1017,
1387  1018, 1020, 1052, 1053, 1055, 1078, 1079, 104, 105, 106,
1388  107, 108, 501, 812, 813, 509, 510, 511, 512, 513,
1389  514, 515, 109, 974, 119, 120, 121, 122, 123, 124,
1390  125, 445, 126, 111, 112, 113, 599, 819, 444, 348,
1391  206, 349, 207, 601, 671, 602, 672
1392 };
1393 
1394  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1395  positive, shift that token. If negative, reduce the rule whose
1396  number is the opposite. If YYTABLE_NINF, syntax error. */
1397 static const yytype_int16 yytable[] =
1398 {
1399  70, 343, 310, 366, 167, 176, 383, 79, 181, 184,
1400  164, 173, 139, 365, 353, 498, 165, 174, 118, 76,
1401  627, 140, 72, 78, 276, 650, 77, 142, 603, 280,
1402  71, 291, 940, 70, 273, 930, 491, 291, 168, 177,
1403  425, 556, 859, 286, 153, 560, 48, 427, 965, 288,
1404  215, 788, 1082, 215, 114, 24, 415, 416, 274, 275,
1405  281, 158, 160, 139, 70, 154, 70, 70, 292, 293,
1406  269, 949, 140, 950, 292, 293, 70, 70, 70, 70,
1407  391, 392, 393, -581, 1101, 316, 961, 299, 291, 110,
1408  205, 918, 304, 305, 282, 433, 965, 193, 180, 195,
1409  185, 816, 188, 189, 190, 70, 127, 1022, 161, 171,
1410  61, 434, 79, 816, 132, 70, 70, 205, 428, 669,
1411  675, 679, 681, 500, 76, 292, 293, 72, 78, 24,
1412  25, 77, 835, 57, 426, 71, 449, 383, 310, 383,
1413  48, 493, 70, 430, 430, 272, 817, 477, 478, 383,
1414  24, 25, 48, 70, 450, 146, 147, -350, 817, 24,
1415  25, -581, 413, 414, 616, 435, 529, 170, 179, 532,
1416  645, 941, 133, 436, 505, 437, 860, 1036, 942, 439,
1417  323, 324, 931, 955, 280, 382, 1015, 203, 24, 25,
1418  434, 447, 204, 758, 110, 631, 273, 633, 634, 340,
1419  635, 131, 294, 295, 61, 146, 788, 57, 474, 295,
1420  788, 340, 48, 274, 275, 281, 61, 347, 139, 128,
1421  274, 275, 448, 417, 418, 139, 430, 140, 57, 341,
1422  479, 311, 430, 24, 140, 394, 962, 57, 129, 395,
1423  396, 341, 313, 1083, 506, -535, -535, 919, 283, 48,
1424  920, 921, 436, 430, 437, -536, -536, 1023, 698, -384,
1425  130, 155, 115, 703, 752, 976, 57, 660, 976, 900,
1426  70, 70, 116, 70, 902, 432, 61, 70, 70, 134,
1427  430, 67, 156, 115, 484, 157, 135, 430, 661, 141,
1428  901, 944, 148, 116, 431, 903, 642, 430, 71, 486,
1429  272, 936, 67, 922, 136, -535, 159, 272, 938, 24,
1430  25, 57, 945, 61, 70, -536, 533, 984, 534, 203,
1431  308, 664, 204, 535, 204, 537, 204, 539, 540, 891,
1432  650, 665, 203, 604, 24, 505, 137, 204, 48, 340,
1433  666, 408, 1028, 832, 430, 1028, 409, 410, 516, 138,
1434  923, 434, 152, 873, 503, 610, 522, 430, 176, 184,
1435  146, 751, 441, 48, 173, 201, 64, 311, 519, 341,
1436  174, 215, 521, 502, 430, 520, 66, 71, 892, 71,
1437  361, 363, 364, 274, 275, 67, 289, 57, 139, 274,
1438  275, 554, 177, 373, 139, 554, 430, 140, 543, 548,
1439  893, 307, 61, 140, 48, 506, 71, 71, 600, 600,
1440  309, 632, 57, 436, 877, 437, 411, 412, 914, 606,
1441  607, 555, 914, -581, 869, 555, 430, 61, 50, 176,
1442  1033, 184, 667, 673, 430, 173, 653, 657, 1056, 596,
1443  70, 174, 270, 344, 204, 642, 70, 167, 176, 597,
1444  203, 609, 271, 164, 173, 204, 806, 807, 598, 165,
1445  174, 67, 171, 177, 419, 420, 345, 64, 61, 62,
1446  272, 430, 167, 176, 383, 1080, 272, 66, 164, 173,
1447  359, 168, 177, 885, 165, 174, 67, 646, 367, 505,
1448  203, 760, 429, 430, 340, 204, 894, 472, 430, 659,
1449  861, -581, 70, 863, 368, 434, 168, 177, 422, 505,
1450  480, 430, 369, 858, 70, 503, -328, 1024, 842, 70,
1451  70, 70, 70, 365, 341, 434, 652, 656, 658, 699,
1452  700, 787, 966, 171, 502, 761, 370, 708, 71, 371,
1453  651, 710, 550, 430, 70, 70, 70, 70, 623, 624,
1454  380, 161, 171, 728, 662, 663, 596, 347, 757, 506,
1455  421, 204, 423, 695, 696, 424, 597, 436, 986, 437,
1456  987, 71, 71, 754, 600, 598, 161, 171, 280, 506,
1457  749, 750, 759, 729, 267, 430, 753, 436, 453, 437,
1458  963, 438, 24, 25, 442, 968, 886, 430, 443, 290,
1459  642, 454, 300, 301, 302, 1081, 303, 274, 668, 674,
1460  678, 680, 139, 473, 766, 481, 433, 310, 887, 430,
1461  775, 140, 925, 926, 139, 316, 818, 580, 581, 582,
1462  583, 482, 434, 140, 845, 701, 702, 476, 822, 483,
1463  505, 947, 948, 340, 555, 811, 828, 829, 830, 494,
1464  24, 25, 24, 25, 340, 340, 434, 969, 970, 499,
1465  70, 489, 867, 516, 70, 70, 70, 999, 430, 503,
1466  57, 1000, 430, 341, 1063, 430, 70, 70, 310, 541,
1467  48, 527, 310, 542, 341, 341, 435, 551, 502, 503,
1468  522, 552, 71, 554, 436, 101, 437, 605, 24, 381,
1469  283, 48, 519, 1070, 430, 766, 521, 553, 502, 520,
1470  506, 728, 71, 71, 1072, 430, 608, 982, 436, 611,
1471  437, 340, 612, 555, 1007, 628, 1009, 1010, 57, 613,
1472  57, 447, 1090, 430, 600, 555, 1005, 1085, 618, 728,
1473  993, 729, 619, 847, 61, 62, 365, 670, 670, 670,
1474  670, 341, -533, -533, 146, 147, 617, 1012, 620, 1,
1475  621, 145, 1102, 430, 554, 61, 146, 932, 622, 729,
1476  1105, 430, 8, 169, 178, 629, 57, 10, 576, 577,
1477  13, 1025, 636, 115, -297, 270, 17, 643, 952, 19,
1478  644, 24, -329, 116, 555, 271, 897, 956, 340, 682,
1479  101, 683, 67, 687, 67, 578, 579, 787, 584, 585,
1480  684, 145, -533, 287, 686, 896, 688, 1048, 70, 71,
1481  503, 689, 70, 176, 374, 375, 376, 377, 341, 173,
1482  381, 64, 381, 291, 971, 174, 690, 145, 691, 502,
1483  692, 66, 381, 71, 728, 46, 312, 1087, 953, 954,
1484  67, 5, 693, 287, 994, 287, 365, 177, 591, 592,
1485  694, 776, 704, 761, 777, 728, 561, 14, 778, 57,
1486  292, 293, 625, 780, 729, 626, 50, 781, 782, 23,
1487  766, 1016, 554, 785, 801, 795, 798, 797, 178, 841,
1488  178, 843, 670, 670, 365, 729, 70, 70, 594, 358,
1489  70, 705, 70, 844, 670, 670, 849, 311, 852, 853,
1490  555, 311, 555, 63, 856, 30, 31, 430, 554, 854,
1491  554, -383, 1037, 1038, 664, 815, 862, 171, 766, 204,
1492  864, 728, 865, 48, 665, 870, 956, 871, 872, 874,
1493  881, 1051, 24, 666, 340, 875, -59, 879, 555, 880,
1494  555, 49, 907, 888, 889, 340, 890, 1062, 555, 912,
1495  913, 729, 895, 1067, 71, 898, 145, 1071, 312, 909,
1496  915, 916, 1016, 145, 341, 917, 55, 933, 924, 927,
1497  287, 928, 946, 934, 943, 341, 977, 935, 1084, 977,
1498  929, 959, 58, 59, 981, 1089, 995, 61, 1051, 728,
1499  728, 24, 25, 1001, 397, 398, 399, 400, 401, 402,
1500  403, 404, 405, 406, 1003, 340, 283, 48, 178, 178,
1501  57, 1006, 1008, 1011, 1104, 1013, 1014, 815, 1039, 729,
1502  729, 1019, 5, 971, 728, 1034, 1041, 596, 1049, 1042,
1503  728, 1043, 204, 1050, 101, 341, 670, 597, 14, 1045,
1504  670, 358, 1054, 1065, 340, 1058, 598, 1064, 1066, 1068,
1505  23, 1069, 1073, 1076, 729, 728, 1088, 1086, -534, -534,
1506  729, 101, 101, 1092, 1093, 676, 815, 1094, 1095, 57,
1507  204, 61, 1096, 1099, 341, 677, 340, 990, 773, 774,
1508  586, 588, 340, 475, 666, 729, 30, 31, 783, 784,
1509  587, 728, 166, 175, 589, 452, 166, 183, 166, 187,
1510  166, 166, 166, 192, 48, 194, 341, 196, 590, 338,
1511  779, 530, 341, 1061, 654, 904, 899, 178, -534, 980,
1512  979, 729, 49, 1030, 115, 800, 655, 971, 906, 814,
1513  985, 827, 378, 379, 116, 839, 385, 386, 387, 388,
1514  389, 390, 996, 67, 840, 1097, 997, 55, 855, 1047,
1515  1075, 150, 1091, 1100, 200, 833, 834, 381, 5, 407,
1516  825, 508, 1002, 58, 59, 755, 279, 756, 61, 0,
1517  0, 287, 0, 848, 14, 851, 197, 0, 0, 0,
1518  198, 0, 0, 199, 0, 0, 23, 0, 178, 455,
1519  456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
1520  466, 1004, 467, 468, 0, 0, 169, 178, 0, 0,
1521  0, 24, 25, 0, 0, 0, 0, 0, 357, 0,
1522  0, 0, 30, 31, 0, 878, 101, 101, 0, 306,
1523  0, 169, 178, 0, 0, 314, 0, 0, 101, 0,
1524  48, 317, 0, 0, 318, 319, 0, 320, 0, 0,
1525  497, 322, 0, 0, 0, 0, 325, 386, 49, 0,
1526  327, 328, 0, 329, 330, 0, 0, 0, 331, 332,
1527  333, 334, 335, 0, 336, 5, 337, 0, 0, 0,
1528  0, 0, 145, 55, 0, 0, 0, 0, 0, 57,
1529  0, 14, 0, 0, 0, 352, 0, 0, 0, 58,
1530  59, 0, 0, 23, 61, 0, 0, 0, 0, 937,
1531  0, 0, 939, 0, 573, 574, 575, 497, 497, 497,
1532  497, 497, 497, 497, 497, 497, 497, 497, 497, 497,
1533  497, 497, 497, 497, 0, 0, 0, 0, 0, 30,
1534  31, 0, 0, 967, 664, 0, 0, 0, 0, 204,
1535  145, 0, 0, 0, 665, 0, 0, 0, 0, 0,
1536  0, 507, 145, 666, 0, 0, 0, 0, 101, 0,
1537  357, 0, 0, 0, 0, 49, 0, 0, 0, 0,
1538  0, 988, 0, 0, 287, 287, 0, 0, 0, 0,
1539  0, 0, 0, 0, 0, 0, 101, 0, 0, 0,
1540  55, 0, 0, 0, 0, 497, 0, 0, 0, 0,
1541  0, 0, 0, 0, 0, 0, 58, 59, 0, 0,
1542  0, 1021, 0, 495, 101, 455, 456, 457, 458, 459,
1543  460, 461, 462, 463, 464, 465, 466, 386, 467, 468,
1544  0, 0, 145, 0, 0, 0, 0, 352, 0, 0,
1545  352, 0, 0, 0, 0, 1035, 0, 706, 0, 536,
1546  0, 538, 0, 0, 0, 0, 0, 0, 1044, 0,
1547  0, 549, 0, 1046, 0, 0, 0, 0, 0, 0,
1548  0, 0, 1057, 0, 0, 559, 0, 0, 562, 563,
1549  564, 565, 566, 567, 568, 569, 570, 571, 572, 497,
1550  0, 0, 0, 145, 0, 0, 0, 145, 0, 1074,
1551  0, 0, 5, 0, 0, 0, 0, 0, 647, 648,
1552  649, 595, 507, 0, 166, 166, 166, 0, 14, 101,
1553  0, 0, 0, 0, 0, 166, 175, 0, 0, 0,
1554  23, 0, 0, 0, 352, 0, 0, 0, 1098, 0,
1555  951, 0, 0, 0, 0, 0, 0, 0, 0, 1103,
1556  166, 175, 0, 0, 0, 24, 25, 0, 0, 0,
1557  0, 0, 0, 0, 630, 0, 30, 31, 0, 0,
1558  352, 0, 178, 0, 0, 0, 143, 0, 0, 0,
1559  0, 0, 0, 0, 48, 0, 0, 0, 163, 172,
1560  0, 0, 163, 182, 163, 186, 163, 163, 163, 191,
1561  0, 0, 49, 0, 0, 0, 101, 0, 0, 101,
1562  0, 0, 0, 24, 0, 212, 213, 214, 215, 0,
1563  0, 0, 0, 0, 0, 0, 143, 55, 0, 0,
1564  0, 0, 0, 57, 0, 0, 0, 0, 0, 0,
1565  0, 0, 0, 58, 59, 0, 0, 0, 61, 497,
1566  0, 0, 143, 0, 0, 0, 0, 0, 0, 0,
1567  0, 216, 217, 218, 219, 220, 507, 0, 0, 0,
1568  0, 0, 0, 0, 101, 101, 0, 222, 223, 224,
1569  225, 0, 0, 0, 0, 0, 507, 0, 277, 0,
1570  0, 57, 0, 0, 0, 352, 0, 0, 116, 0,
1571  0, 5, 0, 172, 228, 172, 789, 67, 796, 101,
1572  0, 0, 799, 0, 354, 101, 0, 14, 802, 803,
1573  0, 804, 0, 805, 0, 0, 808, 809, 810, 23,
1574  0, 0, 0, 0, 0, 0, 0, 0, 820, 0,
1575  101, 0, 0, 0, 821, 0, 697, 0, 823, 0,
1576  824, 0, 0, 0, 24, 25, 0, 0, 0, 0,
1577  0, 0, 0, 0, 0, 30, 31, 0, 0, 0,
1578  0, 0, 0, 0, 0, 0, 101, 0, 0, 0,
1579  0, 143, 0, 48, 0, 0, 352, 0, 143, 352,
1580  0, 5, 0, 0, 0, 0, 0, 0, 0, 150,
1581  0, 49, 0, 0, 0, 0, 0, 14, 0, 0,
1582  0, 0, 0, 0, 0, 0, 0, 507, 0, 23,
1583  0, 0, 0, 0, 0, 0, 55, 0, 0, 0,
1584  0, 868, 57, 172, 172, 0, 0, 0, 0, 0,
1585  0, 0, 58, 59, 24, 25, 0, 61, 0, 0,
1586  0, 0, 0, 352, 0, 30, 31, 504, 0, 0,
1587  0, 789, 0, 0, 0, 789, 354, 905, 0, 0,
1588  0, 0, 0, 48, 0, 0, 910, 911, 0, 0,
1589  0, 0, 0, 0, 0, 0, 0, 440, 0, 0,
1590  0, 49, 0, 0, 0, 0, 0, 271, 0, 0,
1591  0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
1592  0, 0, 0, 0, 0, 0, 55, 0, 0, 0,
1593  0, 0, 57, 0, 0, 0, 0, 0, 0, 0,
1594  0, 0, 58, 59, 0, 0, 0, 61, 0, 0,
1595  0, 0, 172, 182, 186, 191, 0, 0, 0, 0,
1596  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597  352, 352, 497, 0, 0, 352, 0, 0, 978, 0,
1598  0, 0, 0, 0, 0, 0, 0, 446, 0, 983,
1599  0, 0, 0, 0, 0, 0, 0, 271, 352, 0,
1600  0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
1601  0, 0, 0, 0, 0, 989, 0, 0, 991, 352,
1602  0, 352, 0, 172, 0, 182, 191, 0, 504, 0,
1603  163, 163, 163, 0, 0, 0, 0, 0, 0, 0,
1604  0, 163, 172, 0, 0, 0, 0, 0, 0, 0,
1605  0, 0, 0, 1026, 0, 0, 1029, 0, 0, 0,
1606  0, 1032, 352, 1, 2, 3, 163, 172, 4, 5,
1607  0, 0, 0, 6, 0, 7, 8, 9, 0, 0,
1608  0, 10, 11, 12, 13, 14, 0, 15, 16, 0,
1609  17, 18, 0, 19, 20, 21, 22, 23, 0, 0,
1610  0, 0, 0, 0, 0, 0, 0, 1059, 0, 0,
1611  1060, 0, 0, 0, 0, 0, 0, 143, 0, 0,
1612  0, 0, 24, 25, 0, 0, 0, 0, 0, 26,
1613  27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1614  37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1615  47, 48, 0, 0, 0, 0, 0, 0, 0, 0,
1616  0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
1617  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618  50, 0, 504, 0, 0, 143, 0, 0, 0, 0,
1619  51, 52, 53, 54, 55, 56, 0, 143, 0, 0,
1620  57, 0, 504, 0, 0, 0, 0, 0, 0, 0,
1621  58, 59, 60, 0, 0, 61, 62, 63, 0, 0,
1622  0, 0, 0, 0, 0, 0, 1, 2, 3, 0,
1623  0, 4, 5, 0, 0, 0, 6, 0, 7, 8,
1624  9, 0, 0, 0, 10, 11, 12, 13, 14, 0,
1625  15, 16, 0, 17, 18, 64, 19, 20, 21, 22,
1626  23, 0, 65, 0, 0, 66, 0, 0, 0, 0,
1627  0, 0, 0, 0, 67, 0, 0, 143, 68, 0,
1628  0, 0, 0, 0, 0, 24, 25, 0, 0, 0,
1629  0, 0, 26, 27, 28, 29, 30, 31, 32, 0,
1630  34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1631  44, 45, 46, 0, 48, 0, 0, 0, 0, 0,
1632  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633  0, 0, 49, 504, 0, 0, 0, 0, 143, 0,
1634  0, 0, 143, 50, 0, 0, 0, 0, 0, 0,
1635  0, 0, 0, 51, 52, 53, 54, 55, 56, 0,
1636  0, 0, 0, 57, 0, 0, 0, 0, 0, 0,
1637  0, 0, 0, 58, 59, 60, 0, 0, 61, 0,
1638  63, 1, 2, 3, 0, 0, 4, 5, 0, 0,
1639  0, 6, 0, 7, 8, 9, 0, 0, 0, 10,
1640  11, 12, 13, 14, 0, 15, 16, 0, 17, 18,
1641  0, 19, 20, 21, 22, 23, 0, 172, 676, 0,
1642  0, 0, 0, 204, 0, 0, 0, 0, 677, 0,
1643  0, 0, 0, 0, 0, 0, 0, 666, 0, 0,
1644  24, 25, 0, 0, 0, 0, 0, 26, 27, 28,
1645  29, 30, 31, 32, 0, 34, 35, 36, 37, 38,
1646  39, 40, 41, 42, 43, 44, 45, 46, 0, 48,
1647  0, 0, 0, 2, 3, 0, 0, 4, 5, 0,
1648  0, 0, 6, 0, 7, 0, 9, 49, 0, 0,
1649  0, 11, 12, 0, 14, 0, 15, 16, 50, 0,
1650  18, 0, 0, 20, 21, 22, 23, 0, 51, 52,
1651  53, 54, 55, 56, 0, 0, 0, 0, 57, 0,
1652  0, 0, 0, 0, 0, 0, 0, 0, 58, 59,
1653  60, 24, 25, 61, 0, 63, 0, 0, 26, 27,
1654  28, 29, 30, 31, 32, 0, 34, 35, 36, 37,
1655  38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
1656  48, 0, 0, 2, 3, 0, 0, 4, 5, 0,
1657  0, 0, 6, 64, 7, 0, 9, 0, 49, 0,
1658  0, 11, 12, 66, 14, 0, 15, 16, 0, 0,
1659  18, 0, 67, 20, 21, 22, 23, 0, 0, 51,
1660  52, 53, 54, 55, 56, 0, 0, 0, 0, 57,
1661  0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
1662  59, 60, 25, 0, 61, 0, 0, 0, 26, 27,
1663  28, 29, 30, 31, 32, 0, 34, 35, 36, 37,
1664  38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
1665  48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666  0, 0, 0, 0, 64, 0, 0, 971, 49, 0,
1667  0, 0, 0, 0, 66, 0, 0, 0, 0, 0,
1668  0, 0, 0, 67, 0, 0, 0, 0, 0, 51,
1669  52, 53, 54, 55, 56, 0, 0, 0, 0, 0,
1670  0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
1671  59, 60, 0, 0, 61, 0, 0, 1, 2, 3,
1672  707, 708, 4, 5, 709, 710, 711, 6, 0, 7,
1673  8, 9, 712, 713, 714, 10, 11, 12, 13, 14,
1674  715, 15, 16, 208, 17, 18, 716, 19, 20, 21,
1675  22, 23, 0, 717, 596, 209, 210, 0, 0, 204,
1676  0, 0, 0, 211, 597, 0, 0, 0, 0, 0,
1677  0, 0, 0, 598, 0, 0, 24, 25, 212, 213,
1678  214, 215, 718, 26, 27, 28, 29, 30, 31, 32,
1679  33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1680  43, 44, 45, 46, 719, 720, 0, 0, 0, 0,
1681  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682  0, 721, 722, 49, 216, 217, 218, 219, 220, 221,
1683  723, 0, 0, 724, 50, 0, 0, 0, 0, 0,
1684  222, 223, 224, 225, 51, 52, 53, 54, 55, 56,
1685  725, 0, 726, 0, 57, 0, 0, 0, 0, 0,
1686  0, 0, 226, 227, 58, 59, 60, 228, 0, 61,
1687  62, 63, 0, 0, 0, 0, 0, 0, 0, 0,
1688  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690  0, 0, 0, 0, 0, 0, 0, 0, 0, 229,
1691  0, 0, 0, 0, 0, 0, -431, 727, 230, 231,
1692  232, 233, 234, 235, 1, 2, 3, 707, 708, 4,
1693  5, 709, 710, 711, 6, 0, 7, 8, 9, 712,
1694  713, 714, 10, 11, 12, 13, 14, 715, 15, 16,
1695  208, 17, 18, 716, 19, 20, 21, 22, 23, 0,
1696  717, 0, 209, 210, 0, 0, 0, 0, 0, 0,
1697  211, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698  0, 0, 0, 24, 25, 212, 213, 214, 215, 0,
1699  26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
1700  36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1701  46, 719, 720, 0, 0, 0, 0, 0, 0, 0,
1702  0, 0, 0, 0, 0, 0, 0, 0, 721, 722,
1703  49, 216, 217, 218, 219, 220, 221, 723, 0, 0,
1704  724, 50, 0, 0, 0, 0, 0, 222, 223, 224,
1705  225, 51, 52, 53, 54, 55, 56, 725, 0, 726,
1706  0, 57, 0, 0, 0, 0, 0, 0, 0, 226,
1707  227, 58, 59, 60, 228, 0, 61, 62, 63, 0,
1708  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711  0, 0, 0, 0, 0, 0, 229, 0, 0, 0,
1712  0, 0, 0, -431, 866, 230, 231, 232, 233, 234,
1713  235, 1, 2, 3, 707, 708, 4, 5, 709, 710,
1714  711, 6, 0, 7, 8, 9, 712, 713, 714, 10,
1715  11, 12, 13, 14, 715, 15, 16, 208, 17, 18,
1716  716, 19, 20, 21, 22, 23, 0, 717, 0, 209,
1717  210, 0, 0, 0, 0, 0, 0, 211, 0, 0,
1718  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719  24, 25, 212, 213, 214, 215, 0, 26, 27, 28,
1720  29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1721  39, 40, 41, 42, 43, 44, 45, 46, 719, 720,
1722  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723  0, 0, 0, 0, 0, 721, 722, 49, 216, 217,
1724  218, 219, 220, 221, 723, 0, 0, 724, 50, 0,
1725  0, 0, 0, 0, 222, 223, 224, 225, 51, 52,
1726  53, 54, 55, 56, 725, 0, 726, 0, 57, 0,
1727  0, 0, 0, 0, 0, 0, 226, 227, 58, 59,
1728  60, 228, 0, 61, 62, 63, 0, 0, 0, 0,
1729  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732  0, 0, 0, 229, 0, 0, 0, 0, 0, 0,
1733  -431, 0, 230, 231, 232, 233, 234, 235, 1, 2,
1734  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
1735  7, 8, 9, 0, 0, 0, 10, 11, 12, 13,
1736  14, 0, 15, 16, 208, 17, 18, 0, 19, 20,
1737  21, 22, 23, 0, 0, 0, 209, 210, 0, 0,
1738  0, 0, 0, 0, 211, 0, 0, 0, 0, 0,
1739  0, 0, 0, 0, 0, 0, 0, 24, 25, 212,
1740  213, 214, 215, 0, 26, 27, 28, 29, 30, 31,
1741  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1742  42, 43, 44, 45, 46, 0, 48, 0, 0, 0,
1743  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744  0, 0, 0, 0, 49, 216, 217, 218, 219, 220,
1745  221, 0, 0, 0, 0, 50, 0, 0, 0, 0,
1746  0, 222, 223, 224, 225, 51, 52, 53, 54, 55,
1747  56, 0, 0, 0, 0, 57, 0, 0, 0, 0,
1748  0, 0, 0, 226, 227, 58, 59, 60, 228, 1,
1749  61, 62, 63, 0, 0, 5, 0, 0, 0, 1,
1750  0, 0, 8, 0, 0, 5, 0, 10, 0, 0,
1751  13, 14, 8, 0, 0, 208, 17, 10, 0, 19,
1752  13, 14, 0, 23, 0, 0, 17, 209, 210, 19,
1753  229, 0, 0, 23, 0, 211, 0, 0, 0, 230,
1754  231, 232, 233, 234, 235, 0, 0, 0, 24, 0,
1755  212, 213, 214, 215, 0, 0, 0, 0, 0, 30,
1756  31, 0, 0, 0, 0, 0, 0, 0, 0, 30,
1757  31, 0, 0, 0, 0, 46, 0, 48, 0, 0,
1758  0, 0, 0, 0, 0, 46, 0, 0, 0, 0,
1759  0, 0, 0, 0, 0, 49, 216, 217, 218, 219,
1760  220, 221, 0, 0, 0, 49, 50, 0, 0, 0,
1761  0, 0, 222, 223, 224, 225, 50, 0, 0, 0,
1762  55, 0, 0, 0, 0, 0, 57, 0, 0, 0,
1763  55, 0, 0, 0, 226, 227, 58, 59, 1, 228,
1764  0, 61, 0, 63, 5, 0, 58, 59, 0, 0,
1765  0, 8, 0, 63, 0, 0, 10, 0, 0, 13,
1766  14, 0, 0, 0, 208, 17, 0, 0, 19, 0,
1767  5, 0, 23, 0, 0, 0, 209, 210, 0, 0,
1768  0, 229, 0, 0, 211, 0, 14, 350, 0, 0,
1769  230, 351, 232, 233, 234, 235, 0, 24, 23, 212,
1770  213, 214, 215, 0, 0, 0, 0, 0, 30, 31,
1771  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772  0, 0, 0, 24, 46, 0, 48, 0, 0, 0,
1773  0, 0, 0, 0, 30, 31, 0, 0, 5, 0,
1774  0, 0, 0, 0, 49, 216, 217, 218, 219, 220,
1775  221, 0, 48, 0, 14, 50, 0, 0, 0, 0,
1776  0, 222, 223, 224, 225, 0, 23, 0, 0, 55,
1777  49, 0, 0, 0, 0, 57, 0, 0, 0, 0,
1778  0, 0, 0, 226, 227, 58, 59, 0, 228, 0,
1779  61, 24, 63, 0, 0, 55, 0, 0, 0, 0,
1780  0, 57, 30, 31, 0, 0, 0, 0, 0, 0,
1781  0, 58, 59, 0, 0, 0, 61, 0, 0, 0,
1782  48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783  229, 0, 0, 0, 0, 0, 528, 0, 49, 230,
1784  231, 232, 233, 234, 235, 0, 0, 0, 0, 0,
1785  0, 0, 0, 0, 0, 0, 676, 0, 0, 0,
1786  0, 204, 0, 55, 0, 208, 677, 0, 0, 57,
1787  0, 0, 0, 0, 0, 666, 0, 209, 210, 58,
1788  59, 0, 0, 0, 61, 211, 0, 0, 0, 0,
1789  0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
1790  212, 213, 214, 215, 0, 0, 0, 0, 0, 0,
1791  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792  0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
1793  0, 0, 0, 0, 66, 0, 0, 0, 0, 0,
1794  0, 0, 0, 67, 0, 0, 216, 217, 218, 219,
1795  220, 221, 0, 0, 0, 0, 0, 0, 0, 0,
1796  0, 0, 222, 223, 224, 225, 208, 0, 0, 0,
1797  0, 0, 0, 0, 0, 0, 57, 0, 209, 210,
1798  0, 0, 0, 0, 226, 227, 211, 0, 0, 228,
1799  0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1800  0, 212, 213, 214, 215, 0, 0, 0, 0, 0,
1801  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803  0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
1804  230, 231, 232, 233, 234, 235, 0, 216, 217, 218,
1805  219, 220, 221, 0, 850, 0, 0, 0, 0, 0,
1806  0, 0, 0, 222, 223, 224, 225, 208, 0, 0,
1807  0, 0, 0, 0, 0, 0, 0, 57, 0, 209,
1808  210, 0, 0, 0, 0, 226, 227, 211, 0, 0,
1809  228, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810  24, 25, 212, 213, 214, 215, 0, 0, 0, 0,
1811  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813  0, 0, 229, 0, 0, 0, 882, 883, 0, 614,
1814  0, 230, 231, 232, 233, 234, 235, 0, 216, 217,
1815  218, 219, 220, 221, 884, 0, 0, 0, 0, 0,
1816  0, 0, 0, 0, 222, 223, 224, 225, 208, 0,
1817  0, 0, 0, 0, 0, 0, 0, 0, 57, 0,
1818  209, 210, 0, 0, 0, 0, 226, 227, 211, 0,
1819  0, 228, 0, 0, 0, 0, 0, 0, 0, 0,
1820  0, 24, 25, 212, 213, 214, 215, 0, 0, 0,
1821  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1822  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1823  0, 0, 0, 229, 0, 0, 0, 764, 765, 0,
1824  614, 964, 230, 231, 232, 233, 234, 235, 0, 216,
1825  217, 218, 219, 220, 221, 0, 0, 0, 0, 0,
1826  0, 0, 0, 0, 0, 222, 223, 224, 225, 208,
1827  0, 0, 0, 0, 0, 0, 0, 0, 0, 57,
1828  0, 209, 210, 0, 0, 0, 0, 226, 227, 211,
1829  0, 0, 228, 0, 0, 0, 0, 0, 0, 0,
1830  0, 0, 24, 25, 212, 213, 214, 215, 0, 0,
1831  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833  0, 0, 0, 0, 229, 0, 0, 0, 764, 765,
1834  0, 614, 992, 230, 231, 232, 233, 234, 235, 0,
1835  216, 217, 218, 219, 220, 221, 0, 0, 0, 0,
1836  0, 0, 0, 0, 0, 0, 222, 223, 224, 225,
1837  208, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838  57, 0, 209, 210, 0, 0, 0, 0, 226, 227,
1839  211, 0, 0, 228, 0, 0, 0, 0, 0, 0,
1840  0, 0, 0, 24, 0, 212, 213, 214, 215, 0,
1841  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843  0, 0, 48, 0, 0, 229, 0, 0, 0, 764,
1844  765, 0, 614, 0, 230, 231, 232, 233, 234, 235,
1845  0, 216, 217, 218, 219, 220, 221, 0, 0, 0,
1846  0, 0, 0, 0, 0, 0, 0, 222, 223, 224,
1847  225, 208, 0, 0, 0, 0, 0, 0, 0, 0,
1848  0, 57, 0, 209, 210, 0, 0, 0, 0, 226,
1849  227, 211, 0, 0, 228, 0, 61, 0, 0, 0,
1850  0, 0, 208, 0, 24, 0, 212, 213, 214, 215,
1851  0, 0, 0, 0, 209, 210, 0, 0, 0, 0,
1852  0, 0, 211, 0, 0, 0, 0, 0, 0, 0,
1853  0, 0, 0, 48, 0, 24, 229, 212, 213, 214,
1854  215, 0, 0, -431, 0, 230, 231, 232, 233, 234,
1855  235, 0, 216, 217, 218, 219, 220, 221, 0, 0,
1856  0, 0, 0, 0, 0, 0, 0, 0, 222, 223,
1857  224, 225, 0, 0, 0, 0, 0, 0, 0, 0,
1858  0, 0, 57, 216, 217, 218, 219, 220, 221, 0,
1859  226, 227, 0, 0, 0, 228, 0, 61, 0, 222,
1860  223, 224, 225, 208, 0, 0, 0, 0, 0, 0,
1861  0, 0, 0, 57, 0, 209, 210, 0, 0, 0,
1862  0, 226, 227, 211, 0, 0, 228, 0, 0, 0,
1863  0, 0, 0, 0, 0, 0, 24, 229, 212, 213,
1864  214, 215, 0, 0, 0, 0, 230, 231, 232, 233,
1865  234, 235, 0, 0, 0, 0, 0, 0, 0, 0,
1866  0, 0, 0, 0, 0, 0, 0, 0, 229, 0,
1867  0, 0, 0, 0, 526, 0, 0, 230, 231, 232,
1868  233, 234, 235, 0, 216, 217, 218, 219, 220, 221,
1869  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870  222, 223, 224, 225, 208, 0, 0, 0, 0, 0,
1871  0, 0, 0, 0, 57, 0, 209, 210, 0, 0,
1872  0, 0, 226, 227, 211, 0, 0, 228, 0, 0,
1873  0, 0, 0, 0, 0, 0, 0, 24, 0, 212,
1874  213, 214, 215, 0, 0, 0, 0, 0, 0, 0,
1875  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876  0, 0, 0, 0, 0, 0, 0, 0, 0, 229,
1877  557, 0, 0, 0, 0, 0, 0, 0, 230, 231,
1878  232, 233, 234, 235, 0, 216, 217, 218, 219, 220,
1879  221, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880  0, 222, 223, 224, 225, 208, 0, 0, 0, 0,
1881  0, 0, 0, 0, 0, 57, 0, 209, 210, 0,
1882  0, 0, 0, 226, 227, 211, 0, 0, 228, 0,
1883  0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
1884  212, 213, 214, 215, 0, 0, 0, 0, 0, 0,
1885  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887  229, 0, 0, 593, 0, 0, 0, 0, 0, 230,
1888  231, 232, 233, 234, 235, 0, 216, 217, 218, 219,
1889  220, 221, 0, 0, 0, 0, 0, 0, 0, 0,
1890  0, 0, 222, 223, 224, 225, 208, 0, 0, 0,
1891  0, 0, 0, 0, 0, 0, 57, 0, 209, 210,
1892  0, 0, 0, 0, 226, 227, 211, 0, 0, 228,
1893  0, 0, 0, 0, 0, 0, 0, 208, 0, 24,
1894  0, 212, 213, 214, 215, 0, 0, 0, 0, 209,
1895  210, 0, 0, 0, 0, 0, 0, 211, 0, 0,
1896  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897  24, 229, 212, 213, 214, 215, 0, 0, 614, 0,
1898  230, 231, 232, 233, 234, 235, 0, 216, 217, 218,
1899  219, 220, 221, 0, 0, 0, 0, 0, 0, 0,
1900  0, 0, 0, 222, 223, 224, 225, 0, 0, 0,
1901  0, 0, 0, 0, 0, 0, 0, 57, 216, 217,
1902  218, 219, 220, 221, 0, 226, 227, 0, 0, 0,
1903  228, 0, 0, 0, 222, 223, 224, 225, 0, 0,
1904  0, 0, 0, 0, 0, 0, 0, 0, 57, 0,
1905  0, 0, 0, 0, 208, 0, 226, 227, 0, 0,
1906  0, 228, 0, 0, 0, 0, 209, 210, 0, 0,
1907  0, 0, 229, 0, 211, 0, 0, 0, 685, 0,
1908  0, 230, 231, 232, 233, 234, 235, 24, 25, 212,
1909  213, 214, 215, 0, 0, 0, 0, 0, 0, 0,
1910  0, 0, 0, 229, 0, 0, 0, 0, 0, 0,
1911  705, 0, 230, 231, 232, 233, 234, 235, 0, 0,
1912  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913  0, 0, 0, 0, 0, 216, 217, 218, 219, 220,
1914  221, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915  0, 222, 223, 224, 225, 208, 0, 0, 0, 0,
1916  0, 0, 0, 0, 0, 57, 0, 209, 210, 0,
1917  0, 0, 0, 226, 227, 211, 0, 0, 228, 0,
1918  0, 0, 0, 0, 0, 0, 208, 0, 24, 0,
1919  212, 213, 214, 215, 0, 0, 0, 0, 209, 210,
1920  0, 0, 0, 0, 0, 0, 211, 0, 0, 0,
1921  0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1922  229, 212, 213, 214, 215, 0, 0, 0, 0, 230,
1923  231, 232, 233, 234, 235, 0, 216, 217, 218, 219,
1924  220, 221, 0, 0, 0, 0, 0, 0, 0, 0,
1925  0, 0, 222, 223, 224, 225, 0, 0, 0, 0,
1926  0, 0, 0, 0, 0, 0, 57, 216, 217, 218,
1927  219, 220, 221, 0, 226, 227, 0, 0, 0, 228,
1928  0, 0, 0, 222, 223, 224, 225, 208, 0, 0,
1929  0, 0, 0, 0, 0, 0, 0, 57, 0, 209,
1930  210, 0, 0, 0, 0, 226, 227, 211, 0, 0,
1931  228, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932  24, 229, 212, 213, 214, 215, 0, 0, 0, 0,
1933  230, 231, 232, 233, 234, 235, 0, 0, 0, 0,
1934  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1935  0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
1936  0, 230, 531, 232, 233, 234, 235, 0, 216, 217,
1937  218, 219, 220, 221, 0, 0, 0, 0, 0, 0,
1938  0, 0, 0, 0, 222, 223, 224, 225, 208, 0,
1939  0, 0, 0, 0, 208, 0, 0, 0, 57, 0,
1940  209, 210, 0, 0, 0, 0, 209, 210, 211, 0,
1941  0, 228, 0, 0, 211, 0, 0, 0, 0, 0,
1942  0, 24, 0, 212, 213, 214, 215, 24, 0, 212,
1943  213, 214, 215, 0, 0, 0, 0, 0, 0, 0,
1944  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1945  0, 0, 0, 360, 0, 0, 0, 0, 0, 0,
1946  0, 0, 230, 231, 232, 233, 234, 235, 0, 216,
1947  217, 218, 219, 220, 221, 216, 217, 218, 219, 220,
1948  221, 0, 0, 0, 0, 222, 223, 224, 225, 0,
1949  0, 222, 223, 224, 225, 0, 0, 0, 0, 57,
1950  0, 0, 0, 0, 0, 57, 0, 0, 0, 0,
1951  0, 0, 228, 0, 0, 1, 2, 3, 228, 0,
1952  4, 5, 0, 0, 0, 6, 0, 7, 8, 9,
1953  0, 0, 0, 10, 11, 12, 13, 14, 0, 15,
1954  16, 0, 17, 18, 0, 19, 20, 21, 22, 23,
1955  0, 0, 0, 0, 362, 0, 0, 0, 0, 0,
1956  372, 0, 0, 230, 231, 232, 233, 234, 235, 230,
1957  231, 232, 233, 234, 235, 25, 0, 0, 0, 0,
1958  0, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1959  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1960  45, 46, 0, 48, 0, 0, 1, 2, 3, 0,
1961  0, 4, 5, 0, 0, 0, 6, 0, 7, 8,
1962  9, 49, 0, 0, 10, 11, 12, 13, 14, 0,
1963  15, 16, 50, 17, 18, 0, 19, 20, 21, 22,
1964  23, 0, 51, 52, 53, 54, 55, 56, 0, 0,
1965  0, 0, 0, 0, 826, 0, 0, 0, 0, 0,
1966  0, 0, 58, 59, 60, 0, 25, 61, 62, 63,
1967  0, 0, 26, 27, 28, 29, 30, 31, 32, 0,
1968  34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1969  44, 45, 46, 0, 48, 0, 0, 1, 2, 3,
1970  0, 0, 4, 5, 0, 0, 0, 6, 0, 7,
1971  8, 9, 49, 0, 0, 10, 11, 12, 13, 14,
1972  0, 15, 16, 50, 17, 18, 0, 19, 20, 21,
1973  22, 23, 0, 51, 52, 53, 54, 55, 56, 0,
1974  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1975  0, 0, 0, 58, 59, 60, 0, 25, 61, 0,
1976  63, 0, 0, 26, 27, 28, 29, 30, 31, 32,
1977  0, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1978  43, 44, 45, 46, 0, 48, 0, 0, 1, 2,
1979  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
1980  7, 8, 9, 49, 0, 0, 10, 11, 12, 13,
1981  14, 0, 15, 16, 50, 17, 18, 0, 19, 20,
1982  21, 22, 23, 0, 51, 52, 53, 54, 55, 56,
1983  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1984  0, 0, 0, 0, 58, 59, 60, 0, 25, 61,
1985  0, 63, 0, 0, 26, 27, 28, 29, 30, 31,
1986  32, 0, 34, 35, 36, 37, 38, 39, 40, 41,
1987  42, 43, 44, 45, 46, 0, 0, 0, 0, 1,
1988  2, 3, 0, 0, 4, 5, 0, 0, 0, 6,
1989  0, 7, 8, 9, 49, 0, 0, 10, 11, 12,
1990  13, 14, 0, 15, 16, 50, 17, 18, 0, 19,
1991  20, 21, 22, 23, 0, 51, 52, 53, 54, 55,
1992  56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1993  0, 0, 0, 0, 0, 58, 59, 60, 0, 25,
1994  0, 0, 63, 0, 0, 26, 27, 28, 29, 30,
1995  31, 0, 0, 34, 35, 36, 37, 38, 39, 40,
1996  41, 42, 43, 44, 45, 46, 0, 0, 1, 2,
1997  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
1998  0, 8, 9, 0, 0, 49, 10, 11, 12, 13,
1999  14, 0, 15, 16, 0, 17, 50, 0, 19, 0,
2000  21, 22, 23, 0, 0, 0, 0, 52, 53, 54,
2001  55, 56, 0, 0, 0, 0, 0, 0, 0, 0,
2002  0, 0, 0, 0, 0, 0, 58, 59, 0, 0,
2003  0, 0, 0, 63, 26, 27, 28, 29, 30, 31,
2004  0, 0, 34, 35, 36, 37, 38, 39, 40, 41,
2005  42, 43, 44, 45, 46, 0, 0, 0, 0, 2,
2006  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
2007  7, 0, 9, 0, 49, 0, 0, 11, 12, 0,
2008  14, 0, 15, 16, 0, 50, 18, 0, 0, 20,
2009  21, 22, 23, 0, 0, 0, 52, 53, 54, 55,
2010  56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2011  0, 0, 0, 0, 0, 58, 59, 0, 25, 0,
2012  0, 0, 63, 0, 26, 27, 28, 29, 30, 31,
2013  32, 0, 34, 35, 36, 37, 38, 39, 40, 41,
2014  42, 43, 44, 45, 0, 0, 48, 0, 0, 2,
2015  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
2016  7, 0, 9, 0, 49, 0, 0, 11, 12, 0,
2017  14, 0, 15, 16, 0, 0, 18, 0, 0, 20,
2018  21, 22, 23, 0, 0, 51, 52, 53, 54, 55,
2019  56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2020  0, 0, 0, 0, 0, 58, 59, 60, 25, 0,
2021  61, 0, 0, 0, 26, 27, 28, 29, 30, 31,
2022  32, 0, 34, 35, 36, 37, 38, 39, 40, 41,
2023  42, 43, 44, 45, 2, 3, 0, 0, 4, 5,
2024  0, 0, 0, 6, 0, 0, 0, 9, 0, 0,
2025  0, 0, 11, 12, 49, 14, 0, 15, 16, 0,
2026  0, 0, 0, 0, 0, 21, 22, 23, 0, 0,
2027  0, 0, 0, 0, 0, 51, 52, 53, 54, 55,
2028  56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029  0, 0, 0, 0, 0, 58, 59, 60, 0, 26,
2030  27, 28, 29, 30, 31, 0, 0, 34, 35, 36,
2031  37, 38, 39, 40, 41, 42, 43, 44, 45, 0,
2032  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033  0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
2034  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2035  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2036  0, 52, 53, 54, 55, 56, 0, 0, 0, 0,
2037  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2038  58, 59
2039 };
2040 
2041 static const yytype_int16 yycheck[] =
2042 {
2043  0, 199, 142, 211, 78, 79, 229, 0, 82, 83,
2044  78, 79, 64, 211, 204, 344, 78, 79, 33, 0,
2045  473, 64, 0, 0, 115, 508, 0, 66, 432, 116,
2046  0, 25, 853, 33, 115, 51, 326, 25, 78, 79,
2047  50, 391, 68, 118, 197, 395, 91, 145, 880, 127,
2048  67, 636, 1063, 67, 195, 62, 45, 46, 115, 115,
2049  116, 76, 77, 115, 64, 218, 66, 67, 62, 63,
2050  114, 137, 115, 139, 62, 63, 76, 77, 78, 79,
2051  40, 41, 42, 62, 1095, 160, 51, 131, 25, 0,
2052  113, 40, 136, 137, 117, 268, 928, 90, 82, 92,
2053  84, 664, 86, 87, 88, 105, 195, 51, 78, 79,
2054  155, 268, 105, 676, 200, 115, 116, 140, 216, 519,
2055  520, 521, 522, 346, 105, 62, 63, 105, 105, 62,
2056  63, 105, 11, 140, 144, 105, 19, 360, 278, 362,
2057  91, 339, 142, 197, 197, 115, 664, 201, 201, 372,
2058  62, 63, 91, 153, 37, 66, 67, 202, 676, 62,
2059  63, 140, 43, 44, 453, 268, 356, 78, 79, 359,
2060  499, 195, 200, 268, 347, 268, 202, 998, 202, 270,
2061  173, 174, 198, 200, 271, 229, 200, 195, 62, 63,
2062  347, 278, 200, 597, 105, 485, 277, 487, 488, 199,
2063  489, 212, 196, 197, 155, 116, 791, 140, 196, 197,
2064  795, 211, 91, 270, 270, 271, 155, 196, 270, 195,
2065  277, 277, 278, 212, 213, 277, 197, 270, 140, 199,
2066  201, 142, 197, 62, 277, 195, 201, 140, 195, 199,
2067  200, 211, 153, 1064, 347, 142, 143, 196, 90, 91,
2068  199, 200, 347, 197, 347, 142, 143, 201, 543, 198,
2069  195, 197, 195, 548, 593, 897, 140, 197, 900, 197,
2070  270, 271, 205, 273, 197, 268, 155, 277, 278, 200,
2071  197, 214, 218, 195, 307, 218, 67, 197, 218, 68,
2072  218, 197, 0, 205, 268, 218, 494, 197, 268, 314,
2073  270, 218, 214, 203, 195, 202, 218, 277, 218, 62,
2074  63, 140, 218, 155, 314, 202, 360, 195, 362, 195,
2075  196, 195, 200, 367, 200, 369, 200, 371, 372, 782,
2076  813, 205, 195, 196, 62, 508, 195, 200, 91, 339,
2077  214, 205, 974, 693, 197, 977, 210, 211, 348, 195,
2078  203, 508, 218, 757, 347, 446, 349, 197, 432, 433,
2079  271, 201, 273, 91, 432, 142, 195, 278, 349, 339,
2080  432, 67, 349, 347, 197, 349, 205, 347, 201, 349,
2081  208, 209, 210, 440, 440, 214, 195, 140, 440, 446,
2082  446, 391, 432, 221, 446, 395, 197, 440, 376, 377,
2083  201, 196, 155, 446, 91, 508, 376, 377, 431, 432,
2084  203, 486, 140, 508, 764, 508, 206, 207, 818, 442,
2085  443, 391, 822, 62, 753, 395, 197, 155, 120, 503,
2086  201, 505, 519, 520, 197, 503, 510, 511, 201, 195,
2087  440, 503, 195, 195, 200, 643, 446, 521, 522, 205,
2088  195, 196, 205, 521, 522, 200, 654, 655, 214, 521,
2089  522, 214, 432, 503, 47, 48, 143, 195, 155, 156,
2090  440, 197, 546, 547, 697, 201, 446, 205, 546, 547,
2091  200, 521, 522, 772, 546, 547, 214, 502, 195, 662,
2092  195, 196, 196, 197, 494, 200, 786, 196, 197, 514,
2093  723, 140, 502, 726, 195, 662, 546, 547, 214, 682,
2094  196, 197, 195, 721, 514, 508, 203, 970, 708, 519,
2095  520, 521, 522, 721, 494, 682, 510, 511, 512, 544,
2096  545, 218, 882, 503, 508, 613, 195, 7, 508, 195,
2097  510, 11, 196, 197, 544, 545, 546, 547, 196, 197,
2098  195, 521, 522, 553, 196, 197, 195, 196, 597, 662,
2099  204, 200, 215, 541, 542, 49, 205, 662, 918, 662,
2100  920, 541, 542, 596, 597, 214, 546, 547, 665, 682,
2101  196, 197, 605, 553, 114, 197, 198, 682, 217, 682,
2102  879, 196, 62, 63, 196, 884, 196, 197, 196, 129,
2103  798, 196, 132, 133, 134, 1058, 136, 664, 519, 520,
2104  521, 522, 664, 195, 614, 196, 789, 757, 196, 197,
2105  620, 664, 196, 197, 676, 700, 665, 415, 416, 417,
2106  418, 196, 789, 676, 711, 546, 547, 213, 677, 197,
2107  813, 117, 118, 643, 614, 660, 690, 691, 692, 202,
2108  62, 63, 62, 63, 654, 655, 813, 196, 197, 195,
2109  660, 217, 739, 663, 664, 665, 666, 196, 197, 662,
2110  140, 196, 197, 643, 196, 197, 676, 677, 818, 202,
2111  91, 201, 822, 202, 654, 655, 789, 196, 662, 682,
2112  683, 196, 662, 693, 789, 0, 789, 196, 62, 229,
2113  90, 91, 683, 196, 197, 705, 683, 202, 682, 683,
2114  813, 711, 682, 683, 196, 197, 196, 907, 813, 37,
2115  813, 721, 19, 693, 947, 200, 949, 950, 140, 195,
2116  140, 818, 196, 197, 757, 705, 944, 1066, 195, 739,
2117  930, 711, 195, 713, 155, 156, 944, 519, 520, 521,
2118  522, 721, 142, 143, 665, 666, 218, 955, 195, 3,
2119  195, 66, 196, 197, 764, 155, 677, 844, 195, 739,
2120  196, 197, 16, 78, 79, 200, 140, 21, 411, 412,
2121  24, 971, 202, 195, 202, 195, 30, 202, 865, 33,
2122  196, 62, 203, 205, 764, 205, 789, 875, 798, 196,
2123  105, 197, 214, 196, 214, 413, 414, 218, 419, 420,
2124  201, 116, 202, 118, 201, 789, 196, 1015, 818, 789,
2125  813, 196, 822, 897, 222, 223, 224, 225, 798, 897,
2126  360, 195, 362, 25, 198, 897, 197, 142, 197, 813,
2127  197, 205, 372, 813, 844, 89, 151, 1070, 871, 872,
2128  214, 9, 197, 158, 931, 160, 1054, 897, 426, 427,
2129  196, 67, 197, 941, 67, 865, 396, 25, 196, 140,
2130  62, 63, 64, 196, 844, 67, 120, 196, 217, 37,
2131  880, 959, 882, 196, 196, 202, 197, 203, 193, 218,
2132  195, 218, 664, 665, 1092, 865, 896, 897, 428, 204,
2133  900, 202, 902, 198, 676, 677, 195, 818, 195, 195,
2134  880, 822, 882, 157, 195, 73, 74, 197, 918, 203,
2135  920, 198, 999, 1000, 195, 196, 218, 897, 928, 200,
2136  218, 931, 198, 91, 205, 196, 1014, 196, 196, 196,
2137  203, 1019, 62, 214, 944, 198, 198, 198, 918, 197,
2138  920, 109, 217, 196, 196, 955, 196, 1034, 928, 196,
2139  196, 931, 218, 1040, 934, 203, 271, 1045, 273, 203,
2140  196, 196, 1050, 278, 944, 196, 134, 39, 198, 198,
2141  285, 197, 68, 195, 195, 955, 897, 218, 1065, 900,
2142  203, 198, 150, 151, 203, 1073, 195, 155, 1076, 999,
2143  1000, 62, 63, 196, 52, 53, 54, 55, 56, 57,
2144  58, 59, 60, 61, 68, 1015, 90, 91, 323, 324,
2145  140, 203, 195, 218, 1101, 195, 197, 196, 141, 999,
2146  1000, 198, 9, 198, 1034, 198, 196, 195, 195, 203,
2147  1040, 196, 200, 197, 349, 1015, 818, 205, 25, 201,
2148  822, 356, 198, 14, 1054, 217, 214, 218, 195, 218,
2149  37, 196, 201, 197, 1034, 1065, 195, 218, 142, 143,
2150  1040, 376, 377, 197, 196, 195, 196, 218, 196, 140,
2151  200, 155, 196, 195, 1054, 205, 1086, 926, 618, 619,
2152  421, 423, 1092, 298, 214, 1065, 73, 74, 628, 629,
2153  422, 1101, 78, 79, 424, 285, 82, 83, 84, 85,
2154  86, 87, 88, 89, 91, 91, 1086, 93, 425, 198,
2155  624, 356, 1092, 1032, 510, 795, 791, 432, 202, 902,
2156  900, 1101, 109, 977, 195, 643, 510, 198, 798, 663,
2157  912, 683, 226, 227, 205, 705, 230, 231, 232, 233,
2158  234, 235, 934, 214, 705, 1086, 934, 134, 719, 1014,
2159  1050, 71, 1076, 1092, 105, 695, 696, 697, 9, 217,
2160  682, 347, 941, 150, 151, 596, 116, 596, 155, -1,
2161  -1, 486, -1, 713, 25, 715, 96, -1, -1, -1,
2162  100, -1, -1, 103, -1, -1, 37, -1, 503, 92,
2163  93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2164  103, 104, 105, 106, -1, -1, 521, 522, -1, -1,
2165  -1, 62, 63, -1, -1, -1, -1, -1, 204, -1,
2166  -1, -1, 73, 74, -1, 765, 541, 542, -1, 138,
2167  -1, 546, 547, -1, -1, 155, -1, -1, 553, -1,
2168  91, 161, -1, -1, 164, 165, -1, 167, -1, -1,
2169  344, 171, -1, -1, -1, -1, 176, 351, 109, -1,
2170  180, 181, -1, 183, 184, -1, -1, -1, 188, 189,
2171  190, 191, 192, -1, 194, 9, 196, -1, -1, -1,
2172  -1, -1, 597, 134, -1, -1, -1, -1, -1, 140,
2173  -1, 25, -1, -1, -1, 204, -1, -1, -1, 150,
2174  151, -1, -1, 37, 155, -1, -1, -1, -1, 849,
2175  -1, -1, 852, -1, 408, 409, 410, 411, 412, 413,
2176  414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
2177  424, 425, 426, 427, -1, -1, -1, -1, -1, 73,
2178  74, -1, -1, 883, 195, -1, -1, -1, -1, 200,
2179  665, -1, -1, -1, 205, -1, -1, -1, -1, -1,
2180  -1, 347, 677, 214, -1, -1, -1, -1, 683, -1,
2181  356, -1, -1, -1, -1, 109, -1, -1, -1, -1,
2182  -1, 921, -1, -1, 699, 700, -1, -1, -1, -1,
2183  -1, -1, -1, -1, -1, -1, 711, -1, -1, -1,
2184  134, -1, -1, -1, -1, 499, -1, -1, -1, -1,
2185  -1, -1, -1, -1, -1, -1, 150, 151, -1, -1,
2186  -1, 961, -1, 343, 739, 92, 93, 94, 95, 96,
2187  97, 98, 99, 100, 101, 102, 103, 531, 105, 106,
2188  -1, -1, 757, -1, -1, -1, -1, 356, -1, -1,
2189  359, -1, -1, -1, -1, 995, -1, 551, -1, 368,
2190  -1, 370, -1, -1, -1, -1, -1, -1, 1008, -1,
2191  -1, 380, -1, 1013, -1, -1, -1, -1, -1, -1,
2192  -1, -1, 1022, -1, -1, 394, -1, -1, 397, 398,
2193  399, 400, 401, 402, 403, 404, 405, 406, 407, 593,
2194  -1, -1, -1, 818, -1, -1, -1, 822, -1, 1049,
2195  -1, -1, 9, -1, -1, -1, -1, -1, 504, 505,
2196  506, 430, 508, -1, 510, 511, 512, -1, 25, 844,
2197  -1, -1, -1, -1, -1, 521, 522, -1, -1, -1,
2198  37, -1, -1, -1, 453, -1, -1, -1, 1088, -1,
2199  865, -1, -1, -1, -1, -1, -1, -1, -1, 1099,
2200  546, 547, -1, -1, -1, 62, 63, -1, -1, -1,
2201  -1, -1, -1, -1, 483, -1, 73, 74, -1, -1,
2202  489, -1, 897, -1, -1, -1, 66, -1, -1, -1,
2203  -1, -1, -1, -1, 91, -1, -1, -1, 78, 79,
2204  -1, -1, 82, 83, 84, 85, 86, 87, 88, 89,
2205  -1, -1, 109, -1, -1, -1, 931, -1, -1, 934,
2206  -1, -1, -1, 62, -1, 64, 65, 66, 67, -1,
2207  -1, -1, -1, -1, -1, -1, 116, 134, -1, -1,
2208  -1, -1, -1, 140, -1, -1, -1, -1, -1, -1,
2209  -1, -1, -1, 150, 151, -1, -1, -1, 155, 753,
2210  -1, -1, 142, -1, -1, -1, -1, -1, -1, -1,
2211  -1, 110, 111, 112, 113, 114, 662, -1, -1, -1,
2212  -1, -1, -1, -1, 999, 1000, -1, 126, 127, 128,
2213  129, -1, -1, -1, -1, -1, 682, -1, 195, -1,
2214  -1, 140, -1, -1, -1, 614, -1, -1, 205, -1,
2215  -1, 9, -1, 193, 153, 195, 636, 214, 638, 1034,
2216  -1, -1, 642, -1, 204, 1040, -1, 25, 648, 649,
2217  -1, 651, -1, 653, -1, -1, 656, 657, 658, 37,
2218  -1, -1, -1, -1, -1, -1, -1, -1, 668, -1,
2219  1065, -1, -1, -1, 674, -1, 195, -1, 678, -1,
2220  680, -1, -1, -1, 62, 63, -1, -1, -1, -1,
2221  -1, -1, -1, -1, -1, 73, 74, -1, -1, -1,
2222  -1, -1, -1, -1, -1, -1, 1101, -1, -1, -1,
2223  -1, 271, -1, 91, -1, -1, 705, -1, 278, 708,
2224  -1, 9, -1, -1, -1, -1, -1, -1, -1, 729,
2225  -1, 109, -1, -1, -1, -1, -1, 25, -1, -1,
2226  -1, -1, -1, -1, -1, -1, -1, 813, -1, 37,
2227  -1, -1, -1, -1, -1, -1, 134, -1, -1, -1,
2228  -1, 750, 140, 323, 324, -1, -1, -1, -1, -1,
2229  -1, -1, 150, 151, 62, 63, -1, 155, -1, -1,
2230  -1, -1, -1, 772, -1, 73, 74, 347, -1, -1,
2231  -1, 791, -1, -1, -1, 795, 356, 797, -1, -1,
2232  -1, -1, -1, 91, -1, -1, 806, 807, -1, -1,
2233  -1, -1, -1, -1, -1, -1, -1, 195, -1, -1,
2234  -1, 109, -1, -1, -1, -1, -1, 205, -1, -1,
2235  -1, -1, -1, -1, -1, -1, 214, -1, -1, -1,
2236  -1, -1, -1, -1, -1, -1, 134, -1, -1, -1,
2237  -1, -1, 140, -1, -1, -1, -1, -1, -1, -1,
2238  -1, -1, 150, 151, -1, -1, -1, 155, -1, -1,
2239  -1, -1, 432, 433, 434, 435, -1, -1, -1, -1,
2240  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2241  879, 880, 1066, -1, -1, 884, -1, -1, 898, -1,
2242  -1, -1, -1, -1, -1, -1, -1, 195, -1, 909,
2243  -1, -1, -1, -1, -1, -1, -1, 205, 907, -1,
2244  -1, -1, -1, -1, -1, -1, 214, -1, -1, -1,
2245  -1, -1, -1, -1, -1, 924, -1, -1, 927, 928,
2246  -1, 930, -1, 503, -1, 505, 506, -1, 508, -1,
2247  510, 511, 512, -1, -1, -1, -1, -1, -1, -1,
2248  -1, 521, 522, -1, -1, -1, -1, -1, -1, -1,
2249  -1, -1, -1, 973, -1, -1, 976, -1, -1, -1,
2250  -1, 981, 971, 3, 4, 5, 546, 547, 8, 9,
2251  -1, -1, -1, 13, -1, 15, 16, 17, -1, -1,
2252  -1, 21, 22, 23, 24, 25, -1, 27, 28, -1,
2253  30, 31, -1, 33, 34, 35, 36, 37, -1, -1,
2254  -1, -1, -1, -1, -1, -1, -1, 1027, -1, -1,
2255  1030, -1, -1, -1, -1, -1, -1, 597, -1, -1,
2256  -1, -1, 62, 63, -1, -1, -1, -1, -1, 69,
2257  70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2258  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2259  90, 91, -1, -1, -1, -1, -1, -1, -1, -1,
2260  -1, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2261  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2262  120, -1, 662, -1, -1, 665, -1, -1, -1, -1,
2263  130, 131, 132, 133, 134, 135, -1, 677, -1, -1,
2264  140, -1, 682, -1, -1, -1, -1, -1, -1, -1,
2265  150, 151, 152, -1, -1, 155, 156, 157, -1, -1,
2266  -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
2267  -1, 8, 9, -1, -1, -1, 13, -1, 15, 16,
2268  17, -1, -1, -1, 21, 22, 23, 24, 25, -1,
2269  27, 28, -1, 30, 31, 195, 33, 34, 35, 36,
2270  37, -1, 202, -1, -1, 205, -1, -1, -1, -1,
2271  -1, -1, -1, -1, 214, -1, -1, 757, 218, -1,
2272  -1, -1, -1, -1, -1, 62, 63, -1, -1, -1,
2273  -1, -1, 69, 70, 71, 72, 73, 74, 75, -1,
2274  77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2275  87, 88, 89, -1, 91, -1, -1, -1, -1, -1,
2276  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2277  -1, -1, 109, 813, -1, -1, -1, -1, 818, -1,
2278  -1, -1, 822, 120, -1, -1, -1, -1, -1, -1,
2279  -1, -1, -1, 130, 131, 132, 133, 134, 135, -1,
2280  -1, -1, -1, 140, -1, -1, -1, -1, -1, -1,
2281  -1, -1, -1, 150, 151, 152, -1, -1, 155, -1,
2282  157, 3, 4, 5, -1, -1, 8, 9, -1, -1,
2283  -1, 13, -1, 15, 16, 17, -1, -1, -1, 21,
2284  22, 23, 24, 25, -1, 27, 28, -1, 30, 31,
2285  -1, 33, 34, 35, 36, 37, -1, 897, 195, -1,
2286  -1, -1, -1, 200, -1, -1, -1, -1, 205, -1,
2287  -1, -1, -1, -1, -1, -1, -1, 214, -1, -1,
2288  62, 63, -1, -1, -1, -1, -1, 69, 70, 71,
2289  72, 73, 74, 75, -1, 77, 78, 79, 80, 81,
2290  82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
2291  -1, -1, -1, 4, 5, -1, -1, 8, 9, -1,
2292  -1, -1, 13, -1, 15, -1, 17, 109, -1, -1,
2293  -1, 22, 23, -1, 25, -1, 27, 28, 120, -1,
2294  31, -1, -1, 34, 35, 36, 37, -1, 130, 131,
2295  132, 133, 134, 135, -1, -1, -1, -1, 140, -1,
2296  -1, -1, -1, -1, -1, -1, -1, -1, 150, 151,
2297  152, 62, 63, 155, -1, 157, -1, -1, 69, 70,
2298  71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
2299  81, 82, 83, 84, 85, 86, 87, 88, -1, -1,
2300  91, -1, -1, 4, 5, -1, -1, 8, 9, -1,
2301  -1, -1, 13, 195, 15, -1, 17, -1, 109, -1,
2302  -1, 22, 23, 205, 25, -1, 27, 28, -1, -1,
2303  31, -1, 214, 34, 35, 36, 37, -1, -1, 130,
2304  131, 132, 133, 134, 135, -1, -1, -1, -1, 140,
2305  -1, -1, -1, -1, -1, -1, -1, -1, -1, 150,
2306  151, 152, 63, -1, 155, -1, -1, -1, 69, 70,
2307  71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
2308  81, 82, 83, 84, 85, 86, 87, 88, -1, -1,
2309  91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2310  -1, -1, -1, -1, 195, -1, -1, 198, 109, -1,
2311  -1, -1, -1, -1, 205, -1, -1, -1, -1, -1,
2312  -1, -1, -1, 214, -1, -1, -1, -1, -1, 130,
2313  131, 132, 133, 134, 135, -1, -1, -1, -1, -1,
2314  -1, -1, -1, -1, -1, -1, -1, -1, -1, 150,
2315  151, 152, -1, -1, 155, -1, -1, 3, 4, 5,
2316  6, 7, 8, 9, 10, 11, 12, 13, -1, 15,
2317  16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2318  26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2319  36, 37, -1, 39, 195, 41, 42, -1, -1, 200,
2320  -1, -1, -1, 49, 205, -1, -1, -1, -1, -1,
2321  -1, -1, -1, 214, -1, -1, 62, 63, 64, 65,
2322  66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2323  76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2324  86, 87, 88, 89, 90, 91, -1, -1, -1, -1,
2325  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2326  -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
2327  116, -1, -1, 119, 120, -1, -1, -1, -1, -1,
2328  126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2329  136, -1, 138, -1, 140, -1, -1, -1, -1, -1,
2330  -1, -1, 148, 149, 150, 151, 152, 153, -1, 155,
2331  156, 157, -1, -1, -1, -1, -1, -1, -1, -1,
2332  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2333  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2334  -1, -1, -1, -1, -1, -1, -1, -1, -1, 195,
2335  -1, -1, -1, -1, -1, -1, 202, 203, 204, 205,
2336  206, 207, 208, 209, 3, 4, 5, 6, 7, 8,
2337  9, 10, 11, 12, 13, -1, 15, 16, 17, 18,
2338  19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2339  29, 30, 31, 32, 33, 34, 35, 36, 37, -1,
2340  39, -1, 41, 42, -1, -1, -1, -1, -1, -1,
2341  49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2342  -1, -1, -1, 62, 63, 64, 65, 66, 67, -1,
2343  69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2344  79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2345  89, 90, 91, -1, -1, -1, -1, -1, -1, -1,
2346  -1, -1, -1, -1, -1, -1, -1, -1, 107, 108,
2347  109, 110, 111, 112, 113, 114, 115, 116, -1, -1,
2348  119, 120, -1, -1, -1, -1, -1, 126, 127, 128,
2349  129, 130, 131, 132, 133, 134, 135, 136, -1, 138,
2350  -1, 140, -1, -1, -1, -1, -1, -1, -1, 148,
2351  149, 150, 151, 152, 153, -1, 155, 156, 157, -1,
2352  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2353  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2354  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2355  -1, -1, -1, -1, -1, -1, 195, -1, -1, -1,
2356  -1, -1, -1, 202, 203, 204, 205, 206, 207, 208,
2357  209, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2358  12, 13, -1, 15, 16, 17, 18, 19, 20, 21,
2359  22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2360  32, 33, 34, 35, 36, 37, -1, 39, -1, 41,
2361  42, -1, -1, -1, -1, -1, -1, 49, -1, -1,
2362  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2363  62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
2364  72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2365  82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2366  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2367  -1, -1, -1, -1, -1, 107, 108, 109, 110, 111,
2368  112, 113, 114, 115, 116, -1, -1, 119, 120, -1,
2369  -1, -1, -1, -1, 126, 127, 128, 129, 130, 131,
2370  132, 133, 134, 135, 136, -1, 138, -1, 140, -1,
2371  -1, -1, -1, -1, -1, -1, 148, 149, 150, 151,
2372  152, 153, -1, 155, 156, 157, -1, -1, -1, -1,
2373  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2374  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2375  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2376  -1, -1, -1, 195, -1, -1, -1, -1, -1, -1,
2377  202, -1, 204, 205, 206, 207, 208, 209, 3, 4,
2378  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2379  15, 16, 17, -1, -1, -1, 21, 22, 23, 24,
2380  25, -1, 27, 28, 29, 30, 31, -1, 33, 34,
2381  35, 36, 37, -1, -1, -1, 41, 42, -1, -1,
2382  -1, -1, -1, -1, 49, -1, -1, -1, -1, -1,
2383  -1, -1, -1, -1, -1, -1, -1, 62, 63, 64,
2384  65, 66, 67, -1, 69, 70, 71, 72, 73, 74,
2385  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2386  85, 86, 87, 88, 89, -1, 91, -1, -1, -1,
2387  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2388  -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
2389  115, -1, -1, -1, -1, 120, -1, -1, -1, -1,
2390  -1, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2391  135, -1, -1, -1, -1, 140, -1, -1, -1, -1,
2392  -1, -1, -1, 148, 149, 150, 151, 152, 153, 3,
2393  155, 156, 157, -1, -1, 9, -1, -1, -1, 3,
2394  -1, -1, 16, -1, -1, 9, -1, 21, -1, -1,
2395  24, 25, 16, -1, -1, 29, 30, 21, -1, 33,
2396  24, 25, -1, 37, -1, -1, 30, 41, 42, 33,
2397  195, -1, -1, 37, -1, 49, -1, -1, -1, 204,
2398  205, 206, 207, 208, 209, -1, -1, -1, 62, -1,
2399  64, 65, 66, 67, -1, -1, -1, -1, -1, 73,
2400  74, -1, -1, -1, -1, -1, -1, -1, -1, 73,
2401  74, -1, -1, -1, -1, 89, -1, 91, -1, -1,
2402  -1, -1, -1, -1, -1, 89, -1, -1, -1, -1,
2403  -1, -1, -1, -1, -1, 109, 110, 111, 112, 113,
2404  114, 115, -1, -1, -1, 109, 120, -1, -1, -1,
2405  -1, -1, 126, 127, 128, 129, 120, -1, -1, -1,
2406  134, -1, -1, -1, -1, -1, 140, -1, -1, -1,
2407  134, -1, -1, -1, 148, 149, 150, 151, 3, 153,
2408  -1, 155, -1, 157, 9, -1, 150, 151, -1, -1,
2409  -1, 16, -1, 157, -1, -1, 21, -1, -1, 24,
2410  25, -1, -1, -1, 29, 30, -1, -1, 33, -1,
2411  9, -1, 37, -1, -1, -1, 41, 42, -1, -1,
2412  -1, 195, -1, -1, 49, -1, 25, 201, -1, -1,
2413  204, 205, 206, 207, 208, 209, -1, 62, 37, 64,
2414  65, 66, 67, -1, -1, -1, -1, -1, 73, 74,
2415  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2416  -1, -1, -1, 62, 89, -1, 91, -1, -1, -1,
2417  -1, -1, -1, -1, 73, 74, -1, -1, 9, -1,
2418  -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
2419  115, -1, 91, -1, 25, 120, -1, -1, -1, -1,
2420  -1, 126, 127, 128, 129, -1, 37, -1, -1, 134,
2421  109, -1, -1, -1, -1, 140, -1, -1, -1, -1,
2422  -1, -1, -1, 148, 149, 150, 151, -1, 153, -1,
2423  155, 62, 157, -1, -1, 134, -1, -1, -1, -1,
2424  -1, 140, 73, 74, -1, -1, -1, -1, -1, -1,
2425  -1, 150, 151, -1, -1, -1, 155, -1, -1, -1,
2426  91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2427  195, -1, -1, -1, -1, -1, 201, -1, 109, 204,
2428  205, 206, 207, 208, 209, -1, -1, -1, -1, -1,
2429  -1, -1, -1, -1, -1, -1, 195, -1, -1, -1,
2430  -1, 200, -1, 134, -1, 29, 205, -1, -1, 140,
2431  -1, -1, -1, -1, -1, 214, -1, 41, 42, 150,
2432  151, -1, -1, -1, 155, 49, -1, -1, -1, -1,
2433  -1, -1, -1, -1, -1, -1, -1, -1, 62, -1,
2434  64, 65, 66, 67, -1, -1, -1, -1, -1, -1,
2435  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2436  -1, -1, -1, -1, 195, -1, -1, -1, -1, -1,
2437  -1, -1, -1, -1, 205, -1, -1, -1, -1, -1,
2438  -1, -1, -1, 214, -1, -1, 110, 111, 112, 113,
2439  114, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2440  -1, -1, 126, 127, 128, 129, 29, -1, -1, -1,
2441  -1, -1, -1, -1, -1, -1, 140, -1, 41, 42,
2442  -1, -1, -1, -1, 148, 149, 49, -1, -1, 153,
2443  -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
2444  -1, 64, 65, 66, 67, -1, -1, -1, -1, -1,
2445  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2446  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2447  -1, 195, -1, -1, -1, -1, -1, -1, -1, -1,
2448  204, 205, 206, 207, 208, 209, -1, 110, 111, 112,
2449  113, 114, 115, -1, 218, -1, -1, -1, -1, -1,
2450  -1, -1, -1, 126, 127, 128, 129, 29, -1, -1,
2451  -1, -1, -1, -1, -1, -1, -1, 140, -1, 41,
2452  42, -1, -1, -1, -1, 148, 149, 49, -1, -1,
2453  153, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2454  62, 63, 64, 65, 66, 67, -1, -1, -1, -1,
2455  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2456  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2457  -1, -1, 195, -1, -1, -1, 199, 200, -1, 202,
2458  -1, 204, 205, 206, 207, 208, 209, -1, 110, 111,
2459  112, 113, 114, 115, 217, -1, -1, -1, -1, -1,
2460  -1, -1, -1, -1, 126, 127, 128, 129, 29, -1,
2461  -1, -1, -1, -1, -1, -1, -1, -1, 140, -1,
2462  41, 42, -1, -1, -1, -1, 148, 149, 49, -1,
2463  -1, 153, -1, -1, -1, -1, -1, -1, -1, -1,
2464  -1, 62, 63, 64, 65, 66, 67, -1, -1, -1,
2465  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2466  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2467  -1, -1, -1, 195, -1, -1, -1, 199, 200, -1,
2468  202, 203, 204, 205, 206, 207, 208, 209, -1, 110,
2469  111, 112, 113, 114, 115, -1, -1, -1, -1, -1,
2470  -1, -1, -1, -1, -1, 126, 127, 128, 129, 29,
2471  -1, -1, -1, -1, -1, -1, -1, -1, -1, 140,
2472  -1, 41, 42, -1, -1, -1, -1, 148, 149, 49,
2473  -1, -1, 153, -1, -1, -1, -1, -1, -1, -1,
2474  -1, -1, 62, 63, 64, 65, 66, 67, -1, -1,
2475  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2476  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2477  -1, -1, -1, -1, 195, -1, -1, -1, 199, 200,
2478  -1, 202, 203, 204, 205, 206, 207, 208, 209, -1,
2479  110, 111, 112, 113, 114, 115, -1, -1, -1, -1,
2480  -1, -1, -1, -1, -1, -1, 126, 127, 128, 129,
2481  29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2482  140, -1, 41, 42, -1, -1, -1, -1, 148, 149,
2483  49, -1, -1, 153, -1, -1, -1, -1, -1, -1,
2484  -1, -1, -1, 62, -1, 64, 65, 66, 67, -1,
2485  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2486  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2487  -1, -1, 91, -1, -1, 195, -1, -1, -1, 199,
2488  200, -1, 202, -1, 204, 205, 206, 207, 208, 209,
2489  -1, 110, 111, 112, 113, 114, 115, -1, -1, -1,
2490  -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
2491  129, 29, -1, -1, -1, -1, -1, -1, -1, -1,
2492  -1, 140, -1, 41, 42, -1, -1, -1, -1, 148,
2493  149, 49, -1, -1, 153, -1, 155, -1, -1, -1,
2494  -1, -1, 29, -1, 62, -1, 64, 65, 66, 67,
2495  -1, -1, -1, -1, 41, 42, -1, -1, -1, -1,
2496  -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
2497  -1, -1, -1, 91, -1, 62, 195, 64, 65, 66,
2498  67, -1, -1, 202, -1, 204, 205, 206, 207, 208,
2499  209, -1, 110, 111, 112, 113, 114, 115, -1, -1,
2500  -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
2501  128, 129, -1, -1, -1, -1, -1, -1, -1, -1,
2502  -1, -1, 140, 110, 111, 112, 113, 114, 115, -1,
2503  148, 149, -1, -1, -1, 153, -1, 155, -1, 126,
2504  127, 128, 129, 29, -1, -1, -1, -1, -1, -1,
2505  -1, -1, -1, 140, -1, 41, 42, -1, -1, -1,
2506  -1, 148, 149, 49, -1, -1, 153, -1, -1, -1,
2507  -1, -1, -1, -1, -1, -1, 62, 195, 64, 65,
2508  66, 67, -1, -1, -1, -1, 204, 205, 206, 207,
2509  208, 209, -1, -1, -1, -1, -1, -1, -1, -1,
2510  -1, -1, -1, -1, -1, -1, -1, -1, 195, -1,
2511  -1, -1, -1, -1, 201, -1, -1, 204, 205, 206,
2512  207, 208, 209, -1, 110, 111, 112, 113, 114, 115,
2513  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2514  126, 127, 128, 129, 29, -1, -1, -1, -1, -1,
2515  -1, -1, -1, -1, 140, -1, 41, 42, -1, -1,
2516  -1, -1, 148, 149, 49, -1, -1, 153, -1, -1,
2517  -1, -1, -1, -1, -1, -1, -1, 62, -1, 64,
2518  65, 66, 67, -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, 195,
2521  196, -1, -1, -1, -1, -1, -1, -1, 204, 205,
2522  206, 207, 208, 209, -1, 110, 111, 112, 113, 114,
2523  115, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2524  -1, 126, 127, 128, 129, 29, -1, -1, -1, -1,
2525  -1, -1, -1, -1, -1, 140, -1, 41, 42, -1,
2526  -1, -1, -1, 148, 149, 49, -1, -1, 153, -1,
2527  -1, -1, -1, -1, -1, -1, -1, -1, 62, -1,
2528  64, 65, 66, 67, -1, -1, -1, -1, -1, -1,
2529  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2530  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2531  195, -1, -1, 198, -1, -1, -1, -1, -1, 204,
2532  205, 206, 207, 208, 209, -1, 110, 111, 112, 113,
2533  114, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2534  -1, -1, 126, 127, 128, 129, 29, -1, -1, -1,
2535  -1, -1, -1, -1, -1, -1, 140, -1, 41, 42,
2536  -1, -1, -1, -1, 148, 149, 49, -1, -1, 153,
2537  -1, -1, -1, -1, -1, -1, -1, 29, -1, 62,
2538  -1, 64, 65, 66, 67, -1, -1, -1, -1, 41,
2539  42, -1, -1, -1, -1, -1, -1, 49, -1, -1,
2540  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2541  62, 195, 64, 65, 66, 67, -1, -1, 202, -1,
2542  204, 205, 206, 207, 208, 209, -1, 110, 111, 112,
2543  113, 114, 115, -1, -1, -1, -1, -1, -1, -1,
2544  -1, -1, -1, 126, 127, 128, 129, -1, -1, -1,
2545  -1, -1, -1, -1, -1, -1, -1, 140, 110, 111,
2546  112, 113, 114, 115, -1, 148, 149, -1, -1, -1,
2547  153, -1, -1, -1, 126, 127, 128, 129, -1, -1,
2548  -1, -1, -1, -1, -1, -1, -1, -1, 140, -1,
2549  -1, -1, -1, -1, 29, -1, 148, 149, -1, -1,
2550  -1, 153, -1, -1, -1, -1, 41, 42, -1, -1,
2551  -1, -1, 195, -1, 49, -1, -1, -1, 201, -1,
2552  -1, 204, 205, 206, 207, 208, 209, 62, 63, 64,
2553  65, 66, 67, -1, -1, -1, -1, -1, -1, -1,
2554  -1, -1, -1, 195, -1, -1, -1, -1, -1, -1,
2555  202, -1, 204, 205, 206, 207, 208, 209, -1, -1,
2556  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2557  -1, -1, -1, -1, -1, 110, 111, 112, 113, 114,
2558  115, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2559  -1, 126, 127, 128, 129, 29, -1, -1, -1, -1,
2560  -1, -1, -1, -1, -1, 140, -1, 41, 42, -1,
2561  -1, -1, -1, 148, 149, 49, -1, -1, 153, -1,
2562  -1, -1, -1, -1, -1, -1, 29, -1, 62, -1,
2563  64, 65, 66, 67, -1, -1, -1, -1, 41, 42,
2564  -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2565  -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
2566  195, 64, 65, 66, 67, -1, -1, -1, -1, 204,
2567  205, 206, 207, 208, 209, -1, 110, 111, 112, 113,
2568  114, 115, -1, -1, -1, -1, -1, -1, -1, -1,
2569  -1, -1, 126, 127, 128, 129, -1, -1, -1, -1,
2570  -1, -1, -1, -1, -1, -1, 140, 110, 111, 112,
2571  113, 114, 115, -1, 148, 149, -1, -1, -1, 153,
2572  -1, -1, -1, 126, 127, 128, 129, 29, -1, -1,
2573  -1, -1, -1, -1, -1, -1, -1, 140, -1, 41,
2574  42, -1, -1, -1, -1, 148, 149, 49, -1, -1,
2575  153, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2576  62, 195, 64, 65, 66, 67, -1, -1, -1, -1,
2577  204, 205, 206, 207, 208, 209, -1, -1, -1, -1,
2578  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2579  -1, -1, 195, -1, -1, -1, -1, -1, -1, -1,
2580  -1, 204, 205, 206, 207, 208, 209, -1, 110, 111,
2581  112, 113, 114, 115, -1, -1, -1, -1, -1, -1,
2582  -1, -1, -1, -1, 126, 127, 128, 129, 29, -1,
2583  -1, -1, -1, -1, 29, -1, -1, -1, 140, -1,
2584  41, 42, -1, -1, -1, -1, 41, 42, 49, -1,
2585  -1, 153, -1, -1, 49, -1, -1, -1, -1, -1,
2586  -1, 62, -1, 64, 65, 66, 67, 62, -1, 64,
2587  65, 66, 67, -1, -1, -1, -1, -1, -1, -1,
2588  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2589  -1, -1, -1, 195, -1, -1, -1, -1, -1, -1,
2590  -1, -1, 204, 205, 206, 207, 208, 209, -1, 110,
2591  111, 112, 113, 114, 115, 110, 111, 112, 113, 114,
2592  115, -1, -1, -1, -1, 126, 127, 128, 129, -1,
2593  -1, 126, 127, 128, 129, -1, -1, -1, -1, 140,
2594  -1, -1, -1, -1, -1, 140, -1, -1, -1, -1,
2595  -1, -1, 153, -1, -1, 3, 4, 5, 153, -1,
2596  8, 9, -1, -1, -1, 13, -1, 15, 16, 17,
2597  -1, -1, -1, 21, 22, 23, 24, 25, -1, 27,
2598  28, -1, 30, 31, -1, 33, 34, 35, 36, 37,
2599  -1, -1, -1, -1, 195, -1, -1, -1, -1, -1,
2600  195, -1, -1, 204, 205, 206, 207, 208, 209, 204,
2601  205, 206, 207, 208, 209, 63, -1, -1, -1, -1,
2602  -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2603  78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2604  88, 89, -1, 91, -1, -1, 3, 4, 5, -1,
2605  -1, 8, 9, -1, -1, -1, 13, -1, 15, 16,
2606  17, 109, -1, -1, 21, 22, 23, 24, 25, -1,
2607  27, 28, 120, 30, 31, -1, 33, 34, 35, 36,
2608  37, -1, 130, 131, 132, 133, 134, 135, -1, -1,
2609  -1, -1, -1, -1, 51, -1, -1, -1, -1, -1,
2610  -1, -1, 150, 151, 152, -1, 63, 155, 156, 157,
2611  -1, -1, 69, 70, 71, 72, 73, 74, 75, -1,
2612  77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2613  87, 88, 89, -1, 91, -1, -1, 3, 4, 5,
2614  -1, -1, 8, 9, -1, -1, -1, 13, -1, 15,
2615  16, 17, 109, -1, -1, 21, 22, 23, 24, 25,
2616  -1, 27, 28, 120, 30, 31, -1, 33, 34, 35,
2617  36, 37, -1, 130, 131, 132, 133, 134, 135, -1,
2618  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2619  -1, -1, -1, 150, 151, 152, -1, 63, 155, -1,
2620  157, -1, -1, 69, 70, 71, 72, 73, 74, 75,
2621  -1, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2622  86, 87, 88, 89, -1, 91, -1, -1, 3, 4,
2623  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2624  15, 16, 17, 109, -1, -1, 21, 22, 23, 24,
2625  25, -1, 27, 28, 120, 30, 31, -1, 33, 34,
2626  35, 36, 37, -1, 130, 131, 132, 133, 134, 135,
2627  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2628  -1, -1, -1, -1, 150, 151, 152, -1, 63, 155,
2629  -1, 157, -1, -1, 69, 70, 71, 72, 73, 74,
2630  75, -1, 77, 78, 79, 80, 81, 82, 83, 84,
2631  85, 86, 87, 88, 89, -1, -1, -1, -1, 3,
2632  4, 5, -1, -1, 8, 9, -1, -1, -1, 13,
2633  -1, 15, 16, 17, 109, -1, -1, 21, 22, 23,
2634  24, 25, -1, 27, 28, 120, 30, 31, -1, 33,
2635  34, 35, 36, 37, -1, 130, 131, 132, 133, 134,
2636  135, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2637  -1, -1, -1, -1, -1, 150, 151, 152, -1, 63,
2638  -1, -1, 157, -1, -1, 69, 70, 71, 72, 73,
2639  74, -1, -1, 77, 78, 79, 80, 81, 82, 83,
2640  84, 85, 86, 87, 88, 89, -1, -1, 3, 4,
2641  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2642  -1, 16, 17, -1, -1, 109, 21, 22, 23, 24,
2643  25, -1, 27, 28, -1, 30, 120, -1, 33, -1,
2644  35, 36, 37, -1, -1, -1, -1, 131, 132, 133,
2645  134, 135, -1, -1, -1, -1, -1, -1, -1, -1,
2646  -1, -1, -1, -1, -1, -1, 150, 151, -1, -1,
2647  -1, -1, -1, 157, 69, 70, 71, 72, 73, 74,
2648  -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
2649  85, 86, 87, 88, 89, -1, -1, -1, -1, 4,
2650  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2651  15, -1, 17, -1, 109, -1, -1, 22, 23, -1,
2652  25, -1, 27, 28, -1, 120, 31, -1, -1, 34,
2653  35, 36, 37, -1, -1, -1, 131, 132, 133, 134,
2654  135, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2655  -1, -1, -1, -1, -1, 150, 151, -1, 63, -1,
2656  -1, -1, 157, -1, 69, 70, 71, 72, 73, 74,
2657  75, -1, 77, 78, 79, 80, 81, 82, 83, 84,
2658  85, 86, 87, 88, -1, -1, 91, -1, -1, 4,
2659  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2660  15, -1, 17, -1, 109, -1, -1, 22, 23, -1,
2661  25, -1, 27, 28, -1, -1, 31, -1, -1, 34,
2662  35, 36, 37, -1, -1, 130, 131, 132, 133, 134,
2663  135, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2664  -1, -1, -1, -1, -1, 150, 151, 152, 63, -1,
2665  155, -1, -1, -1, 69, 70, 71, 72, 73, 74,
2666  75, -1, 77, 78, 79, 80, 81, 82, 83, 84,
2667  85, 86, 87, 88, 4, 5, -1, -1, 8, 9,
2668  -1, -1, -1, 13, -1, -1, -1, 17, -1, -1,
2669  -1, -1, 22, 23, 109, 25, -1, 27, 28, -1,
2670  -1, -1, -1, -1, -1, 35, 36, 37, -1, -1,
2671  -1, -1, -1, -1, -1, 130, 131, 132, 133, 134,
2672  135, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2673  -1, -1, -1, -1, -1, 150, 151, 152, -1, 69,
2674  70, 71, 72, 73, 74, -1, -1, 77, 78, 79,
2675  80, 81, 82, 83, 84, 85, 86, 87, 88, -1,
2676  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2677  -1, -1, -1, -1, -1, -1, -1, -1, -1, 109,
2678  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2679  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2680  -1, 131, 132, 133, 134, 135, -1, -1, -1, -1,
2681  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2682  150, 151
2683 };
2684 
2685  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2686  symbol of state STATE-NUM. */
2687 static const yytype_uint16 yystos[] =
2688 {
2689  0, 3, 4, 5, 8, 9, 13, 15, 16, 17,
2690  21, 22, 23, 24, 25, 27, 28, 30, 31, 33,
2691  34, 35, 36, 37, 62, 63, 69, 70, 71, 72,
2692  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2693  83, 84, 85, 86, 87, 88, 89, 90, 91, 109,
2694  120, 130, 131, 132, 133, 134, 135, 140, 150, 151,
2695  152, 155, 156, 157, 195, 202, 205, 214, 218, 220,
2696  221, 222, 264, 265, 266, 273, 277, 278, 279, 280,
2697  283, 284, 288, 289, 290, 291, 292, 293, 294, 295,
2698  296, 297, 298, 299, 303, 305, 306, 307, 308, 310,
2699  314, 318, 330, 333, 386, 387, 388, 389, 390, 401,
2700  411, 412, 413, 414, 195, 195, 205, 222, 402, 403,
2701  404, 405, 406, 407, 408, 409, 411, 195, 195, 195,
2702  195, 212, 200, 200, 200, 67, 195, 195, 195, 412,
2703  414, 68, 281, 283, 285, 318, 411, 411, 0, 318,
2704  319, 320, 218, 197, 218, 197, 218, 218, 402, 218,
2705  402, 222, 282, 283, 296, 298, 305, 306, 307, 318,
2706  411, 222, 283, 296, 298, 305, 306, 307, 318, 411,
2707  282, 306, 283, 305, 306, 282, 283, 305, 282, 282,
2708  282, 283, 305, 280, 305, 280, 305, 319, 319, 319,
2709  388, 142, 239, 195, 200, 417, 419, 421, 29, 41,
2710  42, 49, 64, 65, 66, 67, 110, 111, 112, 113,
2711  114, 115, 126, 127, 128, 129, 148, 149, 153, 195,
2712  204, 205, 206, 207, 208, 209, 221, 223, 224, 225,
2713  226, 227, 228, 229, 232, 233, 234, 235, 237, 241,
2714  242, 245, 246, 247, 248, 249, 250, 251, 252, 253,
2715  254, 255, 256, 257, 258, 259, 260, 261, 319, 344,
2716  195, 205, 222, 320, 406, 408, 410, 195, 281, 403,
2717  405, 408, 417, 90, 270, 271, 272, 318, 226, 195,
2718  261, 25, 62, 63, 196, 197, 300, 301, 302, 344,
2719  261, 261, 261, 261, 344, 344, 260, 196, 196, 203,
2720  285, 411, 318, 411, 319, 272, 272, 319, 319, 319,
2721  319, 267, 319, 280, 280, 319, 268, 319, 319, 319,
2722  319, 319, 319, 319, 319, 319, 319, 319, 303, 304,
2723  221, 222, 331, 343, 195, 143, 240, 196, 418, 420,
2724  201, 205, 260, 262, 283, 286, 287, 305, 318, 200,
2725  195, 245, 195, 245, 245, 343, 366, 195, 195, 195,
2726  195, 195, 195, 245, 356, 356, 356, 356, 246, 246,
2727  195, 261, 344, 355, 356, 246, 246, 246, 246, 246,
2728  246, 40, 41, 42, 195, 199, 200, 52, 53, 54,
2729  55, 56, 57, 58, 59, 60, 61, 217, 205, 210,
2730  211, 206, 207, 43, 44, 45, 46, 212, 213, 47,
2731  48, 204, 214, 215, 49, 50, 144, 145, 216, 196,
2732  197, 278, 280, 289, 291, 295, 297, 299, 196, 410,
2733  195, 411, 196, 196, 417, 410, 195, 405, 408, 19,
2734  37, 371, 270, 217, 196, 92, 93, 94, 95, 96,
2735  97, 98, 99, 100, 101, 102, 103, 105, 106, 315,
2736  316, 317, 196, 195, 196, 301, 213, 201, 201, 201,
2737  196, 196, 196, 197, 417, 269, 402, 274, 275, 217,
2738  345, 345, 311, 343, 202, 319, 332, 246, 259, 195,
2739  355, 391, 278, 280, 283, 289, 295, 305, 393, 394,
2740  395, 396, 397, 398, 399, 400, 221, 339, 340, 277,
2741  278, 279, 280, 338, 341, 342, 201, 201, 201, 262,
2742  286, 205, 262, 344, 344, 344, 260, 344, 260, 344,
2743  344, 202, 202, 264, 277, 278, 279, 280, 264, 260,
2744  196, 196, 196, 202, 221, 222, 243, 196, 244, 260,
2745  243, 261, 260, 260, 260, 260, 260, 260, 260, 260,
2746  260, 260, 260, 246, 246, 246, 247, 247, 248, 248,
2747  249, 249, 249, 249, 250, 250, 251, 252, 253, 254,
2748  255, 257, 257, 198, 261, 260, 195, 205, 214, 415,
2749  417, 422, 424, 415, 196, 196, 417, 417, 196, 196,
2750  410, 37, 19, 195, 202, 262, 346, 218, 195, 195,
2751  195, 195, 195, 196, 197, 64, 67, 300, 200, 200,
2752  260, 345, 272, 345, 345, 346, 202, 312, 313, 334,
2753  335, 336, 343, 202, 196, 259, 402, 305, 305, 305,
2754  394, 222, 282, 306, 314, 333, 282, 306, 282, 402,
2755  197, 218, 196, 197, 195, 205, 214, 405, 411, 416,
2756  419, 423, 425, 405, 411, 416, 195, 205, 411, 416,
2757  411, 416, 196, 197, 201, 201, 201, 196, 196, 196,
2758  197, 197, 197, 197, 196, 264, 264, 195, 228, 402,
2759  402, 411, 411, 228, 197, 202, 246, 6, 7, 10,
2760  11, 12, 18, 19, 20, 26, 32, 39, 68, 90,
2761  91, 107, 108, 116, 119, 136, 138, 203, 221, 222,
2762  261, 263, 264, 343, 351, 352, 353, 354, 355, 357,
2763  358, 359, 361, 363, 364, 367, 368, 369, 370, 196,
2764  197, 201, 259, 198, 417, 422, 424, 281, 415, 417,
2765  196, 226, 372, 373, 199, 200, 221, 243, 346, 347,
2766  348, 349, 350, 261, 261, 221, 67, 67, 196, 316,
2767  196, 196, 217, 261, 261, 196, 276, 218, 265, 319,
2768  321, 322, 323, 324, 325, 202, 319, 203, 197, 319,
2769  334, 196, 319, 319, 319, 319, 343, 343, 319, 319,
2770  319, 402, 392, 393, 340, 196, 423, 425, 281, 416,
2771  319, 319, 281, 319, 319, 392, 51, 342, 344, 344,
2772  344, 236, 243, 261, 261, 11, 230, 231, 344, 347,
2773  348, 218, 262, 218, 198, 351, 362, 222, 261, 195,
2774  218, 261, 195, 195, 203, 371, 195, 365, 366, 68,
2775  202, 355, 218, 355, 218, 198, 203, 351, 260, 259,
2776  196, 196, 196, 415, 196, 198, 374, 243, 261, 198,
2777  197, 203, 199, 200, 217, 346, 196, 196, 196, 196,
2778  196, 300, 201, 201, 345, 218, 278, 280, 203, 323,
2779  197, 218, 197, 218, 321, 319, 336, 217, 337, 203,
2780  319, 319, 196, 196, 416, 196, 196, 196, 40, 196,
2781  199, 200, 203, 203, 198, 196, 197, 198, 197, 203,
2782  51, 198, 351, 39, 195, 218, 218, 261, 218, 261,
2783  263, 195, 202, 195, 197, 218, 68, 117, 118, 137,
2784  139, 318, 351, 417, 417, 200, 226, 375, 376, 198,
2785  377, 51, 201, 346, 203, 349, 243, 261, 346, 196,
2786  197, 198, 326, 329, 402, 327, 329, 411, 319, 327,
2787  326, 203, 262, 319, 195, 419, 243, 243, 261, 260,
2788  231, 260, 203, 262, 351, 195, 352, 358, 360, 196,
2789  196, 196, 372, 68, 104, 366, 203, 355, 195, 355,
2790  355, 218, 343, 195, 197, 200, 226, 378, 379, 198,
2791  380, 261, 51, 201, 300, 262, 319, 328, 329, 319,
2792  328, 309, 319, 201, 198, 261, 263, 351, 351, 141,
2793  238, 196, 203, 196, 261, 201, 261, 375, 343, 195,
2794  197, 226, 381, 382, 198, 383, 201, 261, 217, 319,
2795  319, 309, 351, 196, 218, 14, 195, 351, 218, 196,
2796  196, 226, 196, 201, 261, 378, 197, 366, 384, 385,
2797  201, 300, 238, 263, 351, 259, 218, 355, 195, 226,
2798  196, 381, 197, 196, 218, 196, 196, 353, 261, 195,
2799  385, 238, 196, 261, 351, 196
2800 };
2801 
2802  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2803 static const yytype_uint16 yyr1[] =
2804 {
2805  0, 219, 220, 221, 221, 222, 223, 224, 225, 226,
2806  227, 227, 227, 227, 228, 228, 228, 228, 228, 228,
2807  228, 228, 228, 228, 229, 230, 230, 231, 231, 232,
2808  232, 233, 234, 235, 236, 236, 236, 236, 237, 237,
2809  237, 237, 238, 238, 239, 239, 240, 240, 241, 242,
2810  242, 242, 242, 242, 242, 242, 242, 242, 242, 243,
2811  243, 244, 244, 245, 245, 245, 245, 245, 245, 245,
2812  245, 245, 245, 245, 245, 245, 245, 246, 246, 246,
2813  246, 247, 247, 247, 247, 248, 248, 248, 249, 249,
2814  249, 250, 250, 250, 250, 250, 251, 251, 251, 252,
2815  252, 253, 253, 254, 254, 255, 255, 256, 256, 257,
2816  257, 258, 258, 259, 259, 259, 260, 260, 260, 260,
2817  260, 260, 260, 260, 260, 260, 260, 260, 261, 261,
2818  262, 263, 263, 264, 264, 264, 264, 264, 265, 267,
2819  266, 268, 266, 269, 266, 270, 270, 271, 271, 272,
2820  272, 274, 273, 275, 273, 273, 276, 273, 277, 277,
2821  277, 277, 277, 278, 278, 278, 278, 278, 279, 279,
2822  279, 279, 279, 280, 280, 280, 281, 281, 282, 282,
2823  283, 283, 283, 283, 283, 283, 283, 283, 283, 284,
2824  284, 285, 285, 286, 286, 286, 287, 287, 288, 288,
2825  288, 288, 289, 289, 289, 289, 290, 290, 290, 291,
2826  291, 291, 292, 292, 292, 293, 293, 293, 294, 294,
2827  294, 295, 295, 295, 296, 296, 297, 297, 297, 297,
2828  298, 299, 299, 299, 299, 300, 300, 300, 301, 301,
2829  301, 301, 301, 301, 302, 302, 303, 303, 304, 304,
2830  305, 305, 305, 305, 305, 305, 305, 305, 305, 306,
2831  306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
2832  306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
2833  306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
2834  307, 307, 307, 308, 309, 311, 310, 312, 310, 313,
2835  310, 314, 314, 315, 315, 315, 315, 315, 315, 315,
2836  315, 315, 315, 315, 315, 315, 315, 315, 316, 316,
2837  317, 317, 318, 318, 319, 319, 320, 320, 321, 321,
2838  322, 322, 323, 323, 323, 323, 324, 324, 325, 325,
2839  326, 326, 326, 327, 327, 328, 328, 329, 331, 330,
2840  332, 330, 330, 333, 334, 334, 335, 335, 335, 336,
2841  337, 337, 338, 338, 339, 339, 340, 341, 341, 342,
2842  342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
2843  342, 342, 342, 343, 343, 344, 344, 344, 344, 345,
2844  345, 346, 346, 346, 347, 347, 348, 348, 349, 349,
2845  349, 349, 350, 350, 350, 350, 350, 350, 351, 351,
2846  351, 351, 351, 351, 351, 351, 351, 351, 351, 351,
2847  351, 352, 353, 353, 353, 353, 353, 354, 355, 355,
2848  355, 356, 357, 357, 358, 359, 359, 359, 360, 360,
2849  361, 361, 362, 361, 363, 363, 363, 363, 363, 363,
2850  364, 365, 365, 366, 367, 367, 368, 368, 369, 369,
2851  369, 370, 370, 370, 371, 371, 371, 371, 371, 372,
2852  372, 372, 372, 372, 373, 374, 374, 375, 375, 376,
2853  376, 377, 377, 378, 378, 379, 379, 380, 380, 381,
2854  382, 382, 383, 383, 384, 384, 385, 386, 386, 387,
2855  387, 388, 388, 388, 388, 389, 389, 390, 391, 392,
2856  392, 393, 393, 394, 395, 395, 395, 396, 396, 396,
2857  396, 397, 397, 397, 398, 398, 399, 399, 399, 400,
2858  400, 400, 401, 401, 401, 401, 401, 402, 402, 402,
2859  403, 403, 403, 404, 404, 405, 405, 405, 406, 406,
2860  406, 407, 407, 408, 408, 408, 408, 408, 409, 409,
2861  409, 410, 410, 411, 411, 412, 412, 412, 412, 413,
2862  413, 413, 414, 414, 415, 415, 415, 416, 416, 417,
2863  417, 418, 417, 419, 419, 420, 419, 421, 421, 421,
2864  421, 421, 421, 421, 422, 422, 422, 422, 422, 423,
2865  423, 423, 423, 423, 424, 424, 424, 424, 424, 425,
2866  425, 425, 425
2867 };
2868 
2869  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2870 static const yytype_uint8 yyr2[] =
2871 {
2872  0, 2, 1, 1, 2, 1, 1, 1, 1, 1,
2873  1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
2874  1, 1, 1, 1, 6, 1, 3, 3, 3, 6,
2875  6, 6, 4, 6, 1, 3, 4, 3, 6, 4,
2876  6, 4, 0, 4, 0, 4, 0, 4, 3, 1,
2877  4, 3, 4, 3, 3, 2, 2, 6, 7, 1,
2878  1, 1, 3, 1, 2, 2, 2, 2, 2, 2,
2879  2, 2, 2, 2, 4, 2, 4, 1, 4, 2,
2880  2, 1, 3, 3, 3, 1, 3, 3, 1, 3,
2881  3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
2882  3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
2883  3, 1, 3, 1, 5, 4, 1, 3, 3, 3,
2884  3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
2885  1, 0, 1, 2, 2, 2, 2, 2, 6, 0,
2886  4, 0, 4, 0, 5, 5, 1, 2, 1, 0,
2887  1, 0, 5, 0, 5, 5, 0, 7, 1, 1,
2888  1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2889  1, 2, 2, 1, 2, 2, 1, 2, 1, 1,
2890  1, 1, 1, 1, 1, 1, 1, 4, 1, 4,
2891  4, 1, 1, 1, 1, 1, 1, 2, 3, 3,
2892  3, 3, 2, 3, 2, 3, 2, 2, 2, 1,
2893  2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2894  3, 2, 3, 3, 4, 4, 1, 2, 3, 2,
2895  4, 1, 2, 3, 2, 1, 1, 1, 1, 4,
2896  4, 6, 10, 1, 1, 2, 4, 3, 0, 1,
2897  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2898  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2899  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2900  1, 1, 1, 1, 1, 1, 4, 7, 7, 1,
2901  1, 1, 1, 4, 0, 0, 9, 0, 10, 0,
2902  6, 1, 1, 1, 1, 4, 1, 4, 4, 1,
2903  1, 4, 4, 1, 1, 1, 1, 1, 0, 1,
2904  1, 3, 6, 1, 0, 1, 1, 2, 0, 1,
2905  1, 2, 2, 2, 1, 2, 3, 3, 3, 3,
2906  3, 0, 2, 3, 2, 0, 1, 2, 0, 7,
2907  0, 8, 4, 1, 0, 1, 1, 3, 2, 3,
2908  0, 2, 1, 3, 1, 3, 1, 1, 3, 1,
2909  2, 3, 2, 1, 2, 3, 1, 2, 3, 2,
2910  1, 2, 3, 1, 1, 2, 3, 2, 3, 0,
2911  2, 1, 3, 4, 1, 3, 1, 0, 1, 3,
2912  2, 3, 2, 3, 5, 4, 6, 3, 1, 1,
2913  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2914  1, 1, 4, 3, 4, 6, 3, 8, 3, 4,
2915  4, 0, 1, 2, 2, 5, 7, 5, 1, 1,
2916  6, 8, 0, 10, 3, 3, 2, 2, 2, 3,
2917  3, 1, 3, 1, 6, 5, 4, 2, 7, 4,
2918  1, 2, 4, 4, 0, 1, 1, 2, 2, 1,
2919  2, 3, 4, 5, 1, 2, 1, 4, 7, 1,
2920  3, 2, 1, 4, 7, 1, 3, 2, 1, 1,
2921  1, 3, 2, 1, 1, 3, 1, 0, 1, 1,
2922  2, 1, 1, 1, 1, 5, 3, 4, 1, 0,
2923  1, 1, 2, 2, 1, 2, 2, 3, 3, 3,
2924  3, 3, 3, 3, 4, 4, 1, 1, 1, 2,
2925  2, 3, 1, 2, 2, 2, 2, 1, 1, 1,
2926  4, 5, 2, 1, 1, 1, 2, 1, 1, 2,
2927  3, 3, 4, 1, 4, 5, 2, 3, 3, 4,
2928  4, 1, 3, 1, 1, 1, 2, 2, 3, 2,
2929  3, 4, 1, 3, 1, 1, 1, 1, 1, 1,
2930  3, 0, 5, 1, 2, 0, 5, 2, 3, 3,
2931  3, 4, 4, 4, 1, 2, 2, 3, 1, 1,
2932  2, 2, 3, 1, 3, 3, 3, 4, 4, 3,
2933  3, 1, 4
2934 };
2935 
2936 
2937 #define yyerrok (yyerrstatus = 0)
2938 #define yyclearin (yychar = YYEMPTY)
2939 #define YYEMPTY (-2)
2940 #define YYEOF 0
2941 
2942 #define YYACCEPT goto yyacceptlab
2943 #define YYABORT goto yyabortlab
2944 #define YYERROR goto yyerrorlab
2945 
2946 
2947 #define YYRECOVERING() (!!yyerrstatus)
2948 
2949 #define YYBACKUP(Token, Value) \
2950 do \
2951  if (yychar == YYEMPTY) \
2952  { \
2953  yychar = (Token); \
2954  yylval = (Value); \
2955  YYPOPSTACK (yylen); \
2956  yystate = *yyssp; \
2957  goto yybackup; \
2958  } \
2959  else \
2960  { \
2961  yyerror (YY_("syntax error: cannot back up")); \
2962  YYERROR; \
2963  } \
2964 while (0)
2965 
2966 /* Error token number */
2967 #define YYTERROR 1
2968 #define YYERRCODE 256
2969 
2970 
2971 
2972 /* Enable debugging if requested. */
2973 #if YYDEBUG
2974 
2975 # ifndef YYFPRINTF
2976 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2977 # define YYFPRINTF fprintf
2978 # endif
2979 
2980 # define YYDPRINTF(Args) \
2981 do { \
2982  if (yydebug) \
2983  YYFPRINTF Args; \
2984 } while (0)
2985 
2986 /* This macro is provided for backward compatibility. */
2987 #ifndef YY_LOCATION_PRINT
2988 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2989 #endif
2990 
2991 
2992 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2993 do { \
2994  if (yydebug) \
2995  { \
2996  YYFPRINTF (stderr, "%s ", Title); \
2997  yy_symbol_print (stderr, \
2998  Type, Value); \
2999  YYFPRINTF (stderr, "\n"); \
3000  } \
3001 } while (0)
3002 
3003 
3004 /*----------------------------------------.
3005 | Print this symbol's value on YYOUTPUT. |
3006 `----------------------------------------*/
3007 
3008 static void
3009 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3010 {
3011  FILE *yyo = yyoutput;
3012  YYUSE (yyo);
3013  if (!yyvaluep)
3014  return;
3015 # ifdef YYPRINT
3016  if (yytype < YYNTOKENS)
3017  YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3018 # endif
3019  YYUSE (yytype);
3020 }
3021 
3022 
3023 /*--------------------------------.
3024 | Print this symbol on YYOUTPUT. |
3025 `--------------------------------*/
3026 
3027 static void
3028 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3029 {
3030  YYFPRINTF (yyoutput, "%s %s (",
3031  yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3032 
3033  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
3034  YYFPRINTF (yyoutput, ")");
3035 }
3036 
3037 /*------------------------------------------------------------------.
3038 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3039 | TOP (included). |
3040 `------------------------------------------------------------------*/
3041 
3042 static void
3043 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3044 {
3045  YYFPRINTF (stderr, "Stack now");
3046  for (; yybottom <= yytop; yybottom++)
3047  {
3048  int yybot = *yybottom;
3049  YYFPRINTF (stderr, " %d", yybot);
3050  }
3051  YYFPRINTF (stderr, "\n");
3052 }
3053 
3054 # define YY_STACK_PRINT(Bottom, Top) \
3055 do { \
3056  if (yydebug) \
3057  yy_stack_print ((Bottom), (Top)); \
3058 } while (0)
3059 
3060 
3061 /*------------------------------------------------.
3062 | Report that the YYRULE is going to be reduced. |
3063 `------------------------------------------------*/
3064 
3065 static void
3066 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
3067 {
3068  unsigned long int yylno = yyrline[yyrule];
3069  int yynrhs = yyr2[yyrule];
3070  int yyi;
3071  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3072  yyrule - 1, yylno);
3073  /* The symbols being reduced. */
3074  for (yyi = 0; yyi < yynrhs; yyi++)
3075  {
3076  YYFPRINTF (stderr, " $%d = ", yyi + 1);
3077  yy_symbol_print (stderr,
3078  yystos[yyssp[yyi + 1 - yynrhs]],
3079  &(yyvsp[(yyi + 1) - (yynrhs)])
3080  );
3081  YYFPRINTF (stderr, "\n");
3082  }
3083 }
3084 
3085 # define YY_REDUCE_PRINT(Rule) \
3086 do { \
3087  if (yydebug) \
3088  yy_reduce_print (yyssp, yyvsp, Rule); \
3089 } while (0)
3090 
3091 /* Nonzero means print parse trace. It is left uninitialized so that
3092  multiple parsers can coexist. */
3093 int yydebug;
3094 #else /* !YYDEBUG */
3095 # define YYDPRINTF(Args)
3096 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3097 # define YY_STACK_PRINT(Bottom, Top)
3098 # define YY_REDUCE_PRINT(Rule)
3099 #endif /* !YYDEBUG */
3100 
3101 
3102 /* YYINITDEPTH -- initial size of the parser's stacks. */
3103 #ifndef YYINITDEPTH
3104 # define YYINITDEPTH 200
3105 #endif
3106 
3107 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3108  if the built-in stack extension method is used).
3109 
3110  Do not make this value too large; the results are undefined if
3111  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3112  evaluated with infinite-precision integer arithmetic. */
3113 
3114 #ifndef YYMAXDEPTH
3115 # define YYMAXDEPTH 10000
3116 #endif
3117 
3118 
3119 #if YYERROR_VERBOSE
3120 
3121 # ifndef yystrlen
3122 # if defined __GLIBC__ && defined _STRING_H
3123 # define yystrlen strlen
3124 # else
3125 /* Return the length of YYSTR. */
3126 static YYSIZE_T
3127 yystrlen (const char *yystr)
3128 {
3129  YYSIZE_T yylen;
3130  for (yylen = 0; yystr[yylen]; yylen++)
3131  continue;
3132  return yylen;
3133 }
3134 # endif
3135 # endif
3136 
3137 # ifndef yystpcpy
3138 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3139 # define yystpcpy stpcpy
3140 # else
3141 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3142  YYDEST. */
3143 static char *
3144 yystpcpy (char *yydest, const char *yysrc)
3145 {
3146  char *yyd = yydest;
3147  const char *yys = yysrc;
3148 
3149  while ((*yyd++ = *yys++) != '\0')
3150  continue;
3151 
3152  return yyd - 1;
3153 }
3154 # endif
3155 # endif
3156 
3157 # ifndef yytnamerr
3158 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3159  quotes and backslashes, so that it's suitable for yyerror. The
3160  heuristic is that double-quoting is unnecessary unless the string
3161  contains an apostrophe, a comma, or backslash (other than
3162  backslash-backslash). YYSTR is taken from yytname. If YYRES is
3163  null, do not copy; instead, return the length of what the result
3164  would have been. */
3165 static YYSIZE_T
3166 yytnamerr (char *yyres, const char *yystr)
3167 {
3168  if (*yystr == '"')
3169  {
3170  YYSIZE_T yyn = 0;
3171  char const *yyp = yystr;
3172 
3173  for (;;)
3174  switch (*++yyp)
3175  {
3176  case '\'':
3177  case ',':
3178  goto do_not_strip_quotes;
3179 
3180  case '\\':
3181  if (*++yyp != '\\')
3182  goto do_not_strip_quotes;
3183  /* Fall through. */
3184  default:
3185  if (yyres)
3186  yyres[yyn] = *yyp;
3187  yyn++;
3188  break;
3189 
3190  case '"':
3191  if (yyres)
3192  yyres[yyn] = '\0';
3193  return yyn;
3194  }
3195  do_not_strip_quotes: ;
3196  }
3197 
3198  if (! yyres)
3199  return yystrlen (yystr);
3200 
3201  return yystpcpy (yyres, yystr) - yyres;
3202 }
3203 # endif
3204 
3205 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3206  about the unexpected token YYTOKEN for the state stack whose top is
3207  YYSSP.
3208 
3209  Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
3210  not large enough to hold the message. In that case, also set
3211  *YYMSG_ALLOC to the required number of bytes. Return 2 if the
3212  required number of bytes is too large to store. */
3213 static int
3214 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3215  yytype_int16 *yyssp, int yytoken)
3216 {
3217  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3218  YYSIZE_T yysize = yysize0;
3219  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3220  /* Internationalized format string. */
3221  const char *yyformat = YY_NULLPTR;
3222  /* Arguments of yyformat. */
3223  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3224  /* Number of reported tokens (one for the "unexpected", one per
3225  "expected"). */
3226  int yycount = 0;
3227 
3228  /* There are many possibilities here to consider:
3229  - If this state is a consistent state with a default action, then
3230  the only way this function was invoked is if the default action
3231  is an error action. In that case, don't check for expected
3232  tokens because there are none.
3233  - The only way there can be no lookahead present (in yychar) is if
3234  this state is a consistent state with a default action. Thus,
3235  detecting the absence of a lookahead is sufficient to determine
3236  that there is no unexpected or expected token to report. In that
3237  case, just report a simple "syntax error".
3238  - Don't assume there isn't a lookahead just because this state is a
3239  consistent state with a default action. There might have been a
3240  previous inconsistent state, consistent state with a non-default
3241  action, or user semantic action that manipulated yychar.
3242  - Of course, the expected token list depends on states to have
3243  correct lookahead information, and it depends on the parser not
3244  to perform extra reductions after fetching a lookahead from the
3245  scanner and before detecting a syntax error. Thus, state merging
3246  (from LALR or IELR) and default reductions corrupt the expected
3247  token list. However, the list is correct for canonical LR with
3248  one exception: it will still contain any token that will not be
3249  accepted due to an error action in a later state.
3250  */
3251  if (yytoken != YYEMPTY)
3252  {
3253  int yyn = yypact[*yyssp];
3254  yyarg[yycount++] = yytname[yytoken];
3255  if (!yypact_value_is_default (yyn))
3256  {
3257  /* Start YYX at -YYN if negative to avoid negative indexes in
3258  YYCHECK. In other words, skip the first -YYN actions for
3259  this state because they are default actions. */
3260  int yyxbegin = yyn < 0 ? -yyn : 0;
3261  /* Stay within bounds of both yycheck and yytname. */
3262  int yychecklim = YYLAST - yyn + 1;
3263  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3264  int yyx;
3265 
3266  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3267  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3268  && !yytable_value_is_error (yytable[yyx + yyn]))
3269  {
3270  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3271  {
3272  yycount = 1;
3273  yysize = yysize0;
3274  break;
3275  }
3276  yyarg[yycount++] = yytname[yyx];
3277  {
3278  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3279  if (! (yysize <= yysize1
3280  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3281  return 2;
3282  yysize = yysize1;
3283  }
3284  }
3285  }
3286  }
3287 
3288  switch (yycount)
3289  {
3290 # define YYCASE_(N, S) \
3291  case N: \
3292  yyformat = S; \
3293  break
3294  YYCASE_(0, YY_("syntax error"));
3295  YYCASE_(1, YY_("syntax error, unexpected %s"));
3296  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3297  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3298  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3299  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3300 # undef YYCASE_
3301  }
3302 
3303  {
3304  YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3305  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3306  return 2;
3307  yysize = yysize1;
3308  }
3309 
3310  if (*yymsg_alloc < yysize)
3311  {
3312  *yymsg_alloc = 2 * yysize;
3313  if (! (yysize <= *yymsg_alloc
3314  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3315  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3316  return 1;
3317  }
3318 
3319  /* Avoid sprintf, as that infringes on the user's name space.
3320  Don't have undefined behavior even if the translation
3321  produced a string with the wrong number of "%s"s. */
3322  {
3323  char *yyp = *yymsg;
3324  int yyi = 0;
3325  while ((*yyp = *yyformat) != '\0')
3326  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3327  {
3328  yyp += yytnamerr (yyp, yyarg[yyi++]);
3329  yyformat += 2;
3330  }
3331  else
3332  {
3333  yyp++;
3334  yyformat++;
3335  }
3336  }
3337  return 0;
3338 }
3339 #endif /* YYERROR_VERBOSE */
3340 
3341 /*-----------------------------------------------.
3342 | Release the memory associated to this symbol. |
3343 `-----------------------------------------------*/
3344 
3345 static void
3346 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3347 {
3348  YYUSE (yyvaluep);
3349  if (!yymsg)
3350  yymsg = "Deleting";
3351  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3352 
3354  YYUSE (yytype);
3356 }
3357 
3358 
3359 
3360 
3361 /* The lookahead symbol. */
3363 
3364 /* The semantic value of the lookahead symbol. */
3366 /* Number of syntax errors so far. */
3368 
3369 
3370 /*----------.
3371 | yyparse. |
3372 `----------*/
3373 
3374 int
3375 yyparse (void)
3376 {
3377  int yystate;
3378  /* Number of tokens to shift before error messages enabled. */
3379  int yyerrstatus;
3380 
3381  /* The stacks and their tools:
3382  'yyss': related to states.
3383  'yyvs': related to semantic values.
3384 
3385  Refer to the stacks through separate pointers, to allow yyoverflow
3386  to reallocate them elsewhere. */
3387 
3388  /* The state stack. */
3389  yytype_int16 yyssa[YYINITDEPTH];
3390  yytype_int16 *yyss;
3391  yytype_int16 *yyssp;
3392 
3393  /* The semantic value stack. */
3394  YYSTYPE yyvsa[YYINITDEPTH];
3395  YYSTYPE *yyvs;
3396  YYSTYPE *yyvsp;
3397 
3398  YYSIZE_T yystacksize;
3399 
3400  int yyn;
3401  int yyresult;
3402  /* Lookahead token as an internal (translated) token number. */
3403  int yytoken = 0;
3404  /* The variables used to return semantic value and location from the
3405  action routines. */
3406  YYSTYPE yyval;
3407 
3408 #if YYERROR_VERBOSE
3409  /* Buffer for error messages, and its allocated size. */
3410  char yymsgbuf[128];
3411  char *yymsg = yymsgbuf;
3412  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3413 #endif
3414 
3415 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3416 
3417  /* The number of symbols on the RHS of the reduced rule.
3418  Keep to zero when no symbol should be popped. */
3419  int yylen = 0;
3420 
3421  yyssp = yyss = yyssa;
3422  yyvsp = yyvs = yyvsa;
3423  yystacksize = YYINITDEPTH;
3424 
3425  YYDPRINTF ((stderr, "Starting parse\n"));
3426 
3427  yystate = 0;
3428  yyerrstatus = 0;
3429  yynerrs = 0;
3430  yychar = YYEMPTY; /* Cause a token to be read. */
3431  goto yysetstate;
3432 
3433 /*------------------------------------------------------------.
3434 | yynewstate -- Push a new state, which is found in yystate. |
3435 `------------------------------------------------------------*/
3436  yynewstate:
3437  /* In all cases, when you get here, the value and location stacks
3438  have just been pushed. So pushing a state here evens the stacks. */
3439  yyssp++;
3440 
3441  yysetstate:
3442  *yyssp = yystate;
3443 
3444  if (yyss + yystacksize - 1 <= yyssp)
3445  {
3446  /* Get the current used size of the three stacks, in elements. */
3447  YYSIZE_T yysize = yyssp - yyss + 1;
3448 
3449 #ifdef yyoverflow
3450  {
3451  /* Give user a chance to reallocate the stack. Use copies of
3452  these so that the &'s don't force the real ones into
3453  memory. */
3454  YYSTYPE *yyvs1 = yyvs;
3455  yytype_int16 *yyss1 = yyss;
3456 
3457  /* Each stack pointer address is followed by the size of the
3458  data in use in that stack, in bytes. This used to be a
3459  conditional around just the two extra args, but that might
3460  be undefined if yyoverflow is a macro. */
3461  yyoverflow (YY_("memory exhausted"),
3462  &yyss1, yysize * sizeof (*yyssp),
3463  &yyvs1, yysize * sizeof (*yyvsp),
3464  &yystacksize);
3465 
3466  yyss = yyss1;
3467  yyvs = yyvs1;
3468  }
3469 #else /* no yyoverflow */
3470 # ifndef YYSTACK_RELOCATE
3471  goto yyexhaustedlab;
3472 # else
3473  /* Extend the stack our own way. */
3474  if (YYMAXDEPTH <= yystacksize)
3475  goto yyexhaustedlab;
3476  yystacksize *= 2;
3477  if (YYMAXDEPTH < yystacksize)
3478  yystacksize = YYMAXDEPTH;
3479 
3480  {
3481  yytype_int16 *yyss1 = yyss;
3482  union yyalloc *yyptr =
3483  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3484  if (! yyptr)
3485  goto yyexhaustedlab;
3486  YYSTACK_RELOCATE (yyss_alloc, yyss);
3487  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3488 # undef YYSTACK_RELOCATE
3489  if (yyss1 != yyssa)
3490  YYSTACK_FREE (yyss1);
3491  }
3492 # endif
3493 #endif /* no yyoverflow */
3494 
3495  yyssp = yyss + yysize - 1;
3496  yyvsp = yyvs + yysize - 1;
3497 
3498  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3499  (unsigned long int) yystacksize));
3500 
3501  if (yyss + yystacksize - 1 <= yyssp)
3502  YYABORT;
3503  }
3504 
3505  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3506 
3507  if (yystate == YYFINAL)
3508  YYACCEPT;
3509 
3510  goto yybackup;
3511 
3512 /*-----------.
3513 | yybackup. |
3514 `-----------*/
3515 yybackup:
3516 
3517  /* Do appropriate processing given the current state. Read a
3518  lookahead token if we need one and don't already have one. */
3519 
3520  /* First try to decide what to do without reference to lookahead token. */
3521  yyn = yypact[yystate];
3522  if (yypact_value_is_default (yyn))
3523  goto yydefault;
3524 
3525  /* Not known => get a lookahead token if don't already have one. */
3526 
3527  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3528  if (yychar == YYEMPTY)
3529  {
3530  YYDPRINTF ((stderr, "Reading a token: "));
3531  yychar = yylex ();
3532  }
3533 
3534  if (yychar <= YYEOF)
3535  {
3536  yychar = yytoken = YYEOF;
3537  YYDPRINTF ((stderr, "Now at end of input.\n"));
3538  }
3539  else
3540  {
3541  yytoken = YYTRANSLATE (yychar);
3542  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3543  }
3544 
3545  /* If the proper action on seeing token YYTOKEN is to reduce or to
3546  detect an error, take that action. */
3547  yyn += yytoken;
3548  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3549  goto yydefault;
3550  yyn = yytable[yyn];
3551  if (yyn <= 0)
3552  {
3553  if (yytable_value_is_error (yyn))
3554  goto yyerrlab;
3555  yyn = -yyn;
3556  goto yyreduce;
3557  }
3558 
3559  /* Count tokens shifted since error; after three, turn off error
3560  status. */
3561  if (yyerrstatus)
3562  yyerrstatus--;
3563 
3564  /* Shift the lookahead token. */
3565  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3566 
3567  /* Discard the shifted token. */
3568  yychar = YYEMPTY;
3569 
3570  yystate = yyn;
3572  *++yyvsp = yylval;
3574 
3575  goto yynewstate;
3576 
3577 
3578 /*-----------------------------------------------------------.
3579 | yydefault -- do the default action for the current state. |
3580 `-----------------------------------------------------------*/
3581 yydefault:
3582  yyn = yydefact[yystate];
3583  if (yyn == 0)
3584  goto yyerrlab;
3585  goto yyreduce;
3586 
3587 
3588 /*-----------------------------.
3589 | yyreduce -- Do a reduction. |
3590 `-----------------------------*/
3591 yyreduce:
3592  /* yyn is the number of a rule to reduce with. */
3593  yylen = yyr2[yyn];
3594 
3595  /* If YYLEN is nonzero, implement the default value of the action:
3596  '$$ = $1'.
3597 
3598  Otherwise, the following line sets YYVAL to garbage.
3599  This behavior is undocumented and Bison
3600  users should not rely upon it. Assigning to YYVAL
3601  unconditionally makes the parser a bit smaller, and it avoids a
3602  GCC warning that YYVAL may be used uninitialized. */
3603  yyval = yyvsp[1-yylen];
3604 
3605 
3606  YY_REDUCE_PRINT (yyn);
3607  switch (yyn)
3608  {
3609  case 4:
3610 #line 273 "parser.y" /* yacc.c:1646 */
3611  {
3612  (yyval)=(yyvsp[-1]);
3613  stack((yyval)).id(ID_symbol);
3614  irep_idt value=stack((yyvsp[0])).get(ID_value);
3615  stack((yyval)).set(ID_C_base_name, value);
3616  stack((yyval)).set(ID_identifier, value);
3617  stack((yyval)).set(
3618  ID_C_id_class, static_cast<int>(ansi_c_id_classt::ANSI_C_SYMBOL));
3619  }
3620 #line 3621 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3621  break;
3622 
3623  case 16:
3624 #line 318 "parser.y" /* yacc.c:1646 */
3625  { (yyval) = (yyvsp[-1]); }
3626 #line 3627 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3627  break;
3628 
3629  case 24:
3630 #line 330 "parser.y" /* yacc.c:1646 */
3631  {
3632  (yyval)=(yyvsp[-5]);
3633  set((yyval), ID_generic_selection);
3634  mto((yyval), (yyvsp[-3]));
3635  stack((yyval)).add(ID_generic_associations).get_sub().swap((irept::subt&)stack((yyvsp[-1])).operands());
3636  }
3637 #line 3638 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3638  break;
3639 
3640  case 25:
3641 #line 340 "parser.y" /* yacc.c:1646 */
3642  {
3643  init((yyval)); mto((yyval), (yyvsp[0]));
3644  }
3645 #line 3646 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3646  break;
3647 
3648  case 26:
3649 #line 344 "parser.y" /* yacc.c:1646 */
3650  {
3651  (yyval)=(yyvsp[-2]); mto((yyval), (yyvsp[0]));
3652  }
3653 #line 3654 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3654  break;
3655 
3656  case 27:
3657 #line 351 "parser.y" /* yacc.c:1646 */
3658  {
3659  (yyval)=(yyvsp[-1]);
3660  stack((yyval)).id(ID_generic_association);
3661  stack((yyval)).set(ID_type_arg, stack((yyvsp[-2])));
3662  stack((yyval)).set(ID_value, stack((yyvsp[0])));
3663  }
3664 #line 3665 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3665  break;
3666 
3667  case 28:
3668 #line 358 "parser.y" /* yacc.c:1646 */
3669  {
3670  (yyval)=(yyvsp[-1]);
3671  stack((yyval)).id(ID_generic_association);
3672  stack((yyval)).set(ID_type_arg, irept(ID_default));
3673  stack((yyval)).set(ID_value, stack((yyvsp[0])));
3674  }
3675 #line 3676 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3676  break;
3677 
3678  case 29:
3679 #line 368 "parser.y" /* yacc.c:1646 */
3680  {
3681  (yyval)=(yyvsp[-5]);
3682  stack((yyval)).id(ID_gcc_builtin_va_arg);
3683  mto((yyval), (yyvsp[-3]));
3684  stack((yyval)).type().swap(stack((yyvsp[-1])));
3685  }
3686 #line 3687 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3687  break;
3688 
3689  case 30:
3690 #line 376 "parser.y" /* yacc.c:1646 */
3691  {
3692  (yyval)=(yyvsp[-5]);
3693  stack((yyval)).id(ID_gcc_builtin_types_compatible_p);
3694  typet &type_arg=(typet &)(stack((yyval)).add(ID_type_arg));
3695  typet::subtypest &subtypes=type_arg.subtypes();
3696  subtypes.resize(2);
3697  subtypes[0].swap(stack((yyvsp[-3])));
3698  subtypes[1].swap(stack((yyvsp[-1])));
3699  }
3700 #line 3701 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3701  break;
3702 
3703  case 31:
3704 #line 389 "parser.y" /* yacc.c:1646 */
3705  {
3706  (yyval)=(yyvsp[-5]);
3707  stack((yyval)).id(ID_clang_builtin_convertvector);
3708  mto((yyval), (yyvsp[-3]));
3709  stack((yyval)).type().swap(stack((yyvsp[-1])));
3710  }
3711 #line 3712 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3712  break;
3713 
3714  case 32:
3715 #line 399 "parser.y" /* yacc.c:1646 */
3716  {
3717  (yyval)=(yyvsp[-3]);
3718  stack((yyval)).id(ID_cw_va_arg_typeof);
3719  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
3720  }
3721 #line 3722 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3722  break;
3723 
3724  case 33:
3725 #line 408 "parser.y" /* yacc.c:1646 */
3726  {
3727  (yyval)=(yyvsp[-5]);
3728  stack((yyval)).id(ID_builtin_offsetof);
3729  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-3])));
3730  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-1])));
3731  }
3732 #line 3733 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3733  break;
3734 
3735  case 34:
3736 #line 418 "parser.y" /* yacc.c:1646 */
3737  {
3738  init((yyval), ID_designated_initializer);
3739  stack((yyval)).operands().resize(1);
3740  stack((yyval)).op0().id(ID_member);
3741  stack((yyval)).op0().add_source_location()=stack((yyvsp[0])).source_location();
3742  stack((yyval)).op0().set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3743  }
3744 #line 3745 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3745  break;
3746 
3747  case 35:
3748 #line 426 "parser.y" /* yacc.c:1646 */
3749  {
3750  (yyval)=(yyvsp[-2]);
3751  set((yyvsp[-1]), ID_member);
3752  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3753  mto((yyval), (yyvsp[-1]));
3754  }
3755 #line 3756 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3756  break;
3757 
3758  case 36:
3759 #line 433 "parser.y" /* yacc.c:1646 */
3760  {
3761  (yyval)=(yyvsp[-3]);
3762  set((yyvsp[-2]), ID_index);
3763  mto((yyvsp[-2]), (yyvsp[-1]));
3764  mto((yyval), (yyvsp[-2]));
3765  }
3766 #line 3767 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3767  break;
3768 
3769  case 37:
3770 #line 440 "parser.y" /* yacc.c:1646 */
3771  {
3772  (yyval)=(yyvsp[-2]);
3773  set((yyvsp[-1]), ID_index);
3774  exprt tmp=convert_integer_literal("0");
3775  stack((yyvsp[-1])).move_to_operands(tmp);
3776  mto((yyval), (yyvsp[-1]));
3777  set((yyvsp[-1]), ID_member);
3778  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3779  mto((yyval), (yyvsp[-1]));
3780  }
3781 #line 3782 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3782  break;
3783 
3784  case 38:
3785 #line 454 "parser.y" /* yacc.c:1646 */
3786  {
3787  (yyval)=(yyvsp[-5]);
3788  set((yyval), ID_forall);
3789  mto((yyval), (yyvsp[-2]));
3790  mto((yyval), (yyvsp[-1]));
3791  PARSER.pop_scope();
3792  }
3793 #line 3794 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3794  break;
3795 
3796  case 39:
3797 #line 462 "parser.y" /* yacc.c:1646 */
3798  {
3799  // The precedence of this operator is too high; it is meant
3800  // to bind only very weakly.
3801  (yyval)=(yyvsp[-3]);
3802  set((yyval), ID_forall);
3803  mto((yyval), (yyvsp[-1]));
3804  mto((yyval), (yyvsp[0]));
3805  PARSER.pop_scope();
3806  }
3807 #line 3808 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3808  break;
3809 
3810  case 40:
3811 #line 472 "parser.y" /* yacc.c:1646 */
3812  {
3813  (yyval)=(yyvsp[-5]);
3814  set((yyval), ID_exists);
3815  mto((yyval), (yyvsp[-2]));
3816  mto((yyval), (yyvsp[-1]));
3817  PARSER.pop_scope();
3818  }
3819 #line 3820 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3820  break;
3821 
3822  case 41:
3823 #line 480 "parser.y" /* yacc.c:1646 */
3824  {
3825  // The precedence of this operator is too high; it is meant
3826  // to bind only very weakly.
3827  (yyval)=(yyvsp[-3]);
3828  set((yyval), ID_exists);
3829  mto((yyval), (yyvsp[-1]));
3830  mto((yyval), (yyvsp[0]));
3831  PARSER.pop_scope();
3832  }
3833 #line 3834 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3834  break;
3835 
3836  case 42:
3837 #line 493 "parser.y" /* yacc.c:1646 */
3838  { init((yyval)); stack((yyval)).make_nil(); }
3839 #line 3840 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3840  break;
3841 
3842  case 43:
3843 #line 495 "parser.y" /* yacc.c:1646 */
3844  { (yyval)=(yyvsp[-1]); }
3845 #line 3846 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3846  break;
3847 
3848  case 44:
3849 #line 500 "parser.y" /* yacc.c:1646 */
3850  { init((yyval)); stack((yyval)).make_nil(); }
3851 #line 3852 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3852  break;
3853 
3854  case 45:
3855 #line 502 "parser.y" /* yacc.c:1646 */
3856  { (yyval)=(yyvsp[-1]); }
3857 #line 3858 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3858  break;
3859 
3860  case 46:
3861 #line 507 "parser.y" /* yacc.c:1646 */
3862  { init((yyval)); stack((yyval)).make_nil(); }
3863 #line 3864 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3864  break;
3865 
3866  case 47:
3867 #line 509 "parser.y" /* yacc.c:1646 */
3868  { (yyval)=(yyvsp[-1]); }
3869 #line 3870 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3870  break;
3871 
3872  case 48:
3873 #line 513 "parser.y" /* yacc.c:1646 */
3874  {
3875  (yyval)=(yyvsp[-2]);
3876  set((yyval), ID_side_effect);
3877  stack((yyval)).set(ID_statement, ID_statement_expression);
3878  mto((yyval), (yyvsp[-1]));
3879  }
3880 #line 3881 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3881  break;
3882 
3883  case 50:
3884 #line 524 "parser.y" /* yacc.c:1646 */
3885  { binary((yyval), (yyvsp[-3]), (yyvsp[-2]), ID_index, (yyvsp[-1])); }
3886 #line 3887 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3887  break;
3888 
3889  case 51:
3890 #line 526 "parser.y" /* yacc.c:1646 */
3891  { (yyval)=(yyvsp[-1]);
3892  set((yyval), ID_side_effect);
3893  stack((yyval)).set(ID_statement, ID_function_call);
3894  stack((yyval)).operands().resize(2);
3895  stack((yyval)).op0().swap(stack((yyvsp[-2])));
3896  stack((yyval)).op1().clear();
3897  stack((yyval)).op1().id(ID_arguments);
3898  }
3899 #line 3900 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3900  break;
3901 
3902  case 52:
3903 #line 535 "parser.y" /* yacc.c:1646 */
3904  { (yyval)=(yyvsp[-2]);
3905  set((yyval), ID_side_effect);
3906  stack((yyval)).set(ID_statement, ID_function_call);
3907  stack((yyval)).operands().resize(2);
3908  stack((yyval)).op0().swap(stack((yyvsp[-3])));
3909  stack((yyval)).op1().swap(stack((yyvsp[-1])));
3910  stack((yyval)).op1().id(ID_arguments);
3911  }
3912 #line 3913 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3913  break;
3914 
3915  case 53:
3916 #line 544 "parser.y" /* yacc.c:1646 */
3917  { (yyval)=(yyvsp[-1]);
3918  set((yyval), ID_member);
3919  mto((yyval), (yyvsp[-2]));
3920  stack((yyval)).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3921  }
3922 #line 3923 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3923  break;
3924 
3925  case 54:
3926 #line 550 "parser.y" /* yacc.c:1646 */
3927  { (yyval)=(yyvsp[-1]);
3928  set((yyval), ID_ptrmember);
3929  mto((yyval), (yyvsp[-2]));
3930  stack((yyval)).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3931  }
3932 #line 3933 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3933  break;
3934 
3935  case 55:
3936 #line 556 "parser.y" /* yacc.c:1646 */
3937  { (yyval)=(yyvsp[0]);
3938  set((yyval), ID_side_effect);
3939  stack((yyval)).set(ID_statement, ID_postincrement);
3940  mto((yyval), (yyvsp[-1]));
3941  }
3942 #line 3943 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3943  break;
3944 
3945  case 56:
3946 #line 562 "parser.y" /* yacc.c:1646 */
3947  { (yyval)=(yyvsp[0]);
3948  set((yyval), ID_side_effect);
3949  stack((yyval)).set(ID_statement, ID_postdecrement);
3950  mto((yyval), (yyvsp[-1]));
3951  }
3952 #line 3953 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3953  break;
3954 
3955  case 57:
3956 #line 569 "parser.y" /* yacc.c:1646 */
3957  {
3958  exprt tmp(ID_initializer_list);
3959  tmp.add_source_location()=stack((yyvsp[-2])).source_location();
3960  tmp.operands().swap(stack((yyvsp[-1])).operands());
3961  (yyval)=(yyvsp[-5]);
3962  set((yyval), ID_typecast);
3963  stack((yyval)).move_to_operands(tmp);
3964  stack((yyval)).type().swap(stack((yyvsp[-4])));
3965  }
3966 #line 3967 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3967  break;
3968 
3969  case 58:
3970 #line 579 "parser.y" /* yacc.c:1646 */
3971  {
3972  // same as above
3973  exprt tmp(ID_initializer_list);
3974  tmp.add_source_location()=stack((yyvsp[-3])).source_location();
3975  tmp.operands().swap(stack((yyvsp[-2])).operands());
3976  (yyval)=(yyvsp[-6]);
3977  set((yyval), ID_typecast);
3978  stack((yyval)).move_to_operands(tmp);
3979  stack((yyval)).type().swap(stack((yyvsp[-5])));
3980  }
3981 #line 3982 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3982  break;
3983 
3984  case 61:
3985 #line 598 "parser.y" /* yacc.c:1646 */
3986  {
3987  init((yyval), ID_expression_list);
3988  mto((yyval), (yyvsp[0]));
3989  }
3990 #line 3991 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3991  break;
3992 
3993  case 62:
3994 #line 603 "parser.y" /* yacc.c:1646 */
3995  {
3996  (yyval)=(yyvsp[-2]);
3997  mto((yyval), (yyvsp[0]));
3998  }
3999 #line 4000 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4000  break;
4001 
4002  case 64:
4003 #line 612 "parser.y" /* yacc.c:1646 */
4004  { (yyval)=(yyvsp[-1]);
4005  set((yyval), ID_side_effect);
4006  stack((yyval)).set(ID_statement, ID_preincrement);
4007  mto((yyval), (yyvsp[0]));
4008  }
4009 #line 4010 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4010  break;
4011 
4012  case 65:
4013 #line 618 "parser.y" /* yacc.c:1646 */
4014  { (yyval)=(yyvsp[-1]);
4015  set((yyval), ID_side_effect);
4016  stack((yyval)).set(ID_statement, ID_predecrement);
4017  mto((yyval), (yyvsp[0]));
4018  }
4019 #line 4020 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4020  break;
4021 
4022  case 66:
4023 #line 624 "parser.y" /* yacc.c:1646 */
4024  { (yyval)=(yyvsp[-1]);
4025  set((yyval), ID_address_of);
4026  mto((yyval), (yyvsp[0]));
4027  }
4028 #line 4029 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4029  break;
4030 
4031  case 67:
4032 #line 629 "parser.y" /* yacc.c:1646 */
4033  { // this takes the address of a label (a gcc extension)
4034  (yyval)=(yyvsp[-1]);
4035  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[0])).get(ID_C_base_name));
4036  set((yyval), ID_address_of);
4037  stack((yyval)).operands().resize(1);
4038  stack((yyval)).op0()=stack((yyvsp[0]));
4039  stack((yyval)).op0().id(ID_label);
4040  stack((yyval)).op0().set(ID_identifier, identifier);
4041  }
4042 #line 4043 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4043  break;
4044 
4045  case 68:
4046 #line 639 "parser.y" /* yacc.c:1646 */
4047  { (yyval)=(yyvsp[-1]);
4048  set((yyval), ID_dereference);
4049  mto((yyval), (yyvsp[0]));
4050  }
4051 #line 4052 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4052  break;
4053 
4054  case 69:
4055 #line 644 "parser.y" /* yacc.c:1646 */
4056  { (yyval)=(yyvsp[-1]);
4057  set((yyval), ID_unary_plus);
4058  mto((yyval), (yyvsp[0]));
4059  }
4060 #line 4061 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4061  break;
4062 
4063  case 70:
4064 #line 649 "parser.y" /* yacc.c:1646 */
4065  { (yyval)=(yyvsp[-1]);
4066  set((yyval), ID_unary_minus);
4067  mto((yyval), (yyvsp[0]));
4068  }
4069 #line 4070 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4070  break;
4071 
4072  case 71:
4073 #line 654 "parser.y" /* yacc.c:1646 */
4074  { (yyval)=(yyvsp[-1]);
4075  set((yyval), ID_bitnot);
4076  mto((yyval), (yyvsp[0]));
4077  }
4078 #line 4079 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4079  break;
4080 
4081  case 72:
4082 #line 659 "parser.y" /* yacc.c:1646 */
4083  { (yyval)=(yyvsp[-1]);
4084  set((yyval), ID_not);
4085  mto((yyval), (yyvsp[0]));
4086  }
4087 #line 4088 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4088  break;
4089 
4090  case 73:
4091 #line 664 "parser.y" /* yacc.c:1646 */
4092  { (yyval)=(yyvsp[-1]);
4093  set((yyval), ID_sizeof);
4094  mto((yyval), (yyvsp[0]));
4095  }
4096 #line 4097 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4097  break;
4098 
4099  case 74:
4100 #line 669 "parser.y" /* yacc.c:1646 */
4101  { (yyval)=(yyvsp[-3]);
4102  set((yyval), ID_sizeof);
4103  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
4104  }
4105 #line 4106 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4106  break;
4107 
4108  case 75:
4109 #line 674 "parser.y" /* yacc.c:1646 */
4110  { // note no parentheses for expressions, just like sizeof
4111  (yyval)=(yyvsp[-1]);
4112  set((yyval), ID_alignof);
4113  mto((yyval), (yyvsp[0]));
4114  }
4115 #line 4116 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4116  break;
4117 
4118  case 76:
4119 #line 680 "parser.y" /* yacc.c:1646 */
4120  {
4121  (yyval)=(yyvsp[-3]);
4122  stack((yyval)).id(ID_alignof);
4123  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
4124  }
4125 #line 4126 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4126  break;
4127 
4128  case 78:
4129 #line 690 "parser.y" /* yacc.c:1646 */
4130  {
4131  (yyval)=(yyvsp[-3]);
4132  set((yyval), ID_typecast);
4133  mto((yyval), (yyvsp[0]));
4134  stack((yyval)).type().swap(stack((yyvsp[-2])));
4135  }
4136 #line 4137 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4137  break;
4138 
4139  case 79:
4140 #line 697 "parser.y" /* yacc.c:1646 */
4141  { (yyval)=(yyvsp[-1]);
4142  set((yyval), ID_complex_real);
4143  mto((yyval), (yyvsp[0]));
4144  }
4145 #line 4146 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4146  break;
4147 
4148  case 80:
4149 #line 702 "parser.y" /* yacc.c:1646 */
4150  { (yyval)=(yyvsp[-1]);
4151  set((yyval), ID_complex_imag);
4152  mto((yyval), (yyvsp[0]));
4153  }
4154 #line 4155 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4155  break;
4156 
4157  case 82:
4158 #line 711 "parser.y" /* yacc.c:1646 */
4159  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_mult, (yyvsp[0])); }
4160 #line 4161 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4161  break;
4162 
4163  case 83:
4164 #line 713 "parser.y" /* yacc.c:1646 */
4165  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_div, (yyvsp[0])); }
4166 #line 4167 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4167  break;
4168 
4169  case 84:
4170 #line 715 "parser.y" /* yacc.c:1646 */
4171  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_mod, (yyvsp[0])); }
4172 #line 4173 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4173  break;
4174 
4175  case 86:
4176 #line 721 "parser.y" /* yacc.c:1646 */
4177  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_plus, (yyvsp[0])); }
4178 #line 4179 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4179  break;
4180 
4181  case 87:
4182 #line 723 "parser.y" /* yacc.c:1646 */
4183  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_minus, (yyvsp[0])); }
4184 #line 4185 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4185  break;
4186 
4187  case 89:
4188 #line 729 "parser.y" /* yacc.c:1646 */
4189  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_shl, (yyvsp[0])); }
4190 #line 4191 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4191  break;
4192 
4193  case 90:
4194 #line 731 "parser.y" /* yacc.c:1646 */
4195  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_shr, (yyvsp[0])); }
4196 #line 4197 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4197  break;
4198 
4199  case 92:
4200 #line 737 "parser.y" /* yacc.c:1646 */
4201  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_lt, (yyvsp[0])); }
4202 #line 4203 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4203  break;
4204 
4205  case 93:
4206 #line 739 "parser.y" /* yacc.c:1646 */
4207  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_gt, (yyvsp[0])); }
4208 #line 4209 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4209  break;
4210 
4211  case 94:
4212 #line 741 "parser.y" /* yacc.c:1646 */
4213  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_le, (yyvsp[0])); }
4214 #line 4215 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4215  break;
4216 
4217  case 95:
4218 #line 743 "parser.y" /* yacc.c:1646 */
4219  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_ge, (yyvsp[0])); }
4220 #line 4221 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4221  break;
4222 
4223  case 97:
4224 #line 749 "parser.y" /* yacc.c:1646 */
4225  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_equal, (yyvsp[0])); }
4226 #line 4227 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4227  break;
4228 
4229  case 98:
4230 #line 751 "parser.y" /* yacc.c:1646 */
4231  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_notequal, (yyvsp[0])); }
4232 #line 4233 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4233  break;
4234 
4235  case 100:
4236 #line 757 "parser.y" /* yacc.c:1646 */
4237  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitand, (yyvsp[0])); }
4238 #line 4239 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4239  break;
4240 
4241  case 102:
4242 #line 763 "parser.y" /* yacc.c:1646 */
4243  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitxor, (yyvsp[0])); }
4244 #line 4245 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4245  break;
4246 
4247  case 104:
4248 #line 769 "parser.y" /* yacc.c:1646 */
4249  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitor, (yyvsp[0])); }
4250 #line 4251 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4251  break;
4252 
4253  case 106:
4254 #line 775 "parser.y" /* yacc.c:1646 */
4255  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_and, (yyvsp[0])); }
4256 #line 4257 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4257  break;
4258 
4259  case 108:
4260 #line 781 "parser.y" /* yacc.c:1646 */
4261  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_or, (yyvsp[0])); }
4262 #line 4263 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4263  break;
4264 
4265  case 110:
4266 #line 790 "parser.y" /* yacc.c:1646 */
4267  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_implies, (yyvsp[0])); }
4268 #line 4269 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4269  break;
4270 
4271  case 112:
4272 #line 799 "parser.y" /* yacc.c:1646 */
4273  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_equal, (yyvsp[0])); }
4274 #line 4275 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4275  break;
4276 
4277  case 114:
4278 #line 805 "parser.y" /* yacc.c:1646 */
4279  { (yyval)=(yyvsp[-3]);
4280  stack((yyval)).id(ID_if);
4281  mto((yyval), (yyvsp[-4]));
4282  mto((yyval), (yyvsp[-2]));
4283  mto((yyval), (yyvsp[0]));
4284  }
4285 #line 4286 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4286  break;
4287 
4288  case 115:
4289 #line 812 "parser.y" /* yacc.c:1646 */
4290  { (yyval)=(yyvsp[-2]);
4291  stack((yyval)).id(ID_side_effect);
4292  stack((yyval)).set(ID_statement, ID_gcc_conditional_expression);
4293  mto((yyval), (yyvsp[-3]));
4294  mto((yyval), (yyvsp[0]));
4295  }
4296 #line 4297 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4297  break;
4298 
4299  case 117:
4300 #line 823 "parser.y" /* yacc.c:1646 */
4301  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign); }
4302 #line 4303 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4303  break;
4304 
4305  case 118:
4306 #line 825 "parser.y" /* yacc.c:1646 */
4307  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_mult); }
4308 #line 4309 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4309  break;
4310 
4311  case 119:
4312 #line 827 "parser.y" /* yacc.c:1646 */
4313  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_div); }
4314 #line 4315 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4315  break;
4316 
4317  case 120:
4318 #line 829 "parser.y" /* yacc.c:1646 */
4319  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_mod); }
4320 #line 4321 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4321  break;
4322 
4323  case 121:
4324 #line 831 "parser.y" /* yacc.c:1646 */
4325  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_plus); }
4326 #line 4327 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4327  break;
4328 
4329  case 122:
4330 #line 833 "parser.y" /* yacc.c:1646 */
4331  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_minus); }
4332 #line 4333 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4333  break;
4334 
4335  case 123:
4336 #line 835 "parser.y" /* yacc.c:1646 */
4337  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_shl); }
4338 #line 4339 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4339  break;
4340 
4341  case 124:
4342 #line 837 "parser.y" /* yacc.c:1646 */
4343  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_shr); }
4344 #line 4345 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4345  break;
4346 
4347  case 125:
4348 #line 839 "parser.y" /* yacc.c:1646 */
4349  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitand); }
4350 #line 4351 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4351  break;
4352 
4353  case 126:
4354 #line 841 "parser.y" /* yacc.c:1646 */
4355  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitxor); }
4356 #line 4357 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4357  break;
4358 
4359  case 127:
4360 #line 843 "parser.y" /* yacc.c:1646 */
4361  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitor); }
4362 #line 4363 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4363  break;
4364 
4365  case 129:
4366 #line 849 "parser.y" /* yacc.c:1646 */
4367  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_comma, (yyvsp[0])); }
4368 #line 4369 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4369  break;
4370 
4371  case 131:
4372 #line 858 "parser.y" /* yacc.c:1646 */
4373  { init((yyval)); stack((yyval)).make_nil(); }
4374 #line 4375 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4375  break;
4376 
4377  case 133:
4378 #line 866 "parser.y" /* yacc.c:1646 */
4379  {
4380  // type only, no declarator!
4381  init((yyval), ID_declaration);
4382  stack((yyval)).type().swap(stack((yyvsp[-1])));
4383  }
4384 #line 4385 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4385  break;
4386 
4387  case 134:
4388 #line 872 "parser.y" /* yacc.c:1646 */
4389  {
4390  // type only, no identifier!
4391  init((yyval), ID_declaration);
4392  stack((yyval)).type().swap(stack((yyvsp[-1])));
4393  }
4394 #line 4395 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4395  break;
4396 
4397  case 138:
4398 #line 884 "parser.y" /* yacc.c:1646 */
4399  {
4400  (yyval)=(yyvsp[-5]);
4401  set((yyval), ID_declaration);
4403  mto((yyval), (yyvsp[-3]));
4404  mto((yyval), (yyvsp[-1]));
4405  }
4406 #line 4407 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4407  break;
4408 
4409  case 139:
4410 #line 895 "parser.y" /* yacc.c:1646 */
4411  {
4412  init((yyval), ID_declaration);
4413  stack((yyval)).type().swap(stack((yyvsp[-1])));
4414  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
4415  }
4416 #line 4417 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4417  break;
4418 
4419  case 140:
4420 #line 901 "parser.y" /* yacc.c:1646 */
4421  {
4422  // patch on the initializer
4423  (yyval)=(yyvsp[-1]);
4424  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4425  }
4426 #line 4427 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4427  break;
4428 
4429  case 141:
4430 #line 907 "parser.y" /* yacc.c:1646 */
4431  {
4432  init((yyval), ID_declaration);
4433  stack((yyval)).type().swap(stack((yyvsp[-1])));
4434  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
4435  }
4436 #line 4437 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4437  break;
4438 
4439  case 142:
4440 #line 913 "parser.y" /* yacc.c:1646 */
4441  {
4442  // patch on the initializer
4443  (yyval)=(yyvsp[-1]);
4444  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4445  }
4446 #line 4447 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4447  break;
4448 
4449  case 143:
4450 #line 919 "parser.y" /* yacc.c:1646 */
4451  {
4452  // just add the declarator
4453  PARSER.add_declarator(stack((yyvsp[-2])), stack((yyvsp[0])));
4454  // Needs to be done before initializer, as we want to see that identifier
4455  // already there!
4456  }
4457 #line 4458 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4458  break;
4459 
4460  case 144:
4461 #line 926 "parser.y" /* yacc.c:1646 */
4462  {
4463  // patch on the initializer
4464  (yyval)=(yyvsp[-4]);
4465  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4466  }
4467 #line 4468 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4468  break;
4469 
4470  case 145:
4471 #line 935 "parser.y" /* yacc.c:1646 */
4472  {
4473  (yyval)=(yyvsp[-4]);
4474  stack((yyval)).id(ID_asm);
4475  stack((yyval)).set(ID_flavor, ID_gcc);
4476  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
4477  }
4478 #line 4479 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4479  break;
4480 
4481  case 147:
4482 #line 946 "parser.y" /* yacc.c:1646 */
4483  {
4484  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4485  }
4486 #line 4487 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4487  break;
4488 
4489  case 149:
4490 #line 954 "parser.y" /* yacc.c:1646 */
4491  {
4492  init((yyval));
4493  }
4494 #line 4495 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4495  break;
4496 
4497  case 151:
4498 #line 963 "parser.y" /* yacc.c:1646 */
4499  {
4500  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute
4501 
4502  // the symbol has to be visible during initialization
4503  init((yyval), ID_declaration);
4504  stack((yyval)).type().swap(stack((yyvsp[-2])));
4505  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
4506  }
4507 #line 4508 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4508  break;
4509 
4510  case 152:
4511 #line 972 "parser.y" /* yacc.c:1646 */
4512  {
4513  // add the initializer
4514  (yyval)=(yyvsp[-1]);
4515  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4516  }
4517 #line 4518 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4518  break;
4519 
4520  case 153:
4521 #line 979 "parser.y" /* yacc.c:1646 */
4522  {
4523  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1]));
4524 
4525  // the symbol has to be visible during initialization
4526  init((yyval), ID_declaration);
4527  stack((yyval)).type().swap(stack((yyvsp[-2])));
4528  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
4529  }
4530 #line 4531 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4531  break;
4532 
4533  case 154:
4534 #line 988 "parser.y" /* yacc.c:1646 */
4535  {
4536  // add the initializer
4537  (yyval)=(yyvsp[-1]);
4538  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4539  }
4540 #line 4541 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4541  break;
4542 
4543  case 155:
4544 #line 995 "parser.y" /* yacc.c:1646 */
4545  {
4546  // handled as typeof(initializer)
4547  stack((yyvsp[-4])).id(ID_typeof);
4548  stack((yyvsp[-4])).copy_to_operands(stack((yyvsp[0])));
4549 
4550  (yyvsp[-3])=merge((yyvsp[-2]), (yyvsp[-3]));
4551 
4552  // the symbol has to be visible during initialization
4553  init((yyval), ID_declaration);
4554  stack((yyval)).type().swap(stack((yyvsp[-4])));
4555  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-3])));
4556  // add the initializer
4557  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4558  }
4559 #line 4560 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4560  break;
4561 
4562  case 156:
4563 #line 1011 "parser.y" /* yacc.c:1646 */
4564  {
4565  // type attribute goes into declarator
4566  (yyvsp[0])=merge((yyvsp[0]), (yyvsp[-2]));
4567  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1]));
4568  PARSER.add_declarator(stack((yyvsp[-4])), stack((yyvsp[-1])));
4569  }
4570 #line 4571 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4571  break;
4572 
4573  case 157:
4574 #line 1018 "parser.y" /* yacc.c:1646 */
4575  {
4576  // add in the initializer
4577  (yyval)=(yyvsp[-6]);
4578  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4579  }
4580 #line 4581 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4581  break;
4582 
4583  case 169:
4584 #line 1044 "parser.y" /* yacc.c:1646 */
4585  {
4586  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4587  }
4588 #line 4589 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4589  break;
4590 
4591  case 171:
4592 #line 1049 "parser.y" /* yacc.c:1646 */
4593  {
4594  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4595  }
4596 #line 4597 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4597  break;
4598 
4599  case 172:
4600 #line 1053 "parser.y" /* yacc.c:1646 */
4601  {
4602  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4603  }
4604 #line 4605 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4605  break;
4606 
4607  case 174:
4608 #line 1061 "parser.y" /* yacc.c:1646 */
4609  {
4610  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4611  }
4612 #line 4613 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4613  break;
4614 
4615  case 175:
4616 #line 1068 "parser.y" /* yacc.c:1646 */
4617  {
4618  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4619  }
4620 #line 4621 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4621  break;
4622 
4623  case 177:
4624 #line 1076 "parser.y" /* yacc.c:1646 */
4625  {
4626  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4627  }
4628 #line 4629 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4629  break;
4630 
4631  case 180:
4632 #line 1087 "parser.y" /* yacc.c:1646 */
4633  { (yyval)=(yyvsp[0]); set((yyval), ID_atomic); }
4634 #line 4635 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4635  break;
4636 
4637  case 181:
4638 #line 1088 "parser.y" /* yacc.c:1646 */
4639  { (yyval)=(yyvsp[0]); set((yyval), ID_const); }
4640 #line 4641 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4641  break;
4642 
4643  case 182:
4644 #line 1089 "parser.y" /* yacc.c:1646 */
4645  { (yyval)=(yyvsp[0]); set((yyval), ID_restrict); }
4646 #line 4647 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4647  break;
4648 
4649  case 183:
4650 #line 1090 "parser.y" /* yacc.c:1646 */
4651  { (yyval)=(yyvsp[0]); set((yyval), ID_volatile); }
4652 #line 4653 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4653  break;
4654 
4655  case 184:
4656 #line 1091 "parser.y" /* yacc.c:1646 */
4657  { (yyval)=(yyvsp[0]); set((yyval), ID_cprover_atomic); }
4658 #line 4659 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4659  break;
4660 
4661  case 185:
4662 #line 1092 "parser.y" /* yacc.c:1646 */
4663  { (yyval)=(yyvsp[0]); set((yyval), ID_ptr32); }
4664 #line 4665 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4665  break;
4666 
4667  case 186:
4668 #line 1093 "parser.y" /* yacc.c:1646 */
4669  { (yyval)=(yyvsp[0]); set((yyval), ID_ptr64); }
4670 #line 4671 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4671  break;
4672 
4673  case 187:
4674 #line 1094 "parser.y" /* yacc.c:1646 */
4675  { (yyval)=(yyvsp[-3]); set((yyval), ID_msc_based); mto((yyval), (yyvsp[-1])); }
4676 #line 4677 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4677  break;
4678 
4679  case 189:
4680 #line 1100 "parser.y" /* yacc.c:1646 */
4681  { (yyval) = (yyvsp[-3]);
4682  stack((yyval)).id(ID_aligned);
4683  stack((yyval)).set(ID_size, stack((yyvsp[-1])));
4684  }
4685 #line 4686 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4686  break;
4687 
4688  case 190:
4689 #line 1105 "parser.y" /* yacc.c:1646 */
4690  { (yyval) = (yyvsp[-3]);
4691  stack((yyval)).id(ID_aligned);
4692  stack((yyvsp[-1])).set(ID_type_arg, stack((yyvsp[-1])));
4693  }
4694 #line 4695 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4695  break;
4696 
4697  case 197:
4698 #line 1125 "parser.y" /* yacc.c:1646 */
4699  {
4700  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4701  }
4702 #line 4703 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4703  break;
4704 
4705  case 198:
4706 #line 1132 "parser.y" /* yacc.c:1646 */
4707  {
4708  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4709  }
4710 #line 4711 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4711  break;
4712 
4713  case 199:
4714 #line 1136 "parser.y" /* yacc.c:1646 */
4715  {
4716  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4717  }
4718 #line 4719 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4719  break;
4720 
4721  case 200:
4722 #line 1140 "parser.y" /* yacc.c:1646 */
4723  {
4724  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4725  }
4726 #line 4727 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4727  break;
4728 
4729  case 201:
4730 #line 1144 "parser.y" /* yacc.c:1646 */
4731  {
4732  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4733  }
4734 #line 4735 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4735  break;
4736 
4737  case 202:
4738 #line 1151 "parser.y" /* yacc.c:1646 */
4739  {
4740  (yyval)=merge((yyvsp[-1]), (yyvsp[0])); // type attribute
4741  }
4742 #line 4743 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4743  break;
4744 
4745  case 203:
4746 #line 1155 "parser.y" /* yacc.c:1646 */
4747  {
4748  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4749  }
4750 #line 4751 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4751  break;
4752 
4753  case 204:
4754 #line 1159 "parser.y" /* yacc.c:1646 */
4755  {
4756  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4757  }
4758 #line 4759 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4759  break;
4760 
4761  case 205:
4762 #line 1163 "parser.y" /* yacc.c:1646 */
4763  {
4764  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4765  }
4766 #line 4767 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4767  break;
4768 
4769  case 206:
4770 #line 1171 "parser.y" /* yacc.c:1646 */
4771  {
4772  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4773  }
4774 #line 4775 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4775  break;
4776 
4777  case 207:
4778 #line 1175 "parser.y" /* yacc.c:1646 */
4779  {
4780  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4781  }
4782 #line 4783 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4783  break;
4784 
4785  case 208:
4786 #line 1179 "parser.y" /* yacc.c:1646 */
4787  {
4788  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4789  }
4790 #line 4791 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4791  break;
4792 
4793  case 210:
4794 #line 1188 "parser.y" /* yacc.c:1646 */
4795  {
4796  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4797  }
4798 #line 4799 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4799  break;
4800 
4801  case 211:
4802 #line 1192 "parser.y" /* yacc.c:1646 */
4803  {
4804  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4805  }
4806 #line 4807 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4807  break;
4808 
4809  case 212:
4810 #line 1199 "parser.y" /* yacc.c:1646 */
4811  {
4812  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4813  }
4814 #line 4815 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4815  break;
4816 
4817  case 213:
4818 #line 1203 "parser.y" /* yacc.c:1646 */
4819  {
4820  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4821  }
4822 #line 4823 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4823  break;
4824 
4825  case 214:
4826 #line 1207 "parser.y" /* yacc.c:1646 */
4827  {
4828  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4829  }
4830 #line 4831 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4831  break;
4832 
4833  case 215:
4834 #line 1214 "parser.y" /* yacc.c:1646 */
4835  {
4836  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4837  }
4838 #line 4839 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4839  break;
4840 
4841  case 216:
4842 #line 1218 "parser.y" /* yacc.c:1646 */
4843  {
4844  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4845  }
4846 #line 4847 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4847  break;
4848 
4849  case 217:
4850 #line 1222 "parser.y" /* yacc.c:1646 */
4851  {
4852  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4853  }
4854 #line 4855 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4855  break;
4856 
4857  case 218:
4858 #line 1229 "parser.y" /* yacc.c:1646 */
4859  {
4860  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4861  }
4862 #line 4863 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4863  break;
4864 
4865  case 219:
4866 #line 1233 "parser.y" /* yacc.c:1646 */
4867  {
4868  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4869  }
4870 #line 4871 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4871  break;
4872 
4873  case 220:
4874 #line 1237 "parser.y" /* yacc.c:1646 */
4875  {
4876  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4877  }
4878 #line 4879 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4879  break;
4880 
4881  case 221:
4882 #line 1244 "parser.y" /* yacc.c:1646 */
4883  {
4884  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4885  }
4886 #line 4887 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4887  break;
4888 
4889  case 222:
4890 #line 1248 "parser.y" /* yacc.c:1646 */
4891  {
4892  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4893  }
4894 #line 4895 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4895  break;
4896 
4897  case 223:
4898 #line 1252 "parser.y" /* yacc.c:1646 */
4899  {
4900  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4901  }
4902 #line 4903 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4903  break;
4904 
4905  case 224:
4906 #line 1259 "parser.y" /* yacc.c:1646 */
4907  { (yyval) = (yyvsp[-3]);
4908  stack((yyval)).id(ID_typeof);
4909  mto((yyval), (yyvsp[-1]));
4910  }
4911 #line 4912 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4912  break;
4913 
4914  case 225:
4915 #line 1264 "parser.y" /* yacc.c:1646 */
4916  { (yyval) = (yyvsp[-3]);
4917  stack((yyval)).id(ID_typeof);
4918  stack((yyval)).set(ID_type_arg, stack((yyvsp[-1])));
4919  }
4920 #line 4921 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4921  break;
4922 
4923  case 227:
4924 #line 1273 "parser.y" /* yacc.c:1646 */
4925  {
4926  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4927  }
4928 #line 4929 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4929  break;
4930 
4931  case 228:
4932 #line 1277 "parser.y" /* yacc.c:1646 */
4933  {
4934  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4935  }
4936 #line 4937 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4937  break;
4938 
4939  case 229:
4940 #line 1281 "parser.y" /* yacc.c:1646 */
4941  {
4942  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4943  }
4944 #line 4945 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4945  break;
4946 
4947  case 230:
4948 #line 1288 "parser.y" /* yacc.c:1646 */
4949  {
4950  (yyval)=(yyvsp[-3]);
4951  stack((yyval)).id(ID_atomic_type_specifier);
4952  stack_type((yyval)).subtype()=stack_type((yyvsp[-1]));
4953  }
4954 #line 4955 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4955  break;
4956 
4957  case 232:
4958 #line 1298 "parser.y" /* yacc.c:1646 */
4959  {
4960  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4961  }
4962 #line 4963 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4963  break;
4964 
4965  case 233:
4966 #line 1302 "parser.y" /* yacc.c:1646 */
4967  {
4968  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4969  }
4970 #line 4971 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4971  break;
4972 
4973  case 234:
4974 #line 1306 "parser.y" /* yacc.c:1646 */
4975  {
4976  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4977  }
4978 #line 4979 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4979  break;
4980 
4981  case 235:
4982 #line 1313 "parser.y" /* yacc.c:1646 */
4983  {
4984  stack((yyval)).id(stack((yyval)).get(ID_identifier));
4985  }
4986 #line 4987 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4987  break;
4988 
4989  case 236:
4990 #line 1317 "parser.y" /* yacc.c:1646 */
4991  {
4992  stack((yyval)).id(stack((yyval)).get(ID_identifier));
4993  }
4994 #line 4995 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4995  break;
4996 
4997  case 237:
4998 #line 1321 "parser.y" /* yacc.c:1646 */
4999  {
5000  stack((yyval)).id(ID_restrict);
5001  }
5002 #line 5003 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5003  break;
5004 
5005  case 239:
5006 #line 1329 "parser.y" /* yacc.c:1646 */
5007  {
5008  (yyval)=(yyvsp[-3]); mto((yyval), (yyvsp[-1]));
5009  }
5010 #line 5011 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5011  break;
5012 
5013  case 240:
5014 #line 1333 "parser.y" /* yacc.c:1646 */
5015  {
5016  (yyval)=(yyvsp[-3]); mto((yyval), (yyvsp[-1]));
5017  }
5018 #line 5019 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5019  break;
5020 
5021  case 241:
5022 #line 1337 "parser.y" /* yacc.c:1646 */
5023  {
5024  (yyval)=(yyvsp[-5]); mto((yyval), (yyvsp[-3])); mto((yyval), (yyvsp[-1]));
5025  }
5026 #line 5027 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5027  break;
5028 
5029  case 242:
5030 #line 1341 "parser.y" /* yacc.c:1646 */
5031  {
5032  (yyval)=(yyvsp[-9]); mto((yyval), (yyvsp[-7])); mto((yyval), (yyvsp[-5])); mto((yyval), (yyvsp[-3])); mto((yyval), (yyvsp[-1]));
5033  }
5034 #line 5035 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5035  break;
5036 
5037  case 243:
5038 #line 1344 "parser.y" /* yacc.c:1646 */
5039  { init((yyval), ID_nil); }
5040 #line 5041 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5041  break;
5042 
5043  case 244:
5044 #line 1349 "parser.y" /* yacc.c:1646 */
5045  {
5046  init((yyval)); mto((yyval), (yyvsp[0]));
5047  }
5048 #line 5049 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5049  break;
5050 
5051  case 245:
5052 #line 1353 "parser.y" /* yacc.c:1646 */
5053  {
5054  (yyval)=(yyvsp[-1]); mto((yyval), (yyvsp[0]));
5055  }
5056 #line 5057 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5057  break;
5058 
5059  case 246:
5060 #line 1360 "parser.y" /* yacc.c:1646 */
5061  {
5062  (yyval)=(yyvsp[-3]); set((yyval), ID_msc_declspec);
5063  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
5064  }
5065 #line 5066 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5066  break;
5067 
5068  case 247:
5069 #line 1365 "parser.y" /* yacc.c:1646 */
5070  {
5071  (yyval)=(yyvsp[-2]); set((yyval), ID_msc_declspec);
5072  }
5073 #line 5074 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5074  break;
5075 
5076  case 248:
5077 #line 1372 "parser.y" /* yacc.c:1646 */
5078  {
5079  init((yyval), ID_nil);
5080  }
5081 #line 5082 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5082  break;
5083 
5084  case 250:
5085 #line 1379 "parser.y" /* yacc.c:1646 */
5086  { (yyval)=(yyvsp[0]); set((yyval), ID_typedef); }
5087 #line 5088 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5088  break;
5089 
5090  case 251:
5091 #line 1380 "parser.y" /* yacc.c:1646 */
5092  { (yyval)=(yyvsp[0]); set((yyval), ID_extern); }
5093 #line 5094 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5094  break;
5095 
5096  case 252:
5097 #line 1381 "parser.y" /* yacc.c:1646 */
5098  { (yyval)=(yyvsp[0]); set((yyval), ID_static); }
5099 #line 5100 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5100  break;
5101 
5102  case 253:
5103 #line 1382 "parser.y" /* yacc.c:1646 */
5104  { (yyval)=(yyvsp[0]); set((yyval), ID_auto); }
5105 #line 5106 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5106  break;
5107 
5108  case 254:
5109 #line 1383 "parser.y" /* yacc.c:1646 */
5110  { (yyval)=(yyvsp[0]); set((yyval), ID_register); }
5111 #line 5112 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5112  break;
5113 
5114  case 255:
5115 #line 1384 "parser.y" /* yacc.c:1646 */
5116  { (yyval)=(yyvsp[0]); set((yyval), ID_inline); }
5117 #line 5118 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5118  break;
5119 
5120  case 256:
5121 #line 1385 "parser.y" /* yacc.c:1646 */
5122  { (yyval)=(yyvsp[0]); set((yyval), ID_thread_local); }
5123 #line 5124 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5124  break;
5125 
5126  case 257:
5127 #line 1386 "parser.y" /* yacc.c:1646 */
5128  { (yyval)=(yyvsp[0]); set((yyval), ID_asm); }
5129 #line 5130 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5130  break;
5131 
5132  case 258:
5133 #line 1387 "parser.y" /* yacc.c:1646 */
5134  { (yyval)=(yyvsp[0]); }
5135 #line 5136 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5136  break;
5137 
5138  case 259:
5139 #line 1391 "parser.y" /* yacc.c:1646 */
5140  { (yyval)=(yyvsp[0]); set((yyval), ID_int); }
5141 #line 5142 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5142  break;
5143 
5144  case 260:
5145 #line 1392 "parser.y" /* yacc.c:1646 */
5146  { (yyval)=(yyvsp[0]); set((yyval), ID_int8); }
5147 #line 5148 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5148  break;
5149 
5150  case 261:
5151 #line 1393 "parser.y" /* yacc.c:1646 */
5152  { (yyval)=(yyvsp[0]); set((yyval), ID_int16); }
5153 #line 5154 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5154  break;
5155 
5156  case 262:
5157 #line 1394 "parser.y" /* yacc.c:1646 */
5158  { (yyval)=(yyvsp[0]); set((yyval), ID_int32); }
5159 #line 5160 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5160  break;
5161 
5162  case 263:
5163 #line 1395 "parser.y" /* yacc.c:1646 */
5164  { (yyval)=(yyvsp[0]); set((yyval), ID_int64); }
5165 #line 5166 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5166  break;
5167 
5168  case 264:
5169 #line 1396 "parser.y" /* yacc.c:1646 */
5170  { (yyval)=(yyvsp[0]); set((yyval), ID_char); }
5171 #line 5172 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5172  break;
5173 
5174  case 265:
5175 #line 1397 "parser.y" /* yacc.c:1646 */
5176  { (yyval)=(yyvsp[0]); set((yyval), ID_short); }
5177 #line 5178 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5178  break;
5179 
5180  case 266:
5181 #line 1398 "parser.y" /* yacc.c:1646 */
5182  { (yyval)=(yyvsp[0]); set((yyval), ID_long); }
5183 #line 5184 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5184  break;
5185 
5186  case 267:
5187 #line 1399 "parser.y" /* yacc.c:1646 */
5188  { (yyval)=(yyvsp[0]); set((yyval), ID_float); }
5189 #line 5190 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5190  break;
5191 
5192  case 268:
5193 #line 1400 "parser.y" /* yacc.c:1646 */
5194  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float16); }
5195 #line 5196 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5196  break;
5197 
5198  case 269:
5199 #line 1401 "parser.y" /* yacc.c:1646 */
5200  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float32); }
5201 #line 5202 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5202  break;
5203 
5204  case 270:
5205 #line 1402 "parser.y" /* yacc.c:1646 */
5206  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float32x); }
5207 #line 5208 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5208  break;
5209 
5210  case 271:
5211 #line 1403 "parser.y" /* yacc.c:1646 */
5212  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float64); }
5213 #line 5214 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5214  break;
5215 
5216  case 272:
5217 #line 1404 "parser.y" /* yacc.c:1646 */
5218  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float64x); }
5219 #line 5220 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5220  break;
5221 
5222  case 273:
5223 #line 1405 "parser.y" /* yacc.c:1646 */
5224  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float80); }
5225 #line 5226 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5226  break;
5227 
5228  case 274:
5229 #line 1406 "parser.y" /* yacc.c:1646 */
5230  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float128); }
5231 #line 5232 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5232  break;
5233 
5234  case 275:
5235 #line 1407 "parser.y" /* yacc.c:1646 */
5236  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float128x); }
5237 #line 5238 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5238  break;
5239 
5240  case 276:
5241 #line 1408 "parser.y" /* yacc.c:1646 */
5242  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_int128); }
5243 #line 5244 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5244  break;
5245 
5246  case 277:
5247 #line 1409 "parser.y" /* yacc.c:1646 */
5248  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal32); }
5249 #line 5250 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5250  break;
5251 
5252  case 278:
5253 #line 1410 "parser.y" /* yacc.c:1646 */
5254  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal64); }
5255 #line 5256 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5256  break;
5257 
5258  case 279:
5259 #line 1411 "parser.y" /* yacc.c:1646 */
5260  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal128); }
5261 #line 5262 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5262  break;
5263 
5264  case 280:
5265 #line 1412 "parser.y" /* yacc.c:1646 */
5266  { (yyval)=(yyvsp[0]); set((yyval), ID_double); }
5267 #line 5268 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5268  break;
5269 
5270  case 281:
5271 #line 1413 "parser.y" /* yacc.c:1646 */
5272  { (yyval)=(yyvsp[0]); set((yyval), ID_signed); }
5273 #line 5274 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5274  break;
5275 
5276  case 282:
5277 #line 1414 "parser.y" /* yacc.c:1646 */
5278  { (yyval)=(yyvsp[0]); set((yyval), ID_unsigned); }
5279 #line 5280 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5280  break;
5281 
5282  case 283:
5283 #line 1415 "parser.y" /* yacc.c:1646 */
5284  { (yyval)=(yyvsp[0]); set((yyval), ID_void); }
5285 #line 5286 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5286  break;
5287 
5288  case 284:
5289 #line 1416 "parser.y" /* yacc.c:1646 */
5290  { (yyval)=(yyvsp[0]); set((yyval), ID_c_bool); }
5291 #line 5292 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5292  break;
5293 
5294  case 285:
5295 #line 1417 "parser.y" /* yacc.c:1646 */
5296  { (yyval)=(yyvsp[0]); set((yyval), ID_complex); }
5297 #line 5298 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5298  break;
5299 
5300  case 286:
5301 #line 1419 "parser.y" /* yacc.c:1646 */
5302  {
5303  (yyval)=(yyvsp[-3]);
5304  set((yyval), ID_custom_bv);
5305  stack((yyval)).add(ID_size).swap(stack((yyvsp[-1])));
5306  }
5307 #line 5308 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5308  break;
5309 
5310  case 287:
5311 #line 1425 "parser.y" /* yacc.c:1646 */
5312  {
5313  (yyval)=(yyvsp[-6]);
5314  set((yyval), ID_custom_floatbv);
5315  stack((yyval)).add(ID_size).swap(stack((yyvsp[-4])));
5316  stack((yyval)).add(ID_f).swap(stack((yyvsp[-1])));
5317  }
5318 #line 5319 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5319  break;
5320 
5321  case 288:
5322 #line 1432 "parser.y" /* yacc.c:1646 */
5323  {
5324  (yyval)=(yyvsp[-6]);
5325  set((yyval), ID_custom_fixedbv);
5326  stack((yyval)).add(ID_size).swap(stack((yyvsp[-4])));
5327  stack((yyval)).add(ID_f).swap(stack((yyvsp[-1])));
5328  }
5329 #line 5330 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5330  break;
5331 
5332  case 289:
5333 #line 1438 "parser.y" /* yacc.c:1646 */
5334  { (yyval)=(yyvsp[0]); set((yyval), ID_proper_bool); }
5335 #line 5336 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5336  break;
5337 
5338  case 293:
5339 #line 1449 "parser.y" /* yacc.c:1646 */
5340  { (yyval)=(yyvsp[-3]); stack_type((yyval)).subtype().swap(stack((yyvsp[-2]))); }
5341 #line 5342 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5342  break;
5343 
5344  case 294:
5345 #line 1453 "parser.y" /* yacc.c:1646 */
5346  {
5347  init((yyval));
5348  if(!PARSER.pragma_pack.empty() &&
5349  PARSER.pragma_pack.back().is_one())
5350  set((yyval), ID_packed);
5351  }
5352 #line 5353 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5353  break;
5354 
5355  case 295:
5356 #line 1465 "parser.y" /* yacc.c:1646 */
5357  {
5358  // an anon struct/union with body
5359  }
5360 #line 5361 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5361  break;
5362 
5363  case 296:
5364 #line 1471 "parser.y" /* yacc.c:1646 */
5365  {
5366  // save the members
5367  stack((yyvsp[-8])).add(ID_components).get_sub().swap(
5368  (irept::subt &)stack((yyvsp[-3])).operands());
5369 
5370  // throw in the gcc attributes
5371  (yyval)=merge((yyvsp[-8]), merge((yyvsp[-7]), merge((yyvsp[-1]), (yyvsp[0]))));
5372  }
5373 #line 5374 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5374  break;
5375 
5376  case 297:
5377 #line 1483 "parser.y" /* yacc.c:1646 */
5378  {
5379  // A struct/union with tag and body.
5380  PARSER.add_tag_with_body(stack((yyvsp[0])));
5381  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[0])));
5382  }
5383 #line 5384 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5384  break;
5385 
5386  case 298:
5387 #line 1491 "parser.y" /* yacc.c:1646 */
5388  {
5389  // save the members
5390  stack((yyvsp[-9])).add(ID_components).get_sub().swap(
5391  (irept::subt &)stack((yyvsp[-3])).operands());
5392 
5393  // throw in the gcc attributes
5394  (yyval)=merge((yyvsp[-9]), merge((yyvsp[-8]), merge((yyvsp[-1]), (yyvsp[0]))));
5395  }
5396 #line 5397 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5397  break;
5398 
5399  case 299:
5400 #line 1503 "parser.y" /* yacc.c:1646 */
5401  {
5402  // a struct/union with tag but without body
5403  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[0])));
5404  }
5405 #line 5406 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5406  break;
5407 
5408  case 300:
5409 #line 1508 "parser.y" /* yacc.c:1646 */
5410  {
5411  stack((yyvsp[-5])).set(ID_components, ID_nil);
5412  // type attributes
5413  (yyval)=merge((yyvsp[-5]), merge((yyvsp[-4]), (yyvsp[0])));
5414  }
5415 #line 5416 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5416  break;
5417 
5418  case 301:
5419 #line 1517 "parser.y" /* yacc.c:1646 */
5420  { (yyval)=(yyvsp[0]); set((yyval), ID_struct); }
5421 #line 5422 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5422  break;
5423 
5424  case 302:
5425 #line 1519 "parser.y" /* yacc.c:1646 */
5426  { (yyval)=(yyvsp[0]); set((yyval), ID_union); }
5427 #line 5428 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5428  break;
5429 
5430  case 303:
5431 #line 1524 "parser.y" /* yacc.c:1646 */
5432  { (yyval)=(yyvsp[0]); set((yyval), ID_packed); }
5433 #line 5434 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5434  break;
5435 
5436  case 304:
5437 #line 1526 "parser.y" /* yacc.c:1646 */
5438  { (yyval)=(yyvsp[0]); set((yyval), ID_transparent_union); }
5439 #line 5440 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5440  break;
5441 
5442  case 305:
5443 #line 1528 "parser.y" /* yacc.c:1646 */
5444  { (yyval)=(yyvsp[-3]); set((yyval), ID_vector); stack((yyval)).add(ID_size)=stack((yyvsp[-1])); }
5445 #line 5446 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5446  break;
5447 
5448  case 306:
5449 #line 1530 "parser.y" /* yacc.c:1646 */
5450  { (yyval)=(yyvsp[0]); set((yyval), ID_aligned); }
5451 #line 5452 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5452  break;
5453 
5454  case 307:
5455 #line 1532 "parser.y" /* yacc.c:1646 */
5456  { (yyval)=(yyvsp[-3]); set((yyval), ID_aligned); stack((yyval)).set(ID_size, stack((yyvsp[-1]))); }
5457 #line 5458 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5458  break;
5459 
5460  case 308:
5461 #line 1534 "parser.y" /* yacc.c:1646 */
5462  { (yyval)=(yyvsp[-3]); set((yyval), ID_gcc_attribute_mode); stack((yyval)).set(ID_size, stack((yyvsp[-1])).get(ID_identifier)); }
5463 #line 5464 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5464  break;
5465 
5466  case 309:
5467 #line 1536 "parser.y" /* yacc.c:1646 */
5468  { (yyval)=(yyvsp[0]); set((yyval), ID_static); }
5469 #line 5470 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5470  break;
5471 
5472  case 310:
5473 #line 1538 "parser.y" /* yacc.c:1646 */
5474  { (yyval)=(yyvsp[0]); set((yyval), ID_weak); }
5475 #line 5476 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5476  break;
5477 
5478  case 311:
5479 #line 1540 "parser.y" /* yacc.c:1646 */
5480  { (yyval)=(yyvsp[-3]); set((yyval), ID_alias); mto((yyval), (yyvsp[-1])); }
5481 #line 5482 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5482  break;
5483 
5484  case 312:
5485 #line 1542 "parser.y" /* yacc.c:1646 */
5486  { (yyval)=(yyvsp[-3]); set((yyval), ID_section); mto((yyval), (yyvsp[-1])); }
5487 #line 5488 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5488  break;
5489 
5490  case 313:
5491 #line 1544 "parser.y" /* yacc.c:1646 */
5492  { (yyval)=(yyvsp[0]); set((yyval), ID_noreturn); }
5493 #line 5494 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5494  break;
5495 
5496  case 314:
5497 #line 1546 "parser.y" /* yacc.c:1646 */
5498  { (yyval)=(yyvsp[0]); set((yyval), ID_constructor); }
5499 #line 5500 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5500  break;
5501 
5502  case 315:
5503 #line 1548 "parser.y" /* yacc.c:1646 */
5504  { (yyval)=(yyvsp[0]); set((yyval), ID_destructor); }
5505 #line 5506 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5506  break;
5507 
5508  case 316:
5509 #line 1550 "parser.y" /* yacc.c:1646 */
5510  { (yyval)=(yyvsp[0]); set((yyval), ID_used); }
5511 #line 5512 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5512  break;
5513 
5514  case 317:
5515 #line 1552 "parser.y" /* yacc.c:1646 */
5516  { (yyval)=(yyvsp[0]); set((yyval), ID_always_inline); }
5517 #line 5518 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5518  break;
5519 
5520  case 318:
5521 #line 1557 "parser.y" /* yacc.c:1646 */
5522  {
5523  init((yyval));
5524  }
5525 #line 5526 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5526  break;
5527 
5528  case 321:
5529 #line 1566 "parser.y" /* yacc.c:1646 */
5530  {
5531  (yyval)=merge((yyvsp[-2]), (yyvsp[0]));
5532  }
5533 #line 5534 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5534  break;
5535 
5536  case 322:
5537 #line 1573 "parser.y" /* yacc.c:1646 */
5538  { (yyval)=(yyvsp[-2]); }
5539 #line 5540 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5540  break;
5541 
5542  case 323:
5543 #line 1575 "parser.y" /* yacc.c:1646 */
5544  { (yyval)=(yyvsp[0]); set((yyval), ID_noreturn); }
5545 #line 5546 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5546  break;
5547 
5548  case 324:
5549 #line 1580 "parser.y" /* yacc.c:1646 */
5550  {
5551  init((yyval));
5552  }
5553 #line 5554 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5554  break;
5555 
5556  case 327:
5557 #line 1589 "parser.y" /* yacc.c:1646 */
5558  {
5559  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5560  }
5561 #line 5562 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5562  break;
5563 
5564  case 328:
5565 #line 1596 "parser.y" /* yacc.c:1646 */
5566  {
5567  init((yyval), ID_declaration_list);
5568  }
5569 #line 5570 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5570  break;
5571 
5572  case 330:
5573 #line 1604 "parser.y" /* yacc.c:1646 */
5574  {
5575  init((yyval), ID_declaration_list);
5576  mto((yyval), (yyvsp[0]));
5577  }
5578 #line 5579 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5579  break;
5580 
5581  case 331:
5582 #line 1609 "parser.y" /* yacc.c:1646 */
5583  {
5584  (yyval)=(yyvsp[-1]);
5585  mto((yyval), (yyvsp[0]));
5586  }
5587 #line 5588 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5588  break;
5589 
5590  case 334:
5591 #line 1619 "parser.y" /* yacc.c:1646 */
5592  {
5593  init((yyval), ID_declaration);
5594  }
5595 #line 5596 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5596  break;
5597 
5598  case 336:
5599 #line 1632 "parser.y" /* yacc.c:1646 */
5600  {
5601  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2]));
5602 
5603  init((yyval), ID_declaration);
5604  to_ansi_c_declaration(stack((yyval))).set_is_member(true);
5605  stack((yyval)).type().swap(stack((yyvsp[-1])));
5606  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5607  }
5608 #line 5609 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5609  break;
5610 
5611  case 337:
5612 #line 1641 "parser.y" /* yacc.c:1646 */
5613  {
5614  (yyval)=(yyvsp[-2]);
5615  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5616  }
5617 #line 5618 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5618  break;
5619 
5620  case 338:
5621 #line 1651 "parser.y" /* yacc.c:1646 */
5622  {
5623  if(!PARSER.pragma_pack.empty() &&
5624  !PARSER.pragma_pack.back().is_zero())
5625  {
5626  // communicate #pragma pack(n) alignment constraints by
5627  // by both setting packing AND alignment; see padding.cpp
5628  // for more details
5629  init((yyval));
5630  set((yyval), ID_packed);
5631  (yyvsp[-1])=merge((yyvsp[-1]), (yyval));
5632 
5633  init((yyval));
5634  set((yyval), ID_aligned);
5635  stack((yyval)).set(ID_size, PARSER.pragma_pack.back());
5636  (yyvsp[-1])=merge((yyvsp[-1]), (yyval));
5637  }
5638 
5639  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2]));
5640 
5641  init((yyval), ID_declaration);
5642  to_ansi_c_declaration(stack((yyval))).set_is_member(true);
5643  stack((yyval)).type().swap(stack((yyvsp[-1])));
5644  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5645  }
5646 #line 5647 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5647  break;
5648 
5649  case 339:
5650 #line 1676 "parser.y" /* yacc.c:1646 */
5651  {
5652  (yyval)=(yyvsp[-2]);
5653  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5654  }
5655 #line 5656 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5656  break;
5657 
5658  case 340:
5659 #line 1684 "parser.y" /* yacc.c:1646 */
5660  {
5661  (yyval)=(yyvsp[-2]);
5662 
5663  if(stack((yyvsp[-1])).is_not_nil())
5664  make_subtype((yyval), (yyvsp[-1]));
5665 
5666  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5667  (yyval)=merge((yyvsp[0]), (yyval));
5668  }
5669 #line 5670 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5670  break;
5671 
5672  case 341:
5673 #line 1694 "parser.y" /* yacc.c:1646 */
5674  {
5675  init((yyval), ID_abstract);
5676  }
5677 #line 5678 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5678  break;
5679 
5680  case 342:
5681 #line 1698 "parser.y" /* yacc.c:1646 */
5682  {
5683  (yyval)=(yyvsp[-1]);
5684  stack_type((yyval)).subtype()=typet(ID_abstract);
5685 
5686  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5687  (yyval)=merge((yyvsp[0]), (yyval));
5688  }
5689 #line 5690 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5690  break;
5691 
5692  case 343:
5693 #line 1709 "parser.y" /* yacc.c:1646 */
5694  {
5695  (yyval)=(yyvsp[-2]);
5696  if(stack((yyvsp[-1])).is_not_nil())
5697  make_subtype((yyval), (yyvsp[-1]));
5698 
5699  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5700  (yyval)=merge((yyvsp[0]), (yyval));
5701  }
5702 #line 5703 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5703  break;
5704 
5705  case 344:
5706 #line 1718 "parser.y" /* yacc.c:1646 */
5707  {
5708  (yyval)=(yyvsp[-1]);
5709  stack_type((yyval)).subtype()=typet(ID_abstract);
5710 
5711  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5712  (yyval)=merge((yyvsp[0]), (yyval));
5713  }
5714 #line 5715 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5715  break;
5716 
5717  case 345:
5718 #line 1729 "parser.y" /* yacc.c:1646 */
5719  {
5720  init((yyval), ID_nil);
5721  }
5722 #line 5723 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5723  break;
5724 
5725  case 347:
5726 #line 1737 "parser.y" /* yacc.c:1646 */
5727  {
5728  (yyval)=(yyvsp[-1]);
5729  set((yyval), ID_c_bit_field);
5730  stack_type((yyval)).set(ID_size, stack((yyvsp[0])));
5731  stack_type((yyval)).subtype().id(ID_abstract);
5732  }
5733 #line 5734 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5734  break;
5735 
5736  case 348:
5737 #line 1748 "parser.y" /* yacc.c:1646 */
5738  {
5739  // an anon enum
5740  }
5741 #line 5742 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5742  break;
5743 
5744  case 349:
5745 #line 1753 "parser.y" /* yacc.c:1646 */
5746  {
5747  stack((yyvsp[-6])).operands().swap(stack((yyvsp[-2])).operands());
5748  (yyval)=merge((yyvsp[-6]), merge((yyvsp[-5]), (yyvsp[0]))); // throw in the gcc attributes
5749  }
5750 #line 5751 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5751  break;
5752 
5753  case 350:
5754 #line 1760 "parser.y" /* yacc.c:1646 */
5755  {
5756  // an enum with tag
5757  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[0])));
5758  }
5759 #line 5760 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5760  break;
5761 
5762  case 351:
5763 #line 1766 "parser.y" /* yacc.c:1646 */
5764  {
5765  stack((yyvsp[-7])).operands().swap(stack((yyvsp[-2])).operands());
5766  (yyval)=merge((yyvsp[-7]), merge((yyvsp[-6]), (yyvsp[0]))); // throw in the gcc attributes
5767  }
5768 #line 5769 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5769  break;
5770 
5771  case 352:
5772 #line 1774 "parser.y" /* yacc.c:1646 */
5773  {
5774  stack((yyvsp[-3])).id(ID_c_enum_tag); // tag only
5775  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[-1])));
5776  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0]))); // throw in the gcc attributes
5777  }
5778 #line 5779 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5779  break;
5780 
5781  case 353:
5782 #line 1782 "parser.y" /* yacc.c:1646 */
5783  {
5784  (yyval)=(yyvsp[0]);
5785  set((yyval), ID_c_enum);
5786  }
5787 #line 5788 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5788  break;
5789 
5790  case 354:
5791 #line 1790 "parser.y" /* yacc.c:1646 */
5792  {
5793  init((yyval), ID_declaration_list);
5794  }
5795 #line 5796 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5796  break;
5797 
5798  case 356:
5799 #line 1798 "parser.y" /* yacc.c:1646 */
5800  {
5801  init((yyval), ID_declaration_list);
5802  mto((yyval), (yyvsp[0]));
5803  }
5804 #line 5805 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5805  break;
5806 
5807  case 357:
5808 #line 1803 "parser.y" /* yacc.c:1646 */
5809  {
5810  (yyval)=(yyvsp[-2]);
5811  mto((yyval), (yyvsp[0]));
5812  }
5813 #line 5814 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5814  break;
5815 
5816  case 358:
5817 #line 1808 "parser.y" /* yacc.c:1646 */
5818  {
5819  (yyval)=(yyvsp[-1]);
5820  }
5821 #line 5822 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5822  break;
5823 
5824  case 359:
5825 #line 1815 "parser.y" /* yacc.c:1646 */
5826  {
5827  init((yyval), ID_declaration);
5829  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-2])));
5830  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
5831  }
5832 #line 5833 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5833  break;
5834 
5835  case 360:
5836 #line 1825 "parser.y" /* yacc.c:1646 */
5837  {
5838  init((yyval));
5839  stack((yyval)).make_nil();
5840  }
5841 #line 5842 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5842  break;
5843 
5844  case 361:
5845 #line 1830 "parser.y" /* yacc.c:1646 */
5846  {
5847  (yyval)=(yyvsp[0]);
5848  }
5849 #line 5850 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5850  break;
5851 
5852  case 363:
5853 #line 1838 "parser.y" /* yacc.c:1646 */
5854  {
5855  typet tmp(ID_ellipsis);
5856  (yyval)=(yyvsp[-2]);
5857  stack_type((yyval)).move_to_subtypes(tmp);
5858  }
5859 #line 5860 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5860  break;
5861 
5862  case 364:
5863 #line 1847 "parser.y" /* yacc.c:1646 */
5864  {
5865  init((yyval), ID_parameters);
5866  mts((yyval), (yyvsp[0]));
5867  }
5868 #line 5869 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5869  break;
5870 
5871  case 365:
5872 #line 1852 "parser.y" /* yacc.c:1646 */
5873  {
5874  (yyval)=(yyvsp[-2]);
5875  mts((yyval), (yyvsp[0]));
5876  }
5877 #line 5878 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5878  break;
5879 
5880  case 366:
5881 #line 1859 "parser.y" /* yacc.c:1646 */
5882  {
5883  init((yyval), ID_declaration);
5884  stack((yyval)).type()=typet(ID_KnR);
5885  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5886  }
5887 #line 5888 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5888  break;
5889 
5890  case 367:
5891 #line 1868 "parser.y" /* yacc.c:1646 */
5892  {
5893  init((yyval), ID_parameters);
5894  mts((yyval), (yyvsp[0]));
5895  }
5896 #line 5897 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5897  break;
5898 
5899  case 368:
5900 #line 1873 "parser.y" /* yacc.c:1646 */
5901  {
5902  (yyval)=(yyvsp[-2]);
5903  mts((yyval), (yyvsp[0]));
5904  }
5905 #line 5906 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5906  break;
5907 
5908  case 369:
5909 #line 1881 "parser.y" /* yacc.c:1646 */
5910  {
5911  init((yyval), ID_declaration);
5913  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
5914  exprt declarator=exprt(ID_abstract);
5915  PARSER.add_declarator(stack((yyval)), declarator);
5916  }
5917 #line 5918 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5918  break;
5919 
5920  case 370:
5921 #line 1889 "parser.y" /* yacc.c:1646 */
5922  {
5923  init((yyval), ID_declaration);
5925  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5926  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5927  }
5928 #line 5929 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5929  break;
5930 
5931  case 371:
5932 #line 1896 "parser.y" /* yacc.c:1646 */
5933  {
5934  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
5935  init((yyval), ID_declaration);
5937  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
5938  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
5939  }
5940 #line 5941 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5941  break;
5942 
5943  case 372:
5944 #line 1904 "parser.y" /* yacc.c:1646 */
5945  {
5946  // the second tree is really the declarator -- not part
5947  // of the type!
5948  init((yyval), ID_declaration);
5950  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5951  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5952  }
5953 #line 5954 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5954  break;
5955 
5956  case 373:
5957 #line 1913 "parser.y" /* yacc.c:1646 */
5958  {
5959  init((yyval), ID_declaration);
5961  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
5962  exprt declarator=exprt(ID_abstract);
5963  PARSER.add_declarator(stack((yyval)), declarator);
5964  }
5965 #line 5966 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5966  break;
5967 
5968  case 374:
5969 #line 1921 "parser.y" /* yacc.c:1646 */
5970  {
5971  init((yyval), ID_declaration);
5973  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5974  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5975  }
5976 #line 5977 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5977  break;
5978 
5979  case 375:
5980 #line 1928 "parser.y" /* yacc.c:1646 */
5981  {
5982  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
5983  init((yyval), ID_declaration);
5985  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
5986  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
5987  }
5988 #line 5989 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5989  break;
5990 
5991  case 376:
5992 #line 1936 "parser.y" /* yacc.c:1646 */
5993  {
5994  init((yyval), ID_declaration);
5996  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
5997  exprt declarator=exprt(ID_abstract);
5998  PARSER.add_declarator(stack((yyval)), declarator);
5999  }
6000 #line 6001 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6001  break;
6002 
6003  case 377:
6004 #line 1944 "parser.y" /* yacc.c:1646 */
6005  {
6006  init((yyval), ID_declaration);
6008  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6009  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6010  }
6011 #line 6012 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6012  break;
6013 
6014  case 378:
6015 #line 1951 "parser.y" /* yacc.c:1646 */
6016  {
6017  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6018  init((yyval), ID_declaration);
6020  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6021  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6022  }
6023 #line 6024 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6024  break;
6025 
6026  case 379:
6027 #line 1959 "parser.y" /* yacc.c:1646 */
6028  {
6029  // the second tree is really the declarator -- not part of the type!
6030  init((yyval), ID_declaration);
6032  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6033  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6034  }
6035 #line 6036 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6036  break;
6037 
6038  case 380:
6039 #line 1967 "parser.y" /* yacc.c:1646 */
6040  {
6041  init((yyval), ID_declaration);
6043  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6044  exprt declarator=exprt(ID_abstract);
6045  PARSER.add_declarator(stack((yyval)), declarator);
6046  }
6047 #line 6048 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6048  break;
6049 
6050  case 381:
6051 #line 1975 "parser.y" /* yacc.c:1646 */
6052  {
6053  init((yyval), ID_declaration);
6055  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6056  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6057  }
6058 #line 6059 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6059  break;
6060 
6061  case 382:
6062 #line 1982 "parser.y" /* yacc.c:1646 */
6063  {
6064  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6065  init((yyval), ID_declaration);
6067  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6068  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6069  }
6070 #line 6071 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6071  break;
6072 
6073  case 385:
6074 #line 1998 "parser.y" /* yacc.c:1646 */
6075  {
6076  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
6077  }
6078 #line 6079 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6079  break;
6080 
6081  case 386:
6082 #line 2002 "parser.y" /* yacc.c:1646 */
6083  {
6084  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
6085  make_subtype((yyval), (yyvsp[0]));
6086  }
6087 #line 6088 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6088  break;
6089 
6090  case 387:
6091 #line 2007 "parser.y" /* yacc.c:1646 */
6092  {
6093  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
6094  }
6095 #line 6096 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6096  break;
6097 
6098  case 388:
6099 #line 2011 "parser.y" /* yacc.c:1646 */
6100  {
6101  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
6102  make_subtype((yyval), (yyvsp[0]));
6103  }
6104 #line 6105 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6105  break;
6106 
6107  case 389:
6108 #line 2019 "parser.y" /* yacc.c:1646 */
6109  {
6110  init((yyval));
6111  stack((yyval)).make_nil();
6112  }
6113 #line 6114 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6114  break;
6115 
6116  case 390:
6117 #line 2024 "parser.y" /* yacc.c:1646 */
6118  { (yyval) = (yyvsp[0]); }
6119 #line 6120 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6120  break;
6121 
6122  case 392:
6123 #line 2035 "parser.y" /* yacc.c:1646 */
6124  {
6125  (yyval)=(yyvsp[-2]);
6126  set((yyval), ID_initializer_list);
6127  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
6128  }
6129 #line 6130 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6130  break;
6131 
6132  case 393:
6133 #line 2041 "parser.y" /* yacc.c:1646 */
6134  {
6135  (yyval)=(yyvsp[-3]);
6136  set((yyval), ID_initializer_list);
6137  stack((yyval)).operands().swap(stack((yyvsp[-2])).operands());
6138  }
6139 #line 6140 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6140  break;
6141 
6142  case 394:
6143 #line 2050 "parser.y" /* yacc.c:1646 */
6144  {
6145  (yyval)=(yyvsp[0]);
6146  exprt tmp;
6147  tmp.swap(stack((yyval)));
6148  stack((yyval)).clear();
6149  stack((yyval)).move_to_operands(tmp);
6150  }
6151 #line 6152 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6152  break;
6153 
6154  case 395:
6155 #line 2058 "parser.y" /* yacc.c:1646 */
6156  {
6157  (yyval)=(yyvsp[-2]);
6158  mto((yyval), (yyvsp[0]));
6159  }
6160 #line 6161 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6161  break;
6162 
6163  case 397:
6164 #line 2067 "parser.y" /* yacc.c:1646 */
6165  {
6166  init((yyval));
6167  set((yyval), ID_initializer_list);
6168  stack((yyval)).operands().clear();
6169  }
6170 #line 6171 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6171  break;
6172 
6173  case 399:
6174 #line 2077 "parser.y" /* yacc.c:1646 */
6175  {
6176  (yyval)=(yyvsp[-1]);
6177  stack((yyval)).id(ID_designated_initializer);
6178  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-2])));
6179  mto((yyval), (yyvsp[0]));
6180  }
6181 #line 6182 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6182  break;
6183 
6184  case 400:
6185 #line 2085 "parser.y" /* yacc.c:1646 */
6186  {
6187  init((yyval), ID_designated_initializer);
6188  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-1])));
6189  mto((yyval), (yyvsp[0]));
6190  }
6191 #line 6192 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6192  break;
6193 
6194  case 401:
6195 #line 2091 "parser.y" /* yacc.c:1646 */
6196  {
6197  // yet another GCC speciality
6198  (yyval)=(yyvsp[-1]);
6199  stack((yyval)).id(ID_designated_initializer);
6200  exprt designator;
6201  exprt member(ID_member);
6202  member.set(ID_component_name, stack((yyvsp[-2])).get(ID_C_base_name));
6203  designator.move_to_operands(member);
6204  stack((yyval)).add(ID_designator).swap(designator);
6205  mto((yyval), (yyvsp[0]));
6206  }
6207 #line 6208 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6208  break;
6209 
6210  case 402:
6211 #line 2106 "parser.y" /* yacc.c:1646 */
6212  {
6213  init((yyval));
6214  stack((yyvsp[-1])).id(ID_member);
6215  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
6216  mto((yyval), (yyvsp[-1]));
6217  }
6218 #line 6219 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6219  break;
6220 
6221  case 403:
6222 #line 2113 "parser.y" /* yacc.c:1646 */
6223  {
6224  init((yyval));
6225  stack((yyvsp[-2])).id(ID_index);
6226  mto((yyvsp[-2]), (yyvsp[-1]));
6227  mto((yyval), (yyvsp[-2]));
6228  }
6229 #line 6230 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6230  break;
6231 
6232  case 404:
6233 #line 2120 "parser.y" /* yacc.c:1646 */
6234  {
6235  // TODO
6236  init((yyval));
6237  stack((yyvsp[-4])).id(ID_index);
6238  mto((yyvsp[-4]), (yyvsp[-3]));
6239  mto((yyval), (yyvsp[-4]));
6240  }
6241 #line 6242 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6242  break;
6243 
6244  case 405:
6245 #line 2128 "parser.y" /* yacc.c:1646 */
6246  {
6247  (yyval)=(yyvsp[-3]);
6248  stack((yyvsp[-2])).id(ID_index);
6249  mto((yyvsp[-2]), (yyvsp[-1]));
6250  mto((yyval), (yyvsp[-2]));
6251  }
6252 #line 6253 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6253  break;
6254 
6255  case 406:
6256 #line 2135 "parser.y" /* yacc.c:1646 */
6257  {
6258  // TODO
6259  (yyval)=(yyvsp[-5]);
6260  stack((yyvsp[-4])).id(ID_index);
6261  mto((yyvsp[-4]), (yyvsp[-3]));
6262  mto((yyval), (yyvsp[-4]));
6263  }
6264 #line 6265 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6265  break;
6266 
6267  case 407:
6268 #line 2143 "parser.y" /* yacc.c:1646 */
6269  {
6270  (yyval)=(yyvsp[-2]);
6271  stack((yyvsp[-1])).id(ID_member);
6272  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
6273  mto((yyval), (yyvsp[-1]));
6274  }
6275 #line 6276 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6276  break;
6277 
6278  case 421:
6279 #line 2171 "parser.y" /* yacc.c:1646 */
6280  {
6281  init((yyval));
6282  statement((yyval), ID_decl);
6283  mto((yyval), (yyvsp[0]));
6284  }
6285 #line 6286 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6286  break;
6287 
6288  case 422:
6289 #line 2180 "parser.y" /* yacc.c:1646 */
6290  {
6291  /* Only semicolons permitted after the attribute:
6292  https://gcc.gnu.org/onlinedocs/gcc/Label-Attributes.html */
6293  (yyval)=(yyvsp[-2]);
6294  statement((yyval), ID_label);
6295  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-3])).get(ID_C_base_name));
6296  stack((yyval)).set(ID_label, identifier);
6297  // attribute ignored
6298  statement((yyvsp[-1]), ID_skip);
6299  mto((yyval), (yyvsp[-1]));
6300  }
6301 #line 6302 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6302  break;
6303 
6304  case 423:
6305 #line 2192 "parser.y" /* yacc.c:1646 */
6306  {
6307  (yyval)=(yyvsp[-1]);
6308  statement((yyval), ID_label);
6309  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-2])).get(ID_C_base_name));
6310  stack((yyval)).set(ID_label, identifier);
6311  mto((yyval), (yyvsp[0]));
6312  }
6313 #line 6314 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6314  break;
6315 
6316  case 424:
6317 #line 2200 "parser.y" /* yacc.c:1646 */
6318  {
6319  (yyval)=(yyvsp[-3]);
6320  statement((yyval), ID_switch_case);
6321  mto((yyval), (yyvsp[-2]));
6322  mto((yyval), (yyvsp[0]));
6323  }
6324 #line 6325 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6325  break;
6326 
6327  case 425:
6328 #line 2207 "parser.y" /* yacc.c:1646 */
6329  {
6330  // this is a GCC extension
6331  (yyval)=(yyvsp[-5]);
6332  statement((yyval), ID_gcc_switch_case_range);
6333  mto((yyval), (yyvsp[-4]));
6334  mto((yyval), (yyvsp[-2]));
6335  mto((yyval), (yyvsp[0]));
6336  }
6337 #line 6338 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6338  break;
6339 
6340  case 426:
6341 #line 2216 "parser.y" /* yacc.c:1646 */
6342  {
6343  (yyval)=(yyvsp[-2]);
6344  statement((yyval), ID_switch_case);
6345  stack((yyval)).operands().push_back(nil_exprt());
6346  mto((yyval), (yyvsp[0]));
6347  stack((yyval)).set(ID_default, true);
6348  }
6349 #line 6350 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6350  break;
6351 
6352  case 427:
6353 #line 2227 "parser.y" /* yacc.c:1646 */
6354  {
6355  // attribute ignored
6356  (yyval)=(yyvsp[0]);
6357  }
6358 #line 6359 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6359  break;
6360 
6361  case 428:
6362 #line 2235 "parser.y" /* yacc.c:1646 */
6363  {
6364  (yyval)=(yyvsp[-1]);
6365  statement((yyval), ID_block);
6366  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6367  PARSER.pop_scope();
6368  }
6369 #line 6370 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6370  break;
6371 
6372  case 429:
6373 #line 2242 "parser.y" /* yacc.c:1646 */
6374  {
6375  (yyval)=(yyvsp[-2]);
6376  statement((yyval), ID_block);
6377  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6378  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
6379  PARSER.pop_scope();
6380  }
6381 #line 6382 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6382  break;
6383 
6384  case 430:
6385 #line 2250 "parser.y" /* yacc.c:1646 */
6386  {
6387  (yyval)=(yyvsp[-2]);
6388  statement((yyval), ID_asm);
6389  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6390  mto((yyval), (yyvsp[-1]));
6391  PARSER.pop_scope();
6392  }
6393 #line 6394 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6394  break;
6395 
6396  case 431:
6397 #line 2261 "parser.y" /* yacc.c:1646 */
6398  {
6399  unsigned prefix=++PARSER.current_scope().compound_counter;
6400  PARSER.new_scope(std::to_string(prefix)+"::");
6401  }
6402 #line 6403 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6403  break;
6404 
6405  case 432:
6406 #line 2269 "parser.y" /* yacc.c:1646 */
6407  {
6408  init((yyval));
6409  mto((yyval), (yyvsp[0]));
6410  }
6411 #line 6412 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6412  break;
6413 
6414  case 433:
6415 #line 2274 "parser.y" /* yacc.c:1646 */
6416  {
6417  mto((yyval), (yyvsp[0]));
6418  }
6419 #line 6420 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6420  break;
6421 
6422  case 434:
6423 #line 2281 "parser.y" /* yacc.c:1646 */
6424  {
6425  (yyval)=(yyvsp[0]);
6426 
6427  if(stack((yyvsp[-1])).is_nil())
6428  statement((yyval), ID_skip);
6429  else
6430  {
6431  statement((yyval), ID_expression);
6432  mto((yyval), (yyvsp[-1]));
6433  }
6434  }
6435 #line 6436 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6436  break;
6437 
6438  case 435:
6439 #line 2296 "parser.y" /* yacc.c:1646 */
6440  {
6441  (yyval)=(yyvsp[-4]);
6442  statement((yyval), ID_ifthenelse);
6443  stack((yyval)).operands().reserve(3);
6444  mto((yyval), (yyvsp[-2]));
6445  mto((yyval), (yyvsp[0]));
6446  stack((yyval)).copy_to_operands(nil_exprt());
6447  }
6448 #line 6449 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6449  break;
6450 
6451  case 436:
6452 #line 2305 "parser.y" /* yacc.c:1646 */
6453  {
6454  (yyval)=(yyvsp[-6]);
6455  statement((yyval), ID_ifthenelse);
6456  stack((yyval)).operands().reserve(3);
6457  mto((yyval), (yyvsp[-4]));
6458  mto((yyval), (yyvsp[-2]));
6459  mto((yyval), (yyvsp[0]));
6460  }
6461 #line 6462 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6462  break;
6463 
6464  case 437:
6465 #line 2314 "parser.y" /* yacc.c:1646 */
6466  {
6467  (yyval)=(yyvsp[-4]);
6468  statement((yyval), ID_switch);
6469  stack((yyval)).operands().reserve(2);
6470  mto((yyval), (yyvsp[-2]));
6471  mto((yyval), (yyvsp[0]));
6472  }
6473 #line 6474 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6474  break;
6475 
6476  case 440:
6477 #line 2331 "parser.y" /* yacc.c:1646 */
6478  {
6479  (yyval)=(yyvsp[-5]);
6480  statement((yyval), ID_while);
6481  stack((yyval)).operands().reserve(2);
6482  mto((yyval), (yyvsp[-3]));
6483  mto((yyval), (yyvsp[0]));
6484 
6485  if(stack((yyvsp[-1])).is_not_nil())
6486  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6487  }
6488 #line 6489 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6489  break;
6490 
6491  case 441:
6492 #line 2343 "parser.y" /* yacc.c:1646 */
6493  {
6494  (yyval)=(yyvsp[-7]);
6495  statement((yyval), ID_dowhile);
6496  stack((yyval)).operands().reserve(2);
6497  mto((yyval), (yyvsp[-3]));
6498  mto((yyval), (yyvsp[-6]));
6499 
6500  if(stack((yyvsp[-1])).is_not_nil())
6501  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6502  }
6503 #line 6504 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6504  break;
6505 
6506  case 442:
6507 #line 2354 "parser.y" /* yacc.c:1646 */
6508  {
6509  // In C99 and upwards, for(;;) has a scope
6510  if(PARSER.for_has_scope)
6511  {
6512  unsigned prefix=++PARSER.current_scope().compound_counter;
6513  PARSER.new_scope(std::to_string(prefix)+"::");
6514  }
6515  }
6516 #line 6517 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6517  break;
6518 
6519  case 443:
6520 #line 2367 "parser.y" /* yacc.c:1646 */
6521  {
6522  (yyval)=(yyvsp[-9]);
6523  statement((yyval), ID_for);
6524  stack((yyval)).operands().reserve(4);
6525  mto((yyval), (yyvsp[-6]));
6526  mto((yyval), (yyvsp[-5]));
6527  mto((yyval), (yyvsp[-3]));
6528  mto((yyval), (yyvsp[0]));
6529 
6530  if(stack((yyvsp[-1])).is_not_nil())
6531  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6532 
6533  if(PARSER.for_has_scope)
6534  PARSER.pop_scope(); // remove the C99 for-scope
6535  }
6536 #line 6537 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6537  break;
6538 
6539  case 444:
6540 #line 2386 "parser.y" /* yacc.c:1646 */
6541  {
6542  (yyval)=(yyvsp[-2]);
6543  if(stack((yyvsp[-1])).id()==ID_symbol)
6544  {
6545  statement((yyval), ID_goto);
6546  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-1])).get(ID_C_base_name));
6547  stack((yyval)).set(ID_destination, identifier);
6548  }
6549  else
6550  {
6551  // this is a gcc extension.
6552  // the original grammar uses identifier_or_typedef_name
6553  statement((yyval), ID_gcc_computed_goto);
6554  mto((yyval), (yyvsp[-1]));
6555  }
6556  }
6557 #line 6558 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6558  break;
6559 
6560  case 445:
6561 #line 2403 "parser.y" /* yacc.c:1646 */
6562  {
6563  (yyval)=(yyvsp[-2]);
6564  statement((yyval), ID_goto);
6565  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-1])).get(ID_C_base_name));
6566  stack((yyval)).set(ID_destination, identifier);
6567  }
6568 #line 6569 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6569  break;
6570 
6571  case 446:
6572 #line 2410 "parser.y" /* yacc.c:1646 */
6573  { (yyval)=(yyvsp[-1]); statement((yyval), ID_continue); }
6574 #line 6575 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6575  break;
6576 
6577  case 447:
6578 #line 2412 "parser.y" /* yacc.c:1646 */
6579  { (yyval)=(yyvsp[-1]); statement((yyval), ID_break); }
6580 #line 6581 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6581  break;
6582 
6583  case 448:
6584 #line 2414 "parser.y" /* yacc.c:1646 */
6585  { (yyval)=(yyvsp[-1]); statement((yyval), ID_return); }
6586 #line 6587 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6587  break;
6588 
6589  case 449:
6590 #line 2416 "parser.y" /* yacc.c:1646 */
6591  { (yyval)=(yyvsp[-2]); statement((yyval), ID_return); mto((yyval), (yyvsp[-1])); }
6592 #line 6593 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6593  break;
6594 
6595  case 450:
6596 #line 2421 "parser.y" /* yacc.c:1646 */
6597  {
6598  (yyval)=(yyvsp[-2]);
6599  statement((yyval), ID_gcc_local_label);
6600 
6601  // put these into the scope
6602  forall_operands(it, stack((yyvsp[-1])))
6603  {
6604  // labels have a separate name space
6605  irep_idt base_name=it->get(ID_identifier);
6606  irep_idt id="label-"+id2string(base_name);
6607  ansi_c_parsert::identifiert &i=PARSER.current_scope().name_map[id];
6609  i.prefixed_name=PARSER.current_scope().prefix+id2string(id);
6610  i.base_name=base_name;
6611  }
6612 
6613  stack((yyval)).add(ID_label).get_sub().swap((irept::subt&)stack((yyvsp[-1])).operands());
6614  }
6615 #line 6616 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6616  break;
6617 
6618  case 451:
6619 #line 2443 "parser.y" /* yacc.c:1646 */
6620  {
6621  init((yyval));
6622  mto((yyval), (yyvsp[0]));
6623  }
6624 #line 6625 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6625  break;
6626 
6627  case 452:
6628 #line 2448 "parser.y" /* yacc.c:1646 */
6629  {
6630  (yyval)=(yyvsp[-2]);
6631  mto((yyval), (yyvsp[0]));
6632  }
6633 #line 6634 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6634  break;
6635 
6636  case 454:
6637 #line 2459 "parser.y" /* yacc.c:1646 */
6638  { (yyval)=(yyvsp[-5]);
6639  statement((yyval), ID_asm);
6640  stack((yyval)).set(ID_flavor, ID_gcc);
6641  stack((yyval)).operands().swap(stack((yyvsp[-2])).operands());
6642  }
6643 #line 6644 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6644  break;
6645 
6646  case 455:
6647 #line 2465 "parser.y" /* yacc.c:1646 */
6648  {
6649  (yyval)=(yyvsp[-4]);
6650  statement((yyval), ID_asm);
6651  stack((yyval)).set(ID_flavor, ID_gcc);
6652  stack((yyval)).operands().resize(5);
6653  stack((yyval)).op0()=stack((yyvsp[-1]));
6654  }
6655 #line 6656 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6656  break;
6657 
6658  case 456:
6659 #line 2476 "parser.y" /* yacc.c:1646 */
6660  { (yyval)=(yyvsp[-3]);
6661  statement((yyval), ID_asm);
6662  stack((yyval)).set(ID_flavor, ID_msc);
6663  mto((yyval), (yyvsp[-1]));
6664  }
6665 #line 6666 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6666  break;
6667 
6668  case 457:
6669 #line 2482 "parser.y" /* yacc.c:1646 */
6670  { (yyval)=(yyvsp[-1]);
6671  statement((yyval), ID_asm);
6672  stack((yyval)).set(ID_flavor, ID_msc);
6673  mto((yyval), (yyvsp[0]));
6674  }
6675 #line 6676 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6676  break;
6677 
6678  case 458:
6679 #line 2492 "parser.y" /* yacc.c:1646 */
6680  {
6681  (yyval)=(yyvsp[-6]);
6682  statement((yyval), ID_msc_try_except);
6683  mto((yyval), (yyvsp[-5]));
6684  mto((yyval), (yyvsp[-2]));
6685  mto((yyval), (yyvsp[0]));
6686  }
6687 #line 6688 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6688  break;
6689 
6690  case 459:
6691 #line 2501 "parser.y" /* yacc.c:1646 */
6692  {
6693  (yyval)=(yyvsp[-3]);
6694  statement((yyval), ID_msc_try_finally);
6695  mto((yyval), (yyvsp[-2]));
6696  mto((yyval), (yyvsp[0]));
6697  }
6698 #line 6699 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6699  break;
6700 
6701  case 460:
6702 #line 2508 "parser.y" /* yacc.c:1646 */
6703  {
6704  (yyval)=(yyvsp[0]);
6705  statement((yyval), ID_msc_leave);
6706  }
6707 #line 6708 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6708  break;
6709 
6710  case 461:
6711 #line 2516 "parser.y" /* yacc.c:1646 */
6712  {
6713  (yyval)=(yyvsp[-1]);
6714  statement((yyval), ID_CPROVER_throw);
6715  }
6716 #line 6717 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6717  break;
6718 
6719  case 462:
6720 #line 2522 "parser.y" /* yacc.c:1646 */
6721  {
6722  (yyval)=(yyvsp[-3]);
6723  statement((yyval), ID_CPROVER_try_catch);
6724  mto((yyval), (yyvsp[-2]));
6725  mto((yyval), (yyvsp[0]));
6726  }
6727 #line 6728 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6728  break;
6729 
6730  case 463:
6731 #line 2530 "parser.y" /* yacc.c:1646 */
6732  {
6733  (yyval)=(yyvsp[-3]);
6734  statement((yyval), ID_CPROVER_try_finally);
6735  mto((yyval), (yyvsp[-2]));
6736  mto((yyval), (yyvsp[0]));
6737  }
6738 #line 6739 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6739  break;
6740 
6741  case 469:
6742 #line 2556 "parser.y" /* yacc.c:1646 */
6743  {
6744  init((yyval));
6745  stack((yyval)).operands().resize(5);
6746  stack((yyval)).operands()[0]=stack((yyvsp[0]));
6747  }
6748 #line 6749 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6749  break;
6750 
6751  case 470:
6752 #line 2562 "parser.y" /* yacc.c:1646 */
6753  {
6754  init((yyval));
6755  stack((yyval)).operands().resize(5);
6756  stack((yyval)).operands()[0]=stack((yyvsp[-1]));
6757  stack((yyval)).operands()[1]=stack((yyvsp[0]));
6758  }
6759 #line 6760 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6760  break;
6761 
6762  case 471:
6763 #line 2569 "parser.y" /* yacc.c:1646 */
6764  {
6765  init((yyval));
6766  stack((yyval)).operands().resize(5);
6767  stack((yyval)).operands()[0]=stack((yyvsp[-2]));
6768  stack((yyval)).operands()[1]=stack((yyvsp[-1]));
6769  stack((yyval)).operands()[2]=stack((yyvsp[0]));
6770  }
6771 #line 6772 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6772  break;
6773 
6774  case 472:
6775 #line 2577 "parser.y" /* yacc.c:1646 */
6776  {
6777  init((yyval));
6778  stack((yyval)).operands().resize(5);
6779  stack((yyval)).operands()[0]=stack((yyvsp[-3]));
6780  stack((yyval)).operands()[1]=stack((yyvsp[-2]));
6781  stack((yyval)).operands()[2]=stack((yyvsp[-1]));
6782  stack((yyval)).operands()[3]=stack((yyvsp[0]));
6783  }
6784 #line 6785 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6785  break;
6786 
6787  case 473:
6788 #line 2586 "parser.y" /* yacc.c:1646 */
6789  {
6790  init((yyval));
6791  stack((yyval)).operands().resize(5);
6792  stack((yyval)).operands()[0]=stack((yyvsp[-4]));
6793  stack((yyval)).operands()[1]=stack((yyvsp[-3]));
6794  stack((yyval)).operands()[2]=stack((yyvsp[-2]));
6795  stack((yyval)).operands()[3]=stack((yyvsp[-1]));
6796  stack((yyval)).operands()[4]=stack((yyvsp[0]));
6797  }
6798 #line 6799 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6799  break;
6800 
6801  case 475:
6802 #line 2602 "parser.y" /* yacc.c:1646 */
6803  {
6804  (yyval)=(yyvsp[0]);
6805  }
6806 #line 6807 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6807  break;
6808 
6809  case 477:
6810 #line 2610 "parser.y" /* yacc.c:1646 */
6811  {
6812  (yyval)=(yyvsp[-2]);
6813  stack((yyval)).id(ID_gcc_asm_output);
6814  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6815  }
6816 #line 6817 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6817  break;
6818 
6819  case 478:
6820 #line 2617 "parser.y" /* yacc.c:1646 */
6821  {
6822  (yyval)=(yyvsp[-2]);
6823  stack((yyval)).id(ID_gcc_asm_output);
6824  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6825  }
6826 #line 6827 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6827  break;
6828 
6829  case 479:
6830 #line 2626 "parser.y" /* yacc.c:1646 */
6831  {
6832  init((yyval), irep_idt());
6833  mto((yyval), (yyvsp[0]));
6834  }
6835 #line 6836 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6836  break;
6837 
6838  case 480:
6839 #line 2631 "parser.y" /* yacc.c:1646 */
6840  {
6841  (yyval)=(yyvsp[-2]);
6842  mto((yyval), (yyvsp[0]));
6843  }
6844 #line 6845 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6845  break;
6846 
6847  case 481:
6848 #line 2639 "parser.y" /* yacc.c:1646 */
6849  {
6850  (yyval)=(yyvsp[0]);
6851  }
6852 #line 6853 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6853  break;
6854 
6855  case 483:
6856 #line 2647 "parser.y" /* yacc.c:1646 */
6857  {
6858  (yyval)=(yyvsp[-2]);
6859  stack((yyval)).id(ID_gcc_asm_input);
6860  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6861  }
6862 #line 6863 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6863  break;
6864 
6865  case 484:
6866 #line 2654 "parser.y" /* yacc.c:1646 */
6867  {
6868  (yyval)=(yyvsp[-2]);
6869  stack((yyval)).id(ID_gcc_asm_input);
6870  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6871  }
6872 #line 6873 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6873  break;
6874 
6875  case 485:
6876 #line 2663 "parser.y" /* yacc.c:1646 */
6877  {
6878  init((yyval), irep_idt());
6879  mto((yyval), (yyvsp[0]));
6880  }
6881 #line 6882 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6882  break;
6883 
6884  case 486:
6885 #line 2668 "parser.y" /* yacc.c:1646 */
6886  {
6887  (yyval)=(yyvsp[-2]);
6888  mto((yyval), (yyvsp[0]));
6889  }
6890 #line 6891 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6891  break;
6892 
6893  case 487:
6894 #line 2676 "parser.y" /* yacc.c:1646 */
6895  {
6896  (yyval)=(yyvsp[0]);
6897  }
6898 #line 6899 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6899  break;
6900 
6901  case 489:
6902 #line 2684 "parser.y" /* yacc.c:1646 */
6903  {
6904  init((yyval), ID_gcc_asm_clobbered_register);
6905  mto((yyval), (yyvsp[0]));
6906  }
6907 #line 6908 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6908  break;
6909 
6910  case 490:
6911 #line 2692 "parser.y" /* yacc.c:1646 */
6912  {
6913  init((yyval), irep_idt());
6914  mto((yyval), (yyvsp[0]));
6915  }
6916 #line 6917 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6917  break;
6918 
6919  case 491:
6920 #line 2697 "parser.y" /* yacc.c:1646 */
6921  {
6922  (yyval)=(yyvsp[-2]);
6923  mto((yyval), (yyvsp[0]));
6924  }
6925 #line 6926 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6926  break;
6927 
6928  case 492:
6929 #line 2705 "parser.y" /* yacc.c:1646 */
6930  {
6931  (yyval)=(yyvsp[0]);
6932  }
6933 #line 6934 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6934  break;
6935 
6936  case 494:
6937 #line 2713 "parser.y" /* yacc.c:1646 */
6938  {
6939  init((yyval));
6940  mto((yyval), (yyvsp[0]));
6941  }
6942 #line 6943 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6943  break;
6944 
6945  case 495:
6946 #line 2718 "parser.y" /* yacc.c:1646 */
6947  {
6948  (yyval)=(yyvsp[-2]);
6949  mto((yyval), (yyvsp[0]));
6950  }
6951 #line 6952 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6952  break;
6953 
6954  case 496:
6955 #line 2726 "parser.y" /* yacc.c:1646 */
6956  {
6957  (yyval)=(yyvsp[0]);
6958  irep_idt identifier=PARSER.lookup_label(stack((yyval)).get(ID_C_base_name));
6959  stack((yyval)).id(ID_label);
6960  stack((yyval)).set(ID_identifier, identifier);
6961  }
6962 #line 6963 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6963  break;
6964 
6965  case 501:
6966 #line 2745 "parser.y" /* yacc.c:1646 */
6967  {
6968  // put into global list of items
6969  PARSER.copy_item(to_ansi_c_declaration(stack((yyvsp[0]))));
6970  }
6971 #line 6972 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6972  break;
6973 
6974  case 502:
6975 #line 2750 "parser.y" /* yacc.c:1646 */
6976  {
6977  PARSER.copy_item(to_ansi_c_declaration(stack((yyvsp[0]))));
6978  }
6979 #line 6980 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6980  break;
6981 
6982  case 505:
6983 #line 2759 "parser.y" /* yacc.c:1646 */
6984  {
6985  // Not obvious what to do with this.
6986  }
6987 #line 6988 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6988  break;
6989 
6990  case 506:
6991 #line 2763 "parser.y" /* yacc.c:1646 */
6992  {
6993  // Not obvious what to do with this.
6994  }
6995 #line 6996 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6996  break;
6997 
6998  case 507:
6999 #line 2773 "parser.y" /* yacc.c:1646 */
7000  {
7001  if(stack((yyvsp[-2])).is_not_nil())
7002  stack((yyvsp[-3])).add(ID_C_spec_requires).swap(stack((yyvsp[-2])));
7003  if(stack((yyvsp[-1])).is_not_nil())
7004  stack((yyvsp[-3])).add(ID_C_spec_ensures).swap(stack((yyvsp[-1])));
7005  // The head is a declaration with one declarator,
7006  // and the body becomes the 'value'.
7007  (yyval)=(yyvsp[-3]);
7008  ansi_c_declarationt &ansi_c_declaration=
7009  to_ansi_c_declaration(stack((yyval)));
7010 
7011  assert(ansi_c_declaration.declarators().size()==1);
7012  ansi_c_declaration.add_initializer(stack((yyvsp[0])));
7013 
7014  // Kill the scope that 'function_head' creates.
7015  PARSER.pop_scope();
7016 
7017  // We are no longer in any function.
7018  PARSER.set_function(irep_idt());
7019  }
7020 #line 7021 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7021  break;
7022 
7023  case 509:
7024 #line 2801 "parser.y" /* yacc.c:1646 */
7025  {
7026  init((yyval));
7027  }
7028 #line 7029 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7029  break;
7030 
7031  case 511:
7032 #line 2809 "parser.y" /* yacc.c:1646 */
7033  {
7034  init((yyval), ID_decl_block);
7035  mto((yyval), (yyvsp[0]));
7036  }
7037 #line 7038 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7038  break;
7039 
7040  case 512:
7041 #line 2814 "parser.y" /* yacc.c:1646 */
7042  {
7043  (yyval)=(yyvsp[-1]);
7044  mto((yyval), (yyvsp[0]));
7045  }
7046 #line 7047 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7047  break;
7048 
7049  case 515:
7050 #line 2828 "parser.y" /* yacc.c:1646 */
7051  {
7052  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7053  }
7054 #line 7055 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7055  break;
7056 
7057  case 516:
7058 #line 2832 "parser.y" /* yacc.c:1646 */
7059  {
7060  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7061  }
7062 #line 7063 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7063  break;
7064 
7065  case 517:
7066 #line 2839 "parser.y" /* yacc.c:1646 */
7067  {
7068  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7069  }
7070 #line 7071 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7071  break;
7072 
7073  case 518:
7074 #line 2843 "parser.y" /* yacc.c:1646 */
7075  {
7076  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7077  }
7078 #line 7079 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7079  break;
7080 
7081  case 519:
7082 #line 2847 "parser.y" /* yacc.c:1646 */
7083  {
7084  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7085  }
7086 #line 7087 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7087  break;
7088 
7089  case 520:
7090 #line 2851 "parser.y" /* yacc.c:1646 */
7091  {
7092  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7093  }
7094 #line 7095 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7095  break;
7096 
7097  case 521:
7098 #line 2859 "parser.y" /* yacc.c:1646 */
7099  {
7100  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7101  }
7102 #line 7103 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7103  break;
7104 
7105  case 522:
7106 #line 2863 "parser.y" /* yacc.c:1646 */
7107  {
7108  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7109  }
7110 #line 7111 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7111  break;
7112 
7113  case 523:
7114 #line 2867 "parser.y" /* yacc.c:1646 */
7115  {
7116  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7117  }
7118 #line 7119 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7119  break;
7120 
7121  case 524:
7122 #line 2875 "parser.y" /* yacc.c:1646 */
7123  {
7124  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[-1])));
7125  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0])));
7126  }
7127 #line 7128 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7128  break;
7129 
7130  case 525:
7131 #line 2880 "parser.y" /* yacc.c:1646 */
7132  {
7133  stack((yyvsp[-2])).id(ID_c_enum_tag);
7134  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[-1])));
7135  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0])));
7136  }
7137 #line 7138 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7138  break;
7139 
7140  case 529:
7141 #line 2896 "parser.y" /* yacc.c:1646 */
7142  {
7143  init((yyval), ID_declaration);
7144  stack((yyval)).type().swap(stack((yyvsp[-1])));
7145  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7146  }
7147 #line 7148 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7148  break;
7149 
7150  case 530:
7151 #line 2902 "parser.y" /* yacc.c:1646 */
7152  {
7153  init((yyval), ID_declaration);
7154  stack((yyval)).type().swap(stack((yyvsp[-1])));
7155  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7156  }
7157 #line 7158 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7158  break;
7159 
7160  case 531:
7161 #line 2908 "parser.y" /* yacc.c:1646 */
7162  {
7163  (yyval)=(yyvsp[-2]);
7164  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7165  }
7166 #line 7167 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7167  break;
7168 
7169  case 532:
7170 #line 2916 "parser.y" /* yacc.c:1646 */
7171  {
7172  init((yyval), ID_declaration);
7173  irept return_type(ID_int);
7174  stack((yyval)).type().swap(return_type);
7175  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7176  create_function_scope((yyval));
7177  }
7178 #line 7179 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7179  break;
7180 
7181  case 533:
7182 #line 2924 "parser.y" /* yacc.c:1646 */
7183  {
7184  init((yyval), ID_declaration);
7185  stack((yyval)).type().swap(stack((yyvsp[-1])));
7186  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7187  create_function_scope((yyval));
7188  }
7189 #line 7190 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7190  break;
7191 
7192  case 534:
7193 #line 2931 "parser.y" /* yacc.c:1646 */
7194  {
7195  init((yyval), ID_declaration);
7196  stack((yyval)).type().swap(stack((yyvsp[-1])));
7197  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7198  create_function_scope((yyval));
7199  }
7200 #line 7201 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7201  break;
7202 
7203  case 535:
7204 #line 2938 "parser.y" /* yacc.c:1646 */
7205  {
7206  init((yyval), ID_declaration);
7207  stack((yyval)).type().swap(stack((yyvsp[-1])));
7208  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7209  create_function_scope((yyval));
7210  }
7211 #line 7212 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7212  break;
7213 
7214  case 536:
7215 #line 2945 "parser.y" /* yacc.c:1646 */
7216  {
7217  init((yyval), ID_declaration);
7218  stack((yyval)).type().swap(stack((yyvsp[-1])));
7219  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7220  create_function_scope((yyval));
7221  }
7222 #line 7223 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7223  break;
7224 
7225  case 540:
7226 #line 2961 "parser.y" /* yacc.c:1646 */
7227  {
7228  stack_type((yyvsp[-3]))=typet(ID_abstract);
7229  (yyvsp[-2])=merge((yyvsp[-2]), (yyvsp[-3])); // dest=$2
7230  make_subtype((yyvsp[-1]), (yyvsp[-2])); // dest=$3
7231  (yyval)=(yyvsp[-1]);
7232  }
7233 #line 7234 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7234  break;
7235 
7236  case 541:
7237 #line 2968 "parser.y" /* yacc.c:1646 */
7238  {
7239  stack_type((yyvsp[-4]))=typet(ID_abstract);
7240  (yyvsp[-3])=merge((yyvsp[-3]), (yyvsp[-4])); // dest=$2
7241  make_subtype((yyvsp[-2]), (yyvsp[-3])); // dest=$3
7242  /* note: this is (a pointer to) a function ($5) */
7243  /* or an array ($5) with name ($3) */
7244  (yyval)=(yyvsp[-2]);
7245  make_subtype((yyval), (yyvsp[0]));
7246  }
7247 #line 7248 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7248  break;
7249 
7250  case 542:
7251 #line 2978 "parser.y" /* yacc.c:1646 */
7252  {
7253  (yyval)=(yyvsp[0]);
7254  do_pointer((yyvsp[-1]), (yyvsp[0]));
7255  }
7256 #line 7257 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7257  break;
7258 
7259  case 546:
7260 #line 2992 "parser.y" /* yacc.c:1646 */
7261  {
7262  (yyval)=(yyvsp[-1]);
7263  make_subtype((yyval), (yyvsp[0]));
7264  }
7265 #line 7266 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7266  break;
7267 
7268  case 549:
7269 #line 3002 "parser.y" /* yacc.c:1646 */
7270  {
7271  (yyval)=(yyvsp[0]);
7272  do_pointer((yyvsp[-1]), (yyvsp[0]));
7273  }
7274 #line 7275 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7275  break;
7276 
7277  case 550:
7278 #line 3007 "parser.y" /* yacc.c:1646 */
7279  {
7280  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
7281  do_pointer((yyvsp[-2]), (yyvsp[-1]));
7282  }
7283 #line 7284 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7284  break;
7285 
7286  case 551:
7287 #line 3015 "parser.y" /* yacc.c:1646 */
7288  { (yyval) = (yyvsp[-1]); }
7289 #line 7290 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7290  break;
7291 
7292  case 552:
7293 #line 3017 "parser.y" /* yacc.c:1646 */
7294  {
7295  /* note: this is a pointer ($2) to a function ($4) */
7296  /* or an array ($4)! */
7297  (yyval)=(yyvsp[-2]);
7298  make_subtype((yyval), (yyvsp[0]));
7299  }
7300 #line 7301 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7301  break;
7302 
7303  case 554:
7304 #line 3028 "parser.y" /* yacc.c:1646 */
7305  {
7306  (yyval)=(yyvsp[-1]);
7307  do_pointer((yyvsp[-3]), (yyvsp[-1]));
7308  }
7309 #line 7310 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7310  break;
7311 
7312  case 555:
7313 #line 3033 "parser.y" /* yacc.c:1646 */
7314  {
7315  // not sure where the type qualifiers belong
7316  (yyval)=merge((yyvsp[-3]), (yyvsp[-1]));
7317  do_pointer((yyvsp[-4]), (yyvsp[-3]));
7318  }
7319 #line 7320 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7320  break;
7321 
7322  case 556:
7323 #line 3039 "parser.y" /* yacc.c:1646 */
7324  {
7325  (yyval)=(yyvsp[0]);
7326  do_pointer((yyvsp[-1]), (yyvsp[0]));
7327  }
7328 #line 7329 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7329  break;
7330 
7331  case 557:
7332 #line 3044 "parser.y" /* yacc.c:1646 */
7333  {
7334  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
7335  do_pointer((yyvsp[-2]), (yyvsp[-1]));
7336  }
7337 #line 7338 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7338  break;
7339 
7340  case 558:
7341 #line 3052 "parser.y" /* yacc.c:1646 */
7342  { (yyval) = (yyvsp[-1]); }
7343 #line 7344 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7344  break;
7345 
7346  case 559:
7347 #line 3054 "parser.y" /* yacc.c:1646 */
7348  { /* note: this is a function ($3) with a typedef name ($2) */
7349  (yyval)=(yyvsp[-2]);
7350  make_subtype((yyval), (yyvsp[-1]));
7351  }
7352 #line 7353 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7353  break;
7354 
7355  case 560:
7356 #line 3059 "parser.y" /* yacc.c:1646 */
7357  {
7358  /* note: this is a pointer ($2) to a function ($4) */
7359  /* or an array ($4)! */
7360  (yyval)=(yyvsp[-2]);
7361  make_subtype((yyval), (yyvsp[0]));
7362  }
7363 #line 7364 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7364  break;
7365 
7366  case 562:
7367 #line 3070 "parser.y" /* yacc.c:1646 */
7368  { (yyval)=(yyvsp[-1]); }
7369 #line 7370 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7370  break;
7371 
7372  case 566:
7373 #line 3081 "parser.y" /* yacc.c:1646 */
7374  {
7375  (yyval)=(yyvsp[0]);
7376  do_pointer((yyvsp[-1]), (yyvsp[0]));
7377  }
7378 #line 7379 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7379  break;
7380 
7381  case 567:
7382 #line 3086 "parser.y" /* yacc.c:1646 */
7383  {
7384  // This is an Apple extension to C/C++/Objective C.
7385  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7386  (yyval)=(yyvsp[0]);
7387  do_pointer((yyvsp[-1]), (yyvsp[0]));
7388  }
7389 #line 7390 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7390  break;
7391 
7392  case 568:
7393 #line 3093 "parser.y" /* yacc.c:1646 */
7394  {
7395  // the type_qualifier_list is for the pointer,
7396  // and not the identifier_declarator
7397  // The below is deliberately not using pointer_type();
7398  // the width is added during conversion.
7399  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7400  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7401  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7402  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7403  (yyval)=(yyvsp[0]);
7404  }
7405 #line 7406 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7406  break;
7407 
7408  case 569:
7409 #line 3108 "parser.y" /* yacc.c:1646 */
7410  {
7411  /* note: this is a function or array ($2) with name ($1) */
7412  (yyval)=(yyvsp[-1]);
7413  make_subtype((yyval), (yyvsp[0]));
7414  }
7415 #line 7416 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7416  break;
7417 
7418  case 570:
7419 #line 3114 "parser.y" /* yacc.c:1646 */
7420  { (yyval) = (yyvsp[-1]); }
7421 #line 7422 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7422  break;
7423 
7424  case 571:
7425 #line 3116 "parser.y" /* yacc.c:1646 */
7426  {
7427  /* note: this is a pointer ($2) to a function ($4) */
7428  /* or an array ($4)! */
7429  (yyval)=(yyvsp[-2]);
7430  make_subtype((yyval), (yyvsp[0]));
7431  }
7432 #line 7433 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7433  break;
7434 
7435  case 572:
7436 #line 3126 "parser.y" /* yacc.c:1646 */
7437  {
7438  // We remember the last declarator for the benefit
7439  // of function argument scoping.
7440  PARSER.current_scope().last_declarator=
7441  stack((yyvsp[0])).get(ID_identifier);
7442  }
7443 #line 7444 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7444  break;
7445 
7446  case 573:
7447 #line 3133 "parser.y" /* yacc.c:1646 */
7448  { (yyval)=(yyvsp[-1]); }
7449 #line 7450 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7450  break;
7451 
7452  case 580:
7453 #line 3153 "parser.y" /* yacc.c:1646 */
7454  {
7455  (yyval)=(yyvsp[-2]);
7456  set((yyval), ID_code);
7457  stack_type((yyval)).subtype()=typet(ID_abstract);
7458  stack_type((yyval)).add(ID_parameters);
7459  stack_type((yyval)).set(ID_C_KnR, true);
7460  }
7461 #line 7462 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7462  break;
7463 
7464  case 581:
7465 #line 3161 "parser.y" /* yacc.c:1646 */
7466  {
7467  // Use last declarator (i.e., function name) to name
7468  // the scope.
7469  PARSER.new_scope(
7470  id2string(PARSER.current_scope().last_declarator)+"::");
7471  }
7472 #line 7473 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7473  break;
7474 
7475  case 582:
7476 #line 3170 "parser.y" /* yacc.c:1646 */
7477  {
7478  (yyval)=(yyvsp[-4]);
7479  set((yyval), ID_code);
7480  stack_type((yyval)).subtype()=typet(ID_abstract);
7481  stack_type((yyval)).add(ID_parameters).get_sub().
7482  swap((irept::subt &)(stack_type((yyvsp[-2])).subtypes()));
7483  PARSER.pop_scope();
7484  adjust_KnR_parameters(stack((yyval)).add(ID_parameters), stack((yyvsp[0])));
7485  stack((yyval)).set(ID_C_KnR, true);
7486  }
7487 #line 7488 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7488  break;
7489 
7490  case 584:
7491 #line 3185 "parser.y" /* yacc.c:1646 */
7492  {
7493  (yyval)=(yyvsp[-1]);
7494  set((yyval), ID_code);
7495  stack_type((yyval)).add(ID_parameters);
7496  stack_type((yyval)).subtype()=typet(ID_abstract);
7497  }
7498 #line 7499 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7499  break;
7500 
7501  case 585:
7502 #line 3192 "parser.y" /* yacc.c:1646 */
7503  {
7504  // Use last declarator (i.e., function name) to name
7505  // the scope.
7506  PARSER.new_scope(
7507  id2string(PARSER.current_scope().last_declarator)+"::");
7508  }
7509 #line 7510 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7510  break;
7511 
7512  case 586:
7513 #line 3200 "parser.y" /* yacc.c:1646 */
7514  {
7515  (yyval)=(yyvsp[-4]);
7516  set((yyval), ID_code);
7517  stack_type((yyval)).subtype()=typet(ID_abstract);
7518  stack_type((yyval)).add(ID_parameters).get_sub().
7519  swap((irept::subt &)(stack_type((yyvsp[-2])).subtypes()));
7520  PARSER.pop_scope();
7521 
7522  if(stack((yyvsp[0])).is_not_nil())
7523  {
7524  adjust_KnR_parameters(stack((yyval)).add(ID_parameters), stack((yyvsp[0])));
7525  stack((yyval)).set(ID_C_KnR, true);
7526  }
7527  }
7528 #line 7529 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7529  break;
7530 
7531  case 587:
7532 #line 3218 "parser.y" /* yacc.c:1646 */
7533  {
7534  (yyval)=(yyvsp[-1]);
7535  set((yyval), ID_array);
7536  stack_type((yyval)).subtype()=typet(ID_abstract);
7537  stack_type((yyval)).add(ID_size).make_nil();
7538  }
7539 #line 7540 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7540  break;
7541 
7542  case 588:
7543 #line 3225 "parser.y" /* yacc.c:1646 */
7544  {
7545  // this is C99: e.g., restrict, const, etc
7546  // The type qualifier belongs to the array, not the
7547  // contents of the array, nor the size.
7548  set((yyvsp[-2]), ID_array);
7549  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7550  stack_type((yyvsp[-2])).add(ID_size).make_nil();
7551  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
7552  }
7553 #line 7554 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7554  break;
7555 
7556  case 589:
7557 #line 3235 "parser.y" /* yacc.c:1646 */
7558  {
7559  // these should be allowed in prototypes only
7560  (yyval)=(yyvsp[-2]);
7561  set((yyval), ID_array);
7562  stack_type((yyval)).subtype()=typet(ID_abstract);
7563  stack_type((yyval)).add(ID_size).make_nil();
7564  }
7565 #line 7566 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7566  break;
7567 
7568  case 590:
7569 #line 3243 "parser.y" /* yacc.c:1646 */
7570  {
7571  (yyval)=(yyvsp[-2]);
7572  set((yyval), ID_array);
7573  stack_type((yyval)).add(ID_size).swap(stack((yyvsp[-1])));
7574  stack_type((yyval)).subtype()=typet(ID_abstract);
7575  }
7576 #line 7577 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7577  break;
7578 
7579  case 591:
7580 #line 3250 "parser.y" /* yacc.c:1646 */
7581  {
7582  // The type qualifier belongs to the array, not the
7583  // contents of the array, nor the size.
7584  set((yyvsp[-3]), ID_array);
7585  stack_type((yyvsp[-3])).add(ID_size).swap(stack((yyvsp[-1])));
7586  stack_type((yyvsp[-3])).subtype()=typet(ID_abstract);
7587  (yyval)=merge((yyvsp[-2]), (yyvsp[-3])); // dest=$2
7588  }
7589 #line 7590 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7590  break;
7591 
7592  case 592:
7593 #line 3259 "parser.y" /* yacc.c:1646 */
7594  {
7595  // we need to push this down
7596  (yyval)=(yyvsp[-3]);
7597  set((yyvsp[-2]), ID_array);
7598  stack_type((yyvsp[-2])).add(ID_size).swap(stack((yyvsp[-1])));
7599  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7600  make_subtype((yyvsp[-3]), (yyvsp[-2]));
7601  }
7602 #line 7603 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7603  break;
7604 
7605  case 593:
7606 #line 3268 "parser.y" /* yacc.c:1646 */
7607  {
7608  // these should be allowed in prototypes only
7609  // we need to push this down
7610  (yyval)=(yyvsp[-3]);
7611  set((yyvsp[-2]), ID_array);
7612  stack_type((yyvsp[-2])).add(ID_size).make_nil();
7613  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7614  make_subtype((yyvsp[-3]), (yyvsp[-2]));
7615  }
7616 #line 7617 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7617  break;
7618 
7619  case 594:
7620 #line 3281 "parser.y" /* yacc.c:1646 */
7621  {
7622  (yyval)=(yyvsp[0]);
7623  // The below is deliberately not using pointer_type();
7624  // the width is added during conversion.
7625  stack_type((yyval)).id(ID_frontend_pointer);
7626  stack_type((yyval)).subtype()=typet(ID_abstract);
7627  }
7628 #line 7629 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7629  break;
7630 
7631  case 595:
7632 #line 3289 "parser.y" /* yacc.c:1646 */
7633  {
7634  // The type_qualifier_list belongs to the pointer,
7635  // not to the (missing) abstract declarator.
7636  // The below is deliberately not using pointer_type();
7637  // the width is added during conversion.
7638  stack_type((yyvsp[-1])).id(ID_frontend_pointer);
7639  stack_type((yyvsp[-1])).subtype()=typet(ID_abstract);
7640  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7641  }
7642 #line 7643 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7643  break;
7644 
7645  case 596:
7646 #line 3299 "parser.y" /* yacc.c:1646 */
7647  {
7648  (yyval)=(yyvsp[0]);
7649  do_pointer((yyvsp[-1]), (yyvsp[0]));
7650  }
7651 #line 7652 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7652  break;
7653 
7654  case 597:
7655 #line 3304 "parser.y" /* yacc.c:1646 */
7656  {
7657  // The type_qualifier_list belongs to the pointer,
7658  // not to the abstract declarator.
7659  // The below is deliberately not using pointer_type();
7660  // the width is added during conversion.
7661  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7662  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7663  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7664  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7665  (yyval)=(yyvsp[0]);
7666  }
7667 #line 7668 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7668  break;
7669 
7670  case 598:
7671 #line 3316 "parser.y" /* yacc.c:1646 */
7672  {
7673  // This is an Apple extension to C/C++/Objective C.
7674  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7675  (yyval)=(yyvsp[0]);
7676  set((yyval), ID_block_pointer);
7677  stack_type((yyval)).subtype()=typet(ID_abstract);
7678  }
7679 #line 7680 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7680  break;
7681 
7682  case 599:
7683 #line 3327 "parser.y" /* yacc.c:1646 */
7684  {
7685  (yyval)=(yyvsp[0]);
7686  // The below is deliberately not using pointer_type();
7687  // the width is added during conversion.
7688  stack_type((yyval)).id(ID_frontend_pointer);
7689  stack_type((yyval)).subtype()=typet(ID_abstract);
7690  }
7691 #line 7692 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7692  break;
7693 
7694  case 600:
7695 #line 3335 "parser.y" /* yacc.c:1646 */
7696  {
7697  // The type_qualifier_list belongs to the pointer,
7698  // not to the (missing) abstract declarator.
7699  // The below is deliberately not using pointer_type();
7700  // the width is added during conversion.
7701  stack_type((yyvsp[-1])).id(ID_frontend_pointer);
7702  stack_type((yyvsp[-1])).subtype()=typet(ID_abstract);
7703  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7704  }
7705 #line 7706 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7706  break;
7707 
7708  case 601:
7709 #line 3345 "parser.y" /* yacc.c:1646 */
7710  {
7711  (yyval)=(yyvsp[0]);
7712  do_pointer((yyvsp[-1]), (yyvsp[0]));
7713  }
7714 #line 7715 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7715  break;
7716 
7717  case 602:
7718 #line 3350 "parser.y" /* yacc.c:1646 */
7719  {
7720  // The type_qualifier_list belongs to the pointer,
7721  // not to the (missing) abstract declarator.
7722  // The below is deliberately not using pointer_type();
7723  // the width is added during conversion.
7724  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7725  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7726  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7727  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7728  (yyval)=(yyvsp[0]);
7729  }
7730 #line 7731 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7731  break;
7732 
7733  case 603:
7734 #line 3362 "parser.y" /* yacc.c:1646 */
7735  {
7736  // This is an Apple extension to C/C++/Objective C.
7737  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7738  (yyval)=(yyvsp[0]);
7739  set((yyval), ID_block_pointer);
7740  stack_type((yyval)).subtype()=typet(ID_abstract);
7741  }
7742 #line 7743 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7743  break;
7744 
7745  case 604:
7746 #line 3373 "parser.y" /* yacc.c:1646 */
7747  { (yyval) = (yyvsp[-1]); }
7748 #line 7749 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7749  break;
7750 
7751  case 605:
7752 #line 3375 "parser.y" /* yacc.c:1646 */
7753  { (yyval) = (yyvsp[-1]); }
7754 #line 7755 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7755  break;
7756 
7757  case 606:
7758 #line 3377 "parser.y" /* yacc.c:1646 */
7759  { (yyval) = (yyvsp[-1]); }
7760 #line 7761 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7761  break;
7762 
7763  case 607:
7764 #line 3379 "parser.y" /* yacc.c:1646 */
7765  {
7766  /* note: this is a pointer ($2) to a function or array ($4) */
7767  (yyval)=(yyvsp[-2]);
7768  make_subtype((yyval), (yyvsp[0]));
7769  }
7770 #line 7771 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7771  break;
7772 
7773  case 608:
7774 #line 3385 "parser.y" /* yacc.c:1646 */
7775  {
7776  /* note: this is a pointer ($2) to a function or array ($4) */
7777  (yyval)=(yyvsp[-2]);
7778  make_subtype((yyval), (yyvsp[0]));
7779  }
7780 #line 7781 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7781  break;
7782 
7783  case 609:
7784 #line 3394 "parser.y" /* yacc.c:1646 */
7785  { (yyval) = (yyvsp[-1]); }
7786 #line 7787 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7787  break;
7788 
7789  case 610:
7790 #line 3396 "parser.y" /* yacc.c:1646 */
7791  { (yyval) = (yyvsp[-1]); }
7792 #line 7793 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7793  break;
7794 
7795  case 612:
7796 #line 3399 "parser.y" /* yacc.c:1646 */
7797  {
7798  /* note: this is a pointer ($2) to a function ($4) */
7799  (yyval)=(yyvsp[-2]);
7800  make_subtype((yyval), (yyvsp[0]));
7801  }
7802 #line 7803 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7803  break;
7804 
7805 
7806 #line 7807 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7807  default: break;
7808  }
7809  /* User semantic actions sometimes alter yychar, and that requires
7810  that yytoken be updated with the new translation. We take the
7811  approach of translating immediately before every use of yytoken.
7812  One alternative is translating here after every semantic action,
7813  but that translation would be missed if the semantic action invokes
7814  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
7815  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
7816  incorrect destructor might then be invoked immediately. In the
7817  case of YYERROR or YYBACKUP, subsequent parser actions might lead
7818  to an incorrect destructor call or verbose syntax error message
7819  before the lookahead is translated. */
7820  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7821 
7822  YYPOPSTACK (yylen);
7823  yylen = 0;
7824  YY_STACK_PRINT (yyss, yyssp);
7825 
7826  *++yyvsp = yyval;
7827 
7828  /* Now 'shift' the result of the reduction. Determine what state
7829  that goes to, based on the state we popped back to and the rule
7830  number reduced by. */
7831 
7832  yyn = yyr1[yyn];
7833 
7834  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7835  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7836  yystate = yytable[yystate];
7837  else
7838  yystate = yydefgoto[yyn - YYNTOKENS];
7839 
7840  goto yynewstate;
7841 
7842 
7843 /*--------------------------------------.
7844 | yyerrlab -- here on detecting error. |
7845 `--------------------------------------*/
7846 yyerrlab:
7847  /* Make sure we have latest lookahead translation. See comments at
7848  user semantic actions for why this is necessary. */
7849  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
7850 
7851  /* If not already recovering from an error, report this error. */
7852  if (!yyerrstatus)
7853  {
7854  ++yynerrs;
7855 #if ! YYERROR_VERBOSE
7856  yyerror (YY_("syntax error"));
7857 #else
7858 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
7859  yyssp, yytoken)
7860  {
7861  char const *yymsgp = YY_("syntax error");
7862  int yysyntax_error_status;
7863  yysyntax_error_status = YYSYNTAX_ERROR;
7864  if (yysyntax_error_status == 0)
7865  yymsgp = yymsg;
7866  else if (yysyntax_error_status == 1)
7867  {
7868  if (yymsg != yymsgbuf)
7869  YYSTACK_FREE (yymsg);
7870  yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
7871  if (!yymsg)
7872  {
7873  yymsg = yymsgbuf;
7874  yymsg_alloc = sizeof yymsgbuf;
7875  yysyntax_error_status = 2;
7876  }
7877  else
7878  {
7879  yysyntax_error_status = YYSYNTAX_ERROR;
7880  yymsgp = yymsg;
7881  }
7882  }
7883  yyerror (yymsgp);
7884  if (yysyntax_error_status == 2)
7885  goto yyexhaustedlab;
7886  }
7887 # undef YYSYNTAX_ERROR
7888 #endif
7889  }
7890 
7891 
7892 
7893  if (yyerrstatus == 3)
7894  {
7895  /* If just tried and failed to reuse lookahead token after an
7896  error, discard it. */
7897 
7898  if (yychar <= YYEOF)
7899  {
7900  /* Return failure if at end of input. */
7901  if (yychar == YYEOF)
7902  YYABORT;
7903  }
7904  else
7905  {
7906  yydestruct ("Error: discarding",
7907  yytoken, &yylval);
7908  yychar = YYEMPTY;
7909  }
7910  }
7911 
7912  /* Else will try to reuse lookahead token after shifting the error
7913  token. */
7914  goto yyerrlab1;
7915 
7916 
7917 /*---------------------------------------------------.
7918 | yyerrorlab -- error raised explicitly by YYERROR. |
7919 `---------------------------------------------------*/
7920 yyerrorlab:
7921 
7922  /* Pacify compilers like GCC when the user code never invokes
7923  YYERROR and the label yyerrorlab therefore never appears in user
7924  code. */
7925  if (/*CONSTCOND*/ 0)
7926  goto yyerrorlab;
7927 
7928  /* Do not reclaim the symbols of the rule whose action triggered
7929  this YYERROR. */
7930  YYPOPSTACK (yylen);
7931  yylen = 0;
7932  YY_STACK_PRINT (yyss, yyssp);
7933  yystate = *yyssp;
7934  goto yyerrlab1;
7935 
7936 
7937 /*-------------------------------------------------------------.
7938 | yyerrlab1 -- common code for both syntax error and YYERROR. |
7939 `-------------------------------------------------------------*/
7940 yyerrlab1:
7941  yyerrstatus = 3; /* Each real token shifted decrements this. */
7942 
7943  for (;;)
7944  {
7945  yyn = yypact[yystate];
7946  if (!yypact_value_is_default (yyn))
7947  {
7948  yyn += YYTERROR;
7949  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7950  {
7951  yyn = yytable[yyn];
7952  if (0 < yyn)
7953  break;
7954  }
7955  }
7956 
7957  /* Pop the current state because it cannot handle the error token. */
7958  if (yyssp == yyss)
7959  YYABORT;
7960 
7961 
7962  yydestruct ("Error: popping",
7963  yystos[yystate], yyvsp);
7964  YYPOPSTACK (1);
7965  yystate = *yyssp;
7966  YY_STACK_PRINT (yyss, yyssp);
7967  }
7968 
7970  *++yyvsp = yylval;
7972 
7973 
7974  /* Shift the error token. */
7975  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7976 
7977  yystate = yyn;
7978  goto yynewstate;
7979 
7980 
7981 /*-------------------------------------.
7982 | yyacceptlab -- YYACCEPT comes here. |
7983 `-------------------------------------*/
7984 yyacceptlab:
7985  yyresult = 0;
7986  goto yyreturn;
7987 
7988 /*-----------------------------------.
7989 | yyabortlab -- YYABORT comes here. |
7990 `-----------------------------------*/
7991 yyabortlab:
7992  yyresult = 1;
7993  goto yyreturn;
7994 
7995 #if !defined yyoverflow || YYERROR_VERBOSE
7996 /*-------------------------------------------------.
7997 | yyexhaustedlab -- memory exhaustion comes here. |
7998 `-------------------------------------------------*/
7999 yyexhaustedlab:
8000  yyerror (YY_("memory exhausted"));
8001  yyresult = 2;
8002  /* Fall through. */
8003 #endif
8004 
8005 yyreturn:
8006  if (yychar != YYEMPTY)
8007  {
8008  /* Make sure we have latest lookahead translation. See comments at
8009  user semantic actions for why this is necessary. */
8010  yytoken = YYTRANSLATE (yychar);
8011  yydestruct ("Cleanup: discarding lookahead",
8012  yytoken, &yylval);
8013  }
8014  /* Do not reclaim the symbols of the rule whose action triggered
8015  this YYABORT or YYACCEPT. */
8016  YYPOPSTACK (yylen);
8017  YY_STACK_PRINT (yyss, yyssp);
8018  while (yyssp != yyss)
8019  {
8020  yydestruct ("Cleanup: popping",
8021  yystos[*yyssp], yyvsp);
8022  YYPOPSTACK (1);
8023  }
8024 #ifndef yyoverflow
8025  if (yyss != yyssa)
8026  YYSTACK_FREE (yyss);
8027 #endif
8028 #if YYERROR_VERBOSE
8029  if (yymsg != yymsgbuf)
8030  YYSTACK_FREE (yymsg);
8031 #endif
8032  return yyresult;
8033 }
8034 #line 3406 "parser.y" /* yacc.c:1906 */
8035 
#define TOK_PTR64
#define TOK_INT32
#define TOK_EQ
The type of an expression.
Definition: type.h:22
#define TOK_DECLTYPE
#define TOK_WHILE
#define TOK_CPROVER_LOOP_INVARIANT
#define TOK_FRIEND
static int yysyntax_error(size_t *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
#define TOK_ASM_STRING
static const yytype_int16 yytable[]
#define TOK_PUBLIC
#define TOK_DELETE
const std::string & id2string(const irep_idt &d)
Definition: irep.h:43
#define yydebug
#define TOK_SIGNED
#define yychar
#define TOK_TEMPLATE
short int yytype_int16
#define TOK_INCR
#define TOK_GCC_FLOAT32
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
#define TOK_TRUE
#define TOK_OPERATOR
#define TOK_ACSL_EXISTS
#define TOK_VOID
#define TOK_GCC_ATTRIBUTE_ALIGNED
static const yytype_int16 yydefgoto[]
static const yytype_uint8 yytranslate[]
#define TOK_IDENTIFIER
#define TOK_COMPLEX
static const yytype_int16 yypact[]
#define TOK_FASTCALL
#define TOK_TRY
#define TOK_MODASSIGN
void set_is_member(bool is_member)
std::vector< irept > subt
Definition: irep.h:90
#define TOK_RETURN
yytokentype
Definition: ansi_c_y.tab.h:46
#define TOK_THROW
#define TOK_BOOL
#define YYLAST
#define TOK_BUILTIN_VA_ARG
#define TOK_SCANNER_EOF
#define TOK_CPROVER_TRY
#define YYSTACK_ALLOC
#define TOK_GCC_FLOAT128
#define TOK_EQUIVALENT
#define TOK_MSC_DECLSPEC
void move_to_operands(exprt &expr)
Definition: expr.cpp:22
void set_is_parameter(bool is_parameter)
subtypest & subtypes()
Definition: type.h:58
#define TOK_PRIVATE
#define TOK_GCC_BUILTIN_TYPES_COMPATIBLE_P
#define TOK_SWITCH
#define yypact_value_is_default(Yystate)
#define YYNTOKENS
#define yylval
#define stack_type(x)
Definition: parser.h:146
#define TOK_GCC_FLOAT16
#define YYSIZE_T
#define YY_NULLPTR
#define TOK_CONTINUE
#define TOK_GCC_FLOAT128X
#define TOK_FORALL
#define TOK_XORASSIGN
typet & type()
Definition: expr.h:56
#define TOK_GCC_ATTRIBUTE_TRANSPARENT_UNION
#define yynerrs
static const yytype_int16 yycheck[]
#define YYSTACK_ALLOC_MAXIMUM
static const char *const yytname[]
Definition: jsil_y.tab.cpp:593
#define TOK_IMAG
#define TOK_NEW
#define TOK_MSC_IF_NOT_EXISTS
signed char yytype_int8
void set_is_static_assert(bool is_static_assert)
#define TOK_VIRTUAL
#define TOK_CPROVER_ATOMIC
#define TOK_GCC_ATTRIBUTE_SECTION
#define YYINITDEPTH
#define TOK_CONST
#define YY_(Msgid)
#define TOK_CPROVER_ENSURES
#define TOK_RESTRICT
ansi_c_id_classt id_class
Definition: ansi_c_scope.h:31
#define TOK_STATIC
#define TOK_CPROVER_CATCH
#define YYEMPTY
#define TOK_CHAR
void set_is_enum_constant(bool is_enum_constant)
#define TOK_UNION
#define TOK_THREAD_LOCAL
int yyansi_cparse(void)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
#define TOK_MSC_BASED
#define TOK_REAL
#define TOK_TYPEDEFNAME
#define TOK_GCC_ASM
#define TOK_GCC_AUTO_TYPE
#define YY_REDUCE_PRINT(Rule)
#define TOK_ATOMIC_TYPE_QUALIFIER
#define TOK_MUTABLE
static size_t yytnamerr(char *yyres, const char *yystr)
#define TOK_DOTPM
const declaratorst & declarators() const
#define TOK_ARROWPM
#define TOK_TYPEOF
#define TOK_GCC_ATTRIBUTE_GNU_INLINE
#define TOK_GCC_ATTRIBUTE_ALIAS
#define TOK_GCC_ATTRIBUTE_PACKED
#define TOK_ELLIPSIS
#define yyparse
#define TOK_GCC_ATTRIBUTE
#define TOK_VOLATILE
#define YYSTYPE
#define TOK_GENERIC
void free(void *)
#define TOK_STRUCT
#define TOK_GCC_ATTRIBUTE_FALLTHROUGH
#define TOK_DEFAULT
#define TOK_MINUSASSIGN
#define TOK_CLANG_BUILTIN_CONVERTVECTOR
#define TOK_GCC_FLOAT64X
#define TOK_STDCALL
The NIL expression.
Definition: std_expr.h:4510
#define TOK_PTR32
void add_initializer(exprt &value)
#define TOK_CONSTEXPR
#define TOK_GCC_DECIMAL32
#define TOK_IMPLIES
yytype_int16 yyss_alloc
#define TOK_GCC_ATTRIBUTE_DESTRUCTOR
static const yytype_int16 yypgoto[]
#define TOK_GCC_FLOAT64
#define YYEOF
#define YYSTACK_BYTES(N)
#define TOK_STATIC_ASSERT
#define YYTERROR
#define TOK_GCC_ATTRIBUTE_USED
#define YYUSE(E)
#define yyerror
#define TOK_THIS
static size_t yystrlen(const char *yystr)
#define TOK_OROR
Base class for tree-like data structures with sharing.
Definition: irep.h:86
#define forall_operands(it, expr)
Definition: expr.h:17
#define TOK_MSC_LEAVE
#define TOK_DOUBLE
#define TOK_TYPEDEF
unsigned yyvs_alloc
unsigned char yytype_uint8
#define TOK_GE
#define TOK_GOTO
#define YYTRANSLATE(YYX)
#define yylex
#define TOK_UNSIGNED
#define TOK_CATCH
#define TOK_BREAK
static const yytype_uint16 yystos[]
#define TOK_NE
#define TOK_OFFSETOF
#define TOK_ACSL_FORALL
#define TOK_GCC_FLOAT32X
#define TOK_AUTO
#define YYFINAL
std::vector< typet > subtypest
Definition: type.h:56
#define TOK_EXPLICIT
#define TOK_GCC_ATTRIBUTE_VECTOR_SIZE
#define TOK_GCC_ATTRIBUTE_CONSTRUCTOR
#define TOK_INT64
#define TOK_CHAR32_T
#define TOK_DIVASSIGN
char * yyansi_ctext
#define TOK_ENUM
#define TOK_INT8
#define TOK_ALIGNAS
#define TOK_USING
#define TOK_EXTERN
#define TOK_GCC_ATTRIBUTE_ALWAYS_INLINE
#define YYABORT
#define TOK_INLINE
#define YYMAXDEPTH
#define TOK_IMAGINARY
#define TOK_CASE
#define YYPOPSTACK(N)
#define TOK_TYPENAME
#define TOK_ARRAY_OF
#define TOK_FOR
#define TOK_CPROVER_ID
#define TOK_ANDAND
#define TOK_SHIFTRIGHT
#define YYACCEPT
#define PARSER
#define TOK_CW_VAR_ARG_TYPEOF
#define TOK_ELSE
#define TOK_GCC_INT128
#define TOK_UNARY_TYPE_PREDICATE
#define TOK_ALIGNOF
#define TOK_SCOPE
#define YYSTACK_FREE
#define YYCASE_(N, S)
#define YYSYNTAX_ERROR
#define TOK_MULTASSIGN
#define TOK_MSC_TRY
#define TOK_MSC_UUIDOF
#define TOK_STRING
#define TOK_CPROVER_REQUIRES
#define TOK_FALSE
#define TOK_EXISTS
Base class for all expressions.
Definition: expr.h:42
#define TOK_CHARACTER
#define TOK_FLOATING
#define TOK_INT
#define TOK_LE
std::string to_string(const string_constraintt &expr)
Used for debug printing.
exprt convert_integer_literal(const std::string &src)
#define TOK_GCC_LABEL
#define TOK_DO
#define TOK_CHAR16_T
#define TOK_CDECL
#define TOK_WCHAR_T
#define YY_STACK_PRINT(Bottom, Top)
#define TOK_ANDASSIGN
#define TOK_INTEGER
#define TOK_PLUSASSIGN
void * malloc(size_t)
#define TOK_NAMESPACE
#define TOK_UNDERLYING_TYPE
#define TOK_CPROVER_BOOL
#define TOK_CLRCALL
#define TOK_CPROVER_FINALLY
#define TOK_TYPEID
#define TOK_NULLPTR
void swap(irept &irep)
Definition: irep.h:231
#define TOK_GCC_DECIMAL64
unsigned short int yytype_uint16
source_locationt & add_source_location()
Definition: expr.h:130
#define TOK_NOEXCEPT
unsigned yyansi_clval
#define TOK_SHIFTLEFT
#define TOK_DECR
#define TOK_CLASS
#define TOK_CPROVER_FLOATBV
#define TOK_BINARY_TYPE_PREDICATE
dstringt irep_idt
Definition: irep.h:31
#define TOK_GCC_FLOAT80
static const yytype_uint16 yyr1[]
static const yytype_uint16 yydefact[]
#define TOK_GCC_ASM_PAREN
ansi_c_declarationt & to_ansi_c_declaration(exprt &expr)
#define TOK_GCC_ATTRIBUTE_MODE
#define YYDPRINTF(Args)
#define TOK_MSC_EXCEPT
#define TOK_GCC_ATTRIBUTE_NORETURN
int yyansi_clex()
The main scanner function which does all the work.
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
#define TOK_ARROW
#define TOK_CPROVER_FIXEDBV
#define TOK_ATOMIC_TYPE_SPECIFIER
#define TOK_GCC_DECIMAL128
#define TOK_SCANNER_ERROR
C++ Language Conversion.
operandst & operands()
Definition: expr.h:66
#define TOK_INT16
#define stack(x)
Definition: parser.h:144
#define TOK_MSC_ASM
#define TOK_IF
#define TOK_MSC_IF_EXISTS
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define TOK_ORASSIGN
irep_idt prefixed_name
Definition: ansi_c_scope.h:32
#define TOK_MSC_FINALLY
#define TOK_PROTECTED
static void yydestruct(const char *yymsg, int yytype, unsigned *yyvaluep)
static const yytype_uint8 yyr2[]
#define TOK_GCC_ATTRIBUTE_WEAK
#define TOK_SIZEOF
#define TOK_LONG
static char * yystpcpy(char *yydest, const char *yysrc)
#define yytable_value_is_error(Yytable_value)
#define TOK_REGISTER
void set(const irep_namet &name, const irep_idt &value)
Definition: irep.h:214
#define TOK_SHRASSIGN
#define TOK_INTERFACE
#define TOK_SHORT
goal_filters add(util_make_unique< internal_goals_filtert >(message_handler))
#define TOK_NORETURN
#define TOK_SHLASSIGN
#define TOK_FLOAT
#define TOK_CPROVER_BITVECTOR
#define TOK_CPROVER_THROW