Grammalecte  Check-in [797a2c98eb]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 797a2c98ebb286f936697e37f9099f045eaddc9d6dfa5a57a667f73106b967f2
User & Date: olr on 2021-02-27 13:28:42
Other Links: manifest | tags
Context
2021-02-27
17:37
[fr] ajustements check-in: 0371006820 user: olr tags: fr, trunk
13:28
[fr] ajustements check-in: 797a2c98eb user: olr tags: fr, trunk
2021-02-25
08:44
[fr] ajustements check-in: d852ed55ce user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [f6a7e1ce8a] to [441eb49200].

3390
3391
3392
3393
3394
3395
3396
3397


3398
3399
3400
3401
3402
3403
3404
....
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448

8449
8450
8451
8452
8453
8454
8455
8456
....
8462
8463
8464
8465
8466
8467
8468


8469
8470
8471
8472
8473
8474
8475
....
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
.....
25210
25211
25212
25213
25214
25215
25216
25217
25218
25219
25220
25221
25222
25223
25224
.....
25233
25234
25235
25236
25237
25238
25239

25240
25241
25242
25243
25244
25245
25246
.....
26066
26067
26068
26069
26070
26071
26072
26073
26074
26075
26076
26077
26078
26079
26080
26081
26082
26083
26084
26085












26086
26087
26088
26089































26090
26091
26092

26093


26094
26095
26096
26097


















































26098
26099
26100
26101
26102
26103
26104
26105
26106
26107
26108
26109
26110
    en tant que  *WORD
        <<- =>> select(\4, ":[NA]")

    la nuit
        <<- =>> select(\2, ":N")

    leurs @:[NA]¬:V0
        <<- not value(<1, "|je|tu|il|on|elle|iel|nous|vous|ils|elles|iels|") =>> select(\-1, ":[NA]")



    mon @:[NA]¬:V0
    mon [avoir|être]
        <<- =>> select(\-1, "", ":V")

    [ma|ta] @:[NA]¬:V0
        <<- =>> select(\-1, "", ":V")
................................................................................


__conf_préposition_det_verbe__
    [à|après|avant|par|pour|sans] [le|la|l’|leur|les] $:Y
        <<- !-1>> conf

    [chez|dès|malgré|parmi|selon] @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[DMO]")                                && Incohérence : après la préposition “\1”, on devrait trouver un groupe nominal.

    par @:V¬:[GNAWMBY]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NADMG]", True)                        && Incohérence : après la préposition “\1”, on devrait trouver un groupe nominal.

    [à|après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] un  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() and not (value(<1, "|un|") and value(\1, "|à|contre|par|pour|"))
        --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)                                            && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [à|après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] une  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() and not (value(<1, "|une|") and value(\1, "|à|contre|par|pour|"))
        --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)                                            && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] le  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)               && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] la  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)               && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] [l’|leur]  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] les  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [à|après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] leurs  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [à|après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] [son|ton]  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    en [un|le]  @:V¬:[GNAWMBP]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)               && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    en [une|la]  @:V¬:[GNAWMBP]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)               && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    en [l’|leur|son|ton]  @:V¬:[GNAWMBP]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    en [les|leurs]  @:V¬:[GNAWMBP]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.


TEST: chez {{luis}}                                                             ->> lui|Luis
TEST: malgré un {{employer}} peu dévoué                                         ->> employé
TEST: dès le {{commencent}}, j’ai vu le problème.                               ->> commençant
TEST: dès la {{posent}}                                                         ->> pause|pose
TEST: malgré l’{{arrête}} qui interdisait le port                               ->> arête
TEST: malgré les {{arrêtes}}                                                    ->> arêtes
TEST: par {{bloque}} de données                                                 ->> bloc|blocs
TEST: par une {{donnait}} sans importance                                       ->> donne|donnée
................................................................................
TEST: tu croyais en la {{cingler}}                                              ->> cinglée
TEST: en leur {{tarer}} de père                                                 ->> taré|tarée|tare
TEST: il faut croire en leurs {{ponds}}                                         ->> ponts
TEST: pour les insulter au sortir du seul troquet dispensateur d’oubli liquide du coin
TEST: ce peut être un matériau à part entière pour alimenter discussions et délibérations.
TEST: malgré les deux précédentes erreurs
TEST: en les prenant de haut




