mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-10 19:52:50 -06:00
main problems of Finnish solved
This commit is contained in:
@@ -1,106 +1,121 @@
|
||||
concrete StructuralFin of Structural = CatFin **
|
||||
open MorphoFin, Prelude in {
|
||||
open MorphoFin, ParadigmsFin, Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
lin
|
||||
above_Prep = ss "above" ;
|
||||
after_Prep = ss "after" ;
|
||||
all_Predet = ss "all" ;
|
||||
almost_AdA, almost_AdN = ss "almost" ;
|
||||
although_Subj = ss "although" ;
|
||||
always_AdV = ss "always" ;
|
||||
and_Conj = ss "and" ** {n = Pl} ;
|
||||
because_Subj = ss "because" ;
|
||||
before_Prep = ss "before" ;
|
||||
behind_Prep = ss "behind" ;
|
||||
between_Prep = ss "between" ;
|
||||
both7and_DConj = sd2 "both" "and" ** {n = Pl} ;
|
||||
but_PConj = ss "but" ;
|
||||
by8agent_Prep = ss "by" ;
|
||||
by8means_Prep = ss "by" ;
|
||||
can8know_VV = verbPart (mkVerbIrreg "know" "knew" "known") "how"** {c2 = "to"} ;---
|
||||
can_VV = verbGen "manage" ** {c2 = "to"} ; ---
|
||||
during_Prep = ss "during" ;
|
||||
either7or_DConj = sd2 "either" "or" ** {n = Sg} ;
|
||||
everybody_NP = regNP "everybody" Sg ;
|
||||
every_Det = mkDeterminer Sg "every" ;
|
||||
everything_NP = regNP "everything" Sg ;
|
||||
everywhere_Adv = ss "everywhere" ;
|
||||
first_Ord = ss "first" ;
|
||||
from_Prep = ss "from" ;
|
||||
he_Pron = mkNP "he" "him" "his" Sg P3 ;
|
||||
here_Adv = ss "here" ;
|
||||
here7to_Adv = ss ["to here"] ;
|
||||
here7from_Adv = ss ["from here"] ;
|
||||
how_IAdv = ss "how" ;
|
||||
how8many_IDet = mkDeterminer Pl ["how many"] ;
|
||||
if_Subj = ss "if" ;
|
||||
in8front_Prep = ss ["in front of"] ;
|
||||
i_Pron = mkNP "I" "me" "my" Sg P1 ;
|
||||
in_Prep = ss "in" ;
|
||||
it_Pron = mkNP "it" "it" "its" Sg P3 ;
|
||||
less_CAdv = ss "less" ;
|
||||
many_Det = mkDeterminer Pl "many" ;
|
||||
more_CAdv = ss "more" ;
|
||||
most_Predet = ss "most" ;
|
||||
much_Det = mkDeterminer Sg "much" ;
|
||||
must_VV = mkVerb4 "have" "has" "had" "had" ** {c2 = "to"} ; ---
|
||||
no_Phr = ss "no" ;
|
||||
on_Prep = ss "on" ;
|
||||
one_Quant = mkDeterminer Sg "one" ;
|
||||
only_Predet = ss "only" ;
|
||||
or_Conj = ss "or" ** {n = Sg} ;
|
||||
otherwise_PConj = ss "otherwise" ;
|
||||
part_Prep = ss "of" ;
|
||||
please_Voc = ss "please" ;
|
||||
possess_Prep = ss "of" ;
|
||||
quite_Adv = ss "quite" ;
|
||||
she_Pron = mkNP "she" "her" "her" Sg P3 ;
|
||||
so_AdA = ss "so" ;
|
||||
somebody_NP = regNP "somebody" Sg ;
|
||||
someSg_Det = mkDeterminer Sg "some" ;
|
||||
somePl_Det = mkDeterminer Pl "some" ;
|
||||
something_NP = regNP "something" Sg ;
|
||||
somewhere_Adv = ss "somewhere" ;
|
||||
that_Quant = mkQuant "that" "those" ;
|
||||
that_NP = regNP "that" Sg ;
|
||||
there_Adv = ss "there" ;
|
||||
there7to_Adv = ss "there" ;
|
||||
there7from_Adv = ss ["from there"] ;
|
||||
therefore_PConj = ss "therefore" ;
|
||||
they_Pron = mkNP "they" "them" "their" Pl P3 ;
|
||||
this_Quant = mkQuant "this" "these" ;
|
||||
this_NP = regNP "this" Sg ;
|
||||
those_NP = regNP "those" Pl ;
|
||||
through_Prep = ss "through" ;
|
||||
too_AdA = ss "too" ;
|
||||
to_Prep = ss "to" ;
|
||||
under_Prep = ss "under" ;
|
||||
very_AdA = ss "very" ;
|
||||
want_VV = verbGen "want" ** {c2 = "to"} ;
|
||||
we_Pron = mkNP "we" "us" "our" Pl P1 ;
|
||||
whatPl_IP = mkIP "what" "what" "what's" Sg ;
|
||||
whatSg_IP = mkIP "what" "what" "what's" Sg ;
|
||||
when_IAdv = ss "when" ;
|
||||
when_Subj = ss "when" ;
|
||||
where_IAdv = ss "where" ;
|
||||
whichPl_IDet = mkDeterminer Pl ["which"] ;
|
||||
whichSg_IDet = mkDeterminer Sg ["which"] ;
|
||||
whoSg_IP = mkIP "who" "whom" "whose" Sg ;
|
||||
whoPl_IP = mkIP "who" "whom" "whose" Pl ;
|
||||
why_IAdv = ss "why" ;
|
||||
without_Prep = ss "without" ;
|
||||
with_Prep = ss "with" ;
|
||||
yes_Phr = ss "yes" ;
|
||||
youSg_Pron = mkNP "you" "you" "your" Sg P2 ;
|
||||
youPl_Pron = mkNP "you" "you" "your" Pl P2 ;
|
||||
youPol_Pron = mkNP "you" "you" "your" Sg P2 ;
|
||||
above_Prep = postGenPrep "yläpuolella" ;
|
||||
after_Prep = postGenPrep "jälkeen" ;
|
||||
|
||||
oper
|
||||
mkQuant : Str -> Str -> {s : Number => Str} = \x,y -> {
|
||||
s = table Number [x ; y]
|
||||
all_Predet = {s = \\n,c =>
|
||||
let
|
||||
kaiket = caseTable n (nhn (sKorpi "kaikki" "kaiken" "kaikkena"))
|
||||
in
|
||||
case c of {
|
||||
Nom => "kaikki" ;
|
||||
_ => kaiket ! c
|
||||
}
|
||||
} ;
|
||||
almost_AdA, almost_AdN = ss "melkein" ;
|
||||
although_Subj = ss "vaikka" ;
|
||||
always_AdV = ss "aina" ;
|
||||
and_Conj = ss "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 = reg2V "osata" "osasi" ;
|
||||
can_VV = regV "voida" ;
|
||||
during_Prep = postGenPrep "aikana" ;
|
||||
either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
|
||||
-- everybody_NP = regNP "everybody" Sg ;
|
||||
-- every_Det = mkDeterminer Sg "every" ;
|
||||
-- everything_NP = regNP "everything" Sg ;
|
||||
everywhere_Adv = ss "kaikkialla" ;
|
||||
-- first_Ord = ss "first" ;
|
||||
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 = mkDeterminer Pl ["how many"] ;
|
||||
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 => MorphoFin.pronSe.s ! npform2case c ;
|
||||
a = agrP3 Sg ;
|
||||
isPron = False
|
||||
} ;
|
||||
less_CAdv = ss "vähemmän" ;
|
||||
-- many_Det = mkDeterminer Pl "many" ;
|
||||
more_CAdv = ss "enemmän" ;
|
||||
-- most_Predet = ss "eniten" ;
|
||||
-- much_Det = mkDeterminer Sg "much" ;
|
||||
-- must_VV = mkVerb4 "have" "has" "had" "had" ** {c2 = "to"} ; ---
|
||||
no_Phr = ss "ei" ;
|
||||
on_Prep = casePrep adessive ;
|
||||
-- one_Quant = mkDeterminer Sg "one" ;
|
||||
only_Predet = {s = \\_,_ => "vain"} ;
|
||||
or_Conj = ss "tai" ** {n = Sg} ;
|
||||
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 = regNP "somebody" Sg ;
|
||||
-- someSg_Det = mkDeterminer Sg "some" ;
|
||||
-- somePl_Det = mkDeterminer Pl "some" ;
|
||||
-- something_NP = regNP "something" Sg ;
|
||||
somewhere_Adv = ss "jossain" ;
|
||||
-- that_Quant = mkQuant "that" "those" ;
|
||||
that_NP =
|
||||
mkPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg P3 **
|
||||
{isPron = False} ;
|
||||
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 = mkQuant "this" "these" ;
|
||||
this_NP =
|
||||
mkPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg P3 **
|
||||
{isPron = False} ;
|
||||
those_NP =
|
||||
mkPronoun "nuo" "noiden" "noita" "noina" "noihin" Pl P3 **
|
||||
{isPron = False} ;
|
||||
through_Prep = postGenPrep "kautta" ;
|
||||
too_AdA = ss "liian" ;
|
||||
to_Prep = casePrep illative ; --- allative
|
||||
under_Prep = postGenPrep "alla" ;
|
||||
very_AdA = ss "erittäin" ;
|
||||
want_VV = regV "tahtoa" ;
|
||||
we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
|
||||
-- whatPl_IP = mkIP "what" "what" "what's" Sg ;
|
||||
-- whatSg_IP = mkIP "what" "what" "what's" Sg ;
|
||||
when_IAdv = ss "milloin" ;
|
||||
when_Subj = ss "kun" ;
|
||||
where_IAdv = ss "missä" ;
|
||||
-- whichPl_IDet = mkDeterminer Pl ["which"] ;
|
||||
-- whichSg_IDet = mkDeterminer Sg ["which"] ;
|
||||
-- whoSg_IP = mkIP "who" "whom" "whose" Sg ;
|
||||
-- whoPl_IP = mkIP "who" "whom" "whose" Pl ;
|
||||
why_IAdv = ss "miksi" ;
|
||||
without_Prep = prePrep partitive "ilman" ;
|
||||
with_Prep = postGenPrep "kanssa" ;
|
||||
yes_Phr = 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
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user