esto/isto in Spanish/Portuguese

This commit is contained in:
Krasimir Angelov
2023-10-16 16:20:42 +02:00
parent da608c2084
commit 17da1893d7
16 changed files with 168 additions and 42 deletions

View File

@@ -30,11 +30,16 @@ lin
during_Prep = mkPrep "durant" ; ----
either7or_DConj = {s1,s2 = "o" ; n = Sg} ;
everybody_NP = makeNP ["tothom"] Masc Sg ;
every_Det = {s,sp = \\_,_ => "cada" ; n = Sg ; s2 = [] ; isNeg = False} ;
every_Det = {
s,sp = \\_,_ => "cada";
spn =\\c => prepCase c ++ "tot" ;
n = Sg ; s2 = [] ; isNeg = False} ;
everything_NP = pn2np (mkPN "tot" Masc) ;
everywhere_Adv = ss ["a tot arreu"] ;
few_Det = {
s,sp = \\g,c => prepCase c ++ genForms "pocs" "poques" ! g ; n = Pl ; s2 = [] ; isNeg = False} ;
s,sp = \\g,c => prepCase c ++ genForms "pocs" "poques" ! g ;
spn = \\c => prepCase c ++ "pocs" ;
n = Pl ; s2 = [] ; isNeg = False} ;
--- first_Ord = {s = \\ag => (regA "primer").s ! Posit ! AF ag.g ag.n} ;
for_Prep = mkPrep ["per a"] ;
from_Prep = complGen ; ---
@@ -64,12 +69,16 @@ lin
less_CAdv = X.mkCAdv "menys" conjThan ; ----
many_Det = {
s,sp = \\g,c => prepCase c ++ genForms "molts" "moltes" ! g ; n = Pl ; s2 = [] ; isNeg = False} ;
s,sp = \\g,c => prepCase c ++ genForms "molts" "moltes" ! g ;
spn = \\c => prepCase c ++ "molts" ;
n = Pl ; s2 = [] ; isNeg = False} ;
more_CAdv = X.mkCAdv "més" conjThan ;
most_Predet = {s = \\_,c => prepCase c ++ ["la majoria"] ; c = CPrep P_de ;
a = PNoAg} ;
much_Det = {
s,sp = \\g,c => prepCase c ++ genForms "molt" "molta" ! g ; n = Sg ; s2 = [] ; isNeg = False} ;
s,sp = \\g,c => prepCase c ++ genForms "molt" "molta" ! g ;
spn = \\c => prepCase c ++ "molt" ;
n = Sg ; s2 = [] ; isNeg = False} ;
must_VV = deVV (verbV (haver_59 "haver" True)) ;
no_Utt = ss "no" ;
on_Prep = mkPrep "sobre" ;
@@ -89,10 +98,14 @@ lin
Fem Sg P3 ;
so_AdA = ss "tan" ;
somebody_NP = pn2np (mkPN ["alg˙"] Masc) ;
somePl_Det = {s,sp =
\\g,c => prepCase c ++ genForms "alguns" "algunes" ! g ; n = Pl ; s2 = [] ; isNeg = False} ;
somePl_Det = {
s,sp = \\g,c => prepCase c ++ genForms "alguns" "algunes" ! g ;
spn = \\c => prepCase c ++ "alguns" ;
n = Pl ; s2 = [] ; isNeg = False} ;
someSg_Det = {
s,sp = \\g,c => prepCase c ++ genForms "algun" "alguna" ! g ; n = Sg ; s2 = [] ; isNeg = False} ;
s,sp = \\g,c => prepCase c ++ genForms "algun" "alguna" ! g ;
spn = \\c => prepCase c ++ "quelcom" ;
n = Sg ; s2 = [] ; isNeg = False} ;
something_NP = pn2np (mkPN ["quelcom"] Masc) ;
somewhere_Adv = ss ["a algun lloc"] ;
that_Quant =
@@ -103,6 +116,7 @@ lin
in {
s = \\_ => aquell ;
sp = aquell ;
spn= aquell ! Sg ! Masc ;
s2 = [] ; isNeg = False
} ;
there_Adv = mkAdv "allà" ; -- all·
@@ -122,6 +136,7 @@ lin
in {
s = \\_ => aquest ;
sp = aquest ;
spn= aquest ! Sg ! Masc ;
s2 = [] ; isNeg = False
} ;
through_Prep = mkPrep "mitjançant" ;
@@ -183,6 +198,7 @@ lin
in {
s = \\_ => cap ;
sp = cap ;
spn= \\c => prepCase c ++ "res" ;
s2 = [] ; isNeg = True
} ;
nobody_NP = pn2npNeg (mkPN "ningú") ;

