participle agreement with RP and IP in romance

This commit is contained in:
aarne
2006-06-13 13:23:58 +00:00
parent 784a1db90a
commit 161924b0e6
5 changed files with 44 additions and 14 deletions

View File

@@ -14,7 +14,10 @@ incomplete concrete CatRomance of Cat =
-- Sentence
Cl = {s : Tense => Anteriority => Polarity => Mood => Str} ;
Slash = {s : Tense => Anteriority => Polarity => Mood => Str} ** {c2 : Compl} ;
Slash = {
s : AAgr => Tense => Anteriority => Polarity => Mood => Str ;
c2 : Compl
} ;
Imp = {s : Polarity => AAgr => Str} ;
-- Question

View File

@@ -25,7 +25,7 @@ incomplete concrete QuestionRomance of Question =
QuestSlash ip slash = {
s = \\t,a,p =>
let
cls = slash.s ! t ! a ! p ! Indic ;
cls = slash.s ! ip.a ! t ! a ! p ! Indic ;
who = slash.c2.s ++ ip.s ! slash.c2.c
in table {
QDir => who ++ cls ;

View File

@@ -27,8 +27,11 @@ incomplete concrete RelativeRomance of Relative =
RelSlash rp slash = {
s = \\ag,t,a,p,m =>
slash.c2.s ++ rp.s ! False ! {g = ag.g ; n = ag.n} ! slash.c2.c ++
slash.s ! t ! a ! p ! m ;
let aag = {g = ag.g ; n = ag.n}
in
slash.c2.s ++
rp.s ! False ! aag ! slash.c2.c ++
slash.s ! aag ! t ! a ! p ! m ; --- ragr
c = Acc
} ;

View File

@@ -134,6 +134,20 @@ oper
ext = vp.ext ;
} ;
-- Agreement with preceding relative or interrogative:
-- "les femmes que j'ai aimées"
insertAgr : AAgr -> VP -> VP = \ag,vp -> {
s = vp.s ;
agr = vpAgrClit (agrP3 ag.g ag.n) ;
clAcc = vp.clAcc ;
clDat = vp.clDat ;
clit2 = vp.clit2 ;
neg = vp.neg ;
comp = vp.comp ;
ext = vp.ext ;
} ;
insertAdv : Str -> VP -> VP = \co,vp -> {
s = vp.s ;
agr = vp.agr ;

View File

@@ -11,23 +11,33 @@ incomplete concrete SentenceRomance of Sentence =
ImpVP = mkImperative ;
SlashV2 np v2 =
mkClause
(np.s ! Aton Nom) np.a
(predV v2) **
{c2 = v2.c2} ;
{s = \\ag =>case <v2.c2.c,v2.c2.isDir> of {
<Acc,True> =>
(mkClause (np.s ! Aton Nom) np.a
(insertAgr ag (predV v2))).s ;
_ => (mkClause (np.s ! Aton Nom) np.a (predV v2)).s
} ;
c2 = v2.c2
} ;
SlashVVV2 np vv v2 =
mkClause
(np.s ! Aton Nom) np.a
(insertComplement (\\a => prepCase vv.c2.c ++ v2.s ! VInfin) (predV vv)) **
{c2 = v2.c2} ;
{s = \\_ =>
(mkClause
(np.s ! Aton Nom) np.a
(insertComplement
(\\a => prepCase vv.c2.c ++ v2.s ! VInfin) (predV vv))).s ;
c2 = v2.c2
} ;
AdvSlash slash adv = {
s = \\t,a,b,m => slash.s ! t ! a ! b ! m ++ adv.s ;
s = \\ag,t,a,b,m => slash.s ! ag ! t ! a ! b ! m ++ adv.s ;
c2 = slash.c2
} ;
SlashPrep cl prep = cl ** {c2 = {s = prep.s ; c = prep.c ; isDir = False}} ;
SlashPrep cl prep = {
s = \\_ => cl.s ;
c2 = {s = prep.s ; c = prep.c ; isDir = False}
} ;
EmbedS s = {s = conjThat ++ s.s ! Indic} ; --- mood
EmbedQS qs = {s = qs.s ! QIndir} ;