Spanish complete except ordinals; clitics to revisit

This commit is contained in:
aarne
2006-02-03 09:25:50 +00:00
parent f554e18bcc
commit d7fe2dd877
9 changed files with 239 additions and 214 deletions

View File

@@ -49,6 +49,8 @@ When will it be ready? Hopefully around February 2005.
---------- later history and status:
3/2 Spanish added, except ordinal numerals. Much remains to do in Spa & Ita clitics.
1/2 Italian added.
26/1 Norwegian added.

View File

@@ -7,7 +7,7 @@
<P ALIGN="center"><CENTER><H1>GF Resource Grammar Library v. 1.0</H1>
<FONT SIZE="4">
<I>Author: Aarne Ranta &lt;aarne (at) cs.chalmers.se&gt;</I><BR>
Last update: Wed Feb 1 17:41:25 2006
Last update: Fri Feb 3 10:25:39 2006
</FONT></CENTER>
<P></P>
@@ -72,6 +72,7 @@ The documentation of the individual modules:
<LI><A HREF="gfdoc/ParadigmsIta.html">ParadigmsIta</A>: Italian lexical paradigms
<LI><A HREF="gfdoc/ParadigmsGer.html">ParadigmsGer</A>: German lexical paradigms
<LI><A HREF="gfdoc/ParadigmsNor.html">ParadigmsNor</A>: Norwegian lexical paradigms
<LI><A HREF="gfdoc/ParadigmsSpa.html">ParadigmsSpa</A>: Spanish lexical paradigms
<LI><A HREF="gfdoc/ParadigmsSwe.html">ParadigmsSwe</A>: Swedish lexical paradigms
</UL>

View File

@@ -51,6 +51,7 @@ The documentation of the individual modules:
- [ParadigmsIta gfdoc/ParadigmsIta.html]: Italian lexical paradigms
- [ParadigmsGer gfdoc/ParadigmsGer.html]: German lexical paradigms
- [ParadigmsNor gfdoc/ParadigmsNor.html]: Norwegian lexical paradigms
- [ParadigmsSpa gfdoc/ParadigmsSpa.html]: Spanish lexical paradigms
- [ParadigmsSwe gfdoc/ParadigmsSwe.html]: Swedish lexical paradigms

View File

@@ -27,7 +27,7 @@ lin
can_VV = mkVV (verboV (potere_69 "potere")) ;
during_Prep = mkPreposition "durante" ;
either7or_DConj = {s1,s2 = "o" ; n = Sg} ;
everybody_NP = pn2np (mkPN ["tutto il mondo"] Masc) ;
everybody_NP = mkNP ["tutti"] Masc Pl ;
every_Det = {s = \\_,_ => "ogni" ; n = Sg} ;
everything_NP = pn2np (mkPN ["tutto"] Masc) ;
everywhere_Adv = ss "dappertutto" ;
@@ -74,7 +74,7 @@ lin
"lei" "la" "le" "lei" "suo" "sua" "suoi" "sue"
Fem Sg P3 Clit2 ;
so_AdA = ss "così" ;
somebody_NP = pn2np (mkPN ["quelcuno"] Masc) ;
somebody_NP = pn2np (mkPN ["qualcuno"] Masc) ;
somePl_Det = {s = \\_,c => prepCase c ++ "qualche" ; n = Pl} ;
someSg_Det = {s = \\_,c => prepCase c ++ "qualche" ; n = Sg} ;
something_NP = pn2np (mkPN ["qualche cosa"] Masc) ;
@@ -131,6 +131,10 @@ lin
mkPronoun
"voi" "vi" "vi" "voi" "vostro" "vostra" "vostri" "vostre"
Fem Pl P2 Clit3 ;
youPol_Pron =
mkPronoun
"Lei" "La" "Le" "Lei" "Suo" "Sua" "Suoi" "Sue"
Fem Sg P3 Clit2 ;
}

View File

