Grammalecte  Diff

Differences From Artifact [7ee6970920]:

To Artifact [5865201ca2]:


1937
1938
1939
1940
1941
1942
1943
1944

1945
1946
1947

1948
1949

1950
1951
1952
1953
1954
1955


1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
















1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992






1993
1994
1995
1996
1997
1998
1999
1937
1938
1939
1940
1941
1942
1943

1944



1945


1946
1947





1948
1949



1950







1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005







-
+
-
-
-
+
-
-
+

-
-
-
-
-
+
+
-
-
-

-
-
-
-
-
-
-












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














+
+
+
+
+
+







    environ  [$:B|*NUM]
        <<- not value(<1, "|l’|un|cet|quel|") =>> exclude(\1, ":N")

    grave
        <<- morph(<1, ":D") =>> (\1, ":W")


__da_prépositions__
__da_mots_grammaticaaux__
    dans
        <<- not morph(<1, ":D.*:p|>[a-z]+ième/") =>> select(\1, ":R")

    autour [de|du|d’|des]
    passé  [<end>|,|$:R]
        <<- =>> exclude(\1, ":G")
        <<- not morph(<1, ":D.*:[me]") =>> exclude(\1, ":N")

    y compris
        <<- not value(<1, "|n’|j’|tu|t’|m’|s’|") ~>> ␣
        <<- __also__ =>> define(\1, ":G:R")


    dans
        <<- not morph(<1, ":D.*:p|>[a-z]+ième/") =>> select(\1, ":R")
__da_puis__
    puis
        <<- not value(<1, "|je|ne|n’|le|la|l’|les|lui|nous|vous|leur|") =>> =exclude(\1, ":V")


__da_SA__
    SA
        <<- morph(<1, ":D") =>> exclude(\1, ":D")


__da_mots_grammaticaaux__
    [le|ce|cet|mon|ton|son|quel|quelque|notre|votre|un|leur|ledit|dudit|des|les|quelques|quel|quelle|quels|quelles]  [son|ton]
        <<- =>> exclude(\2, ":D")

    [la|ma|ta|sa|les|des|nos|vos|leur|leurs|quel|quelle|quels|quelles] personne
        <<- =>> select(\2, ":N")

    [le|la|l’|les|du|ces|des|mes|tes|ses|nos|vos|leurs|quelques|quels|quelles] même
        <<- =>> select(\2, ":A")

    [le|l’|mon|notre|votre|leur|mes|tes|ses|nos|vos|leurs|quel|quels|quelle|quelles] point
        <<- =>> select(\2, ":N")

    puis
        <<- not value(<1, "|je|ne|n’|le|la|l’|les|lui|nous|vous|leur|") =>> =exclude(\1, ":V")

    SA
        <<- morph(<1, ":D") =>> exclude(\1, ":D")

    passé  [<end>|,|$:R]
        <<- =>> exclude(\1, ":G")

    vu  [<end>|,|$:R]
        <<- =>> exclude(\1, ":G")

    y compris
        <<- not value(<1, "|n’|j’|tu|t’|m’|s’|") ~>> ␣
        <<- __also__ =>> define(\1, ":G:R")


__da_autre_chose_quelque_chose__
    quelque chose
        <<- =>> define(\2, ":N:m:s")

    autre chose
        <<- not morph(<1, ">entre/|:D") ~>> ␣
        <<- =>> define(\1, ":G")


__da_groupe_nominal__
    aucun  @:[NA].*:[me]
        <<- =>> exclude(\2, ":V")

    avions
        <<- not tag_before(\1, "_1p_") and not value(<1, "|n’|") and not value(>1, "|nous|") =>> select(\-1, ":N")

    l’ avions
        <<- morph(<1, ":Y") =>> select(\-1, ":N")

    bac + ~^\d\d?$
        <<- ~>> ␣
        <<- =>> define(\1, ":N:e:i")

    [de|d’]  @:¬:[YD]
        <<- =>> exclude(\2, ":(?:[123][sp]|P)")

11506
11507
11508
11509
11510
11511
11512









11513
11514
11515
11516
11517
11518
11519
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534







+
+
+
+
+
+
+
+
+







# ensemble
__sgpl_ensemble__
    [toutes|tous] ensembles
        <<- /sgpl/ -2>> ensemble                                    && Ici, “ensemble” est vraisemblablement un adverbe, donc invariable.|https://fr.wiktionary.org/wiki/ensemble

TEST: Allons-y toutes {{ensembles}}                             ->> ensemble


# en particulier
__sgpl_en_particulier__
    en particuliers
        <<- /conf/ not morph(<1, ">agir/") ->> en particulier       && Locution “en particulier” toujours au singulier.|https://fr.wiktionary.org/wiki/en_particulier

TEST: en général et {{en particuliers}}
TEST: agir en particulier averti.


# en rangs serrés
__sgpl_en_rangs_serrés__
    en rang serré
        <<- /sgpl/ ->> en rangs serrés|en ordre serré               && Au pluriel, car il y a plusieurs rangs. Vous pouvez aussi utiliser l’expression “en ordre serré”.

TEST: ils défilèrent {{en rang serré}}
13200
13201
13202
13203
13204
13205
13206
13207

13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221

13222
13223
13224
13225
13226
13227
13228
13229







-
+







    plus d’ une fois
    plus d’ une fois par [seconde|minute|heure|jour|semaine|mois|trimestre|semestre|an|année|décennie|siècle|millénaire]
    pour la [première|seconde|dernière|~ième$] fois
    pour la [première|seconde|dernière|~ième$] fois [de|d’] [ma|ta|sa|notre|votre|leur] ?misérable¿ vie ?[misérable|insignifiante|palpitante]¿
    pour la [première|seconde|dernière|~ième$] fois [de|d’] [mon|ton|son|notre|votre|leur] ?[misérable|insignifiante|palpitante]¿ existence ?[misérable|insignifiante|palpitante]¿
    pour la [seconde|dernière|~ième$] fois [de|d’] suite
    pour [trois|3] fois rien
    pour une fois
    pour [cette|une] fois
    quelquefois
    quelques fois
    sans y [réfléchir|songer|penser] à [deux|2] fois
    souventes fois
    toutefois
    tant de fois
        <<- ~>> *
13698
13699
13700
13701
13702
13703
13704

13705
13706
13707
13708
13709
13710
13711
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727







