Grammalecte  Check-in [e1a58f3564]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: e1a58f356499b801c2b667b5ab519defe8758e9484cf695bf399715de0764da2
User & Date: olr on 2020-11-17 16:07:05
Other Links: manifest | tags
Context
2020-11-17
16:07
[fr] update apposition() check-in: c45f0c51d4 user: olr tags: fr, trunk
16:07
[fr] ajustements check-in: e1a58f3564 user: olr tags: fr, trunk
2020-11-16
22:51
[fr] mise à jour du dictionnaire check-in: c4896b5dd8 user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [ce12d2b473] to [e3080bb58c].

2009
2010
2011
2012
2013
2014
2015

2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047






2048
2049
2050
2051
2052
2053
2054
2055
....
2123
2124
2125
2126
2127
2128
2129





2130
2131
2132
2133
2134
2135
2136
....
2209
2210
2211
2212
2213
2214
2215
2216
2217




2218
2219
2220
2221
2222
2223
2224
....
2260
2261
2262
2263
2264
2265
2266



2267
2268
2269
2270
2271
2272
2273
....
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
....
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
.....
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
.....
15307
15308
15309
15310
15311
15312
15313
15314
15315
15316
15317
15318
15319
15320
15321
.....
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
.....
16321
16322
16323
16324
16325
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
.....
16536
16537
16538
16539
16540
16541
16542

16543
16544
16545
16546
16547
16548
16549
.....
16658
16659
16660
16661
16662
16663
16664
16665
16666
16667
16668
16669
16670
16671
16672
.....
16705
16706
16707
16708
16709
16710
16711

16712
16713
16714
16715
16716
16717
16718
.....
22799
22800
22801
22802
22803
22804
22805
22806
22807
22808
22809
22810
22811
22812
22813
.....
22840
22841
22842
22843
22844
22845
22846

22847
22848
22849
22850
22851
22852
22853
.....
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
.....
29315
29316
29317
29318
29319
29320
29321
29322
29323
29324
29325
29326
29327
29328
29329
29330
29331
29332
29333
29334
29335
29336
29337
29338
29339
29340
29341
29342
29343
29344
29345
.....
29463
29464
29465
29466
29467
29468
29469
29470

29471
29472
29473
29474
29475
29476
29477
29478
29479
29480
29481
.....
30714
30715
30716
30717
30718
30719
30720
30721
30722
30723
30724
30725
30726
30727
30728
30729
30730
30731
30732


30733
30734
30735
30736
30737
30738
30739


