Grammalecte  Check-in [b1bd4a9b9c]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:[fr] tests et ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256:b1bd4a9b9c62510fd68e7c1faeedb2fd95edb74b48cdf90cf92bc3e070119785
User & Date: olr 2019-07-30 18:37:51
Context
2019-07-30
20:06
[graphspell][fr] update tokenizer: ordinals check-in: dcdb32b057 user: olr tags: fr, graphspell, trunk
18:37
[fr] tests et ajustements check-in: b1bd4a9b9c user: olr tags: fr, trunk
2019-07-29
22:38
[build] check duplicate names in rules file check-in: c7091dec9e user: olr tags: build, trunk
Changes

Changes to gc_lang/fr/rules.grx.

1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
....
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
....
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
....
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
....
4325
4326
4327
4328
4329
4330
4331

4332
4333
4334
4335
4336
4337
4338
....
4430
4431
4432
4433
4434
4435
4436
4437
4438



4439
4440
4441
4442
4443
4444
4445
4446
4447
....
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
....
5038
5039
5040
5041
5042
5043
5044



5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
....
5071
5072
5073
5074
5075
5076
5077

5078
5079
5080
5081
5082
5083
5084
....
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
....
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
....
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
....
5866
5867
5868
5869
5870
5871
5872

5873
5874
5875
5876
5877
5878
5879
....
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935


5936


5937
5938

5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956










5957
5958
5959
5960
5961
5962
5963
....
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
....
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
....
7023
7024
7025
7026
7027
7028
7029



7030
7031
7032
7033
7034
7035
7036
....
7039
7040
7041
7042
7043
7044
7045

7046
7047
7048
7049
7050
7051
7052
....
7423
7424
7425
7426
7427
7428
7429




7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
....
7455
7456
7457
7458
7459
7460
7461

7462
7463
7464
7465
7466
7467
7468
....
7469
7470
7471
7472
7473
7474
7475

7476
7477
7478
7479
7480
7481
7482
....
8025
8026
8027
8028
8029
8030
8031


8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
....
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
....
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499



8500
8501
8502
8503
8504
8505
8506
....
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
....
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979

8980
8981
8982
8983
8984
8985
8986
....
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
....
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
....
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
.....
12298
12299
12300
12301
12302
12303
12304

12305
12306
12307
12308
12309
12310
12311
.....
13872
13873
13874
13875
13876
13877
13878

13879
13880
13881
13882
13883
13884
13885
.....
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
.....
13969
13970
13971
13972
13973
13974
13975

13976


13977
13978
13979
13980
13981
13982
13983
.....
14268
14269
14270
14271
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281
14282
.....
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442
14443
14444
14445
14446
14447
.....
14543
14544
14545
14546
14547
14548
14549
14550
14551


14552
14553
14554
14555
14556
14557
14558
.....
14572
14573
14574
14575
14576
14577
14578

14579
14580
14581
14582
14583
14584
14585
.....
15255
15256
15257
15258
15259
15260
15261
15262
15263
15264
15265
15266
15267
15268
15269
.....
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
.....
16963
16964
16965
16966
16967
16968
16969
16970
16971
16972
16973
16974
16975
16976
16977
16978
16979
16980

16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991
16992
16993
16994
16995
16996
.....
17841
17842
17843
17844
17845
17846
17847
17848
17849
17850
17851
17852
17853
17854
17855
.....
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
.....
18546
18547
18548
18549
18550
18551
18552
18553
18554
18555

18556
18557
18558
18559
18560
18561
18562
.....
18565
18566
18567
18568
18569
18570
18571




18572
18573
18574
18575
18576
18577
18578
.....
20201
20202
20203
20204
20205
20206
20207
20208
20209
20210
20211
20212
20213
20214
20215
20216
20217
20218
20219

20220
20221
20222
20223
20224
20225
20226
.....
21694
21695
21696
21697
21698
21699
21700

21701
21702
21703
21704
21705
21706
21707


__purge_guillemets__
    [«|»|“|”|"|„|`]
        <<- ~>> *


__purge_début_phrase__
    <start>  [?|!|:|;|…|‘|’|'|¿|¡]
        <<- ~2>> *

    <start>  [-|–|—]  ?[-|–|—]¿
        <<- />> tiret1
        <<- ~2>> *

................................................................................
    ~\w-les$
        <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True)                               # Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29
        <<- /imp/ __else__ and morphVC(\1, ":", ":V") ->> =suggSimil(\1, ":E", False, True)         # Ceci n’est pas une forme verbale impérative.
        <<- />> -les|-COD|VCimp

    ~\w-la$
        <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True)                               # Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29
        <<- /imp/ __else__ and morphVC(\1, ":", ":V") >>>
        <<- /imp/ value(<1, "|ce|cet|cette|ces|") and morphVC(\1, ":[NA]")
        ->> =\1[:-2]+"là"                                                       # Ceci n’est pas une forme verbale impérative. Ou vous confondez “la” (COD) avec “là” (pour désigner un objet particulier).
        <<- /imp/ __else__ and not value(\1, "|par-la|de-la|jusque-la|celui-la|celle-la|ceux-la|celles-la|")
        ->> =suggSimil(\1, ":E", False, True)+"|"+\1[:-3]+" là"                 # Ceci n’est pas une forme verbale impérative. Si ce “la” signifie ici, écrivez “là”.
        <<- />> -la|-COD|VCimp

    ~\w-moi$
        <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True)                               # Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29
        <<- /imp/ __else__ and morphVC(\1, ":", ":V|>chez/") ->> =suggSimil(\1, ":E", False, True)  # Ceci n’est pas une forme verbale impérative.
        <<- />> -moi|-COI|VCimp
................................................................................
TEST: {{donnent-les-nous}}
TEST: {{donnait-nous-en}}
TEST: {{prend-m’en}} trois, s’il te plaît.
TEST: {{don-nous-en}}
TEST: {{bat-le}}
TEST: {{bluff-le}}
TEST: {{manges-la}}
TEST: ce {{soutien-la}}
TEST: {{bâton-la}} à son propre jeu
TEST: {{combat-les}}
TEST: {{flic-les}}
TEST: {{Oublies-moi}}.
TEST: {{Oubli-moi}}.
TEST: {{Sert-toi}} d’eux autant que tu le peux, puis casse-toi.
TEST: {{maintien-toi}}
................................................................................

    tout-à-fait
    tout-a-fait
    tous-à-fait
    tous-a-fait
        <<- /tu/ ->> tout à fait                                                # Pas de trait d’union.

    [les|des] trois-quart
    [les|des] trois-quarts
        <<- /tu/ not morph(>1, "|centre|aile|") and not after("équipe")
        -2>> trois quarts                                                       # Pas de trait d’union (sauf si vous parlez d’un vêtement ou d’un joueur de rugby).

    [<start>|,] trois-quarts [de|des|du]
        <<- /tu/ not after("équipe") -2>> trois quarts                          # Pas de trait d’union (sauf si vous parlez d’un vêtement ou d’un joueur de rugby).

    parce-que
    ~^[pP]arce-qu’
................................................................................
TEST: Ils sont {{en-deçà}} de tout                                              ->> en deçà
TEST: mais {{peu-à-peu}}
TEST: J’en ai déjà fait les {{deux-tiers}}.
TEST: {{en-haut}} de la montagne.
TEST: On va finir par s’y faire, {{peu-à-peu}}.
TEST: Venez vite, s’{{il-vous-plait}}.
TEST: Elles sont {{tout-à-fait}} ravies.

TEST: {{Trois-quarts}} des participantes y sont parvenues.
TEST: {{Parce-qu’ils}} y croient plus que tout.
TEST: c’est {{par-là}}
TEST: Oui, {{ça-aussi}}.
TEST: Peu d’{{entre-nous}} savent ce dont il s’agit.


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

TEST: __mapos__ {{L }}opinion des gens, elle s’en moquait.



!!!! A / À: accentuation la préposition en début de phrase                                        !!

__typo_À_début_phrase__
    <start>  A  @:[GNAY]¬:(?:Q|3s)|>(?:priori|post[eé]riori|contrario|capella|fortiori)/



    <start>  A  bientôt  [<end>|,]
    <start>  A  [l’|d’|n’|m’|s’]
        <<- /typo/ -2>> À                                                                           # S’il s’agit de la préposition « à », il faut accentuer la majuscule.

    <start>  A  t’  *WORD
        <<- /typo/ not value(\4, "|il|ils|elle|elles|on|ont|") -2>> À                               # S’il s’agit de la préposition « à », il faut accentuer la majuscule.

TEST: {{A}} vaincre sans péril, on triomphe sans gloire.
TEST: « {{A}} partir de maintenant, ce ne sera plus comme avant.
................................................................................
        <<- /conf/ not \1.isupper() and not \2.isupper()
        -2>> =suggSimil(\2, ":[NA].*:[pi]", True)                                                   # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

    [quels|quelles] [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|nous|vous|on]
        <<- /conf/ not \1.isupper() and not \2.isupper() and not value(<1, "|tels|telles|")
        -2>> =suggSimil(\2, ":[NA].*:[pi]", True)                                                   # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

    des [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|nous|vous|on|ceux|celles|celui|celle]
        <<- /conf/ not \1.isupper() and not \2.isupper() -2>> =suggSimil(\2, ":[NA].*:[pi]", True)  # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.
        <<- /conf/ __also__ -1>> de                                                                 # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

TEST: {{Ces}} {{cette}} canaille qui nous a donné tant de fil à retordre.
TEST: Quel {{tes}} voulez-vous
TEST: tes {{les}} sont périmés
TEST: Mon {{il}} est une merveille.
TEST: Quels {{mes}} délicieux
TEST: je ne sais {{des}} {{ses}} choses.


__conf_fusion_le_la_les_quels__
    le quel
        <<- /conf/ ->> lequel                                                                       # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/lesquels

    le quels
................................................................................
!!!
!!! Conjugaison                                                                                   !!
!!!
!!!

## 1sg
__conj_je__



    je  @:V¬:(?:1s|Ov)
        <<- /conj/ not (morph(\-1, ":[PQ]") and morph(<1, ":V0.*:1s")) >>>
        <<- /conj/ value(\-1, "|est|es|") --1>> ai|aie|suis     # Conjugaison erronée. Confusion probable entre “être” et “avoir”. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.
        <<- /conj/ __else__ --1>> =suggVerb(\-1, ":1s")         # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.

    j’       ?[en|y]¿                                                             @:V¬:(?:1s|Ov)
    [je|j’]  [ne|n’|le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]            @:V¬:(?:1s|Ov)
    [je|j’]  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:1s|Ov)
................................................................................
TEST: Je ne le lui {{achèterait}} pas.
TEST: Je ne l’y {{aie}} pas vu.
TEST: Je ne t’{{attend}} pas.
TEST: J’{{arrivait}} en retard.
TEST: J’m’la {{fumerait}} bien, cette clope.
TEST: J’leur en {{veut}} pas, à ces crétins.
TEST: je t’en {{parlé}}



__conf_je_non_verbe__
    je  @:¬:(?:V|Ov)
        <<- /conf/ not value(\2, "|soussigné|soussignée|") and not morph(<1, ":1s")
        -2>> =suggSimil(\2, ":(?:1s|Ov)", False)                                                    # Incohérence avec “je” : “\2” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

................................................................................
TEST: {{il}} ne {{pensent}} à rien.
TEST: il ne la lui {{donné}} pas souvent
TEST: il n’y {{aurais}} plus rien à attendre de la religion et de la politique.
TEST: il y en {{as}}.


__conf_il_non_verbe__
    il  @:¬:(?:V|Ov)|>ou/
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|t’|")
        -2>> =suggSimil(\2, ":(?:3s|Ov)", False)                                                    # Incohérence avec “\1” : “\2” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    il  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:¬:(?:V|Ov)
    il  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:¬:(?:V|Ov)
    il  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:¬:V
    il  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:¬:V
    il  ?[ne|n’]¿  [lui|leur]                     en                         @:¬:V
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|t’|")
        --1>> =suggSimil(\-1, ":(?:3s|Ov)", False)                                                  # Incohérence avec “\1” : “\-1” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: il {{et}} parti.
