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

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

?? objc-act.c

?? gcc-2.95.3 Linux下最常用的C編譯器
?? C
?? 第 1 頁 / 共 5 頁
字號:
static tree ucls_super_ref, uucls_super_ref;static tree objc_method_template, objc_ivar_template;static tree objc_symtab_template, objc_module_template;static tree objc_super_template, objc_object_reference;static tree objc_object_id, objc_class_id, objc_id_id;static tree constant_string_id;static tree constant_string_type;static tree UOBJC_SUPER_decl;static tree method_context = NULL_TREE;static int  method_slot = 0;	/* Used by start_method_def, */#define BUFSIZE		1024static char *errbuf;	/* Buffer for error diagnostics *//* Data imported from tree.c.  */extern enum debug_info_type write_symbols;/* Data imported from toplev.c.  */extern char *dump_base_name;/* Generate code for GNU or NeXT runtime environment.  */#ifdef NEXT_OBJC_RUNTIMEint flag_next_runtime = 1;#elseint flag_next_runtime = 0;#endifint flag_typed_selectors;/* Open and close the file for outputting class declarations, if requested.  */int flag_gen_declaration = 0;FILE *gen_declaration_file;/* Warn if multiple methods are seen for the same selector, but with   different argument types.  */int warn_selector = 0;/* Warn if methods required by a protocol are not implemented in the    class adopting it.  When turned off, methods inherited to that   class are also considered implemented */int flag_warn_protocol = 1;/* Tells "encode_pointer/encode_aggregate" whether we are generating   type descriptors for instance variables (as opposed to methods).   Type descriptors for instance variables contain more information   than methods (for static typing and embedded structures). This   was added to support features being planned for dbkit2.  */static int generating_instance_variables = 0;/* Tells the compiler that this is a special run.  Do not perform   any compiling, instead we are to test some platform dependent   features and output a C header file with appropriate definitions. */static int print_struct_values = 0;/* Some platforms pass small structures through registers versus through   an invisible pointer.  Determine at what size structure is the    transition point between the two possibilities. */voidgenerate_struct_by_value_array (){  tree type;  tree field_decl, field_decl_chain;  int i, j;  int aggregate_in_mem[32];  int found = 0;  /* Presumbaly no platform passes 32 byte structures in a register. */  for (i = 1; i < 32; i++)    {      char buffer[5];      /* Create an unnamed struct that has `i' character components */      type = start_struct (RECORD_TYPE, NULL_TREE);      strcpy (buffer, "c1");      field_decl = create_builtin_decl (FIELD_DECL,					char_type_node,					buffer);      field_decl_chain = field_decl;      for (j = 1; j < i; j++)	{	  sprintf (buffer, "c%d", j + 1);	  field_decl = create_builtin_decl (FIELD_DECL,					    char_type_node,					    buffer);	  chainon (field_decl_chain, field_decl);	}      finish_struct (type, field_decl_chain, NULL_TREE);       aggregate_in_mem[i] = aggregate_value_p (type);      if (!aggregate_in_mem[i])	found = 1;    }   /* We found some structures that are returned in registers instead of memory     so output the necessary data. */  if (found)    {      for (i = 31; i >= 0;  i--)	if (!aggregate_in_mem[i])	  break;      printf ("#define OBJC_MAX_STRUCT_BY_VALUE %d\n\n", i);       /* The first member of the structure is always 0 because we don't handle	 structures with 0 members */      printf ("static int struct_forward_array[] = {\n  0");       for (j = 1; j <= i; j++)	printf (", %d", aggregate_in_mem[j]);      printf ("\n};\n");    }   exit (0);}#if USE_CPPLIBextern char *yy_cur;#endifvoidlang_init_options (){#if USE_CPPLIB  cpp_reader_init (&parse_in);  parse_in.opts = &parse_options;  cpp_options_init (&parse_options);#endif}voidlang_init (){#if !USE_CPPLIB  /* The beginning of the file is a new line; check for #.     With luck, we discover the real source file's name from that     and put it in input_filename.  */  ungetc (check_newline (), finput);#else  check_newline ();  yy_cur--;#endif   /* The line number can be -1 if we had -g3 and the input file     had a directive specifying line 0.  But we want predefined     functions to have a line number of 0, not -1.  */  if (lineno == -1)    lineno = 0;  /* If gen_declaration desired, open the output file.  */  if (flag_gen_declaration)    {      int dump_base_name_length = strlen (dump_base_name);      register char *dumpname = (char *) xmalloc (dump_base_name_length + 7);      strcpy (dumpname, dump_base_name);      strcat (dumpname, ".decl");      gen_declaration_file = fopen (dumpname, "w");      if (gen_declaration_file == 0)	pfatal_with_name (dumpname);    }  if (flag_next_runtime)    {      TAG_GETCLASS = "objc_getClass";      TAG_GETMETACLASS = "objc_getMetaClass";      TAG_MSGSEND = "objc_msgSend";      TAG_MSGSENDSUPER = "objc_msgSendSuper";      TAG_EXECCLASS = "__objc_execClass";    }  else    {      TAG_GETCLASS = "objc_get_class";      TAG_GETMETACLASS = "objc_get_meta_class";      TAG_MSGSEND = "objc_msg_lookup";      TAG_MSGSENDSUPER = "objc_msg_lookup_super";      TAG_EXECCLASS = "__objc_exec_class";      flag_typed_selectors = 1;    }  if (doing_objc_thang)    init_objc ();  if (print_struct_values)    generate_struct_by_value_array ();}static voidobjc_fatal (){  fatal ("Objective-C text in C source file");}voidfinish_file (){  if (doing_objc_thang)    finish_objc ();		/* Objective-C finalization */  if (gen_declaration_file)    fclose (gen_declaration_file);}voidlang_finish (){}char *lang_identify (){  return "objc";}intlang_decode_option (argc, argv)     int argc;     char **argv;{  char *p = argv[0];  if (!strcmp (p, "-lang-objc"))    doing_objc_thang = 1;  else if (!strcmp (p, "-gen-decls"))    flag_gen_declaration = 1;  else if (!strcmp (p, "-Wselector"))    warn_selector = 1;  else if (!strcmp (p, "-Wno-selector"))    warn_selector = 0;  else if (!strcmp (p, "-Wprotocol"))    flag_warn_protocol = 1;  else if (!strcmp (p, "-Wno-protocol"))    flag_warn_protocol = 0;  else if (!strcmp (p, "-fgnu-runtime"))    flag_next_runtime = 0;  else if (!strcmp (p, "-fno-next-runtime"))    flag_next_runtime = 0;  else if (!strcmp (p, "-fno-gnu-runtime"))    flag_next_runtime = 1;  else if (!strcmp (p, "-fnext-runtime"))    flag_next_runtime = 1;  else if (!strcmp (p, "-print-objc-runtime-info"))    print_struct_values = 1;  else    return c_decode_option (argc, argv);  return 1;}/* used by print-tree.c */voidlang_print_xnode (file, node, indent)     FILE *file ATTRIBUTE_UNUSED;     tree node ATTRIBUTE_UNUSED;     int indent ATTRIBUTE_UNUSED;{}static treedefine_decl (declarator, declspecs)     tree declarator;     tree declspecs;{  tree decl = start_decl (declarator, declspecs, 0, NULL_TREE, NULL_TREE);  finish_decl (decl, NULL_TREE, NULL_TREE);  return decl;}/* Return 1 if LHS and RHS are compatible types for assignment or   various other operations.  Return 0 if they are incompatible, and   return -1 if we choose to not decide.  When the operation is   REFLEXIVE, check for compatibility in either direction.   For statically typed objects, an assignment of the form `a' = `b'   is permitted if:   `a' is of type "id",   `a' and `b' are the same class type, or   `a' and `b' are of class types A and B such that B is a descendant of A.  */intmaybe_objc_comptypes (lhs, rhs, reflexive)     tree lhs, rhs;     int reflexive;{  if (doing_objc_thang)    return objc_comptypes (lhs, rhs, reflexive);  return -1;}static treelookup_method_in_protocol_list (rproto_list, sel_name, class_meth)   tree rproto_list;   tree sel_name;   int class_meth;{   tree rproto, p;   tree fnd = 0;   for (rproto = rproto_list; rproto; rproto = TREE_CHAIN (rproto))     {        p = TREE_VALUE (rproto);	if (TREE_CODE (p) == PROTOCOL_INTERFACE_TYPE)	  {	    if ((fnd = lookup_method (class_meth				      ? PROTOCOL_CLS_METHODS (p)				      : PROTOCOL_NST_METHODS (p), sel_name)))	      ;	    else if (PROTOCOL_LIST (p))	      fnd = lookup_method_in_protocol_list (PROTOCOL_LIST (p),						    sel_name, class_meth);	  }	else          {	    ; /* An identifier...if we could not find a protocol.  */          }	if (fnd)	  return fnd;     }   return 0;}static treelookup_protocol_in_reflist (rproto_list, lproto)   tree rproto_list;   tree lproto;{   tree rproto, p;   /* Make sure the protocol is support by the object on the rhs.  */   if (TREE_CODE (lproto) == PROTOCOL_INTERFACE_TYPE)     {       tree fnd = 0;       for (rproto = rproto_list; rproto; rproto = TREE_CHAIN (rproto))	 {	   p = TREE_VALUE (rproto);	   if (TREE_CODE (p) == PROTOCOL_INTERFACE_TYPE)	     {	       if (lproto == p)		 fnd = lproto;	       else if (PROTOCOL_LIST (p))		 fnd = lookup_protocol_in_reflist (PROTOCOL_LIST (p), lproto);	     }	   if (fnd)	     return fnd;	 }     }   else     {       ; /* An identifier...if we could not find a protocol.  */     }   return 0;}/* Return 1 if LHS and RHS are compatible types for assignment   or various other operations.  Return 0 if they are incompatible,   and return -1 if we choose to not decide.  When the operation   is REFLEXIVE, check for compatibility in either direction.  */intobjc_comptypes (lhs, rhs, reflexive)     tree lhs;     tree rhs;     int reflexive;{  /* New clause for protocols.  */  if (TREE_CODE (lhs) == POINTER_TYPE      && TREE_CODE (TREE_TYPE (lhs)) == RECORD_TYPE      && TREE_CODE (rhs) == POINTER_TYPE      && TREE_CODE (TREE_TYPE (rhs)) == RECORD_TYPE)    {      int lhs_is_proto = IS_PROTOCOL_QUALIFIED_ID (lhs);      int rhs_is_proto = IS_PROTOCOL_QUALIFIED_ID (rhs);      if (lhs_is_proto)        {	  tree lproto, lproto_list = TYPE_PROTOCOL_LIST (lhs);	  tree rproto, rproto_list;	  tree p;	  if (rhs_is_proto)	    {	      rproto_list = TYPE_PROTOCOL_LIST (rhs);	      /* Make sure the protocol is supported by the object		 on the rhs.  */	      for (lproto = lproto_list; lproto; lproto = TREE_CHAIN (lproto))		{		  p = TREE_VALUE (lproto);		  rproto = lookup_protocol_in_reflist (rproto_list, p);		  if (!rproto)		    warning ("object does not conform to the `%s' protocol",			     IDENTIFIER_POINTER (PROTOCOL_NAME (p)));		}	    }	  else if (TYPED_OBJECT (TREE_TYPE (rhs)))	    {	      tree rname = TYPE_NAME (TREE_TYPE (rhs));	      tree rinter;	      /* Make sure the protocol is supported by the object		 on the rhs.  */	      for (lproto = lproto_list; lproto; lproto = TREE_CHAIN (lproto))		{		  p = TREE_VALUE (lproto);		  rproto = 0;		  rinter = lookup_interface (rname);		  while (rinter && !rproto)		    {		      tree cat;		      rproto_list = CLASS_PROTOCOL_LIST (rinter);		      rproto = lookup_protocol_in_reflist (rproto_list, p);		      /* Check for protocols adopted by categories.  */		      cat = CLASS_CATEGORY_LIST (rinter);		      while (cat && !rproto)			{			  rproto_list = CLASS_PROTOCOL_LIST (cat);			  rproto = lookup_protocol_in_reflist (rproto_list, p);			  cat = CLASS_CATEGORY_LIST (cat);			}		      rinter = lookup_interface (CLASS_SUPER_NAME (rinter));		    }		  if (!rproto)		    warning ("class `%s' does not implement the `%s' protocol",	                     IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (rhs))),		             IDENTIFIER_POINTER (PROTOCOL_NAME (p)));		}	    }	  /* May change...based on whether there was any mismatch */          return 1;        }      else if (rhs_is_proto)	/* Lhs is not a protocol...warn if it is statically typed */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本国产一区| 亚洲一区免费视频| 久久久亚洲国产美女国产盗摄| 欧美日韩一区二区三区高清| 欧日韩精品视频| 欧洲国产伦久久久久久久| 色噜噜狠狠成人中文综合 | 这里只有精品电影| 欧美日韩免费在线视频| 欧美另类videos死尸| 欧美色精品在线视频| 69久久99精品久久久久婷婷 | 午夜精品在线看| 午夜久久久久久电影| 麻豆久久久久久久| 国产在线精品视频| av一本久道久久综合久久鬼色| 99视频超级精品| 在线观看亚洲精品| 日韩欧美另类在线| 国产视频亚洲色图| 亚洲男人的天堂在线aⅴ视频| 一区二区在线观看av| 偷偷要91色婷婷| 国产一区二区三区免费观看| 国产成人午夜99999| 色综合天天天天做夜夜夜夜做| 日本国产一区二区| 91精品中文字幕一区二区三区| 精品理论电影在线| 国产精品美女久久久久久| 一区二区三区四区在线免费观看 | 国产精品一区二区91| 91尤物视频在线观看| 欧美精品欧美精品系列| 精品久久久久久无| 国产精品视频你懂的| 亚洲午夜精品在线| 精品中文av资源站在线观看| 97久久久精品综合88久久| 91麻豆精品国产91久久久使用方法 | 中文字幕中文字幕中文字幕亚洲无线 | 中文字幕欧美国产| 亚洲一区二区偷拍精品| 韩国女主播成人在线观看| 99re这里只有精品视频首页| 日韩小视频在线观看专区| 国产精品美女久久久久久2018 | 欧美日韩国产首页在线观看| 欧美videos大乳护士334| 《视频一区视频二区| 日韩福利视频导航| 国产suv一区二区三区88区| 欧美日韩国产综合久久| 中文字幕亚洲区| 日本欧美久久久久免费播放网| 成人手机电影网| 欧美一区二区三区白人| 中文字幕一区av| 国产自产v一区二区三区c| 在线观看视频91| 欧美国产成人在线| 老司机精品视频线观看86| 日本高清不卡aⅴ免费网站| 2022国产精品视频| 午夜精品一区在线观看| 91日韩一区二区三区| 久久综合狠狠综合久久综合88| 一区二区三区欧美视频| 懂色中文一区二区在线播放| 日韩三级视频在线观看| 亚洲欧美日韩国产中文在线| 国产精品性做久久久久久| 91精选在线观看| 亚洲一线二线三线久久久| 成人福利视频网站| 久久综合狠狠综合久久激情 | 91影院在线观看| 国产偷国产偷亚洲高清人白洁| 日本中文在线一区| 欧美日韩一区在线| 亚洲欧美一区二区三区极速播放| 国产剧情一区二区| 精品欧美一区二区三区精品久久| 亚洲第一成人在线| 欧美在线观看视频一区二区| 一区二区中文字幕在线| 国产丶欧美丶日本不卡视频| 精品欧美一区二区久久| 美女任你摸久久| 欧美日韩高清一区二区不卡| 亚洲国产精品一区二区久久 | 欧美一级二级三级乱码| 亚洲狠狠爱一区二区三区| 91丨porny丨蝌蚪视频| 国产精品国产三级国产aⅴ原创| 国产suv精品一区二区6| 久久综合久久综合九色| 精品亚洲porn| 精品国产乱码久久久久久免费| 日本成人超碰在线观看| 91.com视频| 免费在线欧美视频| 欧美成人精品福利| 精品影院一区二区久久久| 精品国产一区a| 国产麻豆午夜三级精品| 久久男人中文字幕资源站| 国产高清精品网站| 国产精品私人自拍| 99久久精品久久久久久清纯| 成人免费一区二区三区视频| 91香蕉视频污| 亚洲综合激情小说| 欧美三级电影在线看| 午夜久久久久久久久| 日韩免费高清av| 狠狠色丁香久久婷婷综合_中| 久久亚洲一区二区三区四区| 国产风韵犹存在线视精品| 中文字幕亚洲一区二区va在线| 色婷婷av一区二区| 亚洲bt欧美bt精品| 日韩欧美在线1卡| 国产91在线看| 亚洲免费观看在线视频| 欧美美女黄视频| 精品亚洲欧美一区| 亚洲色图在线看| 91精品国产综合久久精品| 久久综合综合久久综合| 中文字幕欧美区| 欧美日精品一区视频| 六月婷婷色综合| 国产精品美女久久久久久| 欧美最猛黑人xxxxx猛交| 久久精品国产亚洲一区二区三区| 久久人人97超碰com| 91美女福利视频| 麻豆精品在线视频| 1024精品合集| 欧美二区乱c少妇| 欧美日韩精品电影| 国内久久精品视频| 国产精品二区一区二区aⅴ污介绍| 精品视频一区二区三区免费| 精品制服美女丁香| 一区二区欧美国产| 国产午夜精品福利| 欧美裸体一区二区三区| 夫妻av一区二区| 天天色天天操综合| 国产精品久久久久久久久久久免费看| 欧美亚洲国产一区二区三区| 久久97超碰色| 亚洲国产一二三| 欧美激情一区二区在线| 777久久久精品| 99re热视频精品| 国产精品影音先锋| 日韩精品福利网| 综合久久久久久| 久久久久久97三级| 欧美挠脚心视频网站| av一二三不卡影片| 精品一区二区三区在线观看| 亚洲第四色夜色| 亚洲欧美综合另类在线卡通| 欧美成人乱码一区二区三区| 欧洲一区在线电影| av一区二区三区黑人| 国产一区二区三区免费观看| 午夜精品成人在线| 亚洲精品国产成人久久av盗摄| 国产日本欧洲亚洲| 日韩视频免费观看高清完整版| 色久综合一二码| 成人听书哪个软件好| 国产精品538一区二区在线| 天天免费综合色| 一区二区三区四区av| 国产精品午夜春色av| 久久久久88色偷偷免费| 日韩一区二区三区精品视频| 欧美色综合网站| 色综合天天综合网天天看片| 欧美探花视频资源| 成人午夜av电影| 国产精品中文字幕日韩精品 | 欧美亚洲一区二区在线观看| 99久久国产综合色|国产精品| 国产黄人亚洲片| 国产一区二区三区综合| 久久福利资源站| 久久疯狂做爰流白浆xx| 老司机免费视频一区二区三区| 免费一级欧美片在线观看| 偷偷要91色婷婷| 日本午夜精品视频在线观看| 亚洲成人av一区二区三区|