这篇教程C++ CHAR_MATCHES函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CHAR_MATCHES函数的典型用法代码示例。如果您正苦于以下问题:C++ CHAR_MATCHES函数的具体用法?C++ CHAR_MATCHES怎么用?C++ CHAR_MATCHES使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CHAR_MATCHES函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: PREFIXstatic int PTRCALLPREFIX(scanComment)(const ENCODING *enc, const char *ptr, const char *end, const char **nextTokPtr){ if (ptr != end) { if (!CHAR_MATCHES(enc, ptr, ASCII_MINUS)) { *nextTokPtr = ptr; return XML_TOK_INVALID; } ptr += MINBPC(enc); while (ptr != end) { switch (BYTE_TYPE(enc, ptr)) { INVALID_CASES(ptr, nextTokPtr) case BT_MINUS: if ((ptr += MINBPC(enc)) == end) return XML_TOK_PARTIAL; if (CHAR_MATCHES(enc, ptr, ASCII_MINUS)) { if ((ptr += MINBPC(enc)) == end) return XML_TOK_PARTIAL; if (!CHAR_MATCHES(enc, ptr, ASCII_GT)) { *nextTokPtr = ptr; return XML_TOK_INVALID; } *nextTokPtr = ptr + MINBPC(enc); return XML_TOK_COMMENT; } break; default: ptr += MINBPC(enc); break; } } } return XML_TOK_PARTIAL;}
开发者ID:Ashod,项目名称:Phalanger,代码行数:35,
示例2: PREFIXstatic int PTRCALLPREFIX(scanPi)(const ENCODING *enc, const char *ptr, const char *end, const char **nextTokPtr){ int tok; const char *target = ptr; REQUIRE_CHAR(enc, ptr, end); switch (BYTE_TYPE(enc, ptr)) { CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) default: *nextTokPtr = ptr; return XML_TOK_INVALID; } while (HAS_CHAR(enc, ptr, end)) { switch (BYTE_TYPE(enc, ptr)) { CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) case BT_S: case BT_CR: case BT_LF: if (!PREFIX(checkPiTarget)(enc, target, ptr, &tok)) { *nextTokPtr = ptr; return XML_TOK_INVALID; } ptr += MINBPC(enc); while (HAS_CHAR(enc, ptr, end)) { switch (BYTE_TYPE(enc, ptr)) { INVALID_CASES(ptr, nextTokPtr) case BT_QUEST: ptr += MINBPC(enc); REQUIRE_CHAR(enc, ptr, end); if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { *nextTokPtr = ptr + MINBPC(enc); return tok; } break; default: ptr += MINBPC(enc); break; } } return XML_TOK_PARTIAL; case BT_QUEST: if (!PREFIX(checkPiTarget)(enc, target, ptr, &tok)) { *nextTokPtr = ptr; return XML_TOK_INVALID; } ptr += MINBPC(enc); REQUIRE_CHAR(enc, ptr, end); if (CHAR_MATCHES(enc, ptr, ASCII_GT)) { *nextTokPtr = ptr + MINBPC(enc); return tok; } /* fall through */ default: *nextTokPtr = ptr; return XML_TOK_INVALID; } } return XML_TOK_PARTIAL;}
开发者ID:RTEMS,项目名称:rtems-libbsd,代码行数:58,
示例3: PREFIXstatic int PTRCALLPREFIX(predefinedEntityName)(const ENCODING *enc, const char *ptr, const char *end){ UNUSED(enc); switch ((end - ptr)/MINBPC(enc)) { case 2: if (CHAR_MATCHES(enc, ptr + MINBPC(enc), ASCII_t)) { switch (BYTE_TO_ASCII(enc, ptr)) { case ASCII_l: return ASCII_LT; case ASCII_g: return ASCII_GT; } } break; case 3: if (CHAR_MATCHES(enc, ptr, ASCII_a)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_m)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_p)) return ASCII_AMP; } } break; case 4: switch (BYTE_TO_ASCII(enc, ptr)) { case ASCII_q: ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_u)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_o)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_t)) return ASCII_QUOT; } } break; case ASCII_a: ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_p)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_o)) { ptr += MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_s)) return ASCII_APOS; } } break; } } return 0;}
开发者ID:dreamzor,项目名称:xsde-cmake,代码行数:55,
示例4: PREFIXstaticint PREFIX(predefinedEntityName)(const ENCODING *enc, const char *ptr, const char *end){ (void)enc; switch (end - ptr) { case 2 * MINBPC: if (CHAR_MATCHES(enc, ptr + MINBPC, 't')) { switch (BYTE_TO_ASCII(enc, ptr)) { case 'l': return '<'; case 'g': return '>'; } } break; case 3 * MINBPC: if (CHAR_MATCHES(enc, ptr, 'a')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'm')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'p')) return '&'; } } break; case 4 * MINBPC: switch (BYTE_TO_ASCII(enc, ptr)) { case 'q': ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'u')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'o')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 't')) return '"'; } } break; case 'a': ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'p')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 'o')) { ptr += MINBPC; if (CHAR_MATCHES(enc, ptr, 's')) return '/''; } } break; } } return 0;}
开发者ID:ChakaZulu,项目名称:my_tuxbox_apps,代码行数:53,
示例5: PREFIXstatic int PTRFASTCALLPREFIX(charRefNumber)(const ENCODING *enc, const char *ptr){ int result = 0; /* skip &# */ ptr += 2*MINBPC(enc); if (CHAR_MATCHES(enc, ptr, ASCII_x)) { for (ptr += MINBPC(enc); !CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { int c = BYTE_TO_ASCII(enc, ptr); switch (c) { case ASCII_0: case ASCII_1: case ASCII_2: case ASCII_3: case ASCII_4: case ASCII_5: case ASCII_6: case ASCII_7: case ASCII_8: case ASCII_9: result <<= 4; result |= (c - ASCII_0); break; case ASCII_A: case ASCII_B: case ASCII_C: case ASCII_D: case ASCII_E: case ASCII_F: result <<= 4; result += 10 + (c - ASCII_A); break; case ASCII_a: case ASCII_b: case ASCII_c: case ASCII_d: case ASCII_e: case ASCII_f: result <<= 4; result += 10 + (c - ASCII_a); break; } if (result >= 0x110000) return -1; } } else { for (; !CHAR_MATCHES(enc, ptr, ASCII_SEMI); ptr += MINBPC(enc)) { int c = BYTE_TO_ASCII(enc, ptr); result *= 10; result += (c - ASCII_0); if (result >= 0x110000) return -1; } } // Some faggots compose mails with ancient control symbols in headers.// Libexpat tokenizer breaks on them (so far 'Form Feed' and 'DC2' were found). if (result == 0x0C) { result = 0x0A; } else if (result == 0x12) { result = ' '; } return checkCharRefNumber(result);}
开发者ID:serjepatoff,项目名称:libexpat,代码行数:53,
示例6: PREFIXstaticint PREFIX(nameMatchesAscii)(const ENCODING *enc, const char *ptr1, const char *ptr2){ for (; *ptr2; ptr1 += MINBPC(enc), ptr2++) { if (!CHAR_MATCHES(enc, ptr1, *ptr2)) return 0; } switch (BYTE_TYPE(enc, ptr1)) { case BT_LEAD2: case BT_LEAD3: case BT_LEAD4: case BT_NONASCII: case BT_NMSTRT:#ifdef XML_NS case BT_COLON:#endif case BT_HEX: case BT_DIGIT: case BT_NAME: case BT_MINUS: return 0; default: return 1; }}
开发者ID:HaikuArchives,项目名称:BeAIM,代码行数:25,
示例7: PREFIXstaticint PREFIX(scanCdataSection)(const ENCODING *enc, const char *ptr, const char *end, const char **nextTokPtr){ static const char CDATA_LSQB[] = { ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, ASCII_LSQB }; int i; cmExpatUnused(enc); /* CDATA[ */ if (end - ptr < 6 * MINBPC(enc)) return XML_TOK_PARTIAL; for (i = 0; i < 6; i++, ptr += MINBPC(enc)) { if (!CHAR_MATCHES(enc, ptr, CDATA_LSQB[i])) { *nextTokPtr = ptr; return XML_TOK_INVALID; } } *nextTokPtr = ptr; return XML_TOK_CDATA_SECT_OPEN;}
开发者ID:Skylion007,项目名称:vxl,代码行数:19,
注:本文中的CHAR_MATCHES函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CHAR_getChar函数代码示例 C++ CHAR_MACRO函数代码示例 |