(Fre) Implement AForm+related opers in DiffFre

This commit is contained in:
Inari Listenmaa
2021-09-17 11:32:18 +08:00
parent 3c27bbd125
commit b8acdddabd
2 changed files with 26 additions and 6 deletions

View File

@@ -159,10 +159,29 @@ instance DiffFre of DiffRomance - [
bindHyphen : Str = BIND ++ "-" ++ BIND ; bindHyphen : Str = BIND ++ "-" ++ BIND ;
piuComp = "plus" ; -- AForm
param
AFormComplex = AF Gender Number | AAttrMasc | AA ;
oper
AForm = AFormComplex ;
aform2aagr : AForm -> AAgr = \a -> case a of {
DiffFre.AF g n => aagr g n ;
_ => aagr Masc Sg -- "le plus lentement"
} ;
genNum2Aform : Gender -> Number -> AForm = DiffFre.AF ;
genNumPos2Aform : Gender -> Number -> Bool -> AForm = \g,n,isPre ->
case <g,n,isPre> of {
<Masc,Sg,True> => AAttrMasc ;
_ => genNum2Aform g n
} ;
-- Comparatives
ComparAgr = AAgr ; ComparAgr = AAgr ;
af2compar = aform2aagr ; af2compar = aform2aagr ;
aagr2compar = id AAgr ; aagr2compar = id AAgr ;
piuComp = "plus" ;
CopulaType = {} ; CopulaType = {} ;
selectCopula = \isEstar -> copula ; selectCopula = \isEstar -> copula ;

View File

@@ -75,10 +75,11 @@ oper
mkAdj' : (_,_,_,_,_ : Str) -> Adj ; mkAdj' : (_,_,_,_,_ : Str) -> Adj ;
mkAdj' vieux vieil vieille vieuxs vieillement = { mkAdj' vieux vieil vieille vieuxs vieillement = {
s = table { s = table {
ASg Masc AAttr => pre {#voyelle => vieil ; "h" => vieil ; _ => vieux} ; -- vieil, nouvel only comes as attributive, not predicative:
ASg Masc APred => vieux ; -- `ce vin est nouveau et bon', not *nouvel et bon -- 'un vieil ami', but 'ce vin est nouveau et bon', not *nouvel et bon.
ASg Fem _ => vieille ; AAttrMasc => pre {#voyelle => vieil ; "h" => vieil ; _ => vieux} ;
APl g => genForms vieuxs (vieille + "s") ! g ; AF g Sg => genForms vieux vieille ! g ;
AF g Pl => genForms vieuxs (vieille + "s") ! g ;
AA => vieillement AA => vieillement
} }
} ; } ;