Grammalecte  Diff

Differences From Artifact [e433e5fe10]:

To Artifact [8db7d28fee]:


3097
3098
3099
3100
3101
3102
3103







3104
3105
3106
3107
3108
3109
3110
.....
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
.....
22843
22844
22845
22846
22847
22848
22849



22850
22851
22852
22853
22854
22855
22856
.....
22859
22860
22861
22862
22863
22864
22865

22866
22867
22868
22869
22870
22871
22872
.....
23016
23017
23018
23019
23020
23021
23022

23023
23024
23025
23026
23027
23028
23029
23030
23031
23032
.....
23033
23034
23035
23036
23037
23038
23039
23040
23041
23042
23043
23044
23045
23046
23047
.....
23050
23051
23052
23053
23054
23055
23056

23057
23058
23059
23060
23061
23062
23063
.....
23109
23110
23111
23112
23113
23114
23115

23116
23117
23118
23119
23120
23121
23122
23123
23124
23125
.....
23146
23147
23148
23149
23150
23151
23152

23153
23154
23155
23156
23157
23158
23159
.....
24623
24624
24625
24626
24627
24628
24629
24630
24631
24632
24633
24634
24635
24636
24637
24638
.....
25791
25792
25793
25794
25795
25796
25797

25798
25799
25800
25801
25802
25803
25804
.....
26414
26415
26416
26417
26418
26419
26420
26421
26422
26423
26424
26425
26426
26427
26428
26429
26430
26431
26432
26433
26434
26435
.....
26437
26438
26439
26440
26441
26442
26443

