mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-30 10:28:53 -06:00
add some more changes
This commit is contained in:
File diff suppressed because it is too large
Load Diff
15
src/portuguese/CombinatorsPor.gf
Normal file
15
src/portuguese/CombinatorsPor.gf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
resource CombinatorsPor = Combinators - [appCN, appCNc] with
|
||||||
|
(Cat = CatPor),
|
||||||
|
(Structural = StructuralPor),
|
||||||
|
(Noun = NounPor),
|
||||||
|
(Constructors = ConstructorsPor) **
|
||||||
|
{
|
||||||
|
oper
|
||||||
|
appCN : CN -> NP -> NP
|
||||||
|
= \cn,x -> mkNP the_Art (PossNP cn x) ;
|
||||||
|
appCNc : CN -> [NP] -> NP
|
||||||
|
= \cn,xs -> let np : NP = mkNP and_Conj xs
|
||||||
|
in mkNP the_Art (PossNP cn np) ;
|
||||||
|
}
|
||||||
@@ -1,42 +1,41 @@
|
|||||||
--# -path=alltenses:.:../abstract
|
--# -path=alltenses:.:../abstract
|
||||||
|
|
||||||
concrete ConstructionPor of Construction = CatPor **
|
concrete ConstructionPor of Construction = CatPor **
|
||||||
open SyntaxPor, SymbolicPor, ParadigmsPor,
|
open SyntaxPor, SymbolicPor, ParadigmsPor,
|
||||||
(L = LexiconPor), (E = ExtraPor), (I = IrregPor), (R = ResPor), (C = CommonRomance),
|
(L = LexiconPor), (E = ExtraPor), (I = IrregPor), (R = ResPor), (C = CommonRomance),
|
||||||
Prelude in {
|
Prelude in {
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
hungry_VP = E.ComplCN have_V2 (mkCN (mkN "hambre" feminine)) ;
|
hungry_VP = E.ComplCN have_V2 (mkCN (mkN "fome" feminine)) ;
|
||||||
thirsty_VP = E.ComplCN have_V2 (mkCN (mkN "sed" feminine)) ;
|
thirsty_VP = E.ComplCN have_V2 (mkCN (mkN "sede" feminine)) ;
|
||||||
has_age_VP card = mkVP have_V2 (mkNP <lin Card card : Card> L.year_N) ;
|
has_age_VP card = mkVP have_V2 (mkNP <lin Card card : Card> L.year_N) ;
|
||||||
|
|
||||||
have_name_Cl x y = mkCl x (mkV2 (reflV (mkV "llamar"))) y ;
|
have_name_Cl x y = mkCl x (mkV2 (reflV (mkV "chamar"))) y ;
|
||||||
married_Cl x y = mkCl (lin NP x) L.married_A2 (lin NP y) | mkCl (mkNP and_Conj (lin NP x) (lin NP y)) (mkA "casado") ;
|
married_Cl x y = mkCl (lin NP x) L.married_A2 (lin NP y) | mkCl (mkNP and_Conj (lin NP x) (lin NP y)) (mkA "casado") ;
|
||||||
|
|
||||||
what_name_QCl x = mkQCl how_IAdv (mkCl (lin NP x) (reflV (mkV "llamar"))) ;
|
what_name_QCl x = mkQCl how_IAdv (mkCl (lin NP x) (reflV (mkV "chamar"))) ;
|
||||||
how_old_QCl x = mkQCl (mkIP how8many_IDet L.year_N) x have_V2 ;
|
how_old_QCl x = mkQCl (mkIP how8many_IDet L.year_N) x have_V2 ;
|
||||||
how_far_QCl x = mkQCl (lin IAdv (ss "a qué distancia")) (mkCl x I.estar_V) ;
|
how_far_QCl x = mkQCl (lin IAdv (ss "a que distância")) (mkCl x I.estar_V) ;
|
||||||
|
|
||||||
-- some more things
|
-- some more things
|
||||||
weather_adjCl ap = mkCl (mkVP (mkVA I.hacer_V) (lin AP ap)) ;
|
weather_adjCl ap = mkCl (mkVP (mkVA I.hacer_V) (lin AP ap)) ;
|
||||||
|
|
||||||
is_right_VP = E.ComplCN have_V2 (mkCN (mkN "razón")) ;
|
is_right_VP = E.ComplCN have_V2 (mkCN (mkN "razão")) ;
|
||||||
is_wrong_VP = mkVP (mkVA I.estar_V) (mkAP (mkA "equivocado")) ;
|
is_wrong_VP = mkVP (mkVA I.estar_V) (mkAP (mkA "errado")) ;
|
||||||
|
|
||||||
n_units_AP card cn a = mkAP (lin AdA (mkUtt (mkNP <lin Card card : Card> (lin CN cn)))) (lin A a) ;
|
n_units_AP card cn a = mkAP (lin AdA (mkUtt (mkNP <lin Card card : Card> (lin CN cn)))) (lin A a) ;
|
||||||
|
|
||||||
bottle_of_CN np = mkCN (lin N2 (mkN2 (mkN "botella" feminine) part_Prep)) np ;
|
bottle_of_CN np = mkCN (lin N2 (mkN2 (mkN "garrafa" feminine) part_Prep)) np ;
|
||||||
cup_of_CN np = mkCN (lin N2 (mkN2 (mkN "taza") part_Prep)) np ;
|
cup_of_CN np = mkCN (lin N2 (mkN2 (mkN "copo") part_Prep)) np ;
|
||||||
glass_of_CN np = mkCN (lin N2 (mkN2 (mkN "vaso") part_Prep)) np ; -- copa
|
glass_of_CN np = mkCN (lin N2 (mkN2 (mkN "taça") part_Prep)) np ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- spatial deixis and motion verbs
|
-- spatial deixis and motion verbs
|
||||||
|
|
||||||
where_go_QCl np = mkQCl where_IAdv (mkCl np (mkVP L.go_V)) ;
|
where_go_QCl np = mkQCl where_IAdv (mkCl np (mkVP L.go_V)) ;
|
||||||
where_come_from_QCl np = mkQCl (lin IAdv (ss "de dónde")) (mkCl np (mkVP L.go_V)) ;
|
where_come_from_QCl np = mkQCl (lin IAdv (ss "de dónde")) (mkCl np (mkVP L.go_V)) ;
|
||||||
|
|
||||||
go_here_VP = mkVP (mkVP L.go_V) here_Adv ;
|
go_here_VP = mkVP (mkVP L.go_V) here_Adv ;
|
||||||
come_here_VP = mkVP (mkVP L.come_V) here_Adv ;
|
come_here_VP = mkVP (mkVP L.come_V) here_Adv ;
|
||||||
come_from_here_VP = mkVP (mkVP L.come_V) (mkAdv "de aquí") ;
|
come_from_here_VP = mkVP (mkVP L.come_V) (mkAdv "de aquí") ;
|
||||||
@@ -44,7 +43,7 @@ lin
|
|||||||
go_there_VP = mkVP (mkVP L.go_V) there_Adv ;
|
go_there_VP = mkVP (mkVP L.go_V) there_Adv ;
|
||||||
come_there_VP = mkVP (mkVP L.come_V) there_Adv ;
|
come_there_VP = mkVP (mkVP L.come_V) there_Adv ;
|
||||||
come_from_there_VP = mkVP (mkVP L.come_V) (mkAdv "de allí") ; -- "de allá"
|
come_from_there_VP = mkVP (mkVP L.come_V) (mkAdv "de allí") ; -- "de allá"
|
||||||
-}
|
-}
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
Weekday = N ;
|
Weekday = N ;
|
||||||
@@ -57,22 +56,22 @@ oper
|
|||||||
lin
|
lin
|
||||||
weekdayPunctualAdv w = lin Adv {s = w.s ! C.Sg} ; -- lundi
|
weekdayPunctualAdv w = lin Adv {s = w.s ! C.Sg} ; -- lundi
|
||||||
weekdayHabitualAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det w) ; -- il lunedí ----
|
weekdayHabitualAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det w) ; -- il lunedí ----
|
||||||
weekdayLastAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det (mkCN (mkA "pasado") w)) ; -- il lunedí scorso
|
weekdayLastAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det (mkCN (mkA "passado") w)) ; -- il lunedí scorso
|
||||||
weekdayNextAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det (mkCN (mkA "próximo") w)) ; -- il lunedí prossimo
|
weekdayNextAdv w = SyntaxPor.mkAdv noPrep (mkNP the_Det (mkCN (prefixA (mkA "próximo")) w)) ; -- il lunedí prossimo
|
||||||
|
|
||||||
monthAdv m = lin Adv {s = "en" ++ m.s ! C.Sg} ; -- in mggio
|
monthAdv m = lin Adv {s = "em" ++ m.s ! C.Sg} ; -- in maggio
|
||||||
yearAdv y = SyntaxPor.mkAdv (mkPrep "en") y ; ----
|
yearAdv y = SyntaxPor.mkAdv (mkPrep "em") y ; ----
|
||||||
dayMonthAdv d m = ParadigmsPor.mkAdv ("el" ++ (d.s ! R.Nom).comp ++ m.s ! C.Sg) ; -- le 17 mai
|
dayMonthAdv d m = ParadigmsPor.mkAdv ("o" ++ (d.s ! R.Nom).comp ++ m.s ! C.Sg) ; -- le 17 mai
|
||||||
monthYearAdv m y = lin Adv {s = "en" ++ m.s ! C.Sg ++ (y.s ! R.Nom).comp} ; -- in maggio 2012
|
monthYearAdv m y = lin Adv {s = "em" ++ m.s ! C.Sg ++ (y.s ! R.Nom).comp} ; -- in maggio 2012
|
||||||
dayMonthYearAdv d m y = ParadigmsPor.mkAdv ("el" ++ (d.s ! R.Nom).comp ++ m.s ! C.Sg ++ (y.s ! R.Nom).comp) ; -- il 17 maggio 2013
|
dayMonthYearAdv d m y = ParadigmsPor.mkAdv ("o" ++ (d.s ! R.Nom).comp ++ m.s ! C.Sg ++ (y.s ! R.Nom).comp) ; -- il 17 maggio 2013
|
||||||
|
|
||||||
intYear = symb ;
|
intYear = symb ;
|
||||||
intMonthday = symb ;
|
intMonthday = symb ;
|
||||||
|
|
||||||
|
|
||||||
lincat Language = N ;
|
lincat Language = N ;
|
||||||
|
|
||||||
lin InLanguage l = SyntaxPor.mkAdv (mkPrep "en") (mkNP l) ;
|
lin InLanguage l = SyntaxPor.mkAdv (mkPrep "em") (mkNP l) ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
weekdayN w = w ;
|
weekdayN w = w ;
|
||||||
@@ -88,61 +87,61 @@ oper mkLanguage : Str -> N = \s -> mkN s ;
|
|||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
---- lexicon of special names
|
---- lexicon of special names
|
||||||
|
|
||||||
lin monday_Weekday = mkN "lunes" ;
|
lin monday_Weekday = mkN "segunda" ;
|
||||||
lin tuesday_Weekday = mkN "martes" ;
|
lin tuesday_Weekday = mkN "terça" ;
|
||||||
lin wednesday_Weekday = mkN "miércoles" ;
|
lin wednesday_Weekday = mkN "quarta" ;
|
||||||
lin thursday_Weekday = mkN "jueves" ;
|
lin thursday_Weekday = mkN "quinta" ;
|
||||||
lin friday_Weekday = mkN "viernes" ;
|
lin friday_Weekday = mkN "sexta" ;
|
||||||
lin saturday_Weekday = mkN "sábado" ;
|
lin saturday_Weekday = mkN "sábado" ;
|
||||||
lin sunday_Weekday = mkN "domingo" ;
|
lin sunday_Weekday = mkN "domingo" ;
|
||||||
|
|
||||||
lin january_Month = mkN "enero" ;
|
lin january_Month = mkN "janeiro" ;
|
||||||
lin february_Month = mkN "febrero" ;
|
lin february_Month = mkN "fevereiro" ;
|
||||||
lin march_Month = mkN "marzo" ;
|
lin march_Month = mkN "março" ;
|
||||||
lin april_Month = mkN "abril" ;
|
lin april_Month = mkN "abril" ;
|
||||||
lin may_Month = mkN "mayo" ;
|
lin may_Month = mkN "maio" ;
|
||||||
lin june_Month = mkN "junio" ;
|
lin june_Month = mkN "junho" ;
|
||||||
lin july_Month = mkN "julio" ;
|
lin july_Month = mkN "julho" ;
|
||||||
lin august_Month = mkN "agosto" ;
|
lin august_Month = mkN "agosto" ;
|
||||||
lin september_Month = mkN "septiembre" ;
|
lin september_Month = mkN "setembro" ;
|
||||||
lin october_Month = mkN "octubre" ;
|
lin october_Month = mkN "outubro" ;
|
||||||
lin november_Month = mkN "noviembre" ;
|
lin november_Month = mkN "novembro" ;
|
||||||
lin december_Month = mkN "diciembre" ;
|
lin december_Month = mkN "dezembro" ;
|
||||||
|
|
||||||
lin afrikaans_Language = mkLanguage "afrikáans" ;
|
lin afrikaans_Language = mkLanguage "africâner" ;
|
||||||
lin amharic_Language = mkLanguage "amárico" ;
|
lin amharic_Language = mkLanguage "amárico" ;
|
||||||
lin arabic_Language = mkLanguage "árabe" ;
|
lin arabic_Language = mkLanguage "árabe" ;
|
||||||
lin bulgarian_Language = mkLanguage "búlgaro" ;
|
lin bulgarian_Language = mkLanguage "búlgaro" ;
|
||||||
lin catalan_Language = mkLanguage "catalán" ;
|
lin catalan_Language = mkLanguage "catalão" ;
|
||||||
lin chinese_Language = mkLanguage "chino" ;
|
lin chinese_Language = mkLanguage "chinês" ;
|
||||||
lin danish_Language = mkLanguage "danés" ;
|
lin danish_Language = mkLanguage "dinamarquês" ;
|
||||||
lin dutch_Language = mkLanguage "neerlandés" ;
|
lin dutch_Language = mkLanguage "holandês" ;
|
||||||
lin english_Language = mkLanguage "inglés" ;
|
lin english_Language = mkLanguage "inglês" ;
|
||||||
lin estonian_Language = mkLanguage "estonio" ;
|
lin estonian_Language = mkLanguage "estônio" ;
|
||||||
lin finnish_Language = mkLanguage "finés" ;
|
lin finnish_Language = mkLanguage "finlandês" ;
|
||||||
lin french_Language = mkLanguage "francés" ;
|
lin french_Language = mkLanguage "francês" ;
|
||||||
lin german_Language = mkLanguage "alemán" ;
|
lin german_Language = mkLanguage "alemão" ;
|
||||||
lin greek_Language = mkLanguage "griego" ;
|
lin greek_Language = mkLanguage "grego" ;
|
||||||
lin hebrew_Language = mkLanguage "ebreo" ;
|
lin hebrew_Language = mkLanguage "hebraico" ;
|
||||||
lin hindi_Language = mkLanguage "hindi" ;
|
lin hindi_Language = mkLanguage "hindi" ;
|
||||||
lin japanese_Language = mkLanguage "japonés" ;
|
lin japanese_Language = mkLanguage "japonês" ;
|
||||||
lin italian_Language = mkLanguage "italiano" ;
|
lin italian_Language = mkLanguage "italiano" ;
|
||||||
lin latin_Language = mkLanguage "latín" ;
|
lin latin_Language = mkLanguage "latim" ;
|
||||||
lin latvian_Language = mkLanguage "letón" ;
|
lin latvian_Language = mkLanguage "letão" ;
|
||||||
lin maltese_Language = mkLanguage "maltés" ;
|
lin maltese_Language = mkLanguage "maltês" ;
|
||||||
lin nepali_Language = mkLanguage "nepalí" ;
|
lin nepali_Language = mkLanguage "nepalês" ;
|
||||||
lin norwegian_Language = mkLanguage "noruego" ;
|
lin norwegian_Language = mkLanguage "norueguês" ;
|
||||||
lin persian_Language = mkLanguage "persa" ;
|
lin persian_Language = mkLanguage "persa" ;
|
||||||
lin polish_Language = mkLanguage "polaco" ;
|
lin polish_Language = mkLanguage "polonês" ;
|
||||||
lin punjabi_Language = mkLanguage "punjabi" ;
|
lin punjabi_Language = mkLanguage "punjabi" ;
|
||||||
lin romanian_Language = mkLanguage "rumano" ;
|
lin romanian_Language = mkLanguage "romeno" ;
|
||||||
lin russian_Language = mkLanguage "ruso" ;
|
lin russian_Language = mkLanguage "russo" ;
|
||||||
lin sindhi_Language = mkLanguage "sindhi" ;
|
lin sindhi_Language = mkLanguage "sindhi" ;
|
||||||
lin spanish_Language = mkLanguage "español" | mkLanguage "castellano" ;
|
lin spanish_Language = mkLanguage "espanhol" | mkLanguage "castelhano" ;
|
||||||
lin swahili_Language = mkLanguage "swahili" ;
|
lin swahili_Language = mkLanguage "suaíli" ;
|
||||||
lin swedish_Language = mkLanguage "sueco" ;
|
lin swedish_Language = mkLanguage "sueco" ;
|
||||||
lin thai_Language = mkLanguage "tailandés" ;
|
lin thai_Language = mkLanguage "tailandês" ;
|
||||||
lin turkish_Language = mkLanguage "turco" ;
|
lin turkish_Language = mkLanguage "turco" ;
|
||||||
lin urdu_Language = mkLanguage "urdu" ;
|
lin urdu_Language = mkLanguage "urdu" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
3
src/portuguese/ConstructorsPor.gf
Normal file
3
src/portuguese/ConstructorsPor.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
--# -path=.:alltenses:prelude
|
||||||
|
|
||||||
|
resource ConstructorsPor = Constructors with (Grammar = GrammarPor) ;
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRomance, PhonoPor, BeschPor, Prelude in {
|
instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRomance, PhonoPor, BeschPor, Prelude in {
|
||||||
|
|
||||||
flags optimize=noexpand ;
|
flags optimize=noexpand ;
|
||||||
coding=utf8 ;
|
coding=utf8 ;
|
||||||
|
|
||||||
---- exceptions ----------------
|
---- exceptions ----------------
|
||||||
oper
|
oper
|
||||||
@@ -13,7 +13,7 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
|
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
param
|
param
|
||||||
Prepos = P_de | P_a ;
|
Prepos = P_de | P_a ;
|
||||||
VType = VHabere | VRefl ;
|
VType = VHabere | VRefl ;
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
|
|
||||||
prepCase = \c -> case c of {
|
prepCase = \c -> case c of {
|
||||||
Nom => [] ;
|
Nom => [] ;
|
||||||
Acc => [] ;
|
Acc => [] ;
|
||||||
CPrep P_de => "de" ;
|
CPrep P_de => "de" ;
|
||||||
CPrep P_a => "a"
|
CPrep P_a => "a"
|
||||||
} ;
|
} ;
|
||||||
@@ -32,31 +32,31 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
artDef : Bool -> Gender -> Number -> Case -> Str = \isNP,g,n,c ->
|
artDef : Bool -> Gender -> Number -> Case -> Str = \isNP,g,n,c ->
|
||||||
case isNP of {
|
case isNP of {
|
||||||
True => case <g,n,c> of {
|
True => case <g,n,c> of {
|
||||||
<Masc,Sg, _> => prepCase c ++ "el" ;
|
<Masc,Sg, _> => prepCase c ++ "o" ;
|
||||||
<Fem, Sg, _> => prepCase c ++ "la" ; ----- ??
|
<Fem, Sg, _> => prepCase c ++ "a" ; ----- ??
|
||||||
<Masc,Pl, _> => prepCase c ++ "los" ;
|
<Masc,Pl, _> => prepCase c ++ "os" ;
|
||||||
<Fem ,Pl, _> => prepCase c ++ "las"
|
<Fem ,Pl, _> => prepCase c ++ "as"
|
||||||
} ;
|
} ;
|
||||||
_ => case <g,n,c> of {
|
False => case <g,n,c> of {
|
||||||
<Masc,Sg, CPrep P_de> => "del" ;
|
<Masc,Sg, CPrep P_de> => "do" ;
|
||||||
<Masc,Sg, CPrep P_a> => "al" ;
|
<Masc,Sg, CPrep P_a> => "ao" ;
|
||||||
<Masc,Sg, _> => prepCase c ++ "el" ;
|
<Masc,Sg, _> => prepCase c ++ "o" ;
|
||||||
<Fem ,Sg, CPrep P_de> => chooseDeLa ;
|
<Fem ,Sg, CPrep P_de> => "da" ;
|
||||||
<Fem ,Sg, CPrep P_a> => chooseALa ;
|
<Fem ,Sg, CPrep P_a> => "à" ;
|
||||||
<Fem, Sg, _> => prepCase c ++ chooseLa ;
|
<Fem, Sg, _> => prepCase c ++ "a" ;
|
||||||
<Masc,Pl, _> => prepCase c ++ "los" ;
|
<Masc,Pl, _> => prepCase c ++ "os" ;
|
||||||
<Fem ,Pl, _> => prepCase c ++ "las"
|
<Fem ,Pl, _> => prepCase c ++ "as"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
artIndef = \isNP,g,n,c -> case isNP of {
|
artIndef = \isNP,g,n,c -> case isNP of {
|
||||||
True => case n of {
|
True => case n of {
|
||||||
Sg => prepCase c ++ genForms "uno" "una" ! g ;
|
Sg => prepCase c ++ genForms "um" "uma" ! g ;
|
||||||
_ => prepCase c ++ genForms "unos" "unas" ! g
|
_ => prepCase c ++ genForms "uns" "umas" ! g
|
||||||
} ;
|
} ;
|
||||||
_ => case n of {
|
_ => case n of {
|
||||||
Sg => prepCase c ++ genForms "un" "una" ! g ;
|
Sg => prepCase c ++ genForms "um" "uma" ! g ;
|
||||||
_ => prepCase c
|
_ => prepCase c
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
|
|
||||||
conjunctCase : Case -> Case = \c -> case c of {
|
conjunctCase : Case -> Case = \c -> case c of {
|
||||||
Nom => Nom ;
|
Nom => Nom ;
|
||||||
_ => Acc
|
_ => Acc
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
auxVerb : VType -> (VF => Str) = \_ -> haber_V.s ;
|
auxVerb : VType -> (VF => Str) = \_ -> haber_V.s ;
|
||||||
@@ -81,8 +81,8 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
vpAgrClit : Agr -> VPAgr = \a ->
|
vpAgrClit : Agr -> VPAgr = \a ->
|
||||||
vpAgrNone ;
|
vpAgrNone ;
|
||||||
|
|
||||||
pronArg = \n,p,acc,dat ->
|
pronArg = \n,p,acc,dat ->
|
||||||
let
|
let
|
||||||
paccp = case acc of {
|
paccp = case acc of {
|
||||||
CRefl => <reflPron n p Acc, p,True> ;
|
CRefl => <reflPron n p Acc, p,True> ;
|
||||||
CPron ag an ap => <argPron ag an ap Acc, ap,True> ;
|
CPron ag an ap => <argPron ag an ap Acc, ap,True> ;
|
||||||
@@ -101,7 +101,7 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
} ;
|
} ;
|
||||||
defaultPronArg = <pdatp.p1 ++ paccp.p1, [], peither>
|
defaultPronArg = <pdatp.p1 ++ paccp.p1, [], peither>
|
||||||
---- defaultPronArg = <pdatp.p1 ++ paccp.p1, [], orB paccp.p3 pdatp.p3>
|
---- defaultPronArg = <pdatp.p1 ++ paccp.p1, [], orB paccp.p3 pdatp.p3>
|
||||||
in
|
in
|
||||||
---- case <<paccp.p2, pdatp.p2> : Person * Person> of {
|
---- case <<paccp.p2, pdatp.p2> : Person * Person> of {
|
||||||
---- <P3,P3> => <"se" ++ paccp.p1, [], True> ;
|
---- <P3,P3> => <"se" ++ paccp.p1, [], True> ;
|
||||||
---- _ => defaultPronArg
|
---- _ => defaultPronArg
|
||||||
@@ -113,16 +113,16 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
infForm _ _ _ _ = True ;
|
infForm _ _ _ _ = True ;
|
||||||
|
|
||||||
mkImperative b p vp =
|
mkImperative b p vp =
|
||||||
\\pol,g,n =>
|
\\pol,g,n =>
|
||||||
let
|
let
|
||||||
pe = case b of {True => P3 ; _ => p} ;
|
pe = case b of {True => P3 ; _ => p} ;
|
||||||
agr = {g = g ; n = n ; p = pe} ;
|
agr = {g = g ; n = n ; p = pe} ;
|
||||||
refl = case vp.s.vtyp of {
|
refl = case vp.s.vtyp of {
|
||||||
VRefl => <reflPron n pe Acc,True> ;
|
VRefl => <reflPron n pe Acc,True> ;
|
||||||
_ => <[],False>
|
_ => <[],False>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
clpr = <vp.clit1 ++ vp.clit2, [],vp.clit3.hasClit> ;
|
clpr = <vp.clit1 ++ vp.clit2, [],vp.clit3.hasClit> ;
|
||||||
---- clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ;
|
---- clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ;
|
||||||
----e verb = case <aag.n, pol,pe> of {
|
----e verb = case <aag.n, pol,pe> of {
|
||||||
----e <Sg,Neg,P2> => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ;
|
----e <Sg,Neg,P2> => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ;
|
||||||
@@ -151,32 +151,32 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
|
|
||||||
clitInf b cli inf = inf ++ bindIf b ++ cli ;
|
clitInf b cli inf = inf ++ bindIf b ++ cli ;
|
||||||
|
|
||||||
relPron : Bool => AAgr => Case => Str = \\b,a,c =>
|
relPron : Bool => AAgr => Case => Str = \\b,a,c =>
|
||||||
case c of {
|
case c of {
|
||||||
Nom | Acc => "que" ;
|
Nom | Acc => "que" ;
|
||||||
CPrep P_a => "cuyo" ;
|
CPrep P_a => "cujo" ;
|
||||||
_ => prepCase c ++ "cuyo"
|
_ => prepCase c ++ "cujo"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
pronSuch : AAgr => Str = aagrForms "tál" "tál" "tales" "tales" ;
|
pronSuch : AAgr => Str = aagrForms "tal" "tal" "tais" "tais" ;
|
||||||
|
|
||||||
quelPron : AAgr => Str = aagrForms "cuál" "cuál" "cuales" "cuales" ;
|
quelPron : AAgr => Str = aagrForms "qual" "qual" "quais" "quais" ;
|
||||||
|
|
||||||
partQIndir = [] ; ---- ?
|
partQIndir = [] ; ---- ?
|
||||||
|
|
||||||
reflPron : Number -> Person -> Case -> Str = \n,p,c ->
|
reflPron : Number -> Person -> Case -> Str = \n,p,c ->
|
||||||
let pro = argPron Fem n p c
|
let pro = argPron Fem n p c
|
||||||
in
|
in
|
||||||
case p of {
|
case p of {
|
||||||
P3 => case c of {
|
P3 => case c of {
|
||||||
Acc | CPrep P_a => "se" ;
|
Acc | CPrep P_a => "se" ;
|
||||||
_ => "sí"
|
_ => "sí"
|
||||||
} ;
|
} ;
|
||||||
_ => pro
|
_ => pro
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
argPron : Gender -> Number -> Person -> Case -> Str =
|
argPron : Gender -> Number -> Person -> Case -> Str =
|
||||||
let
|
let
|
||||||
cases : (x,y : Str) -> Case -> Str = \me,moi,c -> case c of {
|
cases : (x,y : Str) -> Case -> Str = \me,moi,c -> case c of {
|
||||||
Acc | CPrep P_a => me ;
|
Acc | CPrep P_a => me ;
|
||||||
_ => moi
|
_ => moi
|
||||||
@@ -186,8 +186,8 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
CPrep P_a => leur ;
|
CPrep P_a => leur ;
|
||||||
_ => eux
|
_ => eux
|
||||||
} ;
|
} ;
|
||||||
in
|
in
|
||||||
\g,n,p -> case <<g,n,p> : Gender * Number * Person> of {
|
\g,n,p -> case <<g,n,p> : Gender * Number * Person> of {
|
||||||
<_,Sg,P1> => cases "me" "mí" ;
|
<_,Sg,P1> => cases "me" "mí" ;
|
||||||
<_,Sg,P2> => cases "te" "tí" ;
|
<_,Sg,P2> => cases "te" "tí" ;
|
||||||
<_,Pl,P1> => cases "nos" "nosotras" ; --- nosotros
|
<_,Pl,P1> => cases "nos" "nosotras" ; --- nosotros
|
||||||
@@ -204,13 +204,13 @@ instance DiffPor of DiffRomance - [partAgr,vpAgrSubj,vpAgrClits] = open CommonRo
|
|||||||
_ => False
|
_ => False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
auxPassive : Verb = verbBeschH (estar_2 "estar") ;
|
auxPassive : Verb = verbBeschH (estar_10 "estar") ;
|
||||||
|
|
||||||
copula : Verb = verbBeschH (ser_1 "ser") ;
|
copula : Verb = verbBeschH (ser_3 []) ;
|
||||||
|
|
||||||
estar_V : Verb = verbBeschH (estar_2 "estar") ;
|
estar_V : Verb = verbBeschH (estar_10 "estar") ;
|
||||||
|
|
||||||
haber_V : Verb = verbBeschH (haber_3 "haber") ;
|
haber_V : Verb = verbBeschH (haver_2 "haver") ;
|
||||||
|
|
||||||
verbBeschH : Verbum -> Verb = \v -> verbBesch v ** {vtyp = VHabere ; p = []} ;
|
verbBeschH : Verbum -> Verb = \v -> verbBesch v ** {vtyp = VHabere ; p = []} ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:../abstract:../common
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
incomplete concrete DocumentationPorFunctor of Documentation = CatPor ** open
|
incomplete concrete DocumentationPorFunctor of Documentation = CatPor ** open
|
||||||
Terminology, -- the interface to be instantiated
|
Terminology, -- the interface to be instantiated
|
||||||
ResPor,
|
ResPor,
|
||||||
CommonRomance,
|
CommonRomance,
|
||||||
@@ -19,22 +19,22 @@ lincat
|
|||||||
Definition = {s : Str} ;
|
Definition = {s : Str} ;
|
||||||
Document = {s : Str} ;
|
Document = {s : Str} ;
|
||||||
Tag = {s : Str} ;
|
Tag = {s : Str} ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-} --# notpresent
|
-} --# notpresent
|
||||||
|
|
||||||
oper
|
oper
|
||||||
heading : N -> Str = \n -> (nounHeading n).s ;
|
heading : N -> Str = \n -> (nounHeading n).s ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
InflectionN, InflectionN3, InflectionN3 = \noun -> {
|
InflectionN, InflectionN3, InflectionN3 = \noun -> {
|
||||||
t = "n" ;
|
t = "n" ;
|
||||||
s1 = heading1 (heading noun_Category ++
|
s1 = heading1 (heading noun_Category ++
|
||||||
case noun.g of {
|
case noun.g of {
|
||||||
Masc => "("+heading masculine_Parameter+")" ;
|
Masc => "("+heading masculine_Parameter+")" ;
|
||||||
Fem => "("+heading feminine_Parameter+")"
|
Fem => "("+heading feminine_Parameter+")"
|
||||||
}) ;
|
}) ;
|
||||||
s2 = frameTable (
|
s2 = frameTable (
|
||||||
tr (th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++
|
tr (th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++
|
||||||
tr (td (noun.s ! Sg) ++ td (noun.s ! Pl))
|
tr (td (noun.s ! Sg) ++ td (noun.s ! Pl))
|
||||||
)
|
)
|
||||||
@@ -52,13 +52,13 @@ lin
|
|||||||
|
|
||||||
InflectionAdv adv = {
|
InflectionAdv adv = {
|
||||||
t = "adv" ;
|
t = "adv" ;
|
||||||
s1 = heading1 "Adverbe" ;
|
s1 = heading1 "Advérbio" ;
|
||||||
s2 = paragraph adv.s
|
s2 = paragraph adv.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
InflectionPrep p = {
|
InflectionPrep p = {
|
||||||
t = "prep" ;
|
t = "prep" ;
|
||||||
s1 = heading1 "Préposition" ;
|
s1 = heading1 "Preposição" ;
|
||||||
s2 = paragraph p.s
|
s2 = paragraph p.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -135,30 +135,30 @@ lin
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
NoDefinition t = {s=t.s};
|
NoDefinition t = {s=t.s};
|
||||||
MkDefinition t d = {s="<p><b>Definición:</b>"++t.s++d.s++"</p>"};
|
MkDefinition t d = {s="<p><b>Definição:</b>"++t.s++d.s++"</p>"};
|
||||||
MkDefinitionEx t d e = {s="<p><b>Definición:</b>"++t.s++d.s++"</p><p><b>Ejemplo:</b>"++e.s++"</p>"};
|
MkDefinitionEx t d e = {s="<p><b>Definição:</b>"++t.s++d.s++"</p><p><b>Exemplo:</b>"++e.s++"</p>"};
|
||||||
|
|
||||||
lin
|
lin
|
||||||
MkDocument b i e = ss (i.s1 ++ "<p style=\"font-size:20px\">"++b.s++"</p>" ++ i.s2 ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
MkDocument b i e = ss (i.s1 ++ "<p style=\"font-size:20px\">"++b.s++"</p>" ++ i.s2 ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||||
MkTag i = ss i.t ;
|
MkTag i = ss i.t ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
verbExample : CatPor.Cl -> Str = \cl ->
|
verbExample : CatPor.Cl -> Str = \cl ->
|
||||||
(S.mkUtt cl).s
|
(S.mkUtt cl).s
|
||||||
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
|
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
|
||||||
;
|
;
|
||||||
|
|
||||||
inflVerb : Verb -> Str = \verb ->
|
inflVerb : Verb -> Str = \verb ->
|
||||||
let
|
let
|
||||||
vfin : CommonRomance.VF -> Str = \f ->
|
vfin : CommonRomance.VF -> Str = \f ->
|
||||||
verb.s ! f ;
|
verb.s ! f ;
|
||||||
|
|
||||||
ttable : TMood -> Str = \tense ->
|
ttable : TMood -> Str = \tense ->
|
||||||
frameTable (
|
frameTable (
|
||||||
tr (th "" ++
|
tr (th "" ++
|
||||||
th (heading singular_Parameter) ++
|
th (heading singular_Parameter) ++
|
||||||
th (heading plural_Parameter)) ++
|
th (heading plural_Parameter)) ++
|
||||||
tr (th "1.p" ++
|
tr (th "1.p" ++
|
||||||
td (vfin (VFin tense Sg P1)) ++
|
td (vfin (VFin tense Sg P1)) ++
|
||||||
td (vfin (VFin tense Pl P1))) ++
|
td (vfin (VFin tense Pl P1))) ++
|
||||||
tr (th "2.p" ++
|
tr (th "2.p" ++
|
||||||
@@ -171,11 +171,11 @@ oper
|
|||||||
|
|
||||||
ttable2 : (Mood -> TMood) -> Str = \f ->
|
ttable2 : (Mood -> TMood) -> Str = \f ->
|
||||||
frameTable (
|
frameTable (
|
||||||
tr (intagAttr "th" "colspan=2" "" ++
|
tr (intagAttr "th" "colspan=2" "" ++
|
||||||
th (heading indicative_Parameter) ++
|
th (heading indicative_Parameter) ++
|
||||||
th (heading conjunctive_Parameter)) ++
|
th (heading conjunctive_Parameter)) ++
|
||||||
tr (intagAttr "th" "rowspan=3" (heading singular_Parameter) ++
|
tr (intagAttr "th" "rowspan=3" (heading singular_Parameter) ++
|
||||||
th "1.p" ++
|
th "1.p" ++
|
||||||
td (vfin (VFin (f Indic) Sg P1)) ++
|
td (vfin (VFin (f Indic) Sg P1)) ++
|
||||||
td (vfin (VFin (f Conjunct) Sg P1))) ++
|
td (vfin (VFin (f Conjunct) Sg P1))) ++
|
||||||
tr (th "2.p" ++
|
tr (th "2.p" ++
|
||||||
@@ -183,7 +183,7 @@ oper
|
|||||||
td (vfin (VFin (f Conjunct) Sg P2))) ++
|
td (vfin (VFin (f Conjunct) Sg P2))) ++
|
||||||
tr (th "3.p" ++
|
tr (th "3.p" ++
|
||||||
td (vfin (VFin (f Indic) Sg P3)) ++
|
td (vfin (VFin (f Indic) Sg P3)) ++
|
||||||
td (vfin (VFin (f Conjunct) Sg P3))) ++
|
td (vfin (VFin (f Conjunct) Sg P3))) ++
|
||||||
tr (intagAttr "th" "rowspan=3" (heading plural_Parameter) ++
|
tr (intagAttr "th" "rowspan=3" (heading plural_Parameter) ++
|
||||||
th "1.p" ++
|
th "1.p" ++
|
||||||
td (vfin (VFin (f Indic) Pl P1)) ++
|
td (vfin (VFin (f Indic) Pl P1)) ++
|
||||||
@@ -191,7 +191,7 @@ oper
|
|||||||
tr (th "2.p" ++
|
tr (th "2.p" ++
|
||||||
td (vfin (VFin (f Indic) Pl P2)) ++
|
td (vfin (VFin (f Indic) Pl P2)) ++
|
||||||
td (vfin (VFin (f Conjunct) Pl P2))) ++
|
td (vfin (VFin (f Conjunct) Pl P2))) ++
|
||||||
tr (th "3.p" ++
|
tr (th "3.p" ++
|
||||||
td (vfin (VFin (f Indic) Pl P3)) ++
|
td (vfin (VFin (f Indic) Pl P3)) ++
|
||||||
td (vfin (VFin (f Conjunct) Pl P3)))
|
td (vfin (VFin (f Conjunct) Pl P3)))
|
||||||
) ;
|
) ;
|
||||||
@@ -210,17 +210,17 @@ oper
|
|||||||
paragraph (vfin (VInfin False)) ++
|
paragraph (vfin (VInfin False)) ++
|
||||||
heading2 (heading imperative_Parameter) ++
|
heading2 (heading imperative_Parameter) ++
|
||||||
frameTable (
|
frameTable (
|
||||||
tr (th "sg.2.p" ++ td (vfin (VImper SgP2))) ++
|
tr (th "sg.2.p" ++ td (vfin (VImper SgP2))) ++
|
||||||
tr (th "pl.1.p" ++ td (vfin (VImper PlP1))) ++
|
tr (th "pl.1.p" ++ td (vfin (VImper PlP1))) ++
|
||||||
tr (th "pl.2.p" ++ td (vfin (VImper PlP2)))
|
tr (th "pl.2.p" ++ td (vfin (VImper PlP2)))
|
||||||
) ++
|
) ++
|
||||||
heading2 (heading participle_Parameter) ++
|
heading2 (heading participle_Parameter) ++
|
||||||
frameTable (
|
frameTable (
|
||||||
tr (th (heading past_Parameter) ++ td (vfin (VPart Masc Sg))) ++
|
tr (th (heading past_Parameter) ++ td (vfin (VPart Masc Sg))) ++
|
||||||
tr (th (heading present_Parameter) ++ td (vfin VGer))
|
tr (th (heading present_Parameter) ++ td (vfin VGer))
|
||||||
) ;
|
) ;
|
||||||
|
|
||||||
{- --# notpresent
|
{- --# notpresent
|
||||||
-}
|
-}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,66 +1,43 @@
|
|||||||
concrete ExtraPor of ExtraPorAbs = ExtraRomancePor **
|
concrete ExtraPor of ExtraPorAbs = ExtraRomancePor **
|
||||||
open CommonRomance, PhonoPor, MorphoPor, ParadigmsPor, ParamX, ResPor, BeschPor, (I = IrregPor),
|
open CommonRomance, PhonoPor, MorphoPor, ParadigmsPor, ParamX, ResPor, BeschPor, (I = IrregPor), (S = StructuralPor),
|
||||||
Prelude in {
|
Prelude in {
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
i8fem_Pron = mkPronoun
|
--- Prons
|
||||||
"yo" "me" "me" "mí"
|
i8fem_Pron = pronAgr S.i_Pron Fem Sg P1 ;
|
||||||
"mi" "mi" "mis" "mis"
|
youSg8fem_Pron = pronAgr S.youSg_Pron Fem Sg P3 ;
|
||||||
Fem Sg P1 ;
|
we8fem_Pron = pronAgr S.we_Pron Fem Pl P1 ;
|
||||||
|
youPl8fem_Pron = pronAgr S.youPl_Pron Fem Pl P3 ;
|
||||||
|
youPolPl_Pron = S.youPlPol_Pron ;
|
||||||
|
youPol8fem_Pron = pronAgr S.youSgPol_Pron Fem Sg P2 ;
|
||||||
|
youPolPl8fem_Pron = pronAgr S.youPlPol_Pron Fem Pl P2 ;
|
||||||
|
they8fem_Pron = mkPronFrom S.they_Pron "elas" "as" "lhes" "elas" Fem Pl P3 ;
|
||||||
|
|
||||||
|
|
||||||
these8fem_NP = makeNP ["estas"] Fem Pl ;
|
these8fem_NP = makeNP ["estas"] Fem Pl ;
|
||||||
they8fem_Pron = mkPronoun
|
|
||||||
"ellas" "las" "les" "ellas"
|
|
||||||
"su" "su" "sus" "sus"
|
|
||||||
Fem Pl P3 ;
|
|
||||||
this8fem_NP = pn2np (mkPN ["esta"] Fem) ;
|
this8fem_NP = pn2np (mkPN ["esta"] Fem) ;
|
||||||
those8fem_NP = makeNP ["esas"] Fem Pl ;
|
those8fem_NP = makeNP ["essas"] Fem Pl ;
|
||||||
|
|
||||||
we8fem_Pron = mkPronoun
|
whoPl8fem_IP = {s = \\c => prepCase c ++ "quem" ; a = aagr Fem Pl} ;
|
||||||
"nosotras" "nos" "nos" "nosotras"
|
whoSg8fem_IP = {s = \\c => prepCase c ++ "quem" ; a = aagr Fem Sg} ;
|
||||||
"nuestro" "nuestra" "nuestros" "nuestras"
|
|
||||||
Fem Pl P1 ;
|
|
||||||
whoPl8fem_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Pl} ;
|
|
||||||
whoSg8fem_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Sg} ;
|
|
||||||
|
|
||||||
youSg8fem_Pron = mkPronoun
|
ImpNeg np vp = lin Utt{
|
||||||
"tú" "te" "te" "ti"
|
s = (mkClause (np.s ! Nom).comp np.hasClit False np.a vp).s
|
||||||
"tu" "tu" "tus" "tus"
|
|
||||||
Fem Sg P2 ;
|
|
||||||
youPl8fem_Pron = mkPronoun
|
|
||||||
"vosotras" "os" "os" "vosotras"
|
|
||||||
"vuestro" "vuestra" "vuestros" "vuestras"
|
|
||||||
Fem Pl P2 ;
|
|
||||||
youPol8fem_Pron = mkPronoun
|
|
||||||
"usted" "la" "le" "usted"
|
|
||||||
"su" "su" "sus" "sus"
|
|
||||||
Fem Sg P3 ;
|
|
||||||
|
|
||||||
youPolPl_Pron = mkPronoun
|
|
||||||
"ustedes" "los" "les" "usted"
|
|
||||||
"su" "su" "sus" "sus"
|
|
||||||
Masc Pl P3 ;
|
|
||||||
youPolPl8fem_Pron = mkPronoun
|
|
||||||
"ustedes" "las" "les" "usted"
|
|
||||||
"su" "su" "sus" "sus"
|
|
||||||
Fem Pl P3 ;
|
|
||||||
|
|
||||||
ImpNeg np vp = lin Utt{
|
|
||||||
s = (mkClause (np.s ! Nom).comp np.hasClit False np.a vp).s
|
|
||||||
! DInv ! RPres ! Simul ! RNeg False ! Conjunct
|
! DInv ! RPres ! Simul ! RNeg False ! Conjunct
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
InvQuestCl cl = {
|
InvQuestCl cl = {
|
||||||
s = \\t,a,p =>
|
s = \\t,a,p =>
|
||||||
let cls = cl.s ! DInv ! t ! a ! p
|
let cls = cl.s ! DInv ! t ! a ! p
|
||||||
in table {
|
in table {
|
||||||
QDir => cls ! Indic ;
|
QDir => cls ! Indic ;
|
||||||
QIndir => subjIf ++ cls ! Indic
|
QIndir => subjIf ++ cls ! Indic
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- ExtraRomance.PassVPSlash uses estar
|
-- ExtraRomance.PassVPSlash uses estar
|
||||||
PassVPSlash_ser vps =
|
PassVPSlash_ser vps =
|
||||||
let auxvp = predV copula
|
let auxvp = predV copula
|
||||||
in
|
in
|
||||||
insertComplement (\\a => let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) {
|
insertComplement (\\a => let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) {
|
||||||
@@ -75,7 +52,7 @@ concrete ExtraPor of ExtraPorAbs = ExtraRomancePor **
|
|||||||
ext = vps.ext
|
ext = vps.ext
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ExistsNP np =
|
ExistsNP np =
|
||||||
mkClause [] True False np.a (insertComplement (\\_ => (np.s ! Nom).ton) (predV (mkV "existir"))) ;
|
mkClause [] True False np.a (insertComplement (\\_ => (np.s ! Nom).ton) (predV (mkV "existir"))) ;
|
||||||
|
|
||||||
UseComp_estar comp = insertComplement comp.s (predV I.estar_V) ;
|
UseComp_estar comp = insertComplement comp.s (predV I.estar_V) ;
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ abstract ExtraPorAbs = ExtraRomanceAbs ** {
|
|||||||
|
|
||||||
ImpNeg : NP -> VP -> Utt ; --"no fumes"
|
ImpNeg : NP -> VP -> Utt ; --"no fumes"
|
||||||
InvQuestCl : Cl -> QCl ;
|
InvQuestCl : Cl -> QCl ;
|
||||||
|
|
||||||
|
|
||||||
PassVPSlash_ser : VPSlash -> VP ;
|
PassVPSlash_ser : VPSlash -> VP ;
|
||||||
|
|
||||||
UseComp_estar : Comp -> VP ; -- esta lleno, as opposed to es lleno
|
UseComp_estar : Comp -> VP ; -- 'está cheio', instead of 'é cheio'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ concrete LexiconPor of Lexicon = CatPor ** open
|
|||||||
|
|
||||||
flags
|
flags
|
||||||
optimize=values ;
|
optimize=values ;
|
||||||
|
coding=utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
easy_A2V = mkA2V (regA "fácil") dative genitive ;
|
easy_A2V = mkA2V (regA "fácil") dative genitive ;
|
||||||
@@ -38,8 +39,9 @@ lin
|
|||||||
near_A = regA "cercano" ;
|
near_A = regA "cercano" ;
|
||||||
new_A = prefA (regADeg "novo") ;
|
new_A = prefA (regADeg "novo") ;
|
||||||
old_A = prefA (regADeg "velho") ;
|
old_A = prefA (regADeg "velho") ;
|
||||||
|
ready_A = regA "pronto" ;
|
||||||
red_A = regADeg "vermelho" ;
|
red_A = regADeg "vermelho" ;
|
||||||
rotten_A = regA "podrido" ;
|
rotten_A = regA "podre" ;
|
||||||
round_A = regA "redondo" ;
|
round_A = regA "redondo" ;
|
||||||
sharp_A = regA "filoso" ; -- afilado, puntiagudo
|
sharp_A = regA "filoso" ; -- afilado, puntiagudo
|
||||||
short_A = regADeg "curto" ; --- breve, pequeno, baixo
|
short_A = regADeg "curto" ; --- breve, pequeno, baixo
|
||||||
@@ -50,6 +52,7 @@ lin
|
|||||||
thick_A = regADeg "grosso" ;
|
thick_A = regADeg "grosso" ;
|
||||||
thin_A = regADeg "fino" ; -- delgado
|
thin_A = regADeg "fino" ; -- delgado
|
||||||
ugly_A = regADeg "feio" ;
|
ugly_A = regADeg "feio" ;
|
||||||
|
uncertain_A = regA "incerto" ;
|
||||||
warm_A = regADeg "quente" ;
|
warm_A = regADeg "quente" ;
|
||||||
wet_A = regA "mojado" ;
|
wet_A = regA "mojado" ;
|
||||||
white_A = compADeg (regA "blanco") ;
|
white_A = compADeg (regA "blanco") ;
|
||||||
@@ -251,47 +254,47 @@ lin
|
|||||||
right_Ord = M.mkOrd (regA "direita") ;
|
right_Ord = M.mkOrd (regA "direita") ;
|
||||||
john_PN = mkPN "João" masculine ;
|
john_PN = mkPN "João" masculine ;
|
||||||
paris_PN = mkPN "Paris" feminine ;
|
paris_PN = mkPN "Paris" feminine ;
|
||||||
rain_V0 = mkV0 (verboV (llover_89 "chover")) ;
|
-- V
|
||||||
|
rain_V0 = mkV0 (verboV (chover_47 "chover")) ;
|
||||||
paint_V2A = mkV2A (regV "pintar") accusative (mkPrep "em") ;
|
paint_V2A = mkV2A (regV "pintar") accusative (mkPrep "em") ;
|
||||||
ask_V2Q = mkV2Q (regV "perguntar") dative ;
|
ask_V2Q = mkV2Q (regV "perguntar") dative ;
|
||||||
answer_V2S = mkV2S (regV "responder") dative ;
|
answer_V2S = mkV2S (regV "responder") dative ;
|
||||||
beg_V2V = mkV2V (mkV "rogar" "rogo") accusative dative ; -- pedir
|
beg_V2V = mkV2V (mkV "rogar") accusative dative ; -- pedir
|
||||||
-- V2
|
bite_V2 = dirV2 (regV "morder") ;
|
||||||
bite_V2 = dirV2 (verboV (morder_50b "morder")) ;
|
|
||||||
break_V2 = dirV2 (special_ppV (regV "romper") "rompido") ;
|
break_V2 = dirV2 (special_ppV (regV "romper") "rompido") ;
|
||||||
buy_V2 = dirV2 (regV "comprar") ;
|
buy_V2 = dirV2 (regV "comprar") ;
|
||||||
close_V2 = dirV2 (mkV "fechar" "fechado") ;
|
close_V2 = dirV2 (mkV "fechar") ;
|
||||||
count_V2 = dirV2 (verboV (contar_38b "contar")) ;
|
count_V2 = dirV2 (regV "contar") ;
|
||||||
cut_V2 = dirV2 (regV "cortar") ;
|
cut_V2 = dirV2 (regV "cortar") ;
|
||||||
do_V2 = dirV2 (verboV (hacer_44 "fazer")) ;
|
do_V2 = dirV2 (regV "fazer") ;
|
||||||
drink_V2 = dirV2 (regV "beber") ;
|
drink_V2 = dirV2 (regV "beber") ;
|
||||||
eat_V2 = dirV2 (regV "comer") ;
|
eat_V2 = dirV2 (regV "comer") ;
|
||||||
fear_V2 = dirV2 (regV "temer") ;
|
fear_V2 = dirV2 (regV "temer") ;
|
||||||
fight_V2 = dirV2 (regV "lutar") ;
|
fight_V2 = dirV2 (regV "lutar") ;
|
||||||
find_V2 = dirV2 (verboV (encontrar_38 "encontrar")) ;
|
find_V2 = dirV2 (regV "encontrar") ;
|
||||||
forget_V2 = dirV2 (regV "esquecer") ;
|
forget_V2 = dirV2 (regV "esquecer") ;
|
||||||
hate_V2 = dirV2 (mkV "odiar" "ódio") ;
|
hate_V2 = dirV2 (mkV "odiar") ;
|
||||||
hear_V2 = dirV2 (mkV (oir_51 "ouvir")) ;
|
hear_V2 = dirV2 (mkV "ouvir") ;
|
||||||
hit_V2 = dirV2 (regV "bater") ;
|
hit_V2 = dirV2 (regV "bater") ;
|
||||||
hold_V2 = dirV2 (verboV (tener_4 "ter")) ;
|
hold_V2 = dirV2 (regV "ter") ;
|
||||||
hunt_V2 = dirV2 (regV "caçar") ;
|
hunt_V2 = dirV2 (regV "caçar") ;
|
||||||
kill_V2 = dirV2 (regV "matar") ;
|
kill_V2 = dirV2 (regV "matar") ;
|
||||||
know_V2 = mkV2 (verboV (conocer_25 "conhecer")) ;
|
know_V2 = mkV2 (regV "conhecer") ;
|
||||||
learn_V2 = dirV2 (regV "aprender") ;
|
learn_V2 = dirV2 (regV "aprender") ;
|
||||||
leave_V2 = dirV2 (regV "partir") ; -- irse, dejar
|
leave_V2 = dirV2 (regV "partir") ; -- irse, dejar
|
||||||
like_V2 = dirV2 (regV "gostar") ;
|
like_V2 = dirV2 (regV "gostar") ;
|
||||||
listen_V2 = dirV2 (regV "escutar") ;
|
listen_V2 = dirV2 (regV "escutar") ;
|
||||||
lose_V2 = dirV2 (verboV (defender_29 "perder")) ;
|
lose_V2 = dirV2 (regV "perder") ;
|
||||||
love_V2 = dirV2 (regV "amar") ;
|
love_V2 = dirV2 (regV "amar") ;
|
||||||
open_V2 = dirV2 (special_ppV (regV "abrir") "aberto") ;
|
open_V2 = dirV2 (special_ppV (regV "abrir") "aberto") ;
|
||||||
play_V2 = dirV2 (verboV (jugar_47 "jogar")) ;
|
play_V2 = dirV2 (regV "jogar") ;
|
||||||
pull_V2 = dirV2 (regV "tirar") ;
|
pull_V2 = dirV2 (regV "tirar") ;
|
||||||
push_V2 = dirV2 (regV "empurrar") ;
|
push_V2 = dirV2 (regV "empurrar") ;
|
||||||
put_V2 = dirV2 (verboV (poner_60 "por")) ;
|
put_V2 = dirV2 (regV "por") ;
|
||||||
read_V2 = dirV2 (verboV (creer_26 "ler")) ;
|
read_V2 = dirV2 (regV "ler") ;
|
||||||
rub_V2 = dirV2 (regV "resfregar") ;
|
rub_V2 = dirV2 (regV "resfregar") ;
|
||||||
scratch_V2 = dirV2 (regV "rascar") ;
|
scratch_V2 = dirV2 (regV "rascar") ;
|
||||||
see_V2 = dirV2 (verboV (ver_83 "ver")) ;
|
see_V2 = dirV2 (regV "ver") ;
|
||||||
seek_V2 = dirV2 (regV "buscar") ;
|
seek_V2 = dirV2 (regV "buscar") ;
|
||||||
speak_V2 = dirV2 (regV "falar") ;
|
speak_V2 = dirV2 (regV "falar") ;
|
||||||
split_V2 = dirV2 (regV "separar") ; -- dividir,) ;
|
split_V2 = dirV2 (regV "separar") ; -- dividir,) ;
|
||||||
@@ -303,51 +306,51 @@ lin
|
|||||||
teach_V2 = dirV2 (regV "enseñar") ;
|
teach_V2 = dirV2 (regV "enseñar") ;
|
||||||
throw_V2 = dirV2 (regV "tirar") ;
|
throw_V2 = dirV2 (regV "tirar") ;
|
||||||
tie_V2 = dirV2 (regV "atar") ;
|
tie_V2 = dirV2 (regV "atar") ;
|
||||||
understand_V2 = dirV2 (mkV "entender" "entiendo") ;
|
understand_V2 = dirV2 (mkV "entender") ;
|
||||||
wait_V2 = mkV2 (regV "esperar") dative ;
|
wait_V2 = mkV2 (regV "esperar") dative ;
|
||||||
wash_V2 = dirV2 (regV "lavar") ;
|
wash_V2 = dirV2 (regV "lavar") ;
|
||||||
watch_V2 = dirV2 (regV "mirar") ; -- ver
|
watch_V2 = dirV2 (regV "mirar") ; -- ver
|
||||||
win_V2 = dirV2 (regV "ganar") ;
|
win_V2 = dirV2 (regV "ganar") ;
|
||||||
wipe_V2 = dirV2 (regV "secar") ;
|
wipe_V2 = dirV2 (regV "secar") ;
|
||||||
write_V2 = dirV2 (special_ppV (regV "escribir") "escrito") ;
|
write_V2 = dirV2 (special_ppV (regV "escribir") "escrito") ;
|
||||||
add_V3 = dirV3 (regV "sumar") dative ;
|
add_V3 = dirV3 (regV "somar") dative ;
|
||||||
give_V3 = dirdirV3 (verboV (dar_27 "dar")) ;
|
give_V3 = dirdirV3 (regV "dar") ;
|
||||||
sell_V3 = dirV3 (regV "vender") dative ;
|
sell_V3 = dirV3 (regV "vender") dative ;
|
||||||
send_V3 = dirV3 (regV "mandar") dative ; -- enviar
|
send_V3 = dirV3 (regV "mandar") dative ; -- enviar
|
||||||
talk_V3 = mkV3 (regV "hablar") dative genitive ;
|
talk_V3 = mkV3 (regV "falar") dative genitive ;
|
||||||
become_VA = reflV (mkV "converter" "convertido") ; --- convertirse en, volverse, ponerse
|
become_VA = reflV (mkV "converter") ; --- convertirse en, volverse, ponerse
|
||||||
know_VQ = mkVQ (verboV (saber_71 "saber")) ;
|
know_VQ = mkVQ (regV "saber") ;
|
||||||
wonder_VQ = mkVQ (reflV (regV "preguntar")) ;
|
wonder_VQ = mkVQ (reflV (regV "preguntar")) ;
|
||||||
fear_VS = mkVS (regV "temer") ;
|
fear_VS = mkVS (regV "temer") ;
|
||||||
hope_VS = mkVS (regV "esperar") ;
|
hope_VS = mkVS (regV "esperar") ;
|
||||||
know_VS = mkVS (verboV (saber_71 "saber")) ;
|
know_VS = mkVS (regV "saber") ;
|
||||||
say_VS = mkVS (verboV (decir_28 "dizer")) ;
|
say_VS = mkVS (regV "dizer") ;
|
||||||
-- V
|
-- V
|
||||||
blow_V = regV "soplar" ;
|
blow_V = regV "assoprar" ;
|
||||||
breathe_V = (regV "respirar") ;
|
breathe_V = regV "respirar" ;
|
||||||
burn_V = regV "quemar" ;
|
burn_V = regV "queimar" ;
|
||||||
come_V = verboV (venir_82 "vir") ;
|
come_V = regV "vir" ;
|
||||||
die_V = verboV (morir_35b "morrer") ;
|
die_V = regV "morrer" ;
|
||||||
dig_V = regV "escarbar" ;
|
dig_V = regV "escavar" ;
|
||||||
fall_V = verboV (caer_20 "caer") ;
|
fall_V = regV "cair" ;
|
||||||
float_V = regV "flotar" ;
|
float_V = regV "flutuar" ;
|
||||||
flow_V = verboV (influir_45 "fluir") ; -- circular
|
flow_V = regV "fluir" ; -- circular
|
||||||
fly_V = regV "volar" ;
|
fly_V = regV "voar" ;
|
||||||
freeze_V = regV "congelar" ;
|
freeze_V = regV "congelar" ;
|
||||||
go_V = (verboV (ir_46 "ir")) ;
|
go_V = (regV "ir") ;
|
||||||
jump_V = regV "saltar" ;
|
jump_V = regV "saltar" ;
|
||||||
laugh_V = regV "reir" ; ----V reír_67
|
laugh_V = regV "reir" ; ----V reír_67
|
||||||
lie_V = reflV (regV "acostar") ; -- "acostarse"
|
lie_V = reflV (regV "acostar") ; -- "acostarse"
|
||||||
live_V = verboV (vivir_7 "viver") ;
|
live_V = regV "viver" ;
|
||||||
play_V = regV "jugar" ;
|
play_V = regV "jugar" ;
|
||||||
run_V = regV "correr" ;
|
run_V = regV "correr" ;
|
||||||
sew_V = regV "coser" ;
|
sew_V = regV "coser" ;
|
||||||
sing_V = regV "cantar" ;
|
sing_V = regV "cantar" ;
|
||||||
sit_V = reflV (mkV "sentar" "siento") ;
|
sit_V = reflV (mkV "sentar") ;
|
||||||
sleep_V = verboV (dormir_35 "dormir") ;
|
sleep_V = regV "dormir" ;
|
||||||
smell_V = verboV (oler_52 "oler") ;
|
smell_V = regV "cheirar" ;
|
||||||
spit_V = regV "escupir" ;
|
spit_V = regV "escupir" ;
|
||||||
stand_V = verboV (estar_2 "estar") ; ---- "estar de pie" ;
|
stand_V = regV "estar" ; ---- "estar de pie" ;
|
||||||
stop_V = regV "parar" ;
|
stop_V = regV "parar" ;
|
||||||
swell_V = regV "tragar" ;
|
swell_V = regV "tragar" ;
|
||||||
swim_V = regV "nadar" ;
|
swim_V = regV "nadar" ;
|
||||||
@@ -356,5 +359,6 @@ lin
|
|||||||
turn_V = regV "doblar" ;
|
turn_V = regV "doblar" ;
|
||||||
vomit_V = regV "vomitar" ;
|
vomit_V = regV "vomitar" ;
|
||||||
walk_V = mkV "caminhar" ;
|
walk_V = mkV "caminhar" ;
|
||||||
|
-- interj
|
||||||
|
alas_Interj = ss "infelizmente" ;
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ resource MorphoPor = CommonRomance, ResPor **
|
|||||||
CatPor in {
|
CatPor in {
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
coding=utf8 ;
|
||||||
--2 Nouns
|
--2 Nouns
|
||||||
--
|
--
|
||||||
-- The following macro is useful for creating the forms of
|
-- The following macro is useful for creating the forms of
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
concrete NumeralPor of Numeral = CatPor [Numeral,Digits] **
|
concrete NumeralPor of Numeral = CatPor [Numeral,Digits] **
|
||||||
open CommonRomance, ResRomance, MorphoPor, Prelude in {
|
open CommonRomance, ResRomance, MorphoPor, Prelude in {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
Digit = {s : DForm => CardOrd => Str} ;
|
Digit = {s : DForm => CardOrd => Str} ;
|
||||||
Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
|
Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ resource ParadigmsPor =
|
|||||||
CatPor in {
|
CatPor in {
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
coding=utf8 ;
|
||||||
|
|
||||||
--2 Parameters
|
--2 Parameters
|
||||||
--
|
--
|
||||||
@@ -92,7 +93,7 @@ oper
|
|||||||
mascN : N -> N ;
|
mascN : N -> N ;
|
||||||
mascN x = {s = x.s ; g = masculine ; lock_N = <>} ;
|
mascN x = {s = x.s ; g = masculine ; lock_N = <>} ;
|
||||||
|
|
||||||
mk2N : (baston,bastones : Str) -> Gender -> N ;
|
mk2N : (bastão, bastões : Str) -> Gender -> N ;
|
||||||
mk2N x y g = mkNounIrreg x y g ** {lock_N = <>} ;
|
mk2N x y g = mkNounIrreg x y g ** {lock_N = <>} ;
|
||||||
|
|
||||||
--- [] update this docstring
|
--- [] update this docstring
|
||||||
@@ -188,6 +189,11 @@ oper
|
|||||||
a.s ! Posit ! f} ;
|
a.s ! Posit ! f} ;
|
||||||
isPre = a.isPre ; lock_A = <>} ;
|
isPre = a.isPre ; lock_A = <>} ;
|
||||||
|
|
||||||
|
{- superlADeg : A -> A ;
|
||||||
|
superlADeg a = {s = table {Posit => a.s ! Posit ;
|
||||||
|
Compar => a.s ! Compar ;
|
||||||
|
Superl => a.s ! Compar}} ;
|
||||||
|
-}
|
||||||
regA : Str -> A ;
|
regA : Str -> A ;
|
||||||
regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ;
|
regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ;
|
||||||
lock_A = <>} ;
|
lock_A = <>} ;
|
||||||
@@ -267,31 +273,39 @@ oper
|
|||||||
--2 Verbs
|
--2 Verbs
|
||||||
|
|
||||||
regV : Str -> V ;
|
regV : Str -> V ;
|
||||||
regV x = -- cortar actuar cazar guiar pagar sacar
|
regV v = -- cortar actuar cazar guiar pagar sacar
|
||||||
let
|
let
|
||||||
ar = Predef.dp 2 x ;
|
xr = Predef.dp 2 v ; -- -ar
|
||||||
z = Predef.dp 1 (Predef.tk 2 x) ;
|
z = Predef.dp 1 (Predef.tk 2 v) ; -- i in -iar
|
||||||
verb = case ar of {
|
verb = case xr of {
|
||||||
"ir" => vivir_7 x ;
|
"ir" => case z of {
|
||||||
"er" => deber_6 x ;
|
"g" => redigir_52 v ;
|
||||||
"ar" => case z of {
|
"a" => sair_68 v ;
|
||||||
"u" => actuar_9 x ;
|
"u" => distribuir_73 v ;
|
||||||
"z" => cazar_21 x ;
|
_ => garantir_6 v
|
||||||
"i" => guiar_43 x ;
|
|
||||||
"g" => pagar_53 x ;
|
|
||||||
"c" => sacar_72 x ;
|
|
||||||
_ => cortar_5 x
|
|
||||||
} ;
|
} ;
|
||||||
_ => Predef.error ("regular verb infinitive must end ar/ir/er, not satisfied by" ++ x) -- rm this?
|
"er" => case z of {
|
||||||
|
"c" => aquecer_25 v ;
|
||||||
|
_ => vender_5 v
|
||||||
|
} ;
|
||||||
|
"ar" => case z of {
|
||||||
|
"e" => recear_15 v ;
|
||||||
|
"i" => anunciar_16 v ;
|
||||||
|
"o" => perdoar_20 v ;
|
||||||
|
"u" => averiguar_21 v ;
|
||||||
|
_ => comprar_4 v
|
||||||
|
} ;
|
||||||
|
"or" => pôr_45 v ;
|
||||||
|
_ => comprar_4 v -- hole
|
||||||
}
|
}
|
||||||
in verboV verb ;
|
in verboV verb ;
|
||||||
|
|
||||||
regAltV : (mostrar,muestro : Str) -> V ;
|
{- regAltV : (mostrar,muestro : Str) -> V ;
|
||||||
regAltV x y = case x of {
|
regAltV x y = case x of {
|
||||||
_ + "ar" => verboV (regAlternV x y) ;
|
_ + "ar" => verboV (regAlternV x y) ;
|
||||||
_ => verboV (regAlternVEr x y)
|
_ => verboV (regAlternVEr x y)
|
||||||
} ;
|
} ;
|
||||||
|
-}
|
||||||
verboV : Verbum -> V ;
|
verboV : Verbum -> V ;
|
||||||
verboV ve = verbBesch ve ** {vtyp = VHabere ; p = [] ;
|
verboV ve = verbBesch ve ** {vtyp = VHabere ; p = [] ;
|
||||||
lock_V = <>} ;
|
lock_V = <>} ;
|
||||||
@@ -311,7 +325,8 @@ oper
|
|||||||
|
|
||||||
-- Verbs with vowel alternation in the stem - easiest to give with two
|
-- Verbs with vowel alternation in the stem - easiest to give with two
|
||||||
-- forms, e.g. "mostrar"/"muestro".
|
-- forms, e.g. "mostrar"/"muestro".
|
||||||
mkV : (mostrar,muestro : Str) -> V = regAltV ;
|
-- mkV : (mostrar,muestro : Str) -> V = regAltV ;
|
||||||
|
-- rm'ed as is uncommon in Por
|
||||||
|
|
||||||
-- Most irregular verbs are found in $IrregPor$. If this is not
|
-- Most irregular verbs are found in $IrregPor$. If this is not
|
||||||
-- enough, the module $BeschPor$ gives all the patterns of the
|
-- enough, the module $BeschPor$ gives all the patterns of the
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
--# -path=alltenses
|
--# -path=alltenses
|
||||||
concrete ParsePor of ParseEngAbs =
|
concrete ParsePor of ParseEngAbs =
|
||||||
TensePor,
|
TensePor,
|
||||||
-- CatPor,
|
-- CatPor,
|
||||||
NounPor - [PPartNP],
|
NounPor - [PPartNP],
|
||||||
@@ -19,7 +19,7 @@ concrete ParsePor of ParseEngAbs =
|
|||||||
VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||||
ClSlash, RCl, EmptyRelSlash],
|
ClSlash, RCl, EmptyRelSlash],
|
||||||
|
|
||||||
DictEngPor **
|
DictEngPor **
|
||||||
open MorphoPor, ResPor, ParadigmsPor, SyntaxPor, Prelude in {
|
open MorphoPor, ResPor, ParadigmsPor, SyntaxPor, Prelude in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
@@ -30,11 +30,11 @@ flags
|
|||||||
lin
|
lin
|
||||||
-- missing from ExtraPor; should not really be there either
|
-- missing from ExtraPor; should not really be there either
|
||||||
|
|
||||||
GenNP np =
|
GenNP np =
|
||||||
let denp = (np.s ! ResPor.genitive).ton in {
|
let denp = (np.s ! ResPor.genitive).ton in {
|
||||||
s = \\_,_,_,_ => [] ;
|
s = \\_,_,_,_ => [] ;
|
||||||
sp = \\_,_,_ => denp ;
|
sp = \\_,_,_ => denp ;
|
||||||
s2 = denp ;
|
s2 = denp ;
|
||||||
isNeg = False ;
|
isNeg = False ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -46,12 +46,12 @@ lin
|
|||||||
|
|
||||||
-- lexical entries
|
-- lexical entries
|
||||||
|
|
||||||
another_Quant = mkQuantifier "otro" "otra" "otros" "otras" ;
|
another_Quant = mkQuantifier "outro" "outra" "outros" "outras" ;
|
||||||
some_Quant = mkQuantifier "algún" "alguna" "algunos" "algunas" ;
|
some_Quant = mkQuantifier "algum" "alguma" "alguns" "algumas" ;
|
||||||
anySg_Det = mkDeterminer "algún" "alguna" Sg False ; ---- also meaning "whichever" ?
|
anySg_Det = mkDeterminer "algum" "alguma" Sg False ; ---- also meaning "whichever" ?
|
||||||
each_Det = SyntaxPor.every_Det ;
|
each_Det = SyntaxPor.every_Det ;
|
||||||
|
|
||||||
but_Subj = {s = "pero" ; m = Indic} ; ---- strange to have this as Subj
|
but_Subj = {s = "mas" ; m = Indic} ; ---- strange to have this as Subj
|
||||||
|
|
||||||
{-
|
{-
|
||||||
myself_NP = regNP "myself" singular ;
|
myself_NP = regNP "myself" singular ;
|
||||||
@@ -70,7 +70,7 @@ lin
|
|||||||
g = cn.g
|
g = cn.g
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
DashCN noun1 noun2 = {
|
DashCN noun1 noun2 = {
|
||||||
s = \\n,c => noun1.s ! Sg ! Nom ++ "-" ++ noun2.s ! n ! c ;
|
s = \\n,c => noun1.s ! Sg ! Nom ++ "-" ++ noun2.s ! n ! c ;
|
||||||
g = noun2.g
|
g = noun2.g
|
||||||
@@ -80,7 +80,7 @@ lin
|
|||||||
s = \\n,c => v.s ! VPresPart ;
|
s = \\n,c => v.s ! VPresPart ;
|
||||||
g = Neutr
|
g = Neutr
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
GerundAP v = {
|
GerundAP v = {
|
||||||
s = \\agr => v.s ! VPresPart ;
|
s = \\agr => v.s ! VPresPart ;
|
||||||
isPre = True
|
isPre = True
|
||||||
@@ -108,11 +108,11 @@ lin
|
|||||||
infVP v.typ vp ant.a p.p a)
|
infVP v.typ vp ant.a p.p a)
|
||||||
(predVc v) ;
|
(predVc v) ;
|
||||||
|
|
||||||
SlashVPIV2V v p vpi = insertObjc (\\a => p.s ++
|
SlashVPIV2V v p vpi = insertObjc (\\a => p.s ++
|
||||||
v.c3 ++
|
v.c3 ++
|
||||||
vpi.s ! VVAux ! a)
|
vpi.s ! VVAux ! a)
|
||||||
(predVc v) ;
|
(predVc v) ;
|
||||||
ComplVV v a p vp = insertObj (\\agr => a.s ++ p.s ++
|
ComplVV v a p vp = insertObj (\\agr => a.s ++ p.s ++
|
||||||
infVP v.typ vp a.a p.p agr)
|
infVP v.typ vp a.a p.p agr)
|
||||||
(predVV v) ;
|
(predVV v) ;
|
||||||
-}
|
-}
|
||||||
@@ -126,10 +126,10 @@ lin
|
|||||||
|
|
||||||
{-
|
{-
|
||||||
CompQS qs = {s = \\_ => qs.s ! QIndir} ;
|
CompQS qs = {s = \\_ => qs.s ! QIndir} ;
|
||||||
CompVP ant p vp = {s = \\a => ant.s ++ p.s ++
|
CompVP ant p vp = {s = \\a => ant.s ++ p.s ++
|
||||||
infVP VVInf vp ant.a p.p a} ;
|
infVP VVInf vp ant.a p.p a} ;
|
||||||
|
|
||||||
VPSlashVS vs vp =
|
VPSlashVS vs vp =
|
||||||
insertObj (\\a => infVP VVInf vp Simul CPos a) (predV vs) **
|
insertObj (\\a => infVP VVInf vp Simul CPos a) (predV vs) **
|
||||||
{c2 = ""; gapInMiddle = False} ;
|
{c2 = ""; gapInMiddle = False} ;
|
||||||
|
|
||||||
@@ -147,11 +147,11 @@ lin
|
|||||||
s = \\c => np1.s ! c ++ "," ++ np2.s ! npNom ;
|
s = \\c => np1.s ! c ++ "," ++ np2.s ! npNom ;
|
||||||
a = np1.a
|
a = np1.a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdAdV = cc2 ;
|
AdAdV = cc2 ;
|
||||||
|
|
||||||
UttAdV adv = adv;
|
UttAdV adv = adv;
|
||||||
|
|
||||||
-}
|
-}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,39 +1,3 @@
|
|||||||
resource PhonoPor = open Prelude in {
|
resource PhonoPor = open Prelude in {
|
||||||
flags coding=utf8 ;
|
|
||||||
|
|
||||||
--3 Elision
|
|
||||||
--
|
|
||||||
-- The phonological rule of *elision* can be defined as follows in GF.
|
|
||||||
-- In Pornish it includes both vowels and 'h'.
|
|
||||||
|
|
||||||
oper
|
|
||||||
vocale : Strs = strs {
|
|
||||||
"a" ; "e" ; "h" ; "i" ; "o" ; "u"
|
|
||||||
} ;
|
|
||||||
|
|
||||||
--Feminine nouns that start with stressed a use the masculine article el for phonetic reasons:
|
|
||||||
--e.g. "el agua pura" but "la pura agua".
|
|
||||||
--To prevent "el aguamarina", we list explicitly words that begin with these words
|
|
||||||
falseAWords : pattern Str = #("aguam"|"aguaf"|"almac"|"alab"|"alac"|"alam"|"alan"|"alar") ;
|
|
||||||
aWords : pattern Str = #("agua" | "alma" | "ala") ;
|
|
||||||
|
|
||||||
chooseLa = pre {
|
|
||||||
falseAWords => "la" ;
|
|
||||||
aWords => "el" ;
|
|
||||||
"á" => "el" ;
|
|
||||||
_ => "la"
|
|
||||||
} ;
|
|
||||||
chooseDeLa = pre {
|
|
||||||
falseAWords => "de la" ;
|
|
||||||
aWords => "del" ;
|
|
||||||
"á" => "del" ;
|
|
||||||
_ => "de la"
|
|
||||||
} ;
|
|
||||||
|
|
||||||
chooseALa = pre {
|
|
||||||
falseAWords => "a la" ;
|
|
||||||
aWords => "al" ;
|
|
||||||
"á" => "al" ;
|
|
||||||
_ => "a la"
|
|
||||||
} ;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ concrete StructuralPor of Structural = CatPor **
|
|||||||
MakeStructuralPor, (X = ConstructX), Prelude in {
|
MakeStructuralPor, (X = ConstructX), Prelude in {
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
coding=utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
-- have_V3
|
-- have_V3
|
||||||
@@ -60,8 +61,8 @@ concrete StructuralPor of Structural = CatPor **
|
|||||||
but_PConj = ss "mas" ;
|
but_PConj = ss "mas" ;
|
||||||
by8agent_Prep = mkPrep "por" ;
|
by8agent_Prep = mkPrep "por" ;
|
||||||
by8means_Prep = mkPrep "por" ;
|
by8means_Prep = mkPrep "por" ;
|
||||||
can8know_VV = mkVV (verboV (saber_71 "saber")) ;
|
can8know_VV = mkVV (verboV (saber_35 "saber")) ;
|
||||||
can_VV = mkVV (verboV (poder_58 "poder")) ;
|
can_VV = mkVV (verboV (poder_36 "poder")) ;
|
||||||
during_Prep = mkPrep "durante" ;
|
during_Prep = mkPrep "durante" ;
|
||||||
either7or_DConj = {s1,s2 = "o" ; n = Sg} ;
|
either7or_DConj = {s1,s2 = "o" ; n = Sg} ;
|
||||||
everybody_NP = makeNP ["todos"] Masc Pl ;
|
everybody_NP = makeNP ["todos"] Masc Pl ;
|
||||||
@@ -91,7 +92,7 @@ concrete StructuralPor of Structural = CatPor **
|
|||||||
most_Predet = {s = \\_,c => prepCase c ++ ["a maior parte"] ; c = CPrep P_de ;
|
most_Predet = {s = \\_,c => prepCase c ++ ["a maior parte"] ; c = CPrep P_de ;
|
||||||
a = PNoAg} ;
|
a = PNoAg} ;
|
||||||
much_Det = mkDeterminer "muito" "muita" Sg False ;
|
much_Det = mkDeterminer "muito" "muita" Sg False ;
|
||||||
must_VV = mkVV (verboV (deber_6 "dever")) ;
|
must_VV = mkVV (regV "dever") ;
|
||||||
no_Quant =
|
no_Quant =
|
||||||
let
|
let
|
||||||
ningun : ParadigmsPor.Number => ParadigmsPor.Gender => Case => Str = table {
|
ningun : ParadigmsPor.Number => ParadigmsPor.Gender => Case => Str = table {
|
||||||
@@ -135,7 +136,7 @@ concrete StructuralPor of Structural = CatPor **
|
|||||||
to_Prep = complDat ;
|
to_Prep = complDat ;
|
||||||
under_Prep = mkPrep "embaixo" ;
|
under_Prep = mkPrep "embaixo" ;
|
||||||
very_AdA = ss "muito" ;
|
very_AdA = ss "muito" ;
|
||||||
want_VV = mkVV (verboV (querer_64 "querer")) ;
|
want_VV = mkVV (verboV (querer_38 "querer")) ;
|
||||||
whatSg_IP = {s = \\c => prepCase c ++ ["que"] ; a = aagr Masc Sg} ;
|
whatSg_IP = {s = \\c => prepCase c ++ ["que"] ; a = aagr Masc Sg} ;
|
||||||
whatPl_IP = {s = \\c => prepCase c ++ ["que"] ; a = aagr Masc Pl} ; ---
|
whatPl_IP = {s = \\c => prepCase c ++ ["que"] ; a = aagr Masc Pl} ; ---
|
||||||
when_IAdv = ss "quando" ;
|
when_IAdv = ss "quando" ;
|
||||||
@@ -166,7 +167,7 @@ concrete StructuralPor of Structural = CatPor **
|
|||||||
Masc Pl P2 ;
|
Masc Pl P2 ;
|
||||||
lin
|
lin
|
||||||
as_CAdv = X.mkCAdv "tão" conjThan ; ----
|
as_CAdv = X.mkCAdv "tão" conjThan ; ----
|
||||||
have_V2 = dirV2 (verboV (tener_4 "ter")) ;
|
have_V2 = dirV2 (verboV (ter_1 "ter")) ;
|
||||||
that_Subj = {s = "que" ; m = Conjunct} ;
|
that_Subj = {s = "que" ; m = Conjunct} ;
|
||||||
|
|
||||||
lin language_title_Utt = ss "português" ;
|
lin language_title_Utt = ss "português" ;
|
||||||
|
|||||||
5
src/portuguese/SymbolicPor.gf
Normal file
5
src/portuguese/SymbolicPor.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
--# -path=.:../spanish:../romance:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource SymbolicPor = Symbolic with
|
||||||
|
(Symbol = SymbolPor),
|
||||||
|
(Grammar = GrammarPor) ;
|
||||||
4
src/portuguese/SyntaxPor.gf
Normal file
4
src/portuguese/SyntaxPor.gf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
--# -path=.:alltenses
|
||||||
|
|
||||||
|
instance SyntaxPor of Syntax =
|
||||||
|
ConstructorsPor, CatPor, StructuralPor, CombinatorsPor ;
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
--# -path=.:../abstract:../common
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
concrete TerminologyPor of Terminology = CatPor ** open
|
concrete TerminologyPor of Terminology = CatPor ** open
|
||||||
ResPor,
|
ResPor,
|
||||||
CommonRomance,
|
CommonRomance,
|
||||||
ParadigmsPor,
|
ParadigmsPor,
|
||||||
@@ -17,29 +18,29 @@ lincat
|
|||||||
Category = G.N ;
|
Category = G.N ;
|
||||||
ParameterType = G.N ;
|
ParameterType = G.N ;
|
||||||
Parameter = G.N ;
|
Parameter = G.N ;
|
||||||
|
|
||||||
Heading = {s : Str} ;
|
Heading = {s : Str} ;
|
||||||
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
noun_Category = mkN "sustantivo" ;
|
noun_Category = mkN "substantivo" ;
|
||||||
adjective_Category = mkN "adjetivo" ;
|
adjective_Category = mkN "adjetivo" ;
|
||||||
verb_Category = mkN "verbo" masculine ;
|
verb_Category = mkN "verbo" masculine ;
|
||||||
|
|
||||||
gender_ParameterType = mkN "género" masculine ;
|
gender_ParameterType = mkN "gênero" masculine ;
|
||||||
|
|
||||||
singular_Parameter = mkN "singular" ;
|
singular_Parameter = mkN "singular" ;
|
||||||
plural_Parameter = mkN "plural" ;
|
plural_Parameter = mkN "plural" ;
|
||||||
|
|
||||||
masculine_Parameter = mkN "masculino" ;
|
masculine_Parameter = mkN "masculino" ;
|
||||||
feminine_Parameter = mkN "femenino" ;
|
feminine_Parameter = mkN "feminino" ;
|
||||||
neuter_Parameter = mkN "neutro" ;
|
neuter_Parameter = mkN "neutro" ;
|
||||||
|
|
||||||
nominative_Parameter = mkN "nominativo" ;
|
nominative_Parameter = mkN "nominativo" ;
|
||||||
genitive_Parameter = mkN "genitivo" ;
|
genitive_Parameter = mkN "genitivo" ;
|
||||||
dative_Parameter = mkN "dativo" ;
|
dative_Parameter = mkN "dativo" ;
|
||||||
accusative_Parameter = mkN "accusativo" ;
|
accusative_Parameter = mkN "acusativo" ;
|
||||||
|
|
||||||
imperative_Parameter = mkN "imperativo" ;
|
imperative_Parameter = mkN "imperativo" ;
|
||||||
indicative_Parameter = mkN "indicativo" ;
|
indicative_Parameter = mkN "indicativo" ;
|
||||||
conjunctive_Parameter = mkN "subjuntivo" ;
|
conjunctive_Parameter = mkN "subjuntivo" ;
|
||||||
@@ -49,11 +50,11 @@ lin
|
|||||||
past_Parameter = mkN "pretérito" ;
|
past_Parameter = mkN "pretérito" ;
|
||||||
future_Parameter = mkN "futuro" ;
|
future_Parameter = mkN "futuro" ;
|
||||||
conditional_Parameter = mkN "condicional" ;
|
conditional_Parameter = mkN "condicional" ;
|
||||||
perfect_Parameter = mkN "perfecto compuesto" ; ----
|
perfect_Parameter = mkN "perfeito composto" ; ----
|
||||||
imperfect_Parameter = mkN "imperfecto" ;
|
imperfect_Parameter = mkN "imperfeito" ;
|
||||||
simple_past_Parameter = mkN "perfecto simple" ; ----
|
simple_past_Parameter = mkN "perfeito simples" ; ----
|
||||||
|
|
||||||
participle_Parameter = mkN "participio" ;
|
participle_Parameter = mkN "particípio" ;
|
||||||
aux_verb_Parameter = mkN "auxiliar" ; ----
|
aux_verb_Parameter = mkN "auxiliar" ; ----
|
||||||
|
|
||||||
positive_Parameter = mkN "positivo" ;
|
positive_Parameter = mkN "positivo" ;
|
||||||
@@ -63,6 +64,6 @@ lin
|
|||||||
|
|
||||||
nounHeading n = ss (n.s ! Sg) ;
|
nounHeading n = ss (n.s ! Sg) ;
|
||||||
|
|
||||||
exampleGr_N = mkN "ejemplo" masculine ;
|
exampleGr_N = mkN "examplo" masculine ;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
concrete TextPor of Text = CommonX - [Temp,TTAnt,Tense,TPres,TPast,TFut,TCond] ** open Prelude in {
|
concrete TextPor of Text = CommonX - [Temp,TTAnt,Tense,TPres,TPast,TFut,TCond] ** open Prelude in {
|
||||||
|
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
-- This works for the special punctuation marks of Portuguese.
|
|
||||||
|
|
||||||
lin
|
lin
|
||||||
TEmpty = {s = []} ;
|
TEmpty = {s = []} ;
|
||||||
TFullStop x xs = {s = x.s ++ SOFT_BIND ++ "." ++ xs.s} ;
|
TFullStop x xs = {s = x.s ++ SOFT_BIND ++ "." ++ xs.s} ;
|
||||||
TQuestMark x xs = {s = "¿" ++ SOFT_BIND ++ x.s ++ SOFT_BIND ++ "?" ++ xs.s} ;
|
TQuestMark x xs = {s = x.s ++ SOFT_BIND ++ "?" ++ xs.s} ;
|
||||||
TExclMark x xs = {s = "¡" ++ SOFT_BIND ++ x.s ++ SOFT_BIND ++ "!" ++ xs.s} ;
|
TExclMark x xs = {s = x.s ++ SOFT_BIND ++ "!" ++ xs.s} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
3
src/portuguese/TryPor.gf
Normal file
3
src/portuguese/TryPor.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
--# -path=.:../spanish:../romance:../common:../abstract:../prelude
|
||||||
|
|
||||||
|
resource TryPor = SyntaxPor, LexiconPor, ParadigmsPor - [mkAdv,mkAdN] ;
|
||||||
Reference in New Issue
Block a user