forked from GitHub/gf-rgl
Merge branch 'por-extra' into por-merge
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
--1 Structural: Structural Words
|
||||
--
|
||||
--
|
||||
-- Here we have some words belonging to closed classes and appearing
|
||||
-- in all languages we have considered.
|
||||
-- Sometimes more distinctions are needed, e.g. $we_Pron$ in Spanish
|
||||
-- should be replaced by masculine and feminine variants, found in
|
||||
-- [``ExtraSpa`` ../spanish/ExtraSpa.gf].
|
||||
-- [``ExtendSpa`` ../spanish/ExtendSpa.gf].
|
||||
|
||||
abstract Structural = Cat ** {
|
||||
|
||||
@@ -12,11 +12,11 @@ abstract Structural = Cat ** {
|
||||
|
||||
-- This is an alphabetical list of structural words
|
||||
|
||||
above_Prep : Prep ;
|
||||
above_Prep : Prep ;
|
||||
after_Prep : Prep ;
|
||||
all_Predet : Predet ;
|
||||
almost_AdA : AdA ;
|
||||
almost_AdN : AdN ;
|
||||
almost_AdA : AdA ;
|
||||
almost_AdN : AdN ;
|
||||
although_Subj : Subj ;
|
||||
always_AdV : AdV ;
|
||||
and_Conj : Conj ;
|
||||
@@ -84,7 +84,7 @@ abstract Structural = Cat ** {
|
||||
there7to_Adv : Adv ; -- to there
|
||||
there7from_Adv : Adv ; -- from there
|
||||
therefore_PConj : PConj ;
|
||||
they_Pron : Pron ;
|
||||
they_Pron : Pron ;
|
||||
this_Quant : Quant ;
|
||||
through_Prep : Prep ;
|
||||
to_Prep : Prep ;
|
||||
@@ -110,7 +110,7 @@ abstract Structural = Cat ** {
|
||||
youPl_Pron : Pron ; -- you (plural)
|
||||
youPol_Pron : Pron ; -- you (polite)
|
||||
|
||||
no_Quant : Quant ;
|
||||
no_Quant : Quant ;
|
||||
not_Predet : Predet ;
|
||||
if_then_Conj : Conj ;
|
||||
at_least_AdN : AdN ;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--# -path=.:../romance:../abstract:../common:../api:../prelude
|
||||
|
||||
concrete AllPor of AllPorAbs =
|
||||
concrete AllPor of AllPorAbs =
|
||||
LangPor,
|
||||
IrregPor,
|
||||
ExtraPor
|
||||
ExtendPor
|
||||
** {} ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
abstract AllPorAbs =
|
||||
abstract AllPorAbs =
|
||||
Lang,
|
||||
IrregPorAbs,
|
||||
ExtraPorAbs
|
||||
Extend
|
||||
** {} ;
|
||||
|
||||
68
src/portuguese/ExtendPor.gf
Normal file
68
src/portuguese/ExtendPor.gf
Normal file
@@ -0,0 +1,68 @@
|
||||
--# -path=alltenses:../common:../abstract
|
||||
|
||||
concrete ExtendPor of Extend =
|
||||
CatPor ** ExtendFunctor -
|
||||
[
|
||||
iFem_Pron, weFem_Pron, youFem_Pron, youPlFem_Pron, youPolPl_Pron, youPolFem_Pron, youPolPlFem_Pron, theyFem_Pron,
|
||||
ProDrop,
|
||||
PassVPSlash, ExistsNP
|
||||
] -- put the names of your own definitions here
|
||||
with
|
||||
(Grammar = GrammarPor), (Syntax = SyntaxPor) **
|
||||
open
|
||||
GrammarPor,
|
||||
ResPor,
|
||||
MorphoPor,
|
||||
Coordination,
|
||||
Prelude,
|
||||
ParadigmsPor,
|
||||
(S = StructuralPor) in {
|
||||
|
||||
lin
|
||||
ProDrop p = {
|
||||
s = table {
|
||||
Nom => let pn = p.s ! Nom in {c1 = pn.c1 ; c2 = pn.c2 ; comp = [] ; ton = pn.ton} ;
|
||||
c => p.s ! c
|
||||
} ;
|
||||
a = p.a ;
|
||||
poss = p.poss ;
|
||||
hasClit = p.hasClit ;
|
||||
isPol = p.isPol ;
|
||||
isNeg = False
|
||||
} ;
|
||||
|
||||
lin
|
||||
PassVPSlash vps =
|
||||
let auxvp = predV copula
|
||||
in
|
||||
insertComplement (\\a => let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) {
|
||||
s = auxvp.s ;
|
||||
agr = auxvp.agr ;
|
||||
neg = vps.neg ;
|
||||
clit1 = vps.clit1 ;
|
||||
clit2 = vps.clit2 ;
|
||||
clit3 = vps.clit3 ;
|
||||
isNeg = vps.isNeg ;
|
||||
comp = vps.comp ;
|
||||
ext = vps.ext
|
||||
} ;
|
||||
|
||||
ExistsNP np =
|
||||
mkClause [] True False np.a
|
||||
(insertComplement (\\_ => (np.s ! Nom).ton)
|
||||
(predV (mkV "existir"))) ;
|
||||
|
||||
lin
|
||||
-- Romance
|
||||
iFem_Pron = pronAgr S.i_Pron Fem Sg P1 ;
|
||||
weFem_Pron = pronAgr S.we_Pron Fem Pl P1 ;
|
||||
youFem_Pron = pronAgr S.youSg_Pron Fem Sg P3 ;
|
||||
youPlFem_Pron = pronAgr S.youPl_Pron Fem Pl P3 ;
|
||||
youPolPl_Pron = mkPronoun "vós" "vos" "vos" "vós"
|
||||
"vosso" "vossa" "vossos" "vossas"
|
||||
Masc Pl P2 ;
|
||||
youPolFem_Pron = pronAgr S.youPol_Pron Fem Sg P2 ;
|
||||
youPolPlFem_Pron = pronAgr youPolPl_Pron Fem Pl P2 ;
|
||||
theyFem_Pron = mkPronFrom S.they_Pron "elas" "as" "lhes" "elas" Fem Pl P3 ;
|
||||
|
||||
} ;
|
||||
@@ -1,18 +1,20 @@
|
||||
-- the Extra* modules are to be deprecated in favour of the Extend*
|
||||
-- module.
|
||||
concrete ExtraPor of ExtraPorAbs = ExtraRomancePor **
|
||||
open CommonRomance, PhonoPor, MorphoPor, ParadigmsPor, ParamX, ResPor, BeschPor, (I = IrregPor), (S = StructuralPor),
|
||||
open CommonRomance, PhonoPor, MorphoPor, ParadigmsPor, ParamX, ResPor, BeschPor, (I = IrregPor), (E = ExtendPor),
|
||||
Prelude in {
|
||||
flags coding=utf8 ;
|
||||
|
||||
lin
|
||||
--- Prons
|
||||
i8fem_Pron = pronAgr S.i_Pron Fem Sg P1 ;
|
||||
youSg8fem_Pron = pronAgr S.youSg_Pron Fem Sg P3 ;
|
||||
we8fem_Pron = pronAgr S.we_Pron Fem Pl P1 ;
|
||||
youPl8fem_Pron = pronAgr S.youPl_Pron Fem Pl P3 ;
|
||||
youPolPl_Pron = S.youPol_Pron ** pronLin "vós" "vos" "vos" "vós" ;
|
||||
youPol8fem_Pron = pronAgr S.youPol_Pron Fem Sg P2 ;
|
||||
youPolPl8fem_Pron = pronAgr youPolPl_Pron Fem Pl P2 ;
|
||||
they8fem_Pron = mkPronFrom S.they_Pron "elas" "as" "lhes" "elas" Fem Pl P3 ;
|
||||
i8fem_Pron = E.iFem_Pron ;
|
||||
youSg8fem_Pron = E.youFem_Pron ;
|
||||
we8fem_Pron = E.weFem_Pron ;
|
||||
youPl8fem_Pron = E.youPlFem_Pron ;
|
||||
youPolPl_Pron = E.youPolPl_Pron ;
|
||||
youPol8fem_Pron = E.youPolFem_Pron ;
|
||||
youPolPl8fem_Pron = E.youPolPlFem_Pron ;
|
||||
they8fem_Pron = E.theyFem_Pron ;
|
||||
|
||||
|
||||
these8fem_NP = makeNP ["estas"] Fem Pl ;
|
||||
@@ -37,23 +39,9 @@ concrete ExtraPor of ExtraPorAbs = ExtraRomancePor **
|
||||
} ;
|
||||
|
||||
-- ExtraRomance.PassVPSlash uses estar
|
||||
PassVPSlash_ser vps =
|
||||
let auxvp = predV copula
|
||||
in
|
||||
insertComplement (\\a => let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) {
|
||||
s = auxvp.s ;
|
||||
agr = auxvp.agr ;
|
||||
neg = vps.neg ;
|
||||
clit1 = vps.clit1 ;
|
||||
clit2 = vps.clit2 ;
|
||||
clit3 = vps.clit3 ;
|
||||
isNeg = vps.isNeg ;
|
||||
comp = vps.comp ;
|
||||
ext = vps.ext
|
||||
} ;
|
||||
PassVPSlash_ser = E.PassVPSlash ;
|
||||
|
||||
ExistsNP np =
|
||||
mkClause [] True False np.a (insertComplement (\\_ => (np.s ! Nom).ton) (predV (mkV "existir"))) ;
|
||||
ExistsNP = E.ExistsNP ;
|
||||
|
||||
UseComp_estar comp = insertComplement comp.s (predV I.estar_V) ;
|
||||
|
||||
|
||||
@@ -14,19 +14,19 @@ abstract ExtraPorAbs = ExtraRomanceAbs ** {
|
||||
this8fem_NP : NP ;
|
||||
those8fem_NP : NP ;
|
||||
|
||||
we8fem_Pron : Pron ; -- nosotras
|
||||
we8fem_Pron : Pron ;
|
||||
whoPl8fem_IP : IP ;
|
||||
whoSg8fem_IP : IP ;
|
||||
|
||||
youSg8fem_Pron : Pron ;
|
||||
youPl8fem_Pron : Pron ; -- vosotras
|
||||
youPol8fem_Pron : Pron ; -- usted
|
||||
youPl8fem_Pron : Pron ;
|
||||
youPol8fem_Pron : Pron ;
|
||||
|
||||
youPolPl_Pron : Pron ; -- ustedes
|
||||
youPolPl_Pron : Pron ;
|
||||
youPolPl8fem_Pron : Pron ;
|
||||
|
||||
|
||||
ImpNeg : NP -> VP -> Utt ; --"no fumes"
|
||||
ImpNeg : NP -> VP -> Utt ; --"não fume"
|
||||
InvQuestCl : Cl -> QCl ;
|
||||
|
||||
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
-- Structures special for Pornish. These are not implemented in other
|
||||
-- Romance languages.
|
||||
|
||||
abstract ExtraPorAbs = ExtraRomanceAbs ** {
|
||||
|
||||
fun
|
||||
|
||||
-- Feminine variants of pronouns (those in $Structural$ are
|
||||
-- masculine, which is the default when gender is unknown).
|
||||
|
||||
i8fem_Pron : Pron ;
|
||||
these8fem_NP : NP ;
|
||||
they8fem_Pron : Pron ;
|
||||
this8fem_NP : NP ;
|
||||
those8fem_NP : NP ;
|
||||
|
||||
we8fem_Pron : Pron ; -- nosotras
|
||||
whoPl8fem_IP : IP ;
|
||||
whoSg8fem_IP : IP ;
|
||||
|
||||
youSg8fem_Pron : Pron ;
|
||||
youPl8fem_Pron : Pron ; -- vosotras
|
||||
youPol8fem_Pron : Pron ; -- usted
|
||||
|
||||
youPolPl_Pron : Pron ; -- ustedes
|
||||
youPolPl8fem_Pron : Pron ;
|
||||
|
||||
|
||||
ImpNeg : NP -> VP -> Utt ; --"no fumes"
|
||||
InvQuestCl : Cl -> QCl ;
|
||||
|
||||
|
||||
PassVPSlash_ser : VPSlash -> VP ;
|
||||
|
||||
UseComp_estar : Comp -> VP ; -- esta lleno, as opposed to es lleno
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user