aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cgi-bin/conj.scm466
-rw-r--r--src/ellinika/conjugator.scm2
-rw-r--r--xml/pl/rhmata.xml221
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>&nbsp;")
+ (if (not (member 'class unattested))
+ (set! unattested (cons 'class unattested)))))
+ (cond
+ ((not (member 'root att))
+ (display "<a href=\"#root-na\">?</a>&nbsp;")
+ (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>&nbsp;&nbsp;~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">

Return to:

Send suggestions and report system problems to the System administrator.