diff --git a/src/basque/AdjectiveEus.gf b/src/basque/AdjectiveEus.gf index cf374e59f..53caee1f4 100644 --- a/src/basque/AdjectiveEus.gf +++ b/src/basque/AdjectiveEus.gf @@ -9,22 +9,30 @@ concrete AdjectiveEus of Adjective = CatEus ** open ResEus, Prelude in { -- : A -> AP ; PositA a = a ** { - s = a.s ! AF Posit ; + s = \\agr => a.s ! AF Posit ; typ = Bare } ; -- : A -> NP -> AP ; -- euskara ingelesa baino errazagoa da. ComparA a np = a ** { - s = np.s ! Abs ++ "baino" ++ a.s ! AF Compar ; + s = \\agr => np.s ! Abs ++ "baino" ++ a.s ! AF Compar ; typ = Bare } ; -- : A2 -> NP -> AP ; -- married to her ComplA2 a2 np = a2 ** { - s = applyPost a2.compl np ++ a2.s ! AF Posit ; + s = \\agr => applyPost a2.compl np ++ a2.s ! AF Posit ; typ = Bare } ; -- : A2 -> AP ; -- married to itself ReflA2 a2 = a2 ** { - s = applyPost a2.compl buru_NP ++ a2.s ! AF Posit ; + s = \\agr => + let neure : Str = reflPron ! agr ; + neureBuru : NounPhrase = empty_NP ** + { s = \\cas => neure ++ "buru" + ++ artDef ! getNum agr ! cas ! FinalVow ; +-- stem = neure ++ "buru" ; + agr = agr } -- neure buruekin eskondua naiz / + -- geure buruekin eskonduak gara + in applyPost a2.compl neureBuru ++ a2.s ! AF Posit ; typ = Bare } ; -- : A2 -> AP ; -- married @@ -32,18 +40,19 @@ concrete AdjectiveEus of Adjective = CatEus ** open ResEus, Prelude in { -- : A -> AP ; -- warmer UseComparA a = a ** { - s = a.s ! AF Compar ; + s = \\agr => a.s ! AF Compar ; typ = Bare } ; -- : CAdv -> AP -> NP -> AP ; -- as cool as John CAdvAP adv ap np = ap ** { - s = np.s ! Abs ++ adv.s ++ ap.s } ; + s = \\agr => np.s ! Abs ++ adv.s ++ ap.s ! agr } ; -- The superlative use is covered in $Ord$. -- : Ord -> AP ; -- warmest AdjOrd ord = ord ** { + s = \\agr => ord.s ; ph = FinalCons ; --always ends in -en typ = Bare } ; @@ -57,8 +66,8 @@ concrete AdjectiveEus of Adjective = CatEus ** open ResEus, Prelude in { -- : AdA -> AP -> AP ; AdAP ada ap = ap ** { - s = ada.s ++ ap.s ; - typ = Bare } ; + s = \\agr => ada.s ++ ap.s ! agr ; + typ = Bare } ; -- It can also be postmodified by an adverb, typically a prepositional phrase. diff --git a/src/basque/ConjunctionEus.gf b/src/basque/ConjunctionEus.gf index a060aa647..bd3c2c796 100644 --- a/src/basque/ConjunctionEus.gf +++ b/src/basque/ConjunctionEus.gf @@ -71,12 +71,12 @@ lin -- APs and CNs. FIXME: crude first attempt, doesn't work properly. -- ConjCN gives `*nesk edo neskek' lincat - [AP] = {s1,s2 : Str ; ph : Phono ; typ : APType } ; + [AP] = {s1,s2 : Agr => Str ; ph : Phono ; typ : APType } ; lin - BaseAP x y = twoSS x y ** y ; --choose all the other fields from second argument - ConsAP as a = consrSS comma as a ** as ; - ConjAP co as = conjunctDistrSS co as ** as ; + BaseAP x y = twoTable Agr x y ** y ; --choose all the other fields from second argument + ConsAP as a = consrTable Agr comma as a ** as ; + ConjAP co as = conjunctDistrTable Agr co as ** as ; lincat [CN] = { s1,s2 : Agr => Str } ** CNLight ; diff --git a/src/basque/LexiconEus.gf b/src/basque/LexiconEus.gf index ba534ea2e..ff9028092 100644 --- a/src/basque/LexiconEus.gf +++ b/src/basque/LexiconEus.gf @@ -227,6 +227,7 @@ lin louse_N = mkN "zorri" ; --Apertium lin love_N = mkN "maitasun" ; -- | mkN "amodio" ; --Apertium lin love_V2 = ukanV "maite" ; lin man_N = mkN "gizon" animate ; --Apertium +lin married_A2 = mkA2 "eskondu" (mkPrep [] sociative) ; lin meat_N = mkN "haragi" ; -- | mkN "mami" ; --Apertium lin milk_N = mkN "esne" ; --Apertium lin moon_N = mkN "ilargi" ; --Apertium diff --git a/src/basque/NounEus.gf b/src/basque/NounEus.gf index 2606cbba4..cfa046318 100644 --- a/src/basque/NounEus.gf +++ b/src/basque/NounEus.gf @@ -191,9 +191,9 @@ concrete NounEus of Noun = CatEus ** open ResEus, Prelude in { let a : Str = artIndef ! Abs ! cn.ph ; --`a' for FinalA, [] for other result : {s : Agr => Str ; ph : Phono} = case ap.typ of { - Ko => { s = \\agr => ap.s ++ cn.s ! agr ; + Ko => { s = \\agr => ap.s ! Hau ++ cn.s ! agr ; ph = cn.ph } ; - Bare => { s = \\agr => cn.s ! agr ++ a ++ ap.s ; + Bare => { s = \\agr => cn.s ! agr ++ a ++ ap.s ! Hau ; ph = ap.ph } } ; in cn ** { s = result.s ; @@ -252,7 +252,7 @@ concrete NounEus of Noun = CatEus ** open ResEus, Prelude in { --3 Conjoinable determiners and ones with adjectives -- : DAP -> AP -> DAP ; -- the large (one) - AdjDAP dap ap = dap ** { s = \\cas,ph => ap.s ++ dap.s ! cas ! ph } ; + AdjDAP dap ap = dap ** { s = \\cas,ph => ap.s ! Hau ++ dap.s ! cas ! ph } ; -- : Det -> DAP ; -- this (or that) DetDAP det = det ; diff --git a/src/basque/ParadigmsEus.gf b/src/basque/ParadigmsEus.gf index 537786f4c..ebcbf6889 100644 --- a/src/basque/ParadigmsEus.gf +++ b/src/basque/ParadigmsEus.gf @@ -55,7 +55,7 @@ oper mkA : Str -> A -> A = \s,a -> irregAdvAdj s a } ; --- mkA2 : Str -> A2 = \s -> lin A2 (mkAdj s) ; + mkA2 : Str -> Prep -> A2 = \s,pp -> lin A2 (regAdj s ** { compl = pp }) ; diff --git a/src/basque/PhraseEus.gf b/src/basque/PhraseEus.gf index 6b4e8674c..805913abb 100644 --- a/src/basque/PhraseEus.gf +++ b/src/basque/PhraseEus.gf @@ -20,7 +20,7 @@ concrete PhraseEus of Phrase = CatEus ** open Prelude, ResEus in { UttAdv adv = adv ; UttCN n = {s = n.s ! Hau ++ artDef ! Sg ! Abs ! n.ph } ; UttCard n = n ; - UttAP ap = ap ; + UttAP ap = { s = ap.s ! Hau } ; UttInterj i = i ; NoPConj = {s = []} ; diff --git a/src/basque/ResEus.gf b/src/basque/ResEus.gf index 32019b731..4f04c351a 100644 --- a/src/basque/ResEus.gf +++ b/src/basque/ResEus.gf @@ -199,10 +199,6 @@ oper --- { Abs => "hargle"; Erg => "bargle" } -- the field .agr. is of type Agr. - buru_NP : NounPhrase = - empty_NP ** { s = \\_ => "buru" ; - stem = "buru" } ; - empty_NP : NounPhrase = { s = \\_ => [] ; stem = [] ; agr = Hau ; @@ -252,15 +248,23 @@ oper inanPron : (x1,_,_,_,x5 : Str) -> Agr -> Pronoun = \zer,zeri,zerk,zere,zertaz,a -> persPron zer zeri zerk zere zertaz a ** { anim = Inan } ; - + reflPron : Agr => Str = table { + Ni => "neure" ; + Hi _ => "heure" ; + Gu => "geure" ; + Zu => "zeure" ; + Zuek => "zeuen" ; + hau => "haren" } ; -------------------------------------------------------------------- -- Adjective and AP - Adjective : Type = {s : AForm => Str ; ph : Phono} ; + Adjective : Type = { s : AForm => Str ; ph : Phono } ; Adjective2 : Type = Adjective ** { compl : Postposizio } ; - AdjPhrase : Type = {s : Str ; ph : Phono ; typ : APType} ; + AdjPhrase : Type = { s : Agr => Str ; + ph : Phono ; + typ : APType} ; regAdj : Str -> Adjective = \s -> let stem : Str = case last s of { diff --git a/src/basque/VerbEus.gf b/src/basque/VerbEus.gf index fe06ee46f..5182d5a35 100644 --- a/src/basque/VerbEus.gf +++ b/src/basque/VerbEus.gf @@ -90,7 +90,9 @@ lin -- copula-preceded complements. -- : VPSlash -> VP ; - ReflVP vps = complSlash vps buru_NP ; ------ TODO + ReflVP vps = + let neureBurua : Agr => Str = \\a => reflPron ! a ++ "burua" ; + in vps ** insertComp neureBurua ; -- : Comp -> VP ; UseComp comp = insertComp comp.s (copulaVP comp.copula) ; @@ -138,7 +140,7 @@ lin -- Complement : Type = {s : Agr => Str ; copula : SyntVerb1 } ; -- : AP -> Comp ; - CompAP ap = { s = \\agr => ap.s ++ artDef ! getNum agr ! Abs ! ap.ph ; + CompAP ap = { s = \\agr => ap.s ! agr ++ artDef ! getNum agr ! Abs ! ap.ph ; copula = Izan }; -- : CN -> Comp ;