summaryrefslogtreecommitdiff
path: root/old-lib/resource/finnish/SentenceFin.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/finnish/SentenceFin.gf
parent3049b59b35b25381a7c6787444165c200d66e08b (diff)
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'old-lib/resource/finnish/SentenceFin.gf')
-rw-r--r--old-lib/resource/finnish/SentenceFin.gf67
1 files changed, 67 insertions, 0 deletions
diff --git a/old-lib/resource/finnish/SentenceFin.gf b/old-lib/resource/finnish/SentenceFin.gf
new file mode 100644
index 000000000..8ea12f2d8
--- /dev/null
+++ b/old-lib/resource/finnish/SentenceFin.gf
@@ -0,0 +1,67 @@
+concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
+
+ flags optimize=all_subs ;
+
+ lin
+
+ PredVP np vp = mkClause (subjForm np vp.sc) np.a vp ;
+
+ PredSCVP sc vp = mkClause (\_ -> sc.s) (agrP3 Sg) vp ;
+
+ ImpVP vp = {
+ s = \\pol,n =>
+ let
+ agr = {n = n ; p = P2} ;
+ verb = vp.s ! VIImper ! Simul ! pol ! agr ;
+ compl = vp.s2 ! False ! pol ! agr ++ vp.ext --- False = like inf (osta auto)
+ in
+ verb.fin ++ verb.inf ++ compl ;
+ } ;
+
+-- The object case is formed at the use site of $c2$, in $Relative$ and $Question$.
+
+ SlashVP np vp = {
+ s = \\t,a,p => (mkClause (subjForm np vp.sc) np.a vp).s ! t ! a ! p ! SDecl ;
+ c2 = vp.c2
+ } ;
+
+ AdvSlash slash adv = {
+ s = \\t,a,b => slash.s ! t ! a ! b ++ adv.s ;
+ c2 = slash.c2
+ } ;
+
+ SlashPrep cl prep = {
+ s = \\t,a,p => cl.s ! t ! a ! p ! SDecl ;
+ c2 = prep
+ } ;
+
+ SlashVS np vs slash = {
+ s = \\t,a,p =>
+ (mkClause (subjForm np vs.sc) np.a
+ (insertExtrapos ("että" ++ slash.s)
+ (predV vs))
+ ).s ! t ! a ! p ! SDecl ;
+ c2 = slash.c2
+ } ;
+
+
+ EmbedS s = {s = etta_Conj ++ s.s} ;
+ EmbedQS qs = {s = qs.s} ;
+ EmbedVP vp = {s = infVP (NPCase Nom) Pos (agrP3 Sg) vp Inf1} ; --- case,pol,agr,infform
+
+ UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! SDecl} ;
+ UseQCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p} ;
+ UseRCl t a p cl = {
+ s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r ;
+ c = cl.c
+ } ;
+ UseSlash t a p cl = {
+ s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ;
+ c2 = cl.c2
+ } ;
+
+ AdvS a s = {s = a.s ++ s.s} ;
+
+ RelS s r = {s = s.s ++ "," ++ r.s ! agrP3 Sg} ; ---- mikä
+
+}