1
0
forked from GitHub/gf-core

added Spanish and Italian existentials

This commit is contained in:
aarne
2005-04-12 15:47:23 +00:00
parent 8376ef3653
commit 99582672cb
7 changed files with 95 additions and 19 deletions

View File

@@ -278,6 +278,19 @@ oper
} }
} ; } ;
-- used in constructions like "(non) ci sono ..."
pronEmpty : Number -> Pronoun = \n -> mkPronoun
[]
[]
[]
[]
[] [] [] []
(PGen Masc)
n
P3
Clit2 ;
--2 Determiners --2 Determiners
-- --
-- Determiners, traditionally called indefinite pronouns, are inflected -- Determiners, traditionally called indefinite pronouns, are inflected

View File

@@ -40,7 +40,13 @@ oper
npGenPossNum = \nu,ton,mec -> npGenPossNum = \nu,ton,mec ->
\\c => artDef mec.g Pl c ++ ton.s ! Poss Pl mec.g ++ nu.s ! mec.g ++ mec.s ! Pl ; \\c => artDef mec.g Pl c ++ ton.s ! Poss Pl mec.g ++ nu.s ! mec.g ++ mec.s ! Pl ;
existNounPhrase = variants {} ; ---- existNounPhrase np =
let ci = MorphoIta.pronNous in
sats2clause (
insertObject (mkSatsObject (pronEmpty np.n) (mkTransVerbCas verbEssere dative) ci)
accusative [] np) ;
{- ---- {- ----
existNounPhrase = \delvino -> { existNounPhrase = \delvino -> {
s = \\m => s = \\m =>
@@ -51,15 +57,15 @@ oper
} ; } ;
-} -}
---- check this!
reflPron : Number => Person => NPFormA => Str = \\n,p => reflPron : Number => Person => NPFormA => Str = \\n,p =>
case p of { case p of {
P3 => table { P3 => table {
Ton x => prepCase x ++ "sé" ; Ton x => prepCase x ++ "sé" ;
Aton _ => "si" ; Aton _ => "se" ;
Poss Sg Masc => "suo" ; Poss Sg Masc => "su" ;
Poss Sg Fem => "sua" ; Poss Sg _ => "su" ;
Poss Pl Masc => "suoi" ; Poss Pl _ => "sus"
Poss Pl _ => "sue"
} ; } ;
_ => (personPron Masc n p).s _ => (personPron Masc n p).s
} ; } ;

View File

@@ -1418,7 +1418,7 @@ oper
artIndef : Gender -> Number -> CaseA -> Str ; artIndef : Gender -> Number -> CaseA -> Str ;
genForms : Str -> Str -> Gender => Str ; genForms : Str -> Str -> Gender => Str ;
----- moved from Res ----- moved from Res ; should not be here (pronouns are also in MorphoIta...)
pronJe, pronTu, pronIl, pronElle, pronNous, pronVous, pronIls, pronElles : pronJe, pronTu, pronIl, pronElle, pronNous, pronVous, pronIls, pronElles :
Pronoun ; Pronoun ;

View File

@@ -0,0 +1,4 @@
--# -path=.:../romance:../abstract:../../prelude
concrete ClauseSpa of Clause = CategoriesSpa **
ClauseRomance with (SyntaxRomance=SyntaxSpa) ;

View File

@@ -126,6 +126,18 @@ oper
c = c c = c
} ; } ;
-- used in constructions like "(no) hay ..."
pronEmpty : Number -> Pronoun = \n -> mkPronoun
[]
[]
[]
[]
[] [] [] []
(PGen Masc)
n
P3
Clit2 ;
--2 Reflexive pronouns --2 Reflexive pronouns
-- --

View File

