Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -9784,12 +9784,11 @@ ce(?:ux|lles?|lui|la|) qui ([nv]ous(?: la| les?|)|l(?:es?|ui|a)) +({w_1}) @@*,$ <<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)") <<- __also__ ~1>> * __[i](p_pro_per_obj12)__ (?> select(\2, ":(?:[123][sp]|P|Y)") - <<- __also__ ~1>> * + <<- morph(\2, ":(?:[123][sp]|P|Y)") ~1>> * __[i](p_pro_per_obj13)__ (?:tu|il|on) (en) +({w_1}) @@w,$ <<- not morph(word(-1), ":[123]s", False, False) ~1>> * <<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)") __[i](p_pro_per_obj14)__ @@ -10029,15 +10028,17 @@ #### PAS D’INFINITIF __[i]/ppas(ppas_être)__ (?ce", False, False) and not before("(?i)ce (?:>|qu|que >) $") - and not before_chk1(r"({w_2}) +> $", ":Y") and not before_chk1(r"^ *>? *(\w[\w-]+)", ":Y") + and not morph(word(-1), ":Y|>ce", False, False) and not before("(?i)ce que? +$") + and not morph(word(-1), ":Y", False, False) and not before_chk1(r"^ *>? *(\w[\w-]+)", ":Y") -2>> =suggVerbPpas(@) # Incohérence. Après « être », le verbe ne doit pas être à l’infinitif. TEST: ils sont {{tromper}} par tous ces hypocrites. +TEST: Jeûner n’est pas seulement cesser de manger. +TEST: Ne pas aimer n’est pas oublier l’autre. !! !! !!!! Conjugaison @@ -10051,20 +10052,20 @@ -1>> =suggVerb(@, ":1s") # Conjugaison erronée. Accord avec « je ». Le verbe devrait être à la 1ʳᵉ personne du singulier. __[i]/conj(conj_je)__ (je) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:1s|G)") and not (morph(\2, ":[PQ]", False) and morph(word(-1), ":V0.*:1s", False, False)) -2>> =suggVerb(@, ":1s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 1ʳᵉ personne du singulier. -__[i]/conj(conj_je_pronom)__ - (je) +> +({w_1}) @@0,$ - <<- morphex(\2, ":V", ":(?:1s|G|1p)") - -2>> =suggVerb(@, ":1s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 1ʳᵉ personne du singulier. +#__[i]/conj(conj_je_pronom)__ +# (je) +> +({w_1}) @@0,$ +# <<- morphex(\2, ":V", ":(?:1s|G|1p)") +# -2>> =suggVerb(@, ":1s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 1ʳᵉ personne du singulier. __[i]/conj(conj_j_en_y)__ - (j’(?:y|en)) +>? *({w_1}) @@0,$ + (j’(?:y|en)) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:1s|G|1p)") -2>> =suggVerb(@, ":1s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 1ʳᵉ personne du singulier. __[i]/conj(conj_moi_qui)__ - (moi +qui) +>? *({w_1}) @@0,$ + (moi +qui) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:1s|G|1p|3p!)") -2>> =suggVerb(@, ":1s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 1ʳᵉ personne du singulier. TEST: je {{donnerait}} tout pour y parvenir. TEST: Je le lui {{prend}}. @@ -10085,16 +10086,16 @@ ## 2sg __[i]/conj(conj_tu)__ (tu) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:G|[ISK].*:2s)") and not (morph(\2, ":[PQ]", False) and morph(word(-1), ":V0.*:2s", False, False)) -2>> =suggVerb(@, ":2s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 2ᵉ personne du singulier. -__[i]/conj(conj_tu_pronom)__ - (tu) +> +({w_1}) @@0,$ - <<- morphex(\2, ":V", ":(?:G|[ISK].*:2s)") - -2>> =suggVerb(@, ":2s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 2ᵉ personne du singulier. +#__[i]/conj(conj_tu_pronom)__ +# (tu) +> +({w_1}) @@0,$ +# <<- morphex(\2, ":V", ":(?:G|[ISK].*:2s)") +# -2>> =suggVerb(@, ":2s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 2ᵉ personne du singulier. __[i]/conj(conj_toi_qui)__ - (toi +qui) +>? *({w_1}) @@0,$ + (toi +qui) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:G|2p|3p!|[ISK].*:2s)") -2>> =suggVerb(@, ":2s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 2ᵉ personne du singulier. TEST: Tu ne {{ment}} jamais. TEST: Tu {{a}} mal ? @@ -10107,15 +10108,15 @@ __[i]/conj(conj_il)__ (?> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. <<- __also__ and morph(\2, ":3p", False) -1>> ils # Accord avec « \2 ». -__[i]/conj(conj_il_pronom)__ - (il) +> +({w_1}) @@0,$ - <<- morphex(\2, ":V", ":(?:3s|P|G)") - -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. - <<- __also__ and morph(\2, ":3p", False) -1>> ils # Accord avec « \2 ». +#__[i]/conj(conj_il_pronom)__ +# (il) +> +({w_1}) @@0,$ +# <<- morphex(\2, ":V", ":(?:3s|P|G)") +# -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. +# <<- __also__ and morph(\2, ":3p", False) -1>> ils # Accord avec « \2 ». TEST: {{Il}} {{accusent}}. TEST: il {{bus}} du vin. TEST: Il {{pris}}. TEST: Il {{rougis}}. @@ -10130,14 +10131,14 @@ __[i]/conj(conj_on)__ (on) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|G)") and not (morph(\2, ":[PQ]", False) and morph(word(-1), ":V0.*:3s", False, False)) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. -__[i]/conj(conj_on_pronom)__ - (on) +> +({w_1}) @@0,$ - <<- morphex(\2, ":V", ":(?:3s|P|G)") - -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. +#__[i]/conj(conj_on_pronom)__ +# (on) +> +({w_1}) @@0,$ +# <<- morphex(\2, ":V", ":(?:3s|P|G)") +# -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: on {{remué}} beaucoup. TEST: on {{refuses}} tout cela TEST: on ne se {{bougent}} pas suffisamment @@ -10144,38 +10145,38 @@ __[i]/conj(conj_quiconque)__ quiconque +({w_1}) @@$ <<- morphex(\1, ":V", ":(?:3s|P|G|Q.*:m:[si])") -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « quiconque ». Le verbe devrait être à la 3ᵉ personne du singulier. -__[i]/conj(conj_quiconque_pronom)__ - quiconque +> +({w_1}) @@$ - <<- morphex(\1, ":V", ":(?:3s|P|G)") - -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « quiconque ». Le verbe devrait être à la 3ᵉ personne du singulier. +#__[i]/conj(conj_quiconque_pronom)__ +# quiconque +> +({w_1}) @@$ +# <<- morphex(\1, ":V", ":(?:3s|P|G)") +# -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « quiconque ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: Quiconque {{pensez}} s’en sortir se trompait lourdement. TEST: Il voulut punir quiconque s’y {{adonnaient}}. TEST: quiconque issu de la gauche n’a aucune chance. __[i]/conj(conj_ce)__ - (ce) +>? *({w_1}) @@0,$ + (ce) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:N|A|3s|P|Q|G|V0e.*:3p)") -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. __[i]/conj(conj_celui_celle_qui)__ - (ce(?:lui|lle|) +qui) +>? *({w_1}) @@0,$ + (ce(?:lui|lle|) +qui) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|Q|G)") -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: Ce qui, la plupart du temps, {{donnes}} des maux de tête. TEST: Ce qui {{fâchent}} mes amis. TEST: celui qui {{pensent}} mal de toute chose __[i]/conj(conj_ça)__ - (ça|chacune?|l’une?|ce(?:ci|la|lui-(?:ci|là)|lle-(?:ci|là))|n`importe quo?i|quelqu(?:’une?|e chose))(?: +qui|) +>? *({w_1}) @@0,$ - <<- morphex(\2, ":V", ":(?:3s|P|Q|G|3p!)") and not morph(word(-1), ":[VR]|>de", False, False) + (ça|chacune?|l’une?|ce(?:ci|la|lui-(?:ci|là)|lle-(?:ci|là))|n`importe quo?i|quelqu(?:’une?|e chose)) +(?:qui +|)({w_1}) @@0,$ + <<- morphex(\2, ":V", ":(?:3s|P|Q|G|3p!)") and not morph(word(-1), ":[VR]|>de ", False, False) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: chacun {{fais}} comme il peut TEST: quelqu’un {{sauras}} TEST: quelqu’une se {{montrent}} désagréable @@ -10190,17 +10191,17 @@ TEST: Cela {{dis}}, on ne sait pas comment s’en sortir. TEST: Y avait-il seulement quelqu’un pour vouloir soumettre ses recherches ? __[i]/conj(conj_tout)__ - tout +>? *({w_1}) @@$ + tout +({w_1}) @@$ <<- morphex(\1, ":V", ":(?:3s|P|Q|Y|G|3p!)") and not morph(word(-1), ":[VRD]|>de", False, False) and not( morph(\1, ":(?:Y|N.*:m:[si])", False) and not re.search(" (?:qui|>) ", \0) ) -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « tout ». Le verbe devrait être à la 3ᵉ personne du singulier. __[i]/conj(conj_tout_qui)__ - tout +qui +>? *({w_1}) @@$ + tout +qui +({w_1}) @@$ <<- morphex(\1, ":V", ":(?:3s|P|Q|G|3p!)") and not morph(word(-1), ":[VRD]|>de", False, False) and not( morph(\1, ":(?:Y|N.*:m:[si])", False) and not re.search(" (?:qui|>) ", \0) ) -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « tout ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: Tout {{reviens}} à ça. @@ -10210,11 +10211,11 @@ TEST: Tout vous expliquer est difficile. TEST: J’essaie de bien tout vous expliquer. __[i]/conj(conj_lequel_laquelle)__ - (l(?:equel|aquelle))(?: +qui|) +>? *({w_1}) @@0,$ + (l(?:equel|aquelle)) +(?:qui +|)({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|Q|G|3p!)") and not morph(word(-1), ":[VR]|>de", False, False) and not( morph(\2, ":Y", False) and not re.search(" (?:qui|>) ", \0) ) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: Lequel {{viendraient}} nous donner des leçons ? @@ -10239,15 +10240,15 @@ (?(?:et|ou)", False, False) and not (morph(\2, ":[PQ]", False) and morph(word(-1), ":V0.*:3s", False, False)) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. <<- __also__ and morph(\2, ":3p", False) -1>> elles # Accord avec « \2 ». -__[i]/conj(conj_elle_pronom)__ - (? +({w_1}) @@0,$ - <<- morphex(\2, ":V", ":(?:3s|P|G)") and not morph(word(-1), ":R|>(?:et|ou)", False, False) - -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. - <<- __also__ and morph(\2, ":3p", False) -1>> elles # Accord avec « \2 ». +#__[i]/conj(conj_elle_pronom)__ +# (? +({w_1}) @@0,$ +# <<- morphex(\2, ":V", ":(?:3s|P|G)") and not morph(word(-1), ":R|>(?:et|ou)", False, False) +# -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. +# <<- __also__ and morph(\2, ":3p", False) -1>> elles # Accord avec « \2 ». TEST: Elle {{conquis}}. TEST: Elle {{finis}}. TEST: Elle {{pâlis}}. TEST: {{Elles}} {{donne}} des leçons. @@ -10291,25 +10292,28 @@ (une? des {w_2}) +({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3s|P|G|Q)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) and not morph(\2, ":[NA].*:[pi]", False) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: un des ingénieurs {{vinrent}} nous dire quoi faire. +TEST: un des membres présents au conseil {{demandent}} un vote à bulletin secret +TEST: une des femmes de ce conseil ne {{céderaient}} jamais au chantage. TEST: une des femmes présente ses résultats. -__[i]/conj(conj_un_une_des_pronom)__ +__[i]/conj(conj_un_une_des_qui)__ (une? des {w_2}) +qui +({w_1}) @@0,$ - <<- morphex(\2, ":V", ":(?:3s|P|G)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) + <<- morphex(\2, ":V", ":(?:3[sp]|P|G)") and morphex(word(-1), ":C", ":(?:Y|P|Q|[123][sp]|R)", True) -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. -TEST: un des membres présents au conseil {{demandent}} un vote à bulletin secret -TEST: une des femmes de ce conseil ne {{céderaient}} jamais au chantage. +TEST: un des chats qui {{venez}} nous ennuyer tous les jours. +TEST: un des hommes qui vient. +TEST: une des dames qui se sentent mal à l’aise dans cet avion est venue nous trouver. TEST: l’un des chants les plus diffusés pendant la Révolution culturelle __[i]/conj(conj_infi)__ - ^ *({infi}) +>? *({w_2}) @@*,$ + ^ *({infi}) +({w_2}) @@*,$ <<- morph(\1, ":Y", False) and morph(\2, ":V.[a-z_!?]+(?!.*:(?:3s|P|Q|Y|3p!))") -2>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1… ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: manger {{fais}} grossir. TEST: boire immodérément {{nuis}} à la santé @@ -10338,17 +10342,17 @@ <<- not ( re.search("(?i)^(?:une? +(?:dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet) |la +moitié) ", \0) and morph(\3, ":3p", False) ) and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True) and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]p", False)) and not before(r"(?i)\bni .* ni ") -3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier. -__[i]/conj(conj_det_sing_nom_pronom)__ - (? +({w_2}) @@0,w,$ - <<- not ( re.search("(?i)^(?:une? +(?:dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet) |la +moitié) ", \0) - and morph(\3, ":3p", False) ) - and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|1p|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True) - and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]p", False)) and not before(r"(?i)\bni .* ni ") - -3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier. +#__[i]/conj(conj_det_sing_nom_pronom)__ +# (? +({w_2}) @@0,w,$ +# <<- not ( re.search("(?i)^(?:une? +(?:dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet) |la +moitié) ", \0) +# and morph(\3, ":3p", False) ) +# and morphex(\2, ":[NAQ].*:[si]", ":G") and morphex(\3, ":V", ":(?:3s|1p|P|Q|Y|3p!|G)") and morphex(word(-1), ":C", ":(?:Y|P)", True) +# and not (before(r"(?i)\b(?:et|ou) +$") and morph(\3, ":[123]p", False)) and not before(r"(?i)\bni .* ni ") +# -3>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: La {{N.S.A.}} {{espionneras}} toujours tout le monde TEST: La suspicion envers les élus {{accroissaient}}… ->> accroissait TEST: Le chien n’{{es}} pas mort. TEST: Ce roman-là de Jean-Paul Sartre {{es}} passionnant. @@ -10420,14 +10424,14 @@ __[i]/conj(conj_ils)__ (ils) +({w_2}) @@0,$ <<- morphex(\2, ":V", ":(?:3p|P|Q|G)") and not (morph(\2, ":[PQ]", False) and morph(word(-1), ":V0.*:3p", False, False)) -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. <<- __also__ and morph(\2, ":3s", False) -1>> il # Accord avec « \2 ». -__[i]/conj(conj_ils_pronom)__ - (ils) +> +({w_2}) @@0,$ - <<- morphex(\2, ":V", ":(?:3p|P|G)") -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. - <<- __also__ and morph(\2, ":3s", False) -1>> il # Accord avec « \2 ». +#__[i]/conj(conj_ils_pronom)__ +# (ils) +> +({w_2}) @@0,$ +# <<- morphex(\2, ":V", ":(?:3p|P|G)") -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. +# <<- __also__ and morph(\2, ":3s", False) -1>> il # Accord avec « \2 ». TEST: {{Ils}} {{vienne}} souvent. TEST: Ils ne m’{{attends}} pas. TEST: {{Ils}} vous le {{donne}}. @@ -10440,11 +10444,11 @@ TEST: Ceux qui {{chante}} toute la journée… TEST: Celles qui {{pense}}. __[i]/conj(conj_ceux_là_celles_ci_lesquels)__ - (ce(?:ux-(?:ci|là)|lles-(?:ci|là))|lesquel(?:le|)s) (?:qui +|)({w_1}) @@0,$ + (ce(?:ux-(?:ci|là)|lles-(?:ci|là))|lesquel(?:le|)s) +(?:qui +|)({w_1}) @@0,$ <<- morphex(\2, ":V", ":(?:3p|P|Q|G)") and not morph(word(-1), ":[VR]", False, False) and not (morph(\2, ":Y", False) and re.search(r"(?i)lesquel", \1) and not re.search(" qui |>", \0)) -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. TEST: lesquels {{devienne}} des ennuyeux incomparables. @@ -10454,15 +10458,15 @@ __[i]/conj(conj_elles)__ (?> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. <<- __also__ and morph(\2, ":3s", False) -1>> elle # Accord avec « \2 ». -__[i]/conj(conj_elles_pronom)__ - (? +({w_2}) @@0,$ - <<- morphex(\2, ":V", ":(?:3p|P|G)") and not morph(word(-1), ":R", False, False) - -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. - <<- __also__ and morph(\2, ":3s", False) -1>> elle # Accord avec « \2 ». +#__[i]/conj(conj_elles_pronom)__ +# (? +({w_2}) @@0,$ +# <<- morphex(\2, ":V", ":(?:3p|P|G)") and not morph(word(-1), ":R", False, False) +# -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. +# <<- __also__ and morph(\2, ":3s", False) -1>> elle # Accord avec « \2 ». TEST: {{elles}} {{avance}} rapidement sur ce projet TEST: {{Elles}} n’y {{comprenne}} rien TEST: L’expérience sensible qu’il nous restera bientôt d’elles est à peu près @@ -10505,11 +10509,11 @@ TEST: beaucoup qui ne {{pense}} jamais à rien, mais qui ont quand même des avis sur tout. TEST: beaucoup entre la peste et le choléra. __[i]/conj(conj_certains_tous_plusieurs)__ - (?> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: certains {{prenne}} leur temps TEST: Plusieurs qui {{pense}} que c’est une arnaque se sont quand même trompés. @@ -10526,15 +10530,15 @@ __[i]/conj(conj_det_plur_nom_qui)__ ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +qui +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. -__[i]/conj(conj_det_plur_nom_pronom)__ - ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ - <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G)") and morphex(word(-1), ":C", ":[YP]", True) - and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) - -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. +#__[i]/conj(conj_det_plur_nom_pronom)__ +# ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ +# <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G)") and morphex(word(-1), ":C", ":[YP]", True) +# and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) +# -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Ses « chiens » {{coure}} sur ma pelouse. TEST: mes filles {{passe}} ce matin TEST: vos filles {{passes}} ce matin TEST: ces travaux qui {{demande}} tant d’efforts. @@ -10557,15 +10561,15 @@ __[i]/conj(conj_det_plur_nom_qui_confusion)__ (les|certaine?s|plusieurs) +({w_2}) +qui +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Q|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. -__[i]/conj(conj_det_plur_nom_pronom_confusion)__ - (les|certaine?s|plusieurs) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ - <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G)") and morphex(word(-1), ":C", ":[YP]", True) - and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) - -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. +#__[i]/conj(conj_det_plur_nom_pronom_confusion)__ +# (les|certaine?s|plusieurs) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ +# <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G)") and morphex(word(-1), ":C", ":[YP]", True) +# and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) +# -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Les abstentions {{est}} présumée manifester un défaut d’opinion marquée TEST: Les cours de culture générale nous {{apporte}} de l’ouverture d’esprit. TEST: Les hommes ne le lui {{pardonnes}} pas. TEST: Les infirmières à mi-temps ne {{travaille}} pas dans cette aile. @@ -10600,16 +10604,16 @@ __[i]/conj(conj_des_nom1)__ ^ *des +({w_2}) +({w_2}) @@w,$ <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G|Q|A.*:[pi])") and morph(word(1), ":(?:R|D.*:p)|>au ", False, True) >>> <<- not morph(\2, ":[NA]", False) -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. <<- __else__ and not checkAgreement(\1, \2) -2>> =suggVerb(@, ":3p", suggPlur) # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. -__[i]/conj(conj_des_nom2)__ - ^ *des +({w_2}) +> +({w_2}) @@w,$ - <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G|Q)") and morph(word(1), ":(?:R|D.*:p)|>au ", False, True) - -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. +#__[i]/conj(conj_des_nom2)__ +# ^ *des +({w_2}) +> +({w_2}) @@w,$ +# <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G|Q)") and morph(word(1), ":(?:R|D.*:p)|>au ", False, True) +# -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. __[i]/conj(conj_des_nom_qui)__ - ^ *des +({w_2}) +qui +(?:> +|)({w_2}) @@w,$ + ^ *des +({w_2}) +qui +({w_2}) @@w,$ <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G)") -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Des hommes {{arrive}}. TEST: Des femmes ne {{demande}} rien. @@ -10726,13 +10730,13 @@ TEST: Qu’est-ce que tu crois que {{deviens}} réellement, immanquablement et subitement cet homme après une telle dérouillée ? TEST: ces sciences, ces religions, ces philosophies ne sont que contes destinés à nous donner l’illusion de la connaissance. -__[i]/conj(conj_que_où_verbe_sujet_3sg)__ - (?:que|où) +> +({w1})(?! [jJ]e| [tT]u| [nNvV]ous| [eE]t ) @@$ - <<- morphex(\1, ":[12][sp]", ":(?:G|W|3[sp])") -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. +#__[i]/conj(conj_que_où_verbe_sujet_3sg)__ +# (?:que|où) +> +({w1})(?! [jJ]e| [tT]u| [nNvV]ous| [eE]t ) @@$ +# <<- morphex(\1, ":[12][sp]", ":(?:G|W|3[sp])") -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. TEST: peu importe ce que tu crois du lieu où l’{{abandonnerais}} ce salopard… __[i]/conj(conj_puisse)__ @@ -10752,42 +10756,40 @@ !!!! Formes interrogatives ? !! !! __[i]/inte(inte_union_xxxe_je)__ - (?? *$") and not morph(word(1), ":(?:Oo|X|1s)", False, False) + (?> =\1[:-1]+"é-je" # Forme interrogative ? Mettez un trait d’union. __[i]/inte(inte_union_xxx_je)__ - (?? *$") and not morph(word(1), ":(?:Oo|X|1s)", False, False) + (?> \1-je # Forme interrogative ? Mettez un trait d’union. __[i]/inte(inte_union_tu)__ ({w_1}s) tu @@0 - <<- not after("^ +(?:en|y|ne|>)") and morphex(\1, ":V.*:2s", ":[GNW]") and not before(r"(?i)\b(?:je|tu) +>? *$") + <<- morphex(\1, ":V.*:2s", ":[GNW]") and not before(r"(?i)\b(?:je|tu) +$") and morphex(word(1), ":", ":2s", True) ->> \1-tu # Forme interrogative ? Mettez un trait d’union. __[i]/inte(inte_union_il_on)__ ({w_2}[td]) (?:il|on) @@0 - <<- not after("^ +(?:en|y|ne|>)") and morphex(\1, ":V.*:3s", ":[GNW]") and not before(r"(?i)\b(?:ce|il|elle|on) +>? *$") + <<- morphex(\1, ":V.*:3s", ":[GNW]") and not before(r"(?i)\b(?:ce|il|elle|on) +$") and morphex(word(1), ":", ":3s|>y ", True) ->> =\0.replace(" ", "-") # Forme interrogative ? Mettez un trait d’union. __[i]/inte(inte_union_elle)__ (?)") and morphex(\1, ":V.*:3s", ":[GNW]") and not before(r"(?i)\b(?:ce|il|elle|on) +>? *$") + <<- morphex(\1, ":V.*:3s", ":[GNW]") and not before(r"(?i)\b(?:ce|il|elle|on) +$") and morphex(word(1), ":", ":3s", True) ->> \1-elle # Forme interrogative ? Mettez un trait d’union. __[i]/inte(inte_union_nous)__ ({w_2}ons) nous @@0 - <<- not after("^ +(?:en|y|ne|aussi|>)") and morphex(\1, ":V.*:1p", ":[GNW]") - and not morph(word(-1), ":Os", False, False) and not morph(word(1), ":Y", False, False) + <<- morphex(\1, ":V.*:1p", ":[GNW]") and not morph(word(-1), ":Os", False, False) and morphex(word(1), ":", ":(?:Y|1p)", True) ->> \1-nous # Forme interrogative ? Mettez un trait d’union. __[i]/inte(inte_union_vous)__ ({w_2}ez) vous @@0 - <<- not after("^ +(?:en|y|ne|aussi|>)") and not \1.endswith("euillez") and morphex(\1, ":V.*:2p", ":[GNW]") - and not morph(word(-1), ":Os", False, False) and not morph(word(1), ":Y", False, False) + <<- morphex(\1, ":V.*:2p", ":[GNW]|>vouloir .*:E:2p") and not morph(word(-1), ":Os", False, False) and morphex(word(1), ":", ":(?:Y|2p)", True) ->> \1-vous # Forme interrogative ? Mettez un trait d’union. __[i]/inte(inte_union_ils_elles)__ ({w_1}nt) (?:ils|elles) @@0 - <<- not after("^ +(?:en|y|ne|aussi|>)") and morphex(\1, ":V.*:3p", ":[GNW]") and not before(r"(?i)\b(?:ce|ils|elles) +>? *$") + <<- morphex(\1, ":V.*:3p", ":[GNW]") and not before(r"(?i)\b(?:ce|ils|elles) +$") and morphex(word(1), ":", ":3p", True) ->> =\0.replace(" ", "-") # Forme interrogative ? Mettez un trait d’union. TEST: {{mangé je}} {{ça}} avec dégoût ? TEST: {{viendrais je}} à la fête ? TEST: {{Seras tu}} là ? @@ -10796,10 +10798,11 @@ TEST: {{viennent elles}} souvent ? TEST: {{retrouverons nous}} enfin la tranquilité ? TEST: Mais {{soutiendrez vous}} cette proposition ? TEST: {{Viendront ils}} demain ? TEST: je ne comprenais pas pourquoi c’était elle qui était punie et que personne ne parlait de celui qui avait fait ça. +TEST: Veuillez vous instruire avant de contester ces mesures. __[i]/inte(inte_je)__ ({w1})-je @@0 <<- morphex(\1, ":V", ":1[sśŝ]") -1>> =suggVerb(@, ":1ś") # Forme interrogative : « \1 » n’est pas un verbe à la 1ʳᵉ personne du singulier.