isomorfeus-ferret 0.12.2 → 0.12.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +612 -612
  3. data/README.md +80 -44
  4. data/ext/isomorfeus_ferret_ext/bm_hash.c +9 -6
  5. data/ext/isomorfeus_ferret_ext/bm_micro_string.c +4 -2
  6. data/ext/isomorfeus_ferret_ext/frb_search.c +14 -2
  7. data/ext/isomorfeus_ferret_ext/frb_store.c +34 -5
  8. data/ext/isomorfeus_ferret_ext/frt_posh.h +11 -19
  9. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +1844 -1911
  10. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +12 -15
  11. data/ext/isomorfeus_ferret_ext/frt_scanner.c +1 -0
  12. data/ext/isomorfeus_ferret_ext/frt_scanner_mb.c +1 -0
  13. data/ext/isomorfeus_ferret_ext/frt_scanner_utf8.c +1 -0
  14. data/ext/isomorfeus_ferret_ext/frt_search.h +1 -1
  15. data/ext/isomorfeus_ferret_ext/libstemmer.c +14 -11
  16. data/ext/isomorfeus_ferret_ext/libstemmer.h +4 -9
  17. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.c +1167 -0
  18. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.h +6 -0
  19. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.c +1433 -0
  20. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.h +6 -0
  21. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.c +120 -143
  22. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.h +1 -2
  23. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.c +217 -237
  24. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.h +1 -1
  25. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.c +377 -432
  26. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.h +1 -1
  27. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.c +298 -342
  28. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.h +1 -2
  29. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.c +530 -524
  30. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.h +1 -1
  31. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.c +201 -214
  32. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.h +1 -1
  33. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_hungarian.c +1 -1
  34. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.c +394 -0
  35. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.h +6 -0
  36. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.c +457 -0
  37. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.h +6 -0
  38. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.c +396 -439
  39. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.h +1 -1
  40. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.c +104 -128
  41. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.h +1 -1
  42. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.c +242 -273
  43. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.h +1 -1
  44. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.c +406 -461
  45. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.h +1 -2
  46. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.c +405 -456
  47. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.h +1 -1
  48. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.c +108 -126
  49. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.h +1 -1
  50. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.c +849 -0
  51. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.h +6 -0
  52. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.c +373 -405
  53. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.h +1 -1
  54. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.c +288 -305
  55. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.h +1 -1
  56. data/ext/isomorfeus_ferret_ext/stem_UTF_8_arabic.c +1651 -0
  57. data/ext/isomorfeus_ferret_ext/stem_UTF_8_arabic.h +6 -0
  58. data/ext/isomorfeus_ferret_ext/stem_UTF_8_armenian.c +546 -0
  59. data/ext/isomorfeus_ferret_ext/stem_UTF_8_armenian.h +6 -0
  60. data/ext/isomorfeus_ferret_ext/stem_UTF_8_basque.c +1171 -0
  61. data/ext/isomorfeus_ferret_ext/stem_UTF_8_basque.h +6 -0
  62. data/ext/isomorfeus_ferret_ext/stem_UTF_8_catalan.c +1436 -0
  63. data/ext/isomorfeus_ferret_ext/stem_UTF_8_catalan.h +6 -0
  64. data/ext/isomorfeus_ferret_ext/stem_UTF_8_danish.c +121 -141
  65. data/ext/isomorfeus_ferret_ext/stem_UTF_8_danish.h +1 -1
  66. data/ext/isomorfeus_ferret_ext/stem_UTF_8_dutch.c +221 -241
  67. data/ext/isomorfeus_ferret_ext/stem_UTF_8_dutch.h +1 -1
  68. data/ext/isomorfeus_ferret_ext/stem_UTF_8_english.c +381 -431
  69. data/ext/isomorfeus_ferret_ext/stem_UTF_8_english.h +1 -1
  70. data/ext/isomorfeus_ferret_ext/stem_UTF_8_finnish.c +300 -345
  71. data/ext/isomorfeus_ferret_ext/stem_UTF_8_finnish.h +1 -1
  72. data/ext/isomorfeus_ferret_ext/stem_UTF_8_french.c +518 -511
  73. data/ext/isomorfeus_ferret_ext/stem_UTF_8_french.h +1 -1
  74. data/ext/isomorfeus_ferret_ext/stem_UTF_8_german.c +201 -209
  75. data/ext/isomorfeus_ferret_ext/stem_UTF_8_german.h +1 -1
  76. data/ext/isomorfeus_ferret_ext/stem_UTF_8_greek.c +3660 -0
  77. data/ext/isomorfeus_ferret_ext/stem_UTF_8_greek.h +6 -0
  78. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hindi.c +309 -0
  79. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hindi.h +6 -0
  80. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hungarian.c +306 -671
  81. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hungarian.h +1 -1
  82. data/ext/isomorfeus_ferret_ext/stem_UTF_8_indonesian.c +394 -0
  83. data/ext/isomorfeus_ferret_ext/stem_UTF_8_indonesian.h +6 -0
  84. data/ext/isomorfeus_ferret_ext/stem_UTF_8_irish.c +457 -0
  85. data/ext/isomorfeus_ferret_ext/stem_UTF_8_irish.h +6 -0
  86. data/ext/isomorfeus_ferret_ext/stem_UTF_8_italian.c +400 -442
  87. data/ext/isomorfeus_ferret_ext/stem_UTF_8_italian.h +1 -1
  88. data/ext/isomorfeus_ferret_ext/stem_UTF_8_lithuanian.c +824 -0
  89. data/ext/isomorfeus_ferret_ext/stem_UTF_8_lithuanian.h +6 -0
  90. data/ext/isomorfeus_ferret_ext/stem_UTF_8_nepali.c +408 -0
  91. data/ext/isomorfeus_ferret_ext/stem_UTF_8_nepali.h +6 -0
  92. data/ext/isomorfeus_ferret_ext/stem_UTF_8_norwegian.c +105 -127
  93. data/ext/isomorfeus_ferret_ext/stem_UTF_8_norwegian.h +1 -1
  94. data/ext/isomorfeus_ferret_ext/stem_UTF_8_porter.c +245 -276
  95. data/ext/isomorfeus_ferret_ext/stem_UTF_8_porter.h +1 -1
  96. data/ext/isomorfeus_ferret_ext/stem_UTF_8_portuguese.c +409 -464
  97. data/ext/isomorfeus_ferret_ext/stem_UTF_8_portuguese.h +1 -1
  98. data/ext/isomorfeus_ferret_ext/stem_UTF_8_romanian.c +376 -408
  99. data/ext/isomorfeus_ferret_ext/stem_UTF_8_romanian.h +1 -1
  100. data/ext/isomorfeus_ferret_ext/stem_UTF_8_russian.c +272 -287
  101. data/ext/isomorfeus_ferret_ext/stem_UTF_8_russian.h +1 -1
  102. data/ext/isomorfeus_ferret_ext/stem_UTF_8_serbian.c +6530 -0
  103. data/ext/isomorfeus_ferret_ext/stem_UTF_8_serbian.h +6 -0
  104. data/ext/isomorfeus_ferret_ext/stem_UTF_8_spanish.c +407 -458
  105. data/ext/isomorfeus_ferret_ext/stem_UTF_8_spanish.h +1 -1
  106. data/ext/isomorfeus_ferret_ext/stem_UTF_8_swedish.c +110 -125
  107. data/ext/isomorfeus_ferret_ext/stem_UTF_8_swedish.h +1 -1
  108. data/ext/isomorfeus_ferret_ext/stem_UTF_8_tamil.c +1865 -0
  109. data/ext/isomorfeus_ferret_ext/stem_UTF_8_tamil.h +6 -0
  110. data/ext/isomorfeus_ferret_ext/stem_UTF_8_turkish.c +698 -806
  111. data/ext/isomorfeus_ferret_ext/stem_UTF_8_turkish.h +1 -1
  112. data/ext/isomorfeus_ferret_ext/stem_UTF_8_yiddish.c +1220 -0
  113. data/ext/isomorfeus_ferret_ext/stem_UTF_8_yiddish.h +6 -0
  114. data/ext/isomorfeus_ferret_ext/stem_api.c +1 -9
  115. data/ext/isomorfeus_ferret_ext/stem_api.h +1 -3
  116. data/ext/isomorfeus_ferret_ext/stem_header.h +30 -26
  117. data/ext/isomorfeus_ferret_ext/stem_modules.h +113 -26
  118. data/ext/isomorfeus_ferret_ext/stem_modules.txt +18 -5
  119. data/ext/isomorfeus_ferret_ext/stem_utilities.c +167 -132
  120. data/ext/isomorfeus_ferret_ext/test.c +7 -1
  121. data/ext/isomorfeus_ferret_ext/test_search.c +0 -1
  122. data/lib/isomorfeus/ferret/index/index.rb +1 -1
  123. data/lib/isomorfeus/ferret/version.rb +1 -1
  124. metadata +43 -7
  125. data/ext/isomorfeus_ferret_ext/q_parser.y +0 -1366
