mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-27 11:48:55 -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>
|
_ => <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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user