@delali/narsil-react-native 0.3.1-next.155 → 0.3.1-next.157

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/NOTICE +144 -0
  2. package/NarsilReactNative.podspec +2 -2
  3. package/android/CMakeLists.txt +1 -1
  4. package/cpp/HybridNarsilCoreAnalysis.cpp +277 -0
  5. package/cpp/HybridNarsilCoreImpl.hpp +43 -0
  6. package/cpp/HybridNarsilCoreKeyword.cpp +253 -0
  7. package/cpp/HybridNarsilCoreMath.cpp +47 -0
  8. package/cpp/core/include/narsil_analysis.h +86 -0
  9. package/cpp/core/include/narsil_core.h +1 -1
  10. package/cpp/core/include/narsil_keyword.h +110 -0
  11. package/cpp/core/include/narsil_math.h +36 -0
  12. package/cpp/core/src/analysis/analyse.c +281 -0
  13. package/cpp/core/src/analysis/analyser.h +49 -0
  14. package/cpp/core/src/analysis/languages.c +79 -0
  15. package/cpp/core/src/analysis/languages.h +42 -0
  16. package/cpp/core/src/analysis/normalise.c +242 -0
  17. package/cpp/core/src/analysis/normalise.h +28 -0
  18. package/cpp/core/src/analysis/split.c +183 -0
  19. package/cpp/core/src/analysis/split.h +27 -0
  20. package/cpp/core/src/analysis/stop_words.c +82 -0
  21. package/cpp/core/src/analysis/stop_words.h +19 -0
  22. package/cpp/core/src/analysis/term_cache.c +88 -0
  23. package/cpp/core/src/analysis/term_cache.h +36 -0
  24. package/cpp/core/src/analysis/text.c +161 -0
  25. package/cpp/core/src/analysis/text.h +45 -0
  26. package/cpp/core/src/analysis/transform.c +103 -0
  27. package/cpp/core/src/analysis/unicode.c +252 -0
  28. package/cpp/core/src/analysis/unicode.h +54 -0
  29. package/cpp/core/src/internal.h +4 -0
  30. package/cpp/core/src/keyword/pass.h +117 -0
  31. package/cpp/core/src/keyword/prune.c +324 -0
  32. package/cpp/core/src/keyword/request.c +179 -0
  33. package/cpp/core/src/keyword/rows.c +83 -0
  34. package/cpp/core/src/keyword/rows.h +18 -0
  35. package/cpp/core/src/keyword/score.c +257 -0
  36. package/cpp/core/src/keyword/score.h +17 -0
  37. package/cpp/core/src/keyword/scratch.c +226 -0
  38. package/cpp/core/src/keyword/scratch.h +55 -0
  39. package/cpp/core/src/keyword/select.c +155 -0
  40. package/cpp/core/src/keyword/select.h +17 -0
  41. package/cpp/core/src/languages/bulgarian_stemmer.c +114 -0
  42. package/cpp/core/src/languages/data/albanian.c +54 -0
  43. package/cpp/core/src/languages/data/amharic.c +93 -0
  44. package/cpp/core/src/languages/data/arabic.c +146 -0
  45. package/cpp/core/src/languages/data/armenian.c +46 -0
  46. package/cpp/core/src/languages/data/azerbaijani.c +68 -0
  47. package/cpp/core/src/languages/data/bambara.c +48 -0
  48. package/cpp/core/src/languages/data/basque.c +62 -0
  49. package/cpp/core/src/languages/data/belarusian.c +56 -0
  50. package/cpp/core/src/languages/data/bengali.c +63 -0
  51. package/cpp/core/src/languages/data/bosnian.c +73 -0
  52. package/cpp/core/src/languages/data/breton.c +52 -0
  53. package/cpp/core/src/languages/data/bulgarian.c +144 -0
  54. package/cpp/core/src/languages/data/burmese.c +48 -0
  55. package/cpp/core/src/languages/data/catalan.c +84 -0
  56. package/cpp/core/src/languages/data/chinese.c +70 -0
  57. package/cpp/core/src/languages/data/croatian.c +72 -0
  58. package/cpp/core/src/languages/data/czech.c +72 -0
  59. package/cpp/core/src/languages/data/dagbani.c +88 -0
  60. package/cpp/core/src/languages/data/danish.c +56 -0
  61. package/cpp/core/src/languages/data/declarations.h +114 -0
  62. package/cpp/core/src/languages/data/dutch.c +58 -0
  63. package/cpp/core/src/languages/data/english.c +172 -0
  64. package/cpp/core/src/languages/data/esperanto.c +71 -0
  65. package/cpp/core/src/languages/data/estonian.c +417 -0
  66. package/cpp/core/src/languages/data/ewe.c +89 -0
  67. package/cpp/core/src/languages/data/faroese.c +54 -0
  68. package/cpp/core/src/languages/data/fijian.c +44 -0
  69. package/cpp/core/src/languages/data/finnish.c +100 -0
  70. package/cpp/core/src/languages/data/french.c +74 -0
  71. package/cpp/core/src/languages/data/ga.c +83 -0
  72. package/cpp/core/src/languages/data/galician.c +70 -0
  73. package/cpp/core/src/languages/data/georgian.c +57 -0
  74. package/cpp/core/src/languages/data/german.c +96 -0
  75. package/cpp/core/src/languages/data/greek.c +202 -0
  76. package/cpp/core/src/languages/data/guarani.c +110 -0
  77. package/cpp/core/src/languages/data/gujarati.c +90 -0
  78. package/cpp/core/src/languages/data/haitian-creole.c +54 -0
  79. package/cpp/core/src/languages/data/hausa.c +85 -0
  80. package/cpp/core/src/languages/data/hawaiian.c +50 -0
  81. package/cpp/core/src/languages/data/hebrew.c +85 -0
  82. package/cpp/core/src/languages/data/hindi.c +91 -0
  83. package/cpp/core/src/languages/data/hungarian.c +98 -0
  84. package/cpp/core/src/languages/data/icelandic.c +73 -0
  85. package/cpp/core/src/languages/data/igbo.c +90 -0
  86. package/cpp/core/src/languages/data/indonesian.c +296 -0
  87. package/cpp/core/src/languages/data/irish.c +60 -0
  88. package/cpp/core/src/languages/data/italian.c +107 -0
  89. package/cpp/core/src/languages/data/japanese.c +52 -0
  90. package/cpp/core/src/languages/data/kannada.c +60 -0
  91. package/cpp/core/src/languages/data/kazakh.c +57 -0
  92. package/cpp/core/src/languages/data/khmer.c +71 -0
  93. package/cpp/core/src/languages/data/kinyarwanda.c +54 -0
  94. package/cpp/core/src/languages/data/kirundi.c +53 -0
  95. package/cpp/core/src/languages/data/korean.c +74 -0
  96. package/cpp/core/src/languages/data/kurmanji.c +43 -0
  97. package/cpp/core/src/languages/data/kyrgyz.c +65 -0
  98. package/cpp/core/src/languages/data/lao.c +46 -0
  99. package/cpp/core/src/languages/data/latin.c +46 -0
  100. package/cpp/core/src/languages/data/latvian.c +75 -0
  101. package/cpp/core/src/languages/data/lingala.c +88 -0
  102. package/cpp/core/src/languages/data/lithuanian.c +65 -0
  103. package/cpp/core/src/languages/data/luxembourgish.c +80 -0
  104. package/cpp/core/src/languages/data/macedonian.c +286 -0
  105. package/cpp/core/src/languages/data/malagasy.c +51 -0
  106. package/cpp/core/src/languages/data/malay.c +184 -0
  107. package/cpp/core/src/languages/data/malayalam.c +64 -0
  108. package/cpp/core/src/languages/data/maltese.c +102 -0
  109. package/cpp/core/src/languages/data/maori.c +52 -0
  110. package/cpp/core/src/languages/data/marathi.c +62 -0
  111. package/cpp/core/src/languages/data/nepali.c +72 -0
  112. package/cpp/core/src/languages/data/norwegian.c +74 -0
  113. package/cpp/core/src/languages/data/oromo.c +51 -0
  114. package/cpp/core/src/languages/data/persian.c +150 -0
  115. package/cpp/core/src/languages/data/polish.c +111 -0
  116. package/cpp/core/src/languages/data/portuguese.c +91 -0
  117. package/cpp/core/src/languages/data/punjabi.c +80 -0
  118. package/cpp/core/src/languages/data/registry.c +116 -0
  119. package/cpp/core/src/languages/data/romanian.c +93 -0
  120. package/cpp/core/src/languages/data/russian.c +76 -0
  121. package/cpp/core/src/languages/data/samoan.c +47 -0
  122. package/cpp/core/src/languages/data/sanskrit.c +53 -0
  123. package/cpp/core/src/languages/data/scottish-gaelic.c +119 -0
  124. package/cpp/core/src/languages/data/serbian.c +84 -0
  125. package/cpp/core/src/languages/data/shona.c +55 -0
  126. package/cpp/core/src/languages/data/sinhala.c +78 -0
  127. package/cpp/core/src/languages/data/slovak.c +135 -0
  128. package/cpp/core/src/languages/data/slovenian.c +139 -0
  129. package/cpp/core/src/languages/data/sorani.c +55 -0
  130. package/cpp/core/src/languages/data/spanish.c +84 -0
  131. package/cpp/core/src/languages/data/swahili.c +59 -0
  132. package/cpp/core/src/languages/data/swedish.c +60 -0
  133. package/cpp/core/src/languages/data/tagalog.c +75 -0
  134. package/cpp/core/src/languages/data/tamil.c +69 -0
  135. package/cpp/core/src/languages/data/tatar.c +548 -0
  136. package/cpp/core/src/languages/data/telugu.c +54 -0
  137. package/cpp/core/src/languages/data/thai.c +46 -0
  138. package/cpp/core/src/languages/data/tibetan.c +55 -0
  139. package/cpp/core/src/languages/data/tigrinya.c +73 -0
  140. package/cpp/core/src/languages/data/tongan.c +47 -0
  141. package/cpp/core/src/languages/data/turkish.c +100 -0
  142. package/cpp/core/src/languages/data/twi.c +88 -0
  143. package/cpp/core/src/languages/data/ukrainian.c +99 -0
  144. package/cpp/core/src/languages/data/urdu.c +174 -0
  145. package/cpp/core/src/languages/data/vietnamese.c +88 -0
  146. package/cpp/core/src/languages/data/welsh.c +143 -0
  147. package/cpp/core/src/languages/data/wolof.c +51 -0
  148. package/cpp/core/src/languages/data/xhosa.c +56 -0
  149. package/cpp/core/src/languages/data/yoruba.c +93 -0
  150. package/cpp/core/src/languages/data/zulu.c +58 -0
  151. package/cpp/core/src/languages/marks.c +64 -0
  152. package/cpp/core/src/languages/rules.c +63 -0
  153. package/cpp/core/src/languages/rules.h +68 -0
  154. package/cpp/core/src/languages/sanskrit_stemmer.c +50 -0
  155. package/cpp/core/src/languages/scripts.c +143 -0
  156. package/cpp/core/src/languages/slovenian_stemmer.c +46 -0
  157. package/cpp/core/src/languages/snowball/api.c +52 -0
  158. package/cpp/core/src/languages/snowball/api.h +43 -0
  159. package/cpp/core/src/languages/snowball/arabic_stemmer.c +1506 -0
  160. package/cpp/core/src/languages/snowball/arabic_stemmer.h +24 -0
  161. package/cpp/core/src/languages/snowball/armenian_stemmer.c +523 -0
  162. package/cpp/core/src/languages/snowball/armenian_stemmer.h +24 -0
  163. package/cpp/core/src/languages/snowball/basque_stemmer.c +1089 -0
  164. package/cpp/core/src/languages/snowball/basque_stemmer.h +24 -0
  165. package/cpp/core/src/languages/snowball/catalan_stemmer.c +1380 -0
  166. package/cpp/core/src/languages/snowball/catalan_stemmer.h +24 -0
  167. package/cpp/core/src/languages/snowball/czech_stemmer.c +582 -0
  168. package/cpp/core/src/languages/snowball/czech_stemmer.h +24 -0
  169. package/cpp/core/src/languages/snowball/danish_stemmer.c +352 -0
  170. package/cpp/core/src/languages/snowball/danish_stemmer.h +24 -0
  171. package/cpp/core/src/languages/snowball/dutch_stemmer.c +1657 -0
  172. package/cpp/core/src/languages/snowball/dutch_stemmer.h +24 -0
  173. package/cpp/core/src/languages/snowball/english_stemmer.c +1019 -0
  174. package/cpp/core/src/languages/snowball/english_stemmer.h +24 -0
  175. package/cpp/core/src/languages/snowball/esperanto_stemmer.c +716 -0
  176. package/cpp/core/src/languages/snowball/esperanto_stemmer.h +24 -0
  177. package/cpp/core/src/languages/snowball/estonian_stemmer.c +1361 -0
  178. package/cpp/core/src/languages/snowball/estonian_stemmer.h +24 -0
  179. package/cpp/core/src/languages/snowball/finnish_stemmer.c +800 -0
  180. package/cpp/core/src/languages/snowball/finnish_stemmer.h +24 -0
  181. package/cpp/core/src/languages/snowball/french_stemmer.c +1217 -0
  182. package/cpp/core/src/languages/snowball/french_stemmer.h +24 -0
  183. package/cpp/core/src/languages/snowball/german_stemmer.c +567 -0
  184. package/cpp/core/src/languages/snowball/german_stemmer.h +24 -0
  185. package/cpp/core/src/languages/snowball/greek_stemmer.c +3450 -0
  186. package/cpp/core/src/languages/snowball/greek_stemmer.h +24 -0
  187. package/cpp/core/src/languages/snowball/hindi_stemmer.c +325 -0
  188. package/cpp/core/src/languages/snowball/hindi_stemmer.h +24 -0
  189. package/cpp/core/src/languages/snowball/hungarian_stemmer.c +742 -0
  190. package/cpp/core/src/languages/snowball/hungarian_stemmer.h +24 -0
  191. package/cpp/core/src/languages/snowball/indonesian_stemmer.c +443 -0
  192. package/cpp/core/src/languages/snowball/indonesian_stemmer.h +24 -0
  193. package/cpp/core/src/languages/snowball/irish_stemmer.c +428 -0
  194. package/cpp/core/src/languages/snowball/irish_stemmer.h +24 -0
  195. package/cpp/core/src/languages/snowball/italian_stemmer.c +983 -0
  196. package/cpp/core/src/languages/snowball/italian_stemmer.h +24 -0
  197. package/cpp/core/src/languages/snowball/lithuanian_stemmer.c +794 -0
  198. package/cpp/core/src/languages/snowball/lithuanian_stemmer.h +24 -0
  199. package/cpp/core/src/languages/snowball/nepali_stemmer.c +361 -0
  200. package/cpp/core/src/languages/snowball/nepali_stemmer.h +24 -0
  201. package/cpp/core/src/languages/snowball/norwegian_stemmer.c +332 -0
  202. package/cpp/core/src/languages/snowball/norwegian_stemmer.h +24 -0
  203. package/cpp/core/src/languages/snowball/persian_stemmer.c +538 -0
  204. package/cpp/core/src/languages/snowball/persian_stemmer.h +24 -0
  205. package/cpp/core/src/languages/snowball/polish_stemmer.c +501 -0
  206. package/cpp/core/src/languages/snowball/polish_stemmer.h +24 -0
  207. package/cpp/core/src/languages/snowball/portuguese_stemmer.c +866 -0
  208. package/cpp/core/src/languages/snowball/portuguese_stemmer.h +24 -0
  209. package/cpp/core/src/languages/snowball/romanian_stemmer.c +940 -0
  210. package/cpp/core/src/languages/snowball/romanian_stemmer.h +24 -0
  211. package/cpp/core/src/languages/snowball/russian_stemmer.c +598 -0
  212. package/cpp/core/src/languages/snowball/russian_stemmer.h +24 -0
  213. package/cpp/core/src/languages/snowball/serbian_stemmer.c +6765 -0
  214. package/cpp/core/src/languages/snowball/serbian_stemmer.h +24 -0
  215. package/cpp/core/src/languages/snowball/snowball_runtime.h +122 -0
  216. package/cpp/core/src/languages/snowball/spanish_stemmer.c +955 -0
  217. package/cpp/core/src/languages/snowball/spanish_stemmer.h +24 -0
  218. package/cpp/core/src/languages/snowball/swedish_stemmer.c +364 -0
  219. package/cpp/core/src/languages/snowball/swedish_stemmer.h +24 -0
  220. package/cpp/core/src/languages/snowball/tamil_stemmer.c +1305 -0
  221. package/cpp/core/src/languages/snowball/tamil_stemmer.h +24 -0
  222. package/cpp/core/src/languages/snowball/turkish_stemmer.c +1700 -0
  223. package/cpp/core/src/languages/snowball/turkish_stemmer.h +24 -0
  224. package/cpp/core/src/languages/snowball/utilities.c +716 -0
  225. package/cpp/core/src/languages/substitutions.c +131 -0
  226. package/cpp/core/src/languages/swahili_stemmer.c +85 -0
  227. package/cpp/core/src/languages/ukrainian_stemmer.c +168 -0
  228. package/cpp/core/src/locks.c +2 -15
  229. package/cpp/core/src/math/apply.c +44 -0
  230. package/cpp/core/src/math/fdlibm.h +16 -0
  231. package/cpp/core/src/math/inverse.c +242 -0
  232. package/cpp/core/src/math/log.c +90 -0
  233. package/cpp/core/src/math/reduce.c +325 -0
  234. package/cpp/core/src/math/trig.c +188 -0
  235. package/cpp/core/src/math/words.h +45 -0
  236. package/cpp/core/src/thread_yield.h +18 -0
  237. package/cpp/core/src/unicode/decompositions.c +310 -0
  238. package/cpp/core/src/unicode/lowercase.c +172 -0
  239. package/cpp/core/src/unicode/properties.c +214 -0
  240. package/cpp/core/src/workspace.c +5 -1
  241. package/lib/engine/analysis.d.ts +3 -0
  242. package/lib/engine/analysis.js +76 -0
  243. package/lib/engine/core.js +5 -0
  244. package/lib/engine/keyword.d.ts +3 -0
  245. package/lib/engine/keyword.js +25 -0
  246. package/lib/specs/core.nitro.d.ts +1 -0
  247. package/nitrogen/generated/shared/c++/HybridNarsilCoreSpec.cpp +1 -0
  248. package/nitrogen/generated/shared/c++/HybridNarsilCoreSpec.hpp +1 -0
  249. package/package.json +4 -3
  250. package/src/engine/analysis.ts +87 -0
  251. package/src/engine/core.ts +6 -0
  252. package/src/engine/keyword.ts +26 -0
  253. package/src/specs/core.nitro.ts +1 -0
