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,10 +26,10 @@ static const symbol s_0_3[2] = { 's', 's' };
26
26
 
27
27
  static const struct among a_0[4] =
28
28
  {
29
- /* 0 */ { 1, s_0_0, -1, 3, 0},
30
- /* 1 */ { 3, s_0_1, 0, 2, 0},
31
- /* 2 */ { 4, s_0_2, 0, 1, 0},
32
- /* 3 */ { 2, s_0_3, 0, -1, 0}
29
+ { 1, s_0_0, -1, 3, 0},
30
+ { 3, s_0_1, 0, 2, 0},
31
+ { 4, s_0_2, 0, 1, 0},
32
+ { 2, s_0_3, 0, -1, 0}
33
33
  };
34
34
 
35
35
  static const symbol s_1_1[2] = { 'b', 'b' };
@@ -47,19 +47,19 @@ static const symbol s_1_12[2] = { 'i', 'z' };
47
47
 
48
48
  static const struct among a_1[13] =
49
49
  {
50
- /* 0 */ { 0, 0, -1, 3, 0},
51
- /* 1 */ { 2, s_1_1, 0, 2, 0},
52
- /* 2 */ { 2, s_1_2, 0, 2, 0},
53
- /* 3 */ { 2, s_1_3, 0, 2, 0},
54
- /* 4 */ { 2, s_1_4, 0, 2, 0},
55
- /* 5 */ { 2, s_1_5, 0, 1, 0},
56
- /* 6 */ { 2, s_1_6, 0, 2, 0},
57
- /* 7 */ { 2, s_1_7, 0, 2, 0},
58
- /* 8 */ { 2, s_1_8, 0, 2, 0},
59
- /* 9 */ { 2, s_1_9, 0, 2, 0},
60
- /* 10 */ { 2, s_1_10, 0, 1, 0},
61
- /* 11 */ { 2, s_1_11, 0, 2, 0},
62
- /* 12 */ { 2, s_1_12, 0, 1, 0}
50
+ { 0, 0, -1, 3, 0},
51
+ { 2, s_1_1, 0, 2, 0},
52
+ { 2, s_1_2, 0, 2, 0},
53
+ { 2, s_1_3, 0, 2, 0},
54
+ { 2, s_1_4, 0, 2, 0},
55
+ { 2, s_1_5, 0, 1, 0},
56
+ { 2, s_1_6, 0, 2, 0},
57
+ { 2, s_1_7, 0, 2, 0},
58
+ { 2, s_1_8, 0, 2, 0},
59
+ { 2, s_1_9, 0, 2, 0},
60
+ { 2, s_1_10, 0, 1, 0},
61
+ { 2, s_1_11, 0, 2, 0},
62
+ { 2, s_1_12, 0, 1, 0}
63
63
  };
64
64
 
65
65
  static const symbol s_2_0[2] = { 'e', 'd' };
@@ -68,9 +68,9 @@ static const symbol s_2_2[3] = { 'i', 'n', 'g' };
68
68
 
69
69
  static const struct among a_2[3] =
70
70
  {
71
- /* 0 */ { 2, s_2_0, -1, 2, 0},
72
- /* 1 */ { 3, s_2_1, 0, 1, 0},
73
- /* 2 */ { 3, s_2_2, -1, 2, 0}
71
+ { 2, s_2_0, -1, 2, 0},
72
+ { 3, s_2_1, 0, 1, 0},
73
+ { 3, s_2_2, -1, 2, 0}
74
74
  };
75
75
 
76
76
  static const symbol s_3_0[4] = { 'a', 'n', 'c', 'i' };
