From 7c0ea34127356415aeecd216414fe03129655fe2 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 17 Apr 2020 14:47:10 +0200 Subject: [PATCH] (Hun) Add A2, ComplA2, CAdv --- src/hungarian/AdjectiveHun.gf | 5 ++++- src/hungarian/CatHun.gf | 2 +- src/hungarian/LexiconHun.gf | 2 +- src/hungarian/ParadigmsHun.gf | 12 +++++++++++- src/hungarian/ResHun.gf | 12 +++++++++--- src/hungarian/StructuralHun.gf | 5 +++-- 6 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/hungarian/AdjectiveHun.gf b/src/hungarian/AdjectiveHun.gf index 5bb3feb49..a718d87ac 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 423c2f775..8449d206c 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 6646f1036..8805853bc 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 d4f23d993..a8783faa8 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 1319cbbe9..4ea9955a9 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 24d610d69..02f4a54de 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 "" :