TEST: il nous {{et}} indispensable.
TEST: Il ne {{travail}} pas le week-end.
TEST: il m’{{arête}} encore une fois avec une impudence insupportable.
TEST: il n’y {{pas}} beaucoup d’entente entre eux.
................................................................................
TEST: on {{remué}} beaucoup.
TEST: on {{refuses}} tout cela
TEST: on ne se {{bougent}} pas suffisamment


__conf_on_non_verbe__
    on  @:¬:(?:V|Ov)|>ou/
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|n’|m’|t’|s’|")
        -2>> =suggSimil(\2, ":(?:3s|Oo)", False)                                                    # Incohérence avec “\1” : “\2” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    on  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:¬:(?:V|Ov)
    on  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:¬:(?:V|Ov)
    on  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:¬:(?:V|Ov)
    on  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:¬:(?:V|Ov)
    on  ?[ne|n’]¿  [lui|leur]                     en                         @:¬:(?:V|Ov)
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|n’|m’|t’|s’|")
        --1>> =suggSimil(\-1, ":(?:3s|Ov)", False)                                                  # Incohérence avec “\1” : “\-1” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: on {{et}} parti.
TEST: on nous {{et}} indispensable.
TEST: on ne {{travail}} pas le week-end.
TEST: on m’{{arête}} encore une fois avec une impudence insupportable.
TEST: on n’y {{pas}} beaucoup d’entente entre eux.
................................................................................
__conf_c_s_verbe__
    [il|ils|on|ne|n’]  c’
        <<- /conj/ -2>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.

    [<start>|,]  [elle|elles|lui|eux]  c’  >être  ?@:W¿  @:Q
        <<- /conj/ -3>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.

    [<start>|,]  [elle|elles|lui|eux]  c’  @¬>être/
        <<- /conj/ -3>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.

    c’ y
    c’ @:V¬>(?:avoir|être|devoir|devenir|pouvoir|vouloir|savoir)/.*:3[sp]
        <<- /conj/ -1>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.

    s’ >avoir
        <<- /conf/ -1>> c’|ç’                                                   # Confusion. Avec “\2” (du verbe “avoir”), le pronom personnel sujet est “ce” ou “ça” dont les graphies élidées sont “c’” et “ç’”.

TEST: {{S’en}} était vraiment trop !
TEST: Car {{s’en}} était vraiment fini !
TEST: il {{c’}}en est vite lassé.
TEST: elle {{c’}}en était trop vanté
TEST: cet homme, perdu dans ses pensées, allait {{c’}}en faire du souci.
TEST: il {{c’}}accoutumait à sa nouvelle fonction.
TEST: elle {{c’}}anime dès qu’on fait du bruit.
TEST: eux {{c’}}étaient pris
TEST: {{s’}}{{avait}} fonctionné
TEST: {{c’}}y adonne avec passion
TEST: c’était merveilleux.
................................................................................

TEST: Il {{ne n’}}arrive jamais à l’heure.
TEST: il {{me ne}} connaît pas
TEST: elle {{me}} t’arrêtera pas
TEST: Ça {{me}} te prend la tête, toutes ces complications vaines.
TEST: ça {{te me}} donne la chair de poule.
TEST: ça {{te n’}}arrive pas

TEST: il {{se me}} peut que nous soyons sélectionnés
TEST: il {{se m’}}est difficile d’y parvenir.


__conf_chez_vconj__
    chez  @:(?:[123][sp]|P)¬:[GNAQM]
        <<- /conf/ not \2.istitle() -2>> _                                                          # Incohérence avec “chez” : “\2” est une forme verbale conjuguée.
................................................................................
TEST: comme des nuages ou des coteaux se reflétant dans l’eau (ligature fl)
TEST: ces hommes qui avaient abusé de lui enfant.


__conf_en_participes_présents__
    en   [ne|me|m’|te|t’|s’]  @:[123][sp]¬:[PY]
        <<- /conf/ not \1.isupper() >>>
        <<- /conf/ morph(\3, ":3p") -3>> =suggVerb(\3, ":P")                                        # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- /conf/ value(\2, "|m’|t’|s’|") -1:2>> "\2en "                                           # Incohérence : vouliez-vous écrire « \2’en » ?
        <<- /conf/ __else__ -1:2>> =\2[0:1] + "’en"                                                 # Incohérence.

TEST: {{en t’}}ait donné tant.                                              ->> "t’en "
TEST: il {{en me}} donne beaucoup.                                          ->> m’en

    en   se  @:[123][sp]¬:[PY]
        <<- /conf/ not \1.isupper() >>>
        <<- /conf/ morph(\3, ":3p") -3>> =suggVerb(\3, ":P")                                        # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- /conf/ not morph(\3, ":[NA]") -1:2>> "s’en "                                            # Incohérence : vouliez-vous écrire « s’en » ?

TEST: {{en se}} {{contentent}}


    en   n’  @:[123][sp]¬:[PY]
        <<- /conf/ not \1.isupper() and not value(\3, "|importe|") >>>
        <<- /conf/ morph(\3, ":3p") -3>> =suggVerb(\3, ":P")                                        # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- /conf/ not value(<1, "|n’|") -1:2>> "n’en "                                             # Incohérence : vouliez-vous écrire « n’en » ?
        <<- /conf/ __else__ -1:2>> "en "                                                            # Double négation :  “n’” est une graphie élidée de “ne”. Il est inutile de la mettre deux fois. L’accord euphonique se fait en prononçant le “n” de “en” avec la première voyelle de “\3”.



TEST: elle n’{{en n’}}avait plus pour longtemps.                        ->> "en "


TEST: {{en n’}}{{abordent}} la côte, nous vîmes le désastre.
TEST: {{en n’}}{{envoient}} que peu.

TEST: toute chose pourrait finalement advenir indifféremment en n’importe quel point du globe


#### Divers
__ppas_lui_verbe__
    lui  ~é(?:es?|s)$
        <<- /ppas/ morph(\2, ":Q") and not morph(<1, ":(?:V0a|R)")
        -2>> =suggVerbInfi(\2)+"|"+suggVerbPpas(\2, ":m:s")                                         # Incohérence probable. Soit il faut un participe passé masculin singulier, soit un verbe à l’infinitif.

    lui aussi ~é(?:es?|s)$
        <<- /ppas/ morph(\2, ":Q") and not morph(<1, ":(?:V0a|R)") -2>> =suggVerbPpas(\2, ":m:s")   # Incohérence probable. Il faut vraisemblement un participe passé masculin singulier.

TEST: lui {{mangée}} beaucoup.
TEST: lui aussi {{mangés}} beaucoup.
TEST: L’homme qui s’approchait de lui voulait le surprendre.
TEST: avec Paul, lui aussi éliminé.
TEST: les études qu’il a lui terminées avec bien du mal.
TEST: cette déclaration fut selon lui rédigée par des imbéciles.












__conf_presque_vconj__
    presque  @:[123][sp]¬:[GNAQWM]
        <<- /conf/ not tag_before(\1, "ce_que") and not value(<1, "|ou|") -2>> _                    # Incohérence probable avec “presque” : « \2 » n’est ni un adjectif, ni un participe passé, ni un adverbe.

TEST: presque {{délaissait}} par tout le monde.
................................................................................
    a l’ autre bout                                                                             [de|d’|des|du]
    a la [portée|suite]                                                                         [de|d’|des|du]
        <<- /conf/ -1>> à                                           # Confusion probable : “a” est une forme conjugée de “avoir”. Pour la préposition, écrivez “à”.

    a [base|cause] [de|d’|des|du]
        <<- /conf/ not tag_before(\1, "ce_que") -1>> à              # Confusion probable : “a” est une forme conjugée de “avoir”. Pour la préposition, écrivez “à”.

TEST: travailler {{a}} bonne distance des fourneaux.
TEST: Il l’a fait {{a}} cause de toi.


__conf_à_cor_et_à_cri__
    !! à cor et à cri ¡¡
    [a|à] [corps|cor+s] [et|est|es|ait|ais|aies|é|è|ei|ai|aient] [à|a] [cri+s|crie+s|crit]
        <<- /conf/ ->> à cor et à cri                   # Locution adverbiale invariable. (Le cor est un instrument à vent utilisé pour la chasse.)|https://fr.wiktionary.org/wiki/%C3%A0_cor_et_%C3%A0_cri
................................................................................

TEST: La {{compagne}} électorale tourne à la guerre.
TEST: Lançons une {{compagne}} de communication
TEST: en rase {{compagne}}
TEST: Allons à la {{compagne}}
TEST: Perdus en rase campagne


# Canne / cane
__conf_canne_cane__
    >cane [a|à] [>pêche|>sucre]
        <<- /conf/ -1>> =\1.replace("ane", "anne")      # Confusion : la cane est la femelle du canard.|https://fr.wiktionary.org/wiki/canne

TEST: Voici ma {{cane}} à pêche.


# cap / cap
__conf_cap_cape__
    de >pied en >cape
        <<- /conf/ ->> de pied en cap                   # Confusion : la cape est un vêtement.|https://fr.wiktionary.org/wiki/de_pied_en_cap

TEST: rhabillée {{de pied en cape}}.
................................................................................
    se [ne|n’] [>être|>pouvoir|>devoir]
        <<- /conf/ not \1.isupper() -1>> ce             # Confusion probable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=2440

    se  /-là
    se  @:[NAQ]¬:([123][sp]|Y|P|Q)|>l[ea]?/
        <<- /conf/ not \1.isupper() -1>> ce             # Confusion. Ce chien, ce chat… Se demander, se croire…




    ceux  ne  @:[123]s¬:P
        <<- /conf/ -1>> ce                              # Confusion.|http://www.intellego.fr/soutien-scolaire-6eme/aide-scolaire-francais/ce-ceux-ou-se/3829

    ceux  @:N.*:s¬:(?:A.*:[pi]|P|R|G)|>(?:autour|a)/
        <<- /conf/ -1>> ce                              # Confusion probable.|http://www.intellego.fr/soutien-scolaire-6eme/aide-scolaire-francais/ce-ceux-ou-se/3829

TEST: {{Se}} seraient des histoires.
................................................................................
TEST: {{Se}} sera une fille.
TEST: {{ceux}} seraient des jours heureux
TEST: Pour {{se}} faire, ils sont prêts à tout.
TEST: {{se}} ne peut être ainsi.
TEST: C’est tout {{se}} qu’il y a
TEST: Tout {{se}} que je fais
TEST: tout {{se}} qu’il entend

TEST: {{se}} {{train}} est en retard
TEST: {{ceux}} train arrive trop vite.
TEST: {{ceux}} ne doit pas nous faire oublier ce désastre
TEST: {{se}} {{chemin-là}} est difficile
TEST: les expatriés éloignés ou ceux habitant ici
TEST: les photographies de ceux n’ayant pas dépassé sept sur vingt.
TEST: Pensez-vous que ceux ne sachant même pas ce qu’est une VHS peuvent y trouver leur compte ?
................................................................................
        -1>> dès                                                                                    # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s

    des [que|qu’|lors|après|maintenant|toujours|midi|minuit|aujourd’hui|hier|demain|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche|Pâques|Noël]
    des [un|une|le|la|l’|les|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|ce|cet|cette|ces] @:[NA]
        <<- /conf/ not value(<1, "|un|une|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|")
        -1>> dès                                                                                    # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s





    [dés|des] [à|a] présent
        <<- /conf/ not morph(<1, ":D.*:p") -1>> dès                                                 # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s

    des ~^\d{2,5}$  [<end>|,]
    des ~^\d{2,5}$  @:¬:[NA].*:[ip]|>(?:à|et|ou)/
        <<- /conf/ not value(<1, "|%|") and not morph(<1, ">(?:pourcent|cent|barre|seuil)/") -1>> dès     # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s

    [dés|des] *NUM ans
    [dés|des] @:B ans
    [dés|des] un an
        <<- /conf/ not morph(<1, ":R|>(?:approcher|anniversaire|cap|célébration|commémoration|occasion|passage|programme|terme|classe|autour|celui|ceux|celle|celles)/") and not value(>1, "|de|du|des|d’|")
            and not before("% +$")
        -1>> dès                                                                                    # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s
