Grammalecte  Check-in [ee9fbe69c3]

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

Overview
Comment:[build][core][fr] DARG builder: simple search in morphologies, update graph parser, update French rules
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr | core | build
Files: files | file ages | folders
SHA3-256:ee9fbe69c35f8bfc1f7a1cf414987802804312d6768d0a8d96114ed43adc2486
User & Date: olr 2019-08-06 19:06:24
Context
2019-08-06
20:11
[fr] faux positif check-in: 4125487a89 user: olr tags: fr, trunk
19:06
[build][core][fr] DARG builder: simple search in morphologies, update graph parser, update French rules check-in: ee9fbe69c3 user: olr tags: build, core, fr, trunk
16:45
[fr] tests et ajustements check-in: e5f74e694b user: olr tags: fr, trunk
Changes

Changes to darg.py.

217
218
219
220
221
222
223
224
225
226
227
228
229

230
231
232


233
234
235
236
237
238
239
...
242
243
244
245
246
247
248


249
250
251
252
253
254
255
256
257
258
259
        # Used as a key in a python dictionary.
        # Nodes are equivalent if they have identical arcs, and each identical arc leads to identical states.
        return self.__str__() == other.__str__()

    def getNodeAsDict (self):
        "returns the node as a dictionary structure"
        dNode = {}
        dReValue = {}
        dReMorph = {}
        dRule = {}
        dLemma = {}
        dMeta = {}
        dTag = {}

        for sArc, oNode in self.dArcs.items():
            if sArc.startswith("@") and len(sArc) > 1:
                dReMorph[sArc[1:]] = oNode.__hash__()


            elif sArc.startswith("~") and len(sArc) > 1:
                dReValue[sArc[1:]] = oNode.__hash__()
            elif sArc.startswith(">") and len(sArc) > 1:
                dLemma[sArc[1:]] = oNode.__hash__()
            elif sArc.startswith("*") and len(sArc) > 1:
                dMeta[sArc[1:]] = oNode.__hash__()
            elif sArc.startswith("/") and len(sArc) > 1:
................................................................................
                dRule[sArc[1:]] = oNode.__hash__()
            else:
                dNode[sArc] = oNode.__hash__()
        if dReValue:
            dNode["<re_value>"] = dReValue
        if dReMorph:
            dNode["<re_morph>"] = dReMorph


        if dLemma:
            dNode["<lemmas>"] = dLemma
        if dTag:
            dNode["<tags>"] = dTag
        if dMeta:
            dNode["<meta>"] = dMeta
        if dRule:
            dNode["<rules>"] = dRule
        #if self.bFinal:
        #    dNode["<final>"] = 1
        return dNode







|
|
|



>



>
>







 







>
>











217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
...
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
        # Used as a key in a python dictionary.
        # Nodes are equivalent if they have identical arcs, and each identical arc leads to identical states.
        return self.__str__() == other.__str__()

    def getNodeAsDict (self):
        "returns the node as a dictionary structure"
        dNode = {}
        dReValue = {}   # regex for token values
        dReMorph = {}   # regex for morph
        dMorph = {}     # simple search in morph
        dLemma = {}
        dMeta = {}
        dTag = {}
        dRule = {}
        for sArc, oNode in self.dArcs.items():
            if sArc.startswith("@") and len(sArc) > 1:
                dReMorph[sArc[1:]] = oNode.__hash__()
            elif sArc.startswith("$") and len(sArc) > 1:
                dMorph[sArc[1:]] = oNode.__hash__()
            elif sArc.startswith("~") and len(sArc) > 1:
                dReValue[sArc[1:]] = oNode.__hash__()
            elif sArc.startswith(">") and len(sArc) > 1:
                dLemma[sArc[1:]] = oNode.__hash__()
            elif sArc.startswith("*") and len(sArc) > 1:
                dMeta[sArc[1:]] = oNode.__hash__()
            elif sArc.startswith("/") and len(sArc) > 1:
................................................................................
                dRule[sArc[1:]] = oNode.__hash__()
            else:
                dNode[sArc] = oNode.__hash__()
        if dReValue:
            dNode["<re_value>"] = dReValue
        if dReMorph:
            dNode["<re_morph>"] = dReMorph
        if dMorph:
            dNode["<morph>"] = dMorph
        if dLemma:
            dNode["<lemmas>"] = dLemma
        if dTag:
            dNode["<tags>"] = dTag
        if dMeta:
            dNode["<meta>"] = dMeta
        if dRule:
            dNode["<rules>"] = dRule
        #if self.bFinal:
        #    dNode["<final>"] = 1
        return dNode

Changes to gc_core/js/lang_core/gc_engine.js.

478
479
480
481
482
483
484












































485
486
487
488
489
490
491
                            if (bDebug) {
                                console.log("  MATCH: >" + sLemma);
                            }
                            yield { "iToken1": iToken1, "iNode": oNode["<lemmas>"][sLemma] };
                            bTokenFound = true;
                        }
                    }












































                }
                // regex morph arcs
                if (oNode.hasOwnProperty("<re_morph>")) {
                    let lMorph = (oToken.hasOwnProperty("lMorph")) ? oToken["lMorph"] : _oSpellChecker.getMorph(oToken["sValue"]);
                    if (lMorph.length > 0) {
                        for (let sRegex in oNode["<re_morph>"]) {
                            if (!sRegex.includes("¬")) {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
                            if (bDebug) {
                                console.log("  MATCH: >" + sLemma);
                            }
                            yield { "iToken1": iToken1, "iNode": oNode["<lemmas>"][sLemma] };
                            bTokenFound = true;
                        }
                    }
                }
                // morph arcs
                if (oNode.hasOwnProperty("<morph>")) {
                    let lMorph = (oToken.hasOwnProperty("lMorph")) ? oToken["lMorph"] : _oSpellChecker.getMorph(oToken["sValue"]);
                    if (lMorph.length > 0) {
                        for (let sSearch in oNode["<morph>"]) {
                            if (!sSearch.includes("¬")) {
                                // no anti-pattern
                                if (lMorph.some(sMorph  =>  (sMorph.includes(sSearch)))) {
                                    if (bDebug) {
                                        console.log("  MATCH: $" + sSearch);
                                    }
                                    yield { "iToken1": iToken1, "iNode": oNode["<morph>"][sSearch] };
                                    bTokenFound = true;
                                }
                            } else {
                                // there is an anti-pattern
                                let [sPattern, sNegPattern] = sSearch.split("¬", 2);
                                if (sNegPattern == "*") {
                                    // all morphologies must match with <sPattern>
                                    if (sPattern) {
                                        if (lMorph.every(sMorph  =>  (sMorph.includes(sPattern)))) {
                                            if (bDebug) {
                                                console.log("  MATCH: $" + sSearch);
                                            }
                                            yield { "iToken1": iToken1, "iNode": oNode["<morph>"][sSearch] };
                                            bTokenFound = true;
                                        }
                                    }
                                } else {
                                    if (sNegPattern  &&  lMorph.some(sMorph  =>  (sMorph.includes(sNegPattern)))) {
                                        continue;
                                    }
                                    if (!sPattern  ||  lMorph.some(sMorph  =>  (sMorph.includes(sPattern)))) {
                                        if (bDebug) {
                                            console.log("  MATCH: $" + sSearch);
                                        }
                                        yield { "iToken1": iToken1, "iNode": oNode["<morph>"][sSearch] };
                                        bTokenFound = true;
                                    }
                                }
                            }
                        }
                    }
                }
                // regex morph arcs
                if (oNode.hasOwnProperty("<re_morph>")) {
                    let lMorph = (oToken.hasOwnProperty("lMorph")) ? oToken["lMorph"] : _oSpellChecker.getMorph(oToken["sValue"]);
                    if (lMorph.length > 0) {
                        for (let sRegex in oNode["<re_morph>"]) {
                            if (!sRegex.includes("¬")) {

Changes to gc_core/py/lang_core/gc_engine.py.

453
454
455
456
457
458
459































460
461
462
463
464
465
466
            if "<lemmas>" in dNode:
                for sLemma in _oSpellChecker.getLemma(dToken["sValue"]):
                    if sLemma in dNode["<lemmas>"]:
                        if bDebug:
                            echo("  MATCH: >" + sLemma)
                        yield { "iToken1": iToken1, "iNode": dNode["<lemmas>"][sLemma] }
                        bTokenFound = True































            # regex morph arcs
            if "<re_morph>" in dNode:
                lMorph = dToken.get("lMorph", _oSpellChecker.getMorph(dToken["sValue"]))
                if lMorph:
                    for sRegex in dNode["<re_morph>"]:
                        if "¬" not in sRegex:
                            # no anti-pattern







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
            if "<lemmas>" in dNode:
                for sLemma in _oSpellChecker.getLemma(dToken["sValue"]):
                    if sLemma in dNode["<lemmas>"]:
                        if bDebug:
                            echo("  MATCH: >" + sLemma)
                        yield { "iToken1": iToken1, "iNode": dNode["<lemmas>"][sLemma] }
                        bTokenFound = True
            # morph arcs
            if "<morph>" in dNode:
                lMorph = dToken.get("lMorph", _oSpellChecker.getMorph(dToken["sValue"]))
                if lMorph:
                    for sSearch in dNode["<morph>"]:
                        if "¬" not in sSearch:
                            # no anti-pattern
                            if any(sSearch in sMorph  for sMorph in lMorph):
                                if bDebug:
                                    echo("  MATCH: $" + sSearch)
                                yield { "iToken1": iToken1, "iNode": dNode["<morph>"][sSearch] }
                                bTokenFound = True
                        else:
                            # there is an anti-pattern
                            sPattern, sNegPattern = sSearch.split("¬", 1)
                            if sNegPattern == "*":
                                # all morphologies must match with <sPattern>
                                if sPattern:
                                    if all(sPattern in sMorph  for sMorph in lMorph):
                                        if bDebug:
                                            echo("  MATCH: $" + sSearch)
                                        yield { "iToken1": iToken1, "iNode": dNode["<morph>"][sSearch] }
                                        bTokenFound = True
                            else:
                                if sNegPattern and any(sNegPattern in sMorph  for sMorph in lMorph):
                                    continue
                                if not sPattern or any(sPattern in sMorph  for sMorph in lMorph):
                                    if bDebug:
                                        echo("  MATCH: $" + sSearch)
                                    yield { "iToken1": iToken1, "iNode": dNode["<morph>"][sSearch] }
                                    bTokenFound = True
            # regex morph arcs
            if "<re_morph>" in dNode:
                lMorph = dToken.get("lMorph", _oSpellChecker.getMorph(dToken["sValue"]))
                if lMorph:
                    for sRegex in dNode["<re_morph>"]:
                        if "¬" not in sRegex:
                            # no anti-pattern

Changes to gc_lang/fr/perf_memo.txt.

20
21
22
23
24
25
26
27
28
29

0.5.15      2017.01.22 11:44    4.85204     1.16134     0.770762    0.227874    0.244574    0.253305    0.58831     0.319987    0.0603996   0.00694786
0.5.15      2017.01.22 11:47    4.85593     1.15248     0.762924    0.22744     0.243461    0.254609    0.586741    0.317503    0.0588827   0.00701016  (unicode normalisation NFC)
0.5.15      2017.01.31 12:06    4.88227     1.18008     0.782217    0.232617    0.247672    0.257628    0.596903    0.32169     0.0603505   0.00695196
0.5.15      2017.02.05 10:10    4.90222     1.18444     0.786696    0.233413    0.25071     0.260214    0.602112    0.325235    0.0609932   0.00706897
0.5.16      2017.05.12 07:41    4.92201     1.19269     0.80639     0.239147    0.257518    0.266523    0.62111     0.33359     0.0634668   0.00757178
0.6.1       2018.02.12 09:58    5.25924     1.2649      0.878442    0.257465    0.280558    0.293903    0.686887    0.391275    0.0672474   0.00824723
0.6.2       2018.02.19 19:06    5.51302     1.29359     0.874157    0.260415    0.271596    0.290641    0.684754    0.376905    0.0815201   0.00919633  (spelling normalization)
1.0b        2018.09.19 16:34    2.53823     0.609186    0.407324    0.121067    0.124931    0.13113     0.300685    0.170306    0.0357451   0.00357943
1.0         2018.11.23 10:59    2.88577     0.702486    0.485648    0.139897    0.14079     0.148125    0.348751    0.201061    0.0360297   0.0043535
1.1         2019.05.16 09:42    1.50743     0.360923    0.261113    0.0749272   0.0763827   0.0771537   0.180504    0.102942    0.0182762   0.0021925   (×2, but new processor: AMD Ryzen 7 2700X)








<
|

>
20
21
22
23
24
25
26

27
28
29
0.5.15      2017.01.22 11:44    4.85204     1.16134     0.770762    0.227874    0.244574    0.253305    0.58831     0.319987    0.0603996   0.00694786
0.5.15      2017.01.22 11:47    4.85593     1.15248     0.762924    0.22744     0.243461    0.254609    0.586741    0.317503    0.0588827   0.00701016  (unicode normalisation NFC)
0.5.15      2017.01.31 12:06    4.88227     1.18008     0.782217    0.232617    0.247672    0.257628    0.596903    0.32169     0.0603505   0.00695196
0.5.15      2017.02.05 10:10    4.90222     1.18444     0.786696    0.233413    0.25071     0.260214    0.602112    0.325235    0.0609932   0.00706897
0.5.16      2017.05.12 07:41    4.92201     1.19269     0.80639     0.239147    0.257518    0.266523    0.62111     0.33359     0.0634668   0.00757178
0.6.1       2018.02.12 09:58    5.25924     1.2649      0.878442    0.257465    0.280558    0.293903    0.686887    0.391275    0.0672474   0.00824723
0.6.2       2018.02.19 19:06    5.51302     1.29359     0.874157    0.260415    0.271596    0.290641    0.684754    0.376905    0.0815201   0.00919633  (spelling normalization)

1.0         2018.11.23 10:59    2.88577     0.702486    0.485648    0.139897    0.14079     0.148125    0.348751    0.201061    0.0360297   0.0043535   (x2, with new GC engine)
1.1         2019.05.16 09:42    1.50743     0.360923    0.261113    0.0749272   0.0763827   0.0771537   0.180504    0.102942    0.0182762   0.0021925   (×2, but new processor: AMD Ryzen 7 2700X)
1.2.1       2019.08.06 20:57    1.42886     0.358425    0.247356    0.0704405   0.0754886   0.0765604   0.177197    0.0988517   0.0188103   0.0020243

Changes to gc_lang/fr/rules.grx.

1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
....
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
....
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
....
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
....
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
....
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
....
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
....
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
....
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
....
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
....
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
....
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
....
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
....
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
....
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
....
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
....
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
....
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
....
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
....
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
....
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
....
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
....
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
....
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
....
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
....
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
....
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
....
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
....
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
....
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
....
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
....
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
....
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
....
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
.....
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
.....
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
.....
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
.....
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
.....
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
.....
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
.....
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
.....
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
.....
15413
15414
15415
15416
15417
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
.....
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
.....
15874
15875
15876
15877
15878
15879
15880
15881
15882
15883
15884
15885
15886
15887
15888
.....
15977
15978
15979
15980
15981
15982
15983
15984
15985
15986
15987
15988
15989
15990
15991
15992
15993
15994
15995
15996
15997
15998
15999
16000
16001
16002
16003
16004
16005
.....
16056
16057
16058
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
.....
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
.....
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
.....
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
.....
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
.....
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
.....
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
.....
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
.....
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
.....
17113
17114
17115
17116
17117
17118
17119
17120
17121
17122
17123
17124
17125
17126
17127
17128
17129
17130
17131
17132
17133
17134
17135
17136
17137
.....
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
17165
17166
17167
17168
17169
17170
17171
.....
17253
17254
17255
17256
17257
17258
17259
17260
17261
17262
17263
17264
17265
17266
17267
.....
17329
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
.....
17365
17366
17367
17368
17369
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
.....
17417
17418
17419
17420
17421
17422
17423
17424
17425
17426
17427
17428
17429
17430
17431
17432
.....
19247
19248
19249
19250
19251
19252
19253
19254
19255
19256
19257
19258
19259
19260
19261
19262
19263
19264
19265
19266
19267
19268
19269
19270
19271
19272
19273
19274
19275
19276
19277
19278
19279
19280
19281
19282
.....
19787
19788
19789
19790
19791
19792
19793
19794
19795
19796
19797
19798
19799
19800
19801
.....
20041
20042
20043
20044
20045
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20057
20058
.....
20632
20633
20634
20635
20636
20637
20638
20639
20640
20641
20642
20643
20644
20645
20646
20647
20648
20649
20650
20651
20652
20653
20654
20655
20656
20657
20658
20659
20660
20661
20662
20663
20664
20665
20666
20667
20668
20669
20670
20671
20672
20673
20674
20675
20676
20677
20678
20679
20680
20681
20682
20683
20684
20685
20686
20687
20688
20689
20690
20691
20692
20693
20694
20695
20696
20697
20698
20699
20700
20701
20702
20703
20704
20705
20706
20707
20708
20709
20710
20711
20712
20713
20714
20715
20716
20717
20718
20719
20720
20721
20722
20723
20724
20725
20726
20727
20728
20729
.....
21257
21258
21259
21260
21261
21262
21263
21264
21265
21266
21267
21268
21269
21270
21271
21272
21273
21274
21275
21276
21277
21278
21279
.....
21416
21417
21418
21419
21420
21421
21422
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
21437
21438
21439
21440
21441
21442
.....
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
.....
22503
22504
22505
22506
22507
22508
22509
22510
22511
22512
22513
22514
22515
22516
22517
.....
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734

    elles [le|la|les|leur]
        <<- not morph(<1, ":(?:3p|R)") =>> select(\2, ":Ov")

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

    le   @:N¬*
        <<- not value(<1, "|ne|n’|me|m’|te|t’|se|s’|") =>> select(\1, ":D")

    la   @:N¬*
        <<- not value(<1, "|ne|n’|me|m’|te|t’|se|s’|") =>> select(\1, ":D")

    les  @:N¬*
        <<- not value(<1, "|ne|n’|me|m’|te|t’|se|s’|") =>> select(\1, ":D")

    l’   @:N¬*
        <<- not value(<1, "|ne|n’|me|m’|te|t’|se|s’|") =>> define(\1, [":D:e:s"])


__da_nous_vous__
    [ne|n’] [nous|vous]
        <<- =>> exclude(\2, ":Os")

................................................................................
    lui             en                 @:¬:[OXW]
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")

    [le|la|l’|les]  [lui|leur|en]      @:¬:[OXW]
    leur            en                 @:¬:[OXW]
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    @:M  @:[123]s¬:[QW]
        <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]")

    <start> @:M  @:(?:[123]s|Oo)|>ne/¬:A
        <<- =>> =select(\2, ":M")

    [que|qu’|combien|pourquoi|qui|quand|où]  ?[en|y]¿  *WORD
        <<- =>> exclude(\-1, ":E")

    [<start>|,]  quelqu’un  *WORD
        <<- =>> exclude(\3, ":N")
................................................................................
        <<- =>> select(\2, ":Q")


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

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

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

__da_puis__
................................................................................

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

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

    de  [la|l’]  @:¬:Y
        <<- not value(<1, "|semblant|") =>> exclude(\3, ":V")

    [/VCint|/VCimp] [le|la|l’|leur|les]
        <<- =>> select(\2, ":D")

    de [>telle|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine]  *WORD
        <<- =>> exclude(\3, ":V")
................................................................................
    [moi|moi-même] ?[seul|seule]¿ ?,¿ qui
        <<- />> 1s

    [moi|moi-même] [seul|seule]
        <<- not value(<1, "|de|d’|par|") />> 1s

    tu
    t’  @:2s
    t’  [en|y]  @:2s
    [toi|toi-même] ?[seul|seule]¿ ?,¿ qui
        <<- />> 2s

    [toi|toi-même] [seul|seule]
        <<- not value(<1, "|de|d’|par|") />> 2s

    nous ?[seul|seuls|seules]¿ ?,¿ qui
................................................................................

    en tout et pour tout
        <<- !-1>>

    jusqu’ à
        <<- !2>>

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

    soit pour soit contre
        <<- !3>>


TEST: New York {{étaient}} {{devenue}} la plaque tournante de tous les trafics.
................................................................................
TEST: Cette {{voiture si}}, c’est celle-là que je veux.
TEST: ce que je veux c’est ce {{véhicule ci}}
TEST: Laisse ce chiot là où il est !


### Préfixes
__tu_préfixe_ex__
    ex  @:N¬*
        <<- /tu/ not value(\2, "|aequo|nihilo|cathedra|absurdo|abrupto|")
        ->> ex-\2                                                           # S’il s’agit d’un seul mot, il manque un trait d’union.

TEST: Son {{ex ami}} est un vrai cauchemar.
TEST: Ton ex donne du fil à retordre.


__tu_préfixe_in__
    in [dix-huit|douze|seize|folio|octavo|quarto|plano]
        <<- /tu/ not value(<1, "|drive|plug|sit|") ->> \1-\2                # Il manque un trait d’union.

    in @:N:m¬*
        <<- /tu/ not value(<1, "|drive|plug|sit|") -1>> un                  # Confusion possible : pour le déterminant désignant quelque chose, écrivez “un”.

TEST: Cet {{in folio}} est incroyable.
TEST: c’est {{in}} stage de réinsertion.
TEST: Dans ce drive in douze hommes mangent.


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

TEST: il a pris une balle dans l’{{arrière train}}.
TEST: Ce {{sans gêne}} mérite une bonne leçon
TEST: une {{sous culture}} passée de mode
TEST: Sans gêne, il avança parmi nous.


    pseudo  @:N¬*
        <<- /tu/ ->> pseudo-\2                                                                      # Si vous voulez évoquer le simulacre de “\2”, mettez un trait d’union.
        <<- ~1>> *

    ~^[pP]seudo-\w+
        <<- =>> define_from(\1, 7)

TEST: il n’avait contracté qu’un {{pseudo mariage}}.
................................................................................
TEST: je suis allé dans la {{grand’rue}}.                           ->> grand-rue



!!!! Virgules                                                                                     !!

__virg_dialogue_après_nom_propre__
    [<start>|,]  @:M¬:G  [/-je|/-tu|/-on|/-nous|/-vous|/-ils|/-elles|/VCimp]
        <<- /virg/ -2>> \2,                                                                         # Dialogue ? Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

TEST: {{Maria}} donnez-vous du temps ?
TEST: {{Marion}} passe-moi le sel.
TEST: {{Paul}} prends-lui la main.
TEST: Alexandre tient-il ses généraux ?
TEST: Alexandra vient-elle ?


__virg_dialogue_avant_nom_propre__
    /-les  @:M
        <<- /virg/ morph(\1, ":E", "", 0, -4) -1>> \1,                                              # Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

    [/-le|/-la]  @:M
        <<- /virg/ morph(\1, ":E", "", 0, -3) -1>> \1,                                              # Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

    /-COD-COI  @:M
        <<- /virg/ -1>> \1,                                                                         # Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

TEST: {{Oublie-les}} Clara.
TEST: viens et {{donne-le}} Paul.
TEST: {{donne-le-moi}} Camille.
TEST: donne-moi Alice.
TEST: Tape-toi Patrick.


__virg_après_verbe_COD__
    [le|la|l’|les]  @:Y  @:M
        <<- /virg/ -2>> \2,                                                                         # Une virgule est probablement souhaitable.

TEST: Tu vas les {{donner}} Rachel.
TEST: Il va la {{tuer}} Paul.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme s’évertuait à le dire Jacques Chirac.
TEST: Avancez comme sait le faire Patrick.
................................................................................
    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.

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

TEST: Je ne le {{croix}} pas
TEST: Je {{travail}}.                                       ->> travaille
TEST: Je vous {{tellement}} reconnaissant.
TEST: Je m’en {{fou}}.
TEST: Je soussigné, M. X., déclare que…
................................................................................
TEST: il s’est tu les jours après son agression.


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

TEST: tu {{croix}} que tu sais quelque chose, mais tu ne sais rien.
TEST: tu la {{croix}} idiote ?
TEST: Elles sont à tu et à toi.


................................................................................
    il  @:V¬:(?:3s|Ov)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3s"))
        -2>> =suggVerb(\2, ":3s")                                                                   # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ __also__ and morph(\2, ":3p") -1>> ils                                           # Accord avec “\2”.

    il  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3s|Ov)
    il  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3s|Ov)
    il  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:3s
    il  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:3s
    il  ?[ne|n’]¿  [lui|leur|y]                   en                         @:V¬:3s
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                                                      # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ morph(\-1, ":3p") -1>> ils                                                       # Accord avec “\-1”.

TEST: {{Il}} {{accusent}}.
TEST: il {{bus}} du vin.
TEST: Il {{pris}}.
TEST: Il {{rougis}}.
................................................................................
__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: C’en pouvait être effrayant.


__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’  ?en¿  >ê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’  ?en¿  @: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
................................................................................
__conj_nous__
    <start>  nous  @:V¬:(?:G|Y|P|1p|3[sp]|Ov)
        <<- /conj/ not value(>1, "|je|tu|il|elle|on|nous|vous|ils|elles|")
        -3>> =suggVerb(\3, ":1p")                                                                   # Conjugaison erronée. Accord avec “nous”. Le verbe devrait être à la 1ʳᵉ personne du pluriel.

    [<start>|,]  nous  [ne|n’]    [le|la|l’|les|en|y]                                 @:V¬:(?:1p|Ov)
    [<start>|,]  nous  ?[ne|n’]¿  [me|m’|nous|vous|lui|leur]                          @:V¬:(?:1p|Ov)
    [<start>|,]  nous  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]  @:V¬:1p
    [<start>|,]  nous  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]      @:V¬:1p
    [<start>|,]  nous  ?[ne|n’]¿  [lui|leur]                     en                   @:V¬:1p
        <<- /conj/ --1>> =suggVerb(\-1, ":1p")                                                      # Conjugaison erronée. Accord avec “nous”. Le verbe devrait être à la 2ᵉ personne du pluriel.

