forked from GitHub/gf-core
updated clefts in Idiom (now all except Russian)
This commit is contained in:
@@ -8,7 +8,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
|
||||
|
||||
S = {s : Str} ;
|
||||
QS = {s : Str} ;
|
||||
RS = {s : Agr => Str} ;
|
||||
RS = {s : Agr => Str ; c : NPForm} ;
|
||||
|
||||
-- Sentence
|
||||
|
||||
@@ -25,7 +25,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
|
||||
|
||||
-- Relative
|
||||
|
||||
RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ;
|
||||
RCl = {s : Tense => Anteriority => Polarity => Agr => Str ; c : NPForm} ;
|
||||
RP = {s : Number => NPForm => Str ; a : RAgr} ;
|
||||
|
||||
-- Verb
|
||||
|
||||
@@ -23,6 +23,18 @@ concrete IdiomFin of Idiom = CatFin **
|
||||
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
||||
} ;
|
||||
|
||||
-- Notice the nominative in the cleft $NP$: "se on Matti josta Liisa pitää"
|
||||
|
||||
CleftNP np rs = mkClause (\_ -> "se") (agrP3 Sg)
|
||||
(insertExtrapos (rs.s ! np.a)
|
||||
(insertObj (\\_,_,_ => np.s ! NPCase Nom) (predV olla))) ;
|
||||
|
||||
-- This gives the almost forbidden "se on Porissa kun Matti asuu".
|
||||
|
||||
CleftAdv ad s = mkClause (\_ -> "se") (agrP3 Sg)
|
||||
(insertExtrapos ("kun" ++ s.s)
|
||||
(insertObj (\\_,_,_ => ad.s) (predV olla))) ;
|
||||
|
||||
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
|
||||
|
||||
GenericCl vp = mkClause noSubj (agrP3 Sg) {
|
||||
@@ -32,7 +44,6 @@ concrete IdiomFin of Idiom = CatFin **
|
||||
sc = vp.sc
|
||||
} ;
|
||||
|
||||
|
||||
ProgrVP vp =
|
||||
let
|
||||
inf = (vp.s ! VIInf Inf3Iness ! Simul ! Pos ! agrP3 Sg).fin ;
|
||||
@@ -44,6 +55,15 @@ concrete IdiomFin of Idiom = CatFin **
|
||||
sc = vp.sc
|
||||
} ;
|
||||
|
||||
-- This gives "otetaan oluet" instead of "ottakaamme oluet".
|
||||
-- The imperative is not available in a $VP$.
|
||||
|
||||
ImpPl1 vp =
|
||||
let vps = vp.s ! VIPass ! Simul ! Pos ! {n = Pl ; p = P1}
|
||||
in
|
||||
{s = vps.fin ++ vps.inf ++ vp.s2 ! True ! Pos ! {n = Pl ; p = P1} ++ vp.ext
|
||||
} ;
|
||||
|
||||
oper
|
||||
olla = verbOlla ** {sc = NPCase Nom} ;
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
||||
lin
|
||||
|
||||
RelCl cl = {
|
||||
s = \\t,a,p,_ => "siten" ++ "että" ++ cl.s ! t ! a ! p ! SDecl
|
||||
s = \\t,a,p,_ => "siten" ++ "että" ++ cl.s ! t ! a ! p ! SDecl ;
|
||||
---- sellainen
|
||||
c = NPCase Nom
|
||||
} ;
|
||||
|
||||
RelVP rp vp = {
|
||||
@@ -18,7 +19,8 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
||||
} ;
|
||||
cl = mkClause (subjForm {s = rp.s ! agr.n ; a = agr ; isPron = False} vp.sc) agr vp
|
||||
in
|
||||
cl.s ! t ! ant ! b ! SDecl
|
||||
cl.s ! t ! ant ! b ! SDecl ;
|
||||
c = NPCase Nom
|
||||
} ;
|
||||
|
||||
RelSlash rp slash = {
|
||||
@@ -27,7 +29,8 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
||||
cls = slash.s ! t ! a ! p ;
|
||||
who = appCompl True p slash.c2 (rp2np ag.n rp)
|
||||
in
|
||||
who ++ cls
|
||||
who ++ cls ;
|
||||
c = slash.c2.c
|
||||
} ;
|
||||
|
||||
FunRP p np rp = {
|
||||
|
||||
@@ -59,6 +59,9 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
|
||||
|
||||
UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! SDecl} ;
|
||||
UseQCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p} ;
|
||||
UseRCl t a p cl = {s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r} ;
|
||||
UseRCl t a p cl = {
|
||||
s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r ;
|
||||
c = cl.c
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user