mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-06 09:42:50 -06:00
53 lines
1.3 KiB
Plaintext
53 lines
1.3 KiB
Plaintext
concrete IdiomFin of Idiom = CatFin **
|
|
open MorphoFin, ParadigmsFin, Prelude in {
|
|
|
|
flags optimize=all_subs ;
|
|
|
|
lin
|
|
ExistNP np =
|
|
let
|
|
cas : Polarity -> NPForm = \p -> case p of {
|
|
Pos => NPCase Nom ; -- on olemassa luku
|
|
Neg => NPCase Part -- ei ole olemassa lukua
|
|
}
|
|
in
|
|
mkClause noSubj (agrP3 Sg) (insertObj
|
|
(\\_,b,_ => "olemassa" ++ np.s ! cas b) (predV olla)) ;
|
|
|
|
ExistIP ip =
|
|
let
|
|
cas : NPForm = NPCase Part ; --- dep on num, pol?
|
|
vp = insertObj (\\_,b,_ => "olemassa") (predV olla) ;
|
|
cl = mkClause (subjForm (ip ** {isPron = False ; a = agrP3 Sg}) cas) (agrP3 Sg) vp
|
|
in {
|
|
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
|
} ;
|
|
|
|
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
|
|
|
|
GenericCl vp = mkClause noSubj (agrP3 Sg) {
|
|
s = \\_ => vp.s ! VIPass ;
|
|
s2 = vp.s2 ;
|
|
ext = vp.ext ;
|
|
sc = vp.sc
|
|
} ;
|
|
|
|
|
|
ProgrVP vp =
|
|
let
|
|
inf = (vp.s ! VIInf Inf3Iness ! Simul ! Pos ! agrP3 Sg).fin ;
|
|
on = predV olla
|
|
in {
|
|
s = on.s ;
|
|
s2 = \\b,p,a => inf ++ vp.s2 ! b ! p ! a ;
|
|
ext = vp.ext ;
|
|
sc = vp.sc
|
|
} ;
|
|
|
|
oper
|
|
olla = verbOlla ** {sc = NPCase Nom} ;
|
|
|
|
noSubj : Polarity -> Str = \_ -> [] ;
|
|
}
|
|
|