TEST: Nous {{arriverez}} demain.
TEST: Nous {{travaillez}}.
TEST: nous {{donné}} trop de considération
TEST: nous {{avancez}}
TEST: Et, nous laissant étonnés d’être encore là sans y avoir rien compris,
................................................................................
__conj_vous__
    <start>  vous  @:V¬:(?:G|Y|P|2p|3[sp]|Ov)
        <<- /conj/ not value(>1, "|je|tu|il|elle|on|nous|vous|ils|elles|")
        -3>> =suggVerb(\3, ":2p")                                                                   # Conjugaison erronée. Accord avec “vous”. Le verbe devrait être à la 2ᵉ personne du pluriel.

    [<start>|,]  vous  [ne|n’]    [le|la|l’|les|en|y]                                 @:V¬:(?:2p|Ov)
    [<start>|,]  vous  ?[ne|n’]¿  [me|m’|nous|vous|lui|leur]                          @:V¬:(?:2p|Ov)
    [<start>|,]  vous  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]  @:V¬:2p
    [<start>|,]  vous  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]      @:V¬:2p
    [<start>|,]  vous  ?[ne|n’]¿  [lui|leur]                     en                   @:V¬:2p
        <<- /conj/ --1>> =suggVerb(\-1, ":2p")                                                      # Conjugaison erronée. Accord avec “vous”. Le verbe devrait être à la 2ᵉ personne du pluriel.

TEST: Vous {{arrivais}} trop tard.
TEST: vous ne l’{{avait}} pas vu.
TEST: je crois, vous m’{{avais}} trompé…
TEST: vous nous {{refuser}} le pardon.
TEST: Vous {{travaillons}}.
................................................................................
    ils  @:V¬:(?:3p|Ov)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3p"))
        -2>> =suggVerb(\2, ":3p")                                                                   # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ __also__ and morph(\2, ":3s") -1>> il                                            # Accord avec “\2”.

    ils  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3p|Ov)
    ils  ?[ne|n’]¿  [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3p|Ov)
    ils  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:3p
    ils  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:3p
    ils  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:3p
        <<- /conj/ --1>> =suggVerb(\-1, ":3p")                                                      # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ morph(\-1, ":3s") -1>> il                                                        # Accord avec “\-1”.

TEST: {{Ils}} {{vienne}} souvent.
TEST: Ils ne m’{{attends}} pas.
TEST: {{Ils}} vous le {{donne}}.
TEST: {{Ils}} {{faut}} venir.
................................................................................
__conf_ils_non_verbe__
    ils  @:¬:(?:V|Ov)|>ou/
        <<- /conf/ not morph(<1, ":3p") and not value(<1, "|t’|")
        -2>> =suggSimil(\2, ":(?:3p|Ov)", False)                                                    # Incohérence avec “ils” : “\2” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

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

TEST: ils {{son}} du même bois.
TEST: Ils {{étai}} partie au {{restaurent}}
TEST: ils leur {{étai}} indifférent

................................................................................
TEST: il était très {{habille}}


#### Aussi +adj que soit +sujet

__conf_aussi_adj_que_soit__
    aussi  *WORD  [que|qu’]  [soi|>être|>soie]  [un|une|le|la|l’|les|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|certains|certaines]
    aussi  *WORD  [que|qu’]  [soi|>être|>soie]  @:M
        <<- /conf/ morph(\2, ":V1.*:Y", ":[AW]") -2>> =suggVerbPpas(\2)     # Confusion probable. Dans l’expression “aussi <X> que soit quelque chose ou quelqu’un”, <X> doit être un adjectif.
        <<- /conf/ \4 == "soie" or \4 == "soies" -4>> soit|soient           # Confusion. La soie est une matière filamenteuse produite par les chenilles et utilisée pour le textile.
        <<- /conj/ morph(\4, ":V", ":3[sp]") -4>> soit|soient               # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne.

TEST: Aussi {{borner}} que soit son père, il l’écoute toujours.
TEST: aussi stupides que {{soies}} ses réflexions, il n’en démordra jamais.
TEST: tu sais, aussi délirantes que {{sois}} ses déclarations, je suis persuadé qu’il y a un fond de vérité.
................................................................................
TEST: elle en a.
TEST: celle qui à contrario nous a foutu dans la merde.
TEST: ceux qui à Somewhere se sont si mal illustrés.
TEST: en à peine vingt ans


__conf_à_a_infinitif__
    a  @:Y¬:G
    a  [ne|n’|me|m’|te|t’|se|s’|en|y|lui|nous|vous]  @:Y
    a  [n’|m’|t’|s’|l’|les|lui|nous|vous|leur] [en|y] @:Y
    a  [le|la|l’|les|leur]  @:Y¬:N
        <<- /conf/ not value(<1, "|il|elle|on|n’|m’|t’|") and not before("(?i)\\bqu[e’] |n’(?:en|y) +$")
        -1>> à                                                      # Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0

TEST: scrupuleux {{a}} n’en toucher qu’une part infime.
TEST: Ne pas hésiter {{a}} {{demander}} des conseils.
TEST: Sébastien {{a}} {{demander}} des conseils.
TEST: {{A}} vous lire, on ne sait plus que penser de toutes ces histoires
................................................................................

TEST: c’est {{se a quoi}} il pensait qui le minait.
TEST: {{se à qui}} on pense


# ces / ses / c’est
__conf_ces_ses_c_est__
    [ses|ces] [à|au-dessus|avec|au|aux|comme|envers|contre|derrière|devant|par|pour|sans|sur]  @:D
    [ses|ces] [à|au-dessus|avec|au|aux|comme|envers|contre|derrière|devant|par|pour|sans|sur]  [que|qu’]
    [ses|ces] [à|au-dessus|avec|au|aux|comme|envers|contre|derrière|devant|par|pour|sans|sur]  [l’|d’]
    [ses|ces] [à|au-dessus|avec|au|aux|comme|envers|contre|derrière|devant|par|pour|sans|sur]  {pronom_obj}
    [ses|ces] @:D¬:[WA]
    [ses|ces] [que|qu’]
    [ses|ces] [l’|d’]
    [ses|ces] {pronom_obj}
................................................................................

# évidement / évidemment
__conf_évidemment_évidement__
    [/VCint|/VCimp]  ?[pas|plus|jamais|guère]¿  évidement
    [pas|plus] évidement
        <<- /conf/ --1>> évidemment                         # Confusion probable : l’évidement est l’action de vider quelque chose. L’adverbe s’écrit “évidemment”.|https://fr.wiktionary.org/wiki/évidemment

    [par|pour|sans] évidement [@:Y|ne|n’|me|m’|te|t’|se|s’]
        <<- /conf/ -2>> évidemment                          # Confusion probable : l’évidement est l’action de vider quelque chose. L’adverbe s’écrit “évidemment”.|https://fr.wiktionary.org/wiki/évidemment

    évidement
        <<- /conf/ morph(<1, ":V", ":A") ->> évidemment     # Confusion probable : l’évidement est l’action de vider quelque chose. L’adverbe s’écrit “évidemment”.|https://fr.wiktionary.org/wiki/évidemment

    [un|l’|cet]  évidemment  [<end>|,]
    [un|l’|cet]  évidemment  @:¬:A
        <<- /conf/ -2>> évidement                           # Confusion probable : “évidemment” est un adverbe. L’action de “vider” s’écrit “évidement”.|https://fr.wiktionary.org/wiki/évidement

TEST: Donne-moi {{évidement}} ça.
TEST: Elle sera {{évidement}} déçue de cette minable prestation de sa part.
TEST: pour {{évidement}} réussir
TEST: Un homme pas {{évidement}} intelligible.
TEST: L’{{évidemment}} du sanglier ne sera pas si facile.
................................................................................

# forcement / forcément
__conf_forcément_forcement__
    [/VCint|/VCimp]  ?[pas|plus|jamais|guère]¿  forcement
    [pas|plus] forcement
        <<- /conf/ --1>> forcément                          # Confusion probable : le forcement est l’action de forcer quelque chose. L’adverbe s’écrit “forcément”.|https://fr.wiktionary.org/wiki/forc%C3%A9ment

    [par|pour|sans] forcement [@:Y|ne|n’|me|m’|te|t’|se|s’]
        <<- /conf/ -2>> forcément                           # Confusion probable : le forcement est l’action de forcer quelque chose. L’adverbe s’écrit “forcément”.|https://fr.wiktionary.org/wiki/forc%C3%A9ment

    forcement
        <<- /conf/ morph(<1, ":V", ":A") ->> forcément      # Confusion probable : le forcement est l’action de forcer quelque chose. L’adverbe s’écrit “forcément”.|https://fr.wiktionary.org/wiki/forc%C3%A9ment

    [un|le|ce|au]  forcément  [<end>|,]
    [un|le|ce|au]  forcément  @:¬:A
        <<- /conf/ -2>> forcement                           # Confusion probable : “forcément” est un adverbe. L’action de “forcer” s’écrit “forcement”.|https://fr.wiktionary.org/wiki/forc%C3%A9ment

TEST: Viendra-t-il {{forcement}} demain.
TEST: sans {{forcement}} prendre la vie du bon côté
TEST: Elle sera {{forcement}} déçue de cette minable prestation de sa part.
TEST: Un homme pas {{forcement}} mauvais.
TEST: Le {{forcément}} du coffre ne sera pas si facile.
................................................................................
TEST: ces chiens te l’{{on}} {{donné}}
TEST: Qui {{on}} {{tant}} de malheurs !
TEST: Je voulais qu’on soit ensemble.
TEST: qui on blâme, ce soir ?


__conf_on_ont__
    [<start>|,|@:Cs] ?l’¿ (ont) [ne|n’|me|m’|te|se|s’]
    [<start>|,|@:Cs] ?l’¿ (ont) [lui|nous|vous] @:[123][sp]¬:G
    [<start>|,|@:Cs] ?l’¿ (ont) [leur|le|la|l’] @:[123][sp]¬:(?:G|[NA].*:[si])
    [<start>|,|@:Cs] ?l’¿ (ont) @:[123][sp]¬:[GQ]|>(?:envie|peine|affaire|hâte|force|recours|somme)/
        <<- /conf/ -1>> on                                          # Confusion probable : “ont” est une conjugaison du verbe avoir.

    [<start>|,|@:Cs] ?l’¿ ont t’
        <<- /conf/ not value(>1, "|il|ils|elle|elles|") --2>> on    # Confusion probable : “ont” est une conjugaison du verbe avoir.

    ~-ont$
        <<- /conf/ ->> =\1[:-1]                                     # Incohérence : “ont” est une forme conjuguée du verbe “avoir” (par exemple: “ils ont”). Pour le pronom personnel, écrivez “on”.

    [<start>|,]  *WORD  ont
        <<- /conf/ space_after(\2, 1, 1) and not value(\2, "|soit|") and morph(\2, ":3s") -2:3>> \2-on
................................................................................
    au moment ou
    jusqu’ ou
    par ou
    d’ ou
        <<- /conf/ --1>> où                                 # Confusion. La conjonction “ou” signale une alternative. Pour identifier un lieu ou un temps, écrivez “où”.

    ou et [comment|que|qui|quand|pourquoi|quel|quels|quelle|quelles]
    ou et @:R
        <<- /conf/ -1>> où                                  # Confusion. La conjonction “ou” signale une alternative. Pour identifier un lieu ou un temps, écrivez “où”.

    vers ou
        <<- /conf/ not morph(<1, ":D") -2>> où              # Confusion probable. La conjonction “ou” signale une alternative. Pour identifier un lieu ou un temps, écrivez “où”.

    [au|le|des] cas ou
        <<- /conf/ -3>> où                                  # Confusion. La conjonction “ou” signale une alternative. Pour identifier un lieu ou un temps, écrivez “où”.
................................................................................

TEST: Il ne frappait que {{pare a coup}}.
TEST: Elle travaillait par à-coups, après de longues périodes de repos.


# par-dessus / pardessus
__conf_par_dessus__
    pardessus  [bord|@:D]
        <<- /conf/ not morph(<1, ":D.*:[me]|>(?:grande|petite)/")
        -1>> par-dessus                                                     # Confusion probable. Un pardessus est un vêtement. Pour la préposition, écrivez “par-dessus”.

TEST: {{Pardessus}} les montagnes.
TEST: Il passa {{pardessus}} les collines.
TEST: Mets ton pardessus ce matin.

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

TEST: Ils ont découvert le {{poteau rose}}.


# prêt / près / pré
__conf_prêt_près_pré__
    près à [ne|n’|me|m’|te|t’|se|s’]
    près à ?[le|la|l’|les|en|nous|vous|lui|leur|y|tout]¿ @:Y
    près à [nous|vous]     [le|la|l’|les|en|y]           @:Y
    près à [le|la|l’|les]  [lui|leur|en|y]               @:Y
    près à [lui|leur|y]    en                            @:Y
        <<- /conf/ not value(<1, "|peu|de|") and not before("(?i)\\bau plus $")
        -1>> prêt|prêts                                                     # Confusion probable. Être près de (faire) quelque chose. Prêt à faire quelque chose.

TEST: Il est {{près}} à les aider                               ->> prêt|prêts
TEST: Il a obtenu un prêt de Patrick
TEST: Il a obtenu un prêt de Le Drian
TEST: les prêts de BMW ou de Mercedes pour visiter la ville
................................................................................
    de plus [>prêt|>pré]
        <<- /conf/ --1>> près                                               # Confusion probable. Être prêt(e) à faire quelque chose. Être près de quelque chose. Le pré est un champ d’herbes.

    [très|trop] [>prêt|>pré]
        <<- /conf/ -2>> près                                                # Confusion probable. Être prêt(e) à faire quelque chose. Être près de quelque chose. Le pré est un champ d’herbes.

    >prêt [de|d’] [ne|n’|me|m’|te|t’|se|s’]
    >prêt [de|d’] ?[le|la|l’|les|en|nous|vous|lui|leur|y|tout]¿ @:Y
    >prêt [de|d’] [nous|vous]     [le|la|l’|les|en|y]           @:Y
    >prêt [de|d’] [le|la|l’|les]  [lui|leur|en|y]               @:Y
    >prêt [de|d’] [lui|leur|y]    en                            @:Y
        <<- /conf/ -1>> près                                                # Confusion probable. Être près de (faire) quelque chose. Prêt à faire quelque chose.

    >prêt [de|d’] [toi|vous|lui|elle|eux|elles|@:M]
        <<- /conf/ not morph(<1, ":D") and not before("(?i)\\b(obten|obt[iî])")
        -1>> près                                                           # Confusion probable. Être près de (faire) quelque chose. Prêt à faire quelque chose.

    si [>prêt|>pré] [du|de|d’|des]
        <<- /conf/ -2>> près                                                # Confusion probable. Être près de (faire) quelque chose. Prêt à faire quelque chose.

    >raser de ?très¿ [>prêt|>pré]
................................................................................
TEST: Il partirait en guerre quand bien même devrait-il être tout seul.
TEST: Elle veut savoir combien même si ça ne lui est d’aucune utilité immédiate.


# quel que soit
__conf_quel_que_soit__
    >quelque [soi|sois|soit|soient]
    >quelque >soie @:D
        <<- /conf/ -1:2>> quel que soit|quelle que soit|quels que soient|quelles que soient         # Confusion : “quelque” est un déterminant.|https://fr.wiktionary.org/wiki/quel_que_soit

TEST: {{quelques soient}} les avantages d’un correcteur…


# quel que puisse
__quel_que_puisse__
................................................................................
TEST: Nous allons le {{résonner}}.


# repère /  repaire
__conf_repaire_repère__
    >repère  [dangereux|>sécurisée]
    >repère  [de|du|d’|des]  [>assassin|>bandit|>brigand|>cambrioleuse|>corsaire|>criminelle|>dragon|>escroc|>fanatique|>filou|>flibustière|>flibuste|>gangster|>lionne|>louve|>mafiosi|>mafioso|>malfaitrice|>malfrat|>maraudeuse|>monstre|>murène|ours|>pick-pocket|>pickpocket|>pillarde|>pirate|>scélérate|>taupe|>tigre|>truande|>voleuse|>voyou|>yéti]
    >repère  de  @:D         [>assassin|>bandit|>brigand|>cambrioleuse|>corsaire|>criminelle|>dragon|>escroc|>fanatique|>filou|>flibustière|>flibuste|>gangster|>lionne|>louve|>mafiosi|>mafioso|>malfaitrice|>malfrat|>maraudeuse|>monstre|>murène|ours|>pick-pocket|>pickpocket|>pillarde|>pirate|>scélérate|>taupe|>tigre|>truande|>voleuse|>voyou|>yéti]
        <<- /conf/ morph(<1, ":D") -1>> =\1.replace("è", "ai").replace("È", "AI")
        # Confusion probable. Un répère est une marque laissée pour retrouver quelque chose. Pour le lieu où se cachent des personnes ou des animaux, écrivez “repaire”.|https://fr.wiktionary.org/wiki/repaire

    [dans|en] [mon|ton|son|notre|votre|leur] repère
    à l’intérieur de [mon|ton|son|notre|votre|leur] repère
    à l’intérieur du repère
    au sein de [mon|ton|son|notre|votre|leur] repère
