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

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

?? edg-decode.c

?? vxworks的完整的源代碼
?? 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,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕乱码亚洲精品一区| 99精品视频在线免费观看| 欧美调教femdomvk| 亚洲国产毛片aaaaa无费看| 欧亚一区二区三区| 视频一区二区中文字幕| 欧美一区二区三区影视| 精品一区二区三区视频| 国产亚洲欧美中文| www.成人网.com| 午夜激情一区二区| 精品欧美一区二区三区精品久久| 国内成人精品2018免费看| 欧美激情在线看| 成人精品高清在线| 亚洲大型综合色站| 久久久久久免费毛片精品| 99久久精品免费看国产| 亚洲免费在线电影| 日韩无一区二区| 粗大黑人巨茎大战欧美成人| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩第一区日日骚| 国产一区二区三区蝌蚪| 自拍偷拍欧美精品| 欧美绝品在线观看成人午夜影视| 国内精品自线一区二区三区视频| 国产精品久久免费看| 欧美精品在线视频| 不卡视频在线看| 日韩制服丝袜av| 国产精品欧美一级免费| 91精品国产丝袜白色高跟鞋| 成人黄色在线网站| 日韩有码一区二区三区| 中文字幕亚洲电影| 欧美电视剧免费观看| 日本电影亚洲天堂一区| 国产一区二区三区高清播放| 一区二区三区成人在线视频| 久久精品亚洲一区二区三区浴池| 欧美日韩日日摸| 99久久综合精品| 久久成人免费日本黄色| 艳妇臀荡乳欲伦亚洲一区| 国产色婷婷亚洲99精品小说| 欧美调教femdomvk| 99精品久久99久久久久| 国产一区二区三区综合| 日韩二区三区四区| 亚洲一区二区三区四区在线观看 | 日韩色视频在线观看| 不卡av在线网| 国产一区二区三区免费在线观看| 亚洲影视在线播放| 中文字幕在线观看不卡| 久久亚洲精精品中文字幕早川悠里| 在线观看www91| 99国内精品久久| 国产美女av一区二区三区| 天天影视涩香欲综合网| 亚洲香蕉伊在人在线观| 亚洲精品中文字幕在线观看| 国产精品久久久久四虎| 欧美激情一区二区三区| 亚洲精品一线二线三线| 欧美一区二区三区日韩视频| 欧美色视频在线| 在线看国产一区二区| 91香蕉视频黄| 99精品视频一区二区| av在线这里只有精品| 成人午夜av在线| 韩国女主播一区| 激情综合色丁香一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区三区欧美| 一区二区三区日韩精品| 一区二区成人在线| 亚洲一区精品在线| 亚洲一二三四在线观看| 亚洲一区二区三区精品在线| 亚洲在线视频一区| 亚洲成a天堂v人片| 日韩高清在线一区| 精品在线亚洲视频| 国产成人免费视频| 成人av在线资源网| 色婷婷av一区| 7777精品伊人久久久大香线蕉| 91精品国产aⅴ一区二区| 91麻豆精品国产91久久久| 日韩一级片网站| 久久伊人中文字幕| 国产精品国产三级国产三级人妇| 国产精品素人一区二区| 成人免费在线观看入口| 一区二区在线看| 日韩黄色小视频| 国产精品888| 91在线小视频| 3d成人h动漫网站入口| 精品黑人一区二区三区久久 | 青青草国产精品97视觉盛宴| 美女视频黄 久久| 成人在线视频一区二区| 欧美专区日韩专区| 欧美变态tickle挠乳网站| 欧美激情艳妇裸体舞| 亚洲精品免费在线播放| 人人狠狠综合久久亚洲| 国产成人亚洲综合a∨婷婷| 色婷婷综合在线| 日韩欧美不卡一区| 亚洲伦在线观看| 久久av中文字幕片| 一本色道久久综合亚洲aⅴ蜜桃 | 日韩视频免费观看高清在线视频| 久久在线观看免费| 一区二区免费在线播放| 免费高清视频精品| 91捆绑美女网站| 精品蜜桃在线看| 亚洲午夜激情网页| 国产在线日韩欧美| 欧美日韩国产综合视频在线观看 | 欧美大胆一级视频| 亚洲欧美视频在线观看| 国产一区在线看| 欧美日韩中文字幕精品| 中文字幕免费观看一区| 首页欧美精品中文字幕| 99视频国产精品| 国产人久久人人人人爽| 日韩成人精品视频| eeuss鲁片一区二区三区在线看| 欧美一卡二卡在线| 亚洲一区二区三区四区的 | 91在线视频在线| ww亚洲ww在线观看国产| 午夜精品123| 91黄色免费网站| 国产欧美日韩另类一区| 狠狠狠色丁香婷婷综合久久五月| 欧洲国产伦久久久久久久| 国产精品女同一区二区三区| 久国产精品韩国三级视频| 欧美日韩精品是欧美日韩精品| 亚洲欧洲av色图| 成人在线视频一区| 久久色视频免费观看| 人人爽香蕉精品| 69久久99精品久久久久婷婷| 亚洲一区二区三区中文字幕在线| 91原创在线视频| 综合电影一区二区三区 | 久久久久久久久久久电影| 日本欧美大码aⅴ在线播放| 欧美无人高清视频在线观看| 一区二区三区日本| 91国产免费看| 亚洲精品第一国产综合野| 91在线视频18| 亚洲人成电影网站色mp4| 成人avav影音| 亚洲欧洲国产日韩| 色哟哟一区二区| 亚洲精品欧美激情| 欧美在线播放高清精品| 亚洲精品videosex极品| 在线免费精品视频| 亚洲无线码一区二区三区| 欧美日韩专区在线| 日韩国产欧美在线视频| 日韩视频在线永久播放| 国产一区福利在线| 日本一区二区在线不卡| av动漫一区二区| 一区二区三区 在线观看视频| 欧洲一区二区三区在线| 亚洲18影院在线观看| 日韩欧美亚洲另类制服综合在线| 韩国视频一区二区| 国产拍揄自揄精品视频麻豆| 99热这里都是精品| 婷婷六月综合网| 欧美电影免费观看高清完整版| 国产一区二区不卡在线| 中文字幕一区日韩精品欧美| 日本韩国一区二区三区视频| 天天爽夜夜爽夜夜爽精品视频| 日韩免费高清电影| 成人自拍视频在线观看| 一区二区三区欧美在线观看| 91精品国产福利| av高清不卡在线| 日本不卡中文字幕| 国产精品美女一区二区三区| 91九色最新地址| 国产一区二区调教|