Пример #1
0
        public Kok oku()
        {
            String line;

            while (!reader.EndOfStream)
            {
                line = reader.ReadLine().Trim();
                if (line.StartsWith("#") || line.Length == 0)
                {
                    continue;
                }

                String[] tokens = line.Split(AYIRICI_PATTERN);
                if (tokens == null || tokens.Length < 2)
                {
                    logger.Warn("Eksik bilgi!" + line);
                    continue;
                }
                String icerik = tokens[0];
                Kok    kok    = new Kok(icerik);

                // ayikla() ile kok icerigi kucuk harfe donusturuluyor ve '- vs
                // isaretler siliniyor.
                kok.Icerik = alfabe.ayikla(kok.icerik());

                // kelime tipini belirle. ilk parca mutlaka kok tipini belirler
                if (_kokTipAdlari.ContainsKey(tokens[1]))
                {
                    KelimeTipi tip = (KelimeTipi)_kokTipAdlari[tokens[1]];
                    kok.Tip = tip;
                    ozelDurumlar.kokIcerikIsle(kok, tip, icerik);
                }
                else
                {
                    logger.Warn("Kok tipi bulunamadi!" + line);
                }

                // kok ozelliklerini ekle.
                ozelDurumlar.duzyaziOzelDurumOku(kok, icerik, tokens);

                // bazi ozel durumlar ana dosyada yer almaz, algoritma ile uretilir.
                // bu ozel durumlari koke ekle.
                ozelDurumlar.ozelDurumBelirle(kok);

                return(kok);
            }
            this.Kapat();
            return(null);
        }