__da_préverbes_verbes__
    [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]

        <<- =>> select(\-1, ":V")
        <<- /-1>> neg

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

    n’  ?[en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")
        <<- /-1>> neg

    [c’|m’|s’]  ?[en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")

    t’  [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:X|>rien/
        <<- =>> select(\3, ":(?:[123][sp]|P|Y)")

    t’  @:¬:X|>(?:rien|ie?ls?|elles?|on)/
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    y  @:¬:[OX]
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    [je|j’|il|ils|on]  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  @:¬:[OX]
    [je|j’|il|ils|on]  [nous|vous]     [le|la|l’|les|en|y]       @:¬:[OX]
    [je|j’|il|ils|on]  [le|la|l’|les]  [lui|leur|en|y]           @:¬:[OX]
    [je|j’|il|ils|on]  [lui|leur]      en                        @:¬:[OX]
        <<- =>> select(\-1, ":[123][sp]")

    tu  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  @:¬:[OX]
    tu  [nous|vous]   [le|la|l’|les|en|y]         @:¬:[OX]
    tu  [le|la|l’|les]  [lui|leur|en|y]           @:¬:[OX]
    tu  [lui|leur]      en                        @:¬:[OX]






        <<- not morph(<1, ":V0") =>> select(\-1, ":[123][sp]")

    lui  [la|le|l’|les]  @:(?:[123][sp]|P|Y)¬:W
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")

    [nous|vous]     [le|la|l’|les|en]  @:¬:[OXW]
    lui             en                 @:¬:[OXW]
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")
................................................................................
    [<start>|,|(]  cela  [le|la|l’|les]  [lui|leur|en|y]         @:(?:[123]s|P)
    [<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")






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

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

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

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

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





    d’ [un|une]  *WORD
        <<- =>> exclude(\3, ":V")

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

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

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

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




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

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


................................................................................
        <<- =>> define(\1, ":T")
        <<- ~1>> *

    [la|cette|the]  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Administration|Area|Army|Assocation|Avenue|Chamber|Church|City|Community|Court|Company|Corporation|Cup|Enterprise|Foundation|Fraternity|Gallery|Highway|House|Initiative|League|Library|Mansion|Nation|Navy|Organization|Reserve|Road|River|Sea|Society|Station|Sorority|Tavern|Tower|University|Valley]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:f:s")

    [le|au|du|ce|the]  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Act|Building|Bureau|Casino|Castle|Center|Challenge|Championship|Chronicle|Club|College|Comity|Consortium|Cottage|Covent|Day|Desert|Forum|Hall|Garden|Hospital|Hostel|Institute|Magazine|Manor|Monastery|Mount|Museum|News|Newspaper|Ocean|Office|Opera|Park|Party|Palace|Post|Restaurant|State|Theatre|Tournament]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:m:s")

    ~^[A-ZÀÂÉÈÊÎÔ]. Airways
        <<- ~>> ␣
        <<- =>> define(\2, ":MP:e:i")

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

    [comme|que|qu’|lorsque|lorsqu’|puisque|puisqu’|quand|pourquoi|qui|quoi]  ?[ne|n’]¿  ?[se|s’]¿  (*WORD)  ?à¿  [le|la|l’|les]  $:Y  $:M
        <<- morph(\1, ":V") !-2>>

    soit pour soit contre
        <<- !3>>

    y a ?@:[WX]¿ faute
        <<- !-1>>

TEST: New York {{étaient}} {{devenue}} la plaque tournante de tous les trafics.
TEST: de Bordeaux ou de n’importe où
TEST: il n’y a pas faute.
TEST: une séparation hommes/femmes

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

TEST: voyager par monts et par vaux.
TEST: {{pare mont est par veau}}


# pause /pose
__conf_pause_pose__
    >pose [gourmande|café|carrière|crédit|déjeuner|détente|dîner|pipi|repas|thé]
    >pose du [matin|soir]
    >pose de midi
    >pose de l’ après-midi
        <<- /conf/ -1>> =\1.replace("o", "au").replace("O", "AU")           && Confusion probable. Une pose consiste à poser quelque chose, tandis qu’une pause est un laps de temps de repos.

    >pause [de|du|des] [>câble|>carrelage|>dallage|>lino|>linoléum|>marbre|>panneau|>papier|>parquet|>prélart|>revêtement|>stérilet|tapis|>tapisserie|>vernis|>vitrage]
    >pause des [ardoises|agrafes|bollards|briques|câbles|carreaux|carrelages|dalles|fenêtres|panneaux|parquets|pavés|plaques|plinthes|tapis|tapisseries|tuiles|vitres|vitrages]
    >pause de la [charpente|couronne|dalle|fenêtre|moquette|prothèse|tapisserie|toiture|vitre]
    >pause de la [première|1ʳᵉ|1re|1ère] [brique|couche|pierre]
        <<- /conf/ -1>> =\1.replace("au", "o").replace("AU", "O")           && Confusion probable. Une pose consiste à poser quelque chose, tandis qu’une pause est un laps de temps de repos.

TEST: Nous assistons à la {{pause}} de la première brique.
TEST: c’est la {{pose}} du matin.
TEST: Faire une {{pose}} café.
TEST: Faire des {{poses}} café.
................................................................................
    du haut en bas
    du même [acabit|coup|ordre|tonneau]
    du moins ?,¿ pas
    du [nord|sud] au [nord|sud]
    du tac au tac
    du tout au tout
    eh bien
    en [aparté|apparence|arrière|avance|avant|catimini|cachette|ceci|cela|clair|commun|conséquence|continu|contrebas|contrepartie|dedans|définitive|détail|direct|douce|effet|émoi|filigrane|général|goguette|hâte|loucedé|majorité|moyenne|outre|pâmoison|parallèle|partie|particulier|permanence|personne|pratique|prime|privé|principe|priorité|public|retour|revanche|rien|rogne|route|secret|silence|somme|suspens|tapinois|théorie|trompe-l’œil|vain|vérité]
    en réalité ?[augmentée|virtuelle]¿
    en âge [de|d’] procréer
    en aucun cas
    en aucune [façon|manière]
    en ?[assez|si|très|trop]¿ bas âge
    en ?[assez|si|très|trop]¿ bon état ?général¿
    en ?[assez|si|très|trop]¿ bon état [de|d’] [fonctionnement|marche]
................................................................................
    quoi qu’ il [arrive|arrivât|advienne|advînt]
    quoi qu’ il soit [arrivé|advenu]
    quoi qu’ il en [coûte|coûtât|coute|coutât]
    ric et rac
    rien [que|qu’] d’ y penser
    sauf >erreur [de|d’] [ma|ta|sa|notre|votre|leur] part
    sans ?grand¿ succès
    sans [déconner|tarder]
    sans [ambages|arrêt|cesse|conteste|doute|encombre|encombres|équivalent|fin|relâche|répit|trêve|vergogne]
    sans [grande|grosse] difficulté ?[apparente|aucune|financière|majeure|particulière]¿
    sans aucun doute
    sans autre forme [de|d’] procès
    sans commune mesure
    sans contredit
    sans coup férir
................................................................................

    [plus|moins|aussi] $:W que prévu
        <<- ~>> *

    plus que tout autre @¬:[AQ].*:m:[si]
        <<- ~1:4>> *

    [plus|moins|aussi]  @:[AW]¬:G   que [les|nous|vous] autres
    [plus|moins|aussi]  @:[AW]¬:G   que l’ autre
    [plus|aussi]        @:[AW]      les [uns|unes] que les autres
        <<- ~3:0>> *

    pour  autant  [que|qu’]  [je|il|elle|on]  le  sache
    pour  autant  [que|qu’]  tu               le  saches
    pour  autant  [que|qu’]  nous             le  sachions
    pour  autant  [que|qu’]  vous             le  sachiez
    pour  autant  [que|qu’]  [ils|elles|iels]      le  sachent
................................................................................
    >château [de|d’] cartes
    >château d’ eau
    >chauffeur [de|d’] bus
    >chef [de|d’] [cabinet|file|gare|secteur]
    >chef d’ [état-major|entreprise]
    >chef d’ orchestre ?[moderne|symphonique]¿
    >chemin [de|d’] [croix|fer|traverse]

    >chemise à jabot
    >chemise [de|d’] nuit
    >chemise sans >manche
    >chèque en blanc
    >chèque sans provision
    >cheval [de|d’] [bataille|Troie]
    >chien [de|d’] [garde|guerre]
................................................................................
    >entrée [de|d’] service
    >entretien d’ embauche
    >enquête à charge
    >épée à deux mains
    >épingle à cravate
    >épreuve [de|d’] force
    >erreur [de|d’] [calcul|jeunesse|jugement|positionnement]
    >erreur d’ [appréciation|orthographe]
    >escalier [de|d’] secours
    >escroquerie à l’ assurance
    >espérance [de|d’] vie
    >espérance [de|d’] vie en bonne santé
    >état [de|d’] [âme|conservation|esprit|fait|service|urgence]
    >état d’ extrême urgence
    >état [de|d’] l’ art
................................................................................
    >file d’ attente
    >fille à [papa|maman|>soldat]
    >fille au pair
    >film X
    fils à [papa|maman]
    fils [de|d’] pute
    >figure de proue

    >fleuve à sec
    >flocon [de|d’] neige ?électronique¿
    >foire d’ >empoigne
    fonds d’ investissement
    fonds [de|d’] pension
    >fontaine à eau
    >fontaine [de|d’] jouvence
................................................................................
TEST: il en faut trois minimum, cinq maximum
TEST: il vit dans un vingt-quatre mètre carré.
TEST: Cent quarante-neuvième épisode


__gn_nombre_chiffres_1m__
    [0|1|01]  @:[NAQ].*:p¬*
        <<- /gn/ space_after(\1, 1, 1) and not value(\2, "|Rois|Corinthiens|Thessaloniciens|")
        -2>> =suggSing(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.

    *NUM  *WORD
        <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:[,.][0-9]+|)$", \1) and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":(?:N|D.*:s)")
            and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.

................................................................................
TEST: Au sein du club des pays les plus prospères, la richesse par habitant est néanmoins 52 fois supérieure à celle des pays à faibles revenus, d’après la Banque mondiale.
TEST: 1 à 2 comprimés par jour voire 2 à 3 maximum
TEST: elle vit dans un 24 m carré.
TEST: elle vit dans un 24 m² triste de la banlieue de Paris.
TEST: dans son 240 m2 lumineux, c’est la belle vie.
TEST: Une correction de +0.5 dioptrie.
TEST: zéro compassion



##  det nom et det nom adj
__gn_det_nom_et_det_nom__
    [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]  *WORD  [et|ou]  [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[me]|3[sp]|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]") and morph(\5, ":[NA].*:[me]:[si]") and not (value(<1, "|,|") and morph(<2, ":[NA]"))
        --1>> =suggMasSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (masculin singulier ou pluriel).
................................................................................
            and not (value(\-1, "|vient|dit|surgit|survient|périt|") and morph(>1, ":(?:[MD]|Oo)|>[A-Z]/"))
            and morph(\-1, ":V[23].*:Ip.*:3s", ":G|>(?:devoir|suffire|para[îi]tre)/") and analyseWord(\-1[:-1]+"s", ":E:2s")
        --1>> =\-1[:-1]+"s"                                                         && S’il s’agit d’un impératif, la terminaison est “is”, non “it”.

    <start>  ~\w\w+t$
        <<- /imp/ not value(>1, "|il|elle|on|ils|elles|iel|iels|")
            and not value(\-1, "|provient|")
            and not (value(\-1, "|vient|dit|surgit|survient|périt|") and morph(>1, ":(?:[MD]|Oo)|>[A-Z]/"))
            and morph(\-1, ":V[23].*:Ip.*:3s", ":[GNA]|>(?:devoir|suffire|para[îi]tre)/") and analyseWord(\-1[:-1]+"s", ":E:2s")
        --1>> =\-1[:-1]+"s"                                                         && S’il s’agit d’un impératif, la terminaison est “is”, non “it”.

TEST: {{Finit}} ton assiette.                                           ->> Finis
TEST: Ne {{pourrit}} pas l’ambiance.                                    ->> pourris
TEST: Ne {{finit}} pas ce devoir.
TEST: {{Finit}} cette tarte.
................................................................................
        <<- not morph(<1, ":(?:[123]s|V0)") or not morph(\3, ":N.*:[pi]") ~2>> *
        <<- /-1>> _ngn_

    tu  en  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:[123]s|V0)") or not morph(\3, ":[NA]") ~2>> *
        <<- /-1>> _ngn_

    [lui|celui-là|celui-ci]  le   @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[me]:[si]") ~2>> *
        <<- /-1>> _ngn_

    [lui|celui-là|celui-ci]  la   @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[fe]:[si]") ~2>> *
        <<- /-1>> _ngn_

    [lui|celui-là|celui-ci]  [l’|leur]   @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[si]") ~2>> *
        <<- /-1>> _ngn_

    [lui|celui-là|celui-ci]  les  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[pi]") ~2>> *
        <<- /-1>> _ngn_

    [lui|celui-là|celui-ci]  en  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":[NA]") ~2>> *
        <<- /-1>> _ngn_

    [elle|iel|celle-là|celle-ci]  le   @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[me]:[si]") ~2>> *
        <<- /-1>> _ngn_

................................................................................
        <<- ~2>> *
        <<- /-1>> _ngn_

    tu  [nous|vous|lui]  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":V0") ~2>> *
        <<- /-1>> _ngn_

    [lui|celui-là|celui-ci]          [nous|vous|lui]  @:(?:[123][sp]|P|Y)

    [elle|celle-là|celle-ci|iel]     [nous|vous|lui]  @:(?:[123][sp]|P|Y)
    [nous|vous]                      [nous|vous|lui]  @:(?:[123][sp]|P|Y)
    [eux|ceux-là|ceux-ci]            [nous|vous|lui]  @:(?:[123][sp]|P|Y)
    [elles|celles-là|celles-ci|iels] [nous|vous|lui]  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":R") ~2>> *
        <<- /-1>> _ngn_


