示例#1
0
        public static void main(String[] args)
        {
            Type c = Type.GetType("net.zemberek.tr.yapi.TurkiyeTurkcesi");

            DilBilgisi       dilBilgisi = new TurkceDilBilgisi((DilAyarlari)Assembly.GetAssembly(Type.GetType("net.zemberek.tr.yapi")).CreateInstance("net.zemberek.tr.yapi.TurkiyeTurkcesi"));
            Alfabe           alfabe     = dilBilgisi.alfabe();
            KokOkuyucu       okuyucu    = new IkiliKokOkuyucu("kaynaklar/tr/bilgi/binary-sozluk.bin", dilBilgisi.kokOzelDurumlari());
            AgacSozluk       sozluk     = new AgacSozluk(okuyucu, alfabe, dilBilgisi.kokOzelDurumlari());
            KokAgaciYuruyucu yuruyucu   = new KokAgaciYuruyucu(sozluk, new HashedSet <Kok>());

            yuruyucu.agaciTara();
            logger.Info(yuruyucu);
        }
        /**
         * Sozluk, daha dogrusu Kokleri tasiyan agac ve iliskili kok secicileri tasiyan nesneyi uretir
         * Proje gelistirime asamasinda, eger ikili kok-sozluk dosyasi (kokler_xx.bin) dosyasi mevcut
         * degilse once onu uretmeye calisir, daha sonra asil sozluk uretim islemini yapar.
         * Normal kosullarda dagitim jar icerisinde bu dosya yer alacagindan bu islem (bin dosya uretimi) atlanir.
         *
         * @return Sozluk
         */
        public Sozluk kokler()
        {
            if (sozluk != null)
            {
                return(sozluk);
            }

            if (!KaynakYukleyici.kaynakMevcutmu(kokDosyaAdi))
            {
                logger.Error("Kök dosyası bulunamadı, sozluk uretilemiyor.");
                throw new ApplicationException("Kök dosyası bulunamadı.");

/*                logger.Info("binary kok dosyasi bulunamadi. proje icerisinden calisildigi varsayilarak \n" +
 *                      "calisilan dizine goreceli olarak '" + kokDosyaAdi + "' dosyasi uretilmeye calisacak.\n" +
 *                      "eger duz yazki kok bilgilerine erisim saglanamazsa sistem kok bilgisine uretemeycektir. ");
 *              try {
 *                  ikiliKokDosyasiUret();
 *              } catch (System.IO.IOException e) {
 *                  logger.Fatal("kok bilgilerine erisim saglanamadigindan uygulama calismaya devam edemez. Hata : "+e.Message);
 *                  Environment.Exit(-1);
 *              }*/
            }
            kokOzelDurumlari();
            logger.Info("Ikili okuyucu uretiliyor:");
            try
            {
                KokOkuyucu okuyucu = new IkiliKokOkuyucu(kokDosyaAdi, ozelDurumBilgisi);
                logger.Info("Sozluk ve agac uretiliyor:" + dilAdi);
                okuyucu.Ac();
                sozluk = new AgacSozluk(okuyucu, _alfabe, ozelDurumBilgisi);
            }
            catch (Exception e)
            {
                logger.Error("sozluk uretilemiyor. Hata : " + e.Message);
                throw new ApplicationException("sozluk uretilemiyor. Hata : " + e.Message);
            }
            return(sozluk);
        }