summaryrefslogtreecommitdiff
path: root/old-lib/resource/romance/VerbRomance.gf
diff options
context:
space:
mode:
Diffstat (limited to 'old-lib/resource/romance/VerbRomance.gf')
-rw-r--r--old-lib/resource/romance/VerbRomance.gf119
1 files changed, 119 insertions, 0 deletions
diff --git a/old-lib/resource/romance/VerbRomance.gf b/old-lib/resource/romance/VerbRomance.gf
new file mode 100644
index 000000000..96992bd35
--- /dev/null
+++ b/old-lib/resource/romance/VerbRomance.gf
@@ -0,0 +1,119 @@
+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} ;
+-}
+