forked from GitHub/gf-core
romance ImpPlP1 corrected
This commit is contained in:
@@ -113,11 +113,14 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
|||||||
_ => <pdat ++ pacc, []>
|
_ => <pdat ++ pacc, []>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkImperative vp = {
|
mkImperative p vp = {
|
||||||
s = \\pol,aag =>
|
s = \\pol,aag =>
|
||||||
let
|
let
|
||||||
agr = aag ** {p = P2} ;
|
agr = aag ** {p = p} ;
|
||||||
verb = (vp.s ! VPImperat).fin ! agr ;
|
verb = case p of {
|
||||||
|
P1 => (vp.s ! VPFinite (VPres Indic) Simul).fin ! agr ;
|
||||||
|
_ => (vp.s ! VPImperat).fin ! agr --- P2 only
|
||||||
|
} ;
|
||||||
neg = vp.neg ! pol ;
|
neg = vp.neg ! pol ;
|
||||||
clpr = pronArgGen pol agr.n agr.p vp.clAcc vp.clDat ;
|
clpr = pronArgGen pol agr.n agr.p vp.clAcc vp.clDat ;
|
||||||
compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol
|
compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ concrete IdiomFre of Idiom = CatFre **
|
|||||||
(predV copula) ;
|
(predV copula) ;
|
||||||
|
|
||||||
ImpPl1 vp = {s =
|
ImpPl1 vp = {s =
|
||||||
(mkClause [] {g = Fem ; n = Pl ; p = P1} vp).s ! RPres ! Simul ! Pos ! Indic
|
(mkImperative P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|||||||
@@ -101,12 +101,13 @@ instance DiffIta of DiffRomance = open CommonRomance, PhonoIta, BeschIta, Prelud
|
|||||||
in
|
in
|
||||||
<pdat ++ pacc, []> ;
|
<pdat ++ pacc, []> ;
|
||||||
|
|
||||||
mkImperative vp = {
|
mkImperative p vp = {
|
||||||
s = \\pol,aag =>
|
s = \\pol,aag =>
|
||||||
let
|
let
|
||||||
agr = aag ** {p = P2} ;
|
agr = aag ** {p = p} ;
|
||||||
verb = case <aag.n, pol> of {
|
verb = case <aag.n, pol,p> of {
|
||||||
<Sg,Neg> => (vp.s ! VPInfinit Simul).inf ! aag ;
|
<_,_, P1> => (vp.s ! VPFinite (VPres Indic) Simul).fin ! agr ;
|
||||||
|
<Sg,Neg,P2> => (vp.s ! VPInfinit Simul).inf ! aag ;
|
||||||
_ => (vp.s ! VPImperat).fin ! agr
|
_ => (vp.s ! VPImperat).fin ! agr
|
||||||
} ;
|
} ;
|
||||||
neg = vp.neg ! pol ;
|
neg = vp.neg ! pol ;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ concrete IdiomIta of Idiom = CatIta **
|
|||||||
(predV (essereV (verboV (stare_16 "stare")))) ;
|
(predV (essereV (verboV (stare_16 "stare")))) ;
|
||||||
|
|
||||||
ImpPl1 vp = {s =
|
ImpPl1 vp = {s =
|
||||||
(mkClause [] {g = Fem ; n = Pl ; p = P1} vp).s ! RPres ! Simul ! Pos ! Indic
|
(mkImperative P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ interface DiffRomance = open CommonRomance, Prelude in {
|
|||||||
|
|
||||||
-- To render imperatives (with their clitics etc).
|
-- To render imperatives (with their clitics etc).
|
||||||
|
|
||||||
oper mkImperative : CommonRomance.VP -> {s : Polarity => AAgr => Str} ;
|
oper mkImperative : Person -> CommonRomance.VP -> {s : Polarity => AAgr => Str} ;
|
||||||
|
|
||||||
|
|
||||||
--2 Constants that must derivatively depend on language
|
--2 Constants that must derivatively depend on language
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ incomplete concrete SentenceRomance of Sentence =
|
|||||||
|
|
||||||
PredSCVP sc vp = mkClause sc.s (agrP3 Masc Sg) vp ;
|
PredSCVP sc vp = mkClause sc.s (agrP3 Masc Sg) vp ;
|
||||||
|
|
||||||
ImpVP = mkImperative ;
|
ImpVP = mkImperative P2 ;
|
||||||
|
|
||||||
SlashV2 np v2 =
|
SlashV2 np v2 =
|
||||||
{s = \\ag =>case <v2.c2.c,v2.c2.isDir> of {
|
{s = \\ag =>case <v2.c2.c,v2.c2.isDir> of {
|
||||||
|
|||||||
@@ -74,12 +74,13 @@ instance DiffSpa of DiffRomance = open CommonRomance, PhonoSpa, BeschSpa, Prelud
|
|||||||
-- <Sg,P2,CRefl,CPron {n = Sg ; p = P1}> => <"te" ++ "me", []> ;
|
-- <Sg,P2,CRefl,CPron {n = Sg ; p = P1}> => <"te" ++ "me", []> ;
|
||||||
-- <_,_,CPron {n = Sg ; p = P2},CPron {n = Sg ; p = P1}> => <"te" ++ "me", []> ;
|
-- <_,_,CPron {n = Sg ; p = P2},CPron {n = Sg ; p = P1}> => <"te" ++ "me", []> ;
|
||||||
|
|
||||||
mkImperative vp = {
|
mkImperative p vp = {
|
||||||
s = \\pol,aag =>
|
s = \\pol,aag =>
|
||||||
let
|
let
|
||||||
agr = aag ** {p = P2} ;
|
agr = aag ** {p = p} ;
|
||||||
verb = case <aag.n, pol> of {
|
verb = case <aag.n, pol,p> of {
|
||||||
<Sg,Neg> => (vp.s ! VPFinite (VPres Conjunct) Simul).fin ! agr ;
|
<_,_, P1> => (vp.s ! VPFinite (VPres Conjunct) Simul).fin ! agr ;
|
||||||
|
<Sg,Neg,P2> => (vp.s ! VPFinite (VPres Conjunct) Simul).fin ! agr ;
|
||||||
_ => (vp.s ! VPImperat).fin ! agr
|
_ => (vp.s ! VPImperat).fin ! agr
|
||||||
} ;
|
} ;
|
||||||
neg = vp.neg ! pol ;
|
neg = vp.neg ! pol ;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ concrete IdiomSpa of Idiom = CatSpa **
|
|||||||
(predV (verboV (estar_2 "estar"))) ;
|
(predV (verboV (estar_2 "estar"))) ;
|
||||||
|
|
||||||
ImpPl1 vp = {s =
|
ImpPl1 vp = {s =
|
||||||
(mkClause [] {g = Fem ; n = Pl ; p = P1} vp).s ! RPres ! Simul ! Pos ! Indic
|
(mkImperative P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -237,7 +237,8 @@ updateShellState opts ign mcnc sh ((_,sgr,gr),rts) = do
|
|||||||
concr0 = ifNull Nothing (return . head) concrs
|
concr0 = ifNull Nothing (return . head) concrs
|
||||||
notInrts f = notElem f $ map fst rts
|
notInrts f = notElem f $ map fst rts
|
||||||
subcgr = unSubelimCanon cgr
|
subcgr = unSubelimCanon cgr
|
||||||
cf's0 <- if oElem noCF opts
|
cf's0 <- if (not (oElem (iOpt "docf") opts) && -- cf only built with -docf
|
||||||
|
(oElem noCF opts || not (hasHOAS cgr))) -- or HOAS, if not -nocf
|
||||||
then return $ map snd $ cfs sh
|
then return $ map snd $ cfs sh
|
||||||
else mapM (canon2cf opts ign subcgr) newConcrs
|
else mapM (canon2cf opts ign subcgr) newConcrs
|
||||||
let cf's = zip newConcrs cf's0 ++ filter toRetain (cfs sh)
|
let cf's = zip newConcrs cf's0 ++ filter toRetain (cfs sh)
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ i, import: i File
|
|||||||
-src from source: ignore precompiled gfc and gfr files
|
-src from source: ignore precompiled gfc and gfr files
|
||||||
-gfc from gfc: use compiled modules whenever they exist
|
-gfc from gfc: use compiled modules whenever they exist
|
||||||
-retain retain operations: read resource modules (needed in comm cc)
|
-retain retain operations: read resource modules (needed in comm cc)
|
||||||
-nocf don't build context-free grammar (thus no parser)
|
-nocf don't build old-style context-free grammar (default without HOAS)
|
||||||
|
-docf do build old-style context-free grammar (default with HOAS)
|
||||||
-nocheckcirc don't eliminate circular rules from CF
|
-nocheckcirc don't eliminate circular rules from CF
|
||||||
-cflexer build an optimized parser with separate lexer trie
|
-cflexer build an optimized parser with separate lexer trie
|
||||||
-noemit do not emit code (default with old grammar format)
|
-noemit do not emit code (default with old grammar format)
|
||||||
|
|||||||
Reference in New Issue
Block a user