forked from GitHub/gf-core
finnish updates
This commit is contained in:
@@ -21,6 +21,10 @@ nouns:
|
|||||||
cat all-diff-* >all-differences
|
cat all-diff-* >all-differences
|
||||||
cat all-differences
|
cat all-differences
|
||||||
|
|
||||||
|
CSC:
|
||||||
|
export LEX=NCSC ; make -e tests
|
||||||
|
cat all-diff-NCSC
|
||||||
|
|
||||||
gf-files:
|
gf-files:
|
||||||
runghc MkLex.hs 0 $(CAT) $(LEX) > $(LEX)Abs.gf
|
runghc MkLex.hs 0 $(CAT) $(LEX) > $(LEX)Abs.gf
|
||||||
runghc MkLex.hs 1 $(CAT) $(LEX) > $(LEX)1.gf
|
runghc MkLex.hs 1 $(CAT) $(LEX) > $(LEX)1.gf
|
||||||
|
|||||||
@@ -38,7 +38,23 @@ initiate tgt cat i = mapM_ putStrLn [
|
|||||||
]
|
]
|
||||||
|
|
||||||
nums = map prt [1 ..] where
|
nums = map prt [1 ..] where
|
||||||
prt i = (if i < 10 then "0" else "") ++ show i ++ ". "
|
---- prt i = (if i < 10 then "0" else "") ++ show i ++ ". "
|
||||||
|
prt i = let n = show i in replicate (4-length n) '0' ++ n ++ ". "
|
||||||
|
|
||||||
|
-- W is the flag for mixed-class word lists
|
||||||
|
mkLex "W" 0 line = case words line of
|
||||||
|
num:cat:sana:_ -> do
|
||||||
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
|
putStrLn $ "fun " ++ nimi ++ "_" ++ cat ++ " : " ++ cat ++ " ;"
|
||||||
|
_ -> return ()
|
||||||
|
|
||||||
|
mkLex "W" 1 line = case words line of
|
||||||
|
num:cat:sanat@(sana:_) -> do
|
||||||
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
|
putStrLn $ "lin " ++ nimi ++
|
||||||
|
"_" ++ cat ++ " = mk" ++ cat ++ " " ++
|
||||||
|
unwords (map prQuoted sanat) ++" ;"
|
||||||
|
_ -> return ()
|
||||||
|
|
||||||
mkLex cat 0 line = case words line of
|
mkLex cat 0 line = case words line of
|
||||||
num:sana:_ -> do
|
num:sana:_ -> do
|
||||||
@@ -68,6 +84,7 @@ mkLex "N" 2 line = case words line of
|
|||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex "N" 3 line = case words line of
|
mkLex "N" 3 line = case words line of
|
||||||
|
---- num:sana:sanan:sanoja:_ -> do
|
||||||
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 ++
|
||||||
@@ -82,7 +99,6 @@ mkLex "N" 4 line = case words line of
|
|||||||
"\" \"" ++ sanoja ++ "\" \"" ++ sanaa ++ "\" ;"
|
"\" \"" ++ sanoja ++ "\" \"" ++ sanaa ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
|
|
||||||
-- to initiate from a noun list that has compounds
|
-- to initiate from a noun list that has compounds
|
||||||
|
|
||||||
mkLex "N" 11 line = case words line of
|
mkLex "N" 11 line = case words line of
|
||||||
@@ -94,6 +110,8 @@ mkLex "N" 11 line = case words line of
|
|||||||
putStrLn $ "lin " ++ nimi ++ "_N = mkN \"" ++ sana ++ "\" ;"
|
putStrLn $ "lin " ++ nimi ++ "_N = mkN \"" ++ sana ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
|
prQuoted s = concat ["\"",s,"\""]
|
||||||
|
|
||||||
-- from sora+tie to tie
|
-- from sora+tie to tie
|
||||||
|
|
||||||
uncompound = reverse . takeWhile (/= '+') . reverse
|
uncompound = reverse . takeWhile (/= '+') . reverse
|
||||||
|
|||||||
@@ -44,6 +44,9 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
-- \s,t,u -> nForms2N (nForms3 s t u) ;
|
-- \s,t,u -> nForms2N (nForms3 s t u) ;
|
||||||
mkN : (talo,talon,taloja,taloa : Str) -> N = mk4N ;
|
mkN : (talo,talon,taloja,taloa : Str) -> N = mk4N ;
|
||||||
-- \s,t,u,v -> nForms2N (nForms4 s t u v) ;
|
-- \s,t,u,v -> nForms2N (nForms4 s t u v) ;
|
||||||
|
mkN :
|
||||||
|
(talo,talon,taloa,talona,taloon,talojen,taloja,taloina,taloissa,taloihin
|
||||||
|
: Str) -> N = mk10N ;
|
||||||
mkN : (sora : Str) -> (tie : N) -> N = mkStrN ;
|
mkN : (sora : Str) -> (tie : N) -> N = mkStrN ;
|
||||||
mkN : (oma,tunto : N) -> N = mkNN ;
|
mkN : (oma,tunto : N) -> N = mkNN ;
|
||||||
} ;
|
} ;
|
||||||
@@ -56,6 +59,11 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
mk3N : (talo,talon,taloja : Str) -> N = \s,t,u -> nForms2N (nForms3 s t u) ;
|
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 ->
|
mk4N : (talo,talon,taloa,taloja : Str) -> N = \s,t,u,v ->
|
||||||
nForms2N (nForms4 s t u v) ;
|
nForms2N (nForms4 s t u v) ;
|
||||||
|
mk10N :
|
||||||
|
(talo,talon,taloa,talona,taloon,talojen,taloja,taloina,taloissa,taloihin
|
||||||
|
: Str) -> N = \a,b,c,d,e,f,g,h,i,j ->
|
||||||
|
nForms2N (nForms10 a b c d e f g h i j) ;
|
||||||
|
|
||||||
mkStrN : Str -> N -> N = \sora,tie -> {
|
mkStrN : Str -> N -> N = \sora,tie -> {
|
||||||
s = \\c => sora + tie.s ! c ; lock_N = <>
|
s = \\c => sora + tie.s ! c ; lock_N = <>
|
||||||
} ;
|
} ;
|
||||||
@@ -68,6 +76,7 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
ukk = init ukko ;
|
ukk = init ukko ;
|
||||||
uko = weakGrade ukko ;
|
uko = weakGrade ukko ;
|
||||||
ukon = uko + "n" ;
|
ukon = uko + "n" ;
|
||||||
|
o = case last ukko of {"ä" => "ö" ; "a" => "o"} ; -- only used then
|
||||||
renka = Declensions.strongGrade (init ukko) ;
|
renka = Declensions.strongGrade (init ukko) ;
|
||||||
rake = Declensions.strongGrade ukko ;
|
rake = Declensions.strongGrade ukko ;
|
||||||
in
|
in
|
||||||
@@ -83,14 +92,29 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
_ + "e" => dRae ukko (rake + "en") ;
|
_ + "e" => dRae ukko (rake + "en") ;
|
||||||
_ + ("ut" | "yt") => dRae ukko (ukk + "en") ;
|
_ + ("ut" | "yt") => dRae ukko (ukk + "en") ;
|
||||||
_ + ("as" | "äs") => dRae ukko (renka + last renka + "n") ;
|
_ + ("as" | "äs") => dRae ukko (renka + last renka + "n") ;
|
||||||
_ + ("uus" | "yys") => dLujuus ukko ;
|
_ + ("uus" | "yys" | "eus" | "eys") => dLujuus ukko ;
|
||||||
_ + "s" => dJalas ukko ;
|
_ + "s" => dJalas ukko ;
|
||||||
_ + ("a" | "e" | "i") + C_ + _ + "aja" => -- opettaja correct autom.
|
|
||||||
|
{- heuristics for 3-syllable nouns ending a/ä
|
||||||
|
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + C_ +
|
||||||
|
_ + "i" + C_ + a@("a" | "ä") =>
|
||||||
|
dSilakka ukko (ukko + "n") (ukk + o + "it" + a) ;
|
||||||
|
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + C_ + _ +
|
||||||
|
("a" | "e" | "o" | "u" | "y" | "ä" | "ö") +
|
||||||
|
("l" | "r" | "n") + a@("a" | "ä") =>
|
||||||
|
dSilakka ukko (ukko + "n") (ukk + o + "it" + a) ;
|
||||||
|
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + C_ + _ +
|
||||||
|
("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") +
|
||||||
|
("n" | "k" | "s") + "k" + a@("a" | "ä") =>
|
||||||
|
dSilakka ukko (uko + "n") (init uko + o + "it" + a) ;
|
||||||
|
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + C_ + _ +
|
||||||
|
("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") +
|
||||||
|
("n" | "t" | "s") + "t" + a@("a" | "ä") =>
|
||||||
|
dSilakka ukko (uko + "n") (ukk + o + "j" + a) ;
|
||||||
|
_ + ("a" | "e" | "i" | "o" | "u") + C_ + _ +
|
||||||
|
("a" | "e" | "o" | "u") + C_ + "a" =>
|
||||||
dSilakka ukko (ukko + "n") (ukk + "ia") ;
|
dSilakka ukko (ukko + "n") (ukk + "ia") ;
|
||||||
_ + ("a" | "e" | "i" | "o" | "u") + C_ + _ + "ija" =>
|
-}
|
||||||
dSilakka ukko (ukko + "n") (ukk + "oita") ;
|
|
||||||
_ + ("e" | "i" | "y" | "ä" | "ö") + C_ + _ + "ijä" =>
|
|
||||||
dSilakka ukko (ukko + "n") (ukk + "öitä") ;
|
|
||||||
_ + "i" +o@("o"|"ö") => dSilakka ukko (ukko+"n") (ukko+"it"+getHarmony o);
|
_ + "i" +o@("o"|"ö") => dSilakka ukko (ukko+"n") (ukko+"it"+getHarmony o);
|
||||||
_ + "i" + "a" => dSilakka ukko (ukko + "n") (ukk + "oita") ;
|
_ + "i" + "a" => dSilakka ukko (ukko + "n") (ukk + "oita") ;
|
||||||
_ + "i" + "ä" => dSilakka ukko (ukko + "n") (ukk + "öitä") ;
|
_ + "i" + "ä" => dSilakka ukko (ukko + "n") (ukk + "öitä") ;
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ resource Verbal = ResFin **
|
|||||||
mkV = overload {
|
mkV = overload {
|
||||||
mkV : (huutaa : Str) -> V = mk1V ;
|
mkV : (huutaa : Str) -> V = mk1V ;
|
||||||
mkV : (huutaa,huusi : Str) -> V = mk2V ;
|
mkV : (huutaa,huusi : Str) -> V = mk2V ;
|
||||||
|
mkV : (
|
||||||
|
huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
|
||||||
|
huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = mk12V ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
showV : V -> Utt = \v -> ss (
|
showV : V -> Utt = \v -> ss (
|
||||||
@@ -29,6 +32,12 @@ resource Verbal = ResFin **
|
|||||||
mk1V : Str -> V = \s -> vforms2V (vForms1 s) ;
|
mk1V : Str -> V = \s -> vforms2V (vForms1 s) ;
|
||||||
mk2V : (_,_ : Str) -> V = \s,t -> vforms2V (vForms2 s t) ;
|
mk2V : (_,_ : Str) -> V = \s,t -> vforms2V (vForms2 s t) ;
|
||||||
|
|
||||||
|
mk12V : (
|
||||||
|
huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
|
||||||
|
huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V =
|
||||||
|
\a,b,c,d,e,f,g,h,i,j,k,l ->
|
||||||
|
vforms2V (vForms12 a b c d e f g h i j k l) ;
|
||||||
|
|
||||||
vForms1 : Str -> VForms = \ottaa ->
|
vForms1 : Str -> VForms = \ottaa ->
|
||||||
let
|
let
|
||||||
a = last ottaa ;
|
a = last ottaa ;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ concrete LangAra of Lang =
|
|||||||
LexiconAra
|
LexiconAra
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
flags startcat = Phr ; unlexer = text ; lexer = text ; coding = utf8 ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user