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