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

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

?? edg-decode.c

?? Vxworks OS source code
?? C
?? 第 1 頁 / 共 5 頁
字號:
a block of information related to template parameter processing.*/{  if (temp_par_info != NULL) {    if (temp_par_info->set_final_specialization) {      /* Remember the location of the last specialization seen. */      temp_par_info->final_specialization = ptr;    } else if (temp_par_info->actual_template_args_until_final_specialization&&               ptr == temp_par_info->final_specialization) {      /* Stop doing the special processing for specializations when the         final specialization is reached. */      temp_par_info->actual_template_args_until_final_specialization = FALSE;    }  /* if */  }  /* if */}  /* note_specialization */static char get_char(char          *ptr,                     char          *base_ptr,                     unsigned long nchars)/*Get and return the character pointed to by ptr.  However, if nchars isnon-zero, the string from which the character is to be extracted startsat base_ptr and has length nchars.  An attempt to get a character pastthe end of the string returns a null character.*/{  char ch;  if (nchars > 0 && ptr >= base_ptr+nchars) {    ch = '\0';  } else {    ch = *ptr;  }  /* if */  return ch;}  /* get_char */static char *demangle_name(char                       *ptr,                           unsigned long              nchars,                           a_boolean                  stop_on_underscores,                           char                       *mclass,                           a_template_param_block_ptr temp_par_info,                           a_decode_control_block_ptr dctl)/*Demangle the name at ptr and output the demangled form.  Return a pointerto the character position following what was demangled.  A "name" isusually just a string of alphanumeric characters.  However, names ofconstructors, destructors, and operator functions require specialhandling, as do template entity names.  nchars indicates the numberof characters in the name, or is zero if the name is open-ended(it's ended by a null or double underscore).  A double underscoreends the name if stop_on_underscores is TRUE (though some sequencesbeginning with two underscores, e.g., "__pt", end the name even ifstop_on_underscores is FALSE).  mclass, when non-NULL, points tothe mangled form of the class of which this name is a member.When it's non-NULL, constructor and destructor names will be putout in the proper form (otherwise, they are left in their originalforms).  When temp_par_info != NULL, it points to a block thatcontrols output of extra information on template parameters.*/{  char      *p, *end_ptr = NULL;  a_boolean is_special_name = FALSE, is_pt, is_partial_spec = FALSE;  a_boolean partial_spec_output_suppressed = FALSE;  char      *demangled_name;  int       mangled_length;  /* See if the name is special in some way. */  if ((nchars == 0 || nchars >= 4) && ptr[0] == '_' && ptr[1] == '_') {    /* Name beginning with two underscores. */    p = ptr + 2;    if (start_of_id_is("ct", p)) {      /* Constructor. */      end_ptr = p + 2;      if (mclass == NULL) {        /* The mangled name for the class is not provided, so handle this as           a normal name. */      } else {        /* Output the class name for the constructor name. */        is_special_name = TRUE;        (void)full_demangle_type_name(mclass, /*base_name_only=*/TRUE,                                      /*temp_par_info=*/                                              (a_template_param_block_ptr)NULL,                                      dctl);      }  /* if */    } else if (start_of_id_is("dt", p)) {      /* Destructor. */      end_ptr = p + 2;      if (mclass == NULL) {        /* The mangled name for the class is not provided, so handle this as           a normal name. */      } else {        /* Output ~class-name for the destructor name. */        is_special_name = TRUE;        write_id_ch('~', dctl);        (void)full_demangle_type_name(mclass, /*base_name_only=*/TRUE,                                      /*temp_par_info=*/                                              (a_template_param_block_ptr)NULL,                                      dctl);      }  /* if */    } else if (start_of_id_is("op", p)) {      /* Conversion function.  Name looks like __opi__... where the part         after "op" encodes the type (e.g., "opi" is "operator int"). */      is_special_name = TRUE;      write_id_str("operator ", dctl);      end_ptr = demangle_type(p+2, dctl);    } else if (is_operator_function_name(p, &demangled_name,                                         &mangled_length)) {      /* Operator function. */      is_special_name = TRUE;      write_id_str("operator ", dctl);      write_id_str(demangled_name, dctl);      end_ptr = p + mangled_length;    } else if (nchars != 0 && start_of_id_is("N", p)) {      /* __Nxxxx: unnamed namespace name.  Put out "<unnamed>" and ignore         the characters after "__N". */      is_special_name = TRUE;      write_id_str("<unnamed>", dctl);      end_ptr = p + nchars - 2;    } else {      /* Something unrecognized. */    }  /* if */  }  /* if */  /* Here, end_ptr non-null means the end of the string has been found     already (because the name is special in some way). */  if (end_ptr == NULL) {    /* Not a special name. Find the end of the string and set end_ptr.       Also look for template-related things that terminate the name       earlier. */    for (p = ptr; ; p++) {      char ch = get_char(p, ptr, nchars);      /* Stop at the end of the string (real, or as indicated by nchars). */      if (ch == '\0') break;      /* Stop on a double underscore, but not one at the start of the string.         More than 2 underscores in a row does not terminate the string,         so that something like the name for "void f_()" (i.e., "f___Fv")         can be demangled successfully. */      if (ch == '_' && p != ptr &&          get_char(p+1, ptr, nchars) == '_' &&          get_char(p+2, ptr, nchars) != '_' &&          /* When stop_on_underscores is FALSE, stop only on "__tm", "__ps",             "__pt", or "__S".  Double underscores can appear in the middle             of some names, e.g., member names used as template arguments. */          (stop_on_underscores ||           (get_char(p+2, ptr, nchars) == 't' &&            get_char(p+3, ptr, nchars) == 'm') ||           (get_char(p+2, ptr, nchars) == 'p' &&            get_char(p+3, ptr, nchars) == 's') ||           (get_char(p+2, ptr, nchars) == 'p' &&            get_char(p+3, ptr, nchars) == 't') ||           get_char(p+2, ptr, nchars) == 'S')) {        break;      }  /* if */    }  /* for */    end_ptr = p;  }  /* if */  /* Here, end_ptr indicates the character after the end of the initial     part of the name. */  if (!is_special_name) {    /* Output the characters of the base name. */    for (p = ptr; p < end_ptr; p++) write_id_ch(*p, dctl);  }  /* if */  /* If there's a template argument list for a partial specialization     (beginning with "__ps__"), process it. */  if ((nchars == 0 || (end_ptr-ptr+6) < nchars) &&      start_of_id_is("__ps__", end_ptr)) {    /* Write the arguments.  This first argument list gives the arguments       that appear in the partial specialization declaration:         template <class T, class U> struct A { ... };         template <class T> struct A<T *, int> { ... };                                     ^^^^^^^^this argument list       This first argument list will be followed by another argument list       that gives the arguments according to the partial specialization.       For A<int *, int> according to the example above, the second       argument list is <int>.  The second argument list is scanned but       not put out, except when argument correspondences are output. */    end_ptr = demangle_template_arguments(end_ptr+6, /*partial_spec=*/TRUE,                                          temp_par_info, dctl);    note_specialization(end_ptr, temp_par_info);    is_partial_spec = TRUE;  }  /* if */  /* If there's a specialization indication ("__S"), ignore it. */  if (get_char(end_ptr, ptr, nchars)   == '_' &&      get_char(end_ptr+1, ptr, nchars) == '_' &&      get_char(end_ptr+2, ptr, nchars) == 'S') {    note_specialization(end_ptr, temp_par_info);    end_ptr += 3;  }  /* if */  /* If there's a template argument list (beginning with "__pt__" or "__tm__"),     process it. */  if ((nchars == 0 || (end_ptr-ptr+6) < nchars) &&      ((is_pt = start_of_id_is("__pt__", end_ptr)) ||       start_of_id_is("__tm__", end_ptr))) {    /* The "__pt__ form indicates an old-style mangled template name. */    if (is_pt && temp_par_info != NULL ) {      temp_par_info->use_old_form_for_template_output = TRUE;    }  /* if */    /* For the second argument list of a partial specialization,       process the argument list but suppress output. */    if (is_partial_spec && temp_par_info != NULL &&        !temp_par_info->output_only_correspondences) {      dctl->suppress_id_output++;      partial_spec_output_suppressed = TRUE;    }  /* if */    /* Write the arguments. */#ifndef WRS_ORIG					/* WRS LOCAL */    /* But not if we are printing an implicit Ctor/Dtor name! */    if (temp_par_info != NULL && temp_par_info->base_name_only)      dctl->suppress_id_output++;#endif    end_ptr = demangle_template_arguments(end_ptr+6, /*partial_spec=*/FALSE,                                          temp_par_info, dctl);#ifndef WRS_ORIG					/* WRS LOCAL */    if (temp_par_info != NULL && temp_par_info->base_name_only)      dctl->suppress_id_output--;#endif    if (partial_spec_output_suppressed) dctl->suppress_id_output--;    /* If there's a(nother) specialization indication ("__S"), ignore it. */    if (get_char(end_ptr, ptr, nchars)   == '_' &&        get_char(end_ptr+1, ptr, nchars) == '_' &&        get_char(end_ptr+2, ptr, nchars) == 'S') {      note_specialization(end_ptr, temp_par_info);      end_ptr += 3;    }  /* if */  }  /* if */  /* Check that we took exactly the characters we should have. */  if (((nchars != 0) ? (end_ptr-ptr == nchars) : (*end_ptr == '\0')) ||      (stop_on_underscores &&       get_char(end_ptr,   ptr, nchars) == '_' &&       get_char(end_ptr+1, ptr, nchars) == '_')) {    /* Okay. */  } else {    bad_mangled_name(dctl);  }  /* if */  return end_ptr;}  /* demangle_name */static char *demangle_function_local_indication(                                             char                       *ptr,                                             unsigned long              nchars,                                             a_decode_control_block_ptr dctl)/*Demangle the function name and block number in a function-local indication:    __L2__f__Fv               ^-- returned pointer points here          ^------- mangled function name       ^---------- block number within function (ptr points here on entry)ptr points to the character after the "__L".  If nchars is non-zero, itindicates the length of the string, starting from ptr.  Return a pointerto the character following the mangled function name.  Output a functionindication like "f(void)::".*/{  char          *p = ptr;  unsigned long block_number;  /* Get the block number. */  p = get_number(ptr, &block_number, dctl);  /* Check for the two underscores following the block number. */  if (p[0] != '_' || p[1] != '_') {    bad_mangled_name(dctl);  } else {    p += 2;  }  /* if */  /* Put out the function name. */  if (nchars != 0) nchars -= (p - ptr);  p = full_demangle_identifier(p, nchars, dctl);  /* Put out the block number if needed.  Block 0 is the top-level block     of the function, and need not be identified. */  if (block_number != 0) {    char buffer[30];    write_id_str("[block ", dctl);    (void)sprintf(buffer, "%lu", block_number);    write_id_str(buffer, dctl);    write_id_ch(']', dctl);  }  /* if */  write_id_str("::", dctl);  return p;}  /* demangle_function_local_indication */static char *demangle_name_with_preceding_length(                                   char                       *ptr,                                   a_template_param_block_ptr temp_par_info,                                   a_decode_control_block_ptr dctl)/*Demangle a name that is preceded by a length, e.g., "3abc" for the typename "abc".  Return a pointer to the character position following whatwas demangled.  When temp_par_info != NULL, it points to a block thatcontrols output of extra information on template parameters.*/{  char          *p = ptr;  char          *p2;  unsigned long nchars, nchars2;  a_boolean     has_function_local_info = FALSE;  /* Get the length. */  p = get_length(p, &nchars, dctl);  if (nchars >= 8) {    /* Look for a function-local indication, e.g., "__Ln__f" for block       "n" of function "f". */    for (p2 = p+1; p2+6 < p+nchars; p2++) {      if (p2[0] == '_' && p2[1] == '_' && p2[2] == 'L') {        has_function_local_info = TRUE;        nchars2 = nchars;        /* Set the length for the scan below to stop just before "__L". */        nchars = p2 - p;        p2 += 3;  /* Points to block number after "__L". */        nchars2 -= (p2 - p);        /* Scan and output the block number and function name. */        p2 = demangle_function_local_indication(p2, nchars2, dctl);        break;      }  /* if */    }  /* for */  }  /* if */  /* Demangle the name. */  p = demangle_name(p, nchars, /*stop_on_underscores=*/FALSE,                    (char *)NULL, temp_par_info, dctl);  if (has_function_local_info) p = p2;  return p;}  /* demangle_name_with_preceding_length */static char *demangle_simple_type_name(                                   char                       *ptr,                                   a_template_param_block_ptr temp_par_info,                                   a_decode_control_block_ptr dctl)/*Demangle a type name (or namespace name) consisting of a length followedby the name.  Return a pointer to the character position following whatwas demangled.  The name is not a nested name, but it can have templatearguments.  When temp_par_info != NULL, it points to a block thatcontrols output of extra information on template parameters.*/{  char *p = ptr;  if (*p == 'Z') {    /* A template parameter name. */    p = demangle_template_parameter_name(p, /*nontype=*/FALSE, dctl);  } else {    /* A simple mangled type name consists of digits indicating the length of       the name followed by the name itself, e.g., "3abc". */    p = demangle_name_with_preceding_length(p, temp_par_info, dctl);  }  /* if */  return p;}  /* demangle_simple_type_name */static char *full_demangle_type_name(char                       *ptr,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区电影| 奇米影视在线99精品| 亚洲精品免费播放| 日韩在线观看一区二区| 精品制服美女丁香| 91网站在线观看视频| 9191精品国产综合久久久久久| 精品福利二区三区| 亚洲手机成人高清视频| 免费观看日韩av| 99热99精品| 日韩午夜激情电影| 亚洲欧美日韩中文字幕一区二区三区 | 国产剧情一区二区| 精品亚洲aⅴ乱码一区二区三区| 波多野结衣亚洲一区| 色88888久久久久久影院野外| 欧美色涩在线第一页| 国产日韩在线不卡| 亚洲第一久久影院| 91久久精品一区二区三| 欧美激情综合网| 亚洲一区二区三区激情| 一级精品视频在线观看宜春院 | 亚洲成人av资源| 北条麻妃一区二区三区| 欧美亚洲综合在线| 久久伊人蜜桃av一区二区| 国产激情偷乱视频一区二区三区| 26uuu精品一区二区三区四区在线| 亚洲国产精品人人做人人爽| 久久不见久久见免费视频7| 粉嫩av一区二区三区| 欧美亚洲动漫精品| 日本一区二区三区电影| 日韩 欧美一区二区三区| 高清日韩电视剧大全免费| 日韩精品专区在线影院重磅| 亚洲v日本v欧美v久久精品| 高清成人免费视频| 日韩精品一区二区三区四区| 夜夜操天天操亚洲| 成人av午夜影院| 久久久国产精品午夜一区ai换脸| 日韩精品电影在线观看| 欧美日韩视频不卡| 亚洲精品一二三四区| kk眼镜猥琐国模调教系列一区二区| 欧美一区二区久久久| 亚洲一区二区精品视频| 欧美一区二区黄| 狠狠v欧美v日韩v亚洲ⅴ| 久久影音资源网| 暴力调教一区二区三区| 国产日韩视频一区二区三区| 色综合天天狠狠| 欧美一级片免费看| 国产美女精品在线| 亚洲人快播电影网| 717成人午夜免费福利电影| 88在线观看91蜜桃国自产| 亚洲精品日日夜夜| 91丨九色丨蝌蚪丨老版| 一区二区三区中文字幕电影| 激情都市一区二区| 久久99精品国产麻豆婷婷洗澡| 日韩经典一区二区| 欧美日韩一二三区| 亚洲国产sm捆绑调教视频| 色综合天天狠狠| 亚洲嫩草精品久久| 色天天综合久久久久综合片| 亚洲三级电影网站| 91欧美激情一区二区三区成人| 国产精品国产馆在线真实露脸| 成人精品国产一区二区4080| 国产精品美女久久久久av爽李琼| 成人免费高清在线| 国产精品乱子久久久久| eeuss鲁一区二区三区| 日韩视频一区二区三区在线播放| 午夜久久久久久久久久一区二区| 欧美精品久久99久久在免费线| 日韩中文字幕区一区有砖一区 | 26uuu国产一区二区三区| 精品一区二区在线看| 欧美精品一区二区三区在线| 国产精品一区二区无线| 国产精品美女久久久久aⅴ| 91色视频在线| 亚洲香肠在线观看| 欧美一二三区在线| 国产一区久久久| 中文字幕亚洲精品在线观看| 色综合久久六月婷婷中文字幕| 一区二区三区自拍| 91精品在线免费观看| 久久精品久久综合| 中文字幕国产一区| 色悠久久久久综合欧美99| 亚洲一本大道在线| 日韩免费电影网站| 成人性生交大片免费看视频在线| 亚洲三级久久久| 91精品国产综合久久福利| 极品少妇xxxx精品少妇| 国产精品久久久久影院亚瑟| 欧美色视频一区| 国内国产精品久久| 亚洲激情中文1区| 欧美一区二区日韩一区二区| 国产伦精品一区二区三区在线观看| 国产精品第五页| 欧美日高清视频| 国产传媒久久文化传媒| 中文字幕在线播放不卡一区| 欧美日韩五月天| 国产乱码精品一区二区三区忘忧草 | 国产精品三级在线观看| 欧洲一区二区三区在线| 久久99精品国产.久久久久| 亚洲国产成人私人影院tom| 欧美亚洲免费在线一区| 麻豆精品在线看| 亚洲人被黑人高潮完整版| 日韩午夜激情电影| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美精品一区二区三区久久久| jvid福利写真一区二区三区| 人人爽香蕉精品| 中文字幕日韩一区| 欧美一级欧美一级在线播放| 99国产一区二区三精品乱码| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩一区日韩二区| 精品日本一线二线三线不卡| 色欧美片视频在线观看| 国产一区二区三区av电影 | 欧美日韩一卡二卡| 成人一道本在线| 麻豆成人久久精品二区三区小说| 亚洲免费资源在线播放| 337p亚洲精品色噜噜| 日本道在线观看一区二区| 国产精品一区二区不卡| 日韩av电影免费观看高清完整版 | 精品一区二区免费视频| 亚洲天堂2014| 久久亚洲综合色| 欧美日韩不卡在线| 91浏览器入口在线观看| 国产成人精品综合在线观看 | 日韩一区二区视频| 色婷婷一区二区三区四区| 国产成人一区在线| 久久99久久99小草精品免视看| 亚洲一区在线免费观看| 中文字幕一区二区三区在线不卡| 久久婷婷色综合| 欧美一区二区三区播放老司机| 欧美三级视频在线| 色呦呦日韩精品| 成人黄色小视频| 国产激情精品久久久第一区二区| 免费看欧美女人艹b| 午夜精品福利一区二区蜜股av| 亚洲黄色av一区| 亚洲欧美日韩一区二区| 国产精品对白交换视频 | 国产一区二区精品久久99| 日韩电影在线观看一区| 亚洲v日本v欧美v久久精品| 亚洲一区二区三区三| 亚洲激情男女视频| 亚洲天堂av一区| 亚洲蜜臀av乱码久久精品蜜桃| 色婷婷av一区二区三区软件 | 欧美三级乱人伦电影| 91免费国产在线| 91在线国产福利| 91免费精品国自产拍在线不卡| 99精品久久只有精品| eeuss鲁一区二区三区| 成人福利视频网站| 99国产精品99久久久久久| 91麻豆产精品久久久久久| 99久久夜色精品国产网站| 蜜臂av日日欢夜夜爽一区| 亚洲一区二区三区影院| 一区二区三区国产精华| 国产精品福利av | 欧美日韩国产在线观看| 在线欧美小视频| 欧美日韩在线播放| 欧美亚洲国产bt| 欧美日韩一区高清| 日韩欧美中文字幕一区| 91精品国模一区二区三区| 欧美一区永久视频免费观看| 欧美精品一区二区三区高清aⅴ |