mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-21 09:02:50 -06:00
refactored romance VP. Now it is possible to parse with Spanish and Catalan; for the rest, some Slash rules still pose a problem. Some clitic and agreement things unfinished. All this in next-lib only; resource 1.4 untouched
This commit is contained in:
@@ -124,8 +124,8 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
||||
agr = {g = aag.g ; n = num ; p = p} ;
|
||||
verb = (vp.s ! VPImperat).fin ! agr ;
|
||||
neg = vp.neg ! pol ;
|
||||
hascl = (pronArg agr.n agr.p vp.clAcc vp.clDat).p3 ;
|
||||
clpr = pronArgGen pol agr.n agr.p vp.clAcc vp.clDat ;
|
||||
hascl = False ; ----e(pronArg agr.n agr.p vp.clAcc vp.clDat).p3 ;
|
||||
clpr = <[],[]> ; ----e pronArgGen pol agr.n agr.p vp.clAcc vp.clDat ;
|
||||
compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol
|
||||
in
|
||||
case pol of {
|
||||
|
||||
@@ -9,19 +9,19 @@ concrete IdiomFre of Idiom = CatFre **
|
||||
|
||||
ExistNP np =
|
||||
mkClause "il" True (agrP3 Masc Sg)
|
||||
(insertClit2 "y" (insertComplement (\\_ => np.s ! Ton Acc) (predV avoir_V))) ;
|
||||
(insertClit3 "y" (insertComplement (\\_ => (np.s ! Acc).ton) (predV avoir_V))) ;
|
||||
|
||||
ExistIP ip = {
|
||||
s = \\t,a,p,_ =>
|
||||
ip.s ! Nom ++
|
||||
(mkClause "il" True (agrP3 Masc Sg)
|
||||
(insertClit2 "y" (predV avoir_V))).s
|
||||
(insertClit3 "y" (predV avoir_V))).s
|
||||
! DDir ! t ! a ! p ! Indic ---- DInv
|
||||
} ;
|
||||
|
||||
CleftNP np rs = mkClause elisCe True (agrP3 Masc Sg)
|
||||
(insertComplement (\\_ => rs.s ! Indic ! np.a)
|
||||
(insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;
|
||||
(insertComplement (\\_ => (np.s ! rs.c).ton) (predV copula))) ;
|
||||
|
||||
CleftAdv ad s = mkClause elisCe True (agrP3 Masc Sg)
|
||||
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
|
||||
|
||||
@@ -163,18 +163,22 @@ oper
|
||||
mkPronoun : (_,_,_,_,_,_,_ : Str) ->
|
||||
Gender -> Number -> Person -> Pronoun =
|
||||
\il,le,lui,Lui,son,sa,ses,g,n,p ->
|
||||
{s = table {
|
||||
Ton x => prepCase x ++ Lui ;
|
||||
Aton Nom => il ;
|
||||
Aton Acc => le ;
|
||||
Aton (CPrep P_de) => "en" ; --- hmm
|
||||
Aton (CPrep _) => lui ;
|
||||
Poss {n = Sg ; g = Masc} => son ;
|
||||
Poss {n = Sg ; g = Fem} => sa ;
|
||||
Poss {n = Pl} => ses
|
||||
} ;
|
||||
a = {g = g ; n = n ; p = p} ;
|
||||
hasClit = True
|
||||
let
|
||||
alui : Case -> Str = \x -> prepCase x ++ Lui ;
|
||||
in {
|
||||
s = table {
|
||||
Nom => {c1 = [] ; c2 = [] ; comp = il ; ton = Lui} ;
|
||||
Acc => {c1 = le ; c2 = [] ; comp = [] ; ton = Lui} ;
|
||||
CPrep P_a => {c1 = [] ; c2 = lui ; comp = [] ; ton = alui (CPrep P_a)} ;
|
||||
c => {c1 = [] ; c2 = [] ; comp, ton = alui c}
|
||||
} ;
|
||||
poss = \\n,g => case <n,g> of {
|
||||
<Sg,Masc> => son ;
|
||||
<Sg,Fem> => sa ;
|
||||
_ => ses
|
||||
} ;
|
||||
a = {g = g ; n = n ; p = p} ;
|
||||
hasClit = True
|
||||
} ;
|
||||
|
||||
elisPoss : Str -> Str = \s ->
|
||||
|
||||
Reference in New Issue
Block a user