# coding: utf-8 module Minjs module Ctype # Annex B def octal_digit?(code) code >= 0x30 and code <= 0x37 end # 7.8.3 def decimal_digit?(code) code >= 0x30 and code <= 0x39 end # 7.8.3 def hex_digit?(code) code >= 0x30 && code <= 0x39 or code >= 0x41 && code <= 0x46 or code >= 0x61 && code <= 0x66 end # 7.2 # # WhiteSpace :: # # # # # # # any character in the Unicode category Zs # def white_space?(code) code == 0x20 || code == 0x9 || code == 0xb || code == 0xc || code == 0xa0 || code == 0xfeff || code == 0x1680 || # OGHAM SPACE MARK (code and code >= 0x2000 && code <= 0x200a) || code == 0x202f || # NARROW NO-BREAK SPACE code == 0x205f || # MEDIUM MATHEMATICAL SPACE code == 0x3000 # IDEOGRAPHIC SPACE end # 7.3 # # LineTerminator :: # # # # # def line_terminator?(code) code == 0x0a || code == 0x0d || code == 0x2028 || code == 0x2029 end # 7.6 # # IdentifierStart :: # UnicodeLetter # $ # _ # \ UnicodeEscapeSequence # # UnicodeLetter :: # any character in the Unicode categories “Uppercase letter # (Lu)”, “Lowercase letter (Ll)”, “Titlecase letter (Lt)”, # “Modifier letter (Lm)”, “Other letter (Lo)”, or “Letter # number (Nl)”. # def identifier_start?(c) return false if c.nil? # almost all characters are ascii if c == 0x24 || c == 0x5f || (c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a) return true elsif c <= 0x7f return false elsif (c == 0xaa) || # 53 (c == 0xb5) || # 54 (c == 0xba) || # 55 (c >= 0xc0 && c <= 0xd6) || # 78 (c >= 0xd8 && c <= 0xf6) || # 109 (c >= 0xf8 && c <= 0x2c1) || # 567 (c >= 0x2c6 && c <= 0x2d1) || # 579 (c >= 0x2e0 && c <= 0x2e4) || # 584 (c == 0x2ec) || # 585 (c == 0x2ee) || # 586 (c >= 0x370 && c <= 0x374) || # 591 (c >= 0x376 && c <= 0x377) || # 593 (c >= 0x37a && c <= 0x37d) || # 597 (c == 0x37f) || # 598 (c == 0x386) || # 599 (c >= 0x388 && c <= 0x38a) || # 602 (c == 0x38c) || # 603 (c >= 0x38e && c <= 0x3a1) || # 623 (c >= 0x3a3 && c <= 0x3f5) || # 706 (c >= 0x3f7 && c <= 0x481) || # 845 (c >= 0x48a && c <= 0x52f) || # 1011 (c >= 0x531 && c <= 0x556) || # 1049 (c == 0x559) || # 1050 (c >= 0x561 && c <= 0x587) || # 1089 (c >= 0x5d0 && c <= 0x5ea) || # 1116 (c >= 0x5f0 && c <= 0x5f2) || # 1119 (c >= 0x620 && c <= 0x64a) || # 1162 (c >= 0x66e && c <= 0x66f) || # 1164 (c >= 0x671 && c <= 0x6d3) || # 1263 (c == 0x6d5) || # 1264 (c >= 0x6e5 && c <= 0x6e6) || # 1266 (c >= 0x6ee && c <= 0x6ef) || # 1268 (c >= 0x6fa && c <= 0x6fc) || # 1271 (c == 0x6ff) || # 1272 (c == 0x710) || # 1273 (c >= 0x712 && c <= 0x72f) || # 1303 (c >= 0x74d && c <= 0x7a5) || # 1392 (c == 0x7b1) || # 1393 (c >= 0x7ca && c <= 0x7ea) || # 1426 (c >= 0x7f4 && c <= 0x7f5) || # 1428 (c == 0x7fa) || # 1429 (c >= 0x800 && c <= 0x815) || # 1451 (c == 0x81a) || # 1452 (c == 0x824) || # 1453 (c == 0x828) || # 1454 (c >= 0x840 && c <= 0x858) || # 1479 (c >= 0x8a0 && c <= 0x8b2) || # 1498 (c >= 0x904 && c <= 0x939) || # 1552 (c == 0x93d) || # 1553 (c == 0x950) || # 1554 (c >= 0x958 && c <= 0x961) || # 1564 (c >= 0x971 && c <= 0x980) || # 1580 (c >= 0x985 && c <= 0x98c) || # 1588 (c >= 0x98f && c <= 0x990) || # 1590 (c >= 0x993 && c <= 0x9a8) || # 1612 (c >= 0x9aa && c <= 0x9b0) || # 1619 (c == 0x9b2) || # 1620 (c >= 0x9b6 && c <= 0x9b9) || # 1624 (c == 0x9bd) || # 1625 (c == 0x9ce) || # 1626 (c >= 0x9dc && c <= 0x9dd) || # 1628 (c >= 0x9df && c <= 0x9e1) || # 1631 (c >= 0x9f0 && c <= 0x9f1) || # 1633 (c >= 0xa05 && c <= 0xa0a) || # 1639 (c >= 0xa0f && c <= 0xa10) || # 1641 (c >= 0xa13 && c <= 0xa28) || # 1663 (c >= 0xa2a && c <= 0xa30) || # 1670 (c >= 0xa32 && c <= 0xa33) || # 1672 (c >= 0xa35 && c <= 0xa36) || # 1674 (c >= 0xa38 && c <= 0xa39) || # 1676 (c >= 0xa59 && c <= 0xa5c) || # 1680 (c == 0xa5e) || # 1681 (c >= 0xa72 && c <= 0xa74) || # 1684 (c >= 0xa85 && c <= 0xa8d) || # 1693 (c >= 0xa8f && c <= 0xa91) || # 1696 (c >= 0xa93 && c <= 0xaa8) || # 1718 (c >= 0xaaa && c <= 0xab0) || # 1725 (c >= 0xab2 && c <= 0xab3) || # 1727 (c >= 0xab5 && c <= 0xab9) || # 1732 (c == 0xabd) || # 1733 (c == 0xad0) || # 1734 (c >= 0xae0 && c <= 0xae1) || # 1736 (c >= 0xb05 && c <= 0xb0c) || # 1744 (c >= 0xb0f && c <= 0xb10) || # 1746 (c >= 0xb13 && c <= 0xb28) || # 1768 (c >= 0xb2a && c <= 0xb30) || # 1775 (c >= 0xb32 && c <= 0xb33) || # 1777 (c >= 0xb35 && c <= 0xb39) || # 1782 (c == 0xb3d) || # 1783 (c >= 0xb5c && c <= 0xb5d) || # 1785 (c >= 0xb5f && c <= 0xb61) || # 1788 (c == 0xb71) || # 1789 (c == 0xb83) || # 1790 (c >= 0xb85 && c <= 0xb8a) || # 1796 (c >= 0xb8e && c <= 0xb90) || # 1799 (c >= 0xb92 && c <= 0xb95) || # 1803 (c >= 0xb99 && c <= 0xb9a) || # 1805 (c == 0xb9c) || # 1806 (c >= 0xb9e && c <= 0xb9f) || # 1808 (c >= 0xba3 && c <= 0xba4) || # 1810 (c >= 0xba8 && c <= 0xbaa) || # 1813 (c >= 0xbae && c <= 0xbb9) || # 1825 (c == 0xbd0) || # 1826 (c >= 0xc05 && c <= 0xc0c) || # 1834 (c >= 0xc0e && c <= 0xc10) || # 1837 (c >= 0xc12 && c <= 0xc28) || # 1860 (c >= 0xc2a && c <= 0xc39) || # 1876 (c == 0xc3d) || # 1877 (c >= 0xc58 && c <= 0xc59) || # 1879 (c >= 0xc60 && c <= 0xc61) || # 1881 (c >= 0xc85 && c <= 0xc8c) || # 1889 (c >= 0xc8e && c <= 0xc90) || # 1892 (c >= 0xc92 && c <= 0xca8) || # 1915 (c >= 0xcaa && c <= 0xcb3) || # 1925 (c >= 0xcb5 && c <= 0xcb9) || # 1930 (c == 0xcbd) || # 1931 (c == 0xcde) || # 1932 (c >= 0xce0 && c <= 0xce1) || # 1934 (c >= 0xcf1 && c <= 0xcf2) || # 1936 (c >= 0xd05 && c <= 0xd0c) || # 1944 (c >= 0xd0e && c <= 0xd10) || # 1947 (c >= 0xd12 && c <= 0xd3a) || # 1988 (c == 0xd3d) || # 1989 (c == 0xd4e) || # 1990 (c >= 0xd60 && c <= 0xd61) || # 1992 (c >= 0xd7a && c <= 0xd7f) || # 1998 (c >= 0xd85 && c <= 0xd96) || # 2016 (c >= 0xd9a && c <= 0xdb1) || # 2040 (c >= 0xdb3 && c <= 0xdbb) || # 2049 (c == 0xdbd) || # 2050 (c >= 0xdc0 && c <= 0xdc6) || # 2057 (c >= 0xe01 && c <= 0xe30) || # 2105 (c >= 0xe32 && c <= 0xe33) || # 2107 (c >= 0xe40 && c <= 0xe46) || # 2114 (c >= 0xe81 && c <= 0xe82) || # 2116 (c == 0xe84) || # 2117 (c >= 0xe87 && c <= 0xe88) || # 2119 (c == 0xe8a) || # 2120 (c == 0xe8d) || # 2121 (c >= 0xe94 && c <= 0xe97) || # 2125 (c >= 0xe99 && c <= 0xe9f) || # 2132 (c >= 0xea1 && c <= 0xea3) || # 2135 (c == 0xea5) || # 2136 (c == 0xea7) || # 2137 (c >= 0xeaa && c <= 0xeab) || # 2139 (c >= 0xead && c <= 0xeb0) || # 2143 (c >= 0xeb2 && c <= 0xeb3) || # 2145 (c == 0xebd) || # 2146 (c >= 0xec0 && c <= 0xec4) || # 2151 (c == 0xec6) || # 2152 (c >= 0xedc && c <= 0xedf) || # 2156 (c == 0xf00) || # 2157 (c >= 0xf40 && c <= 0xf47) || # 2165 (c >= 0xf49 && c <= 0xf6c) || # 2201 (c >= 0xf88 && c <= 0xf8c) || # 2206 (c >= 0x1000 && c <= 0x102a) || # 2249 (c == 0x103f) || # 2250 (c >= 0x1050 && c <= 0x1055) || # 2256 (c >= 0x105a && c <= 0x105d) || # 2260 (c == 0x1061) || # 2261 (c >= 0x1065 && c <= 0x1066) || # 2263 (c >= 0x106e && c <= 0x1070) || # 2266 (c >= 0x1075 && c <= 0x1081) || # 2279 (c == 0x108e) || # 2280 (c >= 0x10a0 && c <= 0x10c5) || # 2318 (c == 0x10c7) || # 2319 (c == 0x10cd) || # 2320 (c >= 0x10d0 && c <= 0x10fa) || # 2363 (c >= 0x10fc && c <= 0x1248) || # 2696 (c >= 0x124a && c <= 0x124d) || # 2700 (c >= 0x1250 && c <= 0x1256) || # 2707 (c == 0x1258) || # 2708 (c >= 0x125a && c <= 0x125d) || # 2712 (c >= 0x1260 && c <= 0x1288) || # 2753 (c >= 0x128a && c <= 0x128d) || # 2757 (c >= 0x1290 && c <= 0x12b0) || # 2790 (c >= 0x12b2 && c <= 0x12b5) || # 2794 (c >= 0x12b8 && c <= 0x12be) || # 2801 (c == 0x12c0) || # 2802 (c >= 0x12c2 && c <= 0x12c5) || # 2806 (c >= 0x12c8 && c <= 0x12d6) || # 2821 (c >= 0x12d8 && c <= 0x1310) || # 2878 (c >= 0x1312 && c <= 0x1315) || # 2882 (c >= 0x1318 && c <= 0x135a) || # 2949 (c >= 0x1380 && c <= 0x138f) || # 2965 (c >= 0x13a0 && c <= 0x13f4) || # 3050 (c >= 0x1401 && c <= 0x166c) || # 3670 (c >= 0x166f && c <= 0x167f) || # 3687 (c >= 0x1681 && c <= 0x169a) || # 3713 (c >= 0x16a0 && c <= 0x16ea) || # 3788 (c >= 0x16ee && c <= 0x16f8) || # 3799 (c >= 0x1700 && c <= 0x170c) || # 3812 (c >= 0x170e && c <= 0x1711) || # 3816 (c >= 0x1720 && c <= 0x1731) || # 3834 (c >= 0x1740 && c <= 0x1751) || # 3852 (c >= 0x1760 && c <= 0x176c) || # 3865 (c >= 0x176e && c <= 0x1770) || # 3868 (c >= 0x1780 && c <= 0x17b3) || # 3920 (c == 0x17d7) || # 3921 (c == 0x17dc) || # 3922 (c >= 0x1820 && c <= 0x1877) || # 4010 (c >= 0x1880 && c <= 0x18a8) || # 4051 (c == 0x18aa) || # 4052 (c >= 0x18b0 && c <= 0x18f5) || # 4122 (c >= 0x1900 && c <= 0x191e) || # 4153 (c >= 0x1950 && c <= 0x196d) || # 4183 (c >= 0x1970 && c <= 0x1974) || # 4188 (c >= 0x1980 && c <= 0x19ab) || # 4232 (c >= 0x19c1 && c <= 0x19c7) || # 4239 (c >= 0x1a00 && c <= 0x1a16) || # 4262 (c >= 0x1a20 && c <= 0x1a54) || # 4315 (c == 0x1aa7) || # 4316 (c >= 0x1b05 && c <= 0x1b33) || # 4363 (c >= 0x1b45 && c <= 0x1b4b) || # 4370 (c >= 0x1b83 && c <= 0x1ba0) || # 4400 (c >= 0x1bae && c <= 0x1baf) || # 4402 (c >= 0x1bba && c <= 0x1be5) || # 4446 (c >= 0x1c00 && c <= 0x1c23) || # 4482 (c >= 0x1c4d && c <= 0x1c4f) || # 4485 (c >= 0x1c5a && c <= 0x1c7d) || # 4521 (c >= 0x1ce9 && c <= 0x1cec) || # 4525 (c >= 0x1cee && c <= 0x1cf1) || # 4529 (c >= 0x1cf5 && c <= 0x1cf6) || # 4531 (c >= 0x1d00 && c <= 0x1dbf) || # 4723 (c >= 0x1e00 && c <= 0x1f15) || # 5001 (c >= 0x1f18 && c <= 0x1f1d) || # 5007 (c >= 0x1f20 && c <= 0x1f45) || # 5045 (c >= 0x1f48 && c <= 0x1f4d) || # 5051 (c >= 0x1f50 && c <= 0x1f57) || # 5059 (c == 0x1f59) || # 5060 (c == 0x1f5b) || # 5061 (c == 0x1f5d) || # 5062 (c >= 0x1f5f && c <= 0x1f7d) || # 5093 (c >= 0x1f80 && c <= 0x1fb4) || # 5146 (c >= 0x1fb6 && c <= 0x1fbc) || # 5153 (c == 0x1fbe) || # 5154 (c >= 0x1fc2 && c <= 0x1fc4) || # 5157 (c >= 0x1fc6 && c <= 0x1fcc) || # 5164 (c >= 0x1fd0 && c <= 0x1fd3) || # 5168 (c >= 0x1fd6 && c <= 0x1fdb) || # 5174 (c >= 0x1fe0 && c <= 0x1fec) || # 5187 (c >= 0x1ff2 && c <= 0x1ff4) || # 5190 (c >= 0x1ff6 && c <= 0x1ffc) || # 5197 (c == 0x2071) || # 5198 (c == 0x207f) || # 5199 (c >= 0x2090 && c <= 0x209c) || # 5212 (c == 0x2102) || # 5213 (c == 0x2107) || # 5214 (c >= 0x210a && c <= 0x2113) || # 5224 (c == 0x2115) || # 5225 (c >= 0x2119 && c <= 0x211d) || # 5230 (c == 0x2124) || # 5231 (c == 0x2126) || # 5232 (c == 0x2128) || # 5233 (c >= 0x212a && c <= 0x212d) || # 5237 (c >= 0x212f && c <= 0x2139) || # 5248 (c >= 0x213c && c <= 0x213f) || # 5252 (c >= 0x2145 && c <= 0x2149) || # 5257 (c == 0x214e) || # 5258 (c >= 0x2160 && c <= 0x2188) || # 5299 (c >= 0x2c00 && c <= 0x2c2e) || # 5346 (c >= 0x2c30 && c <= 0x2c5e) || # 5393 (c >= 0x2c60 && c <= 0x2ce4) || # 5526 (c >= 0x2ceb && c <= 0x2cee) || # 5530 (c >= 0x2cf2 && c <= 0x2cf3) || # 5532 (c >= 0x2d00 && c <= 0x2d25) || # 5570 (c == 0x2d27) || # 5571 (c == 0x2d2d) || # 5572 (c >= 0x2d30 && c <= 0x2d67) || # 5628 (c == 0x2d6f) || # 5629 (c >= 0x2d80 && c <= 0x2d96) || # 5652 (c >= 0x2da0 && c <= 0x2da6) || # 5659 (c >= 0x2da8 && c <= 0x2dae) || # 5666 (c >= 0x2db0 && c <= 0x2db6) || # 5673 (c >= 0x2db8 && c <= 0x2dbe) || # 5680 (c >= 0x2dc0 && c <= 0x2dc6) || # 5687 (c >= 0x2dc8 && c <= 0x2dce) || # 5694 (c >= 0x2dd0 && c <= 0x2dd6) || # 5701 (c >= 0x2dd8 && c <= 0x2dde) || # 5708 (c == 0x2e2f) || # 5709 (c >= 0x3005 && c <= 0x3007) || # 5712 (c >= 0x3021 && c <= 0x3029) || # 5721 (c >= 0x3031 && c <= 0x3035) || # 5726 (c >= 0x3038 && c <= 0x303c) || # 5731 (c >= 0x3041 && c <= 0x3096) || # 5817 (c >= 0x309d && c <= 0x309f) || # 5820 (c >= 0x30a1 && c <= 0x30fa) || # 5910 (c >= 0x30fc && c <= 0x30ff) || # 5914 (c >= 0x3105 && c <= 0x312d) || # 5955 (c >= 0x3131 && c <= 0x318e) || # 6049 (c >= 0x31a0 && c <= 0x31ba) || # 6076 (c >= 0x31f0 && c <= 0x31ff) || # 6092 (c == 0x3400) || # 6093 (c == 0x4db5) || # 6094 (c == 0x4e00) || # 6095 (c == 0x9fcc) || # 6096 (c >= 0xa000 && c <= 0xa48c) || # 7261 (c >= 0xa4d0 && c <= 0xa4fd) || # 7307 (c >= 0xa500 && c <= 0xa60c) || # 7576 (c >= 0xa610 && c <= 0xa61f) || # 7592 (c >= 0xa62a && c <= 0xa62b) || # 7594 (c >= 0xa640 && c <= 0xa66e) || # 7641 (c >= 0xa67f && c <= 0xa69d) || # 7672 (c >= 0xa6a0 && c <= 0xa6ef) || # 7752 (c >= 0xa717 && c <= 0xa71f) || # 7761 (c >= 0xa722 && c <= 0xa788) || # 7864 (c >= 0xa78b && c <= 0xa78e) || # 7868 (c >= 0xa790 && c <= 0xa7ad) || # 7898 (c >= 0xa7b0 && c <= 0xa7b1) || # 7900 (c >= 0xa7f7 && c <= 0xa801) || # 7911 (c >= 0xa803 && c <= 0xa805) || # 7914 (c >= 0xa807 && c <= 0xa80a) || # 7918 (c >= 0xa80c && c <= 0xa822) || # 7941 (c >= 0xa840 && c <= 0xa873) || # 7993 (c >= 0xa882 && c <= 0xa8b3) || # 8043 (c >= 0xa8f2 && c <= 0xa8f7) || # 8049 (c == 0xa8fb) || # 8050 (c >= 0xa90a && c <= 0xa925) || # 8078 (c >= 0xa930 && c <= 0xa946) || # 8101 (c >= 0xa960 && c <= 0xa97c) || # 8130 (c >= 0xa984 && c <= 0xa9b2) || # 8177 (c == 0xa9cf) || # 8178 (c >= 0xa9e0 && c <= 0xa9e4) || # 8183 (c >= 0xa9e6 && c <= 0xa9ef) || # 8193 (c >= 0xa9fa && c <= 0xa9fe) || # 8198 (c >= 0xaa00 && c <= 0xaa28) || # 8239 (c >= 0xaa40 && c <= 0xaa42) || # 8242 (c >= 0xaa44 && c <= 0xaa4b) || # 8250 (c >= 0xaa60 && c <= 0xaa76) || # 8273 (c == 0xaa7a) || # 8274 (c >= 0xaa7e && c <= 0xaaaf) || # 8324 (c == 0xaab1) || # 8325 (c >= 0xaab5 && c <= 0xaab6) || # 8327 (c >= 0xaab9 && c <= 0xaabd) || # 8332 (c == 0xaac0) || # 8333 (c == 0xaac2) || # 8334 (c >= 0xaadb && c <= 0xaadd) || # 8337 (c >= 0xaae0 && c <= 0xaaea) || # 8348 (c >= 0xaaf2 && c <= 0xaaf4) || # 8351 (c >= 0xab01 && c <= 0xab06) || # 8357 (c >= 0xab09 && c <= 0xab0e) || # 8363 (c >= 0xab11 && c <= 0xab16) || # 8369 (c >= 0xab20 && c <= 0xab26) || # 8376 (c >= 0xab28 && c <= 0xab2e) || # 8383 (c >= 0xab30 && c <= 0xab5a) || # 8426 (c >= 0xab5c && c <= 0xab5f) || # 8430 (c >= 0xab64 && c <= 0xab65) || # 8432 (c >= 0xabc0 && c <= 0xabe2) || # 8467 (c == 0xac00) || # 8468 (c == 0xd7a3) || # 8469 (c >= 0xd7b0 && c <= 0xd7c6) || # 8492 (c >= 0xd7cb && c <= 0xd7fb) || # 8541 (c >= 0xf900 && c <= 0xfa6d) || # 8907 (c >= 0xfa70 && c <= 0xfad9) || # 9013 (c >= 0xfb00 && c <= 0xfb06) || # 9020 (c >= 0xfb13 && c <= 0xfb17) || # 9025 (c == 0xfb1d) || # 9026 (c >= 0xfb1f && c <= 0xfb28) || # 9036 (c >= 0xfb2a && c <= 0xfb36) || # 9049 (c >= 0xfb38 && c <= 0xfb3c) || # 9054 (c == 0xfb3e) || # 9055 (c >= 0xfb40 && c <= 0xfb41) || # 9057 (c >= 0xfb43 && c <= 0xfb44) || # 9059 (c >= 0xfb46 && c <= 0xfbb1) || # 9167 (c >= 0xfbd3 && c <= 0xfd3d) || # 9530 (c >= 0xfd50 && c <= 0xfd8f) || # 9594 (c >= 0xfd92 && c <= 0xfdc7) || # 9648 (c >= 0xfdf0 && c <= 0xfdfb) || # 9660 (c >= 0xfe70 && c <= 0xfe74) || # 9665 (c >= 0xfe76 && c <= 0xfefc) || # 9800 (c >= 0xff21 && c <= 0xff3a) || # 9826 (c >= 0xff41 && c <= 0xff5a) || # 9852 (c >= 0xff66 && c <= 0xffbe) || # 9941 (c >= 0xffc2 && c <= 0xffc7) || # 9947 (c >= 0xffca && c <= 0xffcf) || # 9953 (c >= 0xffd2 && c <= 0xffd7) || # 9959 (c >= 0xffda && c <= 0xffdc) || # 9962 (c >= 0x10000 && c <= 0x1000b) || # 9974 (c >= 0x1000d && c <= 0x10026) || # 10000 (c >= 0x10028 && c <= 0x1003a) || # 10019 (c >= 0x1003c && c <= 0x1003d) || # 10021 (c >= 0x1003f && c <= 0x1004d) || # 10036 (c >= 0x10050 && c <= 0x1005d) || # 10050 (c >= 0x10080 && c <= 0x100fa) || # 10173 (c >= 0x10140 && c <= 0x10174) || # 10226 (c >= 0x10280 && c <= 0x1029c) || # 10255 (c >= 0x102a0 && c <= 0x102d0) || # 10304 (c >= 0x10300 && c <= 0x1031f) || # 10336 (c >= 0x10330 && c <= 0x1034a) || # 10363 (c >= 0x10350 && c <= 0x10375) || # 10401 (c >= 0x10380 && c <= 0x1039d) || # 10431 (c >= 0x103a0 && c <= 0x103c3) || # 10467 (c >= 0x103c8 && c <= 0x103cf) || # 10475 (c >= 0x103d1 && c <= 0x103d5) || # 10480 (c >= 0x10400 && c <= 0x1049d) || # 10638 (c >= 0x10500 && c <= 0x10527) || # 10678 (c >= 0x10530 && c <= 0x10563) || # 10730 (c >= 0x10600 && c <= 0x10736) || # 11041 (c >= 0x10740 && c <= 0x10755) || # 11063 (c >= 0x10760 && c <= 0x10767) || # 11071 (c >= 0x10800 && c <= 0x10805) || # 11077 (c == 0x10808) || # 11078 (c >= 0x1080a && c <= 0x10835) || # 11122 (c >= 0x10837 && c <= 0x10838) || # 11124 (c == 0x1083c) || # 11125 (c >= 0x1083f && c <= 0x10855) || # 11148 (c >= 0x10860 && c <= 0x10876) || # 11171 (c >= 0x10880 && c <= 0x1089e) || # 11202 (c >= 0x10900 && c <= 0x10915) || # 11224 (c >= 0x10920 && c <= 0x10939) || # 11250 (c >= 0x10980 && c <= 0x109b7) || # 11306 (c >= 0x109be && c <= 0x109bf) || # 11308 (c == 0x10a00) || # 11309 (c >= 0x10a10 && c <= 0x10a13) || # 11313 (c >= 0x10a15 && c <= 0x10a17) || # 11316 (c >= 0x10a19 && c <= 0x10a33) || # 11343 (c >= 0x10a60 && c <= 0x10a7c) || # 11372 (c >= 0x10a80 && c <= 0x10a9c) || # 11401 (c >= 0x10ac0 && c <= 0x10ac7) || # 11409 (c >= 0x10ac9 && c <= 0x10ae4) || # 11437 (c >= 0x10b00 && c <= 0x10b35) || # 11491 (c >= 0x10b40 && c <= 0x10b55) || # 11513 (c >= 0x10b60 && c <= 0x10b72) || # 11532 (c >= 0x10b80 && c <= 0x10b91) || # 11550 (c >= 0x10c00 && c <= 0x10c48) || # 11623 (c >= 0x11003 && c <= 0x11037) || # 11676 (c >= 0x11083 && c <= 0x110af) || # 11721 (c >= 0x110d0 && c <= 0x110e8) || # 11746 (c >= 0x11103 && c <= 0x11126) || # 11782 (c >= 0x11150 && c <= 0x11172) || # 11817 (c == 0x11176) || # 11818 (c >= 0x11183 && c <= 0x111b2) || # 11866 (c >= 0x111c1 && c <= 0x111c4) || # 11870 (c == 0x111da) || # 11871 (c >= 0x11200 && c <= 0x11211) || # 11889 (c >= 0x11213 && c <= 0x1122b) || # 11914 (c >= 0x112b0 && c <= 0x112de) || # 11961 (c >= 0x11305 && c <= 0x1130c) || # 11969 (c >= 0x1130f && c <= 0x11310) || # 11971 (c >= 0x11313 && c <= 0x11328) || # 11993 (c >= 0x1132a && c <= 0x11330) || # 12000 (c >= 0x11332 && c <= 0x11333) || # 12002 (c >= 0x11335 && c <= 0x11339) || # 12007 (c == 0x1133d) || # 12008 (c >= 0x1135d && c <= 0x11361) || # 12013 (c >= 0x11480 && c <= 0x114af) || # 12061 (c >= 0x114c4 && c <= 0x114c5) || # 12063 (c == 0x114c7) || # 12064 (c >= 0x11580 && c <= 0x115ae) || # 12111 (c >= 0x11600 && c <= 0x1162f) || # 12159 (c == 0x11644) || # 12160 (c >= 0x11680 && c <= 0x116aa) || # 12203 (c >= 0x118a0 && c <= 0x118df) || # 12267 (c == 0x118ff) || # 12268 (c >= 0x11ac0 && c <= 0x11af8) || # 12325 (c >= 0x12000 && c <= 0x12398) || # 13246 (c >= 0x12400 && c <= 0x1246e) || # 13357 (c >= 0x13000 && c <= 0x1342e) || # 14428 (c >= 0x16800 && c <= 0x16a38) || # 14997 (c >= 0x16a40 && c <= 0x16a5e) || # 15028 (c >= 0x16ad0 && c <= 0x16aed) || # 15058 (c >= 0x16b00 && c <= 0x16b2f) || # 15106 (c >= 0x16b40 && c <= 0x16b43) || # 15110 (c >= 0x16b63 && c <= 0x16b77) || # 15131 (c >= 0x16b7d && c <= 0x16b8f) || # 15150 (c >= 0x16f00 && c <= 0x16f44) || # 15219 (c == 0x16f50) || # 15220 (c >= 0x16f93 && c <= 0x16f9f) || # 15233 (c >= 0x1b000 && c <= 0x1b001) || # 15235 (c >= 0x1bc00 && c <= 0x1bc6a) || # 15342 (c >= 0x1bc70 && c <= 0x1bc7c) || # 15355 (c >= 0x1bc80 && c <= 0x1bc88) || # 15364 (c >= 0x1bc90 && c <= 0x1bc99) || # 15374 (c >= 0x1d400 && c <= 0x1d454) || # 15459 (c >= 0x1d456 && c <= 0x1d49c) || # 15530 (c >= 0x1d49e && c <= 0x1d49f) || # 15532 (c == 0x1d4a2) || # 15533 (c >= 0x1d4a5 && c <= 0x1d4a6) || # 15535 (c >= 0x1d4a9 && c <= 0x1d4ac) || # 15539 (c >= 0x1d4ae && c <= 0x1d4b9) || # 15551 (c == 0x1d4bb) || # 15552 (c >= 0x1d4bd && c <= 0x1d4c3) || # 15559 (c >= 0x1d4c5 && c <= 0x1d505) || # 15624 (c >= 0x1d507 && c <= 0x1d50a) || # 15628 (c >= 0x1d50d && c <= 0x1d514) || # 15636 (c >= 0x1d516 && c <= 0x1d51c) || # 15643 (c >= 0x1d51e && c <= 0x1d539) || # 15671 (c >= 0x1d53b && c <= 0x1d53e) || # 15675 (c >= 0x1d540 && c <= 0x1d544) || # 15680 (c == 0x1d546) || # 15681 (c >= 0x1d54a && c <= 0x1d550) || # 15688 (c >= 0x1d552 && c <= 0x1d6a5) || # 16028 (c >= 0x1d6a8 && c <= 0x1d6c0) || # 16053 (c >= 0x1d6c2 && c <= 0x1d6da) || # 16078 (c >= 0x1d6dc && c <= 0x1d6fa) || # 16109 (c >= 0x1d6fc && c <= 0x1d714) || # 16134 (c >= 0x1d716 && c <= 0x1d734) || # 16165 (c >= 0x1d736 && c <= 0x1d74e) || # 16190 (c >= 0x1d750 && c <= 0x1d76e) || # 16221 (c >= 0x1d770 && c <= 0x1d788) || # 16246 (c >= 0x1d78a && c <= 0x1d7a8) || # 16277 (c >= 0x1d7aa && c <= 0x1d7c2) || # 16302 (c >= 0x1d7c4 && c <= 0x1d7cb) || # 16310 (c >= 0x1e800 && c <= 0x1e8c4) || # 16507 (c >= 0x1ee00 && c <= 0x1ee03) || # 16511 (c >= 0x1ee05 && c <= 0x1ee1f) || # 16538 (c >= 0x1ee21 && c <= 0x1ee22) || # 16540 (c == 0x1ee24) || # 16541 (c == 0x1ee27) || # 16542 (c >= 0x1ee29 && c <= 0x1ee32) || # 16552 (c >= 0x1ee34 && c <= 0x1ee37) || # 16556 (c == 0x1ee39) || # 16557 (c == 0x1ee3b) || # 16558 (c == 0x1ee42) || # 16559 (c == 0x1ee47) || # 16560 (c == 0x1ee49) || # 16561 (c == 0x1ee4b) || # 16562 (c >= 0x1ee4d && c <= 0x1ee4f) || # 16565 (c >= 0x1ee51 && c <= 0x1ee52) || # 16567 (c == 0x1ee54) || # 16568 (c == 0x1ee57) || # 16569 (c == 0x1ee59) || # 16570 (c == 0x1ee5b) || # 16571 (c == 0x1ee5d) || # 16572 (c == 0x1ee5f) || # 16573 (c >= 0x1ee61 && c <= 0x1ee62) || # 16575 (c == 0x1ee64) || # 16576 (c >= 0x1ee67 && c <= 0x1ee6a) || # 16580 (c >= 0x1ee6c && c <= 0x1ee72) || # 16587 (c >= 0x1ee74 && c <= 0x1ee77) || # 16591 (c >= 0x1ee79 && c <= 0x1ee7c) || # 16595 (c == 0x1ee7e) || # 16596 (c >= 0x1ee80 && c <= 0x1ee89) || # 16606 (c >= 0x1ee8b && c <= 0x1ee9b) || # 16623 (c >= 0x1eea1 && c <= 0x1eea3) || # 16626 (c >= 0x1eea5 && c <= 0x1eea9) || # 16631 (c >= 0x1eeab && c <= 0x1eebb) || # 16648 (c == 0x20000) || # 16649 (c == 0x2a6d6) || # 16650 (c == 0x2a700) || # 16651 (c == 0x2b734) || # 16652 (c == 0x2b740) || # 16653 (c == 0x2b81d) || # 16654 (c >= 0x2f800 && c <= 0x2fa1d) # 17196 return true else return false end end def identifier_part?(c) return false if c.nil? if c == 0x24 || (c >= 0x30 && c <= 0x39) || # 10 (c >= 0x41 && c <= 0x5a) || # 36 (c == 0x5f) || # 37 (c >= 0x61 && c <= 0x7a) || # 63 (c == 0xaa) || # 64 (c == 0xb5) || # 65 (c == 0xba) || # 66 (c >= 0xc0 && c <= 0xd6) || # 89 (c >= 0xd8 && c <= 0xf6) || # 120 (c >= 0xf8 && c <= 0x2c1) # 578 return true elsif c <= 0xff return false elsif (c >= 0x2c6 && c <= 0x2d1) || # 590 (c >= 0x2e0 && c <= 0x2e4) || # 595 (c == 0x2ec) || # 596 (c == 0x2ee) || # 597 (c >= 0x300 && c <= 0x374) || # 714 (c >= 0x376 && c <= 0x377) || # 716 (c >= 0x37a && c <= 0x37d) || # 720 (c == 0x37f) || # 721 (c == 0x386) || # 722 (c >= 0x388 && c <= 0x38a) || # 725 (c == 0x38c) || # 726 (c >= 0x38e && c <= 0x3a1) || # 746 (c >= 0x3a3 && c <= 0x3f5) || # 829 (c >= 0x3f7 && c <= 0x481) || # 968 (c >= 0x483 && c <= 0x487) || # 973 (c >= 0x48a && c <= 0x52f) || # 1139 (c >= 0x531 && c <= 0x556) || # 1177 (c == 0x559) || # 1178 (c >= 0x561 && c <= 0x587) || # 1217 (c >= 0x591 && c <= 0x5bd) || # 1262 (c == 0x5bf) || # 1263 (c >= 0x5c1 && c <= 0x5c2) || # 1265 (c >= 0x5c4 && c <= 0x5c5) || # 1267 (c == 0x5c7) || # 1268 (c >= 0x5d0 && c <= 0x5ea) || # 1295 (c >= 0x5f0 && c <= 0x5f2) || # 1298 (c >= 0x610 && c <= 0x61a) || # 1309 (c >= 0x620 && c <= 0x669) || # 1383 (c >= 0x66e && c <= 0x6d3) || # 1485 (c >= 0x6d5 && c <= 0x6dc) || # 1493 (c >= 0x6df && c <= 0x6e8) || # 1503 (c >= 0x6ea && c <= 0x6fc) || # 1522 (c == 0x6ff) || # 1523 (c >= 0x710 && c <= 0x74a) || # 1582 (c >= 0x74d && c <= 0x7b1) || # 1683 (c >= 0x7c0 && c <= 0x7f5) || # 1737 (c == 0x7fa) || # 1738 (c >= 0x800 && c <= 0x82d) || # 1784 (c >= 0x840 && c <= 0x85b) || # 1812 (c >= 0x8a0 && c <= 0x8b2) || # 1831 (c >= 0x8e4 && c <= 0x963) || # 1959 (c >= 0x966 && c <= 0x96f) || # 1969 (c >= 0x971 && c <= 0x983) || # 1988 (c >= 0x985 && c <= 0x98c) || # 1996 (c >= 0x98f && c <= 0x990) || # 1998 (c >= 0x993 && c <= 0x9a8) || # 2020 (c >= 0x9aa && c <= 0x9b0) || # 2027 (c == 0x9b2) || # 2028 (c >= 0x9b6 && c <= 0x9b9) || # 2032 (c >= 0x9bc && c <= 0x9c4) || # 2041 (c >= 0x9c7 && c <= 0x9c8) || # 2043 (c >= 0x9cb && c <= 0x9ce) || # 2047 (c == 0x9d7) || # 2048 (c >= 0x9dc && c <= 0x9dd) || # 2050 (c >= 0x9df && c <= 0x9e3) || # 2055 (c >= 0x9e6 && c <= 0x9f1) || # 2067 (c >= 0xa01 && c <= 0xa03) || # 2070 (c >= 0xa05 && c <= 0xa0a) || # 2076 (c >= 0xa0f && c <= 0xa10) || # 2078 (c >= 0xa13 && c <= 0xa28) || # 2100 (c >= 0xa2a && c <= 0xa30) || # 2107 (c >= 0xa32 && c <= 0xa33) || # 2109 (c >= 0xa35 && c <= 0xa36) || # 2111 (c >= 0xa38 && c <= 0xa39) || # 2113 (c == 0xa3c) || # 2114 (c >= 0xa3e && c <= 0xa42) || # 2119 (c >= 0xa47 && c <= 0xa48) || # 2121 (c >= 0xa4b && c <= 0xa4d) || # 2124 (c == 0xa51) || # 2125 (c >= 0xa59 && c <= 0xa5c) || # 2129 (c == 0xa5e) || # 2130 (c >= 0xa66 && c <= 0xa75) || # 2146 (c >= 0xa81 && c <= 0xa83) || # 2149 (c >= 0xa85 && c <= 0xa8d) || # 2158 (c >= 0xa8f && c <= 0xa91) || # 2161 (c >= 0xa93 && c <= 0xaa8) || # 2183 (c >= 0xaaa && c <= 0xab0) || # 2190 (c >= 0xab2 && c <= 0xab3) || # 2192 (c >= 0xab5 && c <= 0xab9) || # 2197 (c >= 0xabc && c <= 0xac5) || # 2207 (c >= 0xac7 && c <= 0xac9) || # 2210 (c >= 0xacb && c <= 0xacd) || # 2213 (c == 0xad0) || # 2214 (c >= 0xae0 && c <= 0xae3) || # 2218 (c >= 0xae6 && c <= 0xaef) || # 2228 (c >= 0xb01 && c <= 0xb03) || # 2231 (c >= 0xb05 && c <= 0xb0c) || # 2239 (c >= 0xb0f && c <= 0xb10) || # 2241 (c >= 0xb13 && c <= 0xb28) || # 2263 (c >= 0xb2a && c <= 0xb30) || # 2270 (c >= 0xb32 && c <= 0xb33) || # 2272 (c >= 0xb35 && c <= 0xb39) || # 2277 (c >= 0xb3c && c <= 0xb44) || # 2286 (c >= 0xb47 && c <= 0xb48) || # 2288 (c >= 0xb4b && c <= 0xb4d) || # 2291 (c >= 0xb56 && c <= 0xb57) || # 2293 (c >= 0xb5c && c <= 0xb5d) || # 2295 (c >= 0xb5f && c <= 0xb63) || # 2300 (c >= 0xb66 && c <= 0xb6f) || # 2310 (c == 0xb71) || # 2311 (c >= 0xb82 && c <= 0xb83) || # 2313 (c >= 0xb85 && c <= 0xb8a) || # 2319 (c >= 0xb8e && c <= 0xb90) || # 2322 (c >= 0xb92 && c <= 0xb95) || # 2326 (c >= 0xb99 && c <= 0xb9a) || # 2328 (c == 0xb9c) || # 2329 (c >= 0xb9e && c <= 0xb9f) || # 2331 (c >= 0xba3 && c <= 0xba4) || # 2333 (c >= 0xba8 && c <= 0xbaa) || # 2336 (c >= 0xbae && c <= 0xbb9) || # 2348 (c >= 0xbbe && c <= 0xbc2) || # 2353 (c >= 0xbc6 && c <= 0xbc8) || # 2356 (c >= 0xbca && c <= 0xbcd) || # 2360 (c == 0xbd0) || # 2361 (c == 0xbd7) || # 2362 (c >= 0xbe6 && c <= 0xbef) || # 2372 (c >= 0xc00 && c <= 0xc03) || # 2376 (c >= 0xc05 && c <= 0xc0c) || # 2384 (c >= 0xc0e && c <= 0xc10) || # 2387 (c >= 0xc12 && c <= 0xc28) || # 2410 (c >= 0xc2a && c <= 0xc39) || # 2426 (c >= 0xc3d && c <= 0xc44) || # 2434 (c >= 0xc46 && c <= 0xc48) || # 2437 (c >= 0xc4a && c <= 0xc4d) || # 2441 (c >= 0xc55 && c <= 0xc56) || # 2443 (c >= 0xc58 && c <= 0xc59) || # 2445 (c >= 0xc60 && c <= 0xc63) || # 2449 (c >= 0xc66 && c <= 0xc6f) || # 2459 (c >= 0xc81 && c <= 0xc83) || # 2462 (c >= 0xc85 && c <= 0xc8c) || # 2470 (c >= 0xc8e && c <= 0xc90) || # 2473 (c >= 0xc92 && c <= 0xca8) || # 2496 (c >= 0xcaa && c <= 0xcb3) || # 2506 (c >= 0xcb5 && c <= 0xcb9) || # 2511 (c >= 0xcbc && c <= 0xcc4) || # 2520 (c >= 0xcc6 && c <= 0xcc8) || # 2523 (c >= 0xcca && c <= 0xccd) || # 2527 (c >= 0xcd5 && c <= 0xcd6) || # 2529 (c == 0xcde) || # 2530 (c >= 0xce0 && c <= 0xce3) || # 2534 (c >= 0xce6 && c <= 0xcef) || # 2544 (c >= 0xcf1 && c <= 0xcf2) || # 2546 (c >= 0xd01 && c <= 0xd03) || # 2549 (c >= 0xd05 && c <= 0xd0c) || # 2557 (c >= 0xd0e && c <= 0xd10) || # 2560 (c >= 0xd12 && c <= 0xd3a) || # 2601 (c >= 0xd3d && c <= 0xd44) || # 2609 (c >= 0xd46 && c <= 0xd48) || # 2612 (c >= 0xd4a && c <= 0xd4e) || # 2617 (c == 0xd57) || # 2618 (c >= 0xd60 && c <= 0xd63) || # 2622 (c >= 0xd66 && c <= 0xd6f) || # 2632 (c >= 0xd7a && c <= 0xd7f) || # 2638 (c >= 0xd82 && c <= 0xd83) || # 2640 (c >= 0xd85 && c <= 0xd96) || # 2658 (c >= 0xd9a && c <= 0xdb1) || # 2682 (c >= 0xdb3 && c <= 0xdbb) || # 2691 (c == 0xdbd) || # 2692 (c >= 0xdc0 && c <= 0xdc6) || # 2699 (c == 0xdca) || # 2700 (c >= 0xdcf && c <= 0xdd4) || # 2706 (c == 0xdd6) || # 2707 (c >= 0xdd8 && c <= 0xddf) || # 2715 (c >= 0xde6 && c <= 0xdef) || # 2725 (c >= 0xdf2 && c <= 0xdf3) || # 2727 (c >= 0xe01 && c <= 0xe3a) || # 2785 (c >= 0xe40 && c <= 0xe4e) || # 2800 (c >= 0xe50 && c <= 0xe59) || # 2810 (c >= 0xe81 && c <= 0xe82) || # 2812 (c == 0xe84) || # 2813 (c >= 0xe87 && c <= 0xe88) || # 2815 (c == 0xe8a) || # 2816 (c == 0xe8d) || # 2817 (c >= 0xe94 && c <= 0xe97) || # 2821 (c >= 0xe99 && c <= 0xe9f) || # 2828 (c >= 0xea1 && c <= 0xea3) || # 2831 (c == 0xea5) || # 2832 (c == 0xea7) || # 2833 (c >= 0xeaa && c <= 0xeab) || # 2835 (c >= 0xead && c <= 0xeb9) || # 2848 (c >= 0xebb && c <= 0xebd) || # 2851 (c >= 0xec0 && c <= 0xec4) || # 2856 (c == 0xec6) || # 2857 (c >= 0xec8 && c <= 0xecd) || # 2863 (c >= 0xed0 && c <= 0xed9) || # 2873 (c >= 0xedc && c <= 0xedf) || # 2877 (c == 0xf00) || # 2878 (c >= 0xf18 && c <= 0xf19) || # 2880 (c >= 0xf20 && c <= 0xf29) || # 2890 (c == 0xf35) || # 2891 (c == 0xf37) || # 2892 (c == 0xf39) || # 2893 (c >= 0xf3e && c <= 0xf47) || # 2903 (c >= 0xf49 && c <= 0xf6c) || # 2939 (c >= 0xf71 && c <= 0xf84) || # 2959 (c >= 0xf86 && c <= 0xf97) || # 2977 (c >= 0xf99 && c <= 0xfbc) || # 3013 (c == 0xfc6) || # 3014 (c >= 0x1000 && c <= 0x1049) || # 3088 (c >= 0x1050 && c <= 0x109d) || # 3166 (c >= 0x10a0 && c <= 0x10c5) || # 3204 (c == 0x10c7) || # 3205 (c == 0x10cd) || # 3206 (c >= 0x10d0 && c <= 0x10fa) || # 3249 (c >= 0x10fc && c <= 0x1248) || # 3582 (c >= 0x124a && c <= 0x124d) || # 3586 (c >= 0x1250 && c <= 0x1256) || # 3593 (c == 0x1258) || # 3594 (c >= 0x125a && c <= 0x125d) || # 3598 (c >= 0x1260 && c <= 0x1288) || # 3639 (c >= 0x128a && c <= 0x128d) || # 3643 (c >= 0x1290 && c <= 0x12b0) || # 3676 (c >= 0x12b2 && c <= 0x12b5) || # 3680 (c >= 0x12b8 && c <= 0x12be) || # 3687 (c == 0x12c0) || # 3688 (c >= 0x12c2 && c <= 0x12c5) || # 3692 (c >= 0x12c8 && c <= 0x12d6) || # 3707 (c >= 0x12d8 && c <= 0x1310) || # 3764 (c >= 0x1312 && c <= 0x1315) || # 3768 (c >= 0x1318 && c <= 0x135a) || # 3835 (c >= 0x135d && c <= 0x135f) || # 3838 (c >= 0x1380 && c <= 0x138f) || # 3854 (c >= 0x13a0 && c <= 0x13f4) || # 3939 (c >= 0x1401 && c <= 0x166c) || # 4559 (c >= 0x166f && c <= 0x167f) || # 4576 (c >= 0x1681 && c <= 0x169a) || # 4602 (c >= 0x16a0 && c <= 0x16ea) || # 4677 (c >= 0x16ee && c <= 0x16f8) || # 4688 (c >= 0x1700 && c <= 0x170c) || # 4701 (c >= 0x170e && c <= 0x1714) || # 4708 (c >= 0x1720 && c <= 0x1734) || # 4729 (c >= 0x1740 && c <= 0x1753) || # 4749 (c >= 0x1760 && c <= 0x176c) || # 4762 (c >= 0x176e && c <= 0x1770) || # 4765 (c >= 0x1772 && c <= 0x1773) || # 4767 (c >= 0x1780 && c <= 0x17d3) || # 4851 (c == 0x17d7) || # 4852 (c >= 0x17dc && c <= 0x17dd) || # 4854 (c >= 0x17e0 && c <= 0x17e9) || # 4864 (c >= 0x180b && c <= 0x180d) || # 4867 (c >= 0x1810 && c <= 0x1819) || # 4877 (c >= 0x1820 && c <= 0x1877) || # 4965 (c >= 0x1880 && c <= 0x18aa) || # 5008 (c >= 0x18b0 && c <= 0x18f5) || # 5078 (c >= 0x1900 && c <= 0x191e) || # 5109 (c >= 0x1920 && c <= 0x192b) || # 5121 (c >= 0x1930 && c <= 0x193b) || # 5133 (c >= 0x1946 && c <= 0x196d) || # 5173 (c >= 0x1970 && c <= 0x1974) || # 5178 (c >= 0x1980 && c <= 0x19ab) || # 5222 (c >= 0x19b0 && c <= 0x19c9) || # 5248 (c >= 0x19d0 && c <= 0x19d9) || # 5258 (c >= 0x1a00 && c <= 0x1a1b) || # 5286 (c >= 0x1a20 && c <= 0x1a5e) || # 5349 (c >= 0x1a60 && c <= 0x1a7c) || # 5378 (c >= 0x1a7f && c <= 0x1a89) || # 5389 (c >= 0x1a90 && c <= 0x1a99) || # 5399 (c == 0x1aa7) || # 5400 (c >= 0x1ab0 && c <= 0x1abd) || # 5414 (c >= 0x1b00 && c <= 0x1b4b) || # 5490 (c >= 0x1b50 && c <= 0x1b59) || # 5500 (c >= 0x1b6b && c <= 0x1b73) || # 5509 (c >= 0x1b80 && c <= 0x1bf3) || # 5625 (c >= 0x1c00 && c <= 0x1c37) || # 5681 (c >= 0x1c40 && c <= 0x1c49) || # 5691 (c >= 0x1c4d && c <= 0x1c7d) || # 5740 (c >= 0x1cd0 && c <= 0x1cd2) || # 5743 (c >= 0x1cd4 && c <= 0x1cf6) || # 5778 (c >= 0x1cf8 && c <= 0x1cf9) || # 5780 (c >= 0x1d00 && c <= 0x1df5) || # 6026 (c >= 0x1dfc && c <= 0x1f15) || # 6308 (c >= 0x1f18 && c <= 0x1f1d) || # 6314 (c >= 0x1f20 && c <= 0x1f45) || # 6352 (c >= 0x1f48 && c <= 0x1f4d) || # 6358 (c >= 0x1f50 && c <= 0x1f57) || # 6366 (c == 0x1f59) || # 6367 (c == 0x1f5b) || # 6368 (c == 0x1f5d) || # 6369 (c >= 0x1f5f && c <= 0x1f7d) || # 6400 (c >= 0x1f80 && c <= 0x1fb4) || # 6453 (c >= 0x1fb6 && c <= 0x1fbc) || # 6460 (c == 0x1fbe) || # 6461 (c >= 0x1fc2 && c <= 0x1fc4) || # 6464 (c >= 0x1fc6 && c <= 0x1fcc) || # 6471 (c >= 0x1fd0 && c <= 0x1fd3) || # 6475 (c >= 0x1fd6 && c <= 0x1fdb) || # 6481 (c >= 0x1fe0 && c <= 0x1fec) || # 6494 (c >= 0x1ff2 && c <= 0x1ff4) || # 6497 (c >= 0x1ff6 && c <= 0x1ffc) || # 6504 (c >= 0x203f && c <= 0x2040) || # 6506 (c == 0x2054) || # 6507 (c == 0x2071) || # 6508 (c == 0x207f) || # 6509 (c >= 0x2090 && c <= 0x209c) || # 6522 (c >= 0x20d0 && c <= 0x20dc) || # 6535 (c == 0x20e1) || # 6536 (c >= 0x20e5 && c <= 0x20f0) || # 6548 (c == 0x2102) || # 6549 (c == 0x2107) || # 6550 (c >= 0x210a && c <= 0x2113) || # 6560 (c == 0x2115) || # 6561 (c >= 0x2119 && c <= 0x211d) || # 6566 (c == 0x2124) || # 6567 (c == 0x2126) || # 6568 (c == 0x2128) || # 6569 (c >= 0x212a && c <= 0x212d) || # 6573 (c >= 0x212f && c <= 0x2139) || # 6584 (c >= 0x213c && c <= 0x213f) || # 6588 (c >= 0x2145 && c <= 0x2149) || # 6593 (c == 0x214e) || # 6594 (c >= 0x2160 && c <= 0x2188) || # 6635 (c >= 0x2c00 && c <= 0x2c2e) || # 6682 (c >= 0x2c30 && c <= 0x2c5e) || # 6729 (c >= 0x2c60 && c <= 0x2ce4) || # 6862 (c >= 0x2ceb && c <= 0x2cf3) || # 6871 (c >= 0x2d00 && c <= 0x2d25) || # 6909 (c == 0x2d27) || # 6910 (c == 0x2d2d) || # 6911 (c >= 0x2d30 && c <= 0x2d67) || # 6967 (c == 0x2d6f) || # 6968 (c >= 0x2d7f && c <= 0x2d96) || # 6992 (c >= 0x2da0 && c <= 0x2da6) || # 6999 (c >= 0x2da8 && c <= 0x2dae) || # 7006 (c >= 0x2db0 && c <= 0x2db6) || # 7013 (c >= 0x2db8 && c <= 0x2dbe) || # 7020 (c >= 0x2dc0 && c <= 0x2dc6) || # 7027 (c >= 0x2dc8 && c <= 0x2dce) || # 7034 (c >= 0x2dd0 && c <= 0x2dd6) || # 7041 (c >= 0x2dd8 && c <= 0x2dde) || # 7048 (c >= 0x2de0 && c <= 0x2dff) || # 7080 (c == 0x2e2f) || # 7081 (c >= 0x3005 && c <= 0x3007) || # 7084 (c >= 0x3021 && c <= 0x302f) || # 7099 (c >= 0x3031 && c <= 0x3035) || # 7104 (c >= 0x3038 && c <= 0x303c) || # 7109 (c >= 0x3041 && c <= 0x3096) || # 7195 (c >= 0x3099 && c <= 0x309a) || # 7197 (c >= 0x309d && c <= 0x309f) || # 7200 (c >= 0x30a1 && c <= 0x30fa) || # 7290 (c >= 0x30fc && c <= 0x30ff) || # 7294 (c >= 0x3105 && c <= 0x312d) || # 7335 (c >= 0x3131 && c <= 0x318e) || # 7429 (c >= 0x31a0 && c <= 0x31ba) || # 7456 (c >= 0x31f0 && c <= 0x31ff) || # 7472 (c == 0x3400) || # 7473 (c == 0x4db5) || # 7474 (c == 0x4e00) || # 7475 (c == 0x9fcc) || # 7476 (c >= 0xa000 && c <= 0xa48c) || # 8641 (c >= 0xa4d0 && c <= 0xa4fd) || # 8687 (c >= 0xa500 && c <= 0xa60c) || # 8956 (c >= 0xa610 && c <= 0xa62b) || # 8984 (c >= 0xa640 && c <= 0xa66f) || # 9032 (c >= 0xa674 && c <= 0xa67d) || # 9042 (c >= 0xa67f && c <= 0xa69d) || # 9073 (c >= 0xa69f && c <= 0xa6f1) || # 9156 (c >= 0xa717 && c <= 0xa71f) || # 9165 (c >= 0xa722 && c <= 0xa788) || # 9268 (c >= 0xa78b && c <= 0xa78e) || # 9272 (c >= 0xa790 && c <= 0xa7ad) || # 9302 (c >= 0xa7b0 && c <= 0xa7b1) || # 9304 (c >= 0xa7f7 && c <= 0xa827) || # 9353 (c >= 0xa840 && c <= 0xa873) || # 9405 (c >= 0xa880 && c <= 0xa8c4) || # 9474 (c >= 0xa8d0 && c <= 0xa8d9) || # 9484 (c >= 0xa8e0 && c <= 0xa8f7) || # 9508 (c == 0xa8fb) || # 9509 (c >= 0xa900 && c <= 0xa92d) || # 9555 (c >= 0xa930 && c <= 0xa953) || # 9591 (c >= 0xa960 && c <= 0xa97c) || # 9620 (c >= 0xa980 && c <= 0xa9c0) || # 9685 (c >= 0xa9cf && c <= 0xa9d9) || # 9696 (c >= 0xa9e0 && c <= 0xa9fe) || # 9727 (c >= 0xaa00 && c <= 0xaa36) || # 9782 (c >= 0xaa40 && c <= 0xaa4d) || # 9796 (c >= 0xaa50 && c <= 0xaa59) || # 9806 (c >= 0xaa60 && c <= 0xaa76) || # 9829 (c >= 0xaa7a && c <= 0xaac2) || # 9902 (c >= 0xaadb && c <= 0xaadd) || # 9905 (c >= 0xaae0 && c <= 0xaaef) || # 9921 (c >= 0xaaf2 && c <= 0xaaf6) || # 9926 (c >= 0xab01 && c <= 0xab06) || # 9932 (c >= 0xab09 && c <= 0xab0e) || # 9938 (c >= 0xab11 && c <= 0xab16) || # 9944 (c >= 0xab20 && c <= 0xab26) || # 9951 (c >= 0xab28 && c <= 0xab2e) || # 9958 (c >= 0xab30 && c <= 0xab5a) || # 10001 (c >= 0xab5c && c <= 0xab5f) || # 10005 (c >= 0xab64 && c <= 0xab65) || # 10007 (c >= 0xabc0 && c <= 0xabea) || # 10050 (c >= 0xabec && c <= 0xabed) || # 10052 (c >= 0xabf0 && c <= 0xabf9) || # 10062 (c == 0xac00) || # 10063 (c == 0xd7a3) || # 10064 (c >= 0xd7b0 && c <= 0xd7c6) || # 10087 (c >= 0xd7cb && c <= 0xd7fb) || # 10136 (c >= 0xf900 && c <= 0xfa6d) || # 10502 (c >= 0xfa70 && c <= 0xfad9) || # 10608 (c >= 0xfb00 && c <= 0xfb06) || # 10615 (c >= 0xfb13 && c <= 0xfb17) || # 10620 (c >= 0xfb1d && c <= 0xfb28) || # 10632 (c >= 0xfb2a && c <= 0xfb36) || # 10645 (c >= 0xfb38 && c <= 0xfb3c) || # 10650 (c == 0xfb3e) || # 10651 (c >= 0xfb40 && c <= 0xfb41) || # 10653 (c >= 0xfb43 && c <= 0xfb44) || # 10655 (c >= 0xfb46 && c <= 0xfbb1) || # 10763 (c >= 0xfbd3 && c <= 0xfd3d) || # 11126 (c >= 0xfd50 && c <= 0xfd8f) || # 11190 (c >= 0xfd92 && c <= 0xfdc7) || # 11244 (c >= 0xfdf0 && c <= 0xfdfb) || # 11256 (c >= 0xfe00 && c <= 0xfe0f) || # 11272 (c >= 0xfe20 && c <= 0xfe2d) || # 11286 (c >= 0xfe33 && c <= 0xfe34) || # 11288 (c >= 0xfe4d && c <= 0xfe4f) || # 11291 (c >= 0xfe70 && c <= 0xfe74) || # 11296 (c >= 0xfe76 && c <= 0xfefc) || # 11431 (c >= 0xff10 && c <= 0xff19) || # 11441 (c >= 0xff21 && c <= 0xff3a) || # 11467 (c == 0xff3f) || # 11468 (c >= 0xff41 && c <= 0xff5a) || # 11494 (c >= 0xff66 && c <= 0xffbe) || # 11583 (c >= 0xffc2 && c <= 0xffc7) || # 11589 (c >= 0xffca && c <= 0xffcf) || # 11595 (c >= 0xffd2 && c <= 0xffd7) || # 11601 (c >= 0xffda && c <= 0xffdc) || # 11604 (c >= 0x10000 && c <= 0x1000b) || # 11616 (c >= 0x1000d && c <= 0x10026) || # 11642 (c >= 0x10028 && c <= 0x1003a) || # 11661 (c >= 0x1003c && c <= 0x1003d) || # 11663 (c >= 0x1003f && c <= 0x1004d) || # 11678 (c >= 0x10050 && c <= 0x1005d) || # 11692 (c >= 0x10080 && c <= 0x100fa) || # 11815 (c >= 0x10140 && c <= 0x10174) || # 11868 (c == 0x101fd) || # 11869 (c >= 0x10280 && c <= 0x1029c) || # 11898 (c >= 0x102a0 && c <= 0x102d0) || # 11947 (c == 0x102e0) || # 11948 (c >= 0x10300 && c <= 0x1031f) || # 11980 (c >= 0x10330 && c <= 0x1034a) || # 12007 (c >= 0x10350 && c <= 0x1037a) || # 12050 (c >= 0x10380 && c <= 0x1039d) || # 12080 (c >= 0x103a0 && c <= 0x103c3) || # 12116 (c >= 0x103c8 && c <= 0x103cf) || # 12124 (c >= 0x103d1 && c <= 0x103d5) || # 12129 (c >= 0x10400 && c <= 0x1049d) || # 12287 (c >= 0x104a0 && c <= 0x104a9) || # 12297 (c >= 0x10500 && c <= 0x10527) || # 12337 (c >= 0x10530 && c <= 0x10563) || # 12389 (c >= 0x10600 && c <= 0x10736) || # 12700 (c >= 0x10740 && c <= 0x10755) || # 12722 (c >= 0x10760 && c <= 0x10767) || # 12730 (c >= 0x10800 && c <= 0x10805) || # 12736 (c == 0x10808) || # 12737 (c >= 0x1080a && c <= 0x10835) || # 12781 (c >= 0x10837 && c <= 0x10838) || # 12783 (c == 0x1083c) || # 12784 (c >= 0x1083f && c <= 0x10855) || # 12807 (c >= 0x10860 && c <= 0x10876) || # 12830 (c >= 0x10880 && c <= 0x1089e) || # 12861 (c >= 0x10900 && c <= 0x10915) || # 12883 (c >= 0x10920 && c <= 0x10939) || # 12909 (c >= 0x10980 && c <= 0x109b7) || # 12965 (c >= 0x109be && c <= 0x109bf) || # 12967 (c >= 0x10a00 && c <= 0x10a03) || # 12971 (c >= 0x10a05 && c <= 0x10a06) || # 12973 (c >= 0x10a0c && c <= 0x10a13) || # 12981 (c >= 0x10a15 && c <= 0x10a17) || # 12984 (c >= 0x10a19 && c <= 0x10a33) || # 13011 (c >= 0x10a38 && c <= 0x10a3a) || # 13014 (c == 0x10a3f) || # 13015 (c >= 0x10a60 && c <= 0x10a7c) || # 13044 (c >= 0x10a80 && c <= 0x10a9c) || # 13073 (c >= 0x10ac0 && c <= 0x10ac7) || # 13081 (c >= 0x10ac9 && c <= 0x10ae6) || # 13111 (c >= 0x10b00 && c <= 0x10b35) || # 13165 (c >= 0x10b40 && c <= 0x10b55) || # 13187 (c >= 0x10b60 && c <= 0x10b72) || # 13206 (c >= 0x10b80 && c <= 0x10b91) || # 13224 (c >= 0x10c00 && c <= 0x10c48) || # 13297 (c >= 0x11000 && c <= 0x11046) || # 13368 (c >= 0x11066 && c <= 0x1106f) || # 13378 (c >= 0x1107f && c <= 0x110ba) || # 13438 (c >= 0x110d0 && c <= 0x110e8) || # 13463 (c >= 0x110f0 && c <= 0x110f9) || # 13473 (c >= 0x11100 && c <= 0x11134) || # 13526 (c >= 0x11136 && c <= 0x1113f) || # 13536 (c >= 0x11150 && c <= 0x11173) || # 13572 (c == 0x11176) || # 13573 (c >= 0x11180 && c <= 0x111c4) || # 13642 (c >= 0x111d0 && c <= 0x111da) || # 13653 (c >= 0x11200 && c <= 0x11211) || # 13671 (c >= 0x11213 && c <= 0x11237) || # 13708 (c >= 0x112b0 && c <= 0x112ea) || # 13767 (c >= 0x112f0 && c <= 0x112f9) || # 13777 (c >= 0x11301 && c <= 0x11303) || # 13780 (c >= 0x11305 && c <= 0x1130c) || # 13788 (c >= 0x1130f && c <= 0x11310) || # 13790 (c >= 0x11313 && c <= 0x11328) || # 13812 (c >= 0x1132a && c <= 0x11330) || # 13819 (c >= 0x11332 && c <= 0x11333) || # 13821 (c >= 0x11335 && c <= 0x11339) || # 13826 (c >= 0x1133c && c <= 0x11344) || # 13835 (c >= 0x11347 && c <= 0x11348) || # 13837 (c >= 0x1134b && c <= 0x1134d) || # 13840 (c == 0x11357) || # 13841 (c >= 0x1135d && c <= 0x11363) || # 13848 (c >= 0x11366 && c <= 0x1136c) || # 13855 (c >= 0x11370 && c <= 0x11374) || # 13860 (c >= 0x11480 && c <= 0x114c5) || # 13930 (c == 0x114c7) || # 13931 (c >= 0x114d0 && c <= 0x114d9) || # 13941 (c >= 0x11580 && c <= 0x115b5) || # 13995 (c >= 0x115b8 && c <= 0x115c0) || # 14004 (c >= 0x11600 && c <= 0x11640) || # 14069 (c == 0x11644) || # 14070 (c >= 0x11650 && c <= 0x11659) || # 14080 (c >= 0x11680 && c <= 0x116b7) || # 14136 (c >= 0x116c0 && c <= 0x116c9) || # 14146 (c >= 0x118a0 && c <= 0x118e9) || # 14220 (c == 0x118ff) || # 14221 (c >= 0x11ac0 && c <= 0x11af8) || # 14278 (c >= 0x12000 && c <= 0x12398) || # 15199 (c >= 0x12400 && c <= 0x1246e) || # 15310 (c >= 0x13000 && c <= 0x1342e) || # 16381 (c >= 0x16800 && c <= 0x16a38) || # 16950 (c >= 0x16a40 && c <= 0x16a5e) || # 16981 (c >= 0x16a60 && c <= 0x16a69) || # 16991 (c >= 0x16ad0 && c <= 0x16aed) || # 17021 (c >= 0x16af0 && c <= 0x16af4) || # 17026 (c >= 0x16b00 && c <= 0x16b36) || # 17081 (c >= 0x16b40 && c <= 0x16b43) || # 17085 (c >= 0x16b50 && c <= 0x16b59) || # 17095 (c >= 0x16b63 && c <= 0x16b77) || # 17116 (c >= 0x16b7d && c <= 0x16b8f) || # 17135 (c >= 0x16f00 && c <= 0x16f44) || # 17204 (c >= 0x16f50 && c <= 0x16f7e) || # 17251 (c >= 0x16f8f && c <= 0x16f9f) || # 17268 (c >= 0x1b000 && c <= 0x1b001) || # 17270 (c >= 0x1bc00 && c <= 0x1bc6a) || # 17377 (c >= 0x1bc70 && c <= 0x1bc7c) || # 17390 (c >= 0x1bc80 && c <= 0x1bc88) || # 17399 (c >= 0x1bc90 && c <= 0x1bc99) || # 17409 (c >= 0x1bc9d && c <= 0x1bc9e) || # 17411 (c >= 0x1d165 && c <= 0x1d169) || # 17416 (c >= 0x1d16d && c <= 0x1d172) || # 17422 (c >= 0x1d17b && c <= 0x1d182) || # 17430 (c >= 0x1d185 && c <= 0x1d18b) || # 17437 (c >= 0x1d1aa && c <= 0x1d1ad) || # 17441 (c >= 0x1d242 && c <= 0x1d244) || # 17444 (c >= 0x1d400 && c <= 0x1d454) || # 17529 (c >= 0x1d456 && c <= 0x1d49c) || # 17600 (c >= 0x1d49e && c <= 0x1d49f) || # 17602 (c == 0x1d4a2) || # 17603 (c >= 0x1d4a5 && c <= 0x1d4a6) || # 17605 (c >= 0x1d4a9 && c <= 0x1d4ac) || # 17609 (c >= 0x1d4ae && c <= 0x1d4b9) || # 17621 (c == 0x1d4bb) || # 17622 (c >= 0x1d4bd && c <= 0x1d4c3) || # 17629 (c >= 0x1d4c5 && c <= 0x1d505) || # 17694 (c >= 0x1d507 && c <= 0x1d50a) || # 17698 (c >= 0x1d50d && c <= 0x1d514) || # 17706 (c >= 0x1d516 && c <= 0x1d51c) || # 17713 (c >= 0x1d51e && c <= 0x1d539) || # 17741 (c >= 0x1d53b && c <= 0x1d53e) || # 17745 (c >= 0x1d540 && c <= 0x1d544) || # 17750 (c == 0x1d546) || # 17751 (c >= 0x1d54a && c <= 0x1d550) || # 17758 (c >= 0x1d552 && c <= 0x1d6a5) || # 18098 (c >= 0x1d6a8 && c <= 0x1d6c0) || # 18123 (c >= 0x1d6c2 && c <= 0x1d6da) || # 18148 (c >= 0x1d6dc && c <= 0x1d6fa) || # 18179 (c >= 0x1d6fc && c <= 0x1d714) || # 18204 (c >= 0x1d716 && c <= 0x1d734) || # 18235 (c >= 0x1d736 && c <= 0x1d74e) || # 18260 (c >= 0x1d750 && c <= 0x1d76e) || # 18291 (c >= 0x1d770 && c <= 0x1d788) || # 18316 (c >= 0x1d78a && c <= 0x1d7a8) || # 18347 (c >= 0x1d7aa && c <= 0x1d7c2) || # 18372 (c >= 0x1d7c4 && c <= 0x1d7cb) || # 18380 (c >= 0x1d7ce && c <= 0x1d7ff) || # 18430 (c >= 0x1e800 && c <= 0x1e8c4) || # 18627 (c >= 0x1e8d0 && c <= 0x1e8d6) || # 18634 (c >= 0x1ee00 && c <= 0x1ee03) || # 18638 (c >= 0x1ee05 && c <= 0x1ee1f) || # 18665 (c >= 0x1ee21 && c <= 0x1ee22) || # 18667 (c == 0x1ee24) || # 18668 (c == 0x1ee27) || # 18669 (c >= 0x1ee29 && c <= 0x1ee32) || # 18679 (c >= 0x1ee34 && c <= 0x1ee37) || # 18683 (c == 0x1ee39) || # 18684 (c == 0x1ee3b) || # 18685 (c == 0x1ee42) || # 18686 (c == 0x1ee47) || # 18687 (c == 0x1ee49) || # 18688 (c == 0x1ee4b) || # 18689 (c >= 0x1ee4d && c <= 0x1ee4f) || # 18692 (c >= 0x1ee51 && c <= 0x1ee52) || # 18694 (c == 0x1ee54) || # 18695 (c == 0x1ee57) || # 18696 (c == 0x1ee59) || # 18697 (c == 0x1ee5b) || # 18698 (c == 0x1ee5d) || # 18699 (c == 0x1ee5f) || # 18700 (c >= 0x1ee61 && c <= 0x1ee62) || # 18702 (c == 0x1ee64) || # 18703 (c >= 0x1ee67 && c <= 0x1ee6a) || # 18707 (c >= 0x1ee6c && c <= 0x1ee72) || # 18714 (c >= 0x1ee74 && c <= 0x1ee77) || # 18718 (c >= 0x1ee79 && c <= 0x1ee7c) || # 18722 (c == 0x1ee7e) || # 18723 (c >= 0x1ee80 && c <= 0x1ee89) || # 18733 (c >= 0x1ee8b && c <= 0x1ee9b) || # 18750 (c >= 0x1eea1 && c <= 0x1eea3) || # 18753 (c >= 0x1eea5 && c <= 0x1eea9) || # 18758 (c >= 0x1eeab && c <= 0x1eebb) || # 18775 (c == 0x20000) || # 18776 (c == 0x2a6d6) || # 18777 (c == 0x2a700) || # 18778 (c == 0x2b734) || # 18779 (c == 0x2b740) || # 18780 (c == 0x2b81d) || # 18781 (c >= 0x2f800 && c <= 0x2fa1d) || # 19323 (c >= 0xe0100 && c <= 0xe01ef) || # 19563 c == 0x200d || c == 0x200c return true end end def idname?(name) return false if name.length == 0 s = name.codepoints return false unless identifier_start?(s[0]) s.unshift s.each do |code| return false unless identifier_part?(code) end return true end end end