#include #include bool b_wchar_is_number(b_wchar c) { return iswnumber((wchar_t)c); } bool b_wchar_is_alpha(b_wchar c) { if (c == 0) { return false; } if (c >= 0x0041 && c <= 0x005A) { return true; } if (c >= 0x0061 && c <= 0x007A) { return true; } if (c >= 0x00C0 && c <= 0x00D6) { return true; } if (c >= 0x00D8 && c <= 0x00F6) { return true; } if (c >= 0x00F8 && c <= 0x02C1) { return true; } if (c >= 0x02C6 && c <= 0x02D1) { return true; } if (c >= 0x02E0 && c <= 0x02E4) { return true; } if (c >= 0x0370 && c <= 0x0374) { return true; } if (c >= 0x037A && c <= 0x037D) { return true; } if (c >= 0x0388 && c <= 0x038A) { return true; } if (c >= 0x038E && c <= 0x03A1) { return true; } if (c >= 0x03A3 && c <= 0x03F5) { return true; } if (c >= 0x03F7 && c <= 0x0481) { return true; } if (c >= 0x048A && c <= 0x0527) { return true; } if (c >= 0x0531 && c <= 0x0556) { return true; } if (c >= 0x0561 && c <= 0x0587) { return true; } if (c >= 0x05D0 && c <= 0x05EA) { return true; } if (c >= 0x05F0 && c <= 0x05F2) { return true; } if (c >= 0x0620 && c <= 0x064A) { return true; } if (c >= 0x0671 && c <= 0x06D3) { return true; } if (c >= 0x06FA && c <= 0x06FC) { return true; } if (c >= 0x0712 && c <= 0x072F) { return true; } if (c >= 0x074D && c <= 0x07A5) { return true; } if (c >= 0x07CA && c <= 0x07EA) { return true; } if (c >= 0x0800 && c <= 0x0815) { return true; } if (c >= 0x0840 && c <= 0x0858) { return true; } if (c >= 0x08A2 && c <= 0x08AC) { return true; } if (c >= 0x0904 && c <= 0x0939) { return true; } if (c >= 0x0958 && c <= 0x0961) { return true; } if (c >= 0x0971 && c <= 0x0977) { return true; } if (c >= 0x0979 && c <= 0x097F) { return true; } if (c >= 0x0985 && c <= 0x098C) { return true; } if (c >= 0x0993 && c <= 0x09A8) { return true; } if (c >= 0x09AA && c <= 0x09B0) { return true; } if (c >= 0x09B6 && c <= 0x09B9) { return true; } if (c >= 0x09DF && c <= 0x09E1) { return true; } if (c >= 0x0A05 && c <= 0x0A0A) { return true; } if (c >= 0x0A13 && c <= 0x0A28) { return true; } if (c >= 0x0A2A && c <= 0x0A30) { return true; } if (c >= 0x0A59 && c <= 0x0A5C) { return true; } if (c >= 0x0A72 && c <= 0x0A74) { return true; } if (c >= 0x0A85 && c <= 0x0A8D) { return true; } if (c >= 0x0A8F && c <= 0x0A91) { return true; } if (c >= 0x0A93 && c <= 0x0AA8) { return true; } if (c >= 0x0AAA && c <= 0x0AB0) { return true; } if (c >= 0x0AB5 && c <= 0x0AB9) { return true; } if (c >= 0x0B05 && c <= 0x0B0C) { return true; } if (c >= 0x0B13 && c <= 0x0B28) { return true; } if (c >= 0x0B2A && c <= 0x0B30) { return true; } if (c >= 0x0B35 && c <= 0x0B39) { return true; } if (c >= 0x0B5F && c <= 0x0B61) { return true; } if (c >= 0x0B85 && c <= 0x0B8A) { return true; } if (c >= 0x0B8E && c <= 0x0B90) { return true; } if (c >= 0x0B92 && c <= 0x0B95) { return true; } if (c >= 0x0BA8 && c <= 0x0BAA) { return true; } if (c >= 0x0BAE && c <= 0x0BB9) { return true; } if (c >= 0x0C05 && c <= 0x0C0C) { return true; } if (c >= 0x0C0E && c <= 0x0C10) { return true; } if (c >= 0x0C12 && c <= 0x0C28) { return true; } if (c >= 0x0C2A && c <= 0x0C33) { return true; } if (c >= 0x0C35 && c <= 0x0C39) { return true; } if (c >= 0x0C85 && c <= 0x0C8C) { return true; } if (c >= 0x0C8E && c <= 0x0C90) { return true; } if (c >= 0x0C92 && c <= 0x0CA8) { return true; } if (c >= 0x0CAA && c <= 0x0CB3) { return true; } if (c >= 0x0CB5 && c <= 0x0CB9) { return true; } if (c >= 0x0D05 && c <= 0x0D0C) { return true; } if (c >= 0x0D0E && c <= 0x0D10) { return true; } if (c >= 0x0D12 && c <= 0x0D3A) { return true; } if (c >= 0x0D7A && c <= 0x0D7F) { return true; } if (c >= 0x0D85 && c <= 0x0D96) { return true; } if (c >= 0x0D9A && c <= 0x0DB1) { return true; } if (c >= 0x0DB3 && c <= 0x0DBB) { return true; } if (c >= 0x0DC0 && c <= 0x0DC6) { return true; } if (c >= 0x0E01 && c <= 0x0E30) { return true; } if (c >= 0x0E40 && c <= 0x0E46) { return true; } if (c >= 0x0E94 && c <= 0x0E97) { return true; } if (c >= 0x0E99 && c <= 0x0E9F) { return true; } if (c >= 0x0EA1 && c <= 0x0EA3) { return true; } if (c >= 0x0EAD && c <= 0x0EB0) { return true; } if (c >= 0x0EC0 && c <= 0x0EC4) { return true; } if (c >= 0x0EDC && c <= 0x0EDF) { return true; } if (c >= 0x0F40 && c <= 0x0F47) { return true; } if (c >= 0x0F49 && c <= 0x0F6C) { return true; } if (c >= 0x0F88 && c <= 0x0F8C) { return true; } if (c >= 0x1000 && c <= 0x102A) { return true; } if (c >= 0x1050 && c <= 0x1055) { return true; } if (c >= 0x105A && c <= 0x105D) { return true; } if (c >= 0x106E && c <= 0x1070) { return true; } if (c >= 0x1075 && c <= 0x1081) { return true; } if (c >= 0x10A0 && c <= 0x10C5) { return true; } if (c >= 0x10D0 && c <= 0x10FA) { return true; } if (c >= 0x10FC && c <= 0x1248) { return true; } if (c >= 0x124A && c <= 0x124D) { return true; } if (c >= 0x1250 && c <= 0x1256) { return true; } if (c >= 0x125A && c <= 0x125D) { return true; } if (c >= 0x1260 && c <= 0x1288) { return true; } if (c >= 0x128A && c <= 0x128D) { return true; } if (c >= 0x1290 && c <= 0x12B0) { return true; } if (c >= 0x12B2 && c <= 0x12B5) { return true; } if (c >= 0x12B8 && c <= 0x12BE) { return true; } if (c >= 0x12C2 && c <= 0x12C5) { return true; } if (c >= 0x12C8 && c <= 0x12D6) { return true; } if (c >= 0x12D8 && c <= 0x1310) { return true; } if (c >= 0x1312 && c <= 0x1315) { return true; } if (c >= 0x1318 && c <= 0x135A) { return true; } if (c >= 0x1380 && c <= 0x138F) { return true; } if (c >= 0x13A0 && c <= 0x13F4) { return true; } if (c >= 0x1401 && c <= 0x166C) { return true; } if (c >= 0x166F && c <= 0x167F) { return true; } if (c >= 0x1681 && c <= 0x169A) { return true; } if (c >= 0x16A0 && c <= 0x16EA) { return true; } if (c >= 0x1700 && c <= 0x170C) { return true; } if (c >= 0x170E && c <= 0x1711) { return true; } if (c >= 0x1720 && c <= 0x1731) { return true; } if (c >= 0x1740 && c <= 0x1751) { return true; } if (c >= 0x1760 && c <= 0x176C) { return true; } if (c >= 0x176E && c <= 0x1770) { return true; } if (c >= 0x1780 && c <= 0x17B3) { return true; } if (c >= 0x1820 && c <= 0x1877) { return true; } if (c >= 0x1880 && c <= 0x18A8) { return true; } if (c >= 0x18B0 && c <= 0x18F5) { return true; } if (c >= 0x1900 && c <= 0x191C) { return true; } if (c >= 0x1950 && c <= 0x196D) { return true; } if (c >= 0x1970 && c <= 0x1974) { return true; } if (c >= 0x1980 && c <= 0x19AB) { return true; } if (c >= 0x19C1 && c <= 0x19C7) { return true; } if (c >= 0x1A00 && c <= 0x1A16) { return true; } if (c >= 0x1A20 && c <= 0x1A54) { return true; } if (c >= 0x1B05 && c <= 0x1B33) { return true; } if (c >= 0x1B45 && c <= 0x1B4B) { return true; } if (c >= 0x1B83 && c <= 0x1BA0) { return true; } if (c >= 0x1BBA && c <= 0x1BE5) { return true; } if (c >= 0x1C00 && c <= 0x1C23) { return true; } if (c >= 0x1C4D && c <= 0x1C4F) { return true; } if (c >= 0x1C5A && c <= 0x1C7D) { return true; } if (c >= 0x1CE9 && c <= 0x1CEC) { return true; } if (c >= 0x1CEE && c <= 0x1CF1) { return true; } if (c >= 0x1D00 && c <= 0x1DBF) { return true; } if (c >= 0x1E00 && c <= 0x1F15) { return true; } if (c >= 0x1F18 && c <= 0x1F1D) { return true; } if (c >= 0x1F20 && c <= 0x1F45) { return true; } if (c >= 0x1F48 && c <= 0x1F4D) { return true; } if (c >= 0x1F50 && c <= 0x1F57) { return true; } if (c >= 0x1F5F && c <= 0x1F7D) { return true; } if (c >= 0x1F80 && c <= 0x1FB4) { return true; } if (c >= 0x1FB6 && c <= 0x1FBC) { return true; } if (c >= 0x1FC2 && c <= 0x1FC4) { return true; } if (c >= 0x1FC6 && c <= 0x1FCC) { return true; } if (c >= 0x1FD0 && c <= 0x1FD3) { return true; } if (c >= 0x1FD6 && c <= 0x1FDB) { return true; } if (c >= 0x1FE0 && c <= 0x1FEC) { return true; } if (c >= 0x1FF2 && c <= 0x1FF4) { return true; } if (c >= 0x1FF6 && c <= 0x1FFC) { return true; } if (c >= 0x2090 && c <= 0x209C) { return true; } if (c >= 0x210A && c <= 0x2113) { return true; } if (c >= 0x2119 && c <= 0x211D) { return true; } if (c >= 0x212A && c <= 0x212D) { return true; } if (c >= 0x212F && c <= 0x2139) { return true; } if (c >= 0x213C && c <= 0x213F) { return true; } if (c >= 0x2145 && c <= 0x2149) { return true; } if (c >= 0x2C00 && c <= 0x2C2E) { return true; } if (c >= 0x2C30 && c <= 0x2C5E) { return true; } if (c >= 0x2C60 && c <= 0x2CE4) { return true; } if (c >= 0x2CEB && c <= 0x2CEE) { return true; } if (c >= 0x2D00 && c <= 0x2D25) { return true; } if (c >= 0x2D30 && c <= 0x2D67) { return true; } if (c >= 0x2D80 && c <= 0x2D96) { return true; } if (c >= 0x2DA0 && c <= 0x2DA6) { return true; } if (c >= 0x2DA8 && c <= 0x2DAE) { return true; } if (c >= 0x2DB0 && c <= 0x2DB6) { return true; } if (c >= 0x2DB8 && c <= 0x2DBE) { return true; } if (c >= 0x2DC0 && c <= 0x2DC6) { return true; } if (c >= 0x2DC8 && c <= 0x2DCE) { return true; } if (c >= 0x2DD0 && c <= 0x2DD6) { return true; } if (c >= 0x2DD8 && c <= 0x2DDE) { return true; } if (c >= 0x3031 && c <= 0x3035) { return true; } if (c >= 0x3041 && c <= 0x3096) { return true; } if (c >= 0x309D && c <= 0x309F) { return true; } if (c >= 0x30A1 && c <= 0x30FA) { return true; } if (c >= 0x30FC && c <= 0x30FF) { return true; } if (c >= 0x3105 && c <= 0x312D) { return true; } if (c >= 0x3131 && c <= 0x318E) { return true; } if (c >= 0x31A0 && c <= 0x31BA) { return true; } if (c >= 0x31F0 && c <= 0x31FF) { return true; } if (c >= 0x3400 && c <= 0x4DB5) { return true; } if (c >= 0x4E00 && c <= 0x9FCC) { return true; } if (c >= 0xA000 && c <= 0xA48C) { return true; } if (c >= 0xA4D0 && c <= 0xA4FD) { return true; } if (c >= 0xA500 && c <= 0xA60C) { return true; } if (c >= 0xA610 && c <= 0xA61F) { return true; } if (c >= 0xA640 && c <= 0xA66E) { return true; } if (c >= 0xA67F && c <= 0xA697) { return true; } if (c >= 0xA6A0 && c <= 0xA6E5) { return true; } if (c >= 0xA717 && c <= 0xA71F) { return true; } if (c >= 0xA722 && c <= 0xA788) { return true; } if (c >= 0xA78B && c <= 0xA78E) { return true; } if (c >= 0xA790 && c <= 0xA793) { return true; } if (c >= 0xA7A0 && c <= 0xA7AA) { return true; } if (c >= 0xA7F8 && c <= 0xA801) { return true; } if (c >= 0xA803 && c <= 0xA805) { return true; } if (c >= 0xA807 && c <= 0xA80A) { return true; } if (c >= 0xA80C && c <= 0xA822) { return true; } if (c >= 0xA840 && c <= 0xA873) { return true; } if (c >= 0xA882 && c <= 0xA8B3) { return true; } if (c >= 0xA8F2 && c <= 0xA8F7) { return true; } if (c >= 0xA90A && c <= 0xA925) { return true; } if (c >= 0xA930 && c <= 0xA946) { return true; } if (c >= 0xA960 && c <= 0xA97C) { return true; } if (c >= 0xA984 && c <= 0xA9B2) { return true; } if (c >= 0xAA00 && c <= 0xAA28) { return true; } if (c >= 0xAA40 && c <= 0xAA42) { return true; } if (c >= 0xAA44 && c <= 0xAA4B) { return true; } if (c >= 0xAA60 && c <= 0xAA76) { return true; } if (c >= 0xAA80 && c <= 0xAAAF) { return true; } if (c >= 0xAAB9 && c <= 0xAABD) { return true; } if (c >= 0xAADB && c <= 0xAADD) { return true; } if (c >= 0xAAE0 && c <= 0xAAEA) { return true; } if (c >= 0xAAF2 && c <= 0xAAF4) { return true; } if (c >= 0xAB01 && c <= 0xAB06) { return true; } if (c >= 0xAB09 && c <= 0xAB0E) { return true; } if (c >= 0xAB11 && c <= 0xAB16) { return true; } if (c >= 0xAB20 && c <= 0xAB26) { return true; } if (c >= 0xAB28 && c <= 0xAB2E) { return true; } if (c >= 0xABC0 && c <= 0xABE2) { return true; } if (c >= 0xAC00 && c <= 0xD7A3) { return true; } if (c >= 0xD7B0 && c <= 0xD7C6) { return true; } if (c >= 0xD7CB && c <= 0xD7FB) { return true; } if (c >= 0xF900 && c <= 0xFA6D) { return true; } if (c >= 0xFA70 && c <= 0xFAD9) { return true; } if (c >= 0xFB00 && c <= 0xFB06) { return true; } if (c >= 0xFB13 && c <= 0xFB17) { return true; } if (c >= 0xFB1F && c <= 0xFB28) { return true; } if (c >= 0xFB2A && c <= 0xFB36) { return true; } if (c >= 0xFB38 && c <= 0xFB3C) { return true; } if (c >= 0xFB46 && c <= 0xFBB1) { return true; } if (c >= 0xFBD3 && c <= 0xFD3D) { return true; } if (c >= 0xFD50 && c <= 0xFD8F) { return true; } if (c >= 0xFD92 && c <= 0xFDC7) { return true; } if (c >= 0xFDF0 && c <= 0xFDFB) { return true; } if (c >= 0xFE70 && c <= 0xFE74) { return true; } if (c >= 0xFE76 && c <= 0xFEFC) { return true; } if (c >= 0xFF21 && c <= 0xFF3A) { return true; } if (c >= 0xFF41 && c <= 0xFF5A) { return true; } if (c >= 0xFF66 && c <= 0xFFBE) { return true; } if (c >= 0xFFC2 && c <= 0xFFC7) { return true; } if (c >= 0xFFCA && c <= 0xFFCF) { return true; } if (c >= 0xFFD2 && c <= 0xFFD7) { return true; } if (c >= 0xFFDA && c <= 0xFFDC) { return true; } switch (c) { case 0x00AA: case 0x00B5: case 0x00BA: case 0x02EC: case 0x02EE: case 0x0376: case 0x0377: case 0x0386: case 0x038C: case 0x0559: case 0x066E: case 0x066F: case 0x06D5: case 0x06E5: case 0x06E6: case 0x06EE: case 0x06EF: case 0x06FF: case 0x0710: case 0x07B1: case 0x07F4: case 0x07F5: case 0x07FA: case 0x081A: case 0x0824: case 0x0828: case 0x08A0: case 0x093D: case 0x0950: case 0x098F: case 0x0990: case 0x09B2: case 0x09BD: case 0x09CE: case 0x09DC: case 0x09DD: case 0x09F0: case 0x09F1: case 0x0A0F: case 0x0A10: case 0x0A32: case 0x0A33: case 0x0A35: case 0x0A36: case 0x0A38: case 0x0A39: case 0x0A5E: case 0x0AB2: case 0x0AB3: case 0x0ABD: case 0x0AD0: case 0x0AE0: case 0x0AE1: case 0x0B0F: case 0x0B10: case 0x0B32: case 0x0B33: case 0x0B3D: case 0x0B5C: case 0x0B5D: case 0x0B71: case 0x0B83: case 0x0B99: case 0x0B9A: case 0x0B9C: case 0x0B9E: case 0x0B9F: case 0x0BA3: case 0x0BA4: case 0x0BD0: case 0x0C3D: case 0x0C58: case 0x0C59: case 0x0C60: case 0x0C61: case 0x0CBD: case 0x0CDE: case 0x0CE0: case 0x0CE1: case 0x0CF1: case 0x0CF2: case 0x0D3D: case 0x0D4E: case 0x0D60: case 0x0D61: case 0x0DBD: case 0x0E32: case 0x0E33: case 0x0E81: case 0x0E82: case 0x0E84: case 0x0E87: case 0x0E88: case 0x0E8A: case 0x0E8D: case 0x0EA5: case 0x0EA7: case 0x0EAA: case 0x0EAB: case 0x0EB2: case 0x0EB3: case 0x0EBD: case 0x0EC6: case 0x0F00: case 0x103F: case 0x1061: case 0x1065: case 0x1066: case 0x108E: case 0x10C7: case 0x10CD: case 0x1258: case 0x12C0: case 0x17D7: case 0x17DC: case 0x18AA: case 0x1AA7: case 0x1BAE: case 0x1BAF: case 0x1CF5: case 0x1CF6: case 0x1F59: case 0x1F5B: case 0x1F5D: case 0x1FBE: case 0x2071: case 0x207F: case 0x2102: case 0x2107: case 0x2115: case 0x2124: case 0x2126: case 0x2128: case 0x214E: case 0x2183: case 0x2184: case 0x2CF2: case 0x2CF3: case 0x2D27: case 0x2D2D: case 0x2D6F: case 0x2E2F: case 0x3005: case 0x3006: case 0x303B: case 0x303C: case 0xA62A: case 0xA62B: case 0xA8FB: case 0xA9CF: case 0xAA7A: case 0xAAB1: case 0xAAB5: case 0xAAB6: case 0xAAC0: case 0xAAC2: case 0xFB1D: case 0xFB3E: case 0xFB40: case 0xFB41: case 0xFB43: case 0xFB44: return true; default: return false; } } bool b_wchar_is_hex_digit(b_wchar c) { return isxdigit(c); } bool b_wchar_is_space(b_wchar c) { return iswspace((wchar_t)c); } bool b_wchar_is_punct(b_wchar c) { return iswpunct((wchar_t)c); }