__purge_préverbes2__
    nous              [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:(?:X|1p)
    vous              [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:(?:X|2p)
................................................................................
TEST: les marchands {{paye}}
TEST: les marchands {{marchande}}
TEST: les marchandes {{paie}}
TEST: les marchandes {{marchande}}
TEST: les chattes {{finis}}
TEST: les chattes {{manges}}
TEST: les religieux qui n’en {{finisse}} pas de mentir.
TEST: Les tests grand public de Jean-Paul {{montre}} des résultats surprenants.I
TEST: les malades que tu as servis {{outrepasse}} leur droit
TEST: l’écart entre les riches et les pauvres n’était pas si grand.
TEST: Les grands hommes politiques
TEST: les charmantes petites mines de toutes les jeunes filles
TEST: Les pauvres petites dames sont folles
TEST: Sauf que l’un comme l’autre avaient dû y renoncer.
TEST: L’un comme l’autre devaient y renoncer.
TEST: Les écrivaines Marie Darrieussecq et Annie Ernaux
TEST: Les femmes candidates à ce poste doivent se présenter cet après-midi.
TEST: Toutes les personnes candidates seront évaluées plusieurs fois.
TEST: il les a sélectionnés, les a améliorées pour accroître leur rendement




__conj_certains_certaines_plusieurs_nom__
    [certains|maints]  @:[NA].*:[pi]  @:V¬:(?:3p|P|Y|G|M)
        <<- /conj/ morph(<1, ":Cs|<start>|>,")
            and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") )
            and not checkAgreement(\2, \3)







>



|


|
|
<

|











|
|
|
|
|

|
|
|
|
>
>
>
>
>
>
|







 







>
>
>
>
>







 







|
|
>
>
>
>







 







>
>
>







 







|







 







|







 







|







|







 







|







 







|







 







|
|
|







 







>







 







|







 







>







 







|







 







>







 







|







 







|



|



|



|



|







 







|
>
|
|
|
<







 







|











>
>







2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024

2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
....
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
....
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
....
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
....
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
....
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
.....
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
.....
15325
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336
15337
15338
15339
.....
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
.....
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350
16351
16352
16353
16354
16355
.....
16554
16555
16556
16557
16558
16559
16560
16561
16562
16563
16564
16565
16566
16567
16568
.....
16677
16678
16679
16680
16681
16682
16683
16684
16685
16686
16687
16688
16689
16690
16691
.....
16724
16725
16726
16727
16728
16729
16730
16731
16732
16733
16734
16735
16736
16737
16738
.....
22819
22820
22821
22822
22823
22824
22825
22826
22827
22828
22829
22830
22831
22832
22833
.....
22860
22861
22862
22863
22864
22865
22866
22867
22868
22869
22870
22871
22872
22873
22874
.....
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
.....
29336
29337
29338
29339
29340
29341
29342
29343
29344
29345
29346
29347
29348
29349
29350
29351
29352
29353
29354
29355
29356
29357
29358
29359
29360
29361
29362
29363
29364
29365
29366
.....
29484
29485
29486
29487
29488
29489
29490
29491
29492
29493
29494
29495

29496
29497
29498
29499
29500
29501
29502
.....
30735
30736
30737
30738
30739
30740
30741
30742
30743
30744
30745
30746
30747
30748
30749
30750
30751
30752
30753
30754
30755
30756
30757
30758
30759
30760
30761
30762


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


    c’  ?[en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")

    t’  [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:X|>rien/
        <<- =>> select(\3, ":(?:[123][sp]|P|Y)")

    t’  @:¬:X|>(?:rien|ie?ls?|elles?|on)/
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    y  @:¬:[OX]
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    [je|j’|il|ils|on]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿   @:¬:[OX]
    [je|j’|il|ils|on]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]          @:¬:[OX]
    [je|j’|il|ils|on]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]              @:¬:[OX]
    [je|j’|il|ils|on]  ?[ne|n’]¿   [lui|leur|y]                    en                           @:¬:[OX]
        <<- =>> select(\-1, ":[ISKP]")

    [elle|elles|iel|iels]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿   @:¬:[OX]
    [elle|elles|iel|iels]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]          @:¬:[OX]
    [elle|elles|iel|iels]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]              @:¬:[OX]
    [elle|elles|iel|iels]  ?[ne|n’]¿   [lui|leur|y]                    en                           @:¬:[OX]
        <<- not morph(<1, ":R") =>> select(\-1, ":[ISKP]")

    tu  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:¬:[OX]
    tu  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:¬:[OX]
    tu  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:¬:[OX]
    tu  ?[ne|n’]¿   [lui|leur|y]                    en                          @:¬:[OX]
        <<- not morph(<1, ":V0") =>> select(\-1, ":[ISKP]")

    lui  [la|le|l’|les]  @:(?:[123][sp]|P|Y)¬:W
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")

    [nous|vous]     [le|la|l’|les|en]  @:¬:[OXW]
    lui             en                 @:¬:[OXW]
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")
................................................................................
    [<start>|,|(]  cela  [le|la|l’|les]  [lui|leur|en|y]         @:(?:[123]s|P)
    [<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")

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

    [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
        <<- =>> exclude(\3, ":V")

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

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

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


................................................................................
        <<- =>> define(\1, ":T")
        <<- ~1>> *

    [la|cette|the]  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Administration|Area|Army|Assocation|Avenue|Chamber|Church|City|Community|Court|Company|Corporation|Cup|Enterprise|Foundation|Fraternity|Gallery|Highway|House|Initiative|League|Library|Mansion|Nation|Navy|Organization|Reserve|Road|River|Sea|Society|Station|Sorority|Tavern|Tower|University|Valley]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:f:s")

    [le|au|du|ce|the]  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Act|Building|Bureau|Casino|Castle|Center|Challenge|Championship|Chronicle|Club|College|Comity|Consortium|Cottage|Covent|Day|Desert|Forum|Hall|Garden|Hospital|Hostel|Institute|Magazine|Manor|Memorial|Monastery|Mount|Museum|News|Newspaper|Ocean|Office|Opera|Park|Party|Palace|Post|Restaurant|State|Theatre|Tournament]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:m:s")

    ~^[A-ZÀÂÉÈÊÎÔ]. Airways
        <<- ~>> ␣
        <<- =>> define(\2, ":MP:e:i")

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

    [comme|que|qu’|lorsque|lorsqu’|puisque|puisqu’|quand|pourquoi|qui|quoi]  ?[ne|n’]¿  ?[se|s’]¿  (*WORD)  ?à¿  [le|la|l’|les]  $:Y  $:M
        <<- morph(\1, ":V") !-2>>

    soit pour soit contre
        <<- !3>>

    y [a|avait|eut|aura|aurait|eût] ?@:[WX]¿ faute
        <<- !-1>>

TEST: New York {{étaient}} {{devenue}} la plaque tournante de tous les trafics.
TEST: de Bordeaux ou de n’importe où
TEST: il n’y a pas faute.
TEST: une séparation hommes/femmes

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

TEST: voyager par monts et par vaux.
TEST: {{pare mont est par veau}}


# pause /pose
__conf_pause_pose__
    >pose [café|carrière|>cigarette|>clope|crédit|déjeuner|détente|dîner|gourmande|pipi|repas|thé]
    >pose du [matin|soir]
    >pose de midi
    >pose de l’ après-midi
        <<- /conf/ -1>> =\1.replace("o", "au").replace("O", "AU")           && Confusion probable. Une pose consiste à poser quelque chose, tandis qu’une pause est un laps de temps de repos.

    >pause [de|du|des] [>câble|>carrelage|>dallage|>lino|>linoléum|>marbre|>panneau|>papier|>parquet|>prélart|>revêtement|>stérilet|tapis|>tapisserie|>vernis|>vitrage]
    >pause des [ardoises|agrafes|bollards|briques|câbles|carreaux|carrelages|dalles|fenêtres|panneaux|parquets|pavés|plaques|plinthes|tapis|tapisseries|tuiles|vitres|vitrages]
    >pause de la [charpente|couronne|dalle|fenêtre|fibre|moquette|prothèse|tapisserie|toiture|vitre]
    >pause de la [première|1ʳᵉ|1re|1ère] [brique|couche|pierre]
        <<- /conf/ -1>> =\1.replace("au", "o").replace("AU", "O")           && Confusion probable. Une pose consiste à poser quelque chose, tandis qu’une pause est un laps de temps de repos.

TEST: Nous assistons à la {{pause}} de la première brique.
TEST: c’est la {{pose}} du matin.
TEST: Faire une {{pose}} café.
TEST: Faire des {{poses}} café.
................................................................................
    du haut en bas
    du même [acabit|coup|ordre|tonneau]
    du moins ?,¿ pas
    du [nord|sud] au [nord|sud]
    du tac au tac
    du tout au tout
    eh bien
    en [aparté|apparence|arrière|avance|avant|catimini|cachette|ceci|cela|clair|commun|conséquence|continu|contrebas|contrepartie|dedans|définitive|détail|direct|distanciel|douce|effet|émoi|filigrane|général|goguette|hâte|loucedé|majorité|moyenne|outre|pâmoison|parallèle|partie|particulier|permanence|personne|pratique|présentiel|prime|privé|principe|priorité|public|retour|revanche|rien|rogne|route|secret|silence|somme|suspens|tapinois|théorie|trompe-l’œil|vain|vérité]
    en réalité ?[augmentée|virtuelle]¿
    en âge [de|d’] procréer
    en aucun cas
    en aucune [façon|manière]
    en ?[assez|si|très|trop]¿ bas âge
    en ?[assez|si|très|trop]¿ bon état ?général¿
    en ?[assez|si|très|trop]¿ bon état [de|d’] [fonctionnement|marche]
................................................................................
    quoi qu’ il [arrive|arrivât|advienne|advînt]
    quoi qu’ il soit [arrivé|advenu]
    quoi qu’ il en [coûte|coûtât|coute|coutât]
    ric et rac
    rien [que|qu’] d’ y penser
    sauf >erreur [de|d’] [ma|ta|sa|notre|votre|leur] part
    sans ?grand¿ succès
    sans [broncher|déconner|réagir|tarder]
    sans [ambages|arrêt|cesse|conteste|doute|encombre|encombres|équivalent|fin|relâche|répit|trêve|vergogne]
    sans [grande|grosse] difficulté ?[apparente|aucune|financière|majeure|particulière]¿
    sans aucun doute
    sans autre forme [de|d’] procès
    sans commune mesure
    sans contredit
    sans coup férir
................................................................................

    [plus|moins|aussi] $:W que prévu
        <<- ~>> *

    plus que tout autre @¬:[AQ].*:m:[si]
        <<- ~1:4>> *

    [plus|moins|aussi]  @:[AQW]¬:G   que [les|nous|vous] autres
    [plus|moins|aussi]  @:[AQW]¬:G   que l’ autre
    [plus|aussi]        @:[AQW]      les [uns|unes] que les autres
        <<- ~3:0>> *

    pour  autant  [que|qu’]  [je|il|elle|on]  le  sache
    pour  autant  [que|qu’]  tu               le  saches
    pour  autant  [que|qu’]  nous             le  sachions
    pour  autant  [que|qu’]  vous             le  sachiez
    pour  autant  [que|qu’]  [ils|elles|iels]      le  sachent
................................................................................
    >château [de|d’] cartes
    >château d’ eau
    >chauffeur [de|d’] bus
    >chef [de|d’] [cabinet|file|gare|secteur]
    >chef d’ [état-major|entreprise]
    >chef d’ orchestre ?[moderne|symphonique]¿
    >chemin [de|d’] [croix|fer|traverse]
    >chemin à parcourir
    >chemise à jabot
    >chemise [de|d’] nuit
    >chemise sans >manche
    >chèque en blanc
    >chèque sans provision
    >cheval [de|d’] [bataille|Troie]
    >chien [de|d’] [garde|guerre]
................................................................................
    >entrée [de|d’] service
    >entretien d’ embauche
    >enquête à charge
    >épée à deux mains
    >épingle à cravate
    >épreuve [de|d’] force
    >erreur [de|d’] [calcul|jeunesse|jugement|positionnement]
    >erreur d’ [appréciation|interprétation|orthographe]
    >escalier [de|d’] secours
    >escroquerie à l’ assurance
    >espérance [de|d’] vie
    >espérance [de|d’] vie en bonne santé
    >état [de|d’] [âme|conservation|esprit|fait|service|urgence]
    >état d’ extrême urgence
    >état [de|d’] l’ art
................................................................................
    >file d’ attente
    >fille à [papa|maman|>soldat]
    >fille au pair
    >film X
    fils à [papa|maman]
    fils [de|d’] pute
    >figure de proue
    >fin [de] non-recevoir
    >fleuve à sec
    >flocon [de|d’] neige ?électronique¿
    >foire d’ >empoigne
    fonds d’ investissement
    fonds [de|d’] pension
    >fontaine à eau
    >fontaine [de|d’] jouvence
................................................................................
TEST: il en faut trois minimum, cinq maximum
TEST: il vit dans un vingt-quatre mètre carré.
TEST: Cent quarante-neuvième épisode


__gn_nombre_chiffres_1m__
    [0|1|01]  @:[NAQ].*:p¬*
        <<- /gn/ space_after(\1, 1, 1) and not value(\2, "|Rois|Corinthiens|Thessaloniciens|") and not (value(<1, "|à|") and meta(<2, "NUM"))
        -2>> =suggSing(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.

    *NUM  *WORD
        <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:[,.][0-9]+|)$", \1) and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":(?:N|D.*:s)")
            and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.

................................................................................
TEST: Au sein du club des pays les plus prospères, la richesse par habitant est néanmoins 52 fois supérieure à celle des pays à faibles revenus, d’après la Banque mondiale.
TEST: 1 à 2 comprimés par jour voire 2 à 3 maximum
TEST: elle vit dans un 24 m carré.
TEST: elle vit dans un 24 m² triste de la banlieue de Paris.
TEST: dans son 240 m2 lumineux, c’est la belle vie.
TEST: Une correction de +0.5 dioptrie.
TEST: zéro compassion
TEST: puis il y a entre 4 à 1 millions d’années sous une forme proche de la nôtre


##  det nom et det nom adj
__gn_det_nom_et_det_nom__
    [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]  *WORD  [et|ou]  [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]  *WORD  @:A.*¬:(?:A.*:[me]|3[sp]|G)
        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]") and morph(\5, ":[NA].*:[me]:[si]") and not (value(<1, "|,|") and morph(<2, ":[NA]"))
        --1>> =suggMasSing(\-1) + "|" + suggMasPlur(\-1)                            && Soit cet adjectif doit être accordé avec “\5” ou bien “\2” et “\5” (masculin singulier ou pluriel).
