@delali/narsil 0.1.15 → 0.2.0

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 (251) hide show
  1. package/NOTICE +54 -0
  2. package/README.md +38 -982
  3. package/dist/adapters/filesystem.mjs +1 -1
  4. package/dist/adapters/indexeddb.mjs +1 -1
  5. package/dist/{chunk-WISGW24C.mjs → chunk-AUMKFYTG.mjs} +1 -1
  6. package/dist/{chunk-HRABJLPB.mjs → chunk-BKAI2WXI.mjs} +1 -0
  7. package/dist/chunk-GHJWC2E5.mjs +9 -0
  8. package/dist/chunk-KH3YGMVT.mjs +15 -0
  9. package/dist/{chunk-ALB35PRQ.mjs → chunk-M2EDG55Y.mjs} +8 -0
  10. package/dist/{chunk-HMO6OMZ3.mjs → chunk-S6IAXOBA.mjs} +1073 -506
  11. package/dist/chunk-TGP5M5R7.mjs +880 -0
  12. package/dist/chunk-U2BKYEC7.mjs +254 -0
  13. package/dist/{chunk-MEW7HD75.mjs → chunk-XAKNSWIK.mjs} +2543 -1154
  14. package/dist/{config-CojEPOgS.d.ts → config-P27AtSn4.d.ts} +28 -7
  15. package/dist/direct-executor-2FV3MEDD.mjs +5 -0
  16. package/dist/distribution/coordinator/etcd.d.ts +2 -2
  17. package/dist/distribution/coordinator/etcd.mjs +2 -2
  18. package/dist/distribution/coordinator/in-memory.d.ts +2 -2
  19. package/dist/distribution.d.ts +10 -4
  20. package/dist/distribution.mjs +1875 -1772
  21. package/dist/embeddings/openai.mjs +1 -1
  22. package/dist/index.browser.mjs +4566 -1783
  23. package/dist/index.d.ts +14 -5
  24. package/dist/index.mjs +6 -5
  25. package/dist/{language-ONQ3iVDf.d.ts → language-CmJBHf1j.d.ts} +4 -1
  26. package/dist/languages/albanian.d.ts +5 -0
  27. package/dist/languages/albanian.mjs +103 -0
  28. package/dist/languages/amharic.d.ts +5 -0
  29. package/dist/languages/amharic.mjs +240 -0
  30. package/dist/languages/arabic.d.ts +1 -1
  31. package/dist/languages/arabic.mjs +939 -154
  32. package/dist/languages/armenian.d.ts +1 -1
  33. package/dist/languages/armenian.mjs +275 -243
  34. package/dist/languages/azerbaijani.d.ts +5 -0
  35. package/dist/languages/azerbaijani.mjs +152 -0
  36. package/dist/languages/bambara.d.ts +5 -0
  37. package/dist/languages/bambara.mjs +60 -0
  38. package/dist/languages/basque.d.ts +5 -0
  39. package/dist/languages/basque.mjs +726 -0
  40. package/dist/languages/belarusian.d.ts +5 -0
  41. package/dist/languages/belarusian.mjs +100 -0
  42. package/dist/languages/bengali.d.ts +5 -0
  43. package/dist/languages/bengali.mjs +128 -0
  44. package/dist/languages/bosnian.d.ts +5 -0
  45. package/dist/languages/bosnian.mjs +197 -0
  46. package/dist/languages/breton.d.ts +5 -0
  47. package/dist/languages/breton.mjs +96 -0
  48. package/dist/languages/bulgarian.d.ts +1 -1
  49. package/dist/languages/bulgarian.mjs +11 -2
  50. package/dist/languages/burmese.d.ts +5 -0
  51. package/dist/languages/burmese.mjs +57 -0
  52. package/dist/languages/catalan.d.ts +5 -0
  53. package/dist/languages/catalan.mjs +987 -0
  54. package/dist/languages/chinese.d.ts +1 -1
  55. package/dist/languages/chinese.mjs +4 -3
  56. package/dist/languages/croatian.d.ts +5 -0
  57. package/dist/languages/croatian.mjs +191 -0
  58. package/dist/languages/czech.d.ts +5 -0
  59. package/dist/languages/czech.mjs +628 -0
  60. package/dist/languages/dagbani.d.ts +1 -1
  61. package/dist/languages/dagbani.mjs +11 -2
  62. package/dist/languages/danish.d.ts +1 -1
  63. package/dist/languages/danish.mjs +215 -110
  64. package/dist/languages/dutch.d.ts +1 -1
  65. package/dist/languages/dutch.mjs +1248 -163
  66. package/dist/languages/english.d.ts +1 -1
  67. package/dist/languages/english.mjs +2 -1
  68. package/dist/languages/esperanto.d.ts +5 -0
  69. package/dist/languages/esperanto.mjs +689 -0
  70. package/dist/languages/estonian.d.ts +5 -0
  71. package/dist/languages/estonian.mjs +2160 -0
  72. package/dist/languages/ewe.d.ts +1 -1
  73. package/dist/languages/ewe.mjs +11 -2
  74. package/dist/languages/faroese.d.ts +5 -0
  75. package/dist/languages/faroese.mjs +93 -0
  76. package/dist/languages/fijian.d.ts +5 -0
  77. package/dist/languages/fijian.mjs +55 -0
  78. package/dist/languages/finnish.d.ts +1 -1
  79. package/dist/languages/finnish.mjs +528 -263
  80. package/dist/languages/french.d.ts +1 -1
  81. package/dist/languages/french.mjs +950 -437
  82. package/dist/languages/ga.d.ts +1 -1
  83. package/dist/languages/ga.mjs +2 -1
  84. package/dist/languages/galician.d.ts +5 -0
  85. package/dist/languages/galician.mjs +172 -0
  86. package/dist/languages/georgian.d.ts +5 -0
  87. package/dist/languages/georgian.mjs +91 -0
  88. package/dist/languages/german.d.ts +1 -1
  89. package/dist/languages/german.mjs +432 -162
  90. package/dist/languages/greek.d.ts +1 -1
  91. package/dist/languages/greek.mjs +1970 -281
  92. package/dist/languages/guarani.d.ts +5 -0
  93. package/dist/languages/guarani.mjs +132 -0
  94. package/dist/languages/gujarati.d.ts +5 -0
  95. package/dist/languages/gujarati.mjs +234 -0
  96. package/dist/languages/haitian-creole.d.ts +5 -0
  97. package/dist/languages/haitian-creole.mjs +106 -0
  98. package/dist/languages/hausa.d.ts +1 -1
  99. package/dist/languages/hausa.mjs +2 -1
  100. package/dist/languages/hawaiian.d.ts +5 -0
  101. package/dist/languages/hawaiian.mjs +69 -0
  102. package/dist/languages/hebrew.d.ts +5 -0
  103. package/dist/languages/hebrew.mjs +213 -0
  104. package/dist/languages/hindi.d.ts +1 -1
  105. package/dist/languages/hindi.mjs +175 -97
  106. package/dist/languages/hungarian.d.ts +1 -1
  107. package/dist/languages/hungarian.mjs +412 -326
  108. package/dist/languages/icelandic.d.ts +5 -0
  109. package/dist/languages/icelandic.mjs +161 -0
  110. package/dist/languages/igbo.d.ts +1 -1
  111. package/dist/languages/igbo.mjs +2 -1
  112. package/dist/languages/indonesian.d.ts +1 -1
  113. package/dist/languages/indonesian.mjs +329 -137
  114. package/dist/languages/irish.d.ts +1 -1
  115. package/dist/languages/irish.mjs +223 -139
  116. package/dist/languages/italian.d.ts +1 -1
  117. package/dist/languages/italian.mjs +703 -406
  118. package/dist/languages/japanese.d.ts +1 -1
  119. package/dist/languages/japanese.mjs +5 -108
  120. package/dist/languages/kannada.d.ts +5 -0
  121. package/dist/languages/kannada.mjs +94 -0
  122. package/dist/languages/kazakh.d.ts +5 -0
  123. package/dist/languages/kazakh.mjs +90 -0
  124. package/dist/languages/khmer.d.ts +5 -0
  125. package/dist/languages/khmer.mjs +181 -0
  126. package/dist/languages/kinyarwanda.d.ts +5 -0
  127. package/dist/languages/kinyarwanda.mjs +99 -0
  128. package/dist/languages/kirundi.d.ts +5 -0
  129. package/dist/languages/kirundi.mjs +92 -0
  130. package/dist/languages/korean.d.ts +5 -0
  131. package/dist/languages/korean.mjs +252 -0
  132. package/dist/languages/kurmanji.d.ts +5 -0
  133. package/dist/languages/kurmanji.mjs +50 -0
  134. package/dist/languages/kyrgyz.d.ts +5 -0
  135. package/dist/languages/kyrgyz.mjs +108 -0
  136. package/dist/languages/lao.d.ts +5 -0
  137. package/dist/languages/lao.mjs +63 -0
  138. package/dist/languages/latin.d.ts +5 -0
  139. package/dist/languages/latin.mjs +69 -0
  140. package/dist/languages/latvian.d.ts +5 -0
  141. package/dist/languages/latvian.mjs +173 -0
  142. package/dist/languages/lingala.d.ts +5 -0
  143. package/dist/languages/lingala.mjs +61 -0
  144. package/dist/languages/lithuanian.d.ts +5 -0
  145. package/dist/languages/lithuanian.mjs +571 -0
  146. package/dist/languages/luxembourgish.d.ts +5 -0
  147. package/dist/languages/luxembourgish.mjs +214 -0
  148. package/dist/languages/macedonian.d.ts +5 -0
  149. package/dist/languages/macedonian.mjs +808 -0
  150. package/dist/languages/malagasy.d.ts +5 -0
  151. package/dist/languages/malagasy.mjs +67 -0
  152. package/dist/languages/malay.d.ts +5 -0
  153. package/dist/languages/malay.mjs +482 -0
  154. package/dist/languages/malayalam.d.ts +5 -0
  155. package/dist/languages/malayalam.mjs +122 -0
  156. package/dist/languages/maltese.d.ts +5 -0
  157. package/dist/languages/maltese.mjs +139 -0
  158. package/dist/languages/maori.d.ts +5 -0
  159. package/dist/languages/maori.mjs +79 -0
  160. package/dist/languages/marathi.d.ts +5 -0
  161. package/dist/languages/marathi.mjs +111 -0
  162. package/dist/languages/nepali.d.ts +1 -1
  163. package/dist/languages/nepali.mjs +209 -99
  164. package/dist/languages/norwegian.d.ts +1 -1
  165. package/dist/languages/norwegian.mjs +218 -85
  166. package/dist/languages/oromo.d.ts +5 -0
  167. package/dist/languages/oromo.mjs +78 -0
  168. package/dist/languages/persian.d.ts +5 -0
  169. package/dist/languages/persian.mjs +710 -0
  170. package/dist/languages/polish.d.ts +5 -0
  171. package/dist/languages/polish.mjs +614 -0
  172. package/dist/languages/portuguese.d.ts +1 -1
  173. package/dist/languages/portuguese.mjs +613 -380
  174. package/dist/languages/punjabi.d.ts +5 -0
  175. package/dist/languages/punjabi.mjs +197 -0
  176. package/dist/languages/romanian.d.ts +1 -1
  177. package/dist/languages/romanian.mjs +561 -382
  178. package/dist/languages/russian.d.ts +1 -1
  179. package/dist/languages/russian.mjs +373 -244
  180. package/dist/languages/samoan.d.ts +5 -0
  181. package/dist/languages/samoan.mjs +63 -0
  182. package/dist/languages/sanskrit.d.ts +1 -1
  183. package/dist/languages/sanskrit.mjs +2 -2
  184. package/dist/languages/scottish-gaelic.d.ts +5 -0
  185. package/dist/languages/scottish-gaelic.mjs +370 -0
  186. package/dist/languages/serbian.d.ts +1 -1
  187. package/dist/languages/serbian.mjs +3635 -155
  188. package/dist/languages/shona.d.ts +5 -0
  189. package/dist/languages/shona.mjs +91 -0
  190. package/dist/languages/sinhala.d.ts +5 -0
  191. package/dist/languages/sinhala.mjs +182 -0
  192. package/dist/languages/slovak.d.ts +5 -0
  193. package/dist/languages/slovak.mjs +430 -0
  194. package/dist/languages/slovenian.d.ts +1 -1
  195. package/dist/languages/slovenian.mjs +11 -2
  196. package/dist/languages/sorani.d.ts +5 -0
  197. package/dist/languages/sorani.mjs +156 -0
  198. package/dist/languages/spanish.d.ts +1 -1
  199. package/dist/languages/spanish.mjs +676 -374
  200. package/dist/languages/swahili.d.ts +1 -1
  201. package/dist/languages/swahili.mjs +2 -1
  202. package/dist/languages/swedish.d.ts +1 -1
  203. package/dist/languages/swedish.mjs +237 -95
  204. package/dist/languages/tagalog.d.ts +5 -0
  205. package/dist/languages/tagalog.mjs +159 -0
  206. package/dist/languages/tamil.d.ts +1 -1
  207. package/dist/languages/tamil.mjs +836 -64
  208. package/dist/languages/tatar.d.ts +5 -0
  209. package/dist/languages/tatar.mjs +1017 -0
  210. package/dist/languages/telugu.d.ts +5 -0
  211. package/dist/languages/telugu.mjs +62 -0
  212. package/dist/languages/thai.d.ts +5 -0
  213. package/dist/languages/thai.mjs +65 -0
  214. package/dist/languages/tibetan.d.ts +5 -0
  215. package/dist/languages/tibetan.mjs +119 -0
  216. package/dist/languages/tigrinya.d.ts +5 -0
  217. package/dist/languages/tigrinya.mjs +194 -0
  218. package/dist/languages/tongan.d.ts +5 -0
  219. package/dist/languages/tongan.mjs +56 -0
  220. package/dist/languages/turkish.d.ts +1 -1
  221. package/dist/languages/turkish.mjs +1246 -393
  222. package/dist/languages/twi.d.ts +1 -1
  223. package/dist/languages/twi.mjs +13 -2
  224. package/dist/languages/ukrainian.d.ts +1 -1
  225. package/dist/languages/ukrainian.mjs +125 -47
  226. package/dist/languages/urdu.d.ts +5 -0
  227. package/dist/languages/urdu.mjs +528 -0
  228. package/dist/languages/vietnamese.d.ts +5 -0
  229. package/dist/languages/vietnamese.mjs +277 -0
  230. package/dist/languages/welsh.d.ts +5 -0
  231. package/dist/languages/welsh.mjs +446 -0
  232. package/dist/languages/wolof.d.ts +5 -0
  233. package/dist/languages/wolof.mjs +79 -0
  234. package/dist/languages/xhosa.d.ts +5 -0
  235. package/dist/languages/xhosa.mjs +95 -0
  236. package/dist/languages/yoruba.d.ts +1 -1
  237. package/dist/languages/yoruba.mjs +1 -0
  238. package/dist/languages/zulu.d.ts +1 -1
  239. package/dist/languages/zulu.mjs +2 -1
  240. package/dist/narsil-CMZRPDlQ.d.ts +159 -0
  241. package/dist/persistence/durability/checkpoint-worker.d.ts +13 -0
  242. package/dist/persistence/durability/checkpoint-worker.mjs +6 -5
  243. package/dist/{schema-DCgkO1j4.d.ts → schema-BnvLvjRp.d.ts} +5 -3
  244. package/dist/server.d.ts +4 -3
  245. package/dist/server.mjs +13 -2
  246. package/dist/{types-DHX6zGeD.d.ts → types-BRTcBgAp.d.ts} +1 -1
  247. package/dist/workers/entry.mjs +2 -2
  248. package/package.json +10 -3
  249. package/dist/chunk-TW6BXTOL.mjs +0 -338
  250. package/dist/direct-executor-E52FFGDE.mjs +0 -4
  251. package/dist/narsil-D-84Nvm4.d.ts +0 -72
