/* * 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 void ZR572 (TYPE *ZO418, int *ZO555) { TYPE ZI418; int ZI555; if ((CURRENT_TERMINAL) == 358) { return; } { int ZI558; BASE_TYPE ZI515; TYPE ZI501; CV_SPEC ZI788; TYPE ZI578; TYPE ZI484; { (ZI558) = no_type_defns; } ZR878 (&ZI515, &ZI501, &ZI788); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI578) = complete_pre_type ((ZI515), (ZI501), (ZI788), 1); have_type_specifier = 0; } ZR996 (&ZI484); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI418) = (IS_NULL_type ((ZI484)) ? (ZI578): inject_pre_type ((ZI484), (ZI578), 1)); } { (ZI555) = no_type_defns - (ZI558); } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO418 = ZI418; *ZO555 = ZI555; } void ZR626 (EXP *ZO1212) { EXP ZI1212; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI435; ZR624 (&ZI435); ZR1213 (ZI435, &ZI1212); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1212 = ZI1212; } void ZR1330 (TYPE *ZI578, BASE_TYPE *ZO515, TYPE *ZO418, CV_SPEC *ZO788) { BASE_TYPE ZI515; TYPE ZI418; CV_SPEC ZI788; if ((CURRENT_TERMINAL) == 358) { return; } { IDENTIFIER ZI423; QUALIFIER ZI861; int ZI459; IDENTIFIER ZI501; IDENTIFIER ZI435; { /* Resolve enum-specifiers from elaborated-type-specifiers */ (ZI0) = predict_class (0); } if (!ZI0) goto ZL2; { crt_templ_qualifier = 0; } ZR874 (&ZI423); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI861) = crt_id_qualifier; (ZI459) = crt_templ_qualifier; } { IDENTIFIER id = constr_name (last_namespace, (ZI423)); (ZI501) = begin_enum_defn (id, (*ZI578)); no_type_defns++; } { { switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { switch (CURRENT_TERMINAL) { case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: { ZR871 (ZI501); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: break; } } { { switch (CURRENT_TERMINAL) { case lex_close_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { if (crt_access_list.pending) { IGNORE report_access (crt_func_id); } } { (ZI435) = end_enum_defn ((ZI501)); } { crt_id_qualifier = (ZI861); crt_templ_qualifier = (ZI459); } { MAKE_type_pre (cv_none, btype_alias, crt_id_qualifier, (ZI418)); COPY_id (type_name ((ZI418)), (ZI435)); have_type_specifier = 1; } { (ZI515) = btype_none; } { (ZI788) = cv_none; } goto ZL0; } /*UNREACHED*/ ZL2:; switch (CURRENT_TERMINAL) { case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: case lex_template_Htype: case lex_nested_Hname: case lex_full_Hname: case lex_colon_Hcolon: { BASE_TYPE ZI821; NAMESPACE ZI429; IDENTIFIER ZI825; IDENTIFIER ZI423; { (ZI821) = btype_enum; } { crt_templ_qualifier = 0; } ZR432 (&ZI429); ZR512 (&ZI825); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI423) = check_id ((ZI429), (ZI825), 0); last_namespace = (ZI429); } { MAKE_type_pre (cv_none, (ZI821), crt_id_qualifier, (ZI418)); COPY_id (type_name ((ZI418)), (ZI423)); if (have_type_declaration == TYPE_DECL_NONE) { have_type_declaration = TYPE_DECL_ELABORATE; } have_type_specifier = 1; } { (ZI515) = btype_none; } { (ZI788) = cv_none; } } break; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO515 = ZI515; *ZO418 = ZI418; *ZO788 = ZI788; } void parse_exp (EXP *ZO435) { EXP ZI435; if ((CURRENT_TERMINAL) == 358) { return; } { ZR500 (&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 ZR1331 (int *ZO418) { int ZI418; switch (CURRENT_TERMINAL) { case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: case lex_template_Htype: case lex_nested_Hname: case lex_full_Hname: case lex_colon_Hcolon: case lex_private: case lex_protected: case lex_public: case lex_virtual: { ZR850 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI418) = 1; } } break; default: { { (ZI418) = 0; } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO418 = ZI418; } void ZR691 (TYPE ZI418, DECL_SPEC ZI693, EXP *ZO435) { EXP ZI435; if ((CURRENT_TERMINAL) == 358) { return; } { 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; { /* Resolve declaration-specifiers from other declarators */ (ZI0) = predict_dspec (0); } if (!ZI0) goto ZL2; 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; } goto ZL0; } /*UNREACHED*/ ZL2:; switch (CURRENT_TERMINAL) { case lex_extern: { ZR1067 (ZI418, ZI693, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_export: case lex_template: { ZR1077 (ZI418, ZI693, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; 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_star: case lex_colon_Hcolon: case lex_operator: { BASE_TYPE ZI515; TYPE ZI880; CV_SPEC ZI881; DECL_SPEC ZI914; DECL_SPEC ZI916; TYPE ZI884; DECL_SPEC ZI1078; TYPE ZI1079; ACCESS_LIST ZI674; TYPE ZI578; IDENTIFIER ZI423; int ZI562; IDENTIFIER ZI463; { (ZI515) = btype_none; } { (ZI880) = NULL_type; } { (ZI881) = cv_none; } { (ZI914) = dspec_none; } { /* Combine two declaration specifiers */ DECL_SPEC d = (((ZI693) & (ZI914)) & dspec_duplicate); if (d) report (crt_loc, ERR_dcl_spec_dup (d)); (ZI916) = ((ZI693) | (ZI914)); } { /* Complete a declaration specifier and a type */ (ZI1078) = complete_dspec ((ZI916), (ZI515), (ZI880), (ZI881)); (ZI884) = complete_pre_type ((ZI515), (ZI880), (ZI881), 0); have_type_specifier = 0; } { (ZI1079) = (IS_NULL_type ((ZI418)) ? (ZI884): inject_pre_type ((ZI418), (ZI884), 1)); } { save_access (&(ZI674)); } { crt_templ_qualifier = 0; } ZR955 (ZI1079, &ZI578, &ZI423, &ZI562); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { if (type_tag ((ZI578)) == type_func_tag) { /* Look ahead for function definitions */ int def = predict_func_defn (); if (def & !have_func_declarator) adjust_param ((ZI578)); (ZI463) = make_func_decl ((ZI1078), (ZI578), (ZI423), def); is_function_next = def; } else { int def = predict_obj_defn (); (ZI463) = make_object_decl ((ZI1078), (ZI578), (ZI423), def); is_function_next = 0; } if (IS_id_type_alias ((ZI463))) { BASE_TYPE bs = DEREF_btype (id_type_alias_rep ((ZI463))); bs |= (ZI515); COPY_btype (id_type_alias_rep ((ZI463)), bs); } have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } { IGNORE clear_access ((ZI463), &(ZI674)); } { if (crt_access_list.pending) { IGNORE report_access ((ZI463)); } } ZR1080 (&ZI515, &ZI1078, &ZI1079, &ZI674, &ZI562, &ZI463); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = NULL_exp; } } break; case lex_asm: case lex_namespace: case lex_using: { { if (!IS_NULL_type ((ZI418))) report (crt_loc, ERR_temp_decl_bad ()); UNUSED ((ZI693)); } ZR1082 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO435 = ZI435; } void ZR1332 (int *ZO849) { int ZI849; switch (CURRENT_TERMINAL) { case lex_virtual: { ADVANCE_LEXER; { (ZI849) = 1; } } break; default: { { (ZI849) = 0; } } break; case 358: return; } *ZO849 = ZI849; } void ZR1205 (EXP ZI1203, EXP *ZO1204) { EXP ZI1204; ZL2_1205:; switch (CURRENT_TERMINAL) { case lex_or_H1: { EXP ZI460; EXP ZI435; { { switch (CURRENT_TERMINAL) { case lex_or_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR628 (&ZI460); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = make_or_exp ((ZI1203), (ZI460)); } ZI1203 = ZI435; goto ZL2_1205; } /*UNREACHED*/ default: { ZI1204 = ZI1203; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1204 = ZI1204; } void ZR639 (EXP *ZO435) { EXP ZI435; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI497; switch (CURRENT_TERMINAL) { case lex_throw: break; default: goto ZL1; } ADVANCE_LEXER; { { TYPE ZI418; int ZI555; { /* Resolve type-ids from expressions */ (ZI0) = predict_typeid (0); } if (!ZI0) goto ZL3; ZR552 (&ZI418, &ZI555); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI497) = make_throw_arg ((ZI418), (ZI555)); } goto ZL2; } /*UNREACHED*/ ZL3:; 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: { ZR500 (&ZI497); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI497) = NULL_exp; } } break; } ZL2:; } { (ZI435) = make_throw_exp ((ZI497), 1); } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO435 = ZI435; } void ZR1333 (DECL_SPEC *ZO497) { DECL_SPEC ZI497; switch (CURRENT_TERMINAL) { case lex_private: case lex_protected: case lex_public: { ZR832 (&ZI497); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI497) = dspec_none; } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO497 = ZI497; } void ZR1080 (BASE_TYPE *ZI515, DECL_SPEC *ZI1078, TYPE *ZI1079, ACCESS_LIST *ZI674, int *ZI562, IDENTIFIER *ZI463) { if ((CURRENT_TERMINAL) == 358) { return; } { int ZI460; EXP ZI435; { /* Resolve function definitions from other declarations */ (ZI0) = is_function_next; } if (!ZI0) goto ZL2; { if ((*ZI562)) report (crt_loc, ERR_dcl_init_bad ()); } { free_access (&(*ZI674)); } { (ZI460) = in_class_defn; in_class_defn = 0; in_function_defn++; really_in_function_defn++; begin_function ((*ZI463)); } ZR1029 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { IGNORE end_function ((*ZI463), (ZI435)); in_class_defn = (ZI460); in_function_defn--; really_in_function_defn--; } { end_declarator ((*ZI463), 1); } { RESCAN_LEXER; } goto ZL0; } /*UNREACHED*/ ZL2:; { SID_LIST_EXP ZI501; EXP ZI435; { (ZI0) = (*ZI562); } if (!ZI0) goto ZL3; { if (crt_lex_token == lex_open_Hinit) { crt_lex_token = lex_open_Hround; } else { RESCAN_LEXER; } } ZR1007 (*ZI463, &ZI501); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { MAKE_exp_initialiser (type_void, (ZI501), NULL_list (OFFSET), 0, 0, 0, (ZI435)); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { int def = init_object ((*ZI463), (ZI435)); if (do_dump) dump_declare ((*ZI463), &decl_loc, def); } { if (crt_access_list.pending) { IGNORE report_access ((*ZI463)); } } { end_declarator ((*ZI463), 1); } ZR1081 (ZI515, ZI1078, ZI1079, ZI674); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { free_access (&(*ZI674)); } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; goto ZL0; } /*UNREACHED*/ ZL3:; switch (CURRENT_TERMINAL) { case lex_assign: { EXP ZI435; ADVANCE_LEXER; ZR1003 (*ZI463, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { int def = init_object ((*ZI463), (ZI435)); if (do_dump) dump_declare ((*ZI463), &decl_loc, def); } { if (crt_access_list.pending) { IGNORE report_access ((*ZI463)); } } { end_declarator ((*ZI463), 1); } ZR1081 (ZI515, ZI1078, ZI1079, ZI674); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { free_access (&(*ZI674)); } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_comma: case lex_semicolon: { EXP ZI435; { (ZI435) = NULL_exp; } { int def = init_object ((*ZI463), (ZI435)); if (do_dump) dump_declare ((*ZI463), &decl_loc, def); } { if (crt_access_list.pending) { IGNORE report_access ((*ZI463)); } } { end_declarator ((*ZI463), 1); } ZR1081 (ZI515, ZI1078, ZI1079, ZI674); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { free_access (&(*ZI674)); } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; default: goto ZL1; } return; ZL1:; SAVE_LEXER (358); return; ZL0:; } void parse_stmt (EXP *ZO435) { EXP ZI435; if ((CURRENT_TERMINAL) == 358) { return; } { DECL_SPEC ZI693; TYPE ZI418; 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, &ZI497); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = (ZI497); in_declaration--; } { unreached_fall = 1; } 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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_colon_Hcolon: { ADVANCE_LEXER; ZR1479 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } 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 ZI497; int ZI674; { 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_complex_Hstmt: { EXP ZI497; { IDENTIFIER id = crt_token->pp_data.tok.id; PPTOKEN *args = crt_token->pp_data.tok.args; ZI497 = parse_exp_token (id, args); RESCAN_LEXER; } ADVANCE_LEXER; { (ZI435) = make_exp_stmt ((ZI497)); } } 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 ZI497; int ZI674; { 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; { 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_full_Hname: { NAMESPACE ZI429; { ZI429 = crt_token->pp_data.ns; } ADVANCE_LEXER; ZR1478 (&ZI429, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_identifier: { IDENTIFIER ZI1469; { ZI1469 = crt_token->pp_data.id.use; } ADVANCE_LEXER; ZR1474 (&ZI1469, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_inset_Hstart: { ADVANCE_LEXER; ZR1444 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } 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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { IDENTIFIER ZI1473; { ZI1473 = crt_token->pp_data.id.use; } ADVANCE_LEXER; ZR1474 (&ZI1473, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_nested_Hname: { NAMESPACE ZI429; { ZI429 = crt_token->pp_data.ns; } ADVANCE_LEXER; ZR1477 (&ZI429, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } 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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_semicolon: { ADVANCE_LEXER; { (ZI435) = NULL_exp; } } 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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_statement_Hname: { IDENTIFIER ZI1475; { ZI1475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; ZR1476 (&ZI1475, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } 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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; { 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; { 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_type_Hname: { IDENTIFIER ZI1471; { ZI1471 = crt_token->pp_data.id.use; } ADVANCE_LEXER; ZR1472 (&ZI1471, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } 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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; { { 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_open_Hbrace_H1: { ZR682 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_reachable: case lex_unreachable: { ZR780 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_case: case lex_default: case lex_fall: { ZR666 (); ZR1445 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_set: case lex_unused: { EXP ZI1439; EXP ZI497; int ZI674; ZR647 (&ZI1439); ZR1441 (&ZI1439, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_do: case lex_for: case lex_while: { ZR742 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_break: case lex_continue: case lex_goto: case lex_return: { ZR756 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } 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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; { { 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; 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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_hash_Hif: case lex_if: case lex_switch: { ZR717 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_throw: { EXP ZI1292; EXP ZI497; int ZI674; ZR639 (&ZI1292); ZR1294 (&ZI1292, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_try: { ZR775 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } 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 ZI497; int ZI674; { (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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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 ZI497; int ZI674; { (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, &ZI497); 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; } } { (ZI435) = make_exp_stmt ((ZI497)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_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) = NULL_exp; } } ZL0:; *ZO435 = ZI435; } void ZR1092 (DECL_SPEC ZI693, TYPE ZI501, BASE_TYPE ZI484, ACCESS_LIST ZI674, int ZI724) { if ((CURRENT_TERMINAL) == 358) { return; } ZL2_1092:; { IDENTIFIER ZI463; ZR1089 (ZI693, ZI501, ZI484, ZI674, ZI724, &ZI463); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { end_declarator ((ZI463), 1); } { switch (CURRENT_TERMINAL) { case lex_comma: { int ZI555; ADVANCE_LEXER; { (ZI555) = 0; } { crt_templ_qualifier = 0; } ZI724 = ZI555; goto ZL2_1092; } /*UNREACHED*/ default: break; } } } return; ZL1:; SAVE_LEXER (358); return; } void ZR1081 (BASE_TYPE *ZI515, DECL_SPEC *ZI1078, TYPE *ZI1079, ACCESS_LIST *ZI674) { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; { crt_templ_qualifier = 0; } ZR1014 (*ZI1078, *ZI515, *ZI1079, *ZI674); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: break; } return; ZL1:; SAVE_LEXER (358); return; } void ZR552 (TYPE *ZO418, int *ZO555) { TYPE ZI418; int ZI555; if ((CURRENT_TERMINAL) == 358) { return; } { int ZI558; BASE_TYPE ZI515; TYPE ZI501; CV_SPEC ZI788; TYPE ZI484; { (ZI558) = no_type_defns; } ZR878 (&ZI515, &ZI501, &ZI788); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI484) = complete_pre_type ((ZI515), (ZI501), (ZI788), 1); have_type_specifier = 0; } ZR960 (ZI484, &ZI418); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI555) = no_type_defns - (ZI558); } { object_type ((ZI418), null_tag); } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO418 = ZI418; *ZO555 = ZI555; } void ZR647 (EXP *ZO435) { EXP ZI435; switch (CURRENT_TERMINAL) { case lex_set: { EXP ZI497; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR495 (&ZI497); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = make_set_exp ((ZI497)); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_unused: { EXP ZI497; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR495 (&ZI497); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = make_unused_exp ((ZI497)); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO435 = ZI435; } void ZR1209 (EXP ZI1207, EXP *ZO1208) { EXP ZI1208; ZL2_1209:; switch (CURRENT_TERMINAL) { case lex_xor_H1: { EXP ZI460; EXP ZI435; { { switch (CURRENT_TERMINAL) { case lex_xor_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR626 (&ZI460); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = make_xor_exp ((ZI1207), (ZI460)); } ZI1207 = ZI435; goto ZL2_1209; } /*UNREACHED*/ default: { ZI1208 = ZI1207; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1208 = ZI1208; } void ZR690 (TYPE ZI418, DECL_SPEC ZI693) { if ((CURRENT_TERMINAL) == 358) { return; } { 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; { /* Resolve declaration-specifiers from other declarators */ (ZI0) = predict_dspec (0); } if (!ZI0) goto ZL2; 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; } goto ZL0; } /*UNREACHED*/ ZL2:; switch (CURRENT_TERMINAL) { 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_star: case lex_colon_Hcolon: case lex_operator: { BASE_TYPE ZI515; TYPE ZI880; CV_SPEC ZI881; DECL_SPEC ZI914; DECL_SPEC ZI916; TYPE ZI884; DECL_SPEC ZI1078; TYPE ZI1079; ACCESS_LIST ZI674; TYPE ZI578; IDENTIFIER ZI423; int ZI562; IDENTIFIER ZI463; { (ZI515) = btype_none; } { (ZI880) = NULL_type; } { (ZI881) = cv_none; } { (ZI914) = dspec_none; } { /* Combine two declaration specifiers */ DECL_SPEC d = (((ZI693) & (ZI914)) & dspec_duplicate); if (d) report (crt_loc, ERR_dcl_spec_dup (d)); (ZI916) = ((ZI693) | (ZI914)); } { /* Complete a declaration specifier and a type */ (ZI1078) = complete_dspec ((ZI916), (ZI515), (ZI880), (ZI881)); (ZI884) = complete_pre_type ((ZI515), (ZI880), (ZI881), 0); have_type_specifier = 0; } { (ZI1079) = (IS_NULL_type ((ZI418)) ? (ZI884): inject_pre_type ((ZI418), (ZI884), 1)); } { save_access (&(ZI674)); } { crt_templ_qualifier = 0; } ZR955 (ZI1079, &ZI578, &ZI423, &ZI562); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { if (type_tag ((ZI578)) == type_func_tag) { /* Look ahead for function definitions */ int def = predict_func_defn (); if (def & !have_func_declarator) adjust_param ((ZI578)); (ZI463) = make_func_decl ((ZI1078), (ZI578), (ZI423), def); is_function_next = def; } else { int def = predict_obj_defn (); (ZI463) = make_object_decl ((ZI1078), (ZI578), (ZI423), def); is_function_next = 0; } if (IS_id_type_alias ((ZI463))) { BASE_TYPE bs = DEREF_btype (id_type_alias_rep ((ZI463))); bs |= (ZI515); COPY_btype (id_type_alias_rep ((ZI463)), bs); } have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } { IGNORE clear_access ((ZI463), &(ZI674)); } { if (crt_access_list.pending) { IGNORE report_access ((ZI463)); } } ZR1080 (&ZI515, &ZI1078, &ZI1079, &ZI674, &ZI562, &ZI463); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: goto ZL1; } return; ZL1:; SAVE_LEXER (358); return; ZL0:; } void ZR1033 (void) { if ((CURRENT_TERMINAL) == 358) { return; } { DECL_SPEC ZI693; TYPE ZI418; { { switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { (ZI693) = dspec_none; } { (ZI418) = NULL_type; } ZR1032 (ZI418, ZI693); { if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { switch (CURRENT_TERMINAL) { case lex_close_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } } return; ZL1:; SAVE_LEXER (358); return; } void ZR455 (int *ZO454) { int ZI454; switch (CURRENT_TERMINAL) { case lex_delete: { ADVANCE_LEXER; ZR1326 (&ZI454); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_new: { ADVANCE_LEXER; ZR1325 (&ZI454); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_open_Hround: { ADVANCE_LEXER; ZR417 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI454) = lex_func_Hop; } } break; case lex_question: { ADVANCE_LEXER; ZR420 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI454) = lex_cond_Hop; } { /* Illegal overloaded operator */ report (crt_loc, ERR_over_oper_bad ((ZI454))); } } break; case lex_open_Hsquare_H1: { { { switch (CURRENT_TERMINAL) { case lex_open_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR419 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI454) = lex_array_Hop; } } break; case lex_and_H1: case lex_and_Heq_H1: case lex_arrow: case lex_assign: case lex_colon: case lex_comma: case lex_compl_H1: case lex_div: case lex_div_Heq: case lex_dot: case lex_eq: case lex_greater: case lex_greater_Heq: case lex_less: case lex_less_Heq: case lex_logical_Hand_H1: case lex_logical_Hor_H1: case lex_lshift: case lex_lshift_Heq: case lex_minus: case lex_minus_Heq: case lex_minus_Hminus: case lex_not_H1: case lex_not_Heq_H1: case lex_or_H1: case lex_or_Heq_H1: case lex_plus: case lex_plus_Heq: case lex_plus_Hplus: case lex_rem: case lex_rem_Heq: case lex_rshift: case lex_rshift_Heq: case lex_star: case lex_star_Heq: case lex_xor_H1: case lex_xor_Heq_H1: case lex_arrow_Hstar: case lex_colon_Hcolon: case lex_dot_Hstar: case lex_abs: case lex_max: case lex_min: case lex_sizeof: case lex_typeid: case lex_alignof: case lex_vtable: { { (ZI454) = crt_lex_token; } ZR1324 (&ZI454); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO454 = ZI454; } void ZR958 (EXP *ZO435) { EXP ZI435; 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_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: { ZR655 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI435) = NULL_exp; } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO435 = ZI435; } void ZR420 (void) { if ((CURRENT_TERMINAL) == 358) { return; } { switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto ZL1; } ADVANCE_LEXER; } return; ZL1:; { int ZI418; { (ZI418) = lex_colon; } { /* Expected symbol */ int p = primary_form (crt_lex_token); if (p != (ZI418)) report (crt_loc, ERR_lex_expect ((ZI418))); } } } void ZR502 (SID_LIST_EXP *ZO501) { SID_LIST_EXP ZI501; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI435; SID_LIST_EXP ZI484; ZR500 (&ZI435); ZR503 (&ZI484); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { CONS_exp ((ZI435), (ZI484), (ZI501)); } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO501 = ZI501; } void ZR1213 (EXP ZI1211, EXP *ZO1212) { EXP ZI1212; ZL2_1213:; switch (CURRENT_TERMINAL) { case lex_and_H1: { EXP ZI460; EXP ZI435; { { switch (CURRENT_TERMINAL) { case lex_and_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR624 (&ZI460); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = make_and_exp ((ZI1211), (ZI460)); } ZI1211 = ZI435; goto ZL2_1213; } /*UNREACHED*/ default: { ZI1212 = ZI1211; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1212 = ZI1212; } void ZR500 (EXP *ZO435) { EXP ZI435; 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_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: { EXP ZI1268; ZR634 (&ZI1268); ZR1269 (&ZI1268, &ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_throw: { ZR639 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO435 = ZI435; } void ZR504 (SID_LIST_EXP *ZO501) { SID_LIST_EXP ZI501; 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: { ZR502 (&ZI501); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI501) = NULL_list (EXP); } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO501 = ZI501; } void ZR632 (EXP *ZO1200) { EXP ZI1200; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI435; ZR630 (&ZI435); ZR1201 (ZI435, &ZI1200); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1200 = ZI1200; } void ZR756 (EXP *ZO435) { EXP ZI435; switch (CURRENT_TERMINAL) { case lex_break: { int ZI674; ADVANCE_LEXER; { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI435) = make_break_stmt (); } { unreached_fall = 1; } ZR422 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_continue: { int ZI674; ADVANCE_LEXER; { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI435) = make_continue_stmt (); } { unreached_fall = 1; } ZR422 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_goto: { int ZI674; ADVANCE_LEXER; { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } ZR755 (&ZI435); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { unreached_fall = 1; } ZR422 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_return: { int ZI674; EXP ZI497; ADVANCE_LEXER; { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { 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_set: case lex_size_Ht: case lex_unused: case lex_vtable: case lex_inset_Hstart: { ZR495 (&ZI497); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI497) = NULL_exp; } } break; } } { (ZI435) = make_return_stmt ((ZI497), lex_return); } { unreached_fall = 1; } ZR422 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO435 = ZI435; } void ZR1344 (TYPE *ZI418, BASE_TYPE *ZI515, TYPE *ZI880, CV_SPEC *ZI881, DECL_SPEC *ZI916) { switch (CURRENT_TERMINAL) { case lex_semicolon: { { IGNORE empty_decl ((*ZI916), (*ZI418), (*ZI515), (*ZI880), (*ZI881), last_lex_token, 1); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; have_type_specifier = 0; } { if (crt_access_list.pending) { IDENTIFIER id = DEREF_id (ctype_name (crt_class)); IGNORE report_access (id); } } ADVANCE_LEXER; } break; 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_colon: case lex_open_Hround: case lex_star: case lex_colon_Hcolon: case lex_operator: { TYPE ZI884; DECL_SPEC ZI1078; TYPE ZI1079; ACCESS_LIST ZI674; int ZI724; IDENTIFIER ZI463; { /* Complete a declaration specifier and a type */ (ZI1078) = complete_dspec ((*ZI916), (*ZI515), (*ZI880), (*ZI881)); (ZI884) = complete_pre_type ((*ZI515), (*ZI880), (*ZI881), 0); have_type_specifier = 0; } { (ZI1079) = (IS_NULL_type ((*ZI418)) ? (ZI884): inject_pre_type ((*ZI418), (ZI884), 1)); } { save_access (&(ZI674)); } { (ZI724) = 1; } { crt_templ_qualifier = 0; } ZR1089 (ZI1078, ZI1079, *ZI515, ZI674, ZI724, &ZI463); ZR1097 (ZI515, &ZI1078, &ZI1079, &ZI674, &ZI463); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (358); return; } void ZR1217 (EXP ZI1215, EXP *ZO1216) { EXP ZI1216; ZL2_1217:; switch (CURRENT_TERMINAL) { case lex_max: case lex_min: { int ZI454; EXP ZI460; EXP ZI435; { (ZI454) = crt_lex_token; } { switch (CURRENT_TERMINAL) { case lex_max: { ADVANCE_LEXER; } break; case lex_min: { ADVANCE_LEXER; } break; default: goto ZL1; } } ZR621 (&ZI460); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI435) = make_mult_exp ((ZI454), (ZI1215), (ZI460)); } ZI1215 = ZI435; goto ZL2_1217; } /*UNREACHED*/ default: { ZI1216 = ZI1215; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1216 = ZI1216; } void ZR556 (TYPE *ZO418, EXP *ZO435, int *ZO555) { TYPE ZI418; EXP ZI435; int ZI555; if ((CURRENT_TERMINAL) == 358) { return; } { switch (CURRENT_TERMINAL) { case lex_less: break; default: goto ZL1; } ADVANCE_LEXER; ZR552 (&ZI418, &ZI555); switch (CURRENT_TERMINAL) { case lex_greater: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR495 (&ZI435); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO418 = ZI418; *ZO435 = ZI435; *ZO555 = ZI555; } void ZR702 (EXP *ZO1190, EXP *ZO1191, int *ZO1192) { EXP ZI1190; EXP ZI1191; int ZI1192; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI562; EXP ZI501; int ZI674; EXP ZI497; EXP ZI435; switch (CURRENT_TERMINAL) { case lex_hash_Hif: { ZI562 = crt_token->pp_data.exp; } break; default: goto ZL1; } ADVANCE_LEXER; { EXP c = crt_hash_cond; crt_hash_cond = make_if_cond ((ZI562), c); (ZI501) = c; } { (ZI674) = unreached_code; if ((ZI674)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } ZR682 (&ZI497); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { unreached_prev = (ZI674); } { (ZI435) = begin_hash_if_stmt ((ZI562), (ZI497)); } ZR1193 (ZI435, ZI501, ZI674, &ZI1190, &ZI1191, &ZI1192); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO1190 = ZI1190; *ZO1191 = ZI1191; *ZO1192 = ZI1192; } /* END OF FILE */