isomorfeus-ferret 0.12.4 → 0.12.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +612 -612
  3. data/README.md +80 -48
  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_store.c +34 -5
  7. data/ext/isomorfeus_ferret_ext/frt_posh.h +11 -19
  8. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +1844 -1911
  9. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +7 -7
  10. data/ext/isomorfeus_ferret_ext/frt_scanner.c +1 -0
  11. data/ext/isomorfeus_ferret_ext/frt_scanner_mb.c +1 -0
  12. data/ext/isomorfeus_ferret_ext/frt_scanner_utf8.c +1 -0
  13. data/ext/isomorfeus_ferret_ext/frt_search.h +1 -1
  14. data/ext/isomorfeus_ferret_ext/libstemmer.c +14 -11
  15. data/ext/isomorfeus_ferret_ext/libstemmer.h +4 -9
  16. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.c +1167 -0
  17. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.h +6 -0
  18. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.c +1433 -0
  19. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.h +6 -0
  20. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.c +120 -143
  21. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.h +1 -2
  22. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.c +217 -237
  23. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.h +1 -1
  24. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.c +377 -432
  25. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.h +1 -1
  26. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.c +298 -342
  27. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.h +1 -2
  28. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.c +530 -524
  29. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.h +1 -1
  30. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.c +201 -214
  31. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.h +1 -1
  32. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_hungarian.c +1 -1
  33. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.c +394 -0
  34. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.h +6 -0
  35. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.c +457 -0
  36. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.h +6 -0
  37. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.c +396 -439
  38. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.h +1 -1
  39. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.c +104 -128
  40. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.h +1 -1
  41. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.c +242 -273
  42. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.h +1 -1
  43. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.c +406 -461
  44. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.h +1 -2
  45. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.c +405 -456
  46. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.h +1 -1
  47. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.c +108 -126
  48. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.h +1 -1
  49. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.c +849 -0
  50. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.h +6 -0
  51. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.c +373 -405
  52. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.h +1 -1
  53. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.c +288 -305
  54. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.h +1 -1
  55. data/ext/isomorfeus_ferret_ext/stem_UTF_8_arabic.c +1651 -0
  56. data/ext/isomorfeus_ferret_ext/stem_UTF_8_arabic.h +6 -0
  57. data/ext/isomorfeus_ferret_ext/stem_UTF_8_armenian.c +546 -0
  58. data/ext/isomorfeus_ferret_ext/stem_UTF_8_armenian.h +6 -0
  59. data/ext/isomorfeus_ferret_ext/stem_UTF_8_basque.c +1171 -0
  60. data/ext/isomorfeus_ferret_ext/stem_UTF_8_basque.h +6 -0
  61. data/ext/isomorfeus_ferret_ext/stem_UTF_8_catalan.c +1436 -0
  62. data/ext/isomorfeus_ferret_ext/stem_UTF_8_catalan.h +6 -0
  63. data/ext/isomorfeus_ferret_ext/stem_UTF_8_danish.c +121 -141
  64. data/ext/isomorfeus_ferret_ext/stem_UTF_8_danish.h +1 -1
  65. data/ext/isomorfeus_ferret_ext/stem_UTF_8_dutch.c +221 -241
  66. data/ext/isomorfeus_ferret_ext/stem_UTF_8_dutch.h +1 -1
  67. data/ext/isomorfeus_ferret_ext/stem_UTF_8_english.c +381 -431
  68. data/ext/isomorfeus_ferret_ext/stem_UTF_8_english.h +1 -1
  69. data/ext/isomorfeus_ferret_ext/stem_UTF_8_finnish.c +300 -345
  70. data/ext/isomorfeus_ferret_ext/stem_UTF_8_finnish.h +1 -1
  71. data/ext/isomorfeus_ferret_ext/stem_UTF_8_french.c +518 -511
  72. data/ext/isomorfeus_ferret_ext/stem_UTF_8_french.h +1 -1
  73. data/ext/isomorfeus_ferret_ext/stem_UTF_8_german.c +201 -209
  74. data/ext/isomorfeus_ferret_ext/stem_UTF_8_german.h +1 -1
  75. data/ext/isomorfeus_ferret_ext/stem_UTF_8_greek.c +3660 -0
  76. data/ext/isomorfeus_ferret_ext/stem_UTF_8_greek.h +6 -0
  77. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hindi.c +309 -0
  78. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hindi.h +6 -0
  79. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hungarian.c +306 -671
  80. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hungarian.h +1 -1
  81. data/ext/isomorfeus_ferret_ext/stem_UTF_8_indonesian.c +394 -0
  82. data/ext/isomorfeus_ferret_ext/stem_UTF_8_indonesian.h +6 -0
  83. data/ext/isomorfeus_ferret_ext/stem_UTF_8_irish.c +457 -0
  84. data/ext/isomorfeus_ferret_ext/stem_UTF_8_irish.h +6 -0
  85. data/ext/isomorfeus_ferret_ext/stem_UTF_8_italian.c +400 -442
  86. data/ext/isomorfeus_ferret_ext/stem_UTF_8_italian.h +1 -1
  87. data/ext/isomorfeus_ferret_ext/stem_UTF_8_lithuanian.c +824 -0
  88. data/ext/isomorfeus_ferret_ext/stem_UTF_8_lithuanian.h +6 -0
  89. data/ext/isomorfeus_ferret_ext/stem_UTF_8_nepali.c +408 -0
  90. data/ext/isomorfeus_ferret_ext/stem_UTF_8_nepali.h +6 -0
  91. data/ext/isomorfeus_ferret_ext/stem_UTF_8_norwegian.c +105 -127
  92. data/ext/isomorfeus_ferret_ext/stem_UTF_8_norwegian.h +1 -1
  93. data/ext/isomorfeus_ferret_ext/stem_UTF_8_porter.c +245 -276
  94. data/ext/isomorfeus_ferret_ext/stem_UTF_8_porter.h +1 -1
  95. data/ext/isomorfeus_ferret_ext/stem_UTF_8_portuguese.c +409 -464
  96. data/ext/isomorfeus_ferret_ext/stem_UTF_8_portuguese.h +1 -1
  97. data/ext/isomorfeus_ferret_ext/stem_UTF_8_romanian.c +376 -408
  98. data/ext/isomorfeus_ferret_ext/stem_UTF_8_romanian.h +1 -1
  99. data/ext/isomorfeus_ferret_ext/stem_UTF_8_russian.c +272 -287
  100. data/ext/isomorfeus_ferret_ext/stem_UTF_8_russian.h +1 -1
  101. data/ext/isomorfeus_ferret_ext/stem_UTF_8_serbian.c +6530 -0
  102. data/ext/isomorfeus_ferret_ext/stem_UTF_8_serbian.h +6 -0
  103. data/ext/isomorfeus_ferret_ext/stem_UTF_8_spanish.c +407 -458
  104. data/ext/isomorfeus_ferret_ext/stem_UTF_8_spanish.h +1 -1
  105. data/ext/isomorfeus_ferret_ext/stem_UTF_8_swedish.c +110 -125
  106. data/ext/isomorfeus_ferret_ext/stem_UTF_8_swedish.h +1 -1
  107. data/ext/isomorfeus_ferret_ext/stem_UTF_8_tamil.c +1865 -0
  108. data/ext/isomorfeus_ferret_ext/stem_UTF_8_tamil.h +6 -0
  109. data/ext/isomorfeus_ferret_ext/stem_UTF_8_turkish.c +698 -806
  110. data/ext/isomorfeus_ferret_ext/stem_UTF_8_turkish.h +1 -1
  111. data/ext/isomorfeus_ferret_ext/stem_UTF_8_yiddish.c +1220 -0
  112. data/ext/isomorfeus_ferret_ext/stem_UTF_8_yiddish.h +6 -0
  113. data/ext/isomorfeus_ferret_ext/stem_api.c +1 -9
  114. data/ext/isomorfeus_ferret_ext/stem_api.h +1 -3
  115. data/ext/isomorfeus_ferret_ext/stem_header.h +30 -26
  116. data/ext/isomorfeus_ferret_ext/stem_modules.h +113 -26
  117. data/ext/isomorfeus_ferret_ext/stem_modules.txt +18 -5
  118. data/ext/isomorfeus_ferret_ext/stem_utilities.c +167 -132
  119. data/ext/isomorfeus_ferret_ext/test.c +7 -1
  120. data/ext/isomorfeus_ferret_ext/test_search.c +0 -1
  121. data/lib/isomorfeus/ferret/version.rb +1 -1
  122. metadata +39 -4
  123. data/ext/isomorfeus_ferret_ext/q_parser.y +0 -1366
@@ -1,4 +1,4 @@
1
- /* This file was generated automatically by the Snowball to ANSI C compiler */
1
+ /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
2
 
3
3
  #include "stem_header.h"
4
4
 
@@ -26,21 +26,27 @@ static const symbol s_0_2[3] = { 't', 'a', 'p' };
26
26
 
27
27
  static const struct among a_0[3] =
28
28
  {
29
- /* 0 */ { 3, s_0_0, -1, -1, 0},
30
- /* 1 */ { 3, s_0_1, -1, -1, 0},
31
- /* 2 */ { 3, s_0_2, -1, -1, 0}
29
+ { 3, s_0_0, -1, -1, 0},
30
+ { 3, s_0_1, -1, -1, 0},
31
+ { 3, s_0_2, -1, -1, 0}
32
32
  };
33
33
 
34
- static const symbol s_1_1[1] = { 'I' };
35
- static const symbol s_1_2[1] = { 'U' };
36
- static const symbol s_1_3[1] = { 'Y' };
34
+ static const symbol s_1_1[1] = { 'H' };
35
+ static const symbol s_1_2[2] = { 'H', 'e' };
36
+ static const symbol s_1_3[2] = { 'H', 'i' };
37
+ static const symbol s_1_4[1] = { 'I' };
38
+ static const symbol s_1_5[1] = { 'U' };
39
+ static const symbol s_1_6[1] = { 'Y' };
37
40
 
38
- static const struct among a_1[4] =
41
+ static const struct among a_1[7] =
39
42
  {
40
- /* 0 */ { 0, 0, -1, 4, 0},
41
- /* 1 */ { 1, s_1_1, 0, 1, 0},
42
- /* 2 */ { 1, s_1_2, 0, 2, 0},
43
- /* 3 */ { 1, s_1_3, 0, 3, 0}
43
+ { 0, 0, -1, 7, 0},
44
+ { 1, s_1_1, 0, 6, 0},
45
+ { 2, s_1_2, 1, 4, 0},
46
+ { 2, s_1_3, 1, 5, 0},
47
+ { 1, s_1_4, 0, 1, 0},
48
+ { 1, s_1_5, 0, 2, 0},
49
+ { 1, s_1_6, 0, 3, 0}
44
50
  };
