Grammalecte  Check-in [f831e2b562]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: f831e2b5621fc726338f5bad12c1d16ac5671969e2dec9337487340d3f226a3c
User & Date: olr on 2021-03-09 07:23:28
Other Links: manifest | tags
Context
2021-03-10
20:22
[fr] faux positif check-in: 0915b69239 user: olr tags: fr, trunk
2021-03-09
17:20
[misc] SublimeText syntaxic color check-in: 126b183b9d user: olr tags: misc, mtok
07:23
[fr] ajustements check-in: f831e2b562 user: olr tags: fr, trunk
2021-03-06
23:10
[fr] ajustements check-in: 199d498ccf user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [315bb40b66] to [16699b2371].

5978
5979
5980
5981
5982
5983
5984



5985
5986
5987
5988
5989
5990
5991
....
6136
6137
6138
6139
6140
6141
6142

6143
6144
6145
6146
6147
6148
6149
.....
18763
18764
18765
18766
18767
18768
18769


18770
18771
18772
18773
18774
18775
18776
.....
18866
18867
18868
18869
18870
18871
18872

18873
18874
18875
18876
18877
18878
18879

18880
18881
18882
18883
18884
18885
18886
.....
21058
21059
21060
21061
21062
21063
21064

21065
21066
21067
21068
21069
21070
21071
.....
24056
24057
24058
24059
24060
24061
24062
24063

24064
24065
24066
24067



24068
24069
24070
24071
24072
24073
24074
24075
24076
24077
24078
24079
24080

24081
24082
24083
24084
24085
24086
24087
.....
24370
24371
24372
24373
24374
24375
24376




24377
24378

24379
24380
24381


24382
24383
24384
24385
24386
24387
24388
.....
24509
24510
24511
24512
24513
24514
24515




24516
24517

24518
24519
24520





24521
24522
24523
24524
24525
24526
24527
.....
24631
24632
24633
24634
24635
24636
24637




24638
24639

24640
24641
24642



24643
24644
24645
24646
24647
24648
24649
.....
24723
24724
24725
24726
24727
24728
24729




24730
24731

24732
24733
24734


24735
24736
24737
24738
24739
24740
24741
.....
24926
24927
24928
24929
24930
24931
24932




24933
24934

24935
24936
24937


24938
24939
24940
24941
24942
24943
24944
.....
24962
24963
24964
24965
24966
24967
24968




24969
24970

24971
24972
24973


24974
24975
24976
24977
24978
24979
24980
.....
25082
25083
25084
25085
25086
25087
25088




25089
25090

25091
25092
25093


25094
25095
25096
25097
25098
25099
25100
.....
25159
25160
25161
25162
25163
25164
25165
25166
25167
25168
25169
25170
25171








25172
25173
25174
25175
25176
25177
25178
.....
25264
25265
25266
25267
25268
25269
25270




25271
25272

25273
25274
25275


25276
25277
25278
25279
25280
25281
25282
.....
25341
25342
25343
25344
25345
25346
25347




25348
25349

25350
25351
25352

25353
25354
25355
25356
25357
25358
25359
25360
.....
25470
25471
25472
25473
25474
25475
25476




25477
25478
25479


25480
25481
25482
25483


25484
25485
25486
25487
25488
25489
25490
.....
25635
25636
25637
25638
25639
25640
25641
25642
25643
25644
25645
25646
25647





25648
25649
25650
25651
25652
25653
25654
.....
25669
25670
25671
25672
25673
25674
25675




25676
25677

25678
25679
25680


25681
25682
25683
25684
25685
25686
25687
.....
25700
25701
25702
25703
25704
25705
25706
25707
25708
25709
25710
25711






25712
25713
25714
25715
25716
25717
25718
.....
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
.....
25760
25761
25762
25763
25764
25765
25766




25767
25768

25769
25770
25771
25772


25773
25774
25775
25776
25777
25778
25779
    déjà vu
        <<- /tu/ morph(<1, ":D.*:[me]") ->> \1-\2               && S’il s’agit d’un nom, mettez un trait d’union.|https://fr.wiktionary.org/wiki/d%C3%A9j%C3%A0-vu

    état major
    états majors
        <<- /tu/ ->> \1-\2                                      && Il manque un trait d’union.




    face [a|à] face
        <<- /tu/ morph(<1, ":D") ->> face-à-face                && Si vous employez cette locution comme un nom, mettez des traits d’union.|https://fr.wiktionary.org/wiki/face-%C3%A0-face

    [fier+s] [à|a] bras
        <<- /tu/ ->> \1-à-bras                                  && Il manque les traits d’union.|https://fr.wiktionary.org/wiki/fier-%C3%A0-bras

    gagne >pain
................................................................................
TEST: un {{compte goutte}}                                                      ->> compte-gouttes|comptes-gouttes
TEST: {{copié/coller}}                                                          ->> copier-coller|copié-collé|copiés-collés|copiée-collée|copiées-collées
TEST: encore un {{couvre feu}}                                                  ->> couvre-feu|couvre-feux
TEST: encore un {{cul de sac}}                                                  ->> cul-de-sac
TEST: Le {{moto club}} était sur le point de faire faillite.                    ->> motoclub|moto-club|club moto
TEST: J’ai beaucoup de {{déjà vu}}.                                             ->> déjà-vu
TEST: L’{{état major}} n’a pas encore tranché la question.                      ->> état-major

TEST: Le {{face à face}} entre les forces de l’ordre et les manifestants        ->> face-à-face
TEST: ces {{fiers à bras}} vont encore se prendre une raclée mémorable          ->> fiers-à-bras
TEST: {{gagne pain}} de merde                                                   ->> gagne-pain
TEST: perfusé par des {{goutte à goutte}}                                       ->> goutte-à-goutte
TEST: ces {{gratte ciel}}                                                       ->> gratte-ciel
TEST: un crime de {{lèse majesté}}                                              ->> lèse-majesté
TEST: pour {{la}} {{n ième}} fois                                               ->> le|||n-ième|n-ièmes
................................................................................
    >centre d’ éducation [populaire|surveillée]
    >centre [de|d’] rétention ?[préventive|administrative]¿
    >certificat [de|d’] [conformité|virginité]
    >certificat [de|d’] bonne conduite
    >certificat d’ études ?[primaires|secondaires|supérieures|spécialisées|musicales|théâtrales|bibliques|théologiques]¿
    >certificat [de|d’] scolarité ?[maternelle|primaire|secondaire]¿
    [>chaîne|>chaine] [de|d’] restauration rapide


    >chair à [pâté|>canon]
    >chair [de|d’] poule
    >chalet d’ alpage
    >chambre à [coucher|gaz]
    >chambre [de|d’] [agriculture|hôte|hôtel|hôtes|commerce|compensation|décompression|dégrisement]
    >champion du monde
    >chance [de|d’] [succès|réussite]