................................................................................
TEST: Elles ont préparé un {{riz}} de veau.
TEST: Elle adore le {{ri}} au lait.
TEST: Tous adorent le {{ri}} basmati.


# saint / sain / sein / seing
__conf_saint_sain_sein_seing__
    [sain|sains|>sein]  @:M1
        <<- /conf/ morph(<1, ":(?:R|[123][sp])|<start>") -1>> saint
        # Confusion : “sain” signifie “en bonne santé”, le sein est un organe thoracique féminin. Pour évoquer ce qui est “sanctifié”, écrivez “saint”.|https://fr.wiktionary.org/wiki/saint

    [en|dans|sur] [mon|ton|son] [sain|saint]
        <<- /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

................................................................................
    [>sceau|sot|sots] d’ [acier|avoine|eau]
    [>sceau|sot|sots] [d’|de] [bois|boue|ciment|glace|>glaçon|>gravat|>gravier|>gravillon|plage|lait|maçon|nettoyage|peinture|sable]
    [>sceau|sot|sots] à [glace|champagne|>glaçon]
    [>sceau|sot|sots] en [acier|bois|cuivre|fer|inox|métal|plastique|polypropylène|zinc]
    [>sceau|sot|sots] [rempli+ses|percé+ses|>vide|troué+ses|renversé+ses|plein+s]
        <<- /conf/ -1>> seau|seaux                  # Confusion probable. Pour désigner un récipient, écrivez “seau”.|https://fr.wiktionary.org/wiki/seau

    dans @:D [>sceau|sot|sots]
        <<- /conf/ -3>> seau|seaux                  # Confusion probable. Pour désigner un récipient, écrivez “seau”.|https://fr.wiktionary.org/wiki/seau

    [>seau|sot|sots] du [roi|secret|ministre|ministère|duc|baron|cardinal|pape]
    [>seau|sot|sots] de la [reine|ministre|duchesse|baronne]
    [>seau|sot|sots] de l’ [État|évêque|université|académie]
        <<- /conf/ -1>> sceau|sceaux                # Confusion probable. Pour désigner un cachet par lequel on scelle quelque chose, écrivez “sceau”.|https://fr.wiktionary.org/wiki/sceau

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


# sur / sûr
__conf_sûr_sur__
    sur et @¬:R
    sur [que|qu’]
    sur [de|d’] {pronom_obj}
    sur [de|d’] @:M
    sur [de|d’] [ne|n’|me|m’|te|t’|se|s’]
    sur [de|d’] [le|les|mon|ton|son|ma|ta|sa|mes|tes|ses|ce|cet|cette|ces|cela|ceci|ça]
    sur [de|d’] [la|l’] @:Y
    sur [de|d’] @:Y
        <<- /conf/ -1>> sûr
        # Confusion probable : “sur” est une préposition ou un adjectif signifiant acide ou aigre ; utilisez “sûr” pour certain, vrai ou sans danger.|http://fr.wiktionary.org/wiki/sur

    [sure|surs|sures] [de|d’|que|qu’]
        <<- /conf/ -1>> =\1.replace("u", "û").replace("U", "Û")
        # Confusion probable : “sur” un adjectif signifiant acide ou aigre ; utilisez “sûr” pour certain, vrai ou sans danger.|http://fr.wiktionary.org/wiki/sur

................................................................................
        -1>> voire                      # Confusion probable : “voir” est un verbe concernant la perception visuelle. Pour signifier “et même possiblement”, écrivez “voire”.|https://fr.wiktionary.org/wiki/voire

    [comme|lorque|puisque|quand|que|quoique|si]                                 voire
    [ni|par|pour|sans]                                                          voire
    [>aller|>falloir|>pouvoir|>vouloir]  ?[guère|jamais|pas|plus|point|rien]¿   voire
        <<- /conf/ --1>> voir           # Confusion probable : “voire” signifie “et même possiblement”. Pour le verbe, écrivez “voir”.|https://fr.wiktionary.org/wiki/voire

    [et|ou] voire  @:D
        <<- /conf/ -2>> voir            # Confusion probable : “voire” signifie “et même possiblement”. Pour le verbe, écrivez “voir”.|https://fr.wiktionary.org/wiki/voire

TEST: Elles sont fatiguées, {{voir}} épuisées.
TEST: Ce serait pour aider, ainsi que {{voire}} l’avancement du projet.
TEST: Je ne vais jamais {{voire}} ces gens-là.
TEST: penser juste et {{voire}} la vérité.
TEST: Elles vont voir rouge en apprenant cet échec.
................................................................................
    sans mot dire
    sans nul doute
    sans pour autant y [parvenir|réussir|réfléchir|songer|penser]
    sans pour autant y faire attention
    sans pour autant y prendre [garde|goût|gout]
    sans [que|qu’] je le [sache|susse]
    sans [que|qu’] tu le [saches|susses]
    sans [que|qu’] [il|elle|on|@:M] le [sache|sût]
    sans [que|qu’] nous le [sachions|sussions]
    sans [que|qu’] vous le [sachiez|sussiez]
    sans [que|qu’] [ils|elles] le [sachent|sussent]
    sans queue ni tête
    sans raison apparente
    sans répit
    sans vouloir [me|m’|te|t’|lui|nous|vous|leur] manquer de respect
................................................................................
        <<- ~2>> *

    à grand renfort     [de|d’]
    à grands coups      [de|d’]
    à seule fin         [de|d’]
        <<- ~2:3>> *

    à travers @:D
    à travers >différente
        <<- ~2>> *

    ainsi
        <<- not value(>1, "|que|qu’|") ~>> *

    au [bout|courant|cours|détriment|gré|lieu|long|large|milieu|profit|sein|sortir|sujet|vu] [de|du|d’|des]
................................................................................
    [celui|celle|celles|ceux]   d’ entre [nous|vous|eux|elles]
    [chacun|chacune]            d’ entre [nous|vous|eux|elles]
        <<- ~2:0>> *

    ceux et [celle|celles] qui
        <<- ~2:3>> *

    comme tant d’ autres  @:R
        <<- ~1:4>> *

    compte tenu [de|des|du]
        <<- ~1:2>> avec

    depuis [,|<end>]
        <<- ~1>> *
................................................................................

    @:M[12]  [Ier|Iᵉʳ]
        <<- \2.istitle() ~2:0>> *

    @:M[12]  [Le|La|von|van|Mac|Mc|De|Du|D’]  *WORD
        <<- \3.istitle() ~2:0>> *

    [de|d’]  @:M  [et|ou]  [de|d’]  @:M
    [de|d’]  @:M
        <<- ~>> *

    entre  @:M  et  @:M
        <<- ~>> *

    entre  @:N  et  @:N
        <<- \2.istitle() and \4.istitle() ~>> *

    en  @:MP
        <<- ~>> *

    [le|ce|du]  [baron|docteur|député|duc|frère|ministre|prince|professeur|président|roi|sénateur|mir]  @:M[12]
    [la|cette]  [baronne|docteur|docteure|députée|duchesse|ministre|sœur|princesse|présidente|professeure|reine|sénatrice]  @:M[12]
        <<- ~3>> *

    [Mr|Mlle|Mme|Mgr|miss]  ~^[A-ZÉÈÊ]
        <<- ~2>> *

    @:Cs  ~^[A-ZÉÈÊ]  et  [moi|toi|lui|elle|nous|vous|eux|elles]
        <<- morph(\2, ":M") and not before("\\b(?:plus|moins|aussi) .* que +$")
        ~2:4>> =rewriteSubject(\2,\4) + "||"

    <start>  ~^[A-ZÉÈÊ]  et  [moi|toi|lui|elle|nous|vous|eux|elles]
        <<- morph(\2, ":M")
        ~2:0>> =rewriteSubject(\2,\4) + "||"

................................................................................
    >avoir  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    >avoir  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    >avoir  [pas|jamais|plus|guère|point]  quartier libre
    >avoir  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- ~3:0>> ␣
        <<- =>> define(\3, [":LV"])

    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|soif|vent]
    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  @:(?:Q|V1.*:Y)
        <<- ~2:-2>> *

    n’  >avoir  que  @:Q
        <<- ~3>> *

    n’  >avoir  que  @:W  @:Q
        <<- ~3:4>> *

    n’  >avoir  que  [peu|très|trop]  @:W  @:Q
        <<- ~3:5>> *

    /VCint  [pas|jamais|plus|guère|point]
    /VCint  ?[pas|jamais|plus|guère|point]¿  en partie
    /VCint  ?[pas|jamais|plus|guère|point]¿  tous [deux|trois]
    /VCint  ?[pas|jamais|plus|guère|point]¿  somme toute
        <<- morphVC(\1, ":V0a") ~2:0>> *
................................................................................

    /VCint  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|soif|vent]
    /VCint  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  @:(?:Q|V1.*:Y)
        <<- morphVC(\1, ":V0a") ~2:-2>> *


__purge_après_verbe__
    @:V  ?pas¿  jour et nuit
    @:V  ?pas¿  nuit et jour
    @:V  quand même pas
    @:V  [moi|toi|lui|elle|nous|vous|eux|elles]  aussi
    @:V  même
    @:[123]  bien [entendu|sûr]
    @:[123]  ?pas¿  juste
    @:[123]  ?pas¿  ensemble
    @:[123]  ?pas¿  ?[fort|très|super]¿  [bien|mal]
        <<- ~2:0>> *

    [>pouvoir|>savoir|>vouloir] mieux que personne ?@:W¿ @:[YG]
    >avoir                      mieux que personne ?@:W¿ @:[QYG]
    >être                       mieux que personne ?@:W¿ @:[QAYG]
        <<- ~2:-2>> *

    >avoir  pour [lui|nous|vous|longtemps]  ?@:W¿  @:Q
    >être   pour [lui|nous|vous|longtemps]  ?@:W¿  @:[QA]
        <<- ~2:-2>> *


__purge_adverbes_de_négation__
    jamais
        <<- ~>> *

................................................................................
        <<- ~1:2>> *


__purge_adverbes__
    [assez|trop]  ~ment$
        <<- morph(\2, ":W", ":3p") ~>> *

    @:[NAQ]  [le|la]  [plus|moins]  ~.ment$  @:A
        <<- morph(\4, ":W", ":A") ~2:4>> *

    complètement
        <<- not morph(<1, ":D.*:m") ~>> *

    ~.ment$  ?[parlant|pas]¿
        <<- morph(\1, ":W", ":(?:3p|N)") ~>> *
................................................................................
TEST: {{Quelques}} deux cents hommes.                         ->> Quelque
TEST: les quelque 2,5 millions d’habitants
TEST: les quelque 12 000 stations-service


## Nombres
__gn_nombre_lettres_1m__
    @:B:e:p  *WORD
        <<- /gn/ not value(\1, "|neuf|mille|") and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") )
            or \2 in aREGULARPLURAL) and not re.search("^[IVXLDM]+$", \1)
        -2>> =suggPlur(\2)                                                                  # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.

    neuf  *WORD
        <<- /gn/ ( morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not value(\2, "|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") )
            or \2 in aREGULARPLURAL
................................................................................
TEST: Je connais {{pleins}} de gens
TEST: Les avocats sont pleins de nutriments.


# point / poing
__conf_poing_point__
    [>arme|>coup|>oiseau] de >point
    [>taper|>fermer|>ouvrir|>blesser|>serrer|>desserrer] @:D >point
        <<- /conf/ -3>> =\3.replace("t", "g").replace("T", "G")             # Confusion probable. Une main fermée s’écrit “poing”.|https://fr.wiktionary.org/wiki/poing

    >point [américain|américains|>serrer|>desserrer|>lever|>casser|>lier]
        <<- /conf/ morph(\2, ":A") and morph(<1, ":D")
        -1>> =\1.replace("t", "g").replace("T", "G")                        # Confusion probable. Une main fermée s’écrit “poing”.|https://fr.wiktionary.org/wiki/poing

TEST: une arme de {{point}}
................................................................................
TEST: il a l’{{aire}} d’un plouc.
TEST: on s’arrêtera sur l’{{air}} d’autoroute
TEST: baptême de l’{{aire}}


# auspice / hospice
__conf_auspices_hospices__
    sous [les|de|des|ces] ?*WORD¿ (hospices)
        <<- /conf/ -1>> auspices        # Confusion probable. L’hospice est un centre de soins.|https://fr.wiktionary.org/wiki/auspice

    [>être|>aller|>rester|>demeurer|>partir]  [à|dans|de]  l’ auspice
        <<- /conf/ -4>> hospice         # Confusion. Les auspices sont des présages, des devins ou, au sens moderne, les circonstances.|https://fr.wiktionary.org/wiki/auspice

    dans [un|cet|les|des|ces|quel|quels] >auspice
        <<- /conf/ -3>> =\3.replace("auspice", "hospice")
        # Confusion. Les auspices sont des présages, des devins ou, au sens moderne, les circonstances.|https://fr.wiktionary.org/wiki/auspice
................................................................................
    >bite du quai
    >bite sur le quai
    >bite d’ amarrage
        <<- /conf/ -1>> =\1.replace("ite", "itte")                      # Confusion. Bitte d’amarrage.

    [ma|ta|sa|notre|votre|nos|vos|leur|leurs|grande+s|grosse+s|petite+s|longue+s|>énorme|>minuscule|>sale] >bitte
    >être [une|des] >bitte
    [>aimer|>adorer|>astiquer|>avaler|>bouffer|>branler|>fourrer|>lécher|>mettre|>mordre|>pomper|>sucer] @:D >bitte
        <<- /conf/ --1>> =\-1.replace("itte", "ite")                    # Confusion probable. Si vous parlez de pénis, écrivez “bite” (terme argotique).|https://fr.wiktionary.org/wiki/bite

    >bitte [>circoncise|>dégueulasse|>dure|>molle|>puante|>raide|>répugnante|>sale|vidé+ses]
        <<- /conf/ -1>> =\1.replace("itte", "ite")                      # Confusion probable. Si vous parlez de pénis, écrivez “bite” (terme argotique).|https://fr.wiktionary.org/wiki/bite

TEST: les mouettes sur les {{bites}} d’amarrage.
TEST: on se fout de savoir ce qu’ils font avec leurs {{bittes}}.
................................................................................
TEST: il ne s’est pas juste montré
TEST: il s’était des journées entières consacré à son jeu favori.


# ce / se
__conf_ce_se_verbe__
    [<start>|,] se [ne|n’] [>être|>devoir|>pouvoir]
    [<start>|,] se [sera|serait|seraient|sont|seront|fut|fût|furent|fussent] @:D
    [<start>|,] se >devoir être
    [<start>|,] se >pouvoir être
        <<- /conf/ -2>> ce                              # Confusion probable. Si vous voulez dire, “ceci”, “cela” ou “ça”, écrivez “c’”.||http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=2440

TEST: {{se}} n’est pas pour cette raison que j’ai abandonné mes études.
TEST: grâce à quoi, {{se}} put être fait dans les règles.
TEST: {{se}} serait les pires vacances de sa vie
TEST: des pans entiers de l’univers — pour reprendre l’expression d’Orwell — se sont d’ores et déjà volatilisés
TEST: À la pause, ils se sont tous les deux assis à l’arrière, et j’ai vu progressivement leurs corps se rapprocher.


# coli / colis
__conf_colis_coli2__
    [>affranchir|>attendre|>dédouaner|>dédouanement|>délivrer|>déposer|>égarer|>emballage|>emballer|>envoyer|>envoi|>expédier|>réexpédier|>expédition|>réexpédition|>fermer|>refermer|>livrer|>livraison|>ouvrir|>rouvrir|>ouverture|>réouverture|>perdre|>perte|>pesage|>peser|>porter|>réception|>recevoir|>transporter|>transport|>suivre|dans] @:D coli
        <<- /conf/ --1>> colis                          # Confusion probable. Si vous parlez d’un paquet, écrivez “colis”.|https://fr.wiktionary.org/wiki/colis

    coli [>délivrer|>égarer|>envoyer|>livrer|>oublier|>suspecte|>piéger|>neutraliser]
        <<- /conf/ morph(\2, ":A") -1>> colis           # Confusion probable. Si vous parlez d’un paquet, écrivez “colis”.|https://fr.wiktionary.org/wiki/colis

TEST: on va expédier ce {{coli}} vite fait bien fait.
TEST: un {{coli}} oublié à la gare.
................................................................................
        <<- /conf/ -3>> côlon                           # Confusion : le côlon est un segment du gros intestin, le colon colonise.

TEST: Il a le cancer du {{colon}}.


# censé / sensé
__conf_censé_sensé__
    >être >sensée [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]        @:Y
    >être >sensée ?[ne|n’]¿ [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]    @:Y
    >être >sensée ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y]           @:Y
    >être >sensée ?[ne|n’]¿ [le|la|l’|les]                [lui|leur|en|y]               @:Y
    >être >sensée ?[ne|n’]¿ [lui|leur]                    en                            @:Y
    >être >sensée @:Y
    >être >sensée ne [pas|plus|jamais|rien|guère|point]
        <<- /conf/ not value(<1, "|l’|un|les|des|ces|")
        -2>> =\2.replace("sens", "cens").replace("Sens", "Cens").replace("SENS", "CENS")            # Confusion : “sensé” se dit de quelqu’un de “bon sens”. Pour ce qui est attendu, écrivez “censé”.

TEST: Ils sont {{sensés}} y parvenir.
TEST: Elles étaient {{sensés}} m’y conduire
TEST: il est {{sensé}} prendre l’avion demain
................................................................................
TEST: Quellle est la dernière en {{datte}}
TEST: Elles étaient à cette date cultivées à l’air libre.
TEST: De fraîche date…


# délacer / délasser
__conf_délacer_délasser__
    >délasser  @:D  [>basket|>camisole|>chaussure|>corsage|>corset|>godasse|>godillot|>grolle|>jupe|>pompe|>lacet|>ranger|>robe|>soulier|>voile]
        <<- /conf/ -1>> =\1.replace("ssa", "ça").replace("ss", "c")                                 # Confusion probable. Pour défaire des lacets, des nœuds, etc., écrivez “délacer”.

    [>basket|>camisole|>chaussure|>corsage|>corset|>godasse|>godillot|>grolle|>jupe|>pompe|>lacet|>ranger|>robe|>soulier|>voile]  >délasser
        <<- /conf/ morph(\-1, ":Q") --1>> =\1.replace("ssa", "ça").replace("ss", "c")               # Confusion probable. Pour défaire des lacets, des nœuds, etc., écrivez “délacer”.

TEST: Bon sang, il faut que tu {{délasses}} tes chaussures avant d’essayer de les enlever.
TEST: Ses souliers {{délassés}} la firent tomber.
................................................................................
__conf_enduire_induire__
    >enduire en [>erreur|>tentation]
        <<- /conf/ -1>> =\1.replace("end", "ind").replace("End", "Ind").replace("END", "IND")       # Confusion probable. “Enduire” signifie “appliquer un enduit”.|https://fr.wiktionary.org/wiki/induire

    en >avoir enduit [que|qu’]
        <<- /conf/ -3>> =\3.replace("end", "ind").replace("End", "Ind").replace("END", "IND")       # Confusion probable. “Enduire” signifie “appliquer un enduit”.|https://fr.wiktionary.org/wiki/induire

    >induire @:D¬>de/ [bras|>façade|>cuisse|>fond|>jambe|>lèvre|>main|>mollet|>mur|>ongle|>paroi|>peau|>pied|>plafond|>porte|>sol|>toit|>tuile|>verre|>visage]
    >induire [de|le|ce|cet] [beurre|caramel|ciment|chocolat|gel|goudron|miel|mortier|nutella|plâtre|rouge|téflon|sang|savon|suif|vernis]
    >induire [de|la|cette] [boue|chaux|cire|colle|crême|couche|glu|graisse|lotion|pâte|peinture|pommade|résine|salive|vaseline]
        <<- /conf/ -1>> =\1.replace("ind", "end").replace("Ind", "End").replace("IND", "END")       # Confusion probable. Pour “appliquer un enduit”, écrivez “enduire”.|https://fr.wiktionary.org/wiki/induire

TEST: Il l’avait {{enduit}} en erreur par des affirmations calomnieuses.    ->> induit
TEST: Elle en avait {{enduit}} qu’il y avait anguille sous roche.           ->> induit
TEST: Nous avons {{induit}} la façade.                                      ->> enduit
................................................................................
TEST: {{en faite}}, on en voit partout, ça grouille.
TEST: ils sont {{en faîtes}} partis à la montagne.
TEST: Aujourd’hui, n’en faites pas trop.


# filtre / philtre
__conf_filtre_philtre2__
    >boire @:D >filtre
        <<- /conf/ -3>> philtre|philtres
        # Confusion probable. Un filtre est un intrument de filtrage, un philtre est une boisson (magique) procurant des effets sur le buveur.|https://fr.wiktionary.org/wiki/philtre

TEST: il but un {{filtre}}.


# flanc / flan
__conf_flanc_flan2__
    >blesser au flan
    [>attaquer|>contre-attaquer] ?[sur|sous|à|contre]¿ @:D >flan
        <<- /conf/ --1>> =\-1.replace("n", "nc").replace("N", "NC")         # Confusion probable. Le flan est une pâtisserie. Pour évoquer un côté, une partie latérale, écrivez “flanc”.

TEST: Il avait été blessé au {{flan}}.
TEST: Elle lança une contre-attaque sur son {{flan}}.


# flamant rose
................................................................................

