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