diff --git a/src/basque/AditzTrinkoak.gf b/src/basque/AditzTrinkoak.gf index 776e8f837..dec627fdb 100644 --- a/src/basque/AditzTrinkoak.gf +++ b/src/basque/AditzTrinkoak.gf @@ -39,7 +39,7 @@ oper { indep = dut ; stem = duda } ; } ; - IntransV : Type = Tense => Agr => VForms ; -- Agr = nori or nork + IntransV : Type = AuxForm => Agr => VForms ; -- Agr = nori or nork TransV : Type = Agr => IntransV ; -- Agr = nor DitransV : Type = Agr => TransV ; -- Agr = nori @@ -68,6 +68,7 @@ oper -- General building blocks for the forms of ukan -- All thanks to https://upload.wikimedia.org/wikipedia/commons/3/36/Nor_Nori_Nork_taula_osoa.png + norkUkanFirst : Agr => Str = table { -- Past, pot, cond etc. Ni => "n" ; Gu => "gen" ; Hi _ => "h" ; @@ -85,6 +86,11 @@ oper Ni => "da" ; Hauek => "e" ; x => norkUkanLast ! x } ; + norkUkanImp : Agr => Str = table { + Ni => nonExist ; Gu => nonExist ; + x => norkUkanFirst ! x } ; + + noriUkanLast : Agr => Str = table { Hau => "o" ; Hauek => "e" ; x => norkUkanLast ! x } ; @@ -113,7 +119,6 @@ oper norUkanCond : Agr => Str = table { Zuek => "zintu" ; x => norUkanNonpres ! x } ; - {- ============================================================================= Izan [NOR] @@ -122,7 +127,7 @@ oper -- common copula izanDa : IntransV = - table {Past => table {Ni => mkVForms "nintzen" ; + table {APast => table {Ni => mkVForms "nintzen" ; Hi _ => mkVForms "hintzen" ; Zu => mkVForms "zinen" ; Hau => mkVForms "zen" ; @@ -130,21 +135,27 @@ oper Zuek => mkVForms "zineten" ; Hauek => mkVForms "ziren" } ; - Cond => table {Ni => mkVForms "nintzateke" ; + ACond => table {Ni => mkVForms "nintzateke" ; Hi _ => mkVForms "hintzateke" ; Zu => mkVForms "zinateke" ; Hau => mkVForms "litzateke" ; Gu => mkVForms "ginateke" ; Zuek => mkVForms "zinatekete" ; Hauek => mkVForms "lirateke" } ; - -- Present and future are identical - pres => table {Ni => mkVForms "naiz" ; + APres => table {Ni => mkVForms "naiz" ; Hi _ => mkVForms "haiz" ; Zu => mkVForms "zara" "zare" ; Hau => mkVForms "da" "de" ; Gu => mkVForms "gara" "gare" ; Zuek => mkVForms "zarete" ; - Hauek => mkVForms "dira" "dire" } + Hauek => mkVForms "dira" "dire" } ; + AImp => table {Ni => noVForm ; + Hi _ => mkVForms "hadi" ; + Zu => mkVForms "zaitez" ; + Hau => mkVForms "bedi" ; + Gu => noVForm ; + Zuek => mkVForms "zaitezte" ; + Hauek => mkVForms "bitez" } } ; {- @@ -155,7 +166,7 @@ oper ukanDu : TransV = \\nor,tns,nork => mkVForms ( case tns of { - Past => + APast => case nor of { -- Special forms for past when nor is Hau or Hauek Hau => norkPast_norHau ! nork ; Hauek => norkPast_norHauek ! nork ; @@ -163,7 +174,7 @@ oper te : Str = norkPast ! nork ; in nindu + te + "n" } ; - Cond => + ACond => case nor of { -- Special forms for conditional when nor is Hau or Hauek Hau => norkCond_norHau ! nork ; Hauek => norkCond_norHauek ! nork ; @@ -172,10 +183,14 @@ oper z : Str = case nor of {(Gu|Zu|Zuek) => "z" ; _ => [] } ; te : Str = norkCond ! nork ; in gintu + z + "ke" + te } ; - - pres => let gaitu : Str = norPres ! nor ; + APres => let gaitu : Str = norPres ! nor ; zte : Str = norkPres ! nork ; - in gaitu + zte + in gaitu + zte ; + + AImp => let ga = norImp ! nor ; + it = case nor of { (Gu|Hauek) => "it" ; _ => [] } ; + k = norkImp ! nork ; + in ga + it + "za" + k }) where { @@ -197,12 +212,18 @@ oper => "zte" ; <_,x> => norkUkanMid ! x } ; + norkImp : Agr => Str = norkUkanImp ; + norPres : Agr => Str = norUkanPres ; norPast : Agr => Str = norUkanNonpres ; norCond : Agr => Str = norUkanCond ; + norImp : Agr => Str = table { Ni => "na" ; Gu => "ga" ; + Hau => "be" ; Hauek => "b" ; + _ => nonExist } ; + --norCondZ : Agr => Str = table { -- (Gu|Zu|Zuek) => "z" ; _ => [] } ; @@ -257,16 +278,16 @@ oper te : Str = case nor of { Zuek => "te" ; _ => [] } ; zki : Str = case nor of { (Zu|Zuek|Gu|Hauek) => "zki" ; _ => [] } ; - tenses : Tense => Str = table { - Past => let zin : Str = norPast ! nor ; + tenses : AuxForm => Str = table { + APast => let zin : Str = norPast ! nor ; da : Str = noriPast ! nori ; in zin + "tzai" + zki + da + te + "n" ; - Cond => let zin : Str = norCond ! nor ; + ACond => let zin : Str = norCond ! nor ; da : Str = noriCond ! nori ; in zin + "tzai" + zki + da + "ke" + te ; - pres => let za : Str = norPres ! nor ; + aPres => let za : Str = norPres ! nor ; tzai : Str = case getPers nor of { P3 => "zai" ; _ => "tzai" } ; da : Str = noriPres ! nori ; in za + tzai + zki + da + te } ; @@ -308,18 +329,18 @@ oper --- te = case nork of { (Zuek|Hauek) => "te" ; _ => [] } ; - tenses : Tense => Str = table { - Cond => let zen = norkCond ! nork ; + tenses : AuxForm => Str = table { + ACond => 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 ; + APast => let zen = norkPast ! nork ; izki = norPast ! getNum nor ; da = noriPast ! nori ; in zen + izki + da + te + "n" ; - pres => let dizki = norPres ! getNum nor ; + aPres => let dizki = norPres ! getNum nor ; da = noriPres ! nori ; --form of nori depends on nork zue = norkPres ! nork in dizki + da + zue } @@ -333,7 +354,7 @@ oper -} -- stative copula, like Spanish estar egonDa : IntransV = - table { Past => table { + table { APast => table { Ni => mkVForms "nengoen" ; Hi _ => mkVForms "hengoen" ; Zu => mkVForms "zeunden" ; @@ -341,14 +362,23 @@ oper Gu => mkVForms "geunden" ; Zuek => mkVForms "zeundeten" ; Hauek => mkVForms "zeuden" } ; - _ => table { + APres => table { Ni => mkVForms "nago" ; Hi _ => mkVForms "hago" "hagoe" ; Zu => mkVForms "zaude" ; Hau => mkVForms "dago" "dagoe" ; Gu => mkVForms "gaude" ; Zuek => mkVForms "zaudete" ; - Hauek => mkVForms "daude" } + Hauek => mkVForms "daude" } ; + AImp => table { + (Ni|Gu) => noVForm ; + Hi _ => mkVForms "hago" "hagoe" ; + Zu => mkVForms "zaude" ; + Hau => mkVForms "bego" "begoe" ; + Zuek => mkVForms "zaudete" ; + Hauek => mkVForms "beude" } ; + ACond => \\_ => mkVForms "TODO" + } ; @@ -361,7 +391,7 @@ oper edukiDu : TransV = table { -- Nor,Nork Ni => table { - Pres => table { + APres => table { Gu => noVForm ; Hauek => mkVForms "naukate" ; Ni => noVForm ; @@ -374,7 +404,7 @@ oper } ; Gu => table { - Pres => table { -- Pres + APres => table { -- Pres Gu => noVForm ; Hauek => mkVForms "gauzkate" ; Ni => noVForm ; @@ -385,7 +415,7 @@ oper tns => \\agr => ukanDu ! Ni ! tns ! agr } ; Hauek => table { - Pres => table { -- Pres + APres => table { -- Pres Gu => mkVForms "dauzkagu" ; Hauek => mkVForms "dauzkate" ; Ni => mkVForms "dauzkat" ; @@ -397,7 +427,7 @@ oper tns => \\agr => ukanDu ! Ni ! tns ! agr } ; Zuek => table { - Pres => table { + APres => table { Gu => mkVForms "zauzkategu" ; Hauek => mkVForms "zauzkatete" ; Ni => mkVForms "zauzkatet" ; @@ -408,7 +438,7 @@ oper tns => \\agr => ukanDu ! Ni ! tns ! agr } ; Hau => table { - Pres => table { + APres => table { Gu => mkVForms "daukagu" ; Hauek => mkVForms "daukate" ; Ni => mkVForms "daukat" ; @@ -420,7 +450,7 @@ oper tns => \\agr => ukanDu ! Ni ! tns ! agr } ; Hi _ => table { - Pres => table { + APres => table { Gu => mkVForms "haukagu" ; Hauek => mkVForms "haukate" ; Ni => mkVForms "haukat" ; @@ -431,7 +461,7 @@ oper tns => \\agr => ukanDu ! Ni ! tns ! agr } ; Zu => table { - Pres => table { + APres => table { Gu => mkVForms "zauzkagu" ; Hauek => noVForm ; Ni => mkVForms "zauzkat" ; @@ -452,13 +482,20 @@ oper etorriDa : IntransV = \\tns,subjAgr => case of { - => mkVForms "nator" ; - => mkVForms "hator" ; - => mkVForms "zatoz" ; - => mkVForms "dator" ; - => mkVForms "gatoz" ; - => mkVForms "zatozte" ; - => mkVForms "datoz" ; + => mkVForms "nator" ; + => mkVForms "hator" ; + => mkVForms "zatoz" ; + => mkVForms "dator" ; + => mkVForms "gatoz" ; + => mkVForms "zatozte" ; + => mkVForms "datoz" ; + + => noVForm ; + => mkVForms "hator" ; + => mkVForms "zatoz" ; + => mkVForms "zatozte" ; + => mkVForms "betor" ; + => mkVForms "betoz" ; _ => izanDa ! tns ! subjAgr } ; @@ -470,20 +507,28 @@ oper joanDa : IntransV = \\tns,subjAgr => case of { - => mkVForms "noa" ; - => mkVForms "hoa" ; - => mkVForms "zoaz" ; - => mkVForms "doa" ; - => mkVForms "goaz" ; - => mkVForms "zoazte" ; - => mkVForms "doaz" ; - => mkVForms "nindoan" ; - => mkVForms "hindoan" ; - => mkVForms "zindoazen" ; - => mkVForms "zihoan" ; - => mkVForms "gindoazen" ; - => mkVForms "zindoazten" ; - => mkVForms "zihoazen" ; + => mkVForms "noa" ; + => mkVForms "hoa" ; + => mkVForms "zoaz" ; + => mkVForms "doa" ; + => mkVForms "goaz" ; + => mkVForms "zoazte" ; + => mkVForms "doaz" ; + + => mkVForms "nindoan" ; + => mkVForms "hindoan" ; + => mkVForms "zindoazen" ; + => mkVForms "zihoan" ; + => mkVForms "gindoazen" ; + => mkVForms "zindoazten" ; + => mkVForms "zihoazen" ; + + => noVForm ; + => mkVForms "hoa" ; + => mkVForms "zoaz" ; + => mkVForms "zoazte" ; + => mkVForms "bihoa" ; + => mkVForms "bihoaz" ; _ => izanDa ! tns ! subjAgr } ; @@ -502,10 +547,9 @@ oper ============================================================================= -} - ibiliDa : IntransV = --TODO: check forms table { - Past => table { + APast => table { Ni => mkVForms "nenbilen" ; Hi _ => mkVForms "henbilen" ; Zu => mkVForms "zenbiltzan" ; @@ -514,8 +558,7 @@ oper Zuek => mkVForms "zenbiltzaten" ; Hauek => mkVForms "zebiltzan" } ; - -- Present and future are identical - Cond => table { + ACond => table { Ni => mkVForms "nenbilke" ; Hi _ => mkVForms "henbilke" ; Zu => mkVForms "zenbilzke" ; @@ -524,7 +567,7 @@ oper Zuek => mkVForms "zenbiltzketen" ; Hauek => mkVForms "lebilzke" } ; - Pres => table { + APres => table { Ni => mkVForms "nabil" ; Hi _ => mkVForms "habil" ; Zu => mkVForms "zabiltza" ; @@ -532,7 +575,15 @@ oper Gu => mkVForms "gabiltza" ; Zuek => mkVForms "zabiltzate" ; Hauek => mkVForms "dabiltza" } ; - Fut => izanDa ! Fut + + AImp => table { + Ni => noVForm ; + Hi _ => mkVForms "habil" ; + Zu => mkVForms "zabiltza" ; + Hau => mkVForms "bebil" ; + Gu => noVForm ; + Zuek => mkVForms "zabiltzate" ; + Hauek => mkVForms "bebiltza" } } ; @@ -544,31 +595,31 @@ oper jakinDu : TransV = \\dobjAgr,tns,subjAgr => case of { - => mkVForms "dakit" ; - => mkVForms "dakizu" ; - => mkVForms "daki" ; - => mkVForms "dakigu" ; - => mkVForms "dakizue" ; - => mkVForms "dakite" ; + => mkVForms "dakit" ; + => mkVForms "dakizu" ; + => mkVForms "daki" ; + => mkVForms "dakigu" ; + => mkVForms "dakizue" ; + => mkVForms "dakite" ; - => mkVForms "nekien" ; - => mkVForms "zenekien" ; - => mkVForms "zekien" ; - => mkVForms "genekien" ; - => mkVForms "zenekiten" ; - => mkVForms "zekiten" ; + => mkVForms "nekien" ; + => mkVForms "zenekien" ; + => mkVForms "zekien" ; + => mkVForms "genekien" ; + => mkVForms "zenekiten" ; + => mkVForms "zekiten" ; - _ => ukanDu ! dobjAgr ! tns ! subjAgr + <_,AImp,(Ni|Gu)> => noVForm ; + => mkVForms "beki" ; + => mkVForms "bekizki" ; + => mkVForms "bekite" ; + => mkVForms "bekizkite" ; + + _ => ukanDu ! dobjAgr ! tns ! subjAgr } ; -{- - ============================================================================= - Ibili - ============================================================================= --} - {- ============================================================================= Eman @@ -581,12 +632,6 @@ oper ============================================================================= -} -{- - ============================================================================= - Ikusi - ============================================================================= --} - {- ============================================================================= Erabili diff --git a/src/basque/ParamEus.gf b/src/basque/ParamEus.gf index 62ecf76f5..16b813fe6 100644 --- a/src/basque/ParamEus.gf +++ b/src/basque/ParamEus.gf @@ -19,7 +19,7 @@ param | Du SyntVerb2 | Zaio | Dio ; --always Ukan ? - + AuxForm = APres | ACond | APast | AImp ; -- TODO: subjunctive & potential {- Type of adjectival phrase, e.g.