TEST: Une {{goûte}} de pluie
TEST: tu sais, les {{goutes}} de pluie, ça mouille.
TEST: Des gouttes de pluie.


__conf_goûter_goutter_dégoûter_dégoutter__
    >goutter ?à¿ @:D [>biscuit|>bière|>bon|>bonbon|>breuvage|>burger|>café|>cidre|>cocktail|>chocolat|>crêpe|>cru|>délice|>délicieuse|>délicieuse|>dessert|>fameux|>fameuse|>féculent|>fromage|>fruit|>gâteau|>hamburger|>légume|>nourriture|paradis|>pâte|>pain|>plat|>pâtisserie|>poisson|>poulet|>recette|repas|>sandwich|>soupe|>tarte|>tartelette|>sauce|>succulente|>thé|>viande|>vin|>yaourt|>yoghourt]
        <<- /conf/ -1>> =\1.replace("outt", "oût").replace("OUTT", "OÛT")
        # Confusion : “goutter” signifie “couler goutte à goutte”. Pour l’usage du goût, écrivez “goûter”.|https://fr.wiktionary.org/wiki/go%C3%BBter

    [>chiotte|>clim|>climatisation|>chauffe-eau|>douche|>eau|>évier|>lavabo|nez|>motrice|>parapluie|>plafond|>pluie|>robinet|>sang|>sueur|>toilette|>toit|>tuyau|>tuyauterie] ?[ne|n’]¿ [>goûter|>gouter|>dégoûter|>dégouter]
        <<- /conf/ --1>> =\-1.replace("oût", "outt").replace("OÛT", "OUTT").replace("out", "outt").replace("OUT", "OUTT")
        # Confusion : “goûter” signifie utiliser le sens du goût. Pour ce qui s’écoule goutte à goutte, écrivez “goutter”.|https://fr.wiktionary.org/wiki/goutter

................................................................................
    [>lieue|lieus] [>insolite|>accessible|>accueillante|>inaccessible|>inexplorée|>lointaine|>louche|>proche|>touristique|saint|saints|>connu|>inconnue|>mythique|>publique|prestigieux|>romantique|>stratégique|>historique|où|>humide|sec|secs]
    [>lieue|lieus] de [>communication|>concert|>conférence|>contemplation|>culte|>chasse|>détente|>détention|>départ|>méditation|>mémoire|>pouvoir|>prière|>prostitution|>sépulture|repos|>refuge|>stockage|>travail|>vacance|>spectacle|>conférence|>rassemblement|>sortie|>stationnement|>rencontre|>vacance|>villégiature]
        <<- /conf/ -1>> lieu|lieux                              # Confusion probable. Pour désigner un endroit, écrivez “lieu(x)”.|http://fr.wiktionary.org/wiki/lieu

    [>lieue|lieus] [>aménager|>abandonner|>insolite|>éloigner|>réserver|>sacrer|>connaître|>méconnaître|>privilégier|>priver]
        <<- /conf/ morph(\2, ":Q") -1>> lieu|lieux              # Confusion probable. Pour désigner un endroit, écrivez “lieu(x)”.|http://fr.wiktionary.org/wiki/lieu

    [>être|>demeurer|>déménager|>habiter|>trouver|>situer|>rester|>demeurer|>demeure|>vivre]  à  [quelques|plusieurs|maintes|*NUM|@:B]  [lieux|lieus]
        <<- /conf/ --1>> lieues                                 # Confusion probable. Pour désigner une distance, écrivez “lieues”.|http://fr.wiktionary.org/wiki/lieue

    [>être|>demeurer|>déménager|>habiter|>trouver|>situer|>rester|>demeurer|>demeure|>vivre]  à  des  [lieux|lieus]
        <<- /conf/ space_after(\2, 1, 4) --1>> lieues           # Confusion probable. Pour désigner une distance, écrivez “lieues”.|http://fr.wiktionary.org/wiki/lieue

    *NUM >lieu sous [la|les] >mer
    @:B  >lieu sous [la|les] >mer
        <<- /conf/ -2>> lieues                                  # Confusion. Pour désigner une distance, écrivez “lieue(s)”.|http://fr.wiktionary.org/wiki/lieue

    [lieux|>lieue] [>jaune|>noire|>mordre]
        <<- /conf/ -1>> lieu|lieus                              # Confusion probable. Si vous parlez du poisson, écrivez “lieu(s)”.|http://fr.wiktionary.org/wiki/lieu

    >pêche [aux|des] [lieux|lieues]
    >chair des [lieux|lieues]
................................................................................
TEST: Échec et {{mât}}
TEST: le grand {{mat}}
TEST: {{Mat}} de misaine


# mâter / mater
__conf_mater_mâter__
    >mâter  @:D  [>adversaire|>armée|>cavalière|>cheval|>chienne|>conne|>connard|>connasse|>cul|>dame|>enfoirée|>emmerdeuse|>enfant|>ennemie|>enculée|>femme|>fesse|>fille|fils|>folle|>foule|>gamine|>garçonne|>homme|>horde|>incendie|>insurrection|>jument|>lionne|>nation|>peuple|>pion|>pute|>rebelle|>rebellion|>reine|>roi|>sein|>salope|>tigresse|>tour|>troupe]
        <<- /conf/ -1>> =\1.replace("ât", "at").replace("ÂT", "AT")
        # Confusion. “Mâter” signifie “dresser un mât”. Si vous voulez dire “dompter” (ou argotiquement “regarder”), écrivez “mater”.|https://fr.wiktionary.org/wiki/mater

    >mâter en [*NUM|@B] coups
        <<- /conf/ -1>> =\1.replace("ât", "at").replace("ÂT", "AT")
        # Confusion. “Mâter” signifie “dresser un mât”. Si vous voulez dire “dompter” ou “mettre en échec”, écrivez “mater”.|https://fr.wiktionary.org/wiki/mater

    >mater  @:D  [>aviron|>bateau|>canot|>catamaran|>goélette|>navire|>trimaran|>vaisseau|>voilier]
        <<- /conf/ -1>> =\1.replace("ât", "at").replace("ÂT", "AT")
        # Confusion. “Mater” signifie “dompter” ou (argotiquement) “regarder”. Si vous voulez dire “dresser un mât”, écrivez “mâter”.|https://fr.wiktionary.org/wiki/mâter

TEST: Elle va {{mâter}} ces emmerdeurs en moins de temps qu’il ne faut pour le dire.
TEST: il peut {{mâter}} en 3 coups
TEST: On va bientôt {{mater}} l’navire, p’tit.

................................................................................
# panser / penser
__conf_panser_penser__
    >penser  *WORD  [>animal|>blessure|>blessée|bras|>chatte|>cheval|>chienne|>cheville|>cœur|>crâne|>cuisse|>doigt|>épaule|>jambe|>main|>malade|>patte|>pied|>plaie|>poignet|>tête]
        <<- /conf/ morph(\2, ":D", ">de/") -1>> =\1.replace("en", "an").replace("EN", "AN")
        # Confusion probable. Pour évoquer les soins prodigués, écrivez “panser”.|https://fr.wiktionary.org/wiki/panser

    >panser à autre chose
    >panser à @:D [>amie|>bébé|>chienne|>chatte|>cul|>descendante|>descendance|>enfant|>famille|>femme|>fesse|>fille|>garçon|>héritage|>héritière|>leçon|>mari|>maîtresse|>maitresse|>parent|>voisin]
    >panser [au|aux] [>amie|>bébé|>chienne|>chatte|>cul|>descendante|>descendance|>enfant|>famille|>femme|>fesse|>fille|>garçon|>héritage|>héritière|>leçon|>mari|>maîtresse|>maitresse|>parent|>voisin]
    >panser à [dieu|moi|toi|lui|elle|nous|vous|eux|elles|@:M]
    >panser à [ne|n’|me|m’|te|t’|se|s’]
    >panser à [le|la|l’|les|en|lui|leur|y]      @:Y
    >panser à [le|la|l’|les]  [lui|leur|en|y]   @:Y
    >panser à [lui|leur]      en                @:Y
        <<- /conf/ -1>> =\1.replace("an", "en").replace("AN", "EN")
        # Confusion probable. Pour évoquer les pensées qu’on a pour quelqu’un ou quelque chose, écrivez “penser”.|https://fr.wiktionary.org/wiki/penser

TEST: J’ai {{pensé}} les blessés.
TEST: Il a {{pensé}} mon cœur solitaire.
TEST: j’ai {{pansé}} à lui
TEST: Elle {{panse}} à Dieu sans raison.
................................................................................

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

__conf_det_1subst_peu_peut_vinfi__
    [<start>|,]  [un|le|ce|cet]                     *WORD           peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD           peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD           peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
        <<- /conf/ morph(\3, ":N") --2>> peut           # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3” est le sujet du syntagme verbal.

    [<start>|,]  [un|le|ce|cet]                     *WORD           peu  ?en¿  @:Y
        <<- /conf/ morph(\3, ":N") --2>> peut           # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":m:s")                # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3”, il faut utiliser le participe passé.

    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD           peu  ?en¿  @:Y
        <<- /conf/ morph(\3, ":N") --2>> peut           # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":f:s")                # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3”, il faut utiliser le participe passé.

    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD           peu  ?en¿  @:Y
        <<- /conf/ morph(\3, ":N") --2>> peut           # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":s")                  # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3”, il faut utiliser le participe passé.

TEST: cet homme {{peu}} aller et venir ici comme bon lui semble
TEST: Cette athlète {{peu}} y parvenir.
TEST: cette amie {{peu}} sembler distante, mais elle nous a toujours soutenus
................................................................................
__conf_det_2subst_peu_peut_vinfi__
    [<start>|,]  [un|le|ce|cet]                     *WORD  *WORD    peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD  *WORD    peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD  *WORD    peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":[NA]", ":V0")
        --2>> peut                                      # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3 \4” est le sujet du syntagme verbal.

    [<start>|,]  [un|le|ce|cet]                     *WORD  *WORD    peu  ?en¿  @:Y
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":[NA]", ":V0")
        --2>> peut                                      # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3 \4” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":m:s")                # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3 \4”, il faut utiliser le participe passé.

    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD  *WORD    peu  ?en¿  @:Y
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":[NA]", ":V0")
        --2>> peut                                      # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3 \4” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":f:s")                # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3 \4”, il faut utiliser le participe passé.

    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD  *WORD    peu  ?en¿  @:Y
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":[NA]", ":V0")
        --2>> peut                                      # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3 \4” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":s")                  # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3 \4”, il faut utiliser le participe passé.

TEST: un grand homme {{peu}} aller et venir ici comme bon lui semble
TEST: ma petite amie {{peu}} sembler distante, mais elle nous a toujours soutenus
................................................................................
        <<- /conf/ -1:4>> quoi qu’il en soit                    # Confusion.|https://fr.wiktionary.org/wiki/quoi_qu%E2%80%99il_en_soit

TEST: {{quoiqu’il en soit}}, nous ne nous laisserons pas faire, vous pouvez compter sur nous.


# rebooter / rebouter
__conf_rebooter_rebouter__
    >rebouter  @:D  [>appareil|>imprimante|iPhone|kernel|>machine|>modem|>noyau|>ordinateur|>ordi|PC|>portable|>programme|>routeur|serveur|serveurs|>système|>tablette|>téléphone|terminal|terminaux]
    >rebouter  [Android|Linux|iOS|Unix|Windows]
        <<- /conf/ -1>> =\1.replace("out", "oot").replace("OUT", "OOT")         # Confusion probable. Rebouter est un terme de botanique.

TEST: {{Reboute}} l’ordinateur.
TEST: On {{reboute}} Windows et ça devrait aller.


................................................................................
        <<- /conf/ not before("[aA]ccompl|[dD]él[éè]gu") -1>> =\1.replace("â", "a").replace("Â", "A")
        # Confusion probable. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

    >tâche  [>indélébile|>rouge|>verte|>noire|>bleue|>jaune|>grise|>blanche|>brune|>pourpre|>chocolat|>mauve|>fushia|>violette|>rose|>claire|>sombre|>solaire|>cuivrée]
        <<- /conf/ -1>> =\1.replace("â", "a").replace("Â", "A")
        # Confusion. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

    >tâche sur @:D [>bermuda|>blouse|>blouson|bois|bras|>caleçon|>canapé|>carrelage|>chemise|>chemisier|>col|>conscience|corps|>costume|>cravate|>cuir|>culotte|CV|>dent|>doigt|document|dos|>fauteuil|>feuille|>front|>habit|>jambe|>jean|>joue|>jupe|>jupon|>lèvre|>linge|>livre|>livret|>maillot|>main|>marbre|>meuble|>moquette|>mur|>nappe|nez|>ongle|>papier|>parquet|>pantalon|>peau|pénis|>photo|>photographie|>pied|>pull|>réputation|>robe|>sexe|>siège|>slip|>sol|>t-shirt|>teeshirt|>tee-shirt|>tapis|>tête|>tissu|>veste|>vêtement|>visage]
        <<- /conf/ -1>> =\1.replace("â", "a").replace("Â", "A")
        # Confusion. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

    >tâcher  @:D  [>bermuda|>blouse|>blouson|bois|bras|>caleçon|>canapé|>carrelage|>chemise|>chemisier|>col|>conscience|corps|>costume|>cravate|>cuir|>culotte|CV|>dent|>doigt|document|dos|>fauteuil|>feuille|>front|>habit|>jambe|>jean|>joue|>jupe|>jupon|>lèvre|>linge|>livre|>livret|>maillot|>main|>marbre|>meuble|>moquette|>mur|>nappe|nez|>ongle|>papier|>parquet|>pantalon|>peau|pénis|>photo|>photographie|>pied|>pull|>réputation|>robe|>sexe|>siège|>slip|>sol|>t-shirt|>teeshirt|>tee-shirt|>tapis|>tête|>tissu|>veste|>vêtement|>visage]
        <<- /conf/ -1>> =\1.replace("â", "a").replace("Â", "A")
        # Confusion. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

    [>nettoyer|>laver|>essuyer|>gratter]  @:D  >tâche
        <<- /conf/ --1>> =\-1.replace("â", "a").replace("Â", "A")
        # Confusion. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

TEST: une {{tâche}} de chocolat                                             ->> tache
TEST: une {{tâche}} vraiment indélébile
TEST: une {{tâche}} rouge.
TEST: Une {{tâche}} sur ma chemise.
................................................................................
    tache [accomplie|dévalorisante|difforme|épuisante|exécutée|exténuante|fatigante|ingrate|menée|valorisante]
    taches [accomplies|dévalorisantes|difformes|épuisantes|exécutées|exténuantes|fatigantes|ingrates|menées|valorisantes]
    >tache >insoluble
    >tache consistant à
        <<- /conf/ -1>> =\1.replace("a", "â").replace("A", "Â")
        # Confusion. Une tache est une salissure, une altération, une marque, une coloration… Pour parler d’un travail à accomplir, écrivez “tâche”.

    [>abstenir|>accepter|>accomplir|>achever|>affecter|>effectuer|>entreprendre|>exécuter|>faciliter|>finir|>interrompre|>partager|>refaire|>refuser|>simplifier|>terminer]  @:D  >tache
    à la tache
    [à|a] la hauteur de la tache
        <<- /conf/ --1>> =\3.replace("a", "â").replace("A", "Â")
        # Confusion. Une tache est une salissure, une altération, une marque, une coloration… Pour parler d’un travail à accomplir, écrivez “tâche”.

    >tacher  [de|d’]  [ne|n’|me|m’|te|t’|se|s’]
    >tacher  [de|d’]  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  @:Y
    >tacher  [de|d’]  [nous|vous]     [le|la|l’|les|en|y]       @:Y
    >tacher  [de|d’]  [le|la|l’|les]  [lui|leur|en|y]           @:Y
    >tacher  [de|d’]  [lui|leur]      en                        @:Y
        <<- /conf/ -1>> =\1.replace("a", "â").replace("A", "Â")
        # Confusion. Tache signifie faire une salissure, une altération, une marque, une coloration… Pour parler de l’accomplissement d’un travail, écrivez “tâcher”.

TEST: Quelle {{tache}} ingrate.
TEST: Une {{tache}} valorisante.
TEST: Elle se tue à la {{tache}}.
TEST: Il a accompli la {{tache}} facilement.
................................................................................
__conf_tant_temps_tan__
    en [temps|>tan] [que|qu’]
        <<- /conf/ -2>> tant                                        # Confusion. Écrivez « en tant que ».|http://fr.wiktionary.org/wiki/en_tant_que

    il >être [tant|>tan] [de|d’] [ne|me|m’|te|t’|se|s’|en|y]
    il >être [tant|>tan] [de|d’] [la|le|les] [lui|leur]
    il >être [tant|>tan] [de|d’] [nous|vous] [la|le|les|l’]
    il >être [tant|>tan] [de|d’] [la|le|les|lui|nous|vous|leur|l’] @:Y
    il >être [tant|>tan] [de|d’] @:Y
        <<- /conf/ -3>> temps                                       # Confusion. Si vous voulez dire “c’est le moment de”, écrivez “temps”.|https://fr.wiktionary.org/wiki/il_est_temps

TEST: en {{tan}} que meneuse intrépide, elle a toujours fait preuve d’une grande imagination.
TEST: il est bien évidemment {{tant}} d’en finir avec ça.


# tort / tord / tore / torr / tors
................................................................................
TEST: les hommes ne sont pas tout à fait {{fâchées}}                              ->> fâchés
TEST: plusieurs invités qui ne sont pas {{contentes}}
TEST: les réunions sans cesse reportées qui sont {{annulés}}
TEST: Les tortures que ce journaliste pense être “normales”.


