diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-06-10 23:04:53 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-06-11 00:34:20 +0300 |
commit | a1a5b7ddd6c3c0532c37551b24fd573a554ac181 (patch) | |
tree | f86f3572c77dc986bb2dfb65619ac4bc35c83847 | |
parent | 2bae7da012e2125762855ce014e63345ecbbbb18 (diff) | |
download | ellinika-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.ac | 1 | ||||
-rw-r--r-- | data/dbverb.struct | 4 | ||||
-rw-r--r-- | data/irregular-verbs.xml | 81 | ||||
-rw-r--r-- | scm/conj.scm | 335 | ||||
-rw-r--r-- | scm/conjugator.scm | 129 | ||||
-rw-r--r-- | scm/elmorph.c | 10 | ||||
-rw-r--r-- | scm/elmorph.h | 39 | ||||
-rw-r--r-- | scm/verbop.scm | 95 | ||||
-rw-r--r-- | scm/xlat.scm | 280 | ||||
-rw-r--r-- | src/ellinika/.gitignore | 2 | ||||
-rw-r--r-- | src/ellinika/Makefile.am | 23 | ||||
-rw-r--r-- | src/ellinika/elchr.c | 273 | ||||
-rw-r--r-- | src/ellinika/elmorph-public.scm | 106 | ||||
-rw-r--r-- | src/ellinika/elmorph.c | 308 | ||||
-rw-r--r-- | src/ellinika/elmorph.h | 82 | ||||
-rw-r--r-- | src/ellinika/elmorph.scm4 | 25 | ||||
-rw-r--r-- | src/ellinika/phoneme.y | 353 | ||||
-rw-r--r-- | src/ellinika/syllabificator.c | 152 | ||||
-rw-r--r-- | src/ellinika/tenses.scm | 38 | ||||
-rw-r--r-- | src/ellinika/xlat.scm | 113 | ||||
-rwxr-xr-x | src/ellinika/yyrename | 97 | ||||
-rw-r--r-- | style.css | 6 | ||||
-rw-r--r-- | xml/lingua.conf.in | 9 | ||||
-rw-r--r-- | xml/pl/alfabhta.xml | 204 |
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. |
30 | AC_PROG_CC | 30 | AC_PROG_CC |
31 | AC_PROG_YACC | ||
31 | AM_PROG_LIBTOOL | 32 | AM_PROG_LIBTOOL |
32 | 33 | ||
33 | M4='`cd $(top_srcdir); pwd`/scripts/missing --run m4' | 34 | M4='`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) | ||