................................................................................
    >cuillère à [café|soupe]
    >cure [de|d’] [désintoxication|désintox]
    >danseur [de|d’] cabaret
    >date butoir
    >date d’ expiration
    >débat sans fin
    >déclaration sur l’ honneur

    >degré d’ arc
    >délai [de|d’] [attente|carence|connexion|prescription|préavis|rétraction|rigueur]
    >demande d’ asile
    >demandeur d’ [asile|emploi]
    >dépôt [de|d’] bilan
    >défaut [de|d’] paiement
    >descente aux [enfers|flambeaux]

    >dindon [de|d’] la farce
    dieu tout-puissant
    [>dîner|>diner] aux chandelles
    [>dîner|>diner] [de|d’] gala
    >discipline [de|d’] [acier|fer]
    >doigt [de|d’] fée
    >don en nature
................................................................................
TEST: Par-derrière, comme un chien : Et tout ça pour rien ! Et tout ça pour rien !
TEST: Il n’y avait plus qu’à faucher le blé noir, arracher les pommes de terre et gauler noix et châtaignes ; de ceci les gamins se chargeaient le jeudi et le dimanche, pour se distraire.
TEST: Les études révèlent un risque d’écrêtement du trafic ferroviaire dès 2025, lorsque la demande est la plus critique, c’est-à-dire le vendredi soir à l’heure de pointe.
TEST: Beaucoup de conciles émaneront des normes pour que soient nommés des curés idoines, qui soient vraiment au service de la paroisse, qui se distinguent par leur science et qui soient de vrais pasteurs au sein de la communauté de fidèles.
TEST: Les ailes de cet avion viennent de Grande-Bretagne.
TEST: La liberté passait sur le monde, l’internationale était sa voix criant par-dessus les frontières les revendications des déshérités.
TEST: La danse est d’ailleurs en ce sens salvatrice.




@@@@
@@@@
@@@@
@@@@
................................................................................
    il >être [tant|>tan] [de|d’] $:Y
        <<- /conf/ -3>> temps                                       && Confusion. Si vous voulez dire “c’est le moment de”, écrivez “temps”.|https://fr.wiktionary.org/wiki/il_est_temps

    >faire la pluie et le beau [tant|>tan]
    [>avoir|>prendre|<start>|,|(] du bon [tant|>tan]
    [>avoir|>prendre|<start>|,|(] la notion du [tant|>tan]
    c’ >être [le|l’] bon ?vieux¿ [tant|>tan]
    >prendre du [tant|>tan]

    au bon vieux [tant|>tan]
    combien [de|d’] [>tan|tant]
        <<- /conf/ --1>> temps                                      && Confusion probable. Pour parler d’une période, écrivez “temps”.|https://fr.wiktionary.org/wiki/temps




    les [tant|>tan] >changer
    les [tant|>tan] >avoir [changé+ses]
        <<- /conf/ -2>> temps                                       && Confusion probable. Pour parler d’une période, écrivez “temps”.|https://fr.wiktionary.org/wiki/temps

    >avoir temps [de|d’] @:N¬:V
        <<- /conf/ -2>> tant                                        && Confusion probable. Pour évoquer une grande quantité de quelque chose, écrivez “tant”.|https://fr.wiktionary.org/wiki/temps

TEST: il est bien évidemment {{tant}} d’en finir avec ça.           ->> temps
TEST: c’était le bon {{tan}}                                        ->> temps
TEST: elle sait prendre du bon {{tant}}                             ->> temps
TEST: les {{tans}} changent                                         ->> temps
TEST: les {{tant}} ont changé                                       ->> temps
TEST: elle avait {{temps}} de temps                                 ->> tant

TEST: il est temps de partir
TEST: elle a tant de jouets


# tort / tord / tore / torr / tors
__conf_tort_tord_tore__
    en [tord|tords] [<end>|,|)]
................................................................................
TEST: l’amour {{immortels}}                                                         ->> immortel
TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou.        ->> excellent|||
TEST: du chien et de l’étonnant {{colliers}} qu’il avait autour du cou.             ->> collier
TEST: elle prendra l’{{avions}} dès que possible                                    ->> avion


__gn_l_2m_virg__




    <start>  l’  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":3[sp]") and not agreement(\3, \5)

        --1>> =suggAgree(\5, \3)                                                                    && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: L’homme, {{blessés}} par deux fois                                            ->> blessé




__gn_l_3m__
    l’  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", "*") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
................................................................................
TEST: {{le}} gigantesque {{explosion}}                                                  ->> la|||
TEST: je ne sais jamais quoi faire et {{le}} gigantesque {{explosion}} n’a rien arrangé ->> la|||
TEST: si le premier film est un triomphe, le deuxième est un demi-succès, et le troisième une déception.
TEST: Cela aboutira sur une contractualisation coûteuse pour organiser cette divergence d’intérêts, et le gestionnaire aura le dernier mot.


__gn_le_2m_virg__




    <start>  le  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]", ":3[sp]") and not agreement(\3, \5)

        --1>> =suggMasSing(\-1)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: Le tyran, {{blessée}} par deux fois                                               ->> blessé







__gn_le_3m__
    le  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D")
            and morph(\2, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P)") and morph(\4, ":[NA].*:[fp]", "*") and \4.islower()
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
................................................................................
TEST: Il faut donc examiner ensemble le panneau et la paroi latérale.
TEST: Il faut donc examiner ensemble le panneau et la paroi latéraux.
TEST: Il faut donc examiner ensemble les panneaux et la paroi latéraux.
TEST: Il faut donc examiner ensemble les panneaux et la paroi latérale.


__gn_la_2m_virg__




    <start>  la  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]", ":3[sp]") and not agreement(\3, \5)

        --1>> =suggFemSing(\-1)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: La femme, {{blessées}} par deux fois                                                      ->> blessée



TEST: la petite, prenant le parti de son frère,


__gn_la_3m__
    la  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D")
            and morph(\2, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P)|;C") and morph(\4, ":[NA].*:[mp]", "*") and \4.islower()
................................................................................
TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous.      ->> insupportable
TEST: {{leur}} gros {{grains}}                                                  ->> leurs|||grain
TEST: Que ferons-nous de {{leur}} gros {{grains}}                               ->> leurs|||grain
TEST: 3 milliards d’euros que depuis 2012 l’État leur a volés


