/* * Automatically generated from the files: * /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/producers/cpp/syntax/syntax.sid * and * /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/producers/cpp/syntax/syntax.act * by: * /mnt/gmirror/ports/lang/TenDRA/work/tendra/obj/utilities/sid/sid */ /* BEGINNING OF HEADER */ #define __SID_SPLIT /* * Crown Copyright (c) 1997, 1998 * * This TenDRA(r) Computer Program is subject to Copyright * owned by the United Kingdom Secretary of State for Defence * acting through the Defence Evaluation and Research Agency * (DERA). It is made available to Recipients with a * royalty-free licence for its use, reproduction, transfer * to other parties and amendment for any purpose not excluding * product development provided that any such use et cetera * shall be deemed to be acceptance of the following conditions:- * * (1) Its Recipients shall ensure that this Notice is * reproduced upon any copies or amended versions of it; * * (2) Any amended version of it shall be clearly marked to * show both the nature of and the organisation responsible * for the relevant amendment or amendments; * * (3) Its onward transfer from a recipient to another * party shall be deemed to be that party's acceptance of * these conditions; * * (4) DERA gives no warranty or assurance as to its * quality or suitability for any purpose and DERA accepts * no liability whatsoever in relation to any use to which * it may be put. */ #include "config.h" #include "producer.h" #include "c_types.h" #include "ctype_ops.h" #include "exp_ops.h" #include "hashid_ops.h" #include "id_ops.h" #include "nspace_ops.h" #include "type_ops.h" #include "error.h" #include "catalog.h" #include "option.h" #include "access.h" #include "allocate.h" #include "assign.h" #include "basetype.h" #include "cast.h" #include "chktype.h" #include "class.h" #include "constant.h" #include "construct.h" #include "convert.h" #include "declare.h" #include "derive.h" #include "dump.h" #include "exception.h" #include "expression.h" #include "function.h" #include "hash.h" #include "identifier.h" #include "initialise.h" #include "inttype.h" #include "label.h" #include "lex.h" #include "literal.h" #include "member.h" #include "namespace.h" #include "parse.h" #include "pragma.h" #include "predict.h" #include "preproc.h" #include "redeclare.h" #include "rewrite.h" #include "statement.h" #include "symbols.h" #include "template.h" #include "tokdef.h" #include "token.h" #include "typeid.h" #include "variable.h" /* * COMPOUND TYPE ALIASES * * These are the aliases for the compound types used in the parser. */ typedef LIST (EXP) SID_LIST_EXP; typedef LIST (TYPE) SID_LIST_TYPE; /* * FUNCTION DECLARATIONS * * The function declarations are included at this point so that the * type definitions are in scope. */ #include "syntax.h" /* * COMPILATION MODE * * The output of sid is automatically generated. Hence it is not * necessarily appropriate to apply the same level of checking to this * as to the rest of the program. These pragmas describe the relaxations * allowed for the sid output. */ #if FS_TENDRA #pragma TenDRA begin #pragma TenDRA const conditional allow #pragma TenDRA unreachable code allow #pragma TenDRA variable analysis off #endif /* BEGINNING OF STATIC VARIABLES */ int ZI0; /* BEGINNING OF FUNCTION DEFINITIONS */ void ZR513 (BASE_TYPE *ZO515) { BASE_TYPE ZI515; switch (CURRENT_TERMINAL) { case lex_bool: { ADVANCE_LEXER; { (ZI515) = btype_bool; } } break; case lex_bottom: { ADVANCE_LEXER; { (ZI515) = btype_bottom; } } break; case lex_char: { ADVANCE_LEXER; { (ZI515) = btype_char; } } break; case lex_double: { ADVANCE_LEXER; { (ZI515) = btype_double; } } break; case lex_float: { ADVANCE_LEXER; { (ZI515) = btype_float; } } break; case lex_int: { ADVANCE_LEXER; { (ZI515) = btype_int; } } break; case lex_long: { ADVANCE_LEXER; { (ZI515) = btype_long; } } break; case lex_ptrdiff_Ht: { ADVANCE_LEXER; { (ZI515) = btype_ptrdiff_t; } } break; case lex_short: { ADVANCE_LEXER; { (ZI515) = btype_short; } } break; case lex_signed: { ADVANCE_LEXER; { (ZI515) = btype_signed; } } break; case lex_size_Ht: { ADVANCE_LEXER; { (ZI515) = btype_size_t; } } break; case lex_unsigned: { ADVANCE_LEXER; { (ZI515) = btype_unsigned; } } break; case lex_void: { ADVANCE_LEXER; { (ZI515) = btype_void; } } break; case lex_wchar_Ht: { ADVANCE_LEXER; { (ZI515) = btype_wchar_t; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO515 = ZI515; } void ZR1271 (NAMESPACE *ZI429, EXP *ZO1244) { EXP ZI1244; switch (CURRENT_TERMINAL) { case lex_type_Hname: case lex_template_Htype: { IDENTIFIER ZI464; IDENTIFIER ZI423; TYPE ZI1270; BASE_TYPE ZI515; CV_SPEC ZI788; TYPE ZI418; SID_LIST_EXP ZI501; EXP ZI435; { switch (CURRENT_TERMINAL) { case lex_template_Htype: { { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI464 = parse_type_template (id, args, 0); crt_templ_qualifier = 1; RESCAN_LEXER; } ADVANCE_LEXER; } break; case lex_type_Hname: { { ZI464 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto ZL1; } } { crt_id_qualifier = qual_nested; qual_namespace = (*ZI429); } { (ZI423) = check_id ((*ZI429), (ZI464), 0); last_namespace = (*ZI429); } { MAKE_type_pre (cv_none, btype_alias, crt_id_qualifier, (ZI1270)); COPY_id (type_name ((ZI1270)), (ZI423)); have_type_specifier = 1; } { (ZI515) = btype_none; } { (ZI788) = cv_none; } { (ZI418) = complete_pre_type ((ZI515), (ZI1270), (ZI788), 1); have_type_specifier = 0; } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR504 (&ZI501); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; { (ZI435) = make_func_cast_exp ((ZI418), (ZI501)); } ZR1245 (ZI435, &ZI1244); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_identifier: case lex_namespace_Hname: case lex_destructor_Hname: case lex_template_Hid: case lex_operator: case lex_template: { int ZI484; IDENTIFIER ZI482; IDENTIFIER ZI423; EXP ZI435; ZR479 (*ZI429, &ZI484); ZR480 (*ZI429, &ZI482); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = qual_nested; qual_namespace = (*ZI429); } { (ZI423) = check_id ((*ZI429), (ZI482), (ZI484)); last_namespace = (*ZI429); } { (ZI435) = make_id_exp ((ZI423)); } ZR1245 (ZI435, &ZI1244); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1244 = ZI1244; } void ZR1144 (TYPE ZI1142, TYPE *ZO1143) { TYPE ZI1143; ZL2_1144:; switch (CURRENT_TERMINAL) { case lex_open_Hround: case lex_open_Hsquare_H1: case lex_weak: { TYPE ZI484; TYPE ZI418; ZR957 (&ZI484); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI418) = (IS_NULL_type ((ZI1142)) ? (ZI484): inject_pre_type ((ZI1142), (ZI484), 0)); } ZI1142 = ZI418; goto ZL2_1144; } /*UNREACHED*/ default: { ZI1143 = ZI1142; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1143 = ZI1143; } void ZR890 (BASE_TYPE *ZI879, TYPE *ZI880, CV_SPEC *ZI881, BASE_TYPE *ZO515, TYPE *ZO418, CV_SPEC *ZO788) { BASE_TYPE ZI515; TYPE ZI418; CV_SPEC ZI788; if ((CURRENT_TERMINAL) == 358) { return; } { TYPE ZI578; BASE_TYPE ZI1395; TYPE ZI1396; CV_SPEC ZI1397; BASE_TYPE ZI883; TYPE ZI884; CV_SPEC ZI885; { /* Resolve type-specifiers from other declarators */ (ZI0) = predict_tspec (0); } if (!ZI0) goto ZL2; { (ZI578) = NULL_type; } ZR877 (ZI578, &ZI1395, &ZI1396, &ZI1397); ZR890 (&ZI1395, &ZI1396, &ZI1397, &ZI883, &ZI884, &ZI885); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { if ((*ZI879) & (ZI883)) { (ZI515) = join_pre_types ((*ZI879), (ZI883)); } else { (ZI515) = ((*ZI879) | (ZI883)); } } { /* Join two partial types */ if (IS_NULL_type ((*ZI880))) { (ZI418) = (ZI884); } else if (IS_NULL_type ((ZI884))) { (ZI418) = (*ZI880); } else { report (crt_loc, ERR_dcl_type_simple_many ((*ZI880), (ZI884))); (ZI418) = (ZI884); } } { CV_SPEC c = ((*ZI881) & (ZI885)); if (c) report (crt_loc, ERR_dcl_type_cv_dup (c)); (ZI788) = ((*ZI881) | (ZI885)); } goto ZL0; } /*UNREACHED*/ ZL2:; switch (CURRENT_TERMINAL) { default: { ZI515 = *ZI879; ZI418 = *ZI880; ZI788 = *ZI881; } break; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO515 = ZI515; *ZO418 = ZI418; *ZO788 = ZI788; } void ZR1399 (NAMESPACE *ZI1398, IDENTIFIER *ZO423) { IDENTIFIER ZI423; switch (CURRENT_TERMINAL) { case lex_identifier: case lex_namespace_Hname: case lex_destructor_Hname: case lex_template_Hid: case lex_operator: case lex_template: { int ZI484; IDENTIFIER ZI482; ZR479 (*ZI1398, &ZI484); ZR480 (*ZI1398, &ZI482); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI423) = check_id ((*ZI1398), (ZI482), (ZI484)); last_namespace = (*ZI1398); } } break; case lex_compl_H1: { IDENTIFIER ZI523; BASE_TYPE ZI524; QUALIFIER ZI459; int ZI460; IDENTIFIER ZI526; BASE_TYPE ZI527; IDENTIFIER ZI482; { (ZI523) = DEREF_id (nspace_name ((*ZI1398))); } { (ZI524) = btype_none; } { (ZI459) = crt_id_qualifier; (ZI460) = crt_templ_qualifier; } { { switch (CURRENT_TERMINAL) { case lex_compl_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR520 (&ZI526, &ZI527); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = (ZI459); crt_templ_qualifier = (ZI460); } { (ZI482) = make_pseudo_destr ((ZI523), (ZI524), (ZI526), (ZI527)); } { (ZI423) = check_id ((*ZI1398), (ZI482), 0); last_namespace = (*ZI1398); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO423 = ZI423; } void ZR1272 (NAMESPACE *ZI429, EXP *ZO1244) { EXP ZI1244; switch (CURRENT_TERMINAL) { case lex_type_Hname: case lex_template_Htype: { IDENTIFIER ZI464; IDENTIFIER ZI423; TYPE ZI1270; BASE_TYPE ZI515; CV_SPEC ZI788; TYPE ZI418; SID_LIST_EXP ZI501; EXP ZI435; { switch (CURRENT_TERMINAL) { case lex_template_Htype: { { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI464 = parse_type_template (id, args, 0); crt_templ_qualifier = 1; RESCAN_LEXER; } ADVANCE_LEXER; } break; case lex_type_Hname: { { ZI464 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto ZL1; } } { crt_id_qualifier = qual_full; qual_namespace = (*ZI429); } { (ZI423) = check_id ((*ZI429), (ZI464), 0); last_namespace = (*ZI429); } { MAKE_type_pre (cv_none, btype_alias, crt_id_qualifier, (ZI1270)); COPY_id (type_name ((ZI1270)), (ZI423)); have_type_specifier = 1; } { (ZI515) = btype_none; } { (ZI788) = cv_none; } { (ZI418) = complete_pre_type ((ZI515), (ZI1270), (ZI788), 1); have_type_specifier = 0; } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR504 (&ZI501); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; { (ZI435) = make_func_cast_exp ((ZI418), (ZI501)); } ZR1245 (ZI435, &ZI1244); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_identifier: case lex_namespace_Hname: case lex_destructor_Hname: case lex_template_Hid: case lex_operator: case lex_template: { int ZI484; IDENTIFIER ZI482; IDENTIFIER ZI423; EXP ZI435; ZR479 (*ZI429, &ZI484); ZR480 (*ZI429, &ZI482); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = qual_full; qual_namespace = (*ZI429); } { (ZI423) = check_id ((*ZI429), (ZI482), (ZI484)); last_namespace = (*ZI429); } { (ZI435) = make_id_exp ((ZI423)); } ZR1245 (ZI435, &ZI1244); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1244 = ZI1244; } void ZR1022 (NAMESPACE ZI516) { if ((CURRENT_TERMINAL) == 358) { return; } ZL2_1022:; { ZR1021 (ZI516); { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; goto ZL2_1022; } /*UNREACHED*/ case 358: RESTORE_LEXER; goto ZL1; default: break; } } } return; ZL1:; SAVE_LEXER (358); return; } void ZR1273 (EXP *ZO1244) { EXP ZI1244; switch (CURRENT_TERMINAL) { case lex_type_Hname: case lex_template_Htype: { IDENTIFIER ZI464; NAMESPACE ZI429; IDENTIFIER ZI423; TYPE ZI1270; BASE_TYPE ZI515; CV_SPEC ZI788; TYPE ZI418; SID_LIST_EXP ZI501; EXP ZI435; { switch (CURRENT_TERMINAL) { case lex_template_Htype: { { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI464 = parse_type_template (id, args, 0); crt_templ_qualifier = 1; RESCAN_LEXER; } ADVANCE_LEXER; } break; case lex_type_Hname: { { ZI464 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto ZL1; } } { (ZI429) = global_namespace; crt_id_qualifier = qual_top; qual_namespace = (ZI429); } { (ZI423) = check_id ((ZI429), (ZI464), 0); last_namespace = (ZI429); } { MAKE_type_pre (cv_none, btype_alias, crt_id_qualifier, (ZI1270)); COPY_id (type_name ((ZI1270)), (ZI423)); have_type_specifier = 1; } { (ZI515) = btype_none; } { (ZI788) = cv_none; } { (ZI418) = complete_pre_type ((ZI515), (ZI1270), (ZI788), 1); have_type_specifier = 0; } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR504 (&ZI501); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; { (ZI435) = make_func_cast_exp ((ZI418), (ZI501)); } ZR1245 (ZI435, &ZI1244); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_identifier: case lex_namespace_Hname: case lex_destructor_Hname: case lex_template_Hid: case lex_operator: case lex_template: { NAMESPACE ZI429; int ZI484; IDENTIFIER ZI482; IDENTIFIER ZI423; EXP ZI435; { (ZI429) = global_namespace; crt_id_qualifier = qual_top; qual_namespace = (ZI429); } ZR479 (ZI429, &ZI484); ZR480 (ZI429, &ZI482); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI423) = check_id ((ZI429), (ZI482), (ZI484)); last_namespace = (ZI429); } { (ZI435) = make_id_exp ((ZI423)); } ZR1245 (ZI435, &ZI1244); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1244 = ZI1244; } void ZR913 (TYPE ZI578, BASE_TYPE *ZO515, TYPE *ZO418, CV_SPEC *ZO788, DECL_SPEC *ZO693) { BASE_TYPE ZI515; TYPE ZI418; CV_SPEC ZI788; DECL_SPEC ZI693; if ((CURRENT_TERMINAL) == 358) { return; } { BASE_TYPE ZI879; TYPE ZI880; CV_SPEC ZI881; DECL_SPEC ZI914; ZR911 (ZI578, &ZI879, &ZI880, &ZI881, &ZI914); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* A type-name can be a declarator-id */ if (have_type_specifier && crt_lex_token == lex_type_Hname) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_type_Hname: case lex_template_Htype: case lex_nested_Hname: case lex_full_Hname: case lex_complex_Htype: case lex_colon_Hcolon: case lex_auto: case lex_char: case lex_const: case lex_double: case lex_enum: case lex_extern: case lex_float: case lex_int: case lex_long: case lex_register: case lex_short: case lex_signed: case lex_static: case lex_struct: case lex_typedef: case lex_union: case lex_unsigned: case lex_void: case lex_volatile: case lex_restrict: case lex_bool: case lex_class: case lex_explicit: case lex_friend: case lex_inline: case lex_mutable: case lex_typename: case lex_virtual: case lex_wchar_Ht: case lex_bottom: case lex_overload: case lex_ptrdiff_Ht: case lex_size_Ht: { BASE_TYPE ZI883; TYPE ZI884; CV_SPEC ZI885; DECL_SPEC ZI916; ZR913 (ZI578, &ZI883, &ZI884, &ZI885, &ZI916); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { if ((ZI879) & (ZI883)) { (ZI515) = join_pre_types ((ZI879), (ZI883)); } else { (ZI515) = ((ZI879) | (ZI883)); } } { /* Join two partial types */ if (IS_NULL_type ((ZI880))) { (ZI418) = (ZI884); } else if (IS_NULL_type ((ZI884))) { (ZI418) = (ZI880); } else { report (crt_loc, ERR_dcl_type_simple_many ((ZI880), (ZI884))); (ZI418) = (ZI884); } } { CV_SPEC c = ((ZI881) & (ZI885)); if (c) report (crt_loc, ERR_dcl_type_cv_dup (c)); (ZI788) = ((ZI881) | (ZI885)); } { /* Combine two declaration specifiers */ DECL_SPEC d = (((ZI914) & (ZI916)) & dspec_duplicate); if (d) report (crt_loc, ERR_dcl_spec_dup (d)); (ZI693) = ((ZI914) | (ZI916)); } } break; default: { ZI515 = ZI879; ZI418 = ZI880; ZI788 = ZI881; ZI693 = ZI914; } break; } } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO515 = ZI515; *ZO418 = ZI418; *ZO788 = ZI788; *ZO693 = ZI693; } void ZR419 (void) { if ((CURRENT_TERMINAL) == 358) { return; } { { { switch (CURRENT_TERMINAL) { case lex_close_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } } return; ZL1:; { int ZI418; { (ZI418) = lex_close_Hsquare_H1; } { /* Expected symbol */ int p = primary_form (crt_lex_token); if (p != (ZI418)) report (crt_loc, ERR_lex_expect ((ZI418))); } } } void ZR480 (NAMESPACE ZI429, IDENTIFIER *ZO423) { IDENTIFIER ZI423; switch (CURRENT_TERMINAL) { case lex_destructor_Hname: { { ZI423 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_identifier: { { ZI423 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { ZI423 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_template_Hid: { { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI423 = parse_id_template (id, args, 0); crt_templ_qualifier = 1; RESCAN_LEXER; } ADVANCE_LEXER; } break; case lex_operator: { { if (add_nested_nspace ((ZI429))) { RESCAN_LEXER; } } parse_operator (&ZI423); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { if (remove_nested_nspace ((ZI429))) { RESCAN_LEXER; } } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO423 = ZI423; } void ZR951 (IDENTIFIER ZI423, TYPE *ZO418, int *ZO562) { TYPE ZI418; int ZI562; switch (CURRENT_TERMINAL) { case lex_open_Hround: { ADVANCE_LEXER; { { { /* Resolve function-style initialisers from function declarators */ (ZI0) = predict_init (); } if (!ZI0) goto ZL3; { (ZI562) = 1; } { (ZI418) = NULL_type; } goto ZL2; } /*UNREACHED*/ ZL3:; switch (CURRENT_TERMINAL) { case lex_type_Hname: case lex_template_Htype: case lex_nested_Hname: case lex_full_Hname: case lex_complex_Htype: case lex_close_Hround: case lex_ellipsis: case lex_colon_Hcolon: case lex_auto: case lex_char: case lex_const: case lex_double: case lex_enum: case lex_extern: case lex_float: case lex_int: case lex_long: case lex_register: case lex_short: case lex_signed: case lex_static: case lex_struct: case lex_typedef: case lex_union: case lex_unsigned: case lex_void: case lex_volatile: case lex_restrict: case lex_bool: case lex_class: case lex_explicit: case lex_friend: case lex_inline: case lex_mutable: case lex_typename: case lex_virtual: case lex_wchar_Ht: case lex_bottom: case lex_overload: case lex_ptrdiff_Ht: case lex_size_Ht: { int ZI948; { (ZI948) = 0; } { func_type_defn (0); begin_param ((ZI423)); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } ZR949 (ZI948, &ZI418); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { end_param (); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 1; } { (ZI562) = 0; } } break; default: goto ZL1; } ZL2:; } } break; case lex_weak: { int ZI948; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI948) = 1; } { func_type_defn (0); begin_param ((ZI423)); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } ZR949 (ZI948, &ZI418); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { end_param (); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 1; } { (ZI562) = 0; } } break; case lex_open_Hsquare_H1: { EXP ZI435; { { switch (CURRENT_TERMINAL) { case lex_open_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR958 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { NAT n = make_array_dim ((ZI435)); MAKE_type_array (cv_none, NULL_type, n, (ZI418)); } { { switch (CURRENT_TERMINAL) { case lex_close_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { (ZI562) = 0; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO418 = ZI418; *ZO562 = ZI562; } void ZR976 (TYPE ZI578, int ZI501, IDENTIFIER *ZO463) { IDENTIFIER ZI463; if ((CURRENT_TERMINAL) == 358) { return; } { BASE_TYPE ZI515; TYPE ZI880; CV_SPEC ZI881; DECL_SPEC ZI914; TYPE ZI884; DECL_SPEC ZI916; TYPE ZI418; IDENTIFIER ZI423; EXP ZI435; ZR913 (ZI578, &ZI515, &ZI880, &ZI881, &ZI914); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* Complete a declaration specifier and a type */ (ZI916) = complete_dspec ((ZI914), (ZI515), (ZI880), (ZI881)); (ZI884) = complete_pre_type ((ZI515), (ZI880), (ZI881), 0); have_type_specifier = 0; } { crt_templ_qualifier = 0; } ZR966 (ZI884, &ZI418, &ZI423); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI463) = make_param_decl ((ZI916), (ZI418), (ZI423), (ZI501)); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } { switch (CURRENT_TERMINAL) { case lex_assign: { EXP ZI497; ADVANCE_LEXER; { in_default_arg++; } { { { (ZI0) = (in_class_defn && (ZI501) == CONTEXT_PARAMETER); } if (!ZI0) goto ZL4; { (ZI497) = skip_default_arg ((ZI463)); } goto ZL3; } /*UNREACHED*/ ZL4:; switch (CURRENT_TERMINAL) { case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_destructor_Hname: case lex_template_Hid: case lex_template_Htype: case lex_nested_Hname: case lex_full_Hname: case lex_char_Hexp: case lex_wchar_Hexp: case lex_string_Hexp: case lex_wstring_Hexp: case lex_integer_Hexp: case lex_floating_Hexp: case lex_complex_Hexp: case lex_complex_Htype: case lex_and_H1: case lex_compl_H1: case lex_minus: case lex_minus_Hminus: case lex_not_H1: case lex_open_Hround: case lex_plus: case lex_plus_Hplus: case lex_star: case lex_colon_Hcolon: case lex_abs: case lex_char: case lex_double: case lex_float: case lex_int: case lex_long: case lex_short: case lex_signed: case lex_sizeof: case lex_unsigned: case lex_void: case lex_bool: case lex_const_Hcast: case lex_delete: case lex_dynamic_Hcast: case lex_false: case lex_new: case lex_operator: case lex_reinterpret_Hcast: case lex_static_Hcast: case lex_this: case lex_throw: case lex_true: case lex_typeid: case lex_wchar_Ht: case lex_alignof: case lex_bottom: case lex_discard: case lex_ellipsis_Hexp: case lex_ptrdiff_Ht: case lex_size_Ht: case lex_vtable: { ZR653 (&ZI497); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: goto ZL1; } ZL3:; } { in_default_arg--; } ZI435 = ZI497; } break; default: { { (ZI435) = NULL_exp; } } break; } } { init_param ((ZI463), (ZI435)); } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO463 = ZI463; } void ZR1403 (NAMESPACE *ZI429, IDENTIFIER *ZI1401, IDENTIFIER *ZO423) { IDENTIFIER ZI423; switch (CURRENT_TERMINAL) { case lex_colon_Hcolon: { BASE_TYPE ZI524; NAMESPACE ZI525; QUALIFIER ZI459; int ZI460; IDENTIFIER ZI526; BASE_TYPE ZI527; IDENTIFIER ZI482; ADVANCE_LEXER; { (ZI524) = btype_none; } ZI525 = *ZI429; { (ZI459) = crt_id_qualifier; (ZI460) = crt_templ_qualifier; } { { switch (CURRENT_TERMINAL) { case lex_compl_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR520 (&ZI526, &ZI527); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = (ZI459); crt_templ_qualifier = (ZI460); } { (ZI482) = make_pseudo_destr ((*ZI1401), (ZI524), (ZI526), (ZI527)); } { (ZI423) = check_id ((ZI525), (ZI482), 0); last_namespace = (ZI525); } } break; default: { ZI423 = *ZI1401; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO423 = ZI423; } void ZR440 (EXP *ZO435) { EXP ZI435; switch (CURRENT_TERMINAL) { case lex_false: { ADVANCE_LEXER; { (ZI435) = make_bool_exp (BOOL_FALSE, exp_int_lit_tag); } } break; case lex_true: { ADVANCE_LEXER; { (ZI435) = make_bool_exp (BOOL_TRUE, exp_int_lit_tag); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO435 = ZI435; } void ZR1150 (EXP ZI1148, EXP *ZO1149) { EXP ZI1149; ZL2_1150:; switch (CURRENT_TERMINAL) { case lex_hash_Helif: { EXP ZI501; EXP ZI562; ZI501 = ZI1148; { ZI562 = crt_token->pp_data.exp; } ADVANCE_LEXER; { EXP c = make_else_cond (crt_hash_cond); crt_hash_cond = make_if_cond ((ZI562), c); } { target_decl (lex_elif, (ZI562)); } ZR1033 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } else { ZI1148 = ZI501; goto ZL2_1150; } } /*UNREACHED*/ default: { ZI1149 = ZI1148; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1149 = ZI1149; } void ZR430 (NAMESPACE *ZO429) { NAMESPACE ZI429; switch (CURRENT_TERMINAL) { case lex_full_Hname: { { ZI429 = crt_token->pp_data.ns; } ADVANCE_LEXER; { crt_id_qualifier = qual_full; qual_namespace = (ZI429); } } break; case lex_nested_Hname: { { ZI429 = crt_token->pp_data.ns; } ADVANCE_LEXER; { crt_id_qualifier = qual_nested; qual_namespace = (ZI429); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO429 = ZI429; } void ZR703 (EXP *ZO435) { EXP ZI435; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI497; EXP ZI501; int ZI674; EXP ZI460; ZR702 (&ZI497, &ZI501, &ZI674); { switch (CURRENT_TERMINAL) { case lex_hash_Helse: { int ZI578; ADVANCE_LEXER; { crt_hash_cond = make_else_cond (crt_hash_cond); } { (ZI578) = unreached_code; if ((ZI578)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } ZR682 (&ZI460); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI460) = NULL_exp; } } break; case 358: RESTORE_LEXER; goto ZL1; } } { crt_hash_cond = (ZI501); } switch (CURRENT_TERMINAL) { case lex_hash_Hendif: break; default: goto ZL1; } ADVANCE_LEXER; { unreached_prev = (ZI674); } { (ZI435) = end_hash_if_stmt ((ZI497), (ZI460)); } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO435 = ZI435; } void ZR1407 (NAMESPACE *ZI429, IDENTIFIER *ZI1405, IDENTIFIER *ZO423) { IDENTIFIER ZI423; switch (CURRENT_TERMINAL) { case lex_colon_Hcolon: { BASE_TYPE ZI524; NAMESPACE ZI525; QUALIFIER ZI459; int ZI460; IDENTIFIER ZI526; BASE_TYPE ZI527; IDENTIFIER ZI482; ADVANCE_LEXER; { (ZI524) = btype_none; } ZI525 = *ZI429; { (ZI459) = crt_id_qualifier; (ZI460) = crt_templ_qualifier; } { { switch (CURRENT_TERMINAL) { case lex_compl_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR520 (&ZI526, &ZI527); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = (ZI459); crt_templ_qualifier = (ZI460); } { (ZI482) = make_pseudo_destr ((*ZI1405), (ZI524), (ZI526), (ZI527)); } { (ZI423) = check_id ((ZI525), (ZI482), 0); last_namespace = (ZI525); } } break; default: { ZI423 = *ZI1405; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO423 = ZI423; } void ZR521 (NAMESPACE ZI429, IDENTIFIER *ZO423) { IDENTIFIER ZI423; switch (CURRENT_TERMINAL) { case lex_colon_Hcolon: { ADVANCE_LEXER; ZR1318 (&ZI429, &ZI423); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_full_Hname: { NAMESPACE ZI1321; { ZI1321 = crt_token->pp_data.ns; } ADVANCE_LEXER; ZR1322 (&ZI429, &ZI1321, &ZI423); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_nested_Hname: { NAMESPACE ZI1319; { ZI1319 = crt_token->pp_data.ns; } ADVANCE_LEXER; ZR1320 (&ZI429, &ZI1319, &ZI423); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_char: case lex_double: case lex_float: case lex_int: case lex_long: case lex_short: case lex_signed: case lex_unsigned: case lex_void: case lex_bool: case lex_wchar_Ht: case lex_bottom: case lex_ptrdiff_Ht: case lex_size_Ht: { BASE_TYPE ZI524; IDENTIFIER ZI523; NAMESPACE ZI525; QUALIFIER ZI459; int ZI460; IDENTIFIER ZI526; BASE_TYPE ZI527; IDENTIFIER ZI482; ZR513 (&ZI524); switch (CURRENT_TERMINAL) { case lex_colon_Hcolon: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; { (ZI523) = NULL_id; crt_id_qualifier = qual_none; qual_namespace = NULL_nspace; } ZI525 = ZI429; { (ZI459) = crt_id_qualifier; (ZI460) = crt_templ_qualifier; } { { switch (CURRENT_TERMINAL) { case lex_compl_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR520 (&ZI526, &ZI527); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = (ZI459); crt_templ_qualifier = (ZI460); } { (ZI482) = make_pseudo_destr ((ZI523), (ZI524), (ZI526), (ZI527)); } { (ZI423) = check_id ((ZI525), (ZI482), 0); last_namespace = (ZI525); } } break; case lex_compl_H1: { IDENTIFIER ZI526; BASE_TYPE ZI527; { { switch (CURRENT_TERMINAL) { case lex_compl_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR520 (&ZI526, &ZI527); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = qual_none; crt_templ_qualifier = 0; qual_namespace = NULL_nspace; } { (ZI423) = make_pseudo_destr ((ZI526), (ZI527), (ZI526), (ZI527)); } } break; case lex_identifier: case lex_namespace_Hname: case lex_destructor_Hname: case lex_template_Hid: case lex_operator: { IDENTIFIER ZI482; ZR480 (ZI429, &ZI482); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = qual_none; crt_templ_qualifier = 0; qual_namespace = NULL_nspace; } { (ZI423) = check_id ((ZI429), (ZI482), 0); last_namespace = (ZI429); } } break; case lex_type_Hname: case lex_template_Htype: { IDENTIFIER ZI464; IDENTIFIER ZI1315; ZR476 (&ZI464); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1315) = check_id ((ZI429), (ZI464), 0); last_namespace = (ZI429); } ZR1317 (&ZI429, &ZI1315, &ZI423); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO423 = ZI423; } void ZR911 (TYPE ZI578, BASE_TYPE *ZO515, TYPE *ZO418, CV_SPEC *ZO788, DECL_SPEC *ZO693) { BASE_TYPE ZI515; TYPE ZI418; CV_SPEC ZI788; DECL_SPEC ZI693; switch (CURRENT_TERMINAL) { case lex_type_Hname: case lex_template_Htype: case lex_nested_Hname: case lex_full_Hname: case lex_complex_Htype: case lex_colon_Hcolon: case lex_char: case lex_const: case lex_double: case lex_enum: case lex_float: case lex_int: case lex_long: case lex_short: case lex_signed: case lex_struct: case lex_union: case lex_unsigned: case lex_void: case lex_volatile: case lex_restrict: case lex_bool: case lex_class: case lex_typename: case lex_wchar_Ht: case lex_bottom: case lex_ptrdiff_Ht: case lex_size_Ht: { ZR877 (ZI578, &ZI515, &ZI418, &ZI788); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI693) = dspec_none; } } break; case lex_auto: case lex_extern: case lex_register: case lex_static: case lex_typedef: case lex_explicit: case lex_friend: case lex_inline: case lex_mutable: case lex_virtual: case lex_overload: { { switch (CURRENT_TERMINAL) { case lex_friend: { ADVANCE_LEXER; { (ZI693) = dspec_friend; } } break; case lex_typedef: { ADVANCE_LEXER; { (ZI693) = dspec_typedef; } } break; case lex_explicit: case lex_inline: case lex_virtual: case lex_overload: { ZR904 (&ZI693); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_auto: case lex_extern: case lex_register: case lex_static: case lex_mutable: { ZR899 (&ZI693); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: goto ZL1; } } { if (have_type_specifier) report (crt_loc, ERR_dcl_spec_order ((ZI693))); } { (ZI515) = btype_none; } { (ZI418) = NULL_type; } { (ZI788) = cv_none; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO515 = ZI515; *ZO418 = ZI418; *ZO788 = ZI788; *ZO693 = ZI693; } void parse_init (IDENTIFIER ZI463, EXP *ZO435) { EXP ZI435; if ((CURRENT_TERMINAL) == 358) { return; } { ZR1003 (ZI463, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; { { /* Syntax errors */ ERROR err = ERR_lex_parse (crt_token); report (crt_loc, err); have_syntax_error = 1; } { (ZI435) = NULL_exp; } } ZL0:; *ZO435 = ZI435; } void ZR1154 (TYPE ZI1152, TYPE *ZO1153) { TYPE ZI1153; ZL2_1154:; switch (CURRENT_TERMINAL) { case lex_open_Hsquare_H1: { EXP ZI435; TYPE ZI484; TYPE ZI418; { { switch (CURRENT_TERMINAL) { case lex_open_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR655 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { NAT n = make_array_dim ((ZI435)); MAKE_type_array (cv_none, NULL_type, n, (ZI484)); } { (ZI418) = (IS_NULL_type ((ZI1152)) ? (ZI484): inject_pre_type ((ZI1152), (ZI484), 0)); } { { switch (CURRENT_TERMINAL) { case lex_close_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZI1152 = ZI418; goto ZL2_1154; } /*UNREACHED*/ default: { ZI1153 = ZI1152; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1153 = ZI1153; } void ZR1032 (TYPE ZI418, DECL_SPEC ZI693) { if ((CURRENT_TERMINAL) == 358) { return; } ZL2_1032:; { BASE_TYPE ZI1253; TYPE ZI1254; CV_SPEC ZI1255; DECL_SPEC ZI1256; BASE_TYPE ZI515; TYPE ZI880; CV_SPEC ZI881; DECL_SPEC ZI914; DECL_SPEC ZI916; EXP ZI435; { /* Resolve declaration-specifiers from other declarators */ (ZI0) = predict_dspec (0); } if (!ZI0) goto ZL3; ZR911 (ZI418, &ZI1253, &ZI1254, &ZI1255, &ZI1256); ZR922 (&ZI418, &ZI1253, &ZI1254, &ZI1255, &ZI1256, &ZI515, &ZI880, &ZI881, &ZI914); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* Combine two declaration specifiers */ DECL_SPEC d = (((ZI693) & (ZI914)) & dspec_duplicate); if (d) report (crt_loc, ERR_dcl_spec_dup (d)); (ZI916) = ((ZI693) | (ZI914)); } ZR1257 (&ZI418, &ZI515, &ZI880, &ZI881, &ZI916); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = NULL_exp; } { external_declaration ((ZI435), 1); } goto ZL2_1032; } /*UNREACHED*/ ZL3:; switch (CURRENT_TERMINAL) { case lex_extern: { EXP ZI435; ZR1067 (ZI418, ZI693, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { external_declaration ((ZI435), 1); } goto ZL2_1032; } /*UNREACHED*/ case lex_export: case lex_template: { EXP ZI435; ZR1077 (ZI418, ZI693, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { external_declaration ((ZI435), 1); } goto ZL2_1032; } /*UNREACHED*/ case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: case lex_destructor_Hname: case lex_template_Hid: case lex_template_Htype: case lex_nested_Hname: case lex_full_Hname: case lex_nested_Hname_Hstar: case lex_full_Hname_Hstar: case lex_and_H1: case lex_open_Hround: case lex_semicolon: case lex_star: case lex_colon_Hcolon: case lex_operator: { BASE_TYPE ZI515; TYPE ZI880; CV_SPEC ZI1258; EXP ZI435; { (ZI515) = btype_none; } { (ZI880) = NULL_type; } { (ZI1258) = cv_none; } ZR1259 (&ZI418, &ZI693, &ZI515, &ZI880, &ZI1258, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { external_declaration ((ZI435), 1); } goto ZL2_1032; } /*UNREACHED*/ case lex_hash_Hif: case lex_hash_Hpragma: case lex_asm: case lex_namespace: case lex_using: { { if (!IS_NULL_type ((ZI418))) report (crt_loc, ERR_temp_decl_bad ()); UNUSED ((ZI693)); } ZR1260 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } else { goto ZL2_1032; } } /*UNREACHED*/ default: break; } return; ZL1:; SAVE_LEXER (358); return; } void ZR957 (TYPE *ZO418) { TYPE ZI418; switch (CURRENT_TERMINAL) { case lex_open_Hround: { IDENTIFIER ZI423; int ZI948; ADVANCE_LEXER; { (ZI423) = NULL_id; crt_id_qualifier = qual_none; qual_namespace = NULL_nspace; } { (ZI948) = 0; } { func_type_defn (0); begin_param ((ZI423)); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } ZR949 (ZI948, &ZI418); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { end_param (); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 1; } } break; case lex_weak: { IDENTIFIER ZI423; int ZI948; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI423) = NULL_id; crt_id_qualifier = qual_none; qual_namespace = NULL_nspace; } { (ZI948) = 1; } { func_type_defn (0); begin_param ((ZI423)); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } ZR949 (ZI948, &ZI418); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { end_param (); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 1; } } break; case lex_open_Hsquare_H1: { EXP ZI435; { { switch (CURRENT_TERMINAL) { case lex_open_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR958 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { NAT n = make_array_dim ((ZI435)); MAKE_type_array (cv_none, NULL_type, n, (ZI418)); } { { switch (CURRENT_TERMINAL) { case lex_close_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO418 = ZI418; } void ZR1410 (NAMESPACE *ZI429, IDENTIFIER *ZI1408, IDENTIFIER *ZO423) { IDENTIFIER ZI423; switch (CURRENT_TERMINAL) { case lex_colon_Hcolon: { BASE_TYPE ZI524; NAMESPACE ZI525; QUALIFIER ZI459; int ZI460; IDENTIFIER ZI526; BASE_TYPE ZI527; IDENTIFIER ZI482; ADVANCE_LEXER; { (ZI524) = btype_none; } ZI525 = *ZI429; { (ZI459) = crt_id_qualifier; (ZI460) = crt_templ_qualifier; } { { switch (CURRENT_TERMINAL) { case lex_compl_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR520 (&ZI526, &ZI527); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { crt_id_qualifier = (ZI459); crt_templ_qualifier = (ZI460); } { (ZI482) = make_pseudo_destr ((*ZI1408), (ZI524), (ZI526), (ZI527)); } { (ZI423) = check_id ((ZI525), (ZI482), 0); last_namespace = (ZI525); } } break; default: { ZI423 = *ZI1408; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO423 = ZI423; } void ZR685 (EXP ZI562, EXP *ZO435) { EXP ZI435; if ((CURRENT_TERMINAL) == 358) { return; } { DECL_SPEC ZI693; TYPE ZI418; EXP ZI1517; EXP ZI1556; EXP ZI497; { /* Resolve declaration-statements from expression-statements */ int b = predict_decl (); if (b) in_declaration++; (ZI0) = b; } if (!ZI0) goto ZL2; { (ZI693) = dspec_none; } { (ZI418) = NULL_type; } ZR691 (ZI418, ZI693, &ZI1517); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1556) = (ZI1517); in_declaration--; } { unreached_fall = 1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1556)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } goto ZL0; } /*UNREACHED*/ ZL2:; switch (CURRENT_TERMINAL) { case lex_alignof: { int ZI454; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1527; int ZI674; EXP ZI1573; EXP ZI497; ADVANCE_LEXER; { (ZI454) = lex_alignof; } ZR597 (ZI454, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1527); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1573) = make_exp_stmt ((ZI1527)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1573)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_colon_Hcolon: { EXP ZI1563; EXP ZI497; ADVANCE_LEXER; ZR1479 (&ZI1563); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1563)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_complex_Hexp: { EXP ZI1284; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1537; int ZI674; EXP ZI1583; EXP ZI497; { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI1284 = parse_exp_token (id, args); RESCAN_LEXER; } ADVANCE_LEXER; ZR1245 (ZI1284, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1537); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1583) = make_exp_stmt ((ZI1537)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1583)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_complex_Hstmt: { EXP ZI1515; EXP ZI1553; EXP ZI497; { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI1515 = parse_exp_token (id, args); RESCAN_LEXER; } ADVANCE_LEXER; { (ZI1553) = make_exp_stmt ((ZI1515)); } { (ZI497) = add_compound_stmt ((ZI562), (ZI1553)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_complex_Htype: { TYPE ZI1270; BASE_TYPE ZI515; CV_SPEC ZI788; TYPE ZI418; SID_LIST_EXP ZI501; EXP ZI1287; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1539; int ZI674; EXP ZI1585; EXP ZI497; { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI1270 = parse_type_token (id, args); have_type_declaration = TYPE_DECL_NONE; have_type_specifier = 1; RESCAN_LEXER; } ADVANCE_LEXER; { (ZI515) = btype_none; } { (ZI788) = cv_none; } { (ZI418) = complete_pre_type ((ZI515), (ZI1270), (ZI788), 1); have_type_specifier = 0; } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR504 (&ZI501); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; { (ZI1287) = make_func_cast_exp ((ZI418), (ZI501)); } ZR1245 (ZI1287, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1539); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1585) = make_exp_stmt ((ZI1539)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1585)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_const_Hcast: { TYPE ZI418; EXP ZI1465; int ZI555; EXP ZI1276; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1530; int ZI674; EXP ZI1576; EXP ZI497; ADVANCE_LEXER; ZR556 (&ZI418, &ZI1465, &ZI555); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* n is the number of type definitions in t */ (ZI1276) = make_const_cast_exp ((ZI418), (ZI1465), (ZI555)); } ZR1245 (ZI1276, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1530); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1576) = make_exp_stmt ((ZI1530)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1576)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_destructor_Hname: { IDENTIFIER ZI482; IDENTIFIER ZI423; EXP ZI1288; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1542; int ZI674; EXP ZI1588; EXP ZI497; { ZI482 = crt_token->pp_data.id.use; } ADVANCE_LEXER; { (ZI423) = check_id (NULL_nspace, (ZI482), 0); crt_id_qualifier = qual_none; last_namespace = crt_namespace; } { (ZI1288) = make_id_exp ((ZI423)); } ZR1245 (ZI1288, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1542); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1588) = make_exp_stmt ((ZI1542)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1588)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_discard: { EXP ZI1458; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1519; int ZI674; EXP ZI1565; EXP ZI497; ADVANCE_LEXER; ZR585 (&ZI1458); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1457) = make_cast_exp (type_void, (ZI1458), 0); } ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1519); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1565) = make_exp_stmt ((ZI1519)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1565)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_dynamic_Hcast: { TYPE ZI418; EXP ZI1468; int ZI555; EXP ZI1279; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1533; int ZI674; EXP ZI1579; EXP ZI497; ADVANCE_LEXER; ZR556 (&ZI418, &ZI1468, &ZI555); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* n is the number of type definitions in t */ (ZI1279) = make_dynamic_cast_exp ((ZI418), (ZI1468), (ZI555)); } ZR1245 (ZI1279, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1533); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1579) = make_exp_stmt ((ZI1533)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1579)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_ellipsis_Hexp: { EXP ZI1282; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1536; int ZI674; EXP ZI1582; EXP ZI497; ADVANCE_LEXER; { (ZI1282) = make_ellipsis_exp (); } ZR1245 (ZI1282, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1536); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1582) = make_exp_stmt ((ZI1536)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1582)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_full_Hname: { NAMESPACE ZI429; EXP ZI1562; EXP ZI497; { ZI429 = crt_token->pp_data.ns; } ADVANCE_LEXER; ZR1478 (&ZI429, &ZI1562); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1562)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_identifier: { IDENTIFIER ZI1469; EXP ZI1557; EXP ZI497; { ZI1469 = crt_token->pp_data.id.use; } ADVANCE_LEXER; ZR1474 (&ZI1469, &ZI1557); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1557)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_inset_Hstart: { EXP ZI1552; EXP ZI497; ADVANCE_LEXER; ZR1444 (&ZI1552); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1552)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_minus_Hminus: { EXP ZI1460; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1521; int ZI674; EXP ZI1567; EXP ZI497; ADVANCE_LEXER; ZR585 (&ZI1460); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1457) = make_prefix_exp (lex_minus_Hminus, (ZI1460)); } ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1521); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1567) = make_exp_stmt ((ZI1521)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1567)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_namespace_Hname: { IDENTIFIER ZI1473; EXP ZI1559; EXP ZI497; { ZI1473 = crt_token->pp_data.id.use; } ADVANCE_LEXER; ZR1474 (&ZI1473, &ZI1559); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1559)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_nested_Hname: { NAMESPACE ZI429; EXP ZI1561; EXP ZI497; { ZI429 = crt_token->pp_data.ns; } ADVANCE_LEXER; ZR1477 (&ZI429, &ZI1561); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1561)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_open_Hround: { EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1518; int ZI674; EXP ZI1564; EXP ZI497; ADVANCE_LEXER; ZR1291 (&ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1518); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1564) = make_exp_stmt ((ZI1518)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1564)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_plus_Hplus: { EXP ZI1459; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1520; int ZI674; EXP ZI1566; EXP ZI497; ADVANCE_LEXER; ZR585 (&ZI1459); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1457) = make_prefix_exp (lex_plus_Hplus, (ZI1459)); } ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1520); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1566) = make_exp_stmt ((ZI1520)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1566)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_reinterpret_Hcast: { TYPE ZI418; EXP ZI1466; int ZI555; EXP ZI1277; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1531; int ZI674; EXP ZI1577; EXP ZI497; ADVANCE_LEXER; ZR556 (&ZI418, &ZI1466, &ZI555); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* n is the number of type definitions in t */ (ZI1277) = make_reinterp_cast_exp ((ZI418), (ZI1466), (ZI555)); } ZR1245 (ZI1277, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1531); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1577) = make_exp_stmt ((ZI1531)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1577)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_semicolon: { EXP ZI1550; EXP ZI497; ADVANCE_LEXER; { (ZI1550) = NULL_exp; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1550)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_sizeof: { int ZI454; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1526; int ZI674; EXP ZI1572; EXP ZI497; ADVANCE_LEXER; { (ZI454) = lex_sizeof; } ZR597 (ZI454, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1526); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1572) = make_exp_stmt ((ZI1526)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1572)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_star: { EXP ZI1461; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1522; int ZI674; EXP ZI1568; EXP ZI497; ADVANCE_LEXER; ZR585 (&ZI1461); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1457) = make_indir_exp ((ZI1461)); } ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1522); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1568) = make_exp_stmt ((ZI1522)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1568)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_statement_Hname: { IDENTIFIER ZI1475; EXP ZI1560; EXP ZI497; { ZI1475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; ZR1476 (&ZI1475, &ZI1560); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1560)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_static_Hcast: { TYPE ZI418; EXP ZI1467; int ZI555; EXP ZI1278; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1532; int ZI674; EXP ZI1578; EXP ZI497; ADVANCE_LEXER; ZR556 (&ZI418, &ZI1467, &ZI555); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1278) = make_static_cast_exp ((ZI418), (ZI1467), (ZI555)); } ZR1245 (ZI1278, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1532); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1578) = make_exp_stmt ((ZI1532)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1578)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_template_Hid: { IDENTIFIER ZI482; IDENTIFIER ZI423; EXP ZI1288; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1543; int ZI674; EXP ZI1589; EXP ZI497; { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI482 = parse_id_template (id, args, 0); crt_templ_qualifier = 1; RESCAN_LEXER; } ADVANCE_LEXER; { (ZI423) = check_id (NULL_nspace, (ZI482), 0); crt_id_qualifier = qual_none; last_namespace = crt_namespace; } { (ZI1288) = make_id_exp ((ZI423)); } ZR1245 (ZI1288, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1543); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1589) = make_exp_stmt ((ZI1543)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1589)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_template_Htype: { IDENTIFIER ZI464; IDENTIFIER ZI423; TYPE ZI1270; BASE_TYPE ZI515; CV_SPEC ZI788; TYPE ZI418; SID_LIST_EXP ZI501; EXP ZI1286; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1544; int ZI674; EXP ZI1590; EXP ZI497; { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI464 = parse_type_template (id, args, 0); crt_templ_qualifier = 1; RESCAN_LEXER; } ADVANCE_LEXER; { (ZI423) = (ZI464); crt_id_qualifier = qual_none; last_namespace = crt_namespace; } { MAKE_type_pre (cv_none, btype_alias, crt_id_qualifier, (ZI1270)); COPY_id (type_name ((ZI1270)), (ZI423)); have_type_specifier = 1; } { (ZI515) = btype_none; } { (ZI788) = cv_none; } { (ZI418) = complete_pre_type ((ZI515), (ZI1270), (ZI788), 1); have_type_specifier = 0; } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR504 (&ZI501); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; { (ZI1286) = make_func_cast_exp ((ZI418), (ZI501)); } ZR1245 (ZI1286, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1544); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1590) = make_exp_stmt ((ZI1544)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1590)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_this: { EXP ZI1281; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1535; int ZI674; EXP ZI1581; EXP ZI497; ADVANCE_LEXER; { (ZI1281) = make_this_exp (); } ZR1245 (ZI1281, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1535); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1581) = make_exp_stmt ((ZI1535)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1581)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_type_Hname: { IDENTIFIER ZI1471; EXP ZI1558; EXP ZI497; { ZI1471 = crt_token->pp_data.id.use; } ADVANCE_LEXER; ZR1472 (&ZI1471, &ZI1558); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1558)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_typeid: { int ZI454; EXP ZI1275; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1529; int ZI674; EXP ZI1575; EXP ZI497; ADVANCE_LEXER; { (ZI454) = lex_typeid; } ZR557 (ZI454, &ZI1275); ZR1245 (ZI1275, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1529); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1575) = make_exp_stmt ((ZI1529)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1575)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_vtable: { int ZI454; EXP ZI1274; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1528; int ZI674; EXP ZI1574; EXP ZI497; ADVANCE_LEXER; { (ZI454) = lex_vtable; } ZR557 (ZI454, &ZI1274); ZR1245 (ZI1274, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1528); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1574) = make_exp_stmt ((ZI1528)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1574)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_and_H1: { EXP ZI1462; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1523; int ZI674; EXP ZI1569; EXP ZI497; { { switch (CURRENT_TERMINAL) { case lex_and_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR585 (&ZI1462); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1457) = make_ref_exp ((ZI1462), 0); } ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1523); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1569) = make_exp_stmt ((ZI1523)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1569)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_char: case lex_double: case lex_float: case lex_int: case lex_long: case lex_short: case lex_signed: case lex_unsigned: case lex_void: case lex_bool: case lex_wchar_Ht: case lex_bottom: case lex_ptrdiff_Ht: case lex_size_Ht: { BASE_TYPE ZI515; TYPE ZI1270; CV_SPEC ZI788; TYPE ZI418; SID_LIST_EXP ZI501; EXP ZI1285; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1538; int ZI674; EXP ZI1584; EXP ZI497; ZR513 (&ZI515); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1270) = NULL_type; have_type_specifier = 1; } { (ZI788) = cv_none; } { (ZI418) = complete_pre_type ((ZI515), (ZI1270), (ZI788), 1); have_type_specifier = 0; } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR504 (&ZI501); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; { (ZI1285) = make_func_cast_exp ((ZI418), (ZI501)); } ZR1245 (ZI1285, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1538); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1584) = make_exp_stmt ((ZI1538)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1584)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_reachable: case lex_unreachable: { EXP ZI1549; EXP ZI497; ZR780 (&ZI1549); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1549)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_case: case lex_default: case lex_fall: { EXP ZI1555; EXP ZI497; ZR666 (); ZR1445 (&ZI1555); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1555)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_set: case lex_unused: { EXP ZI1439; EXP ZI1514; int ZI674; EXP ZI1551; EXP ZI497; ZR647 (&ZI1439); ZR1441 (&ZI1439, &ZI1514); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1551) = make_exp_stmt ((ZI1514)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1551)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_do: case lex_for: case lex_while: { EXP ZI1546; EXP ZI497; ZR742 (&ZI1546); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1546)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_break: case lex_continue: case lex_goto: case lex_return: { EXP ZI1547; EXP ZI497; ZR756 (&ZI1547); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1547)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_char_Hexp: case lex_wchar_Hexp: case lex_string_Hexp: case lex_wstring_Hexp: case lex_integer_Hexp: case lex_floating_Hexp: case lex_false: case lex_true: { EXP ZI1280; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1534; int ZI674; EXP ZI1580; EXP ZI497; ZR441 (&ZI1280); ZR1245 (ZI1280, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1534); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1580) = make_exp_stmt ((ZI1534)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1580)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_not_H1: { EXP ZI1463; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1524; int ZI674; EXP ZI1570; EXP ZI497; { { switch (CURRENT_TERMINAL) { case lex_not_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR585 (&ZI1463); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1457) = make_not_exp ((ZI1463)); } ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1524); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1570) = make_exp_stmt ((ZI1524)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1570)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_open_Hbrace_H1: { EXP ZI497; { { switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { COPY_int (exp_sequence_block ((ZI562)), 2); } ZR680 (ZI562, &ZI497); { if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { switch (CURRENT_TERMINAL) { case lex_close_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_operator: { IDENTIFIER ZI482; IDENTIFIER ZI423; EXP ZI1288; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1541; int ZI674; EXP ZI1587; EXP ZI497; parse_operator (&ZI482); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI423) = check_id (NULL_nspace, (ZI482), 0); crt_id_qualifier = qual_none; last_namespace = crt_namespace; } { (ZI1288) = make_id_exp ((ZI423)); } ZR1245 (ZI1288, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1541); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1587) = make_exp_stmt ((ZI1541)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1587)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_hash_Hif: case lex_if: case lex_switch: { EXP ZI1545; EXP ZI497; ZR717 (&ZI1545); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1545)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_throw: { EXP ZI1292; EXP ZI1516; int ZI674; EXP ZI1554; EXP ZI497; ZR639 (&ZI1292); ZR1294 (&ZI1292, &ZI1516); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1554) = make_exp_stmt ((ZI1516)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1554)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_try: { EXP ZI1548; EXP ZI497; ZR775 (&ZI1548); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = add_compound_stmt ((ZI562), (ZI1548)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_delete: case lex_new: { int ZI460; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1540; int ZI674; EXP ZI1586; EXP ZI497; { (ZI460) = 0; } ZR1435 (&ZI460, &ZI1457); ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1540); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1586) = make_exp_stmt ((ZI1540)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1586)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; case lex_compl_H1: case lex_minus: case lex_plus: case lex_abs: { int ZI454; EXP ZI1464; EXP ZI1457; EXP ZI1456; EXP ZI1455; EXP ZI1454; EXP ZI1453; EXP ZI1452; EXP ZI1451; EXP ZI1450; EXP ZI1449; EXP ZI1448; EXP ZI1447; EXP ZI1446; EXP ZI1268; EXP ZI1292; EXP ZI1525; int ZI674; EXP ZI1571; EXP ZI497; { (ZI454) = crt_lex_token; } ZR600 (); ZR585 (&ZI1464); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1457) = make_uminus_exp ((ZI454), (ZI1464)); } ZR1241 (ZI1457, &ZI1456); ZR1237 (ZI1456, &ZI1455); ZR1233 (ZI1455, &ZI1454); ZR1229 (ZI1454, &ZI1453); ZR1225 (ZI1453, &ZI1452); ZR1221 (ZI1452, &ZI1451); ZR1217 (ZI1451, &ZI1450); ZR1213 (ZI1450, &ZI1449); ZR1209 (ZI1449, &ZI1448); ZR1205 (ZI1448, &ZI1447); ZR1201 (ZI1447, &ZI1446); ZR1197 (ZI1446, &ZI1268); ZR1269 (&ZI1268, &ZI1292); ZR1294 (&ZI1292, &ZI1525); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI1571) = make_exp_stmt ((ZI1525)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI497) = add_compound_stmt ((ZI562), (ZI1571)); } { (ZI435) = end_compound_stmt ((ZI497)); } { RESCAN_LEXER; } } break; default: goto ZL1; } goto ZL0; ZL1:; { { /* Syntax errors */ ERROR err = ERR_lex_parse (crt_token); report (crt_loc, err); have_syntax_error = 1; } { (ZI435) = end_compound_stmt ((ZI562)); } { RESCAN_LEXER; } } ZL0:; *ZO435 = ZI435; } /* END OF FILE */