Code
inline bool IsSpace(Char c)
// Space, tabulation, line feed or return
{
return(c == TEXT(' ') || c == TEXT('\t') || c == TEXT('\r') || c == TEXT('\n'));
}
inline bool IsAlpha(Char c)
// [a-zA-Z]
{
return((c >= TEXT('a') && c <= TEXT('z')) || (c >= TEXT('A') && c <= TEXT('Z')));
}
inline bool IsDigit(Char c)
// For the moment, recognize only Basic Latin
// [0-9]
{
return(c >= TEXT('0') && c <= TEXT('9'));
}
inline bool IsHexDigit(Char c)
// [0-9a-fA-F]
{
return(IsDigit(c) || (c >= TEXT('a') && c <= TEXT('f')) || (c >= TEXT('A') && c <= TEXT('F')));
}
inline int HexDigitValue(Char c)
// [0-9a-fA-F]
{
return((c >= TEXT('0') && c <= TEXT('9')) ? c - TEXT('0')
: ((c >= TEXT('a') && c <= TEXT('f')) ? c - TEXT('a') + 10
: c - TEXT('A') + 10));
}
inline bool IsAlphaDigit(Char c)
// [a-zA-Z0-9]
{
return(IsAlpha(c) || IsDigit(c));
}
inline bool IsLetter(Char c_)
// For the moment, recognize only Basic Latin and Latin-1 Supplement
{
// if c is signed, c >= 0xD8 is always false,so cast it
unsigned char c = c_;
return
(
(c >= 0x41 && c <= 0x5A) || // [A-Z]
(c >= 0x61 && c <= 0x7A) || // [a-z]
(c >= 0xC0 && c <= 0xD6) || // Latin-1 Supplement
(c >= 0xD8 && c <= 0xF6) || // "
(c >= 0xF8 && c <= 0xFF) // "
);
}
inline Char LowCase(Char c)
{
return(c >= TEXT('A') && c <= TEXT('Z') ? static_cast<char></char>(c - TEXT('A') + TEXT('a')) : c);
}
inline bool IsNameChar(Char c)
// [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
{
return
(
IsLetter(c) || IsDigit(c) ||
c == TEXT('.') || c == TEXT('-') || c == TEXT('_') || c == TEXT(':') ||
IsCombiningChar(c) || IsExtender(c)
);
}
-----------------------------------------------------------
每天进步一点