@@ -1,71 +1,842 @@
1
- // src/languages/tamil.ts
2
- var VERB_SUFFIXES = [
3
- "\u0B95\u0BBF\u0BB1\u0BC0\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
4
- "\u0B95\u0BBF\u0BB1\u0BBE\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
5
- "\u0BA8\u0BCD\u0BA4\u0BC0\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
6
- "\u0BA8\u0BCD\u0BA4\u0BBE\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
7
- "\u0BB5\u0BC0\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
8
- "\u0BB5\u0BBE\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
9
- "\u0B95\u0BBF\u0BB1\u0BC7\u0BA9\u0BCD",
10
- "\u0B95\u0BBF\u0BB1\u0BBE\u0BAF\u0BCD",
11
- "\u0B95\u0BBF\u0BB1\u0BBE\u0BA9\u0BCD",
12
- "\u0B95\u0BBF\u0BB1\u0BBE\u0BB3\u0BCD",
13
- "\u0B95\u0BBF\u0BB1\u0BCB\u0BAE\u0BCD",
14
- "\u0B95\u0BBF\u0BA9\u0BCD\u0BB1\u0BA9",
15
- "\u0BA8\u0BCD\u0BA4\u0BC7\u0BA9\u0BCD",
16
- "\u0BA8\u0BCD\u0BA4\u0BBE\u0BAF\u0BCD",
17
- "\u0BA8\u0BCD\u0BA4\u0BBE\u0BA9\u0BCD",
18
- "\u0BA8\u0BCD\u0BA4\u0BBE\u0BB3\u0BCD",
19
- "\u0BA8\u0BCD\u0BA4\u0BCB\u0BAE\u0BCD",
20
- "\u0B95\u0BBF\u0BB1\u0BA4\u0BC1",
21
- "\u0BA8\u0BCD\u0BA4\u0BA4\u0BC1",
22
- "\u0BB5\u0BC7\u0BA9\u0BCD",
23
- "\u0BB5\u0BBE\u0BAF\u0BCD",
24
- "\u0BB5\u0BBE\u0BA9\u0BCD",
25
- "\u0BB5\u0BBE\u0BB3\u0BCD",
26
- "\u0BB5\u0BCB\u0BAE\u0BCD",
27
- "\u0BA8\u0BCD\u0BA4\u0BC1",
28
- "\u0BA4\u0BCD\u0BA4\u0BC1",
29
- "\u0BB5\u0BA4\u0BC1",
30
- "\u0B95\u0BCD\u0B95",
31
- "\u0BAF"
32
- ];
33
- var CASE_SUFFIXES = [
34
- "\u0B87\u0B9F\u0BAE\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1",
35
- "\u0B87\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1",
36
- "\u0B89\u0B95\u0BCD\u0B95\u0BC1",
37
- "\u0B89\u0B9F\u0BC8\u0BAF",
38
- "\u0B95\u0BCD\u0B95\u0BC1",
39
- "\u0B87\u0B9F\u0BAE\u0BCD",
40
- "\u0B89\u0B9F\u0BA9\u0BCD",
41
- "\u0B86\u0BB2\u0BCD",
42
- "\u0B92\u0B9F\u0BC1",
43
- "\u0B87\u0BA9\u0BCD",
44
- "\u0B85\u0BA4\u0BC1",
45
- "\u0B87\u0BB2\u0BCD",
46
- "\u0B95\u0BA3\u0BCD",
47
- "\u0B93\u0B9F\u0BC1",
48
- "\u0B90"
49
- ];
50
- var POST_POSITIONS = ["\u0BAA\u0BB1\u0BCD\u0BB1\u0BBF", "\u0BAE\u0BC7\u0BB2\u0BCD", "\u0B95\u0BC0\u0BB4\u0BCD", "\u0BAE\u0BC0\u0BA4\u0BC1", "\u0BB5\u0BB0\u0BC8"];
51
- function removeLongestSuffix(word, suffixes, minLength) {
52
- for (const suffix of suffixes) {
53
- if (word.endsWith(suffix) && word.length - suffix.length >= minLength) {
54
- return word.slice(0, word.length - suffix.length);
1
+ import { BaseStemmer } from '../chunk-U2BKYEC7.mjs';
2
+
3
+ // src/languages/snowball/tamil.ts
4
+ var a_0 = [
5
+ ["\u0BB5\u0BC1", 3],
6
+ ["\u0BB5\u0BC2", 4],
7
+ ["\u0BB5\u0BCA", 2],
8
+ ["\u0BB5\u0BCB", 1]
9
+ ];
10
+ var as_0 = ["\u0B93", "\u0B92", "\u0B89", "\u0B8A"];
11
+ var a_1 = [
12
+ ["\u0B95", -1],
13
+ ["\u0B99", -1],
14
+ ["\u0B9A", -1],
15
+ ["\u0B9E", -1],
16
+ ["\u0BA4", -1],
17
+ ["\u0BA8", -1],
18
+ ["\u0BAA", -1],
19
+ ["\u0BAE", -1],
20
+ ["\u0BAF", -1],
21
+ ["\u0BB5", -1]
22
+ ];
23
+ var a_2 = [
24
+ ["\u0BBF", -1],
25
+ ["\u0BC0", -1],
26
+ ["\u0BC8", -1]
27
+ ];
28
+ var a_3 = [
29
+ ["\u0BBE", -1],
30
+ ["\u0BBF", -1],
31
+ ["\u0BC0", -1],
32
+ ["\u0BC1", -1],
33
+ ["\u0BC2", -1],
34
+ ["\u0BC6", -1],
35
+ ["\u0BC7", -1],
36
+ ["\u0BC8", -1]
37
+ ];
38
+ var a_4 = [
39
+ ["", 2],
40
+ ["\u0BC8", 1, 1],
41
+ ["\u0BCD", 1, 2]
42
+ ];
43
+ var as_4 = ["", "\u0BAE\u0BCD"];
44
+ var a_5 = [
45
+ ["\u0BA8\u0BCD\u0BA4", 1],
46
+ ["\u0BAF", 1],
47
+ ["\u0BB5", 1],
48
+ ["\u0BA9\u0BC1", 8],
49
+ ["\u0BC1\u0B95\u0BCD", 7],
50
+ ["\u0BC1\u0B95\u0BCD\u0B95\u0BCD", 7],
51
+ ["\u0B9F\u0BCD\u0B95\u0BCD", 3],
52
+ ["\u0BB1\u0BCD\u0B95\u0BCD", 4],
53
+ ["\u0B99\u0BCD", 9],
54
+ ["\u0B9F\u0BCD\u0B9F\u0BCD", 5],
55
+ ["\u0BA4\u0BCD\u0BA4\u0BCD", 6],
56
+ ["\u0BA8\u0BCD\u0BA4\u0BCD", 1],
57
+ ["\u0BA8\u0BCD", 1],
58
+ ["\u0B9F\u0BCD\u0BAA\u0BCD", 3],
59
+ ["\u0BAF\u0BCD", 2],
60
+ ["\u0BA9\u0BCD\u0BB1\u0BCD", 4],
61
+ ["\u0BB5\u0BCD", 1]
62
+ ];
63
+ var a_6 = [
64
+ ["\u0B95", -1],
65
+ ["\u0B9A", -1],
66
+ ["\u0B9F", -1],
67
+ ["\u0BA4", -1],
68
+ ["\u0BAA", -1],
69
+ ["\u0BB1", -1]
70
+ ];
71
+ var a_7 = [
72
+ ["\u0B95", -1],
73
+ ["\u0B9A", -1],
74
+ ["\u0B9F", -1],
75
+ ["\u0BA4", -1],
76
+ ["\u0BAA", -1],
77
+ ["\u0BB1", -1]
78
+ ];
79
+ var a_8 = [
80
+ ["\u0B9E", -1],
81
+ ["\u0BA3", -1],
82
+ ["\u0BA8", -1],
83
+ ["\u0BA9", -1],
84
+ ["\u0BAE", -1],
85
+ ["\u0BAF", -1],
86
+ ["\u0BB0", -1],
87
+ ["\u0BB2", -1],
88
+ ["\u0BB3", -1],
89
+ ["\u0BB4", -1],
90
+ ["\u0BB5", -1]
91
+ ];
92
+ var a_9 = [
93
+ ["\u0BBE", -1],
94
+ ["\u0BBF", -1],
95
+ ["\u0BC0", -1],
96
+ ["\u0BC1", -1],
97
+ ["\u0BC2", -1],
98
+ ["\u0BC6", -1],
99
+ ["\u0BC7", -1],
100
+ ["\u0BC8", -1],
101
+ ["\u0BCD", -1]
102
+ ];
103
+ var a_10 = [
104
+ ["\u0B85", -1],
105
+ ["\u0B87", -1],
106
+ ["\u0B89", -1]
107
+ ];
108
+ var a_11 = [
109
+ ["\u0B95", -1],
110
+ ["\u0B99", -1],
111
+ ["\u0B9A", -1],
112
+ ["\u0B9E", -1],
113
+ ["\u0BA4", -1],
114
+ ["\u0BA8", -1],
115
+ ["\u0BAA", -1],
116
+ ["\u0BAE", -1],
117
+ ["\u0BAF", -1],
118
+ ["\u0BB5", -1]
119
+ ];
120
+ var a_12 = [
121
+ ["\u0B95", -1],
122
+ ["\u0B9A", -1],
123
+ ["\u0B9F", -1],
124
+ ["\u0BA4", -1],
125
+ ["\u0BAA", -1],
126
+ ["\u0BB1", -1]
127
+ ];
128
+ var a_13 = [
129
+ ["\u0B95\u0BB3\u0BCD", 4],
130
+ ["\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD", 1, 1],
131
+ ["\u0B9F\u0BCD\u0B95\u0BB3\u0BCD", 3, 2],
132
+ ["\u0BB1\u0BCD\u0B95\u0BB3\u0BCD", 2, 3]
133
+ ];
134
+ var a_14 = [
135
+ ["\u0BBE", -1],
136
+ ["\u0BC7", -1],
137
+ ["\u0BCB", -1]
138
+ ];
139
+ var a_15 = [
140
+ ["\u0BAA\u0BBF", -1],
141
+ ["\u0BB5\u0BBF", -1]
142
+ ];
143
+ var a_16 = [
144
+ ["\u0BBE", -1],
145
+ ["\u0BBF", -1],
146
+ ["\u0BC0", -1],
147
+ ["\u0BC1", -1],
148
+ ["\u0BC2", -1],
149
+ ["\u0BC6", -1],
150
+ ["\u0BC7", -1],
151
+ ["\u0BC8", -1]
152
+ ];
153
+ var a_17 = [
154
+ ["\u0BAA\u0B9F\u0BCD\u0B9F", 3],
155
+ ["\u0BAA\u0B9F\u0BCD\u0B9F\u0BA3", 3],
156
+ ["\u0BA4\u0BBE\u0BA9", 3],
157
+ ["\u0BAA\u0B9F\u0BBF\u0BA4\u0BBE\u0BA9", 3, 1],
158
+ ["\u0BC6\u0BA9", 1],
159
+ ["\u0BBE\u0B95\u0BBF\u0BAF", 1],
160
+ ["\u0B95\u0BC1\u0BB0\u0BBF\u0BAF", 3],
161
+ ["\u0BC1\u0B9F\u0BC8\u0BAF", 1],
162
+ ["\u0BB2\u0BCD\u0BB2", 2],
163
+ ["\u0BC1\u0BB3\u0BCD\u0BB3", 1],
164
+ ["\u0BBE\u0B95\u0BBF", 1],
165
+ ["\u0BAA\u0B9F\u0BBF", 3],
166
+ ["\u0BBF\u0BA9\u0BCD\u0BB1\u0BBF", 1],
167
+ ["\u0BAA\u0BB1\u0BCD\u0BB1\u0BBF", 3],
168
+ ["\u0BAA\u0B9F\u0BC1", 3],
169
+ ["\u0BB5\u0BBF\u0B9F\u0BC1", 3],
170
+ ["\u0BAA\u0B9F\u0BCD\u0B9F\u0BC1", 3],
171
+ ["\u0BB5\u0BBF\u0B9F\u0BCD\u0B9F\u0BC1", 3],
172
+ ["\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1", 3],
173
+ ["\u0BC6\u0BA9\u0BCD\u0BB1\u0BC1", 1],
174
+ ["\u0BC1\u0B9F\u0BC8", 1],
175
+ ["\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8", 1],
176
+ ["\u0BC1\u0B9F\u0BA9\u0BCD", 1],
177
+ ["\u0BBF\u0B9F\u0BAE\u0BCD", 1],
178
+ ["\u0BC6\u0BB2\u0BCD\u0BB2\u0BBE\u0BAE\u0BCD", 3],
179
+ ["\u0BC6\u0BA9\u0BC1\u0BAE\u0BCD", 1]
180
+ ];
181
+ var a_18 = [
182
+ ["\u0BBE", -1],
183
+ ["\u0BBF", -1],
184
+ ["\u0BC0", -1],
185
+ ["\u0BC1", -1],
186
+ ["\u0BC2", -1],
187
+ ["\u0BC6", -1],
188
+ ["\u0BC7", -1],
189
+ ["\u0BC8", -1]
190
+ ];
191
+ var a_19 = [
192
+ ["\u0BBE", -1],
193
+ ["\u0BBF", -1],
194
+ ["\u0BC0", -1],
195
+ ["\u0BC1", -1],
196
+ ["\u0BC2", -1],
197
+ ["\u0BC6", -1],
198
+ ["\u0BC7", -1],
199
+ ["\u0BC8", -1]
200
+ ];
201
+ var a_20 = [
202
+ ["\u0BB5\u0BBF\u0B9F", 2],
203
+ ["\u0BC0", 7],
204
+ ["\u0BCA\u0B9F\u0BC1", 2],
205
+ ["\u0BCB\u0B9F\u0BC1", 2],
206
+ ["\u0BA4\u0BC1", 6],
207
+ ["\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1", 2, 1],
208
+ ["\u0BBF\u0BA9\u0BCD\u0BB1\u0BC1", 2],
209
+ ["\u0BC1\u0B9F\u0BC8", 2],
210
+ ["\u0BA9\u0BC8", 1],
211
+ ["\u0B95\u0BA3\u0BCD", 1],
212
+ ["\u0BBF\u0BA9\u0BCD", 3],
213
+ ["\u0BAE\u0BC1\u0BA9\u0BCD", 1],
214
+ ["\u0BBF\u0B9F\u0BAE\u0BCD", 4],
215
+ ["\u0BBF\u0BB1\u0BCD", 2],
216
+ ["\u0BAE\u0BC7\u0BB1\u0BCD", 1],
217
+ ["\u0BB2\u0BCD", 5],
218
+ ["\u0BBE\u0BAE\u0BB2\u0BCD", 2, 1],
219
+ ["\u0BBE\u0BB2\u0BCD", 2, 2],
220
+ ["\u0BBF\u0BB2\u0BCD", 2, 3],
221
+ ["\u0BAE\u0BC7\u0BB2\u0BCD", 1, 4],
222
+ ["\u0BC1\u0BB3\u0BCD", 2],
223
+ ["\u0B95\u0BC0\u0BB4\u0BCD", 1]
224
+ ];
225
+ var a_21 = [
226
+ ["\u0B95", -1],
227
+ ["\u0B9A", -1],
228
+ ["\u0B9F", -1],
229
+ ["\u0BA4", -1],
230
+ ["\u0BAA", -1],
231
+ ["\u0BB1", -1]
232
+ ];
233
+ var a_22 = [
234
+ ["\u0B95", -1],
235
+ ["\u0B9A", -1],
236
+ ["\u0B9F", -1],
237
+ ["\u0BA4", -1],
238
+ ["\u0BAA", -1],
239
+ ["\u0BB1", -1]
240
+ ];
241
+ var a_23 = [
242
+ ["\u0B85", -1],
243
+ ["\u0B86", -1],
244
+ ["\u0B87", -1],
245
+ ["\u0B88", -1],
246
+ ["\u0B89", -1],
247
+ ["\u0B8A", -1],
248
+ ["\u0B8E", -1],
249
+ ["\u0B8F", -1],
250
+ ["\u0B90", -1],
251
+ ["\u0B92", -1],
252
+ ["\u0B93", -1],
253
+ ["\u0B94", -1]
254
+ ];
255
+ var a_24 = [
256
+ ["\u0BBE", -1],
257
+ ["\u0BBF", -1],
258
+ ["\u0BC0", -1],
259
+ ["\u0BC1", -1],
260
+ ["\u0BC2", -1],
261
+ ["\u0BC6", -1],
262
+ ["\u0BC7", -1],
263
+ ["\u0BC8", -1]
264
+ ];
265
+ var a_25 = [
266
+ ["\u0B95", 1],
267
+ ["\u0BA4", 1],
268
+ ["\u0BA9", 1],
269
+ ["\u0BAA", 1],
270
+ ["\u0BAF", 1],
271
+ ["\u0BBE", 5],
272
+ ["\u0B95\u0BC1", 6],
273
+ ["\u0BAA\u0B9F\u0BC1", 1],
274
+ ["\u0BA4\u0BC1", 3],
275
+ ["\u0BBF\u0BB1\u0BCD\u0BB1\u0BC1", 1],
276
+ ["\u0BA9\u0BC8", 1],
277
+ ["\u0BB5\u0BC8", 1],
278
+ ["\u0BA9\u0BA9\u0BCD", 1],
279
+ ["\u0BAA\u0BA9\u0BCD", 1],
280
+ ["\u0BB5\u0BA9\u0BCD", 2],
281
+ ["\u0BBE\u0BA9\u0BCD", 4],
282
+ ["\u0BA9\u0BBE\u0BA9\u0BCD", 1, 1],
283
+ ["\u0BAE\u0BBF\u0BA9\u0BCD", 1],
284
+ ["\u0BA9\u0BC6\u0BA9\u0BCD", 1],
285
+ ["\u0BC7\u0BA9\u0BCD", 5],
286
+ ["\u0BA9\u0BAE\u0BCD", 1],
287
+ ["\u0BAA\u0BAE\u0BCD", 1],
288
+ ["\u0BBE\u0BAE\u0BCD", 5],
289
+ ["\u0B95\u0BC1\u0BAE\u0BCD", 1],
290
+ ["\u0B9F\u0BC1\u0BAE\u0BCD", 5],
291
+ ["\u0BA4\u0BC1\u0BAE\u0BCD", 1],
292
+ ["\u0BB1\u0BC1\u0BAE\u0BCD", 1],
293
+ ["\u0BC6\u0BAE\u0BCD", 5],
294
+ ["\u0BC7\u0BAE\u0BCD", 5],
295
+ ["\u0BCB\u0BAE\u0BCD", 5],
296
+ ["\u0BBE\u0BAF\u0BCD", 5],
297
+ ["\u0BA9\u0BB0\u0BCD", 1],
298
+ ["\u0BAA\u0BB0\u0BCD", 1],
299
+ ["\u0BC0\u0BAF\u0BB0\u0BCD", 5],
300
+ ["\u0BB5\u0BB0\u0BCD", 1],
301
+ ["\u0BBE\u0BB0\u0BCD", 5],
302
+ ["\u0BA9\u0BBE\u0BB0\u0BCD", 1, 1],
303
+ ["\u0BAE\u0BBE\u0BB0\u0BCD", 1, 2],
304
+ ["\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BCD", 1],
305
+ ["\u0BA9\u0BBF\u0BB0\u0BCD", 5],
306
+ ["\u0BC0\u0BB0\u0BCD", 5],
307
+ ["\u0BA9\u0BB3\u0BCD", 1],
308
+ ["\u0BAA\u0BB3\u0BCD", 1],
309
+ ["\u0BB5\u0BB3\u0BCD", 1],
310
+ ["\u0BBE\u0BB3\u0BCD", 5],
311
+ ["\u0BA9\u0BBE\u0BB3\u0BCD", 1, 1]
312
+ ];
313
+ var a_26 = [
314
+ ["\u0B95\u0BBF\u0BB1", -1],
315
+ ["\u0B95\u0BBF\u0BA9\u0BCD\u0BB1", -1],
316
+ ["\u0BBE\u0BA8\u0BBF\u0BA9\u0BCD\u0BB1", -1],
317
+ ["\u0B95\u0BBF\u0BB1\u0BCD", -1],
318
+ ["\u0B95\u0BBF\u0BA9\u0BCD\u0BB1\u0BCD", -1],
319
+ ["\u0BBE\u0BA8\u0BBF\u0BA9\u0BCD\u0BB1\u0BCD", -1]
320
+ ];
321
+ var TamilStemmer = class extends BaseStemmer {
322
+ #B_found_vetrumai_urupu = false;
323
+ #r_fix_va_start() {
324
+ let a;
325
+ this.bra = this.c;
326
+ a = this.find_among(a_0);
327
+ if (a === 0) return false;
328
+ this.ket = this.c;
329
+ this.slice_from(as_0[a - 1]);
330
+ return true;
331
+ }
332
+ #r_fix_endings() {
333
+ const v_1 = this.c;
334
+ while (true) {
335
+ const v_2 = this.c;
336
+ lab1: {
337
+ if (!this.#r_fix_ending()) break lab1;
338
+ continue;
339
+ }
340
+ this.c = v_2;
341
+ break;
55
342
  }
343
+ this.c = v_1;
344
+ return true;
56
345
  }
57
- return word;
58
- }
59
- function stem(word) {
60
- if (word.length < 4) return word;
61
- if (word.endsWith("\u0B95\u0BB3\u0BCD") && word.length - 3 >= 2) {
62
- word = word.slice(0, word.length - 3);
346
+ #r_fix_ending() {
347
+ let a;
348
+ if (
349
+ /**@type {boolean}*/
350
+ this.current.length < 4
351
+ ) return false;
352
+ this.limit_backward = this.c;
353
+ this.c = this.limit;
354
+ lab0: {
355
+ const v_1 = this.limit - this.c;
356
+ lab1: {
357
+ this.ket = this.c;
358
+ a = this.find_among_b(a_5);
359
+ if (a === 0) break lab1;
360
+ this.bra = this.c;
361
+ switch (a) {
362
+ case 1: {
363
+ this.slice_del();
364
+ break;
365
+ }
366
+ case 2: {
367
+ const v_2 = this.limit - this.c;
368
+ if (this.find_among_b(a_2) === 0) break lab1;
369
+ this.c = this.limit - v_2;
370
+ this.slice_del();
371
+ break;
372
+ }
373
+ case 3: {
374
+ this.slice_from("\u0BB3\u0BCD");
375
+ break;
376
+ }
377
+ case 4: {
378
+ this.slice_from("\u0BB2\u0BCD");
379
+ break;
380
+ }
381
+ case 5: {
382
+ this.slice_from("\u0B9F\u0BC1");
383
+ break;
384
+ }
385
+ case 6: {
386
+ if (!this.#B_found_vetrumai_urupu) break lab1;
387
+ lab2: {
388
+ if (!this.eq_s_b("\u0BC8")) break lab2;
389
+ break lab1;
390
+ }
391
+ this.slice_from("\u0BAE\u0BCD");
392
+ break;
393
+ }
394
+ case 7: {
395
+ this.slice_from("\u0BCD");
396
+ break;
397
+ }
398
+ case 8: {
399
+ {
400
+ const v_3 = this.limit - this.c;
401
+ lab3: {
402
+ if (this.find_among_b(a_3) === 0) break lab3;
403
+ break lab1;
404
+ }
405
+ this.c = this.limit - v_3;
406
+ }
407
+ this.slice_del();
408
+ break;
409
+ }
410
+ case 9: {
411
+ a = this.find_among_b(a_4);
412
+ this.slice_from(as_4[a - 1]);
413
+ break;
414
+ }
415
+ }
416
+ break lab0;
417
+ }
418
+ this.c = this.limit - v_1;
419
+ this.ket = this.c;
420
+ if (!this.eq_s_b("\u0BCD")) return false;
421
+ lab4: {
422
+ const v_4 = this.limit - this.c;
423
+ lab5: {
424
+ if (this.find_among_b(a_6) === 0) break lab5;
425
+ const v_5 = this.limit - this.c;
426
+ lab6: {
427
+ if (!this.eq_s_b("\u0BCD")) {
428
+ this.c = this.limit - v_5;
429
+ break lab6;
430
+ }
431
+ if (this.find_among_b(a_7) === 0) {
432
+ this.c = this.limit - v_5;
433
+ break lab6;
434
+ }
435
+ }
436
+ this.bra = this.c;
437
+ this.slice_del();
438
+ break lab4;
439
+ }
440
+ this.c = this.limit - v_4;
441
+ lab7: {
442
+ if (this.find_among_b(a_8) === 0) break lab7;
443
+ this.bra = this.c;
444
+ if (!this.eq_s_b("\u0BCD")) break lab7;
445
+ this.slice_del();
446
+ break lab4;
447
+ }
448
+ this.c = this.limit - v_4;
449
+ const v_6 = this.limit - this.c;
450
+ if (this.find_among_b(a_9) === 0) return false;
451
+ this.c = this.limit - v_6;
452
+ this.bra = this.c;
453
+ this.slice_del();
454
+ }
455
+ }
456
+ this.c = this.limit_backward;
457
+ return true;
458
+ }
459
+ #stem() {
460
+ let a;
461
+ let B_found_a_match;
462
+ this.#B_found_vetrumai_urupu = false;
463
+ const v_1 = this.c;
464
+ this.#r_fix_ending();
465
+ this.c = v_1;
466
+ if (
467
+ /**@type {boolean}*/
468
+ this.current.length < 5
469
+ ) return false;
470
+ const v_2 = this.c;
471
+ lab0: {
472
+ this.bra = this.c;
473
+ if (!this.eq_s("\u0B8E")) break lab0;
474
+ if (this.find_among(a_1) === 0) break lab0;
475
+ if (!this.eq_s("\u0BCD")) break lab0;
476
+ this.ket = this.c;
477
+ this.slice_del();
478
+ const v_3 = this.c;
479
+ this.#r_fix_va_start();
480
+ this.c = v_3;
481
+ }
482
+ this.c = v_2;
483
+ const v_4 = this.c;
484
+ lab1: {
485
+ this.bra = this.c;
486
+ if (this.find_among(a_10) === 0) break lab1;
487
+ if (this.find_among(a_11) === 0) break lab1;
488
+ if (!this.eq_s("\u0BCD")) break lab1;
489
+ this.ket = this.c;
490
+ this.slice_del();
491
+ const v_5 = this.c;
492
+ this.#r_fix_va_start();
493
+ this.c = v_5;
494
+ }
495
+ this.c = v_4;
496
+ lab2: {
497
+ if (
498
+ /**@type {boolean}*/
499
+ this.current.length < 5
500
+ ) break lab2;
501
+ this.limit_backward = this.c;
502
+ this.c = this.limit;
503
+ const v_6 = this.limit - this.c;
504
+ lab3: {
505
+ this.ket = this.c;
506
+ if (this.find_among_b(a_14) === 0) break lab3;
507
+ this.bra = this.c;
508
+ this.slice_from("\u0BCD");
509
+ }
510
+ this.c = this.limit - v_6;
511
+ this.c = this.limit_backward;
512
+ this.#r_fix_endings();
513
+ }
514
+ const v_7 = this.c;
515
+ lab4: {
516
+ if (
517
+ /**@type {boolean}*/
518
+ this.current.length < 5
519
+ ) break lab4;
520
+ this.limit_backward = this.c;
521
+ this.c = this.limit;
522
+ this.ket = this.c;
523
+ if (!this.eq_s_b("\u0BC1\u0BAE\u0BCD")) break lab4;
524
+ this.bra = this.c;
525
+ this.slice_from("\u0BCD");
526
+ this.c = this.limit_backward;
527
+ const v_8 = this.c;
528
+ this.#r_fix_ending();
529
+ this.c = v_8;
530
+ }
531
+ this.c = v_7;
532
+ const v_9 = this.c;
533
+ lab5: {
534
+ if (
535
+ /**@type {boolean}*/
536
+ this.current.length < 5
537
+ ) break lab5;
538
+ this.limit_backward = this.c;
539
+ this.c = this.limit;
540
+ this.ket = this.c;
541
+ a = this.find_among_b(a_17);
542
+ if (a === 0) break lab5;
543
+ this.bra = this.c;
544
+ switch (a) {
545
+ case 1: {
546
+ this.slice_from("\u0BCD");
547
+ break;
548
+ }
549
+ case 2: {
550
+ {
551
+ const v_10 = this.limit - this.c;
552
+ lab6: {
553
+ if (this.find_among_b(a_16) === 0) break lab6;
554
+ break lab5;
555
+ }
556
+ this.c = this.limit - v_10;
557
+ }
558
+ this.slice_from("\u0BCD");
559
+ break;
560
+ }
561
+ case 3: {
562
+ this.slice_del();
563
+ break;
564
+ }
565
+ }
566
+ this.c = this.limit_backward;
567
+ this.#r_fix_endings();
568
+ }
569
+ this.c = v_9;
570
+ const v_11 = this.c;
571
+ lab7: {
572
+ this.#B_found_vetrumai_urupu = false;
573
+ if (
574
+ /**@type {boolean}*/
575
+ this.current.length < 5
576
+ ) break lab7;
577
+ this.limit_backward = this.c;
578
+ this.c = this.limit;
579
+ lab8: {
580
+ const v_12 = this.limit - this.c;
581
+ lab9: {
582
+ const v_13 = this.limit - this.c;
583
+ this.ket = this.c;
584
+ a = this.find_among_b(a_20);
585
+ if (a === 0) break lab9;
586
+ this.bra = this.c;
587
+ switch (a) {
588
+ case 1: {
589
+ this.slice_del();
590
+ break;
591
+ }
592
+ case 2: {
593
+ this.slice_from("\u0BCD");
594
+ break;
595
+ }
596
+ case 3: {
597
+ lab10: {
598
+ if (!this.eq_s_b("\u0BAE")) break lab10;
599
+ break lab9;
600
+ }
601
+ this.slice_from("\u0BCD");
602
+ break;
603
+ }
604
+ case 4: {
605
+ if (
606
+ /**@type {boolean}*/
607
+ this.current.length < 7
608
+ ) break lab9;
609
+ this.slice_from("\u0BCD");
610
+ break;
611
+ }
612
+ case 5: {
613
+ {
614
+ const v_14 = this.limit - this.c;
615
+ lab11: {
616
+ if (this.find_among_b(a_18) === 0) break lab11;
617
+ break lab9;
618
+ }
619
+ this.c = this.limit - v_14;
620
+ }
621
+ this.slice_from("\u0BCD");
622
+ break;
623
+ }
624
+ case 6: {
625
+ {
626
+ const v_15 = this.limit - this.c;
627
+ lab12: {
628
+ if (this.find_among_b(a_19) === 0) break lab12;
629
+ break lab9;
630
+ }
631
+ this.c = this.limit - v_15;
632
+ }
633
+ this.slice_del();
634
+ break;
635
+ }
636
+ case 7: {
637
+ this.slice_from("\u0BBF");
638
+ break;
639
+ }
640
+ }
641
+ this.c = this.limit - v_13;
642
+ break lab8;
643
+ }
644
+ this.c = this.limit - v_12;
645
+ const v_16 = this.limit - this.c;
646
+ this.ket = this.c;
647
+ if (!this.eq_s_b("\u0BC8")) break lab7;
648
+ lab13: {
649
+ const v_17 = this.limit - this.c;
650
+ lab14: {
651
+ {
652
+ const v_18 = this.limit - this.c;
653
+ lab15: {
654
+ if (this.find_among_b(a_21) === 0) break lab15;
655
+ break lab14;
656
+ }
657
+ this.c = this.limit - v_18;
658
+ }
659
+ break lab13;
660
+ }
661
+ this.c = this.limit - v_17;
662
+ const v_19 = this.limit - this.c;
663
+ if (this.find_among_b(a_22) === 0) break lab7;
664
+ if (!this.eq_s_b("\u0BCD")) break lab7;
665
+ this.c = this.limit - v_19;
666
+ }
667
+ this.bra = this.c;
668
+ this.slice_from("\u0BCD");
669
+ this.c = this.limit - v_16;
670
+ }
671
+ this.#B_found_vetrumai_urupu = true;
672
+ const v_20 = this.limit - this.c;
673
+ lab16: {
674
+ this.ket = this.c;
675
+ if (!this.eq_s_b("\u0BBF\u0BA9\u0BCD")) break lab16;
676
+ this.bra = this.c;
677
+ this.slice_from("\u0BCD");
678
+ }
679
+ this.c = this.limit - v_20;
680
+ this.c = this.limit_backward;
681
+ this.#r_fix_endings();
682
+ }
683
+ this.c = v_11;
684
+ const v_21 = this.c;
685
+ lab17: {
686
+ this.limit_backward = this.c;
687
+ this.c = this.limit;
688
+ this.ket = this.c;
689
+ a = this.find_among_b(a_13);
690
+ if (a === 0) break lab17;
691
+ this.bra = this.c;
692
+ switch (a) {
693
+ case 1: {
694
+ lab18: {
695
+ const v_22 = this.limit - this.c;
696
+ lab19: {
697
+ if (this.find_among_b(a_12) === 0) break lab19;
698
+ this.slice_from("\u0BC1\u0B99\u0BCD");
699
+ break lab18;
700
+ }
701
+ this.c = this.limit - v_22;
702
+ this.slice_from("\u0BCD");
703
+ }
704
+ break;
705
+ }
706
+ case 2: {
707
+ this.slice_from("\u0BB2\u0BCD");
708
+ break;
709
+ }
710
+ case 3: {
711
+ this.slice_from("\u0BB3\u0BCD");
712
+ break;
713
+ }
714
+ case 4: {
715
+ this.slice_del();
716
+ break;
717
+ }
718
+ }
719
+ this.c = this.limit_backward;
720
+ }
721
+ this.c = v_21;
722
+ const v_23 = this.c;
723
+ lab20: {
724
+ if (
725
+ /**@type {boolean}*/
726
+ this.current.length < 5
727
+ ) break lab20;
728
+ this.limit_backward = this.c;
729
+ this.c = this.limit;
730
+ this.ket = this.c;
731
+ if (this.find_among_b(a_15) === 0) break lab20;
732
+ this.bra = this.c;
733
+ this.slice_del();
734
+ this.c = this.limit_backward;
735
+ }
736
+ this.c = v_23;
737
+ const v_24 = this.c;
738
+ while (true) {
739
+ const v_25 = this.c;
740
+ lab22: {
741
+ B_found_a_match = false;
742
+ if (
743
+ /**@type {boolean}*/
744
+ this.current.length < 5
745
+ ) break lab22;
746
+ this.limit_backward = this.c;
747
+ this.c = this.limit;
748
+ const v_26 = this.limit - this.c;
749
+ lab23: {
750
+ const v_27 = this.limit - this.c;
751
+ this.ket = this.c;
752
+ a = this.find_among_b(a_25);
753
+ if (a === 0) break lab23;
754
+ this.bra = this.c;
755
+ switch (a) {
756
+ case 1: {
757
+ this.slice_del();
758
+ break;
759
+ }
760
+ case 2: {
761
+ {
762
+ const v_28 = this.limit - this.c;
763
+ lab24: {
764
+ if (this.find_among_b(a_23) === 0) break lab24;
765
+ break lab23;
766
+ }
767
+ this.c = this.limit - v_28;
768
+ }
769
+ this.slice_del();
770
+ break;
771
+ }
772
+ case 3: {
773
+ {
774
+ const v_29 = this.limit - this.c;
775
+ lab25: {
776
+ if (this.find_among_b(a_24) === 0) break lab25;
777
+ break lab23;
778
+ }
779
+ this.c = this.limit - v_29;
780
+ }
781
+ this.slice_del();
782
+ break;
783
+ }
784
+ case 4: {
785
+ lab26: {
786
+ if (!this.eq_s_b("\u0B9A")) break lab26;
787
+ break lab23;
788
+ }
789
+ this.slice_from("\u0BCD");
790
+ break;
791
+ }
792
+ case 5: {
793
+ this.slice_from("\u0BCD");
794
+ break;
795
+ }
796
+ case 6: {
797
+ const v_30 = this.limit - this.c;
798
+ if (!this.eq_s_b("\u0BCD")) break lab23;
799
+ this.c = this.limit - v_30;
800
+ this.slice_del();
801
+ break;
802
+ }
803
+ }
804
+ B_found_a_match = true;
805
+ this.c = this.limit - v_27;
806
+ }
807
+ this.c = this.limit - v_26;
808
+ const v_31 = this.limit - this.c;
809
+ lab27: {
810
+ this.ket = this.c;
811
+ if (this.find_among_b(a_26) === 0) break lab27;
812
+ this.bra = this.c;
813
+ this.slice_del();
814
+ B_found_a_match = true;
815
+ }
816
+ this.c = this.limit - v_31;
817
+ this.c = this.limit_backward;
818
+ this.#r_fix_endings();
819
+ if (!B_found_a_match) break lab22;
820
+ continue;
821
+ }
822
+ this.c = v_25;
823
+ break;
824
+ }
825
+ this.c = v_24;
826
+ return true;
827
+ }
828
+ stem(input) {
829
+ this.setCurrent(input);
830
+ this.#stem();
831
+ return this.getCurrent();
63
832
  }
64
- word = removeLongestSuffix(word, CASE_SUFFIXES, 2);
65
- word = removeLongestSuffix(word, VERB_SUFFIXES, 2);
66
- word = removeLongestSuffix(word, POST_POSITIONS, 2);
67
- return word;
833
+ };
834
+ var shared = new TamilStemmer();
835
+ function stem(token) {
836
+ return shared.stem(token);
68
837
  }
838
+
839
+ // src/languages/tamil.ts
69
840
  var stopWords = /* @__PURE__ */ new Set([
70
841
  "\u0B92\u0BB0\u0BC1",
71
842
  "\u0B8E\u0BA9\u0BCD\u0BB1\u0BC1",
@@ -178,6 +949,7 @@ var stopWords = /* @__PURE__ */ new Set([
178
949
  ]);
179
950
  var tamil = {
180
951
  name: "tamil",
952
+ revision: "f859bf3d19447fbc",
181
953
  stemmer: stem,
182
954
  stopWords,
183
955
  tokenizer: { splitPattern: /[^\u0B80-\u0BFFa-z0-9]+/gi }