workaround in Spanish and French for a pgf compiler issue showing in pronArg

This commit is contained in:
aarne
2008-08-16 12:29:04 +00:00
parent 20fe8a8c20
commit b1b2e6766d
5 changed files with 23 additions and 2 deletions

View File

@@ -87,6 +87,7 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
_ => <pacc.p1, [],pacc.p2>
} ;
infForm _ _ _ _ = True ;
-- Positive polarity is used in the imperative: stressed for 1st and
-- 2nd persons.

View File

@@ -105,6 +105,8 @@ instance DiffIta of DiffRomance = open CommonRomance, PhonoIta, BeschIta, Prelud
in
<pdat ++ pacc, [], orB hasAcc hasDat> ;
infForm n p x y = (pronArg n p x y).p3 ;
mkImperative b p vp = {
s = \\pol,aag =>
let

View File

@@ -103,6 +103,13 @@ param
oper
Verb = {s : VF => Str ; vtyp : VType} ;
--2 Workarounds, to be eliminated
-- This should be provided by $pronArg$ above, but causes trouble in compilation.
-- (AR 16/8/2008)
oper infForm : Number -> Person -> CAgr -> CAgr -> Bool ;
}

View File

@@ -278,7 +278,8 @@ oper
let
vp = useVP vpr ;
clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ;
inf = (vp.s ! VPInfinit Simul clpr.p3).inf ! (aagr agr.g agr.n) ;
iform = infForm agr.n agr.p vp.clAcc vp.clDat ;
inf = (vp.s ! VPInfinit Simul iform).inf ! (aagr agr.g agr.n) ;
neg = vp.neg ! Pos ; --- Neg not in API
obj = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ---- pol
in

View File

@@ -70,7 +70,15 @@ instance DiffSpa of DiffRomance = open CommonRomance, PhonoSpa, BeschSpa, Prelud
CPron ag an ap => <argPron ag an ap dative, ap,True> ;
_ => <[],P2,False>
} ;
defaultPronArg = <pdatp.p1 ++ paccp.p1, [], orB paccp.p3 pdatp.p3>
peither = case acc of {
CRefl | CPron _ _ _ => True ;
_ => case dat of {
CPron _ _ _ => True ;
_ => False
}
} ;
defaultPronArg = <pdatp.p1 ++ paccp.p1, [], peither>
---- defaultPronArg = <pdatp.p1 ++ paccp.p1, [], orB paccp.p3 pdatp.p3>
in
---- case <<paccp.p2, pdatp.p2> : Person * Person> of {
---- <P3,P3> => <"se" ++ paccp.p1, [], True> ;
@@ -80,6 +88,8 @@ instance DiffSpa of DiffRomance = open CommonRomance, PhonoSpa, BeschSpa, Prelud
---- a constant produces an error in V3 predication with two pronouns
defaultPronArg ;
infForm _ _ _ _ = True ;
mkImperative b p vp = {
s = \\pol,aag =>
let