mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
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"} ;
|
hur_IAdv = {s = "hvor"} ;
|
||||||
|
|
||||||
|
av_Prep = "af" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,4 +90,5 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
|
|||||||
|
|
||||||
hur_IAdv = {s = "hvor"} ;
|
hur_IAdv = {s = "hvor"} ;
|
||||||
|
|
||||||
|
av_Prep = "av" ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -4,6 +4,6 @@
|
|||||||
abstract ExtraNorAbs = ExtraScandAbs ** {
|
abstract ExtraNorAbs = ExtraScandAbs ** {
|
||||||
|
|
||||||
fun
|
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} ;
|
hur_IAdv : {s : Str} ;
|
||||||
|
|
||||||
|
av_Prep : Str ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,4 +81,6 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
hur_IAdv = {s = "hur"} ;
|
hur_IAdv = {s = "hur"} ;
|
||||||
|
av_Prep = "av" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user