summaryrefslogtreecommitdiff
path: root/next-lib/src/romance/SentenceRomance.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/SentenceRomance.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/SentenceRomance.gf')
-rw-r--r--next-lib/src/romance/SentenceRomance.gf94
1 files changed, 94 insertions, 0 deletions
diff --git a/next-lib/src/romance/SentenceRomance.gf b/next-lib/src/romance/SentenceRomance.gf
new file mode 100644
index 000000000..311c64c34
--- /dev/null
+++ b/next-lib/src/romance/SentenceRomance.gf
@@ -0,0 +1,94 @@
+incomplete concrete SentenceRomance of Sentence =
+ CatRomance ** open Prelude, CommonRomance, ResRomance in {
+
+ flags optimize=all_subs ;
+
+ lin
+ PredVP np vp = mkClause (np.s ! Aton Nom) np.hasClit np.a vp ;
+
+ PredSCVP sc vp = mkClause sc.s False (agrP3 Masc Sg) vp ;
+
+ ImpVP vpr = let vp = useVP vpr in {
+ s = \\p,i,g => case i of {
+ ImpF n b => (mkImperative b P2 vp).s ! p ! (aagr g n)
+ }
+ } ;
+
+ SlashVP np v2 =
+ -- agreement decided afterwards: la fille qu'il a trouvée
+ {s = \\ag =>
+ let vp = case <v2.c2.c, v2.c2.isDir> of {
+ <Acc,True> => insertAgr ag v2 ;
+ _ => v2
+ }
+ in (mkClause (np.s ! Aton Nom) np.hasClit np.a vp).s ;
+ c2 = v2.c2
+ } ;
+
+{---b
+ SlashV2 np v2 =
+ {s = \\d,ag =>case <v2.c2.c,v2.c2.isDir> of {
+ <Acc,True> =>
+ (mkClause (np.s ! Aton Nom) np.hasClit np.a
+ (insertAgr ag (predV v2))).s ! d ;
+ _ => (mkClause (np.s ! Aton Nom) np.hasClit np.a (predV v2)).s ! d
+ } ;
+ c2 = v2.c2
+ } ;
+
+ SlashVVV2 np vv v2 =
+ {s = \\d,_ =>
+ (mkClause
+ (np.s ! Aton Nom) np.hasClit np.a
+ (insertComplement
+ (\\a => prepCase vv.c2.c ++ v2.s ! VInfin False) (predV vv))).s ! d;
+ c2 = v2.c2
+ } ;
+-}
+ AdvSlash slash adv = {
+ s = \\ag,d,t,a,b,m => slash.s ! ag ! d ! t ! a ! b ! m ++ adv.s ;
+ c2 = slash.c2
+ } ;
+
+ SlashPrep cl prep = {
+ s = \\_ => cl.s ;
+ c2 = {s = prep.s ; c = prep.c ; isDir = False}
+ } ;
+
+ SlashVS np vs slash =
+ {s = \\ag =>
+ (mkClause
+ (np.s ! Aton Nom) np.hasClit np.a
+ (insertExtrapos (\\b => conjThat ++ slash.s ! ag ! (vs.m ! b))
+ (predV vs))
+ ).s ;
+ c2 = slash.c2
+ } ;
+
+ EmbedS s = {s = conjThat ++ s.s ! Indic} ; --- mood
+ EmbedQS qs = {s = qs.s ! QIndir} ;
+ EmbedVP vp = {s = infVP vp (agrP3 Masc Sg)} ; --- agr ---- compl
+
+ UseCl t p cl = {
+ s = \\o => t.s ++ p.s ++ cl.s ! DDir ! t.t ! t.a ! p.p ! o
+ } ;
+ UseQCl t p cl = {
+ s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! q
+ } ;
+ UseRCl t p cl = {
+ s = \\r,ag => t.s ++ p.s ++ cl.s ! ag ! t.t ! t.a ! p.p ! r ;
+ c = cl.c
+ } ;
+ UseSlash t p cl = {
+ s = \\ag,mo =>
+ t.s ++ p.s ++ cl.s ! ag ! DDir ! t.t ! t.a ! p.p ! mo ;
+ c2 = cl.c2
+ } ;
+
+ AdvS a s = {s = \\o => a.s ++ "," ++ s.s ! o} ;
+
+ RelS s r = {
+ s = \\o => s.s ! o ++ "," ++ partQIndir ++ r.s ! Indic ! agrP3 Masc Sg
+ } ;
+
+}