/// <summary>Verilen Türkçe fiili istenen zamana ve kişiye göre çekimler.</summary> /// <param name="fiilKoku">Türkçe fiil</param> /// <param name="kip">Zaman kipi</param> /// <param name="kisi">Kişi</param> /// <returns>Çekimlenmiş ifade.</returns> public static string Uygula(string fiilKoku, FiilKipi kip, Kisiler kisi) { GovdeBilgisi govdeBilgisi = new GovdeBilgisi(fiilKoku); var harfler = _kipler[kip]; StringBuilder sb = new StringBuilder(fiilKoku); StringBuilder ek = new StringBuilder(); // Bazı kipler için kişi ekleri değişik çekimlenecek (geliyor-sun, geldi-n gibi) if (kip == FiilKipi.GecmisZaman || kip == FiilKipi.GecmisZamanOlumsuz || kip == FiilKipi.DilekSart || kip == FiilKipi.DilekSartOlumsuz) { KisiEkiDegistir(KisiEkleri.GecmisZaman); } else if (kip == FiilKipi.Istek || kip == FiilKipi.IstekOlumsuz) { KisiEkiDegistir(KisiEkleri.Istek); } else if (kip == FiilKipi.Emir || kip == FiilKipi.EmirOlumsuz) { KisiEkiDegistir(KisiEkleri.Emir); } else { KisiEkiDegistir(KisiEkleri.Varsayilan); } foreach (var harf in harfler) { var c = harf.Bas(govdeBilgisi); if (c != char.MinValue) { ek.Append(c); } } // Yumuşama kontrolü if (ek.ToString() != "") { if (Alfabe.InceSesliler.Contains(govdeBilgisi.SonSesli) && govdeBilgisi.SonHarf == Alfabe.T && Alfabe.Sesliler.Contains(ek[0])) { sb[sb.Length - 1] = Alfabe.D; } } sb.Append(ek); // Olumsuzlardaki -mez ekini birinci tekil kişi için temizleme if ((kisi == Kisiler.BirinciTekil || kisi == Kisiler.BirinciCogul) && sb[sb.Length - 1] == Alfabe.Z) { sb.Remove(sb.Length - 1, 1); } sb = new StringBuilder(KisiyeGoreCekimle(sb.ToString(), kisi)); return(sb.ToString()); }
public char Bas(GovdeBilgisi govde) { if (Alfabe.KalinSesliler.Contains(govde.SonSesli)) { return(Alfabe.A); } else { return(Alfabe.E); } }
public char Bas(GovdeBilgisi govde) { if (govde.SessizIleBitiyor) { return(char.MinValue); } else { return(_k); } }
public char Bas(GovdeBilgisi govde) { if (govde.SessizIleBitiyor && Alfabe.SertSessizler.Contains(govde.SonHarf)) { return(Alfabe.T); } else { return(Alfabe.D); } }
/// <summary> /// Verilen Türkçe ifade sonuna, verilen ismin hâlini uyumlu biçime sokar, tek tırnak"la birlikte ilave eder ve döner. /// </summary> /// <param name="govde">Türkçe ifade</param> /// <param name="hal">İsmin hâli</param> /// <returns>Tek tırnak sonrası hâl eki eklenmiş ifade.</returns> public static string Uygula(string govde, IsminHali hal) { GovdeBilgisi govdeBilgisi = new GovdeBilgisi(govde); var harfler = _haller[hal]; StringBuilder sb = new StringBuilder(govde); sb.Append("'"); foreach (var harf in harfler) { var c = harf.Bas(govdeBilgisi); if (c != char.MinValue) { sb.Append(c); } } return(sb.ToString()); }
public char Bas(GovdeBilgisi govde) { switch (govde.SonSesli) { case Alfabe.E: return(Alfabe.İ); case Alfabe.A: return(Alfabe.I); case Alfabe.O: return(Alfabe.U); case Alfabe.Ö: return(Alfabe.Ü); default: return(govde.SonSesli); } }
public char Bas(GovdeBilgisi govde) { if (Alfabe.SertSessizler.Contains(govde.SonHarf)) { switch (_b) { case Alfabe.B: _b = Alfabe.P; break; case Alfabe.C: _b = Alfabe.Ç; break; case Alfabe.D: _b = Alfabe.T; break; case Alfabe.G: _b = Alfabe.K; break; case Alfabe.Ğ: _b = Alfabe.K; break; default: break; } } return(_b); }
public char Bas(GovdeBilgisi govde) { if (govde.SessizIleBitiyor) { switch (govde.SonSesli) { case Alfabe.E: return(Alfabe.İ); case Alfabe.A: return(Alfabe.I); case Alfabe.O: return(Alfabe.U); case Alfabe.Ö: return(Alfabe.Ü); default: return(govde.SonSesli); } } else { return(char.MinValue); } }
private static string KisiyeGoreCekimle(string fiilGovdesi, Kisiler kisi) { GovdeBilgisi govdeBilgisi = new GovdeBilgisi(fiilGovdesi); var harfler = _kisiler[kisi]; StringBuilder sb = new StringBuilder(fiilGovdesi); StringBuilder ek = new StringBuilder(); foreach (var harf in harfler) { var c = harf.Bas(govdeBilgisi); if (c != char.MinValue) { ek.Append(c); } } // Yumuşama kontrolü if (ek.ToString() != "") { if (Alfabe.SertSessizler.Contains(govdeBilgisi.SonHarf) && Alfabe.Sesliler.Contains(ek[0])) { switch (govdeBilgisi.SonHarf) { case Alfabe.P: sb[sb.Length - 1] = Alfabe.B; break; case Alfabe.Ç: sb[sb.Length - 1] = Alfabe.C; break; case Alfabe.T: sb[sb.Length - 1] = Alfabe.D; break; case Alfabe.K: sb[sb.Length - 1] = Alfabe.Ğ; break; } } } return(sb.Append(ek).ToString()); }
/// <summary>Verilen Türkçe ismi istenen hale göre çekimler.</summary> /// <param name="govde">Türkçe isim</param> /// <param name="hal">İsmin hâli</param> /// <returns>Çekimlenmiş ifade.</returns> public static string Uygula(string govde, IsminHali hal) { GovdeBilgisi govdeBilgisi = new GovdeBilgisi(govde); var harfler = _haller[hal]; StringBuilder sb = new StringBuilder(govde); StringBuilder ek = new StringBuilder(); foreach (var harf in harfler) { var c = harf.Bas(govdeBilgisi); if (c != char.MinValue) { ek.Append(c); } } // Yumuşama kontrolü if (ek.ToString() != "") { if (govdeBilgisi.SertSessizIleBitiyor && Alfabe.Sesliler.Contains(ek[0])) { switch (govdeBilgisi.SonHarf) { case Alfabe.P: sb[sb.Length - 1] = Alfabe.B; break; case Alfabe.Ç: sb[sb.Length - 1] = Alfabe.C; break; case Alfabe.T: sb[sb.Length - 1] = Alfabe.D; break; case Alfabe.K: sb[sb.Length - 1] = Alfabe.Ğ; break; } } } return(sb.Append(ek).ToString()); }
public char Bas(GovdeBilgisi govde) { return(EsasHarf); }