................................................................................

    leurs dès
        <<- /conf/ not value(<1, "|les|des|") -2>> dés                                              # Confusion probable. Pour la couture ou les jeux, écrivez “dé”.|https://fr.wiktionary.org/wiki/d%C3%A9

    les dès
        <<- /conf/ not morph(<1, ":E") -2>> dés                                                     # Confusion probable. Pour la couture ou les jeux, écrivez “dé”.|https://fr.wiktionary.org/wiki/d%C3%A9


TEST: il faut {{des}} à présent s’en souvenir.
TEST: {{Des}} à présent
TEST: {{Dés}} à présent
TEST: {{dés}} qu’il fait beau, je sors.
TEST: Jette quelques {{des}} sur la table et voyons.
TEST: j’en ai marre de ces {{dès}}.
TEST: Les {{dès}} {{sont}} jetés.
................................................................................
TEST: J’ai acheté des {{dès}} à jouer.
TEST: Dieu ne joue pas aux {{dès}}.
TEST: J’apporte mes {{dès}}.
TEST: {{Des}} 1980, le pays était en crise.
TEST: {{Des}} dix-huit ans.
TEST: {{Des}} 4 ans.
TEST: Viens {{des}} 9 heures

TEST: c’était {{dés}} trois heures.
TEST: {{dés}} que nous sommes partis, il a piqué une crise
TEST: {{des}} {{les}} premiers symptômes, appelez-moi
TEST: jette leurs {{dès}} sans attendre.
TEST: Les dés sont jetés.
TEST: C’est un des leurs.
TEST: Plusieurs dès qu’on en saura plus.
................................................................................
    la  [l’|d’|n’|m’|t’|s’|c’|ç’|j’|qu’|lorsqu’|puisqu’|quoiqu’]
    la  @:G¬:(?:[NA]:[ef]|W|V)|>(?:lui|leur|votre|notre|voilà|voici|plupart|quell?e?s?|tout|toute)/
        <<- /conf/ not \1.isupper() and not \2.isupper() and not morph(<1, ":E|>le/") -1>> là       # Confusion probable. Écrivez “là” si vous voulez dire “ici”.

    [ce|cet|cette|ces]  /-la
        <<- /conf/ -2>> =\2[:-2]+"là"                                                               # Confusion. Écrivez “là” soudé au nom pour désigner un objet précis.



TEST: nous serions encore {{la}} l’année prochaine
TEST: en reprenant le chandail de John {{la}} où elle l’avait abandonné.
TEST: Ce {{fait-la}} ne peut être ignoré.
TEST: la peu efficace sensibilité
TEST: c’est toujours la même histoire
TEST: c’est la moins habile de toutes
TEST: Qui serait la ou le plus à même à occuper ce poste selon vous ?
TEST: Il fait remonter à la toute première expérience humaine de maîtrise.
TEST: l’existence d’un fichage la concernant
TEST: avec la ou les indications qu’on recontre ici et là.
................................................................................
    lés  @:N.*:[pi]¬:(?:[MGAW]|3p)
        <<- /conf/ -1>> les                                     # Confusion probable. Un lé est une bande de tissu ou de papier peint.|https://fr.wiktionary.org/wiki/l%C3%A9

TEST: Entre les saules et {{lés}} ifs.
TEST: Montrez-moi ces {{lès}} venus d’Italie.                           ->> lés
TEST: avec {{lès}} hommes d’à côté, difficile de se concentrer.         ->> les
TEST: Entre les saules et {{lès}} ifs                                   ->> les
TEST: étale ces {{lès}}                                                 ->> lés
TEST: Les asphaltes purs d’étanchéité sont des mastics bitumineux, de même que les masses d’enrobage des lés d’étanchéité.
TEST: Pour avoir fait de neuf une grande cage de bois de grosses solives, membrures et sablières, contenant neuf pieds de long sur huit de lé. (Victor Hugo)
TEST: Un lé de velours, de taffetas, de toile.
TEST: Draps de lit de deux lés.
TEST: Elle habite Vandœuvre-lès-Nancy.


................................................................................
TEST: La {{pause}} des ardoises.
TEST: La {{pause}} de la tapisserie.
TEST: La {{pause}} de la première pierre.


# péché / pêcher
__conf_péché_pêcher1__
    [pécher|>pêcher|pêché+ses] [mignon|>capitale]
    [pécher|>pêcher|pêché+ses] de jeunesse
        <<- /conf/ -1>> péché|péchés                                        # Confusion. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9

    [>absolution|>rémission] [des|du] [pécher|>pêcher|pêché+ses]
    [>absolution|>rémission] de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] [pécher|>pêcher|pêché+ses]
        <<- /conf/ --1>> péché|péchés                                       # Confusion. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9

TEST: Les sept {{pêchers}} capitaux.
TEST: Un {{pêcher}} mignon.
TEST: l’absolution des {{pêchers}}



TEST: C’est mon péché mignon.


__conf_pécheur_pêcheur__
    [>auberge|>barque|>baraque|>botte|>cabane|>cabanon|>caissette|>chaloupe|>cordage|>cuissarde|>habit|>hameçon|>maison|>métier|>nœud|>pantalon|>pirogue|>soupe|>veste|>village|>bateau] [de|d’|du|des] [pécheur+s]
        <<- /conf/ -3>> =\3.replace("pé", "pê").replace("Pé", "Pê").replace("PÉ", "PÊ")     # Confusion probable : pêcheurs (qui pêchent des animaux marins) ≠ pécheurs (qui commettent des péchés).

................................................................................
TEST: Qu’elle avait été accueillie avec joie.


__conf_quelle_qu_elle__
    quelle  [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y]
        <<- /conf/ not (value(\2, "|en|ne|")  and morph(>1, ":V0e")) -1>> qu’elle                   # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”.

    quelle  @:V¬:[NA].*:[fe]|>(?:être|plus)
        <<- /conf/ \2.islower() and not (morph(\2, ">(?:pouvoir|devoir|aller)/") and (morph(>1, ":V0e") or morph(>2, ":V0e"))) and not (morph(\2, ":V0a") and value(>1, "|été|"))
        -1>> qu’elle                                                                                # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”.

TEST: {{Quelle}} y vienne, on verra ce qu’elle vaut.
TEST: {{Quelle}} a du répondant, cette gamine !
TEST: {{Quelle}} partit prendre son repas à la cantine, je n’en avais cure.
TEST: Il se plaint {{quelle}} ne nous dit rien.
................................................................................
TEST: {{Quelle}} l’apprenne un jour, on n’y peut rien.
TEST: Je crois {{quelle}} n’en sait pas assez pour nous nuire.


    quelles [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y]
        <<- /conf/ not (value(\2, "|en|ne|") and morph(>1, ":V0e")) -1>> qu’elles                   # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”.

    quelles @:V¬:[NA].*:[fe]|>(?:être|plus)
        <<- /conf/ \2.islower() and not (morph(\2, ">(?:pouvoir|devoir|aller)/") and (morph(>1, ":V0e") or morph(>2, ":V0e"))) and not (morph(\2, ":V0a") and value(>1, "|été|"))
        -1>> qu’elles                                                                               # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”.

TEST: Je veux {{quelles}} s’efforcent à y parvenir.
TEST: {{Quelles}} t’arrivent seulement à la cheville, voilà qui serait étonnant.
TEST: {{Quelles}} m’engueulent encore une seule fois et elles vont le regretter.



    quelle  >être   @:[QA]¬:G
        <<- /conf/ morph(\2, ":[123][sp]") -1>> qu’elle                                             # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”.

    quelles >être   @:[QA]¬:G
        <<- /conf/ morph(\2, ":[123][sp]") -1>> qu’elles                                            # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”.
................................................................................
        <<- /conf/ -3>> sein
        # Confusion : “sain” signifie “en bonne santé”, “saint” évoque ce qui “sanctifié”. Pour évoquer, au sens figuré, ce qui est une partie intime de quelque chose ou quelqu’un, écrivez “sein”.|https://fr.wiktionary.org/wiki/sein

    au [sain|saint|seing] [de|des|du|d’]
        <<- /conf/ -2>> sein
        # Confusion probable : “sain” signifie “en bonne santé”, “saint” évoque ce qui “sanctifié”. Pour évoquer, au sens figuré, ce qui est une partie intime de quelque chose ou quelqu’un, écrivez “sein”.|https://fr.wiktionary.org/wiki/sein

    [blanc-sein|blanc-seins|blancs-sein|blancs-seins]
    [blanc-sain|blanc-sains|blancs-sain|blancs-sains]
    [blanc-saint|blanc-saints|blancs-saint|blancs-saints]
        <<- /conf/ ->> blanc-seing|blancs-seings                # Confusion.|http://fr.wiktionary.org/wiki/blanc-seing

TEST: il priait {{sain}} Anselme de le secourir.
TEST: Au {{sain}} de l’obscurité, elle se sentait en sécurité.
TEST: Sur son {{sain}}
TEST: en son {{saint}}.
TEST: {{blanc-sein}}


# ne pas être sans savoir
__conf_ne_pas_être_sans_savoir__
    >être [pas|plus|jamais|guère] sans >ignorer
        <<- /conf/ -4>> savoir          # Confusion : vous écrivez l’inverse de ce que vous voulez dire.|http://fr.wiktionary.org/wiki/vous_n%E2%80%99%C3%AAtes_pas_sans_savoir

    ne [pas|plus|jamais|guère] être sans >ignorer
        <<- /conf/ -5>> savoir          # Confusion probable : vous écrivez l’inverse de ce que vous voulez dire.|http://fr.wiktionary.org/wiki/vous_n%E2%80%99%C3%AAtes_pas_sans_savoir

TEST: Vous n’êtes pas sans {{ignorer}} que…
TEST: ne pas être sans {{ignorer}} la cause de ces phénomènes.


# sens / cens / cent / sans / sang
__conf_sens_sans_cent_cens__
................................................................................
TEST: elle sans la condamner
TEST: elles sans un sou en poche
TEST: elles sans grandes convictions


__conf_sensé_censé__
    très >censée
        <<- /conf/ -2>> =\2.replace("sens", "cens").replace("Cens", "Sens").replace("CENS", "SENS")  # Confusion probable. Ce qui est “sensé” (de “bon sens”) et ce que chacun est “censé” accomplir.

TEST: Des personnes très {{censées}} qui perdent parfois la tête.


# sans coup férir
__conf_sans_coup_férir__
    !! sans coup férir ¡¡
................................................................................
TEST: {{S’en suivre}}.


# soi / soit
__conf_soi_disant__
    soi [disants|disante|disantes]
    [>soie|soit|sois] [disant+ses]
    [soi-disants|soi-disante|soi-disantes]
    [sois-disant+ses]
    [soie-disant+ses]
    [soies-disant+ses]
    [soit-disant+ses]
        <<- /conf/ ->> soi-disant                                                                   # Confusion : “soi-disant” est un adjectif invariable.|http://fr.wiktionary.org/wiki/soi-disant

TEST: Méfiez-vous de cette {{soi-disante}} sorcière.
................................................................................
    >liaison sans lendemain
    >lampe à [huile|pétrole]
    >lampe de chevet
    >lime à >ongle
    >liste d’ attente
    >lit de camp
    >livre de poche

    >machine à [café|coudre|écrire|laver|sous|voter]
    >machine à remonter le temps
    >machine de guerre
    >maillot de bain
    >main d’ œuvre
    >maison de [passe|retraite]
    >mal de [tête|ventre|mer]
................................................................................
        <<- /gn/ morph(\1, ":D") >>>
        <<- /gn/ morph(\2, ">[bcdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.replace("on", "a").replace("ON", "A")     # Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    # Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    # Accord de nombre erroné : « \2 » devrait être au singulier.

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



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

TEST: il brandissait avec fougue son drapeau {{déchirés}}
TEST: comment osez-vous médire de mon héritage {{glorieuse}}
TEST: on parlait de son escapade {{éperdu}} au milieu de la nuit.
TEST: ton étonnante {{secret}} ne sera pas au programme.
TEST: {{mon}} {{chienne}}
TEST: le ton monte.


__gn_ma_ta_sa_1m__
    [ma|ta|sa]  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =\1[:-1]+"on"                       # Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and not re.search("(?i)^[aâeéèêiîoôuûyœæ]", \2) and hasFemForm(\2)
................................................................................
            and not apposition(\3, \4)
        -4>> =switchGender(\4, False)                                                       # Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False)                  # Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggSing(\4)                                                                  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: chaque élément {{terrestres}}

TEST: ils viennent de chaque coin {{ignorée}} du pays.


TEST: Quelque chose tombé dans le puits a souillé l’eau.


__gn_det_sing_3m__
    [ledit|ladite|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|au|quel|quelle|dudit]  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\2, ":[NA].*:[si]") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G|P)") and morph(\4, ":[NA].*:p", "*") and \4.islower()
        -4>> =suggSing(\4)                                                                  # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.