__gn_leur_2m_virg__




    <start>  leur  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":3[sp]") and not agreement(\3, \5)

        --1>> =suggAgree(\-1, \3)                                                           && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: Leur maître, {{blessés}} par deux fois                                    ->> blessé




__gn_leur_3m__
    leur  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", "*") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
................................................................................
TEST: que sais-tu d’un homme {{grande}} comme un arbre                                      ->> grand
TEST: je me souviens d’un homme {{arrogants}}                                               ->> arrogant
TEST: trois d’{{un}} quelconque {{élégance}}                                                ->> une|||
TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}.     ->> bancal


__gn_un_2m_virg__




    <start>  un  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]") and not agreement(\3, \5)

        --1>> =suggMasSing(\-1)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: un homme, {{blessés}} par deux fois                                       ->> blessé




__gn_une_2m__
    une  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                                 && Accord de genre erroné : le syntagme « \1 \2 » est féminin, « \3 » est masculin.
................................................................................
TEST: on parle d’une Église {{brûlées}}                                         ->> brûlée
TEST: {{une}} gigantesque {{porte-avions}}                                      ->> un|||
TEST: d’{{une}} titanesque {{opportunisme}}                                     ->> un|||
TEST: L’or allume le feu d’une cupidité d’une couleur et d’une sorte différentes.


__gn_une_2m_virg__




    <start>  une  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]") and not agreement(\3, \5)

        --1>> =suggFemSing(\-1)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: une femme, {{blessés}} par deux fois                                      ->> blessée




__gn_du_1m__
    du  @>(?:[bcçdfgjklmnpqrstvwxzBCÇDFGJKLMNPQRSTVWXZ]|[hH].*;é)
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de la                               && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.
................................................................................
TEST: cet outil {{terribles}} qu’il a dans les mains                            ->> terrible
TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle.               ->> gauchiste
TEST: au petit {{publique}}                                                     ->> public
TEST: Ils jugeront en toute impartialité de ce cas {{délirante}}.               ->> délirant


__gn_det_mas_sing_2m_virg__




    <start>  [ce|cet|quel|au|ledit|dudit|audit|aucun|nul]  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]") and not agreement(\3, \5)

        --1>> =suggMasSing(\-1)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: ce con, {{blessée}} par deux fois                                         ->> blessé




__gn_det_mas_sing_3m__
    [ledit|un|ce|cet|au|quel|audit|dudit|aucun|nul]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and morph(\2, ":[NA].*:[me]:[si]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:[pf]", "*") and \4.islower()
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.

................................................................................
TEST: on parlait de son escapade {{éperdu}} au milieu de la nuit.               ->> éperdue
TEST: ton étonnante {{secret}} ne sera pas au programme.                        ->> secrète
TEST: elle s’étonnait de ton opposition {{grandissantes}}                       ->> grandissante
TEST: le ton monte.


__gn_mon_ton_son_2m_virg__
    <start>  [mon|ton|son]  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[si]") and not agreement(\3, \5) >>>
        <<- /gn/ morph(\3, ">[bcçdfgjklmnpqrstvwxz].*:[NA].*:[me]:[si]")  --1>> =suggMasSing(\-1)   && Cet adjectif n’est pas accordé avec “\2 \3”.
        <<- /gn/ morph(\3, ">[aâeéèêiîoôuûyœæh]") --1>> =suggAgree(\-1, \3)                         && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: mon mari, {{blessée}} par deux fois                                       ->> blessé








TEST: ton âme, {{ébranlé}} par ces révélations                                  ->> ébranlée
TEST: son homme, {{stupéfaite}} par ces révélations                             ->> stupéfait


__gn_det_mon_ton_son_3m__
    [mon|ton|son]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() >>>
................................................................................
TEST: j’en ai assez de cette ville {{stressées}} en permanence.                 ->> stressée
TEST: Peut-on imaginer de plus {{beaux}} {{enfant}} ?                           ->> beau|||enfants
TEST: de ma grande {{ami}}                                                      ->> amie
TEST: il fut cette fois ulcéré de voir son entreprise une fois de plus ruinée par la malchance.


__gn_det_fem_sing_2m_virg__




    <start>  [ma|ta|sa|cette|quelle|ladite|aucune|nulle]  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]") and not agreement(\3, \5)

        --1>> =suggFemSing(\-1)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: cette femme, {{blessées}} par deux fois                                   ->> blessée




__gn_det_fem_sing_3m__
    [ladite|une|cette|ma|ta|sa|quelle|aucune|nulle]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and morph(\2, ":[NA].*:[fe]:[si]") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:[pm]", "*") and \4.islower()
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.

................................................................................
TEST: que faire de votre {{ennuyeuse}} {{avocat}}                               ->> ennuyeux|||avocate
TEST: de quelque cartable {{vides}}                                             ->> vide
TEST: de notre petit {{amis}}                                                   ->> ami
TEST: Quelque chose tombé dans le puits a souillé l’eau.


__gn_det_epi_sing_2m_virg__




    <start>  [chaque|quelque|notre|votre]  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[si]") and not agreement(\3, \5)

        --1>> =suggAgree(\-1, \3)                                                           && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: votre femme, {{blessés}} par deux fois                                    ->> blessée

TEST: chaque homme, {{blessées}} par deux fois                                  ->> blessé


__gn_det_epi_sing_3m__
    [chaque|quelque|notre|votre]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":[fe]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
................................................................................
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")) or (morph(\-1, ";C") and morph(>2, ";C")) ) )


        --1>> =suggAgree(\-1, \3)                                                           && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: les femmes, {{blessé}} par deux fois                                      ->> blessées
TEST: les hommes, {{blessée}} par deux fois                                     ->> blessés


TEST: les femmes, demeurant rue de la paix
TEST: les deux camps, italien et allemand, étaient à portée d’arc
TEST: les deux soleils, noir et blanc, constituaient un symbole marquant


__gn_leurs_1m__
    leurs  *WORD
................................................................................
TEST: Une des pierres veinée de rouge…
TEST: Pour maintenir le potentiel de membrane qui lui permet de communiquer avec ses voisins sous forme d’influx nerveux, un neurone a besoin d’énergie.
TEST: ces religieux inflexibles envers les femmes mais compatissants envers les tyrans qui soutiennent leur religion.
TEST: le bruit de nos pas étouffé par l’épais tapis.


__gn_det_epi_plur_2m_virg__
    <start>  [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult]  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and not agreement(\3, \5)
        --1>> =suggAgree(\-1, \3)                                                           && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: nos femmes, {{blessé}} par deux fois                                      ->> blessées
