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