From 2665910dc2a05f44acc0c86613bc49c22d2a3c03 Mon Sep 17 00:00:00 2001 From: Ayberk Tosun Date: Tue, 22 Aug 2017 11:38:38 +0300 Subject: [PATCH] Define the param UseGen and make use of that --- src/turkish/CatTur.gf | 4 ++-- src/turkish/NounTur.gf | 12 +++++++++--- src/turkish/ParadigmsTur.gf | 2 +- src/turkish/ResTur.gf | 2 ++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/turkish/CatTur.gf b/src/turkish/CatTur.gf index 50f9541e2..228d32609 100644 --- a/src/turkish/CatTur.gf +++ b/src/turkish/CatTur.gf @@ -11,11 +11,11 @@ concrete CatTur of Cat = CommonX ** open ResTur, Prelude in { NP = {s : Case => Str ; a : Agr} ; Pron = ResTur.Pron ; - Det = {s : Str; n : Number; useGen : Bool} ; + Det = {s : Str; n : Number; useGen : UseGen} ; Num = {s : Number => Case => Str; n : Number} ; Card = {s : Number => Case => Str} ; Ord = {s : Number => Case => Str} ; - Quant = {s : Str; useGen : Bool} ; + Quant = {s : Str; useGen : UseGen} ; Prep = {s : Str; c : Case} ; Numeral = {s : CardOrd => Number => Case => Str ; n : Number} ; diff --git a/src/turkish/NounTur.gf b/src/turkish/NounTur.gf index 86cd593ad..3833cfe45 100644 --- a/src/turkish/NounTur.gf +++ b/src/turkish/NounTur.gf @@ -6,12 +6,18 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude lin DetCN det cn = { - s = \\c => det.s ++ cn.s ! det.n ! c ; + s = + case det.useGen of { + NoGen => \\c => det.s ++ cn.s ! det.n ! c ; + YesGen a => \\c => det.s ++ cn.gen ! det.n ! a + } ; a = agrP3 det.n } ; UsePron p = p ; + PossPron p = {s = []; useGen = YesGen p.a} ; + DetQuant quant num = { s = quant.s ++ num.s ! Sg ! Nom ; n = num.n; @@ -29,8 +35,8 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude OrdNumeral num = {s = \\c => num.s ! NOrd ! c} ; OrdSuperl a = {s = \\n,c => "en" ++ a.s ! n ! c} ; - DefArt = {s = []; useGen = False} ; - IndefArt = {s = []; useGen = False} ; + DefArt = {s = []; useGen = NoGen} ; + IndefArt = {s = []; useGen = NoGen} ; UseN n = n ; diff --git a/src/turkish/ParadigmsTur.gf b/src/turkish/ParadigmsTur.gf index 698062f94..8eb666d6e 100644 --- a/src/turkish/ParadigmsTur.gf +++ b/src/turkish/ParadigmsTur.gf @@ -507,7 +507,7 @@ oper dat_Case : Prep = mkPrep [] Dat; acc_Case : Prep = mkPrep [] Dat; - mkQuant : Str -> Quant = \s -> lin Quant {s=s; useGen = False} ; + mkQuant : Str -> Quant = \s -> lin Quant {s=s; useGen = NoGen} ; param AoristType = PlSyl -- more than one syllable, takes -ir diff --git a/src/turkish/ResTur.gf b/src/turkish/ResTur.gf index ab965c899..ac7d3f423 100644 --- a/src/turkish/ResTur.gf +++ b/src/turkish/ResTur.gf @@ -34,6 +34,8 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in { | VInfinitive ; + UseGen = NoGen | YesGen Agr; + oper Verb : Type = { s : VForm => Str