TEST: vos hommes, {{blessée}} par deux fois                                     ->> blessés





TEST: ces personnes, méprisant le danger, furent blessées


__gn_det_mas_plur_2m__
    [certains|maints|quels|lesdits|desdits|auxdits]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
................................................................................
TEST: quels hommes {{grandes}}                                                              ->> grands
TEST: elle se rappelle de quels rapports {{désastreuses}} il s’agit.                        ->> désastreux
TEST: de quels grands {{fou}} s’agit-il ?                                                   ->> fous
TEST: chez certains la revue Limite provoque des crises d’hystérie.


__gn_det_mas_plur_2m_virg__




    <start>  [certains|maints|quels|lesdits|desdits|auxdits]  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[me]:[pi]") and not agreement(\3, \5)

        --1>> =suggMasPlur(\-1)                                                             && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: maints hommes, {{blessée}} par deux fois                                              ->> blessés




__gn_det_fem_plur_2m__
    [certaines|maintes|quelles|lesdites|desdites|auxdites]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemPlur(\3, True)                                                         && Accord de genre erroné : « \2 » est féminin, « \3 » est masculin.
................................................................................
TEST: quelles grandes {{idiots}}                                                            ->> idiotes
TEST: je ne sais guère de quelles âneries {{proférés}} on parle.                            ->> proférées
TEST: quelles étonnantes {{petits}}                                                         ->> petites
TEST: ici ou auxdites lointaines {{contrée}}                                                ->> contrées


__gn_det_fem_plur_2m_virg__
    <start>  [certaines|maintes|quelles|lesdites|desdites|auxdites]  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[pi]") and not agreement(\3, \5)
        --1>> =suggFemPlur(\-1)                                                             && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: certaines femmes, {{blessé}} par deux fois                                            ->> blessées








__gn_nombre_plur_2m__
    @:B:.:p  *WORD  *WORD
        <<- /gn/ not morph(<1, ">(?:et|ou)/|:R") and not morph(\3, ">(?:seul|minimum|maximum)/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
................................................................................

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

TEST: deux femmes, {{blessé}} par deux fois                                                 ->> blessées
TEST: trois hommes, {{blessée}} par deux fois                                               ->> blessés


__gn_des_2m__
    des  *WORD  *WORD
        <<- /gn/ (morph(<1, ":(?:[VRBXÉ]|Cs)|>comme/|<start>|>[(,]", "*") or morph(\3, ":N", ":[AQ]")) and not morph(\3, ">(?:seul|minimum|maximum)/") >>>
        <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné avec « \2 ».
................................................................................
TEST: Des peines à peine {{croyable}}.                                                      ->> croyables
TEST: Des {{chambres}} plus ou moins fortement {{éclairé}}.                                 ->> chambrés|||éclairées
TEST: Les couleurs rouge, jaune et verte ne doivent pas être utilisées
TEST: des passeports américain, canadien, néerlandais, allemand et britannique.


__gn_des_2m_virg__




    <start>  des  *WORD  ,  @:A¬:[GP]
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and not agreement(\3, \5)

        --1>> =suggAgree(\-1, \3)                                                                   && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: des femmes, {{blessé}} par deux fois                                                  ->> blessées
TEST: des hommes, {{blessée}} par deux fois                                                 ->> blessés




__gn_plusieurs_1m__
    plusieurs  *WORD
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGWP]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.








>
>
>







 







>







 







>
>







 







>





<

>







 







>







 







|
>




>
>
>













>







 







>
>
>
>
|

>
|

<
>
>







 







>
>
>
>
|
|
>
|

<
>
>
>
>
>







 







>
>
>
>
|
|
>
|

<
>
>
>







 







>
>
>
>
|

>
|

<
>
>







 







>
>
>
>
|
|
>
|

<
>
>







 







>
>
>
>
|
|
>
|

<
>
>







 







>
>
>
>
|

>
|

<
>
>







 







|

|
|

|
>
>
>
>
>
>
>
>







 







>
>
>
>
|

>
|

<
>
>







 







>
>
>
>
|

>
|

<
>
|







 







>
>
>
>
|

<
>
>
|

<
<
>
>







 







|

|

|
|
>
>
>
>
>







 







>
>
>
>
|

>
|

<
>
>







 







|

|

|
>
>
>
>
>
>







 







|







 







>
>
>
>
|

>
|

<
<
>
>







5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
....
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
.....
18767
18768
18769
18770
18771
18772
18773
18774
18775
18776
18777
18778
18779
18780
18781
18782
.....
18872
18873
18874
18875
18876
18877
18878
18879
18880
18881
18882
18883
18884

18885
18886
18887
18888
18889
18890
18891
18892
18893
.....
21065
21066
21067
21068
21069
21070
21071
21072
21073
21074
21075
21076
21077
21078
21079
.....
24064
24065
24066
24067
24068
24069
24070
24071
24072
24073
24074
24075
24076
24077
24078
24079
24080
24081
24082
24083
24084
24085
24086
24087
24088
24089
24090
24091
24092
24093
24094
24095
24096
24097
24098
24099
24100
.....
24383
24384
24385
24386
24387
24388
24389
24390
24391
24392
24393
24394
24395
24396
24397
24398

24399
24400
24401
24402
24403
24404
24405
24406
24407
.....
24528
24529
24530
24531
24532
24533
24534
24535
24536
24537
24538
24539
24540
24541
24542
24543

24544
24545
24546
24547
24548
24549
24550
24551
24552
24553
24554
24555
.....
24659
24660
24661
24662
24663
24664
24665
24666
24667
24668
24669
24670
24671
24672
24673
24674

24675
24676
24677
24678
24679
24680
24681
24682
24683
24684
.....
24758
24759
24760
24761
24762
24763
24764
24765
24766
24767
24768
24769
24770
24771
24772
24773

24774
24775
24776
24777
24778
24779
24780
24781
24782
.....
24967
24968
24969
24970
24971
24972
24973
24974
24975
24976
24977
24978
24979
24980
24981
24982

24983
24984
24985
24986
24987
24988
24989
24990
24991
.....
25009
25010
25011
25012
25013
25014
25015
25016
25017
25018
25019
25020
25021
25022
25023
25024

25025
25026
25027
25028
25029
25030
25031
25032
25033
.....
25135
25136
25137
25138
25139
25140
25141
25142
25143
25144
25145
25146
25147
25148
25149
25150

25151
25152
25153
25154
25155
25156
25157
25158
25159
.....
25218
25219
25220
25221
25222
25223
25224
25225
25226
25227
25228
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
25240
25241
25242
25243
25244
25245
.....
25331
25332
25333
25334
25335
25336
25337
25338
25339
25340
25341
25342
25343
25344
25345
25346

