1 // Generated by Snowball 2.0.0 - https://snowballstem.org/ 2 3 package org.tartarus.snowball.ext; 4 5 import org.tartarus.snowball.Among; 6 7 /** 8 * This class implements the stemming algorithm defined by a snowball script. 9 * 10 * <p>Generated by Snowball 2.0.0 - https://snowballstem.org/ 11 */ 12 @SuppressWarnings("unused") 13 public class HindiStemmer extends org.tartarus.snowball.SnowballStemmer { 14 15 private static final long serialVersionUID = 1L; 16 private static final java.lang.invoke.MethodHandles.Lookup methodObject = 17 java.lang.invoke.MethodHandles.lookup(); 18 19 private static final Among a_0[] = { 20 new Among("\u0906\u0901", -1, -1), 21 new Among("\u093E\u0901", -1, -1), 22 new Among("\u0907\u092F\u093E\u0901", 1, -1), 23 new Among("\u0906\u0907\u092F\u093E\u0901", 2, -1), 24 new Among("\u093E\u0907\u092F\u093E\u0901", 2, -1), 25 new Among("\u093F\u092F\u093E\u0901", 1, -1), 26 new Among("\u0906\u0902", -1, -1), 27 new Among("\u0909\u0906\u0902", 6, -1), 28 new Among("\u0941\u0906\u0902", 6, -1), 29 new Among("\u0908\u0902", -1, -1), 30 new Among("\u0906\u0908\u0902", 9, -1), 31 new Among("\u093E\u0908\u0902", 9, -1), 32 new Among("\u090F\u0902", -1, -1), 33 new Among("\u0906\u090F\u0902", 12, -1), 34 new Among("\u0909\u090F\u0902", 12, -1), 35 new Among("\u093E\u090F\u0902", 12, -1), 36 new Among("\u0924\u093E\u090F\u0902", 15, -1, "r_CONSONANT", methodObject), 37 new Among("\u0905\u0924\u093E\u090F\u0902", 16, -1), 38 new Among("\u0928\u093E\u090F\u0902", 15, -1, "r_CONSONANT", methodObject), 39 new Among("\u0905\u0928\u093E\u090F\u0902", 18, -1), 40 new Among("\u0941\u090F\u0902", 12, -1), 41 new Among("\u0913\u0902", -1, -1), 42 new Among("\u0906\u0913\u0902", 21, -1), 43 new Among("\u0909\u0913\u0902", 21, -1), 44 new Among("\u093E\u0913\u0902", 21, -1), 45 new Among("\u0924\u093E\u0913\u0902", 24, -1, "r_CONSONANT", methodObject), 46 new Among("\u0905\u0924\u093E\u0913\u0902", 25, -1), 47 new Among("\u0928\u093E\u0913\u0902", 24, -1, "r_CONSONANT", methodObject), 48 new Among("\u0905\u0928\u093E\u0913\u0902", 27, -1), 49 new Among("\u0941\u0913\u0902", 21, -1), 50 new Among("\u093E\u0902", -1, -1), 51 new Among("\u0907\u092F\u093E\u0902", 30, -1), 52 new Among("\u0906\u0907\u092F\u093E\u0902", 31, -1), 53 new Among("\u093E\u0907\u092F\u093E\u0902", 31, -1), 54 new Among("\u093F\u092F\u093E\u0902", 30, -1), 55 new Among("\u0940\u0902", -1, -1), 56 new Among("\u0924\u0940\u0902", 35, -1, "r_CONSONANT", methodObject), 57 new Among("\u0905\u0924\u0940\u0902", 36, -1), 58 new Among("\u0906\u0924\u0940\u0902", 36, -1), 59 new Among("\u093E\u0924\u0940\u0902", 36, -1), 60 new Among("\u0947\u0902", -1, -1), 61 new Among("\u094B\u0902", -1, -1), 62 new Among("\u0907\u092F\u094B\u0902", 41, -1), 63 new Among("\u0906\u0907\u092F\u094B\u0902", 42, -1), 64 new Among("\u093E\u0907\u092F\u094B\u0902", 42, -1), 65 new Among("\u093F\u092F\u094B\u0902", 41, -1), 66 new Among("\u0905", -1, -1), 67 new Among("\u0906", -1, -1), 68 new Among("\u0907", -1, -1), 69 new Among("\u0908", -1, -1), 70 new Among("\u0906\u0908", 49, -1), 71 new Among("\u093E\u0908", 49, -1), 72 new Among("\u0909", -1, -1), 73 new Among("\u090A", -1, -1), 74 new Among("\u090F", -1, -1), 75 new Among("\u0906\u090F", 54, -1), 76 new Among("\u0907\u090F", 54, -1), 77 new Among("\u0906\u0907\u090F", 56, -1), 78 new Among("\u093E\u0907\u090F", 56, -1), 79 new Among("\u093E\u090F", 54, -1), 80 new Among("\u093F\u090F", 54, -1), 81 new Among("\u0913", -1, -1), 82 new Among("\u0906\u0913", 61, -1), 83 new Among("\u093E\u0913", 61, -1), 84 new Among("\u0915\u0930", -1, -1, "r_CONSONANT", methodObject), 85 new Among("\u0905\u0915\u0930", 64, -1), 86 new Among("\u0906\u0915\u0930", 64, -1), 87 new Among("\u093E\u0915\u0930", 64, -1), 88 new Among("\u093E", -1, -1), 89 new Among("\u090A\u0902\u0917\u093E", 68, -1), 90 new Among("\u0906\u090A\u0902\u0917\u093E", 69, -1), 91 new Among("\u093E\u090A\u0902\u0917\u093E", 69, -1), 92 new Among("\u0942\u0902\u0917\u093E", 68, -1), 93 new Among("\u090F\u0917\u093E", 68, -1), 94 new Among("\u0906\u090F\u0917\u093E", 73, -1), 95 new Among("\u093E\u090F\u0917\u093E", 73, -1), 96 new Among("\u0947\u0917\u093E", 68, -1), 97 new Among("\u0924\u093E", 68, -1, "r_CONSONANT", methodObject), 98 new Among("\u0905\u0924\u093E", 77, -1), 99 new Among("\u0906\u0924\u093E", 77, -1), 100 new Among("\u093E\u0924\u093E", 77, -1), 101 new Among("\u0928\u093E", 68, -1, "r_CONSONANT", methodObject), 102 new Among("\u0905\u0928\u093E", 81, -1), 103 new Among("\u0906\u0928\u093E", 81, -1), 104 new Among("\u093E\u0928\u093E", 81, -1), 105 new Among("\u0906\u092F\u093E", 68, -1), 106 new Among("\u093E\u092F\u093E", 68, -1), 107 new Among("\u093F", -1, -1), 108 new Among("\u0940", -1, -1), 109 new Among("\u090A\u0902\u0917\u0940", 88, -1), 110 new Among("\u0906\u090A\u0902\u0917\u0940", 89, -1), 111 new Among("\u093E\u090A\u0902\u0917\u0940", 89, -1), 112 new Among("\u090F\u0902\u0917\u0940", 88, -1), 113 new Among("\u0906\u090F\u0902\u0917\u0940", 92, -1), 114 new Among("\u093E\u090F\u0902\u0917\u0940", 92, -1), 115 new Among("\u0942\u0902\u0917\u0940", 88, -1), 116 new Among("\u0947\u0902\u0917\u0940", 88, -1), 117 new Among("\u090F\u0917\u0940", 88, -1), 118 new Among("\u0906\u090F\u0917\u0940", 97, -1), 119 new Among("\u093E\u090F\u0917\u0940", 97, -1), 120 new Among("\u0913\u0917\u0940", 88, -1), 121 new Among("\u0906\u0913\u0917\u0940", 100, -1), 122 new Among("\u093E\u0913\u0917\u0940", 100, -1), 123 new Among("\u0947\u0917\u0940", 88, -1), 124 new Among("\u094B\u0917\u0940", 88, -1), 125 new Among("\u0924\u0940", 88, -1, "r_CONSONANT", methodObject), 126 new Among("\u0905\u0924\u0940", 105, -1), 127 new Among("\u0906\u0924\u0940", 105, -1), 128 new Among("\u093E\u0924\u0940", 105, -1), 129 new Among("\u0928\u0940", 88, -1, "r_CONSONANT", methodObject), 130 new Among("\u0905\u0928\u0940", 109, -1), 131 new Among("\u0941", -1, -1), 132 new Among("\u0942", -1, -1), 133 new Among("\u0947", -1, -1), 134 new Among("\u090F\u0902\u0917\u0947", 113, -1), 135 new Among("\u0906\u090F\u0902\u0917\u0947", 114, -1), 136 new Among("\u093E\u090F\u0902\u0917\u0947", 114, -1), 137 new Among("\u0947\u0902\u0917\u0947", 113, -1), 138 new Among("\u0913\u0917\u0947", 113, -1), 139 new Among("\u0906\u0913\u0917\u0947", 118, -1), 140 new Among("\u093E\u0913\u0917\u0947", 118, -1), 141 new Among("\u094B\u0917\u0947", 113, -1), 142 new Among("\u0924\u0947", 113, -1, "r_CONSONANT", methodObject), 143 new Among("\u0905\u0924\u0947", 122, -1), 144 new Among("\u0906\u0924\u0947", 122, -1), 145 new Among("\u093E\u0924\u0947", 122, -1), 146 new Among("\u0928\u0947", 113, -1, "r_CONSONANT", methodObject), 147 new Among("\u0905\u0928\u0947", 126, -1), 148 new Among("\u0906\u0928\u0947", 126, -1), 149 new Among("\u093E\u0928\u0947", 126, -1), 150 new Among("\u094B", -1, -1), 151 new Among("\u094D", -1, -1) 152 }; 153 154 private static final char g_consonant[] = {255, 255, 255, 255, 159, 0, 0, 0, 248, 7}; 155 156 private int I_p; 157 r_CONSONANT()158 public boolean r_CONSONANT() { 159 if (!(in_grouping_b(g_consonant, 2325, 2399))) { 160 return false; 161 } 162 return true; 163 } 164 165 @Override stem()166 public boolean stem() { 167 int v_1 = cursor; 168 if (cursor >= limit) { 169 return false; 170 } 171 cursor++; 172 I_p = cursor; 173 cursor = v_1; 174 limit_backward = cursor; 175 cursor = limit; 176 if (cursor < I_p) { 177 return false; 178 } 179 int v_3 = limit_backward; 180 limit_backward = I_p; 181 ket = cursor; 182 if (find_among_b(a_0) == 0) { 183 limit_backward = v_3; 184 return false; 185 } 186 bra = cursor; 187 limit_backward = v_3; 188 slice_del(); 189 cursor = limit_backward; 190 return true; 191 } 192 193 @Override equals(Object o)194 public boolean equals(Object o) { 195 return o instanceof HindiStemmer; 196 } 197 198 @Override hashCode()199 public int hashCode() { 200 return HindiStemmer.class.getName().hashCode(); 201 } 202 } 203