diff --git a/src/hungarian/AdjectiveHun.gf b/src/hungarian/AdjectiveHun.gf index 5bb3feb4..a718d87a 100644 --- a/src/hungarian/AdjectiveHun.gf +++ b/src/hungarian/AdjectiveHun.gf @@ -16,7 +16,10 @@ concrete AdjectiveHun of Adjective = CatHun ** open ResHun, Prelude in { } ; -- : A2 -> NP -> AP ; -- married to her - -- ComplA2 a2 np = a2 ** { } ; + ComplA2 a2 np = emptyAP ** { + s = a2.s ! Posit ; + compar = np.s ! a2.c2.c ++ a2.c2.s + } ; -- : A2 -> AP ; -- married to itself -- ReflA2 a2 = a2 ** { } ; diff --git a/src/hungarian/CatHun.gf b/src/hungarian/CatHun.gf index 423c2f77..8449d206 100644 --- a/src/hungarian/CatHun.gf +++ b/src/hungarian/CatHun.gf @@ -111,7 +111,7 @@ concrete CatHun of Cat = CommonX ** open ResHun, Prelude in { V3 = ResHun.Verb3 ; A = ResHun.Adjective ; - A2 = ResHun.Adjective ; + A2 = ResHun.Adjective2 ; N, N2, diff --git a/src/hungarian/LexiconHun.gf b/src/hungarian/LexiconHun.gf index 6646f103..8805853b 100644 --- a/src/hungarian/LexiconHun.gf +++ b/src/hungarian/LexiconHun.gf @@ -223,7 +223,7 @@ lin house_N = mkN "ház" ; -- M lin man_N = mkN "férfi" "ak" harmA ; -- force plural allomorph and a-harmony --- lin married_A2 = mkA "" ; +lin married_A2 = mkA2 "házas" Ins ; -- lin meat_N = mkN "" ; -- lin milk_N = mkN "" ; -- lin moon_N = mkN "" ; diff --git a/src/hungarian/ParadigmsHun.gf b/src/hungarian/ParadigmsHun.gf index d4f23d99..a8783faa 100644 --- a/src/hungarian/ParadigmsHun.gf +++ b/src/hungarian/ParadigmsHun.gf @@ -29,7 +29,10 @@ oper -- mkA : (kiga : Str) -> (jakda : A) -> A ; -- Compound adjective, e.g. 키가 작다 'short', literally 'height (is) small'. 키가 'height' given as string, 작다 'small' given as preconstructed A. } ; - -- mkA2 : Str -> Prep -> A2 ; + mkA2 : overload { + mkA2 : Str -> Prep -> A2 ; + mkA2 : Str -> Case -> A2 + } ; --2 Verbs @@ -133,6 +136,13 @@ oper -- jakda ** {s = \\af => kiga ++ jakda.s ! af} ; } ; + mkA2 = overload { + mkA2 : Str -> Prep -> A2 = \s,p -> + lin A2 {s = (mkAdj s).s ; c2 = p} ; + mkA2 : Str -> Case -> A2 = \s,c -> + lin A2 {s = (mkAdj s).s ; c2 = {s = [] ; c = c}} + } ; + mkV = overload { mkV : (sg3 : Str) -> V = \v -> lin V (mkVerb v) ; -- mkV : (nore : Str) -> (hada : V) -> V = \nore,hada -> hada ** { diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index 1319cbbe..4ea9955a 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -126,7 +126,12 @@ oper compar = [] ; } ; - Adjective : Type = {s : Degree => Number => Str} ; + Adjective : Type = { + s : Degree => Number => Str + } ; + Adjective2 : Type = Adjective ** { + c2 : Postposition ; + } ; mkAdj : Str -> Adjective = \sg -> { s = \\d,n => @@ -149,11 +154,12 @@ oper "ifju" => "ifjabb" ; "hosszú" => "hosszabb" ; "sok" => "több" ; + "felső" => "felsőbb" ; + "belső" => "belsőbb" ; _ + #v => stem + "bb" ; - _ => harm "abb" "ebb" ! getHarm stem + _ => stem + harm "abb" "ebb" ! getHarm stem } ; - pluralAdj : Str -> Str = \stem -> case vowFinal stem of { True => -- https://en.wikisource.org/wiki/Simplified_Grammar_of_the_Hungarian_Language/Adjectives diff --git a/src/hungarian/StructuralHun.gf b/src/hungarian/StructuralHun.gf index 24d610d6..02f4a54d 100644 --- a/src/hungarian/StructuralHun.gf +++ b/src/hungarian/StructuralHun.gf @@ -11,8 +11,9 @@ lin at_most_AdN = ss "" ; lin so_AdA = mkAdA "" ; lin too_AdA = mkAdA "" ; lin very_AdA = mkAdA "" ; - -lin as_CAdv = { s = "" ; p = [] } ; +-} +lin as_CAdv = {s = "olyan" ; p = "mint"} ; +{- lin less_CAdv = { s = "" ; p = [] } ; lin more_CAdv = { s = "" ; p = [] } ; lin how_IAdv = ss "" :