+







    dans le cas contraire
    dans [ce|ces] [cas-là|cas-ci]
    dans ce cas [précis|particulier]
    dans ces cas [précis|particuliers]
    dans l’ [idéal|immédiat]
    dans la mesure du possible
    dans la dernière ligne droite
    dans le feu de l’ action
    dans leur globalité
    dans leur grande majorité
    dans tout [cela|ça|ceci]
    dans un cas comme dans l’autre
    dans une [certaine|large|moindre] mesure
    dans une mauvaise passe
    d’ abord
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281


14282
14283
14284
14285
14286
14287
14288
14288
14289
14290
14291
14292
14293
14294

14295
14296
14297
14298
14299
14300
14301
14302
14303
14304
14305







-


+
+







    sous haute [surveillance|tension]
    stricto sensu
    sur [mon|ton|son|notre|votre|leur] [trente-et-un|31]
    sur [mon|ton|son|notre|votre|leur] trente et un
    sur ce ,
    sur ce plan-là
    sur la défensive
    sur le fil du rasoir
    sur la forme comme sur le fond
    sur la même longueur d’ onde
    sur la sellette
    sur le fil du rasoir
    sur le plan [local|cantonal|départemental|régional|national|européen|américain|africaine|asiatique|continental|international|planétaire|galactique|universel]
    sur le pied [de|d’] guerre
    sur le qui-vive
    surtout
    s’ il [te|vous] [plaît|plait]
    tant bien que mal
    tant s’ en faut
15138
15139
15140
15141
15142
15143
15144

15145
15146
15147
15148
15149
15150
15151
15155
15156
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167
15168
15169







+







    >force d’ assaut
    >force [de|d’] caractère
    >fosse à [merde|>ordure|purin]
    >fosse aux lions
    >fou à lier
    [>fourgon|>fourgonnette] [de|d’] location
    >frayeur [de|d’] tous les diables
    >frein à >tambour
    >frousse [de|d’] tous les diables
    >fuite en avant
    >fusil à [plomb|pompe]
    >garde à vue
    >garde du corps
    gaz à >effet [de|d’] serre
    >genou à terre
15339
15340
15341
15342
15343
15344
15345
15346
15347
15348
15349
15350
15351
15352
15353
15357
15358
15359
15360
15361
15362
15363

15364
15365
15366
15367
15368
15369
15370







-







    >sac [de|d’] [couchage|sport|voyage]
    >salaire à vie
    >salle à manger
    >salle [de|d’] [attente|>bain|bal|conférence|lecture|séjour|vente]
    >salon [de|d’] coiffure
    sas [de|d’] [confinement|décompression|décontamination|désinfection|livraison|protection|secours|sécurité]
    >sclérose en plaques
    [secret+s] défense
    >seconde d’ arc
    >sel [de|d’] [aluminium|ammonium|mer]
    >serpent à sonnette
    >service d’ ordre
    >seuil [de|d’] tolérance
    >seuil [de|d’] tolérance à la douleur
    >silo à [>grains|blé]
15435
15436
15437
15438
15439
15440
15441
15442

15443
15444
15445
15446
15447
15448
15449
15452
15453
15454
15455
15456
15457
15458

15459
15460
15461
15462
15463
15464
15465
15466







-
+







    >con comme la lune
    >con comme un balai
    >con comme une valise sans >poignée
    >corvéable à merci
    >court sur pattes
    [cousu+ses] [main]
    [cousu+ses] [de|d’] fil blanc
    [daté+ses] du [1er|1ᵉʳ|1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12|13|14|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31] {mois} ?[prochain|passé|dernier|~^[0-9]{2,5}$]¿
    [daté+ses] du [1er|1ᵉʳ|1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12|13|14|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31] {mois} ?[prochain|passé|dernier|précédent|~^[0-9]{2,5}$]¿
    >digne [de|d’] [confiance|foi]
    >digne [de|d’] ce nom
    >droit comme un i
    >fort en gueule
    >fou [de|d’] rage ?[contenue|retenue]¿
    >élu à la majarité absolue
    >haut comme [trois|3] pommes
15459
15460
15461
15462
15463
15464
15465

15466
15467
15468
15469
15470
15471
15472
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490







+







    >noir comme une nuit sans lune
    >pure comme [le|du] cristal
    >rapide à la comprenette
    [réglé+ses] comme du papier à musique
    [remis+es] à plat
    >sain [de|d’] [corps|esprit]
    >sain [de|d’] [corps|esprit] et [de|d’] [corps|esprit]
    [secret+s] défense
    >sourd comme un pot
    >sujet à interprétation
    >sujet à interprétations diverses
    >têtu comme une [bourrique|mule]
    >têtu comme un [âne|bourriquot|mulet]
    [tiré+ses] à [quatre|4] épingles
        <<- ~2:0>> *
16023
16024
16025
16026
16027
16028
16029
16030
16031
16032
16033
16034
16035
16036
16037








16038
16039
16040
16041
16042
16043
16044
16041
16042
16043
16044
16045
16046
16047








16048
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058
16059
16060
16061
16062







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







    à [mes|tes|ses|nos|vos|leurs] [regards|yeux]  [<end>|,|)]
        <<- ~1:-2>> *

    à la dernière [minute|seconde]  @¬:A.*:[fe]:[si]
    à la dernière [minute|seconde]  [<end>|,|)]
        <<- ~1:-2>> *

    à la longue     @:¬:N.*:[fe]:[si]
    à la longue     [<end>|,|)]
    à la dérive     @:¬:A.*:[fe]:[si]
    à la dérive     [<end>|,|)]
    à l’ époque     @:¬:A.*:[fe]:[si]
    à l’ époque     [<end>|,|)]
    à l’ identique  @:¬:N.*:[si]
    à l’ identique  [<end>|,|)]
    à la longue         @:¬:N.*:[fe]:[si]
    à la longue         [<end>|,|)]
    à la [dérive|mode]  @:¬:A.*:[fe]:[si]
    à la [dérive|mode]  [<end>|,|)]
    à l’ époque         @:¬:A.*:[fe]:[si]
    à l’ époque         [<end>|,|)]
    à l’ identique      @:¬:N.*:[si]
    à l’ identique      [<end>|,|)]
        <<- ~1:-2>> *

    à répétition  @¬:A.*:[fe]:[si]
    à répétition  [<end>|,|)]
        <<- ~1:2>> *

    au bout d’ un moment  @:¬:A.*:[me]:[si]
16199
16200
16201
16202
16203
16204
16205


16206
16207


16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219
16220


16221
16222


16223
16224
16225
16226
16227
16228
16229
16217
16218
16219
16220
16221
16222
16223
16224
16225


