Grammalecte  Diff

Differences From Artifact [e821d0d4bf]:

To Artifact [8af257ba9e]:


9782
9783
9784
9785
9786
9787
9788
9789

9790
9791
9792
9793
9794
9795
9796
9797
9782
9783
9784
9785
9786
9787
9788

9789

9790
9791
9792
9793
9794
9795
9796







-
+
-







    <<- __also__ and morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
__[i](p_pro_per_obj11)__
    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)__
    (?<!’)(en) ({w_2}) @@0,$
    <<- morph(\2, ":(?:[123][sp]|P|Y)", False) =>> select(\2, ":(?:[123][sp]|P|Y)")
    <<- morph(\2, ":(?:[123][sp]|P|Y)") ~1>> *
    <<- __also__ ~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)__
    (?<!’)elle (en) +({w_1})  @@w,$
    <<- not morph(word(-1), ":(?:[123]s|R)", False, False) ~1>> *
10027
10028
10029
10030
10031
10032
10033
10034
10035


10036
10037
10038


10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059




10060
10061

10062
10063
10064
10065

10066
10067
10068
10069
10070
10071
10072
10026
10027
10028
10029
10030
10031
10032


10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056




10057
10058
10059
10060
10061

10062
10063
10064
10065

10066
10067
10068
10069
10070
10071
10072
10073







-
-
+
+



+
+

















-
-
-
-
+
+
+
+

-
+



-
+









#### PAS D’INFINITIF

__[i]/ppas(ppas_être)__
    (?<![cC]’)({etre}) +({w_2}er)  @@0,$
    <<- morph(\1, ":V0e", False) and (morphex(\2, ":Y", ":[NAQ]") or \2 in aSHOULDBEVERB) and not re.search("(?i)^(?:soit|été)$", \1)
    and not morph(word(-1), ":Y|>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                                                                                    
!!
!!

## 1sg
__[i]/conj(conj_j)__
    j’({w_1})  @@2
    <<- morphex(\1, ":V", ":1s|>(?:en|y)")
    -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}}.
TEST: Je l’{{apprend}}.
TEST: Je les {{contre-attaques}}.
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093




10094
10095

10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116





10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138




10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152




10153
10154
10155
10156
10157
10158
10159
10160

10161
10162
10163
10164
10165

10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176


10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195

10196
10197
10198
10199
10200
10201

10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215

10216
10217
10218
10219
10220
10221
10222
10084
10085
10086
10087
10088
10089
10090




10091
10092
10093
10094
10095

10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112





10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135




10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149




10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160

10161
10162
10163
10164
10165

10166
10167
10168
10169
10170
10171
10172
10173
10174
10175


10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195

10196
10197
10198
10199
10200
10201

10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215

10216
10217
10218
10219
10220
10221
10222
10223







-
-
-
-
+
+
+
+

-
+
















-
-
-
-
-
+
+
+
+
+


















-
-
-
-
+
+
+
+










-
-
-
-
+
+
+
+







-
+




-
+









-
-
+
+


















-
+





-
+













-
+









## 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 ?
TEST: Tu ne le lui {{prend}} pas.
TEST: Tu ne m’{{attendra}} pas.
TEST: toi qui n’y {{connait}} rien, ne nous ennuie pas avec tes théories.


## 3sg
__[i]/conj(conj_il)__
    (?<!t’)(il) +({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.
    <<- __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}}.
TEST: Il {{suivis}}.
TEST: Il {{grandis}}.
TEST: Il {{bâtis}}.
TEST: Il {{bus}}.
TEST: Il {{mues}}.
TEST: {{il}} ne {{pensent}} à rien.
TEST: il n’y {{aurais}} plus rien à attendre de la religion et de la politique.


