forked from GitHub/gf-core
working on Finnish
This commit is contained in:
@@ -435,25 +435,16 @@ reg3Noun : (_,_,_ : Str) -> CommonNoun = \vesi,veden,vesi
|
|||||||
ve = init ves ;
|
ve = init ves ;
|
||||||
ved = Predef.tk 2 veden ;
|
ved = Predef.tk 2 veden ;
|
||||||
sRae_vesi = sRae vesi (veden + a) ;
|
sRae_vesi = sRae vesi (veden + a) ;
|
||||||
sKukko_vesi = sKukko vesi veden vesiä
|
|
||||||
in
|
in
|
||||||
case si of {
|
case si of {
|
||||||
"aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" => sPuu vesi ;
|
"aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" => sPuu vesi ;
|
||||||
"ie" | "uo" | "yö" => sSuo vesi ;
|
"ie" | "uo" | "yö" => sSuo vesi ;
|
||||||
"is" => sNauris (vesi + ("t" + a)) ;
|
"is" => sNauris (vesi + ("t" + a)) ;
|
||||||
"ut" | "yt" => sRae vesi (ves + ("en" + a)) ;
|
"ut" | "yt" => sRae vesi (ves + ("en" + a)) ;
|
||||||
"si" =>
|
|
||||||
ifTok CommonNoun d s
|
|
||||||
sKukko_vesi
|
|
||||||
(sSusi vesi veden (ve + ("ten" + a))) ;
|
|
||||||
"us" | "ys" =>
|
"us" | "ys" =>
|
||||||
ifTok CommonNoun d "s"
|
ifTok CommonNoun d "s"
|
||||||
(sTilaus vesi (veden + a))
|
(sTilaus vesi (veden + a))
|
||||||
(sRakkaus vesi) ;
|
(sRakkaus vesi) ;
|
||||||
"ki" | "pi" | "ti" =>
|
|
||||||
ifTok CommonNoun d s
|
|
||||||
sKukko_vesi
|
|
||||||
(sKorpi vesi veden (ves + ("en" + a))) ;
|
|
||||||
_ => case esi of {
|
_ => case esi of {
|
||||||
"nen" => sNainen (Predef.tk 3 vesi + ("st" + a)) ;
|
"nen" => sNainen (Predef.tk 3 vesi + ("st" + a)) ;
|
||||||
_ => case esiä of {
|
_ => case esiä of {
|
||||||
@@ -462,14 +453,15 @@ reg3Noun : (_,_,_ : Str) -> CommonNoun = \vesi,veden,vesi
|
|||||||
"een" => sRae_vesi ;
|
"een" => sRae_vesi ;
|
||||||
_ => case i of {
|
_ => case i of {
|
||||||
"a" | "ä" => sKukko vesi veden vesiä ;
|
"a" | "ä" => sKukko vesi veden vesiä ;
|
||||||
"i" => sBaari (vesi + a) ;
|
"i" => case (last (init vesiä)) of {
|
||||||
|
"i" => case s of {
|
||||||
|
"s" => sSusi vesi veden (ve + ("ten" + a)) ;
|
||||||
|
_ => sKorpi vesi veden (veden + a)
|
||||||
|
} ;
|
||||||
|
_ => sBaari (vesi + a)
|
||||||
|
} ;
|
||||||
"o" | "u" | "y" | "ö" => sKukko vesi veden vesiä ;
|
"o" | "u" | "y" | "ö" => sKukko vesi veden vesiä ;
|
||||||
_ => sLinux (vesi + "i" + a)
|
_ => sLinux (vesi + "i" + a)
|
||||||
{-
|
|
||||||
_ => case i of {
|
|
||||||
"b" | "c" | "d" | "f" | "g" | "h" | "j" | "k" | "l" | "m" | "n" |
|
|
||||||
"p" | "q" | "r" | "s" | "t" | "v" | "w" | "x" | "z" => sLinux (vesi + "i" + a)
|
|
||||||
-}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -864,7 +856,10 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
|||||||
tuje = weakGrade tule ;
|
tuje = weakGrade tule ;
|
||||||
tuji = weakGrade (init tuli) + "i" ; ---
|
tuji = weakGrade (init tuli) + "i" ; ---
|
||||||
a = Predef.dp 1 tulkaa ;
|
a = Predef.dp 1 tulkaa ;
|
||||||
vat = "v" + a + "t" ;
|
tulleena = Predef.tk 2 tullut + ("een" + a) ;
|
||||||
|
tulleen = (sRae tullut tulleena).s ;
|
||||||
|
tullun = (sKukko tultu (weakGrade tultu + "n") (tultu + ("j"+a))).s ;
|
||||||
|
vat = "v" + a + "t"
|
||||||
in
|
in
|
||||||
{s = table {
|
{s = table {
|
||||||
Inf => tulla ;
|
Inf => tulla ;
|
||||||
@@ -891,88 +886,12 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
|||||||
ImpNegPl => Predef.tk 2 tulkaa + (ifTok Str a "a" "o" "ö") ;
|
ImpNegPl => Predef.tk 2 tulkaa + (ifTok Str a "a" "o" "ö") ;
|
||||||
Pass True => tullaan ;
|
Pass True => tullaan ;
|
||||||
Pass False => Predef.tk 2 tullaan ;
|
Pass False => Predef.tk 2 tullaan ;
|
||||||
PastPartAct n => tullut ; ---- (regNoun tullut).s ! n ; ----
|
PastPartAct n => tulleen ! n ;
|
||||||
PastPartPass n => tultu ---- (sLukko tultu).s ! n
|
PastPartPass n => tullun ! n
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
{- ----
|
--- the following are correct, but blow up the size
|
||||||
mk4Verb : (_,_,_,_,_ : Str) -> Verb =
|
|
||||||
\tulla,tulen,tulee,tuli,tulisi ->
|
|
||||||
let
|
|
||||||
tuje = init tulen ;
|
|
||||||
tuj = init tuje ;
|
|
||||||
tule = case Predef.dp 2 tulee of {
|
|
||||||
"ie" | "uo" | "yö" => tulee ;
|
|
||||||
_ => init tulee
|
|
||||||
} ;
|
|
||||||
tuji = weakGrade tuli ; ---
|
|
||||||
a = Predef.dp 1 tulla ;
|
|
||||||
aa = a + a ;
|
|
||||||
vat = "v" + a + "t" ;
|
|
||||||
y = case a of {"a" => "u" ; _ => "y"} ;
|
|
||||||
|
|
||||||
in
|
|
||||||
{s = table {
|
|
||||||
Inf => tulla ;
|
|
||||||
Pres Sg P1 => tuje + "n" ;
|
|
||||||
Pres Sg P2 => tuje + "t" ;
|
|
||||||
Pres Sg P3 => tulee ;
|
|
||||||
Pres Pl P1 => tuje + "mme" ;
|
|
||||||
Pres Pl P2 => tuje + "tte" ;
|
|
||||||
Pres Pl P3 => tule + vat ;
|
|
||||||
Impf Sg P1 => tuji + "n" ;
|
|
||||||
Impf Sg P2 => tuji + "t" ;
|
|
||||||
Impf Sg P3 => tuli ;
|
|
||||||
Impf Pl P1 => tuji + "mme" ;
|
|
||||||
Impf Pl P2 => tuji + "tte" ;
|
|
||||||
Impf Pl P3 => tuli + vat ;
|
|
||||||
Cond Sg P1 => tulisi + "n" ;
|
|
||||||
Cond Sg P2 => tulisi + "t" ;
|
|
||||||
Cond Sg P3 => tulisi ;
|
|
||||||
Cond Pl P1 => tulisi + "mme" ;
|
|
||||||
Cond Pl P2 => tulisi + "tte" ;
|
|
||||||
Cond Pl P3 => tulisi + vat ;
|
|
||||||
Imper Sg => tuje ;
|
|
||||||
Imper Pl => tule + "k" + a + a ;
|
|
||||||
ImpNegPl => tule + "k" + (ifTok Str a "a" "o" "ö") ;
|
|
||||||
Pass True => tuj + "et" + aa + "n" ;
|
|
||||||
Pass False => tuj + "et" + a ;
|
|
||||||
PastPartAct n => tule + "n" + y + "t" ; ---- (regNoun tullut).s ! n ; ----
|
|
||||||
PastPartPass n => tuj + "ett" + y ---- (sLukko tultu).s ! n
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-}
|
|
||||||
|
|
||||||
regVerb : Str -> Verb = \haukkua ->
|
|
||||||
let
|
|
||||||
ua = Predef.dp 2 haukkua ;
|
|
||||||
a = last ua ;
|
|
||||||
haukku = init haukkua ;
|
|
||||||
hauku = weakGrade haukku ;
|
|
||||||
haukk = init haukku ;
|
|
||||||
hauk = init hauku ;
|
|
||||||
hau = init hauk ;
|
|
||||||
aa = a + a ;
|
|
||||||
u = last haukku ;
|
|
||||||
y = case a of {"a" => "u" ; _ => "y"} ;
|
|
||||||
in
|
|
||||||
case ua of {
|
|
||||||
"aa" | "ää" =>
|
|
||||||
mkVerb
|
|
||||||
haukkua (haukku + u) (haukku +"k"+aa)
|
|
||||||
(hauk + "et"+aa+"n") (haukk +"i") (haukku +"isi")
|
|
||||||
(haukku + "n"+y+"t") (hauk + "ett"+y) ;
|
|
||||||
"ua" | "yä" | "oa" | "öä" =>
|
|
||||||
mkVerb
|
|
||||||
haukkua (haukku + u) (haukku +"k"+aa)
|
|
||||||
(hauku + "t"+aa+"n") (haukku +"i") (haukku +"isi")
|
|
||||||
(haukku + "n"+y+"t") (hauku + "tt"+y) ;
|
|
||||||
_ => variants {}
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- For "harppoa", "hukkua", "löytyä", with grade alternation.
|
-- For "harppoa", "hukkua", "löytyä", with grade alternation.
|
||||||
|
|
||||||
@@ -984,39 +903,53 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
|||||||
} in
|
} in
|
||||||
mkVerb
|
mkVerb
|
||||||
hukkua
|
hukkua
|
||||||
(huku + "n")
|
|
||||||
(hukku + u)
|
(hukku + u)
|
||||||
(hukku + (("v" + a) + "t"))
|
|
||||||
(hukku + (("k" + a) + a))
|
(hukku + (("k" + a) + a))
|
||||||
(huku + ((("t" + a) + a) + "n")) ;
|
(huku + ((("t" + a) + a) + "n"))
|
||||||
|
(hukku + "i")
|
||||||
|
(hukku + "isi")
|
||||||
|
(hukku + "n" + u + "t")
|
||||||
|
(huku + "tt" + u) ;
|
||||||
|
|
||||||
-- For cases without alternation: "sanoa", "valua", "kysyä".
|
|
||||||
|
-- For cases with or without alternation: "sanoa", "valua", "kysyä".
|
||||||
|
|
||||||
vSanoa : Str -> Verb = \sanoa ->
|
vSanoa : Str -> Verb = \sanoa ->
|
||||||
vHukkua sanoa (Predef.tk 1 sanoa) ;
|
vHukkua sanoa (weakGrade (Predef.tk 1 sanoa)) ;
|
||||||
|
|
||||||
-- For "ottaa", "käyttää", "löytää", "huoltaa", "hiihtää", "siirtää".
|
-- For "ottaa", "käyttää", "löytää", "huoltaa", "hiihtää", "siirtää".
|
||||||
|
|
||||||
vOttaa : (_,_ : Str) -> Verb = \ottaa,otan ->
|
vHuoltaa : (_,_,_ : Str) -> Verb = \ottaa,otan,otti ->
|
||||||
let {
|
let {
|
||||||
a = Predef.dp 1 ottaa ;
|
a = Predef.dp 1 ottaa ;
|
||||||
|
u = case a of {"a" => "u" ; _ => "y"} ;
|
||||||
ota = Predef.tk 1 otan ;
|
ota = Predef.tk 1 otan ;
|
||||||
otta = Predef.tk 1 ottaa ;
|
otta = Predef.tk 1 ottaa ;
|
||||||
ote = Predef.tk 1 ota + "e"
|
ote = Predef.tk 1 ota + "e"
|
||||||
} in
|
} in
|
||||||
mkVerb
|
mkVerb
|
||||||
ottaa
|
ottaa
|
||||||
(ota + "n")
|
|
||||||
ottaa
|
ottaa
|
||||||
(otta + (("v" + a) + "t"))
|
|
||||||
(otta + (("k" + a) + a))
|
(otta + (("k" + a) + a))
|
||||||
(ote + ((("t" + a) + a) + "n")) ;
|
(ote + ((("t" + a) + a) + "n"))
|
||||||
|
otti
|
||||||
|
(otta + "isi")
|
||||||
|
(otta + "n" + u + "t")
|
||||||
|
(ote + "tt" + u) ;
|
||||||
|
|
||||||
|
-- For cases where grade alternation is not affected by the imperfect "i".
|
||||||
|
|
||||||
|
vOttaa : (_,_ : Str) -> Verb = \ottaa,otan ->
|
||||||
|
vHuoltaa ottaa otan (Predef.tk 2 ottaa + "i") ;
|
||||||
|
|
||||||
-- For "poistaa", "ryystää".
|
-- For "poistaa", "ryystää".
|
||||||
|
|
||||||
vPoistaa : Str -> Verb = \poistaa ->
|
vPoistaa : Str -> Verb = \poistaa ->
|
||||||
vOttaa poistaa (Predef.tk 1 poistaa + "n") ;
|
vOttaa poistaa (weakGrade (Predef.tk 2 poistaa + "n")) ;
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
{-
|
||||||
-- For "osata", "lisätä"
|
-- For "osata", "lisätä"
|
||||||
|
|
||||||
vOsata : Str -> Verb = \osata ->
|
vOsata : Str -> Verb = \osata ->
|
||||||
|
|||||||
Reference in New Issue
Block a user