45
51
 
46
52
  static const symbol s_2_0[3] = { 'i', 'q', 'U' };
@@ -52,12 +58,12 @@ static const symbol s_2_5[2] = { 'i', 'v' };
52
58
 
53
59
  static const struct among a_2[6] =
54
60
  {
55
- /* 0 */ { 3, s_2_0, -1, 3, 0},
56
- /* 1 */ { 3, s_2_1, -1, 3, 0},
57
- /* 2 */ { 4, s_2_2, -1, 4, 0},
58
- /* 3 */ { 4, s_2_3, -1, 4, 0},
59
- /* 4 */ { 3, s_2_4, -1, 2, 0},
60
- /* 5 */ { 2, s_2_5, -1, 1, 0}
61
+ { 3, s_2_0, -1, 3, 0},
62
+ { 3, s_2_1, -1, 3, 0},
63
+ { 4, s_2_2, -1, 4, 0},
64
+ { 4, s_2_3, -1, 4, 0},
65
+ { 3, s_2_4, -1, 2, 0},
66
+ { 2, s_2_5, -1, 1, 0}
61
67
  };
62
68
 
63
69
  static const symbol s_3_0[2] = { 'i', 'c' };
@@ -66,9 +72,9 @@ static const symbol s_3_2[2] = { 'i', 'v' };
66
72
 
67
73
  static const struct among a_3[3] =
68
74
  {
69
- /* 0 */ { 2, s_3_0, -1, 2, 0},
70
- /* 1 */ { 4, s_3_1, -1, 1, 0},
71
- /* 2 */ { 2, s_3_2, -1, 3, 0}
75
+ { 2, s_3_0, -1, 2, 0},
76
+ { 4, s_3_1, -1, 1, 0},
77
+ { 2, s_3_2, -1, 3, 0}
72
78
  };
73
79
 
74
80
  static const symbol s_4_0[4] = { 'i', 'q', 'U', 'e' };
@@ -117,49 +123,49 @@ static const symbol s_4_42[4] = { 'i', 't', 0xC3, 0xA9 };
117
123
 
118
124
  static const struct among a_4[43] =
119
125
  {
120
- /* 0 */ { 4, s_4_0, -1, 1, 0},
121
- /* 1 */ { 6, s_4_1, -1, 2, 0},
122
- /* 2 */ { 4, s_4_2, -1, 1, 0},
123
- /* 3 */ { 4, s_4_3, -1, 5, 0},
124
- /* 4 */ { 5, s_4_4, -1, 3, 0},
125
- /* 5 */ { 4, s_4_5, -1, 1, 0},
126
- /* 6 */ { 4, s_4_6, -1, 1, 0},
127
- /* 7 */ { 4, s_4_7, -1, 11, 0},
128
- /* 8 */ { 4, s_4_8, -1, 1, 0},
129
- /* 9 */ { 3, s_4_9, -1, 8, 0},
130
- /* 10 */ { 2, s_4_10, -1, 8, 0},
131
- /* 11 */ { 5, s_4_11, -1, 4, 0},
132
- /* 12 */ { 5, s_4_12, -1, 2, 0},
133
- /* 13 */ { 5, s_4_13, -1, 4, 0},
134
- /* 14 */ { 5, s_4_14, -1, 2, 0},
135
- /* 15 */ { 5, s_4_15, -1, 1, 0},
136
- /* 16 */ { 7, s_4_16, -1, 2, 0},
137
- /* 17 */ { 5, s_4_17, -1, 1, 0},
138
- /* 18 */ { 5, s_4_18, -1, 5, 0},
139
- /* 19 */ { 6, s_4_19, -1, 3, 0},
140
- /* 20 */ { 5, s_4_20, -1, 1, 0},
141
- /* 21 */ { 5, s_4_21, -1, 1, 0},
142
- /* 22 */ { 5, s_4_22, -1, 11, 0},
143
- /* 23 */ { 5, s_4_23, -1, 1, 0},
144
- /* 24 */ { 4, s_4_24, -1, 8, 0},
145
- /* 25 */ { 3, s_4_25, -1, 8, 0},
146
- /* 26 */ { 6, s_4_26, -1, 4, 0},
147
- /* 27 */ { 6, s_4_27, -1, 2, 0},
148
- /* 28 */ { 6, s_4_28, -1, 4, 0},
149
- /* 29 */ { 6, s_4_29, -1, 2, 0},
150
- /* 30 */ { 5, s_4_30, -1, 15, 0},
151
- /* 31 */ { 6, s_4_31, 30, 6, 0},
152
- /* 32 */ { 9, s_4_32, 31, 12, 0},
153
- /* 33 */ { 5, s_4_33, -1, 7, 0},
154
- /* 34 */ { 4, s_4_34, -1, 15, 0},
155
- /* 35 */ { 5, s_4_35, 34, 6, 0},
156
- /* 36 */ { 8, s_4_36, 35, 12, 0},
157
- /* 37 */ { 6, s_4_37, 34, 13, 0},
158
- /* 38 */ { 6, s_4_38, 34, 14, 0},
159
- /* 39 */ { 3, s_4_39, -1, 10, 0},
160
- /* 40 */ { 4, s_4_40, 39, 9, 0},
161
- /* 41 */ { 3, s_4_41, -1, 1, 0},
162
- /* 42 */ { 4, s_4_42, -1, 7, 0}
126
+ { 4, s_4_0, -1, 1, 0},
127
+ { 6, s_4_1, -1, 2, 0},
128
+ { 4, s_4_2, -1, 1, 0},
129
+ { 4, s_4_3, -1, 5, 0},
130
+ { 5, s_4_4, -1, 3, 0},
131
+ { 4, s_4_5, -1, 1, 0},
132
+ { 4, s_4_6, -1, 1, 0},
133
+ { 4, s_4_7, -1, 11, 0},
134
+ { 4, s_4_8, -1, 1, 0},
135
+ { 3, s_4_9, -1, 8, 0},
136
+ { 2, s_4_10, -1, 8, 0},
137
+ { 5, s_4_11, -1, 4, 0},
138
+ { 5, s_4_12, -1, 2, 0},
139
+ { 5, s_4_13, -1, 4, 0},
140
+ { 5, s_4_14, -1, 2, 0},
141
+ { 5, s_4_15, -1, 1, 0},
142
+ { 7, s_4_16, -1, 2, 0},
143
+ { 5, s_4_17, -1, 1, 0},
144
+ { 5, s_4_18, -1, 5, 0},
145
+ { 6, s_4_19, -1, 3, 0},
146
+ { 5, s_4_20, -1, 1, 0},
147
+ { 5, s_4_21, -1, 1, 0},
148
+ { 5, s_4_22, -1, 11, 0},
149
+ { 5, s_4_23, -1, 1, 0},
150
+ { 4, s_4_24, -1, 8, 0},
151
+ { 3, s_4_25, -1, 8, 0},
152
+ { 6, s_4_26, -1, 4, 0},
153
+ { 6, s_4_27, -1, 2, 0},
154
+ { 6, s_4_28, -1, 4, 0},
155
+ { 6, s_4_29, -1, 2, 0},
156
+ { 5, s_4_30, -1, 15, 0},
157
+ { 6, s_4_31, 30, 6, 0},
158
+ { 9, s_4_32, 31, 12, 0},
159
+ { 5, s_4_33, -1, 7, 0},
160
+ { 4, s_4_34, -1, 15, 0},
161
+ { 5, s_4_35, 34, 6, 0},
162
+ { 8, s_4_36, 35, 12, 0},
163
+ { 6, s_4_37, 34, 13, 0},
164
+ { 6, s_4_38, 34, 14, 0},
165
+ { 3, s_4_39, -1, 10, 0},
166
+ { 4, s_4_40, 39, 9, 0},
167
+ { 3, s_4_41, -1, 1, 0},
168
+ { 4, s_4_42, -1, 7, 0}
163
169
  };
164
170
 
165
171
  static const symbol s_5_0[3] = { 'i', 'r', 'a' };
@@ -200,41 +206,41 @@ static const symbol s_5_34[5] = { 'i', 's', 's', 'e', 'z' };
200
206
 
201
207
  static const struct among a_5[35] =
