mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 11:19:32 -06:00
improved the performance of Romance while retaining correct agreement ; removed Diff modules from Phrasebook
This commit is contained in:
@@ -108,22 +108,21 @@ instance DiffIta of DiffRomance = open CommonRomance, PhonoIta, BeschIta, Prelud
|
||||
|
||||
infForm n p x y = (pronArg n p x y).p3 ;
|
||||
|
||||
mkImperative b p vp = {
|
||||
s = \\pol,agr =>
|
||||
mkImperative b p vp =
|
||||
\\pol,g,n =>
|
||||
let
|
||||
pe = case b of {True => P3 ; _ => p} ;
|
||||
---- agr = aag ** {p = pe} ;
|
||||
aag = verbAgr agr ; ----
|
||||
agr = {g = g ; n = n ; p = pe} ;
|
||||
clpr = <vp.clit1 ++ vp.clit2,[],False> ; ---- TODO: True is clit
|
||||
verb = case <aag.n, pol,pe> of {
|
||||
verb = case <n,pol,pe> of {
|
||||
<Sg,Neg,P2> => vp.s.s ! VInfin clpr.p3 ; ---- ! aag ;
|
||||
_ => vp.s.s ! vImperForm agr
|
||||
_ => vp.s.s ! vImper n pe
|
||||
} ;
|
||||
neg = vp.neg ! pol ;
|
||||
compl = clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol
|
||||
in
|
||||
neg.p1 ++ verb ++ bindIf clpr.p3 ++ clpr.p1 ++ compl ;
|
||||
} ; ---- TODO non mi mangi
|
||||
---- TODO non mi mangi
|
||||
|
||||
negation : Polarity => (Str * Str) = table {
|
||||
Pos => <[],[]> ;
|
||||
|
||||
@@ -4,22 +4,22 @@ concrete IdiomIta of Idiom = CatIta **
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
ImpersCl vp = mkClause [] True (agrP3 Masc Sg) vp ;
|
||||
ImpersCl vp = mkClause [] True False (agrP3 Masc Sg) vp ;
|
||||
|
||||
GenericCl vp =
|
||||
mkClause [] True (agrP3 Masc Sg) (insertRefl vp) ;
|
||||
mkClause [] True False (agrP3 Masc Sg) (insertRefl vp) ;
|
||||
|
||||
CleftNP np rs = mkClause [] True (agrP3 Masc Sg)
|
||||
CleftNP np rs = mkClause [] True False (agrP3 Masc Sg)
|
||||
(insertComplement (\\_ => rs.s ! Indic ! np.a)
|
||||
(insertComplement (\\_ => (np.s ! rs.c).ton) (predV copula))) ;
|
||||
|
||||
CleftAdv ad s = mkClause [] True (agrP3 Masc Sg)
|
||||
CleftAdv ad s = mkClause [] True False (agrP3 Masc Sg)
|
||||
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
|
||||
(insertComplement (\\_ => ad.s) (predV copula))) ;
|
||||
|
||||
ExistNP np =
|
||||
let npa = complAgr np.a in
|
||||
mkClause [] True (agrP3 npa.g npa.n)
|
||||
mkClause [] True False (agrP3 npa.g npa.n)
|
||||
(insertClit3 (elision "ci" "c'" "ci")
|
||||
(insertComplement (\\_ => (np.s ! Nom).ton)
|
||||
(predV copula))) ;
|
||||
@@ -27,7 +27,7 @@ concrete IdiomIta of Idiom = CatIta **
|
||||
ExistIP ip = {
|
||||
s = \\t,a,p,_ =>
|
||||
ip.s ! Nom ++
|
||||
(mkClause [] True (agrP3 ip.a.g ip.a.n)
|
||||
(mkClause [] True False (agrP3 ip.a.g ip.a.n)
|
||||
(insertClit3 (elision "ci" "c'" "ci")
|
||||
(predV copula))).s ! DDir ! t ! a ! p ! Indic
|
||||
} ;
|
||||
@@ -44,7 +44,7 @@ concrete IdiomIta of Idiom = CatIta **
|
||||
(predV (essereV (verboV (stare_16 "stare")))) ;
|
||||
|
||||
ImpPl1 vp = {s =
|
||||
(mkImperative False P1 vp).s ! Pos ! Ag Masc Pl P1 --- fem
|
||||
mkImperative False P1 vp ! Pos ! Masc ! Pl --- fem
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ oper
|
||||
<Pl,Fem> => see
|
||||
} ;
|
||||
a = Ag g n p ;
|
||||
hasClit = True
|
||||
hasClit = True ; isPol = False
|
||||
} ;
|
||||
|
||||
{- --e
|
||||
|
||||
@@ -321,7 +321,7 @@ oper
|
||||
}
|
||||
} ;
|
||||
|
||||
makeNP x g n = {s = (pn2np (mk2PN x g)).s; a = agrP3 g n ; hasClit = False} ** {lock_NP = <>} ;
|
||||
makeNP x g n = {s = (pn2np (mk2PN x g)).s; a = agrP3 g n ; hasClit = False ; isPol = False} ** {lock_NP = <>} ;
|
||||
|
||||
mk5A a b c d e =
|
||||
compADeg {s = \\_ => (mkAdj a b c d e).s ; isPre = False ; lock_A = <>} ;
|
||||
|
||||
Reference in New Issue
Block a user