View File

@@ -61,4 +61,32 @@ lin ApposNP np1 np2 = np1 ** { -- guessed by KA
lin CompoundN a b = lin N {s = \\n => b.s ! n ++ a.s ! Sg ; g = b.g} ; -- connessione internet = internet connection
lin UseDAP = \dap ->
let
g = Masc ;
n = dap.n
in heavyNPpol dap.isNeg {
s = dap.spn ;
a = agrP3 g n ;
hasClit = False
} ;
UseDAPMasc = \dap ->
let
g = Masc ;
n = dap.n
in heavyNPpol dap.isNeg {
s = dap.sp ! g ;
a = agrP3 g n ;
hasClit = False
} ;
UseDAPFem dap =
let
g = Fem ;
n = dap.n
in heavyNPpol dap.isNeg {
s = dap.sp ! g ;
a = agrP3 g n ;
hasClit = False
} ;
}

View File

@@ -74,8 +74,8 @@ concrete ExtraFre of ExtraFreAbs = ExtraRomanceFre **
lin
tout_Det = {
s = \\g,c => prepCase c ++ genForms "tout" "toute" ! g ;
sp = \\g,c => prepCase c ++ genForms "tout" "toute" ! g ;
s,sp = \\g,c => prepCase c ++ genForms "tout" "toute" ! g ;
spn= \\c => prepCase c ++ "tout" ;
n = Sg ;
s2 = [] ;
isNeg = False

View File

@@ -23,6 +23,7 @@ oper
in lin Quant {
s = \\_ => aucun ;
sp = aucun ;
spn= \\c => prepCase c ++ sm ;
s2 = [] ;
isNeg = False
} ;
@@ -38,9 +39,15 @@ oper
mkInterj : Str -> Interj = \s -> lin Interj (ss s) ;
mkDet = overload {
mkDet : Str -> Det = \s -> lin Det {s,sp = \\_,c => prepCase c ++ s ; n = Sg ; s2 = [] ; isNeg = False} ;
mkDet : Str -> Det = \s -> lin Det {
s,sp = \\_,c => prepCase c ++ s ;
spn = \\c => prepCase c ++ s ;
n = Sg ; s2 = [] ; isNeg = False
} ;
mkDet : Str -> Str -> Number -> Det = \m,f,n -> lin Det {
s,sp = \\g,c => prepCase c ++ case g of {Masc => m ; Fem => f} ; n = n ; s2 = [] ; isNeg = False
s,sp = \\g,c => prepCase c ++ case g of {Masc => m ; Fem => f} ;
spn = \\c => prepCase c ++ m ;
n = n ; s2 = [] ; isNeg = False
} ;
} ;

View File

@@ -36,13 +36,17 @@ lin
every_Det = {
s = \\_,c => prepCase c ++ "chaque" ;
sp = \\g,c => prepCase c ++ genForms "chacun" "chacune" ! g ;
spn= \\c => prepCase c ++ "tout" ;
n = Sg ;
s2 = [] ;
isNeg = False
} ;
everything_NP = pn2np (mkPN ["tout"] Masc) ;
everywhere_Adv = ss "partout" ;
few_Det = {s,sp = \\g,c => prepCase c ++ "peu" ++ elisDe ; n = Pl ; s2 = [] ; isNeg = False} ;
few_Det = {
s,sp = \\g,c => prepCase c ++ "peu" ++ elisDe ;
spn = \\c => prepCase c ++ "peu" ++ elisDe ;
n = Pl ; s2 = [] ; isNeg = False} ;
--- DEPREC first_Ord = {s = \\ag => (regA "premier").s ! Posit ! AF ag.g ag.n} ;
for_Prep = mkPreposition "pour" ;
from_Prep = complGen ; ---
@@ -68,10 +72,15 @@ lin
"il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses"
Masc Sg P3 ;
less_CAdv = X.mkCAdv "moins" conjThan ;
many_Det = {s,sp = \\_,c => prepCase c ++ "plusieurs" ; n = Pl ; s2 = [] ; isNeg = False} ;
many_Det = {
s,sp = \\_,c => prepCase c ++ "plusieurs" ;
spn = \\c => prepCase c ++ "plusieurs" ;
n = Pl ; s2 = [] ; isNeg = False} ;
more_CAdv = X.mkCAdv "plus" conjThan ;
most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de ; a = PNoAg} ;
much_Det = {s,sp = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ; n = Pl ; s2 = [] ; isNeg = False} ;
much_Det = {s,sp = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ;
spn = \\c => prepCase c ++ "beaucoup" ++ elisDe ;
n = Pl ; s2 = [] ; isNeg = False} ;
must_VV = mkVV (devoir_V2 ** {lock_V = <>}) ;
---b no_Phr = ss "non" ;
no_Utt = ss "non" ;
@@ -91,8 +100,14 @@ lin
so_AdA = ss "si" ;
somebody_NP = pn2np (mkPN ["quelqu'un"] Masc) ;
somePl_Det = {s,sp = \\_,c => prepCase c ++ "quelques" ; n = Pl ; s2 = [] ; isNeg = False} ; ---- sp
someSg_Det = {s,sp = \\_,c => prepCase c ++ "quelque" ; n = Sg ; s2 = [] ; isNeg = False} ; ----sp
somePl_Det = {
s,sp = \\_,c => prepCase c ++ "quelques" ;
spn = \\c => prepCase c ++ "quelque chose" ;
n = Pl ; s2 = [] ; isNeg = False} ; ---- sp
someSg_Det = {
s,sp = \\_,c => prepCase c ++ "quelque" ;
spn = \\c => prepCase c ++ "quelque chose" ;
n = Sg ; s2 = [] ; isNeg = False} ; ----sp
something_NP = pn2np (mkPN ["quelque chose"] Masc) ;
somewhere_Adv = ss ["quelque part"] ; --- ne - pas
@@ -106,6 +121,7 @@ lin
Sg => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g ;
Pl => \\g,c => prepCase c ++ genForms "ceux-là" "celles-là" ! g
} ;
spn= \\c => prepCase c ++ "celui-là" ;
s2 = [] ; ---- "-là" ;
isNeg = False
} ;
@@ -130,6 +146,7 @@ lin
Sg => \\g,c => prepCase c ++ genForms "celui-ci" "celle-ci" ! g ;
Pl => \\g,c => prepCase c ++ genForms "ceux-ci" "celles-ci" ! g
} ;
spn= \\c => prepCase c ++ "cela" ;
s2 = [] ; ---- "-ci"
isNeg = False
} ;
@@ -188,6 +205,7 @@ lin
in {
s = \\_ => aucun ;
sp = aucun ;
spn= aucun ! Sg ! Masc ;
s2 = [] ;
isNeg = True
} ;