................................................................................
            and not (value(\-1, "|vient|dit|surgit|survient|périt|") and morph(>1, ":(?:[MD]|Oo)|>[A-Z]/"))
            and morph(\-1, ":V[23].*:Ip.*:3s", ":G|>(?:devoir|suffire|para[îi]tre)/") and analyseWord(\-1[:-1]+"s", ":E:2s")
        --1>> =\-1[:-1]+"s"                                                         && S’il s’agit d’un impératif, la terminaison est “is”, non “it”.

    <start>  ~\w\w+t$
        <<- /imp/ not value(>1, "|il|elle|on|ils|elles|iel|iels|")
            and not value(\-1, "|provient|")
            and not (value(\-1, "|vient|dit|surgit|survient|périt|") and morph(>1, ":(?:[MDR]|Oo)|>[A-Z]/"))
            and morph(\-1, ":V[23].*:Ip.*:3s", ":[GNA]|>(?:devoir|suffire|para[îi]tre)/") and analyseWord(\-1[:-1]+"s", ":E:2s")
        --1>> =\-1[:-1]+"s"                                                         && S’il s’agit d’un impératif, la terminaison est “is”, non “it”.

TEST: {{Finit}} ton assiette.                                           ->> Finis
TEST: Ne {{pourrit}} pas l’ambiance.                                    ->> pourris
TEST: Ne {{finit}} pas ce devoir.
TEST: {{Finit}} cette tarte.
................................................................................
        <<- not morph(<1, ":(?:[123]s|V0)") or not morph(\3, ":N.*:[pi]") ~2>> *
        <<- /-1>> _ngn_

    tu  en  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:[123]s|V0)") or not morph(\3, ":[NA]") ~2>> *
        <<- /-1>> _ngn_

    [ça|ceci|cela|lui|celui-là|celui-ci]  le   @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[me]:[si]") ~2>> *
        <<- /-1>> _ngn_

    [ça|ceci|cela|lui|celui-là|celui-ci]  la   @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[fe]:[si]") ~2>> *
        <<- /-1>> _ngn_

    [ça|ceci|cela|lui|celui-là|celui-ci]  [l’|leur]   @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[si]") ~2>> *
        <<- /-1>> _ngn_

    [ça|ceci|cela|lui|celui-là|celui-ci]  les  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[pi]") ~2>> *
        <<- /-1>> _ngn_

    [ça|ceci|cela|lui|celui-là|celui-ci]  en  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":[NA]") ~2>> *
        <<- /-1>> _ngn_

    [elle|iel|celle-là|celle-ci]  le   @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":(?:3s|R)") or not morph(\3, ":N.*:[me]:[si]") ~2>> *
        <<- /-1>> _ngn_

