mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-29 18:48:37 -06:00
work on relative clauses
This commit is contained in:
+34
-10
@@ -2,14 +2,14 @@ concrete RelativeLat of Relative = CatLat ** open ResLat in {
|
||||
--
|
||||
-- flags optimize=all_subs ;
|
||||
--
|
||||
-- lin
|
||||
lin
|
||||
--
|
||||
-- RelCl cl = {
|
||||
-- s = \\t,a,p,_ => "such" ++ "that" ++ cl.s ! t ! a ! p ! ODir ;
|
||||
-- c = Nom
|
||||
-- } ;
|
||||
--
|
||||
-- RelVP rp vp = {
|
||||
RelVP rp vp = \\g,n => mkClause (emptyNP ** { s = \\_,c => rp.s ! (Ag g n c) ; g = g ; n = n } ) vp ;
|
||||
-- s = \\t,ant,b,ag =>
|
||||
-- let
|
||||
-- agr = case rp.a of {
|
||||
@@ -25,19 +25,43 @@ concrete RelativeLat of Relative = CatLat ** open ResLat in {
|
||||
---- Pied piping: "at which we are looking". Stranding and empty
|
||||
---- relative are defined in $ExtraLat.gf$ ("that we are looking at",
|
||||
---- "we are looking at").
|
||||
--
|
||||
-- RelSlash rp slash = {
|
||||
--
|
||||
-- RelSlash : RP -> ClSlash -> RCl ;
|
||||
RelSlash rp slash = \\g,n => slash ** { adv = rp.s ! Ag g n Gen } ; -- abuse adverbs again
|
||||
-- s = \\t,a,p,agr =>
|
||||
-- slash.c2 ++ rp.s ! RPrep (fromAgr agr).g ++ slash.s ! t ! a ! p ! ODir ;
|
||||
-- c = Acc
|
||||
-- } ;
|
||||
--
|
||||
-- FunRP p np rp = {
|
||||
-- s = \\c => (combineNounPhrase np) ! PronNonDrop ! Acc ++ p.s ++ rp.s ! RPrep (fromAgr np.a).g ;
|
||||
-- a = RAg np.a
|
||||
-- } ;
|
||||
FunRP p np rp = {
|
||||
s = \\a => case a of { Ag g n c => rp.s ! a ++ p.s ++ (combineNounPhrase np) ! PronNonDrop ! APostN ! DPreN ! Acc };
|
||||
-- s = \\c => (combineNounPhrase np) ! PronNonDrop ! Acc ++ p.s ++ rp.s ! RPrep (fromAgr np.a).g ;
|
||||
-- a = RAg np.a
|
||||
} ;
|
||||
--
|
||||
-- IdRP =
|
||||
IdRP = {
|
||||
s = table {
|
||||
Ag Masc Sg (Nom | Voc) => "qui" ;
|
||||
Ag Fem Sg (Nom | Voc) => "quae" ;
|
||||
Ag Neutr Sg (Nom | Voc) => "quod" ;
|
||||
Ag _ Sg Gen => "cuius" ;
|
||||
Ag _ Sg Dat => "cui" ;
|
||||
Ag Masc Sg Acc => "quem" ;
|
||||
Ag Fem Sg Acc => "quam" ;
|
||||
Ag Neutr Sg Acc => "quod" ;
|
||||
Ag (Masc | Neutr) Sg Abl => "quo" ;
|
||||
Ag Fem Sg Abl => "qua" ;
|
||||
Ag Masc Pl (Nom | Voc) => "qui" ;
|
||||
Ag (Fem | Neutr) Pl (Nom | Voc) => "quae" ;
|
||||
Ag (Masc | Neutr) Pl Gen => "quorum" ;
|
||||
Ag Fem Pl Gen => "quarum" ;
|
||||
Ag _ Pl Dat => "quibus" ;
|
||||
Ag Masc Pl Acc => "quos" ;
|
||||
Ag Fem Pl Acc => "quas" ;
|
||||
Ag Neutr Pl Acc => "quae" ;
|
||||
Ag _ Pl Abl => "cui"
|
||||
}
|
||||
}
|
||||
;
|
||||
-- let varr : Str -> Str = \x -> variants {x ; "that"} --- for bwc
|
||||
-- in {
|
||||
-- s = table {
|
||||
|
||||
Reference in New Issue
Block a user