16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242


16243
16244
16245
16246
16247
16248
16249
16250
16251







+
+
-
-
+
+













+
+
-
-
+
+







    pour cette raison [<end>|,|)]
        <<- ~1:3>> *

    pour de bon  @:¬:[NA].*:m:s
    pour de bon  [<end>|,|)]
        <<- ~1:3>> *

    pour la majeure partie  @:¬:A.*:[fe]:[si]
    pour la majeure partie  [<end>|,|)]
    pour partie  @:¬:A.*:f:s
    pour partie  [<end>|,|)]
    pour partie             @:¬:A.*:[fe]:[si]
    pour partie             [<end>|,|)]
        <<- ~1:2>> *

    pour un temps  @:¬:[NA].*:[me]:[si]
    pour un temps  [<end>|,|)]
        <<- ~1:3>> *

    >preuve à l’ appui
        <<- not morph(<1, ":D") ~>> *

    sans détour  @:¬:[NA].*:[me]:[si]
    sans détour  [<end>|,|)]
        <<- ~1:2>> *

    sans grande surprise    @:¬:[NA].*:[fe]:[si]
    sans grande surprise    [<end>|,|)]
    sans [réserve|surprise]  @:¬:[NA].*:[fe]:[si]
    sans [réserve|surprise]  [<end>|,|)]
    sans [réserve|surprise] @:¬:[NA].*:[fe]:[si]
    sans [réserve|surprise] [<end>|,|)]
        <<- ~1:2>> *

    semblait-il
    semble-t-il
        <<- not value(<1, "|ça|cela|ceci|me|m’|te|t’|lui|nous|vous|leur|ne|n’|") ~>> *

    soit dit entre nous
16366
16367
16368
16369
16370
16371
16372

16373
16374
16375
16376
16377
16378
16379
16388
16389
16390
16391
16392
16393
16394
16395
16396
16397
16398
16399
16400
16401
16402







+







    >attendre [de|d’] pied ferme
    >battre à plate couture
    >battre en [brèche|retraite]
    >boire comme un trou
    [>brûler|>bruler] à vif
    >charger à blanc
    >chauffer à blanc
    >classer sans suite
    >compter à rebours
    >condamner à mort
    >couler à ?grands¿ flots
    >cour d’ assises
    >demander [assistance|audience|conseil|pardon]
    >dire [adieu|merde]
    [>donner|>redonner] [naissance|sens|suite|vie]
16692
16693
16694
16695
16696
16697
16698
16699

16700
16701
16702
16703
16704
16705
16706
16715
16716
16717
16718
16719
16720
16721

16722
16723
16724
16725
16726
16727
16728
16729







-
+







TEST: on ne peut convoquer un citoyen sur la base des textes constitutionnels, devenus dans ce cas incriminants.
TEST: ce sont des gens bien
TEST: beaucoup d’entre nous se souviennent de ce fameux jour
TEST: Hormis les enseignements fondamentaux transmis à la petite école, la suite n’est qu’une infinie perte de temps où l’on bourre l’esprit des élèves de connaissances parfaitement inutiles, dont la plupart d’entre nous ne gardent aucun souvenir sitôt les portes du lycée franchies.
TEST: il ne désirait ne plus le faire…
TEST: Ma chambre est trois fois plus grande que la tienne.
TEST: Il est trois ans plus jeune que moi.

TEST: On peut sans doute laisser sans grand problème toutes les baskets à la mode être produites à l’autre bout du monde


@@@@
@@@@
@@@@
@@@@
@@@@END_GRAPH                                                                                      _
18083
18084
18085
18086
18087
18088
18089
18090


18091
18092
18093
18094
18095
18096
18097
18098
18099
18100

18101
18102
18103
18104
18105
18106
18107
18106
18107
18108
18109
18110
18111
18112

18113
18114
18115
18116
18117
18118
18119
18120
18121
18122
18123

18124
18125
18126
18127
18128
18129
18130
18131







-
+
+









-
+







        <<- /conf/ -2>> gent                        && Confusion. « Gente » est un adjectif vieilli. Utiliser « gent » pour désigner un groupe de personnes.

TEST: la {{gente}} masculine est grossière et l’a toujours été.


# golf / golfe
__conf_golf_golfe2__
    >jouer au golfe
    >jouer      au golfe
    >pratiquer  le golfe
        <<- /conf/ -3>> golf                        && Confusion. Un golfe est une zone maritime qui avance dans les terres. Pour le sport, écrivez “golf”.

TEST: il joue au {{golfe}} tous les jours.
TEST: Jouer au golf.


# goutte / goûte
__conf_goûte_goutte__
    [goûte|goûtes|goute|goutes] [de|d’] [alcool|acide|amour|bière|eau|folie|huile|javel|lait|liquide|mercure|miel|peinture|pluie|rhum|rosée|salive|sang|semence|sperme|sueur|urine|vin|vinaigre|whisky]
        <<- /conf/ -1>> =\1.replace("û", "u").replace("t", "tt")
        <<- /conf/ -1>> =\1.replace("û", "u").replace("t", "tt").replace("Û", "U").replace("T", "TT")
        && Confusion : “goûter” signifie utiliser le sens du goût. Pour une petite quantité de liquide, écrivez “goutte”.|https://fr.wiktionary.org/wiki/goutte

    >passer entre les [goûte+s|goute+s]
        <<- /conf/ --1>> gouttes                    && Confusion. Une particule de fluide s’écrit “goutte”.|https://fr.wiktionary.org/wiki/goutte

    [à|a] [grosse+s] [goute+s|goûte+s]
        <<- /conf/ ->> à grosses gouttes            && Confusion. Locution adverbiale “à grosses gouttes”.
18898
18899
18900
18901
18902
18903
18904
18905
18906


18907
18908
18909



















18910





18911
18912
18913
18914
18915
18916
18917
18922
18923
18924
18925
18926
18927
18928


18929
18930
18931
18932
18933
18934
18935
18936
18937
18938
18939
18940
18941
18942
18943
18944
18945
18946
18947
18948
18949
18950
18951
18952
18953
18954
18955
18956
18957
18958
18959
18960
18961
18962
18963
18964
18965







-
-
+
+



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

+
+
+
+
+







TEST: dans la {{sale}} des professeurs
TEST: une {{sale}} d’arcade
TEST: ils sont tellement {{salles}}
TEST: pour le service en salle


# sans / sens
__conf_sens_dessus_dessous__
    sans dessus dessous