View File

@@ -39,6 +39,7 @@ concrete ExtraIta of ExtraItaAbs = ExtraRomanceIta **
PossFamQuant p = {
s = \\_,n,g,c => case n of {Sg => prepCase c ; _ => possCase g n c} ++ p.poss ! n ! g ;
sp = \\ n,g,c => case n of {Sg => prepCase c ; _ => possCase g n c} ++ p.poss ! n ! g ;
spn= \\ c => prepCase c ++ p.poss ! Sg ! Masc ;
s2 = [] ; isNeg = False
} ;

View File

@@ -34,6 +34,7 @@ oper
in lin Quant {
s = \\b => questo ;
sp = questo ;
spn= \\c => prepCase c ++ s ;
s2 = [] ;
isNeg = False
} ;
@@ -53,6 +54,7 @@ oper
in lin Quant {
s = \\b => questo ;
sp = questo ;
spn= \\c => prepCase c ++ tutto ;
s2 = [] ;
isNeg = False
} ;
@@ -62,6 +64,7 @@ oper
-- Does not inflect for number
mkDet : Str -> Number -> Det = \piu,n -> lin Det {
s,sp = \\_,_ => piu ;
spn = \\_ => piu ;
n = n ;
s2 = [] ;
isNeg = False
@@ -72,6 +75,7 @@ oper
Masc => \\_ => alcuni ;
Fem => \\_ => alcune
} ;
spn = \\_ => alcuni ;
n = n ;
s2 = [] ;
isNeg = False

View File

@@ -31,10 +31,16 @@ lin
during_Prep = mkPrep "durante" ;
either7or_DConj = {s1,s2 = "o" ; n = Sg} ;
everybody_NP = makeNP ["tutti"] Masc Pl ;
every_Det = {s,sp = \\_,_ => "ogni" ; n = Sg ; s2 = [] ; isNeg = False} ;
every_Det = {
s,sp = \\_,_ => "ogni" ;
spn = \\c => prepCase c ++ "tutto" ;
n = Sg ; s2 = [] ; isNeg = False} ;
everything_NP = pn2np (mkPN ["tutto"] Masc) ;
everywhere_Adv = ss "dappertutto" ;
few_Det = {s,sp = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ; n = Pl ; s2 = [] ; isNeg = False} ;
few_Det = {
s,sp = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ;
spn = \\c => prepCase c ++ "pochi" ;
n = Pl ; s2 = [] ; isNeg = False} ;
---- first_Ord = {s = \\ag => (regA "primo").s ! Posit ! AF ag.g ag.n} ;
for_Prep = mkPrep "per" ;
from_Prep = da_Prep ;
@@ -60,11 +66,17 @@ lin
"lui" "lo" "gli" "glie" "lui" "suo" "sua" "suoi" "sue"
Masc Sg P3 ;
less_CAdv = X.mkCAdv "meno" conjThan ;
many_Det = {s,sp = \\g,c => prepCase c ++ genForms "molti" "molte" ! g ; n = Pl ; s2 = [] ; isNeg = False} ;
many_Det = {
s,sp = \\g,c => prepCase c ++ genForms "molti" "molte" ! g ;
spn = \\c => prepCase c ++ "molto" ;
n = Pl ; s2 = [] ; isNeg = False} ;
more_CAdv = X.mkCAdv "più" conjThan ;
most_Predet = {s = \\_,c => prepCase c ++ ["la maggior parte"] ; c = CPrep P_di ;
a = PNoAg} ;
much_Det = {s,sp = \\g,c => prepCase c ++ genForms "molto" "molta" ! g ; n = Sg ; s2 = [] ; isNeg = False} ;
much_Det = {
s,sp = \\g,c => prepCase c ++ genForms "molto" "molta" ! g ;
spn = \\c => prepCase c ++ "molto" ;
n = Sg ; s2 = [] ; isNeg = False} ;
must_VV = mkVV (verboV (dovere_47 "dovere")) ;
no_Utt = ss "no" ;
on_Prep = {s = [] ; c = CPrep P_su ; isDir = False} ;
@@ -83,8 +95,14 @@ lin
Fem Sg P3 ;
so_AdA = ss "così" ;
somebody_NP = pn2np (mkPN ["qualcuno"] Masc) ;
somePl_Det = {s,sp = \\_,c => prepCase c ++ "qualche" ; n = Pl ; s2 = [] ; isNeg = False} ;
someSg_Det = {s,sp = \\_,c => prepCase c ++ "qualche" ; n = Sg ; s2 = [] ; isNeg = False} ;
somePl_Det = {
s,sp = \\_,c => prepCase c ++ "qualche" ;
spn = \\c => prepCase c ++ "qualche cosa" ;
n = Pl ; s2 = [] ; isNeg = False} ;
someSg_Det = {
s,sp = \\_,c => prepCase c ++ "qualche" ;
spn = \\c => prepCase c ++ "qualche cosa" ;
n = Sg ; s2 = [] ; isNeg = False} ;
something_NP = pn2np (mkPN ["qualche cosa"] Masc) ;
somewhere_Adv = ss ["qualche parte"] ;
that_Quant = let
@@ -98,6 +116,7 @@ lin
quello (elision "quel" "quell'" "quello")
(elision "quei" "quegli" "quegli") ;
sp = quello "quello" "quelli" ;
spn= \\c => prepCase c ++ "quello" ;
s2 = [] ;
isNeg = False
} ;
@@ -118,6 +137,7 @@ lin
in {
s = \\_ => questo ;
sp = questo ;
spn= \\c => prepCase c ++ "questo" ;
s2 = [] ;
isNeg = False
} ;
@@ -169,6 +189,7 @@ lin
in {
s = \\_ => aucun ;
sp = aucun ;
spn= \\c => prepCase c ++ "nessuno" ;
s2 = [] ;
isNeg = True
} ;

View File

@@ -254,7 +254,7 @@ oper
s = \\ag => adj.s ! genNum2Aform ag.g ag.n ;
} ;
mkQuantifier : (esse,essa,esses,essas : Str) -> Quant = \esse,essa,esses,essas->
mkQuantifier : (esse,essa,esses,essas,esso : Str) -> Quant = \esse,essa,esses,essas,esso->
let
attrforms : Number => Gender => Case => Str = table {
Sg => \\g,c => prepCase c ++ genForms esse essa ! g ;
@@ -264,12 +264,14 @@ oper
s = \\_ => attrforms ;
s2 = [] ;
sp = attrforms ; -- in spanish it was different
spn= \\c => prepCase c ++ esso ;
isNeg = False
} ;
mkDeterminer : (muito,muita : Str) -> Number -> Bool -> Det = \muito,muita,number,neg ->
lin Det {
s,sp = \\g,c => prepCase c ++ genForms muito muita ! g ;
spn = \\c => prepCase c ++ muito ;
n = number;
s2 = [] ;
isNeg = neg

View File

@@ -102,6 +102,7 @@ concrete StructuralPor of Structural = CatPor **
in {
s = \\_ => nenhum ;
sp = nenhum ;
spn= \\c => prepCase c ++ "nada" ;
s2 = [] ; isNeg = True
} ;
no_Utt = ss "não" ;
@@ -124,13 +125,13 @@ concrete StructuralPor of Structural = CatPor **
someSg_Det = mkDeterminer "algum" "alguma" Sg False ;
something_NP = pn2np (mkPN "algo" Masc) ;
somewhere_Adv = ss ["em algum lugar"] ;
that_Quant = mkQuantifier "esse" "essa" "esses" "essas" ;
that_Quant = mkQuantifier "esse" "essa" "esses" "essas" "isso" ;
there_Adv = mkAdv "ali" ; -- lá
there7to_Adv = mkAdv ["para lá"] ;
there7from_Adv = mkAdv "dali" ;
therefore_PConj = ss ["por isso"] ;
this_Quant = mkQuantifier "este" "esta" "estes" "estas" ;
this_Quant = mkQuantifier "este" "esta" "estes" "estas" "isto" ;
through_Prep = mkPrep [] ablative ; -- por
too_AdA = ss "demasiado" ; -- o certo seria demais como postfix
to_Prep = complDat ;

View File

@@ -67,12 +67,14 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol,MU]
n : Number ;
s2 : Str ; -- -ci
sp : Gender => Case => Str ; -- substantival: mien, mienne
spn: Case => Str ;
isNeg : Bool -- negative element, e.g. aucun
} ;
Quant = {
s : Bool => Number => Gender => Case => Str ;
s2 : Str ;
sp : Number => Gender => Case => Str ;
spn: Case => Str ; -- neutral Spa: esto, eso, Por: isto, isso
isNeg : Bool -- negative element, e.g. aucun
} ;
Predet = {

View File

@@ -27,6 +27,7 @@ incomplete concrete ExtendRomanceFunctor of Extend =
let denp = (np.s ! ResRomance.genitive).ton in {
s = \\_,_,_,_ => [] ;
sp = \\_,_,_ => denp ;
spn= \\_ => denp ;
s2 = denp ;
isNeg = False ;
} ;
@@ -240,7 +241,16 @@ incomplete concrete ExtendRomanceFunctor of Extend =
} ;
UseDAP, UseDAPMasc = \dap ->
UseDAP = \dap ->
let
g = Masc ;
n = dap.n
in heavyNPpol dap.isNeg {
s = dap.spn ;
a = agrP3 g n ;
hasClit = False
} ;
UseDAPMasc = \dap ->
let
g = Masc ;
n = dap.n

View File

@@ -55,6 +55,8 @@ incomplete concrete NounRomance of Noun =
DetQuantOrd quant num ord = {
s,sp = \\g,c => quant.s ! num.isNum ! num.n ! g ! c ++ num.s ! g ++
ord.s ! aagr g num.n ;
spn = \\c => quant.s ! num.isNum ! num.n ! Masc ! c ++ num.s ! Masc ++
ord.s ! aagr Masc num.n ;
s2 = quant.s2 ;
n = num.n ;
isNeg = quant.isNeg
@@ -66,6 +68,10 @@ incomplete concrete NounRomance of Noun =
True => quant.s ! True ! num.n ! g ! c ++ num.s ! g ;
False => quant.sp ! num.n ! g ! c ++ num.s ! g
} ;
spn= \\c => case num.isNum of {
True => quant.s ! True ! num.n ! Masc ! c ++ num.s ! Masc ;
False => quant.spn ! c ++ num.s ! Masc
} ;
s2 = quant.s2 ;
n = num.n ;
isNeg = quant.isNeg
@@ -84,6 +90,7 @@ incomplete concrete NounRomance of Noun =
PossPron p = {
s = \\_,n,g,c => possCase g n c ++ p.poss ! n ! g ; ---- il mio!
sp = \\ n,g,c => possCase g n c ++ p.poss ! n ! g ; ---- not for Fre
spn= \\ c => possCase Masc Sg c ++ p.poss ! Sg ! Masc ; ---- not for Fre
s2 = [] ;
isNeg = False
} ;
@@ -117,6 +124,7 @@ incomplete concrete NounRomance of Noun =
DefArt = {
s = \\_,n,g,c => artDef False g n c ;
sp = \\n,g,c => artDef True g n c ;
spn= \\c => artDef True Masc Sg c ;
s2 = [] ;
isNeg = False
} ;
@@ -124,6 +132,7 @@ incomplete concrete NounRomance of Noun =
IndefArt = {
s = \\b,n,g,c => if_then_Str b (prepCase c) (artIndef False g n c) ;
sp = \\n,g,c => artIndef True g n c ;
spn= \\c => artIndef True Masc Sg c ;
s2 = [] ;
isNeg = False
} ;
@@ -202,6 +211,7 @@ incomplete concrete NounRomance of Noun =
n = det.n ;
s2 = det.s2 ; -- -ci
sp = \\g,c => det.s ! g ! c ++ ap.s ! genNum2Aform g det.n ;
spn= \\c => det.s ! Masc ! c ++ ap.s ! genNum2Aform Masc det.n ;
isNeg = det.isNeg
} ;

View File

