diff options
| author | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
| commit | e89fdae2fa1626348d8025824a7469252fa85e42 (patch) | |
| tree | c7d46bbd0494043b4bd6f917a25a7687517d0547 /old-lib/resource/romance/RelativeRomance.gf | |
| parent | 3049b59b35b25381a7c6787444165c200d66e08b (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.gf | 50 |
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 + } ; + +} |