25347
25348
25349
25350
25351
25352
25353
25354
25355
.....
25414
25415
25416
25417
25418
25419
25420
25421
25422
25423
25424
25425
25426
25427
25428
25429

25430
25431
25432
25433
25434
25435
25436
25437
25438
.....
25548
25549
25550
25551
25552
25553
25554
25555
25556
25557
25558
25559
25560

25561
25562
25563
25564


25565
25566
25567
25568
25569
25570
25571
25572
25573
.....
25718
25719
25720
25721
25722
25723
25724
25725
25726
25727
25728
25729
25730
25731
25732
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
.....
25757
25758
25759
25760
25761
25762
25763
25764
25765
25766
25767
25768
25769
25770
25771
25772

25773
25774
25775
25776
25777
25778
25779
25780
25781
.....
25794
25795
25796
25797
25798
25799
25800
25801
25802
25803
25804
25805
25806
25807
25808
25809
25810
25811
25812
25813
25814
25815
25816
25817
25818
.....
25833
25834
25835
25836
25837
25838
25839
25840
25841
25842
25843
25844
25845
25846
25847
.....
25860
25861
25862
25863
25864
25865
25866
25867
25868
25869
25870
25871
25872
25873
25874
25875


25876
25877
25878
25879
25880
25881
25882
25883
25884
    déjà vu
        <<- /tu/ morph(<1, ":D.*:[me]") ->> \1-\2               && S’il s’agit d’un nom, mettez un trait d’union.|https://fr.wiktionary.org/wiki/d%C3%A9j%C3%A0-vu

    état major
    états majors
        <<- /tu/ ->> \1-\2                                      && Il manque un trait d’union.

    >fac [similé+ses]
        <<- /tu/ ->> fac-similé|fac-similés                     && Il manque un trait d’union.

    face [a|à] face
        <<- /tu/ morph(<1, ":D") ->> face-à-face                && Si vous employez cette locution comme un nom, mettez des traits d’union.|https://fr.wiktionary.org/wiki/face-%C3%A0-face

    [fier+s] [à|a] bras
        <<- /tu/ ->> \1-à-bras                                  && Il manque les traits d’union.|https://fr.wiktionary.org/wiki/fier-%C3%A0-bras

    gagne >pain
................................................................................
TEST: un {{compte goutte}}                                                      ->> compte-gouttes|comptes-gouttes
TEST: {{copié/coller}}                                                          ->> copier-coller|copié-collé|copiés-collés|copiée-collée|copiées-collées
TEST: encore un {{couvre feu}}                                                  ->> couvre-feu|couvre-feux
TEST: encore un {{cul de sac}}                                                  ->> cul-de-sac
TEST: Le {{moto club}} était sur le point de faire faillite.                    ->> motoclub|moto-club|club moto
TEST: J’ai beaucoup de {{déjà vu}}.                                             ->> déjà-vu
TEST: L’{{état major}} n’a pas encore tranché la question.                      ->> état-major
TEST: des {{facs similés}}                                                      ->> fac-similé|fac-similés
TEST: Le {{face à face}} entre les forces de l’ordre et les manifestants        ->> face-à-face
TEST: ces {{fiers à bras}} vont encore se prendre une raclée mémorable          ->> fiers-à-bras
TEST: {{gagne pain}} de merde                                                   ->> gagne-pain
TEST: perfusé par des {{goutte à goutte}}                                       ->> goutte-à-goutte
TEST: ces {{gratte ciel}}                                                       ->> gratte-ciel
TEST: un crime de {{lèse majesté}}                                              ->> lèse-majesté
TEST: pour {{la}} {{n ième}} fois                                               ->> le|||n-ième|n-ièmes
................................................................................
    >centre d’ éducation [populaire|surveillée]
    >centre [de|d’] rétention ?[préventive|administrative]¿
    >certificat [de|d’] [conformité|virginité]
    >certificat [de|d’] bonne conduite
    >certificat d’ études ?[primaires|secondaires|supérieures|spécialisées|musicales|théâtrales|bibliques|théologiques]¿
    >certificat [de|d’] scolarité ?[maternelle|primaire|secondaire]¿
    [>chaîne|>chaine] [de|d’] restauration rapide
    [>chaîne|>chaine] d’ [>information|>info]
    [>chaîne|>chaine] d’ [>information|>info] en continu
    >chair à [pâté|>canon]
    >chair [de|d’] poule
    >chalet d’ alpage
    >chambre à [coucher|gaz]
    >chambre [de|d’] [agriculture|hôte|hôtel|hôtes|commerce|compensation|décompression|dégrisement]
    >champion du monde
    >chance [de|d’] [succès|réussite]
................................................................................
    >cuillère à [café|soupe]
    >cure [de|d’] [désintoxication|désintox]
    >danseur [de|d’] cabaret
    >date butoir
    >date d’ expiration
    >débat sans fin
    >déclaration sur l’ honneur
    >défaut [de|d’] paiement
    >degré d’ arc
    >délai [de|d’] [attente|carence|connexion|prescription|préavis|rétraction|rigueur]
    >demande d’ asile
    >demandeur d’ [asile|emploi]
    >dépôt [de|d’] bilan

    >descente aux [enfers|flambeaux]
    >détournement de fonds ?[publics|privés]¿
    >dindon [de|d’] la farce
    dieu tout-puissant
    [>dîner|>diner] aux chandelles
    [>dîner|>diner] [de|d’] gala
    >discipline [de|d’] [acier|fer]
    >doigt [de|d’] fée
    >don en nature
................................................................................
TEST: Par-derrière, comme un chien : Et tout ça pour rien ! Et tout ça pour rien !
TEST: Il n’y avait plus qu’à faucher le blé noir, arracher les pommes de terre et gauler noix et châtaignes ; de ceci les gamins se chargeaient le jeudi et le dimanche, pour se distraire.
TEST: Les études révèlent un risque d’écrêtement du trafic ferroviaire dès 2025, lorsque la demande est la plus critique, c’est-à-dire le vendredi soir à l’heure de pointe.
TEST: Beaucoup de conciles émaneront des normes pour que soient nommés des curés idoines, qui soient vraiment au service de la paroisse, qui se distinguent par leur science et qui soient de vrais pasteurs au sein de la communauté de fidèles.
TEST: Les ailes de cet avion viennent de Grande-Bretagne.
TEST: La liberté passait sur le monde, l’internationale était sa voix criant par-dessus les frontières les revendications des déshérités.
TEST: La danse est d’ailleurs en ce sens salvatrice.
TEST: La gauche a fait main basse sur la plupart des villes vaudoises, les Verts bondissent aux législatifs.



