/*
* 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
/* BEGINNING OF STATIC VARIABLES */
int XI0;
/* BEGINNING OF FUNCTION DEFINITIONS */
void
XR407 (SID_LIST_ID *XO406)
{
SID_LIST_ID XI406;
if ((CURRENT_TERMINAL) == 358) {
return;
}
{
IDENTIFIER XI379;
SID_LIST_ID XI409;
XR403 (&XI379);
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
XR836 (&XI409);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
break;
default:
{
{
(XI409) = NULL_list (IDENTIFIER);
}
}
break;
case 358:
RESTORE_LEXER;
goto XL1;
}
}
{
CONS_id ((XI379), (XI409), (XI406));
}
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO406 = XI406;
}
void
XR509 (unsigned *XO381)
{
unsigned XI381;
switch (CURRENT_TERMINAL) {
case lex_off:
{
ADVANCE_LEXER;
{
(XI381) = (unsigned) OPTION_OFF;
}
}
break;
case lex_on:
{
ADVANCE_LEXER;
{
(XI381) = (unsigned) OPTION_ON;
}
}
break;
case lex_warning:
{
ADVANCE_LEXER;
{
(XI381) = (unsigned) OPTION_WARN;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO381 = XI381;
}
void
XR736 (unsigned *XO449)
{
unsigned XI449;
if ((CURRENT_TERMINAL) == 358) {
return;
}
{
unsigned XI839;
XR735 (&XI839);
XR841 (&XI839, &XI449);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO449 = XI449;
}
void
XR553 (IDENTIFIER *XO379)
{
IDENTIFIER XI379;
if ((CURRENT_TERMINAL) == 358) {
return;
}
{
switch (CURRENT_TERMINAL) {
case lex_keyword:
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;
}
}
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO379 = XI379;
}
void
XR460 (void)
{
if ((CURRENT_TERMINAL) == 358) {
return;
}
{
TOKEN XI404;
int XI401;
IDENTIFIER XI413;
IDENTIFIER XI448;
switch (CURRENT_TERMINAL) {
case lex_token:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
XR400 (&XI404);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
int t = crt_lex_token;
if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) {
if (t != lex_tag_Hcap && !predict_operator ()) {
crt_lex_token = lex_identifier;
}
}
}
{
{
{
(XI0) = predict_operator ();
}
if (!XI0)
goto XL3;
{
(XI413) = DEREF_id (hashid_id (KEYWORD (lex_zzzz)));
parse_operator (&(XI413));
}
{
(XI401) = 0;
}
goto XL2;
}
/*UNREACHED*/
XL3:;
switch (CURRENT_TERMINAL) {
case lex_identifier: case lex_type_Hname: case lex_namespace_Hname:
case lex_statement_Hname: case lex_tag_Hcap:
{
XR402 (&XI401);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
int t = crt_lex_token;
if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) {
crt_lex_token = lex_identifier;
}
}
{
switch (CURRENT_TERMINAL) {
case lex_identifier:
{
{
XI413 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_namespace_Hname:
{
{
XI413 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_statement_Hname:
{
{
XI413 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_type_Hname:
{
{
XI413 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
default:
goto XL1;
}
}
}
break;
default:
goto XL1;
}
XL2:;
}
{
{
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_minus:
{
ADVANCE_LEXER;
{
HASHID nm = lookup_anon ();
(XI448) = DEREF_id (hashid_id (nm));
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:
{
{
XI448 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_namespace_Hname:
{
{
XI448 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_statement_Hname:
{
{
XI448 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_type_Hname:
{
{
XI448 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
default:
goto XL1;
}
}
}
break;
default:
{
XI448 = XI413;
}
break;
}
}
{
IGNORE make_token_decl ((XI404), (XI401), (XI413), (XI448));
}
}
return;
XL1:;
SAVE_LEXER (358);
return;
}
void
XR783 (IDENTIFIER XI781, IDENTIFIER *XO782)
{
IDENTIFIER XI782;
XL2_783:;
switch (CURRENT_TERMINAL) {
case lex_dot:
{
IDENTIFIER XI476;
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:
{
{
XI476 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_namespace_Hname:
{
{
XI476 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_statement_Hname:
{
{
XI476 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
case lex_type_Hname:
{
{
XI476 = crt_token->pp_data.id.use;
}
ADVANCE_LEXER;
}
break;
default:
goto XL1;
}
}
{
(XI379) = find_mem_token ((XI781), (XI476));
}
XI781 = XI379;
goto XL2_783;
}
/*UNREACHED*/
default:
{
XI782 = XI781;
}
break;
case 358:
return;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO782 = XI782;
}
void
XR785 (int *XI712)
{
switch (CURRENT_TERMINAL) {
case lex_as:
{
int XI381;
ADVANCE_LEXER;
XR743 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_error_sev ((*XI712), (XI381));
}
}
break;
case lex_allow: case lex_disallow: case lex_off:
case lex_on: case lex_warning:
{
int XI381;
XR513 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_error_sev ((*XI712), (XI381));
}
}
break;
case 358:
return;
default:
goto XL1;
}
return;
XL1:;
SAVE_LEXER (358);
return;
}
void
XR786 (void)
{
switch (CURRENT_TERMINAL) {
case lex_name:
{
IDENTIFIER XI379;
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;
}
}
{
begin_option ((XI379));
}
}
break;
default:
{
IDENTIFIER XI379;
{
(XI379) = NULL_id;
crt_id_qualifier = qual_none;
qual_namespace = NULL_nspace;
}
{
begin_option ((XI379));
}
}
break;
case 358:
return;
}
return;
XL1:;
SAVE_LEXER (358);
return;
}
void
XR787 (void)
{
switch (CURRENT_TERMINAL) {
case lex_end:
{
ADVANCE_LEXER;
{
IGNORE end_decl_block (NULL_id, 1);
}
}
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_begin:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
begin_decl_block ((XI379));
}
}
break;
case 358:
return;
default:
goto XL1;
}
return;
XL1:;
SAVE_LEXER (358);
return;
}
void
XR720 (unsigned *XO381, unsigned *XO477)
{
unsigned XI381;
unsigned XI477;
switch (CURRENT_TERMINAL) {
case lex_disallow:
{
ADVANCE_LEXER;
{
(XI381) = (unsigned) OPTION_ON;
}
{
(XI477) = (unsigned) OPTION_ON;
}
}
break;
case lex_open_Hround: case lex_allow: case lex_warning:
{
unsigned XI413;
unsigned XI448;
{
switch (CURRENT_TERMINAL) {
case lex_open_Hround:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_ignore:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close_Hround:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI413) = (unsigned) OPTION_ON;
}
}
break;
default:
{
{
(XI413) = (unsigned) OPTION_OFF;
}
}
break;
}
}
{
switch (CURRENT_TERMINAL) {
case lex_allow:
{
ADVANCE_LEXER;
{
(XI448) = (unsigned) OPTION_OFF;
}
}
break;
case lex_warning:
{
ADVANCE_LEXER;
{
(XI448) = (unsigned) OPTION_WARN;
}
}
break;
default:
goto XL1;
}
}
XI381 = XI448;
XI477 = XI413;
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO381 = XI381;
*XO477 = XI477;
}
void
XR788 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_decl:
{
ADVANCE_LEXER;
{
(XI712) = OPT_decl_cond;
}
}
break;
case lex_lvalue:
{
ADVANCE_LEXER;
{
(XI712) = OPT_cond_lvalue;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR789 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_bitfield:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_int:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_type:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_bitf_type;
}
}
break;
case lex_comma:
{
ADVANCE_LEXER;
{
(XI712) = OPT_comma_extra;
}
}
break;
case lex_macro:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_definition:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_macro_redef;
}
}
break;
case lex_semicolon:
{
ADVANCE_LEXER;
XR842 (&XI712);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
break;
case lex_type:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_definition:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_type_redef;
}
}
break;
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;
}
}
{
(XI712) = OPT_ellipsis_extra;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR790 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_as:
{
ADVANCE_LEXER;
{
switch (CURRENT_TERMINAL) {
case lex_ellipsis:
{
ADVANCE_LEXER;
}
break;
case lex_ellipsis_Hexp:
{
ADVANCE_LEXER;
}
break;
default:
goto XL1;
}
}
{
(XI712) = OPT_ellipsis_ident;
}
}
break;
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;
}
}
{
(XI712) = OPT_ellipsis_ident;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR791 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_int:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_type:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
XR716 (&XI712);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
break;
case lex_token:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_definition:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_func_token_undef;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR792 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_interface:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_decl:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_interf_incompat;
}
}
break;
case lex_linkage:
{
ADVANCE_LEXER;
{
(XI712) = OPT_link_incompat;
}
}
break;
case lex_member:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_decl:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_member_incompat;
}
}
break;
case lex_promoted:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_function:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_argument:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_func_incompat;
}
}
break;
case lex_type:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_qualifier:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_type_qual_incompat;
}
}
break;
case lex_void:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_return:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_func_ret_void;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR793 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_directive:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_after:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
{
switch (CURRENT_TERMINAL) {
case lex_hash_H1:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
}
}
{
(XI712) = OPT_ppdir_indent_dir;
}
}
break;
case lex_hash_H1:
{
{
{
switch (CURRENT_TERMINAL) {
case lex_hash_H1:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
}
}
switch (CURRENT_TERMINAL) {
case lex_directive:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_indent;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR794 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_directive:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_div:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_nline:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_after:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_ident:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_id;
}
}
break;
case lex_external:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_decl:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_decl_none;
}
}
break;
case lex_ident:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_after:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
{
switch (CURRENT_TERMINAL) {
case lex_hash_H1:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
}
}
{
(XI712) = OPT_hash_ident;
}
}
break;
case lex_nline:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_after:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_file:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_end:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_eof_nline;
}
}
break;
case lex_token:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_definition:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_token_undef;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR412 (SID_LIST_ID XI410, SID_LIST_ID *XO406)
{
SID_LIST_ID XI406;
if ((CURRENT_TERMINAL) == 358) {
return;
}
{
IDENTIFIER XI413;
SID_LIST_ID XI409;
XR411 (XI410, &XI413);
{
switch (CURRENT_TERMINAL) {
case lex_comma:
{
ADVANCE_LEXER;
XR837 (&XI410, &XI409);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
break;
default:
{
{
(XI409) = NULL_list (IDENTIFIER);
}
}
break;
case 358:
RESTORE_LEXER;
goto XL1;
}
}
{
CONS_id ((XI413), (XI409), (XI406));
}
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO406 = XI406;
}
void
XR795 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_open_Hround:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_weak:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_close_Hround:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_func_weak;
}
}
break;
default:
{
{
(XI712) = OPT_func_proto;
}
}
break;
case 358:
return;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR796 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_directive:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_unknown;
}
}
break;
case lex_escape:
{
ADVANCE_LEXER;
{
(XI712) = OPT_escape_unknown;
}
}
break;
case lex_pragma:
{
ADVANCE_LEXER;
{
(XI712) = OPT_pragma_unknown;
}
}
break;
case lex_struct:
{
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;
{
(XI712) = OPT_decl_struct_anon;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR719 (int *XO712, int *XO718)
{
int XI712;
int XI718;
switch (CURRENT_TERMINAL) {
case lex_assert:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_assert;
(XI718) = OPT_ppdir_assert_ignore;
}
}
break;
case lex_file:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_file;
(XI718) = OPT_ppdir_file_ignore;
}
}
break;
case lex_ident:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_ident;
(XI718) = OPT_ppdir_ident_ignore;
}
}
break;
case lex_import:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_import;
(XI718) = OPT_ppdir_import_ignore;
}
}
break;
case lex_include_Hnext:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_import;
(XI718) = OPT_ppdir_import_ignore;
}
}
break;
case lex_unassert:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_unassert;
(XI718) = OPT_ppdir_unassert_ignore;
}
}
break;
case lex_warning:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_warning;
(XI718) = OPT_ppdir_warning_ignore;
}
}
break;
case lex_weak:
{
ADVANCE_LEXER;
{
(XI712) = OPT_ppdir_weak;
(XI718) = OPT_ppdir_weak_ignore;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
*XO718 = XI718;
}
void
XR797 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_initialization:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_analysis:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_init_aggregate;
}
}
break;
case lex_struct:
{
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_analysis:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_complete_struct;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR725 (unsigned *XO477)
{
unsigned XI477;
switch (CURRENT_TERMINAL) {
case lex_external:
{
ADVANCE_LEXER;
{
(XI477) = (unsigned) OPTION_OFF;
}
}
break;
case lex_internal:
{
ADVANCE_LEXER;
{
(XI477) = (unsigned) OPTION_ON;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO477 = XI477;
}
void
XR798 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_export:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_template:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_templ_export;
}
}
break;
case lex_function:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_decl:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_func_impl;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR799 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_operator:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_analysis:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_int_operator;
}
}
break;
case lex_overflow:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_analysis:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_int_overflow;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR800 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_analysis:
{
ADVANCE_LEXER;
{
(XI712) = OPT_variable;
}
}
break;
case lex_hiding:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_analysis:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_decl_hide;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR801 (void)
{
switch (CURRENT_TERMINAL) {
case lex_overload:
{
unsigned XI477;
unsigned XI381;
int XI712;
int XI718;
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_resolution:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
XR729 (&XI477);
XR510 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI712) = OPT_overload_dep;
}
{
(XI718) = OPT_overload_strict;
}
{
set_option ((XI712), (XI381));
}
{
set_option ((XI718), (XI477));
}
}
break;
case lex_decl: case lex_lvalue:
{
int XI712;
unsigned XI381;
XR788 (&XI712);
XR510 (&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
XR802 (void)
{
switch (CURRENT_TERMINAL) {
case lex_as:
{
int XI712;
unsigned XI381;
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_macro:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_argument:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_macro_arg_dir;
}
XR510 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_option ((XI712), (XI381));
}
}
break;
case lex_assert: case lex_file: case lex_ident:
case lex_import: case lex_include_Hnext: case lex_unassert:
case lex_warning: case lex_weak:
{
int XI712;
int XI718;
unsigned XI381;
unsigned XI477;
XR719 (&XI712, &XI718);
XR720 (&XI381, &XI477);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_option ((XI712), (XI381));
}
{
set_option ((XI718), (XI477));
}
}
break;
case 358:
return;
default:
goto XL1;
}
return;
XL1:;
SAVE_LEXER (358);
return;
}
void
XR803 (void)
{
switch (CURRENT_TERMINAL) {
case lex_function:
{
int XI712;
unsigned XI381;
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_linkage:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_func_linkage;
}
XR509 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_option ((XI712), (XI381));
}
}
break;
case lex_linkage:
{
EXP XI381;
DECL_SPEC XI413;
ADVANCE_LEXER;
{
switch (CURRENT_TERMINAL) {
case lex_string_Hexp:
{
{
XI381 = crt_token->pp_data.exp;
}
ADVANCE_LEXER;
}
break;
case lex_wstring_Hexp:
{
{
XI381 = crt_token->pp_data.exp;
}
ADVANCE_LEXER;
}
break;
default:
goto XL1;
}
}
{
(XI413) = find_linkage ((XI381));
}
{
set_link_opt ((XI413));
}
}
break;
case lex_volatile: case lex_volatile_Ht:
{
int XI712;
unsigned XI381;
{
switch (CURRENT_TERMINAL) {
case lex_volatile:
{
ADVANCE_LEXER;
}
break;
case lex_volatile_Ht:
{
ADVANCE_LEXER;
}
break;
default:
goto XL1;
}
}
{
(XI712) = OPT_decl_volatile;
}
{
(XI381) = (unsigned) OPTION_ON;
}
{
set_option ((XI712), (XI381));
}
}
break;
case 358:
return;
default:
goto XL1;
}
return;
XL1:;
SAVE_LEXER (358);
return;
}
void
XR804 (void)
{
switch (CURRENT_TERMINAL) {
case lex_conditional:
{
int XI712;
unsigned XI381;
ADVANCE_LEXER;
{
(XI712) = OPT_const_cond;
}
XR510 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_option ((XI712), (XI381));
}
}
break;
case lex_linkage:
{
unsigned XI381;
int XI712;
ADVANCE_LEXER;
XR725 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI712) = OPT_const_internal;
}
{
set_option ((XI712), (XI381));
}
}
break;
case 358:
return;
default:
goto XL1;
}
return;
XL1:;
SAVE_LEXER (358);
return;
}
void
XR713 (int *XO712)
{
int XI712;
switch (CURRENT_TERMINAL) {
case lex_open_Hround:
{
ADVANCE_LEXER;
XR845 (&XI712);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
break;
default:
{
{
(XI712) = OPT_conv;
}
}
break;
case 358:
return;
}
goto XL0;
XL1:;
SAVE_LEXER (358);
return;
XL0:;
*XO712 = XI712;
}
void
XR805 (void)
{
switch (CURRENT_TERMINAL) {
case lex_file:
{
int XI712;
unsigned XI381;
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_includes:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_include_full;
}
XR510 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_option ((XI712), (XI381));
}
}
break;
case lex_struct: case lex_initialization:
{
int XI712;
unsigned XI381;
XR797 (&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
parse_preproc (int *XO401)
{
int XI401;
if ((CURRENT_TERMINAL) == 358) {
return;
}
{
XR775 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_ignore_token;
}
}
goto XL0;
XL1:;
{
{
(XI401) = lex_hash_Hpragma;
}
}
XL0:;
*XO401 = XI401;
}
void
XR806 (void)
{
switch (CURRENT_TERMINAL) {
case lex_int: case lex_token:
{
int XI712;
unsigned XI381;
XR791 (&XI712);
XR510 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_option ((XI712), (XI381));
}
}
break;
case lex_export: case lex_function:
{
int XI712;
unsigned XI381;
XR798 (&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
XR807 (void)
{
switch (CURRENT_TERMINAL) {
case lex_external:
{
int XI712;
unsigned XI381;
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_linkage:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI712) = OPT_decl_unify;
}
XR509 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_option ((XI712), (XI381));
}
}
break;
case lex_incompatible:
{
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_concat_string;
}
XR510 (&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
parse_tendra (int *XO401)
{
int XI401;
switch (CURRENT_TERMINAL) {
case lex_accept:
{
ADVANCE_LEXER;
XR818 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_argument:
{
TYPE XI826;
ADVANCE_LEXER;
{
rescan_pragma (lex_as);
RESCAN_LEXER;
}
{
(XI826) = type_error;
parse_tok_type (&(XI826));
object_type ((XI826), null_tag);
}
switch (CURRENT_TERMINAL) {
case lex_as:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
XR815 (&XI826);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_begin:
{
ADVANCE_LEXER;
XR786 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_bottom:
{
IDENTIFIER XI379;
TYPE XI827;
ADVANCE_LEXER;
{
int t = crt_lex_token;
if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) {
crt_lex_token = lex_identifier;
}
}
{
crt_templ_qualifier = 0;
}
{
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;
}
}
{
(XI827) = type_bottom;
}
{
typedef_special ((XI379), (XI827));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_character:
{
ADVANCE_LEXER;
XR819 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_compatible:
{
ADVANCE_LEXER;
XR820 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_complete:
{
ADVANCE_LEXER;
XR805 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_compute:
{
IDENTIFIER XI379;
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_promote:
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;
}
}
{
compute_promote_type ((XI379));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_conditional:
{
ADVANCE_LEXER;
XR801 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_const:
{
ADVANCE_LEXER;
XR804 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_conversion:
{
ADVANCE_LEXER;
XR822 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_define:
{
int XI477;
ADVANCE_LEXER;
{
(XI477) = lex_define;
}
{
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;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_directive:
{
ADVANCE_LEXER;
XR802 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_discard:
{
ADVANCE_LEXER;
XR830 (&XI401);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_end:
{
ADVANCE_LEXER;
{
end_option (1);
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_exhaustive:
{
ADVANCE_LEXER;
{
(XI401) = lex_exhaustive;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_external:
{
ADVANCE_LEXER;
XR803 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_implicit:
{
ADVANCE_LEXER;
XR806 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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);
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_initialization:
{
ADVANCE_LEXER;
XR821 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_integer:
{
ADVANCE_LEXER;
XR823 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_interface:
{
int XI477;
ADVANCE_LEXER;
{
(XI477) = crt_interface;
}
{
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;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_no_Hdef:
{
int XI477;
ADVANCE_LEXER;
{
(XI477) = lex_no_Hdef;
}
{
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;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_option:
{
ADVANCE_LEXER;
XR813 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_postpone:
{
int XI413;
ADVANCE_LEXER;
{
rescan_pragma (lex_unknown);
RESCAN_LEXER;
}
{
(XI413) = lex_postpone;
}
XR499 (XI413);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_preserve:
{
ADVANCE_LEXER;
XR814 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_promoted:
{
TYPE XI828;
TYPE XI452;
ADVANCE_LEXER;
{
rescan_pragma (lex_unknown);
RESCAN_LEXER;
}
{
(XI828) = type_error;
parse_tok_type (&(XI828));
object_type ((XI828), null_tag);
}
switch (CURRENT_TERMINAL) {
case lex_colon:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
(XI452) = type_error;
parse_tok_type (&(XI452));
object_type ((XI452), null_tag);
}
{
set_promote_type ((XI828), (XI452), ntype_ellipsis);
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_reject:
{
int XI477;
ADVANCE_LEXER;
{
(XI477) = lex_ignore;
}
{
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;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_semicolon:
{
ADVANCE_LEXER;
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_set:
{
ADVANCE_LEXER;
XR831 (&XI401);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
break;
case lex_suspend:
{
ADVANCE_LEXER;
switch (CURRENT_TERMINAL) {
case lex_static:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
rescan_pragma (lex_unknown);
RESCAN_LEXER;
}
XR501 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_type:
{
IDENTIFIER XI379;
TYPE XI829;
ADVANCE_LEXER;
{
int t = crt_lex_token;
if (t >= FIRST_KEYWORD && t <= LAST_KEYWORD) {
crt_lex_token = lex_identifier;
}
}
{
crt_templ_qualifier = 0;
}
{
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_for:
break;
default:
goto XL1;
}
ADVANCE_LEXER;
{
switch (CURRENT_TERMINAL) {
case lex_bottom:
{
ADVANCE_LEXER;
{
(XI829) = type_bottom;
}
}
break;
case lex_ptrdiff_Ht:
{
ADVANCE_LEXER;
{
(XI829) = type_ptrdiff_t;
}
}
break;
case lex_size_Ht:
{
ADVANCE_LEXER;
{
(XI829) = type_size_t;
}
}
break;
case lex_wchar_Ht:
{
ADVANCE_LEXER;
{
(XI829) = type_wchar_t;
}
}
break;
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;
}
}
XR862 (&XI829);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
}
break;
default:
goto XL1;
}
}
{
typedef_special ((XI379), (XI829));
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_undef:
{
ADVANCE_LEXER;
XR824 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_unify:
{
ADVANCE_LEXER;
XR807 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_unpostpone:
{
int XI413;
ADVANCE_LEXER;
{
rescan_pragma (lex_unknown);
RESCAN_LEXER;
}
{
(XI413) = lex_unpostpone;
}
XR499 (XI413);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_use:
{
ADVANCE_LEXER;
XR810 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_variable:
{
ADVANCE_LEXER;
XR808 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_weak:
{
ADVANCE_LEXER;
XR809 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
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));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_error:
{
int XI712;
XR761 (&XI712);
XR785 (&XI712);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_keyword:
{
IDENTIFIER XI379;
int XI825;
XR553 (&XI379);
switch (CURRENT_TERMINAL) {
case lex_for:
break;
case 358:
RESTORE_LEXER;
goto XL1;
default:
goto XL1;
}
ADVANCE_LEXER;
XR554 (&XI825);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
define_keyword ((XI379), (XI825));
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_member:
{
XR486 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case lex_token:
{
XR460 ();
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
break;
case 358:
return;
default:
goto XL1;
}
goto XL0;
XL1:;
{
{
/* Syntax errors */
ERROR err = ERR_lex_parse (crt_token);
report (crt_loc, err);
have_syntax_error = 1;
}
{
(XI401) = lex_hash_Hpragma;
}
}
XL0:;
*XO401 = XI401;
}
void
XR808 (void)
{
switch (CURRENT_TERMINAL) {
case lex_initialization:
{
int XI712;
unsigned XI381;
ADVANCE_LEXER;
{
(XI712) = OPT_init_dynamic;
}
XR510 (&XI381);
if ((CURRENT_TERMINAL) == 358) {
RESTORE_LEXER;
goto XL1;
}
{
set_option ((XI712), (XI381));
}
}
break;
case lex_analysis: case lex_hiding:
{
int XI712;
unsigned XI381;
XR800 (&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;
}
/* END OF FILE */
syntax highlighted by Code2HTML, v. 0.9.1