summaryrefslogtreecommitdiff
path: root/next-lib/src/finnish/NounFin.gf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-11-05 19:28:14 +0000
committeraarne <aarne@cs.chalmers.se>2008-11-05 19:28:14 +0000
commitbd6fb074aa928e95a4b6a12a0e1b270b3d14cbc6 (patch)
tree02c11fa38780d9c54248ce51e5c323f953c5a8a5 /next-lib/src/finnish/NounFin.gf
parent5f78c8fa677908383b0452bfef716092f10d16d1 (diff)
bug fixes in Finnish
Diffstat (limited to 'next-lib/src/finnish/NounFin.gf')
-rw-r--r--next-lib/src/finnish/NounFin.gf17
1 files changed, 12 insertions, 5 deletions
diff --git a/next-lib/src/finnish/NounFin.gf b/next-lib/src/finnish/NounFin.gf
index 3d0d79bcf..6923fe45f 100644
--- a/next-lib/src/finnish/NounFin.gf
+++ b/next-lib/src/finnish/NounFin.gf
@@ -1,4 +1,4 @@
-concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
+concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, Prelude in {
flags optimize=all_subs ;
@@ -43,7 +43,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
} ;
in {
s = \\c => let k = npform2case n c in
- det.s1 ! k ; -- det.s2 is possessive suffix
+ det.sp ! k ; -- det.s2 is possessive suffix
a = agrP3 (case det.isDef of {
False => Sg ; -- autoja menee; kolme autoa menee
_ => det.n
@@ -78,24 +78,26 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
DetQuantOrd quant num ord = {
s1 = \\c => quant.s1 ! num.n ! c ++ num.s ! Sg ! c ++ ord.s ! NCase Pl c ;
+ sp = \\c => quant.sp ! num.n ! c ++ num.s ! Sg ! c ++ ord.s ! NCase Pl c ;
s2 = quant.s2 ;
n = num.n ;
isNum = num.isNum ;
isPoss = quant.isPoss ;
- isDef = True
+ isDef = quant.isDef
} ;
DetQuant quant num = {
s1 = \\c => quant.s1 ! num.n ! c ++ num.s ! Sg ! c ;
+ sp = \\c => quant.sp ! num.n ! c ++ num.s ! Sg ! c ;
s2 = quant.s2 ;
n = num.n ;
isNum = case num.n of {Sg => False ; _ => True} ;
isPoss = quant.isPoss ;
- isDef = True
+ isDef = quant.isDef
} ;
PossPron p = {
- s1 = \\_,_ => p.s ! NPCase Gen ;
+ s1,sp = \\_,_ => p.s ! NPCase Gen ;
s2 = BIND ++ possSuffix p.a ;
isNum = False ;
isPoss = True ;
@@ -128,6 +130,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
DefArt = {
s1 = \\_,_ => [] ;
+ sp = table {Sg => pronSe.s ; Pl => pronNe.s} ;
s2 = [] ;
isNum,isPoss = False ;
isDef = True -- autot ovat
@@ -135,6 +138,9 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
IndefArt = {
s1 = \\_,_ => [] ; -- Nom is Part in Pl: use isDef in DetCN
+ sp = \\n,c =>
+ (nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
+ "yksien" "yksiä" "yksiin")).s ! NCase n c ;
s2 = [] ;
isNum,isPoss,isDef = False -- autoja on
} ;
@@ -201,4 +207,5 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
_ => Sg ---
} ;
+
}