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

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

?? cplus-dem.c

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
	      string_appends (declp, &trawname);	      work->destructor -= 1;	    }	  if ((work->constructor & 1) || (work->destructor & 1))	    {	      string_appends (declp, &trawname);	      work->constructor -= 1;	    }	  string_delete(&trawname);	  string_delete(&tname);	  oldmangled = NULL;	  expect_func = 1;	  break;	case '_':	  if ((AUTO_DEMANGLING || GNU_DEMANGLING) && expect_return_type)	    {	      /* Read the return type. */	      string 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 (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 (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 (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 (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 multidigit_without_leading_underscore = 0;      int leave_following_underscore = 0;      success = 0;      if (**mangled == '_')        {	  if (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.  */	      multidigit_without_leading_underscore = 1;	      string_appendn (s, "-", 1);	      (*mangled) += 2;	    }	  else	    {	      /* Do not consume a following underscore;	         consume_count_with_underscores will consume what	         should be consumed.  */	      leave_following_underscore = 1;	    }	}      else	{	  /* Negative numbers are indicated with a leading `m'.  */	  if (**mangled == 'm')	  {	    string_appendn (s, "-", 1);	    (*mangled)++;	  }	  /* Since consume_count_with_underscores does not handle	     multi-digit numbers that do not start with an underscore,	     and this number can be an integer template parameter,	     we have to call consume_count. */	  multidigit_without_leading_underscore = 1;	  /* These multi-digit numbers never end on an underscore,	     so if there is one then don't eat it. */	  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 (multidigit_without_leading_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 || multidigit_without_leading_underscore)	      && ! leave_following_underscore	      && **mangled == '_')	    (*mangled)++;	  /* All is well.  */	  success = 1;	}      }  return success;}/* Demangle the real value in MANGLED.  */static intdemangle_real_value (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 (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 = XNEWVEC (char, 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);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区果冻传媒| 精品国精品国产| 91视频精品在这里| 成人av网站在线观看免费| 成人黄色免费短视频| 波多野结衣中文一区| voyeur盗摄精品| 色综合久久综合| 欧美综合一区二区三区| 欧美在线看片a免费观看| 日本精品一区二区三区四区的功能| 91网站黄www| 成人av资源下载| 欧洲视频一区二区| 欧美日韩不卡一区| 精品久久人人做人人爽| 久久亚洲欧美国产精品乐播| 中文字幕成人av| 一区二区三区在线免费观看| 天堂资源在线中文精品| 另类小说视频一区二区| 国产一区二区精品久久| 91在线观看视频| 欧美裸体bbwbbwbbw| xf在线a精品一区二区视频网站| 国产性色一区二区| 中文字幕综合网| 日韩黄色片在线观看| 久久精品国产99国产| 国产成人av一区| 在线免费一区三区| 91精品久久久久久久久99蜜臂| 精品处破学生在线二十三| 欧美韩日一区二区三区| 亚洲制服丝袜av| 麻豆精品国产传媒mv男同| 粉嫩av一区二区三区| 91麻豆精品一区二区三区| 91麻豆精品国产| 欧美国产精品一区二区三区| 亚洲一区二区三区三| 九九久久精品视频| 色婷婷国产精品久久包臀 | 欧美精品九九99久久| 久久一夜天堂av一区二区三区| 国产精品乱人伦一区二区| 日韩精品福利网| 成人免费高清视频在线观看| 91麻豆精品国产91久久久久久久久 | 亚洲色图欧洲色图| 日韩1区2区日韩1区2区| av色综合久久天堂av综合| 欧美一区二区三区精品| 亚洲天堂精品视频| 美女精品一区二区| 欧美制服丝袜第一页| 国产亚洲精品福利| 性欧美大战久久久久久久久| 成人午夜激情片| 日韩一区二区三免费高清| 亚洲欧洲av在线| 精品亚洲成a人在线观看 | 亚洲美腿欧美偷拍| 国产做a爰片久久毛片 | 亚洲成人免费av| 91一区二区在线| 国产日韩欧美激情| 久久电影国产免费久久电影| 在线观看三级视频欧美| 欧美韩国一区二区| 精品一区二区三区免费毛片爱| 欧美性色欧美a在线播放| 中文字幕av一区 二区| 久久99深爱久久99精品| 欧美精品 日韩| 亚洲精品老司机| 成人app网站| 国产日产欧美一区二区三区| 久久精品免费观看| 欧美一区二区视频在线观看2022| 亚洲免费资源在线播放| 国产91丝袜在线播放0| 精品国产91洋老外米糕| 欧美a级理论片| 91精品国产一区二区三区蜜臀| 亚洲精品菠萝久久久久久久| av一区二区不卡| 国产精品天美传媒| 成人一区二区三区中文字幕| 久久美女艺术照精彩视频福利播放| 欧美aⅴ一区二区三区视频| 欧美丰满少妇xxxbbb| 亚洲狠狠爱一区二区三区| 日本高清视频一区二区| 亚洲欧洲性图库| 9久草视频在线视频精品| 国产精品国产三级国产普通话99| 国产91精品免费| 中文字幕免费不卡在线| 国产成人欧美日韩在线电影| 国产午夜精品一区二区三区视频| 国产精品一区二区久久不卡| 久久久精品蜜桃| 粉嫩在线一区二区三区视频| 亚洲综合激情另类小说区| 91丨九色丨尤物| 亚洲综合在线视频| 欧美日韩三级视频| 日本免费新一区视频| 日韩免费性生活视频播放| 精品夜夜嗨av一区二区三区| 久久久久久电影| 成人av高清在线| 亚洲精品乱码久久久久久久久| 欧美在线你懂得| 日韩1区2区3区| 2021中文字幕一区亚洲| 成人av资源站| 亚洲精品福利视频网站| 欧美剧情片在线观看| 美女一区二区三区在线观看| 久久久午夜电影| www.色精品| 亚洲一区二区三区美女| 日韩欧美视频一区| 国产精品99久久久| 国产精品不卡一区二区三区| 欧美最新大片在线看| 免费的成人av| 国产精品女主播在线观看| 日本韩国欧美三级| 美腿丝袜亚洲综合| 国产精品国产自产拍在线| 欧美三级中文字幕| 狠狠色综合日日| 亚洲丝袜另类动漫二区| 5月丁香婷婷综合| 国产成人精品综合在线观看| 亚洲精选视频在线| 精品国产乱码久久久久久老虎| 99国产一区二区三精品乱码| 日韩专区中文字幕一区二区| 国产日韩一级二级三级| 欧美性生交片4| 精品在线视频一区| 一区二区三区在线高清| 亚洲精品一区二区精华| 在线观看视频一区二区欧美日韩| 国内精品自线一区二区三区视频| 亚洲视频在线观看三级| 精品理论电影在线| 欧美最猛性xxxxx直播| 国产成人在线色| 视频在线观看国产精品| 国产精品久久久久9999吃药| 91精品国产91久久久久久一区二区| 风间由美一区二区三区在线观看| 亚洲123区在线观看| 日本一二三不卡| 欧美一区二区三区男人的天堂| 国产不卡视频在线播放| 日韩国产欧美在线视频| 亚洲另类一区二区| 欧美激情中文字幕| 日韩一区二区在线观看视频播放| 91在线视频播放地址| 国内精品第一页| 日韩精品欧美成人高清一区二区| 国产精品成人在线观看| 久久先锋影音av| 欧美一区2区视频在线观看| 91蜜桃视频在线| 成人免费高清在线| 国产九色sp调教91| 免费看精品久久片| 亚洲一区二区四区蜜桃| 国产精品网友自拍| 久久久精品欧美丰满| 日韩情涩欧美日韩视频| 欧美剧情电影在线观看完整版免费励志电影| 国产不卡免费视频| 精油按摩中文字幕久久| 大白屁股一区二区视频| 九九国产精品视频| 久久国产剧场电影| 五月婷婷激情综合| 亚洲一区二区视频在线观看| 亚洲日本在线看| 国产精品毛片大码女人| 日本一区二区三区免费乱视频| 日韩欧美你懂的| 日韩欧美高清dvd碟片| 69久久99精品久久久久婷婷| 在线观看视频一区二区| 日本黄色一区二区| 91丝袜国产在线播放| 91免费版在线看| 91在线精品一区二区| 91在线观看美女| 色综合网站在线|