(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 ;
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 ;
af2compar = aform2aagr ;
aagr2compar = id AAgr ;
piuComp = "plus" ;
CopulaType = {} ;
selectCopula = \isEstar -> copula ;

View File

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