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: trunk, fr
13:28
[fr] ajustements check-in: 797a2c98eb user: olr tags: trunk, fr
2021-02-25
08:44
[fr] ajustements check-in: d852ed55ce user: olr tags: trunk, fr
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
3390
3391
3392
3393
3394
3395
3396

3397
3398
3399
3400
3401
3402
3403
3404
3405
3406







-
+
+
+







    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]")
        <<- 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")
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
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468


8469
8470
8471
8472
8473
8474
8475
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
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480







-
+


-
+


-
+



-
+



-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+

+
-
+



















+
+









__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.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NADMG]", True)                        && Incohérence : après la préposition “\1”, on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() and not (value(<1, "|un|") and value(\1, "|à|contre|par|pour|"))
        <<- /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 \-1.istitle() and not (value(<1, "|une|") and value(\1, "|à|contre|par|pour|"))
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)               && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)               && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)               && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)               && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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 \-1.istitle() --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                    && Incohérence : après « \1 \2 », on devrait trouver un groupe nominal.
        <<- /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|Luis
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: par un {{bloque}} de donnée                                               ->> bloc
TEST: malgré leurs {{bloques}}                                                  ->> blocs
TEST: conçu par un {{employer}} très compétent                                  ->> employé
TEST: donne ça à ton {{employer}}                                               ->> employé|employée
TEST: en un {{emploie}} stable                                                  ->> emploi
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.

8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8513
8514
8515
8516
8517
8518
8519









8520
8521
8522
8523
8524
8525
8526







-
-
-
-
-
-
-
-
-







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.

25210
25211
25212
25213
25214
25215
25216
25217

25218
25219
25220
25221
25222
25223
25224
25206
25207
25208
25209
25210
25211
25212

25213
25214
25215
25216
25217
25218
25219
25220







-
+







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]
    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”.

25233
25234
25235
25236
25237
25238
25239

25240
25241
25242
25243
25244
25245
25246
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
25240
25241
25242
25243







+







        <<- /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.
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
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







-
-
-
+
+
+


-
-
-
+
+
+

-
-
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

-
-
-
+
+
+
+
+

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

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



-
+
-
-







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]"))
__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|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).
    [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).

    [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]"))
    [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

    [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).

__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).
TEST: avec ce fils et notre neveu {{arrogante}}                                     ->> arrogant|arrogants
TEST: le panneau et la paroi {{latéral}}.                                           ->> latérale|latéraux

    [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: la force et le talent {{reconnues}}                                           ->> reconnu|reconnus
TEST: la nation et la patrie {{menacés}}                                            ->> menacée|menacées
TEST: cet ami et l’animatrice {{parties}}                                           ->> partie|partis
TEST: cet homme et mon amie {{renvoyé}}                                             ->> renvoyée|renvoyés
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: 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: une sœur et un frère décédés
TEST: un frère 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__