202
208
  {
203
- /* 0 */ { 3, s_5_0, -1, 1, 0},
204
- /* 1 */ { 2, s_5_1, -1, 1, 0},
205
- /* 2 */ { 4, s_5_2, -1, 1, 0},
206
- /* 3 */ { 7, s_5_3, -1, 1, 0},
207
- /* 4 */ { 1, s_5_4, -1, 1, 0},
208
- /* 5 */ { 4, s_5_5, 4, 1, 0},
209
- /* 6 */ { 2, s_5_6, -1, 1, 0},
210
- /* 7 */ { 4, s_5_7, -1, 1, 0},
211
- /* 8 */ { 3, s_5_8, -1, 1, 0},
212
- /* 9 */ { 5, s_5_9, -1, 1, 0},
213
- /* 10 */ { 5, s_5_10, -1, 1, 0},
214
- /* 11 */ { 8, s_5_11, -1, 1, 0},
215
- /* 12 */ { 5, s_5_12, -1, 1, 0},
216
- /* 13 */ { 2, s_5_13, -1, 1, 0},
217
- /* 14 */ { 5, s_5_14, 13, 1, 0},
218
- /* 15 */ { 6, s_5_15, 13, 1, 0},
219
- /* 16 */ { 6, s_5_16, -1, 1, 0},
220
- /* 17 */ { 7, s_5_17, -1, 1, 0},
221
- /* 18 */ { 5, s_5_18, -1, 1, 0},
222
- /* 19 */ { 6, s_5_19, -1, 1, 0},
223
- /* 20 */ { 7, s_5_20, -1, 1, 0},
224
- /* 21 */ { 2, s_5_21, -1, 1, 0},
225
- /* 22 */ { 5, s_5_22, 21, 1, 0},
226
- /* 23 */ { 6, s_5_23, 21, 1, 0},
227
- /* 24 */ { 6, s_5_24, -1, 1, 0},
228
- /* 25 */ { 7, s_5_25, -1, 1, 0},
229
- /* 26 */ { 8, s_5_26, -1, 1, 0},
230
- /* 27 */ { 5, s_5_27, -1, 1, 0},
231
- /* 28 */ { 6, s_5_28, -1, 1, 0},
232
- /* 29 */ { 5, s_5_29, -1, 1, 0},
233
- /* 30 */ { 3, s_5_30, -1, 1, 0},
234
- /* 31 */ { 5, s_5_31, -1, 1, 0},
235
- /* 32 */ { 6, s_5_32, -1, 1, 0},
236
- /* 33 */ { 4, s_5_33, -1, 1, 0},
237
- /* 34 */ { 5, s_5_34, -1, 1, 0}
209
+ { 3, s_5_0, -1, 1, 0},
210
+ { 2, s_5_1, -1, 1, 0},
211
+ { 4, s_5_2, -1, 1, 0},
212
+ { 7, s_5_3, -1, 1, 0},
213
+ { 1, s_5_4, -1, 1, 0},
214
+ { 4, s_5_5, 4, 1, 0},
215
+ { 2, s_5_6, -1, 1, 0},
216
+ { 4, s_5_7, -1, 1, 0},
217
+ { 3, s_5_8, -1, 1, 0},
218
+ { 5, s_5_9, -1, 1, 0},
219
+ { 5, s_5_10, -1, 1, 0},
220
+ { 8, s_5_11, -1, 1, 0},
221
+ { 5, s_5_12, -1, 1, 0},
222
+ { 2, s_5_13, -1, 1, 0},
223
+ { 5, s_5_14, 13, 1, 0},
224
+ { 6, s_5_15, 13, 1, 0},
225
+ { 6, s_5_16, -1, 1, 0},
226
+ { 7, s_5_17, -1, 1, 0},
227
+ { 5, s_5_18, -1, 1, 0},
228
+ { 6, s_5_19, -1, 1, 0},
229
+ { 7, s_5_20, -1, 1, 0},
230
+ { 2, s_5_21, -1, 1, 0},
231
+ { 5, s_5_22, 21, 1, 0},
232
+ { 6, s_5_23, 21, 1, 0},
233
+ { 6, s_5_24, -1, 1, 0},
234
+ { 7, s_5_25, -1, 1, 0},
235
+ { 8, s_5_26, -1, 1, 0},
236
+ { 5, s_5_27, -1, 1, 0},
237
+ { 6, s_5_28, -1, 1, 0},
238
+ { 5, s_5_29, -1, 1, 0},
239
+ { 3, s_5_30, -1, 1, 0},
240
+ { 5, s_5_31, -1, 1, 0},
241
+ { 6, s_5_32, -1, 1, 0},
242
+ { 4, s_5_33, -1, 1, 0},
243
+ { 5, s_5_34, -1, 1, 0}
238
244
  };
239
245
 
240
246
  static const symbol s_6_0[1] = { 'a' };
@@ -278,44 +284,44 @@ static const symbol s_6_37[2] = { 0xC3, 0xA9 };
278
284
 
279
285
  static const struct among a_6[38] =
280
286
  {
281
- /* 0 */ { 1, s_6_0, -1, 3, 0},
282
- /* 1 */ { 3, s_6_1, 0, 2, 0},
283
- /* 2 */ { 4, s_6_2, -1, 3, 0},
284
- /* 3 */ { 4, s_6_3, -1, 3, 0},
285
- /* 4 */ { 3, s_6_4, -1, 2, 0},
286
- /* 5 */ { 2, s_6_5, -1, 3, 0},
287
- /* 6 */ { 4, s_6_6, 5, 2, 0},
288
- /* 7 */ { 2, s_6_7, -1, 2, 0},
289
- /* 8 */ { 2, s_6_8, -1, 3, 0},
290
- /* 9 */ { 4, s_6_9, 8, 2, 0},
291
- /* 10 */ { 5, s_6_10, -1, 3, 0},
292
- /* 11 */ { 5, s_6_11, -1, 3, 0},
293
- /* 12 */ { 5, s_6_12, -1, 3, 0},
294
- /* 13 */ { 5, s_6_13, -1, 3, 0},
295
- /* 14 */ { 4, s_6_14, -1, 2, 0},
296
- /* 15 */ { 3, s_6_15, -1, 3, 0},
297
- /* 16 */ { 5, s_6_16, 15, 2, 0},
298
- /* 17 */ { 4, s_6_17, -1, 1, 0},
299
- /* 18 */ { 6, s_6_18, 17, 2, 0},
300
- /* 19 */ { 7, s_6_19, 17, 3, 0},
301
- /* 20 */ { 5, s_6_20, -1, 2, 0},
302
- /* 21 */ { 4, s_6_21, -1, 3, 0},
303
- /* 22 */ { 3, s_6_22, -1, 2, 0},
304
- /* 23 */ { 3, s_6_23, -1, 3, 0},
305
- /* 24 */ { 5, s_6_24, 23, 2, 0},
306
- /* 25 */ { 3, s_6_25, -1, 3, 0},
307
- /* 26 */ { 5, s_6_26, -1, 3, 0},
308
- /* 27 */ { 7, s_6_27, 26, 2, 0},
309
- /* 28 */ { 6, s_6_28, -1, 2, 0},
310
- /* 29 */ { 6, s_6_29, -1, 3, 0},
311
- /* 30 */ { 5, s_6_30, -1, 2, 0},
312
- /* 31 */ { 3, s_6_31, -1, 3, 0},
313
- /* 32 */ { 2, s_6_32, -1, 2, 0},
314
- /* 33 */ { 3, s_6_33, 32, 2, 0},
315
- /* 34 */ { 5, s_6_34, 33, 2, 0},
316
- /* 35 */ { 6, s_6_35, 33, 3, 0},
317
- /* 36 */ { 4, s_6_36, 32, 2, 0},
318
- /* 37 */ { 2, s_6_37, -1, 2, 0}
287
+ { 1, s_6_0, -1, 3, 0},
288
+ { 3, s_6_1, 0, 2, 0},
289
+ { 4, s_6_2, -1, 3, 0},
290
+ { 4, s_6_3, -1, 3, 0},
291
+ { 3, s_6_4, -1, 2, 0},
292
+ { 2, s_6_5, -1, 3, 0},
293
+ { 4, s_6_6, 5, 2, 0},
294
+ { 2, s_6_7, -1, 2, 0},
295
+ { 2, s_6_8, -1, 3, 0},
296
+ { 4, s_6_9, 8, 2, 0},
297
+ { 5, s_6_10, -1, 3, 0},
298
+ { 5, s_6_11, -1, 3, 0},
299
+ { 5, s_6_12, -1, 3, 0},
300
+ { 5, s_6_13, -1, 3, 0},
301
+ { 4, s_6_14, -1, 2, 0},
302
+ { 3, s_6_15, -1, 3, 0},
303
+ { 5, s_6_16, 15, 2, 0},
304
+ { 4, s_6_17, -1, 1, 0},
305
+ { 6, s_6_18, 17, 2, 0},
306
+ { 7, s_6_19, 17, 3, 0},
307
+ { 5, s_6_20, -1, 2, 0},
308
+ { 4, s_6_21, -1, 3, 0},
309
+ { 3, s_6_22, -1, 2, 0},
310
+ { 3, s_6_23, -1, 3, 0},
311
+ { 5, s_6_24, 23, 2, 0},
312
+ { 3, s_6_25, -1, 3, 0},
313
+ { 5, s_6_26, -1, 3, 0},
314
+ { 7, s_6_27, 26, 2, 0},
315
+ { 6, s_6_28, -1, 2, 0},
316
+ { 6, s_6_29, -1, 3, 0},
317
+ { 5, s_6_30, -1, 2, 0},
318
+ { 3, s_6_31, -1, 3, 0},
319
+ { 2, s_6_32, -1, 2, 0},
320
+ { 3, s_6_33, 32, 2, 0},
321
+ { 5, s_6_34, 33, 2, 0},
322
+ { 6, s_6_35, 33, 3, 0},
323
+ { 4, s_6_36, 32, 2, 0},
324
+ { 2, s_6_37, -1, 2, 0}
319
325
  };
320
326
 
321
327
  static const symbol s_7_0[1] = { 'e' };
@@ -324,17 +330,15 @@ static const symbol s_7_2[5] = { 'i', 0xC3, 0xA8, 'r', 'e' };
324
330
  static const symbol s_7_3[3] = { 'i', 'o', 'n' };
325
331
  static const symbol s_7_4[3] = { 'I', 'e', 'r' };
326
332
  static const symbol s_7_5[3] = { 'i', 'e', 'r' };
327
- static const symbol s_7_6[2] = { 0xC3, 0xAB };
328
333
 
329
- static const struct among a_7[7] =
334
+ static const struct among a_7[6] =
330
335
  {
331
- /* 0 */ { 1, s_7_0, -1, 3, 0},
332
- /* 1 */ { 5, s_7_1, 0, 2, 0},
333
- /* 2 */ { 5, s_7_2, 0, 2, 0},
334
- /* 3 */ { 3, s_7_3, -1, 1, 0},
335
- /* 4 */ { 3, s_7_4, -1, 2, 0},
336
- /* 5 */ { 3, s_7_5, -1, 2, 0},
337
- /* 6 */ { 2, s_7_6, -1, 4, 0}
336
+ { 1, s_7_0, -1, 3, 0},
337
+ { 5, s_7_1, 0, 2, 0},
338
+ { 5, s_7_2, 0, 2, 0},
339
+ { 3, s_7_3, -1, 1, 0},
340
+ { 3, s_7_4, -1, 2, 0},
341
+ { 3, s_7_5, -1, 2, 0}
338
342
  };
339
343
 
340
344
  static const symbol s_8_0[3] = { 'e', 'l', 'l' };
@@ -345,31 +349,31 @@ static const symbol s_8_4[3] = { 'e', 't', 't' };
345
349
 
346
350
  static const struct among a_8[5] =
347
351
  {
348
- /* 0 */ { 3, s_8_0, -1, -1, 0},
349
- /* 1 */ { 4, s_8_1, -1, -1, 0},
350
- /* 2 */ { 3, s_8_2, -1, -1, 0},
351
- /* 3 */ { 3, s_8_3, -1, -1, 0},
352
- /* 4 */ { 3, s_8_4, -1, -1, 0}
352
+ { 3, s_8_0, -1, -1, 0},
353
+ { 4, s_8_1, -1, -1, 0},
354
+ { 3, s_8_2, -1, -1, 0},
355
+ { 3, s_8_3, -1, -1, 0},
356
+ { 3, s_8_4, -1, -1, 0}
353
357
  };
354
358
 
355
359
  static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
356
360
 
