|
From: <fri...@us...> - 2008-12-26 12:07:59
|
Revision: 9646
http://zaf.svn.sourceforge.net/zaf/?rev=9646&view=rev
Author: friedelwolff
Date: 2008-12-26 11:44:01 +0000 (Fri, 26 Dec 2008)
Log Message:
-----------
Generate rules for -nga- potential aspectual morpheme, as well as indicative future tenses and combinations with -nga- and -sa- aspectual morphemes
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 10:33:08 UTC (rev 9645)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 11:44:01 UTC (rev 9646)
@@ -160,6 +160,13 @@
group.add_rule(affix=prefix, **kwargs)
return group.rules
+ #if a condition was passed mandating [^aeiou], we can't generate the rest
+ #of the rules
+ condition = kwargs.pop('condition', '')
+ if condition:
+ #the rule above already generated the simple case and passed the
+ #condition.
+ return group.rules
#normal verb starting on consonant:
group.add_rule(affix=prefix, condition="[^aeiou]", **kwargs)
@@ -217,39 +224,39 @@
for i in concords:
# A_rules.extend(verb_rules(i)) #XXX:DONE
- A_rules.extend(verb_rules(i+"nga"))
- A_rules.extend(verb_rules(i+"sa"))
+# A_rules.extend(verb_rules(i+"nga")) #XXX:DONE
+# A_rules.extend(verb_rules(i+"sa")) #XXX:DONE
#Future tenses:
- a_rules.extend(verb_rules(i+"zo"))
- a_rules.extend(verb_rules(i+"zoku"))
- a_rules.extend(verb_rules(i+"yo"))
- a_rules.extend(verb_rules(i+"yoku"))
+# a_rules.extend(verb_rules(i+"zo")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"zoku")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"yo")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"yoku")) #XXX:DONE
#-sa- + future tenses:
- a_rules.extend(verb_rules(i+"sazo"))
- a_rules.extend(verb_rules(i+"sazoku"))
- a_rules.extend(verb_rules(i+"sayo"))
- a_rules.extend(verb_rules(i+"sayoku"))
+# a_rules.extend(verb_rules(i+"sazo")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sazoku")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sayo")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sayoku")) #XXX:DONE
for j in object_morphemes:
if illegal_reflexive(i, j):
continue
- A_rules.extend(verb_rules(i+j))
- A_rules.extend(verb_rules(i+"nga"+j)) #confusable with negatives
- A_rules.extend(verb_rules(i+"sa"+j))
+# A_rules.extend(verb_rules(i+j)) #XXX:DONE
+# A_rules.extend(verb_rules(i+"nga"+j)) #confusable with negatives #XXX:DONE
+# A_rules.extend(verb_rules(i+"sa"+j)) #XXX:DONE
#Future tenses:
- a_rules.extend(verb_rules(i+"zo"+j))
- a_rules.extend(verb_rules(i+"zoku"+j))
- a_rules.extend(verb_rules(i+"yo"+j))
- a_rules.extend(verb_rules(i+"yoku"+j))
+# a_rules.extend(verb_rules(i+"zo"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"zoku"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"yo"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"yoku"+j)) #XXX:DONE
#-sa- + future tenses:
- a_rules.extend(verb_rules(i+"sazo"+j))
- a_rules.extend(verb_rules(i+"sazoku"+j))
- a_rules.extend(verb_rules(i+"sayo"+j))
- a_rules.extend(verb_rules(i+"sayoku"+j))
+# a_rules.extend(verb_rules(i+"sazo"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sazoku"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sayo"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sayoku"+j)) #XXX:DONE
#Mode specific ones:
for i in subject_morphemes:
@@ -391,13 +398,42 @@
# We handle class 1 negative separately:
verb_rules(main_subjects, affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+ #indicative long form, present, positive
+ verb_rules(infixes, affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
+ #progressive aspectual morpheme
+ verb_rules(infixes, affix="sa", needaffix=True, morphology="PROG", continuation_classes=[main_subjects])
+ #potensial aspectual morpheme
+ verb_rules(infixes, affix="nga", needaffix=True, morphology="POTEN", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
- verb_rules(infixes, affix="sa", needaffix=True, morphology="STILL", continuation_classes=[main_subjects])
+ #indicative future tenses
+ verb_rules(infixes, affix="zo", needaffix=True, morphology="NEAR_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="zoku", needaffix=True, morphology="NEAR_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yo", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yoku", needaffix=True, morphology="DISTANT_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+
+ #-sa- + indicative future tenses
+ verb_rules(infixes, affix="sazo", condition="[^aeiou]", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sazoku", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sayo", condition="[^aeiou]", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sayoku", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+
for morpheme in object_morphemes:
verb_rules(infixes, affix=morpheme, needaffix=True, morphology="OBJ", continuation_classes=[main_subjects])
verb_rules(infixes, affix="ya"+morpheme, needaffix=True, morphology="PRESENT_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
- verb_rules(infixes, affix="sa"+morpheme, needaffix=True, morphology="STILL_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sa"+morpheme, needaffix=True, morphology="PROG_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="nga"+morpheme, needaffix=True, morphology="POTEN_with_OBJ", continuation_classes=[main_subjects])
+
+ #TODO: do we need to exclude the short forms with vowel verbs?
+ verb_rules(infixes, affix="zo"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="zoku"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yo"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yoku"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+
+ verb_rules(infixes, affix="sazo"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sazoku"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sayo"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sayoku"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+
verb_rules(infixes, affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
infixes.add_rule(affix="", condition="[^aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
infixes.add_rule(affix="y", condition="[aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|