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

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

?? cplus-dem.c

?? Vxworks OS source code
?? C
?? 第 1 頁 / 共 5 頁
字號:
  if (is_type)    {      if (remember)	bindex = register_Btype (work);      start = *mangled;      /* get template name */      if (**mangled == 'z')	{	  int idx;	  (*mangled)++;	  (*mangled)++;	  idx = consume_count_with_underscores (mangled);	  if (idx == -1	      || (work->tmpl_argvec && idx >= work->ntmpl_args)	      || consume_count_with_underscores (mangled) == -1)	    return (0);	  if (work->tmpl_argvec)	    {	      string_append (tname, work->tmpl_argvec[idx]);	      if (trawname)		string_append (trawname, work->tmpl_argvec[idx]);	    }	  else	    {	      string_append_template_idx (tname, idx);	      if (trawname)		string_append_template_idx (trawname, idx);	    }	}      else	{	  if ((r = consume_count (mangled)) <= 0	      || (int) strlen (*mangled) < r)	    {	      return (0);	    }	  is_java_array = (work -> options & DMGL_JAVA)	    && strncmp (*mangled, "JArray1Z", 8) == 0;	  if (! is_java_array)	    {	      string_appendn (tname, *mangled, r);	    }	  if (trawname)	    string_appendn (trawname, *mangled, r);	  *mangled += r;	}    }  if (!is_java_array)    string_append (tname, "<");  /* get size of template parameter list */  if (!get_count (mangled, &r))    {      return (0);    }  if (!is_type)    {      /* Create an array for saving the template argument values. */      work->tmpl_argvec = (char**) xmalloc (r * sizeof (char *));      work->ntmpl_args = r;      for (i = 0; i < r; i++)	work->tmpl_argvec[i] = 0;    }  for (i = 0; i < r; i++)    {      if (need_comma)	{	  string_append (tname, ", ");	}      /* Z for type parameters */      if (**mangled == 'Z')	{	  (*mangled)++;	  /* temp is initialized in do_type */	  success = do_type (work, mangled, &temp);	  if (success)	    {	      string_appends (tname, &temp);	      if (!is_type)		{		  /* Save the template argument. */		  int len = temp.p - temp.b;		  work->tmpl_argvec[i] = xmalloc (len + 1);		  memcpy (work->tmpl_argvec[i], temp.b, len);		  work->tmpl_argvec[i][len] = '\0';		}	    }	  string_delete(&temp);	  if (!success)	    {	      break;	    }	}      /* z for template parameters */      else if (**mangled == 'z')	{	  int r2;	  (*mangled)++;	  success = demangle_template_template_parm (work, mangled, tname);	  if (success	      && (r2 = consume_count (mangled)) > 0	      && (int) strlen (*mangled) >= r2)	    {	      string_append (tname, " ");	      string_appendn (tname, *mangled, r2);	      if (!is_type)		{		  /* Save the template argument. */		  int len = r2;		  work->tmpl_argvec[i] = xmalloc (len + 1);		  memcpy (work->tmpl_argvec[i], *mangled, len);		  work->tmpl_argvec[i][len] = '\0';		}	      *mangled += r2;	    }	  if (!success)	    {	      break;	    }	}      else	{	  string  param;	  string* s;	  /* otherwise, value parameter */	  /* temp is initialized in do_type */	  success = do_type (work, mangled, &temp);	  string_delete(&temp);	  if (!success)	    break;	  if (!is_type)	    {	      s = &param;	      string_init (s);	    }	  else	    s = tname;	  success = demangle_template_value_parm (work, mangled, s,						  (type_kind_t) success);	  if (!success)	    {	      if (!is_type)		string_delete (s);	      success = 0;	      break;	    }	  if (!is_type)	    {	      int len = s->p - s->b;	      work->tmpl_argvec[i] = xmalloc (len + 1);	      memcpy (work->tmpl_argvec[i], s->b, len);	      work->tmpl_argvec[i][len] = '\0';	      string_appends (tname, s);	      string_delete (s);	    }	}      need_comma = 1;    }  if (is_java_array)    {      string_append (tname, "[]");    }  else    {      if (tname->p[-1] == '>')	string_append (tname, " ");      string_append (tname, ">");    }  if (is_type && remember)    remember_Btype (work, tname->b, LEN_STRING (tname), bindex);  /*    if (work -> static_type)    {    string_append (declp, *mangled + 1);    *mangled += strlen (*mangled);    success = 1;    }    else    {    success = demangle_args (work, mangled, declp);    }    }    */  return (success);}static intarm_pt (work, mangled, n, anchor, args)     struct work_stuff *work;     const char *mangled;     int n;     const char **anchor, **args;{  /* Check if ARM template with "__pt__" in it ("parameterized type") */  /* Allow HP also here, because HP's cfront compiler follows ARM to some extent */  if ((ARM_DEMANGLING || HP_DEMANGLING) && (*anchor = mystrstr (mangled, "__pt__")))    {      int len;      *args = *anchor + 6;      len = consume_count (args);      if (len == -1)	return 0;      if (*args + len == mangled + n && **args == '_')	{	  ++*args;	  return 1;	}    }  if (AUTO_DEMANGLING || EDG_DEMANGLING)    {      if ((*anchor = mystrstr (mangled, "__tm__"))          || (*anchor = mystrstr (mangled, "__ps__"))          || (*anchor = mystrstr (mangled, "__pt__")))        {          int len;          *args = *anchor + 6;          len = consume_count (args);	  if (len == -1)	    return 0;          if (*args + len == mangled + n && **args == '_')            {              ++*args;              return 1;            }        }      else if ((*anchor = mystrstr (mangled, "__S")))        { 	  int len; 	  *args = *anchor + 3; 	  len = consume_count (args);	  if (len == -1)	    return 0; 	  if (*args + len == mangled + n && **args == '_')            {              ++*args; 	      return 1;            }        }    }  return 0;}static voiddemangle_arm_hp_template (work, mangled, n, declp)     struct work_stuff *work;     const char **mangled;     int n;     string *declp;{  const char *p;  const char *args;  const char *e = *mangled + n;  string arg;  /* Check for HP aCC template spec: classXt1t2 where t1, t2 are     template args */  if (HP_DEMANGLING && ((*mangled)[n] == 'X'))    {      char *start_spec_args = NULL;      /* First check for and omit template specialization pseudo-arguments,         such as in "Spec<#1,#1.*>" */      start_spec_args = strchr (*mangled, '<');      if (start_spec_args && (start_spec_args - *mangled < n))        string_appendn (declp, *mangled, start_spec_args - *mangled);      else        string_appendn (declp, *mangled, n);      (*mangled) += n + 1;      string_init (&arg);      if (work->temp_start == -1) /* non-recursive call */        work->temp_start = declp->p - declp->b;      string_append (declp, "<");      while (1)        {          string_clear (&arg);          switch (**mangled)            {              case 'T':                /* 'T' signals a type parameter */                (*mangled)++;                if (!do_type (work, mangled, &arg))                  goto hpacc_template_args_done;                break;              case 'U':              case 'S':                /* 'U' or 'S' signals an integral value */                if (!do_hpacc_template_const_value (work, mangled, &arg))                  goto hpacc_template_args_done;                break;              case 'A':                /* 'A' signals a named constant expression (literal) */                if (!do_hpacc_template_literal (work, mangled, &arg))                  goto hpacc_template_args_done;                break;              default:                /* Today, 1997-09-03, we have only the above types                   of template parameters */                /* FIXME: maybe this should fail and return null */                goto hpacc_template_args_done;            }          string_appends (declp, &arg);         /* Check if we're at the end of template args.             0 if at end of static member of template class,             _ if done with template args for a function */          if ((**mangled == '\000') || (**mangled == '_'))            break;          else            string_append (declp, ",");        }    hpacc_template_args_done:      string_append (declp, ">");      string_delete (&arg);      if (**mangled == '_')        (*mangled)++;      return;    }  /* ARM template? (Also handles HP cfront extensions) */  else if (arm_pt (work, *mangled, n, &p, &args))    {      string type_str;      string_init (&arg);      string_appendn (declp, *mangled, p - *mangled);      if (work->temp_start == -1)  /* non-recursive call */	work->temp_start = declp->p - declp->b;      string_append (declp, "<");      /* should do error checking here */      while (args < e) {	string_clear (&arg);	/* Check for type or literal here */	switch (*args)	  {	    /* HP cfront extensions to ARM for template args */	    /* spec: Xt1Lv1 where t1 is a type, v1 is a literal value */	    /* FIXME: We handle only numeric literals for HP cfront */          case 'X':            /* A typed constant value follows */            args++;            if (!do_type (work, &args, &type_str))	      goto cfront_template_args_done;            string_append (&arg, "(");            string_appends (&arg, &type_str);            string_append (&arg, ")");            if (*args != 'L')              goto cfront_template_args_done;            args++;            /* Now snarf a literal value following 'L' */            if (!snarf_numeric_literal (&args, &arg))	      goto cfront_template_args_done;            break;          case 'L':            /* Snarf a literal following 'L' */            args++;            if (!snarf_numeric_literal (&args, &arg))	      goto cfront_template_args_done;            break;          default:            /* Not handling other HP cfront stuff */            if (!do_type (work, &args, &arg))              goto cfront_template_args_done;	  }	string_appends (declp, &arg);	string_append (declp, ",");      }    cfront_template_args_done:      string_delete (&arg);      if (args >= e)	--declp->p; /* remove extra comma */      string_append (declp, ">");    }  else if (n>10 && strncmp (*mangled, "_GLOBAL_", 8) == 0	   && (*mangled)[9] == 'N'	   && (*mangled)[8] == (*mangled)[10]	   && strchr (cplus_markers, (*mangled)[8]))    {      /* A member of the anonymous namespace.  */      string_append (declp, "{anonymous}");    }  else    {      if (work->temp_start == -1) /* non-recursive call only */	work->temp_start = 0;     /* disable in recursive calls */      string_appendn (declp, *mangled, n);    }  *mangled += n;}/* Extract a class name, possibly a template with arguments, from the   mangled string; qualifiers, local class indicators, etc. have   already been dealt with */static intdemangle_class_name (work, mangled, declp)     struct work_stuff *work;     const char **mangled;     string *declp;{  int n;  int success = 0;  n = consume_count (mangled);  if (n == -1)    return 0;  if ((int) strlen (*mangled) >= n)    {      demangle_arm_hp_template (work, mangled, n, declp);      success = 1;    }  return (success);}/*LOCAL FUNCTION	demangle_class -- demangle a mangled class sequenceSYNOPSIS	static int	demangle_class (struct work_stuff *work, const char **mangled,			strint *declp)DESCRIPTION	DECLP points to the buffer into which demangling is being done.	*MANGLED points to the current token to be demangled.  On input,	it points to a mangled class (I.E. "3foo", "13verylongclass", etc.)	On exit, it points to the next token after the mangled class on	success, or the first unconsumed token on failure.	If the CONSTRUCTOR or DESTRUCTOR flags are set in WORK, then	we are demangling a constructor or destructor.  In this case	we prepend "class::class" or "class::~class" to DECLP.	Otherwise, we prepend "class::" to the current DECLP.	Reset the constructor/destructor flags once they have been	"consumed".  This allows demangle_class to be called later during	the same demangling, to do normal class demangling.	Returns 1 if demangling is successful, 0 otherwise.*/static intdemangle_class (work, mangled, declp)     struct work_stuff *work;     const char **mangled;     string *declp;{  int success = 0;  int btype;  string class_name;  char *save_class_name_end = 0;  string_init (&class_name);  btype = register_Btype (work);  if (demangle_class_name (work, mangled, &class_name))    {      save_class_name_end = class_name.p;      if ((work->constructor & 1) || (work->destructor & 1))	{          /* adjust so we don't include template args */          if (work->temp_start && (work->temp_start != -1))            {              class_name.p = class_name.b + work->temp_start;            }	  string_prepends (declp, &class_name);	  if (work -> destructor & 1)	    {	      string_prepend (declp, "~");              work -> destructor -= 1;	    }	  else	    {	      work -> constructor -= 1;	    }	}      class_name.p = save_class_name_end;      remember_Ktype (work, class_name.b, LEN_STRING(&class_name));      remember_Btype (work, class_name.b, LEN_STRING(&class_name), btype);      string_prepend (declp, SCOPE_STRING (work));      string_prepends (declp, &class_name);      success = 1;    }  string_delete (&class_name);  return (success);}/* Called when there's a "__" in the mangled name, with `scan' pointing to   the rightmost guess.   Find the correct "__"-sequence where the function name ends and the   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合在线观看色| 蜜臀av性久久久久蜜臀aⅴ四虎 | 制服丝袜亚洲网站| 色综合久久久久久久久| 99久久精品免费| 国产成人av影院| 国产传媒日韩欧美成人| 国产精品中文字幕欧美| 国产成人在线视频网站| 懂色av一区二区三区免费观看| 国产真实乱子伦精品视频| 国产一区二区精品久久99| 国产激情91久久精品导航| 成人精品免费看| 99精品偷自拍| 日本道精品一区二区三区| 在线观看亚洲精品| 欧美男同性恋视频网站| 欧美高清一级片在线| 欧美一区二区成人| 久久伊人中文字幕| 国产精品高清亚洲| 亚洲综合色网站| 日韩精品视频网站| 蜜臀久久久99精品久久久久久| 激情综合色综合久久综合| 国产高清久久久| 91污在线观看| 欧美日韩免费观看一区三区| 日韩一级精品视频在线观看| 久久免费视频色| 亚洲啪啪综合av一区二区三区| 一区二区在线观看视频在线观看| 亚洲6080在线| 国产精品主播直播| 欧美在线一二三四区| 欧美大片在线观看| 中文字幕综合网| 石原莉奈在线亚洲二区| 国产乱子轮精品视频| 色综合久久久久久久久| 日韩小视频在线观看专区| 欧美国产成人在线| 亚洲成人av一区二区| 国产精品系列在线播放| 欧美三级日韩三级| 久久久综合九色合综国产精品| 亚洲三级免费观看| 老司机午夜精品| 色综合中文综合网| 日韩精品在线一区二区| 国产精品青草久久| 午夜av一区二区三区| 国产一区二区在线视频| 欧美三电影在线| 国产三级三级三级精品8ⅰ区| 亚洲成人资源网| 高清beeg欧美| 日韩一区二区三区免费观看| 亚洲欧洲三级电影| 精品一区二区三区在线观看| 在线一区二区三区做爰视频网站| 欧美一二区视频| 亚洲精品中文字幕在线观看| 久久se精品一区二区| 欧美专区日韩专区| 国产精品美女久久久久久久久| 日韩不卡手机在线v区| 97精品久久久午夜一区二区三区| 欧美大黄免费观看| 亚洲电影一区二区| 99re这里只有精品6| 精品国产一区二区三区久久影院 | 亚洲午夜精品一区二区三区他趣| 国产精品一区二区三区乱码 | 亚洲精品国产成人久久av盗摄| 精品一区二区三区免费毛片爱| 欧美色综合天天久久综合精品| 国产精品视频看| 国产一区二区三区电影在线观看 | 亚洲一区二区成人在线观看| 粉嫩嫩av羞羞动漫久久久| 欧美xxxxxxxxx| 亚洲18女电影在线观看| 一本一道久久a久久精品综合蜜臀| 久久久精品日韩欧美| 蜜桃视频在线观看一区二区| 欧美性一区二区| 亚洲欧美日韩小说| 波多野结衣中文字幕一区二区三区 | 国产一区二区三区久久悠悠色av| 7777精品久久久大香线蕉| 亚洲第一激情av| 色婷婷综合久久| 亚洲天堂成人网| 91在线云播放| 综合av第一页| 99天天综合性| 中文字幕亚洲在| 99久久综合国产精品| 国产精品视频线看| av网站免费线看精品| 中文字幕在线观看一区| 91视频在线观看| 亚洲视频一区二区在线观看| av影院午夜一区| 亚洲伦在线观看| 欧美做爰猛烈大尺度电影无法无天| 最新不卡av在线| 91视频免费观看| 亚洲精品国产一区二区三区四区在线| 99re热这里只有精品免费视频| 国产精品麻豆99久久久久久| 波多野结衣精品在线| 国产精品国产三级国产aⅴ入口| 99久久er热在这里只有精品15| 亚洲欧美日韩系列| 欧美日韩在线播放三区四区| 日韩在线观看一区二区| 日韩三级精品电影久久久| 麻豆国产精品视频| 久久久亚洲综合| 成人高清av在线| 亚洲精品国久久99热| 91精品国产高清一区二区三区| 久久成人免费网| 日本一区二区三区在线不卡| 99视频一区二区| 亚洲国产欧美一区二区三区丁香婷| 欧美日韩不卡一区二区| 精品一区二区在线观看| 国产精品久久久久久一区二区三区 | 日韩一区二区免费在线电影| 国产在线精品国自产拍免费| 国产丝袜在线精品| 日本韩国欧美一区| 蜜桃视频在线观看一区| 国产欧美精品一区| 欧美日韩中文国产| 经典三级在线一区| 亚洲欧美日韩精品久久久久| 欧美精品久久久久久久多人混战 | 99国产一区二区三精品乱码| 亚洲人快播电影网| 91精品视频网| 97久久超碰国产精品| 丝袜国产日韩另类美女| 久久久美女毛片| 在线亚洲高清视频| 激情偷乱视频一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 日韩视频一区二区三区在线播放| 国产成a人亚洲精| 五月天欧美精品| 久久久久久久综合色一本| 在线观看中文字幕不卡| 国产精品资源站在线| 五月婷婷久久丁香| 国产精品女主播av| 日韩精品一区国产麻豆| 色综合色综合色综合| 国产伦精品一区二区三区免费| 一区二区三区四区五区视频在线观看| 日韩免费视频一区二区| 91小视频在线免费看| 国产美女在线观看一区| 亚洲国产你懂的| 国产精品久久夜| 精品人在线二区三区| 欧美性做爰猛烈叫床潮| 成人av高清在线| 久草这里只有精品视频| 亚洲国产综合91精品麻豆| 国产偷国产偷亚洲高清人白洁| 91精品国产欧美日韩| 精品婷婷伊人一区三区三| 成人av影院在线| 国产一区二区三区精品欧美日韩一区二区三区| 一区二区三区精品视频在线| 国产亚洲福利社区一区| 日韩三级在线免费观看| 欧美另类videos死尸| 99精品欧美一区| 高清成人免费视频| 狠狠色丁香久久婷婷综合_中| 午夜精品免费在线观看| 一区二区三区欧美视频| 中文字幕在线视频一区| 国产亚洲精品久| 久久久久久久久久久久电影| 欧美一级艳片视频免费观看| 欧美日韩精品一区二区三区蜜桃| 99re热这里只有精品视频| 成人禁用看黄a在线| 国产不卡在线一区| 粉嫩aⅴ一区二区三区四区| 国产高清视频一区| 国产成人在线视频网址| 国产suv精品一区二区三区| 国产一区中文字幕|