__conf_sang_sans_sens__
    [sans|san] dessus dessous
    sans-dessus-dessous
        <<- /conf/ ->> sens dessus dessous                          && Confusion. Locution adverbiale : « sens dessus dessous ».|https://fr.wiktionary.org/wiki/tache

    [sans|san] [bleu|royal|mêlé]
    [sans|san] humain
    [sans|san] de la victime
    [sans|san] des victimes
    [sans|san] >avoir >couler
    [sans|san] >couler
    [sans|san] qui >couler
    [sans|san] qui >avoir >couler
        <<- /conf/ morph(<1, ":D.*:[me]") -1>> sang                 && Confusion probable. Pour évoquer le fluide sanguin, écrivez “sang”.|https://fr.wiktionary.org/wiki/sang

    [couvert+ses|recouvert+ses] [de|d’] [sans|san|sens]
    >avoir [ça|cela|ceci] dans le [sans|san|sens]
    >buveur [de|d’] [sans|san|sens]
    >flot [de|d’] [sans|san|sens]
    la voix du [sans|san|sens]
    >pisser [le|du] [sans|sens]
    c >être [mon|ton|son|notre|votre|leur|leurs] [sans|san]
        <<- /conf/ --1>> sang                                       && Confusion probable. Pour évoquer le fluide sanguin, écrivez “sang”.|https://fr.wiktionary.org/wiki/sang

TEST: Tout est {{sans dessus dessous}}.
TEST: le {{sans}} a coulé.
TEST: le {{san}} qui coulera encore sera sur vos mains
TEST: elle a ça dans le {{sans}}
TEST: elle pissait le {{sans}}
TEST: ce témoignage va dans le sens de la victime.


# aller sans dire
__conf_aller_sans_dire__
    [il|ça|cela|ceci] >aller s’ en dire
        <<- /conf/ -3:4>> sans                                      && Confusion. Locution “aller sans dire”.|https://fr.wiktionary.org/wiki/cela_va_sans_dire#fr

19218
19219
19220
19221
19222
19223
19224

19225
19226
19227
19228
19229
19230
19231
19266
19267
19268
19269
19270
19271
19272
19273
19274
19275
19276
19277
19278
19279
19280







+







        -4>> =suggSing(\4)                                                                          && Accord de nombre erroné avec “\3” : “\4” devrait être au singulier.

TEST: L’{{amande}} {{amer}}
TEST: l’{{amicale}} {{animal}}
TEST: l’amour {{immortels}}
TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou.
TEST: du chien et de l’étonnant {{colliers}} qu’il avait autour du cou.
TEST: elle prendra l’{{avions}} dès que possible


__gn_le_1m__
    ,  le  *WORD
        <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") -2>> =suggLesLa(\3)           && Accord de genre erroné : « \3 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True)                            && Accord de genre erroné : « \2 » est un déterminant masculin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p", ":[siGW]") -3>> =suggMasSing(\3)               && Accord de nombre erroné : « \3 » devrait être au singulier.
19260
19261
19262
19263
19264
19265
19266
19267

19268
19269
19270
19271
19272
19273
19274

19275
19276
19277
19278
19279
19280
19281
19309
19310
19311
19312
19313
19314
19315

19316
19317
19318
19319
19320
19321
19322

19323
19324
19325
19326
19327
19328
19329
19330







-
+






-
+







TEST: {{Le}} personne répond.
TEST: {{le}} {{quotients}}
TEST: Comme avec l’Hyperloop, le bus chinois conçu pour passer au-dessus des voitures


__gn_le_2m__
    le  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                                 && Accord de genre erroné : « \1 \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                                       && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou]  le  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not \4.startswith("seul") >>>
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                                 && Accord de genre erroné : « \2 \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\4, \4)
        -4>> =suggMasSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: le test très {{cons}} qu’on a passé hier.
TEST: c’était le chien {{perdue}} des voisins.
19322
19323
19324
19325
19326
19327
19328
19329

19330
19331
19332
19333
19334
19335
19336

19337
19338
19339
19340
19341
19342
19343
19371
19372
19373
19374
19375
19376
19377

19378
19379
19380
19381
19382
19383
19384

19385
19386
19387
19388
19389
19390
19391
19392







-
+






-
+







TEST: à la Richard Nixon Foundation
TEST: à ne plus se laisser faire la fois d’après
TEST: il pense à la fois où nous avons eu cet accident idiot.


__gn_la_2m__
    la  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\1, ":D") and 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>> =suggFemSing(\3, True)                                                         && Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggFemSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  la  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                         && Accord de genre erroné : « \2 \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: La plus grande {{cinglé}}.
TEST: il imaginait de la pluie {{noir}} tombant sur une terre dévastée.
19363
19364
19365
19366
19367
19368
19369
19370

19371
19372
19373
19374
19375
19376
19377
19378
19379
19380

19381
19382
19383
19384
19385
19386
19387
19412
19413
19414
19415
19416
19417
19418

19419
19420
19421
19422
19423
19424
19425
19426
19427
19428

19429
19430
19431
19432
19433
19434
19435
19436







-
+









-
+







TEST: J’en ai assez de {{leur}} {{délires}}
TEST: {{Leur}} {{perceptions}} des choses m’exaspère.
TEST: dans {{leur}} {{usines}}


__gn_leur_2m__
    leur  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /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)
        -3>> =switchGender(\3, False)                                                       && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, False)                  && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggSing(\3)                                                                  && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.
        <<- /gn/ __also__ and morph(\2, ":[NA].*:i") -1>> leurs                             && Accord de nombre erroné avec « \2 \3 ».

    [et|ou|de|d’]  leur  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, False)                                                       && Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False)                  && Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        <<- /gn/ __also__ and morph(\3, ":[NA].*:i") -2>> leurs                             && Accord de nombre erroné avec « \3 \4 ».
19519
19520
19521
19522
19523
19524
19525
19526

19527
19528
19529
19530
19531
19532
19533

19534
19535
19536
19537
19538
19539
19540
19541
19542
19543
19544
19545
19546
19547
19548
19549

19550
19551
19552
19553
19554
19555
19556

19557
19558
19559
19560
19561
19562
19563
19568
19569
19570
19571
19572
19573
19574

19575
19576
19577
19578
19579
19580
19581

19582
19583
19584
19585
19586
19587
19588
19589
19590
19591
19592
19593
19594
19595
19596
19597

19598
19599
19600
19601
19602
19603
19604

19605
19606
19607
19608
19609
19610
19611
19612







-
+






