summaryrefslogtreecommitdiff
path: root/next-lib/src/romance/RelativeRomance.gf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-09-22 11:49:15 +0000
committeraarne <aarne@cs.chalmers.se>2008-09-22 11:49:15 +0000
commit98665df78b8018af30051cb4a9a31f845e0ba19d (patch)
tree67ba30b09e2b9590a00a4b193bf7611caa935af8 /next-lib/src/romance/RelativeRomance.gf
parent4862018f140a1bdcc7961d445ed9aa92facd742f (diff)
moved lib/next-resource to next-lib/src, to enable linking with next-lib as value of GF_LIB_PATH
Diffstat (limited to 'next-lib/src/romance/RelativeRomance.gf')
-rw-r--r--next-lib/src/romance/RelativeRomance.gf50
1 files changed, 50 insertions, 0 deletions
diff --git a/next-lib/src/romance/RelativeRomance.gf b/next-lib/src/romance/RelativeRomance.gf
new file mode 100644
index 000000000..40b83c1b3
--- /dev/null
+++ b/next-lib/src/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
+ } ;
+
+}