@@ -11,7 +11,7 @@ concrete LangSpa of Lang =
RelativeSpa,
ConjunctionSpa,
PhraseSpa,
-- StructuralSpa,
StructuralSpa,
LexiconSpa
** {

View File

@@ -129,6 +129,7 @@ lin
open_V2 = dirV2 (special_ppV (regV "abrir") "abierto") ;
paint_V2A = mkV2A (regV "pintar") accusative ;
paper_N = regN "papel" ;
paris_PN = mkPN "Paris" masculine ;
peace_N = femN (regN "paz") ;
pen_N = regN "lapicera" ;
planet_N = mascN (regN "planeta") ;

View File

@@ -14,7 +14,6 @@ resource MorphoSpa = CommonRomance, ResSpa **
flags optimize=all ;
--2 Nouns
--
-- The following macro is useful for creating the forms of number-dependent
@@ -26,14 +25,11 @@ oper
-- For example:
nomVino : Str -> Number => Str = \vino -> let {vin = Predef.tk 1 vino} in
numForms vino (vin + "i") ;
nomVino : Str -> Number => Str = \vino ->
numForms vino (vino + "s") ;
nomRana : Str -> Number => Str = \rana -> let {ran = Predef.tk 1 rana} in
numForms rana (ran + "e") ;
nomSale : Str -> Number => Str = \sale -> let {sal = Predef.tk 1 sale} in
numForms sale (sal + "i") ;
nomPilar : Str -> Number => Str = \pilar ->
numForms pilar (pilar + "es") ;
nomTram : Str -> Number => Str = \tram ->
numForms tram tram ;
@@ -46,31 +42,13 @@ oper
mkNounIrreg : Str -> Str -> Gender -> Noun = \mec,mecs ->
mkNoun (numForms mec mecs) ;
mkNomReg : Str -> Noun = \vino ->
let
o = last vino ;
vin = init vino ;
n = last vin
in
case o of {
"o" => {s = case n of {
"c" | "g" => numForms vino (vin + "hi") ;
"i" => numForms vino vin ;
_ => numForms vino (vin + "i")
} ; g = Masc} ;
"a" => {s = case n of {
"c" | "g" => numForms vino (vin + "he") ;
_ => numForms vino (vin + "e")
} ; g = Fem} ;
"e" => {s = numForms vino (vin + "i")
; g = Masc} ;
"à" | "ù" => {s = numForms vino vino
; g = Fem} ;
_ => {s = numForms vino vino
; g = Masc}
} ;
mkNomReg : Str -> Noun = \mec ->
case last mec of {
"o" | "e" => mkNoun (nomVino mec) Masc ;
"a" => mkNoun (nomVino mec) Fem ;
"z" => mkNounIrreg mec (init mec + "ces") Fem ;
_ => mkNoun (nomPilar mec) Masc
} ;
--2 Adjectives
--
@@ -91,40 +69,21 @@ oper
let
sol = Predef.tk 1 solo
in
mkAdj solo (sol + "a") (sol + "i") (sol + "e") (sol + "amente") ;
mkAdj solo (sol + "a") (sol + "os") (sol + "as") (sol + "amente") ;
adjTale : Str -> Adj = \tale ->
let
tal = Predef.tk 1 tale ;
tali = tal + "i" ;
tala = if_then_Str (pbool2bool (Predef.occur (Predef.dp 1 tal) "lr")) tal tale
in
mkAdj tale tale tali tali (tala + "mente") ;
adjUtil : Str -> Str -> Adj = \util,utiles ->
mkAdj util util utiles utiles (util + "mente") ;
adjBlu : Str -> Adj = \blu ->
mkAdj blu blu blu blu blu ; ---
mkAdjReg : Str -> Adj = \solo ->
let
o = last solo ;
sol = init solo ;
l = last sol ;
solamente = (sol + "amente")
in
case o of {
"o" => case l of {
"c" | "g" => mkAdj solo (sol + "a") (sol + "hi") (sol + "he") solamente ;
"i" => mkAdj solo (sol + "a") sol (sol + "e") solamente ;
_ => mkAdj solo (sol + "a") (sol + "i") (sol + "e") solamente
} ;
"e" => mkAdj solo solo (sol + "i") (sol + "i") (case l of {
"l" => sol + "mente" ;
_ => solo + "mente"
}) ;
_ => mkAdj solo solo solo solo (sol + "mente")
} ;
mkAdjReg : Str -> Adj = \solo ->
case last solo of {
"o" => adjSolo solo ;
"e" => adjUtil solo (solo + "s") ;
_ => adjUtil solo (solo + "es")
---- _ => adjBlu solo
} ;
--2 Personal pronouns
--
@@ -140,7 +99,6 @@ oper
Ton x => prepCase x ++ Lui ;
Aton Nom => il ; ---- [] ;
Aton Acc => le ;
Aton (CPrep P_di) => "ne" ; --- hmm
Aton (CPrep P_a) => lui ;
Aton q => prepCase q ++ Lui ; ---- GF bug with c or p!
Poss {n = Sg ; g = Masc} => son ;
@@ -151,6 +109,34 @@ oper
a = {g = g ; n = n ; p = p} ;
c = c
} ;
{-
-- used in constructions like "(no) hay ..."
pronEmpty : Number -> Pronoun = \n -> mkPronoun
[]
[]
[]
[]
[] [] [] []
(PGen Masc)
n
P3
Clit2 ;
--2 Reflexive pronouns
--
-- It is simply a function depending on number and person.
pronRefl : Number -> Person -> Str = \n,p -> case <n,p> of {
<Sg,P1> => "me" ;
<Sg,P2> => "te" ;
<_, P3> => "se" ;
<Pl,P1> => "nos" ;
<Pl,P2> => "vos"
} ;
-}
--2 Determiners
--