................................................................................
TEST: {{Quelle}} homme.                                       ->> Quel
TEST: {{Quelle}} {{folles}}
TEST: {{Quelle}} {{chien}}
TEST: {{Quelle}} {{chats}}
TEST: Quelle sale journée…


__gn_quelles_1m__
    quelles  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])")        -1>> quel                       # Accord de genre et de nombre erroné. « \2 » est masculin et au singulier.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggFemPlur(\2, True)     # Accord de genre et de nombre erroné : « \1 » est féminin et au pluriel.
        <<- /gn/ morph(\2, ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])")        -1>> quelle                     # Accord de nombre erroné : « \2 » est au singulier.
        <<- /gn/ __also__                                                       -2>> =suggPlur(\2)              # Accord de nombre erroné : « \1 » est au pluriel.
        <<- /gn/ morph(\2, ":[NA].*:m:[pi]", ":(?:V0|Oo|[NA].*:[fe]:[pi])")     -1>> quels                      # Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggFemPlur(\2, True)     # Accord de genre erroné : « \1 » est féminin.
................................................................................
        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemPlur(\4, True)                                                         # Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
            and not (\1.startswith("de") and value(<1, "|un|une|"))
        -4>> =suggFemPlur(\4)                                                               # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: certaines idioties {{stupide}}
TEST: quelles {{grandes}} {{hommes}}
TEST: je ne sais guère de quelles âneries {{proférés}} on parle.
TEST: quelles étonnantes {{petits}}


## quelque adverbe
__gn_quelque_adverbe__
    quelques  *NUM
................................................................................
        <<- /gn/ ((morph(\2, ":m", "*") and morph(\3, ":f", "*")) or (morph(\2, ":f", "*") and morph(\3, ":m", "*"))) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      # Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ ((morph(\2, ":s", "*") and morph(\3, ":p", "*")) or (morph(\2, ":p", "*") and morph(\3, ":s", "*"))) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      # Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    # Accord de nombre erroné avec « \3 ».

TEST: {{Femmes}} {{intelligente}}.
TEST: {{Homme}} {{impatients}}.




__gn_start_3m__
    <start>  @:[NA]¬*  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ morph(\2, ":p") and morph(\3, ":[pi]") and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":i") and morph(\3, ":p")    and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":s") and morph(\3, ":[si]") and morph(\4, ":p") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
................................................................................
        -3>> =switchGender(\3)                                                                      # Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ ( (morph(\2, ":p", "*") and morph(\3, ":s", "*")) or (morph(\2, ":s", "*") and morph(\3, ":p", "*")) ) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      # Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    # Accord de nombre erroné avec « \3 ».

TEST: en homme {{courtoise}}

TEST: en {{femme}} {{cultivées}}


__gn_pfx_à_par_pour_sans_2m__
    [à|par|pour|sans]  @:[NA]¬:Y  @:[NA]¬:G
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      # Accord de genre erroné avec « \2 ».
................................................................................
TEST: On va procéder par {{intervalle}}


# juste
__sgpl_juste__
    justes
        <<- /sgpl/ \1.islower() and morph(<1, ":V", ":[DA]") and not morph(>1, ":[NA].*:[pi]")
            and not (morph(<1, ">(?:être|sembler|devenir|rester|demeurer|redevenir|para[îi]tre)/.*:[123]p") and value(>1, "|<end>|,|que|qu’|et|ou|"))
        ->> juste                                                   # Si “juste” est un adverbe, il est invariable.

TEST: Viser {{justes}}
TEST: Voir {{justes}}.
TEST: Penser juste.
TEST: Dures mais justes.
TEST: J’ai retrouvé tout mon ressenti, tous les mots sont justes.
................................................................................
         <<- /conf/ -2>> butte                                          # Confusion. Écrivez « en butte \3 ».

TEST: Et moi toujours en {{but}} à de nouveaux dangers


# cane / canne (from LanguageTool)
__conf_canne_cane__
    >cane à [sucre|pêche|selfie]
    >cane [de|d’] [bambou|bois|combat|compagnon|compagnonnage|défense|golf|marche|Noël|ramonage)|>aveugle]
        <<- /conf/ -1>> =\1.replace("ane", "anne")                      # Confusion. La cane est la femelle du canard.|https://fr.wiktionary.org/wiki/cane

    [>alcool|>coup|>sucre|>sirop] de >cane
        <<- /conf/ -3>> canne                                           # Confusion. La cane est la femelle du canard.|https://fr.wiktionary.org/wiki/cane

    [>œuf|>filet] de >canne
................................................................................

# péché / pêcher
__conf_péché_pêcher2__
    >pêcher par excès [de|d’]
    >pêcher par [insuffisance|omission|orgueil]
        <<- /conf/ -1>> pécher                                  # Confusion : pêcher (capturer des poissons) ≠ pécher (faire un écart de conduite).|https://fr.wiktionary.org/wiki/p%C3%A9cher

    [>commettre|>pardonner|>confesser|>absoudre|>avouer|>reconnaître|>reconnaitre|>expier|>effacer] @:D [pécher|>pêcher|pêché+ses]
    >repentir de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] [pécher|pêcher+s|pêché+ses]
        <<- /conf/ \1.endswith("s") --1>> péchés                # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C1%A9ch%C1%A9
        <<- /conf/ __else__ --1>> péché                         # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9

    [pécher|pêcher+s|pêché+ses] [>capitale|mignon|mignons|>mortelle|>originelle|>vénielle]
        <<- /conf/ \1.endswith("s") -1>> péchés                 # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C1%A9ch%C1%A9
        <<- /conf/ __else__ -1>> péché                          # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9

    >pécher [du|d’|de|des|la|le|l’|les|à|au|aux] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle||>moule|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques]
    >pécher [de|à] [la|l’] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques]

        <<- /conf/ -1>> pêcher                                  # Confusion : pêcher (capturer des poissons) ≠ pécher (faire un écart de conduite).|https://fr.wiktionary.org/wiki/p%C3%A9cher

TEST: Il {{pêche}} par excès de confiance.
TEST: commettre un {{pêcher}}.
TEST: Elle voulut expier ses {{pêchés}}.
TEST: {{pécher}} à la ligne
TEST: C’est mon {{pêché}} mignon
TEST: Les {{pêchers}} capitaux
TEST: Des {{pêchés}} véniels


# peu / peux / peut
__conf_peut_peux_peu2__
    [peux|peut]  [de|d’]  @:[NA]¬*
        <<- /conf/ not value(<1, "|je|tu|il|elle|on|ne|n’|") and space_after(\1, 1, 3) -1>> peu     # Confusion probable : “\1” est une forme conjuguée de “pouvoir”, écrivez “peu” pour dire “pas beaucoup”.

................................................................................
@@@@
@@@@GRAPH: purge_ponctuations2                                                                     _
@@@@
@@@@
@@@@
@@@@

__da_été__
    >avoir été
        <<- =>> select(\2, ":Q")


__purge_subst_plur_comme_nom_sing__
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿         @:3p¬:G
................................................................................
        <<- /ocr/ __else__ and \2.endswith("s") and morph(\2, ":V1.*:Ip.*:2s", ":[GM]")
        -2>> =suggVerbPpas(\2, ":m:p")                                                              # Erreur de numérisation ?

TEST: __ocr__ je reconnais que j’ai pas {{traîne}}
TEST: __ocr__ elle est fauchée et a {{emprunte}} de l’argent
TEST: __ocr__ quel héros d’avoir {{affronte}} ces salopards de la police
TEST: __ocr__ tant avoir {{creuse}} vers le haut.
TEST: __ocr__ tu devrais le savoir, bordel putain de merde avoir {{affrontes}} ces gens…
TEST: __ocr__ elle avait envie de s’en sortir enfin.



!!!! Confusions                                                                                   !!

## on / ont
................................................................................
        || être [devenu|redevenu|resté|demeuré]                                                                                             [@:[NA].*:p¬:[GWYsi]|@:[AQ].*:f¬:[GWYme]]
    lequel ?[ne|n’]¿ ?[en|y]¿
        || [>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]
        || avoir [été|semblé|paru]                                                                                                          [@:[NA].*:p¬:[GWYsi]|@:[AQ].*:f¬:[GWYme]]
        <<- /ppas/ not morph(<1, ":R") --1>> =suggMasSing(\-1)                                                          # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.

TEST: Il semble être {{partis}} pour toujours.                                    ->> parti
TEST: Il est {{demander}} à chacun de participer.
TEST: Il est {{contents}}.                                                        ->> content
TEST: Il est {{laisser}} à lui-même

TEST: celui qui ne semble pas {{étonnés}}
TEST: c’est ça qui paraît {{stupides}}
TEST: celui-là semble {{perdus}} dans ses pensées.
TEST: c’est {{condescendants}}.                                                   ->> condescendant
TEST: C’est {{finis}}.
TEST: Ç’avait été {{horribles}}
TEST: ça semble {{perdus}}
................................................................................
TEST: elle avait accompagné cet homme, lequel était {{revenue}} de l’enfer.
TEST: Il peut être {{observée}}.
TEST: celui-là pensait être {{perdue}}
TEST: celui-là peut être {{perdue}}
TEST: il pense avoir été {{volés}}
TEST: lui qui ne pensait jamais être {{reconnus}}.
TEST: ça ne semble pas avoir été {{conçus}} pour ça.




TEST: lequel allait être {{renvoyée}} de l’établissement.
TEST: tout sera {{dissoute}}
TEST: C’est donc seules que les deux femmes sont amenées à comparaître
TEST: C’eût été pure imagination.
TEST: Je n’arrêtais pas de me répéter que tout cela était peut-être pure imagination
TEST: La femme qui faisait ça est partie.
TEST: De cela a toujours été faite notre vie
................................................................................
TEST: Pesons le pour et le contre.
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.


