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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? c-parse.in

?? gcc庫的原代碼,對編程有很大幫助.
?? IN
?? 第 1 頁 / 共 5 頁
字號(hào):
/* YACC parser for C syntax and for Objective C.  -*-c-*-   Copyright (C) 1987, 88, 89, 92, 93, 94, 1995 Free Software Foundation, Inc.This file is part of GNU CC.GNU CC is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU CC is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU CC; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.  *//* This file defines the grammar of C and that of Objective C.   ifobjc ... end ifobjc  conditionals contain code for Objective C only.   ifc ... end ifc  conditionals contain code for C only.   Sed commands in Makefile.in are used to convert this file into   c-parse.y and into objc-parse.y.  *//* To whomever it may concern: I have heard that such a thing was once   written by AT&T, but I have never seen it.  */ifobjc%expect 48end ifobjcifc%expect 34/* These are the 23 conflicts you should get in parse.output;   the state numbers may vary if minor changes in the grammar are made.State 42 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)State 44 contains 1 shift/reduce conflict.  (Two ways to recover from error.)State 103 contains 1 shift/reduce conflict.  (Two ways to recover from error.)State 110 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)State 111 contains 1 shift/reduce conflict.  (Two ways to recover from error.)State 115 contains 1 shift/reduce conflict.  (Two ways to recover from error.)State 132 contains 1 shift/reduce conflict.  (See comment at component_decl.)State 180 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTE.)State 194 contains 2 shift/reduce conflict.  (Four ways to parse this.)State 202 contains 1 shift/reduce conflict.  (Two ways to recover from error.)State 214 contains 1 shift/reduce conflict.  (Two ways to recover from error.)State 220 contains 1 shift/reduce conflict.  (Two ways to recover from error.)State 304 contains 2 shift/reduce conflicts.  (Four ways to parse this.)State 335 contains 2 shift/reduce conflicts.  (Four ways to parse this.)State 347 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTES.)State 352 contains 1 shift/reduce conflict.  (Two ways to parse ATTRIBUTES.)State 383 contains 2 shift/reduce conflicts.  (Four ways to parse this.)State 434 contains 2 shift/reduce conflicts.  (Four ways to parse this.)  */end ifc%{#include <stdio.h>#include <errno.h>#include <setjmp.h>#include "config.h"#include "tree.h"#include "input.h"#include "c-lex.h"#include "c-tree.h"#include "flags.h"#ifdef MULTIBYTE_CHARS#include <stdlib.h>#include <locale.h>#endififobjc#include "objc-act.h"end ifobjc/* Since parsers are distinct for each language, put the language string   definition here.  */ifobjcchar *language_string = "GNU Obj-C";end ifobjcifcchar *language_string = "GNU C";end ifc#ifndef errnoextern int errno;#endifvoid yyerror ();/* Like YYERROR but do call yyerror.  */#define YYERROR1 { yyerror ("syntax error"); YYERROR; }/* Cause the `yydebug' variable to be defined.  */#define YYDEBUG 1%}%start program%union {long itype; tree ttype; enum tree_code code;	char *filename; int lineno; int ends_in_label; }/* All identifiers that are not reserved words   and are not declared typedefs in the current block */%token IDENTIFIER/* All identifiers that are declared typedefs in the current block.   In some contexts, they are treated just like IDENTIFIER,   but they can also serve as typespecs in declarations.  */%token TYPENAME/* Reserved words that specify storage class.   yylval contains an IDENTIFIER_NODE which indicates which one.  */%token SCSPEC/* Reserved words that specify type.   yylval contains an IDENTIFIER_NODE which indicates which one.  */%token TYPESPEC/* Reserved words that qualify type: "const" or "volatile".   yylval contains an IDENTIFIER_NODE which indicates which one.  */%token TYPE_QUAL/* Character or numeric constants.   yylval is the node for the constant.  */%token CONSTANT/* String constants in raw form.   yylval is a STRING_CST node.  */%token STRING/* "...", used for functions with variable arglists.  */%token ELLIPSIS/* the reserved words *//* SCO include files test "ASM", so use something else. */%token SIZEOF ENUM STRUCT UNION IF ELSE WHILE DO FOR SWITCH CASE DEFAULT%token BREAK CONTINUE RETURN GOTO ASM_KEYWORD TYPEOF ALIGNOF%token ATTRIBUTE EXTENSION LABEL%token REALPART IMAGPART/* Add precedence rules to solve dangling else s/r conflict */%nonassoc IF%nonassoc ELSE/* Define the operator tokens and their precedences.   The value is an integer because, if used, it is the tree code   to use in the expression made from the operator.  */%right <code> ASSIGN '='%right <code> '?' ':'%left <code> OROR%left <code> ANDAND%left <code> '|'%left <code> '^'%left <code> '&'%left <code> EQCOMPARE%left <code> ARITHCOMPARE%left <code> LSHIFT RSHIFT%left <code> '+' '-'%left <code> '*' '/' '%'%right <code> UNARY PLUSPLUS MINUSMINUS%left HYPERUNARY%left <code> POINTSAT '.' '(' '['/* The Objective-C keywords.  These are included in C and in   Objective C, so that the token codes are the same in both.  */%token INTERFACE IMPLEMENTATION END SELECTOR DEFS ENCODE%token CLASSNAME PUBLIC PRIVATE PROTECTED PROTOCOL OBJECTNAME CLASS ALIAS/* Objective-C string constants in raw form.   yylval is an OBJC_STRING_CST node.  */%token OBJC_STRING%type <code> unop%type <ttype> identifier IDENTIFIER TYPENAME CONSTANT expr nonnull_exprlist exprlist%type <ttype> expr_no_commas cast_expr unary_expr primary string STRING%type <ttype> typed_declspecs reserved_declspecs%type <ttype> typed_typespecs reserved_typespecquals%type <ttype> declmods typespec typespecqual_reserved%type <ttype> SCSPEC TYPESPEC TYPE_QUAL nonempty_type_quals maybe_type_qual%type <ttype> initdecls notype_initdecls initdcl notype_initdcl%type <ttype> init maybeasm%type <ttype> asm_operands nonnull_asm_operands asm_operand asm_clobbers%type <ttype> maybe_attribute attributes attribute attribute_list attrib%type <ttype> any_word%type <ttype> compstmt%type <ttype> declarator%type <ttype> notype_declarator after_type_declarator%type <ttype> parm_declarator%type <ttype> structsp component_decl_list component_decl_list2%type <ttype> component_decl components component_declarator%type <ttype> enumlist enumerator%type <ttype> typename absdcl absdcl1 type_quals%type <ttype> xexpr parms parm identifiers%type <ttype> parmlist parmlist_1 parmlist_2%type <ttype> parmlist_or_identifiers parmlist_or_identifiers_1%type <ttype> identifiers_or_typenames%type <itype> setspecs%type <ends_in_label> lineno_stmt_or_label lineno_stmt_or_labels stmt_or_label%type <filename> save_filename%type <lineno> save_linenoifobjc/* the Objective-C nonterminals */%type <ttype> ivar_decl_list ivar_decls ivar_decl ivars ivar_declarator%type <ttype> methoddecl unaryselector keywordselector selector%type <ttype> keyworddecl receiver objcmessageexpr messageargs%type <ttype> keywordexpr keywordarglist keywordarg%type <ttype> myparms myparm optparmlist reservedwords objcselectorexpr%type <ttype> selectorarg keywordnamelist keywordname objcencodeexpr%type <ttype> objc_string protocolrefs identifier_list objcprotocolexpr%type <ttype> CLASSNAME OBJC_STRING OBJECTNAMEend ifobjc%{/* Number of statements (loosely speaking) seen so far.  */static int stmt_count;/* Input file and line number of the end of the body of last simple_if;   used by the stmt-rule immediately after simple_if returns.  */static char *if_stmt_file;static int if_stmt_line;/* List of types and structure classes of the current declaration.  */static tree current_declspecs;static tree prefix_attributes = NULL_TREE;/* Stack of saved values of current_declspecs and prefix_attributes.  */static tree declspec_stack;/* 1 if we explained undeclared var errors.  */static int undeclared_variable_notice;ifobjc/* Objective-C specific information */tree objc_interface_context;tree objc_implementation_context;tree objc_method_context;tree objc_ivar_chain;tree objc_ivar_context;enum tree_code objc_inherit_code;int objc_receiver_context;int objc_public_flag;end ifobjc/* 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 ();%}%%program: /* empty */		{ if (pedantic)		    pedwarn ("ANSI C forbids an empty source file");		  finish_file ();		}	| extdefs		{		  /* In case there were missing closebraces,		     get us back to the global binding level.  */		  while (! global_bindings_p ())		    poplevel (0, 0, 0);		  finish_file ();		}	;/* the reason for the strange actions in this rule is so that notype_initdecls when reached via datadef can find a valid list of type and sc specs in $0. */extdefs:	{$<ttype>$ = NULL_TREE; } extdef	| extdefs {$<ttype>$ = NULL_TREE; } extdef	;extdef:	fndef	| datadefifobjc	| objcdefend ifobjc	| ASM_KEYWORD '(' expr ')' ';'		{ STRIP_NOPS ($3);		  if ((TREE_CODE ($3) == ADDR_EXPR		       && TREE_CODE (TREE_OPERAND ($3, 0)) == STRING_CST)		      || TREE_CODE ($3) == STRING_CST)		    assemble_asm ($3);		  else		    error ("argument of `asm' is not a constant string"); }	;datadef:	  setspecs notype_initdecls ';'		{ if (pedantic)		    error ("ANSI C forbids data definition with no type or storage class");		  else if (!flag_traditional)		    warning ("data definition has no type or storage class"); 		  current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($1); }        | declmods setspecs notype_initdecls ';'		{ current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| typed_declspecs setspecs initdecls ';'		{ current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2);  }        | declmods ';'	  { pedwarn ("empty declaration"); }	| typed_declspecs ';'	  { shadow_tag ($1); }	| error ';'	| error '}'	| ';'		{ if (pedantic)		    pedwarn ("ANSI C does not allow extra `;' outside of a function"); }	;fndef:	  typed_declspecs setspecs declarator		{ if (! start_function ($1, $3, prefix_attributes,					NULL_TREE, 0))		    YYERROR1;		  reinit_parse_for_function (); }	  xdecls		{ store_parm_decls (); }	  compstmt_or_error		{ finish_function (0); 		  current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| typed_declspecs setspecs declarator error		{ current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| declmods setspecs notype_declarator		{ if (! start_function ($1, $3, prefix_attributes,					NULL_TREE, 0))		    YYERROR1;		  reinit_parse_for_function (); }	  xdecls		{ store_parm_decls (); }	  compstmt_or_error		{ finish_function (0); 		  current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| declmods setspecs notype_declarator error		{ current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($2); }	| setspecs notype_declarator		{ if (! start_function (NULL_TREE, $2,					prefix_attributes, NULL_TREE, 0))		    YYERROR1;		  reinit_parse_for_function (); }	  xdecls		{ store_parm_decls (); }	  compstmt_or_error		{ finish_function (0); 		  current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($1); }	| setspecs notype_declarator error		{ current_declspecs = TREE_VALUE (declspec_stack);		  prefix_attributes = TREE_PURPOSE (declspec_stack);		  declspec_stack = TREE_CHAIN (declspec_stack);		  resume_momentary ($1); }	;identifier:	IDENTIFIER	| TYPENAMEifobjc	| OBJECTNAME        | CLASSNAMEend ifobjc	;unop:     '&'		{ $$ = ADDR_EXPR; }	| '-'		{ $$ = NEGATE_EXPR; }	| '+'		{ $$ = CONVERT_EXPR; }	| PLUSPLUS		{ $$ = PREINCREMENT_EXPR; }	| MINUSMINUS		{ $$ = PREDECREMENT_EXPR; }	| '~'		{ $$ = BIT_NOT_EXPR; }	| '!'		{ $$ = TRUTH_NOT_EXPR; }	;expr:	nonnull_exprlist		{ $$ = build_compound_expr ($1); }	;exprlist:	  /* empty */		{ $$ = NULL_TREE; }	| nonnull_exprlist	;nonnull_exprlist:	expr_no_commas		{ $$ = build_tree_list (NULL_TREE, $1); }	| nonnull_exprlist ',' expr_no_commas		{ chainon ($1, build_tree_list (NULL_TREE, $3)); }	;unary_expr:	primary

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
性做久久久久久免费观看欧美| 在线观看av一区二区| 久久精品国产秦先生| 日av在线不卡| 久久99国产精品免费网站| 久久电影国产免费久久电影| 久久综合综合久久综合| 精品一区二区在线观看| 国产在线乱码一区二区三区| 国产精品91xxx| av不卡一区二区三区| 色系网站成人免费| 欧洲国内综合视频| 欧美精品日韩精品| 日韩欧美一级在线播放| 久久嫩草精品久久久久| 中文字幕不卡在线观看| 亚洲色图一区二区三区| 午夜在线成人av| 久久激情五月婷婷| 风间由美一区二区三区在线观看| 99精品国产视频| 欧美精品粉嫩高潮一区二区| 欧美刺激脚交jootjob| 日本一区二区三区dvd视频在线| 亚洲欧洲精品一区二区三区不卡| 一区二区三区在线观看网站| 日本伊人色综合网| 国产成人av网站| 在线免费av一区| 欧美成人官网二区| 国产精品久久夜| 亚洲二区视频在线| 韩国女主播成人在线| 91免费在线视频观看| 欧美精品vⅰdeose4hd| 国产亲近乱来精品视频| 一区二区三区视频在线观看| 美女脱光内衣内裤视频久久影院| 国产美女在线观看一区| 欧美亚洲日本国产| 久久精品视频一区| 亚洲综合丁香婷婷六月香| 精品一二三四在线| 91在线观看一区二区| 日韩精品一区二区三区视频播放 | 欧美性欧美巨大黑白大战| 日韩欧美的一区| 亚洲美女区一区| 国产伦精一区二区三区| 欧美亚洲一区二区三区四区| 国产性天天综合网| 亚洲电影一级黄| 成人黄色软件下载| 日韩女优av电影| 一区二区三区四区五区视频在线观看 | 日韩一区二区免费电影| 国产精品对白交换视频| 美国一区二区三区在线播放| 日本韩国一区二区| 国产欧美va欧美不卡在线| 五月天亚洲婷婷| 一本大道av伊人久久综合| 精品久久久久久无| 天天综合天天综合色| 波多野结衣视频一区| 精品国产乱码91久久久久久网站| 一区二区三区中文字幕| 成人高清伦理免费影院在线观看| 日韩亚洲欧美一区二区三区| 亚洲一区二区成人在线观看| 成人午夜看片网址| 精品国产一区二区三区久久久蜜月 | 日本不卡视频在线观看| 色av成人天堂桃色av| 欧美激情一区二区三区不卡| 麻豆国产精品官网| 在线播放日韩导航| 亚洲在线视频免费观看| av一区二区三区四区| 欧美经典一区二区| 国产一区二区毛片| 精品噜噜噜噜久久久久久久久试看 | 中文字幕在线不卡一区| 国产精品一级二级三级| 精品国产一区二区在线观看| 免费不卡在线视频| 91精品午夜视频| 五月婷婷激情综合网| 欧美三级蜜桃2在线观看| 一区二区三区日韩精品视频| 91麻豆国产在线观看| 国产精品久久99| 成人深夜在线观看| 日本一区二区三区视频视频| 国产成人av福利| 中文字幕av一区二区三区免费看 | 欧美美女一区二区三区| 亚洲成在人线在线播放| 欧美日韩久久一区二区| 亚洲第一福利一区| 欧美日韩精品一区二区在线播放| 亚洲国产日韩a在线播放性色| 欧洲在线/亚洲| 亚洲午夜精品在线| 777久久久精品| 美女精品一区二区| 精品国产凹凸成av人导航| 精品写真视频在线观看| 久久久精品欧美丰满| 丁香婷婷综合网| 亚洲天堂av一区| 色婷婷亚洲一区二区三区| 亚洲一区在线观看网站| 欧美老女人第四色| 裸体一区二区三区| 久久综合成人精品亚洲另类欧美 | 久久午夜国产精品| 国产不卡免费视频| 亚洲丝袜自拍清纯另类| 欧美视频在线一区二区三区| 日韩电影在线免费观看| 精品电影一区二区| 不卡在线视频中文字幕| 亚洲一卡二卡三卡四卡五卡| 欧美一区二区三区的| 国内精品视频一区二区三区八戒| 欧美国产精品v| 日本精品免费观看高清观看| 丝袜美腿亚洲综合| 久久久久国产免费免费| 91丨九色丨国产丨porny| 亚洲123区在线观看| 2023国产精品自拍| bt欧美亚洲午夜电影天堂| 亚洲午夜一区二区| 欧美大胆人体bbbb| av不卡在线观看| 日本vs亚洲vs韩国一区三区| 欧美国产成人在线| 欧美日韩国产精品自在自线| 国产在线一区二区综合免费视频| 最新国产の精品合集bt伙计| 欧美乱妇一区二区三区不卡视频| 国产呦精品一区二区三区网站| 亚洲天堂中文字幕| 91精品欧美久久久久久动漫| 国产aⅴ综合色| 亚洲最大成人综合| 亚洲精品一区在线观看| 99re这里只有精品视频首页| 日本成人在线一区| 国产精品国产三级国产普通话三级 | 亚洲欧洲在线观看av| 欧美美女视频在线观看| 成人理论电影网| 青青草伊人久久| 中文字幕亚洲不卡| 欧美一区二区大片| 一本色道亚洲精品aⅴ| 韩国欧美一区二区| 午夜久久福利影院| ...中文天堂在线一区| 精品久久久网站| 欧美天天综合网| av电影在线观看一区| 狠狠色综合日日| 午夜精品久久久久久久蜜桃app| 国产精品视频观看| 精品国产欧美一区二区| 欧美在线不卡一区| 97精品国产露脸对白| 国产麻豆视频一区二区| 日韩电影在线看| 一区二区三区四区不卡视频| 中国av一区二区三区| 精品99999| 91精品欧美一区二区三区综合在 | 久久亚洲一级片| 欧美一区二区美女| 欧美三级乱人伦电影| av在线这里只有精品| 国产成人日日夜夜| 国内精品在线播放| 免费在线看成人av| 亚洲不卡一区二区三区| 亚洲乱码一区二区三区在线观看| 欧美激情在线一区二区三区| 精品毛片乱码1区2区3区| 日韩一区二区影院| 欧美丰满一区二区免费视频| 欧美午夜精品久久久久久超碰| 色综合久久中文综合久久97| 不卡一区二区中文字幕| 东方欧美亚洲色图在线| 国产精品夜夜爽| 国产精品亚洲成人| 国产精品456| 国产91对白在线观看九色| 国产福利91精品一区|