__ppas_nom_propre_être_accord_genre__
    [<start>|,|@:Cs]  (@:M)  ?qui¿  ?[ne|n’]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])          *WORD
    [<start>|,|@:Cs]  (@:M)  ?qui¿  ?[ne|n’]¿  (>avoir) [été|semblé|paru]                                                            *WORD
    [<start>|,|@:Cs]  (@:M)  ?qui¿  ?[ne|n’]¿  ([>être|>sembler])  [devenu+e|redevenu+e|resté+e|demeuré+e]                           *WORD
    [<start>|,|@:Cs]  (@:M)  ?qui¿  ?[ne|n’]¿
        || ([>aller|>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])
        || [être|devenir|redevenir|rester|paraître|paraitre|sembler]                                *WORD
    [<start>|,|@:Cs]  (@:M)  ?qui¿  ?[ne|n’]¿
        || ([>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])
        || être [devenu+e|redevenu+e|resté+e|demeuré+e]                                             *WORD
    [<start>|,|@:Cs]  (@:M)  ?qui¿  ?[ne|n’]¿
        || ([>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]                                                                  *WORD
        <<- /ppas/ not tag(\1, "enum") and ((morph(\1, ":M.*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")) or (morph(\1, ":M.*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and morph(\2, ":[123]s")
        --1>> =switchGender(\-1)                                                                    # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre.

    *WORD  [que|qu’]  @:M  ?[ne|n’]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || [être|devenir|redevenir|rester|paraître|paraitre|sembler]                                *WORD
    *WORD  [que|qu’]  @:M  ?[ne|n’]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || être [devenu+e|redevenu+e|resté+e|demeuré+e]                                             *WORD
    *WORD  [que|qu’]  @:M  ?[ne|n’]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || avoir [été|semblé|paru]                                                                  *WORD
        <<- /ppas/ checkAgreement(\1, \-1) !-1>>

TEST: Marianne semble devenue {{colériques}}
TEST: Pauline n’affirme pas avoir été {{vaincu}} pour autant
TEST: Sara n’en croit pas cependant être devenue {{aigries}}
................................................................................
!!
!!
!!!! Participes passés après “avoir”                                                              !!
!!
!!

__immu_les_avoir_fait_vinfi__
    les >avoir fait ?[me|m’|te|t’|se|s’|nous|vous|leur]¿ @:Y
        <<- !3>>


__ppas_pronom_avoir__
    [je|j’|tu|il|elle|on|ils|elles|et|qui]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  *WORD
        <<- /ppas/ not value(\-1, "|barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|")
            and value(<1, "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|")
................................................................................
TEST: ce qu’il leur a {{données}}



!!!! du / dû                                                                                      !!

__ppas_avoir_dû_vinfi__
    >avoir  [du|dus|due|dues]  [le|la|les|l’|me|m’|te|t’|se|lui|s’|nous|vous|leur|@:Y]
        <<- /ppas/ \3 != "pouvoir" -2>> dû                      # Participe passé de devoir : “dû”.

    /VCint  [du|dus|due|dues]  [le|la|les|l’|me|m’|te|t’|se|lui|s’|nous|vous|leur|@:Y]
        <<- /ppas/ \3 != "pouvoir" -2>> dû                      # Participe passé de devoir : “dû”.

TEST: Il a {{du}} leur prendre.
TEST: J’ai {{du}} lui donner.
TEST: J’ai {{du}} leur prendre.
TEST: A-t-il {{du}} se résoudre à céder ?
TEST: Aurait-il {{du}} {{prendre}} son repas plus tôt ?
................................................................................


__conf_suj_verbe_det_verbe_nom__
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)                 # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)                 # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  @:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  @:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est une préposition, il faut placer un nom après.

TEST: je relève le {{défit}}.                                   ->> défi
TEST: elle relève une fois de plus le {{défie}}.                ->> défi
TEST: il gère l’{{accueille}}                                   ->> accueil
TEST: Elle ne connait pas leur {{recule}}                       ->> recul
TEST: elle lisait la {{garantit}}                               ->> garantie
................................................................................
    [ne|n’]  [le|la|l’|les]                 [lui|leur|en|y]            @:(?:[123][sp]|P|Y)¬:X
    [ne|n’]  [lui|leur]                     en                         @:(?:[123][sp]|P|Y)¬:X
        <<- ~1:-2>> *


__tag_verbe_infinitif_sujet__
    [<start>|,]  [ne|n’]  ?[en|y]¿ ?presque¿ [pas|rien|guère|point|jamais|plus]
    [<start>|,]  [ne|n’]  @:Y
    [<start>|,]  @:Y
        <<- /2>> suj_vinfi


__tag_usage_pronominal__
    [me|m’|te|t’|se|s’]  ?[le|la|l’|les|en|y]¿  @:V¬:G
    nous nous            ?[le|la|l’|les|en|y]¿  @:V¬:G
    vous vous            ?[le|la|l’|les|en|y]¿  @:V¬:G
        <<- /-1>> upron


__énumérations_substantifs__
    [le|la|l’|les|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|certains|certaines|tout|tous|toute|toutes] (*WORD)
        || , [le|la|l’|les|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|certains|certaines|tout|tous|toute|toutes] (*WORD)
        || [,|et|ou] [le|la|l’|les|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|certains|certaines|tout|tous|toute|toutes] (*WORD)
................................................................................
TEST: elles sont parties ce matin {{est}} ce soir                                   ->> et
TEST: il avait mangé des moules {{est}} des frites                                  ->> et
TEST: ce matin pluvieux l’ambiance est à présent la pire.


#### veillez / veuillez
__conf_veillez__
    [<start>|,]  veuillez  à  [ne|n’|me|m’|nous|@:Y]
        <<- /conf/ -2>> veillez                                     # Confusion probable : “veuillez” est une forme conjuguée du verbe “vouloir”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1939

TEST: {{Veuillez}} à ne pas tomber dans ce piège.
TEST: Et {{veuillez}} surtout à ouvrir grand les yeux.
TEST: {{Veuillez}}, s’il vous plaît, à prendre vos médicaments.
TEST: Veuillez à nouveau faire attention à ce problème.
TEST: Veuillez excuser mon retard.
TEST: Veillez à bien fermer les fenêtres.


__conf_veuillez__
    [<start>|,]  veillez  [ne|n’|me|m’|nous|@:Y]
        <<- /conf/ -2>> veuillez
        # Confusion probable : “veiller” signifie “prendre garde” ou “être vigilant”. Pour inviter à faire quelque chose, écrivez “veuillez”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1939

TEST: {{Veillez}} excuser mon retard.
TEST: {{Veillez}} me contacter.
TEST: {{Veillez}} me le faire savoir.
TEST: {{Veillez}} ne le dire à personne.
................................................................................
TEST: Aucun terme attesté dans des textes antiques, mésopotamien ou autre, ne sert à désigner la Mésopotamie au sens moderne du terme
TEST: signalons qu’aucun fait avéré ne correspond à ce qui se propage
TEST: Aucune solution envisagée n’a engendré de résultat positif.
TEST: Aucun homme parti à la guerre ne revient


__conj_vinfi_suj__
    [<start>|,]  @:Y  @:V¬:(?:3s|P|Q|Y|G|3p!|M)
        <<- /conj/ not (value(\2, "|avoir|croire|être|devenir|redevenir|voir|sembler|paraître|paraitre|sentir|rester|retrouver|") and morph(\3, ":[NA]"))
        -3>> =suggVerb(\3, ":3s")                                       # Conjugaison erronée. Accord avec “\2”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: manger {{fais}} grossir.
TEST: boire immodérément {{nuis}} à la santé
TEST: Réfléchir à tête reposée {{prends}} du temps.
TEST: Manger salé, c’est mauvais pour la santé.
................................................................................
TEST: Je {{voudrai}} qu’il soit déjà là.
TEST: J’aimerai ces cours-là autant que les autres.
TEST: J’aimerai la danse et la musique, puisque vous l’exigez.
TEST: Je sais que j’aimerai ça, tout comme lui.


__vmode_j_aurais_aimé_que_vinfi__
    j’  aurai  [aimé|souhaité|préféré|voulu|apprécié|désiré|adoré]  [que|qu’|ne|n’|@:Y]
        <<- /vmode/ -2>> aurais|eusse                                                               # Pour un souhait passé, utilisez le conditionnel passé et non le futur antérieur. Exemple pour le futur antérieur : « quand j’aurai fini… »

TEST: J’{{aurai}} aimé nous offrir ce magnifique cadeau.
TEST: j’{{aurai}} voulu être un artiste.
TEST: j’{{aurai}} préféré ne pas avoir à l’entendre.
TEST: j’{{aurai}} préféré l’entendre un autre jour.
TEST: j’{{aurai}} aimé que vous m’en parliez.
................................................................................
!!!! Incohérence ponctuation/mode verbal                                                          !!
!!
!!

# Règles casse-gueule, prudence…

__conj_nom_propre_virgule__
    <start>  @:M  ,  @:3s¬:[NAGEM]  [<end>|,]
        <<- /conj/ space_after(\2, 0, 0) -2:3>> \2
        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        <<- /conj/ __also__ -4>> =suggVerbTense(\4, ":E", ":2s")
        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).

    <start>  @:M  ,  @:3s¬:[NAGEM]  @:A.*:[si]
        <<- /conj/ space_after(\2, 0, 0) and morph(\4, ">(?:être|devenir|redevenir|sembler|para[iî]tre)/") -2:3>> \2
        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        <<- /conj/ __also__ -4>> =suggVerbTense(\4, ":E", ":2s")
        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).

TEST: {{Paul,}} {{vient}}                                               ->> Paul|||viens
TEST: {{Anton,}} {{sera}} toujours prêt à vous écouter                  ->> Anton|||sois







|


|


|


|







 







|


|







 







|







 







|







 







|
|







 







|







 







|











|







 







|







 







|










|


|


|










|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|


|







 







|
|
|







 







|
|
|







 







|
|
|







 







|
|
|







 







|







 







|
|
|
|







 







|







 







|






|







 







|






|







 







|
|
|
|


|







 







|







 







|







 







|
|
|
|







 







|
|
|
|


|







 







|







 







|







 







|







 







|







 







|


|
|







 







|







 







|







 







|







 







|







 







|
|


|


|


|









|







 







|
|


|


|


|







 







|
|
|
|
|






|
|
|


|
|







 







|







 







|







 







|







 







|
|







 







|







 







|













|







 







|
|
|
|
|
|







 







|







 







|







 







|









|







 







|







 







|






|







 







|



|



|







 







|

|

|
|
|







 







|







 







|




|




|







 







|





|





|







 







|







 







|



|



|







 







|






|
|
|
|







 







|
|







 







|
|
|
|


|


|





|


|


|







 







|







 







|


|







 







|

|

|

|

|
|
|
|






|

|

|

|

|
|
|
|






|

|

|

|

|
|
|
|






|

|

|

|

|
|
|
|






|

|

|

|

|
|
|
|







 







|
|




|
|
|







 







|











|







 







|







 







|







 







|





|







1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
....
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
....
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
....
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
....
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
....
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
....
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
....
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
....
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
....
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
....
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
....
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
....
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
....
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
....
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
....
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
....
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
....
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
....
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
....
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
....
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
....
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
....
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
....
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
....
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
....
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
....
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
....
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
....
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
....
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
....
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
....
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
....
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
....
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
.....
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
.....
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
.....
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
.....
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
.....
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
.....
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
.....
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
.....
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
.....
15413
15414
15415
15416
15417
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
.....
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
.....
15874
15875
15876
15877
15878
15879
15880
15881
15882
15883
15884
15885
15886
15887
15888
.....
15977
15978
15979
15980
15981
15982
15983
15984
15985
15986
15987
15988
15989
15990
15991
15992
15993
15994
15995
15996
15997
15998
15999
16000
16001
16002
16003
16004
16005
.....
16056
16057
16058
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
.....
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
.....
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
.....
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
.....
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
.....
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
.....
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
.....
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
.....
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
.....
17113
17114
17115
17116
17117
17118
17119
17120
17121
17122
17123
17124
17125
17126
17127
17128
17129
17130
17131
17132
17133
17134
17135
17136
17137
.....
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
17165
17166
17167
17168
17169
17170
17171
.....
17253
17254
17255
17256
17257
17258
17259
17260
17261
17262
17263
17264
17265
17266
17267
.....
17329
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
.....
17365
17366
17367
17368
17369
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
.....
17417
17418
17419
17420
17421
17422
17423
17424
17425
17426
17427
17428
17429
17430
17431
17432
.....
19247
19248
19249
19250
19251
19252
19253
19254
19255
19256
19257
19258
19259
19260
19261
19262
19263
19264
19265
19266
19267
19268
19269
19270
19271
19272
19273
19274
19275
19276
19277
19278
19279
19280
19281
19282
.....
19787
19788
19789
19790
19791
19792
19793
19794
19795
19796
19797
19798
19799
19800
19801
.....
20041
20042
20043
20044
20045
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20057
20058
.....
20632
20633
20634
20635
20636
20637
20638
20639
20640
20641
20642
20643
20644
20645
20646
20647
20648
20649
20650
20651
20652
20653
20654
20655
20656
20657
20658
20659
20660
20661
20662
20663
20664
20665
20666
20667
20668
20669
20670
20671
20672
20673
20674
20675
20676
20677
20678
20679
20680
20681
20682
20683
20684
20685
20686
20687
20688
20689
20690
20691
20692
20693
20694
20695
20696
20697
20698
20699
20700
20701
20702
20703
20704
20705
20706
20707
20708
20709
20710
20711
20712
20713
20714
20715
20716
20717
20718
20719
20720
20721
20722
20723
20724
20725
20726
20727
20728
20729
.....
21257
21258
21259
21260
21261
21262
21263
21264
21265
21266
21267
21268
21269
21270
21271
21272
21273
21274
21275
21276
21277
21278
21279
.....
21416
21417
21418
21419
21420
21421
21422
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
21437
21438
21439
21440
21441
21442
.....
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
.....
22503
22504
22505
22506
22507
22508
22509
22510
22511
22512
22513
22514
22515
22516
22517
.....
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734

    elles [le|la|les|leur]
        <<- not morph(<1, ":(?:3p|R)") =>> select(\2, ":Ov")

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

    le   $:N¬*
        <<- not value(<1, "|ne|n’|me|m’|te|t’|se|s’|") =>> select(\1, ":D")

    la   $:N¬*
        <<- not value(<1, "|ne|n’|me|m’|te|t’|se|s’|") =>> select(\1, ":D")

    les  $:N¬*
        <<- not value(<1, "|ne|n’|me|m’|te|t’|se|s’|") =>> select(\1, ":D")

    l’   $:N¬*
        <<- not value(<1, "|ne|n’|me|m’|te|t’|se|s’|") =>> define(\1, [":D:e:s"])


__da_nous_vous__
    [ne|n’] [nous|vous]
        <<- =>> exclude(\2, ":Os")

................................................................................
    lui             en                 @:¬:[OXW]
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")

    [le|la|l’|les]  [lui|leur|en]      @:¬:[OXW]
    leur            en                 @:¬:[OXW]
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    $:M  @:[123]s¬:[QW]
        <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]")

    <start> $:M  @:(?:[123]s|Oo)|>ne/¬:A
        <<- =>> =select(\2, ":M")

    [que|qu’|combien|pourquoi|qui|quand|où]  ?[en|y]¿  *WORD
        <<- =>> exclude(\-1, ":E")

    [<start>|,]  quelqu’un  *WORD
        <<- =>> exclude(\3, ":N")
................................................................................
        <<- =>> select(\2, ":Q")


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

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

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

__da_puis__
................................................................................

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

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

    de  [la|l’]  $:¬:Y
        <<- not value(<1, "|semblant|") =>> exclude(\3, ":V")

    [/VCint|/VCimp] [le|la|l’|leur|les]
        <<- =>> select(\2, ":D")

    de [>telle|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine]  *WORD
        <<- =>> exclude(\3, ":V")
................................................................................
    [moi|moi-même] ?[seul|seule]¿ ?,¿ qui
        <<- />> 1s

    [moi|moi-même] [seul|seule]
        <<- not value(<1, "|de|d’|par|") />> 1s

    tu
    t’  $:2s
    t’  [en|y]  $:2s
    [toi|toi-même] ?[seul|seule]¿ ?,¿ qui
        <<- />> 2s

    [toi|toi-même] [seul|seule]
        <<- not value(<1, "|de|d’|par|") />> 2s

    nous ?[seul|seuls|seules]¿ ?,¿ qui
................................................................................

    en tout et pour tout
        <<- !-1>>

    jusqu’ à
        <<- !2>>

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

    soit pour soit contre
        <<- !3>>


TEST: New York {{étaient}} {{devenue}} la plaque tournante de tous les trafics.
................................................................................
TEST: Cette {{voiture si}}, c’est celle-là que je veux.
TEST: ce que je veux c’est ce {{véhicule ci}}
TEST: Laisse ce chiot là où il est !


### Préfixes
__tu_préfixe_ex__
    ex  $:N¬*
        <<- /tu/ not value(\2, "|aequo|nihilo|cathedra|absurdo|abrupto|")
        ->> ex-\2                                                           # S’il s’agit d’un seul mot, il manque un trait d’union.

TEST: Son {{ex ami}} est un vrai cauchemar.
TEST: Ton ex donne du fil à retordre.


__tu_préfixe_in__
    in [dix-huit|douze|seize|folio|octavo|quarto|plano]
        <<- /tu/ not value(<1, "|drive|plug|sit|") ->> \1-\2                # Il manque un trait d’union.

    in $:N:m¬*
        <<- /tu/ not value(<1, "|drive|plug|sit|") -1>> un                  # Confusion possible : pour le déterminant désignant quelque chose, écrivez “un”.

TEST: Cet {{in folio}} est incroyable.
TEST: c’est {{in}} stage de réinsertion.
TEST: Dans ce drive in douze hommes mangent.


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

TEST: il a pris une balle dans l’{{arrière train}}.
TEST: Ce {{sans gêne}} mérite une bonne leçon
TEST: une {{sous culture}} passée de mode
TEST: Sans gêne, il avança parmi nous.


    pseudo  $:N¬*
        <<- /tu/ ->> pseudo-\2                                                                      # Si vous voulez évoquer le simulacre de “\2”, mettez un trait d’union.
        <<- ~1>> *

    ~^[pP]seudo-\w+
        <<- =>> define_from(\1, 7)

TEST: il n’avait contracté qu’un {{pseudo mariage}}.
................................................................................
TEST: je suis allé dans la {{grand’rue}}.                           ->> grand-rue



!!!! Virgules                                                                                     !!

__virg_dialogue_après_nom_propre__
    [<start>|,]  $:M¬:G  [/-je|/-tu|/-on|/-nous|/-vous|/-ils|/-elles|/VCimp]
        <<- /virg/ -2>> \2,                                                                         # Dialogue ? Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

TEST: {{Maria}} donnez-vous du temps ?
TEST: {{Marion}} passe-moi le sel.
TEST: {{Paul}} prends-lui la main.
TEST: Alexandre tient-il ses généraux ?
TEST: Alexandra vient-elle ?


__virg_dialogue_avant_nom_propre__
    /-les  $:M
        <<- /virg/ morph(\1, ":E", "", 0, -4) -1>> \1,                                              # Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

    [/-le|/-la]  $:M
        <<- /virg/ morph(\1, ":E", "", 0, -3) -1>> \1,                                              # Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

    /-COD-COI  $:M
        <<- /virg/ -1>> \1,                                                                         # Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

TEST: {{Oublie-les}} Clara.
TEST: viens et {{donne-le}} Paul.
TEST: {{donne-le-moi}} Camille.
TEST: donne-moi Alice.
TEST: Tape-toi Patrick.


__virg_après_verbe_COD__
    [le|la|l’|les]  $:Y  $:M
        <<- /virg/ -2>> \2,                                                                         # Une virgule est probablement souhaitable.

TEST: Tu vas les {{donner}} Rachel.
TEST: Il va la {{tuer}} Paul.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme s’évertuait à le dire Jacques Chirac.
TEST: Avancez comme sait le faire Patrick.
................................................................................
    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.

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

TEST: Je ne le {{croix}} pas
TEST: Je {{travail}}.                                       ->> travaille
TEST: Je vous {{tellement}} reconnaissant.
TEST: Je m’en {{fou}}.
TEST: Je soussigné, M. X., déclare que…
................................................................................
TEST: il s’est tu les jours après son agression.


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

TEST: tu {{croix}} que tu sais quelque chose, mais tu ne sais rien.
TEST: tu la {{croix}} idiote ?
TEST: Elles sont à tu et à toi.


................................................................................
    il  @:V¬:(?:3s|Ov)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3s"))
        -2>> =suggVerb(\2, ":3s")                                                                   # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ __also__ and morph(\2, ":3p") -1>> ils                                           # Accord avec “\2”.

    il  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3s|Ov)
    il  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3s|Ov)
    il  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        $:V¬:3s
    il  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            $:V¬:3s
    il  ?[ne|n’]¿  [lui|leur|y]                   en                         $:V¬:3s
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                                                      # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ morph(\-1, ":3p") -1>> ils                                                       # Accord avec “\-1”.

TEST: {{Il}} {{accusent}}.
TEST: il {{bus}} du vin.
TEST: Il {{pris}}.
TEST: Il {{rougis}}.
................................................................................
__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: C’en pouvait être effrayant.


__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’  ?en¿  >ê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’  ?en¿  $:V¬:V0e
        <<- /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
................................................................................
__conj_nous__
    <start>  nous  @:V¬:(?:G|Y|P|1p|3[sp]|Ov)
        <<- /conj/ not value(>1, "|je|tu|il|elle|on|nous|vous|ils|elles|")
        -3>> =suggVerb(\3, ":1p")                                                                   # Conjugaison erronée. Accord avec “nous”. Le verbe devrait être à la 1ʳᵉ personne du pluriel.

    [<start>|,]  nous  [ne|n’]    [le|la|l’|les|en|y]                                 @:V¬:(?:1p|Ov)
    [<start>|,]  nous  ?[ne|n’]¿  [me|m’|nous|vous|lui|leur]                          @:V¬:(?:1p|Ov)
    [<start>|,]  nous  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]  $:V¬:1p
    [<start>|,]  nous  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]      $:V¬:1p
    [<start>|,]  nous  ?[ne|n’]¿  [lui|leur]                     en                   $:V¬:1p
        <<- /conj/ --1>> =suggVerb(\-1, ":1p")                                                      # Conjugaison erronée. Accord avec “nous”. Le verbe devrait être à la 2ᵉ personne du pluriel.

TEST: Nous {{arriverez}} demain.
TEST: Nous {{travaillez}}.
TEST: nous {{donné}} trop de considération
TEST: nous {{avancez}}
TEST: Et, nous laissant étonnés d’être encore là sans y avoir rien compris,
................................................................................
__conj_vous__
    <start>  vous  @:V¬:(?:G|Y|P|2p|3[sp]|Ov)
        <<- /conj/ not value(>1, "|je|tu|il|elle|on|nous|vous|ils|elles|")
        -3>> =suggVerb(\3, ":2p")                                                                   # Conjugaison erronée. Accord avec “vous”. Le verbe devrait être à la 2ᵉ personne du pluriel.

    [<start>|,]  vous  [ne|n’]    [le|la|l’|les|en|y]                                 @:V¬:(?:2p|Ov)
    [<start>|,]  vous  ?[ne|n’]¿  [me|m’|nous|vous|lui|leur]                          @:V¬:(?:2p|Ov)
    [<start>|,]  vous  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]  $:V¬:2p
    [<start>|,]  vous  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]      $:V¬:2p
    [<start>|,]  vous  ?[ne|n’]¿  [lui|leur]                     en                   $:V¬:2p
        <<- /conj/ --1>> =suggVerb(\-1, ":2p")                                                      # Conjugaison erronée. Accord avec “vous”. Le verbe devrait être à la 2ᵉ personne du pluriel.

TEST: Vous {{arrivais}} trop tard.
TEST: vous ne l’{{avait}} pas vu.
TEST: je crois, vous m’{{avais}} trompé…
TEST: vous nous {{refuser}} le pardon.
TEST: Vous {{travaillons}}.
................................................................................
    ils  @:V¬:(?:3p|Ov)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3p"))
        -2>> =suggVerb(\2, ":3p")                                                                   # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ __also__ and morph(\2, ":3s") -1>> il                                            # Accord avec “\2”.

    ils  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3p|Ov)
    ils  ?[ne|n’]¿  [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3p|Ov)
    ils  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        $:V¬:3p
    ils  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            $:V¬:3p
    ils  ?[ne|n’]¿  [lui|leur]                     en                         $:V¬:3p
        <<- /conj/ --1>> =suggVerb(\-1, ":3p")                                                      # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ morph(\-1, ":3s") -1>> il                                                        # Accord avec “\-1”.

TEST: {{Ils}} {{vienne}} souvent.
TEST: Ils ne m’{{attends}} pas.
TEST: {{Ils}} vous le {{donne}}.
TEST: {{Ils}} {{faut}} venir.
................................................................................
__conf_ils_non_verbe__
    ils  @:¬:(?:V|Ov)|>ou/
        <<- /conf/ not morph(<1, ":3p") and not value(<1, "|t’|")
        -2>> =suggSimil(\2, ":(?:3p|Ov)", False)                                                    # Incohérence avec “ils” : “\2” devrait être un verbe, un pronom objet, un adverbe de négation, etc.

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

TEST: ils {{son}} du même bois.
TEST: Ils {{étai}} partie au {{restaurent}}
TEST: ils leur {{étai}} indifférent

