using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace miew.Character { public static class Extensions { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static bool IsDigit(this Char ch) { return ('0' <= ch && ch <= '9'); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static bool IsHex(this char ch) { return (('0' <= ch && ch <= '9') || ('A' <= ch && ch <= 'F') || ('a' <= ch && ch <= 'f')); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static Byte HexToByte(this Char ch) { if ('0' <= ch && ch <= '9') return (Byte)(ch - '0'); else if ('A' <= ch && ch <= 'F') return (Byte)(ch - 'A' + 10); else if ('a' <= ch && ch <= 'f') return (Byte)(ch - 'a' + 10); return 0; } } namespace Thai { public static class Extensions { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static bool IsThai(this Char ch) { return ('ก' <= ch && ch <= '๛'); } public static bool IsSEAsian(this Char ch) { // Thai, lao, and Khmer return (0x0e00 <= ch && ch <= 0x0eff) || (0x1780 <= ch && ch <= 0x17ff); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static bool IsThaiCons(this Char c) { return 'ก' <= c && c <= 'ฮ'; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static bool IsThaiVowel(this Char c) { return 'ะ' <= c && c <= 'ๅ' && c != 'ฺ' && c != '฿'; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static bool IsThaiDigit(this Char ch) { return ('๐' <= ch && ch <= '๙'); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // excludes Thai numeric digits public static bool IsThaiAlpha(this Char ch) { return ('ก' <= ch && ch <= '๏'); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static bool IsThaiNameChar(this Char ch) { return 'ก' <= ch && ch <= '์' && ch != '฿' && ch != 'ๆ'; // note: ฯ is allowed } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static bool IsThaiTone(this Char ch) { return (0x0e48 <= ch && ch <= 0x0e4b); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// /// </summary> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static Char Reinterpret(this Char ch, bool f_bullet) { if (0x00A1 <= ch && ch <= 0x00F9) return (Char)(ch + 3424); if (ch == 0x2022) return f_bullet ? '•' : 'ท'; return ch; } }; }; }