View File

@@ -1,72 +1,80 @@
concrete NumeralSpa of Numeral = CatSpa **
open CommonRomance, ResRomance, MorphoSpa, Prelude in {
lincat
Digit = {s : DForm => CardOrd => Str} ;
Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
Sub100 = {s : CardOrd => Str ; n : Number} ;
Sub1000 = {s : CardOrd => Str ; n : Number} ;
Sub1000000 = {s : CardOrd => Str ; n : Number} ;
-- by Carlos Gonzalia, Chalmers, 1999
-- original source automatically translated to new GF by AR
-- modified by addition of gender and number 30/3/2005
---- ordinals and feminine hundreds missing 3/2/2006 AR
lin num x = x ;
lin n2 = mkTal "due" "dodici" "venti" "secondo" ;
lin n3 = mkTal "tre" "tredici" "trenta" "terzo" ;
lin n4 = mkTal "quattro" "quattordici" "quaranta" "quarto" ;
lin n5 = mkTal "cinque" "quindici" "cinquanta" "quinto" ;
lin n6 = mkTal "sei" "sedici" "sessanta" "sesto" ;
lin n7 = mkTal "sette" "diciassette" "settanta" "settimo" ; --- diciasettesimo?
lin n8 = mkTal "otto" "diciotto" "ottanta" "ottavo" ;
lin n9 = mkTal "nove" "diciannove" "novanta" "nono" ;
lincat Digit = {inh : Modif ; s : {p1 : DForm ; p2 : Modif} => Str} ;
lincat Sub10 = {s : {p1 : DForm ; p2 : Modif} => Gender => Str ; n : Number} ;
lincat Sub100 = {s : Gender => Str ; n : Number} ;
lincat Sub1000 = {s : Gender => Str ; n : Number} ;
lincat Sub1000000 = {s : Gender => Str ; n : Number} ;
lin pot01 =
let uno = (mkTal "uno" "undici" "dieci" "primo").s in
{s =\\f,g => case f of {
ental pred => [] ;
_ => uno ! f ! g
} ;
n = Pl} ;
lin pot0 d = {s = d.s ; n = Pl} ;
lin pot110 = spl ((mkTal "dieci" [] [] "decimo").s ! ental indip) ;
lin pot111 = spl ((mkTal "undici" [] [] "undicesimo").s ! ental indip) ;
lin pot1to19 d = spl (d.s ! ton) ;
lin pot0as1 n = {s = n.s ! ental indip ; n = n.n} ;
lin pot1 d = spl (d.s ! tiotal) ;
lin pot1plus d e =
{s = \\g => d.s ! tiotal ! NCard Masc ++ e.s ! ental indip ! g ; n = Pl} ;
lin num x = {
s = table {
NCard g => x.s ! g ;
NOrd _ _ => "número" ++ x.s ! Masc ---- TODO
}
} ;
lin n2 =
{inh = mod ; s = table {{p1 = unit ; p2 = mod} => "dos" ; {p1 = unit ; p2 = unmod} => "dos" ; {p1 = unit ; p2 = conj} => "y" ++ "dos" ; {p1 = teen ; p2 = mod} => "doce" ; {p1 = teen ; p2 = unmod} => "doce" ; {p1 = teen ; p2 = conj} => "doce" ; {p1 = ten ; p2 = mod} => "veinti" ; {p1 = ten ; p2 = unmod} => "veinte" ; {p1 = ten ; p2 = conj} => "veinte" ; {p1 = hundred ; p2 = mod} => "doscientos" ; {p1 = hundred ; p2 = unmod} => "doscientos" ; {p1 = hundred ; p2 = conj} => "doscientos"}} ;
lin n3 =
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "tres" ; {p1 = unit ; p2 = unmod} => "tres" ; {p1 = unit ; p2 = conj} => "y" ++ "tres" ; {p1 = teen ; p2 = mod} => "trece" ; {p1 = teen ; p2 = unmod} => "trece" ; {p1 = teen ; p2 = conj} => "trece" ; {p1 = ten ; p2 = mod} => "treinta" ; {p1 = ten ; p2 = unmod} => "treinta" ; {p1 = ten ; p2 = conj} => "treinta" ; {p1 = hundred ; p2 = mod} => "trescientos" ; {p1 = hundred ; p2 = unmod} => "trescientos" ; {p1 = hundred ; p2 = conj} => "trescientos"}} ;
lin n4 =
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "cuatro" ; {p1 = unit ; p2 = unmod} => "cuatro" ; {p1 = unit ; p2 = conj} => "y" ++ "cuatro" ; {p1 = teen ; p2 = mod} => "catorce" ; {p1 = teen ; p2 = unmod} => "catorce" ; {p1 = teen ; p2 = conj} => "catorce" ; {p1 = ten ; p2 = mod} => "cuarenta" ; {p1 = ten ; p2 = unmod} => "cuarenta" ; {p1 = ten ; p2 = conj} => "cuarenta" ; {p1 = hundred ; p2 = mod} => "cuatrocientos" ; {p1 = hundred ; p2 = unmod} => "cuatrocientos" ; {p1 = hundred ; p2 = conj} => "cuatrocientos"}} ;
lin n5 =
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "cinco" ; {p1 = unit ; p2 = unmod} => "cinco" ; {p1 = unit ; p2 = conj} => "y" ++ "cinco" ; {p1 = teen ; p2 = mod} => "quince" ; {p1 = teen ; p2 = unmod} => "quince" ; {p1 = teen ; p2 = conj} => "quince" ; {p1 = ten ; p2 = mod} => "cincuenta" ; {p1 = ten ; p2 = unmod} => "cincuenta" ; {p1 = ten ; p2 = conj} => "cincuenta" ; {p1 = hundred ; p2 = mod} => "quinientos" ; {p1 = hundred ; p2 = unmod} => "quinientos" ; {p1 = hundred ; p2 = conj} => "quinientos"}} ;
lin n6 =
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "seis" ; {p1 = unit ; p2 = unmod} => "seis" ; {p1 = unit ; p2 = conj} => "y" ++ "seis" ; {p1 = teen ; p2 = mod} => "dieciseis" ; {p1 = teen ; p2 = unmod} => "dieciseis" ; {p1 = teen ; p2 = conj} => "dieciseis" ; {p1 = ten ; p2 = mod} => "sesenta" ; {p1 = ten ; p2 = unmod} => "sesenta" ; {p1 = ten ; p2 = conj} => "sesenta" ; {p1 = hundred ; p2 = mod} => "seiscientos" ; {p1 = hundred ; p2 = unmod} => "seiscientos" ; {p1 = hundred ; p2 = conj} => "seiscientos"}} ;
lin n7 =
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "siete" ; {p1 = unit ; p2 = unmod} => "siete" ; {p1 = unit ; p2 = conj} => "y" ++ "siete" ; {p1 = teen ; p2 = mod} => "diecisiete" ; {p1 = teen ; p2 = unmod} => "diecisiete" ; {p1 = teen ; p2 = conj} => "diecisiete" ; {p1 = ten ; p2 = mod} => "setenta" ; {p1 = ten ; p2 = unmod} => "setenta" ; {p1 = ten ; p2 = conj} => "setenta" ; {p1 = hundred ; p2 = mod} => "setecientos" ; {p1 = hundred ; p2 = unmod} => "setecientos" ; {p1 = hundred ; p2 = conj} => "setecientos"}} ;
lin n8 =
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "ocho" ; {p1 = unit ; p2 = unmod} => "ocho" ; {p1 = unit ; p2 = conj} => "y" ++ "ocho" ; {p1 = teen ; p2 = mod} => "dieciocho" ; {p1 = teen ; p2 = unmod} => "dieciocho" ; {p1 = teen ; p2 = conj} => "dieciocho" ; {p1 = ten ; p2 = mod} => "ochenta" ; {p1 = ten ; p2 = unmod} => "ochenta" ; {p1 = ten ; p2 = conj} => "ochenta" ; {p1 = hundred ; p2 = mod} => "ochocientos" ; {p1 = hundred ; p2 = unmod} => "ochocientos" ; {p1 = hundred ; p2 = conj} => "ochocientos"}} ;
lin n9 =
{inh = conj ; s = table {{p1 = unit ; p2 = mod} => "nueve" ; {p1 = unit ; p2 = unmod} => "nueve" ; {p1 = unit ; p2 = conj} => "y" ++ "nueve" ; {p1 = teen ; p2 = mod} => "diecinueve" ; {p1 = teen ; p2 = unmod} => "diecinueve" ; {p1 = teen ; p2 = conj} => "diecinueve" ; {p1 = ten ; p2 = mod} => "noventa" ; {p1 = ten ; p2 = unmod} => "noventa" ; {p1 = ten ; p2 = conj} => "noventa" ; {p1 = hundred ; p2 = mod} => "novecientos" ; {p1 = hundred ; p2 = unmod} => "novecientos" ; {p1 = hundred ; p2 = conj} => "novecientos"}} ;
lin pot01 =
{s = table {{p1 = unit ; p2 = mod} => uno ; {p1 = unit ; p2 = unmod}
=> uno ; {p1 = unit ; p2 = conj} => yuno ; {p1 = teen ; p2 = mod} =>
uno ; {p1 = teen ; p2 = unmod} => uno ; {p1 = teen ; p2 = conj} =>
yuno ; {p1 = ten ; p2 = mod} => uno ; {p1 = ten ; p2 = unmod} => uno
; {p1 = ten ; p2 = conj} => yuno ; {p1 = hundred ; p2 = mod} =>
\\_ => "ciento" ; {p1 = hundred ; p2 = unmod} => \\_ => "cien" ; {p1 = hundred ; p2 = conj} => yuno} ; n = Sg} ;
lin pot0 d =
{s = \\f,g => d.s ! f ; n = Pl} ;
lin pot110 =
spl "diez" ;
lin pot111 =
spl "once" ;
lin pot1to19 d =
spl (d.s ! {p1 = teen ; p2 = unmod}) ;
lin pot0as1 n =
{s = n.s ! {p1 = unit ; p2 = unmod} ; n = n.n} ;
lin pot1 d =
spl (d.s ! {p1 = ten ; p2 = unmod}) ;
lin pot1plus d e =
{s = \\g => (d.s ! {p1 = ten ; p2 = mod}) ++ e.s ! {p1 = unit ; p2 =
d.inh} ! g ; n = Pl} ;
lin pot1as2 n = n ;
lin pot2 d = spl (\\co => d.s ! ental pred ! NCard Masc ++
(mkTal "cento" [] [] "centesimo").s ! ental indip ! co) ;
lin pot2plus d e =
{s = \\g => d.s ! ental pred ! NCard Masc ++ "cento" ++ e.s ! g ; n = Pl} ;
lin pot2 d =
spl (d.s ! {p1 = hundred ; p2 = unmod} ! Masc) ;
lin pot2plus d e =
{s = \\g => (d.s ! {p1 = hundred ; p2 = mod}) ! Masc ++ e.s ! g ; n = Pl} ;
lin pot2as3 n = n ;
lin pot3 n = spl (\\co => n.s ! NCard Masc ++
(mkTal (mille ! n.n) [] [] "millesimo").s ! ental indip ! co) ;
lin pot3plus n m = {s = \\g => n.s ! NCard Masc ++ mille ! n.n ++ m.s ! g ; n = Pl} ;
lin pot3 n =
spl (n.s ! Masc ++ "mil") ;
lin pot3plus n m =
{s = \\g => n.s ! Masc ++ "mil" ++ m.s ! g ; n = Pl} ;
oper
mkTal : (x1,_,_,x4 : Str) -> {s : DForm => CardOrd => Str} =
\due,dodici,venti,secondo -> {s = \\d,co => case <d,co> of {
<ental _, NCard _> => due ;
<ental _, NOrd g n> => pronForms (adjSolo secondo) g n ;
<tiotal, NCard _> => venti ;
<tiotal, NOrd g n> => regCard venti g n ;
<ton, NCard _> => venti ;
<ton, NOrd g n> => regCard venti g n
}
} ;
param DForm = unit | teen | ten | hundred ;
param Modif = mod | unmod | conj ;
regCard : Str -> Gender -> Number -> Str = \venti ->
pronForms (adjSolo (init venti + "esimo")) ;
oper spl : Str -> {s : Gender => Str ; n : Number} = \s -> {s = \\_ =>
s ; n = Pl} ;
spl : (CardOrd => Str) -> {s : CardOrd => Str ; n : Number} = \s -> {
s = s ;
n = Pl
} ;
oper mille : Number => Str = table {Sg => "mille" ; Pl => "mila"} ;
param DForm = ental Pred | ton | tiotal ;
param Pred = pred | indip ;
uno : Gender => Str = table {Masc => "uno" ; Fem => "una"} ;
yuno : Gender => Str = \\g => "y" ++ uno ! g ;
}