357
361
  static const unsigned char g_keep_with_s[] = { 1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
358
362
 
359
- static const symbol s_0[] = { 'u' };
360
- static const symbol s_1[] = { 'U' };
361
- static const symbol s_2[] = { 'i' };
362
- static const symbol s_3[] = { 'I' };
363
- static const symbol s_4[] = { 'y' };
364
- static const symbol s_5[] = { 'Y' };
365
- static const symbol s_6[] = { 'y' };
363
+ static const symbol s_0[] = { 'U' };
364
+ static const symbol s_1[] = { 'I' };
365
+ static const symbol s_2[] = { 'Y' };
366
+ static const symbol s_3[] = { 0xC3, 0xAB };
367
+ static const symbol s_4[] = { 'H', 'e' };
368
+ static const symbol s_5[] = { 0xC3, 0xAF };
369
+ static const symbol s_6[] = { 'H', 'i' };
366
370
  static const symbol s_7[] = { 'Y' };
367
- static const symbol s_8[] = { 'q' };
368
- static const symbol s_9[] = { 'u' };
369
- static const symbol s_10[] = { 'U' };
370
- static const symbol s_11[] = { 'i' };
371
- static const symbol s_12[] = { 'u' };
372
- static const symbol s_13[] = { 'y' };
371
+ static const symbol s_8[] = { 'U' };
372
+ static const symbol s_9[] = { 'i' };
373
+ static const symbol s_10[] = { 'u' };
374
+ static const symbol s_11[] = { 'y' };
375
+ static const symbol s_12[] = { 0xC3, 0xAB };
376
+ static const symbol s_13[] = { 0xC3, 0xAF };
373
377
  static const symbol s_14[] = { 'i', 'c' };
374
378
  static const symbol s_15[] = { 'i', 'q', 'U' };
375
379
  static const symbol s_16[] = { 'l', 'o', 'g' };
@@ -388,50 +392,48 @@ static const symbol s_28[] = { 'a', 'l' };
388
392
  static const symbol s_29[] = { 'e', 'u', 'x' };
389
393
  static const symbol s_30[] = { 'a', 'n', 't' };
390
394
  static const symbol s_31[] = { 'e', 'n', 't' };
391
- static const symbol s_32[] = { 'e' };
392
- static const symbol s_33[] = { 's' };
393
- static const symbol s_34[] = { 's' };
394
- static const symbol s_35[] = { 't' };
395
- static const symbol s_36[] = { 'i' };
396
- static const symbol s_37[] = { 'g', 'u' };
397
- static const symbol s_38[] = { 0xC3, 0xA9 };
398
- static const symbol s_39[] = { 0xC3, 0xA8 };
399
- static const symbol s_40[] = { 'e' };
400
- static const symbol s_41[] = { 'Y' };
401
- static const symbol s_42[] = { 'i' };
402
- static const symbol s_43[] = { 0xC3, 0xA7 };
403
- static const symbol s_44[] = { 'c' };
395
+ static const symbol s_32[] = { 'H', 'i' };
396
+ static const symbol s_33[] = { 'i' };
397
+ static const symbol s_34[] = { 0xC3, 0xA9 };
398
+ static const symbol s_35[] = { 0xC3, 0xA8 };
399
+ static const symbol s_36[] = { 'e' };
400
+ static const symbol s_37[] = { 'i' };
401
+ static const symbol s_38[] = { 0xC3, 0xA7 };
402
+ static const symbol s_39[] = { 'c' };
404
403
 
405
404
  static int r_prelude(struct SN_env * z) {
406
- while(1) { /* repeat, line 38 */
405
+ while(1) {
407
406
  int c1 = z->c;
408
- while(1) { /* goto, line 38 */
407
+ while(1) {
409
408
  int c2 = z->c;
410
- { int c3 = z->c; /* or, line 44 */
409
+ { int c3 = z->c;
411
410
  if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab3;
412
- z->bra = z->c; /* [, line 40 */
413
- { int c4 = z->c; /* or, line 40 */
414
- if (!(eq_s(z, 1, s_0))) goto lab5;
415
- z->ket = z->c; /* ], line 40 */
411
+ z->bra = z->c;
412
+ { int c4 = z->c;
413
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab5;
414
+ z->c++;
415
+ z->ket = z->c;
416
416
  if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab5;
417
- { int ret = slice_from_s(z, 1, s_1); /* <-, line 40 */
417
+ { int ret = slice_from_s(z, 1, s_0);
418
418
  if (ret < 0) return ret;
419
419
  }
420
420
  goto lab4;
421
421
  lab5:
422
422
  z->c = c4;
423
- if (!(eq_s(z, 1, s_2))) goto lab6;
424
- z->ket = z->c; /* ], line 41 */
423
+ if (z->c == z->l || z->p[z->c] != 'i') goto lab6;
424
+ z->c++;
425
+ z->ket = z->c;
425
426
  if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab6;
426
- { int ret = slice_from_s(z, 1, s_3); /* <-, line 41 */
427
+ { int ret = slice_from_s(z, 1, s_1);
427
428
  if (ret < 0) return ret;
428
429
  }
429
430
  goto lab4;
430
431
  lab6:
431
432
  z->c = c4;
432
- if (!(eq_s(z, 1, s_4))) goto lab3;
433
- z->ket = z->c; /* ], line 42 */
434
- { int ret = slice_from_s(z, 1, s_5); /* <-, line 42 */
433
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
434
+ z->c++;
435
+ z->ket = z->c;
436
+ { int ret = slice_from_s(z, 1, s_2);
435
437
  if (ret < 0) return ret;
436
438
  }
437
439
  }
@@ -439,21 +441,42 @@ static int r_prelude(struct SN_env * z) {
439
441
  goto lab2;
440
442
  lab3:
441
443
  z->c = c3;
442
- z->bra = z->c; /* [, line 45 */
443
- if (!(eq_s(z, 1, s_6))) goto lab7;
444
- z->ket = z->c; /* ], line 45 */
445
- if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab7;
446
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 45 */
444
+ z->bra = z->c;
445
+ if (!(eq_s(z, 2, s_3))) goto lab7;
446
+ z->ket = z->c;
447
+ { int ret = slice_from_s(z, 2, s_4);
447
448
  if (ret < 0) return ret;
448
449
  }
449
450
  goto lab2;
450
451
  lab7:
451
452
  z->c = c3;
452
- if (!(eq_s(z, 1, s_8))) goto lab1;
453
- z->bra = z->c; /* [, line 47 */
454
- if (!(eq_s(z, 1, s_9))) goto lab1;
455
- z->ket = z->c; /* ], line 47 */
456
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 47 */
453
+ z->bra = z->c;
454
+ if (!(eq_s(z, 2, s_5))) goto lab8;
455
+ z->ket = z->c;
456
+ { int ret = slice_from_s(z, 2, s_6);
457
+ if (ret < 0) return ret;
458
+ }
459
+ goto lab2;
460
+ lab8:
461
+ z->c = c3;
462
+ z->bra = z->c;
463
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab9;
464
+ z->c++;
465
+ z->ket = z->c;
466
+ if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab9;
467
+ { int ret = slice_from_s(z, 1, s_7);
468
+ if (ret < 0) return ret;
469
+ }
470
+ goto lab2;
471
+ lab9:
472
+ z->c = c3;
473
+ if (z->c == z->l || z->p[z->c] != 'q') goto lab1;
474
+ z->c++;
475
+ z->bra = z->c;
476
+ if (z->c == z->l || z->p[z->c] != 'u') goto lab1;
477
+ z->c++;
478
+ z->ket = z->c;
479
+ { int ret = slice_from_s(z, 1, s_8);
457
480
  if (ret < 0) return ret;
458
481
  }
459
482
  }
@@ -462,9 +485,9 @@ static int r_prelude(struct SN_env * z) {
462
485
  break;
463
486
  lab1:
464
487
  z->c = c2;
465
- { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
488
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
466
489
  if (ret < 0) goto lab0;
467
- z->c = ret; /* goto, line 38 */
490
+ z->c = ret;
468
491
  }
469
492
  }
470
493
  continue;
@@ -476,63 +499,63 @@ static int r_prelude(struct SN_env * z) {
476
499
  }
477
500
 
478
501
  static int r_mark_regions(struct SN_env * z) {
479
- z->I[0] = z->l;
480
- z->I[1] = z->l;
481
502
  z->I[2] = z->l;
482
- { int c1 = z->c; /* do, line 56 */
483
- { int c2 = z->c; /* or, line 58 */
503
+ z->I[1] = z->l;
504
+ z->I[0] = z->l;
505
+ { int c1 = z->c;
506
+ { int c2 = z->c;
484
507
  if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
485
508
  if (in_grouping_U(z, g_v, 97, 251, 0)) goto lab2;
486
- { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
509
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
487
510
  if (ret < 0) goto lab2;
488
- z->c = ret; /* next, line 57 */
511
+ z->c = ret;
489
512
  }
490
513
  goto lab1;
491
514
  lab2:
492
515
  z->c = c2;
493
516
  if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((331776 >> (z->p[z->c + 2] & 0x1f)) & 1)) goto lab3;
494
- if (!(find_among(z, a_0, 3))) goto lab3; /* among, line 59 */
517
+ if (!(find_among(z, a_0, 3))) goto lab3;
495
518
  goto lab1;
496
519
  lab3:
497
520
  z->c = c2;
498
- { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
521
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
499
522
  if (ret < 0) goto lab0;
500
- z->c = ret; /* next, line 66 */
523
+ z->c = ret;
501
524
  }
502
- { /* gopast */ /* grouping v, line 66 */
525
+ {
503
526
  int ret = out_grouping_U(z, g_v, 97, 251, 1);
504
527
  if (ret < 0) goto lab0;
505
528
  z->c += ret;
506
529
  }
507
530
  }
508
531
  lab1:
509
- z->I[0] = z->c; /* setmark pV, line 67 */
532
+ z->I[2] = z->c;
510
533
  lab0:
511
534
  z->c = c1;
512
535
  }
513
- { int c3 = z->c; /* do, line 69 */
514
- { /* gopast */ /* grouping v, line 70 */
536
+ { int c3 = z->c;
537
+ {
515
538
  int ret = out_grouping_U(z, g_v, 97, 251, 1);
516
539
  if (ret < 0) goto lab4;
517
540
  z->c += ret;
518
541
  }
519
- { /* gopast */ /* non v, line 70 */
542
+ {
520
543
  int ret = in_grouping_U(z, g_v, 97, 251, 1);
521
544
  if (ret < 0) goto lab4;
522
545
  z->c += ret;
523
546
  }
524
- z->I[1] = z->c; /* setmark p1, line 70 */
525
- { /* gopast */ /* grouping v, line 71 */
547
+ z->I[1] = z->c;
548
+ {
526
549
  int ret = out_grouping_U(z, g_v, 97, 251, 1);
527
550
  if (ret < 0) goto lab4;
528
551
  z->c += ret;
529
552
  }
530
- { /* gopast */ /* non v, line 71 */
553
+ {
531
554
  int ret = in_grouping_U(z, g_v, 97, 251, 1);
532
555
  if (ret < 0) goto lab4;
533
556
  z->c += ret;
534
557
  }
535
- z->I[2] = z->c; /* setmark p2, line 71 */
558
+ z->I[0] = z->c;
536
559
  lab4:
537
560
  z->c = c3;
538
561
  }
@@ -541,34 +564,48 @@ static int r_mark_regions(struct SN_env * z) {
541
564
 
542
565
  static int r_postlude(struct SN_env * z) {
543
566
  int among_var;
544
- while(1) { /* repeat, line 75 */
567
+ while(1) {
545
568
  int c1 = z->c;
546
- z->bra = z->c; /* [, line 77 */
547
- if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652096 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 4; else
548
- among_var = find_among(z, a_1, 4); /* substring, line 77 */
569
+ z->bra = z->c;
570
+ if (z->c >= z->l || z->p[z->c + 0] >> 5 != 2 || !((35652352 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 7; else
571
+ among_var = find_among(z, a_1, 7);
549
572
  if (!(among_var)) goto lab0;
550
- z->ket = z->c; /* ], line 77 */
551
- switch(among_var) {
552
- case 0: goto lab0;
573
+ z->ket = z->c;
574
+ switch (among_var) {
553
575
  case 1:
554
- { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
576
+ { int ret = slice_from_s(z, 1, s_9);
555
577
  if (ret < 0) return ret;
556
578
  }
557
579
  break;
558
580
  case 2:
559
- { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
581
+ { int ret = slice_from_s(z, 1, s_10);
560
582
  if (ret < 0) return ret;
561
583
  }
562
584
  break;
563
585
  case 3:
564
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 80 */
586
+ { int ret = slice_from_s(z, 1, s_11);
565
587
  if (ret < 0) return ret;
566
588
  }
567
589
  break;
568
590
  case 4:
569
- { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
591
+ { int ret = slice_from_s(z, 2, s_12);
592
+ if (ret < 0) return ret;
593
+ }
594
+ break;
595
+ case 5:
596
+ { int ret = slice_from_s(z, 2, s_13);
597
+ if (ret < 0) return ret;
598
+ }
599
+ break;
600
+ case 6:
601
+ { int ret = slice_del(z);
602
+ if (ret < 0) return ret;
603
+ }
604
+ break;
605
+ case 7:
606
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
570
607
  if (ret < 0) goto lab0;
571
- z->c = ret; /* next, line 81 */
608
+ z->c = ret;
572
609
  }
573
610
  break;
574
611
  }
@@ -581,7 +618,7 @@ static int r_postlude(struct SN_env * z) {
581
618
  }
582
619
 
583
620
  static int r_RV(struct SN_env * z) {
584
- if (!(z->I[0] <= z->c)) return 0;
621
+ if (!(z->I[2] <= z->c)) return 0;
585
622
  return 1;
586
623
  }
587
624
 
@@ -591,51 +628,48 @@ static int r_R1(struct SN_env * z) {
591
628
  }
592
629
 
593
630
  static int r_R2(struct SN_env * z) {
594
- if (!(z->I[2] <= z->c)) return 0;
631
+ if (!(z->I[0] <= z->c)) return 0;
595
632
  return 1;
596
633
  }
597
634
 
598
635
  static int r_standard_suffix(struct SN_env * z) {
599
636
  int among_var;
600
- z->ket = z->c; /* [, line 92 */
601
- among_var = find_among_b(z, a_4, 43); /* substring, line 92 */
637
+ z->ket = z->c;
638
+ among_var = find_among_b(z, a_4, 43);
602
639
  if (!(among_var)) return 0;
603
- z->bra = z->c; /* ], line 92 */
604
- switch(among_var) {
605
- case 0: return 0;
640
+ z->bra = z->c;
641
+ switch (among_var) {
606
642
  case 1:
607
643
  { int ret = r_R2(z);
608
- if (ret == 0) return 0; /* call R2, line 96 */
609
- if (ret < 0) return ret;
644
+ if (ret <= 0) return ret;
610
645
  }
611
- { int ret = slice_del(z); /* delete, line 96 */
646
+ { int ret = slice_del(z);
612
647
  if (ret < 0) return ret;
613
648
  }
614
649
  break;
615
650
  case 2:
616
651
  { int ret = r_R2(z);
617
- if (ret == 0) return 0; /* call R2, line 99 */
618
- if (ret < 0) return ret;
652
+ if (ret <= 0) return ret;
619
653
  }
620
- { int ret = slice_del(z); /* delete, line 99 */
654
+ { int ret = slice_del(z);
621
655
  if (ret < 0) return ret;
622
656
  }
623
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 100 */
624
- z->ket = z->c; /* [, line 100 */
625
- if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m_keep; goto lab0; }
626
- z->bra = z->c; /* ], line 100 */
627
- { int m1 = z->l - z->c; (void)m1; /* or, line 100 */
657
+ { int m1 = z->l - z->c; (void)m1;
658
+ z->ket = z->c;
659
+ if (!(eq_s_b(z, 2, s_14))) { z->c = z->l - m1; goto lab0; }
660
+ z->bra = z->c;
661
+ { int m2 = z->l - z->c; (void)m2;
628
662
  { int ret = r_R2(z);
629
- if (ret == 0) goto lab2; /* call R2, line 100 */
663
+ if (ret == 0) goto lab2;
630
664
  if (ret < 0) return ret;
631
665
  }
632
- { int ret = slice_del(z); /* delete, line 100 */
666
+ { int ret = slice_del(z);
633
667
  if (ret < 0) return ret;
634
668
  }
635
669
  goto lab1;
636
670
  lab2:
637
- z->c = z->l - m1;
638
- { int ret = slice_from_s(z, 3, s_15); /* <-, line 100 */
671
+ z->c = z->l - m2;
672
+ { int ret = slice_from_s(z, 3, s_15);
639
673
  if (ret < 0) return ret;
640
674
  }
641
675
  }
@@ -646,82 +680,77 @@ static int r_standard_suffix(struct SN_env * z) {
646
680
  break;
647
681
  case 3:
648
682
  { int ret = r_R2(z);
649
- if (ret == 0) return 0; /* call R2, line 104 */
650
- if (ret < 0) return ret;
683
+ if (ret <= 0) return ret;
651
684
  }
652
- { int ret = slice_from_s(z, 3, s_16); /* <-, line 104 */
685
+ { int ret = slice_from_s(z, 3, s_16);
653
686
  if (ret < 0) return ret;
654
687
  }
655
688
  break;
656
689
  case 4:
657
690
  { int ret = r_R2(z);
658
- if (ret == 0) return 0; /* call R2, line 107 */
659
- if (ret < 0) return ret;
691
+ if (ret <= 0) return ret;
660
692
  }
661
- { int ret = slice_from_s(z, 1, s_17); /* <-, line 107 */
693
+ { int ret = slice_from_s(z, 1, s_17);
662
694
  if (ret < 0) return ret;
663
695
  }
664
696
  break;
665
697
  case 5:
666
698
  { int ret = r_R2(z);
667
- if (ret == 0) return 0; /* call R2, line 110 */
668
- if (ret < 0) return ret;
699
+ if (ret <= 0) return ret;
669
700
  }
670
- { int ret = slice_from_s(z, 3, s_18); /* <-, line 110 */
701
+ { int ret = slice_from_s(z, 3, s_18);
671
702
  if (ret < 0) return ret;
672
703
  }
673
704
  break;
674
705
  case 6:
675
706
  { int ret = r_RV(z);
676
- if (ret == 0) return 0; /* call RV, line 114 */
677
- if (ret < 0) return ret;
707
+ if (ret <= 0) return ret;
678
708
  }
679
- { int ret = slice_del(z); /* delete, line 114 */
709
+ { int ret = slice_del(z);
680
710
  if (ret < 0) return ret;
681
711
  }
682
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 115 */
683
- z->ket = z->c; /* [, line 116 */
684
- among_var = find_among_b(z, a_2, 6); /* substring, line 116 */
685
- if (!(among_var)) { z->c = z->l - m_keep; goto lab3; }
686
- z->bra = z->c; /* ], line 116 */
687
- switch(among_var) {
688
- case 0: { z->c = z->l - m_keep; goto lab3; }
712
+ { int m3 = z->l - z->c; (void)m3;
713
+ z->ket = z->c;
714
+ among_var = find_among_b(z, a_2, 6);
715
+ if (!(among_var)) { z->c = z->l - m3; goto lab3; }
716
+ z->bra = z->c;
717
+ switch (among_var) {
689
718
  case 1:
690
719
  { int ret = r_R2(z);
691
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 117 */
720
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
692
721
  if (ret < 0) return ret;
693
722
  }
694
- { int ret = slice_del(z); /* delete, line 117 */
723
+ { int ret = slice_del(z);
695
724
  if (ret < 0) return ret;
696
725
  }
697
- z->ket = z->c; /* [, line 117 */
698
- if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m_keep; goto lab3; }
699
- z->bra = z->c; /* ], line 117 */
726
+ z->ket = z->c;
727
+ if (!(eq_s_b(z, 2, s_19))) { z->c = z->l - m3; goto lab3; }
728
+ z->bra = z->c;
700
729
  { int ret = r_R2(z);
701
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 117 */
730
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
702
731
  if (ret < 0) return ret;
703
732
  }
704
- { int ret = slice_del(z); /* delete, line 117 */
733
+ { int ret = slice_del(z);
705
734
  if (ret < 0) return ret;
706
735
  }
707
736
  break;
708
737
  case 2:
709
- { int m2 = z->l - z->c; (void)m2; /* or, line 118 */
738
+ { int m4 = z->l - z->c; (void)m4;
710
739
  { int ret = r_R2(z);
711
- if (ret == 0) goto lab5; /* call R2, line 118 */
740
+ if (ret == 0) goto lab5;
712
741
  if (ret < 0) return ret;
713
742
  }
714
- { int ret = slice_del(z); /* delete, line 118 */
743
+ { int ret = slice_del(z);
715
744
  if (ret < 0) return ret;
716
745
  }
717
746
  goto lab4;
718
747
  lab5:
719
- z->c = z->l - m2;
748
+ z->c = z->l - m4;
720
749
  { int ret = r_R1(z);
721
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R1, line 118 */
750
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
722
751
  if (ret < 0) return ret;
723
752
  }
724
- { int ret = slice_from_s(z, 3, s_20); /* <-, line 118 */
753
+ { int ret = slice_from_s(z, 3, s_20);
725
754
  if (ret < 0) return ret;
726
755
  }
727
756
  }
@@ -729,19 +758,19 @@ static int r_standard_suffix(struct SN_env * z) {
729
758
  break;
730
759
  case 3:
731
760
  { int ret = r_R2(z);
732
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 120 */
761
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
733
762
  if (ret < 0) return ret;
734
763
  }
735
- { int ret = slice_del(z); /* delete, line 120 */
764
+ { int ret = slice_del(z);
736
765
  if (ret < 0) return ret;
737
766
  }
738
767
  break;
739
768
  case 4:
740
769
  { int ret = r_RV(z);
741
- if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call RV, line 122 */
770
+ if (ret == 0) { z->c = z->l - m3; goto lab3; }
742
771
  if (ret < 0) return ret;
743
772
  }
744
- { int ret = slice_from_s(z, 1, s_21); /* <-, line 122 */
773
+ { int ret = slice_from_s(z, 1, s_21);
745
774
  if (ret < 0) return ret;
746
775
  }
747
776
  break;
@@ -752,51 +781,49 @@ static int r_standard_suffix(struct SN_env * z) {
752
781
  break;
753
782
  case 7:
754
783
  { int ret = r_R2(z);
755
- if (ret == 0) return 0; /* call R2, line 129 */
756
- if (ret < 0) return ret;
784
+ if (ret <= 0) return ret;
757
785
  }
758
- { int ret = slice_del(z); /* delete, line 129 */
786
+ { int ret = slice_del(z);
759
787
  if (ret < 0) return ret;
760
788
  }
761
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 130 */
762
- z->ket = z->c; /* [, line 131 */
763
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab6; }
764
- among_var = find_among_b(z, a_3, 3); /* substring, line 131 */
765
- if (!(among_var)) { z->c = z->l - m_keep; goto lab6; }
766
- z->bra = z->c; /* ], line 131 */
767
- switch(among_var) {
768
- case 0: { z->c = z->l - m_keep; goto lab6; }
789
+ { int m5 = z->l - z->c; (void)m5;
790
+ z->ket = z->c;
791
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m5; goto lab6; }
792
+ among_var = find_among_b(z, a_3, 3);
793
+ if (!(among_var)) { z->c = z->l - m5; goto lab6; }
794
+ z->bra = z->c;
795
+ switch (among_var) {
769
796
  case 1:
770
- { int m3 = z->l - z->c; (void)m3; /* or, line 132 */
797
+ { int m6 = z->l - z->c; (void)m6;
771
798
  { int ret = r_R2(z);
772
- if (ret == 0) goto lab8; /* call R2, line 132 */
799
+ if (ret == 0) goto lab8;
773
800
  if (ret < 0) return ret;
774
801
  }
775
- { int ret = slice_del(z); /* delete, line 132 */
802
+ { int ret = slice_del(z);
776
803
  if (ret < 0) return ret;
777
804
  }
778
805
  goto lab7;
779
806
  lab8:
780
- z->c = z->l - m3;
781
- { int ret = slice_from_s(z, 3, s_22); /* <-, line 132 */
807
+ z->c = z->l - m6;
808
+ { int ret = slice_from_s(z, 3, s_22);
782
809
  if (ret < 0) return ret;
783
810
  }
784
811
  }
785
812
  lab7:
786
813
  break;
787
814
  case 2:
788
- { int m4 = z->l - z->c; (void)m4; /* or, line 133 */
815
+ { int m7 = z->l - z->c; (void)m7;
789
816
  { int ret = r_R2(z);
790
- if (ret == 0) goto lab10; /* call R2, line 133 */
817
+ if (ret == 0) goto lab10;
791
818
  if (ret < 0) return ret;
792
819
  }
793
- { int ret = slice_del(z); /* delete, line 133 */
820
+ { int ret = slice_del(z);
794
821
  if (ret < 0) return ret;
795
822
  }
796
823
  goto lab9;
797
824
  lab10:
798
- z->c = z->l - m4;
799
- { int ret = slice_from_s(z, 3, s_23); /* <-, line 133 */
825
+ z->c = z->l - m7;
826
+ { int ret = slice_from_s(z, 3, s_23);
800
827
  if (ret < 0) return ret;
801
828
  }
802
829
  }
@@ -804,10 +831,10 @@ static int r_standard_suffix(struct SN_env * z) {
804
831
  break;
805
832
  case 3:
806
833
  { int ret = r_R2(z);
807
- if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R2, line 134 */
834
+ if (ret == 0) { z->c = z->l - m5; goto lab6; }
808
835
  if (ret < 0) return ret;
809
836
  }
810
- { int ret = slice_del(z); /* delete, line 134 */
837
+ { int ret = slice_del(z);
811
838
  if (ret < 0) return ret;
812
839
  }
813
840
  break;
@@ -818,38 +845,37 @@ static int r_standard_suffix(struct SN_env * z) {
818
845
  break;
819
846
  case 8:
820
847
  { int ret = r_R2(z);
821
- if (ret == 0) return 0; /* call R2, line 141 */
822
- if (ret < 0) return ret;
848
+ if (ret <= 0) return ret;
823
849
  }
824
- { int ret = slice_del(z); /* delete, line 141 */
850
+ { int ret = slice_del(z);
825
851
  if (ret < 0) return ret;
826
852
  }
827
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 142 */
828
- z->ket = z->c; /* [, line 142 */
829
- if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m_keep; goto lab11; }
830
- z->bra = z->c; /* ], line 142 */
853
+ { int m8 = z->l - z->c; (void)m8;
854
+ z->ket = z->c;
855
+ if (!(eq_s_b(z, 2, s_24))) { z->c = z->l - m8; goto lab11; }
856
+ z->bra = z->c;
831
857
  { int ret = r_R2(z);
832
- if (ret == 0) { z->c = z->l - m_keep; goto lab11; } /* call R2, line 142 */
858
+ if (ret == 0) { z->c = z->l - m8; goto lab11; }
833
859
  if (ret < 0) return ret;
834
860
  }
835
- { int ret = slice_del(z); /* delete, line 142 */
861
+ { int ret = slice_del(z);
836
862
  if (ret < 0) return ret;
837
863
  }
838
- z->ket = z->c; /* [, line 142 */
839
- if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m_keep; goto lab11; }
840
- z->bra = z->c; /* ], line 142 */
841
- { int m5 = z->l - z->c; (void)m5; /* or, line 142 */
864
+ z->ket = z->c;
865
+ if (!(eq_s_b(z, 2, s_25))) { z->c = z->l - m8; goto lab11; }
866
+ z->bra = z->c;
867
+ { int m9 = z->l - z->c; (void)m9;
842
868
  { int ret = r_R2(z);
843
- if (ret == 0) goto lab13; /* call R2, line 142 */
869
+ if (ret == 0) goto lab13;
844
870
  if (ret < 0) return ret;
845
871
  }
846
- { int ret = slice_del(z); /* delete, line 142 */
872
+ { int ret = slice_del(z);
847
873
  if (ret < 0) return ret;
848
874
  }
849
875
  goto lab12;
850
876
  lab13:
851
- z->c = z->l - m5;
852
- { int ret = slice_from_s(z, 3, s_26); /* <-, line 142 */
877
+ z->c = z->l - m9;
878
+ { int ret = slice_from_s(z, 3, s_26);
853
879
  if (ret < 0) return ret;
854
880
  }
855
881
  }
@@ -859,36 +885,34 @@ static int r_standard_suffix(struct SN_env * z) {
859
885
  }
860
886
  break;
861
887
  case 9:
862
- { int ret = slice_from_s(z, 3, s_27); /* <-, line 144 */
888
+ { int ret = slice_from_s(z, 3, s_27);
863
889
  if (ret < 0) return ret;
864
890
  }
865
891
  break;
866
892
  case 10:
867
893
  { int ret = r_R1(z);
868
- if (ret == 0) return 0; /* call R1, line 145 */
869
- if (ret < 0) return ret;
894
+ if (ret <= 0) return ret;
870
895
  }
871
- { int ret = slice_from_s(z, 2, s_28); /* <-, line 145 */
896
+ { int ret = slice_from_s(z, 2, s_28);
872
897
  if (ret < 0) return ret;
873
898
  }
874
899
  break;
875
900
  case 11:
876
- { int m6 = z->l - z->c; (void)m6; /* or, line 147 */
901
+ { int m10 = z->l - z->c; (void)m10;
877
902
  { int ret = r_R2(z);
878
- if (ret == 0) goto lab15; /* call R2, line 147 */
903
+ if (ret == 0) goto lab15;
879
904
  if (ret < 0) return ret;
880
905
  }
881
- { int ret = slice_del(z); /* delete, line 147 */
906
+ { int ret = slice_del(z);
882
907
  if (ret < 0) return ret;
883
908
  }
884
909
  goto lab14;
885
910
  lab15:
886
- z->c = z->l - m6;
911
+ z->c = z->l - m10;
887
912
  { int ret = r_R1(z);
888
- if (ret == 0) return 0; /* call R1, line 147 */
889
- if (ret < 0) return ret;
913
+ if (ret <= 0) return ret;
890
914
  }
891
- { int ret = slice_from_s(z, 3, s_29); /* <-, line 147 */
915
+ { int ret = slice_from_s(z, 3, s_29);
892
916
  if (ret < 0) return ret;
893
917
  }
894
918
  }
@@ -896,116 +920,108 @@ static int r_standard_suffix(struct SN_env * z) {
896
920
  break;
897
921
  case 12:
898
922
  { int ret = r_R1(z);
899
- if (ret == 0) return 0; /* call R1, line 150 */
900
- if (ret < 0) return ret;
923
+ if (ret <= 0) return ret;
901
924
  }
902
925
  if (out_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
903
- { int ret = slice_del(z); /* delete, line 150 */
926
+ { int ret = slice_del(z);
904
927
  if (ret < 0) return ret;
905
928
  }
906
929
  break;
907
930
  case 13:
908
931
  { int ret = r_RV(z);
909
- if (ret == 0) return 0; /* call RV, line 155 */
910
- if (ret < 0) return ret;
932
+ if (ret <= 0) return ret;
911
933
  }
912
- { int ret = slice_from_s(z, 3, s_30); /* <-, line 155 */
934
+ { int ret = slice_from_s(z, 3, s_30);
913
935
  if (ret < 0) return ret;
914
936
  }
915
- return 0; /* fail, line 155 */
937
+ return 0;
916
938
  break;
917
939
  case 14:
918
940
  { int ret = r_RV(z);
919
- if (ret == 0) return 0; /* call RV, line 156 */
920
- if (ret < 0) return ret;
941
+ if (ret <= 0) return ret;
921
942
  }
922
- { int ret = slice_from_s(z, 3, s_31); /* <-, line 156 */
943
+ { int ret = slice_from_s(z, 3, s_31);
923
944
  if (ret < 0) return ret;
924
945
  }
925
- return 0; /* fail, line 156 */
946
+ return 0;
926
947
  break;
927
948
  case 15:
928
- { int m_test = z->l - z->c; /* test, line 158 */
949
+ { int m_test11 = z->l - z->c;
929
950
  if (in_grouping_b_U(z, g_v, 97, 251, 0)) return 0;
930
951
  { int ret = r_RV(z);
931
- if (ret == 0) return 0; /* call RV, line 158 */
932
- if (ret < 0) return ret;
952
+ if (ret <= 0) return ret;
933
953
  }
934
- z->c = z->l - m_test;
954
+ z->c = z->l - m_test11;
935
955
  }
936
- { int ret = slice_del(z); /* delete, line 158 */
956
+ { int ret = slice_del(z);
937
957
  if (ret < 0) return ret;
938
958
  }
939
- return 0; /* fail, line 158 */
959
+ return 0;
940
960
  break;
941
961
  }
942
962
  return 1;
943
963
  }
944
964
 
945
965
  static int r_i_verb_suffix(struct SN_env * z) {
946
- int among_var;
947
- { int mlimit; /* setlimit, line 163 */
948
- int m1 = z->l - z->c; (void)m1;
949
- if (z->c < z->I[0]) return 0;
950
- z->c = z->I[0]; /* tomark, line 163 */
951
- mlimit = z->lb; z->lb = z->c;
952
- z->c = z->l - m1;
953
- z->ket = z->c; /* [, line 164 */
954
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
955
- among_var = find_among_b(z, a_5, 35); /* substring, line 164 */
956
- if (!(among_var)) { z->lb = mlimit; return 0; }
957
- z->bra = z->c; /* ], line 164 */
958
- switch(among_var) {
959
- case 0: { z->lb = mlimit; return 0; }
960
- case 1:
961
- if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit; return 0; }
962
- { int ret = slice_del(z); /* delete, line 170 */
963
- if (ret < 0) return ret;
964
- }
965
- break;
966
+
967
+ { int mlimit1;
968
+ if (z->c < z->I[2]) return 0;
969
+ mlimit1 = z->lb; z->lb = z->I[2];
970
+ z->ket = z->c;
971
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68944418 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
972
+ if (!(find_among_b(z, a_5, 35))) { z->lb = mlimit1; return 0; }
973
+ z->bra = z->c;
974
+ { int m2 = z->l - z->c; (void)m2;
975
+ if (z->c <= z->lb || z->p[z->c - 1] != 'H') goto lab0;
976
+ z->c--;
977
+ { z->lb = mlimit1; return 0; }
978
+ lab0:
979
+ z->c = z->l - m2;
980
+ }
981
+ if (out_grouping_b_U(z, g_v, 97, 251, 0)) { z->lb = mlimit1; return 0; }
982
+ { int ret = slice_del(z);
983
+ if (ret < 0) return ret;
966
984
  }
967
- z->lb = mlimit;
985
+ z->lb = mlimit1;
968
986
  }
969
987
  return 1;
970
988
  }
971
989
 
972
990
  static int r_verb_suffix(struct SN_env * z) {
973
991
  int among_var;
974
- { int mlimit; /* setlimit, line 174 */
975
- int m1 = z->l - z->c; (void)m1;
976
- if (z->c < z->I[0]) return 0;
977
- z->c = z->I[0]; /* tomark, line 174 */
978
- mlimit = z->lb; z->lb = z->c;
979
- z->c = z->l - m1;
980
- z->ket = z->c; /* [, line 175 */
981
- among_var = find_among_b(z, a_6, 38); /* substring, line 175 */
982
- if (!(among_var)) { z->lb = mlimit; return 0; }
983
- z->bra = z->c; /* ], line 175 */
984
- switch(among_var) {
985
- case 0: { z->lb = mlimit; return 0; }
992
+
993
+ { int mlimit1;
994
+ if (z->c < z->I[2]) return 0;
995
+ mlimit1 = z->lb; z->lb = z->I[2];
996
+ z->ket = z->c;
997
+ among_var = find_among_b(z, a_6, 38);
998
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
999
+ z->bra = z->c;
1000
+ switch (among_var) {
986
1001
  case 1:
987
1002
  { int ret = r_R2(z);
988
- if (ret == 0) { z->lb = mlimit; return 0; } /* call R2, line 177 */
1003
+ if (ret == 0) { z->lb = mlimit1; return 0; }
989
1004
  if (ret < 0) return ret;
990
1005
  }
991
- { int ret = slice_del(z); /* delete, line 177 */
1006
+ { int ret = slice_del(z);
992
1007
  if (ret < 0) return ret;
993
1008
  }
994
1009
  break;
995
1010
  case 2:
996
- { int ret = slice_del(z); /* delete, line 185 */
1011
+ { int ret = slice_del(z);
997
1012
  if (ret < 0) return ret;
998
1013
  }
999
1014
  break;
1000
1015
  case 3:
1001
- { int ret = slice_del(z); /* delete, line 190 */
1016
+ { int ret = slice_del(z);
1002
1017
  if (ret < 0) return ret;
1003
1018
  }
1004
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 191 */
1005
- z->ket = z->c; /* [, line 191 */
1006
- if (!(eq_s_b(z, 1, s_32))) { z->c = z->l - m_keep; goto lab0; }
1007
- z->bra = z->c; /* ], line 191 */
1008
- { int ret = slice_del(z); /* delete, line 191 */
1019
+ { int m2 = z->l - z->c; (void)m2;
1020
+ z->ket = z->c;
1021
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') { z->c = z->l - m2; goto lab0; }
1022
+ z->c--;
1023
+ z->bra = z->c;
1024
+ { int ret = slice_del(z);
1009
1025
  if (ret < 0) return ret;
1010
1026
  }
1011
1027
  lab0:
@@ -1013,91 +1029,93 @@ static int r_verb_suffix(struct SN_env * z) {
1013
1029
  }
1014
1030
  break;
1015
1031
  }
1016
- z->lb = mlimit;
1032
+ z->lb = mlimit1;
1017
1033
  }
1018
1034
  return 1;
1019
1035
  }
1020
1036
 
1021
1037
  static int r_residual_suffix(struct SN_env * z) {
1022
1038
  int among_var;
1023
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 199 */
1024
- z->ket = z->c; /* [, line 199 */
1025
- if (!(eq_s_b(z, 1, s_33))) { z->c = z->l - m_keep; goto lab0; }
1026
- z->bra = z->c; /* ], line 199 */
1027
- { int m_test = z->l - z->c; /* test, line 199 */
1028
- if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m_keep; goto lab0; }
1029
- z->c = z->l - m_test;
1039
+ { int m1 = z->l - z->c; (void)m1;
1040
+ z->ket = z->c;
1041
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') { z->c = z->l - m1; goto lab0; }
1042
+ z->c--;
1043
+ z->bra = z->c;
1044
+ { int m_test2 = z->l - z->c;
1045
+ { int m3 = z->l - z->c; (void)m3;
1046
+ if (!(eq_s_b(z, 2, s_32))) goto lab2;
1047
+ goto lab1;
1048
+ lab2:
1049
+ z->c = z->l - m3;
1050
+ if (out_grouping_b_U(z, g_keep_with_s, 97, 232, 0)) { z->c = z->l - m1; goto lab0; }
1051
+ }
1052
+ lab1:
1053
+ z->c = z->l - m_test2;
1030
1054
  }
1031
- { int ret = slice_del(z); /* delete, line 199 */
1055
+ { int ret = slice_del(z);
1032
1056
  if (ret < 0) return ret;
1033
1057
  }
1034
1058
  lab0:
1035
1059
  ;
1036
1060
  }
1037
- { int mlimit; /* setlimit, line 200 */
1038
- int m1 = z->l - z->c; (void)m1;
1039
- if (z->c < z->I[0]) return 0;
1040
- z->c = z->I[0]; /* tomark, line 200 */
1041
- mlimit = z->lb; z->lb = z->c;
1042
- z->c = z->l - m1;
1043
- z->ket = z->c; /* [, line 201 */
1044
- among_var = find_among_b(z, a_7, 7); /* substring, line 201 */
1045
- if (!(among_var)) { z->lb = mlimit; return 0; }
1046
- z->bra = z->c; /* ], line 201 */
1047
- switch(among_var) {
1048
- case 0: { z->lb = mlimit; return 0; }
1061
+
1062
+ { int mlimit4;
1063
+ if (z->c < z->I[2]) return 0;
1064
+ mlimit4 = z->lb; z->lb = z->I[2];
1065
+ z->ket = z->c;
1066
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((278560 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit4; return 0; }
1067
+ among_var = find_among_b(z, a_7, 6);
1068
+ if (!(among_var)) { z->lb = mlimit4; return 0; }
1069
+ z->bra = z->c;
1070
+ switch (among_var) {
1049
1071
  case 1:
1050
1072
  { int ret = r_R2(z);
1051
- if (ret == 0) { z->lb = mlimit; return 0; } /* call R2, line 202 */
1073
+ if (ret == 0) { z->lb = mlimit4; return 0; }
1052
1074
  if (ret < 0) return ret;
1053
1075
  }
1054
- { int m2 = z->l - z->c; (void)m2; /* or, line 202 */
1055
- if (!(eq_s_b(z, 1, s_34))) goto lab2;
1056
- goto lab1;
1057
- lab2:
1058
- z->c = z->l - m2;
1059
- if (!(eq_s_b(z, 1, s_35))) { z->lb = mlimit; return 0; }
1076
+ { int m5 = z->l - z->c; (void)m5;
1077
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab4;
1078
+ z->c--;
1079
+ goto lab3;
1080
+ lab4:
1081
+ z->c = z->l - m5;
1082
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') { z->lb = mlimit4; return 0; }
1083
+ z->c--;
1060
1084
  }
1061
- lab1:
1062
- { int ret = slice_del(z); /* delete, line 202 */
1085
+ lab3:
1086
+ { int ret = slice_del(z);
1063
1087
  if (ret < 0) return ret;
1064
1088
  }
1065
1089
  break;
1066
1090
  case 2:
1067
- { int ret = slice_from_s(z, 1, s_36); /* <-, line 204 */
1091
+ { int ret = slice_from_s(z, 1, s_33);
1068
1092
  if (ret < 0) return ret;
1069
1093
  }
1070
1094
  break;
1071
1095
  case 3:
1072
- { int ret = slice_del(z); /* delete, line 205 */
1073
- if (ret < 0) return ret;
1074
- }
1075
- break;
1076
- case 4:
1077
- if (!(eq_s_b(z, 2, s_37))) { z->lb = mlimit; return 0; }
1078
- { int ret = slice_del(z); /* delete, line 206 */
1096
+ { int ret = slice_del(z);
1079
1097
  if (ret < 0) return ret;
1080
1098
  }
1081
1099
  break;
1082
1100
  }
1083
- z->lb = mlimit;
1101
+ z->lb = mlimit4;
1084
1102
  }
1085
1103
  return 1;
1086
1104
  }
1087
1105
 
1088
1106
  static int r_un_double(struct SN_env * z) {
1089
- { int m_test = z->l - z->c; /* test, line 212 */
1107
+ { int m_test1 = z->l - z->c;
1090
1108
  if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1069056 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
1091
- if (!(find_among_b(z, a_8, 5))) return 0; /* among, line 212 */
1092
- z->c = z->l - m_test;
1109
+ if (!(find_among_b(z, a_8, 5))) return 0;
1110
+ z->c = z->l - m_test1;
1093
1111
  }
1094
- z->ket = z->c; /* [, line 212 */
1095
- { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
1112
+ z->ket = z->c;
1113
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
1096
1114
  if (ret < 0) return 0;
1097
- z->c = ret; /* next, line 212 */
1115
+ z->c = ret;
1098
1116
  }
1099
- z->bra = z->c; /* ], line 212 */
1100
- { int ret = slice_del(z); /* delete, line 212 */
1117
+ z->bra = z->c;
1118
+ { int ret = slice_del(z);
1101
1119
  if (ret < 0) return ret;
1102
1120
  }
1103
1121
  return 1;
@@ -1105,7 +1123,7 @@ static int r_un_double(struct SN_env * z) {
1105
1123
 
1106
1124
  static int r_un_accent(struct SN_env * z) {
1107
1125
  { int i = 1;
1108
- while(1) { /* atleast, line 216 */
1126
+ while(1) {
1109
1127
  if (out_grouping_b_U(z, g_v, 97, 251, 0)) goto lab0;
1110
1128
  i--;
1111
1129
  continue;
@@ -1114,129 +1132,118 @@ static int r_un_accent(struct SN_env * z) {
1114
1132
  }
1115
1133
  if (i > 0) return 0;
1116
1134
  }
1117
- z->ket = z->c; /* [, line 217 */
1118
- { int m1 = z->l - z->c; (void)m1; /* or, line 217 */
1119
- if (!(eq_s_b(z, 2, s_38))) goto lab2;
1135
+ z->ket = z->c;
1136
+ { int m1 = z->l - z->c; (void)m1;
1137
+ if (!(eq_s_b(z, 2, s_34))) goto lab2;
1120
1138
  goto lab1;
1121
1139
  lab2:
1122
1140
  z->c = z->l - m1;
1123
- if (!(eq_s_b(z, 2, s_39))) return 0;
1141
+ if (!(eq_s_b(z, 2, s_35))) return 0;
1124
1142
  }
1125
1143
  lab1:
1126
- z->bra = z->c; /* ], line 217 */
1127
- { int ret = slice_from_s(z, 1, s_40); /* <-, line 217 */
1144
+ z->bra = z->c;
1145
+ { int ret = slice_from_s(z, 1, s_36);
1128
1146
  if (ret < 0) return ret;
1129
1147
  }
1130
1148
  return 1;
1131
1149
  }
1132
1150
 
1133
1151
  extern int french_UTF_8_stem(struct SN_env * z) {
1134
- { int c1 = z->c; /* do, line 223 */
1152
+ { int c1 = z->c;
1135
1153
  { int ret = r_prelude(z);
1136
- if (ret == 0) goto lab0; /* call prelude, line 223 */
1137
1154
  if (ret < 0) return ret;
1138
1155
  }
1139
- lab0:
1140
1156
  z->c = c1;
1141
1157
  }
1142
- { int c2 = z->c; /* do, line 224 */
1143
- { int ret = r_mark_regions(z);
1144
- if (ret == 0) goto lab1; /* call mark_regions, line 224 */
1145
- if (ret < 0) return ret;
1146
- }
1147
- lab1:
1148
- z->c = c2;
1158
+
1159
+ { int ret = r_mark_regions(z);
1160
+ if (ret < 0) return ret;
1149
1161
  }
1150
- z->lb = z->c; z->c = z->l; /* backwards, line 225 */
1162
+ z->lb = z->c; z->c = z->l;
1151
1163
 
1152
- { int m3 = z->l - z->c; (void)m3; /* do, line 227 */
1153
- { int m4 = z->l - z->c; (void)m4; /* or, line 237 */
1154
- { int m5 = z->l - z->c; (void)m5; /* and, line 233 */
1155
- { int m6 = z->l - z->c; (void)m6; /* or, line 229 */
1164
+ { int m2 = z->l - z->c; (void)m2;
1165
+ { int m3 = z->l - z->c; (void)m3;
1166
+ { int m4 = z->l - z->c; (void)m4;
1167
+ { int m5 = z->l - z->c; (void)m5;
1156
1168
  { int ret = r_standard_suffix(z);
1157
- if (ret == 0) goto lab6; /* call standard_suffix, line 229 */
1169
+ if (ret == 0) goto lab4;
1158
1170
  if (ret < 0) return ret;
1159
1171
  }
1160
- goto lab5;
1161
- lab6:
1162
- z->c = z->l - m6;
1172
+ goto lab3;
1173
+ lab4:
1174
+ z->c = z->l - m5;
1163
1175
  { int ret = r_i_verb_suffix(z);
1164
- if (ret == 0) goto lab7; /* call i_verb_suffix, line 230 */
1176
+ if (ret == 0) goto lab5;
1165
1177
  if (ret < 0) return ret;
1166
1178
  }
1167
- goto lab5;
1168
- lab7:
1169
- z->c = z->l - m6;
1179
+ goto lab3;
1180
+ lab5:
1181
+ z->c = z->l - m5;
1170
1182
  { int ret = r_verb_suffix(z);
1171
- if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
1183
+ if (ret == 0) goto lab2;
1172
1184
  if (ret < 0) return ret;
1173
1185
  }
1174
1186
  }
1175
- lab5:
1176
- z->c = z->l - m5;
1177
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 234 */
1178
- z->ket = z->c; /* [, line 234 */
1179
- { int m7 = z->l - z->c; (void)m7; /* or, line 234 */
1180
- if (!(eq_s_b(z, 1, s_41))) goto lab10;
1181
- z->bra = z->c; /* ], line 234 */
1182
- { int ret = slice_from_s(z, 1, s_42); /* <-, line 234 */
1187
+ lab3:
1188
+ z->c = z->l - m4;
1189
+ { int m6 = z->l - z->c; (void)m6;
1190
+ z->ket = z->c;
1191
+ { int m7 = z->l - z->c; (void)m7;
1192
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
1193
+ z->c--;
1194
+ z->bra = z->c;
1195
+ { int ret = slice_from_s(z, 1, s_37);
1183
1196
  if (ret < 0) return ret;
1184
1197
  }
1185
- goto lab9;
1186
- lab10:
1198
+ goto lab7;
1199
+ lab8:
1187
1200
  z->c = z->l - m7;
1188
- if (!(eq_s_b(z, 2, s_43))) { z->c = z->l - m_keep; goto lab8; }
1189
- z->bra = z->c; /* ], line 235 */
1190
- { int ret = slice_from_s(z, 1, s_44); /* <-, line 235 */
1201
+ if (!(eq_s_b(z, 2, s_38))) { z->c = z->l - m6; goto lab6; }
1202
+ z->bra = z->c;
1203
+ { int ret = slice_from_s(z, 1, s_39);
1191
1204
  if (ret < 0) return ret;
1192
1205
  }
1193
1206
  }
1194
- lab9:
1195
- lab8:
1207
+ lab7:
1208
+ lab6:
1196
1209
  ;
1197
1210
  }
1198
1211
  }
1199
- goto lab3;
1200
- lab4:
1201
- z->c = z->l - m4;
1212
+ goto lab1;
1213
+ lab2:
1214
+ z->c = z->l - m3;
1202
1215
  { int ret = r_residual_suffix(z);
1203
- if (ret == 0) goto lab2; /* call residual_suffix, line 238 */
1216
+ if (ret == 0) goto lab0;
1204
1217
  if (ret < 0) return ret;
1205
1218
  }
1206
1219
  }
1207
- lab3:
1208
- lab2:
1209
- z->c = z->l - m3;
1220
+ lab1:
1221
+ lab0:
1222
+ z->c = z->l - m2;
1210
1223
  }
1211
- { int m8 = z->l - z->c; (void)m8; /* do, line 243 */
1224
+ { int m8 = z->l - z->c; (void)m8;
1212
1225
  { int ret = r_un_double(z);
1213
- if (ret == 0) goto lab11; /* call un_double, line 243 */
1214
1226
  if (ret < 0) return ret;
1215
1227
  }
1216
- lab11:
1217
1228
  z->c = z->l - m8;
1218
1229
  }
1219
- { int m9 = z->l - z->c; (void)m9; /* do, line 244 */
1230
+ { int m9 = z->l - z->c; (void)m9;
1220
1231
  { int ret = r_un_accent(z);
1221
- if (ret == 0) goto lab12; /* call un_accent, line 244 */
1222
1232
  if (ret < 0) return ret;
1223
1233
  }
1224
- lab12:
1225
1234
  z->c = z->l - m9;
1226
1235
  }
1227
1236
  z->c = z->lb;
1228
- { int c10 = z->c; /* do, line 246 */
1237
+ { int c10 = z->c;
1229
1238
  { int ret = r_postlude(z);
1230
- if (ret == 0) goto lab13; /* call postlude, line 246 */
1231
1239
  if (ret < 0) return ret;
1232
1240
  }
1233
- lab13:
1234
1241
  z->c = c10;
1235
1242
  }
1236
1243
  return 1;
1237
1244
  }
1238
1245
 
1239
- extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
1246
+ extern struct SN_env * french_UTF_8_create_env(void) { return SN_create_env(0, 3); }
1240
1247
 
1241
1248
  extern void french_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
1242
1249