diff options
-rw-r--r-- | src/cgi-bin/conj.scm4 | 66 | ||||
-rw-r--r-- | src/ellinika/conjugator.scm | 2 | ||||
-rw-r--r-- | xml/pl/rhmata.xml | 221 |
3 files changed, 279 insertions, 10 deletions
diff --git a/src/cgi-bin/conj.scm4 b/src/cgi-bin/conj.scm4 index 253de1d..8fca3f0 100644 --- a/src/cgi-bin/conj.scm4 +++ b/src/cgi-bin/conj.scm4 @@ -83,25 +83,47 @@ ifelse(IFACE,[CGI],(cgi:init)) ("sub" 3) ("imp" 3))) -(define (show-conjugation:tense verb voice mood tense) - - #t) -(define (table-header count tense-names) +(define unattested '()) ; List of unattested flags + +(define (table-header count tenses) (display "\ <table class=\"frame align-center\"> <thead class=\"std\"> <tr>") (for-each (lambda (tense) - (format #t "<th>~A</th>~%" tense)) - tense-names) + (let ((tense-name (car tense)) + (att (fold + (lambda (conj prev) + (let ((att (conjugation:attested conj))) + (if att + (append att prev) + prev))) + '() + (cdr tense)))) + (display "<th>") + (cond + ((not (member 'class att)) + (display "<a href=\"#class-na\">*</a> ") + (if (not (member 'class unattested)) + (set! unattested (cons 'class unattested))))) + (cond + ((not (member 'root att)) + (display "<a href=\"#root-na\">?</a> ") + (if (not (member 'root unattested)) + (set! unattested (cons 'root unattested))))) + (display tense-name) + (display "</th>") + (newline))) + tenses) (display "</tr></thead>")) (define (table-footer) (display "</table>")) (define (transpose mtx) + (display "<!--\n")(write mtx)(display "\n-->") (let* ((w (length (car mtx))) (res (make-list w))) (do ((i 0 (1+ i))) @@ -163,7 +185,7 @@ ifelse(IFACE,[CGI],(cgi:init)) (for-each (lambda (count) (let ((tenses (list-head tense-list count))) - (table-header count (map car tenses)) + (table-header count tenses) (format-tenses count (map cdr tenses) voice mood) (table-footer) (set! tense-list (list-tail tense-list count)) @@ -237,12 +259,36 @@ ifelse(IFACE,[CGI],(cgi:init)) (map force-string fmtargs))))) (else (error-message "OTHER ERROR: ~S ~S" key args)))))) - + +(define (show-conjugation-simple verb) + (for-each + (lambda (voice) + (show-conjugation:voice voice)) + (conjugate-all verb))) + (define (do-conj) (let ((keyval (cgi:value "key"))) (if (and keyval (not (string-null? keyval))) (show-conjugation (ellinika:translate-input keyval))))) +(define (print-footnote id sign text) + (format #t "<p><a name=\"~A\">~A</a> ~A</p>~%" + id sign text)) + +(define (footnotes) + (display "<div class=\"footnote\">") + (for-each + (lambda (flag) + (case flag + ((class) + (print-footnote "class-na" "*" + "Conjugation class of this verb is not attested")) + ((root) + (print-footnote "root-na" "?" + "Stem of this verb is not attested")))) + unattested) + (display "</div>")) + (define (conj-html) (sql-catch-failure (let ((explist (list @@ -264,7 +310,9 @@ ifelse(IFACE,[CGI],(cgi:init)) (lambda () (dict-connect) (main-form) - (do-conj)))))) + (do-conj) + (if (not (null? unattested)) + (footnotes))))))) (do ((line (read-line) (read-line))) ((eof-object? line) #f) diff --git a/src/ellinika/conjugator.scm b/src/ellinika/conjugator.scm index 8172686..069d641 100644 --- a/src/ellinika/conjugator.scm +++ b/src/ellinika/conjugator.scm @@ -461,7 +461,7 @@ AND i.tense=\"~A\" AND i.ident=f.ident" (conj-list (get-conj-info (verb-get vinfo #:conj) voice mood tense))) (if (not conj-list) - (list (list #f #f #f #f #f #f) #f #f) + (list (list #f #f #f #f #f #f #f #f)) (map car (fold-right (lambda (elt prev) diff --git a/xml/pl/rhmata.xml b/xml/pl/rhmata.xml index 3973204..bc3be27 100644 --- a/xml/pl/rhmata.xml +++ b/xml/pl/rhmata.xml @@ -2462,6 +2462,227 @@ równy drugiej osobie czasu przeszłego dokonanego trybu łączącego: <PAGE HEADER="Czasowniki nieregularne"> <NOTREADY>Strona w budowie</NOTREADY> +<SECTION> +<HEADER>είμαι -- być</HEADER> + +<SUBSECTION> +<HEADER>Ενεργητηκή φωνή</HEADER> + +<SUBSUBSECTION> +<HEADER>Οριστική</HEADER> + +<TABULAR SPLIT="-" OR="," ALTERNATE="1" ROWHEADING="normal" COLHEADING="std" ALIGN="CENTER"> + <ROW> + <ITEM></ITEM> + <ITEM>Ενεστώτας</ITEM> + <ITEM>Παρατατικός</ITEM> + <ITEM>Μέλλοντας διαρκείας</ITEM> + </ROW> + <ROW> + <ITEM>εγώ</ITEM> + <ITEM>είμαι</ITEM> + <ITEM>ήμουν(α)</ITEM> + <ITEM> θα είμαι</ITEM> + </ROW> + <ROW> + <ITEM>εσύ</ITEM> + <ITEM>είσαι</ITEM> + <ITEM>ήσουν(α)</ITEM> + <ITEM>θα είσαι</ITEM> + </ROW> + <ROW> + <ITEM>αυτός,-ή,-ό</ITEM> + <ITEM>είναι</ITEM> + <ITEM>ήταν(ε)</ITEM> + <ITEM>θα είναι</ITEM> + </ROW> + <ROW> + <ITEM>εμείς</ITEM> + <ITEM>είμαστε</ITEM> + <ITEM>ήμαστε, ήμασταν</ITEM> + <ITEM>θα είμαστε</ITEM> + </ROW> + <ROW> + <ITEM>εσείς</ITEM> + <ITEM>είστε, είσαστε</ITEM> + <ITEM>ήσαστε, ήσασταν</ITEM> + <ITEM>θα είστε, θα είσαστε</ITEM> + </ROW> + <ROW> + <ITEM>αυτοί,-ές,-ά</ITEM> + <ITEM>είναι</ITEM> + <ITEM>ήταν(ε)</ITEM> + <ITEM>θα είναι</ITEM> + </ROW> +</TABULAR> +</SUBSUBSECTION> + +<SUBSUBSECTION> +<HEADER>Υποτακτική</HEADER> +<TABULAR SPLIT="-" ALTERNATE="1" ROWHEADING="normal" COLHEADING="std" ALIGN="CENTER"> + <ROW> + <ITEM></ITEM> + <ITEM>Ενεστώτας</ITEM> + </ROW> + <ROW> + <ITEM>εγώ</ITEM> + <ITEM>να είμαι</ITEM> + </ROW> + <ROW> + <ITEM>εσύ</ITEM> + <ITEM>να είσαι</ITEM> + </ROW> + <ROW> + <ITEM>αυτός,-ή,-ό</ITEM> + <ITEM>να είναι</ITEM> + </ROW> + <ROW> + <ITEM>εμείς</ITEM> + <ITEM>να είμαστε</ITEM> + </ROW> + <ROW> + <ITEM>εσείς</ITEM> + <ITEM>να είστε, θα είσαστε</ITEM> + </ROW> + <ROW> + <ITEM>αυτοί,-ές,-ά</ITEM> + <ITEM>να είναι</ITEM> + </ROW> +</TABULAR> +</SUBSUBSECTION> + +<SUBSUBSECTION> +<HEADER>Προστακτική</HEADER> + +<TABULAR SPLIT="-" ALTERNATE="1" ROWHEADING="normal" COLHEADING="std" ALIGN="CENTER"> + <ROW> + <ITEM></ITEM> + <ITEM>Ενεστώτας</ITEM> + </ROW> + <ROW> + <ITEM>εσύ</ITEM> + <ITEM>να είσαι</ITEM> + </ROW> + <ROW> + <ITEM>εσείς</ITEM> + <ITEM>να είστε</ITEM> + </ROW> +</TABULAR> +</SUBSUBSECTION> +</SUBSECTION> +</SECTION> + +<SECTION> +<HEADER>έχω -- mieć</HEADER> + +<SUBSECTION> +<HEADER>Ενεργητηκή φωνή</HEADER> + +<SUBSUBSECTION> +<HEADER>Οριστική</HEADER> + +<TABULAR SPLIT="-" OR="," ALTERNATE="1" ROWHEADING="normal" COLHEADING="std" ALIGN="CENTER"> + <ROW> + <ITEM></ITEM> + <ITEM>Ενεστώτας</ITEM> + <ITEM>Παρατατικός</ITEM> + <ITEM>Μέλλοντας διαρκείας</ITEM> + </ROW> + <ROW> + <ITEM>εγώ</ITEM> + <ITEM>έχω</ITEM> + <ITEM>είχα</ITEM> + <ITEM>θα έχω</ITEM> + </ROW> + <ROW> + <ITEM>εσύ</ITEM> + <ITEM>έχεις</ITEM> + <ITEM>είχες</ITEM> + <ITEM>θα έχεις</ITEM> + </ROW> + <ROW> + <ITEM>αυτός,-ή,-ό</ITEM> + <ITEM>έχει</ITEM> + <ITEM>είχα</ITEM> + <ITEM>θα έχει</ITEM> + </ROW> + <ROW> + <ITEM>εμείς</ITEM> + <ITEM>έχουμε</ITEM> + <ITEM>είχαμε</ITEM> + <ITEM>θα έχουμε</ITEM> + </ROW> + <ROW> + <ITEM>εσείς</ITEM> + <ITEM>έχετε</ITEM> + <ITEM>είχατε</ITEM> + <ITEM>θα έχετε</ITEM> + </ROW> + <ROW> + <ITEM>αυτοί,-ές,-ά</ITEM> + <ITEM>έχουν(ε)</ITEM> + <ITEM>είχαν</ITEM> + <ITEM>θα έχουν(ε)</ITEM> + </ROW> +</TABULAR> +</SUBSUBSECTION> + +<SUBSUBSECTION> +<HEADER>Υποτακτική</HEADER> +<TABULAR SPLIT="-" ALTERNATE="1" ROWHEADING="normal" COLHEADING="std" ALIGN="CENTER"> + <ROW> + <ITEM></ITEM> + <ITEM>Ενεστώτας</ITEM> + </ROW> + <ROW> + <ITEM>εγώ</ITEM> + <ITEM>να έχω</ITEM> + </ROW> + <ROW> + <ITEM>εσύ</ITEM> + <ITEM>να έχεις</ITEM> + </ROW> + <ROW> + <ITEM>αυτός,-ή,-ό</ITEM> + <ITEM>να έχει</ITEM> + </ROW> + <ROW> + <ITEM>εμείς</ITEM> + <ITEM>να έχουμε</ITEM> + </ROW> + <ROW> + <ITEM>εσείς</ITEM> + <ITEM>να έχετε</ITEM> + </ROW> + <ROW> + <ITEM>αυτοί,-ές,-ά</ITEM> + <ITEM>να έχουν(ε)</ITEM> + </ROW> +</TABULAR> +</SUBSUBSECTION> + +<SUBSUBSECTION> +<HEADER>Προστακτική</HEADER> + +<TABULAR SPLIT="-" ALTERNATE="1" ROWHEADING="normal" COLHEADING="std" ALIGN="CENTER"> + <ROW> + <ITEM></ITEM> + <ITEM>Ενεστώτας</ITEM> + </ROW> + <ROW> + <ITEM>εσύ</ITEM> + <ITEM>έχε</ITEM> + </ROW> + <ROW> + <ITEM>εσείς</ITEM> + <ITEM>έχετε</ITEM> + </ROW> +</TABULAR> +</SUBSUBSECTION> +</SUBSECTION> + +</SECTION> + </PAGE> <PAGE PREFIX="conj" MODE="unnumbered" HEADER="Koniugator" REF="CONJ"> |