@@ -0,0 +1,1865 @@
1
+ /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
+
3
+ #include "stem_header.h"
4
+
5
+ extern int tamil_UTF_8_stem(struct SN_env * z);
6
+
7
+ static int r_has_min_length(struct SN_env * z);
8
+ static int r_remove_common_word_endings(struct SN_env * z);
9
+ static int r_remove_tense_suffixes(struct SN_env * z);
10
+ static int r_remove_tense_suffix(struct SN_env * z);
11
+ static int r_fix_endings(struct SN_env * z);
12
+ static int r_fix_ending(struct SN_env * z);
13
+ static int r_fix_va_start(struct SN_env * z);
14
+ static int r_remove_vetrumai_urupukal(struct SN_env * z);
15
+ static int r_remove_um(struct SN_env * z);
16
+ static int r_remove_command_suffixes(struct SN_env * z);
17
+ static int r_remove_pronoun_prefixes(struct SN_env * z);
18
+ static int r_remove_question_prefixes(struct SN_env * z);
19
+ static int r_remove_question_suffixes(struct SN_env * z);
20
+ static int r_remove_plural_suffix(struct SN_env * z);
21
+
22
+ extern struct SN_env * tamil_UTF_8_create_env(void);
23
+ extern void tamil_UTF_8_close_env(struct SN_env * z);
24
+
25
+ static const symbol s_0_0[3] = { 0xE0, 0xAE, 0x95 };
26
+ static const symbol s_0_1[3] = { 0xE0, 0xAE, 0x99 };
27
+ static const symbol s_0_2[3] = { 0xE0, 0xAE, 0x9A };
28
+ static const symbol s_0_3[3] = { 0xE0, 0xAE, 0x9E };
29
+ static const symbol s_0_4[3] = { 0xE0, 0xAE, 0xA4 };
30
+ static const symbol s_0_5[3] = { 0xE0, 0xAE, 0xA8 };
31
+ static const symbol s_0_6[3] = { 0xE0, 0xAE, 0xAA };
32
+ static const symbol s_0_7[3] = { 0xE0, 0xAE, 0xAE };
33
+ static const symbol s_0_8[3] = { 0xE0, 0xAE, 0xAF };
34
+ static const symbol s_0_9[3] = { 0xE0, 0xAE, 0xB5 };
35
+
36
+ static const struct among a_0[10] =
37
+ {
38
+ { 3, s_0_0, -1, -1, 0},
39
+ { 3, s_0_1, -1, -1, 0},
40
+ { 3, s_0_2, -1, -1, 0},
41
+ { 3, s_0_3, -1, -1, 0},
42
+ { 3, s_0_4, -1, -1, 0},
43
+ { 3, s_0_5, -1, -1, 0},
44
+ { 3, s_0_6, -1, -1, 0},
45
+ { 3, s_0_7, -1, -1, 0},
46
+ { 3, s_0_8, -1, -1, 0},
47
+ { 3, s_0_9, -1, -1, 0}
48
+ };
49
+
50
+ static const symbol s_1_0[12] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
51
+ static const symbol s_1_1[6] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D };
52
+ static const symbol s_1_2[9] = { 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4 };
53
+
54
+ static const struct among a_1[3] =
55
+ {
56
+ { 12, s_1_0, -1, -1, 0},
57
+ { 6, s_1_1, -1, -1, 0},
58
+ { 9, s_1_2, -1, -1, 0}
59
+ };
60
+
61
+ static const symbol s_2_0[3] = { 0xE0, 0xAF, 0x80 };
62
+ static const symbol s_2_1[3] = { 0xE0, 0xAF, 0x88 };
63
+ static const symbol s_2_2[3] = { 0xE0, 0xAE, 0xBF };
64
+
65
+ static const struct among a_2[3] =
66
+ {
67
+ { 3, s_2_0, -1, -1, 0},
68
+ { 3, s_2_1, -1, -1, 0},
69
+ { 3, s_2_2, -1, -1, 0}
70
+ };
71
+
72
+ static const symbol s_3_0[3] = { 0xE0, 0xAE, 0x95 };
73
+ static const symbol s_3_1[3] = { 0xE0, 0xAE, 0x9A };
74
+ static const symbol s_3_2[3] = { 0xE0, 0xAE, 0x9F };
75
+ static const symbol s_3_3[3] = { 0xE0, 0xAE, 0xA4 };
76
+ static const symbol s_3_4[3] = { 0xE0, 0xAE, 0xAA };
77
+ static const symbol s_3_5[3] = { 0xE0, 0xAE, 0xB1 };
78
+
79
+ static const struct among a_3[6] =
80
+ {
81
+ { 3, s_3_0, -1, -1, 0},
82
+ { 3, s_3_1, -1, -1, 0},
83
+ { 3, s_3_2, -1, -1, 0},
84
+ { 3, s_3_3, -1, -1, 0},
85
+ { 3, s_3_4, -1, -1, 0},
86
+ { 3, s_3_5, -1, -1, 0}
87
+ };
88
+
89
+ static const symbol s_4_0[3] = { 0xE0, 0xAE, 0x95 };
90
+ static const symbol s_4_1[3] = { 0xE0, 0xAE, 0x9A };
91
+ static const symbol s_4_2[3] = { 0xE0, 0xAE, 0x9F };
92
+ static const symbol s_4_3[3] = { 0xE0, 0xAE, 0xA4 };
93
+ static const symbol s_4_4[3] = { 0xE0, 0xAE, 0xAA };
94
+ static const symbol s_4_5[3] = { 0xE0, 0xAE, 0xB1 };
95
+
96
+ static const struct among a_4[6] =
97
+ {
98
+ { 3, s_4_0, -1, -1, 0},
99
+ { 3, s_4_1, -1, -1, 0},
100
+ { 3, s_4_2, -1, -1, 0},
101
+ { 3, s_4_3, -1, -1, 0},
102
+ { 3, s_4_4, -1, -1, 0},
103
+ { 3, s_4_5, -1, -1, 0}
104
+ };
105
+
106
+ static const symbol s_5_0[3] = { 0xE0, 0xAE, 0x95 };
107
+ static const symbol s_5_1[3] = { 0xE0, 0xAE, 0x9A };
108
+ static const symbol s_5_2[3] = { 0xE0, 0xAE, 0x9F };
109
+ static const symbol s_5_3[3] = { 0xE0, 0xAE, 0xA4 };
110
+ static const symbol s_5_4[3] = { 0xE0, 0xAE, 0xAA };
111
+ static const symbol s_5_5[3] = { 0xE0, 0xAE, 0xB1 };
112
+
113
+ static const struct among a_5[6] =
114
+ {
115
+ { 3, s_5_0, -1, -1, 0},
116
+ { 3, s_5_1, -1, -1, 0},
117
+ { 3, s_5_2, -1, -1, 0},
118
+ { 3, s_5_3, -1, -1, 0},
119
+ { 3, s_5_4, -1, -1, 0},
120
+ { 3, s_5_5, -1, -1, 0}
121
+ };
122
+
123
+ static const symbol s_6_0[3] = { 0xE0, 0xAE, 0xAF };
124
+ static const symbol s_6_1[3] = { 0xE0, 0xAE, 0xB0 };
125
+ static const symbol s_6_2[3] = { 0xE0, 0xAE, 0xB2 };
126
+ static const symbol s_6_3[3] = { 0xE0, 0xAE, 0xB3 };
127
+ static const symbol s_6_4[3] = { 0xE0, 0xAE, 0xB4 };
128
+ static const symbol s_6_5[3] = { 0xE0, 0xAE, 0xB5 };
129
+
130
+ static const struct among a_6[6] =
131
+ {
132
+ { 3, s_6_0, -1, -1, 0},
133
+ { 3, s_6_1, -1, -1, 0},
134
+ { 3, s_6_2, -1, -1, 0},
135
+ { 3, s_6_3, -1, -1, 0},
136
+ { 3, s_6_4, -1, -1, 0},
137
+ { 3, s_6_5, -1, -1, 0}
138
+ };
139
+
140
+ static const symbol s_7_0[3] = { 0xE0, 0xAE, 0x99 };
141
+ static const symbol s_7_1[3] = { 0xE0, 0xAE, 0x9E };
142
+ static const symbol s_7_2[3] = { 0xE0, 0xAE, 0xA3 };
143
+ static const symbol s_7_3[3] = { 0xE0, 0xAE, 0xA8 };
144
+ static const symbol s_7_4[3] = { 0xE0, 0xAE, 0xA9 };
145
+ static const symbol s_7_5[3] = { 0xE0, 0xAE, 0xAE };
146
+
147
+ static const struct among a_7[6] =
148
+ {
149
+ { 3, s_7_0, -1, -1, 0},
150
+ { 3, s_7_1, -1, -1, 0},
151
+ { 3, s_7_2, -1, -1, 0},
152
+ { 3, s_7_3, -1, -1, 0},
153
+ { 3, s_7_4, -1, -1, 0},
154
+ { 3, s_7_5, -1, -1, 0}
155
+ };
156
+
157
+ static const symbol s_8_0[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8D };
158
+ static const symbol s_8_1[3] = { 0xE0, 0xAE, 0xAF };
159
+ static const symbol s_8_2[3] = { 0xE0, 0xAE, 0xB5 };
160
+
161
+ static const struct among a_8[3] =
162
+ {
163
+ { 6, s_8_0, -1, -1, 0},
164
+ { 3, s_8_1, -1, -1, 0},
165
+ { 3, s_8_2, -1, -1, 0}
166
+ };
167
+
168
+ static const symbol s_9_0[3] = { 0xE0, 0xAF, 0x80 };
169
+ static const symbol s_9_1[3] = { 0xE0, 0xAF, 0x81 };
170
+ static const symbol s_9_2[3] = { 0xE0, 0xAF, 0x82 };
171
+ static const symbol s_9_3[3] = { 0xE0, 0xAF, 0x86 };
172
+ static const symbol s_9_4[3] = { 0xE0, 0xAF, 0x87 };
173
+ static const symbol s_9_5[3] = { 0xE0, 0xAF, 0x88 };
174
+ static const symbol s_9_6[3] = { 0xE0, 0xAE, 0xBE };
175
+ static const symbol s_9_7[3] = { 0xE0, 0xAE, 0xBF };
176
+
177
+ static const struct among a_9[8] =
178
+ {
179
+ { 3, s_9_0, -1, -1, 0},
180
+ { 3, s_9_1, -1, -1, 0},
181
+ { 3, s_9_2, -1, -1, 0},
182
+ { 3, s_9_3, -1, -1, 0},
183
+ { 3, s_9_4, -1, -1, 0},
184
+ { 3, s_9_5, -1, -1, 0},
185
+ { 3, s_9_6, -1, -1, 0},
186
+ { 3, s_9_7, -1, -1, 0}
187
+ };
188
+
189
+ static const symbol s_10_0[3] = { 0xE0, 0xAF, 0x80 };
190
+ static const symbol s_10_1[3] = { 0xE0, 0xAF, 0x81 };
191
+ static const symbol s_10_2[3] = { 0xE0, 0xAF, 0x82 };
192
+ static const symbol s_10_3[3] = { 0xE0, 0xAF, 0x86 };
193
+ static const symbol s_10_4[3] = { 0xE0, 0xAF, 0x87 };
194
+ static const symbol s_10_5[3] = { 0xE0, 0xAF, 0x88 };
195
+ static const symbol s_10_6[3] = { 0xE0, 0xAE, 0xBE };
196
+ static const symbol s_10_7[3] = { 0xE0, 0xAE, 0xBF };
197
+
198
+ static const struct among a_10[8] =
199
+ {
200
+ { 3, s_10_0, -1, -1, 0},
201
+ { 3, s_10_1, -1, -1, 0},
202
+ { 3, s_10_2, -1, -1, 0},
203
+ { 3, s_10_3, -1, -1, 0},
204
+ { 3, s_10_4, -1, -1, 0},
205
+ { 3, s_10_5, -1, -1, 0},
206
+ { 3, s_10_6, -1, -1, 0},
207
+ { 3, s_10_7, -1, -1, 0}
208
+ };
209
+
210
+ static const symbol s_11_0[3] = { 0xE0, 0xAE, 0x85 };
211
+ static const symbol s_11_1[3] = { 0xE0, 0xAE, 0x87 };
212
+ static const symbol s_11_2[3] = { 0xE0, 0xAE, 0x89 };
213
+
214
+ static const struct among a_11[3] =
215
+ {
216
+ { 3, s_11_0, -1, -1, 0},
217
+ { 3, s_11_1, -1, -1, 0},
218
+ { 3, s_11_2, -1, -1, 0}
219
+ };
220
+
221
+ static const symbol s_12_0[3] = { 0xE0, 0xAE, 0x95 };
222
+ static const symbol s_12_1[3] = { 0xE0, 0xAE, 0x99 };
223
+ static const symbol s_12_2[3] = { 0xE0, 0xAE, 0x9A };
224
+ static const symbol s_12_3[3] = { 0xE0, 0xAE, 0x9E };
225
+ static const symbol s_12_4[3] = { 0xE0, 0xAE, 0xA4 };
226
+ static const symbol s_12_5[3] = { 0xE0, 0xAE, 0xA8 };
227
+ static const symbol s_12_6[3] = { 0xE0, 0xAE, 0xAA };
228
+ static const symbol s_12_7[3] = { 0xE0, 0xAE, 0xAE };
229
+ static const symbol s_12_8[3] = { 0xE0, 0xAE, 0xAF };
230
+ static const symbol s_12_9[3] = { 0xE0, 0xAE, 0xB5 };
231
+
232
+ static const struct among a_12[10] =
233
+ {
234
+ { 3, s_12_0, -1, -1, 0},
235
+ { 3, s_12_1, -1, -1, 0},
236
+ { 3, s_12_2, -1, -1, 0},
237
+ { 3, s_12_3, -1, -1, 0},
238
+ { 3, s_12_4, -1, -1, 0},
239
+ { 3, s_12_5, -1, -1, 0},
240
+ { 3, s_12_6, -1, -1, 0},
241
+ { 3, s_12_7, -1, -1, 0},
242
+ { 3, s_12_8, -1, -1, 0},
243
+ { 3, s_12_9, -1, -1, 0}
244
+ };
245
+
246
+ static const symbol s_13_0[3] = { 0xE0, 0xAE, 0x95 };
247
+ static const symbol s_13_1[3] = { 0xE0, 0xAE, 0x9A };
248
+ static const symbol s_13_2[3] = { 0xE0, 0xAE, 0x9F };
249
+ static const symbol s_13_3[3] = { 0xE0, 0xAE, 0xA4 };
250
+ static const symbol s_13_4[3] = { 0xE0, 0xAE, 0xAA };
251
+ static const symbol s_13_5[3] = { 0xE0, 0xAE, 0xB1 };
252
+
253
+ static const struct among a_13[6] =
254
+ {
255
+ { 3, s_13_0, -1, -1, 0},
256
+ { 3, s_13_1, -1, -1, 0},
257
+ { 3, s_13_2, -1, -1, 0},
258
+ { 3, s_13_3, -1, -1, 0},
259
+ { 3, s_13_4, -1, -1, 0},
260
+ { 3, s_13_5, -1, -1, 0}
261
+ };
262
+
263
+ static const symbol s_14_0[3] = { 0xE0, 0xAF, 0x87 };
264
+ static const symbol s_14_1[3] = { 0xE0, 0xAF, 0x8B };
265
+ static const symbol s_14_2[3] = { 0xE0, 0xAE, 0xBE };
266
+
267
+ static const struct among a_14[3] =
268
+ {
269
+ { 3, s_14_0, -1, -1, 0},
270
+ { 3, s_14_1, -1, -1, 0},
271
+ { 3, s_14_2, -1, -1, 0}
272
+ };
273
+
274
+ static const symbol s_15_0[6] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF };
275
+ static const symbol s_15_1[6] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF };
276
+
277
+ static const struct among a_15[2] =
278
+ {
279
+ { 6, s_15_0, -1, -1, 0},
280
+ { 6, s_15_1, -1, -1, 0}
281
+ };
282
+
283
+ static const symbol s_16_0[3] = { 0xE0, 0xAF, 0x80 };
284
+ static const symbol s_16_1[3] = { 0xE0, 0xAF, 0x81 };
285
+ static const symbol s_16_2[3] = { 0xE0, 0xAF, 0x82 };
286
+ static const symbol s_16_3[3] = { 0xE0, 0xAF, 0x86 };
287
+ static const symbol s_16_4[3] = { 0xE0, 0xAF, 0x87 };
288
+ static const symbol s_16_5[3] = { 0xE0, 0xAF, 0x88 };
289
+ static const symbol s_16_6[3] = { 0xE0, 0xAE, 0xBE };
290
+ static const symbol s_16_7[3] = { 0xE0, 0xAE, 0xBF };
291
+
292
+ static const struct among a_16[8] =
293
+ {
294
+ { 3, s_16_0, -1, -1, 0},
295
+ { 3, s_16_1, -1, -1, 0},
296
+ { 3, s_16_2, -1, -1, 0},
297
+ { 3, s_16_3, -1, -1, 0},
298
+ { 3, s_16_4, -1, -1, 0},
299
+ { 3, s_16_5, -1, -1, 0},
300
+ { 3, s_16_6, -1, -1, 0},
301
+ { 3, s_16_7, -1, -1, 0}
302
+ };
303
+
304
+ static const symbol s_17_0[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
305
+ static const symbol s_17_1[18] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
306
+ static const symbol s_17_2[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
307
+ static const symbol s_17_3[12] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
308
+ static const symbol s_17_4[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
309
+ static const symbol s_17_5[21] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
310
+ static const symbol s_17_6[12] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F };
311
+ static const symbol s_17_7[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA3 };
312
+ static const symbol s_17_8[9] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
313
+ static const symbol s_17_9[18] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA4, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9 };
314
+ static const symbol s_17_10[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB0, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
315
+ static const symbol s_17_11[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF };
316
+ static const symbol s_17_12[15] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
317
+
318
+ static const struct among a_17[13] =
319
+ {
320
+ { 15, s_17_0, -1, -1, 0},
321
+ { 18, s_17_1, -1, -1, 0},
322
+ { 9, s_17_2, -1, -1, 0},
323
+ { 12, s_17_3, -1, -1, 0},
324
+ { 18, s_17_4, -1, -1, 0},
325
+ { 21, s_17_5, -1, -1, 0},
326
+ { 12, s_17_6, -1, -1, 0},
327
+ { 15, s_17_7, -1, -1, 0},
328
+ { 9, s_17_8, -1, -1, 0},
329
+ { 18, s_17_9, 8, -1, 0},
330
+ { 15, s_17_10, -1, -1, 0},
331
+ { 9, s_17_11, -1, -1, 0},
332
+ { 15, s_17_12, -1, -1, 0}
333
+ };
334
+
335
+ static const symbol s_18_0[3] = { 0xE0, 0xAE, 0x95 };
336
+ static const symbol s_18_1[3] = { 0xE0, 0xAE, 0x9A };
337
+ static const symbol s_18_2[3] = { 0xE0, 0xAE, 0x9F };
338
+ static const symbol s_18_3[3] = { 0xE0, 0xAE, 0xA4 };
339
+ static const symbol s_18_4[3] = { 0xE0, 0xAE, 0xAA };
340
+ static const symbol s_18_5[3] = { 0xE0, 0xAE, 0xB1 };
341
+
342
+ static const struct among a_18[6] =
343
+ {
344
+ { 3, s_18_0, -1, -1, 0},
345
+ { 3, s_18_1, -1, -1, 0},
346
+ { 3, s_18_2, -1, -1, 0},
347
+ { 3, s_18_3, -1, -1, 0},
348
+ { 3, s_18_4, -1, -1, 0},
349
+ { 3, s_18_5, -1, -1, 0}
350
+ };
351
+
352
+ static const symbol s_19_0[3] = { 0xE0, 0xAE, 0x95 };
353
+ static const symbol s_19_1[3] = { 0xE0, 0xAE, 0x9A };
354
+ static const symbol s_19_2[3] = { 0xE0, 0xAE, 0x9F };
355
+ static const symbol s_19_3[3] = { 0xE0, 0xAE, 0xA4 };
356
+ static const symbol s_19_4[3] = { 0xE0, 0xAE, 0xAA };
357
+ static const symbol s_19_5[3] = { 0xE0, 0xAE, 0xB1 };
358
+
359
+ static const struct among a_19[6] =
360
+ {
361
+ { 3, s_19_0, -1, -1, 0},
362
+ { 3, s_19_1, -1, -1, 0},
363
+ { 3, s_19_2, -1, -1, 0},
364
+ { 3, s_19_3, -1, -1, 0},
365
+ { 3, s_19_4, -1, -1, 0},
366
+ { 3, s_19_5, -1, -1, 0}
367
+ };
368
+
369
+ static const symbol s_20_0[3] = { 0xE0, 0xAF, 0x80 };
370
+ static const symbol s_20_1[3] = { 0xE0, 0xAF, 0x81 };
371
+ static const symbol s_20_2[3] = { 0xE0, 0xAF, 0x82 };
372
+ static const symbol s_20_3[3] = { 0xE0, 0xAF, 0x86 };
373
+ static const symbol s_20_4[3] = { 0xE0, 0xAF, 0x87 };
374
+ static const symbol s_20_5[3] = { 0xE0, 0xAF, 0x88 };
375
+ static const symbol s_20_6[3] = { 0xE0, 0xAE, 0xBE };
376
+ static const symbol s_20_7[3] = { 0xE0, 0xAE, 0xBF };
377
+
378
+ static const struct among a_20[8] =
379
+ {
380
+ { 3, s_20_0, -1, -1, 0},
381
+ { 3, s_20_1, -1, -1, 0},
382
+ { 3, s_20_2, -1, -1, 0},
383
+ { 3, s_20_3, -1, -1, 0},
384
+ { 3, s_20_4, -1, -1, 0},
385
+ { 3, s_20_5, -1, -1, 0},
386
+ { 3, s_20_6, -1, -1, 0},
387
+ { 3, s_20_7, -1, -1, 0}
388
+ };
389
+
390
+ static const symbol s_21_0[3] = { 0xE0, 0xAF, 0x80 };
391
+ static const symbol s_21_1[3] = { 0xE0, 0xAF, 0x81 };
392
+ static const symbol s_21_2[3] = { 0xE0, 0xAF, 0x82 };
393
+ static const symbol s_21_3[3] = { 0xE0, 0xAF, 0x86 };
394
+ static const symbol s_21_4[3] = { 0xE0, 0xAF, 0x87 };
395
+ static const symbol s_21_5[3] = { 0xE0, 0xAF, 0x88 };
396
+ static const symbol s_21_6[3] = { 0xE0, 0xAE, 0xBE };
397
+ static const symbol s_21_7[3] = { 0xE0, 0xAE, 0xBF };
398
+
399
+ static const struct among a_21[8] =
400
+ {
401
+ { 3, s_21_0, -1, -1, 0},
402
+ { 3, s_21_1, -1, -1, 0},
403
+ { 3, s_21_2, -1, -1, 0},
404
+ { 3, s_21_3, -1, -1, 0},
405
+ { 3, s_21_4, -1, -1, 0},
406
+ { 3, s_21_5, -1, -1, 0},
407
+ { 3, s_21_6, -1, -1, 0},
408
+ { 3, s_21_7, -1, -1, 0}
409
+ };
410
+
411
+ static const symbol s_22_0[9] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
412
+ static const symbol s_22_1[24] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
413
+
414
+ static const struct among a_22[2] =
415
+ {
416
+ { 9, s_22_0, -1, -1, 0},
417
+ { 24, s_22_1, -1, -1, 0}
418
+ };
419
+
420
+ static const symbol s_23_0[3] = { 0xE0, 0xAE, 0x85 };
421
+ static const symbol s_23_1[3] = { 0xE0, 0xAE, 0x86 };
422
+ static const symbol s_23_2[3] = { 0xE0, 0xAE, 0x87 };
423
+ static const symbol s_23_3[3] = { 0xE0, 0xAE, 0x88 };
424
+ static const symbol s_23_4[3] = { 0xE0, 0xAE, 0x89 };
425
+ static const symbol s_23_5[3] = { 0xE0, 0xAE, 0x8A };
426
+ static const symbol s_23_6[3] = { 0xE0, 0xAE, 0x8E };
427
+ static const symbol s_23_7[3] = { 0xE0, 0xAE, 0x8F };
428
+ static const symbol s_23_8[3] = { 0xE0, 0xAE, 0x90 };
429
+ static const symbol s_23_9[3] = { 0xE0, 0xAE, 0x92 };
430
+ static const symbol s_23_10[3] = { 0xE0, 0xAE, 0x93 };
431
+ static const symbol s_23_11[3] = { 0xE0, 0xAE, 0x94 };
432
+
433
+ static const struct among a_23[12] =
434
+ {
435
+ { 3, s_23_0, -1, -1, 0},
436
+ { 3, s_23_1, -1, -1, 0},
437
+ { 3, s_23_2, -1, -1, 0},
438
+ { 3, s_23_3, -1, -1, 0},
439
+ { 3, s_23_4, -1, -1, 0},
440
+ { 3, s_23_5, -1, -1, 0},
441
+ { 3, s_23_6, -1, -1, 0},
442
+ { 3, s_23_7, -1, -1, 0},
443
+ { 3, s_23_8, -1, -1, 0},
444
+ { 3, s_23_9, -1, -1, 0},
445
+ { 3, s_23_10, -1, -1, 0},
446
+ { 3, s_23_11, -1, -1, 0}
447
+ };
448
+
449
+ static const symbol s_24_0[3] = { 0xE0, 0xAF, 0x80 };
450
+ static const symbol s_24_1[3] = { 0xE0, 0xAF, 0x81 };
451
+ static const symbol s_24_2[3] = { 0xE0, 0xAF, 0x82 };
452
+ static const symbol s_24_3[3] = { 0xE0, 0xAF, 0x86 };
453
+ static const symbol s_24_4[3] = { 0xE0, 0xAF, 0x87 };
454
+ static const symbol s_24_5[3] = { 0xE0, 0xAF, 0x88 };
455
+ static const symbol s_24_6[3] = { 0xE0, 0xAE, 0xBE };
456
+ static const symbol s_24_7[3] = { 0xE0, 0xAE, 0xBF };
457
+
458
+ static const struct among a_24[8] =
459
+ {
460
+ { 3, s_24_0, -1, -1, 0},
461
+ { 3, s_24_1, -1, -1, 0},
462
+ { 3, s_24_2, -1, -1, 0},
463
+ { 3, s_24_3, -1, -1, 0},
464
+ { 3, s_24_4, -1, -1, 0},
465
+ { 3, s_24_5, -1, -1, 0},
466
+ { 3, s_24_6, -1, -1, 0},
467
+ { 3, s_24_7, -1, -1, 0}
468
+ };
469
+
470
+ static const symbol s_25_0[18] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
471
+ static const symbol s_25_1[21] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
472
+ static const symbol s_25_2[12] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
473
+ static const symbol s_25_3[15] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
474
+ static const symbol s_25_4[18] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA8, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1 };
475
+ static const symbol s_25_5[9] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1 };
476
+
477
+ static const struct among a_25[6] =
478
+ {
479
+ { 18, s_25_0, -1, -1, 0},
480
+ { 21, s_25_1, -1, -1, 0},
481
+ { 12, s_25_2, -1, -1, 0},
482
+ { 15, s_25_3, -1, -1, 0},
483
+ { 18, s_25_4, -1, -1, 0},
484
+ { 9, s_25_5, -1, -1, 0}
485
+ };
486
+
487
+ static const symbol s_0[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
488
+ static const symbol s_1[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8B };
489
+ static const symbol s_2[] = { 0xE0, 0xAE, 0x93 };
490
+ static const symbol s_3[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
491
+ static const symbol s_4[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x8A };
492
+ static const symbol s_5[] = { 0xE0, 0xAE, 0x92 };
493
+ static const symbol s_6[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
494
+ static const symbol s_7[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x81 };
495
+ static const symbol s_8[] = { 0xE0, 0xAE, 0x89 };
496
+ static const symbol s_9[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
497
+ static const symbol s_10[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x82 };
498
+ static const symbol s_11[] = { 0xE0, 0xAE, 0x8A };
499
+ static const symbol s_12[] = { 0xE0, 0xAE, 0x8E };
500
+ static const symbol s_13[] = { 0xE0, 0xAF, 0x8D };
501
+ static const symbol s_14[] = { 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
502
+ static const symbol s_15[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xAA, 0xE0, 0xAF, 0x8D };
503
+ static const symbol s_16[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
504
+ static const symbol s_17[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
505
+ static const symbol s_18[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
506
+ static const symbol s_19[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
507
+ static const symbol s_20[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
508
+ static const symbol s_21[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
509
+ static const symbol s_22[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D };
510
+ static const symbol s_23[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
511
+ static const symbol s_24[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x8D };
512
+ static const symbol s_25[] = { 0xE0, 0xAF, 0x88 };
513
+ static const symbol s_26[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
514
+ static const symbol s_27[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
515
+ static const symbol s_28[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
516
+ static const symbol s_29[] = { 0xE0, 0xAF, 0x8D };
517
+ static const symbol s_30[] = { 0xE0, 0xAF, 0x8D };
518
+ static const symbol s_31[] = { 0xE0, 0xAF, 0x8D };
519
+ static const symbol s_32[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x8D };
520
+ static const symbol s_33[] = { 0xE0, 0xAF, 0x8D };
521
+ static const symbol s_34[] = { 0xE0, 0xAF, 0x8D };
522
+ static const symbol s_35[] = { 0xE0, 0xAF, 0x8D };
523
+ static const symbol s_36[] = { 0xE0, 0xAF, 0x8D };
524
+ static const symbol s_37[] = { 0xE0, 0xAF, 0x8D };
525
+ static const symbol s_38[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81 };
526
+ static const symbol s_39[] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
527
+ static const symbol s_40[] = { 0xE0, 0xAF, 0x88 };
528
+ static const symbol s_41[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
529
+ static const symbol s_42[] = { 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D };
530
+ static const symbol s_43[] = { 0xE0, 0xAF, 0x8D };
531
+ static const symbol s_44[] = { 0xE0, 0xAF, 0x8D };
532
+ static const symbol s_45[] = { 0xE0, 0xAF, 0x8D };
533
+ static const symbol s_46[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x99, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
534
+ static const symbol s_47[] = { 0xE0, 0xAF, 0x8D };
535
+ static const symbol s_48[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
536
+ static const symbol s_49[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
537
+ static const symbol s_50[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
538
+ static const symbol s_51[] = { 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
539
+ static const symbol s_52[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
540
+ static const symbol s_53[] = { 0xE0, 0xAF, 0x8D };
541
+ static const symbol s_54[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
542
+ static const symbol s_55[] = { 0xE0, 0xAF, 0x8D };
543
+ static const symbol s_56[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
544
+ static const symbol s_57[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x88 };
545
+ static const symbol s_58[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
546
+ static const symbol s_59[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAE, 0xBF };
547
+ static const symbol s_60[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
548
+ static const symbol s_61[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xAF };
549
+ static const symbol s_62[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
550
+ static const symbol s_63[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB3 };
551
+ static const symbol s_64[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88, 0xE0, 0xAE, 0xAF };
552
+ static const symbol s_65[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
553
+ static const symbol s_66[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
554
+ static const symbol s_67[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB2 };
555
+ static const symbol s_68[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9 };
556
+ static const symbol s_69[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xBF };
557
+ static const symbol s_70[] = { 0xE0, 0xAF, 0x8D };
558
+ static const symbol s_71[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
559
+ static const symbol s_72[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
560
+ static const symbol s_73[] = { 0xE0, 0xAF, 0x88 };
561
+ static const symbol s_74[] = { 0xE0, 0xAF, 0x88 };
562
+ static const symbol s_75[] = { 0xE0, 0xAF, 0x8D };
563
+ static const symbol s_76[] = { 0xE0, 0xAF, 0x8D };
564
+ static const symbol s_77[] = { 0xE0, 0xAF, 0x8A, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
565
+ static const symbol s_78[] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81 };
566
+ static const symbol s_79[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
567
+ static const symbol s_80[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
568
+ static const symbol s_81[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
569
+ static const symbol s_82[] = { 0xE0, 0xAE, 0xAE };
570
+ static const symbol s_83[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
571
+ static const symbol s_84[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA8, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
572
+ static const symbol s_85[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F };
573
+ static const symbol s_86[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0x9F, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
574
+ static const symbol s_87[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
575
+ static const symbol s_88[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x88 };
576
+ static const symbol s_89[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
577
+ static const symbol s_90[] = { 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
578
+ static const symbol s_91[] = { 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
579
+ static const symbol s_92[] = { 0xE0, 0xAF, 0x8D };
580
+ static const symbol s_93[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAE, 0xA3, 0xE0, 0xAF, 0x8D };
581
+ static const symbol s_94[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
582
+ static const symbol s_95[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB2, 0xE0, 0xAF, 0x8D };
583
+ static const symbol s_96[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D };
584
+ static const symbol s_97[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB4, 0xE0, 0xAF, 0x8D };
585
+ static const symbol s_98[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
586
+ static const symbol s_99[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
587
+ static const symbol s_100[] = { 0xE0, 0xAF, 0x80 };
588
+ static const symbol s_101[] = { 0xE0, 0xAE, 0xBF };
589
+ static const symbol s_102[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
590
+ static const symbol s_103[] = { 0xE0, 0xAF, 0x8D };
591
+ static const symbol s_104[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
592
+ static const symbol s_105[] = { 0xE0, 0xAE, 0xAE, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
593
+ static const symbol s_106[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
594
+ static const symbol s_107[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
595
+ static const symbol s_108[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
596
+ static const symbol s_109[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
597
+ static const symbol s_110[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
598
+ static const symbol s_111[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
599
+ static const symbol s_112[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
600
+ static const symbol s_113[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
601
+ static const symbol s_114[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
602
+ static const symbol s_115[] = { 0xE0, 0xAE, 0xA9 };
603
+ static const symbol s_116[] = { 0xE0, 0xAE, 0xAA };
604
+ static const symbol s_117[] = { 0xE0, 0xAE, 0x95 };
605
+ static const symbol s_118[] = { 0xE0, 0xAE, 0xA4 };
606
+ static const symbol s_119[] = { 0xE0, 0xAE, 0xAF };
607
+ static const symbol s_120[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
608
+ static const symbol s_121[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
609
+ static const symbol s_122[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
610
+ static const symbol s_123[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
611
+ static const symbol s_124[] = { 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x8D, 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81 };
612
+ static const symbol s_125[] = { 0xE0, 0xAE, 0xAA, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
613
+ static const symbol s_126[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
614
+ static const symbol s_127[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
615
+ static const symbol s_128[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
616
+ static const symbol s_129[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
617
+ static const symbol s_130[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
618
+ static const symbol s_131[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x88 };
619
+ static const symbol s_132[] = { 0xE0, 0xAE, 0xB5, 0xE0, 0xAF, 0x88 };
620
+ static const symbol s_133[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
621
+ static const symbol s_134[] = { 0xE0, 0xAE, 0x9A };
622
+ static const symbol s_135[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB3, 0xE0, 0xAF, 0x8D };
623
+ static const symbol s_136[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
624
+ static const symbol s_137[] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
625
+ static const symbol s_138[] = { 0xE0, 0xAE, 0xBE };
626
+ static const symbol s_139[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
627
+ static const symbol s_140[] = { 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
628
+ static const symbol s_141[] = { 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
629
+ static const symbol s_142[] = { 0xE0, 0xAF, 0x8B, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
630
+ static const symbol s_143[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
631
+ static const symbol s_144[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
632
+ static const symbol s_145[] = { 0xE0, 0xAE, 0x9F, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
633
+ static const symbol s_146[] = { 0xE0, 0xAE, 0xB1, 0xE0, 0xAF, 0x81, 0xE0, 0xAE, 0xAE, 0xE0, 0xAF, 0x8D };
634
+ static const symbol s_147[] = { 0xE0, 0xAE, 0xBE, 0xE0, 0xAE, 0xAF, 0xE0, 0xAF, 0x8D };
635
+ static const symbol s_148[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xA9, 0xE0, 0xAF, 0x8D };
636
+ static const symbol s_149[] = { 0xE0, 0xAE, 0xA9, 0xE0, 0xAE, 0xBF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
637
+ static const symbol s_150[] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
638
+ static const symbol s_151[] = { 0xE0, 0xAF, 0x80, 0xE0, 0xAE, 0xAF, 0xE0, 0xAE, 0xB0, 0xE0, 0xAF, 0x8D };
639
+ static const symbol s_152[] = { 0xE0, 0xAF, 0x8D };
640
+ static const symbol s_153[] = { 0xE0, 0xAE, 0x95, 0xE0, 0xAF, 0x81 };
641
+ static const symbol s_154[] = { 0xE0, 0xAE, 0xA4, 0xE0, 0xAF, 0x81 };
642
+ static const symbol s_155[] = { 0xE0, 0xAF, 0x8D };
643
+
644
+ static int r_has_min_length(struct SN_env * z) {
645
+ if (!(len_utf8(z->p) > 4)) return 0;
646
+ return 1;
647
+ }
648
+
649
+ static int r_fix_va_start(struct SN_env * z) {
650
+ { int c1 = z->c;
651
+ { int c2 = z->c;
652
+ { int c3 = z->c;
653
+ if (!(eq_s(z, 6, s_0))) { z->c = c3; goto lab2; }
654
+ lab2:
655
+ ;
656
+ }
657
+ z->c = c2;
658
+ z->bra = z->c;
659
+ }
660
+ if (!(eq_s(z, 6, s_1))) goto lab1;
661
+ z->ket = z->c;
662
+ { int ret = slice_from_s(z, 3, s_2);
663
+ if (ret < 0) return ret;
664
+ }
665
+ goto lab0;
666
+ lab1:
667
+ z->c = c1;
668
+ { int c4 = z->c;
669
+ { int c5 = z->c;
670
+ if (!(eq_s(z, 6, s_3))) { z->c = c5; goto lab4; }
671
+ lab4:
672
+ ;
673
+ }
674
+ z->c = c4;
675
+ z->bra = z->c;
676
+ }
677
+ if (!(eq_s(z, 6, s_4))) goto lab3;
678
+ z->ket = z->c;
679
+ { int ret = slice_from_s(z, 3, s_5);
680
+ if (ret < 0) return ret;
681
+ }
682
+ goto lab0;
683
+ lab3:
684
+ z->c = c1;
685
+ { int c6 = z->c;
686
+ { int c7 = z->c;
687
+ if (!(eq_s(z, 6, s_6))) { z->c = c7; goto lab6; }
688
+ lab6:
689
+ ;
690
+ }
691
+ z->c = c6;
692
+ z->bra = z->c;
693
+ }
694
+ if (!(eq_s(z, 6, s_7))) goto lab5;
695
+ z->ket = z->c;
696
+ { int ret = slice_from_s(z, 3, s_8);
697
+ if (ret < 0) return ret;
698
+ }
699
+ goto lab0;
700
+ lab5:
701
+ z->c = c1;
702
+ { int c8 = z->c;
703
+ { int c9 = z->c;
704
+ if (!(eq_s(z, 6, s_9))) { z->c = c9; goto lab7; }
705
+ lab7:
706
+ ;
707
+ }
708
+ z->c = c8;
709
+ z->bra = z->c;
710
+ }
711
+ if (!(eq_s(z, 6, s_10))) return 0;
712
+ z->ket = z->c;
713
+ { int ret = slice_from_s(z, 3, s_11);
714
+ if (ret < 0) return ret;
715
+ }
716
+ }
717
+ lab0:
718
+ return 1;
719
+ }
720
+
721
+ static int r_fix_endings(struct SN_env * z) {
722
+ { int c1 = z->c;
723
+ while(1) {
724
+ int c2 = z->c;
725
+ { int ret = r_fix_ending(z);
726
+ if (ret == 0) goto lab1;
727
+ if (ret < 0) return ret;
728
+ }
729
+ continue;
730
+ lab1:
731
+ z->c = c2;
732
+ break;
733
+ }
734
+ z->c = c1;
735
+ }
736
+ return 1;
737
+ }
738
+
739
+ static int r_remove_question_prefixes(struct SN_env * z) {
740
+ z->bra = z->c;
741
+ if (!(eq_s(z, 3, s_12))) return 0;
742
+ if (!(find_among(z, a_0, 10))) return 0;
743
+ if (!(eq_s(z, 3, s_13))) return 0;
744
+ z->ket = z->c;
745
+ { int ret = slice_del(z);
746
+ if (ret < 0) return ret;
747
+ }
748
+ { int c1 = z->c;
749
+ { int ret = r_fix_va_start(z);
750
+ if (ret < 0) return ret;
751
+ }
752
+ z->c = c1;
753
+ }
754
+ return 1;
755
+ }
756
+
757
+ static int r_fix_ending(struct SN_env * z) {
758
+ if (!(len_utf8(z->p) > 3)) return 0;
759
+ z->lb = z->c; z->c = z->l;
760
+
761
+ { int m1 = z->l - z->c; (void)m1;
762
+ z->ket = z->c;
763
+ if (z->c - 5 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 164)) goto lab1;
764
+ if (!(find_among_b(z, a_1, 3))) goto lab1;
765
+ z->bra = z->c;
766
+ { int ret = slice_del(z);
767
+ if (ret < 0) return ret;
768
+ }
769
+ goto lab0;
770
+ lab1:
771
+ z->c = z->l - m1;
772
+ z->ket = z->c;
773
+ if (!(eq_s_b(z, 6, s_14))) goto lab2;
774
+ { int m_test2 = z->l - z->c;
775
+ if (!(find_among_b(z, a_2, 3))) goto lab2;
776
+ z->c = z->l - m_test2;
777
+ }
778
+ z->bra = z->c;
779
+ { int ret = slice_del(z);
780
+ if (ret < 0) return ret;
781
+ }
782
+ goto lab0;
783
+ lab2:
784
+ z->c = z->l - m1;
785
+ z->ket = z->c;
786
+ { int m3 = z->l - z->c; (void)m3;
787
+ if (!(eq_s_b(z, 12, s_15))) goto lab5;
788
+ goto lab4;
789
+ lab5:
790
+ z->c = z->l - m3;
791
+ if (!(eq_s_b(z, 12, s_16))) goto lab3;
792
+ }
793
+ lab4:
794
+ z->bra = z->c;
795
+ { int ret = slice_from_s(z, 6, s_17);
796
+ if (ret < 0) return ret;
797
+ }
798
+ goto lab0;
799
+ lab3:
800
+ z->c = z->l - m1;
801
+ z->ket = z->c;
802
+ if (!(eq_s_b(z, 12, s_18))) goto lab6;
803
+ z->bra = z->c;
804
+ { int ret = slice_from_s(z, 6, s_19);
805
+ if (ret < 0) return ret;
806
+ }
807
+ goto lab0;
808
+ lab6:
809
+ z->c = z->l - m1;
810
+ z->ket = z->c;
811
+ if (!(eq_s_b(z, 12, s_20))) goto lab7;
812
+ z->bra = z->c;
813
+ { int ret = slice_from_s(z, 6, s_21);
814
+ if (ret < 0) return ret;
815
+ }
816
+ goto lab0;
817
+ lab7:
818
+ z->c = z->l - m1;
819
+ z->ket = z->c;
820
+ if (!(eq_s_b(z, 12, s_22))) goto lab8;
821
+ z->bra = z->c;
822
+ { int ret = slice_from_s(z, 6, s_23);
823
+ if (ret < 0) return ret;
824
+ }
825
+ goto lab0;
826
+ lab8:
827
+ z->c = z->l - m1;
828
+ if (!(z->I[0])) goto lab9;
829
+ z->ket = z->c;
830
+ if (!(eq_s_b(z, 12, s_24))) goto lab9;
831
+ { int m_test4 = z->l - z->c;
832
+ { int m5 = z->l - z->c; (void)m5;
833
+ if (!(eq_s_b(z, 3, s_25))) goto lab10;
834
+ goto lab9;
835
+ lab10:
836
+ z->c = z->l - m5;
837
+ }
838
+ z->c = z->l - m_test4;
839
+ }
840
+ z->bra = z->c;
841
+ { int ret = slice_from_s(z, 6, s_26);
842
+ if (ret < 0) return ret;
843
+ }
844
+ z->bra = z->c;
845
+ goto lab0;
846
+ lab9:
847
+ z->c = z->l - m1;
848
+ z->ket = z->c;
849
+ { int m6 = z->l - z->c; (void)m6;
850
+ if (!(eq_s_b(z, 9, s_27))) goto lab13;
851
+ goto lab12;
852
+ lab13:
853
+ z->c = z->l - m6;
854
+ if (!(eq_s_b(z, 15, s_28))) goto lab11;
855
+ }
856
+ lab12:
857
+ z->bra = z->c;
858
+ { int ret = slice_from_s(z, 3, s_29);
859
+ if (ret < 0) return ret;
860
+ }
861
+ goto lab0;
862
+ lab11:
863
+ z->c = z->l - m1;
864
+ z->ket = z->c;
865
+ if (!(eq_s_b(z, 3, s_30))) goto lab14;
866
+ if (!(find_among_b(z, a_3, 6))) goto lab14;
867
+ if (!(eq_s_b(z, 3, s_31))) goto lab14;
868
+ if (!(find_among_b(z, a_4, 6))) goto lab14;
869
+ z->bra = z->c;
870
+ { int ret = slice_del(z);
871
+ if (ret < 0) return ret;
872
+ }
873
+ goto lab0;
874
+ lab14:
875
+ z->c = z->l - m1;
876
+ z->ket = z->c;
877
+ if (!(eq_s_b(z, 9, s_32))) goto lab15;
878
+ z->bra = z->c;
879
+ { int ret = slice_from_s(z, 3, s_33);
880
+ if (ret < 0) return ret;
881
+ }
882
+ goto lab0;
883
+ lab15:
884
+ z->c = z->l - m1;
885
+ z->ket = z->c;
886
+ if (!(eq_s_b(z, 3, s_34))) goto lab16;
887
+ if (!(find_among_b(z, a_5, 6))) goto lab16;
888
+ z->bra = z->c;
889
+ { int ret = slice_del(z);
890
+ if (ret < 0) return ret;
891
+ }
892
+ goto lab0;
893
+ lab16:
894
+ z->c = z->l - m1;
895
+ z->ket = z->c;
896
+ if (!(eq_s_b(z, 3, s_35))) goto lab17;
897
+ { int m7 = z->l - z->c; (void)m7;
898
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 5 || !((4030464 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab19;
899
+ if (!(find_among_b(z, a_6, 6))) goto lab19;
900
+ goto lab18;
901
+ lab19:
902
+ z->c = z->l - m7;
903
+ if (!(find_among_b(z, a_7, 6))) goto lab17;
904
+ }
905
+ lab18:
906
+ if (!(eq_s_b(z, 3, s_36))) goto lab17;
907
+ z->bra = z->c;
908
+ { int ret = slice_from_s(z, 3, s_37);
909
+ if (ret < 0) return ret;
910
+ }
911
+ goto lab0;
912
+ lab17:
913
+ z->c = z->l - m1;
914
+ z->ket = z->c;
915
+ if (!(find_among_b(z, a_8, 3))) goto lab20;
916
+ z->bra = z->c;
917
+ { int ret = slice_del(z);
918
+ if (ret < 0) return ret;
919
+ }
920
+ goto lab0;
921
+ lab20:
922
+ z->c = z->l - m1;
923
+ z->ket = z->c;
924
+ if (!(eq_s_b(z, 6, s_38))) goto lab21;
925
+ { int m_test8 = z->l - z->c;
926
+ { int m9 = z->l - z->c; (void)m9;
927
+ if (!(find_among_b(z, a_9, 8))) goto lab22;
928
+ goto lab21;
929
+ lab22:
930
+ z->c = z->l - m9;
931
+ }
932
+ z->c = z->l - m_test8;
933
+ }
934
+ z->bra = z->c;
935
+ { int ret = slice_del(z);
936
+ if (ret < 0) return ret;
937
+ }
938
+ goto lab0;
939
+ lab21:
940
+ z->c = z->l - m1;
941
+ z->ket = z->c;
942
+ if (!(eq_s_b(z, 6, s_39))) goto lab23;
943
+ { int m_test10 = z->l - z->c;
944
+ { int m11 = z->l - z->c; (void)m11;
945
+ if (!(eq_s_b(z, 3, s_40))) goto lab24;
946
+ goto lab23;
947
+ lab24:
948
+ z->c = z->l - m11;
949
+ }
950
+ z->c = z->l - m_test10;
951
+ }
952
+ z->bra = z->c;
953
+ { int ret = slice_from_s(z, 6, s_41);
954
+ if (ret < 0) return ret;
955
+ }
956
+ goto lab0;
957
+ lab23:
958
+ z->c = z->l - m1;
959
+ z->ket = z->c;
960
+ if (!(eq_s_b(z, 6, s_42))) goto lab25;
961
+ z->bra = z->c;
962
+ { int ret = slice_del(z);
963
+ if (ret < 0) return ret;
964
+ }
965
+ goto lab0;
966
+ lab25:
967
+ z->c = z->l - m1;
968
+ z->ket = z->c;
969
+ if (!(eq_s_b(z, 3, s_43))) return 0;
970
+ { int m_test12 = z->l - z->c;
971
+ { int m13 = z->l - z->c; (void)m13;
972
+ if (!(find_among_b(z, a_10, 8))) goto lab27;
973
+ goto lab26;
974
+ lab27:
975
+ z->c = z->l - m13;
976
+ if (!(eq_s_b(z, 3, s_44))) return 0;
977
+ }
978
+ lab26:
979
+ z->c = z->l - m_test12;
980
+ }
981
+ z->bra = z->c;
982
+ { int ret = slice_del(z);
983
+ if (ret < 0) return ret;
984
+ }
985
+ }
986
+ lab0:
987
+ z->c = z->lb;
988
+ return 1;
989
+ }
990
+
991
+ static int r_remove_pronoun_prefixes(struct SN_env * z) {
992
+ z->I[1] = 0;
993
+ z->bra = z->c;
994
+ if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 4 || !((672 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
995
+ if (!(find_among(z, a_11, 3))) return 0;
996
+ if (!(find_among(z, a_12, 10))) return 0;
997
+ if (!(eq_s(z, 3, s_45))) return 0;
998
+ z->ket = z->c;
999
+ { int ret = slice_del(z);
1000
+ if (ret < 0) return ret;
1001
+ }
1002
+ z->I[1] = 1;
1003
+ { int c1 = z->c;
1004
+ { int ret = r_fix_va_start(z);
1005
+ if (ret < 0) return ret;
1006
+ }
1007
+ z->c = c1;
1008
+ }
1009
+ return 1;
1010
+ }
1011
+
1012
+ static int r_remove_plural_suffix(struct SN_env * z) {
1013
+ z->I[1] = 0;
1014
+ z->lb = z->c; z->c = z->l;
1015
+
1016
+ { int m1 = z->l - z->c; (void)m1;
1017
+ z->ket = z->c;
1018
+ if (!(eq_s_b(z, 18, s_46))) goto lab1;
1019
+ { int m_test2 = z->l - z->c;
1020
+ { int m3 = z->l - z->c; (void)m3;
1021
+ if (!(find_among_b(z, a_13, 6))) goto lab2;
1022
+ goto lab1;
1023
+ lab2:
1024
+ z->c = z->l - m3;
1025
+ }
1026
+ z->c = z->l - m_test2;
1027
+ }
1028
+ z->bra = z->c;
1029
+ { int ret = slice_from_s(z, 3, s_47);
1030
+ if (ret < 0) return ret;
1031
+ }
1032
+ goto lab0;
1033
+ lab1:
1034
+ z->c = z->l - m1;
1035
+ z->ket = z->c;
1036
+ if (!(eq_s_b(z, 15, s_48))) goto lab3;
1037
+ z->bra = z->c;
1038
+ { int ret = slice_from_s(z, 6, s_49);
1039
+ if (ret < 0) return ret;
1040
+ }
1041
+ goto lab0;
1042
+ lab3:
1043
+ z->c = z->l - m1;
1044
+ z->ket = z->c;
1045
+ if (!(eq_s_b(z, 15, s_50))) goto lab4;
1046
+ z->bra = z->c;
1047
+ { int ret = slice_from_s(z, 6, s_51);
1048
+ if (ret < 0) return ret;
1049
+ }
1050
+ goto lab0;
1051
+ lab4:
1052
+ z->c = z->l - m1;
1053
+ z->ket = z->c;
1054
+ if (!(eq_s_b(z, 9, s_52))) return 0;
1055
+ z->bra = z->c;
1056
+ { int ret = slice_del(z);
1057
+ if (ret < 0) return ret;
1058
+ }
1059
+ }
1060
+ lab0:
1061
+ z->I[1] = 1;
1062
+ z->c = z->lb;
1063
+ return 1;
1064
+ }
1065
+
1066
+ static int r_remove_question_suffixes(struct SN_env * z) {
1067
+ { int ret = r_has_min_length(z);
1068
+ if (ret <= 0) return ret;
1069
+ }
1070
+ z->I[1] = 0;
1071
+ z->lb = z->c; z->c = z->l;
1072
+
1073
+ { int m1 = z->l - z->c; (void)m1;
1074
+ z->ket = z->c;
1075
+ if (!(find_among_b(z, a_14, 3))) goto lab0;
1076
+ z->bra = z->c;
1077
+ { int ret = slice_from_s(z, 3, s_53);
1078
+ if (ret < 0) return ret;
1079
+ }
1080
+ z->I[1] = 1;
1081
+ lab0:
1082
+ z->c = z->l - m1;
1083
+ }
1084
+ z->c = z->lb;
1085
+
1086
+ { int ret = r_fix_endings(z);
1087
+ if (ret < 0) return ret;
1088
+ }
1089
+ return 1;
1090
+ }
1091
+
1092
+ static int r_remove_command_suffixes(struct SN_env * z) {
1093
+ { int ret = r_has_min_length(z);
1094
+ if (ret <= 0) return ret;
1095
+ }
1096
+ z->I[1] = 0;
1097
+ z->lb = z->c; z->c = z->l;
1098
+
1099
+ z->ket = z->c;
1100
+ if (z->c - 5 <= z->lb || z->p[z->c - 1] != 191) return 0;
1101
+ if (!(find_among_b(z, a_15, 2))) return 0;
1102
+ z->bra = z->c;
1103
+ { int ret = slice_del(z);
1104
+ if (ret < 0) return ret;
1105
+ }
1106
+ z->I[1] = 1;
1107
+ z->c = z->lb;
1108
+ return 1;
1109
+ }
1110
+
1111
+ static int r_remove_um(struct SN_env * z) {
1112
+ z->I[1] = 0;
1113
+ { int ret = r_has_min_length(z);
1114
+ if (ret <= 0) return ret;
1115
+ }
1116
+ z->lb = z->c; z->c = z->l;
1117
+
1118
+ z->ket = z->c;
1119
+ if (!(eq_s_b(z, 9, s_54))) return 0;
1120
+ z->bra = z->c;
1121
+ { int ret = slice_from_s(z, 3, s_55);
1122
+ if (ret < 0) return ret;
1123
+ }
1124
+ z->I[1] = 1;
1125
+ z->c = z->lb;
1126
+ { int c1 = z->c;
1127
+ { int ret = r_fix_ending(z);
1128
+ if (ret < 0) return ret;
1129
+ }
1130
+ z->c = c1;
1131
+ }
1132
+ return 1;
1133
+ }
1134
+
1135
+ static int r_remove_common_word_endings(struct SN_env * z) {
1136
+ z->I[1] = 0;
1137
+ { int ret = r_has_min_length(z);
1138
+ if (ret <= 0) return ret;
1139
+ }
1140
+ z->lb = z->c; z->c = z->l;
1141
+
1142
+ { int m1 = z->l - z->c; (void)m1;
1143
+ { int m_test2 = z->l - z->c;
1144
+ z->ket = z->c;
1145
+ { int m3 = z->l - z->c; (void)m3;
1146
+ if (!(eq_s_b(z, 12, s_56))) goto lab3;
1147
+ goto lab2;
1148
+ lab3:
1149
+ z->c = z->l - m3;
1150
+ if (!(eq_s_b(z, 15, s_57))) goto lab4;
1151
+ goto lab2;
1152
+ lab4:
1153
+ z->c = z->l - m3;
1154
+ if (!(eq_s_b(z, 12, s_58))) goto lab5;
1155
+ goto lab2;
1156
+ lab5:
1157
+ z->c = z->l - m3;
1158
+ if (!(eq_s_b(z, 15, s_59))) goto lab6;
1159
+ goto lab2;
1160
+ lab6:
1161
+ z->c = z->l - m3;
1162
+ if (!(eq_s_b(z, 9, s_60))) goto lab7;
1163
+ goto lab2;
1164
+ lab7:
1165
+ z->c = z->l - m3;
1166
+ if (!(eq_s_b(z, 12, s_61))) goto lab8;
1167
+ goto lab2;
1168
+ lab8:
1169
+ z->c = z->l - m3;
1170
+ if (!(eq_s_b(z, 15, s_62))) goto lab9;
1171
+ goto lab2;
1172
+ lab9:
1173
+ z->c = z->l - m3;
1174
+ if (!(eq_s_b(z, 12, s_63))) goto lab10;
1175
+ goto lab2;
1176
+ lab10:
1177
+ z->c = z->l - m3;
1178
+ if (!(eq_s_b(z, 12, s_64))) goto lab11;
1179
+ goto lab2;
1180
+ lab11:
1181
+ z->c = z->l - m3;
1182
+ if (!(eq_s_b(z, 9, s_65))) goto lab12;
1183
+ goto lab2;
1184
+ lab12:
1185
+ z->c = z->l - m3;
1186
+ if (!(eq_s_b(z, 15, s_66))) goto lab13;
1187
+ goto lab2;
1188
+ lab13:
1189
+ z->c = z->l - m3;
1190
+ if (!(eq_s_b(z, 9, s_67))) goto lab14;
1191
+ { int m_test4 = z->l - z->c;
1192
+ { int m5 = z->l - z->c; (void)m5;
1193
+ if (!(find_among_b(z, a_16, 8))) goto lab15;
1194
+ goto lab14;
1195
+ lab15:
1196
+ z->c = z->l - m5;
1197
+ }
1198
+ z->c = z->l - m_test4;
1199
+ }
1200
+ goto lab2;
1201
+ lab14:
1202
+ z->c = z->l - m3;
1203
+ if (!(eq_s_b(z, 6, s_68))) goto lab16;
1204
+ goto lab2;
1205
+ lab16:
1206
+ z->c = z->l - m3;
1207
+ if (!(eq_s_b(z, 9, s_69))) goto lab1;
1208
+ }
1209
+ lab2:
1210
+ z->bra = z->c;
1211
+ { int ret = slice_from_s(z, 3, s_70);
1212
+ if (ret < 0) return ret;
1213
+ }
1214
+ z->I[1] = 1;
1215
+ z->c = z->l - m_test2;
1216
+ }
1217
+ goto lab0;
1218
+ lab1:
1219
+ z->c = z->l - m1;
1220
+ { int m_test6 = z->l - z->c;
1221
+ z->ket = z->c;
1222
+ if (!(find_among_b(z, a_17, 13))) return 0;
1223
+ z->bra = z->c;
1224
+ { int ret = slice_del(z);
1225
+ if (ret < 0) return ret;
1226
+ }
1227
+ z->I[1] = 1;
1228
+ z->c = z->l - m_test6;
1229
+ }
1230
+ }
1231
+ lab0:
1232
+ z->c = z->lb;
1233
+
1234
+ { int ret = r_fix_endings(z);
1235
+ if (ret < 0) return ret;
1236
+ }
1237
+ return 1;
1238
+ }
1239
+
1240
+ static int r_remove_vetrumai_urupukal(struct SN_env * z) {
1241
+ z->I[1] = 0;
1242
+ z->I[0] = 0;
1243
+ { int ret = r_has_min_length(z);
1244
+ if (ret <= 0) return ret;
1245
+ }
1246
+ z->lb = z->c; z->c = z->l;
1247
+
1248
+ { int m1 = z->l - z->c; (void)m1;
1249
+ { int m_test2 = z->l - z->c;
1250
+ z->ket = z->c;
1251
+ if (!(eq_s_b(z, 6, s_71))) goto lab1;
1252
+ z->bra = z->c;
1253
+ { int ret = slice_del(z);
1254
+ if (ret < 0) return ret;
1255
+ }
1256
+ z->c = z->l - m_test2;
1257
+ }
1258
+ goto lab0;
1259
+ lab1:
1260
+ z->c = z->l - m1;
1261
+ { int m_test3 = z->l - z->c;
1262
+ z->ket = z->c;
1263
+ { int m4 = z->l - z->c; (void)m4;
1264
+ { int m5 = z->l - z->c; (void)m5;
1265
+ if (!(eq_s_b(z, 9, s_72))) goto lab6;
1266
+ goto lab5;
1267
+ lab6:
1268
+ z->c = z->l - m5;
1269
+ if (!(eq_s_b(z, 3, s_73))) goto lab4;
1270
+ }
1271
+ lab5:
1272
+ { int m_test6 = z->l - z->c;
1273
+ { int m7 = z->l - z->c; (void)m7;
1274
+ if (!(find_among_b(z, a_18, 6))) goto lab7;
1275
+ goto lab4;
1276
+ lab7:
1277
+ z->c = z->l - m7;
1278
+ }
1279
+ z->c = z->l - m_test6;
1280
+ }
1281
+ goto lab3;
1282
+ lab4:
1283
+ z->c = z->l - m4;
1284
+ if (!(eq_s_b(z, 3, s_74))) goto lab2;
1285
+ { int m_test8 = z->l - z->c;
1286
+ if (!(find_among_b(z, a_19, 6))) goto lab2;
1287
+ if (!(eq_s_b(z, 3, s_75))) goto lab2;
1288
+ z->c = z->l - m_test8;
1289
+ }
1290
+ }
1291
+ lab3:
1292
+ z->bra = z->c;
1293
+ { int ret = slice_from_s(z, 3, s_76);
1294
+ if (ret < 0) return ret;
1295
+ }
1296
+ z->c = z->l - m_test3;
1297
+ }
1298
+ goto lab0;
1299
+ lab2:
1300
+ z->c = z->l - m1;
1301
+ { int m_test9 = z->l - z->c;
1302
+ z->ket = z->c;
1303
+ { int m10 = z->l - z->c; (void)m10;
1304
+ if (!(eq_s_b(z, 9, s_77))) goto lab10;
1305
+ goto lab9;
1306
+ lab10:
1307
+ z->c = z->l - m10;
1308
+ if (!(eq_s_b(z, 9, s_78))) goto lab11;
1309
+ goto lab9;
1310
+ lab11:
1311
+ z->c = z->l - m10;
1312
+ if (!(eq_s_b(z, 9, s_79))) goto lab12;
1313
+ goto lab9;
1314
+ lab12:
1315
+ z->c = z->l - m10;
1316
+ if (!(eq_s_b(z, 9, s_80))) goto lab13;
1317
+ goto lab9;
1318
+ lab13:
1319
+ z->c = z->l - m10;
1320
+ if (!(eq_s_b(z, 9, s_81))) goto lab14;
1321
+ { int m_test11 = z->l - z->c;
1322
+ { int m12 = z->l - z->c; (void)m12;
1323
+ if (!(eq_s_b(z, 3, s_82))) goto lab15;
1324
+ goto lab14;
1325
+ lab15:
1326
+ z->c = z->l - m12;
1327
+ }
1328
+ z->c = z->l - m_test11;
1329
+ }
1330
+ goto lab9;
1331
+ lab14:
1332
+ z->c = z->l - m10;
1333
+ if (!(eq_s_b(z, 15, s_83))) goto lab16;
1334
+ goto lab9;
1335
+ lab16:
1336
+ z->c = z->l - m10;
1337
+ if (!(eq_s_b(z, 21, s_84))) goto lab17;
1338
+ goto lab9;
1339
+ lab17:
1340
+ z->c = z->l - m10;
1341
+ if (!(eq_s_b(z, 9, s_85))) goto lab18;
1342
+ goto lab9;
1343
+ lab18:
1344
+ z->c = z->l - m10;
1345
+ if (!(len_utf8(z->p) >= 7)) goto lab19;
1346
+ if (!(eq_s_b(z, 12, s_86))) goto lab19;
1347
+ goto lab9;
1348
+ lab19:
1349
+ z->c = z->l - m10;
1350
+ if (!(eq_s_b(z, 9, s_87))) goto lab20;
1351
+ goto lab9;
1352
+ lab20:
1353
+ z->c = z->l - m10;
1354
+ if (!(eq_s_b(z, 9, s_88))) goto lab21;
1355
+ goto lab9;
1356
+ lab21:
1357
+ z->c = z->l - m10;
1358
+ if (!(eq_s_b(z, 12, s_89))) goto lab22;
1359
+ goto lab9;
1360
+ lab22:
1361
+ z->c = z->l - m10;
1362
+ if (!(eq_s_b(z, 6, s_90))) goto lab23;
1363
+ { int m_test13 = z->l - z->c;
1364
+ { int m14 = z->l - z->c; (void)m14;
1365
+ if (!(find_among_b(z, a_20, 8))) goto lab24;
1366
+ goto lab23;
1367
+ lab24:
1368
+ z->c = z->l - m14;
1369
+ }
1370
+ z->c = z->l - m_test13;
1371
+ }
1372
+ goto lab9;
1373
+ lab23:
1374
+ z->c = z->l - m10;
1375
+ if (!(eq_s_b(z, 9, s_91))) goto lab8;
1376
+ }
1377
+ lab9:
1378
+ z->bra = z->c;
1379
+ { int ret = slice_from_s(z, 3, s_92);
1380
+ if (ret < 0) return ret;
1381
+ }
1382
+ z->c = z->l - m_test9;
1383
+ }
1384
+ goto lab0;
1385
+ lab8:
1386
+ z->c = z->l - m1;
1387
+ { int m_test15 = z->l - z->c;
1388
+ z->ket = z->c;
1389
+ { int m16 = z->l - z->c; (void)m16;
1390
+ if (!(eq_s_b(z, 9, s_93))) goto lab27;
1391
+ goto lab26;
1392
+ lab27:
1393
+ z->c = z->l - m16;
1394
+ if (!(eq_s_b(z, 12, s_94))) goto lab28;
1395
+ goto lab26;
1396
+ lab28:
1397
+ z->c = z->l - m16;
1398
+ if (!(eq_s_b(z, 12, s_95))) goto lab29;
1399
+ goto lab26;
1400
+ lab29:
1401
+ z->c = z->l - m16;
1402
+ if (!(eq_s_b(z, 12, s_96))) goto lab30;
1403
+ goto lab26;
1404
+ lab30:
1405
+ z->c = z->l - m16;
1406
+ if (!(eq_s_b(z, 12, s_97))) goto lab31;
1407
+ goto lab26;
1408
+ lab31:
1409
+ z->c = z->l - m16;
1410
+ if (!(eq_s_b(z, 12, s_98))) goto lab32;
1411
+ goto lab26;
1412
+ lab32:
1413
+ z->c = z->l - m16;
1414
+ if (!(eq_s_b(z, 6, s_99))) goto lab25;
1415
+ { int m_test17 = z->l - z->c;
1416
+ { int m18 = z->l - z->c; (void)m18;
1417
+ if (!(find_among_b(z, a_21, 8))) goto lab33;
1418
+ goto lab25;
1419
+ lab33:
1420
+ z->c = z->l - m18;
1421
+ }
1422
+ z->c = z->l - m_test17;
1423
+ }
1424
+ }
1425
+ lab26:
1426
+ z->bra = z->c;
1427
+ { int ret = slice_del(z);
1428
+ if (ret < 0) return ret;
1429
+ }
1430
+ z->c = z->l - m_test15;
1431
+ }
1432
+ goto lab0;
1433
+ lab25:
1434
+ z->c = z->l - m1;
1435
+ { int m_test19 = z->l - z->c;
1436
+ z->ket = z->c;
1437
+ if (!(eq_s_b(z, 3, s_100))) return 0;
1438
+ z->bra = z->c;
1439
+ { int ret = slice_from_s(z, 3, s_101);
1440
+ if (ret < 0) return ret;
1441
+ }
1442
+ z->c = z->l - m_test19;
1443
+ }
1444
+ }
1445
+ lab0:
1446
+ z->I[1] = 1;
1447
+ z->I[0] = 1;
1448
+ { int m20 = z->l - z->c; (void)m20;
1449
+ z->ket = z->c;
1450
+ if (!(eq_s_b(z, 9, s_102))) goto lab34;
1451
+ z->bra = z->c;
1452
+ { int ret = slice_from_s(z, 3, s_103);
1453
+ if (ret < 0) return ret;
1454
+ }
1455
+ lab34:
1456
+ z->c = z->l - m20;
1457
+ }
1458
+ z->c = z->lb;
1459
+
1460
+ { int ret = r_fix_endings(z);
1461
+ if (ret < 0) return ret;
1462
+ }
1463
+ return 1;
1464
+ }
1465
+
1466
+ static int r_remove_tense_suffixes(struct SN_env * z) {
1467
+ z->I[1] = 1;
1468
+ while(1) {
1469
+ int c1 = z->c;
1470
+ if (!(z->I[1])) goto lab0;
1471
+ { int c2 = z->c;
1472
+ { int ret = r_remove_tense_suffix(z);
1473
+ if (ret < 0) return ret;
1474
+ }
1475
+ z->c = c2;
1476
+ }
1477
+ continue;
1478
+ lab0:
1479
+ z->c = c1;
1480
+ break;
1481
+ }
1482
+ return 1;
1483
+ }
1484
+
1485
+ static int r_remove_tense_suffix(struct SN_env * z) {
1486
+ z->I[1] = 0;
1487
+ { int ret = r_has_min_length(z);
1488
+ if (ret <= 0) return ret;
1489
+ }
1490
+ z->lb = z->c; z->c = z->l;
1491
+
1492
+ { int m1 = z->l - z->c; (void)m1;
1493
+ { int m2 = z->l - z->c; (void)m2;
1494
+ { int m_test3 = z->l - z->c;
1495
+ z->ket = z->c;
1496
+ if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 129 && z->p[z->c - 1] != 141)) goto lab2;
1497
+ if (!(find_among_b(z, a_22, 2))) goto lab2;
1498
+ z->bra = z->c;
1499
+ { int ret = slice_del(z);
1500
+ if (ret < 0) return ret;
1501
+ }
1502
+ z->I[1] = 1;
1503
+ z->c = z->l - m_test3;
1504
+ }
1505
+ goto lab1;
1506
+ lab2:
1507
+ z->c = z->l - m2;
1508
+ { int m_test4 = z->l - z->c;
1509
+ z->ket = z->c;
1510
+ { int m5 = z->l - z->c; (void)m5;
1511
+ if (!(eq_s_b(z, 12, s_104))) goto lab5;
1512
+ goto lab4;
1513
+ lab5:
1514
+ z->c = z->l - m5;
1515
+ if (!(eq_s_b(z, 12, s_105))) goto lab6;
1516
+ goto lab4;
1517
+ lab6:
1518
+ z->c = z->l - m5;
1519
+ if (!(eq_s_b(z, 9, s_106))) goto lab7;
1520
+ goto lab4;
1521
+ lab7:
1522
+ z->c = z->l - m5;
1523
+ if (!(eq_s_b(z, 12, s_107))) goto lab8;
1524
+ goto lab4;
1525
+ lab8:
1526
+ z->c = z->l - m5;
1527
+ if (!(eq_s_b(z, 12, s_108))) goto lab9;
1528
+ goto lab4;
1529
+ lab9:
1530
+ z->c = z->l - m5;
1531
+ if (!(eq_s_b(z, 12, s_109))) goto lab10;
1532
+ goto lab4;
1533
+ lab10:
1534
+ z->c = z->l - m5;
1535
+ if (!(eq_s_b(z, 9, s_110))) goto lab11;
1536
+ { int m_test6 = z->l - z->c;
1537
+ { int m7 = z->l - z->c; (void)m7;
1538
+ if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 4 || !((1951712 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab12;
1539
+ if (!(find_among_b(z, a_23, 12))) goto lab12;
1540
+ goto lab11;
1541
+ lab12:
1542
+ z->c = z->l - m7;
1543
+ }
1544
+ z->c = z->l - m_test6;
1545
+ }
1546
+ goto lab4;
1547
+ lab11:
1548
+ z->c = z->l - m5;
1549
+ if (!(eq_s_b(z, 9, s_111))) goto lab13;
1550
+ goto lab4;
1551
+ lab13:
1552
+ z->c = z->l - m5;
1553
+ if (!(eq_s_b(z, 9, s_112))) goto lab14;
1554
+ goto lab4;
1555
+ lab14:
1556
+ z->c = z->l - m5;
1557
+ if (!(eq_s_b(z, 9, s_113))) goto lab15;
1558
+ goto lab4;
1559
+ lab15:
1560
+ z->c = z->l - m5;
1561
+ if (!(eq_s_b(z, 9, s_114))) goto lab16;
1562
+ goto lab4;
1563
+ lab16:
1564
+ z->c = z->l - m5;
1565
+ if (!(eq_s_b(z, 3, s_115))) goto lab17;
1566
+ goto lab4;
1567
+ lab17:
1568
+ z->c = z->l - m5;
1569
+ if (!(eq_s_b(z, 3, s_116))) goto lab18;
1570
+ goto lab4;
1571
+ lab18:
1572
+ z->c = z->l - m5;
1573
+ if (!(eq_s_b(z, 3, s_117))) goto lab19;
1574
+ goto lab4;
1575
+ lab19:
1576
+ z->c = z->l - m5;
1577
+ if (!(eq_s_b(z, 3, s_118))) goto lab20;
1578
+ goto lab4;
1579
+ lab20:
1580
+ z->c = z->l - m5;
1581
+ if (!(eq_s_b(z, 3, s_119))) goto lab21;
1582
+ goto lab4;
1583
+ lab21:
1584
+ z->c = z->l - m5;
1585
+ if (!(eq_s_b(z, 9, s_120))) goto lab22;
1586
+ goto lab4;
1587
+ lab22:
1588
+ z->c = z->l - m5;
1589
+ if (!(eq_s_b(z, 9, s_121))) goto lab23;
1590
+ goto lab4;
1591
+ lab23:
1592
+ z->c = z->l - m5;
1593
+ if (!(eq_s_b(z, 9, s_122))) goto lab24;
1594
+ goto lab4;
1595
+ lab24:
1596
+ z->c = z->l - m5;
1597
+ if (!(eq_s_b(z, 6, s_123))) goto lab25;
1598
+ { int m_test8 = z->l - z->c;
1599
+ { int m9 = z->l - z->c; (void)m9;
1600
+ if (!(find_among_b(z, a_24, 8))) goto lab26;
1601
+ goto lab25;
1602
+ lab26:
1603
+ z->c = z->l - m9;
1604
+ }
1605
+ z->c = z->l - m_test8;
1606
+ }
1607
+ goto lab4;
1608
+ lab25:
1609
+ z->c = z->l - m5;
1610
+ if (!(eq_s_b(z, 15, s_124))) goto lab27;
1611
+ goto lab4;
1612
+ lab27:
1613
+ z->c = z->l - m5;
1614
+ if (!(eq_s_b(z, 9, s_125))) goto lab28;
1615
+ goto lab4;
1616
+ lab28:
1617
+ z->c = z->l - m5;
1618
+ if (!(eq_s_b(z, 9, s_126))) goto lab29;
1619
+ goto lab4;
1620
+ lab29:
1621
+ z->c = z->l - m5;
1622
+ if (!(eq_s_b(z, 12, s_127))) goto lab30;
1623
+ goto lab4;
1624
+ lab30:
1625
+ z->c = z->l - m5;
1626
+ if (!(eq_s_b(z, 12, s_128))) goto lab31;
1627
+ goto lab4;
1628
+ lab31:
1629
+ z->c = z->l - m5;
1630
+ if (!(eq_s_b(z, 12, s_129))) goto lab32;
1631
+ goto lab4;
1632
+ lab32:
1633
+ z->c = z->l - m5;
1634
+ if (!(eq_s_b(z, 12, s_130))) goto lab33;
1635
+ goto lab4;
1636
+ lab33:
1637
+ z->c = z->l - m5;
1638
+ if (!(eq_s_b(z, 6, s_131))) goto lab34;
1639
+ goto lab4;
1640
+ lab34:
1641
+ z->c = z->l - m5;
1642
+ if (!(eq_s_b(z, 6, s_132))) goto lab3;
1643
+ }
1644
+ lab4:
1645
+ z->bra = z->c;
1646
+ { int ret = slice_del(z);
1647
+ if (ret < 0) return ret;
1648
+ }
1649
+ z->I[1] = 1;
1650
+ z->c = z->l - m_test4;
1651
+ }
1652
+ goto lab1;
1653
+ lab3:
1654
+ z->c = z->l - m2;
1655
+ { int m_test10 = z->l - z->c;
1656
+ z->ket = z->c;
1657
+ { int m11 = z->l - z->c; (void)m11;
1658
+ if (!(eq_s_b(z, 9, s_133))) goto lab37;
1659
+ { int m_test12 = z->l - z->c;
1660
+ { int m13 = z->l - z->c; (void)m13;
1661
+ if (!(eq_s_b(z, 3, s_134))) goto lab38;
1662
+ goto lab37;
1663
+ lab38:
1664
+ z->c = z->l - m13;
1665
+ }
1666
+ z->c = z->l - m_test12;
1667
+ }
1668
+ goto lab36;
1669
+ lab37:
1670
+ z->c = z->l - m11;
1671
+ if (!(eq_s_b(z, 9, s_135))) goto lab39;
1672
+ goto lab36;
1673
+ lab39:
1674
+ z->c = z->l - m11;
1675
+ if (!(eq_s_b(z, 9, s_136))) goto lab40;
1676
+ goto lab36;
1677
+ lab40:
1678
+ z->c = z->l - m11;
1679
+ if (!(eq_s_b(z, 9, s_137))) goto lab41;
1680
+ goto lab36;
1681
+ lab41:
1682
+ z->c = z->l - m11;
1683
+ if (!(eq_s_b(z, 3, s_138))) goto lab42;
1684
+ goto lab36;
1685
+ lab42:
1686
+ z->c = z->l - m11;
1687
+ if (!(eq_s_b(z, 9, s_139))) goto lab43;
1688
+ goto lab36;
1689
+ lab43:
1690
+ z->c = z->l - m11;
1691
+ if (!(eq_s_b(z, 9, s_140))) goto lab44;
1692
+ goto lab36;
1693
+ lab44:
1694
+ z->c = z->l - m11;
1695
+ if (!(eq_s_b(z, 9, s_141))) goto lab45;
1696
+ goto lab36;
1697
+ lab45:
1698
+ z->c = z->l - m11;
1699
+ if (!(eq_s_b(z, 9, s_142))) goto lab46;
1700
+ goto lab36;
1701
+ lab46:
1702
+ z->c = z->l - m11;
1703
+ if (!(eq_s_b(z, 12, s_143))) goto lab47;
1704
+ goto lab36;
1705
+ lab47:
1706
+ z->c = z->l - m11;
1707
+ if (!(eq_s_b(z, 12, s_144))) goto lab48;
1708
+ goto lab36;
1709
+ lab48:
1710
+ z->c = z->l - m11;
1711
+ if (!(eq_s_b(z, 12, s_145))) goto lab49;
1712
+ goto lab36;
1713
+ lab49:
1714
+ z->c = z->l - m11;
1715
+ if (!(eq_s_b(z, 12, s_146))) goto lab50;
1716
+ goto lab36;
1717
+ lab50:
1718
+ z->c = z->l - m11;
1719
+ if (!(eq_s_b(z, 9, s_147))) goto lab51;
1720
+ goto lab36;
1721
+ lab51:
1722
+ z->c = z->l - m11;
1723
+ if (!(eq_s_b(z, 12, s_148))) goto lab52;
1724
+ goto lab36;
1725
+ lab52:
1726
+ z->c = z->l - m11;
1727
+ if (!(eq_s_b(z, 12, s_149))) goto lab53;
1728
+ goto lab36;
1729
+ lab53:
1730
+ z->c = z->l - m11;
1731
+ if (!(eq_s_b(z, 9, s_150))) goto lab54;
1732
+ goto lab36;
1733
+ lab54:
1734
+ z->c = z->l - m11;
1735
+ if (!(eq_s_b(z, 12, s_151))) goto lab35;
1736
+ }
1737
+ lab36:
1738
+ z->bra = z->c;
1739
+ { int ret = slice_from_s(z, 3, s_152);
1740
+ if (ret < 0) return ret;
1741
+ }
1742
+ z->I[1] = 1;
1743
+ z->c = z->l - m_test10;
1744
+ }
1745
+ goto lab1;
1746
+ lab35:
1747
+ z->c = z->l - m2;
1748
+ { int m_test14 = z->l - z->c;
1749
+ z->ket = z->c;
1750
+ { int m15 = z->l - z->c; (void)m15;
1751
+ if (!(eq_s_b(z, 6, s_153))) goto lab56;
1752
+ goto lab55;
1753
+ lab56:
1754
+ z->c = z->l - m15;
1755
+ if (!(eq_s_b(z, 6, s_154))) goto lab0;
1756
+ }
1757
+ lab55:
1758
+ { int m_test16 = z->l - z->c;
1759
+ if (!(eq_s_b(z, 3, s_155))) goto lab0;
1760
+ z->c = z->l - m_test16;
1761
+ }
1762
+ z->bra = z->c;
1763
+ { int ret = slice_del(z);
1764
+ if (ret < 0) return ret;
1765
+ }
1766
+ z->I[1] = 1;
1767
+ z->c = z->l - m_test14;
1768
+ }
1769
+ }
1770
+ lab1:
1771
+ lab0:
1772
+ z->c = z->l - m1;
1773
+ }
1774
+ { int m17 = z->l - z->c; (void)m17;
1775
+ z->ket = z->c;
1776
+ if (z->c - 8 <= z->lb || (z->p[z->c - 1] != 141 && z->p[z->c - 1] != 177)) goto lab57;
1777
+ if (!(find_among_b(z, a_25, 6))) goto lab57;
1778
+ z->bra = z->c;
1779
+ { int ret = slice_del(z);
1780
+ if (ret < 0) return ret;
1781
+ }
1782
+ z->I[1] = 1;
1783
+ lab57:
1784
+ z->c = z->l - m17;
1785
+ }
1786
+ z->c = z->lb;
1787
+
1788
+ { int ret = r_fix_endings(z);
1789
+ if (ret < 0) return ret;
1790
+ }
1791
+ return 1;
1792
+ }
1793
+
1794
+ extern int tamil_UTF_8_stem(struct SN_env * z) {
1795
+ z->I[0] = 0;
1796
+ { int c1 = z->c;
1797
+ { int ret = r_fix_ending(z);
1798
+ if (ret < 0) return ret;
1799
+ }
1800
+ z->c = c1;
1801
+ }
1802
+ { int ret = r_has_min_length(z);
1803
+ if (ret <= 0) return ret;
1804
+ }
1805
+ { int c2 = z->c;
1806
+ { int ret = r_remove_question_prefixes(z);
1807
+ if (ret < 0) return ret;
1808
+ }
1809
+ z->c = c2;
1810
+ }
1811
+ { int c3 = z->c;
1812
+ { int ret = r_remove_pronoun_prefixes(z);
1813
+ if (ret < 0) return ret;
1814
+ }
1815
+ z->c = c3;
1816
+ }
1817
+ { int c4 = z->c;
1818
+ { int ret = r_remove_question_suffixes(z);
1819
+ if (ret < 0) return ret;
1820
+ }
1821
+ z->c = c4;
1822
+ }
1823
+ { int c5 = z->c;
1824
+ { int ret = r_remove_um(z);
1825
+ if (ret < 0) return ret;
1826
+ }
1827
+ z->c = c5;
1828
+ }
1829
+ { int c6 = z->c;
1830
+ { int ret = r_remove_common_word_endings(z);
1831
+ if (ret < 0) return ret;
1832
+ }
1833
+ z->c = c6;
1834
+ }
1835
+ { int c7 = z->c;
1836
+ { int ret = r_remove_vetrumai_urupukal(z);
1837
+ if (ret < 0) return ret;
1838
+ }
1839
+ z->c = c7;
1840
+ }
1841
+ { int c8 = z->c;
1842
+ { int ret = r_remove_plural_suffix(z);
1843
+ if (ret < 0) return ret;
1844
+ }
1845
+ z->c = c8;
1846
+ }
1847
+ { int c9 = z->c;
1848
+ { int ret = r_remove_command_suffixes(z);
1849
+ if (ret < 0) return ret;
1850
+ }
1851
+ z->c = c9;
1852
+ }
1853
+ { int c10 = z->c;
1854
+ { int ret = r_remove_tense_suffixes(z);
1855
+ if (ret < 0) return ret;
1856
+ }
1857
+ z->c = c10;
1858
+ }
1859
+ return 1;
1860
+ }
1861
+
1862
+ extern struct SN_env * tamil_UTF_8_create_env(void) { return SN_create_env(0, 2); }
1863
+
1864
+ extern void tamil_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
1865
+