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 249 "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_FLOAT80 = 332,
223  TOK_GCC_FLOAT128 = 333,
224  TOK_GCC_FLOAT128_ALT = 334,
225  TOK_GCC_INT128 = 335,
226  TOK_GCC_DECIMAL32 = 336,
227  TOK_GCC_DECIMAL64 = 337,
228  TOK_GCC_DECIMAL128 = 338,
229  TOK_GCC_ASM = 339,
230  TOK_GCC_ASM_PAREN = 340,
231  TOK_GCC_ATTRIBUTE = 341,
244  TOK_GCC_LABEL = 354,
245  TOK_MSC_ASM = 355,
246  TOK_MSC_BASED = 356,
247  TOK_CW_VAR_ARG_TYPEOF = 357,
248  TOK_BUILTIN_VA_ARG = 358,
251  TOK_OFFSETOF = 361,
252  TOK_ALIGNOF = 362,
253  TOK_MSC_TRY = 363,
254  TOK_MSC_FINALLY = 364,
255  TOK_MSC_EXCEPT = 365,
256  TOK_MSC_LEAVE = 366,
257  TOK_MSC_DECLSPEC = 367,
258  TOK_INTERFACE = 368,
259  TOK_CDECL = 369,
260  TOK_STDCALL = 370,
261  TOK_FASTCALL = 371,
262  TOK_CLRCALL = 372,
263  TOK_FORALL = 373,
264  TOK_EXISTS = 374,
265  TOK_ACSL_FORALL = 375,
266  TOK_ACSL_EXISTS = 376,
267  TOK_ARRAY_OF = 377,
268  TOK_CPROVER_BITVECTOR = 378,
269  TOK_CPROVER_FLOATBV = 379,
270  TOK_CPROVER_FIXEDBV = 380,
271  TOK_CPROVER_ATOMIC = 381,
272  TOK_CPROVER_BOOL = 382,
273  TOK_CPROVER_THROW = 383,
274  TOK_CPROVER_CATCH = 384,
275  TOK_CPROVER_TRY = 385,
276  TOK_CPROVER_FINALLY = 386,
277  TOK_CPROVER_ID = 387,
279  TOK_CPROVER_REQUIRES = 389,
280  TOK_CPROVER_ENSURES = 390,
281  TOK_IMPLIES = 391,
282  TOK_EQUIVALENT = 392,
283  TOK_TRUE = 393,
284  TOK_FALSE = 394,
285  TOK_REAL = 395,
286  TOK_IMAG = 396,
287  TOK_ALIGNAS = 397,
290  TOK_GENERIC = 400,
291  TOK_IMAGINARY = 401,
292  TOK_NORETURN = 402,
293  TOK_STATIC_ASSERT = 403,
294  TOK_THREAD_LOCAL = 404,
295  TOK_NULLPTR = 405,
296  TOK_CONSTEXPR = 406,
297  TOK_SCANNER_ERROR = 407,
298  TOK_SCANNER_EOF = 408,
299  TOK_CATCH = 409,
300  TOK_CHAR16_T = 410,
301  TOK_CHAR32_T = 411,
302  TOK_CLASS = 412,
303  TOK_DELETE = 413,
304  TOK_DECLTYPE = 414,
305  TOK_EXPLICIT = 415,
306  TOK_FRIEND = 416,
307  TOK_MUTABLE = 417,
308  TOK_NAMESPACE = 418,
309  TOK_NEW = 419,
310  TOK_NOEXCEPT = 420,
311  TOK_OPERATOR = 421,
312  TOK_PRIVATE = 422,
313  TOK_PROTECTED = 423,
314  TOK_PUBLIC = 424,
315  TOK_TEMPLATE = 425,
316  TOK_THIS = 426,
317  TOK_THROW = 427,
318  TOK_TYPEID = 428,
319  TOK_TYPENAME = 429,
320  TOK_TRY = 430,
321  TOK_USING = 431,
322  TOK_VIRTUAL = 432,
323  TOK_SCOPE = 433,
324  TOK_DOTPM = 434,
325  TOK_ARROWPM = 435,
328  TOK_MSC_UUIDOF = 438,
329  TOK_MSC_IF_EXISTS = 439,
330  TOK_MSC_IF_NOT_EXISTS = 440,
331  TOK_UNDERLYING_TYPE = 441
332  };
333 #endif
334 /* Tokens. */
335 #define TOK_AUTO 258
336 #define TOK_BOOL 259
337 #define TOK_COMPLEX 260
338 #define TOK_BREAK 261
339 #define TOK_CASE 262
340 #define TOK_CHAR 263
341 #define TOK_CONST 264
342 #define TOK_CONTINUE 265
343 #define TOK_DEFAULT 266
344 #define TOK_DO 267
345 #define TOK_DOUBLE 268
346 #define TOK_ELSE 269
347 #define TOK_ENUM 270
348 #define TOK_EXTERN 271
349 #define TOK_FLOAT 272
350 #define TOK_FOR 273
351 #define TOK_GOTO 274
352 #define TOK_IF 275
353 #define TOK_INLINE 276
354 #define TOK_INT 277
355 #define TOK_LONG 278
356 #define TOK_REGISTER 279
357 #define TOK_RESTRICT 280
358 #define TOK_RETURN 281
359 #define TOK_SHORT 282
360 #define TOK_SIGNED 283
361 #define TOK_SIZEOF 284
362 #define TOK_STATIC 285
363 #define TOK_STRUCT 286
364 #define TOK_SWITCH 287
365 #define TOK_TYPEDEF 288
366 #define TOK_UNION 289
367 #define TOK_UNSIGNED 290
368 #define TOK_VOID 291
369 #define TOK_VOLATILE 292
370 #define TOK_WCHAR_T 293
371 #define TOK_WHILE 294
372 #define TOK_ARROW 295
373 #define TOK_INCR 296
374 #define TOK_DECR 297
375 #define TOK_SHIFTLEFT 298
376 #define TOK_SHIFTRIGHT 299
377 #define TOK_LE 300
378 #define TOK_GE 301
379 #define TOK_EQ 302
380 #define TOK_NE 303
381 #define TOK_ANDAND 304
382 #define TOK_OROR 305
383 #define TOK_ELLIPSIS 306
384 #define TOK_MULTASSIGN 307
385 #define TOK_DIVASSIGN 308
386 #define TOK_MODASSIGN 309
387 #define TOK_PLUSASSIGN 310
388 #define TOK_MINUSASSIGN 311
389 #define TOK_SHLASSIGN 312
390 #define TOK_SHRASSIGN 313
391 #define TOK_ANDASSIGN 314
392 #define TOK_XORASSIGN 315
393 #define TOK_ORASSIGN 316
394 #define TOK_IDENTIFIER 317
395 #define TOK_TYPEDEFNAME 318
396 #define TOK_INTEGER 319
397 #define TOK_FLOATING 320
398 #define TOK_CHARACTER 321
399 #define TOK_STRING 322
400 #define TOK_ASM_STRING 323
401 #define TOK_INT8 324
402 #define TOK_INT16 325
403 #define TOK_INT32 326
404 #define TOK_INT64 327
405 #define TOK_PTR32 328
406 #define TOK_PTR64 329
407 #define TOK_TYPEOF 330
408 #define TOK_GCC_AUTO_TYPE 331
409 #define TOK_GCC_FLOAT80 332
410 #define TOK_GCC_FLOAT128 333
411 #define TOK_GCC_FLOAT128_ALT 334
412 #define TOK_GCC_INT128 335
413 #define TOK_GCC_DECIMAL32 336
414 #define TOK_GCC_DECIMAL64 337
415 #define TOK_GCC_DECIMAL128 338
416 #define TOK_GCC_ASM 339
417 #define TOK_GCC_ASM_PAREN 340
418 #define TOK_GCC_ATTRIBUTE 341
419 #define TOK_GCC_ATTRIBUTE_ALIGNED 342
420 #define TOK_GCC_ATTRIBUTE_TRANSPARENT_UNION 343
421 #define TOK_GCC_ATTRIBUTE_PACKED 344
422 #define TOK_GCC_ATTRIBUTE_VECTOR_SIZE 345
423 #define TOK_GCC_ATTRIBUTE_MODE 346
424 #define TOK_GCC_ATTRIBUTE_GNU_INLINE 347
425 #define TOK_GCC_ATTRIBUTE_WEAK 348
426 #define TOK_GCC_ATTRIBUTE_ALIAS 349
427 #define TOK_GCC_ATTRIBUTE_SECTION 350
428 #define TOK_GCC_ATTRIBUTE_NORETURN 351
429 #define TOK_GCC_ATTRIBUTE_CONSTRUCTOR 352
430 #define TOK_GCC_ATTRIBUTE_DESTRUCTOR 353
431 #define TOK_GCC_LABEL 354
432 #define TOK_MSC_ASM 355
433 #define TOK_MSC_BASED 356
434 #define TOK_CW_VAR_ARG_TYPEOF 357
435 #define TOK_BUILTIN_VA_ARG 358
436 #define TOK_GCC_BUILTIN_TYPES_COMPATIBLE_P 359
437 #define TOK_CLANG_BUILTIN_CONVERTVECTOR 360
438 #define TOK_OFFSETOF 361
439 #define TOK_ALIGNOF 362
440 #define TOK_MSC_TRY 363
441 #define TOK_MSC_FINALLY 364
442 #define TOK_MSC_EXCEPT 365
443 #define TOK_MSC_LEAVE 366
444 #define TOK_MSC_DECLSPEC 367
445 #define TOK_INTERFACE 368
446 #define TOK_CDECL 369
447 #define TOK_STDCALL 370
448 #define TOK_FASTCALL 371
449 #define TOK_CLRCALL 372
450 #define TOK_FORALL 373
451 #define TOK_EXISTS 374
452 #define TOK_ACSL_FORALL 375
453 #define TOK_ACSL_EXISTS 376
454 #define TOK_ARRAY_OF 377
455 #define TOK_CPROVER_BITVECTOR 378
456 #define TOK_CPROVER_FLOATBV 379
457 #define TOK_CPROVER_FIXEDBV 380
458 #define TOK_CPROVER_ATOMIC 381
459 #define TOK_CPROVER_BOOL 382
460 #define TOK_CPROVER_THROW 383
461 #define TOK_CPROVER_CATCH 384
462 #define TOK_CPROVER_TRY 385
463 #define TOK_CPROVER_FINALLY 386
464 #define TOK_CPROVER_ID 387
465 #define TOK_CPROVER_LOOP_INVARIANT 388
466 #define TOK_CPROVER_REQUIRES 389
467 #define TOK_CPROVER_ENSURES 390
468 #define TOK_IMPLIES 391
469 #define TOK_EQUIVALENT 392
470 #define TOK_TRUE 393
471 #define TOK_FALSE 394
472 #define TOK_REAL 395
473 #define TOK_IMAG 396
474 #define TOK_ALIGNAS 397
475 #define TOK_ATOMIC_TYPE_QUALIFIER 398
476 #define TOK_ATOMIC_TYPE_SPECIFIER 399
477 #define TOK_GENERIC 400
478 #define TOK_IMAGINARY 401
479 #define TOK_NORETURN 402
480 #define TOK_STATIC_ASSERT 403
481 #define TOK_THREAD_LOCAL 404
482 #define TOK_NULLPTR 405
483 #define TOK_CONSTEXPR 406
484 #define TOK_SCANNER_ERROR 407
485 #define TOK_SCANNER_EOF 408
486 #define TOK_CATCH 409
487 #define TOK_CHAR16_T 410
488 #define TOK_CHAR32_T 411
489 #define TOK_CLASS 412
490 #define TOK_DELETE 413
491 #define TOK_DECLTYPE 414
492 #define TOK_EXPLICIT 415
493 #define TOK_FRIEND 416
494 #define TOK_MUTABLE 417
495 #define TOK_NAMESPACE 418
496 #define TOK_NEW 419
497 #define TOK_NOEXCEPT 420
498 #define TOK_OPERATOR 421
499 #define TOK_PRIVATE 422
500 #define TOK_PROTECTED 423
501 #define TOK_PUBLIC 424
502 #define TOK_TEMPLATE 425
503 #define TOK_THIS 426
504 #define TOK_THROW 427
505 #define TOK_TYPEID 428
506 #define TOK_TYPENAME 429
507 #define TOK_TRY 430
508 #define TOK_USING 431
509 #define TOK_VIRTUAL 432
510 #define TOK_SCOPE 433
511 #define TOK_DOTPM 434
512 #define TOK_ARROWPM 435
513 #define TOK_UNARY_TYPE_PREDICATE 436
514 #define TOK_BINARY_TYPE_PREDICATE 437
515 #define TOK_MSC_UUIDOF 438
516 #define TOK_MSC_IF_EXISTS 439
517 #define TOK_MSC_IF_NOT_EXISTS 440
518 #define TOK_UNDERLYING_TYPE 441
519 
520 /* Value type. */
521 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
522 typedef int YYSTYPE;
523 # define YYSTYPE_IS_TRIVIAL 1
524 # define YYSTYPE_IS_DECLARED 1
525 #endif
526 
527 
528 extern YYSTYPE yyansi_clval;
529 
530 int yyansi_cparse (void);
531 
532 #endif /* !YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED */
533 
534 /* Copy the second part of user declarations. */
535 
536 #line 537 "ansi_c_y.tab.cpp" /* yacc.c:358 */
537 
538 #ifdef short
539 # undef short
540 #endif
541 
542 #ifdef YYTYPE_UINT8
543 typedef YYTYPE_UINT8 yytype_uint8;
544 #else
545 typedef unsigned char yytype_uint8;
546 #endif
547 
548 #ifdef YYTYPE_INT8
549 typedef YYTYPE_INT8 yytype_int8;
550 #else
551 typedef signed char yytype_int8;
552 #endif
553 
554 #ifdef YYTYPE_UINT16
555 typedef YYTYPE_UINT16 yytype_uint16;
556 #else
557 typedef unsigned short int yytype_uint16;
558 #endif
559 
560 #ifdef YYTYPE_INT16
561 typedef YYTYPE_INT16 yytype_int16;
562 #else
563 typedef short int yytype_int16;
564 #endif
565 
566 #ifndef YYSIZE_T
567 # ifdef __SIZE_TYPE__
568 # define YYSIZE_T __SIZE_TYPE__
569 # elif defined size_t
570 # define YYSIZE_T size_t
571 # elif ! defined YYSIZE_T
572 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
573 # define YYSIZE_T size_t
574 # else
575 # define YYSIZE_T unsigned int
576 # endif
577 #endif
578 
579 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
580 
581 #ifndef YY_
582 # if defined YYENABLE_NLS && YYENABLE_NLS
583 # if ENABLE_NLS
584 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
585 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
586 # endif
587 # endif
588 # ifndef YY_
589 # define YY_(Msgid) Msgid
590 # endif
591 #endif
592 
593 #ifndef YY_ATTRIBUTE
594 # if (defined __GNUC__ \
595  && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
596  || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
597 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
598 # else
599 # define YY_ATTRIBUTE(Spec) /* empty */
600 # endif
601 #endif
602 
603 #ifndef YY_ATTRIBUTE_PURE
604 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
605 #endif
606 
607 #ifndef YY_ATTRIBUTE_UNUSED
608 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
609 #endif
610 
611 #if !defined _Noreturn \
612  && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
613 # if defined _MSC_VER && 1200 <= _MSC_VER
614 # define _Noreturn __declspec (noreturn)
615 # else
616 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
617 # endif
618 #endif
619 
620 /* Suppress unused-variable warnings by "using" E. */
621 #if ! defined lint || defined __GNUC__
622 # define YYUSE(E) ((void) (E))
623 #else
624 # define YYUSE(E) /* empty */
625 #endif
626 
627 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
628 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
629 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
630  _Pragma ("GCC diagnostic push") \
631  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
632  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
633 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
634  _Pragma ("GCC diagnostic pop")
635 #else
636 # define YY_INITIAL_VALUE(Value) Value
637 #endif
638 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
639 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
640 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
641 #endif
642 #ifndef YY_INITIAL_VALUE
643 # define YY_INITIAL_VALUE(Value) /* Nothing. */
644 #endif
645 
646 
647 #if ! defined yyoverflow || YYERROR_VERBOSE
648 
649 /* The parser invokes alloca or malloc; define the necessary symbols. */
650 
651 # ifdef YYSTACK_USE_ALLOCA
652 # if YYSTACK_USE_ALLOCA
653 # ifdef __GNUC__
654 # define YYSTACK_ALLOC __builtin_alloca
655 # elif defined __BUILTIN_VA_ARG_INCR
656 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
657 # elif defined _AIX
658 # define YYSTACK_ALLOC __alloca
659 # elif defined _MSC_VER
660 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
661 # define alloca _alloca
662 # else
663 # define YYSTACK_ALLOC alloca
664 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
665 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
666  /* Use EXIT_SUCCESS as a witness for stdlib.h. */
667 # ifndef EXIT_SUCCESS
668 # define EXIT_SUCCESS 0
669 # endif
670 # endif
671 # endif
672 # endif
673 # endif
674 
675 # ifdef YYSTACK_ALLOC
676  /* Pacify GCC's 'empty if-body' warning. */
677 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
678 # ifndef YYSTACK_ALLOC_MAXIMUM
679  /* The OS might guarantee only one guard page at the bottom of the stack,
680  and a page size can be as small as 4096 bytes. So we cannot safely
681  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
682  to allow for a few compiler-allocated temporary stack slots. */
683 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
684 # endif
685 # else
686 # define YYSTACK_ALLOC YYMALLOC
687 # define YYSTACK_FREE YYFREE
688 # ifndef YYSTACK_ALLOC_MAXIMUM
689 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
690 # endif
691 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
692  && ! ((defined YYMALLOC || defined malloc) \
693  && (defined YYFREE || defined free)))
694 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
695 # ifndef EXIT_SUCCESS
696 # define EXIT_SUCCESS 0
697 # endif
698 # endif
699 # ifndef YYMALLOC
700 # define YYMALLOC malloc
701 # if ! defined malloc && ! defined EXIT_SUCCESS
702 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
703 # endif
704 # endif
705 # ifndef YYFREE
706 # define YYFREE free
707 # if ! defined free && ! defined EXIT_SUCCESS
708 void free (void *); /* INFRINGES ON USER NAME SPACE */
709 # endif
710 # endif
711 # endif
712 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
713 
714 
715 #if (! defined yyoverflow \
716  && (! defined __cplusplus \
717  || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
718 
719 /* A type that is properly aligned for any stack member. */
720 union yyalloc
721 {
724 };
725 
726 /* The size of the maximum gap between one aligned stack and the next. */
727 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
728 
729 /* The size of an array large to enough to hold all stacks, each with
730  N elements. */
731 # define YYSTACK_BYTES(N) \
732  ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
733  + YYSTACK_GAP_MAXIMUM)
734 
735 # define YYCOPY_NEEDED 1
736 
737 /* Relocate STACK from its old location to the new one. The
738  local variables YYSIZE and YYSTACKSIZE give the old and new number of
739  elements in the stack, and YYPTR gives the new location of the
740  stack. Advance YYPTR to a properly aligned location for the next
741  stack. */
742 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
743  do \
744  { \
745  YYSIZE_T yynewbytes; \
746  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
747  Stack = &yyptr->Stack_alloc; \
748  yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
749  yyptr += yynewbytes / sizeof (*yyptr); \
750  } \
751  while (0)
752 
753 #endif
754 
755 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
756 /* Copy COUNT objects from SRC to DST. The source and destination do
757  not overlap. */
758 # ifndef YYCOPY
759 # if defined __GNUC__ && 1 < __GNUC__
760 # define YYCOPY(Dst, Src, Count) \
761  __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
762 # else
763 # define YYCOPY(Dst, Src, Count) \
764  do \
765  { \
766  YYSIZE_T yyi; \
767  for (yyi = 0; yyi < (Count); yyi++) \
768  (Dst)[yyi] = (Src)[yyi]; \
769  } \
770  while (0)
771 # endif
772 # endif
773 #endif /* !YYCOPY_NEEDED */
774 
775 /* YYFINAL -- State number of the termination state. */
776 #define YYFINAL 143
777 /* YYLAST -- Last index in YYTABLE. */
778 #define YYLAST 6128
779 
780 /* YYNTOKENS -- Number of terminals. */
781 #define YYNTOKENS 211
782 /* YYNNTS -- Number of nonterminals. */
783 #define YYNNTS 206
784 /* YYNRULES -- Number of rules. */
785 #define YYNRULES 603
786 /* YYNSTATES -- Number of states. */
787 #define YYNSTATES 1090
788 
789 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
790  by yylex, with out-of-bounds checking. */
791 #define YYUNDEFTOK 2
792 #define YYMAXUTOK 441
793 
794 #define YYTRANSLATE(YYX) \
795  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
796 
797 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
798  as returned by yylex, without out-of-bounds checking. */
799 static const yytype_uint8 yytranslate[] =
800 {
801  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
802  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
803  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
804  2, 2, 2, 201, 2, 2, 2, 203, 196, 2,
805  187, 188, 197, 198, 189, 199, 191, 202, 2, 2,
806  2, 2, 2, 2, 2, 2, 2, 2, 190, 210,
807  204, 209, 205, 208, 2, 2, 2, 2, 2, 2,
808  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
809  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
810  2, 192, 2, 193, 206, 2, 2, 2, 2, 2,
811  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
812  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
813  2, 2, 2, 194, 207, 195, 200, 2, 2, 2,
814  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
815  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
816  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
817  2, 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, 2, 2, 2, 2, 2, 2, 2,
821  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
822  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
823  2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 1, 2, 3, 4,
827  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
828  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
829  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
830  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
831  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
832  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
833  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
834  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
835  85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
836  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
837  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
838  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
839  125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
840  135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
841  145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
842  155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
843  165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
844  175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
845  185, 186
846 };
847 
848 #if YYDEBUG
849  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
850 static const yytype_uint16 yyrline[] =
851 {
852  0, 257, 257, 263, 264, 277, 281, 285, 289, 293,
853  298, 299, 300, 301, 307, 308, 309, 311, 312, 313,
854  314, 315, 316, 317, 321, 331, 335, 342, 349, 359,
855  366, 380, 390, 399, 409, 417, 424, 431, 445, 453,
856  463, 471, 485, 486, 492, 493, 499, 500, 504, 514,
857  515, 517, 526, 535, 541, 547, 553, 560, 570, 584,
858  585, 589, 594, 602, 603, 609, 615, 620, 630, 635,
859  640, 645, 650, 655, 660, 665, 671, 680, 681, 688,
860  693, 701, 702, 704, 706, 711, 712, 714, 719, 720,
861  722, 727, 728, 730, 732, 734, 739, 740, 742, 747,
862  748, 753, 754, 759, 760, 765, 766, 771, 772, 780,
863  781, 789, 790, 795, 796, 803, 813, 814, 816, 818,
864  820, 822, 824, 826, 828, 830, 832, 834, 839, 840,
865  845, 850, 851, 857, 863, 869, 870, 871, 875, 887,
866  886, 899, 898, 911, 910, 926, 933, 937, 941, 946,
867  949, 955, 953, 971, 969, 985, 1003, 1001, 1018, 1019,
868  1020, 1021, 1022, 1026, 1027, 1028, 1029, 1030, 1034, 1035,
869  1039, 1040, 1044, 1051, 1052, 1059, 1066, 1067, 1074, 1075,
870  1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1091,
871  1096, 1104, 1105, 1109, 1110, 1111, 1115, 1116, 1123, 1127,
872  1131, 1135, 1142, 1146, 1150, 1154, 1162, 1166, 1170, 1178,
873  1179, 1183, 1190, 1194, 1198, 1205, 1209, 1213, 1220, 1224,
874  1228, 1235, 1239, 1243, 1250, 1255, 1263, 1264, 1268, 1272,
875  1279, 1288, 1289, 1293, 1297, 1304, 1308, 1312, 1319, 1320,
876  1324, 1328, 1332, 1336, 1340, 1344, 1351, 1356, 1364, 1367,
877  1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1383,
878  1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
879  1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
880  1404, 1405, 1411, 1418, 1425, 1429, 1430, 1431, 1435, 1440,
881  1452, 1449, 1470, 1466, 1490, 1486, 1503, 1505, 1510, 1512,
882  1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532,
883  1534, 1540, 1543, 1547, 1548, 1555, 1557, 1563, 1566, 1570,
884  1571, 1579, 1582, 1586, 1591, 1599, 1600, 1601, 1605, 1612,
885  1623, 1631, 1658, 1666, 1677, 1680, 1691, 1700, 1712, 1715,
886  1719, 1731, 1729, 1743, 1740, 1753, 1764, 1773, 1776, 1780,
887  1785, 1790, 1797, 1808, 1812, 1819, 1820, 1829, 1834, 1841,
888  1850, 1855, 1863, 1871, 1878, 1886, 1895, 1903, 1910, 1918,
889  1926, 1933, 1941, 1949, 1957, 1964, 1975, 1976, 1980, 1984,
890  1989, 1993, 2002, 2006, 2016, 2017, 2023, 2032, 2040, 2048,
891  2050, 2058, 2059, 2067, 2073, 2088, 2095, 2102, 2110, 2117,
892  2125, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145,
893  2146, 2147, 2148, 2152, 2161, 2173, 2181, 2188, 2197, 2208,
894  2215, 2223, 2235, 2242, 2247, 2254, 2269, 2278, 2287, 2298,
895  2299, 2303, 2315, 2328, 2327, 2359, 2376, 2383, 2385, 2387,
896  2389, 2394, 2416, 2421, 2428, 2432, 2438, 2449, 2455, 2464,
897  2473, 2481, 2489, 2494, 2502, 2512, 2514, 2515, 2516, 2517,
898  2529, 2535, 2542, 2550, 2559, 2571, 2575, 2579, 2583, 2589,
899  2599, 2604, 2612, 2616, 2620, 2626, 2636, 2641, 2649, 2653,
900  2657, 2665, 2670, 2678, 2682, 2686, 2691, 2699, 2707, 2709,
901  2713, 2714, 2718, 2723, 2727, 2728, 2732, 2736, 2743, 2770,
902  2775, 2778, 2782, 2787, 2795, 2800, 2801, 2805, 2812, 2816,
903  2820, 2824, 2832, 2836, 2840, 2848, 2853, 2863, 2864, 2865,
904  2869, 2875, 2881, 2889, 2897, 2904, 2911, 2918, 2928, 2929,
905  2930, 2934, 2941, 2951, 2959, 2960, 2964, 2965, 2970, 2974,
906  2975, 2980, 2988, 2990, 3000, 3001, 3006, 3012, 3017, 3025,
907  3027, 3032, 3042, 3043, 3048, 3049, 3053, 3054, 3059, 3066,
908  3079, 3085, 3087, 3097, 3104, 3109, 3110, 3111, 3115, 3116,
909  3120, 3122, 3133, 3132, 3155, 3156, 3164, 3163, 3189, 3196,
910  3206, 3214, 3221, 3230, 3239, 3252, 3258, 3266, 3271, 3281,
911  3292, 3298, 3306, 3311, 3321, 3332, 3334, 3336, 3338, 3344,
912  3353, 3355, 3357, 3358
913 };
914 #endif
915 
916 #if YYDEBUG || YYERROR_VERBOSE || 0
917 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
918  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
919 static const char *const yytname[] =
920 {
921  "$end", "error", "$undefined", "\"auto\"", "\"bool\"", "\"complex\"",
922  "\"break\"", "\"case\"", "\"char\"", "\"const\"", "\"continue\"",
923  "\"default\"", "\"do\"", "\"double\"", "\"else\"", "\"enum\"",
924  "\"extern\"", "\"float\"", "\"for\"", "\"goto\"", "\"if\"", "\"inline\"",
925  "\"int\"", "\"long\"", "\"register\"", "\"restrict\"", "\"return\"",
926  "\"short\"", "\"signed\"", "\"sizeof\"", "\"static\"", "\"struct\"",
927  "\"switch\"", "\"typedef\"", "\"union\"", "\"unsigned\"", "\"void\"",
928  "\"volatile\"", "\"wchar_t\"", "\"while\"", "\"->\"", "\"++\"", "\"--\"",
929  "\"<<\"", "\">>\"", "\"<=\"", "\">=\"", "\"==\"", "\"!=\"", "\"&&\"",
930  "\"||\"", "\"...\"", "\"*=\"", "\"/=\"", "\"%=\"", "\"+=\"", "\"-=\"",
931  "\"<<=\"", "\">>=\"", "\"&=\"", "\"^=\"", "\"|=\"", "TOK_IDENTIFIER",
932  "TOK_TYPEDEFNAME", "TOK_INTEGER", "TOK_FLOATING", "TOK_CHARACTER",
933  "TOK_STRING", "TOK_ASM_STRING", "\"__int8\"", "\"__int16\"",
934  "\"__int32\"", "\"__int64\"", "\"__ptr32\"", "\"__ptr64\"", "\"typeof\"",
935  "\"__auto_type\"", "\"__float80\"", "\"__float128\"", "\"_Float128\"",
936  "\"__int128\"", "\"_Decimal32\"", "\"_Decimal64\"", "\"_Decimal128\"",
937  "\"__asm__\"", "\"__asm__ (with parentheses)\"", "\"__attribute__\"",
938  "\"aligned\"", "\"transparent_union\"", "\"packed\"", "\"vector_size\"",
939  "\"mode\"", "\"__gnu_inline__\"", "\"weak\"", "\"alias\"", "\"section\"",
940  "\"noreturn\"", "\"constructor\"", "\"destructor\"", "\"__label__\"",
941  "\"__asm\"", "\"__based\"", "\"_var_arg_typeof\"",
942  "\"__builtin_va_arg\"", "\"__builtin_types_compatible_p\"",
943  "\"__builtin_convertvector\"", "\"__offsetof\"", "\"__alignof__\"",
944  "\"__try\"", "\"__finally\"", "\"__except\"", "\"__leave\"",
945  "\"__declspec\"", "\"__interface\"", "\"__cdecl\"", "\"__stdcall\"",
946  "\"__fastcall\"", "\"__clrcall\"", "\"forall\"", "\"exists\"",
947  "\"\\\\forall\"", "\"\\\\exists\"", "\"array_of\"",
948  "\"__CPROVER_bitvector\"", "\"__CPROVER_floatbv\"",
949  "\"__CPROVER_fixedbv\"", "\"__CPROVER_atomic\"", "\"__CPROVER_bool\"",
950  "\"__CPROVER_throw\"", "\"__CPROVER_catch\"", "\"__CPROVER_try\"",
951  "\"__CPROVER_finally\"", "\"__CPROVER_ID\"",
952  "\"__CPROVER_loop_invariant\"", "\"__CPROVER_requires\"",
953  "\"__CPROVER_ensures\"", "\"==>\"", "\"<==>\"", "\"TRUE\"", "\"FALSE\"",
954  "\"__real__\"", "\"__imag__\"", "\"_Alignas\"", "\"_Atomic\"",
955  "\"_Atomic()\"", "\"_Generic\"", "\"_Imaginary\"", "\"_Noreturn\"",
956  "\"_Static_assert\"", "\"_Thread_local\"", "\"nullptr\"",
957  "\"constexpr\"", "TOK_SCANNER_ERROR", "TOK_SCANNER_EOF", "\"catch\"",
958  "\"char16_t\"", "\"char32_t\"", "\"class\"", "\"delete\"",
959  "\"decltype\"", "\"explicit\"", "\"friend\"", "\"mutable\"",
960  "\"namespace\"", "\"new\"", "\"noexcept\"", "\"operator\"",
961  "\"private\"", "\"protected\"", "\"public\"", "\"template\"", "\"this\"",
962  "\"throw\"", "\"typeid\"", "\"typename\"", "\"try\"", "\"using\"",
963  "\"virtual\"", "\"::\"", "\".*\"", "\"->*\"", "TOK_UNARY_TYPE_PREDICATE",
964  "TOK_BINARY_TYPE_PREDICATE", "\"__uuidof\"", "\"__if_exists\"",
965  "\"__if_not_exists\"", "\"__underlying_type\"", "'('", "')'", "','",
966  "':'", "'.'", "'['", "']'", "'{'", "'}'", "'&'", "'*'", "'+'", "'-'",
967  "'~'", "'!'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "'='",
968  "';'", "$accept", "grammar", "identifier", "typedef_name", "integer",
969  "floating", "character", "string", "constant", "primary_expression",
970  "generic_selection", "generic_assoc_list", "generic_association",
971  "gcc_builtin_expressions", "clang_builtin_expressions",
972  "cw_builtin_expressions", "offsetof", "offsetof_member_designator",
973  "quantifier_expression", "loop_invariant_opt", "requires_opt",
974  "ensures_opt", "statement_expression", "postfix_expression",
975  "member_name", "argument_expression_list", "unary_expression",
976  "cast_expression", "multiplicative_expression", "additive_expression",
977  "shift_expression", "relational_expression", "equality_expression",
978  "and_expression", "exclusive_or_expression", "inclusive_or_expression",
979  "logical_and_expression", "logical_or_expression",
980  "logical_implication_expression", "logical_equivalence_expression",
981  "conditional_expression", "assignment_expression", "comma_expression",
982  "constant_expression", "comma_expression_opt", "declaration",
983  "static_assert_declaration", "default_declaring_list", "@1", "@2", "$@3",
984  "post_declarator_attribute", "post_declarator_attributes",
985  "post_declarator_attributes_opt", "declaring_list", "@4", "@5", "$@6",
986  "declaration_specifier", "type_specifier", "declaration_qualifier_list",
987  "type_qualifier_list", "attribute_type_qualifier_list",
988  "declaration_qualifier", "type_qualifier", "alignas_specifier",
989  "attribute_or_type_qualifier",
990  "attribute_or_type_qualifier_or_storage_class",
991  "attribute_type_qualifier_storage_class_list",
992  "basic_declaration_specifier", "basic_type_specifier",
993  "sue_declaration_specifier", "sue_type_specifier",
994  "typedef_declaration_specifier", "typeof_declaration_specifier",
995  "atomic_declaration_specifier", "typedef_type_specifier",
996  "typeof_specifier", "typeof_type_specifier", "atomic_specifier",
997  "atomic_type_specifier", "msc_decl_identifier", "msc_decl_modifier",
998  "msc_declspec_seq", "msc_declspec", "msc_declspec_opt", "storage_class",
999  "basic_type_name", "elaborated_type_name", "array_of_construct",
1000  "pragma_packed", "aggregate_name", "$@7", "$@8", "$@9", "aggregate_key",
1001  "gcc_type_attribute", "gcc_attribute", "gcc_attribute_list",
1002  "gcc_attribute_specifier", "gcc_type_attribute_opt",
1003  "gcc_type_attribute_list", "member_declaration_list_opt",
1004  "member_declaration_list", "member_declaration",
1005  "member_default_declaring_list", "member_declaring_list",
1006  "member_declarator", "member_identifier_declarator",
1007  "bit_field_size_opt", "bit_field_size", "enum_name", "$@10", "$@11",
1008  "enum_key", "enumerator_list_opt", "enumerator_list",
1009  "enumerator_declaration", "enumerator_value_opt", "parameter_type_list",
1010  "KnR_parameter_list", "KnR_parameter", "parameter_list",
1011  "parameter_declaration", "identifier_or_typedef_name", "type_name",
1012  "initializer_opt", "initializer", "initializer_list",
1013  "initializer_list_opt", "designated_initializer", "designator",
1014  "statement", "declaration_statement", "labeled_statement",
1015  "compound_statement", "compound_scope", "statement_list",
1016  "expression_statement", "selection_statement",
1017  "declaration_or_expression_statement", "iteration_statement", "$@12",
1018  "jump_statement", "gcc_local_label_statement", "gcc_local_label_list",
1019  "gcc_local_label", "gcc_asm_statement", "msc_asm_statement",
1020  "msc_seh_statement", "cprover_exception_statement",
1021  "volatile_or_goto_opt", "gcc_asm_commands", "gcc_asm_assembler_template",
1022  "gcc_asm_outputs", "gcc_asm_output", "gcc_asm_output_list",
1023  "gcc_asm_inputs", "gcc_asm_input", "gcc_asm_input_list",
1024  "gcc_asm_clobbered_registers", "gcc_asm_clobbered_register",
1025  "gcc_asm_clobbered_registers_list", "gcc_asm_labels",
1026  "gcc_asm_labels_list", "gcc_asm_label", "translation_unit",
1027  "external_definition_list", "external_definition", "asm_definition",
1028  "function_definition", "function_body", "KnR_parameter_header_opt",
1029  "KnR_parameter_header", "KnR_parameter_declaration",
1030  "KnR_declaration_qualifier_list", "KnR_basic_declaration_specifier",
1031  "KnR_typedef_declaration_specifier", "KnR_sue_declaration_specifier",
1032  "KnR_declaration_specifier", "KnR_parameter_declaring_list",
1033  "function_head", "declarator", "paren_attribute_declarator",
1034  "typedef_declarator", "parameter_typedef_declarator",
1035  "clean_typedef_declarator", "clean_postfix_typedef_declarator",
1036  "paren_typedef_declarator", "paren_postfix_typedef_declarator",
1037  "simple_paren_typedef_declarator", "identifier_declarator",
1038  "unary_identifier_declarator", "postfix_identifier_declarator",
1039  "paren_identifier_declarator", "abstract_declarator",
1040  "parameter_abstract_declarator", "postfixing_abstract_declarator",
1041  "$@13", "parameter_postfixing_abstract_declarator", "$@14",
1042  "array_abstract_declarator", "unary_abstract_declarator",
1043  "parameter_unary_abstract_declarator", "postfix_abstract_declarator",
1044  "parameter_postfix_abstract_declarator", YY_NULLPTR
1045 };
1046 #endif
1047 
1048 # ifdef YYPRINT
1049 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1050  (internal) symbol number NUM (which must be that of a token). */
1051 static const yytype_uint16 yytoknum[] =
1052 {
1053  0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1054  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1055  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1056  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1057  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1058  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1059  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1060  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1061  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1062  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1063  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1064  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1065  375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1066  385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1067  395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1068  405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1069  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1070  425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1071  435, 436, 437, 438, 439, 440, 441, 40, 41, 44,
1072  58, 46, 91, 93, 123, 125, 38, 42, 43, 45,
1073  126, 33, 47, 37, 60, 62, 94, 124, 63, 61,
1074  59
1075 };
1076 # endif
1077 
1078 #define YYPACT_NINF -1002
1079 
1080 #define yypact_value_is_default(Yystate) \
1081  (!!((Yystate) == (-1002)))
1082 
1083 #define YYTABLE_NINF -573
1084 
1085 #define yytable_value_is_error(Yytable_value) \
1086  0
1087 
1088  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1089  STATE-NUM. */
1090 static const yytype_int16 yypact[] =
1091 {
1092  1899, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002,
1093  -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002,
1094  -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002,
1095  -1002, -1002, -137, 322, -1002, -1002, -1002, -1002, -1002, -1002,
1096  -1002, -1002, -120, -109, -86, -69, -111, -36, 28, 43,
1097  -1002, -1002, 71, 76, -1002, 84, -1002, 87, -1002, 682,
1098  183, 3465, 682, -1002, 307, -1002, 5, -1002, 112, -134,
1099  -125, 886, 919, 2201, 2201, -1002, -1002, 5657, 5657, 5740,
1100  5740, 5740, 5740, 5740, 5740, 900, 1239, 900, 1239, -1002,
1101  -1002, 5, -1002, -1002, -1002, 5, -1002, -1002, 5, -1002,
1102  1899, -1002, -1002, -1002, 214, -1002, -1002, -1002, 152, 4146,
1103  779, 1368, 152, 173, -1002, -1002, -1002, -1002, -1002, -1002,
1104  -1002, -1002, 288, 177, 4698, 129, 5, 4698, 4698, 4698,
1105  -1002, 4146, 5, 4698, 216, 211, 222, 3465, -1002, -1002,
1106  -1002, -1002, -1002, -1002, -1002, -1002, 5, -1002, 682, -1002,
1107  5, -1002, -1002, 876, -1002, 1050, 5, -1002, -1002, 5,
1108  5, -1002, 5, -1002, -1002, 122, 5, -1002, 900, 900,
1109  -1002, 5, -1002, -1002, 127, 5, 5, -1002, 5, 5,
1110  -1002, -1002, -1002, 5, 5, 5, 5, 5, 1447, 5,
1111  1447, 5, -1002, 297, -17, -1002, 249, 310, 169, 3375,
1112  -1002, -1002, 264, 4805, 4811, 4811, -17, -1002, -1002, -1002,
1113  -1002, 324, 334, 336, 339, 346, 4911, -1002, -1002, -1002,
1114  -1002, 4698, 4698, 348, 4060, 4698, 4698, 4698, 4698, 4698,
1115  4698, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002,
1116  -1002, -1002, -1002, -1002, -1002, 16, -1002, 1354, 190, -70,
1117  125, -19, 284, 364, 338, 335, 509, 4, -1002, -84,
1118  -1002, -1002, 227, 5905, 397, 362, 1673, -1002, 273, 424,
1119  432, 152, 779, 1675, -1002, -1002, -1002, -1002, 104, -1002,
1120  173, 396, -1002, 438, 1636, 234, -1002, -1002, -1002, -1002,
1121  -1002, 452, -1002, 138, 447, 187, 280, 313, 255, 455,
1122  467, 471, 152, -1002, -1002, -1002, -1002, -1002, -1002, 322,
1123  -1002, -1002, -1002, -1002, -1002, -1002, 456, -1002, 1447, 1447,
1124  -1002, 456, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002,
1125  -1002, -1002, -1002, -1002, -17, -1002, -1002, 473, 36, 4698,
1126  484, -1002, 5491, 35, 5344, -1002, 4177, -1002, 481, -1002,
1127  -1002, 3516, -1002, -1002, 4704, 4060, -1002, 4060, -1002, -1002,
1128  -1002, -1002, 5, 4698, 5, 4698, 5, 4060, -1002, 482,
1129  493, 5050, 5050, -1002, -1002, 4698, 283, 497, 512, 518,
1130  -1002, -1002, -1002, -1002, -1002, -1002, -17, -1002, -1002, 4286,
1131  -17, 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698,
1132  4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698,
1133  4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698,
1134  4698, 4698, 4698, 4373, -1002, 4698, 176, 2488, 5985, 900,
1135  900, -1002, -1002, -1002, 337, 362, 530, 152, 152, 536,
1136  377, 362, -1002, -1002, 689, 718, 553, -1002, 4404, 538,
1137  569, -1002, -1002, 577, 580, -1002, -1002, 585, 587, -1002,
1138  -1002, -1002, -1002, -1002, 292, -1002, 757, -1002, -1002, -1002,
1139  -1002, 589, 593, -1002, -1002, -1002, 4698, -1002, 456, 173,
1140  456, 456, 4404, -1002, -1002, 594, 602, -17, -1002, 605,
1141  -1002, 595, 4698, -1002, -1002, 322, 5822, 1239, 5657, 5740,
1142  -1002, 5491, -1002, 5574, 5657, 5740, -1002, 322, 22, -1002,
1143  315, -1002, 63, 63, 2054, 2054, 620, 623, -1002, -1002,
1144  -1002, -1002, 622, -1002, 4490, 624, 638, 642, 644, 650,
1145  655, 656, 660, 662, 5050, 5050, 1477, 886, 919, 2201,
1146  2201, 1477, 663, -1002, 4591, -1002, 2635, -1002, -1002, -1002,
1147  -1002, 386, -1002, -1002, 352, -1002, -1002, -1002, -1002, -1002,
1148  -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, 190,
1149  190, -70, -70, 125, 125, 125, 125, -19, -19, 284,
1150  364, 338, 335, 509, -1002, -1002, 4698, 189, -1002, 27,
1151  3601, -1002, -1002, -1002, -1002, -1002, -1002, -1002, 152, -1002,
1152  -1002, -1002, -1002, 379, -1002, -1002, 288, 3958, -1002, -1002,
1153  -1002, 4698, 4698, 35, 786, 790, 670, 1636, 671, 676,
1154  657, 4698, 4698, 679, -1002, -1002, -1002, -1002, -1002, 559,
1155  677, 5, 678, 685, -1002, 5, -17, -1002, 687, -1002,
1156  -1002, 5, 5, -1002, 5, -1002, 5, -17, -17, 5,
1157  5, 5, -1002, 322, -1002, 5491, 35, 578, 1253, 682,
1158  -1002, 5, -1002, -1002, -1002, -1002, -1002, 5, -1002, 641,
1159  1812, 5, -1002, 5, -1002, 5491, 5197, -1002, -1002, -1002,
1160  683, 683, -1002, 5, 5, 5, -17, 683, 4698, 4698,
1161  4698, -1002, 173, 173, -1002, -1002, -1002, 57, 3958, -1002,
1162  668, 4698, 674, 690, 3033, -1002, 4597, 694, 3631, 698,
1163  702, 696, 104, -17, 2, -1002, -1002, 688, -1002, -1002,
1164  703, 58, 706, 695, -1002, 710, -1002, -1002, -1002, -1002,
1165  2834, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002, -1002,
1166  -1002, 4698, -1002, -1002, 4698, 724, 725, 727, 3601, -1002,
1167  -1002, -1002, -1002, 728, 730, -17, 4698, 737, 738, -1002,
1168  742, 740, -1002, 3717, 409, 430, 748, 750, 752, -1002,
1169  -1002, -1002, -1002, 215, 358, 384, -1002, 456, -1002, 731,
1170  5905, 751, 591, -1002, 32, 90, 559, -1002, 5, -17,
1171  736, 755, -1002, -1002, -1002, -1002, -1002, 5, 5, -1002,
1172  -1002, -1002, -1002, -1002, 5491, -1002, -1002, 764, 768, 1253,
1173  -1002, -1002, -1002, 1812, -1002, -1002, -1002, -1002, -1002, 775,
1174  776, 782, -12, -1002, 75, 119, 777, 434, -1002, 787,
1175  783, 784, -1002, 12, -1002, 3033, 945, 799, 780, 115,
1176  4698, -1002, 156, 4698, 4698, -1002, -21, 164, -1002, -1002,
1177  924, 522, -1002, 118, -1002, 3033, -1002, -1002, -1002, -1002,
1178  -1002, 152, 152, -1002, -1002, -15, 803, -1002, 24, 4404,
1179  3748, -1002, -17, 4698, 4404, -1002, -1002, -1002, -1002, -1002,
1180  -1002, 446, -1002, -1002, -1002, -1002, 1078, 2347, 5, -1002,
1181  610, -1002, 1078, -1002, 801, -1002, -1002, 4698, -1002, 5,
1182  -1002, -1002, 208, -1002, -1002, -1002, -1002, -1002, -17, -1002,
1183  -17, 4698, -1002, -1002, 4698, -1002, 57, 4698, 3857, -1002,
1184  4698, 3033, -1002, 807, 3232, -1002, -1002, 462, -1002, 475,
1185  809, 288, 930, -17, -1002, 812, -1002, 815, -1002, -1002,
1186  802, -1002, -1002, -1002, -17, 822, -1002, 827, 17, 824,
1187  4698, -1002, -1002, -1002, -1002, -1002, 29, -1002, -1002, 215,
1188  4698, -1002, 5, 829, -1002, 5, 829, -1002, -1002, -1002,
1189  5, -1002, -1002, 832, -1002, -1002, -1002, 391, -1002, -1002,
1190  -1002, -1002, 831, -1002, 4698, -1002, -1002, 4698, 3033, 3033,
1191  884, 837, 834, -1002, -1002, -1002, 4698, -1002, -1002, -1002,
1192  838, 4698, -15, -17, 840, -1002, 841, 288, 843, 403,
1193  4698, -1002, 828, -1002, -1002, 5, -1002, -1002, 5, -1002,
1194  -1002, -1002, 3033, 491, 830, 1020, -1002, 851, 3033, 835,
1195  -1002, 501, 288, 508, -1002, 853, 4698, 17, -1002, -1002,
1196  855, -17, -1002, -1002, 417, 215, -1002, -1002, -1002, -1002,
1197  884, 4698, 3033, 4698, -1002, -1002, -1002, 861, -1002, 288,
1198  532, -1002, 288, -1002, 864, -1002, -1002, 866, 845, 868,
1199  -1002, 869, -1002, 4698, 875, -1002, -1002, -17, -1002, -1002,
1200  884, -1002, 543, 4698, -1002, 3033, -1002, 547, -1002, -1002
1201 };
1202 
1203  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1204  Performed when YYTABLE does not specify something else to do. Zero
1205  means the default is an error. */
1206 static const yytype_uint16 yydefact[] =
1207 {
1208  488, 253, 279, 280, 264, 181, 275, 346, 251, 267,
1209  255, 259, 266, 254, 182, 265, 276, 252, 296, 250,
1210  297, 277, 278, 183, 3, 5, 260, 261, 262, 263,
1211  185, 186, 0, 0, 268, 269, 270, 271, 272, 273,
1212  274, 257, 0, 0, 0, 0, 0, 0, 0, 0,
1213  184, 284, 0, 0, 180, 0, 316, 0, 256, 0,
1214  0, 0, 0, 495, 0, 563, 317, 493, 0, 0,
1215  0, 0, 0, 0, 0, 173, 188, 158, 163, 159,
1216  164, 160, 161, 162, 165, 226, 166, 231, 167, 258,
1217  168, 317, 209, 287, 285, 317, 170, 286, 317, 2,
1218  489, 490, 494, 492, 44, 523, 554, 556, 555, 317,
1219  0, 0, 536, 149, 530, 529, 535, 538, 539, 534,
1220  544, 528, 0, 0, 0, 0, 317, 0, 0, 0,
1221  4, 317, 317, 0, 0, 0, 0, 0, 191, 176,
1222  192, 557, 558, 1, 319, 221, 318, 135, 0, 137,
1223  317, 136, 133, 149, 134, 149, 317, 172, 179, 317,
1224  317, 178, 317, 206, 171, 139, 317, 174, 227, 232,
1225  169, 317, 210, 175, 141, 317, 317, 204, 317, 317,
1226  208, 211, 207, 317, 317, 317, 317, 317, 229, 317,
1227  234, 317, 202, 248, 341, 491, 0, 46, 576, 0,
1228  560, 570, 574, 0, 0, 0, 0, 6, 7, 8,
1229  9, 0, 0, 0, 0, 0, 0, 422, 422, 422,
1230  422, 0, 0, 0, 317, 0, 0, 0, 0, 0,
1231  0, 14, 10, 11, 12, 13, 15, 49, 23, 18,
1232  19, 20, 21, 22, 17, 63, 77, 81, 85, 88,
1233  91, 96, 99, 101, 103, 105, 107, 109, 111, 113,
1234  116, 128, 0, 0, 0, 0, 0, 552, 0, 0,
1235  0, 0, 0, 0, 533, 540, 547, 537, 455, 148,
1236  150, 0, 146, 0, 311, 0, 237, 235, 236, 247,
1237  243, 238, 244, 0, 0, 0, 0, 0, 0, 0,
1238  0, 0, 561, 564, 497, 177, 559, 320, 143, 0,
1239  151, 153, 213, 216, 219, 198, 382, 222, 228, 233,
1240  203, 382, 200, 201, 199, 205, 214, 217, 220, 223,
1241  212, 215, 218, 249, 290, 376, 377, 0, 317, 0,
1242  0, 422, 575, 0, 0, 578, 0, 130, 0, 193,
1243  196, 0, 195, 194, 0, 317, 73, 317, 64, 65,
1244  444, 67, 317, 0, 317, 0, 317, 317, 75, 0,
1245  0, 0, 0, 79, 80, 0, 0, 0, 0, 0,
1246  66, 68, 69, 70, 71, 72, 0, 55, 56, 0,
1247  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1248  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1250  0, 0, 0, 0, 224, 0, 378, 380, 163, 164,
1251  165, 166, 167, 225, 0, 0, 0, 542, 549, 0,
1252  0, 0, 541, 548, 457, 456, 0, 147, 0, 0,
1253  301, 299, 298, 0, 0, 304, 305, 0, 0, 308,
1254  309, 310, 312, 313, 0, 187, 0, 246, 245, 288,
1255  281, 0, 0, 189, 190, 230, 0, 562, 382, 149,
1256  382, 382, 0, 140, 142, 0, 294, 347, 345, 0,
1257  81, 0, 0, 499, 498, 0, 0, 173, 163, 165,
1258  505, 571, 502, 0, 517, 518, 519, 0, 0, 359,
1259  0, 357, 362, 369, 366, 373, 0, 355, 360, 580,
1260  581, 579, 0, 197, 0, 0, 0, 0, 0, 0,
1261  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1262  0, 0, 0, 16, 0, 48, 131, 59, 60, 54,
1263  51, 0, 61, 53, 0, 118, 119, 120, 121, 122,
1264  123, 124, 125, 126, 127, 117, 82, 83, 84, 86,
1265  87, 89, 90, 94, 95, 92, 93, 97, 98, 100,
1266  102, 104, 106, 108, 110, 112, 0, 0, 129, 576,
1267  585, 589, 379, 567, 565, 566, 381, 553, 531, 543,
1268  551, 550, 545, 0, 458, 459, 0, 390, 384, 155,
1269  496, 0, 0, 0, 0, 0, 0, 311, 0, 0,
1270  0, 0, 0, 0, 144, 156, 152, 154, 383, 317,
1271  0, 317, 0, 348, 349, 317, 347, 45, 0, 521,
1272  506, 317, 317, 503, 317, 507, 317, 0, 0, 317,
1273  317, 317, 520, 0, 504, 500, 0, 576, 590, 594,
1274  365, 317, 363, 602, 568, 569, 372, 317, 370, 576,
1275  590, 317, 367, 317, 374, 500, 0, 582, 584, 583,
1276  74, 0, 32, 317, 317, 317, 0, 76, 0, 0,
1277  422, 39, 149, 149, 139, 141, 41, 317, 390, 78,
1278  0, 0, 0, 0, 131, 433, 0, 0, 0, 0,
1279  0, 0, 455, 0, 0, 422, 451, 0, 422, 419,
1280  14, 317, 132, 0, 413, 0, 423, 403, 401, 402,
1281  131, 404, 405, 406, 407, 409, 408, 410, 411, 412,
1282  52, 0, 50, 115, 0, 0, 0, 0, 586, 587,
1283  532, 546, 465, 0, 460, 0, 0, 14, 0, 391,
1284  389, 0, 387, 0, 0, 0, 0, 0, 0, 315,
1285  314, 240, 239, 0, 0, 0, 138, 382, 327, 0,
1286  0, 0, 317, 323, 0, 0, 317, 295, 317, 351,
1287  353, 0, 47, 509, 512, 513, 508, 317, 317, 510,
1288  511, 514, 522, 573, 501, 358, 575, 0, 0, 591,
1289  592, 364, 371, 591, 368, 375, 577, 356, 361, 0,
1290  0, 0, 0, 34, 0, 0, 0, 0, 25, 0,
1291  389, 0, 438, 0, 437, 131, 0, 0, 0, 0,
1292  0, 439, 0, 0, 131, 421, 0, 0, 442, 448,
1293  0, 0, 452, 0, 425, 131, 420, 424, 62, 114,
1294  597, 595, 596, 588, 145, 467, 461, 395, 0, 0,
1295  0, 385, 0, 0, 0, 393, 302, 300, 303, 306,
1296  307, 0, 282, 283, 157, 328, 334, 0, 317, 324,
1297  0, 326, 334, 325, 0, 342, 350, 0, 352, 317,
1298  515, 516, 600, 601, 593, 29, 30, 31, 0, 33,
1299  0, 0, 38, 40, 0, 24, 317, 0, 0, 57,
1300  0, 131, 418, 0, 131, 436, 435, 0, 440, 0,
1301  0, 0, 0, 0, 441, 0, 422, 0, 422, 422,
1302  170, 415, 599, 598, 0, 0, 470, 466, 473, 462,
1303  0, 396, 394, 386, 388, 400, 0, 392, 241, 0,
1304  0, 331, 317, 338, 329, 317, 338, 289, 330, 332,
1305  317, 354, 344, 576, 603, 37, 35, 0, 28, 26,
1306  27, 58, 0, 416, 0, 429, 430, 131, 131, 131,
1307  42, 0, 0, 443, 447, 450, 0, 453, 454, 414,
1308  0, 0, 0, 0, 0, 476, 472, 479, 463, 0,
1309  0, 398, 0, 340, 335, 317, 339, 337, 317, 291,
1310  289, 36, 131, 0, 0, 426, 428, 0, 131, 0,
1311  446, 0, 0, 0, 471, 0, 0, 0, 480, 481,
1312  478, 484, 464, 397, 0, 0, 333, 336, 293, 417,
1313  42, 131, 131, 0, 431, 445, 422, 0, 468, 0,
1314  0, 477, 0, 487, 483, 485, 399, 0, 0, 0,
1315  427, 0, 449, 0, 0, 474, 482, 0, 242, 432,
1316  42, 43, 0, 0, 486, 131, 469, 0, 434, 475
1317 };
1318 
1319  /* YYPGOTO[NTERM-NUM]. */
1320 static const yytype_int16 yypgoto[] =
1321 {
1322  -1002, -1002, 0, 47, -1002, -1002, -1002, -108, -1002, -302,
1323  -1002, -1002, 147, -1002, -1002, -1002, -1002, -1002, -1002, -1001,
1324  -1002, -1002, -1002, -1002, -235, -1002, 146, -123, 55, 353,
1325  381, 365, 648, 649, 647, 653, 659, -1002, 389, -1002,
1326  -334, 825, 3, -170, -841, 60, -589, -1002, -1002, -1002,
1327  -1002, 788, -1002, -104, -1002, -1002, -1002, -1002, 8, 267,
1328  39, 228, -54, 13, 1288, -1002, -131, 729, -1002, -1002,
1329  -226, -1002, -225, -1002, -1002, -1002, -99, -62, -9, -50,
1330  143, -462, 789, -1002, 894, -1002, 1031, -56, -39, -1002,
1331  69, -1002, -1002, -1002, -1002, 590, -1002, 474, -1002, 588,
1332  983, -74, 304, -1002, 312, -1002, -1002, 203, 207, 135,
1333  -661, -1002, -1002, -1002, 604, 485, -1002, 329, -1002, -1002,
1334  -1002, 470, -1002, 454, -181, 874, -291, -236, 433, 439,
1335  -804, -1002, 265, 220, -1002, -222, 586, -1002, 223, -1002,
1336  -1002, -1002, -1002, -1002, -1002, -1002, -205, -1002, -1002, -1002,
1337  -1002, 426, 217, -1002, -1002, 144, -1002, -1002, 113, -1002,
1338  -1002, 89, -1002, -1002, -1002, 78, -1002, -1002, 1052, -1002,
1339  -1002, -1002, 478, 814, -481, -1002, -1002, -1002, -1002, -1002,
1340  -1002, -1002, 15, 1046, -1002, -101, -94, -1002, 64, -1002,
1341  -95, 88, -28, -1002, -27, -408, -471, 1, -1002, 546,
1342  -1002, -1002, 571, -592, 574, -588
1343 };
1344 
1345  /* YYDEFGOTO[NTERM-NUM]. */
1346 static const yytype_int16 yydefgoto[] =
1347 {
1348  -1, 64, 231, 112, 232, 233, 234, 235, 236, 237,
1349  238, 827, 828, 239, 240, 241, 242, 822, 243, 1028,
1350  197, 341, 244, 245, 758, 551, 246, 247, 248, 249,
1351  250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
1352  260, 261, 722, 608, 723, 724, 68, 69, 316, 321,
1353  478, 279, 280, 310, 70, 480, 481, 777, 537, 538,
1354  539, 540, 273, 157, 75, 76, 139, 350, 351, 77,
1355  78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1356  88, 291, 292, 293, 89, 334, 90, 91, 92, 93,
1357  1019, 94, 485, 630, 631, 95, 462, 463, 464, 144,
1358  263, 146, 781, 782, 783, 784, 785, 961, 964, 1015,
1359  962, 97, 337, 489, 98, 632, 633, 634, 898, 516,
1360  510, 511, 517, 518, 725, 829, 483, 759, 760, 761,
1361  762, 763, 726, 727, 728, 729, 379, 730, 731, 732,
1362  987, 733, 837, 734, 735, 847, 1063, 736, 737, 738,
1363  739, 446, 753, 754, 866, 946, 947, 949, 1005, 1006,
1364  1008, 1039, 1040, 1042, 1064, 1065, 99, 100, 101, 102,
1365  103, 494, 803, 804, 502, 503, 504, 505, 506, 507,
1366  508, 104, 963, 114, 115, 116, 117, 118, 119, 120,
1367  440, 121, 106, 107, 108, 592, 810, 439, 343, 201,
1368  344, 202, 594, 664, 595, 665
1369 };
1370 
1371  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1372  positive, shift that token. If negative, reduce the rule whose
1373  number is the opposite. If YYTABLE_NINF, syntax error. */
1374 static const yytype_int16 yytable[] =
1375 {
1376  65, 361, 378, 930, 620, 491, 305, 137, 71, 281,
1377  275, 159, 168, 338, 283, 271, 269, 162, 171, 596,
1378  643, 176, 179, 160, 169, 360, 410, 411, 908, 348,
1379  484, 134, 135, 65, 163, 172, 268, 428, 429, 73,
1380  779, 662, 668, 672, 674, 24, 25, 66, 113, 1068,
1381  109, 311, 210, 422, 420, 148, 386, 387, 388, 65,
1382  67, 65, 65, 920, 150, 807, 954, 122, 826, 808,
1383  849, 65, 65, 65, 65, 950, 149, 807, 123, 1085,
1384  1010, 808, 134, 135, 210, 151, 153, 155, 105, -572,
1385  175, 43, 180, 126, 183, 184, 185, 24, 373, 374,
1386  65, 124, 380, 381, 382, 383, 384, 385, 71, 200,
1387  65, 65, 262, 277, 954, 52, 498, 429, 125, 493,
1388  156, 166, 43, 444, 423, 24, 25, 285, 406, 407,
1389  295, 296, 297, 378, 298, 378, 200, 65, 130, 73,
1390  421, 445, 305, 43, 43, 378, 1024, 66, 65, 141,
1391  142, 549, 56, 486, 286, 553, 127, 267, 638, -572,
1392  67, 165, 174, 286, 430, 275, 931, 52, 408, 409,
1393  434, 269, 442, 932, 270, 276, 909, 944, 269, 910,
1394  911, 522, 749, 56, 525, 412, 413, 624, 105, 626,
1395  627, 287, 288, 779, 335, 52, 850, 779, 268, 141,
1396  287, 288, 921, 389, 56, 56, 335, 390, 391, 1003,
1397  1069, 653, 609, 425, 589, 342, 490, 951, 425, 199,
1398  128, 890, 1011, 381, 590, 306, 965, 376, 74, 965,
1399  -343, -572, 654, 591, 691, 129, 308, 134, 135, 696,
1400  286, 336, 891, 499, 134, 135, 628, 938, -377, 939,
1401  657, 136, 743, 336, 431, 199, -526, -526, 278, 43,
1402  658, -527, -527, 131, 425, 65, 65, 72, 65, 659,
1403  912, 132, 65, 65, 133, 498, 429, 287, 288, 892,
1404  566, 567, 568, 490, 490, 490, 490, 490, 490, 490,
1405  490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
1406  893, -572, 1016, 477, 425, 1016, 635, 143, 425, 65,
1407  66, 881, 267, 188, 913, 190, -526, 289, 290, 267,
1408  56, -527, 147, 643, 479, 926, 467, 290, 74, 270,
1409  276, 414, 415, 431, 335, 24, 270, 443, 904, 198,
1410  863, 269, 904, 509, 199, 425, 603, 269, 196, 356,
1411  358, 359, 512, 933, 141, 210, 436, 342, 376, 43,
1412  376, 306, 368, 589, 284, 168, 928, 72, 199, 490,
1413  376, 171, 179, 590, 934, 625, 425, 169, 425, 744,
1414  470, 336, 591, 514, 24, 25, 547, 403, 172, 66,
1415  547, 66, 404, 405, 554, 973, 318, 319, 198, 303,
1416  199, 381, 499, 199, 302, 52, 432, 134, 135, 45,
1417  859, 660, 666, 134, 135, 424, 425, 304, 66, 66,
1418  56, 699, 465, 425, 24, 25, 587, 593, 593, 498,
1419  429, 536, 541, 548, 168, 65, 339, 548, 599, 600,
1420  171, 65, 179, 473, 425, 340, 169, 646, 650, 498,
1421  429, 823, 159, 168, 52, 635, 354, 172, 162, 171,
1422  59, 569, 570, 490, 160, 169, 797, 798, 378, 425,
1423  61, 543, 425, 471, 166, 163, 172, 159, 168, 62,
1424  616, 617, 267, 162, 171, 432, 884, 335, 267, 160,
1425  169, 427, 431, 851, 52, 65, 853, 1012, 752, 270,
1426  163, 172, 425, 655, 656, 270, 472, 65, 848, 110,
1427  639, 362, 65, 65, 65, 65, 645, 649, 651, 111,
1428  867, 363, 652, 364, 198, 597, 365, 875, 62, 199,
1429  426, 833, 360, 366, 336, 375, 748, 65, 65, 65,
1430  65, 425, 418, 166, 417, 742, 720, 425, 66, 265,
1431  644, 882, 692, 693, 428, 429, 499, 275, 419, 266,
1432  416, 156, 166, 269, 198, 602, 198, 751, 62, 199,
1433  496, 199, 515, 425, 740, 741, 499, 883, 498, 429,
1434  425, 66, 66, 1067, 1021, 433, 156, 166, 96, 311,
1435  745, 593, 425, 721, 688, 689, 1043, 876, 425, 750,
1436  661, 667, 671, 673, 809, 448, 425, 757, 635, 495,
1437  1066, 513, 437, 766, 764, 765, 813, 305, 877, 425,
1438  438, 490, 915, 916, 774, 775, 449, 694, 695, 134,
1439  135, 936, 937, 952, 958, 959, 335, 955, 957, 466,
1440  24, 134, 135, 474, 432, 43, 431, 335, 335, 140,
1441  988, 425, 469, 65, 548, 475, 509, 65, 65, 65,
1442  476, 164, 173, 989, 425, 482, 431, 487, 802, 65,
1443  65, 492, 24, 975, 520, 976, 534, 43, 305, 1050,
1444  425, 430, 305, 336, 512, 544, 547, 535, 96, 1056,
1445  425, 824, 825, 376, 336, 336, 1058, 425, 757, 140,
1446  545, 282, 66, 24, 720, 499, 56, 57, 442, 839,
1447  52, 842, 546, 335, 995, 514, 997, 998, 598, 1071,
1448  1075, 425, 66, 66, 601, 140, 604, 971, 993, 496,
1449  720, 1086, 425, 548, 307, 1089, 425, 605, 56, 57,
1450  606, 282, 52, 282, 24, 548, 141, 142, 610, 593,
1451  982, 721, 360, 838, -321, 547, 611, 945, 141, 868,
1452  336, 571, 572, 1000, 612, 657, 806, 613, 495, 778,
1453  199, 431, 614, 52, 615, 658, 173, 721, 173, 577,
1454  578, 621, 286, 637, 659, 622, -322, 353, 629, 335,
1455  1013, 573, 574, 575, 576, 431, -292, 59, 432, 636,
1456  960, 778, 548, 369, 370, 371, 372, 61, 675, 65,
1457  584, 585, 676, 65, 52, 677, 62, 679, 432, 287,
1458  288, 618, 1035, 752, 619, 168, 680, 66, 669, 806,
1459  681, 171, 682, 199, 1072, 720, 336, 169, 670, 683,
1460  1004, 24, 25, 927, 684, 685, 929, 659, 172, 686,
1461  687, 66, 697, 767, 140, 720, 307, 768, 769, 771,
1462  360, 140, 942, 943, 772, 43, 773, 776, 282, 59,
1463  757, 786, 547, 788, 789, 792, 956, 698, 832, 61,
1464  835, 840, 721, 496, 834, 843, 65, 65, 62, 844,
1465  65, 845, 65, -376, 945, 425, 360, 306, 852, 1038,
1466  855, 306, 721, 496, 515, 854, 173, 173, 547, 5,
1467  547, 52, 860, 861, 977, 862, 864, 548, 757, 548,
1468  865, 720, 495, 432, 1057, 14, 56, -59, 869, 1004,
1469  490, 870, 96, 335, 166, 871, 878, 23, 879, 353,
1470  880, 885, 495, 513, 335, 897, 888, 432, 24, 25,
1471  899, 1074, 902, 1009, 1038, 548, 903, 548, 301, 96,
1472  96, 278, 43, 905, 906, 548, 265, 914, 721, 836,
1473  907, 66, 918, 30, 31, 966, 266, 917, 966, 919,
1474  336, 24, 25, 264, 923, 62, 924, 1023, 720, 720,
1475  925, 336, 935, 948, 984, 857, 970, 990, 992, 1031,
1476  294, 44, 996, 335, 1033, 299, 300, 994, 887, 1001,
1477  -524, -524, 999, 1044, 1007, 173, 1002, 1027, 52, 960,
1478  806, 1022, 720, 56, 347, 1029, 50, 1036, 720, 1030,
1479  1037, 1032, 496, 1041, 1052, 721, 721, 1045, 1053, 1060,
1480  1051, 335, 53, 54, 1062, 1055, 1059, 886, 1073, 145,
1481  336, 52, 720, 1077, 1078, 1079, 1080, 1081, 663, 663,
1482  663, 663, 1083, 979, 579, 581, 580, 282, 447, 721,
1483  -524, 495, 582, 110, 192, 721, 1082, 335, 193, 583,
1484  523, 194, 468, 111, 173, 720, 1087, 333, 336, 1048,
1485  894, 770, 62, 647, 889, 969, 152, 968, 377, 721,
1486  922, 1018, 164, 173, 161, 170, 110, 648, 161, 178,
1487  161, 182, 161, 161, 161, 187, 111, 189, 896, 191,
1488  941, 791, 96, 96, 336, 62, 805, 164, 173, 154,
1489  818, 830, 721, 309, 96, 278, 43, 831, 846, 312,
1490  24, 25, 313, 314, 985, 315, 1034, 986, 991, 317,
1491  1061, 1076, 195, 816, 320, 1084, 501, 274, 322, 323,
1492  746, 324, 325, 747, 0, 0, 326, 327, 328, 329,
1493  330, 0, 331, 0, 332, 0, 347, 0, 140, 347,
1494  0, 0, 0, 0, -525, -525, 983, 0, 529, 0,
1495  531, 0, 0, 0, 0, 0, 0, 56, 0, 0,
1496  542, 0, 0, 663, 663, 0, 0, 0, 0, 0,
1497  52, 0, 0, 0, 552, 663, 663, 555, 556, 557,
1498  558, 559, 560, 561, 562, 563, 564, 565, 0, 526,
1499  352, 527, 0, 0, 0, 0, 528, 0, 530, 0,
1500  532, 533, 1, 0, -525, 0, 140, 0, 0, 0,
1501  588, 0, 0, 1025, 1026, 8, 0, 0, 140, 0,
1502  10, 0, 5, 13, 96, 110, 0, 0, 960, 17,
1503  0, 0, 19, 347, 0, 111, 0, 0, 14, 0,
1504  282, 282, 0, 0, 62, 0, 0, 1049, 0, 0,
1505  23, 0, 96, 1054, 0, 0, 0, 0, 0, 0,
1506  0, 623, 0, 0, 0, 0, 0, 347, 0, 0,
1507  0, 0, 0, 0, 0, 24, 25, 1070, 96, 0,
1508  0, 488, 0, 41, 0, 0, 30, 31, 0, 0,
1509  0, 0, 0, 0, 0, 0, 140, 0, 0, 43,
1510  0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
1511  1088, 45, 0, 0, 44, 663, 0, 0, 0, 663,
1512  0, 158, 167, 0, 0, 158, 177, 158, 181, 158,
1513  158, 158, 186, 500, 0, 0, 0, 5, 0, 50,
1514  0, 0, 352, 0, 0, 52, 0, 0, 58, 0,
1515  0, 0, 0, 14, 0, 53, 54, 140, 0, 138,
1516  56, 140, 0, 0, 0, 23, 392, 393, 394, 395,
1517  396, 397, 398, 399, 400, 401, 0, 0, 0, 0,
1518  0, 0, 0, 96, 0, 138, 0, 0, 0, 0,
1519  24, 25, 347, 0, 0, 0, 0, 0, 0, 0,
1520  657, 30, 31, 940, 0, 199, 0, 0, 974, 0,
1521  658, 0, 0, 0, 43, 0, 5, 0, 0, 659,
1522  0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
1523  0, 0, 14, 0, 0, 173, 167, 0, 167, 0,
1524  0, 0, 0, 0, 23, 0, 0, 349, 0, 0,
1525  0, 0, 0, 0, 50, 0, 0, 0, 0, 0,
1526  52, 0, 0, 0, 0, 0, 0, 0, 0, 96,
1527  53, 54, 96, 0, 0, 56, 0, 0, 0, 0,
1528  30, 31, 0, 347, 0, 0, 347, 0, 640, 641,
1529  642, 0, 500, 43, 161, 161, 161, 0, 0, 24,
1530  0, 207, 208, 209, 210, 161, 170, 0, 44, 0,
1531  0, 0, 0, 0, 138, 272, 0, 819, 820, 821,
1532  0, 138, 0, 402, 0, 111, 858, 0, 0, 0,
1533  161, 170, 0, 50, 62, 0, 96, 96, 0, 211,
1534  212, 213, 214, 215, 0, 0, 0, 0, 347, 53,
1535  54, 0, 0, 0, 56, 217, 218, 219, 220, 0,
1536  0, 0, 0, 0, 0, 0, 167, 167, 0, 52,
1537  96, 0, 780, 0, 787, 0, 96, 0, 790, 0,
1538  0, 0, 223, 0, 793, 794, 0, 795, 0, 796,
1539  497, 0, 799, 800, 801, 0, 0, 0, 0, 349,
1540  96, 0, 0, 0, 811, 0, 0, 0, 0, 0,
1541  812, 0, 0, 0, 814, 0, 815, 0, 0, 0,
1542  0, 0, 0, 0, 690, 0, 0, 0, 0, 0,
1543  0, 0, 0, 96, 0, 0, 0, 0, 0, 0,
1544  0, 0, 5, 0, 5, 0, 500, 0, 0, 0,
1545  0, 0, 0, 0, 347, 347, 0, 0, 14, 347,
1546  14, 0, 0, 0, 145, 0, 500, 0, 0, 0,
1547  23, 0, 23, 0, 0, 167, 177, 181, 186, 0,
1548  0, 0, 347, 450, 451, 452, 453, 454, 455, 456,
1549  457, 458, 459, 460, 461, 24, 25, 24, 25, 978,
1550  0, 0, 980, 347, 0, 347, 30, 31, 30, 31,
1551  0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
1552  0, 43, 0, 0, 0, 780, 0, 0, 0, 780,
1553  0, 895, 0, 0, 44, 0, 44, 0, 0, 0,
1554  900, 901, 0, 0, 167, 347, 177, 186, 0, 497,
1555  0, 158, 158, 158, 0, 0, 0, 0, 0, 50,
1556  0, 50, 158, 167, 0, 52, 0, 52, 0, 0,
1557  0, 0, 0, 0, 0, 53, 54, 53, 54, 0,
1558  56, 5, 56, 0, 0, 0, 0, 158, 167, 0,
1559  0, 0, 0, 0, 0, 500, 0, 14, 0, 0,
1560  0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
1561  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1562  435, 0, 441, 0, 0, 0, 0, 0, 0, 0,
1563  266, 967, 266, 0, 24, 0, 0, 0, 138, 62,
1564  0, 62, 972, 0, 0, 30, 31, 0, 0, 0,
1565  0, 0, 0, 0, 0, 0, 0, 0, 43, 0,
1566  0, 0, 1, 2, 3, 0, 0, 4, 5, 0,
1567  0, 0, 6, 44, 7, 8, 9, 0, 0, 0,
1568  10, 11, 12, 13, 14, 0, 15, 16, 0, 17,
1569  18, 0, 19, 20, 21, 22, 23, 0, 50, 0,
1570  0, 0, 0, 497, 52, 1014, 138, 0, 1017, 0,
1571  0, 0, 0, 1020, 53, 54, 0, 0, 138, 56,
1572  0, 24, 25, 497, 0, 0, 0, 0, 26, 27,
1573  28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1574  38, 39, 40, 41, 42, 43, 0, 0, 0, 0,
1575  0, 0, 0, 0, 0, 0, 0, 0, 1046, 669,
1576  44, 1047, 0, 0, 199, 0, 0, 0, 0, 670,
1577  0, 45, 0, 0, 0, 0, 0, 0, 659, 0,
1578  0, 46, 47, 48, 49, 50, 51, 0, 0, 0,
1579  0, 52, 0, 0, 0, 0, 138, 0, 0, 0,
1580  0, 53, 54, 55, 0, 0, 56, 57, 58, 0,
1581  0, 0, 0, 0, 0, 0, 0, 1, 2, 3,
1582  0, 0, 4, 5, 0, 0, 0, 6, 0, 7,
1583  8, 9, 0, 0, 0, 10, 11, 12, 13, 14,
1584  0, 15, 16, 0, 17, 18, 59, 19, 20, 21,
1585  22, 23, 497, 60, 0, 0, 61, 138, 0, 0,
1586  0, 138, 0, 0, 0, 62, 0, 0, 0, 63,
1587  0, 0, 0, 0, 0, 0, 24, 25, 0, 0,
1588  0, 0, 0, 26, 27, 28, 29, 30, 31, 32,
1589  0, 34, 35, 36, 37, 38, 39, 40, 41, 0,
1590  43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591  0, 0, 0, 0, 0, 44, 0, 0, 0, 0,
1592  0, 0, 0, 0, 0, 0, 45, 0, 0, 0,
1593  0, 0, 0, 0, 0, 167, 46, 47, 48, 49,
1594  50, 51, 0, 0, 0, 0, 52, 0, 0, 0,
1595  0, 0, 0, 0, 0, 0, 53, 54, 55, 0,
1596  0, 56, 0, 58, 1, 2, 3, 0, 0, 4,
1597  5, 0, 0, 0, 6, 0, 7, 8, 9, 0,
1598  0, 0, 10, 11, 12, 13, 14, 0, 15, 16,
1599  0, 17, 18, 0, 19, 20, 21, 22, 23, 0,
1600  0, 669, 0, 0, 0, 0, 199, 0, 0, 0,
1601  0, 670, 0, 0, 0, 0, 0, 0, 0, 0,
1602  659, 0, 0, 24, 25, 0, 0, 0, 0, 0,
1603  26, 27, 28, 29, 30, 31, 32, 0, 34, 35,
1604  36, 37, 38, 39, 40, 41, 0, 43, 0, 0,
1605  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606  0, 0, 44, 0, 0, 0, 0, 0, 0, 0,
1607  0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
1608  0, 0, 0, 46, 47, 48, 49, 50, 51, 0,
1609  0, 0, 0, 52, 0, 0, 0, 0, 0, 0,
1610  0, 0, 0, 53, 54, 55, 0, 0, 56, 0,
1611  58, 2, 3, 0, 0, 4, 5, 0, 0, 0,
1612  6, 0, 7, 0, 9, 0, 0, 0, 0, 11,
1613  12, 0, 14, 0, 15, 16, 0, 0, 18, 0,
1614  0, 20, 21, 22, 23, 0, 0, 0, 59, 0,
1615  0, 0, 0, 0, 0, 0, 0, 0, 61, 0,
1616  0, 0, 0, 0, 0, 0, 0, 62, 0, 24,
1617  25, 0, 0, 0, 0, 0, 26, 27, 28, 29,
1618  30, 31, 32, 0, 34, 35, 36, 37, 38, 39,
1619  40, 0, 0, 43, 0, 0, 0, 0, 0, 0,
1620  0, 0, 0, 0, 0, 0, 0, 0, 44, 0,
1621  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1622  0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
1623  47, 48, 49, 50, 51, 0, 0, 0, 0, 52,
1624  0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
1625  54, 55, 2, 3, 56, 0, 4, 5, 0, 0,
1626  0, 6, 0, 7, 0, 9, 0, 0, 0, 0,
1627  11, 12, 0, 14, 0, 15, 16, 0, 0, 18,
1628  0, 0, 20, 21, 22, 23, 0, 0, 0, 0,
1629  0, 0, 0, 0, 59, 0, 0, 960, 0, 0,
1630  0, 0, 0, 0, 61, 0, 0, 0, 0, 0,
1631  0, 25, 0, 62, 0, 0, 0, 26, 27, 28,
1632  29, 30, 31, 32, 0, 34, 35, 36, 37, 38,
1633  39, 40, 0, 0, 43, 0, 0, 0, 0, 0,
1634  0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
1635  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1636  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1637  46, 47, 48, 49, 50, 51, 0, 0, 0, 0,
1638  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639  53, 54, 55, 0, 0, 56, 0, 0, 1, 2,
1640  3, 700, 701, 4, 5, 702, 703, 704, 6, 0,
1641  7, 8, 9, 705, 706, 707, 10, 11, 12, 13,
1642  14, 708, 15, 16, 203, 17, 18, 709, 19, 20,
1643  21, 22, 23, 0, 710, 589, 204, 205, 0, 0,
1644  199, 0, 0, 0, 206, 590, 0, 0, 0, 0,
1645  0, 0, 0, 0, 591, 0, 0, 24, 25, 207,
1646  208, 209, 210, 711, 26, 27, 28, 29, 30, 31,
1647  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1648  712, 43, 0, 0, 0, 0, 0, 0, 0, 0,
1649  0, 0, 0, 0, 713, 714, 44, 211, 212, 213,
1650  214, 215, 216, 715, 0, 0, 716, 45, 0, 0,
1651  0, 0, 0, 217, 218, 219, 220, 46, 47, 48,
1652  49, 50, 51, 717, 0, 718, 0, 52, 0, 0,
1653  0, 0, 0, 0, 0, 221, 222, 53, 54, 55,
1654  223, 0, 56, 57, 58, 0, 0, 0, 0, 0,
1655  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1656  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1657  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1658  0, 0, 224, 0, 0, 0, 0, 0, 0, -422,
1659  719, 225, 226, 227, 228, 229, 230, 1, 2, 3,
1660  700, 701, 4, 5, 702, 703, 704, 6, 0, 7,
1661  8, 9, 705, 706, 707, 10, 11, 12, 13, 14,
1662  708, 15, 16, 203, 17, 18, 709, 19, 20, 21,
1663  22, 23, 0, 710, 0, 204, 205, 0, 0, 0,
1664  0, 0, 0, 206, 0, 0, 0, 0, 0, 0,
1665  0, 0, 0, 0, 0, 0, 24, 25, 207, 208,
1666  209, 210, 0, 26, 27, 28, 29, 30, 31, 32,
1667  33, 34, 35, 36, 37, 38, 39, 40, 41, 712,
1668  43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669  0, 0, 0, 713, 714, 44, 211, 212, 213, 214,
1670  215, 216, 715, 0, 0, 716, 45, 0, 0, 0,
1671  0, 0, 217, 218, 219, 220, 46, 47, 48, 49,
1672  50, 51, 717, 0, 718, 0, 52, 0, 0, 0,
1673  0, 0, 0, 0, 221, 222, 53, 54, 55, 223,
1674  0, 56, 57, 58, 0, 0, 0, 0, 0, 0,
1675  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1677  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1678  0, 224, 0, 0, 0, 0, 0, 0, -422, 856,
1679  225, 226, 227, 228, 229, 230, 1, 2, 3, 700,
1680  701, 4, 5, 702, 703, 704, 6, 0, 7, 8,
1681  9, 705, 706, 707, 10, 11, 12, 13, 14, 708,
1682  15, 16, 203, 17, 18, 709, 19, 20, 21, 22,
1683  23, 0, 710, 0, 204, 205, 0, 0, 0, 0,
1684  0, 0, 206, 0, 0, 0, 0, 0, 0, 0,
1685  0, 0, 0, 0, 0, 24, 25, 207, 208, 209,
1686  210, 0, 26, 27, 28, 29, 30, 31, 32, 33,
1687  34, 35, 36, 37, 38, 39, 40, 41, 712, 43,
1688  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1689  0, 0, 713, 714, 44, 211, 212, 213, 214, 215,
1690  216, 715, 0, 0, 716, 45, 0, 0, 0, 0,
1691  0, 217, 218, 219, 220, 46, 47, 48, 49, 50,
1692  51, 717, 0, 718, 0, 52, 0, 0, 0, 0,
1693  0, 0, 0, 221, 222, 53, 54, 55, 223, 0,
1694  56, 57, 58, 0, 0, 0, 0, 0, 0, 0,
1695  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698  224, 0, 0, 0, 0, 0, 0, -422, 0, 225,
1699  226, 227, 228, 229, 230, 1, 2, 3, 0, 0,
1700  4, 5, 0, 0, 0, 6, 0, 7, 8, 9,
1701  0, 0, 0, 10, 11, 12, 13, 14, 0, 15,
1702  16, 203, 17, 18, 0, 19, 20, 21, 22, 23,
1703  0, 0, 0, 204, 205, 0, 0, 0, 0, 0,
1704  0, 206, 0, 0, 0, 0, 0, 0, 0, 0,
1705  0, 0, 0, 0, 24, 25, 207, 208, 209, 210,
1706  0, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1707  35, 36, 37, 38, 39, 40, 41, 0, 43, 0,
1708  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709  0, 0, 0, 44, 211, 212, 213, 214, 215, 216,
1710  0, 0, 0, 0, 45, 0, 0, 0, 0, 0,
1711  217, 218, 219, 220, 46, 47, 48, 49, 50, 51,
1712  0, 0, 0, 0, 52, 0, 0, 0, 0, 0,
1713  0, 0, 221, 222, 53, 54, 55, 223, 1, 56,
1714  57, 58, 0, 0, 5, 0, 0, 0, 0, 0,
1715  0, 8, 0, 0, 0, 0, 10, 0, 0, 13,
1716  14, 0, 0, 0, 203, 17, 0, 0, 19, 0,
1717  0, 0, 23, 0, 0, 0, 204, 205, 0, 224,
1718  0, 0, 0, 0, 206, 0, 0, 0, 225, 226,
1719  227, 228, 229, 230, 0, 0, 0, 24, 0, 207,
1720  208, 209, 210, 0, 0, 0, 0, 0, 30, 31,
1721  0, 0, 0, 0, 0, 0, 0, 0, 0, 41,
1722  0, 43, 0, 0, 0, 0, 0, 0, 0, 0,
1723  0, 0, 0, 0, 5, 0, 44, 211, 212, 213,
1724  214, 215, 216, 0, 0, 0, 0, 45, 0, 0,
1725  14, 0, 0, 217, 218, 219, 220, 0, 0, 0,
1726  0, 50, 23, 0, 0, 0, 0, 52, 0, 0,
1727  0, 0, 0, 0, 0, 221, 222, 53, 54, 1,
1728  223, 0, 56, 0, 58, 5, 0, 24, 0, 0,
1729  0, 0, 8, 0, 0, 0, 0, 10, 30, 31,
1730  13, 14, 0, 0, 0, 203, 17, 0, 0, 19,
1731  0, 43, 0, 23, 0, 0, 0, 204, 205, 0,
1732  0, 0, 224, 0, 0, 206, 44, 0, 345, 0,
1733  0, 225, 346, 227, 228, 229, 230, 0, 24, 0,
1734  207, 208, 209, 210, 0, 0, 0, 0, 0, 30,
1735  31, 50, 0, 0, 0, 0, 0, 52, 0, 0,
1736  41, 0, 43, 0, 0, 0, 0, 53, 54, 0,
1737  5, 0, 56, 0, 0, 0, 0, 44, 211, 212,
1738  213, 214, 215, 216, 0, 0, 14, 0, 45, 0,
1739  0, 0, 0, 0, 217, 218, 219, 220, 23, 0,
1740  0, 0, 50, 0, 0, 0, 0, 0, 52, 0,
1741  0, 0, 59, 0, 0, 0, 221, 222, 53, 54,
1742  203, 223, 61, 56, 0, 58, 0, 0, 0, 0,
1743  0, 62, 204, 205, 30, 31, 0, 0, 0, 0,
1744  206, 0, 0, 0, 0, 0, 0, 43, 0, 0,
1745  0, 0, 0, 24, 0, 207, 208, 209, 210, 0,
1746  0, 0, 44, 224, 0, 0, 0, 0, 0, 521,
1747  0, 0, 225, 226, 227, 228, 229, 230, 0, 0,
1748  0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
1749  0, 0, 0, 211, 212, 213, 214, 215, 216, 0,
1750  0, 0, 0, 53, 54, 0, 203, 0, 56, 217,
1751  218, 219, 220, 0, 0, 0, 0, 0, 204, 205,
1752  0, 0, 0, 52, 0, 0, 206, 0, 0, 0,
1753  0, 221, 222, 0, 0, 0, 223, 203, 0, 24,
1754  0, 207, 208, 209, 210, 0, 0, 0, 589, 204,
1755  205, 0, 0, 199, 0, 0, 0, 206, 590, 0,
1756  0, 0, 0, 0, 0, 0, 0, 591, 0, 0,
1757  24, 25, 207, 208, 209, 210, 0, 0, 224, 211,
1758  212, 213, 214, 215, 216, 0, 0, 225, 226, 227,
1759  228, 229, 230, 0, 0, 217, 218, 219, 220, 0,
1760  0, 841, 0, 0, 0, 0, 0, 0, 0, 52,
1761  211, 212, 213, 214, 215, 216, 0, 221, 222, 0,
1762  0, 0, 223, 0, 0, 0, 217, 218, 219, 220,
1763  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764  52, 0, 0, 0, 0, 0, 203, 0, 221, 222,
1765  0, 0, 0, 223, 0, 0, 0, 0, 204, 205,
1766  0, 0, 0, 0, 224, 0, 206, 0, 872, 873,
1767  0, 607, 0, 225, 226, 227, 228, 229, 230, 24,
1768  25, 207, 208, 209, 210, 0, 874, 0, 0, 0,
1769  0, 0, 0, 0, 0, 224, 0, 0, 0, 755,
1770  756, 0, 607, 953, 225, 226, 227, 228, 229, 230,
1771  0, 0, 0, 0, 0, 0, 0, 0, 0, 211,
1772  212, 213, 214, 215, 216, 0, 0, 0, 0, 0,
1773  0, 0, 0, 0, 0, 217, 218, 219, 220, 0,
1774  0, 0, 0, 0, 0, 0, 0, 203, 0, 52,
1775  0, 0, 0, 0, 0, 0, 0, 221, 222, 204,
1776  205, 0, 223, 0, 0, 0, 0, 206, 0, 0,
1777  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778  24, 25, 207, 208, 209, 210, 0, 0, 0, 0,
1779  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780  0, 0, 0, 0, 224, 0, 0, 0, 755, 756,
1781  0, 607, 981, 225, 226, 227, 228, 229, 230, 0,
1782  211, 212, 213, 214, 215, 216, 0, 0, 0, 0,
1783  0, 0, 0, 0, 0, 0, 217, 218, 219, 220,
1784  0, 0, 0, 0, 0, 0, 0, 0, 0, 203,
1785  52, 0, 0, 0, 0, 0, 0, 0, 221, 222,
1786  0, 204, 205, 223, 0, 0, 0, 0, 0, 206,
1787  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788  0, 0, 24, 0, 207, 208, 209, 210, 0, 0,
1789  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790  0, 0, 0, 0, 0, 224, 43, 0, 0, 755,
1791  756, 0, 607, 0, 225, 226, 227, 228, 229, 230,
1792  0, 0, 211, 212, 213, 214, 215, 216, 0, 0,
1793  0, 0, 0, 0, 0, 203, 0, 0, 217, 218,
1794  219, 220, 0, 0, 0, 0, 0, 204, 205, 0,
1795  0, 0, 52, 0, 0, 206, 0, 0, 0, 0,
1796  221, 222, 0, 0, 0, 223, 203, 56, 24, 0,
1797  207, 208, 209, 210, 0, 0, 0, 0, 204, 205,
1798  0, 0, 0, 0, 0, 0, 206, 0, 0, 0,
1799  0, 0, 43, 0, 0, 0, 0, 0, 0, 24,
1800  0, 207, 208, 209, 210, 0, 0, 224, 211, 212,
1801  213, 214, 215, 216, -422, 0, 225, 226, 227, 228,
1802  229, 230, 0, 0, 217, 218, 219, 220, 0, 0,
1803  0, 0, 0, 0, 0, 0, 0, 0, 52, 211,
1804  212, 213, 214, 215, 216, 0, 221, 222, 0, 0,
1805  0, 223, 0, 56, 0, 217, 218, 219, 220, 0,
1806  0, 0, 0, 0, 0, 0, 0, 0, 0, 52,
1807  0, 0, 0, 0, 0, 203, 0, 221, 222, 0,
1808  0, 0, 223, 0, 0, 0, 0, 204, 205, 0,
1809  0, 0, 0, 224, 0, 206, 0, 0, 0, 0,
1810  0, 0, 225, 226, 227, 228, 229, 230, 24, 0,
1811  207, 208, 209, 210, 0, 0, 0, 0, 0, 0,
1812  0, 0, 0, 0, 224, 0, 0, 0, 0, 0,
1813  519, 0, 0, 225, 226, 227, 228, 229, 230, 0,
1814  0, 0, 0, 0, 0, 0, 0, 0, 211, 212,
1815  213, 214, 215, 216, 0, 0, 0, 0, 0, 0,
1816  0, 0, 203, 0, 217, 218, 219, 220, 0, 0,
1817  0, 0, 0, 0, 204, 205, 0, 0, 52, 0,
1818  0, 0, 206, 0, 0, 0, 221, 222, 0, 0,
1819  0, 223, 0, 203, 0, 24, 0, 207, 208, 209,
1820  210, 0, 0, 0, 0, 204, 205, 0, 0, 0,
1821  0, 0, 0, 206, 0, 0, 0, 0, 0, 0,
1822  0, 0, 0, 0, 0, 0, 24, 0, 207, 208,
1823  209, 210, 0, 224, 550, 211, 212, 213, 214, 215,
1824  216, 0, 225, 226, 227, 228, 229, 230, 0, 0,
1825  0, 217, 218, 219, 220, 0, 0, 0, 0, 0,
1826  0, 0, 0, 0, 0, 52, 211, 212, 213, 214,
1827  215, 216, 0, 221, 222, 0, 0, 0, 223, 203,
1828  0, 0, 217, 218, 219, 220, 0, 0, 0, 0,
1829  0, 204, 205, 0, 0, 0, 52, 0, 0, 206,
1830  0, 0, 0, 0, 221, 222, 0, 0, 0, 223,
1831  0, 0, 24, 0, 207, 208, 209, 210, 0, 0,
1832  224, 0, 0, 586, 0, 0, 0, 0, 0, 225,
1833  226, 227, 228, 229, 230, 0, 0, 0, 0, 0,
1834  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835  0, 224, 211, 212, 213, 214, 215, 216, 607, 0,
1836  225, 226, 227, 228, 229, 230, 0, 0, 217, 218,
1837  219, 220, 0, 0, 0, 0, 0, 0, 0, 0,
1838  203, 0, 52, 0, 0, 0, 203, 0, 0, 0,
1839  221, 222, 204, 205, 0, 223, 0, 0, 204, 205,
1840  206, 0, 0, 0, 0, 0, 206, 0, 0, 0,
1841  0, 0, 0, 24, 0, 207, 208, 209, 210, 24,
1842  25, 207, 208, 209, 210, 0, 0, 0, 0, 0,
1843  0, 0, 0, 0, 0, 0, 0, 224, 0, 0,
1844  0, 0, 0, 678, 0, 0, 225, 226, 227, 228,
1845  229, 230, 0, 211, 212, 213, 214, 215, 216, 211,
1846  212, 213, 214, 215, 216, 0, 0, 0, 0, 217,
1847  218, 219, 220, 0, 0, 217, 218, 219, 220, 0,
1848  0, 0, 0, 52, 0, 0, 0, 203, 0, 52,
1849  0, 221, 222, 203, 0, 0, 223, 221, 222, 204,
1850  205, 0, 223, 0, 0, 204, 205, 206, 0, 0,
1851  0, 0, 0, 206, 0, 0, 0, 0, 0, 0,
1852  24, 0, 207, 208, 209, 210, 24, 0, 207, 208,
1853  209, 210, 0, 0, 0, 0, 0, 0, 224, 0,
1854  0, 0, 0, 0, 224, 698, 0, 225, 226, 227,
1855  228, 229, 230, 225, 226, 227, 228, 229, 230, 0,
1856  211, 212, 213, 214, 215, 216, 211, 212, 213, 214,
1857  215, 216, 0, 0, 0, 0, 217, 218, 219, 220,
1858  0, 0, 217, 218, 219, 220, 0, 0, 0, 0,
1859  52, 0, 0, 0, 203, 0, 52, 0, 221, 222,
1860  203, 0, 0, 223, 221, 222, 204, 205, 0, 223,
1861  0, 0, 204, 205, 206, 0, 0, 0, 0, 0,
1862  206, 0, 0, 0, 0, 0, 0, 24, 0, 207,
1863  208, 209, 210, 24, 0, 207, 208, 209, 210, 0,
1864  0, 0, 0, 0, 0, 224, 0, 0, 0, 0,
1865  0, 224, 0, 0, 225, 226, 227, 228, 229, 230,
1866  225, 524, 227, 228, 229, 230, 0, 211, 212, 213,
1867  214, 215, 216, 211, 212, 213, 214, 215, 216, 0,
1868  0, 0, 0, 217, 218, 219, 220, 0, 0, 217,
1869  218, 219, 220, 0, 0, 0, 0, 52, 0, 0,
1870  203, 0, 0, 52, 0, 0, 0, 0, 0, 0,
1871  223, 0, 204, 205, 0, 0, 223, 0, 0, 0,
1872  206, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873  0, 0, 0, 24, 0, 207, 208, 209, 210, 0,
1874  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875  0, 0, 355, 0, 0, 0, 0, 0, 357, 0,
1876  0, 225, 226, 227, 228, 229, 230, 225, 226, 227,
1877  228, 229, 230, 211, 212, 213, 214, 215, 216, 0,
1878  0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
1879  218, 219, 220, 0, 0, 0, 0, 0, 0, 0,
1880  0, 0, 0, 52, 0, 0, 0, 0, 0, 0,
1881  0, 0, 0, 1, 2, 3, 223, 0, 4, 5,
1882  0, 0, 0, 6, 0, 7, 8, 9, 0, 0,
1883  0, 10, 11, 12, 13, 14, 0, 15, 16, 0,
1884  17, 18, 0, 19, 20, 21, 22, 23, 0, 0,
1885  0, 0, 0, 0, 0, 0, 0, 0, 367, 0,
1886  0, 0, 0, 0, 0, 0, 0, 225, 226, 227,
1887  228, 229, 230, 25, 0, 0, 0, 0, 0, 26,
1888  27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1889  37, 38, 39, 40, 41, 0, 43, 0, 0, 0,
1890  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891  0, 44, 0, 0, 0, 0, 0, 0, 0, 0,
1892  0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
1893  0, 0, 46, 47, 48, 49, 50, 51, 0, 0,
1894  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895  0, 0, 53, 54, 55, 0, 0, 56, 57, 58,
1896  1, 2, 3, 0, 0, 4, 5, 0, 0, 0,
1897  6, 0, 7, 8, 9, 0, 0, 0, 10, 11,
1898  12, 13, 14, 0, 15, 16, 0, 17, 18, 0,
1899  19, 20, 21, 22, 23, 0, 0, 0, 0, 0,
1900  0, 0, 0, 0, 0, 0, 0, 0, 817, 0,
1901  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902  25, 0, 0, 0, 0, 0, 26, 27, 28, 29,
1903  30, 31, 32, 0, 34, 35, 36, 37, 38, 39,
1904  40, 41, 0, 43, 0, 0, 0, 0, 0, 0,
1905  0, 0, 0, 0, 0, 0, 0, 0, 44, 0,
1906  0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
1907  0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
1908  47, 48, 49, 50, 51, 0, 0, 0, 0, 0,
1909  0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
1910  54, 55, 0, 0, 56, 0, 58, 1, 2, 3,
1911  0, 0, 4, 5, 0, 0, 0, 6, 0, 7,
1912  8, 9, 0, 0, 0, 10, 11, 12, 13, 14,
1913  0, 15, 16, 0, 17, 18, 0, 19, 20, 21,
1914  22, 23, 0, 0, 0, 0, 0, 0, 0, 0,
1915  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1916  0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
1917  0, 0, 0, 26, 27, 28, 29, 30, 31, 32,
1918  0, 34, 35, 36, 37, 38, 39, 40, 41, 0,
1919  43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1920  0, 0, 0, 0, 0, 44, 0, 0, 0, 0,
1921  0, 0, 0, 0, 0, 0, 45, 0, 0, 0,
1922  0, 0, 0, 0, 0, 0, 46, 47, 48, 49,
1923  50, 51, 0, 0, 0, 0, 0, 0, 0, 0,
1924  0, 0, 0, 0, 0, 0, 53, 54, 55, 0,
1925  0, 56, 0, 58, 1, 2, 3, 0, 0, 4,
1926  5, 0, 0, 0, 6, 0, 7, 8, 9, 0,
1927  0, 0, 10, 11, 12, 13, 14, 0, 15, 16,
1928  0, 17, 18, 0, 19, 20, 21, 22, 23, 0,
1929  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1930  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931  0, 0, 0, 0, 25, 0, 0, 0, 0, 0,
1932  26, 27, 28, 29, 30, 31, 32, 0, 34, 35,
1933  36, 37, 38, 39, 40, 41, 0, 1, 2, 3,
1934  0, 0, 4, 5, 0, 0, 0, 6, 0, 7,
1935  8, 9, 44, 0, 0, 10, 11, 12, 13, 14,
1936  0, 15, 16, 45, 17, 18, 0, 19, 20, 21,
1937  22, 23, 0, 46, 47, 48, 49, 50, 51, 0,
1938  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1939  0, 0, 0, 53, 54, 55, 0, 25, 0, 0,
1940  58, 0, 0, 26, 27, 28, 29, 30, 31, 0,
1941  0, 34, 35, 36, 37, 38, 39, 40, 41, 0,
1942  1, 2, 3, 0, 0, 4, 5, 0, 0, 0,
1943  6, 0, 0, 8, 9, 44, 0, 0, 10, 11,
1944  12, 13, 14, 0, 15, 16, 45, 17, 0, 0,
1945  19, 0, 21, 22, 23, 0, 0, 47, 48, 49,
1946  50, 51, 0, 0, 0, 0, 0, 0, 0, 0,
1947  0, 0, 0, 0, 0, 0, 53, 54, 0, 0,
1948  0, 0, 0, 58, 0, 0, 26, 27, 28, 29,
1949  30, 31, 0, 0, 34, 35, 36, 37, 38, 39,
1950  40, 41, 0, 1, 0, 0, 0, 0, 0, 5,
1951  0, 0, 0, 0, 0, 0, 8, 0, 44, 0,
1952  0, 10, 0, 0, 13, 14, 0, 0, 0, 45,
1953  17, 0, 0, 19, 0, 0, 0, 23, 0, 0,
1954  47, 48, 49, 50, 51, 0, 0, 0, 0, 0,
1955  0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
1956  54, 0, 0, 0, 0, 0, 58, 0, 0, 0,
1957  0, 0, 0, 30, 31, 0, 0, 0, 0, 0,
1958  0, 0, 0, 0, 41, 0, 2, 3, 0, 0,
1959  4, 5, 0, 0, 0, 6, 0, 7, 0, 9,
1960  0, 44, 0, 0, 11, 12, 0, 14, 0, 15,
1961  16, 0, 45, 18, 0, 0, 20, 21, 22, 23,
1962  0, 0, 0, 0, 0, 0, 50, 0, 0, 0,
1963  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1964  0, 0, 53, 54, 0, 25, 0, 0, 0, 58,
1965  0, 26, 27, 28, 29, 30, 31, 32, 0, 34,
1966  35, 36, 37, 38, 39, 40, 0, 0, 43, 2,
1967  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
1968  7, 0, 9, 44, 0, 0, 0, 11, 12, 0,
1969  14, 0, 15, 16, 0, 0, 18, 0, 0, 20,
1970  21, 22, 23, 0, 46, 47, 48, 49, 50, 51,
1971  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1972  0, 0, 0, 0, 53, 54, 55, 0, 25, 56,
1973  0, 0, 0, 0, 26, 27, 28, 29, 30, 31,
1974  32, 0, 34, 35, 36, 37, 38, 39, 40, 2,
1975  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
1976  0, 0, 9, 0, 0, 0, 44, 11, 12, 0,
1977  14, 0, 15, 16, 0, 0, 0, 0, 0, 0,
1978  21, 22, 23, 0, 0, 0, 0, 46, 47, 48,
1979  49, 50, 51, 0, 0, 0, 0, 0, 0, 0,
1980  0, 0, 0, 0, 0, 0, 0, 53, 54, 55,
1981  0, 0, 0, 0, 26, 27, 28, 29, 30, 31,
1982  0, 0, 34, 35, 36, 37, 38, 39, 40, 0,
1983  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1984  0, 0, 0, 0, 0, 0, 44, 0, 0, 0,
1985  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1986  0, 0, 0, 0, 0, 0, 0, 0, 47, 48,
1987  49, 50, 51, 0, 0, 0, 0, 0, 0, 0,
1988  0, 0, 0, 0, 0, 0, 0, 53, 54
1989 };
1990 
1991 static const yytype_int16 yycheck[] =
1992 {
1993  0, 206, 224, 844, 466, 339, 137, 61, 0, 113,
1994  111, 73, 74, 194, 122, 110, 110, 73, 74, 427,
1995  501, 77, 78, 73, 74, 206, 45, 46, 40, 199,
1996  321, 59, 59, 33, 73, 74, 110, 263, 263, 0,
1997  629, 512, 513, 514, 515, 62, 63, 0, 33, 1050,
1998  187, 155, 67, 137, 50, 189, 40, 41, 42, 59,
1999  0, 61, 62, 51, 189, 657, 870, 187, 11, 657,
2000  68, 71, 72, 73, 74, 51, 210, 669, 187, 1080,
2001  51, 669, 110, 110, 67, 210, 71, 72, 0, 62,
2002  77, 86, 79, 204, 81, 82, 83, 62, 221, 222,
2003  100, 187, 225, 226, 227, 228, 229, 230, 100, 108,
2004  110, 111, 109, 112, 918, 132, 342, 342, 187, 341,
2005  73, 74, 86, 19, 208, 62, 63, 124, 198, 199,
2006  127, 128, 129, 355, 131, 357, 135, 137, 67, 100,
2007  136, 37, 273, 86, 86, 367, 987, 100, 148, 61,
2008  62, 386, 147, 334, 25, 390, 192, 110, 492, 132,
2009  100, 73, 74, 25, 263, 266, 187, 132, 43, 44,
2010  265, 265, 273, 194, 110, 111, 188, 192, 272, 191,
2011  192, 351, 590, 147, 354, 204, 205, 478, 100, 480,
2012  481, 62, 63, 782, 194, 132, 194, 786, 272, 111,
2013  62, 63, 190, 187, 147, 147, 206, 191, 192, 192,
2014  1051, 189, 448, 189, 187, 188, 339, 193, 189, 192,
2015  192, 189, 193, 346, 197, 137, 887, 224, 0, 890,
2016  194, 62, 210, 206, 536, 192, 148, 265, 265, 541,
2017  25, 194, 210, 342, 272, 272, 482, 129, 190, 131,
2018  187, 68, 586, 206, 263, 192, 134, 135, 85, 86,
2019  197, 134, 135, 187, 189, 265, 266, 0, 268, 206,
2020  195, 187, 272, 273, 187, 501, 501, 62, 63, 189,
2021  403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
2022  413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
2023  210, 132, 963, 302, 189, 966, 487, 0, 189, 309,
2024  263, 773, 265, 85, 195, 87, 194, 188, 189, 272,
2025  147, 194, 210, 804, 309, 210, 188, 189, 100, 265,
2026  266, 47, 48, 342, 334, 62, 272, 273, 809, 187,
2027  748, 435, 813, 343, 192, 189, 441, 441, 134, 203,
2028  204, 205, 344, 189, 266, 67, 268, 188, 355, 86,
2029  357, 273, 216, 187, 187, 427, 210, 100, 192, 492,
2030  367, 427, 428, 197, 210, 479, 189, 427, 189, 190,
2031  193, 334, 206, 344, 62, 63, 386, 197, 427, 342,
2032  390, 344, 202, 203, 391, 187, 168, 169, 187, 188,
2033  192, 524, 501, 192, 188, 132, 263, 435, 435, 112,
2034  744, 512, 513, 441, 441, 188, 189, 195, 371, 372,
2035  147, 544, 188, 189, 62, 63, 423, 426, 427, 655,
2036  655, 371, 372, 386, 496, 435, 187, 390, 437, 438,
2037  496, 441, 498, 188, 189, 135, 496, 503, 504, 675,
2038  675, 686, 514, 515, 132, 636, 192, 496, 514, 515,
2039  187, 406, 407, 586, 514, 515, 647, 648, 690, 189,
2040  197, 188, 189, 193, 427, 514, 515, 539, 540, 206,
2041  188, 189, 435, 539, 540, 342, 777, 487, 441, 539,
2042  540, 263, 501, 715, 132, 495, 718, 959, 606, 435,
2043  539, 540, 189, 188, 189, 441, 193, 507, 713, 187,
2044  495, 187, 512, 513, 514, 515, 503, 504, 505, 197,
2045  755, 187, 507, 187, 187, 188, 187, 763, 206, 192,
2046  263, 701, 713, 187, 487, 187, 590, 537, 538, 539,
2047  540, 189, 207, 496, 206, 193, 546, 189, 501, 187,
2048  503, 193, 537, 538, 780, 780, 655, 658, 49, 197,
2049  196, 514, 515, 657, 187, 188, 187, 188, 206, 192,
2050  342, 192, 344, 189, 188, 189, 675, 193, 804, 804,
2051  189, 534, 535, 1045, 193, 188, 539, 540, 0, 693,
2052  589, 590, 189, 546, 534, 535, 193, 188, 189, 598,
2053  512, 513, 514, 515, 658, 209, 189, 607, 789, 342,
2054  193, 344, 188, 613, 611, 612, 670, 748, 188, 189,
2055  188, 744, 188, 189, 621, 622, 188, 539, 540, 657,
2056  657, 109, 110, 869, 188, 189, 636, 872, 874, 187,
2057  62, 669, 669, 188, 501, 86, 655, 647, 648, 61,
2058  188, 189, 205, 653, 607, 188, 656, 657, 658, 659,
2059  189, 73, 74, 188, 189, 209, 675, 194, 653, 669,
2060  670, 187, 62, 908, 193, 910, 194, 86, 809, 188,
2061  189, 780, 813, 636, 676, 188, 686, 194, 100, 188,
2062  189, 688, 689, 690, 647, 648, 188, 189, 698, 111,
2063  188, 113, 655, 62, 704, 804, 147, 148, 809, 706,
2064  132, 708, 194, 713, 936, 676, 938, 939, 188, 1053,
2065  188, 189, 675, 676, 188, 137, 37, 897, 933, 501,
2066  730, 188, 189, 686, 146, 188, 189, 19, 147, 148,
2067  187, 153, 132, 155, 62, 698, 658, 659, 210, 748,
2068  920, 704, 933, 706, 195, 755, 187, 865, 670, 756,
2069  713, 408, 409, 944, 187, 187, 188, 187, 501, 210,
2070  192, 780, 187, 132, 187, 197, 188, 730, 190, 414,
2071  415, 192, 25, 188, 206, 192, 195, 199, 194, 789,
2072  960, 410, 411, 412, 413, 804, 194, 187, 655, 194,
2073  190, 210, 755, 217, 218, 219, 220, 197, 188, 809,
2074  421, 422, 189, 813, 132, 193, 206, 193, 675, 62,
2075  63, 64, 1003, 931, 67, 887, 188, 780, 187, 188,
2076  188, 887, 188, 192, 1056, 835, 789, 887, 197, 189,
2077  948, 62, 63, 840, 189, 189, 843, 206, 887, 189,
2078  188, 804, 189, 67, 266, 855, 268, 67, 188, 188,
2079  1041, 273, 861, 862, 188, 86, 209, 188, 280, 187,
2080  870, 194, 872, 195, 189, 188, 873, 194, 210, 197,
2081  190, 187, 835, 655, 210, 187, 886, 887, 206, 187,
2082  890, 195, 892, 190, 1002, 189, 1077, 809, 210, 1007,
2083  190, 813, 855, 675, 676, 210, 318, 319, 908, 9,
2084  910, 132, 188, 188, 911, 188, 188, 870, 918, 872,
2085  190, 921, 655, 780, 1032, 25, 147, 190, 190, 1037,
2086  1053, 189, 344, 933, 887, 195, 188, 37, 188, 351,
2087  188, 210, 675, 676, 944, 209, 195, 804, 62, 63,
2088  195, 1059, 188, 950, 1062, 908, 188, 910, 133, 371,
2089  372, 85, 86, 188, 188, 918, 187, 190, 921, 704,
2090  188, 924, 189, 73, 74, 887, 197, 190, 890, 195,
2091  933, 62, 63, 109, 39, 206, 187, 984, 988, 989,
2092  210, 944, 68, 190, 187, 730, 195, 188, 68, 996,
2093  126, 101, 187, 1003, 1001, 131, 132, 195, 780, 187,
2094  134, 135, 210, 1010, 190, 427, 189, 133, 132, 190,
2095  188, 190, 1022, 147, 199, 188, 126, 187, 1028, 195,
2096  189, 193, 804, 190, 14, 988, 989, 209, 187, 1036,
2097  210, 1041, 142, 143, 189, 210, 193, 780, 187, 66,
2098  1003, 132, 1052, 189, 188, 210, 188, 188, 512, 513,
2099  514, 515, 187, 916, 416, 418, 417, 479, 280, 1022,
2100  194, 804, 419, 187, 91, 1028, 1073, 1077, 95, 420,
2101  351, 98, 293, 197, 496, 1085, 1083, 193, 1041, 1020,
2102  786, 617, 206, 503, 782, 892, 210, 890, 224, 1052,
2103  835, 966, 514, 515, 73, 74, 187, 503, 77, 78,
2104  79, 80, 81, 82, 83, 84, 197, 86, 789, 88,
2105  855, 636, 534, 535, 1077, 206, 656, 539, 540, 210,
2106  676, 698, 1085, 150, 546, 85, 86, 698, 712, 156,
2107  62, 63, 159, 160, 924, 162, 1002, 924, 931, 166,
2108  1037, 1062, 100, 675, 171, 1077, 342, 111, 175, 176,
2109  589, 178, 179, 589, -1, -1, 183, 184, 185, 186,
2110  187, -1, 189, -1, 191, -1, 351, -1, 590, 354,
2111  -1, -1, -1, -1, 134, 135, 921, -1, 363, -1,
2112  365, -1, -1, -1, -1, -1, -1, 147, -1, -1,
2113  375, -1, -1, 657, 658, -1, -1, -1, -1, -1,
2114  132, -1, -1, -1, 389, 669, 670, 392, 393, 394,
2115  395, 396, 397, 398, 399, 400, 401, 402, -1, 355,
2116  199, 357, -1, -1, -1, -1, 362, -1, 364, -1,
2117  366, 367, 3, -1, 194, -1, 658, -1, -1, -1,
2118  425, -1, -1, 988, 989, 16, -1, -1, 670, -1,
2119  21, -1, 9, 24, 676, 187, -1, -1, 190, 30,
2120  -1, -1, 33, 448, -1, 197, -1, -1, 25, -1,
2121  692, 693, -1, -1, 206, -1, -1, 1022, -1, -1,
2122  37, -1, 704, 1028, -1, -1, -1, -1, -1, -1,
2123  -1, 476, -1, -1, -1, -1, -1, 482, -1, -1,
2124  -1, -1, -1, -1, -1, 62, 63, 1052, 730, -1,
2125  -1, 338, -1, 84, -1, -1, 73, 74, -1, -1,
2126  -1, -1, -1, -1, -1, -1, 748, -1, -1, 86,
2127  -1, -1, -1, -1, -1, -1, -1, -1, -1, 61,
2128  1085, 112, -1, -1, 101, 809, -1, -1, -1, 813,
2129  -1, 73, 74, -1, -1, 77, 78, 79, 80, 81,
2130  82, 83, 84, 342, -1, -1, -1, 9, -1, 126,
2131  -1, -1, 351, -1, -1, 132, -1, -1, 149, -1,
2132  -1, -1, -1, 25, -1, 142, 143, 809, -1, 111,
2133  147, 813, -1, -1, -1, 37, 52, 53, 54, 55,
2134  56, 57, 58, 59, 60, 61, -1, -1, -1, -1,
2135  -1, -1, -1, 835, -1, 137, -1, -1, -1, -1,
2136  62, 63, 607, -1, -1, -1, -1, -1, -1, -1,
2137  187, 73, 74, 855, -1, 192, -1, -1, 902, -1,
2138  197, -1, -1, -1, 86, -1, 9, -1, -1, 206,
2139  -1, -1, -1, -1, -1, -1, -1, -1, -1, 101,
2140  -1, -1, 25, -1, -1, 887, 188, -1, 190, -1,
2141  -1, -1, -1, -1, 37, -1, -1, 199, -1, -1,
2142  -1, -1, -1, -1, 126, -1, -1, -1, -1, -1,
2143  132, -1, -1, -1, -1, -1, -1, -1, -1, 921,
2144  142, 143, 924, -1, -1, 147, -1, -1, -1, -1,
2145  73, 74, -1, 698, -1, -1, 701, -1, 497, 498,
2146  499, -1, 501, 86, 503, 504, 505, -1, -1, 62,
2147  -1, 64, 65, 66, 67, 514, 515, -1, 101, -1,
2148  -1, -1, -1, -1, 266, 187, -1, 683, 684, 685,
2149  -1, 273, -1, 209, -1, 197, 741, -1, -1, -1,
2150  539, 540, -1, 126, 206, -1, 988, 989, -1, 102,
2151  103, 104, 105, 106, -1, -1, -1, -1, 763, 142,
2152  143, -1, -1, -1, 147, 118, 119, 120, 121, -1,
2153  -1, -1, -1, -1, -1, -1, 318, 319, -1, 132,
2154  1022, -1, 629, -1, 631, -1, 1028, -1, 635, -1,
2155  -1, -1, 145, -1, 641, 642, -1, 644, -1, 646,
2156  342, -1, 649, 650, 651, -1, -1, -1, -1, 351,
2157  1052, -1, -1, -1, 661, -1, -1, -1, -1, -1,
2158  667, -1, -1, -1, 671, -1, 673, -1, -1, -1,
2159  -1, -1, -1, -1, 187, -1, -1, -1, -1, -1,
2160  -1, -1, -1, 1085, -1, -1, -1, -1, -1, -1,
2161  -1, -1, 9, -1, 9, -1, 655, -1, -1, -1,
2162  -1, -1, -1, -1, 869, 870, -1, -1, 25, 874,
2163  25, -1, -1, -1, 721, -1, 675, -1, -1, -1,
2164  37, -1, 37, -1, -1, 427, 428, 429, 430, -1,
2165  -1, -1, 897, 87, 88, 89, 90, 91, 92, 93,
2166  94, 95, 96, 97, 98, 62, 63, 62, 63, 914,
2167  -1, -1, 917, 918, -1, 920, 73, 74, 73, 74,
2168  -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
2169  -1, 86, -1, -1, -1, 782, -1, -1, -1, 786,
2170  -1, 788, -1, -1, 101, -1, 101, -1, -1, -1,
2171  797, 798, -1, -1, 496, 960, 498, 499, -1, 501,
2172  -1, 503, 504, 505, -1, -1, -1, -1, -1, 126,
2173  -1, 126, 514, 515, -1, 132, -1, 132, -1, -1,
2174  -1, -1, -1, -1, -1, 142, 143, 142, 143, -1,
2175  147, 9, 147, -1, -1, -1, -1, 539, 540, -1,
2176  -1, -1, -1, -1, -1, 804, -1, 25, -1, -1,
2177  -1, -1, -1, -1, -1, -1, -1, -1, -1, 37,
2178  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2179  187, -1, 187, -1, -1, -1, -1, -1, -1, -1,
2180  197, 888, 197, -1, 62, -1, -1, -1, 590, 206,
2181  -1, 206, 899, -1, -1, 73, 74, -1, -1, -1,
2182  -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
2183  -1, -1, 3, 4, 5, -1, -1, 8, 9, -1,
2184  -1, -1, 13, 101, 15, 16, 17, -1, -1, -1,
2185  21, 22, 23, 24, 25, -1, 27, 28, -1, 30,
2186  31, -1, 33, 34, 35, 36, 37, -1, 126, -1,
2187  -1, -1, -1, 655, 132, 962, 658, -1, 965, -1,
2188  -1, -1, -1, 970, 142, 143, -1, -1, 670, 147,
2189  -1, 62, 63, 675, -1, -1, -1, -1, 69, 70,
2190  71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2191  81, 82, 83, 84, 85, 86, -1, -1, -1, -1,
2192  -1, -1, -1, -1, -1, -1, -1, -1, 1015, 187,
2193  101, 1018, -1, -1, 192, -1, -1, -1, -1, 197,
2194  -1, 112, -1, -1, -1, -1, -1, -1, 206, -1,
2195  -1, 122, 123, 124, 125, 126, 127, -1, -1, -1,
2196  -1, 132, -1, -1, -1, -1, 748, -1, -1, -1,
2197  -1, 142, 143, 144, -1, -1, 147, 148, 149, -1,
2198  -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
2199  -1, -1, 8, 9, -1, -1, -1, 13, -1, 15,
2200  16, 17, -1, -1, -1, 21, 22, 23, 24, 25,
2201  -1, 27, 28, -1, 30, 31, 187, 33, 34, 35,
2202  36, 37, 804, 194, -1, -1, 197, 809, -1, -1,
2203  -1, 813, -1, -1, -1, 206, -1, -1, -1, 210,
2204  -1, -1, -1, -1, -1, -1, 62, 63, -1, -1,
2205  -1, -1, -1, 69, 70, 71, 72, 73, 74, 75,
2206  -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
2207  86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2208  -1, -1, -1, -1, -1, 101, -1, -1, -1, -1,
2209  -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
2210  -1, -1, -1, -1, -1, 887, 122, 123, 124, 125,
2211  126, 127, -1, -1, -1, -1, 132, -1, -1, -1,
2212  -1, -1, -1, -1, -1, -1, 142, 143, 144, -1,
2213  -1, 147, -1, 149, 3, 4, 5, -1, -1, 8,
2214  9, -1, -1, -1, 13, -1, 15, 16, 17, -1,
2215  -1, -1, 21, 22, 23, 24, 25, -1, 27, 28,
2216  -1, 30, 31, -1, 33, 34, 35, 36, 37, -1,
2217  -1, 187, -1, -1, -1, -1, 192, -1, -1, -1,
2218  -1, 197, -1, -1, -1, -1, -1, -1, -1, -1,
2219  206, -1, -1, 62, 63, -1, -1, -1, -1, -1,
2220  69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
2221  79, 80, 81, 82, 83, 84, -1, 86, -1, -1,
2222  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2223  -1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
2224  -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
2225  -1, -1, -1, 122, 123, 124, 125, 126, 127, -1,
2226  -1, -1, -1, 132, -1, -1, -1, -1, -1, -1,
2227  -1, -1, -1, 142, 143, 144, -1, -1, 147, -1,
2228  149, 4, 5, -1, -1, 8, 9, -1, -1, -1,
2229  13, -1, 15, -1, 17, -1, -1, -1, -1, 22,
2230  23, -1, 25, -1, 27, 28, -1, -1, 31, -1,
2231  -1, 34, 35, 36, 37, -1, -1, -1, 187, -1,
2232  -1, -1, -1, -1, -1, -1, -1, -1, 197, -1,
2233  -1, -1, -1, -1, -1, -1, -1, 206, -1, 62,
2234  63, -1, -1, -1, -1, -1, 69, 70, 71, 72,
2235  73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
2236  83, -1, -1, 86, -1, -1, -1, -1, -1, -1,
2237  -1, -1, -1, -1, -1, -1, -1, -1, 101, -1,
2238  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2239  -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
2240  123, 124, 125, 126, 127, -1, -1, -1, -1, 132,
2241  -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
2242  143, 144, 4, 5, 147, -1, 8, 9, -1, -1,
2243  -1, 13, -1, 15, -1, 17, -1, -1, -1, -1,
2244  22, 23, -1, 25, -1, 27, 28, -1, -1, 31,
2245  -1, -1, 34, 35, 36, 37, -1, -1, -1, -1,
2246  -1, -1, -1, -1, 187, -1, -1, 190, -1, -1,
2247  -1, -1, -1, -1, 197, -1, -1, -1, -1, -1,
2248  -1, 63, -1, 206, -1, -1, -1, 69, 70, 71,
2249  72, 73, 74, 75, -1, 77, 78, 79, 80, 81,
2250  82, 83, -1, -1, 86, -1, -1, -1, -1, -1,
2251  -1, -1, -1, -1, -1, -1, -1, -1, -1, 101,
2252  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2253  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2254  122, 123, 124, 125, 126, 127, -1, -1, -1, -1,
2255  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2256  142, 143, 144, -1, -1, 147, -1, -1, 3, 4,
2257  5, 6, 7, 8, 9, 10, 11, 12, 13, -1,
2258  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2259  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2260  35, 36, 37, -1, 39, 187, 41, 42, -1, -1,
2261  192, -1, -1, -1, 49, 197, -1, -1, -1, -1,
2262  -1, -1, -1, -1, 206, -1, -1, 62, 63, 64,
2263  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2264  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2265  85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
2266  -1, -1, -1, -1, 99, 100, 101, 102, 103, 104,
2267  105, 106, 107, 108, -1, -1, 111, 112, -1, -1,
2268  -1, -1, -1, 118, 119, 120, 121, 122, 123, 124,
2269  125, 126, 127, 128, -1, 130, -1, 132, -1, -1,
2270  -1, -1, -1, -1, -1, 140, 141, 142, 143, 144,
2271  145, -1, 147, 148, 149, -1, -1, -1, -1, -1,
2272  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2273  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2274  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275  -1, -1, 187, -1, -1, -1, -1, -1, -1, 194,
2276  195, 196, 197, 198, 199, 200, 201, 3, 4, 5,
2277  6, 7, 8, 9, 10, 11, 12, 13, -1, 15,
2278  16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
2279  26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
2280  36, 37, -1, 39, -1, 41, 42, -1, -1, -1,
2281  -1, -1, -1, 49, -1, -1, -1, -1, -1, -1,
2282  -1, -1, -1, -1, -1, -1, 62, 63, 64, 65,
2283  66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
2284  76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2285  86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2286  -1, -1, -1, 99, 100, 101, 102, 103, 104, 105,
2287  106, 107, 108, -1, -1, 111, 112, -1, -1, -1,
2288  -1, -1, 118, 119, 120, 121, 122, 123, 124, 125,
2289  126, 127, 128, -1, 130, -1, 132, -1, -1, -1,
2290  -1, -1, -1, -1, 140, 141, 142, 143, 144, 145,
2291  -1, 147, 148, 149, -1, -1, -1, -1, -1, -1,
2292  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2294  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2295  -1, 187, -1, -1, -1, -1, -1, -1, 194, 195,
2296  196, 197, 198, 199, 200, 201, 3, 4, 5, 6,
2297  7, 8, 9, 10, 11, 12, 13, -1, 15, 16,
2298  17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2299  27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2300  37, -1, 39, -1, 41, 42, -1, -1, -1, -1,
2301  -1, -1, 49, -1, -1, -1, -1, -1, -1, -1,
2302  -1, -1, -1, -1, -1, 62, 63, 64, 65, 66,
2303  67, -1, 69, 70, 71, 72, 73, 74, 75, 76,
2304  77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2305  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2306  -1, -1, 99, 100, 101, 102, 103, 104, 105, 106,
2307  107, 108, -1, -1, 111, 112, -1, -1, -1, -1,
2308  -1, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2309  127, 128, -1, 130, -1, 132, -1, -1, -1, -1,
2310  -1, -1, -1, 140, 141, 142, 143, 144, 145, -1,
2311  147, 148, 149, -1, -1, -1, -1, -1, -1, -1,
2312  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2313  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2314  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2315  187, -1, -1, -1, -1, -1, -1, 194, -1, 196,
2316  197, 198, 199, 200, 201, 3, 4, 5, -1, -1,
2317  8, 9, -1, -1, -1, 13, -1, 15, 16, 17,
2318  -1, -1, -1, 21, 22, 23, 24, 25, -1, 27,
2319  28, 29, 30, 31, -1, 33, 34, 35, 36, 37,
2320  -1, -1, -1, 41, 42, -1, -1, -1, -1, -1,
2321  -1, 49, -1, -1, -1, -1, -1, -1, -1, -1,
2322  -1, -1, -1, -1, 62, 63, 64, 65, 66, 67,
2323  -1, 69, 70, 71, 72, 73, 74, 75, 76, 77,
2324  78, 79, 80, 81, 82, 83, 84, -1, 86, -1,
2325  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2326  -1, -1, -1, 101, 102, 103, 104, 105, 106, 107,
2327  -1, -1, -1, -1, 112, -1, -1, -1, -1, -1,
2328  118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
2329  -1, -1, -1, -1, 132, -1, -1, -1, -1, -1,
2330  -1, -1, 140, 141, 142, 143, 144, 145, 3, 147,
2331  148, 149, -1, -1, 9, -1, -1, -1, -1, -1,
2332  -1, 16, -1, -1, -1, -1, 21, -1, -1, 24,
2333  25, -1, -1, -1, 29, 30, -1, -1, 33, -1,
2334  -1, -1, 37, -1, -1, -1, 41, 42, -1, 187,
2335  -1, -1, -1, -1, 49, -1, -1, -1, 196, 197,
2336  198, 199, 200, 201, -1, -1, -1, 62, -1, 64,
2337  65, 66, 67, -1, -1, -1, -1, -1, 73, 74,
2338  -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
2339  -1, 86, -1, -1, -1, -1, -1, -1, -1, -1,
2340  -1, -1, -1, -1, 9, -1, 101, 102, 103, 104,
2341  105, 106, 107, -1, -1, -1, -1, 112, -1, -1,
2342  25, -1, -1, 118, 119, 120, 121, -1, -1, -1,
2343  -1, 126, 37, -1, -1, -1, -1, 132, -1, -1,
2344  -1, -1, -1, -1, -1, 140, 141, 142, 143, 3,
2345  145, -1, 147, -1, 149, 9, -1, 62, -1, -1,
2346  -1, -1, 16, -1, -1, -1, -1, 21, 73, 74,
2347  24, 25, -1, -1, -1, 29, 30, -1, -1, 33,
2348  -1, 86, -1, 37, -1, -1, -1, 41, 42, -1,
2349  -1, -1, 187, -1, -1, 49, 101, -1, 193, -1,
2350  -1, 196, 197, 198, 199, 200, 201, -1, 62, -1,
2351  64, 65, 66, 67, -1, -1, -1, -1, -1, 73,
2352  74, 126, -1, -1, -1, -1, -1, 132, -1, -1,
2353  84, -1, 86, -1, -1, -1, -1, 142, 143, -1,
2354  9, -1, 147, -1, -1, -1, -1, 101, 102, 103,
2355  104, 105, 106, 107, -1, -1, 25, -1, 112, -1,
2356  -1, -1, -1, -1, 118, 119, 120, 121, 37, -1,
2357  -1, -1, 126, -1, -1, -1, -1, -1, 132, -1,
2358  -1, -1, 187, -1, -1, -1, 140, 141, 142, 143,
2359  29, 145, 197, 147, -1, 149, -1, -1, -1, -1,
2360  -1, 206, 41, 42, 73, 74, -1, -1, -1, -1,
2361  49, -1, -1, -1, -1, -1, -1, 86, -1, -1,
2362  -1, -1, -1, 62, -1, 64, 65, 66, 67, -1,
2363  -1, -1, 101, 187, -1, -1, -1, -1, -1, 193,
2364  -1, -1, 196, 197, 198, 199, 200, 201, -1, -1,
2365  -1, -1, -1, -1, -1, -1, -1, 126, -1, -1,
2366  -1, -1, -1, 102, 103, 104, 105, 106, 107, -1,
2367  -1, -1, -1, 142, 143, -1, 29, -1, 147, 118,
2368  119, 120, 121, -1, -1, -1, -1, -1, 41, 42,
2369  -1, -1, -1, 132, -1, -1, 49, -1, -1, -1,
2370  -1, 140, 141, -1, -1, -1, 145, 29, -1, 62,
2371  -1, 64, 65, 66, 67, -1, -1, -1, 187, 41,
2372  42, -1, -1, 192, -1, -1, -1, 49, 197, -1,
2373  -1, -1, -1, -1, -1, -1, -1, 206, -1, -1,
2374  62, 63, 64, 65, 66, 67, -1, -1, 187, 102,
2375  103, 104, 105, 106, 107, -1, -1, 196, 197, 198,
2376  199, 200, 201, -1, -1, 118, 119, 120, 121, -1,
2377  -1, 210, -1, -1, -1, -1, -1, -1, -1, 132,
2378  102, 103, 104, 105, 106, 107, -1, 140, 141, -1,
2379  -1, -1, 145, -1, -1, -1, 118, 119, 120, 121,
2380  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2381  132, -1, -1, -1, -1, -1, 29, -1, 140, 141,
2382  -1, -1, -1, 145, -1, -1, -1, -1, 41, 42,
2383  -1, -1, -1, -1, 187, -1, 49, -1, 191, 192,
2384  -1, 194, -1, 196, 197, 198, 199, 200, 201, 62,
2385  63, 64, 65, 66, 67, -1, 209, -1, -1, -1,
2386  -1, -1, -1, -1, -1, 187, -1, -1, -1, 191,
2387  192, -1, 194, 195, 196, 197, 198, 199, 200, 201,
2388  -1, -1, -1, -1, -1, -1, -1, -1, -1, 102,
2389  103, 104, 105, 106, 107, -1, -1, -1, -1, -1,
2390  -1, -1, -1, -1, -1, 118, 119, 120, 121, -1,
2391  -1, -1, -1, -1, -1, -1, -1, 29, -1, 132,
2392  -1, -1, -1, -1, -1, -1, -1, 140, 141, 41,
2393  42, -1, 145, -1, -1, -1, -1, 49, -1, -1,
2394  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2395  62, 63, 64, 65, 66, 67, -1, -1, -1, -1,
2396  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2397  -1, -1, -1, -1, 187, -1, -1, -1, 191, 192,
2398  -1, 194, 195, 196, 197, 198, 199, 200, 201, -1,
2399  102, 103, 104, 105, 106, 107, -1, -1, -1, -1,
2400  -1, -1, -1, -1, -1, -1, 118, 119, 120, 121,
2401  -1, -1, -1, -1, -1, -1, -1, -1, -1, 29,
2402  132, -1, -1, -1, -1, -1, -1, -1, 140, 141,
2403  -1, 41, 42, 145, -1, -1, -1, -1, -1, 49,
2404  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2405  -1, -1, 62, -1, 64, 65, 66, 67, -1, -1,
2406  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2407  -1, -1, -1, -1, -1, 187, 86, -1, -1, 191,
2408  192, -1, 194, -1, 196, 197, 198, 199, 200, 201,
2409  -1, -1, 102, 103, 104, 105, 106, 107, -1, -1,
2410  -1, -1, -1, -1, -1, 29, -1, -1, 118, 119,
2411  120, 121, -1, -1, -1, -1, -1, 41, 42, -1,
2412  -1, -1, 132, -1, -1, 49, -1, -1, -1, -1,
2413  140, 141, -1, -1, -1, 145, 29, 147, 62, -1,
2414  64, 65, 66, 67, -1, -1, -1, -1, 41, 42,
2415  -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2416  -1, -1, 86, -1, -1, -1, -1, -1, -1, 62,
2417  -1, 64, 65, 66, 67, -1, -1, 187, 102, 103,
2418  104, 105, 106, 107, 194, -1, 196, 197, 198, 199,
2419  200, 201, -1, -1, 118, 119, 120, 121, -1, -1,
2420  -1, -1, -1, -1, -1, -1, -1, -1, 132, 102,
2421  103, 104, 105, 106, 107, -1, 140, 141, -1, -1,
2422  -1, 145, -1, 147, -1, 118, 119, 120, 121, -1,
2423  -1, -1, -1, -1, -1, -1, -1, -1, -1, 132,
2424  -1, -1, -1, -1, -1, 29, -1, 140, 141, -1,
2425  -1, -1, 145, -1, -1, -1, -1, 41, 42, -1,
2426  -1, -1, -1, 187, -1, 49, -1, -1, -1, -1,
2427  -1, -1, 196, 197, 198, 199, 200, 201, 62, -1,
2428  64, 65, 66, 67, -1, -1, -1, -1, -1, -1,
2429  -1, -1, -1, -1, 187, -1, -1, -1, -1, -1,
2430  193, -1, -1, 196, 197, 198, 199, 200, 201, -1,
2431  -1, -1, -1, -1, -1, -1, -1, -1, 102, 103,
2432  104, 105, 106, 107, -1, -1, -1, -1, -1, -1,
2433  -1, -1, 29, -1, 118, 119, 120, 121, -1, -1,
2434  -1, -1, -1, -1, 41, 42, -1, -1, 132, -1,
2435  -1, -1, 49, -1, -1, -1, 140, 141, -1, -1,
2436  -1, 145, -1, 29, -1, 62, -1, 64, 65, 66,
2437  67, -1, -1, -1, -1, 41, 42, -1, -1, -1,
2438  -1, -1, -1, 49, -1, -1, -1, -1, -1, -1,
2439  -1, -1, -1, -1, -1, -1, 62, -1, 64, 65,
2440  66, 67, -1, 187, 188, 102, 103, 104, 105, 106,
2441  107, -1, 196, 197, 198, 199, 200, 201, -1, -1,
2442  -1, 118, 119, 120, 121, -1, -1, -1, -1, -1,
2443  -1, -1, -1, -1, -1, 132, 102, 103, 104, 105,
2444  106, 107, -1, 140, 141, -1, -1, -1, 145, 29,
2445  -1, -1, 118, 119, 120, 121, -1, -1, -1, -1,
2446  -1, 41, 42, -1, -1, -1, 132, -1, -1, 49,
2447  -1, -1, -1, -1, 140, 141, -1, -1, -1, 145,
2448  -1, -1, 62, -1, 64, 65, 66, 67, -1, -1,
2449  187, -1, -1, 190, -1, -1, -1, -1, -1, 196,
2450  197, 198, 199, 200, 201, -1, -1, -1, -1, -1,
2451  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2452  -1, 187, 102, 103, 104, 105, 106, 107, 194, -1,
2453  196, 197, 198, 199, 200, 201, -1, -1, 118, 119,
2454  120, 121, -1, -1, -1, -1, -1, -1, -1, -1,
2455  29, -1, 132, -1, -1, -1, 29, -1, -1, -1,
2456  140, 141, 41, 42, -1, 145, -1, -1, 41, 42,
2457  49, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2458  -1, -1, -1, 62, -1, 64, 65, 66, 67, 62,
2459  63, 64, 65, 66, 67, -1, -1, -1, -1, -1,
2460  -1, -1, -1, -1, -1, -1, -1, 187, -1, -1,
2461  -1, -1, -1, 193, -1, -1, 196, 197, 198, 199,
2462  200, 201, -1, 102, 103, 104, 105, 106, 107, 102,
2463  103, 104, 105, 106, 107, -1, -1, -1, -1, 118,
2464  119, 120, 121, -1, -1, 118, 119, 120, 121, -1,
2465  -1, -1, -1, 132, -1, -1, -1, 29, -1, 132,
2466  -1, 140, 141, 29, -1, -1, 145, 140, 141, 41,
2467  42, -1, 145, -1, -1, 41, 42, 49, -1, -1,
2468  -1, -1, -1, 49, -1, -1, -1, -1, -1, -1,
2469  62, -1, 64, 65, 66, 67, 62, -1, 64, 65,
2470  66, 67, -1, -1, -1, -1, -1, -1, 187, -1,
2471  -1, -1, -1, -1, 187, 194, -1, 196, 197, 198,
2472  199, 200, 201, 196, 197, 198, 199, 200, 201, -1,
2473  102, 103, 104, 105, 106, 107, 102, 103, 104, 105,
2474  106, 107, -1, -1, -1, -1, 118, 119, 120, 121,
2475  -1, -1, 118, 119, 120, 121, -1, -1, -1, -1,
2476  132, -1, -1, -1, 29, -1, 132, -1, 140, 141,
2477  29, -1, -1, 145, 140, 141, 41, 42, -1, 145,
2478  -1, -1, 41, 42, 49, -1, -1, -1, -1, -1,
2479  49, -1, -1, -1, -1, -1, -1, 62, -1, 64,
2480  65, 66, 67, 62, -1, 64, 65, 66, 67, -1,
2481  -1, -1, -1, -1, -1, 187, -1, -1, -1, -1,
2482  -1, 187, -1, -1, 196, 197, 198, 199, 200, 201,
2483  196, 197, 198, 199, 200, 201, -1, 102, 103, 104,
2484  105, 106, 107, 102, 103, 104, 105, 106, 107, -1,
2485  -1, -1, -1, 118, 119, 120, 121, -1, -1, 118,
2486  119, 120, 121, -1, -1, -1, -1, 132, -1, -1,
2487  29, -1, -1, 132, -1, -1, -1, -1, -1, -1,
2488  145, -1, 41, 42, -1, -1, 145, -1, -1, -1,
2489  49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2490  -1, -1, -1, 62, -1, 64, 65, 66, 67, -1,
2491  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2492  -1, -1, 187, -1, -1, -1, -1, -1, 187, -1,
2493  -1, 196, 197, 198, 199, 200, 201, 196, 197, 198,
2494  199, 200, 201, 102, 103, 104, 105, 106, 107, -1,
2495  -1, -1, -1, -1, -1, -1, -1, -1, -1, 118,
2496  119, 120, 121, -1, -1, -1, -1, -1, -1, -1,
2497  -1, -1, -1, 132, -1, -1, -1, -1, -1, -1,
2498  -1, -1, -1, 3, 4, 5, 145, -1, 8, 9,
2499  -1, -1, -1, 13, -1, 15, 16, 17, -1, -1,
2500  -1, 21, 22, 23, 24, 25, -1, 27, 28, -1,
2501  30, 31, -1, 33, 34, 35, 36, 37, -1, -1,
2502  -1, -1, -1, -1, -1, -1, -1, -1, 187, -1,
2503  -1, -1, -1, -1, -1, -1, -1, 196, 197, 198,
2504  199, 200, 201, 63, -1, -1, -1, -1, -1, 69,
2505  70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2506  80, 81, 82, 83, 84, -1, 86, -1, -1, -1,
2507  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2508  -1, 101, -1, -1, -1, -1, -1, -1, -1, -1,
2509  -1, -1, 112, -1, -1, -1, -1, -1, -1, -1,
2510  -1, -1, 122, 123, 124, 125, 126, 127, -1, -1,
2511  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2512  -1, -1, 142, 143, 144, -1, -1, 147, 148, 149,
2513  3, 4, 5, -1, -1, 8, 9, -1, -1, -1,
2514  13, -1, 15, 16, 17, -1, -1, -1, 21, 22,
2515  23, 24, 25, -1, 27, 28, -1, 30, 31, -1,
2516  33, 34, 35, 36, 37, -1, -1, -1, -1, -1,
2517  -1, -1, -1, -1, -1, -1, -1, -1, 51, -1,
2518  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2519  63, -1, -1, -1, -1, -1, 69, 70, 71, 72,
2520  73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
2521  83, 84, -1, 86, -1, -1, -1, -1, -1, -1,
2522  -1, -1, -1, -1, -1, -1, -1, -1, 101, -1,
2523  -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
2524  -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
2525  123, 124, 125, 126, 127, -1, -1, -1, -1, -1,
2526  -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
2527  143, 144, -1, -1, 147, -1, 149, 3, 4, 5,
2528  -1, -1, 8, 9, -1, -1, -1, 13, -1, 15,
2529  16, 17, -1, -1, -1, 21, 22, 23, 24, 25,
2530  -1, 27, 28, -1, 30, 31, -1, 33, 34, 35,
2531  36, 37, -1, -1, -1, -1, -1, -1, -1, -1,
2532  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2533  -1, -1, -1, -1, -1, -1, -1, 63, -1, -1,
2534  -1, -1, -1, 69, 70, 71, 72, 73, 74, 75,
2535  -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
2536  86, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2537  -1, -1, -1, -1, -1, 101, -1, -1, -1, -1,
2538  -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
2539  -1, -1, -1, -1, -1, -1, 122, 123, 124, 125,
2540  126, 127, -1, -1, -1, -1, -1, -1, -1, -1,
2541  -1, -1, -1, -1, -1, -1, 142, 143, 144, -1,
2542  -1, 147, -1, 149, 3, 4, 5, -1, -1, 8,
2543  9, -1, -1, -1, 13, -1, 15, 16, 17, -1,
2544  -1, -1, 21, 22, 23, 24, 25, -1, 27, 28,
2545  -1, 30, 31, -1, 33, 34, 35, 36, 37, -1,
2546  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2547  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2548  -1, -1, -1, -1, 63, -1, -1, -1, -1, -1,
2549  69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
2550  79, 80, 81, 82, 83, 84, -1, 3, 4, 5,
2551  -1, -1, 8, 9, -1, -1, -1, 13, -1, 15,
2552  16, 17, 101, -1, -1, 21, 22, 23, 24, 25,
2553  -1, 27, 28, 112, 30, 31, -1, 33, 34, 35,
2554  36, 37, -1, 122, 123, 124, 125, 126, 127, -1,
2555  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2556  -1, -1, -1, 142, 143, 144, -1, 63, -1, -1,
2557  149, -1, -1, 69, 70, 71, 72, 73, 74, -1,
2558  -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
2559  3, 4, 5, -1, -1, 8, 9, -1, -1, -1,
2560  13, -1, -1, 16, 17, 101, -1, -1, 21, 22,
2561  23, 24, 25, -1, 27, 28, 112, 30, -1, -1,
2562  33, -1, 35, 36, 37, -1, -1, 123, 124, 125,
2563  126, 127, -1, -1, -1, -1, -1, -1, -1, -1,
2564  -1, -1, -1, -1, -1, -1, 142, 143, -1, -1,
2565  -1, -1, -1, 149, -1, -1, 69, 70, 71, 72,
2566  73, 74, -1, -1, 77, 78, 79, 80, 81, 82,
2567  83, 84, -1, 3, -1, -1, -1, -1, -1, 9,
2568  -1, -1, -1, -1, -1, -1, 16, -1, 101, -1,
2569  -1, 21, -1, -1, 24, 25, -1, -1, -1, 112,
2570  30, -1, -1, 33, -1, -1, -1, 37, -1, -1,
2571  123, 124, 125, 126, 127, -1, -1, -1, -1, -1,
2572  -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
2573  143, -1, -1, -1, -1, -1, 149, -1, -1, -1,
2574  -1, -1, -1, 73, 74, -1, -1, -1, -1, -1,
2575  -1, -1, -1, -1, 84, -1, 4, 5, -1, -1,
2576  8, 9, -1, -1, -1, 13, -1, 15, -1, 17,
2577  -1, 101, -1, -1, 22, 23, -1, 25, -1, 27,
2578  28, -1, 112, 31, -1, -1, 34, 35, 36, 37,
2579  -1, -1, -1, -1, -1, -1, 126, -1, -1, -1,
2580  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2581  -1, -1, 142, 143, -1, 63, -1, -1, -1, 149,
2582  -1, 69, 70, 71, 72, 73, 74, 75, -1, 77,
2583  78, 79, 80, 81, 82, 83, -1, -1, 86, 4,
2584  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2585  15, -1, 17, 101, -1, -1, -1, 22, 23, -1,
2586  25, -1, 27, 28, -1, -1, 31, -1, -1, 34,
2587  35, 36, 37, -1, 122, 123, 124, 125, 126, 127,
2588  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2589  -1, -1, -1, -1, 142, 143, 144, -1, 63, 147,
2590  -1, -1, -1, -1, 69, 70, 71, 72, 73, 74,
2591  75, -1, 77, 78, 79, 80, 81, 82, 83, 4,
2592  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2593  -1, -1, 17, -1, -1, -1, 101, 22, 23, -1,
2594  25, -1, 27, 28, -1, -1, -1, -1, -1, -1,
2595  35, 36, 37, -1, -1, -1, -1, 122, 123, 124,
2596  125, 126, 127, -1, -1, -1, -1, -1, -1, -1,
2597  -1, -1, -1, -1, -1, -1, -1, 142, 143, 144,
2598  -1, -1, -1, -1, 69, 70, 71, 72, 73, 74,
2599  -1, -1, 77, 78, 79, 80, 81, 82, 83, -1,
2600  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2601  -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
2602  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2603  -1, -1, -1, -1, -1, -1, -1, -1, 123, 124,
2604  125, 126, 127, -1, -1, -1, -1, -1, -1, -1,
2605  -1, -1, -1, -1, -1, -1, -1, 142, 143
2606 };
2607 
2608  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2609  symbol of state STATE-NUM. */
2610 static const yytype_uint16 yystos[] =
2611 {
2612  0, 3, 4, 5, 8, 9, 13, 15, 16, 17,
2613  21, 22, 23, 24, 25, 27, 28, 30, 31, 33,
2614  34, 35, 36, 37, 62, 63, 69, 70, 71, 72,
2615  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2616  83, 84, 85, 86, 101, 112, 122, 123, 124, 125,
2617  126, 127, 132, 142, 143, 144, 147, 148, 149, 187,
2618  194, 197, 206, 210, 212, 213, 214, 256, 257, 258,
2619  265, 269, 270, 271, 272, 275, 276, 280, 281, 282,
2620  283, 284, 285, 286, 287, 288, 289, 290, 291, 295,
2621  297, 298, 299, 300, 302, 306, 310, 322, 325, 377,
2622  378, 379, 380, 381, 392, 402, 403, 404, 405, 187,
2623  187, 197, 214, 393, 394, 395, 396, 397, 398, 399,
2624  400, 402, 187, 187, 187, 187, 204, 192, 192, 192,
2625  67, 187, 187, 187, 403, 405, 68, 273, 275, 277,
2626  310, 402, 402, 0, 310, 311, 312, 210, 189, 210,
2627  189, 210, 210, 393, 210, 393, 214, 274, 275, 288,
2628  290, 297, 298, 299, 310, 402, 214, 275, 288, 290,
2629  297, 298, 299, 310, 402, 274, 298, 275, 297, 298,
2630  274, 275, 297, 274, 274, 274, 275, 297, 272, 297,
2631  272, 297, 311, 311, 311, 379, 134, 231, 187, 192,
2632  408, 410, 412, 29, 41, 42, 49, 64, 65, 66,
2633  67, 102, 103, 104, 105, 106, 107, 118, 119, 120,
2634  121, 140, 141, 145, 187, 196, 197, 198, 199, 200,
2635  201, 213, 215, 216, 217, 218, 219, 220, 221, 224,
2636  225, 226, 227, 229, 233, 234, 237, 238, 239, 240,
2637  241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
2638  251, 252, 253, 311, 336, 187, 197, 214, 312, 397,
2639  399, 401, 187, 273, 394, 396, 399, 408, 85, 262,
2640  263, 264, 310, 218, 187, 253, 25, 62, 63, 188,
2641  189, 292, 293, 294, 336, 253, 253, 253, 253, 336,
2642  336, 252, 188, 188, 195, 277, 402, 310, 402, 311,
2643  264, 264, 311, 311, 311, 311, 259, 311, 272, 272,
2644  311, 260, 311, 311, 311, 311, 311, 311, 311, 311,
2645  311, 311, 311, 295, 296, 213, 214, 323, 335, 187,
2646  135, 232, 188, 409, 411, 193, 197, 252, 254, 275,
2647  278, 279, 297, 310, 192, 187, 237, 187, 237, 237,
2648  335, 357, 187, 187, 187, 187, 187, 187, 237, 347,
2649  347, 347, 347, 238, 238, 187, 253, 336, 346, 347,
2650  238, 238, 238, 238, 238, 238, 40, 41, 42, 187,
2651  191, 192, 52, 53, 54, 55, 56, 57, 58, 59,
2652  60, 61, 209, 197, 202, 203, 198, 199, 43, 44,
2653  45, 46, 204, 205, 47, 48, 196, 206, 207, 49,
2654  50, 136, 137, 208, 188, 189, 270, 272, 281, 283,
2655  287, 289, 291, 188, 401, 187, 402, 188, 188, 408,
2656  401, 187, 396, 399, 19, 37, 362, 262, 209, 188,
2657  87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2658  97, 98, 307, 308, 309, 188, 187, 188, 293, 205,
2659  193, 193, 193, 188, 188, 188, 189, 408, 261, 393,
2660  266, 267, 209, 337, 337, 303, 335, 194, 311, 324,
2661  238, 251, 187, 346, 382, 270, 272, 275, 281, 287,
2662  297, 384, 385, 386, 387, 388, 389, 390, 391, 213,
2663  331, 332, 269, 270, 271, 272, 330, 333, 334, 193,
2664  193, 193, 254, 278, 197, 254, 336, 336, 336, 252,
2665  336, 252, 336, 336, 194, 194, 256, 269, 270, 271,
2666  272, 256, 252, 188, 188, 188, 194, 213, 214, 235,
2667  188, 236, 252, 235, 253, 252, 252, 252, 252, 252,
2668  252, 252, 252, 252, 252, 252, 238, 238, 238, 239,
2669  239, 240, 240, 241, 241, 241, 241, 242, 242, 243,
2670  244, 245, 246, 247, 249, 249, 190, 253, 252, 187,
2671  197, 206, 406, 408, 413, 415, 406, 188, 188, 408,
2672  408, 188, 188, 401, 37, 19, 187, 194, 254, 338,
2673  210, 187, 187, 187, 187, 187, 188, 189, 64, 67,
2674  292, 192, 192, 252, 337, 264, 337, 337, 338, 194,
2675  304, 305, 326, 327, 328, 335, 194, 188, 251, 393,
2676  297, 297, 297, 385, 214, 274, 298, 306, 325, 274,
2677  298, 274, 393, 189, 210, 188, 189, 187, 197, 206,
2678  396, 402, 407, 410, 414, 416, 396, 402, 407, 187,
2679  197, 402, 407, 402, 407, 188, 189, 193, 193, 193,
2680  188, 188, 188, 189, 189, 189, 189, 188, 256, 256,
2681  187, 220, 393, 393, 402, 402, 220, 189, 194, 238,
2682  6, 7, 10, 11, 12, 18, 19, 20, 26, 32,
2683  39, 68, 85, 99, 100, 108, 111, 128, 130, 195,
2684  213, 214, 253, 255, 256, 335, 343, 344, 345, 346,
2685  348, 349, 350, 352, 354, 355, 358, 359, 360, 361,
2686  188, 189, 193, 251, 190, 408, 413, 415, 273, 406,
2687  408, 188, 218, 363, 364, 191, 192, 213, 235, 338,
2688  339, 340, 341, 342, 253, 253, 213, 67, 67, 188,
2689  308, 188, 188, 209, 253, 253, 188, 268, 210, 257,
2690  311, 313, 314, 315, 316, 317, 194, 311, 195, 189,
2691  311, 326, 188, 311, 311, 311, 311, 335, 335, 311,
2692  311, 311, 393, 383, 384, 332, 188, 414, 416, 273,
2693  407, 311, 311, 273, 311, 311, 383, 51, 334, 336,
2694  336, 336, 228, 235, 253, 253, 11, 222, 223, 336,
2695  339, 340, 210, 254, 210, 190, 343, 353, 214, 253,
2696  187, 210, 253, 187, 187, 195, 362, 356, 357, 68,
2697  194, 346, 210, 346, 210, 190, 195, 343, 252, 251,
2698  188, 188, 188, 406, 188, 190, 365, 235, 253, 190,
2699  189, 195, 191, 192, 209, 338, 188, 188, 188, 188,
2700  188, 292, 193, 193, 337, 210, 270, 272, 195, 315,
2701  189, 210, 189, 210, 313, 311, 328, 209, 329, 195,
2702  311, 311, 188, 188, 407, 188, 188, 188, 40, 188,
2703  191, 192, 195, 195, 190, 188, 189, 190, 189, 195,
2704  51, 190, 343, 39, 187, 210, 210, 253, 210, 253,
2705  255, 187, 194, 189, 210, 68, 109, 110, 129, 131,
2706  310, 343, 408, 408, 192, 218, 366, 367, 190, 368,
2707  51, 193, 338, 195, 341, 235, 253, 338, 188, 189,
2708  190, 318, 321, 393, 319, 321, 402, 311, 319, 318,
2709  195, 254, 311, 187, 410, 235, 235, 253, 252, 223,
2710  252, 195, 254, 343, 187, 344, 349, 351, 188, 188,
2711  188, 363, 68, 357, 195, 346, 187, 346, 346, 210,
2712  335, 187, 189, 192, 218, 369, 370, 190, 371, 253,
2713  51, 193, 292, 254, 311, 320, 321, 311, 320, 301,
2714  311, 193, 190, 253, 255, 343, 343, 133, 230, 188,
2715  195, 253, 193, 253, 366, 335, 187, 189, 218, 372,
2716  373, 190, 374, 193, 253, 209, 311, 311, 301, 343,
2717  188, 210, 14, 187, 343, 210, 188, 218, 188, 193,
2718  253, 369, 189, 357, 375, 376, 193, 292, 230, 255,
2719  343, 251, 346, 187, 218, 188, 372, 189, 188, 210,
2720  188, 188, 253, 187, 376, 230, 188, 253, 343, 188
2721 };
2722 
2723  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2724 static const yytype_uint16 yyr1[] =
2725 {
2726  0, 211, 212, 213, 213, 214, 215, 216, 217, 218,
2727  219, 219, 219, 219, 220, 220, 220, 220, 220, 220,
2728  220, 220, 220, 220, 221, 222, 222, 223, 223, 224,
2729  224, 225, 226, 227, 228, 228, 228, 228, 229, 229,
2730  229, 229, 230, 230, 231, 231, 232, 232, 233, 234,
2731  234, 234, 234, 234, 234, 234, 234, 234, 234, 235,
2732  235, 236, 236, 237, 237, 237, 237, 237, 237, 237,
2733  237, 237, 237, 237, 237, 237, 237, 238, 238, 238,
2734  238, 239, 239, 239, 239, 240, 240, 240, 241, 241,
2735  241, 242, 242, 242, 242, 242, 243, 243, 243, 244,
2736  244, 245, 245, 246, 246, 247, 247, 248, 248, 249,
2737  249, 250, 250, 251, 251, 251, 252, 252, 252, 252,
2738  252, 252, 252, 252, 252, 252, 252, 252, 253, 253,
2739  254, 255, 255, 256, 256, 256, 256, 256, 257, 259,
2740  258, 260, 258, 261, 258, 262, 262, 263, 263, 264,
2741  264, 266, 265, 267, 265, 265, 268, 265, 269, 269,
2742  269, 269, 269, 270, 270, 270, 270, 270, 271, 271,
2743  271, 271, 271, 272, 272, 272, 273, 273, 274, 274,
2744  275, 275, 275, 275, 275, 275, 275, 275, 275, 276,
2745  276, 277, 277, 278, 278, 278, 279, 279, 280, 280,
2746  280, 280, 281, 281, 281, 281, 282, 282, 282, 283,
2747  283, 283, 284, 284, 284, 285, 285, 285, 286, 286,
2748  286, 287, 287, 287, 288, 288, 289, 289, 289, 289,
2749  290, 291, 291, 291, 291, 292, 292, 292, 293, 293,
2750  293, 293, 293, 293, 294, 294, 295, 295, 296, 296,
2751  297, 297, 297, 297, 297, 297, 297, 297, 297, 298,
2752  298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
2753  298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
2754  298, 298, 298, 298, 298, 299, 299, 299, 300, 301,
2755  303, 302, 304, 302, 305, 302, 306, 306, 307, 307,
2756  307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
2757  307, 308, 308, 309, 309, 310, 310, 311, 311, 312,
2758  312, 313, 313, 314, 314, 315, 315, 315, 315, 316,
2759  316, 317, 317, 318, 318, 318, 319, 319, 320, 320,
2760  321, 323, 322, 324, 322, 322, 325, 326, 326, 327,
2761  327, 327, 328, 329, 329, 330, 330, 331, 331, 332,
2762  333, 333, 334, 334, 334, 334, 334, 334, 334, 334,
2763  334, 334, 334, 334, 334, 334, 335, 335, 336, 336,
2764  336, 336, 337, 337, 338, 338, 338, 339, 339, 340,
2765  340, 341, 341, 341, 341, 342, 342, 342, 342, 342,
2766  342, 343, 343, 343, 343, 343, 343, 343, 343, 343,
2767  343, 343, 343, 344, 345, 345, 345, 345, 345, 346,
2768  346, 346, 347, 348, 348, 349, 350, 350, 350, 351,
2769  351, 352, 352, 353, 352, 354, 354, 354, 354, 354,
2770  354, 355, 356, 356, 357, 358, 358, 359, 359, 360,
2771  360, 360, 361, 361, 361, 362, 362, 362, 362, 362,
2772  363, 363, 363, 363, 363, 364, 365, 365, 366, 366,
2773  367, 367, 368, 368, 369, 369, 370, 370, 371, 371,
2774  372, 373, 373, 374, 374, 375, 375, 376, 377, 377,
2775  378, 378, 379, 379, 379, 379, 380, 380, 381, 382,
2776  383, 383, 384, 384, 385, 386, 386, 386, 387, 387,
2777  387, 387, 388, 388, 388, 389, 389, 390, 390, 390,
2778  391, 391, 391, 392, 392, 392, 392, 392, 393, 393,
2779  393, 394, 394, 394, 395, 395, 396, 396, 396, 397,
2780  397, 397, 398, 398, 399, 399, 399, 399, 399, 400,
2781  400, 400, 401, 401, 402, 402, 403, 403, 403, 403,
2782  404, 404, 404, 405, 405, 406, 406, 406, 407, 407,
2783  408, 408, 409, 408, 410, 410, 411, 410, 412, 412,
2784  412, 412, 412, 412, 412, 413, 413, 413, 413, 413,
2785  414, 414, 414, 414, 414, 415, 415, 415, 415, 415,
2786  416, 416, 416, 416
2787 };
2788 
2789  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2790 static const yytype_uint8 yyr2[] =
2791 {
2792  0, 2, 1, 1, 2, 1, 1, 1, 1, 1,
2793  1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
2794  1, 1, 1, 1, 6, 1, 3, 3, 3, 6,
2795  6, 6, 4, 6, 1, 3, 4, 3, 6, 4,
2796  6, 4, 0, 4, 0, 4, 0, 4, 3, 1,
2797  4, 3, 4, 3, 3, 2, 2, 6, 7, 1,
2798  1, 1, 3, 1, 2, 2, 2, 2, 2, 2,
2799  2, 2, 2, 2, 4, 2, 4, 1, 4, 2,
2800  2, 1, 3, 3, 3, 1, 3, 3, 1, 3,
2801  3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
2802  3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
2803  3, 1, 3, 1, 5, 4, 1, 3, 3, 3,
2804  3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
2805  1, 0, 1, 2, 2, 2, 2, 2, 6, 0,
2806  4, 0, 4, 0, 5, 5, 1, 2, 1, 0,
2807  1, 0, 5, 0, 5, 5, 0, 7, 1, 1,
2808  1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2809  1, 2, 2, 1, 2, 2, 1, 2, 1, 1,
2810  1, 1, 1, 1, 1, 1, 1, 4, 1, 4,
2811  4, 1, 1, 1, 1, 1, 1, 2, 3, 3,
2812  3, 3, 2, 3, 2, 3, 2, 2, 2, 1,
2813  2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2814  3, 2, 3, 3, 4, 4, 1, 2, 3, 2,
2815  4, 1, 2, 3, 2, 1, 1, 1, 1, 4,
2816  4, 6, 10, 1, 1, 2, 4, 3, 0, 1,
2817  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2818  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2819  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2820  1, 4, 7, 7, 1, 1, 1, 1, 4, 0,
2821  0, 9, 0, 10, 0, 6, 1, 1, 1, 1,
2822  4, 1, 4, 4, 1, 1, 4, 4, 1, 1,
2823  1, 0, 1, 1, 3, 6, 1, 0, 1, 1,
2824  2, 0, 1, 1, 2, 2, 2, 1, 2, 3,
2825  3, 3, 3, 3, 0, 2, 3, 2, 0, 1,
2826  2, 0, 7, 0, 8, 4, 1, 0, 1, 1,
2827  3, 2, 3, 0, 2, 1, 3, 1, 3, 1,
2828  1, 3, 1, 2, 3, 2, 1, 2, 3, 1,
2829  2, 3, 2, 1, 2, 3, 1, 1, 2, 3,
2830  2, 3, 0, 2, 1, 3, 4, 1, 3, 1,
2831  0, 1, 3, 2, 3, 2, 3, 5, 4, 6,
2832  3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2833  1, 1, 1, 1, 4, 3, 4, 6, 3, 3,
2834  4, 4, 0, 1, 2, 2, 5, 7, 5, 1,
2835  1, 6, 8, 0, 10, 3, 3, 2, 2, 2,
2836  3, 3, 1, 3, 1, 6, 5, 4, 2, 7,
2837  4, 1, 2, 4, 4, 0, 1, 1, 2, 2,
2838  1, 2, 3, 4, 5, 1, 2, 1, 4, 7,
2839  1, 3, 2, 1, 4, 7, 1, 3, 2, 1,
2840  1, 1, 3, 2, 1, 1, 3, 1, 0, 1,
2841  1, 2, 1, 1, 1, 1, 5, 3, 4, 1,
2842  0, 1, 1, 2, 2, 1, 2, 2, 3, 3,
2843  3, 3, 3, 3, 3, 4, 4, 1, 1, 1,
2844  2, 2, 3, 1, 2, 2, 2, 2, 1, 1,
2845  1, 4, 5, 2, 1, 1, 1, 2, 1, 1,
2846  2, 3, 3, 4, 1, 4, 5, 2, 3, 3,
2847  4, 4, 1, 3, 1, 1, 1, 2, 2, 3,
2848  2, 3, 4, 1, 3, 1, 1, 1, 1, 1,
2849  1, 3, 0, 5, 1, 2, 0, 5, 2, 3,
2850  3, 3, 4, 4, 4, 1, 2, 2, 3, 1,
2851  1, 2, 2, 3, 1, 3, 3, 3, 4, 4,
2852  3, 3, 1, 4
2853 };
2854 
2855 
2856 #define yyerrok (yyerrstatus = 0)
2857 #define yyclearin (yychar = YYEMPTY)
2858 #define YYEMPTY (-2)
2859 #define YYEOF 0
2860 
2861 #define YYACCEPT goto yyacceptlab
2862 #define YYABORT goto yyabortlab
2863 #define YYERROR goto yyerrorlab
2864 
2865 
2866 #define YYRECOVERING() (!!yyerrstatus)
2867 
2868 #define YYBACKUP(Token, Value) \
2869 do \
2870  if (yychar == YYEMPTY) \
2871  { \
2872  yychar = (Token); \
2873  yylval = (Value); \
2874  YYPOPSTACK (yylen); \
2875  yystate = *yyssp; \
2876  goto yybackup; \
2877  } \
2878  else \
2879  { \
2880  yyerror (YY_("syntax error: cannot back up")); \
2881  YYERROR; \
2882  } \
2883 while (0)
2884 
2885 /* Error token number */
2886 #define YYTERROR 1
2887 #define YYERRCODE 256
2888 
2889 
2890 
2891 /* Enable debugging if requested. */
2892 #if YYDEBUG
2893 
2894 # ifndef YYFPRINTF
2895 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2896 # define YYFPRINTF fprintf
2897 # endif
2898 
2899 # define YYDPRINTF(Args) \
2900 do { \
2901  if (yydebug) \
2902  YYFPRINTF Args; \
2903 } while (0)
2904 
2905 /* This macro is provided for backward compatibility. */
2906 #ifndef YY_LOCATION_PRINT
2907 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2908 #endif
2909 
2910 
2911 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2912 do { \
2913  if (yydebug) \
2914  { \
2915  YYFPRINTF (stderr, "%s ", Title); \
2916  yy_symbol_print (stderr, \
2917  Type, Value); \
2918  YYFPRINTF (stderr, "\n"); \
2919  } \
2920 } while (0)
2921 
2922 
2923 /*----------------------------------------.
2924 | Print this symbol's value on YYOUTPUT. |
2925 `----------------------------------------*/
2926 
2927 static void
2928 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2929 {
2930  FILE *yyo = yyoutput;
2931  YYUSE (yyo);
2932  if (!yyvaluep)
2933  return;
2934 # ifdef YYPRINT
2935  if (yytype < YYNTOKENS)
2936  YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2937 # endif
2938  YYUSE (yytype);
2939 }
2940 
2941 
2942 /*--------------------------------.
2943 | Print this symbol on YYOUTPUT. |
2944 `--------------------------------*/
2945 
2946 static void
2947 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2948 {
2949  YYFPRINTF (yyoutput, "%s %s (",
2950  yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2951 
2952  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2953  YYFPRINTF (yyoutput, ")");
2954 }
2955 
2956 /*------------------------------------------------------------------.
2957 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2958 | TOP (included). |
2959 `------------------------------------------------------------------*/
2960 
2961 static void
2962 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2963 {
2964  YYFPRINTF (stderr, "Stack now");
2965  for (; yybottom <= yytop; yybottom++)
2966  {
2967  int yybot = *yybottom;
2968  YYFPRINTF (stderr, " %d", yybot);
2969  }
2970  YYFPRINTF (stderr, "\n");
2971 }
2972 
2973 # define YY_STACK_PRINT(Bottom, Top) \
2974 do { \
2975  if (yydebug) \
2976  yy_stack_print ((Bottom), (Top)); \
2977 } while (0)
2978 
2979 
2980 /*------------------------------------------------.
2981 | Report that the YYRULE is going to be reduced. |
2982 `------------------------------------------------*/
2983 
2984 static void
2985 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2986 {
2987  unsigned long int yylno = yyrline[yyrule];
2988  int yynrhs = yyr2[yyrule];
2989  int yyi;
2990  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2991  yyrule - 1, yylno);
2992  /* The symbols being reduced. */
2993  for (yyi = 0; yyi < yynrhs; yyi++)
2994  {
2995  YYFPRINTF (stderr, " $%d = ", yyi + 1);
2996  yy_symbol_print (stderr,
2997  yystos[yyssp[yyi + 1 - yynrhs]],
2998  &(yyvsp[(yyi + 1) - (yynrhs)])
2999  );
3000  YYFPRINTF (stderr, "\n");
3001  }
3002 }
3003 
3004 # define YY_REDUCE_PRINT(Rule) \
3005 do { \
3006  if (yydebug) \
3007  yy_reduce_print (yyssp, yyvsp, Rule); \
3008 } while (0)
3009 
3010 /* Nonzero means print parse trace. It is left uninitialized so that
3011  multiple parsers can coexist. */
3012 int yydebug;
3013 #else /* !YYDEBUG */
3014 # define YYDPRINTF(Args)
3015 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3016 # define YY_STACK_PRINT(Bottom, Top)
3017 # define YY_REDUCE_PRINT(Rule)
3018 #endif /* !YYDEBUG */
3019 
3020 
3021 /* YYINITDEPTH -- initial size of the parser's stacks. */
3022 #ifndef YYINITDEPTH
3023 # define YYINITDEPTH 200
3024 #endif
3025 
3026 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3027  if the built-in stack extension method is used).
3028 
3029  Do not make this value too large; the results are undefined if
3030  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3031  evaluated with infinite-precision integer arithmetic. */
3032 
3033 #ifndef YYMAXDEPTH
3034 # define YYMAXDEPTH 10000
3035 #endif
3036 
3037 
3038 #if YYERROR_VERBOSE
3039 
3040 # ifndef yystrlen
3041 # if defined __GLIBC__ && defined _STRING_H
3042 # define yystrlen strlen
3043 # else
3044 /* Return the length of YYSTR. */
3045 static YYSIZE_T
3046 yystrlen (const char *yystr)
3047 {
3048  YYSIZE_T yylen;
3049  for (yylen = 0; yystr[yylen]; yylen++)
3050  continue;
3051  return yylen;
3052 }
3053 # endif
3054 # endif
3055 
3056 # ifndef yystpcpy
3057 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3058 # define yystpcpy stpcpy
3059 # else
3060 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3061  YYDEST. */
3062 static char *
3063 yystpcpy (char *yydest, const char *yysrc)
3064 {
3065  char *yyd = yydest;
3066  const char *yys = yysrc;
3067 
3068  while ((*yyd++ = *yys++) != '\0')
3069  continue;
3070 
3071  return yyd - 1;
3072 }
3073 # endif
3074 # endif
3075 
3076 # ifndef yytnamerr
3077 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3078  quotes and backslashes, so that it's suitable for yyerror. The
3079  heuristic is that double-quoting is unnecessary unless the string
3080  contains an apostrophe, a comma, or backslash (other than
3081  backslash-backslash). YYSTR is taken from yytname. If YYRES is
3082  null, do not copy; instead, return the length of what the result
3083  would have been. */
3084 static YYSIZE_T
3085 yytnamerr (char *yyres, const char *yystr)
3086 {
3087  if (*yystr == '"')
3088  {
3089  YYSIZE_T yyn = 0;
3090  char const *yyp = yystr;
3091 
3092  for (;;)
3093  switch (*++yyp)
3094  {
3095  case '\'':
3096  case ',':
3097  goto do_not_strip_quotes;
3098 
3099  case '\\':
3100  if (*++yyp != '\\')
3101  goto do_not_strip_quotes;
3102  /* Fall through. */
3103  default:
3104  if (yyres)
3105  yyres[yyn] = *yyp;
3106  yyn++;
3107  break;
3108 
3109  case '"':
3110  if (yyres)
3111  yyres[yyn] = '\0';
3112  return yyn;
3113  }
3114  do_not_strip_quotes: ;
3115  }
3116 
3117  if (! yyres)
3118  return yystrlen (yystr);
3119 
3120  return yystpcpy (yyres, yystr) - yyres;
3121 }
3122 # endif
3123 
3124 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3125  about the unexpected token YYTOKEN for the state stack whose top is
3126  YYSSP.
3127 
3128  Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
3129  not large enough to hold the message. In that case, also set
3130  *YYMSG_ALLOC to the required number of bytes. Return 2 if the
3131  required number of bytes is too large to store. */
3132 static int
3133 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3134  yytype_int16 *yyssp, int yytoken)
3135 {
3136  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3137  YYSIZE_T yysize = yysize0;
3138  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3139  /* Internationalized format string. */
3140  const char *yyformat = YY_NULLPTR;
3141  /* Arguments of yyformat. */
3142  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3143  /* Number of reported tokens (one for the "unexpected", one per
3144  "expected"). */
3145  int yycount = 0;
3146 
3147  /* There are many possibilities here to consider:
3148  - If this state is a consistent state with a default action, then
3149  the only way this function was invoked is if the default action
3150  is an error action. In that case, don't check for expected
3151  tokens because there are none.
3152  - The only way there can be no lookahead present (in yychar) is if
3153  this state is a consistent state with a default action. Thus,
3154  detecting the absence of a lookahead is sufficient to determine
3155  that there is no unexpected or expected token to report. In that
3156  case, just report a simple "syntax error".
3157  - Don't assume there isn't a lookahead just because this state is a
3158  consistent state with a default action. There might have been a
3159  previous inconsistent state, consistent state with a non-default
3160  action, or user semantic action that manipulated yychar.
3161  - Of course, the expected token list depends on states to have
3162  correct lookahead information, and it depends on the parser not
3163  to perform extra reductions after fetching a lookahead from the
3164  scanner and before detecting a syntax error. Thus, state merging
3165  (from LALR or IELR) and default reductions corrupt the expected
3166  token list. However, the list is correct for canonical LR with
3167  one exception: it will still contain any token that will not be
3168  accepted due to an error action in a later state.
3169  */
3170  if (yytoken != YYEMPTY)
3171  {
3172  int yyn = yypact[*yyssp];
3173  yyarg[yycount++] = yytname[yytoken];
3174  if (!yypact_value_is_default (yyn))
3175  {
3176  /* Start YYX at -YYN if negative to avoid negative indexes in
3177  YYCHECK. In other words, skip the first -YYN actions for
3178  this state because they are default actions. */
3179  int yyxbegin = yyn < 0 ? -yyn : 0;
3180  /* Stay within bounds of both yycheck and yytname. */
3181  int yychecklim = YYLAST - yyn + 1;
3182  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3183  int yyx;
3184 
3185  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3186  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3187  && !yytable_value_is_error (yytable[yyx + yyn]))
3188  {
3189  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3190  {
3191  yycount = 1;
3192  yysize = yysize0;
3193  break;
3194  }
3195  yyarg[yycount++] = yytname[yyx];
3196  {
3197  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3198  if (! (yysize <= yysize1
3199  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3200  return 2;
3201  yysize = yysize1;
3202  }
3203  }
3204  }
3205  }
3206 
3207  switch (yycount)
3208  {
3209 # define YYCASE_(N, S) \
3210  case N: \
3211  yyformat = S; \
3212  break
3213  YYCASE_(0, YY_("syntax error"));
3214  YYCASE_(1, YY_("syntax error, unexpected %s"));
3215  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3216  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3217  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3218  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3219 # undef YYCASE_
3220  }
3221 
3222  {
3223  YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3224  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3225  return 2;
3226  yysize = yysize1;
3227  }
3228 
3229  if (*yymsg_alloc < yysize)
3230  {
3231  *yymsg_alloc = 2 * yysize;
3232  if (! (yysize <= *yymsg_alloc
3233  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3234  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3235  return 1;
3236  }
3237 
3238  /* Avoid sprintf, as that infringes on the user's name space.
3239  Don't have undefined behavior even if the translation
3240  produced a string with the wrong number of "%s"s. */
3241  {
3242  char *yyp = *yymsg;
3243  int yyi = 0;
3244  while ((*yyp = *yyformat) != '\0')
3245  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3246  {
3247  yyp += yytnamerr (yyp, yyarg[yyi++]);
3248  yyformat += 2;
3249  }
3250  else
3251  {
3252  yyp++;
3253  yyformat++;
3254  }
3255  }
3256  return 0;
3257 }
3258 #endif /* YYERROR_VERBOSE */
3259 
3260 /*-----------------------------------------------.
3261 | Release the memory associated to this symbol. |
3262 `-----------------------------------------------*/
3263 
3264 static void
3265 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3266 {
3267  YYUSE (yyvaluep);
3268  if (!yymsg)
3269  yymsg = "Deleting";
3270  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3271 
3273  YYUSE (yytype);
3275 }
3276 
3277 
3278 
3279 
3280 /* The lookahead symbol. */
3282 
3283 /* The semantic value of the lookahead symbol. */
3285 /* Number of syntax errors so far. */
3287 
3288 
3289 /*----------.
3290 | yyparse. |
3291 `----------*/
3292 
3293 int
3294 yyparse (void)
3295 {
3296  int yystate;
3297  /* Number of tokens to shift before error messages enabled. */
3298  int yyerrstatus;
3299 
3300  /* The stacks and their tools:
3301  'yyss': related to states.
3302  'yyvs': related to semantic values.
3303 
3304  Refer to the stacks through separate pointers, to allow yyoverflow
3305  to reallocate them elsewhere. */
3306 
3307  /* The state stack. */
3308  yytype_int16 yyssa[YYINITDEPTH];
3309  yytype_int16 *yyss;
3310  yytype_int16 *yyssp;
3311 
3312  /* The semantic value stack. */
3313  YYSTYPE yyvsa[YYINITDEPTH];
3314  YYSTYPE *yyvs;
3315  YYSTYPE *yyvsp;
3316 
3317  YYSIZE_T yystacksize;
3318 
3319  int yyn;
3320  int yyresult;
3321  /* Lookahead token as an internal (translated) token number. */
3322  int yytoken = 0;
3323  /* The variables used to return semantic value and location from the
3324  action routines. */
3325  YYSTYPE yyval;
3326 
3327 #if YYERROR_VERBOSE
3328  /* Buffer for error messages, and its allocated size. */
3329  char yymsgbuf[128];
3330  char *yymsg = yymsgbuf;
3331  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3332 #endif
3333 
3334 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3335 
3336  /* The number of symbols on the RHS of the reduced rule.
3337  Keep to zero when no symbol should be popped. */
3338  int yylen = 0;
3339 
3340  yyssp = yyss = yyssa;
3341  yyvsp = yyvs = yyvsa;
3342  yystacksize = YYINITDEPTH;
3343 
3344  YYDPRINTF ((stderr, "Starting parse\n"));
3345 
3346  yystate = 0;
3347  yyerrstatus = 0;
3348  yynerrs = 0;
3349  yychar = YYEMPTY; /* Cause a token to be read. */
3350  goto yysetstate;
3351 
3352 /*------------------------------------------------------------.
3353 | yynewstate -- Push a new state, which is found in yystate. |
3354 `------------------------------------------------------------*/
3355  yynewstate:
3356  /* In all cases, when you get here, the value and location stacks
3357  have just been pushed. So pushing a state here evens the stacks. */
3358  yyssp++;
3359 
3360  yysetstate:
3361  *yyssp = yystate;
3362 
3363  if (yyss + yystacksize - 1 <= yyssp)
3364  {
3365  /* Get the current used size of the three stacks, in elements. */
3366  YYSIZE_T yysize = yyssp - yyss + 1;
3367 
3368 #ifdef yyoverflow
3369  {
3370  /* Give user a chance to reallocate the stack. Use copies of
3371  these so that the &'s don't force the real ones into
3372  memory. */
3373  YYSTYPE *yyvs1 = yyvs;
3374  yytype_int16 *yyss1 = yyss;
3375 
3376  /* Each stack pointer address is followed by the size of the
3377  data in use in that stack, in bytes. This used to be a
3378  conditional around just the two extra args, but that might
3379  be undefined if yyoverflow is a macro. */
3380  yyoverflow (YY_("memory exhausted"),
3381  &yyss1, yysize * sizeof (*yyssp),
3382  &yyvs1, yysize * sizeof (*yyvsp),
3383  &yystacksize);
3384 
3385  yyss = yyss1;
3386  yyvs = yyvs1;
3387  }
3388 #else /* no yyoverflow */
3389 # ifndef YYSTACK_RELOCATE
3390  goto yyexhaustedlab;
3391 # else
3392  /* Extend the stack our own way. */
3393  if (YYMAXDEPTH <= yystacksize)
3394  goto yyexhaustedlab;
3395  yystacksize *= 2;
3396  if (YYMAXDEPTH < yystacksize)
3397  yystacksize = YYMAXDEPTH;
3398 
3399  {
3400  yytype_int16 *yyss1 = yyss;
3401  union yyalloc *yyptr =
3402  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3403  if (! yyptr)
3404  goto yyexhaustedlab;
3405  YYSTACK_RELOCATE (yyss_alloc, yyss);
3406  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3407 # undef YYSTACK_RELOCATE
3408  if (yyss1 != yyssa)
3409  YYSTACK_FREE (yyss1);
3410  }
3411 # endif
3412 #endif /* no yyoverflow */
3413 
3414  yyssp = yyss + yysize - 1;
3415  yyvsp = yyvs + yysize - 1;
3416 
3417  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3418  (unsigned long int) yystacksize));
3419 
3420  if (yyss + yystacksize - 1 <= yyssp)
3421  YYABORT;
3422  }
3423 
3424  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3425 
3426  if (yystate == YYFINAL)
3427  YYACCEPT;
3428 
3429  goto yybackup;
3430 
3431 /*-----------.
3432 | yybackup. |
3433 `-----------*/
3434 yybackup:
3435 
3436  /* Do appropriate processing given the current state. Read a
3437  lookahead token if we need one and don't already have one. */
3438 
3439  /* First try to decide what to do without reference to lookahead token. */
3440  yyn = yypact[yystate];
3441  if (yypact_value_is_default (yyn))
3442  goto yydefault;
3443 
3444  /* Not known => get a lookahead token if don't already have one. */
3445 
3446  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3447  if (yychar == YYEMPTY)
3448  {
3449  YYDPRINTF ((stderr, "Reading a token: "));
3450  yychar = yylex ();
3451  }
3452 
3453  if (yychar <= YYEOF)
3454  {
3455  yychar = yytoken = YYEOF;
3456  YYDPRINTF ((stderr, "Now at end of input.\n"));
3457  }
3458  else
3459  {
3460  yytoken = YYTRANSLATE (yychar);
3461  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3462  }
3463 
3464  /* If the proper action on seeing token YYTOKEN is to reduce or to
3465  detect an error, take that action. */
3466  yyn += yytoken;
3467  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3468  goto yydefault;
3469  yyn = yytable[yyn];
3470  if (yyn <= 0)
3471  {
3472  if (yytable_value_is_error (yyn))
3473  goto yyerrlab;
3474  yyn = -yyn;
3475  goto yyreduce;
3476  }
3477 
3478  /* Count tokens shifted since error; after three, turn off error
3479  status. */
3480  if (yyerrstatus)
3481  yyerrstatus--;
3482 
3483  /* Shift the lookahead token. */
3484  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3485 
3486  /* Discard the shifted token. */
3487  yychar = YYEMPTY;
3488 
3489  yystate = yyn;
3491  *++yyvsp = yylval;
3493 
3494  goto yynewstate;
3495 
3496 
3497 /*-----------------------------------------------------------.
3498 | yydefault -- do the default action for the current state. |
3499 `-----------------------------------------------------------*/
3500 yydefault:
3501  yyn = yydefact[yystate];
3502  if (yyn == 0)
3503  goto yyerrlab;
3504  goto yyreduce;
3505 
3506 
3507 /*-----------------------------.
3508 | yyreduce -- Do a reduction. |
3509 `-----------------------------*/
3510 yyreduce:
3511  /* yyn is the number of a rule to reduce with. */
3512  yylen = yyr2[yyn];
3513 
3514  /* If YYLEN is nonzero, implement the default value of the action:
3515  '$$ = $1'.
3516 
3517  Otherwise, the following line sets YYVAL to garbage.
3518  This behavior is undocumented and Bison
3519  users should not rely upon it. Assigning to YYVAL
3520  unconditionally makes the parser a bit smaller, and it avoids a
3521  GCC warning that YYVAL may be used uninitialized. */
3522  yyval = yyvsp[1-yylen];
3523 
3524 
3525  YY_REDUCE_PRINT (yyn);
3526  switch (yyn)
3527  {
3528  case 4:
3529 #line 265 "parser.y" /* yacc.c:1646 */
3530  {
3531  (yyval)=(yyvsp[-1]);
3532  stack((yyval)).id(ID_symbol);
3533  irep_idt value=stack((yyvsp[0])).get(ID_value);
3534  stack((yyval)).set(ID_C_base_name, value);
3535  stack((yyval)).set(ID_identifier, value);
3536  stack((yyval)).set(
3537  ID_C_id_class, static_cast<int>(ansi_c_id_classt::ANSI_C_SYMBOL));
3538  }
3539 #line 3540 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3540  break;
3541 
3542  case 16:
3543 #line 310 "parser.y" /* yacc.c:1646 */
3544  { (yyval) = (yyvsp[-1]); }
3545 #line 3546 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3546  break;
3547 
3548  case 24:
3549 #line 322 "parser.y" /* yacc.c:1646 */
3550  {
3551  (yyval)=(yyvsp[-5]);
3552  set((yyval), ID_generic_selection);
3553  mto((yyval), (yyvsp[-3]));
3554  stack((yyval)).add(ID_generic_associations).get_sub().swap((irept::subt&)stack((yyvsp[-1])).operands());
3555  }
3556 #line 3557 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3557  break;
3558 
3559  case 25:
3560 #line 332 "parser.y" /* yacc.c:1646 */
3561  {
3562  init((yyval)); mto((yyval), (yyvsp[0]));
3563  }
3564 #line 3565 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3565  break;
3566 
3567  case 26:
3568 #line 336 "parser.y" /* yacc.c:1646 */
3569  {
3570  (yyval)=(yyvsp[-2]); mto((yyval), (yyvsp[0]));
3571  }
3572 #line 3573 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3573  break;
3574 
3575  case 27:
3576 #line 343 "parser.y" /* yacc.c:1646 */
3577  {
3578  (yyval)=(yyvsp[-1]);
3579  stack((yyval)).id(ID_generic_association);
3580  stack((yyval)).set(ID_type_arg, stack((yyvsp[-2])));
3581  stack((yyval)).set(ID_value, stack((yyvsp[0])));
3582  }
3583 #line 3584 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3584  break;
3585 
3586  case 28:
3587 #line 350 "parser.y" /* yacc.c:1646 */
3588  {
3589  (yyval)=(yyvsp[-1]);
3590  stack((yyval)).id(ID_generic_association);
3591  stack((yyval)).set(ID_type_arg, irept(ID_default));
3592  stack((yyval)).set(ID_value, stack((yyvsp[0])));
3593  }
3594 #line 3595 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3595  break;
3596 
3597  case 29:
3598 #line 360 "parser.y" /* yacc.c:1646 */
3599  {
3600  (yyval)=(yyvsp[-5]);
3601  stack((yyval)).id(ID_gcc_builtin_va_arg);
3602  mto((yyval), (yyvsp[-3]));
3603  stack((yyval)).type().swap(stack((yyvsp[-1])));
3604  }
3605 #line 3606 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3606  break;
3607 
3608  case 30:
3609 #line 368 "parser.y" /* yacc.c:1646 */
3610  {
3611  (yyval)=(yyvsp[-5]);
3612  stack((yyval)).id(ID_gcc_builtin_types_compatible_p);
3613  typet &type_arg=(typet &)(stack((yyval)).add(ID_type_arg));
3614  typet::subtypest &subtypes=type_arg.subtypes();
3615  subtypes.resize(2);
3616  subtypes[0].swap(stack((yyvsp[-3])));
3617  subtypes[1].swap(stack((yyvsp[-1])));
3618  }
3619 #line 3620 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3620  break;
3621 
3622  case 31:
3623 #line 381 "parser.y" /* yacc.c:1646 */
3624  {
3625  (yyval)=(yyvsp[-5]);
3626  stack((yyval)).id(ID_clang_builtin_convertvector);
3627  mto((yyval), (yyvsp[-3]));
3628  stack((yyval)).type().swap(stack((yyvsp[-1])));
3629  }
3630 #line 3631 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3631  break;
3632 
3633  case 32:
3634 #line 391 "parser.y" /* yacc.c:1646 */
3635  {
3636  (yyval)=(yyvsp[-3]);
3637  stack((yyval)).id(ID_cw_va_arg_typeof);
3638  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
3639  }
3640 #line 3641 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3641  break;
3642 
3643  case 33:
3644 #line 400 "parser.y" /* yacc.c:1646 */
3645  {
3646  (yyval)=(yyvsp[-5]);
3647  stack((yyval)).id(ID_builtin_offsetof);
3648  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-3])));
3649  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-1])));
3650  }
3651 #line 3652 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3652  break;
3653 
3654  case 34:
3655 #line 410 "parser.y" /* yacc.c:1646 */
3656  {
3657  init((yyval), ID_designated_initializer);
3658  stack((yyval)).operands().resize(1);
3659  stack((yyval)).op0().id(ID_member);
3660  stack((yyval)).op0().add_source_location()=stack((yyvsp[0])).source_location();
3661  stack((yyval)).op0().set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3662  }
3663 #line 3664 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3664  break;
3665 
3666  case 35:
3667 #line 418 "parser.y" /* yacc.c:1646 */
3668  {
3669  (yyval)=(yyvsp[-2]);
3670  set((yyvsp[-1]), ID_member);
3671  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3672  mto((yyval), (yyvsp[-1]));
3673  }
3674 #line 3675 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3675  break;
3676 
3677  case 36:
3678 #line 425 "parser.y" /* yacc.c:1646 */
3679  {
3680  (yyval)=(yyvsp[-3]);
3681  set((yyvsp[-2]), ID_index);
3682  mto((yyvsp[-2]), (yyvsp[-1]));
3683  mto((yyval), (yyvsp[-2]));
3684  }
3685 #line 3686 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3686  break;
3687 
3688  case 37:
3689 #line 432 "parser.y" /* yacc.c:1646 */
3690  {
3691  (yyval)=(yyvsp[-2]);
3692  set((yyvsp[-1]), ID_index);
3693  exprt tmp=convert_integer_literal("0");
3694  stack((yyvsp[-1])).move_to_operands(tmp);
3695  mto((yyval), (yyvsp[-1]));
3696  set((yyvsp[-1]), ID_member);
3697  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3698  mto((yyval), (yyvsp[-1]));
3699  }
3700 #line 3701 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3701  break;
3702 
3703  case 38:
3704 #line 446 "parser.y" /* yacc.c:1646 */
3705  {
3706  (yyval)=(yyvsp[-5]);
3707  set((yyval), ID_forall);
3708  mto((yyval), (yyvsp[-2]));
3709  mto((yyval), (yyvsp[-1]));
3710  PARSER.pop_scope();
3711  }
3712 #line 3713 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3713  break;
3714 
3715  case 39:
3716 #line 454 "parser.y" /* yacc.c:1646 */
3717  {
3718  // The precedence of this operator is too high; it is meant
3719  // to bind only very weakly.
3720  (yyval)=(yyvsp[-3]);
3721  set((yyval), ID_forall);
3722  mto((yyval), (yyvsp[-1]));
3723  mto((yyval), (yyvsp[0]));
3724  PARSER.pop_scope();
3725  }
3726 #line 3727 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3727  break;
3728 
3729  case 40:
3730 #line 464 "parser.y" /* yacc.c:1646 */
3731  {
3732  (yyval)=(yyvsp[-5]);
3733  set((yyval), ID_exists);
3734  mto((yyval), (yyvsp[-2]));
3735  mto((yyval), (yyvsp[-1]));
3736  PARSER.pop_scope();
3737  }
3738 #line 3739 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3739  break;
3740 
3741  case 41:
3742 #line 472 "parser.y" /* yacc.c:1646 */
3743  {
3744  // The precedence of this operator is too high; it is meant
3745  // to bind only very weakly.
3746  (yyval)=(yyvsp[-3]);
3747  set((yyval), ID_exists);
3748  mto((yyval), (yyvsp[-1]));
3749  mto((yyval), (yyvsp[0]));
3750  PARSER.pop_scope();
3751  }
3752 #line 3753 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3753  break;
3754 
3755  case 42:
3756 #line 485 "parser.y" /* yacc.c:1646 */
3757  { init((yyval)); stack((yyval)).make_nil(); }
3758 #line 3759 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3759  break;
3760 
3761  case 43:
3762 #line 487 "parser.y" /* yacc.c:1646 */
3763  { (yyval)=(yyvsp[-1]); }
3764 #line 3765 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3765  break;
3766 
3767  case 44:
3768 #line 492 "parser.y" /* yacc.c:1646 */
3769  { init((yyval)); stack((yyval)).make_nil(); }
3770 #line 3771 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3771  break;
3772 
3773  case 45:
3774 #line 494 "parser.y" /* yacc.c:1646 */
3775  { (yyval)=(yyvsp[-1]); }
3776 #line 3777 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3777  break;
3778 
3779  case 46:
3780 #line 499 "parser.y" /* yacc.c:1646 */
3781  { init((yyval)); stack((yyval)).make_nil(); }
3782 #line 3783 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3783  break;
3784 
3785  case 47:
3786 #line 501 "parser.y" /* yacc.c:1646 */
3787  { (yyval)=(yyvsp[-1]); }
3788 #line 3789 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3789  break;
3790 
3791  case 48:
3792 #line 505 "parser.y" /* yacc.c:1646 */
3793  {
3794  (yyval)=(yyvsp[-2]);
3795  set((yyval), ID_side_effect);
3796  stack((yyval)).set(ID_statement, ID_statement_expression);
3797  mto((yyval), (yyvsp[-1]));
3798  }
3799 #line 3800 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3800  break;
3801 
3802  case 50:
3803 #line 516 "parser.y" /* yacc.c:1646 */
3804  { binary((yyval), (yyvsp[-3]), (yyvsp[-2]), ID_index, (yyvsp[-1])); }
3805 #line 3806 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3806  break;
3807 
3808  case 51:
3809 #line 518 "parser.y" /* yacc.c:1646 */
3810  { (yyval)=(yyvsp[-1]);
3811  set((yyval), ID_side_effect);
3812  stack((yyval)).set(ID_statement, ID_function_call);
3813  stack((yyval)).operands().resize(2);
3814  stack((yyval)).op0().swap(stack((yyvsp[-2])));
3815  stack((yyval)).op1().clear();
3816  stack((yyval)).op1().id(ID_arguments);
3817  }
3818 #line 3819 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3819  break;
3820 
3821  case 52:
3822 #line 527 "parser.y" /* yacc.c:1646 */
3823  { (yyval)=(yyvsp[-2]);
3824  set((yyval), ID_side_effect);
3825  stack((yyval)).set(ID_statement, ID_function_call);
3826  stack((yyval)).operands().resize(2);
3827  stack((yyval)).op0().swap(stack((yyvsp[-3])));
3828  stack((yyval)).op1().swap(stack((yyvsp[-1])));
3829  stack((yyval)).op1().id(ID_arguments);
3830  }
3831 #line 3832 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3832  break;
3833 
3834  case 53:
3835 #line 536 "parser.y" /* yacc.c:1646 */
3836  { (yyval)=(yyvsp[-1]);
3837  set((yyval), ID_member);
3838  mto((yyval), (yyvsp[-2]));
3839  stack((yyval)).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3840  }
3841 #line 3842 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3842  break;
3843 
3844  case 54:
3845 #line 542 "parser.y" /* yacc.c:1646 */
3846  { (yyval)=(yyvsp[-1]);
3847  set((yyval), ID_ptrmember);
3848  mto((yyval), (yyvsp[-2]));
3849  stack((yyval)).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3850  }
3851 #line 3852 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3852  break;
3853 
3854  case 55:
3855 #line 548 "parser.y" /* yacc.c:1646 */
3856  { (yyval)=(yyvsp[0]);
3857  set((yyval), ID_side_effect);
3858  stack((yyval)).set(ID_statement, ID_postincrement);
3859  mto((yyval), (yyvsp[-1]));
3860  }
3861 #line 3862 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3862  break;
3863 
3864  case 56:
3865 #line 554 "parser.y" /* yacc.c:1646 */
3866  { (yyval)=(yyvsp[0]);
3867  set((yyval), ID_side_effect);
3868  stack((yyval)).set(ID_statement, ID_postdecrement);
3869  mto((yyval), (yyvsp[-1]));
3870  }
3871 #line 3872 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3872  break;
3873 
3874  case 57:
3875 #line 561 "parser.y" /* yacc.c:1646 */
3876  {
3877  exprt tmp(ID_initializer_list);
3878  tmp.add_source_location()=stack((yyvsp[-2])).source_location();
3879  tmp.operands().swap(stack((yyvsp[-1])).operands());
3880  (yyval)=(yyvsp[-5]);
3881  set((yyval), ID_typecast);
3882  stack((yyval)).move_to_operands(tmp);
3883  stack((yyval)).type().swap(stack((yyvsp[-4])));
3884  }
3885 #line 3886 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3886  break;
3887 
3888  case 58:
3889 #line 571 "parser.y" /* yacc.c:1646 */
3890  {
3891  // same as above
3892  exprt tmp(ID_initializer_list);
3893  tmp.add_source_location()=stack((yyvsp[-3])).source_location();
3894  tmp.operands().swap(stack((yyvsp[-2])).operands());
3895  (yyval)=(yyvsp[-6]);
3896  set((yyval), ID_typecast);
3897  stack((yyval)).move_to_operands(tmp);
3898  stack((yyval)).type().swap(stack((yyvsp[-5])));
3899  }
3900 #line 3901 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3901  break;
3902 
3903  case 61:
3904 #line 590 "parser.y" /* yacc.c:1646 */
3905  {
3906  init((yyval), ID_expression_list);
3907  mto((yyval), (yyvsp[0]));
3908  }
3909 #line 3910 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3910  break;
3911 
3912  case 62:
3913 #line 595 "parser.y" /* yacc.c:1646 */
3914  {
3915  (yyval)=(yyvsp[-2]);
3916  mto((yyval), (yyvsp[0]));
3917  }
3918 #line 3919 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3919  break;
3920 
3921  case 64:
3922 #line 604 "parser.y" /* yacc.c:1646 */
3923  { (yyval)=(yyvsp[-1]);
3924  set((yyval), ID_side_effect);
3925  stack((yyval)).set(ID_statement, ID_preincrement);
3926  mto((yyval), (yyvsp[0]));
3927  }
3928 #line 3929 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3929  break;
3930 
3931  case 65:
3932 #line 610 "parser.y" /* yacc.c:1646 */
3933  { (yyval)=(yyvsp[-1]);
3934  set((yyval), ID_side_effect);
3935  stack((yyval)).set(ID_statement, ID_predecrement);
3936  mto((yyval), (yyvsp[0]));
3937  }
3938 #line 3939 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3939  break;
3940 
3941  case 66:
3942 #line 616 "parser.y" /* yacc.c:1646 */
3943  { (yyval)=(yyvsp[-1]);
3944  set((yyval), ID_address_of);
3945  mto((yyval), (yyvsp[0]));
3946  }
3947 #line 3948 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3948  break;
3949 
3950  case 67:
3951 #line 621 "parser.y" /* yacc.c:1646 */
3952  { // this takes the address of a label (a gcc extension)
3953  (yyval)=(yyvsp[-1]);
3954  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[0])).get(ID_C_base_name));
3955  set((yyval), ID_address_of);
3956  stack((yyval)).operands().resize(1);
3957  stack((yyval)).op0()=stack((yyvsp[0]));
3958  stack((yyval)).op0().id(ID_label);
3959  stack((yyval)).op0().set(ID_identifier, identifier);
3960  }
3961 #line 3962 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3962  break;
3963 
3964  case 68:
3965 #line 631 "parser.y" /* yacc.c:1646 */
3966  { (yyval)=(yyvsp[-1]);
3967  set((yyval), ID_dereference);
3968  mto((yyval), (yyvsp[0]));
3969  }
3970 #line 3971 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3971  break;
3972 
3973  case 69:
3974 #line 636 "parser.y" /* yacc.c:1646 */
3975  { (yyval)=(yyvsp[-1]);
3976  set((yyval), ID_unary_plus);
3977  mto((yyval), (yyvsp[0]));
3978  }
3979 #line 3980 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3980  break;
3981 
3982  case 70:
3983 #line 641 "parser.y" /* yacc.c:1646 */
3984  { (yyval)=(yyvsp[-1]);
3985  set((yyval), ID_unary_minus);
3986  mto((yyval), (yyvsp[0]));
3987  }
3988 #line 3989 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3989  break;
3990 
3991  case 71:
3992 #line 646 "parser.y" /* yacc.c:1646 */
3993  { (yyval)=(yyvsp[-1]);
3994  set((yyval), ID_bitnot);
3995  mto((yyval), (yyvsp[0]));
3996  }
3997 #line 3998 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
3998  break;
3999 
4000  case 72:
4001 #line 651 "parser.y" /* yacc.c:1646 */
4002  { (yyval)=(yyvsp[-1]);
4003  set((yyval), ID_not);
4004  mto((yyval), (yyvsp[0]));
4005  }
4006 #line 4007 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4007  break;
4008 
4009  case 73:
4010 #line 656 "parser.y" /* yacc.c:1646 */
4011  { (yyval)=(yyvsp[-1]);
4012  set((yyval), ID_sizeof);
4013  mto((yyval), (yyvsp[0]));
4014  }
4015 #line 4016 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4016  break;
4017 
4018  case 74:
4019 #line 661 "parser.y" /* yacc.c:1646 */
4020  { (yyval)=(yyvsp[-3]);
4021  set((yyval), ID_sizeof);
4022  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
4023  }
4024 #line 4025 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4025  break;
4026 
4027  case 75:
4028 #line 666 "parser.y" /* yacc.c:1646 */
4029  { // note no parentheses for expressions, just like sizeof
4030  (yyval)=(yyvsp[-1]);
4031  set((yyval), ID_alignof);
4032  mto((yyval), (yyvsp[0]));
4033  }
4034 #line 4035 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4035  break;
4036 
4037  case 76:
4038 #line 672 "parser.y" /* yacc.c:1646 */
4039  {
4040  (yyval)=(yyvsp[-3]);
4041  stack((yyval)).id(ID_alignof);
4042  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
4043  }
4044 #line 4045 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4045  break;
4046 
4047  case 78:
4048 #line 682 "parser.y" /* yacc.c:1646 */
4049  {
4050  (yyval)=(yyvsp[-3]);
4051  set((yyval), ID_typecast);
4052  mto((yyval), (yyvsp[0]));
4053  stack((yyval)).type().swap(stack((yyvsp[-2])));
4054  }
4055 #line 4056 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4056  break;
4057 
4058  case 79:
4059 #line 689 "parser.y" /* yacc.c:1646 */
4060  { (yyval)=(yyvsp[-1]);
4061  set((yyval), ID_complex_real);
4062  mto((yyval), (yyvsp[0]));
4063  }
4064 #line 4065 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4065  break;
4066 
4067  case 80:
4068 #line 694 "parser.y" /* yacc.c:1646 */
4069  { (yyval)=(yyvsp[-1]);
4070  set((yyval), ID_complex_imag);
4071  mto((yyval), (yyvsp[0]));
4072  }
4073 #line 4074 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4074  break;
4075 
4076  case 82:
4077 #line 703 "parser.y" /* yacc.c:1646 */
4078  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_mult, (yyvsp[0])); }
4079 #line 4080 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4080  break;
4081 
4082  case 83:
4083 #line 705 "parser.y" /* yacc.c:1646 */
4084  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_div, (yyvsp[0])); }
4085 #line 4086 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4086  break;
4087 
4088  case 84:
4089 #line 707 "parser.y" /* yacc.c:1646 */
4090  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_mod, (yyvsp[0])); }
4091 #line 4092 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4092  break;
4093 
4094  case 86:
4095 #line 713 "parser.y" /* yacc.c:1646 */
4096  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_plus, (yyvsp[0])); }
4097 #line 4098 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4098  break;
4099 
4100  case 87:
4101 #line 715 "parser.y" /* yacc.c:1646 */
4102  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_minus, (yyvsp[0])); }
4103 #line 4104 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4104  break;
4105 
4106  case 89:
4107 #line 721 "parser.y" /* yacc.c:1646 */
4108  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_shl, (yyvsp[0])); }
4109 #line 4110 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4110  break;
4111 
4112  case 90:
4113 #line 723 "parser.y" /* yacc.c:1646 */
4114  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_shr, (yyvsp[0])); }
4115 #line 4116 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4116  break;
4117 
4118  case 92:
4119 #line 729 "parser.y" /* yacc.c:1646 */
4120  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_lt, (yyvsp[0])); }
4121 #line 4122 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4122  break;
4123 
4124  case 93:
4125 #line 731 "parser.y" /* yacc.c:1646 */
4126  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_gt, (yyvsp[0])); }
4127 #line 4128 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4128  break;
4129 
4130  case 94:
4131 #line 733 "parser.y" /* yacc.c:1646 */
4132  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_le, (yyvsp[0])); }
4133 #line 4134 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4134  break;
4135 
4136  case 95:
4137 #line 735 "parser.y" /* yacc.c:1646 */
4138  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_ge, (yyvsp[0])); }
4139 #line 4140 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4140  break;
4141 
4142  case 97:
4143 #line 741 "parser.y" /* yacc.c:1646 */
4144  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_equal, (yyvsp[0])); }
4145 #line 4146 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4146  break;
4147 
4148  case 98:
4149 #line 743 "parser.y" /* yacc.c:1646 */
4150  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_notequal, (yyvsp[0])); }
4151 #line 4152 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4152  break;
4153 
4154  case 100:
4155 #line 749 "parser.y" /* yacc.c:1646 */
4156  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitand, (yyvsp[0])); }
4157 #line 4158 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4158  break;
4159 
4160  case 102:
4161 #line 755 "parser.y" /* yacc.c:1646 */
4162  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitxor, (yyvsp[0])); }
4163 #line 4164 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4164  break;
4165 
4166  case 104:
4167 #line 761 "parser.y" /* yacc.c:1646 */
4168  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitor, (yyvsp[0])); }
4169 #line 4170 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4170  break;
4171 
4172  case 106:
4173 #line 767 "parser.y" /* yacc.c:1646 */
4174  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_and, (yyvsp[0])); }
4175 #line 4176 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4176  break;
4177 
4178  case 108:
4179 #line 773 "parser.y" /* yacc.c:1646 */
4180  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_or, (yyvsp[0])); }
4181 #line 4182 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4182  break;
4183 
4184  case 110:
4185 #line 782 "parser.y" /* yacc.c:1646 */
4186  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_implies, (yyvsp[0])); }
4187 #line 4188 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4188  break;
4189 
4190  case 112:
4191 #line 791 "parser.y" /* yacc.c:1646 */
4192  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_equal, (yyvsp[0])); }
4193 #line 4194 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4194  break;
4195 
4196  case 114:
4197 #line 797 "parser.y" /* yacc.c:1646 */
4198  { (yyval)=(yyvsp[-3]);
4199  stack((yyval)).id(ID_if);
4200  mto((yyval), (yyvsp[-4]));
4201  mto((yyval), (yyvsp[-2]));
4202  mto((yyval), (yyvsp[0]));
4203  }
4204 #line 4205 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4205  break;
4206 
4207  case 115:
4208 #line 804 "parser.y" /* yacc.c:1646 */
4209  { (yyval)=(yyvsp[-2]);
4210  stack((yyval)).id(ID_side_effect);
4211  stack((yyval)).set(ID_statement, ID_gcc_conditional_expression);
4212  mto((yyval), (yyvsp[-3]));
4213  mto((yyval), (yyvsp[0]));
4214  }
4215 #line 4216 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4216  break;
4217 
4218  case 117:
4219 #line 815 "parser.y" /* yacc.c:1646 */
4220  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign); }
4221 #line 4222 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4222  break;
4223 
4224  case 118:
4225 #line 817 "parser.y" /* yacc.c:1646 */
4226  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_mult); }
4227 #line 4228 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4228  break;
4229 
4230  case 119:
4231 #line 819 "parser.y" /* yacc.c:1646 */
4232  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_div); }
4233 #line 4234 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4234  break;
4235 
4236  case 120:
4237 #line 821 "parser.y" /* yacc.c:1646 */
4238  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_mod); }
4239 #line 4240 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4240  break;
4241 
4242  case 121:
4243 #line 823 "parser.y" /* yacc.c:1646 */
4244  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_plus); }
4245 #line 4246 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4246  break;
4247 
4248  case 122:
4249 #line 825 "parser.y" /* yacc.c:1646 */
4250  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_minus); }
4251 #line 4252 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4252  break;
4253 
4254  case 123:
4255 #line 827 "parser.y" /* yacc.c:1646 */
4256  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_shl); }
4257 #line 4258 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4258  break;
4259 
4260  case 124:
4261 #line 829 "parser.y" /* yacc.c:1646 */
4262  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_shr); }
4263 #line 4264 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4264  break;
4265 
4266  case 125:
4267 #line 831 "parser.y" /* yacc.c:1646 */
4268  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitand); }
4269 #line 4270 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4270  break;
4271 
4272  case 126:
4273 #line 833 "parser.y" /* yacc.c:1646 */
4274  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitxor); }
4275 #line 4276 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4276  break;
4277 
4278  case 127:
4279 #line 835 "parser.y" /* yacc.c:1646 */
4280  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitor); }
4281 #line 4282 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4282  break;
4283 
4284  case 129:
4285 #line 841 "parser.y" /* yacc.c:1646 */
4286  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_comma, (yyvsp[0])); }
4287 #line 4288 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4288  break;
4289 
4290  case 131:
4291 #line 850 "parser.y" /* yacc.c:1646 */
4292  { init((yyval)); stack((yyval)).make_nil(); }
4293 #line 4294 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4294  break;
4295 
4296  case 133:
4297 #line 858 "parser.y" /* yacc.c:1646 */
4298  {
4299  // type only, no declarator!
4300  init((yyval), ID_declaration);
4301  stack((yyval)).type().swap(stack((yyvsp[-1])));
4302  }
4303 #line 4304 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4304  break;
4305 
4306  case 134:
4307 #line 864 "parser.y" /* yacc.c:1646 */
4308  {
4309  // type only, no identifier!
4310  init((yyval), ID_declaration);
4311  stack((yyval)).type().swap(stack((yyvsp[-1])));
4312  }
4313 #line 4314 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4314  break;
4315 
4316  case 138:
4317 #line 876 "parser.y" /* yacc.c:1646 */
4318  {
4319  (yyval)=(yyvsp[-5]);
4320  set((yyval), ID_declaration);
4322  mto((yyval), (yyvsp[-3]));
4323  mto((yyval), (yyvsp[-1]));
4324  }
4325 #line 4326 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4326  break;
4327 
4328  case 139:
4329 #line 887 "parser.y" /* yacc.c:1646 */
4330  {
4331  init((yyval), ID_declaration);
4332  stack((yyval)).type().swap(stack((yyvsp[-1])));
4333  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
4334  }
4335 #line 4336 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4336  break;
4337 
4338  case 140:
4339 #line 893 "parser.y" /* yacc.c:1646 */
4340  {
4341  // patch on the initializer
4342  (yyval)=(yyvsp[-1]);
4343  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4344  }
4345 #line 4346 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4346  break;
4347 
4348  case 141:
4349 #line 899 "parser.y" /* yacc.c:1646 */
4350  {
4351  init((yyval), ID_declaration);
4352  stack((yyval)).type().swap(stack((yyvsp[-1])));
4353  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
4354  }
4355 #line 4356 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4356  break;
4357 
4358  case 142:
4359 #line 905 "parser.y" /* yacc.c:1646 */
4360  {
4361  // patch on the initializer
4362  (yyval)=(yyvsp[-1]);
4363  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4364  }
4365 #line 4366 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4366  break;
4367 
4368  case 143:
4369 #line 911 "parser.y" /* yacc.c:1646 */
4370  {
4371  // just add the declarator
4372  PARSER.add_declarator(stack((yyvsp[-2])), stack((yyvsp[0])));
4373  // Needs to be done before initializer, as we want to see that identifier
4374  // already there!
4375  }
4376 #line 4377 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4377  break;
4378 
4379  case 144:
4380 #line 918 "parser.y" /* yacc.c:1646 */
4381  {
4382  // patch on the initializer
4383  (yyval)=(yyvsp[-4]);
4384  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4385  }
4386 #line 4387 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4387  break;
4388 
4389  case 145:
4390 #line 927 "parser.y" /* yacc.c:1646 */
4391  {
4392  (yyval)=(yyvsp[-4]);
4393  stack((yyval)).id(ID_asm);
4394  stack((yyval)).set(ID_flavor, ID_gcc);
4395  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
4396  }
4397 #line 4398 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4398  break;
4399 
4400  case 147:
4401 #line 938 "parser.y" /* yacc.c:1646 */
4402  {
4403  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4404  }
4405 #line 4406 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4406  break;
4407 
4408  case 149:
4409 #line 946 "parser.y" /* yacc.c:1646 */
4410  {
4411  init((yyval));
4412  }
4413 #line 4414 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4414  break;
4415 
4416  case 151:
4417 #line 955 "parser.y" /* yacc.c:1646 */
4418  {
4419  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute
4420 
4421  // the symbol has to be visible during initialization
4422  init((yyval), ID_declaration);
4423  stack((yyval)).type().swap(stack((yyvsp[-2])));
4424  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
4425  }
4426 #line 4427 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4427  break;
4428 
4429  case 152:
4430 #line 964 "parser.y" /* yacc.c:1646 */
4431  {
4432  // add the initializer
4433  (yyval)=(yyvsp[-1]);
4434  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4435  }
4436 #line 4437 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4437  break;
4438 
4439  case 153:
4440 #line 971 "parser.y" /* yacc.c:1646 */
4441  {
4442  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1]));
4443 
4444  // the symbol has to be visible during initialization
4445  init((yyval), ID_declaration);
4446  stack((yyval)).type().swap(stack((yyvsp[-2])));
4447  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
4448  }
4449 #line 4450 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4450  break;
4451 
4452  case 154:
4453 #line 980 "parser.y" /* yacc.c:1646 */
4454  {
4455  // add the initializer
4456  (yyval)=(yyvsp[-1]);
4457  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4458  }
4459 #line 4460 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4460  break;
4461 
4462  case 155:
4463 #line 987 "parser.y" /* yacc.c:1646 */
4464  {
4465  // handled as typeof(initializer)
4466  stack((yyvsp[-4])).id(ID_typeof);
4467  stack((yyvsp[-4])).copy_to_operands(stack((yyvsp[0])));
4468 
4469  (yyvsp[-3])=merge((yyvsp[-2]), (yyvsp[-3]));
4470 
4471  // the symbol has to be visible during initialization
4472  init((yyval), ID_declaration);
4473  stack((yyval)).type().swap(stack((yyvsp[-4])));
4474  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-3])));
4475  // add the initializer
4476  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4477  }
4478 #line 4479 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4479  break;
4480 
4481  case 156:
4482 #line 1003 "parser.y" /* yacc.c:1646 */
4483  {
4484  // type attribute goes into declarator
4485  (yyvsp[0])=merge((yyvsp[0]), (yyvsp[-2]));
4486  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1]));
4487  PARSER.add_declarator(stack((yyvsp[-4])), stack((yyvsp[-1])));
4488  }
4489 #line 4490 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4490  break;
4491 
4492  case 157:
4493 #line 1010 "parser.y" /* yacc.c:1646 */
4494  {
4495  // add in the initializer
4496  (yyval)=(yyvsp[-6]);
4497  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4498  }
4499 #line 4500 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4500  break;
4501 
4502  case 169:
4503 #line 1036 "parser.y" /* yacc.c:1646 */
4504  {
4505  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4506  }
4507 #line 4508 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4508  break;
4509 
4510  case 171:
4511 #line 1041 "parser.y" /* yacc.c:1646 */
4512  {
4513  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4514  }
4515 #line 4516 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4516  break;
4517 
4518  case 172:
4519 #line 1045 "parser.y" /* yacc.c:1646 */
4520  {
4521  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4522  }
4523 #line 4524 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4524  break;
4525 
4526  case 174:
4527 #line 1053 "parser.y" /* yacc.c:1646 */
4528  {
4529  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4530  }
4531 #line 4532 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4532  break;
4533 
4534  case 175:
4535 #line 1060 "parser.y" /* yacc.c:1646 */
4536  {
4537  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4538  }
4539 #line 4540 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4540  break;
4541 
4542  case 177:
4543 #line 1068 "parser.y" /* yacc.c:1646 */
4544  {
4545  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4546  }
4547 #line 4548 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4548  break;
4549 
4550  case 180:
4551 #line 1079 "parser.y" /* yacc.c:1646 */
4552  { (yyval)=(yyvsp[0]); set((yyval), ID_atomic); }
4553 #line 4554 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4554  break;
4555 
4556  case 181:
4557 #line 1080 "parser.y" /* yacc.c:1646 */
4558  { (yyval)=(yyvsp[0]); set((yyval), ID_const); }
4559 #line 4560 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4560  break;
4561 
4562  case 182:
4563 #line 1081 "parser.y" /* yacc.c:1646 */
4564  { (yyval)=(yyvsp[0]); set((yyval), ID_restrict); }
4565 #line 4566 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4566  break;
4567 
4568  case 183:
4569 #line 1082 "parser.y" /* yacc.c:1646 */
4570  { (yyval)=(yyvsp[0]); set((yyval), ID_volatile); }
4571 #line 4572 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4572  break;
4573 
4574  case 184:
4575 #line 1083 "parser.y" /* yacc.c:1646 */
4576  { (yyval)=(yyvsp[0]); set((yyval), ID_cprover_atomic); }
4577 #line 4578 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4578  break;
4579 
4580  case 185:
4581 #line 1084 "parser.y" /* yacc.c:1646 */
4582  { (yyval)=(yyvsp[0]); set((yyval), ID_ptr32); }
4583 #line 4584 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4584  break;
4585 
4586  case 186:
4587 #line 1085 "parser.y" /* yacc.c:1646 */
4588  { (yyval)=(yyvsp[0]); set((yyval), ID_ptr64); }
4589 #line 4590 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4590  break;
4591 
4592  case 187:
4593 #line 1086 "parser.y" /* yacc.c:1646 */
4594  { (yyval)=(yyvsp[-3]); set((yyval), ID_msc_based); mto((yyval), (yyvsp[-1])); }
4595 #line 4596 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4596  break;
4597 
4598  case 189:
4599 #line 1092 "parser.y" /* yacc.c:1646 */
4600  { (yyval) = (yyvsp[-3]);
4601  stack((yyval)).id(ID_aligned);
4602  stack((yyval)).set(ID_size, stack((yyvsp[-1])));
4603  }
4604 #line 4605 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4605  break;
4606 
4607  case 190:
4608 #line 1097 "parser.y" /* yacc.c:1646 */
4609  { (yyval) = (yyvsp[-3]);
4610  stack((yyval)).id(ID_aligned);
4611  stack((yyvsp[-1])).set(ID_type_arg, stack((yyvsp[-1])));
4612  }
4613 #line 4614 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4614  break;
4615 
4616  case 197:
4617 #line 1117 "parser.y" /* yacc.c:1646 */
4618  {
4619  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4620  }
4621 #line 4622 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4622  break;
4623 
4624  case 198:
4625 #line 1124 "parser.y" /* yacc.c:1646 */
4626  {
4627  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4628  }
4629 #line 4630 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4630  break;
4631 
4632  case 199:
4633 #line 1128 "parser.y" /* yacc.c:1646 */
4634  {
4635  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4636  }
4637 #line 4638 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4638  break;
4639 
4640  case 200:
4641 #line 1132 "parser.y" /* yacc.c:1646 */
4642  {
4643  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4644  }
4645 #line 4646 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4646  break;
4647 
4648  case 201:
4649 #line 1136 "parser.y" /* yacc.c:1646 */
4650  {
4651  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4652  }
4653 #line 4654 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4654  break;
4655 
4656  case 202:
4657 #line 1143 "parser.y" /* yacc.c:1646 */
4658  {
4659  (yyval)=merge((yyvsp[-1]), (yyvsp[0])); // type attribute
4660  }
4661 #line 4662 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4662  break;
4663 
4664  case 203:
4665 #line 1147 "parser.y" /* yacc.c:1646 */
4666  {
4667  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4668  }
4669 #line 4670 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4670  break;
4671 
4672  case 204:
4673 #line 1151 "parser.y" /* yacc.c:1646 */
4674  {
4675  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4676  }
4677 #line 4678 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4678  break;
4679 
4680  case 205:
4681 #line 1155 "parser.y" /* yacc.c:1646 */
4682  {
4683  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4684  }
4685 #line 4686 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4686  break;
4687 
4688  case 206:
4689 #line 1163 "parser.y" /* yacc.c:1646 */
4690  {
4691  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4692  }
4693 #line 4694 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4694  break;
4695 
4696  case 207:
4697 #line 1167 "parser.y" /* yacc.c:1646 */
4698  {
4699  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4700  }
4701 #line 4702 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4702  break;
4703 
4704  case 208:
4705 #line 1171 "parser.y" /* yacc.c:1646 */
4706  {
4707  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4708  }
4709 #line 4710 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4710  break;
4711 
4712  case 210:
4713 #line 1180 "parser.y" /* yacc.c:1646 */
4714  {
4715  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4716  }
4717 #line 4718 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4718  break;
4719 
4720  case 211:
4721 #line 1184 "parser.y" /* yacc.c:1646 */
4722  {
4723  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4724  }
4725 #line 4726 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4726  break;
4727 
4728  case 212:
4729 #line 1191 "parser.y" /* yacc.c:1646 */
4730  {
4731  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4732  }
4733 #line 4734 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4734  break;
4735 
4736  case 213:
4737 #line 1195 "parser.y" /* yacc.c:1646 */
4738  {
4739  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4740  }
4741 #line 4742 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4742  break;
4743 
4744  case 214:
4745 #line 1199 "parser.y" /* yacc.c:1646 */
4746  {
4747  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4748  }
4749 #line 4750 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4750  break;
4751 
4752  case 215:
4753 #line 1206 "parser.y" /* yacc.c:1646 */
4754  {
4755  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4756  }
4757 #line 4758 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4758  break;
4759 
4760  case 216:
4761 #line 1210 "parser.y" /* yacc.c:1646 */
4762  {
4763  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4764  }
4765 #line 4766 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4766  break;
4767 
4768  case 217:
4769 #line 1214 "parser.y" /* yacc.c:1646 */
4770  {
4771  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4772  }
4773 #line 4774 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4774  break;
4775 
4776  case 218:
4777 #line 1221 "parser.y" /* yacc.c:1646 */
4778  {
4779  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4780  }
4781 #line 4782 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4782  break;
4783 
4784  case 219:
4785 #line 1225 "parser.y" /* yacc.c:1646 */
4786  {
4787  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4788  }
4789 #line 4790 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4790  break;
4791 
4792  case 220:
4793 #line 1229 "parser.y" /* yacc.c:1646 */
4794  {
4795  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4796  }
4797 #line 4798 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4798  break;
4799 
4800  case 221:
4801 #line 1236 "parser.y" /* yacc.c:1646 */
4802  {
4803  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4804  }
4805 #line 4806 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4806  break;
4807 
4808  case 222:
4809 #line 1240 "parser.y" /* yacc.c:1646 */
4810  {
4811  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4812  }
4813 #line 4814 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4814  break;
4815 
4816  case 223:
4817 #line 1244 "parser.y" /* yacc.c:1646 */
4818  {
4819  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4820  }
4821 #line 4822 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4822  break;
4823 
4824  case 224:
4825 #line 1251 "parser.y" /* yacc.c:1646 */
4826  { (yyval) = (yyvsp[-3]);
4827  stack((yyval)).id(ID_typeof);
4828  mto((yyval), (yyvsp[-1]));
4829  }
4830 #line 4831 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4831  break;
4832 
4833  case 225:
4834 #line 1256 "parser.y" /* yacc.c:1646 */
4835  { (yyval) = (yyvsp[-3]);
4836  stack((yyval)).id(ID_typeof);
4837  stack((yyval)).set(ID_type_arg, stack((yyvsp[-1])));
4838  }
4839 #line 4840 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4840  break;
4841 
4842  case 227:
4843 #line 1265 "parser.y" /* yacc.c:1646 */
4844  {
4845  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4846  }
4847 #line 4848 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4848  break;
4849 
4850  case 228:
4851 #line 1269 "parser.y" /* yacc.c:1646 */
4852  {
4853  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4854  }
4855 #line 4856 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4856  break;
4857 
4858  case 229:
4859 #line 1273 "parser.y" /* yacc.c:1646 */
4860  {
4861  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4862  }
4863 #line 4864 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4864  break;
4865 
4866  case 230:
4867 #line 1280 "parser.y" /* yacc.c:1646 */
4868  {
4869  (yyval)=(yyvsp[-3]);
4870  stack((yyval)).id(ID_atomic_type_specifier);
4871  stack_type((yyval)).subtype()=stack_type((yyvsp[-1]));
4872  }
4873 #line 4874 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4874  break;
4875 
4876  case 232:
4877 #line 1290 "parser.y" /* yacc.c:1646 */
4878  {
4879  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4880  }
4881 #line 4882 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4882  break;
4883 
4884  case 233:
4885 #line 1294 "parser.y" /* yacc.c:1646 */
4886  {
4887  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4888  }
4889 #line 4890 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4890  break;
4891 
4892  case 234:
4893 #line 1298 "parser.y" /* yacc.c:1646 */
4894  {
4895  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4896  }
4897 #line 4898 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4898  break;
4899 
4900  case 235:
4901 #line 1305 "parser.y" /* yacc.c:1646 */
4902  {
4903  stack((yyval)).id(stack((yyval)).get(ID_identifier));
4904  }
4905 #line 4906 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4906  break;
4907 
4908  case 236:
4909 #line 1309 "parser.y" /* yacc.c:1646 */
4910  {
4911  stack((yyval)).id(stack((yyval)).get(ID_identifier));
4912  }
4913 #line 4914 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4914  break;
4915 
4916  case 237:
4917 #line 1313 "parser.y" /* yacc.c:1646 */
4918  {
4919  stack((yyval)).id(ID_restrict);
4920  }
4921 #line 4922 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4922  break;
4923 
4924  case 239:
4925 #line 1321 "parser.y" /* yacc.c:1646 */
4926  {
4927  (yyval)=(yyvsp[-3]); mto((yyval), (yyvsp[-1]));
4928  }
4929 #line 4930 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4930  break;
4931 
4932  case 240:
4933 #line 1325 "parser.y" /* yacc.c:1646 */
4934  {
4935  (yyval)=(yyvsp[-3]); mto((yyval), (yyvsp[-1]));
4936  }
4937 #line 4938 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4938  break;
4939 
4940  case 241:
4941 #line 1329 "parser.y" /* yacc.c:1646 */
4942  {
4943  (yyval)=(yyvsp[-5]); mto((yyval), (yyvsp[-3])); mto((yyval), (yyvsp[-1]));
4944  }
4945 #line 4946 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4946  break;
4947 
4948  case 242:
4949 #line 1333 "parser.y" /* yacc.c:1646 */
4950  {
4951  (yyval)=(yyvsp[-9]); mto((yyval), (yyvsp[-7])); mto((yyval), (yyvsp[-5])); mto((yyval), (yyvsp[-3])); mto((yyval), (yyvsp[-1]));
4952  }
4953 #line 4954 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4954  break;
4955 
4956  case 243:
4957 #line 1336 "parser.y" /* yacc.c:1646 */
4958  { init((yyval), ID_nil); }
4959 #line 4960 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4960  break;
4961 
4962  case 244:
4963 #line 1341 "parser.y" /* yacc.c:1646 */
4964  {
4965  init((yyval)); mto((yyval), (yyvsp[0]));
4966  }
4967 #line 4968 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4968  break;
4969 
4970  case 245:
4971 #line 1345 "parser.y" /* yacc.c:1646 */
4972  {
4973  (yyval)=(yyvsp[-1]); mto((yyval), (yyvsp[0]));
4974  }
4975 #line 4976 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4976  break;
4977 
4978  case 246:
4979 #line 1352 "parser.y" /* yacc.c:1646 */
4980  {
4981  (yyval)=(yyvsp[-3]); set((yyval), ID_msc_declspec);
4982  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
4983  }
4984 #line 4985 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4985  break;
4986 
4987  case 247:
4988 #line 1357 "parser.y" /* yacc.c:1646 */
4989  {
4990  (yyval)=(yyvsp[-2]); set((yyval), ID_msc_declspec);
4991  }
4992 #line 4993 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
4993  break;
4994 
4995  case 248:
4996 #line 1364 "parser.y" /* yacc.c:1646 */
4997  {
4998  init((yyval), ID_nil);
4999  }
5000 #line 5001 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5001  break;
5002 
5003  case 250:
5004 #line 1371 "parser.y" /* yacc.c:1646 */
5005  { (yyval)=(yyvsp[0]); set((yyval), ID_typedef); }
5006 #line 5007 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5007  break;
5008 
5009  case 251:
5010 #line 1372 "parser.y" /* yacc.c:1646 */
5011  { (yyval)=(yyvsp[0]); set((yyval), ID_extern); }
5012 #line 5013 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5013  break;
5014 
5015  case 252:
5016 #line 1373 "parser.y" /* yacc.c:1646 */
5017  { (yyval)=(yyvsp[0]); set((yyval), ID_static); }
5018 #line 5019 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5019  break;
5020 
5021  case 253:
5022 #line 1374 "parser.y" /* yacc.c:1646 */
5023  { (yyval)=(yyvsp[0]); set((yyval), ID_auto); }
5024 #line 5025 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5025  break;
5026 
5027  case 254:
5028 #line 1375 "parser.y" /* yacc.c:1646 */
5029  { (yyval)=(yyvsp[0]); set((yyval), ID_register); }
5030 #line 5031 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5031  break;
5032 
5033  case 255:
5034 #line 1376 "parser.y" /* yacc.c:1646 */
5035  { (yyval)=(yyvsp[0]); set((yyval), ID_inline); }
5036 #line 5037 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5037  break;
5038 
5039  case 256:
5040 #line 1377 "parser.y" /* yacc.c:1646 */
5041  { (yyval)=(yyvsp[0]); set((yyval), ID_thread_local); }
5042 #line 5043 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5043  break;
5044 
5045  case 257:
5046 #line 1378 "parser.y" /* yacc.c:1646 */
5047  { (yyval)=(yyvsp[0]); set((yyval), ID_asm); }
5048 #line 5049 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5049  break;
5050 
5051  case 258:
5052 #line 1379 "parser.y" /* yacc.c:1646 */
5053  { (yyval)=(yyvsp[0]); }
5054 #line 5055 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5055  break;
5056 
5057  case 259:
5058 #line 1383 "parser.y" /* yacc.c:1646 */
5059  { (yyval)=(yyvsp[0]); set((yyval), ID_int); }
5060 #line 5061 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5061  break;
5062 
5063  case 260:
5064 #line 1384 "parser.y" /* yacc.c:1646 */
5065  { (yyval)=(yyvsp[0]); set((yyval), ID_int8); }
5066 #line 5067 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5067  break;
5068 
5069  case 261:
5070 #line 1385 "parser.y" /* yacc.c:1646 */
5071  { (yyval)=(yyvsp[0]); set((yyval), ID_int16); }
5072 #line 5073 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5073  break;
5074 
5075  case 262:
5076 #line 1386 "parser.y" /* yacc.c:1646 */
5077  { (yyval)=(yyvsp[0]); set((yyval), ID_int32); }
5078 #line 5079 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5079  break;
5080 
5081  case 263:
5082 #line 1387 "parser.y" /* yacc.c:1646 */
5083  { (yyval)=(yyvsp[0]); set((yyval), ID_int64); }
5084 #line 5085 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5085  break;
5086 
5087  case 264:
5088 #line 1388 "parser.y" /* yacc.c:1646 */
5089  { (yyval)=(yyvsp[0]); set((yyval), ID_char); }
5090 #line 5091 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5091  break;
5092 
5093  case 265:
5094 #line 1389 "parser.y" /* yacc.c:1646 */
5095  { (yyval)=(yyvsp[0]); set((yyval), ID_short); }
5096 #line 5097 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5097  break;
5098 
5099  case 266:
5100 #line 1390 "parser.y" /* yacc.c:1646 */
5101  { (yyval)=(yyvsp[0]); set((yyval), ID_long); }
5102 #line 5103 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5103  break;
5104 
5105  case 267:
5106 #line 1391 "parser.y" /* yacc.c:1646 */
5107  { (yyval)=(yyvsp[0]); set((yyval), ID_float); }
5108 #line 5109 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5109  break;
5110 
5111  case 268:
5112 #line 1392 "parser.y" /* yacc.c:1646 */
5113  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float80); }
5114 #line 5115 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5115  break;
5116 
5117  case 269:
5118 #line 1393 "parser.y" /* yacc.c:1646 */
5119  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float128); }
5120 #line 5121 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5121  break;
5122 
5123  case 270:
5124 #line 1394 "parser.y" /* yacc.c:1646 */
5125  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float128); }
5126 #line 5127 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5127  break;
5128 
5129  case 271:
5130 #line 1395 "parser.y" /* yacc.c:1646 */
5131  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_int128); }
5132 #line 5133 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5133  break;
5134 
5135  case 272:
5136 #line 1396 "parser.y" /* yacc.c:1646 */
5137  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal32); }
5138 #line 5139 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5139  break;
5140 
5141  case 273:
5142 #line 1397 "parser.y" /* yacc.c:1646 */
5143  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal64); }
5144 #line 5145 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5145  break;
5146 
5147  case 274:
5148 #line 1398 "parser.y" /* yacc.c:1646 */
5149  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal128); }
5150 #line 5151 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5151  break;
5152 
5153  case 275:
5154 #line 1399 "parser.y" /* yacc.c:1646 */
5155  { (yyval)=(yyvsp[0]); set((yyval), ID_double); }
5156 #line 5157 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5157  break;
5158 
5159  case 276:
5160 #line 1400 "parser.y" /* yacc.c:1646 */
5161  { (yyval)=(yyvsp[0]); set((yyval), ID_signed); }
5162 #line 5163 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5163  break;
5164 
5165  case 277:
5166 #line 1401 "parser.y" /* yacc.c:1646 */
5167  { (yyval)=(yyvsp[0]); set((yyval), ID_unsigned); }
5168 #line 5169 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5169  break;
5170 
5171  case 278:
5172 #line 1402 "parser.y" /* yacc.c:1646 */
5173  { (yyval)=(yyvsp[0]); set((yyval), ID_void); }
5174 #line 5175 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5175  break;
5176 
5177  case 279:
5178 #line 1403 "parser.y" /* yacc.c:1646 */
5179  { (yyval)=(yyvsp[0]); set((yyval), ID_c_bool); }
5180 #line 5181 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5181  break;
5182 
5183  case 280:
5184 #line 1404 "parser.y" /* yacc.c:1646 */
5185  { (yyval)=(yyvsp[0]); set((yyval), ID_complex); }
5186 #line 5187 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5187  break;
5188 
5189  case 281:
5190 #line 1406 "parser.y" /* yacc.c:1646 */
5191  {
5192  (yyval)=(yyvsp[-3]);
5193  set((yyval), ID_custom_bv);
5194  stack((yyval)).add(ID_size).swap(stack((yyvsp[-1])));
5195  }
5196 #line 5197 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5197  break;
5198 
5199  case 282:
5200 #line 1412 "parser.y" /* yacc.c:1646 */
5201  {
5202  (yyval)=(yyvsp[-6]);
5203  set((yyval), ID_custom_floatbv);
5204  stack((yyval)).add(ID_size).swap(stack((yyvsp[-4])));
5205  stack((yyval)).add(ID_f).swap(stack((yyvsp[-1])));
5206  }
5207 #line 5208 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5208  break;
5209 
5210  case 283:
5211 #line 1419 "parser.y" /* yacc.c:1646 */
5212  {
5213  (yyval)=(yyvsp[-6]);
5214  set((yyval), ID_custom_fixedbv);
5215  stack((yyval)).add(ID_size).swap(stack((yyvsp[-4])));
5216  stack((yyval)).add(ID_f).swap(stack((yyvsp[-1])));
5217  }
5218 #line 5219 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5219  break;
5220 
5221  case 284:
5222 #line 1425 "parser.y" /* yacc.c:1646 */
5223  { (yyval)=(yyvsp[0]); set((yyval), ID_proper_bool); }
5224 #line 5225 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5225  break;
5226 
5227  case 288:
5228 #line 1436 "parser.y" /* yacc.c:1646 */
5229  { (yyval)=(yyvsp[-3]); stack_type((yyval)).subtype().swap(stack((yyvsp[-2]))); }
5230 #line 5231 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5231  break;
5232 
5233  case 289:
5234 #line 1440 "parser.y" /* yacc.c:1646 */
5235  {
5236  init((yyval));
5237  if(!PARSER.pragma_pack.empty() &&
5238  PARSER.pragma_pack.back().is_one())
5239  set((yyval), ID_packed);
5240  }
5241 #line 5242 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5242  break;
5243 
5244  case 290:
5245 #line 1452 "parser.y" /* yacc.c:1646 */
5246  {
5247  // an anon struct/union with body
5248  }
5249 #line 5250 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5250  break;
5251 
5252  case 291:
5253 #line 1458 "parser.y" /* yacc.c:1646 */
5254  {
5255  // save the members
5256  stack((yyvsp[-8])).add(ID_components).get_sub().swap(
5257  (irept::subt &)stack((yyvsp[-3])).operands());
5258 
5259  // throw in the gcc attributes
5260  (yyval)=merge((yyvsp[-8]), merge((yyvsp[-7]), merge((yyvsp[-1]), (yyvsp[0]))));
5261  }
5262 #line 5263 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5263  break;
5264 
5265  case 292:
5266 #line 1470 "parser.y" /* yacc.c:1646 */
5267  {
5268  // A struct/union with tag and body.
5269  PARSER.add_tag_with_body(stack((yyvsp[0])));
5270  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[0])));
5271  }
5272 #line 5273 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5273  break;
5274 
5275  case 293:
5276 #line 1478 "parser.y" /* yacc.c:1646 */
5277  {
5278  // save the members
5279  stack((yyvsp[-9])).add(ID_components).get_sub().swap(
5280  (irept::subt &)stack((yyvsp[-3])).operands());
5281 
5282  // throw in the gcc attributes
5283  (yyval)=merge((yyvsp[-9]), merge((yyvsp[-8]), merge((yyvsp[-1]), (yyvsp[0]))));
5284  }
5285 #line 5286 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5286  break;
5287 
5288  case 294:
5289 #line 1490 "parser.y" /* yacc.c:1646 */
5290  {
5291  // a struct/union with tag but without body
5292  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[0])));
5293  }
5294 #line 5295 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5295  break;
5296 
5297  case 295:
5298 #line 1495 "parser.y" /* yacc.c:1646 */
5299  {
5300  stack((yyvsp[-5])).set(ID_components, ID_nil);
5301  // type attributes
5302  (yyval)=merge((yyvsp[-5]), merge((yyvsp[-4]), (yyvsp[0])));
5303  }
5304 #line 5305 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5305  break;
5306 
5307  case 296:
5308 #line 1504 "parser.y" /* yacc.c:1646 */
5309  { (yyval)=(yyvsp[0]); set((yyval), ID_struct); }
5310 #line 5311 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5311  break;
5312 
5313  case 297:
5314 #line 1506 "parser.y" /* yacc.c:1646 */
5315  { (yyval)=(yyvsp[0]); set((yyval), ID_union); }
5316 #line 5317 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5317  break;
5318 
5319  case 298:
5320 #line 1511 "parser.y" /* yacc.c:1646 */
5321  { (yyval)=(yyvsp[0]); set((yyval), ID_packed); }
5322 #line 5323 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5323  break;
5324 
5325  case 299:
5326 #line 1513 "parser.y" /* yacc.c:1646 */
5327  { (yyval)=(yyvsp[0]); set((yyval), ID_transparent_union); }
5328 #line 5329 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5329  break;
5330 
5331  case 300:
5332 #line 1515 "parser.y" /* yacc.c:1646 */
5333  { (yyval)=(yyvsp[-3]); set((yyval), ID_vector); stack((yyval)).add(ID_size)=stack((yyvsp[-1])); }
5334 #line 5335 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5335  break;
5336 
5337  case 301:
5338 #line 1517 "parser.y" /* yacc.c:1646 */
5339  { (yyval)=(yyvsp[0]); set((yyval), ID_aligned); }
5340 #line 5341 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5341  break;
5342 
5343  case 302:
5344 #line 1519 "parser.y" /* yacc.c:1646 */
5345  { (yyval)=(yyvsp[-3]); set((yyval), ID_aligned); stack((yyval)).set(ID_size, stack((yyvsp[-1]))); }
5346 #line 5347 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5347  break;
5348 
5349  case 303:
5350 #line 1521 "parser.y" /* yacc.c:1646 */
5351  { (yyval)=(yyvsp[-3]); set((yyval), ID_gcc_attribute_mode); stack((yyval)).set(ID_size, stack((yyvsp[-1])).get(ID_identifier)); }
5352 #line 5353 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5353  break;
5354 
5355  case 304:
5356 #line 1523 "parser.y" /* yacc.c:1646 */
5357  { (yyval)=(yyvsp[0]); set((yyval), ID_static); }
5358 #line 5359 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5359  break;
5360 
5361  case 305:
5362 #line 1525 "parser.y" /* yacc.c:1646 */
5363  { (yyval)=(yyvsp[0]); set((yyval), ID_weak); }
5364 #line 5365 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5365  break;
5366 
5367  case 306:
5368 #line 1527 "parser.y" /* yacc.c:1646 */
5369  { (yyval)=(yyvsp[-3]); set((yyval), ID_alias); mto((yyval), (yyvsp[-1])); }
5370 #line 5371 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5371  break;
5372 
5373  case 307:
5374 #line 1529 "parser.y" /* yacc.c:1646 */
5375  { (yyval)=(yyvsp[-3]); set((yyval), ID_section); mto((yyval), (yyvsp[-1])); }
5376 #line 5377 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5377  break;
5378 
5379  case 308:
5380 #line 1531 "parser.y" /* yacc.c:1646 */
5381  { (yyval)=(yyvsp[0]); set((yyval), ID_noreturn); }
5382 #line 5383 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5383  break;
5384 
5385  case 309:
5386 #line 1533 "parser.y" /* yacc.c:1646 */
5387  { (yyval)=(yyvsp[0]); set((yyval), ID_constructor); }
5388 #line 5389 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5389  break;
5390 
5391  case 310:
5392 #line 1535 "parser.y" /* yacc.c:1646 */
5393  { (yyval)=(yyvsp[0]); set((yyval), ID_destructor); }
5394 #line 5395 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5395  break;
5396 
5397  case 311:
5398 #line 1540 "parser.y" /* yacc.c:1646 */
5399  {
5400  init((yyval));
5401  }
5402 #line 5403 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5403  break;
5404 
5405  case 314:
5406 #line 1549 "parser.y" /* yacc.c:1646 */
5407  {
5408  (yyval)=merge((yyvsp[-2]), (yyvsp[-1]));
5409  }
5410 #line 5411 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5411  break;
5412 
5413  case 315:
5414 #line 1556 "parser.y" /* yacc.c:1646 */
5415  { (yyval)=(yyvsp[-2]); }
5416 #line 5417 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5417  break;
5418 
5419  case 316:
5420 #line 1558 "parser.y" /* yacc.c:1646 */
5421  { (yyval)=(yyvsp[0]); set((yyval), ID_noreturn); }
5422 #line 5423 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5423  break;
5424 
5425  case 317:
5426 #line 1563 "parser.y" /* yacc.c:1646 */
5427  {
5428  init((yyval));
5429  }
5430 #line 5431 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5431  break;
5432 
5433  case 320:
5434 #line 1572 "parser.y" /* yacc.c:1646 */
5435  {
5436  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5437  }
5438 #line 5439 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5439  break;
5440 
5441  case 321:
5442 #line 1579 "parser.y" /* yacc.c:1646 */
5443  {
5444  init((yyval), ID_declaration_list);
5445  }
5446 #line 5447 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5447  break;
5448 
5449  case 323:
5450 #line 1587 "parser.y" /* yacc.c:1646 */
5451  {
5452  init((yyval), ID_declaration_list);
5453  mto((yyval), (yyvsp[0]));
5454  }
5455 #line 5456 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5456  break;
5457 
5458  case 324:
5459 #line 1592 "parser.y" /* yacc.c:1646 */
5460  {
5461  (yyval)=(yyvsp[-1]);
5462  mto((yyval), (yyvsp[0]));
5463  }
5464 #line 5465 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5465  break;
5466 
5467  case 327:
5468 #line 1602 "parser.y" /* yacc.c:1646 */
5469  {
5470  init((yyval), ID_declaration);
5471  }
5472 #line 5473 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5473  break;
5474 
5475  case 329:
5476 #line 1615 "parser.y" /* yacc.c:1646 */
5477  {
5478  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2]));
5479 
5480  init((yyval), ID_declaration);
5481  to_ansi_c_declaration(stack((yyval))).set_is_member(true);
5482  stack((yyval)).type().swap(stack((yyvsp[-1])));
5483  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5484  }
5485 #line 5486 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5486  break;
5487 
5488  case 330:
5489 #line 1624 "parser.y" /* yacc.c:1646 */
5490  {
5491  (yyval)=(yyvsp[-2]);
5492  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5493  }
5494 #line 5495 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5495  break;
5496 
5497  case 331:
5498 #line 1634 "parser.y" /* yacc.c:1646 */
5499  {
5500  if(!PARSER.pragma_pack.empty() &&
5501  !PARSER.pragma_pack.back().is_zero())
5502  {
5503  // communicate #pragma pack(n) alignment constraints by
5504  // by both setting packing AND alignment; see padding.cpp
5505  // for more details
5506  init((yyval));
5507  set((yyval), ID_packed);
5508  (yyvsp[-1])=merge((yyvsp[-1]), (yyval));
5509 
5510  init((yyval));
5511  set((yyval), ID_aligned);
5512  stack((yyval)).set(ID_size, PARSER.pragma_pack.back());
5513  (yyvsp[-1])=merge((yyvsp[-1]), (yyval));
5514  }
5515 
5516  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2]));
5517 
5518  init((yyval), ID_declaration);
5519  to_ansi_c_declaration(stack((yyval))).set_is_member(true);
5520  stack((yyval)).type().swap(stack((yyvsp[-1])));
5521  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5522  }
5523 #line 5524 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5524  break;
5525 
5526  case 332:
5527 #line 1659 "parser.y" /* yacc.c:1646 */
5528  {
5529  (yyval)=(yyvsp[-2]);
5530  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5531  }
5532 #line 5533 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5533  break;
5534 
5535  case 333:
5536 #line 1667 "parser.y" /* yacc.c:1646 */
5537  {
5538  (yyval)=(yyvsp[-2]);
5539 
5540  if(stack((yyvsp[-1])).is_not_nil())
5541  make_subtype((yyval), (yyvsp[-1]));
5542 
5543  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5544  (yyval)=merge((yyvsp[0]), (yyval));
5545  }
5546 #line 5547 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5547  break;
5548 
5549  case 334:
5550 #line 1677 "parser.y" /* yacc.c:1646 */
5551  {
5552  init((yyval), ID_abstract);
5553  }
5554 #line 5555 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5555  break;
5556 
5557  case 335:
5558 #line 1681 "parser.y" /* yacc.c:1646 */
5559  {
5560  (yyval)=(yyvsp[-1]);
5561  stack_type((yyval)).subtype()=typet(ID_abstract);
5562 
5563  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5564  (yyval)=merge((yyvsp[0]), (yyval));
5565  }
5566 #line 5567 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5567  break;
5568 
5569  case 336:
5570 #line 1692 "parser.y" /* yacc.c:1646 */
5571  {
5572  (yyval)=(yyvsp[-2]);
5573  if(stack((yyvsp[-1])).is_not_nil())
5574  make_subtype((yyval), (yyvsp[-1]));
5575 
5576  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5577  (yyval)=merge((yyvsp[0]), (yyval));
5578  }
5579 #line 5580 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5580  break;
5581 
5582  case 337:
5583 #line 1701 "parser.y" /* yacc.c:1646 */
5584  {
5585  (yyval)=(yyvsp[-1]);
5586  stack_type((yyval)).subtype()=typet(ID_abstract);
5587 
5588  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5589  (yyval)=merge((yyvsp[0]), (yyval));
5590  }
5591 #line 5592 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5592  break;
5593 
5594  case 338:
5595 #line 1712 "parser.y" /* yacc.c:1646 */
5596  {
5597  init((yyval), ID_nil);
5598  }
5599 #line 5600 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5600  break;
5601 
5602  case 340:
5603 #line 1720 "parser.y" /* yacc.c:1646 */
5604  {
5605  (yyval)=(yyvsp[-1]);
5606  set((yyval), ID_c_bit_field);
5607  stack_type((yyval)).set(ID_size, stack((yyvsp[0])));
5608  stack_type((yyval)).subtype().id(ID_abstract);
5609  }
5610 #line 5611 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5611  break;
5612 
5613  case 341:
5614 #line 1731 "parser.y" /* yacc.c:1646 */
5615  {
5616  // an anon enum
5617  }
5618 #line 5619 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5619  break;
5620 
5621  case 342:
5622 #line 1736 "parser.y" /* yacc.c:1646 */
5623  {
5624  stack((yyvsp[-6])).operands().swap(stack((yyvsp[-2])).operands());
5625  (yyval)=merge((yyvsp[-6]), merge((yyvsp[-5]), (yyvsp[0]))); // throw in the gcc attributes
5626  }
5627 #line 5628 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5628  break;
5629 
5630  case 343:
5631 #line 1743 "parser.y" /* yacc.c:1646 */
5632  {
5633  // an enum with tag
5634  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[0])));
5635  }
5636 #line 5637 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5637  break;
5638 
5639  case 344:
5640 #line 1749 "parser.y" /* yacc.c:1646 */
5641  {
5642  stack((yyvsp[-7])).operands().swap(stack((yyvsp[-2])).operands());
5643  (yyval)=merge((yyvsp[-7]), merge((yyvsp[-6]), (yyvsp[0]))); // throw in the gcc attributes
5644  }
5645 #line 5646 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5646  break;
5647 
5648  case 345:
5649 #line 1757 "parser.y" /* yacc.c:1646 */
5650  {
5651  stack((yyvsp[-3])).id(ID_c_enum_tag); // tag only
5652  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[-1])));
5653  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0]))); // throw in the gcc attributes
5654  }
5655 #line 5656 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5656  break;
5657 
5658  case 346:
5659 #line 1765 "parser.y" /* yacc.c:1646 */
5660  {
5661  (yyval)=(yyvsp[0]);
5662  set((yyval), ID_c_enum);
5663  }
5664 #line 5665 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5665  break;
5666 
5667  case 347:
5668 #line 1773 "parser.y" /* yacc.c:1646 */
5669  {
5670  init((yyval), ID_declaration_list);
5671  }
5672 #line 5673 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5673  break;
5674 
5675  case 349:
5676 #line 1781 "parser.y" /* yacc.c:1646 */
5677  {
5678  init((yyval), ID_declaration_list);
5679  mto((yyval), (yyvsp[0]));
5680  }
5681 #line 5682 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5682  break;
5683 
5684  case 350:
5685 #line 1786 "parser.y" /* yacc.c:1646 */
5686  {
5687  (yyval)=(yyvsp[-2]);
5688  mto((yyval), (yyvsp[0]));
5689  }
5690 #line 5691 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5691  break;
5692 
5693  case 351:
5694 #line 1791 "parser.y" /* yacc.c:1646 */
5695  {
5696  (yyval)=(yyvsp[-1]);
5697  }
5698 #line 5699 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5699  break;
5700 
5701  case 352:
5702 #line 1798 "parser.y" /* yacc.c:1646 */
5703  {
5704  init((yyval), ID_declaration);
5706  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-2])));
5707  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
5708  }
5709 #line 5710 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5710  break;
5711 
5712  case 353:
5713 #line 1808 "parser.y" /* yacc.c:1646 */
5714  {
5715  init((yyval));
5716  stack((yyval)).make_nil();
5717  }
5718 #line 5719 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5719  break;
5720 
5721  case 354:
5722 #line 1813 "parser.y" /* yacc.c:1646 */
5723  {
5724  (yyval)=(yyvsp[0]);
5725  }
5726 #line 5727 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5727  break;
5728 
5729  case 356:
5730 #line 1821 "parser.y" /* yacc.c:1646 */
5731  {
5732  typet tmp(ID_ellipsis);
5733  (yyval)=(yyvsp[-2]);
5734  stack_type((yyval)).move_to_subtypes(tmp);
5735  }
5736 #line 5737 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5737  break;
5738 
5739  case 357:
5740 #line 1830 "parser.y" /* yacc.c:1646 */
5741  {
5742  init((yyval), ID_parameters);
5743  mts((yyval), (yyvsp[0]));
5744  }
5745 #line 5746 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5746  break;
5747 
5748  case 358:
5749 #line 1835 "parser.y" /* yacc.c:1646 */
5750  {
5751  (yyval)=(yyvsp[-2]);
5752  mts((yyval), (yyvsp[0]));
5753  }
5754 #line 5755 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5755  break;
5756 
5757  case 359:
5758 #line 1842 "parser.y" /* yacc.c:1646 */
5759  {
5760  init((yyval), ID_declaration);
5761  stack((yyval)).type()=typet(ID_KnR);
5762  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5763  }
5764 #line 5765 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5765  break;
5766 
5767  case 360:
5768 #line 1851 "parser.y" /* yacc.c:1646 */
5769  {
5770  init((yyval), ID_parameters);
5771  mts((yyval), (yyvsp[0]));
5772  }
5773 #line 5774 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5774  break;
5775 
5776  case 361:
5777 #line 1856 "parser.y" /* yacc.c:1646 */
5778  {
5779  (yyval)=(yyvsp[-2]);
5780  mts((yyval), (yyvsp[0]));
5781  }
5782 #line 5783 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5783  break;
5784 
5785  case 362:
5786 #line 1864 "parser.y" /* yacc.c:1646 */
5787  {
5788  init((yyval), ID_declaration);
5790  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
5791  exprt declarator=exprt(ID_abstract);
5792  PARSER.add_declarator(stack((yyval)), declarator);
5793  }
5794 #line 5795 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5795  break;
5796 
5797  case 363:
5798 #line 1872 "parser.y" /* yacc.c:1646 */
5799  {
5800  init((yyval), ID_declaration);
5802  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5803  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5804  }
5805 #line 5806 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5806  break;
5807 
5808  case 364:
5809 #line 1879 "parser.y" /* yacc.c:1646 */
5810  {
5811  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
5812  init((yyval), ID_declaration);
5814  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
5815  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
5816  }
5817 #line 5818 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5818  break;
5819 
5820  case 365:
5821 #line 1887 "parser.y" /* yacc.c:1646 */
5822  {
5823  // the second tree is really the declarator -- not part
5824  // of the type!
5825  init((yyval), ID_declaration);
5827  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5828  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5829  }
5830 #line 5831 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5831  break;
5832 
5833  case 366:
5834 #line 1896 "parser.y" /* yacc.c:1646 */
5835  {
5836  init((yyval), ID_declaration);
5838  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
5839  exprt declarator=exprt(ID_abstract);
5840  PARSER.add_declarator(stack((yyval)), declarator);
5841  }
5842 #line 5843 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5843  break;
5844 
5845  case 367:
5846 #line 1904 "parser.y" /* yacc.c:1646 */
5847  {
5848  init((yyval), ID_declaration);
5850  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5851  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5852  }
5853 #line 5854 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5854  break;
5855 
5856  case 368:
5857 #line 1911 "parser.y" /* yacc.c:1646 */
5858  {
5859  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
5860  init((yyval), ID_declaration);
5862  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
5863  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
5864  }
5865 #line 5866 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5866  break;
5867 
5868  case 369:
5869 #line 1919 "parser.y" /* yacc.c:1646 */
5870  {
5871  init((yyval), ID_declaration);
5873  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
5874  exprt declarator=exprt(ID_abstract);
5875  PARSER.add_declarator(stack((yyval)), declarator);
5876  }
5877 #line 5878 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5878  break;
5879 
5880  case 370:
5881 #line 1927 "parser.y" /* yacc.c:1646 */
5882  {
5883  init((yyval), ID_declaration);
5885  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5886  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5887  }
5888 #line 5889 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5889  break;
5890 
5891  case 371:
5892 #line 1934 "parser.y" /* yacc.c:1646 */
5893  {
5894  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
5895  init((yyval), ID_declaration);
5897  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
5898  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
5899  }
5900 #line 5901 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5901  break;
5902 
5903  case 372:
5904 #line 1942 "parser.y" /* yacc.c:1646 */
5905  {
5906  // the second tree is really the declarator -- not part of the type!
5907  init((yyval), ID_declaration);
5909  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5910  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5911  }
5912 #line 5913 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5913  break;
5914 
5915  case 373:
5916 #line 1950 "parser.y" /* yacc.c:1646 */
5917  {
5918  init((yyval), ID_declaration);
5920  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
5921  exprt declarator=exprt(ID_abstract);
5922  PARSER.add_declarator(stack((yyval)), declarator);
5923  }
5924 #line 5925 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5925  break;
5926 
5927  case 374:
5928 #line 1958 "parser.y" /* yacc.c:1646 */
5929  {
5930  init((yyval), ID_declaration);
5932  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
5933  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5934  }
5935 #line 5936 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5936  break;
5937 
5938  case 375:
5939 #line 1965 "parser.y" /* yacc.c:1646 */
5940  {
5941  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
5942  init((yyval), ID_declaration);
5944  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
5945  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
5946  }
5947 #line 5948 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5948  break;
5949 
5950  case 378:
5951 #line 1981 "parser.y" /* yacc.c:1646 */
5952  {
5953  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
5954  }
5955 #line 5956 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5956  break;
5957 
5958  case 379:
5959 #line 1985 "parser.y" /* yacc.c:1646 */
5960  {
5961  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
5962  make_subtype((yyval), (yyvsp[0]));
5963  }
5964 #line 5965 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5965  break;
5966 
5967  case 380:
5968 #line 1990 "parser.y" /* yacc.c:1646 */
5969  {
5970  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
5971  }
5972 #line 5973 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5973  break;
5974 
5975  case 381:
5976 #line 1994 "parser.y" /* yacc.c:1646 */
5977  {
5978  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
5979  make_subtype((yyval), (yyvsp[0]));
5980  }
5981 #line 5982 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5982  break;
5983 
5984  case 382:
5985 #line 2002 "parser.y" /* yacc.c:1646 */
5986  {
5987  init((yyval));
5988  stack((yyval)).make_nil();
5989  }
5990 #line 5991 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5991  break;
5992 
5993  case 383:
5994 #line 2007 "parser.y" /* yacc.c:1646 */
5995  { (yyval) = (yyvsp[0]); }
5996 #line 5997 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
5997  break;
5998 
5999  case 385:
6000 #line 2018 "parser.y" /* yacc.c:1646 */
6001  {
6002  (yyval)=(yyvsp[-2]);
6003  set((yyval), ID_initializer_list);
6004  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
6005  }
6006 #line 6007 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6007  break;
6008 
6009  case 386:
6010 #line 2024 "parser.y" /* yacc.c:1646 */
6011  {
6012  (yyval)=(yyvsp[-3]);
6013  set((yyval), ID_initializer_list);
6014  stack((yyval)).operands().swap(stack((yyvsp[-2])).operands());
6015  }
6016 #line 6017 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6017  break;
6018 
6019  case 387:
6020 #line 2033 "parser.y" /* yacc.c:1646 */
6021  {
6022  (yyval)=(yyvsp[0]);
6023  exprt tmp;
6024  tmp.swap(stack((yyval)));
6025  stack((yyval)).clear();
6026  stack((yyval)).move_to_operands(tmp);
6027  }
6028 #line 6029 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6029  break;
6030 
6031  case 388:
6032 #line 2041 "parser.y" /* yacc.c:1646 */
6033  {
6034  (yyval)=(yyvsp[-2]);
6035  mto((yyval), (yyvsp[0]));
6036  }
6037 #line 6038 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6038  break;
6039 
6040  case 390:
6041 #line 2050 "parser.y" /* yacc.c:1646 */
6042  {
6043  init((yyval));
6044  set((yyval), ID_initializer_list);
6045  stack((yyval)).operands().clear();
6046  }
6047 #line 6048 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6048  break;
6049 
6050  case 392:
6051 #line 2060 "parser.y" /* yacc.c:1646 */
6052  {
6053  (yyval)=(yyvsp[-1]);
6054  stack((yyval)).id(ID_designated_initializer);
6055  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-2])));
6056  mto((yyval), (yyvsp[0]));
6057  }
6058 #line 6059 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6059  break;
6060 
6061  case 393:
6062 #line 2068 "parser.y" /* yacc.c:1646 */
6063  {
6064  init((yyval), ID_designated_initializer);
6065  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-1])));
6066  mto((yyval), (yyvsp[0]));
6067  }
6068 #line 6069 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6069  break;
6070 
6071  case 394:
6072 #line 2074 "parser.y" /* yacc.c:1646 */
6073  {
6074  // yet another GCC speciality
6075  (yyval)=(yyvsp[-1]);
6076  stack((yyval)).id(ID_designated_initializer);
6077  exprt designator;
6078  exprt member(ID_member);
6079  member.set(ID_component_name, stack((yyvsp[-2])).get(ID_C_base_name));
6080  designator.move_to_operands(member);
6081  stack((yyval)).add(ID_designator).swap(designator);
6082  mto((yyval), (yyvsp[0]));
6083  }
6084 #line 6085 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6085  break;
6086 
6087  case 395:
6088 #line 2089 "parser.y" /* yacc.c:1646 */
6089  {
6090  init((yyval));
6091  stack((yyvsp[-1])).id(ID_member);
6092  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
6093  mto((yyval), (yyvsp[-1]));
6094  }
6095 #line 6096 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6096  break;
6097 
6098  case 396:
6099 #line 2096 "parser.y" /* yacc.c:1646 */
6100  {
6101  init((yyval));
6102  stack((yyvsp[-2])).id(ID_index);
6103  mto((yyvsp[-2]), (yyvsp[-1]));
6104  mto((yyval), (yyvsp[-2]));
6105  }
6106 #line 6107 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6107  break;
6108 
6109  case 397:
6110 #line 2103 "parser.y" /* yacc.c:1646 */
6111  {
6112  // TODO
6113  init((yyval));
6114  stack((yyvsp[-4])).id(ID_index);
6115  mto((yyvsp[-4]), (yyvsp[-3]));
6116  mto((yyval), (yyvsp[-4]));
6117  }
6118 #line 6119 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6119  break;
6120 
6121  case 398:
6122 #line 2111 "parser.y" /* yacc.c:1646 */
6123  {
6124  (yyval)=(yyvsp[-3]);
6125  stack((yyvsp[-2])).id(ID_index);
6126  mto((yyvsp[-2]), (yyvsp[-1]));
6127  mto((yyval), (yyvsp[-2]));
6128  }
6129 #line 6130 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6130  break;
6131 
6132  case 399:
6133 #line 2118 "parser.y" /* yacc.c:1646 */
6134  {
6135  // TODO
6136  (yyval)=(yyvsp[-5]);
6137  stack((yyvsp[-4])).id(ID_index);
6138  mto((yyvsp[-4]), (yyvsp[-3]));
6139  mto((yyval), (yyvsp[-4]));
6140  }
6141 #line 6142 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6142  break;
6143 
6144  case 400:
6145 #line 2126 "parser.y" /* yacc.c:1646 */
6146  {
6147  (yyval)=(yyvsp[-2]);
6148  stack((yyvsp[-1])).id(ID_member);
6149  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
6150  mto((yyval), (yyvsp[-1]));
6151  }
6152 #line 6153 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6153  break;
6154 
6155  case 413:
6156 #line 2153 "parser.y" /* yacc.c:1646 */
6157  {
6158  init((yyval));
6159  statement((yyval), ID_decl);
6160  mto((yyval), (yyvsp[0]));
6161  }
6162 #line 6163 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6163  break;
6164 
6165  case 414:
6166 #line 2162 "parser.y" /* yacc.c:1646 */
6167  {
6168  /* Only semicolons permitted after the attribute:
6169  https://gcc.gnu.org/onlinedocs/gcc/Label-Attributes.html */
6170  (yyval)=(yyvsp[-2]);
6171  statement((yyval), ID_label);
6172  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-3])).get(ID_C_base_name));
6173  stack((yyval)).set(ID_label, identifier);
6174  // attribute ignored
6175  statement((yyvsp[-1]), ID_skip);
6176  mto((yyval), (yyvsp[-1]));
6177  }
6178 #line 6179 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6179  break;
6180 
6181  case 415:
6182 #line 2174 "parser.y" /* yacc.c:1646 */
6183  {
6184  (yyval)=(yyvsp[-1]);
6185  statement((yyval), ID_label);
6186  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-2])).get(ID_C_base_name));
6187  stack((yyval)).set(ID_label, identifier);
6188  mto((yyval), (yyvsp[0]));
6189  }
6190 #line 6191 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6191  break;
6192 
6193  case 416:
6194 #line 2182 "parser.y" /* yacc.c:1646 */
6195  {
6196  (yyval)=(yyvsp[-3]);
6197  statement((yyval), ID_switch_case);
6198  mto((yyval), (yyvsp[-2]));
6199  mto((yyval), (yyvsp[0]));
6200  }
6201 #line 6202 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6202  break;
6203 
6204  case 417:
6205 #line 2189 "parser.y" /* yacc.c:1646 */
6206  {
6207  // this is a GCC extension
6208  (yyval)=(yyvsp[-5]);
6209  statement((yyval), ID_gcc_switch_case_range);
6210  mto((yyval), (yyvsp[-4]));
6211  mto((yyval), (yyvsp[-2]));
6212  mto((yyval), (yyvsp[0]));
6213  }
6214 #line 6215 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6215  break;
6216 
6217  case 418:
6218 #line 2198 "parser.y" /* yacc.c:1646 */
6219  {
6220  (yyval)=(yyvsp[-2]);
6221  statement((yyval), ID_switch_case);
6222  stack((yyval)).operands().push_back(nil_exprt());
6223  mto((yyval), (yyvsp[0]));
6224  stack((yyval)).set(ID_default, true);
6225  }
6226 #line 6227 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6227  break;
6228 
6229  case 419:
6230 #line 2209 "parser.y" /* yacc.c:1646 */
6231  {
6232  (yyval)=(yyvsp[-1]);
6233  statement((yyval), ID_block);
6234  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6235  PARSER.pop_scope();
6236  }
6237 #line 6238 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6238  break;
6239 
6240  case 420:
6241 #line 2216 "parser.y" /* yacc.c:1646 */
6242  {
6243  (yyval)=(yyvsp[-2]);
6244  statement((yyval), ID_block);
6245  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6246  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
6247  PARSER.pop_scope();
6248  }
6249 #line 6250 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6250  break;
6251 
6252  case 421:
6253 #line 2224 "parser.y" /* yacc.c:1646 */
6254  {
6255  (yyval)=(yyvsp[-2]);
6256  statement((yyval), ID_asm);
6257  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6258  mto((yyval), (yyvsp[-1]));
6259  PARSER.pop_scope();
6260  }
6261 #line 6262 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6262  break;
6263 
6264  case 422:
6265 #line 2235 "parser.y" /* yacc.c:1646 */
6266  {
6267  unsigned prefix=++PARSER.current_scope().compound_counter;
6268  PARSER.new_scope(std::to_string(prefix)+"::");
6269  }
6270 #line 6271 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6271  break;
6272 
6273  case 423:
6274 #line 2243 "parser.y" /* yacc.c:1646 */
6275  {
6276  init((yyval));
6277  mto((yyval), (yyvsp[0]));
6278  }
6279 #line 6280 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6280  break;
6281 
6282  case 424:
6283 #line 2248 "parser.y" /* yacc.c:1646 */
6284  {
6285  mto((yyval), (yyvsp[0]));
6286  }
6287 #line 6288 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6288  break;
6289 
6290  case 425:
6291 #line 2255 "parser.y" /* yacc.c:1646 */
6292  {
6293  (yyval)=(yyvsp[0]);
6294 
6295  if(stack((yyvsp[-1])).is_nil())
6296  statement((yyval), ID_skip);
6297  else
6298  {
6299  statement((yyval), ID_expression);
6300  mto((yyval), (yyvsp[-1]));
6301  }
6302  }
6303 #line 6304 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6304  break;
6305 
6306  case 426:
6307 #line 2270 "parser.y" /* yacc.c:1646 */
6308  {
6309  (yyval)=(yyvsp[-4]);
6310  statement((yyval), ID_ifthenelse);
6311  stack((yyval)).operands().reserve(3);
6312  mto((yyval), (yyvsp[-2]));
6313  mto((yyval), (yyvsp[0]));
6314  stack((yyval)).copy_to_operands(nil_exprt());
6315  }
6316 #line 6317 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6317  break;
6318 
6319  case 427:
6320 #line 2279 "parser.y" /* yacc.c:1646 */
6321  {
6322  (yyval)=(yyvsp[-6]);
6323  statement((yyval), ID_ifthenelse);
6324  stack((yyval)).operands().reserve(3);
6325  mto((yyval), (yyvsp[-4]));
6326  mto((yyval), (yyvsp[-2]));
6327  mto((yyval), (yyvsp[0]));
6328  }
6329 #line 6330 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6330  break;
6331 
6332  case 428:
6333 #line 2288 "parser.y" /* yacc.c:1646 */
6334  {
6335  (yyval)=(yyvsp[-4]);
6336  statement((yyval), ID_switch);
6337  stack((yyval)).operands().reserve(2);
6338  mto((yyval), (yyvsp[-2]));
6339  mto((yyval), (yyvsp[0]));
6340  }
6341 #line 6342 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6342  break;
6343 
6344  case 431:
6345 #line 2305 "parser.y" /* yacc.c:1646 */
6346  {
6347  (yyval)=(yyvsp[-5]);
6348  statement((yyval), ID_while);
6349  stack((yyval)).operands().reserve(2);
6350  mto((yyval), (yyvsp[-3]));
6351  mto((yyval), (yyvsp[0]));
6352 
6353  if(stack((yyvsp[-1])).is_not_nil())
6354  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6355  }
6356 #line 6357 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6357  break;
6358 
6359  case 432:
6360 #line 2317 "parser.y" /* yacc.c:1646 */
6361  {
6362  (yyval)=(yyvsp[-7]);
6363  statement((yyval), ID_dowhile);
6364  stack((yyval)).operands().reserve(2);
6365  mto((yyval), (yyvsp[-3]));
6366  mto((yyval), (yyvsp[-6]));
6367 
6368  if(stack((yyvsp[-1])).is_not_nil())
6369  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6370  }
6371 #line 6372 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6372  break;
6373 
6374  case 433:
6375 #line 2328 "parser.y" /* yacc.c:1646 */
6376  {
6377  // In C99 and upwards, for(;;) has a scope
6378  if(PARSER.for_has_scope)
6379  {
6380  unsigned prefix=++PARSER.current_scope().compound_counter;
6381  PARSER.new_scope(std::to_string(prefix)+"::");
6382  }
6383  }
6384 #line 6385 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6385  break;
6386 
6387  case 434:
6388 #line 2341 "parser.y" /* yacc.c:1646 */
6389  {
6390  (yyval)=(yyvsp[-9]);
6391  statement((yyval), ID_for);
6392  stack((yyval)).operands().reserve(4);
6393  mto((yyval), (yyvsp[-6]));
6394  mto((yyval), (yyvsp[-5]));
6395  mto((yyval), (yyvsp[-3]));
6396  mto((yyval), (yyvsp[0]));
6397 
6398  if(stack((yyvsp[-1])).is_not_nil())
6399  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6400 
6401  if(PARSER.for_has_scope)
6402  PARSER.pop_scope(); // remove the C99 for-scope
6403  }
6404 #line 6405 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6405  break;
6406 
6407  case 435:
6408 #line 2360 "parser.y" /* yacc.c:1646 */
6409  {
6410  (yyval)=(yyvsp[-2]);
6411  if(stack((yyvsp[-1])).id()==ID_symbol)
6412  {
6413  statement((yyval), ID_goto);
6414  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-1])).get(ID_C_base_name));
6415  stack((yyval)).set(ID_destination, identifier);
6416  }
6417  else
6418  {
6419  // this is a gcc extension.
6420  // the original grammar uses identifier_or_typedef_name
6421  statement((yyval), ID_gcc_computed_goto);
6422  mto((yyval), (yyvsp[-1]));
6423  }
6424  }
6425 #line 6426 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6426  break;
6427 
6428  case 436:
6429 #line 2377 "parser.y" /* yacc.c:1646 */
6430  {
6431  (yyval)=(yyvsp[-2]);
6432  statement((yyval), ID_goto);
6433  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-1])).get(ID_C_base_name));
6434  stack((yyval)).set(ID_destination, identifier);
6435  }
6436 #line 6437 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6437  break;
6438 
6439  case 437:
6440 #line 2384 "parser.y" /* yacc.c:1646 */
6441  { (yyval)=(yyvsp[-1]); statement((yyval), ID_continue); }
6442 #line 6443 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6443  break;
6444 
6445  case 438:
6446 #line 2386 "parser.y" /* yacc.c:1646 */
6447  { (yyval)=(yyvsp[-1]); statement((yyval), ID_break); }
6448 #line 6449 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6449  break;
6450 
6451  case 439:
6452 #line 2388 "parser.y" /* yacc.c:1646 */
6453  { (yyval)=(yyvsp[-1]); statement((yyval), ID_return); }
6454 #line 6455 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6455  break;
6456 
6457  case 440:
6458 #line 2390 "parser.y" /* yacc.c:1646 */
6459  { (yyval)=(yyvsp[-2]); statement((yyval), ID_return); mto((yyval), (yyvsp[-1])); }
6460 #line 6461 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6461  break;
6462 
6463  case 441:
6464 #line 2395 "parser.y" /* yacc.c:1646 */
6465  {
6466  (yyval)=(yyvsp[-2]);
6467  statement((yyval), ID_gcc_local_label);
6468 
6469  // put these into the scope
6470  forall_operands(it, stack((yyvsp[-1])))
6471  {
6472  // labels have a separate name space
6473  irep_idt base_name=it->get(ID_identifier);
6474  irep_idt id="label-"+id2string(base_name);
6475  ansi_c_parsert::identifiert &i=PARSER.current_scope().name_map[id];
6477  i.prefixed_name=PARSER.current_scope().prefix+id2string(id);
6478  i.base_name=base_name;
6479  }
6480 
6481  stack((yyval)).add(ID_label).get_sub().swap((irept::subt&)stack((yyvsp[-1])).operands());
6482  }
6483 #line 6484 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6484  break;
6485 
6486  case 442:
6487 #line 2417 "parser.y" /* yacc.c:1646 */
6488  {
6489  init((yyval));
6490  mto((yyval), (yyvsp[0]));
6491  }
6492 #line 6493 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6493  break;
6494 
6495  case 443:
6496 #line 2422 "parser.y" /* yacc.c:1646 */
6497  {
6498  (yyval)=(yyvsp[-2]);
6499  mto((yyval), (yyvsp[0]));
6500  }
6501 #line 6502 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6502  break;
6503 
6504  case 445:
6505 #line 2433 "parser.y" /* yacc.c:1646 */
6506  { (yyval)=(yyvsp[-5]);
6507  statement((yyval), ID_asm);
6508  stack((yyval)).set(ID_flavor, ID_gcc);
6509  stack((yyval)).operands().swap(stack((yyvsp[-2])).operands());
6510  }
6511 #line 6512 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6512  break;
6513 
6514  case 446:
6515 #line 2439 "parser.y" /* yacc.c:1646 */
6516  {
6517  (yyval)=(yyvsp[-4]);
6518  statement((yyval), ID_asm);
6519  stack((yyval)).set(ID_flavor, ID_gcc);
6520  stack((yyval)).operands().resize(5);
6521  stack((yyval)).op0()=stack((yyvsp[-1]));
6522  }
6523 #line 6524 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6524  break;
6525 
6526  case 447:
6527 #line 2450 "parser.y" /* yacc.c:1646 */
6528  { (yyval)=(yyvsp[-3]);
6529  statement((yyval), ID_asm);
6530  stack((yyval)).set(ID_flavor, ID_msc);
6531  mto((yyval), (yyvsp[-1]));
6532  }
6533 #line 6534 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6534  break;
6535 
6536  case 448:
6537 #line 2456 "parser.y" /* yacc.c:1646 */
6538  { (yyval)=(yyvsp[-1]);
6539  statement((yyval), ID_asm);
6540  stack((yyval)).set(ID_flavor, ID_msc);
6541  mto((yyval), (yyvsp[0]));
6542  }
6543 #line 6544 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6544  break;
6545 
6546  case 449:
6547 #line 2466 "parser.y" /* yacc.c:1646 */
6548  {
6549  (yyval)=(yyvsp[-6]);
6550  statement((yyval), ID_msc_try_except);
6551  mto((yyval), (yyvsp[-5]));
6552  mto((yyval), (yyvsp[-2]));
6553  mto((yyval), (yyvsp[0]));
6554  }
6555 #line 6556 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6556  break;
6557 
6558  case 450:
6559 #line 2475 "parser.y" /* yacc.c:1646 */
6560  {
6561  (yyval)=(yyvsp[-3]);
6562  statement((yyval), ID_msc_try_finally);
6563  mto((yyval), (yyvsp[-2]));
6564  mto((yyval), (yyvsp[0]));
6565  }
6566 #line 6567 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6567  break;
6568 
6569  case 451:
6570 #line 2482 "parser.y" /* yacc.c:1646 */
6571  {
6572  (yyval)=(yyvsp[0]);
6573  statement((yyval), ID_msc_leave);
6574  }
6575 #line 6576 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6576  break;
6577 
6578  case 452:
6579 #line 2490 "parser.y" /* yacc.c:1646 */
6580  {
6581  (yyval)=(yyvsp[-1]);
6582  statement((yyval), ID_CPROVER_throw);
6583  }
6584 #line 6585 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6585  break;
6586 
6587  case 453:
6588 #line 2496 "parser.y" /* yacc.c:1646 */
6589  {
6590  (yyval)=(yyvsp[-3]);
6591  statement((yyval), ID_CPROVER_try_catch);
6592  mto((yyval), (yyvsp[-2]));
6593  mto((yyval), (yyvsp[0]));
6594  }
6595 #line 6596 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6596  break;
6597 
6598  case 454:
6599 #line 2504 "parser.y" /* yacc.c:1646 */
6600  {
6601  (yyval)=(yyvsp[-3]);
6602  statement((yyval), ID_CPROVER_try_finally);
6603  mto((yyval), (yyvsp[-2]));
6604  mto((yyval), (yyvsp[0]));
6605  }
6606 #line 6607 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6607  break;
6608 
6609  case 460:
6610 #line 2530 "parser.y" /* yacc.c:1646 */
6611  {
6612  init((yyval));
6613  stack((yyval)).operands().resize(5);
6614  stack((yyval)).operands()[0]=stack((yyvsp[0]));
6615  }
6616 #line 6617 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6617  break;
6618 
6619  case 461:
6620 #line 2536 "parser.y" /* yacc.c:1646 */
6621  {
6622  init((yyval));
6623  stack((yyval)).operands().resize(5);
6624  stack((yyval)).operands()[0]=stack((yyvsp[-1]));
6625  stack((yyval)).operands()[1]=stack((yyvsp[0]));
6626  }
6627 #line 6628 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6628  break;
6629 
6630  case 462:
6631 #line 2543 "parser.y" /* yacc.c:1646 */
6632  {
6633  init((yyval));
6634  stack((yyval)).operands().resize(5);
6635  stack((yyval)).operands()[0]=stack((yyvsp[-2]));
6636  stack((yyval)).operands()[1]=stack((yyvsp[-1]));
6637  stack((yyval)).operands()[2]=stack((yyvsp[0]));
6638  }
6639 #line 6640 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6640  break;
6641 
6642  case 463:
6643 #line 2551 "parser.y" /* yacc.c:1646 */
6644  {
6645  init((yyval));
6646  stack((yyval)).operands().resize(5);
6647  stack((yyval)).operands()[0]=stack((yyvsp[-3]));
6648  stack((yyval)).operands()[1]=stack((yyvsp[-2]));
6649  stack((yyval)).operands()[2]=stack((yyvsp[-1]));
6650  stack((yyval)).operands()[3]=stack((yyvsp[0]));
6651  }
6652 #line 6653 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6653  break;
6654 
6655  case 464:
6656 #line 2560 "parser.y" /* yacc.c:1646 */
6657  {
6658  init((yyval));
6659  stack((yyval)).operands().resize(5);
6660  stack((yyval)).operands()[0]=stack((yyvsp[-4]));
6661  stack((yyval)).operands()[1]=stack((yyvsp[-3]));
6662  stack((yyval)).operands()[2]=stack((yyvsp[-2]));
6663  stack((yyval)).operands()[3]=stack((yyvsp[-1]));
6664  stack((yyval)).operands()[4]=stack((yyvsp[0]));
6665  }
6666 #line 6667 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6667  break;
6668 
6669  case 466:
6670 #line 2576 "parser.y" /* yacc.c:1646 */
6671  {
6672  (yyval)=(yyvsp[0]);
6673  }
6674 #line 6675 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6675  break;
6676 
6677  case 468:
6678 #line 2584 "parser.y" /* yacc.c:1646 */
6679  {
6680  (yyval)=(yyvsp[-2]);
6681  stack((yyval)).id(ID_gcc_asm_output);
6682  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6683  }
6684 #line 6685 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6685  break;
6686 
6687  case 469:
6688 #line 2591 "parser.y" /* yacc.c:1646 */
6689  {
6690  (yyval)=(yyvsp[-2]);
6691  stack((yyval)).id(ID_gcc_asm_output);
6692  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6693  }
6694 #line 6695 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6695  break;
6696 
6697  case 470:
6698 #line 2600 "parser.y" /* yacc.c:1646 */
6699  {
6700  init((yyval), irep_idt());
6701  mto((yyval), (yyvsp[0]));
6702  }
6703 #line 6704 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6704  break;
6705 
6706  case 471:
6707 #line 2605 "parser.y" /* yacc.c:1646 */
6708  {
6709  (yyval)=(yyvsp[-2]);
6710  mto((yyval), (yyvsp[0]));
6711  }
6712 #line 6713 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6713  break;
6714 
6715  case 472:
6716 #line 2613 "parser.y" /* yacc.c:1646 */
6717  {
6718  (yyval)=(yyvsp[0]);
6719  }
6720 #line 6721 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6721  break;
6722 
6723  case 474:
6724 #line 2621 "parser.y" /* yacc.c:1646 */
6725  {
6726  (yyval)=(yyvsp[-2]);
6727  stack((yyval)).id(ID_gcc_asm_input);
6728  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6729  }
6730 #line 6731 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6731  break;
6732 
6733  case 475:
6734 #line 2628 "parser.y" /* yacc.c:1646 */
6735  {
6736  (yyval)=(yyvsp[-2]);
6737  stack((yyval)).id(ID_gcc_asm_input);
6738  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6739  }
6740 #line 6741 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6741  break;
6742 
6743  case 476:
6744 #line 2637 "parser.y" /* yacc.c:1646 */
6745  {
6746  init((yyval), irep_idt());
6747  mto((yyval), (yyvsp[0]));
6748  }
6749 #line 6750 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6750  break;
6751 
6752  case 477:
6753 #line 2642 "parser.y" /* yacc.c:1646 */
6754  {
6755  (yyval)=(yyvsp[-2]);
6756  mto((yyval), (yyvsp[0]));
6757  }
6758 #line 6759 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6759  break;
6760 
6761  case 478:
6762 #line 2650 "parser.y" /* yacc.c:1646 */
6763  {
6764  (yyval)=(yyvsp[0]);
6765  }
6766 #line 6767 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6767  break;
6768 
6769  case 480:
6770 #line 2658 "parser.y" /* yacc.c:1646 */
6771  {
6772  init((yyval), ID_gcc_asm_clobbered_register);
6773  mto((yyval), (yyvsp[0]));
6774  }
6775 #line 6776 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6776  break;
6777 
6778  case 481:
6779 #line 2666 "parser.y" /* yacc.c:1646 */
6780  {
6781  init((yyval), irep_idt());
6782  mto((yyval), (yyvsp[0]));
6783  }
6784 #line 6785 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6785  break;
6786 
6787  case 482:
6788 #line 2671 "parser.y" /* yacc.c:1646 */
6789  {
6790  (yyval)=(yyvsp[-2]);
6791  mto((yyval), (yyvsp[0]));
6792  }
6793 #line 6794 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6794  break;
6795 
6796  case 483:
6797 #line 2679 "parser.y" /* yacc.c:1646 */
6798  {
6799  (yyval)=(yyvsp[0]);
6800  }
6801 #line 6802 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6802  break;
6803 
6804  case 485:
6805 #line 2687 "parser.y" /* yacc.c:1646 */
6806  {
6807  init((yyval));
6808  mto((yyval), (yyvsp[0]));
6809  }
6810 #line 6811 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6811  break;
6812 
6813  case 486:
6814 #line 2692 "parser.y" /* yacc.c:1646 */
6815  {
6816  (yyval)=(yyvsp[-2]);
6817  mto((yyval), (yyvsp[0]));
6818  }
6819 #line 6820 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6820  break;
6821 
6822  case 487:
6823 #line 2700 "parser.y" /* yacc.c:1646 */
6824  {
6825  (yyval)=(yyvsp[0]);
6826  irep_idt identifier=PARSER.lookup_label(stack((yyval)).get(ID_C_base_name));
6827  stack((yyval)).id(ID_label);
6828  stack((yyval)).set(ID_identifier, identifier);
6829  }
6830 #line 6831 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6831  break;
6832 
6833  case 492:
6834 #line 2719 "parser.y" /* yacc.c:1646 */
6835  {
6836  // put into global list of items
6837  PARSER.copy_item(to_ansi_c_declaration(stack((yyvsp[0]))));
6838  }
6839 #line 6840 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6840  break;
6841 
6842  case 493:
6843 #line 2724 "parser.y" /* yacc.c:1646 */
6844  {
6845  PARSER.copy_item(to_ansi_c_declaration(stack((yyvsp[0]))));
6846  }
6847 #line 6848 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6848  break;
6849 
6850  case 496:
6851 #line 2733 "parser.y" /* yacc.c:1646 */
6852  {
6853  // Not obvious what to do with this.
6854  }
6855 #line 6856 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6856  break;
6857 
6858  case 497:
6859 #line 2737 "parser.y" /* yacc.c:1646 */
6860  {
6861  // Not obvious what to do with this.
6862  }
6863 #line 6864 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6864  break;
6865 
6866  case 498:
6867 #line 2747 "parser.y" /* yacc.c:1646 */
6868  {
6869  if(stack((yyvsp[-2])).is_not_nil())
6870  stack((yyvsp[-3])).add(ID_C_spec_requires).swap(stack((yyvsp[-2])));
6871  if(stack((yyvsp[-1])).is_not_nil())
6872  stack((yyvsp[-3])).add(ID_C_spec_ensures).swap(stack((yyvsp[-1])));
6873  // The head is a declaration with one declarator,
6874  // and the body becomes the 'value'.
6875  (yyval)=(yyvsp[-3]);
6876  ansi_c_declarationt &ansi_c_declaration=
6877  to_ansi_c_declaration(stack((yyval)));
6878 
6879  assert(ansi_c_declaration.declarators().size()==1);
6880  ansi_c_declaration.add_initializer(stack((yyvsp[0])));
6881 
6882  // Kill the scope that 'function_head' creates.
6883  PARSER.pop_scope();
6884 
6885  // We are no longer in any function.
6886  PARSER.set_function(irep_idt());
6887  }
6888 #line 6889 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6889  break;
6890 
6891  case 500:
6892 #line 2775 "parser.y" /* yacc.c:1646 */
6893  {
6894  init((yyval));
6895  }
6896 #line 6897 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6897  break;
6898 
6899  case 502:
6900 #line 2783 "parser.y" /* yacc.c:1646 */
6901  {
6902  init((yyval), ID_decl_block);
6903  mto((yyval), (yyvsp[0]));
6904  }
6905 #line 6906 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6906  break;
6907 
6908  case 503:
6909 #line 2788 "parser.y" /* yacc.c:1646 */
6910  {
6911  (yyval)=(yyvsp[-1]);
6912  mto((yyval), (yyvsp[0]));
6913  }
6914 #line 6915 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6915  break;
6916 
6917  case 506:
6918 #line 2802 "parser.y" /* yacc.c:1646 */
6919  {
6920  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
6921  }
6922 #line 6923 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6923  break;
6924 
6925  case 507:
6926 #line 2806 "parser.y" /* yacc.c:1646 */
6927  {
6928  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
6929  }
6930 #line 6931 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6931  break;
6932 
6933  case 508:
6934 #line 2813 "parser.y" /* yacc.c:1646 */
6935  {
6936  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
6937  }
6938 #line 6939 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6939  break;
6940 
6941  case 509:
6942 #line 2817 "parser.y" /* yacc.c:1646 */
6943  {
6944  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
6945  }
6946 #line 6947 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6947  break;
6948 
6949  case 510:
6950 #line 2821 "parser.y" /* yacc.c:1646 */
6951  {
6952  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
6953  }
6954 #line 6955 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6955  break;
6956 
6957  case 511:
6958 #line 2825 "parser.y" /* yacc.c:1646 */
6959  {
6960  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
6961  }
6962 #line 6963 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6963  break;
6964 
6965  case 512:
6966 #line 2833 "parser.y" /* yacc.c:1646 */
6967  {
6968  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
6969  }
6970 #line 6971 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6971  break;
6972 
6973  case 513:
6974 #line 2837 "parser.y" /* yacc.c:1646 */
6975  {
6976  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
6977  }
6978 #line 6979 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6979  break;
6980 
6981  case 514:
6982 #line 2841 "parser.y" /* yacc.c:1646 */
6983  {
6984  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
6985  }
6986 #line 6987 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6987  break;
6988 
6989  case 515:
6990 #line 2849 "parser.y" /* yacc.c:1646 */
6991  {
6992  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[-1])));
6993  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0])));
6994  }
6995 #line 6996 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
6996  break;
6997 
6998  case 516:
6999 #line 2854 "parser.y" /* yacc.c:1646 */
7000  {
7001  stack((yyvsp[-2])).id(ID_c_enum_tag);
7002  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[-1])));
7003  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0])));
7004  }
7005 #line 7006 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7006  break;
7007 
7008  case 520:
7009 #line 2870 "parser.y" /* yacc.c:1646 */
7010  {
7011  init((yyval), ID_declaration);
7012  stack((yyval)).type().swap(stack((yyvsp[-1])));
7013  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7014  }
7015 #line 7016 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7016  break;
7017 
7018  case 521:
7019 #line 2876 "parser.y" /* yacc.c:1646 */
7020  {
7021  init((yyval), ID_declaration);
7022  stack((yyval)).type().swap(stack((yyvsp[-1])));
7023  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7024  }
7025 #line 7026 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7026  break;
7027 
7028  case 522:
7029 #line 2882 "parser.y" /* yacc.c:1646 */
7030  {
7031  (yyval)=(yyvsp[-2]);
7032  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7033  }
7034 #line 7035 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7035  break;
7036 
7037  case 523:
7038 #line 2890 "parser.y" /* yacc.c:1646 */
7039  {
7040  init((yyval), ID_declaration);
7041  irept return_type(ID_int);
7042  stack((yyval)).type().swap(return_type);
7043  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7044  create_function_scope((yyval));
7045  }
7046 #line 7047 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7047  break;
7048 
7049  case 524:
7050 #line 2898 "parser.y" /* yacc.c:1646 */
7051  {
7052  init((yyval), ID_declaration);
7053  stack((yyval)).type().swap(stack((yyvsp[-1])));
7054  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7055  create_function_scope((yyval));
7056  }
7057 #line 7058 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7058  break;
7059 
7060  case 525:
7061 #line 2905 "parser.y" /* yacc.c:1646 */
7062  {
7063  init((yyval), ID_declaration);
7064  stack((yyval)).type().swap(stack((yyvsp[-1])));
7065  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7066  create_function_scope((yyval));
7067  }
7068 #line 7069 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7069  break;
7070 
7071  case 526:
7072 #line 2912 "parser.y" /* yacc.c:1646 */
7073  {
7074  init((yyval), ID_declaration);
7075  stack((yyval)).type().swap(stack((yyvsp[-1])));
7076  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7077  create_function_scope((yyval));
7078  }
7079 #line 7080 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7080  break;
7081 
7082  case 527:
7083 #line 2919 "parser.y" /* yacc.c:1646 */
7084  {
7085  init((yyval), ID_declaration);
7086  stack((yyval)).type().swap(stack((yyvsp[-1])));
7087  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7088  create_function_scope((yyval));
7089  }
7090 #line 7091 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7091  break;
7092 
7093  case 531:
7094 #line 2935 "parser.y" /* yacc.c:1646 */
7095  {
7096  stack_type((yyvsp[-3]))=typet(ID_abstract);
7097  (yyvsp[-2])=merge((yyvsp[-2]), (yyvsp[-3])); // dest=$2
7098  make_subtype((yyvsp[-1]), (yyvsp[-2])); // dest=$3
7099  (yyval)=(yyvsp[-1]);
7100  }
7101 #line 7102 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7102  break;
7103 
7104  case 532:
7105 #line 2942 "parser.y" /* yacc.c:1646 */
7106  {
7107  stack_type((yyvsp[-4]))=typet(ID_abstract);
7108  (yyvsp[-3])=merge((yyvsp[-3]), (yyvsp[-4])); // dest=$2
7109  make_subtype((yyvsp[-2]), (yyvsp[-3])); // dest=$3
7110  /* note: this is (a pointer to) a function ($5) */
7111  /* or an array ($5) with name ($3) */
7112  (yyval)=(yyvsp[-2]);
7113  make_subtype((yyval), (yyvsp[0]));
7114  }
7115 #line 7116 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7116  break;
7117 
7118  case 533:
7119 #line 2952 "parser.y" /* yacc.c:1646 */
7120  {
7121  (yyval)=(yyvsp[0]);
7122  do_pointer((yyvsp[-1]), (yyvsp[0]));
7123  }
7124 #line 7125 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7125  break;
7126 
7127  case 537:
7128 #line 2966 "parser.y" /* yacc.c:1646 */
7129  {
7130  (yyval)=(yyvsp[-1]);
7131  make_subtype((yyval), (yyvsp[0]));
7132  }
7133 #line 7134 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7134  break;
7135 
7136  case 540:
7137 #line 2976 "parser.y" /* yacc.c:1646 */
7138  {
7139  (yyval)=(yyvsp[0]);
7140  do_pointer((yyvsp[-1]), (yyvsp[0]));
7141  }
7142 #line 7143 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7143  break;
7144 
7145  case 541:
7146 #line 2981 "parser.y" /* yacc.c:1646 */
7147  {
7148  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
7149  do_pointer((yyvsp[-2]), (yyvsp[-1]));
7150  }
7151 #line 7152 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7152  break;
7153 
7154  case 542:
7155 #line 2989 "parser.y" /* yacc.c:1646 */
7156  { (yyval) = (yyvsp[-1]); }
7157 #line 7158 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7158  break;
7159 
7160  case 543:
7161 #line 2991 "parser.y" /* yacc.c:1646 */
7162  {
7163  /* note: this is a pointer ($2) to a function ($4) */
7164  /* or an array ($4)! */
7165  (yyval)=(yyvsp[-2]);
7166  make_subtype((yyval), (yyvsp[0]));
7167  }
7168 #line 7169 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7169  break;
7170 
7171  case 545:
7172 #line 3002 "parser.y" /* yacc.c:1646 */
7173  {
7174  (yyval)=(yyvsp[-1]);
7175  do_pointer((yyvsp[-3]), (yyvsp[-1]));
7176  }
7177 #line 7178 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7178  break;
7179 
7180  case 546:
7181 #line 3007 "parser.y" /* yacc.c:1646 */
7182  {
7183  // not sure where the type qualifiers belong
7184  (yyval)=merge((yyvsp[-3]), (yyvsp[-1]));
7185  do_pointer((yyvsp[-4]), (yyvsp[-3]));
7186  }
7187 #line 7188 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7188  break;
7189 
7190  case 547:
7191 #line 3013 "parser.y" /* yacc.c:1646 */
7192  {
7193  (yyval)=(yyvsp[0]);
7194  do_pointer((yyvsp[-1]), (yyvsp[0]));
7195  }
7196 #line 7197 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7197  break;
7198 
7199  case 548:
7200 #line 3018 "parser.y" /* yacc.c:1646 */
7201  {
7202  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
7203  do_pointer((yyvsp[-2]), (yyvsp[-1]));
7204  }
7205 #line 7206 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7206  break;
7207 
7208  case 549:
7209 #line 3026 "parser.y" /* yacc.c:1646 */
7210  { (yyval) = (yyvsp[-1]); }
7211 #line 7212 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7212  break;
7213 
7214  case 550:
7215 #line 3028 "parser.y" /* yacc.c:1646 */
7216  { /* note: this is a function ($3) with a typedef name ($2) */
7217  (yyval)=(yyvsp[-2]);
7218  make_subtype((yyval), (yyvsp[-1]));
7219  }
7220 #line 7221 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7221  break;
7222 
7223  case 551:
7224 #line 3033 "parser.y" /* yacc.c:1646 */
7225  {
7226  /* note: this is a pointer ($2) to a function ($4) */
7227  /* or an array ($4)! */
7228  (yyval)=(yyvsp[-2]);
7229  make_subtype((yyval), (yyvsp[0]));
7230  }
7231 #line 7232 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7232  break;
7233 
7234  case 553:
7235 #line 3044 "parser.y" /* yacc.c:1646 */
7236  { (yyval)=(yyvsp[-1]); }
7237 #line 7238 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7238  break;
7239 
7240  case 557:
7241 #line 3055 "parser.y" /* yacc.c:1646 */
7242  {
7243  (yyval)=(yyvsp[0]);
7244  do_pointer((yyvsp[-1]), (yyvsp[0]));
7245  }
7246 #line 7247 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7247  break;
7248 
7249  case 558:
7250 #line 3060 "parser.y" /* yacc.c:1646 */
7251  {
7252  // This is an Apple extension to C/C++/Objective C.
7253  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7254  (yyval)=(yyvsp[0]);
7255  do_pointer((yyvsp[-1]), (yyvsp[0]));
7256  }
7257 #line 7258 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7258  break;
7259 
7260  case 559:
7261 #line 3067 "parser.y" /* yacc.c:1646 */
7262  {
7263  // the type_qualifier_list is for the pointer,
7264  // and not the identifier_declarator
7265  stack_type((yyvsp[-2])).id(ID_pointer);
7266  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7267  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7268  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7269  (yyval)=(yyvsp[0]);
7270  }
7271 #line 7272 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7272  break;
7273 
7274  case 560:
7275 #line 3080 "parser.y" /* yacc.c:1646 */
7276  {
7277  /* note: this is a function or array ($2) with name ($1) */
7278  (yyval)=(yyvsp[-1]);
7279  make_subtype((yyval), (yyvsp[0]));
7280  }
7281 #line 7282 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7282  break;
7283 
7284  case 561:
7285 #line 3086 "parser.y" /* yacc.c:1646 */
7286  { (yyval) = (yyvsp[-1]); }
7287 #line 7288 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7288  break;
7289 
7290  case 562:
7291 #line 3088 "parser.y" /* yacc.c:1646 */
7292  {
7293  /* note: this is a pointer ($2) to a function ($4) */
7294  /* or an array ($4)! */
7295  (yyval)=(yyvsp[-2]);
7296  make_subtype((yyval), (yyvsp[0]));
7297  }
7298 #line 7299 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7299  break;
7300 
7301  case 563:
7302 #line 3098 "parser.y" /* yacc.c:1646 */
7303  {
7304  // We remember the last declarator for the benefit
7305  // of function argument scoping.
7306  PARSER.current_scope().last_declarator=
7307  stack((yyvsp[0])).get(ID_identifier);
7308  }
7309 #line 7310 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7310  break;
7311 
7312  case 564:
7313 #line 3105 "parser.y" /* yacc.c:1646 */
7314  { (yyval)=(yyvsp[-1]); }
7315 #line 7316 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7316  break;
7317 
7318  case 571:
7319 #line 3125 "parser.y" /* yacc.c:1646 */
7320  {
7321  (yyval)=(yyvsp[-2]);
7322  set((yyval), ID_code);
7323  stack_type((yyval)).subtype()=typet(ID_abstract);
7324  stack_type((yyval)).add(ID_parameters);
7325  stack_type((yyval)).set(ID_C_KnR, true);
7326  }
7327 #line 7328 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7328  break;
7329 
7330  case 572:
7331 #line 3133 "parser.y" /* yacc.c:1646 */
7332  {
7333  // Use last declarator (i.e., function name) to name
7334  // the scope.
7335  PARSER.new_scope(
7336  id2string(PARSER.current_scope().last_declarator)+"::");
7337  }
7338 #line 7339 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7339  break;
7340 
7341  case 573:
7342 #line 3142 "parser.y" /* yacc.c:1646 */
7343  {
7344  (yyval)=(yyvsp[-4]);
7345  set((yyval), ID_code);
7346  stack_type((yyval)).subtype()=typet(ID_abstract);
7347  stack_type((yyval)).add(ID_parameters).get_sub().
7348  swap((irept::subt &)(stack_type((yyvsp[-2])).subtypes()));
7349  PARSER.pop_scope();
7350  adjust_KnR_parameters(stack((yyval)).add(ID_parameters), stack((yyvsp[0])));
7351  stack((yyval)).set(ID_C_KnR, true);
7352  }
7353 #line 7354 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7354  break;
7355 
7356  case 575:
7357 #line 3157 "parser.y" /* yacc.c:1646 */
7358  {
7359  (yyval)=(yyvsp[-1]);
7360  set((yyval), ID_code);
7361  stack_type((yyval)).add(ID_parameters);
7362  stack_type((yyval)).subtype()=typet(ID_abstract);
7363  }
7364 #line 7365 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7365  break;
7366 
7367  case 576:
7368 #line 3164 "parser.y" /* yacc.c:1646 */
7369  {
7370  // Use last declarator (i.e., function name) to name
7371  // the scope.
7372  PARSER.new_scope(
7373  id2string(PARSER.current_scope().last_declarator)+"::");
7374  }
7375 #line 7376 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7376  break;
7377 
7378  case 577:
7379 #line 3172 "parser.y" /* yacc.c:1646 */
7380  {
7381  (yyval)=(yyvsp[-4]);
7382  set((yyval), ID_code);
7383  stack_type((yyval)).subtype()=typet(ID_abstract);
7384  stack_type((yyval)).add(ID_parameters).get_sub().
7385  swap((irept::subt &)(stack_type((yyvsp[-2])).subtypes()));
7386  PARSER.pop_scope();
7387 
7388  if(stack((yyvsp[0])).is_not_nil())
7389  {
7390  adjust_KnR_parameters(stack((yyval)).add(ID_parameters), stack((yyvsp[0])));
7391  stack((yyval)).set(ID_C_KnR, true);
7392  }
7393  }
7394 #line 7395 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7395  break;
7396 
7397  case 578:
7398 #line 3190 "parser.y" /* yacc.c:1646 */
7399  {
7400  (yyval)=(yyvsp[-1]);
7401  set((yyval), ID_array);
7402  stack_type((yyval)).subtype()=typet(ID_abstract);
7403  stack_type((yyval)).add(ID_size).make_nil();
7404  }
7405 #line 7406 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7406  break;
7407 
7408  case 579:
7409 #line 3197 "parser.y" /* yacc.c:1646 */
7410  {
7411  // this is C99: e.g., restrict, const, etc
7412  // The type qualifier belongs to the array, not the
7413  // contents of the array, nor the size.
7414  set((yyvsp[-2]), ID_array);
7415  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7416  stack_type((yyvsp[-2])).add(ID_size).make_nil();
7417  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
7418  }
7419 #line 7420 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7420  break;
7421 
7422  case 580:
7423 #line 3207 "parser.y" /* yacc.c:1646 */
7424  {
7425  // these should be allowed in prototypes only
7426  (yyval)=(yyvsp[-2]);
7427  set((yyval), ID_array);
7428  stack_type((yyval)).subtype()=typet(ID_abstract);
7429  stack_type((yyval)).add(ID_size).make_nil();
7430  }
7431 #line 7432 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7432  break;
7433 
7434  case 581:
7435 #line 3215 "parser.y" /* yacc.c:1646 */
7436  {
7437  (yyval)=(yyvsp[-2]);
7438  set((yyval), ID_array);
7439  stack_type((yyval)).add(ID_size).swap(stack((yyvsp[-1])));
7440  stack_type((yyval)).subtype()=typet(ID_abstract);
7441  }
7442 #line 7443 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7443  break;
7444 
7445  case 582:
7446 #line 3222 "parser.y" /* yacc.c:1646 */
7447  {
7448  // The type qualifier belongs to the array, not the
7449  // contents of the array, nor the size.
7450  set((yyvsp[-3]), ID_array);
7451  stack_type((yyvsp[-3])).add(ID_size).swap(stack((yyvsp[-1])));
7452  stack_type((yyvsp[-3])).subtype()=typet(ID_abstract);
7453  (yyval)=merge((yyvsp[-2]), (yyvsp[-3])); // dest=$2
7454  }
7455 #line 7456 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7456  break;
7457 
7458  case 583:
7459 #line 3231 "parser.y" /* yacc.c:1646 */
7460  {
7461  // we need to push this down
7462  (yyval)=(yyvsp[-3]);
7463  set((yyvsp[-2]), ID_array);
7464  stack_type((yyvsp[-2])).add(ID_size).swap(stack((yyvsp[-1])));
7465  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7466  make_subtype((yyvsp[-3]), (yyvsp[-2]));
7467  }
7468 #line 7469 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7469  break;
7470 
7471  case 584:
7472 #line 3240 "parser.y" /* yacc.c:1646 */
7473  {
7474  // these should be allowed in prototypes only
7475  // we need to push this down
7476  (yyval)=(yyvsp[-3]);
7477  set((yyvsp[-2]), ID_array);
7478  stack_type((yyvsp[-2])).add(ID_size).make_nil();
7479  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7480  make_subtype((yyvsp[-3]), (yyvsp[-2]));
7481  }
7482 #line 7483 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7483  break;
7484 
7485  case 585:
7486 #line 3253 "parser.y" /* yacc.c:1646 */
7487  {
7488  (yyval)=(yyvsp[0]);
7489  set((yyval), ID_pointer);
7490  stack_type((yyval)).subtype()=typet(ID_abstract);
7491  }
7492 #line 7493 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7493  break;
7494 
7495  case 586:
7496 #line 3259 "parser.y" /* yacc.c:1646 */
7497  {
7498  // The type_qualifier_list belongs to the pointer,
7499  // not to the (missing) abstract declarator.
7500  set((yyvsp[-1]), ID_pointer);
7501  stack_type((yyvsp[-1])).subtype()=typet(ID_abstract);
7502  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7503  }
7504 #line 7505 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7505  break;
7506 
7507  case 587:
7508 #line 3267 "parser.y" /* yacc.c:1646 */
7509  {
7510  (yyval)=(yyvsp[0]);
7511  do_pointer((yyvsp[-1]), (yyvsp[0]));
7512  }
7513 #line 7514 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7514  break;
7515 
7516  case 588:
7517 #line 3272 "parser.y" /* yacc.c:1646 */
7518  {
7519  // The type_qualifier_list belongs to the pointer,
7520  // not to the abstract declarator.
7521  stack_type((yyvsp[-2])).id(ID_pointer);
7522  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7523  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7524  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7525  (yyval)=(yyvsp[0]);
7526  }
7527 #line 7528 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7528  break;
7529 
7530  case 589:
7531 #line 3282 "parser.y" /* yacc.c:1646 */
7532  {
7533  // This is an Apple extension to C/C++/Objective C.
7534  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7535  (yyval)=(yyvsp[0]);
7536  set((yyval), ID_block_pointer);
7537  stack_type((yyval)).subtype()=typet(ID_abstract);
7538  }
7539 #line 7540 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7540  break;
7541 
7542  case 590:
7543 #line 3293 "parser.y" /* yacc.c:1646 */
7544  {
7545  (yyval)=(yyvsp[0]);
7546  set((yyval), ID_pointer);
7547  stack_type((yyval)).subtype()=typet(ID_abstract);
7548  }
7549 #line 7550 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7550  break;
7551 
7552  case 591:
7553 #line 3299 "parser.y" /* yacc.c:1646 */
7554  {
7555  // The type_qualifier_list belongs to the pointer,
7556  // not to the (missing) abstract declarator.
7557  set((yyvsp[-1]), ID_pointer);
7558  stack_type((yyvsp[-1])).subtype()=typet(ID_abstract);
7559  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7560  }
7561 #line 7562 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7562  break;
7563 
7564  case 592:
7565 #line 3307 "parser.y" /* yacc.c:1646 */
7566  {
7567  (yyval)=(yyvsp[0]);
7568  do_pointer((yyvsp[-1]), (yyvsp[0]));
7569  }
7570 #line 7571 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7571  break;
7572 
7573  case 593:
7574 #line 3312 "parser.y" /* yacc.c:1646 */
7575  {
7576  // The type_qualifier_list belongs to the pointer,
7577  // not to the (missing) abstract declarator.
7578  stack((yyvsp[-2])).id(ID_pointer);
7579  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7580  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7581  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7582  (yyval)=(yyvsp[0]);
7583  }
7584 #line 7585 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7585  break;
7586 
7587  case 594:
7588 #line 3322 "parser.y" /* yacc.c:1646 */
7589  {
7590  // This is an Apple extension to C/C++/Objective C.
7591  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7592  (yyval)=(yyvsp[0]);
7593  set((yyval), ID_block_pointer);
7594  stack_type((yyval)).subtype()=typet(ID_abstract);
7595  }
7596 #line 7597 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7597  break;
7598 
7599  case 595:
7600 #line 3333 "parser.y" /* yacc.c:1646 */
7601  { (yyval) = (yyvsp[-1]); }
7602 #line 7603 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7603  break;
7604 
7605  case 596:
7606 #line 3335 "parser.y" /* yacc.c:1646 */
7607  { (yyval) = (yyvsp[-1]); }
7608 #line 7609 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7609  break;
7610 
7611  case 597:
7612 #line 3337 "parser.y" /* yacc.c:1646 */
7613  { (yyval) = (yyvsp[-1]); }
7614 #line 7615 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7615  break;
7616 
7617  case 598:
7618 #line 3339 "parser.y" /* yacc.c:1646 */
7619  {
7620  /* note: this is a pointer ($2) to a function or array ($4) */
7621  (yyval)=(yyvsp[-2]);
7622  make_subtype((yyval), (yyvsp[0]));
7623  }
7624 #line 7625 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7625  break;
7626 
7627  case 599:
7628 #line 3345 "parser.y" /* yacc.c:1646 */
7629  {
7630  /* note: this is a pointer ($2) to a function or array ($4) */
7631  (yyval)=(yyvsp[-2]);
7632  make_subtype((yyval), (yyvsp[0]));
7633  }
7634 #line 7635 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7635  break;
7636 
7637  case 600:
7638 #line 3354 "parser.y" /* yacc.c:1646 */
7639  { (yyval) = (yyvsp[-1]); }
7640 #line 7641 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7641  break;
7642 
7643  case 601:
7644 #line 3356 "parser.y" /* yacc.c:1646 */
7645  { (yyval) = (yyvsp[-1]); }
7646 #line 7647 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7647  break;
7648 
7649  case 603:
7650 #line 3359 "parser.y" /* yacc.c:1646 */
7651  {
7652  /* note: this is a pointer ($2) to a function ($4) */
7653  (yyval)=(yyvsp[-2]);
7654  make_subtype((yyval), (yyvsp[0]));
7655  }
7656 #line 7657 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7657  break;
7658 
7659 
7660 #line 7661 "ansi_c_y.tab.cpp" /* yacc.c:1646 */
7661  default: break;
7662  }
7663  /* User semantic actions sometimes alter yychar, and that requires
7664  that yytoken be updated with the new translation. We take the
7665  approach of translating immediately before every use of yytoken.
7666  One alternative is translating here after every semantic action,
7667  but that translation would be missed if the semantic action invokes
7668  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
7669  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
7670  incorrect destructor might then be invoked immediately. In the
7671  case of YYERROR or YYBACKUP, subsequent parser actions might lead
7672  to an incorrect destructor call or verbose syntax error message
7673  before the lookahead is translated. */
7674  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7675 
7676  YYPOPSTACK (yylen);
7677  yylen = 0;
7678  YY_STACK_PRINT (yyss, yyssp);
7679 
7680  *++yyvsp = yyval;
7681 
7682  /* Now 'shift' the result of the reduction. Determine what state
7683  that goes to, based on the state we popped back to and the rule
7684  number reduced by. */
7685 
7686  yyn = yyr1[yyn];
7687 
7688  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7689  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7690  yystate = yytable[yystate];
7691  else
7692  yystate = yydefgoto[yyn - YYNTOKENS];
7693 
7694  goto yynewstate;
7695 
7696 
7697 /*--------------------------------------.
7698 | yyerrlab -- here on detecting error. |
7699 `--------------------------------------*/
7700 yyerrlab:
7701  /* Make sure we have latest lookahead translation. See comments at
7702  user semantic actions for why this is necessary. */
7703  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
7704 
7705  /* If not already recovering from an error, report this error. */
7706  if (!yyerrstatus)
7707  {
7708  ++yynerrs;
7709 #if ! YYERROR_VERBOSE
7710  yyerror (YY_("syntax error"));
7711 #else
7712 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
7713  yyssp, yytoken)
7714  {
7715  char const *yymsgp = YY_("syntax error");
7716  int yysyntax_error_status;
7717  yysyntax_error_status = YYSYNTAX_ERROR;
7718  if (yysyntax_error_status == 0)
7719  yymsgp = yymsg;
7720  else if (yysyntax_error_status == 1)
7721  {
7722  if (yymsg != yymsgbuf)
7723  YYSTACK_FREE (yymsg);
7724  yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
7725  if (!yymsg)
7726  {
7727  yymsg = yymsgbuf;
7728  yymsg_alloc = sizeof yymsgbuf;
7729  yysyntax_error_status = 2;
7730  }
7731  else
7732  {
7733  yysyntax_error_status = YYSYNTAX_ERROR;
7734  yymsgp = yymsg;
7735  }
7736  }
7737  yyerror (yymsgp);
7738  if (yysyntax_error_status == 2)
7739  goto yyexhaustedlab;
7740  }
7741 # undef YYSYNTAX_ERROR
7742 #endif
7743  }
7744 
7745 
7746 
7747  if (yyerrstatus == 3)
7748  {
7749  /* If just tried and failed to reuse lookahead token after an
7750  error, discard it. */
7751 
7752  if (yychar <= YYEOF)
7753  {
7754  /* Return failure if at end of input. */
7755  if (yychar == YYEOF)
7756  YYABORT;
7757  }
7758  else
7759  {
7760  yydestruct ("Error: discarding",
7761  yytoken, &yylval);
7762  yychar = YYEMPTY;
7763  }
7764  }
7765 
7766  /* Else will try to reuse lookahead token after shifting the error
7767  token. */
7768  goto yyerrlab1;
7769 
7770 
7771 /*---------------------------------------------------.
7772 | yyerrorlab -- error raised explicitly by YYERROR. |
7773 `---------------------------------------------------*/
7774 yyerrorlab:
7775 
7776  /* Pacify compilers like GCC when the user code never invokes
7777  YYERROR and the label yyerrorlab therefore never appears in user
7778  code. */
7779  if (/*CONSTCOND*/ 0)
7780  goto yyerrorlab;
7781 
7782  /* Do not reclaim the symbols of the rule whose action triggered
7783  this YYERROR. */
7784  YYPOPSTACK (yylen);
7785  yylen = 0;
7786  YY_STACK_PRINT (yyss, yyssp);
7787  yystate = *yyssp;
7788  goto yyerrlab1;
7789 
7790 
7791 /*-------------------------------------------------------------.
7792 | yyerrlab1 -- common code for both syntax error and YYERROR. |
7793 `-------------------------------------------------------------*/
7794 yyerrlab1:
7795  yyerrstatus = 3; /* Each real token shifted decrements this. */
7796 
7797  for (;;)
7798  {
7799  yyn = yypact[yystate];
7800  if (!yypact_value_is_default (yyn))
7801  {
7802  yyn += YYTERROR;
7803  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7804  {
7805  yyn = yytable[yyn];
7806  if (0 < yyn)
7807  break;
7808  }
7809  }
7810 
7811  /* Pop the current state because it cannot handle the error token. */
7812  if (yyssp == yyss)
7813  YYABORT;
7814 
7815 
7816  yydestruct ("Error: popping",
7817  yystos[yystate], yyvsp);
7818  YYPOPSTACK (1);
7819  yystate = *yyssp;
7820  YY_STACK_PRINT (yyss, yyssp);
7821  }
7822 
7824  *++yyvsp = yylval;
7826 
7827 
7828  /* Shift the error token. */
7829  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7830 
7831  yystate = yyn;
7832  goto yynewstate;
7833 
7834 
7835 /*-------------------------------------.
7836 | yyacceptlab -- YYACCEPT comes here. |
7837 `-------------------------------------*/
7838 yyacceptlab:
7839  yyresult = 0;
7840  goto yyreturn;
7841 
7842 /*-----------------------------------.
7843 | yyabortlab -- YYABORT comes here. |
7844 `-----------------------------------*/
7845 yyabortlab:
7846  yyresult = 1;
7847  goto yyreturn;
7848 
7849 #if !defined yyoverflow || YYERROR_VERBOSE
7850 /*-------------------------------------------------.
7851 | yyexhaustedlab -- memory exhaustion comes here. |
7852 `-------------------------------------------------*/
7853 yyexhaustedlab:
7854  yyerror (YY_("memory exhausted"));
7855  yyresult = 2;
7856  /* Fall through. */
7857 #endif
7858 
7859 yyreturn:
7860  if (yychar != YYEMPTY)
7861  {
7862  /* Make sure we have latest lookahead translation. See comments at
7863  user semantic actions for why this is necessary. */
7864  yytoken = YYTRANSLATE (yychar);
7865  yydestruct ("Cleanup: discarding lookahead",
7866  yytoken, &yylval);
7867  }
7868  /* Do not reclaim the symbols of the rule whose action triggered
7869  this YYABORT or YYACCEPT. */
7870  YYPOPSTACK (yylen);
7871  YY_STACK_PRINT (yyss, yyssp);
7872  while (yyssp != yyss)
7873  {
7874  yydestruct ("Cleanup: popping",
7875  yystos[*yyssp], yyvsp);
7876  YYPOPSTACK (1);
7877  }
7878 #ifndef yyoverflow
7879  if (yyss != yyssa)
7880  YYSTACK_FREE (yyss);
7881 #endif
7882 #if YYERROR_VERBOSE
7883  if (yymsg != yymsgbuf)
7884  YYSTACK_FREE (yymsg);
7885 #endif
7886  return yyresult;
7887 }
7888 #line 3366 "parser.y" /* yacc.c:1906 */
7889 
#define TOK_PTR64
#define TOK_INT32
#define TOK_EQ
The type of an expression.
Definition: type.h:20
#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:44
#define yydebug
#define TOK_SIGNED
#define yychar
#define TOK_TEMPLATE
short int yytype_int16
#define TOK_INCR
#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:91
#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:28
void set_is_parameter(bool is_parameter)
subtypest & subtypes()
Definition: type.h:56
#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 YYSIZE_T
#define YY_NULLPTR
#define TOK_CONTINUE
#define TOK_FORALL
#define TOK_XORASSIGN
typet & type()
Definition: expr.h:60
#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:594
#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:29
#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_GCC_FLOAT128_ALT
#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_DEFAULT
#define TOK_MINUSASSIGN
#define TOK_CLANG_BUILTIN_CONVERTVECTOR
#define TOK_STDCALL
The NIL expression.
Definition: std_expr.h:3764
#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 YYEOF
#define YYSTACK_BYTES(N)
#define TOK_STATIC_ASSERT
#define YYTERROR
#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:87
#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_AUTO
#define YYFINAL
std::vector< typet > subtypest
Definition: type.h:54
#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 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:46
#define TOK_CHARACTER
#define TOK_FLOATING
#define TOK_INT
#define TOK_LE
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:147
#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:32
#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:70
#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:30
#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
#define TOK_NORETURN
#define TOK_SHLASSIGN
#define TOK_FLOAT
#define TOK_CPROVER_BITVECTOR
#define TOK_CPROVER_THROW