forked from GitHub/gf-rgl
(Por) ExtendPor
- use Extend instead of Extra in All - use Extend funs in Extra whenever possible
This commit is contained in:
@@ -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 ;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user