diff --git a/src/romance/AdjectiveRomance.gf b/src/romance/AdjectiveRomance.gf index 597da0ed..d929e4ab 100644 --- a/src/romance/AdjectiveRomance.gf +++ b/src/romance/AdjectiveRomance.gf @@ -3,25 +3,24 @@ incomplete concrete AdjectiveRomance of Adjective = flags coding=utf8; lin - PositA a = { + PositA a = a ** { s = a.s ! Posit ; - isPre = a.isPre ; - copTyp = a.copTyp } ; - ComparA a np = { - s = \\af => a.s ! Compar ! af ++ conjThan ++ (np.s ! Nom).ton ; + ComparA a np = a ** { + s = \\af => + let compar : Str = case a.isDeg of { + True => a.s ! Compar ! af ; -- bueno, mejor + False => piuComp ++ a.s ! Posit ! af } ; -- cher, plus cher + in compar ++ conjThan ++ (np.s ! Nom).ton ; isPre = False ; - copTyp = a.copTyp } ; CAdvAP ad ap np = { s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ (np.s ! Nom).ton ; isPre = False ; copTyp = ap.copTyp } ; - UseComparA a = { + UseComparA a = a ** { s = \\af => a.s ! Compar ! af ; - isPre = a.isPre ; - copTyp = a.copTyp } ; AdjOrd ord = { s = \\af => ord.s ! aform2aagr af ; ---- diff --git a/src/romance/CatRomance.gf b/src/romance/CatRomance.gf index 17e61e3c..0cf2bc35 100644 --- a/src/romance/CatRomance.gf +++ b/src/romance/CatRomance.gf @@ -104,8 +104,8 @@ 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 ; copTyp : CopulaType} ; - A2 = {s : Degree => AForm => Str ; c2 : Compl ; copTyp : CopulaType} ; + A = {s : Degree => AForm => Str ; isPre : Bool ; copTyp : CopulaType ; isDeg : Bool} ; + A2 = {s : Degree => AForm => Str ; c2 : Compl ; copTyp : CopulaType ; isDeg : Bool} ; N = Noun ; N2 = Noun ** {c2 : Compl} ; diff --git a/src/romance/DiffRomance.gf b/src/romance/DiffRomance.gf index 77f69222..25e68303 100644 --- a/src/romance/DiffRomance.gf +++ b/src/romance/DiffRomance.gf @@ -43,7 +43,7 @@ interface DiffRomance = open CommonRomance, Prelude in { oper clitInf : Bool -> Str -> Str -> Str ; --- To render pronominal arguments as clitics and/or ordinary complements. +-- To render pronominal arguments as clitics and/or ordinary complements. -- Returns $True$ if there are any clitics. oper pronArg : Number -> Person -> CAgr -> CAgr -> Str * Str * Bool ; @@ -100,6 +100,8 @@ interface DiffRomance = open CommonRomance, Prelude in { subjIf : Str ; + piuComp : Str ; -- to form comparative and superlative: plus cher, más grande, … + relPron : Bool => AAgr => Case => Str ; pronSuch : AAgr => Str ; @@ -114,7 +116,7 @@ interface DiffRomance = open CommonRomance, Prelude in { --2 Constants needed in type signatures above param - Case = Nom | Acc | CPrep Prepos ; + Case = Nom | Acc | CPrep Prepos ; oper Verb = {s : VF => Str ; vtyp : VType ; p : Str} ; @@ -122,7 +124,7 @@ oper VPAgrType : Type = Str * Bool ; ---- originally VPAgr, expensive getVPAgr : Verb -> VPAgrType = \v -> ; -- str may be used vpAgrSubj : Verb -> VPAgrType = \v -> ; -- str not used but subject instead ---- VPAgrSubj - vpAgrClits : Verb -> AAgr -> VPAgrType = \v,a -> ; -- str used from clitic ---- vpAgrClit + vpAgrClits : Verb -> AAgr -> VPAgrType = \v,a -> ; -- str used from clitic ---- vpAgrClit verbDefaultPart : Verb -> Str = \v -> v.s ! (VPart Masc Sg) ; @@ -165,7 +167,7 @@ oper -- AR 21/2/2013 -- inverted clause order, only deviant in Fre where also the intervening -t- has to be taken to account - invertedClause : + invertedClause : VType -> (RTense * Anteriority * Number * Person) -> Bool -> (Str * Str) -> Str -> (clit,fin,inf,compl,subj,ext : Str) -> Str = \_,_,_,neg,_,clit,fin,inf,compl,subj,ext -> neg.p1 ++ clit ++ fin ++ neg.p2 ++ inf ++ compl ++ subj ++ ext ;