mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
participle agreement with RP and IP in romance
This commit is contained in:
@@ -14,7 +14,10 @@ incomplete concrete CatRomance of Cat =
|
|||||||
-- Sentence
|
-- Sentence
|
||||||
|
|
||||||
Cl = {s : Tense => Anteriority => Polarity => Mood => Str} ;
|
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} ;
|
Imp = {s : Polarity => AAgr => Str} ;
|
||||||
|
|
||||||
-- Question
|
-- Question
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ incomplete concrete QuestionRomance of Question =
|
|||||||
QuestSlash ip slash = {
|
QuestSlash ip slash = {
|
||||||
s = \\t,a,p =>
|
s = \\t,a,p =>
|
||||||
let
|
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
|
who = slash.c2.s ++ ip.s ! slash.c2.c
|
||||||
in table {
|
in table {
|
||||||
QDir => who ++ cls ;
|
QDir => who ++ cls ;
|
||||||
|
|||||||
@@ -27,8 +27,11 @@ incomplete concrete RelativeRomance of Relative =
|
|||||||
|
|
||||||
RelSlash rp slash = {
|
RelSlash rp slash = {
|
||||||
s = \\ag,t,a,p,m =>
|
s = \\ag,t,a,p,m =>
|
||||||
slash.c2.s ++ rp.s ! False ! {g = ag.g ; n = ag.n} ! slash.c2.c ++
|
let aag = {g = ag.g ; n = ag.n}
|
||||||
slash.s ! t ! a ! p ! m ;
|
in
|
||||||
|
slash.c2.s ++
|
||||||
|
rp.s ! False ! aag ! slash.c2.c ++
|
||||||
|
slash.s ! aag ! t ! a ! p ! m ; --- ragr
|
||||||
c = Acc
|
c = Acc
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -134,6 +134,20 @@ oper
|
|||||||
ext = vp.ext ;
|
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 -> {
|
insertAdv : Str -> VP -> VP = \co,vp -> {
|
||||||
s = vp.s ;
|
s = vp.s ;
|
||||||
agr = vp.agr ;
|
agr = vp.agr ;
|
||||||
|
|||||||
@@ -11,23 +11,33 @@ incomplete concrete SentenceRomance of Sentence =
|
|||||||
ImpVP = mkImperative ;
|
ImpVP = mkImperative ;
|
||||||
|
|
||||||
SlashV2 np v2 =
|
SlashV2 np v2 =
|
||||||
mkClause
|
{s = \\ag =>case <v2.c2.c,v2.c2.isDir> of {
|
||||||
(np.s ! Aton Nom) np.a
|
<Acc,True> =>
|
||||||
(predV v2) **
|
(mkClause (np.s ! Aton Nom) np.a
|
||||||
{c2 = v2.c2} ;
|
(insertAgr ag (predV v2))).s ;
|
||||||
|
_ => (mkClause (np.s ! Aton Nom) np.a (predV v2)).s
|
||||||
|
} ;
|
||||||
|
c2 = v2.c2
|
||||||
|
} ;
|
||||||
|
|
||||||
SlashVVV2 np vv v2 =
|
SlashVVV2 np vv v2 =
|
||||||
mkClause
|
{s = \\_ =>
|
||||||
(np.s ! Aton Nom) np.a
|
(mkClause
|
||||||
(insertComplement (\\a => prepCase vv.c2.c ++ v2.s ! VInfin) (predV vv)) **
|
(np.s ! Aton Nom) np.a
|
||||||
{c2 = v2.c2} ;
|
(insertComplement
|
||||||
|
(\\a => prepCase vv.c2.c ++ v2.s ! VInfin) (predV vv))).s ;
|
||||||
|
c2 = v2.c2
|
||||||
|
} ;
|
||||||
|
|
||||||
AdvSlash slash adv = {
|
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
|
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
|
EmbedS s = {s = conjThat ++ s.s ! Indic} ; --- mood
|
||||||
EmbedQS qs = {s = qs.s ! QIndir} ;
|
EmbedQS qs = {s = qs.s ! QIndir} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user