@delali/narsil-react-native 0.3.1-next.155 → 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,1506 @@
1
+ /*
2
+ * Generated from algorithms/arabic.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 "arabic_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 arabic_stem(struct SN_env * z);
28
+ #ifdef __cplusplus
29
+ }
30
+ #endif
31
+
32
+ static int r_Suffix_Verb_Step2a(struct SN_env * z);
33
+ static int r_Suffix_Noun_Step2c1(struct SN_env * z);
34
+ static int r_Suffix_Noun_Step2b(struct SN_env * z);
35
+ static int r_Suffix_Noun_Step2a(struct SN_env * z);
36
+
37
+ static const symbol s_0[] = { 0x627, 0x62A };
38
+ static const symbol s_1[] = { '0' };
39
+ static const symbol s_2[] = { '1' };
40
+ static const symbol s_3[] = { '2' };
41
+ static const symbol s_4[] = { '3' };
42
+ static const symbol s_5[] = { '4' };
43
+ static const symbol s_6[] = { '5' };
44
+ static const symbol s_7[] = { '6' };
45
+ static const symbol s_8[] = { '7' };
46
+ static const symbol s_9[] = { '8' };
47
+ static const symbol s_10[] = { '9' };
48
+ static const symbol s_11[] = { 0x621 };
49
+ static const symbol s_12[] = { 0x623 };
50
+ static const symbol s_13[] = { 0x625 };
51
+ static const symbol s_14[] = { 0x626 };
52
+ static const symbol s_15[] = { 0x622 };
53
+ static const symbol s_16[] = { 0x624 };
54
+ static const symbol s_17[] = { 0x627 };
55
+ static const symbol s_18[] = { 0x628 };
56
+ static const symbol s_19[] = { 0x629 };
57
+ static const symbol s_20[] = { 0x62A };
58
+ static const symbol s_21[] = { 0x62B };
59
+ static const symbol s_22[] = { 0x62C };
60
+ static const symbol s_23[] = { 0x62D };
61
+ static const symbol s_24[] = { 0x62E };
62
+ static const symbol s_25[] = { 0x62F };
63
+ static const symbol s_26[] = { 0x630 };
64
+ static const symbol s_27[] = { 0x631 };
65
+ static const symbol s_28[] = { 0x632 };
66
+ static const symbol s_29[] = { 0x633 };
67
+ static const symbol s_30[] = { 0x634 };
68
+ static const symbol s_31[] = { 0x635 };
69
+ static const symbol s_32[] = { 0x636 };
70
+ static const symbol s_33[] = { 0x637 };
71
+ static const symbol s_34[] = { 0x638 };
72
+ static const symbol s_35[] = { 0x639 };
73
+ static const symbol s_36[] = { 0x63A };
74
+ static const symbol s_37[] = { 0x641 };
75
+ static const symbol s_38[] = { 0x642 };
76
+ static const symbol s_39[] = { 0x643 };
77
+ static const symbol s_40[] = { 0x644 };
78
+ static const symbol s_41[] = { 0x645 };
79
+ static const symbol s_42[] = { 0x646 };
80
+ static const symbol s_43[] = { 0x647 };
81
+ static const symbol s_44[] = { 0x648 };
82
+ static const symbol s_45[] = { 0x649 };
83
+ static const symbol s_46[] = { 0x64A };
84
+ static const symbol s_47[] = { 0x644, 0x627 };
85
+ static const symbol s_48[] = { 0x644, 0x623 };
86
+ static const symbol s_49[] = { 0x644, 0x625 };
87
+ static const symbol s_50[] = { 0x644, 0x622 };
88
+ static const symbol s_51[] = { 0x64A };
89
+ static const symbol s_52[] = { 0x623 };
90
+ static const symbol s_53[] = { 0x622 };
91
+ static const symbol s_54[] = { 0x627 };
92
+ static const symbol s_55[] = { 0x625 };
93
+ static const symbol s_56[] = { 0x628 };
94
+ static const symbol s_57[] = { 0x643 };
95
+ static const symbol s_58[] = { 0x64A };
96
+ static const symbol s_59[] = { 0x62A };
97
+ static const symbol s_60[] = { 0x646 };
98
+ static const symbol s_61[] = { 0x623 };
99
+ static const symbol s_62[] = { 0x627, 0x633, 0x62A };
100
+ static const symbol s_63[] = { 0x621 };
101
+ static const symbol s_64[] = { 0x627 };
102
+ static const symbol s_65[] = { 0x648 };
103
+ static const symbol s_66[] = { 0x64A };
104
+
105
+ static const symbol s_0_0[1] = { 0x640 };
106
+ static const symbol s_0_1[1] = { 0x64B };
107
+ static const symbol s_0_2[1] = { 0x64C };
108
+ static const symbol s_0_3[1] = { 0x64D };
109
+ static const symbol s_0_4[1] = { 0x64E };
110
+ static const symbol s_0_5[1] = { 0x64F };
111
+ static const symbol s_0_6[1] = { 0x650 };
112
+ static const symbol s_0_7[1] = { 0x651 };
113
+ static const symbol s_0_8[1] = { 0x652 };
114
+ static const symbol s_0_9[1] = { 0x660 };
115
+ static const symbol s_0_10[1] = { 0x661 };
116
+ static const symbol s_0_11[1] = { 0x662 };
117
+ static const symbol s_0_12[1] = { 0x663 };
118
+ static const symbol s_0_13[1] = { 0x664 };
119
+ static const symbol s_0_14[1] = { 0x665 };
120
+ static const symbol s_0_15[1] = { 0x666 };
121
+ static const symbol s_0_16[1] = { 0x667 };
122
+ static const symbol s_0_17[1] = { 0x668 };
123
+ static const symbol s_0_18[1] = { 0x669 };
124
+ static const symbol s_0_19[1] = { 0xFE80 };
125
+ static const symbol s_0_20[1] = { 0xFE81 };
126
+ static const symbol s_0_21[1] = { 0xFE82 };
127
+ static const symbol s_0_22[1] = { 0xFE83 };
128
+ static const symbol s_0_23[1] = { 0xFE84 };
129
+ static const symbol s_0_24[1] = { 0xFE85 };
130
+ static const symbol s_0_25[1] = { 0xFE86 };
131
+ static const symbol s_0_26[1] = { 0xFE87 };
132
+ static const symbol s_0_27[1] = { 0xFE88 };
133
+ static const symbol s_0_28[1] = { 0xFE89 };
134
+ static const symbol s_0_29[1] = { 0xFE8A };
135
+ static const symbol s_0_30[1] = { 0xFE8B };
136
+ static const symbol s_0_31[1] = { 0xFE8C };
137
+ static const symbol s_0_32[1] = { 0xFE8D };
138
+ static const symbol s_0_33[1] = { 0xFE8E };
139
+ static const symbol s_0_34[1] = { 0xFE8F };
140
+ static const symbol s_0_35[1] = { 0xFE90 };
141
+ static const symbol s_0_36[1] = { 0xFE91 };
142
+ static const symbol s_0_37[1] = { 0xFE92 };
143
+ static const symbol s_0_38[1] = { 0xFE93 };
144
+ static const symbol s_0_39[1] = { 0xFE94 };
145
+ static const symbol s_0_40[1] = { 0xFE95 };
146
+ static const symbol s_0_41[1] = { 0xFE96 };
147
+ static const symbol s_0_42[1] = { 0xFE97 };
148
+ static const symbol s_0_43[1] = { 0xFE98 };
149
+ static const symbol s_0_44[1] = { 0xFE99 };
150
+ static const symbol s_0_45[1] = { 0xFE9A };
151
+ static const symbol s_0_46[1] = { 0xFE9B };
152
+ static const symbol s_0_47[1] = { 0xFE9C };
153
+ static const symbol s_0_48[1] = { 0xFE9D };
154
+ static const symbol s_0_49[1] = { 0xFE9E };
155
+ static const symbol s_0_50[1] = { 0xFE9F };
156
+ static const symbol s_0_51[1] = { 0xFEA0 };
157
+ static const symbol s_0_52[1] = { 0xFEA1 };
158
+ static const symbol s_0_53[1] = { 0xFEA2 };
159
+ static const symbol s_0_54[1] = { 0xFEA3 };
160
+ static const symbol s_0_55[1] = { 0xFEA4 };
161
+ static const symbol s_0_56[1] = { 0xFEA5 };
162
+ static const symbol s_0_57[1] = { 0xFEA6 };
163
+ static const symbol s_0_58[1] = { 0xFEA7 };
164
+ static const symbol s_0_59[1] = { 0xFEA8 };
165
+ static const symbol s_0_60[1] = { 0xFEA9 };
166
+ static const symbol s_0_61[1] = { 0xFEAA };
167
+ static const symbol s_0_62[1] = { 0xFEAB };
168
+ static const symbol s_0_63[1] = { 0xFEAC };
169
+ static const symbol s_0_64[1] = { 0xFEAD };
170
+ static const symbol s_0_65[1] = { 0xFEAE };
171
+ static const symbol s_0_66[1] = { 0xFEAF };
172
+ static const symbol s_0_67[1] = { 0xFEB0 };
173
+ static const symbol s_0_68[1] = { 0xFEB1 };
174
+ static const symbol s_0_69[1] = { 0xFEB2 };
175
+ static const symbol s_0_70[1] = { 0xFEB3 };
176
+ static const symbol s_0_71[1] = { 0xFEB4 };
177
+ static const symbol s_0_72[1] = { 0xFEB5 };
178
+ static const symbol s_0_73[1] = { 0xFEB6 };
179
+ static const symbol s_0_74[1] = { 0xFEB7 };
180
+ static const symbol s_0_75[1] = { 0xFEB8 };
181
+ static const symbol s_0_76[1] = { 0xFEB9 };
182
+ static const symbol s_0_77[1] = { 0xFEBA };
183
+ static const symbol s_0_78[1] = { 0xFEBB };
184
+ static const symbol s_0_79[1] = { 0xFEBC };
185
+ static const symbol s_0_80[1] = { 0xFEBD };
186
+ static const symbol s_0_81[1] = { 0xFEBE };
187
+ static const symbol s_0_82[1] = { 0xFEBF };
188
+ static const symbol s_0_83[1] = { 0xFEC0 };
189
+ static const symbol s_0_84[1] = { 0xFEC1 };
190
+ static const symbol s_0_85[1] = { 0xFEC2 };
191
+ static const symbol s_0_86[1] = { 0xFEC3 };
192
+ static const symbol s_0_87[1] = { 0xFEC4 };
193
+ static const symbol s_0_88[1] = { 0xFEC5 };
194
+ static const symbol s_0_89[1] = { 0xFEC6 };
195
+ static const symbol s_0_90[1] = { 0xFEC7 };
196
+ static const symbol s_0_91[1] = { 0xFEC8 };
197
+ static const symbol s_0_92[1] = { 0xFEC9 };
198
+ static const symbol s_0_93[1] = { 0xFECA };
199
+ static const symbol s_0_94[1] = { 0xFECB };
200
+ static const symbol s_0_95[1] = { 0xFECC };
201
+ static const symbol s_0_96[1] = { 0xFECD };
202
+ static const symbol s_0_97[1] = { 0xFECE };
203
+ static const symbol s_0_98[1] = { 0xFECF };
204
+ static const symbol s_0_99[1] = { 0xFED0 };
205
+ static const symbol s_0_100[1] = { 0xFED1 };
206
+ static const symbol s_0_101[1] = { 0xFED2 };
207
+ static const symbol s_0_102[1] = { 0xFED3 };
208
+ static const symbol s_0_103[1] = { 0xFED4 };
209
+ static const symbol s_0_104[1] = { 0xFED5 };
210
+ static const symbol s_0_105[1] = { 0xFED6 };
211
+ static const symbol s_0_106[1] = { 0xFED7 };
212
+ static const symbol s_0_107[1] = { 0xFED8 };
213
+ static const symbol s_0_108[1] = { 0xFED9 };
214
+ static const symbol s_0_109[1] = { 0xFEDA };
215
+ static const symbol s_0_110[1] = { 0xFEDB };
216
+ static const symbol s_0_111[1] = { 0xFEDC };
217
+ static const symbol s_0_112[1] = { 0xFEDD };
218
+ static const symbol s_0_113[1] = { 0xFEDE };
219
+ static const symbol s_0_114[1] = { 0xFEDF };
220
+ static const symbol s_0_115[1] = { 0xFEE0 };
221
+ static const symbol s_0_116[1] = { 0xFEE1 };
222
+ static const symbol s_0_117[1] = { 0xFEE2 };
223
+ static const symbol s_0_118[1] = { 0xFEE3 };
224
+ static const symbol s_0_119[1] = { 0xFEE4 };
225
+ static const symbol s_0_120[1] = { 0xFEE5 };
226
+ static const symbol s_0_121[1] = { 0xFEE6 };
227
+ static const symbol s_0_122[1] = { 0xFEE7 };
228
+ static const symbol s_0_123[1] = { 0xFEE8 };
229
+ static const symbol s_0_124[1] = { 0xFEE9 };
230
+ static const symbol s_0_125[1] = { 0xFEEA };
231
+ static const symbol s_0_126[1] = { 0xFEEB };
232
+ static const symbol s_0_127[1] = { 0xFEEC };
233
+ static const symbol s_0_128[1] = { 0xFEED };
234
+ static const symbol s_0_129[1] = { 0xFEEE };
235
+ static const symbol s_0_130[1] = { 0xFEEF };
236
+ static const symbol s_0_131[1] = { 0xFEF0 };
237
+ static const symbol s_0_132[1] = { 0xFEF1 };
238
+ static const symbol s_0_133[1] = { 0xFEF2 };
239
+ static const symbol s_0_134[1] = { 0xFEF3 };
240
+ static const symbol s_0_135[1] = { 0xFEF4 };
241
+ static const symbol s_0_136[1] = { 0xFEF5 };
242
+ static const symbol s_0_137[1] = { 0xFEF6 };
243
+ static const symbol s_0_138[1] = { 0xFEF7 };
244
+ static const symbol s_0_139[1] = { 0xFEF8 };
245
+ static const symbol s_0_140[1] = { 0xFEF9 };
246
+ static const symbol s_0_141[1] = { 0xFEFA };
247
+ static const symbol s_0_142[1] = { 0xFEFB };
248
+ static const symbol s_0_143[1] = { 0xFEFC };
249
+ static const struct among a_0[144] = {
250
+ { 1, s_0_0, 0, 1, 0},
251
+ { 1, s_0_1, 0, 1, 0},
252
+ { 1, s_0_2, 0, 1, 0},
253
+ { 1, s_0_3, 0, 1, 0},
254
+ { 1, s_0_4, 0, 1, 0},
255
+ { 1, s_0_5, 0, 1, 0},
256
+ { 1, s_0_6, 0, 1, 0},
257
+ { 1, s_0_7, 0, 1, 0},
258
+ { 1, s_0_8, 0, 1, 0},
259
+ { 1, s_0_9, 0, 2, 0},
260
+ { 1, s_0_10, 0, 3, 0},
261
+ { 1, s_0_11, 0, 4, 0},
262
+ { 1, s_0_12, 0, 5, 0},
263
+ { 1, s_0_13, 0, 6, 0},
264
+ { 1, s_0_14, 0, 7, 0},
265
+ { 1, s_0_15, 0, 8, 0},
266
+ { 1, s_0_16, 0, 9, 0},
267
+ { 1, s_0_17, 0, 10, 0},
268
+ { 1, s_0_18, 0, 11, 0},
269
+ { 1, s_0_19, 0, 12, 0},
270
+ { 1, s_0_20, 0, 16, 0},
271
+ { 1, s_0_21, 0, 16, 0},
272
+ { 1, s_0_22, 0, 13, 0},
273
+ { 1, s_0_23, 0, 13, 0},
274
+ { 1, s_0_24, 0, 17, 0},
275
+ { 1, s_0_25, 0, 17, 0},
276
+ { 1, s_0_26, 0, 14, 0},
277
+ { 1, s_0_27, 0, 14, 0},
278
+ { 1, s_0_28, 0, 15, 0},
279
+ { 1, s_0_29, 0, 15, 0},
280
+ { 1, s_0_30, 0, 15, 0},
281
+ { 1, s_0_31, 0, 15, 0},
282
+ { 1, s_0_32, 0, 18, 0},
283
+ { 1, s_0_33, 0, 18, 0},
284
+ { 1, s_0_34, 0, 19, 0},
285
+ { 1, s_0_35, 0, 19, 0},
286
+ { 1, s_0_36, 0, 19, 0},
287
+ { 1, s_0_37, 0, 19, 0},
288
+ { 1, s_0_38, 0, 20, 0},
289
+ { 1, s_0_39, 0, 20, 0},
290
+ { 1, s_0_40, 0, 21, 0},
291
+ { 1, s_0_41, 0, 21, 0},
292
+ { 1, s_0_42, 0, 21, 0},
293
+ { 1, s_0_43, 0, 21, 0},
294
+ { 1, s_0_44, 0, 22, 0},
295
+ { 1, s_0_45, 0, 22, 0},
296
+ { 1, s_0_46, 0, 22, 0},
297
+ { 1, s_0_47, 0, 22, 0},
298
+ { 1, s_0_48, 0, 23, 0},
299
+ { 1, s_0_49, 0, 23, 0},
300
+ { 1, s_0_50, 0, 23, 0},
301
+ { 1, s_0_51, 0, 23, 0},
302
+ { 1, s_0_52, 0, 24, 0},
303
+ { 1, s_0_53, 0, 24, 0},
304
+ { 1, s_0_54, 0, 24, 0},
305
+ { 1, s_0_55, 0, 24, 0},
306
+ { 1, s_0_56, 0, 25, 0},
307
+ { 1, s_0_57, 0, 25, 0},
308
+ { 1, s_0_58, 0, 25, 0},
309
+ { 1, s_0_59, 0, 25, 0},
310
+ { 1, s_0_60, 0, 26, 0},
311
+ { 1, s_0_61, 0, 26, 0},
312
+ { 1, s_0_62, 0, 27, 0},
313
+ { 1, s_0_63, 0, 27, 0},
314
+ { 1, s_0_64, 0, 28, 0},
315
+ { 1, s_0_65, 0, 28, 0},
316
+ { 1, s_0_66, 0, 29, 0},
317
+ { 1, s_0_67, 0, 29, 0},
318
+ { 1, s_0_68, 0, 30, 0},
319
+ { 1, s_0_69, 0, 30, 0},
320
+ { 1, s_0_70, 0, 30, 0},
321
+ { 1, s_0_71, 0, 30, 0},
322
+ { 1, s_0_72, 0, 31, 0},
323
+ { 1, s_0_73, 0, 31, 0},
324
+ { 1, s_0_74, 0, 31, 0},
325
+ { 1, s_0_75, 0, 31, 0},
326
+ { 1, s_0_76, 0, 32, 0},
327
+ { 1, s_0_77, 0, 32, 0},
328
+ { 1, s_0_78, 0, 32, 0},
329
+ { 1, s_0_79, 0, 32, 0},
330
+ { 1, s_0_80, 0, 33, 0},
331
+ { 1, s_0_81, 0, 33, 0},
332
+ { 1, s_0_82, 0, 33, 0},
333
+ { 1, s_0_83, 0, 33, 0},
334
+ { 1, s_0_84, 0, 34, 0},
335
+ { 1, s_0_85, 0, 34, 0},
336
+ { 1, s_0_86, 0, 34, 0},
337
+ { 1, s_0_87, 0, 34, 0},
338
+ { 1, s_0_88, 0, 35, 0},
339
+ { 1, s_0_89, 0, 35, 0},
340
+ { 1, s_0_90, 0, 35, 0},
341
+ { 1, s_0_91, 0, 35, 0},
342
+ { 1, s_0_92, 0, 36, 0},
343
+ { 1, s_0_93, 0, 36, 0},
344
+ { 1, s_0_94, 0, 36, 0},
345
+ { 1, s_0_95, 0, 36, 0},
346
+ { 1, s_0_96, 0, 37, 0},
347
+ { 1, s_0_97, 0, 37, 0},
348
+ { 1, s_0_98, 0, 37, 0},
349
+ { 1, s_0_99, 0, 37, 0},
350
+ { 1, s_0_100, 0, 38, 0},
351
+ { 1, s_0_101, 0, 38, 0},
352
+ { 1, s_0_102, 0, 38, 0},
353
+ { 1, s_0_103, 0, 38, 0},
354
+ { 1, s_0_104, 0, 39, 0},
355
+ { 1, s_0_105, 0, 39, 0},
356
+ { 1, s_0_106, 0, 39, 0},
357
+ { 1, s_0_107, 0, 39, 0},
358
+ { 1, s_0_108, 0, 40, 0},
359
+ { 1, s_0_109, 0, 40, 0},
360
+ { 1, s_0_110, 0, 40, 0},
361
+ { 1, s_0_111, 0, 40, 0},
362
+ { 1, s_0_112, 0, 41, 0},
363
+ { 1, s_0_113, 0, 41, 0},
364
+ { 1, s_0_114, 0, 41, 0},
365
+ { 1, s_0_115, 0, 41, 0},
366
+ { 1, s_0_116, 0, 42, 0},
367
+ { 1, s_0_117, 0, 42, 0},
368
+ { 1, s_0_118, 0, 42, 0},
369
+ { 1, s_0_119, 0, 42, 0},
370
+ { 1, s_0_120, 0, 43, 0},
371
+ { 1, s_0_121, 0, 43, 0},
372
+ { 1, s_0_122, 0, 43, 0},
373
+ { 1, s_0_123, 0, 43, 0},
374
+ { 1, s_0_124, 0, 44, 0},
375
+ { 1, s_0_125, 0, 44, 0},
376
+ { 1, s_0_126, 0, 44, 0},
377
+ { 1, s_0_127, 0, 44, 0},
378
+ { 1, s_0_128, 0, 45, 0},
379
+ { 1, s_0_129, 0, 45, 0},
380
+ { 1, s_0_130, 0, 46, 0},
381
+ { 1, s_0_131, 0, 46, 0},
382
+ { 1, s_0_132, 0, 47, 0},
383
+ { 1, s_0_133, 0, 47, 0},
384
+ { 1, s_0_134, 0, 47, 0},
385
+ { 1, s_0_135, 0, 47, 0},
386
+ { 1, s_0_136, 0, 51, 0},
387
+ { 1, s_0_137, 0, 51, 0},
388
+ { 1, s_0_138, 0, 49, 0},
389
+ { 1, s_0_139, 0, 49, 0},
390
+ { 1, s_0_140, 0, 50, 0},
391
+ { 1, s_0_141, 0, 50, 0},
392
+ { 1, s_0_142, 0, 48, 0},
393
+ { 1, s_0_143, 0, 48, 0}
394
+ };
395
+
396
+ static const symbol s_2_0[1] = { 0x622 };
397
+ static const symbol s_2_1[1] = { 0x623 };
398
+ static const symbol s_2_2[1] = { 0x624 };
399
+ static const symbol s_2_3[1] = { 0x625 };
400
+ static const symbol s_2_4[1] = { 0x626 };
401
+ static const struct among a_2[5] = {
402
+ { 1, s_2_0, 0, 1, 0},
403
+ { 1, s_2_1, 0, 1, 0},
404
+ { 1, s_2_2, 0, 2, 0},
405
+ { 1, s_2_3, 0, 1, 0},
406
+ { 1, s_2_4, 0, 3, 0}
407
+ };
408
+
409
+ static const symbol s_3_0[2] = { 0x627, 0x644 };
410
+ static const symbol s_3_1[3] = { 0x628, 0x627, 0x644 };
411
+ static const symbol s_3_2[3] = { 0x643, 0x627, 0x644 };
412
+ static const symbol s_3_3[2] = { 0x644, 0x644 };
413
+ static const struct among a_3[4] = {
414
+ { 2, s_3_0, 0, 2, 0},
415
+ { 3, s_3_1, 0, 1, 0},
416
+ { 3, s_3_2, 0, 1, 0},
417
+ { 2, s_3_3, 0, 2, 0}
418
+ };
419
+
420
+ static const symbol s_4_0[2] = { 0x623, 0x622 };
421
+ static const symbol s_4_1[2] = { 0x623, 0x623 };
422
+ static const symbol s_4_2[2] = { 0x623, 0x624 };
423
+ static const symbol s_4_3[2] = { 0x623, 0x625 };
424
+ static const symbol s_4_4[2] = { 0x623, 0x627 };
425
+ static const struct among a_4[5] = {
426
+ { 2, s_4_0, 0, 2, 0},
427
+ { 2, s_4_1, 0, 1, 0},
428
+ { 2, s_4_2, 0, 1, 0},
429
+ { 2, s_4_3, 0, 4, 0},
430
+ { 2, s_4_4, 0, 3, 0}
431
+ };
432
+
433
+ static const symbol s_6_0[2] = { 0x627, 0x644 };
434
+ static const symbol s_6_1[3] = { 0x628, 0x627, 0x644 };
435
+ static const symbol s_6_2[3] = { 0x643, 0x627, 0x644 };
436
+ static const symbol s_6_3[2] = { 0x644, 0x644 };
437
+ static const struct among a_6[4] = {
438
+ { 2, s_6_0, 0, 2, 0},
439
+ { 3, s_6_1, 0, 1, 0},
440
+ { 3, s_6_2, 0, 1, 0},
441
+ { 2, s_6_3, 0, 2, 0}
442
+ };
443
+
444
+ static const symbol s_7_0[1] = { 0x628 };
445
+ static const symbol s_7_1[2] = { 0x628, 0x627 };
446
+ static const symbol s_7_2[2] = { 0x628, 0x628 };
447
+ static const symbol s_7_3[2] = { 0x643, 0x643 };
448
+ static const struct among a_7[4] = {
449
+ { 1, s_7_0, 0, 1, 0},
450
+ { 2, s_7_1, -1, -1, 0},
451
+ { 2, s_7_2, -2, 2, 0},
452
+ { 2, s_7_3, 0, 3, 0}
453
+ };
454
+
455
+ static const symbol s_8_0[2] = { 0x633, 0x623 };
456
+ static const symbol s_8_1[2] = { 0x633, 0x62A };
457
+ static const symbol s_8_2[2] = { 0x633, 0x646 };
458
+ static const symbol s_8_3[2] = { 0x633, 0x64A };
459
+ static const struct among a_8[4] = {
460
+ { 2, s_8_0, 0, 4, 0},
461
+ { 2, s_8_1, 0, 2, 0},
462
+ { 2, s_8_2, 0, 3, 0},
463
+ { 2, s_8_3, 0, 1, 0}
464
+ };
465
+
466
+ static const symbol s_9_0[3] = { 0x62A, 0x633, 0x62A };
467
+ static const symbol s_9_1[3] = { 0x646, 0x633, 0x62A };
468
+ static const symbol s_9_2[3] = { 0x64A, 0x633, 0x62A };
469
+ static const struct among a_9[3] = {
470
+ { 3, s_9_0, 0, 1, 0},
471
+ { 3, s_9_1, 0, 1, 0},
472
+ { 3, s_9_2, 0, 1, 0}
473
+ };
474
+
475
+ static const symbol s_10_0[3] = { 0x643, 0x645, 0x627 };
476
+ static const symbol s_10_1[3] = { 0x647, 0x645, 0x627 };
477
+ static const symbol s_10_2[2] = { 0x646, 0x627 };
478
+ static const symbol s_10_3[2] = { 0x647, 0x627 };
479
+ static const symbol s_10_4[1] = { 0x643 };
480
+ static const symbol s_10_5[2] = { 0x643, 0x645 };
481
+ static const symbol s_10_6[2] = { 0x647, 0x645 };
482
+ static const symbol s_10_7[2] = { 0x647, 0x646 };
483
+ static const symbol s_10_8[1] = { 0x647 };
484
+ static const symbol s_10_9[1] = { 0x64A };
485
+ static const struct among a_10[10] = {
486
+ { 3, s_10_0, 0, 3, 0},
487
+ { 3, s_10_1, 0, 3, 0},
488
+ { 2, s_10_2, 0, 2, 0},
489
+ { 2, s_10_3, 0, 2, 0},
490
+ { 1, s_10_4, 0, 1, 0},
491
+ { 2, s_10_5, 0, 2, 0},
492
+ { 2, s_10_6, 0, 2, 0},
493
+ { 2, s_10_7, 0, 2, 0},
494
+ { 1, s_10_8, 0, 1, 0},
495
+ { 1, s_10_9, 0, 1, 0}
496
+ };
497
+
498
+ static const symbol s_11_0[1] = { 0x627 };
499
+ static const symbol s_11_1[1] = { 0x648 };
500
+ static const symbol s_11_2[1] = { 0x64A };
501
+ static const struct among a_11[3] = {
502
+ { 1, s_11_0, 0, 1, 0},
503
+ { 1, s_11_1, 0, 1, 0},
504
+ { 1, s_11_2, 0, 1, 0}
505
+ };
506
+
507
+ static const symbol s_12_0[3] = { 0x643, 0x645, 0x627 };
508
+ static const symbol s_12_1[3] = { 0x647, 0x645, 0x627 };
509
+ static const symbol s_12_2[2] = { 0x646, 0x627 };
510
+ static const symbol s_12_3[2] = { 0x647, 0x627 };
511
+ static const symbol s_12_4[1] = { 0x643 };
512
+ static const symbol s_12_5[2] = { 0x643, 0x645 };
513
+ static const symbol s_12_6[2] = { 0x647, 0x645 };
514
+ static const symbol s_12_7[2] = { 0x643, 0x646 };
515
+ static const symbol s_12_8[2] = { 0x647, 0x646 };
516
+ static const symbol s_12_9[1] = { 0x647 };
517
+ static const symbol s_12_10[3] = { 0x643, 0x645, 0x648 };
518
+ static const symbol s_12_11[2] = { 0x646, 0x64A };
519
+ static const struct among a_12[12] = {
520
+ { 3, s_12_0, 0, 3, 0},
521
+ { 3, s_12_1, 0, 3, 0},
522
+ { 2, s_12_2, 0, 2, 0},
523
+ { 2, s_12_3, 0, 2, 0},
524
+ { 1, s_12_4, 0, 1, 0},
525
+ { 2, s_12_5, 0, 2, 0},
526
+ { 2, s_12_6, 0, 2, 0},
527
+ { 2, s_12_7, 0, 2, 0},
528
+ { 2, s_12_8, 0, 2, 0},
529
+ { 1, s_12_9, 0, 1, 0},
530
+ { 3, s_12_10, 0, 3, 0},
531
+ { 2, s_12_11, 0, 2, 0}
532
+ };
533
+
534
+ static const symbol s_13_0[1] = { 0x627 };
535
+ static const symbol s_13_1[2] = { 0x62A, 0x627 };
536
+ static const symbol s_13_2[3] = { 0x62A, 0x645, 0x627 };
537
+ static const symbol s_13_3[2] = { 0x646, 0x627 };
538
+ static const symbol s_13_4[1] = { 0x62A };
539
+ static const symbol s_13_5[1] = { 0x646 };
540
+ static const symbol s_13_6[2] = { 0x627, 0x646 };
541
+ static const symbol s_13_7[2] = { 0x62A, 0x646 };
542
+ static const symbol s_13_8[2] = { 0x648, 0x646 };
543
+ static const symbol s_13_9[2] = { 0x64A, 0x646 };
544
+ static const symbol s_13_10[1] = { 0x64A };
545
+ static const struct among a_13[11] = {
546
+ { 1, s_13_0, 0, 1, 0},
547
+ { 2, s_13_1, -1, 2, 0},
548
+ { 3, s_13_2, -2, 3, 0},
549
+ { 2, s_13_3, -3, 2, 0},
550
+ { 1, s_13_4, 0, 1, 0},
551
+ { 1, s_13_5, 0, 1, 0},
552
+ { 2, s_13_6, -1, 3, 0},
553
+ { 2, s_13_7, -2, 2, 0},
554
+ { 2, s_13_8, -3, 3, 0},
555
+ { 2, s_13_9, -4, 3, 0},
556
+ { 1, s_13_10, 0, 1, 0}
557
+ };
558
+
559
+ static const symbol s_14_0[2] = { 0x648, 0x627 };
560
+ static const symbol s_14_1[2] = { 0x62A, 0x645 };
561
+ static const struct among a_14[2] = {
562
+ { 2, s_14_0, 0, 1, 0},
563
+ { 2, s_14_1, 0, 1, 0}
564
+ };
565
+
566
+ static const symbol s_15_0[1] = { 0x648 };
567
+ static const symbol s_15_1[3] = { 0x62A, 0x645, 0x648 };
568
+ static const struct among a_15[2] = {
569
+ { 1, s_15_0, 0, 1, 0},
570
+ { 3, s_15_1, -1, 2, 0}
571
+ };
572
+
573
+ static int r_Suffix_Noun_Step2a(struct SN_env * z) {
574
+ z->ket = z->c;
575
+ if (!find_among_b(z, a_11, 3, 0)) return 0;
576
+ z->bra = z->c;
577
+ if (SIZE(z->p) < 5) return 0;
578
+ {
579
+ int ret = slice_del(z);
580
+ if (ret < 0) return ret;
581
+ }
582
+ return 1;
583
+ }
584
+
585
+ static int r_Suffix_Noun_Step2b(struct SN_env * z) {
586
+ z->ket = z->c;
587
+ if (!(eq_s_b(z, 2, s_0))) return 0;
588
+ z->bra = z->c;
589
+ if (SIZE(z->p) < 5) return 0;
590
+ {
591
+ int ret = slice_del(z);
592
+ if (ret < 0) return ret;
593
+ }
594
+ return 1;
595
+ }
596
+
597
+ static int r_Suffix_Noun_Step2c1(struct SN_env * z) {
598
+ z->ket = z->c;
599
+ if (z->c <= z->lb || z->p[z->c - 1] != 0x62A) return 0;
600
+ z->c--;
601
+ z->bra = z->c;
602
+ if (SIZE(z->p) < 4) return 0;
603
+ {
604
+ int ret = slice_del(z);
605
+ if (ret < 0) return ret;
606
+ }
607
+ return 1;
608
+ }
609
+
610
+ static int r_Suffix_Verb_Step2a(struct SN_env * z) {
611
+ int among_var;
612
+ z->ket = z->c;
613
+ among_var = find_among_b(z, a_13, 11, 0);
614
+ if (!among_var) return 0;
615
+ z->bra = z->c;
616
+ switch (among_var) {
617
+ case 1:
618
+ if (SIZE(z->p) < 4) return 0;
619
+ {
620
+ int ret = slice_del(z);
621
+ if (ret < 0) return ret;
622
+ }
623
+ break;
624
+ case 2:
625
+ if (SIZE(z->p) < 5) return 0;
626
+ {
627
+ int ret = slice_del(z);
628
+ if (ret < 0) return ret;
629
+ }
630
+ break;
631
+ case 3:
632
+ if (SIZE(z->p) < 6) return 0;
633
+ {
634
+ int ret = slice_del(z);
635
+ if (ret < 0) return ret;
636
+ }
637
+ break;
638
+ }
639
+ return 1;
640
+ }
641
+
642
+ extern int arabic_stem(struct SN_env * z) {
643
+ int among_var;
644
+ int b_is_defined;
645
+ int b_is_verb;
646
+ int b_is_noun;
647
+ b_is_noun = 1;
648
+ b_is_verb = 1;
649
+ b_is_defined = 0;
650
+ {
651
+ int v_1 = z->c;
652
+ z->bra = z->c;
653
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 1604 && z->p[z->c + 1] != 1575)) goto lab0;
654
+ among_var = find_among(z, a_3, 4, 0);
655
+ if (!among_var) goto lab0;
656
+ z->ket = z->c;
657
+ switch (among_var) {
658
+ case 1:
659
+ if (SIZE(z->p) < 5) goto lab0;
660
+ b_is_noun = 1;
661
+ b_is_verb = 0;
662
+ b_is_defined = 1;
663
+ break;
664
+ case 2:
665
+ if (SIZE(z->p) < 4) goto lab0;
666
+ b_is_noun = 1;
667
+ b_is_verb = 0;
668
+ b_is_defined = 1;
669
+ break;
670
+ }
671
+ lab0:
672
+ z->c = v_1;
673
+ }
674
+ {
675
+ int v_2 = z->c;
676
+ while (1) {
677
+ int v_3 = z->c;
678
+ do {
679
+ int v_4 = z->c;
680
+ z->bra = z->c;
681
+ among_var = find_among(z, a_0, 144, 0);
682
+ if (!among_var) goto lab4;
683
+ z->ket = z->c;
684
+ switch (among_var) {
685
+ case 1:
686
+ {
687
+ int ret = slice_del(z);
688
+ if (ret < 0) return ret;
689
+ }
690
+ break;
691
+ case 2:
692
+ {
693
+ int ret = slice_from_s(z, 1, s_1);
694
+ if (ret < 0) return ret;
695
+ }
696
+ break;
697
+ case 3:
698
+ {
699
+ int ret = slice_from_s(z, 1, s_2);
700
+ if (ret < 0) return ret;
701
+ }
702
+ break;
703
+ case 4:
704
+ {
705
+ int ret = slice_from_s(z, 1, s_3);
706
+ if (ret < 0) return ret;
707
+ }
708
+ break;
709
+ case 5:
710
+ {
711
+ int ret = slice_from_s(z, 1, s_4);
712
+ if (ret < 0) return ret;
713
+ }
714
+ break;
715
+ case 6:
716
+ {
717
+ int ret = slice_from_s(z, 1, s_5);
718
+ if (ret < 0) return ret;
719
+ }
720
+ break;
721
+ case 7:
722
+ {
723
+ int ret = slice_from_s(z, 1, s_6);
724
+ if (ret < 0) return ret;
725
+ }
726
+ break;
727
+ case 8:
728
+ {
729
+ int ret = slice_from_s(z, 1, s_7);
730
+ if (ret < 0) return ret;
731
+ }
732
+ break;
733
+ case 9:
734
+ {
735
+ int ret = slice_from_s(z, 1, s_8);
736
+ if (ret < 0) return ret;
737
+ }
738
+ break;
739
+ case 10:
740
+ {
741
+ int ret = slice_from_s(z, 1, s_9);
742
+ if (ret < 0) return ret;
743
+ }
744
+ break;
745
+ case 11:
746
+ {
747
+ int ret = slice_from_s(z, 1, s_10);
748
+ if (ret < 0) return ret;
749
+ }
750
+ break;
751
+ case 12:
752
+ {
753
+ int ret = slice_from_s(z, 1, s_11);
754
+ if (ret < 0) return ret;
755
+ }
756
+ break;
757
+ case 13:
758
+ {
759
+ int ret = slice_from_s(z, 1, s_12);
760
+ if (ret < 0) return ret;
761
+ }
762
+ break;
763
+ case 14:
764
+ {
765
+ int ret = slice_from_s(z, 1, s_13);
766
+ if (ret < 0) return ret;
767
+ }
768
+ break;
769
+ case 15:
770
+ {
771
+ int ret = slice_from_s(z, 1, s_14);
772
+ if (ret < 0) return ret;
773
+ }
774
+ break;
775
+ case 16:
776
+ {
777
+ int ret = slice_from_s(z, 1, s_15);
778
+ if (ret < 0) return ret;
779
+ }
780
+ break;
781
+ case 17:
782
+ {
783
+ int ret = slice_from_s(z, 1, s_16);
784
+ if (ret < 0) return ret;
785
+ }
786
+ break;
787
+ case 18:
788
+ {
789
+ int ret = slice_from_s(z, 1, s_17);
790
+ if (ret < 0) return ret;
791
+ }
792
+ break;
793
+ case 19:
794
+ {
795
+ int ret = slice_from_s(z, 1, s_18);
796
+ if (ret < 0) return ret;
797
+ }
798
+ break;
799
+ case 20:
800
+ {
801
+ int ret = slice_from_s(z, 1, s_19);
802
+ if (ret < 0) return ret;
803
+ }
804
+ break;
805
+ case 21:
806
+ {
807
+ int ret = slice_from_s(z, 1, s_20);
808
+ if (ret < 0) return ret;
809
+ }
810
+ break;
811
+ case 22:
812
+ {
813
+ int ret = slice_from_s(z, 1, s_21);
814
+ if (ret < 0) return ret;
815
+ }
816
+ break;
817
+ case 23:
818
+ {
819
+ int ret = slice_from_s(z, 1, s_22);
820
+ if (ret < 0) return ret;
821
+ }
822
+ break;
823
+ case 24:
824
+ {
825
+ int ret = slice_from_s(z, 1, s_23);
826
+ if (ret < 0) return ret;
827
+ }
828
+ break;
829
+ case 25:
830
+ {
831
+ int ret = slice_from_s(z, 1, s_24);
832
+ if (ret < 0) return ret;
833
+ }
834
+ break;
835
+ case 26:
836
+ {
837
+ int ret = slice_from_s(z, 1, s_25);
838
+ if (ret < 0) return ret;
839
+ }
840
+ break;
841
+ case 27:
842
+ {
843
+ int ret = slice_from_s(z, 1, s_26);
844
+ if (ret < 0) return ret;
845
+ }
846
+ break;
847
+ case 28:
848
+ {
849
+ int ret = slice_from_s(z, 1, s_27);
850
+ if (ret < 0) return ret;
851
+ }
852
+ break;
853
+ case 29:
854
+ {
855
+ int ret = slice_from_s(z, 1, s_28);
856
+ if (ret < 0) return ret;
857
+ }
858
+ break;
859
+ case 30:
860
+ {
861
+ int ret = slice_from_s(z, 1, s_29);
862
+ if (ret < 0) return ret;
863
+ }
864
+ break;
865
+ case 31:
866
+ {
867
+ int ret = slice_from_s(z, 1, s_30);
868
+ if (ret < 0) return ret;
869
+ }
870
+ break;
871
+ case 32:
872
+ {
873
+ int ret = slice_from_s(z, 1, s_31);
874
+ if (ret < 0) return ret;
875
+ }
876
+ break;
877
+ case 33:
878
+ {
879
+ int ret = slice_from_s(z, 1, s_32);
880
+ if (ret < 0) return ret;
881
+ }
882
+ break;
883
+ case 34:
884
+ {
885
+ int ret = slice_from_s(z, 1, s_33);
886
+ if (ret < 0) return ret;
887
+ }
888
+ break;
889
+ case 35:
890
+ {
891
+ int ret = slice_from_s(z, 1, s_34);
892
+ if (ret < 0) return ret;
893
+ }
894
+ break;
895
+ case 36:
896
+ {
897
+ int ret = slice_from_s(z, 1, s_35);
898
+ if (ret < 0) return ret;
899
+ }
900
+ break;
901
+ case 37:
902
+ {
903
+ int ret = slice_from_s(z, 1, s_36);
904
+ if (ret < 0) return ret;
905
+ }
906
+ break;
907
+ case 38:
908
+ {
909
+ int ret = slice_from_s(z, 1, s_37);
910
+ if (ret < 0) return ret;
911
+ }
912
+ break;
913
+ case 39:
914
+ {
915
+ int ret = slice_from_s(z, 1, s_38);
916
+ if (ret < 0) return ret;
917
+ }
918
+ break;
919
+ case 40:
920
+ {
921
+ int ret = slice_from_s(z, 1, s_39);
922
+ if (ret < 0) return ret;
923
+ }
924
+ break;
925
+ case 41:
926
+ {
927
+ int ret = slice_from_s(z, 1, s_40);
928
+ if (ret < 0) return ret;
929
+ }
930
+ break;
931
+ case 42:
932
+ {
933
+ int ret = slice_from_s(z, 1, s_41);
934
+ if (ret < 0) return ret;
935
+ }
936
+ break;
937
+ case 43:
938
+ {
939
+ int ret = slice_from_s(z, 1, s_42);
940
+ if (ret < 0) return ret;
941
+ }
942
+ break;
943
+ case 44:
944
+ {
945
+ int ret = slice_from_s(z, 1, s_43);
946
+ if (ret < 0) return ret;
947
+ }
948
+ break;
949
+ case 45:
950
+ {
951
+ int ret = slice_from_s(z, 1, s_44);
952
+ if (ret < 0) return ret;
953
+ }
954
+ break;
955
+ case 46:
956
+ {
957
+ int ret = slice_from_s(z, 1, s_45);
958
+ if (ret < 0) return ret;
959
+ }
960
+ break;
961
+ case 47:
962
+ {
963
+ int ret = slice_from_s(z, 1, s_46);
964
+ if (ret < 0) return ret;
965
+ }
966
+ break;
967
+ case 48:
968
+ {
969
+ int ret = slice_from_s(z, 2, s_47);
970
+ if (ret < 0) return ret;
971
+ }
972
+ break;
973
+ case 49:
974
+ {
975
+ int ret = slice_from_s(z, 2, s_48);
976
+ if (ret < 0) return ret;
977
+ }
978
+ break;
979
+ case 50:
980
+ {
981
+ int ret = slice_from_s(z, 2, s_49);
982
+ if (ret < 0) return ret;
983
+ }
984
+ break;
985
+ case 51:
986
+ {
987
+ int ret = slice_from_s(z, 2, s_50);
988
+ if (ret < 0) return ret;
989
+ }
990
+ break;
991
+ }
992
+ break;
993
+ lab4:
994
+ z->c = v_4;
995
+ if (z->c >= z->l) goto lab3;
996
+ z->c++;
997
+ } while (0);
998
+ continue;
999
+ lab3:
1000
+ z->c = v_3;
1001
+ break;
1002
+ }
1003
+ z->c = v_2;
1004
+ }
1005
+ z->lb = z->c; z->c = z->l;
1006
+ {
1007
+ int v_5 = z->l - z->c;
1008
+ do {
1009
+ int v_6 = z->l - z->c;
1010
+ if (!b_is_verb) goto lab6;
1011
+ do {
1012
+ int v_7 = z->l - z->c;
1013
+ {
1014
+ int v_8 = 1;
1015
+ while (1) {
1016
+ int v_9 = z->l - z->c;
1017
+ z->ket = z->c;
1018
+ among_var = find_among_b(z, a_12, 12, 0);
1019
+ if (!among_var) goto lab8;
1020
+ z->bra = z->c;
1021
+ switch (among_var) {
1022
+ case 1:
1023
+ if (SIZE(z->p) < 4) goto lab8;
1024
+ {
1025
+ int ret = slice_del(z);
1026
+ if (ret < 0) return ret;
1027
+ }
1028
+ break;
1029
+ case 2:
1030
+ if (SIZE(z->p) < 5) goto lab8;
1031
+ {
1032
+ int ret = slice_del(z);
1033
+ if (ret < 0) return ret;
1034
+ }
1035
+ break;
1036
+ case 3:
1037
+ if (SIZE(z->p) < 6) goto lab8;
1038
+ {
1039
+ int ret = slice_del(z);
1040
+ if (ret < 0) return ret;
1041
+ }
1042
+ break;
1043
+ }
1044
+ v_8--;
1045
+ continue;
1046
+ lab8:
1047
+ z->c = z->l - v_9;
1048
+ break;
1049
+ }
1050
+ if (v_8 > 0) goto lab7;
1051
+ }
1052
+ do {
1053
+ int v_10 = z->l - z->c;
1054
+ {
1055
+ int ret = r_Suffix_Verb_Step2a(z);
1056
+ if (ret == 0) goto lab9;
1057
+ if (ret < 0) return ret;
1058
+ }
1059
+ break;
1060
+ lab9:
1061
+ z->c = z->l - v_10;
1062
+ z->ket = z->c;
1063
+ if (z->c <= z->lb || z->p[z->c - 1] != 1608) goto lab10;
1064
+ among_var = find_among_b(z, a_15, 2, 0);
1065
+ if (!among_var) goto lab10;
1066
+ z->bra = z->c;
1067
+ switch (among_var) {
1068
+ case 1:
1069
+ if (SIZE(z->p) < 4) goto lab10;
1070
+ {
1071
+ int ret = slice_del(z);
1072
+ if (ret < 0) return ret;
1073
+ }
1074
+ break;
1075
+ case 2:
1076
+ if (SIZE(z->p) < 6) goto lab10;
1077
+ {
1078
+ int ret = slice_del(z);
1079
+ if (ret < 0) return ret;
1080
+ }
1081
+ break;
1082
+ }
1083
+ break;
1084
+ lab10:
1085
+ z->c = z->l - v_10;
1086
+ if (z->c <= z->lb) goto lab7;
1087
+ z->c--;
1088
+ } while (0);
1089
+ break;
1090
+ lab7:
1091
+ z->c = z->l - v_7;
1092
+ z->ket = z->c;
1093
+ if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 1575 && z->p[z->c - 1] != 1605)) goto lab11;
1094
+ if (!find_among_b(z, a_14, 2, 0)) goto lab11;
1095
+ z->bra = z->c;
1096
+ if (SIZE(z->p) < 5) goto lab11;
1097
+ {
1098
+ int ret = slice_del(z);
1099
+ if (ret < 0) return ret;
1100
+ }
1101
+ break;
1102
+ lab11:
1103
+ z->c = z->l - v_7;
1104
+ {
1105
+ int ret = r_Suffix_Verb_Step2a(z);
1106
+ if (ret == 0) goto lab6;
1107
+ if (ret < 0) return ret;
1108
+ }
1109
+ } while (0);
1110
+ break;
1111
+ lab6:
1112
+ z->c = z->l - v_6;
1113
+ if (!b_is_noun) goto lab12;
1114
+ {
1115
+ int v_11 = z->l - z->c;
1116
+ do {
1117
+ int v_12 = z->l - z->c;
1118
+ z->ket = z->c;
1119
+ if (z->c <= z->lb || z->p[z->c - 1] != 0x629) goto lab14;
1120
+ z->c--;
1121
+ z->bra = z->c;
1122
+ if (SIZE(z->p) < 4) goto lab14;
1123
+ {
1124
+ int ret = slice_del(z);
1125
+ if (ret < 0) return ret;
1126
+ }
1127
+ break;
1128
+ lab14:
1129
+ z->c = z->l - v_12;
1130
+ if (b_is_defined) goto lab15;
1131
+ z->ket = z->c;
1132
+ among_var = find_among_b(z, a_10, 10, 0);
1133
+ if (!among_var) goto lab15;
1134
+ z->bra = z->c;
1135
+ switch (among_var) {
1136
+ case 1:
1137
+ if (SIZE(z->p) < 4) goto lab15;
1138
+ {
1139
+ int ret = slice_del(z);
1140
+ if (ret < 0) return ret;
1141
+ }
1142
+ break;
1143
+ case 2:
1144
+ if (SIZE(z->p) < 5) goto lab15;
1145
+ {
1146
+ int ret = slice_del(z);
1147
+ if (ret < 0) return ret;
1148
+ }
1149
+ break;
1150
+ case 3:
1151
+ if (SIZE(z->p) < 6) goto lab15;
1152
+ {
1153
+ int ret = slice_del(z);
1154
+ if (ret < 0) return ret;
1155
+ }
1156
+ break;
1157
+ }
1158
+ do {
1159
+ int v_13 = z->l - z->c;
1160
+ {
1161
+ int ret = r_Suffix_Noun_Step2a(z);
1162
+ if (ret == 0) goto lab16;
1163
+ if (ret < 0) return ret;
1164
+ }
1165
+ break;
1166
+ lab16:
1167
+ z->c = z->l - v_13;
1168
+ {
1169
+ int ret = r_Suffix_Noun_Step2b(z);
1170
+ if (ret == 0) goto lab17;
1171
+ if (ret < 0) return ret;
1172
+ }
1173
+ break;
1174
+ lab17:
1175
+ z->c = z->l - v_13;
1176
+ {
1177
+ int ret = r_Suffix_Noun_Step2c1(z);
1178
+ if (ret == 0) goto lab18;
1179
+ if (ret < 0) return ret;
1180
+ }
1181
+ break;
1182
+ lab18:
1183
+ z->c = z->l - v_13;
1184
+ if (z->c <= z->lb) goto lab15;
1185
+ z->c--;
1186
+ } while (0);
1187
+ break;
1188
+ lab15:
1189
+ z->c = z->l - v_12;
1190
+ z->ket = z->c;
1191
+ if (z->c <= z->lb || z->p[z->c - 1] != 0x646) goto lab19;
1192
+ z->c--;
1193
+ z->bra = z->c;
1194
+ if (SIZE(z->p) < 6) goto lab19;
1195
+ {
1196
+ int ret = slice_del(z);
1197
+ if (ret < 0) return ret;
1198
+ }
1199
+ do {
1200
+ int v_14 = z->l - z->c;
1201
+ {
1202
+ int ret = r_Suffix_Noun_Step2a(z);
1203
+ if (ret == 0) goto lab20;
1204
+ if (ret < 0) return ret;
1205
+ }
1206
+ break;
1207
+ lab20:
1208
+ z->c = z->l - v_14;
1209
+ {
1210
+ int ret = r_Suffix_Noun_Step2b(z);
1211
+ if (ret == 0) goto lab21;
1212
+ if (ret < 0) return ret;
1213
+ }
1214
+ break;
1215
+ lab21:
1216
+ z->c = z->l - v_14;
1217
+ {
1218
+ int ret = r_Suffix_Noun_Step2c1(z);
1219
+ if (ret == 0) goto lab19;
1220
+ if (ret < 0) return ret;
1221
+ }
1222
+ } while (0);
1223
+ break;
1224
+ lab19:
1225
+ z->c = z->l - v_12;
1226
+ if (b_is_defined) goto lab22;
1227
+ {
1228
+ int ret = r_Suffix_Noun_Step2a(z);
1229
+ if (ret == 0) goto lab22;
1230
+ if (ret < 0) return ret;
1231
+ }
1232
+ break;
1233
+ lab22:
1234
+ z->c = z->l - v_12;
1235
+ {
1236
+ int ret = r_Suffix_Noun_Step2b(z);
1237
+ if (ret == 0) { z->c = z->l - v_11; goto lab13; }
1238
+ if (ret < 0) return ret;
1239
+ }
1240
+ } while (0);
1241
+ lab13:
1242
+ ;
1243
+ }
1244
+ z->ket = z->c;
1245
+ if (z->c <= z->lb || z->p[z->c - 1] != 0x64A) goto lab12;
1246
+ z->c--;
1247
+ z->bra = z->c;
1248
+ if (SIZE(z->p) < 3) goto lab12;
1249
+ {
1250
+ int ret = slice_del(z);
1251
+ if (ret < 0) return ret;
1252
+ }
1253
+ break;
1254
+ lab12:
1255
+ z->c = z->l - v_6;
1256
+ z->ket = z->c;
1257
+ if (z->c <= z->lb || z->p[z->c - 1] != 0x649) goto lab5;
1258
+ z->c--;
1259
+ z->bra = z->c;
1260
+ {
1261
+ int ret = slice_from_s(z, 1, s_51);
1262
+ if (ret < 0) return ret;
1263
+ }
1264
+ } while (0);
1265
+ lab5:
1266
+ z->c = z->l - v_5;
1267
+ }
1268
+ z->c = z->lb;
1269
+ {
1270
+ int v_15 = z->c;
1271
+ {
1272
+ int v_16 = z->c;
1273
+ z->bra = z->c;
1274
+ if (z->c + 1 >= z->l || z->p[z->c + 1] >> 5 != 49 || !((188 >> (z->p[z->c + 1] & 0x1f)) & 1)) { z->c = v_16; goto lab24; }
1275
+ among_var = find_among(z, a_4, 5, 0);
1276
+ if (!among_var) { z->c = v_16; goto lab24; }
1277
+ z->ket = z->c;
1278
+ switch (among_var) {
1279
+ case 1:
1280
+ if (SIZE(z->p) < 4) { z->c = v_16; goto lab24; }
1281
+ {
1282
+ int ret = slice_from_s(z, 1, s_52);
1283
+ if (ret < 0) return ret;
1284
+ }
1285
+ break;
1286
+ case 2:
1287
+ if (SIZE(z->p) < 4) { z->c = v_16; goto lab24; }
1288
+ {
1289
+ int ret = slice_from_s(z, 1, s_53);
1290
+ if (ret < 0) return ret;
1291
+ }
1292
+ break;
1293
+ case 3:
1294
+ if (SIZE(z->p) < 4) { z->c = v_16; goto lab24; }
1295
+ {
1296
+ int ret = slice_from_s(z, 1, s_54);
1297
+ if (ret < 0) return ret;
1298
+ }
1299
+ break;
1300
+ case 4:
1301
+ if (SIZE(z->p) < 4) { z->c = v_16; goto lab24; }
1302
+ {
1303
+ int ret = slice_from_s(z, 1, s_55);
1304
+ if (ret < 0) return ret;
1305
+ }
1306
+ break;
1307
+ }
1308
+ lab24:
1309
+ ;
1310
+ }
1311
+ {
1312
+ int v_17 = z->c;
1313
+ z->bra = z->c;
1314
+ if (z->c >= z->l || (z->p[z->c + 0] != 1601 && z->p[z->c + 0] != 1608)) { z->c = v_17; goto lab25; }
1315
+ z->c++;
1316
+ z->ket = z->c;
1317
+ if (SIZE(z->p) < 4) { z->c = v_17; goto lab25; }
1318
+ if (z->c == z->l || z->p[z->c] != 0x627) goto lab26;
1319
+ z->c++;
1320
+ { z->c = v_17; goto lab25; }
1321
+ lab26:
1322
+ {
1323
+ int ret = slice_del(z);
1324
+ if (ret < 0) return ret;
1325
+ }
1326
+ lab25:
1327
+ ;
1328
+ }
1329
+ do {
1330
+ int v_18 = z->c;
1331
+ z->bra = z->c;
1332
+ if (z->c + 1 >= z->l || (z->p[z->c + 1] != 1604 && z->p[z->c + 1] != 1575)) goto lab27;
1333
+ among_var = find_among(z, a_6, 4, 0);
1334
+ if (!among_var) goto lab27;
1335
+ z->ket = z->c;
1336
+ switch (among_var) {
1337
+ case 1:
1338
+ if (SIZE(z->p) < 6) goto lab27;
1339
+ {
1340
+ int ret = slice_del(z);
1341
+ if (ret < 0) return ret;
1342
+ }
1343
+ break;
1344
+ case 2:
1345
+ if (SIZE(z->p) < 5) goto lab27;
1346
+ {
1347
+ int ret = slice_del(z);
1348
+ if (ret < 0) return ret;
1349
+ }
1350
+ break;
1351
+ }
1352
+ break;
1353
+ lab27:
1354
+ z->c = v_18;
1355
+ if (!b_is_noun) goto lab28;
1356
+ z->bra = z->c;
1357
+ if (z->c >= z->l || (z->p[z->c + 0] != 1576 && z->p[z->c + 0] != 1603)) goto lab28;
1358
+ among_var = find_among(z, a_7, 4, 0);
1359
+ if (!among_var) goto lab28;
1360
+ z->ket = z->c;
1361
+ switch (among_var) {
1362
+ case 1:
1363
+ if (SIZE(z->p) < 4) goto lab28;
1364
+ {
1365
+ int ret = slice_del(z);
1366
+ if (ret < 0) return ret;
1367
+ }
1368
+ break;
1369
+ case 2:
1370
+ if (SIZE(z->p) < 4) goto lab28;
1371
+ {
1372
+ int ret = slice_from_s(z, 1, s_56);
1373
+ if (ret < 0) return ret;
1374
+ }
1375
+ break;
1376
+ case 3:
1377
+ if (SIZE(z->p) < 4) goto lab28;
1378
+ {
1379
+ int ret = slice_from_s(z, 1, s_57);
1380
+ if (ret < 0) return ret;
1381
+ }
1382
+ break;
1383
+ }
1384
+ break;
1385
+ lab28:
1386
+ z->c = v_18;
1387
+ if (!b_is_verb) goto lab23;
1388
+ {
1389
+ int v_19 = z->c;
1390
+ z->bra = z->c;
1391
+ among_var = find_among(z, a_8, 4, 0);
1392
+ if (!among_var) { z->c = v_19; goto lab29; }
1393
+ z->ket = z->c;
1394
+ switch (among_var) {
1395
+ case 1:
1396
+ if (SIZE(z->p) < 5) { z->c = v_19; goto lab29; }
1397
+ {
1398
+ int ret = slice_from_s(z, 1, s_58);
1399
+ if (ret < 0) return ret;
1400
+ }
1401
+ break;
1402
+ case 2:
1403
+ if (SIZE(z->p) < 5) { z->c = v_19; goto lab29; }
1404
+ {
1405
+ int ret = slice_from_s(z, 1, s_59);
1406
+ if (ret < 0) return ret;
1407
+ }
1408
+ break;
1409
+ case 3:
1410
+ if (SIZE(z->p) < 5) { z->c = v_19; goto lab29; }
1411
+ {
1412
+ int ret = slice_from_s(z, 1, s_60);
1413
+ if (ret < 0) return ret;
1414
+ }
1415
+ break;
1416
+ case 4:
1417
+ if (SIZE(z->p) < 5) { z->c = v_19; goto lab29; }
1418
+ {
1419
+ int ret = slice_from_s(z, 1, s_61);
1420
+ if (ret < 0) return ret;
1421
+ }
1422
+ break;
1423
+ }
1424
+ lab29:
1425
+ ;
1426
+ }
1427
+ z->bra = z->c;
1428
+ if (z->c + 2 >= z->l || z->p[z->c + 2] != 1578) goto lab23;
1429
+ if (!find_among(z, a_9, 3, 0)) goto lab23;
1430
+ z->ket = z->c;
1431
+ if (SIZE(z->p) < 5) goto lab23;
1432
+ b_is_verb = 1;
1433
+ b_is_noun = 0;
1434
+ {
1435
+ int ret = slice_from_s(z, 3, s_62);
1436
+ if (ret < 0) return ret;
1437
+ }
1438
+ } while (0);
1439
+ lab23:
1440
+ z->c = v_15;
1441
+ }
1442
+ {
1443
+ int v_20 = z->c;
1444
+ z->lb = z->c; z->c = z->l;
1445
+ z->ket = z->c;
1446
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 49 || !((124 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab31;
1447
+ z->c--;
1448
+ z->bra = z->c;
1449
+ {
1450
+ int ret = slice_from_s(z, 1, s_63);
1451
+ if (ret < 0) return ret;
1452
+ }
1453
+ z->c = z->lb;
1454
+ lab31:
1455
+ z->c = v_20;
1456
+ }
1457
+ {
1458
+ int v_21 = z->c;
1459
+ while (1) {
1460
+ int v_22 = z->c;
1461
+ do {
1462
+ int v_23 = z->c;
1463
+ z->bra = z->c;
1464
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 49 || !((124 >> (z->p[z->c + 0] & 0x1f)) & 1)) goto lab34;
1465
+ among_var = find_among(z, a_2, 5, 0);
1466
+ if (!among_var) goto lab34;
1467
+ z->ket = z->c;
1468
+ switch (among_var) {
1469
+ case 1:
1470
+ {
1471
+ int ret = slice_from_s(z, 1, s_64);
1472
+ if (ret < 0) return ret;
1473
+ }
1474
+ break;
1475
+ case 2:
1476
+ {
1477
+ int ret = slice_from_s(z, 1, s_65);
1478
+ if (ret < 0) return ret;
1479
+ }
1480
+ break;
1481
+ case 3:
1482
+ {
1483
+ int ret = slice_from_s(z, 1, s_66);
1484
+ if (ret < 0) return ret;
1485
+ }
1486
+ break;
1487
+ }
1488
+ break;
1489
+ lab34:
1490
+ z->c = v_23;
1491
+ if (z->c >= z->l) goto lab33;
1492
+ z->c++;
1493
+ } while (0);
1494
+ continue;
1495
+ lab33:
1496
+ z->c = v_22;
1497
+ break;
1498
+ }
1499
+ z->c = v_21;
1500
+ }
1501
+ return 1;
1502
+ }
1503
+
1504
+ extern struct SN_env * arabic_create_env(void) {
1505
+ return SN_new_env(sizeof(struct SN_env));
1506
+ }