change in Romance agreement to produce correct number for polite singular pronouns ; linking functions that involve mkClause now takes a long time and should be revised

This commit is contained in:
aarne
2010-04-06 14:08:01 +00:00
parent f6db1ad200
commit d1d1c6215d
27 changed files with 118 additions and 69 deletions

View File

@@ -62,7 +62,8 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
_ => VPAgrSubj
} ;
vpAgrClit : Agr -> VPAgr = \a ->
vpAgrClit : Agr -> VPAgr = \a0 ->
let a = complAgr a0 in
VPAgrClit a.g a.n ;
---- pronArg = pronArgGen Neg ; --- takes more space and time
@@ -118,14 +119,14 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
} ;
mkImperative b p vp = {
s = \\pol,aag =>
s = \\pol,ag =>
let
num = if_then_else Number b Pl aag.n ;
agr = {g = aag.g ; n = num ; p = p} ;
verb = vp.s.s ! vImperForm agr ;
agr = verbAgr ag ;
num = if_then_else Number b Pl agr.n ;
verb = vp.s.s ! vImperForm ag ;
neg = vp.neg ! pol ;
clpr = <vp.clit1 ++ vp.clit2, False> ; ---- TODO: True if clit
compl = vp.comp ! agr ++ vp.ext ! pol
compl = vp.comp ! ag ++ vp.ext ! pol
in
case pol of {
Pos => verb ++ if_then_Str clpr.p2 "-" [] ++ clpr.p1 ++ compl ;

View File

@@ -42,9 +42,8 @@ concrete ExtraFre of ExtraFreAbs = ExtraRomanceFre **
Fem Sg P2 ;
youPl8fem_Pron,
youPol8fem_Pron =
mkPronoun
"vous" "vous" "vous" "vous" "votre" "votre" "vos"
Fem Pl P2 ;
let vous = mkPronoun "vous" "vous" "vous" "vous" "votre" "votre" "vos" Masc Pl P2
in {s = vous.s ; hasClit = vous.hasClit ; poss = vous.poss ; a = AgPol Fem} ;
oper
prepQue : Case -> Str = \c -> case c of {

View File

@@ -34,7 +34,7 @@ concrete IdiomFre of Idiom = CatFre **
(predV copula) ;
ImpPl1 vp = {s =
(mkImperative False P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
(mkImperative False P1 vp).s ! Pos ! Ag Masc Pl P1 --- fem
} ;
ImpP3 np vp = {

View File

@@ -177,7 +177,7 @@ oper
<Sg,Fem> => sa ;
_ => ses
} ;
a = {g = g ; n = n ; p = p} ;
a = Ag g n p ;
hasClit = True
} ;

View File

@@ -166,10 +166,13 @@ lin
youSg_Pron = mkPronoun
"tu" (elision "t") (elision "t") "toi" "ton" (elisPoss "t") "tes"
Masc Sg P2 ;
youPl_Pron, youPol_Pron =
youPl_Pron =
mkPronoun
"vous" "vous" "vous" "vous" "votre" "votre" "vos"
Masc Pl P2 ;
youPol_Pron =
let vous = mkPronoun "vous" "vous" "vous" "vous" "votre" "votre" "vos" Masc Pl P2
in {s = vous.s ; hasClit = vous.hasClit ; poss = vous.poss ; a = AgPol Masc} ;
not_Predet = {s = \\a,c => prepCase c ++ "pas" ; c = Nom ; a = PNoAg} ;