content: // This file was generated automatically by the Snowball to Java compiler
  
  package org.tartarus.snowball.ext;
  
  import org.tartarus.snowball.Among;
  import org.tartarus.snowball.SnowballProgram;
  
   /**
    * This class was automatically generated by a Snowball to Java compiler 
    * It implements the stemming algorithm defined by a snowball script.
    */
  
  public class ArmenianStemmer extends SnowballProgram {
  
  private static final long serialVersionUID = 1L;
  
          private final static ArmenianStemmer methodObject = new ArmenianStemmer ();
  
                  private final static Among a_0[] = {
                      new Among ( "\u0580\u0578\u0580\u0564", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u0578\u0580\u0564", 0, 1, "", methodObject ),
                      new Among ( "\u0561\u056C\u056B", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u056F\u056B", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0580\u0561\u056F", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0572", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u056F\u0561\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0580\u0561\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u056F\u0565\u0576", 8, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u0565\u0576", 8, 1, "", methodObject ),
                      new Among ( "\u0578\u0580\u0567\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u056B\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0563\u056B\u0576", 12, 1, "", methodObject ),
                      new Among ( "\u0578\u057E\u056B\u0576", 12, 1, "", methodObject ),
                      new Among ( "\u056C\u0561\u0575\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0578\u0582\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u057A\u0565\u057D", -1, 1, "", methodObject ),
                      new Among ( "\u056B\u057E", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u057F", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u057E\u0565\u057F", -1, 1, "", methodObject ),
                      new Among ( "\u056F\u0578\u057F", -1, 1, "", methodObject ),
                      new Among ( "\u0562\u0561\u0580", -1, 1, "", methodObject )
                  };
  
                  private final static Among a_1[] = {
                      new Among ( "\u0561", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0561", 0, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u0561", 0, 1, "", methodObject ),
                      new Among ( "\u057E\u0565", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0580\u056B", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u056B", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u056B", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0565\u0581\u056B", 6, 1, "", methodObject ),
                      new Among ( "\u0561\u056C", -1, 1, "", methodObject ),
                      new Among ( "\u0568\u0561\u056C", 8, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u0561\u056C", 8, 1, "", methodObject ),
                      new Among ( "\u0565\u0576\u0561\u056C", 8, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0576\u0561\u056C", 8, 1, "", methodObject ),
                      new Among ( "\u0565\u056C", -1, 1, "", methodObject ),
                      new Among ( "\u0568\u0565\u056C", 13, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u056C", 13, 1, "", methodObject ),
                      new Among ( "\u0581\u0576\u0565\u056C", 15, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u0576\u0565\u056C", 16, 1, "", methodObject ),
                      new Among ( "\u0579\u0565\u056C", 13, 1, "", methodObject ),
                      new Among ( "\u057E\u0565\u056C", 13, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u057E\u0565\u056C", 19, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u057E\u0565\u056C", 19, 1, "", methodObject ),
                      new Among ( "\u057F\u0565\u056C", 13, 1, "", methodObject ),
                      new Among ( "\u0561\u057F\u0565\u056C", 22, 1, "", methodObject ),
                      new Among ( "\u0578\u057F\u0565\u056C", 22, 1, "", methodObject ),
                      new Among ( "\u056F\u0578\u057F\u0565\u056C", 24, 1, "", methodObject ),
                      new Among ( "\u057E\u0561\u056E", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0574", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0578\u0582\u0574", 27, 1, "", methodObject ),
                      new Among ( "\u0561\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0581\u0561\u0576", 29, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0561\u0576", 30, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0580\u056B\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u056B\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u056B\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0565\u0581\u056B\u0576", 34, 1, "", methodObject ),
                      new Among ( "\u0561\u056C\u056B\u057D", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u056C\u056B\u057D", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u057E", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0561\u057E", 38, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u0561\u057E", 38, 1, "", methodObject ),
                      new Among ( "\u0561\u056C\u0578\u057E", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u056C\u0578\u057E", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0580", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0561\u0580", 43, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u0561\u0580", 43, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0580\u056B\u0580", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u056B\u0580", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u056B\u0580", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0565\u0581\u056B\u0580", 48, 1, "", methodObject ),
                      new Among ( "\u0561\u0581", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0581", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0580\u0565\u0581", 51, 1, "", methodObject ),
                      new Among ( "\u0561\u056C\u0578\u0582\u0581", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u056C\u0578\u0582\u0581", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u056C\u0578\u0582", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u056C\u0578\u0582", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u0581\u0561\u0584", 57, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0561\u0584", 58, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0580\u056B\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u056B\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u056B\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0565\u0581\u056B\u0584", 62, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u0581\u0561\u0576\u0584", 64, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0561\u0576\u0584", 65, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u0580\u056B\u0576\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0581\u056B\u0576\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0581\u056B\u0576\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0565\u0581\u056B\u0576\u0584", 69, 1, "", methodObject )
                  };
  
                  private final static Among a_2[] = {
                      new Among ( "\u0578\u0580\u0564", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0575\u0569", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0570\u056B", -1, 1, "", methodObject ),
                      new Among ( "\u0581\u056B", -1, 1, "", methodObject ),
                      new Among ( "\u056B\u056C", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u056F", -1, 1, "", methodObject ),
                      new Among ( "\u0575\u0561\u056F", 5, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u0561\u056F", 5, 1, "", methodObject ),
                      new Among ( "\u056B\u056F", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u056F", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u057A\u0561\u0576", 10, 1, "", methodObject ),
                      new Among ( "\u057D\u057F\u0561\u0576", 10, 1, "", methodObject ),
                      new Among ( "\u0561\u0580\u0561\u0576", 10, 1, "", methodObject ),
                      new Among ( "\u0565\u0572\u0567\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0575\u0578\u0582\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0569\u0575\u0578\u0582\u0576", 15, 1, "", methodObject ),
                      new Among ( "\u0561\u056E\u0578", -1, 1, "", methodObject ),
                      new Among ( "\u056B\u0579", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u057D", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u057D\u057F", -1, 1, "", methodObject ),
                      new Among ( "\u0563\u0561\u0580", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0578\u0580", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u057E\u0578\u0580", 22, 1, "", methodObject ),
                      new Among ( "\u0578\u0581", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u0585\u0581", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582", -1, 1, "", methodObject ),
                      new Among ( "\u0584", -1, 1, "", methodObject ),
                      new Among ( "\u0579\u0565\u0584", 27, 1, "", methodObject ),
                      new Among ( "\u056B\u0584", 27, 1, "", methodObject ),
                      new Among ( "\u0561\u056C\u056B\u0584", 29, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u056B\u0584", 29, 1, "", methodObject ),
                      new Among ( "\u057E\u0561\u056E\u0584", 27, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0575\u0584", 27, 1, "", methodObject ),
                      new Among ( "\u0565\u0576\u0584", 27, 1, "", methodObject ),
                      new Among ( "\u0578\u0576\u0584", 27, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0576\u0584", 27, 1, "", methodObject ),
                      new Among ( "\u0574\u0578\u0582\u0576\u0584", 36, 1, "", methodObject ),
                      new Among ( "\u056B\u0579\u0584", 27, 1, "", methodObject ),
                      new Among ( "\u0561\u0580\u0584", 27, 1, "", methodObject )
                  };
  
                  private final static Among a_3[] = {
                      new Among ( "\u057D\u0561", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0561", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0574\u0562", -1, 1, "", methodObject ),
                      new Among ( "\u0564", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u0564", 3, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0569\u0575\u0561\u0576\u0564", 4, 1, "", methodObject ),
                      new Among ( "\u057E\u0561\u0576\u0564", 4, 1, "", methodObject ),
                      new Among ( "\u0578\u057B\u0564", 3, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u0564", 3, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580\u0564", 8, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0564", 3, 1, "", methodObject ),
                      new Among ( "\u0568", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u0568", 11, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0569\u0575\u0561\u0576\u0568", 12, 1, "", methodObject ),
                      new Among ( "\u057E\u0561\u0576\u0568", 12, 1, "", methodObject ),
                      new Among ( "\u0578\u057B\u0568", 11, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u0568", 11, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580\u0568", 16, 1, "", methodObject ),
                      new Among ( "\u056B", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u056B", 18, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u056B", 18, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580\u056B", 20, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u0578\u0582\u0574", -1, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u0578\u0582\u0574", -1, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580\u0578\u0582\u0574", 23, 1, "", methodObject ),
                      new Among ( "\u0576", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0576", 25, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0569\u0575\u0561\u0576", 26, 1, "", methodObject ),
                      new Among ( "\u057E\u0561\u0576", 26, 1, "", methodObject ),
                      new Among ( "\u056B\u0576", 25, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u056B\u0576", 29, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580\u056B\u0576", 30, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0569\u0575\u0561\u0576\u0576", 25, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u0576", 25, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580\u0576", 33, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0576", 25, 1, "", methodObject ),
                      new Among ( "\u0578\u057B", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0569\u0575\u0561\u0576\u057D", -1, 1, "", methodObject ),
                      new Among ( "\u057E\u0561\u0576\u057D", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u057B\u057D", -1, 1, "", methodObject ),
                      new Among ( "\u0578\u057E", -1, 1, "", methodObject ),
                      new Among ( "\u0561\u0576\u0578\u057E", 40, 1, "", methodObject ),
                      new Among ( "\u057E\u0578\u057E", 40, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u0578\u057E", 40, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580\u0578\u057E", 43, 1, "", methodObject ),
                      new Among ( "\u0565\u0580", -1, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580", 45, 1, "", methodObject ),
                      new Among ( "\u0581", -1, 1, "", methodObject ),
                      new Among ( "\u056B\u0581", 47, 1, "", methodObject ),
                      new Among ( "\u057E\u0561\u0576\u056B\u0581", 48, 1, "", methodObject ),
                      new Among ( "\u0578\u057B\u056B\u0581", 48, 1, "", methodObject ),
                      new Among ( "\u057E\u056B\u0581", 48, 1, "", methodObject ),
                      new Among ( "\u0565\u0580\u056B\u0581", 48, 1, "", methodObject ),
                      new Among ( "\u0576\u0565\u0580\u056B\u0581", 52, 1, "", methodObject ),
                      new Among ( "\u0581\u056B\u0581", 48, 1, "", methodObject ),
                      new Among ( "\u0578\u0581", 47, 1, "", methodObject ),
                      new Among ( "\u0578\u0582\u0581", 47, 1, "", methodObject )
                  };
  
                  private static final char g_v[] = {209, 4, 128, 0, 18 };
  
          private int I_p2;
          private int I_pV;
  
                  private void copy_from(ArmenianStemmer other) {
                      I_p2 = other.I_p2;
                      I_pV = other.I_pV;
                      super.copy_from(other);
                  }
  
                  private boolean r_mark_regions() {
              int v_1;
                      // (, line 58
                      I_pV = limit;
                      I_p2 = limit;
                      // do, line 62
                      v_1 = cursor;
                      lab0: do {
                          // (, line 62
                          // gopast, line 63
                          golab1: while(true)
                          {
                              lab2: do {
                                  if (!(in_grouping(g_v, 1377, 1413)))
                                  {
                                      break lab2;
                                  }
                                  break golab1;
                              } while (false);
                              if (cursor >= limit)
                              {
                                  break lab0;
                              }
                              cursor++;
                          }
                          // setmark pV, line 63
                          I_pV = cursor;
                          // gopast, line 63
                          golab3: while(true)
                          {
                              lab4: do {
                                  if (!(out_grouping(g_v, 1377, 1413)))
                                  {
                                      break lab4;
                                  }
                                  break golab3;
                              } while (false);
                              if (cursor >= limit)
                              {
                                  break lab0;
                              }
                              cursor++;
                          }
                          // gopast, line 64
                          golab5: while(true)
                          {
                              lab6: do {
                                  if (!(in_grouping(g_v, 1377, 1413)))
                                  {
                                      break lab6;
                                  }
                                  break golab5;
                              } while (false);
                              if (cursor >= limit)
                              {
                                  break lab0;
                              }
                              cursor++;
                          }
                          // gopast, line 64
                          golab7: while(true)
                          {
                              lab8: do {
                                  if (!(out_grouping(g_v, 1377, 1413)))
                                  {
                                      break lab8;
                                  }
                                  break golab7;
                              } while (false);
                              if (cursor >= limit)
                              {
                                  break lab0;
                              }
                              cursor++;
                          }
                          // setmark p2, line 64
                          I_p2 = cursor;
                      } while (false);
                      cursor = v_1;
                      return true;
                  }
  
                  private boolean r_R2() {
                      if (!(I_p2 <= cursor))
                      {
                          return false;
                      }
                      return true;
                  }
  
                  private boolean r_adjective() {
              int among_var;
                      // (, line 72
                      // [, line 73
                      ket = cursor;
                      // substring, line 73
                      among_var = find_among_b(a_0, 23);
                      if (among_var == 0)
                      {
                          return false;
                      }
                      // ], line 73
                      bra = cursor;
                      switch(among_var) {
                          case 0:
                              return false;
                          case 1:
                              // (, line 98
                              // delete, line 98
                              slice_del();
                              break;
                      }
                      return true;
                  }
  
                  private boolean r_verb() {
              int among_var;
                      // (, line 102
                      // [, line 103
                      ket = cursor;
                      // substring, line 103
                      among_var = find_among_b(a_1, 71);
                      if (among_var == 0)
                      {
                          return false;
                      }
                      // ], line 103
                      bra = cursor;
                      switch(among_var) {
                          case 0:
                              return false;
                          case 1:
                              // (, line 176
                              // delete, line 176
                              slice_del();
                              break;
                      }
                      return true;
                  }
  
                  private boolean r_noun() {
              int among_var;
                      // (, line 180
                      // [, line 181
                      ket = cursor;
                      // substring, line 181
                      among_var = find_among_b(a_2, 40);
                      if (among_var == 0)
                      {
                          return false;
                      }
                      // ], line 181
                      bra = cursor;
                      switch(among_var) {
                          case 0:
                              return false;
                          case 1:
                              // (, line 223
                              // delete, line 223
                              slice_del();
                              break;
                      }
                      return true;
                  }
  
                  private boolean r_ending() {
              int among_var;
                      // (, line 227
                      // [, line 228
                      ket = cursor;
                      // substring, line 228
                      among_var = find_among_b(a_3, 57);
                      if (among_var == 0)
                      {
                          return false;
                      }
                      // ], line 228
                      bra = cursor;
                      // call R2, line 228
                      if (!r_R2())
                      {
                          return false;
                      }
                      switch(among_var) {
                          case 0:
                              return false;
                          case 1:
                              // (, line 287
                              // delete, line 287
                              slice_del();
                              break;
                      }
                      return true;
                  }
  
                  public boolean stem() {
              int v_1;
              int v_2;
              int v_3;
              int v_4;
              int v_5;
              int v_6;
              int v_7;
                      // (, line 292
                      // do, line 294
                      v_1 = cursor;
                      lab0: do {
                          // call mark_regions, line 294
                          if (!r_mark_regions())
                          {
                              break lab0;
                          }
                      } while (false);
                      cursor = v_1;
                      // backwards, line 295
                      limit_backward = cursor; cursor = limit;
                      // setlimit, line 295
                      v_2 = limit - cursor;
                      // tomark, line 295
                      if (cursor < I_pV)
                      {
                          return false;
                      }
                      cursor = I_pV;
                      v_3 = limit_backward;
                      limit_backward = cursor;
                      cursor = limit - v_2;
                      // (, line 295
                      // do, line 296
                      v_4 = limit - cursor;
                      lab1: do {
                          // call ending, line 296
                          if (!r_ending())
                          {
                              break lab1;
                          }
                      } while (false);
                      cursor = limit - v_4;
                      // do, line 297
                      v_5 = limit - cursor;
                      lab2: do {
                          // call verb, line 297
                          if (!r_verb())
                          {
                              break lab2;
                          }
                      } while (false);
                      cursor = limit - v_5;
                      // do, line 298
                      v_6 = limit - cursor;
                      lab3: do {
                          // call adjective, line 298
                          if (!r_adjective())
                          {
                              break lab3;
                          }
                      } while (false);
                      cursor = limit - v_6;
                      // do, line 299
                      v_7 = limit - cursor;
                      lab4: do {
                          // call noun, line 299
                          if (!r_noun())
                          {
                              break lab4;
                          }
                      } while (false);
                      cursor = limit - v_7;
                      limit_backward = v_3;
                      cursor = limit_backward;                    return true;
                  }
  
          public boolean equals( Object o ) {
              return o instanceof ArmenianStemmer;
          }
  
          public int hashCode() {
              return ArmenianStemmer.class.getName().hashCode();
          }
  
  
  
  }
  
  