aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-06-10 23:04:53 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-06-11 00:34:20 +0300
commita1a5b7ddd6c3c0532c37551b24fd573a554ac181 (patch)
treef86f3572c77dc986bb2dfb65619ac4bc35c83847
parent2bae7da012e2125762855ce014e63345ecbbbb18 (diff)
downloadellinika-a1a5b7ddd6c3c0532c37551b24fd573a554ac181.tar.gz
ellinika-a1a5b7ddd6c3c0532c37551b24fd573a554ac181.tar.bz2
Fix syllabification.
* configure.ac: Add AC_PROG_YACC * src/ellinika/phoneme.y: New file. * src/ellinika/yyrename: New file. * src/ellinika/syllabificator.c: New file. * src/ellinika/.gitignore: Update. * src/ellinika/elchr.c (char_info_st): Move to header. (el_basic_ctype): (elchr_info): Remove static qualifier. Return a pointer to const. (elchr_letter,elchr_phoneme): New functions. (elchr_diphthong): Remove. * src/ellinika/elmorph.c (elstr)<phoneme,phoneme_count>: New members. (_elstr_syllabize): Rewrite. (invalidate_maps)" New static function. (_elstr_alloc): Initialize new fields, take function name as argument, for diagnostic purposes. (_elstr_print): Rewrite (deftab): Update. (elstr-syllable-prop,elstr-syllable) (_elstr_set_accent,_elstr_set_accent_on_char): Rewrite. (elstr-char-phoneme,elstr->phonetic-map): New functions. * src/ellinika/elmorph.h (CHF_DIPH1,CHF_DIPH2): Remove. (CHF_DIPHTHONG): New flag. (PHON_.*): New constants. (phoneme,syllable): New structures. (char_info_st)<letter,phoneme>: New members. (elchr_info,elchr_letter) (elchr_phoneme,phoneme_map) (syllable_map): New protos. (elchr_diphthong): Remove protos. * src/ellinika/elmorph.scm4: Move public definitions to elmorph-public.scm; include it here. * src/ellinika/xlat.scm (ellinika:sounds-like): Rewrite as a wrapper over elstr->soundslike. Describe Milesian numbers. * style.css (img.ellinika-img): New class. * xml/lingua.conf.in (IMAGE): New tag. * xml/pl/alfabhta.xml: Describe Milesian numbers. Various fixes. * data/dbverb.struct: fix a typo in flection. Use 'sub' theme for pas/sub/aor. * data/irregular-verbs.xml: Add more verbs. * scm/conjugator.scm: Various fixes. * scm/verbop.scm: Accept empty mood and voice declarations.
-rw-r--r--configure.ac1
-rw-r--r--data/dbverb.struct4
-rw-r--r--data/irregular-verbs.xml81
-rw-r--r--scm/conj.scm335
-rw-r--r--scm/conjugator.scm129
-rw-r--r--scm/elmorph.c10
-rw-r--r--scm/elmorph.h39
-rw-r--r--scm/verbop.scm95
-rw-r--r--scm/xlat.scm280
-rw-r--r--src/ellinika/.gitignore2
-rw-r--r--src/ellinika/Makefile.am23
-rw-r--r--src/ellinika/elchr.c273
-rw-r--r--src/ellinika/elmorph-public.scm106
-rw-r--r--src/ellinika/elmorph.c308
-rw-r--r--src/ellinika/elmorph.h82
-rw-r--r--src/ellinika/elmorph.scm425
-rw-r--r--src/ellinika/phoneme.y353
-rw-r--r--src/ellinika/syllabificator.c152
-rw-r--r--src/ellinika/tenses.scm38
-rw-r--r--src/ellinika/xlat.scm113
-rwxr-xr-xsrc/ellinika/yyrename97
-rw-r--r--style.css6
-rw-r--r--xml/lingua.conf.in9
-rw-r--r--xml/pl/alfabhta.xml204
24 files changed, 1588 insertions, 1177 deletions
diff --git a/configure.ac b/configure.ac
index 233ec46..01b27a2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,6 +28,7 @@ AC_CONFIG_MACRO_DIR([m4])
28 28
29## * Checks for programs. 29## * Checks for programs.
30AC_PROG_CC 30AC_PROG_CC
31AC_PROG_YACC
31AM_PROG_LIBTOOL 32AM_PROG_LIBTOOL
32 33
33M4='`cd $(top_srcdir); pwd`/scripts/missing --run m4' 34M4='`cd $(top_srcdir); pwd`/scripts/missing --run m4'
diff --git a/data/dbverb.struct b/data/dbverb.struct
index 06745c8..d51633b 100644
--- a/data/dbverb.struct
+++ b/data/dbverb.struct
@@ -65,7 +65,7 @@ INSERT INTO verbflect VALUES
65(8, NULL, "ε", NULL, NULL, "ετε", NULL), 65(8, NULL, "ε", NULL, NULL, "ετε", NULL),
66(9, NULL, "ε", NULL, NULL, "τε", NULL), 66(9, NULL, "ε", NULL, NULL, "τε", NULL),
67(11, "ομαι", "εσαι", "εται", "όμαστε", "εστε", "ονται"), 67(11, "ομαι", "εσαι", "εται", "όμαστε", "εστε", "ονται"),
68(12, "όμουν", "όσουν", "όταν", "όμαστε", "όστε", "ονταν"), 68(12, "όμουν", "όσουν", "όταν", "όμαστε", "όσαστε", "ονταν"),
69(15, "ώ", "είς", "εί", "ούμε", "είτε", "ούν(ε)"), 69(15, "ώ", "είς", "εί", "ούμε", "είτε", "ούν(ε)"),
70(17, NULL, "ου", NULL, NULL, NULL, NULL), 70(17, NULL, "ου", NULL, NULL, NULL, NULL),
71(18, NULL, NULL, NULL, NULL, "είτε", NULL), 71(18, NULL, NULL, NULL, NULL, "είτε", NULL),
@@ -123,7 +123,7 @@ INSERT INTO conjugation VALUES
123("A", "pas", "ind", "Μέλλοντας στιγμιαίος", 'aor', NULL, 15, "111111", "θα", NULL, NULL), 123("A", "pas", "ind", "Μέλλοντας στιγμιαίος", 'aor', NULL, 15, "111111", "θα", NULL, NULL),
124-- Υποτακτική 124-- Υποτακτική
125("A", "pas", "sub", "Ενεστώτας", 'pres', NULL, 11, "333333", "να", NULL, NULL), 125("A", "pas", "sub", "Ενεστώτας", 'pres', NULL, 11, "333333", "να", NULL, NULL),
126("A", "pas", "sub", "Αόριστος", 'aor', NULL, 15, "111221", "να", NULL, NULL), 126("A", "pas", "sub", "Αόριστος", 'sub', NULL, 15, "111221", "να", NULL, NULL),
127("A", "pas", "sub", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Παρατατικός"), 127("A", "pas", "sub", "Παρακείμενος", 'synt', NULL, 0, NULL, "να", "έχω", "Παρατατικός"),
128-- Προστακτική 128-- Προστακτική
129("A", "pas", "imp", "Ενεστώτας", 'pres', NULL, 11, "-3--3-", "να", NULL, NULL), 129("A", "pas", "imp", "Ενεστώτας", 'pres', NULL, 11, "-3--3-", "να", NULL, NULL),
diff --git a/data/irregular-verbs.xml b/data/irregular-verbs.xml
index ca2c7d1..d056f7d 100644
--- a/data/irregular-verbs.xml
+++ b/data/irregular-verbs.xml
@@ -56,28 +56,7 @@
56 </imp> 56 </imp>
57 </act> 57 </act>
58 58
59 <pas> 59 <pas/>
60 <ind>
61 <t name="Ενεστώτας"/>
62 <t name="Παρατατικός"/>
63 <t name="Μέλλοντας διαρκείας"/>
64 <t name="Αόριστος" />
65 <t name="Παρακείμενος"/>
66 <t name="Υπερσυντέλικος"/>
67 <t name="Συντελεσμένος μέλλοντας"/>
68 <t name="Μέλλοντας στιγμιαίος"/>
69 </ind>
70 <sub>
71 <t name="Ενεστώτας"/>
72 <t name="Αόριστος" />
73 <t name="Παρακείμενος"/>
74 </sub>
75 <imp>
76 <t name="Ενεστώτας"/>
77 <t name="Αόριστος" />
78 <t name="Παρακείμενος"/>
79 </imp>
80 </pas>
81 </v> 60 </v>
82 61
83 <v> 62 <v>
@@ -109,28 +88,8 @@
109 <t name="Παρακείμενος"/> 88 <t name="Παρακείμενος"/>
110 </imp> 89 </imp>
111 </act> 90 </act>
112 <pas> 91
113 <ind> 92 <pas/>
114 <t name="Ενεστώτας"/>
115 <t name="Παρατατικός"/>
116 <t name="Μέλλοντας διαρκείας"/>
117 <t name="Αόριστος" />
118 <t name="Παρακείμενος"/>
119 <t name="Υπερσυντέλικος"/>
120 <t name="Συντελεσμένος μέλλοντας"/>
121 <t name="Μέλλοντας στιγμιαίος"/>
122 </ind>
123 <sub>
124 <t name="Ενεστώτας"/>
125 <t name="Αόριστος" />
126 <t name="Παρακείμενος"/>
127 </sub>
128 <imp>
129 <t name="Ενεστώτας"/>
130 <t name="Αόριστος" />
131 <t name="Παρακείμενος"/>
132 </imp>
133 </pas>
134 </v> 93 </v>
135 94
136 <v> 95 <v>
@@ -337,6 +296,31 @@
337 </act> 296 </act>
338 </v> 297 </v>
339 298
299 <v>
300 <a>έρχομαι</a>
301 <c>A</c>
302 <suffix></suffix>
303 <accmap>000000</accmap>
304 <act>
305 <root theme="sub">ερθ</root>
306 <ind/>
307 <sub>
308 <t name="Ενεστώτας"/>
309 <t name="Παρατατικός"/>
310 <t name="Μέλλοντας διαρκείας"/>
311 <t name="Παρακείμενος"/>
312 <t name="Υπερσυντέλικος"/>
313 <t name="Συντελεσμένος μέλλοντας"/>
314 <t name="Μέλλοντας στιγμιαίος"/>
315 </sub>
316 <imp/>
317 </act>
318 <pas>
319 <root theme="aor">ήρθ</root>
320 <root theme="sub">ερθ</root>
321 </pas>
322 </v>
323
340<!-- FIXME 324<!-- FIXME
341 έρχομαι 325 έρχομαι
342 κάθομαι 326 κάθομαι
@@ -414,15 +398,6 @@
414 </v> 398 </v>
415 399
416 <v> 400 <v>
417 <a></a>
418 <c>A</c>
419 <act>
420 <root theme="aor"></root>
421 <root theme="sub"></root>
422 </act>
423 </v>
424
425 <v>
426 <a>ξέρω</a> 401 <a>ξέρω</a>
427 <c>A</c> 402 <c>A</c>
428 <augment>η</augment> 403 <augment>η</augment>
diff --git a/scm/conj.scm b/scm/conj.scm
deleted file mode 100644
index 3c2e96a..0000000
--- a/scm/conj.scm
+++ /dev/null
@@ -1,335 +0,0 @@
1(use-modules (xlat))
2
3(define (active-aorist-root present-root)
4 (let ((last-syllable (car present-root)))
5 (case (car last-syllable)
6 ((#\@)
7 (set-car! last-syllable #\s))
8 ((#\z)
9 (set-car! last-syllable #\s)) ;; FIXME: not always
10 ((#\k)
11 (cond
12 ((and (not (null? (cdr last-syllable)))
13 (char=? (cadr last-syllable) #\s))
14 (set! last-syllable (cons #\x (cddr last-syllable))))
15 (else
16 (set-car! last-syllable #\x))))
17 ((#\n)
18 (cond
19 ((and (not (null? (cdr last-syllable)))
20 (char=? (cadr last-syllable) #\h))
21 (set! last-syllable (cons #\x (cddr last-syllable))))
22 (else
23 (set-car! last-syllable #\s))))
24 ((#\g #\h)
25 (set-car! last-syllable #\x))
26 ((#\p #\b #\f)
27 (set-car! last-syllable #\*))
28 ((#\y)