@@@@
@@@@
@@@@
@@@@
................................................................................
    il >être [tant|>tan] [de|d’] $:Y
        <<- /conf/ -3>> temps                                       && Confusion. Si vous voulez dire “c’est le moment de”, écrivez “temps”.|https://fr.wiktionary.org/wiki/il_est_temps

    >faire la pluie et le beau [tant|>tan]
    [>avoir|>prendre|<start>|,|(] du bon [tant|>tan]
    [>avoir|>prendre|<start>|,|(] la notion du [tant|>tan]
    c’ >être [le|l’] bon ?vieux¿ [tant|>tan]
    >prendre du ?bon¿ [tant|>tan]
    >prendre [mon|ton|son|notre|votre|leur] >tan
    au bon vieux [tant|>tan]
    combien [de|d’] [>tan|tant]
        <<- /conf/ --1>> temps                                      && Confusion probable. Pour parler d’une période, écrivez “temps”.|https://fr.wiktionary.org/wiki/temps

    >prendre [mon|ton|son|notre|votre|leur] tant
        <<- /conf/ not morph(>1, ":[AW]") --1>> temps               && Confusion probable. Pour parler d’une période, écrivez “temps”.|https://fr.wiktionary.org/wiki/temps

    les [tant|>tan] >changer
    les [tant|>tan] >avoir [changé+ses]
        <<- /conf/ -2>> temps                                       && Confusion probable. Pour parler d’une période, écrivez “temps”.|https://fr.wiktionary.org/wiki/temps

    >avoir temps [de|d’] @:N¬:V
        <<- /conf/ -2>> tant                                        && Confusion probable. Pour évoquer une grande quantité de quelque chose, écrivez “tant”.|https://fr.wiktionary.org/wiki/temps

TEST: il est bien évidemment {{tant}} d’en finir avec ça.           ->> temps
TEST: c’était le bon {{tan}}                                        ->> temps
TEST: elle sait prendre du bon {{tant}}                             ->> temps
TEST: les {{tans}} changent                                         ->> temps
TEST: les {{tant}} ont changé                                       ->> temps
TEST: elle avait {{temps}} de temps                                 ->> tant
TEST: surtout, prends ton {{tant}}                                  ->> temps
TEST: il est temps de partir
TEST: elle a tant de jouets


# tort / tord / tore / torr / tors
__conf_tort_tord_tore__
    en [tord|tords] [<end>|,|)]
................................................................................
TEST: l’amour {{immortels}}                                                         ->> immortel
TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou.        ->> excellent|||
TEST: du chien et de l’étonnant {{colliers}} qu’il avait autour du cou.             ->> collier
TEST: elle prendra l’{{avions}} dès que possible                                    ->> avion


__gn_l_2m_virg__
    <start>  l’  *WORD  ,  @:A¬:[GP]  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":3[sp]") and not agreement(\3, \5)
        -5>> =suggAgree(\5, \3)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

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


TEST: l’émotion, {{grand}} l’été, petite l’hiver                                    ->> grande
TEST: L’homme, {{blessés}} dans son orgueil                                         ->> blessé


__gn_l_3m__
    l’  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", "*") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
................................................................................
TEST: {{le}} gigantesque {{explosion}}                                                  ->> la|||
TEST: je ne sais jamais quoi faire et {{le}} gigantesque {{explosion}} n’a rien arrangé ->> la|||
TEST: si le premier film est un triomphe, le deuxième est un demi-succès, et le troisième une déception.
TEST: Cela aboutira sur une contractualisation coûteuse pour organiser cette divergence d’intérêts, et le gestionnaire aura le dernier mot.


__gn_le_2m_virg__
    <start>  le  *WORD  ,  @:A¬:(?:[GP]|A.*:[me]:[si])  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]", ":3[sp]")
        -5>> =suggMasSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  le  *WORD  ,  @:A¬:(?:[GP]|A.*:[me]:[si])  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]", ":3[sp]")
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggMasSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.


TEST: le tyran, {{remerciée}}…                                                          ->> remercié
TEST: Le tyran, {{blessée}} dans son orgueil                                            ->> blessé
TEST: le Sénégal, nation d’Afrique
TEST: le Luxembourg, paradis fiscal
TEST: Le Brésil, grande nation d’Amérique du Sud


__gn_le_3m__
    le  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D")
            and morph(\2, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P)") and morph(\4, ":[NA].*:[fp]", "*") and \4.islower()
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
................................................................................
TEST: Il faut donc examiner ensemble le panneau et la paroi latérale.
TEST: Il faut donc examiner ensemble le panneau et la paroi latéraux.
TEST: Il faut donc examiner ensemble les panneaux et la paroi latéraux.
TEST: Il faut donc examiner ensemble les panneaux et la paroi latérale.


__gn_la_2m_virg__
    <start>  la  *WORD  ,  @:A¬:(?:[GP]|A.*:[fe]:[si])  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]", ":3[sp]")
        -5>> =suggFemSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  la  *WORD  ,  @:A¬:(?:[GP]|A.*:[fe]:[si])  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]", ":3[sp]")
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggFemSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.


TEST: la petite, réellement {{oublié}}                                                          ->> oubliée
TEST: La femme, {{blessées}} dans son orgueil                                                   ->> blessée
TEST: La France, petit état
TEST: la petite, prenant le parti de son frère,


__gn_la_3m__
    la  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D")
            and morph(\2, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P)|;C") and morph(\4, ":[NA].*:[mp]", "*") and \4.islower()
................................................................................
TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous.      ->> insupportable
TEST: {{leur}} gros {{grains}}                                                  ->> leurs|||grain
TEST: Que ferons-nous de {{leur}} gros {{grains}}                               ->> leurs|||grain
TEST: 3 milliards d’euros que depuis 2012 l’État leur a volés


__gn_leur_2m_virg__
    <start>  leur  *WORD  ,  @:A¬:[GP]  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":3[sp]") and not agreement(\3, \5)
        -5>> =suggAgree(\5, \3)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

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


TEST: leur passion, souvent {{assouvi}}                                         ->> assouvie
TEST: Leur maître, {{blessés}} dans son orgueil                                 ->> blessé


__gn_leur_3m__
    leur  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", "*") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
................................................................................
TEST: que sais-tu d’un homme {{grande}} comme un arbre                                      ->> grand
TEST: je me souviens d’un homme {{arrogants}}                                               ->> arrogant
TEST: trois d’{{un}} quelconque {{élégance}}                                                ->> une|||
TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}.     ->> bancal


