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

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

?? cplus-dem.c

?? Vxworks OS source code
?? C
?? 第 1 頁 / 共 5 頁
字號:
	    {	      /* Read the return type. */	      string return_type;	      string_init (&return_type);	      (*mangled)++;	      success = do_type (work, mangled, &return_type);	      APPEND_BLANK (&return_type);	      string_prepends (declp, &return_type);	      string_delete (&return_type);	      break;	    }	  else	    /* At the outermost level, we cannot have a return type specified,	       so if we run into another '_' at this point we are dealing with	       a mangled name that is either bogus, or has been mangled by	       some algorithm we don't know how to deal with.  So just	       reject the entire demangling.  */            /* However, "_nnn" is an expected suffix for alternate entry point               numbered nnn for a function, with HP aCC, so skip over that               without reporting failure. pai/1997-09-04 */            if (HP_DEMANGLING)              {                (*mangled)++;                while (**mangled && ISDIGIT ((unsigned char)**mangled))                  (*mangled)++;              }            else	      success = 0;	  break;	case 'H':	  if (AUTO_DEMANGLING || GNU_DEMANGLING)	    {	      /* A G++ template function.  Read the template arguments. */	      success = demangle_template (work, mangled, declp, 0, 0,					   0);	      if (!(work->constructor & 1))		expect_return_type = 1;	      (*mangled)++;	      break;	    }	  else	    /* fall through */	    {;}	default:	  if (AUTO_DEMANGLING || GNU_DEMANGLING)	    {	      /* Assume we have stumbled onto the first outermost function		 argument token, and start processing args.  */	      func_done = 1;	      success = demangle_args (work, mangled, declp);	    }	  else	    {	      /* Non-GNU demanglers use a specific token to mark the start		 of the outermost function argument tokens.  Typically 'F',		 for ARM/HP-demangling, for example.  So if we find something		 we are not prepared for, it must be an error.  */	      success = 0;	    }	  break;	}      /*	if (AUTO_DEMANGLING || GNU_DEMANGLING)	*/      {	if (success && expect_func)	  {	    func_done = 1;              if (LUCID_DEMANGLING || ARM_DEMANGLING || EDG_DEMANGLING)                {                  forget_types (work);                }	    success = demangle_args (work, mangled, declp);	    /* Since template include the mangling of their return types,	       we must set expect_func to 0 so that we don't try do	       demangle more arguments the next time we get here.  */	    expect_func = 0;	  }      }    }  if (success && !func_done)    {      if (AUTO_DEMANGLING || GNU_DEMANGLING)	{	  /* With GNU style demangling, bar__3foo is 'foo::bar(void)', and	     bar__3fooi is 'foo::bar(int)'.  We get here when we find the	     first case, and need to ensure that the '(void)' gets added to	     the current declp.  Note that with ARM/HP, the first case	     represents the name of a static data member 'foo::bar',	     which is in the current declp, so we leave it alone.  */	  success = demangle_args (work, mangled, declp);	}    }  if (success && PRINT_ARG_TYPES)    {      if (work->static_type)	string_append (declp, " static");      if (work->type_quals != TYPE_UNQUALIFIED)	{	  APPEND_BLANK (declp);	  string_append (declp, qualifier_string (work->type_quals));	}    }  return (success);}#if 0static intdemangle_method_args (work, mangled, declp)     struct work_stuff *work;     const char **mangled;     string *declp;{  int success = 0;  if (work -> static_type)    {      string_append (declp, *mangled + 1);      *mangled += strlen (*mangled);      success = 1;    }  else    {      success = demangle_args (work, mangled, declp);    }  return (success);}#endifstatic intdemangle_template_template_parm (work, mangled, tname)     struct work_stuff *work;     const char **mangled;     string *tname;{  int i;  int r;  int need_comma = 0;  int success = 1;  string temp;  string_append (tname, "template <");  /* get size of template parameter list */  if (get_count (mangled, &r))    {      for (i = 0; i < r; i++)	{	  if (need_comma)	    {	      string_append (tname, ", ");	    }	    /* Z for type parameters */	    if (**mangled == 'Z')	      {		(*mangled)++;		string_append (tname, "class");	      }	      /* z for template parameters */	    else if (**mangled == 'z')	      {		(*mangled)++;		success =		  demangle_template_template_parm (work, mangled, tname);		if (!success)		  {		    break;		  }	      }	    else	      {		/* temp is initialized in do_type */		success = do_type (work, mangled, &temp);		if (success)		  {		    string_appends (tname, &temp);		  }		string_delete(&temp);		if (!success)		  {		    break;		  }	      }	  need_comma = 1;	}    }  if (tname->p[-1] == '>')    string_append (tname, " ");  string_append (tname, "> class");  return (success);}static intdemangle_expression (work, mangled, s, tk)     struct work_stuff *work;     const char** mangled;     string* s;     type_kind_t tk;{  int need_operator = 0;  int success;  success = 1;  string_appendn (s, "(", 1);  (*mangled)++;  while (success && **mangled != 'W' && **mangled != '\0')    {      if (need_operator)	{	  size_t i;	  size_t len;	  success = 0;	  len = strlen (*mangled);	  for (i = 0; i < ARRAY_SIZE (optable); ++i)	    {	      size_t l = strlen (optable[i].in);	      if (l <= len		  && memcmp (optable[i].in, *mangled, l) == 0)		{		  string_appendn (s, " ", 1);		  string_append (s, optable[i].out);		  string_appendn (s, " ", 1);		  success = 1;		  (*mangled) += l;		  break;		}	    }	  if (!success)	    break;	}      else	need_operator = 1;      success = demangle_template_value_parm (work, mangled, s, tk);    }  if (**mangled != 'W')    success = 0;  else    {      string_appendn (s, ")", 1);      (*mangled)++;    }  return success;}static intdemangle_integral_value (work, mangled, s)     struct work_stuff *work;     const char** mangled;     string* s;{  int success;  if (**mangled == 'E')    success = demangle_expression (work, mangled, s, tk_integral);  else if (**mangled == 'Q' || **mangled == 'K')    success = demangle_qualified (work, mangled, s, 0, 1);  else    {      int value;      /* By default, we let the number decide whether we shall consume an	 underscore.  */      int consume_following_underscore = 0;      int leave_following_underscore = 0;      success = 0;      /* Negative numbers are indicated with a leading `m'.  */      if (**mangled == 'm')	{	  string_appendn (s, "-", 1);	  (*mangled)++;	}      else if (mangled[0][0] == '_' && mangled[0][1] == 'm')	{	  /* Since consume_count_with_underscores does not handle the	     `m'-prefix we must do it here, using consume_count and	     adjusting underscores: we have to consume the underscore	     matching the prepended one.  */	  consume_following_underscore = 1;	  string_appendn (s, "-", 1);	  (*mangled) += 2;	}      else if (**mangled == '_')	{	  /* Do not consume a following underscore;	     consume_following_underscore will consume what should be	     consumed.  */	  leave_following_underscore = 1;	}      /* We must call consume_count if we expect to remove a trailing	 underscore, since consume_count_with_underscores expects	 the leading underscore (that we consumed) if it is to handle	 multi-digit numbers.  */      if (consume_following_underscore)	value = consume_count (mangled);      else	value = consume_count_with_underscores (mangled);      if (value != -1)	{	  char buf[INTBUF_SIZE];	  sprintf (buf, "%d", value);	  string_append (s, buf);	  /* Numbers not otherwise delimited, might have an underscore	     appended as a delimeter, which we should skip.	     ??? This used to always remove a following underscore, which	     is wrong.  If other (arbitrary) cases are followed by an	     underscore, we need to do something more radical.  */	  if ((value > 9 || consume_following_underscore)	      && ! leave_following_underscore	      && **mangled == '_')	    (*mangled)++;	  /* All is well.  */	  success = 1;	}    }  return success;}/* Demangle the real value in MANGLED.  */static intdemangle_real_value (work, mangled, s)     struct work_stuff *work;     const char **mangled;     string* s;{  if (**mangled == 'E')    return demangle_expression (work, mangled, s, tk_real);  if (**mangled == 'm')    {      string_appendn (s, "-", 1);      (*mangled)++;    }  while (ISDIGIT ((unsigned char)**mangled))    {      string_appendn (s, *mangled, 1);      (*mangled)++;    }  if (**mangled == '.') /* fraction */    {      string_appendn (s, ".", 1);      (*mangled)++;      while (ISDIGIT ((unsigned char)**mangled))	{	  string_appendn (s, *mangled, 1);	  (*mangled)++;	}    }  if (**mangled == 'e') /* exponent */    {      string_appendn (s, "e", 1);      (*mangled)++;      while (ISDIGIT ((unsigned char)**mangled))	{	  string_appendn (s, *mangled, 1);	  (*mangled)++;	}    }  return 1;}static intdemangle_template_value_parm (work, mangled, s, tk)     struct work_stuff *work;     const char **mangled;     string* s;     type_kind_t tk;{  int success = 1;  if (**mangled == 'Y')    {      /* The next argument is a template parameter. */      int idx;      (*mangled)++;      idx = consume_count_with_underscores (mangled);      if (idx == -1	  || (work->tmpl_argvec && idx >= work->ntmpl_args)	  || consume_count_with_underscores (mangled) == -1)	return -1;      if (work->tmpl_argvec)	string_append (s, work->tmpl_argvec[idx]);      else	string_append_template_idx (s, idx);    }  else if (tk == tk_integral)    success = demangle_integral_value (work, mangled, s);  else if (tk == tk_char)    {      char tmp[2];      int val;      if (**mangled == 'm')	{	  string_appendn (s, "-", 1);	  (*mangled)++;	}      string_appendn (s, "'", 1);      val = consume_count(mangled);      if (val <= 0)	success = 0;      else	{	  tmp[0] = (char)val;	  tmp[1] = '\0';	  string_appendn (s, &tmp[0], 1);	  string_appendn (s, "'", 1);	}    }  else if (tk == tk_bool)    {      int val = consume_count (mangled);      if (val == 0)	string_appendn (s, "false", 5);      else if (val == 1)	string_appendn (s, "true", 4);      else	success = 0;    }  else if (tk == tk_real)    success = demangle_real_value (work, mangled, s);  else if (tk == tk_pointer || tk == tk_reference)    {      if (**mangled == 'Q')	success = demangle_qualified (work, mangled, s,				      /*isfuncname=*/0, 				      /*append=*/1);      else	{	  int symbol_len  = consume_count (mangled);	  if (symbol_len == -1)	    return -1;	  if (symbol_len == 0)	    string_appendn (s, "0", 1);	  else	    {	      char *p = xmalloc (symbol_len + 1), *q;	      strncpy (p, *mangled, symbol_len);	      p [symbol_len] = '\0';	      /* We use cplus_demangle here, rather than		 internal_cplus_demangle, because the name of the entity		 mangled here does not make use of any of the squangling		 or type-code information we have built up thus far; it is		 mangled independently.  */	      q = cplus_demangle (p, work->options);	      if (tk == tk_pointer)		string_appendn (s, "&", 1);	      /* FIXME: Pointer-to-member constants should get a		 qualifying class name here.  */	      if (q)		{		  string_append (s, q);		  free (q);		}	      else		string_append (s, p);	      free (p);	    }	  *mangled += symbol_len;	}    }  return success;}/* Demangle the template name in MANGLED.  The full name of the   template (e.g., S<int>) is placed in TNAME.  The name without the   template parameters (e.g. S) is placed in TRAWNAME if TRAWNAME is   non-NULL.  If IS_TYPE is nonzero, this template is a type template,   not a function template.  If both IS_TYPE and REMEMBER are nonzero,   the template is remembered in the list of back-referenceable   types.  */static intdemangle_template (work, mangled, tname, trawname, is_type, remember)     struct work_stuff *work;     const char **mangled;     string *tname;     string *trawname;     int is_type;     int remember;{  int i;  int r;  int need_comma = 0;  int success = 0;  const char *start;  int is_java_array = 0;  string temp;  int bindex = 0;  (*mangled)++;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧洲一区二区三区免费视频| 成人黄色片在线观看| 国产麻豆精品视频| 国产伦精品一区二区三区在线观看| 久久电影网电视剧免费观看| 蜜桃久久久久久久| 精品一二三四区| 国产盗摄一区二区三区| 国产精品77777竹菊影视小说| 国产精品99久久久久久久vr| 成人免费视频免费观看| 99久久99久久综合| 欧美性一二三区| 欧美顶级少妇做爰| 精品久久一区二区三区| 久久久精品国产免费观看同学| 国产视频一区在线观看 | 国产很黄免费观看久久| 懂色一区二区三区免费观看| 99久久精品国产一区二区三区| 91国产免费看| 91精品黄色片免费大全| 欧美videos大乳护士334| 国产色婷婷亚洲99精品小说| 国产精品网曝门| 亚洲一区二区三区四区在线免费观看| 亚洲成人免费视频| 蜜臀a∨国产成人精品| 国产乱人伦偷精品视频免下载| 99精品在线观看视频| 欧美日韩国产高清一区二区三区| 日韩免费电影网站| 中文字幕精品三区| 亚洲国产精品一区二区www| 日本美女一区二区| 成人免费电影视频| 欧美老肥妇做.爰bbww| 精品久久一区二区| 亚洲三级久久久| 日产国产高清一区二区三区| 国产成人av电影在线观看| 色呦呦日韩精品| 日韩欧美中文字幕公布| 国产精品麻豆久久久| 亚洲成人你懂的| 国产白丝网站精品污在线入口| 91久久精品日日躁夜夜躁欧美| 欧美一区二区视频在线观看| 国产精品色婷婷久久58| 亚洲图片欧美视频| 国产成人av一区二区三区在线观看| 在线一区二区三区| 久久精品视频网| 亚洲一卡二卡三卡四卡 | 欧美电影免费观看高清完整版| 国产欧美在线观看一区| 亚洲国产精品久久不卡毛片| 国产成人精品免费在线| 在线播放国产精品二区一二区四区| 人妖欧美一区二区| 成人av网址在线观看| 日韩午夜小视频| 亚洲精品国产精华液| 国产福利不卡视频| 91麻豆精品久久久久蜜臀| 国产精品久久久久久久久久免费看| 日韩国产精品久久久| 久久国产麻豆精品| 欧美亚洲禁片免费| 欧美国产成人在线| 理论电影国产精品| 欧美日本在线播放| 自拍偷拍国产精品| 国产69精品久久777的优势| 6080yy午夜一二三区久久| 亚洲精品久久7777| 成人性生交大片免费看在线播放 | 亚洲一区二区三区精品在线| 激情欧美一区二区三区在线观看| 欧美在线观看禁18| 18成人在线观看| 国内精品伊人久久久久av影院| 在线观看91av| 亚洲国产精品一区二区尤物区| 91玉足脚交白嫩脚丫在线播放| 久久久久久久久久久黄色| 日韩av中文在线观看| 91黄色免费看| 亚洲欧美日本在线| 99久久国产免费看| 中文字幕一区二区三区精华液| 国产91在线观看| 国产喂奶挤奶一区二区三区| 国产中文字幕精品| 欧美xxxxxxxx| 精品在线一区二区| 日韩欧美在线123| 青青国产91久久久久久| 欧美美女喷水视频| 水蜜桃久久夜色精品一区的特点| 91黄视频在线| 亚洲自拍偷拍av| 欧美色涩在线第一页| 亚洲资源中文字幕| 欧美日韩色综合| 天天免费综合色| 欧美精品久久久久久久久老牛影院 | 亚洲香肠在线观看| 在线视频欧美精品| 亚洲福利国产精品| 欧美精品精品一区| 免费成人在线网站| 精品久久一区二区| 国产成人亚洲综合a∨猫咪| 国产女主播一区| av网站一区二区三区| 99久久精品国产观看| 中文字幕佐山爱一区二区免费| 一本色道久久综合精品竹菊| 一区二区三区不卡视频| 欧美午夜在线一二页| 日韩精品一级二级| 精品久久久久99| 成人在线视频首页| 亚洲欧美电影一区二区| 欧美视频自拍偷拍| 亚洲444eee在线观看| 欧美日韩国产一二三| 男男成人高潮片免费网站| 久久综合色8888| 91免费视频观看| 亚洲成av人综合在线观看| 日韩欧美一级在线播放| 国产精品综合二区| 亚洲人快播电影网| 777午夜精品免费视频| 国产伦精品一区二区三区视频青涩 | 欧美专区在线观看一区| 人人狠狠综合久久亚洲| 国产色一区二区| 在线观看欧美黄色| 九九视频精品免费| 亚洲欧美一区二区三区国产精品| 欧美三级日本三级少妇99| 久久精品国产第一区二区三区| 中文字幕乱码日本亚洲一区二区 | 欧美成人一级视频| 北岛玲一区二区三区四区| 亚洲国产视频在线| 久久亚洲一区二区三区四区| 91欧美一区二区| 久久精品国产久精国产爱| 综合激情网...| 日韩色在线观看| aaa国产一区| 另类人妖一区二区av| 亚洲视频在线观看三级| 欧美大片拔萝卜| 欧洲精品一区二区| 国产成人在线色| 欧美乱熟臀69xxxxxx| 国产成人久久精品77777最新版本| 一区二区久久久久久| 国产亚洲综合在线| 欧美日本韩国一区二区三区视频 | 91视视频在线观看入口直接观看www | 91黄色免费网站| 国产精品亚洲第一| 日韩国产欧美在线视频| 亚洲视频 欧洲视频| 久久综合久久综合久久综合| 欧美人体做爰大胆视频| 91在线视频播放地址| 精品在线视频一区| 日韩极品在线观看| 亚洲精品国产无套在线观| 国产精品色哟哟| 久久久.com| 欧美成人精品二区三区99精品| 色成人在线视频| www.欧美日韩国产在线| 韩国一区二区在线观看| 日韩av在线发布| 亚洲风情在线资源站| 亚洲欧美日韩电影| 亚洲视频每日更新| 亚洲欧美自拍偷拍色图| 国产精品美女久久久久高潮| 久久久精品日韩欧美| 精品久久一区二区| 日韩午夜在线观看视频| 91精品久久久久久久91蜜桃| 欧美日韩精品一区二区三区蜜桃 | 国产成人无遮挡在线视频| 日韩av电影天堂| 天堂va蜜桃一区二区三区| 亚洲国产综合色| 亚洲乱码国产乱码精品精98午夜| 国产精品免费视频网站|