Finnish complete

This commit is contained in:
aarne
2006-02-07 18:05:25 +00:00
parent 52dc7d460d
commit 0e4a0f2041
45 changed files with 567 additions and 436 deletions

View File

@@ -1,46 +1,64 @@
concrete SentenceFin of Sentence = CatFin ** open ResFin in {
concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
flags optimize=all_subs ;
lin
PredVP np vp = mkClause (np.s ! vp.sc) np.a vp ;
{-
PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
ImpVP vp = {
s = \\pol,n =>
let
agr = {n = n ; p = P2} ;
verb = infVP vp agr ;
dont = case pol of {
Neg => "don't" ;
_ => []
}
verb = vp.s ! VIImper ! Simul ! pol ! agr ;
compl = vp.s2 ! False ! pol ! agr ++ vp.ext --- False = like inf (osta auto)
in
dont ++ verb
verb.fin ++ verb.inf ++ compl ;
} ;
SlashV2 np v2 =
mkClause (np.s ! Nom) np.a (predV v2) ** {c2 = v2.c2} ;
-- The object case is formed at the use site of $c2$, in $Relative$ and $Question$.
SlashVVV2 np vv v2 =
mkClause (np.s ! Nom) np.a (insertObj (\\_ => "to" ++ v2.s ! VInf) (predV vv)) **
{c2 = v2.c2} ;
SlashV2 np v2 = {
s = \\t,a,p => (mkClause (np.s ! v2.sc) np.a (predV v2)).s ! t ! a ! p ! SDecl ;
c2 = v2.c2
} ;
SlashVVV2 np vv v2 =
let
sc = case v2.sc of {
NPCase Nom => vv.sc ; -- joka minun täytyy pestä
c => c -- joka minulla täytyy olla
}
in
{s = \\t,ag,p =>
(mkClause
(np.s ! sc) np.a
(insertObj
(\\_,b,a => infVP vv.sc b a (predV v2))
(predV vv)
)
).s ! t ! ag ! p ! SDecl ;
c2 = v2.c2
} ;
AdvSlash slash adv = {
s = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ;
s = \\t,a,b => slash.s ! t ! a ! b ++ adv.s ;
c2 = slash.c2
} ;
} ;
SlashPrep cl prep = cl ** {c2 = prep.s} ;
SlashPrep cl prep = {
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl ;
c2 = prep
} ;
EmbedS s = {s = conjThat ++ s.s} ;
EmbedQS qs = {s = qs.s ! QIndir} ;
EmbedVP vp = {s = "to" ++ infVP vp (agrP3 Sg)} ; --- agr
EmbedS s = {s = "että" ++ s.s} ;
EmbedQS qs = {s = qs.s} ;
EmbedVP vp = {s = infVP (NPCase Nom) Pos (agrP3 Sg) vp} ; --- case,pol,agr
UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! ODir} ;
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! SDecl} ;
UseQCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p} ;
UseRCl t a p cl = {s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r} ;
-}
}