@delali/narsil-react-native 0.3.1-next.154 → 0.3.1-next.156

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,1700 @@
1
+ /*
2
+ * Generated from algorithms/turkish.sbl by the Snowball compiler 3.1.1, with each symbol widened to a
3
+ * UTF-16 code unit so that the stemmer reads the same units as the TypeScript stemmer.
4
+ *
5
+ * Snowball is BSD-3-Clause, copyright (c) 2001, Dr Martin Porter and contributors. The NOTICE file at the root
6
+ * of the repository carries the licence. Source from https://github.com/snowballstem/snowball.git at
7
+ * 6772636350acfd63797e8cd24ff86c70fd2df6fc, verified against https://github.com/snowballstem/snowball-data.git at
8
+ * a0ec0d0a2839ec885878868de20fcb63209d92b0.
9
+ *
10
+ * packages/ts/snowball/build.ts writes this file, so regenerate it with that script.
11
+ */
12
+
13
+ #if defined(__GNUC__)
14
+ #pragma GCC diagnostic ignored "-Wcast-align"
15
+ #pragma GCC diagnostic ignored "-Wsign-conversion"
16
+ #endif
17
+
18
+ #include "turkish_stemmer.h"
19
+
20
+ #include <stddef.h>
21
+
22
+ #include "./snowball_runtime.h"
23
+
24
+ #ifdef __cplusplus
25
+ extern "C" {
26
+ #endif
27
+ extern int turkish_stem(struct SN_env * z);
28
+ #ifdef __cplusplus
29
+ }
30
+ #endif
31
+
32
+ static int r_stem_suffix_chain_before_ki(struct SN_env * z);
33
+ static int r_1(struct SN_env * z);
34
+ static int r_2(struct SN_env * z);
35
+ static int r_mark_ysA(struct SN_env * z);
36
+ static int r_mark_ymUs_(struct SN_env * z);
37
+ static int r_mark_yDU(struct SN_env * z);
38
+ static int r_mark_yUz(struct SN_env * z);
39
+ static int r_mark_yUm(struct SN_env * z);
40
+ static int r_mark_possessives(struct SN_env * z);
41
+ static int r_mark_sUnUz(struct SN_env * z);
42
+ static int r_mark_sUn(struct SN_env * z);
43
+ static int r_mark_sU(struct SN_env * z);
44
+ static int r_mark_nUn(struct SN_env * z);
45
+ static int r_mark_ndA(struct SN_env * z);
46
+ static int r_mark_lArI(struct SN_env * z);
47
+ static int r_mark_lAr(struct SN_env * z);
48
+ static int r_mark_DUr(struct SN_env * z);
49
+ static int r_mark_DA(struct SN_env * z);
50
+ static int r_check_vowel_harmony(struct SN_env * z);
51
+
52
+ static const symbol s_0[] = { 'k', 'i' };
53
+ static const symbol s_1[] = { 'k', 'e', 'n' };
54
+ static const symbol s_2[] = { 'a', 'd' };
55
+ static const symbol s_3[] = { 's', 'o', 'y' };
56
+ static const symbol s_4[] = { 0x131 };
57
+ static const symbol s_5[] = { 'i' };
58
+ static const symbol s_6[] = { 'u' };
59
+ static const symbol s_7[] = { 0xFC };
60
+ static const symbol s_8[] = { 'p' };
61
+ static const symbol s_9[] = { 0xE7 };
62
+ static const symbol s_10[] = { 't' };
63
+ static const symbol s_11[] = { 'k' };
64
+
65
+ static const symbol s_0_0[1] = { 'm' };
66
+ static const symbol s_0_1[1] = { 'n' };
67
+ static const symbol s_0_2[3] = { 'm', 'i', 'z' };
68
+ static const symbol s_0_3[3] = { 'n', 'i', 'z' };
69
+ static const symbol s_0_4[3] = { 'm', 'u', 'z' };
70
+ static const symbol s_0_5[3] = { 'n', 'u', 'z' };
71
+ static const symbol s_0_6[3] = { 'm', 0xFC, 'z' };
72
+ static const symbol s_0_7[3] = { 'n', 0xFC, 'z' };
73
+ static const symbol s_0_8[3] = { 'm', 0x131, 'z' };
74
+ static const symbol s_0_9[3] = { 'n', 0x131, 'z' };
75
+ static const struct among a_0[10] = {
76
+ { 1, s_0_0, 0, -1, 0},
77
+ { 1, s_0_1, 0, -1, 0},
78
+ { 3, s_0_2, 0, -1, 0},
79
+ { 3, s_0_3, 0, -1, 0},
80
+ { 3, s_0_4, 0, -1, 0},
81
+ { 3, s_0_5, 0, -1, 0},
82
+ { 3, s_0_6, 0, -1, 0},
83
+ { 3, s_0_7, 0, -1, 0},
84
+ { 3, s_0_8, 0, -1, 0},
85
+ { 3, s_0_9, 0, -1, 0}
86
+ };
87
+
88
+ static const symbol s_1_0[4] = { 'l', 'e', 'r', 'i' };
89
+ static const symbol s_1_1[4] = { 'l', 'a', 'r', 0x131 };
90
+ static const struct among a_1[2] = {
91
+ { 4, s_1_0, 0, -1, 0},
92
+ { 4, s_1_1, 0, -1, 0}
93
+ };
94
+
95
+ static const symbol s_2_0[2] = { 'n', 'i' };
96
+ static const symbol s_2_1[2] = { 'n', 'u' };
97
+ static const symbol s_2_2[2] = { 'n', 0xFC };
98
+ static const symbol s_2_3[2] = { 'n', 0x131 };
99
+ static const struct among a_2[4] = {
100
+ { 2, s_2_0, 0, -1, 0},
101
+ { 2, s_2_1, 0, -1, 0},
102
+ { 2, s_2_2, 0, -1, 0},
103
+ { 2, s_2_3, 0, -1, 0}
104
+ };
105
+
106
+ static const symbol s_3_0[2] = { 'i', 'n' };
107
+ static const symbol s_3_1[2] = { 'u', 'n' };
108
+ static const symbol s_3_2[2] = { 0xFC, 'n' };
109
+ static const symbol s_3_3[2] = { 0x131, 'n' };
110
+ static const struct among a_3[4] = {
111
+ { 2, s_3_0, 0, -1, 0},
112
+ { 2, s_3_1, 0, -1, 0},
113
+ { 2, s_3_2, 0, -1, 0},
114
+ { 2, s_3_3, 0, -1, 0}
115
+ };
116
+
117
+ static const symbol s_5_0[2] = { 'n', 'a' };
118
+ static const symbol s_5_1[2] = { 'n', 'e' };
119
+ static const struct among a_5[2] = {
120
+ { 2, s_5_0, 0, -1, 0},
121
+ { 2, s_5_1, 0, -1, 0}
122
+ };
123
+
124
+ static const symbol s_6_0[2] = { 'd', 'a' };
125
+ static const symbol s_6_1[2] = { 't', 'a' };
126
+ static const symbol s_6_2[2] = { 'd', 'e' };
127
+ static const symbol s_6_3[2] = { 't', 'e' };
128
+ static const struct among a_6[4] = {
129
+ { 2, s_6_0, 0, -1, 0},
130
+ { 2, s_6_1, 0, -1, 0},
131
+ { 2, s_6_2, 0, -1, 0},
132
+ { 2, s_6_3, 0, -1, 0}
133
+ };
134
+
135
+ static const symbol s_7_0[3] = { 'n', 'd', 'a' };
136
+ static const symbol s_7_1[3] = { 'n', 'd', 'e' };
137
+ static const struct among a_7[2] = {
138
+ { 3, s_7_0, 0, -1, 0},
139
+ { 3, s_7_1, 0, -1, 0}
140
+ };
141
+
142
+ static const symbol s_8_0[3] = { 'd', 'a', 'n' };
143
+ static const symbol s_8_1[3] = { 't', 'a', 'n' };
144
+ static const symbol s_8_2[3] = { 'd', 'e', 'n' };
145
+ static const symbol s_8_3[3] = { 't', 'e', 'n' };
146
+ static const struct among a_8[4] = {
147
+ { 3, s_8_0, 0, -1, 0},
148
+ { 3, s_8_1, 0, -1, 0},
149
+ { 3, s_8_2, 0, -1, 0},
150
+ { 3, s_8_3, 0, -1, 0}
151
+ };
152
+
153
+ static const symbol s_9_0[4] = { 'n', 'd', 'a', 'n' };
154
+ static const symbol s_9_1[4] = { 'n', 'd', 'e', 'n' };
155
+ static const struct among a_9[2] = {
156
+ { 4, s_9_0, 0, -1, 0},
157
+ { 4, s_9_1, 0, -1, 0}
158
+ };
159
+
160
+ static const symbol s_10_0[2] = { 'l', 'a' };
161
+ static const symbol s_10_1[2] = { 'l', 'e' };
162
+ static const struct among a_10[2] = {
163
+ { 2, s_10_0, 0, -1, 0},
164
+ { 2, s_10_1, 0, -1, 0}
165
+ };
166
+
167
+ static const symbol s_11_0[2] = { 'c', 'a' };
168
+ static const symbol s_11_1[2] = { 'c', 'e' };
169
+ static const struct among a_11[2] = {
170
+ { 2, s_11_0, 0, -1, 0},
171
+ { 2, s_11_1, 0, -1, 0}
172
+ };
173
+
174
+ static const symbol s_12_0[2] = { 'i', 'm' };
175
+ static const symbol s_12_1[2] = { 'u', 'm' };
176
+ static const symbol s_12_2[2] = { 0xFC, 'm' };
177
+ static const symbol s_12_3[2] = { 0x131, 'm' };
178
+ static const struct among a_12[4] = {
179
+ { 2, s_12_0, 0, -1, 0},
180
+ { 2, s_12_1, 0, -1, 0},
181
+ { 2, s_12_2, 0, -1, 0},
182
+ { 2, s_12_3, 0, -1, 0}
183
+ };
184
+
185
+ static const symbol s_13_0[3] = { 's', 'i', 'n' };
186
+ static const symbol s_13_1[3] = { 's', 'u', 'n' };
187
+ static const symbol s_13_2[3] = { 's', 0xFC, 'n' };
188
+ static const symbol s_13_3[3] = { 's', 0x131, 'n' };
189
+ static const struct among a_13[4] = {
190
+ { 3, s_13_0, 0, -1, 0},
191
+ { 3, s_13_1, 0, -1, 0},
192
+ { 3, s_13_2, 0, -1, 0},
193
+ { 3, s_13_3, 0, -1, 0}
194
+ };
195
+
196
+ static const symbol s_14_0[2] = { 'i', 'z' };
197
+ static const symbol s_14_1[2] = { 'u', 'z' };
198
+ static const symbol s_14_2[2] = { 0xFC, 'z' };
199
+ static const symbol s_14_3[2] = { 0x131, 'z' };
200
+ static const struct among a_14[4] = {
201
+ { 2, s_14_0, 0, -1, 0},
202
+ { 2, s_14_1, 0, -1, 0},
203
+ { 2, s_14_2, 0, -1, 0},
204
+ { 2, s_14_3, 0, -1, 0}
205
+ };
206
+
207
+ static const symbol s_15_0[5] = { 's', 'i', 'n', 'i', 'z' };
208
+ static const symbol s_15_1[5] = { 's', 'u', 'n', 'u', 'z' };
209
+ static const symbol s_15_2[5] = { 's', 0xFC, 'n', 0xFC, 'z' };
210
+ static const symbol s_15_3[5] = { 's', 0x131, 'n', 0x131, 'z' };
211
+ static const struct among a_15[4] = {
212
+ { 5, s_15_0, 0, -1, 0},
213
+ { 5, s_15_1, 0, -1, 0},
214
+ { 5, s_15_2, 0, -1, 0},
215
+ { 5, s_15_3, 0, -1, 0}
216
+ };
217
+
218
+ static const symbol s_16_0[3] = { 'l', 'a', 'r' };
219
+ static const symbol s_16_1[3] = { 'l', 'e', 'r' };
220
+ static const struct among a_16[2] = {
221
+ { 3, s_16_0, 0, -1, 0},
222
+ { 3, s_16_1, 0, -1, 0}
223
+ };
224
+
225
+ static const symbol s_17_0[3] = { 'n', 'i', 'z' };
226
+ static const symbol s_17_1[3] = { 'n', 'u', 'z' };
227
+ static const symbol s_17_2[3] = { 'n', 0xFC, 'z' };
228
+ static const symbol s_17_3[3] = { 'n', 0x131, 'z' };
229
+ static const struct among a_17[4] = {
230
+ { 3, s_17_0, 0, -1, 0},
231
+ { 3, s_17_1, 0, -1, 0},
232
+ { 3, s_17_2, 0, -1, 0},
233
+ { 3, s_17_3, 0, -1, 0}
234
+ };
235
+
236
+ static const symbol s_18_0[3] = { 'd', 'i', 'r' };
237
+ static const symbol s_18_1[3] = { 't', 'i', 'r' };
238
+ static const symbol s_18_2[3] = { 'd', 'u', 'r' };
239
+ static const symbol s_18_3[3] = { 't', 'u', 'r' };
240
+ static const symbol s_18_4[3] = { 'd', 0xFC, 'r' };
241
+ static const symbol s_18_5[3] = { 't', 0xFC, 'r' };
242
+ static const symbol s_18_6[3] = { 'd', 0x131, 'r' };
243
+ static const symbol s_18_7[3] = { 't', 0x131, 'r' };
244
+ static const struct among a_18[8] = {
245
+ { 3, s_18_0, 0, -1, 0},
246
+ { 3, s_18_1, 0, -1, 0},
247
+ { 3, s_18_2, 0, -1, 0},
248
+ { 3, s_18_3, 0, -1, 0},
249
+ { 3, s_18_4, 0, -1, 0},
250
+ { 3, s_18_5, 0, -1, 0},
251
+ { 3, s_18_6, 0, -1, 0},
252
+ { 3, s_18_7, 0, -1, 0}
253
+ };
254
+
255
+ static const symbol s_19_0[6] = { 'c', 'a', 's', 0x131, 'n', 'a' };
256
+ static const symbol s_19_1[6] = { 'c', 'e', 's', 'i', 'n', 'e' };
257
+ static const struct among a_19[2] = {
258
+ { 6, s_19_0, 0, -1, 0},
259
+ { 6, s_19_1, 0, -1, 0}
260
+ };
261
+
262
+ static const symbol s_20_0[2] = { 'd', 'i' };
263
+ static const symbol s_20_1[2] = { 't', 'i' };
264
+ static const symbol s_20_2[3] = { 'd', 'i', 'k' };
265
+ static const symbol s_20_3[3] = { 't', 'i', 'k' };
266
+ static const symbol s_20_4[3] = { 'd', 'u', 'k' };
267
+ static const symbol s_20_5[3] = { 't', 'u', 'k' };
268
+ static const symbol s_20_6[3] = { 'd', 0xFC, 'k' };
269
+ static const symbol s_20_7[3] = { 't', 0xFC, 'k' };
270
+ static const symbol s_20_8[3] = { 'd', 0x131, 'k' };
271
+ static const symbol s_20_9[3] = { 't', 0x131, 'k' };
272
+ static const symbol s_20_10[3] = { 'd', 'i', 'm' };
273
+ static const symbol s_20_11[3] = { 't', 'i', 'm' };
274
+ static const symbol s_20_12[3] = { 'd', 'u', 'm' };
275
+ static const symbol s_20_13[3] = { 't', 'u', 'm' };
276
+ static const symbol s_20_14[3] = { 'd', 0xFC, 'm' };
277
+ static const symbol s_20_15[3] = { 't', 0xFC, 'm' };
278
+ static const symbol s_20_16[3] = { 'd', 0x131, 'm' };
279
+ static const symbol s_20_17[3] = { 't', 0x131, 'm' };
280
+ static const symbol s_20_18[3] = { 'd', 'i', 'n' };
281
+ static const symbol s_20_19[3] = { 't', 'i', 'n' };
282
+ static const symbol s_20_20[3] = { 'd', 'u', 'n' };
283
+ static const symbol s_20_21[3] = { 't', 'u', 'n' };
284
+ static const symbol s_20_22[3] = { 'd', 0xFC, 'n' };
285
+ static const symbol s_20_23[3] = { 't', 0xFC, 'n' };
286
+ static const symbol s_20_24[3] = { 'd', 0x131, 'n' };
287
+ static const symbol s_20_25[3] = { 't', 0x131, 'n' };
288
+ static const symbol s_20_26[2] = { 'd', 'u' };
289
+ static const symbol s_20_27[2] = { 't', 'u' };
290
+ static const symbol s_20_28[2] = { 'd', 0xFC };
291
+ static const symbol s_20_29[2] = { 't', 0xFC };
292
+ static const symbol s_20_30[2] = { 'd', 0x131 };
293
+ static const symbol s_20_31[2] = { 't', 0x131 };
294
+ static const struct among a_20[32] = {
295
+ { 2, s_20_0, 0, -1, 0},
296
+ { 2, s_20_1, 0, -1, 0},
297
+ { 3, s_20_2, 0, -1, 0},
298
+ { 3, s_20_3, 0, -1, 0},
299
+ { 3, s_20_4, 0, -1, 0},
300
+ { 3, s_20_5, 0, -1, 0},
301
+ { 3, s_20_6, 0, -1, 0},
302
+ { 3, s_20_7, 0, -1, 0},
303
+ { 3, s_20_8, 0, -1, 0},
304
+ { 3, s_20_9, 0, -1, 0},
305
+ { 3, s_20_10, 0, -1, 0},
306
+ { 3, s_20_11, 0, -1, 0},
307
+ { 3, s_20_12, 0, -1, 0},
308
+ { 3, s_20_13, 0, -1, 0},
309
+ { 3, s_20_14, 0, -1, 0},
310
+ { 3, s_20_15, 0, -1, 0},
311
+ { 3, s_20_16, 0, -1, 0},
312
+ { 3, s_20_17, 0, -1, 0},
313
+ { 3, s_20_18, 0, -1, 0},
314
+ { 3, s_20_19, 0, -1, 0},
315
+ { 3, s_20_20, 0, -1, 0},
316
+ { 3, s_20_21, 0, -1, 0},
317
+ { 3, s_20_22, 0, -1, 0},
318
+ { 3, s_20_23, 0, -1, 0},
319
+ { 3, s_20_24, 0, -1, 0},
320
+ { 3, s_20_25, 0, -1, 0},
321
+ { 2, s_20_26, 0, -1, 0},
322
+ { 2, s_20_27, 0, -1, 0},
323
+ { 2, s_20_28, 0, -1, 0},
324
+ { 2, s_20_29, 0, -1, 0},
325
+ { 2, s_20_30, 0, -1, 0},
326
+ { 2, s_20_31, 0, -1, 0}
327
+ };
328
+
329
+ static const symbol s_21_0[2] = { 's', 'a' };
330
+ static const symbol s_21_1[2] = { 's', 'e' };
331
+ static const symbol s_21_2[3] = { 's', 'a', 'k' };
332
+ static const symbol s_21_3[3] = { 's', 'e', 'k' };
333
+ static const symbol s_21_4[3] = { 's', 'a', 'm' };
334
+ static const symbol s_21_5[3] = { 's', 'e', 'm' };
335
+ static const symbol s_21_6[3] = { 's', 'a', 'n' };
336
+ static const symbol s_21_7[3] = { 's', 'e', 'n' };
337
+ static const struct among a_21[8] = {
338
+ { 2, s_21_0, 0, -1, 0},
339
+ { 2, s_21_1, 0, -1, 0},
340
+ { 3, s_21_2, 0, -1, 0},
341
+ { 3, s_21_3, 0, -1, 0},
342
+ { 3, s_21_4, 0, -1, 0},
343
+ { 3, s_21_5, 0, -1, 0},
344
+ { 3, s_21_6, 0, -1, 0},
345
+ { 3, s_21_7, 0, -1, 0}
346
+ };
347
+
348
+ static const symbol s_22_0[3] = { 'm', 'i', 0x15F };
349
+ static const symbol s_22_1[3] = { 'm', 'u', 0x15F };
350
+ static const symbol s_22_2[3] = { 'm', 0xFC, 0x15F };
351
+ static const symbol s_22_3[3] = { 'm', 0x131, 0x15F };
352
+ static const struct among a_22[4] = {
353
+ { 3, s_22_0, 0, -1, 0},
354
+ { 3, s_22_1, 0, -1, 0},
355
+ { 3, s_22_2, 0, -1, 0},
356
+ { 3, s_22_3, 0, -1, 0}
357
+ };
358
+
359
+ static const symbol s_23_0[1] = { 'b' };
360
+ static const symbol s_23_1[1] = { 'c' };
361
+ static const symbol s_23_2[1] = { 'd' };
362
+ static const symbol s_23_3[1] = { 0x11F };
363
+ static const struct among a_23[4] = {
364
+ { 1, s_23_0, 0, 1, 0},
365
+ { 1, s_23_1, 0, 2, 0},
366
+ { 1, s_23_2, 0, 3, 0},
367
+ { 1, s_23_3, 0, 4, 0}
368
+ };
369
+
370
+ static const unsigned char g_vowel[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 };
371
+
372
+ static const unsigned char g_U[] = { 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 };
373
+
374
+ static const unsigned char g_vowel1[] = { 1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
375
+
376
+ static const unsigned char g_vowel2[] = { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 };
377
+
378
+ static const unsigned char g_vowel3[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 };
379
+
380
+ static const unsigned char g_vowel4[] = { 17 };
381
+
382
+ static const unsigned char g_vowel5[] = { 65 };
383
+
384
+ static const unsigned char g_vowel6[] = { 65 };
385
+
386
+ static int r_check_vowel_harmony(struct SN_env * z) {
387
+ {
388
+ int v_1 = z->l - z->c;
389
+ if (out_grouping_b(z, g_vowel, 97, 305, 1) < 0) return 0;
390
+ do {
391
+ int v_2 = z->l - z->c;
392
+ if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab0;
393
+ z->c--;
394
+ if (out_grouping_b(z, g_vowel1, 97, 305, 1) < 0) goto lab0;
395
+ break;
396
+ lab0:
397
+ z->c = z->l - v_2;
398
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab1;
399
+ z->c--;
400
+ if (out_grouping_b(z, g_vowel2, 101, 252, 1) < 0) goto lab1;
401
+ break;
402
+ lab1:
403
+ z->c = z->l - v_2;
404
+ if (z->c <= z->lb || z->p[z->c - 1] != 0x131) goto lab2;
405
+ z->c--;
406
+ if (out_grouping_b(z, g_vowel3, 97, 305, 1) < 0) goto lab2;
407
+ break;
408
+ lab2:
409
+ z->c = z->l - v_2;
410
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab3;
411
+ z->c--;
412
+ if (out_grouping_b(z, g_vowel4, 101, 105, 1) < 0) goto lab3;
413
+ break;
414
+ lab3:
415
+ z->c = z->l - v_2;
416
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab4;
417
+ z->c--;
418
+ if (out_grouping_b(z, g_vowel5, 111, 117, 1) < 0) goto lab4;
419
+ break;
420
+ lab4:
421
+ z->c = z->l - v_2;
422
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) goto lab5;
423
+ z->c--;
424
+ if (out_grouping_b(z, g_vowel6, 246, 252, 1) < 0) goto lab5;
425
+ break;
426
+ lab5:
427
+ z->c = z->l - v_2;
428
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab6;
429
+ z->c--;
430
+ if (out_grouping_b(z, g_vowel5, 111, 117, 1) < 0) goto lab6;
431
+ break;
432
+ lab6:
433
+ z->c = z->l - v_2;
434
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xFC) return 0;
435
+ z->c--;
436
+ if (out_grouping_b(z, g_vowel6, 246, 252, 1) < 0) return 0;
437
+ } while (0);
438
+ z->c = z->l - v_1;
439
+ }
440
+ return 1;
441
+ }
442
+
443
+ static int r_1(struct SN_env * z) {
444
+ do {
445
+ int v_1 = z->l - z->c;
446
+ if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab0;
447
+ z->c--;
448
+ {
449
+ int v_2 = z->l - z->c;
450
+ if (in_grouping_b(z, g_vowel, 97, 305, 0)) goto lab0;
451
+ z->c = z->l - v_2;
452
+ }
453
+ break;
454
+ lab0:
455
+ z->c = z->l - v_1;
456
+ if (z->c <= z->lb || z->p[z->c - 1] != 'n') goto lab1;
457
+ z->c--;
458
+ return 0;
459
+ lab1:
460
+ {
461
+ int v_3 = z->l - z->c;
462
+ if (z->c <= z->lb) return 0;
463
+ z->c--;
464
+ if (in_grouping_b(z, g_vowel, 97, 305, 0)) return 0;
465
+ z->c = z->l - v_3;
466
+ }
467
+ } while (0);
468
+ return 1;
469
+ }
470
+
471
+ static int r_2(struct SN_env * z) {
472
+ do {
473
+ int v_1 = z->l - z->c;
474
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab0;
475
+ z->c--;
476
+ {
477
+ int v_2 = z->l - z->c;
478
+ if (in_grouping_b(z, g_vowel, 97, 305, 0)) goto lab0;
479
+ z->c = z->l - v_2;
480
+ }
481
+ break;
482
+ lab0:
483
+ z->c = z->l - v_1;
484
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
485
+ z->c--;
486
+ return 0;
487
+ lab1:
488
+ {
489
+ int v_3 = z->l - z->c;
490
+ if (z->c <= z->lb) return 0;
491
+ z->c--;
492
+ if (in_grouping_b(z, g_vowel, 97, 305, 0)) return 0;
493
+ z->c = z->l - v_3;
494
+ }
495
+ } while (0);
496
+ return 1;
497
+ }
498
+
499
+ static int r_mark_possessives(struct SN_env * z) {
500
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((67133440 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
501
+ if (!find_among_b(z, a_0, 10, 0)) return 0;
502
+ do {
503
+ int v_1 = z->l - z->c;
504
+ if (in_grouping_b(z, g_U, 105, 305, 0)) goto lab0;
505
+ {
506
+ int v_2 = z->l - z->c;
507
+ if (out_grouping_b(z, g_vowel, 97, 305, 0)) goto lab0;
508
+ z->c = z->l - v_2;
509
+ }
510
+ break;
511
+ lab0:
512
+ z->c = z->l - v_1;
513
+ if (in_grouping_b(z, g_U, 105, 305, 0)) goto lab1;
514
+ return 0;
515
+ lab1:
516
+ {
517
+ int v_3 = z->l - z->c;
518
+ if (z->c <= z->lb) return 0;
519
+ z->c--;
520
+ if (out_grouping_b(z, g_vowel, 97, 305, 0)) return 0;
521
+ z->c = z->l - v_3;
522
+ }
523
+ } while (0);
524
+ return 1;
525
+ }
526
+
527
+ static int r_mark_sU(struct SN_env * z) {
528
+ {
529
+ int ret = r_check_vowel_harmony(z);
530
+ if (ret == 0) return ret;
531
+ }
532
+ if (in_grouping_b(z, g_U, 105, 305, 0)) return 0;
533
+ do {
534
+ int v_1 = z->l - z->c;
535
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
536
+ z->c--;
537
+ {
538
+ int v_2 = z->l - z->c;
539
+ if (in_grouping_b(z, g_vowel, 97, 305, 0)) goto lab0;
540
+ z->c = z->l - v_2;
541
+ }
542
+ break;
543
+ lab0:
544
+ z->c = z->l - v_1;
545
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
546
+ z->c--;
547
+ return 0;
548
+ lab1:
549
+ {
550
+ int v_3 = z->l - z->c;
551
+ if (z->c <= z->lb) return 0;
552
+ z->c--;
553
+ if (in_grouping_b(z, g_vowel, 97, 305, 0)) return 0;
554
+ z->c = z->l - v_3;
555
+ }
556
+ } while (0);
557
+ return 1;
558
+ }
559
+
560
+ static int r_mark_lArI(struct SN_env * z) {
561
+ if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 105 && z->p[z->c - 1] != 305)) return 0;
562
+ return find_among_b(z, a_1, 2, 0) != 0;
563
+ }
564
+
565
+ static int r_mark_nUn(struct SN_env * z) {
566
+ {
567
+ int ret = r_check_vowel_harmony(z);
568
+ if (ret == 0) return ret;
569
+ }
570
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 110) return 0;
571
+ if (!find_among_b(z, a_3, 4, 0)) return 0;
572
+ return r_1(z);
573
+ }
574
+
575
+ static int r_mark_DA(struct SN_env * z) {
576
+ {
577
+ int ret = r_check_vowel_harmony(z);
578
+ if (ret == 0) return ret;
579
+ }
580
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
581
+ return find_among_b(z, a_6, 4, 0) != 0;
582
+ }
583
+
584
+ static int r_mark_ndA(struct SN_env * z) {
585
+ {
586
+ int ret = r_check_vowel_harmony(z);
587
+ if (ret == 0) return ret;
588
+ }
589
+ if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) return 0;
590
+ return find_among_b(z, a_7, 2, 0) != 0;
591
+ }
592
+
593
+ static int r_mark_yUm(struct SN_env * z) {
594
+ {
595
+ int ret = r_check_vowel_harmony(z);
596
+ if (ret == 0) return ret;
597
+ }
598
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 109) return 0;
599
+ if (!find_among_b(z, a_12, 4, 0)) return 0;
600
+ return r_2(z);
601
+ }
602
+
603
+ static int r_mark_sUn(struct SN_env * z) {
604
+ {
605
+ int ret = r_check_vowel_harmony(z);
606
+ if (ret == 0) return ret;
607
+ }
608
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) return 0;
609
+ return find_among_b(z, a_13, 4, 0) != 0;
610
+ }
611
+
612
+ static int r_mark_yUz(struct SN_env * z) {
613
+ {
614
+ int ret = r_check_vowel_harmony(z);
615
+ if (ret == 0) return ret;
616
+ }
617
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] != 122) return 0;
618
+ if (!find_among_b(z, a_14, 4, 0)) return 0;
619
+ return r_2(z);
620
+ }
621
+
622
+ static int r_mark_sUnUz(struct SN_env * z) {
623
+ if (z->c - 4 <= z->lb || z->p[z->c - 1] != 122) return 0;
624
+ return find_among_b(z, a_15, 4, 0) != 0;
625
+ }
626
+
627
+ static int r_mark_lAr(struct SN_env * z) {
628
+ {
629
+ int ret = r_check_vowel_harmony(z);
630
+ if (ret == 0) return ret;
631
+ }
632
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
633
+ return find_among_b(z, a_16, 2, 0) != 0;
634
+ }
635
+
636
+ static int r_mark_DUr(struct SN_env * z) {
637
+ {
638
+ int ret = r_check_vowel_harmony(z);
639
+ if (ret == 0) return ret;
640
+ }
641
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 114) return 0;
642
+ return find_among_b(z, a_18, 8, 0) != 0;
643
+ }
644
+
645
+ static int r_mark_yDU(struct SN_env * z) {
646
+ {
647
+ int ret = r_check_vowel_harmony(z);
648
+ if (ret == 0) return ret;
649
+ }
650
+ if (!find_among_b(z, a_20, 32, 0)) return 0;
651
+ return r_2(z);
652
+ }
653
+
654
+ static int r_mark_ysA(struct SN_env * z) {
655
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((26658 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
656
+ if (!find_among_b(z, a_21, 8, 0)) return 0;
657
+ return r_2(z);
658
+ }
659
+
660
+ static int r_mark_ymUs_(struct SN_env * z) {
661
+ {
662
+ int ret = r_check_vowel_harmony(z);
663
+ if (ret == 0) return ret;
664
+ }
665
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 351) return 0;
666
+ if (!find_among_b(z, a_22, 4, 0)) return 0;
667
+ return r_2(z);
668
+ }
669
+
670
+ static int r_stem_suffix_chain_before_ki(struct SN_env * z) {
671
+ z->ket = z->c;
672
+ if (!(eq_s_b(z, 2, s_0))) return 0;
673
+ do {
674
+ int v_1 = z->l - z->c;
675
+ if (!r_mark_DA(z)) goto lab0;
676
+ z->bra = z->c;
677
+ {
678
+ int ret = slice_del(z);
679
+ if (ret < 0) return ret;
680
+ }
681
+ {
682
+ int v_2 = z->l - z->c;
683
+ z->ket = z->c;
684
+ do {
685
+ int v_3 = z->l - z->c;
686
+ if (!r_mark_lAr(z)) goto lab2;
687
+ z->bra = z->c;
688
+ {
689
+ int ret = slice_del(z);
690
+ if (ret < 0) return ret;
691
+ }
692
+ {
693
+ int v_4 = z->l - z->c;
694
+ {
695
+ int ret = r_stem_suffix_chain_before_ki(z);
696
+ if (ret == 0) { z->c = z->l - v_4; goto lab3; }
697
+ if (ret < 0) return ret;
698
+ }
699
+ lab3:
700
+ ;
701
+ }
702
+ break;
703
+ lab2:
704
+ z->c = z->l - v_3;
705
+ if (!r_mark_possessives(z)) { z->c = z->l - v_2; goto lab1; }
706
+ z->bra = z->c;
707
+ {
708
+ int ret = slice_del(z);
709
+ if (ret < 0) return ret;
710
+ }
711
+ {
712
+ int v_5 = z->l - z->c;
713
+ z->ket = z->c;
714
+ if (!r_mark_lAr(z)) { z->c = z->l - v_5; goto lab4; }
715
+ z->bra = z->c;
716
+ {
717
+ int ret = slice_del(z);
718
+ if (ret < 0) return ret;
719
+ }
720
+ {
721
+ int ret = r_stem_suffix_chain_before_ki(z);
722
+ if (ret == 0) { z->c = z->l - v_5; goto lab4; }
723
+ if (ret < 0) return ret;
724
+ }
725
+ lab4:
726
+ ;
727
+ }
728
+ } while (0);
729
+ lab1:
730
+ ;
731
+ }
732
+ break;
733
+ lab0:
734
+ z->c = z->l - v_1;
735
+ if (!r_mark_nUn(z)) goto lab5;
736
+ z->bra = z->c;
737
+ {
738
+ int ret = slice_del(z);
739
+ if (ret < 0) return ret;
740
+ }
741
+ {
742
+ int v_6 = z->l - z->c;
743
+ z->ket = z->c;
744
+ do {
745
+ int v_7 = z->l - z->c;
746
+ if (!r_mark_lArI(z)) goto lab7;
747
+ z->bra = z->c;
748
+ {
749
+ int ret = slice_del(z);
750
+ if (ret < 0) return ret;
751
+ }
752
+ break;
753
+ lab7:
754
+ z->c = z->l - v_7;
755
+ z->ket = z->c;
756
+ do {
757
+ int v_8 = z->l - z->c;
758
+ if (!r_mark_possessives(z)) goto lab9;
759
+ break;
760
+ lab9:
761
+ z->c = z->l - v_8;
762
+ if (!r_mark_sU(z)) goto lab8;
763
+ } while (0);
764
+ z->bra = z->c;
765
+ {
766
+ int ret = slice_del(z);
767
+ if (ret < 0) return ret;
768
+ }
769
+ {
770
+ int v_9 = z->l - z->c;
771
+ z->ket = z->c;
772
+ if (!r_mark_lAr(z)) { z->c = z->l - v_9; goto lab10; }
773
+ z->bra = z->c;
774
+ {
775
+ int ret = slice_del(z);
776
+ if (ret < 0) return ret;
777
+ }
778
+ {
779
+ int ret = r_stem_suffix_chain_before_ki(z);
780
+ if (ret == 0) { z->c = z->l - v_9; goto lab10; }
781
+ if (ret < 0) return ret;
782
+ }
783
+ lab10:
784
+ ;
785
+ }
786
+ break;
787
+ lab8:
788
+ z->c = z->l - v_7;
789
+ {
790
+ int ret = r_stem_suffix_chain_before_ki(z);
791
+ if (ret == 0) { z->c = z->l - v_6; goto lab6; }
792
+ if (ret < 0) return ret;
793
+ }
794
+ } while (0);
795
+ lab6:
796
+ ;
797
+ }
798
+ break;
799
+ lab5:
800
+ z->c = z->l - v_1;
801
+ {
802
+ int ret = r_mark_ndA(z);
803
+ if (ret == 0) return ret;
804
+ }
805
+ do {
806
+ int v_10 = z->l - z->c;
807
+ if (!r_mark_lArI(z)) goto lab11;
808
+ z->bra = z->c;
809
+ {
810
+ int ret = slice_del(z);
811
+ if (ret < 0) return ret;
812
+ }
813
+ break;
814
+ lab11:
815
+ z->c = z->l - v_10;
816
+ if (!r_mark_sU(z)) goto lab12;
817
+ z->bra = z->c;
818
+ {
819
+ int ret = slice_del(z);
820
+ if (ret < 0) return ret;
821
+ }
822
+ {
823
+ int v_11 = z->l - z->c;
824
+ z->ket = z->c;
825
+ if (!r_mark_lAr(z)) { z->c = z->l - v_11; goto lab13; }
826
+ z->bra = z->c;
827
+ {
828
+ int ret = slice_del(z);
829
+ if (ret < 0) return ret;
830
+ }
831
+ {
832
+ int ret = r_stem_suffix_chain_before_ki(z);
833
+ if (ret == 0) { z->c = z->l - v_11; goto lab13; }
834
+ if (ret < 0) return ret;
835
+ }
836
+ lab13:
837
+ ;
838
+ }
839
+ break;
840
+ lab12:
841
+ z->c = z->l - v_10;
842
+ {
843
+ int ret = r_stem_suffix_chain_before_ki(z);
844
+ if (ret <= 0) return ret;
845
+ }
846
+ } while (0);
847
+ } while (0);
848
+ return 1;
849
+ }
850
+
851
+ extern int turkish_stem(struct SN_env * z) {
852
+ int among_var;
853
+ int b_0;
854
+ {
855
+ int v_1 = z->c;
856
+ z->bra = z->c;
857
+ while (1) {
858
+ int v_2 = z->c;
859
+ if (z->c == z->l || z->p[z->c] != '\'') goto lab3;
860
+ z->c++;
861
+ goto lab2;
862
+ lab3:
863
+ z->c = v_2;
864
+ break;
865
+ lab2:
866
+ z->c = v_2;
867
+ if (z->c >= z->l) goto lab1;
868
+ z->c++;
869
+ }
870
+ z->ket = z->c;
871
+ {
872
+ int ret = slice_del(z);
873
+ if (ret < 0) return ret;
874
+ }
875
+ lab1:
876
+ z->c = v_1;
877
+ }
878
+ {
879
+ int v_3 = z->c;
880
+ if (z->c + 2 > z->l) goto lab4;
881
+ z->c += 2;
882
+ while (1) {
883
+ int v_4 = z->c;
884
+ if (z->c == z->l || z->p[z->c] != '\'') goto lab5;
885
+ z->c++;
886
+ z->c = v_4;
887
+ break;
888
+ lab5:
889
+ z->c = v_4;
890
+ if (z->c >= z->l) goto lab4;
891
+ z->c++;
892
+ }
893
+ z->bra = z->c;
894
+ z->c = z->l;
895
+ z->ket = z->c;
896
+ {
897
+ int ret = slice_del(z);
898
+ if (ret < 0) return ret;
899
+ }
900
+ lab4:
901
+ z->c = v_3;
902
+ }
903
+ {
904
+ int v_5 = z->c;
905
+ {
906
+ int i; for (i = 2; i > 0; i--) {
907
+ {
908
+ int ret = out_grouping(z, g_vowel, 97, 305, 1);
909
+ if (ret < 0) return 0;
910
+ z->c += ret;
911
+ }
912
+ }
913
+ }
914
+ z->c = v_5;
915
+ }
916
+ z->lb = z->c; z->c = z->l;
917
+ {
918
+ int v_6 = z->l - z->c;
919
+ z->ket = z->c;
920
+ b_0 = 1;
921
+ do {
922
+ int v_7 = z->l - z->c;
923
+ do {
924
+ int v_8 = z->l - z->c;
925
+ if (!r_mark_ymUs_(z)) goto lab8;
926
+ break;
927
+ lab8:
928
+ z->c = z->l - v_8;
929
+ if (!r_mark_yDU(z)) goto lab9;
930
+ break;
931
+ lab9:
932
+ z->c = z->l - v_8;
933
+ if (!r_mark_ysA(z)) goto lab10;
934
+ break;
935
+ lab10:
936
+ z->c = z->l - v_8;
937
+ if (!(eq_s_b(z, 3, s_1))) goto lab7;
938
+ if (!r_2(z)) goto lab7;
939
+ } while (0);
940
+ break;
941
+ lab7:
942
+ z->c = z->l - v_7;
943
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) goto lab11;
944
+ if (!find_among_b(z, a_19, 2, 0)) goto lab11;
945
+ do {
946
+ int v_9 = z->l - z->c;
947
+ if (!r_mark_sUnUz(z)) goto lab12;
948
+ break;
949
+ lab12:
950
+ z->c = z->l - v_9;
951
+ if (!r_mark_lAr(z)) goto lab13;
952
+ break;
953
+ lab13:
954
+ z->c = z->l - v_9;
955
+ if (!r_mark_yUm(z)) goto lab14;
956
+ break;
957
+ lab14:
958
+ z->c = z->l - v_9;
959
+ if (!r_mark_sUn(z)) goto lab15;
960
+ break;
961
+ lab15:
962
+ z->c = z->l - v_9;
963
+ if (!r_mark_yUz(z)) goto lab16;
964
+ break;
965
+ lab16:
966
+ z->c = z->l - v_9;
967
+ } while (0);
968
+ if (!r_mark_ymUs_(z)) goto lab11;
969
+ break;
970
+ lab11:
971
+ z->c = z->l - v_7;
972
+ if (!r_mark_lAr(z)) goto lab17;
973
+ z->bra = z->c;
974
+ {
975
+ int ret = slice_del(z);
976
+ if (ret < 0) return ret;
977
+ }
978
+ {
979
+ int v_10 = z->l - z->c;
980
+ z->ket = z->c;
981
+ do {
982
+ int v_11 = z->l - z->c;
983
+ if (!r_mark_DUr(z)) goto lab19;
984
+ break;
985
+ lab19:
986
+ z->c = z->l - v_11;
987
+ if (!r_mark_yDU(z)) goto lab20;
988
+ break;
989
+ lab20:
990
+ z->c = z->l - v_11;
991
+ if (!r_mark_ysA(z)) goto lab21;
992
+ break;
993
+ lab21:
994
+ z->c = z->l - v_11;
995
+ if (!r_mark_ymUs_(z)) { z->c = z->l - v_10; goto lab18; }
996
+ } while (0);
997
+ lab18:
998
+ ;
999
+ }
1000
+ b_0 = 0;
1001
+ break;
1002
+ lab17:
1003
+ z->c = z->l - v_7;
1004
+ if (!r_check_vowel_harmony(z)) goto lab22;
1005
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 122) goto lab22;
1006
+ if (!find_among_b(z, a_17, 4, 0)) goto lab22;
1007
+ do {
1008
+ int v_12 = z->l - z->c;
1009
+ if (!r_mark_yDU(z)) goto lab23;
1010
+ break;
1011
+ lab23:
1012
+ z->c = z->l - v_12;
1013
+ if (!r_mark_ysA(z)) goto lab22;
1014
+ } while (0);
1015
+ break;
1016
+ lab22:
1017
+ z->c = z->l - v_7;
1018
+ do {
1019
+ int v_13 = z->l - z->c;
1020
+ if (!r_mark_sUnUz(z)) goto lab25;
1021
+ break;
1022
+ lab25:
1023
+ z->c = z->l - v_13;
1024
+ if (!r_mark_yUz(z)) goto lab26;
1025
+ break;
1026
+ lab26:
1027
+ z->c = z->l - v_13;
1028
+ if (!r_mark_sUn(z)) goto lab27;
1029
+ break;
1030
+ lab27:
1031
+ z->c = z->l - v_13;
1032
+ if (!r_mark_yUm(z)) goto lab24;
1033
+ } while (0);
1034
+ z->bra = z->c;
1035
+ {
1036
+ int ret = slice_del(z);
1037
+ if (ret < 0) return ret;
1038
+ }
1039
+ {
1040
+ int v_14 = z->l - z->c;
1041
+ z->ket = z->c;
1042
+ if (!r_mark_ymUs_(z)) { z->c = z->l - v_14; goto lab28; }
1043
+ lab28:
1044
+ ;
1045
+ }
1046
+ break;
1047
+ lab24:
1048
+ z->c = z->l - v_7;
1049
+ if (!r_mark_DUr(z)) goto lab6;
1050
+ z->bra = z->c;
1051
+ {
1052
+ int ret = slice_del(z);
1053
+ if (ret < 0) return ret;
1054
+ }
1055
+ {
1056
+ int v_15 = z->l - z->c;
1057
+ z->ket = z->c;
1058
+ do {
1059
+ int v_16 = z->l - z->c;
1060
+ if (!r_mark_sUnUz(z)) goto lab30;
1061
+ break;
1062
+ lab30:
1063
+ z->c = z->l - v_16;
1064
+ if (!r_mark_lAr(z)) goto lab31;
1065
+ break;
1066
+ lab31:
1067
+ z->c = z->l - v_16;
1068
+ if (!r_mark_yUm(z)) goto lab32;
1069
+ break;
1070
+ lab32:
1071
+ z->c = z->l - v_16;
1072
+ if (!r_mark_sUn(z)) goto lab33;
1073
+ break;
1074
+ lab33:
1075
+ z->c = z->l - v_16;
1076
+ if (!r_mark_yUz(z)) goto lab34;
1077
+ break;
1078
+ lab34:
1079
+ z->c = z->l - v_16;
1080
+ } while (0);
1081
+ if (!r_mark_ymUs_(z)) { z->c = z->l - v_15; goto lab29; }
1082
+ lab29:
1083
+ ;
1084
+ }
1085
+ } while (0);
1086
+ z->bra = z->c;
1087
+ {
1088
+ int ret = slice_del(z);
1089
+ if (ret < 0) return ret;
1090
+ }
1091
+ lab6:
1092
+ z->c = z->l - v_6;
1093
+ }
1094
+ if (!b_0) return 0;
1095
+ {
1096
+ int v_17 = z->l - z->c;
1097
+ do {
1098
+ int v_18 = z->l - z->c;
1099
+ z->ket = z->c;
1100
+ if (!r_mark_lAr(z)) goto lab36;
1101
+ z->bra = z->c;
1102
+ {
1103
+ int ret = slice_del(z);
1104
+ if (ret < 0) return ret;
1105
+ }
1106
+ {
1107
+ int v_19 = z->l - z->c;
1108
+ {
1109
+ int ret = r_stem_suffix_chain_before_ki(z);
1110
+ if (ret == 0) { z->c = z->l - v_19; goto lab37; }
1111
+ if (ret < 0) return ret;
1112
+ }
1113
+ lab37:
1114
+ ;
1115
+ }
1116
+ break;
1117
+ lab36:
1118
+ z->c = z->l - v_18;
1119
+ z->ket = z->c;
1120
+ if (!r_check_vowel_harmony(z)) goto lab38;
1121
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) goto lab38;
1122
+ if (!find_among_b(z, a_11, 2, 0)) goto lab38;
1123
+ if (!r_1(z)) goto lab38;
1124
+ z->bra = z->c;
1125
+ {
1126
+ int ret = slice_del(z);
1127
+ if (ret < 0) return ret;
1128
+ }
1129
+ {
1130
+ int v_20 = z->l - z->c;
1131
+ do {
1132
+ int v_21 = z->l - z->c;
1133
+ z->ket = z->c;
1134
+ if (!r_mark_lArI(z)) goto lab40;
1135
+ z->bra = z->c;
1136
+ {
1137
+ int ret = slice_del(z);
1138
+ if (ret < 0) return ret;
1139
+ }
1140
+ break;
1141
+ lab40:
1142
+ z->c = z->l - v_21;
1143
+ z->ket = z->c;
1144
+ do {
1145
+ int v_22 = z->l - z->c;
1146
+ if (!r_mark_possessives(z)) goto lab42;
1147
+ break;
1148
+ lab42:
1149
+ z->c = z->l - v_22;
1150
+ if (!r_mark_sU(z)) goto lab41;
1151
+ } while (0);
1152
+ z->bra = z->c;
1153
+ {
1154
+ int ret = slice_del(z);
1155
+ if (ret < 0) return ret;
1156
+ }
1157
+ {
1158
+ int v_23 = z->l - z->c;
1159
+ z->ket = z->c;
1160
+ if (!r_mark_lAr(z)) { z->c = z->l - v_23; goto lab43; }
1161
+ z->bra = z->c;
1162
+ {
1163
+ int ret = slice_del(z);
1164
+ if (ret < 0) return ret;
1165
+ }
1166
+ {
1167
+ int ret = r_stem_suffix_chain_before_ki(z);
1168
+ if (ret == 0) { z->c = z->l - v_23; goto lab43; }
1169
+ if (ret < 0) return ret;
1170
+ }
1171
+ lab43:
1172
+ ;
1173
+ }
1174
+ break;
1175
+ lab41:
1176
+ z->c = z->l - v_21;
1177
+ z->ket = z->c;
1178
+ if (!r_mark_lAr(z)) { z->c = z->l - v_20; goto lab39; }
1179
+ z->bra = z->c;
1180
+ {
1181
+ int ret = slice_del(z);
1182
+ if (ret < 0) return ret;
1183
+ }
1184
+ {
1185
+ int ret = r_stem_suffix_chain_before_ki(z);
1186
+ if (ret == 0) { z->c = z->l - v_20; goto lab39; }
1187
+ if (ret < 0) return ret;
1188
+ }
1189
+ } while (0);
1190
+ lab39:
1191
+ ;
1192
+ }
1193
+ break;
1194
+ lab38:
1195
+ z->c = z->l - v_18;
1196
+ z->ket = z->c;
1197
+ do {
1198
+ int v_24 = z->l - z->c;
1199
+ if (!r_mark_ndA(z)) goto lab45;
1200
+ break;
1201
+ lab45:
1202
+ z->c = z->l - v_24;
1203
+ if (!r_check_vowel_harmony(z)) goto lab44;
1204
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) goto lab44;
1205
+ if (!find_among_b(z, a_5, 2, 0)) goto lab44;
1206
+ } while (0);
1207
+ do {
1208
+ int v_25 = z->l - z->c;
1209
+ if (!r_mark_lArI(z)) goto lab46;
1210
+ z->bra = z->c;
1211
+ {
1212
+ int ret = slice_del(z);
1213
+ if (ret < 0) return ret;
1214
+ }
1215
+ break;
1216
+ lab46:
1217
+ z->c = z->l - v_25;
1218
+ if (!r_mark_sU(z)) goto lab47;
1219
+ z->bra = z->c;
1220
+ {
1221
+ int ret = slice_del(z);
1222
+ if (ret < 0) return ret;
1223
+ }
1224
+ {
1225
+ int v_26 = z->l - z->c;
1226
+ z->ket = z->c;
1227
+ if (!r_mark_lAr(z)) { z->c = z->l - v_26; goto lab48; }
1228
+ z->bra = z->c;
1229
+ {
1230
+ int ret = slice_del(z);
1231
+ if (ret < 0) return ret;
1232
+ }
1233
+ {
1234
+ int ret = r_stem_suffix_chain_before_ki(z);
1235
+ if (ret == 0) { z->c = z->l - v_26; goto lab48; }
1236
+ if (ret < 0) return ret;
1237
+ }
1238
+ lab48:
1239
+ ;
1240
+ }
1241
+ break;
1242
+ lab47:
1243
+ z->c = z->l - v_25;
1244
+ {
1245
+ int ret = r_stem_suffix_chain_before_ki(z);
1246
+ if (ret == 0) goto lab44;
1247
+ if (ret < 0) return ret;
1248
+ }
1249
+ } while (0);
1250
+ break;
1251
+ lab44:
1252
+ z->c = z->l - v_18;
1253
+ z->ket = z->c;
1254
+ do {
1255
+ int v_27 = z->l - z->c;
1256
+ if (!r_check_vowel_harmony(z)) goto lab50;
1257
+ if (z->c - 3 <= z->lb || z->p[z->c - 1] != 110) goto lab50;
1258
+ if (!find_among_b(z, a_9, 2, 0)) goto lab50;
1259
+ break;
1260
+ lab50:
1261
+ z->c = z->l - v_27;
1262
+ if (!r_check_vowel_harmony(z)) goto lab49;
1263
+ if (!find_among_b(z, a_2, 4, 0)) goto lab49;
1264
+ } while (0);
1265
+ do {
1266
+ int v_28 = z->l - z->c;
1267
+ if (!r_mark_sU(z)) goto lab51;
1268
+ z->bra = z->c;
1269
+ {
1270
+ int ret = slice_del(z);
1271
+ if (ret < 0) return ret;
1272
+ }
1273
+ {
1274
+ int v_29 = z->l - z->c;
1275
+ z->ket = z->c;
1276
+ if (!r_mark_lAr(z)) { z->c = z->l - v_29; goto lab52; }
1277
+ z->bra = z->c;
1278
+ {
1279
+ int ret = slice_del(z);
1280
+ if (ret < 0) return ret;
1281
+ }
1282
+ {
1283
+ int ret = r_stem_suffix_chain_before_ki(z);
1284
+ if (ret == 0) { z->c = z->l - v_29; goto lab52; }
1285
+ if (ret < 0) return ret;
1286
+ }
1287
+ lab52:
1288
+ ;
1289
+ }
1290
+ break;
1291
+ lab51:
1292
+ z->c = z->l - v_28;
1293
+ if (!r_mark_lArI(z)) goto lab49;
1294
+ } while (0);
1295
+ break;
1296
+ lab49:
1297
+ z->c = z->l - v_18;
1298
+ z->ket = z->c;
1299
+ if (!r_check_vowel_harmony(z)) goto lab53;
1300
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] != 110) goto lab53;
1301
+ if (!find_among_b(z, a_8, 4, 0)) goto lab53;
1302
+ z->bra = z->c;
1303
+ {
1304
+ int ret = slice_del(z);
1305
+ if (ret < 0) return ret;
1306
+ }
1307
+ {
1308
+ int v_30 = z->l - z->c;
1309
+ z->ket = z->c;
1310
+ do {
1311
+ int v_31 = z->l - z->c;
1312
+ if (!r_mark_possessives(z)) goto lab55;
1313
+ z->bra = z->c;
1314
+ {
1315
+ int ret = slice_del(z);
1316
+ if (ret < 0) return ret;
1317
+ }
1318
+ {
1319
+ int v_32 = z->l - z->c;
1320
+ z->ket = z->c;
1321
+ if (!r_mark_lAr(z)) { z->c = z->l - v_32; goto lab56; }
1322
+ z->bra = z->c;
1323
+ {
1324
+ int ret = slice_del(z);
1325
+ if (ret < 0) return ret;
1326
+ }
1327
+ {
1328
+ int ret = r_stem_suffix_chain_before_ki(z);
1329
+ if (ret == 0) { z->c = z->l - v_32; goto lab56; }
1330
+ if (ret < 0) return ret;
1331
+ }
1332
+ lab56:
1333
+ ;
1334
+ }
1335
+ break;
1336
+ lab55:
1337
+ z->c = z->l - v_31;
1338
+ if (!r_mark_lAr(z)) goto lab57;
1339
+ z->bra = z->c;
1340
+ {
1341
+ int ret = slice_del(z);
1342
+ if (ret < 0) return ret;
1343
+ }
1344
+ {
1345
+ int v_33 = z->l - z->c;
1346
+ {
1347
+ int ret = r_stem_suffix_chain_before_ki(z);
1348
+ if (ret == 0) { z->c = z->l - v_33; goto lab58; }
1349
+ if (ret < 0) return ret;
1350
+ }
1351
+ lab58:
1352
+ ;
1353
+ }
1354
+ break;
1355
+ lab57:
1356
+ z->c = z->l - v_31;
1357
+ {
1358
+ int ret = r_stem_suffix_chain_before_ki(z);
1359
+ if (ret == 0) { z->c = z->l - v_30; goto lab54; }
1360
+ if (ret < 0) return ret;
1361
+ }
1362
+ } while (0);
1363
+ lab54:
1364
+ ;
1365
+ }
1366
+ break;
1367
+ lab53:
1368
+ z->c = z->l - v_18;
1369
+ z->ket = z->c;
1370
+ do {
1371
+ int v_34 = z->l - z->c;
1372
+ if (!r_mark_nUn(z)) goto lab60;
1373
+ break;
1374
+ lab60:
1375
+ z->c = z->l - v_34;
1376
+ if (!r_check_vowel_harmony(z)) goto lab59;
1377
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) goto lab59;
1378
+ if (!find_among_b(z, a_10, 2, 0)) goto lab59;
1379
+ if (!r_2(z)) goto lab59;
1380
+ } while (0);
1381
+ z->bra = z->c;
1382
+ {
1383
+ int ret = slice_del(z);
1384
+ if (ret < 0) return ret;
1385
+ }
1386
+ {
1387
+ int v_35 = z->l - z->c;
1388
+ do {
1389
+ int v_36 = z->l - z->c;
1390
+ z->ket = z->c;
1391
+ if (!r_mark_lAr(z)) goto lab62;
1392
+ z->bra = z->c;
1393
+ {
1394
+ int ret = slice_del(z);
1395
+ if (ret < 0) return ret;
1396
+ }
1397
+ {
1398
+ int ret = r_stem_suffix_chain_before_ki(z);
1399
+ if (ret == 0) goto lab62;
1400
+ if (ret < 0) return ret;
1401
+ }
1402
+ break;
1403
+ lab62:
1404
+ z->c = z->l - v_36;
1405
+ z->ket = z->c;
1406
+ do {
1407
+ int v_37 = z->l - z->c;
1408
+ if (!r_mark_possessives(z)) goto lab64;
1409
+ break;
1410
+ lab64:
1411
+ z->c = z->l - v_37;
1412
+ if (!r_mark_sU(z)) goto lab63;
1413
+ } while (0);
1414
+ z->bra = z->c;
1415
+ {
1416
+ int ret = slice_del(z);
1417
+ if (ret < 0) return ret;
1418
+ }
1419
+ {
1420
+ int v_38 = z->l - z->c;
1421
+ z->ket = z->c;
1422
+ if (!r_mark_lAr(z)) { z->c = z->l - v_38; goto lab65; }
1423
+ z->bra = z->c;
1424
+ {
1425
+ int ret = slice_del(z);
1426
+ if (ret < 0) return ret;
1427
+ }
1428
+ {
1429
+ int ret = r_stem_suffix_chain_before_ki(z);
1430
+ if (ret == 0) { z->c = z->l - v_38; goto lab65; }
1431
+ if (ret < 0) return ret;
1432
+ }
1433
+ lab65:
1434
+ ;
1435
+ }
1436
+ break;
1437
+ lab63:
1438
+ z->c = z->l - v_36;
1439
+ {
1440
+ int ret = r_stem_suffix_chain_before_ki(z);
1441
+ if (ret == 0) { z->c = z->l - v_35; goto lab61; }
1442
+ if (ret < 0) return ret;
1443
+ }
1444
+ } while (0);
1445
+ lab61:
1446
+ ;
1447
+ }
1448
+ break;
1449
+ lab59:
1450
+ z->c = z->l - v_18;
1451
+ z->ket = z->c;
1452
+ if (!r_mark_lArI(z)) goto lab66;
1453
+ z->bra = z->c;
1454
+ {
1455
+ int ret = slice_del(z);
1456
+ if (ret < 0) return ret;
1457
+ }
1458
+ break;
1459
+ lab66:
1460
+ z->c = z->l - v_18;
1461
+ {
1462
+ int ret = r_stem_suffix_chain_before_ki(z);
1463
+ if (ret == 0) goto lab67;
1464
+ if (ret < 0) return ret;
1465
+ }
1466
+ break;
1467
+ lab67:
1468
+ z->c = z->l - v_18;
1469
+ z->ket = z->c;
1470
+ do {
1471
+ int v_39 = z->l - z->c;
1472
+ if (!r_mark_DA(z)) goto lab69;
1473
+ break;
1474
+ lab69:
1475
+ z->c = z->l - v_39;
1476
+ if (!r_check_vowel_harmony(z)) goto lab70;
1477
+ if (in_grouping_b(z, g_U, 105, 305, 0)) goto lab70;
1478
+ if (!r_2(z)) goto lab70;
1479
+ break;
1480
+ lab70:
1481
+ z->c = z->l - v_39;
1482
+ if (!r_check_vowel_harmony(z)) goto lab68;
1483
+ if (z->c <= z->lb || (z->p[z->c - 1] != 97 && z->p[z->c - 1] != 101)) goto lab68;
1484
+ z->c--;
1485
+ if (!r_2(z)) goto lab68;
1486
+ } while (0);
1487
+ z->bra = z->c;
1488
+ {
1489
+ int ret = slice_del(z);
1490
+ if (ret < 0) return ret;
1491
+ }
1492
+ {
1493
+ int v_40 = z->l - z->c;
1494
+ z->ket = z->c;
1495
+ do {
1496
+ int v_41 = z->l - z->c;
1497
+ if (!r_mark_possessives(z)) goto lab72;
1498
+ z->bra = z->c;
1499
+ {
1500
+ int ret = slice_del(z);
1501
+ if (ret < 0) return ret;
1502
+ }
1503
+ {
1504
+ int v_42 = z->l - z->c;
1505
+ z->ket = z->c;
1506
+ if (!r_mark_lAr(z)) { z->c = z->l - v_42; goto lab73; }
1507
+ lab73:
1508
+ ;
1509
+ }
1510
+ break;
1511
+ lab72:
1512
+ z->c = z->l - v_41;
1513
+ if (!r_mark_lAr(z)) { z->c = z->l - v_40; goto lab71; }
1514
+ } while (0);
1515
+ z->bra = z->c;
1516
+ {
1517
+ int ret = slice_del(z);
1518
+ if (ret < 0) return ret;
1519
+ }
1520
+ z->ket = z->c;
1521
+ {
1522
+ int ret = r_stem_suffix_chain_before_ki(z);
1523
+ if (ret == 0) { z->c = z->l - v_40; goto lab71; }
1524
+ if (ret < 0) return ret;
1525
+ }
1526
+ lab71:
1527
+ ;
1528
+ }
1529
+ break;
1530
+ lab68:
1531
+ z->c = z->l - v_18;
1532
+ z->ket = z->c;
1533
+ do {
1534
+ int v_43 = z->l - z->c;
1535
+ if (!r_mark_possessives(z)) goto lab74;
1536
+ break;
1537
+ lab74:
1538
+ z->c = z->l - v_43;
1539
+ if (!r_mark_sU(z)) goto lab35;
1540
+ } while (0);
1541
+ z->bra = z->c;
1542
+ {
1543
+ int ret = slice_del(z);
1544
+ if (ret < 0) return ret;
1545
+ }
1546
+ {
1547
+ int v_44 = z->l - z->c;
1548
+ z->ket = z->c;
1549
+ if (!r_mark_lAr(z)) { z->c = z->l - v_44; goto lab75; }
1550
+ z->bra = z->c;
1551
+ {
1552
+ int ret = slice_del(z);
1553
+ if (ret < 0) return ret;
1554
+ }
1555
+ {
1556
+ int ret = r_stem_suffix_chain_before_ki(z);
1557
+ if (ret == 0) { z->c = z->l - v_44; goto lab75; }
1558
+ if (ret < 0) return ret;
1559
+ }
1560
+ lab75:
1561
+ ;
1562
+ }
1563
+ } while (0);
1564
+ lab35:
1565
+ z->c = z->l - v_17;
1566
+ }
1567
+ z->c = z->lb;
1568
+ z->lb = z->c; z->c = z->l;
1569
+ {
1570
+ int v_45 = z->l - z->c;
1571
+ if (!(eq_s_b(z, 2, s_2))) goto lab76;
1572
+ {
1573
+ int v_46 = z->l - z->c;
1574
+ if (!(eq_s_b(z, 3, s_3))) { z->c = z->l - v_46; goto lab77; }
1575
+ lab77:
1576
+ ;
1577
+ }
1578
+ if (z->c > z->lb) goto lab76;
1579
+ return 0;
1580
+ lab76:
1581
+ z->c = z->l - v_45;
1582
+ }
1583
+ {
1584
+ int v_47 = z->l - z->c;
1585
+ z->ket = z->c;
1586
+ z->bra = z->c;
1587
+ do {
1588
+ if (z->c <= z->lb || z->p[z->c - 1] != 'd') goto lab79;
1589
+ z->c--;
1590
+ break;
1591
+ lab79:
1592
+ if (z->c <= z->lb || z->p[z->c - 1] != 'g') goto lab78;
1593
+ z->c--;
1594
+ } while (0);
1595
+ if (out_grouping_b(z, g_vowel, 97, 305, 1) < 0) goto lab78;
1596
+ do {
1597
+ int v_48 = z->l - z->c;
1598
+ do {
1599
+ if (z->c <= z->lb || z->p[z->c - 1] != 'a') goto lab81;
1600
+ z->c--;
1601
+ break;
1602
+ lab81:
1603
+ if (z->c <= z->lb || z->p[z->c - 1] != 0x131) goto lab80;
1604
+ z->c--;
1605
+ } while (0);
1606
+ {
1607
+ int ret = slice_from_s(z, 1, s_4);
1608
+ if (ret < 0) return ret;
1609
+ }
1610
+ break;
1611
+ lab80:
1612
+ z->c = z->l - v_48;
1613
+ do {
1614
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab83;
1615
+ z->c--;
1616
+ break;
1617
+ lab83:
1618
+ if (z->c <= z->lb || z->p[z->c - 1] != 'i') goto lab82;
1619
+ z->c--;
1620
+ } while (0);
1621
+ {
1622
+ int ret = slice_from_s(z, 1, s_5);
1623
+ if (ret < 0) return ret;
1624
+ }
1625
+ break;
1626
+ lab82:
1627
+ z->c = z->l - v_48;
1628
+ do {
1629
+ if (z->c <= z->lb || z->p[z->c - 1] != 'o') goto lab85;
1630
+ z->c--;
1631
+ break;
1632
+ lab85:
1633
+ if (z->c <= z->lb || z->p[z->c - 1] != 'u') goto lab84;
1634
+ z->c--;
1635
+ } while (0);
1636
+ {
1637
+ int ret = slice_from_s(z, 1, s_6);
1638
+ if (ret < 0) return ret;
1639
+ }
1640
+ break;
1641
+ lab84:
1642
+ z->c = z->l - v_48;
1643
+ do {
1644
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xF6) goto lab86;
1645
+ z->c--;
1646
+ break;
1647
+ lab86:
1648
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xFC) goto lab78;
1649
+ z->c--;
1650
+ } while (0);
1651
+ {
1652
+ int ret = slice_from_s(z, 1, s_7);
1653
+ if (ret < 0) return ret;
1654
+ }
1655
+ } while (0);
1656
+ lab78:
1657
+ z->c = z->l - v_47;
1658
+ }
1659
+ {
1660
+ int v_49 = z->l - z->c;
1661
+ z->ket = z->c;
1662
+ among_var = find_among_b(z, a_23, 4, 0);
1663
+ if (!among_var) goto lab87;
1664
+ z->bra = z->c;
1665
+ switch (among_var) {
1666
+ case 1:
1667
+ {
1668
+ int ret = slice_from_s(z, 1, s_8);
1669
+ if (ret < 0) return ret;
1670
+ }
1671
+ break;
1672
+ case 2:
1673
+ {
1674
+ int ret = slice_from_s(z, 1, s_9);
1675
+ if (ret < 0) return ret;
1676
+ }
1677
+ break;
1678
+ case 3:
1679
+ {
1680
+ int ret = slice_from_s(z, 1, s_10);
1681
+ if (ret < 0) return ret;
1682
+ }
1683
+ break;
1684
+ case 4:
1685
+ {
1686
+ int ret = slice_from_s(z, 1, s_11);
1687
+ if (ret < 0) return ret;
1688
+ }
1689
+ break;
1690
+ }
1691
+ lab87:
1692
+ z->c = z->l - v_49;
1693
+ }
1694
+ z->c = z->lb;
1695
+ return 1;
1696
+ }
1697
+
1698
+ extern struct SN_env * turkish_create_env(void) {
1699
+ return SN_new_env(sizeof(struct SN_env));
1700
+ }