mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
fixed numeral agreement and some French verbs
This commit is contained in:
@@ -40,7 +40,7 @@ lincat
|
||||
-- = CommNoun ** {s2 : Preposition ; c : CaseA} ;
|
||||
N3 = Function ** {s3 : Preposition ; c3 : CaseA} ;
|
||||
Prep = {s : Preposition ; c : CaseA} ;
|
||||
Num = {s : Gender => Str} ;
|
||||
Num = {s : Gender => Str ; n : Number} ;
|
||||
|
||||
A = Adjective ;
|
||||
-- = {s : AForm => Str ; p : Bool} ;
|
||||
|
||||
@@ -35,7 +35,7 @@ lin
|
||||
ModGenOne = npGenDet singular ;
|
||||
ModGenNum = npGenDetNum ;
|
||||
|
||||
UseInt i = {s = \\_ => i.s} ;
|
||||
UseInt i = {s = \\_ => i.s ; n = Pl} ; ---- n
|
||||
NoNum = noNum ;
|
||||
|
||||
UseA = adj2adjPhrase ;
|
||||
|
||||
@@ -62,7 +62,7 @@ oper
|
||||
-- Many determiners can be modified with numerals, which may be inflected in
|
||||
-- gender.
|
||||
|
||||
Numeral : Type = {s : Gender => Str} ;
|
||||
Numeral : Type = {s : Gender => Str ; n : Number} ;
|
||||
|
||||
pronWithNum : Pronoun -> Numeral -> Pronoun = \nous,deux ->
|
||||
{s = \\c => nous.s ! c ++ deux.s ! pgen2gen nous.g ;
|
||||
@@ -72,7 +72,7 @@ oper
|
||||
c = nous.c
|
||||
} ;
|
||||
|
||||
noNum : Numeral = {s = \\_ => []} ;
|
||||
noNum : Numeral = {s = \\_ => [] ; n = Pl} ;
|
||||
|
||||
-- The existence construction "il y a", "c'è / ci sono" is defined separately,
|
||||
-- and ad hoc, in each language.
|
||||
@@ -98,9 +98,9 @@ oper
|
||||
numDetNounPhrase : DeterminerNum -> Numeral -> CommNounPhrase -> NounPhrase =
|
||||
\tous, six, homme ->
|
||||
normalNounPhrase
|
||||
(\\c => prepCase c ++ tous.s ! homme.g ++ six.s ! homme.g ++ homme.s ! Pl)
|
||||
(\\c => prepCase c ++ tous.s ! homme.g ++ six.s ! homme.g ++ homme.s ! six.n)
|
||||
homme.g
|
||||
Pl ;
|
||||
six.n ;
|
||||
|
||||
--- Here one would like to provide a feminine variant as well.
|
||||
|
||||
@@ -109,7 +109,7 @@ oper
|
||||
normalNounPhrase
|
||||
(\\c => prepCase c ++ tous.s ! Masc ++ six.s ! Masc)
|
||||
Masc
|
||||
Pl ;
|
||||
six.n ;
|
||||
|
||||
-- The following macros are sufficient to define most determiners,
|
||||
-- as shown by the examples that follow.
|
||||
@@ -138,9 +138,9 @@ oper
|
||||
|
||||
indefNounPhraseNum : Numeral -> CommNounPhrase -> NounPhrase = \nu,mec ->
|
||||
normalNounPhrase
|
||||
(\\c => nu.s ! mec.g ++ mec.s ! Pl)
|
||||
(\\c => prepCase c ++ nu.s ! mec.g ++ mec.s ! nu.n)
|
||||
mec.g
|
||||
Pl ;
|
||||
nu.n ;
|
||||
|
||||
defNounPhrase : Number -> CommNounPhrase -> NounPhrase = \n,mec ->
|
||||
normalNounPhrase
|
||||
@@ -150,9 +150,9 @@ oper
|
||||
|
||||
defNounPhraseNum : Numeral -> CommNounPhrase -> NounPhrase = \nu,mec ->
|
||||
normalNounPhrase
|
||||
(\\c => artDef mec.g Pl c ++ nu.s !mec.g ++ mec.s ! Pl)
|
||||
(\\c => artDef mec.g nu.n c ++ nu.s !mec.g ++ mec.s ! nu.n)
|
||||
mec.g
|
||||
Pl ;
|
||||
nu.n ;
|
||||
|
||||
-- We often need indefinite noun phrases synacategorematically.
|
||||
|
||||
@@ -179,7 +179,7 @@ oper
|
||||
_ => npGenPossNum nu jeanne mec
|
||||
}
|
||||
} in
|
||||
normalNounPhrase str mec.g Pl ;
|
||||
normalNounPhrase str mec.g nu.n ;
|
||||
|
||||
-- These auxiliary rules define the genitive with "de" and with the possessive.
|
||||
-- Here there is a difference between French and Italian: Italian has a definite
|
||||
@@ -191,7 +191,7 @@ oper
|
||||
|
||||
npGenDeNum : Numeral -> NounPhrase -> CommNounPhrase -> CaseA => Str =
|
||||
\nu,jeanne,mec ->
|
||||
\\c => artDef mec.g Pl c ++ nu.s ! mec.g ++ mec.s ! Pl ++
|
||||
\\c => artDef mec.g nu.n c ++ nu.s ! mec.g ++ mec.s ! nu.n ++
|
||||
jeanne.s ! case2pform genitive ;
|
||||
|
||||
npGenPoss : Number -> NounPhrase -> CommNounPhrase -> CaseA => Str ;
|
||||
|
||||
Reference in New Issue
Block a user