minik refactor ve rastgele sırayla tüm kelimeleri sorma
This commit is contained in:
24
okur.lisp
24
okur.lisp
@@ -96,8 +96,8 @@
|
||||
(boşluk-geç okur)
|
||||
(anlam-oku okur)))))
|
||||
|
||||
(defmethod kelime-oku ((okur okur))
|
||||
(let (kanji kana anlam grup altgrup)
|
||||
(defmethod kelime-oku ((okur okur) sıra)
|
||||
(let (kanji kana anlam tür alttür)
|
||||
(setf kanji (kanji-oku okur))
|
||||
(boşluk-geç okur)
|
||||
(setf kana (kana-oku okur))
|
||||
@@ -107,28 +107,30 @@
|
||||
;; (yeni-satıra-geç okur)
|
||||
(kar-oku okur)
|
||||
(boşluk-geç okur)
|
||||
(setf grup (sonraki-öbek okur '(#\Newline #\Space #\; #\,)))
|
||||
(cond ((or (string= grup "fiil")
|
||||
(string= grup "sıfat"))
|
||||
(setf tür (sonraki-öbek okur '(#\Newline #\Space #\; #\,)))
|
||||
(cond ((or (string= tür "fiil")
|
||||
(string= tür "sıfat"))
|
||||
(boşluk-geç okur)
|
||||
(setf altgrup (sonraki-öbek okur '(#\Newline #\Space #\;))))
|
||||
(setf alttür (sonraki-öbek okur '(#\Newline #\Space #\;))))
|
||||
((char= #\, (kar-bak okur))
|
||||
(kar-oku okur)
|
||||
(boşluk-geç okur)
|
||||
(push (sonraki-öbek okur '(#\Newline #\Space #\;)) grup))))
|
||||
(setf tür (list tür (sonraki-öbek okur '(#\Newline #\Space #\;)))))))
|
||||
(make-instance 'kelime :kanji kanji :kana kana :anlam anlam
|
||||
:grup grup :altgrup altgrup)))
|
||||
:tür tür :alttür alttür :sıra sıra)))
|
||||
|
||||
(defmethod işle ((okur okur))
|
||||
(unless (eq :baş (durum okur))
|
||||
(error "Okur zaten işlenmiş"))
|
||||
(loop :until (metin-bitti? okur)
|
||||
(loop :with sıra := 0
|
||||
:until (metin-bitti? okur)
|
||||
:do (case (kar-bak okur)
|
||||
(#\; (yeni-satıra-geç okur))
|
||||
(#\Newline (yeni-satıra-geç okur))
|
||||
(#\Space (boşluk-geç okur))
|
||||
(otherwise (vector-push-extend (kelime-oku okur)
|
||||
(kelimeler okur)))))
|
||||
(otherwise (vector-push-extend (kelime-oku okur sıra)
|
||||
(kelimeler okur))
|
||||
(incf sıra))))
|
||||
(kelimeler okur))
|
||||
|
||||
(defmacro okurla ((isim dosya-ismi) &body beden)
|
||||
|
||||
Reference in New Issue
Block a user