................................................................................
        <<- ~2>> *
        <<- /-1>> _ngn_

    tu  [nous|vous|lui]  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":V0") ~2>> *
        <<- /-1>> _ngn_

    [cela|ceci|ça|lui|celui-là|celui-ci]    [nous|vous|lui]  @:(?:[123][sp]|P|Y)
    [elle|celle-là|celle-ci|iel]            [nous|vous|lui]  @:(?:[123][sp]|P|Y)
    [nous|vous]                             [nous|vous|lui]  @:(?:[123][sp]|P|Y)
    [eux|ceux-là|ceux-ci]                   [nous|vous|lui]  @:(?:[123][sp]|P|Y)
    [elles|celles-là|celles-ci|iels]        [nous|vous|lui]  @:(?:[123][sp]|P|Y)

        <<- not morph(<1, ":R") ~2>> *
        <<- /-1>> _ngn_


__purge_préverbes2__
    nous              [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:(?:X|1p)
    vous              [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:(?:X|2p)
................................................................................
TEST: les marchands {{paye}}
TEST: les marchands {{marchande}}
TEST: les marchandes {{paie}}
TEST: les marchandes {{marchande}}
TEST: les chattes {{finis}}
TEST: les chattes {{manges}}
TEST: les religieux qui n’en {{finisse}} pas de mentir.
TEST: Les tests grand public de Jean-Paul {{montre}} des résultats surprenants.
TEST: les malades que tu as servis {{outrepasse}} leur droit
TEST: l’écart entre les riches et les pauvres n’était pas si grand.
TEST: Les grands hommes politiques
TEST: les charmantes petites mines de toutes les jeunes filles
TEST: Les pauvres petites dames sont folles
TEST: Sauf que l’un comme l’autre avaient dû y renoncer.
TEST: L’un comme l’autre devaient y renoncer.
TEST: Les écrivaines Marie Darrieussecq et Annie Ernaux
TEST: Les femmes candidates à ce poste doivent se présenter cet après-midi.
TEST: Toutes les personnes candidates seront évaluées plusieurs fois.
TEST: il les a sélectionnés, les a améliorées pour accroître leur rendement
TEST: les femmes enceintes
TEST: les souris enceintes


__conj_certains_certaines_plusieurs_nom__
    [certains|maints]  @:[NA].*:[pi]  @:V¬:(?:3p|P|Y|G|M)
        <<- /conj/ morph(<1, ":Cs|<start>|>,")
            and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") )
            and not checkAgreement(\2, \3)