summaryrefslogtreecommitdiff
path: root/next-lib/src/german/VerbGer.gf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-09-22 12:24:28 +0000
committeraarne <aarne@cs.chalmers.se>2008-09-22 12:24:28 +0000
commit766852a64c9816f073100ff720cf7bafab39c043 (patch)
tree8aedd62fb0d8b24d84f2640087b2e958c1ced043 /next-lib/src/german/VerbGer.gf
parent69b96e87ee361b1f95b8de566ef98c3789c53705 (diff)
adapted German to 1.5
Diffstat (limited to 'next-lib/src/german/VerbGer.gf')
-rw-r--r--next-lib/src/german/VerbGer.gf82
1 files changed, 82 insertions, 0 deletions
diff --git a/next-lib/src/german/VerbGer.gf b/next-lib/src/german/VerbGer.gf
new file mode 100644
index 000000000..83b7ae9e5
--- /dev/null
+++ b/next-lib/src/german/VerbGer.gf
@@ -0,0 +1,82 @@
+concrete VerbGer of Verb = CatGer ** open Prelude, ResGer in {
+
+ flags optimize=all_subs ;
+
+ lin
+ UseV = predV ;
+
+ ComplVV v vp =
+ let
+ vpi = infVP v.isAux vp
+ in
+ insertExtrapos vpi.p3 (
+ insertInf vpi.p2 (
+ insertObj vpi.p1 (
+ predVGen v.isAux v))) ;
+
+ ComplVS v s =
+ insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ;
+ ComplVQ v q =
+ insertExtrapos (q.s ! QIndir) (predV v) ;
+ ComplVA v ap = insertObj (\\ _ => ap.s ! APred) (predV v) ;
+
+ SlashV2a v = predV v ** {c2 = v.c2} ;
+
+ Slash2V3 v np =
+ insertObj (\\_ => appPrep v.c2 np.s) (predV v) ** {c2 = v.c3} ;
+ Slash3V3 v np =
+ insertObj (\\_ => appPrep v.c3 np.s) (predV v) ** {c2 = v.c2} ;
+
+ SlashV2S v s =
+ insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ** {c2 = v.c2} ;
+ SlashV2Q v q =
+ insertExtrapos (q.s ! QIndir) (predV v) ** {c2 = v.c2} ;
+ SlashV2V v vp =
+ let
+ vpi = infVP False vp
+ in
+ insertExtrapos vpi.p3 (
+ insertInf vpi.p2 (
+ insertObj vpi.p1 ((predV v)))) ** {c2 = v.c2} ;
+
+ SlashV2A v ap =
+ insertObj (\\_ => ap.s ! APred) (predV v) ** {c2 = v.c2} ;
+
+ ComplSlash vp np = insertObj (\\_ => appPrep vp.c2 np.s) vp ;
+
+ SlashVV v vp =
+ let
+ vpi = infVP v.isAux vp
+ in
+ insertExtrapos vpi.p3 (
+ insertInf vpi.p2 (
+ insertObj vpi.p1 (
+ predVGen v.isAux v))) ** {c2 = vp.c2} ;
+
+ SlashV2VNP v np vp =
+ let
+ vpi = infVP False vp
+ in
+ insertExtrapos vpi.p3 (
+ insertInf vpi.p2 (
+ insertObj vpi.p1 (
+ insertObj (\\_ => appPrep v.c2 np.s) (
+ predV v)))) ** {c2 = v.c2} ;
+
+ UseComp comp = insertAdv (comp.s ! agrP3 Sg) (predV sein_V) ; -- agr not used
+ -- we want to say "ich liebe sie nicht" but not "ich bin alt nicht"
+
+ CompAP ap = {s = \\_ => ap.s ! APred} ;
+ CompNP np = {s = \\_ => np.s ! Nom} ;
+ CompAdv a = {s = \\_ => a.s} ;
+
+ AdvVP vp adv = insertAdv adv.s vp ;
+ AdVVP adv vp = insertAdV adv.s vp ;
+
+ ReflVP vp = insertObj (\\a => appPrep vp.c2 (reflPron ! a)) vp ;
+
+ PassV2 v = insertInf (v.s ! VPastPart APred) (predV werdenPass) ;
+
+---b UseVS, UseVQ = \v -> v ** {c2 = noPreposition Acc} ;
+
+}