-
+















-
+






-
+







TEST: mille et une merveilles
TEST: Quatorze heures découpées en quatre parties, une sortant en salles chaque semaine


## un / une
__gn_un_2m__
    un  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|d’|") and not \3.startswith("seul") >>>
        <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                                 && Accord de genre erroné : « \1 \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                                       && Accord de nombre erroné avec « \2 » : « \3 » devrait être au singulier.

    [et|ou|d’]  un  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                                 && Accord de genre erroné : « \2 \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: un exercice pas très {{utiles}}.                        ->> utile
TEST: un homme {{grands}}                                     ->> grand
TEST: un homme {{futiles}}                                    ->> futile
TEST: que sais-tu d’un homme {{grande}} comme un arbre
TEST: je me souviens d’un homme {{arrogants}}
TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}.


__gn_une_2m__
    une  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|d’|") and not \3.startswith("seul") >>>
        <<- /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é : « \1 \2 » est féminin, « \3 » est masculin.
        <<- /gn/ \2 != "fois" and morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3)                                                                       && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|d’]  une  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                                 && Accord de genre erroné : « \2 \3 » est féminin, « \4 » est masculin.
        <<- /gn/ \3 != "fois" and morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: Une femme {{laconiques}}.                               ->> laconique
TEST: Une grande {{homme}}.
19633
19634
19635
19636
19637
19638
19639
19640

19641
19642
19643
19644
19645
19646
19647

19648
19649
19650
19651
19652
19653
19654
19682
19683
19684
19685
19686
19687
19688

19689
19690
19691
19692
19693
19694
19695

19696
19697
19698
19699
19700
19701
19702
19703







-
+






-
+







TEST: téléphone {{au}} {{boulangère}}
TEST: au chien, au chat, au poulet
TEST: à partir de pièces détachées, au départ entièrement venues de l’étranger puis en partie fabriquées sur place


__gn_det_mas_sing_2m__
    [ce|cet|quel|au|ledit|dudit|audit|aucun|nul]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /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)
        -3>> =suggMasSing(\3, True)                                                         && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  [ce|cet|quel|au|ledit|dudit|audit|aucun|nul]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                         && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: cet outil {{terribles}} qu’il a dans les mains
TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle.
19666
19667
19668
19669
19670
19671
19672
19673

19674
19675
19676
19677
19678
19679
19680
19681
19682

19683
19684
19685
19686
19687
19688
19689
19715
19716
19717
19718
19719
19720
19721

19722
19723
19724
19725
19726
19727
19728
19729
19730

19731
19732
19733
19734
19735
19736
19737
19738







-
+








-
+







TEST: mon {{excellentes}} mémoire
TEST: {{ton}} {{belle}} mémoire
TEST: {{mon}} {{chienne}}


__gn_mon_ton_son_2m__
    [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                         && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                         && Accord de genre erroné : « \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                         && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                         && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

19707
19708
19709
19710
19711
19712
19713
19714

19715
19716
19717
19718
19719
19720
19721

19722
19723
19724
19725
19726
19727
19728
19756
19757
19758
19759
19760
19761
19762

19763
19764
19765
19766
19767
19768
19769

19770
19771
19772
19773
19774
19775
19776
19777







-
+






-
+







TEST: {{ma}} amour                                            ->> mon
TEST: ma {{carlingues}}
TEST: Après cet épisode, la SA a joué un rôle marginal dans l’histoire du Troisième Reich


__gn_det_fem_sing_2m__
    [ma|ta|sa|cette|quelle|ladite]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NAQ].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NAQ].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                         && Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NAQ].*:[si]", ":G") and morph(\3, ":[NAQ].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggFemSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  [ma|ta|sa|cette|quelle|ladite]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NAQ]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NAQ]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NAQ].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NAQ].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                         && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NAQ].*:[si]", ":G") and morph(\4, ":[NAQ].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: quelle belle {{étourdi}}, cette gamine
TEST: j’en ai assez de cette ville {{stressées}} en permanence.
19744
19745
19746
19747
19748
19749
19750
19751

19752
19753
19754
19755
19756
19757
19758
19759
19760

19761
19762
19763
19764
19765
19766
19767
19793
19794
19795
19796
19797
19798
19799

19800
19801
19802
19803
19804
19805
19806
19807
19808

19809
19810
19811
19812
19813
19814
19815
19816







-
+








-
+







        -1>> quelques                                                                       && Il manque un “s” à « quelque » ou « \2 » doit être au singulier.

TEST: {{Quelque}} amis


__gn_det_epi_sing_2m__
    [chaque|quelque|notre|votre]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /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)
        -3>> =switchGender(\3, False)                                                       && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, False)                  && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggSing(\3)                                                                  && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  [chaque|quelque|notre|votre]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, False)                                                       && Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False)                  && Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

19810
19811
19812
19813
19814
19815
19816
19817

19818
19819
19820
19821
19822
19823
19824
19825
19826

19827
19828
19829
19830
19831
19832
19833
19859
19860
19861
19862
19863
19864
19865

19866
19867
19868
19869
19870
19871
19872
19873
19874

19875
19876
19877
19878
19879
19880
19881
19882







-
+








-
+







TEST: les {{abricot}}                                         ->> abricots
TEST: tels que les décrit Macron
TEST: J’en ramasse quelques-unes, puis les glisse dans l’une de mes poches, ça me fera un souvenir.


__gn_les_2m__
    les  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /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)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

    [et|ou]  les  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not morph(\3, ">seul/") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, True)                                                                && Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, True)                           && Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -4>> =suggPlur(\4)                                                                          && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

19882
19883
19884
19885
19886
19887
19888
19889

19890
19891
19892
19893
19894
19895
19896
19897
19898

19899
19900
19901
19902
19903
19904

19905
19906
19907
19908
19909
19910
19911
19931
19932
19933
19934
19935
19936
19937

19938
19939
19940
19941
19942
19943
19944
19945
19946

19947
19948
19949
19950
19951
19952

19953
19954
19955
19956
19957
19958
19959
19960







-
+








-
+





-
+







TEST: aux {{personne}}
TEST: j’entends ces {{même}} âneries tous les jours
TEST: clafoutis aux {{abricot}}


