cprover
ansi_c_y.tab.cpp
Go to the documentation of this file.
1 /* A Bison parser, made by GNU Bison 3.0.5. */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5  Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
6 
7  This program is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <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.5"
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 259 "parser.y" /* yacc.c:339 */
108 
109 /************************************************************************/
110 /*** rules **************************************************************/
111 /************************************************************************/
112 
113 #line 114 "ansi_c_y.tab.cpp" /* yacc.c:339 */
114 
115 # ifndef YY_NULLPTR
116 # if defined __cplusplus && 201103L <= __cplusplus
117 # define YY_NULLPTR nullptr
118 # else
119 # define YY_NULLPTR 0
120 # endif
121 # endif
122 
123 /* Enabling verbose error messages. */
124 #ifdef YYERROR_VERBOSE
125 # undef YYERROR_VERBOSE
126 # define YYERROR_VERBOSE 1
127 #else
128 # define YYERROR_VERBOSE 0
129 #endif
130 
131 /* In a future release of Bison, this section will be replaced
132  by #include "ansi_c_y.tab.hpp". */
133 #ifndef YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED
134 # define YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED
135 /* Debug traces. */
136 #ifndef YYDEBUG
137 # define YYDEBUG 0
138 #endif
139 #if YYDEBUG
140 extern int yyansi_cdebug;
141 #endif
142 
143 /* Token type. */
144 #ifndef YYTOKENTYPE
145 # define YYTOKENTYPE
146  enum yytokentype
147  {
148  TOK_AUTO = 258,
149  TOK_BOOL = 259,
150  TOK_COMPLEX = 260,
151  TOK_BREAK = 261,
152  TOK_CASE = 262,
153  TOK_CHAR = 263,
154  TOK_CONST = 264,
155  TOK_CONTINUE = 265,
156  TOK_DEFAULT = 266,
157  TOK_DO = 267,
158  TOK_DOUBLE = 268,
159  TOK_ELSE = 269,
160  TOK_ENUM = 270,
161  TOK_EXTERN = 271,
162  TOK_FLOAT = 272,
163  TOK_FOR = 273,
164  TOK_GOTO = 274,
165  TOK_IF = 275,
166  TOK_INLINE = 276,
167  TOK_INT = 277,
168  TOK_LONG = 278,
169  TOK_REGISTER = 279,
170  TOK_RESTRICT = 280,
171  TOK_RETURN = 281,
172  TOK_SHORT = 282,
173  TOK_SIGNED = 283,
174  TOK_SIZEOF = 284,
175  TOK_STATIC = 285,
176  TOK_STRUCT = 286,
177  TOK_SWITCH = 287,
178  TOK_TYPEDEF = 288,
179  TOK_UNION = 289,
180  TOK_UNSIGNED = 290,
181  TOK_VOID = 291,
182  TOK_VOLATILE = 292,
183  TOK_WCHAR_T = 293,
184  TOK_WHILE = 294,
185  TOK_ARROW = 295,
186  TOK_INCR = 296,
187  TOK_DECR = 297,
188  TOK_SHIFTLEFT = 298,
189  TOK_SHIFTRIGHT = 299,
190  TOK_LE = 300,
191  TOK_GE = 301,
192  TOK_EQ = 302,
193  TOK_NE = 303,
194  TOK_ANDAND = 304,
195  TOK_OROR = 305,
196  TOK_ELLIPSIS = 306,
197  TOK_MULTASSIGN = 307,
198  TOK_DIVASSIGN = 308,
199  TOK_MODASSIGN = 309,
200  TOK_PLUSASSIGN = 310,
201  TOK_MINUSASSIGN = 311,
202  TOK_SHLASSIGN = 312,
203  TOK_SHRASSIGN = 313,
204  TOK_ANDASSIGN = 314,
205  TOK_XORASSIGN = 315,
206  TOK_ORASSIGN = 316,
207  TOK_IDENTIFIER = 317,
208  TOK_TYPEDEFNAME = 318,
209  TOK_INTEGER = 319,
210  TOK_FLOATING = 320,
211  TOK_CHARACTER = 321,
212  TOK_STRING = 322,
213  TOK_ASM_STRING = 323,
214  TOK_INT8 = 324,
215  TOK_INT16 = 325,
216  TOK_INT32 = 326,
217  TOK_INT64 = 327,
218  TOK_PTR32 = 328,
219  TOK_PTR64 = 329,
220  TOK_TYPEOF = 330,
221  TOK_GCC_AUTO_TYPE = 331,
222  TOK_GCC_FLOAT16 = 332,
223  TOK_GCC_FLOAT32 = 333,
224  TOK_GCC_FLOAT32X = 334,
225  TOK_GCC_FLOAT80 = 335,
226  TOK_GCC_FLOAT64 = 336,
227  TOK_GCC_FLOAT64X = 337,
228  TOK_GCC_FLOAT128 = 338,
229  TOK_GCC_FLOAT128X = 339,
230  TOK_GCC_INT128 = 340,
231  TOK_GCC_DECIMAL32 = 341,
232  TOK_GCC_DECIMAL64 = 342,
233  TOK_GCC_DECIMAL128 = 343,
234  TOK_GCC_ASM = 344,
235  TOK_GCC_ASM_PAREN = 345,
236  TOK_GCC_ATTRIBUTE = 346,
251  TOK_GCC_LABEL = 361,
252  TOK_MSC_ASM = 362,
253  TOK_MSC_BASED = 363,
254  TOK_CW_VAR_ARG_TYPEOF = 364,
255  TOK_BUILTIN_VA_ARG = 365,
258  TOK_OFFSETOF = 368,
259  TOK_ALIGNOF = 369,
260  TOK_MSC_TRY = 370,
261  TOK_MSC_FINALLY = 371,
262  TOK_MSC_EXCEPT = 372,
263  TOK_MSC_LEAVE = 373,
264  TOK_MSC_DECLSPEC = 374,
265  TOK_MSC_FORCEINLINE = 375,
266  TOK_INTERFACE = 376,
267  TOK_CDECL = 377,
268  TOK_STDCALL = 378,
269  TOK_FASTCALL = 379,
270  TOK_CLRCALL = 380,
271  TOK_FORALL = 381,
272  TOK_EXISTS = 382,
273  TOK_ACSL_FORALL = 383,
274  TOK_ACSL_EXISTS = 384,
275  TOK_ACSL_LET = 385,
276  TOK_ARRAY_OF = 386,
277  TOK_CPROVER_BITVECTOR = 387,
278  TOK_CPROVER_FLOATBV = 388,
279  TOK_CPROVER_FIXEDBV = 389,
280  TOK_CPROVER_ATOMIC = 390,
281  TOK_CPROVER_BOOL = 391,
282  TOK_CPROVER_THROW = 392,
283  TOK_CPROVER_CATCH = 393,
284  TOK_CPROVER_TRY = 394,
285  TOK_CPROVER_FINALLY = 395,
286  TOK_CPROVER_ID = 396,
288  TOK_CPROVER_REQUIRES = 398,
289  TOK_CPROVER_ENSURES = 399,
290  TOK_IMPLIES = 400,
291  TOK_EQUIVALENT = 401,
292  TOK_XORXOR = 402,
293  TOK_TRUE = 403,
294  TOK_FALSE = 404,
295  TOK_REAL = 405,
296  TOK_IMAG = 406,
297  TOK_ALIGNAS = 407,
300  TOK_GENERIC = 410,
301  TOK_IMAGINARY = 411,
302  TOK_NORETURN = 412,
303  TOK_STATIC_ASSERT = 413,
304  TOK_THREAD_LOCAL = 414,
305  TOK_NULLPTR = 415,
306  TOK_CONSTEXPR = 416,
307  TOK_SCANNER_ERROR = 417,
308  TOK_SCANNER_EOF = 418,
309  TOK_CATCH = 419,
310  TOK_CHAR16_T = 420,
311  TOK_CHAR32_T = 421,
312  TOK_CLASS = 422,
313  TOK_DELETE = 423,
314  TOK_DECLTYPE = 424,
315  TOK_EXPLICIT = 425,
316  TOK_FRIEND = 426,
317  TOK_MUTABLE = 427,
318  TOK_NAMESPACE = 428,
319  TOK_NEW = 429,
320  TOK_NOEXCEPT = 430,
321  TOK_OPERATOR = 431,
322  TOK_PRIVATE = 432,
323  TOK_PROTECTED = 433,
324  TOK_PUBLIC = 434,
325  TOK_TEMPLATE = 435,
326  TOK_THIS = 436,
327  TOK_THROW = 437,
328  TOK_TYPEID = 438,
329  TOK_TYPENAME = 439,
330  TOK_TRY = 440,
331  TOK_USING = 441,
332  TOK_VIRTUAL = 442,
333  TOK_SCOPE = 443,
334  TOK_DOTPM = 444,
335  TOK_ARROWPM = 445,
338  TOK_MSC_UUIDOF = 448,
339  TOK_MSC_IF_EXISTS = 449,
340  TOK_MSC_IF_NOT_EXISTS = 450,
341  TOK_UNDERLYING_TYPE = 451
342  };
343 #endif
344 /* Tokens. */
345 #define TOK_AUTO 258
346 #define TOK_BOOL 259
347 #define TOK_COMPLEX 260
348 #define TOK_BREAK 261
349 #define TOK_CASE 262
350 #define TOK_CHAR 263
351 #define TOK_CONST 264
352 #define TOK_CONTINUE 265
353 #define TOK_DEFAULT 266
354 #define TOK_DO 267
355 #define TOK_DOUBLE 268
356 #define TOK_ELSE 269
357 #define TOK_ENUM 270
358 #define TOK_EXTERN 271
359 #define TOK_FLOAT 272
360 #define TOK_FOR 273
361 #define TOK_GOTO 274
362 #define TOK_IF 275
363 #define TOK_INLINE 276
364 #define TOK_INT 277
365 #define TOK_LONG 278
366 #define TOK_REGISTER 279
367 #define TOK_RESTRICT 280
368 #define TOK_RETURN 281
369 #define TOK_SHORT 282
370 #define TOK_SIGNED 283
371 #define TOK_SIZEOF 284
372 #define TOK_STATIC 285
373 #define TOK_STRUCT 286
374 #define TOK_SWITCH 287
375 #define TOK_TYPEDEF 288
376 #define TOK_UNION 289
377 #define TOK_UNSIGNED 290
378 #define TOK_VOID 291
379 #define TOK_VOLATILE 292
380 #define TOK_WCHAR_T 293
381 #define TOK_WHILE 294
382 #define TOK_ARROW 295
383 #define TOK_INCR 296
384 #define TOK_DECR 297
385 #define TOK_SHIFTLEFT 298
386 #define TOK_SHIFTRIGHT 299
387 #define TOK_LE 300
388 #define TOK_GE 301
389 #define TOK_EQ 302
390 #define TOK_NE 303
391 #define TOK_ANDAND 304
392 #define TOK_OROR 305
393 #define TOK_ELLIPSIS 306
394 #define TOK_MULTASSIGN 307
395 #define TOK_DIVASSIGN 308
396 #define TOK_MODASSIGN 309
397 #define TOK_PLUSASSIGN 310
398 #define TOK_MINUSASSIGN 311
399 #define TOK_SHLASSIGN 312
400 #define TOK_SHRASSIGN 313
401 #define TOK_ANDASSIGN 314
402 #define TOK_XORASSIGN 315
403 #define TOK_ORASSIGN 316
404 #define TOK_IDENTIFIER 317
405 #define TOK_TYPEDEFNAME 318
406 #define TOK_INTEGER 319
407 #define TOK_FLOATING 320
408 #define TOK_CHARACTER 321
409 #define TOK_STRING 322
410 #define TOK_ASM_STRING 323
411 #define TOK_INT8 324
412 #define TOK_INT16 325
413 #define TOK_INT32 326
414 #define TOK_INT64 327
415 #define TOK_PTR32 328
416 #define TOK_PTR64 329
417 #define TOK_TYPEOF 330
418 #define TOK_GCC_AUTO_TYPE 331
419 #define TOK_GCC_FLOAT16 332
420 #define TOK_GCC_FLOAT32 333
421 #define TOK_GCC_FLOAT32X 334
422 #define TOK_GCC_FLOAT80 335
423 #define TOK_GCC_FLOAT64 336
424 #define TOK_GCC_FLOAT64X 337
425 #define TOK_GCC_FLOAT128 338
426 #define TOK_GCC_FLOAT128X 339
427 #define TOK_GCC_INT128 340
428 #define TOK_GCC_DECIMAL32 341
429 #define TOK_GCC_DECIMAL64 342
430 #define TOK_GCC_DECIMAL128 343
431 #define TOK_GCC_ASM 344
432 #define TOK_GCC_ASM_PAREN 345
433 #define TOK_GCC_ATTRIBUTE 346
434 #define TOK_GCC_ATTRIBUTE_ALIGNED 347
435 #define TOK_GCC_ATTRIBUTE_TRANSPARENT_UNION 348
436 #define TOK_GCC_ATTRIBUTE_PACKED 349
437 #define TOK_GCC_ATTRIBUTE_VECTOR_SIZE 350
438 #define TOK_GCC_ATTRIBUTE_MODE 351
439 #define TOK_GCC_ATTRIBUTE_GNU_INLINE 352
440 #define TOK_GCC_ATTRIBUTE_WEAK 353
441 #define TOK_GCC_ATTRIBUTE_ALIAS 354
442 #define TOK_GCC_ATTRIBUTE_SECTION 355
443 #define TOK_GCC_ATTRIBUTE_NORETURN 356
444 #define TOK_GCC_ATTRIBUTE_CONSTRUCTOR 357
445 #define TOK_GCC_ATTRIBUTE_DESTRUCTOR 358
446 #define TOK_GCC_ATTRIBUTE_FALLTHROUGH 359
447 #define TOK_GCC_ATTRIBUTE_USED 360
448 #define TOK_GCC_LABEL 361
449 #define TOK_MSC_ASM 362
450 #define TOK_MSC_BASED 363
451 #define TOK_CW_VAR_ARG_TYPEOF 364
452 #define TOK_BUILTIN_VA_ARG 365
453 #define TOK_GCC_BUILTIN_TYPES_COMPATIBLE_P 366
454 #define TOK_CLANG_BUILTIN_CONVERTVECTOR 367
455 #define TOK_OFFSETOF 368
456 #define TOK_ALIGNOF 369
457 #define TOK_MSC_TRY 370
458 #define TOK_MSC_FINALLY 371
459 #define TOK_MSC_EXCEPT 372
460 #define TOK_MSC_LEAVE 373
461 #define TOK_MSC_DECLSPEC 374
462 #define TOK_MSC_FORCEINLINE 375
463 #define TOK_INTERFACE 376
464 #define TOK_CDECL 377
465 #define TOK_STDCALL 378
466 #define TOK_FASTCALL 379
467 #define TOK_CLRCALL 380
468 #define TOK_FORALL 381
469 #define TOK_EXISTS 382
470 #define TOK_ACSL_FORALL 383
471 #define TOK_ACSL_EXISTS 384
472 #define TOK_ACSL_LET 385
473 #define TOK_ARRAY_OF 386
474 #define TOK_CPROVER_BITVECTOR 387
475 #define TOK_CPROVER_FLOATBV 388
476 #define TOK_CPROVER_FIXEDBV 389
477 #define TOK_CPROVER_ATOMIC 390
478 #define TOK_CPROVER_BOOL 391
479 #define TOK_CPROVER_THROW 392
480 #define TOK_CPROVER_CATCH 393
481 #define TOK_CPROVER_TRY 394
482 #define TOK_CPROVER_FINALLY 395
483 #define TOK_CPROVER_ID 396
484 #define TOK_CPROVER_LOOP_INVARIANT 397
485 #define TOK_CPROVER_REQUIRES 398
486 #define TOK_CPROVER_ENSURES 399
487 #define TOK_IMPLIES 400
488 #define TOK_EQUIVALENT 401
489 #define TOK_XORXOR 402
490 #define TOK_TRUE 403
491 #define TOK_FALSE 404
492 #define TOK_REAL 405
493 #define TOK_IMAG 406
494 #define TOK_ALIGNAS 407
495 #define TOK_ATOMIC_TYPE_QUALIFIER 408
496 #define TOK_ATOMIC_TYPE_SPECIFIER 409
497 #define TOK_GENERIC 410
498 #define TOK_IMAGINARY 411
499 #define TOK_NORETURN 412
500 #define TOK_STATIC_ASSERT 413
501 #define TOK_THREAD_LOCAL 414
502 #define TOK_NULLPTR 415
503 #define TOK_CONSTEXPR 416
504 #define TOK_SCANNER_ERROR 417
505 #define TOK_SCANNER_EOF 418
506 #define TOK_CATCH 419
507 #define TOK_CHAR16_T 420
508 #define TOK_CHAR32_T 421
509 #define TOK_CLASS 422
510 #define TOK_DELETE 423
511 #define TOK_DECLTYPE 424
512 #define TOK_EXPLICIT 425
513 #define TOK_FRIEND 426
514 #define TOK_MUTABLE 427
515 #define TOK_NAMESPACE 428
516 #define TOK_NEW 429
517 #define TOK_NOEXCEPT 430
518 #define TOK_OPERATOR 431
519 #define TOK_PRIVATE 432
520 #define TOK_PROTECTED 433
521 #define TOK_PUBLIC 434
522 #define TOK_TEMPLATE 435
523 #define TOK_THIS 436
524 #define TOK_THROW 437
525 #define TOK_TYPEID 438
526 #define TOK_TYPENAME 439
527 #define TOK_TRY 440
528 #define TOK_USING 441
529 #define TOK_VIRTUAL 442
530 #define TOK_SCOPE 443
531 #define TOK_DOTPM 444
532 #define TOK_ARROWPM 445
533 #define TOK_UNARY_TYPE_PREDICATE 446
534 #define TOK_BINARY_TYPE_PREDICATE 447
535 #define TOK_MSC_UUIDOF 448
536 #define TOK_MSC_IF_EXISTS 449
537 #define TOK_MSC_IF_NOT_EXISTS 450
538 #define TOK_UNDERLYING_TYPE 451
539 
540 /* Value type. */
541 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
542 typedef int YYSTYPE;
543 # define YYSTYPE_IS_TRIVIAL 1
544 # define YYSTYPE_IS_DECLARED 1
545 #endif
546 
547 
548 extern YYSTYPE yyansi_clval;
549 
550 int yyansi_cparse (void);
551 
552 #endif /* !YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED */
553 
554 /* Copy the second part of user declarations. */
555 
556 #line 557 "ansi_c_y.tab.cpp" /* yacc.c:358 */
557 
558 #ifdef short
559 # undef short
560 #endif
561 
562 #ifdef YYTYPE_UINT8
563 typedef YYTYPE_UINT8 yytype_uint8;
564 #else
565 typedef unsigned char yytype_uint8;
566 #endif
567 
568 #ifdef YYTYPE_INT8
569 typedef YYTYPE_INT8 yytype_int8;
570 #else
571 typedef signed char yytype_int8;
572 #endif
573 
574 #ifdef YYTYPE_UINT16
575 typedef YYTYPE_UINT16 yytype_uint16;
576 #else
577 typedef unsigned short int yytype_uint16;
578 #endif
579 
580 #ifdef YYTYPE_INT16
581 typedef YYTYPE_INT16 yytype_int16;
582 #else
583 typedef short int yytype_int16;
584 #endif
585 
586 #ifndef YYSIZE_T
587 # ifdef __SIZE_TYPE__
588 # define YYSIZE_T __SIZE_TYPE__
589 # elif defined size_t
590 # define YYSIZE_T size_t
591 # elif ! defined YYSIZE_T
592 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
593 # define YYSIZE_T size_t
594 # else
595 # define YYSIZE_T unsigned int
596 # endif
597 #endif
598 
599 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
600 
601 #ifndef YY_
602 # if defined YYENABLE_NLS && YYENABLE_NLS
603 # if ENABLE_NLS
604 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
605 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
606 # endif
607 # endif
608 # ifndef YY_
609 # define YY_(Msgid) Msgid
610 # endif
611 #endif
612 
613 #ifndef YY_ATTRIBUTE
614 # if (defined __GNUC__ \
615  && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
616  || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
617 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
618 # else
619 # define YY_ATTRIBUTE(Spec) /* empty */
620 # endif
621 #endif
622 
623 #ifndef YY_ATTRIBUTE_PURE
624 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
625 #endif
626 
627 #ifndef YY_ATTRIBUTE_UNUSED
628 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
629 #endif
630 
631 #if !defined _Noreturn \
632  && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
633 # if defined _MSC_VER && 1200 <= _MSC_VER
634 # define _Noreturn __declspec (noreturn)
635 # else
636 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
637 # endif
638 #endif
639 
640 /* Suppress unused-variable warnings by "using" E. */
641 #if ! defined lint || defined __GNUC__
642 # define YYUSE(E) ((void) (E))
643 #else
644 # define YYUSE(E) /* empty */
645 #endif
646 
647 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
648 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
649 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
650  _Pragma ("GCC diagnostic push") \
651  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
652  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
653 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
654  _Pragma ("GCC diagnostic pop")
655 #else
656 # define YY_INITIAL_VALUE(Value) Value
657 #endif
658 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
659 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
660 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
661 #endif
662 #ifndef YY_INITIAL_VALUE
663 # define YY_INITIAL_VALUE(Value) /* Nothing. */
664 #endif
665 
666 
667 #if ! defined yyoverflow || YYERROR_VERBOSE
668 
669 /* The parser invokes alloca or malloc; define the necessary symbols. */
670 
671 # ifdef YYSTACK_USE_ALLOCA
672 # if YYSTACK_USE_ALLOCA
673 # ifdef __GNUC__
674 # define YYSTACK_ALLOC __builtin_alloca
675 # elif defined __BUILTIN_VA_ARG_INCR
676 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
677 # elif defined _AIX
678 # define YYSTACK_ALLOC __alloca
679 # elif defined _MSC_VER
680 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
681 # define alloca _alloca
682 # else
683 # define YYSTACK_ALLOC alloca
684 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
685 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
686  /* Use EXIT_SUCCESS as a witness for stdlib.h. */
687 # ifndef EXIT_SUCCESS
688 # define EXIT_SUCCESS 0
689 # endif
690 # endif
691 # endif
692 # endif
693 # endif
694 
695 # ifdef YYSTACK_ALLOC
696  /* Pacify GCC's 'empty if-body' warning. */
697 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
698 # ifndef YYSTACK_ALLOC_MAXIMUM
699  /* The OS might guarantee only one guard page at the bottom of the stack,
700  and a page size can be as small as 4096 bytes. So we cannot safely
701  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
702  to allow for a few compiler-allocated temporary stack slots. */
703 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
704 # endif
705 # else
706 # define YYSTACK_ALLOC YYMALLOC
707 # define YYSTACK_FREE YYFREE
708 # ifndef YYSTACK_ALLOC_MAXIMUM
709 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
710 # endif
711 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
712  && ! ((defined YYMALLOC || defined malloc) \
713  && (defined YYFREE || defined free)))
714 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
715 # ifndef EXIT_SUCCESS
716 # define EXIT_SUCCESS 0
717 # endif
718 # endif
719 # ifndef YYMALLOC
720 # define YYMALLOC malloc
721 # if ! defined malloc && ! defined EXIT_SUCCESS
722 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
723 # endif
724 # endif
725 # ifndef YYFREE
726 # define YYFREE free
727 # if ! defined free && ! defined EXIT_SUCCESS
728 void free (void *); /* INFRINGES ON USER NAME SPACE */
729 # endif
730 # endif
731 # endif
732 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
733 
734 
735 #if (! defined yyoverflow \
736  && (! defined __cplusplus \
737  || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
738 
739 /* A type that is properly aligned for any stack member. */
740 union yyalloc
741 {
744 };
745 
746 /* The size of the maximum gap between one aligned stack and the next. */
747 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
748 
749 /* The size of an array large to enough to hold all stacks, each with
750  N elements. */
751 # define YYSTACK_BYTES(N) \
752  ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
753  + YYSTACK_GAP_MAXIMUM)
754 
755 # define YYCOPY_NEEDED 1
756 
757 /* Relocate STACK from its old location to the new one. The
758  local variables YYSIZE and YYSTACKSIZE give the old and new number of
759  elements in the stack, and YYPTR gives the new location of the
760  stack. Advance YYPTR to a properly aligned location for the next
761  stack. */
762 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
763  do \
764  { \
765  YYSIZE_T yynewbytes; \
766  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
767  Stack = &yyptr->Stack_alloc; \
768  yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
769  yyptr += yynewbytes / sizeof (*yyptr); \
770  } \
771  while (0)
772 
773 #endif
774 
775 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
776 /* Copy COUNT objects from SRC to DST. The source and destination do
777  not overlap. */
778 # ifndef YYCOPY
779 # if defined __GNUC__ && 1 < __GNUC__
780 # define YYCOPY(Dst, Src, Count) \
781  __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
782 # else
783 # define YYCOPY(Dst, Src, Count) \
784  do \
785  { \
786  YYSIZE_T yyi; \
787  for (yyi = 0; yyi < (Count); yyi++) \
788  (Dst)[yyi] = (Src)[yyi]; \
789  } \
790  while (0)
791 # endif
792 # endif
793 #endif /* !YYCOPY_NEEDED */
794 
795 /* YYFINAL -- State number of the termination state. */
796 #define YYFINAL 149
797 /* YYLAST -- Last index in YYTABLE. */
798 #define YYLAST 6818
799 
800 /* YYNTOKENS -- Number of terminals. */
801 #define YYNTOKENS 221
802 /* YYNNTS -- Number of nonterminals. */
803 #define YYNNTS 208
804 /* YYNRULES -- Number of rules. */
805 #define YYNRULES 614
806 /* YYNSTATES -- Number of states. */
807 #define YYNSTATES 1109
808 
809 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
810  by yylex, with out-of-bounds checking. */
811 #define YYUNDEFTOK 2
812 #define YYMAXUTOK 451
813 
814 #define YYTRANSLATE(YYX) \
815  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
816 
817 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
818  as returned by yylex, without out-of-bounds checking. */
819 static const yytype_uint8 yytranslate[] =
820 {
821  0, 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, 211, 2, 2, 2, 213, 206, 2,
825  197, 198, 207, 208, 199, 209, 201, 212, 2, 2,
826  2, 2, 2, 2, 2, 2, 2, 2, 200, 220,
827  214, 219, 215, 218, 2, 2, 2, 2, 2, 2,
828  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
829  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
830  2, 202, 2, 203, 216, 2, 2, 2, 2, 2,
831  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
832  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
833  2, 2, 2, 204, 217, 205, 210, 2, 2, 2,
834  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
835  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
836  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
837  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
838  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
839  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
840  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
841  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
842  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
843  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
844  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
845  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
846  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
847  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
848  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
849  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
850  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
851  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
852  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
853  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
854  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
855  85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
856  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
857  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
858  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
859  125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
860  135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
861  145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
862  155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
863  165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
864  175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
865  185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
866  195, 196
867 };
868 
869 #if YYDEBUG
870  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
871 static const yytype_uint16 yyrline[] =
872 {
873  0, 267, 267, 273, 274, 287, 291, 295, 299, 303,
874  308, 309, 310, 311, 317, 318, 319, 321, 322, 323,
875  324, 325, 326, 327, 331, 341, 345, 352, 359, 369,
876  376, 390, 400, 409, 419, 427, 434, 441, 455, 463,
877  473, 481, 495, 496, 502, 503, 509, 510, 514, 524,
878  525, 527, 536, 545, 551, 557, 563, 570, 580, 594,
879  595, 599, 604, 612, 613, 619, 625, 630, 640, 645,
880  650, 655, 660, 665, 670, 675, 681, 690, 691, 698,
881  703, 711, 712, 714, 716, 721, 722, 724, 729, 730,
882  732, 737, 738, 740, 742, 744, 749, 750, 752, 757,
883  758, 763, 764, 769, 770, 775, 776, 781, 782, 787,
884  788, 796, 797, 805, 806, 811, 812, 819, 829, 830,
885  832, 834, 836, 838, 840, 842, 844, 846, 848, 850,
886  855, 856, 861, 866, 867, 873, 879, 885, 886, 887,
887  891, 903, 902, 915, 914, 927, 926, 942, 949, 953,
888  957, 962, 965, 971, 969, 987, 985, 1001, 1019, 1017,
889  1034, 1035, 1036, 1037, 1038, 1042, 1043, 1044, 1045, 1046,
890  1050, 1051, 1055, 1056, 1060, 1067, 1068, 1075, 1082, 1083,
891  1090, 1091, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102,
892  1103, 1107, 1112, 1120, 1121, 1125, 1126, 1127, 1131, 1132,
893  1139, 1143, 1147, 1151, 1158, 1162, 1166, 1170, 1178, 1182,
894  1186, 1194, 1195, 1199, 1206, 1210, 1214, 1221, 1225, 1229,
895  1236, 1240, 1244, 1251, 1255, 1259, 1266, 1271, 1279, 1280,
896  1284, 1288, 1295, 1304, 1305, 1309, 1313, 1320, 1324, 1328,
897  1335, 1336, 1340, 1344, 1348, 1352, 1356, 1360, 1367, 1372,
898  1380, 1383, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
899  1395, 1396, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
900  1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435,
901  1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
902  1451, 1458, 1465, 1469, 1470, 1471, 1475, 1480, 1492, 1489,
903  1510, 1506, 1530, 1526, 1543, 1545, 1550, 1552, 1554, 1556,
904  1558, 1560, 1562, 1564, 1566, 1568, 1570, 1572, 1574, 1576,
905  1582, 1585, 1589, 1590, 1597, 1599, 1605, 1608, 1612, 1613,
906  1621, 1624, 1628, 1633, 1641, 1642, 1643, 1648, 1655, 1667,
907  1675, 1703, 1711, 1722, 1725, 1736, 1745, 1757, 1760, 1764,
908  1776, 1774, 1788, 1785, 1798, 1809, 1818, 1821, 1825, 1830,
909  1835, 1842, 1853, 1857, 1864, 1865, 1874, 1879, 1886, 1895,
910  1900, 1908, 1916, 1923, 1931, 1940, 1948, 1955, 1963, 1971,
911  1978, 1986, 1994, 2002, 2009, 2020, 2021, 2025, 2029, 2034,
912  2038, 2047, 2051, 2061, 2062, 2068, 2077, 2085, 2093, 2095,
913  2103, 2104, 2112, 2118, 2133, 2140, 2147, 2155, 2162, 2170,
914  2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191,
915  2192, 2193, 2194, 2198, 2207, 2219, 2227, 2234, 2243, 2254,
916  2262, 2269, 2277, 2289, 2296, 2301, 2308, 2323, 2332, 2341,
917  2352, 2353, 2357, 2369, 2382, 2381, 2413, 2430, 2437, 2439,
918  2441, 2443, 2448, 2470, 2475, 2482, 2486, 2492, 2503, 2509,
919  2518, 2527, 2535, 2543, 2548, 2556, 2566, 2568, 2569, 2570,
920  2571, 2583, 2589, 2596, 2604, 2613, 2625, 2629, 2633, 2637,
921  2643, 2653, 2658, 2666, 2670, 2674, 2680, 2690, 2695, 2703,
922  2707, 2711, 2719, 2724, 2732, 2736, 2740, 2745, 2753, 2761,
923  2763, 2767, 2768, 2772, 2777, 2781, 2782, 2786, 2790, 2797,
924  2824, 2829, 2832, 2836, 2841, 2849, 2854, 2855, 2859, 2866,
925  2870, 2874, 2878, 2886, 2890, 2894, 2902, 2907, 2917, 2918,
926  2919, 2923, 2929, 2935, 2943, 2951, 2958, 2965, 2972, 2982,
927  2983, 2984, 2988, 2995, 3005, 3013, 3014, 3018, 3019, 3024,
928  3028, 3029, 3034, 3042, 3044, 3054, 3055, 3060, 3066, 3071,
929  3079, 3081, 3086, 3096, 3097, 3102, 3103, 3107, 3108, 3113,
930  3120, 3135, 3141, 3143, 3153, 3160, 3165, 3166, 3167, 3171,
931  3172, 3176, 3178, 3189, 3188, 3211, 3212, 3220, 3219, 3245,
932  3252, 3262, 3270, 3277, 3286, 3295, 3308, 3316, 3326, 3331,
933  3343, 3354, 3362, 3372, 3377, 3389, 3400, 3402, 3404, 3406,
934  3412, 3421, 3423, 3425, 3426
935 };
936 #endif
937 
938 #if YYDEBUG || YYERROR_VERBOSE || 0
939 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
940  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
941 static const char *const yytname[] =
942 {
943  "$end", "error", "$undefined", "\"auto\"", "\"bool\"", "\"complex\"",
944  "\"break\"", "\"case\"", "\"char\"", "\"const\"", "\"continue\"",
945  "\"default\"", "\"do\"", "\"double\"", "\"else\"", "\"enum\"",
946  "\"extern\"", "\"float\"", "\"for\"", "\"goto\"", "\"if\"", "\"inline\"",
947  "\"int\"", "\"long\"", "\"register\"", "\"restrict\"", "\"return\"",
948  "\"short\"", "\"signed\"", "\"sizeof\"", "\"static\"", "\"struct\"",
949  "\"switch\"", "\"typedef\"", "\"union\"", "\"unsigned\"", "\"void\"",
950  "\"volatile\"", "\"wchar_t\"", "\"while\"", "\"->\"", "\"++\"", "\"--\"",
951  "\"<<\"", "\">>\"", "\"<=\"", "\">=\"", "\"==\"", "\"!=\"", "\"&&\"",
952  "\"||\"", "\"...\"", "\"*=\"", "\"/=\"", "\"%=\"", "\"+=\"", "\"-=\"",
953  "\"<<=\"", "\">>=\"", "\"&=\"", "\"^=\"", "\"|=\"", "TOK_IDENTIFIER",
954  "TOK_TYPEDEFNAME", "TOK_INTEGER", "TOK_FLOATING", "TOK_CHARACTER",
955  "TOK_STRING", "TOK_ASM_STRING", "\"__int8\"", "\"__int16\"",
956  "\"__int32\"", "\"__int64\"", "\"__ptr32\"", "\"__ptr64\"", "\"typeof\"",
957  "\"__auto_type\"", "\"_Float16\"", "\"_Float32\"", "\"_Float32x\"",
958  "\"__float80\"", "\"_Float64\"", "\"_Float64x\"", "\"_Float128\"",
959  "\"_Float128x\"", "\"__int128\"", "\"_Decimal32\"", "\"_Decimal64\"",
960  "\"_Decimal128\"", "\"__asm__\"", "\"__asm__ (with parentheses)\"",
961  "\"__attribute__\"", "\"aligned\"", "\"transparent_union\"",
962  "\"packed\"", "\"vector_size\"", "\"mode\"", "\"__gnu_inline__\"",
963  "\"weak\"", "\"alias\"", "\"section\"", "\"noreturn\"",
964  "\"constructor\"", "\"destructor\"", "\"fallthrough\"", "\"used\"",
965  "\"__label__\"", "\"__asm\"", "\"__based\"", "\"_var_arg_typeof\"",
966  "\"__builtin_va_arg\"", "\"__builtin_types_compatible_p\"",
967  "\"__builtin_convertvector\"", "\"__offsetof\"", "\"__alignof__\"",
968  "\"__try\"", "\"__finally\"", "\"__except\"", "\"__leave\"",
969  "\"__declspec\"", "\"__forceinline\"", "\"__interface\"", "\"__cdecl\"",
970  "\"__stdcall\"", "\"__fastcall\"", "\"__clrcall\"", "\"forall\"",
971  "\"exists\"", "\"\\\\forall\"", "\"\\\\exists\"", "\"\\\\let\"",
972  "\"array_of\"", "\"__CPROVER_bitvector\"", "\"__CPROVER_floatbv\"",
973  "\"__CPROVER_fixedbv\"", "\"__CPROVER_atomic\"", "\"__CPROVER_bool\"",
974  "\"__CPROVER_throw\"", "\"__CPROVER_catch\"", "\"__CPROVER_try\"",
975  "\"__CPROVER_finally\"", "\"__CPROVER_ID\"",
976  "\"__CPROVER_loop_invariant\"", "\"__CPROVER_requires\"",
977  "\"__CPROVER_ensures\"", "\"==>\"", "\"<==>\"", "\"^^\"", "\"TRUE\"",
978  "\"FALSE\"", "\"__real__\"", "\"__imag__\"", "\"_Alignas\"",
979  "\"_Atomic\"", "\"_Atomic()\"", "\"_Generic\"", "\"_Imaginary\"",
980  "\"_Noreturn\"", "\"_Static_assert\"", "\"_Thread_local\"",
981  "\"nullptr\"", "\"constexpr\"", "TOK_SCANNER_ERROR", "TOK_SCANNER_EOF",
982  "\"catch\"", "\"char16_t\"", "\"char32_t\"", "\"class\"", "\"delete\"",
983  "\"decltype\"", "\"explicit\"", "\"friend\"", "\"mutable\"",
984  "\"namespace\"", "\"new\"", "\"noexcept\"", "\"operator\"",
985  "\"private\"", "\"protected\"", "\"public\"", "\"template\"", "\"this\"",
986  "\"throw\"", "\"typeid\"", "\"typename\"", "\"try\"", "\"using\"",
987  "\"virtual\"", "\"::\"", "\".*\"", "\"->*\"", "TOK_UNARY_TYPE_PREDICATE",
988  "TOK_BINARY_TYPE_PREDICATE", "\"__uuidof\"", "\"__if_exists\"",
989  "\"__if_not_exists\"", "\"__underlying_type\"", "'('", "')'", "','",
990  "':'", "'.'", "'['", "']'", "'{'", "'}'", "'&'", "'*'", "'+'", "'-'",
991  "'~'", "'!'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "'='",
992  "';'", "$accept", "grammar", "identifier", "typedef_name", "integer",
993  "floating", "character", "string", "constant", "primary_expression",
994  "generic_selection", "generic_assoc_list", "generic_association",
995  "gcc_builtin_expressions", "clang_builtin_expressions",
996  "cw_builtin_expressions", "offsetof", "offsetof_member_designator",
997  "quantifier_expression", "loop_invariant_opt", "requires_opt",
998  "ensures_opt", "statement_expression", "postfix_expression",
999  "member_name", "argument_expression_list", "unary_expression",
1000  "cast_expression", "multiplicative_expression", "additive_expression",
1001  "shift_expression", "relational_expression", "equality_expression",
1002  "and_expression", "exclusive_or_expression", "inclusive_or_expression",
1003  "logical_and_expression", "logical_xor_expression",
1004  "logical_or_expression", "logical_implication_expression",
1005  "logical_equivalence_expression", "conditional_expression",
1006  "assignment_expression", "comma_expression", "constant_expression",
1007  "comma_expression_opt", "declaration", "static_assert_declaration",
1008  "default_declaring_list", "@1", "@2", "$@3", "post_declarator_attribute",
1009  "post_declarator_attributes", "post_declarator_attributes_opt",
1010  "declaring_list", "@4", "@5", "$@6", "declaration_specifier",
1011  "type_specifier", "declaration_qualifier_list", "type_qualifier_list",
1012  "attribute_type_qualifier_list", "declaration_qualifier",
1013  "type_qualifier", "alignas_specifier", "attribute_or_type_qualifier",
1014  "attribute_or_type_qualifier_or_storage_class",
1015  "attribute_type_qualifier_storage_class_list",
1016  "basic_declaration_specifier", "basic_type_specifier",
1017  "sue_declaration_specifier", "sue_type_specifier",
1018  "typedef_declaration_specifier", "typeof_declaration_specifier",
1019  "atomic_declaration_specifier", "typedef_type_specifier",
1020  "typeof_specifier", "typeof_type_specifier", "atomic_specifier",
1021  "atomic_type_specifier", "msc_decl_identifier", "msc_decl_modifier",
1022  "msc_declspec_seq", "msc_declspec", "msc_declspec_opt", "storage_class",
1023  "basic_type_name", "elaborated_type_name", "array_of_construct",
1024  "pragma_packed", "aggregate_name", "$@7", "$@8", "$@9", "aggregate_key",
1025  "gcc_type_attribute", "gcc_attribute", "gcc_attribute_list",
1026  "gcc_attribute_specifier", "gcc_type_attribute_opt",
1027  "gcc_type_attribute_list", "member_declaration_list_opt",
1028  "member_declaration_list", "member_declaration",
1029  "member_default_declaring_list", "member_declaring_list",
1030  "member_declarator", "member_identifier_declarator",
1031  "bit_field_size_opt", "bit_field_size", "enum_name", "$@10", "$@11",
1032  "enum_key", "enumerator_list_opt", "enumerator_list",
1033  "enumerator_declaration", "enumerator_value_opt", "parameter_type_list",
1034  "KnR_parameter_list", "KnR_parameter", "parameter_list",
1035  "parameter_declaration", "identifier_or_typedef_name", "type_name",
1036  "initializer_opt", "initializer", "initializer_list",
1037  "initializer_list_opt", "designated_initializer", "designator",
1038  "statement", "declaration_statement", "labeled_statement",
1039  "statement_attribute", "compound_statement", "compound_scope",
1040  "statement_list", "expression_statement", "selection_statement",
1041  "declaration_or_expression_statement", "iteration_statement", "$@12",
1042  "jump_statement", "gcc_local_label_statement", "gcc_local_label_list",
1043  "gcc_local_label", "gcc_asm_statement", "msc_asm_statement",
1044  "msc_seh_statement", "cprover_exception_statement",
1045  "volatile_or_goto_opt", "gcc_asm_commands", "gcc_asm_assembler_template",
1046  "gcc_asm_outputs", "gcc_asm_output", "gcc_asm_output_list",
1047  "gcc_asm_inputs", "gcc_asm_input", "gcc_asm_input_list",
1048  "gcc_asm_clobbered_registers", "gcc_asm_clobbered_register",
1049  "gcc_asm_clobbered_registers_list", "gcc_asm_labels",
1050  "gcc_asm_labels_list", "gcc_asm_label", "translation_unit",
1051  "external_definition_list", "external_definition", "asm_definition",
1052  "function_definition", "function_body", "KnR_parameter_header_opt",
1053  "KnR_parameter_header", "KnR_parameter_declaration",
1054  "KnR_declaration_qualifier_list", "KnR_basic_declaration_specifier",
1055  "KnR_typedef_declaration_specifier", "KnR_sue_declaration_specifier",
1056  "KnR_declaration_specifier", "KnR_parameter_declaring_list",
1057  "function_head", "declarator", "paren_attribute_declarator",
1058  "typedef_declarator", "parameter_typedef_declarator",
1059  "clean_typedef_declarator", "clean_postfix_typedef_declarator",
1060  "paren_typedef_declarator", "paren_postfix_typedef_declarator",
1061  "simple_paren_typedef_declarator", "identifier_declarator",
1062  "unary_identifier_declarator", "postfix_identifier_declarator",
1063  "paren_identifier_declarator", "abstract_declarator",
1064  "parameter_abstract_declarator", "postfixing_abstract_declarator",
1065  "$@13", "parameter_postfixing_abstract_declarator", "$@14",
1066  "array_abstract_declarator", "unary_abstract_declarator",
1067  "parameter_unary_abstract_declarator", "postfix_abstract_declarator",
1068  "parameter_postfix_abstract_declarator", YY_NULLPTR
1069 };
1070 #endif
1071 
1072 # ifdef YYPRINT
1073 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1074  (internal) symbol number NUM (which must be that of a token). */
1075 static const yytype_uint16 yytoknum[] =
1076 {
1077  0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1078  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1079  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1080  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1081  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1082  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1083  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1084  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1085  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1086  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1087  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1088  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1089  375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1090  385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1091  395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1092  405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1093  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1094  425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1095  435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1096  445, 446, 447, 448, 449, 450, 451, 40, 41, 44,
1097  58, 46, 91, 93, 123, 125, 38, 42, 43, 45,
1098  126, 33, 47, 37, 60, 62, 94, 124, 63, 61,
1099  59
1100 };
1101 # endif
1102 
1103 #define YYPACT_NINF -955
1104 
1105 #define yypact_value_is_default(Yystate) \
1106  (!!((Yystate) == (-955)))
1107 
1108 #define YYTABLE_NINF -584
1109 
1110 #define yytable_value_is_error(Yytable_value) \
1111  0
1112 
1113  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1114  STATE-NUM. */
1115 static const yytype_int16 yypact[] =
1116 {
1117  1964, -955, -955, -955, -955, -955, -955, -955, -955, -955,
1118  -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
1119  -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
1120  -955, -955, -137, 1009, -955, -955, -955, -955, -955, -955,
1121  -955, -955, -955, -955, -955, -955, -955, -121, -108, -38,
1122  7, -955, 57, 32, 101, 111, -955, -955, 217, 164,
1123  -955, 167, -955, 170, -955, 152, 278, 3826, 152, -955,
1124  387, -955, 24, -955, 172, -42, -27, 67, 582, 2335,
1125  2335, -955, -955, 6330, 6330, 6353, 6353, 6353, 6353, 6353,
1126  6353, 1199, 1387, 1199, 1387, -955, -955, 24, -955, -955,
1127  -955, 24, -955, -955, 24, -955, 1964, -955, -955, -955,
1128  255, -955, -955, -955, 80, 4444, 732, 1391, 80, -9,
1129  -955, -955, -955, -955, -955, -955, -955, -955, 336, 204,
1130  5143, 21, 24, 5143, 5143, 5143, -955, 4444, 24, 5143,
1131  208, 121, 214, 3826, -955, -955, -955, -955, -955, -955,
1132  -955, -955, 24, -955, 152, -955, 24, -955, -955, 851,
1133  -955, 1066, 24, -955, -955, 24, 24, -955, 24, -955,
1134  -955, -93, 24, -955, 1199, 1199, -955, 24, -955, -955,
1135  19, 24, 24, -955, 24, 24, -955, -955, -955, 24,
1136  24, 24, 24, 24, 1123, 24, 1123, 24, -955, 306,
1137  11, -955, 231, 297, 9, 3579, -955, -955, 233, 5280,
1138  5314, 5314, 11, -955, -955, -955, -955, 260, 274, 279,
1139  286, 309, 5417, -955, -955, -955, -955, 5143, 5143, 312,
1140  4341, 5143, 5143, 5143, 5143, 5143, 5143, -955, -955, -955,
1141  -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
1142  -955, 51, -955, 44, 99, -19, 202, 12, 370, 308,
1143  302, 320, 480, 394, -21, -955, -128, -955, -955, 235,
1144  6578, 345, 1014, 1504, -955, -22, 352, 354, 80, 732,
1145  1720, -955, -955, -955, -955, 239, -955, -9, 326, -955,
1146  362, 1597, 256, -955, -955, -955, -955, -955, 379, -955,
1147  23, 382, 122, 159, 171, 303, 402, 405, 407, 80,
1148  -955, -955, -955, -955, -955, -955, 1009, -955, -955, -955,
1149  -955, -955, -955, 392, -955, 1123, 1123, -955, 392, -955,
1150  -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
1151  -955, 11, -955, -955, 425, 27, 5143, 435, -955, 6037,
1152  4, 5880, -955, 4547, -955, 433, -955, -955, 3730, -955,
1153  -955, 5177, 4341, -955, 4341, -955, -955, -955, -955, 24,
1154  5143, 24, 5143, 24, 4341, -955, 439, 444, 5566, 5566,
1155  -955, -955, 5143, 313, 458, 461, 473, -955, -955, -955,
1156  -955, -955, -955, 11, -955, -955, 4581, 11, 5143, 5143,
1157  5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
1158  5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
1159  5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
1160  5143, 4697, -955, 5143, 224, 2642, 6665, 1199, 1199, -955,
1161  -955, -955, 138, 1014, 483, 80, 80, 496, 140, 1014,
1162  -955, -955, 663, 684, 509, -955, 4731, 490, 516, -955,
1163  -955, 521, 525, -955, -955, 528, 540, -955, -955, -955,
1164  -955, -955, -955, 334, -955, 532, -955, -955, -955, -955,
1165  545, 548, -955, -955, -955, 5143, -955, 392, -9, 392,
1166  392, 4731, -955, -955, 531, 552, 11, -955, 566, -955,
1167  578, 5143, -955, -955, 1009, 6486, 1387, 6330, 6353, -955,
1168  6037, -955, 6189, 6330, 6353, -955, 1009, 39, -955, 369,
1169  -955, 602, 602, 2178, 2178, 594, 597, -955, -955, -955,
1170  -955, 600, -955, 4834, 610, 618, 622, 626, 601, 631,
1171  635, 639, 641, 5566, 5566, 1659, 67, 582, 2335, 2335,
1172  1659, 643, -955, 4937, -955, 2799, -955, -955, -955, -955,
1173  391, -955, -955, 174, -955, -955, -955, -955, -955, -955,
1174  -955, -955, -955, -955, -955, -955, -955, -955, 99, 99,
1175  -19, -19, 202, 202, 202, 202, 12, 12, 370, 308,
1176  302, 320, 480, 394, -955, -955, 5143, 393, -955, 674,
1177  988, -955, -955, -955, -955, -955, -955, -955, 80, -955,
1178  -955, -955, -955, 254, -955, -955, 336, 4238, -955, -955,
1179  -955, 5143, 5143, 4, 777, 781, 651, 1597, 655, 656,
1180  637, 5143, 5143, 659, -955, -955, -955, -955, -955, 381,
1181  658, 24, 660, 661, -955, 24, 11, -955, 666, -955,
1182  -955, 24, 24, -955, 24, -955, 24, 11, 11, 24,
1183  24, 24, -955, 1009, -955, 6037, 4, 720, 1331, 152,
1184  -955, 24, -955, -955, -955, -955, -955, 24, -955, 783,
1185  3756, 24, -955, 24, -955, 6037, 5723, -955, -955, -955,
1186  670, 670, -955, 24, 24, 24, 11, 670, 5143, 5143,
1187  5143, -955, -9, -9, -955, -955, -955, 83, 4238, -955,
1188  647, 5143, 662, 675, 3217, -955, 5040, 682, 3881, 689,
1189  695, 688, 239, 697, 11, -31, -955, -955, 677, -955,
1190  -955, 701, -49, 703, 686, -955, 704, -955, -955, -955,
1191  -955, -955, 3008, -955, -955, -955, -955, -955, -955, -955,
1192  -955, -955, -955, 5143, -955, -955, 5143, 709, 712, 714,
1193  988, -955, -955, -955, -955, 718, 726, 11, 5143, 733,
1194  737, -955, 721, 727, -955, 3985, 411, 416, 740, 742,
1195  745, -955, -955, -955, -955, 266, 181, 187, -955, 392,
1196  -955, 729, 6578, 741, 650, -955, 42, 58, 381, -955,
1197  24, 11, 735, 747, -955, -955, -955, -955, -955, 24,
1198  24, -955, -955, -955, -955, -955, 6037, -955, -955, 757,
1199  758, 1331, -955, -955, -955, 3756, -955, -955, -955, -955,
1200  -955, 759, 762, 765, 35, -955, -74, 55, 771, 421,
1201  -955, 772, 766, 770, -955, -4, -955, 3217, 943, 786,
1202  764, 68, 5143, -955, 87, 5143, 5143, -955, -134, 789,
1203  97, -955, -955, 919, 510, -955, 215, -955, 3217, -955,
1204  -955, -955, -955, -955, 80, 80, -955, -955, -3, 791,
1205  -955, 62, 4731, 4019, -955, 11, 5143, 4731, -955, -955,
1206  -955, -955, -955, -955, 436, -955, -955, -955, -955, 728,
1207  2491, 24, -955, 98, -955, 728, -955, 784, -955, -955,
1208  5143, -955, 24, -955, -955, 92, -955, -955, -955, -955,
1209  -955, 11, -955, 11, 5143, -955, -955, 5143, -955, 83,
1210  5143, 4135, -955, 5143, 3217, -955, 795, 3426, -955, -955,
1211  472, -955, 485, 803, 336, 925, 1458, 11, -955, 799,
1212  -955, 809, -955, -955, 792, -955, -955, -955, 11, 814,
1213  -955, 815, 47, 816, 5143, -955, -955, -955, -955, -955,
1214  82, -955, -955, 266, 5143, -955, 24, 819, -955, 24,
1215  819, -955, -955, -955, 24, -955, -955, 822, -955, -955,
1216  -955, 212, -955, -955, -955, -955, 827, -955, 5143, -955,
1217  -955, 5143, 3217, 3217, 886, 831, 825, 833, -955, -955,
1218  -955, 5143, -955, -955, -955, 832, 5143, -3, 11, 837,
1219  -955, 839, 336, 836, 291, 5143, -955, 821, -955, -955,
1220  24, -955, -955, 24, -955, -955, -955, 3217, 492, 824,
1221  1027, -955, 845, 3217, 834, -955, 853, 533, 336, 554,
1222  -955, 849, 5143, 47, -955, -955, 857, 11, -955, -955,
1223  296, 266, -955, -955, -955, -955, 886, 5143, 3217, 5143,
1224  -955, -955, 838, -955, 862, -955, 336, 567, -955, 336,
1225  -955, 861, -955, -955, 866, 846, 871, -955, 876, 337,
1226  -955, 5143, 878, -955, -955, 11, -955, -955, 886, -955,
1227  -955, 585, 5143, -955, 3217, -955, 587, -955, -955
1228 };
1229 
1230  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1231  Performed when YYTABLE does not specify something else to do. Zero
1232  means the default is an error. */
1233 static const yytype_uint16 yydefact[] =
1234 {
1235  499, 255, 287, 288, 267, 183, 283, 355, 253, 270,
1236  257, 262, 269, 256, 184, 268, 284, 254, 304, 252,
1237  305, 285, 286, 185, 3, 5, 263, 264, 265, 266,
1238  187, 188, 0, 0, 271, 272, 273, 276, 274, 275,
1239  277, 278, 279, 280, 281, 282, 259, 0, 0, 0,
1240  0, 261, 0, 0, 0, 0, 186, 292, 0, 0,
1241  182, 0, 325, 0, 258, 0, 0, 0, 0, 506,
1242  0, 574, 326, 504, 0, 0, 0, 0, 0, 0,
1243  0, 175, 190, 160, 165, 161, 166, 162, 163, 164,
1244  167, 228, 168, 233, 169, 260, 170, 326, 211, 295,
1245  293, 326, 172, 294, 326, 2, 500, 501, 505, 503,
1246  44, 534, 565, 567, 566, 326, 0, 0, 547, 151,
1247  541, 540, 546, 549, 550, 545, 555, 539, 0, 0,
1248  0, 0, 326, 0, 0, 0, 4, 326, 326, 0,
1249  0, 0, 0, 0, 193, 178, 194, 568, 569, 1,
1250  328, 223, 327, 137, 0, 139, 326, 138, 135, 151,
1251  136, 151, 326, 174, 181, 326, 326, 180, 326, 208,
1252  173, 141, 326, 176, 229, 234, 171, 326, 212, 177,
1253  143, 326, 326, 206, 326, 326, 210, 213, 209, 326,
1254  326, 326, 326, 326, 231, 326, 236, 326, 204, 250,
1255  350, 502, 0, 46, 587, 0, 571, 581, 585, 0,
1256  0, 0, 0, 6, 7, 8, 9, 0, 0, 0,
1257  0, 0, 0, 433, 433, 433, 433, 0, 0, 0,
1258  326, 0, 0, 0, 0, 0, 0, 14, 10, 11,
1259  12, 13, 15, 49, 23, 18, 19, 20, 21, 22,
1260  17, 63, 77, 81, 85, 88, 91, 96, 99, 101,
1261  103, 105, 107, 109, 111, 113, 115, 118, 130, 0,
1262  0, 0, 0, 0, 563, 0, 0, 0, 0, 0,
1263  0, 544, 551, 558, 548, 466, 150, 152, 0, 148,
1264  0, 320, 0, 239, 237, 238, 249, 245, 240, 246,
1265  0, 0, 0, 0, 0, 0, 0, 0, 0, 572,
1266  575, 508, 179, 570, 329, 145, 0, 153, 155, 215,
1267  218, 221, 200, 391, 224, 230, 235, 205, 391, 202,
1268  203, 201, 207, 216, 219, 222, 225, 214, 217, 220,
1269  251, 298, 385, 386, 0, 326, 0, 0, 433, 586,
1270  0, 0, 589, 0, 132, 0, 195, 198, 0, 197,
1271  196, 0, 326, 73, 326, 64, 65, 455, 67, 326,
1272  0, 326, 0, 326, 326, 75, 0, 0, 0, 0,
1273  79, 80, 0, 0, 0, 0, 0, 66, 68, 69,
1274  70, 71, 72, 0, 55, 56, 0, 0, 0, 0,
1275  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1276  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1277  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1278  0, 0, 226, 0, 387, 389, 165, 166, 167, 168,
1279  169, 227, 0, 0, 0, 553, 560, 0, 0, 0,
1280  552, 559, 468, 467, 0, 149, 0, 0, 309, 307,
1281  306, 0, 0, 312, 313, 0, 0, 316, 317, 318,
1282  319, 321, 322, 0, 189, 0, 248, 247, 296, 289,
1283  0, 0, 191, 192, 232, 0, 573, 391, 151, 391,
1284  391, 0, 142, 144, 0, 302, 356, 354, 0, 81,
1285  0, 0, 510, 509, 0, 0, 175, 165, 167, 516,
1286  582, 513, 0, 528, 529, 530, 0, 0, 368, 0,
1287  366, 371, 378, 375, 382, 0, 364, 369, 591, 592,
1288  590, 0, 199, 0, 0, 0, 0, 0, 0, 0,
1289  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1290  0, 0, 16, 0, 48, 133, 59, 60, 54, 51,
1291  0, 61, 53, 0, 120, 121, 122, 123, 124, 125,
1292  126, 127, 128, 129, 119, 82, 83, 84, 86, 87,
1293  89, 90, 94, 95, 92, 93, 97, 98, 100, 102,
1294  104, 106, 108, 110, 112, 114, 0, 0, 131, 587,
1295  596, 600, 388, 578, 576, 577, 390, 564, 542, 554,
1296  562, 561, 556, 0, 469, 470, 0, 399, 393, 157,
1297  507, 0, 0, 0, 0, 0, 0, 320, 0, 0,
1298  0, 0, 0, 0, 146, 158, 154, 156, 392, 326,
1299  0, 326, 0, 357, 358, 326, 356, 45, 0, 532,
1300  517, 326, 326, 514, 326, 518, 326, 0, 0, 326,
1301  326, 326, 531, 0, 515, 511, 0, 587, 601, 605,
1302  374, 326, 372, 613, 579, 580, 381, 326, 379, 587,
1303  601, 326, 376, 326, 383, 511, 0, 593, 595, 594,
1304  74, 0, 32, 326, 326, 326, 0, 76, 0, 0,
1305  433, 39, 151, 151, 141, 143, 41, 326, 399, 78,
1306  0, 0, 0, 0, 133, 444, 0, 0, 0, 0,
1307  0, 0, 466, 0, 0, 0, 433, 462, 0, 433,
1308  430, 14, 326, 134, 0, 423, 0, 434, 412, 410,
1309  422, 411, 133, 413, 414, 415, 416, 418, 417, 419,
1310  420, 421, 52, 0, 50, 117, 0, 0, 0, 0,
1311  597, 598, 543, 557, 476, 0, 471, 0, 0, 14,
1312  0, 400, 398, 0, 396, 0, 0, 0, 0, 0,
1313  0, 324, 323, 242, 241, 0, 0, 0, 140, 391,
1314  336, 0, 0, 0, 326, 332, 0, 0, 326, 303,
1315  326, 360, 362, 0, 47, 520, 523, 524, 519, 326,
1316  326, 521, 522, 525, 533, 584, 512, 367, 586, 0,
1317  0, 602, 603, 373, 380, 602, 377, 384, 588, 365,
1318  370, 0, 0, 0, 0, 34, 0, 0, 0, 0,
1319  25, 0, 398, 0, 449, 0, 448, 133, 0, 0,
1320  0, 0, 0, 450, 0, 0, 133, 432, 0, 0,
1321  0, 453, 459, 0, 0, 463, 0, 436, 133, 431,
1322  435, 62, 116, 608, 606, 607, 599, 147, 478, 472,
1323  404, 0, 0, 0, 394, 0, 0, 0, 402, 310,
1324  308, 311, 314, 315, 0, 290, 291, 159, 337, 343,
1325  0, 326, 333, 0, 335, 343, 334, 0, 351, 359,
1326  0, 361, 326, 526, 527, 611, 612, 604, 29, 30,
1327  31, 0, 33, 0, 0, 38, 40, 0, 24, 326,
1328  0, 0, 57, 0, 133, 428, 0, 133, 447, 446,
1329  0, 451, 0, 0, 0, 0, 320, 0, 452, 0,
1330  433, 0, 433, 433, 172, 425, 610, 609, 0, 0,
1331  481, 477, 484, 473, 0, 405, 403, 395, 397, 409,
1332  0, 401, 243, 0, 0, 340, 326, 347, 338, 326,
1333  347, 297, 339, 341, 326, 363, 353, 587, 614, 37,
1334  35, 0, 28, 26, 27, 58, 0, 426, 0, 440,
1335  441, 133, 133, 133, 42, 0, 0, 0, 454, 458,
1336  461, 0, 464, 465, 424, 0, 0, 0, 0, 0,
1337  487, 483, 490, 474, 0, 0, 407, 0, 349, 344,
1338  326, 348, 346, 326, 299, 297, 36, 133, 0, 0,
1339  437, 439, 0, 133, 0, 457, 0, 0, 0, 0,
1340  482, 0, 0, 0, 491, 492, 489, 495, 475, 406,
1341  0, 0, 342, 345, 301, 427, 42, 133, 133, 0,
1342  442, 456, 0, 433, 0, 479, 0, 0, 488, 0,
1343  498, 494, 496, 408, 0, 0, 0, 438, 0, 0,
1344  460, 0, 0, 485, 493, 0, 244, 443, 42, 43,
1345  429, 0, 0, 497, 133, 480, 0, 445, 486
1346 };
1347 
1348  /* YYPGOTO[NTERM-NUM]. */
1349 static const yytype_int16 yypgoto[] =
1350 {
1351  -955, -955, 0, 30, -955, -955, -955, -103, -955, -422,
1352  -955, -955, 155, -955, -955, -955, -955, -955, -955, -954,
1353  -955, -955, -955, -955, -365, -955, 228, 874, 374, 395,
1354  146, 406, 665, 667, 668, 664, 672, 669, -955, 403,
1355  -955, -340, 977, 347, -203, -835, 26, -583, -955, -955,
1356  -955, -955, 805, -955, -112, -955, -955, -955, -955, 15,
1357  34, 31, 95, -64, -44, 1406, -955, -139, 736, -955,
1358  -955, -114, -955, -23, -955, -955, -955, 20, -63, 223,
1359  -60, 385, -463, 800, -955, 904, -955, 1160, 126, -57,
1360  -955, 76, -955, -955, -955, -955, 605, -955, 486, -955,
1361  149, 981, -102, 314, -955, 324, -955, -955, 209, 218,
1362  142, -570, -955, -955, -955, 608, 478, -955, 325, -955,
1363  -955, -955, 462, -955, 441, -199, 636, -292, -384, 422,
1364  423, -763, -955, -415, 192, 46, -955, -195, 538, -955,
1365  196, -955, -955, -955, -955, -955, -955, -955, -207, -955,
1366  -955, -955, -955, 414, 194, -955, -955, 125, -955, -955,
1367  86, -955, -955, 65, -955, -955, -955, 64, -955, -955,
1368  1048, -955, -955, -955, 476, 820, -501, -955, -955, -955,
1369  -955, -955, -955, -955, 114, 1047, -955, -109, -92, -955,
1370  -29, -955, -89, 59, -55, -955, -54, -397, -469, 206,
1371  -955, 500, -955, -955, 576, -545, 584, -497
1372 };
1373 
1374  /* YYDEFGOTO[NTERM-NUM]. */
1375 static const yytype_int16 yydefgoto[] =
1376 {
1377  -1, 70, 237, 118, 238, 239, 240, 241, 242, 243,
1378  244, 839, 840, 245, 246, 247, 248, 834, 249, 1043,
1379  203, 348, 250, 251, 770, 560, 252, 253, 254, 255,
1380  256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1381  266, 267, 268, 733, 618, 734, 735, 74, 75, 323,
1382  328, 487, 286, 287, 317, 76, 489, 490, 789, 546,
1383  547, 548, 549, 280, 163, 81, 82, 145, 357, 358,
1384  83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1385  93, 94, 298, 299, 300, 95, 341, 96, 97, 98,
1386  99, 1034, 100, 494, 640, 641, 101, 471, 472, 473,
1387  150, 270, 152, 793, 794, 795, 796, 797, 975, 978,
1388  1030, 976, 103, 344, 498, 104, 642, 643, 644, 911,
1389  525, 519, 520, 526, 527, 736, 841, 492, 771, 772,
1390  773, 774, 775, 737, 738, 739, 740, 741, 386, 742,
1391  743, 744, 1001, 745, 849, 746, 747, 860, 1080, 748,
1392  749, 750, 751, 454, 765, 766, 879, 960, 961, 963,
1393  1020, 1021, 1023, 1055, 1056, 1058, 1081, 1082, 105, 106,
1394  107, 108, 109, 503, 815, 816, 511, 512, 513, 514,
1395  515, 516, 517, 110, 977, 120, 121, 122, 123, 124,
1396  125, 126, 448, 127, 112, 113, 114, 602, 822, 447,
1397  350, 207, 351, 208, 604, 674, 605, 675
1398 };
1399 
1400  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1401  positive, shift that token. If negative, reduce the rule whose
1402  number is the opposite. If YYTABLE_NINF, syntax error. */
1403 static const yytype_int16 yytable[] =
1404 {
1405  71, 345, 355, 143, 312, 368, 500, 288, 282, 653,
1406  140, 141, 630, 367, 275, 77, 165, 174, 430, 166,
1407  175, 943, 169, 178, 276, 290, 73, 278, 558, 428,
1408  72, 79, 562, 71, 78, 385, 493, 862, 606, 181,
1409  24, 186, 48, 189, 190, 191, 293, 933, 293, 318,
1410  -537, -537, 672, 678, 682, 684, 791, 417, 418, 111,
1411  115, 140, 141, 944, 216, 71, 24, 71, 71, 48,
1412  945, -583, 619, 24, 25, 921, 128, 71, 71, 71,
1413  71, 285, 48, 294, 295, 294, 295, 277, 283, 129,
1414  431, 393, 394, 395, 838, 80, 399, 400, 401, 402,
1415  403, 404, 405, 406, 407, 408, 71, 638, 62, 162,
1416  172, -537, 1085, 964, 216, 48, 71, 71, 48, 58,
1417  968, 77, 819, 701, 429, 433, 147, 148, 706, 24,
1418  25, 925, 73, 1025, 819, 62, 72, 79, 171, 180,
1419  78, 312, 495, 71, 1104, 58, 274, 119, 62, 102,
1420  -583, -386, 58, 502, 71, 531, 436, 154, 534, 130,
1421  24, 648, -538, -538, 282, 111, 1039, 385, 968, 385,
1422  820, 450, 156, 863, 48, 65, 147, 275, 155, 385,
1423  276, 62, 820, 442, 62, 67, 194, 276, 196, 413,
1424  414, 159, 161, 157, 68, 634, 934, 636, 637, 958,
1425  342, 80, 313, 761, 131, 168, 177, 349, 58, 182,
1426  185, 791, 342, 315, 24, 791, 146, 140, 141, 296,
1427  297, 476, 297, -538, 140, 141, 419, 420, 170, 179,
1428  343, -352, 1086, 922, 133, 507, 923, 924, 663, 58,
1429  62, 903, 343, 277, 283, 415, 416, 437, 396, 1018,
1430  277, 451, 397, 398, 433, 102, 755, 905, 452, 664,
1431  926, 433, 904, 409, 116, 965, 146, 433, 289, 325,
1432  326, 132, 71, 71, 117, 71, 453, 204, 906, 71,
1433  71, 433, 205, 68, 136, 1026, 433, 158, 939, 987,
1434  438, 293, 146, 58, 205, 65, 947, 645, 974, 848,
1435  72, 314, 274, 134, 434, 67, 410, 941, 289, 274,
1436  289, 411, 412, 135, 68, 653, 71, 948, 204, 310,
1437  206, 433, 894, 205, 284, 479, 437, 870, 294, 295,
1438  979, 835, 147, 979, 444, 204, 607, 204, 612, 313,
1439  205, 342, 205, 179, 711, 179, 142, 206, 713, 65,
1440  518, 276, 917, 952, 360, 953, 917, 276, 433, 67,
1441  613, 137, 480, 876, 138, 435, 521, 139, 68, 508,
1442  433, 343, 174, 433, 481, 175, 635, 754, 178, 72,
1443  433, 72, 523, 504, 895, 522, 433, 149, 140, 141,
1444  896, 888, 153, 556, 140, 141, 507, 556, 202, 24,
1445  25, 291, 880, 216, 545, 550, 309, 1031, 72, 72,
1446  1031, 433, 670, 676, 277, 1036, 872, 421, 422, 311,
1447  277, 599, 146, 557, 314, 50, 205, 557, 346, 146,
1448  488, 600, 935, 432, 433, 361, 289, 363, 365, 366,
1449  601, 347, 174, 71, 505, 175, 524, 645, 178, 71,
1450  375, 204, 763, 955, 474, 433, 205, 369, 809, 810,
1451  165, 174, 269, 166, 175, 172, 169, 178, 655, 659,
1452  661, 370, 48, 274, 179, 179, 371, 292, 58, 274,
1453  302, 303, 304, 372, 305, 165, 174, 437, 166, 175,
1454  433, 169, 178, 439, 1059, 433, 342, 897, 966, 1083,
1455  102, 482, 433, 971, 71, 385, 373, 360, 845, 382,
1456  1027, 552, 433, 764, 423, 486, 71, 861, 424, 997,
1457  969, 71, 71, 71, 71, 367, 343, 102, 102, 426,
1458  508, 864, 626, 627, 866, 172, 760, 425, 62, 63,
1459  72, 427, 654, 441, 504, 456, 71, 71, 71, 71,
1460  445, 507, 446, 162, 172, 731, 989, 293, 990, 282,
1461  457, 177, 185, 582, 583, 584, 585, 665, 666, 698,
1462  699, 507, 439, 72, 72, 276, 475, 383, 162, 172,
1463  671, 677, 681, 683, 179, 732, -330, 1040, 1041, 752,
1464  753, 318, 433, 756, 294, 295, 628, 478, 1084, 629,
1465  483, 790, 645, 484, 821, 505, 485, 704, 705, 889,
1466  433, 491, 140, 141, 890, 433, 825, 769, 649, 928,
1467  929, 312, 1065, 778, 140, 141, 950, 951, 1070, 496,
1468  662, 177, 501, 185, 972, 973, 529, 289, 656, 660,
1469  603, 603, 437, 543, 24, 25, 342, 557, 544, 168,
1470  177, 609, 610, 1087, 179, 440, 553, 342, 342, 554,
1471  702, 703, 437, 71, 24, 25, 518, 71, 71, 71,
1472  1002, 433, 170, 179, 168, 177, 343, 555, 436, 71,
1473  71, 608, 312, 1003, 433, 508, 312, 343, 343, 1107,
1474  1066, 433, 102, 102, 611, 72, 556, 170, 179, 504,
1475  614, 521, 507, 615, 102, 508, 616, 985, 769, 383,
1476  620, 383, 450, 621, 731, 72, 72, 523, 622, 504,
1477  522, 383, 623, 58, 342, 624, 557, 147, 148, 1088,
1478  996, 1073, 433, 439, 440, 639, -583, 625, 557, 147,
1479  1008, 48, 731, 58, 732, 563, 850, 631, 367, 146,
1480  632, 271, 1075, 433, 343, 1010, -300, 1012, 1013, 1015,
1481  505, 376, 377, 378, 379, 1093, 433, 556, 301, 437,
1482  646, 1028, 732, 306, 307, 959, 647, 814, 597, 116,
1483  505, 524, 24, 1105, 433, 1108, 433, 578, 579, 117,
1484  24, 25, 685, 437, 24, 25, 686, 557, 68, 667,
1485  693, 342, 160, 687, 205, 757, 603, 62, 63, 668,
1486  580, 581, 438, 689, 762, -583, 690, 146, 669, 1051,
1487  691, 71, 72, 48, 692, 71, 899, 586, 587, 146,
1488  694, 343, 594, 595, 695, 102, 508, 174, 696, 697,
1489  175, 764, 707, 178, 779, 24, 72, 731, 780, 781,
1490  504, 289, 289, 783, 784, -331, 785, 788, 367, 1019,
1491  801, 58, 798, 102, 804, 800, 384, 844, 731, 58,
1492  790, 599, 349, 58, 708, 847, 205, 732, 1090, 852,
1493  313, 600, 846, 769, 313, 556, 855, 900, 439, 62,
1494  601, 102, 856, 857, 859, 440, 367, 865, 732, 71,
1495  71, -385, 433, 71, 868, 71, 867, 873, 439, 146,
1496  874, 505, 875, 557, 959, 557, 877, 667, 818, 1054,
1497  883, 556, 205, 556, 58, 116, 878, 668, 974, 272,
1498  172, 769, 884, -59, 731, 117, 669, 882, 891, 273,
1499  892, 285, 48, 893, 68, 1074, 901, 342, 68, 898,
1500  1019, 557, 912, 557, 910, 915, 916, 918, 342, 980,
1501  919, 557, 980, 920, 732, 931, 603, 72, 776, 777,
1502  146, 927, 930, 1092, 146, 932, 1054, 343, 786, 787,
1503  679, 818, 936, 937, 938, 205, 946, 949, 343, 984,
1504  680, 962, 998, 1006, -535, -535, 102, 5, 535, 669,
1505  536, 1004, 731, 731, 1009, 537, 1011, 539, 62, 541,
1506  542, 1016, 1014, 14, 1017, 439, 1022, 954, 342, 974,
1507  818, 673, 673, 673, 673, 23, 177, 1037, 1042, 1044,
1508  1045, 1046, 732, 732, 1052, 1048, 1057, 731, 1053, 439,
1509  1061, 1068, 1069, 731, 1067, 836, 837, 383, 343, 179,
1510  440, 1072, 1076, 151, 1071, -535, 1079, 342, 1089, 1091,
1511  1095, 30, 31, 851, 1096, 854, 1097, 732, 731, 1098,
1512  440, 24, 25, 732, 1099, 1102, 24, 25, 198, 48,
1513  956, 957, 199, 102, 993, 200, 102, 343, 588, 342,
1514  591, 589, 455, 590, 532, 342, 49, 593, 732, 592,
1515  477, 380, 381, 340, 731, 387, 388, 389, 390, 391,
1516  392, 1064, 907, 782, 983, 881, 308, 657, 902, 343,
1517  658, 982, 1033, 56, 803, 343, 909, 830, 817, 999,
1518  842, 843, 5, 1000, 732, 1100, 858, 316, 1005, 1078,
1519  59, 60, 1050, 319, 1094, 62, 320, 321, 14, 322,
1520  58, 102, 102, 324, 201, 58, 285, 48, 327, 1103,
1521  23, 828, 329, 330, 281, 331, 332, 673, 673, 510,
1522  333, 334, 335, 336, 337, 758, 338, 440, 339, 673,
1523  673, 0, 354, 759, 0, 599, 102, 0, 0, 0,
1524  205, 0, 102, 0, 0, 600, 30, 31, 0, 940,
1525  0, 440, 942, 0, 601, 0, 116, 0, 5, -536,
1526  -536, 272, 0, 0, 48, 0, 117, 102, 0, 0,
1527  499, 273, 0, 62, 14, 68, 0, 388, 0, 0,
1528  68, 49, 0, 970, 0, 0, 23, 0, 0, 167,
1529  176, 0, 0, 167, 184, 167, 188, 167, 167, 167,
1530  193, 0, 195, 102, 197, 0, 0, 0, 56, 0,
1531  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1532  -536, 991, 30, 31, 0, 59, 60, 0, 0, 0,
1533  62, 0, 0, 0, 575, 576, 577, 499, 499, 499,
1534  499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
1535  499, 499, 499, 499, 499, 0, 0, 49, 0, 0,
1536  0, 1024, 0, 0, 0, 0, 0, 0, 0, 0,
1537  0, 673, 0, 0, 0, 673, 497, 0, 0, 831,
1538  832, 833, 0, 0, 56, 354, 0, 0, 354, 0,
1539  5, 0, 0, 0, 0, 1038, 0, 538, 0, 540,
1540  0, 59, 60, 0, 0, 0, 14, 0, 1047, 551,
1541  0, 0, 0, 1049, 0, 359, 0, 0, 23, 0,
1542  0, 0, 1060, 561, 0, 499, 564, 565, 566, 567,
1543  568, 569, 570, 571, 572, 573, 574, 0, 0, 0,
1544  1, 0, 0, 24, 25, 0, 0, 0, 0, 1077,
1545  5, 0, 0, 8, 30, 31, 0, 388, 10, 0,
1546  598, 13, 0, 0, 0, 988, 14, 17, 0, 0,
1547  19, 0, 48, 0, 0, 0, 0, 709, 23, 0,
1548  0, 0, 0, 354, 0, 0, 0, 0, 1101, 49,
1549  0, 0, 0, 0, 0, 0, 0, 0, 0, 1106,
1550  0, 0, 0, 24, 25, 0, 0, 0, 0, 0,
1551  0, 0, 633, 0, 30, 31, 56, 0, 354, 0,
1552  499, 0, 58, 144, 0, 0, 46, 0, 0, 0,
1553  0, 0, 48, 59, 60, 164, 173, 0, 62, 164,
1554  183, 164, 187, 164, 164, 164, 192, 0, 0, 49,
1555  0, 0, 0, 0, 0, 0, 50, 51, 0, 509,
1556  0, 0, 0, 5, 0, 0, 0, 0, 359, 0,
1557  0, 0, 0, 144, 0, 0, 56, 0, 667, 14,
1558  0, 0, 58, 205, 0, 0, 0, 0, 668, 0,
1559  0, 23, 0, 59, 60, 0, 64, 669, 62, 144,
1560  458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
1561  468, 469, 1007, 470, 0, 0, 24, 25, 0, 0,
1562  0, 0, 0, 0, 0, 0, 0, 30, 31, 0,
1563  0, 0, 0, 0, 0, 0, 0, 0, 279, 0,
1564  0, 0, 0, 0, 354, 48, 0, 0, 117, 0,
1565  173, 0, 173, 0, 0, 0, 0, 68, 0, 0,
1566  0, 356, 49, 0, 0, 0, 0, 0, 0, 0,
1567  792, 0, 799, 0, 0, 0, 802, 0, 0, 0,
1568  499, 0, 805, 806, 0, 807, 0, 808, 0, 56,
1569  811, 812, 813, 0, 0, 58, 0, 0, 0, 0,
1570  0, 0, 823, 0, 0, 0, 59, 60, 824, 0,
1571  0, 62, 826, 0, 827, 0, 650, 651, 652, 0,
1572  509, 0, 167, 167, 167, 0, 0, 0, 0, 144,
1573  0, 0, 0, 167, 176, 354, 144, 0, 354, 458,
1574  459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
1575  469, 443, 470, 0, 0, 0, 0, 0, 167, 176,
1576  0, 273, 0, 151, 0, 0, 0, 0, 0, 0,
1577  68, 24, 0, 213, 214, 215, 216, 0, 0, 5,
1578  871, 173, 173, 0, 0, 0, 0, 0, 0, 0,
1579  0, 0, 0, 0, 0, 14, 0, 0, 0, 0,
1580  0, 0, 354, 0, 0, 506, 0, 23, 0, 0,
1581  0, 0, 0, 0, 356, 0, 0, 0, 217, 218,
1582  219, 220, 221, 0, 0, 792, 0, 0, 0, 792,
1583  0, 908, 24, 25, 0, 223, 224, 225, 226, 0,
1584  913, 914, 0, 30, 31, 0, 0, 0, 0, 0,
1585  58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1586  0, 48, 0, 0, 229, 0, 0, 0, 0, 0,
1587  0, 0, 0, 0, 0, 509, 0, 0, 49, 0,
1588  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589  0, 173, 183, 187, 192, 509, 0, 0, 0, 0,
1590  0, 0, 0, 0, 0, 56, 700, 0, 0, 354,
1591  354, 58, 0, 0, 354, 0, 0, 0, 0, 0,
1592  0, 0, 59, 60, 0, 0, 0, 62, 0, 0,
1593  0, 0, 981, 0, 0, 0, 0, 354, 0, 0,
1594  0, 0, 0, 986, 0, 0, 0, 0, 0, 0,
1595  0, 0, 0, 0, 992, 0, 0, 994, 354, 0,
1596  354, 173, 0, 183, 192, 0, 506, 449, 164, 164,
1597  164, 0, 0, 0, 0, 0, 0, 273, 0, 164,
1598  173, 0, 0, 0, 0, 0, 68, 0, 0, 0,
1599  0, 0, 0, 499, 0, 0, 0, 0, 0, 0,
1600  0, 354, 0, 0, 164, 173, 0, 1029, 0, 0,
1601  1032, 0, 0, 0, 0, 1035, 0, 1, 2, 3,
1602  0, 0, 4, 5, 0, 0, 509, 6, 0, 7,
1603  8, 9, 0, 0, 0, 10, 11, 12, 13, 14,
1604  0, 15, 16, 0, 17, 18, 0, 19, 20, 21,
1605  22, 23, 0, 0, 0, 0, 144, 0, 0, 0,
1606  0, 1062, 0, 0, 1063, 0, 0, 0, 0, 0,
1607  0, 0, 0, 0, 0, 0, 24, 25, 0, 0,
1608  0, 0, 0, 26, 27, 28, 29, 30, 31, 32,
1609  33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1610  43, 44, 45, 46, 47, 48, 0, 0, 0, 0,
1611  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612  0, 506, 49, 0, 144, 0, 0, 0, 0, 0,
1613  0, 0, 0, 50, 51, 0, 144, 0, 0, 0,
1614  0, 506, 0, 0, 0, 52, 53, 54, 55, 56,
1615  57, 0, 0, 0, 0, 58, 0, 0, 0, 0,
1616  0, 0, 0, 0, 0, 0, 59, 60, 61, 0,
1617  0, 62, 63, 64, 0, 0, 0, 0, 0, 0,
1618  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621  0, 65, 0, 0, 0, 0, 144, 0, 66, 0,
1622  0, 67, 0, 0, 0, 0, 0, 0, 0, 0,
1623  68, 1, 2, 3, 69, 0, 4, 5, 0, 0,
1624  0, 6, 0, 7, 8, 9, 0, 0, 0, 10,
1625  11, 12, 13, 14, 0, 15, 16, 0, 17, 18,
1626  0, 19, 20, 21, 22, 23, 0, 0, 0, 0,
1627  0, 0, 506, 0, 0, 0, 0, 144, 0, 0,
1628  0, 144, 0, 0, 0, 0, 0, 0, 0, 0,
1629  24, 25, 0, 0, 0, 0, 0, 26, 27, 28,
1630  29, 30, 31, 32, 0, 34, 35, 36, 37, 38,
1631  39, 40, 41, 42, 43, 44, 45, 46, 0, 48,
1632  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633  0, 0, 0, 0, 0, 0, 49, 0, 0, 0,
1634  0, 0, 0, 0, 0, 0, 0, 50, 51, 0,
1635  0, 0, 0, 0, 0, 0, 173, 0, 0, 52,
1636  53, 54, 55, 56, 57, 0, 0, 0, 0, 58,
1637  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638  59, 60, 61, 0, 0, 62, 0, 64, 1, 2,
1639  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
1640  7, 8, 9, 0, 0, 0, 10, 11, 12, 13,
1641  14, 0, 15, 16, 0, 17, 18, 0, 19, 20,
1642  21, 22, 23, 0, 0, 679, 0, 0, 0, 0,
1643  205, 0, 0, 0, 0, 680, 0, 0, 0, 0,
1644  0, 0, 0, 0, 669, 0, 0, 24, 25, 0,
1645  0, 0, 0, 0, 26, 27, 28, 29, 30, 31,
1646  32, 0, 34, 35, 36, 37, 38, 39, 40, 41,
1647  42, 43, 44, 45, 46, 0, 48, 0, 0, 0,
1648  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649  0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
1650  0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
1651  0, 0, 0, 0, 0, 0, 52, 53, 54, 55,
1652  56, 57, 0, 0, 0, 0, 58, 0, 0, 0,
1653  0, 0, 0, 0, 0, 0, 0, 59, 60, 61,
1654  0, 0, 62, 0, 64, 2, 3, 0, 0, 4,
1655  5, 0, 0, 0, 6, 0, 7, 0, 9, 0,
1656  0, 0, 0, 11, 12, 0, 14, 0, 15, 16,
1657  0, 0, 18, 0, 0, 20, 21, 22, 23, 0,
1658  0, 0, 65, 0, 0, 0, 0, 0, 0, 0,
1659  0, 0, 67, 0, 0, 0, 0, 0, 0, 0,
1660  0, 68, 0, 24, 25, 0, 0, 0, 0, 0,
1661  26, 27, 28, 29, 30, 31, 32, 0, 34, 35,
1662  36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
1663  0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
1664  0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
1665  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667  0, 0, 52, 53, 54, 55, 56, 57, 0, 0,
1668  0, 0, 58, 0, 0, 0, 0, 0, 0, 0,
1669  0, 0, 0, 59, 60, 61, 2, 3, 62, 0,
1670  4, 5, 0, 0, 0, 6, 0, 7, 0, 9,
1671  0, 0, 0, 0, 11, 12, 0, 14, 0, 15,
1672  16, 0, 0, 18, 0, 0, 20, 21, 22, 23,
1673  0, 0, 0, 0, 0, 0, 0, 0, 65, 0,
1674  0, 974, 0, 0, 0, 0, 0, 0, 67, 0,
1675  0, 0, 0, 0, 0, 25, 0, 68, 0, 0,
1676  0, 26, 27, 28, 29, 30, 31, 32, 0, 34,
1677  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1678  45, 0, 0, 48, 0, 0, 0, 0, 0, 0,
1679  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1680  49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682  0, 0, 0, 52, 53, 54, 55, 56, 57, 0,
1683  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684  0, 0, 0, 0, 59, 60, 61, 0, 0, 62,
1685  0, 0, 1, 2, 3, 710, 711, 4, 5, 712,
1686  713, 714, 6, 0, 7, 8, 9, 715, 716, 717,
1687  10, 11, 12, 13, 14, 718, 15, 16, 209, 17,
1688  18, 719, 19, 20, 21, 22, 23, 0, 720, 599,
1689  210, 211, 0, 0, 205, 0, 0, 0, 212, 600,
1690  0, 0, 0, 0, 0, 0, 0, 0, 601, 0,
1691  0, 24, 25, 213, 214, 215, 216, 721, 26, 27,
1692  28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1693  38, 39, 40, 41, 42, 43, 44, 45, 46, 722,
1694  723, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1695  0, 0, 0, 0, 0, 724, 725, 49, 217, 218,
1696  219, 220, 221, 222, 726, 0, 0, 727, 50, 51,
1697  0, 0, 0, 0, 0, 223, 224, 225, 226, 0,
1698  52, 53, 54, 55, 56, 57, 728, 0, 729, 0,
1699  58, 0, 0, 0, 0, 0, 0, 0, 0, 227,
1700  228, 59, 60, 61, 229, 0, 62, 63, 64, 0,
1701  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1703  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704  0, 0, 0, 0, 0, 0, 230, 0, 0, 0,
1705  0, 0, 0, -433, 730, 231, 232, 233, 234, 235,
1706  236, 1, 2, 3, 710, 711, 4, 5, 712, 713,
1707  714, 6, 0, 7, 8, 9, 715, 716, 717, 10,
1708  11, 12, 13, 14, 718, 15, 16, 209, 17, 18,
1709  719, 19, 20, 21, 22, 23, 0, 720, 0, 210,
1710  211, 0, 0, 0, 0, 0, 0, 212, 0, 0,
1711  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712  24, 25, 213, 214, 215, 216, 0, 26, 27, 28,
1713  29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1714  39, 40, 41, 42, 43, 44, 45, 46, 722, 723,
1715  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716  0, 0, 0, 0, 724, 725, 49, 217, 218, 219,
1717  220, 221, 222, 726, 0, 0, 727, 50, 51, 0,
1718  0, 0, 0, 0, 223, 224, 225, 226, 0, 52,
1719  53, 54, 55, 56, 57, 728, 0, 729, 0, 58,
1720  0, 0, 0, 0, 0, 0, 0, 0, 227, 228,
1721  59, 60, 61, 229, 0, 62, 63, 64, 0, 0,
1722  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725  0, 0, 0, 0, 0, 230, 0, 0, 0, 0,
1726  0, 0, -433, 869, 231, 232, 233, 234, 235, 236,
1727  1, 2, 3, 710, 711, 4, 5, 712, 713, 714,
1728  6, 0, 7, 8, 9, 715, 716, 717, 10, 11,
1729  12, 13, 14, 718, 15, 16, 209, 17, 18, 719,
1730  19, 20, 21, 22, 23, 0, 720, 0, 210, 211,
1731  0, 0, 0, 0, 0, 0, 212, 0, 0, 0,
1732  0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1733  25, 213, 214, 215, 216, 0, 26, 27, 28, 29,
1734  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1735  40, 41, 42, 43, 44, 45, 46, 722, 723, 0,
1736  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737  0, 0, 0, 724, 725, 49, 217, 218, 219, 220,
1738  221, 222, 726, 0, 0, 727, 50, 51, 0, 0,
1739  0, 0, 0, 223, 224, 225, 226, 0, 52, 53,
1740  54, 55, 56, 57, 728, 0, 729, 0, 58, 0,
1741  0, 0, 0, 0, 0, 0, 0, 227, 228, 59,
1742  60, 61, 229, 0, 62, 63, 64, 0, 0, 0,
1743  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746  0, 0, 0, 0, 230, 0, 0, 0, 0, 0,
1747  0, -433, 0, 231, 232, 233, 234, 235, 236, 1,
1748  2, 3, 0, 0, 4, 5, 0, 0, 0, 6,
1749  0, 7, 8, 9, 0, 0, 0, 10, 11, 12,
1750  13, 14, 0, 15, 16, 209, 17, 18, 0, 19,
1751  20, 21, 22, 23, 0, 0, 0, 210, 211, 0,
1752  0, 0, 0, 0, 0, 212, 0, 0, 0, 0,
1753  0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
1754  213, 214, 215, 216, 0, 26, 27, 28, 29, 30,
1755  31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1756  41, 42, 43, 44, 45, 46, 0, 48, 0, 0,
1757  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758  0, 0, 0, 0, 49, 217, 218, 219, 220, 221,
1759  222, 0, 0, 0, 0, 50, 51, 0, 0, 0,
1760  0, 0, 223, 224, 225, 226, 0, 52, 53, 54,
1761  55, 56, 57, 0, 0, 0, 0, 58, 0, 0,
1762  0, 0, 0, 0, 0, 0, 227, 228, 59, 60,
1763  61, 229, 1, 62, 63, 64, 0, 0, 5, 0,
1764  0, 0, 0, 0, 0, 8, 0, 0, 0, 0,
1765  10, 0, 0, 13, 14, 0, 0, 0, 209, 17,
1766  0, 0, 19, 0, 0, 0, 23, 0, 0, 0,
1767  210, 211, 0, 230, 0, 0, 0, 0, 212, 0,
1768  0, 0, 231, 232, 233, 234, 235, 236, 0, 0,
1769  0, 24, 0, 213, 214, 215, 216, 0, 0, 0,
1770  0, 0, 30, 31, 0, 0, 0, 0, 0, 0,
1771  0, 0, 0, 0, 0, 0, 0, 0, 46, 0,
1772  48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773  0, 0, 0, 0, 0, 0, 0, 49, 217, 218,
1774  219, 220, 221, 222, 0, 0, 0, 0, 50, 51,
1775  0, 0, 0, 0, 0, 223, 224, 225, 226, 0,
1776  0, 0, 0, 0, 56, 0, 0, 0, 0, 0,
1777  58, 0, 0, 0, 0, 0, 0, 0, 0, 227,
1778  228, 59, 60, 1, 229, 0, 62, 0, 64, 5,
1779  0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
1780  0, 10, 0, 0, 13, 14, 0, 0, 0, 209,
1781  17, 0, 0, 19, 0, 5, 0, 23, 0, 0,
1782  0, 210, 211, 0, 0, 0, 230, 0, 0, 212,
1783  0, 14, 352, 0, 0, 231, 353, 233, 234, 235,
1784  236, 0, 24, 23, 213, 214, 215, 216, 0, 0,
1785  0, 0, 0, 30, 31, 0, 0, 0, 0, 0,
1786  0, 0, 0, 0, 0, 0, 0, 0, 24, 46,
1787  0, 48, 0, 0, 0, 0, 0, 0, 0, 30,
1788  31, 0, 0, 0, 0, 5, 0, 0, 49, 217,
1789  218, 219, 220, 221, 222, 0, 0, 48, 0, 50,
1790  51, 14, 0, 0, 0, 0, 223, 224, 225, 226,
1791  0, 0, 0, 23, 49, 56, 0, 0, 0, 0,
1792  0, 58, 0, 0, 0, 0, 0, 0, 0, 0,
1793  227, 228, 59, 60, 0, 229, 0, 62, 24, 64,
1794  0, 56, 0, 0, 0, 0, 0, 58, 0, 30,
1795  31, 0, 0, 0, 0, 0, 0, 0, 59, 60,
1796  209, 0, 0, 62, 0, 0, 0, 48, 0, 0,
1797  0, 0, 210, 211, 0, 0, 0, 230, 0, 0,
1798  212, 0, 0, 530, 49, 0, 231, 232, 233, 234,
1799  235, 236, 0, 24, 0, 213, 214, 215, 216, 0,
1800  0, 0, 0, 679, 0, 0, 0, 0, 205, 0,
1801  0, 56, 0, 680, 0, 0, 0, 58, 0, 0,
1802  0, 0, 669, 0, 0, 0, 0, 0, 59, 60,
1803  0, 0, 0, 62, 0, 0, 0, 0, 0, 0,
1804  217, 218, 219, 220, 221, 222, 0, 0, 0, 0,
1805  0, 0, 0, 0, 0, 0, 0, 223, 224, 225,
1806  226, 0, 0, 0, 209, 0, 0, 0, 0, 0,
1807  0, 0, 58, 65, 0, 0, 210, 211, 0, 0,
1808  0, 227, 228, 67, 212, 0, 229, 0, 0, 0,
1809  0, 0, 68, 0, 0, 0, 0, 24, 209, 213,
1810  214, 215, 216, 0, 0, 0, 0, 0, 0, 0,
1811  210, 211, 0, 0, 0, 0, 0, 0, 212, 0,
1812  0, 0, 0, 0, 0, 0, 0, 0, 230, 0,
1813  0, 24, 25, 213, 214, 215, 216, 231, 232, 233,
1814  234, 235, 236, 0, 217, 218, 219, 220, 221, 222,
1815  0, 853, 0, 0, 0, 0, 0, 0, 0, 0,
1816  0, 223, 224, 225, 226, 0, 0, 0, 0, 0,
1817  0, 0, 0, 0, 0, 0, 58, 0, 217, 218,
1818  219, 220, 221, 222, 0, 227, 228, 0, 0, 0,
1819  229, 0, 0, 0, 0, 223, 224, 225, 226, 0,
1820  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821  58, 0, 0, 0, 209, 0, 0, 0, 0, 227,
1822  228, 0, 0, 0, 229, 0, 210, 211, 0, 0,
1823  0, 0, 230, 0, 212, 0, 885, 886, 0, 617,
1824  0, 231, 232, 233, 234, 235, 236, 24, 25, 213,
1825  214, 215, 216, 0, 887, 0, 0, 0, 0, 0,
1826  0, 0, 0, 0, 0, 0, 230, 0, 0, 0,
1827  767, 768, 0, 617, 967, 231, 232, 233, 234, 235,
1828  236, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829  0, 0, 0, 0, 217, 218, 219, 220, 221, 222,
1830  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831  0, 223, 224, 225, 226, 0, 0, 209, 0, 0,
1832  0, 0, 0, 0, 0, 0, 58, 0, 0, 210,
1833  211, 0, 0, 0, 0, 227, 228, 212, 0, 0,
1834  229, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835  24, 25, 213, 214, 215, 216, 0, 0, 0, 0,
1836  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838  0, 0, 230, 0, 0, 0, 767, 768, 0, 617,
1839  995, 231, 232, 233, 234, 235, 236, 217, 218, 219,
1840  220, 221, 222, 0, 0, 0, 0, 0, 0, 0,
1841  0, 0, 0, 0, 223, 224, 225, 226, 0, 0,
1842  209, 0, 0, 0, 0, 0, 0, 0, 0, 58,
1843  0, 0, 210, 211, 0, 0, 0, 0, 227, 228,
1844  212, 0, 0, 229, 0, 0, 0, 0, 0, 0,
1845  0, 0, 0, 24, 0, 213, 214, 215, 216, 0,
1846  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848  0, 0, 48, 0, 0, 230, 0, 0, 0, 767,
1849  768, 0, 617, 0, 231, 232, 233, 234, 235, 236,
1850  217, 218, 219, 220, 221, 222, 0, 0, 0, 0,
1851  0, 0, 0, 0, 0, 0, 0, 223, 224, 225,
1852  226, 0, 0, 209, 0, 0, 0, 0, 0, 0,
1853  0, 0, 58, 0, 0, 210, 211, 0, 0, 0,
1854  0, 227, 228, 212, 0, 0, 229, 0, 62, 0,
1855  0, 0, 0, 0, 0, 0, 24, 0, 213, 214,
1856  215, 216, 0, 0, 0, 0, 0, 0, 0, 0,
1857  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858  0, 0, 0, 0, 0, 48, 0, 0, 230, 0,
1859  0, 0, 0, 0, 0, -433, 0, 231, 232, 233,
1860  234, 235, 236, 217, 218, 219, 220, 221, 222, 0,
1861  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862  223, 224, 225, 226, 0, 0, 209, 0, 0, 0,
1863  0, 0, 0, 0, 0, 58, 0, 0, 210, 211,
1864  0, 0, 0, 0, 227, 228, 212, 0, 0, 229,
1865  0, 62, 0, 0, 0, 0, 0, 0, 0, 24,
1866  209, 213, 214, 215, 216, 0, 0, 0, 0, 0,
1867  0, 0, 210, 211, 0, 0, 0, 0, 0, 0,
1868  212, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869  0, 230, 0, 24, 0, 213, 214, 215, 216, 0,
1870  231, 232, 233, 234, 235, 236, 217, 218, 219, 220,
1871  221, 222, 0, 0, 0, 0, 0, 0, 0, 0,
1872  0, 0, 0, 223, 224, 225, 226, 0, 0, 0,
1873  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
1874  217, 218, 219, 220, 221, 222, 0, 227, 228, 0,
1875  0, 0, 229, 0, 0, 0, 0, 223, 224, 225,
1876  226, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877  0, 0, 58, 0, 0, 0, 209, 0, 0, 0,
1878  0, 227, 228, 0, 0, 0, 229, 0, 210, 211,
1879  0, 0, 0, 0, 230, 0, 212, 0, 0, 0,
1880  528, 0, 0, 231, 232, 233, 234, 235, 236, 24,
1881  209, 213, 214, 215, 216, 0, 0, 0, 0, 0,
1882  0, 0, 210, 211, 0, 0, 0, 0, 230, 559,
1883  212, 0, 0, 0, 0, 0, 0, 231, 232, 233,
1884  234, 235, 236, 24, 0, 213, 214, 215, 216, 0,
1885  0, 0, 0, 0, 0, 0, 217, 218, 219, 220,
1886  221, 222, 0, 0, 0, 0, 0, 0, 0, 0,
1887  0, 0, 0, 223, 224, 225, 226, 0, 0, 0,
1888  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
1889  217, 218, 219, 220, 221, 222, 0, 227, 228, 0,
1890  0, 0, 229, 0, 0, 0, 0, 223, 224, 225,
1891  226, 0, 0, 209, 0, 0, 0, 0, 0, 0,
1892  0, 0, 58, 0, 0, 210, 211, 0, 0, 0,
1893  0, 227, 228, 212, 0, 0, 229, 0, 0, 0,
1894  0, 0, 0, 0, 230, 0, 24, 596, 213, 214,
1895  215, 216, 0, 231, 232, 233, 234, 235, 236, 0,
1896  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897  0, 0, 0, 0, 0, 0, 0, 0, 230, 0,
1898  0, 0, 0, 0, 0, 617, 0, 231, 232, 233,
1899  234, 235, 236, 217, 218, 219, 220, 221, 222, 0,
1900  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901  223, 224, 225, 226, 0, 0, 209, 0, 0, 0,
1902  0, 0, 0, 0, 0, 58, 0, 0, 210, 211,
1903  0, 0, 0, 0, 227, 228, 212, 0, 0, 229,
1904  0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1905  0, 213, 214, 215, 216, 0, 0, 0, 0, 0,
1906  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908  0, 230, 0, 0, 0, 0, 0, 688, 0, 0,
1909  231, 232, 233, 234, 235, 236, 217, 218, 219, 220,
1910  221, 222, 0, 0, 0, 0, 0, 0, 0, 0,
1911  0, 0, 0, 223, 224, 225, 226, 0, 0, 209,
1912  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
1913  0, 210, 211, 0, 0, 0, 0, 227, 228, 212,
1914  0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
1915  0, 0, 24, 25, 213, 214, 215, 216, 0, 0,
1916  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1918  0, 0, 0, 0, 230, 0, 0, 0, 0, 0,
1919  0, 708, 0, 231, 232, 233, 234, 235, 236, 217,
1920  218, 219, 220, 221, 222, 0, 0, 0, 0, 0,
1921  0, 0, 0, 0, 0, 0, 223, 224, 225, 226,
1922  0, 0, 209, 0, 0, 0, 0, 0, 0, 0,
1923  0, 58, 0, 0, 210, 211, 0, 0, 0, 0,
1924  227, 228, 212, 0, 0, 229, 0, 0, 0, 0,
1925  0, 0, 0, 0, 0, 24, 209, 213, 214, 215,
1926  216, 0, 0, 0, 0, 0, 0, 0, 210, 211,
1927  0, 0, 0, 0, 0, 0, 212, 0, 0, 0,
1928  0, 0, 0, 0, 0, 0, 0, 230, 0, 24,
1929  0, 213, 214, 215, 216, 0, 231, 232, 233, 234,
1930  235, 236, 217, 218, 219, 220, 221, 222, 0, 0,
1931  0, 0, 0, 0, 0, 0, 0, 0, 0, 223,
1932  224, 225, 226, 0, 0, 0, 0, 0, 0, 0,
1933  0, 0, 0, 0, 58, 0, 217, 218, 219, 220,
1934  221, 222, 0, 227, 228, 0, 0, 0, 229, 0,
1935  0, 0, 0, 223, 224, 225, 226, 0, 0, 209,
1936  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
1937  0, 210, 211, 0, 0, 0, 0, 227, 228, 212,
1938  0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
1939  230, 0, 24, 209, 213, 214, 215, 216, 0, 231,
1940  232, 233, 234, 235, 236, 210, 211, 0, 0, 0,
1941  0, 0, 0, 212, 0, 0, 0, 0, 0, 0,
1942  0, 0, 0, 0, 230, 0, 24, 0, 213, 214,
1943  215, 216, 0, 231, 533, 233, 234, 235, 236, 217,
1944  218, 219, 220, 221, 222, 0, 0, 0, 0, 0,
1945  0, 0, 0, 0, 0, 0, 223, 224, 225, 226,
1946  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1947  0, 58, 0, 217, 218, 219, 220, 221, 222, 0,
1948  0, 0, 0, 0, 0, 229, 0, 0, 0, 0,
1949  223, 224, 225, 226, 0, 0, 209, 0, 0, 0,
1950  0, 0, 0, 0, 0, 58, 0, 0, 210, 211,
1951  0, 0, 0, 0, 0, 0, 212, 0, 0, 229,
1952  0, 0, 0, 0, 0, 0, 0, 362, 0, 24,
1953  0, 213, 214, 215, 216, 0, 231, 232, 233, 234,
1954  235, 236, 0, 0, 0, 0, 0, 0, 0, 0,
1955  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1956  0, 364, 0, 0, 0, 0, 0, 0, 0, 0,
1957  231, 232, 233, 234, 235, 236, 217, 218, 219, 220,
1958  221, 222, 0, 0, 0, 0, 0, 0, 0, 0,
1959  0, 0, 0, 223, 224, 225, 226, 0, 0, 0,
1960  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
1961  0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1962  2, 3, 229, 0, 4, 5, 0, 0, 0, 6,
1963  0, 7, 8, 9, 0, 0, 0, 10, 11, 12,
1964  13, 14, 0, 15, 16, 0, 17, 18, 0, 19,
1965  20, 21, 22, 23, 0, 0, 0, 0, 0, 0,
1966  0, 0, 0, 0, 374, 0, 0, 0, 0, 0,
1967  0, 0, 0, 231, 232, 233, 234, 235, 236, 25,
1968  0, 0, 0, 0, 0, 26, 27, 28, 29, 30,
1969  31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1970  41, 42, 43, 44, 45, 46, 0, 48, 0, 0,
1971  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1972  0, 0, 0, 0, 49, 0, 0, 0, 0, 0,
1973  0, 0, 0, 0, 0, 50, 51, 0, 0, 0,
1974  0, 0, 0, 0, 0, 0, 0, 52, 53, 54,
1975  55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
1976  0, 0, 0, 0, 0, 0, 0, 0, 59, 60,
1977  61, 0, 0, 62, 63, 64, 1, 2, 3, 0,
1978  0, 4, 5, 0, 0, 0, 6, 0, 7, 8,
1979  9, 0, 0, 0, 10, 11, 12, 13, 14, 0,
1980  15, 16, 0, 17, 18, 0, 19, 20, 21, 22,
1981  23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1982  0, 0, 0, 0, 829, 0, 0, 0, 0, 0,
1983  0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
1984  0, 0, 26, 27, 28, 29, 30, 31, 32, 0,
1985  34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1986  44, 45, 46, 0, 48, 0, 0, 0, 0, 0,
1987  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1988  0, 49, 0, 0, 0, 0, 0, 0, 0, 0,
1989  0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
1990  0, 0, 0, 0, 52, 53, 54, 55, 56, 57,
1991  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1992  0, 0, 0, 0, 0, 59, 60, 61, 0, 0,
1993  62, 0, 64, 1, 2, 3, 0, 0, 4, 5,
1994  0, 0, 0, 6, 0, 7, 8, 9, 0, 0,
1995  0, 10, 11, 12, 13, 14, 0, 15, 16, 0,
1996  17, 18, 0, 19, 20, 21, 22, 23, 0, 0,
1997  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1998  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1999  0, 0, 0, 25, 0, 0, 0, 0, 0, 26,
2000  27, 28, 29, 30, 31, 32, 0, 34, 35, 36,
2001  37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2002  0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
2003  0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
2004  0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2005  51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2006  0, 52, 53, 54, 55, 56, 57, 0, 0, 0,
2007  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2008  0, 0, 59, 60, 61, 0, 0, 62, 0, 64,
2009  1, 2, 3, 0, 0, 4, 5, 0, 0, 0,
2010  6, 0, 7, 8, 9, 0, 0, 0, 10, 11,
2011  12, 13, 14, 0, 15, 16, 0, 17, 18, 0,
2012  19, 20, 21, 22, 23, 0, 0, 0, 0, 0,
2013  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2014  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2015  25, 0, 0, 0, 0, 0, 26, 27, 28, 29,
2016  30, 31, 32, 0, 34, 35, 36, 37, 38, 39,
2017  40, 41, 42, 43, 44, 45, 46, 0, 0, 0,
2018  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2019  0, 0, 0, 0, 0, 49, 0, 0, 0, 0,
2020  0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
2021  0, 0, 0, 0, 0, 0, 0, 0, 52, 53,
2022  54, 55, 56, 57, 0, 0, 0, 0, 0, 0,
2023  0, 0, 0, 0, 0, 0, 0, 0, 0, 59,
2024  60, 61, 1, 2, 3, 0, 64, 4, 5, 0,
2025  0, 0, 6, 0, 7, 8, 9, 0, 0, 0,
2026  10, 11, 12, 13, 14, 0, 15, 16, 0, 17,
2027  18, 0, 19, 20, 21, 22, 23, 0, 0, 0,
2028  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2030  0, 0, 25, 0, 0, 0, 0, 0, 26, 27,
2031  28, 29, 30, 31, 0, 0, 34, 35, 36, 37,
2032  38, 39, 40, 41, 42, 43, 44, 45, 46, 0,
2033  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2034  0, 0, 0, 0, 0, 0, 0, 49, 0, 0,
2035  0, 0, 0, 0, 0, 0, 0, 0, 50, 51,
2036  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2037  0, 53, 54, 55, 56, 57, 0, 0, 0, 0,
2038  0, 0, 0, 1, 2, 3, 0, 0, 4, 5,
2039  0, 59, 60, 6, 0, 0, 8, 9, 64, 0,
2040  0, 10, 11, 12, 13, 14, 1, 15, 16, 0,
2041  17, 0, 5, 19, 0, 21, 22, 23, 0, 8,
2042  0, 0, 0, 0, 10, 0, 0, 13, 14, 0,
2043  0, 0, 0, 17, 0, 0, 19, 0, 0, 0,
2044  23, 0, 0, 0, 0, 0, 0, 0, 0, 26,
2045  27, 28, 29, 30, 31, 0, 0, 34, 35, 36,
2046  37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2047  0, 0, 0, 0, 0, 0, 30, 31, 0, 0,
2048  0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
2049  0, 0, 46, 0, 0, 0, 0, 0, 0, 50,
2050  51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2051  0, 49, 53, 54, 55, 56, 57, 0, 0, 0,
2052  0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
2053  0, 0, 59, 60, 0, 0, 0, 0, 56, 64,
2054  2, 3, 0, 0, 4, 5, 0, 0, 0, 6,
2055  0, 7, 0, 9, 0, 59, 60, 0, 11, 12,
2056  0, 14, 64, 15, 16, 0, 0, 18, 0, 0,
2057  20, 21, 22, 23, 0, 0, 0, 0, 0, 0,
2058  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2059  0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
2060  0, 0, 0, 0, 0, 26, 27, 28, 29, 30,
2061  31, 32, 0, 34, 35, 36, 37, 38, 39, 40,
2062  41, 42, 43, 44, 45, 0, 0, 48, 0, 0,
2063  0, 0, 2, 3, 0, 0, 4, 5, 0, 0,
2064  0, 6, 0, 7, 49, 9, 0, 0, 0, 0,
2065  11, 12, 0, 14, 0, 15, 16, 0, 0, 18,
2066  0, 0, 20, 21, 22, 23, 0, 52, 53, 54,
2067  55, 56, 57, 0, 0, 0, 0, 0, 0, 0,
2068  0, 0, 0, 0, 0, 0, 0, 0, 59, 60,
2069  61, 25, 0, 62, 0, 0, 0, 26, 27, 28,
2070  29, 30, 31, 32, 0, 34, 35, 36, 37, 38,
2071  39, 40, 41, 42, 43, 44, 45, 0, 0, 2,
2072  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
2073  0, 0, 9, 0, 0, 0, 49, 11, 12, 0,
2074  14, 0, 15, 16, 0, 0, 0, 0, 0, 0,
2075  21, 22, 23, 0, 0, 0, 0, 0, 0, 52,
2076  53, 54, 55, 56, 57, 0, 0, 0, 0, 0,
2077  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2078  59, 60, 61, 0, 26, 27, 28, 29, 30, 31,
2079  0, 0, 34, 35, 36, 37, 38, 39, 40, 41,
2080  42, 43, 44, 45, 0, 0, 0, 0, 0, 0,
2081  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2082  0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
2083  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2084  0, 0, 0, 0, 0, 0, 0, 53, 54, 55,
2085  56, 57, 0, 0, 0, 0, 0, 0, 0, 0,
2086  0, 0, 0, 0, 0, 0, 0, 59, 60
2087 };
2088 
2089 static const yytype_int16 yycheck[] =
2090 {
2091  0, 200, 205, 67, 143, 212, 346, 119, 117, 510,
2092  65, 65, 475, 212, 116, 0, 79, 80, 146, 79,
2093  80, 856, 79, 80, 116, 128, 0, 116, 393, 50,
2094  0, 0, 397, 33, 0, 230, 328, 68, 435, 83,
2095  62, 85, 91, 87, 88, 89, 25, 51, 25, 161,
2096  143, 144, 521, 522, 523, 524, 639, 45, 46, 0,
2097  197, 116, 116, 197, 67, 65, 62, 67, 68, 91,
2098  204, 62, 456, 62, 63, 40, 197, 77, 78, 79,
2099  80, 90, 91, 62, 63, 62, 63, 116, 117, 197,
2100  218, 40, 41, 42, 11, 0, 52, 53, 54, 55,
2101  56, 57, 58, 59, 60, 61, 106, 491, 157, 79,
2102  80, 204, 1066, 51, 67, 91, 116, 117, 91, 141,
2103  883, 106, 667, 545, 145, 199, 67, 68, 550, 62,
2104  63, 205, 106, 51, 679, 157, 106, 106, 79, 80,
2105  106, 280, 341, 143, 1098, 141, 116, 33, 157, 0,
2106  141, 200, 141, 348, 154, 358, 270, 199, 361, 197,
2107  62, 501, 143, 144, 273, 106, 1001, 362, 931, 364,
2108  667, 280, 199, 204, 91, 197, 117, 279, 220, 374,
2109  272, 157, 679, 272, 157, 207, 91, 279, 93, 208,
2110  209, 77, 78, 220, 216, 487, 200, 489, 490, 202,
2111  200, 106, 143, 600, 197, 79, 80, 198, 141, 83,
2112  84, 794, 212, 154, 62, 798, 67, 272, 272, 198,
2113  199, 198, 199, 204, 279, 279, 214, 215, 79, 80,
2114  200, 204, 1067, 198, 202, 349, 201, 202, 199, 141,
2115  157, 199, 212, 272, 273, 43, 44, 270, 197, 202,
2116  279, 280, 201, 202, 199, 106, 596, 199, 19, 220,
2117  205, 199, 220, 219, 197, 203, 117, 199, 119, 174,
2118  175, 214, 272, 273, 207, 275, 37, 197, 220, 279,
2119  280, 199, 202, 216, 67, 203, 199, 220, 220, 197,
2120  270, 25, 143, 141, 202, 197, 199, 496, 200, 714,
2121  270, 152, 272, 202, 270, 207, 207, 220, 159, 279,
2122  161, 212, 213, 202, 216, 816, 316, 220, 197, 198,
2123  114, 199, 785, 202, 118, 203, 349, 742, 62, 63,
2124  900, 696, 273, 903, 275, 197, 198, 197, 198, 280,
2125  202, 341, 202, 194, 7, 196, 68, 141, 11, 197,
2126  350, 443, 821, 138, 205, 140, 825, 449, 199, 207,
2127  449, 197, 203, 760, 197, 270, 351, 197, 216, 349,
2128  199, 341, 435, 199, 203, 435, 488, 203, 435, 349,
2129  199, 351, 351, 349, 203, 351, 199, 0, 443, 443,
2130  203, 775, 220, 393, 449, 449, 510, 397, 143, 62,
2131  63, 197, 767, 67, 378, 379, 198, 977, 378, 379,
2132  980, 199, 521, 522, 443, 203, 756, 47, 48, 205,
2133  449, 197, 273, 393, 275, 119, 202, 397, 197, 280,
2134  316, 207, 847, 198, 199, 202, 287, 209, 210, 211,
2135  216, 144, 505, 443, 349, 505, 351, 646, 505, 449,
2136  222, 197, 198, 868, 198, 199, 202, 197, 657, 658,
2137  523, 524, 115, 523, 524, 435, 523, 524, 512, 513,
2138  514, 197, 91, 443, 325, 326, 197, 130, 141, 449,
2139  133, 134, 135, 197, 137, 548, 549, 510, 548, 549,
2140  199, 548, 549, 270, 203, 199, 496, 789, 882, 203,
2141  351, 198, 199, 887, 504, 700, 197, 358, 711, 197,
2142  973, 198, 199, 616, 206, 309, 516, 724, 216, 934,
2143  885, 521, 522, 523, 524, 724, 496, 378, 379, 49,
2144  510, 726, 198, 199, 729, 505, 600, 217, 157, 158,
2145  510, 147, 512, 198, 510, 219, 546, 547, 548, 549,
2146  198, 665, 198, 523, 524, 555, 921, 25, 923, 668,
2147  198, 435, 436, 417, 418, 419, 420, 198, 199, 543,
2148  544, 685, 349, 543, 544, 667, 197, 230, 548, 549,
2149  521, 522, 523, 524, 435, 555, 205, 1002, 1003, 198,
2150  199, 703, 199, 200, 62, 63, 64, 215, 1061, 67,
2151  198, 220, 801, 198, 668, 510, 199, 548, 549, 198,
2152  199, 219, 667, 667, 198, 199, 680, 617, 504, 198,
2153  199, 760, 1037, 623, 679, 679, 116, 117, 1043, 204,
2154  516, 505, 197, 507, 198, 199, 203, 488, 512, 513,
2155  434, 435, 665, 204, 62, 63, 646, 617, 204, 523,
2156  524, 445, 446, 1068, 505, 270, 198, 657, 658, 198,
2157  546, 547, 685, 663, 62, 63, 666, 667, 668, 669,
2158  198, 199, 523, 524, 548, 549, 646, 204, 792, 679,
2159  680, 198, 821, 198, 199, 665, 825, 657, 658, 1104,
2160  198, 199, 543, 544, 198, 665, 696, 548, 549, 665,
2161  37, 686, 816, 19, 555, 685, 197, 910, 708, 362,
2162  220, 364, 821, 197, 714, 685, 686, 686, 197, 685,
2163  686, 374, 197, 141, 724, 197, 696, 668, 669, 1069,
2164  933, 198, 199, 510, 349, 204, 62, 197, 708, 680,
2165  947, 91, 742, 141, 714, 398, 716, 202, 947, 600,
2166  202, 115, 198, 199, 724, 950, 204, 952, 953, 958,
2167  665, 223, 224, 225, 226, 198, 199, 767, 132, 792,
2168  204, 974, 742, 137, 138, 878, 198, 663, 431, 197,
2169  685, 686, 62, 198, 199, 198, 199, 413, 414, 207,
2170  62, 63, 198, 816, 62, 63, 199, 767, 216, 197,
2171  199, 801, 220, 203, 202, 599, 600, 157, 158, 207,
2172  415, 416, 792, 203, 608, 141, 198, 668, 216, 1018,
2173  198, 821, 792, 91, 198, 825, 792, 421, 422, 680,
2174  199, 801, 429, 430, 199, 686, 816, 900, 199, 198,
2175  900, 944, 199, 900, 67, 62, 816, 847, 67, 198,
2176  816, 702, 703, 198, 198, 205, 219, 198, 1057, 962,
2177  199, 141, 204, 714, 198, 205, 230, 220, 868, 141,
2178  220, 197, 198, 141, 204, 200, 202, 847, 1073, 197,
2179  821, 207, 220, 883, 825, 885, 197, 792, 665, 157,
2180  216, 742, 197, 205, 197, 510, 1095, 220, 868, 899,
2181  900, 200, 199, 903, 200, 905, 220, 198, 685, 760,
2182  198, 816, 198, 883, 1017, 885, 198, 197, 198, 1022,
2183  199, 921, 202, 923, 141, 197, 200, 207, 200, 197,
2184  900, 931, 205, 200, 934, 207, 216, 200, 198, 207,
2185  198, 90, 91, 198, 216, 1048, 205, 947, 216, 220,
2186  1053, 921, 205, 923, 219, 198, 198, 198, 958, 900,
2187  198, 931, 903, 198, 934, 199, 760, 937, 621, 622,
2188  821, 200, 200, 1076, 825, 205, 1079, 947, 631, 632,
2189  197, 198, 39, 197, 220, 202, 197, 68, 958, 205,
2190  207, 200, 197, 68, 143, 144, 847, 9, 362, 216,
2191  364, 198, 1002, 1003, 205, 369, 197, 371, 157, 373,
2192  374, 197, 220, 25, 199, 792, 200, 868, 1018, 200,
2193  198, 521, 522, 523, 524, 37, 900, 200, 142, 198,
2194  205, 198, 1002, 1003, 197, 203, 200, 1037, 199, 816,
2195  219, 14, 197, 1043, 220, 698, 699, 700, 1018, 900,
2196  665, 198, 203, 72, 220, 204, 199, 1057, 220, 197,
2197  199, 73, 74, 716, 198, 718, 220, 1037, 1068, 198,
2198  685, 62, 63, 1043, 198, 197, 62, 63, 97, 91,
2199  874, 875, 101, 934, 929, 104, 937, 1057, 423, 1089,
2200  426, 424, 287, 425, 358, 1095, 108, 428, 1068, 427,
2201  300, 227, 228, 199, 1104, 231, 232, 233, 234, 235,
2202  236, 1035, 798, 627, 905, 768, 139, 512, 794, 1089,
2203  512, 903, 980, 135, 646, 1095, 801, 686, 666, 937,
2204  708, 708, 9, 937, 1104, 1089, 722, 156, 944, 1053,
2205  152, 153, 1017, 162, 1079, 157, 165, 166, 25, 168,
2206  141, 1002, 1003, 172, 106, 141, 90, 91, 177, 1095,
2207  37, 685, 181, 182, 117, 184, 185, 667, 668, 349,
2208  189, 190, 191, 192, 193, 599, 195, 792, 197, 679,
2209  680, -1, 205, 599, -1, 197, 1037, -1, -1, -1,
2210  202, -1, 1043, -1, -1, 207, 73, 74, -1, 852,
2211  -1, 816, 855, -1, 216, -1, 197, -1, 9, 143,
2212  144, 197, -1, -1, 91, -1, 207, 1068, -1, -1,
2213  346, 207, -1, 157, 25, 216, -1, 353, -1, -1,
2214  216, 108, -1, 886, -1, -1, 37, -1, -1, 79,
2215  80, -1, -1, 83, 84, 85, 86, 87, 88, 89,
2216  90, -1, 92, 1104, 94, -1, -1, -1, 135, -1,
2217  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2218  204, 924, 73, 74, -1, 152, 153, -1, -1, -1,
2219  157, -1, -1, -1, 410, 411, 412, 413, 414, 415,
2220  416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
2221  426, 427, 428, 429, 430, -1, -1, 108, -1, -1,
2222  -1, 964, -1, -1, -1, -1, -1, -1, -1, -1,
2223  -1, 821, -1, -1, -1, 825, 345, -1, -1, 693,
2224  694, 695, -1, -1, 135, 358, -1, -1, 361, -1,
2225  9, -1, -1, -1, -1, 998, -1, 370, -1, 372,
2226  -1, 152, 153, -1, -1, -1, 25, -1, 1011, 382,
2227  -1, -1, -1, 1016, -1, 205, -1, -1, 37, -1,
2228  -1, -1, 1025, 396, -1, 501, 399, 400, 401, 402,
2229  403, 404, 405, 406, 407, 408, 409, -1, -1, -1,
2230  3, -1, -1, 62, 63, -1, -1, -1, -1, 1052,
2231  9, -1, -1, 16, 73, 74, -1, 533, 21, -1,
2232  433, 24, -1, -1, -1, 915, 25, 30, -1, -1,
2233  33, -1, 91, -1, -1, -1, -1, 553, 37, -1,
2234  -1, -1, -1, 456, -1, -1, -1, -1, 1091, 108,
2235  -1, -1, -1, -1, -1, -1, -1, -1, -1, 1102,
2236  -1, -1, -1, 62, 63, -1, -1, -1, -1, -1,
2237  -1, -1, 485, -1, 73, 74, 135, -1, 491, -1,
2238  596, -1, 141, 67, -1, -1, 89, -1, -1, -1,
2239  -1, -1, 91, 152, 153, 79, 80, -1, 157, 83,
2240  84, 85, 86, 87, 88, 89, 90, -1, -1, 108,
2241  -1, -1, -1, -1, -1, -1, 119, 120, -1, 349,
2242  -1, -1, -1, 9, -1, -1, -1, -1, 358, -1,
2243  -1, -1, -1, 117, -1, -1, 135, -1, 197, 25,
2244  -1, -1, 141, 202, -1, -1, -1, -1, 207, -1,
2245  -1, 37, -1, 152, 153, -1, 159, 216, 157, 143,
2246  92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
2247  102, 103, 104, 105, -1, -1, 62, 63, -1, -1,
2248  -1, -1, -1, -1, -1, -1, -1, 73, 74, -1,
2249  -1, -1, -1, -1, -1, -1, -1, -1, 197, -1,
2250  -1, -1, -1, -1, 617, 91, -1, -1, 207, -1,
2251  194, -1, 196, -1, -1, -1, -1, 216, -1, -1,
2252  -1, 205, 108, -1, -1, -1, -1, -1, -1, -1,
2253  639, -1, 641, -1, -1, -1, 645, -1, -1, -1,
2254  756, -1, 651, 652, -1, 654, -1, 656, -1, 135,
2255  659, 660, 661, -1, -1, 141, -1, -1, -1, -1,
2256  -1, -1, 671, -1, -1, -1, 152, 153, 677, -1,
2257  -1, 157, 681, -1, 683, -1, 506, 507, 508, -1,
2258  510, -1, 512, 513, 514, -1, -1, -1, -1, 273,
2259  -1, -1, -1, 523, 524, 708, 280, -1, 711, 92,
2260  93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
2261  103, 197, 105, -1, -1, -1, -1, -1, 548, 549,
2262  -1, 207, -1, 732, -1, -1, -1, -1, -1, -1,
2263  216, 62, -1, 64, 65, 66, 67, -1, -1, 9,
2264  753, 325, 326, -1, -1, -1, -1, -1, -1, -1,
2265  -1, -1, -1, -1, -1, 25, -1, -1, -1, -1,
2266  -1, -1, 775, -1, -1, 349, -1, 37, -1, -1,
2267  -1, -1, -1, -1, 358, -1, -1, -1, 109, 110,
2268  111, 112, 113, -1, -1, 794, -1, -1, -1, 798,
2269  -1, 800, 62, 63, -1, 126, 127, 128, 129, -1,
2270  809, 810, -1, 73, 74, -1, -1, -1, -1, -1,
2271  141, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2272  -1, 91, -1, -1, 155, -1, -1, -1, -1, -1,
2273  -1, -1, -1, -1, -1, 665, -1, -1, 108, -1,
2274  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2275  -1, 435, 436, 437, 438, 685, -1, -1, -1, -1,
2276  -1, -1, -1, -1, -1, 135, 197, -1, -1, 882,
2277  883, 141, -1, -1, 887, -1, -1, -1, -1, -1,
2278  -1, -1, 152, 153, -1, -1, -1, 157, -1, -1,
2279  -1, -1, 901, -1, -1, -1, -1, 910, -1, -1,
2280  -1, -1, -1, 912, -1, -1, -1, -1, -1, -1,
2281  -1, -1, -1, -1, 927, -1, -1, 930, 931, -1,
2282  933, 505, -1, 507, 508, -1, 510, 197, 512, 513,
2283  514, -1, -1, -1, -1, -1, -1, 207, -1, 523,
2284  524, -1, -1, -1, -1, -1, 216, -1, -1, -1,
2285  -1, -1, -1, 1069, -1, -1, -1, -1, -1, -1,
2286  -1, 974, -1, -1, 548, 549, -1, 976, -1, -1,
2287  979, -1, -1, -1, -1, 984, -1, 3, 4, 5,
2288  -1, -1, 8, 9, -1, -1, 816, 13, -1, 15,
2289  16, 17, -1, -1, -1, 21, 22, 23, 24, 25,
2290  -1, 27, 28, -1, 30, 31, -1, 33, 34, 35,
2291  36, 37, -1, -1, -1, -1, 600, -1, -1, -1,
2292  -1, 1030, -1, -1, 1033, -1, -1, -1, -1, -1,
2293  -1, -1, -1, -1, -1, -1, 62, 63, -1, -1,
2294  -1, -1, -1, 69, 70, 71, 72, 73, 74, 75,
2295  76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2296  86, 87, 88, 89, 90, 91, -1, -1, -1, -1,
2297  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2298  -1, 665, 108, -1, 668, -1, -1, -1, -1, -1,
2299  -1, -1, -1, 119, 120, -1, 680, -1, -1, -1,
2300  -1, 685, -1, -1, -1, 131, 132, 133, 134, 135,
2301  136, -1, -1, -1, -1, 141, -1, -1, -1, -1,
2302  -1, -1, -1, -1, -1, -1, 152, 153, 154, -1,
2303  -1, 157, 158, 159, -1, -1, -1, -1, -1, -1,
2304  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2305  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2306  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2307  -1, 197, -1, -1, -1, -1, 760, -1, 204, -1,
2308  -1, 207, -1, -1, -1, -1, -1, -1, -1, -1,
2309  216, 3, 4, 5, 220, -1, 8, 9, -1, -1,
2310  -1, 13, -1, 15, 16, 17, -1, -1, -1, 21,
2311  22, 23, 24, 25, -1, 27, 28, -1, 30, 31,
2312  -1, 33, 34, 35, 36, 37, -1, -1, -1, -1,
2313  -1, -1, 816, -1, -1, -1, -1, 821, -1, -1,
2314  -1, 825, -1, -1, -1, -1, -1, -1, -1, -1,
2315  62, 63, -1, -1, -1, -1, -1, 69, 70, 71,
2316  72, 73, 74, 75, -1, 77, 78, 79, 80, 81,
2317  82, 83, 84, 85, 86, 87, 88, 89, -1, 91,
2318  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2319  -1, -1, -1, -1, -1, -1, 108, -1, -1, -1,
2320  -1, -1, -1, -1, -1, -1, -1, 119, 120, -1,
2321  -1, -1, -1, -1, -1, -1, 900, -1, -1, 131,
2322  132, 133, 134, 135, 136, -1, -1, -1, -1, 141,
2323  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2324  152, 153, 154, -1, -1, 157, -1, 159, 3, 4,
2325  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2326  15, 16, 17, -1, -1, -1, 21, 22, 23, 24,
2327  25, -1, 27, 28, -1, 30, 31, -1, 33, 34,
2328  35, 36, 37, -1, -1, 197, -1, -1, -1, -1,
2329  202, -1, -1, -1, -1, 207, -1, -1, -1, -1,
2330  -1, -1, -1, -1, 216, -1, -1, 62, 63, -1,
2331  -1, -1, -1, -1, 69, 70, 71, 72, 73, 74,
2332  75, -1, 77, 78, 79, 80, 81, 82, 83, 84,
2333  85, 86, 87, 88, 89, -1, 91, -1, -1, -1,
2334  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2335  -1, -1, -1, 108, -1, -1, -1, -1, -1, -1,
2336  -1, -1, -1, -1, 119, 120, -1, -1, -1, -1,
2337  -1, -1, -1, -1, -1, -1, 131, 132, 133, 134,
2338  135, 136, -1, -1, -1, -1, 141, -1, -1, -1,
2339  -1, -1, -1, -1, -1, -1, -1, 152, 153, 154,
2340  -1, -1, 157, -1, 159, 4, 5, -1, -1, 8,
2341  9, -1, -1, -1, 13, -1, 15, -1, 17, -1,
2342  -1, -1, -1, 22, 23, -1, 25, -1, 27, 28,
2343  -1, -1, 31, -1, -1, 34, 35, 36, 37, -1,
2344  -1, -1, 197, -1, -1, -1, -1, -1, -1, -1,
2345  -1, -1, 207, -1, -1, -1, -1, -1, -1, -1,
2346  -1, 216, -1, 62, 63, -1, -1, -1, -1, -1,
2347  69, 70, 71, 72, 73, 74, 75, -1, 77, 78,
2348  79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2349  -1, -1, 91, -1, -1, -1, -1, -1, -1, -1,
2350  -1, -1, -1, -1, -1, -1, -1, -1, -1, 108,
2351  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2352  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2353  -1, -1, 131, 132, 133, 134, 135, 136, -1, -1,
2354  -1, -1, 141, -1, -1, -1, -1, -1, -1, -1,
2355  -1, -1, -1, 152, 153, 154, 4, 5, 157, -1,
2356  8, 9, -1, -1, -1, 13, -1, 15, -1, 17,
2357  -1, -1, -1, -1, 22, 23, -1, 25, -1, 27,
2358  28, -1, -1, 31, -1, -1, 34, 35, 36, 37,
2359  -1, -1, -1, -1, -1, -1, -1, -1, 197, -1,
2360  -1, 200, -1, -1, -1, -1, -1, -1, 207, -1,
2361  -1, -1, -1, -1, -1, 63, -1, 216, -1, -1,
2362  -1, 69, 70, 71, 72, 73, 74, 75, -1, 77,
2363  78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
2364  88, -1, -1, 91, -1, -1, -1, -1, -1, -1,
2365  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2366  108, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2367  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2368  -1, -1, -1, 131, 132, 133, 134, 135, 136, -1,
2369  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2370  -1, -1, -1, -1, 152, 153, 154, -1, -1, 157,
2371  -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
2372  11, 12, 13, -1, 15, 16, 17, 18, 19, 20,
2373  21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2374  31, 32, 33, 34, 35, 36, 37, -1, 39, 197,
2375  41, 42, -1, -1, 202, -1, -1, -1, 49, 207,
2376  -1, -1, -1, -1, -1, -1, -1, -1, 216, -1,
2377  -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2378  71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2379  81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2380  91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2381  -1, -1, -1, -1, -1, 106, 107, 108, 109, 110,
2382  111, 112, 113, 114, 115, -1, -1, 118, 119, 120,
2383  -1, -1, -1, -1, -1, 126, 127, 128, 129, -1,
2384  131, 132, 133, 134, 135, 136, 137, -1, 139, -1,
2385  141, -1, -1, -1, -1, -1, -1, -1, -1, 150,
2386  151, 152, 153, 154, 155, -1, 157, 158, 159, -1,
2387  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2388  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2389  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2390  -1, -1, -1, -1, -1, -1, 197, -1, -1, -1,
2391  -1, -1, -1, 204, 205, 206, 207, 208, 209, 210,
2392  211, 3, 4, 5, 6, 7, 8, 9, 10, 11,
2393  12, 13, -1, 15, 16, 17, 18, 19, 20, 21,
2394  22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2395  32, 33, 34, 35, 36, 37, -1, 39, -1, 41,
2396  42, -1, -1, -1, -1, -1, -1, 49, -1, -1,
2397  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2398  62, 63, 64, 65, 66, 67, -1, 69, 70, 71,
2399  72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
2400  82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
2401  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2402  -1, -1, -1, -1, 106, 107, 108, 109, 110, 111,
2403  112, 113, 114, 115, -1, -1, 118, 119, 120, -1,
2404  -1, -1, -1, -1, 126, 127, 128, 129, -1, 131,
2405  132, 133, 134, 135, 136, 137, -1, 139, -1, 141,
2406  -1, -1, -1, -1, -1, -1, -1, -1, 150, 151,
2407  152, 153, 154, 155, -1, 157, 158, 159, -1, -1,
2408  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2409  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2410  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2411  -1, -1, -1, -1, -1, 197, -1, -1, -1, -1,
2412  -1, -1, 204, 205, 206, 207, 208, 209, 210, 211,
2413  3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2414  13, -1, 15, 16, 17, 18, 19, 20, 21, 22,
2415  23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2416  33, 34, 35, 36, 37, -1, 39, -1, 41, 42,
2417  -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2418  -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
2419  63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
2420  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2421  83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
2422  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2423  -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2424  113, 114, 115, -1, -1, 118, 119, 120, -1, -1,
2425  -1, -1, -1, 126, 127, 128, 129, -1, 131, 132,
2426  133, 134, 135, 136, 137, -1, 139, -1, 141, -1,
2427  -1, -1, -1, -1, -1, -1, -1, 150, 151, 152,
2428  153, 154, 155, -1, 157, 158, 159, -1, -1, -1,
2429  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2430  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2431  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2432  -1, -1, -1, -1, 197, -1, -1, -1, -1, -1,
2433  -1, 204, -1, 206, 207, 208, 209, 210, 211, 3,
2434  4, 5, -1, -1, 8, 9, -1, -1, -1, 13,
2435  -1, 15, 16, 17, -1, -1, -1, 21, 22, 23,
2436  24, 25, -1, 27, 28, 29, 30, 31, -1, 33,
2437  34, 35, 36, 37, -1, -1, -1, 41, 42, -1,
2438  -1, -1, -1, -1, -1, 49, -1, -1, -1, -1,
2439  -1, -1, -1, -1, -1, -1, -1, -1, 62, 63,
2440  64, 65, 66, 67, -1, 69, 70, 71, 72, 73,
2441  74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2442  84, 85, 86, 87, 88, 89, -1, 91, -1, -1,
2443  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2444  -1, -1, -1, -1, 108, 109, 110, 111, 112, 113,
2445  114, -1, -1, -1, -1, 119, 120, -1, -1, -1,
2446  -1, -1, 126, 127, 128, 129, -1, 131, 132, 133,
2447  134, 135, 136, -1, -1, -1, -1, 141, -1, -1,
2448  -1, -1, -1, -1, -1, -1, 150, 151, 152, 153,
2449  154, 155, 3, 157, 158, 159, -1, -1, 9, -1,
2450  -1, -1, -1, -1, -1, 16, -1, -1, -1, -1,
2451  21, -1, -1, 24, 25, -1, -1, -1, 29, 30,
2452  -1, -1, 33, -1, -1, -1, 37, -1, -1, -1,
2453  41, 42, -1, 197, -1, -1, -1, -1, 49, -1,
2454  -1, -1, 206, 207, 208, 209, 210, 211, -1, -1,
2455  -1, 62, -1, 64, 65, 66, 67, -1, -1, -1,
2456  -1, -1, 73, 74, -1, -1, -1, -1, -1, -1,
2457  -1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
2458  91, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2459  -1, -1, -1, -1, -1, -1, -1, 108, 109, 110,
2460  111, 112, 113, 114, -1, -1, -1, -1, 119, 120,
2461  -1, -1, -1, -1, -1, 126, 127, 128, 129, -1,
2462  -1, -1, -1, -1, 135, -1, -1, -1, -1, -1,
2463  141, -1, -1, -1, -1, -1, -1, -1, -1, 150,
2464  151, 152, 153, 3, 155, -1, 157, -1, 159, 9,
2465  -1, -1, -1, -1, -1, -1, 16, -1, -1, -1,
2466  -1, 21, -1, -1, 24, 25, -1, -1, -1, 29,
2467  30, -1, -1, 33, -1, 9, -1, 37, -1, -1,
2468  -1, 41, 42, -1, -1, -1, 197, -1, -1, 49,
2469  -1, 25, 203, -1, -1, 206, 207, 208, 209, 210,
2470  211, -1, 62, 37, 64, 65, 66, 67, -1, -1,
2471  -1, -1, -1, 73, 74, -1, -1, -1, -1, -1,
2472  -1, -1, -1, -1, -1, -1, -1, -1, 62, 89,
2473  -1, 91, -1, -1, -1, -1, -1, -1, -1, 73,
2474  74, -1, -1, -1, -1, 9, -1, -1, 108, 109,
2475  110, 111, 112, 113, 114, -1, -1, 91, -1, 119,
2476  120, 25, -1, -1, -1, -1, 126, 127, 128, 129,
2477  -1, -1, -1, 37, 108, 135, -1, -1, -1, -1,
2478  -1, 141, -1, -1, -1, -1, -1, -1, -1, -1,
2479  150, 151, 152, 153, -1, 155, -1, 157, 62, 159,
2480  -1, 135, -1, -1, -1, -1, -1, 141, -1, 73,
2481  74, -1, -1, -1, -1, -1, -1, -1, 152, 153,
2482  29, -1, -1, 157, -1, -1, -1, 91, -1, -1,
2483  -1, -1, 41, 42, -1, -1, -1, 197, -1, -1,
2484  49, -1, -1, 203, 108, -1, 206, 207, 208, 209,
2485  210, 211, -1, 62, -1, 64, 65, 66, 67, -1,
2486  -1, -1, -1, 197, -1, -1, -1, -1, 202, -1,
2487  -1, 135, -1, 207, -1, -1, -1, 141, -1, -1,
2488  -1, -1, 216, -1, -1, -1, -1, -1, 152, 153,
2489  -1, -1, -1, 157, -1, -1, -1, -1, -1, -1,
2490  109, 110, 111, 112, 113, 114, -1, -1, -1, -1,
2491  -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
2492  129, -1, -1, -1, 29, -1, -1, -1, -1, -1,
2493  -1, -1, 141, 197, -1, -1, 41, 42, -1, -1,
2494  -1, 150, 151, 207, 49, -1, 155, -1, -1, -1,
2495  -1, -1, 216, -1, -1, -1, -1, 62, 29, 64,
2496  65, 66, 67, -1, -1, -1, -1, -1, -1, -1,
2497  41, 42, -1, -1, -1, -1, -1, -1, 49, -1,
2498  -1, -1, -1, -1, -1, -1, -1, -1, 197, -1,
2499  -1, 62, 63, 64, 65, 66, 67, 206, 207, 208,
2500  209, 210, 211, -1, 109, 110, 111, 112, 113, 114,
2501  -1, 220, -1, -1, -1, -1, -1, -1, -1, -1,
2502  -1, 126, 127, 128, 129, -1, -1, -1, -1, -1,
2503  -1, -1, -1, -1, -1, -1, 141, -1, 109, 110,
2504  111, 112, 113, 114, -1, 150, 151, -1, -1, -1,
2505  155, -1, -1, -1, -1, 126, 127, 128, 129, -1,
2506  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2507  141, -1, -1, -1, 29, -1, -1, -1, -1, 150,
2508  151, -1, -1, -1, 155, -1, 41, 42, -1, -1,
2509  -1, -1, 197, -1, 49, -1, 201, 202, -1, 204,
2510  -1, 206, 207, 208, 209, 210, 211, 62, 63, 64,
2511  65, 66, 67, -1, 219, -1, -1, -1, -1, -1,
2512  -1, -1, -1, -1, -1, -1, 197, -1, -1, -1,
2513  201, 202, -1, 204, 205, 206, 207, 208, 209, 210,
2514  211, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2515  -1, -1, -1, -1, 109, 110, 111, 112, 113, 114,
2516  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2517  -1, 126, 127, 128, 129, -1, -1, 29, -1, -1,
2518  -1, -1, -1, -1, -1, -1, 141, -1, -1, 41,
2519  42, -1, -1, -1, -1, 150, 151, 49, -1, -1,
2520  155, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2521  62, 63, 64, 65, 66, 67, -1, -1, -1, -1,
2522  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2523  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2524  -1, -1, 197, -1, -1, -1, 201, 202, -1, 204,
2525  205, 206, 207, 208, 209, 210, 211, 109, 110, 111,
2526  112, 113, 114, -1, -1, -1, -1, -1, -1, -1,
2527  -1, -1, -1, -1, 126, 127, 128, 129, -1, -1,
2528  29, -1, -1, -1, -1, -1, -1, -1, -1, 141,
2529  -1, -1, 41, 42, -1, -1, -1, -1, 150, 151,
2530  49, -1, -1, 155, -1, -1, -1, -1, -1, -1,
2531  -1, -1, -1, 62, -1, 64, 65, 66, 67, -1,
2532  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2533  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2534  -1, -1, 91, -1, -1, 197, -1, -1, -1, 201,
2535  202, -1, 204, -1, 206, 207, 208, 209, 210, 211,
2536  109, 110, 111, 112, 113, 114, -1, -1, -1, -1,
2537  -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
2538  129, -1, -1, 29, -1, -1, -1, -1, -1, -1,
2539  -1, -1, 141, -1, -1, 41, 42, -1, -1, -1,
2540  -1, 150, 151, 49, -1, -1, 155, -1, 157, -1,
2541  -1, -1, -1, -1, -1, -1, 62, -1, 64, 65,
2542  66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
2543  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2544  -1, -1, -1, -1, -1, 91, -1, -1, 197, -1,
2545  -1, -1, -1, -1, -1, 204, -1, 206, 207, 208,
2546  209, 210, 211, 109, 110, 111, 112, 113, 114, -1,
2547  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2548  126, 127, 128, 129, -1, -1, 29, -1, -1, -1,
2549  -1, -1, -1, -1, -1, 141, -1, -1, 41, 42,
2550  -1, -1, -1, -1, 150, 151, 49, -1, -1, 155,
2551  -1, 157, -1, -1, -1, -1, -1, -1, -1, 62,
2552  29, 64, 65, 66, 67, -1, -1, -1, -1, -1,
2553  -1, -1, 41, 42, -1, -1, -1, -1, -1, -1,
2554  49, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2555  -1, 197, -1, 62, -1, 64, 65, 66, 67, -1,
2556  206, 207, 208, 209, 210, 211, 109, 110, 111, 112,
2557  113, 114, -1, -1, -1, -1, -1, -1, -1, -1,
2558  -1, -1, -1, 126, 127, 128, 129, -1, -1, -1,
2559  -1, -1, -1, -1, -1, -1, -1, -1, 141, -1,
2560  109, 110, 111, 112, 113, 114, -1, 150, 151, -1,
2561  -1, -1, 155, -1, -1, -1, -1, 126, 127, 128,
2562  129, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2563  -1, -1, 141, -1, -1, -1, 29, -1, -1, -1,
2564  -1, 150, 151, -1, -1, -1, 155, -1, 41, 42,
2565  -1, -1, -1, -1, 197, -1, 49, -1, -1, -1,
2566  203, -1, -1, 206, 207, 208, 209, 210, 211, 62,
2567  29, 64, 65, 66, 67, -1, -1, -1, -1, -1,
2568  -1, -1, 41, 42, -1, -1, -1, -1, 197, 198,
2569  49, -1, -1, -1, -1, -1, -1, 206, 207, 208,
2570  209, 210, 211, 62, -1, 64, 65, 66, 67, -1,
2571  -1, -1, -1, -1, -1, -1, 109, 110, 111, 112,
2572  113, 114, -1, -1, -1, -1, -1, -1, -1, -1,
2573  -1, -1, -1, 126, 127, 128, 129, -1, -1, -1,
2574  -1, -1, -1, -1, -1, -1, -1, -1, 141, -1,
2575  109, 110, 111, 112, 113, 114, -1, 150, 151, -1,
2576  -1, -1, 155, -1, -1, -1, -1, 126, 127, 128,
2577  129, -1, -1, 29, -1, -1, -1, -1, -1, -1,
2578  -1, -1, 141, -1, -1, 41, 42, -1, -1, -1,
2579  -1, 150, 151, 49, -1, -1, 155, -1, -1, -1,
2580  -1, -1, -1, -1, 197, -1, 62, 200, 64, 65,
2581  66, 67, -1, 206, 207, 208, 209, 210, 211, -1,
2582  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2583  -1, -1, -1, -1, -1, -1, -1, -1, 197, -1,
2584  -1, -1, -1, -1, -1, 204, -1, 206, 207, 208,
2585  209, 210, 211, 109, 110, 111, 112, 113, 114, -1,
2586  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2587  126, 127, 128, 129, -1, -1, 29, -1, -1, -1,
2588  -1, -1, -1, -1, -1, 141, -1, -1, 41, 42,
2589  -1, -1, -1, -1, 150, 151, 49, -1, -1, 155,
2590  -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
2591  -1, 64, 65, 66, 67, -1, -1, -1, -1, -1,
2592  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2593  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2594  -1, 197, -1, -1, -1, -1, -1, 203, -1, -1,
2595  206, 207, 208, 209, 210, 211, 109, 110, 111, 112,
2596  113, 114, -1, -1, -1, -1, -1, -1, -1, -1,
2597  -1, -1, -1, 126, 127, 128, 129, -1, -1, 29,
2598  -1, -1, -1, -1, -1, -1, -1, -1, 141, -1,
2599  -1, 41, 42, -1, -1, -1, -1, 150, 151, 49,
2600  -1, -1, 155, -1, -1, -1, -1, -1, -1, -1,
2601  -1, -1, 62, 63, 64, 65, 66, 67, -1, -1,
2602  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2603  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2604  -1, -1, -1, -1, 197, -1, -1, -1, -1, -1,
2605  -1, 204, -1, 206, 207, 208, 209, 210, 211, 109,
2606  110, 111, 112, 113, 114, -1, -1, -1, -1, -1,
2607  -1, -1, -1, -1, -1, -1, 126, 127, 128, 129,
2608  -1, -1, 29, -1, -1, -1, -1, -1, -1, -1,
2609  -1, 141, -1, -1, 41, 42, -1, -1, -1, -1,
2610  150, 151, 49, -1, -1, 155, -1, -1, -1, -1,
2611  -1, -1, -1, -1, -1, 62, 29, 64, 65, 66,
2612  67, -1, -1, -1, -1, -1, -1, -1, 41, 42,
2613  -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2614  -1, -1, -1, -1, -1, -1, -1, 197, -1, 62,
2615  -1, 64, 65, 66, 67, -1, 206, 207, 208, 209,
2616  210, 211, 109, 110, 111, 112, 113, 114, -1, -1,
2617  -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
2618  127, 128, 129, -1, -1, -1, -1, -1, -1, -1,
2619  -1, -1, -1, -1, 141, -1, 109, 110, 111, 112,
2620  113, 114, -1, 150, 151, -1, -1, -1, 155, -1,
2621  -1, -1, -1, 126, 127, 128, 129, -1, -1, 29,
2622  -1, -1, -1, -1, -1, -1, -1, -1, 141, -1,
2623  -1, 41, 42, -1, -1, -1, -1, 150, 151, 49,
2624  -1, -1, 155, -1, -1, -1, -1, -1, -1, -1,
2625  197, -1, 62, 29, 64, 65, 66, 67, -1, 206,
2626  207, 208, 209, 210, 211, 41, 42, -1, -1, -1,
2627  -1, -1, -1, 49, -1, -1, -1, -1, -1, -1,
2628  -1, -1, -1, -1, 197, -1, 62, -1, 64, 65,
2629  66, 67, -1, 206, 207, 208, 209, 210, 211, 109,
2630  110, 111, 112, 113, 114, -1, -1, -1, -1, -1,
2631  -1, -1, -1, -1, -1, -1, 126, 127, 128, 129,
2632  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2633  -1, 141, -1, 109, 110, 111, 112, 113, 114, -1,
2634  -1, -1, -1, -1, -1, 155, -1, -1, -1, -1,
2635  126, 127, 128, 129, -1, -1, 29, -1, -1, -1,
2636  -1, -1, -1, -1, -1, 141, -1, -1, 41, 42,
2637  -1, -1, -1, -1, -1, -1, 49, -1, -1, 155,
2638  -1, -1, -1, -1, -1, -1, -1, 197, -1, 62,
2639  -1, 64, 65, 66, 67, -1, 206, 207, 208, 209,
2640  210, 211, -1, -1, -1, -1, -1, -1, -1, -1,
2641  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2642  -1, 197, -1, -1, -1, -1, -1, -1, -1, -1,
2643  206, 207, 208, 209, 210, 211, 109, 110, 111, 112,
2644  113, 114, -1, -1, -1, -1, -1, -1, -1, -1,
2645  -1, -1, -1, 126, 127, 128, 129, -1, -1, -1,
2646  -1, -1, -1, -1, -1, -1, -1, -1, 141, -1,
2647  -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
2648  4, 5, 155, -1, 8, 9, -1, -1, -1, 13,
2649  -1, 15, 16, 17, -1, -1, -1, 21, 22, 23,
2650  24, 25, -1, 27, 28, -1, 30, 31, -1, 33,
2651  34, 35, 36, 37, -1, -1, -1, -1, -1, -1,
2652  -1, -1, -1, -1, 197, -1, -1, -1, -1, -1,
2653  -1, -1, -1, 206, 207, 208, 209, 210, 211, 63,
2654  -1, -1, -1, -1, -1, 69, 70, 71, 72, 73,
2655  74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2656  84, 85, 86, 87, 88, 89, -1, 91, -1, -1,
2657  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2658  -1, -1, -1, -1, 108, -1, -1, -1, -1, -1,
2659  -1, -1, -1, -1, -1, 119, 120, -1, -1, -1,
2660  -1, -1, -1, -1, -1, -1, -1, 131, 132, 133,
2661  134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
2662  -1, -1, -1, -1, -1, -1, -1, -1, 152, 153,
2663  154, -1, -1, 157, 158, 159, 3, 4, 5, -1,
2664  -1, 8, 9, -1, -1, -1, 13, -1, 15, 16,
2665  17, -1, -1, -1, 21, 22, 23, 24, 25, -1,
2666  27, 28, -1, 30, 31, -1, 33, 34, 35, 36,
2667  37, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2668  -1, -1, -1, -1, 51, -1, -1, -1, -1, -1,
2669  -1, -1, -1, -1, -1, -1, 63, -1, -1, -1,
2670  -1, -1, 69, 70, 71, 72, 73, 74, 75, -1,
2671  77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2672  87, 88, 89, -1, 91, -1, -1, -1, -1, -1,
2673  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2674  -1, 108, -1, -1, -1, -1, -1, -1, -1, -1,
2675  -1, -1, 119, 120, -1, -1, -1, -1, -1, -1,
2676  -1, -1, -1, -1, 131, 132, 133, 134, 135, 136,
2677  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2678  -1, -1, -1, -1, -1, 152, 153, 154, -1, -1,
2679  157, -1, 159, 3, 4, 5, -1, -1, 8, 9,
2680  -1, -1, -1, 13, -1, 15, 16, 17, -1, -1,
2681  -1, 21, 22, 23, 24, 25, -1, 27, 28, -1,
2682  30, 31, -1, 33, 34, 35, 36, 37, -1, -1,
2683  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2684  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2685  -1, -1, -1, 63, -1, -1, -1, -1, -1, 69,
2686  70, 71, 72, 73, 74, 75, -1, 77, 78, 79,
2687  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2688  -1, 91, -1, -1, -1, -1, -1, -1, -1, -1,
2689  -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
2690  -1, -1, -1, -1, -1, -1, -1, -1, -1, 119,
2691  120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2692  -1, 131, 132, 133, 134, 135, 136, -1, -1, -1,
2693  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2694  -1, -1, 152, 153, 154, -1, -1, 157, -1, 159,
2695  3, 4, 5, -1, -1, 8, 9, -1, -1, -1,
2696  13, -1, 15, 16, 17, -1, -1, -1, 21, 22,
2697  23, 24, 25, -1, 27, 28, -1, 30, 31, -1,
2698  33, 34, 35, 36, 37, -1, -1, -1, -1, -1,
2699  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2700  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2701  63, -1, -1, -1, -1, -1, 69, 70, 71, 72,
2702  73, 74, 75, -1, 77, 78, 79, 80, 81, 82,
2703  83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
2704  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2705  -1, -1, -1, -1, -1, 108, -1, -1, -1, -1,
2706  -1, -1, -1, -1, -1, -1, 119, 120, -1, -1,
2707  -1, -1, -1, -1, -1, -1, -1, -1, 131, 132,
2708  133, 134, 135, 136, -1, -1, -1, -1, -1, -1,
2709  -1, -1, -1, -1, -1, -1, -1, -1, -1, 152,
2710  153, 154, 3, 4, 5, -1, 159, 8, 9, -1,
2711  -1, -1, 13, -1, 15, 16, 17, -1, -1, -1,
2712  21, 22, 23, 24, 25, -1, 27, 28, -1, 30,
2713  31, -1, 33, 34, 35, 36, 37, -1, -1, -1,
2714  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2715  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2716  -1, -1, 63, -1, -1, -1, -1, -1, 69, 70,
2717  71, 72, 73, 74, -1, -1, 77, 78, 79, 80,
2718  81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
2719  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2720  -1, -1, -1, -1, -1, -1, -1, 108, -1, -1,
2721  -1, -1, -1, -1, -1, -1, -1, -1, 119, 120,
2722  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2723  -1, 132, 133, 134, 135, 136, -1, -1, -1, -1,
2724  -1, -1, -1, 3, 4, 5, -1, -1, 8, 9,
2725  -1, 152, 153, 13, -1, -1, 16, 17, 159, -1,
2726  -1, 21, 22, 23, 24, 25, 3, 27, 28, -1,
2727  30, -1, 9, 33, -1, 35, 36, 37, -1, 16,
2728  -1, -1, -1, -1, 21, -1, -1, 24, 25, -1,
2729  -1, -1, -1, 30, -1, -1, 33, -1, -1, -1,
2730  37, -1, -1, -1, -1, -1, -1, -1, -1, 69,
2731  70, 71, 72, 73, 74, -1, -1, 77, 78, 79,
2732  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2733  -1, -1, -1, -1, -1, -1, 73, 74, -1, -1,
2734  -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
2735  -1, -1, 89, -1, -1, -1, -1, -1, -1, 119,
2736  120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2737  -1, 108, 132, 133, 134, 135, 136, -1, -1, -1,
2738  -1, -1, 119, 120, -1, -1, -1, -1, -1, -1,
2739  -1, -1, 152, 153, -1, -1, -1, -1, 135, 159,
2740  4, 5, -1, -1, 8, 9, -1, -1, -1, 13,
2741  -1, 15, -1, 17, -1, 152, 153, -1, 22, 23,
2742  -1, 25, 159, 27, 28, -1, -1, 31, -1, -1,
2743  34, 35, 36, 37, -1, -1, -1, -1, -1, -1,
2744  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2745  -1, -1, -1, -1, -1, -1, -1, -1, -1, 63,
2746  -1, -1, -1, -1, -1, 69, 70, 71, 72, 73,
2747  74, 75, -1, 77, 78, 79, 80, 81, 82, 83,
2748  84, 85, 86, 87, 88, -1, -1, 91, -1, -1,
2749  -1, -1, 4, 5, -1, -1, 8, 9, -1, -1,
2750  -1, 13, -1, 15, 108, 17, -1, -1, -1, -1,
2751  22, 23, -1, 25, -1, 27, 28, -1, -1, 31,
2752  -1, -1, 34, 35, 36, 37, -1, 131, 132, 133,
2753  134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
2754  -1, -1, -1, -1, -1, -1, -1, -1, 152, 153,
2755  154, 63, -1, 157, -1, -1, -1, 69, 70, 71,
2756  72, 73, 74, 75, -1, 77, 78, 79, 80, 81,
2757  82, 83, 84, 85, 86, 87, 88, -1, -1, 4,
2758  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2759  -1, -1, 17, -1, -1, -1, 108, 22, 23, -1,
2760  25, -1, 27, 28, -1, -1, -1, -1, -1, -1,
2761  35, 36, 37, -1, -1, -1, -1, -1, -1, 131,
2762  132, 133, 134, 135, 136, -1, -1, -1, -1, -1,
2763  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2764  152, 153, 154, -1, 69, 70, 71, 72, 73, 74,
2765  -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
2766  85, 86, 87, 88, -1, -1, -1, -1, -1, -1,
2767  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2768  -1, -1, -1, 108, -1, -1, -1, -1, -1, -1,
2769  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2770  -1, -1, -1, -1, -1, -1, -1, 132, 133, 134,
2771  135, 136, -1, -1, -1, -1, -1, -1, -1, -1,
2772  -1, -1, -1, -1, -1, -1, -1, 152, 153
2773 };
2774 
2775  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2776  symbol of state STATE-NUM. */
2777 static const yytype_uint16 yystos[] =
2778 {
2779  0, 3, 4, 5, 8, 9, 13, 15, 16, 17,
2780  21, 22, 23, 24, 25, 27, 28, 30, 31, 33,
2781  34, 35, 36, 37, 62, 63, 69, 70, 71, 72,
2782  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2783  83, 84, 85, 86, 87, 88, 89, 90, 91, 108,
2784  119, 120, 131, 132, 133, 134, 135, 136, 141, 152,
2785  153, 154, 157, 158, 159, 197, 204, 207, 216, 220,
2786  222, 223, 224, 267, 268, 269, 276, 280, 281, 282,
2787  283, 286, 287, 291, 292, 293, 294, 295, 296, 297,
2788  298, 299, 300, 301, 302, 306, 308, 309, 310, 311,
2789  313, 317, 321, 333, 336, 389, 390, 391, 392, 393,
2790  404, 414, 415, 416, 417, 197, 197, 207, 224, 405,
2791  406, 407, 408, 409, 410, 411, 412, 414, 197, 197,
2792  197, 197, 214, 202, 202, 202, 67, 197, 197, 197,
2793  415, 417, 68, 284, 286, 288, 321, 414, 414, 0,
2794  321, 322, 323, 220, 199, 220, 199, 220, 220, 405,
2795  220, 405, 224, 285, 286, 299, 301, 308, 309, 310,
2796  321, 414, 224, 286, 299, 301, 308, 309, 310, 321,
2797  414, 285, 309, 286, 308, 309, 285, 286, 308, 285,
2798  285, 285, 286, 308, 283, 308, 283, 308, 322, 322,
2799  322, 391, 143, 241, 197, 202, 420, 422, 424, 29,
2800  41, 42, 49, 64, 65, 66, 67, 109, 110, 111,
2801  112, 113, 114, 126, 127, 128, 129, 150, 151, 155,
2802  197, 206, 207, 208, 209, 210, 211, 223, 225, 226,
2803  227, 228, 229, 230, 231, 234, 235, 236, 237, 239,
2804  243, 244, 247, 248, 249, 250, 251, 252, 253, 254,
2805  255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2806  322, 347, 197, 207, 224, 323, 409, 411, 413, 197,
2807  284, 406, 408, 411, 420, 90, 273, 274, 275, 321,
2808  228, 197, 264, 25, 62, 63, 198, 199, 303, 304,
2809  305, 347, 264, 264, 264, 264, 347, 347, 263, 198,
2810  198, 205, 288, 414, 321, 414, 322, 275, 275, 322,
2811  322, 322, 322, 270, 322, 283, 283, 322, 271, 322,
2812  322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
2813  306, 307, 223, 224, 334, 346, 197, 144, 242, 198,
2814  421, 423, 203, 207, 263, 265, 286, 289, 290, 308,
2815  321, 202, 197, 247, 197, 247, 247, 346, 369, 197,
2816  197, 197, 197, 197, 197, 247, 359, 359, 359, 359,
2817  248, 248, 197, 264, 347, 358, 359, 248, 248, 248,
2818  248, 248, 248, 40, 41, 42, 197, 201, 202, 52,
2819  53, 54, 55, 56, 57, 58, 59, 60, 61, 219,
2820  207, 212, 213, 208, 209, 43, 44, 45, 46, 214,
2821  215, 47, 48, 206, 216, 217, 49, 147, 50, 145,
2822  146, 218, 198, 199, 281, 283, 292, 294, 298, 300,
2823  302, 198, 413, 197, 414, 198, 198, 420, 413, 197,
2824  408, 411, 19, 37, 374, 273, 219, 198, 92, 93,
2825  94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2826  105, 318, 319, 320, 198, 197, 198, 304, 215, 203,
2827  203, 203, 198, 198, 198, 199, 420, 272, 405, 277,
2828  278, 219, 348, 348, 314, 346, 204, 322, 335, 248,
2829  262, 197, 358, 394, 281, 283, 286, 292, 298, 308,
2830  396, 397, 398, 399, 400, 401, 402, 403, 223, 342,
2831  343, 280, 281, 282, 283, 341, 344, 345, 203, 203,
2832  203, 265, 289, 207, 265, 347, 347, 347, 263, 347,
2833  263, 347, 347, 204, 204, 267, 280, 281, 282, 283,
2834  267, 263, 198, 198, 198, 204, 223, 224, 245, 198,
2835  246, 263, 245, 264, 263, 263, 263, 263, 263, 263,
2836  263, 263, 263, 263, 263, 248, 248, 248, 249, 249,
2837  250, 250, 251, 251, 251, 251, 252, 252, 253, 254,
2838  255, 256, 257, 258, 260, 260, 200, 264, 263, 197,
2839  207, 216, 418, 420, 425, 427, 418, 198, 198, 420,
2840  420, 198, 198, 413, 37, 19, 197, 204, 265, 349,
2841  220, 197, 197, 197, 197, 197, 198, 199, 64, 67,
2842  303, 202, 202, 263, 348, 275, 348, 348, 349, 204,
2843  315, 316, 337, 338, 339, 346, 204, 198, 262, 405,
2844  308, 308, 308, 397, 224, 285, 309, 317, 336, 285,
2845  309, 285, 405, 199, 220, 198, 199, 197, 207, 216,
2846  408, 414, 419, 422, 426, 428, 408, 414, 419, 197,
2847  207, 414, 419, 414, 419, 198, 199, 203, 203, 203,
2848  198, 198, 198, 199, 199, 199, 199, 198, 267, 267,
2849  197, 230, 405, 405, 414, 414, 230, 199, 204, 248,
2850  6, 7, 10, 11, 12, 18, 19, 20, 26, 32,
2851  39, 68, 90, 91, 106, 107, 115, 118, 137, 139,
2852  205, 223, 224, 264, 266, 267, 346, 354, 355, 356,
2853  357, 358, 360, 361, 362, 364, 366, 367, 370, 371,
2854  372, 373, 198, 199, 203, 262, 200, 420, 425, 427,
2855  284, 418, 420, 198, 228, 375, 376, 201, 202, 223,
2856  245, 349, 350, 351, 352, 353, 264, 264, 223, 67,
2857  67, 198, 319, 198, 198, 219, 264, 264, 198, 279,
2858  220, 268, 322, 324, 325, 326, 327, 328, 204, 322,
2859  205, 199, 322, 337, 198, 322, 322, 322, 322, 346,
2860  346, 322, 322, 322, 405, 395, 396, 343, 198, 426,
2861  428, 284, 419, 322, 322, 284, 322, 322, 395, 51,
2862  345, 347, 347, 347, 238, 245, 264, 264, 11, 232,
2863  233, 347, 350, 351, 220, 265, 220, 200, 354, 365,
2864  224, 264, 197, 220, 264, 197, 197, 205, 374, 197,
2865  368, 369, 68, 204, 358, 220, 358, 220, 200, 205,
2866  354, 263, 262, 198, 198, 198, 418, 198, 200, 377,
2867  245, 264, 200, 199, 205, 201, 202, 219, 349, 198,
2868  198, 198, 198, 198, 303, 203, 203, 348, 220, 281,
2869  283, 205, 326, 199, 220, 199, 220, 324, 322, 339,
2870  219, 340, 205, 322, 322, 198, 198, 419, 198, 198,
2871  198, 40, 198, 201, 202, 205, 205, 200, 198, 199,
2872  200, 199, 205, 51, 200, 354, 39, 197, 220, 220,
2873  264, 220, 264, 266, 197, 204, 197, 199, 220, 68,
2874  116, 117, 138, 140, 321, 354, 420, 420, 202, 228,
2875  378, 379, 200, 380, 51, 203, 349, 205, 352, 245,
2876  264, 349, 198, 199, 200, 329, 332, 405, 330, 332,
2877  414, 322, 330, 329, 205, 265, 322, 197, 422, 245,
2878  245, 264, 263, 233, 263, 205, 265, 354, 197, 355,
2879  361, 363, 198, 198, 198, 375, 68, 104, 369, 205,
2880  358, 197, 358, 358, 220, 346, 197, 199, 202, 228,
2881  381, 382, 200, 383, 264, 51, 203, 303, 265, 322,
2882  331, 332, 322, 331, 312, 322, 203, 200, 264, 266,
2883  354, 354, 142, 240, 198, 205, 198, 264, 203, 264,
2884  378, 346, 197, 199, 228, 384, 385, 200, 386, 203,
2885  264, 219, 322, 322, 312, 354, 198, 220, 14, 197,
2886  354, 220, 198, 198, 228, 198, 203, 264, 381, 199,
2887  369, 387, 388, 203, 303, 240, 266, 354, 262, 220,
2888  358, 197, 228, 198, 384, 199, 198, 220, 198, 198,
2889  356, 264, 197, 388, 240, 198, 264, 354, 198
2890 };
2891 
2892  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2893 static const yytype_uint16 yyr1[] =
2894 {
2895  0, 221, 222, 223, 223, 224, 225, 226, 227, 228,
2896  229, 229, 229, 229, 230, 230, 230, 230, 230, 230,
2897  230, 230, 230, 230, 231, 232, 232, 233, 233, 234,
2898  234, 235, 236, 237, 238, 238, 238, 238, 239, 239,
2899  239, 239, 240, 240, 241, 241, 242, 242, 243, 244,
2900  244, 244, 244, 244, 244, 244, 244, 244, 244, 245,
2901  245, 246, 246, 247, 247, 247, 247, 247, 247, 247,
2902  247, 247, 247, 247, 247, 247, 247, 248, 248, 248,
2903  248, 249, 249, 249, 249, 250, 250, 250, 251, 251,
2904  251, 252, 252, 252, 252, 252, 253, 253, 253, 254,
2905  254, 255, 255, 256, 256, 257, 257, 258, 258, 259,
2906  259, 260, 260, 261, 261, 262, 262, 262, 263, 263,
2907  263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
2908  264, 264, 265, 266, 266, 267, 267, 267, 267, 267,
2909  268, 270, 269, 271, 269, 272, 269, 273, 273, 274,
2910  274, 275, 275, 277, 276, 278, 276, 276, 279, 276,
2911  280, 280, 280, 280, 280, 281, 281, 281, 281, 281,
2912  282, 282, 282, 282, 282, 283, 283, 283, 284, 284,
2913  285, 285, 286, 286, 286, 286, 286, 286, 286, 286,
2914  286, 287, 287, 288, 288, 289, 289, 289, 290, 290,
2915  291, 291, 291, 291, 292, 292, 292, 292, 293, 293,
2916  293, 294, 294, 294, 295, 295, 295, 296, 296, 296,
2917  297, 297, 297, 298, 298, 298, 299, 299, 300, 300,
2918  300, 300, 301, 302, 302, 302, 302, 303, 303, 303,
2919  304, 304, 304, 304, 304, 304, 305, 305, 306, 306,
2920  307, 307, 308, 308, 308, 308, 308, 308, 308, 308,
2921  308, 308, 309, 309, 309, 309, 309, 309, 309, 309,
2922  309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
2923  309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
2924  309, 309, 309, 310, 310, 310, 311, 312, 314, 313,
2925  315, 313, 316, 313, 317, 317, 318, 318, 318, 318,
2926  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
2927  319, 319, 320, 320, 321, 321, 322, 322, 323, 323,
2928  324, 324, 325, 325, 326, 326, 326, 326, 327, 327,
2929  328, 328, 329, 329, 329, 330, 330, 331, 331, 332,
2930  334, 333, 335, 333, 333, 336, 337, 337, 338, 338,
2931  338, 339, 340, 340, 341, 341, 342, 342, 343, 344,
2932  344, 345, 345, 345, 345, 345, 345, 345, 345, 345,
2933  345, 345, 345, 345, 345, 346, 346, 347, 347, 347,
2934  347, 348, 348, 349, 349, 349, 350, 350, 351, 351,
2935  352, 352, 352, 352, 353, 353, 353, 353, 353, 353,
2936  354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
2937  354, 354, 354, 355, 356, 356, 356, 356, 356, 357,
2938  358, 358, 358, 359, 360, 360, 361, 362, 362, 362,
2939  363, 363, 364, 364, 365, 364, 366, 366, 366, 366,
2940  366, 366, 367, 368, 368, 369, 370, 370, 371, 371,
2941  372, 372, 372, 373, 373, 373, 374, 374, 374, 374,
2942  374, 375, 375, 375, 375, 375, 376, 377, 377, 378,
2943  378, 379, 379, 380, 380, 381, 381, 382, 382, 383,
2944  383, 384, 385, 385, 386, 386, 387, 387, 388, 389,
2945  389, 390, 390, 391, 391, 391, 391, 392, 392, 393,
2946  394, 395, 395, 396, 396, 397, 398, 398, 398, 399,
2947  399, 399, 399, 400, 400, 400, 401, 401, 402, 402,
2948  402, 403, 403, 403, 404, 404, 404, 404, 404, 405,
2949  405, 405, 406, 406, 406, 407, 407, 408, 408, 408,
2950  409, 409, 409, 410, 410, 411, 411, 411, 411, 411,
2951  412, 412, 412, 413, 413, 414, 414, 415, 415, 415,
2952  415, 416, 416, 416, 417, 417, 418, 418, 418, 419,
2953  419, 420, 420, 421, 420, 422, 422, 423, 422, 424,
2954  424, 424, 424, 424, 424, 424, 425, 425, 425, 425,
2955  425, 426, 426, 426, 426, 426, 427, 427, 427, 427,
2956  427, 428, 428, 428, 428
2957 };
2958 
2959  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2960 static const yytype_uint8 yyr2[] =
2961 {
2962  0, 2, 1, 1, 2, 1, 1, 1, 1, 1,
2963  1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
2964  1, 1, 1, 1, 6, 1, 3, 3, 3, 6,
2965  6, 6, 4, 6, 1, 3, 4, 3, 6, 4,
2966  6, 4, 0, 4, 0, 4, 0, 4, 3, 1,
2967  4, 3, 4, 3, 3, 2, 2, 6, 7, 1,
2968  1, 1, 3, 1, 2, 2, 2, 2, 2, 2,
2969  2, 2, 2, 2, 4, 2, 4, 1, 4, 2,
2970  2, 1, 3, 3, 3, 1, 3, 3, 1, 3,
2971  3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
2972  3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
2973  3, 1, 3, 1, 3, 1, 5, 4, 1, 3,
2974  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2975  1, 3, 1, 0, 1, 2, 2, 2, 2, 2,
2976  6, 0, 4, 0, 4, 0, 5, 5, 1, 2,
2977  1, 0, 1, 0, 5, 0, 5, 5, 0, 7,
2978  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2979  1, 2, 1, 2, 2, 1, 2, 2, 1, 2,
2980  1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
2981  1, 4, 4, 1, 1, 1, 1, 1, 1, 2,
2982  3, 3, 3, 3, 2, 3, 2, 3, 2, 2,
2983  2, 1, 2, 2, 3, 3, 3, 3, 3, 3,
2984  3, 3, 3, 2, 3, 3, 4, 4, 1, 2,
2985  3, 2, 4, 1, 2, 3, 2, 1, 1, 1,
2986  1, 4, 4, 6, 10, 1, 1, 2, 4, 3,
2987  0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2988  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2989  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2990  1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
2991  7, 7, 1, 1, 1, 1, 4, 0, 0, 9,
2992  0, 10, 0, 6, 1, 1, 1, 1, 4, 1,
2993  4, 4, 1, 1, 4, 4, 1, 1, 1, 1,
2994  0, 1, 1, 3, 6, 1, 0, 1, 1, 2,
2995  0, 1, 1, 2, 2, 2, 1, 2, 3, 3,
2996  3, 3, 3, 0, 2, 3, 2, 0, 1, 2,
2997  0, 7, 0, 8, 4, 1, 0, 1, 1, 3,
2998  2, 3, 0, 2, 1, 3, 1, 3, 1, 1,
2999  3, 1, 2, 3, 2, 1, 2, 3, 1, 2,
3000  3, 2, 1, 2, 3, 1, 1, 2, 3, 2,
3001  3, 0, 2, 1, 3, 4, 1, 3, 1, 0,
3002  1, 3, 2, 3, 2, 3, 5, 4, 6, 3,
3003  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3004  1, 1, 1, 1, 4, 3, 4, 6, 3, 8,
3005  3, 4, 4, 0, 1, 2, 2, 5, 7, 5,
3006  1, 1, 6, 8, 0, 10, 3, 3, 2, 2,
3007  2, 3, 3, 1, 3, 1, 6, 5, 4, 2,
3008  7, 4, 1, 2, 4, 4, 0, 1, 1, 2,
3009  2, 1, 2, 3, 4, 5, 1, 2, 1, 4,
3010  7, 1, 3, 2, 1, 4, 7, 1, 3, 2,
3011  1, 1, 1, 3, 2, 1, 1, 3, 1, 0,
3012  1, 1, 2, 1, 1, 1, 1, 5, 3, 4,
3013  1, 0, 1, 1, 2, 2, 1, 2, 2, 3,
3014  3, 3, 3, 3, 3, 3, 4, 4, 1, 1,
3015  1, 2, 2, 3, 1, 2, 2, 2, 2, 1,
3016  1, 1, 4, 5, 2, 1, 1, 1, 2, 1,
3017  1, 2, 3, 3, 4, 1, 4, 5, 2, 3,
3018  3, 4, 4, 1, 3, 1, 1, 1, 2, 2,
3019  3, 2, 3, 4, 1, 3, 1, 1, 1, 1,
3020  1, 1, 3, 0, 5, 1, 2, 0, 5, 2,
3021  3, 3, 3, 4, 4, 4, 1, 2, 2, 3,
3022  1, 1, 2, 2, 3, 1, 3, 3, 3, 4,
3023  4, 3, 3, 1, 4
3024 };
3025 
3026 
3027 #define yyerrok (yyerrstatus = 0)
3028 #define yyclearin (yychar = YYEMPTY)
3029 #define YYEMPTY (-2)
3030 #define YYEOF 0
3031 
3032 #define YYACCEPT goto yyacceptlab
3033 #define YYABORT goto yyabortlab
3034 #define YYERROR goto yyerrorlab
3035 
3036 
3037 #define YYRECOVERING() (!!yyerrstatus)
3038 
3039 #define YYBACKUP(Token, Value) \
3040 do \
3041  if (yychar == YYEMPTY) \
3042  { \
3043  yychar = (Token); \
3044  yylval = (Value); \
3045  YYPOPSTACK (yylen); \
3046  yystate = *yyssp; \
3047  goto yybackup; \
3048  } \
3049  else \
3050  { \
3051  yyerror (YY_("syntax error: cannot back up")); \
3052  YYERROR; \
3053  } \
3054 while (0)
3055 
3056 /* Error token number */
3057 #define YYTERROR 1
3058 #define YYERRCODE 256
3059 
3060 
3061 
3062 /* Enable debugging if requested. */
3063 #if YYDEBUG
3064 
3065 # ifndef YYFPRINTF
3066 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3067 # define YYFPRINTF fprintf
3068 # endif
3069 
3070 # define YYDPRINTF(Args) \
3071 do { \
3072  if (yydebug) \
3073  YYFPRINTF Args; \
3074 } while (0)
3075 
3076 /* This macro is provided for backward compatibility. */
3077 #ifndef YY_LOCATION_PRINT
3078 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3079 #endif
3080 
3081 
3082 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3083 do { \
3084  if (yydebug) \
3085  { \
3086  YYFPRINTF (stderr, "%s ", Title); \
3087  yy_symbol_print (stderr, \
3088  Type, Value); \
3089  YYFPRINTF (stderr, "\n"); \
3090  } \
3091 } while (0)
3092 
3093 
3094 /*----------------------------------------.
3095 | Print this symbol's value on YYOUTPUT. |
3096 `----------------------------------------*/
3097 
3098 static void
3099 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3100 {
3101  FILE *yyo = yyoutput;
3102  YYUSE (yyo);
3103  if (!yyvaluep)
3104  return;
3105 # ifdef YYPRINT
3106  if (yytype < YYNTOKENS)
3107  YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3108 # endif
3109  YYUSE (yytype);
3110 }
3111 
3112 
3113 /*--------------------------------.
3114 | Print this symbol on YYOUTPUT. |
3115 `--------------------------------*/
3116 
3117 static void
3118 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3119 {
3120  YYFPRINTF (yyoutput, "%s %s (",
3121  yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3122 
3123  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
3124  YYFPRINTF (yyoutput, ")");
3125 }
3126 
3127 /*------------------------------------------------------------------.
3128 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3129 | TOP (included). |
3130 `------------------------------------------------------------------*/
3131 
3132 static void
3133 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3134 {
3135  YYFPRINTF (stderr, "Stack now");
3136  for (; yybottom <= yytop; yybottom++)
3137  {
3138  int yybot = *yybottom;
3139  YYFPRINTF (stderr, " %d", yybot);
3140  }
3141  YYFPRINTF (stderr, "\n");
3142 }
3143 
3144 # define YY_STACK_PRINT(Bottom, Top) \
3145 do { \
3146  if (yydebug) \
3147  yy_stack_print ((Bottom), (Top)); \
3148 } while (0)
3149 
3150 
3151 /*------------------------------------------------.
3152 | Report that the YYRULE is going to be reduced. |
3153 `------------------------------------------------*/
3154 
3155 static void
3156 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
3157 {
3158  unsigned long int yylno = yyrline[yyrule];
3159  int yynrhs = yyr2[yyrule];
3160  int yyi;
3161  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3162  yyrule - 1, yylno);
3163  /* The symbols being reduced. */
3164  for (yyi = 0; yyi < yynrhs; yyi++)
3165  {
3166  YYFPRINTF (stderr, " $%d = ", yyi + 1);
3167  yy_symbol_print (stderr,
3168  yystos[yyssp[yyi + 1 - yynrhs]],
3169  &(yyvsp[(yyi + 1) - (yynrhs)])
3170  );
3171  YYFPRINTF (stderr, "\n");
3172  }
3173 }
3174 
3175 # define YY_REDUCE_PRINT(Rule) \
3176 do { \
3177  if (yydebug) \
3178  yy_reduce_print (yyssp, yyvsp, Rule); \
3179 } while (0)
3180 
3181 /* Nonzero means print parse trace. It is left uninitialized so that
3182  multiple parsers can coexist. */
3183 int yydebug;
3184 #else /* !YYDEBUG */
3185 # define YYDPRINTF(Args)
3186 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3187 # define YY_STACK_PRINT(Bottom, Top)
3188 # define YY_REDUCE_PRINT(Rule)
3189 #endif /* !YYDEBUG */
3190 
3191 
3192 /* YYINITDEPTH -- initial size of the parser's stacks. */
3193 #ifndef YYINITDEPTH
3194 # define YYINITDEPTH 200
3195 #endif
3196 
3197 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3198  if the built-in stack extension method is used).
3199 
3200  Do not make this value too large; the results are undefined if
3201  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3202  evaluated with infinite-precision integer arithmetic. */
3203 
3204 #ifndef YYMAXDEPTH
3205 # define YYMAXDEPTH 10000
3206 #endif
3207 
3208 
3209 #if YYERROR_VERBOSE
3210 
3211 # ifndef yystrlen
3212 # if defined __GLIBC__ && defined _STRING_H
3213 # define yystrlen strlen
3214 # else
3215 /* Return the length of YYSTR. */
3216 static YYSIZE_T
3217 yystrlen (const char *yystr)
3218 {
3219  YYSIZE_T yylen;
3220  for (yylen = 0; yystr[yylen]; yylen++)
3221  continue;
3222  return yylen;
3223 }
3224 # endif
3225 # endif
3226 
3227 # ifndef yystpcpy
3228 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3229 # define yystpcpy stpcpy
3230 # else
3231 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3232  YYDEST. */
3233 static char *
3234 yystpcpy (char *yydest, const char *yysrc)
3235 {
3236  char *yyd = yydest;
3237  const char *yys = yysrc;
3238 
3239  while ((*yyd++ = *yys++) != '\0')
3240  continue;
3241 
3242  return yyd - 1;
3243 }
3244 # endif
3245 # endif
3246 
3247 # ifndef yytnamerr
3248 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3249  quotes and backslashes, so that it's suitable for yyerror. The
3250  heuristic is that double-quoting is unnecessary unless the string
3251  contains an apostrophe, a comma, or backslash (other than
3252  backslash-backslash). YYSTR is taken from yytname. If YYRES is
3253  null, do not copy; instead, return the length of what the result
3254  would have been. */
3255 static YYSIZE_T
3256 yytnamerr (char *yyres, const char *yystr)
3257 {
3258  if (*yystr == '"')
3259  {
3260  YYSIZE_T yyn = 0;
3261  char const *yyp = yystr;
3262 
3263  for (;;)
3264  switch (*++yyp)
3265  {
3266  case '\'':
3267  case ',':
3268  goto do_not_strip_quotes;
3269 
3270  case '\\':
3271  if (*++yyp != '\\')
3272  goto do_not_strip_quotes;
3273  /* Fall through. */
3274  default:
3275  if (yyres)
3276  yyres[yyn] = *yyp;
3277  yyn++;
3278  break;
3279 
3280  case '"':
3281  if (yyres)
3282  yyres[yyn] = '\0';
3283  return yyn;
3284  }
3285  do_not_strip_quotes: ;
3286  }
3287 
3288  if (! yyres)
3289  return yystrlen (yystr);
3290 
3291  return yystpcpy (yyres, yystr) - yyres;
3292 }
3293 # endif
3294 
3295 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3296  about the unexpected token YYTOKEN for the state stack whose top is
3297  YYSSP.
3298 
3299  Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
3300  not large enough to hold the message. In that case, also set
3301  *YYMSG_ALLOC to the required number of bytes. Return 2 if the
3302  required number of bytes is too large to store. */
3303 static int
3304 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3305  yytype_int16 *yyssp, int yytoken)
3306 {
3307  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3308  YYSIZE_T yysize = yysize0;
3309  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3310  /* Internationalized format string. */
3311  const char *yyformat = YY_NULLPTR;
3312  /* Arguments of yyformat. */
3313  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3314  /* Number of reported tokens (one for the "unexpected", one per
3315  "expected"). */
3316  int yycount = 0;
3317 
3318  /* There are many possibilities here to consider:
3319  - If this state is a consistent state with a default action, then
3320  the only way this function was invoked is if the default action
3321  is an error action. In that case, don't check for expected
3322  tokens because there are none.
3323  - The only way there can be no lookahead present (in yychar) is if
3324  this state is a consistent state with a default action. Thus,
3325  detecting the absence of a lookahead is sufficient to determine
3326  that there is no unexpected or expected token to report. In that
3327  case, just report a simple "syntax error".
3328  - Don't assume there isn't a lookahead just because this state is a
3329  consistent state with a default action. There might have been a
3330  previous inconsistent state, consistent state with a non-default
3331  action, or user semantic action that manipulated yychar.
3332  - Of course, the expected token list depends on states to have
3333  correct lookahead information, and it depends on the parser not
3334  to perform extra reductions after fetching a lookahead from the
3335  scanner and before detecting a syntax error. Thus, state merging
3336  (from LALR or IELR) and default reductions corrupt the expected
3337  token list. However, the list is correct for canonical LR with
3338  one exception: it will still contain any token that will not be
3339  accepted due to an error action in a later state.
3340  */
3341  if (yytoken != YYEMPTY)
3342  {
3343  int yyn = yypact[*yyssp];
3344  yyarg[yycount++] = yytname[yytoken];
3345  if (!yypact_value_is_default (yyn))
3346  {
3347  /* Start YYX at -YYN if negative to avoid negative indexes in
3348  YYCHECK. In other words, skip the first -YYN actions for
3349  this state because they are default actions. */
3350  int yyxbegin = yyn < 0 ? -yyn : 0;
3351  /* Stay within bounds of both yycheck and yytname. */
3352  int yychecklim = YYLAST - yyn + 1;
3353  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3354  int yyx;
3355 
3356  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3357  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3358  && !yytable_value_is_error (yytable[yyx + yyn]))
3359  {
3360  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3361  {
3362  yycount = 1;
3363  yysize = yysize0;
3364  break;
3365  }
3366  yyarg[yycount++] = yytname[yyx];
3367  {
3368  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3369  if (! (yysize <= yysize1
3370  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3371  return 2;
3372  yysize = yysize1;
3373  }
3374  }
3375  }
3376  }
3377 
3378  switch (yycount)
3379  {
3380 # define YYCASE_(N, S) \
3381  case N: \
3382  yyformat = S; \
3383  break
3384  default: /* Avoid compiler warnings. */
3385  YYCASE_(0, YY_("syntax error"));
3386  YYCASE_(1, YY_("syntax error, unexpected %s"));
3387  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3388  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3389  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3390  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3391 # undef YYCASE_
3392  }
3393 
3394  {
3395  YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3396  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3397  return 2;
3398  yysize = yysize1;
3399  }
3400 
3401  if (*yymsg_alloc < yysize)
3402  {
3403  *yymsg_alloc = 2 * yysize;
3404  if (! (yysize <= *yymsg_alloc
3405  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3406  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3407  return 1;
3408  }
3409 
3410  /* Avoid sprintf, as that infringes on the user's name space.
3411  Don't have undefined behavior even if the translation
3412  produced a string with the wrong number of "%s"s. */
3413  {
3414  char *yyp = *yymsg;
3415  int yyi = 0;
3416  while ((*yyp = *yyformat) != '\0')
3417  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3418  {
3419  yyp += yytnamerr (yyp, yyarg[yyi++]);
3420  yyformat += 2;
3421  }
3422  else
3423  {
3424  yyp++;
3425  yyformat++;
3426  }
3427  }
3428  return 0;
3429 }
3430 #endif /* YYERROR_VERBOSE */
3431 
3432 /*-----------------------------------------------.
3433 | Release the memory associated to this symbol. |
3434 `-----------------------------------------------*/
3435 
3436 static void
3437 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3438 {
3439  YYUSE (yyvaluep);
3440  if (!yymsg)
3441  yymsg = "Deleting";
3442  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3443 
3445  YYUSE (yytype);
3447 }
3448 
3449 
3450 
3451 
3452 /* The lookahead symbol. */
3454 
3455 /* The semantic value of the lookahead symbol. */
3457 /* Number of syntax errors so far. */
3459 
3460 
3461 /*----------.
3462 | yyparse. |
3463 `----------*/
3464 
3465 int
3466 yyparse (void)
3467 {
3468  int yystate;
3469  /* Number of tokens to shift before error messages enabled. */
3470  int yyerrstatus;
3471 
3472  /* The stacks and their tools:
3473  'yyss': related to states.
3474  'yyvs': related to semantic values.
3475 
3476  Refer to the stacks through separate pointers, to allow yyoverflow
3477  to reallocate them elsewhere. */
3478 
3479  /* The state stack. */
3480  yytype_int16 yyssa[YYINITDEPTH];
3481  yytype_int16 *yyss;
3482  yytype_int16 *yyssp;
3483 
3484  /* The semantic value stack. */
3485  YYSTYPE yyvsa[YYINITDEPTH];
3486  YYSTYPE *yyvs;
3487  YYSTYPE *yyvsp;
3488 
3489  YYSIZE_T yystacksize;
3490 
3491  int yyn;
3492  int yyresult;
3493  /* Lookahead token as an internal (translated) token number. */
3494  int yytoken = 0;
3495  /* The variables used to return semantic value and location from the
3496  action routines. */
3497  YYSTYPE yyval;
3498 
3499 #if YYERROR_VERBOSE
3500  /* Buffer for error messages, and its allocated size. */
3501  char yymsgbuf[128];
3502  char *yymsg = yymsgbuf;
3503  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3504 #endif
3505 
3506 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3507 
3508  /* The number of symbols on the RHS of the reduced rule.
3509  Keep to zero when no symbol should be popped. */
3510  int yylen = 0;
3511 
3512  yyssp = yyss = yyssa;
3513  yyvsp = yyvs = yyvsa;
3514  yystacksize = YYINITDEPTH;
3515 
3516  YYDPRINTF ((stderr, "Starting parse\n"));
3517 
3518  yystate = 0;
3519  yyerrstatus = 0;
3520  yynerrs = 0;
3521  yychar = YYEMPTY; /* Cause a token to be read. */
3522  goto yysetstate;
3523 
3524 /*------------------------------------------------------------.
3525 | yynewstate -- Push a new state, which is found in yystate. |
3526 `------------------------------------------------------------*/
3527  yynewstate:
3528  /* In all cases, when you get here, the value and location stacks
3529  have just been pushed. So pushing a state here evens the stacks. */
3530  yyssp++;
3531 
3532  yysetstate:
3533  *yyssp = yystate;
3534 
3535  if (yyss + yystacksize - 1 <= yyssp)
3536  {
3537  /* Get the current used size of the three stacks, in elements. */
3538  YYSIZE_T yysize = yyssp - yyss + 1;
3539 
3540 #ifdef yyoverflow
3541  {
3542  /* Give user a chance to reallocate the stack. Use copies of
3543  these so that the &'s don't force the real ones into
3544  memory. */
3545  YYSTYPE *yyvs1 = yyvs;
3546  yytype_int16 *yyss1 = yyss;
3547 
3548  /* Each stack pointer address is followed by the size of the
3549  data in use in that stack, in bytes. This used to be a
3550  conditional around just the two extra args, but that might
3551  be undefined if yyoverflow is a macro. */
3552  yyoverflow (YY_("memory exhausted"),
3553  &yyss1, yysize * sizeof (*yyssp),
3554  &yyvs1, yysize * sizeof (*yyvsp),
3555  &yystacksize);
3556 
3557  yyss = yyss1;
3558  yyvs = yyvs1;
3559  }
3560 #else /* no yyoverflow */
3561 # ifndef YYSTACK_RELOCATE
3562  goto yyexhaustedlab;
3563 # else
3564  /* Extend the stack our own way. */
3565  if (YYMAXDEPTH <= yystacksize)
3566  goto yyexhaustedlab;
3567  yystacksize *= 2;
3568  if (YYMAXDEPTH < yystacksize)
3569  yystacksize = YYMAXDEPTH;
3570 
3571  {
3572  yytype_int16 *yyss1 = yyss;
3573  union yyalloc *yyptr =
3574  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3575  if (! yyptr)
3576  goto yyexhaustedlab;
3577  YYSTACK_RELOCATE (yyss_alloc, yyss);
3578  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3579 # undef YYSTACK_RELOCATE
3580  if (yyss1 != yyssa)
3581  YYSTACK_FREE (yyss1);
3582  }
3583 # endif
3584 #endif /* no yyoverflow */
3585 
3586  yyssp = yyss + yysize - 1;
3587  yyvsp = yyvs + yysize - 1;
3588 
3589  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3590  (unsigned long int) yystacksize));
3591 
3592  if (yyss + yystacksize - 1 <= yyssp)
3593  YYABORT;
3594  }
3595 
3596  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3597 
3598  if (yystate == YYFINAL)
3599  YYACCEPT;
3600 
3601  goto yybackup;
3602 
3603 /*-----------.
3604 | yybackup. |
3605 `-----------*/
3606 yybackup:
3607 
3608  /* Do appropriate processing given the current state. Read a
3609  lookahead token if we need one and don't already have one. */
3610 
3611  /* First try to decide what to do without reference to lookahead token. */
3612  yyn = yypact[yystate];
3613  if (yypact_value_is_default (yyn))
3614  goto yydefault;
3615 
3616  /* Not known => get a lookahead token if don't already have one. */
3617 
3618  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3619  if (yychar == YYEMPTY)
3620  {
3621  YYDPRINTF ((stderr, "Reading a token: "));
3622  yychar = yylex ();
3623  }
3624 
3625  if (yychar <= YYEOF)
3626  {
3627  yychar = yytoken = YYEOF;
3628  YYDPRINTF ((stderr, "Now at end of input.\n"));
3629  }
3630  else
3631  {
3632  yytoken = YYTRANSLATE (yychar);
3633  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3634  }
3635 
3636  /* If the proper action on seeing token YYTOKEN is to reduce or to
3637  detect an error, take that action. */
3638  yyn += yytoken;
3639  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3640  goto yydefault;
3641  yyn = yytable[yyn];
3642  if (yyn <= 0)
3643  {
3644  if (yytable_value_is_error (yyn))
3645  goto yyerrlab;
3646  yyn = -yyn;
3647  goto yyreduce;
3648  }
3649 
3650  /* Count tokens shifted since error; after three, turn off error
3651  status. */
3652  if (yyerrstatus)
3653  yyerrstatus--;
3654 
3655  /* Shift the lookahead token. */
3656  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3657 
3658  /* Discard the shifted token. */
3659  yychar = YYEMPTY;
3660 
3661  yystate = yyn;
3663  *++yyvsp = yylval;
3665 
3666  goto yynewstate;
3667 
3668 
3669 /*-----------------------------------------------------------.
3670 | yydefault -- do the default action for the current state. |
3671 `-----------------------------------------------------------*/
3672 yydefault:
3673  yyn = yydefact[yystate];
3674  if (yyn == 0)
3675  goto yyerrlab;
3676  goto yyreduce;
3677 
3678 
3679 /*-----------------------------.
3680 | yyreduce -- Do a reduction. |
3681 `-----------------------------*/
3682 yyreduce:
3683  /* yyn is the number of a rule to reduce with. */
3684  yylen = yyr2[yyn];
3685 
3686  /* If YYLEN is nonzero, implement the default value of the action:
3687  '$$ = $1'.
3688 
3689  Otherwise, the following line sets YYVAL to garbage.
3690  This behavior is undocumented and Bison
3691  users should not rely upon it. Assigning to YYVAL
3692  unconditionally makes the parser a bit smaller, and it avoids a
3693  GCC warning that YYVAL may be used uninitialized. */
3694  yyval = yyvsp[1-yylen];
3695 
3696 
3697  YY_REDUCE_PRINT (yyn);
3698  switch (yyn)
3699  {
3700  case 4:
3701 #line 275 "parser.y" /* yacc.c:1648 */
3702  {
3703  (yyval)=(yyvsp[-1]);
3704  stack((yyval)).id(ID_symbol);
3705  irep_idt value=stack((yyvsp[0])).get(ID_value);
3706  stack((yyval)).set(ID_C_base_name, value);
3707  stack((yyval)).set(ID_identifier, value);
3708  stack((yyval)).set(
3709  ID_C_id_class, static_cast<int>(ansi_c_id_classt::ANSI_C_SYMBOL));
3710  }
3711 #line 3712 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3712  break;
3713 
3714  case 16:
3715 #line 320 "parser.y" /* yacc.c:1648 */
3716  { (yyval) = (yyvsp[-1]); }
3717 #line 3718 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3718  break;
3719 
3720  case 24:
3721 #line 332 "parser.y" /* yacc.c:1648 */
3722  {
3723  (yyval)=(yyvsp[-5]);
3724  set((yyval), ID_generic_selection);
3725  mto((yyval), (yyvsp[-3]));
3726  stack((yyval)).add(ID_generic_associations).get_sub().swap((irept::subt&)stack((yyvsp[-1])).operands());
3727  }
3728 #line 3729 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3729  break;
3730 
3731  case 25:
3732 #line 342 "parser.y" /* yacc.c:1648 */
3733  {
3734  init((yyval)); mto((yyval), (yyvsp[0]));
3735  }
3736 #line 3737 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3737  break;
3738 
3739  case 26:
3740 #line 346 "parser.y" /* yacc.c:1648 */
3741  {
3742  (yyval)=(yyvsp[-2]); mto((yyval), (yyvsp[0]));
3743  }
3744 #line 3745 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3745  break;
3746 
3747  case 27:
3748 #line 353 "parser.y" /* yacc.c:1648 */
3749  {
3750  (yyval)=(yyvsp[-1]);
3751  stack((yyval)).id(ID_generic_association);
3752  stack((yyval)).set(ID_type_arg, stack((yyvsp[-2])));
3753  stack((yyval)).set(ID_value, stack((yyvsp[0])));
3754  }
3755 #line 3756 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3756  break;
3757 
3758  case 28:
3759 #line 360 "parser.y" /* yacc.c:1648 */
3760  {
3761  (yyval)=(yyvsp[-1]);
3762  stack((yyval)).id(ID_generic_association);
3763  stack((yyval)).set(ID_type_arg, irept(ID_default));
3764  stack((yyval)).set(ID_value, stack((yyvsp[0])));
3765  }
3766 #line 3767 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3767  break;
3768 
3769  case 29:
3770 #line 370 "parser.y" /* yacc.c:1648 */
3771  {
3772  (yyval)=(yyvsp[-5]);
3773  stack((yyval)).id(ID_gcc_builtin_va_arg);
3774  mto((yyval), (yyvsp[-3]));
3775  stack((yyval)).type().swap(stack((yyvsp[-1])));
3776  }
3777 #line 3778 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3778  break;
3779 
3780  case 30:
3781 #line 378 "parser.y" /* yacc.c:1648 */
3782  {
3783  (yyval)=(yyvsp[-5]);
3784  stack((yyval)).id(ID_gcc_builtin_types_compatible_p);
3785  auto &type_arg=static_cast<type_with_subtypest &>(stack((yyval)).add(ID_type_arg));
3786  auto &subtypes=type_arg.subtypes();
3787  subtypes.resize(2);
3788  subtypes[0].swap(stack((yyvsp[-3])));
3789  subtypes[1].swap(stack((yyvsp[-1])));
3790  }
3791 #line 3792 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3792  break;
3793 
3794  case 31:
3795 #line 391 "parser.y" /* yacc.c:1648 */
3796  {
3797  (yyval)=(yyvsp[-5]);
3798  stack((yyval)).id(ID_clang_builtin_convertvector);
3799  mto((yyval), (yyvsp[-3]));
3800  stack((yyval)).type().swap(stack((yyvsp[-1])));
3801  }
3802 #line 3803 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3803  break;
3804 
3805  case 32:
3806 #line 401 "parser.y" /* yacc.c:1648 */
3807  {
3808  (yyval)=(yyvsp[-3]);
3809  stack((yyval)).id(ID_cw_va_arg_typeof);
3810  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
3811  }
3812 #line 3813 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3813  break;
3814 
3815  case 33:
3816 #line 410 "parser.y" /* yacc.c:1648 */
3817  {
3818  (yyval)=(yyvsp[-5]);
3819  stack((yyval)).id(ID_builtin_offsetof);
3820  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-3])));
3821  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-1])));
3822  }
3823 #line 3824 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3824  break;
3825 
3826  case 34:
3827 #line 420 "parser.y" /* yacc.c:1648 */
3828  {
3829  init((yyval), ID_designated_initializer);
3830  stack((yyval)).operands().resize(1);
3831  stack((yyval)).op0().id(ID_member);
3832  stack((yyval)).op0().add_source_location()=stack((yyvsp[0])).source_location();
3833  stack((yyval)).op0().set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3834  }
3835 #line 3836 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3836  break;
3837 
3838  case 35:
3839 #line 428 "parser.y" /* yacc.c:1648 */
3840  {
3841  (yyval)=(yyvsp[-2]);
3842  set((yyvsp[-1]), ID_member);
3843  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3844  mto((yyval), (yyvsp[-1]));
3845  }
3846 #line 3847 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3847  break;
3848 
3849  case 36:
3850 #line 435 "parser.y" /* yacc.c:1648 */
3851  {
3852  (yyval)=(yyvsp[-3]);
3853  set((yyvsp[-2]), ID_index);
3854  mto((yyvsp[-2]), (yyvsp[-1]));
3855  mto((yyval), (yyvsp[-2]));
3856  }
3857 #line 3858 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3858  break;
3859 
3860  case 37:
3861 #line 442 "parser.y" /* yacc.c:1648 */
3862  {
3863  (yyval)=(yyvsp[-2]);
3864  set((yyvsp[-1]), ID_index);
3865  exprt tmp=convert_integer_literal("0");
3866  stack((yyvsp[-1])).move_to_operands(tmp);
3867  mto((yyval), (yyvsp[-1]));
3868  set((yyvsp[-1]), ID_member);
3869  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3870  mto((yyval), (yyvsp[-1]));
3871  }
3872 #line 3873 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3873  break;
3874 
3875  case 38:
3876 #line 456 "parser.y" /* yacc.c:1648 */
3877  {
3878  (yyval)=(yyvsp[-5]);
3879  set((yyval), ID_forall);
3880  mto((yyval), (yyvsp[-2]));
3881  mto((yyval), (yyvsp[-1]));
3882  PARSER.pop_scope();
3883  }
3884 #line 3885 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3885  break;
3886 
3887  case 39:
3888 #line 464 "parser.y" /* yacc.c:1648 */
3889  {
3890  // The precedence of this operator is too high; it is meant
3891  // to bind only very weakly.
3892  (yyval)=(yyvsp[-3]);
3893  set((yyval), ID_forall);
3894  mto((yyval), (yyvsp[-1]));
3895  mto((yyval), (yyvsp[0]));
3896  PARSER.pop_scope();
3897  }
3898 #line 3899 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3899  break;
3900 
3901  case 40:
3902 #line 474 "parser.y" /* yacc.c:1648 */
3903  {
3904  (yyval)=(yyvsp[-5]);
3905  set((yyval), ID_exists);
3906  mto((yyval), (yyvsp[-2]));
3907  mto((yyval), (yyvsp[-1]));
3908  PARSER.pop_scope();
3909  }
3910 #line 3911 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3911  break;
3912 
3913  case 41:
3914 #line 482 "parser.y" /* yacc.c:1648 */
3915  {
3916  // The precedence of this operator is too high; it is meant
3917  // to bind only very weakly.
3918  (yyval)=(yyvsp[-3]);
3919  set((yyval), ID_exists);
3920  mto((yyval), (yyvsp[-1]));
3921  mto((yyval), (yyvsp[0]));
3922  PARSER.pop_scope();
3923  }
3924 #line 3925 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3925  break;
3926 
3927  case 42:
3928 #line 495 "parser.y" /* yacc.c:1648 */
3929  { init((yyval)); stack((yyval)).make_nil(); }
3930 #line 3931 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3931  break;
3932 
3933  case 43:
3934 #line 497 "parser.y" /* yacc.c:1648 */
3935  { (yyval)=(yyvsp[-1]); }
3936 #line 3937 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3937  break;
3938 
3939  case 44:
3940 #line 502 "parser.y" /* yacc.c:1648 */
3941  { init((yyval)); stack((yyval)).make_nil(); }
3942 #line 3943 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3943  break;
3944 
3945  case 45:
3946 #line 504 "parser.y" /* yacc.c:1648 */
3947  { (yyval)=(yyvsp[-1]); }
3948 #line 3949 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3949  break;
3950 
3951  case 46:
3952 #line 509 "parser.y" /* yacc.c:1648 */
3953  { init((yyval)); stack((yyval)).make_nil(); }
3954 #line 3955 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3955  break;
3956 
3957  case 47:
3958 #line 511 "parser.y" /* yacc.c:1648 */
3959  { (yyval)=(yyvsp[-1]); }
3960 #line 3961 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3961  break;
3962 
3963  case 48:
3964 #line 515 "parser.y" /* yacc.c:1648 */
3965  {
3966  (yyval)=(yyvsp[-2]);
3967  set((yyval), ID_side_effect);
3968  stack((yyval)).set(ID_statement, ID_statement_expression);
3969  mto((yyval), (yyvsp[-1]));
3970  }
3971 #line 3972 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3972  break;
3973 
3974  case 50:
3975 #line 526 "parser.y" /* yacc.c:1648 */
3976  { binary((yyval), (yyvsp[-3]), (yyvsp[-2]), ID_index, (yyvsp[-1])); }
3977 #line 3978 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3978  break;
3979 
3980  case 51:
3981 #line 528 "parser.y" /* yacc.c:1648 */
3982  { (yyval)=(yyvsp[-1]);
3983  set((yyval), ID_side_effect);
3984  stack((yyval)).set(ID_statement, ID_function_call);
3985  stack((yyval)).operands().resize(2);
3986  stack((yyval)).op0().swap(stack((yyvsp[-2])));
3987  stack((yyval)).op1().clear();
3988  stack((yyval)).op1().id(ID_arguments);
3989  }
3990 #line 3991 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3991  break;
3992 
3993  case 52:
3994 #line 537 "parser.y" /* yacc.c:1648 */
3995  { (yyval)=(yyvsp[-2]);
3996  set((yyval), ID_side_effect);
3997  stack((yyval)).set(ID_statement, ID_function_call);
3998  stack((yyval)).operands().resize(2);
3999  stack((yyval)).op0().swap(stack((yyvsp[-3])));
4000  stack((yyval)).op1().swap(stack((yyvsp[-1])));
4001  stack((yyval)).op1().id(ID_arguments);
4002  }
4003 #line 4004 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4004  break;
4005 
4006  case 53:
4007 #line 546 "parser.y" /* yacc.c:1648 */
4008  { (yyval)=(yyvsp[-1]);
4009  set((yyval), ID_member);
4010  mto((yyval), (yyvsp[-2]));
4011  stack((yyval)).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
4012  }
4013 #line 4014 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4014  break;
4015 
4016  case 54:
4017 #line 552 "parser.y" /* yacc.c:1648 */
4018  { (yyval)=(yyvsp[-1]);
4019  set((yyval), ID_ptrmember);
4020  mto((yyval), (yyvsp[-2]));
4021  stack((yyval)).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
4022  }
4023 #line 4024 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4024  break;
4025 
4026  case 55:
4027 #line 558 "parser.y" /* yacc.c:1648 */
4028  { (yyval)=(yyvsp[0]);
4029  set((yyval), ID_side_effect);
4030  stack((yyval)).set(ID_statement, ID_postincrement);
4031  mto((yyval), (yyvsp[-1]));
4032  }
4033 #line 4034 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4034  break;
4035 
4036  case 56:
4037 #line 564 "parser.y" /* yacc.c:1648 */
4038  { (yyval)=(yyvsp[0]);
4039  set((yyval), ID_side_effect);
4040  stack((yyval)).set(ID_statement, ID_postdecrement);
4041  mto((yyval), (yyvsp[-1]));
4042  }
4043 #line 4044 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4044  break;
4045 
4046  case 57:
4047 #line 571 "parser.y" /* yacc.c:1648 */
4048  {
4049  exprt tmp(ID_initializer_list);
4050  tmp.add_source_location()=stack((yyvsp[-2])).source_location();
4051  tmp.operands().swap(stack((yyvsp[-1])).operands());
4052  (yyval)=(yyvsp[-5]);
4053  set((yyval), ID_typecast);
4054  stack((yyval)).move_to_operands(tmp);
4055  stack((yyval)).type().swap(stack((yyvsp[-4])));
4056  }
4057 #line 4058 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4058  break;
4059 
4060  case 58:
4061 #line 581 "parser.y" /* yacc.c:1648 */
4062  {
4063  // same as above
4064  exprt tmp(ID_initializer_list);
4065  tmp.add_source_location()=stack((yyvsp[-3])).source_location();
4066  tmp.operands().swap(stack((yyvsp[-2])).operands());
4067  (yyval)=(yyvsp[-6]);
4068  set((yyval), ID_typecast);
4069  stack((yyval)).move_to_operands(tmp);
4070  stack((yyval)).type().swap(stack((yyvsp[-5])));
4071  }
4072 #line 4073 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4073  break;
4074 
4075  case 61:
4076 #line 600 "parser.y" /* yacc.c:1648 */
4077  {
4078  init((yyval), ID_expression_list);
4079  mto((yyval), (yyvsp[0]));
4080  }
4081 #line 4082 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4082  break;
4083 
4084  case 62:
4085 #line 605 "parser.y" /* yacc.c:1648 */
4086  {
4087  (yyval)=(yyvsp[-2]);
4088  mto((yyval), (yyvsp[0]));
4089  }
4090 #line 4091 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4091  break;
4092 
4093  case 64:
4094 #line 614 "parser.y" /* yacc.c:1648 */
4095  { (yyval)=(yyvsp[-1]);
4096  set((yyval), ID_side_effect);
4097  stack((yyval)).set(ID_statement, ID_preincrement);
4098  mto((yyval), (yyvsp[0]));
4099  }
4100 #line 4101 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4101  break;
4102 
4103  case 65:
4104 #line 620 "parser.y" /* yacc.c:1648 */
4105  { (yyval)=(yyvsp[-1]);
4106  set((yyval), ID_side_effect);
4107  stack((yyval)).set(ID_statement, ID_predecrement);
4108  mto((yyval), (yyvsp[0]));
4109  }
4110 #line 4111 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4111  break;
4112 
4113  case 66:
4114 #line 626 "parser.y" /* yacc.c:1648 */
4115  { (yyval)=(yyvsp[-1]);
4116  set((yyval), ID_address_of);
4117  mto((yyval), (yyvsp[0]));
4118  }
4119 #line 4120 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4120  break;
4121 
4122  case 67:
4123 #line 631 "parser.y" /* yacc.c:1648 */
4124  { // this takes the address of a label (a gcc extension)
4125  (yyval)=(yyvsp[-1]);
4126  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[0])).get(ID_C_base_name));
4127  set((yyval), ID_address_of);
4128  stack((yyval)).operands().resize(1);
4129  stack((yyval)).op0()=stack((yyvsp[0]));
4130  stack((yyval)).op0().id(ID_label);
4131  stack((yyval)).op0().set(ID_identifier, identifier);
4132  }
4133 #line 4134 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4134  break;
4135 
4136  case 68:
4137 #line 641 "parser.y" /* yacc.c:1648 */
4138  { (yyval)=(yyvsp[-1]);
4139  set((yyval), ID_dereference);
4140  mto((yyval), (yyvsp[0]));
4141  }
4142 #line 4143 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4143  break;
4144 
4145  case 69:
4146 #line 646 "parser.y" /* yacc.c:1648 */
4147  { (yyval)=(yyvsp[-1]);
4148  set((yyval), ID_unary_plus);
4149  mto((yyval), (yyvsp[0]));
4150  }
4151 #line 4152 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4152  break;
4153 
4154  case 70:
4155 #line 651 "parser.y" /* yacc.c:1648 */
4156  { (yyval)=(yyvsp[-1]);
4157  set((yyval), ID_unary_minus);
4158  mto((yyval), (yyvsp[0]));
4159  }
4160 #line 4161 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4161  break;
4162 
4163  case 71:
4164 #line 656 "parser.y" /* yacc.c:1648 */
4165  { (yyval)=(yyvsp[-1]);
4166  set((yyval), ID_bitnot);
4167  mto((yyval), (yyvsp[0]));
4168  }
4169 #line 4170 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4170  break;
4171 
4172  case 72:
4173 #line 661 "parser.y" /* yacc.c:1648 */
4174  { (yyval)=(yyvsp[-1]);
4175  set((yyval), ID_not);
4176  mto((yyval), (yyvsp[0]));
4177  }
4178 #line 4179 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4179  break;
4180 
4181  case 73:
4182 #line 666 "parser.y" /* yacc.c:1648 */
4183  { (yyval)=(yyvsp[-1]);
4184  set((yyval), ID_sizeof);
4185  mto((yyval), (yyvsp[0]));
4186  }
4187 #line 4188 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4188  break;
4189 
4190  case 74:
4191 #line 671 "parser.y" /* yacc.c:1648 */
4192  { (yyval)=(yyvsp[-3]);
4193  set((yyval), ID_sizeof);
4194  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
4195  }
4196 #line 4197 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4197  break;
4198 
4199  case 75:
4200 #line 676 "parser.y" /* yacc.c:1648 */
4201  { // note no parentheses for expressions, just like sizeof
4202  (yyval)=(yyvsp[-1]);
4203  set((yyval), ID_alignof);
4204  mto((yyval), (yyvsp[0]));
4205  }
4206 #line 4207 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4207  break;
4208 
4209  case 76:
4210 #line 682 "parser.y" /* yacc.c:1648 */
4211  {
4212  (yyval)=(yyvsp[-3]);
4213  stack((yyval)).id(ID_alignof);
4214  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
4215  }
4216 #line 4217 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4217  break;
4218 
4219  case 78:
4220 #line 692 "parser.y" /* yacc.c:1648 */
4221  {
4222  (yyval)=(yyvsp[-3]);
4223  set((yyval), ID_typecast);
4224  mto((yyval), (yyvsp[0]));
4225  stack((yyval)).type().swap(stack((yyvsp[-2])));
4226  }
4227 #line 4228 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4228  break;
4229 
4230  case 79:
4231 #line 699 "parser.y" /* yacc.c:1648 */
4232  { (yyval)=(yyvsp[-1]);
4233  set((yyval), ID_complex_real);
4234  mto((yyval), (yyvsp[0]));
4235  }
4236 #line 4237 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4237  break;
4238 
4239  case 80:
4240 #line 704 "parser.y" /* yacc.c:1648 */
4241  { (yyval)=(yyvsp[-1]);
4242  set((yyval), ID_complex_imag);
4243  mto((yyval), (yyvsp[0]));
4244  }
4245 #line 4246 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4246  break;
4247 
4248  case 82:
4249 #line 713 "parser.y" /* yacc.c:1648 */
4250  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_mult, (yyvsp[0])); }
4251 #line 4252 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4252  break;
4253 
4254  case 83:
4255 #line 715 "parser.y" /* yacc.c:1648 */
4256  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_div, (yyvsp[0])); }
4257 #line 4258 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4258  break;
4259 
4260  case 84:
4261 #line 717 "parser.y" /* yacc.c:1648 */
4262  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_mod, (yyvsp[0])); }
4263 #line 4264 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4264  break;
4265 
4266  case 86:
4267 #line 723 "parser.y" /* yacc.c:1648 */
4268  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_plus, (yyvsp[0])); }
4269 #line 4270 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4270  break;
4271 
4272  case 87:
4273 #line 725 "parser.y" /* yacc.c:1648 */
4274  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_minus, (yyvsp[0])); }
4275 #line 4276 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4276  break;
4277 
4278  case 89:
4279 #line 731 "parser.y" /* yacc.c:1648 */
4280  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_shl, (yyvsp[0])); }
4281 #line 4282 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4282  break;
4283 
4284  case 90:
4285 #line 733 "parser.y" /* yacc.c:1648 */
4286  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_shr, (yyvsp[0])); }
4287 #line 4288 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4288  break;
4289 
4290  case 92:
4291 #line 739 "parser.y" /* yacc.c:1648 */
4292  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_lt, (yyvsp[0])); }
4293 #line 4294 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4294  break;
4295 
4296  case 93:
4297 #line 741 "parser.y" /* yacc.c:1648 */
4298  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_gt, (yyvsp[0])); }
4299 #line 4300 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4300  break;
4301 
4302  case 94:
4303 #line 743 "parser.y" /* yacc.c:1648 */
4304  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_le, (yyvsp[0])); }
4305 #line 4306 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4306  break;
4307 
4308  case 95:
4309 #line 745 "parser.y" /* yacc.c:1648 */
4310  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_ge, (yyvsp[0])); }
4311 #line 4312 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4312  break;
4313 
4314  case 97:
4315 #line 751 "parser.y" /* yacc.c:1648 */
4316  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_equal, (yyvsp[0])); }
4317 #line 4318 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4318  break;
4319 
4320  case 98:
4321 #line 753 "parser.y" /* yacc.c:1648 */
4322  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_notequal, (yyvsp[0])); }
4323 #line 4324 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4324  break;
4325 
4326  case 100:
4327 #line 759 "parser.y" /* yacc.c:1648 */
4328  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitand, (yyvsp[0])); }
4329 #line 4330 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4330  break;
4331 
4332  case 102:
4333 #line 765 "parser.y" /* yacc.c:1648 */
4334  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitxor, (yyvsp[0])); }
4335 #line 4336 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4336  break;
4337 
4338  case 104:
4339 #line 771 "parser.y" /* yacc.c:1648 */
4340  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitor, (yyvsp[0])); }
4341 #line 4342 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4342  break;
4343 
4344  case 106:
4345 #line 777 "parser.y" /* yacc.c:1648 */
4346  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_and, (yyvsp[0])); }
4347 #line 4348 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4348  break;
4349 
4350  case 108:
4351 #line 783 "parser.y" /* yacc.c:1648 */
4352  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_xor, (yyvsp[0])); }
4353 #line 4354 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4354  break;
4355 
4356  case 110:
4357 #line 789 "parser.y" /* yacc.c:1648 */
4358  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_or, (yyvsp[0])); }
4359 #line 4360 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4360  break;
4361 
4362  case 112:
4363 #line 798 "parser.y" /* yacc.c:1648 */
4364  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_implies, (yyvsp[0])); }
4365 #line 4366 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4366  break;
4367 
4368  case 114:
4369 #line 807 "parser.y" /* yacc.c:1648 */
4370  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_equal, (yyvsp[0])); }
4371 #line 4372 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4372  break;
4373 
4374  case 116:
4375 #line 813 "parser.y" /* yacc.c:1648 */
4376  { (yyval)=(yyvsp[-3]);
4377  stack((yyval)).id(ID_if);
4378  mto((yyval), (yyvsp[-4]));
4379  mto((yyval), (yyvsp[-2]));
4380  mto((yyval), (yyvsp[0]));
4381  }
4382 #line 4383 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4383  break;
4384 
4385  case 117:
4386 #line 820 "parser.y" /* yacc.c:1648 */
4387  { (yyval)=(yyvsp[-2]);
4388  stack((yyval)).id(ID_side_effect);
4389  stack((yyval)).set(ID_statement, ID_gcc_conditional_expression);
4390  mto((yyval), (yyvsp[-3]));
4391  mto((yyval), (yyvsp[0]));
4392  }
4393 #line 4394 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4394  break;
4395 
4396  case 119:
4397 #line 831 "parser.y" /* yacc.c:1648 */
4398  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign); }
4399 #line 4400 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4400  break;
4401 
4402  case 120:
4403 #line 833 "parser.y" /* yacc.c:1648 */
4404  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_mult); }
4405 #line 4406 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4406  break;
4407 
4408  case 121:
4409 #line 835 "parser.y" /* yacc.c:1648 */
4410  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_div); }
4411 #line 4412 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4412  break;
4413 
4414  case 122:
4415 #line 837 "parser.y" /* yacc.c:1648 */
4416  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_mod); }
4417 #line 4418 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4418  break;
4419 
4420  case 123:
4421 #line 839 "parser.y" /* yacc.c:1648 */
4422  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_plus); }
4423 #line 4424 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4424  break;
4425 
4426  case 124:
4427 #line 841 "parser.y" /* yacc.c:1648 */
4428  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_minus); }
4429 #line 4430 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4430  break;
4431 
4432  case 125:
4433 #line 843 "parser.y" /* yacc.c:1648 */
4434  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_shl); }
4435 #line 4436 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4436  break;
4437 
4438  case 126:
4439 #line 845 "parser.y" /* yacc.c:1648 */
4440  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_shr); }
4441 #line 4442 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4442  break;
4443 
4444  case 127:
4445 #line 847 "parser.y" /* yacc.c:1648 */
4446  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitand); }
4447 #line 4448 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4448  break;
4449 
4450  case 128:
4451 #line 849 "parser.y" /* yacc.c:1648 */
4452  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitxor); }
4453 #line 4454 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4454  break;
4455 
4456  case 129:
4457 #line 851 "parser.y" /* yacc.c:1648 */
4458  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitor); }
4459 #line 4460 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4460  break;
4461 
4462  case 131:
4463 #line 857 "parser.y" /* yacc.c:1648 */
4464  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_comma, (yyvsp[0])); }
4465 #line 4466 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4466  break;
4467 
4468  case 133:
4469 #line 866 "parser.y" /* yacc.c:1648 */
4470  { init((yyval)); stack((yyval)).make_nil(); }
4471 #line 4472 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4472  break;
4473 
4474  case 135:
4475 #line 874 "parser.y" /* yacc.c:1648 */
4476  {
4477  // type only, no declarator!
4478  init((yyval), ID_declaration);
4479  stack((yyval)).type().swap(stack((yyvsp[-1])));
4480  }
4481 #line 4482 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4482  break;
4483 
4484  case 136:
4485 #line 880 "parser.y" /* yacc.c:1648 */
4486  {
4487  // type only, no identifier!
4488  init((yyval), ID_declaration);
4489  stack((yyval)).type().swap(stack((yyvsp[-1])));
4490  }
4491 #line 4492 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4492  break;
4493 
4494  case 140:
4495 #line 892 "parser.y" /* yacc.c:1648 */
4496  {
4497  (yyval)=(yyvsp[-5]);
4498  set((yyval), ID_declaration);
4500  mto((yyval), (yyvsp[-3]));
4501  mto((yyval), (yyvsp[-1]));
4502  }
4503 #line 4504 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4504  break;
4505 
4506  case 141:
4507 #line 903 "parser.y" /* yacc.c:1648 */
4508  {
4509  init((yyval), ID_declaration);
4510  stack((yyval)).type().swap(stack((yyvsp[-1])));
4511  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
4512  }
4513 #line 4514 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4514  break;
4515 
4516  case 142:
4517 #line 909 "parser.y" /* yacc.c:1648 */
4518  {
4519  // patch on the initializer
4520  (yyval)=(yyvsp[-1]);
4521  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4522  }
4523 #line 4524 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4524  break;
4525 
4526  case 143:
4527 #line 915 "parser.y" /* yacc.c:1648 */
4528  {
4529  init((yyval), ID_declaration);
4530  stack((yyval)).type().swap(stack((yyvsp[-1])));
4531  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
4532  }
4533 #line 4534 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4534  break;
4535 
4536  case 144:
4537 #line 921 "parser.y" /* yacc.c:1648 */
4538  {
4539  // patch on the initializer
4540  (yyval)=(yyvsp[-1]);
4541  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4542  }
4543 #line 4544 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4544  break;
4545 
4546  case 145:
4547 #line 927 "parser.y" /* yacc.c:1648 */
4548  {
4549  // just add the declarator
4550  PARSER.add_declarator(stack((yyvsp[-2])), stack((yyvsp[0])));
4551  // Needs to be done before initializer, as we want to see that identifier
4552  // already there!
4553  }
4554 #line 4555 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4555  break;
4556 
4557  case 146:
4558 #line 934 "parser.y" /* yacc.c:1648 */
4559  {
4560  // patch on the initializer
4561  (yyval)=(yyvsp[-4]);
4562  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4563  }
4564 #line 4565 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4565  break;
4566 
4567  case 147:
4568 #line 943 "parser.y" /* yacc.c:1648 */
4569  {
4570  (yyval)=(yyvsp[-4]);
4571  stack((yyval)).id(ID_asm);
4572  stack((yyval)).set(ID_flavor, ID_gcc);
4573  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
4574  }
4575 #line 4576 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4576  break;
4577 
4578  case 149:
4579 #line 954 "parser.y" /* yacc.c:1648 */
4580  {
4581  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4582  }
4583 #line 4584 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4584  break;
4585 
4586  case 151:
4587 #line 962 "parser.y" /* yacc.c:1648 */
4588  {
4589  init((yyval));
4590  }
4591 #line 4592 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4592  break;
4593 
4594  case 153:
4595 #line 971 "parser.y" /* yacc.c:1648 */
4596  {
4597  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute
4598 
4599  // the symbol has to be visible during initialization
4600  init((yyval), ID_declaration);
4601  stack((yyval)).type().swap(stack((yyvsp[-2])));
4602  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
4603  }
4604 #line 4605 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4605  break;
4606 
4607  case 154:
4608 #line 980 "parser.y" /* yacc.c:1648 */
4609  {
4610  // add the initializer
4611  (yyval)=(yyvsp[-1]);
4612  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4613  }
4614 #line 4615 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4615  break;
4616 
4617  case 155:
4618 #line 987 "parser.y" /* yacc.c:1648 */
4619  {
4620  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1]));
4621 
4622  // the symbol has to be visible during initialization
4623  init((yyval), ID_declaration);
4624  stack((yyval)).type().swap(stack((yyvsp[-2])));
4625  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
4626  }
4627 #line 4628 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4628  break;
4629 
4630  case 156:
4631 #line 996 "parser.y" /* yacc.c:1648 */
4632  {
4633  // add the initializer
4634  (yyval)=(yyvsp[-1]);
4635  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4636  }
4637 #line 4638 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4638  break;
4639 
4640  case 157:
4641 #line 1003 "parser.y" /* yacc.c:1648 */
4642  {
4643  // handled as typeof(initializer)
4644  stack((yyvsp[-4])).id(ID_typeof);
4645  stack((yyvsp[-4])).copy_to_operands(stack((yyvsp[0])));
4646 
4647  (yyvsp[-3])=merge((yyvsp[-2]), (yyvsp[-3]));
4648 
4649  // the symbol has to be visible during initialization
4650  init((yyval), ID_declaration);
4651  stack((yyval)).type().swap(stack((yyvsp[-4])));
4652  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-3])));
4653  // add the initializer
4654  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4655  }
4656 #line 4657 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4657  break;
4658 
4659  case 158:
4660 #line 1019 "parser.y" /* yacc.c:1648 */
4661  {
4662  // type attribute goes into declarator
4663  (yyvsp[0])=merge((yyvsp[0]), (yyvsp[-2]));
4664  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1]));
4665  PARSER.add_declarator(stack((yyvsp[-4])), stack((yyvsp[-1])));
4666  }
4667 #line 4668 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4668  break;
4669 
4670  case 159:
4671 #line 1026 "parser.y" /* yacc.c:1648 */
4672  {
4673  // add in the initializer
4674  (yyval)=(yyvsp[-6]);
4675  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4676  }
4677 #line 4678 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4678  break;
4679 
4680  case 171:
4681 #line 1052 "parser.y" /* yacc.c:1648 */
4682  {
4683  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4684  }
4685 #line 4686 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4686  break;
4687 
4688  case 173:
4689 #line 1057 "parser.y" /* yacc.c:1648 */
4690  {
4691  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4692  }
4693 #line 4694 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4694  break;
4695 
4696  case 174:
4697 #line 1061 "parser.y" /* yacc.c:1648 */
4698  {
4699  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4700  }
4701 #line 4702 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4702  break;
4703 
4704  case 176:
4705 #line 1069 "parser.y" /* yacc.c:1648 */
4706  {
4707  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4708  }
4709 #line 4710 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4710  break;
4711 
4712  case 177:
4713 #line 1076 "parser.y" /* yacc.c:1648 */
4714  {
4715  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4716  }
4717 #line 4718 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4718  break;
4719 
4720  case 179:
4721 #line 1084 "parser.y" /* yacc.c:1648 */
4722  {
4723  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4724  }
4725 #line 4726 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4726  break;
4727 
4728  case 182:
4729 #line 1095 "parser.y" /* yacc.c:1648 */
4730  { (yyval)=(yyvsp[0]); set((yyval), ID_atomic); }
4731 #line 4732 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4732  break;
4733 
4734  case 183:
4735 #line 1096 "parser.y" /* yacc.c:1648 */
4736  { (yyval)=(yyvsp[0]); set((yyval), ID_const); }
4737 #line 4738 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4738  break;
4739 
4740  case 184:
4741 #line 1097 "parser.y" /* yacc.c:1648 */
4742  { (yyval)=(yyvsp[0]); set((yyval), ID_restrict); }
4743 #line 4744 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4744  break;
4745 
4746  case 185:
4747 #line 1098 "parser.y" /* yacc.c:1648 */
4748  { (yyval)=(yyvsp[0]); set((yyval), ID_volatile); }
4749 #line 4750 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4750  break;
4751 
4752  case 186:
4753 #line 1099 "parser.y" /* yacc.c:1648 */
4754  { (yyval)=(yyvsp[0]); set((yyval), ID_cprover_atomic); }
4755 #line 4756 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4756  break;
4757 
4758  case 187:
4759 #line 1100 "parser.y" /* yacc.c:1648 */
4760  { (yyval)=(yyvsp[0]); set((yyval), ID_ptr32); }
4761 #line 4762 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4762  break;
4763 
4764  case 188:
4765 #line 1101 "parser.y" /* yacc.c:1648 */
4766  { (yyval)=(yyvsp[0]); set((yyval), ID_ptr64); }
4767 #line 4768 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4768  break;
4769 
4770  case 189:
4771 #line 1102 "parser.y" /* yacc.c:1648 */
4772  { (yyval)=(yyvsp[-3]); set((yyval), ID_msc_based); mto((yyval), (yyvsp[-1])); }
4773 #line 4774 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4774  break;
4775 
4776  case 191:
4777 #line 1108 "parser.y" /* yacc.c:1648 */
4778  { (yyval) = (yyvsp[-3]);
4779  stack((yyval)).id(ID_aligned);
4780  stack((yyval)).set(ID_size, stack((yyvsp[-1])));
4781  }
4782 #line 4783 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4783  break;
4784 
4785  case 192:
4786 #line 1113 "parser.y" /* yacc.c:1648 */
4787  { (yyval) = (yyvsp[-3]);
4788  stack((yyval)).id(ID_aligned);
4789  stack((yyvsp[-1])).set(ID_type_arg, stack((yyvsp[-1])));
4790  }
4791 #line 4792 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4792  break;
4793 
4794  case 199:
4795 #line 1133 "parser.y" /* yacc.c:1648 */
4796  {
4797  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4798  }
4799 #line 4800 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4800  break;
4801 
4802  case 200:
4803 #line 1140 "parser.y" /* yacc.c:1648 */
4804  {
4805  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4806  }
4807 #line 4808 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4808  break;
4809 
4810  case 201:
4811 #line 1144 "parser.y" /* yacc.c:1648 */
4812  {
4813  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4814  }
4815 #line 4816 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4816  break;
4817 
4818  case 202:
4819 #line 1148 "parser.y" /* yacc.c:1648 */
4820  {
4821  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4822  }
4823 #line 4824 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4824  break;
4825 
4826  case 203:
4827 #line 1152 "parser.y" /* yacc.c:1648 */
4828  {
4829  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4830  }
4831 #line 4832 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4832  break;
4833 
4834  case 204:
4835 #line 1159 "parser.y" /* yacc.c:1648 */
4836  {
4837  (yyval)=merge((yyvsp[-1]), (yyvsp[0])); // type attribute
4838  }
4839 #line 4840 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4840  break;
4841 
4842  case 205:
4843 #line 1163 "parser.y" /* yacc.c:1648 */
4844  {
4845  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4846  }
4847 #line 4848 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4848  break;
4849 
4850  case 206:
4851 #line 1167 "parser.y" /* yacc.c:1648 */
4852  {
4853  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4854  }
4855 #line 4856 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4856  break;
4857 
4858  case 207:
4859 #line 1171 "parser.y" /* yacc.c:1648 */
4860  {
4861  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4862  }
4863 #line 4864 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4864  break;
4865 
4866  case 208:
4867 #line 1179 "parser.y" /* yacc.c:1648 */
4868  {
4869  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4870  }
4871 #line 4872 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4872  break;
4873 
4874  case 209:
4875 #line 1183 "parser.y" /* yacc.c:1648 */
4876  {
4877  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4878  }
4879 #line 4880 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4880  break;
4881 
4882  case 210:
4883 #line 1187 "parser.y" /* yacc.c:1648 */
4884  {
4885  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4886  }
4887 #line 4888 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4888  break;
4889 
4890  case 212:
4891 #line 1196 "parser.y" /* yacc.c:1648 */
4892  {
4893  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4894  }
4895 #line 4896 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4896  break;
4897 
4898  case 213:
4899 #line 1200 "parser.y" /* yacc.c:1648 */
4900  {
4901  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4902  }
4903 #line 4904 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4904  break;
4905 
4906  case 214:
4907 #line 1207 "parser.y" /* yacc.c:1648 */
4908  {
4909  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4910  }
4911 #line 4912 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4912  break;
4913 
4914  case 215:
4915 #line 1211 "parser.y" /* yacc.c:1648 */
4916  {
4917  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4918  }
4919 #line 4920 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4920  break;
4921 
4922  case 216:
4923 #line 1215 "parser.y" /* yacc.c:1648 */
4924  {
4925  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4926  }
4927 #line 4928 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4928  break;
4929 
4930  case 217:
4931 #line 1222 "parser.y" /* yacc.c:1648 */
4932  {
4933  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4934  }
4935 #line 4936 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4936  break;
4937 
4938  case 218:
4939 #line 1226 "parser.y" /* yacc.c:1648 */
4940  {
4941  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4942  }
4943 #line 4944 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4944  break;
4945 
4946  case 219:
4947 #line 1230 "parser.y" /* yacc.c:1648 */
4948  {
4949  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4950  }
4951 #line 4952 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4952  break;
4953 
4954  case 220:
4955 #line 1237 "parser.y" /* yacc.c:1648 */
4956  {
4957  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4958  }
4959 #line 4960 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4960  break;
4961 
4962  case 221:
4963 #line 1241 "parser.y" /* yacc.c:1648 */
4964  {
4965  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4966  }
4967 #line 4968 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4968  break;
4969 
4970  case 222:
4971 #line 1245 "parser.y" /* yacc.c:1648 */
4972  {
4973  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4974  }
4975 #line 4976 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4976  break;
4977 
4978  case 223:
4979 #line 1252 "parser.y" /* yacc.c:1648 */
4980  {
4981  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4982  }
4983 #line 4984 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4984  break;
4985 
4986  case 224:
4987 #line 1256 "parser.y" /* yacc.c:1648 */
4988  {
4989  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4990  }
4991 #line 4992 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4992  break;
4993 
4994  case 225:
4995 #line 1260 "parser.y" /* yacc.c:1648 */
4996  {
4997  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4998  }
4999 #line 5000 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5000  break;
5001 
5002  case 226:
5003 #line 1267 "parser.y" /* yacc.c:1648 */
5004  { (yyval) = (yyvsp[-3]);
5005  stack((yyval)).id(ID_typeof);
5006  mto((yyval), (yyvsp[-1]));
5007  }
5008 #line 5009 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5009  break;
5010 
5011  case 227:
5012 #line 1272 "parser.y" /* yacc.c:1648 */
5013  { (yyval) = (yyvsp[-3]);
5014  stack((yyval)).id(ID_typeof);
5015  stack((yyval)).set(ID_type_arg, stack((yyvsp[-1])));
5016  }
5017 #line 5018 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5018  break;
5019 
5020  case 229:
5021 #line 1281 "parser.y" /* yacc.c:1648 */
5022  {
5023  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5024  }
5025 #line 5026 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5026  break;
5027 
5028  case 230:
5029 #line 1285 "parser.y" /* yacc.c:1648 */
5030  {
5031  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
5032  }
5033 #line 5034 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5034  break;
5035 
5036  case 231:
5037 #line 1289 "parser.y" /* yacc.c:1648 */
5038  {
5039  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5040  }
5041 #line 5042 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5042  break;
5043 
5044  case 232:
5045 #line 1296 "parser.y" /* yacc.c:1648 */
5046  {
5047  (yyval)=(yyvsp[-3]);
5048  stack((yyval)).id(ID_atomic_type_specifier);
5049  stack_type((yyval)).subtype()=stack_type((yyvsp[-1]));
5050  }
5051 #line 5052 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5052  break;
5053 
5054  case 234:
5055 #line 1306 "parser.y" /* yacc.c:1648 */
5056  {
5057  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5058  }
5059 #line 5060 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5060  break;
5061 
5062  case 235:
5063 #line 1310 "parser.y" /* yacc.c:1648 */
5064  {
5065  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
5066  }
5067 #line 5068 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5068  break;
5069 
5070  case 236:
5071 #line 1314 "parser.y" /* yacc.c:1648 */
5072  {
5073  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5074  }
5075 #line 5076 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5076  break;
5077 
5078  case 237:
5079 #line 1321 "parser.y" /* yacc.c:1648 */
5080  {
5081  stack((yyval)).id(stack((yyval)).get(ID_identifier));
5082  }
5083 #line 5084 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5084  break;
5085 
5086  case 238:
5087 #line 1325 "parser.y" /* yacc.c:1648 */
5088  {
5089  stack((yyval)).id(stack((yyval)).get(ID_identifier));
5090  }
5091 #line 5092 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5092  break;
5093 
5094  case 239:
5095 #line 1329 "parser.y" /* yacc.c:1648 */
5096  {
5097  stack((yyval)).id(ID_restrict);
5098  }
5099 #line 5100 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5100  break;
5101 
5102  case 241:
5103 #line 1337 "parser.y" /* yacc.c:1648 */
5104  {
5105  (yyval)=(yyvsp[-3]); mto((yyval), (yyvsp[-1]));
5106  }
5107 #line 5108 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5108  break;
5109 
5110  case 242:
5111 #line 1341 "parser.y" /* yacc.c:1648 */
5112  {
5113  (yyval)=(yyvsp[-3]); mto((yyval), (yyvsp[-1]));
5114  }
5115 #line 5116 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5116  break;
5117 
5118  case 243:
5119 #line 1345 "parser.y" /* yacc.c:1648 */
5120  {
5121  (yyval)=(yyvsp[-5]); mto((yyval), (yyvsp[-3])); mto((yyval), (yyvsp[-1]));
5122  }
5123 #line 5124 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5124  break;
5125 
5126  case 244:
5127 #line 1349 "parser.y" /* yacc.c:1648 */
5128  {
5129  (yyval)=(yyvsp[-9]); mto((yyval), (yyvsp[-7])); mto((yyval), (yyvsp[-5])); mto((yyval), (yyvsp[-3])); mto((yyval), (yyvsp[-1]));
5130  }
5131 #line 5132 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5132  break;
5133 
5134  case 245:
5135 #line 1352 "parser.y" /* yacc.c:1648 */
5136  { init((yyval), ID_nil); }
5137 #line 5138 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5138  break;
5139 
5140  case 246:
5141 #line 1357 "parser.y" /* yacc.c:1648 */
5142  {
5143  init((yyval)); mto((yyval), (yyvsp[0]));
5144  }
5145 #line 5146 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5146  break;
5147 
5148  case 247:
5149 #line 1361 "parser.y" /* yacc.c:1648 */
5150  {
5151  (yyval)=(yyvsp[-1]); mto((yyval), (yyvsp[0]));
5152  }
5153 #line 5154 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5154  break;
5155 
5156  case 248:
5157 #line 1368 "parser.y" /* yacc.c:1648 */
5158  {
5159  (yyval)=(yyvsp[-3]); set((yyval), ID_msc_declspec);
5160  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
5161  }
5162 #line 5163 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5163  break;
5164 
5165  case 249:
5166 #line 1373 "parser.y" /* yacc.c:1648 */
5167  {
5168  (yyval)=(yyvsp[-2]); set((yyval), ID_msc_declspec);
5169  }
5170 #line 5171 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5171  break;
5172 
5173  case 250:
5174 #line 1380 "parser.y" /* yacc.c:1648 */
5175  {
5176  init((yyval), ID_nil);
5177  }
5178 #line 5179 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5179  break;
5180 
5181  case 252:
5182 #line 1387 "parser.y" /* yacc.c:1648 */
5183  { (yyval)=(yyvsp[0]); set((yyval), ID_typedef); }
5184 #line 5185 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5185  break;
5186 
5187  case 253:
5188 #line 1388 "parser.y" /* yacc.c:1648 */
5189  { (yyval)=(yyvsp[0]); set((yyval), ID_extern); }
5190 #line 5191 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5191  break;
5192 
5193  case 254:
5194 #line 1389 "parser.y" /* yacc.c:1648 */
5195  { (yyval)=(yyvsp[0]); set((yyval), ID_static); }
5196 #line 5197 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5197  break;
5198 
5199  case 255:
5200 #line 1390 "parser.y" /* yacc.c:1648 */
5201  { (yyval)=(yyvsp[0]); set((yyval), ID_auto); }
5202 #line 5203 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5203  break;
5204 
5205  case 256:
5206 #line 1391 "parser.y" /* yacc.c:1648 */
5207  { (yyval)=(yyvsp[0]); set((yyval), ID_register); }
5208 #line 5209 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5209  break;
5210 
5211  case 257:
5212 #line 1392 "parser.y" /* yacc.c:1648 */
5213  { (yyval)=(yyvsp[0]); set((yyval), ID_inline); }
5214 #line 5215 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5215  break;
5216 
5217  case 258:
5218 #line 1393 "parser.y" /* yacc.c:1648 */
5219  { (yyval)=(yyvsp[0]); set((yyval), ID_thread_local); }
5220 #line 5221 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5221  break;
5222 
5223  case 259:
5224 #line 1394 "parser.y" /* yacc.c:1648 */
5225  { (yyval)=(yyvsp[0]); set((yyval), ID_asm); }
5226 #line 5227 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5227  break;
5228 
5229  case 260:
5230 #line 1395 "parser.y" /* yacc.c:1648 */
5231  { (yyval)=(yyvsp[0]); }
5232 #line 5233 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5233  break;
5234 
5235  case 261:
5236 #line 1397 "parser.y" /* yacc.c:1648 */
5237  {
5238  // equivalent to always_inline, and seemingly also has the semantics
5239  // of extern inline in that multiple definitions can be provided in
5240  // the same translation unit
5241  init((yyval));
5242  set((yyval), ID_static);
5243  set((yyvsp[0]), ID_inline);
5244  #if 0
5245  // enable once always_inline support is reinstantiated
5246  (yyvsp[0])=merge((yyvsp[0]), (yyval));
5247 
5248  init((yyval));
5249  set((yyval), ID_always_inline);
5250  (yyval)=merge((yyvsp[0]), (yyval));
5251  #else
5252  (yyval)=merge((yyvsp[0]), (yyval));
5253  #endif
5254  }
5255 #line 5256 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5256  break;
5257 
5258  case 262:
5259 #line 1418 "parser.y" /* yacc.c:1648 */
5260  { (yyval)=(yyvsp[0]); set((yyval), ID_int); }
5261 #line 5262 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5262  break;
5263 
5264  case 263:
5265 #line 1419 "parser.y" /* yacc.c:1648 */
5266  { (yyval)=(yyvsp[0]); set((yyval), ID_int8); }
5267 #line 5268 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5268  break;
5269 
5270  case 264:
5271 #line 1420 "parser.y" /* yacc.c:1648 */
5272  { (yyval)=(yyvsp[0]); set((yyval), ID_int16); }
5273 #line 5274 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5274  break;
5275 
5276  case 265:
5277 #line 1421 "parser.y" /* yacc.c:1648 */
5278  { (yyval)=(yyvsp[0]); set((yyval), ID_int32); }
5279 #line 5280 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5280  break;
5281 
5282  case 266:
5283 #line 1422 "parser.y" /* yacc.c:1648 */
5284  { (yyval)=(yyvsp[0]); set((yyval), ID_int64); }
5285 #line 5286 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5286  break;
5287 
5288  case 267:
5289 #line 1423 "parser.y" /* yacc.c:1648 */
5290  { (yyval)=(yyvsp[0]); set((yyval), ID_char); }
5291 #line 5292 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5292  break;
5293 
5294  case 268:
5295 #line 1424 "parser.y" /* yacc.c:1648 */
5296  { (yyval)=(yyvsp[0]); set((yyval), ID_short); }
5297 #line 5298 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5298  break;
5299 
5300  case 269:
5301 #line 1425 "parser.y" /* yacc.c:1648 */
5302  { (yyval)=(yyvsp[0]); set((yyval), ID_long); }
5303 #line 5304 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5304  break;
5305 
5306  case 270:
5307 #line 1426 "parser.y" /* yacc.c:1648 */
5308  { (yyval)=(yyvsp[0]); set((yyval), ID_float); }
5309 #line 5310 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5310  break;
5311 
5312  case 271:
5313 #line 1427 "parser.y" /* yacc.c:1648 */
5314  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float16); }
5315 #line 5316 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5316  break;
5317 
5318  case 272:
5319 #line 1428 "parser.y" /* yacc.c:1648 */
5320  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float32); }
5321 #line 5322 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5322  break;
5323 
5324  case 273:
5325 #line 1429 "parser.y" /* yacc.c:1648 */
5326  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float32x); }
5327 #line 5328 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5328  break;
5329 
5330  case 274:
5331 #line 1430 "parser.y" /* yacc.c:1648 */
5332  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float64); }
5333 #line 5334 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5334  break;
5335 
5336  case 275:
5337 #line 1431 "parser.y" /* yacc.c:1648 */
5338  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float64x); }
5339 #line 5340 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5340  break;
5341 
5342  case 276:
5343 #line 1432 "parser.y" /* yacc.c:1648 */
5344  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float80); }
5345 #line 5346 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5346  break;
5347 
5348  case 277:
5349 #line 1433 "parser.y" /* yacc.c:1648 */
5350  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float128); }
5351 #line 5352 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5352  break;
5353 
5354  case 278:
5355 #line 1434 "parser.y" /* yacc.c:1648 */
5356  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float128x); }
5357 #line 5358 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5358  break;
5359 
5360  case 279:
5361 #line 1435 "parser.y" /* yacc.c:1648 */
5362  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_int128); }
5363 #line 5364 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5364  break;
5365 
5366  case 280:
5367 #line 1436 "parser.y" /* yacc.c:1648 */
5368  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal32); }
5369 #line 5370 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5370  break;
5371 
5372  case 281:
5373 #line 1437 "parser.y" /* yacc.c:1648 */
5374  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal64); }
5375 #line 5376 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5376  break;
5377 
5378  case 282:
5379 #line 1438 "parser.y" /* yacc.c:1648 */
5380  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal128); }
5381 #line 5382 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5382  break;
5383 
5384  case 283:
5385 #line 1439 "parser.y" /* yacc.c:1648 */
5386  { (yyval)=(yyvsp[0]); set((yyval), ID_double); }
5387 #line 5388 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5388  break;
5389 
5390  case 284:
5391 #line 1440 "parser.y" /* yacc.c:1648 */
5392  { (yyval)=(yyvsp[0]); set((yyval), ID_signed); }
5393 #line 5394 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5394  break;
5395 
5396  case 285:
5397 #line 1441 "parser.y" /* yacc.c:1648 */
5398  { (yyval)=(yyvsp[0]); set((yyval), ID_unsigned); }
5399 #line 5400 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5400  break;
5401 
5402  case 286:
5403 #line 1442 "parser.y" /* yacc.c:1648 */
5404  { (yyval)=(yyvsp[0]); set((yyval), ID_void); }
5405 #line 5406 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5406  break;
5407 
5408  case 287:
5409 #line 1443 "parser.y" /* yacc.c:1648 */
5410  { (yyval)=(yyvsp[0]); set((yyval), ID_c_bool); }
5411 #line 5412 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5412  break;
5413 
5414  case 288:
5415 #line 1444 "parser.y" /* yacc.c:1648 */
5416  { (yyval)=(yyvsp[0]); set((yyval), ID_complex); }
5417 #line 5418 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5418  break;
5419 
5420  case 289:
5421 #line 1446 "parser.y" /* yacc.c:1648 */
5422  {
5423  (yyval)=(yyvsp[-3]);
5424  set((yyval), ID_custom_bv);
5425  stack((yyval)).add(ID_size).swap(stack((yyvsp[-1])));
5426  }
5427 #line 5428 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5428  break;
5429 
5430  case 290:
5431 #line 1452 "parser.y" /* yacc.c:1648 */
5432  {
5433  (yyval)=(yyvsp[-6]);
5434  set((yyval), ID_custom_floatbv);
5435  stack((yyval)).add(ID_size).swap(stack((yyvsp[-4])));
5436  stack((yyval)).add(ID_f).swap(stack((yyvsp[-1])));
5437  }
5438 #line 5439 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5439  break;
5440 
5441  case 291:
5442 #line 1459 "parser.y" /* yacc.c:1648 */
5443  {
5444  (yyval)=(yyvsp[-6]);
5445  set((yyval), ID_custom_fixedbv);
5446  stack((yyval)).add(ID_size).swap(stack((yyvsp[-4])));
5447  stack((yyval)).add(ID_f).swap(stack((yyvsp[-1])));
5448  }
5449 #line 5450 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5450  break;
5451 
5452  case 292:
5453 #line 1465 "parser.y" /* yacc.c:1648 */
5454  { (yyval)=(yyvsp[0]); set((yyval), ID_proper_bool); }
5455 #line 5456 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5456  break;
5457 
5458  case 296:
5459 #line 1476 "parser.y" /* yacc.c:1648 */
5460  { (yyval)=(yyvsp[-3]); stack_type((yyval)).subtype().swap(stack((yyvsp[-2]))); }
5461 #line 5462 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5462  break;
5463 
5464  case 297:
5465 #line 1480 "parser.y" /* yacc.c:1648 */
5466  {
5467  init((yyval));
5468  if(!PARSER.pragma_pack.empty() &&
5469  PARSER.pragma_pack.back().is_one())
5470  set((yyval), ID_packed);
5471  }
5472 #line 5473 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5473  break;
5474 
5475  case 298:
5476 #line 1492 "parser.y" /* yacc.c:1648 */
5477  {
5478  // an anon struct/union with body
5479  }
5480 #line 5481 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5481  break;
5482 
5483  case 299:
5484 #line 1498 "parser.y" /* yacc.c:1648 */
5485  {
5486  // save the members
5487  stack((yyvsp[-8])).add(ID_components).get_sub().swap(
5488  (irept::subt &)stack((yyvsp[-3])).operands());
5489 
5490  // throw in the gcc attributes
5491  (yyval)=merge((yyvsp[-8]), merge((yyvsp[-7]), merge((yyvsp[-1]), (yyvsp[0]))));
5492  }
5493 #line 5494 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5494  break;
5495 
5496  case 300:
5497 #line 1510 "parser.y" /* yacc.c:1648 */
5498  {
5499  // A struct/union with tag and body.
5500  PARSER.add_tag_with_body(stack((yyvsp[0])));
5501  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[0])));
5502  }
5503 #line 5504 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5504  break;
5505 
5506  case 301:
5507 #line 1518 "parser.y" /* yacc.c:1648 */
5508  {
5509  // save the members
5510  stack((yyvsp[-9])).add(ID_components).get_sub().swap(
5511  (irept::subt &)stack((yyvsp[-3])).operands());
5512 
5513  // throw in the gcc attributes
5514  (yyval)=merge((yyvsp[-9]), merge((yyvsp[-8]), merge((yyvsp[-1]), (yyvsp[0]))));
5515  }
5516 #line 5517 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5517  break;
5518 
5519  case 302:
5520 #line 1530 "parser.y" /* yacc.c:1648 */
5521  {
5522  // a struct/union with tag but without body
5523  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[0])));
5524  }
5525 #line 5526 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5526  break;
5527 
5528  case 303:
5529 #line 1535 "parser.y" /* yacc.c:1648 */
5530  {
5531  stack((yyvsp[-5])).set(ID_components, ID_nil);
5532  // type attributes
5533  (yyval)=merge((yyvsp[-5]), merge((yyvsp[-4]), (yyvsp[0])));
5534  }
5535 #line 5536 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5536  break;
5537 
5538  case 304:
5539 #line 1544 "parser.y" /* yacc.c:1648 */
5540  { (yyval)=(yyvsp[0]); set((yyval), ID_struct); }
5541 #line 5542 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5542  break;
5543 
5544  case 305:
5545 #line 1546 "parser.y" /* yacc.c:1648 */
5546  { (yyval)=(yyvsp[0]); set((yyval), ID_union); }
5547 #line 5548 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5548  break;
5549 
5550  case 306:
5551 #line 1551 "parser.y" /* yacc.c:1648 */
5552  { (yyval)=(yyvsp[0]); set((yyval), ID_packed); }
5553 #line 5554 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5554  break;
5555 
5556  case 307:
5557 #line 1553 "parser.y" /* yacc.c:1648 */
5558  { (yyval)=(yyvsp[0]); set((yyval), ID_transparent_union); }
5559 #line 5560 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5560  break;
5561 
5562  case 308:
5563 #line 1555 "parser.y" /* yacc.c:1648 */
5564  { (yyval)=(yyvsp[-3]); set((yyval), ID_vector); stack((yyval)).add(ID_size)=stack((yyvsp[-1])); }
5565 #line 5566 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5566  break;
5567 
5568  case 309:
5569 #line 1557 "parser.y" /* yacc.c:1648 */
5570  { (yyval)=(yyvsp[0]); set((yyval), ID_aligned); }
5571 #line 5572 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5572  break;
5573 
5574  case 310:
5575 #line 1559 "parser.y" /* yacc.c:1648 */
5576  { (yyval)=(yyvsp[-3]); set((yyval), ID_aligned); stack((yyval)).set(ID_size, stack((yyvsp[-1]))); }
5577 #line 5578 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5578  break;
5579 
5580  case 311:
5581 #line 1561 "parser.y" /* yacc.c:1648 */
5582  { (yyval)=(yyvsp[-3]); set((yyval), ID_gcc_attribute_mode); stack((yyval)).set(ID_size, stack((yyvsp[-1])).get(ID_identifier)); }
5583 #line 5584 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5584  break;
5585 
5586  case 312:
5587 #line 1563 "parser.y" /* yacc.c:1648 */
5588  { (yyval)=(yyvsp[0]); set((yyval), ID_static); }
5589 #line 5590 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5590  break;
5591 
5592  case 313:
5593 #line 1565 "parser.y" /* yacc.c:1648 */
5594  { (yyval)=(yyvsp[0]); set((yyval), ID_weak); }
5595 #line 5596 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5596  break;
5597 
5598  case 314:
5599 #line 1567 "parser.y" /* yacc.c:1648 */
5600  { (yyval)=(yyvsp[-3]); set((yyval), ID_alias); mto((yyval), (yyvsp[-1])); }
5601 #line 5602 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5602  break;
5603 
5604  case 315:
5605 #line 1569 "parser.y" /* yacc.c:1648 */
5606  { (yyval)=(yyvsp[-3]); set((yyval), ID_section); mto((yyval), (yyvsp[-1])); }
5607 #line 5608 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5608  break;
5609 
5610  case 316:
5611 #line 1571 "parser.y" /* yacc.c:1648 */
5612  { (yyval)=(yyvsp[0]); set((yyval), ID_noreturn); }
5613 #line 5614 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5614  break;
5615 
5616  case 317:
5617 #line 1573 "parser.y" /* yacc.c:1648 */
5618  { (yyval)=(yyvsp[0]); set((yyval), ID_constructor); }
5619 #line 5620 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5620  break;
5621 
5622  case 318:
5623 #line 1575 "parser.y" /* yacc.c:1648 */
5624  { (yyval)=(yyvsp[0]); set((yyval), ID_destructor); }
5625 #line 5626 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5626  break;
5627 
5628  case 319:
5629 #line 1577 "parser.y" /* yacc.c:1648 */
5630  { (yyval)=(yyvsp[0]); set((yyval), ID_used); }
5631 #line 5632 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5632  break;
5633 
5634  case 320:
5635 #line 1582 "parser.y" /* yacc.c:1648 */
5636  {
5637  init((yyval));
5638  }
5639 #line 5640 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5640  break;
5641 
5642  case 323:
5643 #line 1591 "parser.y" /* yacc.c:1648 */
5644  {
5645  (yyval)=merge((yyvsp[-2]), (yyvsp[0]));
5646  }
5647 #line 5648 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5648  break;
5649 
5650  case 324:
5651 #line 1598 "parser.y" /* yacc.c:1648 */
5652  { (yyval)=(yyvsp[-2]); }
5653 #line 5654 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5654  break;
5655 
5656  case 325:
5657 #line 1600 "parser.y" /* yacc.c:1648 */
5658  { (yyval)=(yyvsp[0]); set((yyval), ID_noreturn); }
5659 #line 5660 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5660  break;
5661 
5662  case 326:
5663 #line 1605 "parser.y" /* yacc.c:1648 */
5664  {
5665  init((yyval));
5666  }
5667 #line 5668 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5668  break;
5669 
5670  case 329:
5671 #line 1614 "parser.y" /* yacc.c:1648 */
5672  {
5673  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5674  }
5675 #line 5676 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5676  break;
5677 
5678  case 330:
5679 #line 1621 "parser.y" /* yacc.c:1648 */
5680  {
5681  init((yyval), ID_declaration_list);
5682  }
5683 #line 5684 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5684  break;
5685 
5686  case 332:
5687 #line 1629 "parser.y" /* yacc.c:1648 */
5688  {
5689  init((yyval), ID_declaration_list);
5690  mto((yyval), (yyvsp[0]));
5691  }
5692 #line 5693 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5693  break;
5694 
5695  case 333:
5696 #line 1634 "parser.y" /* yacc.c:1648 */
5697  {
5698  (yyval)=(yyvsp[-1]);
5699  mto((yyval), (yyvsp[0]));
5700  }
5701 #line 5702 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5702  break;
5703 
5704  case 336:
5705 #line 1644 "parser.y" /* yacc.c:1648 */
5706  {
5707  (yyval)=(yyvsp[0]); // the ';' becomes the location of the declaration
5708  stack((yyval)).id(ID_declaration);
5709  }
5710 #line 5711 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5711  break;
5712 
5713  case 338:
5714 #line 1658 "parser.y" /* yacc.c:1648 */
5715  {
5716  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2]));
5717 
5718  init((yyval), ID_declaration);
5719  to_ansi_c_declaration(stack((yyval))).set_is_member(true);
5720  stack((yyval)).add_source_location()=stack((yyvsp[-1])).source_location();
5721  stack((yyval)).type().swap(stack((yyvsp[-1])));
5722  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5723  }
5724 #line 5725 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5725  break;
5726 
5727  case 339:
5728 #line 1668 "parser.y" /* yacc.c:1648 */
5729  {
5730  (yyval)=(yyvsp[-2]);
5731  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5732  }
5733 #line 5734 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5734  break;
5735 
5736  case 340:
5737 #line 1678 "parser.y" /* yacc.c:1648 */
5738  {
5739  if(!PARSER.pragma_pack.empty() &&
5740  !PARSER.pragma_pack.back().is_zero())
5741  {
5742  // communicate #pragma pack(n) alignment constraints by
5743  // by both setting packing AND alignment; see padding.cpp
5744  // for more details
5745  init((yyval));
5746  set((yyval), ID_packed);
5747  (yyvsp[-1])=merge((yyvsp[-1]), (yyval));
5748 
5749  init((yyval));
5750  set((yyval), ID_aligned);
5751  stack((yyval)).set(ID_size, PARSER.pragma_pack.back());
5752  (yyvsp[-1])=merge((yyvsp[-1]), (yyval));
5753  }
5754 
5755  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2]));
5756 
5757  init((yyval), ID_declaration);
5758  to_ansi_c_declaration(stack((yyval))).set_is_member(true);
5759  stack((yyval)).add_source_location()=stack((yyvsp[-1])).source_location();
5760  stack((yyval)).type().swap(stack((yyvsp[-1])));
5761  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5762  }
5763 #line 5764 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5764  break;
5765 
5766  case 341:
5767 #line 1704 "parser.y" /* yacc.c:1648 */
5768  {
5769  (yyval)=(yyvsp[-2]);
5770  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5771  }
5772 #line 5773 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5773  break;
5774 
5775  case 342:
5776 #line 1712 "parser.y" /* yacc.c:1648 */
5777  {
5778  (yyval)=(yyvsp[-2]);
5779 
5780  if(stack((yyvsp[-1])).is_not_nil())
5781  make_subtype((yyval), (yyvsp[-1]));
5782 
5783  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5784  (yyval)=merge((yyvsp[0]), (yyval));
5785  }
5786 #line 5787 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5787  break;
5788 
5789  case 343:
5790 #line 1722 "parser.y" /* yacc.c:1648 */
5791  {
5792  init((yyval), ID_abstract);
5793  }
5794 #line 5795 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5795  break;
5796 
5797  case 344:
5798 #line 1726 "parser.y" /* yacc.c:1648 */
5799  {
5800  (yyval)=(yyvsp[-1]);
5801  stack_type((yyval)).subtype()=typet(ID_abstract);
5802 
5803  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5804  (yyval)=merge((yyvsp[0]), (yyval));
5805  }
5806 #line 5807 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5807  break;
5808 
5809  case 345:
5810 #line 1737 "parser.y" /* yacc.c:1648 */
5811  {
5812  (yyval)=(yyvsp[-2]);
5813  if(stack((yyvsp[-1])).is_not_nil())
5814  make_subtype((yyval), (yyvsp[-1]));
5815 
5816  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5817  (yyval)=merge((yyvsp[0]), (yyval));
5818  }
5819 #line 5820 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5820  break;
5821 
5822  case 346:
5823 #line 1746 "parser.y" /* yacc.c:1648 */
5824  {
5825  (yyval)=(yyvsp[-1]);
5826  stack_type((yyval)).subtype()=typet(ID_abstract);
5827 
5828  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5829  (yyval)=merge((yyvsp[0]), (yyval));
5830  }
5831 #line 5832 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5832  break;
5833 
5834  case 347:
5835 #line 1757 "parser.y" /* yacc.c:1648 */
5836  {
5837  init((yyval), ID_nil);
5838  }
5839 #line 5840 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5840  break;
5841 
5842  case 349:
5843 #line 1765 "parser.y" /* yacc.c:1648 */
5844  {
5845  (yyval)=(yyvsp[-1]);
5846  set((yyval), ID_c_bit_field);
5847  stack_type((yyval)).set(ID_size, stack((yyvsp[0])));
5848  stack_type((yyval)).subtype().id(ID_abstract);
5849  }
5850 #line 5851 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5851  break;
5852 
5853  case 350:
5854 #line 1776 "parser.y" /* yacc.c:1648 */
5855  {
5856  // an anon enum
5857  }
5858 #line 5859 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5859  break;
5860 
5861  case 351:
5862 #line 1781 "parser.y" /* yacc.c:1648 */
5863  {
5864  stack((yyvsp[-6])).operands().swap(stack((yyvsp[-2])).operands());
5865  (yyval)=merge((yyvsp[-6]), merge((yyvsp[-5]), (yyvsp[0]))); // throw in the gcc attributes
5866  }
5867 #line 5868 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5868  break;
5869 
5870  case 352:
5871 #line 1788 "parser.y" /* yacc.c:1648 */
5872  {
5873  // an enum with tag
5874  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[0])));
5875  }
5876 #line 5877 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5877  break;
5878 
5879  case 353:
5880 #line 1794 "parser.y" /* yacc.c:1648 */
5881  {
5882  stack((yyvsp[-7])).operands().swap(stack((yyvsp[-2])).operands());
5883  (yyval)=merge((yyvsp[-7]), merge((yyvsp[-6]), (yyvsp[0]))); // throw in the gcc attributes
5884  }
5885 #line 5886 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5886  break;
5887 
5888  case 354:
5889 #line 1802 "parser.y" /* yacc.c:1648 */
5890  {
5891  stack((yyvsp[-3])).id(ID_c_enum_tag); // tag only
5892  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[-1])));
5893  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0]))); // throw in the gcc attributes
5894  }
5895 #line 5896 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5896  break;
5897 
5898  case 355:
5899 #line 1810 "parser.y" /* yacc.c:1648 */
5900  {
5901  (yyval)=(yyvsp[0]);
5902  set((yyval), ID_c_enum);
5903  }
5904 #line 5905 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5905  break;
5906 
5907  case 356:
5908 #line 1818 "parser.y" /* yacc.c:1648 */
5909  {
5910  init((yyval), ID_declaration_list);
5911  }
5912 #line 5913 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5913  break;
5914 
5915  case 358:
5916 #line 1826 "parser.y" /* yacc.c:1648 */
5917  {
5918  init((yyval), ID_declaration_list);
5919  mto((yyval), (yyvsp[0]));
5920  }
5921 #line 5922 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5922  break;
5923 
5924  case 359:
5925 #line 1831 "parser.y" /* yacc.c:1648 */
5926  {
5927  (yyval)=(yyvsp[-2]);
5928  mto((yyval), (yyvsp[0]));
5929  }
5930 #line 5931 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5931  break;
5932 
5933  case 360:
5934 #line 1836 "parser.y" /* yacc.c:1648 */
5935  {
5936  (yyval)=(yyvsp[-1]);
5937  }
5938 #line 5939 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5939  break;
5940 
5941  case 361:
5942 #line 1843 "parser.y" /* yacc.c:1648 */
5943  {
5944  init((yyval), ID_declaration);
5946  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-2])));
5947  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
5948  }
5949 #line 5950 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5950  break;
5951 
5952  case 362:
5953 #line 1853 "parser.y" /* yacc.c:1648 */
5954  {
5955  init((yyval));
5956  stack((yyval)).make_nil();
5957  }
5958 #line 5959 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5959  break;
5960 
5961  case 363:
5962 #line 1858 "parser.y" /* yacc.c:1648 */
5963  {
5964  (yyval)=(yyvsp[0]);
5965  }
5966 #line 5967 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5967  break;
5968 
5969  case 365:
5970 #line 1866 "parser.y" /* yacc.c:1648 */
5971  {
5972  typet tmp(ID_ellipsis);
5973  (yyval)=(yyvsp[-2]);
5975  }
5976 #line 5977 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5977  break;
5978 
5979  case 366:
5980 #line 1875 "parser.y" /* yacc.c:1648 */
5981  {
5982  init((yyval), ID_parameters);
5983  mts((yyval), (yyvsp[0]));
5984  }
5985 #line 5986 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5986  break;
5987 
5988  case 367:
5989 #line 1880 "parser.y" /* yacc.c:1648 */
5990  {
5991  (yyval)=(yyvsp[-2]);
5992  mts((yyval), (yyvsp[0]));
5993  }
5994 #line 5995 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5995  break;
5996 
5997  case 368:
5998 #line 1887 "parser.y" /* yacc.c:1648 */
5999  {
6000  init((yyval), ID_declaration);
6001  stack((yyval)).type()=typet(ID_KnR);
6002  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6003  }
6004 #line 6005 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6005  break;
6006 
6007  case 369:
6008 #line 1896 "parser.y" /* yacc.c:1648 */
6009  {
6010  init((yyval), ID_parameters);
6011  mts((yyval), (yyvsp[0]));
6012  }
6013 #line 6014 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6014  break;
6015 
6016  case 370:
6017 #line 1901 "parser.y" /* yacc.c:1648 */
6018  {
6019  (yyval)=(yyvsp[-2]);
6020  mts((yyval), (yyvsp[0]));
6021  }
6022 #line 6023 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6023  break;
6024 
6025  case 371:
6026 #line 1909 "parser.y" /* yacc.c:1648 */
6027  {
6028  init((yyval), ID_declaration);
6030  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6031  exprt declarator=exprt(ID_abstract);
6032  PARSER.add_declarator(stack((yyval)), declarator);
6033  }
6034 #line 6035 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6035  break;
6036 
6037  case 372:
6038 #line 1917 "parser.y" /* yacc.c:1648 */
6039  {
6040  init((yyval), ID_declaration);
6042  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6043  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6044  }
6045 #line 6046 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6046  break;
6047 
6048  case 373:
6049 #line 1924 "parser.y" /* yacc.c:1648 */
6050  {
6051  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6052  init((yyval), ID_declaration);
6054  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6055  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6056  }
6057 #line 6058 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6058  break;
6059 
6060  case 374:
6061 #line 1932 "parser.y" /* yacc.c:1648 */
6062  {
6063  // the second tree is really the declarator -- not part
6064  // of the type!
6065  init((yyval), ID_declaration);
6067  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6068  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6069  }
6070 #line 6071 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6071  break;
6072 
6073  case 375:
6074 #line 1941 "parser.y" /* yacc.c:1648 */
6075  {
6076  init((yyval), ID_declaration);
6078  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6079  exprt declarator=exprt(ID_abstract);
6080  PARSER.add_declarator(stack((yyval)), declarator);
6081  }
6082 #line 6083 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6083  break;
6084 
6085  case 376:
6086 #line 1949 "parser.y" /* yacc.c:1648 */
6087  {
6088  init((yyval), ID_declaration);
6090  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6091  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6092  }
6093 #line 6094 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6094  break;
6095 
6096  case 377:
6097 #line 1956 "parser.y" /* yacc.c:1648 */
6098  {
6099  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6100  init((yyval), ID_declaration);
6102  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6103  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6104  }
6105 #line 6106 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6106  break;
6107 
6108  case 378:
6109 #line 1964 "parser.y" /* yacc.c:1648 */
6110  {
6111  init((yyval), ID_declaration);
6113  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6114  exprt declarator=exprt(ID_abstract);
6115  PARSER.add_declarator(stack((yyval)), declarator);
6116  }
6117 #line 6118 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6118  break;
6119 
6120  case 379:
6121 #line 1972 "parser.y" /* yacc.c:1648 */
6122  {
6123  init((yyval), ID_declaration);
6125  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6126  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6127  }
6128 #line 6129 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6129  break;
6130 
6131  case 380:
6132 #line 1979 "parser.y" /* yacc.c:1648 */
6133  {
6134  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6135  init((yyval), ID_declaration);
6137  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6138  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6139  }
6140 #line 6141 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6141  break;
6142 
6143  case 381:
6144 #line 1987 "parser.y" /* yacc.c:1648 */
6145  {
6146  // the second tree is really the declarator -- not part of the type!
6147  init((yyval), ID_declaration);
6149  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6150  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6151  }
6152 #line 6153 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6153  break;
6154 
6155  case 382:
6156 #line 1995 "parser.y" /* yacc.c:1648 */
6157  {
6158  init((yyval), ID_declaration);
6160  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6161  exprt declarator=exprt(ID_abstract);
6162  PARSER.add_declarator(stack((yyval)), declarator);
6163  }
6164 #line 6165 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6165  break;
6166 
6167  case 383:
6168 #line 2003 "parser.y" /* yacc.c:1648 */
6169  {
6170  init((yyval), ID_declaration);
6172  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6173  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6174  }
6175 #line 6176 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6176  break;
6177 
6178  case 384:
6179 #line 2010 "parser.y" /* yacc.c:1648 */
6180  {
6181  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6182  init((yyval), ID_declaration);
6184  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6185  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6186  }
6187 #line 6188 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6188  break;
6189 
6190  case 387:
6191 #line 2026 "parser.y" /* yacc.c:1648 */
6192  {
6193  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
6194  }
6195 #line 6196 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6196  break;
6197 
6198  case 388:
6199 #line 2030 "parser.y" /* yacc.c:1648 */
6200  {
6201  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
6202  make_subtype((yyval), (yyvsp[0]));
6203  }
6204 #line 6205 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6205  break;
6206 
6207  case 389:
6208 #line 2035 "parser.y" /* yacc.c:1648 */
6209  {
6210  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
6211  }
6212 #line 6213 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6213  break;
6214 
6215  case 390:
6216 #line 2039 "parser.y" /* yacc.c:1648 */
6217  {
6218  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
6219  make_subtype((yyval), (yyvsp[0]));
6220  }
6221 #line 6222 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6222  break;
6223 
6224  case 391:
6225 #line 2047 "parser.y" /* yacc.c:1648 */
6226  {
6227  init((yyval));
6228  stack((yyval)).make_nil();
6229  }
6230 #line 6231 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6231  break;
6232 
6233  case 392:
6234 #line 2052 "parser.y" /* yacc.c:1648 */
6235  { (yyval) = (yyvsp[0]); }
6236 #line 6237 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6237  break;
6238 
6239  case 394:
6240 #line 2063 "parser.y" /* yacc.c:1648 */
6241  {
6242  (yyval)=(yyvsp[-2]);
6243  set((yyval), ID_initializer_list);
6244  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
6245  }
6246 #line 6247 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6247  break;
6248 
6249  case 395:
6250 #line 2069 "parser.y" /* yacc.c:1648 */
6251  {
6252  (yyval)=(yyvsp[-3]);
6253  set((yyval), ID_initializer_list);
6254  stack((yyval)).operands().swap(stack((yyvsp[-2])).operands());
6255  }
6256 #line 6257 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6257  break;
6258 
6259  case 396:
6260 #line 2078 "parser.y" /* yacc.c:1648 */
6261  {
6262  (yyval)=(yyvsp[0]);
6263  exprt tmp;
6264  tmp.swap(stack((yyval)));
6265  stack((yyval)).clear();
6266  stack((yyval)).move_to_operands(tmp);
6267  }
6268 #line 6269 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6269  break;
6270 
6271  case 397:
6272 #line 2086 "parser.y" /* yacc.c:1648 */
6273  {
6274  (yyval)=(yyvsp[-2]);
6275  mto((yyval), (yyvsp[0]));
6276  }
6277 #line 6278 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6278  break;
6279 
6280  case 399:
6281 #line 2095 "parser.y" /* yacc.c:1648 */
6282  {
6283  init((yyval));
6284  set((yyval), ID_initializer_list);
6285  stack((yyval)).operands().clear();
6286  }
6287 #line 6288 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6288  break;
6289 
6290  case 401:
6291 #line 2105 "parser.y" /* yacc.c:1648 */
6292  {
6293  (yyval)=(yyvsp[-1]);
6294  stack((yyval)).id(ID_designated_initializer);
6295  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-2])));
6296  mto((yyval), (yyvsp[0]));
6297  }
6298 #line 6299 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6299  break;
6300 
6301  case 402:
6302 #line 2113 "parser.y" /* yacc.c:1648 */
6303  {
6304  init((yyval), ID_designated_initializer);
6305  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-1])));
6306  mto((yyval), (yyvsp[0]));
6307  }
6308 #line 6309 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6309  break;
6310 
6311  case 403:
6312 #line 2119 "parser.y" /* yacc.c:1648 */
6313  {
6314  // yet another GCC speciality
6315  (yyval)=(yyvsp[-1]);
6316  stack((yyval)).id(ID_designated_initializer);
6317  exprt designator;
6318  exprt member(ID_member);
6319  member.set(ID_component_name, stack((yyvsp[-2])).get(ID_C_base_name));
6320  designator.move_to_operands(member);
6321  stack((yyval)).add(ID_designator).swap(designator);
6322  mto((yyval), (yyvsp[0]));
6323  }
6324 #line 6325 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6325  break;
6326 
6327  case 404:
6328 #line 2134 "parser.y" /* yacc.c:1648 */
6329  {
6330  init((yyval));
6331  stack((yyvsp[-1])).id(ID_member);
6332  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
6333  mto((yyval), (yyvsp[-1]));
6334  }
6335 #line 6336 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6336  break;
6337 
6338  case 405:
6339 #line 2141 "parser.y" /* yacc.c:1648 */
6340  {
6341  init((yyval));
6342  stack((yyvsp[-2])).id(ID_index);
6343  mto((yyvsp[-2]), (yyvsp[-1]));
6344  mto((yyval), (yyvsp[-2]));
6345  }
6346 #line 6347 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6347  break;
6348 
6349  case 406:
6350 #line 2148 "parser.y" /* yacc.c:1648 */
6351  {
6352  // TODO
6353  init((yyval));
6354  stack((yyvsp[-4])).id(ID_index);
6355  mto((yyvsp[-4]), (yyvsp[-3]));
6356  mto((yyval), (yyvsp[-4]));
6357  }
6358 #line 6359 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6359  break;
6360 
6361  case 407:
6362 #line 2156 "parser.y" /* yacc.c:1648 */
6363  {
6364  (yyval)=(yyvsp[-3]);
6365  stack((yyvsp[-2])).id(ID_index);
6366  mto((yyvsp[-2]), (yyvsp[-1]));
6367  mto((yyval), (yyvsp[-2]));
6368  }
6369 #line 6370 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6370  break;
6371 
6372  case 408:
6373 #line 2163 "parser.y" /* yacc.c:1648 */
6374  {
6375  // TODO
6376  (yyval)=(yyvsp[-5]);
6377  stack((yyvsp[-4])).id(ID_index);
6378  mto((yyvsp[-4]), (yyvsp[-3]));
6379  mto((yyval), (yyvsp[-4]));
6380  }
6381 #line 6382 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6382  break;
6383 
6384  case 409:
6385 #line 2171 "parser.y" /* yacc.c:1648 */
6386  {
6387  (yyval)=(yyvsp[-2]);
6388  stack((yyvsp[-1])).id(ID_member);
6389  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
6390  mto((yyval), (yyvsp[-1]));
6391  }
6392 #line 6393 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6393  break;
6394 
6395  case 423:
6396 #line 2199 "parser.y" /* yacc.c:1648 */
6397  {
6398  init((yyval));
6399  statement((yyval), ID_decl);
6400  mto((yyval), (yyvsp[0]));
6401  }
6402 #line 6403 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6403  break;
6404 
6405  case 424:
6406 #line 2208 "parser.y" /* yacc.c:1648 */
6407  {
6408  /* Only semicolons permitted after the attribute:
6409  https://gcc.gnu.org/onlinedocs/gcc/Label-Attributes.html */
6410  (yyval)=(yyvsp[-2]);
6411  statement((yyval), ID_label);
6412  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-3])).get(ID_C_base_name));
6413  stack((yyval)).set(ID_label, identifier);
6414  // attribute ignored
6415  statement((yyvsp[-1]), ID_skip);
6416  mto((yyval), (yyvsp[-1]));
6417  }
6418 #line 6419 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6419  break;
6420 
6421  case 425:
6422 #line 2220 "parser.y" /* yacc.c:1648 */
6423  {
6424  (yyval)=(yyvsp[-1]);
6425  statement((yyval), ID_label);
6426  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-2])).get(ID_C_base_name));
6427  stack((yyval)).set(ID_label, identifier);
6428  mto((yyval), (yyvsp[0]));
6429  }
6430 #line 6431 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6431  break;
6432 
6433  case 426:
6434 #line 2228 "parser.y" /* yacc.c:1648 */
6435  {
6436  (yyval)=(yyvsp[-3]);
6437  statement((yyval), ID_switch_case);
6438  mto((yyval), (yyvsp[-2]));
6439  mto((yyval), (yyvsp[0]));
6440  }
6441 #line 6442 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6442  break;
6443 
6444  case 427:
6445 #line 2235 "parser.y" /* yacc.c:1648 */
6446  {
6447  // this is a GCC extension
6448  (yyval)=(yyvsp[-5]);
6449  statement((yyval), ID_gcc_switch_case_range);
6450  mto((yyval), (yyvsp[-4]));
6451  mto((yyval), (yyvsp[-2]));
6452  mto((yyval), (yyvsp[0]));
6453  }
6454 #line 6455 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6455  break;
6456 
6457  case 428:
6458 #line 2244 "parser.y" /* yacc.c:1648 */
6459  {
6460  (yyval)=(yyvsp[-2]);
6461  statement((yyval), ID_switch_case);
6462  stack((yyval)).operands().push_back(nil_exprt());
6463  mto((yyval), (yyvsp[0]));
6464  stack((yyval)).set(ID_default, true);
6465  }
6466 #line 6467 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6467  break;
6468 
6469  case 429:
6470 #line 2255 "parser.y" /* yacc.c:1648 */
6471  {
6472  // attribute ignored
6473  (yyval)=(yyvsp[0]);
6474  }
6475 #line 6476 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6476  break;
6477 
6478  case 430:
6479 #line 2263 "parser.y" /* yacc.c:1648 */
6480  {
6481  (yyval)=(yyvsp[-1]);
6482  statement((yyval), ID_block);
6483  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6484  PARSER.pop_scope();
6485  }
6486 #line 6487 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6487  break;
6488 
6489  case 431:
6490 #line 2270 "parser.y" /* yacc.c:1648 */
6491  {
6492  (yyval)=(yyvsp[-2]);
6493  statement((yyval), ID_block);
6494  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6495  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
6496  PARSER.pop_scope();
6497  }
6498 #line 6499 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6499  break;
6500 
6501  case 432:
6502 #line 2278 "parser.y" /* yacc.c:1648 */
6503  {
6504  (yyval)=(yyvsp[-2]);
6505  statement((yyval), ID_asm);
6506  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6507  mto((yyval), (yyvsp[-1]));
6508  PARSER.pop_scope();
6509  }
6510 #line 6511 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6511  break;
6512 
6513  case 433:
6514 #line 2289 "parser.y" /* yacc.c:1648 */
6515  {
6516  unsigned prefix=++PARSER.current_scope().compound_counter;
6517  PARSER.new_scope(std::to_string(prefix)+"::");
6518  }
6519 #line 6520 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6520  break;
6521 
6522  case 434:
6523 #line 2297 "parser.y" /* yacc.c:1648 */
6524  {
6525  init((yyval));
6526  mto((yyval), (yyvsp[0]));
6527  }
6528 #line 6529 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6529  break;
6530 
6531  case 435:
6532 #line 2302 "parser.y" /* yacc.c:1648 */
6533  {
6534  mto((yyval), (yyvsp[0]));
6535  }
6536 #line 6537 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6537  break;
6538 
6539  case 436:
6540 #line 2309 "parser.y" /* yacc.c:1648 */
6541  {
6542  (yyval)=(yyvsp[0]);
6543 
6544  if(stack((yyvsp[-1])).is_nil())
6545  statement((yyval), ID_skip);
6546  else
6547  {
6548  statement((yyval), ID_expression);
6549  mto((yyval), (yyvsp[-1]));
6550  }
6551  }
6552 #line 6553 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6553  break;
6554 
6555  case 437:
6556 #line 2324 "parser.y" /* yacc.c:1648 */
6557  {
6558  (yyval)=(yyvsp[-4]);
6559  statement((yyval), ID_ifthenelse);
6560  stack((yyval)).operands().reserve(3);
6561  mto((yyval), (yyvsp[-2]));
6562  mto((yyval), (yyvsp[0]));
6563  stack((yyval)).copy_to_operands(nil_exprt());
6564  }
6565 #line 6566 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6566  break;
6567 
6568  case 438:
6569 #line 2333 "parser.y" /* yacc.c:1648 */
6570  {
6571  (yyval)=(yyvsp[-6]);
6572  statement((yyval), ID_ifthenelse);
6573  stack((yyval)).operands().reserve(3);
6574  mto((yyval), (yyvsp[-4]));
6575  mto((yyval), (yyvsp[-2]));
6576  mto((yyval), (yyvsp[0]));
6577  }
6578 #line 6579 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6579  break;
6580 
6581  case 439:
6582 #line 2342 "parser.y" /* yacc.c:1648 */
6583  {
6584  (yyval)=(yyvsp[-4]);
6585  statement((yyval), ID_switch);
6586  stack((yyval)).operands().reserve(2);
6587  mto((yyval), (yyvsp[-2]));
6588  mto((yyval), (yyvsp[0]));
6589  }
6590 #line 6591 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6591  break;
6592 
6593  case 442:
6594 #line 2359 "parser.y" /* yacc.c:1648 */
6595  {
6596  (yyval)=(yyvsp[-5]);
6597  statement((yyval), ID_while);
6598  stack((yyval)).operands().reserve(2);
6599  mto((yyval), (yyvsp[-3]));
6600  mto((yyval), (yyvsp[0]));
6601 
6602  if(stack((yyvsp[-1])).is_not_nil())
6603  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6604  }
6605 #line 6606 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6606  break;
6607 
6608  case 443:
6609 #line 2371 "parser.y" /* yacc.c:1648 */
6610  {
6611  (yyval)=(yyvsp[-7]);
6612  statement((yyval), ID_dowhile);
6613  stack((yyval)).operands().reserve(2);
6614  mto((yyval), (yyvsp[-3]));
6615  mto((yyval), (yyvsp[-6]));
6616 
6617  if(stack((yyvsp[-1])).is_not_nil())
6618  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6619  }
6620 #line 6621 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6621  break;
6622 
6623  case 444:
6624 #line 2382 "parser.y" /* yacc.c:1648 */
6625  {
6626  // In C99 and upwards, for(;;) has a scope
6627  if(PARSER.for_has_scope)
6628  {
6629  unsigned prefix=++PARSER.current_scope().compound_counter;
6630  PARSER.new_scope(std::to_string(prefix)+"::");
6631  }
6632  }
6633 #line 6634 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6634  break;
6635 
6636  case 445:
6637 #line 2395 "parser.y" /* yacc.c:1648 */
6638  {
6639  (yyval)=(yyvsp[-9]);
6640  statement((yyval), ID_for);
6641  stack((yyval)).operands().reserve(4);
6642  mto((yyval), (yyvsp[-6]));
6643  mto((yyval), (yyvsp[-5]));
6644  mto((yyval), (yyvsp[-3]));
6645  mto((yyval), (yyvsp[0]));
6646 
6647  if(stack((yyvsp[-1])).is_not_nil())
6648  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6649 
6650  if(PARSER.for_has_scope)
6651  PARSER.pop_scope(); // remove the C99 for-scope
6652  }
6653 #line 6654 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6654  break;
6655 
6656  case 446:
6657 #line 2414 "parser.y" /* yacc.c:1648 */
6658  {
6659  (yyval)=(yyvsp[-2]);
6660  if(stack((yyvsp[-1])).id()==ID_symbol)
6661  {
6662  statement((yyval), ID_goto);
6663  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-1])).get(ID_C_base_name));
6664  stack((yyval)).set(ID_destination, identifier);
6665  }
6666  else
6667  {
6668  // this is a gcc extension.
6669  // the original grammar uses identifier_or_typedef_name
6670  statement((yyval), ID_gcc_computed_goto);
6671  mto((yyval), (yyvsp[-1]));
6672  }
6673  }
6674 #line 6675 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6675  break;
6676 
6677  case 447:
6678 #line 2431 "parser.y" /* yacc.c:1648 */
6679  {
6680  (yyval)=(yyvsp[-2]);
6681  statement((yyval), ID_goto);
6682  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-1])).get(ID_C_base_name));
6683  stack((yyval)).set(ID_destination, identifier);
6684  }
6685 #line 6686 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6686  break;
6687 
6688  case 448:
6689 #line 2438 "parser.y" /* yacc.c:1648 */
6690  { (yyval)=(yyvsp[-1]); statement((yyval), ID_continue); }
6691 #line 6692 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6692  break;
6693 
6694  case 449:
6695 #line 2440 "parser.y" /* yacc.c:1648 */
6696  { (yyval)=(yyvsp[-1]); statement((yyval), ID_break); }
6697 #line 6698 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6698  break;
6699 
6700  case 450:
6701 #line 2442 "parser.y" /* yacc.c:1648 */
6702  { (yyval)=(yyvsp[-1]); statement((yyval), ID_return); }
6703 #line 6704 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6704  break;
6705 
6706  case 451:
6707 #line 2444 "parser.y" /* yacc.c:1648 */
6708  { (yyval)=(yyvsp[-2]); statement((yyval), ID_return); mto((yyval), (yyvsp[-1])); }
6709 #line 6710 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6710  break;
6711 
6712  case 452:
6713 #line 2449 "parser.y" /* yacc.c:1648 */
6714  {
6715  (yyval)=(yyvsp[-2]);
6716  statement((yyval), ID_gcc_local_label);
6717 
6718  // put these into the scope
6719  forall_operands(it, stack((yyvsp[-1])))
6720  {
6721  // labels have a separate name space
6722  irep_idt base_name=it->get(ID_identifier);
6723  irep_idt id="label-"+id2string(base_name);
6724  ansi_c_parsert::identifiert &i=PARSER.current_scope().name_map[id];
6726  i.prefixed_name=PARSER.current_scope().prefix+id2string(id);
6727  i.base_name=base_name;
6728  }
6729 
6730  stack((yyval)).add(ID_label).get_sub().swap((irept::subt&)stack((yyvsp[-1])).operands());
6731  }
6732 #line 6733 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6733  break;
6734 
6735  case 453:
6736 #line 2471 "parser.y" /* yacc.c:1648 */
6737  {
6738  init((yyval));
6739  mto((yyval), (yyvsp[0]));
6740  }
6741 #line 6742 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6742  break;
6743 
6744  case 454:
6745 #line 2476 "parser.y" /* yacc.c:1648 */
6746  {
6747  (yyval)=(yyvsp[-2]);
6748  mto((yyval), (yyvsp[0]));
6749  }
6750 #line 6751 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6751  break;
6752 
6753  case 456:
6754 #line 2487 "parser.y" /* yacc.c:1648 */
6755  { (yyval)=(yyvsp[-5]);
6756  statement((yyval), ID_asm);
6757  stack((yyval)).set(ID_flavor, ID_gcc);
6758  stack((yyval)).operands().swap(stack((yyvsp[-2])).operands());
6759  }
6760 #line 6761 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6761  break;
6762 
6763  case 457:
6764 #line 2493 "parser.y" /* yacc.c:1648 */
6765  {
6766  (yyval)=(yyvsp[-4]);
6767  statement((yyval), ID_asm);
6768  stack((yyval)).set(ID_flavor, ID_gcc);
6769  stack((yyval)).operands().resize(5);
6770  stack((yyval)).op0()=stack((yyvsp[-1]));
6771  }
6772 #line 6773 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6773  break;
6774 
6775  case 458:
6776 #line 2504 "parser.y" /* yacc.c:1648 */
6777  { (yyval)=(yyvsp[-3]);
6778  statement((yyval), ID_asm);
6779  stack((yyval)).set(ID_flavor, ID_msc);
6780  mto((yyval), (yyvsp[-1]));
6781  }
6782 #line 6783 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6783  break;
6784 
6785  case 459:
6786 #line 2510 "parser.y" /* yacc.c:1648 */
6787  { (yyval)=(yyvsp[-1]);
6788  statement((yyval), ID_asm);
6789  stack((yyval)).set(ID_flavor, ID_msc);
6790  mto((yyval), (yyvsp[0]));
6791  }
6792 #line 6793 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6793  break;
6794 
6795  case 460:
6796 #line 2520 "parser.y" /* yacc.c:1648 */
6797  {
6798  (yyval)=(yyvsp[-6]);
6799  statement((yyval), ID_msc_try_except);
6800  mto((yyval), (yyvsp[-5]));
6801  mto((yyval), (yyvsp[-2]));
6802  mto((yyval), (yyvsp[0]));
6803  }
6804 #line 6805 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6805  break;
6806 
6807  case 461:
6808 #line 2529 "parser.y" /* yacc.c:1648 */
6809  {
6810  (yyval)=(yyvsp[-3]);
6811  statement((yyval), ID_msc_try_finally);
6812  mto((yyval), (yyvsp[-2]));
6813  mto((yyval), (yyvsp[0]));
6814  }
6815 #line 6816 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6816  break;
6817 
6818  case 462:
6819 #line 2536 "parser.y" /* yacc.c:1648 */
6820  {
6821  (yyval)=(yyvsp[0]);
6822  statement((yyval), ID_msc_leave);
6823  }
6824 #line 6825 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6825  break;
6826 
6827  case 463:
6828 #line 2544 "parser.y" /* yacc.c:1648 */
6829  {
6830  (yyval)=(yyvsp[-1]);
6831  statement((yyval), ID_CPROVER_throw);
6832  }
6833 #line 6834 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6834  break;
6835 
6836  case 464:
6837 #line 2550 "parser.y" /* yacc.c:1648 */
6838  {
6839  (yyval)=(yyvsp[-3]);
6840  statement((yyval), ID_CPROVER_try_catch);
6841  mto((yyval), (yyvsp[-2]));
6842  mto((yyval), (yyvsp[0]));
6843  }
6844 #line 6845 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6845  break;
6846 
6847  case 465:
6848 #line 2558 "parser.y" /* yacc.c:1648 */
6849  {
6850  (yyval)=(yyvsp[-3]);
6851  statement((yyval), ID_CPROVER_try_finally);
6852  mto((yyval), (yyvsp[-2]));
6853  mto((yyval), (yyvsp[0]));
6854  }
6855 #line 6856 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6856  break;
6857 
6858  case 471:
6859 #line 2584 "parser.y" /* yacc.c:1648 */
6860  {
6861  init((yyval));
6862  stack((yyval)).operands().resize(5);
6863  stack((yyval)).operands()[0]=stack((yyvsp[0]));
6864  }
6865 #line 6866 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6866  break;
6867 
6868  case 472:
6869 #line 2590 "parser.y" /* yacc.c:1648 */
6870  {
6871  init((yyval));
6872  stack((yyval)).operands().resize(5);
6873  stack((yyval)).operands()[0]=stack((yyvsp[-1]));
6874  stack((yyval)).operands()[1]=stack((yyvsp[0]));
6875  }
6876 #line 6877 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6877  break;
6878 
6879  case 473:
6880 #line 2597 "parser.y" /* yacc.c:1648 */
6881  {
6882  init((yyval));
6883  stack((yyval)).operands().resize(5);
6884  stack((yyval)).operands()[0]=stack((yyvsp[-2]));
6885  stack((yyval)).operands()[1]=stack((yyvsp[-1]));
6886  stack((yyval)).operands()[2]=stack((yyvsp[0]));
6887  }
6888 #line 6889 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6889  break;
6890 
6891  case 474:
6892 #line 2605 "parser.y" /* yacc.c:1648 */
6893  {
6894  init((yyval));
6895  stack((yyval)).operands().resize(5);
6896  stack((yyval)).operands()[0]=stack((yyvsp[-3]));
6897  stack((yyval)).operands()[1]=stack((yyvsp[-2]));
6898  stack((yyval)).operands()[2]=stack((yyvsp[-1]));
6899  stack((yyval)).operands()[3]=stack((yyvsp[0]));
6900  }
6901 #line 6902 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6902  break;
6903 
6904  case 475:
6905 #line 2614 "parser.y" /* yacc.c:1648 */
6906  {
6907  init((yyval));
6908  stack((yyval)).operands().resize(5);
6909  stack((yyval)).operands()[0]=stack((yyvsp[-4]));
6910  stack((yyval)).operands()[1]=stack((yyvsp[-3]));
6911  stack((yyval)).operands()[2]=stack((yyvsp[-2]));
6912  stack((yyval)).operands()[3]=stack((yyvsp[-1]));
6913  stack((yyval)).operands()[4]=stack((yyvsp[0]));
6914  }
6915 #line 6916 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6916  break;
6917 
6918  case 477:
6919 #line 2630 "parser.y" /* yacc.c:1648 */
6920  {
6921  (yyval)=(yyvsp[0]);
6922  }
6923 #line 6924 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6924  break;
6925 
6926  case 479:
6927 #line 2638 "parser.y" /* yacc.c:1648 */
6928  {
6929  (yyval)=(yyvsp[-2]);
6930  stack((yyval)).id(ID_gcc_asm_output);
6931  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6932  }
6933 #line 6934 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6934  break;
6935 
6936  case 480:
6937 #line 2645 "parser.y" /* yacc.c:1648 */
6938  {
6939  (yyval)=(yyvsp[-2]);
6940  stack((yyval)).id(ID_gcc_asm_output);
6941  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6942  }
6943 #line 6944 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6944  break;
6945 
6946  case 481:
6947 #line 2654 "parser.y" /* yacc.c:1648 */
6948  {
6949  init((yyval), irep_idt());
6950  mto((yyval), (yyvsp[0]));
6951  }
6952 #line 6953 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6953  break;
6954 
6955  case 482:
6956 #line 2659 "parser.y" /* yacc.c:1648 */
6957  {
6958  (yyval)=(yyvsp[-2]);
6959  mto((yyval), (yyvsp[0]));
6960  }
6961 #line 6962 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6962  break;
6963 
6964  case 483:
6965 #line 2667 "parser.y" /* yacc.c:1648 */
6966  {
6967  (yyval)=(yyvsp[0]);
6968  }
6969 #line 6970 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6970  break;
6971 
6972  case 485:
6973 #line 2675 "parser.y" /* yacc.c:1648 */
6974  {
6975  (yyval)=(yyvsp[-2]);
6976  stack((yyval)).id(ID_gcc_asm_input);
6977  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6978  }
6979 #line 6980 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6980  break;
6981 
6982  case 486:
6983 #line 2682 "parser.y" /* yacc.c:1648 */
6984  {
6985  (yyval)=(yyvsp[-2]);
6986  stack((yyval)).id(ID_gcc_asm_input);
6987  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6988  }
6989 #line 6990 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6990  break;
6991 
6992  case 487:
6993 #line 2691 "parser.y" /* yacc.c:1648 */
6994  {
6995  init((yyval), irep_idt());
6996  mto((yyval), (yyvsp[0]));
6997  }
6998 #line 6999 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6999  break;
7000 
7001  case 488:
7002 #line 2696 "parser.y" /* yacc.c:1648 */
7003  {
7004  (yyval)=(yyvsp[-2]);
7005  mto((yyval), (yyvsp[0]));
7006  }
7007 #line 7008 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7008  break;
7009 
7010  case 489:
7011 #line 2704 "parser.y" /* yacc.c:1648 */
7012  {
7013  (yyval)=(yyvsp[0]);
7014  }
7015 #line 7016 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7016  break;
7017 
7018  case 491:
7019 #line 2712 "parser.y" /* yacc.c:1648 */
7020  {
7021  init((yyval), ID_gcc_asm_clobbered_register);
7022  mto((yyval), (yyvsp[0]));
7023  }
7024 #line 7025 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7025  break;
7026 
7027  case 492:
7028 #line 2720 "parser.y" /* yacc.c:1648 */
7029  {
7030  init((yyval), irep_idt());
7031  mto((yyval), (yyvsp[0]));
7032  }
7033 #line 7034 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7034  break;
7035 
7036  case 493:
7037 #line 2725 "parser.y" /* yacc.c:1648 */
7038  {
7039  (yyval)=(yyvsp[-2]);
7040  mto((yyval), (yyvsp[0]));
7041  }
7042 #line 7043 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7043  break;
7044 
7045  case 494:
7046 #line 2733 "parser.y" /* yacc.c:1648 */
7047  {
7048  (yyval)=(yyvsp[0]);
7049  }
7050 #line 7051 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7051  break;
7052 
7053  case 496:
7054 #line 2741 "parser.y" /* yacc.c:1648 */
7055  {
7056  init((yyval));
7057  mto((yyval), (yyvsp[0]));
7058  }
7059 #line 7060 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7060  break;
7061 
7062  case 497:
7063 #line 2746 "parser.y" /* yacc.c:1648 */
7064  {
7065  (yyval)=(yyvsp[-2]);
7066  mto((yyval), (yyvsp[0]));
7067  }
7068 #line 7069 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7069  break;
7070 
7071  case 498:
7072 #line 2754 "parser.y" /* yacc.c:1648 */
7073  {
7074  (yyval)=(yyvsp[0]);
7075  irep_idt identifier=PARSER.lookup_label(stack((yyval)).get(ID_C_base_name));
7076  stack((yyval)).id(ID_label);
7077  stack((yyval)).set(ID_identifier, identifier);
7078  }
7079 #line 7080 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7080  break;
7081 
7082  case 503:
7083 #line 2773 "parser.y" /* yacc.c:1648 */
7084  {
7085  // put into global list of items
7086  PARSER.copy_item(to_ansi_c_declaration(stack((yyvsp[0]))));
7087  }
7088 #line 7089 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7089  break;
7090 
7091  case 504:
7092 #line 2778 "parser.y" /* yacc.c:1648 */
7093  {
7094  PARSER.copy_item(to_ansi_c_declaration(stack((yyvsp[0]))));
7095  }
7096 #line 7097 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7097  break;
7098 
7099  case 507:
7100 #line 2787 "parser.y" /* yacc.c:1648 */
7101  {
7102  // Not obvious what to do with this.
7103  }
7104 #line 7105 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7105  break;
7106 
7107  case 508:
7108 #line 2791 "parser.y" /* yacc.c:1648 */
7109  {
7110  // Not obvious what to do with this.
7111  }
7112 #line 7113 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7113  break;
7114 
7115  case 509:
7116 #line 2801 "parser.y" /* yacc.c:1648 */
7117  {
7118  if(stack((yyvsp[-2])).is_not_nil())
7119  stack((yyvsp[-3])).add(ID_C_spec_requires).swap(stack((yyvsp[-2])));
7120  if(stack((yyvsp[-1])).is_not_nil())
7121  stack((yyvsp[-3])).add(ID_C_spec_ensures).swap(stack((yyvsp[-1])));
7122  // The head is a declaration with one declarator,
7123  // and the body becomes the 'value'.
7124  (yyval)=(yyvsp[-3]);
7125  ansi_c_declarationt &ansi_c_declaration=
7126  to_ansi_c_declaration(stack((yyval)));
7127 
7128  assert(ansi_c_declaration.declarators().size()==1);
7129  ansi_c_declaration.add_initializer(stack((yyvsp[0])));
7130 
7131  // Kill the scope that 'function_head' creates.
7132  PARSER.pop_scope();
7133 
7134  // We are no longer in any function.
7135  PARSER.set_function(irep_idt());
7136  }
7137 #line 7138 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7138  break;
7139 
7140  case 511:
7141 #line 2829 "parser.y" /* yacc.c:1648 */
7142  {
7143  init((yyval));
7144  }
7145 #line 7146 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7146  break;
7147 
7148  case 513:
7149 #line 2837 "parser.y" /* yacc.c:1648 */
7150  {
7151  init((yyval), ID_decl_block);
7152  mto((yyval), (yyvsp[0]));
7153  }
7154 #line 7155 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7155  break;
7156 
7157  case 514:
7158 #line 2842 "parser.y" /* yacc.c:1648 */
7159  {
7160  (yyval)=(yyvsp[-1]);
7161  mto((yyval), (yyvsp[0]));
7162  }
7163 #line 7164 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7164  break;
7165 
7166  case 517:
7167 #line 2856 "parser.y" /* yacc.c:1648 */
7168  {
7169  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7170  }
7171 #line 7172 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7172  break;
7173 
7174  case 518:
7175 #line 2860 "parser.y" /* yacc.c:1648 */
7176  {
7177  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7178  }
7179 #line 7180 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7180  break;
7181 
7182  case 519:
7183 #line 2867 "parser.y" /* yacc.c:1648 */
7184  {
7185  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7186  }
7187 #line 7188 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7188  break;
7189 
7190  case 520:
7191 #line 2871 "parser.y" /* yacc.c:1648 */
7192  {
7193  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7194  }
7195 #line 7196 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7196  break;
7197 
7198  case 521:
7199 #line 2875 "parser.y" /* yacc.c:1648 */
7200  {
7201  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7202  }
7203 #line 7204 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7204  break;
7205 
7206  case 522:
7207 #line 2879 "parser.y" /* yacc.c:1648 */
7208  {
7209  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7210  }
7211 #line 7212 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7212  break;
7213 
7214  case 523:
7215 #line 2887 "parser.y" /* yacc.c:1648 */
7216  {
7217  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7218  }
7219 #line 7220 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7220  break;
7221 
7222  case 524:
7223 #line 2891 "parser.y" /* yacc.c:1648 */
7224  {
7225  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7226  }
7227 #line 7228 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7228  break;
7229 
7230  case 525:
7231 #line 2895 "parser.y" /* yacc.c:1648 */
7232  {
7233  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7234  }
7235 #line 7236 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7236  break;
7237 
7238  case 526:
7239 #line 2903 "parser.y" /* yacc.c:1648 */
7240  {
7241  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[-1])));
7242  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0])));
7243  }
7244 #line 7245 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7245  break;
7246 
7247  case 527:
7248 #line 2908 "parser.y" /* yacc.c:1648 */
7249  {
7250  stack((yyvsp[-2])).id(ID_c_enum_tag);
7251  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[-1])));
7252  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0])));
7253  }
7254 #line 7255 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7255  break;
7256 
7257  case 531:
7258 #line 2924 "parser.y" /* yacc.c:1648 */
7259  {
7260  init((yyval), ID_declaration);
7261  stack((yyval)).type().swap(stack((yyvsp[-1])));
7262  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7263  }
7264 #line 7265 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7265  break;
7266 
7267  case 532:
7268 #line 2930 "parser.y" /* yacc.c:1648 */
7269  {
7270  init((yyval), ID_declaration);
7271  stack((yyval)).type().swap(stack((yyvsp[-1])));
7272  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7273  }
7274 #line 7275 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7275  break;
7276 
7277  case 533:
7278 #line 2936 "parser.y" /* yacc.c:1648 */
7279  {
7280  (yyval)=(yyvsp[-2]);
7281  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7282  }
7283 #line 7284 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7284  break;
7285 
7286  case 534:
7287 #line 2944 "parser.y" /* yacc.c:1648 */
7288  {
7289  init((yyval), ID_declaration);
7290  irept return_type(ID_int);
7291  stack((yyval)).type().swap(return_type);
7292  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7293  create_function_scope((yyval));
7294  }
7295 #line 7296 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7296  break;
7297 
7298  case 535:
7299 #line 2952 "parser.y" /* yacc.c:1648 */
7300  {
7301  init((yyval), ID_declaration);
7302  stack((yyval)).type().swap(stack((yyvsp[-1])));
7303  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7304  create_function_scope((yyval));
7305  }
7306 #line 7307 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7307  break;
7308 
7309  case 536:
7310 #line 2959 "parser.y" /* yacc.c:1648 */
7311  {
7312  init((yyval), ID_declaration);
7313  stack((yyval)).type().swap(stack((yyvsp[-1])));
7314  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7315  create_function_scope((yyval));
7316  }
7317 #line 7318 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7318  break;
7319 
7320  case 537:
7321 #line 2966 "parser.y" /* yacc.c:1648 */
7322  {
7323  init((yyval), ID_declaration);
7324  stack((yyval)).type().swap(stack((yyvsp[-1])));
7325  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7326  create_function_scope((yyval));
7327  }
7328 #line 7329 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7329  break;
7330 
7331  case 538:
7332 #line 2973 "parser.y" /* yacc.c:1648 */
7333  {
7334  init((yyval), ID_declaration);
7335  stack((yyval)).type().swap(stack((yyvsp[-1])));
7336  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7337  create_function_scope((yyval));
7338  }
7339 #line 7340 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7340  break;
7341 
7342  case 542:
7343 #line 2989 "parser.y" /* yacc.c:1648 */
7344  {
7345  stack_type((yyvsp[-3]))=typet(ID_abstract);
7346  (yyvsp[-2])=merge((yyvsp[-2]), (yyvsp[-3])); // dest=$2
7347  make_subtype((yyvsp[-1]), (yyvsp[-2])); // dest=$3
7348  (yyval)=(yyvsp[-1]);
7349  }
7350 #line 7351 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7351  break;
7352 
7353  case 543:
7354 #line 2996 "parser.y" /* yacc.c:1648 */
7355  {
7356  stack_type((yyvsp[-4]))=typet(ID_abstract);
7357  (yyvsp[-3])=merge((yyvsp[-3]), (yyvsp[-4])); // dest=$2
7358  make_subtype((yyvsp[-2]), (yyvsp[-3])); // dest=$3
7359  /* note: this is (a pointer to) a function ($5) */
7360  /* or an array ($5) with name ($3) */
7361  (yyval)=(yyvsp[-2]);
7362  make_subtype((yyval), (yyvsp[0]));
7363  }
7364 #line 7365 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7365  break;
7366 
7367  case 544:
7368 #line 3006 "parser.y" /* yacc.c:1648 */
7369  {
7370  (yyval)=(yyvsp[0]);
7371  do_pointer((yyvsp[-1]), (yyvsp[0]));
7372  }
7373 #line 7374 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7374  break;
7375 
7376  case 548:
7377 #line 3020 "parser.y" /* yacc.c:1648 */
7378  {
7379  (yyval)=(yyvsp[-1]);
7380  make_subtype((yyval), (yyvsp[0]));
7381  }
7382 #line 7383 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7383  break;
7384 
7385  case 551:
7386 #line 3030 "parser.y" /* yacc.c:1648 */
7387  {
7388  (yyval)=(yyvsp[0]);
7389  do_pointer((yyvsp[-1]), (yyvsp[0]));
7390  }
7391 #line 7392 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7392  break;
7393 
7394  case 552:
7395 #line 3035 "parser.y" /* yacc.c:1648 */
7396  {
7397  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
7398  do_pointer((yyvsp[-2]), (yyvsp[-1]));
7399  }
7400 #line 7401 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7401  break;
7402 
7403  case 553:
7404 #line 3043 "parser.y" /* yacc.c:1648 */
7405  { (yyval) = (yyvsp[-1]); }
7406 #line 7407 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7407  break;
7408 
7409  case 554:
7410 #line 3045 "parser.y" /* yacc.c:1648 */
7411  {
7412  /* note: this is a pointer ($2) to a function ($4) */
7413  /* or an array ($4)! */
7414  (yyval)=(yyvsp[-2]);
7415  make_subtype((yyval), (yyvsp[0]));
7416  }
7417 #line 7418 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7418  break;
7419 
7420  case 556:
7421 #line 3056 "parser.y" /* yacc.c:1648 */
7422  {
7423  (yyval)=(yyvsp[-1]);
7424  do_pointer((yyvsp[-3]), (yyvsp[-1]));
7425  }
7426 #line 7427 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7427  break;
7428 
7429  case 557:
7430 #line 3061 "parser.y" /* yacc.c:1648 */
7431  {
7432  // not sure where the type qualifiers belong
7433  (yyval)=merge((yyvsp[-3]), (yyvsp[-1]));
7434  do_pointer((yyvsp[-4]), (yyvsp[-3]));
7435  }
7436 #line 7437 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7437  break;
7438 
7439  case 558:
7440 #line 3067 "parser.y" /* yacc.c:1648 */
7441  {
7442  (yyval)=(yyvsp[0]);
7443  do_pointer((yyvsp[-1]), (yyvsp[0]));
7444  }
7445 #line 7446 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7446  break;
7447 
7448  case 559:
7449 #line 3072 "parser.y" /* yacc.c:1648 */
7450  {
7451  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
7452  do_pointer((yyvsp[-2]), (yyvsp[-1]));
7453  }
7454 #line 7455 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7455  break;
7456 
7457  case 560:
7458 #line 3080 "parser.y" /* yacc.c:1648 */
7459  { (yyval) = (yyvsp[-1]); }
7460 #line 7461 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7461  break;
7462 
7463  case 561:
7464 #line 3082 "parser.y" /* yacc.c:1648 */
7465  { /* note: this is a function ($3) with a typedef name ($2) */
7466  (yyval)=(yyvsp[-2]);
7467  make_subtype((yyval), (yyvsp[-1]));
7468  }
7469 #line 7470 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7470  break;
7471 
7472  case 562:
7473 #line 3087 "parser.y" /* yacc.c:1648 */
7474  {
7475  /* note: this is a pointer ($2) to a function ($4) */
7476  /* or an array ($4)! */
7477  (yyval)=(yyvsp[-2]);
7478  make_subtype((yyval), (yyvsp[0]));
7479  }
7480 #line 7481 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7481  break;
7482 
7483  case 564:
7484 #line 3098 "parser.y" /* yacc.c:1648 */
7485  { (yyval)=(yyvsp[-1]); }
7486 #line 7487 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7487  break;
7488 
7489  case 568:
7490 #line 3109 "parser.y" /* yacc.c:1648 */
7491  {
7492  (yyval)=(yyvsp[0]);
7493  do_pointer((yyvsp[-1]), (yyvsp[0]));
7494  }
7495 #line 7496 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7496  break;
7497 
7498  case 569:
7499 #line 3114 "parser.y" /* yacc.c:1648 */
7500  {
7501  // This is an Apple extension to C/C++/Objective C.
7502  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7503  (yyval)=(yyvsp[0]);
7504  do_pointer((yyvsp[-1]), (yyvsp[0]));
7505  }
7506 #line 7507 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7507  break;
7508 
7509  case 570:
7510 #line 3121 "parser.y" /* yacc.c:1648 */
7511  {
7512  // the type_qualifier_list is for the pointer,
7513  // and not the identifier_declarator
7514  // The below is deliberately not using pointer_type();
7515  // the width is added during conversion.
7516  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7517  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7518  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7519  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7520  (yyval)=(yyvsp[0]);
7521  }
7522 #line 7523 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7523  break;
7524 
7525  case 571:
7526 #line 3136 "parser.y" /* yacc.c:1648 */
7527  {
7528  /* note: this is a function or array ($2) with name ($1) */
7529  (yyval)=(yyvsp[-1]);
7530  make_subtype((yyval), (yyvsp[0]));
7531  }
7532 #line 7533 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7533  break;
7534 
7535  case 572:
7536 #line 3142 "parser.y" /* yacc.c:1648 */
7537  { (yyval) = (yyvsp[-1]); }
7538 #line 7539 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7539  break;
7540 
7541  case 573:
7542 #line 3144 "parser.y" /* yacc.c:1648 */
7543  {
7544  /* note: this is a pointer ($2) to a function ($4) */
7545  /* or an array ($4)! */
7546  (yyval)=(yyvsp[-2]);
7547  make_subtype((yyval), (yyvsp[0]));
7548  }
7549 #line 7550 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7550  break;
7551 
7552  case 574:
7553 #line 3154 "parser.y" /* yacc.c:1648 */
7554  {
7555  // We remember the last declarator for the benefit
7556  // of function argument scoping.
7557  PARSER.current_scope().last_declarator=
7558  stack((yyvsp[0])).get(ID_identifier);
7559  }
7560 #line 7561 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7561  break;
7562 
7563  case 575:
7564 #line 3161 "parser.y" /* yacc.c:1648 */
7565  { (yyval)=(yyvsp[-1]); }
7566 #line 7567 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7567  break;
7568 
7569  case 582:
7570 #line 3181 "parser.y" /* yacc.c:1648 */
7571  {
7572  (yyval)=(yyvsp[-2]);
7573  set((yyval), ID_code);
7574  stack_type((yyval)).subtype()=typet(ID_abstract);
7575  stack_type((yyval)).add(ID_parameters);
7576  stack_type((yyval)).set(ID_C_KnR, true);
7577  }
7578 #line 7579 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7579  break;
7580 
7581  case 583:
7582 #line 3189 "parser.y" /* yacc.c:1648 */
7583  {
7584  // Use last declarator (i.e., function name) to name
7585  // the scope.
7586  PARSER.new_scope(
7587  id2string(PARSER.current_scope().last_declarator)+"::");
7588  }
7589 #line 7590 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7590  break;
7591 
7592  case 584:
7593 #line 3198 "parser.y" /* yacc.c:1648 */
7594  {
7595  (yyval)=(yyvsp[-4]);
7596  set((yyval), ID_code);
7597  stack_type((yyval)).subtype()=typet(ID_abstract);
7598  stack_type((yyval)).add(ID_parameters).get_sub().
7599  swap((irept::subt &)(to_type_with_subtypes(stack_type((yyvsp[-2]))).subtypes()));
7600  PARSER.pop_scope();
7601  adjust_KnR_parameters(stack((yyval)).add(ID_parameters), stack((yyvsp[0])));
7602  stack((yyval)).set(ID_C_KnR, true);
7603  }
7604 #line 7605 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7605  break;
7606 
7607  case 586:
7608 #line 3213 "parser.y" /* yacc.c:1648 */
7609  {
7610  (yyval)=(yyvsp[-1]);
7611  set((yyval), ID_code);
7612  stack_type((yyval)).add(ID_parameters);
7613  stack_type((yyval)).subtype()=typet(ID_abstract);
7614  }
7615 #line 7616 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7616  break;
7617 
7618  case 587:
7619 #line 3220 "parser.y" /* yacc.c:1648 */
7620  {
7621  // Use last declarator (i.e., function name) to name
7622  // the scope.
7623  PARSER.new_scope(
7624  id2string(PARSER.current_scope().last_declarator)+"::");
7625  }
7626 #line 7627 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7627  break;
7628 
7629  case 588:
7630 #line 3228 "parser.y" /* yacc.c:1648 */
7631  {
7632  (yyval)=(yyvsp[-4]);
7633  set((yyval), ID_code);
7634  stack_type((yyval)).subtype()=typet(ID_abstract);
7635  stack_type((yyval)).add(ID_parameters).get_sub().
7636  swap((irept::subt &)(to_type_with_subtypes(stack_type((yyvsp[-2]))).subtypes()));
7637  PARSER.pop_scope();
7638 
7639  if(stack((yyvsp[0])).is_not_nil())
7640  {
7641  adjust_KnR_parameters(stack((yyval)).add(ID_parameters), stack((yyvsp[0])));
7642  stack((yyval)).set(ID_C_KnR, true);
7643  }
7644  }
7645 #line 7646 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7646  break;
7647 
7648  case 589:
7649 #line 3246 "parser.y" /* yacc.c:1648 */
7650  {
7651  (yyval)=(yyvsp[-1]);
7652  set((yyval), ID_array);
7653  stack_type((yyval)).subtype()=typet(ID_abstract);
7654  stack_type((yyval)).add(ID_size).make_nil();
7655  }
7656 #line 7657 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7657  break;
7658 
7659  case 590:
7660 #line 3253 "parser.y" /* yacc.c:1648 */
7661  {
7662  // this is C99: e.g., restrict, const, etc
7663  // The type qualifier belongs to the array, not the
7664  // contents of the array, nor the size.
7665  set((yyvsp[-2]), ID_array);
7666  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7667  stack_type((yyvsp[-2])).add(ID_size).make_nil();
7668  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
7669  }
7670 #line 7671 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7671  break;
7672 
7673  case 591:
7674 #line 3263 "parser.y" /* yacc.c:1648 */
7675  {
7676  // these should be allowed in prototypes only
7677  (yyval)=(yyvsp[-2]);
7678  set((yyval), ID_array);
7679  stack_type((yyval)).subtype()=typet(ID_abstract);
7680  stack_type((yyval)).add(ID_size).make_nil();
7681  }
7682 #line 7683 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7683  break;
7684 
7685  case 592:
7686 #line 3271 "parser.y" /* yacc.c:1648 */
7687  {
7688  (yyval)=(yyvsp[-2]);
7689  set((yyval), ID_array);
7690  stack_type((yyval)).add(ID_size).swap(stack((yyvsp[-1])));
7691  stack_type((yyval)).subtype()=typet(ID_abstract);
7692  }
7693 #line 7694 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7694  break;
7695 
7696  case 593:
7697 #line 3278 "parser.y" /* yacc.c:1648 */
7698  {
7699  // The type qualifier belongs to the array, not the
7700  // contents of the array, nor the size.
7701  set((yyvsp[-3]), ID_array);
7702  stack_type((yyvsp[-3])).add(ID_size).swap(stack((yyvsp[-1])));
7703  stack_type((yyvsp[-3])).subtype()=typet(ID_abstract);
7704  (yyval)=merge((yyvsp[-2]), (yyvsp[-3])); // dest=$2
7705  }
7706 #line 7707 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7707  break;
7708 
7709  case 594:
7710 #line 3287 "parser.y" /* yacc.c:1648 */
7711  {
7712  // we need to push this down
7713  (yyval)=(yyvsp[-3]);
7714  set((yyvsp[-2]), ID_array);
7715  stack_type((yyvsp[-2])).add(ID_size).swap(stack((yyvsp[-1])));
7716  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7717  make_subtype((yyvsp[-3]), (yyvsp[-2]));
7718  }
7719 #line 7720 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7720  break;
7721 
7722  case 595:
7723 #line 3296 "parser.y" /* yacc.c:1648 */
7724  {
7725  // these should be allowed in prototypes only
7726  // we need to push this down
7727  (yyval)=(yyvsp[-3]);
7728  set((yyvsp[-2]), ID_array);
7729  stack_type((yyvsp[-2])).add(ID_size).make_nil();
7730  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7731  make_subtype((yyvsp[-3]), (yyvsp[-2]));
7732  }
7733 #line 7734 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7734  break;
7735 
7736  case 596:
7737 #line 3309 "parser.y" /* yacc.c:1648 */
7738  {
7739  (yyval)=(yyvsp[0]);
7740  // The below is deliberately not using pointer_type();
7741  // the width is added during conversion.
7742  stack_type((yyval)).id(ID_frontend_pointer);
7743  stack_type((yyval)).subtype()=typet(ID_abstract);
7744  }
7745 #line 7746 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7746  break;
7747 
7748  case 597:
7749 #line 3317 "parser.y" /* yacc.c:1648 */
7750  {
7751  // The type_qualifier_list belongs to the pointer,
7752  // not to the (missing) abstract declarator.
7753  // The below is deliberately not using pointer_type();
7754  // the width is added during conversion.
7755  stack_type((yyvsp[-1])).id(ID_frontend_pointer);
7756  stack_type((yyvsp[-1])).subtype()=typet(ID_abstract);
7757  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7758  }
7759 #line 7760 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7760  break;
7761 
7762  case 598:
7763 #line 3327 "parser.y" /* yacc.c:1648 */
7764  {
7765  (yyval)=(yyvsp[0]);
7766  do_pointer((yyvsp[-1]), (yyvsp[0]));
7767  }
7768 #line 7769 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7769  break;
7770 
7771  case 599:
7772 #line 3332 "parser.y" /* yacc.c:1648 */
7773  {
7774  // The type_qualifier_list belongs to the pointer,
7775  // not to the abstract declarator.
7776  // The below is deliberately not using pointer_type();
7777  // the width is added during conversion.
7778  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7779  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7780  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7781  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7782  (yyval)=(yyvsp[0]);
7783  }
7784 #line 7785 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7785  break;
7786 
7787  case 600:
7788 #line 3344 "parser.y" /* yacc.c:1648 */
7789  {
7790  // This is an Apple extension to C/C++/Objective C.
7791  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7792  (yyval)=(yyvsp[0]);
7793  set((yyval), ID_block_pointer);
7794  stack_type((yyval)).subtype()=typet(ID_abstract);
7795  }
7796 #line 7797 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7797  break;
7798 
7799  case 601:
7800 #line 3355 "parser.y" /* yacc.c:1648 */
7801  {
7802  (yyval)=(yyvsp[0]);
7803  // The below is deliberately not using pointer_type();
7804  // the width is added during conversion.
7805  stack_type((yyval)).id(ID_frontend_pointer);
7806  stack_type((yyval)).subtype()=typet(ID_abstract);
7807  }
7808 #line 7809 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7809  break;
7810 
7811  case 602:
7812 #line 3363 "parser.y" /* yacc.c:1648 */
7813  {
7814  // The type_qualifier_list belongs to the pointer,
7815  // not to the (missing) abstract declarator.
7816  // The below is deliberately not using pointer_type();
7817  // the width is added during conversion.
7818  stack_type((yyvsp[-1])).id(ID_frontend_pointer);
7819  stack_type((yyvsp[-1])).subtype()=typet(ID_abstract);
7820  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7821  }
7822 #line 7823 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7823  break;
7824 
7825  case 603:
7826 #line 3373 "parser.y" /* yacc.c:1648 */
7827  {
7828  (yyval)=(yyvsp[0]);
7829  do_pointer((yyvsp[-1]), (yyvsp[0]));
7830  }
7831 #line 7832 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7832  break;
7833 
7834  case 604:
7835 #line 3378 "parser.y" /* yacc.c:1648 */
7836  {
7837  // The type_qualifier_list belongs to the pointer,
7838  // not to the (missing) abstract declarator.
7839  // The below is deliberately not using pointer_type();
7840  // the width is added during conversion.
7841  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7842  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7843  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7844  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7845  (yyval)=(yyvsp[0]);
7846  }
7847 #line 7848 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7848  break;
7849 
7850  case 605:
7851 #line 3390 "parser.y" /* yacc.c:1648 */
7852  {
7853  // This is an Apple extension to C/C++/Objective C.
7854  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7855  (yyval)=(yyvsp[0]);
7856  set((yyval), ID_block_pointer);
7857  stack_type((yyval)).subtype()=typet(ID_abstract);
7858  }
7859 #line 7860 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7860  break;
7861 
7862  case 606:
7863 #line 3401 "parser.y" /* yacc.c:1648 */
7864  { (yyval) = (yyvsp[-1]); }
7865 #line 7866 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7866  break;
7867 
7868  case 607:
7869 #line 3403 "parser.y" /* yacc.c:1648 */
7870  { (yyval) = (yyvsp[-1]); }
7871 #line 7872 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7872  break;
7873 
7874  case 608:
7875 #line 3405 "parser.y" /* yacc.c:1648 */
7876  { (yyval) = (yyvsp[-1]); }
7877 #line 7878 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7878  break;
7879 
7880  case 609:
7881 #line 3407 "parser.y" /* yacc.c:1648 */
7882  {
7883  /* note: this is a pointer ($2) to a function or array ($4) */
7884  (yyval)=(yyvsp[-2]);
7885  make_subtype((yyval), (yyvsp[0]));
7886  }
7887 #line 7888 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7888  break;
7889 
7890  case 610:
7891 #line 3413 "parser.y" /* yacc.c:1648 */
7892  {
7893  /* note: this is a pointer ($2) to a function or array ($4) */
7894  (yyval)=(yyvsp[-2]);
7895  make_subtype((yyval), (yyvsp[0]));
7896  }
7897 #line 7898 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7898  break;
7899 
7900  case 611:
7901 #line 3422 "parser.y" /* yacc.c:1648 */
7902  { (yyval) = (yyvsp[-1]); }
7903 #line 7904 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7904  break;
7905 
7906  case 612:
7907 #line 3424 "parser.y" /* yacc.c:1648 */
7908  { (yyval) = (yyvsp[-1]); }
7909 #line 7910 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7910  break;
7911 
7912  case 614:
7913 #line 3427 "parser.y" /* yacc.c:1648 */
7914  {
7915  /* note: this is a pointer ($2) to a function ($4) */
7916  (yyval)=(yyvsp[-2]);
7917  make_subtype((yyval), (yyvsp[0]));
7918  }
7919 #line 7920 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7920  break;
7921 
7922 
7923 #line 7924 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7924  default: break;
7925  }
7926  /* User semantic actions sometimes alter yychar, and that requires
7927  that yytoken be updated with the new translation. We take the
7928  approach of translating immediately before every use of yytoken.
7929  One alternative is translating here after every semantic action,
7930  but that translation would be missed if the semantic action invokes
7931  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
7932  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
7933  incorrect destructor might then be invoked immediately. In the
7934  case of YYERROR or YYBACKUP, subsequent parser actions might lead
7935  to an incorrect destructor call or verbose syntax error message
7936  before the lookahead is translated. */
7937  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7938 
7939  YYPOPSTACK (yylen);
7940  yylen = 0;
7941  YY_STACK_PRINT (yyss, yyssp);
7942 
7943  *++yyvsp = yyval;
7944 
7945  /* Now 'shift' the result of the reduction. Determine what state
7946  that goes to, based on the state we popped back to and the rule
7947  number reduced by. */
7948 
7949  yyn = yyr1[yyn];
7950 
7951  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7952  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7953  yystate = yytable[yystate];
7954  else
7955  yystate = yydefgoto[yyn - YYNTOKENS];
7956 
7957  goto yynewstate;
7958 
7959 
7960 /*--------------------------------------.
7961 | yyerrlab -- here on detecting error. |
7962 `--------------------------------------*/
7963 yyerrlab:
7964  /* Make sure we have latest lookahead translation. See comments at
7965  user semantic actions for why this is necessary. */
7966  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
7967 
7968  /* If not already recovering from an error, report this error. */
7969  if (!yyerrstatus)
7970  {
7971  ++yynerrs;
7972 #if ! YYERROR_VERBOSE
7973  yyerror (YY_("syntax error"));
7974 #else
7975 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
7976  yyssp, yytoken)
7977  {
7978  char const *yymsgp = YY_("syntax error");
7979  int yysyntax_error_status;
7980  yysyntax_error_status = YYSYNTAX_ERROR;
7981  if (yysyntax_error_status == 0)
7982  yymsgp = yymsg;
7983  else if (yysyntax_error_status == 1)
7984  {
7985  if (yymsg != yymsgbuf)
7986  YYSTACK_FREE (yymsg);
7987  yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
7988  if (!yymsg)
7989  {
7990  yymsg = yymsgbuf;
7991  yymsg_alloc = sizeof yymsgbuf;
7992  yysyntax_error_status = 2;
7993  }
7994  else
7995  {
7996  yysyntax_error_status = YYSYNTAX_ERROR;
7997  yymsgp = yymsg;
7998  }
7999  }
8000  yyerror (yymsgp);
8001  if (yysyntax_error_status == 2)
8002  goto yyexhaustedlab;
8003  }
8004 # undef YYSYNTAX_ERROR
8005 #endif
8006  }
8007 
8008 
8009 
8010  if (yyerrstatus == 3)
8011  {
8012  /* If just tried and failed to reuse lookahead token after an
8013  error, discard it. */
8014 
8015  if (yychar <= YYEOF)
8016  {
8017  /* Return failure if at end of input. */
8018  if (yychar == YYEOF)
8019  YYABORT;
8020  }
8021  else
8022  {
8023  yydestruct ("Error: discarding",
8024  yytoken, &yylval);
8025  yychar = YYEMPTY;
8026  }
8027  }
8028 
8029  /* Else will try to reuse lookahead token after shifting the error
8030  token. */
8031  goto yyerrlab1;
8032 
8033 
8034 /*---------------------------------------------------.
8035 | yyerrorlab -- error raised explicitly by YYERROR. |
8036 `---------------------------------------------------*/
8037 yyerrorlab:
8038 
8039  /* Pacify compilers like GCC when the user code never invokes
8040  YYERROR and the label yyerrorlab therefore never appears in user
8041  code. */
8042  if (/*CONSTCOND*/ 0)
8043  goto yyerrorlab;
8044 
8045  /* Do not reclaim the symbols of the rule whose action triggered
8046  this YYERROR. */
8047  YYPOPSTACK (yylen);
8048  yylen = 0;
8049  YY_STACK_PRINT (yyss, yyssp);
8050  yystate = *yyssp;
8051  goto yyerrlab1;
8052 
8053 
8054 /*-------------------------------------------------------------.
8055 | yyerrlab1 -- common code for both syntax error and YYERROR. |
8056 `-------------------------------------------------------------*/
8057 yyerrlab1:
8058  yyerrstatus = 3; /* Each real token shifted decrements this. */
8059 
8060  for (;;)
8061  {
8062  yyn = yypact[yystate];
8063  if (!yypact_value_is_default (yyn))
8064  {
8065  yyn += YYTERROR;
8066  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
8067  {
8068  yyn = yytable[yyn];
8069  if (0 < yyn)
8070  break;
8071  }
8072  }
8073 
8074  /* Pop the current state because it cannot handle the error token. */
8075  if (yyssp == yyss)
8076  YYABORT;
8077 
8078 
8079  yydestruct ("Error: popping",
8080  yystos[yystate], yyvsp);
8081  YYPOPSTACK (1);
8082  yystate = *yyssp;
8083  YY_STACK_PRINT (yyss, yyssp);
8084  }
8085 
8087  *++yyvsp = yylval;
8089 
8090 
8091  /* Shift the error token. */
8092  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
8093 
8094  yystate = yyn;
8095  goto yynewstate;
8096 
8097 
8098 /*-------------------------------------.
8099 | yyacceptlab -- YYACCEPT comes here. |
8100 `-------------------------------------*/
8101 yyacceptlab:
8102  yyresult = 0;
8103  goto yyreturn;
8104 
8105 /*-----------------------------------.
8106 | yyabortlab -- YYABORT comes here. |
8107 `-----------------------------------*/
8108 yyabortlab:
8109  yyresult = 1;
8110  goto yyreturn;
8111 
8112 #if !defined yyoverflow || YYERROR_VERBOSE
8113 /*-------------------------------------------------.
8114 | yyexhaustedlab -- memory exhaustion comes here. |
8115 `-------------------------------------------------*/
8116 yyexhaustedlab:
8117  yyerror (YY_("memory exhausted"));
8118  yyresult = 2;
8119  /* Fall through. */
8120 #endif
8121 
8122 yyreturn:
8123  if (yychar != YYEMPTY)
8124  {
8125  /* Make sure we have latest lookahead translation. See comments at
8126  user semantic actions for why this is necessary. */
8127  yytoken = YYTRANSLATE (yychar);
8128  yydestruct ("Cleanup: discarding lookahead",
8129  yytoken, &yylval);
8130  }
8131  /* Do not reclaim the symbols of the rule whose action triggered
8132  this YYABORT or YYACCEPT. */
8133  YYPOPSTACK (yylen);
8134  YY_STACK_PRINT (yyss, yyssp);
8135  while (yyssp != yyss)
8136  {
8137  yydestruct ("Cleanup: popping",
8138  yystos[*yyssp], yyvsp);
8139  YYPOPSTACK (1);
8140  }
8141 #ifndef yyoverflow
8142  if (yyss != yyssa)
8143  YYSTACK_FREE (yyss);
8144 #endif
8145 #if YYERROR_VERBOSE
8146  if (yymsg != yymsgbuf)
8147  YYSTACK_FREE (yymsg);
8148 #endif
8149  return yyresult;
8150 }
8151 #line 3434 "parser.y" /* yacc.c:1907 */
8152 
#define TOK_PTR64
#define TOK_INT32
#define TOK_EQ
The type of an expression, extends irept.
Definition: type.h:27
#define TOK_DECLTYPE
#define TOK_WHILE
#define TOK_CPROVER_LOOP_INVARIANT
#define TOK_FRIEND
#define TOK_XORXOR
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
const type_with_subtypest & to_type_with_subtypes(const typet &type)
Definition: type.h:206
short int yytype_int16
#define TOK_INCR
#define TOK_GCC_FLOAT32
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
#define TOK_TRUE
#define TOK_OPERATOR
#define TOK_ACSL_EXISTS
#define TOK_VOID
#define TOK_GCC_ATTRIBUTE_ALIGNED
static const yytype_int16 yydefgoto[]
static const yytype_uint8 yytranslate[]
#define TOK_IDENTIFIER
#define TOK_COMPLEX
static const yytype_int16 yypact[]
#define TOK_FASTCALL
#define TOK_TRY
#define TOK_MODASSIGN
void set_is_member(bool is_member)
std::vector< irept > subt
Definition: irep.h:160
#define TOK_RETURN
yytokentype
Definition: ansi_c_y.tab.h:46
#define TOK_THROW
#define TOK_BOOL
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
#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)
Move the given argument to the end of exprt's operands.
Definition: expr.cpp:29
void set_is_parameter(bool is_parameter)
#define TOK_PRIVATE
#define TOK_GCC_BUILTIN_TYPES_COMPATIBLE_P
#define TOK_SWITCH
#define yypact_value_is_default(Yystate)
#define YYNTOKENS
#define yylval
#define stack_type(x)
Definition: parser.h:146
#define TOK_GCC_FLOAT16
#define YYSIZE_T
#define YY_NULLPTR
#define TOK_CONTINUE
#define TOK_GCC_FLOAT128X
#define TOK_FORALL
#define TOK_XORASSIGN
typet & type()
Return the type of the expression.
Definition: expr.h:68
#define TOK_GCC_ATTRIBUTE_TRANSPARENT_UNION
#define yynerrs
static const yytype_int16 yycheck[]
#define YYSTACK_ALLOC_MAXIMUM
static const char *const yytname[]
Definition: jsil_y.tab.cpp:593
#define TOK_IMAG
#define TOK_ACSL_LET
void merge(string_constraintst &result, string_constraintst other)
Merge two sets of constraints by appending to the first one.
#define TOK_NEW
#define TOK_MSC_IF_NOT_EXISTS
signed char yytype_int8
void set_is_static_assert(bool is_static_assert)
#define TOK_VIRTUAL
#define TOK_CPROVER_ATOMIC
#define TOK_GCC_ATTRIBUTE_SECTION
#define YYINITDEPTH
#define TOK_CONST
#define YY_(Msgid)
#define TOK_CPROVER_ENSURES
#define TOK_RESTRICT
ansi_c_id_classt id_class
Definition: ansi_c_scope.h:31
#define TOK_STATIC
#define TOK_CPROVER_CATCH
#define YYEMPTY
#define TOK_CHAR
void set_is_enum_constant(bool is_enum_constant)
#define TOK_UNION
#define TOK_THREAD_LOCAL
int yyansi_cparse(void)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
#define TOK_MSC_BASED
#define TOK_REAL
#define TOK_TYPEDEFNAME
#define TOK_GCC_ASM
#define TOK_GCC_AUTO_TYPE
#define YY_REDUCE_PRINT(Rule)
#define TOK_ATOMIC_TYPE_QUALIFIER
#define TOK_MUTABLE
static size_t yytnamerr(char *yyres, const char *yystr)
#define TOK_DOTPM
const declaratorst & declarators() const
#define TOK_ARROWPM
#define TOK_TYPEOF
#define TOK_GCC_ATTRIBUTE_GNU_INLINE
#define TOK_GCC_ATTRIBUTE_ALIAS
#define TOK_GCC_ATTRIBUTE_PACKED
#define TOK_ELLIPSIS
#define yyparse
#define TOK_GCC_ATTRIBUTE
#define TOK_VOLATILE
#define YYSTYPE
#define TOK_GENERIC
void free(void *)
#define TOK_STRUCT
#define TOK_GCC_ATTRIBUTE_FALLTHROUGH
#define TOK_DEFAULT
#define TOK_MINUSASSIGN
#define TOK_CLANG_BUILTIN_CONVERTVECTOR
#define TOK_GCC_FLOAT64X
#define TOK_STDCALL
The NIL expression.
Definition: std_expr.h:4461
#define TOK_PTR32
void add_initializer(exprt &value)
#define TOK_CONSTEXPR
#define TOK_GCC_DECIMAL32
#define TOK_IMPLIES
yytype_int16 yyss_alloc
#define TOK_GCC_ATTRIBUTE_DESTRUCTOR
static const yytype_int16 yypgoto[]
#define TOK_GCC_FLOAT64
#define YYEOF
#define YYSTACK_BYTES(N)
#define TOK_STATIC_ASSERT
#define YYTERROR
#define TOK_GCC_ATTRIBUTE_USED
#define YYUSE(E)
#define yyerror
#define TOK_THIS
static size_t yystrlen(const char *yystr)
#define TOK_OROR
Base class for tree-like data structures with sharing.
Definition: irep.h:156
#define forall_operands(it, expr)
Definition: expr.h:20
#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[]
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:35
#define TOK_NE
#define TOK_OFFSETOF
#define TOK_ACSL_FORALL
#define TOK_GCC_FLOAT32X
#define TOK_AUTO
#define YYFINAL
#define TOK_EXPLICIT
#define TOK_GCC_ATTRIBUTE_VECTOR_SIZE
#define TOK_GCC_ATTRIBUTE_CONSTRUCTOR
void move_to_subtypes(typet &type)
Move the provided type to the subtypes of this type.
Definition: type.cpp:25
#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:54
#define TOK_CHARACTER
#define TOK_FLOATING
#define TOK_INT
#define TOK_LE
exprt convert_integer_literal(const std::string &src)
static std::string binary(const constant_exprt &src)
Definition: json_expr.cpp:224
#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:303
#define TOK_GCC_DECIMAL64
unsigned short int yytype_uint16
source_locationt & add_source_location()
Definition: expr.h:233
#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:78
#define TOK_INT16
#define stack(x)
Definition: parser.h:144
#define TOK_MSC_ASM
#define TOK_IF
#define TOK_MSC_IF_EXISTS
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define TOK_ORASSIGN
irep_idt prefixed_name
Definition: ansi_c_scope.h:32
#define TOK_MSC_FINALLY
#define TOK_PROTECTED
static void yydestruct(const char *yymsg, int yytype, unsigned *yyvaluep)
static const yytype_uint8 yyr2[]
#define TOK_GCC_ATTRIBUTE_WEAK
#define TOK_MSC_FORCEINLINE
#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:286
#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