forked from GitHub/gf-core
Finnish NPSep form, to avoid empty Nominative forms in wrong places in case of pro drop.
This commit is contained in:
@@ -159,7 +159,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
|||||||
IAdvAdv adv = {s = "kuinka" ++ adv.s} ;
|
IAdvAdv adv = {s = "kuinka" ++ adv.s} ;
|
||||||
|
|
||||||
ProDrop p = {
|
ProDrop p = {
|
||||||
s = table {NPCase (Nom) => [] ; c => p.s ! c} ;
|
s = table {NPCase Nom => [] ; c => p.s ! c} ;
|
||||||
poss = [] ;
|
poss = [] ;
|
||||||
-- drop Gen only works in adjectival position: "autoni", but not in "ø täytyy mennä"
|
-- drop Gen only works in adjectival position: "autoni", but not in "ø täytyy mennä"
|
||||||
a = p.a ;
|
a = p.a ;
|
||||||
@@ -167,7 +167,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
ProDropPoss p = {
|
ProDropPoss p = {
|
||||||
s1 = \\_,_ => case p.a of {Ag _ P3 => p.s ! NPCase Gen ; _ => []} ; -- hänen nimensä ; minun nimeni
|
s1 = \\_,_ => case p.a of {Ag _ P3 => p.s ! NPCase Gen ; _ => []} ; -- hänen nimensä ; (minun) nimeni
|
||||||
sp = \\_,_ => p.s ! NPCase Gen ;
|
sp = \\_,_ => p.s ! NPCase Gen ;
|
||||||
s2 = case p.hasPoss of {
|
s2 = case p.hasPoss of {
|
||||||
True => table {Front => BIND ++ possSuffixFront p.a ;
|
True => table {Front => BIND ++ possSuffixFront p.a ;
|
||||||
|
|||||||
@@ -943,7 +943,7 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
|||||||
a = Predef.dp 1 minuna
|
a = Predef.dp 1 minuna
|
||||||
} in
|
} in
|
||||||
{s = table {
|
{s = table {
|
||||||
NPCase Nom => mina ; ----- NPSep
|
NPCase Nom | NPSep => mina ;
|
||||||
NPCase Gen => minun ;
|
NPCase Gen => minun ;
|
||||||
NPCase Part => minua ;
|
NPCase Part => minua ;
|
||||||
NPCase Transl => minu + "ksi" ;
|
NPCase Transl => minu + "ksi" ;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ concrete PhraseFin of Phrase = CatFin ** open ResFin, StemFin, (P = Prelude) in
|
|||||||
|
|
||||||
UttIP ip = {s = ip.s ! NPCase Nom} ;
|
UttIP ip = {s = ip.s ! NPCase Nom} ;
|
||||||
UttIAdv iadv = iadv ;
|
UttIAdv iadv = iadv ;
|
||||||
UttNP np = {s = np.s ! NPAcc} ; ----NPSep} ;
|
UttNP np = {s = np.s ! NPSep} ;
|
||||||
UttVP vp = {s = infVP SCNom Pos (agrP3 Sg) vp Inf1} ;
|
UttVP vp = {s = infVP SCNom Pos (agrP3 Sg) vp Inf1} ;
|
||||||
UttAdv adv = adv ;
|
UttAdv adv = adv ;
|
||||||
UttCN np = {s = np.s ! NCase Sg Nom} ;
|
UttCN np = {s = np.s ! NCase Sg Nom} ;
|
||||||
@@ -23,6 +23,6 @@ concrete PhraseFin of Phrase = CatFin ** open ResFin, StemFin, (P = Prelude) in
|
|||||||
PConjConj conj = {s = conj.s2} ;
|
PConjConj conj = {s = conj.s2} ;
|
||||||
|
|
||||||
NoVoc = {s = []} ;
|
NoVoc = {s = []} ;
|
||||||
VocNP np = {s = "," ++ np.s ! NPCase Nom} ;
|
VocNP np = {s = "," ++ np.s ! NPSep} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ oper
|
|||||||
-- have a uniform, special accusative form ("minut", etc).
|
-- have a uniform, special accusative form ("minut", etc).
|
||||||
|
|
||||||
param
|
param
|
||||||
NPForm = NPCase Case | NPAcc ; -- | NPSep ; -- NPSep is NP used alone, e.g. in an Utt. Equals NPCase Nom except for pro-drop
|
NPForm = NPCase Case | NPAcc | NPSep ; -- NPSep is NP used alone, e.g. in an Utt and as complement to copula. Equals NPCase Nom except for pro-drop
|
||||||
|
|
||||||
oper
|
oper
|
||||||
npform2case : Number -> NPForm -> Case = \n,f ->
|
npform2case : Number -> NPForm -> Case = \n,f ->
|
||||||
@@ -105,9 +105,9 @@ oper
|
|||||||
-- type signature: workaround for gfc bug 9/11/2007
|
-- type signature: workaround for gfc bug 9/11/2007
|
||||||
case <<f,n> : NPForm * Number> of {
|
case <<f,n> : NPForm * Number> of {
|
||||||
<NPCase c,_> => c ;
|
<NPCase c,_> => c ;
|
||||||
<NPAcc,Sg> => Gen ;-- appCompl does the job
|
<NPAcc,Sg> => Gen ; -- appCompl does the job
|
||||||
<NPAcc,Pl> => Nom
|
<NPAcc,Pl> => Nom ;
|
||||||
---- <NPSep,_> => Nom
|
<NPSep,_> => Nom
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
n2nform : NForm -> NForm = \nf -> case nf of {
|
n2nform : NForm -> NForm = \nf -> case nf of {
|
||||||
@@ -559,7 +559,7 @@ oper
|
|||||||
nsa = possSuffixFront agr
|
nsa = possSuffixFront agr
|
||||||
in {
|
in {
|
||||||
s = table {
|
s = table {
|
||||||
NPCase Nom => itse ! NPossNom Sg ;
|
NPCase Nom | NPSep => itse ! NPossNom Sg ;
|
||||||
NPCase Gen | NPAcc => itse ! NPossNom Sg + nsa ;
|
NPCase Gen | NPAcc => itse ! NPossNom Sg + nsa ;
|
||||||
NPCase Transl => itse ! NPossTransl Sg + nsa ;
|
NPCase Transl => itse ! NPossTransl Sg + nsa ;
|
||||||
NPCase Illat => itse ! NPossIllat Sg + nsa ;
|
NPCase Illat => itse ! NPossIllat Sg + nsa ;
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
|
|||||||
} --- definiteness of NP ?
|
} --- definiteness of NP ?
|
||||||
in cn.s ! (NCase n c)
|
in cn.s ! (NCase n c)
|
||||||
} ;
|
} ;
|
||||||
CompNP np = {s = \\_ => np.s ! NPCase Nom} ;
|
CompNP np = {s = \\_ => np.s ! NPSep} ;
|
||||||
CompAdv a = {s = \\_ => a.s} ;
|
CompAdv a = {s = \\_ => a.s} ;
|
||||||
|
|
||||||
VPSlashPrep vp prep = vp ** {c2 = prep} ;
|
VPSlashPrep vp prep = vp ** {c2 = prep} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user