mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
started adjectives in uusisuomi
This commit is contained in:
@@ -10,7 +10,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
let
|
let
|
||||||
lujuu = init lujuus ;
|
lujuu = init lujuus ;
|
||||||
lujuuksi = lujuu + "ksi" ;
|
lujuuksi = lujuu + "ksi" ;
|
||||||
a = vowelHarmony (last lujuu) ;
|
a = vowHarmony (last lujuu) ;
|
||||||
in nForms10
|
in nForms10
|
||||||
lujuus (lujuu + "den") (lujuu + "tt" + a)
|
lujuus (lujuu + "den") (lujuu + "tt" + a)
|
||||||
(lujuu + "ten" + a) (lujuu + "teen")
|
(lujuu + "ten" + a) (lujuu + "teen")
|
||||||
@@ -19,7 +19,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dNainen : Str -> NForms = \nainen ->
|
dNainen : Str -> NForms = \nainen ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony nainen ;
|
a = vowHarmony nainen ;
|
||||||
nais = Predef.tk 3 nainen + "s"
|
nais = Predef.tk 3 nainen + "s"
|
||||||
in nForms10
|
in nForms10
|
||||||
nainen (nais + "en") (nais + "t" + a) (nais + "en" + a) (nais + "een")
|
nainen (nais + "en") (nais + "t" + a) (nais + "en" + a) (nais + "een")
|
||||||
@@ -28,7 +28,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dPuu : Str -> NForms = \puu ->
|
dPuu : Str -> NForms = \puu ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony puu ;
|
a = vowHarmony puu ;
|
||||||
pui = init puu + "i" ;
|
pui = init puu + "i" ;
|
||||||
u = last puu ;
|
u = last puu ;
|
||||||
in nForms10
|
in nForms10
|
||||||
@@ -39,7 +39,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
dSuo : Str -> NForms = \suo ->
|
dSuo : Str -> NForms = \suo ->
|
||||||
let
|
let
|
||||||
o = last suo ;
|
o = last suo ;
|
||||||
a = vowelHarmony o ;
|
a = vowHarmony o ;
|
||||||
soi = Predef.tk 2 suo + o + "i" ;
|
soi = Predef.tk 2 suo + o + "i" ;
|
||||||
in nForms10
|
in nForms10
|
||||||
suo (suo + "n") (suo + "t" + a) (suo + "n" + a) (suo + "h" + o + "n")
|
suo (suo + "n") (suo + "t" + a) (suo + "n" + a) (suo + "h" + o + "n")
|
||||||
@@ -59,7 +59,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dKaunis : Str -> NForms = \kaunis ->
|
dKaunis : Str -> NForms = \kaunis ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony kaunis ;
|
a = vowHarmony kaunis ;
|
||||||
kaunii = init kaunis + "i" ;
|
kaunii = init kaunis + "i" ;
|
||||||
in nForms10
|
in nForms10
|
||||||
kaunis (kaunii + "n") (kaunis + "t" + a)
|
kaunis (kaunii + "n") (kaunis + "t" + a)
|
||||||
@@ -70,7 +70,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dLiitin : (_,_ : Str) -> NForms = \liitin,liittimen ->
|
dLiitin : (_,_ : Str) -> NForms = \liitin,liittimen ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony liitin ;
|
a = vowHarmony liitin ;
|
||||||
liittim = Predef.tk 2 liittimen ;
|
liittim = Predef.tk 2 liittimen ;
|
||||||
in nForms10
|
in nForms10
|
||||||
liitin (liittim + "en") (liitin + "t" + a)
|
liitin (liittim + "en") (liitin + "t" + a)
|
||||||
@@ -81,7 +81,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dOnneton : Str -> NForms = \onneton ->
|
dOnneton : Str -> NForms = \onneton ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony onneton ;
|
a = vowHarmony onneton ;
|
||||||
onnettom = Predef.tk 2 onneton + "t" + last (init onneton) + "m" ;
|
onnettom = Predef.tk 2 onneton + "t" + last (init onneton) + "m" ;
|
||||||
in nForms10
|
in nForms10
|
||||||
onneton (onnettom + a + "n") (onneton + "t" + a)
|
onneton (onnettom + a + "n") (onneton + "t" + a)
|
||||||
@@ -94,7 +94,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
dUkko : (_,_ : Str) -> NForms = \ukko,ukon ->
|
dUkko : (_,_ : Str) -> NForms = \ukko,ukon ->
|
||||||
let
|
let
|
||||||
o = last ukko ;
|
o = last ukko ;
|
||||||
a = vowelHarmony o ;
|
a = vowHarmony o ;
|
||||||
ukk = init ukko ;
|
ukk = init ukko ;
|
||||||
uko = init ukon ;
|
uko = init ukon ;
|
||||||
uk = init uko ;
|
uk = init uko ;
|
||||||
@@ -147,7 +147,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dArpi : (_,_ : Str) -> NForms = \arpi,arven ->
|
dArpi : (_,_ : Str) -> NForms = \arpi,arven ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony arpi ;
|
a = vowHarmony arpi ;
|
||||||
arp = init arpi ;
|
arp = init arpi ;
|
||||||
arv = Predef.tk 2 arven ;
|
arv = Predef.tk 2 arven ;
|
||||||
ar = init arp ;
|
ar = init arp ;
|
||||||
@@ -172,7 +172,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dRae : (_,_ : Str) -> NForms = \rae,rakeen ->
|
dRae : (_,_ : Str) -> NForms = \rae,rakeen ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony rae ;
|
a = vowHarmony rae ;
|
||||||
rakee = init rakeen ;
|
rakee = init rakeen ;
|
||||||
rakei = init rakee + "i" ;
|
rakei = init rakee + "i" ;
|
||||||
raetta = case <rae : Str> of {
|
raetta = case <rae : Str> of {
|
||||||
@@ -193,7 +193,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dPaatti : (_,_ : Str) -> NForms = \paatti,paatin ->
|
dPaatti : (_,_ : Str) -> NForms = \paatti,paatin ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony paatti ;
|
a = vowHarmony paatti ;
|
||||||
paatte = init paatti + "e" ;
|
paatte = init paatti + "e" ;
|
||||||
paati = init paatin ;
|
paati = init paatin ;
|
||||||
paate = init paati + "e" ;
|
paate = init paati + "e" ;
|
||||||
@@ -204,7 +204,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dTohtori : (_ : Str) -> NForms = \tohtori ->
|
dTohtori : (_ : Str) -> NForms = \tohtori ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony tohtori ;
|
a = vowHarmony tohtori ;
|
||||||
tohtor = init tohtori ;
|
tohtor = init tohtori ;
|
||||||
in nForms10
|
in nForms10
|
||||||
tohtori (tohtori+"n") (tohtori + a) (tohtori + "n" + a) (tohtori + "in")
|
tohtori (tohtori+"n") (tohtori + a) (tohtori + "n" + a) (tohtori + "in")
|
||||||
@@ -213,7 +213,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dPiennar : (_,_ : Str) -> NForms = \piennar,pientaren ->
|
dPiennar : (_,_ : Str) -> NForms = \piennar,pientaren ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony piennar ;
|
a = vowHarmony piennar ;
|
||||||
pientar = Predef.tk 2 pientaren ;
|
pientar = Predef.tk 2 pientaren ;
|
||||||
in nForms10
|
in nForms10
|
||||||
piennar pientaren (piennar +"t" + a)
|
piennar pientaren (piennar +"t" + a)
|
||||||
@@ -223,7 +223,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dUnix : (_ : Str) -> NForms = \unix ->
|
dUnix : (_ : Str) -> NForms = \unix ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony unix ;
|
a = vowHarmony unix ;
|
||||||
unixi = unix + "i" ;
|
unixi = unix + "i" ;
|
||||||
unixe = unix + "e" ;
|
unixe = unix + "e" ;
|
||||||
in nForms10
|
in nForms10
|
||||||
@@ -233,7 +233,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dNukke : (_,_ : Str) -> NForms = \nukke,nuken ->
|
dNukke : (_,_ : Str) -> NForms = \nukke,nuken ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony nukke ;
|
a = vowHarmony nukke ;
|
||||||
nukk = init nukke ;
|
nukk = init nukke ;
|
||||||
nuke = init nuken ;
|
nuke = init nuken ;
|
||||||
in
|
in
|
||||||
@@ -244,7 +244,7 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
|
|
||||||
dJalas : Str -> NForms = \jalas ->
|
dJalas : Str -> NForms = \jalas ->
|
||||||
let
|
let
|
||||||
a = vowelHarmony jalas ;
|
a = vowHarmony jalas ;
|
||||||
jalaks = init jalas + "ks" ;
|
jalaks = init jalas + "ks" ;
|
||||||
jalaksi = jalaks + "i" ;
|
jalaksi = jalaks + "i" ;
|
||||||
in nForms10
|
in nForms10
|
||||||
@@ -281,6 +281,29 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
(SDP + ":" + c.p4) (SDP + ":" + c.p5) (SDP + ":" + c.p6)
|
(SDP + ":" + c.p4) (SDP + ":" + c.p5) (SDP + ":" + c.p6)
|
||||||
(SDP + ":" + c.p7) (SDP + ":" + c.p8) (SDP + ":" + c.p9) ;
|
(SDP + ":" + c.p7) (SDP + ":" + c.p8) (SDP + ":" + c.p9) ;
|
||||||
|
|
||||||
|
-- for adjective comparison
|
||||||
|
|
||||||
|
dSuurempi : Str -> NForms = \suurempi ->
|
||||||
|
let
|
||||||
|
a = vowHarmony suurempi ;
|
||||||
|
suuremp = init suurempi ;
|
||||||
|
suuremm = Predef.tk 2 suurempi + "m" ;
|
||||||
|
in nForms10
|
||||||
|
suurempi (suuremm + a + "n") (suuremp + a + a)
|
||||||
|
(suuremp + a + "n" + a) (suuremp + a + a + "n")
|
||||||
|
(suuremp + "ien") (suurempi + a)
|
||||||
|
(suurempi + "n" + a) (suuremm + "iss" + a) (suurempi + "in") ;
|
||||||
|
|
||||||
|
dSuurin : Str -> NForms = \suurin ->
|
||||||
|
let
|
||||||
|
a = vowHarmony suurin ;
|
||||||
|
suurimm = init suurin + "mm" ;
|
||||||
|
suurimp = init suurimm + "p" ;
|
||||||
|
in nForms10
|
||||||
|
suurin (suurimm + a + "n") (suurin + "t" + a)
|
||||||
|
(suurimp + a + "n" + a) (suurimp + a + a + "n")
|
||||||
|
(suurimp + "ien") (suurimp + "i" + a)
|
||||||
|
(suurimp + "in" + a) (suurimm + "iss" + a) (suurimp + "iin") ;
|
||||||
|
|
||||||
|
|
||||||
-------------------
|
-------------------
|
||||||
@@ -365,8 +388,60 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
lock_N = <>
|
lock_N = <>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
n2nforms : N -> NForms = \ukko -> table {
|
||||||
|
0 => ukko.s ! NCase Sg Nom ;
|
||||||
|
1 => ukko.s ! NCase Sg Gen ;
|
||||||
|
2 => ukko.s ! NCase Sg Part ;
|
||||||
|
3 => ukko.s ! NCase Sg Ess ;
|
||||||
|
4 => ukko.s ! NCase Sg Illat ;
|
||||||
|
5 => ukko.s ! NCase Pl Gen ;
|
||||||
|
6 => ukko.s ! NCase Pl Part ;
|
||||||
|
7 => ukko.s ! NCase Pl Ess ;
|
||||||
|
8 => ukko.s ! NCase Pl Iness ;
|
||||||
|
9 => ukko.s ! NCase Pl Illat
|
||||||
|
} ;
|
||||||
|
|
||||||
--- This is used to analyse nouns "rae", "hake", "rengas", "laidun", etc.
|
-- Adjective forms
|
||||||
|
|
||||||
|
AForms : Type = {
|
||||||
|
posit : NForms ;
|
||||||
|
compar : NForms ;
|
||||||
|
superl : NForms ;
|
||||||
|
adv_posit, adv_compar, adv_superl : Str ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
aForms2A : AForms -> A = \afs -> {
|
||||||
|
s = table {
|
||||||
|
Posit => table {
|
||||||
|
AN n => (nForms2N afs.posit).s ! n ;
|
||||||
|
AAdv => afs.adv_posit
|
||||||
|
} ;
|
||||||
|
Compar => table {
|
||||||
|
AN n => (nForms2N afs.compar).s ! n ;
|
||||||
|
AAdv => afs.adv_compar
|
||||||
|
} ;
|
||||||
|
Superl => table {
|
||||||
|
AN n => (nForms2N afs.superl).s ! n ;
|
||||||
|
AAdv => afs.adv_superl
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
lock_A = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
|
nforms2aforms : NForms -> AForms = \nforms ->
|
||||||
|
let
|
||||||
|
suure = init (nforms ! 1) ;
|
||||||
|
suur = Predef.tk 4 (nforms ! 8) ;
|
||||||
|
in {
|
||||||
|
posit = nforms ;
|
||||||
|
compar = dSuurempi (suure ++ "mpi") ;
|
||||||
|
superl = dSuurin (suur ++ "in") ;
|
||||||
|
adv_posit = suure + "sti" ;
|
||||||
|
adv_compar = suure + "mmin" ;
|
||||||
|
adv_superl = suur + "immin" ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- This is used to analyse nouns "rae", "hake", "rengas", "laidun", etc.
|
||||||
|
|
||||||
strongGrade : Str -> Str = \hanke ->
|
strongGrade : Str -> Str = \hanke ->
|
||||||
let
|
let
|
||||||
@@ -388,16 +463,9 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
ase => ase
|
ase => ase
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
part2casePl : Str -> Str * Str * Str * Str = \savia -> case savia of {
|
vowHarmony : Str -> Str = \s -> case s of {
|
||||||
sav + "i" + a@("a" | "ä") =>
|
_ + ("a" | "o" | "u") + _ => "a" ;
|
||||||
<sav + "ien", sav + "in" + a, sav + "iss" + a, sav + "iin"> ;
|
_ => "ä"
|
||||||
elio + "it" + a@("a" | "ä") =>
|
|
||||||
<elio + "iden", elio + "in" + a, elio + "iss" + a, elio + "ihin"> ;
|
|
||||||
maal + "ej" + a@("a" | "ä") =>
|
|
||||||
<maal + "ien", maal + "ein" + a, maal + "eiss" + a, maal + "eihin"> ;
|
|
||||||
talo + "j" + a@("a" | "ä") =>
|
|
||||||
<talo + "jen", talo + "in" + a, talo + "iss" + a, talo + "ihin"> ;
|
|
||||||
_ => Predef.error (["impossible plural partitive"] ++ savia)
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,33 +54,33 @@ mkLex 0 line = case words line of
|
|||||||
mkLex 1 line = case words line of
|
mkLex 1 line = case words line of
|
||||||
num:sana:_ -> do
|
num:sana:_ -> do
|
||||||
let nimi = "n" ++ init num ++ "_" ++ sana
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
putStrLn $ "lin " ++ nimi ++ "_N = mk1N \"" ++ sana ++ "\" ;"
|
putStrLn $ "lin " ++ nimi ++ "_N = mkN \"" ++ sana ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex 2 line = case words line of
|
mkLex 2 line = case words line of
|
||||||
num:sana:sanan:_ -> do
|
num:sana:sanan:_ -> do
|
||||||
let nimi = "n" ++ init num ++ "_" ++ sana
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
putStrLn $ "lin " ++ nimi ++
|
putStrLn $ "lin " ++ nimi ++
|
||||||
"_N = mk2N \"" ++ sana ++ "\" \"" ++ sanan ++ "\" ;"
|
"_N = mkN \"" ++ sana ++ "\" \"" ++ sanan ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex 3 line = case words line of
|
mkLex 3 line = case words line of
|
||||||
num:sana:sanan:_:_:_:_:sanoja:_ -> do
|
num:sana:sanan:_:_:_:_:sanoja:_ -> do
|
||||||
let nimi = "n" ++ init num ++ "_" ++ sana
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
putStrLn $ "lin " ++ nimi ++
|
putStrLn $ "lin " ++ nimi ++
|
||||||
"_N = mk3N \"" ++ sana ++ "\" \"" ++ sanan ++ "\" \"" ++ sanoja ++ "\" ;"
|
"_N = mkN \"" ++ sana ++ "\" \"" ++ sanan ++ "\" \"" ++ sanoja ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex 4 line = case words line of
|
mkLex 4 line = case words line of
|
||||||
num:sana:sanan:sanaa:_:_:_:sanoja:_ -> do
|
num:sana:sanan:sanaa:_:_:_:sanoja:_ -> do
|
||||||
let nimi = "n" ++ init num ++ "_" ++ sana
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
putStrLn $ "lin " ++ nimi ++
|
putStrLn $ "lin " ++ nimi ++
|
||||||
"_N = mk4N \"" ++ sana ++ "\" \"" ++ sanan ++
|
"_N = mkN \"" ++ sana ++ "\" \"" ++ sanan ++
|
||||||
"\" \"" ++ sanaa ++ "\" \"" ++ sanoja ++ "\" ;"
|
"\" \"" ++ sanoja ++ "\" \"" ++ sanaa ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
|
|
||||||
-- to initiate from a noun list
|
-- to initiate from a noun list that has compounds
|
||||||
|
|
||||||
mkLex 11 line = case words line of
|
mkLex 11 line = case words line of
|
||||||
_:"--":_ -> return ()
|
_:"--":_ -> return ()
|
||||||
@@ -88,7 +88,7 @@ mkLex 11 line = case words line of
|
|||||||
let sana = uncompound sana0
|
let sana = uncompound sana0
|
||||||
let nimi = "n" ++ init num ++ "_" ++ sana
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
putStrLn $ "fun " ++ nimi ++ "_N : N ;"
|
putStrLn $ "fun " ++ nimi ++ "_N : N ;"
|
||||||
putStrLn $ "lin " ++ nimi ++ "_N = mk1N \"" ++ sana ++ "\" ;"
|
putStrLn $ "lin " ++ nimi ++ "_N = mkN \"" ++ sana ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
-- from sora+tie to tie
|
-- from sora+tie to tie
|
||||||
|
|||||||
@@ -6,13 +6,49 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
-- mkN = overload {
|
mkN : overload {
|
||||||
mk1N : (talo : Str) -> N = \s -> nForms2N (nForms1 s) ;
|
mkN : (talo : Str) -> N ;
|
||||||
mk2N : (talo,talon : Str) -> N = \s,t -> nForms2N (nForms2 s t) ;
|
mkN : (talo,talon : Str) -> N ;
|
||||||
mk3N : (talo,talon,taloja : Str) -> N = \s,t,u -> nForms2N (nForms3 s t u) ;
|
mkN : (talo,talon,taloja : Str) -> N ;
|
||||||
mk4N : (talo,talon,taloa,taloja : Str) -> N = \s,t,u,v ->
|
mkN : (talo,talon,taloja,taloa : Str) -> N ;
|
||||||
|
mkN : (sora : Str) -> (tie : N) -> N ;
|
||||||
|
mkN : (oma : N) -> (tunto : N) -> N ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkA : overload {
|
||||||
|
mkA : Str -> A ;
|
||||||
|
mkA : N -> A ;
|
||||||
|
mkA : (hyva,parempi,paras : N) -> (hyvin,paremmin,parhaiten : Str) -> A ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
mkN = overload {
|
||||||
|
mkN : (talo : Str) -> N = mk1N ;
|
||||||
|
-- \s -> nForms2N (nForms1 s) ;
|
||||||
|
mkN : (talo,talon : Str) -> N = mk2N ;
|
||||||
|
-- \s,t -> nForms2N (nForms2 s t) ;
|
||||||
|
mkN : (talo,talon,taloja : Str) -> N = mk3N ;
|
||||||
|
-- \s,t,u -> nForms2N (nForms3 s t u) ;
|
||||||
|
mkN : (talo,talon,taloja,taloa : Str) -> N = mk4N ;
|
||||||
|
-- \s,t,u,v -> nForms2N (nForms4 s t u v) ;
|
||||||
|
mkN : (sora : Str) -> (tie : N) -> N = mkStrN ;
|
||||||
|
mkN : (oma,tunto : N) -> N = mkNN ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mk1A : Str -> A = \jalo -> aForms2A (nforms2aforms (nForms1 jalo)) ;
|
||||||
|
mkNA : N -> A = \suuri -> aForms2A (nforms2aforms (n2nforms suuri)) ;
|
||||||
|
|
||||||
|
mk1N : (talo : Str) -> N = \s -> nForms2N (nForms1 s) ;
|
||||||
|
mk2N : (talo,talon : Str) -> N = \s,t -> nForms2N (nForms2 s t) ;
|
||||||
|
mk3N : (talo,talon,taloja : Str) -> N = \s,t,u -> nForms2N (nForms3 s t u) ;
|
||||||
|
mk4N : (talo,talon,taloa,taloja : Str) -> N = \s,t,u,v ->
|
||||||
nForms2N (nForms4 s t u v) ;
|
nForms2N (nForms4 s t u v) ;
|
||||||
-- } ;
|
mkStrN : Str -> N -> N = \sora,tie -> {
|
||||||
|
s = \\c => sora + tie.s ! c ; lock_N = <>
|
||||||
|
} ;
|
||||||
|
mkNN : N -> N -> N = \oma,tunto -> {
|
||||||
|
s = \\c => oma.s ! c + tunto.s ! c ; lock_N = <>
|
||||||
|
} ; ---- TODO: oma in possessive suffix forms
|
||||||
|
|
||||||
nForms1 : Str -> NForms = \ukko ->
|
nForms1 : Str -> NForms = \ukko ->
|
||||||
let
|
let
|
||||||
@@ -63,6 +99,8 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
nForms1 ukko ; --- to protect
|
nForms1 ukko ; --- to protect
|
||||||
<_ + ("a" | "o" | "u" | "y" | "ä" | "ö"), _ + "n"> =>
|
<_ + ("a" | "o" | "u" | "y" | "ä" | "ö"), _ + "n"> =>
|
||||||
dUkko ukko ukon ; -- auto,auton
|
dUkko ukko ukon ; -- auto,auton
|
||||||
|
<_ + "mpi", _ + ("emman" | "emmän")> => dSuurempi ukko ;
|
||||||
|
<_ + "in", _ + ("imman" | "immän")> => dSuurin ukko ;
|
||||||
<arp + "i", arv + "en"> => dArpi ukko ukon ;
|
<arp + "i", arv + "en"> => dArpi ukko ukon ;
|
||||||
--- <arp + "i", _ + "i" + ("a" | "ä")> => -- for b-w compat.
|
--- <arp + "i", _ + "i" + ("a" | "ä")> => -- for b-w compat.
|
||||||
--- dArpi ukko (init (weakGrade ukko) + "en") ;
|
--- dArpi ukko (init (weakGrade ukko) + "en") ;
|
||||||
@@ -99,11 +137,11 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
(["last arguments should end in n and a/ä, not"] ++ ukon ++ ukkoja)
|
(["last arguments should end in n and a/ä, not"] ++ ukon ++ ukkoja)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
nForms4 : (_,_,_,_ : Str) -> NForms = \ukko,ukon,ukkoa,ukkoja ->
|
nForms4 : (_,_,_,_ : Str) -> NForms = \ukko,ukon,ukkoja,ukkoa ->
|
||||||
let
|
let
|
||||||
ukot = nForms3 ukko ukon ukkoja ;
|
ukot = nForms3 ukko ukon ukkoja ;
|
||||||
in
|
in
|
||||||
case <ukko,ukon,ukkoa,ukkoja> of {
|
case <ukko,ukon,ukkoja,ukkoa> of {
|
||||||
<_,_ + "n", _ + ("a" | "ä"), _ + ("a" | "ä")> =>
|
<_,_ + "n", _ + ("a" | "ä"), _ + ("a" | "ä")> =>
|
||||||
table {
|
table {
|
||||||
2 => ukkoa ;
|
2 => ukkoa ;
|
||||||
@@ -112,7 +150,7 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
_ =>
|
_ =>
|
||||||
Predef.error
|
Predef.error
|
||||||
(["last arguments should end in n, a/ä, and a/ä, not"] ++
|
(["last arguments should end in n, a/ä, and a/ä, not"] ++
|
||||||
ukon ++ ukkoa ++ ukkoja)
|
ukon ++ ukkoja ++ ukkoa)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,34 +1,46 @@
|
|||||||
Fri Jan 4 10:50:06 CET 2008
|
aarne-rantas-computer:~/GF/examples/uusisuomi aarne$ make
|
||||||
aarne-rantas-computer:~/GF/examples/uusisuomi aarne$ export LEX=NSSK ; make -e
|
|
||||||
|
|
||||||
NSSK
|
NSSK
|
||||||
52 diff1.txt
|
|
||||||
36 diff2.txt
|
|
||||||
28 diff3.txt
|
|
||||||
21 diff4.txt
|
|
||||||
|
|
||||||
Omat
|
Omat
|
||||||
45 diff1.txt
|
Dictionary:
|
||||||
23 diff2.txt
|
(Aino Wuolle, Suomalais-englantilainen sanakirja, 11. painos WSOY 1973,
|
||||||
14 diff3.txt
|
ca. 24k Words)
|
||||||
7 diff4.txt ruis, ainoa, vapaa, kirves, mies, kevät, sydän
|
Duodecim
|
||||||
|
Aino
|
||||||
|
|
||||||
Dictionary
|
Fri Jan 4 18:24:29 CET 2008
|
||||||
(Aino Wuolle, Suomalais-englantilainen sanakirja, 11. painos WSOY 1973,
|
Aino
|
||||||
ca. 24k Words)
|
7 diff1-Aino.txt
|
||||||
29 diff1.txt
|
2 diff2-Aino.txt
|
||||||
14 diff2.txt
|
0 diff3-Aino.txt
|
||||||
1 diff3.txt päitsi-päistä
|
0 diff4-Aino.txt
|
||||||
0 diff4.txt
|
|
||||||
|
Dictionary
|
||||||
|
15 diff1-Dictionary.txt
|
||||||
|
10 diff2-Dictionary.txt
|
||||||
|
1 diff3-Dictionary.txt
|
||||||
|
0 diff4-Dictionary.txt
|
||||||
|
|
||||||
Duodecim
|
Duodecim
|
||||||
20 diff1.txt
|
17 diff1-Duodecim.txt
|
||||||
8 diff2.txt
|
8 diff2-Duodecim.txt
|
||||||
3 diff3.txt
|
3 diff3-Duodecim.txt
|
||||||
1 diff4.txt kevät
|
1 diff4-Duodecim.txt
|
||||||
|
|
||||||
Aino
|
NSSK
|
||||||
7 diff1.txt
|
50 diff1-NSSK.txt
|
||||||
2 diff2.txt
|
32 diff2-NSSK.txt
|
||||||
0 diff3.txt
|
26 diff3-NSSK.txt
|
||||||
0 diff4.txt
|
19 diff4-NSSK.txt
|
||||||
|
|
||||||
|
Omat
|
||||||
|
42 diff1-Omat.txt
|
||||||
|
21 diff2-Omat.txt
|
||||||
|
14 diff3-Omat.txt
|
||||||
|
7 diff4-Omat.txt
|
||||||
|
|
||||||
|
Swadesh
|
||||||
|
31 diff1-Swadesh.txt
|
||||||
|
7 diff2-Swadesh.txt
|
||||||
|
7 diff3-Swadesh.txt
|
||||||
|
2 diff4-Swadesh.txt
|
||||||
|
|||||||
Reference in New Issue
Block a user