/* * Automatically generated from the files: * /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/producers/c/syntax/syntax.sid * and * /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/producers/c/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 "exp_ops.h" #include "hashid_ops.h" #include "id_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; /* * 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 (EXP *ZO892, EXP *ZO893, int *ZO894) { EXP ZI892; EXP ZI893; int ZI894; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI471; EXP ZI424; int ZI541; EXP ZI420; EXP ZI408; switch (CURRENT_TERMINAL) { case lex_hash_Hif: { ZI471 = crt_token->pp_data.exp; } break; default: goto ZL1; } ADVANCE_LEXER; { EXP c = crt_hash_cond; crt_hash_cond = make_if_cond ((ZI471), c); (ZI424) = c; } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } ZR556 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { unreached_prev = (ZI541); } { (ZI408) = begin_hash_if_stmt ((ZI471), (ZI420)); } ZR895 (ZI408, ZI424, ZI541, &ZI892, &ZI893, &ZI894); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO892 = ZI892; *ZO893 = ZI893; *ZO894 = ZI894; } void ZR639 (CV_SPEC *ZO637) { CV_SPEC ZI637; if ((CURRENT_TERMINAL) == 358) { return; } { CV_SPEC ZI420; ZR638 (&ZI420); { switch (CURRENT_TERMINAL) { case lex_const: case lex_volatile: case lex_restrict: { CV_SPEC ZI452; ZR639 (&ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { CV_SPEC c = ((ZI420) & (ZI452)); if (c) report (crt_loc, ERR_dcl_type_cv_dup (c)); (ZI637) = ((ZI420) | (ZI452)); } } break; default: { ZI637 = ZI420; } break; case 358: RESTORE_LEXER; goto ZL1; } } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO637 = ZI637; } void ZR1091 (IDENTIFIER *ZI403, EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_and_H1: case lex_and_Heq_H1: case lex_arrow: case lex_assign: case lex_comma: 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_Heq_H1: case lex_open_Hround: case lex_open_Hsquare_H1: case lex_or_H1: case lex_or_Heq_H1: case lex_plus: case lex_plus_Heq: case lex_plus_Hplus: case lex_question: case lex_rem: case lex_rem_Heq: case lex_rshift: case lex_rshift_Heq: case lex_semicolon: case lex_star: case lex_star_Heq: case lex_xor_H1: case lex_xor_Heq_H1: case lex_max: case lex_min: { EXP ZI1022; EXP ZI1023; EXP ZI1035; EXP ZI420; int ZI541; { (ZI1022) = make_id_exp ((*ZI403)); } ZR943 (ZI1022, &ZI1023); ZR1015 (&ZI1023, &ZI1035); ZR1037 (&ZI1035, &ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI408) = make_exp_stmt ((ZI420)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_colon: { EXP ZI420; EXP ZI452; { if (unreached_code) unreached_fall = 0; } { (ZI420) = begin_label_stmt ((*ZI403), lex_identifier); } ADVANCE_LEXER; ZR532 (&ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI408) = end_label_stmt ((ZI420), (ZI452)); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR557 (EXP *ZO408) { EXP ZI408; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI471; int ZI552; EXP ZI452; EXP ZI541; EXP ZI420; { (ZI471) = begin_compound_stmt (1); } { if (option (OPT_func_id) == OPTION_ALLOW) { declare_func_id (); } } { { switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { COPY_int (exp_sequence_block ((ZI471)), 2); (ZI552) = 1; } ZR553 (ZI471, ZI552, &ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI541) = fall_return_stmt (); } { (ZI420) = add_compound_stmt ((ZI452), (ZI541)); } { { switch (CURRENT_TERMINAL) { case lex_close_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { (ZI408) = end_compound_stmt ((ZI420)); } { RESCAN_LEXER; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR1092 (IDENTIFIER *ZI403, EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { default: { EXP ZI420; { (ZI420) = make_id_exp ((*ZI403)); } { (ZI408) = make_exp_stmt ((ZI420)); } } break; case lex_colon: { EXP ZI420; EXP ZI452; { if (unreached_code) unreached_fall = 0; } { (ZI420) = begin_label_stmt ((*ZI403), lex_identifier); } ADVANCE_LEXER; ZR532 (&ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI408) = end_label_stmt ((ZI420), (ZI452)); } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR642 (CV_SPEC *ZO637) { CV_SPEC ZI637; switch (CURRENT_TERMINAL) { case lex_const: case lex_volatile: case lex_restrict: { ZR639 (&ZI637); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI637) = cv_none; } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO637 = ZI637; } void ZR533 (void) { switch (CURRENT_TERMINAL) { case lex_fall: { ADVANCE_LEXER; ZR1109 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: break; } return; ZL1:; SAVE_LEXER (358); return; } void ZR638 (CV_SPEC *ZO637) { CV_SPEC ZI637; switch (CURRENT_TERMINAL) { case lex_const: { ADVANCE_LEXER; { (ZI637) = cv_const; } } break; case lex_restrict: { ADVANCE_LEXER; { (ZI637) = cv_restrict; } } break; case lex_volatile: { ADVANCE_LEXER; { (ZI637) = cv_volatile; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO637 = ZI637; } void ZR473 (void) { switch (CURRENT_TERMINAL) { case lex_abs: { ADVANCE_LEXER; } break; case lex_minus: { ADVANCE_LEXER; } break; case lex_plus: { ADVANCE_LEXER; } break; case lex_compl_H1: { { { switch (CURRENT_TERMINAL) { case lex_compl_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } } break; case 358: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (358); return; } void ZR834 (TYPE ZI424, BASE_TYPE ZI427) { switch (CURRENT_TERMINAL) { case lex_open_Hround: { TYPE ZI1048; IDENTIFIER ZI1049; TYPE ZI1045; IDENTIFIER ZI403; TYPE ZI399; ADVANCE_LEXER; ZR752 (&ZI1048, &ZI1049); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { if (IS_NULL_type ((ZI1048))) { report (crt_loc, ERR_dcl_meaning_paren ()); } } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR878 (ZI1048, ZI1049, &ZI1045, &ZI403); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI399) = (IS_NULL_type ((ZI1045)) ? (ZI424): inject_pre_type ((ZI1045), (ZI424), 1)); } { IDENTIFIER id = make_member_decl (dspec_none, (ZI399), (ZI403), 0); if (do_dump) dump_declare (id, &decl_loc, 0); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } } break; case lex_identifier: case lex_type_Hname: case lex_statement_Hname: { IDENTIFIER ZI1052; { switch (CURRENT_TERMINAL) { case lex_identifier: { { ZI1052 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { ZI1052 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { ZI1052 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto ZL1; } } ZR1053 (&ZI424, &ZI427, &ZI1052); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_star: { TYPE ZI1046; TYPE ZI1047; IDENTIFIER ZI403; TYPE ZI1045; TYPE ZI399; ZR741 (&ZI1046); ZR752 (&ZI1047, &ZI403); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1045) = (IS_NULL_type ((ZI1047)) ? (ZI1046): inject_pre_type ((ZI1047), (ZI1046), 0)); } { (ZI399) = (IS_NULL_type ((ZI1045)) ? (ZI424): inject_pre_type ((ZI1045), (ZI424), 1)); } { IDENTIFIER id = make_member_decl (dspec_none, (ZI399), (ZI403), 0); if (do_dump) dump_declare (id, &decl_loc, 0); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } } break; case lex_colon: { IDENTIFIER ZI403; EXP ZI471; TYPE ZI399; { HASHID nm = lookup_anon (); (ZI403) = DEREF_id (hashid_id (nm)); } { IDENTIFIER pid = underlying_id ((ZI403)); DEREF_loc (id_loc (pid), decl_loc); } ADVANCE_LEXER; ZR522 (&ZI471); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* Check for anonymous bitfields */ HASHID nm = DEREF_hashid (id_name ((ZI403))); int z = IS_hashid_anon (nm); (ZI399) = make_bitfield_type ((ZI424), (ZI427), (ZI471), z); } { IDENTIFIER id = make_member_decl (dspec_none, (ZI399), (ZI403), 0); if (do_dump) dump_declare (id, &decl_loc, 0); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } } break; case 358: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (358); return; } void ZR973 (EXP *ZO408) { EXP ZI408; if ((CURRENT_TERMINAL) == 358) { return; } { TYPE ZI399; int ZI476; EXP ZI420; { /* Resolve type-ids from expressions */ (ZI0) = predict_typeid (0); } if (!ZI0) goto ZL2; ZR448 (&ZI399, &ZI476); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; ZR463 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* n is the number of type definitions in t */ (ZI408) = make_cast_exp ((ZI399), (ZI420), (ZI476)); } goto ZL0; } /*UNREACHED*/ ZL2:; switch (CURRENT_TERMINAL) { case lex_identifier: 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_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_abs: case lex_sizeof: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: case lex_set: case lex_unused: case lex_inset_Hstart: { EXP ZI420; EXP ZI972; { IGNORE incr_value (OPT_VAL_paren_depth); } ZR418 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI972) = make_paren_exp ((ZI420)); decr_value (OPT_VAL_paren_depth); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR943 (ZI972, &ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR798 (IDENTIFIER ZI552, EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_identifier: 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_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_abs: case lex_sizeof: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: { ZR520 (&ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_open_Hbrace_H1: { SID_LIST_EXP ZI424; { { switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR1082 (&ZI552, &ZI424); { if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { switch (CURRENT_TERMINAL) { case lex_close_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { /* The expression type is a dummy */ MAKE_exp_aggregate (type_void, (ZI424), NULL_list (OFFSET), (ZI408)); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR483 (EXP *ZO934) { EXP ZI934; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI408; ZR480 (&ZI408); ZR935 (ZI408, &ZI934); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO934 = ZI934; } void ZR761 (TYPE *ZO876, IDENTIFIER *ZO877) { TYPE ZI876; IDENTIFIER ZI877; switch (CURRENT_TERMINAL) { case lex_open_Hround: { TYPE ZI399; IDENTIFIER ZI403; ADVANCE_LEXER; ZR752 (&ZI399, &ZI403); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { if (IS_NULL_type ((ZI399))) { report (crt_loc, ERR_dcl_meaning_paren ()); } } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR878 (ZI399, ZI403, &ZI876, &ZI877); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_identifier: case lex_type_Hname: case lex_statement_Hname: { IDENTIFIER ZI403; TYPE ZI399; { switch (CURRENT_TERMINAL) { case lex_identifier: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto ZL1; } } { (ZI399) = NULL_type; } { IDENTIFIER pid = underlying_id ((ZI403)); DEREF_loc (id_loc (pid), decl_loc); } ZR878 (ZI399, ZI403, &ZI876, &ZI877); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO876 = ZI876; *ZO877 = ZI877; } void ZR585 (EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_if: { unsigned ZI586; int ZI541; EXP ZI471; EXP ZI420; EXP ZI587; EXP ZI452; EXP ZI552; EXP ZI590; ADVANCE_LEXER; { (ZI586) = crt_condition; } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } ZR398 (); ZR418 (&ZI471); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI420) = begin_if_stmt ((ZI471)); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI587) = begin_compound_stmt (1); } ZR561 (ZI587, &ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { unreached_prev = (ZI541); } { (ZI552) = cont_if_stmt ((ZI420), (ZI452)); } { { EXP ZI589; switch (CURRENT_TERMINAL) { case lex_else: break; default: goto ZL3; } ADVANCE_LEXER; { check_empty_stmt (lex_else); } { (ZI589) = begin_compound_stmt (1); } ZR561 (ZI589, &ZI590); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL3; } } goto ZL2; ZL3:; { { report (crt_loc, ERR_stmt_if_no_else ()); (ZI590) = NULL_exp; } } ZL2:; } { unreached_prev = (ZI541); } { (ZI408) = end_if_stmt ((ZI552), (ZI590)); } { crt_condition = (ZI586); } { unreached_fall = 1; } } break; case lex_switch: { int ZI541; EXP ZI471; EXP ZI420; int ZI592; EXP ZI587; EXP ZI452; ADVANCE_LEXER; { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR418 (&ZI471); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI420) = begin_switch_stmt ((ZI471)); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_exhaustive: { ADVANCE_LEXER; { (ZI592) = 1; } } break; default: { { (ZI592) = 0; } } break; } } { (ZI587) = begin_compound_stmt (1); } ZR561 (ZI587, &ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { unreached_prev = (ZI541); } { (ZI408) = end_switch_stmt ((ZI420), (ZI452), (ZI592)); } { unreached_fall = 1; } } break; case lex_hash_Hif: { ZR574 (&ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { unreached_fall = 1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR1104 (EXP *ZI1103, EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_inset_Hend: { SID_LIST_EXP ZI427; SID_LIST_EXP ZI424; EXP ZI420; int ZI541; ADVANCE_LEXER; ZR519 (&ZI427); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { CONS_exp ((*ZI1103), (ZI427), (ZI424)); } { (ZI420) = make_comma_exp ((ZI424)); } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI408) = make_exp_stmt ((ZI420)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_semicolon: { int ZI541; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_inset_Hend: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI408) = make_exp_stmt ((*ZI1103)); } { unreached_fall = 1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR418 (EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_identifier: 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_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_abs: case lex_sizeof: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: { EXP ZI1035; ZR423 (&ZI1035); ZR1037 (&ZI1035, &ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_set: case lex_unused: { EXP ZI420; SID_LIST_EXP ZI427; SID_LIST_EXP ZI424; ZR514 (&ZI420); ZR519 (&ZI427); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { CONS_exp ((ZI420), (ZI427), (ZI424)); } { (ZI408) = make_comma_exp ((ZI424)); } } break; case lex_inset_Hstart: { EXP ZI420; SID_LIST_EXP ZI427; SID_LIST_EXP ZI424; ZR515 (&ZI420); ZR519 (&ZI427); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { CONS_exp ((ZI420), (ZI427), (ZI424)); } { (ZI408) = make_comma_exp ((ZI424)); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR553 (EXP ZI471, int ZI552, EXP *ZO408) { EXP ZI408; if ((CURRENT_TERMINAL) == 358) { return; } ZL2_553:; { EXP ZI420; EXP ZI452; { /* Resolve declaration-statements from expression-statements */ int b = predict_decl (); if (b) { if (!(ZI552)) report (crt_loc, ERR_stmt_dcl_start ()); in_declaration++; } (ZI0) = b; } if (!ZI0) goto ZL3; ZR564 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { in_declaration--; (ZI420) = NULL_exp; } { unreached_fall = 1; } { (ZI452) = add_compound_stmt ((ZI471), (ZI420)); } ZI471 = ZI452; goto ZL2_553; } /*UNREACHED*/ ZL3:; switch (CURRENT_TERMINAL) { case lex_identifier: case lex_type_Hname: case lex_statement_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_Hstmt: case lex_hash_Hif: case lex_and_H1: case lex_compl_H1: case lex_minus: case lex_minus_Hminus: case lex_not_H1: case lex_open_Hbrace_H1: case lex_open_Hround: case lex_plus: case lex_plus_Hplus: case lex_semicolon: case lex_star: case lex_abs: case lex_break: case lex_case: case lex_continue: case lex_default: case lex_do: case lex_for: case lex_goto: case lex_if: case lex_return: case lex_sizeof: case lex_switch: case lex_while: case lex_asm: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: case lex_fall: case lex_reachable: case lex_set: case lex_unreachable: case lex_unused: case lex_inset_Hstart: { EXP ZI420; EXP ZI452; int ZI554; ZR532 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI452) = add_compound_stmt ((ZI471), (ZI420)); } { (ZI554) = 0; } ZI471 = ZI452; ZI552 = ZI554; goto ZL2_553; } /*UNREACHED*/ default: { ZI408 = ZI471; } break; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR560 (EXP ZI471, EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: { int ZI552; { { switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { COPY_int (exp_sequence_block ((ZI471)), 2); (ZI552) = 1; } ZR553 (ZI471, ZI552, &ZI408); { if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { switch (CURRENT_TERMINAL) { case lex_close_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } } break; case lex_identifier: case lex_type_Hname: case lex_statement_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_Hstmt: case lex_hash_Hif: 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_semicolon: case lex_star: case lex_abs: case lex_break: case lex_case: case lex_continue: case lex_default: case lex_do: case lex_for: case lex_goto: case lex_if: case lex_return: case lex_sizeof: case lex_switch: case lex_while: case lex_asm: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: case lex_fall: case lex_reachable: case lex_set: case lex_unreachable: case lex_unused: case lex_inset_Hstart: { EXP ZI420; ZR559 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI408) = add_compound_stmt ((ZI471), (ZI420)); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR718 (DECL_SPEC *ZO611) { DECL_SPEC ZI611; if ((CURRENT_TERMINAL) == 358) { return; } { switch (CURRENT_TERMINAL) { case lex_inline: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI611) = dspec_inline; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO611 = ZI611; } void ZR532 (EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: { ZR556 (&ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_identifier: case lex_type_Hname: case lex_statement_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_Hstmt: case lex_hash_Hif: 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_semicolon: case lex_star: case lex_abs: case lex_break: case lex_case: case lex_continue: case lex_default: case lex_do: case lex_for: case lex_goto: case lex_if: case lex_return: case lex_sizeof: case lex_switch: case lex_while: case lex_asm: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: case lex_fall: case lex_reachable: case lex_set: case lex_unreachable: case lex_unused: case lex_inset_Hstart: { ZR559 (&ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR1109 (void) { switch (CURRENT_TERMINAL) { case lex_semicolon: { ADVANCE_LEXER; { unreached_fall = 0; } } break; default: { { unreached_fall = 0; } } break; case 358: return; } } void ZR769 (TYPE *ZO861) { TYPE ZI861; switch (CURRENT_TERMINAL) { case lex_open_Hround: { ADVANCE_LEXER; ZR1070 (&ZI861); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_weak: { IDENTIFIER ZI403; int ZI757; TYPE ZI399; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI403) = NULL_id; } { func_type_defn (0); begin_param ((ZI403)); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 0; } ZR760 (&ZI757); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI399) = make_func_type (NULL_type, ((ZI757) | FUNC_WEAK), cv_c, empty_type_set); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { end_param (); have_type_declaration = TYPE_DECL_NONE; have_func_declarator = 1; } ZR862 (ZI399, &ZI861); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_open_Hsquare_H1: { EXP ZI408; TYPE ZI399; { { switch (CURRENT_TERMINAL) { case lex_open_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR759 (&ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { NAT n = make_array_dim ((ZI408)); MAKE_type_array (cv_none, NULL_type, n, (ZI399)); } { { switch (CURRENT_TERMINAL) { case lex_close_Hsquare_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } ZR862 (ZI399, &ZI861); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO861 = ZI861; } void ZR608 (EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_do: { unsigned ZI586; int ZI541; EXP ZI420; EXP ZI587; EXP ZI452; EXP ZI609; EXP ZI471; ADVANCE_LEXER; { (ZI586) = crt_condition; } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI420) = begin_do_stmt (); } { (ZI587) = begin_compound_stmt (1); } ZR561 (ZI587, &ZI452); switch (CURRENT_TERMINAL) { case lex_while: 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; ZR418 (&ZI609); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI471) = bind_temporary ((ZI609)); } { unreached_prev = (ZI541); } { (ZI408) = end_do_stmt ((ZI420), (ZI452), (ZI471)); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { crt_condition = (ZI586); } { unreached_fall = 1; } ZR400 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_for: { unsigned ZI586; int ZI541; EXP ZI590; EXP ZI420; EXP ZI610; EXP ZI471; EXP ZI611; EXP ZI452; EXP ZI612; EXP ZI552; ADVANCE_LEXER; { (ZI586) = crt_condition; } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { in_for_decl++; (ZI590) = begin_for_stmt (); } ZR604 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI610) = init_for_stmt ((ZI590), &(ZI420)); in_for_decl--; } ZR605 (&ZI471); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI611) = begin_compound_stmt (1); } ZR607 (&ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI612) = cond_for_stmt ((ZI610), (ZI471), (ZI452)); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { mark_compound_stmt ((ZI611)); } ZR561 (ZI611, &ZI552); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { unreached_prev = (ZI541); } { (ZI408) = end_for_stmt ((ZI612), (ZI552)); } { crt_condition = (ZI586); } { unreached_fall = 1; } { RESCAN_LEXER; } } break; case lex_while: { unsigned ZI586; int ZI541; EXP ZI609; EXP ZI471; EXP ZI420; EXP ZI587; EXP ZI452; ADVANCE_LEXER; { (ZI586) = crt_condition; } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR418 (&ZI609); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI471) = bind_temporary ((ZI609)); } { (ZI420) = begin_while_stmt ((ZI471)); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; { (ZI587) = begin_compound_stmt (1); } ZR561 (ZI587, &ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { unreached_prev = (ZI541); } { (ZI408) = end_while_stmt ((ZI420), (ZI452)); } { crt_condition = (ZI586); } { unreached_fall = 1; } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR510 (void) { switch (CURRENT_TERMINAL) { case lex_div_Heq: { ADVANCE_LEXER; } break; case lex_lshift_Heq: { ADVANCE_LEXER; } break; case lex_minus_Heq: { ADVANCE_LEXER; } break; case lex_plus_Heq: { ADVANCE_LEXER; } break; case lex_rem_Heq: { ADVANCE_LEXER; } break; case lex_rshift_Heq: { ADVANCE_LEXER; } break; case lex_star_Heq: { ADVANCE_LEXER; } break; case lex_and_Heq_H1: { { { switch (CURRENT_TERMINAL) { case lex_and_Heq_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } } break; case lex_or_Heq_H1: { { { switch (CURRENT_TERMINAL) { case lex_or_Heq_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } } break; case lex_xor_Heq_H1: { { { switch (CURRENT_TERMINAL) { case lex_xor_Heq_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } } break; case 358: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (358); return; } void ZR540 (EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_inset_Hstart: { ADVANCE_LEXER; ZR1088 (&ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_semicolon: { ADVANCE_LEXER; { (ZI408) = NULL_exp; } } break; case lex_identifier: 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_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_abs: case lex_sizeof: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: { EXP ZI1035; EXP ZI420; int ZI541; ZR423 (&ZI1035); ZR1037 (&ZI1035, &ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI408) = make_exp_stmt ((ZI420)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case lex_set: case lex_unused: { EXP ZI1083; EXP ZI420; int ZI541; ZR514 (&ZI1083); ZR1085 (&ZI1083, &ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI541) = unreached_code; if ((ZI541)) { if (!unreached_last) { report (crt_loc, ERR_stmt_stmt_unreach ()); unreached_last = 1; } } else { unreached_last = 0; } } { (ZI408) = make_exp_stmt ((ZI420)); } { unreached_fall = 1; } switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR844 (OFFSET ZI452, TYPE ZI573, OFFSET *ZO420, TYPE *ZO399) { OFFSET ZI420; TYPE ZI399; if ((CURRENT_TERMINAL) == 358) { return; } { NAMESPACE ZI430; IDENTIFIER ZI403; { (ZI430) = offset_nspace ((ZI573)); } { RESCAN_LEXER; } ZR431 (ZI430, &ZI403); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { OFFSET off = offset_member ((ZI573), (ZI403), &(ZI399), (ZI430), 1); (ZI420) = offset_add ((ZI452), off); } { RESCAN_LEXER; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO420 = ZI420; *ZO399 = ZI399; } void ZR734 (BASE_TYPE *ZI696, TYPE *ZI697, CV_SPEC *ZI698, DECL_SPEC *ZI726, BASE_TYPE *ZO666, TYPE *ZO399, CV_SPEC *ZO637, DECL_SPEC *ZO611) { BASE_TYPE ZI666; TYPE ZI399; CV_SPEC ZI637; DECL_SPEC ZI611; if ((CURRENT_TERMINAL) == 358) { return; } { BASE_TYPE ZI1105; TYPE ZI1106; CV_SPEC ZI1107; DECL_SPEC ZI1108; BASE_TYPE ZI700; TYPE ZI701; CV_SPEC ZI702; DECL_SPEC ZI728; { /* Resolve declaration-specifiers from other declarators */ (ZI0) = predict_dspec (0); } if (!ZI0) goto ZL2; ZR723 (&ZI1105, &ZI1106, &ZI1107, &ZI1108); 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; } } ZR734 (&ZI1105, &ZI1106, &ZI1107, &ZI1108, &ZI700, &ZI701, &ZI702, &ZI728); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { if ((*ZI696) & (ZI700)) { (ZI666) = join_pre_types ((*ZI696), (ZI700)); } else { (ZI666) = ((*ZI696) | (ZI700)); } } { /* Join two partial types */ if (IS_NULL_type ((*ZI697))) { (ZI399) = (ZI701); } else if (IS_NULL_type ((ZI701))) { (ZI399) = (*ZI697); } else { report (crt_loc, ERR_dcl_type_simple_many ((*ZI697), (ZI701))); (ZI399) = (ZI701); } } { CV_SPEC c = ((*ZI698) & (ZI702)); if (c) report (crt_loc, ERR_dcl_type_cv_dup (c)); (ZI637) = ((*ZI698) | (ZI702)); } { /* Combine two declaration specifiers */ DECL_SPEC d = (((*ZI726) & (ZI728)) & dspec_duplicate); /* Duplicate inline is allowed */ if (d & ~dspec_inline) report (crt_loc, ERR_dcl_spec_dup (d)); (ZI611) = ((*ZI726) | (ZI728)); } goto ZL0; } /*UNREACHED*/ ZL2:; switch (CURRENT_TERMINAL) { default: { ZI666 = *ZI696; ZI399 = *ZI697; ZI637 = *ZI698; ZI611 = *ZI726; } break; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO666 = ZI666; *ZO399 = ZI399; *ZO637 = ZI637; *ZO611 = ZI611; } void ZR816 (void) { switch (CURRENT_TERMINAL) { case lex_hash_Hpragma: { ADVANCE_LEXER; } break; case lex_hash_Hif: { EXP ZI424; ZR815 (&ZI424); { switch (CURRENT_TERMINAL) { case lex_hash_Helse: { ADVANCE_LEXER; { crt_hash_cond = make_else_cond (crt_hash_cond); } { target_decl (lex_else, NULL_exp); } ZR814 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case 358: RESTORE_LEXER; goto ZL1; default: break; } } { crt_hash_cond = (ZI424); } switch (CURRENT_TERMINAL) { case lex_hash_Hendif: break; default: goto ZL1; } ADVANCE_LEXER; { target_decl (lex_endif, NULL_exp); } } break; case 358: return; default: goto ZL1; } return; ZL1:; SAVE_LEXER (358); return; } void ZR862 (TYPE ZI860, TYPE *ZO861) { TYPE ZI861; ZL2_862:; switch (CURRENT_TERMINAL) { case lex_open_Hround: case lex_open_Hsquare_H1: case lex_weak: { TYPE ZI427; TYPE ZI399; ZR764 (&ZI427); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI399) = (IS_NULL_type ((ZI860)) ? (ZI427): inject_pre_type ((ZI860), (ZI427), 0)); } ZI860 = ZI399; goto ZL2_862; } /*UNREACHED*/ default: { ZI861 = ZI860; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO861 = ZI861; } void ZR993 (EXP *ZO408) { EXP ZI408; if ((CURRENT_TERMINAL) == 358) { return; } { TYPE ZI399; int ZI476; EXP ZI420; EXP ZI971; EXP ZI970; EXP ZI969; EXP ZI968; EXP ZI967; EXP ZI966; EXP ZI965; EXP ZI964; EXP ZI963; EXP ZI962; EXP ZI961; EXP ZI958; { /* Resolve type-ids from expressions */ (ZI0) = predict_typeid (0); } if (!ZI0) goto ZL2; ZR448 (&ZI399, &ZI476); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; ZR463 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* n is the number of type definitions in t */ (ZI971) = make_cast_exp ((ZI399), (ZI420), (ZI476)); } ZR939 (ZI971, &ZI970); ZR935 (ZI970, &ZI969); ZR931 (ZI969, &ZI968); ZR927 (ZI968, &ZI967); ZR923 (ZI967, &ZI966); ZR919 (ZI966, &ZI965); ZR915 (ZI965, &ZI964); ZR911 (ZI964, &ZI963); ZR907 (ZI963, &ZI962); ZR903 (ZI962, &ZI961); ZR899 (ZI961, &ZI958); ZR960 (&ZI958, &ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } goto ZL0; } /*UNREACHED*/ ZL2:; switch (CURRENT_TERMINAL) { case lex_identifier: 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_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_abs: case lex_sizeof: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: case lex_set: case lex_unused: case lex_inset_Hstart: { EXP ZI1031; EXP ZI1032; EXP ZI1033; { IGNORE incr_value (OPT_VAL_paren_depth); } ZR418 (&ZI1031); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI1032) = make_paren_exp ((ZI1031)); decr_value (OPT_VAL_paren_depth); } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto ZL1; } ADVANCE_LEXER; ZR943 (ZI1032, &ZI1033); ZR1015 (&ZI1033, &ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void parse_mem_type (TYPE *ZO399) { TYPE ZI399; if ((CURRENT_TERMINAL) == 358) { return; } { BASE_TYPE ZI666; TYPE ZI424; CV_SPEC ZI637; TYPE ZI427; ZR695 (&ZI666, &ZI424, &ZI637); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI427) = complete_pre_type ((ZI666), (ZI424), (ZI637), 1); have_type_specifier = 0; } { switch (CURRENT_TERMINAL) { case lex_rem: { EXP ZI471; ADVANCE_LEXER; ZR522 (&ZI471); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI399) = make_bitfield_type ((ZI427), (ZI666), (ZI471), 0); } } break; default: { ZR770 (ZI427, &ZI399); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; } } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO399 = ZI399; } void ZR870 (TYPE ZI866, IDENTIFIER ZI867, TYPE *ZO868, IDENTIFIER *ZO869) { TYPE ZI868; IDENTIFIER ZI869; ZL2_870:; switch (CURRENT_TERMINAL) { case lex_open_Hround: case lex_open_Hsquare_H1: case lex_weak: { IDENTIFIER ZI403; TYPE ZI427; TYPE ZI399; ZI403 = ZI867; ZR764 (&ZI427); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI399) = (IS_NULL_type ((ZI866)) ? (ZI427): inject_pre_type ((ZI866), (ZI427), 0)); } ZI866 = ZI399; ZI867 = ZI403; goto ZL2_870; } /*UNREACHED*/ default: { ZI868 = ZI866; ZI869 = ZI867; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO868 = ZI868; *ZO869 = ZI869; } void parse_operator (IDENTIFIER *ZO403) { IDENTIFIER ZI403; if ((CURRENT_TERMINAL) == 358) { return; } { { /* Syntax errors */ ERROR err = ERR_lex_parse (crt_token); report (crt_loc, err); have_syntax_error = 1; } { (ZI403) = NULL_id; } } *ZO403 = ZI403; } void ZR501 (EXP *ZO906) { EXP ZI906; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI408; ZR499 (&ZI408); ZR907 (ZI408, &ZI906); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO906 = ZI906; } void ZR619 (EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_case: { EXP ZI471; ADVANCE_LEXER; ZR522 (&ZI471); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { report (crt_loc, ERR_stmt_goto_case (lex_case)); (ZI408) = begin_case_stmt ((ZI471), 1); } } break; case lex_default: { ADVANCE_LEXER; { report (crt_loc, ERR_stmt_goto_case (lex_default)); (ZI408) = begin_default_stmt (1); } } break; case lex_identifier: case lex_type_Hname: case lex_statement_Hname: { IDENTIFIER ZI403; { switch (CURRENT_TERMINAL) { case lex_identifier: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto ZL1; } } { (ZI408) = make_goto_stmt ((ZI403)); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR621 (EXP *ZO420) { EXP ZI420; switch (CURRENT_TERMINAL) { case lex_identifier: 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_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_abs: case lex_sizeof: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: case lex_set: case lex_unused: case lex_inset_Hstart: { ZR418 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI420) = NULL_exp; } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO420 = ZI420; } void ZR519 (SID_LIST_EXP *ZO424) { SID_LIST_EXP ZI424; switch (CURRENT_TERMINAL) { case lex_identifier: 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_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_abs: case lex_sizeof: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: { EXP ZI420; ZR423 (&ZI420); ZR1038 (&ZI420, &ZI424); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_set: case lex_unused: { EXP ZI420; SID_LIST_EXP ZI427; ZR514 (&ZI420); ZR519 (&ZI427); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { CONS_exp ((ZI420), (ZI427), (ZI424)); } } break; case lex_inset_Hstart: { EXP ZI420; SID_LIST_EXP ZI427; ZR515 (&ZI420); ZR519 (&ZI427); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { CONS_exp ((ZI420), (ZI427), (ZI424)); } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO424 = ZI424; } void ZR753 (int *ZO757) { int ZI757; ZL2_753:; switch (CURRENT_TERMINAL) { case lex_ellipsis: { ADVANCE_LEXER; { (ZI757) = 1; } } break; case lex_type_Hname: case lex_complex_Htype: 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_inline: case lex_wchar_Ht: case lex_bottom: case lex_ptrdiff_Ht: case lex_size_Ht: { IDENTIFIER ZI552; ZR780 (&ZI552); { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; goto ZL2_753; } /*UNREACHED*/ default: { { (ZI757) = 0; } } break; case 358: RESTORE_LEXER; goto ZL1; } } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO757 = ZI757; } void ZR413 (EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_char_Hexp: case lex_wchar_Hexp: { { switch (CURRENT_TERMINAL) { case lex_char_Hexp: { { ZI408 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wchar_Hexp: { { ZI408 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto ZL1; } } } break; case lex_floating_Hexp: { { { switch (CURRENT_TERMINAL) { case lex_floating_Hexp: { ZI408 = crt_token->pp_data.exp; } break; default: goto ZL1; } ADVANCE_LEXER; } } } break; case lex_integer_Hexp: { { { switch (CURRENT_TERMINAL) { case lex_integer_Hexp: { ZI408 = crt_token->pp_data.exp; } break; default: goto ZL1; } ADVANCE_LEXER; } } } break; case lex_string_Hexp: case lex_wstring_Hexp: { { switch (CURRENT_TERMINAL) { case lex_string_Hexp: { { ZI408 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wstring_Hexp: { { ZI408 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto ZL1; } } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR787 (IDENTIFIER *ZO403) { IDENTIFIER ZI403; switch (CURRENT_TERMINAL) { case lex_type_Hname: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; { report (crt_loc, ERR_dcl_fct_par_typedef ((ZI403))); } } break; case lex_identifier: case lex_statement_Hname: { { switch (CURRENT_TERMINAL) { case lex_identifier: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { ZI403 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto ZL1; } } } break; case 358: return; default: goto ZL1; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO403 = ZI403; } void parse_decl (TYPE ZI399, DECL_SPEC ZI611) { if ((CURRENT_TERMINAL) == 358) { return; } { BASE_TYPE ZI696; TYPE ZI1093; CV_SPEC ZI698; DECL_SPEC ZI1094; BASE_TYPE ZI666; TYPE ZI697; CV_SPEC ZI637; DECL_SPEC ZI726; { /* Resolve declaration-specifiers from other declarators */ (ZI0) = predict_dspec (0); } if (!ZI0) goto ZL1; ZR723 (&ZI696, &ZI1093, &ZI698, &ZI1094); 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; } } ZR734 (&ZI696, &ZI1093, &ZI698, &ZI1094, &ZI666, &ZI697, &ZI637, &ZI726); ZR823 (&ZI666, &ZI697, &ZI637, &ZI726); switch (CURRENT_TERMINAL) { case lex_semicolon: break; case 358: RESTORE_LEXER; goto ZL1; default: goto ZL1; } ADVANCE_LEXER; } return; ZL1:; { { /* Syntax errors */ ERROR err = ERR_lex_parse (crt_token); report (crt_loc, err); have_syntax_error = 1; } } } void ZR878 (TYPE ZI874, IDENTIFIER ZI875, TYPE *ZO876, IDENTIFIER *ZO877) { TYPE ZI876; IDENTIFIER ZI877; ZL2_878:; switch (CURRENT_TERMINAL) { case lex_open_Hround: case lex_open_Hsquare_H1: case lex_weak: { IDENTIFIER ZI403; TYPE ZI427; TYPE ZI399; ZI403 = ZI875; ZR755 (ZI403, &ZI427); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI399) = (IS_NULL_type ((ZI874)) ? (ZI427): inject_pre_type ((ZI874), (ZI427), 0)); } ZI874 = ZI399; ZI875 = ZI403; goto ZL2_878; } /*UNREACHED*/ default: { ZI876 = ZI874; ZI877 = ZI875; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO876 = ZI876; *ZO877 = ZI877; } void ZR499 (EXP *ZO910) { EXP ZI910; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI408; ZR497 (&ZI408); ZR911 (ZI408, &ZI910); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO910 = ZI910; } void ZR556 (EXP *ZO408) { EXP ZI408; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI471; int ZI552; EXP ZI420; { (ZI471) = begin_compound_stmt (1); } { { switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { COPY_int (exp_sequence_block ((ZI471)), 2); (ZI552) = 1; } ZR553 (ZI471, ZI552, &ZI420); { if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { switch (CURRENT_TERMINAL) { case lex_close_Hbrace_H1: break; default: goto ZL1; } ADVANCE_LEXER; } } { (ZI408) = end_compound_stmt ((ZI420)); } { RESCAN_LEXER; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR400 (void) { if ((CURRENT_TERMINAL) == 358) { return; } { switch (CURRENT_TERMINAL) { case lex_semicolon: break; default: goto ZL1; } ADVANCE_LEXER; } return; ZL1:; { int ZI399; { (ZI399) = lex_semicolon; } { /* Expected symbol */ int p = primary_form (crt_lex_token); if (p != (ZI399)) report (crt_loc, ERR_lex_expect ((ZI399))); } } } void ZR505 (EXP *ZO898) { EXP ZI898; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI408; ZR503 (&ZI408); ZR899 (ZI408, &ZI898); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO898 = ZI898; } void ZR522 (EXP *ZO408) { EXP ZI408; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI420; ZR507 (&ZI420); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI408) = convert_reference ((ZI420), REF_NORMAL); (ZI408) = convert_lvalue ((ZI408)); } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR741 (TYPE *ZO424) { TYPE ZI424; if ((CURRENT_TERMINAL) == 358) { return; } { CV_SPEC ZI637; switch (CURRENT_TERMINAL) { case lex_star: break; default: goto ZL1; } ADVANCE_LEXER; ZR642 (&ZI637); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { MAKE_type_ptr ((ZI637), NULL_type, (ZI424)); } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO424 = ZI424; } void ZR884 (EXP ZI882, EXP *ZO883) { EXP ZI883; ZL2_884:; switch (CURRENT_TERMINAL) { case lex_hash_Helif: { EXP ZI424; EXP ZI471; ZI424 = ZI882; { ZI471 = crt_token->pp_data.exp; } ADVANCE_LEXER; { EXP c = make_else_cond (crt_hash_cond); crt_hash_cond = make_if_cond ((ZI471), c); } { target_decl (lex_elif, (ZI471)); } ZR814 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } else { ZI882 = ZI424; goto ZL2_884; } } /*UNREACHED*/ default: { ZI883 = ZI882; } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO883 = ZI883; } void ZR630 (SID_LIST_EXP *ZO424) { SID_LIST_EXP ZI424; switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; ZR425 (&ZI424); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI424) = NULL_list (EXP); } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO424 = ZI424; } void ZR492 (EXP *ZO922) { EXP ZI922; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI408; ZR489 (&ZI408); ZR923 (ZI408, &ZI922); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO922 = ZI922; } void ZR807 (DECL_SPEC ZI611, BASE_TYPE ZI666, TYPE ZI399) { if ((CURRENT_TERMINAL) == 358) { return; } ZL2_807:; { ZR806 (ZI611, ZI666, ZI399); { switch (CURRENT_TERMINAL) { case lex_comma: { ADVANCE_LEXER; goto ZL2_807; } /*UNREACHED*/ case 358: RESTORE_LEXER; goto ZL1; default: break; } } } return; ZL1:; SAVE_LEXER (358); return; } void ZR759 (EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_identifier: 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_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_abs: case lex_sizeof: case lex_alignof: case lex_discard: case lex_ellipsis_Hexp: { ZR522 (&ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI408) = NULL_exp; } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } void ZR760 (int *ZO757) { int ZI757; switch (CURRENT_TERMINAL) { case lex_type_Hname: case lex_complex_Htype: case lex_ellipsis: 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_inline: case lex_wchar_Ht: case lex_bottom: case lex_ptrdiff_Ht: case lex_size_Ht: { ZR753 (&ZI757); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; default: { { (ZI757) = 0; } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO757 = ZI757; } void ZR480 (EXP *ZO938) { EXP ZI938; if ((CURRENT_TERMINAL) == 358) { return; } { EXP ZI408; ZR463 (&ZI408); ZR939 (ZI408, &ZI938); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO938 = ZI938; } void ZR1015 (EXP *ZI1014, EXP *ZO408) { EXP ZI408; switch (CURRENT_TERMINAL) { case lex_assign: { EXP ZI452; ADVANCE_LEXER; ZR423 (&ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { (ZI408) = make_assign_exp ((*ZI1014), (ZI452), 1); } } break; default: { EXP ZI970; EXP ZI969; EXP ZI968; EXP ZI967; EXP ZI966; EXP ZI965; EXP ZI964; EXP ZI963; EXP ZI962; EXP ZI961; EXP ZI958; ZR939 (*ZI1014, &ZI970); ZR935 (ZI970, &ZI969); ZR931 (ZI969, &ZI968); ZR927 (ZI968, &ZI967); ZR923 (ZI967, &ZI966); ZR919 (ZI966, &ZI965); ZR915 (ZI965, &ZI964); ZR911 (ZI964, &ZI963); ZR907 (ZI963, &ZI962); ZR903 (ZI962, &ZI961); ZR899 (ZI961, &ZI958); ZR960 (&ZI958, &ZI408); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } } break; case lex_and_Heq_H1: case lex_div_Heq: case lex_lshift_Heq: case lex_minus_Heq: case lex_or_Heq_H1: case lex_plus_Heq: case lex_rem_Heq: case lex_rshift_Heq: case lex_star_Heq: case lex_xor_Heq_H1: { int ZI464; EXP ZI452; { (ZI464) = crt_lex_token; } ZR510 (); ZR423 (&ZI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto ZL1; } { /* op will be in its primary form */ (ZI408) = make_become_exp ((ZI464), (*ZI1014), (ZI452)); } } break; case 358: return; } goto ZL0; ZL1:; SAVE_LEXER (358); return; ZL0:; *ZO408 = ZI408; } /* BEGINNING OF TRAILER */ /* END OF FILE */