__[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


__[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
TEST: n’importe quoi {{peux}} réussir
TEST: n’importe qui {{peux}} y arriver.
TEST: quelque chose {{sens}} mauvais ici
TEST: l’un d’eux {{viendras}}
TEST: ce {{dois}} être ennuyeux
TEST: ce {{seras}} foutu
TEST: mais ça ne vous {{aideras}} en rien
TEST: Cela ne t’{{aideras}} pas.
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.
TEST: Tout qui {{deviens}} fou.
TEST: Le tout nouveau président de la fondation qui héberge Wikipédia
TEST: tout discours de sortie nourrit immanquablement la sortie
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 ?
TEST: Laquelle choisir ?
TEST: Lequel manger ?
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248





10249
10250
10251
10252
10253
10254
10255
10238
10239
10240
10241
10242
10243
10244





10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256







-
-
-
-
-
+
+
+
+
+








__[i]/conj(conj_elle)__
    (?<![dD]’)(elle) +({w_1})  @@0,$
    <<- morphex(\2, ":V", ":(?:3s|P|G)") and not morph(word(-1), ":R|>(?: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)__
    (?<![dD]’)(elle) +> +({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)__
#    (?<![dD]’)(elle) +> +({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.
TEST: {{Elle}} ne nous {{croient}} jamais.
TEST: {{elle}} {{sont}} parties.
10289
10290
10291
10292
10293
10294
10295


10296
10297
10298
10299

10300
10301

10302
10303

10304
10305


10306
10307
10308
10309
10310

10311
10312
10313
10314
10315
10316
10317
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301

10302
10303

10304
10305
10306
10307


10308
10309
10310
10311
10312
10313

10314
10315
10316
10317
10318
10319
10320
10321







+
+



-
+

-
+


+
-
-
+
+




-
+








__[i]/conj(conj_un_une_des)__
    (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 chats qui {{venez}} nous ennuyer tous les jours.
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 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é


10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349







10350
10351
10352
10353
10354
10355
10356
10340
10341
10342
10343
10344
10345
10346







10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360







-
-
-
-
-
-
-
+
+
+
+
+
+
+







__[i]/conj(conj_det_sing_nom_qui)__
    (?<![dD]’)(l[ea] |une? |l’|[mts](?:on|a) |ce(?:tte|t|) |leur ) *({w_2}) +qui +({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|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)__
    (?<![dD]’)(l[ea] |une? |l’|[mts](?:on|a) |ce(?:tte|t|) |leur |nul(?:le|) ) *({w_2}) +(?:qui +|)> +({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)__
#    (?<![dD]’)(l[ea] |une? |l’|[mts](?:on|a) |ce(?:tte|t|) |leur |nul(?:le|) ) *({w_2}) +(?:qui +|)> +({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.
TEST: Cette confusion qui {{donnent}} le tournis.
TEST: La Corée {{peux}} gagner.
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428




10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445

10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463





10464
10465
10466
10467
10468
10469
10470
10422
10423
10424
10425
10426
10427
10428




10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448

10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462





10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474







-
-
-
-
+
+
+
+
















-
+













-
-
-
-
-
+
+
+
+
+








## 3pl
__[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}}.


__[i]/conj(conj_ceux_celles_qui)__
    (ce(?:ux|lles) +qui) +({w_1})  @@0,$
    <<- morphex(\2, ":V", ":(?:3p|P|Q|G)")
    -2>> =suggVerb(@, ":3p")                                # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier.

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.
TEST: Mais parmi les millions de causes à défendre, lesquelles choisir ?


__[i]/conj(conj_elles)__
    (?<![dD]’)(elles) +({w_2})  @@0,$
    <<- morphex(\2, ":V", ":(?:3p|P|Q|G)") and not morph(word(-1), ":R", False, False) 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>> elle      # Accord avec « \2 ».
__[i]/conj(conj_elles_pronom)__
    (?<![dD]’)(elles) +> +({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)__
#    (?<![dD]’)(elles) +> +({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


# on / ont
10503
10504
10505
10506
10507
10508
10509
10510

10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535





10536
10537
10538
10539
10540
10541
10542
10507
10508
10509
10510
10511
10512
10513

10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534





10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546







-
+




















-
-
-
-
-
+
+
+
+
+







TEST: beaucoup {{vienne}}
TEST: d’aucuns {{pense}} que c’est faux
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)__
    (?<!de )(certaine?s|tou(?:te|)s|plusieurs) (?:qui +|)({w_2})  @@0,$
    (?<!de )(certaine?s|tou(?:te|)s|plusieurs) +(?:qui +|)({w_2})  @@0,$
    <<- morphex(\2, ":V", ":(?:G|N|A|3p|P|Q)") and not morph(word(-1), ":[VR]", False, False)
    -2>> =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.


__[i]/conj(conj_det_plur_nom)__
    ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +({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 ") ) >>>
    <<- not checkAgreement(\2, \3)
    -3>> =suggVerb(@, ":3p")                                # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel.
    <<- __else__ and isAmbiguousAndWrong(\2, \3, ":p", ":3p")
    -3>> =suggVerb(@, ":3p", suggPlur)                      # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
__[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.
TEST: vos questions ne {{réclame}} aucune réflexion.
TEST: le lien entre les agences de renseignement et ces mêmes entreprises pouvait reposer sur des activités de surveillance à proprement parler.
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566





10567
10568
10569
10570
10571
10572
10573
10559
10560
10561
10562
10563
10564
10565





10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577







-
-
-
-
-
+
+
+
+
+







    <<- __else__ and (\1 == "certaines" or \1 == "Certaines") and isVeryAmbiguousAndWrong(\2, \3, ":f:p", ":3p", isStart())
    -3>> =suggVerb(@, ":3p", suggFemPlur)                   # Accord avec « certaines \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
__[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.
TEST: les données, en quantité plus que suffisante, {{indique}} que…
TEST: Les hommes comme celui-là {{mange}} comme deux.
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608




10609
10610

10611
10612
10613
10614
10615
10616
10617
10602
10603
10604
10605
10606
10607
10608




10609
10610
10611
10612
10613

10614
10615
10616
10617
10618
10619
10620
10621







-
-
-
-
+
+
+
+

-
+









__[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.
TEST: des femmes qui {{conduise}} la marche du monde.

10724
10725
10726
10727
10728
10729
10730
10731
10732
10733



10734
10735
10736
10737
10738
10739
10740
10728
10729
10730
10731
10732
10733
10734



10735
10736
10737
10738
10739
10740
10741
10742
10743
10744







-
-
-
+
+
+







    (?:que?|où|comment|combien) +({w_1}[es])(?! je| tu) @@$
    <<- morphex(\1, ":[12][sp]", ":(?:G|W|3[sp]|Y|P|Q|N)") -1>> =suggVerb(@, ":3s")     # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne.

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)__
    (puisses?) ({w_2})  @@0,$
    <<- isStart() >>>
10750
10751
10752
10753
10754
10755
10756
10757
10758


10759
10760
10761
10762


10763
10764
10765
10766

10767
10768
10769
10770

10771
10772
10773
10774

10775
10776
10777
10778
10779

10780
10781
10782
10783
10784

10785
10786
10787
10788

10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800

10801
10802
10803
10804
10805
10806
10807
10754
10755
10756
10757
10758
10759
10760


10761
10762
10763
10764


10765
10766
10767
10768
10769

10770
10771
10772
10773

10774
10775
10776
10777

10778
10779
10780
10781


10782
10783
10784
10785


10786
10787
10788
10789

10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810







-
-
+
+


-
-
+
+



-
+



-
+



-
+



-
-
+



-
-
+



-
+












+







!!
!!
!!!! Formes interrogatives ?                                                                        
!!
!!

__[i]/inte(inte_union_xxxe_je)__
    (?<![jJ]’)({w_2}[éèe]) je(?! +[nmts]’)  @@0
    <<- morphex(\1, ":V.*:1[sŝś]", ":[GNW]") and not before(r"(?i)\bje +>? *$") and not morph(word(1), ":(?:Oo|X|1s)", False, False)
    (?<![jJ]’)({w_2}[éèe]) je  @@0
    <<- morphex(\1, ":V.*:1[sŝś]", ":[GNW]") and not before(r"(?i)\bje +$") and morphex(word(1), ":", ":(?:Oo|X|1s)", True)
    ->> =\1[:-1]+"é-je"                                                                             # Forme interrogative ? Mettez un trait d’union.
__[i]/inte(inte_union_xxx_je)__
    (?<![jJ]’)({w_2}[is]) je(?! +[nmts]’)  @@0
    <<- morphex(\1, ":V.*:1s", ":[GNW]") and not before(r"(?i)\b(?:je|tu) +>? *$") and not morph(word(1), ":(?:Oo|X|1s)", False, False)
    (?<![jJ]’)({w_2}[is]) je  @@0
    <<- morphex(\1, ":V.*:1s", ":[GNW]") and not before(r"(?i)\b(?:je|tu) +$") and morphex(word(1), ":", ":(?:Oo|X|1s)", True)
    ->> \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)__
    (?<!c’)({w_2}[td]) elle  @@0
    <<- not after("^ +(?:en|y|ne|aussi|>)") 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à ?
TEST: {{prend on}} le temps d’y réfléchir ?
TEST: {{vient elle}} souvent ?
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.
    <<- not morph(\1, ":V", False) -1>> =suggSimil(\1, ":1[sśŝ]")                                   # Forme interrogative : « \1 » n’est pas un verbe à la 1ʳᵉ personne du singulier.