예제 #1
0
        public HarfDizisi cozumlemeIcinEkUret(HarfDizisi ulanacak, HarfDizisi giris, List <EkUretimBileseni> bilesenler)
        {
            HarfDizisi sonuc    = new HarfDizisi(4);
            TurkceHarf sonSesli = ulanacak.sonSesli();

            for (int i = 0; i < bilesenler.Count; i++)
            {
                EkUretimBileseni ekUretimBileseni = bilesenler[i];
                TurkceHarf       harf             = ekUretimBileseni.harf();
                switch (ekUretimBileseni.kural())
                {
                case UretimKurali.HARF:
                    sonuc.ekle(harf);
                    break;

                case UretimKurali.KAYNASTIR:
                    if (ulanacak.sonHarf().sesliMi())
                    {
                        sonuc.ekle(harf);
                    }
                    break;

                case UretimKurali.SERTLESTIR:
                    if (ulanacak.sonHarf().sertMi())
                    {
                        sonuc.ekle(harf.sertDonusum());
                    }
                    else
                    {
                        sonuc.ekle(harf);
                    }
                    break;

                case UretimKurali.SESLI_AE:
                    if (i == 0 && ulanacak.sonHarf().sesliMi())
                    {
                        break;
                    }
                    else
                    {
                        sonSesli = sesliUretici.sesliBelirleAE(sonSesli);
                        sonuc.ekle(sonSesli);
                    }
                    break;

                case UretimKurali.SESLI_IU:
                    if (i == 0 && ulanacak.sonHarf().sesliMi())
                    {
                        break;
                    }
                    else
                    {
                        sonSesli = sesliUretici.sesliBelirleIU(sonSesli);
                        sonuc.ekle(sonSesli);
                    }
                    break;
                }
            }
            return(sonuc);
        }
예제 #2
0
        public Set <TurkceHarf> olasiBaslangicHarfleri(List <EkUretimBileseni> bilesenler)
        {
            Set <TurkceHarf> kume = new HashedSet <TurkceHarf>();//TOREMEMBER 4

            for (int i = 0; i < bilesenler.Count; i++)
            {
                EkUretimBileseni bilesen = bilesenler[i];
                TurkceHarf       harf    = bilesen.harf();
                switch (bilesen.kural())
                {
                case UretimKurali.HARF:
                    kume.Add(harf);
                    return(kume);

                case UretimKurali.KAYNASTIR:
                    kume.Add(harf);
                    break;

                case UretimKurali.SERTLESTIR:
                    kume.Add(harf);
                    kume.Add(harf.sertDonusum());
                    return(kume);

                case UretimKurali.SESLI_AE:
                    kume.Add(HARF_a);
                    kume.Add(HARF_e);
                    if (i > 0)
                    {
                        return(kume);
                    }
                    else
                    {
                        break;
                    }

                case UretimKurali.SESLI_IU:
                    kume.Add(HARF_i);
                    kume.Add(HARF_u);
                    kume.Add(HARF_ii);
                    kume.Add(HARF_uu);
                    if (i > 0)
                    {
                        return(kume);
                    }
                    else
                    {
                        break;
                    }
                }
            }
            return(kume);
        }