From 2106566e8576913e3d68710c5c450e2231a29884 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Sat, 14 Apr 2018 19:21:47 -0300 Subject: [PATCH] - add missing lins tired_VP, scared_VP, ill_VP, ready_VP - add time linearizations - rm Spa from RNeg lin and Refl and pronouns - use constructors (mkV, mkA, etc) when possible - update Lexicon - update Numeral --- src/portuguese/ConstructionPor.gf | 30 ++++++++-- src/portuguese/DiffPor.gf | 23 ++++---- src/portuguese/IdiomPor.gf | 6 +- src/portuguese/IrregPor.gf | 4 +- src/portuguese/LexiconPor.gf | 92 +++++++++++++++---------------- src/portuguese/MorphoPor.gf | 9 +-- src/portuguese/NumeralPor.gf | 23 ++++---- src/portuguese/ParadigmsPor.gf | 9 ++- src/portuguese/StructuralPor.gf | 8 +-- 9 files changed, 112 insertions(+), 92 deletions(-) diff --git a/src/portuguese/ConstructionPor.gf b/src/portuguese/ConstructionPor.gf index 335a3e39..d861f1cf 100644 --- a/src/portuguese/ConstructionPor.gf +++ b/src/portuguese/ConstructionPor.gf @@ -9,6 +9,10 @@ concrete ConstructionPor of Construction = CatPor ** lin hungry_VP = E.ComplCN have_V2 (mkCN (mkN "fome" feminine)) ; thirsty_VP = E.ComplCN have_V2 (mkCN (mkN "sede" feminine)) ; + tired_VP = mkVP (mkA "cansado") ; + scared_VP = mkVP (mkA "assustado") ; + ill_VP = mkVP (mkA "doente") ; + ready_VP = mkVP (mkA "pronto") ; has_age_VP card = mkVP have_V2 (mkNP L.year_N) ; have_name_Cl x y = mkCl x (mkV2 (reflV (mkV "chamar"))) y ; @@ -45,15 +49,21 @@ lin come_from_there_VP = mkVP (mkVP L.come_V) (mkAdv "de allí") ; -- "de allá" -} -lincat - Weekday = N ; - Monthday = NP ; - Month = N ; - Year = NP ; + lincat + Timeunit = N ; + Weekday = N ; + Monthday = NP ; + Month = N ; + Year = NP ; oper noPrep : Prep = mkPrep [] ; -lin + lin + timeunitAdv n time = + let n_card : Card = lin Card n; + n_hours_NP : NP = mkNP n_card time ; + in SyntaxPor.mkAdv for_Prep n_hours_NP ;--| SyntaxPor.mkAdv (n_hours_NP.s ! R.Nom) ; + weekdayPunctualAdv w = lin Adv {s = w.s ! C.Sg} ; -- lundi weekdayHabitualAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det w) ; -- il lunedí ---- weekdayLastAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det (mkCN (mkA "passado") w)) ; -- il lunedí scorso @@ -75,6 +85,7 @@ lin InLanguage l = SyntaxPor.mkAdv (mkPrep "em") (mkNP l) ; lin weekdayN w = w ; + monthN m = m ; weekdayPN w = mkPN w ; monthPN m = mkPN m ; @@ -86,6 +97,13 @@ oper mkLanguage : Str -> N = \s -> mkN s ; ---------------------------------------------- ---- lexicon of special names +lin second_Timeunit = mkN "segundo" ; +lin minute_Timeunit = mkN "minuto" ; +lin hour_Timeunit = mkN "hora" ; +lin day_Timeunit = mkN "dia" masculine ; +lin week_Timeunit = mkN "semana" ; +lin month_Timeunit = mkN "mês" "meses" ; +lin year_Timeunit = mkN "ano" ; lin monday_Weekday = mkN "segunda" ; lin tuesday_Weekday = mkN "terça" ; diff --git a/src/portuguese/DiffPor.gf b/src/portuguese/DiffPor.gf index 1a07dd51..c7d73206 100644 --- a/src/portuguese/DiffPor.gf +++ b/src/portuguese/DiffPor.gf @@ -28,7 +28,6 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo CPrep P_a => "a" } ; - artDef : Bool -> Gender -> Number -> Case -> Str = \isNP,g,n,c -> case isNP of { True => case of { @@ -141,12 +140,12 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo negation : RPolarity => (Str * Str) = table { RPos => <[],[]> ; - RNeg _ => <"no",[]> + RNeg _ => <"não",[]> } ; conjThan = "que" ; conjThat = "que" ; - subjIf = "si" ; + subjIf = "se" ; clitInf b cli inf = inf ++ bindIf b ++ cli ; @@ -170,7 +169,7 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo case p of { P3 => case c of { Acc | CPrep P_a => "se" ; - _ => "sí" + _ => "si" } ; _ => pro } ; @@ -188,14 +187,14 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo } ; in \g,n,p -> case < : Gender * Number * Person> of { - <_,Sg,P1> => cases "me" "mí" ; - <_,Sg,P2> => cases "te" "tí" ; - <_,Pl,P1> => cases "nos" "nosotras" ; --- nosotros - <_,Pl,P2> => cases "vos" "vosotras" ; --- vosotros - => cases3 "la" "le" "ella" ; - <_, Sg,P3> => cases3 "lo" "le" "èl" ; - => cases3 "las" "les" "ellas" ; - <_, Pl,P3> => cases3 "los" "les" "ellos" + <_,Sg,P1> => cases "me" "mim" ; + <_,Sg,P2> => cases "te" "ti" ; + <_,Pl,P1> => cases "nos" "nós" ; --- nosotros + <_,Pl,P2> => cases "vos" "vós" ; --- vosotros + => cases3 "a" "sua" "ela" ; + <_, Sg,P3> => cases3 "o" "seu" "ele" ; + => cases3 "as" "suas" "elas" ; + <_, Pl,P3> => cases3 "os" "seus" "eles" } ; vRefl _ = VRefl ; diff --git a/src/portuguese/IdiomPor.gf b/src/portuguese/IdiomPor.gf index c32f7cc9..138fecea 100644 --- a/src/portuguese/IdiomPor.gf +++ b/src/portuguese/IdiomPor.gf @@ -20,11 +20,11 @@ concrete IdiomPor of Idiom = CatPor ** ExistNP np = mkClause [] True False (agrP3 Masc Sg) - (insertComplement (\\_ => (np.s ! Acc).ton) (predV (verboV (haver_2 "haver")))) ; + (insertComplement (\\_ => (np.s ! Acc).ton) (predV (mkV (haver_2 "haver")))) ; ExistIP ip = { s = \\t,a,p,_ => ip.s ! Nom ++ - (mkClause [] True False (agrP3 Masc Sg) (predV (verboV (haver_2 "haver")))).s ! DDir ! t ! a ! p ! Indic + (mkClause [] True False (agrP3 Masc Sg) (predV (mkV (haver_2 "haver")))).s ! DDir ! t ! a ! p ! Indic } ; ProgrVP vp = @@ -36,7 +36,7 @@ concrete IdiomPor of Idiom = CatPor ** in vp.s.s ! VGer ++ clpr.p1 ++ obj ) - (predV (verboV (estar_10 "estar"))) ; + (predV (mkV (estar_10 "estar"))) ; ImpPl1 vp = {s = mkImperative False P1 vp ! RPos ! Masc ! Pl ; --- fem diff --git a/src/portuguese/IrregPor.gf b/src/portuguese/IrregPor.gf index c1981bca..82cf0d56 100644 --- a/src/portuguese/IrregPor.gf +++ b/src/portuguese/IrregPor.gf @@ -8,7 +8,7 @@ concrete IrregPor of IrregPorAbs = CatPor ** flags optimize=values ; coding=utf8 ; - lin estar_V = verboV (estar_10 "estar") ; - lin fazer_V = verboV (fazer_31 "fazer") ; + lin estar_V = mkV (estar_10 "estar") ; + lin fazer_V = mkV (fazer_31 "fazer") ; } diff --git a/src/portuguese/LexiconPor.gf b/src/portuguese/LexiconPor.gf index 675f0ef1..5d0c80a2 100644 --- a/src/portuguese/LexiconPor.gf +++ b/src/portuguese/LexiconPor.gf @@ -23,12 +23,12 @@ lin clean_A = mkA "limpo" ; clever_A = mkA "inteligente" ; cold_A = mkA "frio" ; -- fria - correct_A = mkA "correcto" ; + correct_A = mkA "correto" | mkA "correcto" ; dirty_A = mkA "sujo" ; dry_A = mkA "seco" ; dull_A = mkA "desafilado" ; empty_A = mkA "vazio" ; - full_A = mkA "lleno" ; + full_A = mkA "cheio" ; good_A = prefA (mkA (mkA "bom") (mkA "melhor")) ; ---- adv? green_A = mkA "verde" ; heavy_A = mkA "pesado" ; @@ -36,32 +36,32 @@ lin important_A = mkA "importante" ; long_A = mkA "longo" ; narrow_A = mkA "estreito" ; - near_A = mkA "cercano" ; + near_A = mkA "perto" ; new_A = prefA (mkA "novo") ; old_A = prefA (mkA "velho") ; ready_A = mkA "pronto" ; red_A = mkA "vermelho" ; rotten_A = mkA "podre" ; round_A = mkA "redondo" ; - sharp_A = mkA "filoso" ; -- afilado, puntiagudo + sharp_A = mkA "afiado" ; -- pontiagudo short_A = mkA "curto" ; --- breve, pequeno, baixo small_A = prefA (mkA "pequeno") ; smooth_A = mkA "liso" ; -- suave - straight_A = mkA "directo" ; + straight_A = mkA "direto" | mkA "directo" ; -- reto stupid_A = mkA "estúpido" ; thick_A = mkA "grosso" ; - thin_A = mkA "fino" ; -- delgado + thin_A = mkA "fino" ; -- delgado, magro ugly_A = mkA "feio" ; uncertain_A = mkA "incerto" ; warm_A = mkA "quente" ; - wet_A = mkA "mojado" ; - white_A = compADeg (mkA "blanco") ; - wide_A = mkA "ancho" ; -- extenso - yellow_A = mkA "amarillo" ; - young_A = prefA (mkA "joven" "joven" "jóvenes" "jóvenes" "jovenamente") ; - already_Adv = mkAdv "ya" ; - far_Adv = mkAdv "lejos" ; ----? - now_Adv = mkAdv "ahora" ; + wet_A = mkA "molhado" ; + white_A = compADeg (mkA "branco") ; + wide_A = mkA "largo" ; -- extenso + yellow_A = mkA "amarelo" ; + young_A = prefA (mkA "jovem" "jovem" "jovens" "jovens" "juvenilmente") ; + already_Adv = mkAdv "já" ; + far_Adv = mkAdv "longe" ; ----? + now_Adv = mkAdv "agora" ; today_Adv = mkAdv "hoje" ; brother_N2 = deN2 (mkN "irmão") ; father_N2 = deN2 (mkN "pai") ; @@ -255,28 +255,28 @@ lin john_PN = mkPN "João" masculine ; paris_PN = mkPN "Paris" feminine ; -- V - rain_V0 = mkV0 (verboV (chover_47 "chover")) ; + rain_V0 = mkV0 (mkV (chover_47 "chover")) ; paint_V2A = mkV2A (mkV "pintar") accusative (mkPrep "em") ; ask_V2Q = mkV2Q (mkV "perguntar") dative ; answer_V2S = mkV2S (mkV "responder") dative ; beg_V2V = mkV2V (mkV "rogar") accusative dative ; -- pedir bite_V2 = dirV2 (mkV "morder") ; - break_V2 = dirV2 (special_ppV (mkV "romper") "rompido") ; + break_V2 = dirV2 (mkV "quebrar") ; buy_V2 = dirV2 (mkV "comprar") ; close_V2 = dirV2 (mkV "fechar") ; count_V2 = dirV2 (mkV "contar") ; cut_V2 = dirV2 (mkV "cortar") ; - do_V2 = dirV2 (mkV "fazer") ; + do_V2 = dirV2 (mkV (fazer_31 "fazer")) ; drink_V2 = dirV2 (mkV "beber") ; eat_V2 = dirV2 (mkV "comer") ; fear_V2 = dirV2 (mkV "temer") ; fight_V2 = dirV2 (mkV "lutar") ; find_V2 = dirV2 (mkV "encontrar") ; forget_V2 = dirV2 (mkV "esquecer") ; - hate_V2 = dirV2 (mkV "odiar") ; + hate_V2 = dirV2 (mkV (odiar_17 "odiar")) ; hear_V2 = dirV2 (mkV "ouvir") ; hit_V2 = dirV2 (mkV "bater") ; - hold_V2 = dirV2 (mkV "ter") ; + hold_V2 = dirV2 (mkV (ter_1 "ter")) ; hunt_V2 = dirV2 (mkV "caçar") ; kill_V2 = dirV2 (mkV "matar") ; know_V2 = mkV2 (mkV "conhecer") ; @@ -284,43 +284,43 @@ lin leave_V2 = dirV2 (mkV "partir") ; -- irse, dejar like_V2 = dirV2 (mkV "gostar") ; listen_V2 = dirV2 (mkV "escutar") ; - lose_V2 = dirV2 (mkV "perder") ; + lose_V2 = dirV2 (mkV (perder_44 "perder")) ; love_V2 = dirV2 (mkV "amar") ; open_V2 = dirV2 (special_ppV (mkV "abrir") "aberto") ; play_V2 = dirV2 (mkV "jogar") ; pull_V2 = dirV2 (mkV "tirar") ; push_V2 = dirV2 (mkV "empurrar") ; - put_V2 = dirV2 (mkV "por") ; - read_V2 = dirV2 (mkV "ler") ; - rub_V2 = dirV2 (mkV "resfregar") ; - scratch_V2 = dirV2 (mkV "rascar") ; - see_V2 = dirV2 (mkV "ver") ; + put_V2 = dirV2 (mkV (pôr_45 "pôr")) ; + read_V2 = dirV2 (mkV (ler_42 "ler")) ; + rub_V2 = dirV2 (mkV "esfregar") ; + scratch_V2 = dirV2 (mkV "coçar") ; + see_V2 = dirV2 (mkV (ver_40 "ver")) ; seek_V2 = dirV2 (mkV "buscar") ; speak_V2 = dirV2 (mkV "falar") ; split_V2 = dirV2 (mkV "separar") ; -- dividir,) ; - squeeze_V2 = dirV2 (mkV "exprimir") ; - stab_V2 = dirV2 (mkV "apuñalar") ; + squeeze_V2 = dirV2 (mkV "apertar") ; + stab_V2 = dirV2 (mkV "esfaquear") ; suck_V2 = dirV2 (mkV "chupar") ; switch8off_V2 = dirV2 (mkV "apagar") ; switch8on_V2 = dirV2 (mkV "ligar") ; -- acender - teach_V2 = dirV2 (mkV "enseñar") ; - throw_V2 = dirV2 (mkV "tirar") ; + teach_V2 = dirV2 (mkV "ensinar") ; + throw_V2 = dirV2 (mkV "jogar") ; tie_V2 = dirV2 (mkV "atar") ; understand_V2 = dirV2 (mkV "entender") ; wait_V2 = mkV2 (mkV "esperar") dative ; wash_V2 = dirV2 (mkV "lavar") ; - watch_V2 = dirV2 (mkV "mirar") ; -- ver - win_V2 = dirV2 (mkV "ganar") ; - wipe_V2 = dirV2 (mkV "secar") ; - write_V2 = dirV2 (special_ppV (mkV "escribir") "escrito") ; + watch_V2 = dirV2 (mkV "ver") ; -- ver + win_V2 = dirV2 (mkV "ganhar") ; + wipe_V2 = dirV2 (mkV "remover") ; + write_V2 = dirV2 (special_ppV (mkV "escrever") "escrito") ; add_V3 = dirV3 (mkV "somar") dative ; - give_V3 = dirdirV3 (mkV "dar") ; + give_V3 = dirdirV3 (mkV (dar_11 "dar")) ; sell_V3 = dirV3 (mkV "vender") dative ; - send_V3 = dirV3 (mkV "mandar") dative ; -- enviar + send_V3 = dirV3 (mkV "enviar") dative ; -- mandar talk_V3 = mkV3 (mkV "falar") dative genitive ; - become_VA = reflV (mkV "converter") ; --- convertirse en, volverse, ponerse + become_VA = reflV (mkV "virar") ; --- convertirse en, volverse, ponerse know_VQ = mkVQ (mkV "saber") ; - wonder_VQ = mkVQ (reflV (mkV "preguntar")) ; + wonder_VQ = mkVQ (reflV (mkV "perguntar")) ; fear_VS = mkVS (mkV "temer") ; hope_VS = mkVS (mkV "esperar") ; know_VS = mkVS (mkV "saber") ; @@ -329,34 +329,34 @@ lin blow_V = mkV "assoprar" ; breathe_V = mkV "respirar" ; burn_V = mkV "queimar" ; - come_V = mkV "vir" ; + come_V = mkV (vir_67 "vir") ; die_V = mkV "morrer" ; dig_V = mkV "escavar" ; fall_V = mkV "cair" ; float_V = mkV "flutuar" ; - flow_V = mkV "fluir" ; -- circular + flow_V = mkV "fluir" ; -- circular fly_V = mkV "voar" ; freeze_V = mkV "congelar" ; go_V = (mkV "ir") ; jump_V = mkV "saltar" ; - laugh_V = mkV "reir" ; ----V reír_67 - lie_V = reflV (mkV "acostar") ; -- "acostarse" + laugh_V = mkV (rir_69 "rir") ; + lie_V = reflV (mkV "mentir") ; live_V = mkV "viver" ; - play_V = mkV "jugar" ; + play_V = mkV "jogar" ; run_V = mkV "correr" ; - sew_V = mkV "coser" ; + sew_V = mkV "costurar" ; sing_V = mkV "cantar" ; sit_V = reflV (mkV "sentar") ; sleep_V = mkV "dormir" ; smell_V = mkV "cheirar" ; - spit_V = mkV "escupir" ; - stand_V = mkV "estar" ; ---- "estar de pie" ; + spit_V = mkV "cuspir" ; + stand_V = mkV (estar_10 "estar") ; ---- "estar de pé" ; stop_V = mkV "parar" ; swell_V = mkV "tragar" ; swim_V = mkV "nadar" ; think_V = mkV "pensar" ; travel_V = mkV "viajar" ; - turn_V = mkV "doblar" ; + turn_V = mkV "virar" ; vomit_V = mkV "vomitar" ; walk_V = mkV "caminhar" ; -- interj diff --git a/src/portuguese/MorphoPor.gf b/src/portuguese/MorphoPor.gf index b33c31c2..759e71b6 100644 --- a/src/portuguese/MorphoPor.gf +++ b/src/portuguese/MorphoPor.gf @@ -269,8 +269,9 @@ oper } ; mkIDet : (quantos, quantas : Str) -> Number -> IDet = \quantos,quantas,number -> - lin IDet { - s = \\g,c => prepCase c ++ genForms quantos quantas ! g ; - n = number - } ; + lin IDet { + s = \\g,c => prepCase c ++ genForms quantos quantas ! g ; + n = number + } ; + } diff --git a/src/portuguese/NumeralPor.gf b/src/portuguese/NumeralPor.gf index b0c4f59d..bb734f11 100644 --- a/src/portuguese/NumeralPor.gf +++ b/src/portuguese/NumeralPor.gf @@ -3,12 +3,12 @@ concrete NumeralPor of Numeral = CatPor [Numeral,Digits] ** flags coding=utf8 ; -lincat - Digit = {s : DForm => CardOrd => Str} ; - Sub10 = {s : DForm => CardOrd => Str ; n : Number} ; - Sub100 = {s : CardOrd => Str ; n : Number} ; - Sub1000 = {s : CardOrd => Str ; n : Number} ; - Sub1000000 = {s : CardOrd => Str ; n : Number} ; + lincat + Digit = {s : DForm => CardOrd => Str} ; + Sub10 = {s : DForm => CardOrd => Str ; n : Number} ; + Sub100 = {s : CardOrd => Str ; n : Number} ; + Sub1000 = {s : CardOrd => Str ; n : Number} ; + Sub1000000 = {s : CardOrd => Str ; n : Number} ; lin num x = x ; @@ -25,29 +25,28 @@ lincat mkTal "três" "treze" "trinta" "trezentos" "terceiro" "trigésimo" "tricentésimo" ; n4 = - mkTal "quatro" (variants {"catorze" ; "quatorze"}) "quarenta" + mkTal "quatro" ("catorze" | "quatorze") "quarenta" "quatrocentos" "quarto" "quadragésimo" "quadringentésimo" ; n5 = mkTal "cinco" "quinze" "cinquenta" "quinhentos" "quinto" "quinquagésimo" "guingentésimo" ; n6 = - mkTal "seis" (variants {"dezesseis"; "dezasseis"}) - "sessenta" "seiscentos" "sexto" "sexagésimo" "sexcentésimo" ; + mkTal "seis" ("dezesseis" | "dezasseis") "sessenta" "seiscentos" + "sexto" "sexagésimo" "sexcentésimo" ; n7 = - mkTal "sete" (variants {"dezessete" ; "dezassete"}) "setenta" + mkTal "sete" ("dezessete" | "dezassete") "setenta" "setecentos" "sétimo" "septuagésimo" "septingentésimo" ; n8 = mkTal "oito" "dezoito" "oitenta" "oitocentos" "oitavo" "octogésimo" "octingentésimo" ; n9 = - mkTal "nove" (variants {"dezenove" ; "dezanove"}) "noventa" + mkTal "nove" ("dezenove" | "dezanove") "noventa" "novecentos" "nono" "nonagésimo" "noningentésimo"; pot01 = let um = (mkTal "um" "onze" "dez" "cento" "primeiro" "décimo" "centésimo").s in {s =\\f,g => case of { - => "um" ; => "uma" ; _ => um ! f ! g } ; diff --git a/src/portuguese/ParadigmsPor.gf b/src/portuguese/ParadigmsPor.gf index d38c3eff..7f6cab67 100644 --- a/src/portuguese/ParadigmsPor.gf +++ b/src/portuguese/ParadigmsPor.gf @@ -112,7 +112,7 @@ oper \s,p -> regN s ** {s = numForms s p} ; -- force gender mkN : Str -> Gender -> N = - \s,g -> regN s ** {g = g}; + \s,g -> regN s ** {g = g} ; -- The worst case has two forms (singular + plural) and the -- gender. mkN : (bastão,bastões : Str) -> Gender -> N = mk2N @@ -207,13 +207,16 @@ oper mk2A a b = compADeg {s = \\_ => (mkAdj2N (mkN a) (mkN b) (b + "mente")).s ; isPre = False ; lock_A = <>} ; - mk5A : (solo,sola,solos,solas,solamente : Str) -> A ; + mk5A : (preto,preta,pretos,pretas,pretamente : Str) -> A ; mk5A a b c d e = compADeg {s = \\_ => (mkAdj a b c d e).s ; isPre = False ; lock_A = <>} ; mkADeg : A -> A -> A ; mkADeg a b = {s = table {Posit => a.s ! Posit ; - _ => b.s ! Posit} ; + _ => b.s ! Posit +-- Compar => b.s ! Posit ; +-- Superl => "o" ++ b.s ! Posit ; + } ; isPre = a.isPre ; lock_A = <>} ; diff --git a/src/portuguese/StructuralPor.gf b/src/portuguese/StructuralPor.gf index 823a7ea4..f47f81ff 100644 --- a/src/portuguese/StructuralPor.gf +++ b/src/portuguese/StructuralPor.gf @@ -61,8 +61,8 @@ concrete StructuralPor of Structural = CatPor ** but_PConj = ss "mas" ; by8agent_Prep = mkPrep "por" ; by8means_Prep = mkPrep "por" ; - can8know_VV = mkVV (verboV (saber_35 "saber")) ; - can_VV = mkVV (verboV (poder_36 "poder")) ; + can8know_VV = mkVV (mkV (saber_35 "saber")) ; + can_VV = mkVV (mkV (poder_36 "poder")) ; during_Prep = mkPrep "durante" ; either7or_DConj = {s1,s2 = "o" ; n = Sg} ; everybody_NP = makeNP ["todos"] Masc Pl ; @@ -136,7 +136,7 @@ concrete StructuralPor of Structural = CatPor ** to_Prep = complDat ; under_Prep = mkPrep "embaixo" ; very_AdA = ss "muito" ; - want_VV = mkVV (verboV (querer_38 "querer")) ; + want_VV = mkVV (mkV (querer_38 "querer")) ; whatSg_IP = {s = \\c => prepCase c ++ ["que"] ; a = aagr Masc Sg} ; whatPl_IP = {s = \\c => prepCase c ++ ["que"] ; a = aagr Masc Pl} ; --- when_IAdv = ss "quando" ; @@ -167,7 +167,7 @@ concrete StructuralPor of Structural = CatPor ** Masc Pl P2 ; lin as_CAdv = X.mkCAdv "tão" conjThan ; ---- - have_V2 = dirV2 (verboV (ter_1 "ter")) ; + have_V2 = dirV2 (mkV (ter_1 "ter")) ; that_Subj = {s = "que" ; m = Conjunct} ; lin language_title_Utt = ss "português" ;