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 257 "parser.y" /* yacc.c:339 */
108 
109 /************************************************************************/
110 /*** rules **************************************************************/
111 /************************************************************************/
112 
113 #line 114 "ansi_c_y.tab.cpp" /* yacc.c:339 */
114 
115 # ifndef YY_NULLPTR
116 # if defined __cplusplus && 201103L <= __cplusplus
117 # define YY_NULLPTR nullptr
118 # else
119 # define YY_NULLPTR 0
120 # endif
121 # endif
122 
123 /* Enabling verbose error messages. */
124 #ifdef YYERROR_VERBOSE
125 # undef YYERROR_VERBOSE
126 # define YYERROR_VERBOSE 1
127 #else
128 # define YYERROR_VERBOSE 0
129 #endif
130 
131 /* In a future release of Bison, this section will be replaced
132  by #include "ansi_c_y.tab.hpp". */
133 #ifndef YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED
134 # define YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED
135 /* Debug traces. */
136 #ifndef YYDEBUG
137 # define YYDEBUG 0
138 #endif
139 #if YYDEBUG
140 extern int yyansi_cdebug;
141 #endif
142 
143 /* Token type. */
144 #ifndef YYTOKENTYPE
145 # define YYTOKENTYPE
146  enum yytokentype
147  {
148  TOK_AUTO = 258,
149  TOK_BOOL = 259,
150  TOK_COMPLEX = 260,
151  TOK_BREAK = 261,
152  TOK_CASE = 262,
153  TOK_CHAR = 263,
154  TOK_CONST = 264,
155  TOK_CONTINUE = 265,
156  TOK_DEFAULT = 266,
157  TOK_DO = 267,
158  TOK_DOUBLE = 268,
159  TOK_ELSE = 269,
160  TOK_ENUM = 270,
161  TOK_EXTERN = 271,
162  TOK_FLOAT = 272,
163  TOK_FOR = 273,
164  TOK_GOTO = 274,
165  TOK_IF = 275,
166  TOK_INLINE = 276,
167  TOK_INT = 277,
168  TOK_LONG = 278,
169  TOK_REGISTER = 279,
170  TOK_RESTRICT = 280,
171  TOK_RETURN = 281,
172  TOK_SHORT = 282,
173  TOK_SIGNED = 283,
174  TOK_SIZEOF = 284,
175  TOK_STATIC = 285,
176  TOK_STRUCT = 286,
177  TOK_SWITCH = 287,
178  TOK_TYPEDEF = 288,
179  TOK_UNION = 289,
180  TOK_UNSIGNED = 290,
181  TOK_VOID = 291,
182  TOK_VOLATILE = 292,
183  TOK_WCHAR_T = 293,
184  TOK_WHILE = 294,
185  TOK_ARROW = 295,
186  TOK_INCR = 296,
187  TOK_DECR = 297,
188  TOK_SHIFTLEFT = 298,
189  TOK_SHIFTRIGHT = 299,
190  TOK_LE = 300,
191  TOK_GE = 301,
192  TOK_EQ = 302,
193  TOK_NE = 303,
194  TOK_ANDAND = 304,
195  TOK_OROR = 305,
196  TOK_ELLIPSIS = 306,
197  TOK_MULTASSIGN = 307,
198  TOK_DIVASSIGN = 308,
199  TOK_MODASSIGN = 309,
200  TOK_PLUSASSIGN = 310,
201  TOK_MINUSASSIGN = 311,
202  TOK_SHLASSIGN = 312,
203  TOK_SHRASSIGN = 313,
204  TOK_ANDASSIGN = 314,
205  TOK_XORASSIGN = 315,
206  TOK_ORASSIGN = 316,
207  TOK_IDENTIFIER = 317,
208  TOK_TYPEDEFNAME = 318,
209  TOK_INTEGER = 319,
210  TOK_FLOATING = 320,
211  TOK_CHARACTER = 321,
212  TOK_STRING = 322,
213  TOK_ASM_STRING = 323,
214  TOK_INT8 = 324,
215  TOK_INT16 = 325,
216  TOK_INT32 = 326,
217  TOK_INT64 = 327,
218  TOK_PTR32 = 328,
219  TOK_PTR64 = 329,
220  TOK_TYPEOF = 330,
221  TOK_GCC_AUTO_TYPE = 331,
222  TOK_GCC_FLOAT16 = 332,
223  TOK_GCC_FLOAT32 = 333,
224  TOK_GCC_FLOAT32X = 334,
225  TOK_GCC_FLOAT80 = 335,
226  TOK_GCC_FLOAT64 = 336,
227  TOK_GCC_FLOAT64X = 337,
228  TOK_GCC_FLOAT128 = 338,
229  TOK_GCC_FLOAT128X = 339,
230  TOK_GCC_INT128 = 340,
231  TOK_GCC_DECIMAL32 = 341,
232  TOK_GCC_DECIMAL64 = 342,
233  TOK_GCC_DECIMAL128 = 343,
234  TOK_GCC_ASM = 344,
235  TOK_GCC_ASM_PAREN = 345,
236  TOK_GCC_ATTRIBUTE = 346,
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_ARRAY_OF = 385,
276  TOK_CPROVER_BITVECTOR = 386,
277  TOK_CPROVER_FLOATBV = 387,
278  TOK_CPROVER_FIXEDBV = 388,
279  TOK_CPROVER_ATOMIC = 389,
280  TOK_CPROVER_BOOL = 390,
281  TOK_CPROVER_THROW = 391,
282  TOK_CPROVER_CATCH = 392,
283  TOK_CPROVER_TRY = 393,
284  TOK_CPROVER_FINALLY = 394,
285  TOK_CPROVER_ID = 395,
287  TOK_CPROVER_REQUIRES = 397,
288  TOK_CPROVER_ENSURES = 398,
289  TOK_IMPLIES = 399,
290  TOK_EQUIVALENT = 400,
291  TOK_TRUE = 401,
292  TOK_FALSE = 402,
293  TOK_REAL = 403,
294  TOK_IMAG = 404,
295  TOK_ALIGNAS = 405,
298  TOK_GENERIC = 408,
299  TOK_IMAGINARY = 409,
300  TOK_NORETURN = 410,
301  TOK_STATIC_ASSERT = 411,
302  TOK_THREAD_LOCAL = 412,
303  TOK_NULLPTR = 413,
304  TOK_CONSTEXPR = 414,
305  TOK_SCANNER_ERROR = 415,
306  TOK_SCANNER_EOF = 416,
307  TOK_CATCH = 417,
308  TOK_CHAR16_T = 418,
309  TOK_CHAR32_T = 419,
310  TOK_CLASS = 420,
311  TOK_DELETE = 421,
312  TOK_DECLTYPE = 422,
313  TOK_EXPLICIT = 423,
314  TOK_FRIEND = 424,
315  TOK_MUTABLE = 425,
316  TOK_NAMESPACE = 426,
317  TOK_NEW = 427,
318  TOK_NOEXCEPT = 428,
319  TOK_OPERATOR = 429,
320  TOK_PRIVATE = 430,
321  TOK_PROTECTED = 431,
322  TOK_PUBLIC = 432,
323  TOK_TEMPLATE = 433,
324  TOK_THIS = 434,
325  TOK_THROW = 435,
326  TOK_TYPEID = 436,
327  TOK_TYPENAME = 437,
328  TOK_TRY = 438,
329  TOK_USING = 439,
330  TOK_VIRTUAL = 440,
331  TOK_SCOPE = 441,
332  TOK_DOTPM = 442,
333  TOK_ARROWPM = 443,
336  TOK_MSC_UUIDOF = 446,
337  TOK_MSC_IF_EXISTS = 447,
338  TOK_MSC_IF_NOT_EXISTS = 448,
339  TOK_UNDERLYING_TYPE = 449
340  };
341 #endif
342 /* Tokens. */
343 #define TOK_AUTO 258
344 #define TOK_BOOL 259
345 #define TOK_COMPLEX 260
346 #define TOK_BREAK 261
347 #define TOK_CASE 262
348 #define TOK_CHAR 263
349 #define TOK_CONST 264
350 #define TOK_CONTINUE 265
351 #define TOK_DEFAULT 266
352 #define TOK_DO 267
353 #define TOK_DOUBLE 268
354 #define TOK_ELSE 269
355 #define TOK_ENUM 270
356 #define TOK_EXTERN 271
357 #define TOK_FLOAT 272
358 #define TOK_FOR 273
359 #define TOK_GOTO 274
360 #define TOK_IF 275
361 #define TOK_INLINE 276
362 #define TOK_INT 277
363 #define TOK_LONG 278
364 #define TOK_REGISTER 279
365 #define TOK_RESTRICT 280
366 #define TOK_RETURN 281
367 #define TOK_SHORT 282
368 #define TOK_SIGNED 283
369 #define TOK_SIZEOF 284
370 #define TOK_STATIC 285
371 #define TOK_STRUCT 286
372 #define TOK_SWITCH 287
373 #define TOK_TYPEDEF 288
374 #define TOK_UNION 289
375 #define TOK_UNSIGNED 290
376 #define TOK_VOID 291
377 #define TOK_VOLATILE 292
378 #define TOK_WCHAR_T 293
379 #define TOK_WHILE 294
380 #define TOK_ARROW 295
381 #define TOK_INCR 296
382 #define TOK_DECR 297
383 #define TOK_SHIFTLEFT 298
384 #define TOK_SHIFTRIGHT 299
385 #define TOK_LE 300
386 #define TOK_GE 301
387 #define TOK_EQ 302
388 #define TOK_NE 303
389 #define TOK_ANDAND 304
390 #define TOK_OROR 305
391 #define TOK_ELLIPSIS 306
392 #define TOK_MULTASSIGN 307
393 #define TOK_DIVASSIGN 308
394 #define TOK_MODASSIGN 309
395 #define TOK_PLUSASSIGN 310
396 #define TOK_MINUSASSIGN 311
397 #define TOK_SHLASSIGN 312
398 #define TOK_SHRASSIGN 313
399 #define TOK_ANDASSIGN 314
400 #define TOK_XORASSIGN 315
401 #define TOK_ORASSIGN 316
402 #define TOK_IDENTIFIER 317
403 #define TOK_TYPEDEFNAME 318
404 #define TOK_INTEGER 319
405 #define TOK_FLOATING 320
406 #define TOK_CHARACTER 321
407 #define TOK_STRING 322
408 #define TOK_ASM_STRING 323
409 #define TOK_INT8 324
410 #define TOK_INT16 325
411 #define TOK_INT32 326
412 #define TOK_INT64 327
413 #define TOK_PTR32 328
414 #define TOK_PTR64 329
415 #define TOK_TYPEOF 330
416 #define TOK_GCC_AUTO_TYPE 331
417 #define TOK_GCC_FLOAT16 332
418 #define TOK_GCC_FLOAT32 333
419 #define TOK_GCC_FLOAT32X 334
420 #define TOK_GCC_FLOAT80 335
421 #define TOK_GCC_FLOAT64 336
422 #define TOK_GCC_FLOAT64X 337
423 #define TOK_GCC_FLOAT128 338
424 #define TOK_GCC_FLOAT128X 339
425 #define TOK_GCC_INT128 340
426 #define TOK_GCC_DECIMAL32 341
427 #define TOK_GCC_DECIMAL64 342
428 #define TOK_GCC_DECIMAL128 343
429 #define TOK_GCC_ASM 344
430 #define TOK_GCC_ASM_PAREN 345
431 #define TOK_GCC_ATTRIBUTE 346
432 #define TOK_GCC_ATTRIBUTE_ALIGNED 347
433 #define TOK_GCC_ATTRIBUTE_TRANSPARENT_UNION 348
434 #define TOK_GCC_ATTRIBUTE_PACKED 349
435 #define TOK_GCC_ATTRIBUTE_VECTOR_SIZE 350
436 #define TOK_GCC_ATTRIBUTE_MODE 351
437 #define TOK_GCC_ATTRIBUTE_GNU_INLINE 352
438 #define TOK_GCC_ATTRIBUTE_WEAK 353
439 #define TOK_GCC_ATTRIBUTE_ALIAS 354
440 #define TOK_GCC_ATTRIBUTE_SECTION 355
441 #define TOK_GCC_ATTRIBUTE_NORETURN 356
442 #define TOK_GCC_ATTRIBUTE_CONSTRUCTOR 357
443 #define TOK_GCC_ATTRIBUTE_DESTRUCTOR 358
444 #define TOK_GCC_ATTRIBUTE_FALLTHROUGH 359
445 #define TOK_GCC_ATTRIBUTE_USED 360
446 #define TOK_GCC_LABEL 361
447 #define TOK_MSC_ASM 362
448 #define TOK_MSC_BASED 363
449 #define TOK_CW_VAR_ARG_TYPEOF 364
450 #define TOK_BUILTIN_VA_ARG 365
451 #define TOK_GCC_BUILTIN_TYPES_COMPATIBLE_P 366
452 #define TOK_CLANG_BUILTIN_CONVERTVECTOR 367
453 #define TOK_OFFSETOF 368
454 #define TOK_ALIGNOF 369
455 #define TOK_MSC_TRY 370
456 #define TOK_MSC_FINALLY 371
457 #define TOK_MSC_EXCEPT 372
458 #define TOK_MSC_LEAVE 373
459 #define TOK_MSC_DECLSPEC 374
460 #define TOK_MSC_FORCEINLINE 375
461 #define TOK_INTERFACE 376
462 #define TOK_CDECL 377
463 #define TOK_STDCALL 378
464 #define TOK_FASTCALL 379
465 #define TOK_CLRCALL 380
466 #define TOK_FORALL 381
467 #define TOK_EXISTS 382
468 #define TOK_ACSL_FORALL 383
469 #define TOK_ACSL_EXISTS 384
470 #define TOK_ARRAY_OF 385
471 #define TOK_CPROVER_BITVECTOR 386
472 #define TOK_CPROVER_FLOATBV 387
473 #define TOK_CPROVER_FIXEDBV 388
474 #define TOK_CPROVER_ATOMIC 389
475 #define TOK_CPROVER_BOOL 390
476 #define TOK_CPROVER_THROW 391
477 #define TOK_CPROVER_CATCH 392
478 #define TOK_CPROVER_TRY 393
479 #define TOK_CPROVER_FINALLY 394
480 #define TOK_CPROVER_ID 395
481 #define TOK_CPROVER_LOOP_INVARIANT 396
482 #define TOK_CPROVER_REQUIRES 397
483 #define TOK_CPROVER_ENSURES 398
484 #define TOK_IMPLIES 399
485 #define TOK_EQUIVALENT 400
486 #define TOK_TRUE 401
487 #define TOK_FALSE 402
488 #define TOK_REAL 403
489 #define TOK_IMAG 404
490 #define TOK_ALIGNAS 405
491 #define TOK_ATOMIC_TYPE_QUALIFIER 406
492 #define TOK_ATOMIC_TYPE_SPECIFIER 407
493 #define TOK_GENERIC 408
494 #define TOK_IMAGINARY 409
495 #define TOK_NORETURN 410
496 #define TOK_STATIC_ASSERT 411
497 #define TOK_THREAD_LOCAL 412
498 #define TOK_NULLPTR 413
499 #define TOK_CONSTEXPR 414
500 #define TOK_SCANNER_ERROR 415
501 #define TOK_SCANNER_EOF 416
502 #define TOK_CATCH 417
503 #define TOK_CHAR16_T 418
504 #define TOK_CHAR32_T 419
505 #define TOK_CLASS 420
506 #define TOK_DELETE 421
507 #define TOK_DECLTYPE 422
508 #define TOK_EXPLICIT 423
509 #define TOK_FRIEND 424
510 #define TOK_MUTABLE 425
511 #define TOK_NAMESPACE 426
512 #define TOK_NEW 427
513 #define TOK_NOEXCEPT 428
514 #define TOK_OPERATOR 429
515 #define TOK_PRIVATE 430
516 #define TOK_PROTECTED 431
517 #define TOK_PUBLIC 432
518 #define TOK_TEMPLATE 433
519 #define TOK_THIS 434
520 #define TOK_THROW 435
521 #define TOK_TYPEID 436
522 #define TOK_TYPENAME 437
523 #define TOK_TRY 438
524 #define TOK_USING 439
525 #define TOK_VIRTUAL 440
526 #define TOK_SCOPE 441
527 #define TOK_DOTPM 442
528 #define TOK_ARROWPM 443
529 #define TOK_UNARY_TYPE_PREDICATE 444
530 #define TOK_BINARY_TYPE_PREDICATE 445
531 #define TOK_MSC_UUIDOF 446
532 #define TOK_MSC_IF_EXISTS 447
533 #define TOK_MSC_IF_NOT_EXISTS 448
534 #define TOK_UNDERLYING_TYPE 449
535 
536 /* Value type. */
537 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
538 typedef int YYSTYPE;
539 # define YYSTYPE_IS_TRIVIAL 1
540 # define YYSTYPE_IS_DECLARED 1
541 #endif
542 
543 
544 extern YYSTYPE yyansi_clval;
545 
546 int yyansi_cparse (void);
547 
548 #endif /* !YY_YYANSI_C_ANSI_C_Y_TAB_HPP_INCLUDED */
549 
550 /* Copy the second part of user declarations. */
551 
552 #line 553 "ansi_c_y.tab.cpp" /* yacc.c:358 */
553 
554 #ifdef short
555 # undef short
556 #endif
557 
558 #ifdef YYTYPE_UINT8
559 typedef YYTYPE_UINT8 yytype_uint8;
560 #else
561 typedef unsigned char yytype_uint8;
562 #endif
563 
564 #ifdef YYTYPE_INT8
565 typedef YYTYPE_INT8 yytype_int8;
566 #else
567 typedef signed char yytype_int8;
568 #endif
569 
570 #ifdef YYTYPE_UINT16
571 typedef YYTYPE_UINT16 yytype_uint16;
572 #else
573 typedef unsigned short int yytype_uint16;
574 #endif
575 
576 #ifdef YYTYPE_INT16
577 typedef YYTYPE_INT16 yytype_int16;
578 #else
579 typedef short int yytype_int16;
580 #endif
581 
582 #ifndef YYSIZE_T
583 # ifdef __SIZE_TYPE__
584 # define YYSIZE_T __SIZE_TYPE__
585 # elif defined size_t
586 # define YYSIZE_T size_t
587 # elif ! defined YYSIZE_T
588 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
589 # define YYSIZE_T size_t
590 # else
591 # define YYSIZE_T unsigned int
592 # endif
593 #endif
594 
595 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
596 
597 #ifndef YY_
598 # if defined YYENABLE_NLS && YYENABLE_NLS
599 # if ENABLE_NLS
600 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
601 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
602 # endif
603 # endif
604 # ifndef YY_
605 # define YY_(Msgid) Msgid
606 # endif
607 #endif
608 
609 #ifndef YY_ATTRIBUTE
610 # if (defined __GNUC__ \
611  && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
612  || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
613 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
614 # else
615 # define YY_ATTRIBUTE(Spec) /* empty */
616 # endif
617 #endif
618 
619 #ifndef YY_ATTRIBUTE_PURE
620 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
621 #endif
622 
623 #ifndef YY_ATTRIBUTE_UNUSED
624 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
625 #endif
626 
627 #if !defined _Noreturn \
628  && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
629 # if defined _MSC_VER && 1200 <= _MSC_VER
630 # define _Noreturn __declspec (noreturn)
631 # else
632 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
633 # endif
634 #endif
635 
636 /* Suppress unused-variable warnings by "using" E. */
637 #if ! defined lint || defined __GNUC__
638 # define YYUSE(E) ((void) (E))
639 #else
640 # define YYUSE(E) /* empty */
641 #endif
642 
643 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
644 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
645 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
646  _Pragma ("GCC diagnostic push") \
647  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
648  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
649 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
650  _Pragma ("GCC diagnostic pop")
651 #else
652 # define YY_INITIAL_VALUE(Value) Value
653 #endif
654 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
655 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
656 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
657 #endif
658 #ifndef YY_INITIAL_VALUE
659 # define YY_INITIAL_VALUE(Value) /* Nothing. */
660 #endif
661 
662 
663 #if ! defined yyoverflow || YYERROR_VERBOSE
664 
665 /* The parser invokes alloca or malloc; define the necessary symbols. */
666 
667 # ifdef YYSTACK_USE_ALLOCA
668 # if YYSTACK_USE_ALLOCA
669 # ifdef __GNUC__
670 # define YYSTACK_ALLOC __builtin_alloca
671 # elif defined __BUILTIN_VA_ARG_INCR
672 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
673 # elif defined _AIX
674 # define YYSTACK_ALLOC __alloca
675 # elif defined _MSC_VER
676 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
677 # define alloca _alloca
678 # else
679 # define YYSTACK_ALLOC alloca
680 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
681 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
682  /* Use EXIT_SUCCESS as a witness for stdlib.h. */
683 # ifndef EXIT_SUCCESS
684 # define EXIT_SUCCESS 0
685 # endif
686 # endif
687 # endif
688 # endif
689 # endif
690 
691 # ifdef YYSTACK_ALLOC
692  /* Pacify GCC's 'empty if-body' warning. */
693 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
694 # ifndef YYSTACK_ALLOC_MAXIMUM
695  /* The OS might guarantee only one guard page at the bottom of the stack,
696  and a page size can be as small as 4096 bytes. So we cannot safely
697  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
698  to allow for a few compiler-allocated temporary stack slots. */
699 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
700 # endif
701 # else
702 # define YYSTACK_ALLOC YYMALLOC
703 # define YYSTACK_FREE YYFREE
704 # ifndef YYSTACK_ALLOC_MAXIMUM
705 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
706 # endif
707 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
708  && ! ((defined YYMALLOC || defined malloc) \
709  && (defined YYFREE || defined free)))
710 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
711 # ifndef EXIT_SUCCESS
712 # define EXIT_SUCCESS 0
713 # endif
714 # endif
715 # ifndef YYMALLOC
716 # define YYMALLOC malloc
717 # if ! defined malloc && ! defined EXIT_SUCCESS
718 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
719 # endif
720 # endif
721 # ifndef YYFREE
722 # define YYFREE free
723 # if ! defined free && ! defined EXIT_SUCCESS
724 void free (void *); /* INFRINGES ON USER NAME SPACE */
725 # endif
726 # endif
727 # endif
728 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
729 
730 
731 #if (! defined yyoverflow \
732  && (! defined __cplusplus \
733  || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
734 
735 /* A type that is properly aligned for any stack member. */
736 union yyalloc
737 {
740 };
741 
742 /* The size of the maximum gap between one aligned stack and the next. */
743 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
744 
745 /* The size of an array large to enough to hold all stacks, each with
746  N elements. */
747 # define YYSTACK_BYTES(N) \
748  ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
749  + YYSTACK_GAP_MAXIMUM)
750 
751 # define YYCOPY_NEEDED 1
752 
753 /* Relocate STACK from its old location to the new one. The
754  local variables YYSIZE and YYSTACKSIZE give the old and new number of
755  elements in the stack, and YYPTR gives the new location of the
756  stack. Advance YYPTR to a properly aligned location for the next
757  stack. */
758 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
759  do \
760  { \
761  YYSIZE_T yynewbytes; \
762  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
763  Stack = &yyptr->Stack_alloc; \
764  yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
765  yyptr += yynewbytes / sizeof (*yyptr); \
766  } \
767  while (0)
768 
769 #endif
770 
771 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
772 /* Copy COUNT objects from SRC to DST. The source and destination do
773  not overlap. */
774 # ifndef YYCOPY
775 # if defined __GNUC__ && 1 < __GNUC__
776 # define YYCOPY(Dst, Src, Count) \
777  __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
778 # else
779 # define YYCOPY(Dst, Src, Count) \
780  do \
781  { \
782  YYSIZE_T yyi; \
783  for (yyi = 0; yyi < (Count); yyi++) \
784  (Dst)[yyi] = (Src)[yyi]; \
785  } \
786  while (0)
787 # endif
788 # endif
789 #endif /* !YYCOPY_NEEDED */
790 
791 /* YYFINAL -- State number of the termination state. */
792 #define YYFINAL 149
793 /* YYLAST -- Last index in YYTABLE. */
794 #define YYLAST 6797
795 
796 /* YYNTOKENS -- Number of terminals. */
797 #define YYNTOKENS 219
798 /* YYNNTS -- Number of nonterminals. */
799 #define YYNNTS 207
800 /* YYNRULES -- Number of rules. */
801 #define YYNRULES 612
802 /* YYNSTATES -- Number of states. */
803 #define YYNSTATES 1106
804 
805 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
806  by yylex, with out-of-bounds checking. */
807 #define YYUNDEFTOK 2
808 #define YYMAXUTOK 449
809 
810 #define YYTRANSLATE(YYX) \
811  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
812 
813 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
814  as returned by yylex, without out-of-bounds checking. */
815 static const yytype_uint8 yytranslate[] =
816 {
817  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
818  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
819  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
820  2, 2, 2, 209, 2, 2, 2, 211, 204, 2,
821  195, 196, 205, 206, 197, 207, 199, 210, 2, 2,
822  2, 2, 2, 2, 2, 2, 2, 2, 198, 218,
823  212, 217, 213, 216, 2, 2, 2, 2, 2, 2,
824  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
825  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
826  2, 200, 2, 201, 214, 2, 2, 2, 2, 2,
827  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
828  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
829  2, 2, 2, 202, 215, 203, 208, 2, 2, 2,
830  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
831  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
832  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
833  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
834  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
835  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
836  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
837  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
838  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
839  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
840  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
841  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
842  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
843  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
844  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
845  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
846  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
847  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
848  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
849  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
850  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
851  85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
852  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
853  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
854  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
855  125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
856  135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
857  145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
858  155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
859  165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
860  175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
861  185, 186, 187, 188, 189, 190, 191, 192, 193, 194
862 };
863 
864 #if YYDEBUG
865  /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
866 static const yytype_uint16 yyrline[] =
867 {
868  0, 265, 265, 271, 272, 285, 289, 293, 297, 301,
869  306, 307, 308, 309, 315, 316, 317, 319, 320, 321,
870  322, 323, 324, 325, 329, 339, 343, 350, 357, 367,
871  374, 388, 398, 407, 417, 425, 432, 439, 453, 461,
872  471, 479, 493, 494, 500, 501, 507, 508, 512, 522,
873  523, 525, 534, 543, 549, 555, 561, 568, 578, 592,
874  593, 597, 602, 610, 611, 617, 623, 628, 638, 643,
875  648, 653, 658, 663, 668, 673, 679, 688, 689, 696,
876  701, 709, 710, 712, 714, 719, 720, 722, 727, 728,
877  730, 735, 736, 738, 740, 742, 747, 748, 750, 755,
878  756, 761, 762, 767, 768, 773, 774, 779, 780, 788,
879  789, 797, 798, 803, 804, 811, 821, 822, 824, 826,
880  828, 830, 832, 834, 836, 838, 840, 842, 847, 848,
881  853, 858, 859, 865, 871, 877, 878, 879, 883, 895,
882  894, 907, 906, 919, 918, 934, 941, 945, 949, 954,
883  957, 963, 961, 979, 977, 993, 1011, 1009, 1026, 1027,
884  1028, 1029, 1030, 1034, 1035, 1036, 1037, 1038, 1042, 1043,
885  1047, 1048, 1052, 1059, 1060, 1067, 1074, 1075, 1082, 1083,
886  1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1099,
887  1104, 1112, 1113, 1117, 1118, 1119, 1123, 1124, 1131, 1135,
888  1139, 1143, 1150, 1154, 1158, 1162, 1170, 1174, 1178, 1186,
889  1187, 1191, 1198, 1202, 1206, 1213, 1217, 1221, 1228, 1232,
890  1236, 1243, 1247, 1251, 1258, 1263, 1271, 1272, 1276, 1280,
891  1287, 1296, 1297, 1301, 1305, 1312, 1316, 1320, 1327, 1328,
892  1332, 1336, 1340, 1344, 1348, 1352, 1359, 1364, 1372, 1375,
893  1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388,
894  1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419,
895  1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429,
896  1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1443, 1450,
897  1457, 1461, 1462, 1463, 1467, 1472, 1484, 1481, 1502, 1498,
898  1522, 1518, 1535, 1537, 1542, 1544, 1546, 1548, 1550, 1552,
899  1554, 1556, 1558, 1560, 1562, 1564, 1566, 1568, 1574, 1577,
900  1581, 1582, 1589, 1591, 1597, 1600, 1604, 1605, 1613, 1616,
901  1620, 1625, 1633, 1634, 1635, 1639, 1646, 1657, 1665, 1692,
902  1700, 1711, 1714, 1725, 1734, 1746, 1749, 1753, 1765, 1763,
903  1777, 1774, 1787, 1798, 1807, 1810, 1814, 1819, 1824, 1831,
904  1842, 1846, 1853, 1854, 1863, 1868, 1875, 1884, 1889, 1897,
905  1905, 1912, 1920, 1929, 1937, 1944, 1952, 1960, 1967, 1975,
906  1983, 1991, 1998, 2009, 2010, 2014, 2018, 2023, 2027, 2036,
907  2040, 2050, 2051, 2057, 2066, 2074, 2082, 2084, 2092, 2093,
908  2101, 2107, 2122, 2129, 2136, 2144, 2151, 2159, 2171, 2172,
909  2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182,
910  2183, 2187, 2196, 2208, 2216, 2223, 2232, 2243, 2251, 2258,
911  2266, 2278, 2285, 2290, 2297, 2312, 2321, 2330, 2341, 2342,
912  2346, 2358, 2371, 2370, 2402, 2419, 2426, 2428, 2430, 2432,
913  2437, 2459, 2464, 2471, 2475, 2481, 2492, 2498, 2507, 2516,
914  2524, 2532, 2537, 2545, 2555, 2557, 2558, 2559, 2560, 2572,
915  2578, 2585, 2593, 2602, 2614, 2618, 2622, 2626, 2632, 2642,
916  2647, 2655, 2659, 2663, 2669, 2679, 2684, 2692, 2696, 2700,
917  2708, 2713, 2721, 2725, 2729, 2734, 2742, 2750, 2752, 2756,
918  2757, 2761, 2766, 2770, 2771, 2775, 2779, 2786, 2813, 2818,
919  2821, 2825, 2830, 2838, 2843, 2844, 2848, 2855, 2859, 2863,
920  2867, 2875, 2879, 2883, 2891, 2896, 2906, 2907, 2908, 2912,
921  2918, 2924, 2932, 2940, 2947, 2954, 2961, 2971, 2972, 2973,
922  2977, 2984, 2994, 3002, 3003, 3007, 3008, 3013, 3017, 3018,
923  3023, 3031, 3033, 3043, 3044, 3049, 3055, 3060, 3068, 3070,
924  3075, 3085, 3086, 3091, 3092, 3096, 3097, 3102, 3109, 3124,
925  3130, 3132, 3142, 3149, 3154, 3155, 3156, 3160, 3161, 3165,
926  3167, 3178, 3177, 3200, 3201, 3209, 3208, 3234, 3241, 3251,
927  3259, 3266, 3275, 3284, 3297, 3305, 3315, 3320, 3332, 3343,
928  3351, 3361, 3366, 3378, 3389, 3391, 3393, 3395, 3401, 3410,
929  3412, 3414, 3415
930 };
931 #endif
932 
933 #if YYDEBUG || YYERROR_VERBOSE || 0
934 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
935  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
936 static const char *const yytname[] =
937 {
938  "$end", "error", "$undefined", "\"auto\"", "\"bool\"", "\"complex\"",
939  "\"break\"", "\"case\"", "\"char\"", "\"const\"", "\"continue\"",
940  "\"default\"", "\"do\"", "\"double\"", "\"else\"", "\"enum\"",
941  "\"extern\"", "\"float\"", "\"for\"", "\"goto\"", "\"if\"", "\"inline\"",
942  "\"int\"", "\"long\"", "\"register\"", "\"restrict\"", "\"return\"",
943  "\"short\"", "\"signed\"", "\"sizeof\"", "\"static\"", "\"struct\"",
944  "\"switch\"", "\"typedef\"", "\"union\"", "\"unsigned\"", "\"void\"",
945  "\"volatile\"", "\"wchar_t\"", "\"while\"", "\"->\"", "\"++\"", "\"--\"",
946  "\"<<\"", "\">>\"", "\"<=\"", "\">=\"", "\"==\"", "\"!=\"", "\"&&\"",
947  "\"||\"", "\"...\"", "\"*=\"", "\"/=\"", "\"%=\"", "\"+=\"", "\"-=\"",
948  "\"<<=\"", "\">>=\"", "\"&=\"", "\"^=\"", "\"|=\"", "TOK_IDENTIFIER",
949  "TOK_TYPEDEFNAME", "TOK_INTEGER", "TOK_FLOATING", "TOK_CHARACTER",
950  "TOK_STRING", "TOK_ASM_STRING", "\"__int8\"", "\"__int16\"",
951  "\"__int32\"", "\"__int64\"", "\"__ptr32\"", "\"__ptr64\"", "\"typeof\"",
952  "\"__auto_type\"", "\"_Float16\"", "\"_Float32\"", "\"_Float32x\"",
953  "\"__float80\"", "\"_Float64\"", "\"_Float64x\"", "\"_Float128\"",
954  "\"_Float128x\"", "\"__int128\"", "\"_Decimal32\"", "\"_Decimal64\"",
955  "\"_Decimal128\"", "\"__asm__\"", "\"__asm__ (with parentheses)\"",
956  "\"__attribute__\"", "\"aligned\"", "\"transparent_union\"",
957  "\"packed\"", "\"vector_size\"", "\"mode\"", "\"__gnu_inline__\"",
958  "\"weak\"", "\"alias\"", "\"section\"", "\"noreturn\"",
959  "\"constructor\"", "\"destructor\"", "\"fallthrough\"", "\"used\"",
960  "\"__label__\"", "\"__asm\"", "\"__based\"", "\"_var_arg_typeof\"",
961  "\"__builtin_va_arg\"", "\"__builtin_types_compatible_p\"",
962  "\"__builtin_convertvector\"", "\"__offsetof\"", "\"__alignof__\"",
963  "\"__try\"", "\"__finally\"", "\"__except\"", "\"__leave\"",
964  "\"__declspec\"", "\"__forceinline\"", "\"__interface\"", "\"__cdecl\"",
965  "\"__stdcall\"", "\"__fastcall\"", "\"__clrcall\"", "\"forall\"",
966  "\"exists\"", "\"\\\\forall\"", "\"\\\\exists\"", "\"array_of\"",
967  "\"__CPROVER_bitvector\"", "\"__CPROVER_floatbv\"",
968  "\"__CPROVER_fixedbv\"", "\"__CPROVER_atomic\"", "\"__CPROVER_bool\"",
969  "\"__CPROVER_throw\"", "\"__CPROVER_catch\"", "\"__CPROVER_try\"",
970  "\"__CPROVER_finally\"", "\"__CPROVER_ID\"",
971  "\"__CPROVER_loop_invariant\"", "\"__CPROVER_requires\"",
972  "\"__CPROVER_ensures\"", "\"==>\"", "\"<==>\"", "\"TRUE\"", "\"FALSE\"",
973  "\"__real__\"", "\"__imag__\"", "\"_Alignas\"", "\"_Atomic\"",
974  "\"_Atomic()\"", "\"_Generic\"", "\"_Imaginary\"", "\"_Noreturn\"",
975  "\"_Static_assert\"", "\"_Thread_local\"", "\"nullptr\"",
976  "\"constexpr\"", "TOK_SCANNER_ERROR", "TOK_SCANNER_EOF", "\"catch\"",
977  "\"char16_t\"", "\"char32_t\"", "\"class\"", "\"delete\"",
978  "\"decltype\"", "\"explicit\"", "\"friend\"", "\"mutable\"",
979  "\"namespace\"", "\"new\"", "\"noexcept\"", "\"operator\"",
980  "\"private\"", "\"protected\"", "\"public\"", "\"template\"", "\"this\"",
981  "\"throw\"", "\"typeid\"", "\"typename\"", "\"try\"", "\"using\"",
982  "\"virtual\"", "\"::\"", "\".*\"", "\"->*\"", "TOK_UNARY_TYPE_PREDICATE",
983  "TOK_BINARY_TYPE_PREDICATE", "\"__uuidof\"", "\"__if_exists\"",
984  "\"__if_not_exists\"", "\"__underlying_type\"", "'('", "')'", "','",
985  "':'", "'.'", "'['", "']'", "'{'", "'}'", "'&'", "'*'", "'+'", "'-'",
986  "'~'", "'!'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "'='",
987  "';'", "$accept", "grammar", "identifier", "typedef_name", "integer",
988  "floating", "character", "string", "constant", "primary_expression",
989  "generic_selection", "generic_assoc_list", "generic_association",
990  "gcc_builtin_expressions", "clang_builtin_expressions",
991  "cw_builtin_expressions", "offsetof", "offsetof_member_designator",
992  "quantifier_expression", "loop_invariant_opt", "requires_opt",
993  "ensures_opt", "statement_expression", "postfix_expression",
994  "member_name", "argument_expression_list", "unary_expression",
995  "cast_expression", "multiplicative_expression", "additive_expression",
996  "shift_expression", "relational_expression", "equality_expression",
997  "and_expression", "exclusive_or_expression", "inclusive_or_expression",
998  "logical_and_expression", "logical_or_expression",
999  "logical_implication_expression", "logical_equivalence_expression",
1000  "conditional_expression", "assignment_expression", "comma_expression",
1001  "constant_expression", "comma_expression_opt", "declaration",
1002  "static_assert_declaration", "default_declaring_list", "@1", "@2", "$@3",
1003  "post_declarator_attribute", "post_declarator_attributes",
1004  "post_declarator_attributes_opt", "declaring_list", "@4", "@5", "$@6",
1005  "declaration_specifier", "type_specifier", "declaration_qualifier_list",
1006  "type_qualifier_list", "attribute_type_qualifier_list",
1007  "declaration_qualifier", "type_qualifier", "alignas_specifier",
1008  "attribute_or_type_qualifier",
1009  "attribute_or_type_qualifier_or_storage_class",
1010  "attribute_type_qualifier_storage_class_list",
1011  "basic_declaration_specifier", "basic_type_specifier",
1012  "sue_declaration_specifier", "sue_type_specifier",
1013  "typedef_declaration_specifier", "typeof_declaration_specifier",
1014  "atomic_declaration_specifier", "typedef_type_specifier",
1015  "typeof_specifier", "typeof_type_specifier", "atomic_specifier",
1016  "atomic_type_specifier", "msc_decl_identifier", "msc_decl_modifier",
1017  "msc_declspec_seq", "msc_declspec", "msc_declspec_opt", "storage_class",
1018  "basic_type_name", "elaborated_type_name", "array_of_construct",
1019  "pragma_packed", "aggregate_name", "$@7", "$@8", "$@9", "aggregate_key",
1020  "gcc_type_attribute", "gcc_attribute", "gcc_attribute_list",
1021  "gcc_attribute_specifier", "gcc_type_attribute_opt",
1022  "gcc_type_attribute_list", "member_declaration_list_opt",
1023  "member_declaration_list", "member_declaration",
1024  "member_default_declaring_list", "member_declaring_list",
1025  "member_declarator", "member_identifier_declarator",
1026  "bit_field_size_opt", "bit_field_size", "enum_name", "$@10", "$@11",
1027  "enum_key", "enumerator_list_opt", "enumerator_list",
1028  "enumerator_declaration", "enumerator_value_opt", "parameter_type_list",
1029  "KnR_parameter_list", "KnR_parameter", "parameter_list",
1030  "parameter_declaration", "identifier_or_typedef_name", "type_name",
1031  "initializer_opt", "initializer", "initializer_list",
1032  "initializer_list_opt", "designated_initializer", "designator",
1033  "statement", "declaration_statement", "labeled_statement",
1034  "statement_attribute", "compound_statement", "compound_scope",
1035  "statement_list", "expression_statement", "selection_statement",
1036  "declaration_or_expression_statement", "iteration_statement", "$@12",
1037  "jump_statement", "gcc_local_label_statement", "gcc_local_label_list",
1038  "gcc_local_label", "gcc_asm_statement", "msc_asm_statement",
1039  "msc_seh_statement", "cprover_exception_statement",
1040  "volatile_or_goto_opt", "gcc_asm_commands", "gcc_asm_assembler_template",
1041  "gcc_asm_outputs", "gcc_asm_output", "gcc_asm_output_list",
1042  "gcc_asm_inputs", "gcc_asm_input", "gcc_asm_input_list",
1043  "gcc_asm_clobbered_registers", "gcc_asm_clobbered_register",
1044  "gcc_asm_clobbered_registers_list", "gcc_asm_labels",
1045  "gcc_asm_labels_list", "gcc_asm_label", "translation_unit",
1046  "external_definition_list", "external_definition", "asm_definition",
1047  "function_definition", "function_body", "KnR_parameter_header_opt",
1048  "KnR_parameter_header", "KnR_parameter_declaration",
1049  "KnR_declaration_qualifier_list", "KnR_basic_declaration_specifier",
1050  "KnR_typedef_declaration_specifier", "KnR_sue_declaration_specifier",
1051  "KnR_declaration_specifier", "KnR_parameter_declaring_list",
1052  "function_head", "declarator", "paren_attribute_declarator",
1053  "typedef_declarator", "parameter_typedef_declarator",
1054  "clean_typedef_declarator", "clean_postfix_typedef_declarator",
1055  "paren_typedef_declarator", "paren_postfix_typedef_declarator",
1056  "simple_paren_typedef_declarator", "identifier_declarator",
1057  "unary_identifier_declarator", "postfix_identifier_declarator",
1058  "paren_identifier_declarator", "abstract_declarator",
1059  "parameter_abstract_declarator", "postfixing_abstract_declarator",
1060  "$@13", "parameter_postfixing_abstract_declarator", "$@14",
1061  "array_abstract_declarator", "unary_abstract_declarator",
1062  "parameter_unary_abstract_declarator", "postfix_abstract_declarator",
1063  "parameter_postfix_abstract_declarator", YY_NULLPTR
1064 };
1065 #endif
1066 
1067 # ifdef YYPRINT
1068 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1069  (internal) symbol number NUM (which must be that of a token). */
1070 static const yytype_uint16 yytoknum[] =
1071 {
1072  0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1073  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1074  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1075  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1076  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1077  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1078  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1079  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1080  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1081  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1082  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1083  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1084  375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1085  385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1086  395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1087  405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1088  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1089  425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1090  435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1091  445, 446, 447, 448, 449, 40, 41, 44, 58, 46,
1092  91, 93, 123, 125, 38, 42, 43, 45, 126, 33,
1093  47, 37, 60, 62, 94, 124, 63, 61, 59
1094 };
1095 # endif
1096 
1097 #define YYPACT_NINF -981
1098 
1099 #define yypact_value_is_default(Yystate) \
1100  (!!((Yystate) == (-981)))
1101 
1102 #define YYTABLE_NINF -582
1103 
1104 #define yytable_value_is_error(Yytable_value) \
1105  0
1106 
1107  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1108  STATE-NUM. */
1109 static const yytype_int16 yypact[] =
1110 {
1111  1886, -981, -981, -981, -981, -981, -981, -981, -981, -981,
1112  -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
1113  -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
1114  -981, -981, -143, 494, -981, -981, -981, -981, -981, -981,
1115  -981, -981, -981, -981, -981, -981, -981, -110, -77, -57,
1116  -48, -981, 49, -168, -45, -13, -981, -981, 137, 103,
1117  -981, 105, -981, 123, -981, 727, 241, 1988, 727, -981,
1118  328, -981, -7, -981, 115, -85, 25, 63, 157, 2245,
1119  2245, -981, -981, 6379, 6379, 3693, 3693, 3693, 3693, 3693,
1120  3693, 456, 1279, 456, 1279, -981, -981, -7, -981, -981,
1121  -981, -7, -981, -981, -7, -981, 1886, -981, -981, -981,
1122  194, -981, -981, -981, 85, 4333, 942, 999, 85, -33,
1123  -981, -981, -981, -981, -981, -981, -981, -981, 275, 155,
1124  5141, 11, -7, 5141, 5141, 5141, -981, 4333, -7, 5141,
1125  160, 259, 161, 1988, -981, -981, -981, -981, -981, -981,
1126  -981, -981, -7, -981, 727, -981, -7, -981, -981, 54,
1127  -981, 824, -7, -981, -981, -7, -7, -981, -7, -981,
1128  -981, 91, -7, -981, 456, 456, -981, -7, -981, -981,
1129  163, -7, -7, -981, -7, -7, -981, -981, -981, -7,
1130  -7, -7, -7, -7, 1369, -7, 1369, -7, -981, 265,
1131  34, -981, 200, 231, 20, 3475, -981, -981, 213, 5343,
1132  5377, 5377, 34, -981, -981, -981, -981, 226, 230, 245,
1133  248, 263, 5478, -981, -981, -981, -981, 5141, 5141, 283,
1134  4232, 5141, 5141, 5141, 5141, 5141, 5141, -981, -981, -981,
1135  -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
1136  -981, 88, -981, 1107, 349, 46, 522, -11, 590, 266,
1137  276, 282, 467, -23, -981, -103, -981, -981, 451, 6559,
1138  327, 846, 1496, -981, 174, 340, 343, 85, 942, 1634,
1139  -981, -981, -981, -981, 100, -981, -33, 333, -981, 382,
1140  2400, 462, -981, -981, -981, -981, -981, 390, -981, 41,
1141  392, -17, 156, 180, 475, 407, 413, 415, 85, -981,
1142  -981, -981, -981, -981, -981, 494, -981, -981, -981, -981,
1143  -981, -981, 398, -981, 1369, 1369, -981, 398, -981, -981,
1144  -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
1145  34, -981, -981, 423, -60, 5141, 428, -981, 6090, 9,
1146  5935, -981, 4434, -981, 426, -981, -981, 3624, -981, -981,
1147  5242, 4232, -981, 4232, -981, -981, -981, -981, -7, 5141,
1148  -7, 5141, -7, 4232, -981, 430, 440, 5625, 5625, -981,
1149  -981, 5141, 482, 449, 471, 472, -981, -981, -981, -981,
1150  -981, -981, 34, -981, -981, 4535, 34, 5141, 5141, 5141,
1151  5141, 5141, 5141, 5141, 5141, 5141, 5141, 5141, 5141, 5141,
1152  5141, 5141, 5141, 5141, 5141, 5141, 5141, 5141, 5141, 5141,
1153  5141, 5141, 5141, 5141, 5141, 5141, 5141, 5141, 5141, 4636,
1154  -981, 5141, 198, 2548, 6646, 456, 456, -981, -981, -981,
1155  384, 846, 473, 85, 85, 485, 400, 846, -981, -981,
1156  661, 667, 505, -981, 4737, 486, 512, -981, -981, 514,
1157  525, -981, -981, 530, 533, -981, -981, -981, -981, -981,
1158  -981, 499, -981, 464, -981, -981, -981, -981, 542, 544,
1159  -981, -981, -981, 5141, -981, 398, -33, 398, 398, 4737,
1160  -981, -981, 528, 534, 34, -981, 548, -981, 558, 5141,
1161  -981, -981, 494, 6469, 1279, 6379, 3693, -981, 6090, -981,
1162  6240, 6379, 3693, -981, 494, 42, -981, 506, -981, 262,
1163  262, 2090, 2090, 561, 563, -981, -981, -981, -981, 567,
1164  -981, 4838, 577, 566, 589, 595, 596, 604, 615, 617,
1165  624, 5625, 5625, 1747, 63, 157, 2245, 2245, 1747, 626,
1166  -981, 4939, -981, 2703, -981, -981, -981, -981, 536, -981,
1167  -981, 189, -981, -981, -981, -981, -981, -981, -981, -981,
1168  -981, -981, -981, -981, -981, -981, 349, 349, 46, 46,
1169  522, 522, 522, 522, -11, -11, 590, 266, 276, 282,
1170  467, -981, -981, 5141, 455, -981, 214, 1527, -981, -981,
1171  -981, -981, -981, -981, -981, 85, -981, -981, -981, -981,
1172  421, -981, -981, 275, 4131, -981, -981, -981, 5141, 5141,
1173  9, 765, 770, 631, 2400, 646, 666, 647, 5141, 5141,
1174  670, -981, -981, -981, -981, -981, 179, 669, -7, 665,
1175  676, -981, -7, 34, -981, 685, -981, -981, -7, -7,
1176  -981, -7, -981, -7, 34, 34, -7, -7, -7, -981,
1177  494, -981, 6090, 9, 304, 1426, 727, -981, -7, -981,
1178  -981, -981, -981, -981, -7, -981, 871, 1790, -7, -981,
1179  -7, -981, 6090, 5780, -981, -981, -981, 686, 686, -981,
1180  -7, -7, -7, 34, 686, 5141, 5141, 5141, -981, -33,
1181  -33, -981, -981, -981, 44, 4131, -981, 674, 5141, 680,
1182  706, 3117, -981, 5040, 710, 3727, 718, 724, 731, 100,
1183  726, 34, -21, -981, -981, 712, -981, -981, 738, 104,
1184  741, 721, -981, 742, -981, -981, -981, -981, -981, 2910,
1185  -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
1186  5141, -981, -981, 5141, 747, 749, 750, 1527, -981, -981,
1187  -981, -981, 751, 754, 34, 5141, 761, 762, -981, 752,
1188  767, -981, 3828, 551, 556, 775, 777, 780, -981, -981,
1189  -981, -981, 45, 203, 234, -981, 398, -981, 757, 6559,
1190  774, 443, -981, 48, 66, 179, -981, -7, 34, 766,
1191  781, -981, -981, -981, -981, -981, -7, -7, -981, -981,
1192  -981, -981, -981, 6090, -981, -981, 793, 794, 1426, -981,
1193  -981, -981, 1790, -981, -981, -981, -981, -981, 801, 802,
1194  806, 14, -981, -180, -98, 805, 576, -981, 808, 810,
1195  807, -981, -25, -981, 3117, 970, 817, 795, 89, 5141,
1196  -981, 114, 5141, 5141, -981, -71, 819, 119, -981, -981,
1197  948, 659, -981, 130, -981, 3117, -981, -981, -981, -981,
1198  -981, 85, 85, -981, -981, -8, 821, -981, -3, 4737,
1199  3929, -981, 34, 5141, 4737, -981, -981, -981, -981, -981,
1200  -981, 591, -981, -981, -981, -981, 1017, 2399, -7, -981,
1201  1191, -981, 1017, -981, 814, -981, -981, 5141, -981, -7,
1202  -981, -981, 94, -981, -981, -981, -981, -981, 34, -981,
1203  34, 5141, -981, -981, 5141, -981, 44, 5141, 4030, -981,
1204  5141, 3117, -981, 825, 3324, -981, -981, 600, -981, 609,
1205  826, 275, 955, 2246, 34, -981, 822, -981, 832, -981,
1206  -981, 813, -981, -981, -981, 34, 833, -981, 835, 27,
1207  837, 5141, -981, -981, -981, -981, -981, 24, -981, -981,
1208  45, 5141, -981, -7, 840, -981, -7, 840, -981, -981,
1209  -981, -7, -981, -981, 841, -981, -981, -981, 255, -981,
1210  -981, -981, -981, 845, -981, 5141, -981, -981, 5141, 3117,
1211  3117, 898, 851, 847, 853, -981, -981, -981, 5141, -981,
1212  -981, -981, 852, 5141, -8, 34, 857, -981, 858, 275,
1213  859, 271, 5141, -981, 842, -981, -981, -7, -981, -981,
1214  -7, -981, -981, -981, 3117, 620, 838, 1044, -981, 868,
1215  3117, 856, -981, 873, 629, 275, 634, -981, 874, 5141,
1216  27, -981, -981, 880, 34, -981, -981, 278, 45, -981,
1217  -981, -981, -981, 898, 5141, 3117, 5141, -981, -981, 860,
1218  -981, 886, -981, 275, 638, -981, 275, -981, 890, -981,
1219  -981, 887, 870, 895, -981, 900, 233, -981, 5141, 899,
1220  -981, -981, 34, -981, -981, 898, -981, -981, 649, 5141,
1221  -981, 3117, -981, 664, -981, -981
1222 };
1223 
1224  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1225  Performed when YYTABLE does not specify something else to do. Zero
1226  means the default is an error. */
1227 static const yytype_uint16 yydefact[] =
1228 {
1229  497, 253, 285, 286, 265, 181, 281, 353, 251, 268,
1230  255, 260, 267, 254, 182, 266, 282, 252, 302, 250,
1231  303, 283, 284, 183, 3, 5, 261, 262, 263, 264,
1232  185, 186, 0, 0, 269, 270, 271, 274, 272, 273,
1233  275, 276, 277, 278, 279, 280, 257, 0, 0, 0,
1234  0, 259, 0, 0, 0, 0, 184, 290, 0, 0,
1235  180, 0, 323, 0, 256, 0, 0, 0, 0, 504,
1236  0, 572, 324, 502, 0, 0, 0, 0, 0, 0,
1237  0, 173, 188, 158, 163, 159, 164, 160, 161, 162,
1238  165, 226, 166, 231, 167, 258, 168, 324, 209, 293,
1239  291, 324, 170, 292, 324, 2, 498, 499, 503, 501,
1240  44, 532, 563, 565, 564, 324, 0, 0, 545, 149,
1241  539, 538, 544, 547, 548, 543, 553, 537, 0, 0,
1242  0, 0, 324, 0, 0, 0, 4, 324, 324, 0,
1243  0, 0, 0, 0, 191, 176, 192, 566, 567, 1,
1244  326, 221, 325, 135, 0, 137, 324, 136, 133, 149,
1245  134, 149, 324, 172, 179, 324, 324, 178, 324, 206,
1246  171, 139, 324, 174, 227, 232, 169, 324, 210, 175,
1247  141, 324, 324, 204, 324, 324, 208, 211, 207, 324,
1248  324, 324, 324, 324, 229, 324, 234, 324, 202, 248,
1249  348, 500, 0, 46, 585, 0, 569, 579, 583, 0,
1250  0, 0, 0, 6, 7, 8, 9, 0, 0, 0,
1251  0, 0, 0, 431, 431, 431, 431, 0, 0, 0,
1252  324, 0, 0, 0, 0, 0, 0, 14, 10, 11,
1253  12, 13, 15, 49, 23, 18, 19, 20, 21, 22,
1254  17, 63, 77, 81, 85, 88, 91, 96, 99, 101,
1255  103, 105, 107, 109, 111, 113, 116, 128, 0, 0,
1256  0, 0, 0, 561, 0, 0, 0, 0, 0, 0,
1257  542, 549, 556, 546, 464, 148, 150, 0, 146, 0,
1258  318, 0, 237, 235, 236, 247, 243, 238, 244, 0,
1259  0, 0, 0, 0, 0, 0, 0, 0, 570, 573,
1260  506, 177, 568, 327, 143, 0, 151, 153, 213, 216,
1261  219, 198, 389, 222, 228, 233, 203, 389, 200, 201,
1262  199, 205, 214, 217, 220, 223, 212, 215, 218, 249,
1263  296, 383, 384, 0, 324, 0, 0, 431, 584, 0,
1264  0, 587, 0, 130, 0, 193, 196, 0, 195, 194,
1265  0, 324, 73, 324, 64, 65, 453, 67, 324, 0,
1266  324, 0, 324, 324, 75, 0, 0, 0, 0, 79,
1267  80, 0, 0, 0, 0, 0, 66, 68, 69, 70,
1268  71, 72, 0, 55, 56, 0, 0, 0, 0, 0,
1269  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1270  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1271  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1272  224, 0, 385, 387, 163, 164, 165, 166, 167, 225,
1273  0, 0, 0, 551, 558, 0, 0, 0, 550, 557,
1274  466, 465, 0, 147, 0, 0, 307, 305, 304, 0,
1275  0, 310, 311, 0, 0, 314, 315, 316, 317, 319,
1276  320, 0, 187, 0, 246, 245, 294, 287, 0, 0,
1277  189, 190, 230, 0, 571, 389, 149, 389, 389, 0,
1278  140, 142, 0, 300, 354, 352, 0, 81, 0, 0,
1279  508, 507, 0, 0, 173, 163, 165, 514, 580, 511,
1280  0, 526, 527, 528, 0, 0, 366, 0, 364, 369,
1281  376, 373, 380, 0, 362, 367, 589, 590, 588, 0,
1282  197, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1283  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1284  16, 0, 48, 131, 59, 60, 54, 51, 0, 61,
1285  53, 0, 118, 119, 120, 121, 122, 123, 124, 125,
1286  126, 127, 117, 82, 83, 84, 86, 87, 89, 90,
1287  94, 95, 92, 93, 97, 98, 100, 102, 104, 106,
1288  108, 110, 112, 0, 0, 129, 585, 594, 598, 386,
1289  576, 574, 575, 388, 562, 540, 552, 560, 559, 554,
1290  0, 467, 468, 0, 397, 391, 155, 505, 0, 0,
1291  0, 0, 0, 0, 318, 0, 0, 0, 0, 0,
1292  0, 144, 156, 152, 154, 390, 324, 0, 324, 0,
1293  355, 356, 324, 354, 45, 0, 530, 515, 324, 324,
1294  512, 324, 516, 324, 0, 0, 324, 324, 324, 529,
1295  0, 513, 509, 0, 585, 599, 603, 372, 324, 370,
1296  611, 577, 578, 379, 324, 377, 585, 599, 324, 374,
1297  324, 381, 509, 0, 591, 593, 592, 74, 0, 32,
1298  324, 324, 324, 0, 76, 0, 0, 431, 39, 149,
1299  149, 139, 141, 41, 324, 397, 78, 0, 0, 0,
1300  0, 131, 442, 0, 0, 0, 0, 0, 0, 464,
1301  0, 0, 0, 431, 460, 0, 431, 428, 14, 324,
1302  132, 0, 421, 0, 432, 410, 408, 420, 409, 131,
1303  411, 412, 413, 414, 416, 415, 417, 418, 419, 52,
1304  0, 50, 115, 0, 0, 0, 0, 595, 596, 541,
1305  555, 474, 0, 469, 0, 0, 14, 0, 398, 396,
1306  0, 394, 0, 0, 0, 0, 0, 0, 322, 321,
1307  240, 239, 0, 0, 0, 138, 389, 334, 0, 0,
1308  0, 324, 330, 0, 0, 324, 301, 324, 358, 360,
1309  0, 47, 518, 521, 522, 517, 324, 324, 519, 520,
1310  523, 531, 582, 510, 365, 584, 0, 0, 600, 601,
1311  371, 378, 600, 375, 382, 586, 363, 368, 0, 0,
1312  0, 0, 34, 0, 0, 0, 0, 25, 0, 396,
1313  0, 447, 0, 446, 131, 0, 0, 0, 0, 0,
1314  448, 0, 0, 131, 430, 0, 0, 0, 451, 457,
1315  0, 0, 461, 0, 434, 131, 429, 433, 62, 114,
1316  606, 604, 605, 597, 145, 476, 470, 402, 0, 0,
1317  0, 392, 0, 0, 0, 400, 308, 306, 309, 312,
1318  313, 0, 288, 289, 157, 335, 341, 0, 324, 331,
1319  0, 333, 341, 332, 0, 349, 357, 0, 359, 324,
1320  524, 525, 609, 610, 602, 29, 30, 31, 0, 33,
1321  0, 0, 38, 40, 0, 24, 324, 0, 0, 57,
1322  0, 131, 426, 0, 131, 445, 444, 0, 449, 0,
1323  0, 0, 0, 318, 0, 450, 0, 431, 0, 431,
1324  431, 170, 423, 608, 607, 0, 0, 479, 475, 482,
1325  471, 0, 403, 401, 393, 395, 407, 0, 399, 241,
1326  0, 0, 338, 324, 345, 336, 324, 345, 295, 337,
1327  339, 324, 361, 351, 585, 612, 37, 35, 0, 28,
1328  26, 27, 58, 0, 424, 0, 438, 439, 131, 131,
1329  131, 42, 0, 0, 0, 452, 456, 459, 0, 462,
1330  463, 422, 0, 0, 0, 0, 0, 485, 481, 488,
1331  472, 0, 0, 405, 0, 347, 342, 324, 346, 344,
1332  324, 297, 295, 36, 131, 0, 0, 435, 437, 0,
1333  131, 0, 455, 0, 0, 0, 0, 480, 0, 0,
1334  0, 489, 490, 487, 493, 473, 404, 0, 0, 340,
1335  343, 299, 425, 42, 131, 131, 0, 440, 454, 0,
1336  431, 0, 477, 0, 0, 486, 0, 496, 492, 494,
1337  406, 0, 0, 0, 436, 0, 0, 458, 0, 0,
1338  483, 491, 0, 242, 441, 42, 43, 427, 0, 0,
1339  495, 131, 478, 0, 443, 484
1340 };
1341 
1342  /* YYPGOTO[NTERM-NUM]. */
1343 static const yytype_int16 yypgoto[] =
1344 {
1345  -981, -981, 0, 30, -981, -981, -981, -108, -981, -320,
1346  -981, -981, 172, -981, -981, -981, -981, -981, -981, -980,
1347  -981, -981, -981, -981, -269, -981, 507, 760, 463, 469,
1348  422, 457, 677, 679, 682, 675, 678, -981, 459, -981,
1349  -342, 839, 496, -167, -832, 28, -560, -981, -981, -981,
1350  -981, 823, -981, -118, -981, -981, -981, -981, 5, 167,
1351  8, 779, -55, 76, 1250, -981, -121, 746, -981, -981,
1352  -216, -981, -119, -981, -981, -981, -107, -61, -58, -39,
1353  339, -469, 809, -981, 911, -981, 1271, -73, -34, -981,
1354  79, -981, -981, -981, -981, 603, -981, 493, -981, 224,
1355  618, -87, 323, -981, 329, -981, -981, 217, 223, 149,
1356  -651, -981, -981, -981, 622, 487, -981, 336, -981, -981,
1357  -981, 477, -981, 452, -163, -51, -302, -445, 431, 433,
1358  -830, -981, -83, 207, 56, -981, -191, 630, -981, 209,
1359  -981, -981, -981, -981, -981, -981, -981, -210, -981, -981,
1360  -981, -981, 425, 204, -981, -981, 132, -981, -981, 98,
1361  -981, -981, 75, -981, -981, -981, 61, -981, -981, 1083,
1362  -981, -981, -981, 508, 849, -493, -981, -981, -981, -981,
1363  -981, -981, -981, 23, 1078, -981, -104, -102, -981, -24,
1364  -981, -100, 72, -14, -981, 4, -409, -431, 785, -981,
1365  -459, -981, -981, 602, -523, 605, -414
1366 };
1367 
1368  /* YYDEFGOTO[NTERM-NUM]. */
1369 static const yytype_int16 yydefgoto[] =
1370 {
1371  -1, 70, 237, 118, 238, 239, 240, 241, 242, 243,
1372  244, 836, 837, 245, 246, 247, 248, 831, 249, 1040,
1373  203, 347, 250, 251, 767, 558, 252, 253, 254, 255,
1374  256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
1375  266, 267, 730, 615, 731, 732, 74, 75, 322, 327,
1376  485, 285, 286, 316, 76, 487, 488, 786, 544, 545,
1377  546, 547, 279, 163, 81, 82, 145, 356, 357, 83,
1378  84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1379  94, 297, 298, 299, 95, 340, 96, 97, 98, 99,
1380  1031, 100, 492, 637, 638, 101, 469, 470, 471, 150,
1381  269, 152, 790, 791, 792, 793, 794, 972, 975, 1027,
1382  973, 103, 343, 496, 104, 639, 640, 641, 908, 523,
1383  517, 518, 524, 525, 733, 838, 490, 768, 769, 770,
1384  771, 772, 734, 735, 736, 737, 738, 385, 739, 740,
1385  741, 998, 742, 846, 743, 744, 857, 1077, 745, 746,
1386  747, 748, 452, 762, 763, 876, 957, 958, 960, 1017,
1387  1018, 1020, 1052, 1053, 1055, 1078, 1079, 105, 106, 107,
1388  108, 109, 501, 812, 813, 509, 510, 511, 512, 513,
1389  514, 515, 110, 974, 120, 121, 122, 123, 124, 125,
1390  126, 446, 127, 112, 113, 114, 599, 819, 445, 349,
1391  207, 350, 208, 601, 671, 602, 672
1392 };
1393 
1394  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1395  positive, shift that token. If negative, reduce the rule whose
1396  number is the opposite. If YYTABLE_NINF, syntax error. */
1397 static const yytype_int16 yytable[] =
1398 {
1399  71, 287, 367, 498, 627, 77, 168, 177, 79, 616,
1400  182, 185, 143, 281, 275, 650, 277, 431, 165, 174,
1401  289, 940, 311, 922, 603, 491, 930, 426, 73, 274,
1402  72, 48, 133, 71, 416, 417, 292, 344, 354, 384,
1403  166, 175, 428, 317, 635, 169, 178, 859, 961, 366,
1404  965, 140, 115, 434, 918, 835, 119, 284, 48, 216,
1405  670, 670, 670, 670, 270, 71, 292, 71, 71, 141,
1406  292, 24, 111, 293, 294, 1022, 788, 71, 71, 71,
1407  71, 300, -581, 1082, 48, 128, 305, 306, 669, 675,
1408  679, 681, 276, 282, 216, 62, 24, 25, 965, 431,
1409  159, 161, 140, 293, 294, 923, 71, 293, 294, 162,
1410  172, 77, 154, 429, 79, 1101, 71, 71, 129, 450,
1411  141, 427, 62, 556, 941, 24, 25, 560, 392, 393,
1412  394, 942, 505, 155, 73, 48, 72, 451, 130, 147,
1413  148, 816, -350, 71, 284, 48, 273, 131, 62, 58,
1414  435, 171, 180, 816, 71, 134, 500, 645, 311, 181,
1415  -581, 186, 436, 189, 190, 191, 1036, 78, 281, 275,
1416  384, 440, 384, 931, 58, 448, 275, 493, 111, 383,
1417  431, 860, 384, 631, 477, 633, 634, 135, 758, 147,
1418  529, 274, 955, 532, 431, 48, -533, -533, 962, 62,
1419  341, 418, 419, 58, 136, 670, 670, 295, 296, 62,
1420  919, 437, 341, 920, 921, 312, 348, 670, 670, 24,
1421  25, 431, 156, 698, 102, 1023, 314, 1015, 703, 435,
1422  342, 788, 1083, -535, -535, 788, 24, 474, 296, 660,
1423  708, 506, 342, 157, 710, 900, 976, 276, 282, 976,
1424  817, 752, 412, 413, 276, 449, -533, 140, 116, 62,
1425  661, 132, 817, 902, 140, 48, 901, 949, 117, 950,
1426  48, 71, 71, 78, 71, 141, -581, 68, 71, 71,
1427  204, 158, 141, 395, 903, 205, 431, 396, 397, 984,
1428  437, 146, 505, -535, 205, 24, 25, 58, 137, 72,
1429  138, 273, -384, 170, 179, -536, -536, 936, 273, 142,
1430  533, 431, 534, 891, 58, 71, 944, 535, 139, 537,
1431  650, 539, 540, 1028, 24, 25, 1028, 885, 149, 62,
1432  102, 642, 938, 153, 62, 63, 202, 945, 486, 275,
1433  341, 146, 216, 288, 147, 275, 442, 610, 873, 516,
1434  290, 312, 116, 431, -581, 519, 308, 478, 521, 670,
1435  177, 185, 117, 670, 310, -536, 24, 146, 632, 65,
1436  342, 68, 174, 58, 346, 160, 313, 431, 72, 67,
1437  72, 479, -328, 288, 50, 288, 431, 914, 68, 435,
1438  751, 914, 554, 596, 175, 345, 554, 787, 205, 178,
1439  431, 506, 58, 597, 892, 543, 548, 72, 72, 596,
1440  348, 869, 598, 360, 205, 667, 673, 276, 179, 597,
1441  179, 368, 555, 276, 832, 369, 555, 140, 598, 359,
1442  177, 431, 185, 140, 963, 893, 432, 653, 657, 968,
1443  370, 71, 174, 371, 58, 141, 505, 71, 168, 177,
1444  437, 141, 431, 985, 204, 309, 1033, 664, 372, 205,
1445  165, 174, 205, 172, 175, 5, 505, 665, 431, 178,
1446  422, 273, 1056, 168, 177, 431, 666, 273, 381, 1080,
1447  642, 14, 166, 175, 894, 165, 174, 169, 178, 292,
1448  423, 806, 807, 23, 341, 877, 146, 424, 313, 664,
1449  815, 1024, 71, 146, 205, 761, 384, 166, 175, 665,
1450  288, 858, 169, 178, 71, 502, 425, 520, 666, 71,
1451  71, 71, 71, 439, 342, 646, 293, 294, 625, 30,
1452  31, 626, 861, 172, 48, 863, 443, 659, 72, 444,
1453  651, 842, 757, 435, 71, 71, 71, 71, 179, 179,
1454  454, 162, 172, 728, 409, 506, 24, 25, 366, 410,
1455  411, 281, 275, 435, 49, 414, 415, 699, 700, 695,
1456  696, 72, 72, 434, 102, 506, 162, 172, 455, 204,
1457  604, 359, 317, 729, 205, 473, 652, 656, 658, 1081,
1458  56, 668, 674, 678, 680, 204, 609, 505, 62, 63,
1459  205, 102, 102, 481, 437, 476, 59, 60, 438, 482,
1460  818, 268, 483, 966, 766, 489, 204, 760, 701, 702,
1461  775, 205, 822, 499, 437, 494, 291, 527, 845, 301,
1462  302, 303, 541, 304, 58, 642, 311, 420, 421, 828,
1463  829, 830, 542, 341, 555, 551, -329, 430, 431, 986,
1464  140, 987, 431, 753, 341, 341, 867, 179, 472, 431,
1465  71, 787, 140, 516, 71, 71, 71, 552, 141, 605,
1466  435, 480, 431, 342, 553, 502, 71, 71, 550, 431,
1467  141, 608, 436, 811, 342, 342, 612, 438, 519, 116,
1468  151, 521, 72, 554, 435, 623, 624, 311, 611, 117,
1469  613, 311, 662, 663, 617, 766, 506, 618, 68, 619,
1470  288, 728, 72, 72, 448, 198, 362, 364, 365, 199,
1471  620, 341, 200, 555, 1085, 621, 382, 179, 622, 374,
1472  636, 437, 749, 750, 1005, 555, -298, 147, 148, 728,
1473  982, 729, 628, 847, 629, 170, 179, 886, 431, 147,
1474  643, 342, 887, 431, 644, 437, 1007, 682, 1009, 1010,
1475  683, 932, 687, 993, 554, 102, 102, 956, 684, 729,
1476  170, 179, 925, 926, 315, 947, 948, 102, 686, 80,
1477  318, 366, 952, 319, 320, 688, 321, 969, 970, 24,
1478  323, 689, 1012, 690, 555, 326, 999, 431, 341, 328,
1479  329, 691, 330, 331, 1025, 1000, 431, 332, 333, 334,
1480  335, 336, 692, 337, 693, 338, 1063, 431, 71, 72,
1481  694, 146, 71, 704, 177, 1070, 431, 778, 342, 502,
1482  1072, 431, 776, 761, 1090, 431, 174, 777, 580, 581,
1483  582, 583, 780, 72, 728, 1102, 431, 438, 994, 502,
1484  520, 1016, 1048, 375, 376, 377, 378, 382, 175, 382,
1485  1105, 431, 781, 178, 782, 728, 785, 58, 797, 382,
1486  194, 795, 196, 798, 729, 576, 577, 584, 585, 1087,
1487  766, 801, 554, 578, 579, 80, 591, 592, 705, 146,
1488  312, 366, 841, 561, 312, 729, 71, 71, 843, 206,
1489  71, 146, 71, 283, 844, 849, 956, 102, 24, 25,
1490  555, 1051, 555, 852, 284, 48, 1037, 1038, 554, 853,
1491  554, 856, 65, 288, 288, 594, 206, 172, 766, 366,
1492  862, 728, 67, 24, 854, 102, -383, 1071, 431, 864,
1493  865, 68, 1016, 870, 341, 871, 872, 874, 555, 880,
1494  555, 1062, 875, 324, 325, 341, 896, 1067, 555, -59,
1495  879, 729, 495, 102, 72, 1089, -534, -534, 1051, 977,
1496  881, 888, 977, 889, 342, 895, 890, 898, 307, 62,
1497  502, 146, 1084, 907, 909, 342, 58, 379, 380, 912,
1498  913, 386, 387, 388, 389, 390, 391, 915, 916, 728,
1499  728, 438, 917, 924, 24, 25, 927, 928, 5, 933,
1500  929, 58, 934, 935, 943, 341, 946, 981, 1104, 959,
1501  995, 438, 1001, 1003, 14, 1006, -534, 1008, 1013, 729,
1502  729, 1011, 1014, 48, 728, 1019, 23, 815, 971, 1039,
1503  728, 271, 146, 1034, 353, 342, 146, 1041, 433, 1043,
1504  1042, 272, 1049, 1045, 341, 1050, 1064, 1054, 1065, 1058,
1505  68, 24, 25, 1066, 729, 728, 676, 815, 102, 1069,
1506  729, 205, 30, 31, 1068, 1073, 677, 1076, 1086, 24,
1507  25, 1088, 58, 1093, 342, 666, 341, 1092, 1094, 951,
1508  48, 1095, 341, 484, 1099, 729, 1096, 62, 990, 586,
1509  589, 728, 587, 530, 590, 497, 588, 49, 475, 453,
1510  339, 1061, 387, 654, 773, 774, 342, 779, 904, 980,
1511  899, 179, 342, 979, 783, 784, 1030, 503, 438, 522,
1512  800, 729, 655, 56, 906, 827, 839, 271, 840, 58,
1513  814, 996, 1097, 997, 855, 1002, 1047, 272, 1075, 59,
1514  60, 1091, 438, 1100, 62, 102, 68, 58, 102, 398,
1515  399, 400, 401, 402, 403, 404, 405, 406, 407, 573,
1516  574, 575, 497, 497, 497, 497, 497, 497, 497, 497,
1517  497, 497, 497, 497, 497, 497, 497, 497, 497, 201,
1518  825, 833, 834, 382, 278, 280, 353, 508, 755, 353,
1519  0, 756, 0, 0, 117, 0, 0, 0, 536, 848,
1520  538, 851, 116, 68, 0, 971, 0, 600, 600, 0,
1521  549, 0, 117, 102, 102, 0, 0, 0, 606, 607,
1522  0, 68, 0, 0, 559, 0, 0, 562, 563, 564,
1523  565, 566, 567, 568, 569, 570, 571, 572, 0, 0,
1524  0, 0, 0, 24, 789, 0, 796, 0, 102, 497,
1525  799, 878, 0, 0, 102, 0, 802, 803, 0, 804,
1526  595, 805, 0, 0, 808, 809, 810, 0, 0, 0,
1527  0, 0, 1, 0, 0, 0, 820, 503, 0, 102,
1528  0, 387, 821, 353, 0, 8, 823, 0, 824, 0,
1529  10, 0, 0, 13, 0, 0, 0, 0, 0, 17,
1530  0, 706, 19, 0, 0, 0, 0, 144, 0, 0,
1531  0, 0, 630, 0, 408, 102, 0, 0, 353, 164,
1532  173, 58, 0, 164, 183, 164, 187, 164, 164, 164,
1533  192, 0, 0, 0, 0, 937, 0, 151, 939, 0,
1534  167, 176, 0, 497, 167, 184, 167, 188, 167, 167,
1535  167, 193, 0, 195, 0, 197, 0, 144, 46, 0,
1536  0, 0, 0, 0, 0, 0, 0, 0, 5, 967,
1537  0, 754, 600, 0, 0, 0, 65, 0, 0, 971,
1538  759, 0, 0, 144, 14, 0, 67, 0, 50, 51,
1539  0, 0, 0, 0, 0, 68, 23, 0, 0, 789,
1540  0, 0, 0, 789, 0, 905, 0, 988, 0, 0,
1541  0, 0, 0, 0, 910, 911, 0, 0, 0, 0,
1542  0, 0, 0, 0, 0, 5, 64, 0, 0, 0,
1543  0, 503, 30, 31, 173, 0, 173, 0, 0, 0,
1544  0, 14, 0, 353, 0, 355, 0, 1021, 0, 0,
1545  48, 503, 522, 23, 0, 0, 0, 0, 0, 0,
1546  0, 0, 0, 0, 0, 0, 358, 49, 0, 0,
1547  0, 0, 0, 0, 0, 0, 0, 0, 24, 25,
1548  0, 1035, 0, 0, 0, 0, 0, 0, 0, 30,
1549  31, 0, 0, 56, 1044, 5, 0, 0, 0, 1046,
1550  0, 0, 0, 497, 0, 0, 978, 48, 1057, 59,
1551  60, 14, 144, 0, 62, 0, 0, 983, 0, 144,
1552  0, 0, 0, 23, 49, 0, 5, 0, 0, 0,
1553  0, 0, 600, 0, 353, 1074, 0, 353, 0, 0,
1554  0, 0, 14, 0, 0, 0, 0, 0, 24, 25,
1555  56, 0, 0, 0, 23, 0, 58, 0, 897, 30,
1556  31, 0, 0, 0, 173, 173, 59, 60, 0, 0,
1557  0, 62, 0, 0, 1098, 0, 0, 48, 0, 868,
1558  0, 1026, 503, 0, 1029, 1103, 0, 0, 504, 1032,
1559  30, 31, 0, 0, 49, 0, 0, 355, 0, 0,
1560  0, 353, 0, 0, 0, 0, 0, 0, 48, 507,
1561  0, 664, 0, 0, 0, 0, 205, 0, 358, 0,
1562  56, 665, 0, 0, 0, 49, 58, 0, 0, 0,
1563  666, 0, 0, 5, 0, 1059, 59, 60, 1060, 0,
1564  0, 62, 0, 0, 0, 0, 953, 954, 0, 14,
1565  0, 56, 0, 0, 0, 0, 0, 0, 0, 0,
1566  0, 23, 0, 0, 0, 0, 0, 59, 60, 0,
1567  0, 0, 62, 173, 183, 187, 192, 0, 0, 0,
1568  0, 441, 0, 0, 0, 0, 24, 25, 0, 0,
1569  0, 272, 0, 0, 0, 0, 0, 30, 31, 0,
1570  68, 0, 0, 0, 0, 0, 0, 0, 353, 353,
1571  0, 0, 596, 353, 0, 48, 0, 205, 0, 0,
1572  0, 0, 597, 0, 0, 0, 0, 0, 0, 0,
1573  0, 598, 49, 0, 0, 0, 353, 0, 0, 0,
1574  0, 0, 0, 173, 0, 183, 192, 0, 504, 0,
1575  164, 164, 164, 989, 0, 0, 991, 353, 56, 353,
1576  0, 164, 173, 0, 58, 647, 648, 649, 0, 507,
1577  0, 167, 167, 167, 59, 60, 0, 0, 0, 62,
1578  0, 0, 167, 176, 0, 0, 164, 173, 0, 5,
1579  0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1580  353, 213, 214, 215, 216, 14, 0, 167, 176, 0,
1581  0, 0, 0, 0, 0, 0, 497, 23, 0, 447,
1582  0, 0, 0, 0, 0, 0, 0, 0, 0, 272,
1583  0, 0, 0, 0, 0, 0, 0, 144, 68, 0,
1584  0, 0, 24, 0, 0, 0, 217, 218, 219, 220,
1585  221, 0, 0, 30, 31, 0, 0, 0, 0, 0,
1586  0, 0, 0, 223, 224, 225, 226, 0, 0, 0,
1587  0, 48, 0, 0, 0, 0, 0, 58, 0, 1,
1588  2, 3, 0, 0, 4, 5, 0, 0, 49, 6,
1589  229, 7, 8, 9, 0, 0, 0, 10, 11, 12,
1590  13, 14, 504, 15, 16, 144, 17, 18, 0, 19,
1591  20, 21, 22, 23, 56, 0, 0, 144, 0, 0,
1592  58, 0, 504, 507, 0, 0, 0, 0, 0, 0,
1593  59, 60, 697, 0, 0, 62, 0, 0, 24, 25,
1594  0, 0, 0, 507, 0, 26, 27, 28, 29, 30,
1595  31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1596  41, 42, 43, 44, 45, 46, 47, 48, 0, 0,
1597  0, 0, 0, 0, 0, 676, 0, 0, 0, 0,
1598  205, 0, 0, 0, 49, 677, 0, 5, 0, 0,
1599  0, 0, 0, 0, 666, 50, 51, 144, 0, 0,
1600  0, 0, 0, 14, 0, 0, 52, 53, 54, 55,
1601  56, 57, 0, 0, 0, 23, 58, 0, 0, 0,
1602  0, 0, 0, 0, 0, 0, 59, 60, 61, 0,
1603  0, 62, 63, 64, 0, 0, 0, 0, 0, 0,
1604  24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605  0, 30, 31, 504, 0, 0, 0, 0, 144, 0,
1606  0, 0, 144, 0, 0, 0, 0, 0, 0, 48,
1607  0, 65, 0, 0, 507, 0, 0, 0, 66, 0,
1608  0, 67, 0, 1, 2, 3, 49, 0, 4, 5,
1609  68, 0, 0, 6, 69, 7, 8, 9, 0, 0,
1610  0, 10, 11, 12, 13, 14, 0, 15, 16, 0,
1611  17, 18, 56, 19, 20, 21, 22, 23, 58, 0,
1612  0, 0, 0, 0, 0, 0, 0, 0, 59, 60,
1613  0, 0, 0, 62, 0, 0, 0, 173, 0, 0,
1614  0, 0, 24, 25, 0, 0, 0, 0, 0, 26,
1615  27, 28, 29, 30, 31, 32, 0, 34, 35, 36,
1616  37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1617  0, 48, 0, 65, 0, 0, 0, 0, 0, 0,
1618  0, 0, 0, 67, 0, 0, 0, 0, 49, 0,
1619  0, 0, 68, 0, 0, 0, 0, 0, 0, 50,
1620  51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621  52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
1622  58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623  59, 60, 61, 0, 0, 62, 0, 64, 1, 2,
1624  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
1625  7, 8, 9, 0, 0, 0, 10, 11, 12, 13,
1626  14, 0, 15, 16, 0, 17, 18, 0, 19, 20,
1627  21, 22, 23, 0, 0, 676, 0, 0, 0, 0,
1628  205, 0, 0, 0, 0, 677, 0, 0, 0, 0,
1629  0, 0, 0, 0, 666, 0, 0, 24, 25, 0,
1630  0, 0, 0, 0, 26, 27, 28, 29, 30, 31,
1631  32, 0, 34, 35, 36, 37, 38, 39, 40, 41,
1632  42, 43, 44, 45, 46, 0, 48, 0, 456, 457,
1633  458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
1634  1004, 468, 0, 49, 0, 0, 0, 0, 0, 0,
1635  0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
1636  0, 0, 0, 0, 0, 52, 53, 54, 55, 56,
1637  57, 0, 0, 0, 0, 58, 0, 0, 0, 0,
1638  0, 0, 0, 0, 0, 59, 60, 61, 0, 0,
1639  62, 0, 64, 2, 3, 0, 0, 4, 5, 0,
1640  0, 0, 6, 0, 7, 0, 9, 0, 0, 0,
1641  0, 11, 12, 0, 14, 0, 15, 16, 0, 0,
1642  18, 0, 0, 20, 21, 22, 23, 0, 0, 0,
1643  65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644  67, 0, 0, 0, 0, 0, 0, 0, 0, 68,
1645  0, 24, 25, 0, 0, 0, 0, 0, 26, 27,
1646  28, 29, 30, 31, 32, 0, 34, 35, 36, 37,
1647  38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
1648  48, 0, 456, 457, 458, 459, 460, 461, 462, 463,
1649  464, 465, 466, 467, 0, 468, 0, 49, 0, 0,
1650  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1651  0, 0, 0, 0, 0, 0, 0, 0, 0, 52,
1652  53, 54, 55, 56, 57, 0, 0, 0, 0, 58,
1653  0, 0, 0, 0, 0, 0, 0, 0, 0, 59,
1654  60, 61, 2, 3, 62, 0, 4, 5, 0, 0,
1655  0, 6, 0, 7, 0, 9, 0, 0, 0, 0,
1656  11, 12, 0, 14, 0, 15, 16, 0, 0, 18,
1657  0, 0, 20, 21, 22, 23, 0, 0, 0, 0,
1658  0, 0, 0, 0, 65, 0, 0, 971, 0, 0,
1659  0, 0, 0, 0, 67, 0, 0, 0, 0, 0,
1660  0, 25, 0, 68, 0, 0, 0, 26, 27, 28,
1661  29, 30, 31, 32, 0, 34, 35, 36, 37, 38,
1662  39, 40, 41, 42, 43, 44, 45, 0, 0, 48,
1663  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664  0, 0, 0, 0, 0, 0, 49, 0, 0, 0,
1665  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666  0, 0, 0, 0, 0, 0, 0, 0, 52, 53,
1667  54, 55, 56, 57, 0, 0, 0, 0, 0, 0,
1668  0, 0, 0, 0, 0, 0, 0, 0, 59, 60,
1669  61, 0, 0, 62, 0, 0, 1, 2, 3, 707,
1670  708, 4, 5, 709, 710, 711, 6, 0, 7, 8,
1671  9, 712, 713, 714, 10, 11, 12, 13, 14, 715,
1672  15, 16, 209, 17, 18, 716, 19, 20, 21, 22,
1673  23, 0, 717, 596, 210, 211, 0, 0, 205, 0,
1674  0, 0, 212, 597, 0, 0, 0, 0, 0, 0,
1675  0, 0, 598, 0, 0, 24, 25, 213, 214, 215,
1676  216, 718, 26, 27, 28, 29, 30, 31, 32, 33,
1677  34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
1678  44, 45, 46, 719, 720, 0, 0, 0, 0, 0,
1679  0, 0, 0, 0, 0, 0, 0, 0, 0, 721,
1680  722, 49, 217, 218, 219, 220, 221, 222, 723, 0,
1681  0, 724, 50, 51, 0, 0, 0, 0, 0, 223,
1682  224, 225, 226, 52, 53, 54, 55, 56, 57, 725,
1683  0, 726, 0, 58, 0, 0, 0, 0, 0, 0,
1684  0, 227, 228, 59, 60, 61, 229, 0, 62, 63,
1685  64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1686  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688  0, 0, 0, 0, 0, 0, 0, 0, 230, 0,
1689  0, 0, 0, 0, 0, -431, 727, 231, 232, 233,
1690  234, 235, 236, 1, 2, 3, 707, 708, 4, 5,
1691  709, 710, 711, 6, 0, 7, 8, 9, 712, 713,
1692  714, 10, 11, 12, 13, 14, 715, 15, 16, 209,
1693  17, 18, 716, 19, 20, 21, 22, 23, 0, 717,
1694  0, 210, 211, 0, 0, 0, 0, 0, 0, 212,
1695  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696  0, 0, 24, 25, 213, 214, 215, 216, 0, 26,
1697  27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1698  37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1699  719, 720, 0, 0, 0, 0, 0, 0, 0, 0,
1700  0, 0, 0, 0, 0, 0, 721, 722, 49, 217,
1701  218, 219, 220, 221, 222, 723, 0, 0, 724, 50,
1702  51, 0, 0, 0, 0, 0, 223, 224, 225, 226,
1703  52, 53, 54, 55, 56, 57, 725, 0, 726, 0,
1704  58, 0, 0, 0, 0, 0, 0, 0, 227, 228,
1705  59, 60, 61, 229, 0, 62, 63, 64, 0, 0,
1706  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709  0, 0, 0, 0, 0, 230, 0, 0, 0, 0,
1710  0, 0, -431, 866, 231, 232, 233, 234, 235, 236,
1711  1, 2, 3, 707, 708, 4, 5, 709, 710, 711,
1712  6, 0, 7, 8, 9, 712, 713, 714, 10, 11,
1713  12, 13, 14, 715, 15, 16, 209, 17, 18, 716,
1714  19, 20, 21, 22, 23, 0, 717, 0, 210, 211,
1715  0, 0, 0, 0, 0, 0, 212, 0, 0, 0,
1716  0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1717  25, 213, 214, 215, 216, 0, 26, 27, 28, 29,
1718  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1719  40, 41, 42, 43, 44, 45, 46, 719, 720, 0,
1720  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721  0, 0, 0, 721, 722, 49, 217, 218, 219, 220,
1722  221, 222, 723, 0, 0, 724, 50, 51, 0, 0,
1723  0, 0, 0, 223, 224, 225, 226, 52, 53, 54,
1724  55, 56, 57, 725, 0, 726, 0, 58, 0, 0,
1725  0, 0, 0, 0, 0, 227, 228, 59, 60, 61,
1726  229, 0, 62, 63, 64, 0, 0, 0, 0, 0,
1727  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730  0, 0, 230, 0, 0, 0, 0, 0, 0, -431,
1731  0, 231, 232, 233, 234, 235, 236, 1, 2, 3,
1732  0, 0, 4, 5, 0, 0, 0, 6, 0, 7,
1733  8, 9, 0, 0, 0, 10, 11, 12, 13, 14,
1734  0, 15, 16, 209, 17, 18, 0, 19, 20, 21,
1735  22, 23, 0, 0, 0, 210, 211, 0, 0, 0,
1736  0, 0, 0, 212, 0, 0, 0, 0, 0, 0,
1737  0, 0, 0, 0, 0, 0, 24, 25, 213, 214,
1738  215, 216, 0, 26, 27, 28, 29, 30, 31, 32,
1739  33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
1740  43, 44, 45, 46, 0, 48, 0, 0, 0, 0,
1741  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742  0, 0, 49, 217, 218, 219, 220, 221, 222, 0,
1743  0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
1744  223, 224, 225, 226, 52, 53, 54, 55, 56, 57,
1745  0, 0, 0, 0, 58, 0, 0, 0, 0, 0,
1746  0, 0, 227, 228, 59, 60, 61, 229, 1, 62,
1747  63, 64, 0, 0, 5, 0, 0, 0, 0, 0,
1748  0, 8, 0, 0, 0, 0, 10, 0, 0, 13,
1749  14, 0, 0, 0, 209, 17, 0, 0, 19, 0,
1750  0, 0, 23, 0, 0, 0, 210, 211, 0, 230,
1751  0, 0, 0, 0, 212, 0, 0, 0, 231, 232,
1752  233, 234, 235, 236, 0, 0, 0, 24, 0, 213,
1753  214, 215, 216, 0, 0, 0, 0, 0, 30, 31,
1754  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755  0, 0, 0, 0, 46, 0, 48, 0, 0, 0,
1756  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757  0, 0, 0, 49, 217, 218, 219, 220, 221, 222,
1758  0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
1759  0, 223, 224, 225, 226, 0, 0, 0, 0, 56,
1760  0, 0, 0, 0, 0, 58, 0, 0, 0, 0,
1761  0, 0, 0, 227, 228, 59, 60, 1, 229, 0,
1762  62, 0, 64, 5, 0, 0, 0, 0, 0, 0,
1763  8, 0, 0, 0, 0, 10, 0, 0, 13, 14,
1764  0, 0, 0, 209, 17, 0, 0, 19, 0, 0,
1765  0, 23, 0, 0, 0, 210, 211, 0, 0, 0,
1766  230, 0, 0, 212, 0, 0, 351, 0, 0, 231,
1767  352, 233, 234, 235, 236, 0, 24, 0, 213, 214,
1768  215, 216, 0, 0, 0, 0, 1, 30, 31, 0,
1769  0, 0, 5, 0, 0, 0, 0, 0, 0, 8,
1770  0, 0, 0, 46, 10, 48, 0, 13, 14, 0,
1771  0, 0, 0, 17, 0, 0, 19, 0, 0, 0,
1772  23, 0, 49, 217, 218, 219, 220, 221, 222, 0,
1773  0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
1774  223, 224, 225, 226, 0, 0, 209, 0, 56, 0,
1775  0, 0, 0, 0, 58, 0, 30, 31, 210, 211,
1776  0, 0, 227, 228, 59, 60, 212, 229, 0, 62,
1777  0, 64, 46, 0, 0, 0, 0, 0, 0, 24,
1778  0, 213, 214, 215, 216, 0, 0, 0, 0, 0,
1779  0, 49, 0, 0, 0, 0, 0, 0, 0, 0,
1780  0, 0, 50, 51, 0, 0, 0, 0, 0, 230,
1781  0, 0, 0, 0, 0, 528, 0, 56, 231, 232,
1782  233, 234, 235, 236, 0, 0, 217, 218, 219, 220,
1783  221, 222, 0, 59, 60, 0, 0, 0, 0, 0,
1784  64, 0, 0, 223, 224, 225, 226, 209, 0, 0,
1785  0, 0, 0, 0, 0, 0, 0, 58, 0, 210,
1786  211, 0, 0, 0, 0, 227, 228, 212, 0, 0,
1787  229, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788  24, 0, 213, 214, 215, 216, 0, 0, 0, 0,
1789  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791  0, 0, 230, 0, 0, 0, 0, 0, 0, 0,
1792  0, 231, 232, 233, 234, 235, 236, 217, 218, 219,
1793  220, 221, 222, 0, 0, 850, 0, 0, 0, 0,
1794  0, 0, 0, 0, 223, 224, 225, 226, 209, 0,
1795  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
1796  210, 211, 0, 0, 0, 0, 227, 228, 212, 0,
1797  0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
1798  0, 24, 25, 213, 214, 215, 216, 0, 0, 0,
1799  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801  0, 0, 0, 230, 0, 0, 0, 882, 883, 0,
1802  614, 0, 231, 232, 233, 234, 235, 236, 217, 218,
1803  219, 220, 221, 222, 0, 884, 0, 0, 0, 0,
1804  0, 0, 0, 0, 0, 223, 224, 225, 226, 209,
1805  0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
1806  0, 210, 211, 0, 0, 0, 0, 227, 228, 212,
1807  0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
1808  0, 0, 24, 25, 213, 214, 215, 216, 0, 0,
1809  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811  0, 0, 0, 0, 230, 0, 0, 0, 764, 765,
1812  0, 614, 964, 231, 232, 233, 234, 235, 236, 217,
1813  218, 219, 220, 221, 222, 0, 0, 0, 0, 0,
1814  0, 0, 0, 0, 0, 0, 223, 224, 225, 226,
1815  209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1816  58, 0, 210, 211, 0, 0, 0, 0, 227, 228,
1817  212, 0, 0, 229, 0, 0, 0, 0, 0, 0,
1818  0, 0, 0, 24, 25, 213, 214, 215, 216, 0,
1819  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1821  0, 0, 0, 0, 0, 230, 0, 0, 0, 764,
1822  765, 0, 614, 992, 231, 232, 233, 234, 235, 236,
1823  217, 218, 219, 220, 221, 222, 0, 0, 0, 0,
1824  0, 0, 0, 0, 0, 0, 0, 223, 224, 225,
1825  226, 209, 0, 0, 0, 0, 0, 0, 0, 0,
1826  0, 58, 0, 210, 211, 0, 0, 0, 0, 227,
1827  228, 212, 0, 0, 229, 0, 0, 0, 0, 0,
1828  0, 0, 0, 0, 24, 0, 213, 214, 215, 216,
1829  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1830  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831  0, 0, 0, 48, 0, 0, 230, 0, 0, 0,
1832  764, 765, 0, 614, 0, 231, 232, 233, 234, 235,
1833  236, 217, 218, 219, 220, 221, 222, 0, 0, 0,
1834  0, 0, 0, 0, 0, 0, 0, 0, 223, 224,
1835  225, 226, 209, 0, 0, 0, 0, 0, 0, 0,
1836  0, 0, 58, 0, 210, 211, 0, 0, 0, 0,
1837  227, 228, 212, 0, 0, 229, 0, 62, 0, 0,
1838  0, 0, 0, 0, 0, 24, 0, 213, 214, 215,
1839  216, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841  0, 0, 0, 0, 48, 0, 0, 230, 0, 0,
1842  0, 0, 0, 0, -431, 0, 231, 232, 233, 234,
1843  235, 236, 217, 218, 219, 220, 221, 222, 0, 0,
1844  0, 0, 0, 0, 0, 0, 0, 0, 0, 223,
1845  224, 225, 226, 209, 0, 0, 0, 0, 0, 0,
1846  0, 0, 0, 58, 0, 210, 211, 0, 0, 0,
1847  0, 227, 228, 212, 0, 0, 229, 0, 62, 0,
1848  0, 0, 0, 0, 0, 0, 24, 0, 213, 214,
1849  215, 216, 0, 0, 0, 0, 0, 0, 0, 0,
1850  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851  0, 0, 0, 0, 0, 0, 0, 0, 230, 0,
1852  0, 0, 0, 0, 0, 0, 0, 231, 232, 233,
1853  234, 235, 236, 217, 218, 219, 220, 221, 222, 0,
1854  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855  223, 224, 225, 226, 209, 0, 0, 0, 0, 0,
1856  0, 0, 0, 0, 58, 0, 210, 211, 0, 0,
1857  0, 0, 227, 228, 212, 0, 0, 229, 0, 0,
1858  0, 0, 0, 0, 0, 0, 0, 24, 0, 213,
1859  214, 215, 216, 0, 0, 0, 0, 0, 0, 0,
1860  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861  0, 0, 0, 0, 0, 0, 0, 0, 0, 230,
1862  0, 0, 0, 0, 0, 526, 0, 0, 231, 232,
1863  233, 234, 235, 236, 217, 218, 219, 220, 221, 222,
1864  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865  0, 223, 224, 225, 226, 209, 0, 0, 0, 0,
1866  0, 0, 0, 0, 0, 58, 0, 210, 211, 0,
1867  0, 0, 0, 227, 228, 212, 0, 0, 229, 0,
1868  0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
1869  213, 214, 215, 216, 0, 0, 0, 0, 0, 0,
1870  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872  230, 557, 0, 0, 0, 0, 0, 0, 0, 231,
1873  232, 233, 234, 235, 236, 217, 218, 219, 220, 221,
1874  222, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875  0, 0, 223, 224, 225, 226, 209, 0, 0, 0,
1876  0, 0, 0, 0, 0, 0, 58, 0, 210, 211,
1877  0, 0, 0, 0, 227, 228, 212, 0, 0, 229,
1878  0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
1879  0, 213, 214, 215, 216, 0, 0, 0, 0, 0,
1880  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882  0, 230, 0, 0, 593, 0, 0, 0, 0, 0,
1883  231, 232, 233, 234, 235, 236, 217, 218, 219, 220,
1884  221, 222, 0, 0, 0, 0, 0, 0, 0, 0,
1885  0, 0, 0, 223, 224, 225, 226, 209, 0, 0,
1886  0, 0, 0, 0, 0, 0, 0, 58, 0, 210,
1887  211, 0, 0, 0, 0, 227, 228, 212, 0, 0,
1888  229, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889  24, 0, 213, 214, 215, 216, 0, 0, 0, 0,
1890  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892  0, 0, 230, 0, 0, 0, 0, 0, 0, 614,
1893  0, 231, 232, 233, 234, 235, 236, 217, 218, 219,
1894  220, 221, 222, 0, 0, 0, 0, 0, 0, 0,
1895  0, 0, 0, 0, 223, 224, 225, 226, 209, 0,
1896  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
1897  210, 211, 0, 0, 0, 0, 227, 228, 212, 0,
1898  0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
1899  0, 24, 0, 213, 214, 215, 216, 0, 0, 0,
1900  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902  0, 0, 0, 230, 0, 0, 0, 0, 0, 685,
1903  0, 0, 231, 232, 233, 234, 235, 236, 217, 218,
1904  219, 220, 221, 222, 0, 0, 0, 0, 0, 0,
1905  0, 0, 0, 0, 0, 223, 224, 225, 226, 209,
1906  0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
1907  0, 210, 211, 0, 0, 0, 0, 227, 228, 212,
1908  0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
1909  0, 0, 24, 25, 213, 214, 215, 216, 0, 0,
1910  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1911  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1912  0, 0, 0, 0, 230, 0, 0, 0, 0, 0,
1913  0, 705, 0, 231, 232, 233, 234, 235, 236, 217,
1914  218, 219, 220, 221, 222, 0, 0, 0, 0, 0,
1915  0, 0, 0, 0, 0, 0, 223, 224, 225, 226,
1916  209, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1917  58, 0, 210, 211, 0, 0, 0, 0, 227, 228,
1918  212, 0, 0, 229, 0, 0, 0, 0, 0, 0,
1919  0, 0, 0, 24, 0, 213, 214, 215, 216, 0,
1920  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1921  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1922  0, 0, 0, 0, 0, 230, 0, 0, 0, 0,
1923  0, 0, 0, 0, 231, 232, 233, 234, 235, 236,
1924  217, 218, 219, 220, 221, 222, 0, 0, 0, 0,
1925  0, 0, 0, 0, 0, 0, 0, 223, 224, 225,
1926  226, 209, 0, 0, 0, 0, 0, 0, 0, 0,
1927  0, 58, 0, 210, 211, 0, 0, 0, 0, 227,
1928  228, 212, 0, 0, 229, 0, 0, 0, 0, 0,
1929  0, 0, 0, 0, 24, 0, 213, 214, 215, 216,
1930  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1931  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1932  0, 0, 0, 0, 0, 0, 230, 0, 0, 0,
1933  0, 0, 0, 0, 0, 231, 232, 233, 234, 235,
1934  236, 217, 218, 219, 220, 221, 222, 0, 0, 0,
1935  0, 0, 0, 0, 0, 0, 0, 0, 223, 224,
1936  225, 226, 209, 0, 0, 0, 0, 0, 0, 0,
1937  0, 0, 58, 0, 210, 211, 0, 0, 0, 0,
1938  227, 228, 212, 0, 0, 229, 0, 0, 0, 0,
1939  0, 0, 0, 0, 0, 24, 209, 213, 214, 215,
1940  216, 0, 0, 0, 0, 0, 0, 0, 210, 211,
1941  0, 0, 0, 0, 0, 0, 212, 0, 0, 0,
1942  0, 0, 0, 0, 0, 0, 0, 230, 0, 24,
1943  0, 213, 214, 215, 216, 0, 231, 531, 233, 234,
1944  235, 236, 217, 218, 219, 220, 221, 222, 0, 0,
1945  0, 0, 0, 0, 0, 0, 0, 0, 0, 223,
1946  224, 225, 226, 0, 0, 0, 0, 0, 0, 0,
1947  0, 0, 0, 58, 0, 0, 217, 218, 219, 220,
1948  221, 222, 0, 0, 0, 0, 229, 0, 0, 0,
1949  0, 0, 0, 223, 224, 225, 226, 209, 0, 0,
1950  0, 0, 0, 0, 0, 0, 0, 58, 0, 210,
1951  211, 0, 0, 0, 0, 0, 0, 212, 0, 0,
1952  229, 0, 0, 0, 0, 0, 0, 0, 361, 0,
1953  24, 0, 213, 214, 215, 216, 0, 231, 232, 233,
1954  234, 235, 236, 0, 0, 0, 0, 0, 0, 0,
1955  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1956  0, 0, 363, 0, 0, 0, 0, 0, 0, 0,
1957  0, 231, 232, 233, 234, 235, 236, 217, 218, 219,
1958  220, 221, 222, 0, 0, 0, 0, 0, 0, 0,
1959  0, 0, 0, 0, 223, 224, 225, 226, 0, 0,
1960  0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
1961  0, 0, 0, 0, 0, 0, 0, 0, 1, 2,
1962  3, 229, 0, 4, 5, 0, 0, 0, 6, 0,
1963  7, 8, 9, 0, 0, 0, 10, 11, 12, 13,
1964  14, 0, 15, 16, 0, 17, 18, 0, 19, 20,
1965  21, 22, 23, 0, 0, 0, 0, 0, 0, 0,
1966  0, 0, 0, 373, 0, 0, 0, 0, 0, 0,
1967  0, 0, 231, 232, 233, 234, 235, 236, 25, 0,
1968  0, 0, 0, 0, 26, 27, 28, 29, 30, 31,
1969  32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1970  42, 43, 44, 45, 46, 0, 48, 0, 0, 0,
1971  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1972  0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
1973  0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
1974  0, 0, 0, 0, 0, 52, 53, 54, 55, 56,
1975  57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1976  0, 0, 0, 0, 0, 59, 60, 61, 0, 0,
1977  62, 63, 64, 1, 2, 3, 0, 0, 4, 5,
1978  0, 0, 0, 6, 0, 7, 8, 9, 0, 0,
1979  0, 10, 11, 12, 13, 14, 0, 15, 16, 0,
1980  17, 18, 0, 19, 20, 21, 22, 23, 0, 0,
1981  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1982  0, 826, 0, 0, 0, 0, 0, 0, 0, 0,
1983  0, 0, 0, 25, 0, 0, 0, 0, 0, 26,
1984  27, 28, 29, 30, 31, 32, 0, 34, 35, 36,
1985  37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
1986  0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
1987  0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
1988  0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
1989  51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1990  52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
1991  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1992  59, 60, 61, 0, 0, 62, 0, 64, 1, 2,
1993  3, 0, 0, 4, 5, 0, 0, 0, 6, 0,
1994  7, 8, 9, 0, 0, 0, 10, 11, 12, 13,
1995  14, 0, 15, 16, 0, 17, 18, 0, 19, 20,
1996  21, 22, 23, 0, 0, 0, 0, 0, 0, 0,
1997  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1998  0, 0, 0, 0, 0, 0, 0, 0, 25, 0,
1999  0, 0, 0, 0, 26, 27, 28, 29, 30, 31,
2000  32, 0, 34, 35, 36, 37, 38, 39, 40, 41,
2001  42, 43, 44, 45, 46, 0, 48, 0, 0, 0,
2002  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2003  0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
2004  0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
2005  0, 0, 0, 0, 0, 52, 53, 54, 55, 56,
2006  57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2007  0, 0, 0, 0, 0, 59, 60, 61, 0, 0,
2008  62, 0, 64, 1, 2, 3, 0, 0, 4, 5,
2009  0, 0, 0, 6, 0, 7, 8, 9, 0, 0,
2010  0, 10, 11, 12, 13, 14, 0, 15, 16, 0,
2011  17, 18, 0, 19, 20, 21, 22, 23, 0, 0,
2012  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2013  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2014  0, 0, 0, 25, 0, 0, 0, 0, 0, 26,
2015  27, 28, 29, 30, 31, 32, 0, 34, 35, 36,
2016  37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2017  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2018  0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
2019  0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2020  51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2021  52, 53, 54, 55, 56, 57, 0, 0, 0, 0,
2022  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2023  59, 60, 61, 1, 2, 3, 0, 64, 4, 5,
2024  0, 0, 0, 6, 0, 7, 8, 9, 0, 0,
2025  0, 10, 11, 12, 13, 14, 0, 15, 16, 0,
2026  17, 18, 0, 19, 20, 21, 22, 23, 0, 0,
2027  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2028  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2029  0, 0, 0, 25, 0, 0, 0, 0, 0, 26,
2030  27, 28, 29, 30, 31, 0, 0, 34, 35, 36,
2031  37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2032  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2033  0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
2034  0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2035  51, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2036  0, 53, 54, 55, 56, 57, 0, 0, 0, 0,
2037  0, 0, 1, 2, 3, 0, 0, 4, 5, 0,
2038  59, 60, 6, 0, 0, 8, 9, 64, 0, 0,
2039  10, 11, 12, 13, 14, 0, 15, 16, 0, 17,
2040  0, 0, 19, 0, 21, 22, 23, 0, 0, 0,
2041  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2042  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043  0, 0, 0, 0, 0, 0, 0, 0, 26, 27,
2044  28, 29, 30, 31, 0, 0, 34, 35, 36, 37,
2045  38, 39, 40, 41, 42, 43, 44, 45, 46, 0,
2046  0, 0, 0, 2, 3, 0, 0, 4, 5, 0,
2047  0, 0, 6, 0, 7, 0, 9, 49, 0, 0,
2048  0, 11, 12, 0, 14, 0, 15, 16, 50, 51,
2049  18, 0, 0, 20, 21, 22, 23, 0, 0, 0,
2050  53, 54, 55, 56, 57, 0, 0, 0, 0, 0,
2051  0, 0, 0, 0, 0, 0, 0, 0, 0, 59,
2052  60, 0, 25, 0, 0, 0, 64, 0, 26, 27,
2053  28, 29, 30, 31, 32, 0, 34, 35, 36, 37,
2054  38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
2055  48, 0, 0, 2, 3, 0, 0, 4, 5, 0,
2056  0, 0, 6, 0, 7, 0, 9, 49, 0, 0,
2057  0, 11, 12, 0, 14, 0, 15, 16, 0, 0,
2058  18, 0, 0, 20, 21, 22, 23, 0, 0, 52,
2059  53, 54, 55, 56, 57, 0, 0, 0, 0, 0,
2060  0, 0, 0, 0, 0, 0, 0, 0, 0, 59,
2061  60, 61, 25, 0, 62, 0, 0, 0, 26, 27,
2062  28, 29, 30, 31, 32, 0, 34, 35, 36, 37,
2063  38, 39, 40, 41, 42, 43, 44, 45, 0, 0,
2064  2, 3, 0, 0, 4, 5, 0, 0, 0, 6,
2065  0, 0, 0, 9, 0, 0, 0, 49, 11, 12,
2066  0, 14, 0, 15, 16, 0, 0, 0, 0, 0,
2067  0, 21, 22, 23, 0, 0, 0, 0, 0, 52,
2068  53, 54, 55, 56, 57, 0, 0, 0, 0, 0,
2069  0, 0, 0, 0, 0, 0, 0, 0, 0, 59,
2070  60, 61, 0, 0, 0, 26, 27, 28, 29, 30,
2071  31, 0, 0, 34, 35, 36, 37, 38, 39, 40,
2072  41, 42, 43, 44, 45, 0, 0, 0, 0, 0,
2073  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2074  0, 0, 0, 0, 49, 0, 0, 0, 0, 0,
2075  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2076  0, 0, 0, 0, 0, 0, 0, 53, 54, 55,
2077  56, 57, 0, 0, 0, 0, 0, 0, 0, 0,
2078  0, 0, 0, 0, 0, 0, 59, 60
2079 };
2080 
2081 static const yytype_int16 yycheck[] =
2082 {
2083  0, 119, 212, 345, 473, 0, 79, 80, 0, 454,
2084  83, 84, 67, 117, 116, 508, 116, 197, 79, 80,
2085  128, 853, 143, 203, 433, 327, 51, 50, 0, 116,
2086  0, 91, 200, 33, 45, 46, 25, 200, 205, 230,
2087  79, 80, 145, 161, 489, 79, 80, 68, 51, 212,
2088  880, 65, 195, 269, 40, 11, 33, 90, 91, 67,
2089  519, 520, 521, 522, 115, 65, 25, 67, 68, 65,
2090  25, 62, 0, 62, 63, 51, 636, 77, 78, 79,
2091  80, 132, 62, 1063, 91, 195, 137, 138, 519, 520,
2092  521, 522, 116, 117, 67, 155, 62, 63, 928, 197,
2093  77, 78, 116, 62, 63, 203, 106, 62, 63, 79,
2094  80, 106, 197, 216, 106, 1095, 116, 117, 195, 19,
2095  116, 144, 155, 392, 195, 62, 63, 396, 40, 41,
2096  42, 202, 348, 218, 106, 91, 106, 37, 195, 67,
2097  68, 664, 202, 143, 90, 91, 116, 195, 155, 140,
2098  269, 79, 80, 676, 154, 200, 347, 499, 279, 83,
2099  140, 85, 269, 87, 88, 89, 998, 0, 272, 271,
2100  361, 271, 363, 198, 140, 279, 278, 340, 106, 230,
2101  197, 202, 373, 485, 201, 487, 488, 200, 597, 117,
2102  357, 278, 200, 360, 197, 91, 142, 143, 201, 155,
2103  200, 212, 213, 140, 67, 664, 665, 196, 197, 155,
2104  196, 269, 212, 199, 200, 143, 196, 676, 677, 62,
2105  63, 197, 197, 543, 0, 201, 154, 200, 548, 348,
2106  200, 791, 1064, 142, 143, 795, 62, 196, 197, 197,
2107  7, 348, 212, 218, 11, 197, 897, 271, 272, 900,
2108  664, 593, 206, 207, 278, 279, 202, 271, 195, 155,
2109  218, 212, 676, 197, 278, 91, 218, 137, 205, 139,
2110  91, 271, 272, 106, 274, 271, 62, 214, 278, 279,
2111  195, 218, 278, 195, 218, 200, 197, 199, 200, 195,
2112  348, 67, 508, 202, 200, 62, 63, 140, 195, 269,
2113  195, 271, 198, 79, 80, 142, 143, 218, 278, 68,
2114  361, 197, 363, 782, 140, 315, 197, 368, 195, 370,
2115  813, 372, 373, 974, 62, 63, 977, 772, 0, 155,
2116  106, 494, 218, 218, 155, 156, 142, 218, 315, 441,
2117  340, 117, 67, 119, 272, 447, 274, 447, 757, 349,
2118  195, 279, 195, 197, 140, 350, 196, 201, 350, 818,
2119  433, 434, 205, 822, 203, 202, 62, 143, 486, 195,
2120  340, 214, 433, 140, 143, 218, 152, 197, 348, 205,
2121  350, 201, 203, 159, 119, 161, 197, 818, 214, 508,
2122  201, 822, 392, 195, 433, 195, 396, 218, 200, 433,
2123  197, 508, 140, 205, 201, 377, 378, 377, 378, 195,
2124  196, 753, 214, 200, 200, 519, 520, 441, 194, 205,
2125  196, 195, 392, 447, 693, 195, 396, 441, 214, 205,
2126  503, 197, 505, 447, 879, 201, 269, 510, 511, 884,
2127  195, 441, 503, 195, 140, 441, 662, 447, 521, 522,
2128  508, 447, 197, 912, 195, 196, 201, 195, 195, 200,
2129  521, 522, 200, 433, 503, 9, 682, 205, 197, 503,
2130  204, 441, 201, 546, 547, 197, 214, 447, 195, 201,
2131  643, 25, 521, 522, 786, 546, 547, 521, 522, 25,
2132  214, 654, 655, 37, 494, 764, 272, 215, 274, 195,
2133  196, 970, 502, 279, 200, 613, 697, 546, 547, 205,
2134  286, 721, 546, 547, 514, 348, 49, 350, 214, 519,
2135  520, 521, 522, 196, 494, 502, 62, 63, 64, 73,
2136  74, 67, 723, 503, 91, 726, 196, 514, 508, 196,
2137  510, 708, 597, 662, 544, 545, 546, 547, 324, 325,
2138  217, 521, 522, 553, 205, 662, 62, 63, 721, 210,
2139  211, 665, 664, 682, 108, 43, 44, 544, 545, 541,
2140  542, 541, 542, 789, 350, 682, 546, 547, 196, 195,
2141  196, 357, 700, 553, 200, 195, 510, 511, 512, 1058,
2142  134, 519, 520, 521, 522, 195, 196, 813, 155, 156,
2143  200, 377, 378, 196, 662, 213, 150, 151, 269, 196,
2144  665, 115, 197, 882, 614, 217, 195, 196, 546, 547,
2145  620, 200, 677, 195, 682, 202, 130, 201, 711, 133,
2146  134, 135, 202, 137, 140, 798, 757, 47, 48, 690,
2147  691, 692, 202, 643, 614, 196, 203, 196, 197, 918,
2148  664, 920, 197, 198, 654, 655, 739, 433, 196, 197,
2149  660, 218, 676, 663, 664, 665, 666, 196, 664, 196,
2150  789, 196, 197, 643, 202, 508, 676, 677, 196, 197,
2151  676, 196, 789, 660, 654, 655, 19, 348, 683, 195,
2152  72, 683, 662, 693, 813, 196, 197, 818, 37, 205,
2153  195, 822, 196, 197, 218, 705, 813, 195, 214, 195,
2154  486, 711, 682, 683, 818, 97, 209, 210, 211, 101,
2155  195, 721, 104, 693, 1066, 195, 230, 503, 195, 222,
2156  202, 789, 196, 197, 944, 705, 202, 665, 666, 739,
2157  907, 711, 200, 713, 200, 521, 522, 196, 197, 677,
2158  202, 721, 196, 197, 196, 813, 947, 196, 949, 950,
2159  197, 844, 196, 930, 764, 541, 542, 875, 201, 739,
2160  546, 547, 196, 197, 156, 116, 117, 553, 201, 0,
2161  162, 944, 865, 165, 166, 196, 168, 196, 197, 62,
2162  172, 196, 955, 197, 764, 177, 196, 197, 798, 181,
2163  182, 197, 184, 185, 971, 196, 197, 189, 190, 191,
2164  192, 193, 197, 195, 197, 197, 196, 197, 818, 789,
2165  196, 597, 822, 197, 897, 196, 197, 196, 798, 662,
2166  196, 197, 67, 941, 196, 197, 897, 67, 416, 417,
2167  418, 419, 196, 813, 844, 196, 197, 508, 931, 682,
2168  683, 959, 1015, 223, 224, 225, 226, 361, 897, 363,
2169  196, 197, 196, 897, 217, 865, 196, 140, 203, 373,
2170  91, 202, 93, 197, 844, 412, 413, 420, 421, 1070,
2171  880, 196, 882, 414, 415, 106, 427, 428, 202, 665,
2172  818, 1054, 218, 397, 822, 865, 896, 897, 218, 114,
2173  900, 677, 902, 118, 198, 195, 1014, 683, 62, 63,
2174  880, 1019, 882, 195, 90, 91, 999, 1000, 918, 195,
2175  920, 195, 195, 699, 700, 429, 141, 897, 928, 1092,
2176  218, 931, 205, 62, 203, 711, 198, 1045, 197, 218,
2177  198, 214, 1050, 196, 944, 196, 196, 196, 918, 197,
2178  920, 1034, 198, 174, 175, 955, 789, 1040, 928, 198,
2179  198, 931, 344, 739, 934, 1073, 142, 143, 1076, 897,
2180  203, 196, 900, 196, 944, 218, 196, 203, 139, 155,
2181  813, 757, 1065, 217, 203, 955, 140, 227, 228, 196,
2182  196, 231, 232, 233, 234, 235, 236, 196, 196, 999,
2183  1000, 662, 196, 198, 62, 63, 198, 197, 9, 39,
2184  203, 140, 195, 218, 195, 1015, 68, 203, 1101, 198,
2185  195, 682, 196, 68, 25, 203, 202, 195, 195, 999,
2186  1000, 218, 197, 91, 1034, 198, 37, 196, 198, 141,
2187  1040, 195, 818, 198, 205, 1015, 822, 196, 269, 196,
2188  203, 205, 195, 201, 1054, 197, 218, 198, 14, 217,
2189  214, 62, 63, 195, 1034, 1065, 195, 196, 844, 196,
2190  1040, 200, 73, 74, 218, 201, 205, 197, 218, 62,
2191  63, 195, 140, 196, 1054, 214, 1086, 197, 218, 865,
2192  91, 196, 1092, 308, 195, 1065, 196, 155, 926, 422,
2193  425, 1101, 423, 357, 426, 345, 424, 108, 299, 286,
2194  199, 1032, 352, 510, 618, 619, 1086, 624, 795, 902,
2195  791, 897, 1092, 900, 628, 629, 977, 348, 789, 350,
2196  643, 1101, 510, 134, 798, 683, 705, 195, 705, 140,
2197  663, 934, 1086, 934, 719, 941, 1014, 205, 1050, 150,
2198  151, 1076, 813, 1092, 155, 931, 214, 140, 934, 52,
2199  53, 54, 55, 56, 57, 58, 59, 60, 61, 409,
2200  410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
2201  420, 421, 422, 423, 424, 425, 426, 427, 428, 106,
2202  682, 695, 696, 697, 195, 117, 357, 348, 596, 360,
2203  -1, 596, -1, -1, 205, -1, -1, -1, 369, 713,
2204  371, 715, 195, 214, -1, 198, -1, 432, 433, -1,
2205  381, -1, 205, 999, 1000, -1, -1, -1, 443, 444,
2206  -1, 214, -1, -1, 395, -1, -1, 398, 399, 400,
2207  401, 402, 403, 404, 405, 406, 407, 408, -1, -1,
2208  -1, -1, -1, 62, 636, -1, 638, -1, 1034, 499,
2209  642, 765, -1, -1, 1040, -1, 648, 649, -1, 651,
2210  431, 653, -1, -1, 656, 657, 658, -1, -1, -1,
2211  -1, -1, 3, -1, -1, -1, 668, 508, -1, 1065,
2212  -1, 531, 674, 454, -1, 16, 678, -1, 680, -1,
2213  21, -1, -1, 24, -1, -1, -1, -1, -1, 30,
2214  -1, 551, 33, -1, -1, -1, -1, 67, -1, -1,
2215  -1, -1, 483, -1, 217, 1101, -1, -1, 489, 79,
2216  80, 140, -1, 83, 84, 85, 86, 87, 88, 89,
2217  90, -1, -1, -1, -1, 849, -1, 729, 852, -1,
2218  79, 80, -1, 593, 83, 84, 85, 86, 87, 88,
2219  89, 90, -1, 92, -1, 94, -1, 117, 89, -1,
2220  -1, -1, -1, -1, -1, -1, -1, -1, 9, 883,
2221  -1, 596, 597, -1, -1, -1, 195, -1, -1, 198,
2222  605, -1, -1, 143, 25, -1, 205, -1, 119, 120,
2223  -1, -1, -1, -1, -1, 214, 37, -1, -1, 791,
2224  -1, -1, -1, 795, -1, 797, -1, 921, -1, -1,
2225  -1, -1, -1, -1, 806, 807, -1, -1, -1, -1,
2226  -1, -1, -1, -1, -1, 9, 157, -1, -1, -1,
2227  -1, 662, 73, 74, 194, -1, 196, -1, -1, -1,
2228  -1, 25, -1, 614, -1, 205, -1, 961, -1, -1,
2229  91, 682, 683, 37, -1, -1, -1, -1, -1, -1,
2230  -1, -1, -1, -1, -1, -1, 205, 108, -1, -1,
2231  -1, -1, -1, -1, -1, -1, -1, -1, 62, 63,
2232  -1, 995, -1, -1, -1, -1, -1, -1, -1, 73,
2233  74, -1, -1, 134, 1008, 9, -1, -1, -1, 1013,
2234  -1, -1, -1, 753, -1, -1, 898, 91, 1022, 150,
2235  151, 25, 272, -1, 155, -1, -1, 909, -1, 279,
2236  -1, -1, -1, 37, 108, -1, 9, -1, -1, -1,
2237  -1, -1, 757, -1, 705, 1049, -1, 708, -1, -1,
2238  -1, -1, 25, -1, -1, -1, -1, -1, 62, 63,
2239  134, -1, -1, -1, 37, -1, 140, -1, 789, 73,
2240  74, -1, -1, -1, 324, 325, 150, 151, -1, -1,
2241  -1, 155, -1, -1, 1088, -1, -1, 91, -1, 750,
2242  -1, 973, 813, -1, 976, 1099, -1, -1, 348, 981,
2243  73, 74, -1, -1, 108, -1, -1, 357, -1, -1,
2244  -1, 772, -1, -1, -1, -1, -1, -1, 91, 348,
2245  -1, 195, -1, -1, -1, -1, 200, -1, 357, -1,
2246  134, 205, -1, -1, -1, 108, 140, -1, -1, -1,
2247  214, -1, -1, 9, -1, 1027, 150, 151, 1030, -1,
2248  -1, 155, -1, -1, -1, -1, 871, 872, -1, 25,
2249  -1, 134, -1, -1, -1, -1, -1, -1, -1, -1,
2250  -1, 37, -1, -1, -1, -1, -1, 150, 151, -1,
2251  -1, -1, 155, 433, 434, 435, 436, -1, -1, -1,
2252  -1, 195, -1, -1, -1, -1, 62, 63, -1, -1,
2253  -1, 205, -1, -1, -1, -1, -1, 73, 74, -1,
2254  214, -1, -1, -1, -1, -1, -1, -1, 879, 880,
2255  -1, -1, 195, 884, -1, 91, -1, 200, -1, -1,
2256  -1, -1, 205, -1, -1, -1, -1, -1, -1, -1,
2257  -1, 214, 108, -1, -1, -1, 907, -1, -1, -1,
2258  -1, -1, -1, 503, -1, 505, 506, -1, 508, -1,
2259  510, 511, 512, 924, -1, -1, 927, 928, 134, 930,
2260  -1, 521, 522, -1, 140, 504, 505, 506, -1, 508,
2261  -1, 510, 511, 512, 150, 151, -1, -1, -1, 155,
2262  -1, -1, 521, 522, -1, -1, 546, 547, -1, 9,
2263  -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
2264  971, 64, 65, 66, 67, 25, -1, 546, 547, -1,
2265  -1, -1, -1, -1, -1, -1, 1066, 37, -1, 195,
2266  -1, -1, -1, -1, -1, -1, -1, -1, -1, 205,
2267  -1, -1, -1, -1, -1, -1, -1, 597, 214, -1,
2268  -1, -1, 62, -1, -1, -1, 109, 110, 111, 112,
2269  113, -1, -1, 73, 74, -1, -1, -1, -1, -1,
2270  -1, -1, -1, 126, 127, 128, 129, -1, -1, -1,
2271  -1, 91, -1, -1, -1, -1, -1, 140, -1, 3,
2272  4, 5, -1, -1, 8, 9, -1, -1, 108, 13,
2273  153, 15, 16, 17, -1, -1, -1, 21, 22, 23,
2274  24, 25, 662, 27, 28, 665, 30, 31, -1, 33,
2275  34, 35, 36, 37, 134, -1, -1, 677, -1, -1,
2276  140, -1, 682, 662, -1, -1, -1, -1, -1, -1,
2277  150, 151, 195, -1, -1, 155, -1, -1, 62, 63,
2278  -1, -1, -1, 682, -1, 69, 70, 71, 72, 73,
2279  74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2280  84, 85, 86, 87, 88, 89, 90, 91, -1, -1,
2281  -1, -1, -1, -1, -1, 195, -1, -1, -1, -1,
2282  200, -1, -1, -1, 108, 205, -1, 9, -1, -1,
2283  -1, -1, -1, -1, 214, 119, 120, 757, -1, -1,
2284  -1, -1, -1, 25, -1, -1, 130, 131, 132, 133,
2285  134, 135, -1, -1, -1, 37, 140, -1, -1, -1,
2286  -1, -1, -1, -1, -1, -1, 150, 151, 152, -1,
2287  -1, 155, 156, 157, -1, -1, -1, -1, -1, -1,
2288  62, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2289  -1, 73, 74, 813, -1, -1, -1, -1, 818, -1,
2290  -1, -1, 822, -1, -1, -1, -1, -1, -1, 91,
2291  -1, 195, -1, -1, 813, -1, -1, -1, 202, -1,
2292  -1, 205, -1, 3, 4, 5, 108, -1, 8, 9,
2293  214, -1, -1, 13, 218, 15, 16, 17, -1, -1,
2294  -1, 21, 22, 23, 24, 25, -1, 27, 28, -1,
2295  30, 31, 134, 33, 34, 35, 36, 37, 140, -1,
2296  -1, -1, -1, -1, -1, -1, -1, -1, 150, 151,
2297  -1, -1, -1, 155, -1, -1, -1, 897, -1, -1,
2298  -1, -1, 62, 63, -1, -1, -1, -1, -1, 69,
2299  70, 71, 72, 73, 74, 75, -1, 77, 78, 79,
2300  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2301  -1, 91, -1, 195, -1, -1, -1, -1, -1, -1,
2302  -1, -1, -1, 205, -1, -1, -1, -1, 108, -1,
2303  -1, -1, 214, -1, -1, -1, -1, -1, -1, 119,
2304  120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2305  130, 131, 132, 133, 134, 135, -1, -1, -1, -1,
2306  140, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2307  150, 151, 152, -1, -1, 155, -1, 157, 3, 4,
2308  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2309  15, 16, 17, -1, -1, -1, 21, 22, 23, 24,
2310  25, -1, 27, 28, -1, 30, 31, -1, 33, 34,
2311  35, 36, 37, -1, -1, 195, -1, -1, -1, -1,
2312  200, -1, -1, -1, -1, 205, -1, -1, -1, -1,
2313  -1, -1, -1, -1, 214, -1, -1, 62, 63, -1,
2314  -1, -1, -1, -1, 69, 70, 71, 72, 73, 74,
2315  75, -1, 77, 78, 79, 80, 81, 82, 83, 84,
2316  85, 86, 87, 88, 89, -1, 91, -1, 92, 93,
2317  94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
2318  104, 105, -1, 108, -1, -1, -1, -1, -1, -1,
2319  -1, -1, -1, -1, 119, 120, -1, -1, -1, -1,
2320  -1, -1, -1, -1, -1, 130, 131, 132, 133, 134,
2321  135, -1, -1, -1, -1, 140, -1, -1, -1, -1,
2322  -1, -1, -1, -1, -1, 150, 151, 152, -1, -1,
2323  155, -1, 157, 4, 5, -1, -1, 8, 9, -1,
2324  -1, -1, 13, -1, 15, -1, 17, -1, -1, -1,
2325  -1, 22, 23, -1, 25, -1, 27, 28, -1, -1,
2326  31, -1, -1, 34, 35, 36, 37, -1, -1, -1,
2327  195, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2328  205, -1, -1, -1, -1, -1, -1, -1, -1, 214,
2329  -1, 62, 63, -1, -1, -1, -1, -1, 69, 70,
2330  71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
2331  81, 82, 83, 84, 85, 86, 87, 88, -1, -1,
2332  91, -1, 92, 93, 94, 95, 96, 97, 98, 99,
2333  100, 101, 102, 103, -1, 105, -1, 108, -1, -1,
2334  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2335  -1, -1, -1, -1, -1, -1, -1, -1, -1, 130,
2336  131, 132, 133, 134, 135, -1, -1, -1, -1, 140,
2337  -1, -1, -1, -1, -1, -1, -1, -1, -1, 150,
2338  151, 152, 4, 5, 155, -1, 8, 9, -1, -1,
2339  -1, 13, -1, 15, -1, 17, -1, -1, -1, -1,
2340  22, 23, -1, 25, -1, 27, 28, -1, -1, 31,
2341  -1, -1, 34, 35, 36, 37, -1, -1, -1, -1,
2342  -1, -1, -1, -1, 195, -1, -1, 198, -1, -1,
2343  -1, -1, -1, -1, 205, -1, -1, -1, -1, -1,
2344  -1, 63, -1, 214, -1, -1, -1, 69, 70, 71,
2345  72, 73, 74, 75, -1, 77, 78, 79, 80, 81,
2346  82, 83, 84, 85, 86, 87, 88, -1, -1, 91,
2347  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2348  -1, -1, -1, -1, -1, -1, 108, -1, -1, -1,
2349  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2350  -1, -1, -1, -1, -1, -1, -1, -1, 130, 131,
2351  132, 133, 134, 135, -1, -1, -1, -1, -1, -1,
2352  -1, -1, -1, -1, -1, -1, -1, -1, 150, 151,
2353  152, -1, -1, 155, -1, -1, 3, 4, 5, 6,
2354  7, 8, 9, 10, 11, 12, 13, -1, 15, 16,
2355  17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2356  27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2357  37, -1, 39, 195, 41, 42, -1, -1, 200, -1,
2358  -1, -1, 49, 205, -1, -1, -1, -1, -1, -1,
2359  -1, -1, 214, -1, -1, 62, 63, 64, 65, 66,
2360  67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2361  77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2362  87, 88, 89, 90, 91, -1, -1, -1, -1, -1,
2363  -1, -1, -1, -1, -1, -1, -1, -1, -1, 106,
2364  107, 108, 109, 110, 111, 112, 113, 114, 115, -1,
2365  -1, 118, 119, 120, -1, -1, -1, -1, -1, 126,
2366  127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2367  -1, 138, -1, 140, -1, -1, -1, -1, -1, -1,
2368  -1, 148, 149, 150, 151, 152, 153, -1, 155, 156,
2369  157, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2370  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2371  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2372  -1, -1, -1, -1, -1, -1, -1, -1, 195, -1,
2373  -1, -1, -1, -1, -1, 202, 203, 204, 205, 206,
2374  207, 208, 209, 3, 4, 5, 6, 7, 8, 9,
2375  10, 11, 12, 13, -1, 15, 16, 17, 18, 19,
2376  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2377  30, 31, 32, 33, 34, 35, 36, 37, -1, 39,
2378  -1, 41, 42, -1, -1, -1, -1, -1, -1, 49,
2379  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2380  -1, -1, 62, 63, 64, 65, 66, 67, -1, 69,
2381  70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2382  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2383  90, 91, -1, -1, -1, -1, -1, -1, -1, -1,
2384  -1, -1, -1, -1, -1, -1, 106, 107, 108, 109,
2385  110, 111, 112, 113, 114, 115, -1, -1, 118, 119,
2386  120, -1, -1, -1, -1, -1, 126, 127, 128, 129,
2387  130, 131, 132, 133, 134, 135, 136, -1, 138, -1,
2388  140, -1, -1, -1, -1, -1, -1, -1, 148, 149,
2389  150, 151, 152, 153, -1, 155, 156, 157, -1, -1,
2390  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2391  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2392  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2393  -1, -1, -1, -1, -1, 195, -1, -1, -1, -1,
2394  -1, -1, 202, 203, 204, 205, 206, 207, 208, 209,
2395  3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2396  13, -1, 15, 16, 17, 18, 19, 20, 21, 22,
2397  23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2398  33, 34, 35, 36, 37, -1, 39, -1, 41, 42,
2399  -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2400  -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
2401  63, 64, 65, 66, 67, -1, 69, 70, 71, 72,
2402  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2403  83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
2404  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2405  -1, -1, -1, 106, 107, 108, 109, 110, 111, 112,
2406  113, 114, 115, -1, -1, 118, 119, 120, -1, -1,
2407  -1, -1, -1, 126, 127, 128, 129, 130, 131, 132,
2408  133, 134, 135, 136, -1, 138, -1, 140, -1, -1,
2409  -1, -1, -1, -1, -1, 148, 149, 150, 151, 152,
2410  153, -1, 155, 156, 157, -1, -1, -1, -1, -1,
2411  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2412  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2413  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2414  -1, -1, 195, -1, -1, -1, -1, -1, -1, 202,
2415  -1, 204, 205, 206, 207, 208, 209, 3, 4, 5,
2416  -1, -1, 8, 9, -1, -1, -1, 13, -1, 15,
2417  16, 17, -1, -1, -1, 21, 22, 23, 24, 25,
2418  -1, 27, 28, 29, 30, 31, -1, 33, 34, 35,
2419  36, 37, -1, -1, -1, 41, 42, -1, -1, -1,
2420  -1, -1, -1, 49, -1, -1, -1, -1, -1, -1,
2421  -1, -1, -1, -1, -1, -1, 62, 63, 64, 65,
2422  66, 67, -1, 69, 70, 71, 72, 73, 74, 75,
2423  76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2424  86, 87, 88, 89, -1, 91, -1, -1, -1, -1,
2425  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2426  -1, -1, 108, 109, 110, 111, 112, 113, 114, -1,
2427  -1, -1, -1, 119, 120, -1, -1, -1, -1, -1,
2428  126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2429  -1, -1, -1, -1, 140, -1, -1, -1, -1, -1,
2430  -1, -1, 148, 149, 150, 151, 152, 153, 3, 155,
2431  156, 157, -1, -1, 9, -1, -1, -1, -1, -1,
2432  -1, 16, -1, -1, -1, -1, 21, -1, -1, 24,
2433  25, -1, -1, -1, 29, 30, -1, -1, 33, -1,
2434  -1, -1, 37, -1, -1, -1, 41, 42, -1, 195,
2435  -1, -1, -1, -1, 49, -1, -1, -1, 204, 205,
2436  206, 207, 208, 209, -1, -1, -1, 62, -1, 64,
2437  65, 66, 67, -1, -1, -1, -1, -1, 73, 74,
2438  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2439  -1, -1, -1, -1, 89, -1, 91, -1, -1, -1,
2440  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2441  -1, -1, -1, 108, 109, 110, 111, 112, 113, 114,
2442  -1, -1, -1, -1, 119, 120, -1, -1, -1, -1,
2443  -1, 126, 127, 128, 129, -1, -1, -1, -1, 134,
2444  -1, -1, -1, -1, -1, 140, -1, -1, -1, -1,
2445  -1, -1, -1, 148, 149, 150, 151, 3, 153, -1,
2446  155, -1, 157, 9, -1, -1, -1, -1, -1, -1,
2447  16, -1, -1, -1, -1, 21, -1, -1, 24, 25,
2448  -1, -1, -1, 29, 30, -1, -1, 33, -1, -1,
2449  -1, 37, -1, -1, -1, 41, 42, -1, -1, -1,
2450  195, -1, -1, 49, -1, -1, 201, -1, -1, 204,
2451  205, 206, 207, 208, 209, -1, 62, -1, 64, 65,
2452  66, 67, -1, -1, -1, -1, 3, 73, 74, -1,
2453  -1, -1, 9, -1, -1, -1, -1, -1, -1, 16,
2454  -1, -1, -1, 89, 21, 91, -1, 24, 25, -1,
2455  -1, -1, -1, 30, -1, -1, 33, -1, -1, -1,
2456  37, -1, 108, 109, 110, 111, 112, 113, 114, -1,
2457  -1, -1, -1, 119, 120, -1, -1, -1, -1, -1,
2458  126, 127, 128, 129, -1, -1, 29, -1, 134, -1,
2459  -1, -1, -1, -1, 140, -1, 73, 74, 41, 42,
2460  -1, -1, 148, 149, 150, 151, 49, 153, -1, 155,
2461  -1, 157, 89, -1, -1, -1, -1, -1, -1, 62,
2462  -1, 64, 65, 66, 67, -1, -1, -1, -1, -1,
2463  -1, 108, -1, -1, -1, -1, -1, -1, -1, -1,
2464  -1, -1, 119, 120, -1, -1, -1, -1, -1, 195,
2465  -1, -1, -1, -1, -1, 201, -1, 134, 204, 205,
2466  206, 207, 208, 209, -1, -1, 109, 110, 111, 112,
2467  113, 114, -1, 150, 151, -1, -1, -1, -1, -1,
2468  157, -1, -1, 126, 127, 128, 129, 29, -1, -1,
2469  -1, -1, -1, -1, -1, -1, -1, 140, -1, 41,
2470  42, -1, -1, -1, -1, 148, 149, 49, -1, -1,
2471  153, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2472  62, -1, 64, 65, 66, 67, -1, -1, -1, -1,
2473  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2474  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2475  -1, -1, 195, -1, -1, -1, -1, -1, -1, -1,
2476  -1, 204, 205, 206, 207, 208, 209, 109, 110, 111,
2477  112, 113, 114, -1, -1, 218, -1, -1, -1, -1,
2478  -1, -1, -1, -1, 126, 127, 128, 129, 29, -1,
2479  -1, -1, -1, -1, -1, -1, -1, -1, 140, -1,
2480  41, 42, -1, -1, -1, -1, 148, 149, 49, -1,
2481  -1, 153, -1, -1, -1, -1, -1, -1, -1, -1,
2482  -1, 62, 63, 64, 65, 66, 67, -1, -1, -1,
2483  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2484  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2485  -1, -1, -1, 195, -1, -1, -1, 199, 200, -1,
2486  202, -1, 204, 205, 206, 207, 208, 209, 109, 110,
2487  111, 112, 113, 114, -1, 217, -1, -1, -1, -1,
2488  -1, -1, -1, -1, -1, 126, 127, 128, 129, 29,
2489  -1, -1, -1, -1, -1, -1, -1, -1, -1, 140,
2490  -1, 41, 42, -1, -1, -1, -1, 148, 149, 49,
2491  -1, -1, 153, -1, -1, -1, -1, -1, -1, -1,
2492  -1, -1, 62, 63, 64, 65, 66, 67, -1, -1,
2493  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2494  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2495  -1, -1, -1, -1, 195, -1, -1, -1, 199, 200,
2496  -1, 202, 203, 204, 205, 206, 207, 208, 209, 109,
2497  110, 111, 112, 113, 114, -1, -1, -1, -1, -1,
2498  -1, -1, -1, -1, -1, -1, 126, 127, 128, 129,
2499  29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2500  140, -1, 41, 42, -1, -1, -1, -1, 148, 149,
2501  49, -1, -1, 153, -1, -1, -1, -1, -1, -1,
2502  -1, -1, -1, 62, 63, 64, 65, 66, 67, -1,
2503  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2504  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2505  -1, -1, -1, -1, -1, 195, -1, -1, -1, 199,
2506  200, -1, 202, 203, 204, 205, 206, 207, 208, 209,
2507  109, 110, 111, 112, 113, 114, -1, -1, -1, -1,
2508  -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
2509  129, 29, -1, -1, -1, -1, -1, -1, -1, -1,
2510  -1, 140, -1, 41, 42, -1, -1, -1, -1, 148,
2511  149, 49, -1, -1, 153, -1, -1, -1, -1, -1,
2512  -1, -1, -1, -1, 62, -1, 64, 65, 66, 67,
2513  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2514  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2515  -1, -1, -1, 91, -1, -1, 195, -1, -1, -1,
2516  199, 200, -1, 202, -1, 204, 205, 206, 207, 208,
2517  209, 109, 110, 111, 112, 113, 114, -1, -1, -1,
2518  -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
2519  128, 129, 29, -1, -1, -1, -1, -1, -1, -1,
2520  -1, -1, 140, -1, 41, 42, -1, -1, -1, -1,
2521  148, 149, 49, -1, -1, 153, -1, 155, -1, -1,
2522  -1, -1, -1, -1, -1, 62, -1, 64, 65, 66,
2523  67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2524  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2525  -1, -1, -1, -1, 91, -1, -1, 195, -1, -1,
2526  -1, -1, -1, -1, 202, -1, 204, 205, 206, 207,
2527  208, 209, 109, 110, 111, 112, 113, 114, -1, -1,
2528  -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
2529  127, 128, 129, 29, -1, -1, -1, -1, -1, -1,
2530  -1, -1, -1, 140, -1, 41, 42, -1, -1, -1,
2531  -1, 148, 149, 49, -1, -1, 153, -1, 155, -1,
2532  -1, -1, -1, -1, -1, -1, 62, -1, 64, 65,
2533  66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
2534  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2535  -1, -1, -1, -1, -1, -1, -1, -1, 195, -1,
2536  -1, -1, -1, -1, -1, -1, -1, 204, 205, 206,
2537  207, 208, 209, 109, 110, 111, 112, 113, 114, -1,
2538  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2539  126, 127, 128, 129, 29, -1, -1, -1, -1, -1,
2540  -1, -1, -1, -1, 140, -1, 41, 42, -1, -1,
2541  -1, -1, 148, 149, 49, -1, -1, 153, -1, -1,
2542  -1, -1, -1, -1, -1, -1, -1, 62, -1, 64,
2543  65, 66, 67, -1, -1, -1, -1, -1, -1, -1,
2544  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2545  -1, -1, -1, -1, -1, -1, -1, -1, -1, 195,
2546  -1, -1, -1, -1, -1, 201, -1, -1, 204, 205,
2547  206, 207, 208, 209, 109, 110, 111, 112, 113, 114,
2548  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2549  -1, 126, 127, 128, 129, 29, -1, -1, -1, -1,
2550  -1, -1, -1, -1, -1, 140, -1, 41, 42, -1,
2551  -1, -1, -1, 148, 149, 49, -1, -1, 153, -1,
2552  -1, -1, -1, -1, -1, -1, -1, -1, 62, -1,
2553  64, 65, 66, 67, -1, -1, -1, -1, -1, -1,
2554  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2555  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2556  195, 196, -1, -1, -1, -1, -1, -1, -1, 204,
2557  205, 206, 207, 208, 209, 109, 110, 111, 112, 113,
2558  114, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2559  -1, -1, 126, 127, 128, 129, 29, -1, -1, -1,
2560  -1, -1, -1, -1, -1, -1, 140, -1, 41, 42,
2561  -1, -1, -1, -1, 148, 149, 49, -1, -1, 153,
2562  -1, -1, -1, -1, -1, -1, -1, -1, -1, 62,
2563  -1, 64, 65, 66, 67, -1, -1, -1, -1, -1,
2564  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2565  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2566  -1, 195, -1, -1, 198, -1, -1, -1, -1, -1,
2567  204, 205, 206, 207, 208, 209, 109, 110, 111, 112,
2568  113, 114, -1, -1, -1, -1, -1, -1, -1, -1,
2569  -1, -1, -1, 126, 127, 128, 129, 29, -1, -1,
2570  -1, -1, -1, -1, -1, -1, -1, 140, -1, 41,
2571  42, -1, -1, -1, -1, 148, 149, 49, -1, -1,
2572  153, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2573  62, -1, 64, 65, 66, 67, -1, -1, -1, -1,
2574  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2575  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2576  -1, -1, 195, -1, -1, -1, -1, -1, -1, 202,
2577  -1, 204, 205, 206, 207, 208, 209, 109, 110, 111,
2578  112, 113, 114, -1, -1, -1, -1, -1, -1, -1,
2579  -1, -1, -1, -1, 126, 127, 128, 129, 29, -1,
2580  -1, -1, -1, -1, -1, -1, -1, -1, 140, -1,
2581  41, 42, -1, -1, -1, -1, 148, 149, 49, -1,
2582  -1, 153, -1, -1, -1, -1, -1, -1, -1, -1,
2583  -1, 62, -1, 64, 65, 66, 67, -1, -1, -1,
2584  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2585  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2586  -1, -1, -1, 195, -1, -1, -1, -1, -1, 201,
2587  -1, -1, 204, 205, 206, 207, 208, 209, 109, 110,
2588  111, 112, 113, 114, -1, -1, -1, -1, -1, -1,
2589  -1, -1, -1, -1, -1, 126, 127, 128, 129, 29,
2590  -1, -1, -1, -1, -1, -1, -1, -1, -1, 140,
2591  -1, 41, 42, -1, -1, -1, -1, 148, 149, 49,
2592  -1, -1, 153, -1, -1, -1, -1, -1, -1, -1,
2593  -1, -1, 62, 63, 64, 65, 66, 67, -1, -1,
2594  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2595  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2596  -1, -1, -1, -1, 195, -1, -1, -1, -1, -1,
2597  -1, 202, -1, 204, 205, 206, 207, 208, 209, 109,
2598  110, 111, 112, 113, 114, -1, -1, -1, -1, -1,
2599  -1, -1, -1, -1, -1, -1, 126, 127, 128, 129,
2600  29, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2601  140, -1, 41, 42, -1, -1, -1, -1, 148, 149,
2602  49, -1, -1, 153, -1, -1, -1, -1, -1, -1,
2603  -1, -1, -1, 62, -1, 64, 65, 66, 67, -1,
2604  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2605  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2606  -1, -1, -1, -1, -1, 195, -1, -1, -1, -1,
2607  -1, -1, -1, -1, 204, 205, 206, 207, 208, 209,
2608  109, 110, 111, 112, 113, 114, -1, -1, -1, -1,
2609  -1, -1, -1, -1, -1, -1, -1, 126, 127, 128,
2610  129, 29, -1, -1, -1, -1, -1, -1, -1, -1,
2611  -1, 140, -1, 41, 42, -1, -1, -1, -1, 148,
2612  149, 49, -1, -1, 153, -1, -1, -1, -1, -1,
2613  -1, -1, -1, -1, 62, -1, 64, 65, 66, 67,
2614  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2615  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2616  -1, -1, -1, -1, -1, -1, 195, -1, -1, -1,
2617  -1, -1, -1, -1, -1, 204, 205, 206, 207, 208,
2618  209, 109, 110, 111, 112, 113, 114, -1, -1, -1,
2619  -1, -1, -1, -1, -1, -1, -1, -1, 126, 127,
2620  128, 129, 29, -1, -1, -1, -1, -1, -1, -1,
2621  -1, -1, 140, -1, 41, 42, -1, -1, -1, -1,
2622  148, 149, 49, -1, -1, 153, -1, -1, -1, -1,
2623  -1, -1, -1, -1, -1, 62, 29, 64, 65, 66,
2624  67, -1, -1, -1, -1, -1, -1, -1, 41, 42,
2625  -1, -1, -1, -1, -1, -1, 49, -1, -1, -1,
2626  -1, -1, -1, -1, -1, -1, -1, 195, -1, 62,
2627  -1, 64, 65, 66, 67, -1, 204, 205, 206, 207,
2628  208, 209, 109, 110, 111, 112, 113, 114, -1, -1,
2629  -1, -1, -1, -1, -1, -1, -1, -1, -1, 126,
2630  127, 128, 129, -1, -1, -1, -1, -1, -1, -1,
2631  -1, -1, -1, 140, -1, -1, 109, 110, 111, 112,
2632  113, 114, -1, -1, -1, -1, 153, -1, -1, -1,
2633  -1, -1, -1, 126, 127, 128, 129, 29, -1, -1,
2634  -1, -1, -1, -1, -1, -1, -1, 140, -1, 41,
2635  42, -1, -1, -1, -1, -1, -1, 49, -1, -1,
2636  153, -1, -1, -1, -1, -1, -1, -1, 195, -1,
2637  62, -1, 64, 65, 66, 67, -1, 204, 205, 206,
2638  207, 208, 209, -1, -1, -1, -1, -1, -1, -1,
2639  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2640  -1, -1, 195, -1, -1, -1, -1, -1, -1, -1,
2641  -1, 204, 205, 206, 207, 208, 209, 109, 110, 111,
2642  112, 113, 114, -1, -1, -1, -1, -1, -1, -1,
2643  -1, -1, -1, -1, 126, 127, 128, 129, -1, -1,
2644  -1, -1, -1, -1, -1, -1, -1, -1, 140, -1,
2645  -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
2646  5, 153, -1, 8, 9, -1, -1, -1, 13, -1,
2647  15, 16, 17, -1, -1, -1, 21, 22, 23, 24,
2648  25, -1, 27, 28, -1, 30, 31, -1, 33, 34,
2649  35, 36, 37, -1, -1, -1, -1, -1, -1, -1,
2650  -1, -1, -1, 195, -1, -1, -1, -1, -1, -1,
2651  -1, -1, 204, 205, 206, 207, 208, 209, 63, -1,
2652  -1, -1, -1, -1, 69, 70, 71, 72, 73, 74,
2653  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2654  85, 86, 87, 88, 89, -1, 91, -1, -1, -1,
2655  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2656  -1, -1, -1, 108, -1, -1, -1, -1, -1, -1,
2657  -1, -1, -1, -1, 119, 120, -1, -1, -1, -1,
2658  -1, -1, -1, -1, -1, 130, 131, 132, 133, 134,
2659  135, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2660  -1, -1, -1, -1, -1, 150, 151, 152, -1, -1,
2661  155, 156, 157, 3, 4, 5, -1, -1, 8, 9,
2662  -1, -1, -1, 13, -1, 15, 16, 17, -1, -1,
2663  -1, 21, 22, 23, 24, 25, -1, 27, 28, -1,
2664  30, 31, -1, 33, 34, 35, 36, 37, -1, -1,
2665  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2666  -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
2667  -1, -1, -1, 63, -1, -1, -1, -1, -1, 69,
2668  70, 71, 72, 73, 74, 75, -1, 77, 78, 79,
2669  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2670  -1, 91, -1, -1, -1, -1, -1, -1, -1, -1,
2671  -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
2672  -1, -1, -1, -1, -1, -1, -1, -1, -1, 119,
2673  120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2674  130, 131, 132, 133, 134, 135, -1, -1, -1, -1,
2675  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2676  150, 151, 152, -1, -1, 155, -1, 157, 3, 4,
2677  5, -1, -1, 8, 9, -1, -1, -1, 13, -1,
2678  15, 16, 17, -1, -1, -1, 21, 22, 23, 24,
2679  25, -1, 27, 28, -1, 30, 31, -1, 33, 34,
2680  35, 36, 37, -1, -1, -1, -1, -1, -1, -1,
2681  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2682  -1, -1, -1, -1, -1, -1, -1, -1, 63, -1,
2683  -1, -1, -1, -1, 69, 70, 71, 72, 73, 74,
2684  75, -1, 77, 78, 79, 80, 81, 82, 83, 84,
2685  85, 86, 87, 88, 89, -1, 91, -1, -1, -1,
2686  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2687  -1, -1, -1, 108, -1, -1, -1, -1, -1, -1,
2688  -1, -1, -1, -1, 119, 120, -1, -1, -1, -1,
2689  -1, -1, -1, -1, -1, 130, 131, 132, 133, 134,
2690  135, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2691  -1, -1, -1, -1, -1, 150, 151, 152, -1, -1,
2692  155, -1, 157, 3, 4, 5, -1, -1, 8, 9,
2693  -1, -1, -1, 13, -1, 15, 16, 17, -1, -1,
2694  -1, 21, 22, 23, 24, 25, -1, 27, 28, -1,
2695  30, 31, -1, 33, 34, 35, 36, 37, -1, -1,
2696  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2697  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2698  -1, -1, -1, 63, -1, -1, -1, -1, -1, 69,
2699  70, 71, 72, 73, 74, 75, -1, 77, 78, 79,
2700  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2701  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2702  -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
2703  -1, -1, -1, -1, -1, -1, -1, -1, -1, 119,
2704  120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2705  130, 131, 132, 133, 134, 135, -1, -1, -1, -1,
2706  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2707  150, 151, 152, 3, 4, 5, -1, 157, 8, 9,
2708  -1, -1, -1, 13, -1, 15, 16, 17, -1, -1,
2709  -1, 21, 22, 23, 24, 25, -1, 27, 28, -1,
2710  30, 31, -1, 33, 34, 35, 36, 37, -1, -1,
2711  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2712  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2713  -1, -1, -1, 63, -1, -1, -1, -1, -1, 69,
2714  70, 71, 72, 73, 74, -1, -1, 77, 78, 79,
2715  80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2716  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2717  -1, -1, -1, -1, -1, -1, -1, -1, 108, -1,
2718  -1, -1, -1, -1, -1, -1, -1, -1, -1, 119,
2719  120, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2720  -1, 131, 132, 133, 134, 135, -1, -1, -1, -1,
2721  -1, -1, 3, 4, 5, -1, -1, 8, 9, -1,
2722  150, 151, 13, -1, -1, 16, 17, 157, -1, -1,
2723  21, 22, 23, 24, 25, -1, 27, 28, -1, 30,
2724  -1, -1, 33, -1, 35, 36, 37, -1, -1, -1,
2725  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2726  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2727  -1, -1, -1, -1, -1, -1, -1, -1, 69, 70,
2728  71, 72, 73, 74, -1, -1, 77, 78, 79, 80,
2729  81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
2730  -1, -1, -1, 4, 5, -1, -1, 8, 9, -1,
2731  -1, -1, 13, -1, 15, -1, 17, 108, -1, -1,
2732  -1, 22, 23, -1, 25, -1, 27, 28, 119, 120,
2733  31, -1, -1, 34, 35, 36, 37, -1, -1, -1,
2734  131, 132, 133, 134, 135, -1, -1, -1, -1, -1,
2735  -1, -1, -1, -1, -1, -1, -1, -1, -1, 150,
2736  151, -1, 63, -1, -1, -1, 157, -1, 69, 70,
2737  71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
2738  81, 82, 83, 84, 85, 86, 87, 88, -1, -1,
2739  91, -1, -1, 4, 5, -1, -1, 8, 9, -1,
2740  -1, -1, 13, -1, 15, -1, 17, 108, -1, -1,
2741  -1, 22, 23, -1, 25, -1, 27, 28, -1, -1,
2742  31, -1, -1, 34, 35, 36, 37, -1, -1, 130,
2743  131, 132, 133, 134, 135, -1, -1, -1, -1, -1,
2744  -1, -1, -1, -1, -1, -1, -1, -1, -1, 150,
2745  151, 152, 63, -1, 155, -1, -1, -1, 69, 70,
2746  71, 72, 73, 74, 75, -1, 77, 78, 79, 80,
2747  81, 82, 83, 84, 85, 86, 87, 88, -1, -1,
2748  4, 5, -1, -1, 8, 9, -1, -1, -1, 13,
2749  -1, -1, -1, 17, -1, -1, -1, 108, 22, 23,
2750  -1, 25, -1, 27, 28, -1, -1, -1, -1, -1,
2751  -1, 35, 36, 37, -1, -1, -1, -1, -1, 130,
2752  131, 132, 133, 134, 135, -1, -1, -1, -1, -1,
2753  -1, -1, -1, -1, -1, -1, -1, -1, -1, 150,
2754  151, 152, -1, -1, -1, 69, 70, 71, 72, 73,
2755  74, -1, -1, 77, 78, 79, 80, 81, 82, 83,
2756  84, 85, 86, 87, 88, -1, -1, -1, -1, -1,
2757  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2758  -1, -1, -1, -1, 108, -1, -1, -1, -1, -1,
2759  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2760  -1, -1, -1, -1, -1, -1, -1, 131, 132, 133,
2761  134, 135, -1, -1, -1, -1, -1, -1, -1, -1,
2762  -1, -1, -1, -1, -1, -1, 150, 151
2763 };
2764 
2765  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2766  symbol of state STATE-NUM. */
2767 static const yytype_uint16 yystos[] =
2768 {
2769  0, 3, 4, 5, 8, 9, 13, 15, 16, 17,
2770  21, 22, 23, 24, 25, 27, 28, 30, 31, 33,
2771  34, 35, 36, 37, 62, 63, 69, 70, 71, 72,
2772  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2773  83, 84, 85, 86, 87, 88, 89, 90, 91, 108,
2774  119, 120, 130, 131, 132, 133, 134, 135, 140, 150,
2775  151, 152, 155, 156, 157, 195, 202, 205, 214, 218,
2776  220, 221, 222, 264, 265, 266, 273, 277, 278, 279,
2777  280, 283, 284, 288, 289, 290, 291, 292, 293, 294,
2778  295, 296, 297, 298, 299, 303, 305, 306, 307, 308,
2779  310, 314, 318, 330, 333, 386, 387, 388, 389, 390,
2780  401, 411, 412, 413, 414, 195, 195, 205, 222, 402,
2781  403, 404, 405, 406, 407, 408, 409, 411, 195, 195,
2782  195, 195, 212, 200, 200, 200, 67, 195, 195, 195,
2783  412, 414, 68, 281, 283, 285, 318, 411, 411, 0,
2784  318, 319, 320, 218, 197, 218, 197, 218, 218, 402,
2785  218, 402, 222, 282, 283, 296, 298, 305, 306, 307,
2786  318, 411, 222, 283, 296, 298, 305, 306, 307, 318,
2787  411, 282, 306, 283, 305, 306, 282, 283, 305, 282,
2788  282, 282, 283, 305, 280, 305, 280, 305, 319, 319,
2789  319, 388, 142, 239, 195, 200, 417, 419, 421, 29,
2790  41, 42, 49, 64, 65, 66, 67, 109, 110, 111,
2791  112, 113, 114, 126, 127, 128, 129, 148, 149, 153,
2792  195, 204, 205, 206, 207, 208, 209, 221, 223, 224,
2793  225, 226, 227, 228, 229, 232, 233, 234, 235, 237,
2794  241, 242, 245, 246, 247, 248, 249, 250, 251, 252,
2795  253, 254, 255, 256, 257, 258, 259, 260, 261, 319,
2796  344, 195, 205, 222, 320, 406, 408, 410, 195, 281,
2797  403, 405, 408, 417, 90, 270, 271, 272, 318, 226,
2798  195, 261, 25, 62, 63, 196, 197, 300, 301, 302,
2799  344, 261, 261, 261, 261, 344, 344, 260, 196, 196,
2800  203, 285, 411, 318, 411, 319, 272, 272, 319, 319,
2801  319, 319, 267, 319, 280, 280, 319, 268, 319, 319,
2802  319, 319, 319, 319, 319, 319, 319, 319, 319, 303,
2803  304, 221, 222, 331, 343, 195, 143, 240, 196, 418,
2804  420, 201, 205, 260, 262, 283, 286, 287, 305, 318,
2805  200, 195, 245, 195, 245, 245, 343, 366, 195, 195,
2806  195, 195, 195, 195, 245, 356, 356, 356, 356, 246,
2807  246, 195, 261, 344, 355, 356, 246, 246, 246, 246,
2808  246, 246, 40, 41, 42, 195, 199, 200, 52, 53,
2809  54, 55, 56, 57, 58, 59, 60, 61, 217, 205,
2810  210, 211, 206, 207, 43, 44, 45, 46, 212, 213,
2811  47, 48, 204, 214, 215, 49, 50, 144, 145, 216,
2812  196, 197, 278, 280, 289, 291, 295, 297, 299, 196,
2813  410, 195, 411, 196, 196, 417, 410, 195, 405, 408,
2814  19, 37, 371, 270, 217, 196, 92, 93, 94, 95,
2815  96, 97, 98, 99, 100, 101, 102, 103, 105, 315,
2816  316, 317, 196, 195, 196, 301, 213, 201, 201, 201,
2817  196, 196, 196, 197, 417, 269, 402, 274, 275, 217,
2818  345, 345, 311, 343, 202, 319, 332, 246, 259, 195,
2819  355, 391, 278, 280, 283, 289, 295, 305, 393, 394,
2820  395, 396, 397, 398, 399, 400, 221, 339, 340, 277,
2821  278, 279, 280, 338, 341, 342, 201, 201, 201, 262,
2822  286, 205, 262, 344, 344, 344, 260, 344, 260, 344,
2823  344, 202, 202, 264, 277, 278, 279, 280, 264, 260,
2824  196, 196, 196, 202, 221, 222, 243, 196, 244, 260,
2825  243, 261, 260, 260, 260, 260, 260, 260, 260, 260,
2826  260, 260, 260, 246, 246, 246, 247, 247, 248, 248,
2827  249, 249, 249, 249, 250, 250, 251, 252, 253, 254,
2828  255, 257, 257, 198, 261, 260, 195, 205, 214, 415,
2829  417, 422, 424, 415, 196, 196, 417, 417, 196, 196,
2830  410, 37, 19, 195, 202, 262, 346, 218, 195, 195,
2831  195, 195, 195, 196, 197, 64, 67, 300, 200, 200,
2832  260, 345, 272, 345, 345, 346, 202, 312, 313, 334,
2833  335, 336, 343, 202, 196, 259, 402, 305, 305, 305,
2834  394, 222, 282, 306, 314, 333, 282, 306, 282, 402,
2835  197, 218, 196, 197, 195, 205, 214, 405, 411, 416,
2836  419, 423, 425, 405, 411, 416, 195, 205, 411, 416,
2837  411, 416, 196, 197, 201, 201, 201, 196, 196, 196,
2838  197, 197, 197, 197, 196, 264, 264, 195, 228, 402,
2839  402, 411, 411, 228, 197, 202, 246, 6, 7, 10,
2840  11, 12, 18, 19, 20, 26, 32, 39, 68, 90,
2841  91, 106, 107, 115, 118, 136, 138, 203, 221, 222,
2842  261, 263, 264, 343, 351, 352, 353, 354, 355, 357,
2843  358, 359, 361, 363, 364, 367, 368, 369, 370, 196,
2844  197, 201, 259, 198, 417, 422, 424, 281, 415, 417,
2845  196, 226, 372, 373, 199, 200, 221, 243, 346, 347,
2846  348, 349, 350, 261, 261, 221, 67, 67, 196, 316,
2847  196, 196, 217, 261, 261, 196, 276, 218, 265, 319,
2848  321, 322, 323, 324, 325, 202, 319, 203, 197, 319,
2849  334, 196, 319, 319, 319, 319, 343, 343, 319, 319,
2850  319, 402, 392, 393, 340, 196, 423, 425, 281, 416,
2851  319, 319, 281, 319, 319, 392, 51, 342, 344, 344,
2852  344, 236, 243, 261, 261, 11, 230, 231, 344, 347,
2853  348, 218, 262, 218, 198, 351, 362, 222, 261, 195,
2854  218, 261, 195, 195, 203, 371, 195, 365, 366, 68,
2855  202, 355, 218, 355, 218, 198, 203, 351, 260, 259,
2856  196, 196, 196, 415, 196, 198, 374, 243, 261, 198,
2857  197, 203, 199, 200, 217, 346, 196, 196, 196, 196,
2858  196, 300, 201, 201, 345, 218, 278, 280, 203, 323,
2859  197, 218, 197, 218, 321, 319, 336, 217, 337, 203,
2860  319, 319, 196, 196, 416, 196, 196, 196, 40, 196,
2861  199, 200, 203, 203, 198, 196, 197, 198, 197, 203,
2862  51, 198, 351, 39, 195, 218, 218, 261, 218, 261,
2863  263, 195, 202, 195, 197, 218, 68, 116, 117, 137,
2864  139, 318, 351, 417, 417, 200, 226, 375, 376, 198,
2865  377, 51, 201, 346, 203, 349, 243, 261, 346, 196,
2866  197, 198, 326, 329, 402, 327, 329, 411, 319, 327,
2867  326, 203, 262, 319, 195, 419, 243, 243, 261, 260,
2868  231, 260, 203, 262, 351, 195, 352, 358, 360, 196,
2869  196, 196, 372, 68, 104, 366, 203, 355, 195, 355,
2870  355, 218, 343, 195, 197, 200, 226, 378, 379, 198,
2871  380, 261, 51, 201, 300, 262, 319, 328, 329, 319,
2872  328, 309, 319, 201, 198, 261, 263, 351, 351, 141,
2873  238, 196, 203, 196, 261, 201, 261, 375, 343, 195,
2874  197, 226, 381, 382, 198, 383, 201, 261, 217, 319,
2875  319, 309, 351, 196, 218, 14, 195, 351, 218, 196,
2876  196, 226, 196, 201, 261, 378, 197, 366, 384, 385,
2877  201, 300, 238, 263, 351, 259, 218, 355, 195, 226,
2878  196, 381, 197, 196, 218, 196, 196, 353, 261, 195,
2879  385, 238, 196, 261, 351, 196
2880 };
2881 
2882  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2883 static const yytype_uint16 yyr1[] =
2884 {
2885  0, 219, 220, 221, 221, 222, 223, 224, 225, 226,
2886  227, 227, 227, 227, 228, 228, 228, 228, 228, 228,
2887  228, 228, 228, 228, 229, 230, 230, 231, 231, 232,
2888  232, 233, 234, 235, 236, 236, 236, 236, 237, 237,
2889  237, 237, 238, 238, 239, 239, 240, 240, 241, 242,
2890  242, 242, 242, 242, 242, 242, 242, 242, 242, 243,
2891  243, 244, 244, 245, 245, 245, 245, 245, 245, 245,
2892  245, 245, 245, 245, 245, 245, 245, 246, 246, 246,
2893  246, 247, 247, 247, 247, 248, 248, 248, 249, 249,
2894  249, 250, 250, 250, 250, 250, 251, 251, 251, 252,
2895  252, 253, 253, 254, 254, 255, 255, 256, 256, 257,
2896  257, 258, 258, 259, 259, 259, 260, 260, 260, 260,
2897  260, 260, 260, 260, 260, 260, 260, 260, 261, 261,
2898  262, 263, 263, 264, 264, 264, 264, 264, 265, 267,
2899  266, 268, 266, 269, 266, 270, 270, 271, 271, 272,
2900  272, 274, 273, 275, 273, 273, 276, 273, 277, 277,
2901  277, 277, 277, 278, 278, 278, 278, 278, 279, 279,
2902  279, 279, 279, 280, 280, 280, 281, 281, 282, 282,
2903  283, 283, 283, 283, 283, 283, 283, 283, 283, 284,
2904  284, 285, 285, 286, 286, 286, 287, 287, 288, 288,
2905  288, 288, 289, 289, 289, 289, 290, 290, 290, 291,
2906  291, 291, 292, 292, 292, 293, 293, 293, 294, 294,
2907  294, 295, 295, 295, 296, 296, 297, 297, 297, 297,
2908  298, 299, 299, 299, 299, 300, 300, 300, 301, 301,
2909  301, 301, 301, 301, 302, 302, 303, 303, 304, 304,
2910  305, 305, 305, 305, 305, 305, 305, 305, 305, 305,
2911  306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
2912  306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
2913  306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
2914  306, 307, 307, 307, 308, 309, 311, 310, 312, 310,
2915  313, 310, 314, 314, 315, 315, 315, 315, 315, 315,
2916  315, 315, 315, 315, 315, 315, 315, 315, 316, 316,
2917  317, 317, 318, 318, 319, 319, 320, 320, 321, 321,
2918  322, 322, 323, 323, 323, 323, 324, 324, 325, 325,
2919  326, 326, 326, 327, 327, 328, 328, 329, 331, 330,
2920  332, 330, 330, 333, 334, 334, 335, 335, 335, 336,
2921  337, 337, 338, 338, 339, 339, 340, 341, 341, 342,
2922  342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
2923  342, 342, 342, 343, 343, 344, 344, 344, 344, 345,
2924  345, 346, 346, 346, 347, 347, 348, 348, 349, 349,
2925  349, 349, 350, 350, 350, 350, 350, 350, 351, 351,
2926  351, 351, 351, 351, 351, 351, 351, 351, 351, 351,
2927  351, 352, 353, 353, 353, 353, 353, 354, 355, 355,
2928  355, 356, 357, 357, 358, 359, 359, 359, 360, 360,
2929  361, 361, 362, 361, 363, 363, 363, 363, 363, 363,
2930  364, 365, 365, 366, 367, 367, 368, 368, 369, 369,
2931  369, 370, 370, 370, 371, 371, 371, 371, 371, 372,
2932  372, 372, 372, 372, 373, 374, 374, 375, 375, 376,
2933  376, 377, 377, 378, 378, 379, 379, 380, 380, 381,
2934  382, 382, 383, 383, 384, 384, 385, 386, 386, 387,
2935  387, 388, 388, 388, 388, 389, 389, 390, 391, 392,
2936  392, 393, 393, 394, 395, 395, 395, 396, 396, 396,
2937  396, 397, 397, 397, 398, 398, 399, 399, 399, 400,
2938  400, 400, 401, 401, 401, 401, 401, 402, 402, 402,
2939  403, 403, 403, 404, 404, 405, 405, 405, 406, 406,
2940  406, 407, 407, 408, 408, 408, 408, 408, 409, 409,
2941  409, 410, 410, 411, 411, 412, 412, 412, 412, 413,
2942  413, 413, 414, 414, 415, 415, 415, 416, 416, 417,
2943  417, 418, 417, 419, 419, 420, 419, 421, 421, 421,
2944  421, 421, 421, 421, 422, 422, 422, 422, 422, 423,
2945  423, 423, 423, 423, 424, 424, 424, 424, 424, 425,
2946  425, 425, 425
2947 };
2948 
2949  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2950 static const yytype_uint8 yyr2[] =
2951 {
2952  0, 2, 1, 1, 2, 1, 1, 1, 1, 1,
2953  1, 1, 1, 1, 1, 1, 3, 1, 1, 1,
2954  1, 1, 1, 1, 6, 1, 3, 3, 3, 6,
2955  6, 6, 4, 6, 1, 3, 4, 3, 6, 4,
2956  6, 4, 0, 4, 0, 4, 0, 4, 3, 1,
2957  4, 3, 4, 3, 3, 2, 2, 6, 7, 1,
2958  1, 1, 3, 1, 2, 2, 2, 2, 2, 2,
2959  2, 2, 2, 2, 4, 2, 4, 1, 4, 2,
2960  2, 1, 3, 3, 3, 1, 3, 3, 1, 3,
2961  3, 1, 3, 3, 3, 3, 1, 3, 3, 1,
2962  3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
2963  3, 1, 3, 1, 5, 4, 1, 3, 3, 3,
2964  3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
2965  1, 0, 1, 2, 2, 2, 2, 2, 6, 0,
2966  4, 0, 4, 0, 5, 5, 1, 2, 1, 0,
2967  1, 0, 5, 0, 5, 5, 0, 7, 1, 1,
2968  1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2969  1, 2, 2, 1, 2, 2, 1, 2, 1, 1,
2970  1, 1, 1, 1, 1, 1, 1, 4, 1, 4,
2971  4, 1, 1, 1, 1, 1, 1, 2, 3, 3,
2972  3, 3, 2, 3, 2, 3, 2, 2, 2, 1,
2973  2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2974  3, 2, 3, 3, 4, 4, 1, 2, 3, 2,
2975  4, 1, 2, 3, 2, 1, 1, 1, 1, 4,
2976  4, 6, 10, 1, 1, 2, 4, 3, 0, 1,
2977  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2978  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2979  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2980  1, 1, 1, 1, 1, 1, 1, 4, 7, 7,
2981  1, 1, 1, 1, 4, 0, 0, 9, 0, 10,
2982  0, 6, 1, 1, 1, 1, 4, 1, 4, 4,
2983  1, 1, 4, 4, 1, 1, 1, 1, 0, 1,
2984  1, 3, 6, 1, 0, 1, 1, 2, 0, 1,
2985  1, 2, 2, 2, 1, 2, 3, 3, 3, 3,
2986  3, 0, 2, 3, 2, 0, 1, 2, 0, 7,
2987  0, 8, 4, 1, 0, 1, 1, 3, 2, 3,
2988  0, 2, 1, 3, 1, 3, 1, 1, 3, 1,
2989  2, 3, 2, 1, 2, 3, 1, 2, 3, 2,
2990  1, 2, 3, 1, 1, 2, 3, 2, 3, 0,
2991  2, 1, 3, 4, 1, 3, 1, 0, 1, 3,
2992  2, 3, 2, 3, 5, 4, 6, 3, 1, 1,
2993  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2994  1, 1, 4, 3, 4, 6, 3, 8, 3, 4,
2995  4, 0, 1, 2, 2, 5, 7, 5, 1, 1,
2996  6, 8, 0, 10, 3, 3, 2, 2, 2, 3,
2997  3, 1, 3, 1, 6, 5, 4, 2, 7, 4,
2998  1, 2, 4, 4, 0, 1, 1, 2, 2, 1,
2999  2, 3, 4, 5, 1, 2, 1, 4, 7, 1,
3000  3, 2, 1, 4, 7, 1, 3, 2, 1, 1,
3001  1, 3, 2, 1, 1, 3, 1, 0, 1, 1,
3002  2, 1, 1, 1, 1, 5, 3, 4, 1, 0,
3003  1, 1, 2, 2, 1, 2, 2, 3, 3, 3,
3004  3, 3, 3, 3, 4, 4, 1, 1, 1, 2,
3005  2, 3, 1, 2, 2, 2, 2, 1, 1, 1,
3006  4, 5, 2, 1, 1, 1, 2, 1, 1, 2,
3007  3, 3, 4, 1, 4, 5, 2, 3, 3, 4,
3008  4, 1, 3, 1, 1, 1, 2, 2, 3, 2,
3009  3, 4, 1, 3, 1, 1, 1, 1, 1, 1,
3010  3, 0, 5, 1, 2, 0, 5, 2, 3, 3,
3011  3, 4, 4, 4, 1, 2, 2, 3, 1, 1,
3012  2, 2, 3, 1, 3, 3, 3, 4, 4, 3,
3013  3, 1, 4
3014 };
3015 
3016 
3017 #define yyerrok (yyerrstatus = 0)
3018 #define yyclearin (yychar = YYEMPTY)
3019 #define YYEMPTY (-2)
3020 #define YYEOF 0
3021 
3022 #define YYACCEPT goto yyacceptlab
3023 #define YYABORT goto yyabortlab
3024 #define YYERROR goto yyerrorlab
3025 
3026 
3027 #define YYRECOVERING() (!!yyerrstatus)
3028 
3029 #define YYBACKUP(Token, Value) \
3030 do \
3031  if (yychar == YYEMPTY) \
3032  { \
3033  yychar = (Token); \
3034  yylval = (Value); \
3035  YYPOPSTACK (yylen); \
3036  yystate = *yyssp; \
3037  goto yybackup; \
3038  } \
3039  else \
3040  { \
3041  yyerror (YY_("syntax error: cannot back up")); \
3042  YYERROR; \
3043  } \
3044 while (0)
3045 
3046 /* Error token number */
3047 #define YYTERROR 1
3048 #define YYERRCODE 256
3049 
3050 
3051 
3052 /* Enable debugging if requested. */
3053 #if YYDEBUG
3054 
3055 # ifndef YYFPRINTF
3056 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
3057 # define YYFPRINTF fprintf
3058 # endif
3059 
3060 # define YYDPRINTF(Args) \
3061 do { \
3062  if (yydebug) \
3063  YYFPRINTF Args; \
3064 } while (0)
3065 
3066 /* This macro is provided for backward compatibility. */
3067 #ifndef YY_LOCATION_PRINT
3068 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
3069 #endif
3070 
3071 
3072 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
3073 do { \
3074  if (yydebug) \
3075  { \
3076  YYFPRINTF (stderr, "%s ", Title); \
3077  yy_symbol_print (stderr, \
3078  Type, Value); \
3079  YYFPRINTF (stderr, "\n"); \
3080  } \
3081 } while (0)
3082 
3083 
3084 /*----------------------------------------.
3085 | Print this symbol's value on YYOUTPUT. |
3086 `----------------------------------------*/
3087 
3088 static void
3089 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3090 {
3091  FILE *yyo = yyoutput;
3092  YYUSE (yyo);
3093  if (!yyvaluep)
3094  return;
3095 # ifdef YYPRINT
3096  if (yytype < YYNTOKENS)
3097  YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
3098 # endif
3099  YYUSE (yytype);
3100 }
3101 
3102 
3103 /*--------------------------------.
3104 | Print this symbol on YYOUTPUT. |
3105 `--------------------------------*/
3106 
3107 static void
3108 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
3109 {
3110  YYFPRINTF (yyoutput, "%s %s (",
3111  yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
3112 
3113  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
3114  YYFPRINTF (yyoutput, ")");
3115 }
3116 
3117 /*------------------------------------------------------------------.
3118 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
3119 | TOP (included). |
3120 `------------------------------------------------------------------*/
3121 
3122 static void
3123 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
3124 {
3125  YYFPRINTF (stderr, "Stack now");
3126  for (; yybottom <= yytop; yybottom++)
3127  {
3128  int yybot = *yybottom;
3129  YYFPRINTF (stderr, " %d", yybot);
3130  }
3131  YYFPRINTF (stderr, "\n");
3132 }
3133 
3134 # define YY_STACK_PRINT(Bottom, Top) \
3135 do { \
3136  if (yydebug) \
3137  yy_stack_print ((Bottom), (Top)); \
3138 } while (0)
3139 
3140 
3141 /*------------------------------------------------.
3142 | Report that the YYRULE is going to be reduced. |
3143 `------------------------------------------------*/
3144 
3145 static void
3146 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
3147 {
3148  unsigned long int yylno = yyrline[yyrule];
3149  int yynrhs = yyr2[yyrule];
3150  int yyi;
3151  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
3152  yyrule - 1, yylno);
3153  /* The symbols being reduced. */
3154  for (yyi = 0; yyi < yynrhs; yyi++)
3155  {
3156  YYFPRINTF (stderr, " $%d = ", yyi + 1);
3157  yy_symbol_print (stderr,
3158  yystos[yyssp[yyi + 1 - yynrhs]],
3159  &(yyvsp[(yyi + 1) - (yynrhs)])
3160  );
3161  YYFPRINTF (stderr, "\n");
3162  }
3163 }
3164 
3165 # define YY_REDUCE_PRINT(Rule) \
3166 do { \
3167  if (yydebug) \
3168  yy_reduce_print (yyssp, yyvsp, Rule); \
3169 } while (0)
3170 
3171 /* Nonzero means print parse trace. It is left uninitialized so that
3172  multiple parsers can coexist. */
3173 int yydebug;
3174 #else /* !YYDEBUG */
3175 # define YYDPRINTF(Args)
3176 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
3177 # define YY_STACK_PRINT(Bottom, Top)
3178 # define YY_REDUCE_PRINT(Rule)
3179 #endif /* !YYDEBUG */
3180 
3181 
3182 /* YYINITDEPTH -- initial size of the parser's stacks. */
3183 #ifndef YYINITDEPTH
3184 # define YYINITDEPTH 200
3185 #endif
3186 
3187 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
3188  if the built-in stack extension method is used).
3189 
3190  Do not make this value too large; the results are undefined if
3191  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
3192  evaluated with infinite-precision integer arithmetic. */
3193 
3194 #ifndef YYMAXDEPTH
3195 # define YYMAXDEPTH 10000
3196 #endif
3197 
3198 
3199 #if YYERROR_VERBOSE
3200 
3201 # ifndef yystrlen
3202 # if defined __GLIBC__ && defined _STRING_H
3203 # define yystrlen strlen
3204 # else
3205 /* Return the length of YYSTR. */
3206 static YYSIZE_T
3207 yystrlen (const char *yystr)
3208 {
3209  YYSIZE_T yylen;
3210  for (yylen = 0; yystr[yylen]; yylen++)
3211  continue;
3212  return yylen;
3213 }
3214 # endif
3215 # endif
3216 
3217 # ifndef yystpcpy
3218 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3219 # define yystpcpy stpcpy
3220 # else
3221 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
3222  YYDEST. */
3223 static char *
3224 yystpcpy (char *yydest, const char *yysrc)
3225 {
3226  char *yyd = yydest;
3227  const char *yys = yysrc;
3228 
3229  while ((*yyd++ = *yys++) != '\0')
3230  continue;
3231 
3232  return yyd - 1;
3233 }
3234 # endif
3235 # endif
3236 
3237 # ifndef yytnamerr
3238 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
3239  quotes and backslashes, so that it's suitable for yyerror. The
3240  heuristic is that double-quoting is unnecessary unless the string
3241  contains an apostrophe, a comma, or backslash (other than
3242  backslash-backslash). YYSTR is taken from yytname. If YYRES is
3243  null, do not copy; instead, return the length of what the result
3244  would have been. */
3245 static YYSIZE_T
3246 yytnamerr (char *yyres, const char *yystr)
3247 {
3248  if (*yystr == '"')
3249  {
3250  YYSIZE_T yyn = 0;
3251  char const *yyp = yystr;
3252 
3253  for (;;)
3254  switch (*++yyp)
3255  {
3256  case '\'':
3257  case ',':
3258  goto do_not_strip_quotes;
3259 
3260  case '\\':
3261  if (*++yyp != '\\')
3262  goto do_not_strip_quotes;
3263  /* Fall through. */
3264  default:
3265  if (yyres)
3266  yyres[yyn] = *yyp;
3267  yyn++;
3268  break;
3269 
3270  case '"':
3271  if (yyres)
3272  yyres[yyn] = '\0';
3273  return yyn;
3274  }
3275  do_not_strip_quotes: ;
3276  }
3277 
3278  if (! yyres)
3279  return yystrlen (yystr);
3280 
3281  return yystpcpy (yyres, yystr) - yyres;
3282 }
3283 # endif
3284 
3285 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3286  about the unexpected token YYTOKEN for the state stack whose top is
3287  YYSSP.
3288 
3289  Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
3290  not large enough to hold the message. In that case, also set
3291  *YYMSG_ALLOC to the required number of bytes. Return 2 if the
3292  required number of bytes is too large to store. */
3293 static int
3294 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3295  yytype_int16 *yyssp, int yytoken)
3296 {
3297  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3298  YYSIZE_T yysize = yysize0;
3299  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3300  /* Internationalized format string. */
3301  const char *yyformat = YY_NULLPTR;
3302  /* Arguments of yyformat. */
3303  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3304  /* Number of reported tokens (one for the "unexpected", one per
3305  "expected"). */
3306  int yycount = 0;
3307 
3308  /* There are many possibilities here to consider:
3309  - If this state is a consistent state with a default action, then
3310  the only way this function was invoked is if the default action
3311  is an error action. In that case, don't check for expected
3312  tokens because there are none.
3313  - The only way there can be no lookahead present (in yychar) is if
3314  this state is a consistent state with a default action. Thus,
3315  detecting the absence of a lookahead is sufficient to determine
3316  that there is no unexpected or expected token to report. In that
3317  case, just report a simple "syntax error".
3318  - Don't assume there isn't a lookahead just because this state is a
3319  consistent state with a default action. There might have been a
3320  previous inconsistent state, consistent state with a non-default
3321  action, or user semantic action that manipulated yychar.
3322  - Of course, the expected token list depends on states to have
3323  correct lookahead information, and it depends on the parser not
3324  to perform extra reductions after fetching a lookahead from the
3325  scanner and before detecting a syntax error. Thus, state merging
3326  (from LALR or IELR) and default reductions corrupt the expected
3327  token list. However, the list is correct for canonical LR with
3328  one exception: it will still contain any token that will not be
3329  accepted due to an error action in a later state.
3330  */
3331  if (yytoken != YYEMPTY)
3332  {
3333  int yyn = yypact[*yyssp];
3334  yyarg[yycount++] = yytname[yytoken];
3335  if (!yypact_value_is_default (yyn))
3336  {
3337  /* Start YYX at -YYN if negative to avoid negative indexes in
3338  YYCHECK. In other words, skip the first -YYN actions for
3339  this state because they are default actions. */
3340  int yyxbegin = yyn < 0 ? -yyn : 0;
3341  /* Stay within bounds of both yycheck and yytname. */
3342  int yychecklim = YYLAST - yyn + 1;
3343  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3344  int yyx;
3345 
3346  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3347  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3348  && !yytable_value_is_error (yytable[yyx + yyn]))
3349  {
3350  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3351  {
3352  yycount = 1;
3353  yysize = yysize0;
3354  break;
3355  }
3356  yyarg[yycount++] = yytname[yyx];
3357  {
3358  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3359  if (! (yysize <= yysize1
3360  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3361  return 2;
3362  yysize = yysize1;
3363  }
3364  }
3365  }
3366  }
3367 
3368  switch (yycount)
3369  {
3370 # define YYCASE_(N, S) \
3371  case N: \
3372  yyformat = S; \
3373  break
3374  default: /* Avoid compiler warnings. */
3375  YYCASE_(0, YY_("syntax error"));
3376  YYCASE_(1, YY_("syntax error, unexpected %s"));
3377  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3378  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3379  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3380  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3381 # undef YYCASE_
3382  }
3383 
3384  {
3385  YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3386  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
3387  return 2;
3388  yysize = yysize1;
3389  }
3390 
3391  if (*yymsg_alloc < yysize)
3392  {
3393  *yymsg_alloc = 2 * yysize;
3394  if (! (yysize <= *yymsg_alloc
3395  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3396  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3397  return 1;
3398  }
3399 
3400  /* Avoid sprintf, as that infringes on the user's name space.
3401  Don't have undefined behavior even if the translation
3402  produced a string with the wrong number of "%s"s. */
3403  {
3404  char *yyp = *yymsg;
3405  int yyi = 0;
3406  while ((*yyp = *yyformat) != '\0')
3407  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3408  {
3409  yyp += yytnamerr (yyp, yyarg[yyi++]);
3410  yyformat += 2;
3411  }
3412  else
3413  {
3414  yyp++;
3415  yyformat++;
3416  }
3417  }
3418  return 0;
3419 }
3420 #endif /* YYERROR_VERBOSE */
3421 
3422 /*-----------------------------------------------.
3423 | Release the memory associated to this symbol. |
3424 `-----------------------------------------------*/
3425 
3426 static void
3427 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3428 {
3429  YYUSE (yyvaluep);
3430  if (!yymsg)
3431  yymsg = "Deleting";
3432  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3433 
3435  YYUSE (yytype);
3437 }
3438 
3439 
3440 
3441 
3442 /* The lookahead symbol. */
3444 
3445 /* The semantic value of the lookahead symbol. */
3447 /* Number of syntax errors so far. */
3449 
3450 
3451 /*----------.
3452 | yyparse. |
3453 `----------*/
3454 
3455 int
3456 yyparse (void)
3457 {
3458  int yystate;
3459  /* Number of tokens to shift before error messages enabled. */
3460  int yyerrstatus;
3461 
3462  /* The stacks and their tools:
3463  'yyss': related to states.
3464  'yyvs': related to semantic values.
3465 
3466  Refer to the stacks through separate pointers, to allow yyoverflow
3467  to reallocate them elsewhere. */
3468 
3469  /* The state stack. */
3470  yytype_int16 yyssa[YYINITDEPTH];
3471  yytype_int16 *yyss;
3472  yytype_int16 *yyssp;
3473 
3474  /* The semantic value stack. */
3475  YYSTYPE yyvsa[YYINITDEPTH];
3476  YYSTYPE *yyvs;
3477  YYSTYPE *yyvsp;
3478 
3479  YYSIZE_T yystacksize;
3480 
3481  int yyn;
3482  int yyresult;
3483  /* Lookahead token as an internal (translated) token number. */
3484  int yytoken = 0;
3485  /* The variables used to return semantic value and location from the
3486  action routines. */
3487  YYSTYPE yyval;
3488 
3489 #if YYERROR_VERBOSE
3490  /* Buffer for error messages, and its allocated size. */
3491  char yymsgbuf[128];
3492  char *yymsg = yymsgbuf;
3493  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3494 #endif
3495 
3496 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3497 
3498  /* The number of symbols on the RHS of the reduced rule.
3499  Keep to zero when no symbol should be popped. */
3500  int yylen = 0;
3501 
3502  yyssp = yyss = yyssa;
3503  yyvsp = yyvs = yyvsa;
3504  yystacksize = YYINITDEPTH;
3505 
3506  YYDPRINTF ((stderr, "Starting parse\n"));
3507 
3508  yystate = 0;
3509  yyerrstatus = 0;
3510  yynerrs = 0;
3511  yychar = YYEMPTY; /* Cause a token to be read. */
3512  goto yysetstate;
3513 
3514 /*------------------------------------------------------------.
3515 | yynewstate -- Push a new state, which is found in yystate. |
3516 `------------------------------------------------------------*/
3517  yynewstate:
3518  /* In all cases, when you get here, the value and location stacks
3519  have just been pushed. So pushing a state here evens the stacks. */
3520  yyssp++;
3521 
3522  yysetstate:
3523  *yyssp = yystate;
3524 
3525  if (yyss + yystacksize - 1 <= yyssp)
3526  {
3527  /* Get the current used size of the three stacks, in elements. */
3528  YYSIZE_T yysize = yyssp - yyss + 1;
3529 
3530 #ifdef yyoverflow
3531  {
3532  /* Give user a chance to reallocate the stack. Use copies of
3533  these so that the &'s don't force the real ones into
3534  memory. */
3535  YYSTYPE *yyvs1 = yyvs;
3536  yytype_int16 *yyss1 = yyss;
3537 
3538  /* Each stack pointer address is followed by the size of the
3539  data in use in that stack, in bytes. This used to be a
3540  conditional around just the two extra args, but that might
3541  be undefined if yyoverflow is a macro. */
3542  yyoverflow (YY_("memory exhausted"),
3543  &yyss1, yysize * sizeof (*yyssp),
3544  &yyvs1, yysize * sizeof (*yyvsp),
3545  &yystacksize);
3546 
3547  yyss = yyss1;
3548  yyvs = yyvs1;
3549  }
3550 #else /* no yyoverflow */
3551 # ifndef YYSTACK_RELOCATE
3552  goto yyexhaustedlab;
3553 # else
3554  /* Extend the stack our own way. */
3555  if (YYMAXDEPTH <= yystacksize)
3556  goto yyexhaustedlab;
3557  yystacksize *= 2;
3558  if (YYMAXDEPTH < yystacksize)
3559  yystacksize = YYMAXDEPTH;
3560 
3561  {
3562  yytype_int16 *yyss1 = yyss;
3563  union yyalloc *yyptr =
3564  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3565  if (! yyptr)
3566  goto yyexhaustedlab;
3567  YYSTACK_RELOCATE (yyss_alloc, yyss);
3568  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3569 # undef YYSTACK_RELOCATE
3570  if (yyss1 != yyssa)
3571  YYSTACK_FREE (yyss1);
3572  }
3573 # endif
3574 #endif /* no yyoverflow */
3575 
3576  yyssp = yyss + yysize - 1;
3577  yyvsp = yyvs + yysize - 1;
3578 
3579  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3580  (unsigned long int) yystacksize));
3581 
3582  if (yyss + yystacksize - 1 <= yyssp)
3583  YYABORT;
3584  }
3585 
3586  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3587 
3588  if (yystate == YYFINAL)
3589  YYACCEPT;
3590 
3591  goto yybackup;
3592 
3593 /*-----------.
3594 | yybackup. |
3595 `-----------*/
3596 yybackup:
3597 
3598  /* Do appropriate processing given the current state. Read a
3599  lookahead token if we need one and don't already have one. */
3600 
3601  /* First try to decide what to do without reference to lookahead token. */
3602  yyn = yypact[yystate];
3603  if (yypact_value_is_default (yyn))
3604  goto yydefault;
3605 
3606  /* Not known => get a lookahead token if don't already have one. */
3607 
3608  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3609  if (yychar == YYEMPTY)
3610  {
3611  YYDPRINTF ((stderr, "Reading a token: "));
3612  yychar = yylex ();
3613  }
3614 
3615  if (yychar <= YYEOF)
3616  {
3617  yychar = yytoken = YYEOF;
3618  YYDPRINTF ((stderr, "Now at end of input.\n"));
3619  }
3620  else
3621  {
3622  yytoken = YYTRANSLATE (yychar);
3623  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3624  }
3625 
3626  /* If the proper action on seeing token YYTOKEN is to reduce or to
3627  detect an error, take that action. */
3628  yyn += yytoken;
3629  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3630  goto yydefault;
3631  yyn = yytable[yyn];
3632  if (yyn <= 0)
3633  {
3634  if (yytable_value_is_error (yyn))
3635  goto yyerrlab;
3636  yyn = -yyn;
3637  goto yyreduce;
3638  }
3639 
3640  /* Count tokens shifted since error; after three, turn off error
3641  status. */
3642  if (yyerrstatus)
3643  yyerrstatus--;
3644 
3645  /* Shift the lookahead token. */
3646  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3647 
3648  /* Discard the shifted token. */
3649  yychar = YYEMPTY;
3650 
3651  yystate = yyn;
3653  *++yyvsp = yylval;
3655 
3656  goto yynewstate;
3657 
3658 
3659 /*-----------------------------------------------------------.
3660 | yydefault -- do the default action for the current state. |
3661 `-----------------------------------------------------------*/
3662 yydefault:
3663  yyn = yydefact[yystate];
3664  if (yyn == 0)
3665  goto yyerrlab;
3666  goto yyreduce;
3667 
3668 
3669 /*-----------------------------.
3670 | yyreduce -- Do a reduction. |
3671 `-----------------------------*/
3672 yyreduce:
3673  /* yyn is the number of a rule to reduce with. */
3674  yylen = yyr2[yyn];
3675 
3676  /* If YYLEN is nonzero, implement the default value of the action:
3677  '$$ = $1'.
3678 
3679  Otherwise, the following line sets YYVAL to garbage.
3680  This behavior is undocumented and Bison
3681  users should not rely upon it. Assigning to YYVAL
3682  unconditionally makes the parser a bit smaller, and it avoids a
3683  GCC warning that YYVAL may be used uninitialized. */
3684  yyval = yyvsp[1-yylen];
3685 
3686 
3687  YY_REDUCE_PRINT (yyn);
3688  switch (yyn)
3689  {
3690  case 4:
3691 #line 273 "parser.y" /* yacc.c:1648 */
3692  {
3693  (yyval)=(yyvsp[-1]);
3694  stack((yyval)).id(ID_symbol);
3695  irep_idt value=stack((yyvsp[0])).get(ID_value);
3696  stack((yyval)).set(ID_C_base_name, value);
3697  stack((yyval)).set(ID_identifier, value);
3698  stack((yyval)).set(
3699  ID_C_id_class, static_cast<int>(ansi_c_id_classt::ANSI_C_SYMBOL));
3700  }
3701 #line 3702 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3702  break;
3703 
3704  case 16:
3705 #line 318 "parser.y" /* yacc.c:1648 */
3706  { (yyval) = (yyvsp[-1]); }
3707 #line 3708 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3708  break;
3709 
3710  case 24:
3711 #line 330 "parser.y" /* yacc.c:1648 */
3712  {
3713  (yyval)=(yyvsp[-5]);
3714  set((yyval), ID_generic_selection);
3715  mto((yyval), (yyvsp[-3]));
3716  stack((yyval)).add(ID_generic_associations).get_sub().swap((irept::subt&)stack((yyvsp[-1])).operands());
3717  }
3718 #line 3719 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3719  break;
3720 
3721  case 25:
3722 #line 340 "parser.y" /* yacc.c:1648 */
3723  {
3724  init((yyval)); mto((yyval), (yyvsp[0]));
3725  }
3726 #line 3727 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3727  break;
3728 
3729  case 26:
3730 #line 344 "parser.y" /* yacc.c:1648 */
3731  {
3732  (yyval)=(yyvsp[-2]); mto((yyval), (yyvsp[0]));
3733  }
3734 #line 3735 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3735  break;
3736 
3737  case 27:
3738 #line 351 "parser.y" /* yacc.c:1648 */
3739  {
3740  (yyval)=(yyvsp[-1]);
3741  stack((yyval)).id(ID_generic_association);
3742  stack((yyval)).set(ID_type_arg, stack((yyvsp[-2])));
3743  stack((yyval)).set(ID_value, stack((yyvsp[0])));
3744  }
3745 #line 3746 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3746  break;
3747 
3748  case 28:
3749 #line 358 "parser.y" /* yacc.c:1648 */
3750  {
3751  (yyval)=(yyvsp[-1]);
3752  stack((yyval)).id(ID_generic_association);
3753  stack((yyval)).set(ID_type_arg, irept(ID_default));
3754  stack((yyval)).set(ID_value, stack((yyvsp[0])));
3755  }
3756 #line 3757 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3757  break;
3758 
3759  case 29:
3760 #line 368 "parser.y" /* yacc.c:1648 */
3761  {
3762  (yyval)=(yyvsp[-5]);
3763  stack((yyval)).id(ID_gcc_builtin_va_arg);
3764  mto((yyval), (yyvsp[-3]));
3765  stack((yyval)).type().swap(stack((yyvsp[-1])));
3766  }
3767 #line 3768 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3768  break;
3769 
3770  case 30:
3771 #line 376 "parser.y" /* yacc.c:1648 */
3772  {
3773  (yyval)=(yyvsp[-5]);
3774  stack((yyval)).id(ID_gcc_builtin_types_compatible_p);
3775  typet &type_arg=(typet &)(stack((yyval)).add(ID_type_arg));
3776  typet::subtypest &subtypes=type_arg.subtypes();
3777  subtypes.resize(2);
3778  subtypes[0].swap(stack((yyvsp[-3])));
3779  subtypes[1].swap(stack((yyvsp[-1])));
3780  }
3781 #line 3782 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3782  break;
3783 
3784  case 31:
3785 #line 389 "parser.y" /* yacc.c:1648 */
3786  {
3787  (yyval)=(yyvsp[-5]);
3788  stack((yyval)).id(ID_clang_builtin_convertvector);
3789  mto((yyval), (yyvsp[-3]));
3790  stack((yyval)).type().swap(stack((yyvsp[-1])));
3791  }
3792 #line 3793 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3793  break;
3794 
3795  case 32:
3796 #line 399 "parser.y" /* yacc.c:1648 */
3797  {
3798  (yyval)=(yyvsp[-3]);
3799  stack((yyval)).id(ID_cw_va_arg_typeof);
3800  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
3801  }
3802 #line 3803 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3803  break;
3804 
3805  case 33:
3806 #line 408 "parser.y" /* yacc.c:1648 */
3807  {
3808  (yyval)=(yyvsp[-5]);
3809  stack((yyval)).id(ID_builtin_offsetof);
3810  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-3])));
3811  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-1])));
3812  }
3813 #line 3814 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3814  break;
3815 
3816  case 34:
3817 #line 418 "parser.y" /* yacc.c:1648 */
3818  {
3819  init((yyval), ID_designated_initializer);
3820  stack((yyval)).operands().resize(1);
3821  stack((yyval)).op0().id(ID_member);
3822  stack((yyval)).op0().add_source_location()=stack((yyvsp[0])).source_location();
3823  stack((yyval)).op0().set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3824  }
3825 #line 3826 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3826  break;
3827 
3828  case 35:
3829 #line 426 "parser.y" /* yacc.c:1648 */
3830  {
3831  (yyval)=(yyvsp[-2]);
3832  set((yyvsp[-1]), ID_member);
3833  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3834  mto((yyval), (yyvsp[-1]));
3835  }
3836 #line 3837 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3837  break;
3838 
3839  case 36:
3840 #line 433 "parser.y" /* yacc.c:1648 */
3841  {
3842  (yyval)=(yyvsp[-3]);
3843  set((yyvsp[-2]), ID_index);
3844  mto((yyvsp[-2]), (yyvsp[-1]));
3845  mto((yyval), (yyvsp[-2]));
3846  }
3847 #line 3848 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3848  break;
3849 
3850  case 37:
3851 #line 440 "parser.y" /* yacc.c:1648 */
3852  {
3853  (yyval)=(yyvsp[-2]);
3854  set((yyvsp[-1]), ID_index);
3855  exprt tmp=convert_integer_literal("0");
3856  stack((yyvsp[-1])).move_to_operands(tmp);
3857  mto((yyval), (yyvsp[-1]));
3858  set((yyvsp[-1]), ID_member);
3859  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
3860  mto((yyval), (yyvsp[-1]));
3861  }
3862 #line 3863 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3863  break;
3864 
3865  case 38:
3866 #line 454 "parser.y" /* yacc.c:1648 */
3867  {
3868  (yyval)=(yyvsp[-5]);
3869  set((yyval), ID_forall);
3870  mto((yyval), (yyvsp[-2]));
3871  mto((yyval), (yyvsp[-1]));
3872  PARSER.pop_scope();
3873  }
3874 #line 3875 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3875  break;
3876 
3877  case 39:
3878 #line 462 "parser.y" /* yacc.c:1648 */
3879  {
3880  // The precedence of this operator is too high; it is meant
3881  // to bind only very weakly.
3882  (yyval)=(yyvsp[-3]);
3883  set((yyval), ID_forall);
3884  mto((yyval), (yyvsp[-1]));
3885  mto((yyval), (yyvsp[0]));
3886  PARSER.pop_scope();
3887  }
3888 #line 3889 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3889  break;
3890 
3891  case 40:
3892 #line 472 "parser.y" /* yacc.c:1648 */
3893  {
3894  (yyval)=(yyvsp[-5]);
3895  set((yyval), ID_exists);
3896  mto((yyval), (yyvsp[-2]));
3897  mto((yyval), (yyvsp[-1]));
3898  PARSER.pop_scope();
3899  }
3900 #line 3901 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3901  break;
3902 
3903  case 41:
3904 #line 480 "parser.y" /* yacc.c:1648 */
3905  {
3906  // The precedence of this operator is too high; it is meant
3907  // to bind only very weakly.
3908  (yyval)=(yyvsp[-3]);
3909  set((yyval), ID_exists);
3910  mto((yyval), (yyvsp[-1]));
3911  mto((yyval), (yyvsp[0]));
3912  PARSER.pop_scope();
3913  }
3914 #line 3915 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3915  break;
3916 
3917  case 42:
3918 #line 493 "parser.y" /* yacc.c:1648 */
3919  { init((yyval)); stack((yyval)).make_nil(); }
3920 #line 3921 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3921  break;
3922 
3923  case 43:
3924 #line 495 "parser.y" /* yacc.c:1648 */
3925  { (yyval)=(yyvsp[-1]); }
3926 #line 3927 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3927  break;
3928 
3929  case 44:
3930 #line 500 "parser.y" /* yacc.c:1648 */
3931  { init((yyval)); stack((yyval)).make_nil(); }
3932 #line 3933 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3933  break;
3934 
3935  case 45:
3936 #line 502 "parser.y" /* yacc.c:1648 */
3937  { (yyval)=(yyvsp[-1]); }
3938 #line 3939 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3939  break;
3940 
3941  case 46:
3942 #line 507 "parser.y" /* yacc.c:1648 */
3943  { init((yyval)); stack((yyval)).make_nil(); }
3944 #line 3945 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3945  break;
3946 
3947  case 47:
3948 #line 509 "parser.y" /* yacc.c:1648 */
3949  { (yyval)=(yyvsp[-1]); }
3950 #line 3951 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3951  break;
3952 
3953  case 48:
3954 #line 513 "parser.y" /* yacc.c:1648 */
3955  {
3956  (yyval)=(yyvsp[-2]);
3957  set((yyval), ID_side_effect);
3958  stack((yyval)).set(ID_statement, ID_statement_expression);
3959  mto((yyval), (yyvsp[-1]));
3960  }
3961 #line 3962 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3962  break;
3963 
3964  case 50:
3965 #line 524 "parser.y" /* yacc.c:1648 */
3966  { binary((yyval), (yyvsp[-3]), (yyvsp[-2]), ID_index, (yyvsp[-1])); }
3967 #line 3968 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3968  break;
3969 
3970  case 51:
3971 #line 526 "parser.y" /* yacc.c:1648 */
3972  { (yyval)=(yyvsp[-1]);
3973  set((yyval), ID_side_effect);
3974  stack((yyval)).set(ID_statement, ID_function_call);
3975  stack((yyval)).operands().resize(2);
3976  stack((yyval)).op0().swap(stack((yyvsp[-2])));
3977  stack((yyval)).op1().clear();
3978  stack((yyval)).op1().id(ID_arguments);
3979  }
3980 #line 3981 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3981  break;
3982 
3983  case 52:
3984 #line 535 "parser.y" /* yacc.c:1648 */
3985  { (yyval)=(yyvsp[-2]);
3986  set((yyval), ID_side_effect);
3987  stack((yyval)).set(ID_statement, ID_function_call);
3988  stack((yyval)).operands().resize(2);
3989  stack((yyval)).op0().swap(stack((yyvsp[-3])));
3990  stack((yyval)).op1().swap(stack((yyvsp[-1])));
3991  stack((yyval)).op1().id(ID_arguments);
3992  }
3993 #line 3994 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
3994  break;
3995 
3996  case 53:
3997 #line 544 "parser.y" /* yacc.c:1648 */
3998  { (yyval)=(yyvsp[-1]);
3999  set((yyval), ID_member);
4000  mto((yyval), (yyvsp[-2]));
4001  stack((yyval)).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
4002  }
4003 #line 4004 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4004  break;
4005 
4006  case 54:
4007 #line 550 "parser.y" /* yacc.c:1648 */
4008  { (yyval)=(yyvsp[-1]);
4009  set((yyval), ID_ptrmember);
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 55:
4017 #line 556 "parser.y" /* yacc.c:1648 */
4018  { (yyval)=(yyvsp[0]);
4019  set((yyval), ID_side_effect);
4020  stack((yyval)).set(ID_statement, ID_postincrement);
4021  mto((yyval), (yyvsp[-1]));
4022  }
4023 #line 4024 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4024  break;
4025 
4026  case 56:
4027 #line 562 "parser.y" /* yacc.c:1648 */
4028  { (yyval)=(yyvsp[0]);
4029  set((yyval), ID_side_effect);
4030  stack((yyval)).set(ID_statement, ID_postdecrement);
4031  mto((yyval), (yyvsp[-1]));
4032  }
4033 #line 4034 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4034  break;
4035 
4036  case 57:
4037 #line 569 "parser.y" /* yacc.c:1648 */
4038  {
4039  exprt tmp(ID_initializer_list);
4040  tmp.add_source_location()=stack((yyvsp[-2])).source_location();
4041  tmp.operands().swap(stack((yyvsp[-1])).operands());
4042  (yyval)=(yyvsp[-5]);
4043  set((yyval), ID_typecast);
4044  stack((yyval)).move_to_operands(tmp);
4045  stack((yyval)).type().swap(stack((yyvsp[-4])));
4046  }
4047 #line 4048 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4048  break;
4049 
4050  case 58:
4051 #line 579 "parser.y" /* yacc.c:1648 */
4052  {
4053  // same as above
4054  exprt tmp(ID_initializer_list);
4055  tmp.add_source_location()=stack((yyvsp[-3])).source_location();
4056  tmp.operands().swap(stack((yyvsp[-2])).operands());
4057  (yyval)=(yyvsp[-6]);
4058  set((yyval), ID_typecast);
4059  stack((yyval)).move_to_operands(tmp);
4060  stack((yyval)).type().swap(stack((yyvsp[-5])));
4061  }
4062 #line 4063 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4063  break;
4064 
4065  case 61:
4066 #line 598 "parser.y" /* yacc.c:1648 */
4067  {
4068  init((yyval), ID_expression_list);
4069  mto((yyval), (yyvsp[0]));
4070  }
4071 #line 4072 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4072  break;
4073 
4074  case 62:
4075 #line 603 "parser.y" /* yacc.c:1648 */
4076  {
4077  (yyval)=(yyvsp[-2]);
4078  mto((yyval), (yyvsp[0]));
4079  }
4080 #line 4081 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4081  break;
4082 
4083  case 64:
4084 #line 612 "parser.y" /* yacc.c:1648 */
4085  { (yyval)=(yyvsp[-1]);
4086  set((yyval), ID_side_effect);
4087  stack((yyval)).set(ID_statement, ID_preincrement);
4088  mto((yyval), (yyvsp[0]));
4089  }
4090 #line 4091 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4091  break;
4092 
4093  case 65:
4094 #line 618 "parser.y" /* yacc.c:1648 */
4095  { (yyval)=(yyvsp[-1]);
4096  set((yyval), ID_side_effect);
4097  stack((yyval)).set(ID_statement, ID_predecrement);
4098  mto((yyval), (yyvsp[0]));
4099  }
4100 #line 4101 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4101  break;
4102 
4103  case 66:
4104 #line 624 "parser.y" /* yacc.c:1648 */
4105  { (yyval)=(yyvsp[-1]);
4106  set((yyval), ID_address_of);
4107  mto((yyval), (yyvsp[0]));
4108  }
4109 #line 4110 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4110  break;
4111 
4112  case 67:
4113 #line 629 "parser.y" /* yacc.c:1648 */
4114  { // this takes the address of a label (a gcc extension)
4115  (yyval)=(yyvsp[-1]);
4116  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[0])).get(ID_C_base_name));
4117  set((yyval), ID_address_of);
4118  stack((yyval)).operands().resize(1);
4119  stack((yyval)).op0()=stack((yyvsp[0]));
4120  stack((yyval)).op0().id(ID_label);
4121  stack((yyval)).op0().set(ID_identifier, identifier);
4122  }
4123 #line 4124 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4124  break;
4125 
4126  case 68:
4127 #line 639 "parser.y" /* yacc.c:1648 */
4128  { (yyval)=(yyvsp[-1]);
4129  set((yyval), ID_dereference);
4130  mto((yyval), (yyvsp[0]));
4131  }
4132 #line 4133 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4133  break;
4134 
4135  case 69:
4136 #line 644 "parser.y" /* yacc.c:1648 */
4137  { (yyval)=(yyvsp[-1]);
4138  set((yyval), ID_unary_plus);
4139  mto((yyval), (yyvsp[0]));
4140  }
4141 #line 4142 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4142  break;
4143 
4144  case 70:
4145 #line 649 "parser.y" /* yacc.c:1648 */
4146  { (yyval)=(yyvsp[-1]);
4147  set((yyval), ID_unary_minus);
4148  mto((yyval), (yyvsp[0]));
4149  }
4150 #line 4151 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4151  break;
4152 
4153  case 71:
4154 #line 654 "parser.y" /* yacc.c:1648 */
4155  { (yyval)=(yyvsp[-1]);
4156  set((yyval), ID_bitnot);
4157  mto((yyval), (yyvsp[0]));
4158  }
4159 #line 4160 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4160  break;
4161 
4162  case 72:
4163 #line 659 "parser.y" /* yacc.c:1648 */
4164  { (yyval)=(yyvsp[-1]);
4165  set((yyval), ID_not);
4166  mto((yyval), (yyvsp[0]));
4167  }
4168 #line 4169 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4169  break;
4170 
4171  case 73:
4172 #line 664 "parser.y" /* yacc.c:1648 */
4173  { (yyval)=(yyvsp[-1]);
4174  set((yyval), ID_sizeof);
4175  mto((yyval), (yyvsp[0]));
4176  }
4177 #line 4178 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4178  break;
4179 
4180  case 74:
4181 #line 669 "parser.y" /* yacc.c:1648 */
4182  { (yyval)=(yyvsp[-3]);
4183  set((yyval), ID_sizeof);
4184  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
4185  }
4186 #line 4187 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4187  break;
4188 
4189  case 75:
4190 #line 674 "parser.y" /* yacc.c:1648 */
4191  { // note no parentheses for expressions, just like sizeof
4192  (yyval)=(yyvsp[-1]);
4193  set((yyval), ID_alignof);
4194  mto((yyval), (yyvsp[0]));
4195  }
4196 #line 4197 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4197  break;
4198 
4199  case 76:
4200 #line 680 "parser.y" /* yacc.c:1648 */
4201  {
4202  (yyval)=(yyvsp[-3]);
4203  stack((yyval)).id(ID_alignof);
4204  stack((yyval)).add(ID_type_arg).swap(stack((yyvsp[-1])));
4205  }
4206 #line 4207 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4207  break;
4208 
4209  case 78:
4210 #line 690 "parser.y" /* yacc.c:1648 */
4211  {
4212  (yyval)=(yyvsp[-3]);
4213  set((yyval), ID_typecast);
4214  mto((yyval), (yyvsp[0]));
4215  stack((yyval)).type().swap(stack((yyvsp[-2])));
4216  }
4217 #line 4218 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4218  break;
4219 
4220  case 79:
4221 #line 697 "parser.y" /* yacc.c:1648 */
4222  { (yyval)=(yyvsp[-1]);
4223  set((yyval), ID_complex_real);
4224  mto((yyval), (yyvsp[0]));
4225  }
4226 #line 4227 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4227  break;
4228 
4229  case 80:
4230 #line 702 "parser.y" /* yacc.c:1648 */
4231  { (yyval)=(yyvsp[-1]);
4232  set((yyval), ID_complex_imag);
4233  mto((yyval), (yyvsp[0]));
4234  }
4235 #line 4236 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4236  break;
4237 
4238  case 82:
4239 #line 711 "parser.y" /* yacc.c:1648 */
4240  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_mult, (yyvsp[0])); }
4241 #line 4242 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4242  break;
4243 
4244  case 83:
4245 #line 713 "parser.y" /* yacc.c:1648 */
4246  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_div, (yyvsp[0])); }
4247 #line 4248 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4248  break;
4249 
4250  case 84:
4251 #line 715 "parser.y" /* yacc.c:1648 */
4252  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_mod, (yyvsp[0])); }
4253 #line 4254 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4254  break;
4255 
4256  case 86:
4257 #line 721 "parser.y" /* yacc.c:1648 */
4258  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_plus, (yyvsp[0])); }
4259 #line 4260 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4260  break;
4261 
4262  case 87:
4263 #line 723 "parser.y" /* yacc.c:1648 */
4264  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_minus, (yyvsp[0])); }
4265 #line 4266 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4266  break;
4267 
4268  case 89:
4269 #line 729 "parser.y" /* yacc.c:1648 */
4270  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_shl, (yyvsp[0])); }
4271 #line 4272 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4272  break;
4273 
4274  case 90:
4275 #line 731 "parser.y" /* yacc.c:1648 */
4276  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_shr, (yyvsp[0])); }
4277 #line 4278 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4278  break;
4279 
4280  case 92:
4281 #line 737 "parser.y" /* yacc.c:1648 */
4282  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_lt, (yyvsp[0])); }
4283 #line 4284 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4284  break;
4285 
4286  case 93:
4287 #line 739 "parser.y" /* yacc.c:1648 */
4288  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_gt, (yyvsp[0])); }
4289 #line 4290 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4290  break;
4291 
4292  case 94:
4293 #line 741 "parser.y" /* yacc.c:1648 */
4294  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_le, (yyvsp[0])); }
4295 #line 4296 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4296  break;
4297 
4298  case 95:
4299 #line 743 "parser.y" /* yacc.c:1648 */
4300  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_ge, (yyvsp[0])); }
4301 #line 4302 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4302  break;
4303 
4304  case 97:
4305 #line 749 "parser.y" /* yacc.c:1648 */
4306  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_equal, (yyvsp[0])); }
4307 #line 4308 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4308  break;
4309 
4310  case 98:
4311 #line 751 "parser.y" /* yacc.c:1648 */
4312  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_notequal, (yyvsp[0])); }
4313 #line 4314 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4314  break;
4315 
4316  case 100:
4317 #line 757 "parser.y" /* yacc.c:1648 */
4318  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitand, (yyvsp[0])); }
4319 #line 4320 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4320  break;
4321 
4322  case 102:
4323 #line 763 "parser.y" /* yacc.c:1648 */
4324  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitxor, (yyvsp[0])); }
4325 #line 4326 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4326  break;
4327 
4328  case 104:
4329 #line 769 "parser.y" /* yacc.c:1648 */
4330  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_bitor, (yyvsp[0])); }
4331 #line 4332 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4332  break;
4333 
4334  case 106:
4335 #line 775 "parser.y" /* yacc.c:1648 */
4336  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_and, (yyvsp[0])); }
4337 #line 4338 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4338  break;
4339 
4340  case 108:
4341 #line 781 "parser.y" /* yacc.c:1648 */
4342  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_or, (yyvsp[0])); }
4343 #line 4344 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4344  break;
4345 
4346  case 110:
4347 #line 790 "parser.y" /* yacc.c:1648 */
4348  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_implies, (yyvsp[0])); }
4349 #line 4350 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4350  break;
4351 
4352  case 112:
4353 #line 799 "parser.y" /* yacc.c:1648 */
4354  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_equal, (yyvsp[0])); }
4355 #line 4356 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4356  break;
4357 
4358  case 114:
4359 #line 805 "parser.y" /* yacc.c:1648 */
4360  { (yyval)=(yyvsp[-3]);
4361  stack((yyval)).id(ID_if);
4362  mto((yyval), (yyvsp[-4]));
4363  mto((yyval), (yyvsp[-2]));
4364  mto((yyval), (yyvsp[0]));
4365  }
4366 #line 4367 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4367  break;
4368 
4369  case 115:
4370 #line 812 "parser.y" /* yacc.c:1648 */
4371  { (yyval)=(yyvsp[-2]);
4372  stack((yyval)).id(ID_side_effect);
4373  stack((yyval)).set(ID_statement, ID_gcc_conditional_expression);
4374  mto((yyval), (yyvsp[-3]));
4375  mto((yyval), (yyvsp[0]));
4376  }
4377 #line 4378 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4378  break;
4379 
4380  case 117:
4381 #line 823 "parser.y" /* yacc.c:1648 */
4382  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign); }
4383 #line 4384 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4384  break;
4385 
4386  case 118:
4387 #line 825 "parser.y" /* yacc.c:1648 */
4388  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_mult); }
4389 #line 4390 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4390  break;
4391 
4392  case 119:
4393 #line 827 "parser.y" /* yacc.c:1648 */
4394  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_div); }
4395 #line 4396 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4396  break;
4397 
4398  case 120:
4399 #line 829 "parser.y" /* yacc.c:1648 */
4400  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_mod); }
4401 #line 4402 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4402  break;
4403 
4404  case 121:
4405 #line 831 "parser.y" /* yacc.c:1648 */
4406  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_plus); }
4407 #line 4408 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4408  break;
4409 
4410  case 122:
4411 #line 833 "parser.y" /* yacc.c:1648 */
4412  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_minus); }
4413 #line 4414 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4414  break;
4415 
4416  case 123:
4417 #line 835 "parser.y" /* yacc.c:1648 */
4418  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_shl); }
4419 #line 4420 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4420  break;
4421 
4422  case 124:
4423 #line 837 "parser.y" /* yacc.c:1648 */
4424  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_shr); }
4425 #line 4426 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4426  break;
4427 
4428  case 125:
4429 #line 839 "parser.y" /* yacc.c:1648 */
4430  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitand); }
4431 #line 4432 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4432  break;
4433 
4434  case 126:
4435 #line 841 "parser.y" /* yacc.c:1648 */
4436  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitxor); }
4437 #line 4438 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4438  break;
4439 
4440  case 127:
4441 #line 843 "parser.y" /* yacc.c:1648 */
4442  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_side_effect, (yyvsp[0])); stack((yyval)).set(ID_statement, ID_assign_bitor); }
4443 #line 4444 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4444  break;
4445 
4446  case 129:
4447 #line 849 "parser.y" /* yacc.c:1648 */
4448  { binary((yyval), (yyvsp[-2]), (yyvsp[-1]), ID_comma, (yyvsp[0])); }
4449 #line 4450 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4450  break;
4451 
4452  case 131:
4453 #line 858 "parser.y" /* yacc.c:1648 */
4454  { init((yyval)); stack((yyval)).make_nil(); }
4455 #line 4456 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4456  break;
4457 
4458  case 133:
4459 #line 866 "parser.y" /* yacc.c:1648 */
4460  {
4461  // type only, no declarator!
4462  init((yyval), ID_declaration);
4463  stack((yyval)).type().swap(stack((yyvsp[-1])));
4464  }
4465 #line 4466 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4466  break;
4467 
4468  case 134:
4469 #line 872 "parser.y" /* yacc.c:1648 */
4470  {
4471  // type only, no identifier!
4472  init((yyval), ID_declaration);
4473  stack((yyval)).type().swap(stack((yyvsp[-1])));
4474  }
4475 #line 4476 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4476  break;
4477 
4478  case 138:
4479 #line 884 "parser.y" /* yacc.c:1648 */
4480  {
4481  (yyval)=(yyvsp[-5]);
4482  set((yyval), ID_declaration);
4484  mto((yyval), (yyvsp[-3]));
4485  mto((yyval), (yyvsp[-1]));
4486  }
4487 #line 4488 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4488  break;
4489 
4490  case 139:
4491 #line 895 "parser.y" /* yacc.c:1648 */
4492  {
4493  init((yyval), ID_declaration);
4494  stack((yyval)).type().swap(stack((yyvsp[-1])));
4495  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
4496  }
4497 #line 4498 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4498  break;
4499 
4500  case 140:
4501 #line 901 "parser.y" /* yacc.c:1648 */
4502  {
4503  // patch on the initializer
4504  (yyval)=(yyvsp[-1]);
4505  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4506  }
4507 #line 4508 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4508  break;
4509 
4510  case 141:
4511 #line 907 "parser.y" /* yacc.c:1648 */
4512  {
4513  init((yyval), ID_declaration);
4514  stack((yyval)).type().swap(stack((yyvsp[-1])));
4515  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
4516  }
4517 #line 4518 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4518  break;
4519 
4520  case 142:
4521 #line 913 "parser.y" /* yacc.c:1648 */
4522  {
4523  // patch on the initializer
4524  (yyval)=(yyvsp[-1]);
4525  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4526  }
4527 #line 4528 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4528  break;
4529 
4530  case 143:
4531 #line 919 "parser.y" /* yacc.c:1648 */
4532  {
4533  // just add the declarator
4534  PARSER.add_declarator(stack((yyvsp[-2])), stack((yyvsp[0])));
4535  // Needs to be done before initializer, as we want to see that identifier
4536  // already there!
4537  }
4538 #line 4539 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4539  break;
4540 
4541  case 144:
4542 #line 926 "parser.y" /* yacc.c:1648 */
4543  {
4544  // patch on the initializer
4545  (yyval)=(yyvsp[-4]);
4546  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4547  }
4548 #line 4549 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4549  break;
4550 
4551  case 145:
4552 #line 935 "parser.y" /* yacc.c:1648 */
4553  {
4554  (yyval)=(yyvsp[-4]);
4555  stack((yyval)).id(ID_asm);
4556  stack((yyval)).set(ID_flavor, ID_gcc);
4557  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
4558  }
4559 #line 4560 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4560  break;
4561 
4562  case 147:
4563 #line 946 "parser.y" /* yacc.c:1648 */
4564  {
4565  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4566  }
4567 #line 4568 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4568  break;
4569 
4570  case 149:
4571 #line 954 "parser.y" /* yacc.c:1648 */
4572  {
4573  init((yyval));
4574  }
4575 #line 4576 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4576  break;
4577 
4578  case 151:
4579 #line 963 "parser.y" /* yacc.c:1648 */
4580  {
4581  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute
4582 
4583  // the symbol has to be visible during initialization
4584  init((yyval), ID_declaration);
4585  stack((yyval)).type().swap(stack((yyvsp[-2])));
4586  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
4587  }
4588 #line 4589 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4589  break;
4590 
4591  case 152:
4592 #line 972 "parser.y" /* yacc.c:1648 */
4593  {
4594  // add the initializer
4595  (yyval)=(yyvsp[-1]);
4596  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4597  }
4598 #line 4599 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4599  break;
4600 
4601  case 153:
4602 #line 979 "parser.y" /* yacc.c:1648 */
4603  {
4604  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1]));
4605 
4606  // the symbol has to be visible during initialization
4607  init((yyval), ID_declaration);
4608  stack((yyval)).type().swap(stack((yyvsp[-2])));
4609  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
4610  }
4611 #line 4612 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4612  break;
4613 
4614  case 154:
4615 #line 988 "parser.y" /* yacc.c:1648 */
4616  {
4617  // add the initializer
4618  (yyval)=(yyvsp[-1]);
4619  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4620  }
4621 #line 4622 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4622  break;
4623 
4624  case 155:
4625 #line 995 "parser.y" /* yacc.c:1648 */
4626  {
4627  // handled as typeof(initializer)
4628  stack((yyvsp[-4])).id(ID_typeof);
4629  stack((yyvsp[-4])).copy_to_operands(stack((yyvsp[0])));
4630 
4631  (yyvsp[-3])=merge((yyvsp[-2]), (yyvsp[-3]));
4632 
4633  // the symbol has to be visible during initialization
4634  init((yyval), ID_declaration);
4635  stack((yyval)).type().swap(stack((yyvsp[-4])));
4636  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-3])));
4637  // add the initializer
4638  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4639  }
4640 #line 4641 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4641  break;
4642 
4643  case 156:
4644 #line 1011 "parser.y" /* yacc.c:1648 */
4645  {
4646  // type attribute goes into declarator
4647  (yyvsp[0])=merge((yyvsp[0]), (yyvsp[-2]));
4648  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1]));
4649  PARSER.add_declarator(stack((yyvsp[-4])), stack((yyvsp[-1])));
4650  }
4651 #line 4652 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4652  break;
4653 
4654  case 157:
4655 #line 1018 "parser.y" /* yacc.c:1648 */
4656  {
4657  // add in the initializer
4658  (yyval)=(yyvsp[-6]);
4659  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
4660  }
4661 #line 4662 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4662  break;
4663 
4664  case 169:
4665 #line 1044 "parser.y" /* yacc.c:1648 */
4666  {
4667  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4668  }
4669 #line 4670 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4670  break;
4671 
4672  case 171:
4673 #line 1049 "parser.y" /* yacc.c:1648 */
4674  {
4675  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4676  }
4677 #line 4678 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4678  break;
4679 
4680  case 172:
4681 #line 1053 "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 174:
4689 #line 1061 "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 175:
4697 #line 1068 "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 177:
4705 #line 1076 "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 180:
4713 #line 1087 "parser.y" /* yacc.c:1648 */
4714  { (yyval)=(yyvsp[0]); set((yyval), ID_atomic); }
4715 #line 4716 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4716  break;
4717 
4718  case 181:
4719 #line 1088 "parser.y" /* yacc.c:1648 */
4720  { (yyval)=(yyvsp[0]); set((yyval), ID_const); }
4721 #line 4722 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4722  break;
4723 
4724  case 182:
4725 #line 1089 "parser.y" /* yacc.c:1648 */
4726  { (yyval)=(yyvsp[0]); set((yyval), ID_restrict); }
4727 #line 4728 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4728  break;
4729 
4730  case 183:
4731 #line 1090 "parser.y" /* yacc.c:1648 */
4732  { (yyval)=(yyvsp[0]); set((yyval), ID_volatile); }
4733 #line 4734 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4734  break;
4735 
4736  case 184:
4737 #line 1091 "parser.y" /* yacc.c:1648 */
4738  { (yyval)=(yyvsp[0]); set((yyval), ID_cprover_atomic); }
4739 #line 4740 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4740  break;
4741 
4742  case 185:
4743 #line 1092 "parser.y" /* yacc.c:1648 */
4744  { (yyval)=(yyvsp[0]); set((yyval), ID_ptr32); }
4745 #line 4746 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4746  break;
4747 
4748  case 186:
4749 #line 1093 "parser.y" /* yacc.c:1648 */
4750  { (yyval)=(yyvsp[0]); set((yyval), ID_ptr64); }
4751 #line 4752 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4752  break;
4753 
4754  case 187:
4755 #line 1094 "parser.y" /* yacc.c:1648 */
4756  { (yyval)=(yyvsp[-3]); set((yyval), ID_msc_based); mto((yyval), (yyvsp[-1])); }
4757 #line 4758 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4758  break;
4759 
4760  case 189:
4761 #line 1100 "parser.y" /* yacc.c:1648 */
4762  { (yyval) = (yyvsp[-3]);
4763  stack((yyval)).id(ID_aligned);
4764  stack((yyval)).set(ID_size, stack((yyvsp[-1])));
4765  }
4766 #line 4767 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4767  break;
4768 
4769  case 190:
4770 #line 1105 "parser.y" /* yacc.c:1648 */
4771  { (yyval) = (yyvsp[-3]);
4772  stack((yyval)).id(ID_aligned);
4773  stack((yyvsp[-1])).set(ID_type_arg, stack((yyvsp[-1])));
4774  }
4775 #line 4776 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4776  break;
4777 
4778  case 197:
4779 #line 1125 "parser.y" /* yacc.c:1648 */
4780  {
4781  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
4782  }
4783 #line 4784 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4784  break;
4785 
4786  case 198:
4787 #line 1132 "parser.y" /* yacc.c:1648 */
4788  {
4789  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
4790  }
4791 #line 4792 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4792  break;
4793 
4794  case 199:
4795 #line 1136 "parser.y" /* yacc.c:1648 */
4796  {
4797  (yyval)=merge((yyvsp[-2]), 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 1151 "parser.y" /* yacc.c:1648 */
4820  {
4821  (yyval)=merge((yyvsp[-1]), (yyvsp[0])); // type attribute
4822  }
4823 #line 4824 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4824  break;
4825 
4826  case 203:
4827 #line 1155 "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]));
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 1171 "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 1175 "parser.y" /* yacc.c:1648 */
4860  {
4861  (yyval)=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 210:
4875 #line 1188 "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 211:
4883 #line 1192 "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 1199 "parser.y" /* yacc.c:1648 */
4892  {
4893  (yyval)=merge((yyvsp[-2]), 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 1203 "parser.y" /* yacc.c:1648 */
4900  {
4901  (yyval)=merge((yyvsp[-2]), 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 1214 "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 1218 "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 1229 "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 1233 "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 1244 "parser.y" /* yacc.c:1648 */
4964  {
4965  (yyval)=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 1248 "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[-2]), 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 1259 "parser.y" /* yacc.c:1648 */
4988  { (yyval) = (yyvsp[-3]);
4989  stack((yyval)).id(ID_typeof);
4990  mto((yyval), (yyvsp[-1]));
4991  }
4992 #line 4993 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
4993  break;
4994 
4995  case 225:
4996 #line 1264 "parser.y" /* yacc.c:1648 */
4997  { (yyval) = (yyvsp[-3]);
4998  stack((yyval)).id(ID_typeof);
4999  stack((yyval)).set(ID_type_arg, stack((yyvsp[-1])));
5000  }
5001 #line 5002 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5002  break;
5003 
5004  case 227:
5005 #line 1273 "parser.y" /* yacc.c:1648 */
5006  {
5007  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5008  }
5009 #line 5010 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5010  break;
5011 
5012  case 228:
5013 #line 1277 "parser.y" /* yacc.c:1648 */
5014  {
5015  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
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 1288 "parser.y" /* yacc.c:1648 */
5030  {
5031  (yyval)=(yyvsp[-3]);
5032  stack((yyval)).id(ID_atomic_type_specifier);
5033  stack_type((yyval)).subtype()=stack_type((yyvsp[-1]));
5034  }
5035 #line 5036 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5036  break;
5037 
5038  case 232:
5039 #line 1298 "parser.y" /* yacc.c:1648 */
5040  {
5041  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5042  }
5043 #line 5044 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5044  break;
5045 
5046  case 233:
5047 #line 1302 "parser.y" /* yacc.c:1648 */
5048  {
5049  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
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 1313 "parser.y" /* yacc.c:1648 */
5064  {
5065  stack((yyval)).id(stack((yyval)).get(ID_identifier));
5066  }
5067 #line 5068 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5068  break;
5069 
5070  case 236:
5071 #line 1317 "parser.y" /* yacc.c:1648 */
5072  {
5073  stack((yyval)).id(stack((yyval)).get(ID_identifier));
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(ID_restrict);
5082  }
5083 #line 5084 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5084  break;
5085 
5086  case 239:
5087 #line 1329 "parser.y" /* yacc.c:1648 */
5088  {
5089  (yyval)=(yyvsp[-3]); mto((yyval), (yyvsp[-1]));
5090  }
5091 #line 5092 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5092  break;
5093 
5094  case 240:
5095 #line 1333 "parser.y" /* yacc.c:1648 */
5096  {
5097  (yyval)=(yyvsp[-3]); mto((yyval), (yyvsp[-1]));
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[-5]); mto((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[-9]); mto((yyval), (yyvsp[-7])); mto((yyval), (yyvsp[-5])); mto((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 1344 "parser.y" /* yacc.c:1648 */
5120  { init((yyval), ID_nil); }
5121 #line 5122 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5122  break;
5123 
5124  case 244:
5125 #line 1349 "parser.y" /* yacc.c:1648 */
5126  {
5127  init((yyval)); mto((yyval), (yyvsp[0]));
5128  }
5129 #line 5130 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5130  break;
5131 
5132  case 245:
5133 #line 1353 "parser.y" /* yacc.c:1648 */
5134  {
5135  (yyval)=(yyvsp[-1]); mto((yyval), (yyvsp[0]));
5136  }
5137 #line 5138 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5138  break;
5139 
5140  case 246:
5141 #line 1360 "parser.y" /* yacc.c:1648 */
5142  {
5143  (yyval)=(yyvsp[-3]); set((yyval), ID_msc_declspec);
5144  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
5145  }
5146 #line 5147 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5147  break;
5148 
5149  case 247:
5150 #line 1365 "parser.y" /* yacc.c:1648 */
5151  {
5152  (yyval)=(yyvsp[-2]); set((yyval), ID_msc_declspec);
5153  }
5154 #line 5155 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5155  break;
5156 
5157  case 248:
5158 #line 1372 "parser.y" /* yacc.c:1648 */
5159  {
5160  init((yyval), ID_nil);
5161  }
5162 #line 5163 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5163  break;
5164 
5165  case 250:
5166 #line 1379 "parser.y" /* yacc.c:1648 */
5167  { (yyval)=(yyvsp[0]); set((yyval), ID_typedef); }
5168 #line 5169 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5169  break;
5170 
5171  case 251:
5172 #line 1380 "parser.y" /* yacc.c:1648 */
5173  { (yyval)=(yyvsp[0]); set((yyval), ID_extern); }
5174 #line 5175 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5175  break;
5176 
5177  case 252:
5178 #line 1381 "parser.y" /* yacc.c:1648 */
5179  { (yyval)=(yyvsp[0]); set((yyval), ID_static); }
5180 #line 5181 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5181  break;
5182 
5183  case 253:
5184 #line 1382 "parser.y" /* yacc.c:1648 */
5185  { (yyval)=(yyvsp[0]); set((yyval), ID_auto); }
5186 #line 5187 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5187  break;
5188 
5189  case 254:
5190 #line 1383 "parser.y" /* yacc.c:1648 */
5191  { (yyval)=(yyvsp[0]); set((yyval), ID_register); }
5192 #line 5193 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5193  break;
5194 
5195  case 255:
5196 #line 1384 "parser.y" /* yacc.c:1648 */
5197  { (yyval)=(yyvsp[0]); set((yyval), ID_inline); }
5198 #line 5199 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5199  break;
5200 
5201  case 256:
5202 #line 1385 "parser.y" /* yacc.c:1648 */
5203  { (yyval)=(yyvsp[0]); set((yyval), ID_thread_local); }
5204 #line 5205 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5205  break;
5206 
5207  case 257:
5208 #line 1386 "parser.y" /* yacc.c:1648 */
5209  { (yyval)=(yyvsp[0]); set((yyval), ID_asm); }
5210 #line 5211 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5211  break;
5212 
5213  case 258:
5214 #line 1387 "parser.y" /* yacc.c:1648 */
5215  { (yyval)=(yyvsp[0]); }
5216 #line 5217 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5217  break;
5218 
5219  case 259:
5220 #line 1389 "parser.y" /* yacc.c:1648 */
5221  {
5222  // equivalent to always_inline, and seemingly also has the semantics
5223  // of extern inline in that multiple definitions can be provided in
5224  // the same translation unit
5225  init((yyval));
5226  set((yyval), ID_static);
5227  set((yyvsp[0]), ID_inline);
5228  #if 0
5229  // enable once always_inline support is reinstantiated
5230  (yyvsp[0])=merge((yyvsp[0]), (yyval));
5231 
5232  init((yyval));
5233  set((yyval), ID_always_inline);
5234  (yyval)=merge((yyvsp[0]), (yyval));
5235  #else
5236  (yyval)=merge((yyvsp[0]), (yyval));
5237  #endif
5238  }
5239 #line 5240 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5240  break;
5241 
5242  case 260:
5243 #line 1410 "parser.y" /* yacc.c:1648 */
5244  { (yyval)=(yyvsp[0]); set((yyval), ID_int); }
5245 #line 5246 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5246  break;
5247 
5248  case 261:
5249 #line 1411 "parser.y" /* yacc.c:1648 */
5250  { (yyval)=(yyvsp[0]); set((yyval), ID_int8); }
5251 #line 5252 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5252  break;
5253 
5254  case 262:
5255 #line 1412 "parser.y" /* yacc.c:1648 */
5256  { (yyval)=(yyvsp[0]); set((yyval), ID_int16); }
5257 #line 5258 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5258  break;
5259 
5260  case 263:
5261 #line 1413 "parser.y" /* yacc.c:1648 */
5262  { (yyval)=(yyvsp[0]); set((yyval), ID_int32); }
5263 #line 5264 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5264  break;
5265 
5266  case 264:
5267 #line 1414 "parser.y" /* yacc.c:1648 */
5268  { (yyval)=(yyvsp[0]); set((yyval), ID_int64); }
5269 #line 5270 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5270  break;
5271 
5272  case 265:
5273 #line 1415 "parser.y" /* yacc.c:1648 */
5274  { (yyval)=(yyvsp[0]); set((yyval), ID_char); }
5275 #line 5276 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5276  break;
5277 
5278  case 266:
5279 #line 1416 "parser.y" /* yacc.c:1648 */
5280  { (yyval)=(yyvsp[0]); set((yyval), ID_short); }
5281 #line 5282 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5282  break;
5283 
5284  case 267:
5285 #line 1417 "parser.y" /* yacc.c:1648 */
5286  { (yyval)=(yyvsp[0]); set((yyval), ID_long); }
5287 #line 5288 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5288  break;
5289 
5290  case 268:
5291 #line 1418 "parser.y" /* yacc.c:1648 */
5292  { (yyval)=(yyvsp[0]); set((yyval), ID_float); }
5293 #line 5294 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5294  break;
5295 
5296  case 269:
5297 #line 1419 "parser.y" /* yacc.c:1648 */
5298  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float16); }
5299 #line 5300 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5300  break;
5301 
5302  case 270:
5303 #line 1420 "parser.y" /* yacc.c:1648 */
5304  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float32); }
5305 #line 5306 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5306  break;
5307 
5308  case 271:
5309 #line 1421 "parser.y" /* yacc.c:1648 */
5310  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float32x); }
5311 #line 5312 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5312  break;
5313 
5314  case 272:
5315 #line 1422 "parser.y" /* yacc.c:1648 */
5316  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float64); }
5317 #line 5318 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5318  break;
5319 
5320  case 273:
5321 #line 1423 "parser.y" /* yacc.c:1648 */
5322  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float64x); }
5323 #line 5324 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5324  break;
5325 
5326  case 274:
5327 #line 1424 "parser.y" /* yacc.c:1648 */
5328  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float80); }
5329 #line 5330 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5330  break;
5331 
5332  case 275:
5333 #line 1425 "parser.y" /* yacc.c:1648 */
5334  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float128); }
5335 #line 5336 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5336  break;
5337 
5338  case 276:
5339 #line 1426 "parser.y" /* yacc.c:1648 */
5340  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_float128x); }
5341 #line 5342 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5342  break;
5343 
5344  case 277:
5345 #line 1427 "parser.y" /* yacc.c:1648 */
5346  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_int128); }
5347 #line 5348 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5348  break;
5349 
5350  case 278:
5351 #line 1428 "parser.y" /* yacc.c:1648 */
5352  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal32); }
5353 #line 5354 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5354  break;
5355 
5356  case 279:
5357 #line 1429 "parser.y" /* yacc.c:1648 */
5358  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal64); }
5359 #line 5360 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5360  break;
5361 
5362  case 280:
5363 #line 1430 "parser.y" /* yacc.c:1648 */
5364  { (yyval)=(yyvsp[0]); set((yyval), ID_gcc_decimal128); }
5365 #line 5366 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5366  break;
5367 
5368  case 281:
5369 #line 1431 "parser.y" /* yacc.c:1648 */
5370  { (yyval)=(yyvsp[0]); set((yyval), ID_double); }
5371 #line 5372 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5372  break;
5373 
5374  case 282:
5375 #line 1432 "parser.y" /* yacc.c:1648 */
5376  { (yyval)=(yyvsp[0]); set((yyval), ID_signed); }
5377 #line 5378 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5378  break;
5379 
5380  case 283:
5381 #line 1433 "parser.y" /* yacc.c:1648 */
5382  { (yyval)=(yyvsp[0]); set((yyval), ID_unsigned); }
5383 #line 5384 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5384  break;
5385 
5386  case 284:
5387 #line 1434 "parser.y" /* yacc.c:1648 */
5388  { (yyval)=(yyvsp[0]); set((yyval), ID_void); }
5389 #line 5390 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5390  break;
5391 
5392  case 285:
5393 #line 1435 "parser.y" /* yacc.c:1648 */
5394  { (yyval)=(yyvsp[0]); set((yyval), ID_c_bool); }
5395 #line 5396 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5396  break;
5397 
5398  case 286:
5399 #line 1436 "parser.y" /* yacc.c:1648 */
5400  { (yyval)=(yyvsp[0]); set((yyval), ID_complex); }
5401 #line 5402 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5402  break;
5403 
5404  case 287:
5405 #line 1438 "parser.y" /* yacc.c:1648 */
5406  {
5407  (yyval)=(yyvsp[-3]);
5408  set((yyval), ID_custom_bv);
5409  stack((yyval)).add(ID_size).swap(stack((yyvsp[-1])));
5410  }
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  {
5417  (yyval)=(yyvsp[-6]);
5418  set((yyval), ID_custom_floatbv);
5419  stack((yyval)).add(ID_size).swap(stack((yyvsp[-4])));
5420  stack((yyval)).add(ID_f).swap(stack((yyvsp[-1])));
5421  }
5422 #line 5423 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5423  break;
5424 
5425  case 289:
5426 #line 1451 "parser.y" /* yacc.c:1648 */
5427  {
5428  (yyval)=(yyvsp[-6]);
5429  set((yyval), ID_custom_fixedbv);
5430  stack((yyval)).add(ID_size).swap(stack((yyvsp[-4])));
5431  stack((yyval)).add(ID_f).swap(stack((yyvsp[-1])));
5432  }
5433 #line 5434 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5434  break;
5435 
5436  case 290:
5437 #line 1457 "parser.y" /* yacc.c:1648 */
5438  { (yyval)=(yyvsp[0]); set((yyval), ID_proper_bool); }
5439 #line 5440 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5440  break;
5441 
5442  case 294:
5443 #line 1468 "parser.y" /* yacc.c:1648 */
5444  { (yyval)=(yyvsp[-3]); stack_type((yyval)).subtype().swap(stack((yyvsp[-2]))); }
5445 #line 5446 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5446  break;
5447 
5448  case 295:
5449 #line 1472 "parser.y" /* yacc.c:1648 */
5450  {
5451  init((yyval));
5452  if(!PARSER.pragma_pack.empty() &&
5453  PARSER.pragma_pack.back().is_one())
5454  set((yyval), ID_packed);
5455  }
5456 #line 5457 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5457  break;
5458 
5459  case 296:
5460 #line 1484 "parser.y" /* yacc.c:1648 */
5461  {
5462  // an anon struct/union with body
5463  }
5464 #line 5465 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5465  break;
5466 
5467  case 297:
5468 #line 1490 "parser.y" /* yacc.c:1648 */
5469  {
5470  // save the members
5471  stack((yyvsp[-8])).add(ID_components).get_sub().swap(
5472  (irept::subt &)stack((yyvsp[-3])).operands());
5473 
5474  // throw in the gcc attributes
5475  (yyval)=merge((yyvsp[-8]), merge((yyvsp[-7]), merge((yyvsp[-1]), (yyvsp[0]))));
5476  }
5477 #line 5478 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5478  break;
5479 
5480  case 298:
5481 #line 1502 "parser.y" /* yacc.c:1648 */
5482  {
5483  // A struct/union with tag and body.
5484  PARSER.add_tag_with_body(stack((yyvsp[0])));
5485  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[0])));
5486  }
5487 #line 5488 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5488  break;
5489 
5490  case 299:
5491 #line 1510 "parser.y" /* yacc.c:1648 */
5492  {
5493  // save the members
5494  stack((yyvsp[-9])).add(ID_components).get_sub().swap(
5495  (irept::subt &)stack((yyvsp[-3])).operands());
5496 
5497  // throw in the gcc attributes
5498  (yyval)=merge((yyvsp[-9]), merge((yyvsp[-8]), merge((yyvsp[-1]), (yyvsp[0]))));
5499  }
5500 #line 5501 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5501  break;
5502 
5503  case 300:
5504 #line 1522 "parser.y" /* yacc.c:1648 */
5505  {
5506  // a struct/union with tag but without body
5507  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[0])));
5508  }
5509 #line 5510 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5510  break;
5511 
5512  case 301:
5513 #line 1527 "parser.y" /* yacc.c:1648 */
5514  {
5515  stack((yyvsp[-5])).set(ID_components, ID_nil);
5516  // type attributes
5517  (yyval)=merge((yyvsp[-5]), merge((yyvsp[-4]), (yyvsp[0])));
5518  }
5519 #line 5520 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5520  break;
5521 
5522  case 302:
5523 #line 1536 "parser.y" /* yacc.c:1648 */
5524  { (yyval)=(yyvsp[0]); set((yyval), ID_struct); }
5525 #line 5526 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5526  break;
5527 
5528  case 303:
5529 #line 1538 "parser.y" /* yacc.c:1648 */
5530  { (yyval)=(yyvsp[0]); set((yyval), ID_union); }
5531 #line 5532 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5532  break;
5533 
5534  case 304:
5535 #line 1543 "parser.y" /* yacc.c:1648 */
5536  { (yyval)=(yyvsp[0]); set((yyval), ID_packed); }
5537 #line 5538 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5538  break;
5539 
5540  case 305:
5541 #line 1545 "parser.y" /* yacc.c:1648 */
5542  { (yyval)=(yyvsp[0]); set((yyval), ID_transparent_union); }
5543 #line 5544 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5544  break;
5545 
5546  case 306:
5547 #line 1547 "parser.y" /* yacc.c:1648 */
5548  { (yyval)=(yyvsp[-3]); set((yyval), ID_vector); stack((yyval)).add(ID_size)=stack((yyvsp[-1])); }
5549 #line 5550 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5550  break;
5551 
5552  case 307:
5553 #line 1549 "parser.y" /* yacc.c:1648 */
5554  { (yyval)=(yyvsp[0]); set((yyval), ID_aligned); }
5555 #line 5556 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5556  break;
5557 
5558  case 308:
5559 #line 1551 "parser.y" /* yacc.c:1648 */
5560  { (yyval)=(yyvsp[-3]); set((yyval), ID_aligned); stack((yyval)).set(ID_size, stack((yyvsp[-1]))); }
5561 #line 5562 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5562  break;
5563 
5564  case 309:
5565 #line 1553 "parser.y" /* yacc.c:1648 */
5566  { (yyval)=(yyvsp[-3]); set((yyval), ID_gcc_attribute_mode); stack((yyval)).set(ID_size, stack((yyvsp[-1])).get(ID_identifier)); }
5567 #line 5568 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5568  break;
5569 
5570  case 310:
5571 #line 1555 "parser.y" /* yacc.c:1648 */
5572  { (yyval)=(yyvsp[0]); set((yyval), ID_static); }
5573 #line 5574 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5574  break;
5575 
5576  case 311:
5577 #line 1557 "parser.y" /* yacc.c:1648 */
5578  { (yyval)=(yyvsp[0]); set((yyval), ID_weak); }
5579 #line 5580 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5580  break;
5581 
5582  case 312:
5583 #line 1559 "parser.y" /* yacc.c:1648 */
5584  { (yyval)=(yyvsp[-3]); set((yyval), ID_alias); mto((yyval), (yyvsp[-1])); }
5585 #line 5586 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5586  break;
5587 
5588  case 313:
5589 #line 1561 "parser.y" /* yacc.c:1648 */
5590  { (yyval)=(yyvsp[-3]); set((yyval), ID_section); mto((yyval), (yyvsp[-1])); }
5591 #line 5592 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5592  break;
5593 
5594  case 314:
5595 #line 1563 "parser.y" /* yacc.c:1648 */
5596  { (yyval)=(yyvsp[0]); set((yyval), ID_noreturn); }
5597 #line 5598 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5598  break;
5599 
5600  case 315:
5601 #line 1565 "parser.y" /* yacc.c:1648 */
5602  { (yyval)=(yyvsp[0]); set((yyval), ID_constructor); }
5603 #line 5604 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5604  break;
5605 
5606  case 316:
5607 #line 1567 "parser.y" /* yacc.c:1648 */
5608  { (yyval)=(yyvsp[0]); set((yyval), ID_destructor); }
5609 #line 5610 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5610  break;
5611 
5612  case 317:
5613 #line 1569 "parser.y" /* yacc.c:1648 */
5614  { (yyval)=(yyvsp[0]); set((yyval), ID_used); }
5615 #line 5616 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5616  break;
5617 
5618  case 318:
5619 #line 1574 "parser.y" /* yacc.c:1648 */
5620  {
5621  init((yyval));
5622  }
5623 #line 5624 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5624  break;
5625 
5626  case 321:
5627 #line 1583 "parser.y" /* yacc.c:1648 */
5628  {
5629  (yyval)=merge((yyvsp[-2]), (yyvsp[0]));
5630  }
5631 #line 5632 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5632  break;
5633 
5634  case 322:
5635 #line 1590 "parser.y" /* yacc.c:1648 */
5636  { (yyval)=(yyvsp[-2]); }
5637 #line 5638 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5638  break;
5639 
5640  case 323:
5641 #line 1592 "parser.y" /* yacc.c:1648 */
5642  { (yyval)=(yyvsp[0]); set((yyval), ID_noreturn); }
5643 #line 5644 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5644  break;
5645 
5646  case 324:
5647 #line 1597 "parser.y" /* yacc.c:1648 */
5648  {
5649  init((yyval));
5650  }
5651 #line 5652 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5652  break;
5653 
5654  case 327:
5655 #line 1606 "parser.y" /* yacc.c:1648 */
5656  {
5657  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
5658  }
5659 #line 5660 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5660  break;
5661 
5662  case 328:
5663 #line 1613 "parser.y" /* yacc.c:1648 */
5664  {
5665  init((yyval), ID_declaration_list);
5666  }
5667 #line 5668 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5668  break;
5669 
5670  case 330:
5671 #line 1621 "parser.y" /* yacc.c:1648 */
5672  {
5673  init((yyval), ID_declaration_list);
5674  mto((yyval), (yyvsp[0]));
5675  }
5676 #line 5677 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5677  break;
5678 
5679  case 331:
5680 #line 1626 "parser.y" /* yacc.c:1648 */
5681  {
5682  (yyval)=(yyvsp[-1]);
5683  mto((yyval), (yyvsp[0]));
5684  }
5685 #line 5686 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5686  break;
5687 
5688  case 334:
5689 #line 1636 "parser.y" /* yacc.c:1648 */
5690  {
5691  init((yyval), ID_declaration);
5692  }
5693 #line 5694 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5694  break;
5695 
5696  case 336:
5697 #line 1649 "parser.y" /* yacc.c:1648 */
5698  {
5699  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2]));
5700 
5701  init((yyval), ID_declaration);
5702  to_ansi_c_declaration(stack((yyval))).set_is_member(true);
5703  stack((yyval)).type().swap(stack((yyvsp[-1])));
5704  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5705  }
5706 #line 5707 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5707  break;
5708 
5709  case 337:
5710 #line 1658 "parser.y" /* yacc.c:1648 */
5711  {
5712  (yyval)=(yyvsp[-2]);
5713  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5714  }
5715 #line 5716 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5716  break;
5717 
5718  case 338:
5719 #line 1668 "parser.y" /* yacc.c:1648 */
5720  {
5721  if(!PARSER.pragma_pack.empty() &&
5722  !PARSER.pragma_pack.back().is_zero())
5723  {
5724  // communicate #pragma pack(n) alignment constraints by
5725  // by both setting packing AND alignment; see padding.cpp
5726  // for more details
5727  init((yyval));
5728  set((yyval), ID_packed);
5729  (yyvsp[-1])=merge((yyvsp[-1]), (yyval));
5730 
5731  init((yyval));
5732  set((yyval), ID_aligned);
5733  stack((yyval)).set(ID_size, PARSER.pragma_pack.back());
5734  (yyvsp[-1])=merge((yyvsp[-1]), (yyval));
5735  }
5736 
5737  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2]));
5738 
5739  init((yyval), ID_declaration);
5740  to_ansi_c_declaration(stack((yyval))).set_is_member(true);
5741  stack((yyval)).type().swap(stack((yyvsp[-1])));
5742  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5743  }
5744 #line 5745 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5745  break;
5746 
5747  case 339:
5748 #line 1693 "parser.y" /* yacc.c:1648 */
5749  {
5750  (yyval)=(yyvsp[-2]);
5751  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5752  }
5753 #line 5754 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5754  break;
5755 
5756  case 340:
5757 #line 1701 "parser.y" /* yacc.c:1648 */
5758  {
5759  (yyval)=(yyvsp[-2]);
5760 
5761  if(stack((yyvsp[-1])).is_not_nil())
5762  make_subtype((yyval), (yyvsp[-1]));
5763 
5764  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5765  (yyval)=merge((yyvsp[0]), (yyval));
5766  }
5767 #line 5768 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5768  break;
5769 
5770  case 341:
5771 #line 1711 "parser.y" /* yacc.c:1648 */
5772  {
5773  init((yyval), ID_abstract);
5774  }
5775 #line 5776 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5776  break;
5777 
5778  case 342:
5779 #line 1715 "parser.y" /* yacc.c:1648 */
5780  {
5781  (yyval)=(yyvsp[-1]);
5782  stack_type((yyval)).subtype()=typet(ID_abstract);
5783 
5784  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5785  (yyval)=merge((yyvsp[0]), (yyval));
5786  }
5787 #line 5788 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5788  break;
5789 
5790  case 343:
5791 #line 1726 "parser.y" /* yacc.c:1648 */
5792  {
5793  (yyval)=(yyvsp[-2]);
5794  if(stack((yyvsp[-1])).is_not_nil())
5795  make_subtype((yyval), (yyvsp[-1]));
5796 
5797  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5798  (yyval)=merge((yyvsp[0]), (yyval));
5799  }
5800 #line 5801 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5801  break;
5802 
5803  case 344:
5804 #line 1735 "parser.y" /* yacc.c:1648 */
5805  {
5806  (yyval)=(yyvsp[-1]);
5807  stack_type((yyval)).subtype()=typet(ID_abstract);
5808 
5809  if(stack((yyvsp[0])).is_not_nil()) // type attribute
5810  (yyval)=merge((yyvsp[0]), (yyval));
5811  }
5812 #line 5813 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5813  break;
5814 
5815  case 345:
5816 #line 1746 "parser.y" /* yacc.c:1648 */
5817  {
5818  init((yyval), ID_nil);
5819  }
5820 #line 5821 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5821  break;
5822 
5823  case 347:
5824 #line 1754 "parser.y" /* yacc.c:1648 */
5825  {
5826  (yyval)=(yyvsp[-1]);
5827  set((yyval), ID_c_bit_field);
5828  stack_type((yyval)).set(ID_size, stack((yyvsp[0])));
5829  stack_type((yyval)).subtype().id(ID_abstract);
5830  }
5831 #line 5832 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5832  break;
5833 
5834  case 348:
5835 #line 1765 "parser.y" /* yacc.c:1648 */
5836  {
5837  // an anon enum
5838  }
5839 #line 5840 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5840  break;
5841 
5842  case 349:
5843 #line 1770 "parser.y" /* yacc.c:1648 */
5844  {
5845  stack((yyvsp[-6])).operands().swap(stack((yyvsp[-2])).operands());
5846  (yyval)=merge((yyvsp[-6]), merge((yyvsp[-5]), (yyvsp[0]))); // throw in the gcc attributes
5847  }
5848 #line 5849 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5849  break;
5850 
5851  case 350:
5852 #line 1777 "parser.y" /* yacc.c:1648 */
5853  {
5854  // an enum with tag
5855  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[0])));
5856  }
5857 #line 5858 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5858  break;
5859 
5860  case 351:
5861 #line 1783 "parser.y" /* yacc.c:1648 */
5862  {
5863  stack((yyvsp[-7])).operands().swap(stack((yyvsp[-2])).operands());
5864  (yyval)=merge((yyvsp[-7]), merge((yyvsp[-6]), (yyvsp[0]))); // throw in the gcc attributes
5865  }
5866 #line 5867 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5867  break;
5868 
5869  case 352:
5870 #line 1791 "parser.y" /* yacc.c:1648 */
5871  {
5872  stack((yyvsp[-3])).id(ID_c_enum_tag); // tag only
5873  stack((yyvsp[-3])).set(ID_tag, stack((yyvsp[-1])));
5874  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0]))); // throw in the gcc attributes
5875  }
5876 #line 5877 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5877  break;
5878 
5879  case 353:
5880 #line 1799 "parser.y" /* yacc.c:1648 */
5881  {
5882  (yyval)=(yyvsp[0]);
5883  set((yyval), ID_c_enum);
5884  }
5885 #line 5886 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5886  break;
5887 
5888  case 354:
5889 #line 1807 "parser.y" /* yacc.c:1648 */
5890  {
5891  init((yyval), ID_declaration_list);
5892  }
5893 #line 5894 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5894  break;
5895 
5896  case 356:
5897 #line 1815 "parser.y" /* yacc.c:1648 */
5898  {
5899  init((yyval), ID_declaration_list);
5900  mto((yyval), (yyvsp[0]));
5901  }
5902 #line 5903 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5903  break;
5904 
5905  case 357:
5906 #line 1820 "parser.y" /* yacc.c:1648 */
5907  {
5908  (yyval)=(yyvsp[-2]);
5909  mto((yyval), (yyvsp[0]));
5910  }
5911 #line 5912 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5912  break;
5913 
5914  case 358:
5915 #line 1825 "parser.y" /* yacc.c:1648 */
5916  {
5917  (yyval)=(yyvsp[-1]);
5918  }
5919 #line 5920 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5920  break;
5921 
5922  case 359:
5923 #line 1832 "parser.y" /* yacc.c:1648 */
5924  {
5925  init((yyval), ID_declaration);
5927  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-2])));
5928  to_ansi_c_declaration(stack((yyval))).add_initializer(stack((yyvsp[0])));
5929  }
5930 #line 5931 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5931  break;
5932 
5933  case 360:
5934 #line 1842 "parser.y" /* yacc.c:1648 */
5935  {
5936  init((yyval));
5937  stack((yyval)).make_nil();
5938  }
5939 #line 5940 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5940  break;
5941 
5942  case 361:
5943 #line 1847 "parser.y" /* yacc.c:1648 */
5944  {
5945  (yyval)=(yyvsp[0]);
5946  }
5947 #line 5948 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5948  break;
5949 
5950  case 363:
5951 #line 1855 "parser.y" /* yacc.c:1648 */
5952  {
5953  typet tmp(ID_ellipsis);
5954  (yyval)=(yyvsp[-2]);
5955  stack_type((yyval)).move_to_subtypes(tmp);
5956  }
5957 #line 5958 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5958  break;
5959 
5960  case 364:
5961 #line 1864 "parser.y" /* yacc.c:1648 */
5962  {
5963  init((yyval), ID_parameters);
5964  mts((yyval), (yyvsp[0]));
5965  }
5966 #line 5967 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5967  break;
5968 
5969  case 365:
5970 #line 1869 "parser.y" /* yacc.c:1648 */
5971  {
5972  (yyval)=(yyvsp[-2]);
5973  mts((yyval), (yyvsp[0]));
5974  }
5975 #line 5976 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5976  break;
5977 
5978  case 366:
5979 #line 1876 "parser.y" /* yacc.c:1648 */
5980  {
5981  init((yyval), ID_declaration);
5982  stack((yyval)).type()=typet(ID_KnR);
5983  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
5984  }
5985 #line 5986 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
5986  break;
5987 
5988  case 367:
5989 #line 1885 "parser.y" /* yacc.c:1648 */
5990  {
5991  init((yyval), ID_parameters);
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 1890 "parser.y" /* yacc.c:1648 */
5999  {
6000  (yyval)=(yyvsp[-2]);
6001  mts((yyval), (yyvsp[0]));
6002  }
6003 #line 6004 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6004  break;
6005 
6006  case 369:
6007 #line 1898 "parser.y" /* yacc.c:1648 */
6008  {
6009  init((yyval), ID_declaration);
6011  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6012  exprt declarator=exprt(ID_abstract);
6013  PARSER.add_declarator(stack((yyval)), declarator);
6014  }
6015 #line 6016 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6016  break;
6017 
6018  case 370:
6019 #line 1906 "parser.y" /* yacc.c:1648 */
6020  {
6021  init((yyval), ID_declaration);
6023  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6024  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6025  }
6026 #line 6027 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6027  break;
6028 
6029  case 371:
6030 #line 1913 "parser.y" /* yacc.c:1648 */
6031  {
6032  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6033  init((yyval), ID_declaration);
6035  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6036  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6037  }
6038 #line 6039 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6039  break;
6040 
6041  case 372:
6042 #line 1921 "parser.y" /* yacc.c:1648 */
6043  {
6044  // the second tree is really the declarator -- not part
6045  // of the type!
6046  init((yyval), ID_declaration);
6048  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6049  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6050  }
6051 #line 6052 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6052  break;
6053 
6054  case 373:
6055 #line 1930 "parser.y" /* yacc.c:1648 */
6056  {
6057  init((yyval), ID_declaration);
6059  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6060  exprt declarator=exprt(ID_abstract);
6061  PARSER.add_declarator(stack((yyval)), declarator);
6062  }
6063 #line 6064 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6064  break;
6065 
6066  case 374:
6067 #line 1938 "parser.y" /* yacc.c:1648 */
6068  {
6069  init((yyval), ID_declaration);
6071  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6072  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6073  }
6074 #line 6075 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6075  break;
6076 
6077  case 375:
6078 #line 1945 "parser.y" /* yacc.c:1648 */
6079  {
6080  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6081  init((yyval), ID_declaration);
6083  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6084  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6085  }
6086 #line 6087 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6087  break;
6088 
6089  case 376:
6090 #line 1953 "parser.y" /* yacc.c:1648 */
6091  {
6092  init((yyval), ID_declaration);
6094  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6095  exprt declarator=exprt(ID_abstract);
6096  PARSER.add_declarator(stack((yyval)), declarator);
6097  }
6098 #line 6099 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6099  break;
6100 
6101  case 377:
6102 #line 1961 "parser.y" /* yacc.c:1648 */
6103  {
6104  init((yyval), ID_declaration);
6106  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6107  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6108  }
6109 #line 6110 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6110  break;
6111 
6112  case 378:
6113 #line 1968 "parser.y" /* yacc.c:1648 */
6114  {
6115  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6116  init((yyval), ID_declaration);
6118  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6119  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6120  }
6121 #line 6122 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6122  break;
6123 
6124  case 379:
6125 #line 1976 "parser.y" /* yacc.c:1648 */
6126  {
6127  // the second tree is really the declarator -- not part of the type!
6128  init((yyval), ID_declaration);
6130  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6131  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6132  }
6133 #line 6134 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6134  break;
6135 
6136  case 380:
6137 #line 1984 "parser.y" /* yacc.c:1648 */
6138  {
6139  init((yyval), ID_declaration);
6141  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[0])));
6142  exprt declarator=exprt(ID_abstract);
6143  PARSER.add_declarator(stack((yyval)), declarator);
6144  }
6145 #line 6146 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6146  break;
6147 
6148  case 381:
6149 #line 1992 "parser.y" /* yacc.c:1648 */
6150  {
6151  init((yyval), ID_declaration);
6153  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-1])));
6154  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
6155  }
6156 #line 6157 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6157  break;
6158 
6159  case 382:
6160 #line 1999 "parser.y" /* yacc.c:1648 */
6161  {
6162  (yyvsp[-1])=merge((yyvsp[0]), (yyvsp[-1])); // type attribute to go into declarator
6163  init((yyval), ID_declaration);
6165  to_ansi_c_declaration(stack((yyval))).type().swap(stack((yyvsp[-2])));
6166  PARSER.add_declarator(stack((yyval)), stack((yyvsp[-1])));
6167  }
6168 #line 6169 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6169  break;
6170 
6171  case 385:
6172 #line 2015 "parser.y" /* yacc.c:1648 */
6173  {
6174  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
6175  }
6176 #line 6177 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6177  break;
6178 
6179  case 386:
6180 #line 2019 "parser.y" /* yacc.c:1648 */
6181  {
6182  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
6183  make_subtype((yyval), (yyvsp[0]));
6184  }
6185 #line 6186 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6186  break;
6187 
6188  case 387:
6189 #line 2024 "parser.y" /* yacc.c:1648 */
6190  {
6191  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
6192  }
6193 #line 6194 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6194  break;
6195 
6196  case 388:
6197 #line 2028 "parser.y" /* yacc.c:1648 */
6198  {
6199  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
6200  make_subtype((yyval), (yyvsp[0]));
6201  }
6202 #line 6203 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6203  break;
6204 
6205  case 389:
6206 #line 2036 "parser.y" /* yacc.c:1648 */
6207  {
6208  init((yyval));
6209  stack((yyval)).make_nil();
6210  }
6211 #line 6212 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6212  break;
6213 
6214  case 390:
6215 #line 2041 "parser.y" /* yacc.c:1648 */
6216  { (yyval) = (yyvsp[0]); }
6217 #line 6218 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6218  break;
6219 
6220  case 392:
6221 #line 2052 "parser.y" /* yacc.c:1648 */
6222  {
6223  (yyval)=(yyvsp[-2]);
6224  set((yyval), ID_initializer_list);
6225  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
6226  }
6227 #line 6228 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6228  break;
6229 
6230  case 393:
6231 #line 2058 "parser.y" /* yacc.c:1648 */
6232  {
6233  (yyval)=(yyvsp[-3]);
6234  set((yyval), ID_initializer_list);
6235  stack((yyval)).operands().swap(stack((yyvsp[-2])).operands());
6236  }
6237 #line 6238 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6238  break;
6239 
6240  case 394:
6241 #line 2067 "parser.y" /* yacc.c:1648 */
6242  {
6243  (yyval)=(yyvsp[0]);
6244  exprt tmp;
6245  tmp.swap(stack((yyval)));
6246  stack((yyval)).clear();
6247  stack((yyval)).move_to_operands(tmp);
6248  }
6249 #line 6250 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6250  break;
6251 
6252  case 395:
6253 #line 2075 "parser.y" /* yacc.c:1648 */
6254  {
6255  (yyval)=(yyvsp[-2]);
6256  mto((yyval), (yyvsp[0]));
6257  }
6258 #line 6259 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6259  break;
6260 
6261  case 397:
6262 #line 2084 "parser.y" /* yacc.c:1648 */
6263  {
6264  init((yyval));
6265  set((yyval), ID_initializer_list);
6266  stack((yyval)).operands().clear();
6267  }
6268 #line 6269 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6269  break;
6270 
6271  case 399:
6272 #line 2094 "parser.y" /* yacc.c:1648 */
6273  {
6274  (yyval)=(yyvsp[-1]);
6275  stack((yyval)).id(ID_designated_initializer);
6276  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-2])));
6277  mto((yyval), (yyvsp[0]));
6278  }
6279 #line 6280 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6280  break;
6281 
6282  case 400:
6283 #line 2102 "parser.y" /* yacc.c:1648 */
6284  {
6285  init((yyval), ID_designated_initializer);
6286  stack((yyval)).add(ID_designator).swap(stack((yyvsp[-1])));
6287  mto((yyval), (yyvsp[0]));
6288  }
6289 #line 6290 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6290  break;
6291 
6292  case 401:
6293 #line 2108 "parser.y" /* yacc.c:1648 */
6294  {
6295  // yet another GCC speciality
6296  (yyval)=(yyvsp[-1]);
6297  stack((yyval)).id(ID_designated_initializer);
6298  exprt designator;
6299  exprt member(ID_member);
6300  member.set(ID_component_name, stack((yyvsp[-2])).get(ID_C_base_name));
6301  designator.move_to_operands(member);
6302  stack((yyval)).add(ID_designator).swap(designator);
6303  mto((yyval), (yyvsp[0]));
6304  }
6305 #line 6306 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6306  break;
6307 
6308  case 402:
6309 #line 2123 "parser.y" /* yacc.c:1648 */
6310  {
6311  init((yyval));
6312  stack((yyvsp[-1])).id(ID_member);
6313  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
6314  mto((yyval), (yyvsp[-1]));
6315  }
6316 #line 6317 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6317  break;
6318 
6319  case 403:
6320 #line 2130 "parser.y" /* yacc.c:1648 */
6321  {
6322  init((yyval));
6323  stack((yyvsp[-2])).id(ID_index);
6324  mto((yyvsp[-2]), (yyvsp[-1]));
6325  mto((yyval), (yyvsp[-2]));
6326  }
6327 #line 6328 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6328  break;
6329 
6330  case 404:
6331 #line 2137 "parser.y" /* yacc.c:1648 */
6332  {
6333  // TODO
6334  init((yyval));
6335  stack((yyvsp[-4])).id(ID_index);
6336  mto((yyvsp[-4]), (yyvsp[-3]));
6337  mto((yyval), (yyvsp[-4]));
6338  }
6339 #line 6340 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6340  break;
6341 
6342  case 405:
6343 #line 2145 "parser.y" /* yacc.c:1648 */
6344  {
6345  (yyval)=(yyvsp[-3]);
6346  stack((yyvsp[-2])).id(ID_index);
6347  mto((yyvsp[-2]), (yyvsp[-1]));
6348  mto((yyval), (yyvsp[-2]));
6349  }
6350 #line 6351 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6351  break;
6352 
6353  case 406:
6354 #line 2152 "parser.y" /* yacc.c:1648 */
6355  {
6356  // TODO
6357  (yyval)=(yyvsp[-5]);
6358  stack((yyvsp[-4])).id(ID_index);
6359  mto((yyvsp[-4]), (yyvsp[-3]));
6360  mto((yyval), (yyvsp[-4]));
6361  }
6362 #line 6363 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6363  break;
6364 
6365  case 407:
6366 #line 2160 "parser.y" /* yacc.c:1648 */
6367  {
6368  (yyval)=(yyvsp[-2]);
6369  stack((yyvsp[-1])).id(ID_member);
6370  stack((yyvsp[-1])).set(ID_component_name, stack((yyvsp[0])).get(ID_C_base_name));
6371  mto((yyval), (yyvsp[-1]));
6372  }
6373 #line 6374 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6374  break;
6375 
6376  case 421:
6377 #line 2188 "parser.y" /* yacc.c:1648 */
6378  {
6379  init((yyval));
6380  statement((yyval), ID_decl);
6381  mto((yyval), (yyvsp[0]));
6382  }
6383 #line 6384 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6384  break;
6385 
6386  case 422:
6387 #line 2197 "parser.y" /* yacc.c:1648 */
6388  {
6389  /* Only semicolons permitted after the attribute:
6390  https://gcc.gnu.org/onlinedocs/gcc/Label-Attributes.html */
6391  (yyval)=(yyvsp[-2]);
6392  statement((yyval), ID_label);
6393  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-3])).get(ID_C_base_name));
6394  stack((yyval)).set(ID_label, identifier);
6395  // attribute ignored
6396  statement((yyvsp[-1]), ID_skip);
6397  mto((yyval), (yyvsp[-1]));
6398  }
6399 #line 6400 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6400  break;
6401 
6402  case 423:
6403 #line 2209 "parser.y" /* yacc.c:1648 */
6404  {
6405  (yyval)=(yyvsp[-1]);
6406  statement((yyval), ID_label);
6407  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-2])).get(ID_C_base_name));
6408  stack((yyval)).set(ID_label, identifier);
6409  mto((yyval), (yyvsp[0]));
6410  }
6411 #line 6412 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6412  break;
6413 
6414  case 424:
6415 #line 2217 "parser.y" /* yacc.c:1648 */
6416  {
6417  (yyval)=(yyvsp[-3]);
6418  statement((yyval), ID_switch_case);
6419  mto((yyval), (yyvsp[-2]));
6420  mto((yyval), (yyvsp[0]));
6421  }
6422 #line 6423 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6423  break;
6424 
6425  case 425:
6426 #line 2224 "parser.y" /* yacc.c:1648 */
6427  {
6428  // this is a GCC extension
6429  (yyval)=(yyvsp[-5]);
6430  statement((yyval), ID_gcc_switch_case_range);
6431  mto((yyval), (yyvsp[-4]));
6432  mto((yyval), (yyvsp[-2]));
6433  mto((yyval), (yyvsp[0]));
6434  }
6435 #line 6436 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6436  break;
6437 
6438  case 426:
6439 #line 2233 "parser.y" /* yacc.c:1648 */
6440  {
6441  (yyval)=(yyvsp[-2]);
6442  statement((yyval), ID_switch_case);
6443  stack((yyval)).operands().push_back(nil_exprt());
6444  mto((yyval), (yyvsp[0]));
6445  stack((yyval)).set(ID_default, true);
6446  }
6447 #line 6448 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6448  break;
6449 
6450  case 427:
6451 #line 2244 "parser.y" /* yacc.c:1648 */
6452  {
6453  // attribute ignored
6454  (yyval)=(yyvsp[0]);
6455  }
6456 #line 6457 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6457  break;
6458 
6459  case 428:
6460 #line 2252 "parser.y" /* yacc.c:1648 */
6461  {
6462  (yyval)=(yyvsp[-1]);
6463  statement((yyval), ID_block);
6464  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6465  PARSER.pop_scope();
6466  }
6467 #line 6468 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6468  break;
6469 
6470  case 429:
6471 #line 2259 "parser.y" /* yacc.c:1648 */
6472  {
6473  (yyval)=(yyvsp[-2]);
6474  statement((yyval), ID_block);
6475  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6476  stack((yyval)).operands().swap(stack((yyvsp[-1])).operands());
6477  PARSER.pop_scope();
6478  }
6479 #line 6480 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6480  break;
6481 
6482  case 430:
6483 #line 2267 "parser.y" /* yacc.c:1648 */
6484  {
6485  (yyval)=(yyvsp[-2]);
6486  statement((yyval), ID_asm);
6487  stack((yyval)).set(ID_C_end_location, stack((yyvsp[0])).source_location());
6488  mto((yyval), (yyvsp[-1]));
6489  PARSER.pop_scope();
6490  }
6491 #line 6492 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6492  break;
6493 
6494  case 431:
6495 #line 2278 "parser.y" /* yacc.c:1648 */
6496  {
6497  unsigned prefix=++PARSER.current_scope().compound_counter;
6498  PARSER.new_scope(std::to_string(prefix)+"::");
6499  }
6500 #line 6501 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6501  break;
6502 
6503  case 432:
6504 #line 2286 "parser.y" /* yacc.c:1648 */
6505  {
6506  init((yyval));
6507  mto((yyval), (yyvsp[0]));
6508  }
6509 #line 6510 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6510  break;
6511 
6512  case 433:
6513 #line 2291 "parser.y" /* yacc.c:1648 */
6514  {
6515  mto((yyval), (yyvsp[0]));
6516  }
6517 #line 6518 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6518  break;
6519 
6520  case 434:
6521 #line 2298 "parser.y" /* yacc.c:1648 */
6522  {
6523  (yyval)=(yyvsp[0]);
6524 
6525  if(stack((yyvsp[-1])).is_nil())
6526  statement((yyval), ID_skip);
6527  else
6528  {
6529  statement((yyval), ID_expression);
6530  mto((yyval), (yyvsp[-1]));
6531  }
6532  }
6533 #line 6534 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6534  break;
6535 
6536  case 435:
6537 #line 2313 "parser.y" /* yacc.c:1648 */
6538  {
6539  (yyval)=(yyvsp[-4]);
6540  statement((yyval), ID_ifthenelse);
6541  stack((yyval)).operands().reserve(3);
6542  mto((yyval), (yyvsp[-2]));
6543  mto((yyval), (yyvsp[0]));
6544  stack((yyval)).copy_to_operands(nil_exprt());
6545  }
6546 #line 6547 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6547  break;
6548 
6549  case 436:
6550 #line 2322 "parser.y" /* yacc.c:1648 */
6551  {
6552  (yyval)=(yyvsp[-6]);
6553  statement((yyval), ID_ifthenelse);
6554  stack((yyval)).operands().reserve(3);
6555  mto((yyval), (yyvsp[-4]));
6556  mto((yyval), (yyvsp[-2]));
6557  mto((yyval), (yyvsp[0]));
6558  }
6559 #line 6560 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6560  break;
6561 
6562  case 437:
6563 #line 2331 "parser.y" /* yacc.c:1648 */
6564  {
6565  (yyval)=(yyvsp[-4]);
6566  statement((yyval), ID_switch);
6567  stack((yyval)).operands().reserve(2);
6568  mto((yyval), (yyvsp[-2]));
6569  mto((yyval), (yyvsp[0]));
6570  }
6571 #line 6572 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6572  break;
6573 
6574  case 440:
6575 #line 2348 "parser.y" /* yacc.c:1648 */
6576  {
6577  (yyval)=(yyvsp[-5]);
6578  statement((yyval), ID_while);
6579  stack((yyval)).operands().reserve(2);
6580  mto((yyval), (yyvsp[-3]));
6581  mto((yyval), (yyvsp[0]));
6582 
6583  if(stack((yyvsp[-1])).is_not_nil())
6584  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6585  }
6586 #line 6587 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6587  break;
6588 
6589  case 441:
6590 #line 2360 "parser.y" /* yacc.c:1648 */
6591  {
6592  (yyval)=(yyvsp[-7]);
6593  statement((yyval), ID_dowhile);
6594  stack((yyval)).operands().reserve(2);
6595  mto((yyval), (yyvsp[-3]));
6596  mto((yyval), (yyvsp[-6]));
6597 
6598  if(stack((yyvsp[-1])).is_not_nil())
6599  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6600  }
6601 #line 6602 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6602  break;
6603 
6604  case 442:
6605 #line 2371 "parser.y" /* yacc.c:1648 */
6606  {
6607  // In C99 and upwards, for(;;) has a scope
6608  if(PARSER.for_has_scope)
6609  {
6610  unsigned prefix=++PARSER.current_scope().compound_counter;
6611  PARSER.new_scope(std::to_string(prefix)+"::");
6612  }
6613  }
6614 #line 6615 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6615  break;
6616 
6617  case 443:
6618 #line 2384 "parser.y" /* yacc.c:1648 */
6619  {
6620  (yyval)=(yyvsp[-9]);
6621  statement((yyval), ID_for);
6622  stack((yyval)).operands().reserve(4);
6623  mto((yyval), (yyvsp[-6]));
6624  mto((yyval), (yyvsp[-5]));
6625  mto((yyval), (yyvsp[-3]));
6626  mto((yyval), (yyvsp[0]));
6627 
6628  if(stack((yyvsp[-1])).is_not_nil())
6629  stack((yyval)).add(ID_C_spec_loop_invariant).swap(stack((yyvsp[-1])));
6630 
6631  if(PARSER.for_has_scope)
6632  PARSER.pop_scope(); // remove the C99 for-scope
6633  }
6634 #line 6635 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6635  break;
6636 
6637  case 444:
6638 #line 2403 "parser.y" /* yacc.c:1648 */
6639  {
6640  (yyval)=(yyvsp[-2]);
6641  if(stack((yyvsp[-1])).id()==ID_symbol)
6642  {
6643  statement((yyval), ID_goto);
6644  irep_idt identifier=PARSER.lookup_label(stack((yyvsp[-1])).get(ID_C_base_name));
6645  stack((yyval)).set(ID_destination, identifier);
6646  }
6647  else
6648  {
6649  // this is a gcc extension.
6650  // the original grammar uses identifier_or_typedef_name
6651  statement((yyval), ID_gcc_computed_goto);
6652  mto((yyval), (yyvsp[-1]));
6653  }
6654  }
6655 #line 6656 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6656  break;
6657 
6658  case 445:
6659 #line 2420 "parser.y" /* yacc.c:1648 */
6660  {
6661  (yyval)=(yyvsp[-2]);
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 #line 6667 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6667  break;
6668 
6669  case 446:
6670 #line 2427 "parser.y" /* yacc.c:1648 */
6671  { (yyval)=(yyvsp[-1]); statement((yyval), ID_continue); }
6672 #line 6673 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6673  break;
6674 
6675  case 447:
6676 #line 2429 "parser.y" /* yacc.c:1648 */
6677  { (yyval)=(yyvsp[-1]); statement((yyval), ID_break); }
6678 #line 6679 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6679  break;
6680 
6681  case 448:
6682 #line 2431 "parser.y" /* yacc.c:1648 */
6683  { (yyval)=(yyvsp[-1]); statement((yyval), ID_return); }
6684 #line 6685 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6685  break;
6686 
6687  case 449:
6688 #line 2433 "parser.y" /* yacc.c:1648 */
6689  { (yyval)=(yyvsp[-2]); statement((yyval), ID_return); mto((yyval), (yyvsp[-1])); }
6690 #line 6691 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6691  break;
6692 
6693  case 450:
6694 #line 2438 "parser.y" /* yacc.c:1648 */
6695  {
6696  (yyval)=(yyvsp[-2]);
6697  statement((yyval), ID_gcc_local_label);
6698 
6699  // put these into the scope
6700  forall_operands(it, stack((yyvsp[-1])))
6701  {
6702  // labels have a separate name space
6703  irep_idt base_name=it->get(ID_identifier);
6704  irep_idt id="label-"+id2string(base_name);
6705  ansi_c_parsert::identifiert &i=PARSER.current_scope().name_map[id];
6707  i.prefixed_name=PARSER.current_scope().prefix+id2string(id);
6708  i.base_name=base_name;
6709  }
6710 
6711  stack((yyval)).add(ID_label).get_sub().swap((irept::subt&)stack((yyvsp[-1])).operands());
6712  }
6713 #line 6714 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6714  break;
6715 
6716  case 451:
6717 #line 2460 "parser.y" /* yacc.c:1648 */
6718  {
6719  init((yyval));
6720  mto((yyval), (yyvsp[0]));
6721  }
6722 #line 6723 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6723  break;
6724 
6725  case 452:
6726 #line 2465 "parser.y" /* yacc.c:1648 */
6727  {
6728  (yyval)=(yyvsp[-2]);
6729  mto((yyval), (yyvsp[0]));
6730  }
6731 #line 6732 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6732  break;
6733 
6734  case 454:
6735 #line 2476 "parser.y" /* yacc.c:1648 */
6736  { (yyval)=(yyvsp[-5]);
6737  statement((yyval), ID_asm);
6738  stack((yyval)).set(ID_flavor, ID_gcc);
6739  stack((yyval)).operands().swap(stack((yyvsp[-2])).operands());
6740  }
6741 #line 6742 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6742  break;
6743 
6744  case 455:
6745 #line 2482 "parser.y" /* yacc.c:1648 */
6746  {
6747  (yyval)=(yyvsp[-4]);
6748  statement((yyval), ID_asm);
6749  stack((yyval)).set(ID_flavor, ID_gcc);
6750  stack((yyval)).operands().resize(5);
6751  stack((yyval)).op0()=stack((yyvsp[-1]));
6752  }
6753 #line 6754 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6754  break;
6755 
6756  case 456:
6757 #line 2493 "parser.y" /* yacc.c:1648 */
6758  { (yyval)=(yyvsp[-3]);
6759  statement((yyval), ID_asm);
6760  stack((yyval)).set(ID_flavor, ID_msc);
6761  mto((yyval), (yyvsp[-1]));
6762  }
6763 #line 6764 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6764  break;
6765 
6766  case 457:
6767 #line 2499 "parser.y" /* yacc.c:1648 */
6768  { (yyval)=(yyvsp[-1]);
6769  statement((yyval), ID_asm);
6770  stack((yyval)).set(ID_flavor, ID_msc);
6771  mto((yyval), (yyvsp[0]));
6772  }
6773 #line 6774 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6774  break;
6775 
6776  case 458:
6777 #line 2509 "parser.y" /* yacc.c:1648 */
6778  {
6779  (yyval)=(yyvsp[-6]);
6780  statement((yyval), ID_msc_try_except);
6781  mto((yyval), (yyvsp[-5]));
6782  mto((yyval), (yyvsp[-2]));
6783  mto((yyval), (yyvsp[0]));
6784  }
6785 #line 6786 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6786  break;
6787 
6788  case 459:
6789 #line 2518 "parser.y" /* yacc.c:1648 */
6790  {
6791  (yyval)=(yyvsp[-3]);
6792  statement((yyval), ID_msc_try_finally);
6793  mto((yyval), (yyvsp[-2]));
6794  mto((yyval), (yyvsp[0]));
6795  }
6796 #line 6797 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6797  break;
6798 
6799  case 460:
6800 #line 2525 "parser.y" /* yacc.c:1648 */
6801  {
6802  (yyval)=(yyvsp[0]);
6803  statement((yyval), ID_msc_leave);
6804  }
6805 #line 6806 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6806  break;
6807 
6808  case 461:
6809 #line 2533 "parser.y" /* yacc.c:1648 */
6810  {
6811  (yyval)=(yyvsp[-1]);
6812  statement((yyval), ID_CPROVER_throw);
6813  }
6814 #line 6815 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6815  break;
6816 
6817  case 462:
6818 #line 2539 "parser.y" /* yacc.c:1648 */
6819  {
6820  (yyval)=(yyvsp[-3]);
6821  statement((yyval), ID_CPROVER_try_catch);
6822  mto((yyval), (yyvsp[-2]));
6823  mto((yyval), (yyvsp[0]));
6824  }
6825 #line 6826 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6826  break;
6827 
6828  case 463:
6829 #line 2547 "parser.y" /* yacc.c:1648 */
6830  {
6831  (yyval)=(yyvsp[-3]);
6832  statement((yyval), ID_CPROVER_try_finally);
6833  mto((yyval), (yyvsp[-2]));
6834  mto((yyval), (yyvsp[0]));
6835  }
6836 #line 6837 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6837  break;
6838 
6839  case 469:
6840 #line 2573 "parser.y" /* yacc.c:1648 */
6841  {
6842  init((yyval));
6843  stack((yyval)).operands().resize(5);
6844  stack((yyval)).operands()[0]=stack((yyvsp[0]));
6845  }
6846 #line 6847 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6847  break;
6848 
6849  case 470:
6850 #line 2579 "parser.y" /* yacc.c:1648 */
6851  {
6852  init((yyval));
6853  stack((yyval)).operands().resize(5);
6854  stack((yyval)).operands()[0]=stack((yyvsp[-1]));
6855  stack((yyval)).operands()[1]=stack((yyvsp[0]));
6856  }
6857 #line 6858 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6858  break;
6859 
6860  case 471:
6861 #line 2586 "parser.y" /* yacc.c:1648 */
6862  {
6863  init((yyval));
6864  stack((yyval)).operands().resize(5);
6865  stack((yyval)).operands()[0]=stack((yyvsp[-2]));
6866  stack((yyval)).operands()[1]=stack((yyvsp[-1]));
6867  stack((yyval)).operands()[2]=stack((yyvsp[0]));
6868  }
6869 #line 6870 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6870  break;
6871 
6872  case 472:
6873 #line 2594 "parser.y" /* yacc.c:1648 */
6874  {
6875  init((yyval));
6876  stack((yyval)).operands().resize(5);
6877  stack((yyval)).operands()[0]=stack((yyvsp[-3]));
6878  stack((yyval)).operands()[1]=stack((yyvsp[-2]));
6879  stack((yyval)).operands()[2]=stack((yyvsp[-1]));
6880  stack((yyval)).operands()[3]=stack((yyvsp[0]));
6881  }
6882 #line 6883 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6883  break;
6884 
6885  case 473:
6886 #line 2603 "parser.y" /* yacc.c:1648 */
6887  {
6888  init((yyval));
6889  stack((yyval)).operands().resize(5);
6890  stack((yyval)).operands()[0]=stack((yyvsp[-4]));
6891  stack((yyval)).operands()[1]=stack((yyvsp[-3]));
6892  stack((yyval)).operands()[2]=stack((yyvsp[-2]));
6893  stack((yyval)).operands()[3]=stack((yyvsp[-1]));
6894  stack((yyval)).operands()[4]=stack((yyvsp[0]));
6895  }
6896 #line 6897 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6897  break;
6898 
6899  case 475:
6900 #line 2619 "parser.y" /* yacc.c:1648 */
6901  {
6902  (yyval)=(yyvsp[0]);
6903  }
6904 #line 6905 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6905  break;
6906 
6907  case 477:
6908 #line 2627 "parser.y" /* yacc.c:1648 */
6909  {
6910  (yyval)=(yyvsp[-2]);
6911  stack((yyval)).id(ID_gcc_asm_output);
6912  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6913  }
6914 #line 6915 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6915  break;
6916 
6917  case 478:
6918 #line 2634 "parser.y" /* yacc.c:1648 */
6919  {
6920  (yyval)=(yyvsp[-2]);
6921  stack((yyval)).id(ID_gcc_asm_output);
6922  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6923  }
6924 #line 6925 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6925  break;
6926 
6927  case 479:
6928 #line 2643 "parser.y" /* yacc.c:1648 */
6929  {
6930  init((yyval), irep_idt());
6931  mto((yyval), (yyvsp[0]));
6932  }
6933 #line 6934 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6934  break;
6935 
6936  case 480:
6937 #line 2648 "parser.y" /* yacc.c:1648 */
6938  {
6939  (yyval)=(yyvsp[-2]);
6940  mto((yyval), (yyvsp[0]));
6941  }
6942 #line 6943 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6943  break;
6944 
6945  case 481:
6946 #line 2656 "parser.y" /* yacc.c:1648 */
6947  {
6948  (yyval)=(yyvsp[0]);
6949  }
6950 #line 6951 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6951  break;
6952 
6953  case 483:
6954 #line 2664 "parser.y" /* yacc.c:1648 */
6955  {
6956  (yyval)=(yyvsp[-2]);
6957  stack((yyval)).id(ID_gcc_asm_input);
6958  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6959  }
6960 #line 6961 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6961  break;
6962 
6963  case 484:
6964 #line 2671 "parser.y" /* yacc.c:1648 */
6965  {
6966  (yyval)=(yyvsp[-2]);
6967  stack((yyval)).id(ID_gcc_asm_input);
6968  stack((yyval)).move_to_operands(stack((yyvsp[-3])), stack((yyvsp[-1])));
6969  }
6970 #line 6971 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6971  break;
6972 
6973  case 485:
6974 #line 2680 "parser.y" /* yacc.c:1648 */
6975  {
6976  init((yyval), irep_idt());
6977  mto((yyval), (yyvsp[0]));
6978  }
6979 #line 6980 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6980  break;
6981 
6982  case 486:
6983 #line 2685 "parser.y" /* yacc.c:1648 */
6984  {
6985  (yyval)=(yyvsp[-2]);
6986  mto((yyval), (yyvsp[0]));
6987  }
6988 #line 6989 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6989  break;
6990 
6991  case 487:
6992 #line 2693 "parser.y" /* yacc.c:1648 */
6993  {
6994  (yyval)=(yyvsp[0]);
6995  }
6996 #line 6997 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
6997  break;
6998 
6999  case 489:
7000 #line 2701 "parser.y" /* yacc.c:1648 */
7001  {
7002  init((yyval), ID_gcc_asm_clobbered_register);
7003  mto((yyval), (yyvsp[0]));
7004  }
7005 #line 7006 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7006  break;
7007 
7008  case 490:
7009 #line 2709 "parser.y" /* yacc.c:1648 */
7010  {
7011  init((yyval), irep_idt());
7012  mto((yyval), (yyvsp[0]));
7013  }
7014 #line 7015 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7015  break;
7016 
7017  case 491:
7018 #line 2714 "parser.y" /* yacc.c:1648 */
7019  {
7020  (yyval)=(yyvsp[-2]);
7021  mto((yyval), (yyvsp[0]));
7022  }
7023 #line 7024 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7024  break;
7025 
7026  case 492:
7027 #line 2722 "parser.y" /* yacc.c:1648 */
7028  {
7029  (yyval)=(yyvsp[0]);
7030  }
7031 #line 7032 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7032  break;
7033 
7034  case 494:
7035 #line 2730 "parser.y" /* yacc.c:1648 */
7036  {
7037  init((yyval));
7038  mto((yyval), (yyvsp[0]));
7039  }
7040 #line 7041 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7041  break;
7042 
7043  case 495:
7044 #line 2735 "parser.y" /* yacc.c:1648 */
7045  {
7046  (yyval)=(yyvsp[-2]);
7047  mto((yyval), (yyvsp[0]));
7048  }
7049 #line 7050 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7050  break;
7051 
7052  case 496:
7053 #line 2743 "parser.y" /* yacc.c:1648 */
7054  {
7055  (yyval)=(yyvsp[0]);
7056  irep_idt identifier=PARSER.lookup_label(stack((yyval)).get(ID_C_base_name));
7057  stack((yyval)).id(ID_label);
7058  stack((yyval)).set(ID_identifier, identifier);
7059  }
7060 #line 7061 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7061  break;
7062 
7063  case 501:
7064 #line 2762 "parser.y" /* yacc.c:1648 */
7065  {
7066  // put into global list of items
7067  PARSER.copy_item(to_ansi_c_declaration(stack((yyvsp[0]))));
7068  }
7069 #line 7070 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7070  break;
7071 
7072  case 502:
7073 #line 2767 "parser.y" /* yacc.c:1648 */
7074  {
7075  PARSER.copy_item(to_ansi_c_declaration(stack((yyvsp[0]))));
7076  }
7077 #line 7078 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7078  break;
7079 
7080  case 505:
7081 #line 2776 "parser.y" /* yacc.c:1648 */
7082  {
7083  // Not obvious what to do with this.
7084  }
7085 #line 7086 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7086  break;
7087 
7088  case 506:
7089 #line 2780 "parser.y" /* yacc.c:1648 */
7090  {
7091  // Not obvious what to do with this.
7092  }
7093 #line 7094 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7094  break;
7095 
7096  case 507:
7097 #line 2790 "parser.y" /* yacc.c:1648 */
7098  {
7099  if(stack((yyvsp[-2])).is_not_nil())
7100  stack((yyvsp[-3])).add(ID_C_spec_requires).swap(stack((yyvsp[-2])));
7101  if(stack((yyvsp[-1])).is_not_nil())
7102  stack((yyvsp[-3])).add(ID_C_spec_ensures).swap(stack((yyvsp[-1])));
7103  // The head is a declaration with one declarator,
7104  // and the body becomes the 'value'.
7105  (yyval)=(yyvsp[-3]);
7106  ansi_c_declarationt &ansi_c_declaration=
7107  to_ansi_c_declaration(stack((yyval)));
7108 
7109  assert(ansi_c_declaration.declarators().size()==1);
7110  ansi_c_declaration.add_initializer(stack((yyvsp[0])));
7111 
7112  // Kill the scope that 'function_head' creates.
7113  PARSER.pop_scope();
7114 
7115  // We are no longer in any function.
7116  PARSER.set_function(irep_idt());
7117  }
7118 #line 7119 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7119  break;
7120 
7121  case 509:
7122 #line 2818 "parser.y" /* yacc.c:1648 */
7123  {
7124  init((yyval));
7125  }
7126 #line 7127 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7127  break;
7128 
7129  case 511:
7130 #line 2826 "parser.y" /* yacc.c:1648 */
7131  {
7132  init((yyval), ID_decl_block);
7133  mto((yyval), (yyvsp[0]));
7134  }
7135 #line 7136 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7136  break;
7137 
7138  case 512:
7139 #line 2831 "parser.y" /* yacc.c:1648 */
7140  {
7141  (yyval)=(yyvsp[-1]);
7142  mto((yyval), (yyvsp[0]));
7143  }
7144 #line 7145 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7145  break;
7146 
7147  case 515:
7148 #line 2845 "parser.y" /* yacc.c:1648 */
7149  {
7150  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7151  }
7152 #line 7153 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7153  break;
7154 
7155  case 516:
7156 #line 2849 "parser.y" /* yacc.c:1648 */
7157  {
7158  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7159  }
7160 #line 7161 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7161  break;
7162 
7163  case 517:
7164 #line 2856 "parser.y" /* yacc.c:1648 */
7165  {
7166  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7167  }
7168 #line 7169 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7169  break;
7170 
7171  case 518:
7172 #line 2860 "parser.y" /* yacc.c:1648 */
7173  {
7174  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7175  }
7176 #line 7177 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7177  break;
7178 
7179  case 519:
7180 #line 2864 "parser.y" /* yacc.c:1648 */
7181  {
7182  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7183  }
7184 #line 7185 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7185  break;
7186 
7187  case 520:
7188 #line 2868 "parser.y" /* yacc.c:1648 */
7189  {
7190  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7191  }
7192 #line 7193 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7193  break;
7194 
7195  case 521:
7196 #line 2876 "parser.y" /* yacc.c:1648 */
7197  {
7198  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7199  }
7200 #line 7201 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7201  break;
7202 
7203  case 522:
7204 #line 2880 "parser.y" /* yacc.c:1648 */
7205  {
7206  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7207  }
7208 #line 7209 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7209  break;
7210 
7211  case 523:
7212 #line 2884 "parser.y" /* yacc.c:1648 */
7213  {
7214  (yyval)=merge((yyvsp[-2]), merge((yyvsp[-1]), (yyvsp[0])));
7215  }
7216 #line 7217 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7217  break;
7218 
7219  case 524:
7220 #line 2892 "parser.y" /* yacc.c:1648 */
7221  {
7222  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[-1])));
7223  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0])));
7224  }
7225 #line 7226 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7226  break;
7227 
7228  case 525:
7229 #line 2897 "parser.y" /* yacc.c:1648 */
7230  {
7231  stack((yyvsp[-2])).id(ID_c_enum_tag);
7232  stack((yyvsp[-2])).set(ID_tag, stack((yyvsp[-1])));
7233  (yyval)=merge((yyvsp[-3]), merge((yyvsp[-2]), (yyvsp[0])));
7234  }
7235 #line 7236 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7236  break;
7237 
7238  case 529:
7239 #line 2913 "parser.y" /* yacc.c:1648 */
7240  {
7241  init((yyval), ID_declaration);
7242  stack((yyval)).type().swap(stack((yyvsp[-1])));
7243  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7244  }
7245 #line 7246 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7246  break;
7247 
7248  case 530:
7249 #line 2919 "parser.y" /* yacc.c:1648 */
7250  {
7251  init((yyval), ID_declaration);
7252  stack((yyval)).type().swap(stack((yyvsp[-1])));
7253  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7254  }
7255 #line 7256 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7256  break;
7257 
7258  case 531:
7259 #line 2925 "parser.y" /* yacc.c:1648 */
7260  {
7261  (yyval)=(yyvsp[-2]);
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 2933 "parser.y" /* yacc.c:1648 */
7269  {
7270  init((yyval), ID_declaration);
7271  irept return_type(ID_int);
7272  stack((yyval)).type().swap(return_type);
7273  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7274  create_function_scope((yyval));
7275  }
7276 #line 7277 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7277  break;
7278 
7279  case 533:
7280 #line 2941 "parser.y" /* yacc.c:1648 */
7281  {
7282  init((yyval), ID_declaration);
7283  stack((yyval)).type().swap(stack((yyvsp[-1])));
7284  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7285  create_function_scope((yyval));
7286  }
7287 #line 7288 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7288  break;
7289 
7290  case 534:
7291 #line 2948 "parser.y" /* yacc.c:1648 */
7292  {
7293  init((yyval), ID_declaration);
7294  stack((yyval)).type().swap(stack((yyvsp[-1])));
7295  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7296  create_function_scope((yyval));
7297  }
7298 #line 7299 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7299  break;
7300 
7301  case 535:
7302 #line 2955 "parser.y" /* yacc.c:1648 */
7303  {
7304  init((yyval), ID_declaration);
7305  stack((yyval)).type().swap(stack((yyvsp[-1])));
7306  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7307  create_function_scope((yyval));
7308  }
7309 #line 7310 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7310  break;
7311 
7312  case 536:
7313 #line 2962 "parser.y" /* yacc.c:1648 */
7314  {
7315  init((yyval), ID_declaration);
7316  stack((yyval)).type().swap(stack((yyvsp[-1])));
7317  PARSER.add_declarator(stack((yyval)), stack((yyvsp[0])));
7318  create_function_scope((yyval));
7319  }
7320 #line 7321 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7321  break;
7322 
7323  case 540:
7324 #line 2978 "parser.y" /* yacc.c:1648 */
7325  {
7326  stack_type((yyvsp[-3]))=typet(ID_abstract);
7327  (yyvsp[-2])=merge((yyvsp[-2]), (yyvsp[-3])); // dest=$2
7328  make_subtype((yyvsp[-1]), (yyvsp[-2])); // dest=$3
7329  (yyval)=(yyvsp[-1]);
7330  }
7331 #line 7332 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7332  break;
7333 
7334  case 541:
7335 #line 2985 "parser.y" /* yacc.c:1648 */
7336  {
7337  stack_type((yyvsp[-4]))=typet(ID_abstract);
7338  (yyvsp[-3])=merge((yyvsp[-3]), (yyvsp[-4])); // dest=$2
7339  make_subtype((yyvsp[-2]), (yyvsp[-3])); // dest=$3
7340  /* note: this is (a pointer to) a function ($5) */
7341  /* or an array ($5) with name ($3) */
7342  (yyval)=(yyvsp[-2]);
7343  make_subtype((yyval), (yyvsp[0]));
7344  }
7345 #line 7346 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7346  break;
7347 
7348  case 542:
7349 #line 2995 "parser.y" /* yacc.c:1648 */
7350  {
7351  (yyval)=(yyvsp[0]);
7352  do_pointer((yyvsp[-1]), (yyvsp[0]));
7353  }
7354 #line 7355 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7355  break;
7356 
7357  case 546:
7358 #line 3009 "parser.y" /* yacc.c:1648 */
7359  {
7360  (yyval)=(yyvsp[-1]);
7361  make_subtype((yyval), (yyvsp[0]));
7362  }
7363 #line 7364 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7364  break;
7365 
7366  case 549:
7367 #line 3019 "parser.y" /* yacc.c:1648 */
7368  {
7369  (yyval)=(yyvsp[0]);
7370  do_pointer((yyvsp[-1]), (yyvsp[0]));
7371  }
7372 #line 7373 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7373  break;
7374 
7375  case 550:
7376 #line 3024 "parser.y" /* yacc.c:1648 */
7377  {
7378  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
7379  do_pointer((yyvsp[-2]), (yyvsp[-1]));
7380  }
7381 #line 7382 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7382  break;
7383 
7384  case 551:
7385 #line 3032 "parser.y" /* yacc.c:1648 */
7386  { (yyval) = (yyvsp[-1]); }
7387 #line 7388 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7388  break;
7389 
7390  case 552:
7391 #line 3034 "parser.y" /* yacc.c:1648 */
7392  {
7393  /* note: this is a pointer ($2) to a function ($4) */
7394  /* or an array ($4)! */
7395  (yyval)=(yyvsp[-2]);
7396  make_subtype((yyval), (yyvsp[0]));
7397  }
7398 #line 7399 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7399  break;
7400 
7401  case 554:
7402 #line 3045 "parser.y" /* yacc.c:1648 */
7403  {
7404  (yyval)=(yyvsp[-1]);
7405  do_pointer((yyvsp[-3]), (yyvsp[-1]));
7406  }
7407 #line 7408 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7408  break;
7409 
7410  case 555:
7411 #line 3050 "parser.y" /* yacc.c:1648 */
7412  {
7413  // not sure where the type qualifiers belong
7414  (yyval)=merge((yyvsp[-3]), (yyvsp[-1]));
7415  do_pointer((yyvsp[-4]), (yyvsp[-3]));
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[0]);
7424  do_pointer((yyvsp[-1]), (yyvsp[0]));
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  (yyval)=merge((yyvsp[-1]), (yyvsp[0]));
7433  do_pointer((yyvsp[-2]), (yyvsp[-1]));
7434  }
7435 #line 7436 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7436  break;
7437 
7438  case 558:
7439 #line 3069 "parser.y" /* yacc.c:1648 */
7440  { (yyval) = (yyvsp[-1]); }
7441 #line 7442 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7442  break;
7443 
7444  case 559:
7445 #line 3071 "parser.y" /* yacc.c:1648 */
7446  { /* note: this is a function ($3) with a typedef name ($2) */
7447  (yyval)=(yyvsp[-2]);
7448  make_subtype((yyval), (yyvsp[-1]));
7449  }
7450 #line 7451 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7451  break;
7452 
7453  case 560:
7454 #line 3076 "parser.y" /* yacc.c:1648 */
7455  {
7456  /* note: this is a pointer ($2) to a function ($4) */
7457  /* or an array ($4)! */
7458  (yyval)=(yyvsp[-2]);
7459  make_subtype((yyval), (yyvsp[0]));
7460  }
7461 #line 7462 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7462  break;
7463 
7464  case 562:
7465 #line 3087 "parser.y" /* yacc.c:1648 */
7466  { (yyval)=(yyvsp[-1]); }
7467 #line 7468 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7468  break;
7469 
7470  case 566:
7471 #line 3098 "parser.y" /* yacc.c:1648 */
7472  {
7473  (yyval)=(yyvsp[0]);
7474  do_pointer((yyvsp[-1]), (yyvsp[0]));
7475  }
7476 #line 7477 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7477  break;
7478 
7479  case 567:
7480 #line 3103 "parser.y" /* yacc.c:1648 */
7481  {
7482  // This is an Apple extension to C/C++/Objective C.
7483  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7484  (yyval)=(yyvsp[0]);
7485  do_pointer((yyvsp[-1]), (yyvsp[0]));
7486  }
7487 #line 7488 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7488  break;
7489 
7490  case 568:
7491 #line 3110 "parser.y" /* yacc.c:1648 */
7492  {
7493  // the type_qualifier_list is for the pointer,
7494  // and not the identifier_declarator
7495  // The below is deliberately not using pointer_type();
7496  // the width is added during conversion.
7497  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7498  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7499  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7500  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7501  (yyval)=(yyvsp[0]);
7502  }
7503 #line 7504 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7504  break;
7505 
7506  case 569:
7507 #line 3125 "parser.y" /* yacc.c:1648 */
7508  {
7509  /* note: this is a function or array ($2) with name ($1) */
7510  (yyval)=(yyvsp[-1]);
7511  make_subtype((yyval), (yyvsp[0]));
7512  }
7513 #line 7514 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7514  break;
7515 
7516  case 570:
7517 #line 3131 "parser.y" /* yacc.c:1648 */
7518  { (yyval) = (yyvsp[-1]); }
7519 #line 7520 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7520  break;
7521 
7522  case 571:
7523 #line 3133 "parser.y" /* yacc.c:1648 */
7524  {
7525  /* note: this is a pointer ($2) to a function ($4) */
7526  /* or an array ($4)! */
7527  (yyval)=(yyvsp[-2]);
7528  make_subtype((yyval), (yyvsp[0]));
7529  }
7530 #line 7531 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7531  break;
7532 
7533  case 572:
7534 #line 3143 "parser.y" /* yacc.c:1648 */
7535  {
7536  // We remember the last declarator for the benefit
7537  // of function argument scoping.
7538  PARSER.current_scope().last_declarator=
7539  stack((yyvsp[0])).get(ID_identifier);
7540  }
7541 #line 7542 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7542  break;
7543 
7544  case 573:
7545 #line 3150 "parser.y" /* yacc.c:1648 */
7546  { (yyval)=(yyvsp[-1]); }
7547 #line 7548 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7548  break;
7549 
7550  case 580:
7551 #line 3170 "parser.y" /* yacc.c:1648 */
7552  {
7553  (yyval)=(yyvsp[-2]);
7554  set((yyval), ID_code);
7555  stack_type((yyval)).subtype()=typet(ID_abstract);
7556  stack_type((yyval)).add(ID_parameters);
7557  stack_type((yyval)).set(ID_C_KnR, true);
7558  }
7559 #line 7560 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7560  break;
7561 
7562  case 581:
7563 #line 3178 "parser.y" /* yacc.c:1648 */
7564  {
7565  // Use last declarator (i.e., function name) to name
7566  // the scope.
7567  PARSER.new_scope(
7568  id2string(PARSER.current_scope().last_declarator)+"::");
7569  }
7570 #line 7571 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7571  break;
7572 
7573  case 582:
7574 #line 3187 "parser.y" /* yacc.c:1648 */
7575  {
7576  (yyval)=(yyvsp[-4]);
7577  set((yyval), ID_code);
7578  stack_type((yyval)).subtype()=typet(ID_abstract);
7579  stack_type((yyval)).add(ID_parameters).get_sub().
7580  swap((irept::subt &)(stack_type((yyvsp[-2])).subtypes()));
7581  PARSER.pop_scope();
7582  adjust_KnR_parameters(stack((yyval)).add(ID_parameters), stack((yyvsp[0])));
7583  stack((yyval)).set(ID_C_KnR, true);
7584  }
7585 #line 7586 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7586  break;
7587 
7588  case 584:
7589 #line 3202 "parser.y" /* yacc.c:1648 */
7590  {
7591  (yyval)=(yyvsp[-1]);
7592  set((yyval), ID_code);
7593  stack_type((yyval)).add(ID_parameters);
7594  stack_type((yyval)).subtype()=typet(ID_abstract);
7595  }
7596 #line 7597 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7597  break;
7598 
7599  case 585:
7600 #line 3209 "parser.y" /* yacc.c:1648 */
7601  {
7602  // Use last declarator (i.e., function name) to name
7603  // the scope.
7604  PARSER.new_scope(
7605  id2string(PARSER.current_scope().last_declarator)+"::");
7606  }
7607 #line 7608 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7608  break;
7609 
7610  case 586:
7611 #line 3217 "parser.y" /* yacc.c:1648 */
7612  {
7613  (yyval)=(yyvsp[-4]);
7614  set((yyval), ID_code);
7615  stack_type((yyval)).subtype()=typet(ID_abstract);
7616  stack_type((yyval)).add(ID_parameters).get_sub().
7617  swap((irept::subt &)(stack_type((yyvsp[-2])).subtypes()));
7618  PARSER.pop_scope();
7619 
7620  if(stack((yyvsp[0])).is_not_nil())
7621  {
7622  adjust_KnR_parameters(stack((yyval)).add(ID_parameters), stack((yyvsp[0])));
7623  stack((yyval)).set(ID_C_KnR, true);
7624  }
7625  }
7626 #line 7627 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7627  break;
7628 
7629  case 587:
7630 #line 3235 "parser.y" /* yacc.c:1648 */
7631  {
7632  (yyval)=(yyvsp[-1]);
7633  set((yyval), ID_array);
7634  stack_type((yyval)).subtype()=typet(ID_abstract);
7635  stack_type((yyval)).add(ID_size).make_nil();
7636  }
7637 #line 7638 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7638  break;
7639 
7640  case 588:
7641 #line 3242 "parser.y" /* yacc.c:1648 */
7642  {
7643  // this is C99: e.g., restrict, const, etc
7644  // The type qualifier belongs to the array, not the
7645  // contents of the array, nor the size.
7646  set((yyvsp[-2]), ID_array);
7647  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7648  stack_type((yyvsp[-2])).add(ID_size).make_nil();
7649  (yyval)=merge((yyvsp[-1]), (yyvsp[-2]));
7650  }
7651 #line 7652 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7652  break;
7653 
7654  case 589:
7655 #line 3252 "parser.y" /* yacc.c:1648 */
7656  {
7657  // these should be allowed in prototypes only
7658  (yyval)=(yyvsp[-2]);
7659  set((yyval), ID_array);
7660  stack_type((yyval)).subtype()=typet(ID_abstract);
7661  stack_type((yyval)).add(ID_size).make_nil();
7662  }
7663 #line 7664 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7664  break;
7665 
7666  case 590:
7667 #line 3260 "parser.y" /* yacc.c:1648 */
7668  {
7669  (yyval)=(yyvsp[-2]);
7670  set((yyval), ID_array);
7671  stack_type((yyval)).add(ID_size).swap(stack((yyvsp[-1])));
7672  stack_type((yyval)).subtype()=typet(ID_abstract);
7673  }
7674 #line 7675 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7675  break;
7676 
7677  case 591:
7678 #line 3267 "parser.y" /* yacc.c:1648 */
7679  {
7680  // The type qualifier belongs to the array, not the
7681  // contents of the array, nor the size.
7682  set((yyvsp[-3]), ID_array);
7683  stack_type((yyvsp[-3])).add(ID_size).swap(stack((yyvsp[-1])));
7684  stack_type((yyvsp[-3])).subtype()=typet(ID_abstract);
7685  (yyval)=merge((yyvsp[-2]), (yyvsp[-3])); // dest=$2
7686  }
7687 #line 7688 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7688  break;
7689 
7690  case 592:
7691 #line 3276 "parser.y" /* yacc.c:1648 */
7692  {
7693  // we need to push this down
7694  (yyval)=(yyvsp[-3]);
7695  set((yyvsp[-2]), ID_array);
7696  stack_type((yyvsp[-2])).add(ID_size).swap(stack((yyvsp[-1])));
7697  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7698  make_subtype((yyvsp[-3]), (yyvsp[-2]));
7699  }
7700 #line 7701 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7701  break;
7702 
7703  case 593:
7704 #line 3285 "parser.y" /* yacc.c:1648 */
7705  {
7706  // these should be allowed in prototypes only
7707  // we need to push this down
7708  (yyval)=(yyvsp[-3]);
7709  set((yyvsp[-2]), ID_array);
7710  stack_type((yyvsp[-2])).add(ID_size).make_nil();
7711  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7712  make_subtype((yyvsp[-3]), (yyvsp[-2]));
7713  }
7714 #line 7715 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7715  break;
7716 
7717  case 594:
7718 #line 3298 "parser.y" /* yacc.c:1648 */
7719  {
7720  (yyval)=(yyvsp[0]);
7721  // The below is deliberately not using pointer_type();
7722  // the width is added during conversion.
7723  stack_type((yyval)).id(ID_frontend_pointer);
7724  stack_type((yyval)).subtype()=typet(ID_abstract);
7725  }
7726 #line 7727 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7727  break;
7728 
7729  case 595:
7730 #line 3306 "parser.y" /* yacc.c:1648 */
7731  {
7732  // The type_qualifier_list belongs to the pointer,
7733  // not to the (missing) abstract declarator.
7734  // The below is deliberately not using pointer_type();
7735  // the width is added during conversion.
7736  stack_type((yyvsp[-1])).id(ID_frontend_pointer);
7737  stack_type((yyvsp[-1])).subtype()=typet(ID_abstract);
7738  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7739  }
7740 #line 7741 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7741  break;
7742 
7743  case 596:
7744 #line 3316 "parser.y" /* yacc.c:1648 */
7745  {
7746  (yyval)=(yyvsp[0]);
7747  do_pointer((yyvsp[-1]), (yyvsp[0]));
7748  }
7749 #line 7750 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7750  break;
7751 
7752  case 597:
7753 #line 3321 "parser.y" /* yacc.c:1648 */
7754  {
7755  // The type_qualifier_list belongs to the pointer,
7756  // not to the abstract declarator.
7757  // The below is deliberately not using pointer_type();
7758  // the width is added during conversion.
7759  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7760  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7761  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7762  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7763  (yyval)=(yyvsp[0]);
7764  }
7765 #line 7766 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7766  break;
7767 
7768  case 598:
7769 #line 3333 "parser.y" /* yacc.c:1648 */
7770  {
7771  // This is an Apple extension to C/C++/Objective C.
7772  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7773  (yyval)=(yyvsp[0]);
7774  set((yyval), ID_block_pointer);
7775  stack_type((yyval)).subtype()=typet(ID_abstract);
7776  }
7777 #line 7778 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7778  break;
7779 
7780  case 599:
7781 #line 3344 "parser.y" /* yacc.c:1648 */
7782  {
7783  (yyval)=(yyvsp[0]);
7784  // The below is deliberately not using pointer_type();
7785  // the width is added during conversion.
7786  stack_type((yyval)).id(ID_frontend_pointer);
7787  stack_type((yyval)).subtype()=typet(ID_abstract);
7788  }
7789 #line 7790 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7790  break;
7791 
7792  case 600:
7793 #line 3352 "parser.y" /* yacc.c:1648 */
7794  {
7795  // The type_qualifier_list belongs to the pointer,
7796  // not to the (missing) abstract declarator.
7797  // The below is deliberately not using pointer_type();
7798  // the width is added during conversion.
7799  stack_type((yyvsp[-1])).id(ID_frontend_pointer);
7800  stack_type((yyvsp[-1])).subtype()=typet(ID_abstract);
7801  (yyval)=merge((yyvsp[0]), (yyvsp[-1]));
7802  }
7803 #line 7804 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7804  break;
7805 
7806  case 601:
7807 #line 3362 "parser.y" /* yacc.c:1648 */
7808  {
7809  (yyval)=(yyvsp[0]);
7810  do_pointer((yyvsp[-1]), (yyvsp[0]));
7811  }
7812 #line 7813 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7813  break;
7814 
7815  case 602:
7816 #line 3367 "parser.y" /* yacc.c:1648 */
7817  {
7818  // The type_qualifier_list belongs to the pointer,
7819  // not to the (missing) abstract declarator.
7820  // The below is deliberately not using pointer_type();
7821  // the width is added during conversion.
7822  stack_type((yyvsp[-2])).id(ID_frontend_pointer);
7823  stack_type((yyvsp[-2])).subtype()=typet(ID_abstract);
7824  (yyvsp[-1])=merge((yyvsp[-1]), (yyvsp[-2])); // dest=$2
7825  make_subtype((yyvsp[0]), (yyvsp[-1])); // dest=$3
7826  (yyval)=(yyvsp[0]);
7827  }
7828 #line 7829 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7829  break;
7830 
7831  case 603:
7832 #line 3379 "parser.y" /* yacc.c:1648 */
7833  {
7834  // This is an Apple extension to C/C++/Objective C.
7835  // http://en.wikipedia.org/wiki/Blocks_(C_language_extension)
7836  (yyval)=(yyvsp[0]);
7837  set((yyval), ID_block_pointer);
7838  stack_type((yyval)).subtype()=typet(ID_abstract);
7839  }
7840 #line 7841 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7841  break;
7842 
7843  case 604:
7844 #line 3390 "parser.y" /* yacc.c:1648 */
7845  { (yyval) = (yyvsp[-1]); }
7846 #line 7847 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7847  break;
7848 
7849  case 605:
7850 #line 3392 "parser.y" /* yacc.c:1648 */
7851  { (yyval) = (yyvsp[-1]); }
7852 #line 7853 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7853  break;
7854 
7855  case 606:
7856 #line 3394 "parser.y" /* yacc.c:1648 */
7857  { (yyval) = (yyvsp[-1]); }
7858 #line 7859 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7859  break;
7860 
7861  case 607:
7862 #line 3396 "parser.y" /* yacc.c:1648 */
7863  {
7864  /* note: this is a pointer ($2) to a function or array ($4) */
7865  (yyval)=(yyvsp[-2]);
7866  make_subtype((yyval), (yyvsp[0]));
7867  }
7868 #line 7869 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7869  break;
7870 
7871  case 608:
7872 #line 3402 "parser.y" /* yacc.c:1648 */
7873  {
7874  /* note: this is a pointer ($2) to a function or array ($4) */
7875  (yyval)=(yyvsp[-2]);
7876  make_subtype((yyval), (yyvsp[0]));
7877  }
7878 #line 7879 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7879  break;
7880 
7881  case 609:
7882 #line 3411 "parser.y" /* yacc.c:1648 */
7883  { (yyval) = (yyvsp[-1]); }
7884 #line 7885 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7885  break;
7886 
7887  case 610:
7888 #line 3413 "parser.y" /* yacc.c:1648 */
7889  { (yyval) = (yyvsp[-1]); }
7890 #line 7891 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7891  break;
7892 
7893  case 612:
7894 #line 3416 "parser.y" /* yacc.c:1648 */
7895  {
7896  /* note: this is a pointer ($2) to a function ($4) */
7897  (yyval)=(yyvsp[-2]);
7898  make_subtype((yyval), (yyvsp[0]));
7899  }
7900 #line 7901 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7901  break;
7902 
7903 
7904 #line 7905 "ansi_c_y.tab.cpp" /* yacc.c:1648 */
7905  default: break;
7906  }
7907  /* User semantic actions sometimes alter yychar, and that requires
7908  that yytoken be updated with the new translation. We take the
7909  approach of translating immediately before every use of yytoken.
7910  One alternative is translating here after every semantic action,
7911  but that translation would be missed if the semantic action invokes
7912  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
7913  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
7914  incorrect destructor might then be invoked immediately. In the
7915  case of YYERROR or YYBACKUP, subsequent parser actions might lead
7916  to an incorrect destructor call or verbose syntax error message
7917  before the lookahead is translated. */
7918  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
7919 
7920  YYPOPSTACK (yylen);
7921  yylen = 0;
7922  YY_STACK_PRINT (yyss, yyssp);
7923 
7924  *++yyvsp = yyval;
7925 
7926  /* Now 'shift' the result of the reduction. Determine what state
7927  that goes to, based on the state we popped back to and the rule
7928  number reduced by. */
7929 
7930  yyn = yyr1[yyn];
7931 
7932  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
7933  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7934  yystate = yytable[yystate];
7935  else
7936  yystate = yydefgoto[yyn - YYNTOKENS];
7937 
7938  goto yynewstate;
7939 
7940 
7941 /*--------------------------------------.
7942 | yyerrlab -- here on detecting error. |
7943 `--------------------------------------*/
7944 yyerrlab:
7945  /* Make sure we have latest lookahead translation. See comments at
7946  user semantic actions for why this is necessary. */
7947  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
7948 
7949  /* If not already recovering from an error, report this error. */
7950  if (!yyerrstatus)
7951  {
7952  ++yynerrs;
7953 #if ! YYERROR_VERBOSE
7954  yyerror (YY_("syntax error"));
7955 #else
7956 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
7957  yyssp, yytoken)
7958  {
7959  char const *yymsgp = YY_("syntax error");
7960  int yysyntax_error_status;
7961  yysyntax_error_status = YYSYNTAX_ERROR;
7962  if (yysyntax_error_status == 0)
7963  yymsgp = yymsg;
7964  else if (yysyntax_error_status == 1)
7965  {
7966  if (yymsg != yymsgbuf)
7967  YYSTACK_FREE (yymsg);
7968  yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
7969  if (!yymsg)
7970  {
7971  yymsg = yymsgbuf;
7972  yymsg_alloc = sizeof yymsgbuf;
7973  yysyntax_error_status = 2;
7974  }
7975  else
7976  {
7977  yysyntax_error_status = YYSYNTAX_ERROR;
7978  yymsgp = yymsg;
7979  }
7980  }
7981  yyerror (yymsgp);
7982  if (yysyntax_error_status == 2)
7983  goto yyexhaustedlab;
7984  }
7985 # undef YYSYNTAX_ERROR
7986 #endif
7987  }
7988 
7989 
7990 
7991  if (yyerrstatus == 3)
7992  {
7993  /* If just tried and failed to reuse lookahead token after an
7994  error, discard it. */
7995 
7996  if (yychar <= YYEOF)
7997  {
7998  /* Return failure if at end of input. */
7999  if (yychar == YYEOF)
8000  YYABORT;
8001  }
8002  else
8003  {
8004  yydestruct ("Error: discarding",
8005  yytoken, &yylval);
8006  yychar = YYEMPTY;
8007  }
8008  }
8009 
8010  /* Else will try to reuse lookahead token after shifting the error
8011  token. */
8012  goto yyerrlab1;
8013 
8014 
8015 /*---------------------------------------------------.
8016 | yyerrorlab -- error raised explicitly by YYERROR. |
8017 `---------------------------------------------------*/
8018 yyerrorlab:
8019 
8020  /* Pacify compilers like GCC when the user code never invokes
8021  YYERROR and the label yyerrorlab therefore never appears in user
8022  code. */
8023  if (/*CONSTCOND*/ 0)
8024  goto yyerrorlab;
8025 
8026  /* Do not reclaim the symbols of the rule whose action triggered
8027  this YYERROR. */
8028  YYPOPSTACK (yylen);
8029  yylen = 0;
8030  YY_STACK_PRINT (yyss, yyssp);
8031  yystate = *yyssp;
8032  goto yyerrlab1;
8033 
8034 
8035 /*-------------------------------------------------------------.
8036 | yyerrlab1 -- common code for both syntax error and YYERROR. |
8037 `-------------------------------------------------------------*/
8038 yyerrlab1:
8039  yyerrstatus = 3; /* Each real token shifted decrements this. */
8040 
8041  for (;;)
8042  {
8043  yyn = yypact[yystate];
8044  if (!yypact_value_is_default (yyn))
8045  {
8046  yyn += YYTERROR;
8047  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
8048  {
8049  yyn = yytable[yyn];
8050  if (0 < yyn)
8051  break;
8052  }
8053  }
8054 
8055  /* Pop the current state because it cannot handle the error token. */
8056  if (yyssp == yyss)
8057  YYABORT;
8058 
8059 
8060  yydestruct ("Error: popping",
8061  yystos[yystate], yyvsp);
8062  YYPOPSTACK (1);
8063  yystate = *yyssp;
8064  YY_STACK_PRINT (yyss, yyssp);
8065  }
8066 
8068  *++yyvsp = yylval;
8070 
8071 
8072  /* Shift the error token. */
8073  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
8074 
8075  yystate = yyn;
8076  goto yynewstate;
8077 
8078 
8079 /*-------------------------------------.
8080 | yyacceptlab -- YYACCEPT comes here. |
8081 `-------------------------------------*/
8082 yyacceptlab:
8083  yyresult = 0;
8084  goto yyreturn;
8085 
8086 /*-----------------------------------.
8087 | yyabortlab -- YYABORT comes here. |
8088 `-----------------------------------*/
8089 yyabortlab:
8090  yyresult = 1;
8091  goto yyreturn;
8092 
8093 #if !defined yyoverflow || YYERROR_VERBOSE
8094 /*-------------------------------------------------.
8095 | yyexhaustedlab -- memory exhaustion comes here. |
8096 `-------------------------------------------------*/
8097 yyexhaustedlab:
8098  yyerror (YY_("memory exhausted"));
8099  yyresult = 2;
8100  /* Fall through. */
8101 #endif
8102 
8103 yyreturn:
8104  if (yychar != YYEMPTY)
8105  {
8106  /* Make sure we have latest lookahead translation. See comments at
8107  user semantic actions for why this is necessary. */
8108  yytoken = YYTRANSLATE (yychar);
8109  yydestruct ("Cleanup: discarding lookahead",
8110  yytoken, &yylval);
8111  }
8112  /* Do not reclaim the symbols of the rule whose action triggered
8113  this YYABORT or YYACCEPT. */
8114  YYPOPSTACK (yylen);
8115  YY_STACK_PRINT (yyss, yyssp);
8116  while (yyssp != yyss)
8117  {
8118  yydestruct ("Cleanup: popping",
8119  yystos[*yyssp], yyvsp);
8120  YYPOPSTACK (1);
8121  }
8122 #ifndef yyoverflow
8123  if (yyss != yyssa)
8124  YYSTACK_FREE (yyss);
8125 #endif
8126 #if YYERROR_VERBOSE
8127  if (yymsg != yymsgbuf)
8128  YYSTACK_FREE (yymsg);
8129 #endif
8130  return yyresult;
8131 }
8132 #line 3423 "parser.y" /* yacc.c:1907 */
8133 
#define TOK_PTR64
#define TOK_INT32
#define TOK_EQ
The type of an expression.
Definition: type.h:22
#define TOK_DECLTYPE
#define TOK_WHILE
#define TOK_CPROVER_LOOP_INVARIANT
#define TOK_FRIEND
static int yysyntax_error(size_t *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
#define TOK_ASM_STRING
static const yytype_int16 yytable[]
#define TOK_PUBLIC
#define TOK_DELETE
const std::string & id2string(const irep_idt &d)
Definition: irep.h:44
#define yydebug
#define TOK_SIGNED
#define yychar
#define TOK_TEMPLATE
short int yytype_int16
#define TOK_INCR
#define TOK_GCC_FLOAT32
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
#define TOK_TRUE
#define TOK_OPERATOR
#define TOK_ACSL_EXISTS
#define TOK_VOID
#define TOK_GCC_ATTRIBUTE_ALIGNED
static const yytype_int16 yydefgoto[]
static const yytype_uint8 yytranslate[]
#define TOK_IDENTIFIER
#define TOK_COMPLEX
static const yytype_int16 yypact[]
#define TOK_FASTCALL
#define TOK_TRY
#define TOK_MODASSIGN
void set_is_member(bool is_member)
std::vector< irept > subt
Definition: irep.h:160
#define TOK_RETURN
yytokentype
Definition: ansi_c_y.tab.h:46
#define TOK_THROW
#define TOK_BOOL
#define YYLAST
#define TOK_BUILTIN_VA_ARG
#define TOK_SCANNER_EOF
#define TOK_CPROVER_TRY
#define YYSTACK_ALLOC
#define TOK_GCC_FLOAT128
#define TOK_EQUIVALENT
#define TOK_MSC_DECLSPEC
void move_to_operands(exprt &expr)
Definition: expr.cpp:22
void set_is_parameter(bool is_parameter)
subtypest & subtypes()
Definition: type.h:58
#define TOK_PRIVATE
#define TOK_GCC_BUILTIN_TYPES_COMPATIBLE_P
#define TOK_SWITCH
#define yypact_value_is_default(Yystate)
#define YYNTOKENS
#define yylval
#define stack_type(x)
Definition: parser.h:146
#define TOK_GCC_FLOAT16
#define YYSIZE_T
#define YY_NULLPTR
#define TOK_CONTINUE
#define TOK_GCC_FLOAT128X
#define TOK_FORALL
#define TOK_XORASSIGN
typet & type()
Definition: expr.h:56
#define TOK_GCC_ATTRIBUTE_TRANSPARENT_UNION
#define yynerrs
static const yytype_int16 yycheck[]
#define YYSTACK_ALLOC_MAXIMUM
static const char *const yytname[]
Definition: jsil_y.tab.cpp:593
#define TOK_IMAG
#define TOK_NEW
#define TOK_MSC_IF_NOT_EXISTS
signed char yytype_int8
void set_is_static_assert(bool is_static_assert)
#define TOK_VIRTUAL
#define TOK_CPROVER_ATOMIC
#define TOK_GCC_ATTRIBUTE_SECTION
#define YYINITDEPTH
#define TOK_CONST
#define YY_(Msgid)
#define TOK_CPROVER_ENSURES
#define TOK_RESTRICT
ansi_c_id_classt id_class
Definition: ansi_c_scope.h:31
#define TOK_STATIC
#define TOK_CPROVER_CATCH
#define YYEMPTY
#define TOK_CHAR
void set_is_enum_constant(bool is_enum_constant)
#define TOK_UNION
#define TOK_THREAD_LOCAL
int yyansi_cparse(void)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
#define TOK_MSC_BASED
#define TOK_REAL
#define TOK_TYPEDEFNAME
#define TOK_GCC_ASM
#define TOK_GCC_AUTO_TYPE
#define YY_REDUCE_PRINT(Rule)
#define TOK_ATOMIC_TYPE_QUALIFIER
#define TOK_MUTABLE
static size_t yytnamerr(char *yyres, const char *yystr)
#define TOK_DOTPM
const declaratorst & declarators() const
#define TOK_ARROWPM
#define TOK_TYPEOF
#define TOK_GCC_ATTRIBUTE_GNU_INLINE
#define TOK_GCC_ATTRIBUTE_ALIAS
#define TOK_GCC_ATTRIBUTE_PACKED
#define TOK_ELLIPSIS
#define yyparse
#define TOK_GCC_ATTRIBUTE
#define TOK_VOLATILE
#define YYSTYPE
#define TOK_GENERIC
void free(void *)
#define TOK_STRUCT
#define TOK_GCC_ATTRIBUTE_FALLTHROUGH
#define TOK_DEFAULT
#define TOK_MINUSASSIGN
#define TOK_CLANG_BUILTIN_CONVERTVECTOR
#define TOK_GCC_FLOAT64X
#define TOK_STDCALL
The NIL expression.
Definition: std_expr.h:4508
#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:17
#define TOK_MSC_LEAVE
#define TOK_DOUBLE
#define TOK_TYPEDEF
unsigned yyvs_alloc
unsigned char yytype_uint8
#define TOK_GE
#define TOK_GOTO
#define YYTRANSLATE(YYX)
#define yylex
#define TOK_UNSIGNED
#define TOK_CATCH
#define TOK_BREAK
static const yytype_uint16 yystos[]
dstringt has one field, an unsigned integer no which is an index into a static table of strings...
Definition: dstring.h:33
#define TOK_NE
#define TOK_OFFSETOF
#define TOK_ACSL_FORALL
#define TOK_GCC_FLOAT32X
#define TOK_AUTO
#define YYFINAL
std::vector< typet > subtypest
Definition: type.h:56
#define TOK_EXPLICIT
#define TOK_GCC_ATTRIBUTE_VECTOR_SIZE
#define TOK_GCC_ATTRIBUTE_CONSTRUCTOR
#define TOK_INT64
#define TOK_CHAR32_T
#define TOK_DIVASSIGN
char * yyansi_ctext
#define TOK_ENUM
#define TOK_INT8
#define TOK_ALIGNAS
#define TOK_USING
#define TOK_EXTERN
#define YYABORT
#define TOK_INLINE
#define YYMAXDEPTH
#define TOK_IMAGINARY
#define TOK_CASE
#define YYPOPSTACK(N)
#define TOK_TYPENAME
#define TOK_ARRAY_OF
#define TOK_FOR
#define TOK_CPROVER_ID
#define TOK_ANDAND
#define TOK_SHIFTRIGHT
#define YYACCEPT
#define PARSER
#define TOK_CW_VAR_ARG_TYPEOF
#define TOK_ELSE
#define TOK_GCC_INT128
#define TOK_UNARY_TYPE_PREDICATE
#define TOK_ALIGNOF
#define TOK_SCOPE
#define YYSTACK_FREE
#define YYCASE_(N, S)
#define YYSYNTAX_ERROR
#define TOK_MULTASSIGN
#define TOK_MSC_TRY
#define TOK_MSC_UUIDOF
#define TOK_STRING
#define TOK_CPROVER_REQUIRES
#define TOK_FALSE
#define TOK_EXISTS
Base class for all expressions.
Definition: expr.h:42
#define TOK_CHARACTER
#define TOK_FLOATING
#define TOK_INT
#define TOK_LE
std::string to_string(const string_constraintt &expr)
Used for debug printing.
exprt convert_integer_literal(const std::string &src)
#define TOK_GCC_LABEL
#define TOK_DO
#define TOK_CHAR16_T
#define TOK_CDECL
#define TOK_WCHAR_T
#define YY_STACK_PRINT(Bottom, Top)
#define TOK_ANDASSIGN
#define TOK_INTEGER
#define TOK_PLUSASSIGN
void * malloc(size_t)
#define TOK_NAMESPACE
#define TOK_UNDERLYING_TYPE
#define TOK_CPROVER_BOOL
#define TOK_CLRCALL
#define TOK_CPROVER_FINALLY
#define TOK_TYPEID
#define TOK_NULLPTR
void swap(irept &irep)
Definition: irep.h:303
#define TOK_GCC_DECIMAL64
unsigned short int yytype_uint16
source_locationt & add_source_location()
Definition: expr.h:130
#define TOK_NOEXCEPT
unsigned yyansi_clval
#define TOK_SHIFTLEFT
#define TOK_DECR
#define TOK_CLASS
#define TOK_CPROVER_FLOATBV
#define TOK_BINARY_TYPE_PREDICATE
dstringt irep_idt
Definition: irep.h: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:66
#define TOK_INT16
#define stack(x)
Definition: parser.h:144
#define TOK_MSC_ASM
#define TOK_IF
#define TOK_MSC_IF_EXISTS
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define TOK_ORASSIGN
irep_idt prefixed_name
Definition: ansi_c_scope.h:32
#define TOK_MSC_FINALLY
#define TOK_PROTECTED
static void yydestruct(const char *yymsg, int yytype, unsigned *yyvaluep)
static const yytype_uint8 yyr2[]
#define TOK_GCC_ATTRIBUTE_WEAK
#define TOK_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
goal_filters add(util_make_unique< internal_goals_filtert >(message_handler))
#define TOK_NORETURN
#define TOK_SHLASSIGN
#define TOK_FLOAT
#define TOK_CPROVER_BITVECTOR
#define TOK_CPROVER_THROW