26444
26445
26446
26447
26448
26449
26450
.....
29135
29136
29137
29138
29139
29140
29141
29142
29143
29144
29145
29146
29147
29148
29149
29150
29151
    [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")

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








__da_puis__
    puis
        <<- not value(<1, "|je|ne|n’|le|l’|leur|") =>> select(\1, "", ":V")

__da_quelque__
    quelque *NUM
        <<- =>> select(\1, ":W")
................................................................................
    !! nez à nez ¡¡
    [né+ses|ne|nez|nait|nais] [à|a] [né+ses|ne|nez|nait|nais]
        <<- /conf/ ->> nez à nez                            && Confusion. Locution “nez à nez”.|https://fr.wiktionary.org/wiki/nez_%C3%A0_nez

    [à|a] [mon|ton|son|notre|votre|leur] né
    au [né+ses]
    [dans|sur|sous] le [né+ses]
    >crotte [de|d’] [né+ses]
    >saignement [de|d’] [né+ses]
    [>mettre|>fourrer] ?@:[WX]¿ [le|mon|ton|son|notre|votre|leur] [né+ses]
    >pendre ?@:[WX]¿ [au|aux] [né+s]
    >voir ?@:[WX]¿ plus loin [que|qu’] [le|mon|ton|son|notre|votre|leur] [né+ses]
    >voir ?@:[WX]¿ plus loin [que|qu’] le bout [de|d’] [mon|ton|son|notre|votre|leur] [né+ses]
    >avoir du [né+ses]
        <<- /conf/ --1>> nez                                && Confusion. Pour l’organe olfactif, écrivez “nez”.|https://fr.wiktionary.org/wiki/nez
................................................................................
    vis sans [>amour|>ambition|envergure|grandeur|>passion]
        <<- /conf/ morph(<1, ":[DA].*:[fe]") -1>> vie
        && Confusion probable. Une vis est une pièce mécanique destinée à être vissée. Si vous parlez d’existence, écrivez “vie”.|https://fr.wiktionary.org/wiki/vie

    >donner  [signe+s]  [de|d’]  [vis|vit|vies]
        <<- /conf/ --1>> vie                                    && Locution “donner signe de vie”.|https://fr.wiktionary.org/wiki/ne_pas_donner_signe_de_vie




    !! >question [de|d’] vie [ou|et] [de|d’] mort ¡¡
    >question de [vis|vit|vie+s] [ou|et] de [mort+s|mors|mord+s|maure+s]
        <<- /conf/ -2:0>> de vie \-3 de mort                    && Locution “une question de vie ou/et de mort”.

    !! [droit+s] [de|d’] vie et [de|d’] mort ¡¡
    [droit+s] [de|d’] [vis|vit|vie+s] et de [mort+s|mors|mord+s|maure+s]
        <<- /conf/ -2:0>> de vie et de mort                     && Locution “avoir droit de vie et de mort”.|https://fr.wiktionary.org/wiki/droit_de_vie_et_de_mort
................................................................................
    [<start>|,|(]  [un|le|l’|ce|cet|mon|ton|son|notre|votre|leur|du]  *WORD  vie
        <<- /conf/ morph(\3, ":N.*:[me]:[si]", ":[GAVW]") and not tag(\-1, "egxmot")
        --1>> vit                                               && Confusion probable. Le verbe “vivre” s’écrit “vit” à la 3ᵉ personne du singulier.

TEST: elle a mené une {{vis}} insignifiante                     ->> vie
TEST: quelle {{vis}} incroyable !                               ->> vie
TEST: elle donne rarement signe de {{vis}}                      ->> vie

TEST: une question {{de vie ou de mors}}                        ->> de vie ou de mort
TEST: avoir droit {{de vis et de mors}}                         ->> de vie et de mort
TEST: l’homme {{vie}} ses derniers instants                     ->> vit
TEST: le sortilège “vie de merde” n’eut aucun effet
TEST: c’est comme toujours une question de vie ou de mort
TEST: il avait droit de vie et de mort sur tous.
TEST: donne signe de vie plus souvent, s’il te plaît.
................................................................................
TEST: l’{{amoureuse}} et {{merveilleux}} imbécile que nous avons là                 ->> amoureux|||merveilleuse
TEST: l’ignorant et sot {{hommes}} que voilà                                        ->> homme
TEST: j’aide l’homme et par amour pour lui le laisse libre.


__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.
        <<- /gn/ __also__ -2>> les                                                                  && Accord de nombre erroné : « \3 » est au pluriel.

    *WORD  le  *WORD
        <<- /gn/ morph(\2, ":D") >>>
        <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)")
            or ( morph(\3, ":[NA].*:f", ":[me]") and morph(\1, ":[RCY]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":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", "*")
            or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RCY]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
        -3>> =suggMasSing(\3)                                                                       && Accord de nombre erroné : « \3 » devrait être au singulier.
        <<- /gn/ __also__ -2>> les                                                                  && Accord de nombre erroné : « \3 » est au pluriel.

    <start>  le  *WORD
        <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|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.
        <<- /gn/ __also__ -2>> les                                                                  && Accord de nombre erroné : « \3 » est au pluriel.

TEST: c’est une catastrophe, {{le}} {{profits}} a baissé ces deux derniers trimestres   ->> les|||profit
TEST: j’en ai marre, {{le}} {{passée}} est trop dans les esprits                        ->> la|||passé
TEST: {{Le}} démoralisation.                                                            ->> La
................................................................................
TEST: avec {{le}} {{pile}}                                                              ->> la|||pilé
TEST: contre {{le}} {{rois}}                                                            ->> les|||roi
TEST: {{le}} {{publique}}                                                               ->> la|||public
TEST: {{Le}} {{pendue}}                                                                 ->> La|||pendu
TEST: {{Le}} personne répond.                                                           ->> La
TEST: {{le}} {{quotients}}                                                              ->> les|||quotient
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 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é : le syntagme « \1 \2 » est masculin, « \3 » est féminin.
................................................................................
TEST: le petit et {{vulgaires}} individu que nous avons vu hier                         ->> vulgaire
TEST: le sot et ignorante {{abrutie}}                                                   ->> abruti
TEST: le prétentieux et sot {{hommes}} que voilà                                        ->> homme


__gn_la_1m__
    ,  la  *WORD

        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|M|[1-3][sp]|Y)") -2>> le             && Accord de genre erroné : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True)                    && Accord de genre erroné : « \2 » est un déterminant féminin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p") -3>> =suggFemSing(\3)                  && Accord de nombre erroné : « \3 » devrait être au singulier.

    *WORD  la  *WORD
        <<- /gn/ morph(\2, ":D") >>>
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|M|[1-3][sp]|Y)")
            or ( morph(\3, ":[NA].*:m", ":[Mfe]") and morph(\1, ":[RCY]", ">(?:e[tn]|ou)/") and not (morph(\1, ":(?:Rv|C)") and morph(\3, ":Y")) )
        -2>> le                                                                             && Accord de genre erroné : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True)                    && Accord de genre erroné : « \2 » est un déterminant féminin.
