mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
middle polarity for French in Romance (for "personne ne dort")
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
incomplete concrete CatRomance of Cat = CommonX - [SC]
|
||||
incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
|
||||
** open Prelude, CommonRomance, ResRomance, (R = ParamX) in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lincat
|
||||
|
||||
-- exception to CommonX, due to the distinction ne/ne-pas
|
||||
|
||||
Pol = {s : Str ; p : RPolarity} ;
|
||||
|
||||
-- Tensed/Untensed
|
||||
|
||||
S = {s : Mood => Str} ;
|
||||
@@ -19,16 +23,16 @@ incomplete concrete CatRomance of Cat = CommonX - [SC]
|
||||
|
||||
-- Sentence
|
||||
|
||||
Cl = {s : Direct => RTense => Anteriority => Polarity => Mood => Str} ;
|
||||
Cl = {s : Direct => RTense => Anteriority => RPolarity => Mood => Str} ;
|
||||
ClSlash = {
|
||||
s : AAgr => Direct => RTense => Anteriority => Polarity => Mood => Str ;
|
||||
s : AAgr => Direct => RTense => Anteriority => RPolarity => Mood => Str ;
|
||||
c2 : Compl
|
||||
} ;
|
||||
Imp = {s : Polarity => ImpForm => Gender => Str} ;
|
||||
Imp = {s : RPolarity => ImpForm => Gender => Str} ;
|
||||
|
||||
-- Question
|
||||
|
||||
QCl = {s : RTense => Anteriority => Polarity => QForm => Str} ;
|
||||
QCl = {s : RTense => Anteriority => RPolarity => QForm => Str} ;
|
||||
IP = {s : Case => Str ; a : AAgr} ;
|
||||
IComp = {s : AAgr => Str} ;
|
||||
IDet = {s : Gender => Case => Str ; n : Number} ;
|
||||
@@ -37,7 +41,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC]
|
||||
-- Relative
|
||||
|
||||
RCl = {
|
||||
s : Agr => RTense => Anteriority => Polarity => Mood => Str ;
|
||||
s : Agr => RTense => Anteriority => RPolarity => Mood => Str ;
|
||||
c : Case
|
||||
} ;
|
||||
RP = {s : Bool => AAgr => Case => Str ; a : AAgr ; hasAgr : Bool} ;
|
||||
@@ -95,7 +99,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC]
|
||||
V, VQ, VA = Verb ;
|
||||
V2, VV, V2S, V2Q = Verb ** {c2 : Compl} ;
|
||||
V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
|
||||
VS = Verb ** {m : Polarity => Mood} ;
|
||||
VS = Verb ** {m : RPolarity => Mood} ;
|
||||
|
||||
A = {s : Degree => AForm => Str ; isPre : Bool} ;
|
||||
A2 = {s : Degree => AForm => Str ; c2 : Compl} ;
|
||||
|
||||
@@ -233,18 +233,21 @@ oper
|
||||
oper
|
||||
VPC : Type = {
|
||||
s : VPForm => {
|
||||
fin : Agr => Str ; -- ai
|
||||
inf : AAgr => Str -- dit
|
||||
fin : Agr => Str ; -- ai
|
||||
inf : AAgr => Str -- dit
|
||||
} ;
|
||||
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
|
||||
neg : Polarity => (Str * Str) ; -- ne-pas
|
||||
clit1 : Str ; -- le/se
|
||||
clit2 : Str ; -- lui
|
||||
clit3 : Str ; -- y en
|
||||
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
|
||||
ext : Polarity => Str ; -- que je dors / que je dorme
|
||||
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
|
||||
neg : RPolarity => (Str * Str) ; -- ne-pas
|
||||
clit1 : Str ; -- le/se
|
||||
clit2 : Str ; -- lui
|
||||
clit3 : Str ; -- y en
|
||||
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
|
||||
ext : RPolarity => Str ; -- que je dors / que je dorme
|
||||
} ;
|
||||
|
||||
-- Polarity: three values (Fre positive,ne-pas,ne), presence of polarity element line "aucun"
|
||||
|
||||
param RPolarity = RPos | RNeg Bool ; -- RNeg True = "ne", RNeg False = "ne - pas"
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,8 @@ interface DiffRomance = open CommonRomance, Prelude in {
|
||||
|
||||
-- To render imperatives (with their clitics etc).
|
||||
|
||||
oper mkImperative : Bool -> Person -> VP -> Polarity => Gender => Number => Str ;
|
||||
oper mkImperative : Bool -> Person -> VP -> RPolarity => Gender => Number => Str ;
|
||||
|
||||
|
||||
--2 Constants that must derivatively depend on language
|
||||
|
||||
@@ -76,7 +77,7 @@ interface DiffRomance = open CommonRomance, Prelude in {
|
||||
possCase : Gender -> Number -> Case -> Str ;
|
||||
|
||||
auxVerb : VType -> (VF => Str) ;
|
||||
negation : Polarity => (Str * Str) ;
|
||||
negation : RPolarity => (Str * Str) ;
|
||||
copula : Verb ;
|
||||
|
||||
conjThan : Str ;
|
||||
@@ -105,15 +106,16 @@ oper
|
||||
|
||||
VP : Type = {
|
||||
s : Verb ;
|
||||
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
|
||||
neg : Polarity => (Str * Str) ; -- ne-pas
|
||||
clit1 : Str ; -- le/se
|
||||
clit2 : Str ; -- lui
|
||||
clit3 : Str ; -- y en
|
||||
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
|
||||
ext : Polarity => Str ; -- que je dors / que je dorme
|
||||
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
|
||||
neg : RPolarity => (Str * Str) ; -- ne-pas
|
||||
clit1 : Str ; -- le/se
|
||||
clit2 : Str ; -- lui
|
||||
clit3 : Str ; -- y en
|
||||
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
|
||||
ext : RPolarity => Str ; -- que je dors / que je dorme
|
||||
} ;
|
||||
|
||||
|
||||
--2 Workarounds, to be eliminated
|
||||
|
||||
-- This should be provided by $pronArg$ above, but causes trouble in compilation.
|
||||
|
||||
@@ -166,7 +166,7 @@ oper
|
||||
ext = vp.ext ;
|
||||
} ;
|
||||
|
||||
insertExtrapos : (Polarity => Str) -> VP -> VP = \co,vp -> {
|
||||
insertExtrapos : (RPolarity => Str) -> VP -> VP = \co,vp -> {
|
||||
s = vp.s ;
|
||||
agr = vp.agr ;
|
||||
clit1 = vp.clit1 ;
|
||||
@@ -179,19 +179,8 @@ oper
|
||||
|
||||
mkVPSlash : Compl -> VP -> VP ** {c2 : Compl} = \c,vp -> vp ** {c2 = c} ;
|
||||
|
||||
tmpVP : Type = {
|
||||
s : Verb ;
|
||||
agr : VPAgr ; -- dit/dite dep. on verb, subj, and clitic
|
||||
neg : Polarity => (Str * Str) ; -- ne-pas
|
||||
clit1 : Str ; -- le/se
|
||||
clit2 : Str ; -- lui
|
||||
clit3 : Str ; -- y en
|
||||
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
|
||||
ext : Polarity => Str ; -- que je dors / que je dorme
|
||||
} ;
|
||||
|
||||
mkClause : Str -> Bool -> Bool -> Agr -> VP ->
|
||||
{s : Direct => RTense => Anteriority => Polarity => Mood => Str} =
|
||||
{s : Direct => RTense => Anteriority => RPolarity => Mood => Str} =
|
||||
\subj, hasClit, isPol, agr, vp -> {
|
||||
s = \\d,te,a,b,m =>
|
||||
let
|
||||
@@ -252,8 +241,8 @@ oper
|
||||
let
|
||||
iform = False ; ---- meaning: no clitics
|
||||
inf = vp.s.s ! VInfin iform ;
|
||||
neg = vp.neg ! Pos ; --- Neg not in API
|
||||
obj = neg.p2 ++ vp.comp ! agr ++ vp.ext ! Pos ; ---- pol
|
||||
neg = vp.neg ! RPos ; --- Neg not in API
|
||||
obj = neg.p2 ++ vp.comp ! agr ++ vp.ext ! RPos ; ---- pol
|
||||
refl = case vp.s.vtyp of {
|
||||
VRefl => reflPron agr.n agr.p Acc ; ---- case ?
|
||||
_ => []
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
incomplete concrete TenseRomance of Tense =
|
||||
CatRomance [Tense,Temp], TenseX [Ant,Pol,AAnter,ASimul,PNeg,PPos] **
|
||||
open ResRomance, CommonRomance in {
|
||||
CatRomance [Tense,Temp], TenseX [Ant,AAnter,ASimul] **
|
||||
open ResRomance, CommonRomance, Prelude in {
|
||||
|
||||
lin
|
||||
TTAnt t a = {s = a.s ++ t.s ; a = a.a ; t = t.t} ;
|
||||
@@ -9,4 +9,7 @@ incomplete concrete TenseRomance of Tense =
|
||||
TFut = {s = []} ** {t = RFut} ; --# notpresent
|
||||
TCond = {s = []} ** {t = RCond} ; --# notpresent
|
||||
|
||||
PPos = {s = [] ; p = RPos} ;
|
||||
PNeg = {s = [] ; p = RNeg False} ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user