__gn_un_2m_virg__
    <start>  un  *WORD  ,  @:A¬:(?:[GP]|A.*:[me]:[si])  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]")
        -5>> =suggMasSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  un  *WORD  ,  @:A¬:(?:[GP]|A.*:[me]:[si])  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]")
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggMasSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.


TEST: un gros, toujours {{fâchée}}                                              ->> fâché
TEST: un homme, {{blessés}} par son frère                                       ->> blessé


__gn_une_2m__
    une  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                                 && Accord de genre erroné : le syntagme « \1 \2 » est féminin, « \3 » est masculin.
................................................................................
TEST: on parle d’une Église {{brûlées}}                                         ->> brûlée
TEST: {{une}} gigantesque {{porte-avions}}                                      ->> un|||
TEST: d’{{une}} titanesque {{opportunisme}}                                     ->> un|||
TEST: L’or allume le feu d’une cupidité d’une couleur et d’une sorte différentes.


__gn_une_2m_virg__
    <start>  une  *WORD  ,  @:A¬:(?:[GP]|A.*:[fe]:[si])  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]")
        -5>> =suggFemSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  une  *WORD  ,  @:A¬:(?:[GP]|A.*:[fe]:[si])  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]")
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggFemSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.


TEST: une écolo, souvent {{inquiété}}                                           ->> inquiétée
TEST: une femme, {{blessés}} dans son orgueil                                   ->> blessée


__gn_du_1m__
    du  @>(?:[bcçdfgjklmnpqrstvwxzBCÇDFGJKLMNPQRSTVWXZ]|[hH].*;é)
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de la                               && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.
................................................................................
TEST: cet outil {{terribles}} qu’il a dans les mains                            ->> terrible
TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle.               ->> gauchiste
TEST: au petit {{publique}}                                                     ->> public
TEST: Ils jugeront en toute impartialité de ce cas {{délirante}}.               ->> délirant


__gn_det_mas_sing_2m_virg__
    <start>  [ce|cet|quel|au|ledit|dudit|audit|aucun|nul]  *WORD  ,  @:A¬:(?:[GP]|A.*:[me]:[si])  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]") and not agreement(\3, \5)
        -5>> =suggMasSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  [ce|cet|quel|au|ledit|dudit|audit|aucun|nul]  *WORD  ,  @:A¬:(?:[GP]|A.*:[me]:[si])  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[me]:[si]") and not agreement(\3, \5)
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggMasSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.


TEST: ledit crétin, encore une fois {{harcelés}}                                ->> harcelé
TEST: ce con, {{blessée}} dans son orgueil                                      ->> blessé


__gn_det_mas_sing_3m__
    [ledit|un|ce|cet|au|quel|audit|dudit|aucun|nul]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and morph(\2, ":[NA].*:[me]:[si]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:[pf]", "*") and \4.islower()
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.

................................................................................
TEST: on parlait de son escapade {{éperdu}} au milieu de la nuit.               ->> éperdue
TEST: ton étonnante {{secret}} ne sera pas au programme.                        ->> secrète
TEST: elle s’étonnait de ton opposition {{grandissantes}}                       ->> grandissante
TEST: le ton monte.


__gn_mon_ton_son_2m_virg__
    <start>  [mon|ton|son]  *WORD  ,  @:A¬:[GP]  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[si]") and not agreement(\3, \5) >>>
        <<- /gn/ morph(\3, ">[bcçdfgjklmnpqrstvwxz].*:[NA].*:[me]:[si]")  -5>> =suggMasSing(\5)     && Cet adjectif n’est pas accordé avec “\2 \3”.
        <<- /gn/ morph(\3, ">[aâeéèêiîoôuûyœæh]") -5>> =suggAgree(\5, \3)                           && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  [mon|ton|son]  *WORD  ,  @:A¬:[GP]  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[si]") and not agreement(\3, \5) and not ( morph(\-1, ":N") and agreement(\-2, \-1) ) >>>
        <<- /gn/ morph(\3, ">[bcçdfgjklmnpqrstvwxz].*:[NA].*:[me]:[si]")  -5>> =suggMasSing(\5)     && Cet adjectif n’est pas accordé avec “\2 \3”.
        <<- /gn/ morph(\3, ">[aâeéèêiîoôuûyœæh]") -5>> =suggAgree(\5, \3)                           && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: mon mari, {{blessée}}                                                     ->> blessé
TEST: ton âme, {{ébranlé}}                                                      ->> ébranlée
TEST: son homme, {{stupéfaite}}                                                 ->> stupéfait
TEST: mon mari, {{blessée}} dans son orgueil                                    ->> blessé
TEST: ton âme, {{ébranlé}} par ces révélations                                  ->> ébranlée
TEST: son homme, {{stupéfaite}} par ces révélations                             ->> stupéfait


__gn_det_mon_ton_son_3m__
    [mon|ton|son]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() >>>
................................................................................
TEST: j’en ai assez de cette ville {{stressées}} en permanence.                 ->> stressée
TEST: Peut-on imaginer de plus {{beaux}} {{enfant}} ?                           ->> beau|||enfants
TEST: de ma grande {{ami}}                                                      ->> amie
TEST: il fut cette fois ulcéré de voir son entreprise une fois de plus ruinée par la malchance.


__gn_det_fem_sing_2m_virg__
    <start>  [ma|ta|sa|cette|quelle|ladite|aucune|nulle]  *WORD  ,  @:A¬:(?:[GP]|A.*:[fe]:[si])  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]") and not agreement(\3, \5)
        -5>> =suggFemSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  [ma|ta|sa|cette|quelle|ladite|aucune|nulle]  *WORD  ,  @:A¬:(?:[GP]|A.*:[fe]:[si])  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]") and not agreement(\3, \5)
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggFemSing(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.


TEST: cette femme, {{blessé}}                                                   ->> blessée
TEST: cette femme, {{blessées}} dans son orgueil                                ->> blessée


__gn_det_fem_sing_3m__
    [ladite|une|cette|ma|ta|sa|quelle|aucune|nulle]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and morph(\2, ":[NA].*:[fe]:[si]") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:[pm]", "*") and \4.islower()
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.

................................................................................
TEST: que faire de votre {{ennuyeuse}} {{avocat}}                               ->> ennuyeux|||avocate
TEST: de quelque cartable {{vides}}                                             ->> vide
TEST: de notre petit {{amis}}                                                   ->> ami
TEST: Quelque chose tombé dans le puits a souillé l’eau.


__gn_det_epi_sing_2m_virg__
    <start>  [chaque|quelque|notre|votre]  *WORD  ,  @:A¬:[GP]  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[si]") and not agreement(\3, \5)
        -5>> =suggAgree(\5, \3)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  [chaque|quelque|notre|votre]  *WORD  ,  @:A¬:[GP]  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[si]") and not agreement(\3, \5)
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggAgree(\5, \3)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.


TEST: votre femme, {{blessés}}                                                  ->> blessée
TEST: chaque homme, {{blessées}} dans son orgueil                               ->> blessé


__gn_det_epi_sing_3m__
    [chaque|quelque|notre|votre]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":[fe]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
................................................................................
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]  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[pi]", ":3[sp]") and not agreement(\3, \5)
        -5>> =suggAgree(\5, \3)                                                             && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  les  *WORD  ,  @:A¬:[GP]  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[pi]", ":3[sp]") and not agreement(\3, \5)

            and not ( value(\-1, "|et|") and ( (morph(\-2, "#G") and morph(>1, "#G")) or (morph(\-2, ";C") and morph(>1, ";C")) ) )
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggAgree(\5, \3)                                                             && Cet adjectif n’est pas accordé avec “\2 \3”.



