summaryrefslogtreecommitdiff
path: root/next-lib/src/french
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-10-30 20:38:51 +0000
committeraarne <aarne@cs.chalmers.se>2008-10-30 20:38:51 +0000
commitb49a021608d1e15a17ffd54195aa812dbed2948f (patch)
treeada8fb5fad6f41d3df7b9e1fd8fe74089ed90407 /next-lib/src/french
parent12338243c5198288ba42276b4d76a783c263e7c1 (diff)
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
Diffstat (limited to 'next-lib/src/french')
-rw-r--r--next-lib/src/french/DiffFre.gf4
-rw-r--r--next-lib/src/french/IdiomFre.gf6
-rw-r--r--next-lib/src/french/MorphoFre.gf28
3 files changed, 21 insertions, 17 deletions
diff --git a/next-lib/src/french/DiffFre.gf b/next-lib/src/french/DiffFre.gf
index 7abd2f76b..4d28796b1 100644
--- a/next-lib/src/french/DiffFre.gf
+++ b/next-lib/src/french/DiffFre.gf
@@ -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 {
diff --git a/next-lib/src/french/IdiomFre.gf b/next-lib/src/french/IdiomFre.gf
index bb38c8774..e8abaac21 100644
--- a/next-lib/src/french/IdiomFre.gf
+++ b/next-lib/src/french/IdiomFre.gf
@@ -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)
diff --git a/next-lib/src/french/MorphoFre.gf b/next-lib/src/french/MorphoFre.gf
index 96ce22850..1bd470097 100644
--- a/next-lib/src/french/MorphoFre.gf
+++ b/next-lib/src/french/MorphoFre.gf
@@ -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 ->