diff --git a/src/english/LangEng.gf b/src/english/LangEng.gf index 709e37b8..7446f469 100644 --- a/src/english/LangEng.gf +++ b/src/english/LangEng.gf @@ -1,4 +1,4 @@ ---# -path=.:../abstract:../common:../api +--# -path=.:../abstract:../common:../api:../prelude concrete LangEng of Lang = GrammarEng, diff --git a/src/portuguese/MorphoPor.gf b/src/portuguese/MorphoPor.gf index e45c92d5..93361f36 100644 --- a/src/portuguese/MorphoPor.gf +++ b/src/portuguese/MorphoPor.gf @@ -189,7 +189,8 @@ oper chin + "ês" => adjFrances a ; europ + "eu" => adjEuropeu a ; alem + "ão" => adjVo a ; - provav + v@("e" | "i") + "l" => adjUtil a (provav + "eis") ; + provav + v@("e" | "i") + "l" => adjUtil a (provav + "eis") ; -- fails at pueril + nomina + "l" => adjUtil a (nomina + "is") ; jove + "m" => adjUtil a (jove + "ns") ; _ => adjUtil a (a + "s") } ; diff --git a/src/portuguese/ParadigmsPor.gf b/src/portuguese/ParadigmsPor.gf index f8b29945..3a633901 100644 --- a/src/portuguese/ParadigmsPor.gf +++ b/src/portuguese/ParadigmsPor.gf @@ -1,4 +1,4 @@ ---# -path=.:../romance:../common:../abstract:../../prelude +--# -path=.:../romance:../common:../abstract:../prelude --1 Portuguese Lexical Paradigms -- @@ -128,6 +128,9 @@ oper compN : N -> Str -> N ; -- compound, e.g. "número" + "de telefone" compN x y = {s = \\n => x.s ! n ++ y ; g = x.g ; lock_N = <>} ; + compNN : N -> N -> N ; -- compound, e.g. "forma" + "finita" + compNN x y = x ** {s = \\n => x.s ! n ++ y.s ! n} ; + --3 Relational nouns -- -- Relational nouns ("filha de x") need a case and a preposition. @@ -193,16 +196,6 @@ oper copTyp = a.copTyp } ; -{- superlADeg : A -> A ; - superlADeg a = {s = table {Posit => a.s ! Posit ; - Compar => a.s ! Compar ; - Superl => a.s ! Compar}} ; - -} - - -- redundant --- regADeg : Str -> A ; --- regADeg a = compADeg (regA a) ; - regA : Str -> A ; regA a = compADeg (lin A {s = \\_ => (mkAdjReg a).s ; isPre = False ; copTyp = serCopula}) ; diff --git a/src/portuguese/TerminologyPor.gf b/src/portuguese/TerminologyPor.gf index 36c8d5c9..6eca759b 100644 --- a/src/portuguese/TerminologyPor.gf +++ b/src/portuguese/TerminologyPor.gf @@ -1,5 +1,4 @@ - ---# -path=.:../abstract:../common +--# -path=.:../abstract:../common:../prelude:../romance:../api concrete TerminologyPor of Terminology = CatPor ** open ResPor, @@ -18,6 +17,7 @@ lincat Category = G.N ; ParameterType = G.N ; Parameter = G.N ; + Modifier = G.A ; Heading = {s : Str} ; @@ -25,45 +25,101 @@ lincat lin noun_Category = mkN "substantivo" ; adjective_Category = mkN "adjetivo" ; - verb_Category = mkN "verbo" masculine ; + verb_Category = mkN "verbo" ; + adverb_Category = mkN "advérbio" ; + preposition_Category = mkN "preposição" masculine ; - gender_ParameterType = mkN "gênero" masculine ; + number_ParameterType = mkN "número" ; + gender_ParameterType = mkN "gênero" ; + case_ParameterType = mkN "caso" ; + person_ParameterType = mkN "pessoa" ; + tense_ParameterType = mkN "tempo" ; + degree_ParameterType = mkN "grau" ; + finite_form_ParameterType = compNN (mkN "forma") (mkN "finita") ; + nominal_form_ParameterType = compNN (mkN "forma") (mkN "nominal") ; singular_Parameter = mkN "singular" ; plural_Parameter = mkN "plural" ; + definite_Parameter = mkN "definido" ; + indefinite_Parameter = mkN "indefinido" ; + masculine_Parameter = mkN "masculino" ; feminine_Parameter = mkN "feminino" ; neuter_Parameter = mkN "neutro" ; + uter_Parameter = mkN "neutro" ; nominative_Parameter = mkN "nominativo" ; genitive_Parameter = mkN "genitivo" ; dative_Parameter = mkN "dativo" ; accusative_Parameter = mkN "acusativo" ; + partitive_Parameter = mkN "partitivo" ; + translative_Parameter = mkN "translativo" ; + essive_Parameter = mkN "essivo" ; + inessive_Parameter = mkN "inessivo" ; + elative_Parameter = mkN "elativo" ; + illative_Parameter = mkN "ilativo" ; + adessive_Parameter = mkN "adessivo" ; + ablative_Parameter = mkN "ablativo" ; + allative_Parameter = mkN "alativo" ; + abessive_Parameter = mkN "abessivo" ; + comitative_Parameter = mkN "comitativo" ; + instructive_Parameter = mkN "instrutivo" ; + terminative_Parameter = mkN "terminativo" ; + imperative_Parameter = mkN "imperativo" ; indicative_Parameter = mkN "indicativo" ; conjunctive_Parameter = mkN "subjuntivo" ; + quotative_Parameter = mkN "quotativo" ; infinitive_Parameter = mkN "infinitivo" ; + active_Parameter = mkN "ativa" ; + passive_Parameter = mkN "passiva" ; + present_Parameter = mkN "presente" ; past_Parameter = mkN "pretérito" ; future_Parameter = mkN "futuro" ; conditional_Parameter = mkN "condicional" ; perfect_Parameter = mkN "perfeito composto" ; ---- imperfect_Parameter = mkN "imperfeito" ; + potential_Parameter = mkN "potencial" ; + supine_Parameter = mkN "supino" ; simple_past_Parameter = mkN "perfeito simples" ; ---- participle_Parameter = mkN "particípio" ; - aux_verb_Parameter = mkN "auxiliar" ; ---- + aux_verb_Parameter = compNN (mkN "verbo") (mkN "auxiliar") ; + agent_Parameter = mkN "agente" ; + gerund_Parameter = mkN "gerúndio" ; positive_Parameter = mkN "positivo" ; comparative_Parameter = mkN "comparativo" ; superlative_Parameter = mkN "superlativo" ; predicative_Parameter = mkN "predicativo" ; + attributive_Parameter = mkN "atributivo" ; + negative_Parameter = mkN "negativo" ; + positivePol_Parameter = mkN "positivo" ; + + subject_Parameter = mkN "sujeito" ; + object_Parameter = mkN "objeto" ; + + person1_Parameter = compNN (mkN "primeira") (mkN "pessoa") ; + person2_Parameter = compNN (mkN "segunda") (mkN "pessoa") ; + person3_Parameter = compNN (mkN "terceira") (mkN "pessoa") ; + + short_Parameter = mkN "curto" ; + long_Parameter = mkN "longo" ; + + finite_Modifier = mkA "finito" ; + transitive_Modifier = mkA "transitivo" ; + nominal_Modifier = mkA "nominal" ; nounHeading n = ss (n.s ! Sg) ; + nounPluralHeading n = ss (n.s ! Pl) ; + modNounHeading a n = ss (n.s ! Sg ++ a.s ! Posit ! genNumPos2Aform n.g Sg False) ; - exampleGr_N = mkN "examplo" masculine ; + exampleGr_N = mkN "exemplo" ; + formGr_N = mkN "forma" ; -} \ No newline at end of file + +} ;