diff options
Diffstat (limited to 'src')
38 files changed, 1138 insertions, 166 deletions
diff --git a/src/cgi-bin/conj.scm4 b/src/cgi-bin/conj.scm4 index a8d84f1..83fb846 100644 --- a/src/cgi-bin/conj.scm4 +++ b/src/cgi-bin/conj.scm4 @@ -385,5 +385,5 @@ ifelse(IFACE,[CGI],(cgi:init)) (print-footnote "class-na" "*" "Conjugation class of this verb is not attested")) - ((root) + ((stem) (print-footnote "stem-na" "?" (_ "Το θέμα αυτού του χρόνου δεν επιβεβαιώνεται από τη βάση δεδοµένων"))))) diff --git a/src/ellinika/conjugator.scm b/src/ellinika/conjugator.scm index bffc6be..eae4ad0 100644 --- a/src/ellinika/conjugator.scm +++ b/src/ellinika/conjugator.scm @@ -38,5 +38,5 @@ ;; attested -(define (verb-set! verb key value) +(define (vinfo-set! verb key value) ; (format #t "VERB ~A KEY ~A VALUE ~A~%" verb key value) (case key @@ -61,5 +61,5 @@ -(define (verb-get verb key) +(define (vinfo-get verb key) (case key ((#:conj) @@ -104,6 +104,6 @@ "SELECT property,value FROM verbtense WHERE \ verb=\"~A\" AND voice=\"~A\" AND mood=\"~A\" AND tense=\"~A\"" - (verb-get vinfo #:verb) voice mood tense))) - (verb-set! + (vinfo-get vinfo #:verb) voice mood tense))) + (vinfo-set! vinfo #:proplist (let loop ((inlist (if (null? verbprop) @@ -195,4 +195,9 @@ verb=\"~A\" AND voice=\"~A\" AND mood=\"~A\" AND tense=\"~A\"" (elstr-append stem "ηθ"))))) +(define (thema-aoristou-prostaktikhs stem) + (if (elstr-suffix? stem "β" "γ" "θ" "ν") + (elstr-append stem "ε") + stem)) + (define (lookup-verb-info verb voice thema) (ellinika:sql-query @@ -211,4 +216,5 @@ WHERE verb=\"~A\" AND voice=\"~A\" AND thema=\"~A\"" "cannot handle ~A" (list (force-string verb)))))) +;; FIXME: Use vinfo #:verb instead of the verb argument. (define (complement-verb-info vinfo verb voice thema) ; (format #t "COMPLEMENT ~A~%" vinfo) @@ -218,26 +224,31 @@ WHERE verb=\"~A\" AND voice=\"~A\" AND thema=\"~A\"" (lookup-verb-info verb voice "aor") tmpres)))) - (verb-set! vinfo #:stem + (vinfo-set! vinfo #:stem (cond ((not (null? result)) - (verb-set! vinfo #:attested 'stem) + (vinfo-set! vinfo #:attested 'stem) (map car result)) - ((string=? (verb-get vinfo #:conj) "A") + ((string=? (vinfo-get vinfo #:conj) "A") (let ((stem (verb-A-stem elverb))) (cond ((string=? thema "pres") - (verb-set! vinfo #:attested 'stem) + (vinfo-set! vinfo #:attested 'stem) stem) ((or (string=? thema "aor") (string=? thema "sub")) - (if (string=? voice "act") - (elstr-thema-aoristoy stem) - (thema-aoristoy-mesapathitikis-A stem))) + (cond + ((string=? voice "act") + (elstr-thema-aoristoy stem)) + ((string=? voice "pas") + (thema-aoristoy-mesapathitikis-A stem)) + (else + (throw 'conjugator-error 'conjugator-error-db + "invalid voice ~A" (list voice))))) (else #f)))) - ((string=? (verb-get vinfo #:conj) "A-depon") + ((string=? (vinfo-get vinfo #:conj) "A-depon") (let ((stem (verb-A-stem elverb))) (cond ((string=? thema "pres") - (verb-set! vinfo #:attested 'stem) + (vinfo-set! vinfo #:attested 'stem) stem) ((or (string=? thema "aor") (string=? thema "sub")) @@ -245,5 +256,5 @@ WHERE verb=\"~A\" AND voice=\"~A\" AND thema=\"~A\"" (else #f)))) - ((string=? (verb-get vinfo #:conj) "B1") + ((string=? (vinfo-get vinfo #:conj) "B1") (let ((stem (if (elstr-suffix? elverb "άω") (elstr-trim elverb -2) @@ -251,5 +262,5 @@ WHERE verb=\"~A\" AND voice=\"~A\" AND thema=\"~A\"" (cond ((or (string=? voice "act") (string=? thema "pres")) - (verb-set! vinfo #:attested 'stem) + (vinfo-set! vinfo #:attested 'stem) stem) ((or (string=? thema "aor") (string=? thema "sub")) @@ -257,12 +268,12 @@ WHERE verb=\"~A\" AND voice=\"~A\" AND thema=\"~A\"" (lambda (aor) (thema-aoristoy-mesapathitikis-B stem aor)) - (conjugate verb "act" "ind" "Αόριστος"))) + (conjugate vinfo "act" "ind" "Αόριστος"))) (else #f)))) - ((string=? (verb-get vinfo #:conj) "B2") + ((string=? (vinfo-get vinfo #:conj) "B2") (let ((stem (elstr-trim elverb -1))) (cond ((or (string=? voice "act") (string=? thema "pres")) - (verb-set! vinfo #:attested 'stem) + (vinfo-set! vinfo #:attested 'stem) stem) ((or (string=? thema "aor") (string=? thema "sub")) @@ -344,5 +355,5 @@ AND c.tense=\"~A\" AND c.flect = f.ident ORDER by fold" ;; (define (get-property conj vinfo key default) -;; (if ((override (verb-get vinfo +;; (if ((override (vinfo-get vinfo ;; (symbol->keyword ;; (string->symbol @@ -353,7 +364,7 @@ AND c.tense=\"~A\" AND c.flect = f.ident ORDER by fold" ;; (let ((t (conj-info key conj))) ;; (if t -;; (or (verb-get vinfo key) +;; (or (vinfo-get vinfo key) ;; t) -;; (or (verb-get vinfo key) +;; (or (vinfo-get vinfo key) ;; (conj-info key conj) ;; default)))))) @@ -361,13 +372,13 @@ AND c.tense=\"~A\" AND c.flect = f.ident ORDER by fold" (define (get-suffix conj vinfo) - (let ((ret (let ((override (verb-get vinfo #:override))) + (let ((ret (let ((override (vinfo-get vinfo #:override))) (if (and override (member "suffix" override)) (let ((t (conj-info #:suffix conj))) (if t - (or (verb-get vinfo #:suffix) + (or (vinfo-get vinfo #:suffix) t) "")) - (or (verb-get vinfo #:suffix) + (or (vinfo-get vinfo #:suffix) (conj-info #:suffix conj) ""))))) @@ -376,12 +387,12 @@ AND c.tense=\"~A\" AND c.flect = f.ident ORDER by fold" (define (get-accmap conj vinfo) - (let ((override (verb-get vinfo #:override))) + (let ((override (vinfo-get vinfo #:override))) (if (and override (member "accmap" override)) (let ((t (conj-info #:accmap conj))) (if t - (or (verb-get vinfo #:accmap) + (or (vinfo-get vinfo #:accmap) t))) - (or (verb-get vinfo #:accmap) + (or (vinfo-get vinfo #:accmap) (conj-info #:accmap conj) "000000")))) @@ -395,11 +406,11 @@ AND c.tense=\"~A\" AND c.flect = f.ident ORDER by fold" ((> (length accmap) 6) (set! accmap (list-head accmap 6)) - (set! augment (or (verb-get vinfo #:augment) "ε")))) -; (format #t "AUGMENT ~A ~A~%" vinfo (verb-get vinfo #:augment)) + (set! augment (or (vinfo-get vinfo #:augment) "ε")))) +; (format #t "AUGMENT ~A ~A~%" vinfo (vinfo-get vinfo #:augment)) (let ((forms (map (lambda (flect acc person) (cond - ((verb-get vinfo (symbol->keyword + ((vinfo-get vinfo (symbol->keyword (string->symbol (number->string person)))) => @@ -469,5 +480,5 @@ AND c.tense=\"~A\" AND c.flect = f.ident ORDER by fold" (map force-string forms))))) -(define (individual-verb verb voice mood tense) +(define (individual-verb vinfo voice mood tense) (let ((res (ellinika:sql-query "SELECT f.sing1,f.sing2,f.sing3,f.plur1,f.plur2,f.plur3\ @@ -475,10 +486,14 @@ AND c.tense=\"~A\" AND c.flect = f.ident ORDER by fold" WHERE i.verb=\"~A\" AND i.voice=\"~A\" AND i.mood=\"~A\"\ AND i.tense=\"~A\" AND i.ident=f.ident" - verb voice mood tense))) - (if (not (null? res)) - (append (car res) - (list "I" - '(class stem))) - #f))) + (vinfo-get vinfo #:verb) voice mood tense))) + (if (null? res) + #f + (map + (lambda (elt) + (append + elt + (list "I" + '(class stem)))) + res)))) (define (merge-conjugated-forms lista listb) @@ -488,139 +503,148 @@ AND c.tense=\"~A\" AND c.flect = f.ident ORDER by fold" lista listb)) -(define (conjugate verb voice mood tense . rest) +(define (conjugate vinfo voice mood tense . rest) (cond - ((individual-verb verb voice mood tense) => + ((individual-verb vinfo voice mood tense) => (lambda (res) - (list res))) + res)) (else - (let* ((vinfo (load-verb-info verb voice mood tense)) - (conj-list (get-conj-info (or - (verb-get vinfo #:class) - (verb-get vinfo #:conj)) - voice mood tense)) - (verb (force-string (verb-get vinfo #:verb)))) - (format #t "VINFO ~A~%" vinfo) - (if (not conj-list) - (list (list #f #f #f #f #f #f #f #f)) - (map car - (fold - (lambda (elt prev) -; (format #t "ELT ~A~%" elt) - (if (null? prev) - (list elt) - (let ((top (car prev))) - (if (let ((a (cdr elt)) - (b (cdr top))) - (and (string? a) (string? b) (string=? a b))) - (cons (cons - (merge-conjugated-forms (car top) (car elt)) - (cdr top)) - (cdr prev)) - (cons elt prev))))) - '() - (fold - (lambda (conj prev) + (let ((vinfo (copy-tree vinfo))) + (if (not (member #:noload rest)) + (load-proplist vinfo voice mood tense)) +; (format #t "VINFO ~A~%" vinfo) + (let ((conj-list (get-conj-info (or + (vinfo-get vinfo #:class) + (vinfo-get vinfo #:conj)) + voice mood tense)) + (verb (force-string (vinfo-get vinfo #:verb)))) +; (format #t "VINFO ~A~%" vinfo) + (if (not conj-list) + (list (list #f #f #f #f #f #f #f #f)) + (map car + (fold + (lambda (elt prev) +; (format #t "ELT ~A~%" elt) + (if (null? prev) + (list elt) + (let ((top (car prev))) + (if (let ((a (cdr elt)) + (b (cdr top))) + (and (string? a) (string? b) (string=? a b))) + (cons (cons + (merge-conjugated-forms (car top) (car elt)) + (cdr top)) + (cdr prev)) + (cons elt prev))))) + '() + (fold + (lambda (conj prev) ; (format #t "CONJ ~A~%" conj) - (if (member #:nopart rest) - (conj-info-set! #:particle conj #f)) - (cond - ((and (string=? (conj-info #:thema conj) "synt") - (conj-info #:aux conj)) - (let ((aparemfato-list - (map - (lambda (x) - (let ((t (conjugation:table x))) - (if t + (if (member #:nopart rest) + (conj-info-set! #:particle conj #f)) + (cond + ((and (string=? (conj-info #:thema conj) "synt") + (conj-info #:aux conj)) + (let ((aparemfato-list + (map + (lambda (x) + (let ((t (conjugation:table x))) + (if t + (cons + (list-ref t 2) + (conjugation:attested x)) + #f))) + (conjugate vinfo voice "sub" "Αόριστος" + #:nopart))) + (part (conj-info #:particle conj)) + (fold-id (conj-info #:fold conj))) + (fold + (lambda (param prev) + (if (not param) + prev + (let ((aparemfato (car param)) + (attested (cdr param))) + (cons (cons - (list-ref t 2) - (conjugation:attested x)) - #f))) - (conjugate verb voice "sub" "Αόριστος" - #:nopart))) - (part (conj-info #:particle conj)) - (fold-id (conj-info #:fold conj))) - (fold - (lambda (param prev) - (if (not param) - prev - (let ((aparemfato (car param)) - (attested (cdr param))) - (cons - (cons - (append - (map - (lambda (aux flag) - (if (char=? flag #\-) - #f - (elstr->string - (if part - (elstr-append part " " aux " " - aparemfato) - (elstr-append aux " " aparemfato))))) - (conjugation:table - (car (conjugate (conj-info #:aux conj) - "act" "ind" - (conj-info #:auxtense conj)))) - (string->list (or (verb-get vinfo #:accmap) - (conj-info #:accmap conj) - "000000"))) - (list (verb-get vinfo #:conj) - attested)) - fold-id) - prev)))) - prev - aparemfato-list))) - ((and (string=? (conj-info #:thema conj) "synt") - (conj-info #:auxtense conj)) - (let ((part (conj-info #:particle conj))) - (fold-right - (lambda (tenses prev) - (cons - (cons - (append - (map - (lambda (t) - (elstr->string (elstr-append part " " t))) - (list-head tenses 6)) - (list-tail tenses 6)) - (conj-info #:fold conj)) - prev)) - prev - (conjugate verb voice "ind" - (conj-info #:auxtense conj))))) - (else - (let ((vinfo (copy-tree vinfo))) - (if (verb-get vinfo #:stem) - (verb-set! vinfo #:attested 'stem) - (let ((thema (string-split (conj-info #:thema conj) #\:))) -; (format #t "THEMA ~A~%" thema) - (complement-verb-info vinfo verb - (if (null? (cdr thema)) - voice - (car (cdr thema))) - (car thema)))) - - (fold - (lambda (suffix prev) - (append - (fold - (lambda (stem prev) - (cons - (cons - (append (apply-flect conj vinfo verb stem suffix) - (list (verb-get vinfo #:conj) - (verb-get vinfo #:attested))) - (conj-info #:fold conj)) - prev)) - '() - (verb-get vinfo #:stem)) - prev)) - prev - (get-suffix conj vinfo)))))) - '() - conj-list)))))))) + (append + (map + (lambda (aux flag) + (if (char=? flag #\-) + #f + (elstr->string + (if part + (elstr-append part " " aux " " + aparemfato) + (elstr-append aux " " aparemfato))))) + (conjugation:table + (car (conjugate + (conjugator:open-verb + (conj-info #:aux conj)) + "act" "ind" + (conj-info #:auxtense conj)))) + (string->list (or (vinfo-get vinfo #:accmap) + (conj-info #:accmap conj) + "000000"))) + (list (vinfo-get vinfo #:conj) + attested)) + fold-id) + prev)))) + prev + aparemfato-list))) + ((and (string=? (conj-info #:thema conj) "synt") + (conj-info #:auxtense conj)) + (let ((part (conj-info #:particle conj))) + (fold-right + (lambda (tenses prev) + (cons + (cons + (append + (map + (lambda (t) + (elstr->string (elstr-append part " " t))) + (list-head tenses 6)) + (list-tail tenses 6)) + (conj-info #:fold conj)) + prev)) + prev + (conjugate vinfo voice "ind" + (conj-info #:auxtense conj) #:noload)))) + (else + (let ((vinfo (copy-tree vinfo))) + (if (vinfo-get vinfo #:stem) + (vinfo-set! vinfo #:attested 'stem) + (let ((thema (string-split + (conj-info #:thema conj) #\:))) +; (format #t "THEMA ~A~%" thema) + (complement-verb-info vinfo verb + (if (null? (cdr thema)) + voice + (car (cdr thema))) + (car thema)))) + + (fold + (lambda (suffix prev) + (append + (fold + (lambda (stem prev) + (cons + (cons + (append (apply-flect conj vinfo verb stem suffix) + (list (vinfo-get vinfo #:conj) + (vinfo-get vinfo #:attested))) + (conj-info #:fold conj)) + prev)) + '() + (vinfo-get vinfo #:stem)) + prev)) + prev + (get-suffix conj vinfo)))))) + '() + conj-list))))))))) + +(define-public (conjugator:open-verb verb) + (create-basic-verb-info verb)) (define-public (conjugator verb voice mood tense) - (conjugate verb voice mood tense)) + (conjugate (conjugator:open-verb verb) voice mood tense)) (define-public (conjugation:table conj) diff --git a/src/ellinika/tests/conj-test b/src/ellinika/tests/conj-test new file mode 100755 index 0000000..fbacae1 --- /dev/null +++ b/src/ellinika/tests/conj-test @@ -0,0 +1,39 @@ +#! /bin/sh + +testdir=conj.dir +failures=0 + +testcon() { + if guile -s conj/$1.scm | diff -pu samples/$1 - > $testdir/$1.diff + then + status=PASS + rm $testdir/$1.diff + else + status=FAIL + failures=1 + fi + echo "$1: $status" +} + +if ! test -d $testdir; then + mkdir $testdir || exit 2 +fi + +if test $# -gt 0; then + for verb in $* + do + testcon $verb + done +else + find samples -type f -printf '%f\n' | + while read verb + do + testcon $verb + done +fi + +if test $failures -eq 0; then + rmdir $testdir +fi + +exit $failures diff --git a/src/ellinika/tests/conj/anoigv.scm b/src/ellinika/tests/conj/anoigv.scm index 4ba6e12..cb42dba 100644 --- a/src/ellinika/tests/conj/anoigv.scm +++ b/src/ellinika/tests/conj/anoigv.scm @@ -2,2 +2,3 @@ (test-conjugation:verb "ανοίγω") +;(test-conjugation:tense "ανοίγω" "pas" "imp" "Αόριστος") diff --git a/src/ellinika/tests/conj/bastav.scm b/src/ellinika/tests/conj/bastav.scm new file mode 100644 index 0000000..bdf5a5d --- /dev/null +++ b/src/ellinika/tests/conj/bastav.scm @@ -0,0 +1,3 @@ +(use-modules ((ellinika test-conjugation))) + +(test-conjugation:verb "βαστάω") diff --git a/src/ellinika/tests/conj/lev.scm b/src/ellinika/tests/conj/lev.scm new file mode 100644 index 0000000..c42ad93 --- /dev/null +++ b/src/ellinika/tests/conj/lev.scm @@ -0,0 +1,10 @@ +(use-modules ((ellinika test-conjugation))) + +(test-conjugation:verb "λέω") +;(test-conjugation:tense "λέω" "pas" "ind" "Αόριστος") +;(test-conjugation:tense "λέω" "act" "ind" "Ενεστώτας") +;(test-conjugation:tense "λέω" "act" "ind" "Παρακείμενος") +;(test-conjugation:tense "λέω" "act" "ind" "Μέλλοντας διαρκείας") +;(test-conjugation:tense "λέω" "act" "ind" "Παρατατικός") +;(test-conjugation:tense "λέω" "pas" "ind" "Μέλλοντας στιγμιαίος") +;(test-conjugation:tense "λέω" "pas" "imp" "Αόριστος")
\ No newline at end of file diff --git a/src/ellinika/tests/conj/milav.scm b/src/ellinika/tests/conj/milav.scm new file mode 100644 index 0000000..413dd72 --- /dev/null +++ b/src/ellinika/tests/conj/milav.scm @@ -0,0 +1,5 @@ +(use-modules ((ellinika test-conjugation))) + +(test-conjugation:verb "μιλάω") +;(test-conjugation:tense "μιλάω" "act" "ind" "Μέλλοντας διαρκείας") +;(test-conjugation:tense "μιλάω" "act" "ind" "Ενεστώτας") diff --git a/src/ellinika/tests/conj/ntynv.scm b/src/ellinika/tests/conj/ntynv.scm index 1fd1545..42ba15b 100644 --- a/src/ellinika/tests/conj/ntynv.scm +++ b/src/ellinika/tests/conj/ntynv.scm @@ -2,2 +2,3 @@ (test-conjugation:verb "ντύνω") +;(test-conjugation:tense "ντύνω" "act" "imp" "Αόριστος")
\ No newline at end of file diff --git a/src/ellinika/tests/conj/pav.scm b/src/ellinika/tests/conj/pav.scm new file mode 100644 index 0000000..d438e56 --- /dev/null +++ b/src/ellinika/tests/conj/pav.scm @@ -0,0 +1,7 @@ +(use-modules ((ellinika test-conjugation))) + +;(test-conjugation:verb "πάω") +(test-conjugation:tense "πάω" "act" "ind" "Ενεστώτας") +;(test-conjugation:tense "πάω" "act" "ind" "Μέλλοντας στιγμιαίος") +;(test-conjugation:tense "πάω" "act" "sub" "Ενεστώτας") +;(test-conjugation:tense "πάω" "act" "sub" "Αόριστος") diff --git a/src/ellinika/tests/samples/aggelv b/src/ellinika/tests/samples/aggelv new file mode 100644 index 0000000..348ac81 --- /dev/null +++ b/src/ellinika/tests/samples/aggelv @@ -0,0 +1,28 @@ +αγγέλω Ενεργητηκή φωνή/Οριστική/Ενεστώτας: (αγγέλω αγγέλεις αγγέλει αγγέλουμε αγγέλετε αγγέλουν(ε)) +αγγέλω Ενεργητηκή φωνή/Οριστική/Παρατατικός: (άγγελα άγγελες άγγελε αγγέλαμε αγγέλατε άγγελαν) +αγγέλω Ενεργητηκή φωνή/Οριστική/Μέλλοντας διαρκείας: (θα αγγέλω θα αγγέλεις θα αγγέλει θα αγγέλουμε θα αγγέλετε θα αγγέλουν(ε)) +αγγέλω Ενεργητηκή φωνή/Οριστική/Αόριστος: (άγγειλα άγγειλες άγγειλε αγγείλαμε αγγείλατε άγγειλαν) +αγγέλω Ενεργητηκή φωνή/Οριστική/Παρακείμενος: (έχω αγγείλει έχεις αγγείλει έχει αγγείλει έχουμε αγγείλει έχετε αγγείλει έχουν(ε) αγγείλει) +αγγέλω Ενεργητηκή φωνή/Οριστική/Υπερσυντέλικος: (είχα αγγείλει είχες αγγείλει είχα αγγείλει είχαμε αγγείλει είχατε αγγείλει είχαν αγγείλει) +αγγέλω Ενεργητηκή φωνή/Οριστική/Συντελεσμένος μέλλοντας: (θα έχω αγγείλει θα έχεις αγγείλει θα έχει αγγείλει θα έχουμε αγγείλει θα έχετε αγγείλει θα έχουν(ε) αγγείλει) +αγγέλω Ενεργητηκή φωνή/Οριστική/Μέλλοντας στιγμιαίος: (θα αγγείλω θα αγγείλεις θα αγγείλει θα αγγείλουμε θα αγγείλετε θα αγγείλουν(ε)) +αγγέλω Ενεργητηκή φωνή/Υποτακτική/Ενεστώτας: (να αγγέλω να αγγέλεις να αγγέλει να αγγέλουμε να αγγέλετε να αγγέλουν(ε)) +αγγέλω Ενεργητηκή φωνή/Υποτακτική/Αόριστος: (να αγγείλω να αγγείλεις να αγγείλει να αγγείλουμε να αγγείλετε να αγγείλουν(ε)) +αγγέλω Ενεργητηκή φωνή/Υποτακτική/Παρακείμενος: (να έχω αγγείλει να έχεις αγγείλει να έχει αγγείλει να έχουμε αγγείλει να έχετε αγγείλει να έχουν(ε) αγγείλει) +αγγέλω Ενεργητηκή φωνή/Προστακτική/Ενεστώτας: (#f άγγελε #f #f αγγέλετε #f) +αγγέλω Ενεργητηκή φωνή/Προστακτική/Αόριστος: (#f άγγειλε #f #f αγγείλτε #f) +αγγέλω Ενεργητηκή φωνή/Προστακτική/Παρακείμενος: (#f να έχεις αγγείλει #f #f να έχετε αγγείλει #f) +αγγέλω Μεσοπαθητική φωνή/Οριστική/Ενεστώτας: (αγγέλομαι αγγέλεσαι αγγέλεται αγγελόμαστε αγγέλεστε αγγέλονται) +αγγέλω Μεσοπαθητική φωνή/Οριστική/Παρατατικός: (αγγελομούν αγγελοσούν αγγελόταν αγγελόμαστε αγγελόσαστε αγγέλονταν) +αγγέλω Μεσοπαθητική φωνή/Οριστική/Μέλλοντας διαρκείας: (θα αγγέλομαι θα αγγέλεσαι θα αγγέλεται θα αγγελόμαστε θα αγγέλεστε θα αγγέλονται) +αγγέλω Μεσοπαθητική φωνή/Οριστική/Αόριστος: !(αγγέλθηκα αγγέλθηκες αγγέλθηκε αγγελθήκαμε αγγελθήκατε αγγέλθηκαν) +αγγέλω Μεσοπαθητική φωνή/Οριστική/Παρακείμενος: !(έχω αγγελθεί έχεις αγγελθεί έχει αγγελθεί έχουμε αγγελθεί έχετε αγγελθεί έχουν(ε) αγγελθεί) +αγγέλω Μεσοπαθητική φωνή/Οριστική/Υπερσυντέλικος: !(είχα αγγελθεί είχες αγγελθεί είχα αγγελθεί είχαμε αγγελθεί είχατε αγγελθεί είχαν αγγελθεί) +αγγέλω Μεσοπαθητική φωνή/Οριστική/Συντελεσμένος μέλλοντας: !(θα έχω αγγελθεί θα έχεις αγγελθεί θα έχει αγγελθεί θα έχουμε αγγελθεί θα έχετε αγγελθεί θα έχουν(ε) αγγελθεί) +αγγέλω Μεσοπαθητική φωνή/Οριστική/Μέλλοντας στιγμιαίος: !(θα αγγελθώ θα αγγελθείς θα αγγελθεί θα αγγελθούμε θα αγγελθείτε θα αγγελθούν(ε)) +αγγέλω Μεσοπαθητική φωνή/Υποτακτική/Ενεστώτας: (να αγγέλομαι να αγγέλεσαι να αγγέλεται να αγγελόμαστε να αγγέλεστε να αγγέλονται) +αγγέλω Μεσοπαθητική φωνή/Υποτακτική/Αόριστος: !(να αγγελθώ να αγγελθείς να αγγελθεί να αγγελθούμε να αγγελθείτε να αγγελθούν(ε)) +αγγέλω Μεσοπαθητική φωνή/Υποτακτική/Παρακείμενος: !(να έχω αγγελθεί να έχεις αγγελθεί να έχει αγγελθεί να έχουμε αγγελθεί να έχετε αγγελθεί να έχουν(ε) αγγελθεί) +αγγέλω Μεσοπαθητική φωνή/Προστακτική/Ενεστώτας: (#f να αγγέλεσαι #f #f να αγγέλεστε #f) +αγγέλω Μεσοπαθητική φωνή/Προστακτική/Αόριστος: !(#f αγγείλου #f #f αγγελθείτε #f) +αγγέλω Μεσοπαθητική φωνή/Προστακτική/Παρακείμενος: !(#f να έχεις αγγελθεί #f #f να έχετε αγγελθεί #f) diff --git a/src/ellinika/tests/samples/agv b/src/ellinika/tests/samples/agv new file mode 100644 index 0000000..0fd9fa1 --- /dev/null +++ b/src/ellinika/tests/samples/agv @@ -0,0 +1,28 @@ +άγω Ενεργητηκή φωνή/Οριστική/Ενεστώτας: (άγω άγεις άγει άγουμε άγετε άγουν(ε)) +άγω Ενεργητηκή φωνή/Οριστική/Παρατατικός: (έαγα έαγες έαγε άγαμε άγατε έαγαν) +άγω Ενεργητηκή φωνή/Οριστική/Μέλλοντας διαρκείας: (θα άγω θα άγεις θα άγει θα άγουμε θα άγετε θα άγουν(ε)) +άγω Ενεργητηκή φωνή/Οριστική/Αόριστος: (ήγαγα ήγαγες ήγαγε ηγάγαμε ηγάγατε ήγαγαν) +άγω Ενεργητηκή φωνή/Οριστική/Παρακείμενος: (έχω αγάγει έχεις αγάγει έχει αγάγει έχουμε αγάγει έχετε αγάγει έχουν(ε) αγάγει) +άγω Ενεργητηκή φωνή/Οριστική/Υπερσυντέλικος: (είχα αγάγει είχες αγάγει είχα αγάγει είχαμε αγάγει είχατε αγάγει είχαν αγάγει) +άγω Ενεργητηκή φωνή/Οριστική/Συντελεσμένος μέλλοντας: (θα έχω αγάγει θα έχεις αγάγει θα έχει αγάγει θα έχουμε αγάγει θα έχετε αγάγει θα έχουν(ε) αγάγει) +άγω Ενεργητηκή φωνή/Οριστική/Μέλλοντας στιγμιαίος: (θα αγάγω θα αγάγεις θα αγάγει θα αγάγουμε θα αγάγετε θα αγάγουν(ε)) +άγω Ενεργητηκή φωνή/Υποτακτική/Ενεστώτας: (να άγω να άγεις να άγει να άγουμε να άγετε να άγουν(ε)) +άγω Ενεργητηκή φωνή/Υποτακτική/Αόριστος: (να αγάγω να αγάγεις να αγάγει να αγάγουμε να αγάγετε να αγάγουν(ε)) +άγω Ενεργητηκή φωνή/Υποτακτική/Παρακείμενος: (να έχω αγάγει να έχεις αγάγει να έχει αγάγει να έχουμε αγάγει να έχετε αγάγει να έχουν(ε) αγάγει) +άγω Ενεργητηκή φωνή/Προστακτική/Ενεστώτας: (#f άγε #f #f άγετε #f) +άγω Ενεργητηκή φωνή/Προστακτική/Αόριστος: (#f άγαγε #f #f αγάγτε #f) +άγω Ενεργητηκή φωνή/Προστακτική/Παρακείμενος: (#f να έχεις αγάγει #f #f να έχετε αγάγει #f) +άγω Μεσοπαθητική φωνή/Οριστική/Ενεστώτας: (άγομαι άγεσαι άγεται αγόμαστε άγεστε άγονται) +άγω Με |