__imp_union_le_la_leur__
    *WORD  en
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:venir|aller|partir)/") and morph(>1, ":|<end>|>,", ":(?:N|A|Q|Y|M|P|H|T|D)|>(?:pour|plus|moins|mieux|peu|plupart|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

    ,  *WORD  en
        <<- /imp/ space_after(\1, 1, 1) and morph(\2, ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/")
            and morph(>1, ":|<end>|>,", ":(?:N|A|Y|M|P|B|3[sp]|D)|>(?:pour|plus|moins|mieux|peu|trop|très|en|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: {{restons en}} là.

TEST: Intercède en ma faveur
TEST: Même l’implacable guerrier-capitaine de la Fédération, James T. Kirk, apprend en rechignant à enterrer le phaser avec les bâtards Klingons qui ont tué son fils.
TEST: Terminons en réservant une place de choix à l’un des relais les plus fervents de la pensée


__imp_laisser_le_la_les_infi__
    >laisser  [le|la|les]  *WORD
................................................................................
TEST: n’importe quoi {{peux}} réussir
TEST: n’importe qui {{peux}} y arriver.
TEST: quelque chose {{sens}} mauvais ici
TEST: envers chacune qui se {{sentaient}} mal considérée
TEST: l’un d’eux {{viendras}}
TEST: ce {{dois}} être ennuyeux
TEST: ce {{seras}} foutu

TEST: mais ça ne vous {{aideras}} en rien
TEST: Cela ne t’{{aideras}} pas.
TEST: Cela {{dis}}, on ne sait pas comment s’en sortir.
TEST: tu sais, n’importe qui {{connais}} la valeur de ces choses.
TEST: Y avait-il seulement quelqu’un pour vouloir soumettre ses recherches ?









|







 







|
<
<
<







 







<







 







|
<
|







 







>







 







|
|
>
>
>

<







 







<
<
<
<





<







 







>
>
>

|
<
|







 







>







 







|
|







|







 







|







|







 







|












|







 







>







 







|



<
<
<


|

<
<
<



|



>
>
|
>
>


>





|
|
|
<
<
<







>
>
>
>
>
>
>
>
>
>







 







|







 







<
<
<
<
<
<
<
<







 







>
>
>







 







>







 







>
>
>
>





|







 







>







 







>







 







>
>


<







 







|







 







|










>
>
>







 







|







 







|






>







 







|
|
|












<
<

|







 







|







 







|







 







>







 







>







 







<







 







>

>
>







 







|







 







|







 







|
|
>
>







 







>







 







|







 







|







 







|

|
<
<
<
|
<



>
|


|
|
<
|
<
<







 







|







 







|







 







|
|

>







 







>
>
>
>







 







|











>







 







>







1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
....
2342
2343
2344
2345
2346
2347
2348
2349



2350
2351
2352
2353
2354
2355
2356
....
2377
2378
2379
2380
2381
2382
2383

2384
2385
2386
2387
2388
2389
2390
....
4289
4290
4291
4292
4293
4294
4295
4296

4297
4298
4299
4300
4301
4302
4303
4304
....
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
....
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438

4439
4440
4441
4442
4443
4444
4445
....
4493
4494
4495
4496
4497
4498
4499




4500
4501
4502
4503
4504

4505
4506
4507
4508
4509
4510
4511
....
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042

5043
5044
5045
5046
5047
5048
5049
5050
....
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
....
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
....
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
....
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
....
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
....
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915



5916
5917
5918
5919



5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942



5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
....
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
....
6990
6991
6992
6993
6994
6995
6996








6997
6998
6999
7000
7001
7002
7003
....
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
....
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
....
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
....
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
....
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
....
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040

8041
8042
8043
8044
8045
8046
8047
....
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
....
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
....
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
....
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
....
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117


9118
9119
9120
9121
9122
9123
9124
9125
9126
....
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
....
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
.....
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
.....
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
.....
13907
13908
13909
13910
13911
13912
13913

13914
13915
13916
13917
13918
13919
13920
.....
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
.....
14280
14281
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
.....
14445
14446
14447
14448
14449
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
.....
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
.....
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
.....
15270
15271
15272
15273
15274
15275
15276
15277
15278
15279
15280
15281
15282
15283
15284
.....
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
.....
16978
16979
16980
16981
16982
16983
16984
16985
16986
16987



16988

16989
16990
16991
16992
16993
16994
16995
16996
16997

16998


16999
17000
17001
17002
17003
17004
17005
.....
17850
17851
17852
17853
17854
17855
17856
17857
17858
17859
17860
17861
17862
17863
17864
.....
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
17954
17955
.....
18555
18556
18557
18558
18559
18560
18561
18562
18563
18564
18565
18566
18567
18568
18569
18570
18571
18572
.....
18575
18576
18577
18578
18579
18580
18581
18582
18583
18584
18585
18586
18587
18588
18589
18590
18591
18592
.....
20215
20216
20217
20218
20219
20220
20221
20222
20223
20224
20225
20226
20227
20228
20229
20230
20231
20232
20233
20234
20235
20236
20237
20238
20239
20240
20241
.....
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723


__purge_guillemets__
    [«|»|“|”|"|„|`]
        <<- ~>> *


__purge_punc_début_phrase__
    <start>  [?|!|:|;|…|‘|’|'|¿|¡]
        <<- ~2>> *

    <start>  [-|–|—]  ?[-|–|—]¿
        <<- />> tiret1
        <<- ~2>> *

................................................................................
    ~\w-les$
        <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True)                               # Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29
        <<- /imp/ __else__ and morphVC(\1, ":", ":V") ->> =suggSimil(\1, ":E", False, True)         # Ceci n’est pas une forme verbale impérative.
        <<- />> -les|-COD|VCimp

    ~\w-la$
        <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True)                               # Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29
        <<- /imp/ __else__ and morphVC(\1, ":", ":V") and not value(<1, "|ce|cet|cette|ces|") and not value(\1, "|par-la|de-la|jusque-la|celui-la|celle-la|ceux-la|celles-la|")



        ->> =suggSimil(\1, ":E", False, True)+"|"+\1[:-3]+" là"                                     # Ceci n’est pas une forme verbale impérative. Si ce “la” signifie ici, écrivez “là”.
        <<- />> -la|-COD|VCimp

    ~\w-moi$
        <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True)                               # Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29
        <<- /imp/ __else__ and morphVC(\1, ":", ":V|>chez/") ->> =suggSimil(\1, ":E", False, True)  # Ceci n’est pas une forme verbale impérative.
        <<- />> -moi|-COI|VCimp
................................................................................
TEST: {{donnent-les-nous}}
TEST: {{donnait-nous-en}}
TEST: {{prend-m’en}} trois, s’il te plaît.
TEST: {{don-nous-en}}
TEST: {{bat-le}}
TEST: {{bluff-le}}
TEST: {{manges-la}}

TEST: {{bâton-la}} à son propre jeu
TEST: {{combat-les}}
TEST: {{flic-les}}
TEST: {{Oublies-moi}}.
TEST: {{Oubli-moi}}.
TEST: {{Sert-toi}} d’eux autant que tu le peux, puis casse-toi.
TEST: {{maintien-toi}}
................................................................................

    tout-à-fait
    tout-a-fait
    tous-à-fait
    tous-a-fait
        <<- /tu/ ->> tout à fait                                                # Pas de trait d’union.

    [les|des] [trois-quart+s]

        <<- /tu/ not value(>1, "|centre|aile|") and not after("équipe")
        -2>> trois quarts                                                       # Pas de trait d’union (sauf si vous parlez d’un vêtement ou d’un joueur de rugby).

    [<start>|,] trois-quarts [de|des|du]
        <<- /tu/ not after("équipe") -2>> trois quarts                          # Pas de trait d’union (sauf si vous parlez d’un vêtement ou d’un joueur de rugby).

    parce-que
    ~^[pP]arce-qu’
................................................................................
TEST: Ils sont {{en-deçà}} de tout                                              ->> en deçà
TEST: mais {{peu-à-peu}}
TEST: J’en ai déjà fait les {{deux-tiers}}.
TEST: {{en-haut}} de la montagne.
TEST: On va finir par s’y faire, {{peu-à-peu}}.
TEST: Venez vite, s’{{il-vous-plait}}.
TEST: Elles sont {{tout-à-fait}} ravies.
TEST: les {{trois-quarts}} ne savent pas ce qu’ils font.
TEST: {{Trois-quarts}} des participantes y sont parvenues.
TEST: {{Parce-qu’ils}} y croient plus que tout.
TEST: c’est {{par-là}}
TEST: Oui, {{ça-aussi}}.
TEST: Peu d’{{entre-nous}} savent ce dont il s’agit.


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

TEST: __mapos__ {{L }}opinion des gens, elle s’en moquait.



!!!! A / À: accentuation la préposition en début de phrase                                        !!

__typo_À_début_phrase!7__
    <start>  A  @:[GNAY]¬:(?:Q|3s)
        <<- /typo/ not value(\3, "|t’|priori|posteriori|postériori|contrario|capella|fortiori|")
        -2>> À                                                                                      # S’il s’agit de la préposition « à », il faut accentuer la majuscule.

    <start>  A  bientôt  [<end>|,]

        <<- /typo/ -2>> À                                                                           # S’il s’agit de la préposition « à », il faut accentuer la majuscule.

    <start>  A  t’  *WORD
        <<- /typo/ not value(\4, "|il|ils|elle|elles|on|ont|") -2>> À                               # S’il s’agit de la préposition « à », il faut accentuer la majuscule.

TEST: {{A}} vaincre sans péril, on triomphe sans gloire.
TEST: « {{A}} partir de maintenant, ce ne sera plus comme avant.
................................................................................
        <<- /conf/ not \1.isupper() and not \2.isupper()
        -2>> =suggSimil(\2, ":[NA].*:[pi]", True)                                                   # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

    [quels|quelles] [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|nous|vous|on]
        <<- /conf/ not \1.isupper() and not \2.isupper() and not value(<1, "|tels|telles|")
        -2>> =suggSimil(\2, ":[NA].*:[pi]", True)                                                   # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.





TEST: {{Ces}} {{cette}} canaille qui nous a donné tant de fil à retordre.
TEST: Quel {{tes}} voulez-vous
TEST: tes {{les}} sont périmés
TEST: Mon {{il}} est une merveille.
TEST: Quels {{mes}} délicieux



__conf_fusion_le_la_les_quels__
    le quel
        <<- /conf/ ->> lequel                                                                       # Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/lesquels

    le quels
................................................................................
!!!
!!! Conjugaison                                                                                   !!
!!!
!!!

## 1sg
__conj_je__
    je est un autre
        <<- !2>>

    je  @:V¬:(?:1s|Ov)
        <<- /conj/ not (morph(\-1, ":[PQ]") and morph(<1, ":V0.*:1s"))

        --1>> =suggVerb(\-1, ":1s")                             # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.

    j’       ?[en|y]¿                                                             @:V¬:(?:1s|Ov)
    [je|j’]  [ne|n’|le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]            @:V¬:(?:1s|Ov)
    [je|j’]  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:1s|Ov)
................................................................................
TEST: Je ne le lui {{achèterait}} pas.
TEST: Je ne l’y {{aie}} pas vu.
TEST: Je ne t’{{attend}} pas.
TEST: J’{{arrivait}} en retard.
TEST: J’m’la {{fumerait}} bien, cette clope.
TEST: J’leur en {{veut}} pas, à ces crétins.
TEST: je t’en {{parlé}}
TEST: Je est un autre.


__conf_je_non_verbe__
    je  @:¬:(?:V|Ov)
        <<- /conf/ not value(\2, "|soussigné|soussignée|") and not morph(<1, ":1s")
        -2>> =suggSimil(\2, ":(?:1s|Ov)", False)                                                    # Incohérence avec “je” : “\2” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

................................................................................
TEST: {{il}} ne {{pensent}} à rien.
TEST: il ne la lui {{donné}} pas souvent
TEST: il n’y {{aurais}} plus rien à attendre de la religion et de la politique.
TEST: il y en {{as}}.


__conf_il_non_verbe__
    il  @:¬:(?:V|Ov)
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|t’|") and not value(\-1, "|c’|ce|ou|")
        -2>> =suggSimil(\2, ":(?:3s|Ov)", False)                                                    # Incohérence avec “\1” : “\2” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    il  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:¬:(?:V|Ov)
    il  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:¬:(?:V|Ov)
    il  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:¬:V
    il  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:¬:V
    il  ?[ne|n’]¿  [lui|leur]                     en                         @:¬:V
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|t’|") and not value(\-1, "|c’|ce|")
        --1>> =suggSimil(\-1, ":(?:3s|Ov)", False)                                                  # Incohérence avec “\1” : “\-1” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: il {{et}} parti.
TEST: il nous {{et}} indispensable.
TEST: Il ne {{travail}} pas le week-end.
TEST: il m’{{arête}} encore une fois avec une impudence insupportable.
TEST: il n’y {{pas}} beaucoup d’entente entre eux.
................................................................................
TEST: on {{remué}} beaucoup.
TEST: on {{refuses}} tout cela
TEST: on ne se {{bougent}} pas suffisamment


__conf_on_non_verbe__
    on  @:¬:(?:V|Ov)|>ou/
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|n’|m’|t’|s’|") and not value(\-1, "|c’|ce|")
        -2>> =suggSimil(\2, ":(?:3s|Oo)", False)                                                    # Incohérence avec “\1” : “\2” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

    on  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:¬:(?:V|Ov)
    on  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:¬:(?:V|Ov)
    on  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:¬:(?:V|Ov)
    on  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:¬:(?:V|Ov)
    on  ?[ne|n’]¿  [lui|leur]                     en                         @:¬:(?:V|Ov)
        <<- /conf/ not morph(<1, ":3s") and not value(<1, "|n’|m’|t’|s’|") and not value(\-1, "|c’|ce|")
        --1>> =suggSimil(\-1, ":(?:3s|Ov)", False)                                                  # Incohérence avec “\1” : “\-1” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

TEST: on {{et}} parti.
TEST: on nous {{et}} indispensable.
TEST: on ne {{travail}} pas le week-end.
TEST: on m’{{arête}} encore une fois avec une impudence insupportable.
TEST: on n’y {{pas}} beaucoup d’entente entre eux.
................................................................................
__conf_c_s_verbe__
    [il|ils|on|ne|n’]  c’
        <<- /conj/ -2>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.

    [<start>|,]  [elle|elles|lui|eux]  c’  >être  ?@:W¿  @:Q
        <<- /conj/ -3>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.

    [<start>|,]  [elle|elles|lui|eux]  c’  @:V¬>être/
        <<- /conj/ -3>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.

    c’ y
    c’ @:V¬>(?:avoir|être|devoir|devenir|pouvoir|vouloir|savoir)/.*:3[sp]
        <<- /conj/ -1>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.

    s’ >avoir
        <<- /conf/ -1>> c’|ç’                                                   # Confusion. Avec “\2” (du verbe “avoir”), le pronom personnel sujet est “ce” ou “ça” dont les graphies élidées sont “c’” et “ç’”.

TEST: {{S’en}} était vraiment trop !
TEST: Car {{s’en}} était vraiment fini !
TEST: il {{c’}}en est vite lassé.
TEST: elles {{c’}}en étaient trop vanté
TEST: cet homme, perdu dans ses pensées, allait {{c’}}en faire du souci.
TEST: il {{c’}}accoutumait à sa nouvelle fonction.
TEST: elle {{c’}}anime dès qu’on fait du bruit.
TEST: eux {{c’}}étaient pris
TEST: {{s’}}{{avait}} fonctionné
TEST: {{c’}}y adonne avec passion
TEST: c’était merveilleux.
................................................................................

TEST: Il {{ne n’}}arrive jamais à l’heure.
TEST: il {{me ne}} connaît pas
TEST: elle {{me}} t’arrêtera pas
TEST: Ça {{me}} te prend la tête, toutes ces complications vaines.
TEST: ça {{te me}} donne la chair de poule.
TEST: ça {{te n’}}arrive pas
TEST: ça {{te s’}}arrive pas
TEST: il {{se me}} peut que nous soyons sélectionnés
TEST: il {{se m’}}est difficile d’y parvenir.


__conf_chez_vconj__
    chez  @:(?:[123][sp]|P)¬:[GNAQM]
        <<- /conf/ not \2.istitle() -2>> _                                                          # Incohérence avec “chez” : “\2” est une forme verbale conjuguée.
................................................................................
TEST: comme des nuages ou des coteaux se reflétant dans l’eau (ligature fl)
TEST: ces hommes qui avaient abusé de lui enfant.


__conf_en_participes_présents__
    en   [ne|me|m’|te|t’|s’]  @:[123][sp]¬:[PY]
        <<- /conf/ not \1.isupper() >>>
        <<- /conf/ morph(\3, ":3p") -3>> =suggVerbTense(\3, ":PQ", ":P")                                 # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- /conf/ value(\2, "|m’|t’|s’|") -1:2>> "\2en "                                           # Incohérence : vouliez-vous écrire « \2’en » ?
        <<- /conf/ __else__ -1:2>> =\2[0:1] + "’en"                                                 # Incohérence.




    en   se  @:[123][sp]¬:[PY]
        <<- /conf/ not \1.isupper() >>>
        <<- /conf/ morph(\3, ":3p") -3>> =suggVerbTense(\3, ":PQ", ":P")                            # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- /conf/ not morph(\3, ":[NA]") -1:2>> "s’en "                                            # Incohérence : vouliez-vous écrire « s’en » ?




    en   n’  @:[123][sp]¬:[PY]
        <<- /conf/ not \1.isupper() and not value(\3, "|importe|") >>>
        <<- /conf/ morph(\3, ":3p") -3>> =suggVerbTense(\3, ":PQ", ":P")                            # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- /conf/ not value(<1, "|n’|") -1:2>> "n’en "                                             # Incohérence : vouliez-vous écrire « n’en » ?
        <<- /conf/ __else__ -1:2>> "en "                                                            # Double négation :  “n’” est une graphie élidée de “ne”. Il est inutile de la mettre deux fois. L’accord euphonique se fait en prononçant le “n” de “en” avec la première voyelle de “\3”.

TEST: {{en t’}}ait donné tant.                                              ->> "t’en "
TEST: il {{en me}} donne beaucoup.                                          ->> m’en
TEST: elle n’{{en n’}}avait plus pour longtemps.                            ->> "en "
TEST: {{en m’}}{{apportent}} des gâteaux
TEST: {{en se}} {{contentent}}
TEST: {{en n’}}{{abordent}} la côte, nous vîmes le désastre.
TEST: {{en n’}}{{envoient}} que peu.
TEST: en ne prenant que des talents réputés,
TEST: toute chose pourrait finalement advenir indifféremment en n’importe quel point du globe


#### Divers
__ppas_lui_verbe__
    lui ?aussi¿ ~é(?:es?|s)$
        <<- /ppas/ morph(\-1, ":Q") and not morph(<1, ":(?:V0a|R)") --1>> =suggVerbPpas(\-1, ":m:s")+"|"+suggVerbInfi(\-1)+"|"+suggVerbTense(\-1, ":Iq", ":3s")
        # Incohérence probable. Après “lui”, il faut un participe passé masculin singulier, l’infinitif ou une forme verbale conjuguée (3ᵉ personne du singulier).




TEST: lui {{mangée}} beaucoup.
TEST: lui aussi {{mangés}} beaucoup.
TEST: L’homme qui s’approchait de lui voulait le surprendre.
TEST: avec Paul, lui aussi éliminé.
TEST: les études qu’il a lui terminées avec bien du mal.
TEST: cette déclaration fut selon lui rédigée par des imbéciles.


__ppas_elle_verbe__
    elle ?aussi¿ ~é(?:es|s)$
        <<- /ppas/ morph(\-1, ":Q") and not morph(<1, ":(?:V0a|R)") --1>> =suggVerbPpas(\-1, ":f:s")+"|"+suggVerbTense(\-1, ":Iq", ":3s")
        # Incohérence probable. Après “lui”, il faut un participe passé féminin singulier ou une forme verbale conjuguée (3ᵉ personne du singulier).

TEST: elle {{mangé}}.
TEST: elle aussi {{mangées}}.



__conf_presque_vconj__
    presque  @:[123][sp]¬:[GNAQWM]
        <<- /conf/ not tag_before(\1, "ce_que") and not value(<1, "|ou|") -2>> _                    # Incohérence probable avec “presque” : « \2 » n’est ni un adjectif, ni un participe passé, ni un adverbe.

TEST: presque {{délaissait}} par tout le monde.
................................................................................
    a l’ autre bout                                                                             [de|d’|des|du]
    a la [portée|suite]                                                                         [de|d’|des|du]
        <<- /conf/ -1>> à                                           # Confusion probable : “a” est une forme conjugée de “avoir”. Pour la préposition, écrivez “à”.

    a [base|cause] [de|d’|des|du]
        <<- /conf/ not tag_before(\1, "ce_que") -1>> à              # Confusion probable : “a” est une forme conjugée de “avoir”. Pour la préposition, écrivez “à”.

TEST: des planètes {{a}} la portée des nouveaux vaisseaux.
TEST: Il l’a fait {{a}} cause de toi.


__conf_à_cor_et_à_cri__
    !! à cor et à cri ¡¡
    [a|à] [corps|cor+s] [et|est|es|ait|ais|aies|é|è|ei|ai|aient] [à|a] [cri+s|crie+s|crit]
        <<- /conf/ ->> à cor et à cri                   # Locution adverbiale invariable. (Le cor est un instrument à vent utilisé pour la chasse.)|https://fr.wiktionary.org/wiki/%C3%A0_cor_et_%C3%A0_cri
................................................................................

TEST: La {{compagne}} électorale tourne à la guerre.
TEST: Lançons une {{compagne}} de communication
TEST: en rase {{compagne}}
TEST: Allons à la {{compagne}}
TEST: Perdus en rase campagne










# cap / cap
__conf_cap_cape__
    de >pied en >cape
        <<- /conf/ ->> de pied en cap                   # Confusion : la cape est un vêtement.|https://fr.wiktionary.org/wiki/de_pied_en_cap

TEST: rhabillée {{de pied en cape}}.
................................................................................
    se [ne|n’] [>être|>pouvoir|>devoir]
        <<- /conf/ not \1.isupper() -1>> ce             # Confusion probable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=2440

    se  /-là
    se  @:[NAQ]¬:([123][sp]|Y|P|Q)|>l[ea]?/
        <<- /conf/ not \1.isupper() -1>> ce             # Confusion. Ce chien, ce chat… Se demander, se croire…

    se  /-la
        <<- /conf/ morphVC(\2, ":[NA]") -1>> ce         # Confusion. Ce chien, ce chat… Se demander, se croire…

    ceux  ne  @:[123]s¬:P
        <<- /conf/ -1>> ce                              # Confusion.|http://www.intellego.fr/soutien-scolaire-6eme/aide-scolaire-francais/ce-ceux-ou-se/3829

    ceux  @:N.*:s¬:(?:A.*:[pi]|P|R|G)|>(?:autour|a)/
        <<- /conf/ -1>> ce                              # Confusion probable.|http://www.intellego.fr/soutien-scolaire-6eme/aide-scolaire-francais/ce-ceux-ou-se/3829

TEST: {{Se}} seraient des histoires.
................................................................................
TEST: {{Se}} sera une fille.
TEST: {{ceux}} seraient des jours heureux
TEST: Pour {{se}} faire, ils sont prêts à tout.
TEST: {{se}} ne peut être ainsi.
TEST: C’est tout {{se}} qu’il y a
TEST: Tout {{se}} que je fais
TEST: tout {{se}} qu’il entend
TEST: {{se}} {{chien-la}}
TEST: {{se}} {{train}} est en retard
TEST: {{ceux}} train arrive trop vite.
TEST: {{ceux}} ne doit pas nous faire oublier ce désastre
TEST: {{se}} {{chemin-là}} est difficile
TEST: les expatriés éloignés ou ceux habitant ici
TEST: les photographies de ceux n’ayant pas dépassé sept sur vingt.
TEST: Pensez-vous que ceux ne sachant même pas ce qu’est une VHS peuvent y trouver leur compte ?
................................................................................
        -1>> dès                                                                                    # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s

    des [que|qu’|lors|après|maintenant|toujours|midi|minuit|aujourd’hui|hier|demain|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche|Pâques|Noël]
    des [un|une|le|la|l’|les|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|ce|cet|cette|ces] @:[NA]
        <<- /conf/ not value(<1, "|un|une|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|")
        -1>> dès                                                                                    # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s

    des [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|nous|vous|on|ceux|celles|celui|celle]
        <<- /conf/ not \1.isupper() and not \2.isupper() -1>> de|dès                                # Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.
        <<- /conf/ __also__ and hasSimil(\2, ":[NA].*:[pi]") -2>> =suggSimil(\2, ":[NA].*:[pi]", True)      # Confusion probable. Pour la préposition, écrivez “dès” ou “de”.

    [dés|des] [à|a] présent
        <<- /conf/ not morph(<1, ":D.*:p") -1>> dès                                                 # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s

    des ~^\d{2,5}$  [<end>|,]
    des ~^\d{2,5}$  @:¬:[NA].*:[ip]|>(?:à|et|ou)/
        <<- /conf/ not value(<1, "|%|") and not morph(<1, ":B|>(?:pourcent|barre|seuil)/") -1>> dès # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s

    [dés|des] *NUM ans
    [dés|des] @:B ans
    [dés|des] un an
        <<- /conf/ not morph(<1, ":R|>(?:approcher|anniversaire|cap|célébration|commémoration|occasion|passage|programme|terme|classe|autour|celui|ceux|celle|celles)/") and not value(>1, "|de|du|des|d’|")
            and not before("% +$")
        -1>> dès                                                                                    # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s
................................................................................

    leurs dès
        <<- /conf/ not value(<1, "|les|des|") -2>> dés                                              # Confusion probable. Pour la couture ou les jeux, écrivez “dé”.|https://fr.wiktionary.org/wiki/d%C3%A9

    les dès
        <<- /conf/ not morph(<1, ":E") -2>> dés                                                     # Confusion probable. Pour la couture ou les jeux, écrivez “dé”.|https://fr.wiktionary.org/wiki/d%C3%A9

TEST: je ne sais {{des}} ses choses.
TEST: il faut {{des}} à présent s’en souvenir.
TEST: {{Des}} à présent
TEST: {{Dés}} à présent
TEST: {{dés}} qu’il fait beau, je sors.
TEST: Jette quelques {{des}} sur la table et voyons.
TEST: j’en ai marre de ces {{dès}}.
TEST: Les {{dès}} {{sont}} jetés.
................................................................................
TEST: J’ai acheté des {{dès}} à jouer.
TEST: Dieu ne joue pas aux {{dès}}.
TEST: J’apporte mes {{dès}}.
TEST: {{Des}} 1980, le pays était en crise.
TEST: {{Des}} dix-huit ans.
TEST: {{Des}} 4 ans.
TEST: Viens {{des}} 9 heures
TEST: {{Des}} l’arrivée, ça a commencé à dégénérer
TEST: c’était {{dés}} trois heures.
TEST: {{dés}} que nous sommes partis, il a piqué une crise
TEST: {{des}} {{les}} premiers symptômes, appelez-moi
TEST: jette leurs {{dès}} sans attendre.
TEST: Les dés sont jetés.
TEST: C’est un des leurs.
TEST: Plusieurs dès qu’on en saura plus.
................................................................................
    la  [l’|d’|n’|m’|t’|s’|c’|ç’|j’|qu’|lorsqu’|puisqu’|quoiqu’]
    la  @:G¬:(?:[NA]:[ef]|W|V)|>(?:lui|leur|votre|notre|voilà|voici|plupart|quell?e?s?|tout|toute)/
        <<- /conf/ not \1.isupper() and not \2.isupper() and not morph(<1, ":E|>le/") -1>> là       # Confusion probable. Écrivez “là” si vous voulez dire “ici”.

    [ce|cet|cette|ces]  /-la
        <<- /conf/ -2>> =\2[:-2]+"là"                                                               # Confusion. Écrivez “là” soudé au nom pour désigner un objet précis.

TEST: Ce {{fait-la}} ne peut être ignoré.
TEST: ce {{soutien-la}}
TEST: nous serions encore {{la}} l’année prochaine
TEST: en reprenant le chandail de John {{la}} où elle l’avait abandonné.

TEST: la peu efficace sensibilité
TEST: c’est toujours la même histoire
TEST: c’est la moins habile de toutes
TEST: Qui serait la ou le plus à même à occuper ce poste selon vous ?
TEST: Il fait remonter à la toute première expérience humaine de maîtrise.
TEST: l’existence d’un fichage la concernant
TEST: avec la ou les indications qu’on recontre ici et là.
................................................................................
    lés  @:N.*:[pi]¬:(?:[MGAW]|3p)
        <<- /conf/ -1>> les                                     # Confusion probable. Un lé est une bande de tissu ou de papier peint.|https://fr.wiktionary.org/wiki/l%C3%A9

TEST: Entre les saules et {{lés}} ifs.
TEST: Montrez-moi ces {{lès}} venus d’Italie.                           ->> lés
TEST: avec {{lès}} hommes d’à côté, difficile de se concentrer.         ->> les
TEST: Entre les saules et {{lès}} ifs                                   ->> les
TEST: étale ces petits {{lès}}                                          ->> lés
TEST: Les asphaltes purs d’étanchéité sont des mastics bitumineux, de même que les masses d’enrobage des lés d’étanchéité.
TEST: Pour avoir fait de neuf une grande cage de bois de grosses solives, membrures et sablières, contenant neuf pieds de long sur huit de lé. (Victor Hugo)
TEST: Un lé de velours, de taffetas, de toile.
TEST: Draps de lit de deux lés.
TEST: Elle habite Vandœuvre-lès-Nancy.


................................................................................
TEST: La {{pause}} des ardoises.
TEST: La {{pause}} de la tapisserie.
TEST: La {{pause}} de la première pierre.


# péché / pêcher
__conf_péché_pêcher1__
    [pécher|>pêcher|pêché+ses] [mignon+s|>capitale|>mortelle|>originelle|>vénielle]
    [pécher|>pêcher|pêché+ses] de jeunesse
        <<- /conf/ -1>> péché|péchés                                        # Confusion. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9

    [>absolution|>rémission] [des|du] [pécher|>pêcher|pêché+ses]
    [>absolution|>rémission] de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] [pécher|>pêcher|pêché+ses]
        <<- /conf/ --1>> péché|péchés                                       # Confusion. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9

