⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse.c

📁 GCC编译器源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
/*  A Bison parser, made from parse.y by  Bison version A2.5 (Andrew Consortium)  */#define YYBISON 1  /* Identify Bison output.  */#define	IDENTIFIER	258#define	TYPENAME	259#define	SELFNAME	260#define	PFUNCNAME	261#define	SCSPEC	262#define	TYPESPEC	263#define	CV_QUALIFIER	264#define	CONSTANT	265#define	STRING	266#define	ELLIPSIS	267#define	SIZEOF	268#define	ENUM	269#define	IF	270#define	ELSE	271#define	WHILE	272#define	DO	273#define	FOR	274#define	SWITCH	275#define	CASE	276#define	DEFAULT	277#define	BREAK	278#define	CONTINUE	279#define	RETURN	280#define	GOTO	281#define	ASM_KEYWORD	282#define	GCC_ASM_KEYWORD	283#define	TYPEOF	284#define	ALIGNOF	285#define	SIGOF	286#define	ATTRIBUTE	287#define	EXTENSION	288#define	LABEL	289#define	REALPART	290#define	IMAGPART	291#define	AGGR	292#define	VISSPEC	293#define	DELETE	294#define	NEW	295#define	THIS	296#define	OPERATOR	297#define	CXX_TRUE	298#define	CXX_FALSE	299#define	NAMESPACE	300#define	TYPENAME_KEYWORD	301#define	USING	302#define	LEFT_RIGHT	303#define	TEMPLATE	304#define	TYPEID	305#define	DYNAMIC_CAST	306#define	STATIC_CAST	307#define	REINTERPRET_CAST	308#define	CONST_CAST	309#define	SCOPE	310#define	EMPTY	311#define	PTYPENAME	312#define	NSNAME	313#define	THROW	314#define	ASSIGN	315#define	OROR	316#define	ANDAND	317#define	MIN_MAX	318#define	EQCOMPARE	319#define	ARITHCOMPARE	320#define	LSHIFT	321#define	RSHIFT	322#define	POINTSAT_STAR	323#define	DOT_STAR	324#define	UNARY	325#define	PLUSPLUS	326#define	MINUSMINUS	327#define	HYPERUNARY	328#define	PAREN_STAR_PAREN	329#define	POINTSAT	330#define	TRY	331#define	CATCH	332#define	TYPENAME_ELLIPSIS	333#define	PRE_PARSED_FUNCTION_DECL	334#define	EXTERN_LANG_STRING	335#define	ALL	336#define	PRE_PARSED_CLASS_DECL	337#define	DEFARG	338#define	DEFARG_MARKER	339#define	TYPENAME_DEFN	340#define	IDENTIFIER_DEFN	341#define	PTYPENAME_DEFN	342#define	END_OF_LINE	343#define	END_OF_SAVED_INPUT	344#line 29 "parse.y"/* Cause the `yydebug' variable to be defined.  */#define YYDEBUG 1#include "config.h"#include <stdio.h>#include <errno.h>#include "tree.h"#include "input.h"#include "flags.h"#include "lex.h"#include "cp-tree.h"#include "output.h"#include "except.h"/* Since parsers are distinct for each language, put the language string   definition here.  (fnf) */char *language_string = "GNU C++";extern tree void_list_node;extern struct obstack permanent_obstack;#ifndef errnoextern int errno;#endifextern int end_of_file;extern int current_class_depth;extern tree last_tree;/* FSF LOCAL dje prefix attributes */extern tree strip_attrs		PROTO((tree));/* END FSF LOCAL *//* Like YYERROR but do call yyerror.  */#define YYERROR1 { yyerror ("syntax error"); YYERROR; }#define OP0(NODE) (TREE_OPERAND (NODE, 0))#define OP1(NODE) (TREE_OPERAND (NODE, 1))/* Contains the statement keyword (if/while/do) to include in an   error message if the user supplies an empty conditional expression.  */static char *cond_stmt_keyword;static tree empty_parms PROTO((void));/* Nonzero if we have an `extern "C"' acting as an extern specifier.  */int have_extern_spec;int used_extern_spec;/* Cons up an empty parameter list.  */#ifdef __GNUC____inline#endifstatic treeempty_parms (){  tree parms;  if (strict_prototype      || current_class_type != NULL)    parms = void_list_node;  else    parms = NULL_TREE;  return parms;}#line 101 "parse.y"typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;#line 289 "parse.y"/* List of types and structure classes of the current declaration.  */static tree current_declspecs = NULL_TREE;/* List of prefix attributes in effect.   Prefix attributes are parsed by the reserved_declspecs and declmods   rules.  They create a list that contains *both* declspecs and attrs.  *//* ??? It is not clear yet that all cases where an attribute can now appear in   a declspec list have been updated.  */static tree prefix_attributes = NULL_TREE;/* When defining an aggregate, this is the most recent one being defined.  */static tree current_aggr;/* Tell yyparse how to print a token's value, if yydebug is set.  */#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)extern void yyprint			PROTO((FILE *, int, YYSTYPE));extern tree combine_strings		PROTO((tree));#include <stdio.h>#ifndef __cplusplus#ifndef __STDC__#define const#endif#endif#define	YYFINAL		1529#define	YYFLAG		-32768#define	YYNTBASE	114#define YYTRANSLATE(x) ((unsigned)(x) <= 344 ? yytranslate[x] : 376)static const char yytranslate[] = {     0,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,   112,     2,     2,     2,    83,    71,     2,    94,   110,    81,    79,    60,    80,    93,    82,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,    63,    61,    75,    65,    76,    66,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,    95,     2,   113,    70,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -