forked from GitHub/gf-core
tests for verbs in uusisuomi
This commit is contained in:
284
examples/uusisuomi/Conjugations.gf
Normal file
284
examples/uusisuomi/Conjugations.gf
Normal file
@@ -0,0 +1,284 @@
|
|||||||
|
--# -path=.:alltenses
|
||||||
|
|
||||||
|
resource Conjugations = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
||||||
|
|
||||||
|
flags optimize=all ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
|
||||||
|
cHukkua : (_,_ : Str) -> VForms = \hukkua,hukun ->
|
||||||
|
let
|
||||||
|
a = last hukkua ;
|
||||||
|
hukku = init hukkua ;
|
||||||
|
huku = init hukun ;
|
||||||
|
u = last huku ;
|
||||||
|
i = case u of {
|
||||||
|
"e" | "i" => [] ;
|
||||||
|
_ => u
|
||||||
|
} ;
|
||||||
|
y = uyHarmony a ;
|
||||||
|
hukkui = init hukku + i + "i" ;
|
||||||
|
hukui = init huku + i + "i" ;
|
||||||
|
in vForms12
|
||||||
|
hukkua
|
||||||
|
hukun
|
||||||
|
(hukku + u)
|
||||||
|
(hukku + "v" + a + "t")
|
||||||
|
(hukku + "k" + a + a)
|
||||||
|
(huku + "t" + a + a + "n")
|
||||||
|
(hukui + "n")
|
||||||
|
hukkui
|
||||||
|
(hukkui + "si")
|
||||||
|
(hukku + "n" + y + "t")
|
||||||
|
(huku + "tt" + y)
|
||||||
|
(hukku + "nee") ;
|
||||||
|
|
||||||
|
cOttaa : (_,_,_,_ : Str) -> VForms = \ottaa,otan,otin,otti ->
|
||||||
|
let
|
||||||
|
a = last ottaa ;
|
||||||
|
aa = a + a ;
|
||||||
|
u = uyHarmony a ;
|
||||||
|
ota = init otan ;
|
||||||
|
otta = init ottaa ;
|
||||||
|
ote = init ota + "e" ;
|
||||||
|
in vForms12
|
||||||
|
ottaa
|
||||||
|
otan
|
||||||
|
ottaa
|
||||||
|
(otta + "v" + a + "t")
|
||||||
|
(otta + "k" + aa)
|
||||||
|
(ote + "t" + aa + "n")
|
||||||
|
otin
|
||||||
|
otti
|
||||||
|
(otta + "isi")
|
||||||
|
(otta + "n" + u + "t")
|
||||||
|
(ote + "tt" + u)
|
||||||
|
(otta + "nee") ;
|
||||||
|
|
||||||
|
cJuosta : (_,_ : Str) -> VForms = \juosta,juoksen ->
|
||||||
|
let
|
||||||
|
a = last juosta ;
|
||||||
|
juos = Predef.tk 2 juosta ;
|
||||||
|
juoss = juos + last juos ;
|
||||||
|
juokse = init juoksen ;
|
||||||
|
juoks = init juokse ;
|
||||||
|
u = uyHarmony a ;
|
||||||
|
juoksi = juoks + "i" ;
|
||||||
|
in vForms12
|
||||||
|
juosta
|
||||||
|
(juoksen)
|
||||||
|
(juokse + "e")
|
||||||
|
(juokse + "v" + a + "t")
|
||||||
|
(juos + "k" + a + a)
|
||||||
|
(juosta + a + "n")
|
||||||
|
(juoks + "in")
|
||||||
|
(juoks + "i")
|
||||||
|
(juoks + "isi")
|
||||||
|
(juoss + u + "t")
|
||||||
|
(juos + "t" + u)
|
||||||
|
(juoss + "ee") ;
|
||||||
|
|
||||||
|
cJuoda : (_ : Str) -> VForms = \juoda ->
|
||||||
|
let
|
||||||
|
a = last juoda ;
|
||||||
|
juo = Predef.tk 2 juoda ;
|
||||||
|
joi = case last juo of {
|
||||||
|
"i" => juo ; -- naida
|
||||||
|
o => Predef.tk 2 juo + o + "i"
|
||||||
|
} ;
|
||||||
|
u = uyHarmony a ;
|
||||||
|
in vForms12
|
||||||
|
juoda
|
||||||
|
(juo + "n")
|
||||||
|
(juo)
|
||||||
|
(juo + "v" + a + "t")
|
||||||
|
(juo + "k" + a + a)
|
||||||
|
(juoda + a + "n")
|
||||||
|
(joi + "n")
|
||||||
|
(joi)
|
||||||
|
(joi + "si")
|
||||||
|
(juo + "n" + u + "t")
|
||||||
|
(juo + "t" + u)
|
||||||
|
(juo + "nee") ;
|
||||||
|
|
||||||
|
cPudota : (_,_ : Str) -> VForms = \pudota,putosi ->
|
||||||
|
let
|
||||||
|
a = last pudota ;
|
||||||
|
pudot = init pudota ;
|
||||||
|
pudo = init pudot ;
|
||||||
|
ai = case last pudo of {
|
||||||
|
"a" | "ä" => <[], "i"> ;
|
||||||
|
_ => <a, a + "i">
|
||||||
|
} ;
|
||||||
|
puto = Predef.tk 2 putosi ;
|
||||||
|
u = uyHarmony a ;
|
||||||
|
in vForms12
|
||||||
|
pudota
|
||||||
|
(puto + a + "n")
|
||||||
|
(puto + ai.p1 + a)
|
||||||
|
(puto + a + "v" + a + "t")
|
||||||
|
(pudot + "k" + a + a)
|
||||||
|
(pudot + a + a + "n")
|
||||||
|
(puto + "sin")
|
||||||
|
(puto + "si")
|
||||||
|
(puto + ai.p2 + "si")
|
||||||
|
(pudo + "nn" + u + "t")
|
||||||
|
(pudot + "t" + u)
|
||||||
|
(pudo + "nnee") ;
|
||||||
|
|
||||||
|
cHarkita : (_ : Str) -> VForms = \harkita ->
|
||||||
|
let
|
||||||
|
a = last harkita ;
|
||||||
|
harkit = init harkita ;
|
||||||
|
harki = init harkit ;
|
||||||
|
u = uyHarmony a ;
|
||||||
|
in vForms12
|
||||||
|
harkita
|
||||||
|
(harkit + "sen")
|
||||||
|
(harkit + "se")
|
||||||
|
(harkit + "sev" + a + "t")
|
||||||
|
(harkit + "k" + a + a)
|
||||||
|
(harkit + a + a + "n")
|
||||||
|
(harkit + "sin")
|
||||||
|
(harkit + "si")
|
||||||
|
(harkit + "sisi")
|
||||||
|
(harki + "nn" + u + "t")
|
||||||
|
(harkit + "t" + u)
|
||||||
|
(harki + "nnee") ;
|
||||||
|
|
||||||
|
cValjeta : (_,_ : Str) -> VForms = \valjeta,valkeni ->
|
||||||
|
let
|
||||||
|
a = last valjeta ;
|
||||||
|
valjet = init valjeta ;
|
||||||
|
valken = init valkeni ;
|
||||||
|
valje = init valjet ;
|
||||||
|
u = uyHarmony a ;
|
||||||
|
in vForms12
|
||||||
|
valjeta
|
||||||
|
(valken + "en")
|
||||||
|
(valken + "ee")
|
||||||
|
(valken + "ev" + a + "t")
|
||||||
|
(valjet + "k" + a + a)
|
||||||
|
(valjet + a + a + "n")
|
||||||
|
(valken + "in")
|
||||||
|
(valken + "i")
|
||||||
|
(valken + "isi")
|
||||||
|
(valje + "nn" + u + "t")
|
||||||
|
(valjet + "t" + u)
|
||||||
|
(valje + "nnee") ;
|
||||||
|
|
||||||
|
cKuunnella : (_,_ : Str) -> VForms = \kuunnella,kuuntelin ->
|
||||||
|
let
|
||||||
|
a = last kuunnella ;
|
||||||
|
kuunnel = Predef.tk 2 kuunnella ;
|
||||||
|
kuuntel = Predef.tk 2 kuuntelin ;
|
||||||
|
u = uyHarmony a ;
|
||||||
|
in vForms12
|
||||||
|
kuunnella
|
||||||
|
(kuuntel + "en")
|
||||||
|
(kuuntel + "ee")
|
||||||
|
(kuuntel + "ev" + a + "t")
|
||||||
|
(kuunnel + "k" + a + a)
|
||||||
|
(kuunnella + a + "n")
|
||||||
|
(kuuntel + "in")
|
||||||
|
(kuuntel + "i")
|
||||||
|
(kuuntel + "isi")
|
||||||
|
(kuunnel + "l" + u + "t")
|
||||||
|
(kuunnel + "t" + u)
|
||||||
|
(kuunnel + "lee") ;
|
||||||
|
|
||||||
|
-- auxiliaries
|
||||||
|
|
||||||
|
uyHarmony : Str -> Str = \a -> case a of {
|
||||||
|
"a" => "u" ;
|
||||||
|
_ => "y"
|
||||||
|
} ;
|
||||||
|
|
||||||
|
VForms : Type = Predef.Ints 11 => Str ;
|
||||||
|
|
||||||
|
vForms12 : (x1,_,_,_,_,_,_,_,_,_,_,x12 : Str) -> VForms =
|
||||||
|
\olla,olen,on,ovat,olkaa,ollaan,olin,oli,olisi,ollut,oltu,lienee ->
|
||||||
|
table {
|
||||||
|
0 => olla ;
|
||||||
|
1 => olen ;
|
||||||
|
2 => on ;
|
||||||
|
3 => ovat ;
|
||||||
|
4 => olkaa ;
|
||||||
|
5 => ollaan ;
|
||||||
|
6 => olin ;
|
||||||
|
7 => oli ;
|
||||||
|
8 => olisi ;
|
||||||
|
9 => ollut ;
|
||||||
|
10 => oltu ;
|
||||||
|
11 => lienee
|
||||||
|
} ;
|
||||||
|
|
||||||
|
vforms2V : VForms -> V = \vh ->
|
||||||
|
let
|
||||||
|
tulla = vh ! 0 ;
|
||||||
|
tulen = vh ! 1 ;
|
||||||
|
tulee = vh ! 2 ;
|
||||||
|
tulevat = vh ! 3 ;
|
||||||
|
tulkaa = vh ! 4 ;
|
||||||
|
tullaan = vh ! 5 ;
|
||||||
|
tulin = vh ! 6 ;
|
||||||
|
tuli = vh ! 7 ;
|
||||||
|
tulisi = vh ! 8 ;
|
||||||
|
tullut = vh ! 9 ;
|
||||||
|
tultu = vh ! 10 ;
|
||||||
|
tullun = vh ! 11 ;
|
||||||
|
tule_ = init tulen ;
|
||||||
|
tuli_ = init tulin ;
|
||||||
|
a = last tulkaa ;
|
||||||
|
tulko = Predef.tk 2 tulkaa + (ifTok Str a "a" "o" "ö") ;
|
||||||
|
tulkoo = tulko + last tulko ;
|
||||||
|
tullee = Predef.tk 2 tullut + "ee" ;
|
||||||
|
tulleen = (nForms2N (dRae tullut (tullee + "n"))).s ;
|
||||||
|
tullu : Str = weakGrade tultu ;
|
||||||
|
tullun = (nForms2N (dUkko tultu (tullu + "n"))).s ;
|
||||||
|
tulema = Predef.tk 3 tulevat + "m" + a ;
|
||||||
|
vat = "v" + a + "t"
|
||||||
|
in
|
||||||
|
{s = table {
|
||||||
|
Inf Inf1 => tulla ;
|
||||||
|
Presn Sg P1 => tule_ + "n" ;
|
||||||
|
Presn Sg P2 => tule_ + "t" ;
|
||||||
|
Presn Sg P3 => tulee ;
|
||||||
|
Presn Pl P1 => tule_ + "mme" ;
|
||||||
|
Presn Pl P2 => tule_ + "tte" ;
|
||||||
|
Presn Pl P3 => tulevat ;
|
||||||
|
Impf Sg P1 => tuli_ + "n" ; --# notpresent
|
||||||
|
Impf Sg P2 => tuli_ + "t" ; --# notpresent
|
||||||
|
Impf Sg P3 => tuli ; --# notpresent
|
||||||
|
Impf Pl P1 => tuli_ + "mme" ; --# notpresent
|
||||||
|
Impf Pl P2 => tuli_ + "tte" ; --# notpresent
|
||||||
|
Impf Pl P3 => tuli + vat ; --# notpresent
|
||||||
|
Condit Sg P1 => tulisi + "n" ; --# notpresent
|
||||||
|
Condit Sg P2 => tulisi + "t" ; --# notpresent
|
||||||
|
Condit Sg P3 => tulisi ; --# notpresent
|
||||||
|
Condit Pl P1 => tulisi + "mme" ; --# notpresent
|
||||||
|
Condit Pl P2 => tulisi + "tte" ; --# notpresent
|
||||||
|
Condit Pl P3 => tulisi + vat ; --# notpresent
|
||||||
|
Imper Sg => tule_ ;
|
||||||
|
Imper Pl => tulkaa ;
|
||||||
|
ImperP3 Sg => tulkoo + "n" ;
|
||||||
|
ImperP3 Pl => tulkoo + "t" ;
|
||||||
|
ImperP1Pl => tulkaa + "mme" ;
|
||||||
|
ImpNegPl => tulko ;
|
||||||
|
Pass True => tullaan ;
|
||||||
|
Pass False => Predef.tk 2 tullaan ;
|
||||||
|
PastPartAct (AN n) => tulleen ! n ;
|
||||||
|
PastPartAct AAdv => tullee + "sti" ;
|
||||||
|
PastPartPass (AN n) => tullun ! n ;
|
||||||
|
PastPartPass AAdv => tullu + "sti" ;
|
||||||
|
Inf Inf3Iness => tulema + "ss" + a ;
|
||||||
|
Inf Inf3Elat => tulema + "st" + a ;
|
||||||
|
Inf Inf3Illat => tulema + a + "n" ;
|
||||||
|
Inf Inf3Adess => tulema + "ll" + a ;
|
||||||
|
Inf Inf3Abess => tulema + "tt" + a
|
||||||
|
} ;
|
||||||
|
sc = NPCase Nom ;
|
||||||
|
lock_V = <>
|
||||||
|
} ;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -305,6 +305,18 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
(suurimp + "ien") (suurimp + "i" + a)
|
(suurimp + "ien") (suurimp + "i" + a)
|
||||||
(suurimp + "in" + a) (suurimm + "iss" + a) (suurimp + "iin") ;
|
(suurimp + "in" + a) (suurimm + "iss" + a) (suurimp + "iin") ;
|
||||||
|
|
||||||
|
-- for verb participle forms
|
||||||
|
|
||||||
|
dOttanut : Str -> NForms = \ottanut ->
|
||||||
|
let
|
||||||
|
a = vowHarmony ottanut ;
|
||||||
|
ottane = init ottanut + "e" ;
|
||||||
|
ottanee = ottane + "e" ;
|
||||||
|
in nForms10
|
||||||
|
ottanut (ottanee + "n") (ottanut + "t" + a)
|
||||||
|
(ottanee + "n" + a) (ottanee + "seen")
|
||||||
|
(ottane + "iden") (ottane + "it" + a)
|
||||||
|
(ottane + "in" + a) (ottane + "iss" + a) (ottane + "isiin") ;
|
||||||
|
|
||||||
-------------------
|
-------------------
|
||||||
-- auxiliaries ----
|
-- auxiliaries ----
|
||||||
@@ -455,9 +467,9 @@ resource Declensions = ResFin ** open MorphoFin,CatFin,Prelude in {
|
|||||||
"rr" + e => "rt" + e ;
|
"rr" + e => "rt" + e ;
|
||||||
"ll" + a => "lt" + a ;
|
"ll" + a => "lt" + a ;
|
||||||
h@("h" | "l") + "j" + e => h + "k" + e ; -- pohje/lahje impossible
|
h@("h" | "l") + "j" + e => h + "k" + e ; -- pohje/lahje impossible
|
||||||
("hk" | "sk" | "sp" | "st") + _ => nke ; -- viuhke,kuiske
|
("tk" | "hk" | "sk" | "sp" | "st") + _ => nke ; -- viuhke,kuiske
|
||||||
a + k@("k" | "p" | "t") + e@("e"|"a"|"ä"|"u"|"i") => a + k + k + e ;
|
a + k@("k"|"p"|"t") + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + k + k + e ;
|
||||||
a + "d" + e@("e"|"a"|"ä"|"u"|"i") => a + "t" + e ;
|
a + "d" + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + "t" + e ;
|
||||||
s + a@("a" | "ä") + "e" => s + a + "ke" ; -- säe, tae
|
s + a@("a" | "ä") + "e" => s + a + "ke" ; -- säe, tae
|
||||||
a + "v" + e@("e"|"a"|"ä"|"u"|"i") => a + "p" + e ; -- taive/toive imposs
|
a + "v" + e@("e"|"a"|"ä"|"u"|"i") => a + "p" + e ; -- taive/toive imposs
|
||||||
ase => ase
|
ase => ase
|
||||||
|
|||||||
@@ -1,6 +1,15 @@
|
|||||||
LEX=Omat
|
LEX=Omat
|
||||||
|
CAT=N
|
||||||
|
|
||||||
all:
|
all: nouns
|
||||||
|
|
||||||
|
verbs:
|
||||||
|
export CAT=V ; export LEX=VNSSK ; make -e tests
|
||||||
|
export CAT=V ; export LEX=VOmat ; make -e tests
|
||||||
|
cat all-diff-V* >all-differences-V
|
||||||
|
cat all-differences-V
|
||||||
|
|
||||||
|
nouns:
|
||||||
export LEX=NSSK ; make -e tests
|
export LEX=NSSK ; make -e tests
|
||||||
export LEX=Omat ; make -e tests
|
export LEX=Omat ; make -e tests
|
||||||
export LEX=Swadesh ; make -e tests
|
export LEX=Swadesh ; make -e tests
|
||||||
@@ -11,11 +20,11 @@ all:
|
|||||||
cat all-differences
|
cat all-differences
|
||||||
|
|
||||||
gf-files:
|
gf-files:
|
||||||
runghc MkLex.hs 0 $(LEX) > $(LEX)Abs.gf
|
runghc MkLex.hs 0 $(CAT) $(LEX) > $(LEX)Abs.gf
|
||||||
runghc MkLex.hs 1 $(LEX) > $(LEX)1.gf
|
runghc MkLex.hs 1 $(CAT) $(LEX) > $(LEX)1.gf
|
||||||
runghc MkLex.hs 2 $(LEX) > $(LEX)2.gf
|
runghc MkLex.hs 2 $(CAT) $(LEX) > $(LEX)2.gf
|
||||||
runghc MkLex.hs 3 $(LEX) > $(LEX)3.gf
|
runghc MkLex.hs 3 $(CAT) $(LEX) > $(LEX)3.gf
|
||||||
runghc MkLex.hs 4 $(LEX) > $(LEX)4.gf
|
runghc MkLex.hs 4 $(CAT) $(LEX) > $(LEX)4.gf
|
||||||
|
|
||||||
experiments: gf-files
|
experiments: gf-files
|
||||||
echo "gt -cat=Utt | l | wf exper1-$(LEX).txt" | gf -s $(LEX)1.gf
|
echo "gt -cat=Utt | l | wf exper1-$(LEX).txt" | gf -s $(LEX)1.gf
|
||||||
|
|||||||
@@ -5,17 +5,17 @@ import Char
|
|||||||
|
|
||||||
-- generate Finnish lexicon implementations with 1 or more
|
-- generate Finnish lexicon implementations with 1 or more
|
||||||
-- characteristic arguments
|
-- characteristic arguments
|
||||||
-- usage: runghc MkLex.hs 3 name
|
-- usage: runghc MkLex.hs 3 cat name
|
||||||
|
|
||||||
main = do
|
main = do
|
||||||
i:tgt:_ <- getArgs
|
i:cat:tgt:_ <- getArgs
|
||||||
let src = "correct-" ++ tgt ++ ".txt"
|
let src = "correct-" ++ tgt ++ ".txt"
|
||||||
ss <- readFile src >>= return . filter (not . (all isSpace)) . lines
|
ss <- readFile src >>= return . filter (not . (all isSpace)) . lines
|
||||||
initiate tgt i
|
initiate tgt cat i
|
||||||
mapM_ (mkLex (read i) . uncurry (++)) (zip nums ss)
|
mapM_ (mkLex cat (read i) . uncurry (++)) (zip nums ss)
|
||||||
putStrLn "}"
|
putStrLn "}"
|
||||||
|
|
||||||
initiate tgt i = mapM_ putStrLn [
|
initiate tgt cat i = mapM_ putStrLn [
|
||||||
"--# -path=.:alltenses",
|
"--# -path=.:alltenses",
|
||||||
"",
|
"",
|
||||||
header i,
|
header i,
|
||||||
@@ -23,55 +23,58 @@ initiate tgt i = mapM_ putStrLn [
|
|||||||
]
|
]
|
||||||
where
|
where
|
||||||
header i = case i of
|
header i = case i of
|
||||||
"0" -> "abstract " ++ tgt ++ "Abs = Cat ** {\n\nfun testN : N -> Utt ;\n"
|
"0" -> unlines [
|
||||||
|
"abstract " ++ tgt ++ "Abs = Cat ** {",
|
||||||
|
"fun testN : N -> Utt ;",
|
||||||
|
"fun testV : V -> Utt ;"
|
||||||
|
]
|
||||||
_ -> unlines [
|
_ -> unlines [
|
||||||
"concrete " ++ tgt ++ i ++
|
"concrete " ++ tgt ++ i ++
|
||||||
" of " ++ tgt ++ "Abs = CatFin ** open Nominal, ResFin, Prelude in {",
|
" of " ++ tgt ++
|
||||||
|
"Abs = CatFin ** open Nominal, Verbal, ResFin, Prelude in {",
|
||||||
"",
|
"",
|
||||||
"lin testN talo = let t = talo.s in ss (",
|
"lin testN = showN ;",
|
||||||
" t ! NCase Sg Nom ++",
|
"lin testV = showV ;"
|
||||||
" t ! NCase Sg Gen ++",
|
|
||||||
" t ! NCase Sg Part ++",
|
|
||||||
" t ! NCase Sg Ess ++",
|
|
||||||
" t ! NCase Sg Illat ++",
|
|
||||||
" t ! NCase Pl Gen ++",
|
|
||||||
" t ! NCase Pl Part ++",
|
|
||||||
" t ! NCase Pl Ess ++",
|
|
||||||
" t ! NCase Pl Iness ++",
|
|
||||||
" t ! NCase Pl Illat",
|
|
||||||
" ) ;"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
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 ++ ". "
|
||||||
|
|
||||||
mkLex 0 line = case words line of
|
mkLex cat 0 line = case words line of
|
||||||
num:sana:_ -> do
|
num:sana:_ -> do
|
||||||
let nimi = "n" ++ init num ++ "_" ++ sana
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
putStrLn $ "fun " ++ nimi ++ "_N : N ;"
|
putStrLn $ "fun " ++ nimi ++ "_" ++ cat ++ " : " ++ cat ++ " ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex 1 line = case words line of
|
mkLex cat 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 = mkN \"" ++ sana ++ "\" ;"
|
putStrLn $ "lin " ++ nimi ++
|
||||||
|
"_" ++ cat ++ " = mk" ++ cat ++ " \"" ++ sana ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex 2 line = case words line of
|
mkLex "V" _ line = case words line of
|
||||||
|
num:sana:_:_:_:_:_:_:sanan:_ -> do
|
||||||
|
let nimi = "n" ++ init num ++ "_" ++ sana
|
||||||
|
putStrLn $ "lin " ++ nimi ++
|
||||||
|
"_V = mk2V <\"" ++ sana ++ "\", \"" ++ sanan ++ "\"> ;"
|
||||||
|
_ -> return ()
|
||||||
|
|
||||||
|
mkLex "N" 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 = mkN \"" ++ sana ++ "\" \"" ++ sanan ++ "\" ;"
|
"_N = mkN \"" ++ sana ++ "\" \"" ++ sanan ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex 3 line = case words line of
|
mkLex "N" 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 = mkN \"" ++ sana ++ "\" \"" ++ sanan ++ "\" \"" ++ sanoja ++ "\" ;"
|
"_N = mkN \"" ++ sana ++ "\" \"" ++ sanan ++ "\" \"" ++ sanoja ++ "\" ;"
|
||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
mkLex 4 line = case words line of
|
mkLex "N" 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 ++
|
||||||
@@ -82,7 +85,7 @@ mkLex 4 line = case words line of
|
|||||||
|
|
||||||
-- to initiate from a noun list that has compounds
|
-- to initiate from a noun list that has compounds
|
||||||
|
|
||||||
mkLex 11 line = case words line of
|
mkLex "N" 11 line = case words line of
|
||||||
_:"--":_ -> return ()
|
_:"--":_ -> return ()
|
||||||
num:sana0:_ -> do
|
num:sana0:_ -> do
|
||||||
let sana = uncompound sana0
|
let sana = uncompound sana0
|
||||||
|
|||||||
@@ -21,6 +21,19 @@ resource Nominal = ResFin ** open MorphoFin,Declensions,CatFin,Prelude in {
|
|||||||
mkA : (hyva,parempi,paras : N) -> (hyvin,paremmin,parhaiten : Str) -> A ;
|
mkA : (hyva,parempi,paras : N) -> (hyvin,paremmin,parhaiten : Str) -> A ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
showN : N -> Utt = \talo ->
|
||||||
|
let t = talo.s in ss (
|
||||||
|
t ! NCase Sg Nom ++
|
||||||
|
t ! NCase Sg Gen ++
|
||||||
|
t ! NCase Sg Part ++
|
||||||
|
t ! NCase Sg Ess ++
|
||||||
|
t ! NCase Sg Illat ++
|
||||||
|
t ! NCase Pl Gen ++
|
||||||
|
t ! NCase Pl Part ++
|
||||||
|
t ! NCase Pl Ess ++
|
||||||
|
t ! NCase Pl Iness ++
|
||||||
|
t ! NCase Pl Illat
|
||||||
|
) ** {lock_Utt = <>} ;
|
||||||
|
|
||||||
mkN = overload {
|
mkN = overload {
|
||||||
mkN : (talo : Str) -> N = mk1N ;
|
mkN : (talo : Str) -> N = mk1N ;
|
||||||
|
|||||||
85
examples/uusisuomi/Verbal.gf
Normal file
85
examples/uusisuomi/Verbal.gf
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
--# -path=.:alltenses
|
||||||
|
|
||||||
|
resource Verbal = ResFin **
|
||||||
|
open MorphoFin,Declensions,Conjugations,CatFin,Prelude in {
|
||||||
|
|
||||||
|
flags optimize=noexpand ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
|
||||||
|
mkV = overload {
|
||||||
|
mkV : (huutaa : Str) -> V = mk1V ;
|
||||||
|
mkV : (huutaa,huusi : Str) -> V = \s,t -> mk2V <s,t> ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
showV : V -> Utt = \v -> ss (
|
||||||
|
v.s ! Inf Inf1 ++
|
||||||
|
v.s ! Presn Sg P1 ++
|
||||||
|
v.s ! Presn Sg P3 ++
|
||||||
|
v.s ! Presn Pl P3 ++
|
||||||
|
v.s ! Imper Pl ++
|
||||||
|
v.s ! Pass True ++
|
||||||
|
v.s ! Impf Sg P1 ++
|
||||||
|
v.s ! Impf Sg P3 ++
|
||||||
|
v.s ! Condit Sg P3 ++
|
||||||
|
v.s ! PastPartAct (AN (NCase Sg Nom)) ++
|
||||||
|
v.s ! PastPartPass (AN (NCase Sg Nom))
|
||||||
|
) ** {lock_Utt = <>} ;
|
||||||
|
|
||||||
|
mk1V : Str -> V = \s -> vforms2V (vForms1 s) ;
|
||||||
|
mk2V : (_ : Str * Str) -> V = \st ->
|
||||||
|
vforms2V (vForms2 st.p1 st.p2) ;
|
||||||
|
|
||||||
|
vForms1 : Str -> VForms = \ottaa ->
|
||||||
|
let
|
||||||
|
a = last ottaa ;
|
||||||
|
otta = init ottaa ;
|
||||||
|
ott = init otta ;
|
||||||
|
ots = init ott + "s" ;
|
||||||
|
ota = weakGrade otta ;
|
||||||
|
otin = init (Declensions.strongGrade (init ott)) + "elin" ;
|
||||||
|
ot = init ota ;
|
||||||
|
in
|
||||||
|
case ottaa of {
|
||||||
|
_ + ("e" | "i" | "o" | "u" | "y" | "ö") + ("a" | "ä") =>
|
||||||
|
cHukkua ottaa (ota + "n") ;
|
||||||
|
_ + ("l" | "n" | "r") + ("taa" | "tää") =>
|
||||||
|
cOttaa ottaa (ota + "n") (ots + "in") (ots + "i") ;
|
||||||
|
("" | C_) + ("a" | "e" | "i") + _ + "aa" =>
|
||||||
|
cOttaa ottaa (ota + "n") (ot + "oin") (ott + "oi") ;
|
||||||
|
_ + ("aa" | "ää") =>
|
||||||
|
cOttaa ottaa (ota + "n") (ot + "in") (ott + "i") ;
|
||||||
|
_ + ("ella" | "ellä") =>
|
||||||
|
cKuunnella ottaa otin ;
|
||||||
|
_ + ("osta" | "östä") =>
|
||||||
|
cJuosta ottaa (init ott + "ksen") ;
|
||||||
|
_ + ("st" | "nn" | "ll" | "rr") + ("a" | "ä") =>
|
||||||
|
cJuosta ottaa (ott + "en") ;
|
||||||
|
_ + ("ita" | "itä") =>
|
||||||
|
cHarkita ottaa ;
|
||||||
|
_ + ("eta" | "etä" | "ota" | "ata" | "uta" | "ytä" | "ätä" | "ötä") =>
|
||||||
|
cPudota ottaa (Declensions.strongGrade ott + "si") ;
|
||||||
|
_ + ("da" | "dä") =>
|
||||||
|
cJuoda ottaa ;
|
||||||
|
_ => Predef.error (["expected infinitive, found"] ++ ottaa)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
vForms2 : (_,_ : Str) -> VForms = \huutaa,huusi ->
|
||||||
|
let
|
||||||
|
huuda = weakGrade (init huutaa) ;
|
||||||
|
huusin = weakGrade huusi + "n" ;
|
||||||
|
autoin = weakGrade (init huusi) + "in" ;
|
||||||
|
in
|
||||||
|
case <huutaa,huusi> of {
|
||||||
|
<_ + ("taa" | "tää"), _ + ("oi" | "öi")> =>
|
||||||
|
cOttaa huutaa (huuda + "n") autoin huusi ;
|
||||||
|
<_ + ("taa" | "tää"), _ + "i"> =>
|
||||||
|
cOttaa huutaa (huuda + "n") huusin huusi ;
|
||||||
|
<_ + ("eta" | "etä"), _ + "eni"> =>
|
||||||
|
cValjeta huutaa huusi ;
|
||||||
|
<_ + ("ita" | "itä"), _ + "isi"> =>
|
||||||
|
cPudota huutaa huusi ;
|
||||||
|
_ => vForms1 huutaa
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
90
examples/uusisuomi/correct-VNSSK.txt
Normal file
90
examples/uusisuomi/correct-VNSSK.txt
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
punoa punon punoo punovat punokaa punotaan punoin punoi punoisi punonut punottu
|
||||||
|
|
||||||
|
muistaa muistan muistaa muistavat muistakaa muistetaan muistin muisti muistaisi muistanut muistettu
|
||||||
|
|
||||||
|
huutaa huudan huutaa huutavat huutakaa huudetaan huusin huusi huutaisi huutanut huudettu
|
||||||
|
|
||||||
|
soutaa soudan soutaa soutavat soutakaa soudetaan soudin souti soutaisi soutanut soudettu
|
||||||
|
|
||||||
|
puoltaa puollan puoltaa puoltavat puoltakaa puolletaan puolsin puolsi puoltaisi puoltanut puollettu
|
||||||
|
|
||||||
|
murtaa murran murtaa murtavat murtakaa murretaan mursin mursi murtaisi murtanut murrettu
|
||||||
|
|
||||||
|
sortaa sorran sortaa sortavat sortakaa sorretaan sorsin sorsi sortaisi sortanut sorrettu
|
||||||
|
|
||||||
|
pahentaa pahennan pahentaa pahentavat pahentakaa pahennetaan pahensin pahensi pahentaisi pahentanut pahennettu
|
||||||
|
|
||||||
|
kaivaa kaivan kaivaa kaivavat kaivakaa kaivetaan kaivoin kaivoi kaivaisi kaivanut kaivettu
|
||||||
|
|
||||||
|
haastaa haastan haastaa haastavat haastakaa haastetaan haastoin haastoi haastaisi haastanut haastettu
|
||||||
|
|
||||||
|
paistaa paistan paistaa paistavat paistakaa paistetaan paistoin paistoi paistaisi paistanut paistettu
|
||||||
|
|
||||||
|
saartaa saarran saartaa saartavat saartakaa saarretaan saarsin saarsi saartaisi saartanut saarrettu
|
||||||
|
|
||||||
|
laskea lasken laskee laskevat laskekaa lasketaan laskin laski laskisi laskenut laskettu
|
||||||
|
|
||||||
|
tuntea tunnen tuntee tuntevat tuntekaa tunnetaan tunsin tunsi tuntisi tuntenut tunnettu
|
||||||
|
|
||||||
|
potea poden potee potevat potekaa podetaan podin poti potisi potenut podettu
|
||||||
|
|
||||||
|
lähteä lähden lähtee lähtevät lähtekää lähdetään lähdin lähti lähtisi lähtenyt lähdetty
|
||||||
|
|
||||||
|
sallia sallin sallii sallivat sallikaa sallitaan sallin salli sallisi sallinut sallittu
|
||||||
|
|
||||||
|
naida nain nai naivat naikaa naidaan nain nai naisi nainut naitu
|
||||||
|
|
||||||
|
saada saan saa saavat saakaa saadaan sain sai saisi saanut saatu
|
||||||
|
|
||||||
|
myydä myyn myy myyvät myykää myydään myin myi myisi myynyt myyty
|
||||||
|
|
||||||
|
juoda juon juo juovat juokaa juodaan join joi joisi juonut juotu
|
||||||
|
|
||||||
|
viedä vien vie vievät viekää viedään vein vei veisi vienyt viety
|
||||||
|
|
||||||
|
käydä käyn käy käyvät käykää käykö kävin kävi kävisi käynyt käyty
|
||||||
|
|
||||||
|
nuolaista nuolaisen nuolaisee nuolaisevat nuolaiskaa nuolaistaan nuolaisin nuolaisi nuolaisisi nuolaissut nuolaistu
|
||||||
|
|
||||||
|
tulla tulen tulee tulevat tulkaa tullaan tulin tuli tulisi tullut tultu
|
||||||
|
|
||||||
|
purra puren puree purevat purkaa purraan purin puri purisi purrut purtu
|
||||||
|
|
||||||
|
mennä menen menee menevät menkää mennään menin meni menisi mennyt menty
|
||||||
|
|
||||||
|
katsella katselen katselee katselevat katselkaa katsellaan katselin katseli katselisi katsellut katseltu
|
||||||
|
|
||||||
|
arvailla arvailen arvailee arvailevat arvailkaa arvaillaan arvailin arvaili arvailisi arvaillut arvailtu
|
||||||
|
|
||||||
|
haravoida haravoin haravoi haravoivat haravoikaa haravoidaan haravoin haravoi haravoisi haravoinut haravoitu
|
||||||
|
|
||||||
|
valita valitsen valitse valitsevat valitkaa valitaan valitsin valitsi valitsisi valinnut valittu
|
||||||
|
|
||||||
|
juosta juoksen juoksee juoksevat juoskaa juostaan juoksin juoksi juoksisi juossut juostu
|
||||||
|
|
||||||
|
nähdä näen näkee näkevät nähkää nähkö näin näki näkisi nähnyt nähty
|
||||||
|
|
||||||
|
aleta alenen alenee alenevat aletkaa aletaan alenin aleni alenisi alennut alettu
|
||||||
|
|
||||||
|
salata salaan salaa salaavat salatkaa salataan salasin salasi salaisi salannut salattu
|
||||||
|
|
||||||
|
katketa katkean katkeaa katkeavat katketkaa katketaan katkesin katkesi katkeaisi katkennut katkettu
|
||||||
|
|
||||||
|
selvitä selviän selviää selviävät selvitkää selvitään selvisin selvisi selviäisi selvinnyt selvitty
|
||||||
|
|
||||||
|
kohota kohoan kohoaa kohoavat kohotkaa kohotaan kohosin kohosi kohoaisi kohonnut kohottu
|
||||||
|
|
||||||
|
haluta haluan haluaa haluavat halutkaa halutaan halusin halusi haluaisi halunnut haluttu
|
||||||
|
|
||||||
|
palata palaan palaa palaavat palatkaa palataan palasin palasi palaisi palannut palattu
|
||||||
|
|
||||||
|
kihistä kihisen kihisee kihisevät kihiskää kihistään kihisin kihisi kihisisi kihissyt kihisty
|
||||||
|
|
||||||
|
rakentaa rakennan rakentaa rakentavat rakentakaa rakennetaan rakensin rakensi rakentaisi rakentanut rakennettu
|
||||||
|
|
||||||
|
taitaa taidan taitaa taitavat taitakaa taidetaan taisin taisi taitaisi tainnut/taitanut taidettu
|
||||||
|
|
||||||
|
antautua antaudun antautuu antautuvat antautukaa antaudutaan antauduin antautui antautuisi antautunut antauduttu
|
||||||
|
|
||||||
|
kaata kaadan kaataa kaatavat kaatkaa kaatko kaasin kaasi kaataisi kaannut kaattu
|
||||||
|
|
||||||
108
examples/uusisuomi/correct-VOmat.txt
Normal file
108
examples/uusisuomi/correct-VOmat.txt
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
hakea haen hakee hakevat hakekaa haetaan hain haki hakisi hakenut haettu
|
||||||
|
|
||||||
|
päteä päden pätee pätevät pätekää pädetään pädin päti pätisi pätenyt pädetty
|
||||||
|
|
||||||
|
sopia sovin sopii sopivat sopikaa sovitaan sovin sopi sopisi sopinut sovittu
|
||||||
|
|
||||||
|
räkiä räin räkii räkivät räkikää räitään räin räki räkisi räkinyt räitty
|
||||||
|
|
||||||
|
sitoa sidon sitoo sitovat sitokaa sidotaan sidoin sitoi sitoisi sitonut sidottu
|
||||||
|
|
||||||
|
hukkua hukun hukkuu hukkuvat hukkukaa hukutaan hukuin hukkui hukkuisi hukkunut hukuttu
|
||||||
|
|
||||||
|
häipyä häivyn häipyy häipyvät häipykää häivytään häivyin häipyi häipyisi häipynyt häivytty
|
||||||
|
|
||||||
|
mysöä mysön mysöö mysövät mysökää mysötään mysöin mysöi mysöisi mysönyt mysötty
|
||||||
|
|
||||||
|
kiiltää kiillän kiiltää kiiltävät kiiltäkää kiilletään kiilsin kiilsi kiiltäisi kiiltänyt kiilletty
|
||||||
|
|
||||||
|
sammaltaa sammallan sammaltaa sammaltavat sammaltakaa sammalletaan sammalsin sammalsi sammaltaisi sammaltanut sammallettu
|
||||||
|
|
||||||
|
oksentaa oksennan oksentaa oksentavat oksentakaa oksennetaan oksensin oksensi oksentaisi oksentanut oksennettu
|
||||||
|
|
||||||
|
kumartaa kumarran kumartaa kumartavat kumartakaa kumarretaan kumarsin kumarsi kumartaisi kumartanut kumarrettu
|
||||||
|
|
||||||
|
kattaa katan kattaa kattavat kattakaa katetaan katoin kattoi kattaisi kattanut katettu
|
||||||
|
|
||||||
|
otattaa otatan otattaa otattavat otattakaa otatetaan otatin otatti otattaisi otattanut otatettu
|
||||||
|
|
||||||
|
opastaa opastan opastaa opastavat opastakaa opastetaan opastin opasti opastaisi opastanut opastettu
|
||||||
|
|
||||||
|
sataa sadan sataa satavat satakaa sadetaan sadoin satoi sataisi satanut sadettu
|
||||||
|
|
||||||
|
auttaa autan auttaa auttavat auttakaa autetaan autoin auttoi auttaisi auttanut autettu
|
||||||
|
|
||||||
|
pitää pidän pitää pitävät pitäkää pidetään pidin piti pitäisi pitänyt pidetty
|
||||||
|
|
||||||
|
vetää vedän vetää vetävät vetäkää vedetään vedin veti vetäisi vetänyt vedetty
|
||||||
|
|
||||||
|
ravistaa ravistan ravistaa ravistavat ravistakaa ravistetaan ravistin ravisti ravistaisi ravistanut ravistettu
|
||||||
|
|
||||||
|
kuunnella kuuntelen kuuntelee kuuntelevat kuunnelkaa kuunnellaan kuuntelin kuunteli kuuntelisi kuunnellut kuunneltu
|
||||||
|
|
||||||
|
hypellä hyppelen hyppelee hyppelevät hypelkää hypellään hyppelin hyppeli hyppelisi hypellyt hypelty
|
||||||
|
|
||||||
|
kävellä kävelen kävelee kävelevät kävelkää kävellään kävelin käveli kävelisi kävellyt kävelty
|
||||||
|
|
||||||
|
juosta juoksen juoksee juoksevat juoskaa juostaan juoksin juoksi juoksisi juossut juostu
|
||||||
|
|
||||||
|
syöstä syöksen syöksee syöksevät syöskää syöstään syöksin syöksi syöksisi syössyt syösty
|
||||||
|
|
||||||
|
panna panen panee panevat pankaa pannaan panin pani panisi pannut pantu
|
||||||
|
|
||||||
|
haista haisen haisee haisevat haiskaa haistaan haisin haisi haisisi haissut haistu
|
||||||
|
|
||||||
|
purra puren puree purevat purkaa purraan purin puri purisi purrut purtu
|
||||||
|
|
||||||
|
mennä menen menee menevät menkää mennään menin meni menisi mennyt menty
|
||||||
|
|
||||||
|
palella palelen palelee palelevat palelkaa palellaan palelin paleli palelisi palellut paleltu
|
||||||
|
|
||||||
|
harkita harkitsen harkitse harkitsevat harkitkaa harkitaan harkitsin harkitsi harkitsisi harkinnut harkittu
|
||||||
|
|
||||||
|
merkitä merkitsen merkitse merkitsevät merkitkää merkitään merkitsin merkitsi merkitsisi merkinnyt merkitty
|
||||||
|
|
||||||
|
haljeta halkean halkeaa halkeavat haljetkaa haljetaan halkesin halkesi halkeaisi haljennut haljettu
|
||||||
|
|
||||||
|
valjeta valkenen valkenee valkenevat valjetkaa valjetaan valkenin valkeni valkenisi valjennut valjettu
|
||||||
|
|
||||||
|
kerjetä kerkeän kerkeää kerkeävät kerjetkää kerjetään kerkesin kerkesi kerkeäisi kerjennyt kerjetty
|
||||||
|
|
||||||
|
pelätä pelkään pelkää pelkäävät pelätkää pelätään pelkäsin pelkäsi pelkäisi pelännyt pelätty
|
||||||
|
|
||||||
|
paeta pakenen pakenee pakenevat paetkaa paetaan pakenin pakeni pakenisi paennut paettu
|
||||||
|
|
||||||
|
pudota putoan putoaa putoavat pudotkaa pudotaan putosin putosi putoaisi pudonnut pudottu
|
||||||
|
|
||||||
|
vastata vastaan vastaa vastaavat vastatkaa vastataan vastasin vastasi vastaisi vastannut vastattu
|
||||||
|
|
||||||
|
karhuta karhuan karhuaa karhuavat karhutkaa karhutaan karhusin karhusi karhuaisi karhunnut karhuttu
|
||||||
|
|
||||||
|
älytä älyän älyää älyävät älytkää älytään älysin älysi älyäisi älynnyt älytty
|
||||||
|
|
||||||
|
hypätä hyppään hyppää hyppäävät hypätkää hypätään hyppäsin hyppäsi hyppäisi hypännyt hypätty
|
||||||
|
|
||||||
|
yrjötä yrjöän yrjöää yrjöävät yrjötkää yrjötään yrjösin yrjösi yrjöäisi yrjönnyt yrjötty
|
||||||
|
|
||||||
|
ällötä ällöän ällöää ällöävät ällötkää ällötään ällösin ällösi ällöäisi ällönnyt ällötty
|
||||||
|
|
||||||
|
naida nain nai naivat naikaa naidaan nain nai naisi nainut naitu
|
||||||
|
|
||||||
|
uida uin ui uivat uikaa uidaan uin ui uisi uinut uitu
|
||||||
|
|
||||||
|
haravoida haravoin haravoi haravoivat haravoikaa haravoidaan haravoin haravoi haravoisi haravoinut haravoitu
|
||||||
|
|
||||||
|
saada saan saa saavat saakaa saadaan sain sai saisi saanut saatu
|
||||||
|
|
||||||
|
jäädä jään jää jäävät jääkää jäädään jäin jäi jäisi jäänyt jääty
|
||||||
|
|
||||||
|
huutaa huudan huutaa huutavat huutakaa huudetaan huudin huuti huutaisi huutanut huudettu
|
||||||
|
|
||||||
|
olla olen olee olevat olkaa ollaan olin oli olisi ollut oltu
|
||||||
|
|
||||||
|
tehdä teen tekee tekevät tehkää tehdään tein teki tekisi tehnyt tehty
|
||||||
|
|
||||||
|
nähdä näen näkee näkevät nähkää nähdään näin näki näkisi nähnyt nähty
|
||||||
|
|
||||||
|
käydä käyn käy käyvät käykää käydään kävin kävi kävisi käynyt käyty
|
||||||
|
|
||||||
@@ -85,6 +85,7 @@ computeTermOpt rec gr = comp where
|
|||||||
(_, FV as) -> mapM (\c -> comp g (App f' c)) as >>= return . variants
|
(_, FV as) -> mapM (\c -> comp g (App f' c)) as >>= return . variants
|
||||||
(FV fs, _) -> mapM (\c -> comp g (App c a')) fs >>= return . variants
|
(FV fs, _) -> mapM (\c -> comp g (App c a')) fs >>= return . variants
|
||||||
(Abs x b,_) -> comp (ext x a' g) b
|
(Abs x b,_) -> comp (ext x a' g) b
|
||||||
|
|
||||||
(QC _ _,_) -> returnC $ App f' a'
|
(QC _ _,_) -> returnC $ App f' a'
|
||||||
|
|
||||||
(Alias _ _ d, _) -> comp g (App d a')
|
(Alias _ _ d, _) -> comp g (App d a')
|
||||||
|
|||||||
Reference in New Issue
Block a user