lookup.js 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. // Generated code.
  2. function isAmbiguous(x) {
  3. return x === 0xA1
  4. || x === 0xA4
  5. || x === 0xA7
  6. || x === 0xA8
  7. || x === 0xAA
  8. || x === 0xAD
  9. || x === 0xAE
  10. || x >= 0xB0 && x <= 0xB4
  11. || x >= 0xB6 && x <= 0xBA
  12. || x >= 0xBC && x <= 0xBF
  13. || x === 0xC6
  14. || x === 0xD0
  15. || x === 0xD7
  16. || x === 0xD8
  17. || x >= 0xDE && x <= 0xE1
  18. || x === 0xE6
  19. || x >= 0xE8 && x <= 0xEA
  20. || x === 0xEC
  21. || x === 0xED
  22. || x === 0xF0
  23. || x === 0xF2
  24. || x === 0xF3
  25. || x >= 0xF7 && x <= 0xFA
  26. || x === 0xFC
  27. || x === 0xFE
  28. || x === 0x101
  29. || x === 0x111
  30. || x === 0x113
  31. || x === 0x11B
  32. || x === 0x126
  33. || x === 0x127
  34. || x === 0x12B
  35. || x >= 0x131 && x <= 0x133
  36. || x === 0x138
  37. || x >= 0x13F && x <= 0x142
  38. || x === 0x144
  39. || x >= 0x148 && x <= 0x14B
  40. || x === 0x14D
  41. || x === 0x152
  42. || x === 0x153
  43. || x === 0x166
  44. || x === 0x167
  45. || x === 0x16B
  46. || x === 0x1CE
  47. || x === 0x1D0
  48. || x === 0x1D2
  49. || x === 0x1D4
  50. || x === 0x1D6
  51. || x === 0x1D8
  52. || x === 0x1DA
  53. || x === 0x1DC
  54. || x === 0x251
  55. || x === 0x261
  56. || x === 0x2C4
  57. || x === 0x2C7
  58. || x >= 0x2C9 && x <= 0x2CB
  59. || x === 0x2CD
  60. || x === 0x2D0
  61. || x >= 0x2D8 && x <= 0x2DB
  62. || x === 0x2DD
  63. || x === 0x2DF
  64. || x >= 0x300 && x <= 0x36F
  65. || x >= 0x391 && x <= 0x3A1
  66. || x >= 0x3A3 && x <= 0x3A9
  67. || x >= 0x3B1 && x <= 0x3C1
  68. || x >= 0x3C3 && x <= 0x3C9
  69. || x === 0x401
  70. || x >= 0x410 && x <= 0x44F
  71. || x === 0x451
  72. || x === 0x2010
  73. || x >= 0x2013 && x <= 0x2016
  74. || x === 0x2018
  75. || x === 0x2019
  76. || x === 0x201C
  77. || x === 0x201D
  78. || x >= 0x2020 && x <= 0x2022
  79. || x >= 0x2024 && x <= 0x2027
  80. || x === 0x2030
  81. || x === 0x2032
  82. || x === 0x2033
  83. || x === 0x2035
  84. || x === 0x203B
  85. || x === 0x203E
  86. || x === 0x2074
  87. || x === 0x207F
  88. || x >= 0x2081 && x <= 0x2084
  89. || x === 0x20AC
  90. || x === 0x2103
  91. || x === 0x2105
  92. || x === 0x2109
  93. || x === 0x2113
  94. || x === 0x2116
  95. || x === 0x2121
  96. || x === 0x2122
  97. || x === 0x2126
  98. || x === 0x212B
  99. || x === 0x2153
  100. || x === 0x2154
  101. || x >= 0x215B && x <= 0x215E
  102. || x >= 0x2160 && x <= 0x216B
  103. || x >= 0x2170 && x <= 0x2179
  104. || x === 0x2189
  105. || x >= 0x2190 && x <= 0x2199
  106. || x === 0x21B8
  107. || x === 0x21B9
  108. || x === 0x21D2
  109. || x === 0x21D4
  110. || x === 0x21E7
  111. || x === 0x2200
  112. || x === 0x2202
  113. || x === 0x2203
  114. || x === 0x2207
  115. || x === 0x2208
  116. || x === 0x220B
  117. || x === 0x220F
  118. || x === 0x2211
  119. || x === 0x2215
  120. || x === 0x221A
  121. || x >= 0x221D && x <= 0x2220
  122. || x === 0x2223
  123. || x === 0x2225
  124. || x >= 0x2227 && x <= 0x222C
  125. || x === 0x222E
  126. || x >= 0x2234 && x <= 0x2237
  127. || x === 0x223C
  128. || x === 0x223D
  129. || x === 0x2248
  130. || x === 0x224C
  131. || x === 0x2252
  132. || x === 0x2260
  133. || x === 0x2261
  134. || x >= 0x2264 && x <= 0x2267
  135. || x === 0x226A
  136. || x === 0x226B
  137. || x === 0x226E
  138. || x === 0x226F
  139. || x === 0x2282
  140. || x === 0x2283
  141. || x === 0x2286
  142. || x === 0x2287
  143. || x === 0x2295
  144. || x === 0x2299
  145. || x === 0x22A5
  146. || x === 0x22BF
  147. || x === 0x2312
  148. || x >= 0x2460 && x <= 0x24E9
  149. || x >= 0x24EB && x <= 0x254B
  150. || x >= 0x2550 && x <= 0x2573
  151. || x >= 0x2580 && x <= 0x258F
  152. || x >= 0x2592 && x <= 0x2595
  153. || x === 0x25A0
  154. || x === 0x25A1
  155. || x >= 0x25A3 && x <= 0x25A9
  156. || x === 0x25B2
  157. || x === 0x25B3
  158. || x === 0x25B6
  159. || x === 0x25B7
  160. || x === 0x25BC
  161. || x === 0x25BD
  162. || x === 0x25C0
  163. || x === 0x25C1
  164. || x >= 0x25C6 && x <= 0x25C8
  165. || x === 0x25CB
  166. || x >= 0x25CE && x <= 0x25D1
  167. || x >= 0x25E2 && x <= 0x25E5
  168. || x === 0x25EF
  169. || x === 0x2605
  170. || x === 0x2606
  171. || x === 0x2609
  172. || x === 0x260E
  173. || x === 0x260F
  174. || x === 0x261C
  175. || x === 0x261E
  176. || x === 0x2640
  177. || x === 0x2642
  178. || x === 0x2660
  179. || x === 0x2661
  180. || x >= 0x2663 && x <= 0x2665
  181. || x >= 0x2667 && x <= 0x266A
  182. || x === 0x266C
  183. || x === 0x266D
  184. || x === 0x266F
  185. || x === 0x269E
  186. || x === 0x269F
  187. || x === 0x26BF
  188. || x >= 0x26C6 && x <= 0x26CD
  189. || x >= 0x26CF && x <= 0x26D3
  190. || x >= 0x26D5 && x <= 0x26E1
  191. || x === 0x26E3
  192. || x === 0x26E8
  193. || x === 0x26E9
  194. || x >= 0x26EB && x <= 0x26F1
  195. || x === 0x26F4
  196. || x >= 0x26F6 && x <= 0x26F9
  197. || x === 0x26FB
  198. || x === 0x26FC
  199. || x === 0x26FE
  200. || x === 0x26FF
  201. || x === 0x273D
  202. || x >= 0x2776 && x <= 0x277F
  203. || x >= 0x2B56 && x <= 0x2B59
  204. || x >= 0x3248 && x <= 0x324F
  205. || x >= 0xE000 && x <= 0xF8FF
  206. || x >= 0xFE00 && x <= 0xFE0F
  207. || x === 0xFFFD
  208. || x >= 0x1F100 && x <= 0x1F10A
  209. || x >= 0x1F110 && x <= 0x1F12D
  210. || x >= 0x1F130 && x <= 0x1F169
  211. || x >= 0x1F170 && x <= 0x1F18D
  212. || x === 0x1F18F
  213. || x === 0x1F190
  214. || x >= 0x1F19B && x <= 0x1F1AC
  215. || x >= 0xE0100 && x <= 0xE01EF
  216. || x >= 0xF0000 && x <= 0xFFFFD
  217. || x >= 0x100000 && x <= 0x10FFFD;
  218. }
  219. function isFullWidth(x) {
  220. return x === 0x3000
  221. || x >= 0xFF01 && x <= 0xFF60
  222. || x >= 0xFFE0 && x <= 0xFFE6;
  223. }
  224. function isWide(x) {
  225. return x >= 0x1100 && x <= 0x115F
  226. || x === 0x231A
  227. || x === 0x231B
  228. || x === 0x2329
  229. || x === 0x232A
  230. || x >= 0x23E9 && x <= 0x23EC
  231. || x === 0x23F0
  232. || x === 0x23F3
  233. || x === 0x25FD
  234. || x === 0x25FE
  235. || x === 0x2614
  236. || x === 0x2615
  237. || x >= 0x2630 && x <= 0x2637
  238. || x >= 0x2648 && x <= 0x2653
  239. || x === 0x267F
  240. || x >= 0x268A && x <= 0x268F
  241. || x === 0x2693
  242. || x === 0x26A1
  243. || x === 0x26AA
  244. || x === 0x26AB
  245. || x === 0x26BD
  246. || x === 0x26BE
  247. || x === 0x26C4
  248. || x === 0x26C5
  249. || x === 0x26CE
  250. || x === 0x26D4
  251. || x === 0x26EA
  252. || x === 0x26F2
  253. || x === 0x26F3
  254. || x === 0x26F5
  255. || x === 0x26FA
  256. || x === 0x26FD
  257. || x === 0x2705
  258. || x === 0x270A
  259. || x === 0x270B
  260. || x === 0x2728
  261. || x === 0x274C
  262. || x === 0x274E
  263. || x >= 0x2753 && x <= 0x2755
  264. || x === 0x2757
  265. || x >= 0x2795 && x <= 0x2797
  266. || x === 0x27B0
  267. || x === 0x27BF
  268. || x === 0x2B1B
  269. || x === 0x2B1C
  270. || x === 0x2B50
  271. || x === 0x2B55
  272. || x >= 0x2E80 && x <= 0x2E99
  273. || x >= 0x2E9B && x <= 0x2EF3
  274. || x >= 0x2F00 && x <= 0x2FD5
  275. || x >= 0x2FF0 && x <= 0x2FFF
  276. || x >= 0x3001 && x <= 0x303E
  277. || x >= 0x3041 && x <= 0x3096
  278. || x >= 0x3099 && x <= 0x30FF
  279. || x >= 0x3105 && x <= 0x312F
  280. || x >= 0x3131 && x <= 0x318E
  281. || x >= 0x3190 && x <= 0x31E5
  282. || x >= 0x31EF && x <= 0x321E
  283. || x >= 0x3220 && x <= 0x3247
  284. || x >= 0x3250 && x <= 0xA48C
  285. || x >= 0xA490 && x <= 0xA4C6
  286. || x >= 0xA960 && x <= 0xA97C
  287. || x >= 0xAC00 && x <= 0xD7A3
  288. || x >= 0xF900 && x <= 0xFAFF
  289. || x >= 0xFE10 && x <= 0xFE19
  290. || x >= 0xFE30 && x <= 0xFE52
  291. || x >= 0xFE54 && x <= 0xFE66
  292. || x >= 0xFE68 && x <= 0xFE6B
  293. || x >= 0x16FE0 && x <= 0x16FE4
  294. || x === 0x16FF0
  295. || x === 0x16FF1
  296. || x >= 0x17000 && x <= 0x187F7
  297. || x >= 0x18800 && x <= 0x18CD5
  298. || x >= 0x18CFF && x <= 0x18D08
  299. || x >= 0x1AFF0 && x <= 0x1AFF3
  300. || x >= 0x1AFF5 && x <= 0x1AFFB
  301. || x === 0x1AFFD
  302. || x === 0x1AFFE
  303. || x >= 0x1B000 && x <= 0x1B122
  304. || x === 0x1B132
  305. || x >= 0x1B150 && x <= 0x1B152
  306. || x === 0x1B155
  307. || x >= 0x1B164 && x <= 0x1B167
  308. || x >= 0x1B170 && x <= 0x1B2FB
  309. || x >= 0x1D300 && x <= 0x1D356
  310. || x >= 0x1D360 && x <= 0x1D376
  311. || x === 0x1F004
  312. || x === 0x1F0CF
  313. || x === 0x1F18E
  314. || x >= 0x1F191 && x <= 0x1F19A
  315. || x >= 0x1F200 && x <= 0x1F202
  316. || x >= 0x1F210 && x <= 0x1F23B
  317. || x >= 0x1F240 && x <= 0x1F248
  318. || x === 0x1F250
  319. || x === 0x1F251
  320. || x >= 0x1F260 && x <= 0x1F265
  321. || x >= 0x1F300 && x <= 0x1F320
  322. || x >= 0x1F32D && x <= 0x1F335
  323. || x >= 0x1F337 && x <= 0x1F37C
  324. || x >= 0x1F37E && x <= 0x1F393
  325. || x >= 0x1F3A0 && x <= 0x1F3CA
  326. || x >= 0x1F3CF && x <= 0x1F3D3
  327. || x >= 0x1F3E0 && x <= 0x1F3F0
  328. || x === 0x1F3F4
  329. || x >= 0x1F3F8 && x <= 0x1F43E
  330. || x === 0x1F440
  331. || x >= 0x1F442 && x <= 0x1F4FC
  332. || x >= 0x1F4FF && x <= 0x1F53D
  333. || x >= 0x1F54B && x <= 0x1F54E
  334. || x >= 0x1F550 && x <= 0x1F567
  335. || x === 0x1F57A
  336. || x === 0x1F595
  337. || x === 0x1F596
  338. || x === 0x1F5A4
  339. || x >= 0x1F5FB && x <= 0x1F64F
  340. || x >= 0x1F680 && x <= 0x1F6C5
  341. || x === 0x1F6CC
  342. || x >= 0x1F6D0 && x <= 0x1F6D2
  343. || x >= 0x1F6D5 && x <= 0x1F6D7
  344. || x >= 0x1F6DC && x <= 0x1F6DF
  345. || x === 0x1F6EB
  346. || x === 0x1F6EC
  347. || x >= 0x1F6F4 && x <= 0x1F6FC
  348. || x >= 0x1F7E0 && x <= 0x1F7EB
  349. || x === 0x1F7F0
  350. || x >= 0x1F90C && x <= 0x1F93A
  351. || x >= 0x1F93C && x <= 0x1F945
  352. || x >= 0x1F947 && x <= 0x1F9FF
  353. || x >= 0x1FA70 && x <= 0x1FA7C
  354. || x >= 0x1FA80 && x <= 0x1FA89
  355. || x >= 0x1FA8F && x <= 0x1FAC6
  356. || x >= 0x1FACE && x <= 0x1FADC
  357. || x >= 0x1FADF && x <= 0x1FAE9
  358. || x >= 0x1FAF0 && x <= 0x1FAF8
  359. || x >= 0x20000 && x <= 0x2FFFD
  360. || x >= 0x30000 && x <= 0x3FFFD;
  361. }
  362. function getCategory(x) {
  363. if (isAmbiguous(x)) return 'ambiguous';
  364. if (isFullWidth(x)) return 'fullwidth';
  365. if (
  366. x === 0x20A9
  367. || x >= 0xFF61 && x <= 0xFFBE
  368. || x >= 0xFFC2 && x <= 0xFFC7
  369. || x >= 0xFFCA && x <= 0xFFCF
  370. || x >= 0xFFD2 && x <= 0xFFD7
  371. || x >= 0xFFDA && x <= 0xFFDC
  372. || x >= 0xFFE8 && x <= 0xFFEE
  373. ) {
  374. return 'halfwidth';
  375. }
  376. if (
  377. x >= 0x20 && x <= 0x7E
  378. || x === 0xA2
  379. || x === 0xA3
  380. || x === 0xA5
  381. || x === 0xA6
  382. || x === 0xAC
  383. || x === 0xAF
  384. || x >= 0x27E6 && x <= 0x27ED
  385. || x === 0x2985
  386. || x === 0x2986
  387. ) {
  388. return 'narrow';
  389. }
  390. if (isWide(x)) return 'wide';
  391. return 'neutral';
  392. }
  393. export {isAmbiguous, isFullWidth, isWide, getCategory};