forked from GitHub/gf-core
italian and spanish polite imperatives
This commit is contained in:
@@ -114,7 +114,7 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
|||||||
_ => <pdat ++ pacc, []>
|
_ => <pdat ++ pacc, []>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkImperative p vp = {
|
mkImperative b p vp = {
|
||||||
s = \\pol,aag =>
|
s = \\pol,aag =>
|
||||||
let
|
let
|
||||||
agr = aag ** {p = p} ;
|
agr = aag ** {p = p} ;
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ concrete IdiomFre of Idiom = CatFre **
|
|||||||
(predV copula) ;
|
(predV copula) ;
|
||||||
|
|
||||||
ImpPl1 vp = {s =
|
ImpPl1 vp = {s =
|
||||||
(mkImperative P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
(mkImperative False P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|||||||
@@ -105,13 +105,14 @@ instance DiffIta of DiffRomance = open CommonRomance, PhonoIta, BeschIta, Prelud
|
|||||||
in
|
in
|
||||||
<pdat ++ pacc, [], orB hasAcc hasDat> ;
|
<pdat ++ pacc, [], orB hasAcc hasDat> ;
|
||||||
|
|
||||||
mkImperative p vp = {
|
mkImperative b p vp = {
|
||||||
s = \\pol,aag =>
|
s = \\pol,aag =>
|
||||||
let
|
let
|
||||||
agr = aag ** {p = p} ;
|
pe = case b of {True => P3 ; _ => p} ;
|
||||||
|
agr = aag ** {p = pe} ;
|
||||||
clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ;
|
clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ;
|
||||||
verb = case <aag.n, pol> of {
|
verb = case <aag.n, pol,pe> of {
|
||||||
<Sg,Neg> => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ;
|
<Sg,Neg,P2> => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ;
|
||||||
_ => (vp.s ! VPImperat).fin ! agr
|
_ => (vp.s ! VPImperat).fin ! agr
|
||||||
} ;
|
} ;
|
||||||
neg = vp.neg ! pol ;
|
neg = vp.neg ! pol ;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ concrete IdiomIta of Idiom = CatIta **
|
|||||||
(predV (essereV (verboV (stare_16 "stare")))) ;
|
(predV (essereV (verboV (stare_16 "stare")))) ;
|
||||||
|
|
||||||
ImpPl1 vp = {s =
|
ImpPl1 vp = {s =
|
||||||
(mkImperative P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
(mkImperative False P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ interface DiffRomance = open CommonRomance, Prelude in {
|
|||||||
|
|
||||||
-- To render imperatives (with their clitics etc).
|
-- To render imperatives (with their clitics etc).
|
||||||
|
|
||||||
oper mkImperative : Person -> CommonRomance.VP -> {s : Polarity => AAgr => Str} ;
|
oper mkImperative : Bool -> Person -> CommonRomance.VP -> {s : Polarity => AAgr => Str} ;
|
||||||
|
|
||||||
|
|
||||||
--2 Constants that must derivatively depend on language
|
--2 Constants that must derivatively depend on language
|
||||||
|
|||||||
@@ -61,11 +61,12 @@ oper
|
|||||||
habet : TMood -> Agr -> Str = \tm,a -> aux ! VFin tm a.n a.p ;
|
habet : TMood -> Agr -> Str = \tm,a -> aux ! VFin tm a.n a.p ;
|
||||||
habere : Str = aux ! VInfin False ;
|
habere : Str = aux ! VInfin False ;
|
||||||
|
|
||||||
vimp : Agr -> Str = \a -> verb.s ! VImper (case <a.n,a.p> of {
|
vimp : Agr -> Str = \a -> case <a.n,a.p> of {
|
||||||
<Pl,P1> => PlP1 ;
|
<Pl,P1> => verb.s ! VImper PlP1 ;
|
||||||
<Sg,_> => SgP2 ;
|
<_, P3> => verb.s ! VFin (VPres Conjunct) a.n P3 ;
|
||||||
<Pl,_> => PlP2
|
<Sg,_> => verb.s ! VImper SgP2 ;
|
||||||
}) ;
|
<Pl,_> => verb.s ! VImper PlP2
|
||||||
|
} ;
|
||||||
|
|
||||||
vf : (Agr -> Str) -> (AAgr -> Str) -> {
|
vf : (Agr -> Str) -> (AAgr -> Str) -> {
|
||||||
fin : Agr => Str ;
|
fin : Agr => Str ;
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ incomplete concrete SentenceRomance of Sentence =
|
|||||||
|
|
||||||
ImpVP vp = {
|
ImpVP vp = {
|
||||||
s = \\p,i,g => case i of {
|
s = \\p,i,g => case i of {
|
||||||
ImpF n True => (mkImperative P2 vp).s ! p ! (aagr g Pl) ; --- fix for Spa,Ita
|
ImpF n b => (mkImperative b P2 vp).s ! p ! (aagr g n)
|
||||||
ImpF n False => (mkImperative P2 vp).s ! p ! (aagr g n)
|
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -75,12 +75,13 @@ instance DiffSpa of DiffRomance = open CommonRomance, PhonoSpa, BeschSpa, Prelud
|
|||||||
_ => <pdatp.p1 ++ paccp.p1, [],orB paccp.p3 pdatp.p3>
|
_ => <pdatp.p1 ++ paccp.p1, [],orB paccp.p3 pdatp.p3>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkImperative p vp = {
|
mkImperative b p vp = {
|
||||||
s = \\pol,aag =>
|
s = \\pol,aag =>
|
||||||
let
|
let
|
||||||
agr = aag ** {p = p} ;
|
pe = case b of {True => P3 ; _ => p} ;
|
||||||
verb = case <aag.n, pol> of {
|
agr = aag ** {p = pe} ;
|
||||||
<Sg,Neg> => (vp.s ! VPFinite (VPres Conjunct) Simul).fin ! agr ;
|
verb = case <aag.n, pol, pe> of {
|
||||||
|
<Sg,Neg,P2> => (vp.s ! VPFinite (VPres Conjunct) Simul).fin ! agr ;
|
||||||
_ => (vp.s ! VPImperat).fin ! agr
|
_ => (vp.s ! VPImperat).fin ! agr
|
||||||
} ;
|
} ;
|
||||||
neg = vp.neg ! pol ;
|
neg = vp.neg ! pol ;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ concrete IdiomSpa of Idiom = CatSpa **
|
|||||||
(predV (verboV (estar_2 "estar"))) ;
|
(predV (verboV (estar_2 "estar"))) ;
|
||||||
|
|
||||||
ImpPl1 vp = {s =
|
ImpPl1 vp = {s =
|
||||||
(mkImperative P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
(mkImperative False P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ lin
|
|||||||
mkPronoun
|
mkPronoun
|
||||||
"usted" "la" "le" "usted"
|
"usted" "la" "le" "usted"
|
||||||
"su" "su" "sus" "sus"
|
"su" "su" "sus" "sus"
|
||||||
Masc Pl P2 ;
|
Masc Sg P3 ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
etConj : {s : Str ; n : Number} = {s = pre {
|
etConj : {s : Str ; n : Number} = {s = pre {
|
||||||
|
|||||||
Reference in New Issue
Block a user