................................................................................
TEST: {{Le}} {{commandeuse}}                                    ->> La|||commandeur
TEST: {{Le}} {{commanderesse}}                                  ->> La|||commandeur
TEST: {{le}} {{doctoresse}} est là.                             ->> la|||docteur
TEST: la force de la {{formes}} parfaite                        ->> forme|formée
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 morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                         && Accord de genre erroné : le syntagme « \1 \2 » est féminin, « \3 » est masculin.
................................................................................
    <start> *WORD et *WORD  @:N.*:f:s¬*
        <<- /gn/ morph(\2, ":A", ":G") and morph(\4, ":A", ":G") >>>
        <<- /gn/ morph(\2, ":A", ":(?:A.*:[fe]:[si]|G|W)|;C") -2>> =suggFemSing(\2, True)           && Cet adjectif n’est pas accordé avec le nom “\-1”.
        <<- /gn/ morph(\4, ":A", ":(?:A.*:[fe]:[si]|G|W)|;C") -4>> =suggFemSing(\4, True)           && Cet adjectif n’est pas accordé avec le nom “\-1”.

    <start> *WORD et *WORD  @:N.*:e:s¬*
        <<- /gn/ morph(\2, ":A", ":G") and morph(\4, ":A", ":G") >>>
        <<- /gn/ morph(\2, ":A", ":(?:A.*:[si]|G|W)|;C") -2>> =suggSing(\2, True)                  && Cet adjectif n’est pas accordé avec le nom “\-1”.
        <<- /gn/ morph(\4, ":A", ":(?:A.*:[si]|G|W)|;C") -4>> =suggSing(\4, True)                  && Cet adjectif n’est pas accordé avec le nom “\-1”.

    <start> *WORD et *WORD  @:N.*:m:p¬*
        <<- /gn/ morph(\2, ":A", ":G") and morph(\4, ":A", ":G") >>>
        <<- /gn/ morph(\2, ":A", ":(?:A.*:[me]:[pi]|G|W)|;C") -2>> =suggMasPlur(\2, True)           && Cet adjectif n’est pas accordé avec le nom “\-1”.
        <<- /gn/ morph(\4, ":A", ":(?:A.*:[me]:[pi]|G|W)|;C") -4>> =suggMasPlur(\4, True)           && Cet adjectif n’est pas accordé avec le nom “\-1”.

    <start> *WORD et *WORD  @:N.*:f:p¬*
................................................................................
TEST: {{quand}} le facteur {{arrivé}}, il se précipitait à la fenêtre.
TEST: {{puisque}} la fête {{finie}}, je vais partir.
TEST: {{lorsque}} l’horloge {{sonnée}}, nous nous levions à la hâte
TEST: {{quand}} les croissants {{arrivés}}, on se jetait dessus
TEST: {{lorsque}} certains idiots {{oubliés}}, on riait aux éclats
TEST: {{lorsque}} ton code {{grossi}}, il faut le factoriser
TEST: quand le jour venu, il fallut se battre, nous étions prêts.



__conf_qui_pronom_verbe__
    qui  [lui|nous|vous]  @:[NA]¬:(?:[123][sp]|P)
        <<- /conf/ hasSimil(\-1, ":(?:[123][sp]|P)") --1>> =suggSimil(\-1, ":[123][sp]")            && Confusion probable : “\-1” n’est pas une forme verbale conjuguée.

    qui  *WORD  [,|<end>|$:D]
................................................................................


__infi_pouvoir!5__
    >pouvoir  ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~..(?:ée?s?|ez)$
    >pouvoir  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~..(?:ée?s?|ez)$
    >pouvoir  ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             ~..(?:ée?s?|ez)$
    >pouvoir  ?[ne|n’]¿  [lui|leur|y]                    en                          ~..(?:ée?s?|ez)$
        <<- /infi/ not value(\1, "|puis|pouvoirs|") and morph(\-1, ":V", ":M") and not (morph(\1, ":N") and morph(<1, ":D"))
        --1>> =suggVerbInfi(\-1)                                                                    && S’il s’agit d’une action que le sujet peut accomplir, le verbe devrait être à l’infinitif.

    >pouvoir  ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~..(?:ai(?:s|t|ent))$
    >pouvoir  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~..(?:ai(?:s|t|ent))$
    >pouvoir  ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             ~..(?:ai(?:s|t|ent))$
    >pouvoir  ?[ne|n’]¿  [lui|leur|y]                    en                          ~..(?:ai(?:s|t|ent))$
        <<- /infi/ not value(\1, "|puis|pouvoirs|") and morph(\-1, ":V", ":M") and not (morph(\1, ":N") and morph(<1, ":D")) and not tagbefore(\1, "_ceque_")
        --1>> =suggVerbInfi(\-1)                                                                    && S’il s’agit d’une action que le sujet peut accomplir, le verbe devrait être à l’infinitif.

    [de|d’]  pouvoir  ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~(?:ée?s?|ez|ais)$
    [de|d’]  pouvoir  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~(?:ée?s?|ez|ais)$
    [de|d’]  pouvoir  ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             ~(?:ée?s?|ez|ais)$
    [de|d’]  pouvoir  ?[ne|n’]¿  [lui|leur|y]                    en                          ~(?:ée?s?|ez|ais)$
        <<- /infi/ morph(\-1, ":V", ":M")
