public string PavēlesIzteiksme(PersonasForma persona)
        {
            string vārds = null;

            switch (persona)
            {
                case PersonasForma.VienskaitļaPirmāPersona:
                    vārds = "esam";
                    break;

                case PersonasForma.VienskaitļaOtrāPersona:
                    vārds = "esi";
                    break;

                case PersonasForma.DaudzskaitļaPirmāPersona:
                    vārds = "būsim";
                    break;

                case PersonasForma.DaudzskaitļaOtrāPersona:
                    vārds = "esiet";
                    break;

                case PersonasForma.VienskaitļaTrešāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    vārds = "ir";
                    break;
            }

            return vārds;
        }
 public string AtstāstījumaIzteiksmesSaliktāNākotne(PersonasForma persona, Dzimte dzimte)
 {
     return "būšot bijis";
 }
 public string AtstāstījumaIzteiksmesSaliktāTagadne(PersonasForma persona, Dzimte dzimte)
 {
     return "esot bijis";
 }
        public string ĪstenībasIzteiksmesVienkāršāPagātne(PersonasForma persona)
        {
            string vārds = null;

            switch (persona)
            {
                case PersonasForma.VienskaitļaPirmāPersona:
                    vārds = "biju";
                    break;

                case PersonasForma.VienskaitļaOtrāPersona:
                    vārds = "biji";
                    break;

                case PersonasForma.DaudzskaitļaPirmāPersona:
                    vārds = "bijām";
                    break;

                case PersonasForma.DaudzskaitļaOtrāPersona:
                    vārds = "bijāt";
                    break;

                case PersonasForma.VienskaitļaTrešāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    vārds = "bija";
                    break;
            }

            return vārds;
        }
        public string ĪstenībasIzteiksmesVienkāršāTagadne(PersonasForma persona)
        {
            string vārds = null;

            switch (persona)
            {
                case PersonasForma.VienskaitļaPirmāPersona:
                    vārds = "esmu";
                    break;

                case PersonasForma.VienskaitļaOtrāPersona:
                    vārds = "esi";
                    break;

                case PersonasForma.DaudzskaitļaPirmāPersona:
                    vārds = "esam";
                    break;

                case PersonasForma.DaudzskaitļaOtrāPersona:
                    vārds = "esat";
                    break;

                case PersonasForma.VienskaitļaTrešāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    vārds = "ir";
                    break;
            }

            return vārds;
        }
 public string ĪstenībasIzteiksmesSaliktāTagadne(PersonasForma persona, Dzimte dzimte)
 {
     throw new NotImplementedException();
 }
        public string ĪstenībasIzteiksmesVienkāršāNākotne(PersonasForma persona)
        {
            string vārds = null;

            switch (persona)
            {
                case PersonasForma.VienskaitļaPirmāPersona:
                    vārds = "būšu";
                    break;

                case PersonasForma.VienskaitļaOtrāPersona:
                    vārds = "būsi";
                    break;

                case PersonasForma.DaudzskaitļaPirmāPersona:
                    vārds = "būsim";
                    break;

                case PersonasForma.DaudzskaitļaOtrāPersona:
                    vārds = "būsiet";
                    break;

                case PersonasForma.VienskaitļaTrešāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    vārds = "būs";
                    break;
            }

            return vārds;
        }
        private static Skaitlis PersonasSkaitlis(PersonasForma persona)
        {
            switch (persona)
            {
                default:
                case PersonasForma.VienskaitļaPirmāPersona:
                case PersonasForma.VienskaitļaOtrāPersona:
                case PersonasForma.VienskaitļaTrešāPersona:
                    return Skaitlis.Vienskaitlis;

                case PersonasForma.DaudzskaitļaPirmāPersona:
                case PersonasForma.DaudzskaitļaOtrāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    return Skaitlis.Daudzskaitlis;
            }
        }
 public string VēlējumaIzteiksmesSaliktāTagadne(PersonasForma persona, Dzimte dzimte)
 {
     return "būtu bijis";
 }
        protected string LīdzskaņuMijaPavēlesIzteiksmei(string celms, PersonasForma persona)
        {
            if (persona == PersonasForma.DaudzskaitļaOtrāPersona)
            {
                // var īsāk, bez if'a
                if (celms.BeidzasAr("i"))
                {
                    celms = celms.AtmestGalotni("i");
                }
                else if (celms.BeidzasAr("ies"))
                {
                    celms = celms.AtmestGalotni("ies");
                }
            }

            if (PagātnesCelms.BeidzasAr("t"))
            {
                celms = celms.LīdzskaņuMija("s", "t");
                celms = celms.LīdzskaņuMija("ž", "t"); // typo?
            }
            else if (PagātnesCelms.BeidzasAr("d"))
            {
                celms = celms.LīdzskaņuMija("s", "d");
                celms = celms.LīdzskaņuMija("z", "d");
            }

            if (Konjugācija == Konjugācija.II && persona == PersonasForma.DaudzskaitļaOtrāPersona)
            {
                celms += "j";
            }

            return celms;
        }
        protected string LīdzskaņuMijaĪstenībasIzteiksmesVienkāršajaiTagadnei(string celms, PersonasForma persona)
        {
            // Daļai I konjugācijas darbības vārdu vienkāršās tagadnes personu formās, izņemot vienskaitļa 2.personas formu, saknes beigās rodas līdzskaņu mija.
            if (Konjugācija == Konjugācija.I && persona == PersonasForma.VienskaitļaOtrāPersona)
            {
                if (Konjugācija == Konjugācija.I && Grupa == 4)
                {
                    string pagātnesCelmaPēdējaisBurts = PagātnesCelms[PagātnesCelms.Length - 1].ToString();
                    celms = celms.LīdzskaņuMija("bj", pagātnesCelmaPēdējaisBurts);
                    celms = celms.LīdzskaņuMija("mj", pagātnesCelmaPēdējaisBurts);
                    celms = celms.LīdzskaņuMija("pj", pagātnesCelmaPēdējaisBurts);
                    celms = celms.LīdzskaņuMija("ļ", pagātnesCelmaPēdējaisBurts);
                    celms = celms.LīdzskaņuMija("š", pagātnesCelmaPēdējaisBurts);
                    celms = celms.LīdzskaņuMija("ž", pagātnesCelmaPēdējaisBurts);
                }
                else
                {
                    celms = celms.LīdzskaņuMija("bj", "b");
                    celms = celms.LīdzskaņuMija("mj", "m");
                    celms = celms.LīdzskaņuMija("pj", "p");
                    celms = celms.LīdzskaņuMija("ļ", "l");
                    celms = celms.LīdzskaņuMija("š", "s");
                    celms = celms.LīdzskaņuMija("ž", "z");
                }

                // Dažiem I konjugācijas darbības vārdiem, kam nenoteiksmē galotnes priekšā ir līdzskanis k vai g, līdzskaņu mija ir tikai vienkāršās tagadnes vienskaitļa 2.personas formā.
                if (Nenoteiksme.BeidzasAr("kt", "kties"))
                {
                    celms = celms.LīdzskaņuMija("k", "c");
                }
                else if (Nenoteiksme.BeidzasAr("gt", "gties"))
                {
                    celms = celms.LīdzskaņuMija("g", "dz");
                }
            }

            if (Konjugācija == Konjugācija.II && ((persona == PersonasForma.VienskaitļaTrešāPersona || persona == PersonasForma.DaudzskaitļaTrešāPersona) || persona == PersonasForma.VienskaitļaOtrāPersona))
            {
                celms = celms.AtmestGalotni("j");
            }

            // Dažiem III konjugācijas darbības vārdiem, kam nenoteiksmē izskaņu -ēt vai -īt priekšā ir līdzskani c vai dz, visās vienkāršās tagadnes personu formās galotnes priekšā ir līdzskanis k vai g.
            /* if ($this->conjugation == 3) {
            if ($this->infinitive->BeidzasAr('ēt', 'ēties', 'īt', 'īties') {
                $word->palatalise('c', 'k');
                $word->palatalise('dz', 'g');
            }
            } */

            return celms;
        }
        public string ĪstenībasIzteiksmesVienkāršāTagadne(PersonasForma persona)
        {
            string vārds = LīdzskaņuMijaĪstenībasIzteiksmesVienkāršajaiTagadnei(TagadnesCelms, persona);

            // Visi izņemot III konjugācijas 1.grupas darbības vārdi
            bool īsaGalotne = !(Konjugācija == Konjugācija.III && Grupa == 1);

            switch (persona)
            {
                // Vienkāršās tagadnes vienskaitļa 1.personas formā darbības vārdam ir galotne -u vai -os.
                case PersonasForma.VienskaitļaPirmāPersona:
                    vārds += Tiešs ? "u" : "os";
                    break;

                // Vienkāršās tagadnes vienskaitļa 2.personas formā darbības vārds ir bez galotnes vai ar galotni -i vai -ies.
                case PersonasForma.VienskaitļaOtrāPersona:
                    string galotne = "";

                    if (Atgriezenisks)
                    {
                        galotne = "ies";
                    }
                    else
                    {
                        // Galotne -i ir visiem tiešajiem III konjugācijas darbības vārdiem, kā arī I konjugācijas 5.grupas un tiem 3.grupas darbības vārdiem,
                        // kam sakne beidzas ar līdzskaņiem d, p vai t.
                        if ((Konjugācija == Konjugācija.III) ||
                            (Konjugācija == Konjugācija.I && (Grupa == 3 || Grupa == 5) && TagadnesCelms.BeidzasAr("t", "d", "p")))
                        {
                            galotne = "i";
                        }
                    }

                    // Citi tiešie I konjugācijas un II konjugācijas darbības vārdi vienkāršās tagadnes vienskaitļa 2.personā tiek lietoti bezgalotnes formā.

                    vārds += galotne;
                    break;

                // Vienkāršās tagadnes daudzskaitļa 1.personas formā darbības vārdam ir galotne -am, -ām, -amies vai -āmies.
                case PersonasForma.DaudzskaitļaPirmāPersona:
                    if (īsaGalotne)
                    {
                        vārds += Tiešs ? "am" : "amies";
                    }
                    else
                    {
                        // Galotnes -ām, -āmies ir III konjugācijas 1.grupas darbības vārdiem
                        vārds += Tiešs ? "ām" : "āmies";
                    }
                    break;

                // Vienkāršās tagadnes daudzskaitļa 2.personas formā darbības vārdam ir galotne -at, -āt, -aties vai -āties.
                case PersonasForma.DaudzskaitļaOtrāPersona:
                    if (īsaGalotne)
                    {
                        vārds += Tiešs ? "at" : "aties";
                    }
                    else
                    {
                        // Galotnes -āt, -āties ir III konjugācijas 1.grupas darbības vārdiem
                        vārds += Tiešs ? "āt" : "āties";
                    }
                    break;

                case PersonasForma.VienskaitļaTrešāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    if (īsaGalotne)
                    {
                        // Tiešajiem darbības vārdiem nav galotnes, bet atgriezeniskajiem darbības vārdiem ir galotne -as.
                        vārds += Tiešs ? "" : "as";
                    }
                    else
                    {
                        // Vienkāršās tagadnes 3.personas formā III konjugācijas 1.grupas darbības vārdiem ir galotne -a vai -ās
                        vārds += Tiešs ? "a" : "ās";
                    }

                    // II konjugācijas darbības vārdiem 3.personā un vienskaitļa 2.personā ir viena un tā pati forma.
                    break;
            }

            return vārds;
        }
        public string ĪstenībasIzteiksmesVienkāršāPagātne(PersonasForma persona)
        {
            string vārds = PagātnesCelms;

            switch (persona)
            {
                // Vienkāršajā pagātnē vienskaitļa 1.personas formā darbības vārdiem ir galotne -u vai -os.
                // II konjugācijas darbības vārdiem sakrīt vienkāršās pagātnes un vienkāršās tagadnes vienskaitļa 1.personas formas.
                case PersonasForma.VienskaitļaPirmāPersona:
                    vārds += Tiešs ? "u" : "os";
                    break;

                // Vienkāršajā pagātnē vienskaitļa 2.personas formā darbības vārdiem ir galotne -i vai -ies.
                case PersonasForma.VienskaitļaOtrāPersona:
                    vārds += Tiešs ? "i" : "ies";
                    break;

                // Vienkāršajā pagātnē daudzskaitļa 1.personas formā visiem darbības vārdiem ir galotne -ām vai -āmies.
                case PersonasForma.DaudzskaitļaPirmāPersona:
                    vārds += Tiešs ? "ām" : "āmies";
                    break;

                // Vienkāršajā pagātnē daudzskaitļa 2.personas formā visiem darbības vārdiem ir galotne -āt vai -āties.
                case PersonasForma.DaudzskaitļaOtrāPersona:
                    vārds += Tiešs ? "āt" : "āties";
                    break;

                // Vienkāršajā pagātnē 3.personas formā visiem darbības vārdiem ir galotne -a vai -ās.
                case PersonasForma.VienskaitļaTrešāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    vārds += Tiešs ? "a" : "ās";
                    break;
            }

            return vārds;
        }
        public string ĪstenībasIzteiksmesVienkāršāNākotne(PersonasForma persona)
        {
            // Vienkāršās nākotnes personu formas veido, darbības vārda nenoteiksmes celmam pievienojot piedēkli -š- vienskaitļa 1.personas formā vai piedēkli -s- pārējās personu formās un personu galotni.
            // I konjugācijas darbības vārdiem, kam nenoteiksmē galotnes priekšā ir līdzskanis s vai z, veidojot vienkāršās nākotnes personu formas pirms piedēkļa -s- vai -š- tiek iesprausts līdzskanis ī izrunas atvieglošanai.
            string vārds = LīdzskaņuMijaĪstenībasIzteiksmesVienkāršajaiNākotnei(NenoteiksmesCelms);

            switch (persona)
            {
                // Vienkāršās nākotnes personu formas veido, darbības vārda nenoteiksmes celmam pievienojot piedēkli -š- vienskaitļa 1.personas formā...
                case PersonasForma.VienskaitļaPirmāPersona:
                    vārds += "š" + (Tiešs ? "u" : "os");
                    break;

                // ...vai piedēkli -s- pārējās personu formās un personu galotni.
                case PersonasForma.VienskaitļaOtrāPersona:
                    vārds += "s" + (Tiešs ? "i" : "ies");
                    break;

                // Vienkāršajā nākotnē daudzskaitļa 1.personas formā darbības vārdam ir galotne -im vai -imies.
                case PersonasForma.DaudzskaitļaPirmāPersona:
                    vārds += "s" + (Tiešs ? "im" : "imies");
                    break;

                // Vienkāršajā nākotnē daudzskaitļa 2.personas formā darbības vārdam ir galotne -it, -ities vai -iet, -ieties.
                // Mana piezīme: -it un -ities tiek reti izmantots un var vienmēr aizstāt ar -iet un -ieties, tāpēc to izņēmu.
                case PersonasForma.DaudzskaitļaOtrāPersona:
                    vārds += "s" + (Tiešs ? "iet" : "ieties");
                    break;

                case PersonasForma.VienskaitļaTrešāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    vārds += "s" + (Tiešs ? "" : "ies");
                    break;
            }

            return vārds;
        }
        public string ĪstenībasIzteiksmesSaliktāTagadne(PersonasForma persona, Dzimte dzimte)
        {
            IDarbībasVārds būt = new BūtDarbībasVārds();
            DarāmāsKārtasPagātnesDivdabis divdabis = new DarāmāsKārtasPagātnesDivdabis(this);

            return būt.ĪstenībasIzteiksmesVienkāršāTagadne(persona) + " " +
                divdabis.Nominatīvs(dzimte, PersonasSkaitlis(persona), ĪpašībasVārdi.Galotne.Nenoteiktā);
        }
        public string PavēlesIzteiksme(PersonasForma persona)
        {
            string vārds = null;

            switch (persona)
            {
                // Pavēles izteiksme netiek lietota vienskaitļa 1.personā.
                // Mana piezīme: izņēmumu tak nemetīšu... tāpēc sakrīt ar daudzskaitļa 1.personu.
                case PersonasForma.VienskaitļaPirmāPersona:
                case PersonasForma.DaudzskaitļaPirmāPersona:
                    vārds = ĪstenībasIzteiksmesVienkāršāNākotne(PersonasForma.DaudzskaitļaPirmāPersona);
                    break;

                // Pavēles izteiksmes vienskaitļa 2.personas forma ir vienāda ar īstenības izteiksmes vienskaitļa 2.personas formu.
                case PersonasForma.VienskaitļaOtrāPersona:
                    vārds = ĪstenībasIzteiksmesVienkāršāTagadne(PersonasForma.VienskaitļaOtrāPersona);
                    vārds = LīdzskaņuMijaPavēlesIzteiksmei(vārds, persona);
                    break;

                // Pavēles izteiksmes daudzskaitļa 2.personas formu veido, darbības vārda īstenības izteiksmes vienkāršās tagadnes vienskaitļa 2.personas formas celmam pievienojot galotni -iet vai -ieties.
                case PersonasForma.DaudzskaitļaOtrāPersona:
                    vārds = ĪstenībasIzteiksmesVienkāršāTagadne(PersonasForma.VienskaitļaOtrāPersona);
                    vārds = LīdzskaņuMijaPavēlesIzteiksmei(vārds, persona);

                    vārds += Tiešs ? "iet" : "ieties";
                    break;

                // Ar 3.personas nozīmi pavēles izteiksmē lieto īstenības izteiksmes vienkāršās tagadnes 3.personas formu savienojumā ar partikulu lai.
                case PersonasForma.VienskaitļaTrešāPersona:
                case PersonasForma.DaudzskaitļaTrešāPersona:
                    vārds = "lai " + ĪstenībasIzteiksmesVienkāršāTagadne(PersonasForma.VienskaitļaTrešāPersona);
                    break;
            }

            return vārds;
        }