__conf_préverbes__
    ne n’
        <<- /conf/ not \1.isupper() and not (tag(\1, "eg1mot") and value(<1, "|pronom|"))
        ->> ne m’|n’                                                                                && Incohérence. Double négation.

................................................................................
TEST: ça {{te me}} donne la chair de poule.                                 ->> te|me
TEST: ça {{te n’}}arrive pas                                                ->> ne t’
TEST: ça {{te s’}}arrive pas                                                ->> te |s’
TEST: il {{se me}} peut que nous soyons sélectionnés                        ->> se|me
TEST: il {{se m’}}est difficile d’y parvenir.                               ->> se |m’
TEST: le pronom “se” ne devrait pas précéder l’adverbe “ne”.


__conf_chez_vconj__
    chez  @:(?:[123][sp]|P)¬:[GNAQM]
        <<- /conf/ not tag(\2, "_Maj_") -2>> _                                                      && Incohérence avec “chez” : “\2” est une forme verbale.

TEST: Tout ce qu’on fera chez {{sera}} enregistré.                          ->>
TEST: chez ACTIONS, rien ne va plus
TEST: chez Terra, tout va bien


__conf_de_plus_en_plus_verbe!2__
    de plus en plus  @:(?:[123][sp]|Y)¬:(?:[GAQWN]|3p)
        <<- /conf/ not morph(<1, ":V[123].*:[123][sp]|>(?:pouvoir|vouloir|falloir)/")
        -5>> =suggVerbPpas(\5)
        && Incohérence probable avec « de plus en plus » : « \5 » n’est ni un adjectif, ni un participe passé, ni un adverbe.

................................................................................
TEST: les agrandissements photo
TEST: Il faut donc examiner ensemble les panneaux et les parois latéraux.
TEST: Il faut donc examiner ensemble les panneaux et les parois latérales.
TEST: l’homme les a volés


__gn_les_2m_virg__
    calendriers ,  [grégorien|julien|hégirien] et [grégorien|julien|hégirien]
        <<- !3>> gn

    <start>  les  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[pi]", ":3[sp]") and not agreement(\3, \5)
            and not (value(>1, "|et|") and morph(\-1, "#G") and morph(>2, "#G"))
        --1>> =suggAgree(\-1, \3)                                                           && Cet adjectif n’est pas accordé avec “\2 \3”.

................................................................................
        <<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
        <<- /gn/ __also__ -1>> leur                                                         && Accord de nombre erroné avec « \2 ».

TEST: {{leurs}} {{action}}                                                      ->> leur|||actions
TEST: {{leur}} {{données}}                                                      ->> leurs|||donnée
TEST: {{leurs}} {{abricot}}                                                     ->> leur|||abricots



__gn_det_mas_plur_1m__
    [lesdits|desdits|auxdits]  *WORD
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : “\2” devrait être au pluriel.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:p", ":[mGW]") -2>> =suggMasPlur(\2)      && Accord de genre erroné avec “\1” : “\2” devrait être au masculin pluriel.
................................................................................
TEST: dans son 240 m2 lumineux, c’est la belle vie.
TEST: Une correction de +0.5 dioptrie.
TEST: zéro compassion
TEST: puis il y a entre 4 à 1 millions d’années sous une forme proche de la nôtre