@@ -28,11 +28,12 @@ oper
in lin Quant {
s = \\b => questo ;
sp = questo ;
spn= \\c => prepCase c ++ s ;
s2 = [] ;
isNeg = False
} ;
-- Inflects for number and gender
mkQuant : Str -> Str -> Str -> Str -> Quant = \tutto,tutta,tutti,tutte ->
mkQuant : Str -> Str -> Str -> Str -> Str -> Quant = \tutto,tutta,tutti,tutte,esto ->
let
questo : Number => Gender => Case => Str = table {
Sg => table {
@@ -47,6 +48,7 @@ oper
in lin Quant {
s = \\b => questo ;
sp = questo ;
spn= \\c => prepCase c ++ "esto" ;
s2 = [] ;
isNeg = False
} ;
@@ -56,6 +58,7 @@ oper
-- Does not inflect for number
mkDet : Str -> Number -> Det = \piu,n -> lin Det {
s,sp = \\_,c => prepCase c ++ piu ;
spn = \\c => prepCase c ++ piu ;
n = n ;
s2 = [] ;
isNeg = False
@@ -63,6 +66,7 @@ oper
-- Inflects for number
mkDet : Str -> Str -> Number -> Det = \alcuni,alcune,n -> lin Det {
s,sp = \\g,c => prepCase c ++ genForms alcuni alcune ! g ;
spn = \\c => prepCase c ++ alcuni ;
n = n ;
s2 = [] ;
isNeg = False

View File

@@ -239,29 +239,27 @@ oper
s = \\ag => adj.s ! genNum2Aform ag.g ag.n ;
} ;
mkQuantifier : (ese,esa,esos,esas : Str) -> Quant = \ese,esa,esos,esas->
mkQuantifier : (ese,esa,esos,esas,eso : Str) -> Quant = \ese,esa,esos,esas,eso->
let
se : Str = Predef.drop 1 ese ;
sa : Str = Predef.drop 1 esa ;
sos : Str = Predef.drop 1 esos ;
sas : Str = Predef.drop 1 esas ;
E : Str = "é" ;
attrforms : Number => Gender => Case => Str = table {
Sg => \\g,c => prepCase c ++ genForms ese esa ! g ;
Pl => \\g,c => prepCase c ++ genForms esos esas ! g ----
} ;
npforms : Number => Gender => Case => Str = table {
Sg => \\g,c => prepCase c ++ genForms (E + se) (E + sa) ! g ;
Pl => \\g,c => prepCase c ++ genForms (E + sos) (E + sas) ! g }
Sg => \\g,c => prepCase c ++ genForms ese esa ! g ;
Pl => \\g,c => prepCase c ++ genForms esos esas ! g }
in lin Quant {
s = \\_ => attrforms ;
s2 = [] ;
sp = npforms ; isNeg = False
sp = npforms ;
spn= \\c => prepCase c ++ eso ;
isNeg = False
} ;
mkDeterminer : (mucho,mucha : Str) -> Number -> Bool -> Det = \mucho,mucha,number,neg ->
lin Det {
s,sp = \\g,c => prepCase c ++ genForms mucho mucha ! g ;
spn = \\c => prepCase c ++ mucho ;
n = number;
s2 = [] ;
isNeg = neg

View File

@@ -35,7 +35,10 @@ lin
during_Prep = mkPrep "durante" ;
either7or_DConj = {s1,s2 = "o" ; n = Sg} ;
everybody_NP = makeNP ["todos"] Masc Pl ;
every_Det = mkDeterminer "cada" "cada" Sg False ;
every_Det = mkDeterminer "cada" "cada" Sg False ** {
sp = \\g,c => prepCase c ++ genForms "todos" "todas" ! g ;
spn = \\c => prepCase c ++ "todo"
};
everything_NP = pn2np (mkPN ["todo"] Masc) ;
everywhere_Adv = ss ["en todas partes"] ;
except_Prep = mkPrep "excepto" ;
@@ -75,7 +78,8 @@ lin
}
in {
s = \\_ => ningun ;
sp = ningun ;
sp = \\_,_,_ => "nadie" ;
spn= \\c => prepCase c ++ "nada" ;
s2 = [] ; isNeg = True
} ;
no_Utt = ss "no" ;
@@ -100,13 +104,13 @@ lin
someSg_Det = mkDeterminer "algún" "alguna" Sg False ;
something_NP = pn2np (mkPN ["algo"] Masc) ;
somewhere_Adv = ss ["en alguna parte"] ;
that_Quant = mkQuantifier "ese" "esa" "esos" "esas" ;
that_Quant = mkQuantifier "ese" "esa" "esos" "esas" "eso" ;
there_Adv = mkAdv "allí" ; -- allá
there7to_Adv = mkAdv ["para allí"] ;
there7from_Adv = mkAdv ["de allí"] ;
therefore_PConj = ss ["por eso"] ;
they_Pron = agr2pron ! {g=Masc ; n=Pl ; p=P3} ;
this_Quant = mkQuantifier "este" "esta" "estos" "estas" ;
this_Quant = mkQuantifier "este" "esta" "estos" "estas" "esto" ;
through_Prep = mkPrep "por" ;
too_AdA = ss "demasiado" ;
to_Prep = complDat ;