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/italian | |
| 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/italian')
| -rw-r--r-- | next-lib/src/italian/DiffIta.gf | 11 | ||||
| -rw-r--r-- | next-lib/src/italian/IdiomIta.gf | 10 | ||||
| -rw-r--r-- | next-lib/src/italian/MorphoIta.gf | 25 |
3 files changed, 36 insertions, 10 deletions
diff --git a/next-lib/src/italian/DiffIta.gf b/next-lib/src/italian/DiffIta.gf index 7eef2109e..a54520fa9 100644 --- a/next-lib/src/italian/DiffIta.gf +++ b/next-lib/src/italian/DiffIta.gf @@ -112,11 +112,12 @@ instance DiffIta of DiffRomance = open CommonRomance, PhonoIta, BeschIta, Prelud let pe = case b of {True => P3 ; _ => p} ; agr = aag ** {p = pe} ; - clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ; - verb = case <aag.n, pol,pe> of { - <Sg,Neg,P2> => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ; - _ => (vp.s ! VPImperat).fin ! agr - } ; + clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ; +----e verb = case <aag.n, pol,pe> of { +----e <Sg,Neg,P2> => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ; +----e _ => (vp.s ! VPImperat).fin ! agr +----e } ; + verb = (vp.s ! VPImperat).fin ! agr ; ----e neg = vp.neg ! pol ; compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol in diff --git a/next-lib/src/italian/IdiomIta.gf b/next-lib/src/italian/IdiomIta.gf index 2f1bb118d..bac30d741 100644 --- a/next-lib/src/italian/IdiomIta.gf +++ b/next-lib/src/italian/IdiomIta.gf @@ -11,7 +11,7 @@ concrete IdiomIta of Idiom = CatIta ** CleftNP np rs = mkClause [] 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 [] True (agrP3 Masc Sg) (insertComplement (\\_ => conjThat ++ s.s ! Indic) @@ -19,15 +19,15 @@ concrete IdiomIta of Idiom = CatIta ** ExistNP np = mkClause [] True (agrP3 np.a.g np.a.n) - (insertClit2 (elision "ci" "c'" "ci") - (insertComplement (\\_ => np.s ! Ton Nom) + (insertClit3 (elision "ci" "c'" "ci") + (insertComplement (\\_ => (np.s ! Nom).ton) (predV copula))) ; ExistIP ip = { s = \\t,a,p,_ => ip.s ! Nom ++ (mkClause [] True (agrP3 ip.a.g ip.a.n) - (insertClit2 (elision "ci" "c'" "ci") + (insertClit3 (elision "ci" "c'" "ci") (predV copula))).s ! DDir ! t ! a ! p ! Indic } ; @@ -36,7 +36,7 @@ concrete IdiomIta of Idiom = CatIta ** insertComplement (\\agr => let - clpr = pronArg agr.n agr.p vp.clAcc vp.clDat ; + clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ; obj = clpr.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ---- pol in (vp.s ! VPGerund).inf ! (aagr agr.g agr.n) ++ clpr.p1 ++ obj diff --git a/next-lib/src/italian/MorphoIta.gf b/next-lib/src/italian/MorphoIta.gf index 669e1300b..43f58fa0e 100644 --- a/next-lib/src/italian/MorphoIta.gf +++ b/next-lib/src/italian/MorphoIta.gf @@ -138,6 +138,30 @@ oper mkPronoun : (_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pronoun = \il,le,lui,glie,Lui,son,sa,ses,see,g,n,p -> + 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} + } ; + ----e glie?? + poss = \\n,g => case <n,g> of { + <Sg,Masc> => son ; + <Sg,Fem> => sa ; + <Pl,Masc> => ses ; + <Pl,Fem> => see + } ; + a = {g = g ; n = n ; p = p} ; + hasClit = True + } ; + +{- --e + mkPronoun : (_,_,_,_,_,_,_,_,_ : Str) -> + Gender -> Number -> Person -> Pronoun = + \il,le,lui,glie,Lui,son,sa,ses,see,g,n,p -> {s = table { Ton Nom => il ; Ton x => prepCase x ++ Lui ; @@ -154,6 +178,7 @@ oper a = {g = g ; n = n ; p = p} ; hasClit = True } ; +-} --2 Determiners -- |