TEST: Les sept {{pêchers}} capitaux.
TEST: Un {{pêcher}} mignon.
TEST: l’absolution des {{pêchers}}
TEST: C’est mon {{pêché}} mignon
TEST: Les {{pêchers}} capitaux
TEST: Des {{pêchés}} véniels
TEST: C’est mon péché mignon.


__conf_pécheur_pêcheur__
    [>auberge|>barque|>baraque|>botte|>cabane|>cabanon|>caissette|>chaloupe|>cordage|>cuissarde|>habit|>hameçon|>maison|>métier|>nœud|>pantalon|>pirogue|>soupe|>veste|>village|>bateau] [de|d’|du|des] [pécheur+s]
        <<- /conf/ -3>> =\3.replace("pé", "pê").replace("Pé", "Pê").replace("PÉ", "PÊ")     # Confusion probable : pêcheurs (qui pêchent des animaux marins) ≠ pécheurs (qui commettent des péchés).

................................................................................
TEST: Qu’elle avait été accueillie avec joie.


__conf_quelle_qu_elle__
    quelle  [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y]
        <<- /conf/ not (value(\2, "|en|ne|")  and morph(>1, ":V0e")) -1>> qu’elle                   # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”.

    quelle  @:V¬:[NA].*:[fe]|>(?:être|plus)/
        <<- /conf/ \2.islower() and not (morph(\2, ">(?:pouvoir|devoir|aller)/") and (morph(>1, ":V0e") or morph(>2, ":V0e"))) and not (morph(\2, ":V0a") and value(>1, "|été|"))
        -1>> qu’elle                                                                                # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”.

