From 84ff6b4f46682b93d6f98d104ebe8dda84de3e1b Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 19 Apr 2020 17:05:51 +0200 Subject: [PATCH] (Hun) Generalise Postposition to Adposition, allow it to preposition --- src/hungarian/AdverbHun.gf | 2 +- src/hungarian/CatHun.gf | 2 +- src/hungarian/ParadigmsHun.gf | 3 +++ src/hungarian/ResHun.gf | 14 +++++++++----- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/hungarian/AdverbHun.gf b/src/hungarian/AdverbHun.gf index 78a9bbb59..ed7b74737 100644 --- a/src/hungarian/AdverbHun.gf +++ b/src/hungarian/AdverbHun.gf @@ -12,7 +12,7 @@ lin -- : Prep -> NP -> Adv ; PrepNP prep np = { - s = np.s ! prep.c ++ prep.s ; + s = prep.pr ++ np.s ! prep.c ++ prep.s ; } ; -- Adverbs can be modified by 'adadjectives', just like adjectives. diff --git a/src/hungarian/CatHun.gf b/src/hungarian/CatHun.gf index 159b97ad7..287dc7182 100644 --- a/src/hungarian/CatHun.gf +++ b/src/hungarian/CatHun.gf @@ -87,7 +87,7 @@ concrete CatHun of Cat = CommonX ** open ResHun, Prelude in { -- Constructed in StructuralHun. Conj = ResHun.Conj ; Subj = SS ; - Prep = ResHun.Postposition ; + Prep = ResHun.Adposition ; diff --git a/src/hungarian/ParadigmsHun.gf b/src/hungarian/ParadigmsHun.gf index 247fe301f..d58f52bdc 100644 --- a/src/hungarian/ParadigmsHun.gf +++ b/src/hungarian/ParadigmsHun.gf @@ -85,6 +85,9 @@ oper mkPrep : Str -> Case -> Prep ; -- Postposition and case } ; + prePrep : Str -> Case -> Prep -- Preposition + = \s,c -> lin Prep {pr=s ; s=[] ; c=c} ; + casePrep : Case -> Prep ; -- No postposition, only case -- mkConj : (_,_ : Str) -> Number -> Conj = \s1,s2,num -> diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index ff7379b71..ea3589396 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -102,14 +102,18 @@ oper } ; -------------------------------------------------------------------------------- --- Postpositions +-- Adpositions -- TODO: personal suffixes, e.g. felettem, általam, not *felett/által én - Postposition : Type = {s : Str ; c : Case} ; + Adposition : Type = { + pr : Str ; -- Preposition + s : Str ; -- Postposition + c : Case ; + } ; - mkPrep : Str -> Postposition = \str -> {s=str ; c=Nom} ; + mkPrep : Str -> Adposition = \str -> {s=str ; c=Nom ; pr=[]} ; - emptyPP : Postposition = mkPrep [] ; + emptyAdp : Adposition = mkPrep [] ; ------------------ -- Conj @@ -144,7 +148,7 @@ oper s : Degree => Number => Str } ; Adjective2 : Type = Adjective ** { - c2 : Postposition ; + c2 : Adposition ; } ; mkAdj : Str -> Adjective = \sg -> {