mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
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} ;
|
||||
|
||||
ProDrop p = {
|
||||
s = table {NPCase (Nom) => [] ; c => p.s ! c} ;
|
||||
s = table {NPCase Nom => [] ; c => p.s ! c} ;
|
||||
poss = [] ;
|
||||
-- drop Gen only works in adjectival position: "autoni", but not in "ø täytyy mennä"
|
||||
a = p.a ;
|
||||
@@ -167,7 +167,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
} ;
|
||||
|
||||
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 ;
|
||||
s2 = case p.hasPoss of {
|
||||
True => table {Front => BIND ++ possSuffixFront p.a ;
|
||||
|
||||
@@ -943,7 +943,7 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
a = Predef.dp 1 minuna
|
||||
} in
|
||||
{s = table {
|
||||
NPCase Nom => mina ; ----- NPSep
|
||||
NPCase Nom | NPSep => mina ;
|
||||
NPCase Gen => minun ;
|
||||
NPCase Part => minua ;
|
||||
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} ;
|
||||
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} ;
|
||||
UttAdv adv = adv ;
|
||||
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} ;
|
||||
|
||||
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).
|
||||
|
||||
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
|
||||
npform2case : Number -> NPForm -> Case = \n,f ->
|
||||
@@ -105,9 +105,9 @@ oper
|
||||
-- type signature: workaround for gfc bug 9/11/2007
|
||||
case <<f,n> : NPForm * Number> of {
|
||||
<NPCase c,_> => c ;
|
||||
<NPAcc,Sg> => Gen ;-- appCompl does the job
|
||||
<NPAcc,Pl> => Nom
|
||||
---- <NPSep,_> => Nom
|
||||
<NPAcc,Sg> => Gen ; -- appCompl does the job
|
||||
<NPAcc,Pl> => Nom ;
|
||||
<NPSep,_> => Nom
|
||||
} ;
|
||||
|
||||
n2nform : NForm -> NForm = \nf -> case nf of {
|
||||
@@ -559,7 +559,7 @@ oper
|
||||
nsa = possSuffixFront agr
|
||||
in {
|
||||
s = table {
|
||||
NPCase Nom => itse ! NPossNom Sg ;
|
||||
NPCase Nom | NPSep => itse ! NPossNom Sg ;
|
||||
NPCase Gen | NPAcc => itse ! NPossNom Sg + nsa ;
|
||||
NPCase Transl => itse ! NPossTransl 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 ?
|
||||
in cn.s ! (NCase n c)
|
||||
} ;
|
||||
CompNP np = {s = \\_ => np.s ! NPCase Nom} ;
|
||||
CompNP np = {s = \\_ => np.s ! NPSep} ;
|
||||
CompAdv a = {s = \\_ => a.s} ;
|
||||
|
||||
VPSlashPrep vp prep = vp ** {c2 = prep} ;
|
||||
|
||||
Reference in New Issue
Block a user