View File

@@ -5,132 +5,154 @@ concrete StructuralSpa of Structural = CatSpa **
lin
above_Prep = {s = ["sopra"] ; c = MorphoSpa.genitive ; isDir = False} ;
after_Prep = mkPreposition "dopo" ;
above_Prep = mkPreposition "sobre" ;
after_Prep = {s = ["despues"] ; c = MorphoSpa.genitive ; isDir = False} ;
all_Predet = {
s = \\a,c => prepCase c ++ aagrForms "tutto" "tutta" "tutti" "tutte" ! a ;
s = \\a,c => prepCase c ++ aagrForms "todo" "toda" "todos" "todas" ! a ;
c = Nom
} ;
almost_AdA, almost_AdN = ss "quasi" ;
always_AdV = ss "sempre" ;
almost_AdA, almost_AdN = ss "casi" ;
always_AdV = ss "siempre" ;
although_Subj = ss "benché" ** {m = Conjunct} ;
and_Conj = ss "e" ** {n = Pl} ;
because_Subj = ss "perché" ** {m = Indic} ;
before_Prep = mkPreposition "prima" ;
behind_Prep = mkPreposition "dietro" ;
between_Prep = mkPreposition "fra" ;
both7and_DConj = {s1,s2 = "e" ; n = Pl} ;
but_PConj = ss "ma" ;
by8agent_Prep = {s = [] ; c = CPrep P_da} ;
by8means_Prep = mkPreposition "per" ;
can8know_VV = mkVV (verboV (sapere_78 "sapere")) ;
can_VV = mkVV (verboV (potere_69 "potere")) ;
during_Prep = mkPreposition "durante" ;
and_Conj = etConj ;
because_Subj = ss "porque" ** {m = Indic} ;
before_Prep = {s = "antes" ; c = MorphoSpa.genitive ; isDir = False} ;
behind_Prep = {s = "detrás" ; c = MorphoSpa.genitive ; isDir = False} ;
between_Prep = mkPreposition "entre" ;
both7and_DConj = {s1,s2 = etConj.s ; n = Pl} ;
but_PConj = ss "mas" ;
by8agent_Prep = mkPreposition "por" ;
by8means_Prep = mkPreposition "por" ;
can8know_VV = mkVV (verboV (saber_71 "saber")) ;
can_VV = mkVV (verboV (poder_58 "poder")) ;
during_Prep = mkPreposition "durante" ; ----
either7or_DConj = {s1,s2 = "o" ; n = Sg} ;
everybody_NP = pn2np (mkPN ["tutto il mondo"] Masc) ;
every_Det = {s = \\_,_ => "ogni" ; n = Sg} ;
everything_NP = pn2np (mkPN ["tutto"] Masc) ;
everywhere_Adv = ss "dappertutto" ;
first_Ord = {s = \\ag => (regA "primo").s ! Posit ! AF ag.g ag.n} ;
everybody_NP = mkNP ["todos"] Masc Pl ;
every_Det = {s = \\_,_ => "cada" ; n = Sg} ;
everything_NP = pn2np (mkPN ["todo"] Masc) ;
everywhere_Adv = ss ["en todas partes"] ;
first_Ord = {s = \\ag => (regA "primero").s ! Posit ! AF ag.g ag.n} ;
from_Prep = complGen ; ---
he_Pron =
mkPronoun
"lui" "lo" "gli" "lui" "suo" "sua" "suoi" "sue"
mkPronoun
"el" "lo" "le" "él"
"su" "su" "sus" "sus"
Masc Sg P3 Clit2 ;
here7from_Adv = ss ["da quì"] ;
here7to_Adv = ss "quì" ;
here_Adv = ss "quì" ;
how_IAdv = ss "come" ;
how8many_IDet = {s = \\g,c => prepCase c ++ genForms "quanti" "quante" ! g ; n = Pl} ;
if_Subj = ss "se" ** {m = Indic} ;
in8front_Prep = mkPreposition "davanti" ;
here_Adv = mkAdv "aquí" ; -- acá
here7to_Adv = mkAdv ["para acá"] ;
here7from_Adv = mkAdv ["de acá"] ;
how_IAdv = ss "como" ;
how8many_IDet =
{s = \\g,c => prepCase c ++ genForms "cuantos" "cuantas" ! g ; n = Pl} ;
if_Subj = ss "si" ** {m = Indic} ;
in8front_Prep = {s = "delante" ; c = MorphoSpa.genitive ; isDir = False} ;
i_Pron =
mkPronoun
"io" "mi" "mi" "me" "mio" "mia" "miei" "mie"
"yo" "me" "me" "mí"
"mi" "mi" "mis" "mis"
Fem Sg P1 Clit1 ;
in_Prep = {s = [] ; c = CPrep P_in} ;
in_Prep = mkPreposition "en" ;
it_Pron =
mkPronoun
"lui" "lo" "gli" "lui" "suo" "sua" "suoi" "sue"
"el" "lo" "le" "él"
"su" "su" "sus" "sus"
Masc Sg P3 Clit2 ;
less_CAdv = ss "meno" ;
many_Det = {s = \\g,c => prepCase c ++ genForms "molti" "molte" ! g ; n = Pl} ;
more_CAdv = ss "più" ;
most_Predet = {s = \\_,c => prepCase c ++ ["la maggior parte"] ; c = CPrep P_di} ;
much_Det = {s = \\g,c => prepCase c ++ genForms "molto" "molta" ! g ; n = Sg} ;
must_VV = mkVV (verboV (dovere_47 "dovere")) ;
less_CAdv = ss "meno" ; ----
many_Det = {s = \\g,c => prepCase c ++ genForms "muchos" "muchas" ! g ; n = Pl} ;
more_CAdv = ss "mas" ;
most_Predet = {s = \\_,c => prepCase c ++ ["la mayor parte"] ; c = CPrep P_de} ;
much_Det = {s = \\g,c => prepCase c ++ genForms "mucho" "mucha" ! g ; n = Sg} ;
must_VV = mkVV (verboV (deber_6 "deber")) ;
no_Phr = ss "no" ;
on_Prep = {s = [] ; c = CPrep P_su} ;
on_Prep = mkPreposition "sobre" ;
one_Quant = {s = \\g,c => prepCase c ++ genForms "uno" "una" ! g} ;
only_Predet = {s = \\_,c => prepCase c ++ "soltanto" ; c = Nom} ; --- solo|a|i|e
only_Predet = {s = \\_,c => prepCase c ++ "solamente" ; c = Nom} ;
or_Conj = {s = "o" ; n = Sg} ;
otherwise_PConj = ss "altramente" ;
otherwise_PConj = ss "otramente" ;
part_Prep = complGen ;
please_Voc = ss ["per favore"] ;
please_Voc = ss ["por favor"] ;
possess_Prep = complGen ;
quite_Adv = ss "assai" ;
quite_Adv = ss "bastante" ;
she_Pron =
mkPronoun
"lei" "la" "le" "lei" "suo" "sua" "suoi" "sue"
"ella" "la" "le" "ella"
"su" "su" "sus" "sus"
Fem Sg P3 Clit2 ;
so_AdA = ss "così" ;
somebody_NP = pn2np (mkPN ["quelcuno"] Masc) ;
somePl_Det = {s = \\_,c => prepCase c ++ "qualche" ; n = Pl} ;
someSg_Det = {s = \\_,c => prepCase c ++ "qualche" ; n = Sg} ;
something_NP = pn2np (mkPN ["qualche cosa"] Masc) ;
somewhere_Adv = ss ["qualche parte"] ;
so_AdA = ss "tanto" ;
somebody_NP = pn2np (mkPN ["algún"] Masc) ;
somePl_Det = {s = \\g,c => prepCase c ++ genForms "algunos" "algunas" ! g ; n = Pl} ;
someSg_Det = {s = \\g,c => prepCase c ++ "algun" ; n = Sg} ;
something_NP = pn2np (mkPN ["algo"] Masc) ;
somewhere_Adv = ss ["en ninguna parte"] ;
that_Quant = {
s = table {
Sg => \\g,c => prepCase c ++ genForms "quello" "quella" ! g ;
Pl => \\g,c => prepCase c ++ genForms "quelli" "quelle" ! g ---- quegli
Sg => \\g,c => prepCase c ++ genForms "ese" "esa" ! g ;
Pl => \\g,c => prepCase c ++ genForms "esos" "esas" ! g
}
} ;
that_NP = mkNP ["questo"] Masc Sg ;
there7from_Adv = ss ["di là"] ;
there7to_Adv = ss "là" ; --- ci
there_Adv = ss "là" ;
therefore_PConj = ss "quindi" ;
these_NP = mkNP ["queste"] Fem Pl ;
that_NP = mkNP ["eso"] Masc Sg ;
there_Adv = mkAdv "allí" ; -- allá
there7to_Adv = mkAdv ["para allá"] ;
there7from_Adv = mkAdv ["de allá"] ;
therefore_PConj = ss ["por eso"] ;
these_NP = mkNP ["estas"] Fem Pl ;
they_Pron = mkPronoun
"loro" "loro" "li" "loro" "loro" "loro" "loro" "loro"
"ellas" "las" "les" "ellas"
"su" "su" "sus" "sus"
Fem Pl P3 Clit1 ;
this_Quant = {
s = table {
Sg => \\g,c => prepCase c ++ genForms "questo" "questa" ! g ;
Pl => \\g,c => prepCase c ++ genForms "questi" "queste" ! g
Sg => \\g,c => prepCase c ++ genForms "este" "esta" ! g ;
Pl => \\g,c => prepCase c ++ genForms "estos" "estas" ! g
}
} ;
this_NP = pn2np (mkPN ["questo"] Masc) ;
those_NP = mkNP ["quelle"] Fem Pl ;
through_Prep = mkPreposition "per" ;
too_AdA = ss "troppo" ;
this_NP = pn2np (mkPN ["esto"] Masc) ;
those_NP = mkNP ["esas"] Fem Pl ;
through_Prep = mkPreposition "por" ;
too_AdA = ss "demasiado" ;
to_Prep = complDat ;
under_Prep = mkPreposition "sotto" ;
very_AdA = ss "molto" ;
want_VV = mkVV (verboV (volere_96 "volere")) ;
under_Prep = mkPreposition "bajo" ;
very_AdA = ss "muy" ;
want_VV = mkVV (verboV (querer_64 "querer")) ;
we_Pron =
mkPronoun "noi" "ci" "ci" "noi" "nostro" "nostra" "nostri" "nostre"
Fem Pl P1 Clit3 ;
whatSg_IP = {s = \\c => prepCase c ++ ["che cosa"] ; a = aagr Fem Sg} ;
whatPl_IP = {s = \\c => prepCase c ++ ["che cose"] ; a = aagr Fem Pl} ; ---
when_IAdv = ss "quando" ;
when_Subj = ss "quando" ** {m = Indic} ;
where_IAdv = ss "dove" ;
whichPl_IDet = {s = \\g,c => prepCase c ++ genForms "quale" "quale" ! g ; n = Sg} ;
whichSg_IDet = {s = \\g,c => prepCase c ++ genForms "quali" "quali" ! g; n = Pl} ;
whoPl_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Fem Pl} ;
whoSg_IP = {s = \\c => prepCase c ++ "chi" ; a = aagr Fem Sg} ;
why_IAdv = ss "perché" ;
without_Prep = mkPreposition "senza" ;
with_Prep = {s = [] ; c = CPrep P_con} ;
yes_Phr = ss "sì" ;
mkPronoun
"nosotras" "nos" "nos" "nosotras"
"nuestro" "nuestra" "nuestros" "nuestras"
Fem Pl P1 Clit3 ;
whatSg_IP = {s = \\c => prepCase c ++ ["qué"] ; a = aagr Masc Sg} ;
whatPl_IP = {s = \\c => prepCase c ++ ["qué"] ; a = aagr Masc Pl} ; ---
when_IAdv = ss "cuando" ;
when_Subj = ss "cuando" ** {m = Indic} ;
where_IAdv = ss "donde" ;
whichPl_IDet = {s = \\g,c => prepCase c ++ "cuale" ; n = Sg} ;
whichSg_IDet = {s = \\g,c => prepCase c ++ "cuali" ; n = Pl} ;
whoPl_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Pl} ;
whoSg_IP = {s = \\c => prepCase c ++ "quién" ; a = aagr Fem Sg} ;
why_IAdv = ss "porqué" ;
without_Prep = mkPreposition "sin" ;
with_Prep = mkPreposition "con" ;
yes_Phr = ss "sí" ;
youSg_Pron = mkPronoun
"tu" "ti" "ti" "te" "tuo" "tua" "tuoi" "tue"
"tu" "te" "te" "tí"
"tu" "tu" "tus" "tus"
Fem Sg P2 Clit1 ;
youPl_Pron =
mkPronoun
"voi" "vi" "vi" "voi" "vostro" "vostra" "vostri" "vostre"
Fem Pl P2 Clit3 ;
"vosotras" "vos" "vos" "vosotras"
"vuestro" "vuestra" "vuestros" "vuestras"
Fem Pl P2 Clit3 ;
youPol_Pron =
mkPronoun
"usted" "la" "le" "usted"
"su" "su" "sus" "sus"
Fem Pl P2 Clit3 ;
oper
etConj : {s : Str ; n : Number} = {s = pre {
"y" ;
"y" / strs {"ya" ; "ye" ; "yo" ; "yu"} ;
"e" / strs {"i" ; "hi" ; "y"}
}} ** {n = Pl} ;
}