@@ -37,7 +37,48 @@ oper
npGenPossNum = \nu,ton,mec -> npGenPossNum = \nu,ton,mec ->
\\c => artDef mec.g Pl c ++ ton.s ! Poss Pl mec.g ++ nu.s ! mec.g ++ mec.s ! Pl ; \\c => artDef mec.g Pl c ++ ton.s ! Poss Pl mec.g ++ nu.s ! mec.g ++ mec.s ! Pl ;
existNounPhrase = variants {} ; existNounPhrase np =
let
verbHay =
{s = table {
VFin (VPres Ind) Sg P3 => "hay" ;
v => verbHaber.s ! v
} ;
aux = verbHaber.aux
}
in
sats2clause (
mkSatsObject (pronEmpty Sg) (mkTransVerbCas verbHay accusative) np) ;
reflPron : Number => Person => NPFormA => Str = \\n,p =>
case p of {
P3 => table {
Ton x => prepCase x ++ "sé" ;
Aton _ => "si" ;
Poss Sg Masc => "suo" ;
Poss Sg Fem => "sua" ;
Poss Pl Masc => "suoi" ;
Poss Pl _ => "sue"
} ;
_ => (personPron Masc n p).s
} ;
personPron : Gender -> Number -> Person -> Pronoun = \g,n,p ->
case <n,p> of {
<Sg,P1> => pronJe ;
<Sg,P2> => pronTu ;
<Sg,P3> => case g of {
Masc => pronIl ;
Fem => pronElle
} ;
<Pl,P1> => pronNous ;
<Pl,P2> => pronVous ;
<Pl,P3> => case g of {
Masc => pronIls ;
Fem => pronIls
}
} ;
{- ---- {- ----
existNounPhrase = \delvino -> { existNounPhrase = \delvino -> {
s = \\m => s = \\m =>

View File

@@ -1,7 +1,8 @@
--# -path=.:../romance:../oldabstract:../abstract:../../prelude --# -path=.:../romance:../abstract:../../prelude
concrete TestResourceSpa of TestResource = concrete TestResourceSpa of TestResource =
RulesSpa, StructuralSpa ** open Prelude, TypesSpa, MorphoSpa, SyntaxSpa in { RulesSpa, ClauseSpa, StructuralSpa ** open Prelude, TypesSpa,
MorphoSpa, BeschSpa, SyntaxSpa in {
flags startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ; flags startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;
@@ -18,23 +19,22 @@ lin
Woman = mkCNom (nomPilar "mujer") Fem ; Woman = mkCNom (nomPilar "mujer") Fem ;
Car = mkCNom (nomVino "coche") Masc ; Car = mkCNom (nomVino "coche") Masc ;
Light = mkCNom (numForms "luz" "luces") Fem ; Light = mkCNom (numForms "luz" "luces") Fem ;
Level = mkCNom (nomPilar "nivel") Masc ;
House = mkCNom (nomVino "casa") Fem ; House = mkCNom (nomVino "casa") Fem ;
Wine = mkCNom (nomVino "vino") Masc ; Wine = mkCNom (nomVino "vino") Masc ;
Bottle = mkCNom (nomVino "botella") Fem ; Bottle = mkCNom (nomVino "botella") Fem ;
Bar = mkCNom (nomTram "bar") Masc ; Bar = mkCNom (nomTram "bar") Masc ;
Walk = verbPres (zurrar_3 "pasear") AHabere ; Walk = verbPres (cortar_5 "pasear") AHabere ;
---- Run = (verbPres (correre_41 "correre") AHabere) ; ---- Run = (verbPres (correre_41 "correre") AHabere) ;
Send = mkTransVerbDir (verbPres (zurrar_3 "mandar") AHabere) ; Send = mkTransVerbDir (verbPres (cortar_5 "mandar") AHabere) ;
Love = mkTransVerbDir (verbPres (zurrar_3 "amar") AHabere) ; Love = mkTransVerbDir (verbPres (cortar_5 "amar") AHabere) ;
Wait = mkTransVerbCas (verbPres (zurrar_3 "esperar") AHabere) dative ; Wait = mkTransVerbCas (verbPres (cortar_5 "esperar") AHabere) dative ;
---- Drink = mkTransVerbDir (verbPres (bere_29 "bere") AHabere) ; ---- Drink = mkTransVerbDir (verbPres (bere_29 "bere") AHabere) ;
---- Give = mkDitransVerb (verbPres (dare_17 "dare") AHabere) [] dative [] accusative ; ---- Give = mkDitransVerb (verbPres (dare_17 "dare") AHabere) [] dative [] accusative ;
Prefer = mkDitransVerb (verbPres (zurrir_5 "preferir") AHabere) [] accusative [] dative ; Prefer = mkDitransVerb (verbPres (vivir_7 "preferir") AHabere) [] accusative [] dative ;
---- Say = verbSent (verbPres (dire_44 "dire") AHabere) Ind Ind ; ---- Say = verbSent (verbPres (dire_44 "dire") AHabere) Ind Ind ;
Prove = verbSent (verbPres (zurrar_3 "demonstrar") AHabere) Ind Ind ; Prove = verbSent (verbPres (cortar_5 "demonstrar") AHabere) Ind Ind ;
SwitchOn = mkTransVerbDir (verbPres (vender_4 "enciender") AHabere) ; ---- SwitchOn = mkTransVerbDir (verbPres (deber_6 "enciender") AHabere) ; ----
SwitchOff = mkTransVerbDir (verbPres (zurrar_3 "apagar") AHabere) ; SwitchOff = mkTransVerbDir (verbPres (cortar_5 "apagar") AHabere) ;
Mother = funGen (mkCNom (nomVino "madre") Fem) ; Mother = funGen (mkCNom (nomVino "madre") Fem) ;
Uncle = funGen (mkCNom (nomVino "tío") Masc) ; Uncle = funGen (mkCNom (nomVino "tío") Masc) ;
Connection = mkCNom (nomPilar "connexión") Fem ** Connection = mkCNom (nomPilar "connexión") Fem **