diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-10-30 20:38:51 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-10-30 20:38:51 +0000 |
| commit | b49a021608d1e15a17ffd54195aa812dbed2948f (patch) | |
| tree | ada8fb5fad6f41d3df7b9e1fd8fe74089ed90407 /next-lib/src/french | |
| parent | 12338243c5198288ba42276b4d76a783c263e7c1 (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.gf | 4 | ||||
| -rw-r--r-- | next-lib/src/french/IdiomFre.gf | 6 | ||||
| -rw-r--r-- | next-lib/src/french/MorphoFre.gf | 28 |
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 -> |
