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

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

?? edg-decode.c

?? vxworks的完整的源代碼
?? 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一区二区三区免费野_久草精品视频
精品久久久三级丝袜| 午夜视黄欧洲亚洲| 亚洲一区二区三区四区五区中文| 丝袜诱惑制服诱惑色一区在线观看 | 午夜精品久久久久久久久 | 丝袜美腿亚洲综合| 91污在线观看| 国产亚洲一区字幕| 美女诱惑一区二区| 欧美精品成人一区二区三区四区| 国产精品人人做人人爽人人添 | 精品国产伦一区二区三区观看体验 | 国产精品亚洲专一区二区三区| 在线观看亚洲专区| 中文字幕日韩一区| 国产盗摄女厕一区二区三区| 在线91免费看| 亚洲成a人片在线观看中文| jizzjizzjizz欧美| 国产精品伦一区| 懂色中文一区二区在线播放| 精品欧美一区二区在线观看| 日韩av中文字幕一区二区三区| 91久久人澡人人添人人爽欧美| 亚洲欧洲精品成人久久奇米网| 国产不卡在线一区| 久久久www免费人成精品| 久久99国产精品麻豆| 欧美一区二区三区影视| 日本欧美一区二区三区| 日韩精品一区二区三区中文不卡 | 国产亚洲欧美一区在线观看| 捆绑紧缚一区二区三区视频 | 亚洲女同ⅹxx女同tv| 成人免费视频国产在线观看| 国产丝袜美腿一区二区三区| 国产盗摄一区二区三区| 欧美激情一区二区三区全黄| 成人黄色综合网站| 亚洲欧洲日产国码二区| 99国内精品久久| 亚洲综合色噜噜狠狠| 精品视频色一区| 琪琪久久久久日韩精品| 日韩欧美在线网站| 国产成人免费9x9x人网站视频| 国产片一区二区| 一本大道久久a久久综合婷婷| 亚洲一区二区视频在线观看| 欧美日韩二区三区| 国产尤物一区二区在线| 国产精品护士白丝一区av| 在线观看一区二区精品视频| 日本视频一区二区三区| 日本一区二区电影| 91美女蜜桃在线| 日韩成人一级片| 国产色综合久久| 欧美自拍偷拍午夜视频| 久久精品国产澳门| 欧美精彩视频一区二区三区| 91视频观看视频| 捆绑紧缚一区二区三区视频| 中文字幕乱码亚洲精品一区| 在线观看网站黄不卡| 精品一区二区三区在线观看国产| 日本一区二区电影| 欧美日韩国产影片| 国产成人午夜精品影院观看视频| 一区av在线播放| 久久久久久亚洲综合影院红桃| 91最新地址在线播放| 精品在线一区二区三区| 怡红院av一区二区三区| 久久久久国产精品麻豆| 欧美日韩三级在线| 成人性生交大合| 日本伊人精品一区二区三区观看方式 | 欧美精品在线一区二区| 国产成人一级电影| 天天影视网天天综合色在线播放| 国产欧美一区视频| 91精品国产综合久久精品app| 成年人国产精品| 国模冰冰炮一区二区| 亚洲国产一区二区视频| 国产精品久久久爽爽爽麻豆色哟哟| 欧美色综合网站| www.欧美精品一二区| 蜜桃传媒麻豆第一区在线观看| 亚洲理论在线观看| 国产亚洲一区字幕| 日韩视频免费观看高清完整版在线观看 | 亚洲国产日韩a在线播放性色| 国产亚洲污的网站| 日韩欧美电影一二三| 欧美性极品少妇| 91蝌蚪porny| 国产成人一区在线| 国产综合一区二区| 韩国女主播一区二区三区| 亚洲成人你懂的| 一区二区三区在线影院| 亚洲欧美影音先锋| 国产精品久久久久影视| 久久久美女毛片| 久久久午夜精品理论片中文字幕| 日韩一二三四区| 欧美精品在线观看一区二区| 色婷婷久久久久swag精品| 91啪亚洲精品| 91麻豆精东视频| 91国产精品成人| 欧洲一区二区三区在线| 欧美性猛片aaaaaaa做受| 在线视频国内自拍亚洲视频| 91蝌蚪porny| 91成人网在线| 欧美性三三影院| 91麻豆精品国产综合久久久久久| 欧美男男青年gay1069videost| 欧美日免费三级在线| 在线不卡欧美精品一区二区三区| 69久久99精品久久久久婷婷| 88在线观看91蜜桃国自产| 日韩一区二区三| 久久亚洲精品国产精品紫薇| 国产欧美综合在线观看第十页| 国产精品天干天干在线综合| 亚洲日本va午夜在线影院| 一级特黄大欧美久久久| 午夜精品久久久久久久久久| 久久精品免费观看| 国产99久久久国产精品潘金 | 97精品久久久午夜一区二区三区| 91免费版在线| 欧美日韩一区二区在线观看视频| 91精选在线观看| 国产精品污www在线观看| 亚洲精品国产a久久久久久| 午夜精品一区在线观看| 日本欧美一区二区在线观看| 国产传媒一区在线| 91美女精品福利| 宅男噜噜噜66一区二区66| 久久先锋影音av| 亚洲综合男人的天堂| 美国十次了思思久久精品导航| 成人黄色小视频| 欧美人与性动xxxx| 中文一区二区完整视频在线观看 | 中文字幕一区二区三区蜜月| 亚洲激情中文1区| 麻豆精品视频在线观看视频| 国产精品1024久久| 在线观看av一区二区| 26uuu成人网一区二区三区| 又紧又大又爽精品一区二区| 免费在线观看一区二区三区| av一区二区不卡| 欧美一区二区观看视频| 成人欧美一区二区三区黑人麻豆| 奇米精品一区二区三区在线观看 | 日韩高清在线电影| 成人免费视频视频在线观看免费| 欧美日韩国产电影| 国产精品视频yy9299一区| 日本欧美韩国一区三区| 色94色欧美sute亚洲13| 国产亚洲一区二区三区| 男人的天堂亚洲一区| 91在线一区二区三区| 国产三级精品三级| 免费欧美日韩国产三级电影| 日本高清免费不卡视频| 中文字幕不卡在线观看| 国产真实乱子伦精品视频| 欧美另类变人与禽xxxxx| 一区二区三区日韩精品视频| 成人激情动漫在线观看| 久久女同互慰一区二区三区| 日本女人一区二区三区| 欧美精品成人一区二区三区四区| 亚洲欧美韩国综合色| 高清免费成人av| 久久精品欧美一区二区三区不卡| 视频一区在线播放| 欧美日韩中文字幕一区| 亚洲日本va午夜在线影院| 97成人超碰视| 亚洲精品日韩综合观看成人91| 成人小视频免费观看| 亚洲国产精品二十页| 国产91色综合久久免费分享| 久久看人人爽人人| 国产98色在线|日韩| 久久久无码精品亚洲日韩按摩| 久久精品国产99久久6| 日韩欧美第一区| 国产一区二区福利|