(Romance) add copTyp to adjectives

- so that one can force the use of a copula verb
- before this, a sentence like "he was ready when I saw him" would be
  translated as "ele era pronto quando eu o via" in Portuguese,
  instead of using the estar copula
This commit is contained in:
odanoburu
2018-12-10 19:46:21 +02:00
parent 2946e6bca1
commit ffaa701197
12 changed files with 128 additions and 74 deletions
+23 -12
View File
@@ -3,59 +3,70 @@ incomplete concrete AdjectiveRomance of Adjective =
flags coding=utf8;
lin
PositA a = {
PositA a = {
s = a.s ! Posit ;
isPre = a.isPre
isPre = a.isPre ;
copTyp = a.copTyp
} ;
ComparA a np = {
s = \\af => a.s ! Compar ! af ++ conjThan ++ (np.s ! Nom).ton ;
isPre = False
isPre = False ;
copTyp = a.copTyp
} ;
CAdvAP ad ap np = {
s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ (np.s ! Nom).ton ;
isPre = False
isPre = False ;
copTyp = ap.copTyp
} ;
UseComparA a = {
s = \\af => a.s ! Compar ! af ;
isPre = a.isPre
isPre = a.isPre ;
copTyp = a.copTyp
} ;
AdjOrd ord = {
s = \\af => ord.s ! aform2aagr af ; ----
isPre = False ----
isPre = False ; ----
copTyp = serCopula
} ;
-- $SuperlA$ belongs to determiner syntax in $Noun$.
ComplA2 adj np = {
s = \\af => adj.s ! Posit ! af ++ appCompl adj.c2 np ;
isPre = False
isPre = False ;
copTyp = serCopula
} ;
ReflA2 adj = {
s = \\af =>
adj.s ! Posit ! af ++
adj.c2.s ++ prepCase adj.c2.c ++ reflPron Sg P3 Nom ; --- agr
isPre = False
isPre = False ;
copTyp = serCopula
} ;
SentAP ap sc = {
s = \\a => ap.s ! a ++ sc.s ! dative ; -- prête à dormir --- mood
isPre = False
isPre = False ;
copTyp = ap.copTyp
} ;
AdAP ada ap = {
s = \\a => ada.s ++ ap.s ! a ;
isPre = ap.isPre
isPre = ap.isPre ;
copTyp = ap.copTyp
} ;
UseA2 a = {
s = a.s ! Posit ;
isPre = False ---- A2 has no isPre
isPre = False ; ---- A2 has no isPre
copTyp = serCopula ---- A2 has no copTyp (yet)
} ;
AdvAP ap adv = {
s = \\a => ap.s ! a ++ adv.s ;
isPre = False
isPre = False ;
copTyp = ap.copTyp
} ;
+2 -2
View File
@@ -55,7 +55,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
-- Adjective
AP = {s : AForm => Str ; isPre : Bool} ;
AP = {s : AForm => Str ; isPre : Bool ; copTyp : CopulaType} ;
-- Noun
@@ -105,7 +105,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
VS = Verb ** {m : RPolarity => Mood} ;
A = {s : Degree => AForm => Str ; isPre : Bool} ;
A = {s : Degree => AForm => Str ; isPre : Bool ; copTyp : CopulaType} ;
A2 = {s : Degree => AForm => Str ; c2 : Compl} ;
N = Noun ;
+5 -4
View File
@@ -14,7 +14,8 @@ incomplete concrete ConjunctionRomance of Conjunction =
hasClit = False ; isNeg = ss.isNeg
}) ;
ConjAP conj ss = conjunctDistrTable AForm conj ss ** {
isPre = ss.isPre
isPre = ss.isPre ;
copTyp = ss.copTyp
} ;
ConjRS conj ss = conjunctDistrTable2 Mood Agr conj ss ** {
c = ss.c
@@ -40,8 +41,8 @@ incomplete concrete ConjunctionRomance of Conjunction =
s2 = \\c => xs.s2 ! c ; ----e (conjunctCase c) ;
a = conjAgr x.a xs.a ; isNeg = orB x.isNeg xs.isNeg
} ;
BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre ; copTyp = y.copTyp} ;
ConsAP x xs = consrTable AForm comma x xs ** {isPre = andB x.isPre xs.isPre ; copTyp = xs.copTyp} ;
BaseRS x y = twoTable2 Mood Agr x y ** {c = y.c} ;
ConsRS xs x = consrTable2 Mood Agr comma xs x ** {c = xs.c} ;
BaseIAdv = twoSS ;
@@ -55,7 +56,7 @@ incomplete concrete ConjunctionRomance of Conjunction =
[AdV] = {s1,s2 : Str} ;
[IAdv] = {s1,s2 : Str} ;
[NP] = {s1,s2 : Case => Str ; a : Agr ; isNeg : Bool} ;
[AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
[AP] = {s1,s2 : AForm => Str ; isPre : Bool ; copTyp : CopulaType} ;
[RS] = {s1,s2 : Mood => Agr => Str ; c : Case} ;
[CN] = {s1,s2 : Number => Str ; g : Gender} ;