@@ -96,26 +96,26 @@ static const symbol s_3_19[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
96
96
 
97
97
  static const struct among a_3[20] =
98
98
  {
99
- /* 0 */ { 4, s_3_0, -1, 3, 0},
100
- /* 1 */ { 4, s_3_1, -1, 2, 0},
101
- /* 2 */ { 4, s_3_2, -1, 4, 0},
102
- /* 3 */ { 3, s_3_3, -1, 6, 0},
103
- /* 4 */ { 4, s_3_4, -1, 9, 0},
104
- /* 5 */ { 5, s_3_5, -1, 12, 0},
105
- /* 6 */ { 5, s_3_6, -1, 5, 0},
106
- /* 7 */ { 5, s_3_7, -1, 10, 0},
107
- /* 8 */ { 6, s_3_8, -1, 14, 0},
108
- /* 9 */ { 5, s_3_9, -1, 13, 0},
109
- /* 10 */ { 6, s_3_10, -1, 1, 0},
110
- /* 11 */ { 7, s_3_11, 10, 8, 0},
111
- /* 12 */ { 5, s_3_12, -1, 10, 0},
112
- /* 13 */ { 5, s_3_13, -1, 8, 0},
113
- /* 14 */ { 7, s_3_14, 13, 7, 0},
114
- /* 15 */ { 4, s_3_15, -1, 7, 0},
115
- /* 16 */ { 4, s_3_16, -1, 8, 0},
116
- /* 17 */ { 7, s_3_17, -1, 13, 0},
117
- /* 18 */ { 7, s_3_18, -1, 11, 0},
118
- /* 19 */ { 7, s_3_19, -1, 12, 0}
99
+ { 4, s_3_0, -1, 3, 0},
100
+ { 4, s_3_1, -1, 2, 0},
101
+ { 4, s_3_2, -1, 4, 0},
102
+ { 3, s_3_3, -1, 6, 0},
103
+ { 4, s_3_4, -1, 9, 0},
104
+ { 5, s_3_5, -1, 11, 0},
105
+ { 5, s_3_6, -1, 5, 0},
106
+ { 5, s_3_7, -1, 9, 0},
107
+ { 6, s_3_8, -1, 13, 0},
108
+ { 5, s_3_9, -1, 12, 0},
109
+ { 6, s_3_10, -1, 1, 0},
110
+ { 7, s_3_11, 10, 8, 0},
111
+ { 5, s_3_12, -1, 9, 0},
112
+ { 5, s_3_13, -1, 8, 0},
113
+ { 7, s_3_14, 13, 7, 0},
114
+ { 4, s_3_15, -1, 7, 0},
115
+ { 4, s_3_16, -1, 8, 0},
116
+ { 7, s_3_17, -1, 12, 0},
117
+ { 7, s_3_18, -1, 10, 0},
118
+ { 7, s_3_19, -1, 11, 0}
119
119
  };
120
120
 
121
121
  static const symbol s_4_0[5] = { 'i', 'c', 'a', 't', 'e' };
@@ -128,13 +128,13 @@ static const symbol s_4_6[4] = { 'n', 'e', 's', 's' };
128
128
 
129
129
  static const struct among a_4[7] =
130
130
  {
131
- /* 0 */ { 5, s_4_0, -1, 2, 0},
132
- /* 1 */ { 5, s_4_1, -1, 3, 0},
133
- /* 2 */ { 5, s_4_2, -1, 1, 0},
134
- /* 3 */ { 5, s_4_3, -1, 2, 0},
135
- /* 4 */ { 4, s_4_4, -1, 2, 0},
136
- /* 5 */ { 3, s_4_5, -1, 3, 0},
137
- /* 6 */ { 4, s_4_6, -1, 3, 0}
131
+ { 5, s_4_0, -1, 2, 0},
132
+ { 5, s_4_1, -1, 3, 0},
133
+ { 5, s_4_2, -1, 1, 0},
134
+ { 5, s_4_3, -1, 2, 0},
135
+ { 4, s_4_4, -1, 2, 0},
136
+ { 3, s_4_5, -1, 3, 0},
137
+ { 4, s_4_6, -1, 3, 0}
138
138
  };
139
139
 
140
140
  static const symbol s_5_0[2] = { 'i', 'c' };
@@ -159,25 +159,25 @@ static const symbol s_5_18[2] = { 'o', 'u' };
159
159
 
160
160
  static const struct among a_5[19] =
161
161
  {
162
- /* 0 */ { 2, s_5_0, -1, 1, 0},
163
- /* 1 */ { 4, s_5_1, -1, 1, 0},
164
- /* 2 */ { 4, s_5_2, -1, 1, 0},
165
- /* 3 */ { 4, s_5_3, -1, 1, 0},
166
- /* 4 */ { 4, s_5_4, -1, 1, 0},
167
- /* 5 */ { 3, s_5_5, -1, 1, 0},
168
- /* 6 */ { 3, s_5_6, -1, 1, 0},
169
- /* 7 */ { 3, s_5_7, -1, 1, 0},
170
- /* 8 */ { 3, s_5_8, -1, 1, 0},
171
- /* 9 */ { 2, s_5_9, -1, 1, 0},
172
- /* 10 */ { 3, s_5_10, -1, 1, 0},
173
- /* 11 */ { 3, s_5_11, -1, 2, 0},
174
- /* 12 */ { 2, s_5_12, -1, 1, 0},
175
- /* 13 */ { 3, s_5_13, -1, 1, 0},
176
- /* 14 */ { 3, s_5_14, -1, 1, 0},
177
- /* 15 */ { 3, s_5_15, -1, 1, 0},
178
- /* 16 */ { 4, s_5_16, 15, 1, 0},
179
- /* 17 */ { 5, s_5_17, 16, 1, 0},
180
- /* 18 */ { 2, s_5_18, -1, 1, 0}
162
+ { 2, s_5_0, -1, 1, 0},
163
+ { 4, s_5_1, -1, 1, 0},
164
+ { 4, s_5_2, -1, 1, 0},
165
+ { 4, s_5_3, -1, 1, 0},
166
+ { 4, s_5_4, -1, 1, 0},
167
+ { 3, s_5_5, -1, 1, 0},
168
+ { 3, s_5_6, -1, 1, 0},
169
+ { 3, s_5_7, -1, 1, 0},
170
+ { 3, s_5_8, -1, 1, 0},
171
+ { 2, s_5_9, -1, 1, 0},
172
+ { 3, s_5_10, -1, 1, 0},
173
+ { 3, s_5_11, -1, 2, 0},
174
+ { 2, s_5_12, -1, 1, 0},
175
+ { 3, s_5_13, -1, 1, 0},
176
+ { 3, s_5_14, -1, 1, 0},
177
+ { 3, s_5_15, -1, 1, 0},
178
+ { 4, s_5_16, 15, 1, 0},
179
+ { 5, s_5_17, 16, 1, 0},
180
+ { 2, s_5_18, -1, 1, 0}
181
181
  };
182
182
 
183
183
  static const unsigned char g_v[] = { 17, 65, 16, 1 };
@@ -189,36 +189,25 @@ static const symbol s_1[] = { 'i' };
189
189
  static const symbol s_2[] = { 'e', 'e' };
190
190
  static const symbol s_3[] = { 'e' };
191
191
  static const symbol s_4[] = { 'e' };
192
- static const symbol s_5[] = { 'y' };
193
- static const symbol s_6[] = { 'Y' };
194
- static const symbol s_7[] = { 'i' };
195
- static const symbol s_8[] = { 't', 'i', 'o', 'n' };
196
- static const symbol s_9[] = { 'e', 'n', 'c', 'e' };
197
- static const symbol s_10[] = { 'a', 'n', 'c', 'e' };
198
- static const symbol s_11[] = { 'a', 'b', 'l', 'e' };
199
- static const symbol s_12[] = { 'e', 'n', 't' };
200
- static const symbol s_13[] = { 'e' };
201
- static const symbol s_14[] = { 'i', 'z', 'e' };
202
- static const symbol s_15[] = { 'a', 't', 'e' };
203
- static const symbol s_16[] = { 'a', 'l' };
204
- static const symbol s_17[] = { 'a', 'l' };
205
- static const symbol s_18[] = { 'f', 'u', 'l' };
206
- static const symbol s_19[] = { 'o', 'u', 's' };
207
- static const symbol s_20[] = { 'i', 'v', 'e' };
208
- static const symbol s_21[] = { 'b', 'l', 'e' };
209
- static const symbol s_22[] = { 'a', 'l' };
210
- static const symbol s_23[] = { 'i', 'c' };
211
- static const symbol s_24[] = { 's' };
212
- static const symbol s_25[] = { 't' };
213
- static const symbol s_26[] = { 'e' };
214
- static const symbol s_27[] = { 'l' };
215
- static const symbol s_28[] = { 'l' };
216
- static const symbol s_29[] = { 'y' };
217
- static const symbol s_30[] = { 'Y' };
218
- static const symbol s_31[] = { 'y' };
219
- static const symbol s_32[] = { 'Y' };
220
- static const symbol s_33[] = { 'Y' };
221
- static const symbol s_34[] = { 'y' };
192
+ static const symbol s_5[] = { 'i' };
193
+ static const symbol s_6[] = { 't', 'i', 'o', 'n' };
194
+ static const symbol s_7[] = { 'e', 'n', 'c', 'e' };
195
+ static const symbol s_8[] = { 'a', 'n', 'c', 'e' };
196
+ static const symbol s_9[] = { 'a', 'b', 'l', 'e' };
197
+ static const symbol s_10[] = { 'e', 'n', 't' };
198
+ static const symbol s_11[] = { 'e' };
199
+ static const symbol s_12[] = { 'i', 'z', 'e' };
200
+ static const symbol s_13[] = { 'a', 't', 'e' };
201
+ static const symbol s_14[] = { 'a', 'l' };
202
+ static const symbol s_15[] = { 'f', 'u', 'l' };
203
+ static const symbol s_16[] = { 'o', 'u', 's' };
204
+ static const symbol s_17[] = { 'i', 'v', 'e' };
205
+ static const symbol s_18[] = { 'b', 'l', 'e' };
206
+ static const symbol s_19[] = { 'a', 'l' };
207
+ static const symbol s_20[] = { 'i', 'c' };
208
+ static const symbol s_21[] = { 'Y' };
209
+ static const symbol s_22[] = { 'Y' };
210
+ static const symbol s_23[] = { 'y' };
222
211
 
223
212
  static int r_shortv(struct SN_env * z) {
224
213
  if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) return 0;
@@ -228,36 +217,35 @@ static int r_shortv(struct SN_env * z) {
228
217
  }
229
218
 
230
219
  static int r_R1(struct SN_env * z) {
231
- if (!(z->I[0] <= z->c)) return 0;
220
+ if (!(z->I[1] <= z->c)) return 0;
232
221
  return 1;
233
222
  }
234
223
 
235
224
  static int r_R2(struct SN_env * z) {
236
- if (!(z->I[1] <= z->c)) return 0;
225
+ if (!(z->I[0] <= z->c)) return 0;
237
226
  return 1;
238
227
  }
239
228
 
240
229
  static int r_Step_1a(struct SN_env * z) {
241
230
  int among_var;
242
- z->ket = z->c; /* [, line 25 */
231
+ z->ket = z->c;
243
232
  if (z->c <= z->lb || z->p[z->c - 1] != 115) return 0;
244
- among_var = find_among_b(z, a_0, 4); /* substring, line 25 */
233
+ among_var = find_among_b(z, a_0, 4);
245
234
  if (!(among_var)) return 0;
246
- z->bra = z->c; /* ], line 25 */
247
- switch(among_var) {
248
- case 0: return 0;
235
+ z->bra = z->c;
236
+ switch (among_var) {
249
237
  case 1:
250
- { int ret = slice_from_s(z, 2, s_0); /* <-, line 26 */
238
+ { int ret = slice_from_s(z, 2, s_0);
251
239
  if (ret < 0) return ret;
252
240
  }
253
241
  break;
254
242
  case 2:
255
- { int ret = slice_from_s(z, 1, s_1); /* <-, line 27 */
243
+ { int ret = slice_from_s(z, 1, s_1);
256
244
  if (ret < 0) return ret;
257
245
  }
258
246
  break;
259
247
  case 3:
260
- { int ret = slice_del(z); /* delete, line 29 */
248
+ { int ret = slice_del(z);
261
249
  if (ret < 0) return ret;
262
250
  }
263
251
  break;
@@ -267,72 +255,72 @@ static int r_Step_1a(struct SN_env * z) {
267
255
 
268
256
  static int r_Step_1b(struct SN_env * z) {
269
257
  int among_var;
270
- z->ket = z->c; /* [, line 34 */
258
+ z->ket = z->c;
271
259
  if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 103)) return 0;
272
- among_var = find_among_b(z, a_2, 3); /* substring, line 34 */
260
+ among_var = find_among_b(z, a_2, 3);
273
261
  if (!(among_var)) return 0;
274
- z->bra = z->c; /* ], line 34 */
275
- switch(among_var) {
276
- case 0: return 0;
262
+ z->bra = z->c;
263
+ switch (among_var) {
277
264
  case 1:
278
265
  { int ret = r_R1(z);
279
- if (ret == 0) return 0; /* call R1, line 35 */
280
- if (ret < 0) return ret;
266
+ if (ret <= 0) return ret;
281
267
  }
282
- { int ret = slice_from_s(z, 2, s_2); /* <-, line 35 */
268
+ { int ret = slice_from_s(z, 2, s_2);
283
269
  if (ret < 0) return ret;
284
270
  }
285
271
  break;
286
272
  case 2:
287
- { int m_test = z->l - z->c; /* test, line 38 */
288
- { /* gopast */ /* grouping v, line 38 */
273
+ { int m_test1 = z->l - z->c;
274
+ {
289
275
  int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
290
276
  if (ret < 0) return 0;
291
277
  z->c -= ret;
292
278
  }
293
- z->c = z->l - m_test;
279
+ z->c = z->l - m_test1;
294
280
  }
295
- { int ret = slice_del(z); /* delete, line 38 */
281
+ { int ret = slice_del(z);
296
282
  if (ret < 0) return ret;
297
283
  }
298
- { int m_test = z->l - z->c; /* test, line 39 */
284
+ { int m_test2 = z->l - z->c;
299
285
  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
300
- among_var = find_among_b(z, a_1, 13); /* substring, line 39 */
286
+ among_var = find_among_b(z, a_1, 13);
301
287
  if (!(among_var)) return 0;
302
- z->c = z->l - m_test;
288
+ z->c = z->l - m_test2;
303
289
  }
304
- switch(among_var) {
305
- case 0: return 0;
290
+ switch (among_var) {
306
291
  case 1:
307
- { int c_keep = z->c;
308
- int ret = insert_s(z, z->c, z->c, 1, s_3); /* <+, line 41 */
309
- z->c = c_keep;
292
+ { int ret;
293
+ { int saved_c = z->c;
294
+ ret = insert_s(z, z->c, z->c, 1, s_3);
295
+ z->c = saved_c;
296
+ }
310
297
  if (ret < 0) return ret;
311
298
  }
312
299
  break;
313
300
  case 2:
314
- z->ket = z->c; /* [, line 44 */
315
- { int ret = skip_utf8(z->p, z->c, z->lb, 0, -1);
301
+ z->ket = z->c;
302
+ { int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
316
303
  if (ret < 0) return 0;
317
- z->c = ret; /* next, line 44 */
304
+ z->c = ret;
318
305
  }
319
- z->bra = z->c; /* ], line 44 */
320
- { int ret = slice_del(z); /* delete, line 44 */
306
+ z->bra = z->c;
307
+ { int ret = slice_del(z);
321
308
  if (ret < 0) return ret;
322
309
  }
323
310
  break;
324
311
  case 3:
325
- if (z->c != z->I[0]) return 0; /* atmark, line 45 */
326
- { int m_test = z->l - z->c; /* test, line 45 */
312
+ if (z->c != z->I[1]) return 0;
313
+ { int m_test3 = z->l - z->c;
327
314
  { int ret = r_shortv(z);
328
- if (ret == 0) return 0; /* call shortv, line 45 */
329
- if (ret < 0) return ret;
315
+ if (ret <= 0) return ret;
330
316
  }
331
- z->c = z->l - m_test;
317
+ z->c = z->l - m_test3;
332
318
  }
333
- { int c_keep = z->c;
334
- int ret = insert_s(z, z->c, z->c, 1, s_4); /* <+, line 45 */
335
- z->c = c_keep;
319
+ { int ret;
320
+ { int saved_c = z->c;
321
+ ret = insert_s(z, z->c, z->c, 1, s_4);
322
+ z->c = saved_c;
323
+ }
336
324
  if (ret < 0) return ret;
337
325
  }
338
326
  break;
@@ -343,22 +331,24 @@ static int r_Step_1b(struct SN_env * z) {
343
331
  }
344
332
 
345
333
  static int r_Step_1c(struct SN_env * z) {
346
- z->ket = z->c; /* [, line 52 */
347
- { int m1 = z->l - z->c; (void)m1; /* or, line 52 */
348
- if (!(eq_s_b(z, 1, s_5))) goto lab1;
334
+ z->ket = z->c;
335
+ { int m1 = z->l - z->c; (void)m1;
336
+ if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab1;
337
+ z->c--;
349
338
  goto lab0;
350
339
  lab1:
351
340
  z->c = z->l - m1;
352
- if (!(eq_s_b(z, 1, s_6))) return 0;
341
+ if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
342
+ z->c--;
353
343
  }
354
344
  lab0:
355
- z->bra = z->c; /* ], line 52 */
356
- { /* gopast */ /* grouping v, line 53 */
345
+ z->bra = z->c;
346
+ {
357
347
  int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
358
348
  if (ret < 0) return 0;
359
349
  z->c -= ret;
360
350
  }
361
- { int ret = slice_from_s(z, 1, s_7); /* <-, line 54 */
351
+ { int ret = slice_from_s(z, 1, s_5);
362
352
  if (ret < 0) return ret;
363
353
  }
364
354
  return 1;
@@ -366,84 +356,77 @@ lab0:
366
356
 
367
357
  static int r_Step_2(struct SN_env * z) {
368
358
  int among_var;
369
- z->ket = z->c; /* [, line 58 */
359
+ z->ket = z->c;
370
360
  if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((815616 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
371
- among_var = find_among_b(z, a_3, 20); /* substring, line 58 */
361
+ among_var = find_among_b(z, a_3, 20);
372
362
  if (!(among_var)) return 0;
373
- z->bra = z->c; /* ], line 58 */
363
+ z->bra = z->c;
374
364
  { int ret = r_R1(z);
375
- if (ret == 0) return 0; /* call R1, line 58 */
376
- if (ret < 0) return ret;
365
+ if (ret <= 0) return ret;
377
366
  }
378
- switch(among_var) {
379
- case 0: return 0;
367
+ switch (among_var) {
380
368
  case 1:
381
- { int ret = slice_from_s(z, 4, s_8); /* <-, line 59 */
369
+ { int ret = slice_from_s(z, 4, s_6);
382
370
  if (ret < 0) return ret;
383
371
  }
384
372
  break;
385
373
  case 2:
386
- { int ret = slice_from_s(z, 4, s_9); /* <-, line 60 */
374
+ { int ret = slice_from_s(z, 4, s_7);
387
375
  if (ret < 0) return ret;
388
376
  }
389
377
  break;
390
378
  case 3:
391
- { int ret = slice_from_s(z, 4, s_10); /* <-, line 61 */
379
+ { int ret = slice_from_s(z, 4, s_8);
392
380
  if (ret < 0) return ret;
393
381
  }
394
382
  break;
395
383
  case 4:
396
- { int ret = slice_from_s(z, 4, s_11); /* <-, line 62 */
384
+ { int ret = slice_from_s(z, 4, s_9);
397
385
  if (ret < 0) return ret;
398
386
  }
399
387
  break;
400
388
  case 5:
401
- { int ret = slice_from_s(z, 3, s_12); /* <-, line 63 */
389
+ { int ret = slice_from_s(z, 3, s_10);
402
390
  if (ret < 0) return ret;
403
391
  }
404
392
  break;
405
393
  case 6:
406
- { int ret = slice_from_s(z, 1, s_13); /* <-, line 64 */
394
+ { int ret = slice_from_s(z, 1, s_11);
407
395
  if (ret < 0) return ret;
408
396
  }
409
397
  break;
410
398
  case 7:
411
- { int ret = slice_from_s(z, 3, s_14); /* <-, line 66 */
399
+ { int ret = slice_from_s(z, 3, s_12);
412
400
  if (ret < 0) return ret;
413
401
  }
414
402
  break;
415
403
  case 8:
416
- { int ret = slice_from_s(z, 3, s_15); /* <-, line 68 */
404
+ { int ret = slice_from_s(z, 3, s_13);
417
405
  if (ret < 0) return ret;
418
406
  }
419
407
  break;
420
408
  case 9:
421
- { int ret = slice_from_s(z, 2, s_16); /* <-, line 69 */
409
+ { int ret = slice_from_s(z, 2, s_14);
422
410
  if (ret < 0) return ret;
423
411
  }
424
412
  break;
425
413
  case 10:
426
- { int ret = slice_from_s(z, 2, s_17); /* <-, line 71 */
414
+ { int ret = slice_from_s(z, 3, s_15);
427
415
  if (ret < 0) return ret;
428
416
  }
429
417
  break;
430
418
  case 11:
431
- { int ret = slice_from_s(z, 3, s_18); /* <-, line 72 */
419
+ { int ret = slice_from_s(z, 3, s_16);
432
420
  if (ret < 0) return ret;
433
421
  }
434
422
  break;
435
423
  case 12:
436
- { int ret = slice_from_s(z, 3, s_19); /* <-, line 74 */
424
+ { int ret = slice_from_s(z, 3, s_17);
437
425
  if (ret < 0) return ret;
438
426
  }
439
427
  break;
440
428
  case 13:
441
- { int ret = slice_from_s(z, 3, s_20); /* <-, line 76 */
442
- if (ret < 0) return ret;
443
- }
444
- break;
445
- case 14:
446
- { int ret = slice_from_s(z, 3, s_21); /* <-, line 77 */
429
+ { int ret = slice_from_s(z, 3, s_18);
447
430
  if (ret < 0) return ret;
448
431
  }
449
432
  break;
@@ -453,29 +436,27 @@ static int r_Step_2(struct SN_env * z) {
453
436
 
454
437
  static int r_Step_3(struct SN_env * z) {
455
438
  int among_var;
456
- z->ket = z->c; /* [, line 82 */
439
+ z->ket = z->c;
457
440
  if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
458
- among_var = find_among_b(z, a_4, 7); /* substring, line 82 */
441
+ among_var = find_among_b(z, a_4, 7);
459
442
  if (!(among_var)) return 0;
460
- z->bra = z->c; /* ], line 82 */
443
+ z->bra = z->c;
461
444
  { int ret = r_R1(z);
462
- if (ret == 0) return 0; /* call R1, line 82 */
463
- if (ret < 0) return ret;
445
+ if (ret <= 0) return ret;
464
446
  }
465
- switch(among_var) {
466
- case 0: return 0;
447
+ switch (among_var) {
467
448
  case 1:
468
- { int ret = slice_from_s(z, 2, s_22); /* <-, line 83 */
449
+ { int ret = slice_from_s(z, 2, s_19);
469
450
  if (ret < 0) return ret;
470
451
  }
471
452
  break;
472
453
  case 2:
473
- { int ret = slice_from_s(z, 2, s_23); /* <-, line 85 */
454
+ { int ret = slice_from_s(z, 2, s_20);
474
455
  if (ret < 0) return ret;
475
456
  }
476
457
  break;
477
458
  case 3:
478
- { int ret = slice_del(z); /* delete, line 87 */
459
+ { int ret = slice_del(z);
479
460
  if (ret < 0) return ret;
480
461
  }
481
462
  break;
@@ -485,32 +466,32 @@ static int r_Step_3(struct SN_env * z) {
485
466
 
486
467
  static int r_Step_4(struct SN_env * z) {
487
468
  int among_var;
488
- z->ket = z->c; /* [, line 92 */
469
+ z->ket = z->c;
489
470
  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((3961384 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
490
- among_var = find_among_b(z, a_5, 19); /* substring, line 92 */
471
+ among_var = find_among_b(z, a_5, 19);
491
472
  if (!(among_var)) return 0;
492
- z->bra = z->c; /* ], line 92 */
473
+ z->bra = z->c;
493
474
  { int ret = r_R2(z);
494
- if (ret == 0) return 0; /* call R2, line 92 */
495
- if (ret < 0) return ret;
475
+ if (ret <= 0) return ret;
496
476
  }
497
- switch(among_var) {
498
- case 0: return 0;
477
+ switch (among_var) {
499
478
  case 1:
500
- { int ret = slice_del(z); /* delete, line 95 */
479
+ { int ret = slice_del(z);
501
480
  if (ret < 0) return ret;
502
481
  }
503
482
  break;
504
483
  case 2:
505
- { int m1 = z->l - z->c; (void)m1; /* or, line 96 */
506
- if (!(eq_s_b(z, 1, s_24))) goto lab1;
484
+ { int m1 = z->l - z->c; (void)m1;
485
+ if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab1;
486
+ z->c--;
507
487
  goto lab0;
508
488
  lab1:
509
489
  z->c = z->l - m1;
510
- if (!(eq_s_b(z, 1, s_25))) return 0;
490
+ if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
491
+ z->c--;
511
492
  }
512
493
  lab0:
513
- { int ret = slice_del(z); /* delete, line 96 */
494
+ { int ret = slice_del(z);
514
495
  if (ret < 0) return ret;
515
496
  }
516
497
  break;
@@ -519,24 +500,24 @@ static int r_Step_4(struct SN_env * z) {
519
500
  }
520
501
 
521
502
  static int r_Step_5a(struct SN_env * z) {
522
- z->ket = z->c; /* [, line 101 */
523
- if (!(eq_s_b(z, 1, s_26))) return 0;
524
- z->bra = z->c; /* ], line 101 */
525
- { int m1 = z->l - z->c; (void)m1; /* or, line 102 */
503
+ z->ket = z->c;
504
+ if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
505
+ z->c--;
506
+ z->bra = z->c;
507
+ { int m1 = z->l - z->c; (void)m1;
526
508
  { int ret = r_R2(z);
527
- if (ret == 0) goto lab1; /* call R2, line 102 */
509
+ if (ret == 0) goto lab1;
528
510
  if (ret < 0) return ret;
529
511
  }
530
512
  goto lab0;
531
513
  lab1:
532
514
  z->c = z->l - m1;
533
515
  { int ret = r_R1(z);
534
- if (ret == 0) return 0; /* call R1, line 102 */
535
- if (ret < 0) return ret;
516
+ if (ret <= 0) return ret;
536
517
  }
537
- { int m2 = z->l - z->c; (void)m2; /* not, line 102 */
518
+ { int m2 = z->l - z->c; (void)m2;
538
519
  { int ret = r_shortv(z);
539
- if (ret == 0) goto lab2; /* call shortv, line 102 */
520
+ if (ret == 0) goto lab2;
540
521
  if (ret < 0) return ret;
541
522
  }
542
523
  return 0;
@@ -545,62 +526,65 @@ static int r_Step_5a(struct SN_env * z) {
545
526
  }
546
527
  }
547
528
  lab0:
548
- { int ret = slice_del(z); /* delete, line 103 */
529
+ { int ret = slice_del(z);
549
530
  if (ret < 0) return ret;
550
531
  }
551
532
  return 1;
552
533
  }
553
534
 
554
535
  static int r_Step_5b(struct SN_env * z) {
555
- z->ket = z->c; /* [, line 107 */
556
- if (!(eq_s_b(z, 1, s_27))) return 0;
557
- z->bra = z->c; /* ], line 107 */
536
+ z->ket = z->c;
537
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
538
+ z->c--;
539
+ z->bra = z->c;
558
540
  { int ret = r_R2(z);
559
- if (ret == 0) return 0; /* call R2, line 108 */
560
- if (ret < 0) return ret;
541
+ if (ret <= 0) return ret;
561
542
  }
562
- if (!(eq_s_b(z, 1, s_28))) return 0;
563
- { int ret = slice_del(z); /* delete, line 109 */
543
+ if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
544
+ z->c--;
545
+ { int ret = slice_del(z);
564
546
  if (ret < 0) return ret;
565
547
  }
566
548
  return 1;
567
549
  }
568
550
 
569
551
  extern int porter_UTF_8_stem(struct SN_env * z) {
570
- z->B[0] = 0; /* unset Y_found, line 115 */
571
- { int c1 = z->c; /* do, line 116 */
572
- z->bra = z->c; /* [, line 116 */
573
- if (!(eq_s(z, 1, s_29))) goto lab0;
574
- z->ket = z->c; /* ], line 116 */
575
- { int ret = slice_from_s(z, 1, s_30); /* <-, line 116 */
552
+ z->I[2] = 0;
553
+ { int c1 = z->c;
554
+ z->bra = z->c;
555
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab0;
556
+ z->c++;
557
+ z->ket = z->c;
558
+ { int ret = slice_from_s(z, 1, s_21);
576
559
  if (ret < 0) return ret;
577
560
  }
578
- z->B[0] = 1; /* set Y_found, line 116 */
561
+ z->I[2] = 1;
579
562
  lab0:
580
563
  z->c = c1;
581
564
  }
582
- { int c2 = z->c; /* do, line 117 */
583
- while(1) { /* repeat, line 117 */
565
+ { int c2 = z->c;
566
+ while(1) {
584
567
  int c3 = z->c;
585
- while(1) { /* goto, line 117 */
568
+ while(1) {
586
569
  int c4 = z->c;
587
570
  if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab3;
588
- z->bra = z->c; /* [, line 117 */
589
- if (!(eq_s(z, 1, s_31))) goto lab3;
590
- z->ket = z->c; /* ], line 117 */
571
+ z->bra = z->c;
572
+ if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
573
+ z->c++;
574
+ z->ket = z->c;
591
575
  z->c = c4;
592
576
  break;
593
577
  lab3:
594
578
  z->c = c4;
595
- { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
579
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
596
580
  if (ret < 0) goto lab2;
597
- z->c = ret; /* goto, line 117 */
581
+ z->c = ret;
598
582
  }
599
583
  }
600
- { int ret = slice_from_s(z, 1, s_32); /* <-, line 117 */
584
+ { int ret = slice_from_s(z, 1, s_22);
601
585
  if (ret < 0) return ret;
602
586
  }
603
- z->B[0] = 1; /* set Y_found, line 117 */
587
+ z->I[2] = 1;
604
588
  continue;
605
589
  lab2:
606
590
  z->c = c3;
@@ -608,134 +592,119 @@ extern int porter_UTF_8_stem(struct SN_env * z) {
608
592
  }
609
593
  z->c = c2;
610
594
  }
611
- z->I[0] = z->l;
612
595
  z->I[1] = z->l;
613
- { int c5 = z->c; /* do, line 121 */
614
- { /* gopast */ /* grouping v, line 122 */
596
+ z->I[0] = z->l;
597
+ { int c5 = z->c;
598
+ {
615
599
  int ret = out_grouping_U(z, g_v, 97, 121, 1);
616
600
  if (ret < 0) goto lab4;
617
601
  z->c += ret;
618
602
  }
619
- { /* gopast */ /* non v, line 122 */
603
+ {
620
604
  int ret = in_grouping_U(z, g_v, 97, 121, 1);
621
605
  if (ret < 0) goto lab4;
622
606
  z->c += ret;
623
607
  }
624
- z->I[0] = z->c; /* setmark p1, line 122 */
625
- { /* gopast */ /* grouping v, line 123 */
608
+ z->I[1] = z->c;
609
+ {
626
610
  int ret = out_grouping_U(z, g_v, 97, 121, 1);
627
611
  if (ret < 0) goto lab4;
628
612
  z->c += ret;
629
613
  }
630
- { /* gopast */ /* non v, line 123 */
614
+ {
631
615
  int ret = in_grouping_U(z, g_v, 97, 121, 1);
632
616
  if (ret < 0) goto lab4;
633
617
  z->c += ret;
634
618
  }
635
- z->I[1] = z->c; /* setmark p2, line 123 */
619
+ z->I[0] = z->c;
636
620
  lab4:
637
621
  z->c = c5;
638
622
  }
639
- z->lb = z->c; z->c = z->l; /* backwards, line 126 */
623
+ z->lb = z->c; z->c = z->l;
640
624
 
641
- { int m6 = z->l - z->c; (void)m6; /* do, line 127 */
625
+ { int m6 = z->l - z->c; (void)m6;
642
626
  { int ret = r_Step_1a(z);
643
- if (ret == 0) goto lab5; /* call Step_1a, line 127 */
644
627
  if (ret < 0) return ret;
645
628
  }
646
- lab5:
647
629
  z->c = z->l - m6;
648
630
  }
649
- { int m7 = z->l - z->c; (void)m7; /* do, line 128 */
631
+ { int m7 = z->l - z->c; (void)m7;
650
632
  { int ret = r_Step_1b(z);
651
- if (ret == 0) goto lab6; /* call Step_1b, line 128 */
652
633
  if (ret < 0) return ret;
653
634
  }
654
- lab6:
655
635
  z->c = z->l - m7;
656
636
  }
657
- { int m8 = z->l - z->c; (void)m8; /* do, line 129 */
637
+ { int m8 = z->l - z->c; (void)m8;
658
638
  { int ret = r_Step_1c(z);
659
- if (ret == 0) goto lab7; /* call Step_1c, line 129 */
660
639
  if (ret < 0) return ret;
661
640
  }
662
- lab7:
663
641
  z->c = z->l - m8;
664
642
  }
665
- { int m9 = z->l - z->c; (void)m9; /* do, line 130 */
643
+ { int m9 = z->l - z->c; (void)m9;
666
644
  { int ret = r_Step_2(z);
667
- if (ret == 0) goto lab8; /* call Step_2, line 130 */
668
645
  if (ret < 0) return ret;
669
646
  }
670
- lab8:
671
647
  z->c = z->l - m9;
672
648
  }
673
- { int m10 = z->l - z->c; (void)m10; /* do, line 131 */
649
+ { int m10 = z->l - z->c; (void)m10;
674
650
  { int ret = r_Step_3(z);
675
- if (ret == 0) goto lab9; /* call Step_3, line 131 */
676
651
  if (ret < 0) return ret;
677
652
  }
678
- lab9:
679
653
  z->c = z->l - m10;
680
654
  }
681
- { int m11 = z->l - z->c; (void)m11; /* do, line 132 */
655
+ { int m11 = z->l - z->c; (void)m11;
682
656
  { int ret = r_Step_4(z);
683
- if (ret == 0) goto lab10; /* call Step_4, line 132 */
684
657
  if (ret < 0) return ret;
685
658
  }
686
- lab10:
687
659
  z->c = z->l - m11;
688
660
  }
689
- { int m12 = z->l - z->c; (void)m12; /* do, line 133 */
661
+ { int m12 = z->l - z->c; (void)m12;
690
662
  { int ret = r_Step_5a(z);
691
- if (ret == 0) goto lab11; /* call Step_5a, line 133 */
692
663
  if (ret < 0) return ret;
693
664
  }
694
- lab11:
695
665
  z->c = z->l - m12;
696
666
  }
697
- { int m13 = z->l - z->c; (void)m13; /* do, line 134 */
667
+ { int m13 = z->l - z->c; (void)m13;
698
668
  { int ret = r_Step_5b(z);
699
- if (ret == 0) goto lab12; /* call Step_5b, line 134 */
700
669
  if (ret < 0) return ret;
701
670
  }
702
- lab12:
703
671
  z->c = z->l - m13;
704
672
  }
705
673
  z->c = z->lb;
706
- { int c14 = z->c; /* do, line 137 */
707
- if (!(z->B[0])) goto lab13; /* Boolean test Y_found, line 137 */
708
- while(1) { /* repeat, line 137 */
674
+ { int c14 = z->c;
675
+ if (!(z->I[2])) goto lab5;
676
+ while(1) {
709
677
  int c15 = z->c;
710
- while(1) { /* goto, line 137 */
678
+ while(1) {
711
679
  int c16 = z->c;
712
- z->bra = z->c; /* [, line 137 */
713
- if (!(eq_s(z, 1, s_33))) goto lab15;
714
- z->ket = z->c; /* ], line 137 */
680
+ z->bra = z->c;
681
+ if (z->c == z->l || z->p[z->c] != 'Y') goto lab7;
682
+ z->c++;
683
+ z->ket = z->c;
715
684
  z->c = c16;
716
685
  break;
717
- lab15:
686
+ lab7:
718
687
  z->c = c16;
719
- { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
720
- if (ret < 0) goto lab14;
721
- z->c = ret; /* goto, line 137 */
688
+ { int ret = skip_utf8(z->p, z->c, z->l, 1);
689
+ if (ret < 0) goto lab6;
690
+ z->c = ret;
722
691
  }
723
692
  }
724
- { int ret = slice_from_s(z, 1, s_34); /* <-, line 137 */
693
+ { int ret = slice_from_s(z, 1, s_23);
725
694
  if (ret < 0) return ret;
726
695
  }
727
696
  continue;
728
- lab14:
697
+ lab6:
729
698
  z->c = c15;
730
699
  break;
731
700
  }
732
- lab13:
701
+ lab5:
733
702
  z->c = c14;
734
703
  }
735
704
  return 1;
736
705
  }
737
706
 
738
- extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 2, 1); }
707
+ extern struct SN_env * porter_UTF_8_create_env(void) { return SN_create_env(0, 3); }
739
708
 
740
709
  extern void porter_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
741
710