forked from GitHub/gf-rgl
complete RGL implementation for Mongolian by Nyamsuren Erdenebadrakh
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
--# -path=.:../abstract:../common:../../prelude
|
||||
|
||||
concrete IdiomMon of Idiom = CatMon ** open Prelude, ResMon, ParadigmsMon in {
|
||||
|
||||
flags optimize=all_subs ; coding=utf8 ;
|
||||
|
||||
lin
|
||||
ImpersCl vp = mkClause (\\_ => []) Sg vp.vt Nom vp ;
|
||||
GenericCl vp = mkClause (\\_ => []) Sg vp.vt Nom vp ;
|
||||
|
||||
CleftNP np rs = mkClause (\\_ => []) Sg (predV (auxToVerb auxBe)).vt Nom (insertEmbedCompl (rs.s ! ComplSubj) (insertObj (\\_ => np.s ! Nom) (predV (auxToVerb auxBe)))) ;
|
||||
|
||||
CleftAdv adv s = mkClause (\\_ => []) Sg (predV (auxToVerb auxBe)).vt Nom (insertObj (\\_ => s.s ! (Part Subject)) (insertObj (\\_ => adv.s) (predV (auxToVerb auxBe)))) ;
|
||||
|
||||
ExistNP np = mkClause (\\_ => []) np.n (predV (auxToVerb auxBe)).vt Nom (insertObj (\\_ => np.s ! Nom) (predV (auxToVerb auxBe))) ;
|
||||
|
||||
ExistIP ip = {
|
||||
s = \\t,ant,pol,_ => ip.s ! Nom ++ (mkClause (\\_ => []) Sg (predV (auxToVerb auxBe)).vt Nom (predV (auxToVerb auxBe))).s ! t ! ant ! pol ! Main
|
||||
} ;
|
||||
ExistNPAdv np adv = mkClause (\\_ => []) np.n (predV (auxToVerb auxBe)).vt Nom (insertObj (\\_ => np.s ! Nom ++ adv.s) (predV (auxToVerb auxBe))) ;
|
||||
|
||||
ExistIPAdv ip adv = {
|
||||
s = \\t,ant,pol,_ => (mkClause (\\_ => ip.s ! Nom) Sg (predV (auxToVerb auxBe)).vt Nom (insertObj (\\_ => adv.s)(predV (auxToVerb auxBe)))).s ! t ! ant ! pol ! Main
|
||||
} ;
|
||||
|
||||
ProgrVP vp =
|
||||
let
|
||||
progr = (vp.s ! VPCoord Simul).fin ;
|
||||
verb = predV (auxToVerb auxBe)
|
||||
in
|
||||
insertObj (\\rc => vp.embedCompl ! rc ++ vp.adv ++ vp.compl ! rc ++ progr) (predV (auxToVerb auxBe)) ;
|
||||
|
||||
ImpPl1 vp =
|
||||
let
|
||||
vps = vp.s ! VPImper Pos False
|
||||
in {
|
||||
s = vps.fin ;
|
||||
compl = vp.compl ;
|
||||
adv = vp.adv ;
|
||||
ext = vp.ext
|
||||
} ;
|
||||
|
||||
ImpP3 np vp =
|
||||
let
|
||||
vps = vp.s ! VPPass Causative ClPres
|
||||
in {
|
||||
s = np.s ! Acc ++ vps.fin
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user