mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-20 02:09:32 -06:00
120 lines
3.4 KiB
Plaintext
120 lines
3.4 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 => ap.s ! AF a.g a.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.c2.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 => v.c2.s ++ reflPron a.n a.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 vp =
|
|
mkVPSlash vp.c2
|
|
(insertComplement
|
|
(\\a => prepCase v.c2.c ++ infVP vp a)
|
|
(insertObject v.c2 np (predV v))) ;
|
|
|
|
UseComp comp = insertComplement comp.s (predV copula) ;
|
|
|
|
CompAP ap = {s = \\ag => ap.s ! AF ag.g ag.n} ;
|
|
CompNP np = {s = \\_ => np.s ! Ton Acc} ;
|
|
CompAdv a = {s = \\_ => a.s} ;
|
|
|
|
AdvVP vp adv = insertAdv adv.s vp ;
|
|
AdVVP adv vp = insertAdV adv.s vp ;
|
|
|
|
PassV2 v = insertComplement (\\a => v.s ! VPart a.g a.n) (predV auxPassive) ;
|
|
|
|
}
|
|
|
|
{---b
|
|
ComplV2 v np1 = insertObject v.c2 np1 (predV v) ;
|
|
ComplV3 v np1 np2 = insertObject v.c3 np2 (insertObject v.c2 np1 (predV v)) ;
|
|
|
|
ComplV2V v np vp =
|
|
insertComplement (\\a => prepCase v.c2.c ++ infVP vp a)
|
|
(insertObject v.c2 np (predV v)) ;
|
|
ComplV2S v np s =
|
|
insertExtrapos (\\b => s.s ! Indic) ---- mood
|
|
(insertObject v.c2 np (predV v)) ;
|
|
ComplV2Q v np q =
|
|
insertExtrapos (\\_ => q.s ! QIndir)
|
|
(insertObject v.c2 np (predV v)) ;
|
|
|
|
ComplV2A v np 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
|
|
}
|
|
in
|
|
insertComplement
|
|
(\\a => v.c3.s ++ prepCase v.c3.c ++ ap.s ! af)
|
|
(insertObject v.c2 np (predV v)) ;
|
|
|
|
ReflV2 v = case v.c2.isDir of {
|
|
True => predV {s = v.s ; vtyp = vRefl} ;
|
|
False => insertComplement
|
|
(\\a => v.c2.s ++ reflPron a.n a.p v.c2.c) (predV v)
|
|
} ;
|
|
|
|
UseVS, UseVQ = \vv -> {s = vv.s ; c2 = complAcc ; vtyp = vv.vtyp} ;
|
|
-}
|
|
|