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"} ; 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"} ; hur_IAdv = {s = "hvor"} ;
av_Prep = "av" ;
} }

View File

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

View File

@@ -4,6 +4,6 @@
abstract ExtraNorAbs = ExtraScandAbs ** { abstract ExtraNorAbs = ExtraScandAbs ** {
fun 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} ; hur_IAdv : {s : Str} ;
av_Prep : Str ;
} }

View File

@@ -202,4 +202,28 @@ incomplete concrete NounScand of Noun =
g = g ; g = g ;
isMod = cn.isMod 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"} ; hur_IAdv = {s = "hur"} ;
av_Prep = "av" ;
} }