@@ -0,0 +1,172 @@
1
+ #include "../analysis/unicode.h"
2
+
3
+ #include <stdint.h>
4
+
5
+ const uint32_t narsil_unicode_lowercase[2974] = {
6
+ 65, 97, 66, 98, 67, 99, 68, 100, 69, 101, 70, 102, 71, 103, 72, 104, 73, 105, 74, 106, 75, 107, 76, 108, 77, 109, 78,
7
+ 110, 79, 111, 80, 112, 81, 113, 82, 114, 83, 115, 84, 116, 85, 117, 86, 118, 87, 119, 88, 120, 89, 121, 90, 122, 192,
8
+ 224, 193, 225, 194, 226, 195, 227, 196, 228, 197, 229, 198, 230, 199, 231, 200, 232, 201, 233, 202, 234, 203, 235,
9
+ 204, 236, 205, 237, 206, 238, 207, 239, 208, 240, 209, 241, 210, 242, 211, 243, 212, 244, 213, 245, 214, 246, 216,
10
+ 248, 217, 249, 218, 250, 219, 251, 220, 252, 221, 253, 222, 254, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
11
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
12
+ 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 306, 307, 308, 309, 310, 311, 313, 314,
13
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 332, 333, 334, 335, 336, 337, 338,
14
+ 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
15
+ 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 255, 377, 378, 379, 380, 381, 382, 385,
16
+ 595, 386, 387, 388, 389, 390, 596, 391, 392, 393, 598, 394, 599, 395, 396, 398, 477, 399, 601, 400, 603, 401, 402,
17
+ 403, 608, 404, 611, 406, 617, 407, 616, 408, 409, 412, 623, 413, 626, 415, 629, 416, 417, 418, 419, 420, 421, 422,
18
+ 640, 423, 424, 425, 643, 428, 429, 430, 648, 431, 432, 433, 650, 434, 651, 435, 436, 437, 438, 439, 658, 440, 441,
19
+ 444, 445, 452, 454, 453, 454, 455, 457, 456, 457, 458, 460, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
20
+ 470, 471, 472, 473, 474, 475, 476, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
21
+ 494, 495, 497, 499, 498, 499, 500, 501, 502, 405, 503, 447, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
22
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537,
23
+ 538, 539, 540, 541, 542, 543, 544, 414, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560,
24
+ 561, 562, 563, 570, 11365, 571, 572, 573, 410, 574, 11366, 577, 578, 579, 384, 580, 649, 581, 652, 582, 583, 584, 585,
25
+ 586, 587, 588, 589, 590, 591, 880, 881, 882, 883, 886, 887, 895, 1011, 902, 940, 904, 941, 905, 942, 906, 943, 908,
26
+ 972, 910, 973, 911, 974, 913, 945, 914, 946, 915, 947, 916, 948, 917, 949, 918, 950, 919, 951, 920, 952, 921, 953,
27
+ 922, 954, 923, 955, 924, 956, 925, 957, 926, 958, 927, 959, 928, 960, 929, 961, 931, 963, 932, 964, 933, 965, 934,
28
+ 966, 935, 967, 936, 968, 937, 969, 938, 970, 939, 971, 975, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993,
29
+ 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1012, 952, 1015, 1016, 1017, 1010, 1018,
30
+ 1019, 1021, 891, 1022, 892, 1023, 893, 1024, 1104, 1025, 1105, 1026, 1106, 1027, 1107, 1028, 1108, 1029, 1109, 1030,
31
+ 1110, 1031, 1111, 1032, 1112, 1033, 1113, 1034, 1114, 1035, 1115, 1036, 1116, 1037, 1117, 1038, 1118, 1039, 1119,
32
+ 1040, 1072, 1041, 1073, 1042, 1074, 1043, 1075, 1044, 1076, 1045, 1077, 1046, 1078, 1047, 1079, 1048, 1080, 1049,
33
+ 1081, 1050, 1082, 1051, 1083, 1052, 1084, 1053, 1085, 1054, 1086, 1055, 1087, 1056, 1088, 1057, 1089, 1058, 1090,
34
+ 1059, 1091, 1060, 1092, 1061, 1093, 1062, 1094, 1063, 1095, 1064, 1096, 1065, 1097, 1066, 1098, 1067, 1099, 1068,
35
+ 1100, 1069, 1101, 1070, 1102, 1071, 1103, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131,
36
+ 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150,
37
+ 1151, 1152, 1153, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177,
38
+ 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196,
39
+ 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
40
+ 1216, 1231, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1232, 1233, 1234,
41
+ 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
42
+ 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
43
+ 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
44
+ 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310,
45
+ 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1329, 1377,
46
+ 1330, 1378, 1331, 1379, 1332, 1380, 1333, 1381, 1334, 1382, 1335, 1383, 1336, 1384, 1337, 1385, 1338, 1386, 1339,
47
+ 1387, 1340, 1388, 1341, 1389, 1342, 1390, 1343, 1391, 1344, 1392, 1345, 1393, 1346, 1394, 1347, 1395, 1348, 1396,
48
+ 1349, 1397, 1350, 1398, 1351, 1399, 1352, 1400, 1353, 1401, 1354, 1402, 1355, 1403, 1356, 1404, 1357, 1405, 1358,
49
+ 1406, 1359, 1407, 1360, 1408, 1361, 1409, 1362, 1410, 1363, 1411, 1364, 1412, 1365, 1413, 1366, 1414, 4256, 11520,
50
+ 4257, 11521, 4258, 11522, 4259, 11523, 4260, 11524, 4261, 11525, 4262, 11526, 4263, 11527, 4264, 11528, 4265, 11529,
51
+ 4266, 11530, 4267, 11531, 4268, 11532, 4269, 11533, 4270, 11534, 4271, 11535, 4272, 11536, 4273, 11537, 4274, 11538,
52
+ 4275, 11539, 4276, 11540, 4277, 11541, 4278, 11542, 4279, 11543, 4280, 11544, 4281, 11545, 4282, 11546, 4283, 11547,
53
+ 4284, 11548, 4285, 11549, 4286, 11550, 4287, 11551, 4288, 11552, 4289, 11553, 4290, 11554, 4291, 11555, 4292, 11556,
54
+ 4293, 11557, 4295, 11559, 4301, 11565, 5024, 43888, 5025, 43889, 5026, 43890, 5027, 43891, 5028, 43892, 5029, 43893,
55
+ 5030, 43894, 5031, 43895, 5032, 43896, 5033, 43897, 5034, 43898, 5035, 43899, 5036, 43900, 5037, 43901, 5038, 43902,
56
+ 5039, 43903, 5040, 43904, 5041, 43905, 5042, 43906, 5043, 43907, 5044, 43908, 5045, 43909, 5046, 43910, 5047, 43911,
57
+ 5048, 43912, 5049, 43913, 5050, 43914, 5051, 43915, 5052, 43916, 5053, 43917, 5054, 43918, 5055, 43919, 5056, 43920,
58
+ 5057, 43921, 5058, 43922, 5059, 43923, 5060, 43924, 5061, 43925, 5062, 43926, 5063, 43927, 5064, 43928, 5065, 43929,
59
+ 5066, 43930, 5067, 43931, 5068, 43932, 5069, 43933, 5070, 43934, 5071, 43935, 5072, 43936, 5073, 43937, 5074, 43938,
60
+ 5075, 43939, 5076, 43940, 5077, 43941, 5078, 43942, 5079, 43943, 5080, 43944, 5081, 43945, 5082, 43946, 5083, 43947,
61
+ 5084, 43948, 5085, 43949, 5086, 43950, 5087, 43951, 5088, 43952, 5089, 43953, 5090, 43954, 5091, 43955, 5092, 43956,
62
+ 5093, 43957, 5094, 43958, 5095, 43959, 5096, 43960, 5097, 43961, 5098, 43962, 5099, 43963, 5100, 43964, 5101, 43965,
63
+ 5102, 43966, 5103, 43967, 5104, 5112, 5105, 5113, 5106, 5114, 5107, 5115, 5108, 5116, 5109, 5117, 7305, 7306, 7312,
64
+ 4304, 7313, 4305, 7314, 4306, 7315, 4307, 7316, 4308, 7317, 4309, 7318, 4310, 7319, 4311, 7320, 4312, 7321, 4313,
65
+ 7322, 4314, 7323, 4315, 7324, 4316, 7325, 4317, 7326, 4318, 7327, 4319, 7328, 4320, 7329, 4321, 7330, 4322, 7331,
66
+ 4323, 7332, 4324, 7333, 4325, 7334, 4326, 7335, 4327, 7336, 4328, 7337, 4329, 7338, 4330, 7339, 4331, 7340, 4332,
67
+ 7341, 4333, 7342, 4334, 7343, 4335, 7344, 4336, 7345, 4337, 7346, 4338, 7347, 4339, 7348, 4340, 7349, 4341, 7350,
68
+ 4342, 7351, 4343, 7352, 4344, 7353, 4345, 7354, 4346, 7357, 4349, 7358, 4350, 7359, 4351, 7680, 7681, 7682, 7683,
69
+ 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702,
70
+ 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721,
71
+ 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740,
72
+ 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759,
73
+ 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778,
74
+ 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797,
75
+ 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816,
76
+ 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7838, 223, 7840, 7841, 7842, 7843, 7844,
77
+ 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863,
78
+ 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882,
79
+ 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901,
80
+ 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920,
81
+ 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7944, 7936, 7945, 7937,
82
+ 7946, 7938, 7947, 7939, 7948, 7940, 7949, 7941, 7950, 7942, 7951, 7943, 7960, 7952, 7961, 7953, 7962, 7954, 7963,
83
+ 7955, 7964, 7956, 7965, 7957, 7976, 7968, 7977, 7969, 7978, 7970, 7979, 7971, 7980, 7972, 7981, 7973, 7982, 7974,
84
+ 7983, 7975, 7992, 7984, 7993, 7985, 7994, 7986, 7995, 7987, 7996, 7988, 7997, 7989, 7998, 7990, 7999, 7991, 8008,
85
+ 8000, 8009, 8001, 8010, 8002, 8011, 8003, 8012, 8004, 8013, 8005, 8025, 8017, 8027, 8019, 8029, 8021, 8031, 8023,
86
+ 8040, 8032, 8041, 8033, 8042, 8034, 8043, 8035, 8044, 8036, 8045, 8037, 8046, 8038, 8047, 8039, 8072, 8064, 8073,
87
+ 8065, 8074, 8066, 8075, 8067, 8076, 8068, 8077, 8069, 8078, 8070, 8079, 8071, 8088, 8080, 8089, 8081, 8090, 8082,
88
+ 8091, 8083, 8092, 8084, 8093, 8085, 8094, 8086, 8095, 8087, 8104, 8096, 8105, 8097, 8106, 8098, 8107, 8099, 8108,
89
+ 8100, 8109, 8101, 8110, 8102, 8111, 8103, 8120, 8112, 8121, 8113, 8122, 8048, 8123, 8049, 8124, 8115, 8136, 8050,
90
+ 8137, 8051, 8138, 8052, 8139, 8053, 8140, 8131, 8152, 8144, 8153, 8145, 8154, 8054, 8155, 8055, 8168, 8160, 8169,
91
+ 8161, 8170, 8058, 8171, 8059, 8172, 8165, 8184, 8056, 8185, 8057, 8186, 8060, 8187, 8061, 8188, 8179, 8486, 969, 8490,
92
+ 107, 8491, 229, 8498, 8526, 8544, 8560, 8545, 8561, 8546, 8562, 8547, 8563, 8548, 8564, 8549, 8565, 8550, 8566, 8551,
93
+ 8567, 8552, 8568, 8553, 8569, 8554, 8570, 8555, 8571, 8556, 8572, 8557, 8573, 8558, 8574, 8559, 8575, 8579, 8580,
94
+ 9398, 9424, 9399, 9425, 9400, 9426, 9401, 9427, 9402, 9428, 9403, 9429, 9404, 9430, 9405, 9431, 9406, 9432, 9407,
95
+ 9433, 9408, 9434, 9409, 9435, 9410, 9436, 9411, 9437, 9412, 9438, 9413, 9439, 9414, 9440, 9415, 9441, 9416, 9442,
96
+ 9417, 9443, 9418, 9444, 9419, 9445, 9420, 9446, 9421, 9447, 9422, 9448, 9423, 9449, 11264, 11312, 11265, 11313, 11266,
97
+ 11314, 11267, 11315, 11268, 11316, 11269, 11317, 11270, 11318, 11271, 11319, 11272, 11320, 11273, 11321, 11274, 11322,
98
+ 11275, 11323, 11276, 11324, 11277, 11325, 11278, 11326, 11279, 11327, 11280, 11328, 11281, 11329, 11282, 11330, 11283,
99
+ 11331, 11284, 11332, 11285, 11333, 11286, 11334, 11287, 11335, 11288, 11336, 11289, 11337, 11290, 11338, 11291, 11339,
100
+ 11292, 11340, 11293, 11341, 11294, 11342, 11295, 11343, 11296, 11344, 11297, 11345, 11298, 11346, 11299, 11347, 11300,
101
+ 11348, 11301, 11349, 11302, 11350, 11303, 11351, 11304, 11352, 11305, 11353, 11306, 11354, 11307, 11355, 11308, 11356,
102
+ 11309, 11357, 11310, 11358, 11311, 11359, 11360, 11361, 11362, 619, 11363, 7549, 11364, 637, 11367, 11368, 11369,
103
+ 11370, 11371, 11372, 11373, 593, 11374, 625, 11375, 592, 11376, 594, 11378, 11379, 11381, 11382, 11390, 575, 11391,
104
+ 576, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407,
105
+ 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424,
106
+ 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441,
107
+ 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458,
108
+ 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475,
109
+ 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11499,
110
+ 11500, 11501, 11502, 11506, 11507, 42560, 42561, 42562, 42563, 42564, 42565, 42566, 42567, 42568, 42569, 42570, 42571,
111
+ 42572, 42573, 42574, 42575, 42576, 42577, 42578, 42579, 42580, 42581, 42582, 42583, 42584, 42585, 42586, 42587, 42588,
112
+ 42589, 42590, 42591, 42592, 42593, 42594, 42595, 42596, 42597, 42598, 42599, 42600, 42601, 42602, 42603, 42604, 42605,
113
+ 42624, 42625, 42626, 42627, 42628, 42629, 42630, 42631, 42632, 42633, 42634, 42635, 42636, 42637, 42638, 42639, 42640,
114
+ 42641, 42642, 42643, 42644, 42645, 42646, 42647, 42648, 42649, 42650, 42651, 42786, 42787, 42788, 42789, 42790, 42791,
115
+ 42792, 42793, 42794, 42795, 42796, 42797, 42798, 42799, 42802, 42803, 42804, 42805, 42806, 42807, 42808, 42809, 42810,
116
+ 42811, 42812, 42813, 42814, 42815, 42816, 42817, 42818, 42819, 42820, 42821, 42822, 42823, 42824, 42825, 42826, 42827,
117
+ 42828, 42829, 42830, 42831, 42832, 42833, 42834, 42835, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42843, 42844,
118
+ 42845, 42846, 42847, 42848, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 42860, 42861,
119
+ 42862, 42863, 42873, 42874, 42875, 42876, 42877, 7545, 42878, 42879, 42880, 42881, 42882, 42883, 42884, 42885, 42886,
120
+ 42887, 42891, 42892, 42893, 613, 42896, 42897, 42898, 42899, 42902, 42903, 42904, 42905, 42906, 42907, 42908, 42909,
121
+ 42910, 42911, 42912, 42913, 42914, 42915, 42916, 42917, 42918, 42919, 42920, 42921, 42922, 614, 42923, 604, 42924,
122
+ 609, 42925, 620, 42926, 618, 42928, 670, 42929, 647, 42930, 669, 42931, 43859, 42932, 42933, 42934, 42935, 42936,
123
+ 42937, 42938, 42939, 42940, 42941, 42942, 42943, 42944, 42945, 42946, 42947, 42948, 42900, 42949, 642, 42950, 7566,
124
+ 42951, 42952, 42953, 42954, 42955, 612, 42956, 42957, 42958, 42959, 42960, 42961, 42962, 42963, 42964, 42965, 42966,
125
+ 42967, 42968, 42969, 42970, 42971, 42972, 411, 42997, 42998, 65313, 65345, 65314, 65346, 65315, 65347, 65316, 65348,
126
+ 65317, 65349, 65318, 65350, 65319, 65351, 65320, 65352, 65321, 65353, 65322, 65354, 65323, 65355, 65324, 65356, 65325,
127
+ 65357, 65326, 65358, 65327, 65359, 65328, 65360, 65329, 65361, 65330, 65362, 65331, 65363, 65332, 65364, 65333, 65365,
128
+ 65334, 65366, 65335, 65367, 65336, 65368, 65337, 65369, 65338, 65370, 66560, 66600, 66561, 66601, 66562, 66602, 66563,
129
+ 66603, 66564, 66604, 66565, 66605, 66566, 66606, 66567, 66607, 66568, 66608, 66569, 66609, 66570, 66610, 66571, 66611,
130
+ 66572, 66612, 66573, 66613, 66574, 66614, 66575, 66615, 66576, 66616, 66577, 66617, 66578, 66618, 66579, 66619, 66580,
131
+ 66620, 66581, 66621, 66582, 66622, 66583, 66623, 66584, 66624, 66585, 66625, 66586, 66626, 66587, 66627, 66588, 66628,
132
+ 66589, 66629, 66590, 66630, 66591, 66631, 66592, 66632, 66593, 66633, 66594, 66634, 66595, 66635, 66596, 66636, 66597,
133
+ 66637, 66598, 66638, 66599, 66639, 66736, 66776, 66737, 66777, 66738, 66778, 66739, 66779, 66740, 66780, 66741, 66781,
134
+ 66742, 66782, 66743, 66783, 66744, 66784, 66745, 66785, 66746, 66786, 66747, 66787, 66748, 66788, 66749, 66789, 66750,
135
+ 66790, 66751, 66791, 66752, 66792, 66753, 66793, 66754, 66794, 66755, 66795, 66756, 66796, 66757, 66797, 66758, 66798,
136
+ 66759, 66799, 66760, 66800, 66761, 66801, 66762, 66802, 66763, 66803, 66764, 66804, 66765, 66805, 66766, 66806, 66767,
137
+ 66807, 66768, 66808, 66769, 66809, 66770, 66810, 66771, 66811, 66928, 66967, 66929, 66968, 66930, 66969, 66931, 66970,
138
+ 66932, 66971, 66933, 66972, 66934, 66973, 66935, 66974, 66936, 66975, 66937, 66976, 66938, 66977, 66940, 66979, 66941,
139
+ 66980, 66942, 66981, 66943, 66982, 66944, 66983, 66945, 66984, 66946, 66985, 66947, 66986, 66948, 66987, 66949, 66988,
140
+ 66950, 66989, 66951, 66990, 66952, 66991, 66953, 66992, 66954, 66993, 66956, 66995, 66957, 66996, 66958, 66997, 66959,
141
+ 66998, 66960, 66999, 66961, 67000, 66962, 67001, 66964, 67003, 66965, 67004, 68736, 68800, 68737, 68801, 68738, 68802,
142
+ 68739, 68803, 68740, 68804, 68741, 68805, 68742, 68806, 68743, 68807, 68744, 68808, 68745, 68809, 68746, 68810, 68747,
143
+ 68811, 68748, 68812, 68749, 68813, 68750, 68814, 68751, 68815, 68752, 68816, 68753, 68817, 68754, 68818, 68755, 68819,
144
+ 68756, 68820, 68757, 68821, 68758, 68822, 68759, 68823, 68760, 68824, 68761, 68825, 68762, 68826, 68763, 68827, 68764,
145
+ 68828, 68765, 68829, 68766, 68830, 68767, 68831, 68768, 68832, 68769, 68833, 68770, 68834, 68771, 68835, 68772, 68836,
146
+ 68773, 68837, 68774, 68838, 68775, 68839, 68776, 68840, 68777, 68841, 68778, 68842, 68779, 68843, 68780, 68844, 68781,
147
+ 68845, 68782, 68846, 68783, 68847, 68784, 68848, 68785, 68849, 68786, 68850, 68944, 68976, 68945, 68977, 68946, 68978,
148
+ 68947, 68979, 68948, 68980, 68949, 68981, 68950, 68982, 68951, 68983, 68952, 68984, 68953, 68985, 68954, 68986, 68955,
149
+ 68987, 68956, 68988, 68957, 68989, 68958, 68990, 68959, 68991, 68960, 68992, 68961, 68993, 68962, 68994, 68963, 68995,
150
+ 68964, 68996, 68965, 68997, 71840, 71872, 71841, 71873, 71842, 71874, 71843, 71875, 71844, 71876, 71845, 71877, 71846,
151
+ 71878, 71847, 71879, 71848, 71880, 71849, 71881, 71850, 71882, 71851, 71883, 71852, 71884, 71853, 71885, 71854, 71886,
152
+ 71855, 71887, 71856, 71888, 71857, 71889, 71858, 71890, 71859, 71891, 71860, 71892, 71861, 71893, 71862, 71894, 71863,
153
+ 71895, 71864, 71896, 71865, 71897, 71866, 71898, 71867, 71899, 71868, 71900, 71869, 71901, 71870, 71902, 71871, 71903,
154
+ 93760, 93792, 93761, 93793, 93762, 93794, 93763, 93795, 93764, 93796, 93765, 93797, 93766, 93798, 93767, 93799, 93768,
155
+ 93800, 93769, 93801, 93770, 93802, 93771, 93803, 93772, 93804, 93773, 93805, 93774, 93806, 93775, 93807, 93776, 93808,
156
+ 93777, 93809, 93778, 93810, 93779, 93811, 93780, 93812, 93781, 93813, 93782, 93814, 93783, 93815, 93784, 93816, 93785,
157
+ 93817, 93786, 93818, 93787, 93819, 93788, 93820, 93789, 93821, 93790, 93822, 93791, 93823, 93856, 93883, 93857, 93884,
158
+ 93858, 93885, 93859, 93886, 93860, 93887, 93861, 93888, 93862, 93889, 93863, 93890, 93864, 93891, 93865, 93892, 93866,
159
+ 93893, 93867, 93894, 93868, 93895, 93869, 93896, 93870, 93897, 93871, 93898, 93872, 93899, 93873, 93900, 93874, 93901,
160
+ 93875, 93902, 93876, 93903, 93877, 93904, 93878, 93905, 93879, 93906, 93880, 93907, 125184, 125218, 125185, 125219,
161
+ 125186, 125220, 125187, 125221, 125188, 125222, 125189, 125223, 125190, 125224, 125191, 125225, 125192, 125226,
162
+ 125193, 125227, 125194, 125228, 125195, 125229, 125196, 125230, 125197, 125231, 125198, 125232, 125199, 125233,
163
+ 125200, 125234, 125201, 125235, 125202, 125236, 125203, 125237, 125204, 125238, 125205, 125239, 125206, 125240,
164
+ 125207, 125241, 125208, 125242, 125209, 125243, 125210, 125244, 125211, 125245, 125212, 125246, 125213, 125247,
165
+ 125214, 125248, 125215, 125249, 125216, 125250, 125217, 125251,
166
+ };
167
+ const uint32_t narsil_unicode_lowercase_length = 2974;
168
+
169
+ const uint32_t narsil_unicode_special_lowercase[3] = {
170
+ 304, 105, 775,
171
+ };
172
+ const uint32_t narsil_unicode_special_lowercase_length = 3;
@@ -0,0 +1,214 @@
1
+ #include "../analysis/unicode.h"
2
+
3
+ #include <stdint.h>
4
+
5
+ const uint32_t narsil_unicode_property_values[144] = {
6
+ 0, 8192, 1024, 20736, 4352, 10240, 53504, 37120, 256, 12544, 8448, 74470, 8934, 8936, 8924, 74456, 8906, 74460, 74442,
7
+ 8705, 74241, 172774, 78576, 8704, 8937, 8938, 172288, 163840, 40960, 172032, 8926, 8932, 8714, 8715, 8716, 8717, 8718,
8
+ 8719, 8720, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729, 8734, 8735, 8736, 33024, 8731, 8732, 8733, 8737,
9
+ 8738, 8739, 8740, 512, 74247, 8713, 164096, 8711, 66048, 33280, 74240, 41472, 8788, 74331, 74249, 5243136, 5251584,
10
+ 5251687, 5251593, 5251328, 5251691, 5242880, 5243904, 6291712, 6300160, 6300278, 6300169, 6299904, 6300282, 6292480,
11
+ 8920, 8833, 8834, 172544, 8836, 8388864, 8421632, 8389120, 8397312, 8462848, 8397319, 8397321, 8389632, 8388608,
12
+ 8397532, 4194560, 521, 7340288, 7348736, 7340544, 7348745, 7340032, 7348480, 7348966, 7341056, 8918, 8922, 168192,
13
+ 184576, 21504, 5120, 32768, 20480, 4096, 1048576, 1057024, 1049600, 4195040, 2097408, 2130176, 74248, 2105600,
14
+ 2138368, 3145984, 3178752, 3154176, 3186944, 4194304, 3145728, 1048832, 8397056, 1212672, 8730, 65792, 1049094, 728,
15
+ 738, 2097152,
16
+ };
17
+ const uint32_t narsil_unicode_property_values_length = 144;
18
+
19
+ const uint32_t narsil_unicode_property_runs[4179] = {
20
+ 9984, 257, 1536, 257, 256, 2562, 257, 1536, 6659, 768, 257, 256, 257, 6660, 11520, 257, 256, 260, 512, 261, 256, 257,
21
+ 512, 514, 257, 260, 256, 513, 258, 260, 256, 770, 256, 1542, 259, 2310, 259, 1542, 256, 259, 1286, 259, 260, 1543,
22
+ 260, 2311, 260, 1543, 256, 260, 1287, 260, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263,
23
+ 262, 263, 259, 260, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262,
24
+ 263, 259, 260, 262, 263, 262, 263, 262, 263, 262, 263, 262, 260, 259, 260, 262, 263, 262, 263, 260, 262, 263, 262,
25
+ 263, 262, 263, 259, 260, 259, 260, 262, 263, 262, 263, 262, 263, 260, 259, 260, 262, 263, 262, 263, 262, 263, 259,
26
+ 260, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 259, 260, 262, 263,
27
+ 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 518, 263, 262, 263, 262, 263, 516, 515, 260,
28
+ 259, 260, 515, 260, 771, 516, 1027, 260, 515, 260, 771, 772, 515, 260, 259, 262, 263, 259, 260, 259, 260, 515, 260,
29
+ 259, 516, 259, 260, 259, 262, 263, 771, 260, 259, 260, 515, 516, 264, 259, 772, 1032, 515, 260, 515, 260, 515, 260,
30
+ 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 260, 262, 263, 262, 263, 262, 263,
31
+ 259, 260, 262, 263, 262, 263, 262, 263, 262, 263, 262, 519, 515, 260, 262, 263, 515, 262, 263, 262, 263, 262, 263,
32
+ 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262,
33
+ 263, 262, 263, 262, 263, 262, 263, 259, 260, 262, 263, 259, 260, 259, 260, 259, 260, 262, 263, 262, 263, 262, 263,
34
+ 262, 263, 262, 263, 262, 263, 262, 263, 1540, 515, 260, 515, 516, 259, 260, 1027, 260, 259, 260, 259, 260, 259, 260,
35
+ 259, 17668, 520, 6660, 2313, 1802, 521, 1025, 3082, 3585, 1289, 1793, 266, 257, 266, 4353, 1291, 268, 1803, 524, 267,
36
+ 268, 267, 268, 523, 269, 1038, 269, 271, 1294, 528, 1041, 530, 1038, 529, 270, 529, 526, 1043, 276, 1038, 780, 533,
37
+ 267, 533, 278, 268, 782, 780, 526, 279, 780, 1038, 268, 269, 526, 268, 280, 537, 280, 537, 280, 3340, 259, 260, 259,
38
+ 260, 282, 257, 259, 260, 512, 265, 772, 283, 259, 1024, 257, 284, 262, 285, 774, 256, 262, 256, 518, 263, 4355, 256,
39
+ 1795, 518, 1287, 6404, 1287, 259, 772, 519, 772, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
40
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 1284, 259, 260, 256, 259, 260, 515, 516, 771, 518, 259, 262, 771, 262,
41
+ 1027, 774, 2563, 262, 5635, 2308, 263, 5636, 519, 260, 263, 772, 263, 1028, 775, 260, 259, 260, 259, 260, 259, 260,
42
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 262, 263, 259, 260, 259, 260, 259,
43
+ 260, 259, 260, 259, 260, 256, 1292, 535, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259,
44
+ 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
45
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 262, 263, 259, 260, 259, 260,
46
+ 259, 260, 259, 260, 259, 260, 259, 516, 262, 263, 262, 263, 259, 260, 262, 263, 259, 260, 262, 263, 262, 263, 262,
47
+ 263, 259, 260, 262, 263, 262, 263, 262, 263, 259, 260, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263,
48
+ 259, 260, 262, 263, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259,
49
+ 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
50
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 256, 9731, 512, 266, 1280, 257, 10500, 2048, 270, 1036,
51
+ 270, 780, 286, 270, 1548, 1550, 524, 270, 524, 286, 287, 268, 288, 289, 290, 291, 292, 293, 294, 295, 296, 553, 298,
52
+ 299, 300, 256, 301, 256, 302, 303, 256, 268, 270, 256, 296, 2048, 6920, 1024, 1032, 256, 257, 2816, 1541, 2560, 2060,
53
+ 304, 305, 306, 256, 261, 768, 520, 1331, 6408, 266, 2568, 308, 309, 310, 304, 305, 306, 311, 312, 523, 273, 270, 1292,
54
+ 270, 524, 270, 2562, 1024, 520, 313, 20232, 307, 264, 307, 4104, 307, 256, 264, 1804, 261, 256, 1036, 270, 268, 522,
55
+ 524, 256, 270, 524, 270, 520, 2562, 776, 512, 264, 3840, 261, 264, 314, 7688, 268, 270, 524, 270, 524, 782, 268, 526,
56
+ 268, 270, 780, 270, 268, 270, 268, 270, 268, 270, 524, 512, 22792, 2839, 264, 3584, 2562, 8456, 1804, 270, 268, 522,
57
+ 1024, 266, 512, 270, 512, 5640, 1036, 266, 2316, 266, 780, 266, 1292, 4608, 6408, 782, 1024, 2824, 1280, 6152, 257,
58
+ 1800, 517, 1280, 524, 782, 1036, 10504, 266, 1292, 1294, 3596, 261, 270, 524, 270, 524, 270, 780, 782, 308, 309, 310,
59
+ 780, 270, 524, 526, 1292, 791, 315, 9480, 307, 1800, 307, 520, 307, 1288, 279, 315, 316, 264, 827, 2071, 1083, 317,
60
+ 571, 264, 268, 270, 524, 791, 2110, 520, 535, 512, 2562, 256, 266, 3848, 279, 571, 256, 2056, 512, 520, 512, 5640,
61
+ 256, 1800, 256, 264, 768, 1032, 512, 319, 264, 320, 571, 1047, 512, 571, 512, 577, 317, 264, 2048, 320, 1024, 574,
62
+ 256, 318, 520, 535, 512, 2562, 520, 512, 1538, 512, 264, 256, 268, 512, 535, 315, 256, 1544, 1024, 520, 512, 5640,
63
+ 256, 1800, 256, 264, 318, 256, 264, 318, 256, 520, 512, 319, 256, 827, 535, 1024, 535, 512, 535, 317, 768, 279, 1792,
64
+ 830, 264, 256, 318, 1792, 2562, 535, 776, 279, 2816, 535, 315, 256, 2312, 256, 776, 256, 5640, 256, 1800, 256, 520,
65
+ 256, 1288, 512, 319, 264, 827, 1303, 256, 535, 315, 256, 571, 317, 512, 264, 3840, 520, 535, 512, 2562, 2304, 264,
66
+ 1559, 256, 279, 571, 256, 2056, 512, 520, 512, 5640, 256, 1800, 256, 520, 256, 1288, 512, 319, 264, 320, 279, 315,
67
+ 1047, 512, 315, 321, 512, 577, 317, 1792, 279, 322, 320, 1024, 574, 256, 776, 535, 512, 2562, 256, 264, 1538, 2560,
68
+ 279, 264, 256, 1544, 768, 776, 256, 520, 307, 264, 768, 520, 256, 264, 256, 520, 768, 520, 768, 776, 768, 3080, 1024,
69
+ 320, 315, 279, 571, 768, 827, 256, 833, 317, 512, 264, 1536, 320, 3584, 3330, 3328, 279, 827, 279, 2056, 256, 776,
70
+ 256, 5896, 256, 4104, 512, 319, 264, 791, 1083, 256, 535, 323, 256, 791, 317, 1792, 324, 325, 256, 776, 256, 520, 512,
71
+ 520, 535, 512, 2562, 2048, 1794, 256, 264, 279, 571, 256, 2056, 256, 776, 256, 5896, 256, 2568, 256, 1288, 512, 319,
72
+ 264, 315, 279, 321, 315, 320, 571, 256, 279, 577, 256, 577, 279, 317, 1792, 576, 1280, 776, 256, 520, 535, 512, 2562,
73
+ 256, 520, 315, 3072, 535, 571, 2312, 256, 776, 256, 10504, 573, 264, 320, 571, 1047, 256, 827, 256, 833, 317, 264,
74
+ 1280, 776, 320, 1794, 776, 535, 512, 4866, 256, 1544, 256, 279, 571, 256, 4616, 768, 6152, 256, 2312, 256, 264, 512,
75
+ 1800, 768, 326, 1024, 320, 571, 791, 256, 279, 256, 571, 321, 315, 833, 320, 1536, 2562, 512, 571, 3328, 12359, 328,
76
+ 583, 1096, 585, 330, 1280, 1607, 331, 328, 1100, 840, 333, 2638, 589, 9472, 591, 256, 335, 256, 1359, 256, 6223, 256,
77
+ 335, 256, 2639, 336, 591, 1104, 593, 338, 592, 335, 512, 1359, 256, 339, 256, 1108, 848, 256, 2645, 512, 1103, 8192,
78
+ 264, 5888, 526, 1536, 5122, 256, 270, 256, 270, 256, 342, 1024, 571, 776, 318, 1032, 256, 1032, 318, 1032, 318, 1032,
79
+ 318, 1032, 318, 3080, 318, 776, 1024, 343, 344, 345, 346, 601, 279, 345, 279, 1112, 279, 315, 344, 345, 524, 317, 256,
80
+ 524, 1288, 1559, 345, 1047, 256, 1047, 345, 1047, 345, 1047, 345, 1047, 345, 3095, 345, 791, 2304, 270, 14592, 9819,
81
+ 348, 1115, 605, 350, 351, 606, 349, 1374, 352, 349, 609, 605, 606, 347, 2658, 1635, 1627, 605, 606, 1115, 862, 347,
82
+ 861, 603, 1885, 859, 1118, 3419, 350, 605, 606, 1629, 356, 347, 349, 2658, 861, 350, 611, 9731, 256, 259, 1280, 259,
83
+ 512, 11012, 256, 265, 772, 65637, 18696, 256, 1032, 512, 1800, 256, 264, 256, 1032, 512, 10504, 256, 1032, 512, 8456,
84
+ 256, 1032, 512, 1800, 256, 264, 256, 1032, 512, 3848, 256, 14600, 256, 1032, 512, 17160, 512, 780, 2304, 5122, 768,
85
+ 4104, 4096, 22019, 512, 1540, 768, 158728, 512, 4360, 256, 6664, 1280, 19208, 768, 770, 2056, 1792, 4616, 535, 317,
86
+ 358, 2304, 4872, 535, 358, 2816, 4616, 535, 3072, 3336, 256, 776, 256, 535, 3072, 13415, 616, 361, 1896, 2153, 360,
87
+ 617, 2408, 362, 360, 875, 364, 1131, 359, 365, 512, 2670, 1536, 2670, 4352, 791, 261, 279, 2562, 1536, 8968, 266,
88
+ 13576, 1792, 1288, 535, 8712, 287, 264, 1280, 17928, 2560, 7944, 256, 791, 1083, 535, 827, 1024, 571, 279, 1595, 286,
89
+ 268, 270, 2560, 2562, 7688, 512, 1288, 2816, 11272, 1024, 6664, 1536, 2818, 1280, 8299, 5896, 268, 270, 571, 279,
90
+ 1024, 13576, 315, 279, 315, 1815, 256, 317, 315, 279, 571, 2071, 1595, 535, 2060, 512, 270, 2562, 1536, 2562, 3328,
91
+ 266, 2048, 1292, 1550, 524, 270, 279, 526, 524, 526, 1292, 270, 4620, 270, 512, 1548, 270, 1036, 281, 5120, 1047, 315,
92
+ 264, 307, 264, 307, 264, 307, 264, 307, 264, 307, 776, 307, 8456, 319, 320, 1303, 321, 279, 321, 571, 577, 279, 321,
93
+ 358, 2056, 768, 2562, 4352, 268, 270, 1804, 3072, 535, 315, 7688, 315, 1047, 571, 535, 358, 317, 535, 520, 2562,
94
+ 11272, 319, 315, 535, 827, 279, 315, 791, 614, 3072, 9224, 2107, 2071, 571, 279, 319, 2048, 2562, 768, 776, 2562,
95
+ 7688, 1546, 512, 2308, 259, 260, 1280, 11011, 512, 771, 4096, 780, 256, 275, 1294, 524, 1038, 268, 315, 1811, 1032,
96
+ 270, 1544, 268, 520, 315, 524, 264, 1280, 11268, 16137, 3332, 265, 8708, 9481, 524, 270, 1804, 270, 524, 281, 367,
97
+ 270, 272, 9484, 269, 543, 270, 368, 268, 280, 270, 268, 270, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262,
98
+ 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263,
99
+ 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262,
100
+ 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263,
101
+ 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262,
102
+ 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263,
103
+ 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262,
104
+ 1287, 260, 263, 516, 259, 260, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262,
105
+ 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263,
106
+ 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262,
107
+ 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263, 262, 263,
108
+ 262, 263, 262, 263, 259, 260, 259, 260, 259, 260, 2055, 2054, 1543, 512, 1542, 512, 2055, 2054, 2055, 2054, 1543, 512,
109
+ 1542, 512, 2055, 256, 262, 256, 262, 256, 262, 256, 262, 2055, 2054, 263, 369, 263, 369, 263, 369, 263, 369, 263, 369,
110
+ 263, 369, 263, 369, 512, 2055, 2054, 2055, 2054, 2055, 2054, 1287, 256, 519, 774, 370, 262, 257, 369, 513, 284, 775,
111
+ 256, 519, 262, 370, 262, 370, 262, 796, 775, 369, 512, 519, 774, 370, 256, 796, 775, 369, 1031, 774, 370, 262, 284,
112
+ 541, 512, 775, 256, 519, 262, 370, 262, 370, 262, 285, 257, 256, 539, 2304, 1285, 2048, 513, 2560, 257, 512, 257, 512,
113
+ 1285, 12544, 1285, 256, 2565, 258, 265, 512, 1538, 1280, 265, 2562, 1536, 3337, 13056, 524, 531, 1036, 787, 524, 1047,
114
+ 268, 791, 531, 268, 270, 268, 531, 1038, 268, 4352, 260, 1024, 260, 512, 2564, 256, 260, 768, 1284, 1536, 260, 256,
115
+ 370, 256, 260, 256, 626, 516, 256, 772, 259, 516, 1032, 260, 512, 1028, 1280, 1284, 1024, 260, 256, 4098, 4211, 4212,
116
+ 770, 259, 260, 1282, 4096, 629, 4608, 373, 7680, 885, 13312, 373, 1024, 373, 512, 373, 5888, 373, 256, 373, 6656, 373,
117
+ 512, 373, 512, 373, 256, 373, 5632, 373, 256, 373, 2560, 1397, 512, 629, 512, 629, 1536, 629, 512, 629, 512, 629,
118
+ 8704, 1141, 12288, 1141, 1536, 1141, 15104, 539, 79104, 15362, 6656, 6774, 6775, 5634, 161280, 7682, 215040, 283,
119
+ 74496, 12291, 12292, 259, 260, 771, 516, 259, 260, 259, 260, 259, 260, 1027, 260, 259, 516, 259, 1540, 521, 771, 260,
120
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259,
121
+ 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
122
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259,
123
+ 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
124
+ 259, 260, 259, 260, 259, 516, 1536, 259, 260, 259, 260, 780, 259, 260, 2304, 258, 512, 9732, 256, 260, 1280, 260, 512,
125
+ 14344, 1792, 266, 3840, 317, 5896, 2304, 1800, 256, 1800, 256, 1800, 256, 1800, 256, 1800, 256, 1800, 256, 1800, 256,
126
+ 1800, 256, 8204, 12032, 266, 20480, 6776, 256, 22904, 3072, 54904, 12032, 377, 264, 378, 6400, 2426, 368, 287, 269,
127
+ 286, 635, 256, 1290, 512, 890, 377, 264, 1024, 2940, 381, 380, 381, 380, 381, 380, 381, 380, 381, 380, 381, 380, 381,
128
+ 380, 381, 380, 381, 380, 381, 380, 381, 380, 381, 636, 381, 380, 381, 380, 381, 1660, 637, 380, 637, 380, 637, 380,
129
+ 637, 380, 637, 5756, 381, 636, 512, 638, 513, 383, 384, 380, 256, 2945, 386, 385, 386, 385, 386, 385, 386, 385, 386,
130
+ 385, 386, 385, 386, 385, 386, 385, 386, 385, 386, 385, 386, 385, 386, 641, 386, 385, 386, 385, 386, 1665, 642, 385,
131
+ 642, 385, 642, 385, 642, 385, 642, 5761, 386, 641, 1154, 256, 266, 387, 388, 385, 1280, 11016, 256, 24165, 768, 1026,
132
+ 2560, 8200, 12288, 4225, 8069, 256, 2562, 7680, 2050, 256, 3842, 8069, 256, 2562, 9984, 3842, 4096, 12166, 256, 22662,
133
+ 43008, 1687687, 16384, 5374087, 5384, 266, 292616, 17152, 10248, 1546, 512, 68616, 266, 768, 4104, 2562, 520, 5120,
134
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259,
135
+ 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
136
+ 264, 268, 791, 256, 2572, 256, 266, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
137
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 521, 524, 17928, 2562, 524, 3584, 5889, 2314, 513, 259,
138
+ 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 772, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
139
+ 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259,
140
+ 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
141
+ 259, 260, 259, 260, 259, 260, 265, 2052, 259, 260, 259, 260, 515, 260, 259, 260, 259, 260, 259, 260, 259, 260, 266,
142
+ 513, 259, 260, 259, 260, 264, 259, 260, 259, 772, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259,
143
+ 260, 259, 260, 259, 260, 259, 260, 1283, 260, 1283, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260,
144
+ 259, 260, 1027, 260, 259, 260, 515, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259, 260, 259,
145
+ 5120, 1033, 259, 260, 264, 521, 260, 1800, 279, 776, 317, 1032, 279, 5896, 571, 535, 315, 1024, 317, 768, 1538, 2560,
146
+ 13320, 3072, 571, 12808, 4155, 317, 279, 2560, 2562, 1536, 4620, 1544, 768, 264, 256, 520, 279, 2562, 7176, 1303, 782,
147
+ 512, 5896, 2839, 315, 358, 3072, 7525, 768, 791, 315, 12040, 319, 571, 1047, 571, 535, 571, 358, 3584, 266, 2562,
148
+ 1536, 1371, 350, 392, 2395, 2658, 1371, 256, 10504, 1559, 571, 535, 571, 535, 2304, 776, 279, 2056, 279, 315, 512,
149
+ 2562, 1536, 4187, 392, 1627, 867, 347, 349, 350, 349, 603, 12296, 268, 264, 524, 270, 520, 524, 1288, 524, 264, 268,
150
+ 264, 6144, 520, 266, 512, 2824, 315, 535, 571, 512, 264, 522, 315, 317, 2560, 1544, 512, 1544, 512, 1544, 2304, 1800,
151
+ 256, 1800, 256, 11012, 257, 1033, 2308, 265, 513, 1024, 20484, 8968, 571, 279, 571, 279, 571, 256, 315, 317, 512,
152
+ 2562, 1536, 2860133, 3072, 5989, 1024, 12645, 2163712, 69257, 647, 393, 391, 393, 647, 2697, 391, 393, 391, 393, 647,
153
+ 649, 903, 17545, 512, 27273, 9728, 1796, 3072, 1284, 1280, 318, 394, 318, 2312, 256, 3390, 256, 1342, 256, 318, 256,
154
+ 574, 256, 574, 256, 2366, 25352, 4353, 4096, 92936, 4608, 16392, 512, 13832, 10240, 3080, 1024, 4119, 768, 257, 3072,
155
+ 1804, 1806, 524, 8704, 257, 512, 257, 6656, 1288, 256, 34568, 512, 261, 1792, 257, 1536, 257, 256, 2562, 257, 1536,
156
+ 6659, 768, 257, 256, 257, 6660, 2816, 2689, 266, 11649, 522, 8037, 768, 1637, 512, 1637, 512, 1637, 512, 869, 1536,
157
+ 257, 5376, 773, 1024, 3080, 256, 6664, 256, 4872, 256, 520, 256, 3848, 512, 3592, 8704, 31496, 3072, 11522, 3072,
158
+ 14594, 4352, 514, 28928, 270, 33280, 7432, 768, 12552, 3840, 270, 6914, 1024, 8200, 1026, 2304, 5128, 258, 2056, 258,
159
+ 1280, 9736, 1292, 1280, 7688, 512, 9224, 1024, 2056, 256, 1282, 10752, 10243, 10244, 19976, 512, 2562, 1536, 9219,
160
+ 1024, 9220, 1024, 10248, 2048, 13320, 3072, 2819, 256, 3843, 256, 1795, 256, 515, 256, 2820, 256, 3844, 256, 1796,
161
+ 256, 516, 768, 2312, 307, 6664, 307, 3848, 3072, 79624, 2304, 5640, 2560, 2056, 6144, 265, 522, 777, 256, 10761, 256,
162
+ 2313, 17664, 1544, 512, 264, 256, 11272, 256, 520, 768, 264, 512, 5896, 512, 2050, 5896, 512, 1794, 7944, 2048, 2306,
163
+ 12288, 4872, 256, 520, 1280, 1282, 5640, 1538, 1024, 6664, 1536, 6664, 9728, 14344, 1024, 514, 520, 4098, 512, 11778,
164
+ 264, 791, 256, 535, 1280, 279, 270, 279, 268, 1032, 256, 776, 256, 7432, 512, 268, 275, 270, 1024, 317, 2306, 5888,
165
+ 7432, 514, 256, 7432, 770, 8192, 2056, 256, 7176, 268, 270, 1024, 1282, 4096, 13832, 2560, 5640, 512, 2050, 4872,
166
+ 1280, 2050, 4616, 5888, 1794, 20480, 18696, 14080, 13059, 3328, 13060, 1792, 1538, 9224, 1036, 2048, 2562, 1536, 2562,
167
+ 1032, 266, 264, 5635, 768, 1292, 256, 266, 5636, 55808, 7938, 256, 10760, 256, 524, 768, 520, 4096, 776, 266, 520,
168
+ 12800, 526, 279, 782, 7432, 2562, 264, 2048, 5640, 526, 780, 270, 268, 1038, 1026, 6912, 4616, 268, 270, 268, 270,
169
+ 10752, 5384, 1794, 5120, 5896, 2304, 315, 279, 315, 13576, 3607, 317, 2816, 7682, 317, 520, 535, 264, 2304, 317, 535,
170
+ 315, 5896, 307, 264, 307, 3592, 307, 1032, 827, 1047, 571, 317, 316, 512, 261, 1024, 279, 2560, 261, 512, 6408, 1792,
171
+ 2562, 1536, 780, 9224, 322, 1047, 315, 279, 579, 791, 573, 256, 2562, 1024, 264, 571, 264, 2048, 8968, 319, 512, 264,
172
+ 2304, 535, 315, 12296, 827, 2327, 315, 358, 1032, 1024, 279, 319, 535, 256, 315, 279, 2562, 264, 256, 264, 1024, 5122,
173
+ 2816, 4616, 256, 6408, 827, 791, 571, 279, 358, 319, 279, 1536, 279, 520, 279, 15872, 1800, 256, 264, 256, 1032, 256,
174
+ 3848, 256, 2568, 1792, 12040, 279, 827, 1559, 319, 317, 1280, 2562, 1536, 535, 571, 256, 2056, 512, 520, 512, 5640,
175
+ 256, 1800, 256, 520, 256, 1288, 256, 575, 264, 320, 315, 279, 1083, 512, 571, 512, 577, 358, 512, 264, 1536, 320,
176
+ 1280, 1288, 571, 512, 1804, 768, 1292, 2816, 776, 307, 264, 307, 1032, 256, 264, 512, 307, 256, 264, 307, 9224, 256,
177
+ 264, 320, 571, 322, 1303, 256, 320, 512, 321, 256, 577, 320, 315, 256, 571, 317, 358, 317, 264, 279, 264, 3328, 535,
178
+ 7424, 13576, 827, 2071, 571, 317, 535, 315, 319, 1032, 1280, 2562, 1024, 268, 776, 7680, 12296, 320, 571, 1559, 315,
179
+ 322, 577, 320, 321, 535, 315, 317, 319, 520, 256, 264, 2048, 2562, 42496, 12040, 320, 571, 1047, 512, 571, 577, 535,
180
+ 315, 317, 319, 5888, 1032, 535, 8704, 12296, 827, 2071, 571, 279, 315, 317, 279, 768, 264, 2816, 2562, 9728, 11016,
181
+ 279, 315, 279, 571, 1559, 358, 319, 264, 1792, 2562, 1536, 5218, 7168, 6920, 512, 279, 315, 279, 571, 1047, 315, 1047,
182
+ 317, 1024, 3074, 1024, 1800, 47360, 11272, 827, 2327, 315, 317, 319, 25856, 8195, 8196, 4866, 3072, 2056, 512, 264,
183
+ 512, 2056, 256, 520, 256, 6152, 320, 1339, 256, 315, 321, 512, 535, 358, 317, 264, 315, 264, 315, 319, 3072, 2562,
184
+ 17920, 2056, 512, 9992, 827, 1047, 512, 535, 1083, 317, 264, 256, 264, 315, 6912, 264, 2583, 10248, 279, 317, 1047,
185
+ 315, 264, 1047, 2048, 317, 2048, 264, 1559, 571, 791, 11784, 3351, 315, 279, 317, 768, 264, 4608, 18696, 26368, 279,
186
+ 315, 791, 315, 279, 315, 22528, 8456, 3840, 2562, 1536, 2312, 256, 9480, 315, 1815, 256, 1559, 315, 317, 264, 3840,
187
+ 7426, 1280, 7688, 512, 5655, 256, 315, 1815, 315, 535, 315, 535, 18688, 1800, 256, 520, 256, 9736, 1559, 768, 279,
188
+ 256, 535, 256, 791, 319, 279, 573, 264, 279, 2048, 2562, 1536, 1544, 256, 520, 256, 8200, 1339, 256, 535, 256, 571,
189
+ 279, 315, 317, 264, 1792, 2562, 1536, 10504, 266, 520, 1024, 2562, 62976, 4872, 535, 571, 2304, 535, 264, 315, 3336,
190
+ 256, 8712, 571, 1303, 768, 571, 279, 358, 317, 3328, 2562, 279, 21760, 264, 3840, 5378, 11008, 236040, 26112, 28418,
191
+ 4352, 50184, 674816, 24840, 3840, 274440, 4101, 279, 1544, 3863, 2560, 1022728, 1280, 149256, 1751296, 7688, 834,
192
+ 2115, 322, 827, 535, 317, 2562, 443904, 145672, 1792, 7944, 256, 2562, 1536, 20232, 256, 2562, 1536, 7688, 512, 1299,
193
+ 2816, 12296, 1804, 2304, 1034, 3072, 2562, 256, 1794, 256, 5384, 1280, 4872, 110592, 778, 9224, 395, 819, 522, 768,
194
+ 2562, 50688, 8195, 8196, 5890, 2304, 6403, 512, 6404, 11264, 19208, 1024, 279, 264, 14139, 1792, 1047, 3338, 16384,
195
+ 522, 376, 377, 279, 2816, 652, 633, 890, 2304, 1889800, 10496, 8200, 24832, 29448, 2227456, 1155, 256, 1923, 256, 643,
196
+ 256, 385, 73596, 897, 3840, 380, 7424, 892, 512, 385, 3584, 1153, 2048, 101384, 590848, 27400, 1280, 3336, 768, 2312,
197
+ 1792, 2568, 768, 279, 275, 256, 1029, 1068032, 2562, 132608, 11799, 512, 5911, 136960, 1819, 653, 787, 768, 398, 1421,
198
+ 2053, 2062, 512, 1292, 526, 7680, 1036, 3328, 1563, 33024, 780, 31488, 5122, 3072, 5122, 27648, 6402, 34560, 21764,
199
+ 256, 18180, 256, 516, 512, 260, 512, 516, 512, 1028, 256, 3076, 256, 260, 256, 1796, 256, 16644, 256, 1028, 512, 2052,
200
+ 256, 1796, 256, 7172, 256, 1028, 256, 1284, 256, 260, 768, 1796, 256, 87044, 512, 6404, 256, 6404, 256, 7940, 256,
201
+ 6404, 256, 7940, 256, 6404, 256, 7940, 256, 6404, 256, 7940, 256, 6404, 256, 2052, 512, 12802, 131072, 14103, 1024,
202
+ 12823, 2048, 279, 3584, 279, 5632, 1303, 256, 3863, 282624, 2564, 264, 5124, 1536, 1540, 54528, 1804, 256, 4364, 512,
203
+ 1804, 256, 524, 256, 1292, 1280, 15881, 8448, 268, 28672, 11528, 768, 1804, 1802, 512, 2562, 1024, 264, 82176, 7688,
204
+ 268, 4352, 11272, 1036, 2562, 120320, 6920, 266, 525, 270, 268, 2562, 54784, 7688, 268, 270, 264, 2562, 50432, 7944,
205
+ 256, 776, 268, 520, 268, 1800, 524, 1288, 268, 2048, 264, 266, 57344, 1800, 256, 1032, 256, 520, 256, 3848, 256,
206
+ 50440, 512, 2306, 1806, 10496, 8707, 8708, 1548, 319, 266, 1024, 2562, 202496, 15106, 256, 770, 256, 1026, 19456,
207
+ 11522, 256, 3842, 49664, 1032, 256, 6920, 256, 520, 256, 264, 512, 264, 256, 2568, 256, 1032, 256, 264, 256, 264,
208
+ 1536, 264, 1024, 264, 256, 264, 256, 264, 256, 776, 256, 520, 256, 264, 512, 264, 256, 264, 256, 264, 256, 264, 256,
209
+ 264, 256, 520, 256, 264, 512, 1032, 256, 1800, 256, 1032, 256, 1032, 256, 264, 256, 2568, 256, 4360, 1280, 776, 256,
210
+ 1288, 256, 4360, 148480, 3330, 8960, 6775, 1536, 6775, 1536, 6775, 30208, 399, 129536, 1281, 520192, 2562, 263680,
211
+ 10936455, 8192, 1121927, 512, 1478279, 512, 1913223, 3840, 159367, 631296, 138889, 385536, 1264519, 1280, 2173575,
212
+ 181110528, 261, 7680, 24581, 32768, 61463, 50204672,
213
+ };
214
+ const uint32_t narsil_unicode_property_runs_length = 4179;
@@ -1,4 +1,5 @@
1
1
  #include "internal.h"
