summaryrefslogtreecommitdiff
path: root/old-lib/resource/finnish/StructuralFin.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
committeraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
commite89fdae2fa1626348d8025824a7469252fa85e42 (patch)
treec7d46bbd0494043b4bd6f917a25a7687517d0547 /old-lib/resource/finnish/StructuralFin.gf
parent3049b59b35b25381a7c6787444165c200d66e08b (diff)
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'old-lib/resource/finnish/StructuralFin.gf')
-rw-r--r--old-lib/resource/finnish/StructuralFin.gf298
1 files changed, 298 insertions, 0 deletions
diff --git a/old-lib/resource/finnish/StructuralFin.gf b/old-lib/resource/finnish/StructuralFin.gf
new file mode 100644
index 000000000..43092fb23
--- /dev/null
+++ b/old-lib/resource/finnish/StructuralFin.gf
@@ -0,0 +1,298 @@
+concrete StructuralFin of Structural = CatFin **
+ open MorphoFin, ParadigmsFin, Prelude in {
+
+ flags optimize=all ;
+
+ lin
+ above_Prep = postGenPrep "yläpuolella" ;
+ after_Prep = postGenPrep "jälkeen" ;
+
+ all_Predet = {s = \\n,c =>
+ let
+ kaiket = caseTable n ((mkN "kaikki" "kaiken" "kaikkena"))
+ in
+ case npform2case n c of {
+ Nom => "kaikki" ;
+ k => kaiket ! k
+ }
+ } ;
+ almost_AdA, almost_AdN = ss "melkein" ;
+ although_Subj = ss "vaikka" ;
+ always_AdV = ss "aina" ;
+ and_Conj = {s1 = [] ; s2 = "ja" ; n = Pl} ;
+ because_Subj = ss "koska" ;
+ before_Prep = prePrep partitive "ennen" ;
+ behind_Prep = postGenPrep "takana" ;
+ between_Prep = postGenPrep "välissä" ;
+ both7and_DConj = sd2 "sekä" "että" ** {n = Pl} ;
+ but_PConj = ss "mutta" ;
+ by8agent_Prep = postGenPrep "toimesta" ;
+ by8means_Prep = casePrep adessive ;
+ can8know_VV = mkVV (mkV "osata" "osasi") ;
+ can_VV = mkVV (mkV "voida" "voi") ;
+ during_Prep = postGenPrep "aikana" ;
+ either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
+ everybody_NP = makeNP (mkN "jokainen") Sg ;
+ every_Det = mkDet Sg (mkN "jokainen") ;
+ everything_NP = makeNP (((mkN "kaikki" "kaiken" "kaikkena")) **
+ {lock_N = <>}) Sg ;
+ everywhere_Adv = ss "kaikkialla" ;
+ few_Det = mkDet Sg (mkN "harva") ;
+--- first_Ord = {s = \\n,c => (mkN "ensimmäinen").s ! NCase n c} ;
+ for_Prep = casePrep allative ;
+ from_Prep = casePrep elative ;
+ he_Pron = mkPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
+ here_Adv = ss "täällä" ;
+ here7to_Adv = ss "tänne" ;
+ here7from_Adv = ss "täältä" ;
+ how_IAdv = ss "miten" ;
+ how8many_IDet =
+ {s = \\c => "kuinka" ++ (mkN "moni" "monia").s ! NCase Sg c ; n = Sg ; isNum = False} ;
+ if_Subj = ss "jos" ;
+ in8front_Prep = postGenPrep "edessä" ;
+ i_Pron = mkPronoun "minä" "minun" "minua" "minuna" "minuun" Sg P1 ;
+ in_Prep = casePrep inessive ;
+ it_Pron = {
+ s = \\c => pronSe.s ! npform2case Sg c ;
+ a = agrP3 Sg ;
+ isPron = False
+ } ;
+ less_CAdv = ss "vähemmän" ;
+ many_Det = mkDet Sg (mkN "moni" "monia") ;
+ more_CAdv = ss "enemmän" ;
+ most_Predet = {s = \\n,c => (nForms2N (dSuurin "useinta")).s ! NCase n (npform2case n c)} ;
+ much_Det = mkDet Sg {s = \\_ => "paljon"} ;
+ must_VV = mkVV (caseV genitive (mkV "täytyä")) ;
+ no_Utt = ss "ei" ;
+ on_Prep = casePrep adessive ;
+--- one_Quant = mkDet Sg DEPREC
+ only_Predet = {s = \\_,_ => "vain"} ;
+ or_Conj = {s1 = [] ; s2 = "tai" ; n = Pl} ;
+ otherwise_PConj = ss "muuten" ;
+ part_Prep = casePrep partitive ;
+ please_Voc = ss ["ole hyvä"] ; --- number
+ possess_Prep = casePrep genitive ;
+ quite_Adv = ss "melko" ;
+ she_Pron = mkPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
+ so_AdA = ss "niin" ;
+ somebody_NP = {
+ s = \\c => jokuPron ! Sg ! npform2case Sg c ;
+ a = agrP3 Sg ;
+ isPron = False
+ } ;
+ someSg_Det = {
+ s1 = jokuPron ! Sg ;
+ s2 = [] ;
+ isNum,isPoss = False ; isDef = True ; n = Sg
+ } ;
+ somePl_Det = {
+ s1 = jokuPron ! Pl ;
+ s2 = [] ; isNum,isPoss = False ; isDef = True ;
+ n = Pl
+ } ;
+ something_NP = {
+ s = \\c => jokinPron ! Sg ! npform2case Sg c ;
+ a = agrP3 Sg ;
+ isPron = False
+ } ;
+ somewhere_Adv = ss "jossain" ;
+ that_Quant = {
+ s1 = table (MorphoFin.Number) {
+ Sg => table (MorphoFin.Case) {
+ c => (mkPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg P3).s ! NPCase c
+ } ;
+ Pl => table (MorphoFin.Case) {
+ c => (mkPronoun "nuo" "noiden" "noita" "noina" "noihin" Sg P3).s ! NPCase c
+ }
+ } ;
+ s2 = [] ; isNum,isPoss = False ; isDef = True ;
+ } ;
+ there_Adv = ss "siellä" ; --- tuolla
+ there7to_Adv = ss "sinne" ;
+ there7from_Adv = ss "sieltä" ;
+ therefore_PConj = ss "siksi" ;
+ they_Pron = mkPronoun "he" "heidän" "heitä" "heinä" "heihin" Pl P3 ; --- ne
+ this_Quant = {
+ s1 = table (MorphoFin.Number) {
+ Sg => table (MorphoFin.Case) {
+ c => (mkPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg P3).s ! NPCase c
+ } ;
+ Pl => table (MorphoFin.Case) {
+ c => (mkPronoun "nämä" "näiden" "näitä" "näinä" "näihin" Sg P3).s ! NPCase c
+ }
+ } ;
+ s2 = [] ; isNum,isPoss = False ; isDef = True ;
+ } ;
+ through_Prep = postGenPrep "kautta" ;
+ too_AdA = ss "liian" ;
+ to_Prep = casePrep illative ; --- allative
+ under_Prep = postGenPrep "alla" ;
+ very_AdA = ss "erittäin" ;
+ want_VV = mkVV (mkV "tahtoa") ;
+ we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
+ whatPl_IP = {
+ s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case Pl c} ;
+ n = Pl
+ } ;
+ whatSg_IP = {
+ s = \\c => mikaInt ! Sg ! npform2case Sg c ;
+ n = Sg
+ } ;
+ when_IAdv = ss "milloin" ;
+ when_Subj = ss "kun" ;
+ where_IAdv = ss "missä" ;
+ which_IQuant = {
+ s = mikaInt
+ } ;
+ whoSg_IP = {
+ s = table {NPAcc => "kenet" ; c => kukaInt ! Sg ! npform2case Sg c} ;
+ n = Sg
+ } ;
+ whoPl_IP = {
+ s = table {NPAcc => "ketkä" ; c => kukaInt ! Pl ! npform2case Pl c} ;
+ n = Pl
+ } ;
+ why_IAdv = ss "miksi" ;
+ without_Prep = prePrep partitive "ilman" ;
+ with_Prep = postGenPrep "kanssa" ;
+ yes_Utt = ss "kyllä" ;
+ youSg_Pron = mkPronoun "sinä" "sinun" "sinua" "sinuna" "sinuun" Sg P2 ;
+ youPl_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ;
+ youPol_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ; --- Sg
+
+
+oper
+ jokuPron : MorphoFin.Number => (MorphoFin.Case) => Str =
+ let
+ ku = mkN "ku" ;
+ kui = mkN "kuu"
+ in
+ table {
+ Sg => table {
+ Nom => "joku" ;
+ Gen => "jonkun" ;
+ c => relPron ! Sg ! c + ku.s ! NCase Sg c
+ } ;
+ Pl => table {
+ Nom => "jotkut" ;
+ c => relPron ! Pl ! c + kui.s ! NCase Pl c
+ }
+ } ;
+
+ jokinPron : MorphoFin.Number => (MorphoFin.Case) => Str =
+ table {
+ Sg => table {
+ Nom => "jokin" ;
+ Gen => "jonkin" ;
+ c => relPron ! Sg ! c + "kin"
+ } ;
+ Pl => table {
+ Nom => "jotkin" ;
+ c => relPron ! Pl ! c + "kin"
+ }
+ } ;
+
+ mikaInt : MorphoFin.Number => (MorphoFin.Case) => Str =
+ let {
+ mi = mkN "mi"
+ } in
+ table {
+ Sg => table {
+ Nom => "mikä" ;
+ Gen => "minkä" ;
+ Part => "mitä" ;
+ c => mi.s ! NCase Sg c
+ } ;
+ Pl => table {
+ Nom => "mitkä" ;
+ Gen => "minkä" ;
+ Part => "mitä" ;
+ c => mi.s ! NCase Sg c
+ }
+ } ;
+
+ kukaInt : MorphoFin.Number => (MorphoFin.Case) => Str =
+ let
+ kuka = mkN "kuka" "kenen" "kenä" "ketä" "keneen"
+ "keiden" "keitä" "keinä" "keissä" "keihin" ;
+ in
+ table {
+ Sg => table {
+ c => kuka.s ! NCase Sg c
+ } ;
+ Pl => table {
+ Nom => "ketkä" ;
+ c => kuka.s ! NCase Pl c
+ }
+ } ;
+ mikaanPron : MorphoFin.Number => (MorphoFin.Case) => Str = \\n,c =>
+ case <n,c> of {
+ <Sg,Nom> => "mikään" ;
+ <_,Part> => "mitään" ;
+ <Sg,Gen> => "minkään" ;
+ <Pl,Nom> => "mitkään" ;
+ <Pl,Gen> => "mittenkään" ;
+ <_,Ess> => "minään" ;
+ <_,Iness> => "missään" ;
+ <_,Elat> => "mistään" ;
+ <_,Adess> => "millään" ;
+ <_,Ablat> => "miltään" ;
+ _ => mikaInt ! n ! c + "kään"
+ } ;
+
+ kukaanPron : MorphoFin.Number => (MorphoFin.Case) => Str =
+ table {
+ Sg => table {
+ Nom => "kukaan" ;
+ Part => "ketään" ;
+ Ess => "kenään" ;
+ Iness => "kessään" ;
+ Elat => "kestään" ;
+ Illat => "kehenkään" ;
+ Adess => "kellään" ;
+ Ablat => "keltään" ;
+ c => kukaInt ! Sg ! c + "kään"
+ } ;
+ Pl => table {
+ Nom => "ketkään" ;
+ Part => "keitään" ;
+ Ess => "keinään" ;
+ Iness => "keissään" ;
+ Elat => "keistään" ;
+ Adess => "keillään" ;
+ Ablat => "keiltään" ;
+ c => kukaInt ! Pl ! c + "kään"
+ }
+ } ;
+
+ pronSe : ProperName = {
+ s = table {
+ Nom => "se" ;
+ Gen => "sen" ;
+ Part => "sitä" ;
+ Transl => "siksi" ;
+ Ess => "sinä" ;
+ Iness => "siinä" ;
+ Elat => "siitä" ;
+ Illat => "siihen" ;
+ Adess => "sillä" ;
+ Ablat => "siltä" ;
+ Allat => "sille" ;
+ Abess => "sittä"
+ } ;
+ } ;
+
+
+oper
+ makeNP : N -> MorphoFin.Number -> CatFin.NP ;
+ makeNP noun num = {
+ s = \\c => noun.s ! NCase num (npform2case num c) ;
+ a = agrP3 num ;
+ isPron = False ;
+ lock_NP = <>
+ } ;
+
+
+
+}
+