__gn_det_epi_plur_2m__
    [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|au|aux|") and not \3.startswith("seul") >>>
        <<- /gn/ not value(<1, "|et|ou|de|d’|au|aux|") and not morph(\3, ">seul/") >>>
        <<- /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)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

    [et|ou|de|d’]  [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, True)                                                                && Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, True)                           && Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
            and not (\1.startswith("de") and value(<1, "|un|une|"))
            and not (value(\1, "|de|d’|") and value(<1, "|un|une|"))
        -4>> =suggPlur(\4)                                                                          && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: ces {{beaux}} {{institutions}}
TEST: nos petites {{fille}}
TEST: de plusieurs {{grands}} {{avocates}}
TEST: de vos défauts {{terrible}}, je connais presque tout.
TEST: Les éléments caractéristiques liés à ses valeurs historique et architecturale
19975
19976
19977
19978
19979
19980
19981
19982

19983
19984
19985
19986
19987

19988
19989
19990
19991
19992
19993
19994
20024
20025
20026
20027
20028
20029
20030

20031
20032
20033
20034
20035

20036
20037
20038
20039
20040
20041
20042
20043







-
+




-
+









__gn_det_plur_3m__
    [ces|mes|tes|ses|nos|vos|quels|quelles|aux]             *WORD  *WORD  *WORD
    [plusieurs|quelques|certains|certaines|moult]           *WORD  *WORD  *WORD
    [lesdits|lesdites|desdits|desdites|auxdits|auxdites]    *WORD  *WORD  *WORD
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)")
            and morph(\4, ":[NA].*:s", "*") and \4.islower() and not before("(?i)\\bune? de +$") and not \4.startswith("seul")
            and morph(\4, ":[NA].*:s", "*") and \4.islower() and not before("(?i)\\bune? de +$") and not morph(\4, ">seul/")
        -4>> =suggPlur(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

    leurs  *WORD  *WORD  *WORD
        <<- /gn/ morph(\2, ":[NA].*:[pi]", "[123][sp]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)")
            and morph(\4, ":[NA].*:s", "*") and not before("(?i)\\bune? de +$") and not \4.startswith("seul")
            and morph(\4, ":[NA].*:s", "*") and not before("(?i)\\bune? de +$") and not morph(\4, ">seul/")
        -4>> =suggPlur(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

TEST: ces petites sottes {{déjantée}}
TEST: Leurs grands plans {{dépassé}} par les évènements
TEST: Prendre goût aux heures passées seul à marcher


20198
20199
20200
20201
20202
20203
20204
20205

20206
20207
20208
20209
20210
20211
20212

20213
20214
20215
20216

20217
20218
20219
20220
20221
20222
20223
20224
20225
20226
20227
20228
20229
20230

20231
20232
20233
20234
20235
20236
20237

20238
20239
20240
20241

20242
20243
20244
20245
20246
20247
20248
20247
20248
20249
20250
20251
20252
20253

20254
20255
20256
20257
20258
20259
20260

20261
20262
20263
20264

20265
20266
20267
20268
20269
20270
20271
20272
20273
20274
20275
20276
20277
20278

20279
20280
20281
20282
20283
20284
20285

20286
20287
20288
20289

20290
20291
20292
20293
20294
20295
20296
20297







-
+






-
+



-
+













-
+






-
+



-
+








TEST: {{Quels}} que soient ces idiotes                        ->> Quelles
TEST: {{Quels}} qu’en soient les raisons                      ->> Quelles


__gn_det_mas_plur_2m__
    [certains|quels|lesdits|desdits|auxdits]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /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)
        -3>> =suggMasPlur(\3, True)                                                         && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggMasPlur(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

    [et|ou|de|d’]  [certains|quels|lesdits|desdits|auxdits]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \3.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasPlur(\4, True)                                                         && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ":[NA].*:[pi]", ":G") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
            and not (\1.startswith("de") and value(<1, "|un|une|"))
            and not (value(\1, "|de|d’|") and value(<1, "|un|une|"))
        -4>> =suggMasPlur(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: certains claviers {{dégueulasse}}
TEST: certains hommes {{petite}}
TEST: auxdits hommes {{connu}}
TEST: quels hommes {{grandes}}
TEST: elle se rappelle de quels rapports {{désastreuses}} il s’agit.
TEST: de quels grands {{fou}} s’agit-il ?
TEST: chez certains la revue Limite provoque des crises d’hystérie.


__gn_det_fem_plur_2m__
    [certaines|quelles|lesdites|desdites|auxdites]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
        <<- /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.
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggFemPlur(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

    [et|ou|de|d’]  [certaines|quelles|lesdites|desdites|auxdites]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>>
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemPlur(\4, True)                                                         && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
            and not (\1.startswith("de") and value(<1, "|un|une|"))
            and not (value(\1, "|de|d’|") and value(<1, "|un|une|"))
        -4>> =suggFemPlur(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: certaines idioties {{stupide}}
TEST: quelles grandes {{idiots}}
TEST: je ne sais guère de quelles âneries {{proférés}} on parle.
TEST: quelles étonnantes {{petits}}
TEST: ici ou auxdites lointaines {{contrée}}
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734
22735
22736
22737
22738
22739
22740
22741
22742
22743


22744
22745
22746
22747
22748
22749
22750
22773
22774
22775
22776
22777
22778
22779

22780
22781
22782
22783
22784
22785
22786
22787
22788
22789


22790
22791
22792
22793
22794
22795
22796
22797
22798







-










-
-
+
+








    [certains|certaines|plusieurs|quelques-uns|quelques-unes] d’ entre nous
        <<- /1>> _d_entre_nous_

    [certains|certaines|plusieurs|quelques-uns|quelques-unes] d’ entre vous
        <<- /1>> _d_entre_vous_


    [aucun|aucune] des *WORD [ne|n’]
        <<- ~2:3>> *

    [aucun|aucune] des *WORD *WORD [ne|n’]
        <<- ~2:4>> *

    beaucoup [de|d’] *WORD <end>
    beaucoup [de|d’] *WORD ?,¿ [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|iel|iels|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    beaucoup [de|d’] *WORD @:[VR]¬:[NAP]
    beaucoup [de|d’] *WORD , @¬:[NA]
        <<- morph(\3, ":[NA].*:p", ":(?:[NA].*:[si]|G)") /1>> bcp_plur
        <<- morph(\3, ":[NA].*:s", ":(?:[NA].*:[pi]|G)") /1>> bcp_sing
        <<- morph(\3, ":[NA].*:p", ":(?:[NA].*:[si]|G)") /1>> _bcp_plur_
        <<- __else__ and morph(\3, ":[NA].*:s", ":(?:[NA].*:[pi]|G)") /1>> _bcp_sing_
        <<- ~2:3>> *

    la plupart des *WORD <end>
    la plupart des *WORD ?,¿ [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|iel|iels|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    la plupart des *WORD @:[VR]¬:[NAP]
    la plupart des *WORD , @¬:[NA]
        <<- ~3:4>> *
24102
24103
24104
24105
24106
24107
24108
24109
24110
24111
24112
24113
24114
24115
24116








24117
24118
24119
24120






















24121

24122
24123
24124

24125
24126
24127

24128
24129
24130
24131
24132
24133
24134
24135
24136
24137
24138
24139
24140
24141
24142
24143
24144
24145
24146
24147
24148


24149
24150
24151









24152
24153
24154
24155
24156
24157
24158
24150
24151
24152
24153
24154
24155
24156








24157
24158
24159
24160
24161
24162
24163
24164
24165
24166
24167
24168
24169
24170
24171
24172
24173
24174
24175
24176
24177
24178
24179
24180
24181
24182
24183
24184
24185
24186
24187
24188
24189
24190

24191
24192
24193

24194
24195
24196

24197
24198
24199
24200
24201
24202
24203
24204
24205
24206
24207
24208
24209
24210
24211
24212
24213
24214
24215
24216


24217
24218
24219
24220
24221
24222
24223
24224
24225
24226
24227
24228
24229
24230
24231
24232
24233
24234
24235
24236
24237







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




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


-
+


-
+



















-
-
+
+



+
+
+
+
+
+
+
+
+







    [<start>|,|$:Cs]  [l’|mon|ton|son|notre|votre|leur] (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_à_verbeétat_)   à  ?[ne|n’]¿ ?[en|y]¿       /_LVEF_verbe_à_verbeétat_   *WORD
    [<start>|,|$:Cs]  [l’|mon|ton|son|notre|votre|leur] (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_de_verbeétat_)  [de|d’] ?[ne|n’]¿ ?[en|y]¿  /_LVEF_verbe_de_verbeétat_  *WORD
        <<- /ppas/ not value(\-1, "|légion|néant|réalité|") and
            ((morph(\1, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWMfe]")) or (morph(\1, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]")))
            and (morph(\2, ":[123]s") or (not tag(\1, "_enum_") and morph(\2, ":P")))
        --1>> =switchGender(\-1)                                                                    && Accord erroné : “\1” et “\-1” ne sont pas accordés en genre.

    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])                   *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (>avoir) [été|semblé|paru]                                                                     *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler])  [devenus|redevenus|restés|demeurés|devenues|redevenues|restées|demeurées]  *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_verbeétat_)     ?[en|y]¿                    /_LVEF_verbe_verbeétat_              *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_être_ppas_)     ?[en|y]¿  être              /_LVEF_verbe_être_ppas_              *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_avoir_ppas_)    ?[en|y]¿  avoir             /_LVEF_verbe_avoir_ppas_             *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_à_verbeétat_)   à  ?[ne|n’]¿ ?[en|y]¿       /_LVEF_verbe_à_verbeétat_            *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_de_verbeétat_)  [de|d’] ?[ne|n’]¿ ?[en|y]¿  /_LVEF_verbe_de_verbeétat_           *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])                   *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (>avoir) [été|semblé|paru]                                                                     *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler])  [devenus|redevenus|restés|demeurés|devenues|redevenues|restées|demeurées]  *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_verbeétat_)     ?[en|y]¿                    /_LVEF_verbe_verbeétat_              *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_être_ppas_)     ?[en|y]¿  être              /_LVEF_verbe_être_ppas_              *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_avoir_ppas_)    ?[en|y]¿  avoir             /_LVEF_verbe_avoir_ppas_             *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_à_verbeétat_)   à  ?[ne|n’]¿ ?[en|y]¿       /_LVEF_verbe_à_verbeétat_            *WORD
    [<start>|,|$:Cs]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_de_verbeétat_)  [de|d’] ?[ne|n’]¿ ?[en|y]¿  /_LVEF_verbe_de_verbeétat_           *WORD
        <<- /ppas/ not value(\-1, "|légion|néant|réalité|") and
            ((morph(\1, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWMfe]")) or (morph(\1, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and morph(\2, ":(?:[123]p|P)")
        --1>> =switchGender(\-1)                                                                    && Accord erroné : “\1” et “\-1” ne sont pas accordés en genre.

    [<start>|,|$:Cs]  certains  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])                   *WORD
    [<start>|,|$:Cs]  certains  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (>avoir) [été|semblé|paru]                                                                     *WORD
    [<start>|,|$:Cs]  certains  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler])  [devenus|redevenus|restés|demeurés]                                        *WORD
    [<start>|,|$:Cs]  certains  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_verbeétat_)     ?[en|y]¿                    /_LVEF_verbe_verbeétat_              *WORD
    [<start>|,|$:Cs]  certains  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_être_ppas_)     ?[en|y]¿  être              /_LVEF_verbe_être_ppas_              *WORD
    [<start>|,|$:Cs]  certains  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_avoir_ppas_)    ?[en|y]¿  avoir             /_LVEF_verbe_avoir_ppas_             *WORD
    [<start>|,|$:Cs]  certains  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_à_verbeétat_)   à  ?[ne|n’]¿ ?[en|y]¿       /_LVEF_verbe_à_verbeétat_            *WORD
    [<start>|,|$:Cs]  certains  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_de_verbeétat_)  [de|d’] ?[ne|n’]¿ ?[en|y]¿  /_LVEF_verbe_de_verbeétat_           *WORD
        <<- /ppas/ not value(\-1, "|légion|néant|réalité|") and morph(\1, ":[NA].*:[me]:[pi]", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]") and morph(\2, ":(?:[123]p|P)")
        --1>> =switchGender(\-1)                                                                    && Accord erroné : “\1” et “\-1” ne sont pas accordés en genre.

    [<start>|,|$:Cs]  certaines  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])                   *WORD
    [<start>|,|$:Cs]  certaines  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (>avoir) [été|semblé|paru]                                                                     *WORD
    [<start>|,|$:Cs]  certaines  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler])  [devenues|redevenues|restées|demeurées]                                    *WORD
    [<start>|,|$:Cs]  certaines  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_verbeétat_)     ?[en|y]¿                    /_LVEF_verbe_verbeétat_              *WORD
    [<start>|,|$:Cs]  certaines  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_être_ppas_)     ?[en|y]¿  être              /_LVEF_verbe_être_ppas_              *WORD
    [<start>|,|$:Cs]  certaines  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_avoir_ppas_)    ?[en|y]¿  avoir             /_LVEF_verbe_avoir_ppas_             *WORD
    [<start>|,|$:Cs]  certaines  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_à_verbeétat_)   à  ?[ne|n’]¿ ?[en|y]¿       /_LVEF_verbe_à_verbeétat_            *WORD
    [<start>|,|$:Cs]  certaines  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_verbe_de_verbeétat_)  [de|d’] ?[ne|n’]¿ ?[en|y]¿  /_LVEF_verbe_de_verbeétat_           *WORD
        <<- /ppas/ not value(\-1, "|légion|néant|réalité|") and morph(\1, ":[NA].*:[fe]:[pi]", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]") and morph(\2, ":(?:[123]p|P)")
        --1>> =switchGender(\-1)                                                                    && Accord erroné : “\1” et “\-1” ne sont pas accordés en genre.

    *WORD  [que|qu’]  [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  ?[ne|n’]¿  ?[en|y]¿
    *WORD  [que|qu’]  [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  *WORD  ?[ne|n’]¿  ?[en|y]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || [être|devenir|redevenir|rester|paraître|paraitre|sembler]                                *WORD
    *WORD  [que|qu’]  [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  ?[ne|n’]¿  ?[en|y]¿
    *WORD  [que|qu’]  [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  *WORD  ?[ne|n’]¿  ?[en|y]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || être [devenu+e|redevenu+e|resté+e|demeuré+e]                                             *WORD
    *WORD  [que|qu’]  [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  ?[ne|n’]¿  ?[en|y]¿
    *WORD  [que|qu’]  [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  *WORD  ?[ne|n’]¿  ?[en|y]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || avoir [été|semblé|paru]                                                                  *WORD
        <<- /ppas/ checkAgreement(\1, \-1) !-1>>

TEST: Un orage est {{annoncée}}.
TEST: ce chat ne sera pas {{euthanasiée}}
TEST: Le chien qui n’y sera pas {{traitée}}
TEST: cet homme qui ne cesse pas d’être {{ennuyée}}
TEST: cet espion qui sera {{jugée}} bientôt
TEST: la danse n’en est pas {{fini}} pour autant…
TEST: Une averse semble être {{annoncé}}.
TEST: ta fille qui pense avoir été {{trompé}}
TEST: cette carte qui n’y sera jamais {{retrouvé}} à temps
TEST: Ma mémoire qui a aussi été {{effacé}}.
TEST: Sa femme qui ne paraît pas avoir été {{choqué}}
TEST: l’avenir de la région paraissait {{suspendue}} à ce financement
TEST: l’idiot qui n’y affirmait pas être devenu {{géniale}} mais seulement moins ignorant
TEST: Mon ami qui pensait être {{suivie}}
TEST: l’écolier qui ne croyait pas avoir été {{brillante}}
TEST: les femmes sont vraiment {{partis}}                                         ->> parties
TEST: les hommes n’en sont pas tout à fait {{fâchées}}                            ->> fâchés
TEST: les femmes sont vraiment {{partis}}                                                   ->> parties
TEST: les hommes n’en sont pas tout à fait {{fâchées}}                                      ->> fâchés
TEST: plusieurs invités qui n’en sont pas {{contentes}}
TEST: les réunions sans cesse reportées qui sont {{annulés}}
TEST: les hommes croyant être {{instruites}}
TEST: deux estimations ont été {{reçus}}                                                    ->> reçues
TEST: certains hommes croient avoir été {{dupées}}                                          ->> dupés
TEST: certains hommes qui pensent être plus {{instruites}} qu’ils ne sont réellement        ->> instruits
TEST: puisque certains hommes n’en pensent pas moins être {{trompées}}                      ->> trompés
TEST: certains hommes qui n’en pensent pas devenir {{folles}} pour autant                   ->> fous
TEST: certaines femmes pensent avoir été {{trompés}}                                        ->> trompées
TEST: certaines femmes ne croient pas être {{appauvris}}                                    ->> appauvries
TEST: certaines femmes qui y pensent être {{escroqués}}                                     ->> escroquées
TEST: certaines femmes qui n’en risquent pas moins d’être {{découverts}}                    ->> découvertes
TEST: Les tortures que ce journaliste pense être “normales”.
TEST: La première était René, le parfumeur, qui s’approcha de Catherine
TEST: les abrutis sont légion


__ppas_nom_propre_être_accord_genre__
    [<start>|,|$:Cs]  ($:M)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])          *WORD
27537
27538
27539
27540
27541
27542
27543
27544

27545
27546

27547
27548

27549
27550
27551
27552
27553
27554
27555
27616
27617
27618
27619
27620
27621
27622

27623
27624

27625
27626

27627
27628
27629
27630
27631
27632
27633
27634







-
+

-
+

-
+







TEST: Mais parmi les millions de causes à défendre, lesquelles choisir ?
TEST: les failles par lesquelles entrait l’eau étaient impossibles à boucher.


__conj_beaucoup__
    beaucoup    @:V¬:(?:P|Q|G|Y)
        <<- /conj/ not morph(<1, ":[VR]") >>>
        <<- /conj/ tag(\1, "bcp_plur") and not morph(\2, ":3p")
        <<- /conj/ tag(\1, "_bcp_plur_") and not morph(\2, ":3p")
        -2>> =suggVerb(\2, ":3p")                                   && Conjugaison erronée. Accord avec “\1”. Le substantif suivant étant au pluriel, le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ __else__ and tag(\1, "bcp_sing") and not morph(\2, ":3s")
        <<- /conj/ __else__ and tag(\1, "_bcp_sing_") and not morph(\2, ":3s")
        -2>> =suggVerb(\2, ":3s")                                   && Conjugaison erronée. Accord avec “\1”. Le substantif suivant étant au singulier, le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ __else__ and \2 != "a" and not tag(\1, "bcp_sing") and not morph(\2, ":3p") and not (space_after(\1, 1, 2) and morph(\2, ":V0"))
        <<- /conj/ __else__ and \2 != "a" and not tag(\1, "_bcp_sing_") and not morph(\2, ":3p") and not (space_after(\1, 1, 2) and morph(\2, ":V0"))
        -2>> =suggVerb(\2, ":3p")                                   && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.

    beaucoup    qui  @:V¬:(?:3p|P|G)
        <<- /conj/ -3>> =suggVerb(\3, ":3p")                        && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.

TEST: beaucoup {{vienne}}
TEST: Beaucoup d’hommes y {{était}}.