forked from GitHub/gf-core
Poss,Part,Count NP in Scandinavian
This commit is contained in:
@@ -79,4 +79,7 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in {
|
||||
} ;
|
||||
|
||||
hur_IAdv = {s = "hvor"} ;
|
||||
|
||||
av_Prep = "af" ;
|
||||
|
||||
}
|
||||
|
||||
@@ -90,4 +90,5 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
|
||||
|
||||
hur_IAdv = {s = "hvor"} ;
|
||||
|
||||
av_Prep = "av" ;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
abstract ExtraNorAbs = ExtraScandAbs ** {
|
||||
|
||||
fun
|
||||
PossNP : NP -> Pron -> NP ; -- bilen min
|
||||
PossNPPron : NP -> Pron -> NP ; -- bilen min
|
||||
|
||||
}
|
||||
@@ -65,5 +65,6 @@ interface DiffScand = open CommonScand, Prelude in {
|
||||
|
||||
hur_IAdv : {s : Str} ;
|
||||
|
||||
av_Prep : Str ;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -81,4 +81,6 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
|
||||
} ;
|
||||
|
||||
hur_IAdv = {s = "hur"} ;
|
||||
av_Prep = "av" ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user