##  det nom et det nom adj
__gn_det_nom_et_det_nom__
    [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]  *WORD  [et|ou]  [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[me]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]") and morph(\5, ":[NA].*:[me]:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggMasSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (masculin singulier ou pluriel).

    [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]  *WORD  [et|ou]  [la|l’|une|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:m:[si]") and morph(\5, ":[NA].*:f:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [la|l’|une|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  [et|ou]  [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[me]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:f:[si]") and morph(\5, ":[NA].*:m:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggMasSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (masculin singulier ou pluriel).













    [la|l’|une|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  [et|ou]  [la|l’|une|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:f:[si]") and morph(\5, ":[NA].*:f:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).
































TEST: avec ce fils et notre neveu {{arrogante}}                                     ->> arrogant|arrogants
TEST: le panneau et la paroi {{latéral}}.                                           ->> latérale|latéraux
TEST: Il faut donc examiner ensemble le panneau et la paroi {{latérales}}.          ->> latérale|latéraux

TEST: la force et le talent {{reconnues}}                                           ->> reconnu|reconnus


TEST: la nation et la patrie {{menacés}}                                            ->> menacée|menacées
TEST: un frère, une sœur et une tante perdus dans le désert
TEST: un frère et un frère décédés
TEST: l’intelligence et la force unies


















































TEST: un frère et une sœur réunis
TEST: un frère et une sœur divisés
TEST: un frère et une sœur décédée
TEST: une sœur et un frère décédés
TEST: une sœur et une sœur réunies
TEST: une nation avec une armée et une volonté a toutes les chances d’y parvenir
TEST: un crochet est sorti de la voiture et l’a ralentie
TEST: Alors l’époux et l’épouse manquant leur train et leur voyage de noces, reconduisirent l’éléphantesse au jardin zoologique.
TEST: Cela se traduit par le fameux modèle simplifié de tenaille identitaire, décliné à l’envi : l’islamisme d’un côté et l’extrême droite de l’autre.


##  trouver ça/ceci/cela + adj
__gn_trouver_ça_adj__







|
>
>







 







|


|


|



|



|


|


|


|


|


|


|


|


|


|

>
|







 







>
>







 







<
<
<
<
<
<
<
<
<







 







|







 







>







 







|
|
|


|
|
|

|
|


>
>
>
>
>
>
>
>
>
>
>
>
|
|


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
<
<
>
|
>
>
|
|
<

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



|
<
<







3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
....
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
....
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
....
8513
8514
8515
8516
8517
8518
8519









8520
8521
8522
8523
8524
8525
8526
.....
25206
25207
25208
25209
25210
25211
25212
25213
25214
25215
25216
25217
25218
25219
25220
.....
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
25240
25241
25242
25243
.....
26063
26064
26065
26066
26067
26068
26069
26070
26071
26072
26073
26074
26075
26076
26077
26078
26079
26080
26081
26082
26083
26084
26085
26086
26087
26088
26089
26090
26091
26092
26093
26094
26095
26096
26097
26098
26099
26100
26101
26102
26103
26104
26105
26106
26107
26108
26109
26110
26111
26112
26113
26114
26115
26116
26117
26118
26119
26120
26121
26122
26123
26124
26125
26126
26127
26128
26129
26130


26131
26132
26133
26134
26135
26136

26137
26138
26139
26140
26141
26142
26143
26144
26145
26146
26147
26148
26149
26150
26151
26152
26153
26154
26155
26156
26157
26158
26159
26160
26161
26162
26163
26164
26165
26166
26167
26168
26169
26170
26171
26172
26173
26174
26175
26176
26177
26178
26179
26180
26181
26182
26183
26184
26185
26186
26187
26188
26189
26190
26191


26192
26193
26194
26195
26196
26197
26198
    en tant que  *WORD
        <<- =>> select(\4, ":[NA]")

    la nuit
        <<- =>> select(\2, ":N")

    leurs @:[NA]¬:V0
        <<- not value(<1, "|je|tu|il|on|elle|iel|nous|vous|ils|elles|iels|")
            and not (value(<1, "|des|les|") and morph(\-1, ":G"))
        =>> select(\-1, ":[NA]")

    mon @:[NA]¬:V0
    mon [avoir|être]
        <<- =>> select(\-1, "", ":V")

    [ma|ta] @:[NA]¬:V0
        <<- =>> select(\-1, "", ":V")
................................................................................


__conf_préposition_det_verbe__
    [à|après|avant|par|pour|sans] [le|la|l’|leur|les] $:Y
        <<- !-1>> conf

    [chez|dès|malgré|parmi|selon] @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[DMO]")                            && Incohérence : après la préposition “\1”, on devrait trouver un groupe nominal.

    par @:V¬:[GNAWMBY]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NADMG]", True)                    && Incohérence : après la préposition “\1”, on devrait trouver un groupe nominal.

    [à|après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] un  @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") and not (value(<1, "|un|") and value(\1, "|à|contre|par|pour|"))
        --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)                                            && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [à|après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] une  @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") and not (value(<1, "|une|") and value(\1, "|à|contre|par|pour|"))
        --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)                                            && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] le  @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)           && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] la  @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)           && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] [l’|leur]  @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] les  @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [à|après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] leurs  @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    [à|après|avant|avec|par|pour|contre|sans|envers|chez|dès|malgré|selon|parmi] [son|ton]  @:V¬:[GNAWMB]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    en [un|le]  @:V¬:[GNAWMBP]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)           && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    en [une|la]  @:V¬:[GNAWMBP]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)           && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    en [l’|leur|son|ton]  @:V¬:[GNAWMBP]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

    en [les|leurs]  @:V¬:[GNAWMBP]
        <<- /conf/ not tag(\-1, "_Maj_") --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.