................................................................................
TEST: il était très {{habille}}


#### Aussi +adj que soit +sujet

__conf_aussi_adj_que_soit__
    aussi  *WORD  [que|qu’]  [soi|>être|>soie]  [un|une|le|la|l’|les|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|certains|certaines]
    aussi  *WORD  [que|qu’]  [soi|>être|>soie]  $:M
        <<- /conf/ morph(\2, ":V1.*:Y", ":[AW]") -2>> =suggVerbPpas(\2)     # Confusion probable. Dans l’expression “aussi <X> que soit quelque chose ou quelqu’un”, <X> doit être un adjectif.
        <<- /conf/ \4 == "soie" or \4 == "soies" -4>> soit|soient           # Confusion. La soie est une matière filamenteuse produite par les chenilles et utilisée pour le textile.
        <<- /conj/ morph(\4, ":V", ":3[sp]") -4>> soit|soient               # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne.

TEST: Aussi {{borner}} que soit son père, il l’écoute toujours.
TEST: aussi stupides que {{soies}} ses réflexions, il n’en démordra jamais.
TEST: tu sais, aussi délirantes que {{sois}} ses déclarations, je suis persuadé qu’il y a un fond de vérité.
................................................................................
TEST: elle en a.
TEST: celle qui à contrario nous a foutu dans la merde.
TEST: ceux qui à Somewhere se sont si mal illustrés.
TEST: en à peine vingt ans


__conf_à_a_infinitif__
    a  $:Y¬:G
    a  [ne|n’|me|m’|te|t’|se|s’|en|y|lui|nous|vous]  $:Y
    a  [n’|m’|t’|s’|l’|les|lui|nous|vous|leur] [en|y] $:Y
    a  [le|la|l’|les|leur]  $:Y¬:N
        <<- /conf/ not value(<1, "|il|elle|on|n’|m’|t’|") and not before("(?i)\\bqu[e’] |n’(?:en|y) +$")
        -1>> à                                                      # Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0

TEST: scrupuleux {{a}} n’en toucher qu’une part infime.
TEST: Ne pas hésiter {{a}} {{demander}} des conseils.
TEST: Sébastien {{a}} {{demander}} des conseils.
TEST: {{A}} vous lire, on ne sait plus que penser de toutes ces histoires
................................................................................

TEST: c’est {{se a quoi}} il pensait qui le minait.
TEST: {{se à qui}} on pense


# ces / ses / c’est
__conf_ces_ses_c_est__
    [ses|ces] [à|au-dessus|avec|au|aux|comme|envers|contre|derrière|devant|par|pour|sans|sur]  $:D
    [ses|ces] [à|au-dessus|avec|au|aux|comme|envers|contre|derrière|devant|par|pour|sans|sur]  [que|qu’]
    [ses|ces] [à|au-dessus|avec|au|aux|comme|envers|contre|derrière|devant|par|pour|sans|sur]  [l’|d’]
    [ses|ces] [à|au-dessus|avec|au|aux|comme|envers|contre|derrière|devant|par|pour|sans|sur]  {pronom_obj}
    [ses|ces] @:D¬:[WA]
    [ses|ces] [que|qu’]
    [ses|ces] [l’|d’]
    [ses|ces] {pronom_obj}
................................................................................

# évidement / évidemment
__conf_évidemment_évidement__
    [/VCint|/VCimp]  ?[pas|plus|jamais|guère]¿  évidement
    [pas|plus] évidement
        <<- /conf/ --1>> évidemment                         # Confusion probable : l’évidement est l’action de vider quelque chose. L’adverbe s’écrit “évidemment”.|https://fr.wiktionary.org/wiki/évidemment

    [par|pour|sans] évidement [$:Y|ne|n’|me|m’|te|t’|se|s’]
        <<- /conf/ -2>> évidemment                          # Confusion probable : l’évidement est l’action de vider quelque chose. L’adverbe s’écrit “évidemment”.|https://fr.wiktionary.org/wiki/évidemment

    évidement
        <<- /conf/ morph(<1, ":V", ":A") ->> évidemment     # Confusion probable : l’évidement est l’action de vider quelque chose. L’adverbe s’écrit “évidemment”.|https://fr.wiktionary.org/wiki/évidemment

    [un|l’|cet]  évidemment  [<end>|,]
    [un|l’|cet]  évidemment  $:¬:A
        <<- /conf/ -2>> évidement                           # Confusion probable : “évidemment” est un adverbe. L’action de “vider” s’écrit “évidement”.|https://fr.wiktionary.org/wiki/évidement

TEST: Donne-moi {{évidement}} ça.
TEST: Elle sera {{évidement}} déçue de cette minable prestation de sa part.
TEST: pour {{évidement}} réussir
TEST: Un homme pas {{évidement}} intelligible.
TEST: L’{{évidemment}} du sanglier ne sera pas si facile.
................................................................................

# forcement / forcément
__conf_forcément_forcement__
    [/VCint|/VCimp]  ?[pas|plus|jamais|guère]¿  forcement
    [pas|plus] forcement
        <<- /conf/ --1>> forcément                          # Confusion probable : le forcement est l’action de forcer quelque chose. L’adverbe s’écrit “forcément”.|https://fr.wiktionary.org/wiki/forc%C3%A9ment

    [par|pour|sans] forcement [$:Y|ne|n’|me|m’|te|t’|se|s’]
        <<- /conf/ -2>> forcément                           # Confusion probable : le forcement est l’action de forcer quelque chose. L’adverbe s’écrit “forcément”.|https://fr.wiktionary.org/wiki/forc%C3%A9ment

    forcement
        <<- /conf/ morph(<1, ":V", ":A") ->> forcément      # Confusion probable : le forcement est l’action de forcer quelque chose. L’adverbe s’écrit “forcément”.|https://fr.wiktionary.org/wiki/forc%C3%A9ment

    [un|le|ce|au]  forcément  [<end>|,]
    [un|le|ce|au]  forcément  $:¬:A
        <<- /conf/ -2>> forcement                           # Confusion probable : “forcément” est un adverbe. L’action de “forcer” s’écrit “forcement”.|https://fr.wiktionary.org/wiki/forc%C3%A9ment

TEST: Viendra-t-il {{forcement}} demain.
TEST: sans {{forcement}} prendre la vie du bon côté
TEST: Elle sera {{forcement}} déçue de cette minable prestation de sa part.
TEST: Un homme pas {{forcement}} mauvais.
TEST: Le {{forcément}} du coffre ne sera pas si facile.
................................................................................
TEST: ces chiens te l’{{on}} {{donné}}
TEST: Qui {{on}} {{tant}} de malheurs !
TEST: Je voulais qu’on soit ensemble.
TEST: qui on blâme, ce soir ?


__conf_on_ont__
    [<start>|,|$:Cs] ?l’¿ (ont) [ne|n’|me|m’|te|se|s’]
    [<start>|,|$:Cs] ?l’¿ (ont) [lui|nous|vous] @:[123][sp]¬:G
    [<start>|,|$:Cs] ?l’¿ (ont) [leur|le|la|l’] @:[123][sp]¬:(?:G|[NA].*:[si])
    [<start>|,|$:Cs] ?l’¿ (ont) @:[123][sp]¬:[GQ]|>(?:envie|peine|affaire|hâte|force|recours|somme)/
        <<- /conf/ -1>> on                                          # Confusion probable : “ont” est une conjugaison du verbe avoir.

    [<start>|,|$:Cs] ?l’¿ ont t’
        <<- /conf/ not value(>1, "|il|ils|elle|elles|") --2>> on    # Confusion probable : “ont” est une conjugaison du verbe avoir.

    ~-ont$
        <<- /conf/ ->> =\1[:-1]                                     # Incohérence : “ont” est une forme conjuguée du verbe “avoir” (par exemple: “ils ont”). Pour le pronom personnel, écrivez “on”.

    [<start>|,]  *WORD  ont
        <<- /conf/ space_after(\2, 1, 1) and not value(\2, "|soit|") and morph(\2, ":3s") -2:3>> \2-on
................................................................................
    au moment ou
    jusqu’ ou
    par ou
    d’ ou
        <<- /conf/ --1>> où                                 # Confusion. La conjonction “ou” signale une alternative. Pour identifier un lieu ou un temps, écrivez “où”.

    ou et [comment|que|qui|quand|pourquoi|quel|quels|quelle|quelles]
    ou et $:R
        <<- /conf/ -1>> où                                  # Confusion. La conjonction “ou” signale une alternative. Pour identifier un lieu ou un temps, écrivez “où”.

    vers ou
        <<- /conf/ not morph(<1, ":D") -2>> où              # Confusion probable. La conjonction “ou” signale une alternative. Pour identifier un lieu ou un temps, écrivez “où”.

    [au|le|des] cas ou
        <<- /conf/ -3>> où                                  # Confusion. La conjonction “ou” signale une alternative. Pour identifier un lieu ou un temps, écrivez “où”.
................................................................................

TEST: Il ne frappait que {{pare a coup}}.
TEST: Elle travaillait par à-coups, après de longues périodes de repos.


# par-dessus / pardessus
__conf_par_dessus__
    pardessus  [bord|$:D]
        <<- /conf/ not morph(<1, ":D.*:[me]|>(?:grande|petite)/")
        -1>> par-dessus                                                     # Confusion probable. Un pardessus est un vêtement. Pour la préposition, écrivez “par-dessus”.

TEST: {{Pardessus}} les montagnes.
TEST: Il passa {{pardessus}} les collines.
TEST: Mets ton pardessus ce matin.

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

TEST: Ils ont découvert le {{poteau rose}}.


# prêt / près / pré
__conf_prêt_près_pré__
    près à [ne|n’|me|m’|te|t’|se|s’]
    près à ?[le|la|l’|les|en|nous|vous|lui|leur|y|tout]¿ $:Y
    près à [nous|vous]     [le|la|l’|les|en|y]           $:Y
    près à [le|la|l’|les]  [lui|leur|en|y]               $:Y
    près à [lui|leur|y]    en                            $:Y
        <<- /conf/ not value(<1, "|peu|de|") and not before("(?i)\\bau plus $")
        -1>> prêt|prêts                                                     # Confusion probable. Être près de (faire) quelque chose. Prêt à faire quelque chose.

TEST: Il est {{près}} à les aider                               ->> prêt|prêts
TEST: Il a obtenu un prêt de Patrick
TEST: Il a obtenu un prêt de Le Drian
TEST: les prêts de BMW ou de Mercedes pour visiter la ville
................................................................................
    de plus [>prêt|>pré]
        <<- /conf/ --1>> près                                               # Confusion probable. Être prêt(e) à faire quelque chose. Être près de quelque chose. Le pré est un champ d’herbes.

    [très|trop] [>prêt|>pré]
        <<- /conf/ -2>> près                                                # Confusion probable. Être prêt(e) à faire quelque chose. Être près de quelque chose. Le pré est un champ d’herbes.

    >prêt [de|d’] [ne|n’|me|m’|te|t’|se|s’]
    >prêt [de|d’] ?[le|la|l’|les|en|nous|vous|lui|leur|y|tout]¿ $:Y
    >prêt [de|d’] [nous|vous]     [le|la|l’|les|en|y]           $:Y
    >prêt [de|d’] [le|la|l’|les]  [lui|leur|en|y]               $:Y
    >prêt [de|d’] [lui|leur|y]    en                            $:Y
        <<- /conf/ -1>> près                                                # Confusion probable. Être près de (faire) quelque chose. Prêt à faire quelque chose.

    >prêt [de|d’] [toi|vous|lui|elle|eux|elles|$:M]
        <<- /conf/ not morph(<1, ":D") and not before("(?i)\\b(obten|obt[iî])")
        -1>> près                                                           # Confusion probable. Être près de (faire) quelque chose. Prêt à faire quelque chose.

    si [>prêt|>pré] [du|de|d’|des]
        <<- /conf/ -2>> près                                                # Confusion probable. Être près de (faire) quelque chose. Prêt à faire quelque chose.

    >raser de ?très¿ [>prêt|>pré]
................................................................................
TEST: Il partirait en guerre quand bien même devrait-il être tout seul.
TEST: Elle veut savoir combien même si ça ne lui est d’aucune utilité immédiate.


# quel que soit
__conf_quel_que_soit__
    >quelque [soi|sois|soit|soient]
    >quelque >soie $:D
        <<- /conf/ -1:2>> quel que soit|quelle que soit|quels que soient|quelles que soient         # Confusion : “quelque” est un déterminant.|https://fr.wiktionary.org/wiki/quel_que_soit

TEST: {{quelques soient}} les avantages d’un correcteur…


# quel que puisse
__quel_que_puisse__
................................................................................
TEST: Nous allons le {{résonner}}.


# repère /  repaire
__conf_repaire_repère__
    >repère  [dangereux|>sécurisée]
    >repère  [de|du|d’|des]  [>assassin|>bandit|>brigand|>cambrioleuse|>corsaire|>criminelle|>dragon|>escroc|>fanatique|>filou|>flibustière|>flibuste|>gangster|>lionne|>louve|>mafiosi|>mafioso|>malfaitrice|>malfrat|>maraudeuse|>monstre|>murène|ours|>pick-pocket|>pickpocket|>pillarde|>pirate|>scélérate|>taupe|>tigre|>truande|>voleuse|>voyou|>yéti]
    >repère  de  $:D         [>assassin|>bandit|>brigand|>cambrioleuse|>corsaire|>criminelle|>dragon|>escroc|>fanatique|>filou|>flibustière|>flibuste|>gangster|>lionne|>louve|>mafiosi|>mafioso|>malfaitrice|>malfrat|>maraudeuse|>monstre|>murène|ours|>pick-pocket|>pickpocket|>pillarde|>pirate|>scélérate|>taupe|>tigre|>truande|>voleuse|>voyou|>yéti]
        <<- /conf/ morph(<1, ":D") -1>> =\1.replace("è", "ai").replace("È", "AI")
        # Confusion probable. Un répère est une marque laissée pour retrouver quelque chose. Pour le lieu où se cachent des personnes ou des animaux, écrivez “repaire”.|https://fr.wiktionary.org/wiki/repaire

    [dans|en] [mon|ton|son|notre|votre|leur] repère
    à l’intérieur de [mon|ton|son|notre|votre|leur] repère
    à l’intérieur du repère
    au sein de [mon|ton|son|notre|votre|leur] repère
................................................................................
TEST: Elles ont préparé un {{riz}} de veau.
TEST: Elle adore le {{ri}} au lait.
TEST: Tous adorent le {{ri}} basmati.


# saint / sain / sein / seing
__conf_saint_sain_sein_seing__
    [sain|sains|>sein]  $:M1
        <<- /conf/ morph(<1, ":(?:R|[123][sp])|<start>") -1>> saint
        # Confusion : “sain” signifie “en bonne santé”, le sein est un organe thoracique féminin. Pour évoquer ce qui est “sanctifié”, écrivez “saint”.|https://fr.wiktionary.org/wiki/saint

    [en|dans|sur] [mon|ton|son] [sain|saint]
        <<- /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

................................................................................
    [>sceau|sot|sots] d’ [acier|avoine|eau]
    [>sceau|sot|sots] [d’|de] [bois|boue|ciment|glace|>glaçon|>gravat|>gravier|>gravillon|plage|lait|maçon|nettoyage|peinture|sable]
    [>sceau|sot|sots] à [glace|champagne|>glaçon]
    [>sceau|sot|sots] en [acier|bois|cuivre|fer|inox|métal|plastique|polypropylène|zinc]
    [>sceau|sot|sots] [rempli+ses|percé+ses|>vide|troué+ses|renversé+ses|plein+s]
        <<- /conf/ -1>> seau|seaux                  # Confusion probable. Pour désigner un récipient, écrivez “seau”.|https://fr.wiktionary.org/wiki/seau

    dans $:D [>sceau|sot|sots]
        <<- /conf/ -3>> seau|seaux                  # Confusion probable. Pour désigner un récipient, écrivez “seau”.|https://fr.wiktionary.org/wiki/seau

    [>seau|sot|sots] du [roi|secret|ministre|ministère|duc|baron|cardinal|pape]
    [>seau|sot|sots] de la [reine|ministre|duchesse|baronne]
    [>seau|sot|sots] de l’ [État|évêque|université|académie]
        <<- /conf/ -1>> sceau|sceaux                # Confusion probable. Pour désigner un cachet par lequel on scelle quelque chose, écrivez “sceau”.|https://fr.wiktionary.org/wiki/sceau

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


# sur / sûr
__conf_sûr_sur__
    sur et @¬:R
    sur [que|qu’]
    sur [de|d’] {pronom_obj}
    sur [de|d’] $:M
    sur [de|d’] [ne|n’|me|m’|te|t’|se|s’]
    sur [de|d’] [le|les|mon|ton|son|ma|ta|sa|mes|tes|ses|ce|cet|cette|ces|cela|ceci|ça]
    sur [de|d’] [la|l’] $:Y
    sur [de|d’] $:Y
        <<- /conf/ -1>> sûr
        # Confusion probable : “sur” est une préposition ou un adjectif signifiant acide ou aigre ; utilisez “sûr” pour certain, vrai ou sans danger.|http://fr.wiktionary.org/wiki/sur

    [sure|surs|sures] [de|d’|que|qu’]
        <<- /conf/ -1>> =\1.replace("u", "û").replace("U", "Û")
        # Confusion probable : “sur” un adjectif signifiant acide ou aigre ; utilisez “sûr” pour certain, vrai ou sans danger.|http://fr.wiktionary.org/wiki/sur

................................................................................
        -1>> voire                      # Confusion probable : “voir” est un verbe concernant la perception visuelle. Pour signifier “et même possiblement”, écrivez “voire”.|https://fr.wiktionary.org/wiki/voire

    [comme|lorque|puisque|quand|que|quoique|si]                                 voire
    [ni|par|pour|sans]                                                          voire
    [>aller|>falloir|>pouvoir|>vouloir]  ?[guère|jamais|pas|plus|point|rien]¿   voire
        <<- /conf/ --1>> voir           # Confusion probable : “voire” signifie “et même possiblement”. Pour le verbe, écrivez “voir”.|https://fr.wiktionary.org/wiki/voire

    [et|ou] voire  $:D
        <<- /conf/ -2>> voir            # Confusion probable : “voire” signifie “et même possiblement”. Pour le verbe, écrivez “voir”.|https://fr.wiktionary.org/wiki/voire

TEST: Elles sont fatiguées, {{voir}} épuisées.
TEST: Ce serait pour aider, ainsi que {{voire}} l’avancement du projet.
TEST: Je ne vais jamais {{voire}} ces gens-là.
TEST: penser juste et {{voire}} la vérité.
TEST: Elles vont voir rouge en apprenant cet échec.
................................................................................
    sans mot dire
    sans nul doute
    sans pour autant y [parvenir|réussir|réfléchir|songer|penser]
    sans pour autant y faire attention
    sans pour autant y prendre [garde|goût|gout]
    sans [que|qu’] je le [sache|susse]
    sans [que|qu’] tu le [saches|susses]
    sans [que|qu’] [il|elle|on|$:M] le [sache|sût]
    sans [que|qu’] nous le [sachions|sussions]
    sans [que|qu’] vous le [sachiez|sussiez]
    sans [que|qu’] [ils|elles] le [sachent|sussent]
    sans queue ni tête
    sans raison apparente
    sans répit
    sans vouloir [me|m’|te|t’|lui|nous|vous|leur] manquer de respect
................................................................................
        <<- ~2>> *

    à grand renfort     [de|d’]
    à grands coups      [de|d’]
    à seule fin         [de|d’]
        <<- ~2:3>> *

    à travers $:D
    à travers >différente
        <<- ~2>> *

    ainsi
        <<- not value(>1, "|que|qu’|") ~>> *

    au [bout|courant|cours|détriment|gré|lieu|long|large|milieu|profit|sein|sortir|sujet|vu] [de|du|d’|des]
................................................................................
    [celui|celle|celles|ceux]   d’ entre [nous|vous|eux|elles]
    [chacun|chacune]            d’ entre [nous|vous|eux|elles]
        <<- ~2:0>> *

    ceux et [celle|celles] qui
        <<- ~2:3>> *

    comme tant d’ autres  $:R
        <<- ~1:4>> *

    compte tenu [de|des|du]
        <<- ~1:2>> avec

    depuis [,|<end>]
        <<- ~1>> *
................................................................................

    @:M[12]  [Ier|Iᵉʳ]
        <<- \2.istitle() ~2:0>> *

    @:M[12]  [Le|La|von|van|Mac|Mc|De|Du|D’]  *WORD
        <<- \3.istitle() ~2:0>> *

    [de|d’]  $:M  [et|ou]  [de|d’]  $:M
    [de|d’]  $:M
        <<- ~>> *

    entre  $:M  et  $:M
        <<- ~>> *

    entre  $:N  et  $:N
        <<- \2.istitle() and \4.istitle() ~>> *

    en  $:MP
        <<- ~>> *

    [le|ce|du]  [baron|docteur|député|duc|frère|ministre|prince|professeur|président|roi|sénateur|mir]  @:M[12]
    [la|cette]  [baronne|docteur|docteure|députée|duchesse|ministre|sœur|princesse|présidente|professeure|reine|sénatrice]  @:M[12]
        <<- ~3>> *

    [Mr|Mlle|Mme|Mgr|miss]  ~^[A-ZÉÈÊ]
        <<- ~2>> *

    $:Cs  ~^[A-ZÉÈÊ]  et  [moi|toi|lui|elle|nous|vous|eux|elles]
        <<- morph(\2, ":M") and not before("\\b(?:plus|moins|aussi) .* que +$")
        ~2:4>> =rewriteSubject(\2,\4) + "||"

    <start>  ~^[A-ZÉÈÊ]  et  [moi|toi|lui|elle|nous|vous|eux|elles]
        <<- morph(\2, ":M")
        ~2:0>> =rewriteSubject(\2,\4) + "||"

