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

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

?? edg-decode.c

?? Vxworks OS source code
?? C
?? 第 1 頁 / 共 5 頁
字號:
                                     a_boolean                  base_name_only,                                     a_template_param_block_ptr temp_par_info,                                     a_decode_control_block_ptr dctl)/*Demangle the type name at ptr and output the demangled form.  Return a pointerto the character position following what was demangled.  The name can bea simple type name or a nested type name, or the name of a namespace.If base_name_only is TRUE, do not put out any nested type qualifiers,e.g., put out "A::x" as simply "x".  When temp_par_info != NULL, itpoints to a block that controls output of extra information on templateparameters.  Note that this routine is called for namespaces too(the mangling is the same as for class names; you can't actually tellthe difference in a mangled name).  See demangle_type_name for aninterface to this routine for the simple case.*/{  char          *p = ptr;  unsigned long nquals;  if (*p == 'Q') {    /* A nested type name has the form         Q2_5outer5inner   (outer::inner)            ^-----^--------Names from outermost to innermost          ^----------------Number of levels of qualification.       Note that the levels in the qualifier can be class names or namespace       names. */    p = get_number(p+1, &nquals, dctl);    p = advance_past_underscore(p, dctl);    /* Handle each level of qualification. */    for (; nquals > 0; nquals--) {      if (dctl->err_in_id) break;  /* Avoid infinite loops on errors. */      /* Do not put out the nested type qualifiers if base_name_only is         TRUE. */      if (base_name_only && nquals != 1) dctl->suppress_id_output++;      p = demangle_simple_type_name(p, temp_par_info, dctl);      if (nquals != 1) write_id_str("::", dctl);      if (base_name_only && nquals != 1) dctl->suppress_id_output--;    }  /* for */  } else {#ifndef WRS_ORIG					/* WRS LOCAL */    a_template_param_block ctdt_temp_par_info;    if (base_name_only)      {	/* Also need to suppress template parameters when printing these! */	temp_par_info = &ctdt_temp_par_info;	clear_template_param_block(temp_par_info);	temp_par_info->base_name_only = TRUE;      }    /* N.B. when base_name_only is true, temp_par_info is also NULL.	We need it to pass down base_name_only, so we create a blank one	at this level. But note, we don't preserve temp_par_info so if you	add code that needs the old one, also add code to save/restore it. */#endif    /* A simple (non-nested) type name. */    p = demangle_simple_type_name(p, temp_par_info, dctl);  }  /* if */  return p;}  /* full_demangle_type_name */static char *demangle_vtbl_class_name(char                       *ptr,                                      a_decode_control_block_ptr dctl)/*Demangle a class or base class name that is one component of a virtualfunction table name.  Such names are mangled mostly as types, but witha few special quirks.*/{  char      *p = ptr;  a_boolean nested_name_case = FALSE;  /* If the name begins with a number, "Q", and another number, assume     it's a name with a form like "7Q2_1A1B", which is used to encode     A::B as the complete object class name component of a virtual     function table name.  This doesn't have any particular sense to     it; it's just what cfront does (and EDG's front end does the same     at ABI versions >= 2.30 in cfront compatibility mode).  This could     fail if the user actually has a class with a name that begins     like "Q2_", but there's not much we can do about that. */  if (isdigit((unsigned char)*p)) {    do { p++; } while (isdigit((unsigned char)*p));    if (*p == 'Q') {      char *save_p = p;      p++;      if (isdigit((unsigned char)*p)) {        do { p++; } while (isdigit((unsigned char)*p));        if (*p == '_') {          /* Yes, this is the strange nested name case.  Start the demangling             at the "Q". */          nested_name_case = TRUE;          p = save_p;        }  /* if */      }  /* if */    }  /* if */  }  /* if */  if (!nested_name_case) p = ptr;  /* Now use the normal routine to demangle the class name. */  p = demangle_type_name(p, dctl);  return p;}  /* demangle_vtbl_class_name */static char *demangle_type_qualifiers(                                     char                       *ptr,                                     a_boolean                  trailing_space,                                     a_decode_control_block_ptr dctl)/*Demangle any type qualifiers (const/volatile) at the indicated location.Return a pointer to the character position following what was demangled.If trailing_space is TRUE, add a space at the end if any qualifiers wereput out.*/{  char      *p = ptr;  a_boolean any_quals = FALSE;  for (;; p++) {    if (*p == 'C') {      if (any_quals) write_id_ch(' ', dctl);      write_id_str("const", dctl);    } else if (*p == 'V') {      if (any_quals) write_id_ch(' ', dctl);      write_id_str("volatile", dctl);    } else {      break;    }  /* if */    any_quals = TRUE;  }  /* for */  if (any_quals && trailing_space) write_id_ch(' ', dctl);  return p;}  /* demangle_type_qualifiers */static char *demangle_type_specifier(char                       *ptr,                                     a_decode_control_block_ptr dctl)/*Demangle the type at ptr and output the specifier part.  Return a pointerto the character position following what was demangled.*/{  char *p = ptr, *s;  /* Process type qualifiers. */  p = demangle_type_qualifiers(p, /*trailing_space=*/TRUE, dctl);  if (isdigit((unsigned char)*p) || *p == 'Q' || *p == 'Z') {    /* Named type, like class or enum, e.g., "3abc". */    p = demangle_type_name(p, dctl);  } else {    /* Builtin type. */    /* Handle signed and unsigned. */    if (*p == 'S') {      write_id_str("signed ", dctl);      p++;    } else if (*p == 'U') {      write_id_str("unsigned ", dctl);      p++;    }  /* if */    switch (*p++) {      case 'v':        s = "void";        break;      case 'c':        s = "char";        break;      case 'w':        s = "wchar_t";        break;      case 'b':        s = "bool";        break;      case 's':        s = "short";        break;      case 'i':        s = "int";        break;      case 'l':        s = "long";        break;      case 'L':        s = "long long";        break;      case 'f':        s = "float";        break;      case 'd':        s = "double";        break;      case 'r':        s = "long double";        break;      case 'm':        /* Microsoft intrinsic __intN types (Visual C++ 6.0 and later). */        switch (*p++) {          case '1':            s = "__int8";            break;          case '2':            s = "__int16";            break;          case '4':            s = "__int32";            break;          case '8':            s = "__int64";            break;          default:            bad_mangled_name(dctl);            s = "";        }  /* switch */        break;      default:        bad_mangled_name(dctl);        s = "";    }  /* switch */    write_id_str(s, dctl);  }  /* if */  return p;}  /* demangle_type_specifier */static char *demangle_function_parameters(char                       *ptr,                                          a_decode_control_block_ptr dctl)/*Demangle the parameter list beginning at ptr and output the demangled form.Return a pointer to the character position following what was demangled.*/{  char      *p = ptr;  char      *param_pos[10];  unsigned  long curr_param_num, param_num, nreps;  a_boolean any_params = FALSE;  write_id_ch('(', dctl);  if (*p == 'v') {    /* Void parameter list. */    p++;  } else {    any_params = TRUE;    /* Loop for each parameter. */    curr_param_num = 1;    for (;;) {      if (dctl->err_in_id) break;  /* Avoid infinite loops on errors. */      if (*p == 'T' || *p == 'N') {        /* Tn means repeat the type of parameter "n". */        /* Nmn means "m" repetitions of the type of parameter "n".  "m"           is a one-digit number. */        /* "n" is also treated as a single-digit number; the front end enforces           that (in non-cfront object code compatibility mode).  cfront does           not, which leads to some ambiguities when "n" is followed by           a class name. */        if (*p++ == 'N') {          /* Get the number of repetitions. */          p = get_single_digit_number(p, &nreps, dctl);        } else {          nreps = 1;        }  /* if */        /* Get the parameter number. */        p = get_single_digit_number(p, &param_num, dctl);        if (param_num < 1 || param_num >= curr_param_num ||            param_pos[param_num] == NULL) {          /* Parameter number out of range. */          bad_mangled_name(dctl);          goto end_of_routine;        }  /* if */        /* Produce "nreps" copies of parameter "param_num". */        for (; nreps > 0; nreps--) {          if (dctl->err_in_id) break;  /* Avoid infinite loops on errors. */          if (curr_param_num < 10) param_pos[curr_param_num] = NULL;          (void)demangle_type(param_pos[param_num], dctl);          if (nreps != 1) write_id_str(", ", dctl);          curr_param_num++;        }  /* if */      } else {        /* A normal parameter. */        if (curr_param_num < 10) param_pos[curr_param_num] = p;        p = demangle_type(p, dctl);        curr_param_num++;      }  /* if */      /* Stop after the last parameter. */      if (*p == '\0' || *p == 'e' || *p == '_') break;      write_id_str(", ", dctl);    }  /* for */  }  /* if */  if (*p == 'e') {    /* Ellipsis. */    if (any_params) write_id_str(", ", dctl);    write_id_str("...", dctl);    p++;  }  /* if */  write_id_ch(')', dctl);end_of_routine:  return p;}  /* demangle_function_parameters */static char *skip_extern_C_indication(char *ptr)/*ptr points to the character after the "F" of a function type.  Skip overand ignore an indication of extern "C" following the "F", if one is present.Return a pointer to the character following the extern "C" indication.There's no syntax for representing the extern "C" in the function type, sojust ignore it.*/{  if (*ptr == 'K') ptr++;  return ptr;}  /* skip_extern_C_indication */static char *demangle_type_first_part(                               char                       *ptr,                               a_boolean                  under_lhs_declarator,                               a_boolean                  need_trailing_space,                               a_decode_control_block_ptr dctl)/*Demangle the type at ptr and output the specifier part and the part of thedeclarator that precedes the name.  Return a pointer to the characterposition following what was demangled.  If under_lhs_declarator is TRUE,this type is directly under a type that uses a left-side declarator,e.g., a pointer type.  (That's used to control use of parentheses aroundparts of the declarator.)  If need_trailing_space is TRUE, put a spaceat the end of the specifiers part (needed if the declarator part isnot empty, because it contains a name or a derived type).*/{  char *p = ptr, *qualp = p;  char kind;  /* Remove type qualifiers. */  while (is_immediate_type_qualifier(p)) p++;  kind = *p;  if (kind == 'P' || kind == 'R') {    /* Pointer or reference type, e.g., "Pc" is pointer to char. */    p = demangle_type_first_part(p+1, /*under_lhs_declarator=*/TRUE,                                 /*need_trailing_space=*/TRUE, dctl);    /* Output "*" or "&" for pointer or reference. */    if (kind == 'R') {      write_id_ch('&', dctl);    } else {      write_id_ch('*', dctl);    }  /* if */    /* Output the type qualifiers on the pointer, if any. */    (void)demangle_type_qualifiers(qualp, /*trailing_space=*/TRUE, dctl);  } else if (kind == 'M') {    /* Pointer-to-member type, e.g., "M1Ai" is pointer to member of A of       type int. */    char *classp = p+1;    /* Skip over the class name. */    dctl->suppress_id_output++;    p = demangle_type_name(classp, dctl);    dctl->suppress_id_output--;    p = demangle_type_first_part(p, /*under_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产女人18水真多18精品一级做| 国产精品每日更新在线播放网址| 国产精品99久| 亚洲宅男天堂在线观看无病毒| 日韩欧美国产一区在线观看| 99在线精品观看| 国产一区二区美女| 午夜久久久久久久久久一区二区| 国产精品伦理在线| 日韩女优视频免费观看| 欧美在线视频你懂得| 大胆欧美人体老妇| 久久电影网电视剧免费观看| 亚洲一区二区三区在线看| 国产精品天美传媒| 久久精品一区蜜桃臀影院| 制服丝袜亚洲播放| 欧美亚洲高清一区二区三区不卡| 成人免费视频免费观看| 老司机免费视频一区二区三区| 亚洲精品网站在线观看| 国产欧美日韩精品在线| 2014亚洲片线观看视频免费| 69久久夜色精品国产69蝌蚪网| 欧洲生活片亚洲生活在线观看| www.av亚洲| 国产成人av一区二区三区在线 | 亚洲图片一区二区| 国产精品久久久久久久久免费桃花| 欧美电视剧在线看免费| 91精品国产一区二区| 欧美性大战xxxxx久久久| 91丨porny丨最新| 成人国产精品免费| 粗大黑人巨茎大战欧美成人| 国产河南妇女毛片精品久久久| 国产制服丝袜一区| 精品一区二区三区在线播放视频| 久久99国产精品久久99| 国产一区二区三区国产| 国产精品一线二线三线精华| 国产激情视频一区二区在线观看 | 亚洲免费观看高清完整版在线观看熊 | 成人免费三级在线| 高清不卡一区二区| 9色porny自拍视频一区二区| 波多野结衣在线一区| 99精品国产热久久91蜜凸| 91在线观看一区二区| 99精品一区二区| 91久久线看在观草草青青| 91久久精品一区二区二区| 91成人免费在线视频| 欧美色涩在线第一页| 欧美精品久久久久久久久老牛影院| 欧美一区二区三区思思人| 日韩免费观看高清完整版| 久久久99久久| 中文字幕亚洲综合久久菠萝蜜| 亚洲狼人国产精品| 午夜精品一区在线观看| 免费av网站大全久久| 国产一区二区剧情av在线| www.日本不卡| 欧美日韩国产乱码电影| 欧美va亚洲va香蕉在线 | 亚洲一线二线三线久久久| 婷婷综合另类小说色区| 精品在线免费视频| 高清免费成人av| 精品视频在线视频| 26uuu精品一区二区| 国产精品久久一卡二卡| 亚洲一级二级三级在线免费观看| 日本vs亚洲vs韩国一区三区二区| 韩国精品一区二区| 色视频欧美一区二区三区| 67194成人在线观看| 国产精品网站在线播放| 天天色 色综合| 成人性生交大合| 制服丝袜av成人在线看| 欧美韩日一区二区三区四区| 亚洲成av人片www| 国产精品77777| 欧美性猛交xxxx黑人交| 国产日韩精品一区二区三区 | 麻豆国产一区二区| 91丝袜国产在线播放| 日韩区在线观看| 亚洲桃色在线一区| 图片区小说区国产精品视频| 成人动漫在线一区| 日韩一二三四区| 亚洲特黄一级片| 国产一区二区三区四区五区入口 | 国产一区二区91| 在线一区二区观看| 久久欧美一区二区| 首页综合国产亚洲丝袜| 国产美女久久久久| 欧美日韩不卡一区| 亚洲欧洲日韩av| 国内精品免费在线观看| 日本精品一区二区三区高清| 久久嫩草精品久久久精品一| 亚洲高清免费观看高清完整版在线观看| 国产一区二区久久| 欧美电影免费观看高清完整版在线| 亚洲激情六月丁香| 国产成人欧美日韩在线电影| 777午夜精品视频在线播放| 亚洲码国产岛国毛片在线| 国产成人在线观看免费网站| 日韩欧美综合在线| 日韩黄色片在线观看| 欧美性高清videossexo| 亚洲免费电影在线| av不卡免费电影| 中文欧美字幕免费| 国产精选一区二区三区| 精品av久久707| 老司机精品视频在线| 欧美区一区二区三区| 亚洲在线视频网站| 日本丰满少妇一区二区三区| 亚洲毛片av在线| 色成人在线视频| 亚洲精品老司机| 色综合久久天天| 亚洲图片另类小说| 一本高清dvd不卡在线观看| 国产精品成人免费在线| 99精品视频一区| 亚洲欧洲99久久| 色综合久久99| 亚洲一区二区欧美日韩 | 日本一区二区视频在线| 国产一区二区在线观看免费| 2020国产精品久久精品美国| 国产一区二区美女| 中文av一区二区| 99re这里只有精品6| 一区二区不卡在线视频 午夜欧美不卡在| 97精品久久久久中文字幕| 亚洲色图欧美激情| 日本二三区不卡| 午夜免费欧美电影| 精品欧美久久久| 成人免费毛片app| 亚洲黄一区二区三区| 欧美精品色综合| 美女视频黄 久久| 久久久99久久| 一本一本大道香蕉久在线精品 | 成人免费视频播放| 亚洲在线中文字幕| 日韩欧美美女一区二区三区| 国产精品一区二区久久不卡| 国产精品福利影院| 在线欧美日韩精品| 热久久一区二区| 久久精品亚洲精品国产欧美kt∨ | 老司机精品视频导航| 国产日韩欧美一区二区三区综合| 9i在线看片成人免费| 五月激情丁香一区二区三区| 国产日韩综合av| 欧美午夜不卡视频| 国内精品国产成人国产三级粉色 | 久久日一线二线三线suv| 成人精品一区二区三区四区| 亚洲最大色网站| 精品国产a毛片| 91免费精品国自产拍在线不卡| 天天操天天综合网| 国产精品情趣视频| 欧美日韩国产首页在线观看| 国产在线一区二区| 一级女性全黄久久生活片免费| 日韩欧美国产三级电影视频| 91欧美激情一区二区三区成人| 裸体健美xxxx欧美裸体表演| 国产精品另类一区| 欧美一卡二卡在线观看| proumb性欧美在线观看| 日韩av高清在线观看| 亚洲欧美综合另类在线卡通| 欧美一级理论性理论a| 99国内精品久久| 国产在线不卡一卡二卡三卡四卡| 一区二区三区在线视频播放| 国产日韩欧美激情| 91精品婷婷国产综合久久竹菊| 91免费看`日韩一区二区| 国产精品一区二区在线观看网站 | 国产酒店精品激情| 日韩精品一二三区| 亚洲三级电影网站| 久久久久久久久久久黄色|