TEST: Tout ce qu’on fera chez {{sera}} enregistré.                              ->>
TEST: chez {{luis}}                                                             ->> lui|Louis|Luis
TEST: malgré un {{employer}} peu dévoué                                         ->> employé
TEST: dès le {{commencent}}, j’ai vu le problème.                               ->> commençant
TEST: dès la {{posent}}                                                         ->> pause|pose
TEST: malgré l’{{arrête}} qui interdisait le port                               ->> arête
TEST: malgré les {{arrêtes}}                                                    ->> arêtes
TEST: par {{bloque}} de données                                                 ->> bloc|blocs
TEST: par une {{donnait}} sans importance                                       ->> donne|donnée
................................................................................
TEST: tu croyais en la {{cingler}}                                              ->> cinglée
TEST: en leur {{tarer}} de père                                                 ->> taré|tarée|tare
TEST: il faut croire en leurs {{ponds}}                                         ->> ponts
TEST: pour les insulter au sortir du seul troquet dispensateur d’oubli liquide du coin
TEST: ce peut être un matériau à part entière pour alimenter discussions et délibérations.
TEST: malgré les deux précédentes erreurs
TEST: en les prenant de haut
TEST: chez ACTIONS, rien ne va plus
TEST: chez Terra, tout va bien


__conf_préverbes__
    ne n’
        <<- /conf/ not \1.isupper() and not (tag(\1, "eg1mot") and value(<1, "|pronom|"))
        ->> ne m’|n’                                                                                && Incohérence. Double négation.

................................................................................
TEST: ça {{te me}} donne la chair de poule.                                 ->> te|me
TEST: ça {{te n’}}arrive pas                                                ->> ne t’
TEST: ça {{te s’}}arrive pas                                                ->> te |s’
TEST: il {{se me}} peut que nous soyons sélectionnés                        ->> se|me
TEST: il {{se m’}}est difficile d’y parvenir.                               ->> se |m’
TEST: le pronom “se” ne devrait pas précéder l’adverbe “ne”.











__conf_de_plus_en_plus_verbe!2__
    de plus en plus  @:(?:[123][sp]|Y)¬:(?:[GAQWN]|3p)
        <<- /conf/ not morph(<1, ":V[123].*:[123][sp]|>(?:pouvoir|vouloir|falloir)/")
        -5>> =suggVerbPpas(\5)
        && Incohérence probable avec « de plus en plus » : « \5 » n’est ni un adjectif, ni un participe passé, ni un adverbe.

................................................................................
TEST: les agrandissements photo
TEST: Il faut donc examiner ensemble les panneaux et les parois latéraux.
TEST: Il faut donc examiner ensemble les panneaux et les parois latérales.
TEST: l’homme les a volés


__gn_les_2m_virg__
    calendriers  ,  [grégorien|julien|hégirien] et [grégorien|julien|hégirien]
        <<- !3>> gn

    <start>  les  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[pi]", ":3[sp]") and not agreement(\3, \5)
            and not (value(>1, "|et|") and morph(\-1, "#G") and morph(>2, "#G"))
        --1>> =suggAgree(\-1, \3)                                                           && Cet adjectif n’est pas accordé avec “\2 \3”.

