1
0
forked from GitHub/gf-rgl

(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

View File

@@ -171,7 +171,10 @@ oper
-- "bon-meilleur"), the positive and comparative can be given as separate
-- adjectives.
mkA : A -> A -> A -- irregular comparison, e.g. bon-meilleur
mkA : A -> A -> A ; -- irregular comparison, e.g. bon-meilleur
mkA : A -> CopulaType -> A -- force copula type
} ;
-- The functions create by default postfix adjectives. To switch
@@ -391,9 +394,10 @@ oper
} ;
mk4A a b c d = mk5A a a b c d ;
mk5A a b c d e = compADeg {s = \\_ => (mkAdj' a b c d e).s ; isPre = False ; lock_A = <>} ;
regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ; lock_A = <>} ;
prefA a = {s = a.s ; isPre = True ; lock_A = <>} ;
mk5A a b c d e = compADeg {s = \\_ => (mkAdj' a b c d e).s ; isPre = False ; copTyp = serCopula ; lock_A = <>} ;
regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ; copTyp = serCopula ; lock_A = <>} ;
prefA a = {s = a.s ; isPre = True ; copTyp = a.copTyp ; lock_A = <>} ;
adjCopula a cop = a ** {copTyp = cop} ;
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
@@ -403,10 +407,11 @@ oper
mkA : (banal,banale,banaux : Str) -> A = \sec,seche,secs -> mk4A sec seche secs (seche + "ment") ;
mkA : (banal,banale,banaux,banalement : Str) -> A = mk4A ;
mkA : (vieux,vieil,vieille,vieuxs,vieuxment : Str) -> A = mk5A ;
mkA : A -> A -> A = mkADeg
mkA : A -> A -> A = mkADeg ;
mkA : A -> CopulaType -> A = adjCopula ;
};
prefixA a = {s = a.s ; isPre = True ; lock_A = <>} ;
prefixA a = {s = a.s ; isPre = True ; copTyp = a.copTyp ; lock_A = <>} ;
mkAdv x = ss x ** {lock_Adv = <>} ;
mkAdV x = ss x ** {lock_AdV = <>} ;
@@ -479,14 +484,15 @@ oper
mk5A : (vieux,vieil,vieille,vieuxs,vieuxment : Str) -> A ; -- worst-case adjetive
prefA : A -> A ;
adjCopula : A -> CopulaType -> A ;
mkADeg a b =
{s = table {Posit => a.s ! Posit ; _ => b.s ! Posit} ; isPre = a.isPre ; lock_A = <>} ;
{s = table {Posit => a.s ! Posit ; _ => b.s ! Posit} ; isPre = a.isPre ; copTyp = a.copTyp ; lock_A = <>} ;
compADeg a =
{s = table {Posit => a.s ! Posit ; _ => \\f => "plus" ++ a.s ! Posit ! f} ;
isPre = a.isPre ;
copTyp = a.copTyp ;
lock_A = <>} ;
prefA a = {s = a.s ; isPre = True ; lock_A = <>} ;
mkV = overload {
mkV : Str -> V = regV ;