00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 #define YYBISON 1
00048
00049
00050 #define YYBISON_VERSION "2.2"
00051
00052
00053 #define YYSKELETON_NAME "yacc.c"
00054
00055
00056 #define YYPURE 1
00057
00058
00059 #define YYLSP_NEEDED 0
00060
00061
00062
00063
00064 #ifndef YYTOKENTYPE
00065 # define YYTOKENTYPE
00066
00067
00068 enum yytokentype {
00069 TOK_EOF = 0,
00070 _LOWEST_PREC = 258,
00071 TOK_LITERAL = 259,
00072 TOK_ASM = 260,
00073 TOK_AUTO = 261,
00074 TOK_BOOL = 262,
00075 TOK_BREAK = 263,
00076 TOK_CASE = 264,
00077 TOK_CATCH = 265,
00078 TOK_CHAR = 266,
00079 TOK_CLASS = 267,
00080 TOK_CONST = 268,
00081 TOK_CONST_CAST = 269,
00082 TOK_CONTINUE = 270,
00083 TOK_DEFAULT = 271,
00084 TOK_DELETE = 272,
00085 TOK_DO = 273,
00086 TOK_DOUBLE = 274,
00087 TOK_DYNAMIC_CAST = 275,
00088 TOK_ELSE = 276,
00089 TOK_ENUM = 277,
00090 TOK_EXPLICIT = 278,
00091 TOK_EXPORT = 279,
00092 TOK_EXTERN = 280,
00093 TOK_FLOAT = 281,
00094 TOK_FOR = 282,
00095 TOK_FRIEND = 283,
00096 TOK_GOTO = 284,
00097 TOK_IF = 285,
00098 TOK_INLINE = 286,
00099 TOK_INT = 287,
00100 TOK_LONG = 288,
00101 TOK_MUTABLE = 289,
00102 TOK_NAMESPACE = 290,
00103 TOK_NEW = 291,
00104 TOK_OPERATOR = 292,
00105 TOK_PRIVATE = 293,
00106 TOK_PROTECTED = 294,
00107 TOK_PUBLIC = 295,
00108 TOK_REGISTER = 296,
00109 TOK_REINTERPRET_CAST = 297,
00110 TOK_RETURN = 298,
00111 TOK_SHORT = 299,
00112 TOK_SIGNED = 300,
00113 TOK_SIZEOF = 301,
00114 TOK_STATIC = 302,
00115 TOK_STATIC_CAST = 303,
00116 TOK_STRUCT = 304,
00117 TOK_SWITCH = 305,
00118 TOK_TEMPLATE = 306,
00119 TOK_THIS = 307,
00120 TOK_THROW = 308,
00121 TOK_TRY = 309,
00122 TOK_TYPEDEF = 310,
00123 TOK_TYPEID = 311,
00124 TOK_TYPENAME = 312,
00125 TOK_UNION = 313,
00126 TOK_UNSIGNED = 314,
00127 TOK_USING = 315,
00128 TOK_VIRTUAL = 316,
00129 TOK_VOID = 317,
00130 TOK_VOLATILE = 318,
00131 TOK_WCHAR_T = 319,
00132 TOK_WHILE = 320,
00133 TOK_IDENT = 321,
00134 _TYPEDEF_NAME_ID = 322,
00135 _ENUM_NAME_ID = 323,
00136 _CLASS_NAME_ID = 324,
00137 _TEMPL_FORCED = 325,
00138 _NONTYPE = 326,
00139 _TEMPL_TYPE = 327,
00140 _TEMPL_NONTYPE = 328,
00141 _UNKNOWN_ID = 329,
00142 _NMSPC_NAME = 330,
00143 _PAD_FIRST = 331,
00144 TOK_PAD_EXPR_STMT = 332,
00145 TOK_PAD_BLOCK_DECL = 333,
00146 TOK_PAD_SIMPLE_DECL = 334,
00147 TOK_PAD_LABEL = 335,
00148 TOK_PAD_COND_EXPR = 336,
00149 TOK_PAD_COND_DECL = 337,
00150 TOK_PAD_FOR_COND_EXPR = 338,
00151 TOK_PAD_FOR_COND_DECL = 339,
00152 TOK_PAD_SIZEOF_EXPR = 340,
00153 TOK_PAD_SIZEOF_TYPE_ID = 341,
00154 TOK_PAD_TYPE_ID_RPAR_CAST_EXPR = 342,
00155 TOK_PAD_EXPR_RPAR = 343,
00156 TOK_PAD_TYPE_ID_RPAR = 344,
00157 TOK_PAD_LPAR_EXPR_LIST_RPAR = 345,
00158 TOK_PAD_EXPR_LIST_RPAR = 346,
00159 TOK_PAD_TEMPL_ARG_EXPR = 347,
00160 TOK_PAD_TEMPL_ARG_TYPE_ID = 348,
00161 TOK_PAD_PARAM_DECL_CLAUSE = 349,
00162 TOK_PAD_PARAM_DCLTOR = 350,
00163 TOK_PAD_TEMPL_PARAM_TYPE = 351,
00164 TOK_PAD_TEMPL_PARAM_NONTYPE = 352,
00165 TOK_PAD_CTOR = 353,
00166 TOK_PAD_UNNAMED_BITFIELD = 354,
00167 TOK_PAD_MEMBER_FUNC = 355,
00168 TOK_PAD_MEMBER_OBJECT = 356,
00169 TOK_PAD_TEMPL_OP = 357,
00170 TOK_PAD_OP_NOT_TEMPL = 358,
00171 TOK_PAD_TO_BE_DISCARDED = 359,
00172 _PAD_LAST = 360,
00173 _START_FIRST = 361,
00174 TOK_START_PROGRAM = 362,
00175 TOK_START_EXPR_STMT = 363,
00176 TOK_START_BLOCK_DECL = 364,
00177 TOK_START_SIMPLE_DECL = 365,
00178 TOK_START_LABEL = 366,
00179 TOK_START_COND_EXPR = 367,
00180 TOK_START_COND_DECL = 368,
00181 TOK_START_FOR_COND_EXPR = 369,
00182 TOK_START_FOR_COND_DECL = 370,
00183 TOK_START_SIZEOF_EXPR = 371,
00184 TOK_START_SIZEOF_TYPE_ID = 372,
00185 TOK_START_EXPR_RPAR = 373,
00186 TOK_START_TYPE_ID_RPAR = 374,
00187 TOK_START_TYPE_ID_RPAR_CAST_EXPR = 375,
00188 TOK_START_LPAR_EXPR_LIST_RPAR = 376,
00189 TOK_START_EXPR_LIST_RPAR = 377,
00190 TOK_START_TEMPL_ARG_EXPR = 378,
00191 TOK_START_TEMPL_ARG_TYPE_ID = 379,
00192 TOK_START_PARAM_DECL_CLAUSE = 380,
00193 TOK_START_PARAM_DCLTOR = 381,
00194 TOK_START_TEMPL_PARAM_TYPE = 382,
00195 TOK_START_TEMPL_PARAM_NONTYPE = 383,
00196 TOK_START_CTOR = 384,
00197 TOK_START_TO_BE_DISCARDED = 385,
00198 _START_LAST = 386,
00199 _PACK_FIRST = 387,
00200 TOK_PACK_BODY = 388,
00201 TOK_PACK_ERROR_COND = 389,
00202 TOK_PACK_ERROR_FOR_COND = 390,
00203 TOK_PACK_ERROR_STMT = 391,
00204 _PACK_LAST = 392,
00205 TOK_DOT = 393,
00206 TOK_RIGHT_BRACKET = 394,
00207 TOK_LEFT_BRACKET = 395,
00208 TOK_EXCLAMATION = 396,
00209 TOK_TILDE = 397,
00210 TOK_PERCENT = 398,
00211 TOK_SLASH = 399,
00212 TOK_STAR = 400,
00213 TOK_MINUS = 401,
00214 TOK_PLUS = 402,
00215 TOK_GT = 403,
00216 TOK_LT = 404,
00217 TOK_AMP = 405,
00218 TOK_HAT = 406,
00219 TOK_VBAR = 407,
00220 TOK_QMARK = 408,
00221 TOK_COMMA = 409,
00222 TOK_RIGHT_BRACE = 410,
00223 TOK_LEFT_BRACE = 411,
00224 TOK_SEMICOLON = 412,
00225 TOK_RIGHT_PAR = 413,
00226 TOK_LEFT_PAR = 414,
00227 TOK_EQ = 415,
00228 TOK_COLON = 416,
00229 TOK_DOT_DOT_DOT = 417,
00230 TOK_MINUS_GT = 418,
00231 TOK_MINUS_GT_STAR = 419,
00232 TOK_DOT_STAR = 420,
00233 TOK_GT_EQ = 421,
00234 TOK_LT_EQ = 422,
00235 TOK_EXCLAMATION_EQ = 423,
00236 TOK_EQ_EQ = 424,
00237 TOK_AMP_AMP = 425,
00238 TOK_VBAR_VBAR = 426,
00239 TOK_GT_GT = 427,
00240 TOK_LT_LT = 428,
00241 TOK_MINUS_MINUS = 429,
00242 TOK_PLUS_PLUS = 430,
00243 TOK_LT_LT_EQ = 431,
00244 TOK_GT_GT_EQ = 432,
00245 TOK_VBAR_EQ = 433,
00246 TOK_AMP_EQ = 434,
00247 TOK_HAT_EQ = 435,
00248 TOK_PERCENT_EQ = 436,
00249 TOK_SLASH_EQ = 437,
00250 TOK_STAR_EQ = 438,
00251 TOK_MINUS_EQ = 439,
00252 TOK_PLUS_EQ = 440,
00253 TOK_COLON_COLON = 441,
00254 _HIGHEST_PREC = 442,
00255 TOK_ERROR = 443,
00256 TOK_TEXT = 444
00257 };
00258 #endif
00259
00260 #define TOK_EOF 0
00261 #define _LOWEST_PREC 258
00262 #define TOK_LITERAL 259
00263 #define TOK_ASM 260
00264 #define TOK_AUTO 261
00265 #define TOK_BOOL 262
00266 #define TOK_BREAK 263
00267 #define TOK_CASE 264
00268 #define TOK_CATCH 265
00269 #define TOK_CHAR 266
00270 #define TOK_CLASS 267
00271 #define TOK_CONST 268
00272 #define TOK_CONST_CAST 269
00273 #define TOK_CONTINUE 270
00274 #define TOK_DEFAULT 271
00275 #define TOK_DELETE 272
00276 #define TOK_DO 273
00277 #define TOK_DOUBLE 274
00278 #define TOK_DYNAMIC_CAST 275
00279 #define TOK_ELSE 276
00280 #define TOK_ENUM 277
00281 #define TOK_EXPLICIT 278
00282 #define TOK_EXPORT 279
00283 #define TOK_EXTERN 280
00284 #define TOK_FLOAT 281
00285 #define TOK_FOR 282
00286 #define TOK_FRIEND 283
00287 #define TOK_GOTO 284
00288 #define TOK_IF 285
00289 #define TOK_INLINE 286
00290 #define TOK_INT 287
00291 #define TOK_LONG 288
00292 #define TOK_MUTABLE 289
00293 #define TOK_NAMESPACE 290
00294 #define TOK_NEW 291
00295 #define TOK_OPERATOR 292
00296 #define TOK_PRIVATE 293
00297 #define TOK_PROTECTED 294
00298 #define TOK_PUBLIC 295
00299 #define TOK_REGISTER 296
00300 #define TOK_REINTERPRET_CAST 297
00301 #define TOK_RETURN 298
00302 #define TOK_SHORT 299
00303 #define TOK_SIGNED 300
00304 #define TOK_SIZEOF 301
00305 #define TOK_STATIC 302
00306 #define TOK_STATIC_CAST 303
00307 #define TOK_STRUCT 304
00308 #define TOK_SWITCH 305
00309 #define TOK_TEMPLATE 306
00310 #define TOK_THIS 307
00311 #define TOK_THROW 308
00312 #define TOK_TRY 309
00313 #define TOK_TYPEDEF 310
00314 #define TOK_TYPEID 311
00315 #define TOK_TYPENAME 312
00316 #define TOK_UNION 313
00317 #define TOK_UNSIGNED 314
00318 #define TOK_USING 315
00319 #define TOK_VIRTUAL 316
00320 #define TOK_VOID 317
00321 #define TOK_VOLATILE 318
00322 #define TOK_WCHAR_T 319
00323 #define TOK_WHILE 320
00324 #define TOK_IDENT 321
00325 #define _TYPEDEF_NAME_ID 322
00326 #define _ENUM_NAME_ID 323
00327 #define _CLASS_NAME_ID 324
00328 #define _TEMPL_FORCED 325
00329 #define _NONTYPE 326
00330 #define _TEMPL_TYPE 327
00331 #define _TEMPL_NONTYPE 328
00332 #define _UNKNOWN_ID 329
00333 #define _NMSPC_NAME 330
00334 #define _PAD_FIRST 331
00335 #define TOK_PAD_EXPR_STMT 332
00336 #define TOK_PAD_BLOCK_DECL 333
00337 #define TOK_PAD_SIMPLE_DECL 334
00338 #define TOK_PAD_LABEL 335
00339 #define TOK_PAD_COND_EXPR 336
00340 #define TOK_PAD_COND_DECL 337
00341 #define TOK_PAD_FOR_COND_EXPR 338
00342 #define TOK_PAD_FOR_COND_DECL 339
00343 #define TOK_PAD_SIZEOF_EXPR 340
00344 #define TOK_PAD_SIZEOF_TYPE_ID 341
00345 #define TOK_PAD_TYPE_ID_RPAR_CAST_EXPR 342
00346 #define TOK_PAD_EXPR_RPAR 343
00347 #define TOK_PAD_TYPE_ID_RPAR 344
00348 #define TOK_PAD_LPAR_EXPR_LIST_RPAR 345
00349 #define TOK_PAD_EXPR_LIST_RPAR 346
00350 #define TOK_PAD_TEMPL_ARG_EXPR 347
00351 #define TOK_PAD_TEMPL_ARG_TYPE_ID 348
00352 #define TOK_PAD_PARAM_DECL_CLAUSE 349
00353 #define TOK_PAD_PARAM_DCLTOR 350
00354 #define TOK_PAD_TEMPL_PARAM_TYPE 351
00355 #define TOK_PAD_TEMPL_PARAM_NONTYPE 352
00356 #define TOK_PAD_CTOR 353
00357 #define TOK_PAD_UNNAMED_BITFIELD 354
00358 #define TOK_PAD_MEMBER_FUNC 355
00359 #define TOK_PAD_MEMBER_OBJECT 356
00360 #define TOK_PAD_TEMPL_OP 357
00361 #define TOK_PAD_OP_NOT_TEMPL 358
00362 #define TOK_PAD_TO_BE_DISCARDED 359
00363 #define _PAD_LAST 360
00364 #define _START_FIRST 361
00365 #define TOK_START_PROGRAM 362
00366 #define TOK_START_EXPR_STMT 363
00367 #define TOK_START_BLOCK_DECL 364
00368 #define TOK_START_SIMPLE_DECL 365
00369 #define TOK_START_LABEL 366
00370 #define TOK_START_COND_EXPR 367
00371 #define TOK_START_COND_DECL 368
00372 #define TOK_START_FOR_COND_EXPR 369
00373 #define TOK_START_FOR_COND_DECL 370
00374 #define TOK_START_SIZEOF_EXPR 371
00375 #define TOK_START_SIZEOF_TYPE_ID 372
00376 #define TOK_START_EXPR_RPAR 373
00377 #define TOK_START_TYPE_ID_RPAR 374
00378 #define TOK_START_TYPE_ID_RPAR_CAST_EXPR 375
00379 #define TOK_START_LPAR_EXPR_LIST_RPAR 376
00380 #define TOK_START_EXPR_LIST_RPAR 377
00381 #define TOK_START_TEMPL_ARG_EXPR 378
00382 #define TOK_START_TEMPL_ARG_TYPE_ID 379
00383 #define TOK_START_PARAM_DECL_CLAUSE 380
00384 #define TOK_START_PARAM_DCLTOR 381
00385 #define TOK_START_TEMPL_PARAM_TYPE 382
00386 #define TOK_START_TEMPL_PARAM_NONTYPE 383
00387 #define TOK_START_CTOR 384
00388 #define TOK_START_TO_BE_DISCARDED 385
00389 #define _START_LAST 386
00390 #define _PACK_FIRST 387
00391 #define TOK_PACK_BODY 388
00392 #define TOK_PACK_ERROR_COND 389
00393 #define TOK_PACK_ERROR_FOR_COND 390
00394 #define TOK_PACK_ERROR_STMT 391
00395 #define _PACK_LAST 392
00396 #define TOK_DOT 393
00397 #define TOK_RIGHT_BRACKET 394
00398 #define TOK_LEFT_BRACKET 395
00399 #define TOK_EXCLAMATION 396
00400 #define TOK_TILDE 397
00401 #define TOK_PERCENT 398
00402 #define TOK_SLASH 399
00403 #define TOK_STAR 400
00404 #define TOK_MINUS 401
00405 #define TOK_PLUS 402
00406 #define TOK_GT 403
00407 #define TOK_LT 404
00408 #define TOK_AMP 405
00409 #define TOK_HAT 406
00410 #define TOK_VBAR 407
00411 #define TOK_QMARK 408
00412 #define TOK_COMMA 409
00413 #define TOK_RIGHT_BRACE 410
00414 #define TOK_LEFT_BRACE 411
00415 #define TOK_SEMICOLON 412
00416 #define TOK_RIGHT_PAR 413
00417 #define TOK_LEFT_PAR 414
00418 #define TOK_EQ 415
00419 #define TOK_COLON 416
00420 #define TOK_DOT_DOT_DOT 417
00421 #define TOK_MINUS_GT 418
00422 #define TOK_MINUS_GT_STAR 419
00423 #define TOK_DOT_STAR 420
00424 #define TOK_GT_EQ 421
00425 #define TOK_LT_EQ 422
00426 #define TOK_EXCLAMATION_EQ 423
00427 #define TOK_EQ_EQ 424
00428 #define TOK_AMP_AMP 425
00429 #define TOK_VBAR_VBAR 426
00430 #define TOK_GT_GT 427
00431 #define TOK_LT_LT 428
00432 #define TOK_MINUS_MINUS 429
00433 #define TOK_PLUS_PLUS 430
00434 #define TOK_LT_LT_EQ 431
00435 #define TOK_GT_GT_EQ 432
00436 #define TOK_VBAR_EQ 433
00437 #define TOK_AMP_EQ 434
00438 #define TOK_HAT_EQ 435
00439 #define TOK_PERCENT_EQ 436
00440 #define TOK_SLASH_EQ 437
00441 #define TOK_STAR_EQ 438
00442 #define TOK_MINUS_EQ 439
00443 #define TOK_PLUS_EQ 440
00444 #define TOK_COLON_COLON 441
00445 #define _HIGHEST_PREC 442
00446 #define TOK_ERROR 443
00447 #define TOK_TEXT 444
00448
00449
00450
00451
00452
00453 #line 1 "parser.y"
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467
00468
00469
00470
00471
00472
00473
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483 #define YYSTYPE semval
00484
00485 #define clear_lookahead() \
00486 do { \
00487 lassert( yychar != YYEMPTY ); \
00488 yychar = YYEMPTY; \
00489 manager::back_up(); \
00490 } while (false)
00491
00492 #define try_begin( _txt ) do { \
00493 llog_xml_open(pl,"disambiguation") << "\nkind: " << _txt << "\n";
00494
00495 #define try_end_fail() \
00496 llog_xml_close(pl,"disambiguation") << " all tries failed\n"; \
00497 if (manager::in_disambiguation()) \
00498 YYABORT; \
00499 report << disa_failed << loc(manager::peek()); \
00500 \
00501 manager::start( TOK_START_TO_BE_DISCARDED ); \
00502 manager::commit( TOK_PAD_TO_BE_DISCARDED ); \
00503 manager::failing_set_true(); \
00504 } while (false)
00505
00506 #define try_end_skip() llog_xml_close(pl,"disambiguation") << "\n"; \
00507 } while (false)
00508
00509
00510
00511 #define try_and_commit( start_token_value, commit_token_value, result_var ) \
00512 manager::start( start_token_value ); \
00513 ptr<parse_result_type> result_var = parser::parse(); \
00514 if (result_var->success_get()) { \
00515 manager::commit( commit_token_value ); \
00516 llog_xml_close(pl,"disambiguation") << "\n"; \
00517 break; \
00518 } \
00519 manager::rollback();
00520
00521 static bool is_not_pad( int i )
00522 {
00523 return (i < _PAD_FIRST || i > _PAD_LAST);
00524 }
00525
00526 static bool is_pack( int i )
00527 {
00528 return (i > _PACK_FIRST && i < _PACK_LAST);
00529 }
00530
00531 static void disambiguate_ctor_and_bitfield_class_scope( ptr<as_declaration_specifier_seq> const );
00532 static void disambiguate_ctor_nmspc_scope( ptr<as_declaration_specifier_seq> const );
00533
00534 #define loc(x) ((x)->location_get())
00535
00536 #define UNWTOK(x) ((x)->wrapped_token_get())
00537
00538 #define EMPTY_LIST( type ) ::lestes::std::list< srp< type > >::create()
00539 #define EMPTY_WRAPPER( wrapper_type, l, type ) wrapper_type::create( (l), EMPTY_LIST(type) )
00540
00541 #define NEW_WRAPPER_W1( dest, wrapper_type, l, type, item ) \
00542 do { \
00543 (dest) = EMPTY_WRAPPER( wrapper_type, (l), type ); \
00544 WRAPPER_APPEND( (dest), (item) ); \
00545 } while(false)
00546
00547 #define LIST_APPEND( list, item ) (list)->push_back(item)
00548 #define LIST_PREPEND( list, item ) (list)->push_front(item)
00549 #define LIST_APPEND_LIST( append_to, list ) (append_to)->splice( (append_to)->end(), *(list) )
00550 #define LIST_PREPEND_LIST( prepend_to, list ) (prepend_to)->splice( (prepend_to)->begin(), *(list) )
00551
00552 #define UNWRAP(w) (w)->l_get()
00553 #define WRAPPER_APPEND( wrapper, item ) LIST_APPEND( UNWRAP(wrapper), (item) )
00554 #define WRAPPER_PREPEND( wrapper, item ) LIST_PREPEND( UNWRAP(wrapper), (item) )
00555 #define WRAPPER_APPEND_WRAPPER( append_to, w ) LIST_APPEND_LIST( UNWRAP(append_to), UNWRAP(w) )
00556
00557
00558
00559
00560
00561
00562 #define CURR_CTX(l) (sa_context_manager::instance()->current()->as_get()->scope_get())
00563 #define GLOB_CTX(l) as_name::create( (l), NULL, as_global_namespace_fake_id::create(l), true )
00564
00565 #define DUMMY_STMT as_dummy_statement::create(DUMMY_LOC)
00566 #define DUMMY_LOC source_location::zero()
00567 #define DUMMY_DCLTOR as_dummy_declarator::create( DUMMY_LOC, NULL, EMPTY_LIST(as_declarator_op) )
00568
00569 #define EMPTY_EXPR(l) as_empty_expression::create( (l) )
00570 #define EMPTY_DCLTOR(l) as_declarator::create( (l), NULL, EMPTY_LIST(as_declarator_op) )
00571 #define EMPTY_TYPE_ID(l,dl) as_type_id::create( (l), EMPTY_LIST(as_type_specifier), EMPTY_DCLTOR(dl) )
00572
00573 #define EXPR2STMT(x) as_expression_statement::create( loc(x), (x) )
00574 #define TOK2ID(x) as_identifier::create( loc(x), (x) )
00575
00576 #define EMPTY_ID(l) as_empty_id::create( (l) )
00577
00578 #define CURR_ACCESS_SPEC() (sa_context_manager::instance()->current()->as_get()->access_specifier_get())
00579
00580 #define NO_PAD_TOKEN_BUG(l) lassert3( false, "Disambiguation did not commit a PAD token.", (l) )
00581
00582 #define sel(type) select< type >()
00583
00584
00585
00586
00587 #ifndef YYDEBUG
00588 # define YYDEBUG 0
00589 #endif
00590
00591
00592 #ifdef YYERROR_VERBOSE
00593 # undef YYERROR_VERBOSE
00594 # define YYERROR_VERBOSE 1
00595 #else
00596 # define YYERROR_VERBOSE 1
00597 #endif
00598
00599
00600 #ifndef YYTOKEN_TABLE
00601 # define YYTOKEN_TABLE 1
00602 #endif
00603
00604 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00605 typedef int YYSTYPE;
00606 # define yystype YYSTYPE
00607 # define YYSTYPE_IS_DECLARED 1
00608 # define YYSTYPE_IS_TRIVIAL 1
00609 #endif
00610
00611
00612
00613
00614
00615
00616
00617 #line 618 "parser.tab.cc"
00618
00619 #ifdef short
00620 # undef short
00621 #endif
00622
00623 #ifdef YYTYPE_UINT8
00624 typedef YYTYPE_UINT8 yytype_uint8;
00625 #else
00626 typedef unsigned char yytype_uint8;
00627 #endif
00628
00629 #ifdef YYTYPE_INT8
00630 typedef YYTYPE_INT8 yytype_int8;
00631 #elif (defined __STDC__ || defined __C99__FUNC__ \
00632 || defined __cplusplus || defined _MSC_VER)
00633 typedef signed char yytype_int8;
00634 #else
00635 typedef short int yytype_int8;
00636 #endif
00637
00638 #ifdef YYTYPE_UINT16
00639 typedef YYTYPE_UINT16 yytype_uint16;
00640 #else
00641 typedef unsigned short int yytype_uint16;
00642 #endif
00643
00644 #ifdef YYTYPE_INT16
00645 typedef YYTYPE_INT16 yytype_int16;
00646 #else
00647 typedef short int yytype_int16;
00648 #endif
00649
00650 #ifndef YYSIZE_T
00651 # ifdef __SIZE_TYPE__
00652 # define YYSIZE_T __SIZE_TYPE__
00653 # elif defined size_t
00654 # define YYSIZE_T size_t
00655 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00656 || defined __cplusplus || defined _MSC_VER)
00657 # include <stddef.h>
00658 # define YYSIZE_T size_t
00659 # else
00660 # define YYSIZE_T unsigned int
00661 # endif
00662 #endif
00663
00664 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00665
00666 #ifndef YY_
00667 # if YYENABLE_NLS
00668 # if ENABLE_NLS
00669 # include <libintl.h>
00670 # define YY_(msgid) dgettext ("bison-runtime", msgid)
00671 # endif
00672 # endif
00673 # ifndef YY_
00674 # define YY_(msgid) msgid
00675 # endif
00676 #endif
00677
00678
00679 #if ! defined lint || defined __GNUC__
00680 # define YYUSE(e) ((void) (e))
00681 #else
00682 # define YYUSE(e)
00683 #endif
00684
00685
00686 #ifndef lint
00687 # define YYID(n) (n)
00688 #else
00689 #if (defined __STDC__ || defined __C99__FUNC__ \
00690 || defined __cplusplus || defined _MSC_VER)
00691 static int
00692 YYID (int i)
00693 #else
00694 static int
00695 YYID (i)
00696 int i;
00697 #endif
00698 {
00699 return i;
00700 }
00701 #endif
00702
00703 #if ! defined yyoverflow || YYERROR_VERBOSE
00704
00705
00706
00707 # ifdef YYSTACK_USE_ALLOCA
00708 # if YYSTACK_USE_ALLOCA
00709 # ifdef __GNUC__
00710 # define YYSTACK_ALLOC __builtin_alloca
00711 # elif defined __BUILTIN_VA_ARG_INCR
00712 # include <alloca.h>
00713 # elif defined _AIX
00714 # define YYSTACK_ALLOC __alloca
00715 # elif defined _MSC_VER
00716 # include <malloc.h>
00717 # define alloca _alloca
00718 # else
00719 # define YYSTACK_ALLOC alloca
00720 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00721 || defined __cplusplus || defined _MSC_VER)
00722 # include <stdlib.h>
00723 # ifndef _STDLIB_H
00724 # define _STDLIB_H 1
00725 # endif
00726 # endif
00727 # endif
00728 # endif
00729 # endif
00730
00731 # ifdef YYSTACK_ALLOC
00732
00733 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
00734 # ifndef YYSTACK_ALLOC_MAXIMUM
00735
00736
00737
00738
00739 # define YYSTACK_ALLOC_MAXIMUM 4032
00740 # endif
00741 # else
00742 # define YYSTACK_ALLOC YYMALLOC
00743 # define YYSTACK_FREE YYFREE
00744 # ifndef YYSTACK_ALLOC_MAXIMUM
00745 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00746 # endif
00747 # if (defined __cplusplus && ! defined _STDLIB_H \
00748 && ! ((defined YYMALLOC || defined malloc) \
00749 && (defined YYFREE || defined free)))
00750 # include <stdlib.h>
00751 # ifndef _STDLIB_H
00752 # define _STDLIB_H 1
00753 # endif
00754 # endif
00755 # ifndef YYMALLOC
00756 # define YYMALLOC malloc
00757 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00758 || defined __cplusplus || defined _MSC_VER)
00759 void *malloc (YYSIZE_T);
00760 # endif
00761 # endif
00762 # ifndef YYFREE
00763 # define YYFREE free
00764 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00765 || defined __cplusplus || defined _MSC_VER)
00766 void free (void *);
00767 # endif
00768 # endif
00769 # endif
00770 #endif
00771
00772
00773 #if (! defined yyoverflow \
00774 && (! defined __cplusplus \
00775 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00776
00777
00778 union yyalloc
00779 {
00780 yytype_int16 yyss;
00781 YYSTYPE yyvs;
00782 };
00783
00784
00785 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00786
00787
00788
00789 # define YYSTACK_BYTES(N) \
00790 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
00791 + YYSTACK_GAP_MAXIMUM)
00792
00793
00794
00795 # ifndef YYCOPY
00796 # if defined __GNUC__ && 1 < __GNUC__
00797 # define YYCOPY(To, From, Count) \
00798 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00799 # else
00800 # define YYCOPY(To, From, Count) \
00801 do \
00802 { \
00803 YYSIZE_T yyi; \
00804 for (yyi = 0; yyi < (Count); yyi++) \
00805 (To)[yyi] = (From)[yyi]; \
00806 } \
00807 while (YYID (0))
00808 # endif
00809 # endif
00810
00811
00812
00813
00814
00815
00816 # define YYSTACK_RELOCATE(Stack) \
00817 do \
00818 { \
00819 YYSIZE_T yynewbytes; \
00820 YYCOPY (&yyptr->Stack, Stack, yysize); \
00821 Stack = &yyptr->Stack; \
00822 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00823 yyptr += yynewbytes / sizeof (*yyptr); \
00824 } \
00825 while (YYID (0))
00826
00827 #endif
00828
00829
00830 #define YYFINAL 223
00831
00832 #define YYLAST 4645
00833
00834
00835 #define YYNTOKENS 190
00836
00837 #define YYNNTS 242
00838
00839 #define YYNRULES 746
00840
00841 #define YYNSTATES 1415
00842
00843
00844 #define YYUNDEFTOK 2
00845 #define YYMAXUTOK 444
00846
00847 #define YYTRANSLATE(YYX) \
00848 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00849
00850
00851 static const yytype_uint8 yytranslate[] =
00852 {
00853 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00854 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00855 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00856 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00857 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00858 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00859 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00860 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00861 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00862 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00863 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00865 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00866 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00867 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00868 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00870 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00871 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00874 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00875 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00878 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00879 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00880 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00881 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
00882 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
00883 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
00884 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
00885 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
00886 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
00887 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
00888 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
00889 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
00890 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
00891 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
00892 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
00893 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
00894 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
00895 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
00896 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
00897 185, 186, 187, 188, 189
00898 };
00899
00900 #if YYDEBUG
00901
00902
00903 static const yytype_uint16 yyprhs[] =
00904 {
00905 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
00906 19, 20, 22, 24, 26, 28, 30, 32, 34, 36,
00907 38, 40, 42, 43, 45, 46, 48, 49, 52, 54,
00908 56, 61, 66, 71, 74, 77, 81, 84, 88, 92,
00909 96, 101, 105, 112, 116, 123, 126, 131, 134, 137,
00910 141, 145, 148, 154, 160, 166, 172, 178, 184, 190,
00911 193, 195, 198, 202, 205, 207, 210, 213, 217, 224,
00912 227, 231, 238, 241, 247, 249, 253, 255, 257, 260,
00913 270, 282, 293, 295, 297, 299, 305, 307, 313, 316,
00914 319, 321, 324, 327, 329, 331, 335, 338, 341, 345,
00915 349, 351, 359, 362, 364, 368, 370, 372, 374, 377,
00916 380, 383, 386, 388, 393, 396, 399, 402, 405, 408,
00917 413, 416, 418, 422, 424, 426, 430, 434, 438, 442,
00918 446, 450, 454, 458, 462, 466, 470, 472, 474, 480,
00919 482, 486, 488, 492, 494, 498, 500, 504, 506, 510,
00920 512, 516, 520, 522, 526, 530, 534, 538, 540, 544,
00921 548, 550, 554, 558, 560, 564, 568, 572, 574, 578,
00922 582, 584, 591, 593, 596, 599, 602, 605, 608, 611,
00923 614, 617, 622, 629, 631, 633, 637, 646, 651, 661,
00924 669, 680, 689, 701, 704, 708, 710, 713, 715, 719,
00925 724, 728, 734, 736, 738, 742, 746, 748, 750, 756,
00926 758, 763, 766, 769, 772, 775, 779, 783, 787, 791,
00927 794, 797, 805, 813, 821, 829, 836, 843, 848, 853,
00928 860, 862, 864, 866, 868, 870, 873, 876, 879, 882,
00929 886, 888, 892, 894, 896, 900, 904, 909, 914, 920,
00930 923, 927, 933, 935, 937, 939, 942, 944, 946, 948,
00931 950, 952, 955, 957, 960, 963, 967, 973, 975, 977,
00932 979, 981, 984, 986, 989, 992, 996, 1000, 1003, 1007,
00933 1012, 1016, 1023, 1026, 1030, 1032, 1035, 1039, 1041, 1043,
00934 1047, 1051, 1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067,
00935 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087,
00936 1089, 1091, 1093, 1095, 1097, 1099, 1101, 1103, 1105, 1107,
00937 1109, 1111, 1113, 1115, 1117, 1119, 1121, 1123, 1126, 1129,
00938 1133, 1138, 1140, 1143, 1145, 1149, 1152, 1155, 1159, 1164,
00939 1169, 1175, 1177, 1179, 1181, 1184, 1187, 1189, 1191, 1193,
00940 1195, 1201, 1208, 1211, 1217, 1223, 1227, 1229, 1231, 1237,
00941 1243, 1245, 1250, 1254, 1256, 1262, 1268, 1270, 1275, 1279,
00942 1283, 1288, 1292, 1297, 1301, 1304, 1308, 1311, 1313, 1317,
00943 1319, 1321, 1323, 1325, 1327, 1330, 1333, 1335, 1338, 1341,
00944 1344, 1346, 1349, 1351, 1353, 1355, 1357, 1359, 1361, 1363,
00945 1365, 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1383,
00946 1385, 1390, 1396, 1399, 1403, 1408, 1414, 1416, 1419, 1423,
00947 1425, 1427, 1429, 1431, 1433, 1435, 1437, 1439, 1441, 1443,
00948 1445, 1451, 1457, 1464, 1471, 1473, 1476, 1480, 1483, 1487,
00949 1492, 1498, 1502, 1508, 1513, 1520, 1522, 1524, 1526, 1529,
00950 1531, 1533, 1536, 1540, 1543, 1546, 1550, 1555, 1559, 1563,
00951 1570, 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1586, 1588,
00952 1590, 1592, 1594, 1596, 1600, 1602, 1606, 1611, 1614, 1618,
00953 1620, 1622, 1627, 1633, 1640, 1642, 1644, 1646, 1648, 1650,
00954 1652, 1654, 1657, 1660, 1664, 1667, 1670, 1675, 1679, 1682,
00955 1686, 1690, 1692, 1696, 1698, 1701, 1705, 1707, 1710, 1712,
00956 1715, 1719, 1722, 1724, 1726, 1728, 1734, 1741, 1745, 1750,
00957 1757, 1759, 1761, 1764, 1766, 1770, 1773, 1775, 1779, 1781,
00958 1783, 1785, 1787, 1791, 1795, 1799, 1801, 1804, 1806, 1811,
00959 1813, 1817, 1821, 1825, 1827, 1829, 1833, 1836, 1840, 1844,
00960 1849, 1854, 1860, 1866, 1873, 1878, 1884, 1890, 1897, 1899,
00961 1901, 1903, 1905, 1907, 1909, 1911, 1913, 1917, 1921, 1925,
00962 1928, 1933, 1936, 1941, 1948, 1957, 1961, 1965, 1967, 1971,
00963 1975, 1979, 1981, 1985, 1987, 1991, 1997, 1999, 2001, 2003,
00964 2005, 2009, 2011, 2013, 2017, 2020, 2024, 2027, 2030, 2034,
00965 2037, 2041, 2043, 2045, 2048, 2051, 2054, 2059, 2063, 2068,
00966 2070, 2073, 2075, 2078, 2081, 2085, 2089, 2091, 2094, 2096,
00967 2099, 2101, 2106, 2112, 2115, 2119, 2121, 2123, 2125, 2128,
00968 2131, 2133, 2136, 2139, 2142, 2144, 2146, 2149, 2153, 2155,
00969 2158, 2160, 2163, 2165, 2167, 2169, 2171, 2173, 2176, 2180,
00970 2182, 2186, 2189, 2194, 2196, 2200, 2203, 2208, 2210, 2214,
00971 2216, 2218, 2221, 2224, 2227, 2231, 2234, 2236, 2239, 2245,
00972 2252, 2260, 2265, 2271, 2274, 2277, 2280, 2284, 2286, 2289,
00973 2292, 2296, 2298, 2301, 2303, 2308, 2311, 2316, 2319, 2322,
00974 2325, 2328, 2330, 2335, 2338, 2339, 2341, 2343, 2347, 2351,
00975 2355, 2358, 2362, 2368, 2370, 2373, 2376, 2378, 2380, 2383,
00976 2385, 2387, 2389, 2393, 2398, 2400, 2404, 2406, 2410, 2414,
00977 2418, 2422, 2426, 2430, 2434, 2438, 2442, 2446, 2450, 2452,
00978 2458, 2460, 2464, 2466, 2470, 2472, 2476, 2478, 2482, 2484,
00979 2488, 2490, 2494, 2498, 2500, 2504, 2508
00980 };
00981
00982
00983 static const yytype_int16 yyrhs[] =
00984 {
00985 215, 0, -1, 213, -1, 213, -1, 191, -1, 191,
00986 -1, 191, -1, 191, -1, 191, -1, 192, -1, -1,
00987 191, -1, 191, -1, 191, -1, 191, -1, 191, -1,
00988 191, -1, 191, -1, 191, -1, 191, -1, 191, -1,
00989 191, -1, -1, 192, -1, -1, 192, -1, -1, 107,
00990 218, -1, 216, -1, 217, -1, 125, 159, 394, 158,
00991 -1, 126, 159, 398, 158, -1, 121, 159, 273, 158,
00992 -1, 110, 299, -1, 109, 295, -1, 108, 245, 157,
00993 -1, 111, 219, -1, 118, 245, 158, -1, 119, 387,
00994 158, -1, 122, 273, 158, -1, 120, 387, 158, 260,
00995 -1, 112, 245, 158, -1, 113, 388, 380, 160, 247,
00996 158, -1, 114, 245, 157, -1, 115, 388, 380, 160,
00997 247, 157, -1, 116, 261, -1, 117, 159, 387, 158,
00998 -1, 123, 423, -1, 124, 387, -1, 127, 365, 154,
00999 -1, 127, 365, 148, -1, 128, 397, -1, 129, 159,
01000 394, 158, 53, -1, 129, 159, 394, 158, 320, -1,
01001 129, 159, 394, 158, 161, -1, 129, 159, 394, 158,
01002 156, -1, 129, 159, 394, 158, 54, -1, 129, 159,
01003 394, 158, 154, -1, 129, 159, 394, 158, 157, -1,
01004 133, 235, -1, 289, -1, 315, 161, -1, 9, 246,
01005 161, -1, 16, 161, -1, 214, -1, 186, 193, -1,
01006 206, 214, -1, 206, 83, 245, -1, 206, 84, 388,
01007 371, 160, 247, -1, 206, 135, -1, 205, 81, 245,
01008 -1, 205, 82, 388, 371, 160, 247, -1, 205, 134,
01009 -1, 224, 159, 222, 158, 201, -1, 30, -1, 80,
01010 219, 201, -1, 214, -1, 245, -1, 228, 201, -1,
01011 231, 159, 202, 157, 230, 221, 157, 226, 158, -1,
01012 231, 159, 202, 77, 229, 157, 230, 221, 157, 226,
01013 158, -1, 231, 159, 202, 79, 299, 230, 221, 157,
01014 226, 158, -1, 245, -1, 191, -1, 27, -1, 233,
01015 159, 222, 158, 201, -1, 65, -1, 50, 159, 222,
01016 158, 201, -1, 201, 214, -1, 201, 236, -1, 241,
01017 -1, 236, 241, -1, 238, 201, -1, 413, -1, 157,
01018 -1, 77, 245, 157, -1, 8, 157, -1, 15, 157,
01019 -1, 43, 226, 157, -1, 29, 315, 157, -1, 239,
01020 -1, 18, 241, 65, 159, 245, 158, 157, -1, 78,
01021 295, -1, 136, -1, 240, 235, 155, -1, 156, -1,
01022 243, -1, 242, -1, 225, 242, -1, 227, 242, -1,
01023 232, 242, -1, 234, 242, -1, 237, -1, 223, 242,
01024 244, 242, -1, 225, 243, -1, 227, 243, -1, 232,
01025 243, -1, 234, 243, -1, 223, 241, -1, 223, 242,
01026 244, 243, -1, 21, 201, -1, 247, -1, 245, 154,
01027 247, -1, 248, -1, 248, -1, 249, 160, 247, -1,
01028 249, 185, 247, -1, 249, 184, 247, -1, 249, 183,
01029 247, -1, 249, 182, 247, -1, 249, 181, 247, -1,
01030 249, 180, 247, -1, 249, 179, 247, -1, 249, 178,
01031 247, -1, 249, 177, 247, -1, 249, 176, 247, -1,
01032 419, -1, 249, -1, 249, 153, 245, 161, 247, -1,
01033 250, -1, 249, 171, 250, -1, 251, -1, 250, 170,
01034 251, -1, 252, -1, 251, 152, 252, -1, 253, -1,
01035 252, 151, 253, -1, 254, -1, 253, 150, 254, -1,
01036 255, -1, 254, 169, 255, -1, 254, 168, 255, -1,
01037 256, -1, 255, 149, 256, -1, 255, 148, 256, -1,
01038 255, 167, 256, -1, 255, 166, 256, -1, 257, -1,
01039 256, 173, 257, -1, 256, 172, 257, -1, 258, -1,
01040 257, 147, 258, -1, 257, 146, 258, -1, 259, -1,
01041 258, 145, 259, -1, 258, 144, 259, -1, 258, 143,
01042 259, -1, 260, -1, 259, 165, 260, -1, 259, 164,
01043 260, -1, 261, -1, 159, 203, 87, 387, 158, 260,
01044 -1, 268, -1, 175, 260, -1, 174, 260, -1, 145,
01045 260, -1, 150, 260, -1, 147, 260, -1, 146, 260,
01046 -1, 141, 260, -1, 142, 260, -1, 46, 207, 85,
01047 261, -1, 46, 207, 86, 159, 387, 158, -1, 262,
01048 -1, 266, -1, 220, 36, 263, -1, 220, 36, 159,
01049 208, 91, 273, 158, 263, -1, 220, 36, 263, 272,
01050 -1, 220, 36, 159, 208, 91, 273, 158, 263, 272,
01051 -1, 220, 36, 159, 208, 89, 387, 158, -1, 220,
01052 36, 159, 208, 91, 273, 158, 159, 387, 158, -1,
01053 220, 36, 159, 208, 89, 387, 158, 272, -1, 220,
01054 36, 159, 208, 91, 273, 158, 159, 387, 158, 272,
01055 -1, 388, 213, -1, 388, 213, 264, -1, 385, -1,
01056 385, 265, -1, 265, -1, 140, 245, 139, -1, 265,
01057 140, 246, 139, -1, 220, 17, 260, -1, 220, 17,
01058 140, 139, 260, -1, 277, -1, 378, -1, 51, 196,
01059 277, -1, 51, 196, 378, -1, 4, -1, 52, -1,
01060 159, 203, 88, 245, 158, -1, 279, -1, 268, 140,
01061 245, 139, -1, 268, 272, -1, 324, 272, -1, 322,
01062 272, -1, 269, 272, -1, 268, 138, 267, -1, 268,
01063 163, 267, -1, 268, 138, 275, -1, 268, 163, 275,
01064 -1, 268, 175, -1, 268, 174, -1, 20, 149, 387,
01065 148, 159, 245, 158, -1, 48, 149, 387, 148, 159,
01066 245, 158, -1, 42, 149, 387, 148, 159, 245, 158,
01067 -1, 14, 149, 387, 148, 159, 245, 158, -1, 56,
01068 159, 204, 88, 245, 158, -1, 56, 159, 204, 89,
01069 387, 158, -1, 57, 220, 281, 270, -1, 57, 220,
01070 281, 271, -1, 57, 220, 281, 51, 196, 271, -1,
01071 74, -1, 71, -1, 69, -1, 68, -1, 67, -1,
01072 72, 366, -1, 73, 366, -1, 70, 366, -1, 159,
01073 158, -1, 159, 273, 158, -1, 247, -1, 273, 154,
01074 247, -1, 68, -1, 67, -1, 276, 142, 274, -1,
01075 220, 142, 274, -1, 220, 281, 142, 274, -1, 220,
01076 274, 186, 200, -1, 220, 281, 274, 186, 200, -1,
01077 220, 278, -1, 220, 281, 278, -1, 220, 281, 51,
01078 196, 278, -1, 69, -1, 68, -1, 67, -1, 72,
01079 366, -1, 72, -1, 74, -1, 71, -1, 75, -1,
01080 282, -1, 73, 366, -1, 73, -1, 70, 366, -1,
01081 220, 280, -1, 220, 281, 280, -1, 220, 281, 51,
01082 196, 280, -1, 71, -1, 74, -1, 285, -1, 282,
01083 -1, 73, 366, -1, 73, -1, 70, 366, -1, 69,
01084 186, -1, 72, 366, 186, -1, 70, 366, 186, -1,
01085 75, 186, -1, 281, 69, 186, -1, 281, 72, 366,
01086 186, -1, 281, 75, 186, -1, 281, 51, 196, 70,
01087 366, 186, -1, 283, 103, -1, 283, 102, 366, -1,
01088 283, -1, 283, 149, -1, 37, 284, 199, -1, 36,
01089 -1, 17, -1, 36, 140, 139, -1, 17, 140, 139,
01090 -1, 147, -1, 146, -1, 145, -1, 144, -1, 143,
01091 -1, 151, -1, 150, -1, 152, -1, 142, -1, 141,
01092 -1, 160, -1, 185, -1, 184, -1, 183, -1, 182,
01093 -1, 181, -1, 180, -1, 179, -1, 178, -1, 177,
01094 -1, 176, -1, 149, -1, 148, -1, 167, -1, 166,
01095 -1, 173, -1, 172, -1, 169, -1, 168, -1, 170,
01096 -1, 171, -1, 175, -1, 174, -1, 154, -1, 164,
01097 -1, 163, -1, 159, 158, -1, 140, 139, -1, 37,
01098 199, 388, -1, 37, 199, 388, 385, -1, 214, -1,
01099 161, 287, -1, 288, -1, 287, 154, 288, -1, 71,
01100 272, -1, 67, 272, -1, 220, 69, 272, -1, 220,
01101 72, 366, 272, -1, 220, 281, 69, 272, -1, 220,
01102 281, 72, 366, 272, -1, 214, -1, 290, -1, 293,
01103 -1, 290, 293, -1, 303, 192, -1, 315, -1, 294,
01104 -1, 403, -1, 328, -1, 51, 149, 363, 148, 293,
01105 -1, 24, 51, 149, 363, 148, 293, -1, 51, 293,
01106 -1, 51, 149, 210, 148, 293, -1, 25, 4, 156,
01107 289, 155, -1, 25, 4, 293, -1, 157, -1, 298,
01108 -1, 5, 159, 4, 158, 157, -1, 35, 315, 160,
01109 296, 157, -1, 331, -1, 60, 35, 296, 157, -1,
01110 332, 292, 157, -1, 299, -1, 5, 159, 4, 158,
01111 157, -1, 35, 315, 160, 296, 157, -1, 331, -1,
01112 60, 35, 296, 157, -1, 332, 292, 157, -1, 197,
01113 220, 75, -1, 197, 220, 297, 75, -1, 75, 186,
01114 197, -1, 297, 75, 186, 197, -1, 291, 369, 157,
01115 -1, 317, 157, -1, 301, 369, 157, -1, 317, 157,
01116 -1, 372, -1, 300, 154, 372, -1, 303, -1, 303,
01117 -1, 304, -1, 305, -1, 307, -1, 306, 307, -1,
01118 304, 309, -1, 308, -1, 306, 308, -1, 305, 308,
01119 -1, 305, 309, -1, 309, -1, 306, 309, -1, 313,
01120 -1, 317, -1, 324, -1, 310, -1, 320, -1, 311,
01121 -1, 28, -1, 55, -1, 6, -1, 41, -1, 47,
01122 -1, 25, -1, 34, -1, 31, -1, 61, -1, 23,
01123 -1, 22, -1, 322, -1, 332, 186, 193, 69, -1,
01124 332, 186, 193, 281, 69, -1, 312, 68, -1, 312,
01125 281, 68, -1, 312, 186, 193, 68, -1, 312, 186,
01126 193, 281, 68, -1, 269, -1, 332, 69, -1, 332,
01127 281, 69, -1, 214, -1, 315, -1, 74, -1, 71,
01128 -1, 69, -1, 68, -1, 67, -1, 73, -1, 72,
01129 -1, 75, -1, 191, -1, 318, 156, 316, 133, 155,
01130 -1, 318, 156, 316, 334, 155, -1, 312, 314, 156,
01131 316, 133, 155, -1, 312, 314, 156, 316, 325, 155,
01132 -1, 319, -1, 332, 214, -1, 332, 161, 358, -1,
01133 332, 315, -1, 332, 281, 315, -1, 332, 315, 161,
01134 358, -1, 332, 281, 315, 161, 358, -1, 332, 72,
01135 366, -1, 332, 72, 366, 161, 358, -1, 332, 281,
01136 72, 366, -1, 332, 281, 72, 366, 161, 358, -1,
01137 13, -1, 63, -1, 320, -1, 321, 320, -1, 323,
01138 -1, 62, -1, 220, 69, -1, 220, 72, 366, -1,
01139 220, 68, -1, 220, 67, -1, 220, 281, 69, -1,
01140 220, 281, 72, 366, -1, 220, 281, 68, -1, 220,
01141 281, 67, -1, 220, 281, 51, 196, 70, 366, -1,
01142 11, -1, 64, -1, 7, -1, 44, -1, 32, -1,
01143 33, -1, 45, -1, 59, -1, 26, -1, 19, -1,
01144 214, -1, 326, -1, 327, -1, 326, 154, 327, -1,
01145 315, -1, 315, 160, 246, -1, 329, 156, 289, 155,
01146 -1, 35, 315, -1, 35, 214, 198, -1, 278, -1,
01147 285, -1, 60, 220, 330, 157, -1, 60, 220, 281,
01148 330, 157, -1, 60, 57, 220, 281, 330, 157, -1,
01149 333, -1, 12, -1, 49, -1, 58, -1, 214, -1,
01150 335, -1, 344, -1, 361, 161, -1, 335, 344, -1,
01151 335, 361, 161, -1, 303, 192, -1, 339, 400, -1,
01152 159, 341, 400, 158, -1, 159, 337, 158, -1, 340,
01153 400, -1, 159, 338, 158, -1, 159, 340, 158, -1,
01154 341, -1, 159, 340, 158, -1, 342, -1, 220, 343,
01155 -1, 220, 281, 343, -1, 69, -1, 72, 366, -1,
01156 157, -1, 346, 157, -1, 336, 351, 157, -1, 317,
01157 157, -1, 404, -1, 345, -1, 331, -1, 51, 149,
01158 363, 148, 344, -1, 24, 51, 149, 363, 148, 344,
01159 -1, 332, 292, 157, -1, 220, 281, 278, 157, -1,
01160 220, 281, 51, 196, 278, 157, -1, 347, -1, 349,
01161 -1, 306, 349, -1, 348, -1, 348, 154, 300, -1,
01162 336, 377, -1, 350, -1, 350, 154, 300, -1, 337,
01163 -1, 373, -1, 352, -1, 355, -1, 351, 154, 353,
01164 -1, 351, 154, 355, -1, 99, 161, 246, -1, 354,
01165 -1, 161, 246, -1, 354, -1, 220, 278, 161, 246,
01166 -1, 357, -1, 356, 101, 246, -1, 356, 100, 4,
01167 -1, 357, 160, 191, -1, 382, -1, 359, -1, 358,
01168 154, 359, -1, 220, 69, -1, 220, 72, 366, -1,
01169 220, 281, 69, -1, 220, 281, 72, 366, -1, 61,
01170 362, 220, 69, -1, 61, 362, 220, 72, 366, -1,
01171 61, 362, 220, 281, 69, -1, 61, 362, 220, 281,
01172 72, 366, -1, 361, 360, 220, 69, -1, 361, 360,
01173 220, 72, 366, -1, 361, 360, 220, 281, 69, -1,
01174 361, 360, 220, 281, 72, 366, -1, 214, -1, 61,
01175 -1, 38, -1, 39, -1, 40, -1, 214, -1, 361,
01176 -1, 364, -1, 363, 154, 364, -1, 210, 96, 365,
01177 -1, 210, 97, 397, -1, 12, 314, -1, 12, 314,
01178 160, 387, -1, 57, 314, -1, 57, 314, 160, 387,
01179 -1, 51, 149, 363, 148, 12, 314, -1, 51, 149,
01180 363, 148, 12, 314, 160, 277, -1, 149, 209, 148,
01181 -1, 149, 367, 148, -1, 368, -1, 367, 154, 368,
01182 -1, 209, 92, 423, -1, 209, 93, 387, -1, 370,
01183 -1, 369, 154, 370, -1, 371, -1, 371, 160, 410,
01184 -1, 371, 90, 159, 273, 158, -1, 380, -1, 373,
01185 -1, 338, -1, 374, -1, 374, 160, 4, -1, 376,
01186 -1, 378, -1, 159, 375, 158, -1, 375, 400, -1,
01187 159, 376, 158, -1, 98, 400, -1, 220, 379, -1,
01188 220, 281, 379, -1, 142, 69, -1, 142, 72, 366,
01189 -1, 285, -1, 381, -1, 385, 381, -1, 277, 211,
01190 -1, 381, 159, -1, 381, 94, 400, 211, -1, 381,
01191 384, 211, -1, 159, 382, 158, 211, -1, 383, -1,
01192 385, 383, -1, 277, -1, 383, 400, -1, 383, 384,
01193 -1, 159, 382, 158, -1, 140, 393, 139, -1, 386,
01194 -1, 385, 386, -1, 145, -1, 145, 321, -1, 150,
01195 -1, 220, 281, 145, 199, -1, 220, 281, 145, 321,
01196 199, -1, 388, 213, -1, 388, 213, 391, -1, 389,
01197 -1, 390, -1, 313, -1, 321, 313, -1, 389, 320,
01198 -1, 324, -1, 321, 324, -1, 390, 320, -1, 390,
01199 324, -1, 392, -1, 385, -1, 385, 392, -1, 159,
01200 391, 158, -1, 384, -1, 392, 384, -1, 401, -1,
01201 392, 401, -1, 214, -1, 246, -1, 214, -1, 162,
01202 -1, 395, -1, 395, 162, -1, 395, 154, 162, -1,
01203 396, -1, 395, 154, 396, -1, 302, 398, -1, 302,
01204 398, 160, 247, -1, 302, -1, 302, 160, 247, -1,
01205 302, 398, -1, 302, 398, 160, 423, -1, 302, -1,
01206 302, 160, 423, -1, 399, -1, 385, -1, 385, 399,
01207 -1, 212, 159, -1, 220, 278, -1, 212, 94, 401,
01208 -1, 399, 401, -1, 384, -1, 399, 384, -1, 212,
01209 95, 159, 398, 158, -1, 159, 194, 394, 158, 195,
01210 420, -1, 159, 194, 394, 158, 195, 321, 420, -1,
01211 159, 394, 158, 420, -1, 159, 394, 158, 321, 420,
01212 -1, 376, 406, -1, 376, 414, -1, 291, 408, -1,
01213 291, 377, 407, -1, 402, -1, 306, 402, -1, 336,
01214 409, -1, 336, 377, 407, -1, 402, -1, 306, 402,
01215 -1, 191, -1, 156, 405, 133, 155, -1, 286, 406,
01216 -1, 54, 286, 406, 417, -1, 371, 406, -1, 371,
01217 414, -1, 357, 406, -1, 357, 414, -1, 247, -1,
01218 156, 412, 411, 155, -1, 156, 155, -1, -1, 154,
01219 -1, 410, -1, 412, 154, 410, -1, 54, 239, 415,
01220 -1, 54, 406, 417, -1, 416, 201, -1, 415, 416,
01221 201, -1, 10, 159, 418, 158, 239, -1, 416, -1,
01222 417, 416, -1, 388, 398, -1, 388, -1, 162, -1,
01223 53, 247, -1, 53, -1, 214, -1, 421, -1, 53,
01224 159, 158, -1, 53, 159, 422, 158, -1, 387, -1,
01225 422, 154, 387, -1, 424, -1, 425, 160, 423, -1,
01226 425, 185, 423, -1, 425, 184, 423, -1, 425, 183,
01227 423, -1, 425, 182, 423, -1, 425, 181, 423, -1,
01228 425, 180, 423, -1, 425, 179, 423, -1, 425, 178,
01229 423, -1, 425, 177, 423, -1, 425, 176, 423, -1,
01230 425, -1, 425, 153, 245, 161, 423, -1, 426, -1,
01231 425, 171, 426, -1, 427, -1, 426, 170, 427, -1,
01232 428, -1, 427, 152, 428, -1, 429, -1, 428, 151,
01233 429, -1, 430, -1, 429, 150, 430, -1, 431, -1,
01234 430, 169, 431, -1, 430, 168, 431, -1, 256, -1,
01235 431, 149, 256, -1, 431, 167, 256, -1, 431, 166,
01236 256, -1
01237 };
01238
01239
01240 static const yytype_uint16 yyrline[] =
01241 {
01242 0, 411, 411, 419, 427, 432, 437, 442, 447, 453,
01243 462, 472, 479, 524, 538, 556, 569, 589, 608, 621,
01244 634, 648, 670, 690, 707, 722, 756, 761, 762, 763,
01245 767, 768, 769, 771, 772, 773, 774, 776, 777, 778,
01246 779, 781, 782, 784, 785, 787, 788, 790, 791, 794,
01247 795, 796, 798, 799, 800, 801, 802, 803, 804, 808,
01248 812, 817, 819, 821, 827, 829, 835, 837, 839, 844,
01249 852, 854, 859, 867, 875, 884, 889, 891, 896, 901,
01250 906, 911, 919, 927, 934, 942, 950, 958, 963, 965,
01251 970, 972, 977, 983, 989, 991, 997, 999, 1001, 1007,
01252 1009, 1011, 1013, 1015, 1023, 1031, 1039, 1041, 1046, 1048,
01253 1056, 1063, 1065, 1067, 1078, 1080, 1088, 1095, 1097, 1105,
01254 1116, 1125, 1127, 1133, 1139, 1141, 1143, 1145, 1147, 1149,
01255 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1169, 1171, 1177,
01256 1179, 1185, 1187, 1193, 1195, 1201, 1203, 1209, 1211, 1217,
01257 1219, 1221, 1227, 1229, 1231, 1233, 1235, 1241, 1243, 1245,
01258 1251, 1253, 1255, 1261, 1263, 1265, 1267, 1273, 1275, 1277,
01259 1283, 1285, 1291, 1293, 1295, 1297, 1299, 1301, 1303, 1305,
01260 1307, 1309, 1311, 1313, 1315, 1321, 1323, 1325, 1327, 1330,
01261 1332, 1334, 1336, 1341, 1343, 1348, 1350, 1352, 1357, 1360,
01262 1365, 1367, 1372, 1374, 1376, 1378, 1386, 1388, 1390, 1392,
01263 1395, 1397, 1401, 1405, 1409, 1414, 1416, 1419, 1421, 1424,
01264 1426, 1429, 1431, 1433, 1435, 1438, 1440, 1448, 1450, 1452,
01265 1457, 1459, 1461, 1463, 1465, 1470, 1472, 1474, 1479, 1481,
01266 1486, 1488, 1493, 1495, 1501, 1507, 1509, 1514, 1516, 1521,
01267 1523, 1525, 1530, 1532, 1534, 1544, 1546, 1548, 1550, 1552,
01268 1554, 1556, 1558, 1560, 1565, 1567, 1569, 1574, 1576, 1582,
01269 1584, 1586, 1588, 1590, 1596, 1601, 1605, 1609, 1615, 1620,
01270 1624, 1629, 1636, 1639, 1644, 1649, 1654, 1673, 1674, 1675,
01271 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685,
01272 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695,
01273 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705,
01274 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1718,
01275 1720, 1725, 1727, 1732, 1734, 1740, 1742, 1744, 1746, 1748,
01276 1750, 1757, 1759, 1764, 1766, 1775, 1787, 1792, 1794, 1796,
01277 1800, 1802, 1806, 1814, 1818, 1820, 1827, 1829, 1832, 1839,
01278 1844, 1850, 1853, 1871, 1874, 1881, 1886, 1892, 1895, 1901,
01279 1903, 1908, 1913, 1921, 1924, 1931, 1933, 1945, 1947, 1955,
01280 1964, 1972, 1974, 1996, 1999, 2002, 2011, 2013, 2016, 2018,
01281 2023, 2025, 2030, 2032, 2037, 2042, 2044, 2046, 2048, 2050,
01282 2057, 2059, 2061, 2063, 2065, 2072, 2074, 2076, 2081, 2096,
01283 2099, 2101, 2103, 2105, 2107, 2109, 2111, 2115, 2117, 2122,
01284 2124, 2129, 2131, 2133, 2135, 2137, 2139, 2141, 2143, 2162,
01285 2181, 2190, 2202, 2205, 2210, 2215, 2217, 2220, 2222, 2224,
01286 2226, 2229, 2231, 2233, 2235, 2253, 2255, 2262, 2264, 2271,
01287 2273, 2278, 2280, 2282, 2284, 2286, 2288, 2290, 2292, 2294,
01288 2299, 2301, 2303, 2305, 2307, 2309, 2311, 2313, 2315, 2317,
01289 2322, 2324, 2331, 2333, 2338, 2340, 2346, 2355, 2361, 2369,
01290 2371, 2376, 2378, 2380, 2387, 2392, 2394, 2396, 2401, 2403,
01291 2408, 2410, 2413, 2415, 2425, 2437, 2443, 2449, 2454, 2459,
01292 2464, 2469, 2471, 2476, 2482, 2485, 2491, 2493, 2498, 2502,
01293 2505, 2512, 2517, 2520, 2523, 2526, 2528, 2531, 2537, 2539,
01294 2544, 2546, 2548, 2553, 2555, 2560, 2583, 2585, 2590, 2592,
01295 2597, 2599, 2601, 2603, 2615, 2617, 2622, 2624, 2630, 2642,
01296 2644, 2650, 2656, 2673, 2682, 2684, 2689, 2691, 2693, 2695,
01297 2697, 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2716, 2718,
01298 2723, 2725, 2727, 2732, 2734, 2741, 2743, 2748, 2750, 2755,
01299 2757, 2759, 2761, 2763, 2765, 2771, 2773, 2778, 2780, 2785,
01300 2787, 2796, 2798, 2812, 2817, 2823, 2831, 2840, 2842, 2848,
01301 2851, 2856, 2861, 2863, 2868, 2871, 2876, 2881, 2883, 2888,
01302 2890, 2892, 2897, 2899, 2910, 2916, 2918, 2920, 2922, 2927,
01303 2929, 2934, 2936, 2938, 2940, 2945, 2976, 2978, 2983, 2985,
01304 2987, 2990, 2992, 2999, 3001, 3006, 3012, 3021, 3023, 3030,
01305 3035, 3037, 3044, 3046, 3057, 3059, 3061, 3066, 3069, 3072,
01306 3075, 3078, 3083, 3085, 3092, 3094, 3096, 3098, 3100, 3105,
01307 3107, 3112, 3114, 3116, 3118, 3123, 3125, 3127, 3129, 3135,
01308 3137, 3139, 3144, 3148, 3163, 3166, 3169, 3172, 3175, 3181,
01309 3183, 3192, 3194, 3199, 3201, 3206, 3208, 3214, 3217, 3223,
01310 3225, 3230, 3233, 3239, 3250, 3255, 3257, 3262, 3281, 3286,
01311 3288, 3293, 3295, 3297, 3301, 3303, 3307, 3309, 3336, 3341,
01312 3346, 3348, 3353, 3359, 3361, 3366, 3368, 3371, 3376, 3378,
01313 3383, 3385, 3390, 3392, 3397, 3399, 3404, 3406, 3408, 3410,
01314 3412, 3414, 3416, 3418, 3420, 3422, 3424, 3426, 3434, 3439,
01315 3445, 3447, 3453, 3455, 3461, 3463, 3469, 3471, 3477, 3479,
01316 3485, 3487, 3489, 3495, 3497, 3502, 3504
01317 };
01318 #endif
01319
01320 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01321
01322
01323 static const char *const yytname[] =
01324 {
01325 "TOK_EOF", "error", "$undefined", "_LOWEST_PREC", "TOK_LITERAL",
01326 "TOK_ASM", "TOK_AUTO", "TOK_BOOL", "TOK_BREAK", "TOK_CASE", "TOK_CATCH",
01327 "TOK_CHAR", "TOK_CLASS", "TOK_CONST", "TOK_CONST_CAST", "TOK_CONTINUE",
01328 "TOK_DEFAULT", "TOK_DELETE", "TOK_DO", "TOK_DOUBLE", "TOK_DYNAMIC_CAST",
01329 "TOK_ELSE", "TOK_ENUM", "TOK_EXPLICIT", "TOK_EXPORT", "TOK_EXTERN",
01330 "TOK_FLOAT", "TOK_FOR", "TOK_FRIEND", "TOK_GOTO", "TOK_IF", "TOK_INLINE",
01331 "TOK_INT", "TOK_LONG", "TOK_MUTABLE", "TOK_NAMESPACE", "TOK_NEW",
01332 "TOK_OPERATOR", "TOK_PRIVATE", "TOK_PROTECTED", "TOK_PUBLIC",
01333 "TOK_REGISTER", "TOK_REINTERPRET_CAST", "TOK_RETURN", "TOK_SHORT",
01334 "TOK_SIGNED", "TOK_SIZEOF", "TOK_STATIC", "TOK_STATIC_CAST",
01335 "TOK_STRUCT", "TOK_SWITCH", "TOK_TEMPLATE", "TOK_THIS", "TOK_THROW",
01336 "TOK_TRY", "TOK_TYPEDEF", "TOK_TYPEID", "TOK_TYPENAME", "TOK_UNION",
01337 "TOK_UNSIGNED", "TOK_USING", "TOK_VIRTUAL", "TOK_VOID", "TOK_VOLATILE",
01338 "TOK_WCHAR_T", "TOK_WHILE", "TOK_IDENT", "_TYPEDEF_NAME_ID",
01339 "_ENUM_NAME_ID", "_CLASS_NAME_ID", "_TEMPL_FORCED", "_NONTYPE",
01340 "_TEMPL_TYPE", "_TEMPL_NONTYPE", "_UNKNOWN_ID", "_NMSPC_NAME",
01341 "_PAD_FIRST", "TOK_PAD_EXPR_STMT", "TOK_PAD_BLOCK_DECL",
01342 "TOK_PAD_SIMPLE_DECL", "TOK_PAD_LABEL", "TOK_PAD_COND_EXPR",
01343 "TOK_PAD_COND_DECL", "TOK_PAD_FOR_COND_EXPR", "TOK_PAD_FOR_COND_DECL",
01344 "TOK_PAD_SIZEOF_EXPR", "TOK_PAD_SIZEOF_TYPE_ID",
01345 "TOK_PAD_TYPE_ID_RPAR_CAST_EXPR", "TOK_PAD_EXPR_RPAR",
01346 "TOK_PAD_TYPE_ID_RPAR", "TOK_PAD_LPAR_EXPR_LIST_RPAR",
01347 "TOK_PAD_EXPR_LIST_RPAR", "TOK_PAD_TEMPL_ARG_EXPR",
01348 "TOK_PAD_TEMPL_ARG_TYPE_ID", "TOK_PAD_PARAM_DECL_CLAUSE",
01349 "TOK_PAD_PARAM_DCLTOR", "TOK_PAD_TEMPL_PARAM_TYPE",
01350 "TOK_PAD_TEMPL_PARAM_NONTYPE", "TOK_PAD_CTOR",
01351 "TOK_PAD_UNNAMED_BITFIELD", "TOK_PAD_MEMBER_FUNC",
01352 "TOK_PAD_MEMBER_OBJECT", "TOK_PAD_TEMPL_OP", "TOK_PAD_OP_NOT_TEMPL",
01353 "TOK_PAD_TO_BE_DISCARDED", "_PAD_LAST", "_START_FIRST",
01354 "TOK_START_PROGRAM", "TOK_START_EXPR_STMT", "TOK_START_BLOCK_DECL",
01355 "TOK_START_SIMPLE_DECL", "TOK_START_LABEL", "TOK_START_COND_EXPR",
01356 "TOK_START_COND_DECL", "TOK_START_FOR_COND_EXPR",
01357 "TOK_START_FOR_COND_DECL", "TOK_START_SIZEOF_EXPR",
01358 "TOK_START_SIZEOF_TYPE_ID", "TOK_START_EXPR_RPAR",
01359 "TOK_START_TYPE_ID_RPAR", "TOK_START_TYPE_ID_RPAR_CAST_EXPR",
01360 "TOK_START_LPAR_EXPR_LIST_RPAR", "TOK_START_EXPR_LIST_RPAR",
01361 "TOK_START_TEMPL_ARG_EXPR", "TOK_START_TEMPL_ARG_TYPE_ID",
01362 "TOK_START_PARAM_DECL_CLAUSE", "TOK_START_PARAM_DCLTOR",
01363 "TOK_START_TEMPL_PARAM_TYPE", "TOK_START_TEMPL_PARAM_NONTYPE",
01364 "TOK_START_CTOR", "TOK_START_TO_BE_DISCARDED", "_START_LAST",
01365 "_PACK_FIRST", "TOK_PACK_BODY", "TOK_PACK_ERROR_COND",
01366 "TOK_PACK_ERROR_FOR_COND", "TOK_PACK_ERROR_STMT", "_PACK_LAST",
01367 "TOK_DOT", "TOK_RIGHT_BRACKET", "TOK_LEFT_BRACKET", "TOK_EXCLAMATION",
01368 "TOK_TILDE", "TOK_PERCENT", "TOK_SLASH", "TOK_STAR", "TOK_MINUS",
01369 "TOK_PLUS", "TOK_GT", "TOK_LT", "TOK_AMP", "TOK_HAT", "TOK_VBAR",
01370 "TOK_QMARK", "TOK_COMMA", "TOK_RIGHT_BRACE", "TOK_LEFT_BRACE",
01371 "TOK_SEMICOLON", "TOK_RIGHT_PAR", "TOK_LEFT_PAR", "TOK_EQ", "TOK_COLON",
01372 "TOK_DOT_DOT_DOT", "TOK_MINUS_GT", "TOK_MINUS_GT_STAR", "TOK_DOT_STAR",
01373 "TOK_GT_EQ", "TOK_LT_EQ", "TOK_EXCLAMATION_EQ", "TOK_EQ_EQ",
01374 "TOK_AMP_AMP", "TOK_VBAR_VBAR", "TOK_GT_GT", "TOK_LT_LT",
01375 "TOK_MINUS_MINUS", "TOK_PLUS_PLUS", "TOK_LT_LT_EQ", "TOK_GT_GT_EQ",
01376 "TOK_VBAR_EQ", "TOK_AMP_EQ", "TOK_HAT_EQ", "TOK_PERCENT_EQ",
01377 "TOK_SLASH_EQ", "TOK_STAR_EQ", "TOK_MINUS_EQ", "TOK_PLUS_EQ",
01378 "TOK_COLON_COLON", "_HIGHEST_PREC", "TOK_ERROR", "TOK_TEXT", "$accept",
01379 "_lookahead_assert_empty", "_lookahead_assert_non_empty",
01380 "_hinter_to_root_scope", "_hinter_pdc_scope", "_hinter_pdc_scope_end",
01381 "_hinter_templ_id_follows", "_hinter_nmspc_name_follows",
01382 "_hinter_nmspc_name_clear", "_hinter_clear_qualification",
01383 "_hinter_descend_pseudo_destr",
01384 "_disambiguate_expr_stmt_vs_block_decl_vs_label",
01385 "_disambiguate_expr_stmt_vs_simple_decl",
01386 "_disambiguate_cast_expr_vs_expr_in_pars",
01387 "_disambiguate_expr_vs_type_id", "_disambiguate_condition",
01388 "_disambiguate_for_condition_opt", "_disambiguate_sizeof",
01389 "_disambiguate_expr_list_vs_type_id", "_disambiguate_templ_arg",
01390 "_disambiguate_templ_param",
01391 "_disambiguate_param_decl_clause_vs_expr_list",
01392 "_disambiguate_param_decl_clause_vs_param_dcltor", "_next_location",
01393 "_no_token", "start", "disambiguation", "packs", "program", "label",
01394 "coloncolon_opt", "condition_opt", "condition", "if_head", "_if_action",
01395 "_label_head", "expr_opt", "_for_head", "_for_head_real", "_for_expr",
01396 "_for_inner_action", "_for_action", "_while_head", "_while_action",
01397 "_switch_head", "stmt_seq_opt", "stmt_seq", "_non_if_stmt",
01398 "_non_if_stmt_real", "compound_stmt", "_enter_compound_action", "stmt",
01399 "stmt_else_can_follow", "stmt_else_cant_follow", "_else_action", "expr",
01400 "const_expr", "assign_expr", "cond_expr", "log_or_expr", "log_and_expr",
01401 "or_expr", "xor_expr", "and_expr", "eq_expr", "rel_expr", "shift_expr",
01402 "add_expr", "mul_expr", "pm_expr", "cast_expr", "un_expr", "new_expr",
01403 "new_type_id", "new_dcltor", "direct_new_dcltor", "delete_expr",
01404 "_member_access_suffix", "postfix_expr", "_typename_type_spec", "_tts1",
01405 "_tts2", "_expr_list_opt_in_pars", "expr_list",
01406 "_enum_or_typedef_name_id", "pseudo_destr_name", "_pdn1", "id_expr",
01407 "unqualified_id", "_id_expr_nontype", "_unqualified_id_nontype",
01408 "nested_name_spec", "op_func_id", "_op_func_id_orig", "op",
01409 "conv_func_id", "mem_inizer_list_opt", "mem_inizer_list", "mem_inizer",
01410 "_decl_seq_in_nmspc_scope_opt", "_decl_seq_in_nmspc_scope",
01411 "_decl_spec_seq_in_nmspc_scope", "_class_forward_id",
01412 "_decl_in_nmspc_scope", "_block_decl_in_nmspc_scope",
01413 "_block_decl_in_func_scope", "_nested_nmspc_name", "_nested_nmspc_spec",
01414 "_simple_decl_in_nmspc_scope", "_simple_decl_in_func_scope",
01415 "_next_member_dcltor_list_cdtc", "_decl_spec_seq_in_func_scope",
01416 "_decl_spec_seq_in_param_scope", "_decl_spec_seq_orig",
01417 "_decl_spec_seq_exclusive", "_decl_spec_seq_non_exclusive",
01418 "_decl_spec_seq_other", "_decl_spec_exclusive",
01419 "_decl_spec_non_exclusive", "_decl_spec_other", "storage_class_spec",
01420 "func_spec", "_enum", "_type_spec_not_declaring_class_enum_exclusive",
01421 "_anyid_opt", "_anyid", "_pack_body_in_disambiguation",
01422 "_type_spec_declaring_class_enum", "_class_specifier_action",
01423 "_class_specifier_head", "cv_qualifier", "cv_qualifier_seq",
01424 "_simple_type_spec_exclusive", "_simple_type_spec_exclusive_name",
01425 "_simple_type_spec_non_exclusive", "enumerator_list_opt",
01426 "enumerator_list", "enumerator_defn", "nmspc_defn", "_nmspc_defn_head",
01427 "_using_id", "using_decl", "class_key", "_class_key_real",
01428 "member_spfn_opt", "member_spfn", "_decl_spec_seq_in_class_scope",
01429 "_ctor_first_member_dcltor_in_par", "_ctor_next_member_dcltor",
01430 "_ctor_name_in_par", "_ctor_name_in_opt_par", "_ctor_name_in_no_par",
01431 "_ctor_type", "_ctor_unqualified_id", "member_decl", "_access_decl",
01432 "_cdtc_member_decl",
01433 "_cdtc_member_dcltor_list_starting_with_ctor_no_par",
01434 "_ctor_first_member_dcltor_no_par",
01435 "_cdtc_member_dcltor_list_not_starting_with_ctor_no_par",
01436 "_cdtc_first_member_dcltor", "member_dcltor_list",
01437 "_first_bitfield_member_dcltor", "_next_bitfield_member_dcltor",
01438 "_named_bitfield_member_dcltor", "_non_bitfield_member_dcltor",
01439 "_non_bitfield_member_dcltor_inizer_action", "_in_class_dcltor_action",
01440 "base_spec_list", "base_spec", "virtual_opt", "access_spec",
01441 "access_spec_opt", "templ_param_list", "templ_param", "type_param",
01442 "_templ_args", "templ_arg_list", "templ_arg", "init_dcltor_list",
01443 "init_dcltor", "_dcltor_action", "_cdtc_next_member_dcltor",
01444 "_dtc_member_dcltor", "_dtc_dcltor_action", "_id_expr_dtc_in_opt_par",
01445 "_dtc_dcltor", "_ctor_func_suffix", "_id_expr_dtc",
01446 "_dtc_unqualified_id", "dcltor", "direct_dcltor", "_inner_dcltor",
01447 "_inner_direct_dcltor", "_bracket_suffix", "_ptr_op_seq", "ptr_op",
01448 "type_id", "_type_spec_seq_not_declaring_class_enum",
01449 "_type_spec_seq_not_declaring_class_enum_exclusive",
01450 "_type_spec_seq_not_declaring_class_enum_non_exclusive", "abst_dcltor",
01451 "direct_abst_dcltor", "const_expr_opt", "param_decl_clause",
01452 "param_decl_list", "param_decl", "_param_decl_no_gt", "_param_dcltor",
01453 "_param_direct_dcltor", "_func_suffix_clean",
01454 "_func_suffix_clean_no_scope_change", "_func_defn_dtc",
01455 "_func_defn_in_nmspc_scope", "_func_defn_in_class_scope", "_pack_body",
01456 "_packed_compound_stmt", "_ctor_defn_tail", "_func_defn_tail",
01457 "_func_defn_in_class_tail", "inizer_clause", "comma_opt", "inizer_list",
01458 "try_block", "func_try_block", "handler_seq", "handler",
01459 "_func_handler_seq", "excptn_decl", "throw_expr", "excptn_spec_opt",
01460 "excptn_spec", "type_id_list", "_assign_expr_no_gt", "_cond_expr_no_gt",
01461 "_log_or_expr_no_gt", "_log_and_expr_no_gt", "_or_expr_no_gt",
01462 "_xor_expr_no_gt", "_and_expr_no_gt", "_eq_expr_no_gt",
01463 "_rel_expr_no_gt", 0
01464 };
01465 #endif
01466
01467 # ifdef YYPRINT
01468
01469
01470 static const yytype_uint16 yytoknum[] =
01471 {
01472 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
01473 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
01474 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
01475 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
01476 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
01477 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
01478 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
01479 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
01480 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
01481 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
01482 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
01483 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
01484 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
01485 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
01486 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
01487 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
01488 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
01489 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
01490 435, 436, 437, 438, 439, 440, 441, 442, 443, 444
01491 };
01492 # endif
01493
01494
01495 static const yytype_uint16 yyr1[] =
01496 {
01497 0, 190, 191, 192, 193, 194, 195, 196, 197, 198,
01498 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
01499 209, 210, 211, 212, 213, 214, 215, 215, 215, 215,
01500 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
01501 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
01502 216, 216, 216, 216, 216, 216, 216, 216, 216, 217,
01503 218, 219, 219, 219, 220, 220, 221, 221, 221, 221,
01504 222, 222, 222, 223, 224, 225, 226, 226, 227, 228,
01505 228, 228, 229, 230, 231, 232, 233, 234, 235, 235,
01506 236, 236, 237, 237, 238, 238, 238, 238, 238, 238,
01507 238, 238, 238, 238, 239, 240, 241, 241, 242, 242,
01508 242, 242, 242, 242, 243, 243, 243, 243, 243, 243,
01509 244, 245, 245, 246, 247, 247, 247, 247, 247, 247,
01510 247, 247, 247, 247, 247, 247, 247, 248, 248, 249,
01511 249, 250, 250, 251, 251, 252, 252, 253, 253, 254,
01512 254, 254, 255, 255, 255, 255, 255, 256, 256, 256,
01513 257, 257, 257, 258, 258, 258, 258, 259, 259, 259,
01514 260, 260, 261, 261, 261, 261, 261, 261, 261, 261,
01515 261, 261, 261, 261, 261, 262, 262, 262, 262, 262,
01516 262, 262, 262, 263, 263, 264, 264, 264, 265, 265,
01517 266, 266, 267, 267, 267, 267, 268, 268, 268, 268,
01518 268, 268, 268, 268, 268, 268, 268, 268, 268, 268,
01519 268, 268, 268, 268, 268, 268, 268, 269, 269, 269,
01520 270, 270, 270, 270, 270, 271, 271, 271, 272, 272,
01521 273, 273, 274, 274, 275, 275, 275, 276, 276, 277,
01522 277, 277, 278, 278, 278, 278, 278, 278, 278, 278,
01523 278, 278, 278, 278, 279, 279, 279, 280, 280, 280,
01524 280, 280, 280, 280, 281, 281, 281, 281, 281, 281,
01525 281, 281, 282, 282, 282, 282, 283, 284, 284, 284,
01526 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
01527 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
01528 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
01529 284, 284, 284, 284, 284, 284, 284, 284, 284, 285,
01530 285, 286, 286, 287, 287, 288, 288, 288, 288, 288,
01531 288, 289, 289, 290, 290, 291, 292, 293, 293, 293,
01532 293, 293, 293, 293, 293, 293, 294, 294, 294, 294,
01533 294, 294, 294, 295, 295, 295, 295, 295, 295, 296,
01534 296, 297, 297, 298, 298, 299, 299, 300, 300, 301,
01535 302, 303, 303, 304, 304, 304, 305, 305, 305, 305,
01536 306, 306, 307, 307, 308, 309, 309, 309, 309, 309,
01537 310, 310, 310, 310, 310, 311, 311, 311, 312, 313,
01538 313, 313, 313, 313, 313, 313, 313, 313, 313, 314,
01539 314, 315, 315, 315, 315, 315, 315, 315, 315, 316,
01540 317, 317, 317, 317, 318, 319, 319, 319, 319, 319,
01541 319, 319, 319, 319, 319, 320, 320, 321, 321, 322,
01542 322, 323, 323, 323, 323, 323, 323, 323, 323, 323,
01543 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
01544 325, 325, 326, 326, 327, 327, 328, 329, 329, 330,
01545 330, 331, 331, 331, 332, 333, 333, 333, 334, 334,
01546 335, 335, 335, 335, 336, 337, 337, 337, 338, 338,
01547 339, 340, 340, 341, 342, 342, 343, 343, 344, 344,
01548 344, 344, 344, 344, 344, 344, 344, 344, 345, 345,
01549 346, 346, 346, 347, 347, 348, 349, 349, 350, 350,
01550 351, 351, 351, 351, 352, 352, 353, 353, 354, 355,
01551 355, 355, 356, 357, 358, 358, 359, 359, 359, 359,
01552 359, 359, 359, 359, 359, 359, 359, 359, 360, 360,
01553 361, 361, 361, 362, 362, 363, 363, 364, 364, 365,
01554 365, 365, 365, 365, 365, 366, 366, 367, 367, 368,
01555 368, 369, 369, 370, 370, 370, 371, 372, 372, 373,
01556 373, 374, 375, 375, 376, 376, 377, 378, 378, 379,
01557 379, 379, 380, 380, 381, 381, 381, 381, 381, 382,
01558 382, 383, 383, 383, 383, 384, 385, 385, 386, 386,
01559 386, 386, 386, 387, 387, 388, 388, 389, 389, 389,
01560 390, 390, 390, 390, 391, 391, 391, 392, 392, 392,
01561 392, 392, 393, 393, 394, 394, 394, 394, 394, 395,
01562 395, 396, 396, 396, 396, 397, 397, 397, 397, 398,
01563 398, 398, 399, 399, 399, 399, 399, 399, 399, 400,
01564 400, 401, 401, 402, 402, 403, 403, 403, 403, 404,
01565 404, 404, 404, 405, 406, 407, 407, 408, 408, 409,
01566 409, 410, 410, 410, 411, 411, 412, 412, 413, 414,
01567 415, 415, 416, 417, 417, 418, 418, 418, 419, 419,
01568 420, 420, 421, 421, 422, 422, 423, 423, 423, 423,
01569 423, 423, 423, 423, 423, 423, 423, 423, 424, 424,
01570 425, 425, 426, 426, 427, 427, 428, 428, 429, 429,
01571 430, 430, 430, 431, 431, 431, 431
01572 };
01573
01574
01575 static const yytype_uint8 yyr2[] =
01576 {
01577 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
01578 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01579 1, 1, 0, 1, 0, 1, 0, 2, 1, 1,
01580 4, 4, 4, 2, 2, 3, 2, 3, 3, 3,
01581 4, 3, 6, 3, 6, 2, 4, 2, 2, 3,
01582 3, 2, 5, 5, 5, 5, 5, 5, 5, 2,
01583 1, 2, 3, 2, 1, 2, 2, 3, 6, 2,
01584 3, 6, 2, 5, 1, 3, 1, 1, 2, 9,
01585 11, 10, 1, 1, 1, 5, 1, 5, 2, 2,
01586 1, 2, 2, 1, 1, 3, 2, 2, 3, 3,
01587 1, 7, 2, 1, 3, 1, 1, 1, 2, 2,
01588 2, 2, 1, 4, 2, 2, 2, 2, 2, 4,
01589 2, 1, 3, 1, 1, 3, 3, 3, 3, 3,
01590 3, 3, 3, 3, 3, 3, 1, 1, 5, 1,
01591 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
01592 3, 3, 1, 3, 3, 3, 3, 1, 3, 3,
01593 1, 3, 3, 1, 3, 3, 3, 1, 3, 3,
01594 1, 6, 1, 2, 2, 2, 2, 2, 2, 2,
01595 2, 4, 6, 1, 1, 3, 8, 4, 9, 7,
01596 10, 8, 11, 2, 3, 1, 2, 1, 3, 4,
01597 3, 5, 1, 1, 3, 3, 1, 1, 5, 1,
01598 4, 2, 2, 2, 2, 3, 3, 3, 3, 2,
01599 2, 7, 7, 7, 7, 6, 6, 4, 4, 6,
01600 1, 1, 1, 1, 1, 2, 2, 2, 2, 3,
01601 1, 3, 1, 1, 3, 3, 4, 4, 5, 2,
01602 3, 5, 1, 1, 1, 2, 1, 1, 1, 1,
01603 1, 2, 1, 2, 2, 3, 5, 1, 1, 1,
01604 1, 2, 1, 2, 2, 3, 3, 2, 3, 4,
01605 3, 6, 2, 3, 1, 2, 3, 1, 1, 3,
01606 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01607 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01608 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01609 1, 1, 1, 1, 1, 1, 1, 2, 2, 3,
01610 4, 1, 2, 1, 3, 2, 2, 3, 4, 4,
01611 5, 1, 1, 1, 2, 2, 1, 1, 1, 1,
01612 5, 6, 2, 5, 5, 3, 1, 1, 5, 5,
01613 1, 4, 3, 1, 5, 5, 1, 4, 3, 3,
01614 4, 3, 4, 3, 2, 3, 2, 1, 3, 1,
01615 1, 1, 1, 1, 2, 2, 1, 2, 2, 2,
01616 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
01617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01618 4, 5, 2, 3, 4, 5, 1, 2, 3, 1,
01619 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01620 5, 5, 6, 6, 1, 2, 3, 2, 3, 4,
01621 5, 3, 5, 4, 6, 1, 1, 1, 2, 1,
01622 1, 2, 3, 2, 2, 3, 4, 3, 3, 6,
01623 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01624 1, 1, 1, 3, 1, 3, 4, 2, 3, 1,
01625 1, 4, 5, 6, 1, 1, 1, 1, 1, 1,
01626 1, 2, 2, 3, 2, 2, 4, 3, 2, 3,
01627 3, 1, 3, 1, 2, 3, 1, 2, 1, 2,
01628 3, 2, 1, 1, 1, 5, 6, 3, 4, 6,
01629 1, 1, 2, 1, 3, 2, 1, 3, 1, 1,
01630 1, 1, 3, 3, 3, 1, 2, 1, 4, 1,
01631 3, 3, 3, 1, 1, 3, 2, 3, 3, 4,
01632 4, 5, 5, 6, 4, 5, 5, 6, 1, 1,
01633 1, 1, 1, 1, 1, 1, 3, 3, 3, 2,
01634 4, 2, 4, 6, 8, 3, 3, 1, 3, 3,
01635 3, 1, 3, 1, 3, 5, 1, 1, 1, 1,
01636 3, 1, 1, 3, 2, 3, 2, 2, 3, 2,
01637 3, 1, 1, 2, 2, 2, 4, 3, 4, 1,
01638 2, 1, 2, 2, 3, 3, 1, 2, 1, 2,
01639 1, 4, 5, 2, 3, 1, 1, 1, 2, 2,
01640 1, 2, 2, 2, 1, 1, 2, 3, 1, 2,
01641 1, 2, 1, 1, 1, 1, 1, 2, 3, 1,
01642 3, 2, 4, 1, 3, 2, 4, 1, 3, 1,
01643 1, 2, 2, 2, 3, 2, 1, 2, 5, 6,
01644 7, 4, 5, 2, 2, 2, 3, 1, 2, 2,
01645 3, 1, 2, 1, 4, 2, 4, 2, 2, 2,
01646 2, 1, 4, 2, 0, 1, 1, 3, 3, 3,
01647 2, 3, 5, 1, 2, 2, 1, 1, 2, 1,
01648 1, 1, 3, 4, 1, 3, 1, 3, 3, 3,
01649 3, 3, 3, 3, 3, 3, 3, 3, 1, 5,
01650 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
01651 1, 3, 3, 1, 3, 3, 3
01652 };
01653
01654
01655
01656
01657 static const yytype_uint16 yydefact[] =
01658 {
01659 26, 24, 24, 24, 24, 0, 24, 24, 24, 24,
01660 24, 0, 24, 24, 24, 0, 24, 24, 24, 0,
01661 0, 0, 24, 0, 24, 0, 28, 29, 0, 400,
01662 462, 460, 485, 445, 469, 408, 407, 0, 403, 468,
01663 398, 405, 464, 465, 404, 24, 401, 463, 466, 402,
01664 486, 24, 399, 24, 487, 467, 24, 406, 450, 446,
01665 461, 356, 24, 24, 25, 3, 64, 27, 0, 416,
01666 60, 24, 24, 343, 347, 357, 24, 381, 382, 24,
01667 383, 386, 390, 395, 397, 24, 392, 393, 0, 434,
01668 396, 409, 449, 394, 349, 0, 360, 24, 484, 0,
01669 0, 592, 677, 348, 206, 0, 0, 0, 24, 0,
01670 207, 24, 0, 24, 24, 24, 24, 24, 24, 24,
01671 24, 24, 64, 0, 0, 121, 124, 137, 139, 141,
01672 143, 145, 147, 149, 152, 157, 160, 163, 167, 170,
01673 183, 184, 172, 0, 209, 0, 0, 136, 0, 403,
01674 0, 24, 0, 34, 363, 24, 379, 24, 393, 366,
01675 24, 33, 24, 24, 0, 425, 424, 423, 422, 427,
01676 426, 421, 428, 36, 0, 0, 0, 627, 447, 24,
01677 630, 0, 24, 625, 626, 0, 24, 24, 45, 24,
01678 0, 0, 24, 0, 24, 240, 0, 743, 47, 716,
01679 728, 730, 732, 734, 736, 738, 740, 48, 24, 24,
01680 24, 0, 24, 0, 24, 380, 393, 51, 24, 12,
01681 24, 2, 59, 1, 0, 0, 24, 24, 477, 24,
01682 352, 0, 24, 24, 0, 0, 0, 0, 4, 65,
01683 10, 454, 453, 451, 0, 0, 0, 0, 0, 601,
01684 597, 344, 0, 618, 620, 24, 0, 22, 0, 581,
01685 583, 24, 586, 602, 24, 616, 675, 345, 385, 388,
01686 389, 384, 387, 391, 678, 412, 423, 427, 428, 24,
01687 419, 0, 0, 420, 374, 24, 24, 417, 427, 24,
01688 24, 435, 0, 0, 346, 24, 594, 0, 24, 673,
01689 674, 24, 24, 24, 18, 0, 24, 708, 24, 179,
01690 180, 175, 178, 177, 176, 14, 0, 174, 173, 24,
01691 24, 10, 0, 267, 272, 268, 264, 0, 270, 284,
01692 269, 24, 35, 24, 24, 24, 24, 24, 24, 24,
01693 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
01694 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
01695 24, 24, 24, 24, 24, 24, 24, 24, 24, 220,
01696 219, 211, 214, 213, 212, 0, 0, 24, 0, 0,
01697 583, 376, 0, 437, 0, 123, 137, 63, 61, 41,
01698 412, 0, 0, 628, 448, 631, 417, 0, 0, 629,
01699 632, 633, 43, 0, 0, 0, 37, 38, 24, 24,
01700 0, 24, 39, 24, 24, 24, 24, 24, 24, 24,
01701 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
01702 24, 24, 24, 24, 24, 645, 64, 24, 0, 646,
01703 649, 24, 25, 0, 0, 666, 24, 0, 659, 569,
01704 24, 571, 50, 49, 24, 655, 0, 0, 0, 0,
01705 84, 0, 74, 24, 0, 0, 86, 24, 24, 0,
01706 103, 105, 94, 88, 0, 0, 0, 0, 24, 0,
01707 0, 0, 0, 89, 112, 24, 100, 24, 90, 107,
01708 106, 93, 0, 24, 24, 355, 9, 478, 24, 21,
01709 0, 0, 565, 0, 8, 24, 0, 0, 254, 253,
01710 252, 0, 258, 256, 262, 257, 259, 479, 0, 260,
01711 480, 0, 0, 593, 595, 24, 274, 24, 0, 452,
01712 277, 599, 0, 24, 458, 457, 455, 0, 0, 598,
01713 596, 619, 24, 611, 0, 609, 24, 0, 249, 0,
01714 604, 24, 373, 0, 24, 687, 688, 24, 24, 331,
01715 0, 676, 0, 605, 22, 603, 617, 0, 0, 24,
01716 413, 0, 0, 24, 429, 24, 0, 441, 560, 561,
01717 562, 24, 0, 436, 544, 24, 0, 418, 427, 428,
01718 438, 362, 24, 5, 24, 0, 683, 0, 0, 0,
01719 0, 24, 0, 0, 15, 0, 24, 24, 0, 200,
01720 24, 185, 24, 288, 287, 0, 300, 299, 295, 294,
01721 293, 292, 291, 313, 312, 297, 296, 298, 324, 0,
01722 301, 326, 325, 315, 314, 319, 318, 320, 321, 317,
01723 316, 323, 322, 311, 310, 309, 308, 307, 306, 305,
01724 304, 303, 302, 10, 273, 271, 24, 0, 265, 0,
01725 282, 285, 122, 0, 125, 140, 135, 134, 133, 132,
01726 131, 130, 129, 128, 127, 126, 142, 144, 146, 148,
01727 151, 150, 154, 153, 156, 155, 159, 158, 162, 161,
01728 166, 165, 164, 169, 168, 24, 0, 215, 217, 0,
01729 202, 203, 0, 238, 0, 216, 218, 0, 24, 0,
01730 375, 368, 62, 418, 24, 24, 46, 24, 0, 638,
01731 24, 624, 634, 640, 40, 32, 241, 0, 717, 731,
01732 727, 726, 725, 724, 723, 722, 721, 720, 719, 718,
01733 733, 735, 737, 739, 742, 741, 744, 746, 745, 24,
01734 651, 30, 24, 647, 64, 643, 0, 0, 0, 662,
01735 663, 0, 661, 31, 24, 667, 665, 24, 0, 0,
01736 24, 658, 24, 0, 96, 97, 0, 0, 64, 0,
01737 77, 24, 0, 0, 102, 24, 118, 107, 24, 108,
01738 114, 109, 115, 78, 24, 110, 116, 24, 111, 117,
01739 91, 92, 0, 0, 0, 0, 0, 0, 24, 24,
01740 24, 24, 24, 234, 233, 232, 0, 231, 0, 0,
01741 230, 227, 228, 0, 361, 0, 263, 255, 261, 252,
01742 0, 256, 259, 0, 481, 329, 20, 0, 0, 577,
01743 276, 275, 600, 7, 0, 278, 456, 280, 0, 22,
01744 613, 612, 610, 24, 10, 250, 582, 24, 24, 691,
01745 584, 0, 0, 0, 0, 332, 333, 685, 22, 607,
01746 414, 0, 0, 0, 24, 0, 0, 24, 0, 508,
01747 24, 64, 0, 24, 24, 393, 514, 24, 0, 24,
01748 24, 528, 0, 490, 513, 0, 520, 523, 521, 526,
01749 0, 529, 589, 591, 681, 512, 476, 24, 563, 564,
01750 24, 546, 0, 0, 24, 559, 558, 24, 410, 0,
01751 443, 24, 439, 0, 0, 703, 699, 0, 0, 0,
01752 0, 181, 24, 0, 24, 24, 0, 0, 24, 19,
01753 0, 187, 193, 0, 0, 328, 327, 286, 0, 273,
01754 283, 24, 24, 254, 253, 0, 0, 0, 0, 210,
01755 239, 0, 0, 367, 0, 0, 0, 0, 0, 636,
01756 639, 641, 24, 654, 24, 648, 650, 615, 664, 24,
01757 570, 0, 572, 656, 52, 56, 57, 55, 58, 54,
01758 53, 0, 99, 98, 16, 0, 0, 698, 24, 95,
01759 75, 24, 0, 0, 13, 0, 0, 104, 358, 24,
01760 354, 359, 567, 568, 353, 350, 566, 0, 237, 235,
01761 236, 369, 0, 0, 263, 255, 482, 330, 24, 24,
01762 575, 576, 24, 0, 279, 614, 608, 0, 621, 10,
01763 0, 693, 696, 694, 0, 336, 335, 0, 0, 0,
01764 24, 606, 415, 0, 0, 470, 474, 0, 471, 472,
01765 0, 24, 430, 24, 0, 0, 0, 501, 503, 0,
01766 494, 522, 682, 511, 0, 431, 492, 0, 0, 0,
01767 0, 530, 535, 531, 0, 539, 525, 543, 679, 495,
01768 509, 24, 24, 491, 0, 442, 0, 547, 548, 0,
01769 545, 0, 411, 24, 440, 24, 24, 704, 684, 24,
01770 24, 24, 0, 24, 0, 0, 24, 208, 201, 24,
01771 24, 24, 194, 197, 195, 290, 289, 0, 266, 138,
01772 0, 204, 205, 243, 242, 245, 24, 0, 0, 244,
01773 364, 365, 42, 44, 0, 637, 24, 729, 652, 0,
01774 24, 24, 24, 24, 72, 24, 24, 700, 120, 113,
01775 119, 24, 24, 24, 24, 24, 351, 0, 0, 229,
01776 24, 370, 483, 579, 580, 0, 578, 459, 252, 0,
01777 256, 259, 251, 622, 585, 24, 0, 686, 337, 0,
01778 0, 0, 334, 0, 432, 24, 433, 0, 24, 0,
01779 0, 506, 0, 0, 504, 497, 500, 0, 24, 458,
01780 457, 455, 256, 0, 517, 493, 24, 249, 24, 510,
01781 0, 24, 24, 689, 690, 680, 24, 524, 588, 0,
01782 501, 377, 587, 591, 527, 590, 550, 0, 0, 549,
01783 554, 0, 0, 444, 6, 24, 707, 24, 0, 0,
01784 0, 0, 182, 0, 225, 226, 171, 0, 0, 0,
01785 24, 196, 273, 0, 11, 247, 246, 24, 0, 710,
01786 24, 671, 711, 668, 573, 0, 70, 24, 87, 701,
01787 73, 0, 82, 24, 83, 24, 85, 237, 235, 371,
01788 24, 281, 263, 255, 697, 692, 338, 339, 0, 475,
01789 473, 0, 24, 500, 507, 506, 0, 505, 496, 0,
01790 456, 518, 534, 24, 24, 532, 537, 533, 539, 541,
01791 540, 542, 0, 0, 24, 498, 551, 552, 0, 555,
01792 556, 0, 24, 669, 705, 0, 224, 221, 223, 222,
01793 189, 24, 198, 0, 248, 24, 672, 24, 0, 0,
01794 24, 24, 17, 24, 0, 372, 340, 24, 515, 507,
01795 0, 0, 538, 536, 499, 502, 378, 553, 557, 670,
01796 702, 191, 24, 186, 199, 712, 714, 0, 0, 574,
01797 101, 24, 24, 0, 24, 24, 69, 66, 24, 516,
01798 459, 519, 0, 188, 24, 713, 0, 71, 0, 24,
01799 67, 24, 0, 190, 715, 24, 0, 0, 79, 192,
01800 0, 81, 24, 80, 68
01801 };
01802
01803
01804 static const yytype_int16 yydefgoto[] =
01805 {
01806 -1, 219, 64, 239, 594, 1245, 844, 505, 497, 525,
01807 1265, 220, 1005, 316, 605, 995, 1353, 305, 940, 837,
01808 768, 550, 443, 65, 122, 25, 26, 27, 67, 173,
01809 123, 1354, 996, 474, 475, 476, 779, 477, 478, 1281,
01810 1285, 479, 480, 481, 482, 222, 483, 484, 485, 486,
01811 487, 488, 489, 490, 1002, 780, 384, 125, 126, 127,
01812 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
01813 138, 139, 140, 611, 1122, 1123, 141, 697, 142, 143,
01814 821, 822, 371, 196, 956, 698, 699, 257, 548, 144,
01815 326, 292, 519, 329, 653, 249, 560, 865, 866, 70,
01816 71, 72, 293, 73, 74, 153, 506, 1022, 75, 154,
01817 1227, 155, 437, 76, 77, 78, 157, 80, 81, 82,
01818 83, 84, 85, 86, 282, 283, 575, 216, 88, 89,
01819 90, 179, 145, 92, 146, 1057, 1058, 1059, 94, 95,
01820 521, 96, 181, 98, 888, 889, 890, 891, 1228, 892,
01821 1229, 1230, 1068, 1204, 893, 894, 895, 896, 897, 898,
01822 899, 1080, 1081, 1315, 1082, 1083, 1084, 1085, 583, 584,
01823 917, 585, 910, 501, 502, 213, 567, 838, 839, 258,
01824 259, 380, 1231, 901, 902, 99, 100, 261, 101, 250,
01825 262, 263, 1087, 545, 445, 264, 265, 191, 192, 183,
01826 184, 721, 722, 756, 968, 439, 440, 217, 447, 448,
01827 296, 723, 102, 103, 905, 597, 299, 561, 266, 1088,
01828 860, 1186, 1043, 491, 300, 997, 925, 926, 1248, 147,
01829 1271, 1272, 1377, 198, 199, 200, 201, 202, 203, 204,
01830 205, 206
01831 };
01832
01833
01834
01835 #define YYPACT_NINF -1172
01836 static const yytype_int16 yypact[] =
01837 {
01838 3606, 3646, 3128, 3751, 4291, 1475, 3128, 3429, 3128, 3429,
01839 3322, -64, 3128, 3429, 3429, -43, 3128, 3369, 3429, -5,
01840 92, 198, 4291, 137, -1172, 167, -1172, -1172, 171, -1172,
01841 -1172, -1172, -1172, -1172, -1172, -1172, -1172, 341, 434, -1172,
01842 -1172, -1172, -1172, -1172, -1172, 1492, -1172, -1172, -1172, -1172,
01843 -1172, 3526, -1172, 275, -1172, -1172, 43, -1172, -1172, -1172,
01844 -1172, -1172, -17, -1172, -1172, -1172, 41, -1172, 571, -1172,
01845 -1172, 2321, 737, -1172, -1172, -1172, -1172, 2889, 4581, 4035,
01846 -1172, -1172, -1172, -1172, -1172, 1595, -1172, 323, 334, -1172,
01847 -1172, -1172, -1172, -1172, -1172, 410, -1172, 385, -1172, 369,
01848 83, -1172, -1172, -1172, -1172, 447, 478, 523, -1172, 538,
01849 -1172, 2715, 552, 3369, 3369, 3369, 3369, 3369, 3369, -1172,
01850 3369, 3369, -1172, 2454, 532, -1172, -1172, 3065, 556, 590,
01851 613, 605, 449, 372, 488, 623, 432, 470, -1172, -1172,
01852 -1172, -1172, 325, 620, -1172, 620, 620, -1172, 643, -1172,
01853 1492, 79, 1155, -1172, -1172, 586, -1172, 4291, 632, -1172,
01854 385, -1172, 385, 3369, 664, -1172, -1172, -1172, -1172, -1172,
01855 -1172, -1172, -1172, -1172, 672, 218, 310, -1172, -1172, 3429,
01856 -1172, 77, 586, 125, 1666, 624, 586, -1172, -1172, 3429,
01857 360, 683, -1172, 696, 3128, -1172, 461, 488, -1172, -1172,
01858 3080, 710, 732, 749, 756, 512, 143, -1172, 2576, 387,
01859 1492, 760, 1492, 394, 289, -1172, -1172, -1172, 2576, -1172,
01860 1771, -1172, -1172, -1172, 915, 780, 3586, -1172, 771, -1172,
01861 -1172, 581, -1172, 275, 2642, 640, 652, 787, -1172, -1172,
01862 -1172, -1172, -1172, 752, 798, 798, 772, 751, 723, -1172,
01863 -1172, -1172, 369, 125, -1172, 762, 2979, -1172, 686, -1172,
01864 96, 72, -1172, 165, 586, -1172, -1172, -1172, -1172, -1172,
01865 -1172, -1172, -1172, -1172, -1172, 804, 752, 798, 772, -1172,
01866 -1172, 627, 807, -1172, -1172, -1172, 3646, 345, 798, 133,
01867 -1172, -1172, 1862, 808, 272, -1172, -1172, 814, -1172, -1172,
01868 -1172, 3429, 3429, 3429, -1172, 792, 3429, -1172, -1172, -1172,
01869 -1172, -1172, -1172, -1172, -1172, -1172, 908, -1172, -1172, 3175,
01870 2044, 4401, 798, -1172, 798, -1172, -1172, 2430, -1172, 135,
01871 -1172, 3128, -1172, 3128, 3128, 3369, 3128, 3128, 3128, 3128,
01872 3128, 3128, 3128, 3128, 3128, 3128, 3369, 3369, 3369, 3369,
01873 3369, 3369, 3369, 3369, 3369, 3369, 3369, 3369, 3369, 3369,
01874 3369, 3369, 3369, 3369, 3369, 11, 3128, 2406, 11, -1172,
01875 -1172, -1172, -1172, -1172, -1172, 970, 817, -1172, 986, 699,
01876 38, -1172, 823, 822, 824, -1172, 277, -1172, -1172, -1172,
01877 -1172, 752, 798, -1172, -1172, -1172, 752, 454, 827, -1172,
01878 -1172, -1172, -1172, 829, 928, 865, -1172, -1172, 534, 3369,
01879 479, 3128, -1172, 3128, 3369, 3369, 3369, 3369, 3369, 3369,
01880 3369, 3369, 3369, 3369, 3369, 3369, 3369, 3369, 3369, 3369,
01881 3369, 3369, 3369, 3369, 3369, -1172, 868, 1213, 876, 355,
01882 -1172, 3369, 49, 105, 2979, -1172, 1265, 878, 203, 882,
01883 -1172, 884, -1172, -1172, 3369, 892, 902, 907, 912, 1771,
01884 -1172, 1492, -1172, 3128, 922, 932, -1172, 3128, 3751, 1475,
01885 -1172, -1172, -1172, -1172, 1771, 949, 1771, 1771, -1172, 951,
01886 1771, 958, 1771, 1771, -1172, -1172, -1172, -1172, -1172, -1172,
01887 -1172, -1172, 973, -1172, 3646, -1172, -1172, -1172, -1172, -1172,
01888 210, 399, -1172, 2836, -1172, 275, 979, 581, -1172, -1172,
01889 752, 798, -1172, 798, 798, -1172, 772, -1172, 2575, -1172,
01890 -1172, 989, 677, -1172, -1172, 3429, -1172, -1172, 957, 962,
01891 -1172, -1172, 798, -1172, -1172, -1172, 964, 798, 968, -1172,
01892 -1172, 125, 762, -1172, 999, 282, 762, 4401, -1172, 1849,
01893 -1172, 586, -1172, 1004, 2981, -1172, -1172, 997, 62, -1172,
01894 814, -1172, 369, -1172, -1172, 165, -1172, 962, 1146, -1172,
01895 -1172, 964, 798, -1172, -1172, 3811, 1009, 126, -1172, -1172,
01896 -1172, 1053, 998, 1011, -1172, 1120, 1121, 228, 798, 968,
01897 1025, -1172, 133, -1172, 2576, 1182, -1172, 1054, 1049, 1050,
01898 1052, 3322, 1043, 1057, -1172, 866, 3429, 3128, 1068, -1172,
01899 -1172, 620, -1172, 1070, 1071, 1089, -1172, -1172, -1172, -1172,
01900 -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, 1073,
01901 -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172,
01902 -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172,
01903 -1172, -1172, -1172, -1172, 957, -1172, -1172, 798, -1172, 798,
01904 -1172, -1172, -1172, 270, -1172, 556, -1172, -1172, -1172, -1172,
01905 -1172, -1172, -1172, -1172, -1172, -1172, 590, 613, 605, 449,
01906 372, 372, 488, 488, 488, 488, 623, 623, 432, 432,
01907 470, 470, 470, -1172, -1172, -1172, 2101, -1172, -1172, 1084,
01908 -1172, -1172, 21, -1172, 517, -1172, -1172, 1079, -1172, 1085,
01909 -1172, -1172, -1172, 964, 3128, 3128, -1172, 3941, 581, -1172,
01910 1300, -1172, 203, -1172, -1172, -1172, -1172, 436, -1172, 710,
01911 -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172,
01912 732, 749, 756, 512, 143, 143, 488, 488, 488, 3128,
01913 1081, -1172, 4165, -1172, 1104, -1172, 1109, 1094, 1105, -1172,
01914 -1172, 420, 203, -1172, 2576, -1172, -1172, 3429, 914, 403,
01915 3429, -1172, 3369, 509, -1172, -1172, 1194, 1110, 873, 1111,
01916 1112, -1172, 1182, 709, -1172, -1172, -1172, 1249, -1172, -1172,
01917 -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172,
01918 -1172, -1172, 1116, 1115, 444, 1122, 1119, 198, 4291, 3646,
01919 3646, -1172, -1172, -1172, -1172, 964, 798, -1172, 798, 798,
01920 -1172, -1172, -1172, 1203, -1172, 2575, 957, 962, -1172, 964,
01921 798, 798, 968, 1123, -1172, 246, -1172, 47, 455, -1172,
01922 -1172, -1172, -1172, -1172, 1211, -1172, 1098, -1172, 1127, -1172,
01923 -1172, -1172, 282, -1172, 125, -1172, -1172, 3128, 2787, -1172,
01924 -1172, 814, 620, 620, 1164, 1138, -1172, -1172, -1172, -1172,
01925 -1172, 1015, 1223, 1098, 1579, 1245, 1153, 61, 1148, -1172,
01926 81, 1149, 571, -1172, 4228, 1150, -1172, 385, 1154, 3870,
01927 409, -1172, 369, -1172, -1172, 1157, -1172, 1151, -1172, 1158,
01928 1156, -1172, 1159, 83, -1172, -1172, -1172, 133, -1172, -1172,
01929 275, 752, 798, 819, 133, -1172, -1172, 275, 752, 900,
01930 227, 133, 1011, 1163, 1152, -1172, 1182, 1161, 1165, 1170,
01931 1171, -1172, 3429, 1174, 3128, 3429, 1187, 580, 3369, -1172,
01932 630, -1172, 724, 1183, 1184, -1172, -1172, -1172, 515, -1172,
01933 -1172, 3128, 275, 1162, 1169, 925, 1173, 1970, 971, -1172,
01934 -1172, 1193, 1199, -1172, 1206, 1200, 1155, 1208, 1210, 203,
01935 -1172, -1172, 3369, -1172, 3128, -1172, -1172, -1172, -1172, 387,
01936 -1172, 1339, -1172, -1172, -1172, -1172, -1172, -1172, -1172, -1172,
01937 -1172, 1217, -1172, -1172, -1172, 124, 1212, 1182, -1172, -1172,
01938 -1172, -1172, 1771, 1214, -1172, 255, 1220, -1172, -1172, 3646,
01939 -1172, -1172, -1172, -1172, -1172, -1172, -1172, 628, -1172, 1098,
01940 -1172, 1196, 1294, 1227, -1172, 1098, -1172, 246, 3369, 3429,
01941 -1172, -1172, -1172, 798, -1172, -1172, -1172, 2991, -1172, 125,
01942 589, -1172, -1172, 1236, 1182, -1172, -1172, 109, 798, 931,
01943 62, -1172, -1172, 798, 1225, -1172, 1232, 1239, 1241, -1172,
01944 1247, -1172, -1172, 81, 867, 1251, 1253, 369, -1172, 2084,
01945 -1172, -1172, -1172, -1172, 1250, -1172, -1172, 1255, 1256, 2979,
01946 735, -1172, -1172, -1172, 947, 76, 65, -1172, -1172, -1172,
01947 -1172, 113, 113, -1172, 1408, 1011, 1177, 962, 964, 798,
01948 -1172, 1186, 964, 133, 1011, -1172, 4349, -1172, -1172, 3128,
01949 3128, 3128, 1266, 3128, 604, 1268, 3369, -1172, -1172, 3429,
01950 3128, 3128, -1172, 1288, 724, -1172, -1172, 798, -1172, -1172,
01951 2225, -1172, -1172, -1172, -1172, -1172, -1172, 925, 1252, -1172,
01952 -1172, -1172, -1172, -1172, 950, -1172, 318, -1172, -1172, 1278,
01953 1492, 3128, 3128, 3429, -1172, -1172, -1172, -1172, -1172, -1172,
01954 -1172, -1172, 3128, 4291, -1172, -1172, -1172, 798, 798, -1172,
01955 -1172, 1258, -1172, -1172, -1172, 982, -1172, 1260, -1172, 798,
01956 798, -1172, -1172, -1172, -1172, 2934, 1284, 1182, -1172, 154,
01957 214, 798, -1172, 1260, -1172, 3369, -1172, 1492, -1172, 456,
01958 1289, 752, 798, 930, -1172, -1172, -1172, 1297, -1172, 1285,
01959 1295, -30, 798, 1299, -1172, -1172, 3369, 1296, 462, -1172,
01960 1456, 3369, -1172, -1172, -1172, -1172, 113, 1307, -1172, 369,
01961 -1172, -1172, -1172, -1172, 1307, -1172, 752, 798, 1060, 1098,
01962 752, 798, 1087, 1011, -1172, 318, -1172, 676, 1306, 607,
01963 622, 678, -1172, 721, -1172, -1172, -1172, 1308, 741, 149,
01964 3369, 1288, 1260, 2322, -1172, -1172, -1172, -1172, 1310, -1172,
01965 318, -1172, -1172, -1172, 1305, 764, 1112, 586, -1172, -1172,
01966 -1172, 1313, 1112, -1172, -1172, -1172, -1172, 1260, -1172, -1172,
01967 -1172, -1172, 1260, -1172, -1172, -1172, -1172, -1172, 249, -1172,
01968 -1172, 472, 4098, 1314, 962, 964, 798, -1172, -1172, 3030,
01969 6, -1172, -1172, 3369, 3369, -1172, -1172, -1172, 1317, -1172,
01970 -1172, -1172, 1315, 961, 113, -1172, 962, 964, 798, 962,
01971 964, 798, 318, -1172, -1172, 932, -1172, -1172, -1172, -1172,
01972 620, 4377, -1172, 1340, -1172, 4431, -1172, 275, 1323, 1321,
01973 -1172, -1172, -1172, 283, 1326, -1172, -1172, 4098, -1172, 1098,
01974 798, 1330, -1172, -1172, -1172, -1172, -1172, 1098, 1098, -1172,
01975 -1172, -1172, 3429, 620, -1172, -1172, -1172, 770, 2979, -1172,
01976 -1172, 3128, -1172, 1335, 3128, 3429, -1172, -1172, 3128, -1172,
01977 27, -1172, 1337, -1172, 3429, -1172, 2633, -1172, 1341, 3128,
01978 1112, 586, 1342, 620, -1172, 3128, 1343, 1344, -1172, -1172,
01979 1345, -1172, 3128, -1172, -1172
01980 };
01981
01982
01983 static const yytype_int16 yypgoto[] =
01984 {
01985 -1172, 1454, -44, -78, -1172, -1172, -467, -1076, -1172, -597,
01986 230, -304, -1172, 1318, -1172, -1172, -1172, -1172, -1172, 474,
01987 1282, -481, -1172, 1405, -1, -1172, -1172, -1172, -1172, 1038,
01988 36, -1116, -471, -1172, -1172, -1172, -902, -1172, -1172, -1172,
01989 -1171, -1172, -1172, -1172, -1172, 1027, -1172, -1172, -1172, -459,
01990 -1172, 66, -400, -371, -1172, 57, -412, 10, -139, -15,
01991 1180, 1166, 1172, 1175, 1176, 755, 1856, 768, 775, 736,
01992 1226, 23, -1172, 177, -1172, 396, -1172, 1160, -1172, 726,
01993 -1172, 505, 424, -190, -833, 1185, -1172, -245, -220, -1172,
01994 -296, 881, -111, -1172, -1172, -93, 969, -1172, 477, -200,
01995 -1172, -1172, -133, -23, -1172, 1062, -313, -1172, -1172, -2,
01996 439, -1172, 0, 610, -1172, -1172, 4, -60, -12, -26,
01997 -1172, -1172, 356, 402, -194, 16, 959, 131, -1172, -1172,
01998 144, -238, 1100, -1172, 465, -1172, -1172, 336, -1172, -1172,
01999 -461, 8, 1431, -1172, -1172, -1172, -1172, -810, 311, -1172,
02000 -820, -770, -1172, 337, -866, -1172, -1172, -1172, -1172, 655,
02001 -1172, -1172, -1172, -1172, 333, 338, -1172, 339, -502, 638,
02002 -1172, -482, -1172, -414, 730, 763, 1487, -1172, 526, 1414,
02003 1021, -65, 250, -988, -1172, -49, -42, 685, -297, -239,
02004 -18, 1312, -182, 1032, -162, -167, -226, 209, -6, -1172,
02005 -1172, 862, 860, -1172, -127, -1172, 830, 777, -206, 1137,
02006 -135, -363, -62, -1172, -1172, -1172, -225, 500, -1172, -1172,
02007 -824, -1172, -1172, -1172, -235, -1172, -736, 543, -1172, -1172,
02008 -1090, -1172, -1172, -143, -1172, -1172, 1178, 1179, 1168, 1181,
02009 1167, 722
02010 };
02011
02012
02013
02014
02015
02016 #define YYTABLE_NINF -710
02017 static const yytype_int16 yytable[] =
02018 {
02019 66, 182, 161, 186, 410, 79, 782, 260, 455, 539,
02020 543, 159, 328, 236, 517, 541, 449, 274, 451, 271,
02021 237, 174, 214, 1076, 385, 556, 195, 382, 230, 755,
02022 330, 658, 267, 188, 1042, 555, 769, 68, 566, 152,
02023 152, -341, 446, 152, 227, 152, 998, 446, 251, 152,
02024 152, 268, 270, 273, 152, 79, 947, 833, 152, 124,
02025 1066, 228, 695, 175, 709, 185, 269, 272, 701, 190,
02026 1065, 701, 595, 544, 787, 79, 789, 791, 232, 804,
02027 795, 438, 798, 869, 280, 766, 576, 68, 546, 231,
02028 922, 456, 234, 900, 1289, 189, 291, 271, 235, 909,
02029 233, 564, 872, 1232, 1232, 790, 792, 68, 256, 796,
02030 1067, 799, 1351, 294, 377, 68, 194, 540, 233, 557,
02031 700, 307, 1135, 700, 1138, 1139, 557, -252, 553, 862,
02032 297, 273, 87, 863, 158, 158, 233, 297, 33, 1028,
02033 1029, 520, 62, -23, -23, 272, 396, 244, 386, 392,
02034 297, 178, 246, 178, 208, 1333, 845, 178, 178, 291,
02035 959, 291, 178, -255, 398, 442, 376, 223, 403, 63,
02036 442, 578, 579, 580, 793, 331, 294, 704, 383, 1382,
02037 1346, 801, 87, 496, -263, 806, 553, 234, 59, 948,
02038 1107, 256, 1034, 152, 581, 1030, -341, 63, 554, 757,
02039 758, 568, 87, 495, 195, 1152, 1153, 436, -23, 280,
02040 210, 280, 586, 1291, 1355, 152, 328, 436, 256, 473,
02041 566, -24, 256, 193, 760, 152, 558, 207, 952, 63,
02042 79, 750, 298, 558, 330, 1383, 1222, 659, 660, 298,
02043 1063, 720, 1369, 1200, 152, 444, 719, 63, 63, 211,
02044 444, 209, 298, 1065, 152, 212, 554, 1038, 1154, 562,
02045 559, 1156, 68, 290, 759, 63, 1398, 63, 367, 507,
02046 446, 728, 1226, 730, 731, 732, 733, 734, 735, 736,
02047 737, 738, 739, 539, 661, 66, 765, 907, 1342, -657,
02048 79, 256, 432, 1067, 805, 526, 218, 543, 517, 63,
02049 256, 543, 385, 331, 1266, 441, 807, 808, 590, 433,
02050 434, 771, 841, 367, 612, -24, -24, 1003, -24, 63,
02051 566, -24, 68, 394, 563, 582, 1006, 399, 400, 855,
02052 224, 33, 1162, 178, 1163, 867, 1232, 152, 152, 152,
02053 841, 662, 152, 441, 664, 1017, 666, 667, 668, 669,
02054 670, 671, 672, 673, 674, 675, 152, 87, 809, 971,
02055 848, 1294, 764, 176, 1023, 176, 1384, 1385, 1036, 176,
02056 176, 1268, 331, 367, 176, 546, 389, 195, 390, 391,
02057 244, 59, 392, 850, -423, 246, 1037, 1051, 1103, -423,
02058 663, 253, 225, 442, 978, 962, 254, 178, 405, 766,
02059 845, 696, 442, 564, 696, 1095, 1323, 1077, 367, 177,
02060 851, 177, 1164, 1034, 845, 177, 177, 87, 1386, 1104,
02061 177, 726, 441, 702, 331, 520, 386, 868, -437, 441,
02062 333, 951, 63, 592, 253, 1034, 1358, -657, 226, 254,
02063 754, 295, 1183, -657, 718, 178, 178, 178, 335, 454,
02064 178, 1107, 165, 166, 287, 244, 168, 288, 170, 171,
02065 278, 63, 778, 365, 178, 366, 93, 923, 93, 93,
02066 727, 569, 180, 444, 180, 63, 159, 777, 180, 180,
02067 284, 1000, 444, 180, 367, 174, 1402, 93, 368, 571,
02068 285, 1389, 572, 66, 566, 538, 279, 1406, 79, 369,
02069 370, -423, -423, 1410, 152, 569, -423, 252, 1078, 752,
02070 598, 599, 600, 904, 331, 603, 93, 753, 406, 835,
02071 352, 353, 33, 713, 783, 776, 572, 441, 295, 538,
02072 68, 526, 253, 903, -623, 176, 93, 254, 354, 355,
02073 786, 823, 452, 93, 93, 176, 289, 810, 453, 800,
02074 720, 981, 321, 811, 253, 719, 559, 811, 719, 254,
02075 970, 152, 984, 985, 859, 854, 286, 372, 542, 373,
02076 374, 290, 59, 63, 881, 360, 361, 362, 256, 884,
02077 908, 393, 256, 886, 916, 1127, 323, 256, 324, 325,
02078 331, 177, 1009, 436, 864, 63, 301, 972, 811, 158,
02079 765, 1243, 1159, 1031, 1302, 517, 971, 253, 240, 1032,
02080 811, 882, 254, 156, 156, 411, 1039, 350, 351, 412,
02081 1357, 542, 93, 1314, 931, 87, 811, 302, 582, 983,
02082 152, 1160, 215, 411, 363, 364, 1044, 725, 241, 242,
02083 243, 244, 152, 245, 395, 543, 246, 1199, 63, 401,
02084 391, 244, 1128, 392, 180, 1132, 246, 176, 176, 176,
02085 356, 357, 176, 986, 937, 987, 988, 1040, 1027, 178,
02086 989, 411, 303, 93, 441, 960, 176, 240, 569, 253,
02087 430, 431, -623, 93, 254, 394, 331, 306, -623, 332,
02088 850, 93, -623, 717, 1157, 570, 571, 1158, 1167, 572,
02089 1168, 819, 538, 177, 177, 177, 885, 1131, 177, 391,
02090 244, 308, 392, 247, 240, 246, 436, 851, 539, 1119,
02091 63, 1120, 177, 546, 964, 965, 346, 69, 569, 69,
02092 69, 253, 520, 69, 331, 69, 254, 855, 1117, 69,
02093 69, 1309, 347, 411, 69, 255, 571, 1184, 69, 572,
02094 178, 93, 538, 966, 1074, 349, 718, 1089, 331, 973,
02095 240, 331, 1254, 436, 348, 1336, 180, 180, 180, 358,
02096 359, 180, 63, 1149, 533, 1124, 331, 69, 331, 367,
02097 1337, 402, 247, 1299, 1301, 180, 1014, 1015, 152, 381,
02098 534, 535, 536, -24, -24, 537, -24, 69, 538, -24,
02099 152, 566, 375, 152, 1312, 69, 152, 970, 214, 1320,
02100 523, 295, 446, 79, 79, 936, 441, 1182, 215, 247,
02101 531, 253, 1072, 532, 271, 387, 254, 904, 215, 1147,
02102 539, 236, 331, 388, -706, 252, 1338, 328, 237, 1070,
02103 551, 407, 903, 552, 152, 68, 68, 903, 1343, 1213,
02104 1224, 1278, 1279, 551, 409, 330, 710, 1280, 273, 1217,
02105 1223, 1286, 63, 331, 1121, 247, 999, 195, 859, 253,
02106 569, 718, 272, 1055, 254, 331, 1370, 601, 602, 1339,
02107 426, 176, 253, 69, 427, 1173, 291, 254, 1098, 1218,
02108 1056, 1099, 1219, 884, 538, 411, 255, 886, 566, 1341,
02109 428, 1362, 1363, 294, 240, 69, 429, 253, 1270, 450,
02110 63, 178, 254, 234, 178, 69, 1064, 990, 331, 492,
02111 68, 542, 1348, 63, 1394, 882, 1079, 177, 1395, 493,
02112 1258, 498, 1207, 93, 69, 442, 1201, 244, 526, 1202,
02113 87, 87, 246, 582, 69, 524, 1096, 527, 63, 248,
02114 582, 569, 69, 1101, 934, 935, 1274, 582, 530, 93,
02115 -424, 1129, 176, 573, 539, 591, 281, 240, 152, 1102,
02116 298, 152, 572, 543, 707, 538, 980, 708, 718, 982,
02117 711, 569, 569, 592, 1148, 712, 1166, 714, 1130, 715,
02118 180, 1114, 1133, 1134, 531, 606, 607, 532, 178, 1305,
02119 1190, 533, 1306, 1191, 327, 538, 538, 1332, 177, 247,
02120 807, 808, 69, 79, 236, 444, 607, 534, 535, 536,
02121 885, 237, 537, 716, 539, 538, -644, 69, 69, 69,
02122 -76, -76, 69, 378, 751, 941, 763, 533, 1133, 1134,
02123 93, 1334, 767, 855, 770, 68, 69, 1220, 1221, 1233,
02124 1233, 546, 772, 534, 535, 536, 385, 281, 537, 93,
02125 773, 538, 397, 718, 774, 152, 569, 911, 244, 775,
02126 912, 180, 247, 246, 1028, 1029, 178, 385, 156, 178,
02127 446, 781, 385, 1052, 571, 559, 864, 572, 471, 1361,
02128 538, 578, 579, 580, 1325, 854, 690, 691, 692, 1064,
02129 1247, 91, 1379, 91, 91, 680, 681, 91, 788, 91,
02130 794, 569, 503, 91, 91, 518, 522, 797, 91, 1365,
02131 295, 385, 91, 176, 686, 687, 176, 1064, 1064, 1327,
02132 195, 803, 1328, 688, 689, 538, 824, 549, 569, 582,
02133 87, 1112, 152, 840, 1115, 1269, 834, 1277, 841, 280,
02134 845, 91, 744, 745, 847, 152, 1330, 849, 558, 1331,
02135 718, 1283, 538, 857, 906, 914, 1249, 1250, 1251, 177,
02136 1253, 91, 177, 178, 385, 385, 855, 236, 1259, 91,
02137 386, 915, 93, 394, 237, 883, 921, 927, 1325, 152,
02138 918, 244, 924, 392, 69, 859, 246, 928, 929, 152,
02139 930, 386, 932, 442, 215, 933, 386, 938, 1275, 1276,
02140 943, 944, 1349, 1056, 870, 391, 244, 93, 392, 1282,
02141 69, 246, 241, 242, 243, 244, 958, 245, 945, 93,
02142 246, 946, 180, 1047, 244, 180, 1048, 961, 1174, 246,
02143 904, 974, 963, -642, 1269, 386, 1236, 244, 977, 1237,
02144 178, 69, 246, 764, 1079, 1240, 244, 91, 1241, 991,
02145 903, 246, 1064, 178, 979, -660, 331, 992, 993, 1269,
02146 1001, 1007, 1008, 93, 93, 93, 1011, 1010, 1021, 91,
02147 1026, 1033, 1233, 444, 1034, 1035, 1045, 1046, 176, 91,
02148 178, 176, 1050, 1053, 158, 904, 1060, 178, 386, 386,
02149 -635, 69, 1061, 1062, -488, 1091, 884, 1073, 91, 1075,
02150 886, 1106, 1092, 256, 1090, 903, 1108, 1093, 91, 1094,
02151 69, 1105, 1125, 1126, 1109, 761, 91, 215, 1257, 1110,
02152 1111, 1269, 69, 1113, 177, 612, 1407, 177, 882, 309,
02153 310, 311, 312, 313, 314, 1116, 317, 318, -243, 93,
02154 1140, 1150, 1387, 441, 93, -242, 1141, 1143, 253, 1136,
02155 1064, 884, 215, 254, 1142, 886, 1145, -653, 1146, 1171,
02156 1155, -653, 1161, 749, 215, -653, 1151, 152, 1165, 1401,
02157 1194, 152, 1170, 1378, 1172, 176, 91, 778, 825, 178,
02158 1185, 1397, 1195, 882, 1196, 1197, 1198, 180, 778, 63,
02159 180, 91, 91, 91, 778, 441, 91, 1214, 152, 1205,
02160 253, 1206, 1235, -660, 394, 254, 1215, 1216, 215, -660,
02161 91, 152, 1414, -660, 1252, -660, 1255, -660, 1260, 221,
02162 152, 177, 97, 885, 160, 162, 1273, 256, 1267, 1295,
02163 441, 1400, -254, 69, 1290, 253, 1291, 1303, -635, 871,
02164 254, 63, -253, 162, -635, 1308, 1311, 1313, -635, 717,
02165 1319, 1324, 176, 913, 1335, 1347, 1340, 919, 221, 1345,
02166 1350, 1188, -502, 1364, 93, 176, 394, 1222, 69, 1374,
02167 1380, 1381, 97, 1388, 163, 178, 63, 1391, 885, 178,
02168 69, 164, 1399, 69, 180, 1403, 69, 1344, 1405, 883,
02169 1408, 1411, 97, 1413, 1412, 404, 1175, 785, 177, 176,
02170 162, 500, 676, 221, 802, 665, 178, 238, 1373, 677,
02171 1261, 177, 1169, 678, 221, 679, 861, 1192, 705, 178,
02172 784, 1234, 874, 1300, 69, 69, 69, 1322, 178, 1071,
02173 1307, 1016, 165, 166, 167, 609, 168, 169, 170, 171,
02174 172, 1316, 1100, 706, 1376, 177, 1317, 1318, 1176, 165,
02175 166, 167, 304, 168, 169, 170, 171, 172, 91, 379,
02176 1012, 180, 856, 315, 1366, 1086, 565, 957, 852, 967,
02177 969, 1392, 976, 762, 180, 1013, 1225, 1187, 162, 693,
02178 694, 0, 221, 729, 91, 741, 743, 408, 0, 761,
02179 0, 0, 0, 1404, 0, 740, 0, 0, 0, 742,
02180 69, 0, 0, 1296, 1297, 69, 0, 0, 180, 0,
02181 0, 0, 0, 0, 0, 91, 0, 0, 93, 0,
02182 0, 0, 0, 0, 221, 724, 0, 221, 0, 162,
02183 0, 315, 0, 0, 0, 0, 165, 166, 167, 162,
02184 168, 169, 170, 171, 172, 0, 0, 97, 69, 0,
02185 0, 69, 165, 275, 276, 244, 168, 277, 170, 171,
02186 278, 0, 0, 30, 0, 91, 0, 31, 0, 33,
02187 0, 0, 0, 499, 221, 34, 504, 0, 0, 0,
02188 221, 0, 39, 0, 91, 221, 0, 176, 42, 43,
02189 221, 176, 0, 221, 0, 0, 91, 0, 0, 0,
02190 47, 48, 1054, 221, 0, 0, 0, 97, 0, 0,
02191 0, 0, 1356, 0, 0, 55, 0, 0, 176, 59,
02192 60, 528, 529, 238, 0, 69, 0, 0, 0, 574,
02193 0, 176, 0, 177, 238, 1049, 0, 177, 0, 593,
02194 176, 0, 596, 0, 0, 69, 0, 0, 0, 0,
02195 0, 0, 604, 1069, 1371, 0, 0, 93, 0, 0,
02196 0, 0, 0, 156, 177, 577, 0, 0, 0, 457,
02197 0, 279, 221, 0, 0, 0, 458, 177, 0, 459,
02198 0, 0, 0, 0, 0, 0, 177, 1393, 460, 0,
02199 461, 462, 0, 0, 0, 0, 180, 0, 0, 654,
02200 180, 655, 0, 0, 463, 0, 0, 91, 0, 0,
02201 0, 464, 93, 0, 0, 465, 0, 1409, 0, 0,
02202 0, 504, 69, 0, 0, 0, 466, 180, 0, 0,
02203 0, 0, 0, 0, 0, 69, 0, 1144, 467, 468,
02204 180, 469, 91, 0, 0, 221, 0, 0, 0, 180,
02205 0, 0, 0, 0, 91, 0, 0, 91, 0, 0,
02206 91, 0, 0, 197, 0, 0, 0, 0, 0, 69,
02207 0, 0, 0, 221, 0, 0, 547, 0, 0, 69,
02208 221, 0, 221, 0, 0, 0, 0, 0, 221, 160,
02209 853, 0, 0, 221, 499, 0, 0, 470, 91, 91,
02210 91, 0, 883, 569, 0, 0, 508, 509, 829, 830,
02211 512, 831, 514, 515, 832, 97, 0, 471, 472, 165,
02212 166, 587, 221, 168, 588, 170, 171, 589, 221, 0,
02213 0, 0, 0, 0, 0, 1203, 0, 499, 0, 0,
02214 0, 0, 504, 0, 0, 0, 0, 0, 0, 0,
02215 549, 0, 0, 0, 0, 0, 0, 883, 0, 0,
02216 0, 0, 0, 0, 221, 0, 0, 1238, 221, 0,
02217 0, 836, 1242, 0, 91, 0, 0, 843, 0, 91,
02218 0, 0, 0, 0, 854, 0, 0, 0, 826, 0,
02219 827, 828, 0, 0, 0, 0, 887, 321, 0, 0,
02220 0, 1263, 0, 0, 0, 221, 0, 942, 0, 842,
02221 0, 853, 0, 843, 846, 162, 0, 574, 69, 0,
02222 0, 0, 91, 0, 0, 91, 0, 953, 954, 829,
02223 830, 512, 831, 514, 515, 832, 0, 0, 0, 0,
02224 0, 30, 0, 0, 0, 31, 32, 33, 0, 873,
02225 0, 221, 0, 34, 939, 0, 35, 69, 0, 0,
02226 39, 69, 0, 0, 0, 920, 42, 43, 0, 0,
02227 0, 0, 0, 69, 0, 0, 0, 0, 47, 48,
02228 0, 0, 0, 50, 0, 0, 0, 0, 69, 0,
02229 221, 53, 54, 55, 0, 0, 58, 59, 60, 91,
02230 843, 69, 1137, 221, 0, 0, 0, 0, 0, 0,
02231 69, 321, 0, 0, 0, 0, 0, 0, 0, 91,
02232 0, 0, 0, 0, 0, 1208, 0, 0, 321, 0,
02233 0, 0, 0, 0, 949, 0, 950, 0, 162, 843,
02234 0, 1209, 1210, 1211, 830, 512, 1212, 514, 515, 832,
02235 0, 0, 504, 0, 1118, 0, 0, 0, 953, 954,
02236 510, 511, 512, 513, 514, 515, 516, 0, 0, 0,
02237 0, 0, 0, 162, 0, 0, 221, 0, 0, 0,
02238 221, 0, 0, 221, 0, 162, 0, 0, 0, 221,
02239 0, 0, 221, 610, 0, 0, 91, 0, 682, 683,
02240 684, 685, 0, 0, 0, 0, 221, 221, 0, 91,
02241 0, 0, 0, 0, 0, 0, 247, 0, 0, 0,
02242 63, 0, 0, 0, 0, 994, 0, 0, 0, 162,
02243 97, 97, 994, 955, 0, 0, 0, 0, 1004, 0,
02244 0, 994, 0, 91, 0, 0, 0, 0, 221, 1396,
02245 0, 0, 321, 91, 0, 499, 843, 0, 0, 0,
02246 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
02247 197, 197, 197, 197, 197, 197, 197, 197, 746, 747,
02248 748, 0, 508, 509, 510, 511, 512, 513, 514, 515,
02249 516, 0, 0, 1018, 0, 1019, 1020, 843, 0, 0,
02250 197, 0, 0, 0, 0, 162, 0, 1024, 1025, 0,
02251 887, -342, 0, 0, 0, 0, 28, 29, 30, 0,
02252 0, 0, 31, 32, 33, 0, 0, 0, 0, 0,
02253 34, 0, 1256, 35, 36, 37, 38, 39, 0, 40,
02254 0, 0, 41, 42, 43, 44, 45, 0, 0, 321,
02255 0, 0, 46, 0, 0, 47, 48, 247, 49, 0,
02256 50, 0, 51, 853, 0, 0, 52, 0, 53, 54,
02257 55, 56, 57, 58, 59, 60, 0, 0, 0, 508,
02258 509, 829, 830, 512, 831, 514, 515, 832, 0, 1097,
02259 0, 0, 91, 221, 0, 0, 221, 0, 0, 0,
02260 104, 0, 0, 30, 0, 0, 0, 31, 0, 0,
02261 105, 0, 0, 0, 0, 34, 106, 0, 0, 0,
02262 0, 0, 39, 0, 0, 0, 0, 221, 42, 43,
02263 97, 91, 0, 0, 0, 91, 0, 0, 107, 0,
02264 47, 48, 108, 0, 109, 0, 0, 91, 110, 111,
02265 0, 0, 112, 53, 247, 55, 221, 321, 58, 0,
02266 60, 319, 91, 0, 0, 0, -342, 0, 61, 0,
02267 62, 656, 0, 0, 0, 91, 836, 0, 0, 0,
02268 320, 321, 0, 0, 91, 0, 0, 534, 535, 536,
02269 657, 323, 537, 324, 325, 538, 0, 63, 0, 0,
02270 221, 0, 0, 0, 0, 499, 0, 0, 0, 0,
02271 1177, 241, 242, 243, 322, 323, 245, 324, 325, 246,
02272 0, 0, 0, 0, 0, 1189, 0, 0, 0, 0,
02273 1193, 221, 0, 0, 0, 0, 0, 113, 114, 0,
02274 0, 115, 116, 117, 0, 0, 118, 0, 0, 1244,
02275 221, 221, 0, 0, 703, 119, 221, 0, 0, 221,
02276 221, 0, 0, 0, 0, 221, 0, 0, 0, 0,
02277 120, 121, 29, 30, 0, 0, 1239, 31, 32, 33,
02278 1264, 0, 63, 0, 162, 34, 0, 0, 35, 36,
02279 0, 149, 39, 221, 40, 0, 0, 41, 42, 43,
02280 44, 0, 321, 221, 1262, 0, 0, 46, 1284, 0,
02281 47, 48, 0, 49, 504, 50, 569, 221, 197, 0,
02282 0, 52, 0, 53, 54, 55, 0, 57, 58, 59,
02283 60, 0, 508, 509, 829, 830, 512, 831, 514, 515,
02284 832, 0, 499, 0, 1287, 1288, 0, 0, 0, 0,
02285 0, 0, 843, 0, 0, 0, 1292, 1293, 0, 0,
02286 547, 0, 221, 0, 0, 0, 1321, 0, 1298, 321,
02287 0, 0, 0, 0, 853, 0, 0, 0, 221, 1304,
02288 221, 0, 0, 0, 0, 221, 0, 0, 0, 1310,
02289 508, 509, 829, 830, 512, 831, 514, 515, 832, 508,
02290 509, 510, 511, 512, 513, 514, 515, 516, 0, 104,
02291 0, 1264, 30, 0, 1326, 0, 31, 0, 1329, 105,
02292 0, 0, 0, 887, 34, 106, 0, 1284, 435, 1352,
02293 0, 39, 0, 0, 504, 0, 0, 42, 43, 0,
02294 0, 0, 0, 0, 0, 221, 221, 107, 0, 47,
02295 48, 108, 63, 109, 0, 0, 0, 110, 111, 0,
02296 0, 112, 53, 0, 55, 0, 0, 58, 0, 60,
02297 0, 0, 0, 0, 0, 0, 0, 221, 887, 0,
02298 0, 104, 0, 1359, 30, 0, 0, 0, 31, 0,
02299 0, 105, 0, 0, 1284, 1352, 34, 106, 0, 0,
02300 0, 0, 0, 39, 0, 1367, 0, 0, 1368, 42,
02301 43, 0, 0, 0, 0, 0, 0, 0, 197, 107,
02302 0, 47, 48, 108, 0, 109, 1352, 0, 0, 110,
02303 111, 0, 0, 112, 53, 0, 55, 1390, 0, 58,
02304 0, 60, 0, 0, -709, 0, 113, 114, 0, 0,
02305 115, 116, 117, 0, 0, 118, 0, 0, 0, -709,
02306 -709, 0, -709, -709, 119, 0, -709, -709, 0, 0,
02307 0, 0, 0, 0, 197, 0, 0, 812, 0, 120,
02308 121, 0, 0, 0, 0, 29, 0, 0, 0, 0,
02309 0, 63, 33, 813, 814, 815, 816, 817, 818, 819,
02310 820, 538, 36, 0, 149, 0, 0, 40, 0, 0,
02311 41, 0, 0, 44, 0, 0, 0, 0, 113, 114,
02312 46, 0, 115, 116, 117, 0, 49, 118, 104, 0,
02313 0, 30, 1041, 858, 52, 31, 119, 0, 105, 0,
02314 57, 0, 59, 34, 106, 0, 0, 0, 0, 0,
02315 39, 120, 121, 0, 0, 0, 42, 43, 0, 0,
02316 0, 0, 0, 63, 0, 0, 107, 0, 47, 48,
02317 108, 0, 109, 0, 0, 104, 110, 111, 30, 0,
02318 112, 53, 31, 55, 0, 105, 58, 0, 60, 0,
02319 34, 106, 0, 0, 0, 0, 0, 39, 0, 0,
02320 0, 0, 0, 42, 43, 0, 547, 0, 0, 0,
02321 0, 0, 0, 107, 0, 47, 48, 108, 547, 109,
02322 0, 0, 0, 110, 111, 0, 0, 112, 53, 0,
02323 55, 0, 0, 58, 0, 60, 508, 509, 510, 511,
02324 512, 513, 514, 515, 516, 0, 0, 0, 508, 509,
02325 1178, 1179, 512, 1180, 514, 515, 1181, 547, 0, 0,
02326 0, 0, 0, 0, 0, 113, 114, 0, 0, 115,
02327 116, 117, 0, 0, 118, 0, 0, 0, 0, -695,
02328 858, 0, 0, 119, 0, 0, 0, 508, 509, 1178,
02329 1360, 512, 1180, 514, 515, 1181, 0, 0, 120, 121,
02330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02331 63, 0, 113, 114, 0, 0, 115, 116, 117, 0,
02332 0, 118, 104, 0, 0, 30, 0, 858, 0, 31,
02333 119, 0, 105, 0, 0, 0, 0, 34, 106, 0,
02334 0, 0, 0, 0, 39, 120, 121, 0, 0, 0,
02335 42, 43, 0, 0, 0, 0, 0, 63, 0, 0,
02336 107, 0, 47, 48, 108, 0, 109, 0, 0, 104,
02337 110, 111, 30, 0, 112, 53, 31, 55, 0, 105,
02338 58, 0, 60, 0, 34, 106, 0, 0, 0, 0,
02339 0, 39, 0, 0, 0, 0, 0, 42, 43, 0,
02340 0, 0, 0, 0, 0, 0, 0, 107, 333, 47,
02341 48, 108, 0, 109, 0, 334, 0, 110, 0, 0,
02342 0, 112, 53, 413, 55, 0, 335, 58, 0, 60,
02343 414, 336, 337, 338, 339, 340, 341, 342, 343, 344,
02344 345, 415, 0, 0, 0, 0, 416, 417, 418, 419,
02345 420, 421, 422, 423, 424, 425, 0, 0, 0, 113,
02346 114, 0, 0, 115, 116, 117, 0, 0, 118, 0,
02347 0, 0, 0, 0, 0, 0, 0, 119, 0, 0,
02348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02349 0, 0, 120, 121, 0, 0, 0, 0, 0, 0,
02350 0, 0, 0, 0, 63, 608, 113, 114, 0, 0,
02351 115, 116, 117, 0, 0, 118, 104, 0, 0, 30,
02352 0, 0, 0, 31, 119, 0, 105, 0, 0, 0,
02353 0, 34, 106, 0, 0, 0, 0, 0, 39, 120,
02354 121, 0, 0, 0, 42, 43, 0, 0, 0, 0,
02355 0, 63, 0, 0, 107, 0, 47, 48, 108, 0,
02356 109, 0, 0, 104, 110, 0, 30, 0, 112, 53,
02357 31, 55, 0, 105, 58, 0, 60, 0, 34, 106,
02358 0, 0, 0, 0, 0, 39, 0, 0, 0, 0,
02359 0, 42, 43, 0, 0, 0, 0, 0, 0, 0,
02360 0, 107, 0, 47, 48, 108, 0, 109, 0, 0,
02361 0, 110, 0, 0, 0, 112, 53, 0, 55, 0,
02362 0, 58, 0, 60, 0, 0, 30, 0, 0, 0,
02363 31, 32, 33, 0, 0, 0, 0, 0, 34, 0,
02364 0, 35, 0, 0, 0, 39, 0, 0, 0, 0,
02365 0, 42, 43, 113, 114, 0, 0, 115, 116, 117,
02366 0, 0, 118, 47, 48, 0, 0, 0, 50, 0,
02367 0, 187, 0, 0, 0, 0, 53, 54, 55, 0,
02368 0, 58, 59, 60, 0, 0, 120, 121, 0, 0,
02369 0, 0, 0, 0, 0, 0, 0, 0, 63, 0,
02370 113, 114, 0, 0, 115, 116, 117, 0, 0, 118,
02371 0, 0, 0, 0, 0, 0, 0, 0, 119, 0,
02372 0, 28, 29, 30, 0, 0, 0, 31, 32, 33,
02373 0, 0, 0, 120, 121, 34, 0, 0, 35, 36,
02374 37, 38, 39, 0, 40, 63, 0, 41, 42, 43,
02375 44, 45, 0, 0, 0, 0, 0, 46, 0, 0,
02376 47, 48, 0, 49, 0, 50, 0, 51, 0, 0,
02377 0, 52, 0, 53, 54, 55, 56, 57, 58, 59,
02378 60, 28, 29, 30, 0, 0, 0, 31, 32, 33,
02379 0, 0, 0, 0, 0, 34, 0, 0, 35, 36,
02380 37, 38, 39, 0, 40, 63, 0, 41, 42, 43,
02381 44, 45, 0, 0, 0, 0, 0, 46, 0, 0,
02382 47, 48, 0, 49, 0, 50, 0, 51, 0, 0,
02383 0, 52, 0, 53, 54, 55, 56, 57, 58, 59,
02384 60, 28, 29, 30, 0, 0, 0, 31, 32, 33,
02385 0, 0, 0, 0, 0, 34, 0, 0, 35, 36,
02386 37, 38, 39, 0, 40, 229, 0, 41, 42, 43,
02387 44, 45, 0, 61, 0, 62, 0, 46, 0, 0,
02388 47, 48, 0, 49, 0, 50, 0, 51, 0, 0,
02389 0, 52, 0, 53, 54, 55, 56, 57, 58, 59,
02390 60, 0, 63, 1, 2, 3, 4, 5, 6, 7,
02391 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
02392 18, 19, 20, 21, 22, 23, 0, 0, 0, 24,
02393 0, 0, 494, 61, 0, 62, 0, 0, 0, 0,
02394 0, 0, 0, 0, 0, 0, 148, 29, 30, 0,
02395 0, 0, 31, 32, 33, 0, 0, 0, 0, 0,
02396 34, 0, 63, 35, 36, 0, 149, 39, 0, 40,
02397 0, 0, 41, 42, 43, 44, 150, 0, 0, 0,
02398 0, 0, 46, 0, 0, 47, 48, 0, 49, 0,
02399 50, 0, 0, 61, 0, 62, 52, 0, 53, 54,
02400 55, 151, 57, 58, 59, 60, 0, 29, 30, 0,
02401 0, 0, 31, 32, 33, 0, 0, 0, 0, 0,
02402 34, 0, 63, 35, 36, 875, 149, 39, 0, 40,
02403 0, 0, 41, 42, 43, 44, 0, 0, 0, 578,
02404 579, 580, 46, 0, 0, 47, 48, 0, 49, 0,
02405 50, 0, 876, 0, 0, 0, 52, 0, 53, 54,
02406 55, 877, 57, 58, 59, 60, 29, 30, 0, 0,
02407 0, 31, 32, 33, 0, 0, 0, 0, 0, 34,
02408 0, 0, 35, 36, 875, 149, 39, 0, 40, 0,
02409 0, 41, 42, 43, 44, 0, 0, 0, 578, 579,
02410 580, 46, 0, 0, 47, 48, 0, 49, 0, 50,
02411 0, 876, 0, 0, 0, 52, 0, 53, 54, 55,
02412 877, 57, 58, 59, 60, 0, 0, 63, 0, 0,
02413 0, 0, 0, 0, 878, 0, 0, 29, 30, 0,
02414 0, 0, 31, 32, 33, 0, 0, 0, 0, 0,
02415 34, 0, 0, 35, 36, 0, 149, 39, 879, 40,
02416 880, 0, 41, 42, 43, 44, 0, 0, 0, 0,
02417 0, 0, 46, 0, 0, 47, 48, 0, 49, 0,
02418 50, 0, 0, 0, 0, 0, 52, 63, 53, 54,
02419 55, 0, 57, 58, 59, 60, 0, 0, 0, 0,
02420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02421 0, 0, 0, 0, 0, -489, 0, 879, 0, 880,
02422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02423 0, 29, 30, 0, 0, 0, 31, 32, 33, 0,
02424 0, 0, 0, 0, 34, 0, 63, 35, 36, 0,
02425 149, 39, 0, 40, 0, 0, 41, 42, 43, 44,
02426 0, 0, 0, 0, 0, 0, 46, 0, 0, 47,
02427 48, 441, 49, 0, 50, 0, 253, 0, 0, 0,
02428 52, 254, 53, 54, 55, 0, 57, 58, 59, 60,
02429 717, 0, 0, 435, 29, 30, 0, 0, 0, 31,
02430 32, 33, 0, 0, 0, 0, 0, 34, 0, 0,
02431 35, 36, 875, 149, 39, 0, 40, 63, 0, 41,
02432 42, 43, 44, 0, 0, 0, 0, 0, 0, 46,
02433 0, 0, 47, 48, 0, 49, 0, 50, 0, 876,
02434 0, 0, 0, 52, 0, 53, 54, 55, 877, 57,
02435 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
02436 0, 29, 30, 0, 0, 0, 31, 32, 33, 0,
02437 0, 0, 0, 0, 34, 0, 0, 35, 36, 0,
02438 149, 39, 0, 40, 62, 0, 41, 42, 43, 44,
02439 0, 0, 0, 0, 0, 0, 46, 0, 0, 47,
02440 48, 0, 49, 0, 50, 0, 0, 0, 0, 0,
02441 52, 63, 53, 54, 55, 0, 57, 58, 59, 60,
02442 0, 0, 0, 0, 29, 30, 0, 0, 0, 31,
02443 32, 33, 0, 0, 0, 0, 0, 34, 0, 0,
02444 35, 36, 0, 149, 39, 879, 40, 880, 0, 41,
02445 42, 43, 44, 0, 0, 0, 0, 0, 0, 46,
02446 0, 0, 47, 48, 0, 49, 0, 50, 0, 0,
02447 0, 0, 0, 52, 63, 53, 54, 55, 0, 57,
02448 58, 59, 60, 0, 0, 0, 0, 29, 30, 0,
02449 0, 0, 31, 32, 33, 0, 0, 0, 0, 0,
02450 34, 0, 0, 35, 36, 0, 149, 39, 0, 40,
02451 0, 0, 41, 42, 43, 44, 0, 975, 0, 0,
02452 0, 0, 46, 0, 0, 47, 48, 0, 49, 0,
02453 50, 0, 0, 0, 0, 0, 52, 0, 53, 54,
02454 55, 63, 57, 58, 59, 60, 30, 0, 0, 0,
02455 31, 32, 33, 0, 0, 0, 0, 0, 34, 0,
02456 0, 35, 0, 0, 0, 39, 0, 0, 0, 0,
02457 0, 42, 43, 0, 30, 0, 0, 880, 31, 32,
02458 33, 0, 0, 47, 48, 0, 34, 0, 50, 35,
02459 0, 0, 0, 39, 0, 0, 53, 54, 55, 42,
02460 43, 58, 59, 60, 63, 0, 0, 0, 613, 0,
02461 0, 47, 48, 0, 0, 0, 50, 0, 0, 0,
02462 0, 0, 0, 0, 53, 54, 55, 614, 30, 58,
02463 59, 60, 31, 32, 33, 0, 0, 0, 0, 0,
02464 34, 0, 0, 35, 0, 0, 0, 39, 0, 0,
02465 0, 0, 0, 42, 43, 0, 0, 0, 0, 0,
02466 0, 0, 0, 0, 0, 47, 48, 63, 0, 0,
02467 50, 0, 0, 0, 0, 0, 0, 0, 53, 54,
02468 55, 0, 0, 58, 59, 60, 0, 0, 0, 0,
02469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02470 0, 1246, 0, 0, 0, 0, 0, 0, 0, 0,
02471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02472 0, 0, 0, 0, 0, 63, 1372, 0, 0, 0,
02473 0, 615, 616, 617, 618, 619, 620, 621, 622, 623,
02474 624, 625, 626, 627, 0, 628, 0, 0, 0, 0,
02475 629, 630, 0, 63, 631, 632, 0, 633, 634, 635,
02476 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
02477 646, 647, 648, 649, 650, 651, 652, 29, 30, 1375,
02478 0, 0, 31, 0, 33, 0, 0, 0, 0, 0,
02479 34, 0, 0, 0, 36, 0, 149, 39, 0, 40,
02480 0, 0, 41, 42, 43, 44, 0, 63, 0, 0,
02481 0, 0, 46, 0, 0, 47, 48, 0, 49, 0,
02482 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
02483 55, 0, 57, 0, 59, 60
02484 };
02485
02486 static const yytype_int16 yycheck[] =
02487 {
02488 1, 7, 4, 9, 194, 1, 465, 72, 214, 248,
02489 255, 3, 123, 62, 234, 253, 210, 79, 212, 79,
02490 62, 5, 22, 889, 163, 260, 16, 160, 51, 441,
02491 123, 327, 76, 10, 858, 260, 450, 1, 264, 3,
02492 4, 0, 209, 7, 45, 9, 782, 214, 71, 13,
02493 14, 77, 78, 79, 18, 51, 653, 518, 22, 2,
02494 880, 45, 51, 6, 377, 8, 78, 79, 365, 12,
02495 880, 368, 297, 255, 474, 71, 476, 477, 35, 493,
02496 480, 208, 482, 564, 85, 448, 286, 51, 255, 53,
02497 592, 218, 56, 575, 1170, 159, 97, 157, 62, 581,
02498 57, 263, 569, 1091, 1092, 476, 477, 71, 72, 480,
02499 880, 482, 1283, 97, 35, 79, 159, 252, 57, 54,
02500 365, 111, 955, 368, 957, 958, 54, 157, 90, 67,
02501 54, 157, 1, 71, 3, 4, 57, 54, 13, 92,
02502 93, 234, 159, 94, 95, 157, 69, 70, 163, 72,
02503 54, 7, 75, 9, 159, 1245, 186, 13, 14, 160,
02504 139, 162, 18, 157, 182, 209, 150, 0, 186, 186,
02505 214, 38, 39, 40, 478, 154, 160, 367, 162, 1350,
02506 1270, 485, 51, 227, 157, 498, 90, 151, 63, 656,
02507 926, 155, 186, 157, 61, 148, 155, 186, 160, 94,
02508 95, 279, 71, 226, 194, 81, 82, 208, 159, 210,
02509 12, 212, 290, 186, 1290, 179, 327, 218, 182, 220,
02510 446, 156, 186, 14, 444, 189, 161, 18, 695, 186,
02511 226, 437, 156, 161, 327, 1351, 160, 102, 103, 156,
02512 159, 408, 1332, 1063, 208, 209, 408, 186, 186, 51,
02513 214, 159, 156, 1063, 218, 57, 160, 854, 134, 94,
02514 261, 997, 226, 186, 159, 186, 1382, 186, 159, 233,
02515 437, 414, 159, 416, 417, 418, 419, 420, 421, 422,
02516 423, 424, 425, 522, 149, 286, 448, 161, 139, 0,
02517 286, 255, 149, 1063, 494, 186, 159, 542, 518, 186,
02518 264, 546, 441, 154, 1137, 140, 96, 97, 292, 166,
02519 167, 454, 186, 159, 320, 69, 70, 788, 72, 186,
02520 546, 75, 286, 179, 159, 289, 797, 183, 184, 549,
02521 159, 13, 77, 189, 79, 560, 1324, 301, 302, 303,
02522 186, 331, 306, 140, 334, 812, 336, 337, 338, 339,
02523 340, 341, 342, 343, 344, 345, 320, 226, 148, 722,
02524 542, 1185, 159, 7, 825, 9, 83, 84, 849, 13,
02525 14, 53, 154, 159, 18, 542, 158, 367, 68, 69,
02526 70, 63, 72, 545, 156, 75, 853, 868, 161, 161,
02527 333, 145, 51, 437, 757, 708, 150, 253, 189, 762,
02528 186, 365, 446, 565, 368, 907, 1226, 889, 159, 7,
02529 545, 9, 157, 186, 186, 13, 14, 286, 135, 921,
02530 18, 411, 140, 366, 154, 518, 441, 562, 156, 140,
02531 153, 161, 186, 161, 145, 186, 1302, 148, 4, 150,
02532 441, 159, 1039, 154, 408, 301, 302, 303, 171, 160,
02533 306, 1187, 67, 68, 69, 70, 71, 72, 73, 74,
02534 75, 186, 463, 138, 320, 140, 1, 594, 3, 4,
02535 413, 51, 7, 437, 9, 186, 468, 461, 13, 14,
02536 157, 785, 446, 18, 159, 469, 1388, 22, 163, 69,
02537 156, 1357, 72, 494, 720, 75, 186, 1399, 494, 174,
02538 175, 156, 157, 1405, 468, 51, 161, 98, 99, 154,
02539 301, 302, 303, 575, 154, 306, 51, 162, 158, 525,
02540 148, 149, 13, 69, 467, 459, 72, 140, 159, 75,
02541 494, 186, 145, 575, 0, 179, 71, 150, 166, 167,
02542 474, 505, 148, 78, 79, 189, 161, 148, 154, 483,
02543 717, 148, 37, 154, 145, 717, 557, 154, 720, 150,
02544 722, 525, 53, 54, 554, 145, 156, 143, 159, 145,
02545 146, 186, 63, 186, 575, 143, 144, 145, 542, 575,
02546 581, 179, 546, 575, 585, 70, 71, 551, 73, 74,
02547 154, 189, 148, 594, 558, 186, 149, 161, 154, 468,
02548 762, 1103, 1002, 148, 148, 825, 969, 145, 37, 154,
02549 154, 575, 150, 3, 4, 154, 854, 168, 169, 158,
02550 148, 159, 157, 161, 601, 494, 154, 149, 592, 772,
02551 594, 1002, 22, 154, 164, 165, 861, 158, 67, 68,
02552 69, 70, 606, 72, 179, 890, 75, 1061, 186, 184,
02553 69, 70, 948, 72, 189, 952, 75, 301, 302, 303,
02554 172, 173, 306, 154, 607, 156, 157, 857, 835, 525,
02555 161, 154, 149, 208, 140, 158, 320, 37, 51, 145,
02556 168, 169, 148, 218, 150, 541, 154, 149, 154, 157,
02557 852, 226, 158, 159, 998, 68, 69, 1001, 70, 72,
02558 72, 73, 75, 301, 302, 303, 575, 952, 306, 69,
02559 70, 159, 72, 142, 37, 75, 717, 852, 957, 89,
02560 186, 91, 320, 890, 714, 715, 170, 1, 51, 3,
02561 4, 145, 825, 7, 154, 9, 150, 957, 158, 13,
02562 14, 1208, 152, 154, 18, 159, 69, 158, 22, 72,
02563 606, 286, 75, 717, 887, 150, 720, 892, 154, 749,
02564 37, 154, 158, 764, 151, 158, 301, 302, 303, 146,
02565 147, 306, 186, 979, 51, 942, 154, 51, 154, 159,
02566 158, 157, 142, 1195, 1198, 320, 809, 810, 752, 157,
02567 67, 68, 69, 69, 70, 72, 72, 71, 75, 75,
02568 764, 1027, 159, 767, 1216, 79, 770, 969, 808, 1221,
02569 158, 159, 979, 809, 810, 606, 140, 1037, 208, 142,
02570 69, 145, 884, 72, 884, 161, 150, 889, 218, 972,
02571 1069, 880, 154, 161, 158, 98, 158, 948, 880, 883,
02572 154, 158, 884, 157, 808, 809, 810, 889, 1260, 1069,
02573 1085, 1155, 1156, 154, 158, 948, 157, 1161, 884, 1079,
02574 1085, 1165, 186, 154, 140, 142, 157, 857, 858, 145,
02575 51, 835, 884, 874, 150, 154, 1335, 85, 86, 158,
02576 170, 525, 145, 157, 152, 1028, 887, 150, 69, 154,
02577 874, 72, 157, 889, 75, 154, 159, 889, 1124, 158,
02578 151, 1313, 1314, 887, 37, 179, 150, 145, 1146, 149,
02579 186, 767, 150, 877, 770, 189, 880, 773, 154, 4,
02580 884, 159, 158, 186, 154, 889, 890, 525, 158, 149,
02581 1120, 160, 1067, 468, 208, 979, 69, 70, 186, 72,
02582 809, 810, 75, 907, 218, 158, 910, 149, 186, 68,
02583 914, 51, 226, 917, 88, 89, 1150, 921, 186, 494,
02584 156, 951, 606, 156, 1203, 157, 85, 37, 932, 69,
02585 156, 935, 72, 1218, 4, 75, 767, 160, 942, 770,
02586 157, 51, 51, 161, 974, 161, 1009, 160, 952, 160,
02587 525, 934, 67, 68, 69, 87, 88, 72, 854, 69,
02588 69, 51, 72, 72, 123, 75, 75, 1245, 606, 142,
02589 96, 97, 286, 1009, 1063, 979, 88, 67, 68, 69,
02590 889, 1063, 72, 158, 1263, 75, 158, 301, 302, 303,
02591 157, 158, 306, 152, 158, 611, 158, 51, 67, 68,
02592 575, 1247, 160, 1263, 160, 1009, 320, 100, 101, 1091,
02593 1092, 1218, 160, 67, 68, 69, 1195, 176, 72, 594,
02594 158, 75, 181, 1027, 157, 1029, 51, 69, 70, 157,
02595 72, 606, 142, 75, 92, 93, 932, 1216, 468, 935,
02596 1247, 159, 1221, 68, 69, 1086, 1050, 72, 156, 1309,
02597 75, 38, 39, 40, 1229, 145, 360, 361, 362, 1063,
02598 1106, 1, 1347, 3, 4, 350, 351, 7, 159, 9,
02599 159, 51, 231, 13, 14, 234, 235, 159, 18, 158,
02600 159, 1260, 22, 767, 356, 357, 770, 1091, 1092, 69,
02601 1120, 158, 72, 358, 359, 75, 157, 256, 51, 1103,
02602 1009, 932, 1106, 186, 935, 1146, 157, 1153, 186, 1150,
02603 186, 51, 430, 431, 186, 1119, 69, 158, 161, 72,
02604 1124, 1163, 75, 159, 155, 154, 1109, 1110, 1111, 767,
02605 1113, 71, 770, 1029, 1313, 1314, 1396, 1226, 1121, 79,
02606 1195, 61, 717, 1039, 1226, 575, 161, 133, 1323, 1153,
02607 69, 70, 10, 72, 468, 1185, 75, 148, 148, 1163,
02608 148, 1216, 159, 1247, 594, 148, 1221, 139, 1151, 1152,
02609 140, 140, 1277, 1197, 68, 69, 70, 752, 72, 1162,
02610 494, 75, 67, 68, 69, 70, 142, 72, 139, 764,
02611 75, 158, 767, 69, 70, 770, 72, 158, 1029, 75,
02612 1302, 160, 157, 139, 1245, 1260, 69, 70, 139, 72,
02613 1106, 525, 75, 159, 1218, 69, 70, 157, 72, 65,
02614 1302, 75, 1226, 1119, 159, 0, 154, 157, 157, 1270,
02615 21, 155, 157, 808, 809, 810, 157, 155, 75, 179,
02616 157, 70, 1324, 1247, 186, 158, 862, 863, 932, 189,
02617 1146, 935, 154, 70, 1163, 1357, 51, 1153, 1313, 1314,
02618 0, 575, 149, 155, 155, 154, 1302, 157, 208, 155,
02619 1302, 159, 154, 1277, 157, 1357, 155, 161, 218, 160,
02620 594, 158, 139, 139, 159, 444, 226, 717, 1119, 159,
02621 159, 1332, 606, 159, 932, 1341, 1401, 935, 1302, 113,
02622 114, 115, 116, 117, 118, 158, 120, 121, 186, 884,
02623 157, 12, 1353, 140, 889, 186, 157, 157, 145, 186,
02624 1324, 1357, 752, 150, 158, 1357, 158, 154, 158, 75,
02625 158, 158, 158, 160, 764, 162, 159, 1341, 158, 1385,
02626 155, 1345, 186, 1347, 157, 1029, 286, 1388, 507, 1245,
02627 154, 1381, 160, 1357, 155, 154, 149, 932, 1399, 186,
02628 935, 301, 302, 303, 1405, 140, 306, 157, 1372, 158,
02629 145, 158, 4, 148, 1270, 150, 161, 161, 808, 154,
02630 320, 1385, 1412, 158, 158, 160, 158, 162, 140, 24,
02631 1394, 1029, 1, 1302, 3, 4, 158, 1401, 186, 155,
02632 140, 1384, 157, 717, 186, 145, 186, 158, 148, 568,
02633 150, 186, 157, 22, 154, 158, 157, 161, 158, 159,
02634 4, 154, 1106, 582, 158, 160, 158, 586, 63, 159,
02635 157, 1047, 158, 158, 1009, 1119, 1332, 160, 752, 139,
02636 157, 160, 51, 157, 9, 1341, 186, 157, 1357, 1345,
02637 764, 16, 157, 767, 1029, 158, 770, 1267, 157, 889,
02638 158, 158, 71, 158, 160, 187, 1032, 469, 1106, 1153,
02639 79, 229, 346, 108, 487, 335, 1372, 63, 1341, 347,
02640 1124, 1119, 1017, 348, 119, 349, 557, 1050, 368, 1385,
02641 468, 1092, 573, 1197, 808, 809, 810, 1226, 1394, 884,
02642 1203, 811, 67, 68, 69, 319, 71, 72, 73, 74,
02643 75, 1218, 914, 368, 1345, 1153, 1218, 1218, 1032, 67,
02644 68, 69, 108, 71, 72, 73, 74, 75, 468, 155,
02645 807, 1106, 551, 119, 1324, 890, 264, 696, 546, 717,
02646 720, 1372, 752, 446, 1119, 808, 1086, 1044, 157, 363,
02647 364, -1, 187, 415, 494, 427, 429, 192, -1, 718,
02648 -1, -1, -1, 1394, -1, 426, -1, -1, -1, 428,
02649 884, -1, -1, 1189, 1190, 889, -1, -1, 1153, -1,
02650 -1, -1, -1, -1, -1, 525, -1, -1, 1163, -1,
02651 -1, -1, -1, -1, 229, 409, -1, 232, -1, 208,
02652 -1, 187, -1, -1, -1, -1, 67, 68, 69, 218,
02653 71, 72, 73, 74, 75, -1, -1, 226, 932, -1,
02654 -1, 935, 67, 68, 69, 70, 71, 72, 73, 74,
02655 75, -1, -1, 7, -1, 575, -1, 11, -1, 13,
02656 -1, -1, -1, 229, 279, 19, 232, -1, -1, -1,
02657 285, -1, 26, -1, 594, 290, -1, 1341, 32, 33,
02658 295, 1345, -1, 298, -1, -1, 606, -1, -1, -1,
02659 44, 45, 133, 308, -1, -1, -1, 286, -1, -1,
02660 -1, -1, 1298, -1, -1, 59, -1, -1, 1372, 63,
02661 64, 244, 245, 279, -1, 1009, -1, -1, -1, 285,
02662 -1, 1385, -1, 1341, 290, 864, -1, 1345, -1, 295,
02663 1394, -1, 298, -1, -1, 1029, -1, -1, -1, -1,
02664 -1, -1, 308, 882, 1340, -1, -1, 1302, -1, -1,
02665 -1, -1, -1, 1163, 1372, 288, -1, -1, -1, 8,
02666 -1, 186, 377, -1, -1, -1, 15, 1385, -1, 18,
02667 -1, -1, -1, -1, -1, -1, 1394, 1373, 27, -1,
02668 29, 30, -1, -1, -1, -1, 1341, -1, -1, 322,
02669 1345, 324, -1, -1, 43, -1, -1, 717, -1, -1,
02670 -1, 50, 1357, -1, -1, 54, -1, 1403, -1, -1,
02671 -1, 377, 1106, -1, -1, -1, 65, 1372, -1, -1,
02672 -1, -1, -1, -1, -1, 1119, -1, 966, 77, 78,
02673 1385, 80, 752, -1, -1, 450, -1, -1, -1, 1394,
02674 -1, -1, -1, -1, 764, -1, -1, 767, -1, -1,
02675 770, -1, -1, 17, -1, -1, -1, -1, -1, 1153,
02676 -1, -1, -1, 478, -1, -1, 37, -1, -1, 1163,
02677 485, -1, 487, -1, -1, -1, -1, -1, 493, 468,
02678 51, -1, -1, 498, 450, -1, -1, 136, 808, 809,
02679 810, -1, 1302, 51, -1, -1, 67, 68, 69, 70,
02680 71, 72, 73, 74, 75, 494, -1, 156, 157, 67,
02681 68, 69, 527, 71, 72, 73, 74, 75, 533, -1,
02682 -1, -1, -1, -1, -1, 1064, -1, 493, -1, -1,
02683 -1, -1, 498, -1, -1, -1, -1, -1, -1, -1,
02684 1079, -1, -1, -1, -1, -1, -1, 1357, -1, -1,
02685 -1, -1, -1, -1, 569, -1, -1, 1096, 573, -1,
02686 -1, 527, 1101, -1, 884, -1, -1, 533, -1, 889,
02687 -1, -1, -1, -1, 145, -1, -1, -1, 511, -1,
02688 513, 514, -1, -1, -1, -1, 575, 37, -1, -1,
02689 -1, 1130, -1, -1, -1, 610, -1, 612, -1, 532,
02690 -1, 51, -1, 569, 537, 594, -1, 573, 1302, -1,
02691 -1, -1, 932, -1, -1, 935, -1, 67, 68, 69,
02692 70, 71, 72, 73, 74, 75, -1, -1, -1, -1,
02693 -1, 7, -1, -1, -1, 11, 12, 13, -1, 572,
02694 -1, 656, -1, 19, 610, -1, 22, 1341, -1, -1,
02695 26, 1345, -1, -1, -1, 588, 32, 33, -1, -1,
02696 -1, -1, -1, 1357, -1, -1, -1, -1, 44, 45,
02697 -1, -1, -1, 49, -1, -1, -1, -1, 1372, -1,
02698 695, 57, 58, 59, -1, -1, 62, 63, 64, 1009,
02699 656, 1385, 142, 708, -1, -1, -1, -1, -1, -1,
02700 1394, 37, -1, -1, -1, -1, -1, -1, -1, 1029,
02701 -1, -1, -1, -1, -1, 51, -1, -1, 37, -1,
02702 -1, -1, -1, -1, 657, -1, 659, -1, 717, 695,
02703 -1, 67, 68, 69, 70, 71, 72, 73, 74, 75,
02704 -1, -1, 708, -1, 938, -1, -1, -1, 67, 68,
02705 69, 70, 71, 72, 73, 74, 75, -1, -1, -1,
02706 -1, -1, -1, 752, -1, -1, 781, -1, -1, -1,
02707 785, -1, -1, 788, -1, 764, -1, -1, -1, 794,
02708 -1, -1, 797, 159, -1, -1, 1106, -1, 352, 353,
02709 354, 355, -1, -1, -1, -1, 811, 812, -1, 1119,
02710 -1, -1, -1, -1, -1, -1, 142, -1, -1, -1,
02711 186, -1, -1, -1, -1, 781, -1, -1, -1, 808,
02712 809, 810, 788, 142, -1, -1, -1, -1, 794, -1,
02713 -1, 797, -1, 1153, -1, -1, -1, -1, 853, 1378,
02714 -1, -1, 37, 1163, -1, 811, 812, -1, -1, -1,
02715 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
02716 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
02717 434, -1, 67, 68, 69, 70, 71, 72, 73, 74,
02718 75, -1, -1, 816, -1, 818, 819, 853, -1, -1,
02719 454, -1, -1, -1, -1, 884, -1, 830, 831, -1,
02720 889, 0, -1, -1, -1, -1, 5, 6, 7, -1,
02721 -1, -1, 11, 12, 13, -1, -1, -1, -1, -1,
02722 19, -1, 1116, 22, 23, 24, 25, 26, -1, 28,
02723 -1, -1, 31, 32, 33, 34, 35, -1, -1, 37,
02724 -1, -1, 41, -1, -1, 44, 45, 142, 47, -1,
02725 49, -1, 51, 51, -1, -1, 55, -1, 57, 58,
02726 59, 60, 61, 62, 63, 64, -1, -1, -1, 67,
02727 68, 69, 70, 71, 72, 73, 74, 75, -1, 912,
02728 -1, -1, 1302, 998, -1, -1, 1001, -1, -1, -1,
02729 4, -1, -1, 7, -1, -1, -1, 11, -1, -1,
02730 14, -1, -1, -1, -1, 19, 20, -1, -1, -1,
02731 -1, -1, 26, -1, -1, -1, -1, 1032, 32, 33,
02732 1009, 1341, -1, -1, -1, 1345, -1, -1, 42, -1,
02733 44, 45, 46, -1, 48, -1, -1, 1357, 52, 53,
02734 -1, -1, 56, 57, 142, 59, 1061, 37, 62, -1,
02735 64, 17, 1372, -1, -1, -1, 155, -1, 157, -1,
02736 159, 51, -1, -1, -1, 1385, 1032, -1, -1, -1,
02737 36, 37, -1, -1, 1394, -1, -1, 67, 68, 69,
02738 70, 71, 72, 73, 74, 75, -1, 186, -1, -1,
02739 1105, -1, -1, -1, -1, 1061, -1, -1, -1, -1,
02740 1033, 67, 68, 69, 70, 71, 72, 73, 74, 75,
02741 -1, -1, -1, -1, -1, 1048, -1, -1, -1, -1,
02742 1053, 1136, -1, -1, -1, -1, -1, 141, 142, -1,
02743 -1, 145, 146, 147, -1, -1, 150, -1, -1, 1105,
02744 1155, 1156, -1, -1, 158, 159, 1161, -1, -1, 1164,
02745 1165, -1, -1, -1, -1, 1170, -1, -1, -1, -1,
02746 174, 175, 6, 7, -1, -1, 1099, 11, 12, 13,
02747 1136, -1, 186, -1, 1163, 19, -1, -1, 22, 23,
02748 -1, 25, 26, 1198, 28, -1, -1, 31, 32, 33,
02749 34, -1, 37, 1208, 1127, -1, -1, 41, 1164, -1,
02750 44, 45, -1, 47, 1170, 49, 51, 1222, 772, -1,
02751 -1, 55, -1, 57, 58, 59, -1, 61, 62, 63,
02752 64, -1, 67, 68, 69, 70, 71, 72, 73, 74,
02753 75, -1, 1198, -1, 1167, 1168, -1, -1, -1, -1,
02754 -1, -1, 1208, -1, -1, -1, 1179, 1180, -1, -1,
02755 37, -1, 1267, -1, -1, -1, 1222, -1, 1191, 37,
02756 -1, -1, -1, -1, 51, -1, -1, -1, 1283, 1202,
02757 1285, -1, -1, -1, -1, 1290, -1, -1, -1, 1212,
02758 67, 68, 69, 70, 71, 72, 73, 74, 75, 67,
02759 68, 69, 70, 71, 72, 73, 74, 75, -1, 4,
02760 -1, 1267, 7, -1, 1237, -1, 11, -1, 1241, 14,
02761 -1, -1, -1, 1302, 19, 20, -1, 1283, 162, 1285,
02762 -1, 26, -1, -1, 1290, -1, -1, 32, 33, -1,
02763 -1, -1, -1, -1, -1, 1350, 1351, 42, -1, 44,
02764 45, 46, 186, 48, -1, -1, -1, 52, 53, -1,
02765 -1, 56, 57, -1, 59, -1, -1, 62, -1, 64,
02766 -1, -1, -1, -1, -1, -1, -1, 1382, 1357, -1,
02767 -1, 4, -1, 1306, 7, -1, -1, -1, 11, -1,
02768 -1, 14, -1, -1, 1350, 1351, 19, 20, -1, -1,
02769 -1, -1, -1, 26, -1, 1328, -1, -1, 1331, 32,
02770 33, -1, -1, -1, -1, -1, -1, -1, 972, 42,
02771 -1, 44, 45, 46, -1, 48, 1382, -1, -1, 52,
02772 53, -1, -1, 56, 57, -1, 59, 1360, -1, 62,
02773 -1, 64, -1, -1, 139, -1, 141, 142, -1, -1,
02774 145, 146, 147, -1, -1, 150, -1, -1, -1, 154,
02775 155, -1, 157, 158, 159, -1, 161, 162, -1, -1,
02776 -1, -1, -1, -1, 1028, -1, -1, 51, -1, 174,
02777 175, -1, -1, -1, -1, 6, -1, -1, -1, -1,
02778 -1, 186, 13, 67, 68, 69, 70, 71, 72, 73,
02779 74, 75, 23, -1, 25, -1, -1, 28, -1, -1,
02780 31, -1, -1, 34, -1, -1, -1, -1, 141, 142,
02781 41, -1, 145, 146, 147, -1, 47, 150, 4, -1,
02782 -1, 7, 155, 156, 55, 11, 159, -1, 14, -1,
02783 61, -1, 63, 19, 20, -1, -1, -1, -1, -1,
02784 26, 174, 175, -1, -1, -1, 32, 33, -1, -1,
02785 -1, -1, -1, 186, -1, -1, 42, -1, 44, 45,
02786 46, -1, 48, -1, -1, 4, 52, 53, 7, -1,
02787 56, 57, 11, 59, -1, 14, 62, -1, 64, -1,
02788 19, 20, -1, -1, -1, -1, -1, 26, -1, -1,
02789 -1, -1, -1, 32, 33, -1, 37, -1, -1, -1,
02790 -1, -1, -1, 42, -1, 44, 45, 46, 37, 48,
02791 -1, -1, -1, 52, 53, -1, -1, 56, 57, -1,
02792 59, -1, -1, 62, -1, 64, 67, 68, 69, 70,
02793 71, 72, 73, 74, 75, -1, -1, -1, 67, 68,
02794 69, 70, 71, 72, 73, 74, 75, 37, -1, -1,
02795 -1, -1, -1, -1, -1, 141, 142, -1, -1, 145,
02796 146, 147, -1, -1, 150, -1, -1, -1, -1, 155,
02797 156, -1, -1, 159, -1, -1, -1, 67, 68, 69,
02798 70, 71, 72, 73, 74, 75, -1, -1, 174, 175,
02799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
02800 186, -1, 141, 142, -1, -1, 145, 146, 147, -1,
02801 -1, 150, 4, -1, -1, 7, -1, 156, -1, 11,
02802 159, -1, 14, -1, -1, -1, -1, 19, 20, -1,
02803 -1, -1, -1, -1, 26, 174, 175, -1, -1, -1,
02804 32, 33, -1, -1, -1, -1, -1, 186, -1, -1,
02805 42, -1, 44, 45, 46, -1, 48, -1, -1, 4,
02806 52, 53, 7, -1, 56, 57, 11, 59, -1, 14,
02807 62, -1, 64, -1, 19, 20, -1, -1, -1, -1,
02808 -1, 26, -1, -1, -1, -1, -1, 32, 33, -1,
02809 -1, -1, -1, -1, -1, -1, -1, 42, 153, 44,
02810 45, 46, -1, 48, -1, 160, -1, 52, -1, -1,
02811 -1, 56, 57, 153, 59, -1, 171, 62, -1, 64,
02812 160, 176, 177, 178, 179, 180, 181, 182, 183, 184,
02813 185, 171, -1, -1, -1, -1, 176, 177, 178, 179,
02814 180, 181, 182, 183, 184, 185, -1, -1, -1, 141,
02815 142, -1, -1, 145, 146, 147, -1, -1, 150, -1,
02816 -1, -1, -1, -1, -1, -1, -1, 159, -1, -1,
02817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
02818 -1, -1, 174, 175, -1, -1, -1, -1, -1, -1,
02819 -1, -1, -1, -1, 186, 140, 141, 142, -1, -1,
02820 145, 146, 147, -1, -1, 150, 4, -1, -1, 7,
02821 -1, -1, -1, 11, 159, -1, 14, -1, -1, -1,
02822 -1, 19, 20, -1, -1, -1, -1, -1, 26, 174,
02823 175, -1, -1, -1, 32, 33, -1, -1, -1, -1,
02824 -1, 186, -1, -1, 42, -1, 44, 45, 46, -1,
02825 48, -1, -1, 4, 52, -1, 7, -1, 56, 57,
02826 11, 59, -1, 14, 62, -1, 64, -1, 19, 20,
02827 -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
02828 -1, 32, 33, -1, -1, -1, -1, -1, -1, -1,
02829 -1, 42, -1, 44, 45, 46, -1, 48, -1, -1,
02830 -1, 52, -1, -1, -1, 56, 57, -1, 59, -1,
02831 -1, 62, -1, 64, -1, -1, 7, -1, -1, -1,
02832 11, 12, 13, -1, -1, -1, -1, -1, 19, -1,
02833 -1, 22, -1, -1, -1, 26, -1, -1, -1, -1,
02834 -1, 32, 33, 141, 142, -1, -1, 145, 146, 147,
02835 -1, -1, 150, 44, 45, -1, -1, -1, 49, -1,
02836 -1, 159, -1, -1, -1, -1, 57, 58, 59, -1,
02837 -1, 62, 63, 64, -1, -1, 174, 175, -1, -1,
02838 -1, -1, -1, -1, -1, -1, -1, -1, 186, -1,
02839 141, 142, -1, -1, 145, 146, 147, -1, -1, 150,
02840 -1, -1, -1, -1, -1, -1, -1, -1, 159, -1,
02841 -1, 5, 6, 7, -1, -1, -1, 11, 12, 13,
02842 -1, -1, -1, 174, 175, 19, -1, -1, 22, 23,
02843 24, 25, 26, -1, 28, 186, -1, 31, 32, 33,
02844 34, 35, -1, -1, -1, -1, -1, 41, -1, -1,
02845 44, 45, -1, 47, -1, 49, -1, 51, -1, -1,
02846 -1, 55, -1, 57, 58, 59, 60, 61, 62, 63,
02847 64, 5, 6, 7, -1, -1, -1, 11, 12, 13,
02848 -1, -1, -1, -1, -1, 19, -1, -1, 22, 23,
02849 24, 25, 26, -1, 28, 186, -1, 31, 32, 33,
02850 34, 35, -1, -1, -1, -1, -1, 41, -1, -1,
02851 44, 45, -1, 47, -1, 49, -1, 51, -1, -1,
02852 -1, 55, -1, 57, 58, 59, 60, 61, 62, 63,
02853 64, 5, 6, 7, -1, -1, -1, 11, 12, 13,
02854 -1, -1, -1, -1, -1, 19, -1, -1, 22, 23,
02855 24, 25, 26, -1, 28, 149, -1, 31, 32, 33,
02856 34, 35, -1, 157, -1, 159, -1, 41, -1, -1,
02857 44, 45, -1, 47, -1, 49, -1, 51, -1, -1,
02858 -1, 55, -1, 57, 58, 59, 60, 61, 62, 63,
02859 64, -1, 186, 107, 108, 109, 110, 111, 112, 113,
02860 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
02861 124, 125, 126, 127, 128, 129, -1, -1, -1, 133,
02862 -1, -1, 156, 157, -1, 159, -1, -1, -1, -1,
02863 -1, -1, -1, -1, -1, -1, 5, 6, 7, -1,
02864 -1, -1, 11, 12, 13, -1, -1, -1, -1, -1,
02865 19, -1, 186, 22, 23, -1, 25, 26, -1, 28,
02866 -1, -1, 31, 32, 33, 34, 35, -1, -1, -1,
02867 -1, -1, 41, -1, -1, 44, 45, -1, 47, -1,
02868 49, -1, -1, 157, -1, 159, 55, -1, 57, 58,
02869 59, 60, 61, 62, 63, 64, -1, 6, 7, -1,
02870 -1, -1, 11, 12, 13, -1, -1, -1, -1, -1,
02871 19, -1, 186, 22, 23, 24, 25, 26, -1, 28,
02872 -1, -1, 31, 32, 33, 34, -1, -1, -1, 38,
02873 39, 40, 41, -1, -1, 44, 45, -1, 47, -1,
02874 49, -1, 51, -1, -1, -1, 55, -1, 57, 58,
02875 59, 60, 61, 62, 63, 64, 6, 7, -1, -1,
02876 -1, 11, 12, 13, -1, -1, -1, -1, -1, 19,
02877 -1, -1, 22, 23, 24, 25, 26, -1, 28, -1,
02878 -1, 31, 32, 33, 34, -1, -1, -1, 38, 39,
02879 40, 41, -1, -1, 44, 45, -1, 47, -1, 49,
02880 -1, 51, -1, -1, -1, 55, -1, 57, 58, 59,
02881 60, 61, 62, 63, 64, -1, -1, 186, -1, -1,
02882 -1, -1, -1, -1, 133, -1, -1, 6, 7, -1,
02883 -1, -1, 11, 12, 13, -1, -1, -1, -1, -1,
02884 19, -1, -1, 22, 23, -1, 25, 26, 157, 28,
02885 159, -1, 31, 32, 33, 34, -1, -1, -1, -1,
02886 -1, -1, 41, -1, -1, 44, 45, -1, 47, -1,
02887 49, -1, -1, -1, -1, -1, 55, 186, 57, 58,
02888 59, -1, 61, 62, 63, 64, -1, -1, -1, -1,
02889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
02890 -1, -1, -1, -1, -1, 155, -1, 157, -1, 159,
02891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
02892 -1, 6, 7, -1, -1, -1, 11, 12, 13, -1,
02893 -1, -1, -1, -1, 19, -1, 186, 22, 23, -1,
02894 25, 26, -1, 28, -1, -1, 31, 32, 33, 34,
02895 -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
02896 45, 140, 47, -1, 49, -1, 145, -1, -1, -1,
02897 55, 150, 57, 58, 59, -1, 61, 62, 63, 64,
02898 159, -1, -1, 162, 6, 7, -1, -1, -1, 11,
02899 12, 13, -1, -1, -1, -1, -1, 19, -1, -1,
02900 22, 23, 24, 25, 26, -1, 28, 186, -1, 31,
02901 32, 33, 34, -1, -1, -1, -1, -1, -1, 41,
02902 -1, -1, 44, 45, -1, 47, -1, 49, -1, 51,
02903 -1, -1, -1, 55, -1, 57, 58, 59, 60, 61,
02904 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
02905 -1, 6, 7, -1, -1, -1, 11, 12, 13, -1,
02906 -1, -1, -1, -1, 19, -1, -1, 22, 23, -1,
02907 25, 26, -1, 28, 159, -1, 31, 32, 33, 34,
02908 -1, -1, -1, -1, -1, -1, 41, -1, -1, 44,
02909 45, -1, 47, -1, 49, -1, -1, -1, -1, -1,
02910 55, 186, 57, 58, 59, -1, 61, 62, 63, 64,
02911 -1, -1, -1, -1, 6, 7, -1, -1, -1, 11,
02912 12, 13, -1, -1, -1, -1, -1, 19, -1, -1,
02913 22, 23, -1, 25, 26, 157, 28, 159, -1, 31,
02914 32, 33, 34, -1, -1, -1, -1, -1, -1, 41,
02915 -1, -1, 44, 45, -1, 47, -1, 49, -1, -1,
02916 -1, -1, -1, 55, 186, 57, 58, 59, -1, 61,
02917 62, 63, 64, -1, -1, -1, -1, 6, 7, -1,
02918 -1, -1, 11, 12, 13, -1, -1, -1, -1, -1,
02919 19, -1, -1, 22, 23, -1, 25, 26, -1, 28,
02920 -1, -1, 31, 32, 33, 34, -1, 162, -1, -1,
02921 -1, -1, 41, -1, -1, 44, 45, -1, 47, -1,
02922 49, -1, -1, -1, -1, -1, 55, -1, 57, 58,
02923 59, 186, 61, 62, 63, 64, 7, -1, -1, -1,
02924 11, 12, 13, -1, -1, -1, -1, -1, 19, -1,
02925 -1, 22, -1, -1, -1, 26, -1, -1, -1, -1,
02926 -1, 32, 33, -1, 7, -1, -1, 159, 11, 12,
02927 13, -1, -1, 44, 45, -1, 19, -1, 49, 22,
02928 -1, -1, -1, 26, -1, -1, 57, 58, 59, 32,
02929 33, 62, 63, 64, 186, -1, -1, -1, 17, -1,
02930 -1, 44, 45, -1, -1, -1, 49, -1, -1, -1,
02931 -1, -1, -1, -1, 57, 58, 59, 36, 7, 62,
02932 63, 64, 11, 12, 13, -1, -1, -1, -1, -1,
02933 19, -1, -1, 22, -1, -1, -1, 26, -1, -1,
02934 -1, -1, -1, 32, 33, -1, -1, -1, -1, -1,
02935 -1, -1, -1, -1, -1, 44, 45, 186, -1, -1,
02936 49, -1, -1, -1, -1, -1, -1, -1, 57, 58,
02937 59, -1, -1, 62, 63, 64, -1, -1, -1, -1,
02938 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
02939 -1, 162, -1, -1, -1, -1, -1, -1, -1, -1,
02940 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
02941 -1, -1, -1, -1, -1, 186, 159, -1, -1, -1,
02942 -1, 140, 141, 142, 143, 144, 145, 146, 147, 148,
02943 149, 150, 151, 152, -1, 154, -1, -1, -1, -1,
02944 159, 160, -1, 186, 163, 164, -1, 166, 167, 168,
02945 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
02946 179, 180, 181, 182, 183, 184, 185, 6, 7, 158,
02947 -1, -1, 11, -1, 13, -1, -1, -1, -1, -1,
02948 19, -1, -1, -1, 23, -1, 25, 26, -1, 28,
02949 -1, -1, 31, 32, 33, 34, -1, 186, -1, -1,
02950 -1, -1, 41, -1, -1, 44, 45, -1, 47, -1,
02951 -1, -1, -1, -1, -1, -1, 55, -1, -1, -1,
02952 59, -1, 61, -1, 63, 64
02953 };
02954
02955
02956
02957 static const yytype_uint16 yystos[] =
02958 {
02959 0, 107, 108, 109, 110, 111, 112, 113, 114, 115,
02960 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
02961 126, 127, 128, 129, 133, 215, 216, 217, 5, 6,
02962 7, 11, 12, 13, 19, 22, 23, 24, 25, 26,
02963 28, 31, 32, 33, 34, 35, 41, 44, 45, 47,
02964 49, 51, 55, 57, 58, 59, 60, 61, 62, 63,
02965 64, 157, 159, 186, 192, 213, 214, 218, 220, 269,
02966 289, 290, 291, 293, 294, 298, 303, 304, 305, 306,
02967 307, 308, 309, 310, 311, 312, 313, 317, 318, 319,
02968 320, 322, 323, 324, 328, 329, 331, 332, 333, 375,
02969 376, 378, 402, 403, 4, 14, 20, 42, 46, 48,
02970 52, 53, 56, 141, 142, 145, 146, 147, 150, 159,
02971 174, 175, 214, 220, 245, 247, 248, 249, 250, 251,
02972 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
02973 262, 266, 268, 269, 279, 322, 324, 419, 5, 25,
02974 35, 60, 220, 295, 299, 301, 303, 306, 317, 331,
02975 332, 299, 332, 9, 16, 67, 68, 69, 71, 72,
02976 73, 74, 75, 219, 315, 245, 312, 313, 320, 321,
02977 324, 332, 388, 389, 390, 245, 388, 159, 261, 159,
02978 245, 387, 388, 387, 159, 247, 273, 256, 423, 424,
02979 425, 426, 427, 428, 429, 430, 431, 387, 159, 159,
02980 12, 51, 57, 365, 302, 303, 317, 397, 159, 191,
02981 201, 213, 235, 0, 159, 51, 4, 214, 315, 149,
02982 293, 220, 35, 57, 220, 220, 375, 376, 191, 193,
02983 37, 67, 68, 69, 70, 72, 75, 142, 281, 285,
02984 379, 293, 98, 145, 150, 159, 220, 277, 369, 370,
02985 371, 377, 380, 381, 385, 386, 408, 192, 309, 308,
02986 309, 307, 308, 309, 402, 68, 69, 72, 75, 186,
02987 214, 281, 314, 315, 157, 156, 156, 69, 72, 161,
02988 186, 214, 281, 292, 315, 159, 400, 54, 156, 406,
02989 414, 149, 149, 149, 191, 207, 149, 247, 159, 260,
02990 260, 260, 260, 260, 260, 191, 203, 260, 260, 17,
02991 36, 37, 70, 71, 73, 74, 280, 281, 282, 283,
02992 285, 154, 157, 153, 160, 171, 176, 177, 178, 179,
02993 180, 181, 182, 183, 184, 185, 170, 152, 151, 150,
02994 168, 169, 148, 149, 166, 167, 172, 173, 146, 147,
02995 143, 144, 145, 164, 165, 138, 140, 159, 163, 174,
02996 175, 272, 272, 272, 272, 159, 315, 35, 281, 369,
02997 371, 157, 292, 315, 246, 248, 249, 161, 161, 158,
02998 68, 69, 72, 313, 320, 324, 69, 281, 380, 320,
02999 320, 324, 157, 380, 203, 387, 158, 158, 213, 158,
03000 273, 154, 158, 153, 160, 171, 176, 177, 178, 179,
03001 180, 181, 182, 183, 184, 185, 170, 152, 151, 150,
03002 168, 169, 149, 166, 167, 162, 214, 302, 394, 395,
03003 396, 140, 192, 212, 220, 384, 385, 398, 399, 314,
03004 149, 314, 148, 154, 160, 398, 394, 8, 15, 18,
03005 27, 29, 30, 43, 50, 54, 65, 77, 78, 80,
03006 136, 156, 157, 214, 223, 224, 225, 227, 228, 231,
03007 232, 233, 234, 236, 237, 238, 239, 240, 241, 242,
03008 243, 413, 4, 149, 156, 293, 192, 198, 160, 191,
03009 210, 363, 364, 281, 191, 197, 296, 220, 67, 68,
03010 69, 70, 71, 72, 73, 74, 75, 278, 281, 282,
03011 285, 330, 281, 158, 158, 199, 186, 149, 366, 366,
03012 186, 69, 72, 51, 67, 68, 69, 72, 75, 379,
03013 400, 321, 159, 277, 382, 383, 385, 37, 278, 281,
03014 211, 154, 157, 90, 160, 406, 414, 54, 161, 214,
03015 286, 407, 94, 159, 384, 381, 386, 366, 193, 51,
03016 68, 69, 72, 156, 191, 316, 289, 366, 38, 39,
03017 40, 61, 220, 358, 359, 361, 193, 69, 72, 75,
03018 315, 157, 161, 191, 194, 406, 191, 405, 387, 387,
03019 387, 85, 86, 387, 191, 204, 87, 88, 140, 260,
03020 159, 263, 388, 17, 36, 140, 141, 142, 143, 144,
03021 145, 146, 147, 148, 149, 150, 151, 152, 154, 159,
03022 160, 163, 164, 166, 167, 168, 169, 170, 171, 172,
03023 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
03024 183, 184, 185, 284, 366, 366, 51, 70, 280, 102,
03025 103, 149, 247, 245, 247, 250, 247, 247, 247, 247,
03026 247, 247, 247, 247, 247, 247, 251, 252, 253, 254,
03027 255, 255, 256, 256, 256, 256, 257, 257, 258, 258,
03028 259, 259, 259, 260, 260, 51, 220, 267, 275, 276,
03029 277, 378, 245, 158, 273, 267, 275, 4, 160, 296,
03030 157, 157, 161, 69, 160, 160, 158, 159, 220, 384,
03031 385, 391, 392, 401, 260, 158, 247, 245, 423, 426,
03032 423, 423, 423, 423, 423, 423, 423, 423, 423, 423,
03033 427, 428, 429, 430, 431, 431, 256, 256, 256, 160,
03034 398, 158, 154, 162, 214, 246, 393, 94, 95, 159,
03035 278, 281, 399, 158, 159, 384, 401, 160, 210, 363,
03036 160, 423, 160, 158, 157, 157, 241, 315, 214, 226,
03037 245, 159, 239, 245, 295, 219, 241, 242, 159, 242,
03038 243, 242, 243, 201, 159, 242, 243, 159, 242, 243,
03039 241, 201, 235, 158, 363, 289, 296, 96, 97, 148,
03040 148, 154, 51, 67, 68, 69, 70, 71, 72, 73,
03041 74, 270, 271, 220, 157, 281, 366, 366, 366, 69,
03042 70, 72, 75, 330, 157, 388, 191, 209, 367, 368,
03043 186, 186, 366, 191, 196, 186, 366, 186, 382, 158,
03044 384, 400, 383, 51, 145, 278, 370, 159, 156, 247,
03045 410, 286, 67, 71, 220, 287, 288, 406, 400, 211,
03046 68, 281, 196, 366, 316, 24, 51, 60, 133, 157,
03047 159, 214, 220, 303, 306, 317, 331, 332, 334, 335,
03048 336, 337, 339, 344, 345, 346, 347, 348, 349, 350,
03049 361, 373, 374, 376, 402, 404, 155, 161, 214, 361,
03050 362, 69, 72, 281, 154, 61, 214, 360, 69, 281,
03051 366, 161, 358, 394, 10, 416, 417, 133, 148, 148,
03052 148, 261, 159, 148, 88, 89, 387, 245, 139, 191,
03053 208, 272, 213, 140, 140, 139, 158, 199, 196, 366,
03054 366, 161, 196, 67, 68, 142, 274, 281, 142, 139,
03055 158, 158, 296, 157, 247, 247, 220, 391, 394, 392,
03056 384, 401, 161, 247, 160, 162, 396, 139, 401, 159,
03057 387, 148, 387, 423, 53, 54, 154, 156, 157, 161,
03058 320, 65, 157, 157, 191, 205, 222, 415, 416, 157,
03059 201, 21, 244, 222, 191, 202, 222, 155, 157, 148,
03060 155, 157, 365, 397, 293, 293, 364, 196, 366, 366,
03061 366, 75, 297, 330, 366, 366, 157, 385, 92, 93,
03062 148, 148, 154, 70, 186, 158, 211, 196, 199, 321,
03063 273, 155, 410, 412, 406, 272, 272, 69, 72, 281,
03064 154, 211, 68, 70, 133, 214, 315, 325, 326, 327,
03065 51, 149, 155, 159, 220, 337, 340, 341, 342, 281,
03066 192, 349, 402, 157, 292, 155, 344, 361, 99, 220,
03067 351, 352, 354, 355, 356, 357, 377, 382, 409, 400,
03068 157, 154, 154, 161, 160, 358, 220, 366, 69, 72,
03069 359, 220, 69, 161, 358, 158, 159, 416, 155, 159,
03070 159, 159, 387, 159, 245, 387, 158, 158, 260, 89,
03071 91, 140, 264, 265, 385, 139, 139, 70, 280, 247,
03072 220, 277, 378, 67, 68, 274, 186, 142, 274, 274,
03073 157, 157, 158, 157, 281, 158, 158, 423, 247, 398,
03074 12, 159, 81, 82, 134, 158, 416, 201, 201, 242,
03075 243, 158, 77, 79, 157, 158, 293, 70, 72, 271,
03076 186, 75, 157, 423, 387, 209, 368, 366, 69, 70,
03077 72, 75, 278, 199, 158, 154, 411, 417, 272, 366,
03078 69, 72, 288, 366, 155, 160, 155, 154, 149, 363,
03079 340, 69, 72, 281, 343, 158, 158, 400, 51, 67,
03080 68, 69, 72, 278, 157, 161, 161, 278, 154, 157,
03081 100, 101, 160, 406, 414, 407, 159, 300, 338, 340,
03082 341, 372, 373, 376, 300, 4, 69, 72, 281, 366,
03083 69, 72, 281, 358, 191, 195, 162, 388, 418, 245,
03084 245, 245, 158, 245, 158, 158, 260, 387, 273, 245,
03085 140, 265, 366, 281, 191, 200, 274, 186, 53, 214,
03086 321, 420, 421, 158, 314, 245, 245, 388, 201, 201,
03087 201, 229, 245, 299, 191, 230, 201, 366, 366, 197,
03088 186, 186, 366, 366, 410, 155, 272, 272, 366, 246,
03089 327, 363, 148, 158, 366, 69, 72, 343, 158, 196,
03090 366, 157, 246, 161, 161, 353, 354, 355, 357, 4,
03091 246, 191, 338, 340, 154, 400, 366, 69, 72, 366,
03092 69, 72, 321, 420, 398, 158, 158, 158, 158, 158,
03093 158, 158, 139, 246, 200, 159, 420, 160, 158, 371,
03094 157, 230, 191, 206, 221, 197, 272, 148, 344, 366,
03095 70, 278, 246, 246, 158, 158, 372, 366, 366, 420,
03096 239, 272, 159, 263, 139, 158, 387, 422, 220, 277,
03097 157, 160, 230, 221, 83, 84, 135, 214, 157, 344,
03098 366, 157, 387, 272, 154, 158, 281, 247, 221, 157,
03099 245, 388, 226, 158, 387, 157, 226, 371, 158, 272,
03100 226, 158, 160, 158, 247
03101 };
03102
03103 #define yyerrok (yyerrstatus = 0)
03104 #define yyclearin (yychar = YYEMPTY)
03105 #define YYEMPTY (-2)
03106 #define YYEOF 0
03107
03108 #define YYACCEPT goto yyacceptlab
03109 #define YYABORT goto yyabortlab
03110 #define YYERROR goto yyerrorlab
03111
03112
03113
03114
03115
03116
03117 #define YYFAIL goto yyerrlab
03118
03119 #define YYRECOVERING() (!!yyerrstatus)
03120
03121 #define YYBACKUP(Token, Value) \
03122 do \
03123 if (yychar == YYEMPTY && yylen == 1) \
03124 { \
03125 yychar = (Token); \
03126 yylval = (Value); \
03127 yytoken = YYTRANSLATE (yychar); \
03128 YYPOPSTACK (1); \
03129 goto yybackup; \
03130 } \
03131 else \
03132 { \
03133 yyerror (as_result, YY_("syntax error: cannot back up")); \
03134 YYERROR; \
03135 } \
03136 while (YYID (0))
03137
03138
03139 #define YYTERROR 1
03140 #define YYERRCODE 256
03141
03142
03143
03144
03145
03146
03147 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
03148 #ifndef YYLLOC_DEFAULT
03149 # define YYLLOC_DEFAULT(Current, Rhs, N) \
03150 do \
03151 if (YYID (N)) \
03152 { \
03153 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
03154 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
03155 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
03156 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
03157 } \
03158 else \
03159 { \
03160 (Current).first_line = (Current).last_line = \
03161 YYRHSLOC (Rhs, 0).last_line; \
03162 (Current).first_column = (Current).last_column = \
03163 YYRHSLOC (Rhs, 0).last_column; \
03164 } \
03165 while (YYID (0))
03166 #endif
03167
03168
03169
03170
03171
03172
03173 #ifndef YY_LOCATION_PRINT
03174 # if YYLTYPE_IS_TRIVIAL
03175 # define YY_LOCATION_PRINT(File, Loc) \
03176 fprintf (File, "%d.%d-%d.%d", \
03177 (Loc).first_line, (Loc).first_column, \
03178 (Loc).last_line, (Loc).last_column)
03179 # else
03180 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
03181 # endif
03182 #endif
03183
03184
03185
03186
03187 #ifdef YYLEX_PARAM
03188 # define YYLEX yylex (&yylval, YYLEX_PARAM)
03189 #else
03190 # define YYLEX yylex (&yylval)
03191 #endif
03192
03193
03194 #if YYDEBUG
03195
03196 # ifndef YYFPRINTF
03197 # include <stdio.h>
03198 # define YYFPRINTF fprintf
03199 # endif
03200
03201 # define YYDPRINTF(Args) \
03202 do { \
03203 if (yydebug) \
03204 YYFPRINTF Args; \
03205 } while (YYID (0))
03206
03207 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
03208 do { \
03209 if (yydebug) \
03210 { \
03211 YYFPRINTF (stderr, "%s ", Title); \
03212 yy_symbol_print (stderr, \
03213 Type, Value, as_result); \
03214 YYFPRINTF (stderr, "\n"); \
03215 } \
03216 } while (YYID (0))
03217
03218
03219
03220
03221
03222
03223
03224 #if (defined __STDC__ || defined __C99__FUNC__ \
03225 || defined __cplusplus || defined _MSC_VER)
03226 static void
03227 yy_symbol_value_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, ptr<as_base> & as_result)
03228 #else
03229 static void
03230 yy_symbol_value_print (yyoutput, yytype, yyvaluep, as_result)
03231 FILE *yyoutput;
03232 int yytype;
03233 const YYSTYPE * const yyvaluep;
03234 ptr<as_base> & as_result;
03235 #endif
03236 {
03237 if (!yyvaluep)
03238 return;
03239 YYUSE (as_result);
03240 # ifdef YYPRINT
03241 if (yytype < YYNTOKENS)
03242 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
03243 # else
03244 YYUSE (yyoutput);
03245 # endif
03246 switch (yytype)
03247 {
03248 default:
03249 break;
03250 }
03251 }
03252
03253
03254
03255
03256
03257
03258 #if (defined __STDC__ || defined __C99__FUNC__ \
03259 || defined __cplusplus || defined _MSC_VER)
03260 static void
03261 yy_symbol_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep, ptr<as_base> & as_result)
03262 #else
03263 static void
03264 yy_symbol_print (yyoutput, yytype, yyvaluep, as_result)
03265 FILE *yyoutput;
03266 int yytype;
03267 const YYSTYPE * const yyvaluep;
03268 ptr<as_base> & as_result;
03269 #endif
03270 {
03271 if (yytype < YYNTOKENS)
03272 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
03273 else
03274 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
03275
03276 yy_symbol_value_print (yyoutput, yytype, yyvaluep, as_result);
03277 YYFPRINTF (yyoutput, ")");
03278 }
03279
03280
03281
03282
03283
03284
03285 #if (defined __STDC__ || defined __C99__FUNC__ \
03286 || defined __cplusplus || defined _MSC_VER)
03287 static void
03288 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
03289 #else
03290 static void
03291 yy_stack_print (bottom, top)
03292 yytype_int16 *bottom;
03293 yytype_int16 *top;
03294 #endif
03295 {
03296 YYFPRINTF (stderr, "Stack now");
03297 for (; bottom <= top; ++bottom)
03298 YYFPRINTF (stderr, " %d", *bottom);
03299 YYFPRINTF (stderr, "\n");
03300 }
03301
03302 # define YY_STACK_PRINT(Bottom, Top) \
03303 do { \
03304 if (yydebug) \
03305 yy_stack_print ((Bottom), (Top)); \
03306 } while (YYID (0))
03307
03308
03309
03310
03311
03312
03313 #if (defined __STDC__ || defined __C99__FUNC__ \
03314 || defined __cplusplus || defined _MSC_VER)
03315 static void
03316 yy_reduce_print (YYSTYPE *yyvsp,
03317 int yyrule, ptr<as_base> & as_result)
03318 #else
03319 static void
03320 yy_reduce_print (yyvsp, yyrule, as_result)
03321 YYSTYPE *yyvsp;
03322
03323 int yyrule;
03324 ptr<as_base> & as_result;
03325 #endif
03326 {
03327 int yynrhs = yyr2[yyrule];
03328 int yyi;
03329 unsigned long int yylno = yyrline[yyrule];
03330 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
03331 yyrule - 1, yylno);
03332
03333 for (yyi = 0; yyi < yynrhs; yyi++)
03334 {
03335 fprintf (stderr, " $%d = ", yyi + 1);
03336 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
03337 &(yyvsp[(yyi + 1) - (yynrhs)])
03338 , as_result);
03339 fprintf (stderr, "\n");
03340 }
03341 }
03342
03343 # define YY_REDUCE_PRINT(Rule) \
03344 do { \
03345 if (yydebug) \
03346 yy_reduce_print (yyvsp, Rule, as_result); \
03347 } while (YYID (0))
03348
03349
03350
03351 int yydebug;
03352 #else
03353 # define YYDPRINTF(Args)
03354 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
03355 # define YY_STACK_PRINT(Bottom, Top)
03356 # define YY_REDUCE_PRINT(Rule)
03357 #endif
03358
03359
03360
03361 #ifndef YYINITDEPTH
03362 # define YYINITDEPTH 200
03363 #endif
03364
03365
03366
03367
03368
03369
03370
03371
03372 #ifndef YYMAXDEPTH
03373 # define YYMAXDEPTH 10000
03374 #endif
03375
03376
03377
03378 #if YYERROR_VERBOSE
03379
03380 # ifndef yystrlen
03381 # if defined __GLIBC__ && defined _STRING_H
03382 # define yystrlen strlen
03383 # else
03384
03385 #if (defined __STDC__ || defined __C99__FUNC__ \
03386 || defined __cplusplus || defined _MSC_VER)
03387 static YYSIZE_T
03388 yystrlen (const char *yystr)
03389 #else
03390 static YYSIZE_T
03391 yystrlen (yystr)
03392 const char *yystr;
03393 #endif
03394 {
03395 YYSIZE_T yylen;
03396 for (yylen = 0; yystr[yylen]; yylen++)
03397 continue;
03398 return yylen;
03399 }
03400 # endif
03401 # endif
03402
03403 # ifndef yystpcpy
03404 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
03405 # define yystpcpy stpcpy
03406 # else
03407
03408
03409 #if (defined __STDC__ || defined __C99__FUNC__ \
03410 || defined __cplusplus || defined _MSC_VER)
03411 static char *
03412 yystpcpy (char *yydest, const char *yysrc)
03413 #else
03414 static char *
03415 yystpcpy (yydest, yysrc)
03416 char *yydest;
03417 const char *yysrc;
03418 #endif
03419 {
03420 char *yyd = yydest;
03421 const char *yys = yysrc;
03422
03423 while ((*yyd++ = *yys++) != '\0')
03424 continue;
03425
03426 return yyd - 1;
03427 }
03428 # endif
03429 # endif
03430
03431 # ifndef yytnamerr
03432
03433
03434
03435
03436
03437
03438
03439 static YYSIZE_T
03440 yytnamerr (char *yyres, const char *yystr)
03441 {
03442 if (*yystr == '"')
03443 {
03444 YYSIZE_T yyn = 0;
03445 char const *yyp = yystr;
03446
03447 for (;;)
03448 switch (*++yyp)
03449 {
03450 case '\'':
03451 case ',':
03452 goto do_not_strip_quotes;
03453
03454 case '\\':
03455 if (*++yyp != '\\')
03456 goto do_not_strip_quotes;
03457
03458 default:
03459 if (yyres)
03460 yyres[yyn] = *yyp;
03461 yyn++;
03462 break;
03463
03464 case '"':
03465 if (yyres)
03466 yyres[yyn] = '\0';
03467 return yyn;
03468 }
03469 do_not_strip_quotes: ;
03470 }
03471
03472 if (! yyres)
03473 return yystrlen (yystr);
03474
03475 return yystpcpy (yyres, yystr) - yyres;
03476 }
03477 # endif
03478
03479
03480
03481
03482
03483
03484
03485
03486 static YYSIZE_T
03487 yysyntax_error (char *yyresult, int yystate, int yychar)
03488 {
03489 int yyn = yypact[yystate];
03490
03491 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
03492 return 0;
03493 else
03494 {
03495 int yytype = YYTRANSLATE (yychar);
03496 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
03497 YYSIZE_T yysize = yysize0;
03498 YYSIZE_T yysize1;
03499 int yysize_overflow = 0;
03500 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
03501 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
03502 int yyx;
03503
03504 # if 0
03505
03506
03507 YY_("syntax error, unexpected %s");
03508 YY_("syntax error, unexpected %s, expecting %s");
03509 YY_("syntax error, unexpected %s, expecting %s or %s");
03510 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
03511 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
03512 # endif
03513 char *yyfmt;
03514 char const *yyf;
03515 static char const yyunexpected[] = "syntax error, unexpected %s";
03516 static char const yyexpecting[] = ", expecting %s";
03517 static char const yyor[] = " or %s";
03518 char yyformat[sizeof yyunexpected
03519 + sizeof yyexpecting - 1
03520 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
03521 * (sizeof yyor - 1))];
03522 char const *yyprefix = yyexpecting;
03523
03524
03525
03526 int yyxbegin = yyn < 0 ? -yyn : 0;
03527
03528
03529 int yychecklim = YYLAST - yyn + 1;
03530 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
03531 int yycount = 1;
03532
03533 yyarg[0] = yytname[yytype];
03534 yyfmt = yystpcpy (yyformat, yyunexpected);
03535
03536 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
03537 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
03538 {
03539 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
03540 {
03541 yycount = 1;
03542 yysize = yysize0;
03543 yyformat[sizeof yyunexpected - 1] = '\0';
03544 break;
03545 }
03546 yyarg[yycount++] = yytname[yyx];
03547 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
03548 yysize_overflow |= (yysize1 < yysize);
03549 yysize = yysize1;
03550 yyfmt = yystpcpy (yyfmt, yyprefix);
03551 yyprefix = yyor;
03552 }
03553
03554 yyf = YY_(yyformat);
03555 yysize1 = yysize + yystrlen (yyf);
03556 yysize_overflow |= (yysize1 < yysize);
03557 yysize = yysize1;
03558
03559 if (yysize_overflow)
03560 return YYSIZE_MAXIMUM;
03561
03562 if (yyresult)
03563 {
03564
03565
03566
03567 char *yyp = yyresult;
03568 int yyi = 0;
03569 while ((*yyp = *yyf) != '\0')
03570 {
03571 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
03572 {
03573 yyp += yytnamerr (yyp, yyarg[yyi++]);
03574 yyf += 2;
03575 }
03576 else
03577 {
03578 yyp++;
03579 yyf++;
03580 }
03581 }
03582 }
03583 return yysize;
03584 }
03585 }
03586 #endif
03587
03588
03589
03590
03591
03592
03593
03594 #if (defined __STDC__ || defined __C99__FUNC__ \
03595 || defined __cplusplus || defined _MSC_VER)
03596 static void
03597 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, ptr<as_base> & as_result)
03598 #else
03599 static void
03600 yydestruct (yymsg, yytype, yyvaluep, as_result)
03601 const char *yymsg;
03602 int yytype;
03603 YYSTYPE *yyvaluep;
03604 ptr<as_base> & as_result;
03605 #endif
03606 {
03607 YYUSE (yyvaluep);
03608 YYUSE (as_result);
03609
03610 if (!yymsg)
03611 yymsg = "Deleting";
03612 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
03613
03614 switch (yytype)
03615 {
03616
03617 default:
03618 break;
03619 }
03620 }
03621
03622
03623
03624
03625 #ifdef YYPARSE_PARAM
03626 #if defined __STDC__ || defined __cplusplus
03627 int yyparse (void *YYPARSE_PARAM);
03628 #else
03629 int yyparse ();
03630 #endif
03631 #else
03632 #if defined __STDC__ || defined __cplusplus
03633 int yyparse (ptr<as_base> & as_result);
03634 #else
03635 int yyparse ();
03636 #endif
03637 #endif
03638
03639
03640
03641
03642
03643
03644
03645
03646
03647
03648 #ifdef YYPARSE_PARAM
03649 #if (defined __STDC__ || defined __C99__FUNC__ \
03650 || defined __cplusplus || defined _MSC_VER)
03651 int
03652 yyparse (void *YYPARSE_PARAM)
03653 #else
03654 int
03655 yyparse (YYPARSE_PARAM)
03656 void *YYPARSE_PARAM;
03657 #endif
03658 #else
03659 #if (defined __STDC__ || defined __C99__FUNC__ \
03660 || defined __cplusplus || defined _MSC_VER)
03661 int
03662 yyparse (ptr<as_base> & as_result)
03663 #else
03664 int
03665 yyparse (as_result)
03666 ptr<as_base> & as_result;
03667 #endif
03668 #endif
03669 {
03670
03671 int yychar;
03672
03673
03674 YYSTYPE yylval;
03675
03676
03677 int yynerrs;
03678
03679 int yystate;
03680 int yyn;
03681 int yyresult;
03682
03683 int yyerrstatus;
03684
03685 int yytoken = 0;
03686 #if YYERROR_VERBOSE
03687
03688 char yymsgbuf[128];
03689 char *yymsg = yymsgbuf;
03690 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
03691 #endif
03692
03693
03694
03695
03696
03697
03698
03699
03700
03701
03702 yytype_int16 yyssa[YYINITDEPTH];
03703 yytype_int16 *yyss = yyssa;
03704 yytype_int16 *yyssp;
03705
03706
03707 YYSTYPE yyvsa[YYINITDEPTH];
03708 YYSTYPE *yyvs = yyvsa;
03709 YYSTYPE *yyvsp;
03710
03711
03712
03713 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
03714
03715 YYSIZE_T yystacksize = YYINITDEPTH;
03716
03717
03718
03719 YYSTYPE yyval;
03720
03721
03722
03723
03724 int yylen = 0;
03725
03726 YYDPRINTF ((stderr, "Starting parse\n"));
03727
03728 yystate = 0;
03729 yyerrstatus = 0;
03730 yynerrs = 0;
03731 yychar = YYEMPTY;
03732
03733
03734
03735
03736
03737
03738 yyssp = yyss;
03739 yyvsp = yyvs;
03740
03741 goto yysetstate;
03742
03743
03744
03745
03746 yynewstate:
03747
03748
03749 yyssp++;
03750
03751 yysetstate:
03752 *yyssp = yystate;
03753
03754 if (yyss + yystacksize - 1 <= yyssp)
03755 {
03756
03757 YYSIZE_T yysize = yyssp - yyss + 1;
03758
03759 #ifdef yyoverflow
03760 {
03761
03762
03763
03764 YYSTYPE *yyvs1 = yyvs;
03765 yytype_int16 *yyss1 = yyss;
03766
03767
03768
03769
03770
03771
03772 yyoverflow (YY_("memory exhausted"),
03773 &yyss1, yysize * sizeof (*yyssp),
03774 &yyvs1, yysize * sizeof (*yyvsp),
03775
03776 &yystacksize);
03777
03778 yyss = yyss1;
03779 yyvs = yyvs1;
03780 }
03781 #else
03782 # ifndef YYSTACK_RELOCATE
03783 goto yyexhaustedlab;
03784 # else
03785
03786 if (YYMAXDEPTH <= yystacksize)
03787 goto yyexhaustedlab;
03788 yystacksize *= 2;
03789 if (YYMAXDEPTH < yystacksize)
03790 yystacksize = YYMAXDEPTH;
03791
03792 {
03793 yytype_int16 *yyss1 = yyss;
03794 union yyalloc *yyptr =
03795 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
03796 if (! yyptr)
03797 goto yyexhaustedlab;
03798 YYSTACK_RELOCATE (yyss);
03799 YYSTACK_RELOCATE (yyvs);
03800
03801 # undef YYSTACK_RELOCATE
03802 if (yyss1 != yyssa)
03803 YYSTACK_FREE (yyss1);
03804 }
03805 # endif
03806 #endif
03807
03808 yyssp = yyss + yysize - 1;
03809 yyvsp = yyvs + yysize - 1;
03810
03811
03812 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
03813 (unsigned long int) yystacksize));
03814
03815 if (yyss + yystacksize - 1 <= yyssp)
03816 YYABORT;
03817 }
03818
03819 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
03820
03821 goto yybackup;
03822
03823
03824
03825
03826 yybackup:
03827
03828
03829
03830
03831
03832 yyn = yypact[yystate];
03833 if (yyn == YYPACT_NINF)
03834 goto yydefault;
03835
03836
03837
03838
03839 if (yychar == YYEMPTY)
03840 {
03841 YYDPRINTF ((stderr, "Reading a token: "));
03842 yychar = YYLEX;
03843 }
03844
03845 if (yychar <= YYEOF)
03846 {
03847 yychar = yytoken = YYEOF;
03848 YYDPRINTF ((stderr, "Now at end of input.\n"));
03849 }
03850 else
03851 {
03852 yytoken = YYTRANSLATE (yychar);
03853 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
03854 }
03855
03856
03857
03858 yyn += yytoken;
03859 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
03860 goto yydefault;
03861 yyn = yytable[yyn];
03862 if (yyn <= 0)
03863 {
03864 if (yyn == 0 || yyn == YYTABLE_NINF)
03865 goto yyerrlab;
03866 yyn = -yyn;
03867 goto yyreduce;
03868 }
03869
03870 if (yyn == YYFINAL)
03871 YYACCEPT;
03872
03873
03874
03875 if (yyerrstatus)
03876 yyerrstatus--;
03877
03878
03879 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
03880
03881
03882 if (yychar != YYEOF)
03883 yychar = YYEMPTY;
03884
03885 yystate = yyn;
03886 *++yyvsp = yylval;
03887
03888 goto yynewstate;
03889
03890
03891
03892
03893
03894 yydefault:
03895 yyn = yydefact[yystate];
03896 if (yyn == 0)
03897 goto yyerrlab;
03898 goto yyreduce;
03899
03900
03901
03902
03903
03904 yyreduce:
03905
03906 yylen = yyr2[yyn];
03907
03908
03909
03910
03911
03912
03913
03914
03915
03916 yyval = yyvsp[1-yylen];
03917
03918
03919 YY_REDUCE_PRINT (yyn);
03920 switch (yyn)
03921 {
03922 case 2:
03923 #line 412 "parser.y"
03924 {
03925 lassert3( yychar == YYEMPTY, "Lookahead is supposed to be empty.", loc((yyvsp[(1) - (1)].sel(as_no_token))) );
03926 (yyval.sel(as_no_token)) = (yyvsp[(1) - (1)].sel(as_no_token));
03927 ;}
03928 break;
03929
03930 case 3:
03931 #line 420 "parser.y"
03932 {
03933 lassert3( yychar != YYEMPTY, "Lookahead is not supposed to be empty.", loc((yyvsp[(1) - (1)].sel(as_no_token))) );
03934 (yyval.sel(as_no_token)) = (yyvsp[(1) - (1)].sel(as_no_token));
03935 ;}
03936 break;
03937
03938 case 4:
03939 #line 428 "parser.y"
03940 { hinter::qual_scope_set_root(); ;}
03941 break;
03942
03943 case 8:
03944 #line 448 "parser.y"
03945 { hinter::namespace_mode_set(true); ;}
03946 break;
03947
03948 case 9:
03949 #line 454 "parser.y"
03950 { hinter::namespace_mode_set(false); ;}
03951 break;
03952
03953 case 10:
03954 #line 462 "parser.y"
03955 {
03956
03957
03958 if (yychar != YYEMPTY)
03959 clear_lookahead();
03960 hinter::qual_scope_set( NULL );
03961 ;}
03962 break;
03963
03964 case 12:
03965 #line 480 "parser.y"
03966 {
03967 int next_val = manager::peek()->type_get();
03968 switch (next_val) {
03969 case TOK_BREAK:
03970 case TOK_CATCH:
03971 case TOK_CONTINUE:
03972 case TOK_DO:
03973 case TOK_ELSE:
03974 case TOK_FOR:
03975 case TOK_GOTO:
03976 case TOK_IF:
03977 case TOK_RETURN:
03978 case TOK_SWITCH:
03979 case TOK_TRY:
03980 case TOK_WHILE:
03981 case TOK_SEMICOLON:
03982 case TOK_EOF:
03983 case TOK_LEFT_BRACE:
03984 case TOK_RIGHT_BRACE:
03985
03986 break;
03987 case TOK_PAD_LABEL:
03988 case TOK_PAD_BLOCK_DECL:
03989 case TOK_PAD_EXPR_STMT:
03990
03991 break;
03992 default:
03993
03994 lassert2( is_not_pad(next_val), "Illegal pad token." );
03995
03996 try_begin( "expr_stmt_vs_block_decl_vs_label" );
03997 try_and_commit( TOK_START_LABEL, TOK_PAD_LABEL, r1 );
03998 try_and_commit( TOK_START_BLOCK_DECL, TOK_PAD_BLOCK_DECL, r2 );
03999 try_and_commit( TOK_START_EXPR_STMT, TOK_PAD_EXPR_STMT, r3 );
04000
04001 ptr<bison_pack_token> err_pack = manager::pack( TOK_PACK_ERROR_STMT, NULL );
04002 syntax_error::disa_stmt( err_pack, loc(r2->last_token_get()),
04003 loc(r3->last_token_get()) );
04004 try_end_skip();
04005 }
04006 ;}
04007 break;
04008
04009 case 13:
04010 #line 525 "parser.y"
04011 {
04012 int next_val = manager::peek()->type_get();
04013 if (is_not_pad(next_val) && next_val != TOK_SEMICOLON ) {
04014 try_begin( "expr_stmt_vs_simple_decl" );
04015
04016 try_and_commit( TOK_START_SIMPLE_DECL, TOK_PAD_SIMPLE_DECL, r1 );
04017 try_and_commit( TOK_START_EXPR_STMT, TOK_PAD_EXPR_STMT, r2 );
04018 try_end_fail();
04019 }
04020 ;}
04021 break;
04022
04023 case 14:
04024 #line 539 "parser.y"
04025 {
04026 if (is_not_pad(manager::peek()->type_get())) {
04027 try_begin( "cast_expr_vs_expr_in_pars" );
04028
04029
04030
04031
04032
04033 try_and_commit( TOK_START_TYPE_ID_RPAR_CAST_EXPR,
04034 TOK_PAD_TYPE_ID_RPAR_CAST_EXPR, r1 );
04035 try_and_commit( TOK_START_EXPR_RPAR, TOK_PAD_EXPR_RPAR, r2 );
04036 try_end_fail();
04037 }
04038 ;}
04039 break;
04040
04041 case 15:
04042 #line 557 "parser.y"
04043 {
04044 if (is_not_pad(manager::peek()->type_get())) {
04045 try_begin( "expr_vs_type_id" );
04046
04047 try_and_commit( TOK_START_TYPE_ID_RPAR, TOK_PAD_TYPE_ID_RPAR, r1 );
04048 try_and_commit( TOK_START_EXPR_RPAR, TOK_PAD_EXPR_RPAR, r2 );
04049 try_end_fail();
04050 }
04051 ;}
04052 break;
04053
04054 case 16:
04055 #line 570 "parser.y"
04056 {
04057 ptr<source_location> prev_loc = loc(manager::prev_yylex());
04058 int next_val = manager::peek()->type_get();
04059 if (is_not_pad(next_val)) {
04060 try_begin( "condition" );
04061
04062 try_and_commit( TOK_START_COND_DECL, TOK_PAD_COND_DECL, r1 );
04063 try_and_commit( TOK_START_COND_EXPR, TOK_PAD_COND_EXPR, r2 );
04064
04065 ptr<bison_pack_token> err_pack =
04066 manager::pack( TOK_PACK_ERROR_COND, prev_loc );
04067 syntax_error::condition( err_pack, loc(r1->last_token_get()),
04068 loc(r2->last_token_get()) );
04069 try_end_skip();
04070 }
04071 ;}
04072 break;
04073
04074 case 17:
04075 #line 590 "parser.y"
04076 {
04077 ptr<source_location> prev_loc = loc(manager::prev_yylex());
04078 int next_val = manager::peek()->type_get();
04079 if (is_not_pad(next_val) && next_val != TOK_SEMICOLON ) {
04080 try_begin( "condition" );
04081 try_and_commit( TOK_START_FOR_COND_DECL, TOK_PAD_FOR_COND_DECL, r1 );
04082 try_and_commit( TOK_START_FOR_COND_EXPR, TOK_PAD_FOR_COND_EXPR, r2 );
04083
04084 ptr<bison_pack_token> err_pack =
04085 manager::pack( TOK_PACK_ERROR_FOR_COND, prev_loc );
04086 syntax_error::condition( err_pack, loc(r1->last_token_get()),
04087 loc(r2->last_token_get()) );
04088 try_end_skip();
04089 }
04090 ;}
04091 break;
04092
04093 case 18:
04094 #line 609 "parser.y"
04095 {
04096 if (is_not_pad(manager::peek()->type_get())) {
04097 try_begin( "sizeof" );
04098
04099 try_and_commit( TOK_START_SIZEOF_TYPE_ID, TOK_PAD_SIZEOF_TYPE_ID, r2 );
04100 try_and_commit( TOK_START_SIZEOF_EXPR, TOK_PAD_SIZEOF_EXPR, r1 );
04101 try_end_fail();
04102 }
04103 ;}
04104 break;
04105
04106 case 19:
04107 #line 622 "parser.y"
04108 {
04109 if (is_not_pad(manager::peek()->type_get())) {
04110 try_begin( "expr_list_vs_type_id" );
04111
04112 try_and_commit( TOK_START_TYPE_ID_RPAR, TOK_PAD_TYPE_ID_RPAR, r1 );
04113 try_and_commit( TOK_START_EXPR_LIST_RPAR, TOK_PAD_EXPR_LIST_RPAR, r2 );
04114 try_end_fail();
04115 }
04116 ;}
04117 break;
04118
04119 case 20:
04120 #line 635 "parser.y"
04121 {
04122 int next_val = manager::peek()->type_get();
04123 if (is_not_pad(next_val) && next_val != TOK_GT ) {
04124 try_begin( "templ_arg" );
04125
04126 try_and_commit( TOK_START_TEMPL_ARG_TYPE_ID, TOK_PAD_TEMPL_ARG_TYPE_ID, r1 );
04127 try_and_commit( TOK_START_TEMPL_ARG_EXPR, TOK_PAD_TEMPL_ARG_EXPR, r2 );
04128 try_end_fail();
04129 }
04130 ;}
04131 break;
04132
04133 case 21:
04134 #line 649 "parser.y"
04135 {
04136 int next_val = manager::peek()->type_get();
04137
04138 if (is_not_pad(next_val) && next_val != TOK_GT) {
04139 try_begin( "templ_param" );
04140
04141 try_and_commit( TOK_START_TEMPL_PARAM_TYPE, TOK_PAD_TEMPL_PARAM_TYPE, r1 );
04142 try_and_commit( TOK_START_TEMPL_PARAM_NONTYPE, TOK_PAD_TEMPL_PARAM_NONTYPE, r2 );
04143 try_end_fail();
04144 }
04145 ;}
04146 break;
04147
04148 case 22:
04149 #line 670 "parser.y"
04150 {
04151 if (yychar != YYEMPTY)
04152 clear_lookahead();
04153 int next_val = manager::peek()->type_get();
04154 if (next_val == TOK_LEFT_PAR) {
04155 try_begin( "pdc_vs_expr_list" );
04156
04157 try_and_commit( TOK_START_PARAM_DECL_CLAUSE, TOK_PAD_PARAM_DECL_CLAUSE, r1 );
04158 try_and_commit( TOK_START_LPAR_EXPR_LIST_RPAR, TOK_PAD_LPAR_EXPR_LIST_RPAR, r2 );
04159 try_end_fail();
04160 } else {
04161
04162 lassert( is_not_pad(next_val) ||
04163 next_val == TOK_PAD_PARAM_DECL_CLAUSE ||
04164 next_val == TOK_PAD_LPAR_EXPR_LIST_RPAR );
04165 }
04166 ;}
04167 break;
04168
04169 case 23:
04170 #line 690 "parser.y"
04171 {
04172
04173 if (yychar == TOK_LEFT_PAR) {
04174 clear_lookahead();
04175 try_begin( "pdc_vs_param_dcltor" );
04176
04177 try_and_commit( TOK_START_PARAM_DECL_CLAUSE, TOK_PAD_PARAM_DECL_CLAUSE, r1 );
04178 try_and_commit( TOK_START_PARAM_DCLTOR, TOK_PAD_PARAM_DCLTOR, r2 );
04179 try_end_fail();
04180 } else
04181 lassert( yychar == TOK_PAD_PARAM_DECL_CLAUSE || yychar == TOK_PAD_PARAM_DCLTOR );
04182 ;}
04183 break;
04184
04185 case 24:
04186 #line 707 "parser.y"
04187 {
04188 if (yychar == YYEMPTY)
04189 (yyval.sel(as_no_token)) = as_no_token::create( loc(manager::peek()) );
04190 else {
04191
04192 (yyval.sel(as_no_token)) = as_no_token::create( loc(manager::prev_yylex()) );
04193 }
04194 ;}
04195 break;
04196
04197 case 25:
04198 #line 723 "parser.y"
04199 { (yyval.sel(as_no_token)) = (yyvsp[(1) - (1)].sel(as_no_token)); ;}
04200 break;
04201
04202 case 26:
04203 #line 756 "parser.y"
04204 {
04205 lassert2( false, "The parser should always see at least one token." );
04206
04207 goto yyerrlab1;
04208 ;}
04209 break;
04210
04211 case 27:
04212 #line 761 "parser.y"
04213 { as_result = (yyvsp[(2) - (2)].sel(as_declaration_seq)); ;}
04214 break;
04215
04216 case 28:
04217 #line 762 "parser.y"
04218 { YYACCEPT; ;}
04219 break;
04220
04221 case 59:
04222 #line 808 "parser.y"
04223 { as_result = (yyvsp[(2) - (2)].sel(as_statement_seq)); ;}
04224 break;
04225
04226 case 60:
04227 #line 813 "parser.y"
04228 { (yyval.sel(as_declaration_seq)) = (yyvsp[(1) - (1)].sel(as_declaration_seq)); ;}
04229 break;
04230
04231 case 61:
04232 #line 818 "parser.y"
04233 { (yyval.sel(as_labeled_statement)) = as_identifier_labeled_statement::create( loc((yyvsp[(1) - (2)].sel(as_identifier))), DUMMY_STMT, (yyvsp[(1) - (2)].sel(as_identifier)) ); ;}
04234 break;
04235
04236 case 62:
04237 #line 820 "parser.y"
04238 { (yyval.sel(as_labeled_statement)) = as_case_labeled_statement::create( loc((yyvsp[(1) - (3)].sel(bison_token))), DUMMY_STMT, (yyvsp[(2) - (3)].sel(as_constant_expression)) ); ;}
04239 break;
04240
04241 case 63:
04242 #line 822 "parser.y"
04243 { (yyval.sel(as_labeled_statement)) = as_default_labeled_statement::create( loc((yyvsp[(1) - (2)].sel(bison_token))), DUMMY_STMT ); ;}
04244 break;
04245
04246 case 64:
04247 #line 828 "parser.y"
04248 { (yyval.sel(as_name)) = CURR_CTX( loc((yyvsp[(1) - (1)].sel(as_no_token))) ); ;}
04249 break;
04250
04251 case 65:
04252 #line 830 "parser.y"
04253 { (yyval.sel(as_name)) = GLOB_CTX( loc((yyvsp[(1) - (2)].sel(bison_token))) ); ;}
04254 break;
04255
04256 case 66:
04257 #line 836 "parser.y"
04258 { (yyval.sel(as_condition)) = as_empty_condition::create( loc((yyvsp[(2) - (2)].sel(as_no_token))) ); ;}
04259 break;
04260
04261 case 67:
04262 #line 838 "parser.y"
04263 { (yyval.sel(as_condition)) = as_condition_expression::create( loc((yyvsp[(3) - (3)].sel(as_expression))), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04264 break;
04265
04266 case 68:
04267 #line 840 "parser.y"
04268 {
04269 (yyval.sel(as_condition)) = as_condition_declaration::create( loc((yyvsp[(3) - (6)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(3) - (6)].sel(as_type_specifier_seq))), (yyvsp[(4) - (6)].sel(as_declarator)), (yyvsp[(6) - (6)].sel(as_expression)) );
04270 sa_statements::instance()->condition_decl(loc((yyvsp[(3) - (6)].sel(as_type_specifier_seq))), (yyvsp[(6) - (6)].sel(as_expression)));
04271 ;}
04272 break;
04273
04274 case 69:
04275 #line 845 "parser.y"
04276 {
04277
04278 (yyval.sel(as_condition)) = as_empty_condition::create( loc((yyvsp[(2) - (2)].sel(bison_pack_token))) );
04279 ;}
04280 break;
04281
04282 case 70:
04283 #line 853 "parser.y"
04284 { (yyval.sel(as_condition)) = as_condition_expression::create( loc((yyvsp[(3) - (3)].sel(as_expression))), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04285 break;
04286
04287 case 71:
04288 #line 855 "parser.y"
04289 {
04290 (yyval.sel(as_condition)) = as_condition_declaration::create( loc((yyvsp[(3) - (6)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(3) - (6)].sel(as_type_specifier_seq))), (yyvsp[(4) - (6)].sel(as_declarator)), (yyvsp[(6) - (6)].sel(as_expression)) );
04291 sa_statements::instance()->condition_decl(loc((yyvsp[(3) - (6)].sel(as_type_specifier_seq))), (yyvsp[(6) - (6)].sel(as_expression)));
04292 ;}
04293 break;
04294
04295 case 72:
04296 #line 860 "parser.y"
04297 {
04298
04299 (yyval.sel(as_condition)) = as_empty_condition::create( loc((yyvsp[(2) - (2)].sel(bison_pack_token))) );
04300 ;}
04301 break;
04302
04303 case 73:
04304 #line 868 "parser.y"
04305 {
04306 (yyval.sel(as_if_statement)) = as_if_statement::create( loc((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(3) - (5)].sel(as_condition)), DUMMY_STMT, DUMMY_STMT );
04307 sa_statements::instance()->if_head(loc((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(3) - (5)].sel(as_condition)));
04308 ;}
04309 break;
04310
04311 case 74:
04312 #line 876 "parser.y"
04313 {
04314 (yyval.sel(bison_token)) = (yyvsp[(1) - (1)].sel(bison_token));
04315 sa_statements::instance()->enter_scope(loc((yyvsp[(1) - (1)].sel(bison_token))));
04316 ;}
04317 break;
04318
04319 case 75:
04320 #line 885 "parser.y"
04321 { (yyval.sel(as_labeled_statement)) = (yyvsp[(2) - (3)].sel(as_labeled_statement)); ;}
04322 break;
04323
04324 case 76:
04325 #line 890 "parser.y"
04326 { (yyval.sel(as_expression)) = EMPTY_EXPR( loc((yyvsp[(1) - (1)].sel(as_no_token))) ); ;}
04327 break;
04328
04329 case 77:
04330 #line 892 "parser.y"
04331 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04332 break;
04333
04334 case 78:
04335 #line 897 "parser.y"
04336 { (yyval.sel(as_iteration_statement)) = (yyvsp[(1) - (2)].sel(as_iteration_statement)); ;}
04337 break;
04338
04339 case 79:
04340 #line 902 "parser.y"
04341 {
04342 (yyval.sel(as_iteration_statement)) = as_for_statement::create( loc((yyvsp[(1) - (9)].sel(bison_token))), DUMMY_STMT, as_for_init_statement_expression::create(loc((yyvsp[(4) - (9)].sel(bison_token))),EXPR2STMT(EMPTY_EXPR(loc((yyvsp[(4) - (9)].sel(bison_token)))))), (yyvsp[(6) - (9)].sel(as_condition)), (yyvsp[(8) - (9)].sel(as_expression)) );
04343 sa_statements::instance()->for_head(loc((yyvsp[(1) - (9)].sel(bison_token))), (yyvsp[(6) - (9)].sel(as_condition)), (yyvsp[(8) - (9)].sel(as_expression)));
04344 ;}
04345 break;
04346
04347 case 80:
04348 #line 907 "parser.y"
04349 {
04350 (yyval.sel(as_iteration_statement)) = as_for_statement::create( loc((yyvsp[(1) - (11)].sel(bison_token))), DUMMY_STMT, as_for_init_statement_expression::create(loc((yyvsp[(5) - (11)].sel(as_expression))),EXPR2STMT((yyvsp[(5) - (11)].sel(as_expression)))), (yyvsp[(8) - (11)].sel(as_condition)), (yyvsp[(10) - (11)].sel(as_expression)) );
04351 sa_statements::instance()->for_head(loc((yyvsp[(1) - (11)].sel(bison_token))), (yyvsp[(8) - (11)].sel(as_condition)), (yyvsp[(10) - (11)].sel(as_expression)));
04352 ;}
04353 break;
04354
04355 case 81:
04356 #line 912 "parser.y"
04357 {
04358 (yyval.sel(as_iteration_statement)) = as_for_statement::create( loc((yyvsp[(1) - (10)].sel(bison_token))), DUMMY_STMT, as_for_init_statement_declaration::create(loc((yyvsp[(5) - (10)].sel(as_simple_declaration))),(yyvsp[(5) - (10)].sel(as_simple_declaration))), (yyvsp[(7) - (10)].sel(as_condition)), (yyvsp[(9) - (10)].sel(as_expression)) );
04359 sa_statements::instance()->for_head(loc((yyvsp[(1) - (10)].sel(bison_token))), (yyvsp[(7) - (10)].sel(as_condition)), (yyvsp[(9) - (10)].sel(as_expression)));
04360 ;}
04361 break;
04362
04363 case 82:
04364 #line 920 "parser.y"
04365 {
04366 (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression));
04367 sa_statements::instance()->expression_stmt((yyvsp[(1) - (1)].sel(as_expression)));
04368 ;}
04369 break;
04370
04371 case 83:
04372 #line 928 "parser.y"
04373 {
04374 sa_statements::instance()->for_inner_action(loc((yyvsp[(1) - (1)].sel(as_no_token))));
04375 ;}
04376 break;
04377
04378 case 84:
04379 #line 935 "parser.y"
04380 {
04381 (yyval.sel(bison_token)) = (yyvsp[(1) - (1)].sel(bison_token));
04382 sa_statements::instance()->enter_scope(loc((yyvsp[(1) - (1)].sel(bison_token))));
04383 ;}
04384 break;
04385
04386 case 85:
04387 #line 943 "parser.y"
04388 {
04389 (yyval.sel(as_iteration_statement)) = as_while_statement::create( loc((yyvsp[(1) - (5)].sel(bison_token))), DUMMY_STMT, (yyvsp[(3) - (5)].sel(as_condition)) );
04390 sa_statements::instance()->while_head( loc((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(3) - (5)].sel(as_condition)) );
04391 ;}
04392 break;
04393
04394 case 86:
04395 #line 951 "parser.y"
04396 {
04397 (yyval.sel(bison_token)) = (yyvsp[(1) - (1)].sel(bison_token));
04398 sa_statements::instance()->enter_scope(loc((yyvsp[(1) - (1)].sel(bison_token))));
04399 ;}
04400 break;
04401
04402 case 87:
04403 #line 959 "parser.y"
04404 { (yyval.sel(as_switch_statement)) = as_switch_statement::create( loc((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(3) - (5)].sel(as_condition)), DUMMY_STMT ); ;}
04405 break;
04406
04407 case 88:
04408 #line 964 "parser.y"
04409 { (yyval.sel(as_statement_seq)) = EMPTY_WRAPPER( as_statement_seq, loc((yyvsp[(2) - (2)].sel(as_no_token))), as_statement ); ;}
04410 break;
04411
04412 case 89:
04413 #line 966 "parser.y"
04414 { (yyval.sel(as_statement_seq)) = (yyvsp[(2) - (2)].sel(as_statement_seq)); ;}
04415 break;
04416
04417 case 90:
04418 #line 971 "parser.y"
04419 { NEW_WRAPPER_W1( (yyval.sel(as_statement_seq)), as_statement_seq, loc((yyvsp[(1) - (1)].sel(as_statement))), as_statement, (yyvsp[(1) - (1)].sel(as_statement)) ); ;}
04420 break;
04421
04422 case 91:
04423 #line 973 "parser.y"
04424 { (yyval.sel(as_statement_seq)) = (yyvsp[(1) - (2)].sel(as_statement_seq)); WRAPPER_APPEND( (yyval.sel(as_statement_seq)), (yyvsp[(2) - (2)].sel(as_statement)) ); ;}
04425 break;
04426
04427 case 92:
04428 #line 978 "parser.y"
04429 { (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_statement)); ;}
04430 break;
04431
04432 case 93:
04433 #line 984 "parser.y"
04434 { (yyval.sel(as_statement)) = (yyvsp[(1) - (1)].sel(as_try_block_statement)); ;}
04435 break;
04436
04437 case 94:
04438 #line 990 "parser.y"
04439 { (yyval.sel(as_statement)) = EXPR2STMT( EMPTY_EXPR(loc((yyvsp[(1) - (1)].sel(bison_token)))) ); ;}
04440 break;
04441
04442 case 95:
04443 #line 992 "parser.y"
04444 {
04445 ptr<as_expression_statement> as = as_expression_statement::create( loc((yyvsp[(2) - (3)].sel(as_expression))), (yyvsp[(2) - (3)].sel(as_expression)) );
04446 sa_statements::instance()->expression_stmt(as->expression_get());
04447 (yyval.sel(as_statement)) = as;
04448 ;}
04449 break;
04450
04451 case 96:
04452 #line 998 "parser.y"
04453 { (yyval.sel(as_statement)) = as_break_statement::create( loc((yyvsp[(1) - (2)].sel(bison_token))) ); ;}
04454 break;
04455
04456 case 97:
04457 #line 1000 "parser.y"
04458 { (yyval.sel(as_statement)) = as_continue_statement::create( loc((yyvsp[(1) - (2)].sel(bison_token))) ); ;}
04459 break;
04460
04461 case 98:
04462 #line 1002 "parser.y"
04463 {
04464 ptr<as_return_statement> as = as_return_statement::create( loc((yyvsp[(1) - (3)].sel(bison_token))), (yyvsp[(2) - (3)].sel(as_expression)) );
04465 sa_statements::instance()->return_stmt(as);
04466 (yyval.sel(as_statement)) = as;
04467 ;}
04468 break;
04469
04470 case 99:
04471 #line 1008 "parser.y"
04472 { (yyval.sel(as_statement)) = as_goto_statement::create( loc((yyvsp[(1) - (3)].sel(bison_token))), (yyvsp[(2) - (3)].sel(as_identifier)) ); ;}
04473 break;
04474
04475 case 100:
04476 #line 1010 "parser.y"
04477 { (yyval.sel(as_statement)) = (yyvsp[(1) - (1)].sel(as_compound_statement)); ;}
04478 break;
04479
04480 case 101:
04481 #line 1012 "parser.y"
04482 { (yyval.sel(as_statement)) = as_do_statement::create( loc((yyvsp[(1) - (7)].sel(bison_token))), (yyvsp[(2) - (7)].sel(as_statement)), (yyvsp[(5) - (7)].sel(as_expression)) ); ;}
04483 break;
04484
04485 case 102:
04486 #line 1014 "parser.y"
04487 { (yyval.sel(as_statement)) = as_declaration_statement::create( loc((yyvsp[(2) - (2)].sel(as_block_declaration))), (yyvsp[(2) - (2)].sel(as_block_declaration)) ); ;}
04488 break;
04489
04490 case 103:
04491 #line 1016 "parser.y"
04492 {
04493
04494 (yyval.sel(as_statement)) = EXPR2STMT( EMPTY_EXPR(loc((yyvsp[(1) - (1)].sel(bison_pack_token)))) );
04495 ;}
04496 break;
04497
04498 case 104:
04499 #line 1024 "parser.y"
04500 {
04501 (yyval.sel(as_compound_statement)) = as_compound_statement::create( loc((yyvsp[(1) - (3)].sel(bison_token))), UNWRAP((yyvsp[(2) - (3)].sel(as_statement_seq))) );
04502 sa_statements::instance()->leave_scope();
04503 ;}
04504 break;
04505
04506 case 105:
04507 #line 1032 "parser.y"
04508 {
04509 (yyval.sel(bison_token)) = (yyvsp[(1) - (1)].sel(bison_token));
04510 sa_statements::instance()->enter_scope(loc((yyvsp[(1) - (1)].sel(bison_token))));
04511 ;}
04512 break;
04513
04514 case 106:
04515 #line 1040 "parser.y"
04516 { (yyval.sel(as_statement)) = (yyvsp[(1) - (1)].sel(as_statement)); ;}
04517 break;
04518
04519 case 107:
04520 #line 1042 "parser.y"
04521 { (yyval.sel(as_statement)) = (yyvsp[(1) - (1)].sel(as_statement)); ;}
04522 break;
04523
04524 case 108:
04525 #line 1047 "parser.y"
04526 { (yyvsp[(1) - (2)].sel(as_labeled_statement))->statement_set( (yyvsp[(2) - (2)].sel(as_statement)) ); (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_labeled_statement)); ;}
04527 break;
04528
04529 case 109:
04530 #line 1049 "parser.y"
04531 {
04532 (yyvsp[(1) - (2)].sel(as_iteration_statement))->controlled_statement_set( (yyvsp[(2) - (2)].sel(as_statement)) );
04533 (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_iteration_statement));
04534 sa_statements::instance()->leave_scope();
04535 sa_statements::instance()->leave_scope();
04536 sa_statements::instance()->leave_scope();
04537 ;}
04538 break;
04539
04540 case 110:
04541 #line 1057 "parser.y"
04542 {
04543 (yyvsp[(1) - (2)].sel(as_iteration_statement))->controlled_statement_set( (yyvsp[(2) - (2)].sel(as_statement)) );
04544 (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_iteration_statement));
04545 sa_statements::instance()->leave_scope();
04546 sa_statements::instance()->leave_scope();
04547 ;}
04548 break;
04549
04550 case 111:
04551 #line 1064 "parser.y"
04552 { (yyvsp[(1) - (2)].sel(as_switch_statement))->controlled_statement_set( (yyvsp[(2) - (2)].sel(as_statement)) ); (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_switch_statement)); ;}
04553 break;
04554
04555 case 112:
04556 #line 1066 "parser.y"
04557 { (yyval.sel(as_statement)) = (yyvsp[(1) - (1)].sel(as_statement)); ;}
04558 break;
04559
04560 case 113:
04561 #line 1068 "parser.y"
04562 {
04563 (yyvsp[(1) - (4)].sel(as_if_statement))->then_statement_set( (yyvsp[(2) - (4)].sel(as_statement)) );
04564 (yyvsp[(1) - (4)].sel(as_if_statement))->else_statement_set( (yyvsp[(4) - (4)].sel(as_statement)) );
04565 (yyval.sel(as_statement)) = (yyvsp[(1) - (4)].sel(as_if_statement));
04566 sa_statements::instance()->leave_scope();
04567 sa_statements::instance()->leave_scope();
04568 ;}
04569 break;
04570
04571 case 114:
04572 #line 1079 "parser.y"
04573 { (yyvsp[(1) - (2)].sel(as_labeled_statement))->statement_set( (yyvsp[(2) - (2)].sel(as_statement)) ); (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_labeled_statement)); ;}
04574 break;
04575
04576 case 115:
04577 #line 1081 "parser.y"
04578 {
04579 (yyvsp[(1) - (2)].sel(as_iteration_statement))->controlled_statement_set( (yyvsp[(2) - (2)].sel(as_statement)) );
04580 (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_iteration_statement));
04581 sa_statements::instance()->leave_scope();
04582 sa_statements::instance()->leave_scope();
04583 sa_statements::instance()->leave_scope();
04584 ;}
04585 break;
04586
04587 case 116:
04588 #line 1089 "parser.y"
04589 {
04590 (yyvsp[(1) - (2)].sel(as_iteration_statement))->controlled_statement_set( (yyvsp[(2) - (2)].sel(as_statement)) );
04591 (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_iteration_statement));
04592 sa_statements::instance()->leave_scope();
04593 sa_statements::instance()->leave_scope();
04594 ;}
04595 break;
04596
04597 case 117:
04598 #line 1096 "parser.y"
04599 { (yyvsp[(1) - (2)].sel(as_switch_statement))->controlled_statement_set( (yyvsp[(2) - (2)].sel(as_statement)) ); (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_switch_statement)); ;}
04600 break;
04601
04602 case 118:
04603 #line 1098 "parser.y"
04604 {
04605 (yyvsp[(1) - (2)].sel(as_if_statement))->then_statement_set( (yyvsp[(2) - (2)].sel(as_statement)) );
04606 (yyvsp[(1) - (2)].sel(as_if_statement))->else_statement_set( NULL );
04607 (yyval.sel(as_statement)) = (yyvsp[(1) - (2)].sel(as_if_statement));
04608 sa_statements::instance()->leave_scope();
04609 sa_statements::instance()->leave_scope();
04610 ;}
04611 break;
04612
04613 case 119:
04614 #line 1106 "parser.y"
04615 {
04616 (yyvsp[(1) - (4)].sel(as_if_statement))->then_statement_set( (yyvsp[(2) - (4)].sel(as_statement)) );
04617 (yyvsp[(1) - (4)].sel(as_if_statement))->else_statement_set( (yyvsp[(4) - (4)].sel(as_statement)) );
04618 (yyval.sel(as_statement)) = (yyvsp[(1) - (4)].sel(as_if_statement));
04619 sa_statements::instance()->leave_scope();
04620 sa_statements::instance()->leave_scope();
04621 ;}
04622 break;
04623
04624 case 120:
04625 #line 1117 "parser.y"
04626 {
04627 sa_statements::instance()->leave_scope();
04628 sa_statements::instance()->enter_else();
04629 ;}
04630 break;
04631
04632 case 121:
04633 #line 1126 "parser.y"
04634 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04635 break;
04636
04637 case 122:
04638 #line 1128 "parser.y"
04639 { (yyval.sel(as_expression)) = as_expression_comma::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04640 break;
04641
04642 case 123:
04643 #line 1134 "parser.y"
04644 { (yyval.sel(as_constant_expression)) = as_constant_expression::create( loc((yyvsp[(1) - (1)].sel(as_expression))), (yyvsp[(1) - (1)].sel(as_expression)) ); ;}
04645 break;
04646
04647 case 124:
04648 #line 1140 "parser.y"
04649 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04650 break;
04651
04652 case 125:
04653 #line 1142 "parser.y"
04654 { (yyval.sel(as_expression)) = as_expression_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04655 break;
04656
04657 case 126:
04658 #line 1144 "parser.y"
04659 { (yyval.sel(as_expression)) = as_expression_plus_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04660 break;
04661
04662 case 127:
04663 #line 1146 "parser.y"
04664 { (yyval.sel(as_expression)) = as_expression_minus_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04665 break;
04666
04667 case 128:
04668 #line 1148 "parser.y"
04669 { (yyval.sel(as_expression)) = as_expression_star_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04670 break;
04671
04672 case 129:
04673 #line 1150 "parser.y"
04674 { (yyval.sel(as_expression)) = as_expression_slash_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04675 break;
04676
04677 case 130:
04678 #line 1152 "parser.y"
04679 { (yyval.sel(as_expression)) = as_expression_percent_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04680 break;
04681
04682 case 131:
04683 #line 1154 "parser.y"
04684 { (yyval.sel(as_expression)) = as_expression_hat_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04685 break;
04686
04687 case 132:
04688 #line 1156 "parser.y"
04689 { (yyval.sel(as_expression)) = as_expression_amp_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04690 break;
04691
04692 case 133:
04693 #line 1158 "parser.y"
04694 { (yyval.sel(as_expression)) = as_expression_vbar_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04695 break;
04696
04697 case 134:
04698 #line 1160 "parser.y"
04699 { (yyval.sel(as_expression)) = as_expression_greater_greater_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04700 break;
04701
04702 case 135:
04703 #line 1162 "parser.y"
04704 { (yyval.sel(as_expression)) = as_expression_less_less_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04705 break;
04706
04707 case 136:
04708 #line 1164 "parser.y"
04709 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression_throw)); ;}
04710 break;
04711
04712 case 137:
04713 #line 1170 "parser.y"
04714 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04715 break;
04716
04717 case 138:
04718 #line 1172 "parser.y"
04719 { (yyval.sel(as_expression)) = as_expression_qmark::create( loc((yyvsp[(2) - (5)].sel(bison_token))), (yyvsp[(1) - (5)].sel(as_expression)), (yyvsp[(3) - (5)].sel(as_expression)), (yyvsp[(5) - (5)].sel(as_expression)) ); ;}
04720 break;
04721
04722 case 139:
04723 #line 1178 "parser.y"
04724 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04725 break;
04726
04727 case 140:
04728 #line 1180 "parser.y"
04729 { (yyval.sel(as_expression)) = as_expression_vbar_vbar::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04730 break;
04731
04732 case 141:
04733 #line 1186 "parser.y"
04734 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04735 break;
04736
04737 case 142:
04738 #line 1188 "parser.y"
04739 { (yyval.sel(as_expression)) = as_expression_amp_amp::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04740 break;
04741
04742 case 143:
04743 #line 1194 "parser.y"
04744 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04745 break;
04746
04747 case 144:
04748 #line 1196 "parser.y"
04749 { (yyval.sel(as_expression)) = as_expression_vbar::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04750 break;
04751
04752 case 145:
04753 #line 1202 "parser.y"
04754 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04755 break;
04756
04757 case 146:
04758 #line 1204 "parser.y"
04759 { (yyval.sel(as_expression)) = as_expression_hat::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04760 break;
04761
04762 case 147:
04763 #line 1210 "parser.y"
04764 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04765 break;
04766
04767 case 148:
04768 #line 1212 "parser.y"
04769 { (yyval.sel(as_expression)) = as_expression_amp::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04770 break;
04771
04772 case 149:
04773 #line 1218 "parser.y"
04774 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04775 break;
04776
04777 case 150:
04778 #line 1220 "parser.y"
04779 { (yyval.sel(as_expression)) = as_expression_equal_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04780 break;
04781
04782 case 151:
04783 #line 1222 "parser.y"
04784 { (yyval.sel(as_expression)) = as_expression_exclam_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04785 break;
04786
04787 case 152:
04788 #line 1228 "parser.y"
04789 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04790 break;
04791
04792 case 153:
04793 #line 1230 "parser.y"
04794 { (yyval.sel(as_expression)) = as_expression_less::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04795 break;
04796
04797 case 154:
04798 #line 1232 "parser.y"
04799 { (yyval.sel(as_expression)) = as_expression_greater::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04800 break;
04801
04802 case 155:
04803 #line 1234 "parser.y"
04804 { (yyval.sel(as_expression)) = as_expression_less_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04805 break;
04806
04807 case 156:
04808 #line 1236 "parser.y"
04809 { (yyval.sel(as_expression)) = as_expression_greater_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04810 break;
04811
04812 case 157:
04813 #line 1242 "parser.y"
04814 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04815 break;
04816
04817 case 158:
04818 #line 1244 "parser.y"
04819 { (yyval.sel(as_expression)) = as_expression_less_less::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04820 break;
04821
04822 case 159:
04823 #line 1246 "parser.y"
04824 { (yyval.sel(as_expression)) = as_expression_greater_greater::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04825 break;
04826
04827 case 160:
04828 #line 1252 "parser.y"
04829 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04830 break;
04831
04832 case 161:
04833 #line 1254 "parser.y"
04834 { (yyval.sel(as_expression)) = as_expression_plus::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04835 break;
04836
04837 case 162:
04838 #line 1256 "parser.y"
04839 { (yyval.sel(as_expression)) = as_expression_minus::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04840 break;
04841
04842 case 163:
04843 #line 1262 "parser.y"
04844 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04845 break;
04846
04847 case 164:
04848 #line 1264 "parser.y"
04849 { (yyval.sel(as_expression)) = as_expression_star::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04850 break;
04851
04852 case 165:
04853 #line 1266 "parser.y"
04854 { (yyval.sel(as_expression)) = as_expression_slash::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04855 break;
04856
04857 case 166:
04858 #line 1268 "parser.y"
04859 { (yyval.sel(as_expression)) = as_expression_percent::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04860 break;
04861
04862 case 167:
04863 #line 1274 "parser.y"
04864 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04865 break;
04866
04867 case 168:
04868 #line 1276 "parser.y"
04869 { (yyval.sel(as_expression)) = as_expression_dot_star::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04870 break;
04871
04872 case 169:
04873 #line 1278 "parser.y"
04874 { (yyval.sel(as_expression)) = as_expression_minus_greater_star::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
04875 break;
04876
04877 case 170:
04878 #line 1284 "parser.y"
04879 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04880 break;
04881
04882 case 171:
04883 #line 1286 "parser.y"
04884 { (yyval.sel(as_expression)) = as_expression_old_style_cast::create( loc((yyvsp[(1) - (6)].sel(bison_token))), (yyvsp[(4) - (6)].sel(as_type_id)), (yyvsp[(6) - (6)].sel(as_expression)) ); ;}
04885 break;
04886
04887 case 172:
04888 #line 1292 "parser.y"
04889 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04890 break;
04891
04892 case 173:
04893 #line 1294 "parser.y"
04894 { (yyval.sel(as_expression)) = as_expression_plus_plus_pre::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
04895 break;
04896
04897 case 174:
04898 #line 1296 "parser.y"
04899 { (yyval.sel(as_expression)) = as_expression_minus_minus_pre::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
04900 break;
04901
04902 case 175:
04903 #line 1298 "parser.y"
04904 { (yyval.sel(as_expression)) = as_expression_unary_star::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
04905 break;
04906
04907 case 176:
04908 #line 1300 "parser.y"
04909 { (yyval.sel(as_expression)) = as_expression_unary_amp::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
04910 break;
04911
04912 case 177:
04913 #line 1302 "parser.y"
04914 { (yyval.sel(as_expression)) = as_expression_unary_plus::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
04915 break;
04916
04917 case 178:
04918 #line 1304 "parser.y"
04919 { (yyval.sel(as_expression)) = as_expression_unary_minus::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
04920 break;
04921
04922 case 179:
04923 #line 1306 "parser.y"
04924 { (yyval.sel(as_expression)) = as_expression_exclam::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
04925 break;
04926
04927 case 180:
04928 #line 1308 "parser.y"
04929 { (yyval.sel(as_expression)) = as_expression_tilde::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
04930 break;
04931
04932 case 181:
04933 #line 1310 "parser.y"
04934 { (yyval.sel(as_expression)) = as_expression_sizeof_expr::create( loc((yyvsp[(1) - (4)].sel(bison_token))), (yyvsp[(4) - (4)].sel(as_expression)) ); ;}
04935 break;
04936
04937 case 182:
04938 #line 1312 "parser.y"
04939 { (yyval.sel(as_expression)) = as_expression_sizeof_type::create( loc((yyvsp[(1) - (6)].sel(bison_token))), (yyvsp[(5) - (6)].sel(as_type_id)) ); ;}
04940 break;
04941
04942 case 183:
04943 #line 1314 "parser.y"
04944 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04945 break;
04946
04947 case 184:
04948 #line 1316 "parser.y"
04949 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
04950 break;
04951
04952 case 185:
04953 #line 1322 "parser.y"
04954 { (yyval.sel(as_expression)) = as_expression_new::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_name)), NULL, (yyvsp[(3) - (3)].sel(as_type_id)), NULL ); ;}
04955 break;
04956
04957 case 186:
04958 #line 1324 "parser.y"
04959 { (yyval.sel(as_expression)) = as_expression_new::create( loc((yyvsp[(2) - (8)].sel(bison_token))), (yyvsp[(1) - (8)].sel(as_name)), UNWRAP((yyvsp[(6) - (8)].sel(as_expression_list))), (yyvsp[(8) - (8)].sel(as_type_id)), NULL ); ;}
04960 break;
04961
04962 case 187:
04963 #line 1326 "parser.y"
04964 { (yyval.sel(as_expression)) = as_expression_new::create( loc((yyvsp[(2) - (4)].sel(bison_token))), (yyvsp[(1) - (4)].sel(as_name)), NULL, (yyvsp[(3) - (4)].sel(as_type_id)), as_initializer_expression_list::create(loc((yyvsp[(4) - (4)].sel(as_expression_list))),UNWRAP((yyvsp[(4) - (4)].sel(as_expression_list)))) ); ;}
04965 break;
04966
04967 case 188:
04968 #line 1328 "parser.y"
04969 { (yyval.sel(as_expression)) = as_expression_new::create( loc((yyvsp[(2) - (9)].sel(bison_token))), (yyvsp[(1) - (9)].sel(as_name)), UNWRAP((yyvsp[(6) - (9)].sel(as_expression_list))), (yyvsp[(8) - (9)].sel(as_type_id)), as_initializer_expression_list::create(loc((yyvsp[(9) - (9)].sel(as_expression_list))),UNWRAP((yyvsp[(9) - (9)].sel(as_expression_list)))) ); ;}
04970 break;
04971
04972 case 189:
04973 #line 1331 "parser.y"
04974 { (yyval.sel(as_expression)) = as_expression_new::create( loc((yyvsp[(2) - (7)].sel(bison_token))), (yyvsp[(1) - (7)].sel(as_name)), NULL, (yyvsp[(6) - (7)].sel(as_type_id)), NULL ); ;}
04975 break;
04976
04977 case 190:
04978 #line 1333 "parser.y"
04979 { (yyval.sel(as_expression)) = as_expression_new::create( loc((yyvsp[(2) - (10)].sel(bison_token))), (yyvsp[(1) - (10)].sel(as_name)), UNWRAP((yyvsp[(6) - (10)].sel(as_expression_list))), (yyvsp[(9) - (10)].sel(as_type_id)), NULL ); ;}
04980 break;
04981
04982 case 191:
04983 #line 1335 "parser.y"
04984 { (yyval.sel(as_expression)) = as_expression_new::create( loc((yyvsp[(2) - (8)].sel(bison_token))), (yyvsp[(1) - (8)].sel(as_name)), NULL, (yyvsp[(6) - (8)].sel(as_type_id)), as_initializer_expression_list::create(loc((yyvsp[(8) - (8)].sel(as_expression_list))),UNWRAP((yyvsp[(8) - (8)].sel(as_expression_list)))) ); ;}
04985 break;
04986
04987 case 192:
04988 #line 1337 "parser.y"
04989 { (yyval.sel(as_expression)) = as_expression_new::create( loc((yyvsp[(2) - (11)].sel(bison_token))), (yyvsp[(1) - (11)].sel(as_name)), UNWRAP((yyvsp[(6) - (11)].sel(as_expression_list))), (yyvsp[(9) - (11)].sel(as_type_id)), as_initializer_expression_list::create(loc((yyvsp[(11) - (11)].sel(as_expression_list))),UNWRAP((yyvsp[(11) - (11)].sel(as_expression_list)))) ); ;}
04990 break;
04991
04992 case 193:
04993 #line 1342 "parser.y"
04994 { (yyval.sel(as_type_id)) = as_type_id::create( loc((yyvsp[(1) - (2)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(1) - (2)].sel(as_type_specifier_seq))), EMPTY_DCLTOR(loc((yyvsp[(2) - (2)].sel(as_no_token)))) ); ;}
04995 break;
04996
04997 case 194:
04998 #line 1344 "parser.y"
04999 { (yyval.sel(as_type_id)) = as_type_id::create( loc((yyvsp[(1) - (3)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(1) - (3)].sel(as_type_specifier_seq))), (yyvsp[(3) - (3)].sel(as_declarator)) ); ;}
05000 break;
05001
05002 case 195:
05003 #line 1349 "parser.y"
05004 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator_op_seq))), NULL, UNWRAP((yyvsp[(1) - (1)].sel(as_declarator_op_seq))) ); ;}
05005 break;
05006
05007 case 196:
05008 #line 1351 "parser.y"
05009 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (2)].sel(as_declarator)); LIST_APPEND_LIST( (yyval.sel(as_declarator))->declarator_ops_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declarator_op_seq))) ); ;}
05010 break;
05011
05012 case 197:
05013 #line 1353 "parser.y"
05014 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (1)].sel(as_declarator)); ;}
05015 break;
05016
05017 case 198:
05018 #line 1358 "parser.y"
05019 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (3)].sel(bison_token))), NULL, EMPTY_LIST(as_declarator_op) );
05020 LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), as_declarator_op_non_constant_array::create(loc((yyvsp[(1) - (3)].sel(bison_token))),(yyvsp[(2) - (3)].sel(as_expression))) ); ;}
05021 break;
05022
05023 case 199:
05024 #line 1361 "parser.y"
05025 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (4)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), as_declarator_op_array::create(loc((yyvsp[(2) - (4)].sel(bison_token))),(yyvsp[(3) - (4)].sel(as_constant_expression))) ); ;}
05026 break;
05027
05028 case 200:
05029 #line 1366 "parser.y"
05030 { (yyval.sel(as_expression)) = as_expression_delete::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(3) - (3)].sel(as_expression)), (yyvsp[(1) - (3)].sel(as_name)) ); ;}
05031 break;
05032
05033 case 201:
05034 #line 1368 "parser.y"
05035 { (yyval.sel(as_expression)) = as_expression_delete_array::create( loc((yyvsp[(2) - (5)].sel(bison_token))), (yyvsp[(5) - (5)].sel(as_expression)), (yyvsp[(1) - (5)].sel(as_name)) ); ;}
05036 break;
05037
05038 case 202:
05039 #line 1373 "parser.y"
05040 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)); ;}
05041 break;
05042
05043 case 203:
05044 #line 1375 "parser.y"
05045 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)) ;}
05046 break;
05047
05048 case 204:
05049 #line 1377 "parser.y"
05050 { (yyval.sel(as_name)) = (yyvsp[(3) - (3)].sel(as_name)); ;}
05051 break;
05052
05053 case 205:
05054 #line 1379 "parser.y"
05055 { (yyval.sel(as_name)) = (yyvsp[(3) - (3)].sel(as_name)); ;}
05056 break;
05057
05058 case 206:
05059 #line 1387 "parser.y"
05060 { (yyval.sel(as_expression)) = as_literal::create( loc((yyvsp[(1) - (1)].sel(bison_token))), as_literal::UNKNOWN, UNWTOK((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05061 break;
05062
05063 case 207:
05064 #line 1389 "parser.y"
05065 { (yyval.sel(as_expression)) = as_this_expression::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05066 break;
05067
05068 case 208:
05069 #line 1391 "parser.y"
05070 { (yyval.sel(as_expression)) = (yyvsp[(4) - (5)].sel(as_expression)); ;}
05071 break;
05072
05073 case 209:
05074 #line 1393 "parser.y"
05075 { (yyval.sel(as_expression)) = as_name_expression::create( loc((yyvsp[(1) - (1)].sel(as_name))), (yyvsp[(1) - (1)].sel(as_name)) ); ;}
05076 break;
05077
05078 case 210:
05079 #line 1396 "parser.y"
05080 { (yyval.sel(as_expression)) = as_expression_brackets::create( loc((yyvsp[(2) - (4)].sel(bison_token))), (yyvsp[(1) - (4)].sel(as_expression)), (yyvsp[(3) - (4)].sel(as_expression)) ); ;}
05081 break;
05082
05083 case 211:
05084 #line 1398 "parser.y"
05085 { (yyval.sel(as_expression)) = as_expression_function_call::create( loc((yyvsp[(2) - (2)].sel(as_expression_list))), (yyvsp[(1) - (2)].sel(as_expression)), UNWRAP((yyvsp[(2) - (2)].sel(as_expression_list))) ); ;}
05086 break;
05087
05088 case 212:
05089 #line 1402 "parser.y"
05090 { ptr<as_type_id> tid = EMPTY_TYPE_ID( loc((yyvsp[(1) - (2)].sel(as_builtin_simple_type_specifier))), loc((yyvsp[(2) - (2)].sel(as_expression_list))) );
05091 tid->type_specifiers_get()->push_back((yyvsp[(1) - (2)].sel(as_builtin_simple_type_specifier)));
05092 (yyval.sel(as_expression)) = as_expression_functional_style_cast::create( loc((yyvsp[(1) - (2)].sel(as_builtin_simple_type_specifier))), tid, UNWRAP((yyvsp[(2) - (2)].sel(as_expression_list))) ); ;}
05093 break;
05094
05095 case 213:
05096 #line 1406 "parser.y"
05097 { ptr<as_type_id> tid = EMPTY_TYPE_ID( loc((yyvsp[(1) - (2)].sel(as_simple_type_specifier))), loc((yyvsp[(2) - (2)].sel(as_expression_list))) );
05098 tid->type_specifiers_get()->push_back((yyvsp[(1) - (2)].sel(as_simple_type_specifier)));
05099 (yyval.sel(as_expression)) = as_expression_functional_style_cast::create( loc((yyvsp[(1) - (2)].sel(as_simple_type_specifier))), tid, UNWRAP((yyvsp[(2) - (2)].sel(as_expression_list))) ); ;}
05100 break;
05101
05102 case 214:
05103 #line 1410 "parser.y"
05104 { ptr<as_type_id> tid = EMPTY_TYPE_ID( loc((yyvsp[(1) - (2)].sel(as_type_specifier))), loc((yyvsp[(2) - (2)].sel(as_expression_list))) );
05105 tid->type_specifiers_get()->push_back((yyvsp[(1) - (2)].sel(as_type_specifier)));
05106 (yyval.sel(as_expression)) = as_expression_functional_style_cast::create( loc((yyvsp[(1) - (2)].sel(as_type_specifier))), tid, UNWRAP((yyvsp[(2) - (2)].sel(as_expression_list))) ); ;}
05107 break;
05108
05109 case 215:
05110 #line 1415 "parser.y"
05111 { (yyval.sel(as_expression)) = as_expression_member_access_dot::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_name)) ); ;}
05112 break;
05113
05114 case 216:
05115 #line 1417 "parser.y"
05116 { (yyval.sel(as_expression)) = as_expression_member_access_arrow::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_name)) ); ;}
05117 break;
05118
05119 case 217:
05120 #line 1420 "parser.y"
05121 { (yyval.sel(as_expression)) = as_expression_pseudo_destruct_dot::create( loc((yyvsp[(1) - (3)].sel(as_expression))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_name)) ); ;}
05122 break;
05123
05124 case 218:
05125 #line 1422 "parser.y"
05126 { (yyval.sel(as_expression)) = as_expression_pseudo_destruct_arrow::create( loc((yyvsp[(1) - (3)].sel(as_expression))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_name)) ); ;}
05127 break;
05128
05129 case 219:
05130 #line 1425 "parser.y"
05131 { (yyval.sel(as_expression)) = as_expression_plus_plus_post::create( loc((yyvsp[(2) - (2)].sel(bison_token))), (yyvsp[(1) - (2)].sel(as_expression)) ); ;}
05132 break;
05133
05134 case 220:
05135 #line 1427 "parser.y"
05136 { (yyval.sel(as_expression)) = as_expression_minus_minus_post::create( loc((yyvsp[(2) - (2)].sel(bison_token))), (yyvsp[(1) - (2)].sel(as_expression)) ); ;}
05137 break;
05138
05139 case 221:
05140 #line 1430 "parser.y"
05141 { (yyval.sel(as_expression)) = as_expression_dynamic_cast::create( loc((yyvsp[(1) - (7)].sel(bison_token))), (yyvsp[(3) - (7)].sel(as_type_id)), (yyvsp[(6) - (7)].sel(as_expression)) ); ;}
05142 break;
05143
05144 case 222:
05145 #line 1432 "parser.y"
05146 { (yyval.sel(as_expression)) = as_expression_static_cast::create( loc((yyvsp[(1) - (7)].sel(bison_token))), (yyvsp[(3) - (7)].sel(as_type_id)), (yyvsp[(6) - (7)].sel(as_expression)) ); ;}
05147 break;
05148
05149 case 223:
05150 #line 1434 "parser.y"
05151 { (yyval.sel(as_expression)) = as_expression_reinterpret_cast::create( loc((yyvsp[(1) - (7)].sel(bison_token))), (yyvsp[(3) - (7)].sel(as_type_id)), (yyvsp[(6) - (7)].sel(as_expression)) ); ;}
05152 break;
05153
05154 case 224:
05155 #line 1436 "parser.y"
05156 { (yyval.sel(as_expression)) = as_expression_const_cast::create( loc((yyvsp[(1) - (7)].sel(bison_token))), (yyvsp[(3) - (7)].sel(as_type_id)), (yyvsp[(6) - (7)].sel(as_expression)) ); ;}
05157 break;
05158
05159 case 225:
05160 #line 1439 "parser.y"
05161 { (yyval.sel(as_expression)) = as_expression_typeid_expr::create( loc((yyvsp[(1) - (6)].sel(bison_token))), (yyvsp[(5) - (6)].sel(as_expression)) ); ;}
05162 break;
05163
05164 case 226:
05165 #line 1441 "parser.y"
05166 { (yyval.sel(as_expression)) = as_expression_typeid_type::create( loc((yyvsp[(1) - (6)].sel(bison_token))), (yyvsp[(5) - (6)].sel(as_type_id)) ); ;}
05167 break;
05168
05169 case 227:
05170 #line 1449 "parser.y"
05171 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_typename::create( loc((yyvsp[(1) - (4)].sel(bison_token))), as_name::create(loc((yyvsp[(2) - (4)].sel(as_name))),(yyvsp[(3) - (4)].sel(as_name)),(yyvsp[(4) - (4)].sel(as_identifier)),true) ); ;}
05172 break;
05173
05174 case 228:
05175 #line 1451 "parser.y"
05176 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_typename::create( loc((yyvsp[(1) - (4)].sel(bison_token))), as_name::create(loc((yyvsp[(2) - (4)].sel(as_name))),(yyvsp[(3) - (4)].sel(as_name)),(yyvsp[(4) - (4)].sel(as_template_id)),true) ); ;}
05177 break;
05178
05179 case 229:
05180 #line 1453 "parser.y"
05181 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_typename::create( loc((yyvsp[(1) - (6)].sel(bison_token))), as_name::create(loc((yyvsp[(2) - (6)].sel(as_name))),(yyvsp[(3) - (6)].sel(as_name)),(yyvsp[(6) - (6)].sel(as_template_id)),true) ); ;}
05182 break;
05183
05184 case 230:
05185 #line 1458 "parser.y"
05186 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
05187 break;
05188
05189 case 231:
05190 #line 1460 "parser.y"
05191 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
05192 break;
05193
05194 case 232:
05195 #line 1462 "parser.y"
05196 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
05197 break;
05198
05199 case 233:
05200 #line 1464 "parser.y"
05201 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
05202 break;
05203
05204 case 234:
05205 #line 1466 "parser.y"
05206 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
05207 break;
05208
05209 case 235:
05210 #line 1471 "parser.y"
05211 { (yyval.sel(as_template_id)) = as_template_id::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), (yyvsp[(1) - (2)].sel(bison_id_token)), UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list))) ); ;}
05212 break;
05213
05214 case 236:
05215 #line 1473 "parser.y"
05216 { (yyval.sel(as_template_id)) = as_template_id::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), (yyvsp[(1) - (2)].sel(bison_id_token)), UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list))) ); ;}
05217 break;
05218
05219 case 237:
05220 #line 1475 "parser.y"
05221 { (yyval.sel(as_template_id)) = as_template_id::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), (yyvsp[(1) - (2)].sel(bison_id_token)), UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list))) ); ;}
05222 break;
05223
05224 case 238:
05225 #line 1480 "parser.y"
05226 { (yyval.sel(as_expression_list)) = EMPTY_WRAPPER( as_expression_list, loc((yyvsp[(1) - (2)].sel(bison_token))), as_expression ); ;}
05227 break;
05228
05229 case 239:
05230 #line 1482 "parser.y"
05231 { (yyval.sel(as_expression_list)) = (yyvsp[(2) - (3)].sel(as_expression_list)); ;}
05232 break;
05233
05234 case 240:
05235 #line 1487 "parser.y"
05236 { NEW_WRAPPER_W1( (yyval.sel(as_expression_list)), as_expression_list, loc((yyvsp[(1) - (1)].sel(as_expression))), as_expression, (yyvsp[(1) - (1)].sel(as_expression)) ); ;}
05237 break;
05238
05239 case 241:
05240 #line 1489 "parser.y"
05241 { (yyval.sel(as_expression_list)) = (yyvsp[(1) - (3)].sel(as_expression_list)); WRAPPER_APPEND( (yyval.sel(as_expression_list)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
05242 break;
05243
05244 case 242:
05245 #line 1494 "parser.y"
05246 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
05247 break;
05248
05249 case 243:
05250 #line 1496 "parser.y"
05251 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
05252 break;
05253
05254 case 244:
05255 #line 1502 "parser.y"
05256 { (yyval.sel(as_name)) = (yyvsp[(1) - (3)].sel(as_name));
05257
05258
05259 ;}
05260 break;
05261
05262 case 245:
05263 #line 1508 "parser.y"
05264 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(1) - (3)].sel(as_name)), (yyvsp[(3) - (3)].sel(as_identifier)), (yyvsp[(1) - (3)].sel(as_name))->was_qualified_get() ); ;}
05265 break;
05266
05267 case 246:
05268 #line 1510 "parser.y"
05269 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (4)].sel(as_name))), (yyvsp[(2) - (4)].sel(as_name)), (yyvsp[(4) - (4)].sel(as_identifier)), true ); ;}
05270 break;
05271
05272 case 247:
05273 #line 1515 "parser.y"
05274 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (4)].sel(as_name))), (yyvsp[(1) - (4)].sel(as_name)), (yyvsp[(2) - (4)].sel(as_identifier)), (yyvsp[(1) - (4)].sel(as_name))->was_qualified_get() ); ;}
05275 break;
05276
05277 case 248:
05278 #line 1517 "parser.y"
05279 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (5)].sel(as_name))), (yyvsp[(2) - (5)].sel(as_name)), (yyvsp[(3) - (5)].sel(as_identifier)), true ); ;}
05280 break;
05281
05282 case 249:
05283 #line 1522 "parser.y"
05284 { (yyvsp[(2) - (2)].sel(as_name))->was_qualified_set( (yyvsp[(1) - (2)].sel(as_name))->was_qualified_get() ); (yyval.sel(as_name)) = (yyvsp[(2) - (2)].sel(as_name)); ;}
05285 break;
05286
05287 case 250:
05288 #line 1524 "parser.y"
05289 { (yyvsp[(3) - (3)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_name)) = (yyvsp[(3) - (3)].sel(as_name)); ;}
05290 break;
05291
05292 case 251:
05293 #line 1526 "parser.y"
05294 { (yyvsp[(5) - (5)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_name)) = (yyvsp[(5) - (5)].sel(as_name)); ;}
05295 break;
05296
05297 case 252:
05298 #line 1531 "parser.y"
05299 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) ); ;}
05300 break;
05301
05302 case 253:
05303 #line 1533 "parser.y"
05304 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) ); ;}
05305 break;
05306
05307 case 254:
05308 #line 1535 "parser.y"
05309 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) ); ;}
05310 break;
05311
05312 case 255:
05313 #line 1545 "parser.y"
05314 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (2)].sel(bison_id_token))),(yyvsp[(1) - (2)].sel(bison_id_token)),UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list)))) ); ;}
05315 break;
05316
05317 case 256:
05318 #line 1547 "parser.y"
05319 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (1)].sel(bison_id_token))),(yyvsp[(1) - (1)].sel(bison_id_token)),NULL) ); ;}
05320 break;
05321
05322 case 257:
05323 #line 1549 "parser.y"
05324 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) ); ;}
05325 break;
05326
05327 case 258:
05328 #line 1551 "parser.y"
05329 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) ); ;}
05330 break;
05331
05332 case 259:
05333 #line 1553 "parser.y"
05334 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) ); ;}
05335 break;
05336
05337 case 260:
05338 #line 1555 "parser.y"
05339 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)); ;}
05340 break;
05341
05342 case 261:
05343 #line 1557 "parser.y"
05344 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (2)].sel(bison_id_token))),(yyvsp[(1) - (2)].sel(bison_id_token)),UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list)))) ); ;}
05345 break;
05346
05347 case 262:
05348 #line 1559 "parser.y"
05349 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (1)].sel(bison_id_token))),(yyvsp[(1) - (1)].sel(bison_id_token)),NULL) ); ;}
05350 break;
05351
05352 case 263:
05353 #line 1561 "parser.y"
05354 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (2)].sel(bison_id_token))),(yyvsp[(1) - (2)].sel(bison_id_token)),UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list)))) ); ;}
05355 break;
05356
05357 case 264:
05358 #line 1566 "parser.y"
05359 { (yyvsp[(2) - (2)].sel(as_name))->was_qualified_set( (yyvsp[(1) - (2)].sel(as_name))->was_qualified_get() ); (yyval.sel(as_name)) = (yyvsp[(2) - (2)].sel(as_name)); ;}
05360 break;
05361
05362 case 265:
05363 #line 1568 "parser.y"
05364 { (yyvsp[(3) - (3)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_name)) = (yyvsp[(3) - (3)].sel(as_name)); ;}
05365 break;
05366
05367 case 266:
05368 #line 1570 "parser.y"
05369 { (yyvsp[(5) - (5)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_name)) = (yyvsp[(5) - (5)].sel(as_name)); ;}
05370 break;
05371
05372 case 267:
05373 #line 1575 "parser.y"
05374 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) ); ;}
05375 break;
05376
05377 case 268:
05378 #line 1577 "parser.y"
05379 {
05380
05381 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) );
05382 ;}
05383 break;
05384
05385 case 269:
05386 #line 1583 "parser.y"
05387 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)); ;}
05388 break;
05389
05390 case 270:
05391 #line 1585 "parser.y"
05392 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)); ;}
05393 break;
05394
05395 case 271:
05396 #line 1587 "parser.y"
05397 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (2)].sel(bison_id_token))),(yyvsp[(1) - (2)].sel(bison_id_token)),UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list)))) ); ;}
05398 break;
05399
05400 case 272:
05401 #line 1589 "parser.y"
05402 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (1)].sel(bison_id_token))),(yyvsp[(1) - (1)].sel(bison_id_token)),NULL) ); ;}
05403 break;
05404
05405 case 273:
05406 #line 1591 "parser.y"
05407 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (2)].sel(bison_id_token))),(yyvsp[(1) - (2)].sel(bison_id_token)),UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list)))) ); ;}
05408 break;
05409
05410 case 274:
05411 #line 1597 "parser.y"
05412 {
05413 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (2)].sel(bison_id_token))) );
05414 hinter::qual_scope_set( (yyvsp[(1) - (2)].sel(bison_id_token))->found_decls_get()->begin()->dncast<ss_structure_declaration>()->body_get() );
05415 ;}
05416 break;
05417
05418 case 275:
05419 #line 1602 "parser.y"
05420 {
05421 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (3)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (3)].sel(bison_id_token))),(yyvsp[(1) - (3)].sel(bison_id_token)),UNWRAP((yyvsp[(2) - (3)].sel(as_template_argument_list)))) );
05422 ;}
05423 break;
05424
05425 case 276:
05426 #line 1606 "parser.y"
05427 {
05428 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (3)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (3)].sel(bison_id_token))),(yyvsp[(1) - (3)].sel(bison_id_token)),UNWRAP((yyvsp[(2) - (3)].sel(as_template_argument_list)))) );
05429 ;}
05430 break;
05431
05432 case 277:
05433 #line 1610 "parser.y"
05434 {
05435 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (2)].sel(bison_id_token))) );
05436 hinter::qual_scope_set( (yyvsp[(1) - (2)].sel(bison_id_token))->found_decls_get()->begin()->dncast<ss_namespace_definition>()->body_get() );
05437 ;}
05438 break;
05439
05440 case 278:
05441 #line 1616 "parser.y"
05442 {
05443 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(1) - (3)].sel(as_name)), TOK2ID((yyvsp[(2) - (3)].sel(bison_id_token))), true );
05444 hinter::qual_scope_set( (yyvsp[(2) - (3)].sel(bison_id_token))->found_decls_get()->begin()->dncast<ss_structure_declaration>()->body_get() );
05445 ;}
05446 break;
05447
05448 case 279:
05449 #line 1621 "parser.y"
05450 {
05451 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (4)].sel(as_name))), (yyvsp[(1) - (4)].sel(as_name)), as_template_id::create(loc((yyvsp[(2) - (4)].sel(bison_id_token))),(yyvsp[(2) - (4)].sel(bison_id_token)),UNWRAP((yyvsp[(3) - (4)].sel(as_template_argument_list)))), true );
05452 ;}
05453 break;
05454
05455 case 280:
05456 #line 1625 "parser.y"
05457 {
05458 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(1) - (3)].sel(as_name)), TOK2ID((yyvsp[(2) - (3)].sel(bison_id_token))), true );
05459 hinter::qual_scope_set( (yyvsp[(2) - (3)].sel(bison_id_token))->found_decls_get()->begin()->dncast<ss_namespace_definition>()->body_get() );
05460 ;}
05461 break;
05462
05463 case 281:
05464 #line 1630 "parser.y"
05465 {
05466 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (6)].sel(as_name))), (yyvsp[(1) - (6)].sel(as_name)), as_template_id::create(loc((yyvsp[(4) - (6)].sel(bison_id_token))),(yyvsp[(4) - (6)].sel(bison_id_token)),UNWRAP((yyvsp[(5) - (6)].sel(as_template_argument_list)))), true );
05467 ;}
05468 break;
05469
05470 case 282:
05471 #line 1637 "parser.y"
05472 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(as_op_function_id))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(as_op_function_id)))), (yyvsp[(1) - (2)].sel(as_op_function_id)) ); ;}
05473 break;
05474
05475 case 283:
05476 #line 1640 "parser.y"
05477 { (yyvsp[(1) - (3)].sel(as_op_function_id))->arguments_set( UNWRAP((yyvsp[(3) - (3)].sel(as_template_argument_list))) );
05478 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(as_op_function_id))), CURR_CTX(loc((yyvsp[(1) - (3)].sel(as_op_function_id)))), (yyvsp[(1) - (3)].sel(as_op_function_id)) ); ;}
05479 break;
05480
05481 case 284:
05482 #line 1645 "parser.y"
05483 {
05484
05485 NO_PAD_TOKEN_BUG( loc(manager::prev_yylex()) );
05486 ;}
05487 break;
05488
05489 case 285:
05490 #line 1650 "parser.y"
05491 { NO_PAD_TOKEN_BUG( loc((yyvsp[(2) - (2)].sel(bison_token))) ); ;}
05492 break;
05493
05494 case 286:
05495 #line 1655 "parser.y"
05496 { (yyval.sel(as_op_function_id)) = as_op_function_id::create( loc((yyvsp[(1) - (3)].sel(bison_token))), UNWTOK((yyvsp[(2) - (3)].sel(bison_token))), NULL );
05497
05498
05499
05500
05501 if (yychar != YYEMPTY)
05502 clear_lookahead();
05503 int next_val = manager::peek()->type_get();
05504 manager::start( TOK_START_TO_BE_DISCARDED );
05505
05506 if (false && next_val == TOK_LT)
05507 manager::commit( TOK_PAD_TEMPL_OP );
05508 else
05509 manager::commit( TOK_PAD_OP_NOT_TEMPL );
05510 ;}
05511 break;
05512
05513 case 329:
05514 #line 1719 "parser.y"
05515 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(bison_token))), CURR_CTX(loc((yyvsp[(3) - (3)].sel(as_type_specifier_seq)))), as_conv_function_id::create( loc((yyvsp[(1) - (3)].sel(bison_token))), UNWRAP((yyvsp[(3) - (3)].sel(as_type_specifier_seq))), EMPTY_LIST(as_declarator_op) ) ); ;}
05516 break;
05517
05518 case 330:
05519 #line 1721 "parser.y"
05520 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (4)].sel(bison_token))), CURR_CTX(loc((yyvsp[(3) - (4)].sel(as_type_specifier_seq)))), as_conv_function_id::create( loc((yyvsp[(1) - (4)].sel(bison_token))), UNWRAP((yyvsp[(3) - (4)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(4) - (4)].sel(as_declarator_op_seq))) ) ); ;}
05521 break;
05522
05523 case 331:
05524 #line 1726 "parser.y"
05525 { (yyval.sel(as_mem_initializer_list)) = EMPTY_WRAPPER( as_mem_initializer_list, loc((yyvsp[(1) - (1)].sel(as_no_token))), as_mem_initializer ); ;}
05526 break;
05527
05528 case 332:
05529 #line 1728 "parser.y"
05530 { (yyval.sel(as_mem_initializer_list)) = (yyvsp[(2) - (2)].sel(as_mem_initializer_list)); ;}
05531 break;
05532
05533 case 333:
05534 #line 1733 "parser.y"
05535 { NEW_WRAPPER_W1( (yyval.sel(as_mem_initializer_list)), as_mem_initializer_list, loc((yyvsp[(1) - (1)].sel(as_mem_initializer))), as_mem_initializer, (yyvsp[(1) - (1)].sel(as_mem_initializer)) ); ;}
05536 break;
05537
05538 case 334:
05539 #line 1735 "parser.y"
05540 { (yyval.sel(as_mem_initializer_list)) = (yyvsp[(1) - (3)].sel(as_mem_initializer_list)); WRAPPER_APPEND( (yyval.sel(as_mem_initializer_list)), (yyvsp[(3) - (3)].sel(as_mem_initializer)) ); ;}
05541 break;
05542
05543 case 335:
05544 #line 1741 "parser.y"
05545 { (yyval.sel(as_mem_initializer)) = as_mem_initializer::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), as_name::create(loc((yyvsp[(1) - (2)].sel(bison_id_token))),CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))),TOK2ID((yyvsp[(1) - (2)].sel(bison_id_token)))), UNWRAP((yyvsp[(2) - (2)].sel(as_expression_list))) ); ;}
05546 break;
05547
05548 case 336:
05549 #line 1743 "parser.y"
05550 { (yyval.sel(as_mem_initializer)) = as_mem_initializer::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), as_name::create(loc((yyvsp[(1) - (2)].sel(bison_id_token))),CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))),TOK2ID((yyvsp[(1) - (2)].sel(bison_id_token)))), UNWRAP((yyvsp[(2) - (2)].sel(as_expression_list))) ); ;}
05551 break;
05552
05553 case 337:
05554 #line 1745 "parser.y"
05555 { (yyval.sel(as_mem_initializer)) = as_mem_initializer::create( loc((yyvsp[(1) - (3)].sel(as_name))), as_name::create(loc((yyvsp[(1) - (3)].sel(as_name))),(yyvsp[(1) - (3)].sel(as_name)),TOK2ID((yyvsp[(2) - (3)].sel(bison_id_token))),(yyvsp[(1) - (3)].sel(as_name))->was_qualified_get()), UNWRAP((yyvsp[(3) - (3)].sel(as_expression_list))) ); ;}
05556 break;
05557
05558 case 338:
05559 #line 1747 "parser.y"
05560 { (yyval.sel(as_mem_initializer)) = as_mem_initializer::create( loc((yyvsp[(1) - (4)].sel(as_name))), as_name::create(loc((yyvsp[(1) - (4)].sel(as_name))),(yyvsp[(1) - (4)].sel(as_name)),as_template_id::create(loc((yyvsp[(2) - (4)].sel(bison_id_token))),(yyvsp[(2) - (4)].sel(bison_id_token)),UNWRAP((yyvsp[(3) - (4)].sel(as_template_argument_list)))),(yyvsp[(1) - (4)].sel(as_name))->was_qualified_get()), UNWRAP((yyvsp[(4) - (4)].sel(as_expression_list))) ); ;}
05561 break;
05562
05563 case 339:
05564 #line 1749 "parser.y"
05565 { (yyval.sel(as_mem_initializer)) = as_mem_initializer::create( loc((yyvsp[(1) - (4)].sel(as_name))), as_name::create(loc((yyvsp[(1) - (4)].sel(as_name))),(yyvsp[(2) - (4)].sel(as_name)),TOK2ID((yyvsp[(3) - (4)].sel(bison_id_token))),true), UNWRAP((yyvsp[(4) - (4)].sel(as_expression_list))) ); ;}
05566 break;
05567
05568 case 340:
05569 #line 1751 "parser.y"
05570 { (yyval.sel(as_mem_initializer)) = as_mem_initializer::create( loc((yyvsp[(1) - (5)].sel(as_name))), as_name::create(loc((yyvsp[(1) - (5)].sel(as_name))),(yyvsp[(2) - (5)].sel(as_name)),as_template_id::create(loc((yyvsp[(3) - (5)].sel(bison_id_token))),(yyvsp[(3) - (5)].sel(bison_id_token)),UNWRAP((yyvsp[(4) - (5)].sel(as_template_argument_list)))),true), UNWRAP((yyvsp[(5) - (5)].sel(as_expression_list))) ); ;}
05571 break;
05572
05573 case 341:
05574 #line 1758 "parser.y"
05575 { (yyval.sel(as_declaration_seq)) = EMPTY_WRAPPER( as_declaration_seq, loc((yyvsp[(1) - (1)].sel(as_no_token))), as_declaration ); ;}
05576 break;
05577
05578 case 342:
05579 #line 1760 "parser.y"
05580 { (yyval.sel(as_declaration_seq)) = (yyvsp[(1) - (1)].sel(as_declaration_seq)); ;}
05581 break;
05582
05583 case 343:
05584 #line 1765 "parser.y"
05585 { NEW_WRAPPER_W1( (yyval.sel(as_declaration_seq)), as_declaration_seq, loc((yyvsp[(1) - (1)].sel(as_declaration))), as_declaration, (yyvsp[(1) - (1)].sel(as_declaration)) ); ;}
05586 break;
05587
05588 case 344:
05589 #line 1767 "parser.y"
05590 { (yyval.sel(as_declaration_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_seq)); WRAPPER_APPEND( (yyval.sel(as_declaration_seq)), (yyvsp[(2) - (2)].sel(as_declaration)) ); ;}
05591 break;
05592
05593 case 345:
05594 #line 1776 "parser.y"
05595 {
05596 clear_lookahead();
05597 disambiguate_ctor_nmspc_scope( (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)) );
05598 (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq));
05599 sa_parser_action_logger << "decl spec seq in namespace scope\n" << msg::eolog;
05600 sa_simple_declaration::instance()->save_declaration_specifiers((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)));
05601 ;}
05602 break;
05603
05604 case 346:
05605 #line 1788 "parser.y"
05606 { (yyval.sel(as_identifier)) = (yyvsp[(1) - (1)].sel(as_identifier)); ;}
05607 break;
05608
05609 case 347:
05610 #line 1793 "parser.y"
05611 { (yyval.sel(as_declaration)) = (yyvsp[(1) - (1)].sel(as_block_declaration)); ;}
05612 break;
05613
05614 case 348:
05615 #line 1795 "parser.y"
05616 { (yyval.sel(as_declaration)) = (yyvsp[(1) - (1)].sel(as_function_definition)); ;}
05617 break;
05618
05619 case 349:
05620 #line 1797 "parser.y"
05621 { (yyval.sel(as_declaration)) = (yyvsp[(1) - (1)].sel(as_namespace_definition)); ;}
05622 break;
05623
05624 case 350:
05625 #line 1801 "parser.y"
05626 { (yyval.sel(as_declaration)) = as_template_declaration::create( loc((yyvsp[(1) - (5)].sel(bison_token))), NULL, UNWRAP((yyvsp[(3) - (5)].sel(as_template_param_list))), (yyvsp[(5) - (5)].sel(as_declaration)) ); ;}
05627 break;
05628
05629 case 351:
05630 #line 1803 "parser.y"
05631 { (yyval.sel(as_declaration)) = as_template_declaration::create( loc((yyvsp[(2) - (6)].sel(bison_token))), UNWTOK((yyvsp[(1) - (6)].sel(bison_token))), UNWRAP((yyvsp[(4) - (6)].sel(as_template_param_list))), (yyvsp[(6) - (6)].sel(as_declaration)) ); ;}
05632 break;
05633
05634 case 352:
05635 #line 1807 "parser.y"
05636 { (yyval.sel(as_declaration)) = as_explicit_instantiation::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_declaration)) ); ;}
05637 break;
05638
05639 case 353:
05640 #line 1815 "parser.y"
05641 { (yyval.sel(as_declaration)) = as_explicit_specialization::create( loc((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(5) - (5)].sel(as_declaration)) ); ;}
05642 break;
05643
05644 case 354:
05645 #line 1819 "parser.y"
05646 { (yyval.sel(as_declaration)) = as_linkage_specification::create( loc((yyvsp[(1) - (5)].sel(bison_token))), UNWTOK((yyvsp[(2) - (5)].sel(bison_token))), UNWRAP((yyvsp[(4) - (5)].sel(as_declaration_seq))) ); ;}
05647 break;
05648
05649 case 355:
05650 #line 1821 "parser.y"
05651 { ptr<as_linkage_specification> ls = as_linkage_specification::create( loc((yyvsp[(1) - (3)].sel(bison_token))), UNWTOK((yyvsp[(2) - (3)].sel(bison_token))), EMPTY_LIST(as_declaration) );
05652 LIST_APPEND( ls->declarations_get(), (yyvsp[(3) - (3)].sel(as_declaration)) );
05653 (yyval.sel(as_declaration)) = ls; ;}
05654 break;
05655
05656 case 356:
05657 #line 1828 "parser.y"
05658 { (yyval.sel(as_block_declaration)) = as_simple_declaration::create( loc((yyvsp[(1) - (1)].sel(bison_token))), EMPTY_LIST(as_declaration_specifier), EMPTY_LIST(as_init_declarator) ); ;}
05659 break;
05660
05661 case 357:
05662 #line 1830 "parser.y"
05663 { (yyval.sel(as_block_declaration)) = (yyvsp[(1) - (1)].sel(as_simple_declaration)); ;}
05664 break;
05665
05666 case 358:
05667 #line 1833 "parser.y"
05668 { (yyval.sel(as_block_declaration)) = as_asm_declaration::create( loc((yyvsp[(1) - (5)].sel(bison_token))), UNWTOK((yyvsp[(3) - (5)].sel(bison_token))) ); ;}
05669 break;
05670
05671 case 359:
05672 #line 1840 "parser.y"
05673 {
05674 (yyval.sel(as_block_declaration)) = as_namespace_alias_declaration::create( loc((yyvsp[(2) - (5)].sel(as_identifier))), (yyvsp[(2) - (5)].sel(as_identifier)), (yyvsp[(4) - (5)].sel(as_name)) );
05675 ;}
05676 break;
05677
05678 case 360:
05679 #line 1845 "parser.y"
05680 {
05681 (yyval.sel(as_block_declaration)) = (yyvsp[(1) - (1)].sel(as_using_declaration));
05682 sa_usings::instance()->process_declaration((yyvsp[(1) - (1)].sel(as_using_declaration)));
05683 ;}
05684 break;
05685
05686 case 361:
05687 #line 1851 "parser.y"
05688 { (yyval.sel(as_block_declaration)) = as_using_directive::create( loc((yyvsp[(1) - (4)].sel(bison_token))), (yyvsp[(3) - (4)].sel(as_name)) ); ;}
05689 break;
05690
05691 case 362:
05692 #line 1854 "parser.y"
05693 {
05694 ptr<as_class_specifier> cs;
05695 cs = as_class_specifier::create(
05696 loc((yyvsp[(1) - (3)].sel(as_class_key))),
05697 (yyvsp[(1) - (3)].sel(as_class_key)),
05698 as_name::create(
05699 loc((yyvsp[(2) - (3)].sel(as_identifier))),
05700 CURR_CTX(loc((yyvsp[(2) - (3)].sel(as_identifier)))),
05701 (yyvsp[(2) - (3)].sel(as_identifier)) ),
05702 EMPTY_LIST(as_base_specifier),
05703 EMPTY_LIST(as_member_declaration));
05704 (yyval.sel(as_block_declaration)) = as_class_forward_declaration::create( loc((yyvsp[(1) - (3)].sel(as_class_key))), (yyvsp[(1) - (3)].sel(as_class_key)), (yyvsp[(2) - (3)].sel(as_identifier)) );
05705 sa_class_declaration::create()->process_forward_declaration(cs);
05706 ;}
05707 break;
05708
05709 case 363:
05710 #line 1872 "parser.y"
05711 { (yyval.sel(as_block_declaration)) = (yyvsp[(1) - (1)].sel(as_simple_declaration)); ;}
05712 break;
05713
05714 case 364:
05715 #line 1875 "parser.y"
05716 { (yyval.sel(as_block_declaration)) = as_asm_declaration::create( loc((yyvsp[(1) - (5)].sel(bison_token))), UNWTOK((yyvsp[(3) - (5)].sel(bison_token))) ); ;}
05717 break;
05718
05719 case 365:
05720 #line 1882 "parser.y"
05721 {
05722 (yyval.sel(as_block_declaration)) = as_namespace_alias_declaration::create( loc((yyvsp[(2) - (5)].sel(as_identifier))), (yyvsp[(2) - (5)].sel(as_identifier)), (yyvsp[(4) - (5)].sel(as_name)) );
05723 ;}
05724 break;
05725
05726 case 366:
05727 #line 1887 "parser.y"
05728 {
05729 (yyval.sel(as_block_declaration)) = (yyvsp[(1) - (1)].sel(as_using_declaration));
05730 sa_usings::instance()->process_declaration((yyvsp[(1) - (1)].sel(as_using_declaration)));
05731 ;}
05732 break;
05733
05734 case 367:
05735 #line 1893 "parser.y"
05736 { (yyval.sel(as_block_declaration)) = as_using_directive::create( loc((yyvsp[(1) - (4)].sel(bison_token))), (yyvsp[(3) - (4)].sel(as_name)) ); ;}
05737 break;
05738
05739 case 368:
05740 #line 1896 "parser.y"
05741 { (yyval.sel(as_block_declaration)) = as_class_forward_declaration::create( loc((yyvsp[(1) - (3)].sel(as_class_key))), (yyvsp[(1) - (3)].sel(as_class_key)), (yyvsp[(2) - (3)].sel(as_identifier)) ); ;}
05742 break;
05743
05744 case 369:
05745 #line 1902 "parser.y"
05746 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(2) - (3)].sel(as_name))), (yyvsp[(2) - (3)].sel(as_name)), TOK2ID((yyvsp[(3) - (3)].sel(bison_id_token))), (yyvsp[(2) - (3)].sel(as_name))->was_qualified_get() ); ;}
05747 break;
05748
05749 case 370:
05750 #line 1904 "parser.y"
05751 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(2) - (4)].sel(as_name))), (yyvsp[(3) - (4)].sel(as_name)), TOK2ID((yyvsp[(4) - (4)].sel(bison_id_token))), true ); ;}
05752 break;
05753
05754 case 371:
05755 #line 1909 "parser.y"
05756 {
05757 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (3)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (3)].sel(bison_id_token))) );
05758 hinter::qual_scope_set( (yyvsp[(1) - (3)].sel(bison_id_token))->found_decls_get()->begin()->dncast<ss_namespace_definition>()->body_get() );
05759 ;}
05760 break;
05761
05762 case 372:
05763 #line 1914 "parser.y"
05764 {
05765 (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (4)].sel(as_name))), (yyvsp[(1) - (4)].sel(as_name)), TOK2ID((yyvsp[(2) - (4)].sel(bison_id_token))), true );
05766 hinter::qual_scope_set( (yyvsp[(2) - (4)].sel(bison_id_token))->found_decls_get()->begin()->dncast<ss_namespace_definition>()->body_get() );
05767 ;}
05768 break;
05769
05770 case 373:
05771 #line 1922 "parser.y"
05772 { (yyval.sel(as_simple_declaration)) = as_simple_declaration::create( loc((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(2) - (3)].sel(as_init_declarator_list))) ); ;}
05773 break;
05774
05775 case 374:
05776 #line 1925 "parser.y"
05777 { ptr<as_simple_declaration> sd = as_simple_declaration::create( loc((yyvsp[(1) - (2)].sel(as_type_specifier))), EMPTY_LIST(as_declaration_specifier), EMPTY_LIST(as_init_declarator) );
05778 LIST_APPEND( sd->declaration_specifiers_get(), (yyvsp[(1) - (2)].sel(as_type_specifier)) );
05779 (yyval.sel(as_simple_declaration)) = sd; ;}
05780 break;
05781
05782 case 375:
05783 #line 1932 "parser.y"
05784 { (yyval.sel(as_simple_declaration)) = as_simple_declaration::create( loc((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(2) - (3)].sel(as_init_declarator_list))) ); ;}
05785 break;
05786
05787 case 376:
05788 #line 1934 "parser.y"
05789 { ptr<as_simple_declaration> sd = as_simple_declaration::create( loc((yyvsp[(1) - (2)].sel(as_type_specifier))), EMPTY_LIST(as_declaration_specifier), EMPTY_LIST(as_init_declarator) );
05790 LIST_APPEND( sd->declaration_specifiers_get(), (yyvsp[(1) - (2)].sel(as_type_specifier)) );
05791 (yyval.sel(as_simple_declaration)) = sd; ;}
05792 break;
05793
05794 case 377:
05795 #line 1946 "parser.y"
05796 { NEW_WRAPPER_W1( (yyval.sel(as_member_declarator_list)), as_member_declarator_list, loc((yyvsp[(1) - (1)].sel(as_ordinary_member_declarator))), as_member_declarator, (yyvsp[(1) - (1)].sel(as_ordinary_member_declarator)) ); ;}
05797 break;
05798
05799 case 378:
05800 #line 1948 "parser.y"
05801 { (yyval.sel(as_member_declarator_list)) = (yyvsp[(1) - (3)].sel(as_member_declarator_list)); WRAPPER_APPEND( (yyval.sel(as_member_declarator_list)), (yyvsp[(3) - (3)].sel(as_ordinary_member_declarator)) ); ;}
05802 break;
05803
05804 case 379:
05805 #line 1956 "parser.y"
05806 {
05807 (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (1)].sel(as_declaration_specifier_seq));
05808 sa_parser_action_logger << "decl spec seq in function scope\n" << msg::eolog;
05809 sa_simple_declaration::instance()->save_declaration_specifiers((yyvsp[(1) - (1)].sel(as_declaration_specifier_seq)));
05810 ;}
05811 break;
05812
05813 case 380:
05814 #line 1965 "parser.y"
05815 {
05816 (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (1)].sel(as_declaration_specifier_seq));
05817 ;}
05818 break;
05819
05820 case 381:
05821 #line 1973 "parser.y"
05822 { (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (1)].sel(as_declaration_specifier_seq)); ;}
05823 break;
05824
05825 case 382:
05826 #line 1975 "parser.y"
05827 { (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (1)].sel(as_declaration_specifier_seq)); ;}
05828 break;
05829
05830 case 383:
05831 #line 1997 "parser.y"
05832 { NEW_WRAPPER_W1( (yyval.sel(as_declaration_specifier_seq)), as_declaration_specifier_seq, loc((yyvsp[(1) - (1)].sel(as_declaration_specifier))), as_declaration_specifier, (yyvsp[(1) - (1)].sel(as_declaration_specifier)) ); ;}
05833 break;
05834
05835 case 384:
05836 #line 2000 "parser.y"
05837 { (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_declaration_specifier_seq)), (yyvsp[(2) - (2)].sel(as_declaration_specifier)) ); ;}
05838 break;
05839
05840 case 385:
05841 #line 2003 "parser.y"
05842 { (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_declaration_specifier_seq)), (yyvsp[(2) - (2)].sel(as_declaration_specifier)) ); ;}
05843 break;
05844
05845 case 386:
05846 #line 2012 "parser.y"
05847 { NEW_WRAPPER_W1( (yyval.sel(as_declaration_specifier_seq)), as_declaration_specifier_seq, loc((yyvsp[(1) - (1)].sel(as_declaration_specifier))), as_declaration_specifier, (yyvsp[(1) - (1)].sel(as_declaration_specifier)) ); ;}
05848 break;
05849
05850 case 387:
05851 #line 2014 "parser.y"
05852 { (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_declaration_specifier_seq)), (yyvsp[(2) - (2)].sel(as_declaration_specifier)) ); ;}
05853 break;
05854
05855 case 388:
05856 #line 2017 "parser.y"
05857 { (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_declaration_specifier_seq)), (yyvsp[(2) - (2)].sel(as_declaration_specifier)) ); ;}
05858 break;
05859
05860 case 389:
05861 #line 2019 "parser.y"
05862 { (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_declaration_specifier_seq)), (yyvsp[(2) - (2)].sel(as_declaration_specifier)) ); ;}
05863 break;
05864
05865 case 390:
05866 #line 2024 "parser.y"
05867 { NEW_WRAPPER_W1( (yyval.sel(as_declaration_specifier_seq)), as_declaration_specifier_seq, loc((yyvsp[(1) - (1)].sel(as_declaration_specifier))), as_declaration_specifier, (yyvsp[(1) - (1)].sel(as_declaration_specifier)) ); ;}
05868 break;
05869
05870 case 391:
05871 #line 2026 "parser.y"
05872 { (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_declaration_specifier_seq)), (yyvsp[(2) - (2)].sel(as_declaration_specifier)) ); ;}
05873 break;
05874
05875 case 392:
05876 #line 2031 "parser.y"
05877 { (yyval.sel(as_declaration_specifier)) = (yyvsp[(1) - (1)].sel(as_type_specifier)); ;}
05878 break;
05879
05880 case 393:
05881 #line 2033 "parser.y"
05882 { (yyval.sel(as_declaration_specifier)) = (yyvsp[(1) - (1)].sel(as_type_specifier)); ;}
05883 break;
05884
05885 case 394:
05886 #line 2038 "parser.y"
05887 { (yyval.sel(as_declaration_specifier)) = (yyvsp[(1) - (1)].sel(as_builtin_simple_type_specifier)); ;}
05888 break;
05889
05890 case 395:
05891 #line 2043 "parser.y"
05892 { (yyval.sel(as_declaration_specifier)) = (yyvsp[(1) - (1)].sel(as_storage_class_specifier)); ;}
05893 break;
05894
05895 case 396:
05896 #line 2045 "parser.y"
05897 { (yyval.sel(as_declaration_specifier)) = (yyvsp[(1) - (1)].sel(as_cv_qualifier)); ;}
05898 break;
05899
05900 case 397:
05901 #line 2047 "parser.y"
05902 { (yyval.sel(as_declaration_specifier)) = (yyvsp[(1) - (1)].sel(as_function_specifier)); ;}
05903 break;
05904
05905 case 398:
05906 #line 2049 "parser.y"
05907 { (yyval.sel(as_declaration_specifier)) = as_friend_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05908 break;
05909
05910 case 399:
05911 #line 2051 "parser.y"
05912 { (yyval.sel(as_declaration_specifier)) = as_typedef_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05913 break;
05914
05915 case 400:
05916 #line 2058 "parser.y"
05917 { (yyval.sel(as_storage_class_specifier)) = as_storage_class_specifier_auto::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05918 break;
05919
05920 case 401:
05921 #line 2060 "parser.y"
05922 { (yyval.sel(as_storage_class_specifier)) = as_storage_class_specifier_register::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05923 break;
05924
05925 case 402:
05926 #line 2062 "parser.y"
05927 { (yyval.sel(as_storage_class_specifier)) = as_storage_class_specifier_static::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05928 break;
05929
05930 case 403:
05931 #line 2064 "parser.y"
05932 { (yyval.sel(as_storage_class_specifier)) = as_storage_class_specifier_extern::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05933 break;
05934
05935 case 404:
05936 #line 2066 "parser.y"
05937 { (yyval.sel(as_storage_class_specifier)) = as_storage_class_specifier_mutable::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05938 break;
05939
05940 case 405:
05941 #line 2073 "parser.y"
05942 { (yyval.sel(as_function_specifier)) = as_function_specifier_inline::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05943 break;
05944
05945 case 406:
05946 #line 2075 "parser.y"
05947 { (yyval.sel(as_function_specifier)) = as_function_specifier_virtual::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05948 break;
05949
05950 case 407:
05951 #line 2077 "parser.y"
05952 { (yyval.sel(as_function_specifier)) = as_function_specifier_explicit::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
05953 break;
05954
05955 case 408:
05956 #line 2082 "parser.y"
05957 { (yyval.sel(bison_token)) = (yyvsp[(1) - (1)].sel(bison_token)); hinter::elab_spec_set( elab_spec_enum::create(loc((yyvsp[(1) - (1)].sel(bison_token)))) ); ;}
05958 break;
05959
05960 case 409:
05961 #line 2097 "parser.y"
05962 { (yyval.sel(as_type_specifier)) = (yyvsp[(1) - (1)].sel(as_simple_type_specifier)); ;}
05963 break;
05964
05965 case 410:
05966 #line 2100 "parser.y"
05967 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_class_key::create( loc((yyvsp[(1) - (4)].sel(as_class_key))), as_name::create(loc((yyvsp[(2) - (4)].sel(bison_token))),GLOB_CTX(loc((yyvsp[(2) - (4)].sel(bison_token)))),TOK2ID((yyvsp[(4) - (4)].sel(bison_id_token))),true), (yyvsp[(1) - (4)].sel(as_class_key)) ); ;}
05968 break;
05969
05970 case 411:
05971 #line 2102 "parser.y"
05972 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_class_key::create( loc((yyvsp[(1) - (5)].sel(as_class_key))), as_name::create(loc((yyvsp[(2) - (5)].sel(bison_token))),(yyvsp[(4) - (5)].sel(as_name)),TOK2ID((yyvsp[(5) - (5)].sel(bison_id_token))),true), (yyvsp[(1) - (5)].sel(as_class_key)) ); ;}
05973 break;
05974
05975 case 412:
05976 #line 2104 "parser.y"
05977 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_enum::create( loc((yyvsp[(1) - (2)].sel(bison_token))), as_name::create(loc((yyvsp[(2) - (2)].sel(bison_id_token))),CURR_CTX(loc((yyvsp[(2) - (2)].sel(bison_id_token)))),TOK2ID((yyvsp[(2) - (2)].sel(bison_id_token)))) ); ;}
05978 break;
05979
05980 case 413:
05981 #line 2106 "parser.y"
05982 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_enum::create( loc((yyvsp[(1) - (3)].sel(bison_token))), as_name::create(loc((yyvsp[(2) - (3)].sel(as_name))),(yyvsp[(2) - (3)].sel(as_name)),TOK2ID((yyvsp[(3) - (3)].sel(bison_id_token))),true) ); ;}
05983 break;
05984
05985 case 414:
05986 #line 2108 "parser.y"
05987 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_enum::create( loc((yyvsp[(1) - (4)].sel(bison_token))), as_name::create(loc((yyvsp[(2) - (4)].sel(bison_token))),GLOB_CTX(loc((yyvsp[(2) - (4)].sel(bison_token)))),TOK2ID((yyvsp[(4) - (4)].sel(bison_id_token))),true) ); ;}
05988 break;
05989
05990 case 415:
05991 #line 2110 "parser.y"
05992 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_enum::create( loc((yyvsp[(1) - (5)].sel(bison_token))), as_name::create(loc((yyvsp[(2) - (5)].sel(bison_token))),(yyvsp[(4) - (5)].sel(as_name)),TOK2ID((yyvsp[(5) - (5)].sel(bison_id_token))),true) ); ;}
05993 break;
05994
05995 case 416:
05996 #line 2112 "parser.y"
05997 { (yyval.sel(as_type_specifier)) = (yyvsp[(1) - (1)].sel(as_type_specifier)); ;}
05998 break;
05999
06000 case 417:
06001 #line 2116 "parser.y"
06002 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_class_key::create( loc((yyvsp[(1) - (2)].sel(as_class_key))), as_name::create(loc((yyvsp[(2) - (2)].sel(bison_id_token))),CURR_CTX(loc((yyvsp[(2) - (2)].sel(bison_id_token)))),TOK2ID((yyvsp[(2) - (2)].sel(bison_id_token)))), (yyvsp[(1) - (2)].sel(as_class_key)) ); ;}
06003 break;
06004
06005 case 418:
06006 #line 2118 "parser.y"
06007 { (yyval.sel(as_type_specifier)) = as_elaborated_type_specifier_class_key::create( loc((yyvsp[(1) - (3)].sel(as_class_key))), as_name::create(loc((yyvsp[(2) - (3)].sel(as_name))),(yyvsp[(2) - (3)].sel(as_name)),TOK2ID((yyvsp[(3) - (3)].sel(bison_id_token))),true), (yyvsp[(1) - (3)].sel(as_class_key)) ); ;}
06008 break;
06009
06010 case 419:
06011 #line 2123 "parser.y"
06012 { (yyval.sel(as_anyid_opt_bearer)) = as_anyid_opt_bearer::create( loc((yyvsp[(1) - (1)].sel(as_no_token))), NULL ); ;}
06013 break;
06014
06015 case 420:
06016 #line 2125 "parser.y"
06017 { (yyval.sel(as_anyid_opt_bearer)) = as_anyid_opt_bearer::create( loc((yyvsp[(1) - (1)].sel(as_identifier))), (yyvsp[(1) - (1)].sel(as_identifier)) ); ;}
06018 break;
06019
06020 case 421:
06021 #line 2130 "parser.y"
06022 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
06023 break;
06024
06025 case 422:
06026 #line 2132 "parser.y"
06027 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
06028 break;
06029
06030 case 423:
06031 #line 2134 "parser.y"
06032 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
06033 break;
06034
06035 case 424:
06036 #line 2136 "parser.y"
06037 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
06038 break;
06039
06040 case 425:
06041 #line 2138 "parser.y"
06042 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
06043 break;
06044
06045 case 426:
06046 #line 2140 "parser.y"
06047 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
06048 break;
06049
06050 case 427:
06051 #line 2142 "parser.y"
06052 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
06053 break;
06054
06055 case 428:
06056 #line 2144 "parser.y"
06057 { (yyval.sel(as_identifier)) = TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))); ;}
06058 break;
06059
06060 case 429:
06061 #line 2163 "parser.y"
06062 {
06063 int next_type = manager::peek()->type_get();
06064 if (manager::in_disambiguation()) {
06065 lassert2( !is_pack(next_type),
06066 "Trying to pack a pack, forgot to unpack when rolling back?" );
06067 manager::pack( TOK_PACK_BODY, loc(manager::prev_yylex()) );
06068 } else if (is_pack(next_type)) {
06069
06070
06071 lassert2( next_type == TOK_PACK_BODY, "Different pack type found!" );
06072 manager::unpack();
06073 } else {
06074
06075 }
06076 ;}
06077 break;
06078
06079 case 430:
06080 #line 2182 "parser.y"
06081 {
06082
06083 (yyval.sel(as_type_specifier)) = (yyvsp[(1) - (5)].sel(as_class_specifier));
06084
06085 sa_parser_action_logger
06086 << "after _class_specifier_action: disambiguating\n"
06087 << ::lestes::msg::eolog;
06088 ;}
06089 break;
06090
06091 case 431:
06092 #line 2191 "parser.y"
06093 {
06094
06095 ptr<as_class_specifier> cs = (yyvsp[(1) - (5)].sel(as_class_specifier));
06096 LIST_APPEND_LIST( cs->member_declarations_get(), UNWRAP((yyvsp[(4) - (5)].sel(as_member_specification))) );
06097 (yyval.sel(as_type_specifier)) = cs;
06098 sa_parser_action_logger
06099 << "after _class_specifier_action: parsing\n"
06100 << ::lestes::msg::eolog;
06101 sa_class_declaration::create()->process_end(loc((yyvsp[(5) - (5)].sel(bison_token))));
06102 ;}
06103 break;
06104
06105 case 432:
06106 #line 2204 "parser.y"
06107 { (yyval.sel(as_type_specifier)) = as_enumeration_specifier::create( loc((yyvsp[(1) - (6)].sel(bison_token))), NULL, EMPTY_LIST(as_enumerator_definition) ); ;}
06108 break;
06109
06110 case 433:
06111 #line 2206 "parser.y"
06112 { (yyval.sel(as_type_specifier)) = as_enumeration_specifier::create( loc((yyvsp[(1) - (6)].sel(bison_token))), (yyvsp[(2) - (6)].sel(as_anyid_opt_bearer))->value_get() ? as_name::create(loc((yyvsp[(2) - (6)].sel(as_anyid_opt_bearer))),CURR_CTX(loc((yyvsp[(2) - (6)].sel(as_anyid_opt_bearer)))),(yyvsp[(2) - (6)].sel(as_anyid_opt_bearer))->value_get()) : ptr<as_name>(NULL), UNWRAP((yyvsp[(5) - (6)].sel(as_enumerator_list))) ); ;}
06113 break;
06114
06115 case 434:
06116 #line 2211 "parser.y"
06117 { (yyval.sel(as_class_specifier)) = (yyvsp[(1) - (1)].sel(as_class_specifier)); sa_class_declaration::create()->process((yyvsp[(1) - (1)].sel(as_class_specifier))); ;}
06118 break;
06119
06120 case 435:
06121 #line 2216 "parser.y"
06122 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (2)].sel(as_class_key))), (yyvsp[(1) - (2)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (2)].sel(as_no_token))), CURR_CTX(loc((yyvsp[(2) - (2)].sel(as_no_token)))), EMPTY_ID(loc((yyvsp[(2) - (2)].sel(as_no_token)))) ), EMPTY_LIST(as_base_specifier), EMPTY_LIST(as_member_declaration) ); ;}
06123 break;
06124
06125 case 436:
06126 #line 2218 "parser.y"
06127 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (3)].sel(as_class_key))), (yyvsp[(1) - (3)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (3)].sel(bison_token))), CURR_CTX(loc((yyvsp[(2) - (3)].sel(bison_token)))), EMPTY_ID(loc((yyvsp[(2) - (3)].sel(bison_token)))) ), UNWRAP((yyvsp[(3) - (3)].sel(as_base_specifier_list))), EMPTY_LIST(as_member_declaration) ); ;}
06128 break;
06129
06130 case 437:
06131 #line 2221 "parser.y"
06132 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (2)].sel(as_class_key))), (yyvsp[(1) - (2)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (2)].sel(as_identifier))), CURR_CTX(loc((yyvsp[(2) - (2)].sel(as_identifier)))), (yyvsp[(2) - (2)].sel(as_identifier)) ), EMPTY_LIST(as_base_specifier), EMPTY_LIST(as_member_declaration) ); ;}
06133 break;
06134
06135 case 438:
06136 #line 2223 "parser.y"
06137 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (3)].sel(as_class_key))), (yyvsp[(1) - (3)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (3)].sel(as_name))), (yyvsp[(2) - (3)].sel(as_name)), (yyvsp[(3) - (3)].sel(as_identifier)), true ), EMPTY_LIST(as_base_specifier), EMPTY_LIST(as_member_declaration) ); ;}
06138 break;
06139
06140 case 439:
06141 #line 2225 "parser.y"
06142 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (4)].sel(as_class_key))), (yyvsp[(1) - (4)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (4)].sel(as_identifier))), CURR_CTX(loc((yyvsp[(2) - (4)].sel(as_identifier)))), (yyvsp[(2) - (4)].sel(as_identifier)) ), UNWRAP((yyvsp[(4) - (4)].sel(as_base_specifier_list))), EMPTY_LIST(as_member_declaration) ); ;}
06143 break;
06144
06145 case 440:
06146 #line 2227 "parser.y"
06147 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (5)].sel(as_class_key))), (yyvsp[(1) - (5)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (5)].sel(as_name))), (yyvsp[(2) - (5)].sel(as_name)), (yyvsp[(3) - (5)].sel(as_identifier)), true ), UNWRAP((yyvsp[(5) - (5)].sel(as_base_specifier_list))), EMPTY_LIST(as_member_declaration) ); ;}
06148 break;
06149
06150 case 441:
06151 #line 2230 "parser.y"
06152 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (3)].sel(as_class_key))), (yyvsp[(1) - (3)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (3)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(2) - (3)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(2) - (3)].sel(bison_id_token))),(yyvsp[(2) - (3)].sel(bison_id_token)),UNWRAP((yyvsp[(3) - (3)].sel(as_template_argument_list)))) ), EMPTY_LIST(as_base_specifier), EMPTY_LIST(as_member_declaration) ); ;}
06153 break;
06154
06155 case 442:
06156 #line 2232 "parser.y"
06157 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (5)].sel(as_class_key))), (yyvsp[(1) - (5)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (5)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(2) - (5)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(2) - (5)].sel(bison_id_token))),(yyvsp[(2) - (5)].sel(bison_id_token)),UNWRAP((yyvsp[(3) - (5)].sel(as_template_argument_list)))) ), UNWRAP((yyvsp[(5) - (5)].sel(as_base_specifier_list))), EMPTY_LIST(as_member_declaration) ); ;}
06158 break;
06159
06160 case 443:
06161 #line 2234 "parser.y"
06162 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (4)].sel(as_class_key))), (yyvsp[(1) - (4)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (4)].sel(as_name))), (yyvsp[(2) - (4)].sel(as_name)), as_template_id::create(loc((yyvsp[(3) - (4)].sel(bison_id_token))),(yyvsp[(3) - (4)].sel(bison_id_token)),UNWRAP((yyvsp[(4) - (4)].sel(as_template_argument_list)))), true ), EMPTY_LIST(as_base_specifier), EMPTY_LIST(as_member_declaration) ); ;}
06163 break;
06164
06165 case 444:
06166 #line 2236 "parser.y"
06167 { (yyval.sel(as_class_specifier)) = as_class_specifier::create( loc((yyvsp[(1) - (6)].sel(as_class_key))), (yyvsp[(1) - (6)].sel(as_class_key)), as_name::create( loc((yyvsp[(2) - (6)].sel(as_name))), (yyvsp[(2) - (6)].sel(as_name)), as_template_id::create(loc((yyvsp[(3) - (6)].sel(bison_id_token))),(yyvsp[(3) - (6)].sel(bison_id_token)),UNWRAP((yyvsp[(4) - (6)].sel(as_template_argument_list)))), true ), UNWRAP((yyvsp[(6) - (6)].sel(as_base_specifier_list))), EMPTY_LIST(as_member_declaration) ); ;}
06168 break;
06169
06170 case 445:
06171 #line 2254 "parser.y"
06172 { (yyval.sel(as_cv_qualifier)) = as_cv_qualifier_const::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06173 break;
06174
06175 case 446:
06176 #line 2256 "parser.y"
06177 { (yyval.sel(as_cv_qualifier)) = as_cv_qualifier_volatile::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06178 break;
06179
06180 case 447:
06181 #line 2263 "parser.y"
06182 { NEW_WRAPPER_W1( (yyval.sel(as_cv_qualifier_seq)), as_cv_qualifier_seq, loc((yyvsp[(1) - (1)].sel(as_cv_qualifier))), as_cv_qualifier, (yyvsp[(1) - (1)].sel(as_cv_qualifier)) ); ;}
06183 break;
06184
06185 case 448:
06186 #line 2265 "parser.y"
06187 { (yyval.sel(as_cv_qualifier_seq)) = (yyvsp[(1) - (2)].sel(as_cv_qualifier_seq)); WRAPPER_APPEND( (yyval.sel(as_cv_qualifier_seq)), (yyvsp[(2) - (2)].sel(as_cv_qualifier)) ); ;}
06188 break;
06189
06190 case 449:
06191 #line 2272 "parser.y"
06192 { (yyval.sel(as_simple_type_specifier)) = as_named_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(as_name))), (yyvsp[(1) - (1)].sel(as_name)) ); ;}
06193 break;
06194
06195 case 450:
06196 #line 2274 "parser.y"
06197 { (yyval.sel(as_simple_type_specifier)) = as_void_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06198 break;
06199
06200 case 451:
06201 #line 2279 "parser.y"
06202 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(as_name))), (yyvsp[(1) - (2)].sel(as_name)), TOK2ID((yyvsp[(2) - (2)].sel(bison_id_token))), (yyvsp[(1) - (2)].sel(as_name))->was_qualified_get() ); ;}
06203 break;
06204
06205 case 452:
06206 #line 2281 "parser.y"
06207 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(1) - (3)].sel(as_name)), as_template_id::create(loc((yyvsp[(2) - (3)].sel(bison_id_token))),(yyvsp[(2) - (3)].sel(bison_id_token)),UNWRAP((yyvsp[(3) - (3)].sel(as_template_argument_list)))), (yyvsp[(1) - (3)].sel(as_name))->was_qualified_get() ); ;}
06208 break;
06209
06210 case 453:
06211 #line 2283 "parser.y"
06212 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(as_name))), (yyvsp[(1) - (2)].sel(as_name)), TOK2ID((yyvsp[(2) - (2)].sel(bison_id_token))), (yyvsp[(1) - (2)].sel(as_name))->was_qualified_get() ); ;}
06213 break;
06214
06215 case 454:
06216 #line 2285 "parser.y"
06217 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(as_name))), (yyvsp[(1) - (2)].sel(as_name)), TOK2ID((yyvsp[(2) - (2)].sel(bison_id_token))), (yyvsp[(1) - (2)].sel(as_name))->was_qualified_get() ); ;}
06218 break;
06219
06220 case 455:
06221 #line 2287 "parser.y"
06222 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(2) - (3)].sel(as_name)), TOK2ID((yyvsp[(3) - (3)].sel(bison_id_token))), true ); ;}
06223 break;
06224
06225 case 456:
06226 #line 2289 "parser.y"
06227 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (4)].sel(as_name))), (yyvsp[(2) - (4)].sel(as_name)), as_template_id::create( loc((yyvsp[(3) - (4)].sel(bison_id_token))), (yyvsp[(3) - (4)].sel(bison_id_token)), UNWRAP((yyvsp[(4) - (4)].sel(as_template_argument_list))) ), true ); ;}
06228 break;
06229
06230 case 457:
06231 #line 2291 "parser.y"
06232 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(2) - (3)].sel(as_name)), TOK2ID((yyvsp[(3) - (3)].sel(bison_id_token))), true ); ;}
06233 break;
06234
06235 case 458:
06236 #line 2293 "parser.y"
06237 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(2) - (3)].sel(as_name)), TOK2ID((yyvsp[(3) - (3)].sel(bison_id_token))), true ); ;}
06238 break;
06239
06240 case 459:
06241 #line 2295 "parser.y"
06242 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (6)].sel(as_name))), (yyvsp[(2) - (6)].sel(as_name)), as_template_id::create( loc((yyvsp[(5) - (6)].sel(bison_id_token))), (yyvsp[(5) - (6)].sel(bison_id_token)), UNWRAP((yyvsp[(6) - (6)].sel(as_template_argument_list))) ), true ); ;}
06243 break;
06244
06245 case 460:
06246 #line 2300 "parser.y"
06247 { (yyval.sel(as_builtin_simple_type_specifier)) = as_char_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06248 break;
06249
06250 case 461:
06251 #line 2302 "parser.y"
06252 { (yyval.sel(as_builtin_simple_type_specifier)) = as_wchar_t_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06253 break;
06254
06255 case 462:
06256 #line 2304 "parser.y"
06257 { (yyval.sel(as_builtin_simple_type_specifier)) = as_bool_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06258 break;
06259
06260 case 463:
06261 #line 2306 "parser.y"
06262 { (yyval.sel(as_builtin_simple_type_specifier)) = as_short_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06263 break;
06264
06265 case 464:
06266 #line 2308 "parser.y"
06267 { (yyval.sel(as_builtin_simple_type_specifier)) = as_int_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06268 break;
06269
06270 case 465:
06271 #line 2310 "parser.y"
06272 { (yyval.sel(as_builtin_simple_type_specifier)) = as_long_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06273 break;
06274
06275 case 466:
06276 #line 2312 "parser.y"
06277 { (yyval.sel(as_builtin_simple_type_specifier)) = as_signed_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06278 break;
06279
06280 case 467:
06281 #line 2314 "parser.y"
06282 { (yyval.sel(as_builtin_simple_type_specifier)) = as_unsigned_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06283 break;
06284
06285 case 468:
06286 #line 2316 "parser.y"
06287 { (yyval.sel(as_builtin_simple_type_specifier)) = as_float_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06288 break;
06289
06290 case 469:
06291 #line 2318 "parser.y"
06292 { (yyval.sel(as_builtin_simple_type_specifier)) = as_double_simple_type_specifier::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06293 break;
06294
06295 case 470:
06296 #line 2323 "parser.y"
06297 { (yyval.sel(as_enumerator_list)) = EMPTY_WRAPPER( as_enumerator_list, loc((yyvsp[(1) - (1)].sel(as_no_token))), as_enumerator_definition ); ;}
06298 break;
06299
06300 case 471:
06301 #line 2325 "parser.y"
06302 { (yyval.sel(as_enumerator_list)) = (yyvsp[(1) - (1)].sel(as_enumerator_list)); ;}
06303 break;
06304
06305 case 472:
06306 #line 2332 "parser.y"
06307 { NEW_WRAPPER_W1( (yyval.sel(as_enumerator_list)), as_enumerator_list, loc((yyvsp[(1) - (1)].sel(as_enumerator_definition))), as_enumerator_definition, (yyvsp[(1) - (1)].sel(as_enumerator_definition)) ); ;}
06308 break;
06309
06310 case 473:
06311 #line 2334 "parser.y"
06312 { (yyval.sel(as_enumerator_list)) = (yyvsp[(1) - (3)].sel(as_enumerator_list)); WRAPPER_APPEND( (yyval.sel(as_enumerator_list)), (yyvsp[(3) - (3)].sel(as_enumerator_definition)) ); ;}
06313 break;
06314
06315 case 474:
06316 #line 2339 "parser.y"
06317 { (yyval.sel(as_enumerator_definition)) = as_enumerator_definition::create( loc((yyvsp[(1) - (1)].sel(as_identifier))), (yyvsp[(1) - (1)].sel(as_identifier)), as_constant_expression::create( loc((yyvsp[(1) - (1)].sel(as_identifier))), EMPTY_EXPR(loc((yyvsp[(1) - (1)].sel(as_identifier)))) ) ); ;}
06318 break;
06319
06320 case 475:
06321 #line 2341 "parser.y"
06322 { (yyval.sel(as_enumerator_definition)) = as_enumerator_definition::create( loc((yyvsp[(1) - (3)].sel(as_identifier))), (yyvsp[(1) - (3)].sel(as_identifier)), (yyvsp[(3) - (3)].sel(as_constant_expression)) ); ;}
06323 break;
06324
06325 case 476:
06326 #line 2347 "parser.y"
06327 {
06328 LIST_APPEND_LIST( (yyvsp[(1) - (4)].sel(as_namespace_definition))->declarations_get(), UNWRAP((yyvsp[(3) - (4)].sel(as_declaration_seq))) );
06329 (yyval.sel(as_namespace_definition)) = (yyvsp[(1) - (4)].sel(as_namespace_definition));
06330 sa_namespace_definition::instance()->process_end();
06331 ;}
06332 break;
06333
06334 case 477:
06335 #line 2356 "parser.y"
06336 {
06337 ptr<as_namespace_definition> nd = as_namespace_definition::create( loc((yyvsp[(1) - (2)].sel(bison_token))), as_name::create(loc((yyvsp[(2) - (2)].sel(as_identifier))),CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_token)))),(yyvsp[(2) - (2)].sel(as_identifier))), EMPTY_LIST(as_declaration) );
06338 sa_namespace_definition::instance()->process_named( nd->name_get() );
06339 (yyval.sel(as_namespace_definition)) = nd;
06340 ;}
06341 break;
06342
06343 case 478:
06344 #line 2362 "parser.y"
06345 {
06346 (yyval.sel(as_namespace_definition)) = as_namespace_definition::create( loc((yyvsp[(1) - (3)].sel(bison_token))), as_name::create(loc((yyvsp[(1) - (3)].sel(bison_token))),CURR_CTX(loc((yyvsp[(1) - (3)].sel(bison_token)))),EMPTY_ID(loc((yyvsp[(2) - (3)].sel(as_no_token))))), EMPTY_LIST(as_declaration) );
06347 sa_namespace_definition::instance()->process_unnamed( loc((yyvsp[(1) - (3)].sel(bison_token))) );
06348 ;}
06349 break;
06350
06351 case 479:
06352 #line 2370 "parser.y"
06353 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)); ;}
06354 break;
06355
06356 case 480:
06357 #line 2372 "parser.y"
06358 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)); ;}
06359 break;
06360
06361 case 481:
06362 #line 2377 "parser.y"
06363 { (yyvsp[(3) - (4)].sel(as_name))->was_qualified_set( (yyvsp[(2) - (4)].sel(as_name))->was_qualified_get() ); (yyval.sel(as_using_declaration)) = as_using_declaration::create( loc((yyvsp[(1) - (4)].sel(bison_token))), (yyvsp[(3) - (4)].sel(as_name)) ); ;}
06364 break;
06365
06366 case 482:
06367 #line 2379 "parser.y"
06368 { (yyvsp[(4) - (5)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_using_declaration)) = as_using_declaration::create( loc((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(4) - (5)].sel(as_name)) ); ;}
06369 break;
06370
06371 case 483:
06372 #line 2381 "parser.y"
06373 { (yyvsp[(5) - (6)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_using_declaration)) = as_using_declaration_with_typename::create( loc((yyvsp[(1) - (6)].sel(bison_token))), (yyvsp[(5) - (6)].sel(as_name)) ); ;}
06374 break;
06375
06376 case 484:
06377 #line 2388 "parser.y"
06378 { (yyval.sel(as_class_key)) = (yyvsp[(1) - (1)].sel(as_class_key)); hinter::elab_spec_set( elab_spec_class_key::create(loc((yyvsp[(1) - (1)].sel(as_class_key))),(yyvsp[(1) - (1)].sel(as_class_key))) ); ;}
06379 break;
06380
06381 case 485:
06382 #line 2393 "parser.y"
06383 { (yyval.sel(as_class_key)) = as_class_key_class::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06384 break;
06385
06386 case 486:
06387 #line 2395 "parser.y"
06388 { (yyval.sel(as_class_key)) = as_class_key_struct::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06389 break;
06390
06391 case 487:
06392 #line 2397 "parser.y"
06393 { (yyval.sel(as_class_key)) = as_class_key_union::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06394 break;
06395
06396 case 488:
06397 #line 2402 "parser.y"
06398 { (yyval.sel(as_member_specification)) = EMPTY_WRAPPER( as_member_specification, loc((yyvsp[(1) - (1)].sel(as_no_token))), as_member_declaration ); ;}
06399 break;
06400
06401 case 489:
06402 #line 2404 "parser.y"
06403 { (yyval.sel(as_member_specification)) = (yyvsp[(1) - (1)].sel(as_member_specification)); ;}
06404 break;
06405
06406 case 490:
06407 #line 2409 "parser.y"
06408 { NEW_WRAPPER_W1( (yyval.sel(as_member_specification)), as_member_specification, loc((yyvsp[(1) - (1)].sel(as_member_declaration))), as_member_declaration, (yyvsp[(1) - (1)].sel(as_member_declaration)) ); ;}
06409 break;
06410
06411 case 491:
06412 #line 2411 "parser.y"
06413 { (yyval.sel(as_member_specification)) = EMPTY_WRAPPER( as_member_specification, loc((yyvsp[(1) - (2)].sel(as_access_specifier))), as_member_declaration );
06414 ;}
06415 break;
06416
06417 case 492:
06418 #line 2414 "parser.y"
06419 { (yyval.sel(as_member_specification)) = (yyvsp[(1) - (2)].sel(as_member_specification)); WRAPPER_APPEND( (yyval.sel(as_member_specification)), (yyvsp[(2) - (2)].sel(as_member_declaration)) ); ;}
06420 break;
06421
06422 case 493:
06423 #line 2416 "parser.y"
06424 { (yyval.sel(as_member_specification)) = (yyvsp[(1) - (3)].sel(as_member_specification)); ;}
06425 break;
06426
06427 case 494:
06428 #line 2426 "parser.y"
06429 {
06430 clear_lookahead();
06431 disambiguate_ctor_and_bitfield_class_scope( (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)) );
06432 (yyval.sel(as_declaration_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_declaration_specifier_seq));
06433 sa_parser_action_logger << "decl spec seq in class scope\n" << msg::eolog;
06434 sa_simple_declaration::instance()->save_declaration_specifiers((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq)));
06435 ;}
06436 break;
06437
06438 case 495:
06439 #line 2438 "parser.y"
06440 { ptr<as_declarator> ctor_dcltor = as_declarator::create( loc((yyvsp[(1) - (2)].sel(as_constructor_id))), as_name::create(loc((yyvsp[(2) - (2)].sel(as_declarator_op))),CURR_CTX(loc((yyvsp[(1) - (2)].sel(as_constructor_id)))),(yyvsp[(1) - (2)].sel(as_constructor_id))), EMPTY_LIST(as_declarator_op) );
06441 LIST_APPEND( ctor_dcltor->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) );
06442 (yyval.sel(as_ordinary_member_declarator)) = as_ordinary_member_declarator::create( loc(ctor_dcltor), ctor_dcltor );
06443 ;}
06444 break;
06445
06446 case 496:
06447 #line 2444 "parser.y"
06448 { ptr<as_declarator> ctor_dcltor = as_declarator::create( loc((yyvsp[(2) - (4)].sel(as_constructor_id))), as_name::create(loc((yyvsp[(3) - (4)].sel(as_declarator_op))),CURR_CTX(loc((yyvsp[(2) - (4)].sel(as_constructor_id)))),(yyvsp[(2) - (4)].sel(as_constructor_id))), EMPTY_LIST(as_declarator_op) );
06449 LIST_APPEND( ctor_dcltor->declarator_ops_get(), (yyvsp[(3) - (4)].sel(as_declarator_op)) );
06450 (yyval.sel(as_ordinary_member_declarator)) = as_ordinary_member_declarator::create( loc(ctor_dcltor), ctor_dcltor );
06451 ;}
06452 break;
06453
06454 case 497:
06455 #line 2450 "parser.y"
06456 { (yyval.sel(as_ordinary_member_declarator)) = (yyvsp[(2) - (3)].sel(as_ordinary_member_declarator)); ;}
06457 break;
06458
06459 case 498:
06460 #line 2455 "parser.y"
06461 { ptr<as_declarator> ctor_dcltor = as_declarator::create( loc((yyvsp[(1) - (2)].sel(as_constructor_id))), as_name::create(loc((yyvsp[(1) - (2)].sel(as_constructor_id))),CURR_CTX(loc((yyvsp[(1) - (2)].sel(as_constructor_id)))),(yyvsp[(1) - (2)].sel(as_constructor_id))), EMPTY_LIST(as_declarator_op) );
06462 LIST_APPEND( ctor_dcltor->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) );
06463 (yyval.sel(as_ordinary_member_declarator)) = as_ordinary_member_declarator::create( loc(ctor_dcltor), ctor_dcltor );
06464 ;}
06465 break;
06466
06467 case 499:
06468 #line 2460 "parser.y"
06469 { (yyval.sel(as_ordinary_member_declarator)) = (yyvsp[(2) - (3)].sel(as_ordinary_member_declarator)); ;}
06470 break;
06471
06472 case 500:
06473 #line 2465 "parser.y"
06474 { (yyval.sel(as_constructor_id)) = (yyvsp[(2) - (3)].sel(as_constructor_id)); ;}
06475 break;
06476
06477 case 501:
06478 #line 2470 "parser.y"
06479 { (yyval.sel(as_constructor_id)) = (yyvsp[(1) - (1)].sel(as_constructor_id)); ;}
06480 break;
06481
06482 case 502:
06483 #line 2472 "parser.y"
06484 { (yyval.sel(as_constructor_id)) = (yyvsp[(2) - (3)].sel(as_constructor_id)); ;}
06485 break;
06486
06487 case 503:
06488 #line 2477 "parser.y"
06489 { (yyval.sel(as_constructor_id)) = as_constructor_id::create( loc((yyvsp[(1) - (1)].sel(as_named_simple_type_specifier))), EMPTY_LIST(as_declaration_specifier) );
06490 LIST_APPEND( (yyval.sel(as_constructor_id))->declaration_specifiers_get(), (yyvsp[(1) - (1)].sel(as_named_simple_type_specifier)) ); ;}
06491 break;
06492
06493 case 504:
06494 #line 2483 "parser.y"
06495 { (yyvsp[(2) - (2)].sel(as_name))->was_qualified_set( (yyvsp[(1) - (2)].sel(as_name))->was_qualified_get() );
06496 (yyval.sel(as_named_simple_type_specifier)) = as_named_simple_type_specifier::create( loc((yyvsp[(1) - (2)].sel(as_name))), (yyvsp[(2) - (2)].sel(as_name)) ); ;}
06497 break;
06498
06499 case 505:
06500 #line 2486 "parser.y"
06501 { (yyvsp[(3) - (3)].sel(as_name))->was_qualified_set(true);
06502 (yyval.sel(as_named_simple_type_specifier)) = as_named_simple_type_specifier::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(3) - (3)].sel(as_name)) ); ;}
06503 break;
06504
06505 case 506:
06506 #line 2492 "parser.y"
06507 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (1)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (1)].sel(bison_id_token)))), TOK2ID((yyvsp[(1) - (1)].sel(bison_id_token))) ); ;}
06508 break;
06509
06510 case 507:
06511 #line 2494 "parser.y"
06512 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_id_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_id_token)))), as_template_id::create(loc((yyvsp[(1) - (2)].sel(bison_id_token))),(yyvsp[(1) - (2)].sel(bison_id_token)),UNWRAP((yyvsp[(2) - (2)].sel(as_template_argument_list)))) ) ; ;}
06513 break;
06514
06515 case 508:
06516 #line 2499 "parser.y"
06517 { (yyval.sel(as_member_declaration)) = as_member_declaration_ordinary::create( loc((yyvsp[(1) - (1)].sel(bison_token))), CURR_ACCESS_SPEC(), EMPTY_LIST(as_declaration_specifier), EMPTY_LIST(as_member_declarator) ); ;}
06518 break;
06519
06520 case 509:
06521 #line 2503 "parser.y"
06522 { (yyval.sel(as_member_declaration)) = (yyvsp[(1) - (2)].sel(as_member_declaration_ordinary)); ;}
06523 break;
06524
06525 case 510:
06526 #line 2506 "parser.y"
06527 { (yyval.sel(as_member_declaration)) = as_member_declaration_ordinary::create( loc((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), CURR_ACCESS_SPEC(), UNWRAP((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(2) - (3)].sel(as_member_declarator_list))) ); ;}
06528 break;
06529
06530 case 511:
06531 #line 2513 "parser.y"
06532 { ptr<as_member_declaration_ordinary> mdo = as_member_declaration_ordinary::create( loc((yyvsp[(1) - (2)].sel(as_type_specifier))), CURR_ACCESS_SPEC(), EMPTY_LIST(as_declaration_specifier), EMPTY_LIST(as_member_declarator) );
06533 LIST_APPEND( mdo->declaration_specifiers_get(), (yyvsp[(1) - (2)].sel(as_type_specifier)) );
06534 (yyval.sel(as_member_declaration)) = mdo; ;}
06535 break;
06536
06537 case 512:
06538 #line 2518 "parser.y"
06539 { (yyval.sel(as_member_declaration)) = as_member_function_definition::create( loc((yyvsp[(1) - (1)].sel(as_function_definition))), CURR_ACCESS_SPEC(), (yyvsp[(1) - (1)].sel(as_function_definition)) ); ;}
06540 break;
06541
06542 case 513:
06543 #line 2521 "parser.y"
06544 { (yyval.sel(as_member_declaration)) = as_member_using_declaration::create( loc((yyvsp[(1) - (1)].sel(as_using_declaration))), CURR_ACCESS_SPEC(), (yyvsp[(1) - (1)].sel(as_using_declaration)) ); ;}
06545 break;
06546
06547 case 514:
06548 #line 2524 "parser.y"
06549 { (yyval.sel(as_member_declaration)) = as_member_using_declaration::create( loc((yyvsp[(1) - (1)].sel(as_using_declaration))), CURR_ACCESS_SPEC(), (yyvsp[(1) - (1)].sel(as_using_declaration)) ); ;}
06550 break;
06551
06552 case 515:
06553 #line 2527 "parser.y"
06554 { (yyval.sel(as_member_declaration)) = as_member_template_declaration::create( loc((yyvsp[(1) - (5)].sel(bison_token))), CURR_ACCESS_SPEC(), NULL, UNWRAP((yyvsp[(3) - (5)].sel(as_template_param_list))), (yyvsp[(5) - (5)].sel(as_member_declaration)) ); ;}
06555 break;
06556
06557 case 516:
06558 #line 2529 "parser.y"
06559 { (yyval.sel(as_member_declaration)) = as_member_template_declaration::create( loc((yyvsp[(2) - (6)].sel(bison_token))), CURR_ACCESS_SPEC(), UNWTOK((yyvsp[(1) - (6)].sel(bison_token))), UNWRAP((yyvsp[(4) - (6)].sel(as_template_param_list))), (yyvsp[(6) - (6)].sel(as_member_declaration)) ); ;}
06560 break;
06561
06562 case 517:
06563 #line 2532 "parser.y"
06564 { (yyval.sel(as_member_declaration)) = as_class_forward_member_declaration::create( loc((yyvsp[(1) - (3)].sel(as_class_key))), CURR_ACCESS_SPEC(), (yyvsp[(1) - (3)].sel(as_class_key)), (yyvsp[(2) - (3)].sel(as_identifier)) ); ;}
06565 break;
06566
06567 case 518:
06568 #line 2538 "parser.y"
06569 { (yyvsp[(3) - (4)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_using_declaration)) = as_access_declaration::create( loc((yyvsp[(1) - (4)].sel(as_name))), (yyvsp[(3) - (4)].sel(as_name)) ); ;}
06570 break;
06571
06572 case 519:
06573 #line 2540 "parser.y"
06574 { (yyvsp[(5) - (6)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_using_declaration)) = as_access_declaration::create( loc((yyvsp[(1) - (6)].sel(as_name))), (yyvsp[(5) - (6)].sel(as_name)) ); ;}
06575 break;
06576
06577 case 520:
06578 #line 2545 "parser.y"
06579 { (yyval.sel(as_member_declaration_ordinary)) = as_member_declaration_ordinary::create( loc((yyvsp[(1) - (1)].sel(as_member_declarator_list))), CURR_ACCESS_SPEC(), EMPTY_LIST(as_declaration_specifier), UNWRAP((yyvsp[(1) - (1)].sel(as_member_declarator_list))) ); ;}
06580 break;
06581
06582 case 521:
06583 #line 2547 "parser.y"
06584 { (yyval.sel(as_member_declaration_ordinary)) = as_member_declaration_ordinary::create( loc((yyvsp[(1) - (1)].sel(as_member_declarator_list))), CURR_ACCESS_SPEC(), EMPTY_LIST(as_declaration_specifier), UNWRAP((yyvsp[(1) - (1)].sel(as_member_declarator_list))) ); ;}
06585 break;
06586
06587 case 522:
06588 #line 2549 "parser.y"
06589 { (yyval.sel(as_member_declaration_ordinary)) = as_member_declaration_ordinary::create( loc((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))), CURR_ACCESS_SPEC(), UNWRAP((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(2) - (2)].sel(as_member_declarator_list))) ); ;}
06590 break;
06591
06592 case 523:
06593 #line 2554 "parser.y"
06594 { NEW_WRAPPER_W1( (yyval.sel(as_member_declarator_list)), as_member_declarator_list, loc((yyvsp[(1) - (1)].sel(as_ordinary_member_declarator))), as_member_declarator, (yyvsp[(1) - (1)].sel(as_ordinary_member_declarator)) ); ;}
06595 break;
06596
06597 case 524:
06598 #line 2556 "parser.y"
06599 { (yyval.sel(as_member_declarator_list)) = (yyvsp[(3) - (3)].sel(as_member_declarator_list)); WRAPPER_PREPEND( (yyval.sel(as_member_declarator_list)), (yyvsp[(1) - (3)].sel(as_ordinary_member_declarator)) ); ;}
06600 break;
06601
06602 case 525:
06603 #line 2576 "parser.y"
06604 { ptr<as_declarator> ctor_dcltor = as_declarator::create( loc((yyvsp[(2) - (2)].sel(as_declarator_op))), as_name::create(loc((yyvsp[(2) - (2)].sel(as_declarator_op))),CURR_CTX(loc((yyvsp[(2) - (2)].sel(as_declarator_op)))),as_constructor_id::create(loc((yyvsp[(2) - (2)].sel(as_declarator_op))),UNWRAP((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))))), EMPTY_LIST(as_declarator_op) );
06605 LIST_APPEND( ctor_dcltor->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) );
06606 (yyval.sel(as_ordinary_member_declarator)) = as_ordinary_member_declarator::create( loc(ctor_dcltor), ctor_dcltor );
06607 ;}
06608 break;
06609
06610 case 526:
06611 #line 2584 "parser.y"
06612 { NEW_WRAPPER_W1( (yyval.sel(as_member_declarator_list)), as_member_declarator_list, loc((yyvsp[(1) - (1)].sel(as_ordinary_member_declarator))), as_member_declarator, (yyvsp[(1) - (1)].sel(as_ordinary_member_declarator)) ); ;}
06613 break;
06614
06615 case 527:
06616 #line 2586 "parser.y"
06617 { (yyval.sel(as_member_declarator_list)) = (yyvsp[(3) - (3)].sel(as_member_declarator_list)); WRAPPER_PREPEND( (yyval.sel(as_member_declarator_list)), (yyvsp[(1) - (3)].sel(as_ordinary_member_declarator)) ); ;}
06618 break;
06619
06620 case 528:
06621 #line 2591 "parser.y"
06622 { (yyval.sel(as_ordinary_member_declarator)) = (yyvsp[(1) - (1)].sel(as_ordinary_member_declarator)); ;}
06623 break;
06624
06625 case 529:
06626 #line 2593 "parser.y"
06627 { (yyval.sel(as_ordinary_member_declarator)) = (yyvsp[(1) - (1)].sel(as_ordinary_member_declarator)); ;}
06628 break;
06629
06630 case 530:
06631 #line 2598 "parser.y"
06632 { NEW_WRAPPER_W1( (yyval.sel(as_member_declarator_list)), as_member_declarator_list, loc((yyvsp[(1) - (1)].sel(as_bitfield_member_declarator))), as_member_declarator, (yyvsp[(1) - (1)].sel(as_bitfield_member_declarator)) ); ;}
06633 break;
06634
06635 case 531:
06636 #line 2600 "parser.y"
06637 { NEW_WRAPPER_W1( (yyval.sel(as_member_declarator_list)), as_member_declarator_list, loc((yyvsp[(1) - (1)].sel(as_ordinary_member_declarator))), as_member_declarator, (yyvsp[(1) - (1)].sel(as_ordinary_member_declarator)) ); ;}
06638 break;
06639
06640 case 532:
06641 #line 2602 "parser.y"
06642 { (yyval.sel(as_member_declarator_list)) = (yyvsp[(1) - (3)].sel(as_member_declarator_list)); WRAPPER_APPEND( (yyval.sel(as_member_declarator_list)), (yyvsp[(3) - (3)].sel(as_bitfield_member_declarator)) ); ;}
06643 break;
06644
06645 case 533:
06646 #line 2604 "parser.y"
06647 { (yyval.sel(as_member_declarator_list)) = (yyvsp[(1) - (3)].sel(as_member_declarator_list)); WRAPPER_APPEND( (yyval.sel(as_member_declarator_list)), (yyvsp[(3) - (3)].sel(as_ordinary_member_declarator)) ); ;}
06648 break;
06649
06650 case 534:
06651 #line 2616 "parser.y"
06652 { (yyval.sel(as_bitfield_member_declarator)) = as_bitfield_member_declarator::create( loc((yyvsp[(2) - (3)].sel(bison_token))), NULL, (yyvsp[(3) - (3)].sel(as_constant_expression)) ); ;}
06653 break;
06654
06655 case 535:
06656 #line 2618 "parser.y"
06657 { (yyval.sel(as_bitfield_member_declarator)) = (yyvsp[(1) - (1)].sel(as_bitfield_member_declarator)); ;}
06658 break;
06659
06660 case 536:
06661 #line 2623 "parser.y"
06662 { (yyval.sel(as_bitfield_member_declarator)) = as_bitfield_member_declarator::create( loc((yyvsp[(1) - (2)].sel(bison_token))), NULL, (yyvsp[(2) - (2)].sel(as_constant_expression)) ); ;}
06663 break;
06664
06665 case 537:
06666 #line 2625 "parser.y"
06667 { (yyval.sel(as_bitfield_member_declarator)) = (yyvsp[(1) - (1)].sel(as_bitfield_member_declarator)); ;}
06668 break;
06669
06670 case 538:
06671 #line 2631 "parser.y"
06672 {
06673 (yyval.sel(as_bitfield_member_declarator)) = as_bitfield_member_declarator::create( loc((yyvsp[(2) - (4)].sel(as_name))), (yyvsp[(2) - (4)].sel(as_name)), (yyvsp[(4) - (4)].sel(as_constant_expression)) );
06674
06675 lassert( !manager::in_disambiguation() );
06676
06677 if ((yyvsp[(1) - (4)].sel(as_name))->was_qualified_get())
06678 report << bad_global_qual << loc((yyvsp[(1) - (4)].sel(as_name)));
06679 ;}
06680 break;
06681
06682 case 539:
06683 #line 2643 "parser.y"
06684 { (yyval.sel(as_ordinary_member_declarator)) = as_ordinary_member_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator))), (yyvsp[(1) - (1)].sel(as_declarator)) ); ;}
06685 break;
06686
06687 case 540:
06688 #line 2645 "parser.y"
06689 { (yyval.sel(as_ordinary_member_declarator)) = as_initialized_member_declarator::create( loc((yyvsp[(1) - (3)].sel(as_declarator))), (yyvsp[(1) - (3)].sel(as_declarator)), (yyvsp[(3) - (3)].sel(as_constant_expression)) ); ;}
06690 break;
06691
06692 case 541:
06693 #line 2651 "parser.y"
06694 { (yyval.sel(as_ordinary_member_declarator)) = as_pure_member_declarator::create( loc((yyvsp[(1) - (3)].sel(as_declarator))), (yyvsp[(1) - (3)].sel(as_declarator)), UNWTOK((yyvsp[(3) - (3)].sel(bison_token))) ); ;}
06695 break;
06696
06697 case 542:
06698 #line 2656 "parser.y"
06699 {
06700 ptr< list< srp<as_declarator_op> > > ops = (yyvsp[(1) - (3)].sel(as_declarator))->declarator_ops_get();
06701 manager::start( TOK_START_TO_BE_DISCARDED );
06702
06703 if ( !ops->empty() &&
06704 as_declarator_op2op_func::instance()->process(ops->front()) )
06705 manager::commit( TOK_PAD_MEMBER_FUNC );
06706 else
06707 manager::commit( TOK_PAD_MEMBER_OBJECT );
06708
06709
06710 (yyval.sel(as_declarator)) = (yyvsp[(1) - (3)].sel(as_declarator));
06711 ;}
06712 break;
06713
06714 case 543:
06715 #line 2674 "parser.y"
06716 {
06717 (yyval.sel(as_declarator)) = (yyvsp[(1) - (1)].sel(as_declarator));
06718 sa_parser_action_logger << "processing in class declarator\n" << msg::eolog;
06719 sa_simple_declaration::instance()->process((yyvsp[(1) - (1)].sel(as_declarator)));
06720 ;}
06721 break;
06722
06723 case 544:
06724 #line 2683 "parser.y"
06725 { NEW_WRAPPER_W1( (yyval.sel(as_base_specifier_list)), as_base_specifier_list, loc((yyvsp[(1) - (1)].sel(as_base_specifier))), as_base_specifier, (yyvsp[(1) - (1)].sel(as_base_specifier)) ); ;}
06726 break;
06727
06728 case 545:
06729 #line 2685 "parser.y"
06730 { (yyval.sel(as_base_specifier_list)) = (yyvsp[(1) - (3)].sel(as_base_specifier_list)); WRAPPER_APPEND( (yyvsp[(1) - (3)].sel(as_base_specifier_list)), (yyvsp[(3) - (3)].sel(as_base_specifier)) ); ;}
06731 break;
06732
06733 case 546:
06734 #line 2690 "parser.y"
06735 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (2)].sel(as_name))), NULL, NULL, as_name::create(loc((yyvsp[(1) - (2)].sel(as_name))),(yyvsp[(1) - (2)].sel(as_name)),TOK2ID((yyvsp[(2) - (2)].sel(bison_id_token))),(yyvsp[(1) - (2)].sel(as_name))->was_qualified_get()) ); ;}
06736 break;
06737
06738 case 547:
06739 #line 2692 "parser.y"
06740 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (3)].sel(as_name))), NULL, NULL, as_name::create( loc((yyvsp[(1) - (3)].sel(as_name))), (yyvsp[(1) - (3)].sel(as_name)), as_template_id::create(loc((yyvsp[(2) - (3)].sel(bison_id_token))),(yyvsp[(2) - (3)].sel(bison_id_token)),UNWRAP((yyvsp[(3) - (3)].sel(as_template_argument_list)))), (yyvsp[(1) - (3)].sel(as_name))->was_qualified_get() ) ); ;}
06741 break;
06742
06743 case 548:
06744 #line 2694 "parser.y"
06745 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (3)].sel(as_name))), NULL, NULL, as_name::create(loc((yyvsp[(1) - (3)].sel(as_name))),(yyvsp[(2) - (3)].sel(as_name)),TOK2ID((yyvsp[(3) - (3)].sel(bison_id_token))),true) ); ;}
06746 break;
06747
06748 case 549:
06749 #line 2696 "parser.y"
06750 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (4)].sel(as_name))), NULL, NULL, as_name::create( loc((yyvsp[(1) - (4)].sel(as_name))), (yyvsp[(1) - (4)].sel(as_name)), as_template_id::create(loc((yyvsp[(3) - (4)].sel(bison_id_token))),(yyvsp[(3) - (4)].sel(bison_id_token)),UNWRAP((yyvsp[(4) - (4)].sel(as_template_argument_list)))), true ) ); ;}
06751 break;
06752
06753 case 550:
06754 #line 2698 "parser.y"
06755 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (4)].sel(bison_token))), UNWTOK((yyvsp[(1) - (4)].sel(bison_token))), (yyvsp[(2) - (4)].sel(as_access_spec_opt_bearer))->value_get(), as_name::create(loc((yyvsp[(3) - (4)].sel(as_name))),(yyvsp[(3) - (4)].sel(as_name)),TOK2ID((yyvsp[(4) - (4)].sel(bison_id_token))),(yyvsp[(3) - (4)].sel(as_name))->was_qualified_get()) ); ;}
06756 break;
06757
06758 case 551:
06759 #line 2700 "parser.y"
06760 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (5)].sel(bison_token))), UNWTOK((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(2) - (5)].sel(as_access_spec_opt_bearer))->value_get(), as_name::create( loc((yyvsp[(3) - (5)].sel(as_name))), (yyvsp[(3) - (5)].sel(as_name)), as_template_id::create(loc((yyvsp[(4) - (5)].sel(bison_id_token))),(yyvsp[(4) - (5)].sel(bison_id_token)),UNWRAP((yyvsp[(5) - (5)].sel(as_template_argument_list)))), (yyvsp[(3) - (5)].sel(as_name))->was_qualified_get() ) ); ;}
06761 break;
06762
06763 case 552:
06764 #line 2702 "parser.y"
06765 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (5)].sel(bison_token))), UNWTOK((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(2) - (5)].sel(as_access_spec_opt_bearer))->value_get(), as_name::create(loc((yyvsp[(4) - (5)].sel(as_name))),(yyvsp[(4) - (5)].sel(as_name)),TOK2ID((yyvsp[(5) - (5)].sel(bison_id_token))),true) ); ;}
06766 break;
06767
06768 case 553:
06769 #line 2704 "parser.y"
06770 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (6)].sel(bison_token))), UNWTOK((yyvsp[(1) - (6)].sel(bison_token))), (yyvsp[(2) - (6)].sel(as_access_spec_opt_bearer))->value_get(), as_name::create( loc((yyvsp[(4) - (6)].sel(as_name))), (yyvsp[(4) - (6)].sel(as_name)), as_template_id::create(loc((yyvsp[(5) - (6)].sel(bison_id_token))),(yyvsp[(5) - (6)].sel(bison_id_token)),UNWRAP((yyvsp[(6) - (6)].sel(as_template_argument_list)))), true ) ); ;}
06771 break;
06772
06773 case 554:
06774 #line 2706 "parser.y"
06775 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (4)].sel(as_access_specifier))), (yyvsp[(2) - (4)].sel(as_virtual_opt_bearer))->value_get(), (yyvsp[(1) - (4)].sel(as_access_specifier)), as_name::create(loc((yyvsp[(3) - (4)].sel(as_name))),(yyvsp[(3) - (4)].sel(as_name)),TOK2ID((yyvsp[(4) - (4)].sel(bison_id_token))),(yyvsp[(3) - (4)].sel(as_name))->was_qualified_get()) ); ;}
06776 break;
06777
06778 case 555:
06779 #line 2708 "parser.y"
06780 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (5)].sel(as_access_specifier))), (yyvsp[(2) - (5)].sel(as_virtual_opt_bearer))->value_get(), (yyvsp[(1) - (5)].sel(as_access_specifier)), as_name::create( loc((yyvsp[(3) - (5)].sel(as_name))), (yyvsp[(3) - (5)].sel(as_name)), as_template_id::create(loc((yyvsp[(4) - (5)].sel(bison_id_token))),(yyvsp[(4) - (5)].sel(bison_id_token)),UNWRAP((yyvsp[(5) - (5)].sel(as_template_argument_list)))), (yyvsp[(3) - (5)].sel(as_name))->was_qualified_get() ) ); ;}
06781 break;
06782
06783 case 556:
06784 #line 2710 "parser.y"
06785 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (5)].sel(as_access_specifier))), (yyvsp[(2) - (5)].sel(as_virtual_opt_bearer))->value_get(), (yyvsp[(1) - (5)].sel(as_access_specifier)), as_name::create(loc((yyvsp[(4) - (5)].sel(as_name))),(yyvsp[(4) - (5)].sel(as_name)),TOK2ID((yyvsp[(5) - (5)].sel(bison_id_token))),true) ); ;}
06786 break;
06787
06788 case 557:
06789 #line 2712 "parser.y"
06790 { (yyval.sel(as_base_specifier)) = as_base_specifier::create( loc((yyvsp[(1) - (6)].sel(as_access_specifier))), (yyvsp[(2) - (6)].sel(as_virtual_opt_bearer))->value_get(), (yyvsp[(1) - (6)].sel(as_access_specifier)), as_name::create( loc((yyvsp[(4) - (6)].sel(as_name))), (yyvsp[(4) - (6)].sel(as_name)), as_template_id::create(loc((yyvsp[(5) - (6)].sel(bison_id_token))),(yyvsp[(5) - (6)].sel(bison_id_token)),UNWRAP((yyvsp[(6) - (6)].sel(as_template_argument_list)))), true ) ); ;}
06791 break;
06792
06793 case 558:
06794 #line 2717 "parser.y"
06795 { (yyval.sel(as_virtual_opt_bearer)) = as_virtual_opt_bearer::create( loc((yyvsp[(1) - (1)].sel(as_no_token))), NULL ); ;}
06796 break;
06797
06798 case 559:
06799 #line 2719 "parser.y"
06800 { (yyval.sel(as_virtual_opt_bearer)) = as_virtual_opt_bearer::create( loc((yyvsp[(1) - (1)].sel(bison_token))), UNWTOK((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06801 break;
06802
06803 case 560:
06804 #line 2724 "parser.y"
06805 { (yyval.sel(as_access_specifier)) = as_access_specifier_private::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06806 break;
06807
06808 case 561:
06809 #line 2726 "parser.y"
06810 { (yyval.sel(as_access_specifier)) = as_access_specifier_protected::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06811 break;
06812
06813 case 562:
06814 #line 2728 "parser.y"
06815 { (yyval.sel(as_access_specifier)) = as_access_specifier_public::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
06816 break;
06817
06818 case 563:
06819 #line 2733 "parser.y"
06820 { (yyval.sel(as_access_spec_opt_bearer)) = as_access_spec_opt_bearer::create( loc((yyvsp[(1) - (1)].sel(as_no_token))), NULL ); ;}
06821 break;
06822
06823 case 564:
06824 #line 2735 "parser.y"
06825 { (yyval.sel(as_access_spec_opt_bearer)) = as_access_spec_opt_bearer::create( loc((yyvsp[(1) - (1)].sel(as_access_specifier))), (yyvsp[(1) - (1)].sel(as_access_specifier)) ); ;}
06826 break;
06827
06828 case 565:
06829 #line 2742 "parser.y"
06830 { NEW_WRAPPER_W1( (yyval.sel(as_template_param_list)), as_template_param_list, loc((yyvsp[(1) - (1)].sel(as_template_param))), as_template_param, (yyvsp[(1) - (1)].sel(as_template_param)) ); ;}
06831 break;
06832
06833 case 566:
06834 #line 2744 "parser.y"
06835 { (yyval.sel(as_template_param_list)) = (yyvsp[(1) - (3)].sel(as_template_param_list)); WRAPPER_APPEND( (yyval.sel(as_template_param_list)), (yyvsp[(3) - (3)].sel(as_template_param)) ); ;}
06836 break;
06837
06838 case 567:
06839 #line 2749 "parser.y"
06840 { (yyval.sel(as_template_param)) = (yyvsp[(3) - (3)].sel(as_template_type_param)); ;}
06841 break;
06842
06843 case 568:
06844 #line 2751 "parser.y"
06845 { (yyval.sel(as_template_param)) = as_template_nontype_param::create( loc((yyvsp[(3) - (3)].sel(as_param_declaration))), (yyvsp[(3) - (3)].sel(as_param_declaration)) ); ;}
06846 break;
06847
06848 case 569:
06849 #line 2756 "parser.y"
06850 { (yyval.sel(as_template_type_param)) = as_template_type_param_type::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_anyid_opt_bearer))->value_get(), NULL ); ;}
06851 break;
06852
06853 case 570:
06854 #line 2758 "parser.y"
06855 { (yyval.sel(as_template_type_param)) = as_template_type_param_type::create( loc((yyvsp[(1) - (4)].sel(bison_token))), (yyvsp[(2) - (4)].sel(as_anyid_opt_bearer))->value_get(), (yyvsp[(4) - (4)].sel(as_type_id)) ); ;}
06856 break;
06857
06858 case 571:
06859 #line 2760 "parser.y"
06860 { (yyval.sel(as_template_type_param)) = as_template_type_param_type::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_anyid_opt_bearer))->value_get(), NULL ); ;}
06861 break;
06862
06863 case 572:
06864 #line 2762 "parser.y"
06865 { (yyval.sel(as_template_type_param)) = as_template_type_param_type::create( loc((yyvsp[(1) - (4)].sel(bison_token))), (yyvsp[(2) - (4)].sel(as_anyid_opt_bearer))->value_get(), (yyvsp[(4) - (4)].sel(as_type_id)) ); ;}
06866 break;
06867
06868 case 573:
06869 #line 2764 "parser.y"
06870 { (yyval.sel(as_template_type_param)) = as_template_type_param_template::create( loc((yyvsp[(1) - (6)].sel(bison_token))), UNWRAP((yyvsp[(3) - (6)].sel(as_template_param_list))), (yyvsp[(6) - (6)].sel(as_anyid_opt_bearer))->value_get(), NULL ); ;}
06871 break;
06872
06873 case 574:
06874 #line 2766 "parser.y"
06875 { (yyval.sel(as_template_type_param)) = as_template_type_param_template::create( loc((yyvsp[(1) - (8)].sel(bison_token))), UNWRAP((yyvsp[(3) - (8)].sel(as_template_param_list))), (yyvsp[(6) - (8)].sel(as_anyid_opt_bearer))->value_get(), (yyvsp[(8) - (8)].sel(as_name)) ); ;}
06876 break;
06877
06878 case 575:
06879 #line 2772 "parser.y"
06880 { (yyval.sel(as_template_argument_list)) = EMPTY_WRAPPER( as_template_argument_list, loc((yyvsp[(3) - (3)].sel(bison_token))), as_template_argument ); ;}
06881 break;
06882
06883 case 576:
06884 #line 2774 "parser.y"
06885 { (yyval.sel(as_template_argument_list)) = (yyvsp[(2) - (3)].sel(as_template_argument_list)); ;}
06886 break;
06887
06888 case 577:
06889 #line 2779 "parser.y"
06890 { NEW_WRAPPER_W1( (yyval.sel(as_template_argument_list)), as_template_argument_list, loc((yyvsp[(1) - (1)].sel(as_template_argument))), as_template_argument, (yyvsp[(1) - (1)].sel(as_template_argument)) ); ;}
06891 break;
06892
06893 case 578:
06894 #line 2781 "parser.y"
06895 { (yyval.sel(as_template_argument_list)) = (yyvsp[(1) - (3)].sel(as_template_argument_list)); WRAPPER_APPEND( (yyval.sel(as_template_argument_list)), (yyvsp[(3) - (3)].sel(as_template_argument)) ); ;}
06896 break;
06897
06898 case 579:
06899 #line 2786 "parser.y"
06900 { (yyval.sel(as_template_argument)) = as_non_type_template_argument::create( loc((yyvsp[(3) - (3)].sel(as_expression))), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
06901 break;
06902
06903 case 580:
06904 #line 2788 "parser.y"
06905 { (yyval.sel(as_template_argument)) = as_type_template_argument::create( loc((yyvsp[(3) - (3)].sel(as_type_id))), (yyvsp[(3) - (3)].sel(as_type_id)) ); ;}
06906 break;
06907
06908 case 581:
06909 #line 2797 "parser.y"
06910 { NEW_WRAPPER_W1( (yyval.sel(as_init_declarator_list)), as_init_declarator_list, loc((yyvsp[(1) - (1)].sel(as_init_declarator))), as_init_declarator, (yyvsp[(1) - (1)].sel(as_init_declarator)) ); ;}
06911 break;
06912
06913 case 582:
06914 #line 2799 "parser.y"
06915 { (yyval.sel(as_init_declarator_list)) = (yyvsp[(1) - (3)].sel(as_init_declarator_list)); WRAPPER_APPEND( (yyval.sel(as_init_declarator_list)), (yyvsp[(3) - (3)].sel(as_init_declarator)) ); ;}
06916 break;
06917
06918 case 583:
06919 #line 2813 "parser.y"
06920 {
06921 (yyval.sel(as_init_declarator)) = as_init_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator))), (yyvsp[(1) - (1)].sel(as_declarator)), NULL );
06922 sa_statements::instance()->declarator_simple(loc((yyvsp[(1) - (1)].sel(as_declarator))));
06923 ;}
06924 break;
06925
06926 case 584:
06927 #line 2818 "parser.y"
06928 {
06929 (yyval.sel(as_init_declarator)) = as_init_declarator::create( loc((yyvsp[(1) - (3)].sel(as_declarator))), (yyvsp[(1) - (3)].sel(as_declarator)), (yyvsp[(3) - (3)].sel(as_initializer_clause)) );
06930 sa_statements::instance()->declarator_init(loc((yyvsp[(1) - (3)].sel(as_declarator))), (yyvsp[(3) - (3)].sel(as_initializer_clause)));
06931 ;}
06932 break;
06933
06934 case 585:
06935 #line 2824 "parser.y"
06936 {
06937 (yyval.sel(as_init_declarator)) = as_init_declarator::create( loc((yyvsp[(1) - (5)].sel(as_declarator))), (yyvsp[(1) - (5)].sel(as_declarator)), as_initializer_expression_list::create(loc((yyvsp[(4) - (5)].sel(as_expression_list))),UNWRAP((yyvsp[(4) - (5)].sel(as_expression_list)))) );
06938 sa_statements::instance()->declarator_ctor(loc((yyvsp[(1) - (5)].sel(as_declarator))), (yyvsp[(4) - (5)].sel(as_expression_list)));
06939 ;}
06940 break;
06941
06942 case 586:
06943 #line 2832 "parser.y"
06944 {
06945 (yyval.sel(as_declarator)) = (yyvsp[(1) - (1)].sel(as_declarator));
06946 sa_parser_action_logger << "processing declarator\n" << msg::eolog;
06947 sa_simple_declaration::instance()->process((yyvsp[(1) - (1)].sel(as_declarator)));
06948 ;}
06949 break;
06950
06951 case 587:
06952 #line 2841 "parser.y"
06953 { (yyval.sel(as_ordinary_member_declarator)) = (yyvsp[(1) - (1)].sel(as_ordinary_member_declarator)); ;}
06954 break;
06955
06956 case 588:
06957 #line 2843 "parser.y"
06958 { (yyval.sel(as_ordinary_member_declarator)) = (yyvsp[(1) - (1)].sel(as_ordinary_member_declarator)); ;}
06959 break;
06960
06961 case 589:
06962 #line 2849 "parser.y"
06963 { (yyval.sel(as_ordinary_member_declarator)) = as_ordinary_member_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator))), (yyvsp[(1) - (1)].sel(as_declarator)) ); ;}
06964 break;
06965
06966 case 590:
06967 #line 2852 "parser.y"
06968 { (yyval.sel(as_ordinary_member_declarator)) = as_pure_member_declarator::create( loc((yyvsp[(1) - (3)].sel(as_declarator))), (yyvsp[(1) - (3)].sel(as_declarator)), UNWTOK((yyvsp[(3) - (3)].sel(bison_token))) ); ;}
06969 break;
06970
06971 case 591:
06972 #line 2857 "parser.y"
06973 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (1)].sel(as_declarator)); ;}
06974 break;
06975
06976 case 592:
06977 #line 2862 "parser.y"
06978 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)); ;}
06979 break;
06980
06981 case 593:
06982 #line 2864 "parser.y"
06983 { (yyval.sel(as_name)) = (yyvsp[(2) - (3)].sel(as_name)); ;}
06984 break;
06985
06986 case 594:
06987 #line 2869 "parser.y"
06988 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (2)].sel(as_name))), (yyvsp[(1) - (2)].sel(as_name)), EMPTY_LIST(as_declarator_op) );
06989 LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) ); ;}
06990 break;
06991
06992 case 595:
06993 #line 2872 "parser.y"
06994 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (3)].sel(as_declarator)); ;}
06995 break;
06996
06997 case 596:
06998 #line 2877 "parser.y"
06999 { (yyval.sel(as_declarator_op)) = (yyvsp[(2) - (2)].sel(as_declarator_op)); ;}
07000 break;
07001
07002 case 597:
07003 #line 2882 "parser.y"
07004 { (yyvsp[(2) - (2)].sel(as_name))->was_qualified_set( (yyvsp[(1) - (2)].sel(as_name))->was_qualified_get() ); (yyval.sel(as_name)) = (yyvsp[(2) - (2)].sel(as_name)); ;}
07005 break;
07006
07007 case 598:
07008 #line 2884 "parser.y"
07009 { (yyvsp[(3) - (3)].sel(as_name))->was_qualified_set(true); (yyval.sel(as_name)) = (yyvsp[(3) - (3)].sel(as_name)); ;}
07010 break;
07011
07012 case 599:
07013 #line 2889 "parser.y"
07014 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (2)].sel(bison_token))), CURR_CTX(loc((yyvsp[(1) - (2)].sel(bison_token)))), as_destructor_id_token::create(loc((yyvsp[(1) - (2)].sel(bison_token))),(yyvsp[(2) - (2)].sel(bison_id_token))) ); ;}
07015 break;
07016
07017 case 600:
07018 #line 2891 "parser.y"
07019 { (yyval.sel(as_name)) = as_name::create( loc((yyvsp[(1) - (3)].sel(bison_token))), CURR_CTX(loc((yyvsp[(1) - (3)].sel(bison_token)))), as_destructor_id_template::create(loc((yyvsp[(1) - (3)].sel(bison_token))),as_template_id::create(loc((yyvsp[(2) - (3)].sel(bison_id_token))),(yyvsp[(2) - (3)].sel(bison_id_token)),UNWRAP((yyvsp[(3) - (3)].sel(as_template_argument_list))))) ) ; ;}
07020 break;
07021
07022 case 601:
07023 #line 2893 "parser.y"
07024 { (yyval.sel(as_name)) = (yyvsp[(1) - (1)].sel(as_name)); ;}
07025 break;
07026
07027 case 602:
07028 #line 2898 "parser.y"
07029 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (1)].sel(as_declarator)); ;}
07030 break;
07031
07032 case 603:
07033 #line 2900 "parser.y"
07034 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (2)].sel(as_declarator)); LIST_APPEND_LIST( (yyval.sel(as_declarator))->declarator_ops_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declarator_op_seq))) ); ;}
07035 break;
07036
07037 case 604:
07038 #line 2911 "parser.y"
07039 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (2)].sel(as_name))), (yyvsp[(1) - (2)].sel(as_name)), EMPTY_LIST(as_declarator_op) ); ;}
07040 break;
07041
07042 case 605:
07043 #line 2917 "parser.y"
07044 { NO_PAD_TOKEN_BUG( loc((yyvsp[(2) - (2)].sel(bison_token))) ); ;}
07045 break;
07046
07047 case 606:
07048 #line 2919 "parser.y"
07049 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (4)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(3) - (4)].sel(as_declarator_op)) ); ;}
07050 break;
07051
07052 case 607:
07053 #line 2921 "parser.y"
07054 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (3)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(2) - (3)].sel(as_declarator_op)) ); ;}
07055 break;
07056
07057 case 608:
07058 #line 2923 "parser.y"
07059 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (4)].sel(as_declarator)); ;}
07060 break;
07061
07062 case 609:
07063 #line 2928 "parser.y"
07064 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (1)].sel(as_declarator)); ;}
07065 break;
07066
07067 case 610:
07068 #line 2930 "parser.y"
07069 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (2)].sel(as_declarator)); LIST_APPEND_LIST( (yyval.sel(as_declarator))->declarator_ops_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declarator_op_seq))) ); ;}
07070 break;
07071
07072 case 611:
07073 #line 2935 "parser.y"
07074 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (1)].sel(as_name))), (yyvsp[(1) - (1)].sel(as_name)), EMPTY_LIST(as_declarator_op) ); ;}
07075 break;
07076
07077 case 612:
07078 #line 2937 "parser.y"
07079 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (2)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) ); ;}
07080 break;
07081
07082 case 613:
07083 #line 2939 "parser.y"
07084 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (2)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) ); ;}
07085 break;
07086
07087 case 614:
07088 #line 2941 "parser.y"
07089 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (3)].sel(as_declarator)); ;}
07090 break;
07091
07092 case 615:
07093 #line 2946 "parser.y"
07094 { (yyval.sel(as_declarator_op)) = as_declarator_op_array::create( loc((yyvsp[(1) - (3)].sel(bison_token))), (yyvsp[(2) - (3)].sel(as_constant_expression)) ); ;}
07095 break;
07096
07097 case 616:
07098 #line 2977 "parser.y"
07099 { NEW_WRAPPER_W1( (yyval.sel(as_declarator_op_seq)), as_declarator_op_seq, loc((yyvsp[(1) - (1)].sel(as_declarator_op))), as_declarator_op, (yyvsp[(1) - (1)].sel(as_declarator_op)) ); ;}
07100 break;
07101
07102 case 617:
07103 #line 2979 "parser.y"
07104 { (yyval.sel(as_declarator_op_seq)) = (yyvsp[(1) - (2)].sel(as_declarator_op_seq)); WRAPPER_PREPEND( (yyval.sel(as_declarator_op_seq)), (yyvsp[(2) - (2)].sel(as_declarator_op)) ); ;}
07105 break;
07106
07107 case 618:
07108 #line 2984 "parser.y"
07109 { (yyval.sel(as_declarator_op)) = as_ptr_op_star::create( loc((yyvsp[(1) - (1)].sel(bison_token))), EMPTY_LIST(as_cv_qualifier) ); ;}
07110 break;
07111
07112 case 619:
07113 #line 2986 "parser.y"
07114 { (yyval.sel(as_declarator_op)) = as_ptr_op_star::create( loc((yyvsp[(1) - (2)].sel(bison_token))), UNWRAP((yyvsp[(2) - (2)].sel(as_cv_qualifier_seq))) ); ;}
07115 break;
07116
07117 case 620:
07118 #line 2988 "parser.y"
07119 { (yyval.sel(as_declarator_op)) = as_ptr_op_amp::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
07120 break;
07121
07122 case 621:
07123 #line 2991 "parser.y"
07124 { (yyval.sel(as_declarator_op)) = as_ptr_op_member_ptr::create( loc((yyvsp[(1) - (4)].sel(as_name))), (yyvsp[(1) - (4)].sel(as_name)), EMPTY_LIST(as_cv_qualifier) ); ;}
07125 break;
07126
07127 case 622:
07128 #line 2993 "parser.y"
07129 { (yyval.sel(as_declarator_op)) = as_ptr_op_member_ptr::create( loc((yyvsp[(1) - (5)].sel(as_name))), (yyvsp[(1) - (5)].sel(as_name)), UNWRAP((yyvsp[(4) - (5)].sel(as_cv_qualifier_seq))) ); ;}
07130 break;
07131
07132 case 623:
07133 #line 3000 "parser.y"
07134 { (yyval.sel(as_type_id)) = as_type_id::create( loc((yyvsp[(1) - (2)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(1) - (2)].sel(as_type_specifier_seq))), EMPTY_DCLTOR(loc((yyvsp[(2) - (2)].sel(as_no_token)))) ); ;}
07135 break;
07136
07137 case 624:
07138 #line 3002 "parser.y"
07139 { (yyval.sel(as_type_id)) = as_type_id::create( loc((yyvsp[(1) - (3)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(1) - (3)].sel(as_type_specifier_seq))), (yyvsp[(3) - (3)].sel(as_declarator)) ); ;}
07140 break;
07141
07142 case 625:
07143 #line 3007 "parser.y"
07144 {
07145 (yyval.sel(as_type_specifier_seq)) = (yyvsp[(1) - (1)].sel(as_type_specifier_seq));
07146 sa_parser_action_logger << "type spec seq exclusive\n" << msg::eolog;
07147 sa_simple_declaration::instance()->save_type_specifiers((yyvsp[(1) - (1)].sel(as_type_specifier_seq)));
07148 ;}
07149 break;
07150
07151 case 626:
07152 #line 3013 "parser.y"
07153 {
07154 (yyval.sel(as_type_specifier_seq)) = (yyvsp[(1) - (1)].sel(as_type_specifier_seq));
07155 sa_parser_action_logger << "decl spec seq non exclusive\n" << msg::eolog;
07156 sa_simple_declaration::instance()->save_type_specifiers((yyvsp[(1) - (1)].sel(as_type_specifier_seq)));
07157 ;}
07158 break;
07159
07160 case 627:
07161 #line 3022 "parser.y"
07162 { NEW_WRAPPER_W1( (yyval.sel(as_type_specifier_seq)), as_type_specifier_seq, loc((yyvsp[(1) - (1)].sel(as_type_specifier))), as_type_specifier, (yyvsp[(1) - (1)].sel(as_type_specifier)) ); ;}
07163 break;
07164
07165 case 628:
07166 #line 3024 "parser.y"
07167 { (yyval.sel(as_type_specifier_seq)) = EMPTY_WRAPPER( as_type_specifier_seq, loc((yyvsp[(1) - (2)].sel(as_cv_qualifier_seq))), as_type_specifier );
07168
07169
07170 ::std::copy( UNWRAP((yyvsp[(1) - (2)].sel(as_cv_qualifier_seq)))->begin(), UNWRAP((yyvsp[(1) - (2)].sel(as_cv_qualifier_seq)))->end(), ::std::back_inserter(*(UNWRAP((yyval.sel(as_type_specifier_seq))))) );
07171 WRAPPER_APPEND( (yyval.sel(as_type_specifier_seq)), (yyvsp[(2) - (2)].sel(as_type_specifier)) ); ;}
07172 break;
07173
07174 case 629:
07175 #line 3031 "parser.y"
07176 { (yyval.sel(as_type_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_type_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_type_specifier_seq)), (yyvsp[(2) - (2)].sel(as_cv_qualifier)) ); ;}
07177 break;
07178
07179 case 630:
07180 #line 3036 "parser.y"
07181 { NEW_WRAPPER_W1( (yyval.sel(as_type_specifier_seq)), as_type_specifier_seq, loc((yyvsp[(1) - (1)].sel(as_builtin_simple_type_specifier))), as_type_specifier, (yyvsp[(1) - (1)].sel(as_builtin_simple_type_specifier)) ); ;}
07182 break;
07183
07184 case 631:
07185 #line 3038 "parser.y"
07186 { (yyval.sel(as_type_specifier_seq)) = EMPTY_WRAPPER( as_type_specifier_seq, loc((yyvsp[(1) - (2)].sel(as_cv_qualifier_seq))), as_type_specifier );
07187
07188
07189 ::std::copy( UNWRAP((yyvsp[(1) - (2)].sel(as_cv_qualifier_seq)))->begin(), UNWRAP((yyvsp[(1) - (2)].sel(as_cv_qualifier_seq)))->end(), ::std::back_inserter(*(UNWRAP((yyval.sel(as_type_specifier_seq))))) );
07190 WRAPPER_APPEND( (yyval.sel(as_type_specifier_seq)), (yyvsp[(2) - (2)].sel(as_builtin_simple_type_specifier)) ); ;}
07191 break;
07192
07193 case 632:
07194 #line 3045 "parser.y"
07195 { (yyval.sel(as_type_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_type_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_type_specifier_seq)), (yyvsp[(2) - (2)].sel(as_cv_qualifier)) ); ;}
07196 break;
07197
07198 case 633:
07199 #line 3047 "parser.y"
07200 { (yyval.sel(as_type_specifier_seq)) = (yyvsp[(1) - (2)].sel(as_type_specifier_seq)); WRAPPER_APPEND( (yyval.sel(as_type_specifier_seq)), (yyvsp[(2) - (2)].sel(as_builtin_simple_type_specifier)) ); ;}
07201 break;
07202
07203 case 634:
07204 #line 3058 "parser.y"
07205 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (1)].sel(as_declarator)); ;}
07206 break;
07207
07208 case 635:
07209 #line 3060 "parser.y"
07210 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator_op_seq))), NULL, UNWRAP((yyvsp[(1) - (1)].sel(as_declarator_op_seq))) ); ;}
07211 break;
07212
07213 case 636:
07214 #line 3062 "parser.y"
07215 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (2)].sel(as_declarator)); LIST_APPEND_LIST( (yyval.sel(as_declarator))->declarator_ops_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declarator_op_seq))) ); ;}
07216 break;
07217
07218 case 637:
07219 #line 3067 "parser.y"
07220 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (3)].sel(as_declarator)); ;}
07221 break;
07222
07223 case 638:
07224 #line 3070 "parser.y"
07225 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator_op))), NULL, EMPTY_LIST(as_declarator_op) );
07226 LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(1) - (1)].sel(as_declarator_op)) ); ;}
07227 break;
07228
07229 case 639:
07230 #line 3073 "parser.y"
07231 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (2)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) ); ;}
07232 break;
07233
07234 case 640:
07235 #line 3076 "parser.y"
07236 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator_op))), NULL, EMPTY_LIST(as_declarator_op) );
07237 LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(1) - (1)].sel(as_declarator_op)) ); ;}
07238 break;
07239
07240 case 641:
07241 #line 3079 "parser.y"
07242 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (2)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) ); ;}
07243 break;
07244
07245 case 642:
07246 #line 3084 "parser.y"
07247 { (yyval.sel(as_constant_expression)) = as_constant_expression::create( loc((yyvsp[(1) - (1)].sel(as_no_token))), EMPTY_EXPR(loc((yyvsp[(1) - (1)].sel(as_no_token)))) ); ;}
07248 break;
07249
07250 case 643:
07251 #line 3086 "parser.y"
07252 { (yyval.sel(as_constant_expression)) = (yyvsp[(1) - (1)].sel(as_constant_expression)); ;}
07253 break;
07254
07255 case 644:
07256 #line 3093 "parser.y"
07257 { (yyval.sel(as_param_decl_clause)) = as_param_decl_clause::create( loc((yyvsp[(1) - (1)].sel(as_no_token))), EMPTY_LIST(as_param_declaration), NULL ); ;}
07258 break;
07259
07260 case 645:
07261 #line 3095 "parser.y"
07262 { (yyval.sel(as_param_decl_clause)) = as_param_decl_clause::create( loc((yyvsp[(1) - (1)].sel(bison_token))), EMPTY_LIST(as_param_declaration), UNWTOK((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
07263 break;
07264
07265 case 646:
07266 #line 3097 "parser.y"
07267 { (yyval.sel(as_param_decl_clause)) = as_param_decl_clause::create( loc((yyvsp[(1) - (1)].sel(as_param_declaration_list))), UNWRAP((yyvsp[(1) - (1)].sel(as_param_declaration_list))), NULL ); ;}
07268 break;
07269
07270 case 647:
07271 #line 3099 "parser.y"
07272 { (yyval.sel(as_param_decl_clause)) = as_param_decl_clause::create( loc((yyvsp[(1) - (2)].sel(as_param_declaration_list))), UNWRAP((yyvsp[(1) - (2)].sel(as_param_declaration_list))), UNWTOK((yyvsp[(2) - (2)].sel(bison_token))) ); ;}
07273 break;
07274
07275 case 648:
07276 #line 3101 "parser.y"
07277 { (yyval.sel(as_param_decl_clause)) = as_param_decl_clause::create( loc((yyvsp[(1) - (3)].sel(as_param_declaration_list))), UNWRAP((yyvsp[(1) - (3)].sel(as_param_declaration_list))), UNWTOK((yyvsp[(3) - (3)].sel(bison_token))) ); ;}
07278 break;
07279
07280 case 649:
07281 #line 3106 "parser.y"
07282 { NEW_WRAPPER_W1( (yyval.sel(as_param_declaration_list)), as_param_declaration_list, loc((yyvsp[(1) - (1)].sel(as_param_declaration))), as_param_declaration, (yyvsp[(1) - (1)].sel(as_param_declaration)) ); ;}
07283 break;
07284
07285 case 650:
07286 #line 3108 "parser.y"
07287 { (yyval.sel(as_param_declaration_list)) = (yyvsp[(1) - (3)].sel(as_param_declaration_list)); WRAPPER_APPEND( (yyval.sel(as_param_declaration_list)), (yyvsp[(3) - (3)].sel(as_param_declaration)) ); ;}
07288 break;
07289
07290 case 651:
07291 #line 3113 "parser.y"
07292 { (yyval.sel(as_param_declaration)) = as_param_declaration::create( loc((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))), (yyvsp[(2) - (2)].sel(as_declarator)), EMPTY_EXPR(loc((yyvsp[(2) - (2)].sel(as_declarator)))) ); ;}
07293 break;
07294
07295 case 652:
07296 #line 3115 "parser.y"
07297 { (yyval.sel(as_param_declaration)) = as_param_declaration::create( loc((yyvsp[(1) - (4)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (4)].sel(as_declaration_specifier_seq))), (yyvsp[(2) - (4)].sel(as_declarator)), (yyvsp[(4) - (4)].sel(as_expression)) ); ;}
07298 break;
07299
07300 case 653:
07301 #line 3117 "parser.y"
07302 { (yyval.sel(as_param_declaration)) = as_param_declaration::create( loc((yyvsp[(1) - (1)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (1)].sel(as_declaration_specifier_seq))), DUMMY_DCLTOR, EMPTY_EXPR(loc((yyvsp[(1) - (1)].sel(as_declaration_specifier_seq)))) ); ;}
07303 break;
07304
07305 case 654:
07306 #line 3119 "parser.y"
07307 { (yyval.sel(as_param_declaration)) = as_param_declaration::create( loc((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), DUMMY_DCLTOR, (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07308 break;
07309
07310 case 655:
07311 #line 3124 "parser.y"
07312 { (yyval.sel(as_param_declaration)) = as_param_declaration::create( loc((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))), (yyvsp[(2) - (2)].sel(as_declarator)), EMPTY_EXPR(loc((yyvsp[(2) - (2)].sel(as_declarator)))) ); ;}
07313 break;
07314
07315 case 656:
07316 #line 3126 "parser.y"
07317 { (yyval.sel(as_param_declaration)) = as_param_declaration::create( loc((yyvsp[(1) - (4)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (4)].sel(as_declaration_specifier_seq))), (yyvsp[(2) - (4)].sel(as_declarator)), (yyvsp[(4) - (4)].sel(as_expression)) ); ;}
07318 break;
07319
07320 case 657:
07321 #line 3128 "parser.y"
07322 { (yyval.sel(as_param_declaration)) = as_param_declaration::create( loc((yyvsp[(1) - (1)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (1)].sel(as_declaration_specifier_seq))), DUMMY_DCLTOR, EMPTY_EXPR(loc((yyvsp[(1) - (1)].sel(as_declaration_specifier_seq)))) ); ;}
07323 break;
07324
07325 case 658:
07326 #line 3130 "parser.y"
07327 { (yyval.sel(as_param_declaration)) = as_param_declaration::create( loc((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), UNWRAP((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))), DUMMY_DCLTOR, (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07328 break;
07329
07330 case 659:
07331 #line 3136 "parser.y"
07332 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (1)].sel(as_declarator)); ;}
07333 break;
07334
07335 case 660:
07336 #line 3138 "parser.y"
07337 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator_op_seq))), NULL, UNWRAP((yyvsp[(1) - (1)].sel(as_declarator_op_seq))) ); ;}
07338 break;
07339
07340 case 661:
07341 #line 3140 "parser.y"
07342 { (yyval.sel(as_declarator)) = (yyvsp[(2) - (2)].sel(as_declarator)); LIST_APPEND_LIST( (yyval.sel(as_declarator))->declarator_ops_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declarator_op_seq))) ); ;}
07343 break;
07344
07345 case 662:
07346 #line 3145 "parser.y"
07347 { NO_PAD_TOKEN_BUG( loc((yyvsp[(2) - (2)].sel(bison_token))) ); ;}
07348 break;
07349
07350 case 663:
07351 #line 3149 "parser.y"
07352 {
07353 (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(2) - (2)].sel(as_name))), (yyvsp[(2) - (2)].sel(as_name)), EMPTY_LIST(as_declarator_op) );
07354
07355 if ((yyvsp[(1) - (2)].sel(as_name))->was_qualified_get()) {
07356
07357
07358 if (manager::in_disambiguation()) {
07359 llog(pl) << "qualified declarator-id, syntax error\n";
07360 YYABORT;
07361 }
07362 report << bad_global_qual << loc((yyvsp[(1) - (2)].sel(as_name)));
07363 }
07364 ;}
07365 break;
07366
07367 case 664:
07368 #line 3164 "parser.y"
07369 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(3) - (3)].sel(as_declarator_op))), NULL, EMPTY_LIST(as_declarator_op) );
07370 LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(3) - (3)].sel(as_declarator_op)) ); ;}
07371 break;
07372
07373 case 665:
07374 #line 3167 "parser.y"
07375 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (2)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) ); ;}
07376 break;
07377
07378 case 666:
07379 #line 3170 "parser.y"
07380 { (yyval.sel(as_declarator)) = as_declarator::create( loc((yyvsp[(1) - (1)].sel(as_declarator_op))), NULL, EMPTY_LIST(as_declarator_op) );
07381 LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(1) - (1)].sel(as_declarator_op)) ); ;}
07382 break;
07383
07384 case 667:
07385 #line 3173 "parser.y"
07386 { (yyval.sel(as_declarator)) = (yyvsp[(1) - (2)].sel(as_declarator)); LIST_APPEND( (yyval.sel(as_declarator))->declarator_ops_get(), (yyvsp[(2) - (2)].sel(as_declarator_op)) ); ;}
07387 break;
07388
07389 case 668:
07390 #line 3176 "parser.y"
07391 { (yyval.sel(as_declarator)) = (yyvsp[(4) - (5)].sel(as_declarator)); ;}
07392 break;
07393
07394 case 669:
07395 #line 3182 "parser.y"
07396 { (yyval.sel(as_declarator_op)) = as_declarator_op_func::create( loc((yyvsp[(1) - (6)].sel(bison_token))), (yyvsp[(3) - (6)].sel(as_param_decl_clause)), EMPTY_LIST(as_cv_qualifier), (yyvsp[(6) - (6)].sel(as_excptn_spec_opt_bearer))->value_get() ); ;}
07397 break;
07398
07399 case 670:
07400 #line 3184 "parser.y"
07401 { (yyval.sel(as_declarator_op)) = as_declarator_op_func::create( loc((yyvsp[(1) - (7)].sel(bison_token))), (yyvsp[(3) - (7)].sel(as_param_decl_clause)), UNWRAP((yyvsp[(6) - (7)].sel(as_cv_qualifier_seq))), (yyvsp[(7) - (7)].sel(as_excptn_spec_opt_bearer))->value_get() ); ;}
07402 break;
07403
07404 case 671:
07405 #line 3193 "parser.y"
07406 { (yyval.sel(as_declarator_op)) = as_declarator_op_func::create( loc((yyvsp[(1) - (4)].sel(bison_token))), (yyvsp[(2) - (4)].sel(as_param_decl_clause)), EMPTY_LIST(as_cv_qualifier), (yyvsp[(4) - (4)].sel(as_excptn_spec_opt_bearer))->value_get() ); ;}
07407 break;
07408
07409 case 672:
07410 #line 3195 "parser.y"
07411 { (yyval.sel(as_declarator_op)) = as_declarator_op_func::create( loc((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(2) - (5)].sel(as_param_decl_clause)), UNWRAP((yyvsp[(4) - (5)].sel(as_cv_qualifier_seq))), (yyvsp[(5) - (5)].sel(as_excptn_spec_opt_bearer))->value_get() ); ;}
07412 break;
07413
07414 case 673:
07415 #line 3200 "parser.y"
07416 { (yyval.sel(as_function_definition)) = as_function_definition::create( loc((yyvsp[(1) - (2)].sel(as_declarator))), EMPTY_LIST(as_declaration_specifier), (yyvsp[(1) - (2)].sel(as_declarator)), EMPTY_LIST(as_mem_initializer), (yyvsp[(2) - (2)].sel(bison_pack_token)), EMPTY_LIST(as_handler) ); ;}
07417 break;
07418
07419 case 674:
07420 #line 3202 "parser.y"
07421 { (yyval.sel(as_function_definition)) = (yyvsp[(2) - (2)].sel(as_function_definition)); (yyval.sel(as_function_definition))->declarator_set((yyvsp[(1) - (2)].sel(as_declarator))); ;}
07422 break;
07423
07424 case 675:
07425 #line 3207 "parser.y"
07426 { (yyval.sel(as_function_definition)) = (yyvsp[(2) - (2)].sel(as_function_definition)); LIST_APPEND_LIST( (yyval.sel(as_function_definition))->declaration_specifiers_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))) ); ;}
07427 break;
07428
07429 case 676:
07430 #line 3210 "parser.y"
07431 { ptr<as_declarator> ctor_dcltor = as_declarator::create( loc((yyvsp[(2) - (3)].sel(as_declarator_op))), as_name::create(loc((yyvsp[(2) - (3)].sel(as_declarator_op))),CURR_CTX(loc((yyvsp[(2) - (3)].sel(as_declarator_op)))),as_constructor_id::create(loc((yyvsp[(2) - (3)].sel(as_declarator_op))),UNWRAP((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))))), EMPTY_LIST(as_declarator_op) );
07432 LIST_APPEND( ctor_dcltor->declarator_ops_get(), (yyvsp[(2) - (3)].sel(as_declarator_op)) );
07433 (yyvsp[(3) - (3)].sel(as_function_definition))->declarator_set( ctor_dcltor );
07434 (yyval.sel(as_function_definition)) = (yyvsp[(3) - (3)].sel(as_function_definition)); ;}
07435 break;
07436
07437 case 677:
07438 #line 3215 "parser.y"
07439 { (yyval.sel(as_function_definition)) = (yyvsp[(1) - (1)].sel(as_function_definition)); ;}
07440 break;
07441
07442 case 678:
07443 #line 3218 "parser.y"
07444 { LIST_PREPEND_LIST( (yyvsp[(2) - (2)].sel(as_function_definition))->declaration_specifiers_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))) );
07445 (yyval.sel(as_function_definition)) = (yyvsp[(2) - (2)].sel(as_function_definition)); ;}
07446 break;
07447
07448 case 679:
07449 #line 3224 "parser.y"
07450 { (yyval.sel(as_function_definition)) = (yyvsp[(2) - (2)].sel(as_function_definition)); LIST_APPEND_LIST( (yyval.sel(as_function_definition))->declaration_specifiers_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))) ); ;}
07451 break;
07452
07453 case 680:
07454 #line 3226 "parser.y"
07455 { ptr<as_declarator> ctor_dcltor = as_declarator::create( loc((yyvsp[(2) - (3)].sel(as_declarator_op))), as_name::create(loc((yyvsp[(2) - (3)].sel(as_declarator_op))),CURR_CTX(loc((yyvsp[(2) - (3)].sel(as_declarator_op)))),as_constructor_id::create(loc((yyvsp[(2) - (3)].sel(as_declarator_op))),UNWRAP((yyvsp[(1) - (3)].sel(as_declaration_specifier_seq))))), EMPTY_LIST(as_declarator_op) );
07456 LIST_APPEND( ctor_dcltor->declarator_ops_get(), (yyvsp[(2) - (3)].sel(as_declarator_op)) );
07457 (yyvsp[(3) - (3)].sel(as_function_definition))->declarator_set( ctor_dcltor );
07458 (yyval.sel(as_function_definition)) = (yyvsp[(3) - (3)].sel(as_function_definition)); ;}
07459 break;
07460
07461 case 681:
07462 #line 3231 "parser.y"
07463 { (yyval.sel(as_function_definition)) = (yyvsp[(1) - (1)].sel(as_function_definition)); ;}
07464 break;
07465
07466 case 682:
07467 #line 3234 "parser.y"
07468 { LIST_PREPEND_LIST( (yyvsp[(2) - (2)].sel(as_function_definition))->declaration_specifiers_get(), UNWRAP((yyvsp[(1) - (2)].sel(as_declaration_specifier_seq))) );
07469 (yyval.sel(as_function_definition)) = (yyvsp[(2) - (2)].sel(as_function_definition)); ;}
07470 break;
07471
07472 case 683:
07473 #line 3240 "parser.y"
07474 {
07475 int next_val = manager::peek()->type_get();
07476 if (is_pack(next_val))
07477 lassert2( next_val == TOK_PACK_BODY, "Pack already done, but the type differs!" );
07478 else
07479 manager::pack( TOK_PACK_BODY, loc(manager::prev_yylex()) );
07480 ;}
07481 break;
07482
07483 case 684:
07484 #line 3251 "parser.y"
07485 { (yyval.sel(bison_pack_token)) = (yyvsp[(3) - (4)].sel(bison_pack_token)); (yyval.sel(bison_pack_token))->location_set( loc((yyvsp[(1) - (4)].sel(bison_token))) ); ;}
07486 break;
07487
07488 case 685:
07489 #line 3256 "parser.y"
07490 { (yyval.sel(as_function_definition)) = as_function_definition::create( loc((yyvsp[(1) - (2)].sel(as_mem_initializer_list))), EMPTY_LIST(as_declaration_specifier), DUMMY_DCLTOR, UNWRAP((yyvsp[(1) - (2)].sel(as_mem_initializer_list))), (yyvsp[(2) - (2)].sel(bison_pack_token)), EMPTY_LIST(as_handler) ); ;}
07491 break;
07492
07493 case 686:
07494 #line 3258 "parser.y"
07495 { (yyval.sel(as_function_definition)) = as_function_definition::create( loc((yyvsp[(1) - (4)].sel(bison_token))), EMPTY_LIST(as_declaration_specifier), DUMMY_DCLTOR, UNWRAP((yyvsp[(2) - (4)].sel(as_mem_initializer_list))), (yyvsp[(3) - (4)].sel(bison_pack_token)), UNWRAP((yyvsp[(4) - (4)].sel(as_handler_seq))) ); ;}
07496 break;
07497
07498 case 687:
07499 #line 3263 "parser.y"
07500 {
07501 ptr<as_function_definition> as_func = as_function_definition::create( loc((yyvsp[(1) - (2)].sel(as_declarator))), EMPTY_LIST(as_declaration_specifier), (yyvsp[(1) - (2)].sel(as_declarator)), EMPTY_LIST(as_mem_initializer), (yyvsp[(2) - (2)].sel(bison_pack_token)), EMPTY_LIST(as_handler) );
07502 (yyval.sel(as_function_definition)) = as_func;
07503
07504
07505 sa_statements::instance()->enter_function(loc((yyvsp[(1) - (2)].sel(as_declarator))),as_func);
07506 manager::spawn((yyvsp[(2) - (2)].sel(bison_pack_token)));
07507
07508 ptr<parse_result_type> parse_result = parser::parse();
07509 bool ok = parse_result->success_get();
07510 manager::close();
07511 if (ok) {
07512
07513 as_func->parsed_body_set( parse_result->as_result_get() );
07514 }
07515 sa_statements::instance()->leave_function();
07516 ;}
07517 break;
07518
07519 case 688:
07520 #line 3282 "parser.y"
07521 { (yyval.sel(as_function_definition)) = (yyvsp[(2) - (2)].sel(as_function_definition)); (yyval.sel(as_function_definition))->declarator_set((yyvsp[(1) - (2)].sel(as_declarator))); ;}
07522 break;
07523
07524 case 689:
07525 #line 3287 "parser.y"
07526 { (yyval.sel(as_function_definition)) = as_function_definition::create( loc((yyvsp[(1) - (2)].sel(as_declarator))), EMPTY_LIST(as_declaration_specifier), (yyvsp[(1) - (2)].sel(as_declarator)), EMPTY_LIST(as_mem_initializer), (yyvsp[(2) - (2)].sel(bison_pack_token)), EMPTY_LIST(as_handler) ); ;}
07527 break;
07528
07529 case 690:
07530 #line 3289 "parser.y"
07531 { (yyval.sel(as_function_definition)) = (yyvsp[(2) - (2)].sel(as_function_definition)); (yyval.sel(as_function_definition))->declarator_set((yyvsp[(1) - (2)].sel(as_declarator))); ;}
07532 break;
07533
07534 case 691:
07535 #line 3294 "parser.y"
07536 { (yyval.sel(as_initializer_clause)) = as_initializer_clause_expression::create( loc((yyvsp[(1) - (1)].sel(as_expression))), (yyvsp[(1) - (1)].sel(as_expression)) ); ;}
07537 break;
07538
07539 case 692:
07540 #line 3296 "parser.y"
07541 { (yyval.sel(as_initializer_clause)) = as_initializer_clause_braced::create( loc((yyvsp[(1) - (4)].sel(bison_token))), UNWRAP((yyvsp[(2) - (4)].sel(as_initializer_list))) ); ;}
07542 break;
07543
07544 case 693:
07545 #line 3298 "parser.y"
07546 { (yyval.sel(as_initializer_clause)) = as_initializer_clause_braced::create( loc((yyvsp[(1) - (2)].sel(bison_token))), EMPTY_LIST(as_initializer_clause) ); ;}
07547 break;
07548
07549 case 696:
07550 #line 3308 "parser.y"
07551 { NEW_WRAPPER_W1( (yyval.sel(as_initializer_list)), as_initializer_list, loc((yyvsp[(1) - (1)].sel(as_initializer_clause))), as_initializer_clause, (yyvsp[(1) - (1)].sel(as_initializer_clause)) ); ;}
07552 break;
07553
07554 case 697:
07555 #line 3310 "parser.y"
07556 { (yyval.sel(as_initializer_list)) = (yyvsp[(1) - (3)].sel(as_initializer_list)); WRAPPER_APPEND( (yyval.sel(as_initializer_list)), (yyvsp[(3) - (3)].sel(as_initializer_clause)) ); ;}
07557 break;
07558
07559 case 698:
07560 #line 3337 "parser.y"
07561 { (yyval.sel(as_try_block_statement)) = as_try_block_statement::create( loc((yyvsp[(1) - (3)].sel(bison_token))), (yyvsp[(2) - (3)].sel(as_compound_statement)), UNWRAP((yyvsp[(3) - (3)].sel(as_handler_seq))) ); ;}
07562 break;
07563
07564 case 699:
07565 #line 3342 "parser.y"
07566 { (yyval.sel(as_function_definition)) = as_function_definition::create( loc((yyvsp[(1) - (3)].sel(bison_token))), EMPTY_LIST(as_declaration_specifier), DUMMY_DCLTOR, EMPTY_LIST(as_mem_initializer), (yyvsp[(2) - (3)].sel(bison_pack_token)), UNWRAP((yyvsp[(3) - (3)].sel(as_handler_seq))) ); ;}
07567 break;
07568
07569 case 700:
07570 #line 3347 "parser.y"
07571 { NEW_WRAPPER_W1( (yyval.sel(as_handler_seq)), as_handler_seq, loc((yyvsp[(1) - (2)].sel(as_handler))), as_handler, (yyvsp[(1) - (2)].sel(as_handler)) ); ;}
07572 break;
07573
07574 case 701:
07575 #line 3349 "parser.y"
07576 { (yyval.sel(as_handler_seq)) = (yyvsp[(1) - (3)].sel(as_handler_seq)); WRAPPER_APPEND( (yyval.sel(as_handler_seq)), (yyvsp[(2) - (3)].sel(as_handler)) ); ;}
07577 break;
07578
07579 case 702:
07580 #line 3354 "parser.y"
07581 { (yyval.sel(as_handler)) = as_handler::create( loc((yyvsp[(1) - (5)].sel(bison_token))), (yyvsp[(3) - (5)].sel(as_exception_declaration)), (yyvsp[(5) - (5)].sel(as_compound_statement)) ); ;}
07582 break;
07583
07584 case 703:
07585 #line 3360 "parser.y"
07586 { NEW_WRAPPER_W1( (yyval.sel(as_handler_seq)), as_handler_seq, loc((yyvsp[(1) - (1)].sel(as_handler))), as_handler, (yyvsp[(1) - (1)].sel(as_handler)) ); ;}
07587 break;
07588
07589 case 704:
07590 #line 3362 "parser.y"
07591 { (yyval.sel(as_handler_seq)) = (yyvsp[(1) - (2)].sel(as_handler_seq)); WRAPPER_APPEND( (yyval.sel(as_handler_seq)), (yyvsp[(2) - (2)].sel(as_handler)) ); ;}
07592 break;
07593
07594 case 705:
07595 #line 3367 "parser.y"
07596 { (yyval.sel(as_exception_declaration)) = as_exception_declaration_single_type_with_variable::create( loc((yyvsp[(1) - (2)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(1) - (2)].sel(as_type_specifier_seq))), (yyvsp[(2) - (2)].sel(as_declarator)) ); ;}
07597 break;
07598
07599 case 706:
07600 #line 3369 "parser.y"
07601 { (yyval.sel(as_exception_declaration)) = as_exception_declaration_single_type::create( loc((yyvsp[(1) - (1)].sel(as_type_specifier_seq))), UNWRAP((yyvsp[(1) - (1)].sel(as_type_specifier_seq))) ); ;}
07602 break;
07603
07604 case 707:
07605 #line 3372 "parser.y"
07606 { (yyval.sel(as_exception_declaration)) = as_exception_declaration_any_type::create( loc((yyvsp[(1) - (1)].sel(bison_token))) ); ;}
07607 break;
07608
07609 case 708:
07610 #line 3377 "parser.y"
07611 { (yyval.sel(as_expression_throw)) = as_expression_throw::create( loc((yyvsp[(1) - (2)].sel(bison_token))), (yyvsp[(2) - (2)].sel(as_expression)) ); ;}
07612 break;
07613
07614 case 709:
07615 #line 3379 "parser.y"
07616 { (yyval.sel(as_expression_throw)) = as_expression_throw::create( loc((yyvsp[(1) - (1)].sel(bison_token))), EMPTY_EXPR(loc((yyvsp[(1) - (1)].sel(bison_token)))) ); ;}
07617 break;
07618
07619 case 710:
07620 #line 3384 "parser.y"
07621 { (yyval.sel(as_excptn_spec_opt_bearer)) = as_excptn_spec_opt_bearer::create( loc((yyvsp[(1) - (1)].sel(as_no_token))), NULL ); ;}
07622 break;
07623
07624 case 711:
07625 #line 3386 "parser.y"
07626 { (yyval.sel(as_excptn_spec_opt_bearer)) = as_excptn_spec_opt_bearer::create( loc((yyvsp[(1) - (1)].sel(as_exception_specification))), (yyvsp[(1) - (1)].sel(as_exception_specification)) ); ;}
07627 break;
07628
07629 case 712:
07630 #line 3391 "parser.y"
07631 { (yyval.sel(as_exception_specification)) = as_exception_specification::create( loc((yyvsp[(1) - (3)].sel(bison_token))), EMPTY_LIST(as_type_id) ); ;}
07632 break;
07633
07634 case 713:
07635 #line 3393 "parser.y"
07636 { (yyval.sel(as_exception_specification)) = as_exception_specification::create( loc((yyvsp[(1) - (4)].sel(bison_token))), UNWRAP((yyvsp[(3) - (4)].sel(as_type_id_list))) ); ;}
07637 break;
07638
07639 case 714:
07640 #line 3398 "parser.y"
07641 { NEW_WRAPPER_W1( (yyval.sel(as_type_id_list)), as_type_id_list, loc((yyvsp[(1) - (1)].sel(as_type_id))), as_type_id, (yyvsp[(1) - (1)].sel(as_type_id)) ); ;}
07642 break;
07643
07644 case 715:
07645 #line 3400 "parser.y"
07646 { (yyval.sel(as_type_id_list)) = (yyvsp[(1) - (3)].sel(as_type_id_list)); WRAPPER_APPEND( (yyval.sel(as_type_id_list)), (yyvsp[(3) - (3)].sel(as_type_id)) ); ;}
07647 break;
07648
07649 case 716:
07650 #line 3405 "parser.y"
07651 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07652 break;
07653
07654 case 717:
07655 #line 3407 "parser.y"
07656 { (yyval.sel(as_expression)) = as_expression_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07657 break;
07658
07659 case 718:
07660 #line 3409 "parser.y"
07661 { (yyval.sel(as_expression)) = as_expression_plus_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07662 break;
07663
07664 case 719:
07665 #line 3411 "parser.y"
07666 { (yyval.sel(as_expression)) = as_expression_minus_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07667 break;
07668
07669 case 720:
07670 #line 3413 "parser.y"
07671 { (yyval.sel(as_expression)) = as_expression_star_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07672 break;
07673
07674 case 721:
07675 #line 3415 "parser.y"
07676 { (yyval.sel(as_expression)) = as_expression_slash_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07677 break;
07678
07679 case 722:
07680 #line 3417 "parser.y"
07681 { (yyval.sel(as_expression)) = as_expression_percent_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07682 break;
07683
07684 case 723:
07685 #line 3419 "parser.y"
07686 { (yyval.sel(as_expression)) = as_expression_hat_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07687 break;
07688
07689 case 724:
07690 #line 3421 "parser.y"
07691 { (yyval.sel(as_expression)) = as_expression_amp_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07692 break;
07693
07694 case 725:
07695 #line 3423 "parser.y"
07696 { (yyval.sel(as_expression)) = as_expression_vbar_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07697 break;
07698
07699 case 726:
07700 #line 3425 "parser.y"
07701 { (yyval.sel(as_expression)) = as_expression_greater_greater_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07702 break;
07703
07704 case 727:
07705 #line 3427 "parser.y"
07706 { (yyval.sel(as_expression)) = as_expression_less_less_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07707 break;
07708
07709 case 728:
07710 #line 3435 "parser.y"
07711 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07712 break;
07713
07714 case 729:
07715 #line 3440 "parser.y"
07716 { (yyval.sel(as_expression)) = as_expression_qmark::create( loc((yyvsp[(2) - (5)].sel(bison_token))), (yyvsp[(1) - (5)].sel(as_expression)), (yyvsp[(3) - (5)].sel(as_expression)), (yyvsp[(5) - (5)].sel(as_expression)) ); ;}
07717 break;
07718
07719 case 730:
07720 #line 3446 "parser.y"
07721 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07722 break;
07723
07724 case 731:
07725 #line 3448 "parser.y"
07726 { (yyval.sel(as_expression)) = as_expression_vbar_vbar::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07727 break;
07728
07729 case 732:
07730 #line 3454 "parser.y"
07731 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07732 break;
07733
07734 case 733:
07735 #line 3456 "parser.y"
07736 { (yyval.sel(as_expression)) = as_expression_amp_amp::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07737 break;
07738
07739 case 734:
07740 #line 3462 "parser.y"
07741 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07742 break;
07743
07744 case 735:
07745 #line 3464 "parser.y"
07746 { (yyval.sel(as_expression)) = as_expression_vbar::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07747 break;
07748
07749 case 736:
07750 #line 3470 "parser.y"
07751 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07752 break;
07753
07754 case 737:
07755 #line 3472 "parser.y"
07756 { (yyval.sel(as_expression)) = as_expression_hat::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07757 break;
07758
07759 case 738:
07760 #line 3478 "parser.y"
07761 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07762 break;
07763
07764 case 739:
07765 #line 3480 "parser.y"
07766 { (yyval.sel(as_expression)) = as_expression_amp::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07767 break;
07768
07769 case 740:
07770 #line 3486 "parser.y"
07771 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07772 break;
07773
07774 case 741:
07775 #line 3488 "parser.y"
07776 { (yyval.sel(as_expression)) = as_expression_equal_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07777 break;
07778
07779 case 742:
07780 #line 3490 "parser.y"
07781 { (yyval.sel(as_expression)) = as_expression_exclam_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07782 break;
07783
07784 case 743:
07785 #line 3496 "parser.y"
07786 { (yyval.sel(as_expression)) = (yyvsp[(1) - (1)].sel(as_expression)); ;}
07787 break;
07788
07789 case 744:
07790 #line 3498 "parser.y"
07791 { (yyval.sel(as_expression)) = as_expression_less::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07792 break;
07793
07794 case 745:
07795 #line 3503 "parser.y"
07796 { (yyval.sel(as_expression)) = as_expression_less_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07797 break;
07798
07799 case 746:
07800 #line 3505 "parser.y"
07801 { (yyval.sel(as_expression)) = as_expression_greater_equal::create( loc((yyvsp[(2) - (3)].sel(bison_token))), (yyvsp[(1) - (3)].sel(as_expression)), (yyvsp[(3) - (3)].sel(as_expression)) ); ;}
07802 break;
07803
07804
07805
07806 #line 7807 "parser.tab.cc"
07807 default: break;
07808 }
07809 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
07810
07811 YYPOPSTACK (yylen);
07812 yylen = 0;
07813 YY_STACK_PRINT (yyss, yyssp);
07814
07815 *++yyvsp = yyval;
07816
07817
07818
07819
07820
07821
07822 yyn = yyr1[yyn];
07823
07824 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
07825 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
07826 yystate = yytable[yystate];
07827 else
07828 yystate = yydefgoto[yyn - YYNTOKENS];
07829
07830 goto yynewstate;
07831
07832
07833
07834
07835
07836 yyerrlab:
07837
07838 if (!yyerrstatus)
07839 {
07840 ++yynerrs;
07841 #if ! YYERROR_VERBOSE
07842 yyerror (as_result, YY_("syntax error"));
07843 #else
07844 {
07845 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
07846 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
07847 {
07848 YYSIZE_T yyalloc = 2 * yysize;
07849 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
07850 yyalloc = YYSTACK_ALLOC_MAXIMUM;
07851 if (yymsg != yymsgbuf)
07852 YYSTACK_FREE (yymsg);
07853 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
07854 if (yymsg)
07855 yymsg_alloc = yyalloc;
07856 else
07857 {
07858 yymsg = yymsgbuf;
07859 yymsg_alloc = sizeof yymsgbuf;
07860 }
07861 }
07862
07863 if (0 < yysize && yysize <= yymsg_alloc)
07864 {
07865 (void) yysyntax_error (yymsg, yystate, yychar);
07866 yyerror (as_result, yymsg);
07867 }
07868 else
07869 {
07870 yyerror (as_result, YY_("syntax error"));
07871 if (yysize != 0)
07872 goto yyexhaustedlab;
07873 }
07874 }
07875 #endif
07876 }
07877
07878
07879
07880 if (yyerrstatus == 3)
07881 {
07882
07883
07884
07885 if (yychar <= YYEOF)
07886 {
07887
07888 if (yychar == YYEOF)
07889 YYABORT;
07890 }
07891 else
07892 {
07893 yydestruct ("Error: discarding",
07894 yytoken, &yylval, as_result);
07895 yychar = YYEMPTY;
07896 }
07897 }
07898
07899
07900
07901 goto yyerrlab1;
07902
07903
07904
07905
07906
07907 yyerrorlab:
07908
07909
07910
07911
07912 if ( 0)
07913 goto yyerrorlab;
07914
07915
07916
07917 YYPOPSTACK (yylen);
07918 yylen = 0;
07919 YY_STACK_PRINT (yyss, yyssp);
07920 yystate = *yyssp;
07921 goto yyerrlab1;
07922
07923
07924
07925
07926
07927 yyerrlab1:
07928 yyerrstatus = 3;
07929
07930 for (;;)
07931 {
07932 yyn = yypact[yystate];
07933 if (yyn != YYPACT_NINF)
07934 {
07935 yyn += YYTERROR;
07936 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
07937 {
07938 yyn = yytable[yyn];
07939 if (0 < yyn)
07940 break;
07941 }
07942 }
07943
07944
07945 if (yyssp == yyss)
07946 YYABORT;
07947
07948
07949 yydestruct ("Error: popping",
07950 yystos[yystate], yyvsp, as_result);
07951 YYPOPSTACK (1);
07952 yystate = *yyssp;
07953 YY_STACK_PRINT (yyss, yyssp);
07954 }
07955
07956 if (yyn == YYFINAL)
07957 YYACCEPT;
07958
07959 *++yyvsp = yylval;
07960
07961
07962
07963 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
07964
07965 yystate = yyn;
07966 goto yynewstate;
07967
07968
07969
07970
07971
07972 yyacceptlab:
07973 yyresult = 0;
07974 goto yyreturn;
07975
07976
07977
07978
07979 yyabortlab:
07980 yyresult = 1;
07981 goto yyreturn;
07982
07983 #ifndef yyoverflow
07984
07985
07986
07987 yyexhaustedlab:
07988 yyerror (as_result, YY_("memory exhausted"));
07989 yyresult = 2;
07990
07991 #endif
07992
07993 yyreturn:
07994 if (yychar != YYEOF && yychar != YYEMPTY)
07995 yydestruct ("Cleanup: discarding lookahead",
07996 yytoken, &yylval, as_result);
07997
07998
07999 YYPOPSTACK (yylen);
08000 YY_STACK_PRINT (yyss, yyssp);
08001 while (yyssp != yyss)
08002 {
08003 yydestruct ("Cleanup: popping",
08004 yystos[*yyssp], yyvsp, as_result);
08005 YYPOPSTACK (1);
08006 }
08007 #ifndef yyoverflow
08008 if (yyss != yyssa)
08009 YYSTACK_FREE (yyss);
08010 #endif
08011 #if YYERROR_VERBOSE
08012 if (yymsg != yymsgbuf)
08013 YYSTACK_FREE (yymsg);
08014 #endif
08015 return yyresult;
08016 }
08017
08018
08019 #line 3508 "parser.y"
08020
08021
08022 static void try_ctor( ptr<as_declaration_specifier_seq> const type, ptr<bison_token> const next )
08023 {
08024 (void)type;
08025
08026 bison_token::hint_type hint = next->user_hint_get();
08027 if (hint == bison_token::HINT_NONE) {
08028 llog(pl) << "unhinted left parenthesis, asuming no ctor\n";
08029 } else if (hint == bison_token::HINT_CTOR) {
08030 try_begin( "ctor" );
08031 try_and_commit( TOK_START_CTOR, TOK_PAD_CTOR, r );
08032 try_end_skip();
08033 } else {
08034 lassert( hint == bison_token::HINT_NO_CTOR );
08035 }
08036 }
08037
08038 static void disambiguate_ctor_and_bitfield_class_scope( ptr<as_declaration_specifier_seq> const type )
08039 {
08040 ptr<bison_token> next = manager::peek();
08041 bison_token::hint_type hint = next->user_hint_get();
08042 switch (next->type_get()) {
08043 case TOK_LEFT_PAR:
08044
08045
08046
08047 try_ctor( type, next );
08048 break;
08049 case TOK_COLON:
08050
08051 if (hint == bison_token::HINT_NONE) {
08052 llog(pl) << "unhinted colon, asuming no bitfield\n";
08053 } else if (hint == bison_token::HINT_BITFIELD) {
08054 manager::start( TOK_START_TO_BE_DISCARDED );
08055 manager::commit( TOK_PAD_UNNAMED_BITFIELD );
08056 } else {
08057 lassert( hint == bison_token::HINT_NO_BITFIELD );
08058 }
08059 break;
08060 }
08061 }
08062
08063 static void disambiguate_ctor_nmspc_scope( ptr<as_declaration_specifier_seq> const type )
08064 {
08065 ptr<bison_token> next = manager::peek();
08066
08067
08068
08069 if (next->type_get() == TOK_LEFT_PAR)
08070 try_ctor( type, next );
08071 }
08072