................................................................................
    >avoir  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    >avoir  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    >avoir  [pas|jamais|plus|guère|point]  quartier libre
    >avoir  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- ~3:0>> ␣
        <<- =>> define(\3, [":LV"])

    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|soif|vent]
    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  @:(?:Q|V1.*:Y)
        <<- ~2:-2>> *

    n’  >avoir  que  $:Q
        <<- ~3>> *

    n’  >avoir  que  $:W  $:Q
        <<- ~3:4>> *

    n’  >avoir  que  [peu|très|trop]  $:W  $:Q
        <<- ~3:5>> *

    /VCint  [pas|jamais|plus|guère|point]
    /VCint  ?[pas|jamais|plus|guère|point]¿  en partie
    /VCint  ?[pas|jamais|plus|guère|point]¿  tous [deux|trois]
    /VCint  ?[pas|jamais|plus|guère|point]¿  somme toute
        <<- morphVC(\1, ":V0a") ~2:0>> *
................................................................................

    /VCint  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|soif|vent]
    /VCint  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  @:(?:Q|V1.*:Y)
        <<- morphVC(\1, ":V0a") ~2:-2>> *


__purge_après_verbe__
    $:V  ?pas¿  jour et nuit
    $:V  ?pas¿  nuit et jour
    $:V  quand même pas
    $:V  [moi|toi|lui|elle|nous|vous|eux|elles]  aussi
    $:V  même
    @:[123]  bien [entendu|sûr]
    @:[123]  ?pas¿  juste
    @:[123]  ?pas¿  ensemble
    @:[123]  ?pas¿  ?[fort|très|super]¿  [bien|mal]
        <<- ~2:0>> *

    [>pouvoir|>savoir|>vouloir] mieux que personne ?$:W¿ @:[YG]
    >avoir                      mieux que personne ?$:W¿ @:[QYG]
    >être                       mieux que personne ?$:W¿ @:[QAYG]
        <<- ~2:-2>> *

    >avoir  pour [lui|nous|vous|longtemps]  ?$:W¿  $:Q
    >être   pour [lui|nous|vous|longtemps]  ?$:W¿  @:[QA]
        <<- ~2:-2>> *


__purge_adverbes_de_négation__
    jamais
        <<- ~>> *

................................................................................
        <<- ~1:2>> *


__purge_adverbes__
    [assez|trop]  ~ment$
        <<- morph(\2, ":W", ":3p") ~>> *

    @:[NAQ]  [le|la]  [plus|moins]  ~.ment$  $:A
        <<- morph(\4, ":W", ":A") ~2:4>> *

    complètement
        <<- not morph(<1, ":D.*:m") ~>> *

    ~.ment$  ?[parlant|pas]¿
        <<- morph(\1, ":W", ":(?:3p|N)") ~>> *
................................................................................
TEST: {{Quelques}} deux cents hommes.                         ->> Quelque
TEST: les quelque 2,5 millions d’habitants
TEST: les quelque 12 000 stations-service


## Nombres
__gn_nombre_lettres_1m__
    $:B:e:p  *WORD
        <<- /gn/ not value(\1, "|neuf|mille|") and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") )
            or \2 in aREGULARPLURAL) and not re.search("^[IVXLDM]+$", \1)
        -2>> =suggPlur(\2)                                                                  # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.

    neuf  *WORD
        <<- /gn/ ( morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not value(\2, "|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") )
            or \2 in aREGULARPLURAL
................................................................................
TEST: Je connais {{pleins}} de gens
TEST: Les avocats sont pleins de nutriments.


# point / poing
__conf_poing_point__
    [>arme|>coup|>oiseau] de >point
    [>taper|>fermer|>ouvrir|>blesser|>serrer|>desserrer] $:D >point
        <<- /conf/ -3>> =\3.replace("t", "g").replace("T", "G")             # Confusion probable. Une main fermée s’écrit “poing”.|https://fr.wiktionary.org/wiki/poing

    >point [américain|américains|>serrer|>desserrer|>lever|>casser|>lier]
        <<- /conf/ morph(\2, ":A") and morph(<1, ":D")
        -1>> =\1.replace("t", "g").replace("T", "G")                        # Confusion probable. Une main fermée s’écrit “poing”.|https://fr.wiktionary.org/wiki/poing

TEST: une arme de {{point}}
................................................................................
TEST: il a l’{{aire}} d’un plouc.
TEST: on s’arrêtera sur l’{{air}} d’autoroute
TEST: baptême de l’{{aire}}


# auspice / hospice
__conf_auspices_hospices__
    sous [les|de|des|ces] ?*WORD¿ hospices
        <<- /conf/ --1>> auspices       # Confusion probable. L’hospice est un centre de soins.|https://fr.wiktionary.org/wiki/auspice

    [>être|>aller|>rester|>demeurer|>partir]  [à|dans|de]  l’ auspice
        <<- /conf/ -4>> hospice         # Confusion. Les auspices sont des présages, des devins ou, au sens moderne, les circonstances.|https://fr.wiktionary.org/wiki/auspice

    dans [un|cet|les|des|ces|quel|quels] >auspice
        <<- /conf/ -3>> =\3.replace("auspice", "hospice")
        # Confusion. Les auspices sont des présages, des devins ou, au sens moderne, les circonstances.|https://fr.wiktionary.org/wiki/auspice
................................................................................
    >bite du quai
    >bite sur le quai
    >bite d’ amarrage
        <<- /conf/ -1>> =\1.replace("ite", "itte")                      # Confusion. Bitte d’amarrage.

    [ma|ta|sa|notre|votre|nos|vos|leur|leurs|grande+s|grosse+s|petite+s|longue+s|>énorme|>minuscule|>sale] >bitte
    >être [une|des] >bitte
    [>aimer|>adorer|>astiquer|>avaler|>bouffer|>branler|>fourrer|>lécher|>mettre|>mordre|>pomper|>sucer] $:D >bitte
        <<- /conf/ --1>> =\-1.replace("itte", "ite")                    # Confusion probable. Si vous parlez de pénis, écrivez “bite” (terme argotique).|https://fr.wiktionary.org/wiki/bite

    >bitte [>circoncise|>dégueulasse|>dure|>molle|>puante|>raide|>répugnante|>sale|vidé+ses]
        <<- /conf/ -1>> =\1.replace("itte", "ite")                      # Confusion probable. Si vous parlez de pénis, écrivez “bite” (terme argotique).|https://fr.wiktionary.org/wiki/bite

TEST: les mouettes sur les {{bites}} d’amarrage.
TEST: on se fout de savoir ce qu’ils font avec leurs {{bittes}}.
................................................................................
TEST: il ne s’est pas juste montré
TEST: il s’était des journées entières consacré à son jeu favori.


# ce / se
__conf_ce_se_verbe__
    [<start>|,] se [ne|n’] [>être|>devoir|>pouvoir]
    [<start>|,] se [sera|serait|seraient|sont|seront|fut|fût|furent|fussent] $:D
    [<start>|,] se >devoir être
    [<start>|,] se >pouvoir être
        <<- /conf/ -2>> ce                              # Confusion probable. Si vous voulez dire, “ceci”, “cela” ou “ça”, écrivez “c’”.||http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=2440

TEST: {{se}} n’est pas pour cette raison que j’ai abandonné mes études.
TEST: grâce à quoi, {{se}} put être fait dans les règles.
TEST: {{se}} serait les pires vacances de sa vie
TEST: des pans entiers de l’univers — pour reprendre l’expression d’Orwell — se sont d’ores et déjà volatilisés
TEST: À la pause, ils se sont tous les deux assis à l’arrière, et j’ai vu progressivement leurs corps se rapprocher.


# coli / colis
__conf_colis_coli2__
    [>affranchir|>attendre|>dédouaner|>dédouanement|>délivrer|>déposer|>égarer|>emballage|>emballer|>envoyer|>envoi|>expédier|>réexpédier|>expédition|>réexpédition|>fermer|>refermer|>livrer|>livraison|>ouvrir|>rouvrir|>ouverture|>réouverture|>perdre|>perte|>pesage|>peser|>porter|>réception|>recevoir|>transporter|>transport|>suivre|dans] $:D coli
        <<- /conf/ --1>> colis                          # Confusion probable. Si vous parlez d’un paquet, écrivez “colis”.|https://fr.wiktionary.org/wiki/colis

    coli [>délivrer|>égarer|>envoyer|>livrer|>oublier|>suspecte|>piéger|>neutraliser]
        <<- /conf/ morph(\2, ":A") -1>> colis           # Confusion probable. Si vous parlez d’un paquet, écrivez “colis”.|https://fr.wiktionary.org/wiki/colis

TEST: on va expédier ce {{coli}} vite fait bien fait.
TEST: un {{coli}} oublié à la gare.
................................................................................
        <<- /conf/ -3>> côlon                           # Confusion : le côlon est un segment du gros intestin, le colon colonise.

TEST: Il a le cancer du {{colon}}.


# censé / sensé
__conf_censé_sensé__
    >être >sensée [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]        $:Y
    >être >sensée ?[ne|n’]¿ [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]    $:Y
    >être >sensée ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y]           $:Y
    >être >sensée ?[ne|n’]¿ [le|la|l’|les]                [lui|leur|en|y]               $:Y
    >être >sensée ?[ne|n’]¿ [lui|leur]                    en                            $:Y
    >être >sensée $:Y
    >être >sensée ne [pas|plus|jamais|rien|guère|point]
        <<- /conf/ not value(<1, "|l’|un|les|des|ces|")
        -2>> =\2.replace("sens", "cens").replace("Sens", "Cens").replace("SENS", "CENS")            # Confusion : “sensé” se dit de quelqu’un de “bon sens”. Pour ce qui est attendu, écrivez “censé”.

TEST: Ils sont {{sensés}} y parvenir.
TEST: Elles étaient {{sensés}} m’y conduire
TEST: il est {{sensé}} prendre l’avion demain
................................................................................
TEST: Quellle est la dernière en {{datte}}
TEST: Elles étaient à cette date cultivées à l’air libre.
TEST: De fraîche date…


# délacer / délasser
__conf_délacer_délasser__
    >délasser  $:D  [>basket|>camisole|>chaussure|>corsage|>corset|>godasse|>godillot|>grolle|>jupe|>pompe|>lacet|>ranger|>robe|>soulier|>voile]
        <<- /conf/ -1>> =\1.replace("ssa", "ça").replace("ss", "c")                                 # Confusion probable. Pour défaire des lacets, des nœuds, etc., écrivez “délacer”.

    [>basket|>camisole|>chaussure|>corsage|>corset|>godasse|>godillot|>grolle|>jupe|>pompe|>lacet|>ranger|>robe|>soulier|>voile]  >délasser
        <<- /conf/ morph(\-1, ":Q") --1>> =\1.replace("ssa", "ça").replace("ss", "c")               # Confusion probable. Pour défaire des lacets, des nœuds, etc., écrivez “délacer”.

TEST: Bon sang, il faut que tu {{délasses}} tes chaussures avant d’essayer de les enlever.
TEST: Ses souliers {{délassés}} la firent tomber.
................................................................................
__conf_enduire_induire__
    >enduire en [>erreur|>tentation]
        <<- /conf/ -1>> =\1.replace("end", "ind").replace("End", "Ind").replace("END", "IND")       # Confusion probable. “Enduire” signifie “appliquer un enduit”.|https://fr.wiktionary.org/wiki/induire

    en >avoir enduit [que|qu’]
        <<- /conf/ -3>> =\3.replace("end", "ind").replace("End", "Ind").replace("END", "IND")       # Confusion probable. “Enduire” signifie “appliquer un enduit”.|https://fr.wiktionary.org/wiki/induire

    >induire $:D¬>de/ [bras|>façade|>cuisse|>fond|>jambe|>lèvre|>main|>mollet|>mur|>ongle|>paroi|>peau|>pied|>plafond|>porte|>sol|>toit|>tuile|>verre|>visage]
    >induire [de|le|ce|cet] [beurre|caramel|ciment|chocolat|gel|goudron|miel|mortier|nutella|plâtre|rouge|téflon|sang|savon|suif|vernis]
    >induire [de|la|cette] [boue|chaux|cire|colle|crême|couche|glu|graisse|lotion|pâte|peinture|pommade|résine|salive|vaseline]
        <<- /conf/ -1>> =\1.replace("ind", "end").replace("Ind", "End").replace("IND", "END")       # Confusion probable. Pour “appliquer un enduit”, écrivez “enduire”.|https://fr.wiktionary.org/wiki/induire

TEST: Il l’avait {{enduit}} en erreur par des affirmations calomnieuses.    ->> induit
TEST: Elle en avait {{enduit}} qu’il y avait anguille sous roche.           ->> induit
TEST: Nous avons {{induit}} la façade.                                      ->> enduit
................................................................................
TEST: {{en faite}}, on en voit partout, ça grouille.
TEST: ils sont {{en faîtes}} partis à la montagne.
TEST: Aujourd’hui, n’en faites pas trop.


# filtre / philtre
__conf_filtre_philtre2__
    >boire $:D >filtre
        <<- /conf/ -3>> philtre|philtres
        # Confusion probable. Un filtre est un intrument de filtrage, un philtre est une boisson (magique) procurant des effets sur le buveur.|https://fr.wiktionary.org/wiki/philtre

TEST: il but un {{filtre}}.


# flanc / flan
__conf_flanc_flan2__
    >blesser au flan
    [>attaquer|>contre-attaquer] ?[sur|sous|à|contre]¿ $:D >flan
        <<- /conf/ --1>> =\-1.replace("n", "nc").replace("N", "NC")         # Confusion probable. Le flan est une pâtisserie. Pour évoquer un côté, une partie latérale, écrivez “flanc”.

TEST: Il avait été blessé au {{flan}}.
TEST: Elle lança une contre-attaque sur son {{flan}}.


# flamant rose
................................................................................

TEST: Une {{goûte}} de pluie
TEST: tu sais, les {{goutes}} de pluie, ça mouille.
TEST: Des gouttes de pluie.


__conf_goûter_goutter_dégoûter_dégoutter__
    >goutter ?à¿ $:D [>biscuit|>bière|>bon|>bonbon|>breuvage|>burger|>café|>cidre|>cocktail|>chocolat|>crêpe|>cru|>délice|>délicieuse|>délicieuse|>dessert|>fameux|>fameuse|>féculent|>fromage|>fruit|>gâteau|>hamburger|>légume|>nourriture|paradis|>pâte|>pain|>plat|>pâtisserie|>poisson|>poulet|>recette|repas|>sandwich|>soupe|>tarte|>tartelette|>sauce|>succulente|>thé|>viande|>vin|>yaourt|>yoghourt]
        <<- /conf/ -1>> =\1.replace("outt", "oût").replace("OUTT", "OÛT")
        # Confusion : “goutter” signifie “couler goutte à goutte”. Pour l’usage du goût, écrivez “goûter”.|https://fr.wiktionary.org/wiki/go%C3%BBter

    [>chiotte|>clim|>climatisation|>chauffe-eau|>douche|>eau|>évier|>lavabo|nez|>motrice|>parapluie|>plafond|>pluie|>robinet|>sang|>sueur|>toilette|>toit|>tuyau|>tuyauterie] ?[ne|n’]¿ [>goûter|>gouter|>dégoûter|>dégouter]
        <<- /conf/ --1>> =\-1.replace("oût", "outt").replace("OÛT", "OUTT").replace("out", "outt").replace("OUT", "OUTT")
        # Confusion : “goûter” signifie utiliser le sens du goût. Pour ce qui s’écoule goutte à goutte, écrivez “goutter”.|https://fr.wiktionary.org/wiki/goutter

................................................................................
    [>lieue|lieus] [>insolite|>accessible|>accueillante|>inaccessible|>inexplorée|>lointaine|>louche|>proche|>touristique|saint|saints|>connu|>inconnue|>mythique|>publique|prestigieux|>romantique|>stratégique|>historique|où|>humide|sec|secs]
    [>lieue|lieus] de [>communication|>concert|>conférence|>contemplation|>culte|>chasse|>détente|>détention|>départ|>méditation|>mémoire|>pouvoir|>prière|>prostitution|>sépulture|repos|>refuge|>stockage|>travail|>vacance|>spectacle|>conférence|>rassemblement|>sortie|>stationnement|>rencontre|>vacance|>villégiature]
        <<- /conf/ -1>> lieu|lieux                              # Confusion probable. Pour désigner un endroit, écrivez “lieu(x)”.|http://fr.wiktionary.org/wiki/lieu

    [>lieue|lieus] [>aménager|>abandonner|>insolite|>éloigner|>réserver|>sacrer|>connaître|>méconnaître|>privilégier|>priver]
        <<- /conf/ morph(\2, ":Q") -1>> lieu|lieux              # Confusion probable. Pour désigner un endroit, écrivez “lieu(x)”.|http://fr.wiktionary.org/wiki/lieu

    [>être|>demeurer|>déménager|>habiter|>trouver|>situer|>rester|>demeurer|>demeure|>vivre]  à  [quelques|plusieurs|maintes|*NUM|$:B]  [lieux|lieus]
        <<- /conf/ --1>> lieues                                 # Confusion probable. Pour désigner une distance, écrivez “lieues”.|http://fr.wiktionary.org/wiki/lieue

    [>être|>demeurer|>déménager|>habiter|>trouver|>situer|>rester|>demeurer|>demeure|>vivre]  à  des  [lieux|lieus]
        <<- /conf/ space_after(\2, 1, 4) --1>> lieues           # Confusion probable. Pour désigner une distance, écrivez “lieues”.|http://fr.wiktionary.org/wiki/lieue

    *NUM >lieu sous [la|les] >mer
    $:B  >lieu sous [la|les] >mer
        <<- /conf/ -2>> lieues                                  # Confusion. Pour désigner une distance, écrivez “lieue(s)”.|http://fr.wiktionary.org/wiki/lieue

    [lieux|>lieue] [>jaune|>noire|>mordre]
        <<- /conf/ -1>> lieu|lieus                              # Confusion probable. Si vous parlez du poisson, écrivez “lieu(s)”.|http://fr.wiktionary.org/wiki/lieu

    >pêche [aux|des] [lieux|lieues]
    >chair des [lieux|lieues]
................................................................................
TEST: Échec et {{mât}}
TEST: le grand {{mat}}
TEST: {{Mat}} de misaine


# mâter / mater
__conf_mater_mâter__
    >mâter  $:D  [>adversaire|>armée|>cavalière|>cheval|>chienne|>conne|>connard|>connasse|>cul|>dame|>enfoirée|>emmerdeuse|>enfant|>ennemie|>enculée|>femme|>fesse|>fille|fils|>folle|>foule|>gamine|>garçonne|>homme|>horde|>incendie|>insurrection|>jument|>lionne|>nation|>peuple|>pion|>pute|>rebelle|>rebellion|>reine|>roi|>sein|>salope|>tigresse|>tour|>troupe]
        <<- /conf/ -1>> =\1.replace("ât", "at").replace("ÂT", "AT")
        # Confusion. “Mâter” signifie “dresser un mât”. Si vous voulez dire “dompter” (ou argotiquement “regarder”), écrivez “mater”.|https://fr.wiktionary.org/wiki/mater

    >mâter en [*NUM|$B] coups
        <<- /conf/ -1>> =\1.replace("ât", "at").replace("ÂT", "AT")
        # Confusion. “Mâter” signifie “dresser un mât”. Si vous voulez dire “dompter” ou “mettre en échec”, écrivez “mater”.|https://fr.wiktionary.org/wiki/mater

    >mater  $:D  [>aviron|>bateau|>canot|>catamaran|>goélette|>navire|>trimaran|>vaisseau|>voilier]
        <<- /conf/ -1>> =\1.replace("ât", "at").replace("ÂT", "AT")
        # Confusion. “Mater” signifie “dompter” ou (argotiquement) “regarder”. Si vous voulez dire “dresser un mât”, écrivez “mâter”.|https://fr.wiktionary.org/wiki/mâter

TEST: Elle va {{mâter}} ces emmerdeurs en moins de temps qu’il ne faut pour le dire.
TEST: il peut {{mâter}} en 3 coups
TEST: On va bientôt {{mater}} l’navire, p’tit.

................................................................................
# panser / penser
__conf_panser_penser__
    >penser  *WORD  [>animal|>blessure|>blessée|bras|>chatte|>cheval|>chienne|>cheville|>cœur|>crâne|>cuisse|>doigt|>épaule|>jambe|>main|>malade|>patte|>pied|>plaie|>poignet|>tête]
        <<- /conf/ morph(\2, ":D", ">de/") -1>> =\1.replace("en", "an").replace("EN", "AN")
        # Confusion probable. Pour évoquer les soins prodigués, écrivez “panser”.|https://fr.wiktionary.org/wiki/panser

    >panser à autre chose
    >panser à $:D [>amie|>bébé|>chienne|>chatte|>cul|>descendante|>descendance|>enfant|>famille|>femme|>fesse|>fille|>garçon|>héritage|>héritière|>leçon|>mari|>maîtresse|>maitresse|>parent|>voisin]
    >panser [au|aux] [>amie|>bébé|>chienne|>chatte|>cul|>descendante|>descendance|>enfant|>famille|>femme|>fesse|>fille|>garçon|>héritage|>héritière|>leçon|>mari|>maîtresse|>maitresse|>parent|>voisin]
    >panser à [dieu|moi|toi|lui|elle|nous|vous|eux|elles|$:M]
    >panser à [ne|n’|me|m’|te|t’|se|s’]
    >panser à [le|la|l’|les|en|lui|leur|y]      $:Y
    >panser à [le|la|l’|les]  [lui|leur|en|y]   $:Y
    >panser à [lui|leur]      en                $:Y
        <<- /conf/ -1>> =\1.replace("an", "en").replace("AN", "EN")
        # Confusion probable. Pour évoquer les pensées qu’on a pour quelqu’un ou quelque chose, écrivez “penser”.|https://fr.wiktionary.org/wiki/penser

