summaryrefslogtreecommitdiff
path: root/old-lib/resource/romance/RelativeRomance.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
committeraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
commite89fdae2fa1626348d8025824a7469252fa85e42 (patch)
treec7d46bbd0494043b4bd6f917a25a7687517d0547 /old-lib/resource/romance/RelativeRomance.gf
parent3049b59b35b25381a7c6787444165c200d66e08b (diff)
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'old-lib/resource/romance/RelativeRomance.gf')
-rw-r--r--old-lib/resource/romance/RelativeRomance.gf50
1 files changed, 50 insertions, 0 deletions
diff --git a/old-lib/resource/romance/RelativeRomance.gf b/old-lib/resource/romance/RelativeRomance.gf
new file mode 100644
index 000000000..40b83c1b3
--- /dev/null
+++ b/old-lib/resource/romance/RelativeRomance.gf
@@ -0,0 +1,50 @@
+incomplete concrete RelativeRomance of Relative =
+ CatRomance ** open Prelude, CommonRomance, ResRomance in {
+
+ flags optimize=all_subs ;
+
+ lin
+
+ RelCl cl = {
+ s = \\ag,t,a,p,m => pronSuch ! ag ++ conjThat ++
+ cl.s ! DDir ! t ! a ! p ! m ;
+ c = Nom
+ } ;
+
+ --- more efficient to compile than case inside mkClause; see log.txt
+ RelVP rp vp = case rp.hasAgr of {
+ True => {s = \\ag =>
+ (mkClause
+ (rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) False
+ {g = rp.a.g ; n = rp.a.n ; p = P3}
+ vp).s ! DDir ; c = Nom} ;
+ False => {s = \\ag =>
+ (mkClause
+ (rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) False
+ ag
+ vp).s ! DDir ; c = Nom
+ }
+ } ;
+
+ RelSlash rp slash = {
+ s = \\ag,t,a,p,m =>
+ let aag = {g = ag.g ; n = ag.n}
+ in
+ slash.c2.s ++
+ rp.s ! False ! aag ! slash.c2.c ++
+ slash.s ! aag ! DDir ! t ! a ! p ! m ; --- ragr
+ c = Acc
+ } ;
+
+ FunRP p np rp = {
+ s = \\_,a,c => np.s ! Ton Nom ++ p.s ++ rp.s ! True ! a ! p.c ;
+ a = {g = np.a.g ; n = np.a.n} ;
+ hasAgr = True
+ } ;
+ IdRP = {
+ s = relPron ;
+ a = {g = Masc ; n = Sg} ;
+ hasAgr = False
+ } ;
+
+}