diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-06-11 13:45:35 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-06-11 13:45:35 +0300 |
commit | 169d0e2887a40e4d845efcaa1e46ec49d02421b7 (patch) | |
tree | c15cbf4bd8b94bd86b4da7253acd1a43e96f57e0 /src/ellinika/syllabificator.c | |
parent | a1a5b7ddd6c3c0532c37551b24fd573a554ac181 (diff) | |
download | ellinika-169d0e2887a40e4d845efcaa1e46ec49d02421b7.tar.gz ellinika-169d0e2887a40e4d845efcaa1e46ec49d02421b7.tar.bz2 |
Fixes in conjugator
* data/dbverb.struct: Expand conj to char(32).
Fix several bugs in conjugation table.
Introduce a new pseudo-conjugation A-depon, for verba deponentia.
* data/irregular-verbs.xml: Update.
* scm/conjugator.scm (complement-verb-info): Handle A-depon.
(apply-flect): Don't try to set accent outside of a word, even
if so required by accmap.
(conjugate): For synthetic tenses, look up for aoristoy ypotaktikis
of the same voice as the requested tense. Use accmap to decide whether
a particular person exists in that tense.
Fixes in syllabificator.
* src/ellinika/elmorph.c (_elstr_set_accent): Fix setting accents on
diphthongs.
(deftab) <elmorph:iota>: New flag.
* src/ellinika/elmorph.h (CHF_IOTA): New flag.
* src/ellinika/syllabificator.c (SYL_FLAG_MASK): Add more bits.
(next_syllable): Mark syllables with iota with CHF_DIPHTHONG|CHF_IOTA.
Diffstat (limited to 'src/ellinika/syllabificator.c')
-rw-r--r-- | src/ellinika/syllabificator.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ellinika/syllabificator.c b/src/ellinika/syllabificator.c index c4105ec..e034163 100644 --- a/src/ellinika/syllabificator.c +++ b/src/ellinika/syllabificator.c @@ -32,7 +32,7 @@ struct syllabificator { int err; }; -#define SYL_FLAG_MASK (CHF_ACCENT_MASK) +#define SYL_FLAG_MASK (CHF_ACCENT_MASK|CHF_DIPHTHONG|CHF_IOTA) #define ISIOTA(ph) \ ((ph).code == PHON_I && (ph).count == 1 && \ @@ -94,6 +94,8 @@ next_syllable(struct syllabificator *sp) syl->char_count += sp->phon[sp->phon_cur].count; syl->phoneme_count++; sp->phon_cur++; + if (sp->phon[sp->phon_cur].flags & CHF_VOWEL) + syl->flags |= CHF_DIPHTHONG|CHF_IOTA; } if (sp->phon[sp->phon_cur].flags & CHF_VOWEL) |