................................................................................
        <<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
        <<- /gn/ __also__ -1>> leur                                                         && Accord de nombre erroné avec « \2 ».

TEST: {{leurs}} {{action}}                                                      ->> leur|||actions
TEST: {{leur}} {{données}}                                                      ->> leurs|||donnée
TEST: {{leurs}} {{abricot}}                                                     ->> leur|||abricots
TEST: comme mes parents et les leurs avant eux


__gn_det_mas_plur_1m__
    [lesdits|desdits|auxdits]  *WORD
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : “\2” devrait être au pluriel.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:p", ":[mGW]") -2>> =suggMasPlur(\2)      && Accord de genre erroné avec “\1” : “\2” devrait être au masculin pluriel.
................................................................................
TEST: dans son 240 m2 lumineux, c’est la belle vie.
TEST: Une correction de +0.5 dioptrie.
TEST: zéro compassion
TEST: puis il y a entre 4 à 1 millions d’années sous une forme proche de la nôtre


##  det nom et det nom adj
__gn_det_nom_mas_et_det_nom_mas__
    [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  [et|ou]  [le|un|ce|cet]  *WORD  @:A.*¬:(?:A.*:[me]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":V0") and morph(\5, ":[NA].*:[me]:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggMasSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (masculin singulier ou pluriel).

    [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  [et|ou]  [mon|ton|son]  *WORD  @:A.*¬:(?:A.*:[me]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":V0") and morph(\5, ":[NA].*:[me]:[si]", ":(?:>[aâeéèêiîoôuh].*:[ef]|V0|G)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggMasSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (masculin singulier ou pluriel).

    [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  [et|ou]  [l|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[me]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":V0") and morph(\5, ":[NA].*:m:[si]", ":(?:[fe]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggMasSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (masculin singulier ou pluriel).

TEST: avec ce fils et notre neveu {{arrogante}}                                     ->> arrogant|arrogants
TEST: la force et le talent {{reconnues}}                                           ->> reconnu|reconnus
TEST: ma haine et mon amour {{mêlée}}                                               ->> mêlé|mêlés
TEST: une sœur et un frère décédés
TEST: l’islamisme et l’extrême droite.


__gn_det_nom_fem_et_det_nom_fem__
    [la|une|cette|ma|ta|sa]  *WORD  [et|ou]  [la|une|cette|ma|ta|sa]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[fe]:[si]", ":V0") and morph(\5, ":[NA].*:[fe]:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

    [la|une|cette|ma|ta|sa]  *WORD  [et|ou]  [l|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[fe]:[si]", ":V0") and morph(\5, ":[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

    [la|une|cette|ma|ta|sa]  *WORD  [et|ou]  [mon|ton|son]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[fe]:[si]", ":V0") and morph(\5, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

    [l’|notre|votre|leur]  *WORD  [et|ou]  [la|une|cette|ma|ta|sa]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:f:[si]", ":(?:[me]|V0)") and morph(\5, ":[NA].*:[fe]:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

    [l’|notre|votre|leur]  *WORD  [et|ou]  [l’|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:f:[si]", ":(?:[me]|V0)") and morph(\5, ":[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

    [l’|notre|votre|leur]  *WORD  [et|ou]  [mon|ton|son]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:f:[si]", ":(?:[me]|V0)") and morph(\5, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

    [mon|ton|son]  *WORD  [et|ou]  [la|une|cette|ma|ta|sa]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and morph(\5, ":[NA].*:[fe]:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

    [mon|ton|son]  *WORD  [et|ou]  [l’|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and morph(\5, ":[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

    [mon|ton|son]  *WORD  [et|ou]  [mon|ton|son]  *WORD  @:A.*¬:(?:A.*:[fe]|3[sp]|P|G)
        <<- /gn/ morph(\2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and morph(\5, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggFemPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (féminin singulier ou pluriel).

TEST: la nation et la patrie {{menacés}}                                            ->> menacée|menacées
TEST: ma mère et notre passion {{inouïs}}                                           ->> inouïe|inouïes
TEST: cette femme et mon amie {{parti}} ensemble                                    ->> partie|parties
TEST: notre amie et cette femme {{partis}}                                          ->> partie|parties


TEST: votre mère et votre grand-mère {{réuni}}                                      ->> réunie|réunies
TEST: leur amie et mon amie {{retrouvés}}                                           ->> retrouvée|retrouvées
TEST: ton amie et ma mère {{réunis}}                                                ->> réunie|réunies
TEST: son amie et notre mère {{enrichis}}                                           ->> enrichie|enrichies
TEST: mon amie et son amie {{oubliés}}                                              ->> oubliée|oubliées
TEST: une sœur et une sœur réunies

TEST: l’intelligence et la force unies
TEST: une nation avec une armée et une volonté a toutes les chances d’y parvenir
TEST: un frère, une sœur et une tante perdus dans le désert


__gn_det_nom_mas_et_det_nom_fem__
    [le|un|ce|cet]  *WORD  [et|ou]  [la|une|cette|ma|ta|sa]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":V0") and morph(\5, ":[NA].*:[fe]:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [le|un|ce|cet]  *WORD  [et|ou]  [l’|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":V0") and morph(\5, ":[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [le|un|ce|cet]  *WORD  [et|ou]  [mon|ton|son]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":V0") and morph(\5, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [l’|notre|votre|leur]  *WORD  [et|ou]  [la|une|cette|ma|ta|sa]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":(?:[fe]|V0)") and morph(\5, ":[NA].*:[fe]:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [l’|notre|votre|leur]  *WORD  [et|ou]  [l’|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":(?:[fe]|V0)") and morph(\5, ":[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [l’|notre|votre|leur]  *WORD  [et|ou]  [mon|ton|son]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":(?:[fe]|V0)") and morph(\5, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [mon|ton|son]  *WORD  [et|ou]  [la|une|cette|ma|ta|sa]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":(?:>[aâeéèêiîoôuh].*:[ef]|V0|G)") and morph(\5, ":[NA].*:[fe]:[si]", ":V0") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [mon|ton|son]  *WORD  [et|ou]  [l’|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":(?:>[aâeéèêiîoôuh].*:[ef]|V0|G)") and morph(\5, ":[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

    [mon|ton|son]  *WORD  [et|ou]  [mon|ton|son]  *WORD  @:A.*¬:(?:A.*:(?:f:[si]|m:[pi]|e)|3[sp]|P|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":(?:>[aâeéèêiîoôuh].*:[ef]|V0|G)") and morph(\5, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":(?:[me]|V0)") and not (value(<1, "|,|de|d’|du|des|") and morph(<2, ":[NA]"))
        --1>> =suggFemSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” (féminin singulier) ou bien “\2” et “\5” (masculin pluriel).

TEST: Il faut donc examiner ensemble le panneau et la paroi {{latérales}}.          ->> latérale|latéraux
TEST: cet ami et l’animatrice {{parties}}                                           ->> partie|partis
TEST: cet homme et mon amie {{renvoyé}}                                             ->> renvoyée|renvoyés
TEST: notre père et la femme {{arrivé}} hier                                        ->> arrivée|arrivés
TEST: leur père et notre amie {{parti}} ensemble                                    ->> partie|partis
TEST: notre ami et ton ennemie {{réunies}}                                          ->> réunie|réunis
TEST: ton chien et sa maîtresse {{parti}}                                           ->> partie|partis
TEST: mon ami et notre mère {{renvoyées}}                                           ->> renvoyée|renvoyés
TEST: son époux et mon épouse {{parti}} ensemble                                    ->> partie|partis
TEST: un frère et une sœur réunis
TEST: un frère et une sœur divisés
TEST: un frère et une sœur décédée
TEST: un frère et un frère décédés


TEST: un crochet est sorti de la voiture et l’a ralentie
TEST: Alors l’époux et l’épouse manquant leur train et leur voyage de noces, reconduisirent l’éléphantesse au jardin zoologique.
TEST: Cela se traduit par le fameux modèle simplifié de tenaille identitaire, décliné à l’envi : l’islamisme d’un côté et l’extrême droite de l’autre.


##  trouver ça/ceci/cela + adj
__gn_trouver_ça_adj__