summaryrefslogtreecommitdiff
path: root/okur.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'okur.lisp')
-rw-r--r--okur.lisp24
1 files changed, 13 insertions, 11 deletions
diff --git a/okur.lisp b/okur.lisp
index 3a76f05..94d72c4 100644
--- a/okur.lisp
+++ b/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)