................................................................................

TEST: vous pouvez les {{détectez}}.                                                     ->> détecter
TEST: ils peuvent nous {{marchaient}} sur les pieds                                     ->> marcher
TEST: Il doit pouvoir {{détectez}} ces erreurs.                                         ->> détecter
TEST: elle rêve de pouvoir les {{brisés}} à mains nues                                  ->> briser
TEST: un homme de pouvoir débordé par ses obligations.
TEST: faire seulement ce que tu pouvais ne satisfaisait pas tes patrons.



__infi_savoir!5__
    >savoir  ?[que|qu’|quoi]¿  ~..(?:ée?s?|ez)$
    >savoir  ?[que|qu’|quoi]¿  ~..(?:ée?s?|ez)$
    >savoir  ?[que|qu’|quoi]¿  ~..(?:ée?s?|ez)$
    >savoir  ?[que|qu’|quoi]¿  ~..(?:ée?s?|ez)$
................................................................................

__ppas_nom_propre_être_accord__
    [<start>|,|(|/_start_]  ($:M)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿           (/_VE_)                                                 @:[AQ]¬:[GMW]
    [<start>|,|(|/_start_]  ($:M)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿           (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[AQ]¬:[GMW]
    [<start>|,|(|/_start_]  ($:M)  ?qui¿  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  (/_VEP_)                                                @:[AQ]¬:[GMW]
    [<start>|,|(|/_start_]  ($:M)  ?qui¿  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[AQ]¬:[GMW]
        <<- /ppas/ not tag(\1, "_enum_") and not value(\-1, "|légion|pléthore|néant|réalité|") and (morph(\2, ":[123]s") or (not tag(\1, "_enum_") and morph(\2, ":P"))) >>>
        <<- /ppas/ morph(\1, ":M.*:f", ":[me]") and morph(\-1, ":[AQ].*:m", ":[fe]") --1>> =suggFemSing(\-1)                && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au féminin pluriel.
        <<- /ppas/ __else__ and morph(\1, ":M.*:m", ":[fe]") and morph(\-1, ":[AQ].*:f", ":[me]") --1>> =suggMasSing(\-1)   && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au masculin pluriel.
        <<- /ppas/ __else__ and morph(\-1, ":p", ":[AQ].*:[si]") --1>> =suggSing(\-1)                                       && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au pluriel.

TEST: Marianne semble devenue {{colériques}}
TEST: Pauline n’affirme pas avoir été {{vaincu}} pour autant
TEST: Sara n’en croit pas cependant être devenue {{aigries}}
TEST: Patrick est devenu {{folles}}
TEST: Mohammed ne semble pas avoir paru {{dingues}}
TEST: Isaac n’en estime pas réellement avoir semblé {{faibles}}







>
>
>
>
>
>
>







 







|







 







>
>
>







 







>







 







>


|







 







|







 







>







 







>
|
|
|







 







>







 







|
|







 







>







 







|






|







 







>







 







|
|
|







3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
.....
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
.....
22850
22851
22852
22853
22854
22855
22856
22857
22858
22859
22860
22861
22862
22863
22864
22865
22866
.....
22869
22870
22871
22872
22873
22874
22875
22876
22877
22878
22879
22880
22881
22882
22883
.....
23027
23028
23029
23030
23031
23032
23033
23034
23035
23036
23037
23038
23039
23040
23041
23042
23043
23044
.....
23045
23046
23047
23048
23049
23050
23051
23052
23053
23054
23055
23056
23057
23058
23059
.....
23062
23063
23064
23065
23066
23067
23068
23069
23070
23071
23072
23073
23074
23075
23076
.....
23122
23123
23124
23125
23126
23127
23128
23129
23130
23131
23132
23133
23134
23135
23136
23137
23138
23139
.....
23160
23161
23162
23163
23164
23165
23166
23167
23168
23169
23170
23171
23172
23173
23174
.....
24638
24639
24640
24641
24642
24643
24644
24645
24646
24647
24648
24649
24650
24651
24652
24653
.....
25806
25807
25808
25809
25810
25811
25812
25813
25814
25815
25816
25817
25818
25819
25820
.....
26430
26431
26432
26433
26434
26435
26436
26437
26438
26439
26440
26441
26442
26443
26444
26445
26446
26447
26448
26449
26450
26451
.....
26453
26454
26455
26456
26457
26458
26459
26460
26461
26462
26463
26464
26465
26466
26467
.....
29152
29153
29154
29155
29156
29157
29158
29159
29160
29161
29162
29163
29164
29165
29166
29167
29168
    [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")

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

__da_pouvoir_savoir_vouloir__
    [un|le|ce|du|quel|mon|ton|son|notre|votre|leur] [pouvoir|savoir|vouloir]
        <<- =>> select(\-1, ":N")

    [un|le|ce|du|quel|mon|ton|son|notre|votre|leur] *WORD [pouvoir|savoir|vouloir]
        <<- morph(\2, ":A.*:[me]:[si]") =>> select(\-1, ":N")

__da_puis__
    puis
        <<- not value(<1, "|je|ne|n’|le|l’|leur|") =>> select(\1, "", ":V")

__da_quelque__
    quelque *NUM
        <<- =>> select(\1, ":W")
................................................................................
    !! nez à nez ¡¡
    [né+ses|ne|nez|nait|nais] [à|a] [né+ses|ne|nez|nait|nais]
        <<- /conf/ ->> nez à nez                            && Confusion. Locution “nez à nez”.|https://fr.wiktionary.org/wiki/nez_%C3%A0_nez

    [à|a] [mon|ton|son|notre|votre|leur] né
    au [né+ses]
    [dans|sur|sous] le [né+ses]
    [>crotte|>pied] [de|d’] [né+ses]
    >saignement [de|d’] [né+ses]
    [>mettre|>fourrer] ?@:[WX]¿ [le|mon|ton|son|notre|votre|leur] [né+ses]
    >pendre ?@:[WX]¿ [au|aux] [né+s]
    >voir ?@:[WX]¿ plus loin [que|qu’] [le|mon|ton|son|notre|votre|leur] [né+ses]
    >voir ?@:[WX]¿ plus loin [que|qu’] le bout [de|d’] [mon|ton|son|notre|votre|leur] [né+ses]
    >avoir du [né+ses]
        <<- /conf/ --1>> nez                                && Confusion. Pour l’organe olfactif, écrivez “nez”.|https://fr.wiktionary.org/wiki/nez
................................................................................
    vis sans [>amour|>ambition|envergure|grandeur|>passion]
        <<- /conf/ morph(<1, ":[DA].*:[fe]") -1>> vie
        && Confusion probable. Une vis est une pièce mécanique destinée à être vissée. Si vous parlez d’existence, écrivez “vie”.|https://fr.wiktionary.org/wiki/vie

    >donner  [signe+s]  [de|d’]  [vis|vit|vies]
        <<- /conf/ --1>> vie                                    && Locution “donner signe de vie”.|https://fr.wiktionary.org/wiki/ne_pas_donner_signe_de_vie

    >sauver @:D.*:[fe] [vis|vit]
        <<- /conf/ --1>> vie|vies                               && Confusion probable. Sauver une existence, c’est-à-dire une vie.|https://fr.wiktionary.org/wiki/vie

    !! >question [de|d’] vie [ou|et] [de|d’] mort ¡¡
    >question de [vis|vit|vie+s] [ou|et] de [mort+s|mors|mord+s|maure+s]
        <<- /conf/ -2:0>> de vie \-3 de mort                    && Locution “une question de vie ou/et de mort”.

    !! [droit+s] [de|d’] vie et [de|d’] mort ¡¡
    [droit+s] [de|d’] [vis|vit|vie+s] et de [mort+s|mors|mord+s|maure+s]
        <<- /conf/ -2:0>> de vie et de mort                     && Locution “avoir droit de vie et de mort”.|https://fr.wiktionary.org/wiki/droit_de_vie_et_de_mort
................................................................................
    [<start>|,|(]  [un|le|l’|ce|cet|mon|ton|son|notre|votre|leur|du]  *WORD  vie
        <<- /conf/ morph(\3, ":N.*:[me]:[si]", ":[GAVW]") and not tag(\-1, "egxmot")
        --1>> vit                                               && Confusion probable. Le verbe “vivre” s’écrit “vit” à la 3ᵉ personne du singulier.

TEST: elle a mené une {{vis}} insignifiante                     ->> vie
TEST: quelle {{vis}} incroyable !                               ->> vie
TEST: elle donne rarement signe de {{vis}}                      ->> vie
TEST: sauver des {{vis}}, c’est vital pour elle                 ->> vie|vies
TEST: une question {{de vie ou de mors}}                        ->> de vie ou de mort
TEST: avoir droit {{de vis et de mors}}                         ->> de vie et de mort
TEST: l’homme {{vie}} ses derniers instants                     ->> vit
TEST: le sortilège “vie de merde” n’eut aucun effet
TEST: c’est comme toujours une question de vie ou de mort
TEST: il avait droit de vie et de mort sur tous.
TEST: donne signe de vie plus souvent, s’il te plaît.
................................................................................
TEST: l’{{amoureuse}} et {{merveilleux}} imbécile que nous avons là                 ->> amoureux|||merveilleuse
TEST: l’ignorant et sot {{hommes}} que voilà                                        ->> homme
TEST: j’aide l’homme et par amour pour lui le laisse libre.


__gn_le_1m__
    ,  le  *WORD
        <<- /gn/ morph(\2, ":D") >>>
        <<- /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", ":(?:[siPGWY]|[123][sp])") -3>> =suggMasSing(\3)   && Accord de nombre erroné : « \3 » devrait être au singulier.
        <<- /gn/ __also__ -2>> les                                                                  && Accord de nombre erroné : « \3 » est au pluriel.

    *WORD  le  *WORD
        <<- /gn/ morph(\2, ":D") >>>
        <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)")
            or ( morph(\3, ":[NA].*:f", ":[me]") and morph(\1, ":[RCY]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":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", "*")
            or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RCY]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
        -3>> =suggMasSing(\3)                                                                       && Accord de nombre erroné : « \3 » devrait être au singulier.
        <<- /gn/ __also__ -2>> les                                                                  && Accord de nombre erroné : « \3 » est au pluriel.

    <start>  le  *WORD
        <<- /gn/ morph(\3, ":[NA].*:f", ":[emPGWMY]") -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.
        <<- /gn/ __also__ -2>> les                                                                  && Accord de nombre erroné : « \3 » est au pluriel.

TEST: c’est une catastrophe, {{le}} {{profits}} a baissé ces deux derniers trimestres   ->> les|||profit
TEST: j’en ai marre, {{le}} {{passée}} est trop dans les esprits                        ->> la|||passé
TEST: {{Le}} démoralisation.                                                            ->> La
................................................................................
TEST: avec {{le}} {{pile}}                                                              ->> la|||pilé
TEST: contre {{le}} {{rois}}                                                            ->> les|||roi
TEST: {{le}} {{publique}}                                                               ->> la|||public
TEST: {{Le}} {{pendue}}                                                                 ->> La|||pendu
TEST: {{Le}} personne répond.                                                           ->> La
TEST: {{le}} {{quotients}}                                                              ->> les|||quotient
TEST: Comme avec l’Hyperloop, le bus chinois conçu pour passer au-dessus des voitures
TEST: Je le levai, le brandis et frappai de taille.


__gn_le_2m__
    le  *WORD  *WORD
        <<- /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é : le syntagme « \1 \2 » est masculin, « \3 » est féminin.
................................................................................
TEST: le petit et {{vulgaires}} individu que nous avons vu hier                         ->> vulgaire
TEST: le sot et ignorante {{abrutie}}                                                   ->> abruti
TEST: le prétentieux et sot {{hommes}} que voilà                                        ->> homme


__gn_la_1m__
    ,  la  *WORD
        <<- /gn/ morph(\2, ":D") >>>
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|M|[1-3][sp]|Y)") -2>> le                         && Accord de genre erroné : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True)                                && Accord de genre erroné : « \2 » est un déterminant féminin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p", ":(?:[siPGWY]|[123][sp])") -3>> =suggFemSing(\3)   && Accord de nombre erroné : « \3 » devrait être au singulier.

    *WORD  la  *WORD
        <<- /gn/ morph(\2, ":D") >>>
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|M|[1-3][sp]|Y)")
            or ( morph(\3, ":[NA].*:m", ":[Mfe]") and morph(\1, ":[RCY]", ">(?:e[tn]|ou)/") and not (morph(\1, ":(?:Rv|C)") and morph(\3, ":Y")) )
        -2>> le                                                                             && Accord de genre erroné : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True)                    && Accord de genre erroné : « \2 » est un déterminant féminin.
................................................................................
TEST: {{Le}} {{commandeuse}}                                    ->> La|||commandeur
TEST: {{Le}} {{commanderesse}}                                  ->> La|||commandeur
TEST: {{le}} {{doctoresse}} est là.                             ->> la|||docteur
TEST: la force de la {{formes}} parfaite                        ->> forme|formée
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.
TEST: Je la levai, la brandis et frappai de taille.


__gn_la_2m__
    la  *WORD  *WORD
        <<- /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é : le syntagme « \1 \2 » est féminin, « \3 » est masculin.
................................................................................
    <start> *WORD et *WORD  @:N.*:f:s¬*
        <<- /gn/ morph(\2, ":A", ":G") and morph(\4, ":A", ":G") >>>
        <<- /gn/ morph(\2, ":A", ":(?:A.*:[fe]:[si]|G|W)|;C") -2>> =suggFemSing(\2, True)           && Cet adjectif n’est pas accordé avec le nom “\-1”.
        <<- /gn/ morph(\4, ":A", ":(?:A.*:[fe]:[si]|G|W)|;C") -4>> =suggFemSing(\4, True)           && Cet adjectif n’est pas accordé avec le nom “\-1”.

    <start> *WORD et *WORD  @:N.*:e:s¬*
        <<- /gn/ morph(\2, ":A", ":G") and morph(\4, ":A", ":G") >>>
        <<- /gn/ morph(\2, ":A", ":(?:A.*:[si]|G|W)|;C") -2>> =suggSing(\2, True)                   && Cet adjectif n’est pas accordé avec le nom “\-1”.
        <<- /gn/ morph(\4, ":A", ":(?:A.*:[si]|G|W)|;C") -4>> =suggSing(\4, True)                   && Cet adjectif n’est pas accordé avec le nom “\-1”.

    <start> *WORD et *WORD  @:N.*:m:p¬*
        <<- /gn/ morph(\2, ":A", ":G") and morph(\4, ":A", ":G") >>>
        <<- /gn/ morph(\2, ":A", ":(?:A.*:[me]:[pi]|G|W)|;C") -2>> =suggMasPlur(\2, True)           && Cet adjectif n’est pas accordé avec le nom “\-1”.
        <<- /gn/ morph(\4, ":A", ":(?:A.*:[me]:[pi]|G|W)|;C") -4>> =suggMasPlur(\4, True)           && Cet adjectif n’est pas accordé avec le nom “\-1”.

    <start> *WORD et *WORD  @:N.*:f:p¬*
................................................................................
TEST: {{quand}} le facteur {{arrivé}}, il se précipitait à la fenêtre.
TEST: {{puisque}} la fête {{finie}}, je vais partir.
TEST: {{lorsque}} l’horloge {{sonnée}}, nous nous levions à la hâte
TEST: {{quand}} les croissants {{arrivés}}, on se jetait dessus
TEST: {{lorsque}} certains idiots {{oubliés}}, on riait aux éclats
TEST: {{lorsque}} ton code {{grossi}}, il faut le factoriser
TEST: quand le jour venu, il fallut se battre, nous étions prêts.
TEST: quand ce fut fait, il lui manqua la force de répliquer.


__conf_qui_pronom_verbe__
    qui  [lui|nous|vous]  @:[NA]¬:(?:[123][sp]|P)
        <<- /conf/ hasSimil(\-1, ":(?:[123][sp]|P)") --1>> =suggSimil(\-1, ":[123][sp]")            && Confusion probable : “\-1” n’est pas une forme verbale conjuguée.

    qui  *WORD  [,|<end>|$:D]
................................................................................


__infi_pouvoir!5__
    >pouvoir  ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~..(?:ée?s?|ez)$
    >pouvoir  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~..(?:ée?s?|ez)$
    >pouvoir  ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             ~..(?:ée?s?|ez)$
    >pouvoir  ?[ne|n’]¿  [lui|leur|y]                    en                          ~..(?:ée?s?|ez)$
        <<- /infi/ morph(\1, ":V", ">puis/") and morph(\-1, ":V", ":M")
        --1>> =suggVerbInfi(\-1)                                                                    && S’il s’agit d’une action que le sujet peut accomplir, le verbe devrait être à l’infinitif.

    >pouvoir  ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~..(?:ai(?:s|t|ent))$
    >pouvoir  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~..(?:ai(?:s|t|ent))$
    >pouvoir  ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             ~..(?:ai(?:s|t|ent))$
    >pouvoir  ?[ne|n’]¿  [lui|leur|y]                    en                          ~..(?:ai(?:s|t|ent))$
        <<- /infi/ morph(\1, ":V", ">puis/") and morph(\-1, ":V", ":M") and not tagbefore(\1, "_ceque_")
        --1>> =suggVerbInfi(\-1)                                                                    && S’il s’agit d’une action que le sujet peut accomplir, le verbe devrait être à l’infinitif.

    [de|d’]  pouvoir  ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~(?:ée?s?|ez|ais)$
    [de|d’]  pouvoir  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~(?:ée?s?|ez|ais)$
    [de|d’]  pouvoir  ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             ~(?:ée?s?|ez|ais)$
    [de|d’]  pouvoir  ?[ne|n’]¿  [lui|leur|y]                    en                          ~(?:ée?s?|ez|ais)$
        <<- /infi/ morph(\-1, ":V", ":M")
................................................................................

TEST: vous pouvez les {{détectez}}.                                                     ->> détecter
TEST: ils peuvent nous {{marchaient}} sur les pieds                                     ->> marcher
TEST: Il doit pouvoir {{détectez}} ces erreurs.                                         ->> détecter
TEST: elle rêve de pouvoir les {{brisés}} à mains nues                                  ->> briser
TEST: un homme de pouvoir débordé par ses obligations.
TEST: faire seulement ce que tu pouvais ne satisfaisait pas tes patrons.
TEST: un immense pouvoir l’animait.


__infi_savoir!5__
    >savoir  ?[que|qu’|quoi]¿  ~..(?:ée?s?|ez)$
    >savoir  ?[que|qu’|quoi]¿  ~..(?:ée?s?|ez)$
    >savoir  ?[que|qu’|quoi]¿  ~..(?:ée?s?|ez)$
    >savoir  ?[que|qu’|quoi]¿  ~..(?:ée?s?|ez)$
................................................................................

__ppas_nom_propre_être_accord__
    [<start>|,|(|/_start_]  ($:M)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿           (/_VE_)                                                 @:[AQ]¬:[GMW]
    [<start>|,|(|/_start_]  ($:M)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿           (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[AQ]¬:[GMW]
    [<start>|,|(|/_start_]  ($:M)  ?qui¿  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  (/_VEP_)                                                @:[AQ]¬:[GMW]
    [<start>|,|(|/_start_]  ($:M)  ?qui¿  ?[ne|n’]¿  [se|s’]  ?[en|y]¿  (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[AQ]¬:[GMW]
        <<- /ppas/ not tag(\1, "_enum_") and not value(\-1, "|légion|pléthore|néant|réalité|") and (morph(\2, ":[123]s") or (not tag(\1, "_enum_") and morph(\2, ":P"))) >>>
        <<- /ppas/ morph(\1, ":M.*:f", ":[me]") and morph(\-1, ":[AQ].*:m", ":[fe]") --1>> =suggFemSing(\-1)                && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au féminin singulier.
        <<- /ppas/ __else__ and morph(\1, ":M.*:m", ":[fe]") and morph(\-1, ":[AQ].*:f", ":[me]") --1>> =suggMasSing(\-1)   && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au masculin singulier.
        <<- /ppas/ __else__ and morph(\-1, ":p", ":[AQ].*:[si]") --1>> =suggSing(\-1)                                       && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au singulier.

TEST: Marianne semble devenue {{colériques}}
TEST: Pauline n’affirme pas avoir été {{vaincu}} pour autant
TEST: Sara n’en croit pas cependant être devenue {{aigries}}
TEST: Patrick est devenu {{folles}}
TEST: Mohammed ne semble pas avoir paru {{dingues}}
TEST: Isaac n’en estime pas réellement avoir semblé {{faibles}}