From d98bb99fc1de9f47796205e23287690a42326299 Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Tue, 30 Jan 2024 16:23:17 +0100 Subject: [PATCH] added missing InLN and dayMonthYearAdv in Fin --- src/finnish/CatFin.gf | 2 +- src/finnish/ConstructionFin.gf | 7 ++++--- src/finnish/NamesFin.gf | 10 +++------- src/finnish/ParadigmsFin.gf | 10 ++++++---- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/finnish/CatFin.gf b/src/finnish/CatFin.gf index 7e93e5b41..849e8ad6a 100644 --- a/src/finnish/CatFin.gf +++ b/src/finnish/CatFin.gf @@ -97,7 +97,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, StemFin, Prelude in { N2 = SNoun ** {c2 : Compl ; isPre : Bool ; postmod : Number => Str} ; N3 = SNoun ** {c2,c3 : Compl ; isPre,isPre2 : Bool} ; PN = SPN ; - LN = SPN ** {n : Number} ; + LN = SPN ** {n : Number ; extCase : Bool} ; -- extCase=True -> Adessive, Ablative, Allative GN = SPN ** {g : Sex} ; SN = {s : Sex => SPN; pl : SPN} ; diff --git a/src/finnish/ConstructionFin.gf b/src/finnish/ConstructionFin.gf index 0d7e3f327..047cb2638 100644 --- a/src/finnish/ConstructionFin.gf +++ b/src/finnish/ConstructionFin.gf @@ -74,9 +74,10 @@ lin yearAdv y = SyntaxFin.mkAdv (prePrep nominative "vuonna") y ; dayMonthAdv d m = ParadigmsFin.mkAdv ((mkUtt d).s ++ BIND ++ "." ++ (mkUtt (mkNP m)).s) ; monthYearAdv m y = SyntaxFin.mkAdv in_Prep (mkNP (mkNP m) (SyntaxFin.mkAdv (casePrep nominative) y)) ; ----- dayMonthYearAdv d m y = ----- lin Adv {s = d.s ! R.NPCase R.Nom ++ BIND ++ "." ++ m.s ! R.NCase R.Sg R.Part ++ y.s ! R.NPCase R.Nom} ; - + dayMonthYearAdv d m y = + ParadigmsFin.mkAdv ((mkUtt d).s ++ BIND ++ "." ++ + (SyntaxFin.mkAdv part_Prep (mkNP m)).s ++ + (SyntaxFin.mkAdv (casePrep nominative) y).s) ; intYear = symb ; intMonthday = symb ; diff --git a/src/finnish/NamesFin.gf b/src/finnish/NamesFin.gf index 8ecbf92f1..3bc888844 100644 --- a/src/finnish/NamesFin.gf +++ b/src/finnish/NamesFin.gf @@ -32,12 +32,8 @@ lin UseLN, PlainLN = \ln -> { isPron = False ; isNeg = False } ; -lin InLP ln = { - s = appCompl True Pos ln.c { s = snoun2np ln.n ln ; - a = agrP3 ln.n ; - isPron = False ; - isNeg = False - } - } ; +lin InLN ln = + let c = case ln.extCase of {True => Adess ; False => Iness} + in {s = ln.s ! c} ; } diff --git a/src/finnish/ParadigmsFin.gf b/src/finnish/ParadigmsFin.gf index 87d0028b4..a726bd573 100644 --- a/src/finnish/ParadigmsFin.gf +++ b/src/finnish/ParadigmsFin.gf @@ -843,10 +843,12 @@ mkVS = overload { } ; mkLN = overload { - mkLN : Str -> LN = \s -> lin LN (snoun2spn (mk1N s) ** {n = Sg}) ; - mkLN : Str -> Number -> LN = \s,n -> lin LN (snoun2spnGen (mk1N s) n ** {n = n}) ; - mkLN : N -> LN = \noun -> lin LN (snoun2spn noun ** {n = Sg}) ; - mkLN : N -> Number -> LN = \noun,n -> lin LN (snoun2spnGen noun n ** {n = n}) ; + mkLN : Str -> LN = \s -> lin LN (snoun2spn (mk1N s) ** {n = Sg ; extCase = False}) ; + mkLN : Str -> Number -> LN = \s,n -> lin LN (snoun2spnGen (mk1N s) n ** {n = n ; extCase = False}) ; + mkLN : N -> LN = \noun -> lin LN (snoun2spn noun ** {n = Sg ; extCase = False}) ; + mkLN : N -> Number -> LN = \noun,n -> lin LN (snoun2spnGen noun n ** {n = n ; extCase = False}) ; + mkLN : Str -> Number -> Bool -> LN = \s,n,c -> lin LN (snoun2spnGen (mk1N s) n ** {n = n ; extCase = c}) ; + mkLN : N -> Number -> Bool -> LN = \noun,n,c -> lin LN (snoun2spnGen noun n ** {n = n ; extCase = c}) ; } ; mkGN = overload {