2
+ #include "keyword/scratch.h"
2
3
 
3
4
  #include "../include/narsil_core.h"
4
5
 
@@ -14,6 +15,8 @@
14
15
 
15
16
  int32_t narsil_core_abi_version(void) { return NARSIL_CORE_ABI_VERSION; }
16
17
 
18
+ keyword_scratch *workspace_keyword_scratch(narsil_workspace *workspace) { return &workspace->keyword; }
19
+
17
20
  uint32_t grown_capacity(uint32_t first, uint32_t needed) {
18
21
  uint32_t capacity = first;
19
22
  while (capacity < needed) {
@@ -69,6 +72,7 @@ void narsil_workspace_destroy(narsil_workspace *workspace) {
69
72
  free(workspace->selection_counts);
70
73
  free(workspace->visited);
71
74
  free(workspace->entry_points);
75
+ keyword_scratch_release(&workspace->keyword);
72
76
  free(workspace);
73
77
  }
74
78
 
@@ -110,7 +114,7 @@ size_t narsil_workspace_bytes(const narsil_workspace *workspace) {
110
114
  return sizeof *workspace + ((size_t)workspace->frontier.capacity * heap_entry) +
111
115
  ((size_t)workspace->found.capacity * heap_entry) + ((size_t)workspace->visited_capacity * sizeof(uint32_t)) +
112
116
  ((size_t)workspace->entry_point_capacity * sizeof(int32_t)) + workspace->dimension_scratch_bytes +
113
- link_bytes(workspace);
117
+ link_bytes(workspace) + keyword_scratch_bytes(&workspace->keyword);
114
118
  }
115
119
 
116
120
  narsil_status workspace_reserve_dimension(narsil_workspace *workspace, uint32_t dimension) {
@@ -0,0 +1,3 @@
1
+ import type { NativeAnalysisCore } from '@delali/narsil';
2
+ import type { NarsilCore } from '../specs/core.nitro';
3
+ export declare function adaptAnalysis(core: NarsilCore): NativeAnalysisCore;
@@ -0,0 +1,76 @@
1
+ import { withNativeCode } from './native-error';
2
+ const ANALYSIS_METHODS = [
3
+ 'languageCount',
4
+ 'languageName',
5
+ 'languageRevision',
6
+ 'languageStopWords',
7
+ 'createStopWordSet',
8
+ 'analyse',
9
+ 'transform',
10
+ ];
11
+ function rawMethodOf(core, name) {
12
+ const method = Reflect.get(core, name);
13
+ if (typeof method !== 'function') {
14
+ return () => {
15
+ throw new Error(`The native search core on this phone has no ${name} method, so it cannot analyse text.`);
16
+ };
17
+ }
18
+ return (...parameters) => {
19
+ try {
20
+ return Reflect.apply(method, core, parameters);
21
+ }
22
+ catch (error) {
23
+ throw withNativeCode(error);
24
+ }
25
+ };
26
+ }
27
+ function numberOf(value, name) {
28
+ if (typeof value !== 'number')
29
+ throw new Error(`The native search core returned no number from ${name}.`);
30
+ return value;
31
+ }
32
+ function textOf(value, name) {
33
+ if (typeof value !== 'string')
34
+ throw new Error(`The native search core returned no string from ${name}.`);
35
+ return value;
36
+ }
37
+ function textListOf(value, name) {
38
+ if (!Array.isArray(value) || !value.every(entry => typeof entry === 'string')) {
39
+ throw new Error(`The native search core returned no list of strings from ${name}.`);
40
+ }
41
+ return value;
42
+ }
43
+ function handleOf(value) {
44
+ if (typeof value !== 'object' || value === null) {
45
+ throw new Error('The native search core returned no stop word set from createStopWordSet.');
46
+ }
47
+ return value;
48
+ }
49
+ function analysisResultOf(value, name) {
50
+ if (value === null || typeof value === 'string' || typeof value === 'number')
51
+ return value;
52
+ throw new Error(`The native search core returned an unexpected value from ${name}.`);
53
+ }
54
+ export function adaptAnalysis(core) {
55
+ const languageCount = rawMethodOf(core, 'languageCount');
56
+ const languageName = rawMethodOf(core, 'languageName');
57
+ const languageRevision = rawMethodOf(core, 'languageRevision');
58
+ const languageStopWords = rawMethodOf(core, 'languageStopWords');
59
+ const createStopWordSet = rawMethodOf(core, 'createStopWordSet');
60
+ const analyse = rawMethodOf(core, 'analyse');
61
+ const transform = rawMethodOf(core, 'transform');
62
+ return {
63
+ languageCount: () => numberOf(languageCount(), 'languageCount'),
64
+ languageName: language => textOf(languageName(language), 'languageName'),
65
+ languageRevision: language => textOf(languageRevision(language), 'languageRevision'),
66
+ languageStopWords: language => textListOf(languageStopWords(language), 'languageStopWords'),
67
+ createStopWordSet: words => handleOf(createStopWordSet(words)),
68
+ analyse: (language, flags, text, stopWords, records) => analysisResultOf(analyse(language, flags, text, stopWords, records.buffer, records.byteOffset, records.length), 'analyse'),
69
+ transform(language, flags, token) {
70
+ const result = transform(language, flags, token);
71
+ if (typeof result === 'string' || typeof result === 'number')
72
+ return result;
73
+ throw new Error('The native search core returned an unexpected value from transform.');
74
+ },
75
+ };
76
+ }
@@ -1,3 +1,5 @@
1
+ import { adaptAnalysis } from './analysis';
2
+ import { adaptKeyword } from './keyword';
1
3
  import { withNativeCode } from './native-error';
2
4
  const ABSENT_REGION = { buffer: new ArrayBuffer(0), byteOffset: 0, byteLength: 0 };
3
5
  function viewOf(array) {
@@ -79,6 +81,8 @@ function backgroundCalls(core) {
79
81
  }
80
82
  export function adaptCore(core, nativeThreads) {
81
83
  return {
84
+ ...adaptAnalysis(core),
85
+ ...adaptKeyword(core),
82
86
  abiVersion: () => core.abiVersion(),
83
87
  workspaceBytes: () => core.workspaceBytes(),
84
88
  attachGraph(memory) {
@@ -109,5 +113,6 @@ export function adaptCore(core, nativeThreads) {
109
113
  connectUnreached: (graph, store, metric, nearby, threadSlot, wakes) => core.connectUnreached(graphOf(graph), storeOf(store), metric, viewOf(nearby), threadSlot, viewOf(wakes)),
110
114
  measure: (store, metric, ordinals, count, totals) => core.measure(storeOf(store), metric, viewOf(ordinals), count, viewOf(totals)),
111
115
  quantise: (store, metric, ordinals, count) => core.quantise(storeOf(store), metric, viewOf(ordinals), count),
116
+ applyMath: (operation, first, second, results) => core.applyMath(operation, viewOf(first), viewOf(second), viewOf(results)),
112
117
  };
113
118
  }
@@ -0,0 +1,3 @@
1
+ import type { NativeKeywordCore } from '@delali/narsil';
2
+ import type { NarsilCore } from '../specs/core.nitro';
3
+ export declare function adaptKeyword(core: NarsilCore): NativeKeywordCore;
@@ -0,0 +1,25 @@
1
+ import { withNativeCode } from './native-error';
2
+ export function adaptKeyword(core) {
3
+ const method = Reflect.get(core, 'keywordScore');
4
+ if (typeof method !== 'function') {
5
+ return {
6
+ keywordScore() {
7
+ throw new Error('The native search core on this phone has no keywordScore method, so it cannot score text.');
8
+ },
9
+ };
10
+ }
11
+ return {
12
+ keywordScore(...parameters) {
13
+ let status;
14
+ try {
15
+ status = Reflect.apply(method, core, parameters);
16
+ }
17
+ catch (error) {
18
+ throw withNativeCode(error);
19
+ }
20
+ if (typeof status !== 'number')
21
+ throw new Error('The native search core returned no status from keywordScore.');
22
+ return status;
23
+ },
24
+ };
25
+ }
@@ -76,4 +76,5 @@ export interface NarsilCore extends HybridObject<{
76
76
  connectUnreachedAsync(graph: NarsilAttachedGraph, store: NarsilAttachedStore, metric: number, nearby: MemoryView, threadSlot: number): Promise<NativeConnectOutcome>;
77
77
  measure(store: NarsilAttachedStore, metric: number, ordinals: MemoryView, count: number, totals: MemoryView): number;
78
78
  quantise(store: NarsilAttachedStore, metric: number, ordinals: MemoryView, count: number): number;
79
+ applyMath(operation: number, first: MemoryView, second: MemoryView, results: MemoryView): number;
79
80
  }
@@ -29,6 +29,7 @@ namespace margelo::nitro::narsil {
29
29
  prototype.registerHybridMethod("connectUnreachedAsync", &HybridNarsilCoreSpec::connectUnreachedAsync);
30
30
  prototype.registerHybridMethod("measure", &HybridNarsilCoreSpec::measure);
31
31
  prototype.registerHybridMethod("quantise", &HybridNarsilCoreSpec::quantise);
32
+ prototype.registerHybridMethod("applyMath", &HybridNarsilCoreSpec::applyMath);
32
33
  });
33
34
  }
34
35
 
@@ -87,6 +87,7 @@ namespace margelo::nitro::narsil {
87
87
  virtual std::shared_ptr<Promise<NativeConnectOutcome>> connectUnreachedAsync(const std::shared_ptr<HybridNarsilAttachedGraphSpec>& graph, const std::shared_ptr<HybridNarsilAttachedStoreSpec>& store, double metric, const MemoryView& nearby, double threadSlot) = 0;
88
88
  virtual double measure(const std::shared_ptr<HybridNarsilAttachedStoreSpec>& store, double metric, const MemoryView& ordinals, double count, const MemoryView& totals) = 0;
89
89
  virtual double quantise(const std::shared_ptr<HybridNarsilAttachedStoreSpec>& store, double metric, const MemoryView& ordinals, double count) = 0;
90
+ virtual double applyMath(double operation, const MemoryView& first, const MemoryView& second, const MemoryView& results) = 0;
90
91
 
91
92
  protected:
92
93
  // Hybrid Setup
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delali/narsil-react-native",
3
- "version": "0.3.1-next.155",
3
+ "version": "0.3.1-next.157",
4
4
  "description": "Narsil for React Native: keyword and vector search on the phone, with the index kept in durable files.",
5
5
  "author": "Delali (https://sondelali.com)",
6
6
  "license": "Apache-2.0",
@@ -49,11 +49,12 @@
49
49
  "app.plugin.js",
50
50
  "react-native.config.js",
51
51
  "LICENSE",
52
+ "NOTICE",
52
53
  "README.md"
53
54
  ],
54
55
  "sideEffects": false,
55
56
  "peerDependencies": {
56
- "@delali/narsil": "0.3.1-next.155",
57
+ "@delali/narsil": "0.3.1-next.157",
57
58
  "expo": "*",
58
59
  "react-native": "*",
59
60
  "react-native-nitro-modules": "*",
@@ -75,7 +76,7 @@
75
76
  "react-native-nitro-modules": "0.37.1",
76
77
  "react-native-worklets": "0.13.0",
77
78
  "typescript": "5.9.3",
78
- "@delali/narsil": "0.3.1-next.155"
79
+ "@delali/narsil": "0.3.1-next.157"
79
80
  },
80
81
  "dependencies": {
81
82
  "web-streams-polyfill": "4.3.0"