TEST: les femmes, {{blessé}}                                                    ->> blessées
TEST: les hommes, {{blessée}} dans leur orgueil                                 ->> blessés
TEST: les femmes, demeurant rue de la paix
TEST: les deux camps, italien et allemand, étaient à portée d’arc
TEST: les deux soleils, noir et blanc, constituaient un symbole marquant


__gn_leurs_1m__
    leurs  *WORD
................................................................................
TEST: Une des pierres veinée de rouge…
TEST: Pour maintenir le potentiel de membrane qui lui permet de communiquer avec ses voisins sous forme d’influx nerveux, un neurone a besoin d’énergie.
TEST: ces religieux inflexibles envers les femmes mais compatissants envers les tyrans qui soutiennent leur religion.
TEST: le bruit de nos pas étouffé par l’épais tapis.


__gn_det_epi_plur_2m_virg__
    <start>  [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult]  *WORD  ,  @:A¬:[GP]  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and not agreement(\3, \5)
        -5>> =suggAgree(\5, \3)                                                             && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult]  *WORD  ,  @:A¬:[GP]  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and not agreement(\3, \5)
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggAgree(\5, \3)                                                             && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: nos femmes, {{blessé}}                                                    ->> blessées
TEST: vos hommes, {{blessée}} dans leur orgueil                                 ->> blessés
TEST: ces personnes, méprisant le danger, furent blessées


__gn_det_mas_plur_2m__
    [certains|maints|quels|lesdits|desdits|auxdits]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
................................................................................
TEST: quels hommes {{grandes}}                                                              ->> grands
TEST: elle se rappelle de quels rapports {{désastreuses}} il s’agit.                        ->> désastreux
TEST: de quels grands {{fou}} s’agit-il ?                                                   ->> fous
TEST: chez certains la revue Limite provoque des crises d’hystérie.


__gn_det_mas_plur_2m_virg__
    <start>  [certains|maints|quels|lesdits|desdits|auxdits]  *WORD  ,  @:A¬:[GP]  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[me]:[pi]") and not agreement(\3, \5)
        -5>> =suggMasPlur(\5)                                                               && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  [certains|maints|quels|lesdits|desdits|auxdits]  *WORD  ,  @:A¬:[GP]  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[me]:[pi]") and not agreement(\3, \5)
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggMasPlur(\5)                                                               && Cet adjectif n’est pas accordé avec “\2 \3”.


TEST: maints hommes, {{blessé}}                                                             ->> blessés
TEST: maints hommes, {{blessée}} dans leur orgueil                                          ->> blessés


__gn_det_fem_plur_2m__
    [certaines|maintes|quelles|lesdites|desdites|auxdites]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemPlur(\3, True)                                                         && Accord de genre erroné : « \2 » est féminin, « \3 » est masculin.
................................................................................
TEST: quelles grandes {{idiots}}                                                            ->> idiotes
TEST: je ne sais guère de quelles âneries {{proférés}} on parle.                            ->> proférées
TEST: quelles étonnantes {{petits}}                                                         ->> petites
TEST: ici ou auxdites lointaines {{contrée}}                                                ->> contrées


__gn_det_fem_plur_2m_virg__
    <start>  [certaines|maintes|quelles|lesdites|desdites|auxdites]  *WORD  ,  @:A¬:[GP]  [<end>|,|)|*WORDELD]
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[pi]") and not agreement(\3, \5)
        -5>> =suggFemPlur(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.

    <start>  [certaines|maintes|quelles|lesdites|desdites|auxdites]  *WORD  ,  @:A¬:[GP]  *WORD
        <<- /gn/ morph(\3, ":[NA].*:[fe]:[pi]") and not agreement(\3, \5)
            and not ( morph(\-1, ":N") and agreement(\-2, \-1) )
        -5>> =suggFemPlur(\5)                                                                       && Cet adjectif n’est pas accordé avec “\2 \3”.

TEST: certaines femmes, {{blessés}}                                                         ->> blessées
TEST: certaines femmes, {{blessé}} dans leur orgueil                                        ->> blessées


__gn_nombre_plur_2m__
    @:B:.:p  *WORD  *WORD
        <<- /gn/ not morph(<1, ">(?:et|ou)/|:R") and not morph(\3, ">(?:seul|minimum|maximum)/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
................................................................................

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

TEST: deux femmes, {{blessé}} par deux fois                                                 ->> blessées
TEST: trois hommes, {{blessée}} dans leur orgueil                                           ->> blessés


__gn_des_2m__
    des  *WORD  *WORD
        <<- /gn/ (morph(<1, ":(?:[VRBXÉ]|Cs)|>comme/|<start>|>[(,]", "*") or morph(\3, ":N", ":[AQ]")) and not morph(\3, ">(?:seul|minimum|maximum)/") >>>
        <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné avec « \2 ».
................................................................................
TEST: Des peines à peine {{croyable}}.                                                      ->> croyables
TEST: Des {{chambres}} plus ou moins fortement {{éclairé}}.                                 ->> chambrés|||éclairées
TEST: Les couleurs rouge, jaune et verte ne doivent pas être utilisées
TEST: des passeports américain, canadien, néerlandais, allemand et britannique.


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

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



TEST: des femmes, {{blessé}}                                                                ->> blessées
TEST: des hommes, {{blessée}} dans leur orgueil                                             ->> blessés


__gn_plusieurs_1m__
    plusieurs  *WORD
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGWP]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.