Grammalecte  Check-in [d654d12a61]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: d654d12a618e64038481d0032f09ab5aa79f406bae34b7b669bdd1d5f45ec3ca
User & Date: olr on 2020-11-18 20:13:43
Other Links: manifest | tags
Context
2020-11-18
20:17
[fx] lexicographer: show real value of token check-in: f657e4fdcd user: olr tags: fx, trunk
20:13
[fr] ajustements check-in: d654d12a61 user: olr tags: fr, trunk
14:23
[fr] gendicfr: tag erroné check-in: 81d205e8ed user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [7911f80077] to [aeab33e74b].

1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
....
2012
2013
2014
2015
2016
2017
2018










2019
2020
2021
2022
2023
2024
2025
....
2104
2105
2106
2107
2108
2109
2110






2111
2112



2113
2114
2115
2116
2117
2118
2119
....
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
....
2158
2159
2160
2161
2162
2163
2164



2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179










2180
2181
2182
2183
2184
2185



2186
2187
2188



2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
....
2221
2222
2223
2224
2225
2226
2227

2228
2229
2230
2231
2232
2233
2234
....
2236
2237
2238
2239
2240
2241
2242
2243



2244
2245
2246
2247
2248
2249
2250
2251
....
2264
2265
2266
2267
2268
2269
2270



2271
2272
2273
2274
2275
2276
2277
2278
2279



2280
2281
2282
2283
2284
2285
2286
....
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
.....
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
.....
16789
16790
16791
16792
16793
16794
16795
16796
16797
16798
16799
16800
16801
16802
16803
.....
17293
17294
17295
17296
17297
17298
17299
17300
17301
17302
17303
17304
17305
17306
17307
.....
19275
19276
19277
19278
19279
19280
19281
19282
19283
19284
19285
19286
19287
19288
19289
19290
19291
19292
19293
.....
19677
19678
19679
19680
19681
19682
19683
19684
19685
19686
19687
19688
19689
19690
19691
.....
20346
20347
20348
20349
20350
20351
20352
20353
20354
20355
20356
20357
20358
20359
20360
.....
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
21437
.....
21468
21469
21470
21471
21472
21473
21474




21475
21476
21477
21478
21479


21480
21481
21482
21483

21484
21485
21486
21487
21488
21489
21490
21491








21492
21493
21494
21495
21496
21497
21498
.....
28661
28662
28663
28664
28665
28666
28667
28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
.....
28696
28697
28698
28699
28700
28701
28702
28703
28704
28705
28706
28707
28708
28709
28710
28711
28712
28713
28714
28715
28716
.....
28722
28723
28724
28725
28726
28727
28728
28729
28730



28731
28732
28733
28734
28735
28736
28737
.....
31644
31645
31646
31647
31648
31649
31650
31651
31652
31653
31654
31655
31656
31657
31658
        <<- not value(<1, "|les|des|") =>> exclude(\1, ":N")

    en  [*NUM|*HOUR]
        <<- =>> select(\1, ":R")

    en  *WORD
        <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)", "*") =>> select(\1, ":Ov")
        <<- __else__ and not morph(<1, ":O[sv]") and morph(\2, ":[NDB]", "*") =>> select(\1, ":R")

    y   *WORD
        <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)") =>> select(\1, ":Ov")


__da_nous_vous__
    [ne|n’] [nous|vous]