TEST: {{Quelle}} y vienne, on verra ce qu’elle vaut.
TEST: {{Quelle}} a du répondant, cette gamine !
TEST: {{Quelle}} partit prendre son repas à la cantine, je n’en avais cure.
TEST: Il se plaint {{quelle}} ne nous dit rien.
................................................................................
TEST: {{Quelle}} l’apprenne un jour, on n’y peut rien.
TEST: Je crois {{quelle}} n’en sait pas assez pour nous nuire.


    quelles [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y]
        <<- /conf/ not (value(\2, "|en|ne|") and morph(>1, ":V0e")) -1>> qu’elles                   # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”.

    quelles @:V¬:[NA].*:[fe]|>(?:être|plus)/
        <<- /conf/ \2.islower() and not (morph(\2, ">(?:pouvoir|devoir|aller)/") and (morph(>1, ":V0e") or morph(>2, ":V0e"))) and not (morph(\2, ":V0a") and value(>1, "|été|"))
        -1>> qu’elles                                                                               # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”.

TEST: Je veux {{quelles}} s’efforcent à y parvenir.
TEST: {{Quelles}} t’arrivent seulement à la cheville, voilà qui serait étonnant.
TEST: {{Quelles}} m’engueulent encore une seule fois et elles vont le regretter.
TEST: {{Quelles}} viennent et qu’on en finisse.


    quelle  >être   @:[QA]¬:G
        <<- /conf/ morph(\2, ":[123][sp]") -1>> qu’elle                                             # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”.

    quelles >être   @:[QA]¬:G
        <<- /conf/ morph(\2, ":[123][sp]") -1>> qu’elles                                            # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”.
................................................................................
        <<- /conf/ -3>> sein
        # Confusion : “sain” signifie “en bonne santé”, “saint” évoque ce qui “sanctifié”. Pour évoquer, au sens figuré, ce qui est une partie intime de quelque chose ou quelqu’un, écrivez “sein”.|https://fr.wiktionary.org/wiki/sein

    au [sain|saint|seing] [de|des|du|d’]
        <<- /conf/ -2>> sein
        # Confusion probable : “sain” signifie “en bonne santé”, “saint” évoque ce qui “sanctifié”. Pour évoquer, au sens figuré, ce qui est une partie intime de quelque chose ou quelqu’un, écrivez “sein”.|https://fr.wiktionary.org/wiki/sein

    [blanc-sein+s|blancs-sein+s]
    [blanc-sain+s|blancs-sain+s]
    [blanc-saint+s|blancs-saint+s]
        <<- /conf/ ->> blanc-seing|blancs-seings                # Confusion.|http://fr.wiktionary.org/wiki/blanc-seing

TEST: il priait {{sain}} Anselme de le secourir.
TEST: Au {{sain}} de l’obscurité, elle se sentait en sécurité.
TEST: Sur son {{sain}}
TEST: en son {{saint}}.
TEST: {{blanc-sein}}


# ne pas être sans savoir
__conf_ne_pas_être_sans_savoir__
    >être [pas|plus|jamais|guère] sans >ignorer


    ne [pas|plus|jamais|guère] être sans >ignorer
        <<- /conf/ --1>> savoir         # Confusion probable : vous écrivez l’inverse de ce que vous voulez dire.|http://fr.wiktionary.org/wiki/vous_n%E2%80%99%C3%AAtes_pas_sans_savoir

TEST: Vous n’êtes pas sans {{ignorer}} que…
TEST: ne pas être sans {{ignorer}} la cause de ces phénomènes.


# sens / cens / cent / sans / sang
__conf_sens_sans_cent_cens__
................................................................................
TEST: elle sans la condamner
TEST: elles sans un sou en poche
TEST: elles sans grandes convictions


__conf_sensé_censé__
    très >censée
        <<- /conf/ -2>> =\2.replace("sen", "cen").replace("Cen", "Sen").replace("CEN", "SEN")       # Confusion probable. Ce qui est “sensé” (de “bon sens”) et ce que chacun est “censé” accomplir.

TEST: Des personnes très {{censées}} qui perdent parfois la tête.


# sans coup férir
__conf_sans_coup_férir__
    !! sans coup férir ¡¡
................................................................................
TEST: {{S’en suivre}}.


# soi / soit
__conf_soi_disant__
    soi [disants|disante|disantes]
    [>soie|soit|sois] [disant+ses]
    [soi-disants|soi-disante+s]
    [sois-disant+ses]
    [soie-disant+ses]
    [soies-disant+ses]
    [soit-disant+ses]
        <<- /conf/ ->> soi-disant                                                                   # Confusion : “soi-disant” est un adjectif invariable.|http://fr.wiktionary.org/wiki/soi-disant

TEST: Méfiez-vous de cette {{soi-disante}} sorcière.
................................................................................
    >liaison sans lendemain
    >lampe à [huile|pétrole]
    >lampe de chevet
    >lime à >ongle
    >liste d’ attente
    >lit de camp
    >livre de poche
    >lune de miel
    >machine à [café|coudre|écrire|laver|sous|voter]
    >machine à remonter le temps
    >machine de guerre
    >maillot de bain
    >main d’ œuvre
    >maison de [passe|retraite]
    >mal de [tête|ventre|mer]
................................................................................
        <<- /gn/ morph(\1, ":D") >>>
        <<- /gn/ morph(\2, ">[bcdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.replace("on", "a").replace("ON", "A")     # Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    # Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    # Accord de nombre erroné : « \2 » devrait être au singulier.

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


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

TEST: il brandissait avec fougue son drapeau {{déchirés}}
TEST: comment osez-vous médire de mon héritage {{glorieuse}}
TEST: on parlait de son escapade {{éperdu}} au milieu de la nuit.
TEST: ton étonnante {{secret}} ne sera pas au programme.

TEST: le ton monte.


__gn_ma_ta_sa_1m__
    [ma|ta|sa]  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =\1[:-1]+"on"                       # Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and not re.search("(?i)^[aâeéèêiîoôuûyœæ]", \2) and hasFemForm(\2)
................................................................................
            and not apposition(\3, \4)
        -4>> =switchGender(\4, False)                                                       # Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False)                  # Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggSing(\4)                                                                  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: chaque élément {{terrestres}}
TEST: notre {{belle}} {{avenu}}
TEST: ils viennent de chaque coin {{ignorée}} du pays.
TEST: que faire de votre {{ennuyeuse}} {{avocat}}
TEST: de quelque cartable {{vides}}
TEST: Quelque chose tombé dans le puits a souillé l’eau.


__gn_det_sing_3m__
    [ledit|ladite|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|au|quel|quelle|dudit]  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\2, ":[NA].*:[si]") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G|P)") and morph(\4, ":[NA].*:p", "*") and \4.islower()
        -4>> =suggSing(\4)                                                                  # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.
