From 4dc5b53c3cac81727ca11c7e24019ed8bfa79239 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 23 Apr 2020 19:56:10 +0200 Subject: [PATCH] (Hun) Add new QuantType param to Quants --- src/hungarian/NounHun.gf | 8 ++++---- src/hungarian/ParamHun.gf | 12 ++++++++++++ src/hungarian/ResHun.gf | 4 ++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/hungarian/NounHun.gf b/src/hungarian/NounHun.gf index e2e16016..721e5e33 100644 --- a/src/hungarian/NounHun.gf +++ b/src/hungarian/NounHun.gf @@ -69,11 +69,11 @@ concrete NounHun of Noun = CatHun ** open ResHun, Prelude, Coordination in { -- : Quant -> Num -> Det ; DetQuant quant num = quant ** num ** { - s = \\c => case of { + s = \\c => case of { => [] ; -- don't output "a 2 cars" _ => quant.s ! num.n ! c } ++ num.s ! Attrib ; -- TODO: add inflection table in numbers - sp = \\c => case of { + sp = \\c => case of { => [] ; _ => quant.sp ! num.n ! c } ++ num.s ! Indep ; @@ -137,7 +137,7 @@ concrete NounHun of Noun = CatHun ** open ResHun, Prelude, Coordination in { DefArt = { s, sp = \\_,_ => pre {"a" ; "az" / v } ; - isIndefArt = False ; + qt = Article ; objdef = Def ; caseagr = True ; } ; @@ -146,7 +146,7 @@ concrete NounHun of Noun = CatHun ** open ResHun, Prelude, Coordination in { IndefArt = { s = \\n,_ => case n of {Sg => "egy" ; Pl => []} ; sp = \\n,_ => case n of {Sg => "egy" ; Pl => "sok"} ; - isIndefArt = True ; + qt = Article ; objdef = Indef ; caseagr = True ; } ; diff --git a/src/hungarian/ParamHun.gf b/src/hungarian/ParamHun.gf index 34c9c783..c5e98c33 100644 --- a/src/hungarian/ParamHun.gf +++ b/src/hungarian/ParamHun.gf @@ -13,7 +13,19 @@ oper -------------------------------------------------------------------------------- -- Morphophonology +-------------------------------------------------------------------------------- +-- Quant +param + QuantType = Possessive | Article ; + +oper + -- standard trick to prevent "a one car" + isIndefArt : {qt : QuantType ; objdef : ObjDef} -> Bool = \quant -> + case of { + => True ; + _ => False + } ; -------------------------------------------------------------------------------- -- Nouns diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index fdf538c9..57ae10a1 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -89,13 +89,13 @@ oper Quant : Type = BaseQuant ** { s, -- form that comes before noun: "{this} car" sp : Number => Case => Str ; -- independent form, "I like {this}" (DetNP) - isIndefArt : Bool ; -- standard trick to prevent "a one car" + qt : QuantType ; } ; mkQuant : (s,sp : Str) -> Quant = \s,sp -> { s = mkCaseNoun s ; sp = mkCaseNoun sp ; - isIndefArt = False ; + qt = Article ; objdef = Def ; caseagr = True ; } ;