/* * Automatically generated from the files: * /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/producers/cpp/../common/parse/psyntax.sid * and * /mnt/gmirror/ports/lang/TenDRA/work/tendra/src/producers/cpp/../common/parse/psyntax.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 "tok_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 "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 "printf.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 (IDENTIFIER) SID_LIST_ID; /* * DECLARE FUNCTIONS * * The function declarations are included at this point so that the * type definitions are in scope. */ #include "psyntax.h" extern void parse_tok_type(TYPE *); extern void parse_mem_type(TYPE *); extern void parse_operator(IDENTIFIER *); /* * 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 variable analysis off #ifndef OLD_PRODUCER #pragma TenDRA unreachable code allow #endif #endif void XR809 (void) { switch (CURRENT_TERMINAL) { case lex_macro: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_equality: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_macro_weak; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_prototype: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_analysis: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_weak; } XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR810 (void) { switch (CURRENT_TERMINAL) { case lex_environment: { IDENTIFIER XI379; unsigned XI381; ADVANCE_LEXER; { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } { switch (CURRENT_TERMINAL) { case lex_reset: { ADVANCE_LEXER; XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI381) = (unsigned) OPTION_ON; } } break; } } { use_option ((XI379), (XI381)); } } break; case lex_error: { int XI712; XR761 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { if ((XI712) >= 0) { no_error_args = 1; report (crt_loc, make_error ((XI712))); no_error_args = 0; } } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR811 (void) { switch (CURRENT_TERMINAL) { case lex_error: { int XI712; EXP XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_limit: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_VAL_maximum_error; } { { switch (CURRENT_TERMINAL) { case lex_integer_Hexp: { XI381 = crt_token->pp_data.exp; } break; default: goto XL1; } ADVANCE_LEXER; } } { set_value ((XI712), (XI381), (unsigned long) 0); } } break; case lex_name: { EXP XI381; unsigned XI477; int XI712; int XI718; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_limit: break; default: goto XL1; } ADVANCE_LEXER; { { switch (CURRENT_TERMINAL) { case lex_integer_Hexp: { XI381 = crt_token->pp_data.exp; } break; default: goto XL1; } ADVANCE_LEXER; } } XR512 (&XI477); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { (XI712) = OPT_VAL_name_limit; } { (XI718) = OPT_name_limit; } { set_value ((XI712), (XI381), (unsigned long) 0); } { set_option ((XI718), (XI477)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR812 (void) { switch (CURRENT_TERMINAL) { case lex_escape: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_overflow: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_escape_overflow; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_char_Hexp: case lex_wchar_Hexp: case lex_string_Hexp: case lex_wstring_Hexp: { EXP XI413; { switch (CURRENT_TERMINAL) { case lex_char_Hexp: case lex_wchar_Hexp: { { switch (CURRENT_TERMINAL) { case lex_char_Hexp: { { XI413 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wchar_Hexp: { { XI413 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto XL1; } } } break; case lex_string_Hexp: case lex_wstring_Hexp: { { switch (CURRENT_TERMINAL) { case lex_string_Hexp: { { XI413 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wstring_Hexp: { { XI413 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto XL1; } } } break; default: goto XL1; } } { switch (CURRENT_TERMINAL) { case lex_as: { EXP XI448; ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_char_Hexp: { { XI448 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wchar_Hexp: { { XI448 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto XL1; } } { set_character ((XI413), (XI448)); } switch (CURRENT_TERMINAL) { case lex_allow: break; default: goto XL1; } ADVANCE_LEXER; } break; case lex_disallow: { EXP XI448; ADVANCE_LEXER; { (XI448) = NULL_exp; } { set_character ((XI413), (XI448)); } } break; default: goto XL1; } } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR729 (unsigned *XO477) { unsigned XI477; switch (CURRENT_TERMINAL) { case lex_open_Hround: { ADVANCE_LEXER; XR838 (&XI477); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI477) = (unsigned) OPTION_ON; } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO477 = XI477; } void XR813 (void) { switch (CURRENT_TERMINAL) { case lex_value: { EXP XI452; int XI712; EXP XI381; ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_string_Hexp: { { XI452 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wstring_Hexp: { { XI452 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto XL1; } } { STRING s = DEREF_str (exp_string_lit_str ((XI452))); (XI712) = find_value_no (s, 0); if ((XI712) == -1) { report (preproc_loc, ERR_pragma_option_bad (s)); } } { { switch (CURRENT_TERMINAL) { case lex_integer_Hexp: { XI381 = crt_token->pp_data.exp; } break; default: goto XL1; } ADVANCE_LEXER; } } { set_value ((XI712), (XI381), (unsigned long) 0); } } break; case lex_string_Hexp: case lex_wstring_Hexp: { EXP XI452; int XI712; unsigned XI381; { switch (CURRENT_TERMINAL) { case lex_string_Hexp: { { XI452 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wstring_Hexp: { { XI452 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto XL1; } } { STRING s = DEREF_str (exp_string_lit_str ((XI452))); (XI712) = find_option_no (s, 0); if ((XI712) == -1) { report (preproc_loc, ERR_pragma_option_bad (s)); } } XR511 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR726 (unsigned *XO381, unsigned *XO477) { unsigned XI381; unsigned XI477; switch (CURRENT_TERMINAL) { case lex_off: { ADVANCE_LEXER; { (XI381) = (unsigned) OPTION_OFF; } { (XI477) = (unsigned) OPTION_OFF; } } break; case lex_open_Hround: { unsigned XI448; ADVANCE_LEXER; XR725 (&XI477); switch (CURRENT_TERMINAL) { case lex_close_Hround: break; case 358: RESTORE_LEXER; goto XL1; default: goto XL1; } ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_on: { ADVANCE_LEXER; { (XI448) = (unsigned) OPTION_OFF; } } break; case lex_warning: { ADVANCE_LEXER; { (XI448) = (unsigned) OPTION_WARN; } } break; default: goto XL1; } } XI381 = XI448; } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO381 = XI381; *XO477 = XI477; } void XR814 (void) { switch (CURRENT_TERMINAL) { case lex_star: { ADVANCE_LEXER; { preserve_all = 1; } } break; default: { { rescan_pragma (lex_unknown); RESCAN_LEXER; } XR500 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case 358: return; } return; XL1:; SAVE_LEXER (358); return; } void XR815 (TYPE *XI401) { switch (CURRENT_TERMINAL) { case lex_ellipsis: case lex_ellipsis_Hexp: { { switch (CURRENT_TERMINAL) { case lex_ellipsis: { ADVANCE_LEXER; } break; case lex_ellipsis_Hexp: { ADVANCE_LEXER; } break; default: goto XL1; } } { accept_ellipsis ((*XI401)); } } break; default: { TYPE XI452; { (XI452) = type_error; parse_tok_type (&(XI452)); object_type ((XI452), null_tag); } { accept_argument ((*XI401), (XI452)); } } break; case 358: return; } return; XL1:; SAVE_LEXER (358); return; } void XR816 (void) { switch (CURRENT_TERMINAL) { case lex_character: { TYPE XI401; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_lit: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; { rescan_pragma (lex_unknown); RESCAN_LEXER; } { (XI401) = type_error; parse_tok_type (&(XI401)); object_type ((XI401), null_tag); } { set_char_lit ((XI401)); } } break; case lex_longlong: { int XI448; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_type: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_long: break; default: goto XL1; } ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_long: { ADVANCE_LEXER; { (XI448) = 1; } } break; default: { { (XI448) = 0; } } break; } } { set_long_long_type ((XI448)); } } break; case lex_std: { IDENTIFIER XI379; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_namespace: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_colon_Hcolon: { ADVANCE_LEXER; { (XI379) = NULL_id; crt_id_qualifier = qual_none; qual_namespace = NULL_nspace; } } break; case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: { { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } } break; default: goto XL1; } } { set_std_namespace ((XI379)); } } break; case lex_string: { CV_SPEC XI592; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_lit: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_no: { ADVANCE_LEXER; { (XI592) = cv_none; } } break; default: { { (XI592) = cv_const; } } break; } } switch (CURRENT_TERMINAL) { case lex_const: break; default: goto XL1; } ADVANCE_LEXER; { set_string_qual ((XI592)); } } break; case lex_wchar_Ht: case lex_ptrdiff_Ht: case lex_size_Ht: { BASE_TYPE XI588; TYPE XI401; { switch (CURRENT_TERMINAL) { case lex_ptrdiff_Ht: { ADVANCE_LEXER; { (XI588) = btype_ptrdiff_t; } } break; case lex_size_Ht: { ADVANCE_LEXER; { (XI588) = btype_size_t; } } break; case lex_wchar_Ht: { ADVANCE_LEXER; { (XI588) = btype_wchar_t; } } break; default: goto XL1; } } switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; { rescan_pragma (lex_unknown); RESCAN_LEXER; } { (XI401) = type_error; parse_tok_type (&(XI401)); object_type ((XI401), null_tag); } { set_builtin_type ((XI588), (XI401)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR817 (void) { switch (CURRENT_TERMINAL) { case lex_error: case lex_name: { XR811 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_wchar_Ht: case lex_character: case lex_longlong: case lex_ptrdiff_Ht: case lex_size_Ht: case lex_std: case lex_string: { XR816 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR818 (void) { switch (CURRENT_TERMINAL) { case lex_conversion: { ADVANCE_LEXER; { rescan_pragma (lex_unknown); RESCAN_LEXER; } XR498 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_ellipsis: case lex_ellipsis_Hexp: { int XI712; unsigned XI381; { switch (CURRENT_TERMINAL) { case lex_ellipsis: { ADVANCE_LEXER; } break; case lex_ellipsis_Hexp: { ADVANCE_LEXER; } break; default: goto XL1; } } switch (CURRENT_TERMINAL) { case lex_identif: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_ellipsis_ident; } { (XI381) = (unsigned) OPTION_OFF; } { set_option ((XI712), (XI381)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR819 (void) { switch (CURRENT_TERMINAL) { case lex_signed: case lex_unsigned: case lex_either: { BASE_TYPE XI588; { switch (CURRENT_TERMINAL) { case lex_either: { ADVANCE_LEXER; { (XI588) = btype_none; } } break; case lex_signed: { ADVANCE_LEXER; { (XI588) = btype_signed; } } break; case lex_unsigned: { ADVANCE_LEXER; { (XI588) = btype_unsigned; } } break; default: goto XL1; } } { set_char_sign ((XI588)); } } break; case lex_char_Hexp: case lex_wchar_Hexp: case lex_string_Hexp: case lex_wstring_Hexp: case lex_escape: { XR812 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR820 (void) { switch (CURRENT_TERMINAL) { case lex_token: { int XI712; unsigned XI381; ADVANCE_LEXER; { (XI712) = OPT_token_redef; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_type: { TYPE XI401; TYPE XI452; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; { rescan_pragma (lex_unknown); RESCAN_LEXER; } { (XI401) = type_error; parse_tok_type (&(XI401)); object_type ((XI401), null_tag); } switch (CURRENT_TERMINAL) { case lex_eq: break; default: goto XL1; } ADVANCE_LEXER; { (XI452) = type_error; parse_tok_type (&(XI452)); object_type ((XI452), null_tag); } switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; { int t = crt_lex_token; if (t == lex_identifier || t == lex_type_Hname || t == lex_namespace_Hname || t == lex_statement_Hname) { t = find_hashid (crt_token->pp_data.id.hash); crt_lex_token = t; } } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_compatible_type ((XI401), (XI452), (XI381)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR532 (int *XO452) { int XI452; switch (CURRENT_TERMINAL) { case lex_long: { ADVANCE_LEXER; XR853 (&XI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_unsigned: { ADVANCE_LEXER; XR852 (&XI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI452) = SUFFIX_NONE; } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO452 = XI452; } void XR821 (void) { switch (CURRENT_TERMINAL) { case lex_of: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_struct: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_div: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_union: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_auto: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_init_struct; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: { IDENTIFIER XI379; { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } switch (CURRENT_TERMINAL) { case lex_allow: break; default: goto XL1; } ADVANCE_LEXER; { allow_initialiser ((XI379)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR498 (void) { XL2_498:; switch (CURRENT_TERMINAL) { case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: { IDENTIFIER XI379; { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } { allow_conversion ((XI379)); } goto XL2_498; } /*UNREACHED*/ case 358: return; default: break; } return; XL1:; SAVE_LEXER (358); return; } void XR714 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_open_Hround: { ADVANCE_LEXER; XR832 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI712) = OPT_discard; } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR822 (void) { switch (CURRENT_TERMINAL) { case lex_analysis: { int XI712; unsigned XI381; ADVANCE_LEXER; XR713 (&XI712); XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: case lex_allow: { { rescan_pragma (lex_allow); RESCAN_LEXER; } XR498 (); switch (CURRENT_TERMINAL) { case lex_allow: break; case 358: RESTORE_LEXER; goto XL1; default: goto XL1; } ADVANCE_LEXER; } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR823 (void) { switch (CURRENT_TERMINAL) { case lex_lit: { int XI448; int XI452; ADVANCE_LEXER; { pragma_number = 1; } XR531 (&XI448); XR532 (&XI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { begin_literal ((XI448), (XI452)); } { rescan_pragma (lex_unknown); RESCAN_LEXER; } XR536 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_operator: case lex_overflow: { int XI712; unsigned XI381; XR799 (&XI712); XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR716 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_for: { ADVANCE_LEXER; XR843 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI712) = OPT_infer_int; } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR824 (void) { switch (CURRENT_TERMINAL) { case lex_token: { int XI477; ADVANCE_LEXER; { (XI477) = lex_undef; } { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { if (t != lex_tag_Hcap && !predict_operator ()) { crt_lex_token = lex_identifier; } } } XR482 (&XI477); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_keyword: { IDENTIFIER XI379; XR553 (&XI379); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { undef_keyword ((XI379)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR531 (int *XO448) { int XI448; switch (CURRENT_TERMINAL) { case lex_decimal: { ADVANCE_LEXER; { (XI448) = BASE_DECIMAL; } } break; case lex_hexadecimal: { ADVANCE_LEXER; { (XI448) = BASE_HEXADECIMAL; } } break; case lex_octal: { ADVANCE_LEXER; { (XI448) = BASE_OCTAL; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO448 = XI448; } void XR536 (void) { XL2_536:; switch (CURRENT_TERMINAL) { case lex_question: { ADVANCE_LEXER; { add_range_literal (NULL_exp, 1); } XR533 (); { if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { switch (CURRENT_TERMINAL) { case lex_or_H1: break; default: goto XL1; } ADVANCE_LEXER; } } goto XL2_536; } /*UNREACHED*/ case lex_star: { ADVANCE_LEXER; { add_range_literal (NULL_exp, 0); } XR533 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_integer_Hexp: { EXP XI381; { { switch (CURRENT_TERMINAL) { case lex_integer_Hexp: { XI381 = crt_token->pp_data.exp; } break; default: goto XL1; } ADVANCE_LEXER; } } { add_range_literal ((XI381), 2); } XR533 (); { if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { switch (CURRENT_TERMINAL) { case lex_or_H1: break; default: goto XL1; } ADVANCE_LEXER; } } goto XL2_536; } /*UNREACHED*/ case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR735 (unsigned *XO449) { unsigned XI449; switch (CURRENT_TERMINAL) { case lex_const_Hcast: { ADVANCE_LEXER; { (XI449) = CAST_CONST; } } break; case lex_reinterpret_Hcast: { ADVANCE_LEXER; { (XI449) = CAST_REINTERP; } } break; case lex_static_Hcast: { ADVANCE_LEXER; { (XI449) = CAST_STATIC; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO449 = XI449; } void XR402 (int *XO401) { int XI401; switch (CURRENT_TERMINAL) { case lex_tag_Hcap: { ADVANCE_LEXER; { (XI401) = 1; } } break; default: { { (XI401) = 0; } } break; case 358: return; } *XO401 = XI401; } void XR830 (int *XO401) { int XI401; switch (CURRENT_TERMINAL) { case lex_analysis: { int XI712; unsigned XI381; ADVANCE_LEXER; XR714 (&XI712); XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } { (XI401) = lex_hash_Hpragma; } } break; default: { { (XI401) = lex_unused; } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO401 = XI401; } void XR831 (int *XO401) { int XI401; switch (CURRENT_TERMINAL) { case lex_wchar_Ht: case lex_character: case lex_error: case lex_longlong: case lex_name: case lex_ptrdiff_Ht: case lex_size_Ht: case lex_std: case lex_string: { XR817 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { (XI401) = lex_hash_Hpragma; } } break; default: { { (XI401) = lex_set; } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO401 = XI401; } void XR832 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_function: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_return: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_discard_func; } } break; case lex_static: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_discard_static; } } break; case lex_value: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_discard_value; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR833 (TOKEN *XO404) { TOKEN XI404; switch (CURRENT_TERMINAL) { case lex_signed: { ADVANCE_LEXER; { (XI404) = make_type_token (btype_signed | btype_int); } } break; case lex_unsigned: { ADVANCE_LEXER; { (XI404) = make_type_token (btype_unsigned | btype_int); } } break; default: { { (XI404) = make_type_token (btype_int); } } break; case 358: return; } *XO404 = XI404; } void XR834 (TOKEN *XO404) { TOKEN XI404; switch (CURRENT_TERMINAL) { case lex_open_Hround: { TOKEN XI413; SID_LIST_ID XI406; TOKEN XI448; TOKEN XI410; ADVANCE_LEXER; { (XI413) = begin_proc_token (); } { switch (CURRENT_TERMINAL) { case lex_arith_Hcap: case lex_class_Hcap: case lex_exp_Hcap: case lex_float_Hcap: case lex_func_Hcap: case lex_int_Hcap: case lex_member_Hcap: case lex_nat_Hcap: case lex_proc_Hcap: case lex_scalar_Hcap: case lex_stmt_Hcap: case lex_struct_Hcap: case lex_type_Hcap: case lex_union_Hcap: case lex_variety_Hcap: { XR417 (&XI406); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI406) = NULL_list (IDENTIFIER); } } break; } } switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI448) = cont_proc_token ((XI413), (XI406), (XI406)); } XR400 (&XI410); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { (XI404) = end_proc_token ((XI448), (XI410)); } } break; case lex_open_Hbrace_H1: { TOKEN XI413; SID_LIST_ID XI454; SID_LIST_ID XI406; SID_LIST_ID XI457; SID_LIST_ID XI409; TOKEN XI448; TOKEN XI410; { { switch (CURRENT_TERMINAL) { case lex_open_Hbrace_H1: break; default: goto XL1; } ADVANCE_LEXER; } } { (XI413) = begin_proc_token (); } { switch (CURRENT_TERMINAL) { case lex_arith_Hcap: case lex_class_Hcap: case lex_exp_Hcap: case lex_float_Hcap: case lex_func_Hcap: case lex_int_Hcap: case lex_member_Hcap: case lex_nat_Hcap: case lex_proc_Hcap: case lex_scalar_Hcap: case lex_stmt_Hcap: case lex_struct_Hcap: case lex_type_Hcap: case lex_union_Hcap: case lex_variety_Hcap: { XR407 (&XI454); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI454) = NULL_list (IDENTIFIER); } } break; } } XI406 = XI454; { { switch (CURRENT_TERMINAL) { case lex_or_H1: break; default: goto XL1; } ADVANCE_LEXER; } } { switch (CURRENT_TERMINAL) { case lex_exp_Hcap: case lex_member_Hcap: case lex_proc_Hcap: case lex_stmt_Hcap: case lex_type_Hcap: { XR412 (XI406, &XI457); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI457) = NULL_list (IDENTIFIER); } } break; } } XI409 = XI457; { { switch (CURRENT_TERMINAL) { case lex_close_Hbrace_H1: break; default: goto XL1; } ADVANCE_LEXER; } } { (XI448) = cont_proc_token ((XI413), (XI406), (XI409)); } XR400 (&XI410); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { (XI404) = end_proc_token ((XI448), (XI410)); } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO404 = XI404; } void XR835 (SID_LIST_ID *XO409) { SID_LIST_ID XI409; switch (CURRENT_TERMINAL) { case lex_arith_Hcap: case lex_class_Hcap: case lex_exp_Hcap: case lex_float_Hcap: case lex_func_Hcap: case lex_int_Hcap: case lex_member_Hcap: case lex_nat_Hcap: case lex_proc_Hcap: case lex_scalar_Hcap: case lex_stmt_Hcap: case lex_struct_Hcap: case lex_type_Hcap: case lex_union_Hcap: case lex_variety_Hcap: { XR417 (&XI409); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { /* Extra comma at the end of a list */ report (crt_loc, ERR_lex_extra_comma ()); } { (XI409) = NULL_list (IDENTIFIER); } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO409 = XI409; } void XR836 (SID_LIST_ID *XO409) { SID_LIST_ID XI409; switch (CURRENT_TERMINAL) { case lex_arith_Hcap: case lex_class_Hcap: case lex_exp_Hcap: case lex_float_Hcap: case lex_func_Hcap: case lex_int_Hcap: case lex_member_Hcap: case lex_nat_Hcap: case lex_proc_Hcap: case lex_scalar_Hcap: case lex_stmt_Hcap: case lex_struct_Hcap: case lex_type_Hcap: case lex_union_Hcap: case lex_variety_Hcap: { XR407 (&XI409); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { /* Extra comma at the end of a list */ report (crt_loc, ERR_lex_extra_comma ()); } { (XI409) = NULL_list (IDENTIFIER); } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO409 = XI409; } void XR837 (SID_LIST_ID *XI410, SID_LIST_ID *XO409) { SID_LIST_ID XI409; switch (CURRENT_TERMINAL) { case lex_exp_Hcap: case lex_member_Hcap: case lex_proc_Hcap: case lex_stmt_Hcap: case lex_type_Hcap: { XR412 (*XI410, &XI409); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { /* Extra comma at the end of a list */ report (crt_loc, ERR_lex_extra_comma ()); } { (XI409) = NULL_list (IDENTIFIER); } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO409 = XI409; } void XR838 (unsigned *XO477) { unsigned XI477; switch (CURRENT_TERMINAL) { case lex_complete: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI477) = (unsigned) OPTION_ON; } } break; case lex_incomplete: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI477) = (unsigned) OPTION_OFF; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO477 = XI477; } void XR841 (unsigned *XI839, unsigned *XO449) { unsigned XI449; switch (CURRENT_TERMINAL) { case lex_or_H1: { unsigned XI448; { { switch (CURRENT_TERMINAL) { case lex_or_H1: break; default: goto XL1; } ADVANCE_LEXER; } } XR736 (&XI448); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { (XI449) = ((*XI839) | (XI448)); } } break; default: { XI449 = *XI839; } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO449 = XI449; } void XR415 (IDENTIFIER *XO379) { IDENTIFIER XI379; if ((CURRENT_TERMINAL) == 358) { return; } { TOKEN XI404; int XI401; IDENTIFIER XI405; XR400 (&XI404); XR402 (&XI401); { switch (CURRENT_TERMINAL) { case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: { { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI405 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI405 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI405 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI405 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } } break; default: { { HASHID nm = lookup_anon (); (XI405) = DEREF_id (hashid_id (nm)); crt_id_qualifier = qual_none; qual_namespace = NULL_nspace; } } break; case 358: RESTORE_LEXER; goto XL1; } } { (XI379) = make_tok_param ((XI404), (XI401), (XI405)); } } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO379 = XI379; } void XR842 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_after: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_conditional: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_empty_body; } } break; default: { { (XI712) = OPT_semicolon_extra; } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR843 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_const: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_div: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_volatile: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_infer_int_cv; } } break; case lex_external: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_decl: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_dspec_none; } } break; case lex_function: { ADVANCE_LEXER; XR844 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR844 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_argument: { ADVANCE_LEXER; { (XI712) = OPT_param_impl; } } break; case lex_return: { ADVANCE_LEXER; { (XI712) = OPT_dspec_none_func; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR533 (void) { switch (CURRENT_TERMINAL) { case lex_colon: { TYPE XI401; ADVANCE_LEXER; { (XI401) = type_error; parse_tok_type (&(XI401)); object_type ((XI401), null_tag); } { add_type_literal ((XI401)); } } break; case lex_star: { ADVANCE_LEXER; XR855 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR845 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_int: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_minus: break; default: goto XL1; } ADVANCE_LEXER; XR847 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_pointer: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_minus: break; default: goto XL1; } ADVANCE_LEXER; XR846 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_void: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_star: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_minus: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_pointer: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_implicit: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_ptr_void_ptr; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR846 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_int: { ADVANCE_LEXER; XR851 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_pointer: { ADVANCE_LEXER; XR849 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_void: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_star: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_implicit: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_ptr_ptr_void; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR847 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_enum: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_implicit: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_int_enum; } } break; case lex_int: { ADVANCE_LEXER; XR850 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_pointer: { ADVANCE_LEXER; XR851 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR849 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_close_Hround: { ADVANCE_LEXER; { (XI712) = OPT_conv_ptr_ptr; } } break; case lex_explicit: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_ptr_ptr_expl; } } break; case lex_implicit: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_ptr_ptr_impl; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR850 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_close_Hround: { ADVANCE_LEXER; { (XI712) = OPT_conv_int_int; } } break; case lex_explicit: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_int_int_expl; } } break; case lex_implicit: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_int_int_impl; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR851 (int *XO712) { int XI712; switch (CURRENT_TERMINAL) { case lex_close_Hround: { ADVANCE_LEXER; { (XI712) = OPT_conv_int_ptr; } } break; case lex_explicit: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_int_ptr_expl; } } break; case lex_implicit: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_int_ptr_impl; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR743 (int *XO712) { int XI712; if ((CURRENT_TERMINAL) == 358) { return; } { EXP XI452; switch (CURRENT_TERMINAL) { case lex_option: break; default: goto XL1; } ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_string_Hexp: { { XI452 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wstring_Hexp: { { XI452 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto XL1; } } { STRING s = DEREF_str (exp_string_lit_str ((XI452))); (XI712) = find_option_no (s, 0); if ((XI712) == -1) { report (preproc_loc, ERR_pragma_option_bad (s)); } } } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO712 = XI712; } void XR852 (int *XO452) { int XI452; switch (CURRENT_TERMINAL) { case lex_long: { ADVANCE_LEXER; XR854 (&XI452); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI452) = SUFFIX_U; } } break; case 358: return; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO452 = XI452; } void XR853 (int *XO452) { int XI452; switch (CURRENT_TERMINAL) { case lex_long: { ADVANCE_LEXER; { (XI452) = SUFFIX_LL; } } break; default: { { (XI452) = SUFFIX_L; } } break; case 358: return; } *XO452 = XI452; } void XR854 (int *XO452) { int XI452; switch (CURRENT_TERMINAL) { case lex_long: { ADVANCE_LEXER; { (XI452) = SUFFIX_ULL; } } break; default: { { (XI452) = SUFFIX_UL; } } break; case 358: return; } *XO452 = XI452; } void XR403 (IDENTIFIER *XO379) { IDENTIFIER XI379; if ((CURRENT_TERMINAL) == 358) { return; } { TOKEN XI404; int XI401; IDENTIFIER XI405; XR400 (&XI404); XR402 (&XI401); { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI405 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI405 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI405 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI405 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case 358: RESTORE_LEXER; goto XL1; default: goto XL1; } } { (XI379) = make_tok_param ((XI404), (XI401), (XI405)); } } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO379 = XI379; } void XR855 (void) { switch (CURRENT_TERMINAL) { case lex_star: { unsigned XI413; ADVANCE_LEXER; { int t = crt_lex_token; if (t == lex_identifier || t == lex_type_Hname || t == lex_namespace_Hname || t == lex_statement_Hname) { t = find_hashid (crt_token->pp_data.id.hash); crt_lex_token = t; } } { switch (CURRENT_TERMINAL) { case lex_allow: case lex_disallow: case lex_warning: { XR510 (&XI413); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI413) = (unsigned) OPTION_ON; } } break; } } switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; { add_token_literal (NULL_id, (XI413)); } } break; case lex_colon: case lex_allow: case lex_disallow: case lex_warning: { unsigned XI413; IDENTIFIER XI379; { int t = crt_lex_token; if (t == lex_identifier || t == lex_type_Hname || t == lex_namespace_Hname || t == lex_statement_Hname) { t = find_hashid (crt_token->pp_data.id.hash); crt_lex_token = t; } } { switch (CURRENT_TERMINAL) { case lex_allow: case lex_disallow: case lex_warning: { XR510 (&XI413); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; default: { { (XI413) = (unsigned) OPTION_OFF; } } break; } } switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } { add_token_literal ((XI379), (XI413)); } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } void XR513 (int *XO381) { int XI381; switch (CURRENT_TERMINAL) { case lex_allow: { ADVANCE_LEXER; { (XI381) = OPT_none; } } break; case lex_disallow: { ADVANCE_LEXER; { (XI381) = OPT_error; } } break; case lex_off: { ADVANCE_LEXER; { (XI381) = OPT_none; } } break; case lex_on: { ADVANCE_LEXER; { (XI381) = OPT_error; } } break; case lex_warning: { ADVANCE_LEXER; { (XI381) = OPT_warning; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO381 = XI381; } void XR856 (int *XO401) { int XI401; switch (CURRENT_TERMINAL) { case lex_value: { ADVANCE_LEXER; { (XI401) = lex_discard; } } break; case lex_variable: { ADVANCE_LEXER; { (XI401) = lex_unused; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO401 = XI401; } void XR857 (int *XO401) { int XI401; switch (CURRENT_TERMINAL) { case lex_reachable: { ADVANCE_LEXER; { (XI401) = lex_reachable; } } break; case lex_unreachable: { ADVANCE_LEXER; { (XI401) = lex_unreachable; } } break; default: { { (XI401) = lex_set; } } break; case 358: return; } *XO401 = XI401; } void XR500 (void) { XL2_500:; switch (CURRENT_TERMINAL) { case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: { IDENTIFIER XI379; { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } { preserve_id ((XI379), lex_preserve); } goto XL2_500; } /*UNREACHED*/ case 358: return; default: break; } return; XL1:; SAVE_LEXER (358); return; } void XR862 (TYPE *XO401) { TYPE XI401; switch (CURRENT_TERMINAL) { case lex_printf: { ADVANCE_LEXER; { (XI401) = type_printf; } } break; case lex_scanf: { ADVANCE_LEXER; { (XI401) = type_scanf; } } break; case lex_wchar_Ht: { ADVANCE_LEXER; XR863 (&XI401); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO401 = XI401; } void XR863 (TYPE *XO401) { TYPE XI401; switch (CURRENT_TERMINAL) { case lex_printf: { ADVANCE_LEXER; { (XI401) = type_wprintf; } } break; case lex_scanf: { ADVANCE_LEXER; { (XI401) = type_wscanf; } } break; case 358: return; default: goto XL1; } goto XL0; XL1:; SAVE_LEXER (358); return; XL0:; *XO401 = XI401; } void XR482 (int *XI477) { if ((CURRENT_TERMINAL) == 358) { return; } XL2_482:; { IDENTIFIER XI475; IDENTIFIER XI859; IDENTIFIER XI379; { (XI0) = predict_operator (); } if (!XI0) goto XL3; { (XI475) = DEREF_id (hashid_id (KEYWORD (lex_zzzz))); parse_operator (&(XI475)); } { (XI859) = check_id (crt_namespace, (XI475), 0); } XR783 (XI859, &XI379); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { token_interface ((XI379), (*XI477)); } { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { if (t != lex_tag_Hcap && !predict_operator ()) { crt_lex_token = lex_identifier; } } } goto XL2_482; } /*UNREACHED*/ XL3:; switch (CURRENT_TERMINAL) { case lex_tag_Hcap: { IDENTIFIER XI475; IDENTIFIER XI860; IDENTIFIER XI379; ADVANCE_LEXER; { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } { (XI860) = find_tag_token ((XI475)); } XR783 (XI860, &XI379); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { token_interface ((XI379), (*XI477)); } { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { if (t != lex_tag_Hcap && !predict_operator ()) { crt_lex_token = lex_identifier; } } } goto XL2_482; } /*UNREACHED*/ case lex_identifier: case lex_type_Hname: case lex_namespace_Hname: case lex_statement_Hname: { IDENTIFIER XI475; IDENTIFIER XI861; IDENTIFIER XI379; { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } { (XI861) = check_id (crt_namespace, (XI475), 0); } XR783 (XI861, &XI379); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { token_interface ((XI379), (*XI477)); } { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { if (t != lex_tag_Hcap && !predict_operator ()) { crt_lex_token = lex_identifier; } } } goto XL2_482; } /*UNREACHED*/ case lex_hash_H1: { IDENTIFIER XI475; IDENTIFIER XI858; IDENTIFIER XI379; { { switch (CURRENT_TERMINAL) { case lex_hash_H1: break; default: goto XL1; } ADVANCE_LEXER; } } { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI475 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } { (XI858) = find_ext_token ((XI475)); } XR783 (XI858, &XI379); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { token_interface ((XI379), (*XI477)); } { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { if (t != lex_tag_Hcap && !predict_operator ()) { crt_lex_token = lex_identifier; } } } goto XL2_482; } /*UNREACHED*/ default: break; } return; XL1:; SAVE_LEXER (358); return; } void XR775 (void) { switch (CURRENT_TERMINAL) { case lex_accept: { int XI712; unsigned XI381; ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_ellipsis: { ADVANCE_LEXER; } break; case lex_ellipsis_Hexp: { ADVANCE_LEXER; } break; default: goto XL1; } } switch (CURRENT_TERMINAL) { case lex_identif: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_ellipsis_ident; } { (XI381) = (unsigned) OPTION_OFF; } { set_option ((XI712), (XI381)); } } break; case lex_ambiguous: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_overload: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_resolution: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_overload_ambig; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_assignment: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_as: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_bool: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_bool_assign; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_begin: { ADVANCE_LEXER; XR786 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_bitfield: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_overflow: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_bitf_overflow; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_block: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_function: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_static: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_func_block; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_catch: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_all: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_wall; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_character: { ADVANCE_LEXER; XR812 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_compatible: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_token: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_token_redef; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_complete: { ADVANCE_LEXER; XR805 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_conditional: { ADVANCE_LEXER; XR801 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_const: { ADVANCE_LEXER; XR804 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_conversion: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_analysis: break; default: goto XL1; } ADVANCE_LEXER; XR713 (&XI712); XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_decl: { ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_block: break; default: goto XL1; } ADVANCE_LEXER; XR787 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_directive: { ADVANCE_LEXER; XR802 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_directory: { IDENTIFIER XI770; IDENTIFIER XI379; ADVANCE_LEXER; { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI770 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI770 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI770 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI770 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } switch (CURRENT_TERMINAL) { case lex_use: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_environment: break; default: goto XL1; } ADVANCE_LEXER; { int t = crt_lex_token; if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) { crt_lex_token = lex_identifier; } } { switch (CURRENT_TERMINAL) { case lex_identifier: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_namespace_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_statement_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; case lex_type_Hname: { { XI379 = crt_token->pp_data.id.use; } ADVANCE_LEXER; } break; default: goto XL1; } } { directory_option ((XI770), (XI379)); } } break; case lex_discard: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_analysis: break; default: goto XL1; } ADVANCE_LEXER; XR714 (&XI712); XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_dollar: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_as: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_ident: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_dollar_ident; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_end: { ADVANCE_LEXER; { end_option (1); } } break; case lex_enum: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_switch: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_analysis: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_enum_switch; } XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_escape: { EXP XI413; EXP XI448; ADVANCE_LEXER; { switch (CURRENT_TERMINAL) { case lex_char_Hexp: { { XI413 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; case lex_wchar_Hexp: { { XI413 = crt_token->pp_data.exp; } ADVANCE_LEXER; } break; default: goto XL1; } } XR757 (&XI448); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_escape ((XI413), (XI448)); } } break; case lex_explicit: { unsigned XI449; unsigned XI381; int XI712; int XI718; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_cast: break; default: goto XL1; } ADVANCE_LEXER; XR745 (&XI449); XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { (XI712) = OPT_cast_explicit; } { (XI718) = OPT_VAL_cast_explicit; } { set_option ((XI712), (XI381)); } { set_value ((XI718), NULL_exp, (unsigned long) (XI449)); } } break; case lex_external: { ADVANCE_LEXER; XR803 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_extra: { int XI712; unsigned XI381; ADVANCE_LEXER; XR789 (&XI712); XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_fall: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_into: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_case: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_case_fall; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_for: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_initialization: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_block: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_for_scope; } XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_forward: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_enum: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_decl: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_enum_decl; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_function: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_pointer: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_as: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_pointer: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_conv_ptr_func; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_ident: { int XI712; unsigned XI381; ADVANCE_LEXER; XR790 (&XI712); XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_ignore: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_struct: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_div: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_union: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_div: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_enum: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_tag: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_type_tag_ignore; } XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_implicit: { ADVANCE_LEXER; XR806 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_includes: { int XI712; EXP XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_depth: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_VAL_include_depth; } { { switch (CURRENT_TERMINAL) { case lex_integer_Hexp: { XI381 = crt_token->pp_data.exp; } break; default: goto XL1; } ADVANCE_LEXER; } } { set_value ((XI712), (XI381), (unsigned long) 0); } } break; case lex_incompatible: { int XI712; unsigned XI381; ADVANCE_LEXER; XR792 (&XI712); XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_incomplete: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_type: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_as: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_object: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_type: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_type_obj_incompl; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_indented: { int XI712; unsigned XI381; ADVANCE_LEXER; XR793 (&XI712); XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_initialization: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_of: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_struct: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_div: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_union: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_open_Hround: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_auto: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_close_Hround: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_init_struct; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_inline: { unsigned XI381; int XI712; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_linkage: break; default: goto XL1; } ADVANCE_LEXER; XR725 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { (XI712) = OPT_inline_internal; } { set_option ((XI712), (XI381)); } } break; case lex_integer: { int XI712; unsigned XI381; ADVANCE_LEXER; XR799 (&XI712); XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_linkage: { unsigned XI381; unsigned XI477; int XI712; int XI718; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_resolution: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_colon: break; default: goto XL1; } ADVANCE_LEXER; XR726 (&XI381, &XI477); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { (XI712) = OPT_link_resolve; } { (XI718) = OPT_link_internal; } { set_option ((XI712), (XI381)); } { set_option ((XI718), (XI477)); } } break; case lex_longlong: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_type: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_longlong; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_nested: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_comment: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_analysis: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_nest_comment; } XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_no: { int XI712; unsigned XI381; ADVANCE_LEXER; XR794 (&XI712); XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_operator: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_precedence: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_analysis: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_paren; } XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_option: { ADVANCE_LEXER; XR813 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_overload: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_resolution: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_overload_res; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_pointer: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_operator: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_analysis: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_ptr_operator; } XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_prototype: { int XI712; unsigned XI381; ADVANCE_LEXER; XR795 (&XI712); XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_rvalue: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_token: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_as: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_const: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_token_const; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_semicolon: { ADVANCE_LEXER; } break; case lex_set: { ADVANCE_LEXER; XR811 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_text: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_after: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_directive: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_ppdir_text; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_this: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_lvalue: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_this_lvalue; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_throw: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_analysis: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_throw_bad; } XR509 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_un_Hknown: { int XI712; unsigned XI381; ADVANCE_LEXER; XR796 (&XI712); XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_unify: { ADVANCE_LEXER; XR807 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_unmatched: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_quote: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_unmatched; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_unreachable: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_code: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_reached; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_use: { ADVANCE_LEXER; XR810 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_variable: { ADVANCE_LEXER; XR808 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_weak: { ADVANCE_LEXER; XR809 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_writeable: { int XI712; unsigned XI381; ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_string: break; default: goto XL1; } ADVANCE_LEXER; switch (CURRENT_TERMINAL) { case lex_lit: break; default: goto XL1; } ADVANCE_LEXER; { (XI712) = OPT_const_string; } XR510 (&XI381); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } { set_option ((XI712), (XI381)); } } break; case lex_error: { int XI712; XR761 (&XI712); XR785 (&XI712); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case lex_keyword: case lex_undef: { XR555 (); if ((CURRENT_TERMINAL) == 358) { RESTORE_LEXER; goto XL1; } } break; case 358: return; default: goto XL1; } return; XL1:; SAVE_LEXER (358); return; } /* END OF FILE */