亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c-parse.y

?? 早期freebsd實現
?? Y
?? 第 1 頁 / 共 4 頁
字號:
primary:	IDENTIFIER		{		  tree context;		  $$ = lastiddecl;		  if (!$$ || $$ == error_mark_node)		    {		      if (yychar == YYEMPTY)			yychar = YYLEX;		      if (yychar == '(')			{			    {			      /* Ordinary implicit function declaration.  */			      $$ = implicitly_declare ($1);			      assemble_external ($$);			      TREE_USED ($$) = 1;			    }			}		      else if (current_function_decl == 0)			{			  error ("`%s' undeclared, outside of functions",				 IDENTIFIER_POINTER ($1));			  $$ = error_mark_node;			}		      else			{			    {			      if (IDENTIFIER_GLOBAL_VALUE ($1) != error_mark_node				  || IDENTIFIER_ERROR_LOCUS ($1) != current_function_decl)				{				  error ("`%s' undeclared (first use this function)",					 IDENTIFIER_POINTER ($1));				  if (! undeclared_variable_notice)				    {				      error ("(Each undeclared identifier is reported only once");				      error ("for each function it appears in.)");				      undeclared_variable_notice = 1;				    }				}			      $$ = error_mark_node;			      /* Prevent repeated error messages.  */			      IDENTIFIER_GLOBAL_VALUE ($1) = error_mark_node;			      IDENTIFIER_ERROR_LOCUS ($1) = current_function_decl;			    }			}		    }		  else if (TREE_TYPE ($$) == error_mark_node)		    $$ = error_mark_node;		  else if (C_DECL_ANTICIPATED ($$))		    {		      /* The first time we see a build-in function used,			 if it has not been declared.  */		      C_DECL_ANTICIPATED ($$) = 0;		      if (yychar == YYEMPTY)			yychar = YYLEX;		      if (yychar == '(')			{			  /* Omit the implicit declaration we			     would ordinarily do, so we don't lose			     the actual built in type.			     But print a diagnostic for the mismatch.  */			    if (TREE_CODE ($$) != FUNCTION_DECL)			      error ("`%s' implicitly declared as function",				     IDENTIFIER_POINTER (DECL_NAME ($$)));			  else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE ($$)))				    != TYPE_MODE (integer_type_node))				   && (TREE_TYPE (TREE_TYPE ($$))				       != void_type_node))			    pedwarn ("type mismatch in implicit declaration for built-in function `%s'",				     IDENTIFIER_POINTER (DECL_NAME ($$)));			  /* If it really returns void, change that to int.  */			  if (TREE_TYPE (TREE_TYPE ($$)) == void_type_node)			    TREE_TYPE ($$)			      = build_function_type (integer_type_node,						     TYPE_ARG_TYPES (TREE_TYPE ($$)));			}		      else			pedwarn ("built-in function `%s' used without declaration",				 IDENTIFIER_POINTER (DECL_NAME ($$)));		      /* Do what we would ordinarily do when a fn is used.  */		      assemble_external ($$);		      TREE_USED ($$) = 1;		    }		  else		    {		      assemble_external ($$);		      TREE_USED ($$) = 1;		    }		  if (TREE_CODE ($$) == CONST_DECL)		    {		      $$ = DECL_INITIAL ($$);		      /* This is to prevent an enum whose value is 0			 from being considered a null pointer constant.  */		      $$ = build1 (NOP_EXPR, TREE_TYPE ($$), $$);		      TREE_CONSTANT ($$) = 1;		    }		}	| CONSTANT	| string		{ $$ = combine_strings ($1); }	| '(' expr ')'		{ char class = TREE_CODE_CLASS (TREE_CODE ($2));		  if (class == 'e' || class == '1'		      || class == '2' || class == '<')		    C_SET_EXP_ORIGINAL_CODE ($2, ERROR_MARK);		  $$ = $2; }	| '(' error ')'		{ $$ = error_mark_node; }	| '('		{ if (current_function_decl == 0)		    {		      error ("braced-group within expression allowed only inside a function");		      YYERROR;		    }		  /* We must force a BLOCK for this level		     so that, if it is not expanded later,		     there is a way to turn off the entire subtree of blocks		     that are contained in it.  */		  keep_next_level ();		  push_label_level ();		  $<ttype>$ = expand_start_stmt_expr (); }	  compstmt ')'		{ tree rtl_exp;		  if (pedantic)		    pedwarn ("ANSI C forbids braced-groups within expressions");		  pop_label_level ();		  rtl_exp = expand_end_stmt_expr ($<ttype>2);		  /* The statements have side effects, so the group does.  */		  TREE_SIDE_EFFECTS (rtl_exp) = 1;		  /* Make a BIND_EXPR for the BLOCK already made.  */		  $$ = build (BIND_EXPR, TREE_TYPE (rtl_exp),			      NULL_TREE, rtl_exp, $3);		  /* Remove the block from the tree at this point.		     It gets put back at the proper place		     when the BIND_EXPR is expanded.  */		  delete_block ($3);		}	| primary '(' exprlist ')'   %prec '.'		{ $$ = build_function_call ($1, $3); }	| primary '[' expr ']'   %prec '.'		{ $$ = build_array_ref ($1, $3); }	| primary '.' identifier		{		    $$ = build_component_ref ($1, $3);		}	| primary POINTSAT identifier		{                  tree expr = build_indirect_ref ($1, "->");                    $$ = build_component_ref (expr, $3);		}	| primary PLUSPLUS		{ $$ = build_unary_op (POSTINCREMENT_EXPR, $1, 0); }	| primary MINUSMINUS		{ $$ = build_unary_op (POSTDECREMENT_EXPR, $1, 0); }	;/* Produces a STRING_CST with perhaps more STRING_CSTs chained onto it.  */string:	  STRING	| string STRING		{ $$ = chainon ($1, $2); }	;xdecls:	/* empty */	| datadecls	| datadecls ELLIPSIS		/* ... is used here to indicate a varargs function.  */		{ c_mark_varargs ();		  if (pedantic)		    pedwarn ("ANSI C does not permit use of `varargs.h'"); }	;/* The following are analogous to lineno_decl, decls and decl   except that they do not allow nested functions.   They are used for old-style parm decls.  */lineno_datadecl:	  save_filename save_lineno datadecl		{ }	;datadecls:	lineno_datadecl	| errstmt	| datadecls lineno_datadecl	| lineno_datadecl errstmt	;datadecl:	typed_declspecs setspecs initdecls ';'		{ current_declspecs = TREE_VALUE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| declmods setspecs notype_initdecls ';'		{ current_declspecs = TREE_VALUE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| typed_declspecs ';'		{ shadow_tag_warned ($1, 1);		  pedwarn ("empty declaration"); }	| declmods ';'		{ pedwarn ("empty declaration"); }	;/* This combination which saves a lineno before a decl   is the normal thing to use, rather than decl itself.   This is to avoid shift/reduce conflicts in contexts   where statement labels are allowed.  */lineno_decl:	  save_filename save_lineno decl		{ }	;decls:	lineno_decl	| errstmt	| decls lineno_decl	| lineno_decl errstmt	;/* records the type and storage class specs to use for processing   the declarators that follow.   Maintains a stack of outer-level values of current_declspecs,   for the sake of parm declarations nested in function declarators.  */setspecs: /* empty */		{ $$ = suspend_momentary ();		  pending_xref_error ();		  declspec_stack = tree_cons (NULL_TREE, current_declspecs,					      declspec_stack);		  current_declspecs = $<ttype>0; }	;decl:	typed_declspecs setspecs initdecls ';'		{ current_declspecs = TREE_VALUE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| declmods setspecs notype_initdecls ';'		{ current_declspecs = TREE_VALUE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| typed_declspecs setspecs nested_function		{ current_declspecs = TREE_VALUE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| declmods setspecs notype_nested_function		{ current_declspecs = TREE_VALUE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| typed_declspecs ';'		{ shadow_tag ($1); }	| declmods ';'		{ pedwarn ("empty declaration"); }	;/* Declspecs which contain at least one type specifier or typedef name.   (Just `const' or `volatile' is not enough.)   A typedef'd name following these is taken as a name to be declared.  */typed_declspecs:	  typespec reserved_declspecs		{ $$ = tree_cons (NULL_TREE, $1, $2); }	| declmods typespec reserved_declspecs		{ $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); }	;reserved_declspecs:  /* empty */		{ $$ = NULL_TREE; }	| reserved_declspecs typespecqual_reserved		{ $$ = tree_cons (NULL_TREE, $2, $1); }	| reserved_declspecs SCSPEC		{ if (extra_warnings)		    warning ("`%s' is not at beginning of declaration",			     IDENTIFIER_POINTER ($2));		  $$ = tree_cons (NULL_TREE, $2, $1); }	;/* List of just storage classes and type modifiers.   A declaration can start with just this, but then it cannot be used   to redeclare a typedef-name.  */declmods:	  TYPE_QUAL		{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE);		  TREE_STATIC ($$) = 1; }	| SCSPEC		{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE); }	| declmods TYPE_QUAL		{ $$ = tree_cons (NULL_TREE, $2, $1);		  TREE_STATIC ($$) = 1; }	| declmods SCSPEC		{ if (extra_warnings && TREE_STATIC ($1))		    warning ("`%s' is not at beginning of declaration",			     IDENTIFIER_POINTER ($2));		  $$ = tree_cons (NULL_TREE, $2, $1);		  TREE_STATIC ($$) = TREE_STATIC ($1); }	;/* Used instead of declspecs where storage classes are not allowed   (that is, for typenames and structure components).   Don't accept a typedef-name if anything but a modifier precedes it.  */typed_typespecs:	  typespec reserved_typespecquals		{ $$ = tree_cons (NULL_TREE, $1, $2); }	| nonempty_type_quals typespec reserved_typespecquals		{ $$ = chainon ($3, tree_cons (NULL_TREE, $2, $1)); }	;reserved_typespecquals:  /* empty */		{ $$ = NULL_TREE; }	| reserved_typespecquals typespecqual_reserved		{ $$ = tree_cons (NULL_TREE, $2, $1); }	;/* A typespec (but not a type qualifier).   Once we have seen one of these in a declaration,   if a typedef name appears then it is being redeclared.  */typespec: TYPESPEC	| structsp	| TYPENAME		{ /* For a typedef name, record the meaning, not the name.		     In case of `foo foo, bar;'.  */		  $$ = lookup_name ($1); }	| TYPEOF '(' expr ')'		{ $$ = TREE_TYPE ($3); }	| TYPEOF '(' typename ')'		{ $$ = groktypename ($3); }	;/* A typespec that is a reserved word, or a type qualifier.  */typespecqual_reserved: TYPESPEC	| TYPE_QUAL	| structsp	;initdecls:	initdcl	| initdecls ',' initdcl	;notype_initdecls:	notype_initdcl	| notype_initdecls ',' initdcl	;maybeasm:	  /* empty */		{ $$ = NULL_TREE; }	| ASM_KEYWORD '(' string ')'		{ if (TREE_CHAIN ($3)) $3 = combine_strings ($3);		  $$ = $3;		}	;initdcl:	  declarator maybeasm maybe_attribute '='		{ $<ttype>$ = start_decl ($1, current_declspecs, 1); }	  init/* Note how the declaration of the variable is in effect while its init is parsed! */		{ decl_attributes ($<ttype>5, $3);		  finish_decl ($<ttype>5, $6, $2); }	| declarator maybeasm maybe_attribute		{ tree d = start_decl ($1, current_declspecs, 0);		  decl_attributes (d, $3);		  finish_decl (d, NULL_TREE, $2); }	;notype_initdcl:	  notype_declarator maybeasm maybe_attribute '='		{ $<ttype>$ = start_decl ($1, current_declspecs, 1); }	  init/* Note how the declaration of the variable is in effect while its init is parsed! */		{ decl_attributes ($<ttype>5, $3);		  finish_decl ($<ttype>5, $6, $2); }	| notype_declarator maybeasm maybe_attribute		{ tree d = start_decl ($1, current_declspecs, 0);		  decl_attributes (d, $3);		  finish_decl (d, NULL_TREE, $2); }	;/* the * rules are dummies to accept the Apollo extended syntax   so that the header files compile. */maybe_attribute:    /* empty */		{ $$ = NULL_TREE; }    | ATTRIBUTE '(' '(' attribute_list ')' ')'		{ $$ = $4; }    ;attribute_list    : attrib	{ $$ = tree_cons (NULL_TREE, $1, NULL_TREE); }    | attribute_list ',' attrib	{ $$ = tree_cons (NULL_TREE, $3, $1); }    ;attrib    : IDENTIFIER	{ if (strcmp (IDENTIFIER_POINTER ($1), "packed"))	    warning ("`%s' attribute directive ignored",		     IDENTIFIER_POINTER ($1));	  $$ = $1; }    | IDENTIFIER '(' IDENTIFIER ')'	{ /* If not "mode (m)", then issue warning.  */	  if (strcmp (IDENTIFIER_POINTER ($1), "mode") != 0)	    {	      warning ("`%s' attribute directive ignored",		       IDENTIFIER_POINTER ($1));	      $$ = $1;	    }	  else	    $$ = tree_cons ($1, $3, NULL_TREE); }    | IDENTIFIER '(' CONSTANT ')'	{ /* if not "aligned(n)", then issue warning */	  if (strcmp (IDENTIFIER_POINTER ($1), "aligned") != 0	      || TREE_CODE ($3) != INTEGER_CST)	    {	      warning ("`%s' attribute directive ignored",		       IDENTIFIER_POINTER ($1));	      $$ = $1;	    }	  else	    $$ = tree_cons ($1, $3, NULL_TREE); }    | IDENTIFIER '(' IDENTIFIER ',' CONSTANT ',' CONSTANT ')'	{ /* if not "format(...)", then issue warning */	  if (strcmp (IDENTIFIER_POINTER ($1), "format") != 0	      || TREE_CODE ($5) != INTEGER_CST	      || TREE_CODE ($7) != INTEGER_CST)	    {	      warning ("`%s' attribute directive ignored",		       IDENTIFIER_POINTER ($1));	      $$ = $1;	    }	  else	    $$ = tree_cons ($1,			    tree_cons ($3,				       tree_cons ($5, $7, NULL_TREE),

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线不卡| 99久久国产综合色|国产精品| 欧美区在线观看| 天天亚洲美女在线视频| 中文字幕欧美激情| 国产69精品久久777的优势| 国产农村妇女毛片精品久久麻豆| 国产精品中文字幕日韩精品 | 久久久国产精华| 国产成人精品aa毛片| 中文字幕一区二区三中文字幕| 99久久夜色精品国产网站| 一区二区三区久久| 日韩欧美一区二区视频| av不卡一区二区三区| 国产精品乱码一区二区三区软件| 成人精品免费网站| 亚洲自拍偷拍图区| 精品盗摄一区二区三区| 99这里只有久久精品视频| 亚洲香蕉伊在人在线观| 精品国产乱码久久久久久影片| 国产.精品.日韩.另类.中文.在线.播放| 国产精品美女久久久久久久| 在线视频综合导航| 紧缚捆绑精品一区二区| 日韩一区在线看| 日韩一区二区精品葵司在线| fc2成人免费人成在线观看播放| 亚洲小说欧美激情另类| 久久精品亚洲一区二区三区浴池| 91啪九色porn原创视频在线观看| 日韩国产欧美在线播放| 国产精品国产三级国产| 欧美日韩国产首页在线观看| 成人晚上爱看视频| 日韩电影网1区2区| 亚洲精品国产无套在线观| 欧美成人video| 欧美吞精做爰啪啪高潮| 成人免费视频视频在线观看免费| 午夜一区二区三区视频| 中文字幕一区二区在线观看| 欧美大片一区二区| 欧美性三三影院| www.亚洲色图.com| 国产一区二区三区免费观看| 亚洲一区电影777| 国产亚洲精品福利| 日韩美女主播在线视频一区二区三区 | 亚洲综合视频在线观看| 国产人成亚洲第一网站在线播放| 欧美日韩国产综合一区二区三区| 成人97人人超碰人人99| 国产精品自在在线| 麻豆国产精品官网| 亚洲一区二区在线免费观看视频| 国产日韩欧美综合一区| 精品日韩欧美在线| 91精品在线免费| 91高清视频免费看| 色av成人天堂桃色av| 成人av在线网站| 国产乱人伦偷精品视频不卡| 美洲天堂一区二卡三卡四卡视频| 亚洲国产cao| 亚洲精品一二三| 亚洲人吸女人奶水| 亚洲欧美日韩精品久久久久| 国产精品国模大尺度视频| 欧美精彩视频一区二区三区| 精品国产a毛片| 久久久99精品久久| 久久综合久久综合久久综合| 日韩一级高清毛片| 日韩一区二区在线观看视频播放| 在线观看日韩毛片| 欧洲人成人精品| 欧美日韩激情一区二区三区| 欧美日韩情趣电影| 欧美片网站yy| 精品三级在线观看| 国产三级精品视频| 国产精品午夜春色av| 中文字幕一区二区三区在线播放| 中文字幕 久热精品 视频在线| 国产欧美日本一区视频| 国产清纯白嫩初高生在线观看91 | 成人性视频免费网站| 国产99久久久国产精品免费看| 成人综合在线网站| 9色porny自拍视频一区二区| 97久久精品人人做人人爽| 日本丰满少妇一区二区三区| 欧美羞羞免费网站| 欧美一级日韩一级| 久久久99精品免费观看不卡| 国产精品久久国产精麻豆99网站| 国产精品初高中害羞小美女文| 亚洲色大成网站www久久九九| 亚洲三级视频在线观看| 亚洲成人7777| 国产一区欧美日韩| heyzo一本久久综合| 欧美性大战久久| 欧美一级生活片| 国产精品久久三区| 天天亚洲美女在线视频| 久久99久久99小草精品免视看| 丁香一区二区三区| 精品视频免费看| 26uuu国产在线精品一区二区| 17c精品麻豆一区二区免费| 亚洲午夜精品久久久久久久久| 精品伊人久久久久7777人| youjizz国产精品| 欧美猛男男办公室激情| 久久蜜臀精品av| 亚洲福利一区二区三区| 国产在线精品不卡| 欧美日韩专区在线| 一区二区三区产品免费精品久久75| 午夜一区二区三区在线观看| 国产麻豆视频一区| 欧美嫩在线观看| 中文字幕五月欧美| 奇米一区二区三区| 色综合久久久久| 精品国产一区二区三区久久影院| 亚洲日本va在线观看| 久久精工是国产品牌吗| 色偷偷久久人人79超碰人人澡| 精品国产欧美一区二区| 亚洲国产乱码最新视频| 成人亚洲一区二区一| 日韩丝袜情趣美女图片| 日韩理论片中文av| 国产福利91精品一区| 欧美日韩一卡二卡三卡| 亚洲日本在线天堂| 久久99精品久久久久久国产越南| 欧美亚洲一区二区在线| 中文字幕国产精品一区二区| 蜜桃免费网站一区二区三区| 色婷婷久久久久swag精品| 国产日韩欧美电影| 激情成人综合网| 91超碰这里只有精品国产| 中文字幕一区日韩精品欧美| 国产综合成人久久大片91| 777午夜精品免费视频| 亚洲一区二区三区四区的| 99久久99久久综合| 中文字幕av免费专区久久| 国产精品一区二区果冻传媒| 欧美一区二区国产| 日本女人一区二区三区| 在线成人av网站| 亚洲二区在线观看| 精品1区2区3区| 亚洲综合视频在线| 一本一道波多野结衣一区二区| 国产精品人妖ts系列视频| 高清不卡在线观看av| 国产午夜精品美女毛片视频| 黄色成人免费在线| 久久无码av三级| 国产乱人伦偷精品视频免下载| 2023国产精品自拍| 麻豆精品视频在线观看| 欧美一级二级在线观看| 麻豆成人综合网| 久久综合色8888| 国产黄色91视频| 日本一区二区高清| 97精品久久久午夜一区二区三区| 亚洲视频小说图片| 欧美在线观看一二区| 亚洲成av人片一区二区| 在线综合亚洲欧美在线视频| 青青草精品视频| 欧美一区二区三区人| 久草在线在线精品观看| 国产网红主播福利一区二区| 成人午夜在线视频| 青青草国产精品97视觉盛宴| 日韩精品自拍偷拍| 国产suv精品一区二区三区| 国产精品电影一区二区| 99久久久久免费精品国产 | 亚洲视频一区在线| 欧美日韩国产精品自在自线| 日本伊人色综合网| 欧美精品一区二| 99在线视频精品| 亚洲成人精品影院| 精品处破学生在线二十三| a4yy欧美一区二区三区| 亚洲成av人片在线观看无码| 日韩一级片网站|