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

📄 parse.c

📁 gcc-2.95.3 Linux下最常用的C编译器
💻 C
📖 第 1 页 / 共 5 页
字号:
/*  A Bison parser, made from parse.y by  GNU Bison version 1.25  */#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_KEYWORD	280#define	GOTO	281#define	ASM_KEYWORD	282#define	TYPEOF	283#define	ALIGNOF	284#define	SIGOF	285#define	ATTRIBUTE	286#define	EXTENSION	287#define	LABEL	288#define	REALPART	289#define	IMAGPART	290#define	AGGR	291#define	VISSPEC	292#define	DELETE	293#define	NEW	294#define	THIS	295#define	OPERATOR	296#define	CXX_TRUE	297#define	CXX_FALSE	298#define	NAMESPACE	299#define	TYPENAME_KEYWORD	300#define	USING	301#define	LEFT_RIGHT	302#define	TEMPLATE	303#define	TYPEID	304#define	DYNAMIC_CAST	305#define	STATIC_CAST	306#define	REINTERPRET_CAST	307#define	CONST_CAST	308#define	SCOPE	309#define	EMPTY	310#define	PTYPENAME	311#define	NSNAME	312#define	THROW	313#define	ASSIGN	314#define	OROR	315#define	ANDAND	316#define	MIN_MAX	317#define	EQCOMPARE	318#define	ARITHCOMPARE	319#define	LSHIFT	320#define	RSHIFT	321#define	POINTSAT_STAR	322#define	DOT_STAR	323#define	UNARY	324#define	PLUSPLUS	325#define	MINUSMINUS	326#define	HYPERUNARY	327#define	PAREN_STAR_PAREN	328#define	POINTSAT	329#define	TRY	330#define	CATCH	331#define	PRE_PARSED_FUNCTION_DECL	332#define	EXTERN_LANG_STRING	333#define	ALL	334#define	PRE_PARSED_CLASS_DECL	335#define	DEFARG	336#define	DEFARG_MARKER	337#define	TYPENAME_DEFN	338#define	IDENTIFIER_DEFN	339#define	PTYPENAME_DEFN	340#define	END_OF_LINE	341#define	END_OF_SAVED_INPUT	342#line 29 "parse.y"/* Cause the `yydebug' variable to be defined.  */#define YYDEBUG 1#include "config.h"#include "system.h"#include "tree.h"#include "input.h"#include "flags.h"#include "lex.h"#include "cp-tree.h"#include "output.h"#include "except.h"#include "toplev.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;extern int end_of_file;/* 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 const char *cond_stmt_keyword;static tree empty_parms PROTO((void));static int parse_decl PROTO((tree, tree, tree, int, tree *));/* 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 93 "parse.y"typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;#line 287 "parse.y"/* List of types and structure classes of the current declaration.  */static tree current_declspecs;/* 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;/* When defining an aggregate, this is the kind of the most recent one   being defined.  (For example, this might be class_type_node.)  */static tree current_aggr;/* When defining an enumeration, this is the type of the enumeration.  */static tree current_enum_type;/* 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));static intparse_decl(declarator, specs_attrs, attributes, initialized, decl)  tree declarator;  tree specs_attrs;  tree attributes;  int initialized;  tree* decl;{  int  sm;  split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);  if (current_declspecs      && TREE_CODE (current_declspecs) != TREE_LIST)    current_declspecs = build_decl_list (NULL_TREE, current_declspecs);  if (have_extern_spec && !used_extern_spec)    {      current_declspecs = decl_tree_cons (NULL_TREE, 					  get_identifier ("extern"), 					  current_declspecs);      used_extern_spec = 1;    }  sm = suspend_momentary ();  *decl = start_decl (declarator, current_declspecs, initialized,		      attributes, prefix_attributes);  return sm;}#include <stdio.h>#ifndef __cplusplus#ifndef __STDC__#define const#endif#endif

⌨️ 快捷键说明

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