mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-30 10:28:53 -06:00
Add new forms to zaio and dio
This commit is contained in:
@@ -100,6 +100,12 @@ oper
|
|||||||
Zu => "zintu" ; Zuek => "zintuzte" ;
|
Zu => "zintu" ; Zuek => "zintuzte" ;
|
||||||
Hau => nonExist ; Hauek => nonExist } ; -- formed separately
|
Hau => nonExist ; Hauek => nonExist } ; -- formed separately
|
||||||
|
|
||||||
|
norUkanZaioNonpres : Agr => Str = table {
|
||||||
|
Ni => "nin" ; Gu => "gin" ;
|
||||||
|
Hi _ => "hin" ;
|
||||||
|
Zu => "zin" ; Zuek => "zin" ;
|
||||||
|
Hau => "zi" ; Hauek => "zi" } ;
|
||||||
|
|
||||||
norUkanCond : Agr => Str = table {
|
norUkanCond : Agr => Str = table {
|
||||||
Zuek => "zintu" ; x => norUkanNonpres ! x } ;
|
Zuek => "zintu" ; x => norUkanNonpres ! x } ;
|
||||||
|
|
||||||
@@ -158,7 +164,7 @@ oper
|
|||||||
Hauek => norkCond_norHauek ! nork ;
|
Hauek => norkCond_norHauek ! nork ;
|
||||||
|
|
||||||
_ => let gintu : Str = norCond ! nor ;
|
_ => let gintu : Str = norCond ! nor ;
|
||||||
z : Str = norCondZ ! nor ;
|
z : Str = case nor of {(Gu|Zu|Zuek) => "z" ; _ => [] } ;
|
||||||
te : Str = norkCond ! nork ;
|
te : Str = norkCond ! nork ;
|
||||||
in gintu + z + "ke" + te } ;
|
in gintu + z + "ke" + te } ;
|
||||||
|
|
||||||
@@ -192,8 +198,8 @@ oper
|
|||||||
|
|
||||||
norCond : Agr => Str = norUkanCond ;
|
norCond : Agr => Str = norUkanCond ;
|
||||||
|
|
||||||
norCondZ : Agr => Str = table {
|
--norCondZ : Agr => Str = table {
|
||||||
(Gu|Zu|Zuek) => "z" ; _ => [] } ;
|
-- (Gu|Zu|Zuek) => "z" ; _ => [] } ;
|
||||||
|
|
||||||
norkPast_norHau = table { Ni => "nuen" ; Gu => "genuen" ;
|
norkPast_norHau = table { Ni => "nuen" ; Gu => "genuen" ;
|
||||||
Hi _ => "huen" ;
|
Hi _ => "huen" ;
|
||||||
@@ -207,7 +213,7 @@ oper
|
|||||||
|
|
||||||
norkCond_norHau = table { Hi _ => "hinduke" ; Zuek => "zenukete" ;
|
norkCond_norHau = table { Hi _ => "hinduke" ; Zuek => "zenukete" ;
|
||||||
Hau => "luke" ; Hauek => "lukete" ;
|
Hau => "luke" ; Hauek => "lukete" ;
|
||||||
x => (tk 2 (norkPast_norHau ! x)) + "ke" } ; -- zu+en -> nu+ke
|
x => (tk 2 (norkPast_norHau ! x)) + "ke" } ; -- nu+en -> nu+ke
|
||||||
|
|
||||||
norkCond_norHauek = table { Hi _ => "hindukete" ; Zuek => "zenituzkete" ;
|
norkCond_norHauek = table { Hi _ => "hindukete" ; Zuek => "zenituzkete" ;
|
||||||
Hau => "lituzke" ; Hauek => "lituzkete" ;
|
Hau => "lituzke" ; Hauek => "lituzkete" ;
|
||||||
@@ -220,81 +226,61 @@ oper
|
|||||||
Ukan [NOR] [NORI]
|
Ukan [NOR] [NORI]
|
||||||
=============================================================================
|
=============================================================================
|
||||||
-}
|
-}
|
||||||
|
ukanZaio : TransV = \\nor,tns,nori => mkVForms (tenses ! tns)
|
||||||
|
|
||||||
|
where {
|
||||||
|
norPast : Agr => Str = norUkanZaioNonpres ;
|
||||||
|
noriPast : Agr => Str = noriUkanMid ;
|
||||||
|
|
||||||
|
norCond : Agr => Str = table {
|
||||||
|
Hau => "li" ; Hauek => "li" ;
|
||||||
|
x => norPast ! x } ;
|
||||||
|
noriCond : Agr => Str = noriPast ;
|
||||||
|
|
||||||
|
norPres : Agr => Str = table {
|
||||||
|
Ni => "na" ; Gu => "ga" ;
|
||||||
|
Hi _ => "ha" ;
|
||||||
|
Zu => "za" ; Zuek => "za" ;
|
||||||
|
Hau => [] ; Hauek => [] } ;
|
||||||
|
|
||||||
|
noriPres : Agr => Str = \\nori => case <nor,nori> of {
|
||||||
|
<Zuek,Ni> => "da" ; -- zai+t, zai+zki+t etc., but `za+tzai+zki_da_te', if nor is Zuek
|
||||||
|
<_,x> => noriUkanLast ! x } ;
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
te : Str = case nor of { Zuek => "te" ; _ => [] } ;
|
||||||
|
zki : Str = case getNum nori of { Sg => [] ; Pl => "zki" } ;
|
||||||
|
|
||||||
|
tenses : Tense => Str = table {
|
||||||
|
Past => let zin : Str = norPast ! nor ;
|
||||||
|
da : Str = noriPast ! nori ;
|
||||||
|
in zin + "tzai" + zki + da + te + "n" ;
|
||||||
|
|
||||||
|
Cond => let zin : Str = norCond ! nor ;
|
||||||
|
da : Str = noriCond ! nori ;
|
||||||
|
in zin + "tzai" + zki + da + "ke" + te ;
|
||||||
|
|
||||||
|
pres => let za : Str = norPres ! nor ;
|
||||||
|
tzai : Str = case getPers nor of { P3 => "zai" ; _ => "tzai" } ;
|
||||||
|
da : Str = noriPres ! nori ;
|
||||||
|
in za + tzai + zki + da + te } ;
|
||||||
|
|
||||||
ukanZaio : TransV = table { --TODO: add all forms
|
|
||||||
-- Nori,Nor
|
|
||||||
Hau => table {
|
|
||||||
Pres => table {
|
|
||||||
Ni => mkVForms "zait" ;
|
|
||||||
Hi Fem => mkVForms "zain" ;
|
|
||||||
Hi Masc => mkVForms "zaik" ;
|
|
||||||
Zu => mkVForms "zaizu" ;
|
|
||||||
Hau => mkVForms "zaio" ;
|
|
||||||
Gu => mkVForms "zaigu" ;
|
|
||||||
Zuek => mkVForms "zaizue" ;
|
|
||||||
Hauek => mkVForms "zaie"
|
|
||||||
} ;
|
|
||||||
_ => \\agr => noVForm
|
|
||||||
} ;
|
|
||||||
Hauek => table {
|
|
||||||
Pres => table {
|
|
||||||
Ni => mkVForms "zaizkit" ;
|
|
||||||
Hi Fem => mkVForms "zaizkin" ;
|
|
||||||
Hi Masc => mkVForms "zaizkik" ;
|
|
||||||
Zu => mkVForms "zaizkizu" ;
|
|
||||||
Hau => mkVForms "zaizkio" ;
|
|
||||||
Gu => mkVForms "zaizkigu" ;
|
|
||||||
Zuek => mkVForms "zaizkizue" ;
|
|
||||||
Hauek => mkVForms "zaizkie"
|
|
||||||
} ;
|
|
||||||
_ => \\agr => noVForm
|
|
||||||
} ;
|
|
||||||
_ => table {
|
|
||||||
tns => table {
|
|
||||||
agr => noVForm
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} where {
|
|
||||||
-- For Nor-Nori inflection, map from Agr to prefix morpheme in Nor position
|
|
||||||
norTableZaio : Agr => Str =
|
|
||||||
table { Ni => "na" ;
|
|
||||||
Hi _ => "ha" ;
|
|
||||||
Gu => "ga" ;
|
|
||||||
Zu => "za" ;
|
|
||||||
Zuek => "za" ;
|
|
||||||
_ => [] --Hau and Hauek
|
|
||||||
}
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
=============================================================================
|
=============================================================================
|
||||||
Ukan [NOR] [NORI] [NORK]
|
Ukan [NOR] [NORI] [NORK]
|
||||||
=============================================================================
|
=============================================================================
|
||||||
-}
|
-}
|
||||||
|
|
||||||
ukanDio : DitransV = -- TODO test properly /IL 2017-07
|
ukanDio : DitransV = \\nori,nor,tns,nork => mkVForms (tenses ! tns)
|
||||||
\\nori,nor,tns,nork => mkVForms (
|
|
||||||
case tns of {
|
|
||||||
Cond => "TODO:conditional" ;
|
|
||||||
Past => let zen = norkPast ! nork ;
|
|
||||||
izki = norPast ! getNum nor ;
|
|
||||||
da = noriPast ! nori ;
|
|
||||||
te = norkPastTe ! nork ;
|
|
||||||
in zen + izki + da + te + "n" ;
|
|
||||||
|
|
||||||
_ => let dizki = norPres ! getNum nor ;
|
|
||||||
da = noriPres ! nori ; --form of nori depends on nork
|
|
||||||
zue = norkPres ! nork
|
|
||||||
in dizki + da + zue })
|
|
||||||
|
|
||||||
where {
|
where {
|
||||||
-- Map from Number to prefix morpheme in Nor position.
|
-- Map from Number to prefix morpheme in Nor position.
|
||||||
-- Specific to Nor-Nori-Nork, different forms in other auxiliaries.
|
-- Specific to Nor-Nori-Nork, different forms in other auxiliaries.
|
||||||
norPres : Number => Str = table { Sg => "di" ;
|
norPres : Number => Str = table { Sg => "di" ;
|
||||||
Pl => "dizki" } ;
|
Pl => "dizki" } ;
|
||||||
norPast : Number => Str = \\tns => drop 1 (norPres ! tns) ;
|
norPast : Number => Str = \\n => drop 1 (norPres ! n) ;
|
||||||
|
|
||||||
------
|
------
|
||||||
-- Map from Agr to morpheme in Nori position.
|
-- Map from Agr to morpheme in Nori position.
|
||||||
@@ -311,8 +297,27 @@ oper
|
|||||||
|
|
||||||
norkPast : Agr => Str = norkUkanFirst ;
|
norkPast : Agr => Str = norkUkanFirst ;
|
||||||
|
|
||||||
norkPastTe : Agr => Str = table {
|
norkCond : Agr => Str = table { (Hau|Hauek) => "l" ;
|
||||||
(Zuek|Hauek) => "te" ; _ => [] }
|
x => norkPast ! x } ;
|
||||||
|
|
||||||
|
---
|
||||||
|
te = case nork of { (Zuek|Hauek) => "te" ; _ => [] } ;
|
||||||
|
|
||||||
|
tenses : Tense => Str = table {
|
||||||
|
Cond => let zen = norkCond ! nork ;
|
||||||
|
izki = norPast ! getNum nor ; -- same forms for past and cond
|
||||||
|
da = noriPast ! nori ; -- same forms for past and cond
|
||||||
|
in zen + izki + da + "ke" + te ;
|
||||||
|
|
||||||
|
Past => let zen = norkPast ! nork ;
|
||||||
|
izki = norPast ! getNum nor ;
|
||||||
|
da = noriPast ! nori ;
|
||||||
|
in zen + izki + da + te + "n" ;
|
||||||
|
|
||||||
|
pres => let dizki = norPres ! getNum nor ;
|
||||||
|
da = noriPres ! nori ; --form of nori depends on nork
|
||||||
|
zue = norkPres ! nork
|
||||||
|
in dizki + da + zue }
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user