................................................................................
TEST: {{Quelle}} homme.                                       ->> Quel
TEST: {{Quelle}} {{folles}}
TEST: {{Quelle}} {{chien}}
TEST: {{Quelle}} {{chats}}
TEST: Quelle sale journée…


__gn_quelles_1m!8__
    quelles  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])")        -1>> quel                       # Accord de genre et de nombre erroné. « \2 » est masculin et au singulier.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggFemPlur(\2, True)     # Accord de genre et de nombre erroné : « \1 » est féminin et au pluriel.
        <<- /gn/ morph(\2, ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])")        -1>> quelle                     # Accord de nombre erroné : « \2 » est au singulier.
        <<- /gn/ __also__                                                       -2>> =suggPlur(\2)              # Accord de nombre erroné : « \1 » est au pluriel.
        <<- /gn/ morph(\2, ":[NA].*:m:[pi]", ":(?:V0|Oo|[NA].*:[fe]:[pi])")     -1>> quels                      # Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggFemPlur(\2, True)     # Accord de genre erroné : « \1 » est féminin.
................................................................................
        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemPlur(\4, True)                                                         # Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
            and not (\1.startswith("de") and value(<1, "|un|une|"))
        -4>> =suggFemPlur(\4)                                                               # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: certaines idioties {{stupide}}
TEST: quelles grandes {{idiots}}
TEST: je ne sais guère de quelles âneries {{proférés}} on parle.
TEST: quelles étonnantes {{petits}}


## quelque adverbe
__gn_quelque_adverbe__
    quelques  *NUM
................................................................................
        <<- /gn/ ((morph(\2, ":m", "*") and morph(\3, ":f", "*")) or (morph(\2, ":f", "*") and morph(\3, ":m", "*"))) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      # Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ ((morph(\2, ":s", "*") and morph(\3, ":p", "*")) or (morph(\2, ":p", "*") and morph(\3, ":s", "*"))) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      # Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    # Accord de nombre erroné avec « \3 ».

TEST: {{serrurière}} {{intelligent}}.
TEST: {{serrurier}} {{intelligente}}.
TEST: {{Femmes}} {{mariée}}
TEST: {{hommes}} {{marié}}


__gn_start_3m__
    <start>  @:[NA]¬*  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ morph(\2, ":p") and morph(\3, ":[pi]") and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":i") and morph(\3, ":p")    and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":s") and morph(\3, ":[si]") and morph(\4, ":p") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
................................................................................
        -3>> =switchGender(\3)                                                                      # Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ ( (morph(\2, ":p", "*") and morph(\3, ":s", "*")) or (morph(\2, ":s", "*") and morph(\3, ":p", "*")) ) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      # Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    # Accord de nombre erroné avec « \3 ».

TEST: en homme {{courtoise}}
TEST: en {{grande}} {{avocat}}
TEST: en {{femme}} {{cultivées}}


__gn_pfx_à_par_pour_sans_2m__
    [à|par|pour|sans]  @:[NA]¬:Y  @:[NA]¬:G
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      # Accord de genre erroné avec « \2 ».
................................................................................
TEST: On va procéder par {{intervalle}}


# juste
__sgpl_juste__
    justes
        <<- /sgpl/ \1.islower() and morph(<1, ":V", ":[DA]") and not morph(>1, ":[NA].*:[pi]")
            and not (morph(<1, ">(?:être|sembler|devenir|rester|demeurer|redevenir|para[îi]tre)/.*:[123]p") and morph(>1, ":G|<end>|>,/"))
        ->> juste                                                   # Si “juste” est un adverbe, il est invariable.

TEST: Viser {{justes}}
TEST: Voir {{justes}}.
TEST: Penser juste.
TEST: Dures mais justes.
TEST: J’ai retrouvé tout mon ressenti, tous les mots sont justes.
................................................................................
         <<- /conf/ -2>> butte                                          # Confusion. Écrivez « en butte \3 ».

TEST: Et moi toujours en {{but}} à de nouveaux dangers


# cane / canne (from LanguageTool)
__conf_canne_cane__
    >cane [à|a] [sucre|pêche|selfie]
    >cane [de|d’] [bambou|bois|combat|compagnon|compagnonnage|défense|golf|marche|Noël|ramonage)|>aveugle]
        <<- /conf/ -1>> =\1.replace("ane", "anne")                      # Confusion. La cane est la femelle du canard.|https://fr.wiktionary.org/wiki/cane

    [>alcool|>coup|>sucre|>sirop] de >cane
        <<- /conf/ -3>> canne                                           # Confusion. La cane est la femelle du canard.|https://fr.wiktionary.org/wiki/cane

    [>œuf|>filet] de >canne
................................................................................

# péché / pêcher
__conf_péché_pêcher2__
    >pêcher par excès [de|d’]
    >pêcher par [insuffisance|omission|orgueil]
        <<- /conf/ -1>> pécher                                  # Confusion : pêcher (capturer des poissons) ≠ pécher (faire un écart de conduite).|https://fr.wiktionary.org/wiki/p%C3%A9cher

    [>commettre|>pardonner|>confesser|>absoudre|>avouer|>reconnaître|>reconnaitre|>expier|>effacer] @:D [pécher|pêcher+s|pêché+ses]
    >repentir de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] [pécher|pêcher+s|pêché+ses]
        <<- /conf/ --1>> =\-1.replace("êch", "éch").replace("er", "é").replace("ÊCH", "ÉCH").replace("ER", "É")



        # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C1%A9ch%C1%A9


    >pécher [du|d’|de|des|la|le|l’|les|à|au|aux] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle||>moule|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques]
    >pécher [de|à] [la|l’] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques]
        <<- /conf/ -1>> =\1.replace("éch", "êch").replace("èch", "êch").replace("ÉCH", "ÊCH").replace("ÈCH", "ÊCH")
        # Confusion : pêcher (capturer des poissons) ≠ pécher (faire un écart de conduite).|https://fr.wiktionary.org/wiki/p%C3%A9cher

TEST: Il {{pêche}} par excès de confiance.
TEST: commettre un {{pêcher}}.                                              ->> péché
TEST: Elle voulut expier ses {{pêchés}}.                                    ->> péchés

TEST: il {{péchait}} à la ligne                                             ->> pêchait




# peu / peux / peut
__conf_peut_peux_peu2__
    [peux|peut]  [de|d’]  @:[NA]¬*
        <<- /conf/ not value(<1, "|je|tu|il|elle|on|ne|n’|") and space_after(\1, 1, 3) -1>> peu     # Confusion probable : “\1” est une forme conjuguée de “pouvoir”, écrivez “peu” pour dire “pas beaucoup”.

................................................................................
@@@@
@@@@GRAPH: purge_ponctuations2                                                                     _
@@@@
@@@@
@@@@
@@@@

__da_été2__
    >avoir été
        <<- =>> select(\2, ":Q")


__purge_subst_plur_comme_nom_sing__
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿         @:3p¬:G
................................................................................
        <<- /ocr/ __else__ and \2.endswith("s") and morph(\2, ":V1.*:Ip.*:2s", ":[GM]")
        -2>> =suggVerbPpas(\2, ":m:p")                                                              # Erreur de numérisation ?

TEST: __ocr__ je reconnais que j’ai pas {{traîne}}
TEST: __ocr__ elle est fauchée et a {{emprunte}} de l’argent
TEST: __ocr__ quel héros d’avoir {{affronte}} ces salopards de la police
TEST: __ocr__ tant avoir {{creuse}} vers le haut.
TEST: __ocr__ tu devrais le savoir, d’avoir {{affrontes}} ces gens…
TEST: __ocr__ elle avait envie de s’en sortir enfin.



!!!! Confusions                                                                                   !!

## on / ont
................................................................................
        || être [devenu|redevenu|resté|demeuré]                                                                                             [@:[NA].*:p¬:[GWYsi]|@:[AQ].*:f¬:[GWYme]]
    lequel ?[ne|n’]¿ ?[en|y]¿
        || [>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]
        || avoir [été|semblé|paru]                                                                                                          [@:[NA].*:p¬:[GWYsi]|@:[AQ].*:f¬:[GWYme]]
        <<- /ppas/ not morph(<1, ":R") --1>> =suggMasSing(\-1)                                                          # Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.

TEST: Il semble être {{partis}} pour toujours.                                    ->> parti
TEST: Il n’est pas {{demander}} à chacun de participer.
TEST: Il n’en était pas {{contents}}.                                             ->> content
TEST: Il est {{laisser}} à lui-même
TEST: s’indigner contre quiconque en fut {{fâchés}}
TEST: celui qui ne semble pas {{étonnés}}
TEST: c’est ça qui paraît {{stupides}}
TEST: celui-là semble {{perdus}} dans ses pensées.
TEST: c’est {{condescendants}}.                                                   ->> condescendant
TEST: C’est {{finis}}.
TEST: Ç’avait été {{horribles}}
TEST: ça semble {{perdus}}
................................................................................
TEST: elle avait accompagné cet homme, lequel était {{revenue}} de l’enfer.
TEST: Il peut être {{observée}}.
TEST: celui-là pensait être {{perdue}}
TEST: celui-là peut être {{perdue}}
TEST: il pense avoir été {{volés}}
TEST: lui qui ne pensait jamais être {{reconnus}}.
TEST: ça ne semble pas avoir été {{conçus}} pour ça.
TEST: celui-ci déclare être devenu {{fous}}
TEST: celui-là qui n’aime pas avoir paru plus {{grands}} qu’il ne l’était réellement
TEST: cela qui n’en était pas moins {{absurdes}}
TEST: lui qui ne croit rester {{humbles}} en mettant sans cesse en avant ses mérites
TEST: lequel allait être {{renvoyée}} de l’établissement.
TEST: tout sera {{dissoute}}
TEST: C’est donc seules que les deux femmes sont amenées à comparaître
TEST: C’eût été pure imagination.
TEST: Je n’arrêtais pas de me répéter que tout cela était peut-être pure imagination
TEST: La femme qui faisait ça est partie.
TEST: De cela a toujours été faite notre vie
................................................................................
TEST: Pesons le pour et le contre.
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.


__imp_union_en__
    *WORD  en
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:venir|aller|partir)/") and morph(>1, ":|<end>|>,", ":(?:N|A|Q|Y|M|P|H|T|D)|>(?:pour|plus|moins|mieux|peu|plupart|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

    ,  *WORD  en
        <<- /imp/ space_after(\1, 1, 1) and morph(\2, ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/")
            and morph(>1, ":|<end>|>,", ":(?:N|A|Y|M|P|B|3[sp]|D)|>(?:pour|plus|moins|mieux|peu|trop|très|en|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: {{restons en}} là.
TEST: tu crois ça, {{donnes en}} encore
TEST: Intercède en ma faveur
TEST: Même l’implacable guerrier-capitaine de la Fédération, James T. Kirk, apprend en rechignant à enterrer le phaser avec les bâtards Klingons qui ont tué son fils.
TEST: Terminons en réservant une place de choix à l’un des relais les plus fervents de la pensée


__imp_laisser_le_la_les_infi__
    >laisser  [le|la|les]  *WORD
................................................................................
TEST: n’importe quoi {{peux}} réussir
TEST: n’importe qui {{peux}} y arriver.
TEST: quelque chose {{sens}} mauvais ici
TEST: envers chacune qui se {{sentaient}} mal considérée
TEST: l’un d’eux {{viendras}}
TEST: ce {{dois}} être ennuyeux
TEST: ce {{seras}} foutu
TEST: tu vois, je ne rêvais pas, j’entendais quelque chose qui {{venaient}}
TEST: mais ça ne vous {{aideras}} en rien
TEST: Cela ne t’{{aideras}} pas.
TEST: Cela {{dis}}, on ne sait pas comment s’en sortir.
TEST: tu sais, n’importe qui {{connais}} la valeur de ces choses.
TEST: Y avait-il seulement quelqu’un pour vouloir soumettre ses recherches ?