mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-21 01:06:21 -06:00
(Pes) Support relative pronoun contraction
This commit is contained in:
@@ -6,43 +6,32 @@ concrete RelativePes of Relative = CatPes ** open ResPes in {
|
||||
lin
|
||||
|
||||
RelCl cl = {
|
||||
s = \\t,p,o,agr => "که" ++ cl.s ! t ! p ! o ;
|
||||
};
|
||||
-- RelVP and RelSlash slows the linking process a lot this is why it is commented for test purposes
|
||||
s = \\t,p,agr => cl.s ! t ! p ! ODir ;
|
||||
rp = IdRP.s
|
||||
} ;
|
||||
|
||||
RelVP rp vp = {
|
||||
s = \\t,p,o,ag =>
|
||||
let
|
||||
agr = case rp.a of {
|
||||
RNoAg => ag ;
|
||||
RAg a => a
|
||||
} ;
|
||||
cl = mkSClause (rp.s) agr vp;
|
||||
|
||||
-- cl = case t of {
|
||||
-- VPImpPast => mkSClause (rp.s ! (giveNumber agr) ! Obl) agr vp;
|
||||
-- _ => mkSClause (rp.s ! (giveNumber agr) ! Dir) agr vp
|
||||
-- };
|
||||
in
|
||||
cl.s ! t ! p ! ODir ;
|
||||
-- c = Dir
|
||||
s = \\t,p,ag =>
|
||||
let agr = case rp.a of {
|
||||
RNoAg => ag ;
|
||||
RAg a => a} ;
|
||||
cl = mkSClause [] agr vp;
|
||||
in cl.s ! t ! p ! ODir ;
|
||||
rp = rp.s
|
||||
} ;
|
||||
--
|
||||
|
||||
RelSlash rp slash = {
|
||||
s = \\t,p,o,agr => rp.s ++ slash.c2.s ++ slash.subj ++ slash.vp ! t ! p ! o ;--case t of { ---- AR 18/8/2017 is this the right place of subj?
|
||||
-- VPImpPast => rp.s ! (giveNumber agr) Obl ++ slash.c2.s ++ slash.s ! t ! p ! o ;
|
||||
-- _ => rp.s ! (giveNumber agr) Dir ++ slash.c2.s ++ slash.s ! t ! p ! o
|
||||
-- };
|
||||
-- c = Dir
|
||||
s = \\t,p,agr => slash.c2.s ++ slash.subj ++ slash.vp ! t ! p ! ODir ;--case t of { ---- AR 18/8/2017 is this the right place of subj?
|
||||
rp = rp.s
|
||||
} ;
|
||||
|
||||
FunRP p np rp = {
|
||||
s = np.s ! Clitic ++ rp.s ++ p.s ++ getPron np.animacy (fromAgr np.a).n ; -- need to make a special form of relative np by addY
|
||||
s = \\ke => np.s ! Clitic ++ rp.s ! ke ++ p.s ++ getPron np.animacy (fromAgr np.a).n ;
|
||||
a = RAg np.a
|
||||
} ;
|
||||
|
||||
IdRP = {
|
||||
s = "که" ;
|
||||
s = table {Ke => "که" ; Ance => "آنچه"} ;
|
||||
a = RNoAg
|
||||
} ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user