From d14589804e1cc64d1e067d1d8dcf67744427d696 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 12 Mar 2013 20:01:07 +0000 Subject: [PATCH] worst case of Fin mkA; default case endings for Fin symbol as PN --- lib/src/finnish/MorphoFin.gf | 15 +++++++++++++++ lib/src/finnish/ParadigmsFin.gf | 19 +++++++++++++++++-- lib/src/finnish/SymbolFin.gf | 8 ++++---- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/lib/src/finnish/MorphoFin.gf b/lib/src/finnish/MorphoFin.gf index 84e0854fa..3117e8b2b 100644 --- a/lib/src/finnish/MorphoFin.gf +++ b/lib/src/finnish/MorphoFin.gf @@ -951,5 +951,20 @@ oper } ; } ; + defaultCaseEnding : Case -> Str = \c -> case c of { + Nom => "" ; + Gen => "n" ; + Part => "a" ; + Transl => "ksi" ; + Ess => "na" ; + Iness => "ssa" ; + Elat => "sta" ; + Illat => "an" ; + Adess => "lla" ; + Ablat => "lta" ; + Allat => "lle" ; + Abess => "tta" + } ; + } diff --git a/lib/src/finnish/ParadigmsFin.gf b/lib/src/finnish/ParadigmsFin.gf index af4c43c99..d3ab3b5de 100644 --- a/lib/src/finnish/ParadigmsFin.gf +++ b/lib/src/finnish/ParadigmsFin.gf @@ -483,8 +483,23 @@ oper mkA : N -> (kivempaa,kivinta : Str) -> A = regAdjective ; mkA : (sana : AK) -> A = \w -> noun2adjDeg (nForms2N w.s) ; --- mkA : (hyva,parempi,paras : N) -> (hyvin,paremmin,parhaiten : Str) -> A ; - } ; + mkA : (hyva,parempi,paras : N) -> (hyvin,paremmin,parhaiten : Str) -> A = \h,p,ps,hn,pn,ph -> lin A { + s = table { + Posit => table { + AN nf => h.s ! nf ; + AAdv => hn + } ; + Compar => table { + AN nf => p.s ! nf ; + AAdv => pn + } ; + Superl => table { + AN nf => ps.s ! nf ; + AAdv => ph + } + } + } ; + } ; mkA_1 : Str -> A = \x -> noun2adjDeg (mk1N x) ** {lock_A = <>} ; diff --git a/lib/src/finnish/SymbolFin.gf b/lib/src/finnish/SymbolFin.gf index 4be642d84..2409570cf 100644 --- a/lib/src/finnish/SymbolFin.gf +++ b/lib/src/finnish/SymbolFin.gf @@ -1,11 +1,11 @@ --# -path=.:../abstract:../common -concrete SymbolFin of Symbol = CatFin ** open Prelude, NounFin, ResFin in { +concrete SymbolFin of Symbol = CatFin ** open Prelude, NounFin, ResFin, MorphoFin in { lin - SymbPN i = {s = \\c => i.s} ; --- c - IntPN i = {s = \\c => i.s} ; --- c - FloatPN i = {s = \\c => i.s} ; --- c + SymbPN i = {s = \\c => i.s ++ BIND ++ defaultCaseEnding c} ; --- c + IntPN i = {s = \\c => i.s ++ BIND ++ ":" ++ BIND ++ defaultCaseEnding c} ; --- c + FloatPN i = {s = \\c => i.s ++ BIND ++ ":" ++ BIND ++ defaultCaseEnding c} ; --- c NumPN i = {s = \\c => i.s!Sg!Nom } ; --- c CNIntNP cn i = {