1
0
forked from GitHub/gf-core

Poss,Part,Count NP in Scandinavian

This commit is contained in:
aarne
2013-03-13 14:21:26 +00:00
parent 0dc182c216
commit b3e1908c78
7 changed files with 33 additions and 2 deletions

View File

@@ -79,4 +79,7 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in {
} ;
hur_IAdv = {s = "hvor"} ;
av_Prep = "af" ;
}

View File

@@ -90,4 +90,5 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
hur_IAdv = {s = "hvor"} ;
av_Prep = "av" ;
}

View File

@@ -1,7 +1,7 @@
concrete ExtraNor of ExtraNorAbs = ExtraScandNor ** open CommonScand, ResNor, Prelude in {
lin
PossNP np pro = {
PossNPPron np pro = {
s = \\c => np.s ! NPNom ++ pro.s ! NPPoss (gennumAgr np.a) (caseNP c) ;
a = np.a
} ;

View File

@@ -4,6 +4,6 @@
abstract ExtraNorAbs = ExtraScandAbs ** {
fun
PossNP : NP -> Pron -> NP ; -- bilen min
PossNPPron : NP -> Pron -> NP ; -- bilen min
}

View File

@@ -65,5 +65,6 @@ interface DiffScand = open CommonScand, Prelude in {
hur_IAdv : {s : Str} ;
av_Prep : Str ;
}

View File

@@ -202,4 +202,28 @@ incomplete concrete NounScand of Noun =
g = g ;
isMod = cn.isMod
} ;
PossNP cn np = let g = cn.g in {
s = \\n,d,c => cn.s ! n ! d ! Nom ++ av_Prep ++ np.s ! NPAcc ; --c -- "np's cn" would not work, because it can't get a determiner; use Extra.GenNP
g = g ;
isMod = cn.isMod
} ;
PartNP cn np = let g = cn.g in {
s = \\n,d,c => cn.s ! n ! d ! Nom ++ np.s ! NPAcc ; --c -- also possible: "ett glas av vin", but can be built with part_Prep
g = g ;
isMod = cn.isMod
} ;
CountNP det np =
let
g = np.a.g ;
ng = case g of {Utr => utrum ; _ => neutrum} ; ---- misses Nor feminine
m = True ; ---- see DetNP above
in {
s = \\c => det.sp ! m ! ng ++ av_Prep ++ np.s ! NPAcc ;
a = agrP3 g det.n
} ;
}

View File

@@ -81,4 +81,6 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
} ;
hur_IAdv = {s = "hur"} ;
av_Prep = "av" ;
}