................................................................................
    [ne|n’]  ?[le|la|l’|les|nous|vous|lui|leur]¿  @:¬:[OX]
    [ne|n’]  [nous|vous]     [le|la|l’|les|en]    @:¬:[OX]
    [ne|n’]  [le|la|l’|les]  [lui|leur|en]        @:¬:[OX]
    [ne|n’]  [lui|leur]      en                   @:¬:[OX]
    n’       ?[en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")
        <<- /-1>> neg











    [me|m’|te]  ?[le|la|l’|les|en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")

    [se|s’]  ?[le|la|l’|les|en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":[ISKQYP]")

................................................................................
        <<- not value(<1, "|l’|un|cet|quel|") =>> exclude(\1, ":N")

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


__da_mots_grammaticaaux__






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




    c’  [>avoir|>être]
        <<- =>> select(\1, ":O")

    ce  @:[NA].*:[me]
        <<- not value(<1, "|il|ils|on|ne|n’|") =>> select(\1, ":D")

................................................................................
    [<start>|,|(]  cela  [lui|leur|y]    en                      @:(?:[123]s|P)
    [<start>|,|(]  cela  @:(?:[123]s|P)
        <<- =>> exclude(\2, ":V")

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

    [de|d’] [me|m’|te|t’|se|s’|nous|vous|leur|moi|toi|soi|lui|elle|iel|eux|elles|iels]
    [de|d’] @:[MY]
    [de|d’] [un|une|le|la|l’|ce|cet|cette|ma|ta|sa|mon|notre|votre|leur|mes|tes|ses|nos|vos|leurs|quelque|quelques|plusieurs|certains|certaines]
        <<- =>> select(\1, ":R")

    face à
        <<- not morph(<1, ":(?:D|A.*:[fe]:[si])") =>> exclude(\1, ":N")

    mais
        <<- not value(<1, "|les|ces|des|mes|tes|ses|nos|vos|leurs|quelques|") =>> exclude(\1, ":N")

    n’ en >pouvoir mais
        <<- =>> define(\-1, ">mais/:W")
................................................................................
    [son|ton] ,
        <<- =>> select(\1, ":N")

    [une|le|la|les|des|chaque|quelque|quelques|cet|cette|ces|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leur|leurs|quel|quelle|quels|quelles] personne
    [une|la|cette|ma|ta|sa|votre|votre|leur|quel|quelle|quelque] tierce personne
        <<- =>> select(\-1, ":N")




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

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

    parmi *WORD
        <<- =>> select(\1, ":R")

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











    pas
        <<- morph(<1, ":[VWX]") =>> exclude(\1, ":N")

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




    pourvu
        <<- not value(>1, "|que|qu’|") =>> exclude(\1, ":G")




    un  @:[NA].*:[me]
        <<- not value(<1, "|le|de|ce|quel|") =>> select(\1, ":D")

    une @:[NA].*:[fe]
        <<- not value(<1, "|la|de|cette|quelle|une|ma|ta|sa|notre|votre|leur|") =>> select(\1, ":D")

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

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


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

    autre chose
................................................................................
    [de|d’]  ?[la|l’|leur]¿  @:¬:[YD]
        <<- not value(<1, "|semblant|") =>> exclude(\-1, ":V")

    du   @:[NA].*:[me]:[si]¬:[GY]
        <<- =>> select(\2, ":[NA]")

    aucun  @:[NA].*:[me]:s¬:G

        <<- =>> select(\1, ":D") and select(\2, ":N")

    certains   @:[NA].*:[me]:p¬:(?:G|3p|V0)
    certaines  @:[NA].*:[fe]:p¬:(?:G|3p|V0)
        <<- =>> select(\1, ":D") and select(\2, ":[NA]")

    d’ [un|une]  *WORD
................................................................................

    l’ [un|une]  *WORD
        <<- not value(\3, "|plus|") =>> select(\3, ":[123][sp]")

    [des|chaque|quelque|quelques|cet|cette|ces|mon|ma|ta|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs|aucun|aucune]  *WORD
        <<- not morph(\-1, ":V0") =>> exclude(\-1, ":V")

    sa  *WORD



        <<- not morph(\-1, ":V0") and not morph(\-1, ":3s") =>> exclude(\2, ":V")

    les  ~.es$
        <<- not value(<1, "|tu|ne|n’|me|m’|te|t’|se|s’|nous|vous|") and morph(\2, ":V1.*Ip.*:2s") and not tag_before(\1, "_2s_") and not value(>1, "|tu|pas|jamais|")
        =>> exclude(\2, ":V")

    [un|une]  *WORD
        <<- not value(<1, "|l’|quelqu’|quelqu|") and not value(\2, "|a|fut|fût|est|fait|") and not morph(\2, ":P") =>> exclude(\2, ":V")
................................................................................

    en tant que  *WORD
        <<- =>> select(\4, ":[NA]")

    ni *WORD
        <<- =>> select(\-1, ":N")




    par  *WORD
        <<- =>> exclude(\2, ":[123][sp]")

    plein  [de|d’]  @:[AN]
        <<- not morph(<1, ":(?:D.*:m|V[0-3]e)") =>> =define(\1, ":G")

    plusieurs  @:[NA].*:p¬:(?:G|3p|V0)
        <<- =>> select(\1, ":D") and select(\2, ":[NA]")




    source [de|d’]
        <<- morph(<1, ":V[0-3]e") =>> define(\1, ":ÉV")

    très  *WORD
        <<- =>> exclude(\2, ":[123][sp]")


................................................................................
    n’ importe [qui|quoi|quel|quelle|quels|quelles|où|ou|lequel|laquelle|lesquels|lesquelles]
        <<- ~1:2>> ␣

    [cultural|gender] studies
        <<- ~>> ␣
        <<- =>> define(\1, ":N:f:p")

    black [>bloc|>block]
    drag >queen
    drama >queen
    jet set
    machine [learning+s]
    standing >ovation
    star [system+s]
    quantitative easing
................................................................................
    [loin|près] [de|d’] tout [ça|cela|ceci]
    ni [de|d’] près ?,¿ ni [de|d’] loin
        <<- ~>> *


__purge_locutions__
    à *NUM  %
    à [autrui|bâbord|brûle-pourpoint|califourchon|chacun|cheval|cloche-pied|confesse|contrecœur|contre-cœur|contre-pied|contre-sens|contretemps|contre-temps|>demi-mot|demi-voix|dessein|foison|grand-peine|genoux|gogo|jamais|jeun|loisir|merveille|moitié|nouveau|outrance|peine|perpète|perpette|perpétuité|présent|raison|rallonge|rebrousse-poil|reculons|regret|renverse|revers|risque|sec|tâtons|tire-d’aile|tire-larigot|tort|tribord|tout-va|vif]
    à [mi-chemin|mi-côte|mi-jambe+s|mi-mandat|mi-mot+s|mi-parcours|mi-temps|mi-voix]
    à air comprimé
    à angle droit
    à armes égales
    à aucun prix
    à autre chose
    à ?[si|très|trop]¿ bas [bruit|cout|coût|prix]
................................................................................
    >infirmier [de|d’] garde
    >ingénieur du son
    >inspection [de|d’] routine
    >instinct [de|d’] survie
    >instrument à [cordes|percussion|vent]
    >instrument [de|d’] mesure
    >interface [utilisateur+s]
    >inteféron [de|d’] type [I|II|III|1|2|3]
    >intermittent du spectacle
    >invité d’ honneur
    >invité surprise
    >issue [de|d’] secours
    >jeu d’ [échecs|enfant]
    >jeu [de|d’] [cartes|dupes|>rôle|société]
    >joie [de|d’] vivre
................................................................................
    [>clé|>clef] en >main
    dernier cri
    fleur bleue
    grand [format|public|luxe|maximum]
    grande taille
    grandeur nature
    haut de gamme
    haute [résolution|fidélité|tension]
    hors service
    longue [conservation|distance|portée|durée]
    meilleur marché
    nouvelle [formule|génération]
    numéro un
    numéro $:B
    plein cadre
................................................................................
    >bec de >canne
    bec-de-canne
    becs-de-cannes
    bec-de-cannes
    becs-de-canne
        <<- /conf/ ->> bec-de-cane|becs-de-cane         && Confusion. Le bec-de-cane se somme ainsi à cause de la ressemblance avec le bec de l’animal.|https://fr.wiktionary.org/wiki/bec-de-cane

    [>aéroport|>baie|>port|>festival|>gare|>mairie|>maire|>tourisme|>ville|vieux-port] de [>cane|>canne]
        <<- /conf/ not value(\3, "|Cannes|CANNES|") -3>> Cannes                         && Confusion. La ville portuaire de la Côte d’Azur s’écrit “Cannes”.

    [>aller|>dormir|>habiter|>partir|>situer|>vivre] [à|a] [>cane|>canne]
    [>bienvenue|>restaurant|>activité|>hôtel|>séjour|>camping] [à|a] [>cane|>canne]
        <<- /conf/ not value(\3, "|Cannes|CANNES|") -3>> Cannes                         && Confusion. La ville portuaire de la Côte d’Azur s’écrit “Cannes”.

TEST: {{canes}} à pêche
TEST: {{cane}} de défense
TEST: alcool de {{cane}}
TEST: œufs de {{cannes}}
TEST: appuyé sur sa {{cane}}
................................................................................
TEST: il a pris {{ces}} jambes à son {{cout}}                                           ->> ses|||cou
TEST: il faut porter un {{cou}} à ces salauds                                           ->> coup
TEST: encaisser les {{cous}}                                                            ->> coups


# cuire / cuir
__conf_cuire_cuir__
    >faire >cuir $:D [>blanquette|>boulette|>brochette|>bœuf|>carotte|>champignon|>confit|>cèpe|>côte|>côtelette|>escalope|>fruit|>fève|>girolle|>haricot|>herbe|>jarret|>joue|>lardon|>lentille|>longe|>légume|>marron|>mijoté|>morille|>nem|>nouille|>ognon|>oignon|>omelette|>patate|>paupiette|>pied|>poire|>poitrine|>pomme|>porc|>potée|>poêlée|>pruneau|>pâte|>pâte|>pâté|>ragout|>ragoût|rillettes|>rognon|>rouelle|>rôti|>sauté|>steak|>terrine|>veau|>émincé|>épice|>œuf]
        <<- /conf/ -2>> cuire                                       && Confusion. Le cuir est la peau d’un animal. Pour parler de la cuisson, écrivez “cuire”.|https://fr.wiktionary.org/wiki/cuire

    >aller [m’|t’|s’|nous|vous|leur] en >cuir
    [>aller|>pouvoir|>savoir] ?[me|m’|te|t’|se|s’|nous|vous|leur]¿ >cuir
        <<- /conf/ --1>> cuire                                      && Confusion. Le cuir est la peau d’un animal. Pour parler de la cuisson, écrivez “cuire”.|https://fr.wiktionary.org/wiki/cuire

TEST: Va te faire {{cuir}} un œuf.                              ->> cuire
................................................................................
TEST: il accomplit le {{jeune}} rituel
TEST: de {{jeûnes}} adultes
TEST: les {{jeûnes}} travailleurs du nouveau centre commercial


# lait / laid / lé
__conf_lait_laid_laie_lé__
    [>avaler|>boire|>chauffer|>ingurgiter|>réchauffer] [du|le|ce] [>laid|>laie|>lai|>lé]
    >boire [du|le|ce] petit [>laid|>laie|>lai|>lé]
    >verre [de|d’] [>laid|>laie|>lai|>lé]
        <<- /conf/ --1>> lait                                           && Confusion probable. Le produit laitier s’écrit “lait”.

    [laid+s|>laie|>lai|>lé] [de|d’] [brebis|coco|chèvre|poule|soja|vache]
        <<- /conf/ -1>> lait                                            && Confusion probable. Le produit laitier s’écrit “lait”.

................................................................................


# venimeux / vénéneux
__conf_venimeux_vénéreux__
    [>serpent|>araignée|>scorpion|>vipère|>cobra|>crapaud|>grenouille|>dendrobate|>poulpe|>guêpe|>abeille|>frelon|>méduse|>morsure|>piqûre|>dard|>dent|>croc|>crochet]  >vénéneux
        <<- /conf/ -2>> =\1.replace("énén", "enim").replace("ÉNÉN", "ENIM")                         && Confusion : “vénéneux” se dit des plantes. Employez “venimeux”.|https://fr.wiktionary.org/wiki/venimeux

    [>plant|>champignon|>lépiote|>baie|>fruit|>herbe|>fleur|>chair|>moule|humus|>substance|>végétal]  >venimeux
        <<- /conf/ -2>> =\1.replace("enim", "énén").replace("ENIM", "ÉNÉN")                         && Confusion : pas de venin ici, écrivez “vénéneux”.|https://fr.wiktionary.org/wiki/v%C3%A9n%C3%A9neux

TEST: ces araignées {{vénéneuses}}.
TEST: ce champignon {{venimeux}}.


# ver / vers / verre
................................................................................

__immunités_gn__
    ## adjectif masculin au pluriel après nom au singulier
    [au|aux] (*WORD) et au (*WORD)  @:[AQ].*:[me]:p
    [au|aux] (*WORD) et à [un|ce|cet|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:p
    à [la|l’|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et au (*WORD)  @:[AQ].*:[me]:p
    à [la|l’|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et à [un|ce|cet|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:p




        <<- morph(\1, ":N") and morph(\2, ":N.*:[me]:[si]") !-1>> gn

    ## adjectif masculin au pluriel après nom au féminin
    [au|aux] (*WORD) et à [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:[pi]
    à [un|des|ce|cet|ces|mon|ton|son|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et à [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:[pi]


        <<- morph(\1, ":N.*:m") and morph(\2, ":N.*:[fe]") !-1>> gn

    ## adjectif féminin au pluriel
    à [la|l’|une|des|cette|ces|ma|ta|sa|mon|ton|son|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et à [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[fe]:[pi]

        <<- morph(\1, ":N.*:[fe]") and morph(\2, ":N.*:[fe]") !-1>> gn

TEST: à mon chat et à mon chien malades
TEST: à ma mère et à mon père malades
TEST: à la politesse et à la considération indispensables
TEST: à une rapidité et à une profondeur déconcertantes…
TEST: L’affichage s’adapte aux filtres et à la période spécifiés.
TEST: à mes armes et à mon armure oubliées au château










## l’

__gn_l_1m__
    ,  l’  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", "*") -3>> =suggSing(\3)                             && Accord de nombre erroné : après « l’ », « \3 » devrait être au singulier.
................................................................................
    [<start>|,|(]  *WORD  [nous|vous|lui]
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/") and not morph(>1, ":Y")
        -2:3>> =suggVerbTense(\2, ":E", ":2s")+"-"+\3   && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206

TEST: {{Donne nous}} du café.
TEST: si ça se peut, {{apprend nous}} à réussir.
TEST: Ce que Jeanne, femme de Patrick, veut vous dire de sa vie.
TEST: Daignez le lui permettre


__imp_union_y__
    *WORD  y
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]") and morph(>1, ":|<end>", ":(?:Y|3[sp]|Oo)|>(?:en|y)/") and morph(<1, ":Cc|<start>|>,")
        ->> \1-\2                                       && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206

TEST: {{Donne y}} du tien.


__imp_union_les__
    *WORD  les
................................................................................
TEST: Allez les chercher.
TEST: Soyez les plus gentils qu’on puisse imaginer.


__imp_union_le_la_leur__
    *WORD  [le|la|leur]
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:venir|aller|partir)/") and morph(>1, ":|<end>|>,", ":(?:N|A|Q|Y|MP|H|T)|>(?:pour|plus|moins|mieux|peu|plupart|trop|très|en|y|une?)/")
            and morph(<1, ":Cc|<start>|>,")
        ->> \1-\2                                       && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206

    [<start>|,|(]  *WORD  [le|la|leur]
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/")
            and morph(>1, ":|<end>|>,", ":(?:N|A|Y|B|T|MP|3[sp])|>(?:pour|plus|moins|mieux|peu|trop|très|une)/")
        -2:3>> =suggVerbTense(\2, ":E", ":2s")+"-"+\3   && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206

TEST: {{Prends le}} avec toi.
TEST: {{Dites leur}} que nous sommes là.
TEST: c’est ça, {{apprend le}} parce que c’est compliqué.
TEST: {{pardonne leur}}, ils ne savent pas ce qu’ils font
TEST: un sujet si extrêmement politique et polémique lui a donné un accès
................................................................................
TEST: Va la demander au concierge.
TEST: Allons le questionner encore une fois.
TEST: Sois le pire des salopards.
TEST: L’Astrance brille de mille feux, écrit le Michelin 2010.
TEST: Faites le plein de culture en vous abonnant dès 1 € !
TEST: Fais le plein de vêtements avant de partir en vacances
TEST: on l’attend pour la fin de semaine, prévoit le Dr Bayart.
TEST: fais le bien
TEST: fais-le bien





__imp_union_en__
    *WORD  en
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:aller|partir)/") and morph(>1, ":|<end>|>,", ":(?:N|A|Q|Y|M|P|B|H|T|D|Ov)|>(?:plus|moins|mieux|peu|trop|très|une?)/") and morph(<1, ":Cc|<start>|>,")
        ->> \1-\2                                       && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206
................................................................................
TEST: Ce qu’ils nous ont fait
TEST: Comment vous expliquez ça ?
TEST: Comment vous expliquer ça ?
TEST: le général n’en aura cure
TEST: n’en avoir cure et faire comme si de rien n’était.
TEST: Comme d’habitude, ils ont tout fait à l’arrache.
TEST: tout un système pour justifier que “nous” avons toujours raison et que nous ne pouvons jamais avoir tort.
TEST: Daignez le lui permettre.
TEST: Renvoyer quelqu’un sans l’avoir examiné peut être un grand danger.
TEST: En 1944, au sortir des deux guerres ayant ravagé l’Europe, le CNR (conseil national de la résistance) avait bien mesuré les tenants et les aboutissants, c’est-à-dire les causes et les conséquences du ravage des inégalités et du jusqu’au boutisme de l’auto-défense d’une caste pour préserver ses acquis.
TEST: Ceux de l’Université sont plus perfectionnés
TEST: Celles de l’Institut sont plus perfectionnées
TEST: Judith A. Allan a aussi constaté que les études sur les crises de la masculinité ne proposent pas ou que très rarement d’indicateurs pour déterminer si une société est (trop) féminisée et si les hommes sont (réellement) en crise.
TEST: une procédure abusive pour fermer la porte qu’elles ont essayé d’ouvrir
TEST: En France, les hauts fonctionnaires gagnent en moyenne 7850 euros net







|







 







>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>


>
>
>







 







|

|


|







 







>
>
>



|











>
>
>
>
>
>
>
>
>
>






>
>
>



>
>
>











|







 







>







 







|
>
>
>
|







 







>
>
>









>
>
>







 







|







 







|







 







|







 







|







 







|



|







 







|







 







|







 







|







 







>
>
>
>





>
>




>








>
>
>
>
>
>
>
>







 







<





|







 







|





|







 







|

>
>
>







 







<







1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
....
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
....
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
....
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
....
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
....
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
....
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
....
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
....
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
.....
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
.....
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
.....
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
17352
17353
17354
17355
.....
19323
19324
19325
19326
19327
19328
19329
19330
19331
19332
19333
19334
19335
19336
19337
19338
19339
19340
19341
.....
19725
19726
19727
19728
19729
19730
19731
19732
19733
19734
19735
19736
19737
19738
19739
.....
20394
20395
20396
20397
20398
20399
20400
20401
20402
20403
20404
20405
20406
20407
20408
.....
21471
21472
21473
21474
21475
21476
21477
21478
21479
21480
21481
21482
21483
21484
21485
.....
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
21540
21541
21542
21543
21544
21545
21546
21547
21548
21549
21550
21551
21552
21553
21554
21555
21556
21557
21558
21559
21560
21561
.....
28724
28725
28726
28727
28728
28729
28730

28731
28732
28733
28734
28735
28736
28737
28738
28739
28740
28741
28742
28743
.....
28758
28759
28760
28761
28762
28763
28764
28765
28766
28767
28768
28769
28770
28771
28772
28773
28774
28775
28776
28777
28778
.....
28784
28785
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795
28796
28797
28798
28799
28800
28801
28802
.....
31709
31710
31711
31712
31713
31714
31715

31716
31717
31718
31719
31720
31721
31722
        <<- not value(<1, "|les|des|") =>> exclude(\1, ":N")

    en  [*NUM|*HOUR]
        <<- =>> select(\1, ":R")

    en  *WORD
        <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)", "*") =>> select(\1, ":Ov")
        <<- __else__ and not morph(<1, ":O[sv]") and morph(\2, ":[NADB]", "*") =>> select(\1, ":R")

    y   *WORD
        <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)") =>> select(\1, ":Ov")


__da_nous_vous__
    [ne|n’] [nous|vous]
................................................................................
    [ne|n’]  ?[le|la|l’|les|nous|vous|lui|leur]¿  @:¬:[OX]
    [ne|n’]  [nous|vous]     [le|la|l’|les|en]    @:¬:[OX]
    [ne|n’]  [le|la|l’|les]  [lui|leur|en]        @:¬:[OX]
    [ne|n’]  [lui|leur]      en                   @:¬:[OX]
    n’       ?[en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")
        <<- /-1>> neg

    [ne|n’]                 [lui|en|leur|le|la|l’|les|nous|vous|y]
    [me|m’|te|t’|se|s’]     [en|le|la|l’|les|y]
        <<- =>> select(\2, ":Ov")

    lui @:[ISKQYP]¬:3s
        <<- =>> select(\1, ":Ov")

    lui
        <<- morph(<1, ":R") =>> exclude(\1, ":(?:Q|Os)")

    [me|m’|te]  ?[le|la|l’|les|en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")

    [se|s’]  ?[le|la|l’|les|en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":[ISKQYP]")

................................................................................
        <<- not value(<1, "|l’|un|cet|quel|") =>> exclude(\1, ":N")

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


__da_mots_grammaticaaux__
    a ?@:[WX]¿ été
        <<- =>> select(\1, ":V0")

    après avoir $:Q
        <<- =>> exclude(\2, ":N")

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

    [<start>|,|(] avant [que|qu’|$:D]
        <<- =>> select(\2, ":R")

    c’  [>avoir|>être]
        <<- =>> select(\1, ":O")

    ce  @:[NA].*:[me]
        <<- not value(<1, "|il|ils|on|ne|n’|") =>> select(\1, ":D")

................................................................................
    [<start>|,|(]  cela  [lui|leur|y]    en                      @:(?:[123]s|P)
    [<start>|,|(]  cela  @:(?:[123]s|P)
        <<- =>> exclude(\2, ":V")

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

    [de|d’] [me|m’|te|t’|se|s’|en|y|nous|vous|moi|toi|soi|lui|elle|iel|eux|elles|iels]
    [de|d’] @:[MY]
    [de|d’] [un|une|le|la|l’|les|ce|cet|cette|ces|ma|ta|sa|mon|notre|votre|leur|mes|tes|ses|nos|vos|leurs|quelque|quelques|plusieurs|certains|certaines|maints|maintes]
        <<- =>> select(\1, ":R")

    face [à|au|aux]
        <<- not morph(<1, ":(?:D|A.*:[fe]:[si])") =>> exclude(\1, ":N")

    mais
        <<- not value(<1, "|les|ces|des|mes|tes|ses|nos|vos|leurs|quelques|") =>> exclude(\1, ":N")

    n’ en >pouvoir mais
        <<- =>> define(\-1, ">mais/:W")
................................................................................
    [son|ton] ,
        <<- =>> select(\1, ":N")

    [une|le|la|les|des|chaque|quelque|quelques|cet|cette|ces|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leur|leurs|quel|quelle|quels|quelles] personne
    [une|la|cette|ma|ta|sa|votre|votre|leur|quel|quelle|quelque] tierce personne
        <<- =>> select(\-1, ":N")

    même $:D
        <<- morph(<1, "<start>|>,|:[ISKYP]", "*") =>> select(\1, ":W")

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

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

    parmi *WORD
        <<- =>> select(\1, ":R")

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

    selon $:D
        <<- =>> select(\1, ":R")

    selon [,|<end>]
        <<- =>> select(\1, ":W")

    si @:[OD]
    s’ [il|ils]
        <<- =>> select(\1, ":C")

    pas
        <<- morph(<1, ":[VWX]") =>> exclude(\1, ":N")

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

    [un|une|des|le|la|l’|les|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] [plus|moins] @:[AW]¬:G
        <<- =>> select(\2, ":W")

    pourvu
        <<- not value(>1, "|que|qu’|") =>> exclude(\1, ":G")

    sur @:[BD]
        <<- morph(<1, "<start>|>,|:(?:V|N.*:f)", ":V[123]e") =>> select(\1, ":R")

    un  @:[NA].*:[me]
        <<- not value(<1, "|le|de|ce|quel|") =>> select(\1, ":D")

    une @:[NA].*:[fe]
        <<- not value(<1, "|la|de|cette|quelle|une|ma|ta|sa|notre|votre|leur|") =>> select(\1, ":D")

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

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


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

    autre chose
................................................................................
    [de|d’]  ?[la|l’|leur]¿  @:¬:[YD]
        <<- not value(<1, "|semblant|") =>> exclude(\-1, ":V")

    du   @:[NA].*:[me]:[si]¬:[GY]
        <<- =>> select(\2, ":[NA]")

    aucun  @:[NA].*:[me]:s¬:G
    aucune @:[NA].*:[fe]:s¬:G
        <<- =>> select(\1, ":D") and select(\2, ":N")

    certains   @:[NA].*:[me]:p¬:(?:G|3p|V0)
    certaines  @:[NA].*:[fe]:p¬:(?:G|3p|V0)
        <<- =>> select(\1, ":D") and select(\2, ":[NA]")

    d’ [un|une]  *WORD
................................................................................

    l’ [un|une]  *WORD
        <<- not value(\3, "|plus|") =>> select(\3, ":[123][sp]")

    [des|chaque|quelque|quelques|cet|cette|ces|mon|ma|ta|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs|aucun|aucune]  *WORD
        <<- not morph(\-1, ":V0") =>> exclude(\-1, ":V")

    ce @:[NA].*:[me]:[si]¬:(?:3[sp]|V0)
        <<- not value(<1, "|il|elle|on|iel|ils|elles|iels|ne|n’|") =>> select(\-1, ":[NA]")

    sa  @¬:(?:V0|3s)
        <<- =>> exclude(\2, ":V")

    les  ~.es$
        <<- not value(<1, "|tu|ne|n’|me|m’|te|t’|se|s’|nous|vous|") and morph(\2, ":V1.*Ip.*:2s") and not tag_before(\1, "_2s_") and not value(>1, "|tu|pas|jamais|")
        =>> exclude(\2, ":V")

    [un|une]  *WORD
        <<- not value(<1, "|l’|quelqu’|quelqu|") and not value(\2, "|a|fut|fût|est|fait|") and not morph(\2, ":P") =>> exclude(\2, ":V")
................................................................................

    en tant que  *WORD
        <<- =>> select(\4, ":[NA]")

    ni *WORD
        <<- =>> select(\-1, ":N")

    nombre [de|d’|des]
        <<- morph(<1, ":V|<start>|>,") =>> select(\1, ":N")

    par  *WORD
        <<- =>> exclude(\2, ":[123][sp]")

    plein  [de|d’]  @:[AN]
        <<- not morph(<1, ":(?:D.*:m|V[0-3]e)") =>> =define(\1, ":G")

    plusieurs  @:[NA].*:p¬:(?:G|3p|V0)
        <<- =>> select(\1, ":D") and select(\2, ":[NA]")

    sans  @:[ISKP]
        <<- =>> select(\2, ":[NA]")

    source [de|d’]
        <<- morph(<1, ":V[0-3]e") =>> define(\1, ":ÉV")

    très  *WORD
        <<- =>> exclude(\2, ":[123][sp]")


................................................................................
    n’ importe [qui|quoi|quel|quelle|quels|quelles|où|ou|lequel|laquelle|lesquels|lesquelles]
        <<- ~1:2>> ␣

    [cultural|gender] studies
        <<- ~>> ␣
        <<- =>> define(\1, ":N:f:p")

    black [>bloc|block+s]
    drag >queen
    drama >queen
    jet set
    machine [learning+s]
    standing >ovation
    star [system+s]
    quantitative easing
................................................................................
    [loin|près] [de|d’] tout [ça|cela|ceci]
    ni [de|d’] près ?,¿ ni [de|d’] loin
        <<- ~>> *


__purge_locutions__
    à *NUM  %
    à [autrui|bâbord|brûle-pourpoint|califourchon|chacun|cheval|cloche-pied|confesse|contre-courant|contrecœur|contre-cœur|contre-pied|contre-sens|contretemps|contre-temps|>demi-mot|demi-voix|dessein|foison|grand-peine|genoux|gogo|jamais|jeun|loisir|merveille|moitié|nouveau|outrance|peine|perpète|perpette|perpétuité|présent|raison|rallonge|rebrousse-poil|reculons|regret|renverse|revers|risque|sec|tâtons|tire-d’aile|tire-larigot|tort|tribord|tout-va|vif]
    à [mi-chemin|mi-côte|mi-jambe+s|mi-mandat|mi-mot+s|mi-parcours|mi-temps|mi-voix]
    à air comprimé
    à angle droit
    à armes égales
    à aucun prix
    à autre chose
    à ?[si|très|trop]¿ bas [bruit|cout|coût|prix]
................................................................................
    >infirmier [de|d’] garde
    >ingénieur du son
    >inspection [de|d’] routine
    >instinct [de|d’] survie
    >instrument à [cordes|percussion|vent]
    >instrument [de|d’] mesure
    >interface [utilisateur+s]
    >interféron [de|d’] type [I|II|III|1|2|3]
    >intermittent du spectacle
    >invité d’ honneur
    >invité surprise
    >issue [de|d’] secours
    >jeu d’ [échecs|enfant]
    >jeu [de|d’] [cartes|dupes|>rôle|société]
    >joie [de|d’] vivre
................................................................................
    [>clé|>clef] en >main
    dernier cri
    fleur bleue
    grand [format|public|luxe|maximum]
    grande taille
    grandeur nature
    haut de gamme
    haute [résolution|fidélit|sécurit|tension]
    hors service
    longue [conservation|distance|portée|durée]
    meilleur marché
    nouvelle [formule|génération]
    numéro un
    numéro $:B
    plein cadre
................................................................................
    >bec de >canne
    bec-de-canne
    becs-de-cannes
    bec-de-cannes
    becs-de-canne
        <<- /conf/ ->> bec-de-cane|becs-de-cane         && Confusion. Le bec-de-cane se somme ainsi à cause de la ressemblance avec le bec de l’animal.|https://fr.wiktionary.org/wiki/bec-de-cane

    [>aéroport|baie+s|>port|>festival|>gare|>mairie|>maire|>tourisme|>ville|vieux-port] de [>cane|>canne]
        <<- /conf/ not value(\3, "|Cannes|CANNES|") -3>> Cannes                         && Confusion. La ville portuaire de la Côte d’Azur s’écrit “Cannes”.

    [>aller|>dormir|>habiter|>partir|>situer|>vivre] [à|a] [>cane|>canne]
    [>bienvenu|>restaurant|>activité|>hôtel|>séjour|>camping] [à|a] [>cane|>canne]
        <<- /conf/ not value(\3, "|Cannes|CANNES|") -3>> Cannes                         && Confusion. La ville portuaire de la Côte d’Azur s’écrit “Cannes”.

TEST: {{canes}} à pêche
TEST: {{cane}} de défense
TEST: alcool de {{cane}}
TEST: œufs de {{cannes}}
TEST: appuyé sur sa {{cane}}
................................................................................
TEST: il a pris {{ces}} jambes à son {{cout}}                                           ->> ses|||cou
TEST: il faut porter un {{cou}} à ces salauds                                           ->> coup
TEST: encaisser les {{cous}}                                                            ->> coups


# cuire / cuir
__conf_cuire_cuir__
    >faire >cuir $:D [>blanquette|boulette+s|>brochette|>bœuf|>carotte|>champignon|>confit|>cèpe|>côte|>côtelette|>escalope|>fruit|>fève|>girolle|>haricot|>herbe|>jarret|>joue|>lardon|>lentille|>longe|>légume|>marron|>mijoté|>morille|>nem|>nouille|>ognon|>oignon|>omelette|>patate|>paupiette|>pied|>poire|>poitrine|>pomme|>porc|>potée|>poêlée|>pruneau|>pâte|>pâte|>pâté|>ragout|>ragoût|rillettes|>rognon|>rouelle|>rôti|>sauté|>steak|>terrine|>veau|>émincé|>épice|>œuf]
        <<- /conf/ -2>> cuire                                       && Confusion. Le cuir est la peau d’un animal. Pour parler de la cuisson, écrivez “cuire”.|https://fr.wiktionary.org/wiki/cuire

    >aller [m’|t’|s’|nous|vous|leur] en >cuir
    [>aller|>pouvoir|>savoir] ?[me|m’|te|t’|se|s’|nous|vous|leur]¿ >cuir
        <<- /conf/ --1>> cuire                                      && Confusion. Le cuir est la peau d’un animal. Pour parler de la cuisson, écrivez “cuire”.|https://fr.wiktionary.org/wiki/cuire

TEST: Va te faire {{cuir}} un œuf.                              ->> cuire
................................................................................
TEST: il accomplit le {{jeune}} rituel
TEST: de {{jeûnes}} adultes
TEST: les {{jeûnes}} travailleurs du nouveau centre commercial


# lait / laid / lé
__conf_lait_laid_laie_lé__
    [>avaler|>boire|>chauffer|>ingurgiter|>réchauffer] [du|le|ce] [>laid|>lai|>lé]
    >boire [du|le|ce] petit [>laid|>laie|>lai|>lé]
    >verre [de|d’] [>laid|>laie|>lai|>lé]
        <<- /conf/ --1>> lait                                           && Confusion probable. Le produit laitier s’écrit “lait”.

    [laid+s|>laie|>lai|>lé] [de|d’] [brebis|coco|chèvre|poule|soja|vache]
        <<- /conf/ -1>> lait                                            && Confusion probable. Le produit laitier s’écrit “lait”.

................................................................................


# venimeux / vénéneux
__conf_venimeux_vénéreux__
    [>serpent|>araignée|>scorpion|>vipère|>cobra|>crapaud|>grenouille|>dendrobate|>poulpe|>guêpe|>abeille|>frelon|>méduse|>morsure|>piqûre|>dard|>dent|>croc|>crochet]  >vénéneux
        <<- /conf/ -2>> =\1.replace("énén", "enim").replace("ÉNÉN", "ENIM")                         && Confusion : “vénéneux” se dit des plantes. Employez “venimeux”.|https://fr.wiktionary.org/wiki/venimeux

    [>plant|>champignon|>lépiote|baie+s|>fruit|>herbe|>fleur|>chair|>moule|humus|>substance|>végétal]  >venimeux
        <<- /conf/ -2>> =\1.replace("enim", "énén").replace("ENIM", "ÉNÉN")                         && Confusion : pas de venin ici, écrivez “vénéneux”.|https://fr.wiktionary.org/wiki/v%C3%A9n%C3%A9neux

TEST: ces araignées {{vénéneuses}}.
TEST: ce champignon {{venimeux}}.


# ver / vers / verre
................................................................................

__immunités_gn__
    ## adjectif masculin au pluriel après nom au singulier
    [au|aux] (*WORD) et au (*WORD)  @:[AQ].*:[me]:p
    [au|aux] (*WORD) et à [un|ce|cet|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:p
    à [la|l’|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et au (*WORD)  @:[AQ].*:[me]:p
    à [la|l’|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et à [un|ce|cet|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:p
    [du|des] (*WORD) et du (*WORD)  @:[AQ].*:[me]:p
    [du|des] (*WORD) et [de|d’] [un|ce|cet|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:p
    [de|d’] [la|l’|un|une|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et du (*WORD)  @:[AQ].*:[me]:p
    [de|d’] [la|l’|un|une|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et [de|d’] [un|ce|cet|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:p
        <<- morph(\1, ":N") and morph(\2, ":N.*:[me]:[si]") !-1>> gn

    ## adjectif masculin au pluriel après nom au féminin
    [au|aux] (*WORD) et à [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:[pi]
    à [un|des|ce|cet|ces|mon|ton|son|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et à [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:[pi]
    [du|des] (*WORD) et [de|d’] [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:[pi]
    [de|d’] [un|ce|cet|ces|mon|ton|son|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et [de|d’] [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[me]:[pi]
        <<- morph(\1, ":N.*:m") and morph(\2, ":N.*:[fe]") !-1>> gn

    ## adjectif féminin au pluriel
    à [la|l’|une|des|cette|ces|ma|ta|sa|mon|ton|son|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et à [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[fe]:[pi]
    [de|d’] [la|l’|une|cette|ces|ma|ta|sa|mon|ton|son|notre|votre|leur|mes|tes|ses|nos|vos|leurs] (*WORD) et [de|d’] [la|l’|une|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] (*WORD)  @:[AQ].*:[fe]:[pi]
        <<- morph(\1, ":N.*:[fe]") and morph(\2, ":N.*:[fe]") !-1>> gn

TEST: à mon chat et à mon chien malades
TEST: à ma mère et à mon père malades
TEST: à la politesse et à la considération indispensables
TEST: à une rapidité et à une profondeur déconcertantes…
TEST: L’affichage s’adapte aux filtres et à la période spécifiés.
TEST: à mes armes et à mon armure oubliées au château
TEST: du chien et du chat perdus
TEST: du petit et de la grande partie à l’école
TEST: du petit et de la grande partis à l’école
TEST: des amis et de notre mère malades
TEST: des amis et de notre mère partis dans l’autre monde
TEST: des amis et de notre mère partie dans l’autre monde
TEST: du petit et de notre mère partis dans l’autre monde
TEST: de l’insécurité et de l’instabilité provoquées


## l’

__gn_l_1m__
    ,  l’  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", "*") -3>> =suggSing(\3)                             && Accord de nombre erroné : après « l’ », « \3 » devrait être au singulier.
................................................................................
    [<start>|,|(]  *WORD  [nous|vous|lui]
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/") and not morph(>1, ":Y")
        -2:3>> =suggVerbTense(\2, ":E", ":2s")+"-"+\3   && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206

TEST: {{Donne nous}} du café.
TEST: si ça se peut, {{apprend nous}} à réussir.
TEST: Ce que Jeanne, femme de Patrick, veut vous dire de sa vie.



__imp_union_y__
    *WORD  y
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]") and morph(>1, ":|<end>", ":(?:Y|3[sp]|Oo)|>en/") and morph(<1, ":Cc|<start>|>,")
        ->> \1-\2                                       && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206

TEST: {{Donne y}} du tien.


__imp_union_les__
    *WORD  les
................................................................................
TEST: Allez les chercher.
TEST: Soyez les plus gentils qu’on puisse imaginer.


__imp_union_le_la_leur__
    *WORD  [le|la|leur]
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:venir|aller|partir)/") and morph(>1, ":|<end>|>,", ":(?:N|A|Q|Y|MP|H|T)|>(?:pour|plus|moins|mieux|peu|plupart|trop|très|en|y|une?|leur|lui)/")
            and morph(<1, ":Cc|<start>|>,")
        ->> \1-\2                                       && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206

    [<start>|,|(]  *WORD  [le|la|leur]
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/")
            and morph(>1, ":|<end>|>,", ":(?:N|A|Y|B|T|MP|3[sp])|>(?:pour|plus|moins|mieux|peu|plupart|trop|très|en|y|une?|leur|lui)/")
        -2:3>> =suggVerbTense(\2, ":E", ":2s")+"-"+\3   && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206

TEST: {{Prends le}} avec toi.
TEST: {{Dites leur}} que nous sommes là.
TEST: c’est ça, {{apprend le}} parce que c’est compliqué.
TEST: {{pardonne leur}}, ils ne savent pas ce qu’ils font
TEST: un sujet si extrêmement politique et polémique lui a donné un accès
................................................................................
TEST: Va la demander au concierge.
TEST: Allons le questionner encore une fois.
TEST: Sois le pire des salopards.
TEST: L’Astrance brille de mille feux, écrit le Michelin 2010.
TEST: Faites le plein de culture en vous abonnant dès 1 € !
TEST: Fais le plein de vêtements avant de partir en vacances
TEST: on l’attend pour la fin de semaine, prévoit le Dr Bayart.
TEST: fais le bien et ne juge pas
TEST: fais-le bien
TEST: Daignez le lui permettre
TEST: Daignez la leur donner



__imp_union_en__
    *WORD  en
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:aller|partir)/") and morph(>1, ":|<end>|>,", ":(?:N|A|Q|Y|M|P|B|H|T|D|Ov)|>(?:plus|moins|mieux|peu|trop|très|une?)/") and morph(<1, ":Cc|<start>|>,")
        ->> \1-\2                                       && S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206
................................................................................
TEST: Ce qu’ils nous ont fait
TEST: Comment vous expliquez ça ?
TEST: Comment vous expliquer ça ?
TEST: le général n’en aura cure
TEST: n’en avoir cure et faire comme si de rien n’était.
TEST: Comme d’habitude, ils ont tout fait à l’arrache.
TEST: tout un système pour justifier que “nous” avons toujours raison et que nous ne pouvons jamais avoir tort.

TEST: Renvoyer quelqu’un sans l’avoir examiné peut être un grand danger.
TEST: En 1944, au sortir des deux guerres ayant ravagé l’Europe, le CNR (conseil national de la résistance) avait bien mesuré les tenants et les aboutissants, c’est-à-dire les causes et les conséquences du ravage des inégalités et du jusqu’au boutisme de l’auto-défense d’une caste pour préserver ses acquis.
TEST: Ceux de l’Université sont plus perfectionnés
TEST: Celles de l’Institut sont plus perfectionnées
TEST: Judith A. Allan a aussi constaté que les études sur les crises de la masculinité ne proposent pas ou que très rarement d’indicateurs pour déterminer si une société est (trop) féminisée et si les hommes sont (réellement) en crise.
TEST: une procédure abusive pour fermer la porte qu’elles ont essayé d’ouvrir
TEST: En France, les hauts fonctionnaires gagnent en moyenne 7850 euros net