mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-18 01:09:32 -06:00
workaround in Spanish and French for a pgf compiler issue showing in pronArg
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user