1
0
forked from GitHub/gf-core

possessive modification bug fix in Finnish

This commit is contained in:
aarne
2006-04-20 20:56:48 +00:00
parent b9c4c1e6fc
commit fe6cf5f366
2 changed files with 17 additions and 8 deletions

View File

@@ -18,9 +18,8 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
<_, Nom, True,_,_> => NCase Sg Part ; -- kolme kytkintä(ni)
<_, _, True,False,_> => NCase Sg c ; -- kolmeksi kytkimeksi
<Pl,Nom, _,_,False> => NCase Pl Part ; -- kytkimiä
<_, Nom,_,True,_> => NPossNom ; -- kytkime+ni on/ovat...
<Sg,Gen,_,True,_> => NPossNom ; -- kytkime+ni vika
<Pl,Gen,_,True,_> => NPossGenPl ; -- kytkimie+ni viat
<_, Nom,_,True,_> => NPossNom n ; -- kytkime+ni on/ovat...
<_, Gen,_,True,_> => NPossNom n ; -- kytkime+ni vika
<_, Transl,_,True,_> => NPossTransl n ; -- kytkim(e|i)kse+ni
<_, Illat,_,True,_> => NPossIllat n ; -- kytkim(ee|ii)+ni
@@ -138,7 +137,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
} ;
AdjCN ap cn = {
s = \\nf => ap.s ! True ! AN nf ++ cn.s ! nf
s = \\nf => ap.s ! True ! AN (n2nform nf) ++ cn.s ! nf
} ;
RelCN cn rs = {s = \\nf => cn.s ! nf ++ rs.s ! agrP3 (numN nf)} ;

View File

@@ -23,7 +23,8 @@ resource ResFin = ParamX ** open Prelude in {
NForm = NCase Number Case
| NComit | NInstruct -- no number dist
| NPossNom | NPossGenPl | NPossTransl Number | NPossIllat Number ;
| NPossNom Number | NPossGen Number --- number needed for syntax of AdjCN
| NPossTransl Number | NPossIllat Number ;
-- Agreement of $NP$ is a record. We'll add $Gender$ later.
@@ -60,6 +61,14 @@ oper
NPAcc => Gen -- appCompl does the job
} ;
n2nform : NForm -> NForm = \nf -> case nf of {
NPossNom n => NCase n Nom ; ----
NPossGen n => NCase n Gen ;
NPossTransl n => NCase n Transl ;
NPossIllat n => NCase n Illat ;
_ => nf
} ;
--2 For $Verb$
@@ -461,8 +470,9 @@ oper
NComit => vetii + "ne" ;
NInstruct => vesii + "n" ;
NPossNom => vete ;
NPossGenPl => Predef.tk 1 vesien ;
NPossNom _ => vete ;
NPossGen Sg => vete ;
NPossGen Pl => Predef.tk 1 vesien ;
NPossTransl Sg => vede + "kse" ;
NPossTransl Pl => vesii + "kse" ;
NPossIllat Sg => Predef.tk 1 veteen ;
@@ -529,7 +539,7 @@ oper
nsa = possSuffix agr
in {
s = table {
NPCase (Nom | Gen) | NPAcc => itse ! NPossNom + nsa ;
NPCase (Nom | Gen) | NPAcc => itse ! NPossNom Sg + nsa ;
NPCase Transl => itse ! NPossTransl Sg + nsa ;
NPCase Illat => itse ! NPossIllat Sg + nsa ;
NPCase c => itse ! NCase Sg c + nsa