// 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.
  */

@SuppressWarnings("unused") public class ArmenianStemmer extends SnowballProgram {

private static final long serialVersionUID = 1L;

        /* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();

                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;
                }

                @Override
                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;
                }

        @Override
        public boolean equals( Object o ) {
            return o instanceof ArmenianStemmer;
        }

        @Override
        public int hashCode() {
            return ArmenianStemmer.class.getName().hashCode();
        }



}