TEST: J’ai {{pensé}} les blessés.
TEST: Il a {{pensé}} mon cœur solitaire.
TEST: j’ai {{pansé}} à lui
TEST: Elle {{panse}} à Dieu sans raison.
................................................................................

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

__conf_det_1subst_peu_peut_vinfi__
    [<start>|,]  [un|le|ce|cet]                     *WORD           peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD           peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD           peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
        <<- /conf/ morph(\3, ":N") --2>> peut           # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3” est le sujet du syntagme verbal.

    [<start>|,]  [un|le|ce|cet]                     *WORD           peu  ?en¿  $:Y
        <<- /conf/ morph(\3, ":N") --2>> peut           # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":m:s")                # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3”, il faut utiliser le participe passé.

    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD           peu  ?en¿  $:Y
        <<- /conf/ morph(\3, ":N") --2>> peut           # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":f:s")                # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3”, il faut utiliser le participe passé.

    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD           peu  ?en¿  $:Y
        <<- /conf/ morph(\3, ":N") --2>> peut           # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":s")                  # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3”, il faut utiliser le participe passé.

TEST: cet homme {{peu}} aller et venir ici comme bon lui semble
TEST: Cette athlète {{peu}} y parvenir.
TEST: cette amie {{peu}} sembler distante, mais elle nous a toujours soutenus
................................................................................
__conf_det_2subst_peu_peut_vinfi__
    [<start>|,]  [un|le|ce|cet]                     *WORD  *WORD    peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD  *WORD    peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD  *WORD    peu  [ne|n’|me|m’|te|t’|se|s’|nous|vous|leur|lui|le|la|l’|les|y]
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":[NA]", ":V0")
        --2>> peut                                      # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3 \4” est le sujet du syntagme verbal.

    [<start>|,]  [un|le|ce|cet]                     *WORD  *WORD    peu  ?en¿  $:Y
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":[NA]", ":V0")
        --2>> peut                                      # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3 \4” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":m:s")                # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3 \4”, il faut utiliser le participe passé.

    [<start>|,]  [une|la|cette|ma|ta|sa]            *WORD  *WORD    peu  ?en¿  $:Y
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":[NA]", ":V0")
        --2>> peut                                      # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3 \4” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":f:s")                # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3 \4”, il faut utiliser le participe passé.

    [<start>|,]  [l’|mon|ton|son|notre|votre|leur]  *WORD  *WORD    peu  ?en¿  $:Y
        <<- /conf/ morph(\3, ":[NA]") and morph(\4, ":[NA]", ":V0")
        --2>> peut                                      # Confusion probable : il semble que vous vouliez dire “peut” au sens de “pouvoir \-1” où “\2 \3 \4” est le sujet du syntagme verbal.
        <<- /conf/ __also__ and morph(\-1, ":V1..t") and morph(>1, ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/")
        --1>> =suggVerbPpas(\-1, ":s")                  # Confusion probable : “\-1” est un verbe à l’infinitif. Si “\-1” est supposé être un adjectif pour “\2 \3 \4”, il faut utiliser le participe passé.

TEST: un grand homme {{peu}} aller et venir ici comme bon lui semble
TEST: ma petite amie {{peu}} sembler distante, mais elle nous a toujours soutenus
................................................................................
        <<- /conf/ -1:4>> quoi qu’il en soit                    # Confusion.|https://fr.wiktionary.org/wiki/quoi_qu%E2%80%99il_en_soit

TEST: {{quoiqu’il en soit}}, nous ne nous laisserons pas faire, vous pouvez compter sur nous.


# rebooter / rebouter
__conf_rebooter_rebouter__
    >rebouter  $:D  [>appareil|>imprimante|iPhone|kernel|>machine|>modem|>noyau|>ordinateur|>ordi|PC|>portable|>programme|>routeur|serveur|serveurs|>système|>tablette|>téléphone|terminal|terminaux]
    >rebouter  [Android|Linux|iOS|Unix|Windows]
        <<- /conf/ -1>> =\1.replace("out", "oot").replace("OUT", "OOT")         # Confusion probable. Rebouter est un terme de botanique.

TEST: {{Reboute}} l’ordinateur.
TEST: On {{reboute}} Windows et ça devrait aller.


................................................................................
        <<- /conf/ not before("[aA]ccompl|[dD]él[éè]gu") -1>> =\1.replace("â", "a").replace("Â", "A")
        # Confusion probable. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

    >tâche  [>indélébile|>rouge|>verte|>noire|>bleue|>jaune|>grise|>blanche|>brune|>pourpre|>chocolat|>mauve|>fushia|>violette|>rose|>claire|>sombre|>solaire|>cuivrée]
        <<- /conf/ -1>> =\1.replace("â", "a").replace("Â", "A")
        # Confusion. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

    >tâche sur $:D [>bermuda|>blouse|>blouson|bois|bras|>caleçon|>canapé|>carrelage|>chemise|>chemisier|>col|>conscience|corps|>costume|>cravate|>cuir|>culotte|CV|>dent|>doigt|document|dos|>fauteuil|>feuille|>front|>habit|>jambe|>jean|>joue|>jupe|>jupon|>lèvre|>linge|>livre|>livret|>maillot|>main|>marbre|>meuble|>moquette|>mur|>nappe|nez|>ongle|>papier|>parquet|>pantalon|>peau|pénis|>photo|>photographie|>pied|>pull|>réputation|>robe|>sexe|>siège|>slip|>sol|>t-shirt|>teeshirt|>tee-shirt|>tapis|>tête|>tissu|>veste|>vêtement|>visage]
        <<- /conf/ -1>> =\1.replace("â", "a").replace("Â", "A")
        # Confusion. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

    >tâcher  $:D  [>bermuda|>blouse|>blouson|bois|bras|>caleçon|>canapé|>carrelage|>chemise|>chemisier|>col|>conscience|corps|>costume|>cravate|>cuir|>culotte|CV|>dent|>doigt|document|dos|>fauteuil|>feuille|>front|>habit|>jambe|>jean|>joue|>jupe|>jupon|>lèvre|>linge|>livre|>livret|>maillot|>main|>marbre|>meuble|>moquette|>mur|>nappe|nez|>ongle|>papier|>parquet|>pantalon|>peau|pénis|>photo|>photographie|>pied|>pull|>réputation|>robe|>sexe|>siège|>slip|>sol|>t-shirt|>teeshirt|>tee-shirt|>tapis|>tête|>tissu|>veste|>vêtement|>visage]
        <<- /conf/ -1>> =\1.replace("â", "a").replace("Â", "A")
        # Confusion. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

    [>nettoyer|>laver|>essuyer|>gratter]  $:D  >tâche
        <<- /conf/ --1>> =\-1.replace("â", "a").replace("Â", "A")
        # Confusion. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.

TEST: une {{tâche}} de chocolat                                             ->> tache
TEST: une {{tâche}} vraiment indélébile
TEST: une {{tâche}} rouge.
TEST: Une {{tâche}} sur ma chemise.
................................................................................
    tache [accomplie|dévalorisante|difforme|épuisante|exécutée|exténuante|fatigante|ingrate|menée|valorisante]
    taches [accomplies|dévalorisantes|difformes|épuisantes|exécutées|exténuantes|fatigantes|ingrates|menées|valorisantes]
    >tache >insoluble
    >tache consistant à
        <<- /conf/ -1>> =\1.replace("a", "â").replace("A", "Â")
        # Confusion. Une tache est une salissure, une altération, une marque, une coloration… Pour parler d’un travail à accomplir, écrivez “tâche”.

    [>abstenir|>accepter|>accomplir|>achever|>affecter|>effectuer|>entreprendre|>exécuter|>faciliter|>finir|>interrompre|>partager|>refaire|>refuser|>simplifier|>terminer]  $:D  >tache
    à la tache
    [à|a] la hauteur de la tache
        <<- /conf/ --1>> =\3.replace("a", "â").replace("A", "Â")
        # Confusion. Une tache est une salissure, une altération, une marque, une coloration… Pour parler d’un travail à accomplir, écrivez “tâche”.

    >tacher  [de|d’]  [ne|n’|me|m’|te|t’|se|s’]
    >tacher  [de|d’]  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  $:Y
    >tacher  [de|d’]  [nous|vous]     [le|la|l’|les|en|y]       $:Y
    >tacher  [de|d’]  [le|la|l’|les]  [lui|leur|en|y]           $:Y
    >tacher  [de|d’]  [lui|leur]      en                        $:Y
        <<- /conf/ -1>> =\1.replace("a", "â").replace("A", "Â")
        # Confusion. Tache signifie faire une salissure, une altération, une marque, une coloration… Pour parler de l’accomplissement d’un travail, écrivez “tâcher”.

TEST: Quelle {{tache}} ingrate.
TEST: Une {{tache}} valorisante.
TEST: Elle se tue à la {{tache}}.
TEST: Il a accompli la {{tache}} facilement.
................................................................................
__conf_tant_temps_tan__
    en [temps|>tan] [que|qu’]
        <<- /conf/ -2>> tant                                        # Confusion. Écrivez « en tant que ».|http://fr.wiktionary.org/wiki/en_tant_que

    il >être [tant|>tan] [de|d’] [ne|me|m’|te|t’|se|s’|en|y]
    il >être [tant|>tan] [de|d’] [la|le|les] [lui|leur]
    il >être [tant|>tan] [de|d’] [nous|vous] [la|le|les|l’]
    il >être [tant|>tan] [de|d’] [la|le|les|lui|nous|vous|leur|l’] $:Y
    il >être [tant|>tan] [de|d’] $:Y
        <<- /conf/ -3>> temps                                       # Confusion. Si vous voulez dire “c’est le moment de”, écrivez “temps”.|https://fr.wiktionary.org/wiki/il_est_temps

TEST: en {{tan}} que meneuse intrépide, elle a toujours fait preuve d’une grande imagination.
TEST: il est bien évidemment {{tant}} d’en finir avec ça.


# tort / tord / tore / torr / tors
................................................................................
TEST: les hommes ne sont pas tout à fait {{fâchées}}                              ->> fâchés
TEST: plusieurs invités qui ne sont pas {{contentes}}
TEST: les réunions sans cesse reportées qui sont {{annulés}}
TEST: Les tortures que ce journaliste pense être “normales”.


__ppas_nom_propre_être_accord_genre__
    [<start>|,|@:Cs]  ($:M)  ?qui¿  ?[ne|n’]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])          *WORD
    [<start>|,|@:Cs]  ($:M)  ?qui¿  ?[ne|n’]¿  (>avoir) [été|semblé|paru]                                                            *WORD
    [<start>|,|@:Cs]  ($:M)  ?qui¿  ?[ne|n’]¿  ([>être|>sembler])  [devenu+e|redevenu+e|resté+e|demeuré+e]                           *WORD
    [<start>|,|@:Cs]  ($:M)  ?qui¿  ?[ne|n’]¿
        || ([>aller|>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])
        || [être|devenir|redevenir|rester|paraître|paraitre|sembler]                                *WORD
    [<start>|,|@:Cs]  ($:M)  ?qui¿  ?[ne|n’]¿
        || ([>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])
        || être [devenu+e|redevenu+e|resté+e|demeuré+e]                                             *WORD
    [<start>|,|@:Cs]  ($:M)  ?qui¿  ?[ne|n’]¿
        || ([>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]                                                                  *WORD
        <<- /ppas/ not tag(\1, "enum") and ((morph(\1, ":M.*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")) or (morph(\1, ":M.*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and morph(\2, ":[123]s")
        --1>> =switchGender(\-1)                                                                    # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre.

    *WORD  [que|qu’]  $:M  ?[ne|n’]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || [être|devenir|redevenir|rester|paraître|paraitre|sembler]                                *WORD
    *WORD  [que|qu’]  $:M  ?[ne|n’]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || être [devenu+e|redevenu+e|resté+e|demeuré+e]                                             *WORD
    *WORD  [que|qu’]  $:M  ?[ne|n’]¿
        || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir])
        || avoir [été|semblé|paru]                                                                  *WORD
        <<- /ppas/ checkAgreement(\1, \-1) !-1>>

TEST: Marianne semble devenue {{colériques}}
TEST: Pauline n’affirme pas avoir été {{vaincu}} pour autant
TEST: Sara n’en croit pas cependant être devenue {{aigries}}
................................................................................
!!
!!
!!!! Participes passés après “avoir”                                                              !!
!!
!!

__immu_les_avoir_fait_vinfi__
    les >avoir fait ?[me|m’|te|t’|se|s’|nous|vous|leur]¿ $:Y
        <<- !3>>


__ppas_pronom_avoir__
    [je|j’|tu|il|elle|on|ils|elles|et|qui]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  *WORD
        <<- /ppas/ not value(\-1, "|barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|")
            and value(<1, "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|")
................................................................................
TEST: ce qu’il leur a {{données}}



!!!! du / dû                                                                                      !!

__ppas_avoir_dû_vinfi__
    >avoir  [du|dus|due|dues]  [le|la|les|l’|me|m’|te|t’|se|lui|s’|nous|vous|leur|$:Y]
        <<- /ppas/ \3 != "pouvoir" -2>> dû                      # Participe passé de devoir : “dû”.

    /VCint  [du|dus|due|dues]  [le|la|les|l’|me|m’|te|t’|se|lui|s’|nous|vous|leur|$:Y]
        <<- /ppas/ \3 != "pouvoir" -2>> dû                      # Participe passé de devoir : “dû”.

TEST: Il a {{du}} leur prendre.
TEST: J’ai {{du}} lui donner.
TEST: J’ai {{du}} leur prendre.
TEST: A-t-il {{du}} se résoudre à céder ?
TEST: Aurait-il {{du}} {{prendre}} son repas plus tôt ?
................................................................................


__conf_suj_verbe_det_verbe_nom__
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)                 # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)                 # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.

    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  $:D¬:Ov              @:[NA]                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]                 ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
    [<start>|,]  $:Y                                                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est une préposition, il faut placer un nom après.

TEST: je relève le {{défit}}.                                   ->> défi
TEST: elle relève une fois de plus le {{défie}}.                ->> défi
TEST: il gère l’{{accueille}}                                   ->> accueil
TEST: Elle ne connait pas leur {{recule}}                       ->> recul
TEST: elle lisait la {{garantit}}                               ->> garantie
................................................................................
    [ne|n’]  [le|la|l’|les]                 [lui|leur|en|y]            @:(?:[123][sp]|P|Y)¬:X
    [ne|n’]  [lui|leur]                     en                         @:(?:[123][sp]|P|Y)¬:X
        <<- ~1:-2>> *


__tag_verbe_infinitif_sujet__
    [<start>|,]  [ne|n’]  ?[en|y]¿ ?presque¿ [pas|rien|guère|point|jamais|plus]
    [<start>|,]  [ne|n’]  $:Y
    [<start>|,]  $:Y
        <<- /2>> suj_vinfi


__tag_usage_pronominal__
    [me|m’|te|t’|se|s’]  ?[le|la|l’|les|en|y]¿  $:V¬:G
    nous nous            ?[le|la|l’|les|en|y]¿  $:V¬:G
    vous vous            ?[le|la|l’|les|en|y]¿  $:V¬:G
        <<- /-1>> upron


__énumérations_substantifs__
    [le|la|l’|les|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|certains|certaines|tout|tous|toute|toutes] (*WORD)
        || , [le|la|l’|les|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|certains|certaines|tout|tous|toute|toutes] (*WORD)
        || [,|et|ou] [le|la|l’|les|un|une|des|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|certains|certaines|tout|tous|toute|toutes] (*WORD)
................................................................................
TEST: elles sont parties ce matin {{est}} ce soir                                   ->> et
TEST: il avait mangé des moules {{est}} des frites                                  ->> et
TEST: ce matin pluvieux l’ambiance est à présent la pire.


#### veillez / veuillez
__conf_veillez__
    [<start>|,]  veuillez  à  [ne|n’|me|m’|nous|$:Y]
        <<- /conf/ -2>> veillez                                     # Confusion probable : “veuillez” est une forme conjuguée du verbe “vouloir”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1939

TEST: {{Veuillez}} à ne pas tomber dans ce piège.
TEST: Et {{veuillez}} surtout à ouvrir grand les yeux.
TEST: {{Veuillez}}, s’il vous plaît, à prendre vos médicaments.
TEST: Veuillez à nouveau faire attention à ce problème.
TEST: Veuillez excuser mon retard.
TEST: Veillez à bien fermer les fenêtres.


__conf_veuillez__
    [<start>|,]  veillez  [ne|n’|me|m’|nous|$:Y]
        <<- /conf/ -2>> veuillez
        # Confusion probable : “veiller” signifie “prendre garde” ou “être vigilant”. Pour inviter à faire quelque chose, écrivez “veuillez”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1939

TEST: {{Veillez}} excuser mon retard.
TEST: {{Veillez}} me contacter.
TEST: {{Veillez}} me le faire savoir.
TEST: {{Veillez}} ne le dire à personne.
................................................................................
TEST: Aucun terme attesté dans des textes antiques, mésopotamien ou autre, ne sert à désigner la Mésopotamie au sens moderne du terme
TEST: signalons qu’aucun fait avéré ne correspond à ce qui se propage
TEST: Aucune solution envisagée n’a engendré de résultat positif.
TEST: Aucun homme parti à la guerre ne revient


__conj_vinfi_suj__
    [<start>|,]  $:Y  @:V¬:(?:3s|P|Q|Y|G|3p!|M)
        <<- /conj/ not (value(\2, "|avoir|croire|être|devenir|redevenir|voir|sembler|paraître|paraitre|sentir|rester|retrouver|") and morph(\3, ":[NA]"))
        -3>> =suggVerb(\3, ":3s")                                       # Conjugaison erronée. Accord avec “\2”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: manger {{fais}} grossir.
TEST: boire immodérément {{nuis}} à la santé
TEST: Réfléchir à tête reposée {{prends}} du temps.
TEST: Manger salé, c’est mauvais pour la santé.
................................................................................
TEST: Je {{voudrai}} qu’il soit déjà là.
TEST: J’aimerai ces cours-là autant que les autres.
TEST: J’aimerai la danse et la musique, puisque vous l’exigez.
TEST: Je sais que j’aimerai ça, tout comme lui.


__vmode_j_aurais_aimé_que_vinfi__
    j’  aurai  [aimé|souhaité|préféré|voulu|apprécié|désiré|adoré]  [que|qu’|ne|n’|$:Y]
        <<- /vmode/ -2>> aurais|eusse                                                               # Pour un souhait passé, utilisez le conditionnel passé et non le futur antérieur. Exemple pour le futur antérieur : « quand j’aurai fini… »

TEST: J’{{aurai}} aimé nous offrir ce magnifique cadeau.
TEST: j’{{aurai}} voulu être un artiste.
TEST: j’{{aurai}} préféré ne pas avoir à l’entendre.
TEST: j’{{aurai}} préféré l’entendre un autre jour.
TEST: j’{{aurai}} aimé que vous m’en parliez.
................................................................................
!!!! Incohérence ponctuation/mode verbal                                                          !!
!!
!!

# Règles casse-gueule, prudence…

__conj_nom_propre_virgule__
    <start>  $:M  ,  @:3s¬:[NAGEM]  [<end>|,]
        <<- /conj/ space_after(\2, 0, 0) -2:3>> \2
        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        <<- /conj/ __also__ -4>> =suggVerbTense(\4, ":E", ":2s")
        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).

    <start>  $:M  ,  @:3s¬:[NAGEM]  @:A.*:[si]
        <<- /conj/ space_after(\2, 0, 0) and morph(\4, ">(?:être|devenir|redevenir|sembler|para[iî]tre)/") -2:3>> \2
        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        <<- /conj/ __also__ -4>> =suggVerbTense(\4, ":E", ":2s")
        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).

TEST: {{Paul,}} {{vient}}                                               ->> Paul|||viens
TEST: {{Anton,}} {{sera}} toujours prêt à vous écouter                  ->> Anton|||sois

Changes to misc/grammalecte.sublime-syntax.

155
156
157
158
159
160
161






162
163
164
165
166
167
168
      scope: string.regex
      captures:
        1: entity.valid

    - match: '(@)([^@\s¬]*)'
      scope: string.morph
      captures:






        1: entity.valid
        2: string.morph.regex

    - match: '(/)[\w-]+'
      scope: string.tag
      captures:
        1: entity.valid







>
>
>
>
>
>







155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
      scope: string.regex
      captures:
        1: entity.valid

    - match: '(@)([^@\s¬]*)'
      scope: string.morph
      captures:
        1: entity.valid
        2: string.morph.regex

    - match: '(\$)([^@\s¬]*)'
      scope: string.morph
      captures:
        1: entity.valid
        2: string.morph.regex

    - match: '(/)[\w-]+'
      scope: string.tag
      captures:
        1: entity.valid