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> _ => <pacc.p1, [],pacc.p2>
} ; } ;
infForm _ _ _ _ = True ;
-- Positive polarity is used in the imperative: stressed for 1st and -- Positive polarity is used in the imperative: stressed for 1st and
-- 2nd persons. -- 2nd persons.

View File

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

View File

@@ -103,6 +103,13 @@ param
oper oper
Verb = {s : VF => Str ; vtyp : VType} ; 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 let
vp = useVP vpr ; vp = useVP vpr ;
clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ; 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 neg = vp.neg ! Pos ; --- Neg not in API
obj = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ---- pol obj = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ---- pol
in 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> ; CPron ag an ap => <argPron ag an ap dative, ap,True> ;
_ => <[],P2,False> _ => <[],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 in
---- case <<paccp.p2, pdatp.p2> : Person * Person> of { ---- case <<paccp.p2, pdatp.p2> : Person * Person> of {
---- <P3,P3> => <"se" ++ paccp.p1, [], True> ; ---- <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 ---- a constant produces an error in V3 predication with two pronouns
defaultPronArg ; defaultPronArg ;
infForm _ _ _ _ = True ;
mkImperative b p vp = { mkImperative b p vp = {
s = \\pol,aag => s = \\pol,aag =>
let let