diff --git a/src/catalan/DiffCat.gf b/src/catalan/DiffCat.gf index e4dcae369..2df2087ac 100644 --- a/src/catalan/DiffCat.gf +++ b/src/catalan/DiffCat.gf @@ -64,7 +64,7 @@ oper } } ; - + piuComp = "més" ; possCase = \_,_,c -> prepCase c ; @@ -112,7 +112,7 @@ oper \\pol,g,n => case pol of { RPos => neg.p1 ++ imper ++ bindIf refl.isRefl ++ refl.pron ++ bindIf hasClit ++ clit ++ compl ; - RNeg _ => neg.p1 ++ refl.pron ++ clit ++ compl ++ subj + RNeg _ => neg.p1 ++ refl.pron ++ clit ++ compl ++ subj } where { pe = case isPol of {True => P3 ; _ => p} ; refl = case vp.s.vtyp of { @@ -127,7 +127,7 @@ oper agr = {g = g ; n = n ; p = pe} ; compl = neg.p2 ++ vp.comp ! agr ++ vp.ext ! pol } ; - + CopulaType = Bool ; selectCopula = \isEstar -> case isEstar of {True => estar_V ; False => copula} ; serCopula = False ; diff --git a/src/catalan/DocumentationCatFunctor.gf b/src/catalan/DocumentationCatFunctor.gf index 0ee970e5f..351fddbde 100644 --- a/src/catalan/DocumentationCatFunctor.gf +++ b/src/catalan/DocumentationCatFunctor.gf @@ -45,8 +45,8 @@ lin s1 = heading1 (nounHeading adjective_Category).s ; s2 = frameTable ( tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++ - tr (th (heading masculine_Parameter) ++ td (adj.s ! Posit ! (genNum2Aform Masc Sg)) ++ td (adj.s ! Posit ! (genNum2Aform Masc Pl))) ++ - tr (th (heading feminine_Parameter) ++ td (adj.s ! Posit ! (genNum2Aform Fem Sg)) ++ td (adj.s ! Posit ! (genNum2Aform Fem Pl))) + tr (th (heading masculine_Parameter) ++ td (adj.s ! genNum2Aform Masc Sg) ++ td (adj.s ! genNum2Aform Masc Pl)) ++ + tr (th (heading feminine_Parameter) ++ td (adj.s ! genNum2Aform Fem Sg) ++ td (adj.s ! genNum2Aform Fem Pl)) ) } ; diff --git a/src/catalan/LexiconCat.gf b/src/catalan/LexiconCat.gf index 27f7c75eb..daaed352b 100644 --- a/src/catalan/LexiconCat.gf +++ b/src/catalan/LexiconCat.gf @@ -31,8 +31,8 @@ lin big_A = mkA "gros" "grossa" ; bike_N = regFN "bicicleta" ; bird_N = regMN "ocell" ; - black_A = compADeg (mkA "negre" "negra" "negres" "negres" "negrament") ; - blue_A = compADeg (mkA "blau" "blava" "blaus" "blaves" "blavament") ; + black_A = mkA "negre" "negra" "negres" "negres" "negrament" ; + blue_A = mkA "blau" "blava" "blaus" "blaves" "blavament" ; boat_N = regFN "barca" ; book_N = regMN "llibre" ; boot_N = regFN "bota" ; @@ -42,7 +42,7 @@ lin break_V2 = dirV2 (verbV (trencar_112 "trencar")) ; broad_A = regADeg "ample" ; -- put it in MorphoCat?: like black_A brother_N2 = deN2 (regMN "germà") ; - brown_A = compADeg (mkA "marró" "marrona" "marrons" "marrones" "marronament") ; + brown_A = mkA "marró" "marrona" "marrons" "marrones" "marronament" ; butter_N = regFN "mantega" ; buy_V2 = dirV2 (mkV "comprar") ; camera_N = regFN "càmara" ; @@ -75,7 +75,7 @@ lin drink_V2 = dirV2 (verbV (beure_11 "beure")) ; easy_A2V = mkA2V (regA "fácil") dative genitive ; eat_V2 = dirV2 (verbV (envejar_48 "menjar")) ; - empty_A = compADeg (mkA "buit" "buida" "buits" "buides" "buidament") ; + empty_A = mkA "buit" "buida" "buits" "buides" "buidament" ; enemy_N = regMN "enemic" ; -- enemiga factory_N = regFN "fàbrica" ; father_N2 = deN2 (regMN "pare") ; @@ -132,7 +132,7 @@ lin mountain_N = regFN "muntanya" ; music_N = regFN "música" ; narrow_A = regADeg "estret" ; - new_A = prefixA (compADeg (mkA "nou" "nova" "nous" "noves" "novament")) ; + new_A = prefixA (mkA "nou" "nova" "nous" "noves" "novament") ; newspaper_N = regMN "diari" ; -- periòdic oil_N = regMN "oli" ; old_A = regADeg "vell" ; @@ -195,23 +195,23 @@ lin teacher_N = regMN "mestre" ; -- mestra teach_V2 = dirV2 (mkV "ensenyar") ; television_N = mkN "televisió" "televisions" feminine ; -- televisor masc - thick_A = compADeg (mkA "gruixut" "gruixuda" "gruixuts" "gruixudes" "gruixudament") ; - thin_A = compADeg (mkA "fi" "fina" "fins" "fines" "finament") ; + thick_A = mkA "gruixut" "gruixuda" "gruixuts" "gruixudes" "gruixudament" ; + thin_A = mkA "fi" "fina" "fins" "fines" "finament" ; train_N = regMN "tren" ; travel_V = verbV (envejar_48 "viatjar") ; tree_N = regMN "arbre" ; --- trousers_N = regN "pantalón" ; -- masc - ugly_A = compADeg (mkA "lleig" "lletja" "lletjos" "lletges" "lletjament") ; + ugly_A = mkA "lleig" "lletja" "lletjos" "lletges" "lletjament" ; understand_V2 = dirV2 (verbV (atendre_8 "entendre")) ; university_N = regFN "universitat" ; village_N = regMN "poble" ; wait_V2 = mkV2 (mkV "esperar") dative ; walk_V = mkV "caminar" ; - warm_A = compADeg (mkA "tebi" "tèbia" "tebis" "tèbies" "tèbiament") ; + warm_A = mkA "tebi" "tèbia" "tebis" "tèbies" "tèbiament" ; war_N = regFN "guerra" ; watch_V2 = dirV2 (mkV "mirar") ; water_N = mkN "aigua" ; -- aigües - white_A = compADeg (mkA "blanc" "blanca" "blancs" "blanques" "blancament") ; + white_A = mkA "blanc" "blanca" "blancs" "blanques" "blancament" ; window_N = regFN "finestra" ; wine_N = regMN "vi" ; win_V2 = dirV2 (mkV "guanyar") ; @@ -219,8 +219,8 @@ lin wonder_VQ = mkVQ (reflV (mkV "preguntar")) ; wood_N = regFN "fusta" ; write_V2 = dirV2 (verbV (escriure_50 "escriure" True)) ; - yellow_A = compADeg (mkA "groc" "groga" "grocs" "grogues" "grogament") ; - young_A = compADeg (mkA "jove" "jove" "joves" "joves" "jovement") ; + yellow_A = mkA "groc" "groga" "grocs" "grogues" "grogament" ; + young_A = mkA "jove" "jove" "joves" "joves" "jovement" ; do_V2 = dirV2 (verbV (fer_56 "fer")) ; now_Adv = mkAdv "ara" ; already_Adv = mkAdv "ja" ; diff --git a/src/catalan/ParadigmsCat.gf b/src/catalan/ParadigmsCat.gf index d6eed8974..95f01fed1 100644 --- a/src/catalan/ParadigmsCat.gf +++ b/src/catalan/ParadigmsCat.gf @@ -334,25 +334,28 @@ oper makeNP x g n = {s = (pn2np (mk2PN x g)).s; a = agrP3 g n ; hasClit = False ; isPol = False ; isNeg = False} ** {lock_NP = <>} ; - mk5A a b c d e = - compADeg {s = \\_ => (mkAdj a b c d e).s ; isPre = False ; copTyp = serCopula ; lock_A = <>} ; - mk2A a b = compADeg {s = \\_ => (mkAdj2Reg a b).s ; isPre = False ; copTyp = serCopula ; lock_A = <>} ; - regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ; copTyp = serCopula ; lock_A = <>} ; + mk5A a b c d e = compADeg (mkAdj a b c d e) ; + mk2A a b = compADeg (mkAdj2Reg a b) ; + regA a = compADeg (mkAdjReg a) ; prefA = overload { prefA : A -> A = \a -> a ** {isPre = True} ; prefA : Str -> Str -> A = \bo,bon -> - compADeg (lin A {s = \\_ => (adjBo bo bon).s ; isPre = True ; copTyp = serCopula}) ; + let adj : A = compADeg (adjBo bo bon) ; + in adj ** {isPre = True} ; } ; mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ; - mkADeg a b = - {s = table {Posit => a.s ! Posit ; _ => b.s ! Posit} ; - isPre = a.isPre ; copTyp = serCopula ; lock_A = <>} ; - compADeg a = - {s = table {Posit => a.s ! Posit ; _ => \\f => "més" ++ a.s ! Posit ! f} ; - isPre = a.isPre ; copTyp = a.copTyp ; - lock_A = <>} ; + mkADeg a b = a ** { + compar = \\num => b.s ! AF Masc num ; -- millor, millors + isDeg = True } ; + compADeg a = lin A + {s = a.s ; + compar = \\_ => nonExist ; + isPre = False ; -- default values + copTyp = serCopula ; + isDeg = False + } ; regADeg a = compADeg (regA a) ; mkAdv x = ss x ** {lock_Adv = <>} ; @@ -440,7 +443,7 @@ oper special_ppV ve pa = { s = table { - VPart g n => (regA pa).s ! Posit ! genNum2Aform g n ; + VPart g n => (regA pa).s ! genNum2Aform g n ; p => ve.s ! p } ; lock_V = <> ; @@ -518,7 +521,7 @@ oper mk2A : (lleig,lletja : Str) -> A ; regA : Str -> A ; mkADeg : A -> A -> A ; - compADeg : A -> A ; + compADeg : Adj -> A ; regADeg : Str -> A ; prefA : overload { prefA : A -> A ; -- gran