mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-19 09:49:33 -06:00
113 lines
3.2 KiB
Plaintext
113 lines
3.2 KiB
Plaintext
incomplete concrete VerbRomance of Verb =
|
|
CatRomance ** open Prelude, CommonRomance, ResRomance in {
|
|
|
|
flags optimize=all_subs ;
|
|
|
|
lin
|
|
UseV = predV ;
|
|
|
|
ComplVV v vp =
|
|
insertComplement (\\a => prepCase v.c2.c ++ infVP vp a) (predV v) ;
|
|
ComplVS v s = insertExtrapos (\\b => conjThat ++ s.s ! (v.m ! b)) (predV v) ;
|
|
ComplVQ v q = insertExtrapos (\\_ => q.s ! QIndir) (predV v) ;
|
|
ComplVA v ap =
|
|
insertComplement (\\a => let agr = complAgr a in ap.s ! AF agr.g agr.n) (predV v) ;
|
|
|
|
SlashV2a v = mkVPSlash v.c2 (predV v) ;
|
|
|
|
Slash2V3 v np = mkVPSlash v.c3 (insertObject v.c2 np (predV v)) ;
|
|
Slash3V3 v np = mkVPSlash v.c2 (insertObject v.c3 np (predV v)) ;
|
|
|
|
SlashV2V v vp =
|
|
mkVPSlash v.c2
|
|
(insertComplement
|
|
(\\a => prepCase v.c3.c ++ infVP vp a)
|
|
(predV v)) ;
|
|
|
|
SlashV2S v s =
|
|
mkVPSlash v.c2
|
|
(insertExtrapos
|
|
(\\b => conjThat ++ s.s ! Indic) ---- mood
|
|
(predV v)) ;
|
|
|
|
SlashV2Q v q =
|
|
mkVPSlash v.c2
|
|
(insertExtrapos
|
|
(\\_ => q.s ! QIndir)
|
|
(predV v)) ;
|
|
|
|
{- ---- lincat should be fixed
|
|
SlashV2A v ap =
|
|
|
|
let af = case v.c3.isDir of {
|
|
True => AF np.a.g np.a.n ; -- ... bleues
|
|
_ => AF Masc Sg -- il les peint en bleu
|
|
}
|
|
-}
|
|
|
|
SlashV2A v ap =
|
|
let af = AF Masc Sg
|
|
in
|
|
mkVPSlash v.c2
|
|
(insertComplement
|
|
(\\_ => v.c3.s ++ prepCase v.c3.c ++ ap.s ! af)
|
|
(predV v)) ;
|
|
|
|
ComplSlash vp np = insertObject vp.c2 np vp ;
|
|
|
|
ReflVP v = case v.c2.isDir of {
|
|
True => insertRefl v ;
|
|
False => insertComplement
|
|
(\\a => let agr = verbAgr a in v.c2.s ++ reflPron agr.n agr.p v.c2.c) v
|
|
} ;
|
|
|
|
SlashVV v vp =
|
|
mkVPSlash vp.c2
|
|
(insertComplement (\\a => prepCase v.c2.c ++ infVP vp a) (predV v)) ;
|
|
|
|
SlashV2VNP v np vps = let obj = np.s ! v.c2.c in {
|
|
s = v ;
|
|
agr = partAgr v.vtyp ;
|
|
clit1 = obj.c1 ;
|
|
clit2 = obj.c2 ;
|
|
clit3 = {s,imp = [] ; hasClit = False} ; ---- shortcut from insertObject, to check AR 20/11/2013
|
|
isNeg = False ;
|
|
neg = negation ;
|
|
comp = \\a => v.c2.s ++ obj.comp ++ prepCase v.c3.c ++ infVP vps a ;
|
|
ext = \\p => [] ;
|
|
c2 = vps.c2
|
|
} ;
|
|
|
|
{- ---- this takes ages to compile, hence inlined as above AR 20/11/2013
|
|
SlashV2VNP v np vp =
|
|
mkVPSlash vp.c2
|
|
(insertComplement
|
|
(\\a => prepCase v.c3.c ++ infVP vp a)
|
|
(insertObject v.c2 np (predV v))) ;
|
|
-}
|
|
|
|
|
|
UseComp comp = insertComplement comp.s (predV copula) ;
|
|
|
|
UseCopula = predV copula ;
|
|
|
|
CompAP ap = {s = \\ag => let agr = complAgr ag in ap.s ! AF agr.g agr.n} ;
|
|
CompCN cn = { s = \\ag =>
|
|
let agr = complAgr ag in
|
|
artIndef cn.g agr.n Nom ++ cn.s ! agr.n
|
|
}; --- RE 7/12/2010 -- AR added indef 2/8/2011
|
|
CompNP np = {s = \\_ => (np.s ! Nom).ton} ;
|
|
CompAdv a = {s = \\_ => a.s} ;
|
|
|
|
AdvVP vp adv = insertAdv adv.s vp ;
|
|
AdVVP adv vp = insertAdV adv.s vp ;
|
|
|
|
PassV2 v = insertComplement
|
|
(\\a => let agr = complAgr a in v.s ! VPart agr.g agr.n) (predV auxPassive) ;
|
|
|
|
VPSlashPrep vp prep = vp ** {
|
|
c2 = {s = prep.s ; c = prep.c ; isDir = False}
|
|
} ;
|
|
}
|
|
|