summaryrefslogtreecommitdiff
path: root/next-lib/src/finnish/ExtraFin.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/finnish/ExtraFin.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/finnish/ExtraFin.gf')
-rw-r--r--next-lib/src/finnish/ExtraFin.gf79
1 files changed, 79 insertions, 0 deletions
diff --git a/next-lib/src/finnish/ExtraFin.gf b/next-lib/src/finnish/ExtraFin.gf
new file mode 100644
index 000000000..5a2bba75b
--- /dev/null
+++ b/next-lib/src/finnish/ExtraFin.gf
@@ -0,0 +1,79 @@
+--# -path=.:abstract:common:prelude
+
+concrete ExtraFin of ExtraFinAbs = CatFin **
+ open ResFin, MorphoFin, Coordination, Prelude, NounFin, StructuralFin in {
+
+ lin
+ GenNP np = {
+ s1 = \\_,_ => np.s ! NPCase Gen ;
+ s2 = [] ;
+ isNum = False ;
+ isPoss = False ;
+ isDef = True --- "Jussin kolme autoa ovat" ; thus "...on" is missing
+ } ;
+
+
+ lincat
+ VPI = {s : Str} ;
+ [VPI] = {s1,s2 : Str} ;
+ lin
+ BaseVPI = twoSS ;
+ ConsVPI = consrSS comma ;
+
+ MkVPI vp = {s = infVP (NPCase Nom) Pos (agrP3 Sg) vp Inf1} ;
+ ConjVPI = conjunctDistrSS ;
+ ComplVPIVV vv vpi =
+ insertObj (\\_,_,_ => vpi.s) (predV vv) ;
+
+ AdvExistNP adv np =
+ mkClause (\_ -> adv.s) np.a (insertObj
+ (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = "ko"}))) ;
+
+ RelExistNP prep rp np = {
+ s = \\t,ant,bo,ag =>
+ let cl =
+ mkClause
+ (\_ -> appCompl True Pos prep (rp2np ag.n rp))
+ np.a
+ (insertObj
+ (\\_,b,_ => np.s ! NPCase Nom)
+ (predV (verbOlla ** {sc = NPCase Nom ; qp = "ko"}))) ;
+ in
+ cl.s ! t ! ant ! bo ! SDecl ;
+ c = NPCase Nom
+ } ;
+
+ AdvPredNP adv v np =
+ mkClause (\_ -> adv.s) np.a (insertObj
+ (\\_,b,_ => np.s ! NPCase Nom) (predV v)) ;
+
+ i_implicPron = mkPronoun [] "minun" "minua" "minuna" "minuun" Sg P1 ;
+ whatPart_IP = {
+ s = table {
+ NPCase Nom | NPAcc => "mitä" ;
+ c => whatSg_IP.s ! c
+ } ;
+ n = Sg
+ } ;
+
+ PartCN cn =
+ let
+ acn = DetCN (DetQuant IndefArt NumSg) cn
+ in {
+ s = table {
+ NPCase Nom | NPAcc => acn.s ! NPCase Part ;
+ c => acn.s ! c
+ } ;
+ a = acn.a ;
+ isPron = False
+ } ;
+
+
+ vai_Conj = {s1 = [] ; s2 = "vai" ; n = Sg} ;
+
+
+ CompPartAP ap = {
+ s = \\agr => ap.s ! False ! AN (NCase agr.n Part)
+ } ;
+
+}