diff --git a/src/gaelic/AdjectiveGla.gf b/src/gaelic/AdjectiveGla.gf index 8d103483a..5a2de9aa0 100644 --- a/src/gaelic/AdjectiveGla.gf +++ b/src/gaelic/AdjectiveGla.gf @@ -6,13 +6,12 @@ concrete AdjectiveGla of Adjective = CatGla ** open ResGla, Prelude in { -- : AP -> Adv -> AP ; -- warm by nature AdvAP ap adv = ap ** { - s = ap.s ++ adv.s ; + s = \\af => ap.s ! af ++ adv.s ; + voc = \\g => ap.voc ! g ++ adv.s } ; -- : A -> AP ; - --PositA a = a ** { - -- compar = [] ; - -- } ; + PositA a = a ; -- : A -> NP -> AP ; --ComparA a np = a ** { @@ -45,7 +44,7 @@ concrete AdjectiveGla of Adjective = CatGla ** open ResGla, Prelude in { -- compar = [] -- } ; -- AdjOrd : Ord -> AP = - AdjOrd ord = ord ; + -- AdjOrd ord = ord ; -- Sentence and question complements defined for all adjectival -- phrases, although the semantics is only clear for some adjectives. diff --git a/src/gaelic/CatGla.gf b/src/gaelic/CatGla.gf index 6e23a46db..3b9fc8bd7 100644 --- a/src/gaelic/CatGla.gf +++ b/src/gaelic/CatGla.gf @@ -41,7 +41,7 @@ concrete CatGla of Cat = CommonX ** open ResGla, Coordination, Prelude in { --2 Adjectival phrases -- Constructed in AdjectiveGla. - AP = SS ; + AP = LinAP ; --2 Nouns and noun phrases diff --git a/src/gaelic/NounGla.gf b/src/gaelic/NounGla.gf index b9e620aa2..2a6223643 100644 --- a/src/gaelic/NounGla.gf +++ b/src/gaelic/NounGla.gf @@ -168,10 +168,14 @@ concrete NounGla of Noun = CatGla ** open ResGla, Prelude in { -- : N3 -> N2 ; -- distance (to Paris) Use3N3 n3 = lin N2 n3 ; - +-} -- : AP -> CN -> CN - AdjCN ap cn = - + AdjCN ap cn = { + s = \\c,s,n => cn.s ! c ! s ! n ++ ap.s ! aform c n cn.g ; + voc = \\n => cn.voc ! n ++ ap.voc ! cn.g ; + g = cn.g + } ; +{- -- : CN -> RS -> CN ; RelCN cn rs = diff --git a/src/gaelic/ResGla.gf b/src/gaelic/ResGla.gf index 691dfae44..40a1149c7 100644 --- a/src/gaelic/ResGla.gf +++ b/src/gaelic/ResGla.gf @@ -44,6 +44,7 @@ oper oper LinN : Type = {s: Case => Species => Number => Str; voc: Number => Str; g: Gender} ; + mk5N : (_,_,_,_,_ : Str) -> Gender -> LinN ; mk5N nom dat gen pl pal g = { s = table { Nom _ => table { @@ -426,6 +427,13 @@ oper param AForm = ASg Case Gender | APl ; +oper + aform : Case -> Number -> Gender -> AForm = + \c,n,g -> case n of { + Sg => ASg c g ; + Pl => APl + } ; + oper LinA : Type = {s: AForm => Str; voc: Gender => Str; compar: Str} ; -- 686 oper mkAdj : (_,_,_,_,_,_,_,_,_,_ : Str) -> LinA = @@ -448,7 +456,8 @@ oper LinA2 : Type = LinA ; - LinAP : Type = LinA ; -- ** {compar : Str} ; + LinAP : Type = {s: AForm => Str; voc: Gender => Str} ; -- 686 + -------------------------------------------------------------------------------- -- Verbs