public new string LokatīvaGalotne(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     if (darbībasVārds.Tiešs)
     {
         return "uš" + LokatīvaGalotne(dzimte, skaitlis, galotne);
     }
     else
     {
         return null;
     }
 }
 public new string Lokatīvs(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     if (darbībasVārds.Tiešs)
     {
         return base.Lokatīvs(dzimte, skaitlis, galotne);
     }
     else
     {
         return "";
     }
 }
        public PiektāsDeklinācijasLietvārds(string vārds, Dzimte dzimte = Dzimte.Sieviešu)
        {
            if (vārds == null)
                throw new ArgumentNullException("vārds");
            if (!vārds.BeidzasAr("e"))
                throw new ArgumentException("Lietvārdam jābūt vienskaitļa nominatīvā");

            this.dzimte = dzimte;

            Galotne = "e";
            Celms = vārds.AtmestGalotni(Galotne);
        }
 public new string AkuzatīvaGalotne(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     if (darbībasVārds.Tiešs)
     {
         return "uš" + AkuzatīvaGalotne(dzimte, skaitlis, galotne);
     }
     else
     {
         if (skaitlis == Skaitlis.Vienskaitlis)
         {
             return "uš" + "os";
         }
         else
         {
             return "uš" + (dzimte == Dzimte.Vīriešu ? "os" : "ās");
         }
     }
 }
        public string NominatīvaGalotne(Dzimte dzimte, Skaitlis skaitlis)
        {
            string galotne = "dam";

            if (darbībasVārds.Tiešs)
            {
                if (skaitlis == Skaitlis.Vienskaitlis)
                {
                    galotne += dzimte == Dzimte.Vīriešu ? "s" : "a";
                }
                else
                {
                    galotne += dzimte == Dzimte.Vīriešu ? "i" : "as";
                }
            }
            else
            {
                galotne += dzimte == Dzimte.Vīriešu ? "ies" : "ās";
            }

            return galotne;
        }
 public virtual string LokatīvaGalotne(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     if (skaitlis == Skaitlis.Vienskaitlis)
     {
         return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "ā" : "ajā";
     }
     else
     {
         if (dzimte == Dzimte.Vīriešu)
         {
             return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "os" : "ajos";
         }
         else
         {
             return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "ās" : "ajās";
         }
     }
 }
 public string Locīt(Locījums locījums = Locījums.Nominatīvs, Dzimte dzimte = Dzimte.Vīriešu, Skaitlis skaitlis = Skaitlis.Vienskaitlis, Galotne galotne = ĪpašībasVārdi.Galotne.Nenoteiktā)
 {
     switch (locījums)
     {
         default:
         case Locījums.Nominatīvs:
             return Nominatīvs(dzimte, skaitlis, galotne);
         case Locījums.Ģenitīvs:
             return Ģenitīvs(dzimte, skaitlis, galotne);
         case Locījums.Datīvs:
             return Datīvs(dzimte, skaitlis, galotne);
         case Locījums.Akuzatīvs:
             return Akuzatīvs(dzimte, skaitlis, galotne);
         case Locījums.Lokatīvs:
             return Lokatīvs(dzimte, skaitlis, galotne);
     }
 }
 public virtual string DatīvaGalotne(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     if (skaitlis == Skaitlis.Vienskaitlis)
     {
         if (dzimte == Dzimte.Vīriešu)
         {
             return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "am" : "ajam";
         }
         else
         {
             return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "ai" : "ajai";
         }
     }
     else
     {
         if (dzimte == Dzimte.Vīriešu)
         {
             return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "iem" : "ajiem";
         }
         else
         {
             return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "ām" : "ajām";
         }
     }
 }
 public NelokāmsLietvārds(string vārds, Dzimte dzimte)
 {
     Celms = vārds;
     this.dzimte = dzimte;
 }
 /// <summary>
 /// Mēģina uzminēt lietvārda deklināciju, balstoties uz galotni un dzimumu.
 /// </summary>
 /// <param name="vārds"></param>
 /// <param name="dzimte"></param>
 /// <returns></returns>
 public static Lietvārds Jauns(string vārds, Dzimte dzimte)
 {
     if (vārds.BeidzasAr(atriegrezniskoLietvārduGalotnes))
     {
         return new AtgriezenisksLietvārds(vārds);
     }
     else if (vārds.BeidzasAr("us"))
     {
         return new TrešāsDeklinācijasLietvārds(vārds);
     }
     else if (vārds.BeidzasAr(sestāsDeklinācijasVārdi) || (vārds.BeidzasAr("s") && dzimte == Dzimte.Sieviešu))
     {
         return new SestāsDeklinācijasLietvārds(vārds);
     }
     else if (vārds.BeidzasAr("is") || vārds.BeidzasAr(otrāsDeklinācijasIzņēmumi))
     {
         if (char.IsUpper(vārds[0]))
             return new OtrāsDeklinācijasPersonvārdaLietvārds(vārds);
         return new OtrāsDeklinācijasLietvārds(vārds);
     }
     else if (vārds.BeidzasAr("s", "š"))
     {
         return new PirmāsDeklinācijasLietvārds(vārds);
     }
     else if (vārds.BeidzasAr("a"))
     {
         return new CeturtāsDeklinācijasLietvārds(vārds, dzimte);
     }
     else if (vārds.BeidzasAr("e"))
     {
         return new PiektāsDeklinācijasLietvārds(vārds, dzimte);
     }
     else
     {
         return new NelokāmsLietvārds(vārds, Dzimte.Vīriešu);
     }
 }
 public string AtstāstījumaIzteiksmesSaliktāNākotne(PersonasForma persona, Dzimte dzimte)
 {
     return "būšot bijis";
 }
 public string VēlējumaIzteiksmesSaliktāTagadne(PersonasForma persona, Dzimte dzimte)
 {
     return "būtu bijis";
 }
 public new string NominatīvaGalotne(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     if (darbībasVārds.Tiešs)
     {
         if (skaitlis == Skaitlis.Vienskaitlis)
         {
             if (dzimte == Dzimte.Vīriešu)
             {
                 return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "is" : "ušais";
             }
             else
             {
                 return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "usi" : "usī";
             }
         }
         else
         {
             return "uš" + base.NominatīvaGalotne(dzimte, skaitlis, galotne);
         }
     }
     else
     {
         if (skaitlis == Skaitlis.Vienskaitlis)
         {
             return dzimte == Dzimte.Vīriešu ? "ies" : "usies";
         }
         else
         {
             return dzimte == Dzimte.Vīriešu ? "ušies" : "ušās";
         }
     }
 }
 public new string ĢenitīvaGalotne(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     if (darbībasVārds.Tiešs)
     {
         return "uš" + ĢenitīvaGalotne(dzimte, skaitlis, galotne);
     }
     else
     {
         return "uš" + (skaitlis == Skaitlis.Vienskaitlis ? "ās" : "oš");
     }
 }
        public new string Nominatīvs(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
        {
            string sakne = Celms;

            if (skaitlis == Skaitlis.Vienskaitlis && dzimte == Dzimte.Vīriešu && (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā))
            {
                sakne = sakne.LīdzskaņuMija("k", "c");
                sakne = sakne.LīdzskaņuMija("g", "dz");
            }
            else
            {
                sakne = sakne.LīdzskaņuMija("c", "k");
                sakne = sakne.LīdzskaņuMija("dz", "g");
            }

            return sakne + NominatīvaGalotne(dzimte, skaitlis, galotne);
        }
 public virtual string ĢenitīvaGalotne(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     if (skaitlis == Skaitlis.Vienskaitlis)
     {
         if (dzimte == Dzimte.Vīriešu)
         {
             return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "a" : "ā";
         }
         else
         {
             return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "as" : "ās";
         }
     }
     else
     {
         return (galotne == ĪpašībasVārdi.Galotne.Nenoteiktā) ? "u" : "o";
     }
 }
 public string Ģenitīvs(Dzimte dzimte = Dzimte.Vīriešu, Skaitlis skaitlis = Skaitlis.Vienskaitlis, Galotne galotne = ĪpašībasVārdi.Galotne.Nenoteiktā)
 {
     return Celms + ĢenitīvaGalotne(dzimte, skaitlis, galotne);
 }
 public string Nominatīvs(Dzimte dzimte, Skaitlis skaitlis)
 {
     return Celms + NominatīvaGalotne(dzimte, skaitlis);
 }
 public string ĪstenībasIzteiksmesSaliktāTagadne(PersonasForma persona, Dzimte dzimte)
 {
     throw new NotImplementedException();
 }
 public override string ĢenitīvaGalotne(Dzimte dzimte, Skaitlis skaitlis, Galotne galotne)
 {
     return TukšāGalotne;
 }
 public string AtstāstījumaIzteiksmesSaliktāTagadne(PersonasForma persona, Dzimte dzimte)
 {
     return "esot bijis";
 }
        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ā);
        }