Files
gf-core/lib/src/sindhi/RelativeSnd.gf
2013-06-15 20:02:00 +00:00

91 lines
2.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
concrete RelativeSnd of Relative = CatSnd ** open ResSnd in {
flags optimize=all_subs ;
coding = utf8;
lin
RelCl cl = {
s = \\t,p,o,agr => case <t,giveNumber agr,giveGender agr> of {
<VPImpPast,Sg,_> => "جھنکي" ++ cl.s ! t ! p ! o ;
<VPImpPast,Pl,_> => "جھنجو" ++ cl.s ! t ! p ! o ;
<_,Sg,Masc> => "جيھڙو" ++ cl.s ! t ! p ! o ;
<_,Sg,Fem> => "جيھڙا" ++ cl.s ! t ! p ! o ;
<_,Pl,Masc> => "جيھڙا" ++ cl.s ! t ! p ! o ;
<_,Pl,Fem> => "جيھڙيون" ++ cl.s ! t ! p ! o
};
c = Dir
} ;
-- RelVP and RelSlash slows the linking process a lot this is why it is commented for test purposes
RelVP rp vp = {
s = \\t,p,o,ag =>
let
agr = case rp.a of {
RNoAg => ag ;
RAg a => a
} ;
cl = mkSClause (rp.s ! (giveNumber agr) ! (giveGender agr) ! Dir) 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
} ;
---- Pied piping: "ات whiچh wع ارع looڪiنگ". Stranding and empty
---- relative are defined in $ExtraHin.gf$ ("تhات wع ارع looڪiنگ ات",
---- "wع ارع looڪiنگ ات").
--
RelSlash rp slash = {
s = \\t,p,o,agr => rp.s ! (giveNumber agr) ! (giveGender agr) ! Obl ++ slash.c2.s ++ slash.s ! t ! p ! o ;
c = Dir
} ;
FunRP p np rp = {
s = \\n,g,c => rp.s ! n ! g ! c ++ np.s ! NPC c ++ p.s ;
a = RAg np.a
} ;
IdRP = {
s = table {
Sg => table {
Masc => table {
ResSnd.Dir => "جھڙا" ;
ResSnd.Obl => "جنھن" ;
ResSnd.Voc => "جھڙي" ;
ResSnd.Abl => "جھڙي"
};
Fem => table {
ResSnd.Dir => "جھڙي" ;
ResSnd.Obl => "جنھن" ;
ResSnd.Voc => "جھڙي" ;
ResSnd.Abl => "جھڙي"
}
};
Pl => table {
Masc => table {
ResSnd.Dir => "جھڙي" ;
ResSnd.Obl => "جھڙي" ;
ResSnd.Voc => "جھڙي" ;
ResSnd.Abl => "جھڙي"
};
Fem => table {
ResSnd.Dir => "جھڙي" ;
ResSnd.Obl => "جھڙي" ;
ResSnd.Voc => "جھڙي" ;
ResSnd.Abl => "جھڙي"
}
}
};
a = RNoAg
} ;
}