Grammalecte  Check-in [482caf8b03]

Overview
Comment:[core][fr] corrections des messages d’erreur + tests sur les messages
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr | core
Files: files | file ages | folders
SHA3-256: 482caf8b0314ce83c5db7eb6453ae62dc9f8eca8661d88a2f26c3d9f7d812a1e
User & Date: olr on 2020-11-20 23:19:21
Other Links: manifest | tags
Context
2020-11-21
21:42
[fr] corrections des messages d’erreur + ajustements check-in: 84539a25d6 user: olr tags: fr, trunk
2020-11-20
23:19
[core][fr] corrections des messages d’erreur + tests sur les messages check-in: 482caf8b03 user: olr tags: core, fr, trunk
17:12
[fx] lexicographer: small UI update check-in: af453db0ee user: olr tags: fx, trunk
Changes

Modified gc_core/py/lang_core/tests_core.py from [f2e83e1db8] to [b3d6379019].

138
139
140
141
142
143
144


145
146
147
148



149
150
151
152
153
154
155
156
157
158






159
160
161
162
163
164
165
166
        lAllSugg = []
        for dErr in sorted(aErrs, key=lambda d: d["nStart"]):
            sRes = sRes[:dErr["nStart"]] + "~" * (dErr["nEnd"] - dErr["nStart"]) + sRes[dErr["nEnd"]:]
            sListErr += "    * {sLineId} / {sRuleId}  at  {nStart}:{nEnd}\n".format(**dErr)
            lAllSugg.append("|".join(dErr["aSuggestions"]))
            self._aTestedRules.add(dErr["sRuleId"].rstrip("0123456789"))
            # test messages


            if "<start>" in dErr["sMessage"] or "<end>" in dErr["sMessage"]:
                print("\n# Line num : " + dErr["sLineId"] + \
                      "\n  rule name: " + dErr["sRuleId"] + \
                      "\n  message  : " + dErr["sMessage"])



        return sRes, sListErr, "|||".join(lAllSugg)

    def _getExpectedErrors (self, sLine):
        sRes = " " * len(sLine)
        for i, m in enumerate(self._zError.finditer(sLine)):
            nStart = m.start() - (4 * i)
            nEnd = m.end() - (4 * (i+1))
            sRes = sRes[:nStart] + "~" * (nEnd - nStart) + sRes[nEnd:-4]
        return sRes








def main():
    "start function"
    unittest.main()


if __name__ == '__main__':
    main()







>
>
|
<
<
|
>
>
>










>
>
>
>
>
>








138
139
140
141
142
143
144
145
146
147


148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
        lAllSugg = []
        for dErr in sorted(aErrs, key=lambda d: d["nStart"]):
            sRes = sRes[:dErr["nStart"]] + "~" * (dErr["nEnd"] - dErr["nStart"]) + sRes[dErr["nEnd"]:]
            sListErr += "    * {sLineId} / {sRuleId}  at  {nStart}:{nEnd}\n".format(**dErr)
            lAllSugg.append("|".join(dErr["aSuggestions"]))
            self._aTestedRules.add(dErr["sRuleId"].rstrip("0123456789"))
            # test messages
            if False:
                aMsgErrs = gc_engine.parse(purgeMessage(dErr["sMessage"]))
                if aMsgErrs or "<start>" in dErr["sMessage"] or "<end>" in dErr["sMessage"]:


                    print("\n# Incorrect message: <" + dErr["sMessage"] + ">\n    " + dErr["sLineId"] + " / " + dErr["sRuleId"])
                    if aMsgErrs:
                        for dMsgErr in sorted(aMsgErrs, key=lambda d: d["nStart"]):
                            print("        error: {sLineId} / {sRuleId}  at  {nStart}:{nEnd}".format(**dMsgErr))
        return sRes, sListErr, "|||".join(lAllSugg)

    def _getExpectedErrors (self, sLine):
        sRes = " " * len(sLine)
        for i, m in enumerate(self._zError.finditer(sLine)):
            nStart = m.start() - (4 * i)
            nEnd = m.end() - (4 * (i+1))
            sRes = sRes[:nStart] + "~" * (nEnd - nStart) + sRes[nEnd:-4]
        return sRes


def purgeMessage (sMessage):
    sMessage = sMessage.replace("l’ ", "l’").replace("d’ ", "d’").replace("m’ ", "m’").replace("t’ ", "t’").replace("s’ ", "s’").replace("qu’ ", "qu’")
    sMessage = sMessage.replace("L’ ", "L’").replace("D’ ", "D’").replace("M’ ", "M’").replace("T’ ", "T’").replace("S’ ", "S’").replace("QU’ ", "QU’")
    return sMessage


def main():
    "start function"
    unittest.main()


if __name__ == '__main__':
    main()

Modified gc_lang/fr/rules.grx from [d9467479bc] to [56142c4d70].

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
...
209
210
211
212
213
214
215
216
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
243
244
245
246
247
248
249
250
251
252
253
...
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
...
488
489
490
491
492
493
494
495
496
497
498
499
500
501

502
503
504
505
506
507
508
...
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
...
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
....
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
....
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
....
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
....
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
....
1252
1253
1254
1255
1256
1257
1258

1259
1260
1261
1262
1263
1264
1265
1266
1267

1268
1269
1270
1271
1272
1273
1274
....
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
....
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
....
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
....
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
....
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
....
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
....
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
....
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
....
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
....
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
....
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
....
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
....
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
....
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
....
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
....
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
....
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
....
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
....
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
....
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
....
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
....
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
....
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
....
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
....
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
....
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
....
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
....
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
....
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
....
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
....
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
....
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
....
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
....
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
....
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
....
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
....
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
....
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
....
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
....
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
....
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
....
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
....
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
....
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
....
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
....
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
....
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
....
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
....
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
....
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428

6429
6430
6431
6432
6433
6434
6435
....
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
....
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
....
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
....
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
....
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
....
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
....
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
....
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
....
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
....
6828
6829
6830
6831
6832
6833
6834

6835
6836
6837
6838
6839
6840
6841
....
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
....
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
....
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
....
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
....
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208

7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
....
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
....
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
....
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
....
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
....
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
....
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
....
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
....
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
....
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
....
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
....
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
....
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
....
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
....
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
....
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
....
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
....
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
....
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
....
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
....
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
....
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
....
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
....
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
.....
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
.....
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
.....
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
.....
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
.....
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
.....
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
.....
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
.....
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
.....
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
.....
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
.....
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
.....
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
.....
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
.....
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
.....
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
.....
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
.....
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
.....
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
.....
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
.....
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
.....
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
.....
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
.....
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
.....
11623
11624
11625
11626
11627
11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
.....
11678
11679
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
.....
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
.....
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
.....
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
.....
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
.....
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
.....
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
.....
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
.....
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
.....
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
.....
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
.....
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
.....
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
.....
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
.....
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
.....
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
.....
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
.....
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
.....
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885

12886
12887
12888
12889
12890
12891
12892
.....
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
.....
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
.....
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
.....
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
.....
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
.....
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
.....
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
.....
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
.....
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
.....
18963
18964
18965
18966
18967
18968
18969
18970
18971
18972
18973
18974
18975
18976
18977
18978
18979
18980
18981
18982
18983
.....
19007
19008
19009
19010
19011
19012
19013
19014
19015
19016
19017
19018
19019
19020
19021
19022
19023
19024
19025
19026
19027
19028
19029
19030
19031
19032
19033
19034
19035
.....
19052
19053
19054
19055
19056
19057
19058
19059
19060
19061
19062
19063
19064
19065
19066
19067
19068
19069
19070
19071
19072
19073
19074
19075
19076
19077
19078
19079
19080
19081
19082
19083
19084
19085
19086
19087
19088
19089
19090
19091
19092
19093
19094
19095
19096
19097
19098
19099
.....
19101
19102
19103
19104
19105
19106
19107
19108
19109
19110
19111
19112
19113
19114
19115
.....
19147
19148
19149
19150
19151
19152
19153
19154
19155
19156
19157
19158
19159
19160
19161
19162
19163
19164
.....
19239
19240
19241
19242
19243
19244
19245
19246
19247
19248
19249
19250
19251
19252
19253
.....
19344
19345
19346
19347
19348
19349
19350
19351
19352
19353
19354
19355
19356
19357
19358
.....
19404
19405
19406
19407
19408
19409
19410
19411
19412
19413
19414
19415
19416
19417
19418
.....
19476
19477
19478
19479
19480
19481
19482
19483
19484
19485
19486
19487
19488
19489
19490
19491
19492
19493
.....
19504
19505
19506
19507
19508
19509
19510
19511
19512
19513
19514
19515
19516
19517
19518
.....
19595
19596
19597
19598
19599
19600
19601
19602
19603
19604
19605
19606
19607
19608
19609
.....
19613
19614
19615
19616
19617
19618
19619
19620
19621
19622
19623
19624
19625
19626
19627
.....
19647
19648
19649
19650
19651
19652
19653
19654
19655
19656
19657
19658
19659
19660
19661
.....
19662
19663
19664
19665
19666
19667
19668
19669
19670
19671
19672
19673
19674
19675
19676
.....
19724
19725
19726
19727
19728
19729
19730
19731
19732
19733
19734
19735
19736
19737
19738
19739
19740
19741
19742
19743
19744
19745
19746
19747
19748
19749
19750
19751
19752
19753
19754
19755
19756
19757
19758
19759
19760
19761
19762
19763
19764
19765
19766
19767
19768
19769
19770
19771
19772
.....
19955
19956
19957
19958
19959
19960
19961
19962
19963
19964
19965
19966
19967
19968
19969
19970
19971
19972
19973
19974
19975
19976
19977
.....
20063
20064
20065
20066
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
20077
.....
20078
20079
20080
20081
20082
20083
20084
20085
20086
20087
20088
20089
20090
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
.....
20102
20103
20104
20105
20106
20107
20108
20109
20110
20111
20112
20113
20114
20115
20116
.....
20312
20313
20314
20315
20316
20317
20318
20319
20320
20321
20322
20323
20324
20325
20326
20327
20328
20329
20330
20331
20332
20333
20334
20335
20336
20337
20338
20339
20340
20341
20342
20343
20344
20345
20346
20347
20348
20349
20350
20351
20352
20353
20354
20355
20356
20357
20358
.....
20365
20366
20367
20368
20369
20370
20371
20372
20373
20374
20375
20376
20377
20378
20379
20380
20381
20382
.....
20387
20388
20389
20390
20391
20392
20393
20394
20395
20396
20397
20398
20399
20400
20401
.....
20405
20406
20407
20408
20409
20410
20411
20412
20413
20414
20415
20416
20417
20418
20419
20420
20421
20422
20423
20424
20425
20426
20427
20428
20429
20430
20431
20432
20433
20434
20435
20436
20437
.....
20535
20536
20537
20538
20539
20540
20541
20542
20543
20544
20545
20546
20547
20548
20549
20550
20551
20552
20553
20554
20555
20556
20557
20558
20559
20560
20561
.....
20585
20586
20587
20588
20589
20590
20591
20592
20593
20594
20595
20596
20597
20598
20599
20600
20601
20602
20603
20604
20605
20606
.....
20630
20631
20632
20633
20634
20635
20636
20637
20638
20639
20640
20641
20642
20643
20644
.....
20738
20739
20740
20741
20742
20743
20744
20745
20746
20747
20748
20749
20750
20751
20752
20753
20754
20755
20756
.....
20799
20800
20801
20802
20803
20804
20805
20806
20807
20808
20809
20810
20811
20812
20813
.....
20854
20855
20856
20857
20858
20859
20860
20861
20862
20863
20864
20865
20866
20867
20868
20869
20870
20871
20872
20873
20874
20875
20876
20877
20878
20879
20880
20881
20882
20883
20884
20885
.....
20924
20925
20926
20927
20928
20929
20930
20931
20932
20933
20934
20935
20936
20937
20938
20939
20940
20941
20942
20943
20944
20945
20946
20947
20948
20949
20950
20951
20952
20953
20954
20955
20956
20957
20958
20959
.....
21207
21208
21209
21210
21211
21212
21213
21214
21215
21216
21217
21218
21219
21220
21221
.....
21222
21223
21224
21225
21226
21227
21228
21229
21230
21231
21232
21233
21234
21235
21236
.....
21504
21505
21506
21507
21508
21509
21510
21511
21512
21513
21514
21515
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
.....
21580
21581
21582
21583
21584
21585
21586
21587
21588
21589
21590
21591
21592
21593
21594
21595
21596
21597
21598
21599
21600
21601
21602
21603
21604
21605
21606
21607
21608
21609
21610
21611
.....
21665
21666
21667
21668
21669
21670
21671
21672
21673
21674
21675
21676
21677
21678
21679
21680
21681
21682
21683
21684
21685
21686
21687
.....
21688
21689
21690
21691
21692
21693
21694
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723
21724
21725
21726
21727
21728
21729
21730
21731
21732
21733
21734
21735
21736
21737
21738
21739
21740
21741
21742
21743
21744
21745
21746
21747
21748
21749
21750
21751
21752
21753
21754
21755
21756
21757
.....
21763
21764
21765
21766
21767
21768
21769
21770
21771
21772
21773
21774
21775
21776
21777
21778
21779
21780
21781
21782
21783
21784
21785
21786
.....
21787
21788
21789
21790
21791
21792
21793
21794
21795
21796
21797
21798
21799
21800
21801
21802
21803
21804
21805
21806
21807
21808
21809
21810
21811
21812
21813
21814
21815
21816
21817
21818
21819
21820
21821
21822
21823
21824
21825
21826
21827
21828
21829
.....
21841
21842
21843
21844
21845
21846
21847
21848
21849
21850
21851
21852
21853
21854
21855
21856
21857
21858
21859
21860
21861
21862
21863
21864
.....
21865
21866
21867
21868
21869
21870
21871
21872
21873
21874
21875
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
21899
21900
21901
21902
21903
21904
21905
21906
21907
21908
21909
21910
21911
21912
21913
21914
21915
21916
21917
21918
21919
21920
21921
21922
21923
21924
21925
21926
21927
.....
21930
21931
21932
21933
21934
21935
21936
21937
21938
21939
21940
21941
21942
21943
21944
21945
21946
21947
21948
21949
21950
21951
21952
21953
21954
21955
21956
21957
21958
21959
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
21981
21982
21983
21984
21985
21986
21987
21988
21989
21990
21991
21992
21993
21994
21995
21996
21997
21998
21999
22000
22001
22002
22003
22004
22005
22006
22007
22008
22009
22010
22011
22012
22013
22014
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
22025
22026
22027
22028
22029
22030
22031
22032
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
.....
22056
22057
22058
22059
22060
22061
22062
22063
22064
22065
22066
22067
22068
22069
22070
22071
22072
22073
22074
22075
22076
22077
22078
22079
22080
22081
22082
22083
22084
22085
22086
22087
22088
22089
22090
22091
22092
22093
22094
22095
22096
22097
22098
22099
22100
22101
22102
22103
22104
22105
22106
22107
22108
22109
22110
22111
22112
22113
22114
22115
22116
22117
22118
22119
22120
22121
22122
22123
22124
22125
22126
22127
22128
22129
22130
22131
22132
22133
22134
22135
22136
22137
22138
22139
22140
22141
22142
22143
22144
22145
22146
22147
22148
22149
22150
22151
22152
22153
22154
22155
22156
22157
22158
22159
22160
22161
22162
22163
22164
22165
22166
22167
22168
22169
22170
22171
22172
22173
22174
22175
22176
22177
22178
22179
22180
22181
22182
22183
22184
22185
22186
22187
22188
22189
22190
22191
22192
22193
22194
22195
22196
22197
22198
22199
22200
22201
22202
22203
22204
22205
22206
22207
22208
22209
22210
22211
22212
22213
22214
22215
22216
22217
22218
22219
22220
22221
22222
22223
22224
22225
22226
22227
22228
22229
22230
22231
22232
22233
22234
22235
22236
22237
22238
22239
22240
22241
22242
22243
22244
22245
22246
22247
22248
22249
22250
22251
22252
22253
22254
22255
22256
22257
22258
22259
22260
22261
22262
22263
22264
22265
22266
22267
22268
22269
22270
22271
22272
22273
22274
22275
22276
22277
22278
22279
22280
22281
22282
22283
22284
22285
22286
22287
22288
22289
22290
22291
22292
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303
22304
22305
22306
22307
22308
22309
22310
22311
22312
22313
22314
22315
22316
22317
22318
22319
22320
22321
22322
22323
22324
22325
22326
22327
22328
22329
22330
22331
22332
22333
22334
22335
22336
22337
22338
22339
22340
22341
22342
22343
22344
22345
22346
.....
22347
22348
22349
22350
22351
22352
22353
22354
22355
22356
22357
22358
22359
22360
22361
22362
22363
22364
22365
22366
22367
22368
22369
22370
22371
22372
22373
22374
22375
22376
22377
22378
22379
22380
22381
22382
22383
22384
22385
22386
22387
22388
.....
22392
22393
22394
22395
22396
22397
22398
22399
22400
22401
22402
22403
22404
22405
22406
22407
22408
22409
22410
22411
22412
22413
22414
22415
22416
22417
22418
.....
22425
22426
22427
22428
22429
22430
22431
22432
22433
22434
22435
22436
22437
22438
22439
22440
22441
22442
22443
22444
22445
22446
22447
22448
22449
22450
22451
22452
22453
22454
22455
22456
22457
22458
22459
22460
22461
22462
22463
22464
22465
22466
.....
22468
22469
22470
22471
22472
22473
22474
22475
22476
22477
22478
22479
22480
22481
22482
22483
22484
22485
22486
22487
22488
22489
22490
22491
22492
22493
22494
22495
.....
22498
22499
22500
22501
22502
22503
22504
22505
22506
22507
22508
22509
22510
22511
22512
22513
22514
22515
22516
22517
22518
22519
22520
22521
22522
.....
22523
22524
22525
22526
22527
22528
22529
22530
22531
22532
22533
22534
22535
22536
22537
22538
22539
22540
22541
22542
22543
22544
22545
22546
22547
22548
22549
22550
22551
22552
22553
22554
22555
22556
22557
22558
22559
22560
22561
22562
22563
22564
.....
22565
22566
22567
22568
22569
22570
22571
22572
22573
22574
22575
22576
22577
22578
22579
22580
22581
22582
.....
22587
22588
22589
22590
22591
22592
22593
22594
22595
22596
22597
22598
22599
22600
22601
22602
22603
22604
22605
22606
22607
22608
22609
22610
22611
22612
22613
22614
22615
22616
22617
22618
22619
22620
22621
22622
22623
22624
22625
22626
22627
22628
22629
22630
22631
.....
22633
22634
22635
22636
22637
22638
22639
22640
22641
22642
22643
22644
22645
22646
22647
22648
22649
22650
22651
22652
22653
22654
22655
22656
22657
22658
22659
22660
22661
22662
22663
22664
22665
22666
22667
22668
22669
22670
22671
22672
22673
22674
22675
22676
22677
22678
22679
22680
22681
22682
22683
22684
22685
22686
22687
22688
22689
22690
22691
22692
22693
22694
22695
22696
22697
22698
22699
22700
22701
22702
22703
22704
22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734
22735
22736
22737
22738
22739
22740
22741
22742
22743
22744
22745
22746
22747
22748
22749
22750
22751
22752
22753
22754
22755
22756
22757
22758
22759
22760
22761
22762
22763
22764
22765
22766
22767
22768
22769
22770
22771
22772
22773
22774
22775
22776
22777
22778
22779
22780
22781
22782
22783
22784
22785
22786
.....
22795
22796
22797
22798
22799
22800
22801
22802
22803
22804
22805
22806
22807
22808
22809
22810
22811
22812
22813
22814
22815
22816
22817
22818
22819
22820
22821
22822
22823
22824
22825
22826
22827
22828
22829
22830
22831
22832
.....
22841
22842
22843
22844
22845
22846
22847
22848
22849
22850
22851
22852
22853
22854
22855
22856
22857
22858
22859
22860
22861
22862
22863
22864
22865
22866
22867
22868
22869
22870
22871
22872
22873
22874
22875
22876
22877
22878
22879
22880
22881
22882
22883
22884
22885
22886
22887
22888
22889
22890
22891
22892
22893
22894
22895
22896
22897
22898
22899
22900
22901
22902
22903
22904
22905
22906
22907
22908
22909
22910
.....
22957
22958
22959
22960
22961
22962
22963
22964
22965
22966
22967
22968
22969
22970
22971
22972
22973
22974
22975
22976
22977
22978
22979
22980
.....
22989
22990
22991
22992
22993
22994
22995
22996
22997
22998
22999
23000
23001
23002
23003
23004
23005
23006
23007
23008
23009
23010
23011
23012
23013
23014
23015
23016
23017
23018
.....
23069
23070
23071
23072
23073
23074
23075
23076
23077
23078
23079
23080
23081
23082
23083
.....
23165
23166
23167
23168
23169
23170
23171
23172
23173
23174
23175
23176
23177
23178
23179
23180
23181
23182
23183
23184
23185
23186
23187
23188
23189
23190
23191
23192
23193
23194
23195
23196
23197
23198
.....
23199
23200
23201
23202
23203
23204
23205
23206
23207
23208
23209
23210
23211
23212
23213
23214
23215
23216
23217
23218
23219
23220
23221
23222
23223
23224
23225
23226
23227
23228
23229
23230
23231
23232
23233
23234
23235
23236
23237
23238
23239
23240
23241
23242
23243
23244
23245
23246
23247
.....
23249
23250
23251
23252
23253
23254
23255
23256
23257
23258
23259
23260
23261
23262
23263
23264
23265
23266
23267
23268
.....
23306
23307
23308
23309
23310
23311
23312
23313
23314
23315
23316
23317
23318
23319
23320
23321
23322
23323
23324
23325
23326
23327
23328
23329
23330
23331
23332
23333
23334
23335
23336
23337
23338
23339
23340
23341
23342
23343
23344
23345
23346
.....
23380
23381
23382
23383
23384
23385
23386
23387
23388
23389
23390
23391
23392
23393
23394
23395
23396
23397
23398
23399
23400
23401
23402
23403
23404
23405
23406
23407
23408
23409
23410
23411
23412
23413
23414
23415
23416
23417
23418
23419
23420
23421
23422
23423
23424
23425
23426
23427
23428
23429
23430
23431
23432
23433
23434
23435
23436
23437
23438
23439
23440
23441
23442
23443
23444
23445
23446
23447
23448
23449
23450
.....
23527
23528
23529
23530
23531
23532
23533
23534
23535
23536
23537
23538
23539
23540
23541
23542
23543
23544
23545
23546
23547
23548
23549
23550
23551
23552
23553
23554
23555
23556
23557
23558
.....
23587
23588
23589
23590
23591
23592
23593
23594
23595
23596
23597
23598
23599
23600
23601
.....
23608
23609
23610
23611
23612
23613
23614
23615
23616
23617
23618
23619
23620
23621
23622
.....
23640
23641
23642
23643
23644
23645
23646
23647
23648
23649
23650
23651
23652
23653
23654
23655
23656
23657
23658
.....
23672
23673
23674
23675
23676
23677
23678
23679
23680
23681
23682
23683
23684
23685
23686
.....
23838
23839
23840
23841
23842
23843
23844
23845
23846
23847
23848
23849
23850
23851
23852
23853
23854
23855
.....
23861
23862
23863
23864
23865
23866
23867
23868
23869
23870
23871
23872
23873
23874
23875
.....
23883
23884
23885
23886
23887
23888
23889
23890
23891
23892
23893
23894
23895
23896
23897
.....
23903
23904
23905
23906
23907
23908
23909
23910
23911
23912
23913
23914
23915
23916
23917
23918
23919
23920
23921
23922
23923
23924
23925
23926
23927
23928
23929
23930
23931
23932
23933
23934
23935
23936
23937
.....
23952
23953
23954
23955
23956
23957
23958
23959
23960
23961
23962
23963
23964
23965
23966
23967
23968
23969
23970
.....
24057
24058
24059
24060
24061
24062
24063
24064
24065
24066
24067
24068
24069
24070
24071
.....
24350
24351
24352
24353
24354
24355
24356
24357
24358
24359
24360
24361
24362
24363
24364
24365
24366
24367
.....
25178
25179
25180
25181
25182
25183
25184
25185
25186
25187
25188
25189
25190
25191
25192
25193
25194
25195
25196
25197
25198
25199
25200
25201
25202
25203
25204
25205
25206
25207
25208
25209
25210
25211
25212
25213
25214
25215
25216
25217
25218
25219
25220
25221
25222
25223
25224
25225
25226
25227
25228
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
.....
25380
25381
25382
25383
25384
25385
25386
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
.....
26259
26260
26261
26262
26263
26264
26265
26266
26267
26268
26269
26270
26271
26272
26273
26274
26275
.....
26279
26280
26281
26282
26283
26284
26285
26286
26287
26288
26289
26290
26291
26292
26293
26294
26295
.....
26325
26326
26327
26328
26329
26330
26331
26332
26333
26334
26335
26336
26337
26338
26339
.....
26481
26482
26483
26484
26485
26486
26487
26488
26489
26490
26491
26492
26493
26494
26495
26496
26497
26498
26499
26500
.....
26554
26555
26556
26557
26558
26559
26560
26561
26562
26563
26564
26565
26566
26567
26568
26569
26570
26571
26572
26573
26574
26575
26576
26577
26578
26579
26580
26581
.....
26620
26621
26622
26623
26624
26625
26626
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
26640
26641
26642
26643
26644
26645
26646
26647
26648
26649
26650
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
.....
26720
26721
26722
26723
26724
26725
26726
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784
26785
26786
26787
26788
26789
26790
26791
26792
26793
26794
26795
26796
26797
26798
26799
26800
.....
26900
26901
26902
26903
26904
26905
26906
26907
26908
26909
26910
26911
26912
26913
26914
26915
26916
26917
26918
26919
26920
26921
26922
26923
26924
26925
26926
26927
26928
26929
26930
26931
26932
26933
26934
26935
26936
26937
26938
26939
26940
26941
26942
26943
26944
26945
26946
26947
26948
26949
26950
26951
26952
26953
26954
.....
27020
27021
27022
27023
27024
27025
27026
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
27048
27049
27050
27051
.....
27067
27068
27069
27070
27071
27072
27073
27074
27075
27076
27077
27078
27079
27080
27081
27082
27083
27084
27085
27086
27087
27088
27089
27090
27091
27092
27093
27094
27095
27096
27097
27098
27099
27100
27101
.....
27136
27137
27138
27139
27140
27141
27142
27143
27144
27145
27146
27147
27148
27149
27150
27151
27152
27153
27154
27155
27156
27157
27158
27159
27160
27161
27162
27163
27164
27165
27166
27167
27168
27169
27170
27171
27172
27173
27174
27175
27176
27177
27178
27179
27180
27181
27182
27183
27184
27185
27186
27187
27188
27189
27190
27191
.....
27235
27236
27237
27238
27239
27240
27241
27242
27243
27244
27245
27246
27247
27248
27249
27250
27251
27252
27253
27254
27255
27256
27257
27258
27259
27260
27261
27262
27263
27264
27265
27266
27267
27268
27269
27270
27271
27272
27273
27274
27275
27276
27277
27278
27279
27280
27281
27282
27283
.....
27314
27315
27316
27317
27318
27319
27320
27321
27322
27323
27324
27325
27326
27327
27328
27329
27330
27331
27332
27333
27334
27335
27336
27337
27338
27339
27340
27341
27342
27343
27344
27345
27346
27347
27348
.....
27390
27391
27392
27393
27394
27395
27396
27397
27398
27399
27400
27401
27402
27403
27404
27405
27406
27407
27408
27409
27410
27411
27412
27413
27414
.....
27425
27426
27427
27428
27429
27430
27431
27432
27433
27434
27435
27436
27437
27438
27439
27440
27441
27442
27443
.....
27480
27481
27482
27483
27484
27485
27486
27487
27488
27489
27490
27491
27492
27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505
27506
27507
27508
27509
27510
.....
27539
27540
27541
27542
27543
27544
27545
27546
27547
27548
27549
27550
27551
27552
27553
27554
27555
27556
27557
27558
27559
27560
27561
27562
27563
27564
27565
27566
27567
27568
27569
.....
27592
27593
27594
27595
27596
27597
27598
27599
27600
27601
27602
27603
27604
27605
27606
27607
27608
.....
27698
27699
27700
27701
27702
27703
27704
27705
27706
27707
27708
27709
27710
27711
27712
27713
27714
27715
27716
27717
27718
27719
27720
27721
27722
27723
27724
27725
27726
27727
27728
27729
27730
27731
27732
27733
27734
27735
27736
27737
27738
27739
27740
27741
27742
27743
27744
27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
27762
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773
27774
27775
27776
27777
27778
27779
27780
27781
.....
27822
27823
27824
27825
27826
27827
27828
27829
27830
27831
27832
27833
27834
27835
27836
27837
27838
27839
27840
27841
27842
27843
27844
27845
27846
27847
27848
27849
27850
27851
27852
27853
27854
27855
27856
27857
27858
27859
27860
27861
27862
27863
27864
27865
27866
27867
27868
27869
27870
27871
27872
27873
27874
.....
28031
28032
28033
28034
28035
28036
28037
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
.....
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
.....
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229
28230
28231
28232
28233
.....
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
.....
28303
28304
28305
28306
28307
28308
28309
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
.....
28438
28439
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
.....
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
.....
28529
28530
28531
28532
28533
28534
28535
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
.....
28596
28597
28598
28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
.....
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795
28796
28797
28798
28799
28800
.....
29051
29052
29053
29054
29055
29056
29057
29058
29059
29060
29061
29062
29063
29064
29065
29066
29067
29068
29069
29070
29071
29072
29073
29074
29075
29076
29077
29078
29079
29080
29081
29082
29083
29084
29085
29086
29087
29088
29089
29090
29091
29092
29093
29094
29095
29096
29097
29098
29099
29100
29101
29102
29103
.....
29129
29130
29131
29132
29133
29134
29135
29136
29137
29138
29139
29140
29141
29142
29143
.....
29147
29148
29149
29150
29151
29152
29153
29154
29155
29156
29157
29158
29159
29160
29161
.....
29165
29166
29167
29168
29169
29170
29171
29172
29173
29174
29175
29176
29177
29178
29179
.....
29183
29184
29185
29186
29187
29188
29189
29190
29191
29192
29193
29194
29195
29196
29197
.....
29201
29202
29203
29204
29205
29206
29207
29208
29209
29210
29211
29212
29213
29214
29215
.....
29221
29222
29223
29224
29225
29226
29227
29228
29229
29230
29231
29232
29233
29234
29235
29236
29237
29238
29239
29240
29241
29242
29243
29244
29245
29246
29247
29248
29249
29250
29251
29252
29253
29254
29255
29256
29257
29258
29259
29260
29261
29262
29263
29264
29265
29266
29267
29268
29269
29270
29271
29272
29273
29274
29275
29276
29277
29278
29279
29280
29281
29282
29283
29284
29285
29286
29287
29288
29289
29290
29291
29292
29293
29294
29295
29296
29297
29298
29299
29300
29301
29302
29303
29304
29305
29306
.....
29313
29314
29315
29316
29317
29318
29319
29320
29321
29322
29323
29324
29325
29326
29327
29328
29329
29330
29331
29332
29333
29334
29335
29336
29337
29338
29339
29340
29341
29342
29343
29344
29345
29346
29347
29348
29349
29350
29351
.....
29355
29356
29357
29358
29359
29360
29361
29362
29363
29364
29365
29366
29367
29368
29369
29370
29371
29372
29373
29374
29375
29376
29377
29378
29379
29380
29381
.....
29398
29399
29400
29401
29402
29403
29404
29405
29406
29407
29408
29409
29410
29411
29412
.....
29776
29777
29778
29779
29780
29781
29782
29783
29784
29785
29786
29787
29788
29789
29790
.....
29930
29931
29932
29933
29934
29935
29936
29937
29938
29939
29940
29941
29942
29943
29944
29945
29946
29947
29948
29949
29950
29951
29952
29953
29954
29955
29956
29957
29958
29959
29960
29961
29962
29963
29964
29965
29966
29967
29968
29969
29970
29971
29972
29973
29974
29975
29976
29977
29978
29979
29980
29981
29982
29983
29984
29985
29986
29987
29988
29989
29990
29991
29992
29993
29994
29995
29996
29997
29998
29999
30000
30001
30002
30003
30004
30005
30006
30007
30008
30009
30010
30011
30012
30013
30014
30015
30016
30017
30018
30019
30020
30021
30022
30023
30024
30025
30026
30027
30028
30029
30030
30031
30032
30033
30034
30035
30036
30037
30038
30039
.....
30040
30041
30042
30043
30044
30045
30046
30047
30048
30049
30050
30051
30052
30053
30054
30055
30056
30057
30058
30059
30060
30061
30062
30063
30064
30065
30066
30067
30068
30069
30070
30071
30072
30073
.....
30076
30077
30078
30079
30080
30081
30082
30083
30084
30085
30086
30087
30088
30089
30090
30091
30092
30093
30094
30095
30096
30097
30098
30099
30100
30101
30102
30103
30104
30105
30106
30107
.....
30109
30110
30111
30112
30113
30114
30115
30116
30117
30118
30119
30120
30121
30122
30123
30124
30125
30126
30127
30128
30129
30130
30131
30132
30133
30134
30135
30136
30137
30138
30139
30140
30141
30142
30143
30144
30145
30146
30147
30148
30149
30150
30151
30152
.....
30340
30341
30342
30343
30344
30345
30346
30347
30348
30349
30350
30351
30352
30353
30354
30355
30356
30357
.....
30740
30741
30742
30743
30744
30745
30746
30747
30748
30749
30750
30751
30752
30753
30754
.....
30846
30847
30848
30849
30850
30851
30852
30853
30854
30855
30856
30857
30858
30859
30860
.....
31029
31030
31031
31032
31033
31034
31035
31036
31037
31038
31039
31040
31041
31042
31043
31044
31045
31046
.....
31254
31255
31256
31257
31258
31259
31260
31261
31262
31263
31264
31265
31266
31267
31268
.....
31400
31401
31402
31403
31404
31405
31406
31407
31408
31409
31410
31411
31412
31413
31414
31415
31416
31417
31418
.....
31422
31423
31424
31425
31426
31427
31428
31429
31430
31431
31432
31433
31434




31435
31436
31437
31438
31439
31440
31441
.....
31540
31541
31542
31543
31544
31545
31546
31547
31548
31549
31550
31551
31552
31553
31554
31555
31556
31557
31558
31559
31560
31561
31562
31563
.....
32682
32683
32684
32685
32686
32687
32688
32689
32690
32691
32692
32693
32694
32695
32696
.....
34691
34692
34693
34694
34695
34696
34697
34698
34699
34700
34701
34702
34703
34704
34705
OPTLABEL/basic:     Typographie
OPTLABEL/typo:      Signes typographiques
OPTLABEL/apos:      Apostrophe typographique|Correction des apostrophes droites. Automatisme possible dans le menu Outils > Options d’autocorrection > Options linguistiques > Guillemets simples > Remplacer (à cocher)
OPTLABEL/eepi:      Écriture épicène|Normalisation de l’écriture épicène avec points médians.
OPTLABEL/esp:       Espaces surnuméraires|Signale les espaces inutiles entre les mots, en début et en fin de ligne.
OPTLABEL/tab:       Tabulations surnuméraires|Signale les tabulations inutiles en début et en fin de ligne.
OPTLABEL/nbsp:      Espaces insécables|Vérifie les espaces insécables avec les ponctuations « ! ? : ; » (à désactiver si vous utilisez une police Graphite)
OPTLABEL/maj:       Majuscules|Vérifie l’utilisation des majuscules et des minuscules (par exemple, « la raison d’État », « les Européens »).
OPTLABEL/minis:     Majuscules pour ministères|Majuscules pour les intitulés des ministères.
OPTLABEL/virg:      Virgules|Virgules manquantes avant “mais”, “car” et “etc.”.
#OPTLABEL/romain:    Nombres romains|Utilise les caractères dédiés (petites majuscules) pour les nombres romains.
OPTLABEL/poncfin:   Ponctuation finale [!]|Vérifie s’il manque une ponctuation finale au paragraphe (seulement pour les paragraphes constitués de plusieurs phrases).
OPTLABEL/tu:        Traits d’union et soudures|Cherche les traits d’union manquants ou inutiles.
OPTLABEL/num:       Nombres|Espaces insécables sur les grands nombres (> 10 000). Vérifie la présence de « O » au lieu de « 0 ».
OPTLABEL/unit:      Espaces insécables avant unités de mesure
OPTLABEL/nf:        Normes françaises
OPTLABEL/liga:      Signaler ligatures typographiques|Ligatures de fi, fl, ff, ffi, ffl, ft, st.
OPTLABEL/mapos:     Apostrophe manquante après lettres isolées [!]|Apostrophe manquante après les lettres l d s n c j m t ç. Cette option sert surtout à repérer les défauts de numérisation des textes et est déconseillée pour les textes scientifiques.
OPTLABEL/chim:      Chimie|Typographie des composés chimiques (H₂O, CO₂, etc.).
OPTLABEL/ocr:       Erreurs de numérisation (OCR) [!]|Erreurs de reconnaissance optique des caractères. Beaucoup de faux positifs.

OPTLABEL/gramm:     Noms et adjectifs
OPTLABEL/conf:      Confusions et faux-amis|Cherche des erreurs souvent dues à l’homonymie (par exemple, les confusions entre « faîte » et « faite »).
OPTLABEL/loc:       Locutions|Écriture des locutions usuelles.
OPTLABEL/gn:        Accords (genre et nombre)|Accords des noms et des adjectifs.

OPTLABEL/verbs:     Verbes
OPTLABEL/conj:      Conjugaisons|Accord des verbes avec leur sujet.
OPTLABEL/infi:      Infinitif|Confusion entre l’infinitif et d’autres formes.
OPTLABEL/imp:       Impératif|Vérifie notamment la deuxième personne du singulier (par exemple, les erreurs : « vas… », « prend… », « manges… »).
OPTLABEL/inte:      Interrogatif|Vérifie les formes interrogatives et suggère de lier les pronoms personnels avec les verbes.
OPTLABEL/ppas:      Participes passés, adjectifs
OPTLABEL/vmode:     Modes verbaux

OPTLABEL/style:     Style
OPTLABEL/bs:        Populaire|Souligne un langage courant considéré comme erroné, comme « malgré que ».
OPTLABEL/pleo:      Pléonasmes|Repère des redondances sémantiques, comme « au jour d’aujourd’hui », « monter en haut », etc.
OPTLABEL/eleu:      Élisions et euphonies|Signale les élisions incorrectes et les tournures dysphoniques.
OPTLABEL/neg:       Adverbe de négation [!]|Ne … pas, ne … jamais, etc.
OPTLABEL/redon1:    Répétitions dans le paragraphe [!]|Sont exclus les mots grammaticaux, ceux commençant par une majuscule, ainsi que “être” et “avoir”.
OPTLABEL/redon2:    Répétitions dans la phrase [!]|Sont exclus les mots grammaticaux, ainsi que “être” et “avoir”.

OPTLABEL/misc:      Divers
OPTLABEL/mc:        Mots composés [!]|Vérifie si les mots composés à trait d’union existent dans le dictionnaire (hormis ceux commençant par ex-, mi-, quasi-, semi-, non-, demi- et d’autres préfixes communs).
................................................................................
OPTLANG/en_US:      Grammar checking (French)
OPTLABEL/basic:     Typography
OPTLABEL/typo:      Typographical glyphs
OPTLABEL/apos:      Typographical apostrophe|Detects typewriter apostrophes. You may get automatically typographical apostrophes in Tools > Autocorrect options > Localized options > Single quote > Replace (checkbox).
OPTLABEL/eepi:      Epicene writing|Normalization of epicene writing (usage of middle dots).
OPTLABEL/esp:       Useless spaces|Checks spaces within words and at the beginning and the end of lines.
OPTLABEL/tab:       Useless tabulations|Checks tabulations at the beginning and the end of lines.
OPTLABEL/nbsp:      Non-breakable spaces|Checks the use of non-breakable spaces with the following punctuation marks: « ! ? : ; » (deactivate it if you use a Graphite font).
OPTLABEL/maj:       Capitals|Checks the use of uppercase and lowercase letters (i.e. « la raison d’État », « les Européens »).
OPTLABEL/minis:     Capitals for ministry|Capital letters for ministry.
OPTLABEL/virg:      Commas|Missing commas before “mais”, “car” and “etc.”.
OPTLABEL/poncfin:   Ending punctuation [!]|Checks if an ending punctuation is missing on paragraphs (only for multi-sentences paragraphs).
#OPTLABEL/romain:    Roman numerals|Use dedicated characters (small caps) for roman numerals.
OPTLABEL/tu:        Hyphens and junctions|Checks missing or useless hyphens.
OPTLABEL/num:       Numerals|Large numerals and « O » instead of « 0 ».
OPTLABEL/unit:      Non-breaking spaces before units of measurement
OPTLABEL/nf:        French standards
OPTLABEL/liga:      Report typographical ligatures|Ligatures of fi, fl, ff, ffi, ffl, ft, st.
OPTLABEL/mapos:     Missing apostrophes after single letters [!]|Missing apostrophes after l d s n c j m t ç. This option is mostly useful to detect defects of digitized texts and is not recommended for scientific texts.
OPTLABEL/chim:      Chemistry|Typography for molecules (H₂O, CO₂, etc.)
OPTLABEL/ocr:       OCR errors [!]|Warning: many false positives.

OPTLABEL/gramm:     Nouns and Adjectives
OPTLABEL/conf:      Confusions and false friends|Seeks errors often due to homonymy (i.e. confusions between « faîte » et « faite »).
OPTLABEL/loc:       Locutions|Writing of common locutions.
OPTLABEL/gn:        Agreement (gender and number)|Agreement between nouns and adjectives.

OPTLABEL/verbs:     Verbs
OPTLABEL/conj:      Conjugation|Agreement between verbs and their subject.
OPTLABEL/infi:      Infinitive|Checks confusions between infinitive forms and other forms.
OPTLABEL/imp:       Imperative mood|Checks particularly verbs at second person singular (i.e. errors such as: « vas … », « prend … », « manges … »).
OPTLABEL/inte:      Interrogative mood|Checks interrogative forms and suggests linking the personal pronouns with verbs.
OPTLABEL/ppas:      Past participles, adjectives|Checks subject agreement with past participles and adjectives.
OPTLABEL/vmode:     Verbal modes

OPTLABEL/style:     Style
OPTLABEL/bs:        Popular style|Underlines misuse of language though informal and commonly used.
OPTLABEL/pleo:      Pleonasms|Semantic replications, like « au jour d’aujourd’hui », « monter en haut », etc.
OPTLABEL/eleu:      Élisions et euphonies|Signale les élisions incorrectes et les tournures dysphoniques.
OPTLABEL/neg:       Negation adverb [!]|Ne … pas, ne … jamais, etc.
OPTLABEL/redon1:    Duplicates in paragraph [!]|Are excluded grammatical words, words beginning by a capital letter, and also “être” and “avoir”.
OPTLABEL/redon2:    Duplicates in sentence [!]|Are excluded grammatical words, and also “être” and “avoir”.

OPTLABEL/misc:      Miscellaneous
OPTLABEL/mc:        Compound words [!]|Check if words with hyphen exist in the dictionary (except those beginning by ex-, mi-, quasi-, semi-, non-, demi- and other common prefixes).
................................................................................
!!
!!
!!! Espaces & tabulations                                                                         !!
!!
!!

# Espaces surnuméraires
# Note : les tabulations ne sont pas soulignées dans LibreOffice. Mais l’erreur est bien présente.
__<s>/tab(tab_début_ligne)__           ^[      ]+ <<- ->> ""                   && Espace(s) en début de ligne à supprimer : utilisez les retraits de paragraphe.
__<s>/tab(tab_fin_ligne)__             [       ]+$ <<- ->> ""                  && Espace(s) en fin de ligne à supprimer.

TEST: __tab__ {{    }}Espaces surnuméraires.                                    ->> ""
TEST: __tab__ {{        }}— Je suis là…
TEST: __tab__ Espaces surnuméraires.{{              }}                          ->> ""
TEST: __tab__ Fin de ligne{{    }}


__<s>/esp(esp_début_ligne)__        ^[   ]+ <<- ->> ""                          && Espace(s) en début de ligne à supprimer : utilisez les retraits de paragraphe (ou les tabulations à la rigueur).
__<s>/esp(esp_fin_ligne)__          [   ]+$ <<- ->> ""                                              && Espace(s) en fin de ligne à supprimer.
__<s>/esp(esp_milieu_ligne)__       (?:\b|[.?!,:;%‰‱˚»”])(  +) @@$ <<- -1>> " "                   && Espace(s) surnuméraire(s) à supprimer.

TEST: {{         }}Encore des espaces surnuméraires.                    ->> ""
TEST: {{ }}— Je suis là…
TEST: Espaces surnuméraires.{{         }}                               ->> ""
TEST: Fin de ligne{{ }}
TEST: Espaces{{                 }}surnuméraires.                        ->> " "


# Espaces insécable et sécable, et tabulations
__<s>/esp(esp_mélangés1)__              (?:  |  ) <<- ->> " | "                                     && Incohérence : l’espace insécable à côté de l’espace sécable n’a pas d’effet.
__<s>/esp(esp_mélangés2)__              (?:\u0009[  ]|[  ]\u0009) <<- ->> " |	"                   && Incohérence : espace et tabulation.

TEST: J’espère que ça ne va pas durer trop longtemps avec Mr{{  }}Paul.
TEST: J’espère que ça{{ 	}}va pas durer. (Ici, espace suivi d’une tabulation)      ->>  " |	"


# Espaces insécables multiples
__<s>/esp(esp_insécables_multiples)__   "[  ][  ]+" <<- ->> " | "                                   && Espace(s) insécable(s) surnuméraire(s) à supprimer.

TEST: «{{  }}Je suis partie. »
TEST: « Je suis partie.{{  }}»


# Espace avant ou après tiret
__[i]/esp(esp_avant_après_tiret)__
................................................................................
__<s>/typo(typo_guillemets_ouvrants_inverses1)__
    \w([«“][  ]) @@1
        <<- -1>> " »|”"                                                                             && Mettez des guillemets fermants plutôt qu’ouvrants.
__<s>/typo(typo_guillemets_ouvrants_inverses2)__
    ([«“])[  ]*$ @@0
        <<- -1>> " »|”"                                                                             && Mettez des guillemets fermants plutôt qu’ouvrants.
__<s>/typo(typo_guillemets_ouvrants_inverses3)__
    \w([  ][«“])[  ]*[!?,:;.…] @@1
        <<- -1>> " »|”"                                                                             && Mettez des guillemets fermants plutôt qu’ouvrants.

TEST: « Le grand homme{{«}}
TEST: « La grande femme{{ «}} !
TEST: Eux et leurs{{ ”}}amis{{”}} sont finis !
TEST: Vos {{“}}amis{{“ }}et vous êtes finis !




#
#
# NOTE
# Tout contrôle des espaces existants doit se faire avant ce point.
................................................................................


## Apostrophes manquantes
__[i>/typo(typo_apostrophe_manquante)!8__
    "((lorsqu|puisqu|presqu|quoiqu|jusqu|qu|aujourd|entr) )[aeéiouhyàîèêôû<]"  @@0,0
        <<- -1>> \2’                                                                                && Il manque vraisemblablement une apostrophe.
        <<- ~1>> \2’
# Solution prudente :
__[i>/typo(typo_apostrophe_manquante_prudence1)!8__
    ne ([mtsl] )[aeéiouhyàîèêôû<]  @@3
        <<- -1>> =\1[:-1]+"’"                                                                       && Il manque une apostrophe.
__[i>/typo(typo_apostrophe_manquante_prudence2)!8__
    (?:je|tu|ie?ls?|nous|vous|on|ça|elles?) ([nmtsl] )([aeéiouhyàîèêôû][\w-]*|<)  @@*,$
        <<- not option("mapos") and (\2 == "<" or morph(\2, ":V")) -1>> =\1[:-1]+"’"                && Il manque probablement une apostrophe.
# Solution audacieuse :
__[s>/typo(typo_apostrophe_manquante_audace1)!8__
    ([ldsncjmtç] )[aeéiouhAEÉIOUHyîèêôûYÎÈÊÔÛ<]  @@0
        <<- option("mapos") and not before("(?i)(?:lettre|caractère|glyphe|dimension|variable|fonction|point) *$")
        -1>> =\1[:-1]+"’"                                                                           && Il manque peut-être une apostrophe.
# Note : pour les majuscules, la règle se situe lors de la passe suivante.

TEST: __mapos__ {{n }}arrive pas à sa cheville
TEST: le coup {{qu }}avait donné                                                ->> qu’
TEST: pendant {{qu }}il avançait d’un pas indolent                              ->> qu’
TEST: {{jusqu }}à plus soif                                                     ->> jusqu’
TEST: il ne {{m }}avait jamais fait défaut                                      ->> m’
TEST: Il {{s }}était dit qu’il ne le ferait pas.                                ->> s’
................................................................................
!!!! Majuscules manquantes                                                                        !!
!!
!!

# Majuscules après un point
__[s]/maj(majuscule_après_point)__
    ({w_2})[.] ([a-zàâéèêîôç]\w*)  @@0,$
        <<- not re.search("(?i)^(?:etc|[A-Z]|chap|cf|ex|fig|hab|litt|circ|coll|r[eé]f|étym|suppl|bibl|bibliogr|cit|op|vol|déc|nov|oct|janv|juil|avr|sept)$", \1)
            and morph(\1, ":") and morph(\2, ":")
        -2>> =\2.capitalize()                                                                       && Après un point, une majuscule est généralement requise.

TEST: Je suis là. {{viens}}.                                              ->> Viens
TEST: Ils sont devenus idiots. {{c}}’est peine perdue.

__<s>/maj(majuscule_début_paragraphe)__
................................................................................
!!
!!
!!!! Points                                                                                       !!
!!
!!

# Points superflus
__[i>/typo(typo_et_cetera)__             etc(?:[.]{3,5}|…) <<- ->> etc.                             && Un seul point après « etc. »

TEST: {{etc…}}
TEST: {{etc...}}


__[s>/typo(typo_point_après_titre)__     (M(?:me|gr|lle)s?[.]) [A-ZÉÈ]  @@0  <<- -1>> =\1[0:-1]                     && Pas de point après cette abréviation.

TEST: Je crois que {{Mlle.}} Eva est partie.
TEST: J’ai pensé à {{Mme.}} Bovary toute la journée.


__[s>/typo(typo_point_après_numéro)__
    ([nN]os?[.])[  ]\d+  @@0
................................................................................
        <<- \1[1:3] == "os" -1>> nᵒˢ                                                                 && Pas de point dans l’abréviation de numéro.
        <<- __else__ -1>> nᵒ                                                                        && Pas de point dans l’abréviation de numéro.

TEST: C’est situé au {{no.}} 12.


# Points de suspension
__<s>/typo(typo_points_suspension1)__    (?<![.])[.]{3,5}(?![.]) <<- not before("(?i)etc$") ->> …   && Typographie : points de suspension. Utilisez le caractère dédié.
__<s>/typo(typo_points_suspension2)__    [.]{6,} <<- ->> =\0.replace("...", "…").rstrip(".")        && Typographie : succession de points. Utilisez le caractère dédié.
__<s>/typo(typo_points_suspension3)__    (?<![.…])[.][.](?![.]) <<- ->> …|.                         && Typographie : un ou trois points ?
__<s>/typo(typo_points_superflus)__      …[.][.]?(?![.]) <<- ->> …                                  && Point(s) superflu(s).

TEST: 3 points de suspension{{...}}
TEST: 5 points de suspension{{....}}
TEST: 5 points de suspension{{.....}}
TEST: 4 points de suspension{{….}}
TEST: 5 points de suspension{{…..}}
TEST: Double point{{..}}
................................................................................
!!
!!
!!!! Tirets                                                                                       !!
!!
!!

# Tirets, énumérations et dialogues
__<s>/typo(typo_tiret_début_ligne)__    ^[-_][  ] <<- ->> "— |– "           && Dialogues et énumérations : un tiret cadratin [1] ou demi-cadratin [2], suivi d’un espace insécable, est requis.
__<s>/typo(typo_tiret_dans_dialogue)__  ^ *«[  ](-[  ]) @@$ <<- -1>> "— |– "
    && Dialogues : un tiret cadratin [1] ou demi-cadratin [2], suivi d’un espace insécable, est requis. (Attention : à moins qu’il s’agisse d’un dialogue inclus dans un autre dialogue, cette manière d’écrire est erronée.)
__<s>/nbsp(nbsp_après_tiret1)__          ^([—–]) +  @@0  <<- ->> "\1 "      && Dialogues et énumérations : ce tiret doit être suivi d’un espace insécable.
__<s>/nbsp(nbsp_après_tiret2)__  ^([—–-])\d  @@0  <<- -1>> "— |– |−"        && Dialogues et énumérations : il faut tiret cadratin [1] ou demi-cadratin [2] suivi d’un espace insécable. S’il s’agit de représenter un nombre négatif, utilisez le signe “moins” [3].
__<s>/nbsp(nbsp_après_tiret3)__  ^([—–-])[\w«“‘]  @@0  <<- -1>> "— |– "     && Dialogues et énumérations : il faut tiret cadratin [1] ou demi-cadratin [2] suivi d’un espace insécable.
__<s>/typo(typo_tiret_incise1)__        " - (?=[0-9])" <<- ->> " – | — | − | −"     && Tiret d’incise : un tiret demi-cadratin [1] ou cadratin [2] est requis. (Ou éventuellement le signe “moins” s’il s’agit d’une soustraction [3] ou de représenter un nombre négatif [4].)
__<s>/typo(typo_tiret_incise2)__        " - (?![0-9])" <<- ->> " – | — | − "        && Tiret d’incise : un tiret demi-cadratin [1] ou cadratin [2] est requis. (Ou éventuellement le signe “moins” [3], s’il s’agit d’une soustraction.)

TEST: {{- }}Ce tiret n’est correct nulle part.                              ->> "— |– "
TEST: {{– }}Il manque toujours un espace insécable !                        ->> "– "
TEST: {{— }}Idem ! etc.                                                     ->> "— "
TEST: {{_ }}C’est long !                                                    ->> "— |– "
TEST: {{—}}Viens là.                                                        ->> "— |– "
TEST: {{-}}200 degrés                                                       ->> "— |– |−"
................................................................................
__<s>/typo(typo_inférieur_ou_égal)__                [\w  ](<=)[\w  ]  @@* <<- -1>> ≤|⩽              && Signe “inférieur ou égal”.
__<s>/typo(typo_supérieur_ou_égal)__                [\w  ](>=)[\w  ]  @@* <<- -1>> ≥|⩾              && Signe “supérieur ou égal”.

TEST: 3{{>=}}2
TEST: est-ce que a {{<=}} c


# ligatures typographiques : fi, fl, ff, ffi, ffl, ft, st
__<s>/liga(ligatures_typographiques)__              [fiflffffifflſtst] <<- ->> =undoLigature(\0)             && Suppression de la ligature typographique.

TEST: __liga__ un {{fl}}ottement                                           ->> fl
TEST: __liga__ une belle {{fi}}gure                                        ->> fi


#__<s]/typo__  °C <<- ->> ℃                                                      && Typographie. Utilisez le signe des degrés approprié.
................................................................................

TEST: C’est {{«}}stupide{{”}}.
TEST: Quel {{“}}emmerdeur{{»}}, ce gars-là.


__<s>/typo(typo_cohérence_guillemets_doubles_ouvrants)__
    (“)[^”’“«]+?(’)(?![\w'’])  @@0,$

        <<- not before("\\w$") -1>> "‘"                                                             && Guillemet ouvrant différent du guillemet fermant (’).
        <<- -2>> ”                                                                                  && Guillemet fermant différent du guillemet ouvrant (“).
__<s>/typo(typo_cohérence_guillemets_doubles_fermants)__
    (‘)[^’“«]+?(”)  @@0,$
        <<- not before("\\w$") -1>> "“"                                                             && Guillemet ouvrant différent du guillemet fermant (”).
        <<- not after("^\\w") -2>> ’                                                                && Guillemet fermant différent du guillemet ouvrant (‘).

TEST: Tu sais, {{‘}}ton ami{{”}} est venu.
TEST: Oui, je vois, mais c’est quand même un {{“}}salopard{{’}}.



__[i]/typo(typo_guillemets_doubles_ouvrants_non_fermés)__
    (“)\w[^”"»]+$  @@0
        <<- -1>> _                                                                                  && Guillemets fermants introuvables dans la suite du paragraphe.
__[i]/typo(typo_guillemets_doubles_fermants_non_ouverts)__
    ^[^“„«"]+\w(”)  @@$
................................................................................
TEST: {{4000}} Å                                ->> 4 000
TEST: {{3240}} µA                               ->> 3 240
TEST: 1111 0011,01 (binaire)


__[s>(num_grand_nombre_avec_points)__
    \d\d?\d?(?:[.]\d\d\d)+(?![0-9])
        <<- option("num") ->> =\0.replace(".", " ")                                                 && Grands nombres : utilisez des espaces insécables plutôt que des points.
        <<- ~>> =\0.replace(".", "_")

TEST: il cumule {{200.000.000}} de pertes sèches


__[s](num_grand_nombre_avec_espaces)__
    \d\d?\d?(?: \d\d\d)+
        <<- option("num") ->> =\0.replace(" ", " ")                                                 && Grands nombres : utilisez des espaces insécables.
        <<- ~>> =\0.replace(" ", "_")

TEST: Il a perdu {{20 000}} euros à la Bourse en un seul mois.


!!
!!
................................................................................
!!
!!!! Redondances                                                                                  !!
!!
!!
__[i]/redon1(redondances_paragraphe)__
    ({w_4})[  ,.;!?:].*[  ](\1)  @@0,$
        <<- not morph(\1, ":(?:G|V0)|>(?:t(?:antôt|emps|rès)|loin|souvent|parfois|quelquefois|côte|petit|même)/") and not \1[0].isupper()
        -2>> _                                                      && Dans ce paragraphe, répétition de « \1 » (à gauche).
        <<- __also__ -1>> _                                         && Dans ce paragraphe, répétition de « \1 » (à droite).

TEST: __redon1__ Tu es son {{avenir}}. Et lui aussi est ton {{avenir}}.
TEST: __redon1__ Car parfois il y en a. Mais parfois il n’y en a pas.



!!
................................................................................
!!!! OCR                                                                                          !!
!!
!!

# ?
__<s]/ocr(ocr_point_interrogation)__
    [  ]7
        <<- after0("^(?: +[A-ZÉÈÂ(]|…|[.][.]+| *$)") ->> " ?"                                       && Erreur de numérisation ?

TEST: __ocr__ des chiffrements{{ 7}} Paul n’en sait rien.
TEST: __ocr__ veux-tu en parler{{ 7}}


# !
__<s]/ocr(ocr_exclamation1)__
    [  ]I(?![ ’'][aâeéèêëiîïoôuy])
        <<- ->> " !"                                                                                && Erreur de numérisation ?
__<s]/ocr(ocr_exclamation2)__
    [  ]1(?= [A-ZÉÈÂÎ])
        <<- not morph(word(1), ";S") and not morph(word(-1), ":R") ->> " !"                         && Erreur de numérisation ?

TEST: __ocr__ Oh{{ I}} c’est pas formidable ?
TEST: __ocr__ Vraiment{{ 1}} Paul n’en savait rien.
TEST: __ocr__ Ça prendra 1 h.
TEST: __ocr__ Valeur : 1 KHz.


# Nombres
__[i]/ocr(ocr_nombres)__
    [\dOI][\dOI]+
        <<- \0 == "II" ->> 11|Il                                                                    && Erreur de numérisation ?
        <<- __else__ and not \0.isdigit() ->> =\0.replace("O", "0").replace("I", "1")               && Erreur de numérisation ?

TEST: __ocr__ {{II}} pleut tout le temps.
TEST: __ocr__ En l’an {{2OO1}}, tout commença.


## Casse
__[s]/ocr(ocr_casse_pronom_vconj)__
    {w2}-(On|Ils?|Elles?|Tu|Je|Nous|Vous|Mêmes?|Ci|Là|Une?s|Les?|La|Leur) @@$
        <<- -1>> =\1.lower()                                                                        && Erreur de numérisation ? Casse douteuse.

TEST: __ocr__ Part-{{On}} demain ?
TEST: __ocr__ À ce compte-{{Ci}}, on n’en viendra jamais à bout.
TEST: __ocr__ Quelques-{{Uns}} sont incapables d’y parvenir.


## Mots inconnus du dictionnaire
................................................................................
TEST: __ocr__ {{[[}}voyons celà].
TEST: __ocr__ {{((}}voyons ceci).


## Mélange chiffres/lettres
__[i]/ocr(ocr_le_la_les_regex)__
    [1[\]][easrnxiocuwàéè]
        <<- \0.endswith("e") ->> le                                                                 && Erreur de numérisation ?
        <<- __else__ and \0.endswith("a") ->> la                                                    && Erreur de numérisation ?
        <<- __else__ and \0.endswith("à") ->> la|là                                                 && Erreur de numérisation ?
        <<- __else__ ->> le|la                                                                      && Erreur de numérisation ?

TEST: __ocr__ avec {{1e}} chien du policier                                                 ->> le
TEST: __ocr__ il le jura sur {{1a}} tête de sa mère                                         ->> la
TEST: __ocr__ {{]à}}                                                                        ->> la|là
TEST: __ocr__ {{1c}} chat du voinsin est idiot                                              ->> le|la
TEST: __ocr__ oui, {{[e}} chien a faim                                                      ->> le

................................................................................
TEST: {{1a}} venue des problèmes                                ->> la
TEST: {{1es}} enfants sont au lit                               ->> les
TEST: Je… ne {{1e}}… crois pas…                                 ->> le


__[i]/ocr(ocr_les)__
    [1[\]][ea]s
        <<- ->> les                                                                                 && Erreur de numérisation ?

TEST: __ocr__ {{1es}} jours clairs
TEST: __ocr__ {{[as}} amis sont présents


__[i]/ocr(ocr_l_regex)__
    ([1[][’'`‘])[aâeéèêëiîïoôuyh][\w-]*  @@0
        <<- -1>> l’|L’|j’|J’                                                                        && Erreur de numérisation ?

TEST: __ocr__ {{1’}}année s’annonce agitée.
TEST: __ocr__ {{['}}ouverture du championnat est pour bientôt.


__[i]/ocr(ocr_il_regex)__
    1fs?
        <<- \0.endswith("s") ->> Ils|ils|ifs                                                        && Erreur de numérisation ?
        <<- __else__ ->> Il|il|if                                                                   && Erreur de numérisation ?

TEST: __ocr__ {{1fs}} s’en sortent comme ils peuvent.



!!!
!!!
................................................................................
TEST: Il y a un {{doublon doublon}}.


!!!! Nombres: typographie                                                                         !!

#(\d\d\d\d)-(\d\d\d\d)   <<- ->> \1–\2                              && Ne pas séparer deux dates par un trait d’union, mais par un tiret demi-cadratin.

__[s]/num(num_lettre_O_zéro1)__  [\dO]+[O][\dO]+ <<- not option("ocr") ->> =\0.replace("O", "0")    && S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ».
__[s]/num(num_lettre_O_zéro2)__  [1-9]O <<- not option("ocr") ->> =\0.replace("O", "0")             && S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ».

TEST: année {{2O11}}                                                      ->> 2011
TEST: {{3O}} (chiffre avec un O).                                         ->> 30



!!!! Purge des références aux notes                                                               !!
................................................................................
TEST: POLITIQUESOCIÉTÉÉCONOMIEMONDECULTUREART DE VIVREMAGAZINE (qui peut faire boguer JavaScript avec certaines regex)


!!!! Traits d’union                                                                               !!

__[i]/tu(tu_trait_union_douteux)__
    ({w1})(?:--|—|–|−|⁃)({w1})  @@0,$
    <<- spell(\1+"-"+\2) and analyse(\1+"-"+\2, ":") ->> \1-\2                                      && Trait d’union : un tiret simple suffit.

TEST: Nous préparons une {{contre–attaque}}.
TEST: Nous préparons une {{contre−attaque}}.


__<i]/tu(tu_t_euphonique_incorrect)__
    ([-–—− ]t(?:[’' ][-–—−]?|[-–—−][’' ]?))(ie?ls?|elles?|on|tu)  @@0,$
................................................................................
!!
!!!! Virgules                                                                                     !!
!!
!!

__virg_virgules_manquantes__
    *WORD  etc  .
        <<- /virg/ -1.:0>> , etc.                                                                   && Avant « etc. », il faut mettre une virgule.|https://fr.wiktionary.org/wiki/etc.

    *WORD  car  @:(?:Os|D)
        <<- /virg/ not morph(\1, ":[DR]") -1.:2>> , car
        && Si « car » est la conjonction de coordination, une virgule est peut-être souhaitable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3447

    *WORD  mais  $:Os
        <<- /virg/ not morph(\1, ":D.*:[me]:[si]") -1.:2>> , mais
        && Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445

    *WORD  donc  [je|j’|il|on]
        <<- /virg/ not morph(\1, ":[VG]") -1.:2>> , donc
        && Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448

TEST: Un chien, un chat{{ etc.}}                                            ->> , etc.
TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit.                   ->> , car
TEST: Je suis fatigué{{ mais}} il a joué toute la nuit.                     ->> , mais
TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire.              ->> , donc
TEST: il s’est donc tu
TEST: c’était donc elles les meilleures
................................................................................
TEST: c’était eux qui prenaient tous les risques
TEST: il avançait donc le moyen d’y parvenir
TEST: Chacun peut l’entendre d’une manière différente et donc on se demande bien ce qui est mesuré dans les réponses.


__virg_fin_dialogue__
    .  »  ~^[a-zéà]
        <<- /virg/ -1:2>> " »,| »"          && Ou il faut une virgule (exemple : « Je viens », dit-il). Ou le point est superflu. Ou il faut une majuscule sur le mot suivant.

    ,  »  ?,¿  ~^[a-zéà]
        <<- /virg/ -1:-2>> " »,| »"         && Virgule mal placée ou superflue.

TEST: « Ça suffit{{. »}} dit-elle.                                          ->> " »,| »"
TEST: « J’en ai plus qu’assez{{, »}} dis-je.                                ->> " »,| »"
TEST: « C’est ainsi{{, »,}} dis-je.                                         ->> " »,| »"
TEST: dès son premier rendez-vous au centre
TEST: Depuis combien de temps fumez-vous ?


__virg_virgule_avant_points_suspension__
    ,  …
        <<- /virg/ ->> …                    && Typographie : pas de virgule avant les points de suspension.

TEST: ceci, cela{{, …}}                                                     ->> …


__virg_virgule_après_point__
    *WORD  .  ,
        <<- /virg/ space_after(\1, 0, 0) and space_after(\2, 0, 0)
................................................................................
TEST: il n’y a pas faute.
TEST: une séparation hommes/femmes



!!!! Élisions                                                                                     !!

# presque : élision
__typo_presque__
    presqu’  *WORD
        <<- /typo/ not morph(\2, ">[iî]le/") -1>> "presque "            && Pas d’élision autorisée sur “presque”, sauf avec “presqu’île”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745

TEST: {{Presqu’}}exclusivement bâtie en pierre.
TEST: C’est une presqu’île.
TEST: Cette presqu’ile est particulièrement venteuse.


# quelque : élision
__typo_quelque__
    quelqu’  *WORD
        <<- /typo/ not value(\2, "|un|une|") -1>> "quelque "            && Pas d’élision autorisée sur “quelque”, sauf avec “quelqu’un” ou “quelqu’une”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745

TEST: {{Quelqu’}}absurde que ce soit, il faut y céder.
TEST: quelqu’un vient.
TEST: elle s’en est allée avec quelqu’une…
................................................................................
    ne [lui|leur] en            rendez-vous
    ne [le|la|les|lui|leur]     rendez-vous
    [me|ne|nous|vous|lui]       rendez-vous
        <<- =>> define(\-1, ":VCi1:2p")
        <<- !-1>>

#   [un|mon|ton|son|ce|mes|tes|ses|leurs] rendez-vous
#   rendez-vous seulement défini comme :N:m:i  dans le dictionnaire

__imp_verbes_composés_impératifs__
    ~\w-l(?:es?|a)-(?:[mt]oi|nous|leur)$
    ~\w-(?:[nv]ous|lui|leur)-en$
    ~\w-[mt]’en$
    ~\w-[mt]’y$
        <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True)                               && Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29
................................................................................

# This graph is parsed only if option <ocr> is activated.

## Casse
__ocr_casse__
    /_Tit_
        <<- /ocr/ before("\\w") and (morph(\1, ":G", ":M") or morph(\1, ":[123][sp]", ":[MNA]|>Est/"))
        -:>> =\1.lower()                                                                            && Erreur de numérisation ? Casse improbable.

    [L’|D’|N’|M’|T’|S’|C’|Ç’]  *WORD
        <<- /ocr/ before("\\w") and not \2.isupper() -1:>> =\1.lower()                              && Erreur de numérisation ? Casse douteuse.

TEST: __ocr__ regarde dans l’obscurité de {{L’}}entrepôt                        ->> l’
TEST: __ocr__ votre ami la regarde, {{Vous}} ne l’avez pas achetée              ->> vous
TEST: __ocr__ pour accommoder son regard, {{La}} lourde forme demeure           ->> la
TEST: __ocr__ parler de Nicole, {{Le}} sommeil ne vient pas.                    ->> le
TEST: __ocr__ a fait de toi, Charles, {{Tu}} étais beau quand                   ->> tu
TEST: __ocr__ s’habituer à se faire servir, {{Au}} début ça                     ->> au
................................................................................
TEST: __ocr__ {{J }}arrive demain


# Note: l’option “mapos” cherche les apostrophes manquantes après les lettres l, d, n, m, t, s, j, c, ç
__ocr_lettres_isolées2!2__
    [b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|z]
        <<- /ocr/ before("[   ]$") and not before("\\d[   ]+$") and not (\1.isupper() and value(>1, "|.|<end>|"))
        ->> _                                                                                       && Lettre isolée : erreur de numérisation ?

    [á|â|ä]
        <<- /ocr/ ->> à|a                                                                           && Lettre isolée : erreur de numérisation ?

    [é|è|ê|ë]
        <<- /ocr/ ->> e|à|a                                                                         && Lettre isolée : erreur de numérisation ?

    [í|ì|î|ï]
        <<- /ocr/ ->> i|à|a                                                                         && Lettre isolée : erreur de numérisation ?

    [ó|ò|ö]
        <<- /ocr/ ->> ô|o|a|a                                                                       && Lettre isolée : erreur de numérisation ?

    [ú|ù|û|ü]
        <<- /ocr/ ->> u|à|a                                                                         && Lettre isolée : erreur de numérisation ?

    [ý|ỳ|ÿ|ŷ]
        <<- /ocr/ ->> y                                                                             && Lettre isolée : erreur de numérisation ?

    ç
        <<- /ocr/ ->> c|a|à                                                                         && Lettre isolée : erreur de numérisation ?

TEST: __ocr__ des verres luisent sur {{i}} le bureau blanc.
TEST: __ocr__ la voix, {{e}} est celle de…
TEST: __ocr__ ressemble {{h}} une fenêtre de serre.
TEST: __ocr__ viens {{á}} nous
TEST: __ocr__ c’est ça avoir {{é}} faire à lui.
TEST: __ocr__ au point {{í}}
................................................................................
TEST: __ocr__ X
TEST: __ocr__ V.


# virgules
__ocr_virgules__
    [il|le|la|l’|les|de|d’|ne|n’|me|m’|te|t’|se|s’|à|ce|cet|cette|mon|ma|ta|sa|mes|tes|ses|nos|vos|quelque|quelques|au|aux] ,
        <<- /ocr/ space_after(\1, 0, 0) and not \1.isupper() or value(\1, "|à|") ->> \1             && Erreur de numérisation ? Virgule superflue ?

TEST: __ocr__ Pierre entre pour {{se,}} rapprocher de L
TEST: __ocr__ je voudrais faire une question ou deux sur une maison de ce village, la… comment l’appelle-t-on ?


# A
__ocr_A__
................................................................................

TEST: __ocr__ Va jusqu’au point {{À}}


# âge / age
__ocr_âge__
    >age
        <<- /ocr/ ->> =\1.replace("a", "â").replace("A", "Â")                                       && Erreur de numérisation ?

TEST: __ocr__ l’{{age}}


# autre / antre
__ocr_autre__
    >antre
        <<- /ocr/ ->> =\1.replace("n", "u")                                                         && Erreur de numérisation ?

TEST: __ocr__ cet {{antre}} gars lui semblait bien louche.


# avec / aven / arec
__ocr_avec__
    [arec|aven]
        <<- /ocr/ ->> avec                                                                          && Erreur de numérisation ?

TEST: __ocr__ Elle s’en alla {{arec}} eux sans un regard en arrière.


# avaient / avalent
__ocr_avaient__
    avalent
        <<- /ocr/ ->> avaient                                                                       && Erreur de numérisation ?

TEST: __ocr__ Ils {{avalent}} très faim.


# avais / avals / axais
__ocr_avis__
    [avals|axais]
        <<- /ocr/ ->> avais                                                                         && Erreur de numérisation ?

TEST: __ocr__ j’{{axais}} souvent perdu le contrôle de moi-même, mais jamais à ce point


# brait / bruit
__ocr_bruit__
    brait
................................................................................

TEST: __ocr__ tout ce qui {{brait}} dans la nuit


# car dans / cardans
__ocr_car_dans__
    cardans
        <<- /ocr/ ->> car dans                                                                      && Erreur de numérisation ?

TEST: __ocr__ On se tut tous, {{cardans}} l’armée on apprend à la boucler.


# cela
__ocr_cela__
    Gela
................................................................................

TEST: __ocr__ {{Gela}}, on n’en veut plus.


# celui / celai
__ocr_celui__
    celai
        <<- /ocr/ not value(<1, "|je|ne|le|la|les|") ->> celui                                      && Erreur de numérisation ?

TEST: __ocr__ je suis déjà venu et {{celai}} qui viendra encore.


# ces / cos
__ocr_ces__
    cos
        <<- /ocr/ ->> ces                                                                           && Erreur de numérisation ?

TEST: __ocr__ {{cos}} problèmes sont insolubles.


# C’était / Celait
__ocr_c_était__
    celait
................................................................................

TEST: __ocr__ {{celait}} perdu d’avance.


# cette / celte / cotte
__ocr_cette__
    [celte|celle]  @:N.*:f:s
        <<- /ocr/ -1>> cette                                                                        && Erreur de numérisation ?

    cotte
        <<- /ocr/ not morph(<1, ":D.*:f:[si]") ->> cette                                            && Erreur de numérisation ?

TEST: __ocr__ mais {{celte}} femme semblait savoir ce qu’elle faisait.
TEST: __ocr__ avec {{celle}} tentative d’humour, il pensait nous faire rire.
TEST: __ocr__ on poirautait, {{cotte}} mariée n’arrivait pas à se décider.


# chère / obère
__ocr_chère__
    obère
        <<- /ocr/ not value(<1, "|j’|n’|l’|m’|t’|s’|il|on|elle|ça|cela|ceci|") ->> chère            && Erreur de numérisation ?

TEST: __ocr__ cette femme {{obère}} à notre cœur.


# Comme / Gomme
__ocr_comme__
    Gomme
        <<- /ocr/ not value(<1, "|et|ou|où|") ->> Comme                                             && Erreur de numérisation ?

TEST: __ocr__ {{Gomme}} il était sage à cette époque-là !


# Comment / Gomment
__ocr_comment__
    Gomment
        <<- /ocr/ ->> Comment                                                                       && Erreur de numérisation ?

TEST: __ocr__ {{Gomment}} s’en sortir avec tous ces retards qui s’accumulent ?


# contre / coutre / contra
__ocr_contre__
    [contra|coutre|coutra]
        <<- /ocr/ ->> contre                                                                        && Erreur de numérisation ?

TEST: __ocr__ elle était {{coutre}} cette idée et le serait toujours.


# de / da
__ocr_de__
    da
        <<- /ocr/ ->> de                                                                            && Erreur de numérisation ?

TEST: __ocr__ Le nombre {{da}} personnes endettées augmente sans cesse.


# dans / bans / clans
__ocr_dans__
    bans
        <<- /ocr/ not morph(<1, ":D.*:p") ->> dans                                                  && Erreur de numérisation ?

    [clans|dons]  [le|la|l’|les|un|une|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|chaque|chacun|plusieurs|quelques|maints|maintes|tout|tous|toute|toutes|certains|certaines|nombre]
        <<- /ocr/ not morph(<1, ":D.*:p") -1>> dans                                                 && Erreur de numérisation ?

    dam
        <<- /ocr/ not (value(<1, "|grand|") and value(<2, "|au|")) ->> dans                         && Erreur de numérisation ?

TEST: __ocr__ Mais {{bans}} cette ferme, tout était bien organisé.
TEST: __ocr__ sache que, {{clans}} cette ferme, on ne fait que du bio.
TEST: __ocr__ renvoyons ces chiens {{dam}} leur niche
TEST: __ocr__ nous avons vaincu, au grand dam de tous ces grands messieurs


# dame / darne
__ocr_dame__
    [>darne|>daine]
        <<- /ocr/ ->> =\1.replace("rn", "m").replace("in", "m").replace("RN", "M").replace("IN", "M")   && Erreur de numérisation ?

TEST: __ocr__ ces {{darnes}} arrivèrent avec dix minutes d’avance.
TEST: __ocr__ cette {{daine}} élégamment vêtue.


# dé / de / dés / des / dès / dos
__ocr_de_des__
    dé
        <<- /ocr/ not morph(<1, ":D.*:m:[si]") ->> de                                               && Erreur de numérisation ?

    dés
        <<- /ocr/ not morph(<1, ":D.*:m:p") ->> des|dès                                             && Erreur de numérisation ?

    do
        <<- /ocr/ ->> de                                                                            && Erreur de numérisation ?

    dos
        <<- /ocr/ not morph(<1, ":D.*:[me]") ->> des|dès                                            && Erreur de numérisation ?

TEST: __ocr__ {{dé}} gros camions circulaient toute la journée
TEST: __ocr__ {{dés}} fois, ça ne passe pas
TEST: __ocr__ {{do}} bon matin.
TEST: __ocr__ {{dos}} camions cabossés à n’en plus finir


# de la / delà
__ocr_de_la__
    delà
        <<- /ocr/ not value(<1, "|au|de|en|par|") ->> de la|de là                                   && Erreur de numérisation ?

TEST: __ocr__ la peinture {{delà}} maison s’écaillait


# doute / cloute
__ocr_doute__
    cloute
        <<- /ocr/ ->> doute                                                                         && Erreur de numérisation ?

TEST: __ocr__ Sans aucun {{cloute}}.


# du / dû
__ocr_du__
    dû  @:[NA]:[me]:[si]¬:(?:Y|Ov)
        <<- /ocr/ -1>> du                                                                           && Erreur de numérisation ?

TEST: __ocr__ prendre {{dû}} bon temps
TEST: __ocr__ il aurait dû la trouver
TEST: __ocr__ Tous eussent dû subir ce supplice raffiné.


# elle / elfe
__ocr_elle__
    elfe
        <<- /ocr/ morph(<1, ":R|<start>|>,") or isNextVerb() ->> elle                               && Erreur de numérisation ?

    elfes
        <<- /ocr/ morph(<1, ":R|<start>|>,") or isNextVerb() ->> elles                              && Erreur de numérisation ?

TEST: __ocr__ {{elfe}} viendra bientôt
TEST: __ocr__ {{Elfes}} s’ennuyaient à mourir.


# est / ost
__ocr_est__
    ost
        <<- /ocr/ ->> est                                                                           && Erreur de numérisation ?

TEST: __ocr__ Le cheval {{ost}} attaché.


# et / cl
__ocr_et__
    [cl|c1|e1|el]
        <<- /ocr/ not before("[0-9] +$") ->> et                                                     && Erreur de numérisation ?

TEST: __ocr__ elle {{cl}} lui, c’était pour la vie.
TEST: __ocr__ {{El}} il faisait froid là-haut


# état / étal
__ocr_état_étais_étaient__
    étal
        <<- /ocr/ ->> état                                                                          && Erreur de numérisation ?

    [étals|étale]
        <<- /ocr/ ->> étais|états                                                                   && Erreur de numérisation ?

    étalent
        <<- /ocr/ ->> étaient                                                                       && Erreur de numérisation ?

TEST: __ocr__ l’{{étal}} des finances ne le permet pas
TEST: __ocr__ Quels {{étals}} sont venus ?
TEST: __ocr__ Ce qu’ils {{étalent}} vraiment, nul ne le savait.


# êtes
................................................................................
TEST: __ocr__ Quoiqu’ils {{fessent}} ça donne de la merde
TEST: __ocr__ {{fesse}} que Dieu nous entende


# fille / tille
__ocr_fille__
    tille
        <<- /ocr/ ->> fille                                                                         && Erreur de numérisation ?

TEST: __ocr__ Cette {{tille}} n’en avait jamais assez.


# fol(s) / foi(s)
__ocr_foi__
    [fol|fols]
        <<- /ocr/ ->> =\1.replace("l", "i").replace("L", "I")                                       && Erreur de numérisation ?

TEST: __ocr__  ils sont quelques {{fols}} battus$


................................................................................
TEST: __ocr__ qui ne {{fout}} rien de leur journée
TEST: __ocr__ il {{fout}} entendre cette voix


# fut / rut
__ocr_fut__
    rut
        <<- /ocr/ ->> fut                                                                           && Erreur de numérisation ?

TEST: __ocr__ ce petit {{rut}} traité comme un chien


# il / n / ils / U / Us / i1 / if / 11
__ocr_il__
    [<start>|,|(]  [n|h|d]  ~^[bcçdfghjklmnpqrstvwxz]
        <<- /ocr/ morph(\3, ":(?:O[on]|3s)") -2>> il                                                && Erreur de numérisation ?

    [U|if|i1]
        <<- /ocr/ ->> Il|il                                                                         && Erreur de numérisation ?

    [Us|ifs|i1s]
        <<- /ocr/ ->> Ils|ils                                                                       && Erreur de numérisation ?

    11
        <<- /ocr/ not morph(>1, ":N", "*") ->> Il|il                                                && Erreur de numérisation ?

TEST: __ocr__ {{n}} contient trop de soufre.
TEST: __ocr__ {{U}} arrive
TEST: __ocr__ {{Us}} arrive demain.
TEST: __ocr__ {{i1s}} en savent beaucoup trop pour leur propre bien.
TEST: __ocr__ {{11}} n’en sait rien
TEST: __ocr__ elle a 11 ans.
................................................................................
TEST: __ocr__ 11 jours de souffrance
TEST: __ocr__ nous sommes le 11 septembre


# fa / la
__ocr_la__
    fa
        <<- /ocr/ ->> la                                                                            && Erreur de numérisation ?

TEST: __ocr__ dans {{fa}} demeure


# large / largo
__ocr_large__
    >largo
        <<- /ocr/ ->> =\1.replace("o", "e")                                                         && Erreur de numérisation ?

TEST: __ocr__ elle pense {{largo}}


# l’ / j’ / Y / I
__ocr_lj1__
    ~^Y’[aâeéèêëiîïoôuyh]
        <<- /ocr/ ->> ="l’"+\1[2:] + "|L’"+\1[2:] + "|j’"+\1[2:] + "|J’"+\1[2:]                     && Erreur de numérisation ?

    Y  ~^[aâeéèêëiîïoôuyh]
        <<- /ocr/ before("\\w") and not morph(\2, ":Y") ->> l’\2|j’\2                               && Erreur de numérisation ?

    ~^[Ii]’[aâeéèêëiîïoôuyh]
        <<- /ocr/ ->> ="l’"+\1[2:] + "|L’"+\1[2:] + "|j’"+\1[2:] + "|J’"+\1[2:]                     && Erreur de numérisation ?

    [I|i|1]  ~^[aâeéèêëiîïoôuy]
        <<- /ocr/ ->> l’\2|L’\2|j’\2|J’\2                                                           && Erreur de numérisation ?

TEST: __ocr__ {{Y’arrive}} demain.
TEST: __ocr__ et {{Y acte}}
TEST: __ocr__ {{I’arrive}} demain.
TEST: __ocr__ {{1 entente}} cordiale


# l’ / V / P
__ocr_l__
    ~^V.
        <<- /ocr/ \1.istitle() and before("\\w") and morph(\1, ":", ":M") >>>
        <<- /ocr/ spell(\1[1:]) -:>> ="v"+\1[1:] + "|l’"+\1[1:]                                     && Erreur de numérisation ?
        <<- /ocr/ __else__ -:>> ="v"+\1[1:]                                                         && Erreur de numérisation ?

    ~^P[aâeéêèiîïoôuy]
        <<- /ocr/ before("\\w") and morph(\1, ":", ":M") and spell(\1[1:])
        -:>> ="l’"+\1[1:] + "|p"+\1[1:]                                                             && Erreur de numérisation ?

TEST: __ocr__ beaucoup de {{Vélos}} à Versailles.
TEST: __ocr__ avec {{Vagile}} méthode de notre amie Virginie, tout est possible.
TEST: __ocr__ Viens demain.
TEST: __ocr__ Ce jour où Valérie eut sa licence de droit.
TEST: __ocr__ Il scrute Pierre, {{Pair}} maussade.
TEST: __ocr__ Une grosse vague arrivait et {{Peau}} remplit.
................................................................................

TEST: __ocr__ il faut {{lavoir}} pour le croire.


# l’était / Tétait
__ocr_l_était__
    Tétait
        <<- /ocr/ -:>> l’était|t’était|T’était                                                      && Erreur de numérisation ?

TEST: __ocr__ perdu, cet homme {{Tétait}}


# le / les / lé / lés / lui / lai / lei / la / tu / lu
__ocr_le_la_les__
    >lé
        <<- /ocr/ ->> =\1.replace("é", "e").replace("É", "E")                                       && Erreur de numérisation ?

    [lai|lei]
        <<- /ocr/ ->> lui|les                                                                       && Erreur de numérisation ?

    los
        <<- /ocr/ ->> les                                                                           && Erreur de numérisation ?

    lu
        <<- /ocr/ not morph(<1, ":(?:V0|N.*:m:[si])") ->> tu|le|la                                  && Erreur de numérisation ?

TEST: __ocr__ il s’agit de {{lés}} observer.
TEST: __ocr__ {{lai}} gros sont mal vus.
TEST: __ocr__ {{lu}} as si bien réussi
TEST: __ocr__ contre {{los}} impies


# M. / Mr / M
__ocr_mr__
    M ,  /_Tit_
        <<- /ocr/ space_after(\1, 0, 1) -1:2>> "Mr |M. "                                                                  && Erreur de numérisation ?

    M  /_Tit_
        <<- /ocr/ -1>> "Mr |M. "                                                                    && Erreur de numérisation ?

TEST: __ocr__ {{M,}} Patrick nous a oubliés.
TEST: __ocr__ Rencontre avec {{M}} Black.


# Mais / Hais / Mats / niais
__ocr_mais__
    Hais
        <<- /ocr/ ->> Mais                                                                          && Erreur de numérisation ?

    mats
        <<- /ocr/ not morph(<1, ":D:[me]:p") ->> mais                                               && Erreur de numérisation ?

    maïs
        <<- /ocr/ not morph(<1, ":D:(?:m:s|e:p)") ->> mais                                          && Erreur de numérisation ?

    niais
        <<- /ocr/ not morph(<1, ">(?:homme|ce|quel|être)/") ->> mais                                && Erreur de numérisation ?

TEST: __ocr__ {{Hais}} il en sait trop.
TEST: __ocr__ c’était bien, {{mats}} quelle journée
TEST: __ocr__ c’est bien, {{niais}} trop subtil.
TEST: __ocr__ c’est parfait, {{maïs}} trop subtil.


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

TEST: __ocr__ ce {{mâtin}}, il y eut une tempête.


# même / même / mème / mémo / môme
__ocr_même__
    >môme
        <<- /ocr/ ->> =\1.replace("ô", "ê").replace("Ô", "Ê")                                       && Erreur de numérisation ?

    >mème
        <<- /ocr/ ->> =\1.replace("è", "ê").replace("È", "Ê")                                       && Erreur de numérisation ?

    >mémo
        <<- /ocr/ ->> =\1.replace("é", "ê").replace("É", "Ê").replace("o", "e").replace("O", "E")   && Erreur de numérisation ?

TEST: __ocr__ J’en ai assez {{môme}} si ça ne se voit pas.
TEST: __ocr__ Ces {{mèmes}} hommes qui nous ont lâchés au pire moment
TEST: __ocr__ C’est l’incessant retour du {{mémo}}.


# mes
................................................................................
TEST: __ocr__ elle est fière de {{mas}} succès
TEST: __ocr__ Est-ce que tu vas nier {{nies}} réussites


# mon / won
__ocr_mon__
    won
        <<- /ocr/ ->> mon                                                                           && Erreur de numérisation ?

TEST: __ocr__ c’est {{won}} ami


# mot / mol / moi
__ocr_mot__
    [mol|mols]
        <<- /ocr/ ->> =\1.replace("l", "t").replace("L", "T")+"|"+\1.replace("l", "i").replace("L", "I")  && Erreur de numérisation ?

TEST: __ocr__ c’est un {{mol}} très dur.


# moyen
__ocr_moyen__
    >moyeu
................................................................................

TEST: __ocr__ quel {{moyeu}} employer ?


# ne / na / no / rie
__ocr_ne__
    [no|na|rie]
        <<- /ocr/ ->> ne                                                                            && Erreur de numérisation ?

TEST: __ocr__ {{no}} fais rien que tu pourrais regretter
TEST: __ocr__ elle avance, mais {{rie}} prend jamais de risque inconsidéré.


# nous / noue / noua
__ocr_nous__
    [noue|noua]
        <<- /ocr/ ->> nous                                                                          && Erreur de numérisation ?

    mous
        <<- /ocr/ morph(<1, "<start>|>,|:(?:R|Os|X)") ->> nous                                      && Erreur de numérisation ?

TEST: __ocr__ {{noue}} attaquer à eux signerait notre perte.
TEST: __ocr__ il finit par {{mous}} énerver avec ces histoires sans fin
TEST: __ocr__ {{mous}} croire invincibles


# par / paf / pan / pat
__ocr_par__
    [paf|pat]
        <<- /ocr/ ->> par                                                                           && Erreur de numérisation ?

    pan
        <<- /ocr/ ->> par|peu                                                                       && Erreur de numérisation ?

    pur @:[DMT]
        <<- /ocr/ -1>> par                                                                          && Erreur de numérisation ?

TEST: __ocr__ Une seule action {{paf}} jour
TEST: __ocr__ {{Pur}} la déesse !
TEST: __ocr__ attaqué {{pan}} deux fois


# par le / par la / par les / parle / parla / parles
__ocr_par_le_la_les__
    parle  @:[NA].*:[me]:[si]
        <<- /ocr/ not value(<1, "|ne|il|on|elle|je|") -1>> par le                                   && Erreur de numérisation ?

    parla  @:[NA].*:[fe]:[si]
        <<- /ocr/ not value(<1, "|ne|il|on|elle|") -1>> par la                                      && Erreur de numérisation ?

    parles  @:[NA].*:[pi]
        <<- /ocr/ not value(<1, "|ne|tu|") -1>> par les                                             && Erreur de numérisation ?

TEST: __ocr__ {{parle}} glaive et le mensonge, l’Église s’imposa.
TEST: __ocr__ {{parla}} force, on peut réussir
TEST: __ocr__ tu fus trompée {{parles}} mensonges permanents de son beau-père.


# pendant / pondant
__ocr_pendant__
    pondant
        <<- /ocr/ ->> pendant                                                                       && Erreur de numérisation ?

TEST: __ocr__ {{pondant}} qu’elle travaille, il se prélasse.


# peu / peut / peux / pou
__ocr_peu_peux_peut__
    pou
        <<- /ocr/ not morph(<1, ":D.*:m:s") ->> peu                                                 && Erreur de numérisation ?

    poux
        <<- /ocr/ not morph(<1, ":D.*:m:p") ->> peux|peut|pour                                      && Erreur de numérisation ?

TEST: __ocr__ il est {{pou}} probable qu’il y parvienne.
TEST: __ocr__ elles sont venues {{poux}} voir de leurs propres yeux.


# plus / pins
__ocr_plus__
    pins
        <<- /ocr/ ->> plus                                                                          && Erreur de numérisation ?

TEST: __ocr__ ils sont {{pins}} instruits qu’il n’y paraît.


# puis / pois
__ocr_puis__
    pois
        <<- /ocr/ not morph(<1, ":D.*:m:p") ->> puis                                                && Erreur de numérisation ?

TEST: __ocr__ elles sont venues, {{pois}} elles sont parties.


# pour / pouf
__ocr_pour__
    pouf
        <<- /ocr/ not morph(<1, ":D.*:f:s") ->> pour                                                && Erreur de numérisation ?

TEST: __ocr__ {{pouf}} elle, il était prêt à tout.


# près / prés
__ocr_près__
    prés
        <<- /ocr/ not morph(<1, ":D.*:[me]:p") ->> près                                             && Erreur de numérisation ?

TEST: __ocr__ ils sont arrivés {{prés}} de la tombe.


# que / quo
__ocr_que__
    qua
        <<- /ocr/ not value(<1, "|sine|") ->> que                                                   && Erreur de numérisation ?

    quo
        <<- /ocr/ not value(<1, "|statu|") ->> que                                                  && Erreur de numérisation ?

TEST: __ocr__ elles ne savent pas {{qua}} faire
TEST: __ocr__ {{Quo}} penser de tout ceci ?
TEST: __ocr__ pour elle, c’est une condition sine qua non.


# qu’importe
__ocr_qu_importe__
    qu’ [importé|importa]
        <<- /ocr/ -2>> importe                                                                      && Erreur de numérisation ?

TEST: __ocr__ Qu’{{importé}} le flacon, pourvu qu’on ait l’ivresse.


# reine / ruine
__ocr_reine_ruine__
    >rainer
................................................................................

TEST: __ocr__ {{Quêtant}} la fille d’une déesse, elle n’avait pas à se justifier.


# qui / gui
__ocr_qui__
    gui
        <<- /ocr/ not morph(<1, ":D.*:m:s") ->> qui                                                 && Erreur de numérisation ?

TEST: __ocr__ avec {{gui}} faire alliance ?


# s’il / sil
__ocr_s_il__
    sil
        <<- /ocr/ ->> s’il                                                                          && Erreur de numérisation ?

    sils
        <<- /ocr/ ->> s’ils                                                                         && Erreur de numérisation ?

TEST: __ocr__ {{sil}} avait su, il n’aurait rien tenté de trop audacieux.
TEST: __ocr__ {{sils}} étaient venus, on l’aurait vu.


# son / sou
__ocr_son__
................................................................................

TEST: __ocr__ ça vient de {{sou}} ami


# sur / sar
__ocr_sur__
    sar
        <<- /ocr/ ->> sur                                                                           && Erreur de numérisation ?

    sui
        <<- /ocr/ not value(>1, "|generis|") ->> sur                                                && Erreur de numérisation ?

TEST: __ocr__ il ne savait rien {{sar}} eux.
TEST: __ocr__ il en est {{sui}}


# tard / lard
__ocr_tard__
    lard
        <<- /ocr/ not value(<1, "|le|ce|mon|ton|son|du|un|") ->> tard                               && Erreur de numérisation ?

TEST: __ocr__ elles seront là tôt ou {{lard}}.


# tandis que / taudis
__ocr_tandis__
    taudis [que|qu’]
        <<- /ocr/ -1>> tandis                                                                       && Erreur de numérisation ?

TEST: __ocr__ mais {{taudis}} qu’elle œuvrait à leur salut, les nuages s’amoncelaient.


# l’est / Test
__ocr_l_est__
    Test
        <<- /ocr/ before("\\w") ->> l’est                                                           && Erreur de numérisation ?

TEST: __ocr__ ça {{Test}} à leurs yeux.


# tête / tète
__ocr_tête__
    tète
        <<- /ocr/ not value(<1, "|je|il|elle|on|ne|ça|") ->> =\1.replace("è", "ê").replace("È", "Ê")    && Erreur de numérisation ?

TEST: __ocr__ cette forte {{tète}} n’écoute jamais personne.


# tin / fin / un
__ocr_fin_un__
    tin
        <<- /ocr/ ->> fin|un                                                                        && Erreur de numérisation ?

TEST: __ocr__ c’était {{tin}} marchand vaniteux.


# ton / tan
__ocr_ton__
    >tan
        <<- /ocr/ ->> =\1.replace("a", "o").replace("A", "O")                                       && Erreur de numérisation ?

TEST: __ocr__ pour {{tan}} propre bien.


# toute / tonte
__ocr_toute__
    >tonte
        <<- /ocr/ ->> =\1.replace("n", "u").replace("N", "U")                                       && Erreur de numérisation ?

TEST: __ocr__ à {{tonte}} fin utile


# tu es / tues
__ocr_tu_es__
    tues
        <<- /ocr/ not morph(<1, ":(?:N.*:f:p|V0e.*:3p)|>(?:tu|ne)/") ->> tu es                      && Erreur de numérisation ?

TEST: __ocr__ dans tous les cas, {{tues}} foutue.
TEST: __ocr__ ses actions tues.


# un / vin
__ocr_un__
    vin
        <<- /ocr/ not value(<1, "|ce|de|du|un|quel|leur|le|") ->> un                                && Erreur de numérisation ?

TEST: __ocr__ {{vin}} mathématicien hors du commun.


# une / ure / vine
__ocr_une__
    ure
        <<- /ocr/ ->> une                                                                           && Erreur de numérisation ?

    vine
        <<- /ocr/ ->> une                                                                           && Erreur de numérisation ?

TEST: __ocr__ il avait {{ure}} femme élégante et silencieuse
TEST: __ocr__ c’est pour {{vine}} amie


# vêtement / vêlement
__ocr_vêtement__
................................................................................

TEST: __ocr__ La femme {{volt}} plus loin


# vous / voua / voue
__ocr_vous__
    [voue|voua]
        <<- /ocr/ ->> vous                                                                          && Erreur de numérisation ?

TEST: __ocr__ avec {{voue}}, je n’ai pas confiance.



@@@@
@@@@
................................................................................
TEST: combien {{d’}}iourtes                                                 ->> de


# ce -> cet
__eleu_euphonie_cet__
    ce  ~^[aâeéèêiîoôuûyœæ]
        <<- /eleu/ not re.search("(?i)^(?:I(?:I|V|X|er|ᵉʳ))", \2) and morph(\2, ":[NA].*:[me]", ":G|;é")
        -1>> cet                                                                && Euphonie : “ce” devient “cet” devant un mot commençant par une voyelle.|https://fr.wikipedia.org/wiki/Euphonie

TEST: {{ce}} animal est dangereux
TEST: ce yacht


# Verbe 1ʳᵉ personne du singulier, interrogatif… xxxé-je
__eleu_é_je__
................................................................................
TEST: souhaitè-je


# ma, ta, sa / mon, ton, son
__eleu_euphonie_ma_ta_sa__
    [ma|ta]  ~^[aâeéèêiîoôuûyœæ].
        <<- /eleu/ morph(\2, ":[NA]", ":G|;é") and not re.search("(?i)^(?:I(?:I|V|X|i?[eè]?re|ʳᵉ))", \2)
        -1>> =\1[0:1]+"on"                                                      && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom  “mon”, “ton” ou “son” pour respecter l’euphonie. Exemple : mon étoile (féminin).|https://fr.wikipedia.org/wiki/Euphonie

    sa  ~^[aâeéèêiîoôuûyœæ].
        <<- /eleu/ not \1.isupper() and morph(\2, ":[NA]", ":G|;é") and not re.search("(?i)^(?:I(?:I|V|X|i?[eè]?re|ʳᵉ))", \2) >>>
        <<- /eleu/ morph(\2, ":[123][sp]") -1>> =\1[0:1]+"on|ça"                && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom  “mon”, “ton” ou “son” pour respecter l’euphonie. (À moins que vous ne confondiez “sa” et “ça”.) Exemple : son étoile (féminin), ça existe.|https://fr.wikipedia.org/wiki/Euphonie
        <<- /eleu/ __else__ -1>> =\1[0:1]+"on"                                  && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom  “mon”, “ton” ou “son” pour respecter l’euphonie. Exemple : son étoile (féminin).|https://fr.wikipedia.org/wiki/Euphonie

TEST: {{ta}} aimée                                              ->> ton
TEST: {{ma}} obligée                                            ->> mon
TEST: {{sa}} œuvre                                              ->> son|ça
TEST: {{sa}} existence                                          ->> son
TEST: SA déchue aux yeux du Fuhrer
TEST: Ce couple va donner à la France sa très importante collection qui rejoindra le musée d’Orsay
................................................................................
!!!! Nombres ordinaux                                                                             !!
!!
!!

__typo_ordinaux_chiffres_exposants__
# Désactivé dans Writer pour éviter la confusion avec le formatage exposant
    1er
        <<- /typo/ sContext != "Writer" ->> 1ᵉʳ     && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1ers
        <<- /typo/ sContext != "Writer" ->> 1ᵉʳˢ    && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1re
        <<- /typo/ sContext != "Writer" ->> 1ʳᵉ     && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1res
        <<- /typo/ sContext != "Writer" ->> 1ʳᵉˢ    && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2d
        <<- /typo/ sContext != "Writer" ->> 2ᵈ      && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2ds
        <<- /typo/ sContext != "Writer" ->> 2ᵈˢ     && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2de
        <<- /typo/ sContext != "Writer" ->> 2ᵈᵉ     && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2des
        <<- /typo/ sContext != "Writer" ->> 2ᵈᵉˢ    && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+e$
        <<- /typo/ \1 != "1e" and sContext != "Writer" ->> =\1[:-1]+"ᵉ"         && Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+es$
        <<- /typo/ \1 != "1es" and sContext != "Writer" ->> =\1[:-2]+"ᵉˢ"       && Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: le {{1er}} qui m’emmerde, je le fusille       ->> 1ᵉʳ
TEST: les {{1ers}} seront toujours là               ->> 1ᵉʳˢ
TEST: la {{1re}} classe                             ->> 1ʳᵉ
TEST: les {{1res}} classes                          ->> 1ʳᵉˢ
TEST: être {{2d}} au classement                     ->> 2ᵈ
TEST: éternels {{2ds}}                              ->> 2ᵈˢ
................................................................................
TEST: c’est le {{3e}}                               ->> 3ᵉ
TEST: les {{4es}} vont en cours.                    ->> 4ᵉˢ


__typo_ordinaux_chiffres_incorrects__
    1 [ier|er]
    1ier
        <<- /typo/ ->> 1ᵉʳ          && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1 [iers|ers]
    1iers
        <<- /typo/ ->> 1ᵉʳˢ         && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1 [ière|ère|re]
    [1ière|1ère]
        <<- /typo/ ->> 1ʳᵉ          && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1 [ières|ères|res]
    [1ières|1ères]
        <<- /typo/ ->> 1ʳᵉˢ         && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2 nd
    2nd
        <<- /typo/ ->> 2ᵈ           && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2 nds
    2nds
        <<- /typo/ ->> 2ᵈˢ          && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2 nde
    2nde
        <<- /typo/ ->> 2ᵈᵉ          && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2 ndes
    2ndes
        <<- /typo/ ->> 2ᵈᵉˢ         && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+$  [e|è|ième|ieme|ème|eme]
        <<- /typo/ ->> \1ᵉ          && Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+$  [es|ès|ièmes|iemes|èmes|emes]
        <<- /typo/ ->> \1ᵉˢ         && Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+(?:è|i?[èe]me)s?$
        <<- /typo/ \1.endswith("s")
        ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ"    && Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
        <<- /typo/ __else__
        ->> =\1.replace("me", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉ"      && Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: le {{1ier}} de chaque semaine             ->> 1ᵉʳ
TEST: les {{1 iers}}                            ->> 1ᵉʳˢ
TEST: la {{1ière}} fois, c’est la plus dure     ->> 1ʳᵉ
TEST: les {{1ières}}                            ->> 1ʳᵉˢ
TEST: le {{2nd}} du mois                        ->> 2ᵈ
TEST: les {{2nds}} du mois                      ->> 2ᵈˢ
................................................................................
#TEST: __romain__ Anno {{MXXXIII}}                   ->> ⅯⅩⅩⅩⅠⅠⅠ
#TEST: __romain__ j’ai eu un CDI.
#TEST: __romain__ c’est un écran LCD


__typo_ordinaux_chiffres_romains_exposants!5__
    Ier
        <<- /typo/ sContext != "Writer" and not option("romain") ->> Iᵉʳ     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> Ⅰᵉʳ     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    Iers
        <<- /typo/ sContext != "Writer" and not option("romain") ->> Iᵉʳˢ    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> Ⅰᵉʳˢ    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    Ire
        <<- /typo/ sContext != "Writer" and not option("romain") ->> Iʳᵉ     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> Ⅰʳᵉ     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    Ires
        <<- /typo/ sContext != "Writer" and not option("romain") ->> Iʳᵉˢ    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> Ⅰʳᵉˢ    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    IId
        <<- /typo/ sContext != "Writer" and not option("romain") ->> IIᵈ     && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> ⅠⅠᵈ     && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    IIds
        <<- /typo/ sContext != "Writer" and not option("romain") ->> IIᵈˢ    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> ⅠⅠᵈˢ    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    IIde
        <<- /typo/ sContext != "Writer" and not option("romain") ->> IIᵈᵉ    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> ⅠⅠᵈᵉ    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    IIdes
        <<- /typo/ sContext != "Writer" and not option("romain") ->> IIᵈᵉˢ   && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> ⅠⅠᵈᵉˢ   && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{2,20}e$
        <<- /typo/ sContext != "Writer" and not option("romain") ->> =\1[:-1]+"ᵉ"    && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> =\1[:-1].replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ")+"ᵉ"
#        && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    [Ie|Ve|Xe]
        <<- /typo/ sContext != "Writer" and not option("romain") ->> =\1[:-1]+"ᵉ"    && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> =\1[:-1].replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ")+"ᵉ"
#        && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{2,20}es$
        <<- /typo/ sContext != "Writer" and not option("romain") ->> =\1[:-2]+"ᵉˢ"   && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> =\1[:-2].replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ")+"ᵉˢ"
#        && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    [Ies|Ves|Xes]
        <<- /typo/ sContext != "Writer" and not option("romain") ->> =\1[:-2]+"ᵉˢ"   && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> =\1[:-2].replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ")+"ᵉˢ"
#        && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: François {{Ier}}                          ->> Iᵉʳ
TEST: les {{Iers}}                              ->> Iᵉʳˢ
TEST: la {{Ire}}                                ->> Iʳᵉ
TEST: les {{Ires}}                              ->> Iʳᵉˢ
TEST: le {{IId}}                                ->> IIᵈ
TEST: les {{IIds}}                              ->> IIᵈˢ
................................................................................
#TEST: __romain__ {{XXXIIes}}                    ->> ⅩⅩⅩⅠⅠᵉˢ
#TEST: __romain__ les {{Ves}} siècles            ->> Ⅴᵉˢ


__typo_ordinaux_chiffres_romains_incorrects!5__
    I ier
    Iier
        <<- /typo/ ->> Iᵉʳ                                  && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> Ⅰᵉʳ                     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    I iers
    Iiers
        <<- /typo/ ->> Iᵉʳˢ                                 && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> Ⅰᵉʳˢ                    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    I ière
    Iière
        <<- /typo/ ->> Iʳᵉ                                  && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> Ⅰʳᵉ                     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    I ières
    Iières
        <<- /typo/ ->> Iʳᵉˢ                                 && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> Ⅰʳᵉˢ                    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    II nd
    IInd
        <<- /typo/ ->> IIᵈ                                  && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> ⅠⅠᵈ                     && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    II nds
    IInds
        <<- /typo/ ->> IIᵈˢ                                 && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> ⅠⅠᵈˢ                    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    II nde
    IInde
        <<- /typo/ ->> IIᵈᵉ                                 && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> ⅠⅠᵈᵉ                    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    II ndes
    IIndes
        <<- /typo/ ->> IIᵈᵉˢ                                && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> ⅠⅠᵈᵉˢ                   && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{1,20}$  [e|è|ième|ieme|ème|eme]
        <<- /typo/ ->> \1ᵉ                                  && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> =\1.replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ") + "ᵉ"
#        && Nombre ordinal romain singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{1,20}$  [es|ès|ièmes|iemes|èmes|emes]
        <<- /typo/ ->> \1ᵉˢ                                 && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> =\1.replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ") + "ᵉˢ"
#        && Nombre ordinal romain pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{1,20}(?:è|i?[èe]me)s?$
        <<- /typo/ not morph(\1, ":G") >>>
        <<- /typo/ \1.endswith("s") or \1.endswith("S")
        ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ"        && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
        <<- /typo/ __else__
        ->> =\1.replace("me", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉ"         &&  Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ \1.endswith("s") or \1.endswith("S")
#        ->> =\1.replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ").replace("mes", "").replace("è", "").replace("e", "").replace("i", "")+"ᵉˢ"
#        && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__
#        ->> =\1.replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ").replace("me", "").replace("è", "").replace("e", "").replace("i", "")+"ᵉ"
#        &&  Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: François {{Iier}}                         ->> Iᵉʳ
TEST: {{Iiers}}                                 ->> Iᵉʳˢ
TEST: {{I ière}}                                ->> Iʳᵉ
TEST: {{Iières}}                                ->> Iʳᵉˢ
TEST: le {{IInd}} siècle                        ->> IIᵈ
TEST: {{IInds}}                                 ->> IIᵈˢ
................................................................................
    *NUM  -  ~^\d\d?$  -  ~^\d{2,5}$
        <<- \1.isdigit() ~>> ␣
        <<- =>> change_meta(\1, "DATE")


__date_jour_mois_année__
    31 [avril|juin|septembre|novembre]
        <<- /date/ space_after(\1, 1, 1) ->> 30 \2                                                  && Cette date est invalide. Il n’y a que 30 jours en \2.

    [30|31] février
        <<- /date/ space_after(\1, 1, 1) ->> 28 février|29 février                                  && Cette date est invalide. Il n’y a que 28 ou 29 jours en février.

    ~^\d\d?$  [janvier|février|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre]  ~^\d{2,5}$
        <<- /date/ not checkDate(\1, \2, \3) ->> _                                                  && Cette date est invalide.

TEST: le {{31 avril}}
TEST: le {{30 février}}
TEST: {{29 février 2011}}
................................................................................
        <<- /tu/ not value(\2, "|a|") ->> mi-\2                                      && S’il s’agit d’un seul mot, il manque un trait d’union.

TEST: J’ai été engagé pour un {{mi temps}}.


__tu_préfixe_quasi__
    quasi  @:N¬:[AGW]
        <<- /tu/ morph(<1, ":D") ->> quasi-\2                   && Il manque un trait d’union : « quasi » s’accroche au mot qui le suit s’il s’agit d’un nom.

    quasi
        <<- ~>> *

TEST: leurs {{quasi indifférences}}

    ~^[Qq]uasi-.+$
................................................................................
    [oui|ouï] dire
        <<- /tu/ morph(<1, ":G") ->> ouï-dire                   && Il manque probablement un trait d’union.

    par [dessous|dessus|devant|delà|derrière|dehors|dedans|devers]
        <<- /tu/ ->> par-\2                                     && Il manque un trait d’union.

    par ci ?,¿ par là
        <<- /tu/ ->> par-ci par-là|par-ci, par-là               && Trait(s) d’union manquant(s).

    vis [à|a] vis
        <<- /tu/ ->> vis-à-vis                                  && Il manque les traits d’union.

TEST: on a fait {{à la va vite}}…
TEST: partir {{à contre cœur}}
TEST: Ils font des tests {{à tout va}}
................................................................................
        <<- /tu/ ->> \1\2|\1-\2|\2 \1                           && Mettez un trait d’union, fusionnez ou inversez les termes.
        <<- ~>> ␣

    [copié+ses|copier] / [coller|collé+ses]
    [copié-coller|copiée-coller|copiés-coller|copiées-coller]
    [copier-collé|copier-collée|copier-collés|copier-collées]
        <<- /tu/ ->> copier-coller|copié-collé|copiée-collée|copiés-collés|copiées-collées
        && Copier-coller pour la verbe ou l’action, copié-collé (et ses variantes) pour ce qui est copié-collé.

    >cul de sac
        <<- /tu/ ->> \1-\2-\3                                   && Mettez des traits d’union.|https://fr.wiktionary.org/wiki/cul-de-sac

    déjà vu
        <<- /tu/ morph(<1, ":D.*:[me]") ->> \1-\2               && S’il s’agit d’un nom, mettez un trait d’union.|https://fr.wiktionary.org/wiki/d%C3%A9j%C3%A0-vu

................................................................................
    [va+s] [t-en|>tan|tant] [>guerre|guère]
    vat’en [>guerre|guère]
    vat-en [>guerre|guère]
    vat [en|>an] [>guerre|guère]
    va-t-en [>guerre|guère]
    va-t’en-guerre
    va-t-en-guère
        <<- /tu/ ->> va-t-en-guerre                                                                 && Va-t-en-guerre (invariable) : des traits d’union sont nécessaires.|https://fr.wiktionary.org/wiki/va-t-en-guerre

TEST: {{Va-t-en}}, c’en est assez.
TEST: Un {{va-t’en guerre}}, on ne peut pas lui faire confiance.
TEST: Les {{va-t-en guerre}} sont de sortie.
TEST: Elle va t’en donner, des devoirs.


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

    [vingt|vingts] [deux|trois|quatre|cinq|six|sept|huit|neuf]
    [vingt|vingts] [>deuxième|>troisième|>quatrième|>cinquième|>sixième|>septième|>huitième|>neuvième]
        <<- /tu/ not value(<1, "|quatre|") ->> vingt-\2                                             && Il manque un trait d’union.

    soixante [dix|douze|treize|quatorze|quinze|seize|dix-sept|dix-huit|dix-neuf]
    soixante [>dixième|>douzième|>treizième|>quatorzième|>quinzième|>seizième|>dix-septième|>dix-huitième|>dix-neuvième]
        <<- /tu/ ->> \1-\2                                                                          && Trait(s) d’union manquant(s).

    quatre [vingt|vingts]
        <<- /tu/ not morph(>1, ":B:e:p") ->> \1-\2                                                  && Il manque un trait d’union.

    quatre [vingt|vingts] [un|une|deux|trois|quatre|cinq|six|sept|huit|neuf|dix|onze|douze|treize|quatorze|quinze|seize|dix-sept|dix-huit|dix-neuf]
    quatre [vingt|vingts] [>unième|>deuxième|>troisième|>quatrième|>cinquième|>sixième|>septième|>huitième|>neuvième|>dixième|>onzième|>douzième|>treizième|>quatorzième|>quinzième|>seizième|>dix-septième|>dix-huitième|>dix-neuvième]
        <<- /tu/ ->> quatre-vingt-\3                                                                && Trait(s) d’union manquant(s).

    [quatre-vingt|quatre-vingts] [un|une|deux|trois|quatre|cinq|six|sept|huit|neuf|dix|onze|douze|treize|quatorze|quinze|seize|dix-sept|dix-huit|dix-neuf]
    [quatre-vingt|quatre-vingts] [>unième|>deuxième|>troisième|>quatrième|>cinquième|>sixième|>septième|>huitième|>neuvième|>dixième|>onzième|>douzième|>treizième|>quatorzième|>quinzième|>seizième|>dix-septième|>dix-huitième|>dix-neuvième]
        <<- /tu/ ->> quatre-vingt-\2                                                                && Trait(s) d’union manquant(s).

TEST: Il en veut {{vingts}} !                   ->> vingt
TEST: Y a-t-il {{quarante deux}} pages ?        ->> quarante-deux
TEST: J’en veux {{quatre-vingt}} !              ->> quatre-vingts
TEST: Non, {{quatre-vingts deux}} !             ->> quatre-vingt-deux
TEST: {{Quatre vingts deux}}.                   ->> Quatre-vingt-deux
TEST: {{quatre vingt}} hommes                   ->> quatre-vingt
................................................................................

TEST: je suis allé dans la {{grand’rue}}.                           ->> grand-rue
TEST: la grand-rue
TEST: sur la grand-place



!!!! Trait d’union : formes interrogative (nous/vous)                                             !!

__inte_union_nous1!7__
    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~ons$  nous
    [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~ons$  nous
    [ne|n’]  [le|la|l’|les]                  [lui|leur|en|y]             ~ons$  nous
    [ne|n’]  [lui|leur|y]                    en                          ~ons$  nous
        <<- /inte/ space_after(\-2, 1, 1) and morph(\-2, ":V.*:1p", ":[GW]") and not tag_before(\1, "_1p_")
        --2:-1>> \-2-\-1                                                                            && Forme interrogative ? Mettez un trait d’union.

    ,  ~ons$  nous  [<end>|,|)]
    ,  ~ons$  nous  @:¬:(?:1p|Y)
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    <start>  ~ons  nous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|allons|venons|partons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~ons  nous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: n’y {{retrouverons nous}} jamais la tranquilité ?
TEST: pourquoi n’en {{entendons nous}} jamais parler ?
TEST: que {{pouvons nous}} dans cette vie
TEST: que {{pouvons nous}} faire ?
TEST: {{Connaissons nous}} réellement cette langue ?
TEST: ils sont, {{croyons nous}}, indéfendables
................................................................................

__inte_union_vous1!7__
    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~ez$  vous
    [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~ez$  vous
    [ne|n’]  [le|la|l’|les]                  [lui|leur|en|y]             ~ez$  vous
    [ne|n’]  [lui|leur|y]                    en                          ~ez$  vous
        <<- /inte/ space_after(\-2, 1, 1) and morph(\-2, ":V.*:2p", ":[GW]") and not tag_before(\1, "_2p_")
        --2:-1>> \-2-\-1       && Forme interrogative ? Mettez un trait d’union.

    ,  ~ez$  vous  [<end>|,|)]
    ,  ~ez$  vous  @:¬:(?:2p|Y)
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    <start>  ~ez$  vous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|allez|venez|partez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~ez$  vous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: ne {{soutiendrez vous}} pas cette proposition ?
TEST: n’en {{voulez vous}} jamais à ces gens ?
TEST: je suis, {{penserez vous}}, un imbécile.
TEST: {{pouvez vous}} réussir ?
TEST: comment {{pensez vous}} y parvenir
TEST: {{Osez vous}} remettre en question notre autorité.
................................................................................
TEST: Vous ne pouvez vous satisfaire de si peu.


!!!! Virgules (2)                                                                                 !!

__virg_dialogue_après_nom_propre__
    [<start>|,|(]  $:M¬:G  [/-je|/-tu|/-on|/-nous|/-vous|/-ils|/-elles|/-iels|/_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: {{Julien}} donne-moi le sel.
TEST: Alexandre tient-il ses généraux ?
TEST: Alexandra vient-elle ?
................................................................................


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

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

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

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

TEST: {{A}} vaincre sans péril, on triomphe sans gloire.
TEST: « {{A}} partir de maintenant, ce ne sera plus comme avant.
TEST: — {{A}} n’en plus pouvoir
TEST: — {{A}} t’emmener loin de tout ceci.
TEST: {{A}} bientôt, mon ami.
TEST: A bientôt fini son devoir.
................................................................................
!!
!!

### double négation
__double_négation__
    pas [personne|aucun|aucune|jamais]
        <<- /conf/ not morph(<1, ":D.*:[me]") ->> \1|pas, \1
        && Double négation : les mots « pas \1 » ne devraient pas se succéder. Si ces mots appartiennent à des propositions distinctes, une virgule est peut-être préférable.

TEST: Ce que tu ne fais {{pas jamais}}.


### incohérences globales (attention à la casse du 2e mot, car beaucoup de sigles peuvent tromper)
__conf_incohérences_globales__
    [ce|cet|cette|ma|ta|sa|mon] [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|iel|iels|nous|vous|on]
        <<- /conf/ not \1.isupper() and not \2.isupper()
        -2>> =suggSimil(\2, ":[NA].*:[si]", True)                                                   && Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

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

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

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

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

................................................................................
TEST: Elles sont parties {{de puis}} au moins trois heures.
TEST: Depuis le temps que ça existe, tu devrais être au courant.


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

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

    [au|aux] [quel|quels|quelle|quelles]
    [au|aux] qu’ [elle|elles]
        <<- /conf/ ->> auquel|auxquels|auxquelles                                                   && Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/auquel

    [au|aux] combien  @:[AYW]
        <<- /conf/ -1:2>> ô combien                                                                 && Confusion probable.|https://fr.wiktionary.org/wiki/%C3%B4_combien
................................................................................
TEST: {{En}} Avignon
TEST: {{En}} Agen


# avoir été
__bs_avoir_été_chez__
    >avoir été chez
        <<- /bs/ not value(<1, "|l’|") ->> _                                                        && Tournure familière. Utilisez « être allé ».

TEST: J’{{ai été chez}} le coiffeur.
TEST: Chez les intellectuels, le mot utopie n’a jamais été synonyme de folie, mais il l’a été pour l’homme de la rue.
TEST: Saoul, je l’ai été chez mon ami, mais après ça allait mieux.


# abyme / abîme
................................................................................
TEST: incessamment {{sous peut}}
TEST: ils arrivent {{incessamment sous peu}}.


# pire
__bs_pire__
    [moins|aussi|plus] >pire
        <<- /bs/ -2>> mauvais|mauvaise|mauvaises                    && Tournure erronée : “\1 \2”. Utilisez “mauvais”.|http://www.academie-francaise.fr/plus-pire-moins-pire

    de mal en >pire
        <<- /bs/ ->> de mal en pis                                  && Tournure erronée. Écrivez “de mal en pis”.

    au pire aller
        <<- /bs/ ->> au pis aller                                   && Tournure erronée. Écrivez “au pis aller”.|https://fr.wiktionary.org/wiki/au_pis_aller

................................................................................
        ->> bien qu’|quoiqu’                                                                        && “Malgré que” est une tournure populaire. Utilisez “bien que” ou “quoique”.

TEST: {{Malgré que}} je sois fou.
TEST: {{malgré qu’}}elle soit là.


#([mts]e|[nv]ous) (rappel\w+) (de) <<- word(1) != "ne" and not morph(word(1), ":V")
#   -3>> _                                                     && Expression impropre. « Se rappeler quelque chose » ou « Se souvenir de quelque chose ».
#Se rappelle de l’amour

#enjoindre à qqn de faire qqch


__code_legacy__
    legacy code
    code legacy
        <<- /bs/ ->> code hérité|code reliquat                                                      && \1 \2. Anglicisme superflu.

TEST: c’est du {{legacy code}}.
TEST: ce {{code legacy}} est un cauchemar



!!
................................................................................
TEST: J’leur en {{veut}} pas, à ces crétins.
TEST: je t’en {{parlé}}
TEST: Je est un autre.


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

    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: j’ai l’impression de ne même pas savoir ce qu’est un « juif français ».



## 2sg
__conj_tu__
    tu                                                                       @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:Ov|P|[ISK].*:2s)
................................................................................
__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.


## 3sg
................................................................................
TEST: il n’y {{aurais}} plus rien à attendre de la religion et de la politique.
TEST: il y en {{as}}.


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

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

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


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

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

TEST: on {{et}} parti.
TEST: on nous {{et}} indispensable.
TEST: on ne {{travail}} pas le week-end.
TEST: on m’{{arête}} encore une fois avec une impudence insupportable.
TEST: on n’y {{pas}} beaucoup d’entente entre eux.
TEST: on est normal de ne presque pas payer des gens qui effectuent un travail
................................................................................

    [ce|c’]                         @>être/:V¬:(?:N|A|3[sp]|P|Q|Ov)
    [ce|c’]  [le|l’]                @>être/:V¬:(?:N|A|3s|P|Q|Ov)
    [ce|c’]  [ne|n’]  ?[le|l’|en]¿  @>être/:V¬:(?:3[sp]|P|Q|Ov)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                                                      && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    [c’|ç’]                         @:¬:(?:[123][sp]|Y|P|Ov|X)|>que/
        <<- /conf/ -2>> =suggSimil(\2, ":3s", False)                                                && Incohérence avec « \1 » : « \2 » devrait être un verbe.

TEST: pour toi qui sais tout, ce ne le {{fus}} pas
TEST: ce secret tu, ce {{devais}} être un cauchemar.
TEST: Ce peut être un chien ou un chat.
TEST: ce ne peut être aussi stupide.
TEST: ce dut être un cauchemar.
TEST: ce devra être un véritable expert pour accomplir une tâche aussi difficile.
................................................................................
TEST: C’en était malsain.
TEST: C’en devenait trop.
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|iel|iels|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|iel|iels|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
        <<- /conf/ -1>> c’|ç’                                                   && Confusion. Avec “\2” (du verbe “avoir”), le pronom personnel sujet est “ce” ou “ça” dont les graphies élidées sont “c’” et “ç’”.

TEST: {{S’en}} était vraiment trop !
TEST: Car {{s’en}} était vraiment fini !
TEST: il {{c’}}en est vite lassé.
TEST: elles {{c’}}étaient trop vanté de ses mérites
TEST: cet homme, perdu dans ses pensées, allait {{c’}}en faire du souci.
TEST: il {{c’}}accoutumait à sa nouvelle fonction.
................................................................................
TEST: {{c’}}y adonne avec passion
TEST: c’était merveilleux.
TEST: lui c’est un objet


__conf_ce_qui_verbe__
    ce qui  ?[lui|leur|leurs|nous|vous]¿  (et)  ?@:[WX]¿  ?@:[WX]¿  @:(?:[AQD]|V1.*:Y)
        <<- /conf/ -1>> est                                                     && Confusion probable : “et” est une conjonction de coordination. Pour le verbe “être”, écrivez “est”.

    ce qui  ?[lui|leur|leurs|nous|vous]¿  (étai)  ?@:[WX]¿  ?@:[WX]¿  @:(?:[AQD]|V1.*:Y)
        <<- /conf/ -1>> était                                                   && Confusion probable : “étai” est un nom commun. Pour le verbe “être”, écrivez “était”.

TEST: ce qui {{et}} beau.
TEST: ce qui {{étai}} notre lot.
TEST: ce qui lui {{étai}} propre
TEST: ce qui nous {{et}} pas vraiment utile


__conj_mieux_vaut__
    mieux  ?[ne|n’]¿  [vaux|valais|valus|vaudras|vaudrais]
        <<- /conj/ --1>> =\-1[:-1]+"t"                                                              && Conjugaison erronée. Accord avec “mieux” : utilisez la 3ᵉ personne du singulier.

TEST: avec toi qui ne sais rien de rien, mieux {{vaux}} ne rien dire.
TEST: Mais là-bas mieux {{valais}} ouvrir sa gueule que se taire.



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

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

    [<start>|,|(|puisque|lorsque|quand|quoique|combien|pourquoi|comment|où]  nous  [le|la|l’|les|en|y]   @:V[123]..t_._[e_][a_]¬:(?:1p|Ov|Y|P)
        <<- /conj/ --1>> =suggVerb(\-1, ":2p")                                                      && Conjugaison possiblement erronée. Accord avec “nous”. Le verbe devrait être à la 1ʳᵉ personne du pluriel.

TEST: Nous {{arriverez}} demain.
TEST: Nous {{travaillez}}.
TEST: nous {{donné}} trop de considération
................................................................................
TEST: ils me les {{laissés}}.
TEST: j’ai peur qu’il ne leur {{face}} quelque chose de mal


__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


## se + incohérence
................................................................................
        <<- !2>>
        <<- ~>> *


__non_verbe_après_préverbes__
    [ne|n’]     [le|la|l’|les]      [lui|leur|en|y]         @:¬:(?:[123][sp]|Y|P|Ov|X)
    [ne|n’]     [lui|leur]          en                      @:¬:(?:[123][sp]|Y|P|Ov|X)
        <<- /conf/ -4>> =suggSimil(\4, ":(?:[123][sp]|Y)", False)                                   && Incohérence avec « \1 \2 \3 » : « \4 » devrait être un verbe.

    [ne|n’]              [le|la|l’|les|nous|vous|lui|leur]  @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère)/
    n’                   [en|y]                             @:¬:(?:[123][sp]|Y|P|Ov|X|W)|>(?:presque|rien|guère)/
    [me|m’|te|t’|se|s’]  [le|la|l’|les]                     @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère)/
    [me|m’|te|t’]        [en|y]                             @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère|voici|revoici|voilà|revoilà)/
    [se|s’]              [en|y]                             @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère)/
        <<- /conf/ -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False)                                   && Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    [nous|vous]           y                                 @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère|voici|revoici|voilà|revoilà)/
        <<- /conf/ not morph(<1, ":R") -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False)               && Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    [ne|n’]                                                 @:¬:(?:[123][sp]|Y|P|Ov|X|W)|>(?:[mtsl]’|même|presque|rien|guère)/
    [me|m’|te|t’]                                           @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère|voici|revoici|voilà|revoilà)/
    se                                                      @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère|qu[ei’])/
    s’                                                      @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:ils?|qu[ei’])/
        <<- /conf/ -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False)                                   && Incohérence avec « \1 » : « \2 » devrait être un verbe.

TEST: ne leur en {{fil}} pas
TEST: ne l’{{oubli}} pas
TEST: ne {{pensée}} rien, jamais
TEST: n’en {{laissée}} que des miettes
TEST: s’y {{intéressé}}
TEST: J’y {{travail}}.
................................................................................
TEST: T’y voilà propulsé.
TEST: t’en voilà débarrassée.
TEST: N’oublient-ils pas ce qu’ils étaient autrefois…
TEST: Ne presque jamais réussir un plat aussi simple, c’est de l’incompétence pure et simple.
TEST: c’est vous les journalistes qui l’avez écrit
TEST: C’est nous les patrons
TEST: me revoilà



__loc_notre_père_qui_es_au_cieux__
    notre père qui [es|est] aux cieux
        <<- !4>>
        <<- ~3:0>> *

................................................................................
!!
!!!! Confusions générales                                                                         !!
!!
!!

__conf_usage_impropre__
    au  le  @:[NA]
        <<- /conf/ not \1.isupper() and \2.islower() -1:2>> au              && Usage impropre. Après “au”, l’article “le” est inapproprié. (Ex : Je vais à la gare, je vais au stade.)

    au  les  @:[NA]
        <<- /conf/ not \1.isupper() and \2.islower() -1:2>> aux             && Usage impropre. Après “au”, l’article “les” n’est pas nécessaire.

    au  la  @:[NAQ].*:[fe]
        <<- /conf/ not \1.isupper() and \2.islower() -1>> à                 && Usage impropre. Avec un nom féminin, utilisez la préposition “à”. (Ex : Je vais à la gare, je vais au stade.)

    au  l’
        <<- /conf/ \2 == "l’" -1>> à                                        && Usage impropre. Exemple : Elle va à l’opéra. Elle va au bal.

TEST: {{au le}} chien
TEST: {{au les}} armoires
TEST: qui sont {{au}} l’usage
TEST: {{au}} la passion


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

TEST: Ça t’arrive {{de d’}}arriver à l’heure ?
TEST: Les écrits de d’Alembert.


__conf_déterminant_fem_sing_verbe__
    [ma|ta|cette|ladite]  @:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                        && Incohérence avec « \1 » : « \2 » est un verbe.

    quelle  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|") and hasSimil(\2, ":[NA]:[fe]:[si]")
        -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                                                && Incohérence avec « \1 » : « \2 » est un verbe.

    sa  @:(?:Y|[123][sp])¬:(?:N.*:[fe]|A|W)
        <<- /conf/ not \1.isupper() and \2.islower() >>>
        <<- /conf/ morph(\2, "V.....[pqx]") -1>> ça|se                                              && Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient. (Une faute de frappe peut-être ?)
        <<- /conf/ __else__ -1>> ça                                                                 && Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient.
        <<- /conf/ not morph(\2, ":V0") and hasSimil(\2)
        -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                                                && Incohérence avec « \1 » : « \2 » est un verbe.

    sa  a
        <<- /conf/ not \1.isupper() -1>> ça                                                         && Confusion. Si vous voulez dire “cela”, écrivez “ça”.

TEST: Cette {{pèle}} est trop fragile.
TEST: {{sa}} devient difficile.
TEST: il me tendit {{sa}} {{pèche}}.
................................................................................
TEST: quelle serait la solution ?
TEST: quelle pourrait être la solution à ce problème ?


__conf_déterminant_mas_sing_verbe__
    du  @:(?:Y|[123][sp]|P)¬:[NAQ]
        <<- /conf/ \2.islower() and not ( morph(\-1, ":V[023].*:Y") and ( morph(<1, ":V0a|>(?:jamais|pas)") or tag(<1, "_VCint_") ) )
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    [cet|ledit|dudit]  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    quel  @:V[123].*:(?:Y|[123][sp])¬:[NAQ]|>(?:pouvoir|vouloir|aller|devoir)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|")
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    au  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower() and not value(\2, "|sortir|")
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    ce  @:V.*:(?:Y|[123][sp])¬:[NAQ]:.:[si]
        <<- /conf/ \2.islower()
            and not value(\2, "|faire|sont|soit|fut|fût|serait|sera|seront|soient|furent|fussent|seraient|peut|pouvait|put|pût|pourrait|pourra|doit|dut|dût|devait|devrait|devra|") and hasSimil(\2)
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    [mon|chaque]  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:.:[si]", True)                                                   && Incohérence avec “\1” : “\2” est un verbe.

    [<start>|,|(]  [ton|son|audit]  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \3.islower()
        -3>> =suggSimil(\3, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\2” : “\3” est un verbe.

    [un|une]  @:(?:Y|[123][sp])¬:[GNA]  ?$:W¿  @:A¬:[GM]
        <<- /conf/ not value(<1, "|dont|l’|d’|sauf|excepté|qu’|") and not before("(?i)\\bun à +$") and not morph(\2, ":V0")
        -2>> =suggSimil(\2, ":[NAQ]:[me]:[si]", True)                                               && Incohérence avec “\1” : “\2” est une forme verbale conjuguée.

TEST: un {{maintient}} difficile.
TEST: cet {{plaît}} est infectée.
TEST: {{ce}} {{rappelle}} n’en finit pas.
TEST: mon {{rackette}} n’a pas porté les fruits espérés.
TEST: ton {{recèle}} avait été dévoilé
TEST: quel {{impacte}} cela aura-t-il ?
................................................................................
TEST: Quel serait l’homme capable d’une telle horreur ?
TEST: Une était plus courte que l’autre.


__conf_déterminant_plur_verbe__
    [des|ces|mes|tes|ses|aux]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:.*:[pi]", True)                                                  && Incohérence avec « \1 » : « \2 » est un verbe.

    nos  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() -2>> =suggSimil(\2, ":[NA]:.*:[pi]", True)                          && Incohérence avec « \1 » : « \2 » est un verbe.
        <<- /conf/ __also__ and morph(\2, ":1p") -1>> nous                                          && Vouliez-vous écrire « nous » ? Le terme « \2 » est un verbe conjugué à la 1ʳᵉ personne du pluriel.

    vos  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() -2>> =suggSimil(\2, ":[NA]:.*:[pi]", True)                          && Incohérence avec « \1 » : « \2 » est un verbe.
        <<- /conf/ __also__ and morph(\2, ":2p") -1>> vous                                          && Vouliez-vous écrire « vous » ? Le terme « \2 » est un verbe conjugué à la 2ᵉ personne du pluriel.

    quels  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir|être)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|")
        -2>> =suggSimil(\2, ":[NA].*:[me]:[pi]", True)                                              && Incohérence avec « \1 » : « \2 » est un verbe.

    quelles  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir|être)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|") and hasSimil(\2, ":[NA]:[fe]:[pi]")
        -2>> =suggSimil(\2, ":[NA].*:[fe]:[pi]", True)                                              && Incohérence avec « \1 » : « \2 » est un verbe.

    quelques  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() and not value(\2, "|soient|soit|sois|puisse|puisses|puissent|")
        -2>> =suggSimil(\2, ":[NA]:.*:[pi]", True)                                                  && Incohérence avec « \1 » : « \2 » est un verbe.

    [auxdits|lesdits|desdits]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA].*:[me]:[pi]", True)                                              && Incohérence avec « \1 » : « \2 » est un verbe.

    [auxdites|lesdites|desdites]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA].*:[fe]:[pi]", True)                                              && Incohérence avec « \1 » : « \2 » est un verbe.

TEST: la crainte des {{attentas}} fait feu de tout bois.
TEST: {{nos}} {{agissons}}
TEST: {{vos}} {{prenez}} vos délires pour la réalité.
TEST: Quelques {{axions}} de la sorte suffisent à nous discréditer.
TEST: elle se rendit auxdits {{jardinais}}
TEST: auxdites {{scelles}}, il ne prêta pas attention.
................................................................................
TEST: {{quelles}} {{arrêtes}}
TEST: quels seraient nos avantages ?
TEST: quelles vont être nos chances ?


__conf_à_vconj__
    à  [le|la|l’|les|leur|leurs|ton|son]  @:V¬:[GNAWMBY]
        <<- /conf/ -3>> =suggSimil(\3, ":[NA]", True)                                               && Incohérence : après “\1 \2”, on devrait trouver un groupe nominal (ou un verbe à l’infinitif).

    à  [un|une]  @:V¬:[GNAWMB]
        <<- /conf/ not value(<1, "|un|une|") -3>> =suggSimil(\3, ":[NA]", True)                     && Incohérence : après “\1 \2”, on devrait trouver un groupe nominal.

TEST: à leur {{profile}}
TEST: à un {{employer}}
TEST: on les voit un par un devenir prendre un chemin de predition
TEST: une référence à l’astuce de base qui permet d’outrepasser ses droits.
TEST: Le mari répète à l’envi qu’il a découvert la France à travers les mots de sa femme.
TEST: Il reste de nombreux militants sincères à la FI.


__conf_de_vconj__
    [de|d’]  @:V.*:[123][sp]¬:[GNA]
        <<- /conf/ not \2.istitle() and not value(\2, "|jure|") -2>> =suggSimil(\2, ":[NA]", True)  && Incohérence avec “\1” : “\2” est une forme verbale conjuguée.


TEST: il s’agit de {{mette}} en évidence.


    [de|d’]  [l’|leur]  @:[123][sp]¬:[NAQ]
        <<- /conf/ not \3.istitle() -3>> =suggSimil(\3, ":[NA]:.:[si]", True)                       && Incohérence avec “\1 \2” : “\3” est une forme verbale conjuguée.

TEST: de l’{{arrivait}}


    [de|d’]  le  *WORD
        <<- /conf/ space_after(\1, 0, 1) and morph(\3, ":[NAQ].*:[me]", ":[YG]") and not \3.istitle()
            and not (value(\3, "|mal|") and morph(>1, ":Y")) -1:2>> du                              && Incohérence avec “\1 \2” : “\3” est un nom ou un adjectif.
        <<- /conf/ morph(\3, ":[123][sp]") -3>> =suggVerbInfi(\3)                                   && Incohérence avec “\1 \2” : “\3” est une forme verbale conjuguée.

TEST: {{de le}} vin                                           ->> du
TEST: il n’est pas interdit de le {{pensait}}
TEST: que connais-tu de “Le Tambour” ?


    [de|d’]  la  *WORD
        <<- /conf/ morph(\3, ":[123][sp]", ":[NAQ]") and not \3.istitle() >>>
        <<- /conf/ morph(\3, ":V1.*:(?:Iq|Ip:2p)", ":1p") -3>> =suggVerbInfi(\3)                    && Incohérence avec “\1 \2”: mettez le verbe à l’infinitif (à moins qu’il y ait confusion avec un nom féminin).
        <<- /conf/ __else__ >>>
        <<- /conf/ hasSimil(\3, ":(?:[NA]:[fe]:[si])") -3>> =suggSimil(\3, ":(?:[NA]:[fe]:[si])", True)    && Incohérence avec “\1 \2” : “\3” est un verbe.
        <<- /conf/ __else__ -2>> là                                                                 && Confusion probable. Si vous voulez dire “depuis ce point”, écrivez “de là”.

TEST: j’étais loin de la {{pensait}} ainsi                      ->> penser
TEST: ce n’était que de la {{bouillit}}                         ->> bouillie
TEST: de {{la}} venaient tous nos problèmes                     ->> là


    d’  [un|une]  @:[123][sp]¬:[GNA]
        <<- /conf/ not \3.istitle() and not value(<1, "|plus|moins|")
        -3>> =suggSimil(\3, ":[NA]", True)                                                          && Incohérence avec “\1\2” : “\3” est une forme verbale conjuguée.

TEST: d’une {{habille}} de femme
TEST: plus d’un ont été traumatisés
TEST: Plus d’une sont parties aussi vite qu’elles étaient venues


__conf_par_vconj__
    par  ?[le|la|l’|les||leur|leurs]¿  @:[123][sp]¬:[GNA]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA]", True)                           && Incohérence avec “\1” : “\-1” est une forme verbale conjuguée.

    par  [un|une]  @:V¬:[GNA]
        <<- /conf/ not \3.istitle() and not value(<1, "|un|une|")
        -3>> =suggSimil(\3, ":[NA]", True)                                                          && Incohérence avec “\1\2” : “\3” est une forme verbale conjuguée.

TEST: par {{bloque}} de données
TEST: par une {{donnait}} sans importance
TEST: conçu par un {{employer}} très compétent
TEST: pour les insulter au sortir du seul troquet dispensateur d’oubli liquide du coin
TEST: ce peut être un matériau à part entière pour alimenter discussions et délibérations.


__conf_préposition_det_verbe__
    [malgré|dès] [un|une|le|la|l’|les|leur|leurs|son|ton]  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() -3>> =suggSimil(\3, ":[NA]", True)         && Incohérence : après “\1 \2”, on devrait trouver un groupe nominal.

TEST: malgré l’{{arrête}} qui interdisait le port
TEST: dès le {{commencent}}, j’ai vu le problème.
TEST: malgré un {{employer}} peu dévoué
TEST: malgré les deux précédentes erreurs


................................................................................
TEST: Tout ce qu’on fera chez {{sera}} enregistré.


__conf_de_plus_en_plus_verbe__
    de plus en plus  @:(?:[123][sp]|Y)¬:(?:[GAQWN]|3p)
        <<- /conf/ not morph(<1, ":V[123].*:[123][sp]|>(?:pouvoir|vouloir|falloir)/")
        -5>> =suggVerbPpas(\5)
        && Incohérence probable avec « de plus en plus » : « \5 » n’est ni un adjectif, ni un participe passé, ni un adverbe.

TEST: de plus en plus {{gagnait}} par la folie.
TEST: de plus en plus {{concerner}} par ce problème
TEST: avec quel zèle ils remplissent leurs devoirs de citoyens (de plus en plus deviennent enseignant·e·s, infirmier·e·s ou s’engagent dans l’armée, etc.).
TEST: il faut de plus en plus aider ces gens.
TEST: nous leur faisons de plus en plus confiance.
TEST: elles ont de plus en plus recours à des intermédiaires.


#### Participes présents
__conf_participes_présents__
    [ne|n’|me|m’|te|t’|se|s’]  ~\want$
        <<- /conf/ morph(\2, ":", ":P") -2>> _                                                      && Incohérence : « \2 » n’est pas un participe présent.

    [nous|vous|lui]  ~\want$
        <<- /conf/ not morph(<1, ":R") and morph(\2, ":[NAQ]", ":[PG]") -2>> _                      && Incohérence : « \2 » n’est pas un participe présent.

TEST: ne {{convaincant}} que les convaincus.
TEST: une tension lui {{provocant}} un ulcère
TEST: comme des nuages ou des coteaux se reflétant dans l’eau (ligature fl)
TEST: ces hommes qui avaient abusé de lui enfant.


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

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

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

TEST: {{en t’}}ait donné tant.                                              ->> "t’en "
TEST: il {{en me}} donne beaucoup.                                          ->> m’en
TEST: elle n’{{en n’}}avait plus pour longtemps.                            ->> "en "
TEST: {{en m’}}{{apportent}} des gâteaux
TEST: {{en se}} {{contentent}}
TEST: {{en n’}}{{abordent}} la côte, nous vîmes le désastre.
................................................................................

TEST: en tant qu’{{abaisse}}
TEST: en tant que tel


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

TEST: presque {{délaissait}} par tout le monde.
TEST: Tout le monde ou presque déteste ces gens-là.


__conf_sur_vconj__
    sur  @:(?:[123][sp]|P)¬:[GNAQM]
................................................................................

# pour justifiée qu’elle fût
# [aussi|si] habile qu’il soit


__conf_trop_vconj__
    trop  @:[123][sp]¬:(?:[GNAQWM]|3p)
        <<- /conf/ not tag_before(\1, "_ceque_") -2>> _                                              && Incohérence probable avec “trop” : “\2” n’est ni un adjectif, ni un participe passé, ni un adverbe.

TEST: J’ai trop {{mangeais}}.
TEST: Ce que nous réussissons presque sera considéré comme un échec.


__conf_très_verbe__
    très  @:(?:Y|[123][sp])¬:[AQW]
        <<- /conf/ not value(\2, "|envie|") -2>> =suggSimil(\2, ":[AW]", True)                      && Incohérence avec “très” : “\2” n’est ni un adjectif, ni un participe passé, ni un adverbe.

TEST: Il est très {{cite}}.
TEST: très {{suivit}} par ce détective
TEST: il était très {{habille}}


#### Aussi +adj que soit +sujet
................................................................................
!!
!!

# a / à

__conf_a_à_incohérences__
    à [afin|alors|après|auprès|avant|avec|au-dedans|au-dehors|au-delà|au-dessous|au-dessus|au-devant|chez|dans|devant|dès|déjà|donc|durant|envers|lorsque|lorsqu’|malgré|parce|parmi|pendant|pour|puisque|puisqu’|quoique|quoiqu’|que|qu’|sur|tandis|vis-à-vis]
        <<- /conf/ -1>> a                                           && Incohérence avec “\2”. Confusion probable : “à” est une préposition. Écrivez “a” pour la conjugaison de “avoir”.

    à [au|aux]
        <<- /conf/ not value(>1, "|moins|plus|mieux|") -1>> a       && Incohérence avec “\2”. Confusion probable : “à” est une préposition. Écrivez “a” pour la conjugaison de “avoir”.

TEST: ce que cet homme, dans son garage, {{à}} alors une importance.
TEST: ce que cette personne, dans son esprit trouble et vindicatif, {{à}} aux hommes à dire, nul ne le sait.


__conf_a_à_verbe!6__
    [n’|m’|t’|s’]   ?[en|y]¿        à
    [l’|les]        [en|y]          à
    [ne|me|te|se]   [les|l’]        à
    [nous|vous]     [en|y|les|l’]   à
    ne [le|la|les]  [leur|lui]      à
    ne [le|la|les]  [leur|lui]      à
    y en                            à
        <<- /conf/ --1>> a                                          && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: il me les {{à}} donnés
TEST: il me l’{{à}} donné
TEST: Il ne les leur {{à}} pas imposés.
TEST: l’homme, jamais, ne la lui {{à}} imposés.
TEST: l’homme, jamais, ne nous l’{{à}} prise.
TEST: Il m’en {{à}} donné.
TEST: Il ne m’{{à}} jamais vu.
TEST: elle n’{{à}} rien raté.


    y à
        <<- /conf/ -2>> a                                           && Confusion probable : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: elle n’y {{à}} pas droit.
TEST: il y {{à}} des pertes.
TEST: Il les y {{à}}.
TEST: Y {{à}} du poulet


    [l’|les] à
        <<- /conf/ not \1.isupper() and not value(>1, "|côté|coup|pic|peine|peu|plat|propos|valoir|")
        -2>> a                                                      && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

    en à
        <<- /conf/ not \1.isupper() and not value(>1, "|côté|coup|pic|peine|peu|plat|propos|valoir|") and not morph(<1, ">venir/")
        -2>> a                                                      && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: Ce fâcheux, comme à son habitude, les {{à}} ennuyés à mourir.
TEST: Lui l’{{à}} pris par surprise.
TEST: Il y en {{à}}.
TEST: Elle en {{à}} pris.
TEST: Elle l’en {{à}} averti.
TEST: lui, avec ceux-là, nous en {{à}} donnés trois.
TEST: qui en {{à}} ?
TEST: il les a pris, les {{à}} frapper


    [il|on]  [nous|vous]  à
        <<- /conf/ -3>> a                                           && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: il nous {{à}} perdus dans ce dédale.


    elle  [nous|vous]  à
        <<- /conf/ not morph(<1, ":(?:3s|R)") and not morph(>1, ":Oo|>quo?i/")
        -3>> a                                                      && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: elle nous {{à}} pris par suprise.


    à été
        <<- /conf/ -1>> a                                           && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: Cette femme {{à}} été confondue avec une autre.


    qui  à  $:Q¬:M
        <<- /conf/ \3.islower() -2>> a                              && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: ce qui {{à}} pris tant de valeur, c’est…


    qui  [lui|nous|vous]  à
        <<- /conf/ -3>> a                                           && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: un élève qui nous {{à}} fait bien des misères.


    [leur|leurs] à
        <<- /conf/ not morph(<1, ":D") --1>> a                      && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: le peuple leur {{à}} donner tort


    à  le  @:[NAQ].*:[me]¬:(?:Y|Oo)
        <<- /conf/ -1:2>> a le|au
        && Confusion. Ou vous confondez “à” (préposition) avec “a” (avoir), ou vous devez employer “au”. Exemple : _à_ midi, il _a_ pris son déjeuner _au_ restaurant.

TEST: Ce chien, croyons-nous savoir, {{à le}} maître le plus violent qui soit.


    à  le  @:[NAQ].*:f¬:(?:Y|Oo)
        <<- /conf/ -1:2>> à la|a la
        && Confusion. Ou vous confondez “à” (préposition) avec “a” (avoir), ou vous devez employer “a la”. Exemple : elle _a_ la Palme d’Or du festival de Cannes.

TEST: {{à le}} {{donnée}}


    à  les  @:[NAQ]¬:(?:Y|Oo)
        <<- /conf/ -1:2>> a les|aux
        && Confusion. Ou vous confondez “à” (préposition) avec “a” (avoir), ou vous devez employer “aux”. Exemple : Elle _a_ donné du travail _aux_ employés _à_ profusion.

TEST: Celui qui y croit {{à les}} moyens d’y parvenir.


    à  ?$:W¿  *WORD
        <<- /conf/ \2.islower() and not value(\2, "|coté|sont|") >>>
        <<- /conf/ morph(\2, ":(?:V.......[_z][az].*:Q|V1.*:Ip:2p)", ":[MGWNY]") -1>> a             && Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez “a”.
        <<- /conf/ __also__ and morph(\2, "V1.*:(?:Ip:2p|Q)", "*") and not value(<1, "|il|elle|on|n’|les|l’|m’|t’|s’|d’|en|y|lui|nous|vous|leur|")
        -2>> =suggVerbInfi(\2)                                                                      && Le verbe devrait être à l’infinitif.
        <<- /conf/ __else__ and morph(\2, ":[123][sp]", "*") and not value(\2, "|tord|tords|") >>>
        <<- /conf/ morph(\2, ":V2.*:I[ps]:3s", "*") -2>> =suggVerbPpas(\2, ":m:s")                  && Incohérence : “\1” est une préposition. “\2” est un verbe conjugué.
        <<- /conf/ __also__ -1>> a                                                                  && Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez “a”.
        <<- /conf/ __else__ -2>> _                                                                  && Incohérence : “\1” est une préposition. “\2” est un verbe conjugué.

TEST: Que fait-il {{a}} cette conférence ?
TEST: L’homme {{à}} ouvert la boîte.
TEST: Il ne nous reste plus qu’{{à}} {{vérifié}} si votre maquette.
TEST: Je veux {{à}} {{mangé}}.
TEST: Ne pas hésiter {{à}} {{demandé}} des conseils.
TEST: cette femme, dans son délire, {{à}} {{jetez}} son argent à la poubelle.
................................................................................

__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|iel|on|n’|m’|t’|l’|") and not before("(?i)\\bqu[e’] |n’(?:en|y) +$")
        -1>> à                                                      && Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|https://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: Mélanie l’a {{transformer}}
TEST: {{A}} vous lire, on ne sait plus que penser de toutes ces histoires


__conf_à_qui_infinitif__
    *WORD  a  qui  @:(?:Y|Os)
        <<- /conf/ morph(\1, ":N", ":Ov") -2>> à                    && Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|https://fr.wiktionary.org/wiki/%C3%A0

TEST: il n’y avait personne {{a}} qui parler de nos problèmes       ->> à
TEST: des gens {{a}} qui offrir ça                                  ->> à


__conf_à_a__
    [<start>|,|(] a moins [que|qu’]
        <<- /conf/ -2>> à                                           && Confusion probable : « à moins que » pour dire « sauf si ».

    a part @:(?:M[12]|D|Oo)
        <<- /conf/ -1>> à                                           && Confusion probable : “a” est une forme conjuguée de “avoir”. Pour la préposition, écrivez “à”.

    face a
        <<- /conf/ not morph(<1, ":(?:D.*:f:s|A.*:[fe]:[si])|>en/")
        -2>> à                                                      && Confusion probable : “a” est une forme conjuguée de “avoir”. Pour la préposition, écrivez “à”.

    par rapport  a  @:(?:D|Oo|M)
        <<- /conf/ -3>> à                                           && Confusion : “a” est une forme conjuguée de “avoir”. Pour la préposition, écrivez “à”.

    grâce a
        <<- /conf/ morph(<1, ":[VN]|<start>", "*") -2>> à           && Confusion probable. Locution “grâce à”.|https://fr.wiktionary.org/wiki/gr%C3%A2ce_%C3%A0

    tout a fait
    jusqu’ a
    pas a pas
        <<- /conf/ -2>> à                                           && Confusion : “a” est une forme conjuguée de “avoir”. Pour la préposition, écrivez “à”.

    a [moi|toi|eux|elles]
    a [lui|elle|nous|vous]  <end>
        <<- /conf/ not morph(<1, ":Ov|>(?:il|elle)/")
        -1>> à                                                      && Confusion probable : “a” est une forme conjuguée du verbe “avoir”. Pour la préposition, écrivez “à”.

TEST: Je le donne {{a}} toi.
TEST: Personne {{a}} part Tom ne connaît son adresse
TEST: Face {{a}} ces gens, il ne pensait pas pouvoir réussir
TEST: c’est grâce {{a}} nous que vous y êtes parvenus
TEST: par rapport {{a}} eux, je me sens parfois dépassé
TEST: par rapport {{a}} ces hommes-là, nous manquons d’expérience
................................................................................
TEST: Elle n’a elle que ses études pour s’en sortir.
TEST: Il a toi pour l’aider.
TEST: Il t’a toi.


__conf_suite_à__
    [<start>|,|(] suite a [le|la|l’|les|ce|ces|de|d’|des|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|quelques|certains|certaines|plusieurs|maints|maintes]
        <<- /conf/ -3>> à                                           && Confusion : “a” est une forme conjuguée du verbe “avoir”. Pour la préposition, écrivez “à”.

TEST: Suite {{a}} ces folies, nous rentrâmes chez nous.
TEST: il s’avère que, suite {{a}} d’horribles complications, nous renonçâmes.
TEST: cette petite suite a une vue magnifique


__conf_à_bâtons_rompus!7__
................................................................................
    a voix [haute|basse]
    a vol d’ oiseau
    a vrai dire
    a vue d’ œil
    a y [réfléchir|songer|penser]
    a y regarder [de|d’] plus près
        <<- /conf/ not value(<1, "|l’|n’|il|elle|on|y|") and not before("(?i)n’en +$")
        -1>> à              && Confusion probable : “a” est une forme conjuguée du verbe “avoir”. Pour la préposition, écrivez “à”.|https://fr.wiktionary.org/wiki/%C3%A0

    a [mon|ton|son|notre|votre|leur] [cœur|corps] défendant
    a [mon|ton|son|notre|votre|leur] grand désarroi
    a [mon|ton|son|notre|votre|leur] [avis|côté|détriment|encontre|égard|insu|sujet|tour]
    a [ma|ta|sa|notre|votre|leur] grande [surprise|tristesse]
    a [ma|ta|sa|notre|votre|leur] [connaissance|disposition|guise|portée]
    a [mes|tes|ses|nos|vos|leurs] [dépens|côtés]
        <<- /conf/ not value(<1, "|l’|n’|il|elle|on|y|") and not before("(?i)n’en +$")
        -1>> à              && Confusion probable : “a” est une forme conjuguée du verbe “avoir”. Utilisez la préposition “à”.|https://fr.wiktionary.org/wiki/%C3%A0

    a bonne distance                                                                                [de|d’|des|du|<end>|,]
    a [base|bord|cause|contre-courant|côté|court|défaut|droite|gauche|partir|portée|propos|rebours] [de|d’|des|du|<end>|,]
    a l’ [arrière|écart|égard|extérieur|aune|avant|encontre|insu|instar|intérieur|opposé]           [de|d’|des|du|<end>|,]
    a l’ autre bout                                                                                 [de|d’|des|du|<end>|,]
    a la [portée|suite]                                                                             [de|d’|des|du|<end>|,]
        <<- /conf/ not value(<1, "|l’|n’|il|elle|on|y|") and not before("(?i)n’en +$")
        -1>> à              && Confusion probable : “a” est une forme conjuguée du verbe “avoir”. Pour la préposition, écrivez “à”.|https://fr.wiktionary.org/wiki/%C3%A0

    a caractère @:A.*:[me]:[si]¬:G
        <<- /conf/ not value(<1, "|l’|n’|il|elle|on|y|") and not before("(?i)n’en +$") and morph(<1, ":N")
        -1>> à              && Confusion probable : “a” est une forme conjuguée du verbe “avoir”. Pour la préposition, écrivez “à”.|https://fr.wiktionary.org/wiki/%C3%A0

TEST: Puisqu’on nous méprise, autant y aller {{a}} reculons.                            ->> à
TEST: Les parties {{a}} nouveau divisées ne se réuniront pas avant longtemps.           ->> à
TEST: ils viennent nous attaquer {{a}} tout bout de champ                               ->> à
TEST: On s’y fait, d’une manière ou d’une autre, {{a}} notre corps défendant.           ->> à
TEST: on fait ça {{a}} la va-vite.                                                      ->> à
TEST: elle risque de tout perdre, {{a}} moins qu’un miracle survienne.                  ->> à
................................................................................
TEST: Il a mis son talent {{a}} profit.
TEST: Remettre ses compétences {{a}} profit.


__conf_mener_a_bien__
    >mener a bien
        <<- /conf/ morph(<1, ">(?:falloir|aller|pouvoir)/", ">que/")
        -2>> à                              && Confusion probable. Dans cette locution, utilisez la préposition « à ».|https://fr.wiktionary.org/wiki/mener_%C3%A0_bien

    >mener a bien cette [tâche|entreprise|action|étude|construction|recherche|guerre|conquête]
    >mener a bien ce [projet|travail]
    >mener a bien ces [travaux|projets|tâches|entreprises|actions|études|constructions|recherches|guerres|conquêtes]
        <<- /conf/ -2>> à                   && Confusion probable. Dans cette locution, utilisez la préposition « à ».|https://fr.wiktionary.org/wiki/mener_%C3%A0_bien

TEST: Mener {{a}} bien cette guerre sera plus difficile qu’on le pense.
TEST: Je peux mener {{a}} bien cette opération.
TEST: Cette coalition que tu penses mener a bien l’intention de te trahir.


__conf_à_bout__
................................................................................
TEST: {{a pré a voire}} monté les marches
TEST: après avoir réussi son examen


# par acquit de conscience
__conf_acquit_acquis__
    par acquis [de|d’] >conscience
        <<- /conf/ -2>> acquit                          && Confusion. Locution « par acquit de conscience ».|https://fr.wiktionary.org/wiki/par_acquit_de_conscience
        <<- ~>> *

TEST: par {{acquis}} de conscience
TEST: tout ce qu’on fait par acquit de conscience


# aux alentours
................................................................................
TEST: j’en connais plusieurs axés sur leur boulot avant toute autre chose.


# acétique / ascétique
__conf_acétique_ascétique__
    [>acide|>aldéhyde|>anhydride|>bactérie|>éther|>ferment|>fermentation|>indole|>piqûre|>piqure|>silicone|voix] >ascétique
        <<- /conf/ -2>> =\2.replace("scé", "cé").replace("SCÉ", "CÉ")
        && Confusion probable : “ascétique” se rapporte à l’ascétisme. Pour l’acide, écrivez “acétique”.|https://fr.wiktionary.org/wiki/ac%C3%A9tique

    [>auteur|>démarche|>conduit|>hédonisme|>littérature|>philosophe|>pratique|>privation|>rigueur|>tradition|>théologie|>vie|>idéal] >acétique
        <<- /conf/ -2>> =\2.replace("cé", "scé").replace("CÉ", "SCÉ")
        && Confusion probable : “acétique” est le terme utilisé pour désigner un acide. Pour évoquer l’ascétisme, écrivez “ascétique”.|https://fr.wiktionary.org/wiki/asc%C3%A9tique

TEST: un acide {{ascétique}}.
TEST: Mener une vie {{acétique}}.


# âge / age
__conf_âge_age__
................................................................................
TEST: combien de nouveaux arrivés


# au temps / autant
__conf_au_temps_pour_moi__
    [<start>|,|(]  au  [tant|tan]  pour moi
    [<start>|,|(]  aux [tant|tans]  pour moi
        <<- /conf/ -2:3>> au temps                      && Pour reconnaître son erreur, « au temps pour moi » est l’expression recommandée par l’Académie française.

    [<start>|,|(]  [autant|>autan]  pour moi
        <<- /conf/ -2>> au temps                        && Pour reconnaître son erreur, « au temps pour moi » est l’expression recommandée par l’Académie française.

TEST: Je me suis trompé. {{Autant}} pour moi.
TEST: Je me suis trompé. {{Au tan}} pour moi.


__conf_autant_que_faire_se_peut!7__
    !! autant que faire se peut ¡¡
    [au|aux] [temps|tant|>tan]  [que|qu’] [faire|ferre|ferres|>fer] [se|ce] [peu|peut|peux]
    [>autan|autant]             [que|qu’] [faire|ferre|ferres|>fer] [se|ce] [peu|peut|peux]
        <<- /conf/ ->> autant que faire se peut         && Locution adverbiale : « autant que faire se peut ».|https://fr.wiktionary.org/wiki/autant_que_faire_se_peut

TEST: on va y arriver, {{au temps que faire se peu}}…
TEST: autant que faire se peut, il faut éviter la confusion entre ces deux discours.


# avant / avent
__conf_avant_avent__
................................................................................
TEST: le branle-bas de combat commençait, mais trop tard
TEST: {{branle bat de con bat}}


# ça / çà / sa
__conf_ça_çà_sa!7__
    ça  @:[NAQ].*:f¬:(?:G|P|[123][sp])|>seul/
        <<- /conf/ not morph(<1, ">(?:appeler|considérer|trouver)/") -1>> sa                        && Confusion : “sa” (sa maison, sa passion) ≠ “ça” (ça vient, ça heurte).

    sa  @:G¬>(?:tr(?:ès|op)|peu|bien|plus|moins|toute|presque|non)/|:[NAQ].*:f
        <<- /conf/ not (value(\2, "|ou|") and value(>1, "|son|ses|")) and morph(\1, ":D")
        -1>> ça                                                                                     && Confusion : “sa” (sa maison, sa passion) ≠ “ça” (ça vient, ça heurte).

    sa  $:P¬:A
        <<- /conf/ \1 != "SA" -1>> ça|se                && Confusion probable : “\2” est un participe présent. Soit vous confondez “ça” (équivalent à cela ou ceci) et “sa” (déterminant féminin), soit il faut écrire “se” (exemples : untel se considérant légitime, se prenant en main, se trouvant assez capable…), soit “\2” devrait être un nom ou adjectif féminin.

    çà
        <<- /conf/ not value(<1, "|oh|ah|") and not after("^ +et là")
        ->> ça                                          && Confusion : « çà » ne s’emploie plus guère que dans l’expression « çà et là ».|https://fr.wiktionary.org/wiki/%C3%A7%C3%A0

    sa  [<end>|,|)]
        <<- /conf/ \1 != "SA" -1>> ça                   && Confusion probable : “sa” est un déterminant féminin singulier. Pour l’équivalent de “cela” ou “ceci”, écrivez “ça”.

    [c’|ç’] [à|a]
        <<- /conf/ space_after(\1, 0, 0) and not (value(\2, "|a|") and value(>1, "|été|")) >>>
        <<- /conf/ value(>1, "|été|") -2>> a            && Confusion. Pour le verbe avoir à la 3ᵉ personne du singulier, écrivez “a”.
        <<- /conf/ __else__ ->> ça|sa                   && Confusion. Si vous voulez dire “cela”, écrivez “ça”. Pour le déterminant possessif, écrivez “sa”.

    ça et là
        <<- /conf/ not morph(<1, ":R") ->> çà et là     && Confusion : « ça » équivaut à « cela ». Dans l’expression « çà et là », « çà » équivaut à « ici ».

TEST: Je prends {{sa}}…
TEST: {{ça}} patrie, il la détestait
TEST: et {{sa}} par deux fois
TEST: Il trouva de la nourriture {{ça et là}}.                                  ->> çà et là
TEST: c’est {{çà}}                                                              ->> ça
TEST: Elle parle comme {{ça}} mère.                                             ->> sa
................................................................................
# ce / se / ceux
__conf_ce_ceux_se!6__
    pour se faire ,
    pour se faire @:G¬:[AYD]
        <<- /conf/ -2>> ce                              && Confusion probable. Dans cette locution, il faut employer “ce”.|https://fr.wiktionary.org/wiki/pour_ce_faire

    se [que|qu’|qui|dont|malgré|pourquoi|avec|pour|par]
        <<- /conf/ -1>> ce                              && Confusion. Exemples : ce bâtiment, se perdre.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=2440

    ceux  ?[ne|n’]¿  @:V0.*:[123][sp]¬:P|>a/
        <<- /conf/ -1>> ce                              && Confusion.|http://www.intellego.fr/soutien-scolaire-6eme/aide-scolaire-francais/ce-ceux-ou-se/3829

    se [ne|n’] [>être|>pouvoir|>devoir]
        <<- /conf/ not \1.isupper() -1>> ce             && Confusion probable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=2440

................................................................................
TEST: la réduction de ma liberté intellectuelle et celle de ceux autour de moi
TEST: ceux autour de vous ne sont pas ce que vous croyez.


__conf_se_ceux_ce!6__
    ce  @:V[123].*:(?:Y|[123][sp])¬:[NAGM]|>(?:devoir|pouvoir|sembler|vouloir)/
        <<- /conf/ not \1.isupper() and \2.islower() and not (value(<1, "|pour|") and value(\2, "|faire|"))
        -1>> se                                         && Confusion : « \2 » est un verbe. Exemples : ce bâtiment, se perdre.

    ce  [/-il|/-ils|/-elle|/-elles|/-iel|/-iels|/-on]
        <<- /conf/ not \1.isupper() and \2.islower()
        -1>> se                                         && Confusion : « \2 » est un verbe. Exemples : ce bâtiment, se perdre.

    [ce|c’] qui ce passe
        <<- /conf/ -3>> se                              && Confusion : « \4 » est un verbe. Exemples : ce bâtiment, se perdre.

    [ne|n’] ce
        <<- /conf/ -2>> se                              && Confusion. Ce chien, ce chat… Se demander, se croire…

    [ne|n’] [c’|ç’]
        <<- /conf/ -2>> s’                              && Confusion. Ce chien, ce chat… Se demander, se croire…

    qui  ce  @:V¬:[NAQ].*:[me]
        <<- /conf/ -2>> se                              && Confusion probable. Exemples : ce bâtiment, se perdre.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=2440

    [ça|cela|ceci] >finir <> par ce savoir
        <<- /conf/ --2>> se                             && Confusion probable. Ici, “savoir” est un verbe. Exemples : ce bâtiment, se perdre.

TEST: ça {{ce}} prend la tête pour un rien, c’est de la racaille.
TEST: {{Ce}} promener est relaxant.
TEST: {{ce}} prennent-ils pour des experts ?
TEST: {{Ce}} serait-elle compromise ?
TEST: ce qui {{ce}} passe, c’est que c’est une catastrophe.
TEST: il ne {{ce}} compte pas parmi eux
................................................................................
    [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}
    [ses|ces] @:[WX]¬:N:.*:[pi]  @:[RD]|>pire/
        <<- /conf/ not \1.isupper() and not value(\2, "|quelques|") -1>> c’est      && Confusion probable. Écrivez « c’est » pour dire « ceci est… ».

    c’ est  @:N.*:p¬:(?:G|W|M|A.*:[si])
        <<- /conf/ -1:2>> ces|ses                                                   && Confusion. Exemples : c’est facile ; ces chats (désignation) ; ses chats (possession)…

    ses  /-là
        <<- /conf/ -1>> ces                 && Confusion : “ses” est un déterminant possessif ; si vous voulez désigner des éléments en particulier, vous devriez utiliser le déterminant démonstratif “ces”.

    c’ est n’ [est|était]
    c’ est ne [serait|sera]
        <<- /conf/ not value(<1, "|que|qu’|") -1:2>> ce                     && Confusion probable.
................................................................................


# collet monté
__conf_collet_monté__
    ~^[cC]oll(?:e[rt]s?|ée?s?)-mont(?:er|ée?s?)$
    [collé+ses|coller|collets] [>montée|monté|montés|monter]
    collet [>montée|montés|monter]
        <<- /conf/ ->> collet monté                             && « Être collet monté » : dans cette locution, « collet monté » est invariable.

TEST: Elles sont tellement {{collets montées}} !


# compte / comte / conte
__conf_compte__
    à bon [>conte|comte+s]
................................................................................
TEST: Après {{coût}} on a compris notre erreur.                                     ->> coup
TEST: sous le {{cout}} de la colère                                                 ->> coup


# cour / cours / court
__conf_cour_cours_court_courre__
    à [cour+s|courre+s|courts] [de|d’]
        <<- /conf/ -2>> court                               && Confusion probable : écrivez “à court de” pour “en manque de”.|https://fr.wiktionary.org/wiki/%C3%A0_court_de

    [à|a] [cour+s|courre+s|courts] >terme
        <<- /conf/ ->> à court terme                        && Confusion. Locution “à court terme”. Une cour… Un cours… Adjectif : court(e).|https://fr.wiktionary.org/wiki/%C3%A0_court_terme

    au [cour|court+s|courre+s] [de|d’|des|du]
        <<- /conf/ -2>> cours                               && Confusion. Locution “au cours de”. Une cour… Un cours… Adjectif : court(e).|https://fr.wiktionary.org/wiki/au_cours_de

    en cour [fédérale|martiale|suprême]
    en cour [de|d’] [cassation|justice]
    en cour d’ >assise
        <<- !1:2>>

    au long [court|cour|courre]
................................................................................

TEST: à la {{datte}} du 25 janvier


# davantage / d’avantage
__conf_davantage_d_avantages__
    [peu|plein|beaucoup|trop|plus|moins|assez|suffisamment|tellement|>obtention|>régime]  davantage
        <<- /conf/ --1>> d’avantages                                                && Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

    $:V  d’ >avantage
        <<- /conf/ not morph(\1, ":Q|>(?:profiter|bénéficier|nombre|tant|sorte|type)/") and not morph(>1, ">(?:financi[eè]re?|pécuni(?:er|aire)|sociaux)s?/")
        -2:3>> davantage                                                            && Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

    [/-je|/-tu|/-il|/-on|/-elle|/-nous|/-vous|/-ils|/-elles|/-iel|/-iels]  d’  >avantage
        <<- /conf/ not morphVC(\1, ">(?:profiter|bénéficier)/") and not morph(>1, ">(?:financière|pécuni(?:er|aire)|sociale)/")
        -2:3>> davantage                                                            && Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

    d’ >avantage [de|d’]
        <<- /conf/ -1:2>> davantage                                                 && Confusion possible : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

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

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

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

................................................................................
TEST: Le {{pronostique}} n’est pas bon.
TEST: ils font ça en {{publique}}.


# différend / différent
__conf_différent_différend__
    >différend
        <<- /conf/ morph(<1, ":W") ->> =\1.replace("nd", "nt").replace("ND", "NT")  && Confusion probable : “un différend” est un désaccord. Pour l’adjectif qualifiant une différence, écrivez “différent”.

    >différend @:N¬*
        <<- /conf/ -1>> =\1.replace("nd", "nt").replace("ND", "NT")     && Confusion probable : “un différend” est un désaccord. Pour l’adjectif qualifiant une différence, écrivez “différent”.

    [mon|notre|votre|leur]  différent  @:[GVX]¬:[NAQ]
    [mon|notre|votre|leur]  différent  <end>
        <<- /conf/ -2>> différend                                       && Confusion probable : « différent » est un adjectif, « différend » est le nom qui signifie désaccord.

    [ton|son]  différent  @:[GVX]¬:[NAQ]
    [ton|son]  différent  <end>
        <<- /conf/ not morph(<1, ":D") -2>> différend                   && Confusion probable : « différent » est un adjectif, « différend » est le nom qui signifie désaccord.

    un  différent  @:[GV]¬:[NAQ]
        <<- /conf/ -2>> différend                                       && Confusion probable : « différent » est un adjectif, « différend » est le nom qui signifie désaccord.

    [mes|tes|ses|nos|vos|leurs]  différents  @:[GV]¬:[NAQ]
    [mes|tes|ses|nos|vos|leurs]  différents  <end>
        <<- /conf/ -2>> différends                                      && Confusion probable : « différent » est un adjectif, « différend » est le nom qui signifie désaccord.

    [les|des]  différents  @:G¬:[NAQ]
    les  différents  <end>
        <<- /conf/ -2>> différends                                      && Confusion : « différent » est un adjectif, « différend » est le nom qui signifie désaccord.

    >être  ?[pas|si]¿   >différend
    >être  pas  si      >différend
        <<- /conf/ --1>> =\-1.replace("nd", "nt").replace("ND", "NT")   && Confusion : « différent » est un adjectif, « différend » est le nom qui signifie désaccord.

TEST: Très {{différends}} de nous, ces gens-là !
TEST: {{différends}} hommes                                             ->> différents
TEST: Régler votre {{différent}}.
TEST: Notre {{différent}} avec eux perdure.
TEST: son {{différent}} avec lui n’en finit pas.
TEST: Un {{différent}} peut toujours se résoudre.
................................................................................
TEST: dans ses différents ouvrages
TEST: dans ses différents postes gouvernementaux


# dites / dîtes
__conf_dites_dîtes__
    *WORD  dîtes  @:A¬:G
        <<- /conf/ morph(\1, ":[NA].*:[fe]:[pi]", ":G") -2>> dites      && Confusion probable : “dîtes” est une forme verbale de dire au subjonctif. Pour l’ajectif, écrivez “dites”.

TEST: Des armes {{dîtes}} létales.                                          ->> dites
TEST: usage débridé des armes dites létales
TEST: Vous dîtes “idiotes”, je dis “originales”.


# données / donnés
................................................................................
TEST: étant {{donnait}} qu’il ne sait pas de quoi il parle, ignorons-le.        ->> donné


# é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.


# en fait
__conf_en_fait__
    en [faite|>faîte]
        <<- /conf/ not value(<1, "|n’|") and not tag_before(\1, "_2p_")
        ->> en fait                                         && Confusion probable : « en fait » qui signifie « en réalité ». Le faîte est la partie la plus élevée d’un bâtiment.

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.


# faim / fin
................................................................................


# faut / faux
__conf_faux_faut__
    faut  @:¬(?:Y|Oo|X|M|W)|>qu[e’]/
    faut  <end>
        <<- /conf/ not value(<1, "|il|ils|ne|n’|en|y|leur|lui|nous|vous|me|te|se|m’|t’|s’|la|le|les|qui|<start>|,|")
        -1>> faux                                               && Confusion probable : “faut” est une conjugaison de “falloir”. Pour indiquer la fausseté d’une chose, écrivez “faux”.

TEST: un homme {{faut}}
TEST: c’est {{faut}}
TEST: il m’en faut plus.
TEST: il faut réussir.
TEST: bien sûr, faut y arriver.
TEST: il ne faut pas se leurrer.
................................................................................
TEST: le flan est une pâtisserie.
TEST: versez du caramel sur le flan.


# en son for intérieur / fort
__conf_for_intérieur__
    [en|dans] [mon|ton|son|leur|notre|votre] [fort|forts|fore|fores|fors] [>intérieur]
        <<- /conf/ -3:4>> for intérieur                                     && Confusion : “for” vient du latin “forum” et le “for intérieur” évoque la conscience individuelle.

TEST: En mon {{fort intérieur}}, je le crois.
TEST: Dans son {{fort intérieur}}, je le crois.


# fausse / fosse
__conf_fosse_fausse__
................................................................................
    [fausse+s] des îles [aléoutiennes|caïmans|Kouriles|Tonga]
    [fausse+s] du [Chili|Japon|Pérou|Pérou-Chili]
    [fausse+s] d’ [aisance|orchestre|Amérique|Atacama|Izu-Bonin|Izu-Ogasawara]
    [fausse+s] de l’ orchestre
    [fausse+s] à [>compost|>déchet|>lisier|>fumier|>plongeon|>plongée|>purin|>merde|>ordure]
    [fausse+s] [au|aux|des] [>caïman|>crocodile|>charognard|>lion|>loup|>louve|ours|>serpent|>cobra|>diable]
    [fausse+s] [>abyssal|>canin|>béant|>commun|>océanique|sous-marine+s|>septique|>immense|>profond|>nasal|>iliaque|>temporal]
        <<- /conf/ -1>> =\1.replace("au", "o").replace("AU", "O")           && Confusion probable : “fausse” est l’adjectif féminin de “faux”. Pour évoquer une profondeur, écrivez “fosse”.

    au bord de la fausse
        <<- /conf/ -5>> fosse                                               && Confusion probable : “fausse” est l’adjectif féminin de “faux”. Pour évoquer une profondeur, écrivez “fosse”.

    >fosse [>alerte|>déclaration]
        <<- /conf/ -1>> =\1.replace("o", "au").replace("O", "AU")
        && Confusion probable : une fosse est une dépression ou une cavité dans le sol. Pour évoquer une falsification ou une erreur, écrivez “fausse”.|https://fr.wiktionary.org/wiki/fausse

TEST: la {{fausse}} Calypso.
TEST: La {{fausse}} des Mariannes.
................................................................................
TEST: encore une {{fosse}} alerte


# 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: le {{frais}} ferroviaire est en chute libre.          ->> fret


# golf / golfe
__conf_golf_golfe__
    [>champion|>championnat|>club|>joueur|parcours|>sac|>balle|>terrain|>tournoi|>compétition|>passionné|>école|>professeur|>parti|>professionnel|>amateur|>stage|>journée|après-midi|>matinée|>heure|>fédération|>fan] de golfe
        <<- /conf/ -3>> golf                                                && Confusion. Le golfe est une zone de mer ou d’un lac avancée dans les terres. Ex : Le golfe Persique.

    >golf persique
    >golf [de|du|d’] [Bengale|Botnie|Gascogne|Gabès|Guinée|Lion|Morbihan|Mexique|Porto|Saint-Laurent|Thaïlande|Tonkin|Tunis|Winam|Aden|Ajaccio|Alaska|Hammamet]
        <<- /conf/ -1>> golfe                                               && Confusion. Le golf est un sport.

    [>guerre|>émir|>monarchie] du golf
        <<- /conf/ -3>> Golfe                                               && Confusion. Le golf est un sport.
................................................................................
TEST: il ne {{l’a}} {{connaît}} pas.
TEST: elle ne nous {{l’a}} {{donne}} pas.
TEST: elle ne {{l’a}} leur donne pas sans condition.


__conf_il_elle_on_l_a_la_vconj__
    [il|on]  ?[nous|vous]¿  la  @:Q¬:(?:[123][sp]|V[123]......e)|>lui/
        <<- /conf/ --2>> l’a                                                    && Confusion probable : “\-1” est un participe passé. Il faut donc employer l’auxiliaire “avoir”.

    elle  ?[nous|vous]¿  la  @:Q¬:(?:[123][sp]|V[123]......e)|>lui/
        <<- /conf/ not morph(<1, ":R") --2>> l’a                                && Confusion probable : “\-1” est un participe passé. Il faut donc employer l’auxiliaire “avoir”.

    [ne|me|te]  la  @:Q¬:(?:[123][sp]|V[123]......e)|>lui/
        <<- /conf/ -2>> l’a                                                     && Confusion probable : “\3” est un participe passé. Il faut donc employer l’auxiliaire “avoir”.

    ne  [nous|vous]  la  @:Q¬:(?:[123][sp]|V[123]......e)|>lui/
        <<- /conf/ -3>> l’a                                                     && Confusion probable : “\4” est un participe passé. Il faut donc employer l’auxiliaire “avoir”.

TEST: il {{la}} {{donnée}}.
TEST: elle {{la}} vendue.
TEST: ne {{la}} {{donné}} que contraint et forcé…
TEST: celle-là, il me {{la}} {{commandée}} ?
TEST: ne nous {{la}} donnée pas
TEST: au fur et à mesure que les molécules du nuage se dirigent vers le centre, sa densité augmente et avec elle la gravité qu’il génère.
................................................................................

    /-là
        <<- /conf/ morph(\1, ":V", ":[NA]", 0, -3) >>>
        <<- /conf/ morph(\1, ":V...t") -1>> =\1[:-3]+"-la|" + \1[:-3]+" là"                         && Confusion. Pour un COD, utilisez “la”. Ou, si ce “là” signifie “ici”, ne mettez pas de trait d’union.
        <<- /conf/ __else__ -1>> =\1[:-3]+" là"                                                     && Confusion. Si ce “là” signifie “ici”, ne mettez pas de trait d’union.

    [ne|me|te|se] là
        <<- /conf/ -2>> la                                                                          && Confusion : “là” signifie “ici”.|https://fr.wiktionary.org/wiki/la

TEST: {{jusque-la}}, tout va bien
TEST: {{ceux la}} sont des idiots, rien à en tirer.
TEST: {{celle la}} ne vaut pas mieux, laisse-la tomber.
TEST: {{Apporte-là}} près du feu
TEST: {{arrive-là}}
TEST: cette {{bête-la}}
................................................................................

TEST: {{la-dedans}}                             ->> là-dedans


# la plupart
__conf_la_plupart__
    [la|là] [plus|plue|plues|plut|plût|plu] [part|parts|par|pare|pares]
        <<- /conf/ -2:3>> plupart                                               && Confusion. Écrivez « la plupart » pour évoquer la majeure partie de quelque chose.

    [la|là] [plus-part|plus-parts|plus-par|plus-pare|plus-pares]
    [la|là] [plues-part|plues-parts|plues-par|plues-pare|plues-pares]
    [la|là] [plut-part|plut-parts|plut-par|plut-pare|plut-pares]
    [la|là] [plût-part|plût-parts|plût-par|plût-pare|plût-pares]
    [la|là] [plu-part|plu-parts|plu-par|plu-pare|plu-pares]
        <<- /conf/ -2>> plupart                                                 && Confusion. Écrivez « la plupart » pour évoquer la majeure partie de quelque chose.

TEST: la {{plus part}}
TEST: la {{plu-part}}


__conf_lancer_lancé__
    lancé [de|d’] [>balle|>ballon|>dé|>disque|>fléchette|>fusée|>javelot|>hache|>marteau|>nain|poids|rayon]
................................................................................
TEST: Elle habite Vandœuvre-lès-Nancy.


# leurs / leur
__conf_leurs_verbe__
    leurs  @:(?:[123][sp]|Y)¬:[GNAM]
        <<- /conf/ not morph(<1, ">[ld]es/")
        -1>> leur                                   && Incohérence : “leurs” est un déterminant pluriel censé précéder un substantif pluriel. Pour le pronom personnel devant un verbe, écrivez “leur”.

TEST: je vais {{leurs}} reprendre
TEST: je {{leurs}} apprends la programmation
TEST: après qu’un des leurs ait été gravement blessé par un tir de grenade


# loin s’en faut
................................................................................
TEST: Ils n’étaient guère prêts à ça, {{loins sans faux}}.
TEST: Et les intellectuels ? En France comme ailleurs, tous n’ont pas, loin s’en faut, une pleine lucidité sur cette précarité galopante.


# m’a / ma
__conf_m_a_ma!7__
    [<start>|,|(]  tu  [ma|mas]
        <<- /conf/ --1>> m’as                       && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 2ᵉ personne précédé du pronom personnel me”, écrivez “m’as”.

    [il|ils]  [ma|mas]
        <<- /conf/ not morph(<1, ":3s")
        --1>> m’a                                   && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel me”, écrivez “m’a”.

    on  [ma|mas]
        <<- /conf/ morph(<1, "<start>|:C|>,/")
        --1>> m’a                                   && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel me”, écrivez “m’a”.

    [ne|n’]  [ma|mas]
        <<- /conf/ --1>> m’a                        && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel me”, écrivez “m’a”.

    ça  [ma|mas]  *WORD
        <<- /conf/ morph(<1, "<start>|:C|>,/") and analyse(\-1, ":(?:Q|V1.*:Y)", ":N.*:[fe]")
        -2>> m’a                                    && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel me”, écrivez “m’a”.

    qui ma  *WORD
        <<- /conf/ analyse(\-1, ":(?:Q|V1.*:Y)", ":N.*:[fe]")
        -2>> m’a                                    && Confusion : “ma” est un déterminant possessif féminin. Pour le verbe “avoir” à la 3ᵉ personne précédé du pronom personnel me”, écrivez “m’a”.

    ma  @:(?:Q.*:e:i|V1.*:Y)¬:f:s
        <<- /conf/ -1>> m’a                         && Confusion probable : “\-2 est un participe passé. Vous confondez probablement “ma” et “m’a” (contraction de “me” suivi du verbe avoir “a”).

TEST: tu {{ma}} prise par surprise                          ->> m’as
TEST: il {{ma}} tuée                                        ->> m’a
TEST: cette femme ne {{ma}} prise que deux fois             ->> m’a
TEST: {{on}} {{ma}} dézinguée                               ->> ont|||m’a
TEST: ça {{ma}} {{foutu}} en l’air
TEST: cet homme {{ma}} succédé à ce poste                   ->> m’a
................................................................................
TEST: ça ma grande, c’est mon secret


# m’ont / mon
__conf_m_ont!6__
    il  mon
        <<- /conf/ morph(<1, "<start>|:C|>,/")
        --1>> m’ont                                 && Confusion probable : “mon” est un déterminant possessif. Pour le verbe “avoir” à la 3ᵉ personne du pluriel précédé du pronom personnel me”, écrivez “m’ont”.

    ils  mon
        <<- /conf/ not morph(<1, ":(?:3p|D)")
        --1>> m’ont                                 && Confusion : “mon” est un déterminant possessif. Pour le verbe “avoir” à la 3ᵉ personne du pluriel précédé du pronom personnel me”, écrivez “m’ont”.

    ne  mon
        <<- /conf/ --1>> m’ont                      && Confusion : “mon” est un déterminant possessif. Pour le verbe “avoir” à la 3ᵉ personne du pluriel précédé du pronom personnel me”, écrivez “m’ont”.

TEST: il {{mon}} détruit                                    ->> m’ont
TEST: ils {{mon}} donné du fil à retordre, ces cons.        ->> m’ont
TEST: ces écarts ne {{mon}} posé aucun problème             ->> m’ont


# mai / mais
__conf_mai_mais_mes__
    [<start>|,|(]  mai  @:(?:Os|M)¬:3s
        <<- /conf/ -2>> mais
        && Confusion probable : “mai” est le 5ᵉ mois de l’année. Pour la conjonction de coordination, écrivez “mais”.|https://fr.wiktionary.org/wiki/mais

    mes  [que|qu’|pourquoi|comment|quand|là|ici|combien|surtout|puisque|puisqu’|quoi|quoique|quoiqu’]
    mes  [le|la|l’|les|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quel|quels|quelle|quelles|plusieurs]
    mes  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels]
        <<- /conf/ (\1.islower() or value(<1, "|<start>|,|")) and \2.islower() -1>> mais
        && Confusion possible : “mes” est un déterminant utilisé pour signaler la possession. Pour la conjonction de coordination, écrivez “mais”.|https://fr.wiktionary.org/wiki/mais

TEST: {{mai}} il y a encore tant à faire.
TEST: {{mai}} Patrick vient demain.
TEST: Je viendrai, {{mai}} il faudra avoir tout prévu.
TEST: {{mes}} que voulez-vous
TEST: Mai pluvieux.

................................................................................
TEST: à vue de nez, ça pue bien fort


# notre / nôtre -- votre / vôtre
# Hunspell corrige déjà les formes au pluriel (les nôtres).
__conf_nôtre_notre__
    [le|la|les|du|des|au|aux] notre
        <<- /conf/ not value(>1, "|père|") -2>> nôtre                       && Confusion : « notre possession », « la nôtre ».

    [le|la|les|du|des|au|aux] votre
        <<- /conf/ -2>> vôtre                                               && Confusion : « votre possession », « la vôtre ».

    >nôtre  @:[NA]¬:D
        <<- /conf/ not value(<1, "|le|la|les|du|des|au|aux|") -1>> notre    && Confusion : « notre possession », « la nôtre ».

    >vôtre  @:[NA]¬:D
        <<- /conf/ not value(<1, "|le|la|les|du|des|au|aux|") -1>> votre    && Confusion : « notre possession », « la nôtre ».

TEST: le {{notre}} n’en vaut pas la peine
TEST: C’est la {{votre}} ?
TEST: {{nôtre}} père est si âgé.
TEST: {{vôtre}} chien a du mordant
TEST: nous vous proposons de faire vôtre une autre volonté
TEST: Elle récitait sans cesse des Notre Père.
................................................................................




# nulle part
__conf_nulle_part__
    nul part
        <<- /conf/ not morph(<1, ":D.*:m:[si]") ->> nulle part      && Confusion : pour dire “en aucun lieu”, écrivez “nulle part”.

TEST: car {{nul part}} ailleurs, on n’en trouve une telle concentration


# oc / hoc
__conf_oc_hoc__
    ad oc
................................................................................


# on / ont
__conf_ont_on!6__
    on  @:W¬:(?:3s|Ov)
    on  [de|d’|du|des|un|une|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|plusieurs|certains|certaines|maints|maintes]
        <<- /conf/ not morph(<1, ":V.*:3s") and not before0("’$")
        -1>> ont                                                    && Confusion probable : “avoir” à la 3ᵉ personne du pluriel du présent s’écrit “ont”.

    [n’|m’|t’|l’] [y|en] on
        <<- /conf/ -3>> ont                                         && Confusion. Exemples : « on y va », « ils ont faim ».

    [ne|n’|me|m’|te|t’] l’ on
        <<- /conf/ -3>> ont                                         && Confusion. Exemples : « on y va », « ils ont faim ».

    qui on
        <<- /conf/ not morph(<1, ":[VR]|<start>") and not morph(>1, ":(?:3s|Ov)")
        -2>> ont                                                    && Confusion probable. Exemples : « on y va », « ils ont faim ».

TEST: ces gens {{on}} {{souvent}} tort.
TEST: {{on}} {{des}} drôles de manières
TEST: n’y {{on}} {{jamais}} lieu de telles abominations !
TEST: ces chiens te l’{{on}} {{donné}}
TEST: Qui {{on}} {{tant}} de malheurs !
TEST: Je voulais qu’on soit ensemble.
................................................................................


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

    [<start>|,|/_start_] ?l’¿ ont t’
        <<- /conf/ not value(>1, "|il|ils|elle|elles|iel|iels|") --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
        && Confusion probable : “ont” est une forme conjuguée du verbe “avoir”. Pour le pronom personnel, écrivez “on” et mettez un trait d’union puisqu’il s’agit d’une question.

TEST: il m’assure qu’{{ont}} ne sait pas s’y prendre
TEST: {{ont}} m’assure qu’il n’y en a pas.
TEST: {{Ont}} n’arrive pas à s’en sortir.
TEST: {{Ont}} ne sait jamais quoi faire
TEST: si {{ont}} donne à ces gens, ça n’en finit plus.
TEST: {{Ont}} viens !
................................................................................
TEST: Les {{pêchers}} capitaux
TEST: Des {{pêchés}} véniels
TEST: C’est mon péché mignon.


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

    [pécheur+s] [du|d’|de|des|la|le|l’|les|à|au|aux] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|bouvière+s|>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]
    [pécheur+s] [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("pé", "pê").replace("Pé", "Pê").replace("PÉ", "PÊ")     && Confusion probable : pêcheurs (qui pêchent des animaux marins) ≠ pécheurs (qui commettent des péchés).

TEST: une cabane de {{pécheur}}
TEST: le bateau des {{pécheurs}}
TEST: {{pécheur}} de maquereau


# pêle-mêle
................................................................................
TEST: Ça consiste {{pelle mêle}} en diverses choses.
TEST: habitées par un peuple de prostituées […], vivant là, entassées pêle-mêle avec toutes sortes d’individus plus ou moins suspects, souteneurs et repris de justice pour la plupart.


# peu / peux / peut
__conf_peu_peut_peux!6__
    peu [pas|donc|jamais|rien|parfois|alors|enfin|rarement|éventuellement]
        <<- /conf/ not morph(<1, ">(?:très|en|un|de|du)/") -1>> peut        && Confusion probable : « peu » signifie « pas beaucoup », pour le verbe pouvoir, écrivez “peut”.

    !! peu à peu ¡¡
    [peux|peut|peu] [a|à|ah|ha|as] [peux|peut|peu]
    peu-a-peu
    peu-à-peu
    peut-a-peu
    peu-à-peut
................................................................................
    peut-à-peut
    peut-à-peux
    peux-à-peut
    peux-a-peux
    peut-a-peut
    peut-a-peux
    peux-a-peut
        <<- /conf/ ->> peu à peu                                            && Confusion : « peu à peu » ou « petit à petit ».

    !! peu ou prou ¡¡
    [peux|peut|peu] [ou|où] [>proue|prou]
        <<- /conf/ ->> peu ou prou                                          && Confusion. Locution adverbiale “peu ou prou”.|https://fr.wiktionary.org/wiki/peu_ou_prou

    [peux|peut] [importent|importe+s]
        <<- /conf/ morph(<1, ":C|<start>") -1>> peu                         && Confusion : « \1 » est une conjugaison de “pouvoir”, utilisez “peu” pour dire “pas beaucoup”.

    [très|trop|de|quelque|pour|à] [peux|peut]
        <<- /conf/ -2>> peu                                                 && Confusion : « \2 » est une conjugaison de “pouvoir”, utilisez “peu” pour dire “pas beaucoup”.

    un  [peux|peut]
        <<- /conf/ not value(<1, "|quelqu’|l’|d’|sauf|") -2>> peu           && Confusion : « \2 » est une conjugaison de “pouvoir”, utilisez “peu” pour dire “pas beaucoup”.

    [il|on] ?[ne|n’]¿ peu
        <<- /conf/ --1>> peut                                               && Confusion : « peu » signifie « pas beaucoup ».

    [je|tu] ?[ne|n’]¿ peu
        <<- /conf/ --1>> peux                                               && Confusion : « peu » signifie « pas beaucoup ».

    [ne|se|n’|s’] peu
        <<- /conf/ -2>> peut                                                && Confusion. Exemples : Il est peu habile, mais il peut y arriver.

    [peut|peux]  @:A¬:(?:[MGWYX]|3[sp])
        <<- /conf/ not morph(\2, ">(?:seul|beau)/") and not morph(<1, ">(?:je|tu|il|on|ne)/")
        -1>> peu                                                            && Confusion probable : « \1 » est une conjugaison de « pouvoir », utilisez « peu ».

TEST: {{peu}} rarement y arriver.
TEST: Il est un {{peut}} comme une forêt
TEST: cela ne se {{peu}}.
TEST: des bâtisses {{peu a peu}} abandonnées.
TEST: voilà {{peut ou proue}} ce qu’on entend
TEST: aucun pays – ou très peu alors – n’a réussi à faire ça de façon durable
................................................................................
TEST: pour peu qu’ils soient entendus.
TEST: Il est guéri et peut de nouveau travailler.
TEST: l’homme peut bel et bien devenir immortel


__conf_peut_être__
    [peu-être|peux-être]
        <<- /conf/ ->> peut-être                                            && Confusion. Écrivez « peut-être », qui signifie « possiblement ».

    <start>  [il|ce|ne|on]  peut-être
        <<- /conf/ -3>> peut être                                           && Confusion probable : « peut-être » signifie « possiblement ».

    <start>  [cela|ceci|ça]  peut-être  @:[AQ]
        <<- /conf/ -3>> peut être                                           && Confusion probable : « peut-être » signifie « possiblement ».

TEST: Il {{peut-être}} mortel.
TEST: Cela {{peut-être}} mortel.
TEST: cela arrivera {{peux-être}}.


# de plain pied
................................................................................
TEST: transpirer par tous les {{porcs}}                                     ->> pores
TEST: je transporte des porcs de Calais à Londres.


# pot aux roses / poteau rose
__conf_pot_aux_roses__
    poteau rose
        <<- /conf/ ->> pot aux roses                                        && Confusion probable. On dit : « découvrir le pot aux roses ».|https://fr.wiktionary.org/wiki/d%C3%A9couvrir_le_pot_aux_roses

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’]
................................................................................
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


__conf_près_prêt_pré__
    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.
................................................................................
        <<- /conf/ --1>> près                                               && Confusion probable. Locution “à \2 \3 près”.

    au [nanomètre|millimètre|centimètre|décimètre|mètre|kilomètre] [>prêt|>pré]
        <<- /conf/ --1>> près                                               && Confusion probable. Locution “au \2 près”.

    à [ceci|cela] [prêt|prêts] [que|qu’]
    [<start>|,|(] à [ceci|cela] [prêt|prêts] [,|<end>|)]
        <<- /conf/ --2>> près                                               && Confusion probable. Locution “à \1 près”.|https://fr.wiktionary.org/wiki/%C3%A0_cela_pr%C3%A8s

    ni de [>prêt|>pré] ?,¿ ni de loin
        <<- /conf/ -3>> près                                                && Confusion. Locution “ni de près, ni de loin”.|https://fr.wiktionary.org/wiki/de_pr%C3%A8s

    depuis [>prêt|>pré] [de|d’] *NUM *WORD
    depuis [>prêt|>pré] [de|d’] $:B:e:p  *WORD
        <<- /conf/ -2>> près                                && Confusion. Être prêt(e) à faire quelque chose. Être près de quelque chose. Le pré est un champ d’herbes. Depuis presque “\4 \5”, donc “près \3 \4 \5”.

TEST: depuis {{prêt}} de 15 ans
TEST: approche très {{prêt}}
TEST: ils se sont approchés très {{prêts}}.
TEST: Je suis si {{prêt}} d’y arriver.
TEST: Elle est {{prêt}} de la trouver.
TEST: Elle va regarder ça de plus {{prêt}}.
................................................................................
    puis >quantique
        <<- /conf/ morph(<1, ":D.*:[mp]|<start>") -1>> puits
        && Confusion. Puits quantique : zone de l’espace dans laquelle le potentiel ressenti par une particule quantique atteint un minimum.|https://fr.wikipedia.org/wiki/Puits_quantique

    puis de >potentiel [fini+ses|>carré|>harmonique]
    puis de >potentiel @:¬:[NA]
        <<- /conf/ morph(<1, ":D.*:[mp]|<start>") -1:3>> puits de potentiel
        && Confusion probable. Un puits de potentiel désigne, en physique, le voisinage d'un minimum local d'énergie potentielle.|https://fr.wikipedia.org/wiki/Puits_de_potentiel

TEST: Tombée au fond du {{puis}}, le désespoir la gagnait.
TEST: Des {{puis}}, tu en as combien ?
TEST: J’ai plusieurs {{puis}} de pétrole.
TEST: quel {{puis}} artésien ?
TEST: de quel {{puis}} quantique parles-tu ?
TEST: {{Puis de potentiel}} harmonique
................................................................................

__conf_qu_en_quand_quant__
    [quand|quant]   $:P
        <<- /conf/ -1>> qu’en                                               && Confusion probable.

    [quand|quant] [est|était|fut|serait] il [de|des|du]
    [quand|quant] [est-il|était-il|fut-il|sera-t-il|serait-il] [de|des|du]
        <<- /conf/ -1>> qu’en                                               && Confusion probable. Ce qu’il en est de… → Qu’en est-il de… ?

    [quand|quant]  /_VCint_  [<end>|,|)]
        <<- /conf/ morphVC(\2, ">(?:déduire|penser)/") -1>> qu’en           && Confusion probable. Exemple : Ce qu’il en pense → Qu’en pense-t-il ?

    ce [quand|quant] [>déduire|>penser]
        <<- /conf/ -2>> qu’en                                               && Confusion probable. Exemple : Ce qu’il en pense → Qu’en pense-t-il ?

................................................................................
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__
    >quelque [puisse|puisses|put|pût]
        <<- /conf/ -1>> quel que|quelle que                                 && Confusion : “quelque” est un déterminant.

    >quelque [puissent|pussent]
        <<- /conf/ -1>> quels que|quelles que                               && Confusion : “quelque” est un déterminant.

TEST: {{quelque}} puisse être la vérité, nous finirons par la découvrir.
TEST: {{quelques}} puissent être les raisons de son acte, il faut pardonner.


# quel qu’en soit
__conf_quel_qu_en_soit__
    qu’ [elle|elles]             [quand|quant]  [soi|>soie|sois|soit|soient]
    [quel|quels|quelle|quelles]  [quand|quant]  [soi|>soie|sois|soit|soient]
        <<- /conf/ --2>> qu’en                                              && Confusion. Locution “quel qu’en soit le …, quelle qu’en soit la …”.|https://fr.wiktionary.org/wiki/quel_que_soit#fr

    qu’ [elle|elles] qu’ en [soi|>soie|sois|soit]
        <<- /conf/ ->> quel qu’en soit|quelle qu’en soit                    && Confusion. Locution “quel qu’en soit le …, quelle qu’en soit la …”.|https://fr.wiktionary.org/wiki/quel_que_soit#fr

    qu’ [elle|elles] qu’ en soient
        <<- /conf/ ->> quels qu’en soient|quelles qu’en soient              && Confusion. Locution “quels qu’en soient les …, quelles qu’en soient les …”.|https://fr.wiktionary.org/wiki/quel_que_soit#fr

TEST: qu’elle {{quand}} soit le résultat                                ->> qu’en
TEST: {{qu’elle qu’en soi}} la raison, ça ne suffit pas.                ->> quel qu’en soit|quelle qu’en soit
TEST: {{qu’elles qu’en soient}} les raisons                             ->> quels qu’en soient|quelles qu’en soient


# quelque part
................................................................................
    qu’ [elle|elles] que [>foi|>foie]
    [quel|quels|quelle|quelles] que [>foi|>foie]
    quelque fois
        <<- /conf/ ->> quelquefois|quelques fois
        && Confusion. Utilisez “quelquefois” si vous voulez dire “parfois”. Utilisez “quelques fois” pour évoquer ce qui est advenu ou adviendra plusieurs fois.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4334

    les quelquefois [ou|où|que|qu’]
        <<- /conf/ -2>> quelques fois                                       && Confusion : “quelquefois” signifie “parfois”.|https://fr.wiktionary.org/wiki/quelquefois

    >être  quelques fois  ?$:W¿  @:A  [de|d’]
        <<- /conf/ -2:3>> quelquefois                                       && Confusion possible. Si vous voulez dire “parfois”, écrivez “quelquefois”.

TEST: {{Quelles que fois}}, on y comprend plus rien.
TEST: {{Qu’elle que fois}}, on y comprend plus rien.
TEST: Il y va {{quelque fois}} par an.
................................................................................

TEST: Elle y parviendra, {{quoiqu’il}} en coûte.


# quelle / qu’elle
__conf_qu_elle_quelle__
    [que|qu’]  elle   @:[NAQ]¬:(?:G|[123][sp]|W|Oo|X)|>seul/
        <<- /conf/ -1:2>> quelle                                                                    && Confusion probable. Ex : Quelle femme ! Je crois qu’elle réussira.

    [que|qu’]  elles  @:[NAQ]¬:(?:G|[123][sp]|W|Oo|X)|>seul/
        <<- /conf/ -1:2>> quelles                                                                   && Confusion probable. Ex : Quelle femme ! Je crois qu’elle réussira.

TEST: {{qu’elle}} emmerdeuse.
TEST: {{qu’elles}} belles terrasses
TEST: je crois qu’elle seule peut y parvenir
TEST: Elle cache qu’elle a été en prison.
TEST: Qu’elle avait été accueillie avec joie.

................................................................................
TEST: elle est en roue libre depuis le début.


# 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

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

    [>sein|saint+s] d’ esprit
    [>sein|saint+s] de corps et d’ esprit
        <<- /conf/ -1>> sain|sains                              && Confusion probable. Pour dire “en bonne santé”, écrivez “sain”.|https://fr.wiktionary.org/wiki/sain

    [blanc-sein+s|blancs-sein+s]
    [blanc-sain+s|blancs-sain+s]
................................................................................
TEST: {{blanc-sein}}


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

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


# sens / cens / cent / sans / sang
__conf_sens_sans_cent_cens__
................................................................................
TEST: {{S’en suivrons}} une guerre de tous les instants et…
TEST: {{S’en suivre}}.


__conf_si_vconj__
    si  @:(?:[123][sp]|Y)¬:[GAQWMT]  <end>
        <<- /conf/ not \1.isupper() and not value(<1, "|ne|il|ils|on|")
        -2>> =suggSimil(\2, ":[AWGT]", True)                                                        && Incohérence probable avec “si” : “\2” ne devrait pas être une forme verbale conjuguée.

    si  @:[123][sp]¬:[GNAQWMT]  @:¬:D
        <<- /conf/ not \1.isupper() and not value(<1, "|ne|il|ils|on|") and not (morph(\2, ":V0") and morph(\3, ":[QY]"))
        -2>> =suggSimil(\2, ":[AWGT]", True)                                                        && Incohérence probable avec “si” : “\2” ne devrait pas être une forme verbale conjuguée.

TEST: des personnes si {{désespérer}}
TEST: Ces gens sont si {{prit}} par leur travail qu’ils en oublient de vivre.
TEST: Ça ira mieux demain, surtout si émerge une demande forte de la part des consommateurs.
TEST: Toutes les bifurcations qui auraient été possibles si avaient été pris en compte des critères autre que la captation de valeur ajoutée, l’augmentation des taux de profit, et l’accumulation du capital.
TEST: si venir à la conférence coûte autant, il est préférable de s’abstenir.

................................................................................
TEST: {{si tôt dit, sitôt fait}}
TEST: sitôt dit, sitôt fait.


# s’y / si
__conf_s_y_si__
    ne  si  @:V
        <<- /conf/ -2>> s’y && Confusion probable entre la conjonction “si” et la contraction du pronom personnel “se” avec “y” (“s’y”) précédant un verbe. Exemple : La montagne, elle s’y plaît, si le temps est clément.

    [<start>|,|(]  *WORD  si  @:[123][sp]¬:[MGA]
        <<- /conf/ \-2.islower() and morph(\2, ":M")
        --2>> s’y           && Confusion probable entre la conjonction “si” et la contraction du pronom personnel “se” avec “y” (“s’y”) précédant un verbe. Exemple : La montagne, elle s’y plaît, si le temps est clément.

    [il|ils|on]  si  @:[123][sp]¬:[MG]
        <<- /conf/
        --2>> s’y           && Confusion probable entre la conjonction “si” et la contraction du pronom personnel “se” avec “y” (“s’y”) précédant un verbe. Exemple : La montagne, elle s’y plaît, si le temps est clément.

    [<start>|,|(]  [elle|elles|iel|iels]  si  @:[123][sp]¬:[MGA]
        <<- /conf/
        --2>> s’y           && Confusion probable entre la conjonction “si” et la contraction du pronom personnel “se” avec “y” (“s’y”) précédant un verbe. Exemple : La montagne, elle s’y plaît, si le temps est clément.

    [<start>|,|(]  [un|une|le|la|l’|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  si  @:[123]s¬:A
        <<- /conf/ morph(\3, ":[NA].*:[si]")
        --2>> s’y           && Confusion probable entre la conjonction “si” et la contraction du pronom personnel “se” avec “y” (“s’y”) précédant un verbe. Exemple : La montagne, elle s’y plaît, si le temps est clément.

    [<start>|,|(]  [des|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  si  @:[23]p¬:A
        <<- /conf/ morph(\3, ":[NA].*:[pi]")
        --2>> s’y           && Confusion probable entre la conjonction “si” et la contraction du pronom personnel “se” avec “y” (“s’y”) précédant un verbe. Exemple : La montagne, elle s’y plaît, si le temps est clément.

    [<start>|,|(]  [certains|certaines|moult|maints|maintes]  *WORD  si  @:[23]p
        <<- /conf/ morph(\3, ":[NA].*:[pi]", ":3p")
        --2>> s’y           && Confusion probable entre la conjonction “si” et la contraction du pronom personnel “se” avec “y” (“s’y”) précédant un verbe. Exemple : La montagne, elle s’y plaît, si le temps est clément.

TEST: la politique, ne {{si}} épanouissent que les hypocrites
TEST: Jérôme {{si}} {{rend}} souvent
TEST: Mélanie {{si}} {{adonne}} avec passion.
TEST: il {{si}} croit
TEST: elle {{si}} {{complait}}
TEST: une femme {{si}} rend tous les jours
................................................................................
    soi [disants|disante|disantes]
    [>soie|soit|sois] [disant+ses]
    [soi-disants|soi-disante+s]
    [sois-disant+ses]
    [soie-disant+ses]
    [soies-disant+ses]
    [soit-disant+ses]
        <<- /conf/ ->> soi-disant                                                                   && Confusion : “soi-disant” est un adjectif invariable.|https://fr.wiktionary.org/wiki/soi-disant

TEST: Méfiez-vous de cette {{soi-disante}} sorcière.
TEST: Méfiez-vous de cette {{soit-disant}} sorcière.
TEST: Méfiez-vous de cette {{soi disant}} sorcière.


__conf_soi_soit_soie__
................................................................................
        <<- /conf/ morph(>1, ":[GY]|<end>", ">à/") and not value(<1, "|il|on|elle|n’|m’|t’|s’|") and not before("(?i)quel(?:s|les?|) qu[’ ]$") and not after(" soit ")
        -2>> soi                                                                                    && Confusion probable.|https://fr.wiktionary.org/wiki/soi

    >aller ?$:W¿ de soit
        <<- /conf/ not after(" soit ") --1>> soi                                                    && Confusion probable.|https://fr.wiktionary.org/wiki/aller_de_soi

    [soi|sois|soit|>soie]  >même
        <<- /conf/ morph(<1, ":[YQ]|>(?:avec|contre|par|pour|sur)/|<start>|>,") ->> soi-même        && Confusion probable : moi-même, toi-même, lui-même, elle-même, soi-même, elles-mêmes, eux-mêmes.

    [sois-même|soit-même|soie-même|soies-même|soi-mêmes|sois-mêmes|soit-mêmes|soie-mêmes|soies-mêmes]
        <<- /conf/ ->> soi-même                                                                     && Confusion : moi-même, toi-même, lui-même, elle-même, soi-même, elles-mêmes, eux-mêmes.

    [entre-soit|entre-sois|entre-soie+s]
        <<- /conf/ ->> entre-soi
        && Confusion : pour évoquer la situation où l’on ne rencontre que des gens proche de soi, écrivez “entre-soi”.|https://fr.wiktionary.org/wiki/entre-soi

TEST: chez {{soit}}, c’est presque toujours mieux.
TEST: ce n’est pas la philosophie en {{soit}} qui est problématique
TEST: quel que {{soie}} sa pensée, je refuse d’y accorder de l’attention.
TEST: Penser par {{soit même}}…
TEST: S’aimer {{soit-même}}, c’est le début d’une grande histoire d’amour. (Oscar Wilde)
TEST: pas sûr que {{sa}} {{soi}} terminé avant demain
................................................................................
TEST: je n’aime que les draps de {{soi}}.


__conf_soit_soi_soie__
    [<start>|,|(]  sois  @:(?:Os|C)¬:R
    [<start>|,|(]  [soi|>soie]  @:[OC]¬:R
    [<start>|,|(]  [soi|sois|>soie]  [j’|t’|c’|ç’]
        <<- /conf/ -2>> soit                                    && Confusion probable : pour évoquer une option, écrivez “soit”.|https://fr.wiktionary.org/wiki/soit#Conjonction

    [quel|quels|quelle|quelles] que [soi|>soie|sois]
        <<- /conf/ -3>> soit|soient                             && Confusion probable.

    que  sa  soi  @:[WXAQ]
        <<- /conf/ -3>> soit|soie                                               && Confusion. Pour le verbe être au subjonctif, écrivez “soit”. Pour la fibre servant à la confection de textile, écrivez “soie”.

................................................................................
TEST: Sois le plus efficace possible.


# son / sont
__conf_son_sont__
    [ne|n’|me|m’|te|t’|se|s’] son
    [ne|n’] [le|l’|leur|leurs|lui|nous|vous] son
        <<- /conf/ --1>> sont                                   && Confusion : “son” est un déterminant ou un nom masculin. Le verbe “être” à la 3ᵉ personne du pluriel s’écrit “sont”.

    [qui|que|comment|pourquoi|lorsque|quand] son [,|@:[DR]]
        <<- /conf/ -2>> sont                                    && Confusion probable : “son” est un déterminant ou un nom masculin. Le verbe “être” à la 3ᵉ personne du pluriel s’écrit “sont”.

    [<start>|,|(] sont @:[NA].*:[me]:s|>[aeéiîou].*/:[NA].*:f:s¬:[GW]
        <<- /conf/ -2>> son                                     && Confusion probable : “sont” est le verbe “être” à la 3ᵉ personne du pluriel. Pour le déterminant, écrivez “son”.

    sont @:[NA].*:[me]:s|>[aeéiîou].*/:[NA].*:f:s¬:[GW]
        <<- /conf/ morph(<1, ":(?:V|Cs|R)", ":(?:[NA].*:[pi]|Ov)") and not tag_before(\1, "_ceque_")
        -1>> son                                                && Confusion probable : “sont” est le verbe “être” à la 3ᵉ personne du pluriel. Pour le déterminant, écrivez “son”.

    [à|chez|dès|par] sont
    [avec|contre|devant|derrière|pour|sans|sur] sont @:[NA].*:[me]:s|>[aeéiîou].*/:[NA].*:f:s¬:[GW]
        <<- /conf/ -2>> son                                     && Confusion probable : “sont” est le verbe “être” à la 3ᵉ personne du pluriel. Pour le déterminant, écrivez “son”.

    en sont @:[NA].*:[me]:s|>[aeéiîou].*/:[NA].*:f:s¬:[GW]
        <<- /conf/ not value(<1, "|ils|elles|iels|leur|lui|nous|vous|m’|t’|s’|l’|") and not tag(<1, "_ceque_")
        -2>> son                                                && Confusion probable : “sont” est le verbe “être” à la 3ᵉ personne du pluriel. Pour le déterminant, écrivez “son”.

    son [ceux|celles]
        <<- /conf/ not morph(<1, ":D.*:m:s") -1>> sont          && Confusion probable : “son” est un déterminant ou un nom masculin. Le verbe “être” à la 3ᵉ personne du pluriel s’écrit “sont”.

    [<start>|,|(]  [elles|certaines|quelques-uns|quelques-unes]  son  @:[AQW]
        <<- /conf/ -2>> \2,                                     && Confusion possible : ou vous confondez “son” et “sont”, ou vous devriez mettre une virgule après “\2”.
        <<- /conf/ -3>> sont                                    && Confusion possible : pour la conjugaison de “être” à la 3ᵉ personne du pluriel, écrivez “sont”.

TEST: ne leur {{son}} pas odieux.
TEST: Ces chiens me {{son}} odieux.
................................................................................
# statue / statut / statu
__conf_statu_statue_statut__
    [statut|statue|status] quo
        <<- /conf/ ->> statu quo                && Confusion. Écrivez “statu quo”.|https://fr.wiktionary.org/wiki/statu_quo

    statu ~¬^[qQ][uU][oO]$
    statu [<end>|,|)]
        <<- /conf/ -1>> status|statut|statue    && Confusion : “statu” ne s’emploie que dans l’expression “statu quo”.

TEST: Ça n’en finit pas, c’est le {{statut quo}}.
TEST: mettre à jour son {{statu}}.


# subornation / subordination
__conf_subornation_subordination__
................................................................................
    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.|https://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.|https://fr.wiktionary.org/wiki/sur

    en >lieu sur
        <<- /conf/ -3>> 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.|https://fr.wiktionary.org/wiki/sur

    en >être >sur
        <<- /conf/ -3>> =\3.replace("u", "û").replace("U", "Û")
        && Confusion probable : “sur” un adjectif signifiant acide ou aigre ; utilisez “sûr” pour certain, vrai ou sans danger.|https://fr.wiktionary.org/wiki/sur

TEST: Je suis {{sur}} de Patrick.
TEST: Je suis {{sure}} qu’il ne va pas tarder à venir
TEST: {{sures}} d’elles-mêmes, elles ne s’en laissent pas conter.
TEST: {{sur}} de toi et de moi, que peut-il nous arriver, sinon le meilleur.
TEST: Il est tellement {{sur}} de la trouver.
TEST: ils sont en lieu {{sur}} et introuvables.
................................................................................
    chaque chose en son [>tant|tan]
        <<- /conf/ --1>> temps                              && Confusion. Pour ce qui est temporel, écrivez “temps”.|https://fr.wiktionary.org/wiki/temps

    un [>tan|tant] [de|d’]
        <<- /conf/ -2>> temps                               && Confusion. Pour ce qui est temporel, écrivez “temps”.|https://fr.wiktionary.org/wiki/temps

    en [tant|>tan] [de|d’] [guerre|paix|crise|doute|pluie]
        <<- /conf/ -2>> temps                               && Confusion. Écrivez « en temps de » si vous évoquez une période de temps.|https://fr.wiktionary.org/wiki/temps

    de [tant|>tan] en [tant|>tan]
        <<- /conf/ ->> de temps en temps                    && Confusion. Écrivez “de temps en temps”.|https://fr.wiktionary.org/wiki/de_temps_en_temps

    depuis la [nui|nuit] des [>tan|tant]
        <<- /conf/ --1>> temps                              && Confusion. Locution “depuis la nuit des temps”.|https://fr.wiktionary.org/wiki/temps

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

    [après|avec] [temps|>tan] [de|d’]
        <<- /conf/ -2>> tant                                && Confusion. Écrivez “tant” pour évoquer une quantité de quelque chose.|https://fr.wiktionary.org/wiki/tant

    en [temps|>tan] [que|qu’]
        <<- not (value(\2, "|temps|") and value(<1, "|temps|")) >>>
        <<- /conf/ value(>1, "|tel|tels|telle|telles|") -2>> tant       && Confusion. Locution « en tant que tel ».|https://fr.wiktionary.org/wiki/en_tant_que_tel
        <<- /conf/ __else__ -2>> tant                                   && Confusion. Écrivez « en tant que ».|https://fr.wiktionary.org/wiki/en_tant_que

    !! tant pis ¡¡
    [>tan|tant|temps] [pis|pi]
        <<- /conf/ ->> tant pis                             && Confusion. Locution “tant pis”.|https://fr.wiktionary.org/wiki/tant_pis

    !! tant s’ en faut ¡¡
    [tant|>tan|temps] [sens|cens|sans|>sang|san] [faux|faut]
................................................................................
    [chez|pour|contre|avec] toit
    >parler ?@:[WX]¿ de toit
    c’ >être toit
        <<- /conf/ --1>> toi                        && Confusion. Le toit est constitué d’une toiture. Pour le pronom personnel à la 2ᵉ personne, écrivez “toi”.|https://fr.wiktionary.org/wiki/toi

    [sous|sur] [mon|ton|son|notre|votre|leur] toi
    [sous|sur] [le|ce|un] ?même¿ toi
        <<- /conf/ --1>> toit                       && Confusion : “toi” est le pronom personnel à la 2ᵉ personne. Pour évoquer le sommet d’un bâtiment, écrivez “toit”.|https://fr.wiktionary.org/wiki/toit

TEST: ce n’est pas contre {{toit}}
TEST: sous son {{toi}}, c’est sa loi qui prime.


# tour à tour
__conf_tour_à_tour__
................................................................................
    >plat [>fond] [de|d’] [vert+s|>ver]
    >plafond [de|d’] [vert+s|>ver]
        <<- /conf/ --1>> verre                                      && Confusion. Locution “plafond de verre”.|https://fr.wiktionary.org/wiki/plafond_de_verre

    [le|ce|du|un] [>verre|vert+s|vers] ?qui¿ [ai|ait|es|est|>étai|était|étais|serais|serai|serait|fut|fût|fus] dans le fruit
    [le|ce|du|un] [>verre|vert+s|vers] dans le fruit
        <<- /conf/ -2>> ver
        && Confusion. Verre = matière. Vert = couleur. Vers = suite de mots rythmés. Vers = préposition (« en direction de »). L’animal s’écrit “ver”.

    [>verre|vert+s] de terre
        <<- /conf/ -1>> ver|vers
        && Confusion. Verre = matière. Vert = couleur. Vers = suite de mots rythmés. Vers = préposition (« en direction de »). L’animal s’écrit “ver”.

    [>ver|vert+s] [de|d’] [>bière|>cidre|>contact|>champagne|>chianti|>dégustation|jus|>lait|>limonade|>rosé|>rhum|>sécurité|>thé|>vin|>whisky|>alcool|>absinthe|>eau|>urine]
    >ver [dépoli+ses|>incassable]
        <<- /conf/ -1>> verre|verres
        && Confusion probable. Verre = matière. Vert = couleur. Ver = animal invertébré rampant. Vers = suite de mots rythmés. Vers = préposition (« en direction de »).

    en route [vert+s|ver|>verre]
    >faire ?@:[WX]¿ route [>vert|ver|>verre]
        <<- /conf/ --1>> vers
        && Confusion. Pour dire “en direction de” écrivez “vers”.|https://fr.wiktionary.org/wiki/vers

TEST: ce {{vert}} quoi nous allons, c’est une catastrophe à l’échelle planétaire.
TEST: en finir avec le {{vert}} qui était dans le fruit.
TEST: un immonde {{vert}} de terre
TEST: Un {{ver}} de bière fraîche.
TEST: On va lui tirer les {{verts du nez}}
TEST: tirer les {{vers du né}}
................................................................................
# voir / voire
__conf_voir_voire__
    voir [grand|petit|rouge]
        <<- !2>>

    voir  @:A¬:[NGM]
        <<- /conf/ not \2.istitle() and not morph(<1, ":(?:O[vs]|X)|>(?:aller|falloir|pouvoir|savoir|vouloir|préférer|faire|penser|imaginer|souhaiter|désirer|espérer|de|à)/")
        -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

    [ne|n’|le|la|les|l’|me|m’|te|t’|se|s’|y]                                             voire
    [de|d’]                                     ?[en|y]¿                                 voire
    [me|m’|te|t’|se|s’|nous|vous]               [en|y]                                   voire
    [le|la|l’|les]                              [en|y]                                   voire
    [comme|lorque|puisque|quand|que|quoique|si] ?[en|y]¿                                 voire
    [ni|par|pour|sans]                          ?[en|y]¿                                 voire
    [>aller|>falloir|>pouvoir|>vouloir]         ?[guère|jamais|pas|plus|point|rien]¿   ?[nous|vous]¿   voire
        <<- /conf/ --1>> voir           && Confusion probable : “voire” signifie “et même possiblement”. Pour le verbe, écrivez “voir”.|https://fr.wiktionary.org/wiki/voire

    [à|par] 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.
TEST: Voir les enfants jouer ne me rend pas nostalgique.
................................................................................
TEST: l’{{assemblé national}}
TEST: l’Assemblée nationale


# ayants droit
__gn_ayants_droit__
    [les|des|ces|ses|nos|vos|leurs] ayant [droit|droits]
        <<- /gn/ -2:3>> ayants droit                                && Au singulier : “un ayant droit”. Au pluriel : “des ayants droit”.

TEST: Comment lutter contre la cupidité des {{ayant droits}}
# Note: À supprimer? Graphie qui tend vers la soudure et le pluriel régulier (ayant-droit(s))


# bien d’autres
__gn_bien_d_autres__
    [<start>|,|(|et]  bien  d’  autre
        <<- /gn/ not value(>1, "|part|") --1>> autres
        && Au pluriel : “bien d’autres”, c’est-à-dire d’autres personnes, d’autres choses, d’autres considérations…|https://fr.wiktionary.org/wiki/bien_d%E2%80%99autres
................................................................................
TEST: elles arrivent en rangs serrés.


# entre autres
__loc_entre_autres!6__
    entre autre [<end>|,|)]
    entre autre @:(?:[GW]|[NA].*:[pi])
        <<- /loc/ -2>> autres                                       && La locution “entre autres”, toujours au pluriel.|https://fr.wiktionary.org/wiki/entre_autres

    !! entre autres choses ¡¡
    entre [autre+s] [chose+s]
        <<- /loc/ not value(<1, "|j’|n’|il|elle|on|")
        ->> entre autres choses                                     && La locution “entre autres choses”, toujours au pluriel.

TEST: Des raisons ? Entre {{autre}} je n’en savais pas plus que lui.
TEST: il y eut, entre {{autre}}, des erreurs commises.
TEST: il y aura {{entre autre chose}} des répercussions terribles.
TEST: il y aura {{entre autre choses}} des répercussions terribles.
TEST: on entre autre chose dans la base pour voir ce que ça donne.



# nul et non avenu
__gn_nul_et_non_avenu__
    nul et non >avenu
        <<- /gn/ not value(\-1, "|avenu|") --1>> avenu              && Accord avec “\1”.

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

TEST: {{en terme de}} communication, c’est une véritable catastrophe


# tous / tout / toutes
__loc_tous_azimuts__
    tout [azimut|azimuts]
        <<- /loc/ ->> tous azimuts                                  && « Tous azimuts » signifie « dans toutes les directions ».

__loc_une_bonne_fois_pour_toutes__
    une fois pour toute
    une bonne fois pour toute
        <<- /loc/ --1>> toutes                                      && Mettez “toute” au pluriel. Sous-entendu : une fois pour toutes les autres fois.

TEST: ils lancent des attaques {{tout azimut}}.
TEST: une bonne fois pour {{toute}}
TEST: ce sera réglé une fois pour {{toute}} quand il sera capturé.


# vu de ses yeux vu
................................................................................
TEST: Je suis sûr de les avoir vus de mes yeux vus.


# ni vu ni connu
__loc_ni_vu_ni_connu__
    ni [vus|vue|vues] ni [connu|connus|connue|connues]
    ni vu ni [connus|connue|connues]
        <<- /loc/ ->> ni vu ni connu                                                                && Ni vu ni connu : locution invariable.|https://fr.wiktionary.org/wiki/ni_vu_ni_connu

TEST: {{ni vus ni connus}}, on va s’en occuper.
TEST: ni vu ni connu, j’t’embrouille.


#### X fois par jour/an/semaine/etc.
__gn_x_fois_par_période__
    fois par [nanosecondes|millisecondes|secondes|minutes|heures|jours|semaines|semestres|trimestres|ans|années|décennies|siècles|millénaires]
        <<- /gn/ -3>> =suggSing(\3)                                     && Mettez au singulier : x fois par période de temps, donc pour chaque période de temps.

TEST: vingt fois par {{ans}}, à peu près.
TEST: 12 fois par {{jours}}, ça suffit.
TEST: Deux fois par mois…


#### lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche / matin, soir
................................................................................
# Les États
__maj_État__
    en fonction de l’ état
        <<- !5>>

    état [français|belge|suisse|canadien|palestinien|souverain|américain|russe|anglais|allemand|espagnol|italien|mexicain|japonais|chinois|australien|polonais|membre|africain|européen|asiatique|voyou|démocratique|totalitaire|fédéral|fédéré|capitaliste|communiste|providence|nation]
    état de droit
        <<- /maj/ \1 == "état" -1>> État                            && Majuscule manquante : si vous parlez de l’institution dirigeante d’une nation, écrivez “État”.

    états [français|>belge|>suisse|canadien+s|palestinien+s|souverain+s|>membre|américain+s|africain+s|européen+s|>asiatique|>voyou|>démocratique|>totalitaire|>fédéral|fédérés|>capitaliste|>communiste|>providence|>nation]
    états de droit
        <<- /maj/ \1 == "états" -1>> États                          && Majuscule manquante : si vous parlez de l’institution dirigeante d’une nation, écrivez “État”.

    [>affaire|>agent|>administration|>chancellerie|>chef|>conseil|>coup|>diplôme|>doctorat|>emprunt|>lycée|>propriété|>secret|>homme|>femme|>police|>religion|>ministre|>ministère|>subvention|>secrétaire|secret|secrets|>secrétariat|>raison|>ressortissant|>université] d’ état
        <<- /maj/ \3 == "état" -3>> État                            && Majuscule manquante : si vous parlez de l’institution dirigeante d’une nation, écrivez “État”.

    [>défense|>sûreté|>sureté|>agent|>budget|>caisse|>capital|>constitution|>charge|>chef|>dirigeant|>denier|>finance|>fonction|>fonctionnement|>frontière|>institution|>propriété|>monopole|>pouvoir|>rouage|>ressource|>service|>subvention|>suprême] de l’ état
        <<- /maj/ \4 == "état" -4>> État                            && Majuscule manquante : si vous parlez de l’institution dirigeante d’une nation, écrivez “État”.

    état-nation
    état-providence
    états-nation
    états-nations
    états-providence
    états-providences
        <<- /maj/ \1[0:1] == "é" -1>> =\1.replace("é", "É")         && Majuscule manquante : si vous parlez de l’institution dirigeante d’une nation, écrivez “État”.

TEST: Nous n’avons reçu aucune décision de l’{{état}} fédéral.
TEST: Les {{états}} démocratiques ne sont gouvernés que par des hypocrites et des opportunistes.
TEST: C’est une affaire d’{{état}}.
TEST: la défense de l’{{état}}.                                         ->> État
TEST: C’est une prérogative de l’{{état-nation}}                        ->> État-nation

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

    ne pas [tous|toutes|tout]
        <<- ~-1>> *


__gn_tout_det__
    [<start>|,|(]  tout [deux|trois]
        <<- /gn/ -2>> tous                                                                          && Locution pronominale : « tous deux ».|https://fr.wiktionary.org/wiki/tous_deux

    tout [mes|tes|ses|ces|nos|vos|leurs|ceux|celles]
        <<- /gn/ not morph(<1, ">(?:d[eu]|avant|après|malgré)/") -1>> tous                          && Erreur d’accord probable avec « \2 ».

    tout les @:¬:(?:3s|Oo)
        <<- /gn/ not morph(<1, ">(?:d[eu]|avant|après|malgré)/") -1>> tous                          && Erreur d’accord probable avec « les \3 ».

    de tout les temps
        <<- /gn/ -2>> tous                                                                          && Erreur d’accord avec « \3 \4 ».

TEST: {{Tout}} deux sont partis les premiers.
TEST: {{Tout}} mes hommes sont venus.
TEST: {{Tout}} les hommes sont dingues.
................................................................................
TEST: toute mon ignorance
TEST: j’eus toutes les peines du monde à l’en convaincre


__gn_tous_det_nom__
    [<start>|,|(]     tous    [des|mes|tes|ses|ces]   @:[NA].*:f¬:[me]
    [<start>|,|(]     tous    [les]                   @:[NA].*:f¬:(?:3p|[me]|Y)
        <<- /gn/ -2>> toutes                                                                        && Erreur d’accord probable : « \4 » est féminin.
        <<- /gn/ __also__ and hasFemForm(\4) -4>> =suggMasPlur(\4, True)                            && Erreur d’accord probable : « \2 » est masculin.

    tous    [des|mes|tes|ses|ces]   @:[NA].*:f¬:[me]
    tous    [les]                   @:[NA].*:f¬:(?:3p|[me]|Y)
        <<- /gn/ morph(<1, ":", ":(?:R|[123][sp]|Q)|>(?:[nv]ous|eux)/") -1>> toutes                 && Erreur d’accord probable : « \3 » est féminin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggMasPlur(\3, True)                            && Erreur d’accord probable : « \1 » est masculin.

    tous un chacun
        <<- /loc/ ->> tout un chacun                                                                && Pronom indéfini “tout un chacun”.|https://fr.wiktionary.org/wiki/tout_un_chacun

    [<start>|(] tous [le|l’|ce|cet|mon|ton|son|notre|votre|leur] @:N.*:[me]:[si]
    [<start>|(] tous [le|l’|ce|cet|mon|ton|son|notre|votre|leur] @:N.*:[me]:[si]
        <<- /gn/ -2>> tout                                                                          && Erreur d’accord probable avec « \3 \4 ».

TEST: {{tous}} ces {{idiotes}}
TEST: indubitablement {{tous}} des {{privilégiées}}
TEST: {{tous un chacun}} avait son opinion
TEST: {{tous}} mon amour pour elle n’y fit rien
TEST: {{tous}} mon plan consistait à les prendre par surprise et de vitesse
TEST: ça consiste à ne pas tous les lire
................................................................................
TEST: Mes amis sont tous arrivés, je les attendais tous.
TEST: Tous sont venus avec un peu de méfiance.


__gn_toutes_det_nom__
    [<start>|,|(]     toutes  [des|mes|tes|ses|ces]   @:[NA].*:m¬:[fe]
    [<start>|,|(]     toutes  [les]                   @:[NA].*:m¬:(?:3p|[fe]|Y)
        <<- /gn/ -2>> tous                                                                          && Erreur d’accord probable : « \4 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\4) -4>> =suggFemPlur(\4, True)                            && Erreur d’accord probable : « \2 » est féminin.

    toutes  [des|mes|tes|ses|ces]   @:[NA].*:m¬:[fe]
    toutes  [les]                   @:[NA].*:m¬:(?:3p|[fe]|Y)
        <<- /gn/ morph(<1, ":", ":(?:R|[123][sp]|Q)|>(?:[nv]ous|eux)/") -1>> tous                   && Erreur d’accord probable : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True)                            && Erreur d’accord probable : « \1 » est féminin.

    [<start>|(] toutes [la|l’|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] @:N.*:[fe]:[si]
    [<start>|(] toutes [la|l’|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] @:N.*:[fe]:[si]
        <<- /gn/ -2>> toute                                                                         && Erreur d’accord probable avec « \3 \4 ».

TEST: {{toutes}} mes {{bars}}
TEST: vraiment {{toutes}} des {{costauds}}
TEST: {{toutes}} sa dévotion n’y suffisait pas                                          ->> toute
TEST: {{toutes}} la pensée philosophique a buté sur la question de la liberté           ->> toute
TEST: Elles connaissent toutes le monde féerique des princes et princesses.
TEST: Les filles, plus studieuses que les garçons, ont toutes le document transmis par courriel.
................................................................................
    [<start>|,|(|/_start_]  tu                   [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [il|elle|on|iel]     [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ce|ça|ceci|cela]    [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  nous                 [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  vous                 [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ils|elles|iels]     [le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]     @:3p¬:Ov  [pas|rien|jamais|guère|point]
        <<- /neg/ not (value(\1, "|que|qu’|") and value(\-1, "|jamais|")) and not (value(\-1, "|pas|") and value(>1, "|mal|"))
        -3>> ne \3                                                                                  && Ne … \5 : il manque l’adverbe de négation.

    [<start>|,|(|/_start_]  [je|j’]              [en|y]                                                  @:1s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  tu                   [en|y]                                                  @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [il|elle|on|iel]     [en|y]                                                  @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ce|ça|ceci|cela|c’] [en|y]                                                  @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  nous                 [en|y]                                                  @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  vous                 [en|y]                                                  @:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ils|elles|iels]     [en|y]                                                  @:3p¬:Ov  [pas|rien|jamais|guère|point]
        <<- /neg/ not (value(\1, "|que|qu’|") and value(\-1, "|jamais|")) and not (value(\-1, "|pas|") and value(>1, "|mal|"))
        -3>> n’\3                                                                                   && Ne … \5 : il manque l’adverbe de négation.

    [<start>|,|(|/_start_]  je                   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:1s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  tu                   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [il|elle|on|iel]     [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ce|ça|ceci|cela]    [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  nous                 [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  vous                 [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]     @:2p¬:Ov  [pas|rien|jamais|guère|point]
................................................................................
    [<start>|,|(|/_start_]  tu                   [lui|leur]                      en                      @:2s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [il|elle|on|iel]     [lui|leur]                      en                      @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ce|ça|ceci|cela]    [lui|leur]                      en                      @:3s¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  nous                 [lui|leur]                      en                      @:1p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  vous                 [lui|leur]                      en                      @:2p¬:Ov  [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ils|elles|iels]     [lui|leur]                      en                      @:3p¬:Ov  [pas|rien|jamais|guère|point]
        <<- /neg/ not (value(\1, "|que|qu’|") and value(\-1, "|jamais|")) and not (value(\-1, "|pas|") and value(>1, "|mal|"))
        -3>> ne \3                                                                                  && Ne … \6 : il manque l’adverbe de négation.

    [<start>|,|(|/_start_]  [je|j’]              @:1s¬:Ov    [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  tu                   @:2s¬:Ov    [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [il|elle|on|iel]     @:3s¬:Ov    [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ce|ça|ceci|cela]    @:3s¬:Ov    [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  nous                 @:1p¬:Ov    [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  vous                 @:2p¬:Ov    [pas|rien|jamais|guère|point]
    [<start>|,|(|/_start_]  [ils|elles|iels]     @:3p¬:Ov    [pas|rien|jamais|guère|point]
        <<- /neg/ not (value(\1, "|que|qu’|") and value(\-1, "|jamais|")) and not (value(\-1, "|pas|") and value(>1, "|mal|")) >>>
        <<- /neg/ morph(\3, ">[aâeéêiîoôuœæ]") -3>> n’\3                                            && Ne … \4 : il manque l’adverbe de négation.
        <<- /neg/ __else__ -3>> ne \3                                                               && Ne … \4 : il manque l’adverbe de négation.

    [<start>|,|(|/_start_]  c’                   @:3s¬:Ov    [pas|rien|jamais|guère|point]
        <<- /neg/ not (value(\1, "|que|qu’|") and value(\-1, "|jamais|")) and not (value(\-1, "|pas|") and value(>1, "|mal|")) and morph(\3, ">[aâeéêiîoôuœæ]")
        -2>> ce n’                                                                                  && Ne … \4 : il manque l’adverbe de négation.

    [<start>|,|(|/_start_]  [je|tu|il|elle|on|iel|nous|vous|ils|elles|iels]  >avoir  qu’  à
        <<- /neg/ -3>> n’\3                                                                         && Locution “n’avoir qu’à” : il manque l’adverbe de négation.

TEST: __neg__ On {{a}} pas compris.                     ->> n’a
TEST: __neg__ Il {{part}} pas encore.                   ->> ne part
TEST: __neg__ On {{vous}} a pas compris.                ->> ne vous
................................................................................
        <<- /infi/ analyse(\-1, ":V") --1>> =suggVerbInfi(\-1)                                      && Incohérence. Après “de bon ton de [faire quelque chose]”, le verbe doit être à l’infinitif.

TEST: il est souvent de bon ton de {{pensée}} calmement à ces choses avant de s’engager tête baissée.


__imp_ne_infinitif_negadv!3__
    [<start>|,|(]  [ne|n’]  @:V1.*:Y  [pas|plus|jamais]
        <<- /imp/ -3>> =suggVerbTense(\3, ":E", ":2p")                                              && Confusion probable : “\3” est un verbe à l’infinitif. Si vous vouliez utiliser l’impératif, écrivez :

    qui  [ne|n’]  @:V1.*:Y  [pas|plus|jamais|aucun|aucune]
        <<- /imp/ not morph(<1, ":R") -3>> =suggVerb(\3, ":2s")                                     && Confusion probable : “\3” est un verbe à l’infinitif.

TEST: Non, ne {{manger}} pas ça.                                    ->> mangez
TEST: Ne {{donner}} jamais à manger ces saloperies au chat.         ->> donnez
TEST: Qui ne {{créer}} aucune valeur ajoutée
................................................................................
    >rendre hommage a
    >rendre service a
        <<- /conf/ not tag_before(\1, "_propsub_") and not morph(\1, ":[YNA]") and not value(>1, "|été|")
        --1>> à                                                             && Confusion probable : “a” est une conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|https://fr.wiktionary.org/wiki/%C3%A0

    @:V¬:[YGNAWM]  a
        <<- /conf/ \-1 != "A" and not tag_before(\1, "_propsub_") and not morph(>1, ":Q")
        --1>> à                                                             && Confusion probable : “a” est la conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|https://fr.wiktionary.org/wiki/%C3%A0

    [/_VCint_|/_VCimp_]  a
        <<- /conf/ not value(\1, "|rendez-vous|") --1>> à                   && Confusion : “a” est la conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|https://fr.wiktionary.org/wiki/%C3%A0

    >passer du coq a l’ âne
        <<- /conf/ -4>> à                                                   && Confusion : “a” est la conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|https://fr.wiktionary.org/wiki/%C3%A0

TEST: en proie {{a}} toutes sortes d’illusions
TEST: ce contrat arrive {{a}} échéance.
TEST: il faut tenir {{contes}} des faits au lieu de nos impressions.
TEST: prendre {{a}} la légère ce test serait une erreur.
TEST: il faut se tenir {{a}} distance de ces gens-là.
TEST: J’avais du mal {{a}} l’écouté (double erreur utile pour tester le faux positif)
................................................................................
TEST: le bonheur de plaire a des conséquences bénéfiques sur le moral.
TEST: le projet auquel ils ont mis fin a toutes les chances d’être repris par nos concurrents.
TEST: Le rêve a d’autres propriétés méconnues.


__conf_pronom_à_l_air__
    [tout|ça|ceci|cela|elle|tu]  à  l’  air  @:[AR]|>libre/
        <<- /conf/ morph(<1, ":Cs|<start>|>,") -2>> a               && Confusion probable: “à” est une préposition. Pour le verbe “avoir”, écrivez “a”.

TEST: lorsque tout {{à}} l’air fini, c’est trompeur.
TEST: Tout {{à}} l’air complètement foutu…
TEST: Ça {{à}} l’air génial.
TEST: elle {{à}} l’air heureuse.
TEST: Tout à la benne.


__conf_a_à_faim_peur_honte_soif_chaud_froid__
    à [faim|peur|honte|soif|sommeil]
        <<- /conf/ -1>> a                       && Avoir “\2”. Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

    <start> elle à [chaud|froid]
        <<- /conf/ -3>> a                       && Avoir “\4”. Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: Elle {{à}} chaud.
TEST: Elle {{à}} froid.
TEST: cet homme {{à}} faim
TEST: Votre réaction à froid ?


................................................................................
TEST: Vendre ça aussi cher, c’est abuser de la crédulité des touristes.


# acre / âcre
__conf_acre_âcre__
    *NUM  >âcre
        <<- /conf/ -2>> =\2.replace("â", "a").replace("Â", "A")
        && Confusion probable : “âcre” est un adjectif signifiant “irritant”. Pour l’unité de surface agraire, écrivez “acre”.|https://fr.wiktionary.org/wiki/%C3%A2cre

    [>alcool|>être|>goût|>gout|>humeur|>odeur|>parole|>parfum|>remarque|>reproche|>réponse|>saveur|>senteur|>sensation|>vin]  >acre
        <<- /conf/ -2>> =\2.replace("a", "â").replace("A", "Â")
        && Confusion probable : “acre” est une unité de surface agraire. Pour l’adjectif signifiant “irritant”, écrivez “âcre”.|https://fr.wiktionary.org/wiki/%C3%A2cre

TEST: un terrain de 3 {{âcres}}.
TEST: Il avait ce goût {{acre}} dans la bouche qui ne passait pas.


# accro / accroc
__conf_être_accro__
    [>être|>devenir|>redevenir|>paraître|>paraitre|>rendre|>sembler]  >accroc
        <<- /conf/ -2>> =\2.replace("oc", "o")      && Confusion : “accroc” signifie “déchirure”, “incident”, etc. tandis que “accro” est un terme familier qui signifie “dépendant”.

    [>être|>devenir|>redevenir|>paraître|>paraitre|>rendre|>sembler]  [à|a] >croc
        <<- /conf/ -2:3>> accro|accros              && Confusion : “accroc” signifie “déchirure”, “incident”, etc. tandis que “accro” est un terme familier qui signifie “dépendant”.

    >accroc [à|a] la [bouffe|cocaïne|codéine|codeine|course|drogue|coke|meth|méthamphétamine|morphine|nicotine|nourriture|télé|télévision|clope|cigarette|came|poudre|baise|musique|viande]
    >accroc [à|a] cette [came|émission|merde|poudre|femme|meuf|gonzesse|conne|salope|garce|pute]
    >accroc [à|a] ce [mec|keum|type|con|connard]
    >accroc [à|a] ce fils de pute
    >accroc [à|a] cet [homme|enculé|imbécile|enfoiré]
    >accroc [à|a] l’ [alcool|amour|argent|ecstasy|herbe|héro|héroïne|opium|ordi|ordinateur]
    >accroc [à|a] [Facebook|Internet|Twitter|lui|elle|eux|elles]
    >accroc [au|du] [chocolat|cul|jeu|PC|poker|sexe|shopping|smartphone|sport|sucre|tabac|téléphone|travail|LSD|crack]
    >accroc aux [antidépresseurs|anti-dépresseurs|bonbons|hommes|mecs|femmes|gonzesses|médicaments|médocs|jeux|séries|sucreries]
        <<- /conf/ -1>> =\1.replace("oc", "o")      && Confusion : “accroc” signifie “déchirure”, “incident”, etc. tandis que “accro” est un terme familier qui signifie “dépendant”.

    >faire [un|des] >accro  à [des|ces|mes|tes|ses|nos|vos|leurs] [principes|collants]
    >faire [un|des] >accro  à [mon|ton|son|notre|votre|leur] [caleçon|pantalon]
    >faire [un|des] >accro  à [la|ma|ta|sa|notre|votre|leur] [chemise|chemisier|culotte|jupe|veste]
    >faire [un|des] >accro  aux [principes|collants|caleçons|pantalons|chemises|chemisiers|culottet|jupes|vestes]
        <<- /conf/ -3>> =\3.replace("ro", "roc")    && Confusion : “accro” est un terme familier qui signifie “dépendant”, tandis que “accroc” signifie “déchirure”, “incident”, etc.

TEST: ils y sont {{accrocs}} depuis toujours
TEST: elles y sont {{à crocs}} depuis toujours
TEST: au poker, il semble {{accroc}}
TEST: vraiment {{accroc}} à la cocaïne
TEST: pire, {{accroc}} au jeu
TEST: Patricia est {{accroc}} à ce mec
................................................................................
TEST: {{Accroc}} à cette merde depuis toujours.
TEST: Elle a fait un {{accro}} à ses principes.


# acquis / acquit
__conf_tenir_pour_acquit__
    >tenir pour >acquit
        <<- /conf/ -3>> acquis                          && Confusion. On écrit « tenir pour acquis ».

TEST: Je le tenais pour {{acquit}}.
TEST: Par {{acquis}} de conscience.


# affilée / affilé
__conf_d_affilée__
................................................................................

# annales / anal-e-s
__conf_annales_anales__
    >anal [>littéraire|>politique|>ecclésiastique]
    >anal du [baccalauréat|bac|brevet]
    >anal de [>physique|>chimie|>mathématique|>biologie|>géographie|>philosophie]
    >anal d’ [>histoire|>économie]
        <<- /conf/ -1>> annales                         && Confusion : “\1” est l’adjectif relatif à l’anus.|https://fr.wiktionary.org/wiki/annales

    [les|ces|des|mes|tes|ses|nos|vos|leurs|plusieurs] >anal
        <<- /conf/ -2>> annales                         && Confusion : “\2” est l’adjectif relatif à l’anus.|https://fr.wiktionary.org/wiki/annales

TEST: {{anales}} du bac
TEST: des {{anales}} littéraires
TEST: il a bachoté les {{anales}}.


# air / aire / ère
................................................................................

TEST: ils sont sacrifiés sur l’{{hôtel}} de la rentabilité


# avion / avions
__conf_avions_avion__
    nous avion
        <<- /conf/ -2>> avions                              && Confusion probable : l’avion est un appareil volant.

TEST: Je pense que nous {{avion}} tort.


# bailler / bâiller / bayer
__conf_bailler_bâiller_bayer__
    [>bailler|>bâiller] aux corneilles
................................................................................
TEST: le quark {{botter}}


# bel et bien
__conf_bel_belle__
    belle et bien
        <<- /conf/ (morph(>1, ":[AQR]") or morph(<1, ":V", ">être")) and not value(>1, "|que|qu’|sûr|")
        -1>> bel                                                        && Confusion probable. « Bel et bien » est équivalent à « vraiment ».

TEST: ils vont {{belle}} et bien par monts et par vaux.

    l’ >échapper [bel+s|belles]
    l’ >avoir >échapper [bel+s|belles]
        <<- /conf/ --1>> belle                                          && Confusion. Locution “l’échapper belle”.|https://fr.wiktionary.org/wiki/l%E2%80%99avoir_%C3%A9chapp%C3%A9_belle

................................................................................
TEST: une raclée {{en bonnes et dues formes}}
TEST: remplir son formulaire en bonne et due forme, c’est le minimum pour espérer un retour positif.


# en butte à / but / bute
__conf_en_butte_à_au__
    en [>but|>bute]  [à|au|aux]
        <<- /conf/ -2>> butte                                           && Confusion. Écrivez « en butte \3 ».

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


# cane / canne (from LanguageTool)
__conf_canne_cane__
    >cane [à|a] [sucre|pêche|selfie]
................................................................................
    [c’|s’|c|s] [en|>an]  [fus|fut|fût|fue+s]                                                              [fini+ses|finit|finît|fait+s|fais|>fée|fé|>terminer]
    [c’|s’|c|s] [en|>an]  [sera+s|serra+s|serai+s|serait|serez|seraient|serrais|serrait|serrez|serraient]  [fini+ses|finit|finît|fait+s|fais|>fée|fé|>terminer]
        <<- /conf/ morph(<1, "<start>|>[,(]") and not (value(\1, "|c’|") and value(\2, "|en|"))
        -1:2>> c’en                                                                                 && Locution “c’en est fini/fait/assez/trop…”.

    s’ en [es|est|sera|seras|étais|était|serai|serais|serait|fut|fût] @:A¬:[GVW]
        <<- /conf/ morph(<1, ":C|<start>|>[,(]")
        -1:2>> c’en                                         && Confusion probable : “\2” est un adjectif. « C’en est… » équivaut à « ça, c’est… ».|https://fr.wiktionary.org/wiki/c%E2%80%99en_est_fait_de

    s’ en [es|est|sera|seras|étais|était|serai|serais|serait|fut|fût] [assez|trop] [<end>|,|de|d’|du|des]
        <<- /conf/ -1:2>> c’en                              && Confusion probable. « C’en est… » équivaut à « ça, c’est… ».|https://fr.wiktionary.org/wiki/c%E2%80%99en_est_fait_de

TEST: tout ça, {{s’en}} est fini.
TEST: {{s’en}} est assez de ces foutaises.
TEST: c’est tellement idiot, {{s’en}} est dérisoire…
TEST: {{s’en}} est terminé d’elles
TEST: {{s’en}} était fini d’eux
TEST: {{sang}} fut fini de nous
................................................................................

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

................................................................................
    [>coûter|>couter|>louer|>payer|>prendre|>valoir|>vendre] [chers|chère|chères]
        <<- /conf/ -2>> cher                                        && Ici, “cher” est un adverbe, invariable.|https://fr.wiktionary.org/wiki/cher

    [>coûter|>couter|>louer|>payer|>prendre|>valoir|>vendre] [>chair|>chaire]
        <<- /conf/ -2>> cher                                        && Confusion. Pour parler de la cherté, écrivez “cher”.|https://fr.wiktionary.org/wiki/cher

    >faire  >bon  [cher+s|chères|>chair|>chaire]
        <<- /conf/ -2:3>> bonne chère                               && Confusion. « Faire bonne chère » signifie bien manger, ripailler.|https://fr.wiktionary.org/wiki/faire_bonne_ch%C3%A8re

    [>couper|>déchiqueter|>taillader|>trancher] [la|cette|ma|ta|sa|notre|votre|leur] [chère|chaire]
        <<- /conf/ --1>> chair                                      && Confusion. La matière vivante et molle s’écrit “chair”.|https://fr.wiktionary.org/wiki/chair

    [>couper|>déchiqueter|>taillader|>trancher] [les|ces|mes|tes|ses|nos|vos|leurs] [chers|chères|chaires]
        <<- /conf/ --1>> chairs                                     && Confusion. La matière vivante et molle s’écrit “chair”.|https://fr.wiktionary.org/wiki/chair

................................................................................
TEST: taillader les {{chaires}}                             ->> chairs
TEST: couper cette {{chère}}                                ->> chair


# chant / champ
__conf_Chandeleur__
    la [>chant|chan|>champ] de l’ [heur|heure|eurent]
        <<- /conf/ -2:0>> Chandeleur                    && Confusion : la Chandeleur est une fête.|http://fr.wikipedia.org/wiki/Chandeleur

TEST: C’est {{la}} {{champ de l’heur}}.


__conf_champ_chant__
    [chan|>chant] de [>blé|>betterave|>fleur|>force|>lavande|maïs|mais|>tournesol|>tulipe|>vision]
        <<- /conf/ -1>> =\1.replace("nt", "mp").replace("NT", "MP")     && Confusion probable. Un chant est ce qui se chante.|https://fr.wiktionary.org/wiki/champ
................................................................................
TEST: je leur laisse le {{chant}} libre
TEST: donnons-leur le {{chant}} libre et cessons de nous inquieter


# colon / côlon
__conf_côlon_colon__
    cancer du colon
        <<- /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é [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]        $:Y
................................................................................
    >être >sensé ?[ne|n’]¿ [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]    $:Y
    >être >sensé ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y]           $:Y
    >être >sensé ?[ne|n’]¿ [le|la|l’|les]                [lui|leur|en|y]               $:Y
    >être >sensé ?[ne|n’]¿ [lui|leur]                    en                            $:Y
    >être >sensé $:Y
    >être >sensé 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: Un être sensé ne ferait jamais ça.

    >censé  <end>
................................................................................
TEST: elle tremblait de tout son {{cor}}
TEST: donnons {{cor}} à notre ambition


# côté / coté
__conf_côté_coté__
    [au|autre|bon|le|ce|du|mon|ton|son|notre|votre|chaque|un|leur|quel|quelle] [coté|cotés|cotée|cotées]
        <<- /conf/ --1>> côté                               && Confusion : “coté” est le participe passé du verbe “coter”.|https://fr.wiktionary.org/wiki/c%C3%B4t%C3%A9

    [aux|autres|bons|les|ces|son|mes|tes|ses|nos|vos|leurs|quels|quelles|quelques|plusieurs] [coté|cotés|cotée|cotées]
        <<- /conf/ --1>> côtés                              && Confusion : “coté” est le participe passé du verbe “coter”.|https://fr.wiktionary.org/wiki/c%C3%B4t%C3%A9

    [à|mauvais|de] [coté|cotés|cotée|cotées]
        <<- /conf/ --1>> côté|côtés                         && Confusion : “coté” est le participe passé du verbe “coter”.|https://fr.wiktionary.org/wiki/c%C3%B4t%C3%A9

TEST: à son {{coté}}                        ->> côté
TEST: Je reste à ses {{cotés}}.             ->> côtés
TEST: de mauvais {{cotés}}                  ->> côté|côtés


# cote / côte / cotte
__conf_côte_cote_cotte__
    [>cote|>cotte] [de|d’] [>bœuf|>porc|>veau|Bretagne|>agneau|>albâtre|>Armor|>azur|>ivoire|>or|>opale|>émeraude]
    [>cote|>cotte] [>surnuméraire|>rocheux|>adriatique|>américain|>californien|>atlantique|>basque|>breton|>landais|>normand|>français|>belge|>espagnol|>italien|>portugais|>africain|>méditerranéen|>pacifique|>raide|>occidental|>fractal|nord|sud|ouest]
        <<- /conf/ -1>> =\1.replace("o", "ô").replace("tt", "t")                    && Confusion : écrivez “côtes” pour les os du thorax et les rivages.|https://fr.wiktionary.org/wiki/c%C3%B4te

    [>cote|>cotte] [>briser|>casser|>fêler|>fracturer]
        <<- /conf/ morph(\2, ":Q") -1>> =\1.replace("o", "ô").replace("tt", "t")    && Confusion : écrivez “côtes” pour les os du thorax et les rivages.|https://fr.wiktionary.org/wiki/c%C3%B4te

    [>fracture|>radiographie] des [>cote|>cotte]
        <<- /conf/ -3>> côtes                                       && Confusion : écrivez “côtes” pour les os du thorax.|https://fr.wiktionary.org/wiki/c%C3%B4te

    [>côte|>cotte] [>mobilier|>foncier]
    [>côte|>cotte] [de|d’] [niveau|popularité|confiance|alerte|altitude|amour]
        <<- /conf/ -1>> =\1.replace("ô", "o").replace("tt", "t")    && Confusion : utilisez « cote » pour chiffrer (cotation).|https://fr.wiktionary.org/wiki/cote

    [>cote|>côte] de >maille
        <<- /conf/ -1>> =\1.replace("ô", "o").replace("t", "tt")    && Confusion : écrivez « cotte » pour la cotte de mailles.|https://fr.wiktionary.org/wiki/cotte_de_mailles

    >avoir la côte
    >avoir la cotte [@:[RCO]|,|<end>]
        <<- /conf/ -3>> cote                                        && Confusion probable : utilisez “cote” (cotation).|https://fr.wiktionary.org/wiki/cote

    [>escalader|>monter|>gravir] [la|cette|une] [cote|cotte]
        <<- /conf/ --1>> côte
        && Confusion probable : pour parler de la pente d’une montagne, d’une colline ou, allégoriquement, d’une difficulté à passer, écrivez “côte”.|https://fr.wiktionary.org/wiki/c%C3%B4te

    >longer [la|cette|une] [cote|cotte]
        <<- /conf/ --1>> côte
................................................................................
TEST: L’échec est {{du}} en partie à un manque de préparation.


# éminent / imminent
__conf_éminent_imminent__
    >imminent [>acteur|>confrère|>collègue|>dirigeant|>dissident|>entrepreneur|>expert|>défenseur|>intellectuel|>mathématicien|>musicien|>pédiatre|>personnalité|>personnage|>professeur|>physicien|>rabbin|>représentant|>savant|>chirurgien|>neurochirurgien|>scientifique|>service|>spécialiste|~logues?$|~istes?$]
        <<- /conf/ -1>> =\1.replace("imm", "ém").replace("Imm", "Ém")
        && Confusion probable. Si “\1” se rapporte à “\2”, alors vous voulez probablement dire “éminent” ; “imminent” signifie “qui va survenir prochainement”.|https://fr.wiktionary.org/wiki/%C3%A9minent

    [>acteur|>confrère|>collègue|>dirigeant|>dissident|>entrepreneur|>expert|>défenseur|>intellectuel|>mathématicien|>musicien|>pédiatre|>personnalité|>personnage|>professeur|>physicien|>rabbin|>représentant|>savant|>chirurgien|>neurochirurgien|>scientifique|>service|>spécialiste|~logues?$|~istes?$] >imminent
        <<- /conf/ morph(<1, ":D") -2>> =\2.replace("imm", "ém").replace("Imm", "Ém")
        && Confusion probable. Si “\2” se rapporte à “\1”, alors vous voulez probablement dire “éminent” ; “imminent” signifie “qui va survenir prochainement”.|https://fr.wiktionary.org/wiki/%C3%A9minent

    [>accouchement|>accord|>arrivée|>assaut|>attaque|>atterrissage|>cataclysme|>catastrophe|>changement|>conflit|>crash|>danger|>décollage|>départ|>désarmement|>déclenchement|>effondrement|>éruption|>fin|>guerre|>lancement|>orage|>ouragan|>péril|>remaniement|>réponse|>résultat|>retour|>séisme|>tempête|>tsunami|>verdict] ?>être¿ >éminent
        <<- /conf/ --1>> =\-1.replace("émi", "immi").replace("Émi", "Immi")
        && Confusion probable. Si “\-1” se rapporte à “\1”, alors vous voulez probablement dire “imminent” ; “éminent” signifie “notable”.|https://fr.wiktionary.org/wiki/%C3%A9minent

TEST: mon {{imminent}} collègue.
TEST: Les scientifiques les plus {{imminents}}.
TEST: l’accouchement est {{éminent}}.
TEST: Mon {{imminent}} collègue.
TEST: Un paléontologue {{imminent}}.
TEST: L’arrivée est imminente.
................................................................................
TEST: le petit entretien le paralysait


# envi / envie
__conf_envie_envi__
    à l’ envie
        <<- /conf/ not morph(<1, ">(?:abandonner|céder|résister)/") and not value(>1, "|de|d’|")
        -3>> envi                                           && Locution adverbiale « à l’envi », signifiant « autant que possible ».

    [>avoir|>donner] [envi+s|envies]
        <<- /conf/ -2>> envie                               && Confusion : Avoir envie, donner envie.

TEST: Ils s’amusèrent à l’{{envie}} et oublièrent tous leurs soucis.
TEST: ça donne {{envi}}
TEST: Je résiste à l’envie de manger du chocolat.
................................................................................
TEST: On ne s’intéresse pas à l’école ni à l’âge, mais aux compétences et à l’envie de partager.


# et / est
__conf_est_et__
    <start>  [le|la|l’|ce|cet|cette|mon|ma|ta|sa|notre|votre|leur|quel|quelle]  *WORD  ?[lui|leur|nous|vous]¿  et  *WORD  <end>
        <<- /conf/ morph(\3, ":[NA].*:[is]", ":G") and morph(\-2, ":[QA]", ":M") and \-2.islower()
        --3>> est                               && Confusion probable : “et” est une conjonction de coordination. Pour le verbe être à la 3ᵉ personne du singulier, écrivez “est”.

    <start>  [son|ton]  *WORD  ?[lui|leur|nous|vous]¿  et  *WORD  <end>
        <<- /conf/ morph(\3, ":N.*:[is]", ":[GA]") and morph(\-2, ":[QA]", ":M") and \-2.islower()
        --3>> est                               && Confusion probable : “et” est une conjonction de coordination. Pour le verbe être à la 3ᵉ personne du singulier, écrivez “est”.

    <start>  *WORD  ?[lui|leur|nous|vous]¿  et  *WORD  <end>
        <<- /conf/ morph(\2, ":M", ":[GA]") and morph(\-2, ":[QA]", ":M") and \-2.islower()
        --3>> est                               && Confusion probable : “et” est une conjonction de coordination. Pour le verbe être à la 3ᵉ personne du singulier, écrivez “est”.

TEST: ce chien {{et}} malade.
TEST: ton chat {{et}} cinglé.
TEST: Pauline {{et}} fatiguée.
TEST: ton implacable et amère !
TEST: son cristallin et aigu
TEST: Les pays ibériques et scandinaves ont signé le traité.
................................................................................
TEST: Béatrice Dalle et Claude.
TEST: Martial et inflexible.
TEST: il attend dans la pièce où entre Patrick et Paul l’agrippe aussitôt pour l’avertir du danger.


__conf_où_est__
    où  et  @:D¬:R|>(?:quell?e?s?|de)/
        <<- /conf/-2>> est                      && Confusion probable : “et” est une conjonction de coordination. Pour le verbe être à la 3ᵉ personne du singulier, écrivez “est”.

TEST: où {{et}} cet ennemi ?
TEST: où {{et}} l’homme qui est passé ce matin ?
TEST: Je veux savoir où et quand, où et pouquoi.
TEST: où et avec qui ?
TEST: je veux savoir où et lequel je dois flinguer

................................................................................
TEST: elle a perdu {{foie}} en Dieu.


# fond / fonds / fonts
__conf_fond_fonds_fonts__
    [>collecte|>bailleur|>levé|>extorsion|>détournement] de [fond|fonts]
    >collecter des fonts
        <<- /conf/ -3>> fonds                   && Confusion : fonds (ce qui constitue une richesse) ≠ fond (partie la plus basse/profonde).

    à [fond|fonts] [perdu+ses]
        <<- /conf/ ->> à fonds perdus           && Confusion : fonds (ce qui constitue une richesse) ≠ fond (partie la plus basse/profonde).

    [fond|fonts] [>monétaire|spéculatif+s|>international|souverain+s]
    [fond|fonts] [de|d’] [commerce|garantie|roulement|pension|placement|retraite|roulement|solidarité]
    [fond|fonts] d’ [aide|investissement|indemnisation]
        <<- /conf/ -1>> fonds                   && Confusion : fonds (ce qui constitue une richesse) ≠ fond (partie la plus basse/profonde).

    fonds baptismaux
        <<- /conf/ -1>> fonts                   && Confusion. Écrivez “fonts”, qui vient du latin “fons” et signifie « fontaine, source ».

    [un|le|du|ce] [fonds|fonts] [de|d’] ?[la|l’]¿ [assiette|bouteille|cuve|casserolle|marmite|poêle]
    [un|le|du|ce] [fonds|fonts] du [seau|tupperware|wok]
        <<- /conf/ -2>> fond                    && Confusion : fonds (ce qui constitue une richesse) ≠ fond (partie la plus basse/profonde).

TEST: faire une levée de {{fond}}.
TEST: jouer {{à fond perdu}}
TEST: elle a vendu son {{fond}} de commerce
TEST: il a reçu de l’argent d’un {{fond}} d’investissement
TEST: les {{fonds}} baptismaux.
TEST: le {{fonds}} de la cuve


# glaciaire / glacière
__conf_glacière_glaciaire__
    >glaciaire
        <<- /conf/ morph(<1, ":D.*:(?:f|e:p)")
        ->> =\1.replace("iai", "iè")                && Confusion : “glaciaire” est un adjectif. Le contenant préservant le froid s’écrit “glacière”.

    [>accumulation|>âge|>age|>aire|>alluvion|amas|>amphithéâtre|>auge|>calotte|>cirque|>cycle|>dépôt|>dynamique|>écoulement|>ère|>érosion|>faune|>formation|>géologie|>grotte|>lac|>moraine|>obturation|>origine|>période|>rando|>randonnée|>relief|>retrait|>régression|>sédimentation|>séisme|>spéléo|>spéléologie|>strie|temps|>vallée|>verrou] >glacière
        <<- /conf/ -2>> =\1.replace("iè", "iai")    && Confusion : une glacière est un contenant préservant le froid. L’adjectif s’écrit “glaciaire”.

TEST: Autrefois, il y eut plusieurs ères {{glacières}}.
TEST: dans la {{glaciaire}}
TEST: Passe-moi la glacière, s’il te plaît.


# gène / gêne
................................................................................
    [ces|des|mes|tes|ses|nos|vos|leurs] gênes
        <<- /conf/ -2>> gènes                       && Confusion probable. La gêne est un embarras. Pour parles des éléments des chromosomes, écrivez “gènes”.

TEST: Quel {{sans gène}}, celui-là !
TEST: Il croit que ses {{gênes}} décident de sa santé…


# gent [nf] / gent(e)(s) [adj]
__conf_gent__
    la gente [féminine|masculine]
        <<- /conf/ -2>> gent                        && Confusion. « Gente » est un adjectif vieilli. Utiliser « gent » pour désigner un groupe de personnes.

TEST: la {{gente}} masculine est grossière et l’a toujours été.


# golf / golfe
__conf_golf_golfe2__
    >jouer      au golfe
................................................................................
TEST: Jouer au golf.


# goutte / goûte
__conf_goûte_goutte__
    [goûte|goûtes|goute|goutes] [de|d’] [alcool|acide|amour|bière|eau|folie|huile|javel|lait|liquide|mercure|miel|peinture|pluie|rhum|rosée|salive|sang|semence|sperme|sueur|urine|vin|vinaigre|whisky]
        <<- /conf/ -1>> =\1.replace("û", "u").replace("t", "tt").replace("Û", "U").replace("T", "TT")
        && Confusion : “goûter” signifie utiliser le sens du goût. Pour une petite quantité de liquide, écrivez “goutte”.|https://fr.wiktionary.org/wiki/goutte

    >passer entre les [goûte+s|goute+s]
        <<- /conf/ --1>> gouttes                    && Confusion. Une particule de fluide s’écrit “goutte”.|https://fr.wiktionary.org/wiki/goutte

    [à|a] [grosse+s] [goute+s|goûte+s]
        <<- /conf/ ->> à grosses gouttes            && Confusion. Locution adverbiale “à grosses gouttes”.

................................................................................
TEST: il suait {{à grosse goute}}                               ->> à grosses gouttes
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élicieux|>dessert|>fameux|>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|>succulent|>thé|>viande|>vin|>yaourt|>yoghourt]
        <<- /conf/ not value(\-2, "|de|") -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|>moteur|>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

    [me|te|se]                                      >dégoutter
    [m’|t’|l’|nous|vous|les]                        >avoir  >dégoutter
    [je|tu|il|elle|on|nous|vous|ils|elles|iel|iels] >être   >dégoutter
        <<- /conf/ --1>> =\-1.replace("outt", "oût").replace("OUTT", "OÛT")
        && Confusion probable : “dégoutter” signifie “couler goutte à goutte”. Pour évoquer le dégoût, écrivez “dégoûter”.|https://fr.wiktionary.org/wiki/dégo%C3%BBter

    nous                                            >dégoutter
        <<- /conf/ not morph(\-1, ":1p") --1>> =\-1.replace("outt", "oût").replace("OUTT", "OÛT")
        && Confusion probable : “dégoutter” signifie “couler goutte à goutte”. Pour évoquer le dégoût, écrivez “dégoûter”.|https://fr.wiktionary.org/wiki/dégo%C3%BBter

    vous                                            >dégoutter
        <<- /conf/ not morph(\-1, ":2p") --1>> =\-1.replace("outt", "oût").replace("OUTT", "OÛT")
        && Confusion probable : “dégoutter” signifie “couler goutte à goutte”. Pour évoquer le dégoût, écrivez “dégoûter”.|https://fr.wiktionary.org/wiki/dégo%C3%BBter

TEST: {{Goutte}} ces sandwichs.
TEST: le robinet {{goûte}}
TEST: Le toit ne {{goûte}} plus.
TEST: Ça me {{dégoutte}}.
TEST: Il m’a {{dégoutté}} des maths.
TEST: nous {{dégoutte}}, cette mauvaise foi.
................................................................................
TEST: une jeune fille {{lest}}                              ->> leste|lestes
TEST: il faut lâcher du {{leste}}                           ->> lest


# levée / lever
__conf_lever_levée__
    [lever|levers|levé|levés] de >fond
        <<- /conf/ ->> levée de fonds|levées de fonds           && Confusion. Exemple : une levée de fonds, un lever de soleil.

    >levé [de|du] [rideau|soleil]
        <<- /conf/ -1>> lever|levers                            && Confusion. Exemple : une levée de fonds, un lever de soleil.

TEST: {{levée}} de soleil
TEST: Faisons des {{levers de fond}}


# lever un lièvre / soulever
__conf_lever_un_lièvre__
    >soulever [un|le|des|les|quelques|plusieurs] >lièvre
        <<- /conf/ -1>> =\1[3:]                                 && Expression impropre. On écrit « lever un lièvre ».|https://fr.wiktionary.org/wiki/lever_le_li%C3%A8vre

TEST: j’ai {{soulevé}} un lièvre, là !


# lâcher la proie pour l’ombre
__conf_lâcher_la_proie_pour_l_ombre__
    >chasser la proie pour l’ ombre
................................................................................
        <<- /conf/ --1>> lieues                                 && Confusion probable. Pour désigner une distance, écrivez “lieues”.|https://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”.|https://fr.wiktionary.org/wiki/lieue

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

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

    >pêche [aux|des] [lieux|lieues]
    >chair des [lieux|lieues]
        <<- /conf/ -3>> lieu|lieus                              && Confusion. Si vous parlez du poisson, écrivez “lieu(s)”.|https://fr.wiktionary.org/wiki/lieu


TEST: {{À des lieux à la ronde}}                                                            ->> À des lieues à la ronde
TEST: qui est le responsable des {{lieues}} ?
TEST: ce sont des {{lieus}} mythiques.
TEST: Des {{lieus}} historiques.
TEST: {{lieus}} abandonnés
................................................................................
TEST: pas âme qui vive à des lieues à la ronde


# avoir/donner lieu
__conf_avoir_donner_lieu__
    [>avoir|>donner]  lieux
    >avoir ?[eu|eus|eue|eues]¿ lieux
        <<- /conf/ --1>> lieu                                           && Donner lieu, avoir lieu : “lieu” est invariable dans ces locutions verbales.

    [>avoir|>donner]  [>lieue|lieus]
    >avoir ?[eu|eus|eue|eues]¿ [>lieue|lieus]
        <<- /conf/ --1>> lieu                                           && Confusion. La lieue est une unité de distance. Les lieus sont des poissons.

TEST: ces conneries donneront {{lieux}} à une enquête approfondie.
TEST: Tout ce qui a {{lieue}} hors de ce pays est ignoré.
................................................................................
TEST: Elle en est tombée des {{nus}}.


# numérique / digital
__conf_numérique_digital__
    [>agence|>appareil|>banque|>caméra|>communication|>compagnie|>connexion|>économie|>entreprise|>ère|>expérience|>identité|>industrie|>présence|>prise|>service|>solution|>stratégie|>télévision|>transformation|>transition] >digital
        <<- /conf/ -2>> numérique|numériques
        && Confusion : “digital” est un adjectif se rapportant aux doigts (empreinte digitale, arthrose digitale, etc.). Écrivez “numérique”.

    [le|du|au] digital
        <<- /conf/ -2>> numérique
        && Confusion : “digital” est un adjectif se rapportant aux doigts (empreinte digitale, arthrose digitale, etc.). Écrivez “numérique”.

TEST: une économie {{digitale}} ou rien
TEST: Dans l’ère du {{digital}}, tout va plus vite.


# panser / penser
__conf_panser_penser__
................................................................................
TEST: Là, ce sont des pommes de {{pain}}.                           ->> pin
TEST: nous avons du {{pin}} sur la planche                          ->> pain


# pair / paire
__conf_aller_de_pair__
    >aller de [pairs|paire|paires|pers|perd|perds|>père]
        <<- /conf/ -3>> pair                                     && Confusion. On écrit « aller de pair ».

    hors [paire|pairs|paires]
        <<- /conf/ --1>> pair                                    && Confusion. La locution “hors pair” est invariable.|https://fr.wiktionary.org/wiki/hors_pair

    hors de [paire|pairs|paires]
        <<- /conf/ --1>> pair                                    && Confusion. La locution “hors de pair” est invariable.|https://fr.wiktionary.org/wiki/hors_de_pair

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

TEST: C’est parti en {{couille}}


# parti / partie
__conf_prendre_parti_partie__
    >prendre [>partie|partis]
        <<- /conf/ -2>> parti                                   && Confusion. On écrit « prendre parti ».

    >tirer [>partie|partis]
        <<- /conf/ -2>> parti                                   && Confusion. On écrit « tirer parti ».

    >faire [parties|>parti]
        <<- /conf/ -2>> partie                                  && Confusion. On écrit « faire partie ».

    >juge et >parti
        <<- /conf/ ->> juge et partie|juges et parties          && Confusion. On écrit « juge et partie ».

    >prendre a [>partie|>parti]
    >prendre à [parties|>parti]
        <<- /conf/ -2:3>> à partie                              && Confusion. On écrit « prendre à partie ».

    >prendre *WORD a [>partie|>parti]
    >prendre *WORD à [parties|>parti]
        <<- /conf/ -3:4>> à partie                              && Confusion. On écrit « prendre à partie ».

TEST: Elle prend toujours {{partie}} aux réunions.
TEST: Il faut savoir tirer {{partis}} de ces atouts-là.
TEST: Tu fais {{parti}} de l’élite, enfin, façon de parler.
TEST: Nous sommes tous d’une manière ou d’une autre {{juge et parti}}.
TEST: prendre {{a parti}}
TEST: Prendre Damien {{à parti}}.
................................................................................
TEST: elle va montrer {{pâte blanche}} et tout ira bien.


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

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


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

TEST: {{peut}} d’hommes savent comment s’y prendre
TEST: peu d’argent
TEST: il peut de façon crédible avancer qu’il veut tout faire sauter


__conf_det_1subst_peu_peut_vinfi__
................................................................................


# sale / salle
__conf_salle_sale__
    >sale d’ [>accouchement|>arcade|>attente|>audience|>eau|>escalade|>échographie|>embarquement|>exposition|>hospitalisation|>observation|>opération|>urgence]
    >sale [de|des|du] [>bain|>bal|>banquet|>billard|>bloc|>cinéma|>classe|>colle|>commandement|>concert|>conférence|>conseil|>consultation|cours|>culture|>danse|>départ|>fête|>formation|>garde|>gym|>gymnastique|>infirmier|>lecture|>machine|>malade|>mammographie|>marché|>mariage|>musculation|>musique|>ordinateur|>presse|>prière|>prof|>professeur|>projection|>radio|>radiographie|>réanimation|>réception|>rédaction|>rééducation|>restaurant|>réunion|>réveil|>séjour|>shoot|>soin|>spectacle|>sport|>stockage|>théâtre|>tir|>toilette|>torture|>trading|>travail|>vente|fitness|>jeu|>repos|>urgence]
    >sale à manger
        <<- /conf/ -1>> =\1.replace("ale", "alle")                  && Confusion : “sale” signifie “malpropre”. Pour désigner une pièce, écrivez “salle”.|https://fr.wiktionary.org/wiki/salle

    >être  >salle
        <<- /conf/ -2>> =\2.replace("alle", "ale")                  && Confusion. Une salle est une pièce. Pour la malpropreté, écrivez “sale”.|https://fr.wiktionary.org/wiki/sale

TEST: dans la {{sale}} des professeurs
TEST: une {{sale}} d’arcade
TEST: ils sont tellement {{salles}}
................................................................................
TEST: pour le service en salle


# sans / sens
__conf_sang_sans_sens__
    [sans|san] dessus dessous
    sans-dessus-dessous
        <<- /conf/ ->> sens dessus dessous                          && Confusion. Locution adverbiale : « sens dessus dessous ».|https://fr.wiktionary.org/wiki/tache

    [le|du|quel|un] ?[certain|faible|grand]¿ [sans|san] [de|d’] la mesure
        <<- /conf/ --4>> sens                                       && Confusion. Le sens de la mesure.

    [sans|san|sens] [bleu|royal|mêlé]
    [sans|san] humain
    [sans|san] de la victime
................................................................................
TEST: elle a tant de jouets


# tort / tord / tore / torr / tors
__conf_tort_tord_tore__
    en [tord|tords] [<end>|,|)]
    à [tord|tords]
        <<- /conf/ -2>> tort                                            && Confusion : “tord” est une conjugaison du verbe tordre.

    [à|en] >tore
        <<- /conf/ -2>> tort                                            && Confusion : un tore est une forme géométrique annulaire.

    [à|en] [tors|torr]
        <<- /conf/ -2>> tort                                            && Confusion.

    [>avoir|>donner|>redonner|>faire] [tord|tords]
    >être ?[pas|jamais|guère]¿ en [tord|tords]
        <<- /conf/ --1>> tort                                           && Confusion : “tord” est une conjugaison du verbe tordre.

    [>avoir|>donner|>redonner|>faire] >tore
    >être ?[pas|jamais|guère]¿ en >tore
        <<- /conf/ --1>> tort                                           && Confusion : un tore est une forme géométrique annulaire.

    [>avoir|>donner|>redonner|>faire] [tors|torr]
    >être ?[pas|jamais|guère]¿ en [tors|torr]
        <<- /conf/ --1>> tort                                           && Confusion.

TEST: elles seront à {{tord}} accusées.
TEST: en {{tore}}
................................................................................
TEST: avoir le vent en poupe
TEST: aller dans le sens du vent


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

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

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


# ver / vers / verre
__conf_ver_vers_verre_vert2__
    [ver|>verre] [moi|toi|lui|elle|nous|vous|eux|elles|iel|iels]
        <<- /conf/ morph(<1, ">,|<start>|:V", ":D") -1>> vers
        && Confusion probable. Pour dire “en direction de” écrivez “vers”.|https://fr.wiktionary.org/wiki/vers

    [>aller|>arriver|>courir|>foncer|>marcher|>partir|>repartir|>venir|>revenir] ver
        <<- /conf/ --1>> vers
        && Confusion probable. Pour dire “en direction de” écrivez “vers”.|https://fr.wiktionary.org/wiki/vers

    !! >tirer les vers du nez ¡¡
    >tirer les [>verre|verts|vers] du [nez|né]
        <<- /conf/ --3:0>> vers du nez
        && Confusion. Locution “tirer les vers du nez”.|https://fr.wiktionary.org/wiki/tirer_les_vers_du_nez

TEST: On va lui tirer les {{verts du nez}}
................................................................................
TEST: de l’insécurité et de l’instabilité provoquées


## l’

__gn_l_1m__
    ,  l’  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", "*") -3>> =suggSing(\3)                             && Accord de nombre erroné : après « l’ », « \3 » devrait être au singulier.

    *WORD  l’  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", "*")
            or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RCY]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
        -3>> =suggSing(\3)                                                                  && Accord de nombre erroné : après « l’ », « \3 » devrait être au singulier.

    <start>  l’  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", ":[siGW]") -3>> =suggSing(\3)                       && Accord de nombre erroné : après « l’ », « \3 » devrait être au singulier.

TEST: le gouvernement, l’{{états}} tout entier
TEST: toute l’importance de l’{{accords}} musical.
TEST: L’{{arrivées}} était prévue demain.
TEST: ce que laisse penser l’{{entretiens}} que j’avais fait.


................................................................................
__gn_l_2m__
    l’  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ not value(<1, "|et|ou|de|") and not value(\2, "|air|") and not morph(\3, ">seul/") >>>
        <<- /gn/ ( (morph(\2, ":m", "*") and morph(\3, ":f", "*")) or (morph(\2, ":f", "*") and morph(\3, ":m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, False)                                                               && Accord de genre erroné entre “\2” et “\3”.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec “\3”.
        <<- /gn/ morph(\2, ":[si]", "*") and morph(\3, ":p", "*") and not apposition(\2, \3)
        -3>> =suggSing(\3)                                                                          && Accord de nombre erroné avec “\2” : “\3” devrait être au singulier.

    [et|ou|de]  l’  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ not value(\3, "|air|") and not morph(\4, ">seul/") >>>
        <<- /gn/ ( (morph(\3, ":m", "*") and morph(\4, ":f", "*")) or (morph(\3, ":f", "*") and morph(\4, ":m", "*")) ) and not apposition(\3, \4) and not morph(<1, ":[NA]")
        -4>> =switchGender(\4, False)                                                               && Accord de genre erroné entre “\3” et “\4”.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3)                                 && Accord de genre erroné avec “\4”.
        <<- /gn/ morph(\3, ":[si]", "*") and morph(\4, ":p", "*") and not apposition(\3, \4) and not morph(<1, ":[NA]")
        -4>> =suggSing(\4)                                                                          && Accord de nombre erroné avec “\3” : “\4” devrait être au singulier.

TEST: L’{{amande}} {{amer}}
TEST: l’{{amicale}} {{animal}}
TEST: l’amour {{immortels}}
TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou.
TEST: du chien et de l’étonnant {{colliers}} qu’il avait autour du cou.
TEST: elle prendra l’{{avions}} dès que possible


__gn_l_3m__
    l’  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", "*") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[si]", "*") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:m", "*")
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[si]", "*") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:p", "*")
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.

TEST: l’horreur obscure {{répandu}} dans les ténèbres                               ->> répandue
TEST: l’honneur français {{bafouée}}                                                ->> bafoué
TEST: l’ignoble ignorance si {{répandues}}                                          ->> répandue


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

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

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

TEST: c’est une catastrophe, {{le}} {{profits}} a baissé ces deux derniers trimestres
TEST: j’en ai marre, {{le}} {{passée}} est trop dans les esprits
TEST: {{Le}} démoralisation.                                  ->> La
TEST: {{Le}} Guyane française.                                ->> La
TEST: sur {{le}} {{tables}}                                   ->> les|la|||
TEST: avec {{le}} {{pile}}
................................................................................
TEST: Comme avec l’Hyperloop, le bus chinois conçu pour passer au-dessus des voitures


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

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

TEST: le test très {{cons}} qu’on a passé hier.
TEST: c’était le chien {{perdue}} des voisins.
TEST: viens vite ou le pari {{imperdables}} sera moins facile…
TEST: connaître et le grand {{perdante}}
TEST: Le bruit {{perçus}} par les voisins.
TEST: si le premier film est un triomphe, le deuxième est un demi-succès, et le troisième une déception.
................................................................................
TEST: Cela aboutira sur une contractualisation coûteuse pour organiser cette divergence d’intérêts, et le gestionnaire aura le dernier mot.


__gn_le_3m__
    le  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D")
            and morph(\2, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P)") and morph(\4, ":[NA].*:[fp]", "*") and \4.islower()
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.

TEST: le roi chrétien {{tyranniques}} tout pétri de son prétendu droit divin                    ->> tyrannique
TEST: le petit chien {{bruns}}                                                                  ->> brun
TEST: elles furent le jour venu prises par surprise, et elles durent s’enfuir.
TEST: qu’ils fassent tourner le système économique, assez concrètement, mais sans faire chier avec leurs petits problèmes de gens de rien.
TEST: avec le peuple, contre le capitalisme mortifère sous tous ses visages.


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

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

    <start>  la  *WORD
        <<- /gn/ morph(\3, ":[NA].*:m", ":[efPGWMY]") -2>> le                               && Accord de genre erroné : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True)                    && Accord de genre erroné : « \2 » est un déterminant féminin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p", ":[siGW]") -3>> =suggFemSing(\3)       && Accord de nombre erroné : « \3 » devrait être au singulier.

TEST: c’est ennuyeux, la {{parties}} deux est ratée.
TEST: j’en sais rien, {{la}} {{parti}} est foutu
TEST: {{La}} Cameroun                                         ->> Le
TEST: {{La}} mustang est un cheval sauvage.                   ->> Le
TEST: {{La}} tableau.                                         ->> Le
TEST: dans la {{parties}}                                     ->> partie
................................................................................
TEST: il pense à la fois où nous avons eu cet accident idiot.


__gn_la_2m__
    la  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                         && Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggFemSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  la  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                         && Accord de genre erroné : « \2 \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: La plus grande {{cinglé}}.
TEST: il imaginait de la pluie {{noir}} tombant sur une terre dévastée.
TEST: je voyais de la pluie {{noires}}
TEST: Il faut donc examiner ensemble le panneau et la paroi latérale.
TEST: Il faut donc examiner ensemble le panneau et la paroi latéraux.
TEST: Il faut donc examiner ensemble les panneaux et la paroi latéraux.
................................................................................
TEST: Il faut donc examiner ensemble les panneaux et la paroi latérale.


__gn_la_3m__
    la  *WORD  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|") and morph(\1, ":D")
            and morph(\2, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P)|;C") and morph(\4, ":[NA].*:[mp]", "*") and \4.islower()
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.

TEST: la seule solution {{trouvé}} consistait à déléguer                                        ->> trouvée
TEST: La petite fille {{devenues}} infirmière.                                                  ->> devenue
TEST: sous la forme d’un baromètre comparant différents moyens pour alléger ses émissions
TEST: non seulement met en péril la logique industrielle mais contribue à détruire peu à peu le substrat sur lequel repose le marché lui-même, à savoir la société des hommes.


__gn_leur_1m__
    ,  leur  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", "*") -2>> leurs                                     && Accord de nombre erroné avec « \3 ».
        <<- /gn/ __also__ -3>> =suggSing(\3)                                                && Accord de nombre erroné : « \3 » devrait être au singulier.

    *WORD  leur  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", "*")
            or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RCY]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
        -2>> leurs                                                                          && Accord de nombre erroné avec « \3 ».
        <<- /gn/ __also__ -3>> =suggSing(\3)                                                && Accord de nombre erroné : « \3 » devrait être au singulier.

    <start>  leur  *WORD
        <<- /gn/ morph(\3, ":[NA].*:p", ":[siGW]") -2>> leurs                               && Accord de nombre erroné avec « \3 ».
        <<- /gn/ __also__ -3>> =suggSing(\3)                                                && Accord de nombre erroné : « \3 » devrait être au singulier.

TEST: Tu sais, {{leur}} {{impatiences}} est notoire.
TEST: J’en ai assez de {{leur}} {{délires}}
TEST: {{Leur}} {{perceptions}} des choses m’exaspère.
TEST: dans {{leur}} {{usines}}


__gn_leur_2m__
    leur  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, False)                                                       && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, False)                  && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":(?:G|V0)") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggSing(\3)                                                                  && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.
        <<- /gn/ __also__ and morph(\2, ":[NA].*:i") -1>> leurs                             && Accord de nombre erroné avec « \2 \3 ».

    [et|ou|de|d’]  leur  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, False)                                                       && Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False)                  && Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":(?:G|V0)") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        <<- /gn/ __also__ and morph(\3, ":[NA].*:i") -2>> leurs                             && Accord de nombre erroné avec « \3 \4 ».

TEST: leur puissance {{perdues}}
TEST: leur arbre {{élaguée}}
TEST: leur {{petit}} {{grosse}}
TEST: elle se souvenait de leur {{grande}} {{sot}}
TEST: je me souviens de leur verve {{décalé}}
TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous.
................................................................................
TEST: 3 milliards d’euros que depuis 2012 l’État leur a volés


__gn_leur_3m__
    leur  *WORD  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", "*") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[si]", "*") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:m", "*")
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[si]", "*") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:p", "*")
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.

TEST: leur grande passion {{délirants}} pour le cosplay.                            ->> délirante
TEST: leur noir projet {{ignorées}} du peuple                                       ->> ignoré
TEST: leur psychologue altruiste {{détestés}} par ses voisins                       ->> détesté


__gn_ledit_1m__
    ledit  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> ladite                              && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: {{ledit}} femme ne sut comment nous éclairer
TEST: {{ledit}} {{boulangère}} nous enseigna sa méthode
TEST: ledit {{accords}} ne vaut rien.


__gn_ladite_1m__
    ladite  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> ledit                               && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: {{ladite}} vélo était en panne
TEST: {{ladite}} {{professeur}} était intarissable
TEST: ladite {{passions}} l’avait conduit à sa perte.


__gn_aucun_1m__
    aucun  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> aucune                              && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: {{aucun}} femme ne réagirait si bêtement
TEST: {{aucun}} {{animale}}
TEST: aucun {{accords}} n’y changera rien.


__gn_aucune_1m__
    aucune  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> aucun                               && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: {{aucune}} homme ne comprendrait ça
TEST: {{aucune}} {{conseiller}} ne vint nous aider
TEST: aucune {{passions}} n’est digne qu’on meurt pour elle.


__gn_nul_1m__
    nul  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> nulle                               && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: nul {{accords}} n’y changera rien.
TEST: {{nul}} femme ne réagirait si bêtement
TEST: {{nul}} {{ratée}} ne survint


__gn_nulle_1m__
    nulle  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> nul                                 && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: nulle {{passions}} n’est digne qu’on meurt pour elle.
TEST: {{nulle}} homme ne comprendrait ça
TEST: {{nulle}} {{damné}} à sauver


__gn_un_1m__
    un  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":(?:e|m|G|W|V0|3s|Y)") -1>> une                    && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

__gn_un_des_1m__
    un  des  *WORD
        <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|G|W|V0|3s)") -1>> une                      && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasPlur(\3, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.

__gn_une_1m__
    une  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":(?:e|f|G|W|V0|3s|P)") and not ( \2 == "demi" and morph(>1, ":N.*:f", "*") )
        -1>> un                                                                             && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

__gn_une_des_1m__
    une  des  *WORD
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|G|W|V0|3s)") -1>> un                       && Accord de genre erroné : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.

TEST: {{Un}} {{amie}}
TEST: {{un}} des {{chattes}}
TEST: {{une}} des {{chats}}
TEST: Trente et un hommes sur le pont.
TEST: Ces enfants n’ont jamais vu quelqu’un lire.
TEST: un {{slashs}}                                           ->> slash
................................................................................


## un / une
__gn_un_2m__
    un  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                                 && Accord de genre erroné : « \1 \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                                       && Accord de nombre erroné avec « \2 » : « \3 » devrait être au singulier.

    [et|ou|d’]  un  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                                 && Accord de genre erroné : « \2 \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: un exercice pas très {{utiles}}.                        ->> utile
TEST: un homme {{grands}}                                     ->> grand
TEST: un homme {{futiles}}                                    ->> futile
TEST: que sais-tu d’un homme {{grande}} comme un arbre
TEST: je me souviens d’un homme {{arrogants}}
TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}.


__gn_une_2m__
    une  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                                 && Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin.
        <<- /gn/ \2 != "fois" and morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3)                                                                       && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|d’]  une  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                                 && Accord de genre erroné : « \2 \3 » est féminin, « \4 » est masculin.
        <<- /gn/ \3 != "fois" and morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: Une femme {{laconiques}}.                               ->> laconique
TEST: Une grande {{homme}}.
TEST: une géologue {{intelligents}}
TEST: Et une femme {{déterminées}}
TEST: on parle là d’une femme {{inconnu}}
TEST: on parle d’une Église {{brûlées}}
TEST: L’or allume le feu d’une cupidité d’une couleur et d’une sorte différentes.


__gn_du_1m__
    du  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de la                               && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

__gn_dudit_1m__
    dudit  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de ladite                           && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: cette bouffe, c’est du {{chiens}}
TEST: cette bouffe, c’est {{du}} {{chienne}}
TEST: les consignes dudit {{présidents}} étaient contratritoires.
TEST: les consignes {{dudit}} {{présidente}} étaient contratritoires.


__gn_ce_1m__
    ce  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":(?:3s|[GWme])") -1>> cette                        && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") and morph(\2, ":3s") -1>> cette|se       && Accord de genre erroné : « \2 » est féminin. Ou bien vous confondez le déterminant “ce” avec le pronom “se”.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: {{Ce}} animal.                                          ->> Cet
TEST: {{ce}} {{folle}} espoir qui ne la quitte pas
TEST: ce {{claviers}}
TEST: {{ce}} donne


__gn_cet_1m__
    cet  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> cette                               && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ">[bcçdfgjklmnpqrstvwxz].+:[NA].*:m", ":[efGW]") -1>> ce         && Accord de genre correct, mais euphonie non respectée.|http://fr.wikipedia.org/wiki/Euphonie
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: {{Cet}} {{idiote}}.
TEST: {{cet}} ballon.                                         ->> ce
TEST: cet {{oliviers}}


__gn_cette_1m__
    cette  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =suggCeOrCet(\2)                    && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: {{Cette}} {{animal}} mort.
TEST: cette {{illusions}} que nous voyons plus clair que quiconque


__gn_au_1m__
    au  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f:s", ":[GWme]") -1>> à la                              && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.
        <<- /gn/ __also__ -1>> aux                                                          && Accord de nombre erroné : « \2 » est au pluriel.

TEST: {{au}} {{États-Unis}}
TEST: Téléphone {{au}} personne qui ont donné leur accord.
TEST: téléphone {{au}} {{boulangère}}
TEST: au chien, au chat, au poulet
TEST: à partir de pièces détachées, au départ entièrement venues de l’étranger puis en partie fabriquées sur place


__gn_det_mas_sing_2m__
    [ce|cet|quel|au|ledit|dudit|audit|aucun|nul]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                         && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  [ce|cet|quel|au|ledit|dudit|audit|aucun|nul]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                         && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: cet outil {{terribles}} qu’il a dans les mains
TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle.
TEST: au petit {{publique}}
TEST: Ils jugeront en toute impartialité de ce cas {{délirante}}.


__gn_det_mas_sing_3m__
    [ledit|un|ce|cet|au|quel|audit|dudit|aucun|nul]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and morph(\2, ":[NA].*:[me]:[si]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:[pf]", "*") and \4.islower()
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.

TEST: ledit martyr oublié {{réhabilitée}}                       ->> réhabilité
TEST: un gros connard {{pathétiques}}                                           ->> pathétique
TEST: servi pas un style et une exigence historique remarquables
TEST: ils eurent besoins d’au minimum cent ans pour s’en remettre


__gn_mon_ton_son_1m__
    [mon|ton|son]  *WORD
        <<- /gn/ morph(\1, ":D") >>>
        <<- /gn/ morph(\2, ">[bcçdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.replace("on", "a").replace("ON", "A")     && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

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


__gn_mon_ton_son_2m__
    [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\3, ":[NAQ].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                         && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ">[aâeéèêiîoôuûyœæ].*:[NAQ].*:f", ":(?:B|G|e|V0|m)") and morph(\3, ":[NAQ].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                         && Accord de genre erroné : « \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NAQ].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggMasSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\4, ":[NAQ].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasSing(\4, True)                                                         && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\4, ":[NAQ].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                         && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NAQ].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

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


__gn_det_mon_ton_son_3m__
    [mon|ton|son]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ">[bcçdfgjklmnpqrstvwxz].*:[NA].*:[me]:[si]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:[pf]", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
        <<- /gn/ re.search("^[aâeéèêiîoôuûyœæ]", \2) >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":[fe]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:[pf]", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[si]", ":[me]") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)") and morph(\4, ":[NAQ].*:[pm]", "*")
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[si]") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:p", "*")
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.

TEST: mon petit ami {{décédée}}                                                 ->> décédé
TEST: mon ami proche {{décédée}}                                                ->> décédé
TEST: mon amie proche {{décédé}}                                                ->> décédée
TEST: son addictologue ridicule {{financés}} par l’État                         ->> financé


__gn_ma_ta_sa_1m__
    [ma|ta|sa]  *WORD
        <<- not (tag(\1, "_CAP_") and morph(\1, ":N")) >>>
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =\1[:-1]+"on"                       && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and not re.search("(?i)^[aâeéèêiîoôuûyœæ]", \2) and hasFemForm(\2)
        -2>> =suggFemSing(\2, True)                                                         && Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2)                    && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: {{ma}} {{parti}}
TEST: {{ma}} amour                                            ->> mon
TEST: ma {{carlingues}}
TEST: Après cet épisode, la SA a joué un rôle marginal dans l’histoire du Troisième Reich


__gn_det_fem_sing_2m__
    [ma|ta|sa|cette|quelle|ladite|aucune|nulle]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NAQ].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NAQ].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemSing(\3, True)                                                         && Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NAQ].*:[si]", ":G") and morph(\3, ":[NAQ].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggFemSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  [ma|ta|sa|cette|quelle|ladite|aucune|nulle]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NAQ]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NAQ].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NAQ].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemSing(\4, True)                                                         && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NAQ].*:[si]", ":G") and morph(\4, ":[NAQ].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

TEST: quelle belle {{étourdi}}, cette gamine
TEST: j’en ai assez de cette ville {{stressées}} en permanence.
TEST: Peut-on imaginer de plus {{beaux}} {{enfant}} ?
TEST: de ma grande {{ami}}
TEST: il fut cette fois ulcéré de voir son entreprise une fois de plus ruinée par la malchance.


__gn_det_fem_sing_3m__
    [ladite|une|cette|ma|ta|sa|quelle|aucune|nulle]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and morph(\2, ":[NA].*:[fe]:[si]") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:[pm]", "*") and \4.islower()
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.

TEST: une amie prodigieuse {{récompensé}}                          ->> récompensée


__gn_notre_votre_chaque_1m__
    [notre|votre|chaque]  *WORD
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggSing(\2)                       && Accord de nombre erroné : « \2 » devrait être au singulier.

TEST: Chaque {{chiens}}.                                      ->> chien


__gn_quelque_1m__
    quelque  *WORD
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siG]") and not value(>1, "|que|qu’|")
        -1>> quelques                                                                       && Il manque un “s” à « quelque » ou « \2 » doit être au singulier.

TEST: {{Quelque}} amis


__gn_det_epi_sing_2m__
    [chaque|quelque|notre|votre]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, False)                                                       && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, False)                  && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
        -3>> =suggSing(\3)                                                                  && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.

    [et|ou|de|d’]  [chaque|quelque|notre|votre]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, False)                                                       && Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False)                  && Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.

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


__gn_det_notre_votre_3m__
    [chaque|quelque|notre|votre]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":[fe]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*")
        -4>> =suggMasSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[si]", ":[me]") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:m", "*")
        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[si]", ":[fe]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:p", "*")
        -4>> =suggSing(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier.

TEST: notre grande armée {{fabuleux}}                                           ->> fabuleuse
TEST: notre supérieur hiérarchique {{ignorante}} des pratiques                  ->> ignorant
TEST: votre petit test {{minables}}                                             ->> minable


## Pluriels

__gn_les_1m__
    ,  les  *WORD
        <<- /gn/ morph(\3, ":[NA].*:s", "*") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -3>> =suggPlur(\3)                                                                  && Accord de nombre erroné : « \3 » devrait être au pluriel.

    *WORD  les  *WORD
        <<- /gn/ morph(\2, ":D")
            and ( morph(\3, ":[NA].*:s", "*") or (morph(\3, ":[NA].*:s", ":[pi]|>avoir/") and morph(\1, ":[RC]", ">(?:e[tn]|ou|puis)/") and not (morph(\1, ":Rv") and morph(\3, ":Y"))) )
            and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
            and not (value(\1, "|que|") and morph(<1, ">tel/") and morph(\3, ":3[sp]"))
        -3>> =suggPlur(\3)                                                                  && Accord de nombre erroné : « \3 » devrait être au pluriel.

    <start>  les  *WORD
        <<- /gn/ morph(\3, ":[NA].*:s", ":[ipYPGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -3>> =suggPlur(\3)                                                                  && Accord de nombre erroné : « \3 » devrait être au pluriel.

TEST: ils viennent, les {{petit}}
TEST: Les {{tiret}}                                           ->> tirets
TEST: Les plus {{grand}} hommes.                              ->> grands
TEST: les {{véhicule}}                                        ->> véhicules
TEST: Les {{démoralisation}}.                                 ->> démoralisations
TEST: dans les {{usine}}                                      ->> usines
................................................................................


__gn_les_2m__
    les  *WORD  *WORD
        <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

    [et|ou]  les  *WORD  *WORD
        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not morph(\3, ">seul/") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, True)                                                                && Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, True)                           && Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -4>> =suggPlur(\4)                                                                          && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: les pitres {{imbécile}}
TEST: il faut en convenir et les femmes {{oubliés}} seront satisfaites.
TEST: les {{petites}} {{oubliés}}
TEST: c’est ça, et les femmes {{retrouvés}} seront emmenées à l’hôpital.
TEST: fais ce que tu peux, ou les {{petites}} {{perdus}} le seront à jamais
TEST: ça ou les éternels {{imbécile}} du coin
................................................................................
TEST: Il faut donc examiner ensemble les panneaux et les parois latérales.
TEST: l’homme les a volés


__gn_leurs_1m__
    leurs  *WORD
        <<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
        <<- /gn/ __also__ -1>> leur                                                         && Accord de nombre erroné avec « \2 ».

TEST: {{leurs}} {{action}}
TEST: {{leur}} {{données}}
TEST: {{leurs}} {{abricot}}


__gn_det_pluriel_1m__
    [des|mes|tes|ses|nos|vos|quelques|lesdits|lesdites|desdits|desdites|auxdits|auxdites|moult]  *WORD
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.

TEST: des {{pain}}                                            ->> pains
TEST: Quelques {{homme}}.                                     ->> hommes
TEST: plusieurs {{femme}} sont venues.
TEST: des {{abricot}}
TEST: des {{son}} que nous entendons jour et nuit.
TEST: une personne ou plusieurs ayant décidé de façon déterminée et coordonnée de faire cuire la grenouille


__gn_ces_aux_pluriel_1m__
    [ces|aux]  *WORD
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.
        <<- /gn/ __also__ and morph(\2, ">[bcçdfglklmnpqrstvwxz].*:m", ":f") >>>
        <<- /gn/ \1.endswith("x") or \1.endswith("X") -1>> au                               && Accord de nombre erroné : « \2 » est au singulier.
        <<- /gn/ __else__ -1>> ce                                                           && Accord de nombre erroné : « \2 » est au singulier.

TEST: {{ces}} {{détournement}} de fonds et ces vols
TEST: ces {{étudiant}} sont légion.
TEST: je vais {{aux}} {{cinéma}}
TEST: il l’a donné aux {{étudiant}}
TEST: aux {{personne}}
TEST: j’entends ces {{même}} âneries tous les jours
................................................................................


__gn_det_epi_plur_2m__
    [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|au|aux|") and not morph(\3, ">seul/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

    [et|ou|de|d’]  [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*")))
            and not apposition(\3, \4)
        -4>> =switchGender(\4, True)                                                                && Accord de genre erroné entre « \3 » et « \4 ».
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, True)                           && Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
            and not (value(\1, "|de|d’|") and value(<1, "|un|une|"))
        -4>> =suggPlur(\4)                                                                          && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: ces {{beaux}} {{institutions}}
TEST: nos petites {{fille}}
TEST: de plusieurs {{grands}} {{avocates}}
TEST: de vos défauts {{terrible}}, je connais presque tout.
TEST: Les éléments caractéristiques liés à ses valeurs historique et architecturale
TEST: Une des pierres veinée de rouge…
................................................................................
TEST: le bruit de nos pas étouffé par l’épais tapis.


__gn_det_mas_plur_2m__
    [certains|maints|quels|lesdits|desdits|auxdits]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasPlur(\3, True)                                                         && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggMasPlur(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

    [et|ou|de|d’]  [certains|maints|quels|lesdits|desdits|auxdits]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
        -4>> =suggMasPlur(\4, True)                                                         && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin.
        <<- /gn/ morph(\3, ":[NA].*:[pi]", ":G") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
            and not (value(\1, "|de|d’|") and value(<1, "|un|une|"))
        -4>> =suggMasPlur(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: certains claviers {{dégueulasse}}
TEST: certains hommes {{petite}}
TEST: auxdits hommes {{connu}}
TEST: quels hommes {{grandes}}
TEST: elle se rappelle de quels rapports {{désastreuses}} il s’agit.
TEST: de quels grands {{fou}} s’agit-il ?
................................................................................
TEST: chez certains la revue Limite provoque des crises d’hystérie.


__gn_det_fem_plur_2m__
    [certaines|maintes|quelles|lesdites|desdites|auxdites]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
        -3>> =suggFemPlur(\3, True)                                                         && Accord de genre erroné : « \2 » est féminin, « \3 » est masculin.
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggFemPlur(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

    [et|ou|de|d’]  [certaines|maintes|quelles|lesdites|desdites|auxdites]  *WORD  *WORD
        <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        -4>> =suggFemPlur(\4, True)                                                         && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin.
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
            and not (value(\1, "|de|d’|") and value(<1, "|un|une|"))
        -4>> =suggFemPlur(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

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


__gn_nombre_plur_2m__
    $:B:e:p  *WORD  *WORD
        <<- /gn/ not morph(<1, ">(?:et|ou)/|:R") and not morph(\3, ">(?:seul|minimum|maximum)/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

TEST: deux sombres {{idiot}}
TEST: sept valeurs {{aléatoire}}
TEST: huit {{grandes}} {{claviers}}
TEST: X a perdu mon estime et ma considération.
TEST: vivre une situation hors du commun à deux a aussi pesé dans la balance.
TEST: deux jours minimum
................................................................................
TEST: ils disent finalement tous les deux la même chose


__gn_des_2m__
    des  *WORD  *WORD
        <<- /gn/ (morph(<1, ":(?:[VRBXÉ]|Cs)|>comme/|<start>|>,", "*") or morph(\3, ":N", ":[AQ]")) and not morph(\3, ">(?:seul|minimum|maximum)/") >>>
        <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.
        <<- not morph(\3, ":G|>a/") and checkAgreement(\2, \3) =>> =exclude(\3, ":V")

TEST: faire table rase des passions {{inutile}}               ->> inutiles
TEST: à bonne distance des {{chiens}} {{méchante}}
TEST: des hommes {{attaquée}}
TEST: des femmes {{agressé}}
TEST: des hommes très mal {{renseigné}}                       ->> renseignés
................................................................................
TEST: Les couleurs rouge, jaune et verte ne doivent pas être utilisées
TEST: des passeports américain, canadien, néerlandais, allemand et britannique.


__gn_plusieurs_1m__
    plusieurs  *WORD
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGWP]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.

TEST: plusieurs {{femme}}
TEST: plusieurs {{foi}} par jour.
TEST: plusieurs {{abricot}}


## certains / certaines
__gn_certains_1m__
    certains  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[emGWP]") -1>> certaines                          && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasPlur(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGWP]|V0)") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.

__gn_certains_des_1m__
    certains  des  *WORD
        <<- /gn/ morph(\3, ":[NA].*:f", ":[emGW]") -1>> certaines                           && Accord de genre erroné : « \3 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasPlur(\3, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.

__gn_certaines_1m__
    certaines  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGWP]") -1>> certains                           && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemPlur(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGWP]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.

__gn_certaines_des_1m__
    certaines  des  *WORD
        <<- /gn/ morph(\3, ":[NA].*:m", ":[efGW]") -1>> certains                            && Accord de genre erroné : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.

TEST: {{certains}} {{petites}}
TEST: Certaines {{danse}}
TEST: Certains {{chien}}
TEST: {{certaines}} {{petits}}
TEST: {{certains}} des femmes sont à côté de la plaque.
TEST: {{certains}} des {{nouvelles}} sont à côté de la plaque.
................................................................................
TEST: {{certaines}} des {{petits}}
TEST: Un problème rapporté par certains est l’incapacité à trouver un partenaire


## maints / maintes
__gn_maints_1m__
    maints  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f", ":[emGWP]") -1>> maintes                            && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasPlur(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGWP]|V0)") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.

__gn_maintes_1m__
    maintes  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":[efGWP]") -1>> maints                             && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemPlur(\2, True)                    && Accord de genre erroné : « \1 » est un déterminant féminin.
        <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGWP]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné : « \2 » devrait être au pluriel.

TEST: {{maints}} {{petites}}
TEST: Maintes {{danse}}
TEST: Maints {{chien}}
TEST: {{maintes}} {{petits}}
TEST: Un problème rapporté par maints est l’incapacité à trouver un partenaire


## 3m
__gn_det_les_3m__
    les  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and not morph(\2, ":[123][sp]") and \4.islower() and not morph(\4, ">seul/") >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[pi]", ":[fe]") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:f", "*")
        -4>> =suggMasPlur(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin pluriel.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[pi]", ":[me]") and morph(\3, ":[NA].*:[fe]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:m", "*")
        -4>> =suggFemPlur(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin pluriel.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:s", "*")
        -4>> =suggPlur(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

TEST: les heureux imbéciles {{payée}} au lance-pierre.                      ->> payés
TEST: les petites gens {{oubliés}}                                          ->> oubliées
TEST: les psychologues hypocrites {{ébranlé}} par la crise                  ->> ébranlés


__gn_det_leurs_3m__
    leurs  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and not morph(\2, ":[123][sp]") and \4.islower() and not morph(\4, ">seul/") and not before("(?i)\\bune? de +$") >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[pi]", ":[fe]") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:f", "*")
        -4>> =suggMasPlur(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin pluriel.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[pi]", ":[me]") and morph(\3, ":[NA].*:[fe]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:m", "*")
        -4>> =suggFemPlur(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin pluriel.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:s", "*")
        -4>> =suggPlur(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

TEST: Leurs grands plans {{dépassées}} par les évènements                   ->> dépassés
TEST: leurs grandes peurs {{refoulés}}                                      ->> refoulées
TEST: leurs psychologues hypocrites {{condamné}}                            ->> condamnés


__gn_det_mas_plur_3m__
    [quels|certains|maints|lesdits|desdits|auxdits]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() and not morph(\4, ">seul/") and not before("(?i)\\bune? de +$")
            and morph(\2, ":[NA].*:[me]:[pi]") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:[fs]", "*")
        -4>> =suggMasPlur(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin pluriel.

TEST: lesdits dentistes ruinés {{oublié}}                                   ->> oubliés
TEST: Prendre goût aux heures passées seul à marcher


__gn_det_fem_plur_3m__
    [quelles|certaines|maintes|lesdites|desdites|auxdites]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() and not morph(\4, ">seul/") and not before("(?i)\\bune? de +$")
            and morph(\2, ":[NA].*:[fe]:[pi]") and morph(\3, ":[NA].*:[fe]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:[ms]", "*")
        -4>> =suggFemPlur(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin pluriel.

TEST: quelles belles nuits {{inoubliable}}                                  ->> inoubliables


__gn_det_epi_plur_3m__
    [ces|mes|tes|ses|nos|vos|aux|plusieurs|quelques|moult]  *WORD  *WORD  *WORD
        <<- /gn/ morph(<1, "<start>|:V", "*") and \4.islower() and not morph(\4, ">seul/") and not before("(?i)\\bune? de +$") >>>
        <<- /gn/ morph(\2, ":[NA].*:m:[pi]", ":[fe]") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:f", "*")
        -4>> =suggMasPlur(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin pluriel.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[pi]", ":[me]") and morph(\3, ":[NA].*:[fe]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:m", "*")
        -4>> =suggFemPlur(\4)                                                               && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin pluriel.
        <<- /gn/ __else__ and morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NAQ].*:s", "*")
        -4>> =suggPlur(\4)                                                                  && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel.

TEST: ces petites sottes {{venus}} foutre la merde                          ->> venues
TEST: mes beaux chevaux {{oubliées}}                                        ->> oubliés
TEST: vos dentistes ridicules {{perdu}} dans la forêt                       ->> perdus
TEST: Prendre goût aux heures passées seul à marcher


## quel / quels / quelle / quelles
__gn_quel_1m__
    quel  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f:p", ":(?:V0|Oo|[NA].*:[me]:[si])")        -1>> quelles                    && Accord de genre et de nombre erroné : « \2 » est féminin et au pluriel.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggMasSing(\2, True)     && Accord de genre et de nombre erroné : « \1 » est masculin et au singulier.
        <<- /gn/ morph(\2, ":[NA].*:m:p", ":(?:V0|Oo|[NA].*:[me]:[si])")        -1>> quels                      && Accord de nombre erroné : « \2 » est au pluriel.
        <<- /gn/ __also__                                                       -2>> =suggSing(\2)              && Accord de nombre erroné : « \1 » est au singulier.
        <<- /gn/ morph(\2, ":[NA].*:f:[si]", ":(?:V0|Oo|[NA].*:[me]:[si])")     -1>> quelle                     && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggMasSing(\2, True)     && Accord de genre erroné : « \1 » est masculin.

TEST: {{Quel}} femme.                                         ->> Quelle
TEST: {{Quel}} {{partie}}
TEST: {{Quel}} {{paris}}
TEST: {{Quel}} {{parties}}
TEST: Quel emmerdeur

__gn_quels_1m__
    quels  *WORD
        <<- /gn/ morph(\2, ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[me]:[pi])")        -1>> quelle                     && Accord de genre et de nombre erroné : « \2 » est féminin et au singulier.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggMasPlur(\2, True)     && Accord de genre et de nombre erroné : « \1 » est masculin et au pluriel.
        <<- /gn/ morph(\2, ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[me]:[pi])")        -1>> quel                       && Accord de nombre erroné : « \2 » est au singulier.
        <<- /gn/ __also__                                                       -2>> =suggPlur(\2)              && Accord de nombre erroné : « \1 » est au pluriel.
        <<- /gn/ morph(\2, ":[NA].*:f:[pi]", ":(?:V0|Oo|[NA].*:[me]:[pi])")     -1>> quelles                    && Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggMasPlur(\2, True)     && Accord de genre erroné : « \1 » est masculin.

TEST: {{Quels}} chanson.                                      ->> Quelle
TEST: {{Quels}} {{chant}}
TEST: {{Quels}} {{idiotes}}
TEST: {{Quels}} {{avocate}}
TEST: Quels idiots

__gn_quelle_1m__
    quelle  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m:p", ":(?:V0|Oo|[NA].*:[fe]:[si])")        -1>> quels                      && Accord de genre et de nombre erroné : « \2 » est masculin et au pluriel.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggFemSing(\2, True)     && Accord de genre et de nombre erroné : « \1 » est féminin et au singulier.
        <<- /gn/ morph(\2, ":[NA].*:f:p", ":(?:V0|Oo|[NA].*:[fe]:[si])")        -1>> quelles                    && Accord de nombre erroné : « \2 » est au pluriel.
        <<- /gn/ __also__                                                       -2>> =suggSing(\2)              && Accord de nombre erroné : « \1 » est au singulier.
        <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":(?:V0|Oo|[NA].*:[fe]:[si])")     -1>> quel                       && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggFemSing(\2, True)     && Accord de genre erroné : « \1 » est féminin.

TEST: {{Quelle}} homme.                                       ->> Quel
TEST: {{Quelle}} {{folles}}
TEST: {{Quelle}} {{chien}}
TEST: {{Quelle}} {{chats}}
TEST: Quelle sale journée…
TEST: On pourrait également rappeler à quel point l’Église catholique fut hostile à la laïcité et la combattit violemment.

__gn_quelles_1m!8__
    quelles  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])")        -1>> quel                       && Accord de genre et de nombre erroné. « \2 » est masculin et au singulier.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggFemPlur(\2, True)     && Accord de genre et de nombre erroné : « \1 » est féminin et au pluriel.
        <<- /gn/ morph(\2, ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])")        -1>> quelle                     && Accord de nombre erroné : « \2 » est au singulier.
        <<- /gn/ __also__                                                       -2>> =suggPlur(\2)              && Accord de nombre erroné : « \1 » est au pluriel.
        <<- /gn/ morph(\2, ":[NA].*:m:[pi]", ":(?:V0|Oo|[NA].*:[fe]:[pi])")     -1>> quels                      && Accord de genre erroné : « \2 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\2)                                    -2>> =suggFemPlur(\2, True)     && Accord de genre erroné : « \1 » est féminin.

TEST: {{Quelles}} hommes
TEST: {{Quelles}} {{tarés}}.
TEST: {{Quelles}} {{cinglé}}.
TEST: {{Quelles}} {{idiote}}.
TEST: Quelles grandes tours
TEST: Quelles drôles de prunes
................................................................................
    [quels|quelles]  [est|étais|était|sera|serais|serait|fut|fût|fus]
        <<- /gn/ not value(<1, "|tels|telles|")
        -1>> =\1[:-1]                                                                       && Accord de nombre erroné avec “\2”.

__gn_quel_accord_être_sujet__
    quel  [est|était|seras|sera|serais|serait|fut|fût|fus]  [la|cette|ma|ta|sa]  *WORD
        <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:[fe]", ":m")
        -1>> quelle                                                                         && Accord de genre erroné avec « \3 \4 ».

    quel  [est|était|seras|sera|serais|serait|fut|fût|fus]  [mon|ton|son|notre|votre|leur]  *WORD
        <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:f", ":[me]")
        -1>> quelle                                                                         && Accord de genre erroné avec « \3 \4 ».

__gn_quelle_accord_être_sujet__
    quelle  [est|était|seras|sera|serais|serait|fut|fût|fus]  [le|ce|cet]  *WORD
        <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:[me]", ":f")
        -1>> quel                                                                           && Accord de genre erroné avec « \3 \4 ».

    quelle  [est|était|seras|sera|serais|serait|fut|fût|fus]  [mon|ton|son|notre|votre|leur]  *WORD
        <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:m", ":[fe]")
        -1>> quel                                                                           && Accord de genre erroné avec « \3 \4 ».

__gn_quels_accord_être_sujet__
    quels  [sont|étaient|seront|serons|seraient|furent|fussent]  [les|ces|mes|tes|ses|nos|vos|leurs]  *WORD
        <<- /gn/ not value(<1, "|tels|telles|") and morph(\4, ":[NA].*:f", ":[me]")
        -1>> quelles                                                                        && Accord de genre erroné avec « \3 \4 ».

__gn_quelles_accord_être_sujet__
    quelles  [sont|étaient|seront|serons|seraient|furent|fussent]  [les|ces|mes|tes|ses|nos|vos|leurs]  *WORD
        <<- /gn/ not value(<1, "|tels|telles|") and morph(\4, ":[NA].*:m", ":[fe]")
        -1>> quels                                                                          && Accord de genre erroné avec « \3 \4 ».

TEST: {{Quel}} sont ces hommes.                                     ->> Quels
TEST: {{Quel}} est cette force ?                                    ->> Quelle
TEST: {{Quel}} serait notre peine ?                                 ->> Quelle
TEST: {{Quel}} est la politique ?                                   ->> Quelle
TEST: {{Quelle}} est mon animal favori ?                            ->> Quel
TEST: {{Quelle}} est le politique ?                                 ->> Quel
................................................................................

## masculin requis
__gn_quel_que_être_mas_sing__
    quelle que    [soit|soit|sois|soient|fut|fût] [le|ce|cet]      *WORD
    quelle que    [soit|soit|sois|soient|fut|fût] [mon|ton|son]    ~^[bcdfgjklmnpqrstvwxz]
    quelle qu’ en [soit|soit|sois|soient|fut|fût] [le|ce|cet]      *WORD
    quelle qu’ en [soit|soit|sois|soient|fut|fût] [mon|ton|son]    ~^[bcdfgjklmnpqrstvwxz]
        <<- /gn/ -1>> quel                                                                  && Accord de genre avec « \-2 \-1 ». Utilisez le masculin.

    quelle que    [soit|soit|sois|soient|fut|fût] [notre|votre|leur]  *WORD
    quelle que    [soit|soit|sois|soient|fut|fût] [mon|ton|son]       ~^[aeéèhiîoôuy]
    quelle qu’ en [soit|soit|sois|soient|fut|fût] [notre|votre|leur]  *WORD
    quelle qu’ en [soit|soit|sois|soient|fut|fût] [mon|ton|son]       ~^[aeéèhiîoôuy]
        <<- /gn/ morph(\-1, ":[NA].*:m", ":[fe]") -1>> quel                                 && Accord de genre avec « \-2 \-1 ». Utilisez le masculin.

TEST: {{quelle}} que soit le chien                            ->> quel
TEST: {{Quelle}} que soit mon intérêt.                        ->> Quel
TEST: {{Quelle}} qu’en soit mon intérêt.                      ->> Quel


__gn_quel_que_être_mas_plur__
    quelles que [soient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs]  @:[NAQ].*:m¬:[fe]
    quelles qu’ en [soient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs]  @:[NAQ].*:m¬:[fe]
        <<- /gn/ -1>> quels                                                                 && Accord de genre avec « \-2 \-1 ». Utilisez le masculin.

TEST: {{Quelles}} que soient ces intérêts                     ->> Quels
TEST: {{Quelles}} que soient les hommes qui…                  ->> Quels


## féminin requis
__gn_quelle_que_être_fem_sing__
    quel que    [soit|soit|sois|fut|fût] [la|cette|ma|ta|sa]  *WORD
    quel qu’ en [soit|soit|sois|fut|fût] [la|cette|ma|ta|sa]  *WORD
        <<- /gn/ -1>> quelle                                                                && Accord de genre avec « \-2 \-1 ». Utilisez le féminin.

    quel que    [soit|soit|sois|soient|fut|fût] [notre|votre|leur]  *WORD
    quel que    [soit|soit|sois|soient|fut|fût] [mon|ton|son]       ~^[aeéèhiîoôuy]
    quel qu’ en [soit|soit|sois|soient|fut|fût] [notre|votre|leur]  *WORD
    quel qu’ en [soit|soit|sois|soient|fut|fût] [mon|ton|son]       ~^[aeéèhiîoôuy]
        <<- /gn/ morph(\5, ":[NA].*:f", ":[me]") -1>> quelle                                && Accord de genre avec « \-2 \-1 ». Utilisez le féminin.

TEST: {{Quel}} que soit la force appliquée.                   ->> Quelle
TEST: {{Quel}} que soit mon aversion                          ->> Quelle
TEST: {{Quel}} que soit cette femme                           ->> Quelle
TEST: {{Quel}} que soit la force appliquée.                   ->> Quelle


__gn_quelle_que_être_fem__
    quels que    [soient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs]  @:[NAQ].*:f¬:[me]
    quels qu’ en [soient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs]  @:[NAQ].*:f¬:[me]
        <<- /gn/ -1>> quelles                                                               && Accord de genre avec « \-2 \-1 ». Utilisez le féminin.

TEST: {{Quels}} que soient ces idiotes                        ->> Quelles
TEST: {{Quels}} qu’en soient les raisons                      ->> Quelles


## quelque adverbe
__gn_quelque_adverbe__
    quelques  *NUM
        <<- /gn/ -1>> quelque                                                               && Devant un nombre, « quelque » est un adverbe, donc invariable.

    quelques  $:B:e:p
        <<- /gn/ \2 != "cents" -1>> quelque                                                 && Devant un nombre, « quelque » est un adverbe, donc invariable.

TEST: Elle a eu {{quelques}} 300 réponses à sa petite-annonce.
TEST: Il commande {{quelques}} trois cents hommes.
TEST: {{Quelques}} 120 hommes                                 ->> Quelque
TEST: {{Quelques}} deux cents hommes.                         ->> Quelque
TEST: les quelque 2,5 millions d’habitants
TEST: les quelque 12 000 stations-service
................................................................................
    [cent|mille]  ~[iI][èÈ][mM][eE]$  @:[NA].*:[si]
        <<- !2>>

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

    mille  *WORD
        <<- /gn/ not value(\2, "|maximum|minimum|multiplié|divisé|") and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":D.*:s")
        -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.

TEST: ce sont trois {{idiot}} pas foutus de trouver leur chemin avec un GPS.        ->> idiots
TEST: Il a abandonné neuf {{enfant}}.                                               ->> enfants
TEST: On peut trouver mille {{travailleur}} d’un claquement de doigts.              ->> travailleurs
TEST: Il y a quatre cents {{mot}} dans la phrase.                                   ->> mots
TEST: cent {{mot}}                                                                  ->> mots
TEST: cinquante {{mot}}                                                             ->> mots
................................................................................
TEST: il vit dans un vingt-quatre mètre carré.
TEST: Cent quarante-neuvième épisode


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

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

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

TEST: il a adopté 1 {{chiens}}.
TEST: 22 {{heure}}
TEST: 3 {{heure}}
TEST: Environ 10 essais {{nucléaire}} ont été réalisés
TEST: 20 {{grandes}} {{animaux}}
TEST: 00 heure, 01 heure
................................................................................
TEST: une sœur et une sœur réunies
TEST: une nation avec une armée et une volonté a toutes les chances d’y parvenir


##  trouver ça/ceci/cela + adj
__gn_trouver_ça_adj__
    >trouver  [ça|cela|ceci]  @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M)
        <<- /gn/ -3>> =suggMasSing(\3)                                              && Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier).

TEST: ils trouvent ça de plus en plus {{idiots}}              ->> idiot


##  Adjectifs précédents

__gn_seul_e_s_det_substantifs_nombre__
................................................................................
!!
!!

## Sans article
__gn_start_2m__
    <start>  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ ((morph(\2, ":m", "*") and morph(\3, ":f", "*")) or (morph(\2, ":f", "*") and morph(\3, ":m", "*"))) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
        <<- /gn/ ((morph(\2, ":s", "*") and morph(\3, ":p", "*")) or (morph(\2, ":p", "*") and morph(\3, ":s", "*"))) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      && Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    && Accord de nombre erroné avec « \3 ».

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


__gn_start_3m__
    <start>  @:[NA]¬*  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ morph(\2, ":p") and morph(\3, ":[pi]") and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":i") and morph(\3, ":p")    and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":s") and morph(\3, ":[si]") and morph(\4, ":p") and \4.islower() -4>> =switchPlural(\4)  && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        <<- /gn/ morph(\2, ":i") and morph(\3, ":s")    and morph(\4, ":p") and \4.islower() -4>> =switchPlural(\4)  && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        <<- /gn/ morph(\2, ":m", ":[fe]") and morph(\3, ":[me]") and morph(\4, ":f") and \4.islower() -4>> =switchGender(\4)  && Accord de genre erroné avec « \2 \3 » : « \4 » devrait être au masculin.
        <<- /gn/ morph(\2, ":f", ":[me]") and morph(\3, ":[fe]") and morph(\4, ":m") and \4.islower() -4>> =switchGender(\4)  && Accord de genre erroné avec « \2 \3 » : « \4 » devrait être au féminin.

TEST: Grande manifestation {{réprimées}} dans le sang.                  ->> réprimée
TEST: Petite manifestation {{ignorées}} par les médias.                 ->> ignorée
TEST: Précis brûlé {{oubliés}}                                          ->> oublié
TEST: Grandes démonstrations {{oubliée}} par l’Histoire.                ->> oubliées
TEST: Prix incroyables {{valable}} uniquement jusqu’à demain.           ->> valables
TEST: Petites filles {{oubliés}}                                        ->> oubliées
................................................................................
TEST: Petits écarts {{pardonnées}}                                      ->> pardonnés


## Prépositions
__gn_pfx_en_2m__
    en  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ ( (morph(\2, ":m", "*") and morph(\3, ":f", "*")) or (morph(\2, ":f", "*") and morph(\3, ":m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
        <<- /gn/ ( (morph(\2, ":p", "*") and morph(\3, ":s", "*")) or (morph(\2, ":s", "*") and morph(\3, ":p", "*")) ) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      && Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    && Accord de nombre erroné avec « \3 ».

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


__gn_pfx_à_par_pour_sans_2m__
    [à|par|pour|sans]  @:[NA]¬:Y  @:[NA]¬:G
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
        <<- /gn/ ( (morph(\2, ":p", ":[si]") and morph(\3, ":s", "*")) or (morph(\2, ":s", ":[pi]") and morph(\3, ":p", "*")) ) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      && Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    && Accord de nombre erroné avec « \3 ».

TEST: à {{grande}} {{enjambées}}
TEST: pour {{belle}} {{appartement}}
TEST: une femme sans a priori


__gn_pfx_de_2m__
    [de|d’]  @:[NA]¬:Y  @:[NA]¬*
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) )
            and not apposition(\2, \3) and not morph(<1, ":[NA]|>(?:et|ou)/")
        -3>> =switchGender(\3)                                                                      && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
        <<- /gn/ ( (morph(\2, ":p", ":[si]") and morph(\3, ":s", "*")) or (morph(\2, ":s", ":[pi]") and morph(\3, ":p", "*")) )
            and not apposition(\2, \3) and not morph(<1, ":[NA]|>(?:et|ou)/")
        -3>> =switchPlural(\3)                                                                      && Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    && Accord de nombre erroné avec « \3 ».

TEST: Ils ont de {{grandes}} {{oreille}}
TEST: de {{grands}} {{homme}}
TEST: de {{manière}} {{légal}}
TEST: de {{petite}} {{homme}}
TEST: de {{pousse}} {{actif}}
TEST: De {{bon}} {{conseils}}
................................................................................
TEST: Ces produits sont de {{belle}} {{qualités}}.


__gn_pfx_sur_avec_après_2m__
    [sur|avec|après]  @:[NA]¬:V0  @:[NA]¬*
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) )
            and not apposition(\2, \3) and morph(<1, ":[VRX]|<start>")
        -3>> =switchGender(\3)                                                                      && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
        <<- /gn/ ( (morph(\2, ":p", ":[si]") and morph(\3, ":s", "*")) or (morph(\2, ":s", ":[pi]") and morph(\3, ":p", "*")) )
            and not apposition(\2, \3) and morph(<1, ":[VRX]|<start>")
        -3>> =switchPlural(\3)                                                                      && Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    && Accord de nombre erroné avec « \3 ».

TEST: avec {{grand}} {{industrie}}
TEST: avec {{grandes}} {{industrie}}
TEST: sur {{petite}} {{pied}}
TEST: Après être demeurée assise pendant quelque temps, elle se leva
TEST: ils choisissent de devenir indépendants

................................................................................
!!!! Groupe nominal: Accords avec de / des / du                                                   !!
!!
!!

__gn_devinette__
    [la|ma|ta|sa|une|cette]  *WORD  [de|d’]  [la|ma|ta|sa|cette|une]  *WORD  *WORD
        <<- /gn/ morph(\6, ":[NA].*:(?:m|f:p)", ":(?:G|P|[fe]:[is]|V0|3[sp])") and morph(\5, ":[NA].*:[fe]") and not apposition(\5, \6)
        -6>> =suggFemSing(\6, True)                                                         && Accord erroné : « \6 » devrait être au féminin singulier.

    [le|un|ce|cet]  *WORD  [de|d’]  [ce|cet|un]  (*WORD)  (*WORD)
    [le|un|ce|cet]  *WORD  du  (*WORD)  (*WORD)
        <<- /gn/ morph(\2, ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and morph(\1, ":[NA].*:[me]") and not apposition(\1, \2)
        -2>> =suggMasSing(\2, True)                                                         && Accord erroné : « \2 » devrait être au masculin singulier.

    [le|un|ce|cet]  *WORD  de  [mon|ton|son]  *WORD  *WORD
        <<- /gn/ morph(\5, ":", ":[NA].*:f|>[aéeiou].*:e") and morph(\6, ":[NA].*:(?:f|m:p)", ":(?:G|P|m:[is]|V0|3[sp])") and not apposition(\5, \6)
        -6>> =suggMasSing(\6, True)                                                         && Accord erroné : « \6 » devrait être au masculin singulier.

    [mon|ton|son]  *WORD  [de|d’]  [ce|cet|un]  *WORD  *WORD
    [mon|ton|son]  *WORD  du  *WORD  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":G|>[aéeiou].*:[ef]")
            and morph(\-1, ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and not apposition(\-2, \-1)
        --1>> =suggMasSing(\-1, True)                                                       && Accord erroné : « \-1 » devrait être au masculin singulier.

    [mon|ton|son]  *WORD  de [mon|ton|son]  *WORD  *WORD
        <<- /gn/ morph(\2, ":[NA].*:m", ":G|>[aéeiou].*:[ef]")
            and not morph(\-2, ":[NA].*:f|>[aéeiou].*:e") and morph(\-1, ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and not apposition(\-2, \-1)
        --1>> =suggMasSing(\-1, True)                                                       && Accord erroné : « \-1 » devrait être au masculin singulier.

    [les|ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  de [ces|mes|tes|ses|nos|vos|leurs]  *WORD  *WORD
    [les|ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  des  *WORD  *WORD
        <<- /gn/ morph(\-1, ":[NA].*:s", ":(?:G|P|[me]:[ip]|V0|3[sp])") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1)
            and not (value(>1, "|et|ou|") and morph(>2, ":A.*:[si]"))
        --1>> =suggPlur(\-1)                                                                && Accord erroné : « \-1 » devrait être au pluriel.

TEST: La fille de cette belle {{inconnu}}                       ->> inconnue
TEST: Le chien du voisin {{mourante}}                           ->> mourant
TEST: Un chien de ce voisin {{amicale}}                         ->> amical
TEST: mon amour du chocolat {{immodérée}}                       ->> immodéré
TEST: ton amour de son verbe {{enthousiasmante}}                ->> enthousiasmant
TEST: Cet homme de mon groupe {{oubliés}}                       ->> oublié
................................................................................
!!
!!!! Groupe nominal (accord avec déterminant suivant le groupe)                                   !!
!!
!!

__gn_lequel_laquelle_lesquels_lesquelles__
    <start> [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]                  *WORD  *WORD   [laquelle|lesquels|lesquelles]
        <<- /conf/ morph(\3, ":N.*:m:[si]", ":f") and morph(\4, ":R", ">à/") --1>> lequel           && Accord avec “\2 \3” : utilisez le masculin singulier.

    <start> [la|l’|une|cette|ma|ta|sa|notre|votre|leur]                     *WORD  *WORD   [lequel|lesquels|lesquelles]
        <<- /conf/ morph(\3, ":N.*:f:[si]", ":m") and morph(\4, ":R", ">à/") --1>> laquelle         && Accord avec “\2 \3” : utilisez le féminin singulier.

    <start> [les|des|ces|mes|tes|ses|quelques|plusieurs|certains|maints]    *WORD  *WORD   [lequel|laquelle|lesquelles]
        <<- /conf/ morph(\3, ":N.*:m:[pi]", ":f") and morph(\4, ":R", ">à/") --1>> lesquels         && Accord avec “\2 \3” : utilisez le pluriel masculin.

    <start> [les|des|ces|mes|tes|ses|quelques|plusieurs|certaines|maintes]  *WORD  *WORD   [lequel|laquelle|lesquels]
        <<- /conf/ morph(\3, ":N.*:f:[pi]", ":m") and morph(\4, ":R", ">à/") --1>> lesquelles       && Accord avec “\2 \3” : utilisez le pluriel féminin.

TEST: L’homme pour {{laquelle}} tu te plies en quatre ne le mérite pas.                 ->> lequel
TEST: Une femme contre {{lequel}} je me suis battu bec et ongles.                       ->> laquelle
TEST: ces idiots avec {{lesquelles}} j’ai commis la bêtise de partir                    ->> lesquels
TEST: plusieurs femmes avec {{lesquels}} nous avons parlé                               ->> lesquelles
TEST: La femme avec laquelle tu parles
TEST: La faux avec laquelle on fauche.
TEST: Une distance au-delà de laquelle il devient difficile de voir.


__gn_auquel_à_laquelle_auxquels_auxquelles__
    <start> [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]                  *WORD   [auxquels|auxquelles]
        <<- /conf/ morph(\3, ":N.*:m:[si]", ":f") --1>> auquel                                      && Accord avec “\2 \3” : utilisez le masculin singulier.

    <start> [le|l’|un|ce|cet|mon|ton|son|notre|votre|leur]                  *WORD   à laquelle
        <<- /conf/ morph(\3, ":N.*:m:[si]", ":f:[si]") --2:-1>> auquel                              && Accord avec “\2 \3” : utilisez le masculin singulier.

    <start> [la|l’|une|cette|ma|ta|sa|notre|votre|leur]                     *WORD   [auquel|auxquels|auxquelles]
        <<- /conf/ morph(\3, ":N.*:f:[si]", ":m") --1>> à laquelle                                  && Accord avec “\2 \3” : utilisez le féminin singulier.

    <start> [les|des|ces|mes|tes|ses|quelques|plusieurs|certains|maints]    *WORD   [auquel|auxquelles]
        <<- /conf/ morph(\3, ":N.*:m:[pi]") --1>> auxquels                                          && Accord avec “\2 \3” : utilisez le pluriel masculin.

    <start> [les|des|ces|mes|tes|ses|quelques|plusieurs|certaines|maintes]  *WORD   [auquel|auxquels]
        <<- /conf/ morph(\3, ":N.*:f:[pi]", ":m") --1>> auxquelles                                  && Accord avec “\2 \3” : utilisez le pluriel féminin.

TEST: le délire {{à laquelle}} nous avons dû faire face.                                ->> auquel
TEST: le chien {{auxquels}} ils ont apporté à manger avait disparu                      ->> auquel
TEST: la mission {{auquel}} nous avons consacré tant de temps a finalement été annulée  ->> à laquelle
TEST: les femmes {{auxquels}} j’ai confié cette mission se sont rebellées.              ->> auxquelles
TEST: les hommes {{auxquelles}} nous avons fait confiance nous sont trahis.             ->> auxquels
TEST: Les femmes auxquelles tu parles


__gn_duquel_de_laquelle_desquels_desquelles__
# Nous présumons qu’au singulier, la différence sonore prévient toute confusion possible (les faux positifs possibles sont nombreux).
    [<start>|,|(]  *WORD  [les|des|ces|mes|tes|ses|quelques|plusieurs|certains]   *WORD    desquelles
        <<- /conf/ morph(\2, ":R") and morph(\4, ":N.*:m:[pi]", ":f:[pi]") --1>> desquels           && Si “\-1” se rapporte à “\3 \4” : utilisez le pluriel masculin.

    [<start>|,|(]  *WORD  [les|des|ces|mes|tes|ses|quelques|plusieurs|certaines]  *WORD    desquels
        <<- /conf/ morph(\2, ":R") and morph(\4, ":N.*:f:[pi]", ":m:[pi]") --1>> desquelles         && Si “\-1” se rapporte à “\3 \4” : utilisez le pluriel féminin.

    <start>  [les|des|ces|mes|tes|ses|quelques|plusieurs|certains|maints|aux]     *WORD    desquelles
        <<- /conf/ morph(\3, ":N.*:m:[pi]", ":f:[pi]") --1>> desquels                               && Si “\-1” se rapporte à “\2 \3” : utilisez le pluriel masculin.

    <start>  [les|des|ces|mes|tes|ses|quelques|plusieurs|certaines|maintes|aux]   *WORD    desquels
        <<- /conf/ morph(\3, ":N.*:f:[pi]", ":m:[pi]") --1>> desquelles                             && Si “\-1” se rapporte à “\2 \3” : utilisez le pluriel féminin.

TEST: contre les ennuis {{desquelles}} nous nous sommes dépêtrés seuls                  ->> desquels
TEST: par ces idées {{desquels}} il fut possible de bâtir notre empire                  ->> desquelles
TEST: les travaux {{desquelles}} nous tirons ces résultats                              ->> desquels
TEST: aux ressources {{desquels}} nous avons tiré notre richesse.                       ->> desquelles
TEST: C’était une Église, parmi tant d’autres, au milieu de laquelle prospéraient les hypocrites.
TEST: au nombre desquels on compte les vaisseaux de l’Invincible Armada.
................................................................................
!!
!!!! Singuliers & Pluriels                                                                        !!
!!
!!

#### Prépositions

# Similaires à prépositions : http://www.synapse-fr.com/manuels/PP_ATTENDU.htm
# attendu, compris, non-compris, y compris, entendu, excepté, ôté, ouï, passé, supposé, vu
# ! problème avec l’ouïe, ouï retiré de la liste
__gn_prépositions__
    <start> ?non¿ [comprise|comprises] [le|la|l’|les|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs]
        <<- /gn/ --2>> compris                                                              && Considéré comme préposition, invariable.

    <start> [non-comprise|non-comprises] [le|la|l’|les|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs]
        <<- /gn/ -2>> non compris                                                           && Considéré comme préposition, invariable.

    <start> [entendus|exceptés|ôtés|supposés|passés|entendue|exceptée|ôtée|supposée|passée|entendues|exceptées|ôtées|supposées|passées]  [le|la|l’|les|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs]
        <<- /gn/ -2>> =suggMasSing(\2)                                                      && Considéré comme préposition, invariable.

    [<start>|,|(]  [attendus|attendue|attendues]  [que|qu’]
        <<- /gn/ -2>> attendu                                                               && “Attendu que” : considéré comme préposition, invariable.

    [<start>|,|(]  étant [donnés|donnée|données]
        <<- /gn/ -3>> donné                                                                 && “Étant donné” : considéré comme préposition, invariable.

    [<start>|,|(]  [vus|vue|vues]  [le|la|l’|les|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs]
    [<start>|,|(]  [vus|vue|vues]  [que|qu’]
        <<- /gn/ -2>> vu                                                                    && “Vu que”. Considéré comme préposition, invariable.

TEST: {{comprises}} mes prestations sur place
TEST: {{non-comprises}} les boissons
................................................................................
__gn_vingt__
    vingts
        <<- /gn/ not value(<1, "|quatre|") ->> vingt                                        && “Vingt” ne prend la marque du pluriel que dans “quatre-vingts”.

    quatre-vingt
    quatre vingt
        <<- /gn/ not morph(>1, ":B") and not morph(<1, ">(?:numéro|page|chapitre|référence|année|test|série)/")
        ->> quatre-vingts                                                                   && Mettre « vingt » au pluriel, excepté s’il s’agit d’une référence (page, chapitre, année…).

    quatre-vingts-un
    quatre-vingts-deux
    quatre-vingts-trois
    quatre-vingts-quatre
    quatre-vingts-cinq
    quatre-vingts-six
................................................................................
    quatre-vingts-treize
    quatre-vingts-quatorze
    quatre-vingts-quinze
    quatre-vingts-seize
    quatre-vingts-dix-sept
    quatre-vingts-dix-huit
    [quatre-vingts-dix-neuf|quatre-vingts-dix-neufs]
        <<- /gn/ -1>> =\1.replace("vingts", "vingt").replace("VINGTS", "VINGT")             && Mettez « vingt » au singulier.

TEST: Il y a {{vingts}} personnes dans le salon.
TEST: {{Quatre-vingt}} femmes sont passées.
TEST: On en a reçu {{quatre-vingts-dix}}.
TEST: Le gagnant est le numéro quatre-vingt.


................................................................................
__gn_nombre_cents__
    [deux|trois|quatre|cinq|six|sept|huit|neuf]  cent
        <<- /gn/ not morph(>1, ":B:e:p|>une?") and not morph(<1, ">(?:numéro|page|chapitre|référence|année|test|série)/")
        -2>> cents                          && Mettre “cent” au pluriel (centaines entières), excepté s’il s’agit d’une référence (page, chapitre, année…).|https://fr.wiktionary.org/wiki/cent

    [deux|trois|quatre|cinq|six|sept|huit|neuf|mille]  cents
        <<- /gn/ morph(>1, ":B:e:p|>une?")
        -2>> cent                           && Nombre cardinal : pas de “s” à “cent” (hormis sur les centaines entières).|https://fr.wiktionary.org/wiki/cent

    cents  @:[NA].*:[pi]¬:G
        <<- /gn/ morph(<1, ":[VR]|<start>", ":B")
        -1>> cent                           && Nombre cardinal : pas de “s” à “cent” (hormis sur les centaines entières).|https://fr.wiktionary.org/wiki/cent

TEST: deux {{cents}} trois mots                                                         ->> cent
TEST: il y a {{cents}} mots                                                             ->> cent
TEST: {{cents}} mots                                                                    ->> cent
TEST: ils mangent {{cents}} têtes                                                       ->> cent
TEST: trois {{cent}} marches à gravir.
TEST: deux {{cents}} quatre tests lancés à chaque itération du processus nouveau
................................................................................

#### Groupes, regroupements, collections, etc.

## Pluriel des groupes
__gn_nombre_de_1m__
    nombre  [de|d’]  *WORD
        <<- /gn/ morph(\3, ":[NA].*:s", ":[ip]|>o(?:nde|xydation|r)/") and morph(<1, ":(?:G|[123][sp])|<start>|>,", ":[AD]")
        -3>> =suggPlur(\3)                                                                  && Ici, « nombre de » devrait probablement être suivi d’un pluriel.

TEST: Je connais nombre d’{{emmerdeur}} et aucun n’est pire que lui.


__gn_plein_de__
    pleins [de|d’]
        <<- /gn/ morph(<1, ":(?:V|R|[NAQ].*:s)|<start>|>,", ":(?:[NA].*:[pi]|V0e.*:[123]p)")
................................................................................
TEST: L’entretien dure environ une {{demie heure}}.
TEST: les {{demies heures}} les plus longues de ma vie
TEST: Une demi-heure d’ennui profond.


__gn_demi_demie__
    [>année|>semaine|>journée|>heure|>minute|>seconde|>bouteille|>caisse|>cuillère|>page|>remorque|>tasse|>tonne] et [demi|demis|demies]
        <<- /gn/ -3>> demie                             && « Une et demie », « deux et demie », etc.

    [>millénaire|>siècle|>an|>jour|>degré|>kilo|>litre|>mètre|>wagon] et [demie|demis|demies]
        <<- /gn/ -3>> demi                              && « Un et demi », « deux et demi », etc.

    >demi [>douzaine|>cercle|>litre|>millénaire|>siècle|>journée|>heure|>sœur|>frère|>fin|>sel|>final|>centre|>million|>pension|>portion|>mot|>mort|>longueur|>page|>mesure|>écrémer|>tour|teinte+s]
        <<- /gn/ ->> demi-\2                            && Pour la moitié de “\2”, écrivez “demi-\2”.

TEST: nous avons rendez-vous dans une heure et {{demi}}
TEST: Deux mètre et {{demis}}.
TEST: achète une {{demie douzaine}} d’œufs.
................................................................................
TEST: Elle est {{à demie}} consciente de ce qui se passe en face de chez elle.
TEST: Il est {{à demis}} cuit.


# dévolu
__loc_leur_dévolu__
    >jeter leurs dévolus
        <<- /loc/ -2:3>> leur dévolu                    && Jeter son dévolu, leur dévolu : au singulier.

TEST: Ces gens qui jettent {{leurs dévolus}} sur n’importe qui, c’est d’une indécence.


# extérieur/intérieur
__gn_intérieur_extérieur__
    [l’|d’|mon|ton|son|leur|notre|votre|cet|en] [intérieure|extérieure]
................................................................................
TEST: un homme de l’{{intérieure}}.
TEST: des {{intérieures}} remarquables.


# en bons termes
__loc_en_bons_termes__
    en bon terme
        <<- /loc/ ->> en bons termes                    && En bons termes : cette locution est toujours au pluriel.

TEST: nous sommes à présent {{en bon terme}}


# eux-mêmes, elles-mêmes
__loc_eux_elles_mêmes__
    eux-même
................................................................................
TEST: Elles ne sont plus {{elles-même}}.
TEST: Ils ne peuvent s’en prendre qu’à {{eux-même}}.


# par intermittence
__loc_par_intermittence__
    par intermittences
        <<- /loc/ ->> par intermittence                             && Locution : « par intermittence ».

TEST: Elles ne viennent que {{par intermittences}}.


# par intervalles
__loc_par_intervalles__
    par intervalle
        <<- /loc/ ->> par intervalles                               && Locution : « par intervalles ».

TEST: On va procéder {{par intervalle}}


# pied
__loc_pied__
    [>avoir|>perdre]  pieds
        <<- /loc/ -2>> pied                                         && Locution “\1 pied” : écrivez “pied” au singulier.

    à pieds
        <<- /loc/ not before("(?i)\\b(?:lit|fauteuil|armoire|commode|guéridon|tabouret|chaise)s?\\b") and not morph(>1, ">sculpter/")
        -2>> pied                                                   && Locution “à pied” : écrivez “pied” au singulier.|https://fr.wiktionary.org/wiki/%C3%A0_pied

    [à|aux] >pied >levé
        <<- /loc/ ->> au pied levé                                  && Locution adverbiale invariable.

TEST: ils ont tout simplement perdu {{pieds}}
TEST: ils y sont allés à {{pieds}}.
TEST: Elles ont accompli l’impossible, et de surcroît {{aux pieds levés}}
................................................................................
TEST: nous ferons autant de tests que {{possibles}}, c’est une nécessité.
TEST: rabaissons autant de connards prétentieux que {{possibles}}…


# quelque
__loc_quelque_temps__
    quelques temps
        <<- /loc/ ->> quelque temps                                 && Quelque temps : un temps indéterminé. Ici, “quelque” est un adverbe (donc invariable).|https://fr.wiktionary.org/wiki/quelque_temps

__loc_en_quelque_sorte__
    en quelques sortes
        <<- /loc/ ->> en quelque sorte                              && En quelque sorte : locution invariable.|https://fr.wiktionary.org/wiki/en_quelque_sorte

TEST: Il y a {{quelques temps}} que nous nous connaissons.
TEST: Je suis en vacances, {{en quelques sortes}}.


# rafales
__loc_par_en_rafales__
................................................................................
TEST: On peut {{rires}}, non ?
TEST: Faire {{rires}}, c’est compliqué.


__gn_rien_de_adj__
    [<start>|,|(]       rien  [de|d’]  @:A.*:[pf]¬:[me]:[si]
    n’ ?[en|y]¿ >avoir  rien  [de|d’]  @:A.*:[pf]¬:[me]:[si]
        <<- /gn/ --1>> =suggMasSing(\-1)                            && Avec “rien de” l’adjectif suivant devrait être au masculin singulier. Exemple : il n’y a plus rien de naturel ici, tout est bétonné.

TEST: il n’y a plus rien de {{naturelle}} dans cette bouffe.            ->> naturel
TEST: rien d’{{interdites}} dans cette mesure                           ->> interdit



!!!! Adverbes après verbe                                                                         !!
................................................................................
    >être  rendu  compte
        <<- !2>>

    /_VCint_  rendu  compte
        <<- morphVC(\1, ">être/") !2>>

    >être  [rendue|rendus|rendues]  compte
        <<- /ppas/ -2>> rendu                                                                       && Accord erroné : dans l’expression “se rendre compte”, “rendu” est invariable.

    /_VCint_  [rendue|rendus|rendues]  compte
        <<- /ppas/ morphVC(\1, ">être/") -2>> rendu                                                 && Accord erroné : dans l’expression “se rendre compte”, “rendu” est invariable.

TEST: Elles se sont {{rendues}} compte
TEST: Elles se sont parfois {{rendues}} compte de leur erreur
TEST: se sont-ils {{rendus}} compte
TEST: se sont-elles réellement {{rendus}} compte
TEST: La puissance publique s’en est-elle rendu compte ?
TEST: Elle s’est rendu compte qu’il s’était moqué d’elle une fois de plus.
................................................................................

__infi_laisser_avec_pronom__
    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  *WORD  [le|la|l’|les|un|une|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|chaque]
    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  *WORD  [<end>|,|)]
    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  *WORD  [dans|avec]
    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  *WORD  [autant|que|qu’|lorsque|quand|combien|comment|car|quoi|quoique|quoiqu’|puisque|puisqu’]
        <<- /infi/ morph(\3, ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q")
        -3>> =suggVerbInfi(\3)                                                          && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  [le|la|l’|les|leur]                                       *WORD
        <<- /infi/ morph(\-1, ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q|:N")
        --1>> =suggVerbInfi(\-1)                                                        && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  [en|me|m’|te|t’|se|s’|nous|vous|lui|y]                    *WORD
    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y]         *WORD
    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  [le|la|l’|les]                [lui|leur|en|y][nous|vous]  *WORD
    [me|m’|te|t’|lui|nous|vous|se|s’]  >laisser  [lui|leur|y]                  en                          *WORD
        <<- /infi/ morph(\-1, ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q")
        --1>> =suggVerbInfi(\-1)                                                        && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

    [le|la|l’|les|leur]  >laisser  *WORD  [le|la|l’|les|un|une|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|chaque]
    [le|la|l’|les|leur]  >laisser  *WORD  [<end>|,|)]
    [le|la|l’|les|leur]  >laisser  *WORD  [dans|avec]
    [le|la|l’|les|leur]  >laisser  *WORD  [autant|que|qu’|lorsque|quand|combien|comment|car|quoi|quoique|quoiqu’|puisque|puisqu’]
        <<- /infi/ not morph(\2, ":N") and morph(\3, ":V1.*:(?:Q|Ip.*:2p)", ">désemparer/.*:Q")
        -3>> =suggVerbInfi(\3)                                                          && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

    [le|la|l’|les|leur]  >laisser  [le|la|l’|les|leur]                                       *WORD
        <<- /infi/ not morph(\2, ":N") and morph(\-1, ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q|:N")
        --1>> =suggVerbInfi(\-1)                                                        && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

    [le|la|l’|les|leur]  >laisser  [en|me|m’|te|t’|se|s’|nous|vous|lui|y]                    *WORD
    [le|la|l’|les|leur]  >laisser  [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y]         *WORD
    [le|la|l’|les|leur]  >laisser  [le|la|l’|les]                [lui|leur|en|y][nous|vous]  *WORD
    [le|la|l’|les|leur]  >laisser  [lui|leur|y]                  en                          *WORD
        <<- /infi/ not morph(\2, ":N") and morph(\-1, ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q")
        --1>> =suggVerbInfi(\-1)                                                        && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  *WORD  [le|la|l’|les|un|une|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|quelques|chaque]
    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  *WORD  [<end>|,|)]
    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  *WORD  [dans|avec]
    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  *WORD  [autant|que|qu’|lorsque|quand|combien|comment|car|quoi|quoique|quoiqu’|puisque|puisqu’]
        <<- /infi/ morphVC(\1, ">laisser") and (morph(\2, ":V1.*:(?:Q|Ip.*:2[sp])", ">désemparer/.*:Q") or (not morph(<1, ":D") and morph(\-1, ":V1.*:Iq.*:[123]s", ">désemparer/.*:Q")))
        -2>> =suggVerbInfi(\2)                                                          && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  [le|la|l’|les|leur]                                       *WORD
        <<- /infi/ morphVC(\1, ">laisser") and (morph(\-1, ":V1.*:(?:Q|Ip.*:2[sp])", ">désemparer/.*:Q|:N") or (not morph(<1, ":D") and morph(\-1, ":V1.*:Iq.*:[123]s", ">désemparer/.*:Q|:N")))
        --1>> =suggVerbInfi(\-1)                                                        && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  [en|me|m’|te|t’|se|s’|nous|vous|lui|y]                    *WORD
    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y]         *WORD
    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  [le|la|l’|les]                [lui|leur|en|y][nous|vous]  *WORD
    [/-le|/-la|/-les|/-moi|/-toi|/-lui|/-nous|/-vous|/-leur]  [lui|leur|y]                  en                          *WORD
        <<- /infi/ morphVC(\1, ">laisser") and (morph(\-1, ":V1.*:(?:Q|Ip.*:2[sp])", ">désemparer/.*:Q") or (not morph(<1, ":D") and morph(\-1, ":V1.*:Iq.*:[123]s", ">désemparer/.*:Q")))
        --1>> =suggVerbInfi(\-1)                                                        && Après “laisser”, le verbe doit être à l’infinitif. Exemples : Laisser faire, laisser aller, laisser venir, etc.

TEST: Il se laisse trop {{allé}}, ce petit.                                                         ->> aller
TEST: elle me laisse vous {{aidés}}.                                                                ->> aider
TEST: nous vous laissons la {{dégorgée}}                                                            ->> dégorger
TEST: Nous nous laissions {{allé}} dans le plus complet abandon.                                    ->> aller
TEST: Je le laissais {{mangé}} autant qu’il le voulut.                                              ->> manger
TEST: on les laisse les {{chantés}} à leur guise                                                    ->> chanter
................................................................................
        && Confusion probable. Si « \2 \3 » est bien le sujet de l’action « \5 », vous confondez la préposition « à » avec « a » (forme conjuguée de « avoir ») et l’infinitif avec le participe passé (avec lesquels écrire un passé composé). Exemple : « il a réparé l’une des machines à réparer ».
        <<- /conf/ __also__ -5>> =suggVerbPpas(\5, ":m:s")
        && Confusion probable. Si « \2 \3 » est bien le sujet de l’action « \5 », vous confondez la préposition « à » avec « a » (forme conjuguée de « avoir ») et l’infinitif avec le participe passé (avec lesquels écrire un passé composé). Exemple : « il a réparé l’une des machines à réparer ».

    [<start>|,|dont|que|qu’|lorsque|lorsqu’|puisque|puisqu’|quoique|quoiqu’|quand|auquel|auxquels|auxquelles|lequel|laquelle|lesquels|lesquelles|duquel|desquels|desquelles]
        ||  @:D.*:s  @:[NA].*:[si]  [lui|nous|vous]  à  @:V1.*:Y
        <<- /conf/ space_after(\5, 1, 1) -5:6>> ="a "+suggVerbPpas(\6, ":m:s")
        && Confusion probable. Si « \3 \4 » est bien le sujet de l’action « \6 », vous confondez la préposition « à » avec « a » (forme conjuguée de « avoir ») et l’infinitif avec le participe passé (avec lesquels écrire un passé composé). Exemple : « il a réparé l’une des machines à réparer ».
        <<- /conf/ __else__ -5>> a
        && Confusion probable. Si « \3 \4 » est bien le sujet de l’action « \6 », vous confondez la préposition « à » avec « a » (forme conjuguée de « avoir ») et l’infinitif avec le participe passé (avec lesquels écrire un passé composé). Exemple : « il a réparé l’une des machines à réparer ».
        <<- /conf/ __also__ -6>> =suggVerbPpas(\6, ":m:s")
        && Confusion probable. Si « \3 \4 » est bien le sujet de l’action « \6 », vous confondez la préposition « à » avec « a » (forme conjuguée de « avoir ») et l’infinitif avec le participe passé (avec lesquels écrire un passé composé). Exemple : « il a réparé l’une des machines à réparer ».

TEST: quand Maria {{à parler}}, il a fallu ronger son frein                                 ->> a parlé
TEST: lorsque Siegfried {{à}} lentement {{avancer}}, ils ont ri, un peu                     ->> a|||avancé
TEST: Pauline nous {{à mentionner}} dans son document                                       ->> a mentionné
TEST: Élise lui {{à}} sèchement {{parler}} de leur incompétence                             ->> a|||parlé
TEST: lorsque le ciment {{à sécher}}, on peut poser le ragréage                             ->> a séché
TEST: puisque cet individu {{à}} “{{échouer}}”, c’est à nous de jouer                       ->> a|||échoué
................................................................................
!!!! OCR                                                                                          !!

# Participes passés
__ocr_être_participe_passé__
    >être  ~..es?$
        <<- /ocr/ not value(\1, "|êtres|") >>>
        <<- /ocr/ \2.endswith("e") and morph(\2, ":V1.*:Ip.*:[13]s", ":[GMA]") and not before("(?i)\\belle +(?:ne +|n’|)$")
        -2>> =suggVerbPpas(\2, ":m:s")                                                              && Erreur de numérisation ?
        <<- /ocr/ __else__ and \2.endswith("s") and morph(\2, ":V1.*:Ip.*:2s", ":[GMA]") and not before("(?i)\\belles +(?:ne +|n’|)$")
        -2>> =suggVerbPpas(\2, ":m:p")                                                              && Erreur de numérisation ?

TEST: __ocr__ vous serez {{couche}} en terre.
TEST: __ocr__ nous serons {{presses}} de monter à bord de ce train-ci.
TEST: __ocr__ Elle était toujours persuadée que B. serait {{acquitte}}
TEST: __ocr__ Alors il lui est {{remonte}} dessus
TEST: __ocr__ il n’était pas le seul à être {{remonte}} contre eux.
TEST: __ocr__ par terre et je suis {{retourne}} sur la tombe.
................................................................................
# Fonctionne avec nous serons, mais pas nous sommes (bug de JavaScript?)


__ocr_avoir_participe_passé__
    >avoir  ~..es?$
        <<- /ocr/ not value(\1, "|avoirs|") >>>
        <<- /ocr/ \2.endswith("e") and morph(\2, ":V1.*:Ip.*:[13]s", ":[GM]|>envie/")
        -2>> =suggVerbPpas(\2, ":m:s")                                                              && Erreur de numérisation ?
        <<- /ocr/ __else__ and \2.endswith("s") and morph(\2, ":V1.*:Ip.*:2s", ":[GM]")
        -2>> =suggVerbPpas(\2, ":m:p")                                                              && Erreur de numérisation ?

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


## Accord et incohérences
__ppas_sont_adj__
    sont  *WORD
        <<- /ppas/ morph(\2, ":V[123]", ":(?:N|A|Q|W|G|3p)") and not tag_before(\1, "_ceque_")
        -2>> =suggVerbPpas(\2, ":m:p")                      && Incohérence : “\2” n’est pas un participe passé.

TEST: après avoir mis à jour sont {{profile}}.
TEST: maintenir en confinement certaines personnes sous prétexte qu’elles sont à risques serait une mesure inconstitutionnelle et discriminatoire.



!!
................................................................................

TEST: elles ne s’y étaient pas {{donnée}}.
TEST: sans fin elles se sont succédé


__ppas_se_être__
    [me|m’|te|se|s’]  ?[y|en]¿  >être  *WORD
        <<- /ppas/ morph(\-1, ":(?:Y|[123][sp])", ":[QAG]") --1>> =suggVerbPpas(\-1)                && Incohérence. Après « s’être », le verbe doit être un participe passé.
        <<- /ppas/ __else__ and morph(\-2, ":[123]s") and morph(\-1, ":Q.*:p") and not tag_before(\1, "_que_") and not before("(?i)\\bon (?:ne |)$")
        --1>> =suggSing(\-1)                                                                        && Le participe passé devrait être au singulier.

    tu  t’  ?[y|en]¿  [es|étais|seras|serais|fus|fusses]  *WORD
        <<- /ppas/ morph(\-1, ":(?:Y|[123][sp])", ":[QAG]") --1>> =suggVerbPpas(\-1)                && Incohérence. Après « s’être », le verbe doit être un participe passé.

TEST: s’être toujours {{donner}} le mot.
TEST: je suis venu et me suis totalement {{donnés}} à cette œuvre
TEST: c’est de ce qui s’est {{passe}}.
TEST: s’était toujours {{passe}} comme ça avec elle
TEST: s’est {{approche}} de la penderie
TEST: terrorisant l’animal qui s’était {{cabre}}.
................................................................................
TEST: nous nous sommes faits plus grands que nous n’étions réellement.


!!!! Participes passés: se laisser +adjectif                                                      !!

__ppas_pronom_laisser_adj__
    [me|m’|te|t’|le|la|l’]  >laisser  @:A.*:p¬:(?:[YG]|[AQ].*:[is])
        <<- /ppas/ -3>> =suggSing(\3)                                       && Accord avec “\1” : “\3” devrait être au singulier.

TEST: Elle te laisse {{épuisés}} par la tâche.
TEST: Ils la laissèrent {{malades}}.
TEST: Ils la laissent prendre le train.
TEST: Elle te laisse finir le travail.
TEST: Je me laisse de quoi finir.
TEST: Il te laisse trois jours de délai.

    les  >laisser  @:[AQ].*:s¬:(?:[YG]|[AQ].*:[ip])
        <<- /ppas/ -3>> =suggPlur(\3)                                       && Accord avec “\1” : “\3” devrait être au singulier.

    nous  >laisser  @:[AQ].*:s¬:(?:[YG]|[AQ].*:[ip])
        <<- /ppas/ not \2.endswith("ons") -3>> =suggPlur(\3)                && Accord avec “\1” : “\3” devrait être au singulier.

TEST: je les laisse {{indifférent}}.
TEST: elle nous laissera {{perdu}} dans nos délires.
TEST: elle doit nous laisser tout à fait {{tranquille}}
TEST: je les laisse indifférents.
TEST: tu nous laisses indifférentes.
TEST: ils nous laisseront étourdis.
................................................................................
__ppas_je_tu_verbe_état__
    [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿          /_VE_                                                   @:[NAQ].*:p¬:[GWYsi]
    [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿          /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_     @:[NAQ].*:p¬:[GWYsi]
    [je|j’]    ?[ne|n’]¿ [me|m’] ?[en|y]¿  /_VEP_                                                  @:[NAQ].*:p¬:[GWYsi]
    tu         ?[ne|n’]¿ [te|t’] ?[en|y]¿  /_VEP_                                                  @:[NAQ].*:p¬:[GWYsi]
    [je|j’]    ?[ne|n’]¿ [me|m’] ?[en|y]¿  /_LVEPD_ ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_         @:[NAQ].*:p¬:[GWYsi]
    tu         ?[ne|n’]¿ [te|t’] ?[en|y]¿  /_LVEPD_ ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_         @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ not tag(<1, "_ceque_") --1>> =suggSing(\-1)                                  && Accord avec le sujet “\1” : “\-1” devrait être au singulier.

    [/-je|/-tu]  @:(?:[123][sp]|Y|[NAQ].*:p)¬:[GWsi]
        <<- /ppas/ morphVC(\1, ">(?:être|devenir|redevenir)/")
        -2>> =suggSing(\2)                                              && Accord avec “\1” : “\2” devrait être au singulier.

    [/-je|/-tu]  @:(?:[123][sp]|[NAQ].*:p)¬:[GWYsi]
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/")
        -2>> =suggSing(\2)                                              && Accord avec “\1” : “\2” devrait être au singulier.

    /-je  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_     @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ --1>> =suggSing(\-1)                                 && Accord avec le sujet “je” : “\-1” devrait être au singulier.

    /-tu  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_     @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ --1>> =suggSing(\-1)                                 && Accord avec le sujet “tu” : “\-1” devrait être au singulier.

    [me|m’]  /-je  @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ tag(\2, "_VEPI_") --1>> =suggSing(\-1)               && Accord avec le sujet “je” : “\-1” devrait être au singulier.

    [te|t’]  /-tu  @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ tag(\2, "_VEPI_") --1>> =suggSing(\-1)               && Accord avec le sujet “tu” : “\-1” devrait être au singulier.

    [me|m’]  /-je  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ tag(\2, "_LVEPID_") --1>> =suggSing(\-1)             && Accord avec le sujet “je” : “\-1” devrait être au singulier.

    [te|t’]  /-tu  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ tag(\2, "_LVEPID_") --1>> =suggSing(\-1)             && Accord avec le sujet “tu” : “\-1” devrait être au singulier.

TEST: j’étais {{perdus}}                                                          ->> perdu
TEST: j’aurais été {{perdus}} sans toi                                            ->> perdu
TEST: je n’étais pas {{perdus}}                                                   ->> perdu
TEST: Je suis {{contents}}.                                                       ->> content
TEST: J’en ai été {{contents}}.                                                   ->> content
TEST: Je parais {{contents}}.                                                     ->> content
................................................................................
        <<- !4>>

    ([il|ce|c’|ç’|quiconque]) ?[ne|n’]¿ ?[en|y]¿          (/_VE_)                                                @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([il|ce|c’|ç’|quiconque]) ?[ne|n’]¿ ?[en|y]¿          (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([il|quiconque])          ?[ne|n’]¿ [se|s’] ?[en|y]¿  (/_VEP_)                                               @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([il|quiconque])          ?[ne|n’]¿ [se|s’] ?[en|y]¿  (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_      @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
        <<- /ppas/ morph(\2, ":(?:[123]s|P)") and not tag(<1, "_ceque_")
        --1>> =suggMasSing(\-1)                                                                     && Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.

    /-il  @:(?:[123][sp]|Y|[NAQ].*:[pf])¬:(?:G|W|[me]:[si])
        <<- /ppas/ morphVC(\1, ">(?:être|devenir|redevenir)/.*:[123]s") and not value(\-1, "|légion|pléthore|néant|réalité|question|")
        -2>> =suggMasSing(\2)                                                                       && Accord avec le sujet “il” : “\2” devrait être au masculin singulier.

    /-il  @:(?:[123][sp]|[NAQ].*:[pf])¬:(?:G|W|Y|[me]:[si])
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/.*:[123]s") and not value(\-1, "|légion|pléthore|néant|réalité|question|")
        -2>> =suggMasSing(\2)                                                                       && Accord avec le sujet “il” : “\2” devrait être au masculin singulier.

    /-il  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
        <<- /ppas/ tag(\1, "_LVEID_") and morphVC(\1, ":3s") and not value(\-1, "|légion|pléthore|néant|réalité|question|")
        --1>> =suggMasSing(\-1)                                                                     && Accord avec le sujet “il” : “\-1” devrait être au masculin singulier.

    [se|s’]  /-il  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
        <<- /ppas/ tag(\2, "_VEPI_") and morphVC(\2, ":3s") and not value(\-1, "|légion|pléthore|néant|réalité|question|")
        --1>> =suggMasSing(\-1)                                                                     && Accord avec le sujet “il” : “\-1” devrait être au masculin singulier.

    [se|s’]  /-il  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
        <<- /ppas/ tag(\2, "_LVEPID_") and morphVC(\2, ":3s") and not value(\-1, "|légion|pléthore|néant|réalité|question|")
        --1>> =suggMasSing(\-1)                                                                     && Accord avec le sujet “il” : “\-1” devrait être au masculin singulier.

    /-ce  *WORD
        <<- /ppas/ morphVC(\1, ":V0e.*:3s") and morph(\2, ":(?:[123][sp]|[AQ].*:[pf])", ":(?:G|W|Y|[me]:[si])")
        -2>> =suggMasSing(\2)                                           && Accord avec le sujet “\1” : “\2” devrait être au masculin singulier.
        <<- /ppas/ __else__ and morphVC(\1, ":V0e.*:3p") and morph(\2, ":(?:[123][sp]|[AQ].*:[sf])", ":(?:G|W|Y|[me]:[pi])")
        -2>> =suggMasPlur(\2)                                           && Accord avec le sujet “\1” : “\2” devrait être au masculin pluriel.

    ([ça|ceci|cela|celui-ci|celui-là|aucun|chacun]) ?[ne|n’]¿ ?[en|y]¿          (/_VE_)                                                 @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([ça|ceci|cela|celui-ci|celui-là|aucun|chacun]) ?[ne|n’]¿ ?[en|y]¿          (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([ça|ceci|cela|celui-ci|celui-là|aucun|chacun]) ?[ne|n’]¿ [se|s’] ?[en|y]¿  (/_VEP_)                                                @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([ça|ceci|cela|celui-ci|celui-là|aucun|chacun]) ?[ne|n’]¿ [se|s’] ?[en|y]¿  (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
        <<- /ppas/ not tag(\1, "_enum_") and morph(\2, ":(?:3s|P)") and not morph(<1, ":[RV]|>(?:et|ou)/") and not tag(<1, "_ceque_")
        --1>> =suggMasSing(\-1)                                                                                         && Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.

    [<start>|,|(|/_start_] tout ?[ne|n’]¿ ?[en|y]¿          (/_VE_)                                                 @:[AQ].*:[fp]¬:(?:[GWYN]|[me]:[si])
    [<start>|,|(|/_start_] tout ?[ne|n’]¿ ?[en|y]¿          (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[AQ].*:[fp]¬:(?:[GWYN]|[me]:[si])
    [<start>|,|(|/_start_] tout ?[ne|n’]¿ [se|s’] ?[en|y]¿  (/_VEP_)                                                @:[AQ].*:[fp]¬:(?:[GWYN]|[me]:[si])
    [<start>|,|(|/_start_] tout ?[ne|n’]¿ [se|s’] ?[en|y]¿  (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[AQ].*:[fp]¬:(?:[GWYN]|[me]:[si])
        <<- /ppas/ morph(\1, "[123][sp]") --1>> =suggMasSing(\-1)                                                       && Accord avec le sujet “tout” : “\-1” devrait être au masculin singulier.

    lui [ne|n’|y]                   /_VE_                                                   @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    lui [ne|n’|y]                   /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_     @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    lui n’ [en|y]                   /_VE_                                                   @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    lui n’ [en|y]                   /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_     @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    lui ?[ne|n’]¿ [se|s’] ?[en|y]¿  /_VEP_                                                  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    lui ?[ne|n’]¿ [se|s’] ?[en|y]¿  /_LVEPD_ ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_         @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
        <<- /ppas/ not morph(<1, ":[RV]") and not tag(<1, "_ceque_") --1>> =suggMasSing(\-1)    && Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.

    ([lui|ça|ceci|cela|ce|c’|ç’|celui|celui-ci|celui-là]) qui ?[ne|n’]¿ ?[en|y]¿         (/_VE_)                                                @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([lui|ça|ceci|cela|ce|c’|ç’|celui|celui-ci|celui-là]) qui ?[ne|n’]¿ ?[en|y]¿         (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([lui|ça|ceci|cela|ce|c’|ç’|celui|celui-ci|celui-là]) qui ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_VEP_)                                               @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    ([lui|ça|ceci|cela|ce|c’|ç’|celui|celui-ci|celui-là]) qui ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_      @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
        <<- /ppas/ morph(\2, ":(?:[123]s|P)") and not tag(<1, "_ceque_") --1>> =suggMasSing(\-1) && Accord avec le sujet “\1 qui” : “\-1” devrait être au masculin singulier.

    lequel ?[ne|n’]¿ ?[en|y]¿           /_VE_                                                 @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    lequel ?[ne|n’]¿ ?[en|y]¿           /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    lequel ?[ne|n’]¿ [se|s’] ?[en|y]¿   /_VEP_                                                @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
    lequel ?[ne|n’]¿ [se|s’] ?[en|y]¿   /_LVEPD_ ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:(?:N.*:p|[AQ])¬:(?:[GWY]|[me]:[si])
        <<- /ppas/ not morph(<1, ":R") --1>> =suggMasSing(\-1)                                                          && Accord avec le sujet “\1” : “\-1” devrait être au masculin singulier.

    [<start>|,|(|/_start_]  ?l’¿ un  ?[ne|n’]¿ ?[en|y]¿         (/_VE_)                                                 @:[AQ]¬:(?:[GWM]|[me]:[si])
    [<start>|,|(|/_start_]  ?l’¿ un  ?[ne|n’]¿ ?[en|y]¿         (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[AQ]¬:(?:[GWM]|[me]:[si])
    [<start>|,|(|/_start_]  ?l’¿ un  ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_VEP_)                                                @:[AQ]¬:(?:[GWM]|[me]:[si])
    [<start>|,|(|/_start_]  ?l’¿ un  ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[AQ]¬:(?:[GWM]|[me]:[si])
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and morph(\1, ":(?:[123]s|P)")
        --1>> =suggMasSing(\-1)                                                                     && Accord erroné : “un” et “\-1” ne sont pas accordés, l’adjectif devrait être au masculin singulier.

TEST: un des leurs restait {{introuvables}}
TEST: Il semble être {{partis}} pour toujours.                                    ->> parti
TEST: Il n’est pas {{demander}} à chacun de participer.
TEST: Il n’en était pas {{contents}}.                                             ->> content
TEST: Il est {{laisser}} à lui-même
TEST: il continue de paraître {{pieuse}} aux yeux des bigts                       ->> pieux
................................................................................

__ppas_3sg_fem_verbe_état__
    ([elle|celle-ci|celle-là|aucune|chacune]) ?[ne|n’]¿ ?[en|y]¿         (/_VE_)                                                @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    ([elle|celle-ci|celle-là|aucune|chacune]) ?[ne|n’]¿ ?[en|y]¿         (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    ([elle|celle-ci|celle-là|aucune|chacune]) ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_VEP_)                                               @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    ([elle|celle-ci|celle-là|aucune|chacune]) ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_      @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
        <<- /ppas/ not tag(\1, "_enum_") and not morph(<1, ":[RV]|>(?:et|ou)/") and morph(\2, ":(?:[123]s|P)") and not tag(<1, "_ceque_")
        --1>> =suggFemSing(\-1)                                                                     && Accord avec le sujet “\1” : “\-1” devrait être au féminin singulier.

    ([elle|celle|celle-ci|celle-là|aucune|chacune]) qui ?[ne|n’]¿ ?[en|y]¿         (/_VE_)                                                 @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    ([elle|celle|celle-ci|celle-là|aucune|chacune]) qui ?[ne|n’]¿ ?[en|y]¿         (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    ([elle|celle|celle-ci|celle-là|aucune|chacune]) qui ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_VEP_)                                                @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    ([elle|celle|celle-ci|celle-là|aucune|chacune]) qui ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
        <<- /ppas/ morph(\2, ":(?:[123]s|P)") and not tag(<1, "_ceque_")
        --1>> =suggFemSing(\-1)                                                                     && Accord avec le sujet “\1 qui” : “\-1” devrait être au féminin singulier.

    /-elle  @:(?:[123][sp]|Y|[NAQ].*:[pm])¬:(?:G|W|[fe]:[si])
        <<- /ppas/ morphVC(\1, ">(?:être|devenir|redevenir)/.*:[123]s") and not value(<1, "|se|s’|")
        -2>> =suggFemSing(\2)                                                                       && Accord avec le sujet “elle” : “\2” devrait être au féminin singulier.

    /-elle  @:(?:[123][sp]|[NAQ].*:[pm])¬:(?:G|W|Y|[fe]:[si])
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/.*:[123]s")
        -2>> =suggFemSing(\2)                                                                       && Accord avec le sujet “elle” : “\2” devrait être au féminin singulier.

    /-elle  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
        <<- /ppas/ tag(\1, "_LVEID_") and morphVC(\1, ":3s") and not value(\-1, "|néant|")
        --1>> =suggFemSing(\-1)                                                                     && Accord avec le sujet “elle” : “\-1” devrait être au féminin singulier.

    [se|s’]  /-elle  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
        <<- /ppas/ tag(\2, "_VEPI_") and morphVC(\2, ":3s") and not value(\-1, "|néant|")
        --1>> =suggFemSing(\-1)                                                                     && Accord avec le sujet “elle” : “\-1” devrait être au féminin singulier.

    [se|s’]  /-elle  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
        <<- /ppas/ tag(\2, "_LVEPID_") and morphVC(\2, ":3s") and not value(\-1, "|néant|")
        --1>> =suggFemSing(\-1)                                                                     && Accord avec le sujet “elle” : “\-1” devrait être au féminin singulier.

    laquelle ?[ne|n’]¿ ?[en|y]¿         /_VE_                                                   @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    laquelle ?[ne|n’]¿ ?[en|y]¿         /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_     @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    laquelle ?[ne|n’]¿ [se|s’] ?[en|y]¿ /_VEP_                                                  @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
    laquelle ?[ne|n’]¿ [se|s’] ?[en|y]¿ /_LVEPD_ ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_         @:(?:N.*:p|[AQ])¬:(?:[GWY]|[fe]:[si])
        <<- /ppas/ not morph(<1, ":R") --1>> =suggFemSing(\-1)                                      && Accord avec le sujet “\1” : “\-1” devrait être au féminin singulier.

    [<start>|,|(|/_start_]  ?l’¿ une  ?[ne|n’]¿  ?[en|y]¿           (/_VE_)                                                 @:[AQ]¬:(?:[GWM]|[fe]:[si])
    [<start>|,|(|/_start_]  ?l’¿ une  ?[ne|n’]¿  ?[en|y]¿           (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[AQ]¬:(?:[GWM]|[fe]:[si])
    [<start>|,|(|/_start_]  ?l’¿ une  ?[ne|n’]¿  [se|s’] ?[en|y]¿   (/_VEP_)                                                @:[AQ]¬:(?:[GWM]|[fe]:[si])
    [<start>|,|(|/_start_]  ?l’¿ une  ?[ne|n’]¿  [se|s’] ?[en|y]¿   (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[AQ]¬:(?:[GWM]|[fe]:[si])
        <<- /ppas/ not value(\-1, "|néant|") and morph(\1, ":(?:[123]s|P)")
        --1>> =suggFemSing(\-1)                                                                     && Accord erroné : “une” et “\-1” ne sont pas accordés, l’adjectif devrait être au féminin singulier.

TEST: elle a été {{perdu}} par ses parents                                          ->> perdue
TEST: Elle semble être totalement {{ruiné}}.                                        ->> ruinée
TEST: Elle est complètement {{fol}}.                                                ->> folle
TEST: elle n’est pas {{petits}}                                                     ->> petite
TEST: Elle en est de plus en plus {{belles}}.                                       ->> belle
TEST: elle n’en est pas {{fâché}}                                                   ->> fâchée
................................................................................

__ppas_iel_verbe_état__
    iel ?[ne|n’]¿ ?[en|y]¿          (/_VE_)                                                 @:[NAQ].*:p¬:[GWYsi]
    iel ?[ne|n’]¿ ?[en|y]¿          (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[NAQ].*:p¬:[GWYsi]
    iel ?[ne|n’]¿ [se|s’] ?[en|y]¿  (/_VEP_)                                                @:[NAQ].*:p¬:[GWYsi]
    iel ?[ne|n’]¿ [se|s’] ?[en|y]¿  (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and not morph(<1, ":[RV]") and morph(\1, ":(?:3s|P)") and not tag(<1, "_ceque_")
        --1>> =suggSing(\-1)                                                                        && Accord avec le sujet “iel” : “\-1” devrait être au pluriel.

    /-iel  @:(?:[123][sp]|Y|[NAQ].*:p)¬:[GWsi]
        <<- /ppas/ morphVC(\1, ">(?:être|devenir|redevenir)/.*:[123]s")
        -2>> =suggSing(\2)                                                                          && Accord avec le sujet “iel” : “\2” devrait être au singulier.

    /-iel  @:(?:[123][sp]|[NAQ].*:p)¬:[GWYsi]
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/.*:[123]s")
        -2>> =suggSing(\2)                                                                          && Accord avec le sujet “iel” : “\2” devrait être au singulier.

    /-iel  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_  @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ morphVC(\1, ":3s") --1>> =suggSing(\-1)                                          && Accord avec le sujet “iel” : “\-1” devrait être au singulier.

    [se|s’]  /-iel  @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ tag(\2, "_VEPI_") and morphVC(\2, ":3s") --1>> =suggSing(\-1)                    && Accord avec le sujet “iel” : “\-1” devrait être au singulier.

    [se|s’]  /-iel  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:[NAQ].*:p¬:[GWYsi]
        <<- /ppas/ tag(\2, "_LVEPID_") and morphVC(\2, ":3s") --1>> =suggSing(\-1)                  && Accord avec le sujet “iel” : “\-1” devrait être au singulier.

TEST: iel paraît {{faibles}}
TEST: iel paraît avoir été complètement {{prises}} de panique.
TEST: iel doit avoir été bien {{méchants}} pour être traité de la sorte.
TEST: iel ne peut devenir aussi {{perspicaces}} avec tout cet alcool ingurgité.
TEST: iel pense être {{désirés}}
TEST: iel n’y doit pas être {{instruits}}, mais…
................................................................................

__ppas_nous_verbe_état__
    nous ?[ne|n’]¿ ?[en|y]¿         (/_VE_)                                                 @:[NAQ].*:s¬:[GWYpi]
    nous ?[ne|n’]¿ ?[en|y]¿         (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[NAQ].*:s¬:[GWYpi]
    nous ?[ne|n’]¿ nous ?[en|y]¿    (/_VEP_)                                                @:[NAQ].*:s¬:[GWYpi]
    nous ?[ne|n’]¿ nous ?[en|y]¿    (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[NAQ].*:s¬:[GWYpi]
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and not morph(<1, ":[RV]|>(?:ne|nous)/") and morph(\1, ":(?:1p|P)") and not tag(<1, "_ceque_")
        --1>> =suggPlur(\-1)                                                                        && Accord avec le sujet “nous” : “\-1” devrait être au pluriel.

    /-nous  @:(?:[123][sp]|Y|[NAQ].*:s)¬:[GWpi]|>dire/
        <<- /ppas/ morphVC(\1, ">(?:être|devenir|redevenir)/.*:1p") and not value(\-1, "|légion|pléthore|néant|réalité|") and not value(<1, "|nous|")
        -2>> =suggPlur(\2)                                                                          && Accord avec le sujet “nous” : “\2” devrait être au pluriel.

    /-nous  @:(?:[123][sp]|[NAQ].*:s)¬:[GWYpi]|>dire/
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/.*:1p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        -2>> =suggPlur(\2)                                                                          && Accord avec le sujet “nous” : “\2” devrait être au pluriel.

    /-nous  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_  @:[NAQ].*:s¬:[GWYpi]
        <<- /ppas/ tag(\1, "_LVEID_") and morphVC(\1, ":1p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggPlur(\-1)                                                                        && Accord avec le sujet “nous” : “\-1” devrait être au pluriel.

    nous  /-nous  @:[NAQ].*:s¬:[GWYpi]
        <<- /ppas/ tag(\2, "_VEPI_") and morphVC(\2, ":1p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggPlur(\-1)                                                                        && Accord avec le sujet “nous” : “\-1” devrait être au pluriel.

    nous  /-nous  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:[NAQ].*:s¬:[GWYpi]
        <<- /ppas/ tag(\2, "_LVEPID_") and morphVC(\2, ":1p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggPlur(\-1)                                                                        && Accord avec le sujet “nous” : “\-1” devrait être au pluriel.

TEST: nous paraissons {{faible}}
TEST: Nous paraissons avoir été complètement {{prise}} de panique.                          ->> prises
TEST: Nous devons avoir été bien {{méchant}} pour être traité de la sorte.
TEST: nous ne pouvons devenir aussi {{perspicace}} avec tout cet alcool ingurgité.
TEST: nous pensons être {{désiré}}
TEST: nous n’y devons pas être {{instruit}}, mais…
................................................................................

__ppas_3pl_mas_verbe_état__
    ils ?[ne|n’]¿ ?[en|y]¿          /_VE_                                                   @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ils ?[ne|n’]¿ ?[en|y]¿          /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_     @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ils ?[ne|n’]¿ [se|s’] ?[en|y]¿  /_VEP_                                                  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ils ?[ne|n’]¿ [se|s’] ?[en|y]¿  /_LVEPD_ ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_         @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and not tag(<1, "_ceque_")
        --1>> =suggMasPlur(\-1)                                                                     && Accord avec le sujet “\1” : “\-1” devrait être au masculin pluriel.

    /-ils  @:(?:[123][sp]|Y|[NAQ].*:[sf])¬:(?:G|W|[me]:[pi])|>dire/
        <<- /ppas/ morphVC(\1, ">(?:être|devenir|redevenir)/.*:3p") and not value(\-1, "|légion|pléthore|néant|réalité|") and not value(<1, "|se|s’|")
        -2>> =suggMasPlur(\2)                                                                       && Accord avec le sujet “ils” : “\2” devrait être au masculin pluriel.

    /-ils  @:(?:[123][sp]|[NAQ].*:[sf])¬:(?:G|W|Y|[me]:[pi])|>dire/
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/.*:3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        -2>> =suggMasPlur(\2)                                                                       && Accord avec le sujet “ils” : “\2” devrait être au masculin pluriel.

    /-ils  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
        <<- /ppas/ tag(\1, "_LVEID_") and morphVC(\1, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggMasPlur(\-1)                                                                     && Accord avec le sujet “ils” : “\-1” devrait être au masculin pluriel.

    [se|s’]  /-ils  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
        <<- /ppas/ tag(\2, "_VEPI_") and morphVC(\2, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggMasPlur(\-1)                                                                     && Accord avec le sujet “ils” : “\-1” devrait être au masculin pluriel.

    [se|s’]  /-ils  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
        <<- /ppas/ tag(\2, "_LVEPID_") and morphVC(\2, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggMasPlur(\-1)                                                                     && Accord avec le sujet “ils” : “\-1” devrait être au masculin pluriel.

    ([eux|ceux-ci|ceux-là|certains|quelques-uns|maints]) ?[ne|n’]¿ ?[en|y]¿            (/_VE_)                                                 @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ([eux|ceux-ci|ceux-là|certains|quelques-uns|maints]) ?[ne|n’]¿ ?[en|y]¿            (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ([eux|ceux-ci|ceux-là|certains|quelques-uns|maints]) ?[ne|n’]¿ [se|s’] ?[en|y]¿    (/_VEP_)                                                @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ([eux|ceux-ci|ceux-là|certains|quelques-uns|maints]) ?[ne|n’]¿ [se|s’] ?[en|y]¿    (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
        <<- /ppas/ not morph(<1, ":[RV]") and morph(\2, ":(?:3p|P)") and not value(\-1, "|légion|pléthore|néant|réalité|") and not tag(<1, "_ceque_")
        --1>> =suggMasPlur(\-1)                                                                     && Accord avec le sujet “\1” : “\-1” devrait être au masculin pluriel.

    ([eux|ceux|ceux-ci|ceux-là|certains|quelques-uns|maints]) qui ?[ne|n’]¿ ?[en|y]¿           (/_VE_)                                                 @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ([eux|ceux|ceux-ci|ceux-là|certains|quelques-uns|maints]) qui ?[ne|n’]¿ ?[en|y]¿           (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ([eux|ceux|ceux-ci|ceux-là|certains|quelques-uns|maints]) qui ?[ne|n’]¿ [se|s’] ?[en|y]¿   (/_VEP_)                                                @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    ([eux|ceux|ceux-ci|ceux-là|certains|quelques-uns|maints]) qui ?[ne|n’]¿ [se|s’] ?[en|y]¿   (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
        <<- /ppas/ morph(\2, ":(?:3p|P)") and not value(\-1, "|légion|pléthore|néant|réalité|") and not tag(<1, "_ceque_")
        --1>> =suggMasPlur(\-1)                                                                     && Accord avec le sujet “\1” : “\-1” devrait être au masculin pluriel.

    lesquels ?[ne|n’]¿ ?[en|y]¿         /_VE_                                                   @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    lesquels ?[ne|n’]¿ ?[en|y]¿         /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_     @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    lesquels ?[ne|n’]¿ [se|s’] ?[en|y]¿ /_VEP_                                                  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
    lesquels ?[ne|n’]¿ [se|s’] ?[en|y]¿ /_LVEPD_ ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_         @:(?:N.*:s|[AQ])¬:(?:[GWY]|[me]:[pi])
        <<- /ppas/ not morph(<1, ":R") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggMasPlur(\-1)                                                                     && Accord avec le sujet “\1” : “\-1” devrait être au masculin pluriel.

TEST: ils sont {{parti}}.                                                           ->> partis
TEST: ils sont {{parties}}.                                                         ->> partis
TEST: ils restaient {{méfiantes}}                                                   ->> méfiants
TEST: Ils semblent avoir été {{attaqué}} par des soldats.                           ->> attaqués
TEST: Ils sont de manière si étonnante et si admirable {{arrivé}} à ce résultat…
TEST: Ils sont, semble-t-il, {{parti}} à la chasse.
................................................................................

__ppas_3pl_fem_verbe_état__
    ([elles|celles-ci|celles-là|certaines|quelques-unes|maintes]) ?[ne|n’]¿ ?[en|y]¿            (/_VE_)                                                 @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    ([elles|celles-ci|celles-là|certaines|quelques-unes|maintes]) ?[ne|n’]¿ ?[en|y]¿            (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    ([elles|celles-ci|celles-là|certaines|quelques-unes|maintes]) ?[ne|n’]¿ [se|s’] ?[en|y]¿    (/_VEP_)                                                @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    ([elles|celles-ci|celles-là|certaines|quelques-unes|maintes]) ?[ne|n’]¿ [se|s’] ?[en|y]¿    (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
        <<- /ppas/ not morph(<1, ":[RV]") and morph(\2, ":(?:3p|P)") and not value(\-1, "|légion|pléthore|néant|réalité|") and not tag(<1, "_ceque_")
        --1>> =suggFemPlur(\-1)                                                                     && Accord avec le sujet “\1” : “\-1” devrait être au féminin pluriel.

    ([elles|celles|celles-ci|celles-là|certaines|quelques-unes|maintes]) qui ?[ne|n’]¿ ?[en|y]¿         (/_VE_)                                                 @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    ([elles|celles|celles-ci|celles-là|certaines|quelques-unes|maintes]) qui ?[ne|n’]¿ ?[en|y]¿         (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    ([elles|celles|celles-ci|celles-là|certaines|quelques-unes|maintes]) qui ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_VEP_)                                                @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    ([elles|celles|celles-ci|celles-là|certaines|quelques-unes|maintes]) qui ?[ne|n’]¿ [se|s’] ?[en|y]¿ (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
        <<- /ppas/ morph(\2, ":(?:3p|P)") and not value(\-1, "|légion|pléthore|néant|réalité|") and not tag(<1, "_ceque_")
        --1>> =suggFemPlur(\-1)                                                                     && Accord avec le sujet “\1 qui” : “\-1” devrait être au féminin pluriel.

    /-elles  @:(?:[123][sp]|Y|[NAQ].*:[sm])¬:(?:G|W|[fe]:[pi])|>dire/
        <<- /ppas/ morphVC(\1, ">(?:être|devenir|redevenir)/.*:3p") and not value(\-1, "|légion|pléthore|néant|réalité|") and not value(<1, "|se|s’|")
        -2>> =suggFemPlur(\2)                                                                       && Accord avec le sujet “elles” : “\2” devrait être au féminin pluriel.

    /-elles  @:(?:[123][sp]|[NAQ].*:[sm])¬:(?:G|W|Y|[fe]:[pi])|>dire/
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/.*:3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        -2>> =suggFemPlur(\2)                                                                       && Accord avec le sujet “elles” : “\2” devrait être au féminin pluriel.

    /-elles  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
        <<- /ppas/ tag(\1, "_LVEID_") and morphVC(\1, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggFemPlur(\-1)                                                                     && Accord avec le sujet “elles” : “\-1” devrait être au féminin pluriel.

    [se|s’]  /-elles  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
        <<- /ppas/ tag(\2, "_VEPI_") and morphVC(\2, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggFemPlur(\-1)                                                                     && Accord avec le sujet “elles” : “\-1” devrait être au féminin pluriel.

    [se|s’]  /-elles  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
        <<- /ppas/ tag(\2, "_LVEPID_") and morphVC(\2, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggFemPlur(\-1)                                                                     && Accord avec le sujet “elles” : “\-1” devrait être au féminin pluriel.

    lesquelles ?[ne|n’]¿ ?[en|y]¿           /_VE_                                                   @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    lesquelles ?[ne|n’]¿ ?[en|y]¿           /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_     @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    lesquelles ?[ne|n’]¿ [se|s’] ?[en|y]¿   /_VEP_                                                  @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
    lesquelles ?[ne|n’]¿ [se|s’] ?[en|y]¿   /_LVEPD_ ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_         @:(?:N.*:s|[AQ])¬:(?:[GWY]|[fe]:[pi])
        <<- /ppas/ not morph(<1, ":R") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggFemPlur(\-1)                                                                     && Accord avec le sujet “\1” : “\-1” devrait être au féminin pluriel.

TEST: elles n’ont tout de même pas été {{attaqué}}                                  ->> attaquées
TEST: Elles sont {{affamé}}.                                                        ->> affamées
TEST: Celles-là sont {{folle}}.
TEST: elles veulent être {{différente}}
TEST: Elle peut être {{observées}}.
TEST: Elles ne peuvent pas être {{observée}}.
................................................................................

__ppas_3pl_épi_verbe_état__
    ([iels|plusieurs]) ?[ne|n’]¿ ?[en|y]¿           (/_VE_)                                                 @:[NAQ].*:s¬:[GWYpi]
    ([iels|plusieurs]) ?[ne|n’]¿ ?[en|y]¿           (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[NAQ].*:s¬:[GWYpi]
    ([iels|plusieurs]) ?[ne|n’]¿ [se|s’] ?[en|y]¿   (/_VEP_)                                                @:[NAQ].*:s¬:[GWYpi]
    ([iels|plusieurs]) ?[ne|n’]¿ [se|s’] ?[en|y]¿   (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[NAQ].*:s¬:[GWYpi]
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and not morph(<1, ":[RV]") and morph(\2, ":(?:3p|P)") and not tag(<1, "_ceque_")
        --1>> =suggPlur(\-1)                                                                        && Accord avec le sujet “\1” : “\-1” devrait être au pluriel.

    /-iels  @:(?:[123][sp]|Y|[NAQ].*:s)¬:[GWpi]|>dire/
        <<- /ppas/ morphVC(\1, ">(?:être|devenir|redevenir)/.*:3p") and not value(\-1, "|légion|pléthore|néant|réalité|") and not value(<1, "|se|s’|")
        -2>> =suggPlur(\2)                                                                          && Accord avec le sujet “iels” : “\2” devrait être au pluriel.

    /-iels  @:(?:[123][sp]|[NAQ].*:s)¬:[GWYpi]|>dire/
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/.*:3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        -2>> =suggPlur(\2)                                                                          && Accord avec le sujet “iels” : “\2” devrait être au pluriel.

    /-iels  ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ ?/_LVEI_¿ /_LVEIF_  @:[NAQ].*:s¬:[GWYpi]
        <<- /ppas/ tag(\1, "_LVEID_") and morphVC(\1, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggPlur(\-1)                                                                        && Accord avec le sujet “iels” : “\-1” devrait être au pluriel.

    [se|s’]  /-iels  @:[NAQ].*:s¬:[GWYpi]
        <<- /ppas/ tag(\2, "_VEPI_") and morphVC(\2, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggPlur(\-1)                                                                        && Accord avec le sujet “iels” : “\-1” devrait être au pluriel.

    [se|s’]  /-iels  ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ ?/_LVEPI_¿ /_LVEPIF_  @:[NAQ].*:s¬:[GWYpi]
        <<- /ppas/ tag(\2, "_LVEPID_") and morphVC(\2, ":3p") and not value(\-1, "|légion|pléthore|néant|réalité|")
        --1>> =suggPlur(\-1)                                                                        && Accord avec le sujet “iels” : “\-1” devrait être au pluriel.

TEST: iels paraissent {{faible}}
TEST: iels paraissent avoir été complètement {{prise}} de panique.                  ->> prises
TEST: iels doivent avoir été bien {{méchant}} pour être traité de la sorte.
TEST: iels ne peuvent devenir aussi {{perspicace}} avec tout cet alcool ingurgité.
TEST: iels pensent être {{désiré}}
TEST: iels n’y doivent pas être {{instruit}}, mais…
................................................................................
TEST: C’eût été foncer tête baissée dans la gueule du loup.
TEST: Leur passe-temps, ça a été faire n’importe quoi.
TEST: Ne pas ressortir le livre le plus remarqué de la collaboration aurait été faire acte de censure.
TEST: Partir aurait été assurer sa survie.
TEST: J’ai été conseiller régional


!!!! Participes passés: accord en nombre avec la conjugaison de « être » (et équivalent)          !!

__ppas_être_accord_sing!3__
    (*WORD)      ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_VE_)                                                @:[NAQ].*:p¬:[GMWYsi]
    (*WORD)      ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_  @:[NAQ].*:p¬:[GMWYsi]
        <<- /ppas/ not morph(\1, ":G") and morph(\2, ":[123]s", ":(?:C|N.*:p|[123]p)")
        --1>> =suggSing(\-1)                                                                        && Accord avec la forme verbale “\2” : “\-1” devrait être au singulier.

    [<start>|,|(]  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_VE_)                                                  @:[NAQ].*:p¬:[GMWYsi]
    [<start>|,|(]  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_    @:[NAQ].*:p¬:[GMWYsi]
        <<- /ppas/ morph(\1, ":[123]s", ":(?:C|N.*:p|[123]p)") --1>> =suggSing(\-1)                 && Accord avec la forme verbale “\1” : “\-1” devrait être au singulier.

TEST: cette petite chienne à poil roux avait été longtemps {{malades}}.
TEST: Ce mâle malingre et rachitique qui est resté {{arrogants}} ?
TEST: folle qui n’affirme pas avoir été {{frappés}}.
TEST: homme qui n’en souhaite pas rester {{amnésiques}}.
TEST: Qui n’en semble pas être devenu {{malades}} ?
TEST: C’est le crime qui se vante, qui adore avoir semblé {{légitimes}}.
................................................................................
TEST: Non ! Nous, musulmans, ne sommes pas persécutés en France. Nous sommes dans notre pays des citoyens à part entière.


__ppas_être_accord_plur!3__
    (*WORD)      ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_VE_)                                                @:[NAQ].*:s¬:[GMWYpi]
    (*WORD)      ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_  @:[NAQ].*:s¬:[GMWYpi]
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and not morph(\1, ":G") and morph(\2, ":[13]p")
        --1>> =suggPlur(\-1)                                                                                            && Accord avec la forme verbale “\2” : “\-1” devrait être au pluriel.

    [<start>|,|(]  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_VE_)                                                  @:[NAQ].*:s¬:[GMWYpi]
    [<start>|,|(]  ?qui¿  ?[ne|n’]¿  ?[en|y]¿  (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_    @:[NAQ].*:s¬:[GMWYpi]
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and morph(\1, ":[13]p") --1>> =suggPlur(\-1)                && Accord avec la forme verbale “\1” : “\-1” devrait être au pluriel.

TEST: lui et son staff y sont très {{favorable}}
TEST: Mais cet homme et son compagnon affirment être redevenus {{humble}}.
TEST: cette femme et cet homme n’affirment pas avoir été {{courtoise}}.
TEST: un chat et un chien qui n’en demeurent pas moins {{attaché}} à leur maître
TEST: des avocates qui n’imaginent pas devenir {{inapte}} pour si peu.
TEST: ces hommes qui n’y semblent pas avoir été {{élégant}}.
................................................................................

__ppas_sujet_être_accord_singulier__
    [<start>|,|(|/_start_]  [un|le|ce|cet]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿          (/_VE_)                                                @:[AQ]¬:(?:[GWM]|[me]:[si])
    [<start>|,|(|/_start_]  [un|le|ce|cet]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿          (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_  @:[AQ]¬:(?:[GWM]|[me]:[si])
    [<start>|,|(|/_start_]  [un|le|ce|cet]  (*WORD)  ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿  (/_VEP_)                                               @:[AQ]¬:(?:[GWM]|[me]:[si])
    [<start>|,|(|/_start_]  [un|le|ce|cet]  (*WORD)  ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿  (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_      @:[AQ]¬:(?:[GWM]|[me]:[si])
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and morph(\1, ":[NA].*:[me]", ":[GW]") and (morph(\2, ":[123]s") or (not tag(\1, "_enum_") and morph(\2, ":P")))
        --1>> =suggMasSing(\-1)                                                                     && Accord erroné : “\1” et “\-1” ne sont pas accordés.

    [<start>|,|(|/_start_]  [une|la|ma|ta|sa|cette]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿         (/_VE_)                                                @:[AQ]¬:(?:[GWM]|[fe]:[si])
    [<start>|,|(|/_start_]  [une|la|ma|ta|sa|cette]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿         (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_  @:[AQ]¬:(?:[GWM]|[fe]:[si])
    [<start>|,|(|/_start_]  [une|la|ma|ta|sa|cette]  (*WORD)  ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿ (/_VEP_)                                               @:[AQ]¬:(?:[GWM]|[fe]:[si])
    [<start>|,|(|/_start_]  [une|la|ma|ta|sa|cette]  (*WORD)  ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿ (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_      @:[AQ]¬:(?:[GWM]|[fe]:[si])
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and morph(\1, ":[NA].*:[fe]", ":[GW]") and (morph(\2, ":[123]s") or (not tag(\1, "_enum_") and morph(\2, ":P")))
        --1>> =suggFemSing(\-1)                                                                     && Accord erroné : “\1” et “\-1” ne sont pas accordés.

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

TEST: Un orage est {{annoncée}}.
TEST: ce chat ne sera pas {{euthanasiée}}
TEST: Le chien qui n’y sera pas {{traitée}}
TEST: cet homme qui ne cesse pas d’être {{ennuyée}}
TEST: cet espion qui sera {{jugée}} bientôt
TEST: la danse n’en est pas {{fini}} pour autant…
................................................................................
    [<start>|,|(|/_start_]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)
        || ?qui¿  ?[ne|n’]¿  ?[en|y]¿           (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[AQ]¬:[GWM]
    [<start>|,|(|/_start_]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)
        || ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿   (/_VEP_)                                                @:[AQ]¬:[GWM]
    [<start>|,|(|/_start_]  [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B]  (*WORD)
        || ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿   (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[AQ]¬:[GWM]
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and morph(\2, ":(?:[123]p|P)") >>>
        <<- /ppas/ morph(\1, ":f", ":[me]") and morph(\-1, ":m", ":[fe]") --1>> =suggFemPlur(\-1)               && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au féminin pluriel.
        <<- /ppas/ __else__ and morph(\1, ":m", ":[fe]") and morph(\-1, ":f", ":[me]") --1>> =suggMasPlur(\-1)  && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au masculin pluriel.
        <<- /ppas/ __else__ and morph(\-1, ":s", ":[pi]") --1>> =suggPlur(\-1)                                  && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au pluriel.

    [<start>|,|(|/_start_]  [certains|maints]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿           (/_VE_)                                                 @:[AQ]¬:(?:[GW]|[me]:[pi])
    [<start>|,|(|/_start_]  [certains|maints]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿           (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[AQ]¬:(?:[GW]|[me]:[pi])
    [<start>|,|(|/_start_]  [certains|maints]  (*WORD)  ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿   (/_VEP_)                                                @:[AQ]¬:(?:[GW]|[me]:[pi])
    [<start>|,|(|/_start_]  [certains|maints]  (*WORD)  ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿   (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[AQ]¬:(?:[GW]|[me]:[pi])
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and morph(\1, ":[NA].*:[me]:[pi]", ":[GW]") and morph(\2, ":(?:[123]p|P)")
        --1>> =suggMasPlur(\-1)                                                                     && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au masculin pluriel.

    [<start>|,|(|/_start_]  [certaines|maintes]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿          (/_VE_)                                                 @:[AQ]¬:(?:[GW]|[fe]:[pi])
    [<start>|,|(|/_start_]  [certaines|maintes]  (*WORD)  ?qui¿  ?[ne|n’]¿  ?[en|y]¿          (/_LVED_) ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_   @:[AQ]¬:(?:[GW]|[fe]:[pi])
    [<start>|,|(|/_start_]  [certaines|maintes]  (*WORD)  ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿  (/_VEP_)                                                @:[AQ]¬:(?:[GW]|[me]:[pi])
    [<start>|,|(|/_start_]  [certaines|maintes]  (*WORD)  ?qui¿  ?[ne|n’]¿  [se|s’] ?[en|y]¿  (/_LVEPD_) ?/_LVEP_¿ ?/_LVEP_¿ ?/_LVEP_¿ /_LVEPF_       @:[AQ]¬:(?:[GW]|[me]:[pi])
        <<- /ppas/ not value(\-1, "|légion|pléthore|néant|réalité|") and morph(\1, ":[NA].*:[fe]:[pi]", ":[GW]") and morph(\2, ":(?:[123]p|P)")
        --1>> =suggFemPlur(\-1)                                                                     && Accord erroné : “\1” et “\-1” ne sont pas accordés. Mettez au féminin pluriel.

TEST: les femmes sont vraiment {{partis}}                                                   ->> parties
TEST: les hommes n’en sont pas tout à fait {{fâchées}}                                      ->> fâchés
TEST: plusieurs invités qui n’en sont pas {{contentes}}
TEST: les réunions sans cesse reportées qui sont {{annulés}}
TEST: les hommes croyant être {{instruites}}
TEST: les ouvriers ayant été {{persécutée}} par leur hiérarchie                             ->> persécutés
................................................................................

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

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

!!!! Participes passés après se croire/considérer/montrer/penser/révéler/savoir/sentir/voir/vouloir !!


__ppas_part_présent_infinitif__
    [me|m’|te|t’|l’]  ?[en|y]¿  [avouant|faisant|montrant|pensant|révélant|sachant|sentant|supposant|tenant|voyant|voulant]  @:[NA].*:p¬:(?:[GWYsi]|V0)
    [me|m’|te|t’|l’]  ?[en|y]¿  [avouer|faire|montrer|penser|révéler|savoir|sentir|supposer|tenir|voir|vouloir]              @:[NA].*:p¬:(?:[GWYsi]|V0)
        <<- /ppas/ --1>> =suggSing(\-1)                                 && Accord avec le pronom objet “\1” : “\-1” devrait être au singulier.

    le                          [avouant|faisant|montrant|pensant|révélant|sachant|sentant|supposant|tenant|voyant|voulant]  @:[NA].*:[fp]¬:(?:[GWY]|V0|m:[si])
    le                          [avouer|faire|montrer|penser|révéler|savoir|sentir|supposer|tenir|voir|vouloir]              @:[NA].*:[fp]¬:(?:[GWY]|V0|m:[si])
        <<- /ppas/ --1>> =suggMasSing(\-1)                              && Accord avec le pronom objet “\1” : “\-1” devrait être au masculin singulier.

    la                          [avouant|faisant|montrant|pensant|révélant|sachant|sentant|supposant|tenant|voyant|voulant]  @:[NA].*:[mp]¬:(?:[GWY]|V0|f:[si])
    la                          [avouer|faire|montrer|penser|révéler|savoir|sentir|supposer|tenir|voir|vouloir]              @:[NA].*:[mp]¬:(?:[GWY]|V0|f:[si])
        <<- /ppas/ --1>> =suggFemSing(\-1)                              && Accord avec le pronom objet “\1” : “\-1” devrait être au féminin singulier.

    les                         [avouant|faisant|montrant|pensant|révélant|sachant|sentant|supposant|tenant|voyant|voulant]  @:[NA].*:s¬:(?:[GWY]|V0|[pi])
    les                         [avouer|faire|montrer|penser|révéler|savoir|sentir|supposer|tenir|voir|vouloir]              @:[NA].*:s¬:(?:[GWY]|V0|[pi])
        <<- /ppas/ --1>> =suggPlur(\-1)                                 && Accord avec le pronom objet “\1” : “\-1” devrait être au pluriel.

TEST: me sachant {{libres}}, elle renonça.                                          ->> libre
TEST: te voyant {{dégagées}} de toute occupation, il crut bon de t’importuner.      ->> dégagée
TEST: le sentant {{incomprise}}                                                     ->> incompris
TEST: la voir {{persécuté}} ainsi me fit mal au cœur                                ->> persécutée
TEST: les montrer {{inflexible}} nous aidera à les convaincre.                      ->> inflexibles
TEST: la tenant {{prêt}} à bondir                                                   ->> prête


__ppas_le_verbe_pensée__
    le [>faire|>trouver|>considérer|>croire|>imaginer|>rendre|voilà]  *WORD
        <<- /ppas/ morph(\3, ":[AQ].*:(?:[me]:p|f)", ":(?:G|Y|V0|P|[AQ].*:m:[is])") and not (morph(\2, ":Y") and morph(\3, ":3s"))
        -3>> =suggMasSing(\3)                                                       && Accord avec le COD “le” : « \3 » doit être au masculin singulier.

__ppas_la_verbe_pensée__
    la [>faire|>trouver|>considérer|>croire|>imaginer|>rendre|voilà]  *WORD
        <<- /ppas/ morph(\3, ":[AQ].*:(?:[fe]:p|m)", ":(?:G|Y|V0|P|[AQ]:f:[is])") and not (morph(\2, ":Y") and morph(\2, ":3s"))
        -3>> =suggFemSing(\3)                                                       && Accord avec le COD “la” : « \2 » doit être au féminin singulier.

__ppas_les_verbe_pensée__
    les [>faire|>trouver|>considérer|>croire|>imaginer|>rendre|voilà]  *WORD
        <<- /ppas/ morph(\3, ":[AQ].*:s", ":(?:G|Y|V0|P|[AQ].*:[ip])") and not (morph(\2, ":Y") and morph(\3, ":3s"))
        -3>> =suggPlur(\3)                                                          && Accord avec le COD “les” : « \2 » doit être au pluriel.

__ppas_me_te_verbe_pensée__
    [me|m’|te|t’|l’] [>faire|>trouver|>considérer|>croire|>imaginer|>rendre|voilà]  *WORD
        <<- /ppas/ morph(\3, ":[AQ].*:p", ":(?:G|Y|V0|P|[AQ].*:[is])") and not (morph(\2, ":Y") and morph(\3, ":3s"))
        -3>> =suggSing(\3)                                                          && Accord avec le pronom “\1” : « \3 » doit être au singulier.

__ppas_se_verbe_pensée__
    il [se|s’] [>trouver|>considérer|>croire|>imaginer|>rendre]  *WORD
        <<- /ppas/ morph(\3, ":3s") and morph(\4, ":[AQ].*:[fp]", ":(?:G|Y|V0|P|[AQ].*:m:[si])")
        -4>> =suggMasSing(\4)                                                       && Accord avec “il” : « \4 » doit être au masculin singulier.

    elle [se|s’] [>trouver|>considérer|>croire|>imaginer|>rendre]  *WORD
        <<- /ppas/ morph(\3, ":3s") and morph(\4, ":[AQ].*:[mp]", ":(?:G|Y|V0|P|[AQ].*:f:[si])") and not morph(<1, ":R")
        -4>> =suggFemSing(\4)                                                       && Accord avec “elle” : « \4 » doit être au féminin singulier.

    ils [se|s’] [>trouver|>considérer|>croire|>imaginer|>rendre]  *WORD
        <<- /ppas/ morph(\3, ":3p") and morph(\4, ":[AQ].*:[fs]", ":(?:G|Y|V0|P|[AQ].*:m:[pi])")
        -4>> =suggMasPlur(\4)                                                       && Accord avec “ils” : « \4 » doit être au masculin pluriel.

    elles [se|s’] [>trouver|>considérer|>croire|>imaginer|>rendre]  *WORD
        <<- /ppas/ morph(\3, ":3p") and morph(\4, ":[AQ].*:[ms]", ":(?:G|Y|V0|P|[AQ].*:f:[pi])") and not morph(<1, ":R")
        -4>> =suggFemPlur(\4)                                                       && Accord avec “elles” : « \4 » doit être au féminin pluriel.

    [se|s’] [>trouver|>considérer|>croire|>imaginer|>rendre]  *WORD
        <<- /ppas/ morph(\2, ":3s") and morph(\3, ":[AQ].*:p", ":(?:G|Y|V0|P|[AQ].*:[si])")
        -3>> =suggSing(\3)                                                          && Accord avec le pronom “se” (le verbe étant au singulier) : « \3 » doit être au singulier.
        <<- /ppas/ __else__ and morph(\2, ":3p") and morph(\3, ":[AQ].*:s", ":(?:G|Y|V0|[AQ].*:[pi])")
        -3>> =suggPlur(\3)                                                          && Accord avec le pronom “se” (le verbe étant au pluriel) : « \3 » doit être au pluriel.

__ppas_nous_verbe_pensée__
    nous [>faire|>trouver|>considérer|>croire|>imaginer|>rendre|voilà]  *WORD
        <<- /ppas/ ( not morph(\2, ":1p") or (morph(\2, ":1p") and value(<1, "|nous|ne|")) )
            and morph(\3, ":[AQ].*:s", ":(?:G|Y|V0|P|[AQ].*:[ip])") and not (morph(\2, ":Y") and morph(\3, ":3s"))
        -3>> =suggPlur(\3)                                                          && Accord avec le pronom “nous” : « \3 » doit être au pluriel.

TEST: ces hommes le rendent {{dingues}}
TEST: Ce con me considère {{stupides}}
TEST: la commandante nous trouve {{stupide}}
TEST: Je les crois {{capable}} du pire
TEST: la voilà {{perdu}}
TEST: la voilà {{forcé}} à abandonner
................................................................................
TEST: ces psychologues qu’elle trouvait {{absurde}}                                         ->> absurdes
TEST: les petits que tu trouvais {{froid}}                                                  ->> froids
TEST: mes godasses qu’il trouvait {{affreux}}                                               ->> affreuses


__ppas_falloir_être__
    il  [me|m’|te|t’|lui]   >falloir  [être|devenir|redevenir|demeurer|paraître|paraitre|rester]  @:[NA].*:p¬:(?:[GWY]|V0|[si])
        <<- /ppas/ --1>> =suggSing(\-1)                                                             && Accord avec le pronom « \2 » : « \-1 » devrait être au singulier.

    il  [nous|leur]         >falloir  [être|devenir|redevenir|demeurer|paraître|paraitre|rester]  @:[NA].*:s¬:(?:[GWY]|V0|[pi])
        <<- /ppas/ --1>> =suggPlur(\-1)                                                             && Accord avec le pronom « \2 » : « \-1 » devrait être au pluriel.

TEST: il me faut être {{meilleurs}} que ces gars-là                             ->> meilleur
TEST: il leur faut être {{prudent}}                                             ->> prudents
TEST: il lui faut être malin
TEST: il nous faut être malines


__ppas_pronom_sujet_verbe_état_verbe__
    [<start>|,|(]  [je|tu|iel] ?[ne|n’]¿ ?[en|y]¿ /_VE_                                                    @:[123][sp]¬:[NAQGM]
    [<start>|,|(]  [je|tu|iel] ?[ne|n’]¿ ?[en|y]¿ /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_      @:[123][sp]¬:[NAQGM]
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":s")                                                   && Accord avec le sujet “\2” : “\-1” devrait être un participe passé singulier.

    [<start>|,|(]  il ?[ne|n’]¿ ?[en|y]¿ /_VE_                                                             @:[123][sp]¬:[NAQGM]
    [<start>|,|(]  il ?[ne|n’]¿ ?[en|y]¿ /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_               @:[123][sp]¬:[NAQGM]
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":m:s")                                                 && Accord avec le sujet “\2” : “\-1” devrait être un participe passé masculin singulier.

    [<start>|,|(]  elle ?[ne|n’]¿ ?[en|y]¿ /_VE_                                                           @:[123][sp]¬:[NAQGM]
    [<start>|,|(]  elle ?[ne|n’]¿ ?[en|y]¿ /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_             @:[123][sp]¬:[NAQGM]
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":f:s")                                                 && Accord avec le sujet “\2” : “\-1” devrait être un participe passé féminin singulier.

    [<start>|,|(]  [nous|iels] ?[ne|n’]¿ ?[en|y]¿ /_VE_                                                    @:[123][sp]¬:[NAQGM]
    [<start>|,|(]  [nous|iels] ?[ne|n’]¿ ?[en|y]¿ /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_      @:[123][sp]¬:[NAQGM]
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":p")                                                   && Accord avec le sujet “\2” : “\-1” devrait être un participe passé pluriel.

    [<start>|,|(]  [on|vous] ?[ne|n’]¿ ?[en|y]¿ /_VE_                                                      @:[123][sp]¬:[NAQGM]
    [<start>|,|(]  [on|vous] ?[ne|n’]¿ ?[en|y]¿ /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_        @:[123][sp]¬:[NAQGM]
        <<- /ppas/ --1>> =suggVerbPpas(\-1)                                                         && Accord avec le sujet “\2” : “\-1” devrait être un participe passé.

    [<start>|,|(]  ils ?[ne|n’]¿ ?[en|y]¿ /_VE_                                                            @:[123][sp]¬:[NAQGM]
    [<start>|,|(]  ils ?[ne|n’]¿ ?[en|y]¿ /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_              @:[123][sp]¬:[NAQGM]
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":m:p")                                                 && Accord avec le sujet “\2” : “\-1” devrait être un participe passé masculin pluriel.

    [<start>|,|(]  elles ?[ne|n’]¿ ?[en|y]¿ /_VE_                                                          @:[123][sp]¬:[NAQGM]
    [<start>|,|(]  elles ?[ne|n’]¿ ?[en|y]¿ /_LVED_ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ ?/_LVE_¿ /_LVEF_            @:[123][sp]¬:[NAQGM]
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":f:p")                                                 && Accord avec le sujet “\2” : “\-1” devrait être un participe passé féminin pluriel.

TEST: je ne parais pas {{épuise}} par mon périple, mais je le suis.
TEST: j’ai été {{bouleverse}} par ces aveux.
TEST: il sait être {{désire}}
TEST: elle imagine être {{désire}}
TEST: elle semble avoir été {{sonne}}
TEST: iel semble être {{ignore}}
................................................................................
TEST: Sa robe a l’air élégant des créations des grands couturiers.
TEST: Ses amies ont l’air distant, mais l’âme généreuse.



__ppas_ayant_été_pronom_ppas__
    ayant  été  lui-même  @:[QA].*:[fp]¬:[me][si]
        <<- /ppas/ --1>> =suggMasSing(\-1)                              && Accord avec “\3” : “\-1” devrait être au masculin singulier.

    ayant  été  elle-même  @:[QA].*:[mp]¬:[fe][si]
        <<- /ppas/ --1>> =suggFemSing(\-1)                              && Accord avec “\3” : “\-1” devrait être au féminin singulier.

    ayant  été  [nous-même|vous-même|iel-même]  @:[QA].*:p¬:[si]
        <<- /ppas/ -3>> \3s                                             && Accord avec “\-1” : “\3” devrait être au pluriel.
        <<- /ppas/ __also__ --1>> =suggSing(\-1)                        && Accord avec “\3” : “\-1” devrait être au singulier.

    ayant  été  [nous-mêmes|vous-mêmes|iels-mêmes]  @:[QA].*:s¬:[pi]
        <<- /ppas/ -3>> =\3[:-1]                                        && Accord avec “\-1” : “\3” devrait être au singulier.
        <<- /ppas/ __also__ --1>> =suggPlur(\-1)                        && Accord avec “\3” : “\-1” devrait être au pluriel.

    ayant  été  eux-mêmes  @:[QA].*:[fs]¬:[me][pi]
        <<- /ppas/ --1>> =suggMasPlur(\-1)                              && Accord avec “\3” : “\-1” devrait être au masculin pluriel.

    ayant  été  elles-mêmes  @:[QA].*:[ms]¬:[fe][pi]
        <<- /ppas/ --1>> =suggFemPlur(\-1)                              && Accord avec “\3” : “\-1” devrait être au féminin pluriel.

    ayant été [lui-même|elle-même|nous-même|vous-même|nous-mêmes|vous-mêmes|eux-mêmes|elles-mêmes]
        <<- ~3>> *

TEST: ayant été lui-même {{attaquée}}                               ->> attaqué
TEST: ayant été elle-même {{pris}} dans la tourmente                ->> prise
TEST: ayant été {{vous-même}} {{blâmés}}                            ->> vous-mêmes|||blâmé
................................................................................
TEST: Le théâtre, en l’occurrence, a charge de sensibiliser
TEST: Cet homme a nui à notre existence.


__ppas_les_avoir__
    les  >avoir  @:V[0-3]..t.*:Q.*:s¬:[GWpi]
        <<- /ppas/ morph(\2, ":V0a") -3>> =suggPlur(\3)
        && Accord avec le COD « les » : Le participe passé « \3 » devrait être au pluriel (et accordé en genre).|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: je les avais {{trompé}} avec mon baratin.
TEST: les avoirs reçus ne couvrent pas toutes les dépenses.
TEST: Mes joueurs, je les ai fait reposer
TEST: Mes joueurs, je les ai fait se reposer
TEST: tu les as fait élever


__ppas_nous_avoir__
    nous  >avoir  *WORD  <end>
        <<- /ppas/ morph(\2, ":V0a", ":1p") and morph(\3, ":V[0-3]..t_.*:Q.*:s", ":[GWpi]") and morph(<1, ":(?:M|Os|N)", ":R") and not value(<2, "|que|qu’|")
        -3>> =suggPlur(\3)
        && Accord avec le COD « nous » : Le participe passé « \3 » devrait être au pluriel (et accordé en genre).|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: Ces maisons nous avaient {{subjugué}}.
TEST: Alexandre aujourd’hui nous a {{quitté}}
TEST: C’est mot pour mot un script qu’on nous a filé.
TEST: Nous avons donné.
TEST: ces cons nous ont donnés.
TEST: ils nous ont vendus.
................................................................................
TEST: tu nous as fait élever
TEST: dans le genre que la biologie nous a assigné


__ppas_l_avoir__
    l’ >avoir @:V[0-3]..t.*:Q.*:p¬:[GWsi]
        <<- /ppas/ -3>> =suggSing(\3)
        && Accord avec « l’ » : le participe passé « \3 » devrait être au singulier (et accordé en genre).|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: ils l’avaient {{retrouvés}}.
TEST: Vous l’avez {{trouvez}}.                                                    ->> trouvé
TEST: Nous l’avons {{mangés}}.
TEST: Nous l’avons {{mangées}}.
TEST: Ils ne me l’ont pas {{donnés}}
TEST: il faillit agir, mais l’ayant {{remarqués}}, il passa son chemin.
................................................................................
TEST: Pourquoi m’avoir {{ignorés}} ainsi ?
TEST: sans avoir {{ignorée}} le problème.


## avoir avec participe passé
__ppas_m_t_l_avoir__
    [l’|m’]  ?[en|y]¿  >avoir  @:(?:Y|[123][sp])¬:[QGWMX]
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":m:s")         && Confusion : employez un participe passé.

    t’  ?[en|y]¿  >avoir  @:(?:Y|[123][sp])¬:[QGWMX]
        <<- /ppas/ not value(\-1, "|confiance|charge|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|")
        --1>> =suggVerbPpas(\-1, ":m:s")                    && Confusion : employez un participe passé.

TEST: m’avoir {{terminer}}.
TEST: il m’a {{souffler}} la bonne réponse.
TEST: elle t’en a {{parle}}.
TEST: c’est vous qui m’avez {{convertit}}.
TEST: parce que t’as envie que je le fasse
TEST: t’avais confiance
................................................................................
TEST: t’en as envie ?
TEST: quand sa mère l’a emmenée voir un hypnothérapeute pour qu’elle se souvienne


__ppas_avoir__
    >avoir  ~..e[rz]$
        <<- /ppas/ not value(\1, "|A|avions|avoirs|") and morph(\2, ":(?:Y|2p)")
        -2>> =suggVerbPpas(\2, ":m:s")                                              && Incohérence probable avec “\1” : “\2” n’est pas un participe passé.
        <<- /ppas/ __also__ and \1 == "a" and \2.endswith("r") and not value(<1, "|n’|m’|t’|l’|il|on|elle|")
        -1>> à                                                                      && Confusion probable : “a” est une conjugaison du verbe avoir. Pour la préposition, écrivez “à”.

    >avoir  ~..it$
        <<- /ppas/ not value(\1, "|A|avions|avoirs|") and morph(\2, ":V(?:2.*:Ip.*:3s|3.*:Is.*:3s)", ":[NAQ]")
        -2>> =suggVerbPpas(\2, ":m:s")                                              && Incohérence probable avec “\1” : “\2” n’est pas un participe passé.

    >avoir  ~..is$
        <<- /ppas/ not value(\1, "|A|avions|avoirs|") and morph(\2, ":V3.*:I[ps].*:[12]s", ":[NAQ]")
        -2>> =suggVerbPpas(\2, ":m:s")                                              && Incohérence probable avec “\1” : “\2” n’est pas un participe passé.

    >avoir  ~.ut$
        <<- /ppas/ not value(\1, "|A|avions|avoirs|") and morph(\2, ":V3.*:Is.*:3s", ":[NAQ]")
        -2>> =suggVerbPpas(\2, ":m:s")                                              && Incohérence probable avec “\1” : “\2” n’est pas un participe passé.

TEST: Avoir {{marcher}} toute la journée m’a épuisée.
TEST: L’homme, voyez-vous, {{a}} réellement {{marcher}} sur la Lune.
TEST: Je ne lui ai rien {{demander}}, mais il est venu à notre secours au nom de la justice.
TEST: Avoir {{finit}} son œuvre dans les temps, ce n’est pas toujours suffisant.
TEST: ces hommes, n’en doutez pas, auraient {{put}} trouver la solution.
TEST: à celui qui aurait {{déclarer}} une telle horreur
................................................................................



!!!! Participes passés: 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/ not value(\-1, "|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/ not value(\-1, "|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 ?
TEST: Les Français ont du pouvoir.
................................................................................
TEST: A-t-il Pierre pour ami ?
TEST: Quel lien y a-t-il entre donner et recevoir ?


__ppas_l_m_t_avoir_interrogatif__
    [l’|m’|t’]  /_VCint_  *WORD
        <<- /ppas/ morphVC(\2, ":V0a") and morph(\3, ":(?:Y|2p|Q.*:p|3[sp])", ":[GWsi]")
        -3>> =suggVerbPpas(\3, ":m:s")                      && Accord avec le COD “\1” : le participe passé “\3” devrait être au singulier (et accordé en genre).

TEST: l’avait-il {{regardés}} longtemps ?                                       ->> regardé
TEST: l’a-t-il {{finis}} ?                                                      ->> fini
TEST: m’as-tu {{entendus}} ?                                                    ->> entendu


__ppas_les_avoir_pronom__
    les  /_VCint_  *WORD
        <<- /ppas/ morphVC(\2, ":V0a") and morph(\3, ":(?:Y|2p|Q.*:s|3[sp])", ":[GWpi]")
        -3>> =suggVerbPpas(\3, ":p")                        && Accord avec le COD “les” : le participe passé “\3” devrait être au pluriel (et accordé en genre).

TEST: les avais-tu {{acheté}} là-bas ?
TEST: les ont-ils {{détecté}} ?
TEST: les avaient-ils {{détectez}} ?


!!
................................................................................
!!!! Participes passés: Accords avec l’adjectif précédant le pronom                               !!
!!
!!

__ppas_adj_accord_je_tu_iel__
    <start>  *WORD  ?,¿  [je|j’|tu|iel]
        <<- /ppas/ morph(\2, ":A.*:p", ":[GEMWPsi]") and not tag(\2, "_exctx_")
        -2>> =suggSing(\2)                                                      && Si cet adjectif se réfère au pronom « \-1 », l’adjectif devrait être au singulier (et accordé en genre).

TEST: {{Découragés}}, je suis parti.


__ppas_adj_accord_il__
    <start>  *WORD  ?,¿  il
        <<- /ppas/ not value(\2, "|bref|désolé|désolée|pire|")  and not tag(\2, "_exctx_") and morph(\2, ":A.*:[fp]", ":(?:G|E|M1|W|P|m:[si])")
            and not morph(>1, ">falloir/") and not after("^ +(?:y (?:a|aura|avait|eut)|d(?:ut|oit|evait|evra) y avoir|s’agi(?:ssait|t|ra))[, .]")
        -2>> =suggMasSing(\2)                                                   && Si cet adjectif se réfère au pronom « il », l’adjectif devrait être au masculin singulier.

TEST: — {{Déçue}}, il s’en est allé.
TEST: — Désolée, il va partir bientôt.
TEST: Lancés il y a plus de 13 ans, le 14 février 2001, ces outils
TEST: Si délégués il doit y avoir, ce sera uniquement des gens choisis parmi nous.
TEST: Étudiante, il s’agissait de s’inventer des parents riches.


__ppas_adj_accord_elle__
    <start>  *WORD  ?,¿  elle
        <<- /ppas/ not value(\2, "|bref|désolé|désolée|pire|") and not tag(\2, "_exctx_") and morph(\2, ":A.*:[mp]", ":(?:G|E|M1|W|P|f:[si])")
        -2>> =suggFemSing(\2)                                                   && Si cet adjectif se réfère au pronom « elle », l’adjectif devrait être au féminin singulier.

TEST: — {{Déçu}}, elle s’en est allée.
TEST: Parlant de réussite, elle se donne bonne conscience en y rajoutant de la bienveillance.


__ppas_adj_accord_ils__
    <start>  *WORD  ?,¿  ils
        <<- /ppas/ not value(\2, "|bref|désolé|désolée|pire|") and not tag(\2, "_exctx_") and morph(\2, ":A.*:[fs]", ":(?:G|E|M1|W|P|m:[pi])")
        -2>> =suggMasPlur(\2)                                                   && Si cet adjectif se réfère au pronom « ils », l’adjectif devrait être au masculin pluriel.

TEST: Vraiment {{soucieuse}}, ils sont.
TEST: Très vite, ils sont partis
TEST: Une fois terminé, ils sont revenus.
TEST: Désolé, ils ne viendront pas.
TEST: Pire, ils piétinent parfois les droits humains.
TEST: Bref, ils veulent des services publics là où ces derniers font de plus en plus défaut.


__ppas_adj_accord_elles__
    <start>  *WORD  ?,¿  elles
        <<- /ppas/ not value(\2, "|bref|désolé|désolée|pire|") and not tag(\2, "_exctx_") and morph(\2, ":A.*:[ms]", ":(?:G|E|M1|W|P|f:[pi])")
        -2>> =suggFemPlur(\2)                                                   && Si cet adjectif se réfère au pronom « elles », l’adjectif devrait être au féminin pluriel.

TEST: Absolument {{heureux}}, elles exultèrent de joie.
TEST: quoique heureuse, ils la crurent tourmentée.


__ppas_adj_accord_iels__
    <start>  *WORD  ?,¿  iels
        <<- /ppas/ morph(\2, ":A.*:s", ":[GEMWPpi]") and not tag(\2, "_exctx_")
        -2>> =suggPlur(\2)                                                      && Si cet adjectif se réfère au pronom « iels », l’adjectif devrait être au pluriel.

TEST: {{Découragé}}, iels sont partis.


!!
!!
!!!! Impératif !                                                                                  !!
................................................................................
!!
!!

# Confusions
__imp_confusion_2e_pers_pluriel__
    [<start>|,|(]  *WORD  moi
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:[123]s)")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

    [<start>|,|(]  *WORD  la  *WORD
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:[123]s)") and morph(\4, ":[ORC]", ":[NA]|>plupart/")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

    [<start>|,|(]  *WORD  [le|les|leur]  *WORD
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:[123]s)") and morph(\4, ":[ORC]", ":[NA]")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

    [<start>|,|(]  *WORD  [lui|nous|vous]  *WORD
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:[123]s)") and morph(\4, ":[ORCD]", ":Y")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

    [<start>|,|(|et|ou]  *WORD  [les|le|la|lui|nous|vous|leur]  [<end>|,|)]
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:[123]s)")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

TEST: {{Donner moi}} une chance                         ->> Donnez-moi
TEST: {{donner la}} et oublie-moi.                      ->> donnez-la|||là
TEST: {{prenait les}} ou volez-les                      ->> prenez-les
TEST: je vous en prie, {{prenais moi}} avec vous.       ->> prenez-moi
TEST: {{avançait moi}} de l’argent                      ->> avancez-moi
TEST: {{filé moi}} du fric, bon sang !                  ->> filez-moi
................................................................................
TEST: {{Attend}} la correction.
TEST: {{Répond}}.                                                       ->> Réponds
TEST: — Pour ma part, répond P., je crois que tout va bien.


!!
!!
!!!! Impératif : traits d’union manquants                                                         !!
!!
!!

__imp_union_moi__
    *WORD  moi
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:venir|aller|partir)/") and not value(<1, "|de|d’|le|la|les|l’|je|j’|me|m’|te|t’|se|s’|nous|vous|lui|leur|")
................................................................................
!!

__conf_le_la_leur_les_verbe_nom!6__
    [<start>|,|(] [le|un]         @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,|(] [le|un]         @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,|(] [le|un]         @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[me]:[si]")
        -3>> =suggSimil(\3, ":[NA].*:[me]:[si]", True)                              && Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,|(] [la|une]        @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,|(] [la|une]        @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,|(] [la|une]        @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[fe]:[si]")
        -3>> =suggSimil(\3, ":[NA].*:[fe]:[si]", True)                              && Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,|(] l’              @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,|(] l’              @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,|(] l’              @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[si]")
        -3>> =suggSimil(\3, ":[NA].*:[si]", True)                                   && Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,|(] leur            @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,|(] leur            @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,|(] leur            @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[si]")
        -3>> =suggSimil(\3, ":[NA].*:[si]", True)                                   && Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,|(] [les|plusieurs|leurs]  @:V¬:[NAY]  [ne|n’|me|m’|te|s’|se|s’]
    [<start>|,|(] [les|plusieurs|leurs]  @:V¬:[NAY]  [le|la|l’|les|leur]  @:[123][sp]¬:[QNAG]
    [<start>|,|(] [les|plusieurs|leurs]  @:V¬:[NAY]  ?[nous|vous]¿        @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[pi]")
        -3>> =suggSimil(\3, ":[NA].*:[pi]", True)                                   && Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,|(] [certains|maints]     @:V¬:[NAY]  [me|m’|te|s’|se|s’]
    [<start>|,|(] [certains|maints]     @:V¬:[NAY]  [ne|n’]                     @:[123][sp]
    [<start>|,|(] [certains|maints]     @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,|(] [certains|maints]     @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[me]:[pi]")
        -3>> =suggSimil(\3, ":[NA].*:[me]:[pi]", True)                              && Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

    [<start>|,|(] [certaines|maintes]   @:V¬:[NAY]  [me|m’|te|s’|se|s’]
    [<start>|,|(] [certaines|maintes]   @:V¬:[NAY]  [ne|n’]                     @:[123][sp]
    [<start>|,|(] [certaines|maintes]   @:V¬:[NAY]  [le|la|l’|les|leur]         @:[123][sp]¬:[QNAG]
    [<start>|,|(] [certaines|maintes]   @:V¬:[NAY]  ?[nous|vous]¿               @:[123][sp]¬:[QG]
        <<- /conf/ hasSimil(\3, ":[NA].*:[fe]:[pi]")
        -3>> =suggSimil(\3, ":[NA].*:[fe]:[pi]", True)                              && Confusion probable : “\3” est une forme verbale conjuguée. Si “\2” est un déterminant, il faut placer un nom après.

TEST: Un {{défie}} se définit par la difficulté                 ->> défi
TEST: Le {{défit}} ne l’enthousiasmait pas.                     ->> défi
TEST: Le {{défie}} ne l’enthousiasmait pas.                     ->> défi
TEST: Les {{connections}} étaient défaillantes.                 ->> connexions
TEST: l’{{accueille}} se révéla ennuyeux.                       ->> accueil
TEST: La {{sert}} était cassée                                  ->> serre
................................................................................
    [<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|iel|iels|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|iel|iels|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|iel|iels|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|iel|iels|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>|,|(]  [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|iel|iels|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|iel|iels|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|iel|iels|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|iel|iels|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>|,|(]  [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|iel|iels|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|iel|iels|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|iel|iels|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|iel|iels|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>|,|(]  [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|iel|iels|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|iel|iels|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|iel|iels|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|iel|iels|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>|,|(]  [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
TEST: nous racontons le {{dépare}} des peuples vers les étoiles ->> départ
................................................................................
TEST: c’était le {{profile}} qui était assez similaire          ->> profil
TEST: c’est un {{parie}} sur l’avenir                           ->> pari
TEST: Quel homme ferait un {{parie}} si risqué.                 ->> pari


__conf_interrogatif_ou_impératif_det_verbe_nom__
    [/_VCint_|/_VCimp_]  le  @:[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.

    [/_VCint_|/_VCimp_]  la  @:[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.

    [/_VCint_|/_VCimp_]  l’  @:[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.

    [/_VCint_|/_VCimp_]  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.

    [/_VCint_|/_VCimp_]  les  @:[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.

    [/_VCint_|/_VCimp_]  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: Siffle-t-il le {{dépare}} du duel ?                       ->> départ
TEST: Regardes-tu la {{commette}} ?                             ->> comète
TEST: Gérons-nous l’{{accueille}} ?                             ->> accueil
TEST: Connaissent-ils leur {{assied}}                           ->> acier
TEST: Écrit-elle les {{fixions}} ?                              ->> fictions
TEST: Avouera-t-elle le {{choie}} qu’il a fait ?                ->> choix
TEST: Entreront-ils en {{contacte}} avec eux ?                  ->> contact


__conf_vc_int_imp_verbe!3__
    [/_VCint_|/_VCimp_]  @:[123][sp]¬:[GNAQWM]
        <<- /conf/ not value(\1, "|rendez-vous|entre-nous|entre-vous|entre-elles|") and not morphVC(\1, ":V0")
        -2>> _                                                                  && Incohérence probable : “\2” est une forme verbale conjuguée.

TEST: Annonce-le {{dépare}}.
TEST: prends-la {{tète}}.
TEST: alors rappelons-nous Marie


__conf_verbes_det_verbe_nom__
    [<start>|,|(]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  le     @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,|(]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  le     @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,|(]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  le     @:[123][sp]¬:[NA].*:[me]:[si]
    [<start>|,|(]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  le     @:[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>|,|(]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  la     @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,|(]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  la     @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,|(]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  la     @:[123][sp]¬:[NA].*:[fe]:[si]
    [<start>|,|(]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  la     @:[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>|,|(]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  l’     @:[123][sp]¬:[NA].*:[si]
    [<start>|,|(]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  l’     @:[123][sp]¬:[NA].*:[si]
    [<start>|,|(]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  l’     @:[123][sp]¬:[NA].*:[si]
    [<start>|,|(]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  l’     @:[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>|,|(]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,|(]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,|(]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  leur   @:[123][sp]¬:[NA].*:[si]
    [<start>|,|(]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  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>|,|(]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,|(]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,|(]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  [les|leurs]  @:[123][sp]¬:[NA].*:[pi]
    [<start>|,|(]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  [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>|,|(]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,|(]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,|(]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NAGM]  en     @:[123][sp]¬:[NA]
    [<start>|,|(]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NAGM]  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: arrive ainsi le {{dépare}}
TEST: n’envoie pas leur {{signale}}
TEST: observa alors la {{saillit}}
TEST: ensuite, tu vois, surviennent les {{désires}}.
TEST: ne leur donne pas le {{choie}}.
TEST: ne gère pas l’{{accueille}} comme il faut.
................................................................................
__conf_vinfi_adj__
    <start> [le|l’|ce|cet|mon|ton|son|notre|votre|leur|quel]                *WORD      *WORD    [ne|n’|me|m’|te|t’|se|s’]
    <start> [le|l’|ce|cet|mon|ton|son|notre|votre|leur|quel]                *WORD      *WORD    ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿    @:[123][sp]
    <start> [le|l’|ce|cet|mon|ton|son|notre|votre|leur|quel]                *WORD      *WORD    [nous|vous]     [le|la|l’|les|en|y]         @:[123][sp]
    <start> [le|l’|ce|cet|mon|ton|son|notre|votre|leur|quel]                *WORD      *WORD    [le|la|l’|les]  [lui|leur|en|y]             @:[123][sp]
    <start> [le|l’|ce|cet|mon|ton|son|notre|votre|leur|quel]                *WORD      *WORD    [lui|leur|y]    en                          @:[123][sp]
        <<- /conf/ \4.islower() and morph(\3, ":[NA].*:m:[si]", ":G|>verbe/") and morph(\4, ":V1.*:Y", ":M")
        -4>> =suggVerbPpas(\4, ":m:s")                                      && Confusion probable : “\4” est un verbe à l’infinitif, alors qu’il faudrait probablement un adjectif se rapportant à “\2 \3”.

    <start> [la|l’|cette|mon|ton|son|ma|ta|sa|notre|votre|leur|quelle]      *WORD      *WORD    [ne|n’|me|m’|te|t’|se|s’]
    <start> [la|l’|cette|mon|ton|son|ma|ta|sa|notre|votre|leur|quelle]      *WORD      *WORD    ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿    @:[123][sp]
    <start> [la|l’|cette|mon|ton|son|ma|ta|sa|notre|votre|leur|quelle]      *WORD      *WORD    [nous|vous]     [le|la|l’|les|en|y]         @:[123][sp]
    <start> [la|l’|cette|mon|ton|son|ma|ta|sa|notre|votre|leur|quelle]      *WORD      *WORD    [le|la|l’|les]  [lui|leur|en|y]             @:[123][sp]
    <start> [la|l’|cette|mon|ton|son|ma|ta|sa|notre|votre|leur|quelle]      *WORD      *WORD    [lui|leur|y]    en                          @:[123][sp]
        <<- /conf/ \4.islower() and morph(\3, ":[NA].*:f:[si]", ":G") and morph(\4, ":V1.*:Y", ":M")
        -4>> =suggVerbPpas(\4, ":f:s")                                      && Confusion probable : “\4” est un verbe à l’infinitif, alors qu’il faudrait probablement un adjectif se rapportant à “\2 \3”.

    <start> [l’|notre|votre|leur]                                           *WORD      *WORD    [ne|n’|me|m’|te|t’|se|s’]
    <start> [l’|notre|votre|leur]                                           *WORD      *WORD    ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿    @:[123][sp]
    <start> [l’|notre|votre|leur]                                           *WORD      *WORD    [nous|vous]     [le|la|l’|les|en|y]         @:[123][sp]
    <start> [l’|notre|votre|leur]                                           *WORD      *WORD    [le|la|l’|les]  [lui|leur|en|y]             @:[123][sp]
    <start> [l’|notre|votre|leur]                                           *WORD      *WORD    [lui|leur|y]    en                          @:[123][sp]
        <<- /conf/ \4.islower() and morph(\3, ":[NA].*:e:[si]", ":G") and morph(\4, ":V1.*:Y", ":M")
        -4>> =suggVerbPpas(\4, ":s")                                        && Confusion probable : “\4” est un verbe à l’infinitif, alors qu’il faudrait probablement un adjectif se rapportant à “\2 \3”.

    <start> [les|ces|mes|tes|ses|nos|vos|leurs|quels|quelles|quelques|plusieurs|certains|certaines|maints|maintes]    *WORD      *WORD     [ne|n’|me|m’|te|t’|se|s’]
    <start> [les|ces|mes|tes|ses|nos|vos|leurs|quels|quelles|quelques|plusieurs|certains|certaines|maints|maintes]    *WORD      *WORD     ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿    @:[123][sp]
    <start> [les|ces|mes|tes|ses|nos|vos|leurs|quels|quelles|quelques|plusieurs|certains|certaines|maints|maintes]    *WORD      *WORD     [nous|vous]     [le|la|l’|les|en|y]         @:[123][sp]
    <start> [les|ces|mes|tes|ses|nos|vos|leurs|quels|quelles|quelques|plusieurs|certains|certaines|maints|maintes]    *WORD      *WORD     [le|la|l’|les]  [lui|leur|en|y]             @:[123][sp]
    <start> [les|ces|mes|tes|ses|nos|vos|leurs|quels|quelles|quelques|plusieurs|certains|certaines|maints|maintes]    *WORD      *WORD     [lui|leur|y]    en                          @:[123][sp]
        <<- /conf/ \4.islower() and morph(\3, ":[NA].*:[pi]", ":G") and morph(\4, ":V1.*:Y", ":M")
        -4>> =suggVerbPpas(\4, ":p")                                        && Confusion probable : “\4” est un verbe à l’infinitif, alors qu’il faudrait probablement un adjectif se rapportant à “\2 \3”.

TEST: mon pantalon {{repriser}} me grattait.
TEST: la petite {{penser}} ne cessait de tourner dans son cerveau enfiévré.
TEST: les hommes nouvellement {{arriver}} ne nous dirent rien de ce qu’ils avaient vu.
TEST: les documents {{photocopier}} ne sont pas lisibles.
TEST: tes doutes {{remâcher}} deviennent difficiles à vivre.
TEST: ce tableau {{voler}} coûte très cher.
................................................................................
TEST: Le vieux cocher avait mission
TEST: le verbe aller est irrégulier.


__conf_quel_être_nom_verbe__
    [quel|quels|quelle|quelles]  >être          [le|mon|ton|son|ce|cet]  @:V¬:[NA]
    [quel|quels|quelle|quelles]  >pouvoir être  [le|mon|ton|son|ce|cet]  @:V¬:[NA]
        <<- /conf/ morph(\2, ":[123][sp]") --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)     && Confusion probable : “\-1”  est un forme verbale conjuguée, alors qu’il faudrait probablement un substantif.

    [quel|quels|quelle|quelles]  >être          [la|ma|ta|sa|cette]  @:V¬:[NA]
    [quel|quels|quelle|quelles]  >pouvoir être  [la|ma|ta|sa|cette]  @:V¬:[NA]
        <<- /conf/ morph(\2, ":[123][sp]") --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)     && Confusion probable : “\-1”  est un forme verbale conjuguée, alors qu’il faudrait probablement un substantif.

    [quel|quels|quelle|quelles]  >être          [l’|notre|votre|leur]  @:V¬:[NA]
    [quel|quels|quelle|quelles]  >pouvoir être  [l’|notre|votre|leur]  @:V¬:[NA]
        <<- /conf/ morph(\2, ":[123][sp]") --1>> =suggSimil(\-1, ":[NA].*:[si]", True)          && Confusion probable : “\-1”  est un forme verbale conjuguée, alors qu’il faudrait probablement un substantif.

    [quel|quels|quelle|quelles]  >être          [les|ces|mes|tes|ses|nos|vos|leurs|plusieurs]  @:V¬:[NA]
    [quel|quels|quelle|quelles]  >pouvoir être  [les|ces|mes|tes|ses|nos|vos|leurs|plusieurs]  @:V¬:[NA]
        <<- /conf/ morph(\2, ":[123][sp]") --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)          && Confusion probable : “\-1”  est un forme verbale conjuguée, alors qu’il faudrait probablement un substantif.

TEST: quel peut être le {{boycotte}}                                                ->> boycott
TEST: quelle peut être la {{saillit}} qui le rendit célèbre                         ->> saillie
TEST: Quel serait leur {{impacte}} sur la population.                               ->> impact
TEST: Quels étaient les {{ennuient}} avec ces gens                                  ->> ennuis
TEST: un homme humble et doux, quel être le deviendrait en de telles circonstances ?

................................................................................
    [/-je|/-tu|/-il|/-on|/-elle|/-nous|/-vous|/-ils|/-elles|/-iel|/-iels]  @:V.......e_.*:Q
        <<- /conf/ morphVC(\1, ">avoir/") -1>> _                && Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

    [je|j’|tu|il|elle|on|ils|nous|vous|elle|elles|iel|iels]  ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  >avoir  @:V.......e_.*:Q
    [je|j’|tu|il|elle|on|ils|nous|vous|elle|elles|iel|iels]  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         >avoir  @:V.......e_.*:Q
    [je|j’|tu|il|elle|on|ils|nous|vous|elle|elles|iel|iels]  ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             >avoir  @:V.......e_.*:Q
    [je|j’|tu|il|elle|on|ils|nous|vous|elle|elles|iel|iels]  ?[ne|n’]¿  [lui|leur|y]                    en                          >avoir  @:V.......e_.*:Q
        <<- /conf/ --2>> _                                      && Incohérence. La forme verbale “\-2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

    ce [qui|que|qu’] ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  [ait|aie|aies|ai|ais]
    ce [qui|que|qu’] ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         [ait|aie|aies|ai|ais]
    ce [qui|que|qu’] ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             [ait|aie|aies|ai|ais]
    ce [qui|que|qu’] ?[ne|n’]¿  [lui|leur|y]                    en                          [ait|aie|aies|ai|ais]
        <<- /conf/ --1>> est                                    && Confusion probable entre le verbe “avoir” et “être”.

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

#### a / à
__conf_pronom_verbe_à__
    [<start>|,|(]  [je|j’|tu|il|elle|on|ils|elles|iel|iels]   @:V        a
    [<start>|,|(]  [nous|vous]                                @:V¬:Y     a
    [<start>|,|(]  c’                                         >être      a
    [<start>|,|(]  [cela|ceci|celui-ci|celui-là|celle-ci|celle-là|ceux-ci|ceux-là|celles-ci|celles-là]  @:(?:[123][sp]|P)  a
        <<- /conf/ \-1 != "A" --1>> à                               && Confusion probable : “a” est une conjugaison du verbe “avoir”. Utilisez la préposition “à”.

TEST: Il vient {{a}} la maison.
TEST: tu ne donnes rien {{a}} ces hommes.
TEST: Nous les donnons {{a}} ces gens.
TEST: j’arrive {{a}} la gare
TEST: Cela venait {{a}} la maison régulièrement.
TEST: C’est {{a}} des années-lumière de réussir.
................................................................................
!!
!!

__inte_union_je!7__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~..[éèe]$  je  [<end>|,|)]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~..[éèe]$  je  @:¬:1s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1[sŝś]", ":[GW]")
        -2:3>> =\2[:-1]+"é-je"                                                                      && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~..[éèe]$  je  [<end>|,|)]
    *WORD  ~..[éèe]$  je  @:¬:1s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1[sŝś]", ":[GNW]") and not value(\1, "|je|j’|il|elle|")
        -2:3>> =\2[:-1]+"é-je"                                                                      && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~.[is]$  je  [<end>|,|)]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~.[is]$  je  @:¬:1s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1s", ":[GW]")
        -2:3>> \2-je                                                                                && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  [ai|avais|eus|eussé|eusse|aurai|aurais|suis|étais|fus|fussé|fusse|serai|serais]  je
        <<- /inte/ space_after(\2, 1, 1)
        -2:3>> \2-je                                                                                && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~.[is]$  je  [<end>|,|)]
    *WORD  ~.[is]$  je  @:¬:1s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1s", ":[GNW]") and not value(\1, "|je|j’|tu|")
        -2:3>> \2-je                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: quel animal {{dessine je}}
TEST: {{mangé je}} {{ça}} avec dégoût ?
TEST: {{viendrais je}} à la fête ?
TEST: {{ai je}} enfin trouvé la réponse à mes questions ?
TEST: quel amour {{connaîtrai je}} si je juge sans cesse ?


__inte_union_tu!7__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~.[sx]$  tu  [<end>|,|)]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~.[sx]$  tu  @:¬:2s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2s", ":[GW]")
        -2:3>> \2-tu                                                                                && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  [as|avais|eus|eusses|es|auras|aurais|étais|fus|fusses|seras|serais]  tu
        <<- /inte/ space_after(\2, 1, 1)
        -2:3>> \2-tu                                                                                && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~.s$  tu  [<end>|,|)]
    *WORD  ~.s$  tu  @:¬:2s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2s", ":[GNW]") and not value(\1, "|je|j’|tu|")
        -2:3>> \2-tu                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: {{Viendras tu}} là ?
TEST: et toi, {{as tu}} découvert le secret de l’immortalité ?
TEST: quelle vie {{connaitras tu}} ?
TEST: Comment {{peux tu}} ?


__inte_union_il_on!7__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~.[td]$  [il|on]  [<end>|,|)]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~.[td]$  [il|on]  @:¬:3s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3s", ":[GW]")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  [avait|eut|eût|est|aurait|était|fut|fût|serait]   [il|on]
        <<- /inte/ space_after(\2, 1, 1)
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~.[td]$  [il|on]  [<end>|,|)]
    *WORD  ~.[td]$  [il|on]  @:¬:3s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3s", ":[GNW]") and not value(\1, "|ce|il|elle|on|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: {{prend on}} le temps d’y réfléchir ?
TEST: De quel droit {{vient il}} m’{{ennuyer}} ?
TEST: comment {{était il}}
TEST: Pourquoi le message de Jean {{était il}} très radical pour son époque ?
TEST: Pourquoi le message de Jean était‐il très radical pour son époque ? (Hyphen U+2010)


__inte_union_ce!7__
    [<start>|,|(] [est|était|étaient] ce ?pas¿ [le|la|les|l’|un|une|de|des|d’|ce|cet|cette|ces|quelques|plusieurs|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs]
    [<start>|,|(] [est|était|étaient] ce ?pas¿ @:G¬:[NA].*:[me]:[si]|>(?:qu[ei’]|pourquoi|dont)/
    [<start>|,|(] [est|était|étaient] ce [ton|son] @:N¬:A.*:[me]:[si]
        <<- /inte/ space_after(\2, 1, 1) -2:3>> \2-\3                                               && Forme interrogative ? Mettez un trait d’union.

TEST: N’{{était ce}} pas le bon moment pour y songer.                   ->> était-ce
TEST: Qu’était ce raffut ?
TEST: Cette liberté, formalisée par le libéralisme économique, dès les Physiocrates (vers 1750), est ce dont le despotisme économique a besoin pour que son soubassement économique fonctionne mécaniquement.


__inte_union_elle_iel!7__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~.[td]$  [elle|iel]  [<end>|,|)]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~.[td]$  [elle|iel]  @:¬:3s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3s", ":[GW]")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  [avait|eut|eût|aurait|est|était|fut|fût|serait]   [elle|iel]
        <<- /inte/ space_after(\2, 1, 1)
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~.[td]$  [elle|iel]  [<end>|,|)]
    *WORD  ~.[td]$  [elle|iel]  @:¬:3s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3s", ":[GNW]") and not value(\1, "|ce|c’|ça|ç’|il|elle|on|iel|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: {{vient elle}} souvent ?
TEST: comment {{sait elle}}
TEST: qui {{était elle}} ?
TEST: quel travail {{avait elle}} accompli ?
TEST: {{sait iel}} comment faire ?
TEST: je ne comprenais pas pourquoi c’était elle qui était punie et que personne ne parlait de celui qui avait fait ça.
................................................................................
TEST: C’était elle qui avait pris le contrôle.


__inte_union_nous2!7__
    ,  ~ons$  nous  [<end>|,|)]
    ,  ~ons$  nous  @:¬:(?:1p|Y)
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    <start>  ~ons  nous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|allons|venons|partons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~ons  nous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  [sommes|étions|fûmes|fussions|serons|serions|avons|avions|eûmes|eussions|aurons|aurions]  nous
        <<- /inte/ space_after(\2, 1, 1)
        -2:3>> \2-nous                                                                              && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~ons$  nous  [<end>|,|)]
    *WORD  ~ons$  nous  @:¬:(?:Y|1p)
        <<- /inte/ space_after(\2, 1, 1) and
            ( (value(\2, "|avions|") and not morph(\1, ":A.*:[me]:[sp]") and not morph(\-1, ":(:?3[sp]|Ov)"))
            or (morph(\2, ":V.*:1p", ":[GNW]") and not morph(\1, ":Os")) )
        -2:3>> \2-nous                                                                              && Forme interrogative ? Mettez un trait d’union.

TEST: Ils savent, réellement {{croyons nous}}, comment résoudre le problème, mais ils n’ont fait que de la merde.
TEST: y {{retrouverons nous}} enfin la tranquilité ?
TEST: comment alors {{irons nous}} à la pêche ?
TEST: pourquoi {{sommes nous}} réellement des dieux ?
TEST: À quelle autorité {{prétendons nous}} sur ces gens…
TEST: quel exercice {{avions nous}} revu ?
................................................................................
TEST: les avions nous font rêver.


__inte_union_vous2!7__
    ,  ~ez$  vous  [<end>|,|)]
    ,  ~ez$  vous  @:¬:(?:2p|Y)
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    <start>  ~ez$  vous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|allez|venez|partez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~ez$  vous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  [êtes|étiez|fûtes|fussiez|serez|seriez|avez|aviez|eûtes|eussiez|aurez|auriez]  vous
        <<- /inte/ space_after(\2, 1, 1)
        -2:3>> \2-vous                                                                              && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~..e[zs]$  vous  [<end>|,|)]
    *WORD  ~..e[zs]$  vous  @:¬:(?:Y|2p)
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GNW]") and not value(\2, "|veuillez|") and not morph(\1, ":Os")
        -2:3>> \2-vous                                                                              && Forme interrogative ? Mettez un trait d’union.

TEST: ils seront, me {{direz vous}}, étroitement surveillés, mais rien ne le garantit.
TEST: Mais {{soutiendrez vous}} cette proposition ?
TEST: pourquoi ailleurs {{soutenez vous}} ces gens-là ?
TEST: comment {{êtes vous}} arrivées là ?
TEST: quel genre de femme {{voulez vous}} réellement ?
TEST: quel exercice {{avions nous}} réellement ?
................................................................................
TEST: Veuillez vous instruire avant de contester ces mesures.


__inte_union_ils!7__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~[eo]nt$  ils  [<end>|,|)]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~[eo]nt$  ils  @:¬:3p
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3p", ":[GW]")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  [ont|avaient|eurent|eussent|auront|auraient|sont|étaient|furent|fussent|seront|seraient]  ils
        <<- /inte/ space_after(\2, 1, 1)
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~[eo]nt$  ils  [<end>|,|)]
    *WORD  ~[eo]nt$  ils  @:¬:3p
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3p", ":[GNW]") and not value(\1, "|ce|ils|elles|iels|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: {{Viendront ils}} demain ?
TEST: qui {{seront ils}} une fois adultes ?
TEST: dans quel retaurant {{iront ils}} ?


__inte_union_elles_iels!7__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~[eo]nt$  [elles|iels]  [<end>|,|)]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~[eo]nt$  [elles|iels]  @:¬:3p
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3p", ":[GW]")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  [ont|avaient|eurent|eussent|auront|auraient|sont|étaient|furent|fussent|seront|seraient]  [elles|iels]
        <<- /inte/ space_after(\2, 1, 1)
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    *WORD  ~[eo]nt$  [elles|iels]  [<end>|,|)]
    *WORD  ~[eo]nt$  [elles|iels]  @:¬:3p
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3p", ":[GNW]") and not value(\1, "|ce|ils|elles|iels|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: {{viennent elles}} souvent ?
TEST: quand {{furent elles}} recrutées ?
TEST: quels éléments {{examinèrent elles}} ?
TEST: {{connaissent iels}} leurs droits ?


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


__conj_tout__
    tout  @:V¬:(?:3s|P|Q|Y|G|M|3p!|N.*:m:[si])
        <<- /conj/ not morph(<1, ":[VRD]") -2>> =suggVerb(\2, ":3s")    && Conjugaison erronée. Accord avec « tout ». Le verbe devrait être à la 3ᵉ personne du singulier.

    tout  qui  @:V¬:(?:3s|P|Q|G|3p!)
        <<- /conj/ -3>> =suggVerb(\3, ":3s")                            && Conjugaison erronée. Accord avec « tout ». Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: Tout {{reviens}} à ça.
TEST: Tout qui {{deviens}} fou.
TEST: Tout donne envie.
TEST: Tout lui fait peur.
TEST: Tout la fait pleurer
TEST: Tout vient à point.
................................................................................
TEST: Beaucoup leur donneront du fil à retordre.
TEST: beaucoup d’argent arrive dans nos caisses
TEST: beaucoup est simplement suggéré
TEST: beaucoup prenant leurs aises avec l’argent public
TEST: Beaucoup manger ne nous préservera pas de la famine.


# L’accord par syllepse est obligatoire après /la plupart/, ainsi qu’après /nombre/ et /quantité/ employés sans déterminant. L’accord se fait avec le « pseudo-complément ».
__conj_d_aucuns_la_plupart__
    d’ aucuns   @:V¬:(?:3p|P|Q|G)
    la plupart  @:V¬:(?:3p|P|Q|G)
        <<- /conj/ not morph(<1, ":[VR]")
        -3>> =suggVerb(\3, ":3p")                                       && Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 3ᵉ personne du pluriel.

    d’ aucuns   qui  @:V¬:(?:3p|P|G)
................................................................................


__conj_det_plur_nom__
    [ces|mes|tes|ses|nos|vos|leurs|quelques]  @:[NA].*:[pi]¬:V0  @:V¬:(?:3p|P|Y|G|M|A.*:[pi])
        <<- /conj/ morph(<1, ":Cs|<start>|>,")
            and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>>
        <<- /conj/ not tag(\-1, "_ngn_") and morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A"))
        -3>> =suggVerb(\3, ":3p", suggPlur)                                                         && Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
        <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p")                                               && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel.

    [ces|mes|tes|ses|nos|vos|leurs|quelques]  @:[NA].*:[pi]¬:V0  qui  @:V¬:(?:3p|P|Y|G|M|A.*:e:[pi])
        <<- /conj/ morph(<1, ":Cs|<start>|>,")
            and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") )
        -4>> =suggVerb(\4, ":3p")                                                                   && Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel.

................................................................................
TEST: La menace d’une guerre nucléaire entre Delhi et Islamabad plane toujours


# on / ont
__conf_ont!6__
    ils  on
    [eux|ceux|elles|celles]  qui  on
        <<- /conf/ --1>> ont                                    && Confusion probable : “on” est un pronom personnel. Pour la conjugaison du verbe “avoir”, écrivez “ont”.

    [elles|ceux-ci|ceux-là|celles-ci|celles-là]  on
        <<- /conf/ not morph(<1, ":[RV]") -2>> ont              && Confusion probable : “on” est un pronom personnel. Pour la conjugaison du verbe “avoir”, écrivez “ont”.

TEST: celles-là {{on}} {{vraiment}} un problème avec la religion.
TEST: j’ai, tu as, ils ont, elles {{on}}
TEST: ces gens-là ils {{on}} {{raison}} plus souvent que la plupart des gens.
TEST: Ils soutiennent ceux qui {{on}} {{tant}} de raison d’être en colère.
TEST: Or parmi celles-ci on trouve typiquement d’un côté les structures

................................................................................
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.
TEST: Quand j’en aurai fini avec eux, vous aurez du mal à les reconnaître.
................................................................................
TEST: j’{{aie}} faim


# Après/dès que + indicatif
__vmode_que_indicatif__
    [après|dès]  [que|qu’]  @:(?:Os|M)  @:V.*:S¬:[GI]
    [après|dès]  [que|qu’]  @:(?:Os|M)  @:V0e.*:S
        <<- /vmode/ -4>> =suggVerbMode(\4, ":I", \3)                    && Après « \1 que », le verbe ne s’emploie pas au subjonctif mais à l’indicatif, si l’action s’est déroulée de façon certaine.

    à  mesure    [que|qu’]  @:(?:Os|M)  @:V.*:S¬:[GI]
    à  mesure    [que|qu’]  @:(?:Os|M)  @:V0e.*:S
        <<- /vmode/ -5>> =suggVerbMode(\5, ":I", \4)                    && Après « à mesure que », le verbe ne s’emploie pas au subjonctif mais à l’indicatif.

TEST: Après qu’il {{ait}} allé
TEST: Après que Paul {{ait}} mangé son repas.
TEST: Après qu’il {{soit}} parti, il plut.
TEST: Dès qu’il y {{eût}} pensé, il fit ce qu’il fallait pour résoudre le problème.
TEST: à mesure qu’il {{devienne}} fort

................................................................................
    [>aimer|>approuver|>craindre|>demander|>déplorer|>défendre|>désirer|>exiger|>falloir|>interdire|>ordonner|>permettre|>préférer|>refuser|>regretter|>souhaiter|>suffire|>vouloir]
        || [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ morph(\1, ":V", ":N") --1>> =suggVerbMode(\-1, ":S", \-2)                       && Après “\1 que”, ce verbe devrait être au subjonctif.

    >attendre  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ not morph(\1, ":Q") --1>> =suggVerbMode(\-1, ":S", \-2)                         && Après “\1 que”, ce verbe devrait être au subjonctif.

    >avoir      envie           [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
    >avoir      ?bon¿ espoir    [que|qu’]  @:(?:Os|M)  @:I¬:([GYSK]|If)
    il          >importer       [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
    >prendre    garde           [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ --1>> =suggVerbMode(\-1, ":S", \-2)                                             && Après “\1 \2 que”, ce verbe devrait être au subjonctif.





    >étonner   [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ tag(\1, "_upron_") --1>> =suggVerbMode(\-1, ":S", \-2)                          && Après “s’étonner que”, le verbe doit être au subjonctif.

    >faire  attention  [à|a]  ce  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]|>faire/
        <<- /vmode/ --1>> =suggVerbMode(\-1, ":S", \-2)                                             && Après “faire attention à ce que”, le verbe doit être au subjonctif.

    >tenir  [à|a]  ce  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
................................................................................
    [<start>|,|(]   en          admettant           [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                && Si “en admettant que” indique que la suite est une hypothèse, le verbe doit être au subjonctif.

    [<start>|,|(]   en          attendant           [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                && Après “en attendant que”, le verbe devrait être au subjonctif.

    [<start>|,|(]  bien                             [que|qu’]   @:(?:Os|M)  @:I¬:(?:[GSK]|If|V0a)|>(?:hériter|recevoir|donner|offrir)/
        <<- /vmode/ -5>> =suggVerbMode(\5, ":S", \4)                                                && Après « \2 que », le verbe s’emploie au subjonctif.

    [<start>|,|(]  bien                             [que|qu’]   @:(?:Os|M)  >avoir  @:[QYG]¬>(?:hériter|recevoir|donner|offrir)/
        <<- /vmode/ morph(\5, ":I", ":S") -5>> =suggVerbMode(\5, ":S", \4)                          && Après « \2 que », le verbe s’emploie au subjonctif.

#    [<start>|,|(]   si          bien                [que|qu’]   @:(?:Os|M)  @:I¬:(?:[GYS]|I[qf]|V0)
#        <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                && Après “\2 \3 que”, ce verbe devrait être au subjonctif.

    [<start>|,|(]  encore                           [que|qu’]   @:(?:Os|M)  @:I¬:(?:[GSK]|If)
        <<- /vmode/ -5>> =suggVerbMode(\5, ":S", \4)                                                && Après « \2 que », le verbe s’emploie au subjonctif.

    jusqu’      à           [ce|tant]               [que|qu’]   @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ --1>> =suggVerbMode(\-1, ":S", \-2)                                             && Après “\1 \2 \3 que”, ce verbe devrait être au subjonctif.

TEST: Quoiqu’il {{est}} parti il y a longtemps, on pense encore beaucoup à lui.
TEST: quoi qu’il en {{conclut}}
TEST: Avant que tu {{pars}}, je voudrais qu’on discute.
................................................................................
TEST: J’ai mille cent timbres.
TEST: À qui mieux mieux, à qui mieux mieux
TEST: L’est est loin, la gare de l’est aussi.



!!! Tests repris de LanguageTool                                                                  !!
## NOTE : ces textes contiennent parfois des erreurs (corrigées quand repérées par le correcteur)

TEST: Au voisinage du zéro absolu de température.
TEST: La couronne périphérique alterne falaises abruptes et plages.
TEST: Henri VIII rencontre François Iᵉʳ.
TEST: à ce jour.
TEST: avoir un bel avenir
TEST: faire un dessin
................................................................................
TEST: Le 29 février 2016.
TEST: Le 29 février 2020.
TEST: Le 29-février-2004


!!! Le Horla, de Guy de Maupassant                                                                !!
# Nouvelle intégrale (228 lignes)
# Certains points diffèrent du texte original tiré de Wikisource :
# — les paragraphes sont souvent scindés pour des raisons pratiques.
# — les virgules avant les points de suspension ont été supprimées
# — moyen âge -> Moyen Âge
TEST: Le Horla — Guy de Maupassant
TODO: 8 mai. — Quelle journée admirable ! J’ai passé toute la matinée {{étendu}} sur l’herbe, devant ma maison, sous l’énorme platane qui la couvre, l’abrite et l’ombrage tout entière.
TEST: J’aime ce pays, et j’aime y vivre parce que j’y ai mes racines, ces profondes et délicates racines, qui attachent un homme à la terre où sont nés et morts ses aïeux, qui l’attachent à ce qu’on pense et à ce qu’on mange, aux usages comme aux nourritures, aux locutions locales, aux intonations des paysans, aux odeurs du sol, des villages et de l’air lui-même.
TEST: J’aime ma maison où j’ai grandi.







|





|








|






|





|
|







 







|
|





|








|






|






|







 







|
|
|







|
|
|









|
|






|







 







|






>







 







|






|




|







 







|







 







|





|







 







|
|
|
|







 







|

|
|
|
|
|
|







 







|







 







>

|







>







 







|







|







 







|
|







 







|








|


|










|
|








|







 







|
|
|
|







 







|







|







|
|







 







|
|







 







|







 







|



|



|



|







 







|













|







 







|









|







 







|







 







|


|







 







|


|


|


|


|


|


|


|







 







|







 







|







|







|







|







|







 







|







 







|







|







 







|


|









|







|







|







|







|







|


|













|








|


|


|


|










|







|







|









|


|








|







|








|


|


|







 







|




|







 







|







|


|


|


|







 







|







|







|


|


|


|











|
|



|







 







|







|


|


|


|










|


|








|


|


|


|







 







|


|


|







 







|







|







 







|








|


|









|


|












|


|


|









|







|


|








|







|







|







|







|


|









|







 







|







|


|







 







|











|







|







|







|







|







|







|







|








|







|


|







 







|







 







|







 







|



|
|







 







|


|


|


|


|


|


|


|


|


|







 







|



|



|



|



|



|



|



|


|


|



|

|







 







|
|


|
|


|
|


|
|


|
|


|
|


|
|


|
|


|

|


|

|


|

|


|

|







 







|
|



|
|



|
|



|
|



|
|



|
|



|
|



|
|


|

|


|

|




|

|


|


|







 







|


|







 







|







 







|







 







|







 







|







 







|






|



|







 







|







|




|



|



|







 







|




|



|



|







 







|







 







|


|


|







 







|








|



|



|



|







 







|



|







 







|







 







|







 







|








|







 







|
|







|







>







 







|







 







|







|







 







|







|







 







|







 







|


|


|



|


|







 







|


|









|







 







|







 







|







|







 







|






|


|

|



|







 







>







 







|





|


|







 







|



|



|
|

|







 







|



|



|



|




|



|



|



|







 







|


|



|




|



|



|



|



|







 







|


|











|
>





|






|
|








|

|









|








|



|










|







 







|












|


|










|
|




|
|



|
|
|







 







|







 







|







|







 







|


|













|












|









|



|












|






|





|





|





|





|






|






|






|






|



|
|
|







 







|










|







|


|



|


|







|




|







 







|







 







|








|







|



|







 







|




|







 







|







 







|



|







 







|


|









|







 







|



|






|


|







|







 







|







 







|



|


|








|


|







 







|


|







 







|







 







|


|


|







 







|



|



|


|







 







|







 







|


|



|



|


|



|



|



|







 







|







 







|


|


|



|












|







 







|







 







|







 







|


|







 







|


|


|



|







 







|







 







|


|


|


|







 







|







 







|






|







 







|







 







|



|



|


|



|



|


|







 







|



|


|










|





|







 







|


|


|


|







 







|







 







|


|


|



|







 







|


|


|



|







 







|



|







 







|







 







|






|


|


|


|


|


|



|







 







|


|


|







 







|







 







|


|







 







|






|







 







|







 







|







 







|







|


|









|


|


|







 







|







 







|


|







 







|



|



|







 







|







 







|



|







 







|



|



|



|



|



|



|







 







|







 







|


|



|







 







|







 







|


|


|



|



|



|


|







 







|







 







|



|



|



|







 







|







 







|







 







|







 







|



|




|




|







 







|








|



|







 







|


|







 







|











>







 







|




|







 







|








|







 







|



|


|


|







|







 







|


|


|







 







|
|



|
|






|







 







|
|



|
|



|







 







|









|







 







|









|
|



|







 







|







 







|


|


|







 







|










|


|







 







|



|








|


|










|





|







 







|







 







|


|







 







|







 







|







 







|







 







|


|







 







|







 







|







 







|







 







|







 







|







 







|


|


|










|


|


|



|


|



|







 







|



|



|







 







|







 







|



|



|







 







|







 







|


|




|


|



|













|


|







 







|


|







 







|







 







|



|





|



|



|







 







|


|








|







 







|


|



|







 







|







 







|



|







 







|







 







|


|


|


|



|



|







 







|




|




|










|







 







|







 







|







 







|


|






|



|







 







|


|









|



|







 







|




|


|







 







|







|













|

|

|








|
|
|
|





|
|


|
|


|
|
|
|







 







|

|




|

|







 







|










|
|
|





|
|


|


|
|
|







 







|

|




|

|







 







|









|
|




|
|


|
|












|
|

|
|





|
|

|
|







 







|

|

|








|
|
|








|
|
|








|
|
|








|
|
|








|
|
|








|
|
|








|
|
|



|
|




|
|
|



|
|







 







|

|




|

|













|

|




|

|












|
|
|



|
|
|









|
|
|
|









|
|

|








|
|
|







|
|
|
|












|

|




|

|










|










|
|
|










|

|

|




|

|

|













|


|

|

|










|

|
|











|

|




|

|











|






|







|









|
|

|





|
|

|







 







|

|

|











|






|



|







 







|
|

|





|
|

|







 







|
|









|












|

|
|







 







|
|

|





|
|


|







 







|

|




|


|







 







|

|




|


|













|
|

|







 







|
|

|







 







|









|
|

|



|
|



|
|

|



|
|







 







|
|

|



|
|

|













|

|

|










|

|

|










|









|








|

|

|










|
|
|
|
|
|









|
|
|
|
|
|









|
|
|
|
|
|










|
|
|
|
|
|







 







|



|




|



|




|




|







 







|





|









|









|





|










|








|


|







 







|




|



|







 







|




|






|
|

|







 







|







 







|
|

|
|









|
|
|
|
|
|







 







|
|

|
|









|
|

|
|










|
|


|
|







 







|
|


|
|







 







|




|



|





|




|





|







 







|


|


|


|












|


|


|


|


|












|


|


|


|







 







|













|


|







 







|







 







|







 







|



|







 







|







 







|


|







 







|







 







|







 







|







|







|



|







 







|



|







 







|







 







|


|







 







|



|






|






|



|






|






|



|






|







 







|

|

|







 







|

|







 







|

|







 







|







 







|




|







 







|









|


|







 







|



|



|


|


|


|


|


|


|







 







|



|



|



|



|



|



|

|






|





|







|





|





|






|







 







|






|



|



|



|



|



|





|






|







 







|



|



|


|


|


|







 







|



|



|



|



|



|







 







|



|



|



|



|



|






|






|






|







 







|






|



|



|



|



|



|






|







 







|



|



|



|



|



|







 







|





|



|







 







|



|







 







|






|






|
|
|







 







|
|
|






|






|







 







|
|
|







 







|



|



|



|












|




|




|




|




|



|



|



|



|

|





|







 







|


|










|



|



|



|



|



|



|







 







|


|


|
|


|
|


|


|







 







|












|







 







|







 







|



|







 







|

|



|



|



|







 







|


|







 







|









|







 







|








|











|








|












|








|







 







|



|



|



|



|







 







|







 







|





|





|





|





|






|






|







 







|







 







|







 







|







 







|







 







|







 







|


|


|


|


|


|













|











|





|





|





|





|





|







 







|







|







|







|







 







|



|



|



|







 







|







 







|







 







|




|




|



|




|












|



|




|











|



|




|












|










|



|




|







 







|



|



|



|






|







 







|



|



|



|




|







 







|



|




|










|



|




|







 







|


|







 







|







 







|







 







|


|







 







|







 







|



|







 







<
<




>
>
>
>







 







|


|





|







 







|







 







|







159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
...
209
210
211
212
213
214
215
216
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
243
244
245
246
247
248
249
250
251
252
253
...
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
...
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
...
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
...
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
....
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
....
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
....
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
....
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
....
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
....
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
....
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
....
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
....
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
....
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
....
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
....
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
....
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
....
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
....
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
....
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
....
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
....
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
....
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
....
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
....
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
....
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
....
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
....
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
....
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
....
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
....
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
....
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
....
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
....
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
....
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
....
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
....
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
....
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
....
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
....
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
....
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
....
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
....
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
....
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
....
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
....
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
....
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
....
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
....
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
....
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
....
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
....
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
....
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
....
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
....
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
....
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
....
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
....
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
....
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
....
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
....
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
....
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
....
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
....
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
....
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
....
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
....
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
....
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
....
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
....
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
....
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
....
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
....
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
....
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
....
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
....
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
....
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
....
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
....
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
....
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
....
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
....
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
....
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
....
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
....
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
....
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
....
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
....
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
....
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
....
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
....
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
....
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
....
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
....
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
....
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
....
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
....
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
.....
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
.....
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
.....
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
.....
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
.....
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
.....
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
.....
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
.....
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
.....
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
.....
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
.....
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
.....
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
.....
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
.....
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
.....
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
.....
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
.....
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
.....
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
.....
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
.....
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
.....
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
.....
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
.....
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
11603
.....
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
.....
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
.....
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729
11730
11731
11732
.....
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
.....
11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
.....
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
.....
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
.....
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
.....
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
.....
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
.....
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
.....
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
.....
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
.....
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
.....
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
.....
12499
12500
12501
12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
12513
.....
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
.....
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
.....
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
.....
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
12899
.....
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
.....
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
.....
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
.....
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
.....
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
.....
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
13430
13431
13432
.....
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
.....
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
.....
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
.....
18970
18971
18972
18973
18974
18975
18976
18977
18978
18979
18980
18981
18982
18983
18984
18985
18986
18987
18988
18989
18990
.....
19014
19015
19016
19017
19018
19019
19020
19021
19022
19023
19024
19025
19026
19027
19028
19029
19030
19031
19032
19033
19034
19035
19036
19037
19038
19039
19040
19041
19042
.....
19059
19060
19061
19062
19063
19064
19065
19066
19067
19068
19069
19070
19071
19072
19073
19074
19075
19076
19077
19078
19079
19080
19081
19082
19083
19084
19085
19086
19087
19088
19089
19090
19091
19092
19093
19094
19095
19096
19097
19098
19099
19100
19101
19102
19103
19104
19105
19106
.....
19108
19109
19110
19111
19112
19113
19114
19115
19116
19117
19118
19119
19120
19121
19122
.....
19154
19155
19156
19157
19158
19159
19160
19161
19162
19163
19164
19165
19166
19167
19168
19169
19170
19171
.....
19246
19247
19248
19249
19250
19251
19252
19253
19254
19255
19256
19257
19258
19259
19260
.....
19351
19352
19353
19354
19355
19356
19357
19358
19359
19360
19361
19362
19363
19364
19365
.....
19411
19412
19413
19414
19415
19416
19417
19418
19419
19420
19421
19422
19423
19424
19425
.....
19483
19484
19485
19486
19487
19488
19489
19490
19491
19492
19493
19494
19495
19496
19497
19498
19499
19500
.....
19511
19512
19513
19514
19515
19516
19517
19518
19519
19520
19521
19522
19523
19524
19525
.....
19602
19603
19604
19605
19606
19607
19608
19609
19610
19611
19612
19613
19614
19615
19616
.....
19620
19621
19622
19623
19624
19625
19626
19627
19628
19629
19630
19631
19632
19633
19634
.....
19654
19655
19656
19657
19658
19659
19660
19661
19662
19663
19664
19665
19666
19667
19668
.....
19669
19670
19671
19672
19673
19674
19675
19676
19677
19678
19679
19680
19681
19682
19683
.....
19731
19732
19733
19734
19735
19736
19737
19738
19739
19740
19741
19742
19743
19744
19745
19746
19747
19748
19749
19750
19751
19752
19753
19754
19755
19756
19757
19758
19759
19760
19761
19762
19763
19764
19765
19766
19767
19768
19769
19770
19771
19772
19773
19774
19775
19776
19777
19778
19779
.....
19962
19963
19964
19965
19966
19967
19968
19969
19970
19971
19972
19973
19974
19975
19976
19977
19978
19979
19980
19981
19982
19983
19984
.....
20070
20071
20072
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
.....
20085
20086
20087
20088
20089
20090
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
20101
20102
20103
20104
20105
20106
20107
.....
20109
20110
20111
20112
20113
20114
20115
20116
20117
20118
20119
20120
20121
20122
20123
.....
20319
20320
20321
20322
20323
20324
20325
20326
20327
20328
20329
20330
20331
20332
20333
20334
20335
20336
20337
20338
20339
20340
20341
20342
20343
20344
20345
20346
20347
20348
20349
20350
20351
20352
20353
20354
20355
20356
20357
20358
20359
20360
20361
20362
20363
20364
20365
.....
20372
20373
20374
20375
20376
20377
20378
20379
20380
20381
20382
20383
20384
20385
20386
20387
20388
20389
.....
20394
20395
20396
20397
20398
20399
20400
20401
20402
20403
20404
20405
20406
20407
20408
.....
20412
20413
20414
20415
20416
20417
20418
20419
20420
20421
20422
20423
20424
20425
20426
20427
20428
20429
20430
20431
20432
20433
20434
20435
20436
20437
20438
20439
20440
20441
20442
20443
20444
.....
20542
20543
20544
20545
20546
20547
20548
20549
20550
20551
20552
20553
20554
20555
20556
20557
20558
20559
20560
20561
20562
20563
20564
20565
20566
20567
20568
.....
20592
20593
20594
20595
20596
20597
20598
20599
20600
20601
20602
20603
20604
20605
20606
20607
20608
20609
20610
20611
20612
20613
.....
20637
20638
20639
20640
20641
20642
20643
20644
20645
20646
20647
20648
20649
20650
20651
.....
20745
20746
20747
20748
20749
20750
20751
20752
20753
20754
20755
20756
20757
20758
20759
20760
20761
20762
20763
.....
20806
20807
20808
20809
20810
20811
20812
20813
20814
20815
20816
20817
20818
20819
20820
.....
20861
20862
20863
20864
20865
20866
20867
20868
20869
20870
20871
20872
20873
20874
20875
20876
20877
20878
20879
20880
20881
20882
20883
20884
20885
20886
20887
20888
20889
20890
20891
20892
.....
20931
20932
20933
20934
20935
20936
20937
20938
20939
20940
20941
20942
20943
20944
20945
20946
20947
20948
20949
20950
20951
20952
20953
20954
20955
20956
20957
20958
20959
20960
20961
20962
20963
20964
20965
20966
.....
21214
21215
21216
21217
21218
21219
21220
21221
21222
21223
21224
21225
21226
21227
21228
.....
21229
21230
21231
21232
21233
21234
21235
21236
21237
21238
21239
21240
21241
21242
21243
.....
21511
21512
21513
21514
21515
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
.....
21587
21588
21589
21590
21591
21592
21593
21594
21595
21596
21597
21598
21599
21600
21601
21602
21603
21604
21605
21606
21607
21608
21609
21610
21611
21612
21613
21614
21615
21616
21617
21618
.....
21672
21673
21674
21675
21676
21677
21678
21679
21680
21681
21682
21683
21684
21685
21686
21687
21688
21689
21690
21691
21692
21693
21694
.....
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723
21724
21725
21726
21727
21728
21729
21730
21731
21732
21733
21734
21735
21736
21737
21738
21739
21740
21741
21742
21743
21744
21745
21746
21747
21748
21749
21750
21751
21752
21753
21754
21755
21756
21757
21758
21759
21760
21761
21762
21763
21764
.....
21770
21771
21772
21773
21774
21775
21776
21777
21778
21779
21780
21781
21782
21783
21784
21785
21786
21787
21788
21789
21790
21791
21792
21793
.....
21794
21795
21796
21797
21798
21799
21800
21801
21802
21803
21804
21805
21806
21807
21808
21809
21810
21811
21812
21813
21814
21815
21816
21817
21818
21819
21820
21821
21822
21823
21824
21825
21826
21827
21828
21829
21830
21831
21832
21833
21834
21835
21836
.....
21848
21849
21850
21851
21852
21853
21854
21855
21856
21857
21858
21859
21860
21861
21862
21863
21864
21865
21866
21867
21868
21869
21870
21871
.....
21872
21873
21874
21875
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
21899
21900
21901
21902
21903
21904
21905
21906
21907
21908
21909
21910
21911
21912
21913
21914
21915
21916
21917
21918
21919
21920
21921
21922
21923
21924
21925
21926
21927
21928
21929
21930
21931
21932
21933
21934
.....
21937
21938
21939
21940
21941
21942
21943
21944
21945
21946
21947
21948
21949
21950
21951
21952
21953
21954
21955
21956
21957
21958
21959
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
21981
21982
21983
21984
21985
21986
21987
21988
21989
21990
21991
21992
21993
21994
21995
21996
21997
21998
21999
22000
22001
22002
22003
22004
22005
22006
22007
22008
22009
22010
22011
22012
22013
22014
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
22025
22026
22027
22028
22029
22030
22031
22032
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
22043
22044
22045
22046
22047
22048
22049
.....
22063
22064
22065
22066
22067
22068
22069
22070
22071
22072
22073
22074
22075
22076
22077
22078
22079
22080
22081
22082
22083
22084
22085
22086
22087
22088
22089
22090
22091
22092
22093
22094
22095
22096
22097
22098
22099
22100
22101
22102
22103
22104
22105
22106
22107
22108
22109
22110
22111
22112
22113
22114
22115
22116
22117
22118
22119
22120
22121
22122
22123
22124
22125
22126
22127
22128
22129
22130
22131
22132
22133
22134
22135
22136
22137
22138
22139
22140
22141
22142
22143
22144
22145
22146
22147
22148
22149
22150
22151
22152
22153
22154
22155
22156
22157
22158
22159
22160
22161
22162
22163
22164
22165
22166
22167
22168
22169
22170
22171
22172
22173
22174
22175
22176
22177
22178
22179
22180
22181
22182
22183
22184
22185
22186
22187
22188
22189
22190
22191
22192
22193
22194
22195
22196
22197
22198
22199
22200
22201
22202
22203
22204
22205
22206
22207
22208
22209
22210
22211
22212
22213
22214
22215
22216
22217
22218
22219
22220
22221
22222
22223
22224
22225
22226
22227
22228
22229
22230
22231
22232
22233
22234
22235
22236
22237
22238
22239
22240
22241
22242
22243
22244
22245
22246
22247
22248
22249
22250
22251
22252
22253
22254
22255
22256
22257
22258
22259
22260
22261
22262
22263
22264
22265
22266
22267
22268
22269
22270
22271
22272
22273
22274
22275
22276
22277
22278
22279
22280
22281
22282
22283
22284
22285
22286
22287
22288
22289
22290
22291
22292
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303
22304
22305
22306
22307
22308
22309
22310
22311
22312
22313
22314
22315
22316
22317
22318
22319
22320
22321
22322
22323
22324
22325
22326
22327
22328
22329
22330
22331
22332
22333
22334
22335
22336
22337
22338
22339
22340
22341
22342
22343
22344
22345
22346
22347
22348
22349
22350
22351
22352
22353
.....
22354
22355
22356
22357
22358
22359
22360
22361
22362
22363
22364
22365
22366
22367
22368
22369
22370
22371
22372
22373
22374
22375
22376
22377
22378
22379
22380
22381
22382
22383
22384
22385
22386
22387
22388
22389
22390
22391
22392
22393
22394
22395
.....
22399
22400
22401
22402
22403
22404
22405
22406
22407
22408
22409
22410
22411
22412
22413
22414
22415
22416
22417
22418
22419
22420
22421
22422
22423
22424
22425
.....
22432
22433
22434
22435
22436
22437
22438
22439
22440
22441
22442
22443
22444
22445
22446
22447
22448
22449
22450
22451
22452
22453
22454
22455
22456
22457
22458
22459
22460
22461
22462
22463
22464
22465
22466
22467
22468
22469
22470
22471
22472
22473
.....
22475
22476
22477
22478
22479
22480
22481
22482
22483
22484
22485
22486
22487
22488
22489
22490
22491
22492
22493
22494
22495
22496
22497
22498
22499
22500
22501
22502
.....
22505
22506
22507
22508
22509
22510
22511
22512
22513
22514
22515
22516
22517
22518
22519
22520
22521
22522
22523
22524
22525
22526
22527
22528
22529
.....
22530
22531
22532
22533
22534
22535
22536
22537
22538
22539
22540
22541
22542
22543
22544
22545
22546
22547
22548
22549
22550
22551
22552
22553
22554
22555
22556
22557
22558
22559
22560
22561
22562
22563
22564
22565
22566
22567
22568
22569
22570
22571
.....
22572
22573
22574
22575
22576
22577
22578
22579
22580
22581
22582
22583
22584
22585
22586
22587
22588
22589
.....
22594
22595
22596
22597
22598
22599
22600
22601
22602
22603
22604
22605
22606
22607
22608
22609
22610
22611
22612
22613
22614
22615
22616
22617
22618
22619
22620
22621
22622
22623
22624
22625
22626
22627
22628
22629
22630
22631
22632
22633
22634
22635
22636
22637
22638
.....
22640
22641
22642
22643
22644
22645
22646
22647
22648
22649
22650
22651
22652
22653
22654
22655
22656
22657
22658
22659
22660
22661
22662
22663
22664
22665
22666
22667
22668
22669
22670
22671
22672
22673
22674
22675
22676
22677
22678
22679
22680
22681
22682
22683
22684
22685
22686
22687
22688
22689
22690
22691
22692
22693
22694
22695
22696
22697
22698
22699
22700
22701
22702
22703
22704
22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734
22735
22736
22737
22738
22739
22740
22741
22742
22743
22744
22745
22746
22747
22748
22749
22750
22751
22752
22753
22754
22755
22756
22757
22758
22759
22760
22761
22762
22763
22764
22765
22766
22767
22768
22769
22770
22771
22772
22773
22774
22775
22776
22777
22778
22779
22780
22781
22782
22783
22784
22785
22786
22787
22788
22789
22790
22791
22792
22793
.....
22802
22803
22804
22805
22806
22807
22808
22809
22810
22811
22812
22813
22814
22815
22816
22817
22818
22819
22820
22821
22822
22823
22824
22825
22826
22827
22828
22829
22830
22831
22832
22833
22834
22835
22836
22837
22838
22839
.....
22848
22849
22850
22851
22852
22853
22854
22855
22856
22857
22858
22859
22860
22861
22862
22863
22864
22865
22866
22867
22868
22869
22870
22871
22872
22873
22874
22875
22876
22877
22878
22879
22880
22881
22882
22883
22884
22885
22886
22887
22888
22889
22890
22891
22892
22893
22894
22895
22896
22897
22898
22899
22900
22901
22902
22903
22904
22905
22906
22907
22908
22909
22910
22911
22912
22913
22914
22915
22916
22917
.....
22964
22965
22966
22967
22968
22969
22970
22971
22972
22973
22974
22975
22976
22977
22978
22979
22980
22981
22982
22983
22984
22985
22986
22987
.....
22996
22997
22998
22999
23000
23001
23002
23003
23004
23005
23006
23007
23008
23009
23010
23011
23012
23013
23014
23015
23016
23017
23018
23019
23020
23021
23022
23023
23024
23025
.....
23076
23077
23078
23079
23080
23081
23082
23083
23084
23085
23086
23087
23088
23089
23090
.....
23172
23173
23174
23175
23176
23177
23178
23179
23180
23181
23182
23183
23184
23185
23186
23187
23188
23189
23190
23191
23192
23193
23194
23195
23196
23197
23198
23199
23200
23201
23202
23203
23204
23205
.....
23206
23207
23208
23209
23210
23211
23212
23213
23214
23215
23216
23217
23218
23219
23220
23221
23222
23223
23224
23225
23226
23227
23228
23229
23230
23231
23232
23233
23234
23235
23236
23237
23238
23239
23240
23241
23242
23243
23244
23245
23246
23247
23248
23249
23250
23251
23252
23253
23254
.....
23256
23257
23258
23259
23260
23261
23262
23263
23264
23265
23266
23267
23268
23269
23270
23271
23272
23273
23274
23275
.....
23313
23314
23315
23316
23317
23318
23319
23320
23321
23322
23323
23324
23325
23326
23327
23328
23329
23330
23331
23332
23333
23334
23335
23336
23337
23338
23339
23340
23341
23342
23343
23344
23345
23346
23347
23348
23349
23350
23351
23352
23353
.....
23387
23388
23389
23390
23391
23392
23393
23394
23395
23396
23397
23398
23399
23400
23401
23402
23403
23404
23405
23406
23407
23408
23409
23410
23411
23412
23413
23414
23415
23416
23417
23418
23419
23420
23421
23422
23423
23424
23425
23426
23427
23428
23429
23430
23431
23432
23433
23434
23435
23436
23437
23438
23439
23440
23441
23442
23443
23444
23445
23446
23447
23448
23449
23450
23451
23452
23453
23454
23455
23456
23457
.....
23534
23535
23536
23537
23538
23539
23540
23541
23542
23543
23544
23545
23546
23547
23548
23549
23550
23551
23552
23553
23554
23555
23556
23557
23558
23559
23560
23561
23562
23563
23564
23565
.....
23594
23595
23596
23597
23598
23599
23600
23601
23602
23603
23604
23605
23606
23607
23608
.....
23615
23616
23617
23618
23619
23620
23621
23622
23623
23624
23625
23626
23627
23628
23629
.....
23647
23648
23649
23650
23651
23652
23653
23654
23655
23656
23657
23658
23659
23660
23661
23662
23663
23664
23665
.....
23679
23680
23681
23682
23683
23684
23685
23686
23687
23688
23689
23690
23691
23692
23693
.....
23845
23846
23847
23848
23849
23850
23851
23852
23853
23854
23855
23856
23857
23858
23859
23860
23861
23862
.....
23868
23869
23870
23871
23872
23873
23874
23875
23876
23877
23878
23879
23880
23881
23882
.....
23890
23891
23892
23893
23894
23895
23896
23897
23898
23899
23900
23901
23902
23903
23904
.....
23910
23911
23912
23913
23914
23915
23916
23917
23918
23919
23920
23921
23922
23923
23924
23925
23926
23927
23928
23929
23930
23931
23932
23933
23934
23935
23936
23937
23938
23939
23940
23941
23942
23943
23944
.....
23959
23960
23961
23962
23963
23964
23965
23966
23967
23968
23969
23970
23971
23972
23973
23974
23975
23976
23977
.....
24064
24065
24066
24067
24068
24069
24070
24071
24072
24073
24074
24075
24076
24077
24078
.....
24357
24358
24359
24360
24361
24362
24363
24364
24365
24366
24367
24368
24369
24370
24371
24372
24373
24374
.....
25185
25186
25187
25188
25189
25190
25191
25192
25193
25194
25195
25196
25197
25198
25199
25200
25201
25202
25203
25204
25205
25206
25207
25208
25209
25210
25211
25212
25213
25214
25215
25216
25217
25218
25219
25220
25221
25222
25223
25224
25225
25226
25227
25228
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
25240
25241
25242
25243
25244
25245
25246
.....
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
25399
25400
25401
25402
25403
25404
25405
.....
26266
26267
26268
26269
26270
26271
26272
26273
26274
26275
26276
26277
26278
26279
26280
26281
26282
.....
26286
26287
26288
26289
26290
26291
26292
26293
26294
26295
26296
26297
26298
26299
26300
26301
26302
.....
26332
26333
26334
26335
26336
26337
26338
26339
26340
26341
26342
26343
26344
26345
26346
.....
26488
26489
26490
26491
26492
26493
26494
26495
26496
26497
26498
26499
26500
26501
26502
26503
26504
26505
26506
26507
.....
26561
26562
26563
26564
26565
26566
26567
26568
26569
26570
26571
26572
26573
26574
26575
26576
26577
26578
26579
26580
26581
26582
26583
26584
26585
26586
26587
26588
.....
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
26640
26641
26642
26643
26644
26645
26646
26647
26648
26649
26650
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
26661
26662
26663
26664
26665
26666
26667
.....
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784
26785
26786
26787
26788
26789
26790
26791
26792
26793
26794
26795
26796
26797
26798
26799
26800
26801
26802
26803
26804
26805
26806
26807
.....
26907
26908
26909
26910
26911
26912
26913
26914
26915
26916
26917
26918
26919
26920
26921
26922
26923
26924
26925
26926
26927
26928
26929
26930
26931
26932
26933
26934
26935
26936
26937
26938
26939
26940
26941
26942
26943
26944
26945
26946
26947
26948
26949
26950
26951
26952
26953
26954
26955
26956
26957
26958
26959
26960
26961
.....
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
27048
27049
27050
27051
27052
27053
27054
27055
27056
27057
27058
.....
27074
27075
27076
27077
27078
27079
27080
27081
27082
27083
27084
27085
27086
27087
27088
27089
27090
27091
27092
27093
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108
.....
27143
27144
27145
27146
27147
27148
27149
27150
27151
27152
27153
27154
27155
27156
27157
27158
27159
27160
27161
27162
27163
27164
27165
27166
27167
27168
27169
27170
27171
27172
27173
27174
27175
27176
27177
27178
27179
27180
27181
27182
27183
27184
27185
27186
27187
27188
27189
27190
27191
27192
27193
27194
27195
27196
27197
27198
.....
27242
27243
27244
27245
27246
27247
27248
27249
27250
27251
27252
27253
27254
27255
27256
27257
27258
27259
27260
27261
27262
27263
27264
27265
27266
27267
27268
27269
27270
27271
27272
27273
27274
27275
27276
27277
27278
27279
27280
27281
27282
27283
27284
27285
27286
27287
27288
27289
27290
.....
27321
27322
27323
27324
27325
27326
27327
27328
27329
27330
27331
27332
27333
27334
27335
27336
27337
27338
27339
27340
27341
27342
27343
27344
27345
27346
27347
27348
27349
27350
27351
27352
27353
27354
27355
.....
27397
27398
27399
27400
27401
27402
27403
27404
27405
27406
27407
27408
27409
27410
27411
27412
27413
27414
27415
27416
27417
27418
27419
27420
27421
.....
27432
27433
27434
27435
27436
27437
27438
27439
27440
27441
27442
27443
27444
27445
27446
27447
27448
27449
27450
.....
27487
27488
27489
27490
27491
27492
27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505
27506
27507
27508
27509
27510
27511
27512
27513
27514
27515
27516
27517
.....
27546
27547
27548
27549
27550
27551
27552
27553
27554
27555
27556
27557
27558
27559
27560
27561
27562
27563
27564
27565
27566
27567
27568
27569
27570
27571
27572
27573
27574
27575
27576
.....
27599
27600
27601
27602
27603
27604
27605
27606
27607
27608
27609
27610
27611
27612
27613
27614
27615
.....
27705
27706
27707
27708
27709
27710
27711
27712
27713
27714
27715
27716
27717
27718
27719
27720
27721
27722
27723
27724
27725
27726
27727
27728
27729
27730
27731
27732
27733
27734
27735
27736
27737
27738
27739
27740
27741
27742
27743
27744
27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
27762
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773
27774
27775
27776
27777
27778
27779
27780
27781
27782
27783
27784
27785
27786
27787
27788
.....
27829
27830
27831
27832
27833
27834
27835
27836
27837
27838
27839
27840
27841
27842
27843
27844
27845
27846
27847
27848
27849
27850
27851
27852
27853
27854
27855
27856
27857
27858
27859
27860
27861
27862
27863
27864
27865
27866
27867
27868
27869
27870
27871
27872
27873
27874
27875
27876
27877
27878
27879
27880
27881
.....
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069
.....
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
.....
28226
28227
28228
28229
28230
28231
28232
28233
28234
28235
28236
28237
28238
28239
28240
.....
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
28303
28304
28305
28306
28307
28308
28309
.....
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
.....
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
28456
28457
28458
28459
28460
28461
28462
.....
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
28528
28529
28530
28531
28532
28533
28534
.....
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
.....
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
.....
28793
28794
28795
28796
28797
28798
28799
28800
28801
28802
28803
28804
28805
28806
28807
.....
29058
29059
29060
29061
29062
29063
29064
29065
29066
29067
29068
29069
29070
29071
29072
29073
29074
29075
29076
29077
29078
29079
29080
29081
29082
29083
29084
29085
29086
29087
29088
29089
29090
29091
29092
29093
29094
29095
29096
29097
29098
29099
29100
29101
29102
29103
29104
29105
29106
29107
29108
29109
29110
.....
29136
29137
29138
29139
29140
29141
29142
29143
29144
29145
29146
29147
29148
29149
29150
.....
29154
29155
29156
29157
29158
29159
29160
29161
29162
29163
29164
29165
29166
29167
29168
.....
29172
29173
29174
29175
29176
29177
29178
29179
29180
29181
29182
29183
29184
29185
29186
.....
29190
29191
29192
29193
29194
29195
29196
29197
29198
29199
29200
29201
29202
29203
29204
.....
29208
29209
29210
29211
29212
29213
29214
29215
29216
29217
29218
29219
29220
29221
29222
.....
29228
29229
29230
29231
29232
29233
29234
29235
29236
29237
29238
29239
29240
29241
29242
29243
29244
29245
29246
29247
29248
29249
29250
29251
29252
29253
29254
29255
29256
29257
29258
29259
29260
29261
29262
29263
29264
29265
29266
29267
29268
29269
29270
29271
29272
29273
29274
29275
29276
29277
29278
29279
29280
29281
29282
29283
29284
29285
29286
29287
29288
29289
29290
29291
29292
29293
29294
29295
29296
29297
29298
29299
29300
29301
29302
29303
29304
29305
29306
29307
29308
29309
29310
29311
29312
29313
.....
29320
29321
29322
29323
29324
29325
29326
29327
29328
29329
29330
29331
29332
29333
29334
29335
29336
29337
29338
29339
29340
29341
29342
29343
29344
29345
29346
29347
29348
29349
29350
29351
29352
29353
29354
29355
29356
29357
29358
.....
29362
29363
29364
29365
29366
29367
29368
29369
29370
29371
29372
29373
29374
29375
29376
29377
29378
29379
29380
29381
29382
29383
29384
29385
29386
29387
29388
.....
29405
29406
29407
29408
29409
29410
29411
29412
29413
29414
29415
29416
29417
29418
29419
.....
29783
29784
29785
29786
29787
29788
29789
29790
29791
29792
29793
29794
29795
29796
29797
.....
29937
29938
29939
29940
29941
29942
29943
29944
29945
29946
29947
29948
29949
29950
29951
29952
29953
29954
29955
29956
29957
29958
29959
29960
29961
29962
29963
29964
29965
29966
29967
29968
29969
29970
29971
29972
29973
29974
29975
29976
29977
29978
29979
29980
29981
29982
29983
29984
29985
29986
29987
29988
29989
29990
29991
29992
29993
29994
29995
29996
29997
29998
29999
30000
30001
30002
30003
30004
30005
30006
30007
30008
30009
30010
30011
30012
30013
30014
30015
30016
30017
30018
30019
30020
30021
30022
30023
30024
30025
30026
30027
30028
30029
30030
30031
30032
30033
30034
30035
30036
30037
30038
30039
30040
30041
30042
30043
30044
30045
30046
.....
30047
30048
30049
30050
30051
30052
30053
30054
30055
30056
30057
30058
30059
30060
30061
30062
30063
30064
30065
30066
30067
30068
30069
30070
30071
30072
30073
30074
30075
30076
30077
30078
30079
30080
.....
30083
30084
30085
30086
30087
30088
30089
30090
30091
30092
30093
30094
30095
30096
30097
30098
30099
30100
30101
30102
30103
30104
30105
30106
30107
30108
30109
30110
30111
30112
30113
30114
.....
30116
30117
30118
30119
30120
30121
30122
30123
30124
30125
30126
30127
30128
30129
30130
30131
30132
30133
30134
30135
30136
30137
30138
30139
30140
30141
30142
30143
30144
30145
30146
30147
30148
30149
30150
30151
30152
30153
30154
30155
30156
30157
30158
30159
.....
30347
30348
30349
30350
30351
30352
30353
30354
30355
30356
30357
30358
30359
30360
30361
30362
30363
30364
.....
30747
30748
30749
30750
30751
30752
30753
30754
30755
30756
30757
30758
30759
30760
30761
.....
30853
30854
30855
30856
30857
30858
30859
30860
30861
30862
30863
30864
30865
30866
30867
.....
31036
31037
31038
31039
31040
31041
31042
31043
31044
31045
31046
31047
31048
31049
31050
31051
31052
31053
.....
31261
31262
31263
31264
31265
31266
31267
31268
31269
31270
31271
31272
31273
31274
31275
.....
31407
31408
31409
31410
31411
31412
31413
31414
31415
31416
31417
31418
31419
31420
31421
31422
31423
31424
31425
.....
31429
31430
31431
31432
31433
31434
31435


31436
31437
31438
31439
31440
31441
31442
31443
31444
31445
31446
31447
31448
31449
31450
.....
31549
31550
31551
31552
31553
31554
31555
31556
31557
31558
31559
31560
31561
31562
31563
31564
31565
31566
31567
31568
31569
31570
31571
31572
.....
32691
32692
32693
32694
32695
32696
32697
32698
32699
32700
32701
32702
32703
32704
32705
.....
34700
34701
34702
34703
34704
34705
34706
34707
34708
34709
34710
34711
34712
34713
34714
OPTLABEL/basic:     Typographie
OPTLABEL/typo:      Signes typographiques
OPTLABEL/apos:      Apostrophe typographique|Correction des apostrophes droites. Automatisme possible dans le menu Outils > Options d’autocorrection > Options linguistiques > Guillemets simples > Remplacer (à cocher)
OPTLABEL/eepi:      Écriture épicène|Normalisation de l’écriture épicène avec points médians.
OPTLABEL/esp:       Espaces surnuméraires|Signale les espaces inutiles entre les mots, en début et en fin de ligne.
OPTLABEL/tab:       Tabulations surnuméraires|Signale les tabulations inutiles en début et en fin de ligne.
OPTLABEL/nbsp:      Espaces insécables|Vérifie les espaces insécables avec les ponctuations « ! ? : ; » (à désactiver si vous utilisez une police Graphite)
OPTLABEL/maj:       Majuscules|Vérifie l’utilisation des majuscules et des minuscules (par exemple, « la raison d’État », « les Européens »).
OPTLABEL/minis:     Majuscules pour ministères|Majuscules pour les intitulés des ministères.
OPTLABEL/virg:      Virgules|Virgules manquantes avant “mais”, “car” et “etc.”.
#OPTLABEL/romain:    Nombres romains|Utilise les caractères dédiés (petites majuscules) pour les nombres romains.
OPTLABEL/poncfin:   Ponctuation finale [!]|Vérifie s’il manque une ponctuation finale au paragraphe (seulement pour les paragraphes constitués de plusieurs phrases).
OPTLABEL/tu:        Traits d’union et soudures|Cherche les traits d’union manquants ou inutiles.
OPTLABEL/num:       Nombres|Espaces insécables sur les grands nombres (> 10 000). Vérifie la présence de « O » au lieu de « 0 ».
OPTLABEL/unit:      Espaces insécables avant unités de mesure
OPTLABEL/nf:        Normes françaises
OPTLABEL/liga:      Signaler ligatures typographiques|Ligatures de fi, fl, ff, ffi, ffl, ft, st.
OPTLABEL/mapos:     Apostrophe manquante après lettres isolées [!]|Apostrophe manquante après les lettres l d s n c j m t ç. Cette option sert surtout à repérer les défauts de numérisation des textes et est déconseillée pour les textes scientifiques.
OPTLABEL/chim:      Chimie|Typographie des composés chimiques (H₂O, CO₂, etc.).
OPTLABEL/ocr:       Erreurs de numérisation (OCR) [!]|Erreurs de reconnaissance optique des caractères. Beaucoup de faux positifs.

OPTLABEL/gramm:     Noms et adjectifs
OPTLABEL/conf:      Confusions et faux-amis|Cherche des erreurs souvent dues à l’homonymie (par exemple, les confusions entre « faîte » et « faite »).
OPTLABEL/loc:       Locutions|Écriture des locutions usuelles.
OPTLABEL/gn:        Accords (genre et nombre)|Accords des noms et des adjectifs.

OPTLABEL/verbs:     Verbes
OPTLABEL/conj:      Conjugaisons|Accord des verbes avec leur sujet.
OPTLABEL/infi:      Infinitif|Confusion entre l’infinitif et d’autres formes.
OPTLABEL/imp:       Impératif|Vérifie notamment la deuxième personne du singulier (par exemple, les erreurs : « vas… », « prend… », « manges… »).
OPTLABEL/inte:      Interrogatif|Vérifie les formes interrogatives et suggère de lier les pronoms personnels avec les verbes.
OPTLABEL/ppas:      Participes passés, adjectifs
OPTLABEL/vmode:     Modes verbaux

OPTLABEL/style:     Style
OPTLABEL/bs:        Populaire|Souligne un langage courant considéré comme erroné, comme « malgré que ».
OPTLABEL/pleo:      Pléonasmes|Repère des redondances sémantiques, comme « au jour d’aujourd’hui », « monter en haut », etc.
OPTLABEL/eleu:      Élisions et euphonies|Signale les élisions incorrectes et les tournures dysphoniques.
OPTLABEL/neg:       Adverbe de négation [!]|Ne … pas, ne … jamais, etc.
OPTLABEL/redon1:    Répétitions dans le paragraphe [!]|Sont exclus les mots grammaticaux, ceux commençant par une majuscule, ainsi que “être” et “avoir”.
OPTLABEL/redon2:    Répétitions dans la phrase [!]|Sont exclus les mots grammaticaux, ainsi que “être” et “avoir”.

OPTLABEL/misc:      Divers
OPTLABEL/mc:        Mots composés [!]|Vérifie si les mots composés à trait d’union existent dans le dictionnaire (hormis ceux commençant par ex-, mi-, quasi-, semi-, non-, demi- et d’autres préfixes communs).
................................................................................
OPTLANG/en_US:      Grammar checking (French)
OPTLABEL/basic:     Typography
OPTLABEL/typo:      Typographical glyphs
OPTLABEL/apos:      Typographical apostrophe|Detects typewriter apostrophes. You may get automatically typographical apostrophes in Tools > Autocorrect options > Localized options > Single quote > Replace (checkbox).
OPTLABEL/eepi:      Epicene writing|Normalization of epicene writing (usage of middle dots).
OPTLABEL/esp:       Useless spaces|Checks spaces within words and at the beginning and the end of lines.
OPTLABEL/tab:       Useless tabulations|Checks tabulations at the beginning and the end of lines.
OPTLABEL/nbsp:      Non-breakable spaces|Checks the use of non-breakable spaces with the following punctuation marks: « ! ? : ; » (deactivate it if you use a Graphite font).
OPTLABEL/maj:       Capitals|Checks the use of uppercase and lowercase letters (i.e. « la raison d’État », « les Européens »).
OPTLABEL/minis:     Capitals for ministry|Capital letters for ministry.
OPTLABEL/virg:      Commas|Missing commas before “mais”, “car” and “etc.”.
OPTLABEL/poncfin:   Ending punctuation [!]|Checks if an ending punctuation is missing on paragraphs (only for multi-sentences paragraphs).
#OPTLABEL/romain:    Roman numerals|Use dedicated characters (small caps) for roman numerals.
OPTLABEL/tu:        Hyphens and junctions|Checks missing or useless hyphens.
OPTLABEL/num:       Numerals|Large numerals and « O » instead of « 0 ».
OPTLABEL/unit:      Non-breaking spaces before units of measurement
OPTLABEL/nf:        French standards
OPTLABEL/liga:      Report typographical ligatures|Ligatures of fi, fl, ff, ffi, ffl, ft, st.
OPTLABEL/mapos:     Missing apostrophes after single letters [!]|Missing apostrophes after l d s n c j m t ç. This option is mostly useful to detect defects of digitized texts and is not recommended for scientific texts.
OPTLABEL/chim:      Chemistry|Typography for molecules (H₂O, CO₂, etc.)
OPTLABEL/ocr:       OCR errors [!]|Warning: many false positives.

OPTLABEL/gramm:     Nouns and Adjectives
OPTLABEL/conf:      Confusions and false friends|Seeks errors often due to homonymy (i.e. confusions between « faîte » et « faite »).
OPTLABEL/loc:       Locutions|Writing of common locutions.
OPTLABEL/gn:        Agreement (gender and number)|Agreement between nouns and adjectives.

OPTLABEL/verbs:     Verbs
OPTLABEL/conj:      Conjugation|Agreement between verbs and their subject.
OPTLABEL/infi:      Infinitive|Checks confusions between infinitive forms and other forms.
OPTLABEL/imp:       Imperative mood|Checks particularly verbs at second person singular (i.e. errors such as: « vas … », « prend … », « manges … »).
OPTLABEL/inte:      Interrogative mood|Checks interrogative forms and suggests linking the personal pronouns with verbs.
OPTLABEL/ppas:      Past participles, adjectives|Checks subject agreement with past participles and adjectives.
OPTLABEL/vmode:     Verbal modes

OPTLABEL/style:     Style
OPTLABEL/bs:        Popular style|Underlines misuse of language though informal and commonly used.
OPTLABEL/pleo:      Pleonasms|Semantic replications, like « au jour d’aujourd’hui », « monter en haut », etc.
OPTLABEL/eleu:      Élisions et euphonies|Signale les élisions incorrectes et les tournures dysphoniques.
OPTLABEL/neg:       Negation adverb [!]|Ne … pas, ne … jamais, etc.
OPTLABEL/redon1:    Duplicates in paragraph [!]|Are excluded grammatical words, words beginning by a capital letter, and also “être” and “avoir”.
OPTLABEL/redon2:    Duplicates in sentence [!]|Are excluded grammatical words, and also “être” and “avoir”.

OPTLABEL/misc:      Miscellaneous
OPTLABEL/mc:        Compound words [!]|Check if words with hyphen exist in the dictionary (except those beginning by ex-, mi-, quasi-, semi-, non-, demi- and other common prefixes).
................................................................................
!!
!!
!!! Espaces & tabulations                                                                         !!
!!
!!

# Espaces surnuméraires
# Note : les tabulations ne sont pas soulignées dans LibreOffice. Mais l’erreur est bien présente.
__<s>/tab(tab_début_ligne)__           ^[      ]+ <<- ->> ""                   && Espace·s en début de ligne à supprimer : utilisez les retraits de paragraphe.
__<s>/tab(tab_fin_ligne)__             [       ]+$ <<- ->> ""                  && Espace·s en fin de ligne à supprimer.

TEST: __tab__ {{    }}Espaces surnuméraires.                                    ->> ""
TEST: __tab__ {{        }}— Je suis là…
TEST: __tab__ Espaces surnuméraires.{{              }}                          ->> ""
TEST: __tab__ Fin de ligne{{    }}


__<s>/esp(esp_début_ligne)__        ^[   ]+ <<- ->> ""                          && Espace·s en début de ligne à supprimer : utilisez les retraits de paragraphe (ou les tabulations à la rigueur).
__<s>/esp(esp_fin_ligne)__          [   ]+$ <<- ->> ""                                              && Espace·s en fin de ligne à supprimer.
__<s>/esp(esp_milieu_ligne)__       (?:\b|[.?!,:;%‰‱˚»”])(  +) @@$ <<- -1>> " "                   && Espace·s surnuméraire·s à supprimer.

TEST: {{         }}Encore des espaces surnuméraires.                    ->> ""
TEST: {{ }}— Je suis là…
TEST: Espaces surnuméraires.{{         }}                               ->> ""
TEST: Fin de ligne{{ }}
TEST: Espaces{{                 }}surnuméraires.                        ->> " "


# Espaces insécable et sécable, et tabulations
__<s>/esp(esp_mélangés1)__              (?:  |  ) <<- ->> " | "                                     && Incohérence : l’espace insécable à côté de l’espace sécable n’a pas d’effet.
__<s>/esp(esp_mélangés2)__              (?:\u0009[  ]|[  ]\u0009) <<- ->> " |	"                   && Incohérence : espace et tabulation.

TEST: J’espère que ça ne va pas durer trop longtemps avec Mr{{  }}Paul.
TEST: J’espère que ça{{ 	}}va pas durer. (Ici, espace suivi d’une tabulation)      ->>  " |	"


# Espaces insécables multiples
__<s>/esp(esp_insécables_multiples)__   "[  ][  ]+" <<- ->> " | "                                   && Espace·s insécable·s surnuméraire·s à supprimer.

TEST: «{{  }}Je suis partie. »
TEST: « Je suis partie.{{  }}»


# Espace avant ou après tiret
__[i]/esp(esp_avant_après_tiret)__
................................................................................
__<s>/typo(typo_guillemets_ouvrants_inverses1)__
    \w([«“][  ]) @@1
        <<- -1>> " »|”"                                                                             && Mettez des guillemets fermants plutôt qu’ouvrants.
__<s>/typo(typo_guillemets_ouvrants_inverses2)__
    ([«“])[  ]*$ @@0
        <<- -1>> " »|”"                                                                             && Mettez des guillemets fermants plutôt qu’ouvrants.
__<s>/typo(typo_guillemets_ouvrants_inverses3)__
    \w([  ][«“])[  ]?[!?,:;.…](?![  ]?[»”]) @@1
        <<- -1>> " »|”"                                                                             && Mettez des guillemets fermants plutôt qu’ouvrants.

TEST: « Le grand homme{{«}}
TEST: « La grande femme{{ «}} !
TEST: Eux et leurs{{ ”}}amis{{”}} sont finis !
TEST: Vos {{“}}amis{{“ }}et vous êtes finis !
TEST: le signe “…” ou le signe « ! » ?



#
#
# NOTE
# Tout contrôle des espaces existants doit se faire avant ce point.
................................................................................


## Apostrophes manquantes
__[i>/typo(typo_apostrophe_manquante)!8__
    "((lorsqu|puisqu|presqu|quoiqu|jusqu|qu|aujourd|entr) )[aeéiouhyàîèêôû<]"  @@0,0
        <<- -1>> \2’                                                                                && Il manque vraisemblablement une apostrophe.
        <<- ~1>> \2’
# Solution prudente
__[i>/typo(typo_apostrophe_manquante_prudence1)!8__
    ne ([mtsl] )[aeéiouhyàîèêôû<]  @@3
        <<- -1>> =\1[:-1]+"’"                                                                       && Il manque une apostrophe.
__[i>/typo(typo_apostrophe_manquante_prudence2)!8__
    (?:je|tu|ie?ls?|nous|vous|on|ça|elles?) ([nmtsl] )([aeéiouhyàîèêôû][\w-]*|<)  @@*,$
        <<- not option("mapos") and (\2 == "<" or morph(\2, ":V")) -1>> =\1[:-1]+"’"                && Il manque probablement une apostrophe.
# Solution audacieuse
__[s>/typo(typo_apostrophe_manquante_audace1)!8__
    ([ldsncjmtç] )[aeéiouhAEÉIOUHyîèêôûYÎÈÊÔÛ<]  @@0
        <<- option("mapos") and not before("(?i)(?:lettre|caractère|glyphe|dimension|variable|fonction|point) *$")
        -1>> =\1[:-1]+"’"                                                                           && Il manque peut-être une apostrophe.
# Note : pour les majuscules, la règle se situe lors de la passe suivante.

TEST: __mapos__ {{n }}arrive pas à sa cheville
TEST: le coup {{qu }}avait donné                                                ->> qu’
TEST: pendant {{qu }}il avançait d’un pas indolent                              ->> qu’
TEST: {{jusqu }}à plus soif                                                     ->> jusqu’
TEST: il ne {{m }}avait jamais fait défaut                                      ->> m’
TEST: Il {{s }}était dit qu’il ne le ferait pas.                                ->> s’
................................................................................
!!!! Majuscules manquantes                                                                        !!
!!
!!

# Majuscules après un point
__[s]/maj(majuscule_après_point)__
    ({w_2})[.] ([a-zàâéèêîôç]\w*)  @@0,$
        <<- not re.search("(?i)^(?:etc|[A-Z]|chap|cf|ex|fig|hab|litt|circ|coll|r[eé]f|étym|suppl|bibl|bibliogr|cit|op|vol|déc|nov|oct|janv|juil|avr|sept|sg|pl|pers)$", \1)
            and morph(\1, ":") and morph(\2, ":")
        -2>> =\2.capitalize()                                                                       && Après un point, une majuscule est généralement requise.

TEST: Je suis là. {{viens}}.                                              ->> Viens
TEST: Ils sont devenus idiots. {{c}}’est peine perdue.

__<s>/maj(majuscule_début_paragraphe)__
................................................................................
!!
!!
!!!! Points                                                                                       !!
!!
!!

# Points superflus
__[i>/typo(typo_et_cetera)__             etc(?:[.]{3,5}|…) <<- ->> etc.                             && Un seul point après « etc. »

TEST: {{etc…}}
TEST: {{etc...}}


__[s>/typo(typo_point_après_titre)__     (M(?:me|gr|lle)s?[.]) [A-ZÉÈ]  @@0  <<- -1>> =\1[0:-1]     && Pas de point après cette abréviation.

TEST: Je crois que {{Mlle.}} Eva est partie.
TEST: J’ai pensé à {{Mme.}} Bovary toute la journée.


__[s>/typo(typo_point_après_numéro)__
    ([nN]os?[.])[  ]\d+  @@0
................................................................................
        <<- \1[1:3] == "os" -1>> nᵒˢ                                                                 && Pas de point dans l’abréviation de numéro.
        <<- __else__ -1>> nᵒ                                                                        && Pas de point dans l’abréviation de numéro.

TEST: C’est situé au {{no.}} 12.


# Points de suspension
__<s>/typo(typo_points_suspension1)__    (?<![.])[.]{3,5}(?![.]) <<- not before("(?i)etc$") ->> …   && Typographie : points de suspension. Utilisez le caractère dédié.
__<s>/typo(typo_points_suspension2)__    [.]{6,} <<- ->> =\0.replace("...", "…").rstrip(".")        && Typographie : succession de points. Utilisez le caractère dédié.
__<s>/typo(typo_points_suspension3)__    (?<![.…])[.][.](?![.]) <<- ->> …|.                         && Typographie : un ou trois points ?
__<s>/typo(typo_points_superflus)__      …[.][.]?(?![.]) <<- ->> …                                  && Points superflus.

TEST: 3 points de suspension{{...}}
TEST: 5 points de suspension{{....}}
TEST: 5 points de suspension{{.....}}
TEST: 4 points de suspension{{….}}
TEST: 5 points de suspension{{…..}}
TEST: Double point{{..}}
................................................................................
!!
!!
!!!! Tirets                                                                                       !!
!!
!!

# Tirets, énumérations et dialogues
__<s>/typo(typo_tiret_début_ligne)__    ^[-_][  ] <<- ->> "— |– "           && Dialogues et énumérations : un tiret cadratin [1] ou demi-cadratin [2], suivi d’un espace insécable, est requis.
__<s>/typo(typo_tiret_dans_dialogue)__  ^ *«[  ](-[  ]) @@$ <<- -1>> "— |– "
    && Dialogues : un tiret cadratin [1] ou demi-cadratin [2], suivi d’un espace insécable, est requis. (Attention : à moins qu’il s’agisse d’un dialogue inclus dans un autre dialogue, cette manière d’écrire est erronée.)
__<s>/nbsp(nbsp_après_tiret1)__          ^([—–]) +  @@0  <<- ->> "\1 "      && Dialogues et énumérations : ce tiret doit être suivi d’un espace insécable.
__<s>/nbsp(nbsp_après_tiret2)__  ^([—–-])\d  @@0  <<- -1>> "— |– |−"        && Dialogues et énumérations : il faut tiret cadratin [1] ou demi-cadratin [2] suivi d’un espace insécable. S’il s’agit de représenter un nombre négatif, utilisez le signe “moins” [3].
__<s>/nbsp(nbsp_après_tiret3)__  ^([—–-])[\w«“‘]  @@0  <<- -1>> "— |– "     && Dialogues et énumérations : il faut tiret cadratin [1] ou demi-cadratin [2] suivi d’un espace insécable.
__<s>/typo(typo_tiret_incise1)__        " - (?=[0-9])" <<- ->> " – | — | − | −"     && Tiret d’incise : un tiret demi-cadratin [1] ou cadratin [2] est requis. (Ou éventuellement le signe “moins” s’il s’agit d’une soustraction [3] ou de représenter un nombre négatif [4].)
__<s>/typo(typo_tiret_incise2)__        " - (?![0-9])" <<- ->> " – | — | − "        && Tiret d’incise : un tiret demi-cadratin [1] ou cadratin [2] est requis. (Ou éventuellement le signe “moins” [3], s’il s’agit d’une soustraction.)

TEST: {{- }}Ce tiret n’est correct nulle part.                              ->> "— |– "
TEST: {{– }}Il manque toujours un espace insécable !                        ->> "– "
TEST: {{— }}Idem ! etc.                                                     ->> "— "
TEST: {{_ }}C’est long !                                                    ->> "— |– "
TEST: {{—}}Viens là.                                                        ->> "— |– "
TEST: {{-}}200 degrés                                                       ->> "— |– |−"
................................................................................
__<s>/typo(typo_inférieur_ou_égal)__                [\w  ](<=)[\w  ]  @@* <<- -1>> ≤|⩽              && Signe “inférieur ou égal”.
__<s>/typo(typo_supérieur_ou_égal)__                [\w  ](>=)[\w  ]  @@* <<- -1>> ≥|⩾              && Signe “supérieur ou égal”.

TEST: 3{{>=}}2
TEST: est-ce que a {{<=}} c


# ligatures typographiques : fi, fl, ff, ffi, ffl, ft, st
__<s>/liga(ligatures_typographiques)__              [fiflffffifflſtst] <<- ->> =undoLigature(\0)             && Suppression de la ligature typographique.

TEST: __liga__ un {{fl}}ottement                                           ->> fl
TEST: __liga__ une belle {{fi}}gure                                        ->> fi


#__<s]/typo__  °C <<- ->> ℃                                                      && Typographie. Utilisez le signe des degrés approprié.
................................................................................

TEST: C’est {{«}}stupide{{”}}.
TEST: Quel {{“}}emmerdeur{{»}}, ce gars-là.


__<s>/typo(typo_cohérence_guillemets_doubles_ouvrants)__
    (“)[^”’“«]+?(’)(?![\w'’])  @@0,$
        <<- not ( after("^”") and re.search("“(?:l|d|c|ç|n|m|t|s|j|z|[A-ZÇ]|qu|jusqu|puisqu|lorsqu|quoiqu|quelqu)’", \0) ) >>>
        <<- not before("\\w$") -1>> "‘"                                                             && Guillemet ouvrant différent du guillemet fermant (’).
        <<- __also__ -2>> ”                                                                         && Guillemet fermant différent du guillemet ouvrant (“).
__<s>/typo(typo_cohérence_guillemets_doubles_fermants)__
    (‘)[^’“«]+?(”)  @@0,$
        <<- not before("\\w$") -1>> "“"                                                             && Guillemet ouvrant différent du guillemet fermant (”).
        <<- not after("^\\w") -2>> ’                                                                && Guillemet fermant différent du guillemet ouvrant (‘).

TEST: Tu sais, {{‘}}ton ami{{”}} est venu.
TEST: Oui, je vois, mais c’est quand même un {{“}}salopard{{’}}.
TEST: Après “n’”, il faut une forme verbale.


__[i]/typo(typo_guillemets_doubles_ouvrants_non_fermés)__
    (“)\w[^”"»]+$  @@0
        <<- -1>> _                                                                                  && Guillemets fermants introuvables dans la suite du paragraphe.
__[i]/typo(typo_guillemets_doubles_fermants_non_ouverts)__
    ^[^“„«"]+\w(”)  @@$
................................................................................
TEST: {{4000}} Å                                ->> 4 000
TEST: {{3240}} µA                               ->> 3 240
TEST: 1111 0011,01 (binaire)


__[s>(num_grand_nombre_avec_points)__
    \d\d?\d?(?:[.]\d\d\d)+(?![0-9])
        <<- option("num") ->> =\0.replace(".", " ")                                                 && Grands nombres : utilisez des espaces insécables plutôt que des points.
        <<- ~>> =\0.replace(".", "_")

TEST: il cumule {{200.000.000}} de pertes sèches


__[s](num_grand_nombre_avec_espaces)__
    \d\d?\d?(?: \d\d\d)+
        <<- option("num") ->> =\0.replace(" ", " ")                                                 && Grands nombres : utilisez des espaces insécables.
        <<- ~>> =\0.replace(" ", "_")

TEST: Il a perdu {{20 000}} euros à la Bourse en un seul mois.


!!
!!
................................................................................
!!
!!!! Redondances                                                                                  !!
!!
!!
__[i]/redon1(redondances_paragraphe)__
    ({w_4})[  ,.;!?:].*[  ](\1)  @@0,$
        <<- not morph(\1, ":(?:G|V0)|>(?:t(?:antôt|emps|rès)|loin|souvent|parfois|quelquefois|côte|petit|même)/") and not \1[0].isupper()
        -2>> _                                                      && Dans ce paragraphe, répétition de « \1 » (à gauche).
        <<- __also__ -1>> _                                         && Dans ce paragraphe, répétition de « \1 » (à droite).

TEST: __redon1__ Tu es son {{avenir}}. Et lui aussi est ton {{avenir}}.
TEST: __redon1__ Car parfois il y en a. Mais parfois il n’y en a pas.



!!
................................................................................
!!!! OCR                                                                                          !!
!!
!!

# ?
__<s]/ocr(ocr_point_interrogation)__
    [  ]7
        <<- after0("^(?: +[A-ZÉÈÂ(]|…|[.][.]+| *$)") ->> " ?"                                       && Erreur de numérisation ?

TEST: __ocr__ des chiffrements{{ 7}} Paul n’en sait rien.
TEST: __ocr__ veux-tu en parler{{ 7}}


# !
__<s]/ocr(ocr_exclamation1)__
    [  ]I(?![ ’'][aâeéèêëiîïoôuy])
        <<- ->> " !"                                                                                && Erreur de numérisation ?
__<s]/ocr(ocr_exclamation2)__
    [  ]1(?= [A-ZÉÈÂÎ])
        <<- not morph(word(1), ";S") and not morph(word(-1), ":R") ->> " !"                         && Erreur de numérisation ?

TEST: __ocr__ Oh{{ I}} c’est pas formidable ?
TEST: __ocr__ Vraiment{{ 1}} Paul n’en savait rien.
TEST: __ocr__ Ça prendra 1 h.
TEST: __ocr__ Valeur : 1 KHz.


# Nombres
__[i]/ocr(ocr_nombres)__
    [\dOI][\dOI]+
        <<- \0 == "II" ->> 11|Il                                                                    && Erreur de numérisation ?
        <<- __else__ and not \0.isdigit() ->> =\0.replace("O", "0").replace("I", "1")               && Erreur de numérisation ?

TEST: __ocr__ {{II}} pleut tout le temps.
TEST: __ocr__ En l’an {{2OO1}}, tout commença.


## Casse
__[s]/ocr(ocr_casse_pronom_vconj)__
    {w2}-(On|Ils?|Elles?|Tu|Je|Nous|Vous|Mêmes?|Ci|Là|Une?s|Les?|La|Leur) @@$
        <<- -1>> =\1.lower()                                                                        && Erreur de numérisation ? Casse douteuse.

TEST: __ocr__ Part-{{On}} demain ?
TEST: __ocr__ À ce compte-{{Ci}}, on n’en viendra jamais à bout.
TEST: __ocr__ Quelques-{{Uns}} sont incapables d’y parvenir.


## Mots inconnus du dictionnaire
................................................................................
TEST: __ocr__ {{[[}}voyons celà].
TEST: __ocr__ {{((}}voyons ceci).


## Mélange chiffres/lettres
__[i]/ocr(ocr_le_la_les_regex)__
    [1[\]][easrnxiocuwàéè]
        <<- \0.endswith("e") ->> le                                                                 && Erreur de numérisation ?
        <<- __else__ and \0.endswith("a") ->> la                                                    && Erreur de numérisation ?
        <<- __else__ and \0.endswith("à") ->> la|là                                                 && Erreur de numérisation ?
        <<- __else__ ->> le|la                                                                      && Erreur de numérisation ?

TEST: __ocr__ avec {{1e}} chien du policier                                                 ->> le
TEST: __ocr__ il le jura sur {{1a}} tête de sa mère                                         ->> la
TEST: __ocr__ {{]à}}                                                                        ->> la|là
TEST: __ocr__ {{1c}} chat du voinsin est idiot                                              ->> le|la
TEST: __ocr__ oui, {{[e}} chien a faim                                                      ->> le

................................................................................
TEST: {{1a}} venue des problèmes                                ->> la
TEST: {{1es}} enfants sont au lit                               ->> les
TEST: Je… ne {{1e}}… crois pas…                                 ->> le


__[i]/ocr(ocr_les)__
    [1[\]][ea]s
        <<- ->> les                                                                                 && Erreur de numérisation ?

TEST: __ocr__ {{1es}} jours clairs
TEST: __ocr__ {{[as}} amis sont présents


__[i]/ocr(ocr_l_regex)__
    ([1[][’'`‘])[aâeéèêëiîïoôuyh][\w-]*  @@0
        <<- -1>> l’|L’|j’|J’                                                                        && Erreur de numérisation ?

TEST: __ocr__ {{1’}}année s’annonce agitée.
TEST: __ocr__ {{['}}ouverture du championnat est pour bientôt.


__[i]/ocr(ocr_il_regex)__
    1fs?
        <<- \0.endswith("s") ->> Ils|ils|ifs                                                        && Erreur de numérisation ?
        <<- __else__ ->> Il|il|if                                                                   && Erreur de numérisation ?

TEST: __ocr__ {{1fs}} s’en sortent comme ils peuvent.



!!!
!!!
................................................................................
TEST: Il y a un {{doublon doublon}}.


!!!! Nombres: typographie                                                                         !!

#(\d\d\d\d)-(\d\d\d\d)   <<- ->> \1–\2                              && Ne pas séparer deux dates par un trait d’union, mais par un tiret demi-cadratin.

__[s]/num(num_lettre_O_zéro1)__  [\dO]+[O][\dO]+ <<- not option("ocr") ->> =\0.replace("O", "0")    && S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ».
__[s]/num(num_lettre_O_zéro2)__  [1-9]O <<- not option("ocr") ->> =\0.replace("O", "0")             && S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ».

TEST: année {{2O11}}                                                      ->> 2011
TEST: {{3O}} (chiffre avec un O).                                         ->> 30



!!!! Purge des références aux notes                                                               !!
................................................................................
TEST: POLITIQUESOCIÉTÉÉCONOMIEMONDECULTUREART DE VIVREMAGAZINE (qui peut faire boguer JavaScript avec certaines regex)


!!!! Traits d’union                                                                               !!

__[i]/tu(tu_trait_union_douteux)__
    ({w1})(?:--|—|–|−|⁃)({w1})  @@0,$
    <<- spell(\1+"-"+\2) and analyse(\1+"-"+\2, ":") ->> \1-\2                                      && Trait d’union : un tiret simple suffit.

TEST: Nous préparons une {{contre–attaque}}.
TEST: Nous préparons une {{contre−attaque}}.


__<i]/tu(tu_t_euphonique_incorrect)__
    ([-–—− ]t(?:[’' ][-–—−]?|[-–—−][’' ]?))(ie?ls?|elles?|on|tu)  @@0,$
................................................................................
!!
!!!! Virgules                                                                                     !!
!!
!!

__virg_virgules_manquantes__
    *WORD  etc  .
        <<- /virg/ -1.:0>> , etc.                                                                   && Avant « etc. », il faut mettre une virgule.|https://fr.wiktionary.org/wiki/etc.

    *WORD  car  @:(?:Os|D)
        <<- /virg/ not morph(\1, ":[DR]") -1.:2>> , car
        && Si « car » est la conjonction de coordination, une virgule est peut-être souhaitable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3447

    *WORD  mais  $:Os
        <<- /virg/ not morph(\1, ":D.*:[me]:[si]") -1.:2>> , mais
        && Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445

    *WORD  donc  [je|j’|il|on]
        <<- /virg/ not morph(\1, ":[VG]") -1.:2>> , donc
        && Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448

TEST: Un chien, un chat{{ etc.}}                                            ->> , etc.
TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit.                   ->> , car
TEST: Je suis fatigué{{ mais}} il a joué toute la nuit.                     ->> , mais
TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire.              ->> , donc
TEST: il s’est donc tu
TEST: c’était donc elles les meilleures
................................................................................
TEST: c’était eux qui prenaient tous les risques
TEST: il avançait donc le moyen d’y parvenir
TEST: Chacun peut l’entendre d’une manière différente et donc on se demande bien ce qui est mesuré dans les réponses.


__virg_fin_dialogue__
    .  »  ~^[a-zéà]
        <<- /virg/ -1:2>> " »,| »"          && Ou il faut une virgule (exemple : « Je viens », dit-il). Ou le point est superflu. Ou il faut une majuscule sur le mot suivant.

    ,  »  ?,¿  ~^[a-zéà]
        <<- /virg/ -1:-2>> " »,| »"         && Virgule mal placée ou superflue.

TEST: « Ça suffit{{. »}} dit-elle.                                          ->> " »,| »"
TEST: « J’en ai plus qu’assez{{, »}} dis-je.                                ->> " »,| »"
TEST: « C’est ainsi{{, »,}} dis-je.                                         ->> " »,| »"
TEST: dès son premier rendez-vous au centre
TEST: Depuis combien de temps fumez-vous ?


__virg_virgule_avant_points_suspension__
    ,  …
        <<- /virg/ ->> …                    && Typographie : pas de virgule avant les points de suspension.

TEST: ceci, cela{{, …}}                                                     ->> …


__virg_virgule_après_point__
    *WORD  .  ,
        <<- /virg/ space_after(\1, 0, 0) and space_after(\2, 0, 0)
................................................................................
TEST: il n’y a pas faute.
TEST: une séparation hommes/femmes



!!!! Élisions                                                                                     !!

# presque : élision
__typo_presque__
    presqu’  *WORD
        <<- /typo/ not morph(\2, ">[iî]le/") -1>> "presque "            && Pas d’élision autorisée sur “presque”, sauf avec “presqu’île”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745

TEST: {{Presqu’}}exclusivement bâtie en pierre.
TEST: C’est une presqu’île.
TEST: Cette presqu’ile est particulièrement venteuse.


# quelque : élision
__typo_quelque__
    quelqu’  *WORD
        <<- /typo/ not value(\2, "|un|une|") -1>> "quelque "            && Pas d’élision autorisée sur “quelque”, sauf avec “quelqu’un” ou “quelqu’une”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745

TEST: {{Quelqu’}}absurde que ce soit, il faut y céder.
TEST: quelqu’un vient.
TEST: elle s’en est allée avec quelqu’une…
................................................................................
    ne [lui|leur] en            rendez-vous
    ne [le|la|les|lui|leur]     rendez-vous
    [me|ne|nous|vous|lui]       rendez-vous
        <<- =>> define(\-1, ":VCi1:2p")
        <<- !-1>>

#   [un|mon|ton|son|ce|mes|tes|ses|leurs] rendez-vous
#   rendez-vous seulement défini comme <:N:m:i>  dans le dictionnaire

__imp_verbes_composés_impératifs__
    ~\w-l(?:es?|a)-(?:[mt]oi|nous|leur)$
    ~\w-(?:[nv]ous|lui|leur)-en$
    ~\w-[mt]’en$
    ~\w-[mt]’y$
        <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True)                               && Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29
................................................................................

# This graph is parsed only if option <ocr> is activated.

## Casse
__ocr_casse__
    /_Tit_
        <<- /ocr/ before("\\w") and (morph(\1, ":G", ":M") or morph(\1, ":[123][sp]", ":[MNA]|>Est/"))
        -:>> =\1.lower()                                                                            && Erreur de numérisation ? Casse improbable.

    [L’|D’|N’|M’|T’|S’|C’|Ç’]  *WORD
        <<- /ocr/ before("\\w") and not \2.isupper() -1:>> =\1.lower()                              && Erreur de numérisation ? Casse douteuse.

TEST: __ocr__ regarde dans l’obscurité de {{L’}}entrepôt                        ->> l’
TEST: __ocr__ votre ami la regarde, {{Vous}} ne l’avez pas achetée              ->> vous
TEST: __ocr__ pour accommoder son regard, {{La}} lourde forme demeure           ->> la
TEST: __ocr__ parler de Nicole, {{Le}} sommeil ne vient pas.                    ->> le
TEST: __ocr__ a fait de toi, Charles, {{Tu}} étais beau quand                   ->> tu
TEST: __ocr__ s’habituer à se faire servir, {{Au}} début ça                     ->> au
................................................................................
TEST: __ocr__ {{J }}arrive demain


# Note: l’option “mapos” cherche les apostrophes manquantes après les lettres l, d, n, m, t, s, j, c, ç
__ocr_lettres_isolées2!2__
    [b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|z]
        <<- /ocr/ before("[   ]$") and not before("\\d[   ]+$") and not (\1.isupper() and value(>1, "|.|<end>|"))
        ->> _                                                                                       && Lettre isolée : erreur de numérisation ?

    [á|â|ä]
        <<- /ocr/ ->> à|a                                                                           && Lettre isolée : erreur de numérisation ?

    [é|è|ê|ë]
        <<- /ocr/ ->> e|à|a                                                                         && Lettre isolée : erreur de numérisation ?

    [í|ì|î|ï]
        <<- /ocr/ ->> i|à|a                                                                         && Lettre isolée : erreur de numérisation ?

    [ó|ò|ö]
        <<- /ocr/ ->> ô|o|a|a                                                                       && Lettre isolée : erreur de numérisation ?

    [ú|ù|û|ü]
        <<- /ocr/ ->> u|à|a                                                                         && Lettre isolée : erreur de numérisation ?

    [ý|ỳ|ÿ|ŷ]
        <<- /ocr/ ->> y                                                                             && Lettre isolée : erreur de numérisation ?

    ç
        <<- /ocr/ ->> c|a|à                                                                         && Lettre isolée : erreur de numérisation ?

TEST: __ocr__ des verres luisent sur {{i}} le bureau blanc.
TEST: __ocr__ la voix, {{e}} est celle de…
TEST: __ocr__ ressemble {{h}} une fenêtre de serre.
TEST: __ocr__ viens {{á}} nous
TEST: __ocr__ c’est ça avoir {{é}} faire à lui.
TEST: __ocr__ au point {{í}}
................................................................................
TEST: __ocr__ X
TEST: __ocr__ V.


# virgules
__ocr_virgules__
    [il|le|la|l’|les|de|d’|ne|n’|me|m’|te|t’|se|s’|à|ce|cet|cette|mon|ma|ta|sa|mes|tes|ses|nos|vos|quelque|quelques|au|aux] ,
        <<- /ocr/ space_after(\1, 0, 0) and not \1.isupper() or value(\1, "|à|") ->> \1             && Erreur de numérisation ? Virgule superflue ?

TEST: __ocr__ Pierre entre pour {{se,}} rapprocher de L
TEST: __ocr__ je voudrais faire une question ou deux sur une maison de ce village, la… comment l’appelle-t-on ?


# A
__ocr_A__
................................................................................

TEST: __ocr__ Va jusqu’au point {{À}}


# âge / age
__ocr_âge__
    >age
        <<- /ocr/ ->> =\1.replace("a", "â").replace("A", "Â")                                       && Erreur de numérisation ?

TEST: __ocr__ l’{{age}}


# autre / antre
__ocr_autre__
    >antre
        <<- /ocr/ ->> =\1.replace("n", "u")                                                         && Erreur de numérisation ?

TEST: __ocr__ cet {{antre}} gars lui semblait bien louche.


# avec / aven / arec
__ocr_avec__
    [arec|aven]
        <<- /ocr/ ->> avec                                                                          && Erreur de numérisation ?

TEST: __ocr__ Elle s’en alla {{arec}} eux sans un regard en arrière.


# avaient / avalent
__ocr_avaient__
    avalent
        <<- /ocr/ ->> avaient                                                                       && Erreur de numérisation ?

TEST: __ocr__ Ils {{avalent}} très faim.


# avais / avals / axais
__ocr_avis__
    [avals|axais]
        <<- /ocr/ ->> avais                                                                         && Erreur de numérisation ?

TEST: __ocr__ j’{{axais}} souvent perdu le contrôle de moi-même, mais jamais à ce point


# brait / bruit
__ocr_bruit__
    brait
................................................................................

TEST: __ocr__ tout ce qui {{brait}} dans la nuit


# car dans / cardans
__ocr_car_dans__
    cardans
        <<- /ocr/ ->> car dans                                                                      && Erreur de numérisation ?

TEST: __ocr__ On se tut tous, {{cardans}} l’armée on apprend à la boucler.


# cela
__ocr_cela__
    Gela
................................................................................

TEST: __ocr__ {{Gela}}, on n’en veut plus.


# celui / celai
__ocr_celui__
    celai
        <<- /ocr/ not value(<1, "|je|ne|le|la|les|") ->> celui                                      && Erreur de numérisation ?

TEST: __ocr__ je suis déjà venu et {{celai}} qui viendra encore.


# ces / cos
__ocr_ces__
    cos
        <<- /ocr/ ->> ces                                                                           && Erreur de numérisation ?

TEST: __ocr__ {{cos}} problèmes sont insolubles.


# C’était / Celait
__ocr_c_était__
    celait
................................................................................

TEST: __ocr__ {{celait}} perdu d’avance.


# cette / celte / cotte
__ocr_cette__
    [celte|celle]  @:N.*:f:s
        <<- /ocr/ -1>> cette                                                                        && Erreur de numérisation ?

    cotte
        <<- /ocr/ not morph(<1, ":D.*:f:[si]") ->> cette                                            && Erreur de numérisation ?

TEST: __ocr__ mais {{celte}} femme semblait savoir ce qu’elle faisait.
TEST: __ocr__ avec {{celle}} tentative d’humour, il pensait nous faire rire.
TEST: __ocr__ on poirautait, {{cotte}} mariée n’arrivait pas à se décider.


# chère / obère
__ocr_chère__
    obère
        <<- /ocr/ not value(<1, "|j’|n’|l’|m’|t’|s’|il|on|elle|ça|cela|ceci|") ->> chère            && Erreur de numérisation ?

TEST: __ocr__ cette femme {{obère}} à notre cœur.


# Comme / Gomme
__ocr_comme__
    Gomme
        <<- /ocr/ not value(<1, "|et|ou|où|") ->> Comme                                             && Erreur de numérisation ?

TEST: __ocr__ {{Gomme}} il était sage à cette époque-là !


# Comment / Gomment
__ocr_comment__
    Gomment
        <<- /ocr/ ->> Comment                                                                       && Erreur de numérisation ?

TEST: __ocr__ {{Gomment}} s’en sortir avec tous ces retards qui s’accumulent ?


# contre / coutre / contra
__ocr_contre__
    [contra|coutre|coutra]
        <<- /ocr/ ->> contre                                                                        && Erreur de numérisation ?

TEST: __ocr__ elle était {{coutre}} cette idée et le serait toujours.


# de / da
__ocr_de__
    da
        <<- /ocr/ ->> de                                                                            && Erreur de numérisation ?

TEST: __ocr__ Le nombre {{da}} personnes endettées augmente sans cesse.


# dans / bans / clans
__ocr_dans__
    bans
        <<- /ocr/ not morph(<1, ":D.*:p") ->> dans                                                  && Erreur de numérisation ?

    [clans|dons]  [le|la|l’|les|un|une|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs|chaque|chacun|plusieurs|quelques|maints|maintes|tout|tous|toute|toutes|certains|certaines|nombre]
        <<- /ocr/ not morph(<1, ":D.*:p") -1>> dans                                                 && Erreur de numérisation ?

    dam
        <<- /ocr/ not (value(<1, "|grand|") and value(<2, "|au|")) ->> dans                         && Erreur de numérisation ?

TEST: __ocr__ Mais {{bans}} cette ferme, tout était bien organisé.
TEST: __ocr__ sache que, {{clans}} cette ferme, on ne fait que du bio.
TEST: __ocr__ renvoyons ces chiens {{dam}} leur niche
TEST: __ocr__ nous avons vaincu, au grand dam de tous ces grands messieurs


# dame / darne
__ocr_dame__
    [>darne|>daine]
        <<- /ocr/ ->> =\1.replace("rn", "m").replace("in", "m").replace("RN", "M").replace("IN", "M")   && Erreur de numérisation ?

TEST: __ocr__ ces {{darnes}} arrivèrent avec dix minutes d’avance.
TEST: __ocr__ cette {{daine}} élégamment vêtue.


# dé / de / dés / des / dès / dos
__ocr_de_des__
    dé
        <<- /ocr/ not morph(<1, ":D.*:m:[si]") ->> de                                               && Erreur de numérisation ?

    dés
        <<- /ocr/ not morph(<1, ":D.*:m:p") ->> des|dès                                             && Erreur de numérisation ?

    do
        <<- /ocr/ ->> de                                                                            && Erreur de numérisation ?

    dos
        <<- /ocr/ not morph(<1, ":D.*:[me]") ->> des|dès                                            && Erreur de numérisation ?

TEST: __ocr__ {{dé}} gros camions circulaient toute la journée
TEST: __ocr__ {{dés}} fois, ça ne passe pas
TEST: __ocr__ {{do}} bon matin.
TEST: __ocr__ {{dos}} camions cabossés à n’en plus finir


# de la / delà
__ocr_de_la__
    delà
        <<- /ocr/ not value(<1, "|au|de|en|par|") ->> de la|de là                                   && Erreur de numérisation ?

TEST: __ocr__ la peinture {{delà}} maison s’écaillait


# doute / cloute
__ocr_doute__
    cloute
        <<- /ocr/ ->> doute                                                                         && Erreur de numérisation ?

TEST: __ocr__ Sans aucun {{cloute}}.


# du / dû
__ocr_du__
    dû  @:[NA]:[me]:[si]¬:(?:Y|Ov)
        <<- /ocr/ -1>> du                                                                           && Erreur de numérisation ?

TEST: __ocr__ prendre {{dû}} bon temps
TEST: __ocr__ il aurait dû la trouver
TEST: __ocr__ Tous eussent dû subir ce supplice raffiné.


# elle / elfe
__ocr_elle__
    elfe
        <<- /ocr/ morph(<1, ":R|<start>|>,") or isNextVerb() ->> elle                               && Erreur de numérisation ?

    elfes
        <<- /ocr/ morph(<1, ":R|<start>|>,") or isNextVerb() ->> elles                              && Erreur de numérisation ?

TEST: __ocr__ {{elfe}} viendra bientôt
TEST: __ocr__ {{Elfes}} s’ennuyaient à mourir.


# est / ost
__ocr_est__
    ost
        <<- /ocr/ ->> est                                                                           && Erreur de numérisation ?

TEST: __ocr__ Le cheval {{ost}} attaché.


# et / cl
__ocr_et__
    [cl|c1|e1|el]
        <<- /ocr/ not before("[0-9] +$") ->> et                                                     && Erreur de numérisation ?

TEST: __ocr__ elle {{cl}} lui, c’était pour la vie.
TEST: __ocr__ {{El}} il faisait froid là-haut


# état / étal
__ocr_état_étais_étaient__
    étal
        <<- /ocr/ ->> état                                                                          && Erreur de numérisation ?

    [étals|étale]
        <<- /ocr/ ->> étais|états                                                                   && Erreur de numérisation ?

    étalent
        <<- /ocr/ ->> étaient                                                                       && Erreur de numérisation ?

TEST: __ocr__ l’{{étal}} des finances ne le permet pas
TEST: __ocr__ Quels {{étals}} sont venus ?
TEST: __ocr__ Ce qu’ils {{étalent}} vraiment, nul ne le savait.


# êtes
................................................................................
TEST: __ocr__ Quoiqu’ils {{fessent}} ça donne de la merde
TEST: __ocr__ {{fesse}} que Dieu nous entende


# fille / tille
__ocr_fille__
    tille
        <<- /ocr/ ->> fille                                                                         && Erreur de numérisation ?

TEST: __ocr__ Cette {{tille}} n’en avait jamais assez.


# fol·s / foi·s
__ocr_foi__
    [fol|fols]
        <<- /ocr/ ->> =\1.replace("l", "i").replace("L", "I")                                       && Erreur de numérisation ?

TEST: __ocr__  ils sont quelques {{fols}} battus$


................................................................................
TEST: __ocr__ qui ne {{fout}} rien de leur journée
TEST: __ocr__ il {{fout}} entendre cette voix


# fut / rut
__ocr_fut__
    rut
        <<- /ocr/ ->> fut                                                                           && Erreur de numérisation ?

TEST: __ocr__ ce petit {{rut}} traité comme un chien


# il / n / ils / U / Us / i1 / if / 11
__ocr_il__
    [<start>|,|(]  [n|h|d]  ~^[bcçdfghjklmnpqrstvwxz]
        <<- /ocr/ morph(\3, ":(?:O[on]|3s)") -2>> il                                                && Erreur de numérisation ?

    [U|if|i1]
        <<- /ocr/ ->> Il|il                                                                         && Erreur de numérisation ?

    [Us|ifs|i1s]
        <<- /ocr/ ->> Ils|ils                                                                       && Erreur de numérisation ?

    11
        <<- /ocr/ not morph(>1, ":N", "*") ->> Il|il                                                && Erreur de numérisation ?

TEST: __ocr__ {{n}} contient trop de soufre.
TEST: __ocr__ {{U}} arrive
TEST: __ocr__ {{Us}} arrive demain.
TEST: __ocr__ {{i1s}} en savent beaucoup trop pour leur propre bien.
TEST: __ocr__ {{11}} n’en sait rien
TEST: __ocr__ elle a 11 ans.
................................................................................
TEST: __ocr__ 11 jours de souffrance
TEST: __ocr__ nous sommes le 11 septembre


# fa / la
__ocr_la__
    fa
        <<- /ocr/ ->> la                                                                            && Erreur de numérisation ?

TEST: __ocr__ dans {{fa}} demeure


# large / largo
__ocr_large__
    >largo
        <<- /ocr/ ->> =\1.replace("o", "e")                                                         && Erreur de numérisation ?

TEST: __ocr__ elle pense {{largo}}


# l’ / j’ / Y / I
__ocr_lj1__
    ~^Y’[aâeéèêëiîïoôuyh]
        <<- /ocr/ ->> ="l’"+\1[2:] + "|L’"+\1[2:] + "|j’"+\1[2:] + "|J’"+\1[2:]                     && Erreur de numérisation ?

    Y  ~^[aâeéèêëiîïoôuyh]
        <<- /ocr/ before("\\w") and not morph(\2, ":Y") ->> l’\2|j’\2                               && Erreur de numérisation ?

    ~^[Ii]’[aâeéèêëiîïoôuyh]
        <<- /ocr/ ->> ="l’"+\1[2:] + "|L’"+\1[2:] + "|j’"+\1[2:] + "|J’"+\1[2:]                     && Erreur de numérisation ?

    [I|i|1]  ~^[aâeéèêëiîïoôuy]
        <<- /ocr/ ->> l’\2|L’\2|j’\2|J’\2                                                           && Erreur de numérisation ?

TEST: __ocr__ {{Y’arrive}} demain.
TEST: __ocr__ et {{Y acte}}
TEST: __ocr__ {{I’arrive}} demain.
TEST: __ocr__ {{1 entente}} cordiale


# l’ / V / P
__ocr_l__
    ~^V.
        <<- /ocr/ \1.istitle() and before("\\w") and morph(\1, ":", ":M") >>>
        <<- /ocr/ spell(\1[1:]) -:>> ="v"+\1[1:] + "|l’"+\1[1:]                                     && Erreur de numérisation ?
        <<- /ocr/ __else__ -:>> ="v"+\1[1:]                                                         && Erreur de numérisation ?

    ~^P[aâeéêèiîïoôuy]
        <<- /ocr/ before("\\w") and morph(\1, ":", ":M") and spell(\1[1:])
        -:>> ="l’"+\1[1:] + "|p"+\1[1:]                                                             && Erreur de numérisation ?

TEST: __ocr__ beaucoup de {{Vélos}} à Versailles.
TEST: __ocr__ avec {{Vagile}} méthode de notre amie Virginie, tout est possible.
TEST: __ocr__ Viens demain.
TEST: __ocr__ Ce jour où Valérie eut sa licence de droit.
TEST: __ocr__ Il scrute Pierre, {{Pair}} maussade.
TEST: __ocr__ Une grosse vague arrivait et {{Peau}} remplit.
................................................................................

TEST: __ocr__ il faut {{lavoir}} pour le croire.


# l’était / Tétait
__ocr_l_était__
    Tétait
        <<- /ocr/ -:>> l’était|t’était|T’était                                                      && Erreur de numérisation ?

TEST: __ocr__ perdu, cet homme {{Tétait}}


# le / les / lé / lés / lui / lai / lei / la / tu / lu
__ocr_le_la_les__
    >lé
        <<- /ocr/ ->> =\1.replace("é", "e").replace("É", "E")                                       && Erreur de numérisation ?

    [lai|lei]
        <<- /ocr/ ->> lui|les                                                                       && Erreur de numérisation ?

    los
        <<- /ocr/ ->> les                                                                           && Erreur de numérisation ?

    lu
        <<- /ocr/ not morph(<1, ":(?:V0|N.*:m:[si])") ->> tu|le|la                                  && Erreur de numérisation ?

TEST: __ocr__ il s’agit de {{lés}} observer.
TEST: __ocr__ {{lai}} gros sont mal vus.
TEST: __ocr__ {{lu}} as si bien réussi
TEST: __ocr__ contre {{los}} impies


# M. / Mr / M
__ocr_mr__
    M ,  /_Tit_
        <<- /ocr/ space_after(\1, 0, 1) -1:2>> "Mr |M. "                                                                  && Erreur de numérisation ?

    M  /_Tit_
        <<- /ocr/ -1>> "Mr |M. "                                                                    && Erreur de numérisation ?

TEST: __ocr__ {{M,}} Patrick nous a oubliés.
TEST: __ocr__ Rencontre avec {{M}} Black.


# Mais / Hais / Mats / niais
__ocr_mais__
    Hais
        <<- /ocr/ ->> Mais                                                                          && Erreur de numérisation ?

    mats
        <<- /ocr/ not morph(<1, ":D:[me]:p") ->> mais                                               && Erreur de numérisation ?

    maïs
        <<- /ocr/ not morph(<1, ":D:(?:m:s|e:p)") ->> mais                                          && Erreur de numérisation ?

    niais
        <<- /ocr/ not morph(<1, ">(?:homme|ce|quel|être)/") ->> mais                                && Erreur de numérisation ?

TEST: __ocr__ {{Hais}} il en sait trop.
TEST: __ocr__ c’était bien, {{mats}} quelle journée
TEST: __ocr__ c’est bien, {{niais}} trop subtil.
TEST: __ocr__ c’est parfait, {{maïs}} trop subtil.


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

TEST: __ocr__ ce {{mâtin}}, il y eut une tempête.


# même / même / mème / mémo / môme
__ocr_même__
    >môme
        <<- /ocr/ ->> =\1.replace("ô", "ê").replace("Ô", "Ê")                                       && Erreur de numérisation ?

    >mème
        <<- /ocr/ ->> =\1.replace("è", "ê").replace("È", "Ê")                                       && Erreur de numérisation ?

    >mémo
        <<- /ocr/ ->> =\1.replace("é", "ê").replace("É", "Ê").replace("o", "e").replace("O", "E")   && Erreur de numérisation ?

TEST: __ocr__ J’en ai assez {{môme}} si ça ne se voit pas.
TEST: __ocr__ Ces {{mèmes}} hommes qui nous ont lâchés au pire moment
TEST: __ocr__ C’est l’incessant retour du {{mémo}}.


# mes
................................................................................
TEST: __ocr__ elle est fière de {{mas}} succès
TEST: __ocr__ Est-ce que tu vas nier {{nies}} réussites


# mon / won
__ocr_mon__
    won
        <<- /ocr/ ->> mon                                                                           && Erreur de numérisation ?

TEST: __ocr__ c’est {{won}} ami


# mot / mol / moi
__ocr_mot__
    [mol|mols]
        <<- /ocr/ ->> =\1.replace("l", "t").replace("L", "T")+"|"+\1.replace("l", "i").replace("L", "I")  && Erreur de numérisation ?

TEST: __ocr__ c’est un {{mol}} très dur.


# moyen
__ocr_moyen__
    >moyeu
................................................................................

TEST: __ocr__ quel {{moyeu}} employer ?


# ne / na / no / rie
__ocr_ne__
    [no|na|rie]
        <<- /ocr/ ->> ne                                                                            && Erreur de numérisation ?

TEST: __ocr__ {{no}} fais rien que tu pourrais regretter
TEST: __ocr__ elle avance, mais {{rie}} prend jamais de risque inconsidéré.


# nous / noue / noua
__ocr_nous__
    [noue|noua]
        <<- /ocr/ ->> nous                                                                          && Erreur de numérisation ?

    mous
        <<- /ocr/ morph(<1, "<start>|>,|:(?:R|Os|X)") ->> nous                                      && Erreur de numérisation ?

TEST: __ocr__ {{noue}} attaquer à eux signerait notre perte.
TEST: __ocr__ il finit par {{mous}} énerver avec ces histoires sans fin
TEST: __ocr__ {{mous}} croire invincibles


# par / paf / pan / pat
__ocr_par__
    [paf|pat]
        <<- /ocr/ ->> par                                                                           && Erreur de numérisation ?

    pan
        <<- /ocr/ ->> par|peu                                                                       && Erreur de numérisation ?

    pur @:[DMT]
        <<- /ocr/ -1>> par                                                                          && Erreur de numérisation ?

TEST: __ocr__ Une seule action {{paf}} jour
TEST: __ocr__ {{Pur}} la déesse !
TEST: __ocr__ attaqué {{pan}} deux fois


# par le / par la / par les / parle / parla / parles
__ocr_par_le_la_les__
    parle  @:[NA].*:[me]:[si]
        <<- /ocr/ not value(<1, "|ne|il|on|elle|je|") -1>> par le                                   && Erreur de numérisation ?

    parla  @:[NA].*:[fe]:[si]
        <<- /ocr/ not value(<1, "|ne|il|on|elle|") -1>> par la                                      && Erreur de numérisation ?

    parles  @:[NA].*:[pi]
        <<- /ocr/ not value(<1, "|ne|tu|") -1>> par les                                             && Erreur de numérisation ?

TEST: __ocr__ {{parle}} glaive et le mensonge, l’Église s’imposa.
TEST: __ocr__ {{parla}} force, on peut réussir
TEST: __ocr__ tu fus trompée {{parles}} mensonges permanents de son beau-père.


# pendant / pondant
__ocr_pendant__
    pondant
        <<- /ocr/ ->> pendant                                                                       && Erreur de numérisation ?

TEST: __ocr__ {{pondant}} qu’elle travaille, il se prélasse.


# peu / peut / peux / pou
__ocr_peu_peux_peut__
    pou
        <<- /ocr/ not morph(<1, ":D.*:m:s") ->> peu                                                 && Erreur de numérisation ?

    poux
        <<- /ocr/ not morph(<1, ":D.*:m:p") ->> peux|peut|pour                                      && Erreur de numérisation ?

TEST: __ocr__ il est {{pou}} probable qu’il y parvienne.
TEST: __ocr__ elles sont venues {{poux}} voir de leurs propres yeux.


# plus / pins
__ocr_plus__
    pins
        <<- /ocr/ ->> plus                                                                          && Erreur de numérisation ?

TEST: __ocr__ ils sont {{pins}} instruits qu’il n’y paraît.


# puis / pois
__ocr_puis__
    pois
        <<- /ocr/ not morph(<1, ":D.*:m:p") ->> puis                                                && Erreur de numérisation ?

TEST: __ocr__ elles sont venues, {{pois}} elles sont parties.


# pour / pouf
__ocr_pour__
    pouf
        <<- /ocr/ not morph(<1, ":D.*:f:s") ->> pour                                                && Erreur de numérisation ?

TEST: __ocr__ {{pouf}} elle, il était prêt à tout.


# près / prés
__ocr_près__
    prés
        <<- /ocr/ not morph(<1, ":D.*:[me]:p") ->> près                                             && Erreur de numérisation ?

TEST: __ocr__ ils sont arrivés {{prés}} de la tombe.


# que / quo
__ocr_que__
    qua
        <<- /ocr/ not value(<1, "|sine|") ->> que                                                   && Erreur de numérisation ?

    quo
        <<- /ocr/ not value(<1, "|statu|") ->> que                                                  && Erreur de numérisation ?

TEST: __ocr__ elles ne savent pas {{qua}} faire
TEST: __ocr__ {{Quo}} penser de tout ceci ?
TEST: __ocr__ pour elle, c’est une condition sine qua non.


# qu’importe
__ocr_qu_importe__
    qu’ [importé|importa]
        <<- /ocr/ -2>> importe                                                                      && Erreur de numérisation ?

TEST: __ocr__ Qu’{{importé}} le flacon, pourvu qu’on ait l’ivresse.


# reine / ruine
__ocr_reine_ruine__
    >rainer
................................................................................

TEST: __ocr__ {{Quêtant}} la fille d’une déesse, elle n’avait pas à se justifier.


# qui / gui
__ocr_qui__
    gui
        <<- /ocr/ not morph(<1, ":D.*:m:s") ->> qui                                                 && Erreur de numérisation ?

TEST: __ocr__ avec {{gui}} faire alliance ?


# s’il / sil
__ocr_s_il__
    sil
        <<- /ocr/ ->> s’il                                                                          && Erreur de numérisation ?

    sils
        <<- /ocr/ ->> s’ils                                                                         && Erreur de numérisation ?

TEST: __ocr__ {{sil}} avait su, il n’aurait rien tenté de trop audacieux.
TEST: __ocr__ {{sils}} étaient venus, on l’aurait vu.


# son / sou
__ocr_son__
................................................................................

TEST: __ocr__ ça vient de {{sou}} ami


# sur / sar
__ocr_sur__
    sar
        <<- /ocr/ ->> sur                                                                           && Erreur de numérisation ?

    sui
        <<- /ocr/ not value(>1, "|generis|") ->> sur                                                && Erreur de numérisation ?

TEST: __ocr__ il ne savait rien {{sar}} eux.
TEST: __ocr__ il en est {{sui}}


# tard / lard
__ocr_tard__
    lard
        <<- /ocr/ not value(<1, "|le|ce|mon|ton|son|du|un|") ->> tard                               && Erreur de numérisation ?

TEST: __ocr__ elles seront là tôt ou {{lard}}.


# tandis que / taudis
__ocr_tandis__
    taudis [que|qu’]
        <<- /ocr/ -1>> tandis                                                                       && Erreur de numérisation ?

TEST: __ocr__ mais {{taudis}} qu’elle œuvrait à leur salut, les nuages s’amoncelaient.


# l’est / Test
__ocr_l_est__
    Test
        <<- /ocr/ before("\\w") ->> l’est                                                           && Erreur de numérisation ?

TEST: __ocr__ ça {{Test}} à leurs yeux.


# tête / tète
__ocr_tête__
    tète
        <<- /ocr/ not value(<1, "|je|il|elle|on|ne|ça|") ->> =\1.replace("è", "ê").replace("È", "Ê")    && Erreur de numérisation ?

TEST: __ocr__ cette forte {{tète}} n’écoute jamais personne.


# tin / fin / un
__ocr_fin_un__
    tin
        <<- /ocr/ ->> fin|un                                                                        && Erreur de numérisation ?

TEST: __ocr__ c’était {{tin}} marchand vaniteux.


# ton / tan
__ocr_ton__
    >tan
        <<- /ocr/ ->> =\1.replace("a", "o").replace("A", "O")                                       && Erreur de numérisation ?

TEST: __ocr__ pour {{tan}} propre bien.


# toute / tonte
__ocr_toute__
    >tonte
        <<- /ocr/ ->> =\1.replace("n", "u").replace("N", "U")                                       && Erreur de numérisation ?

TEST: __ocr__ à {{tonte}} fin utile


# tu es / tues
__ocr_tu_es__
    tues
        <<- /ocr/ not morph(<1, ":(?:N.*:f:p|V0e.*:3p)|>(?:tu|ne)/") ->> tu es                      && Erreur de numérisation ?

TEST: __ocr__ dans tous les cas, {{tues}} foutue.
TEST: __ocr__ ses actions tues.


# un / vin
__ocr_un__
    vin
        <<- /ocr/ not value(<1, "|ce|de|du|un|quel|leur|le|") ->> un                                && Erreur de numérisation ?

TEST: __ocr__ {{vin}} mathématicien hors du commun.


# une / ure / vine
__ocr_une__
    ure
        <<- /ocr/ ->> une                                                                           && Erreur de numérisation ?

    vine
        <<- /ocr/ ->> une                                                                           && Erreur de numérisation ?

TEST: __ocr__ il avait {{ure}} femme élégante et silencieuse
TEST: __ocr__ c’est pour {{vine}} amie


# vêtement / vêlement
__ocr_vêtement__
................................................................................

TEST: __ocr__ La femme {{volt}} plus loin


# vous / voua / voue
__ocr_vous__
    [voue|voua]
        <<- /ocr/ ->> vous                                                                          && Erreur de numérisation ?

TEST: __ocr__ avec {{voue}}, je n’ai pas confiance.



@@@@
@@@@
................................................................................
TEST: combien {{d’}}iourtes                                                 ->> de


# ce -> cet
__eleu_euphonie_cet__
    ce  ~^[aâeéèêiîoôuûyœæ]
        <<- /eleu/ not re.search("(?i)^(?:I(?:I|V|X|er|ᵉʳ))", \2) and morph(\2, ":[NA].*:[me]", ":G|;é")
        -1>> cet                                                                && Euphonie : “ce” devient “cet” devant un mot commençant par une voyelle.|https://fr.wikipedia.org/wiki/Euphonie

TEST: {{ce}} animal est dangereux
TEST: ce yacht


# Verbe 1ʳᵉ personne du singulier, interrogatif… xxxé-je
__eleu_é_je__
................................................................................
TEST: souhaitè-je


# ma, ta, sa / mon, ton, son
__eleu_euphonie_ma_ta_sa__
    [ma|ta]  ~^[aâeéèêiîoôuûyœæ].
        <<- /eleu/ morph(\2, ":[NA]", ":G|;é") and not re.search("(?i)^(?:I(?:I|V|X|i?[eè]?re|ʳᵉ))", \2)
        -1>> =\1[0:1]+"on"                                                      && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom “mon”, “ton” ou “son” pour respecter l’euphonie. Exemple : mon étoile (féminin).|https://fr.wikipedia.org/wiki/Euphonie

    sa  ~^[aâeéèêiîoôuûyœæ].
        <<- /eleu/ not \1.isupper() and morph(\2, ":[NA]", ":G|;é") and not re.search("(?i)^(?:I(?:I|V|X|i?[eè]?re|ʳᵉ))", \2) >>>
        <<- /eleu/ morph(\2, ":[123][sp]") -1>> =\1[0:1]+"on|ça"                && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom “mon”, “ton” ou “son” pour respecter l’euphonie. (À moins que vous ne confondiez “sa” et “ça”.) Exemple : son étoile (féminin), ça existe.|https://fr.wikipedia.org/wiki/Euphonie
        <<- /eleu/ __else__ -1>> =\1[0:1]+"on"                                  && Euphonie : lorsque le déterminant “\1” est suivi d’un nom ou d’un adjectif commençant par une voyelle, il est d’usage d’utiliser le pronom “mon”, “ton” ou “son” pour respecter l’euphonie. Exemple : son étoile (féminin).|https://fr.wikipedia.org/wiki/Euphonie

TEST: {{ta}} aimée                                              ->> ton
TEST: {{ma}} obligée                                            ->> mon
TEST: {{sa}} œuvre                                              ->> son|ça
TEST: {{sa}} existence                                          ->> son
TEST: SA déchue aux yeux du Fuhrer
TEST: Ce couple va donner à la France sa très importante collection qui rejoindra le musée d’Orsay
................................................................................
!!!! Nombres ordinaux                                                                             !!
!!
!!

__typo_ordinaux_chiffres_exposants__
# Désactivé dans Writer pour éviter la confusion avec le formatage exposant
    1er
        <<- /typo/ sContext != "Writer" ->> 1ᵉʳ     && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1ers
        <<- /typo/ sContext != "Writer" ->> 1ᵉʳˢ    && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1re
        <<- /typo/ sContext != "Writer" ->> 1ʳᵉ     && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1res
        <<- /typo/ sContext != "Writer" ->> 1ʳᵉˢ    && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2d
        <<- /typo/ sContext != "Writer" ->> 2ᵈ      && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2ds
        <<- /typo/ sContext != "Writer" ->> 2ᵈˢ     && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2de
        <<- /typo/ sContext != "Writer" ->> 2ᵈᵉ     && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2des
        <<- /typo/ sContext != "Writer" ->> 2ᵈᵉˢ    && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+e$
        <<- /typo/ \1 != "1e" and sContext != "Writer" ->> =\1[:-1]+"ᵉ"         && Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+es$
        <<- /typo/ \1 != "1es" and sContext != "Writer" ->> =\1[:-2]+"ᵉˢ"       && Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: le {{1er}} qui m’emmerde, je le fusille       ->> 1ᵉʳ
TEST: les {{1ers}} seront toujours là               ->> 1ᵉʳˢ
TEST: la {{1re}} classe                             ->> 1ʳᵉ
TEST: les {{1res}} classes                          ->> 1ʳᵉˢ
TEST: être {{2d}} au classement                     ->> 2ᵈ
TEST: éternels {{2ds}}                              ->> 2ᵈˢ
................................................................................
TEST: c’est le {{3e}}                               ->> 3ᵉ
TEST: les {{4es}} vont en cours.                    ->> 4ᵉˢ


__typo_ordinaux_chiffres_incorrects__
    1 [ier|er]
    1ier
        <<- /typo/ ->> 1ᵉʳ          && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1 [iers|ers]
    1iers
        <<- /typo/ ->> 1ᵉʳˢ         && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1 [ière|ère|re]
    [1ière|1ère]
        <<- /typo/ ->> 1ʳᵉ          && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1 [ières|ères|res]
    [1ières|1ères]
        <<- /typo/ ->> 1ʳᵉˢ         && Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2 nd
    2nd
        <<- /typo/ ->> 2ᵈ           && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2 nds
    2nds
        <<- /typo/ ->> 2ᵈˢ          && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2 nde
    2nde
        <<- /typo/ ->> 2ᵈᵉ          && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    2 ndes
    2ndes
        <<- /typo/ ->> 2ᵈᵉˢ         && Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+$  [e|è|ième|ieme|ème|eme]
        <<- /typo/ ->> \1ᵉ          && Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+$  [es|ès|ièmes|iemes|èmes|emes]
        <<- /typo/ ->> \1ᵉˢ         && Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+(?:è|i?[èe]me)s?$
        <<- /typo/ \1.endswith("s")
        ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ"    && Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
        <<- /typo/ __else__
        ->> =\1.replace("me", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉ"      && Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: le {{1ier}} de chaque semaine             ->> 1ᵉʳ
TEST: les {{1 iers}}                            ->> 1ᵉʳˢ
TEST: la {{1ière}} fois, c’est la plus dure     ->> 1ʳᵉ
TEST: les {{1ières}}                            ->> 1ʳᵉˢ
TEST: le {{2nd}} du mois                        ->> 2ᵈ
TEST: les {{2nds}} du mois                      ->> 2ᵈˢ
................................................................................
#TEST: __romain__ Anno {{MXXXIII}}                   ->> ⅯⅩⅩⅩⅠⅠⅠ
#TEST: __romain__ j’ai eu un CDI.
#TEST: __romain__ c’est un écran LCD


__typo_ordinaux_chiffres_romains_exposants!5__
    Ier
        <<- /typo/ sContext != "Writer" and not option("romain") ->> Iᵉʳ     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> Ⅰᵉʳ     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    Iers
        <<- /typo/ sContext != "Writer" and not option("romain") ->> Iᵉʳˢ    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> Ⅰᵉʳˢ    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    Ire
        <<- /typo/ sContext != "Writer" and not option("romain") ->> Iʳᵉ     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> Ⅰʳᵉ     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    Ires
        <<- /typo/ sContext != "Writer" and not option("romain") ->> Iʳᵉˢ    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> Ⅰʳᵉˢ    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    IId
        <<- /typo/ sContext != "Writer" and not option("romain") ->> IIᵈ     && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> ⅠⅠᵈ     && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    IIds
        <<- /typo/ sContext != "Writer" and not option("romain") ->> IIᵈˢ    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> ⅠⅠᵈˢ    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    IIde
        <<- /typo/ sContext != "Writer" and not option("romain") ->> IIᵈᵉ    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> ⅠⅠᵈᵉ    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    IIdes
        <<- /typo/ sContext != "Writer" and not option("romain") ->> IIᵈᵉˢ   && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> ⅠⅠᵈᵉˢ   && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{2,20}e$
        <<- /typo/ sContext != "Writer" and not option("romain") ->> =\1[:-1]+"ᵉ"    && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> =\1[:-1].replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ")+"ᵉ"
#        && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    [Ie|Ve|Xe]
        <<- /typo/ sContext != "Writer" and not option("romain") ->> =\1[:-1]+"ᵉ"    && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> =\1[:-1].replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ")+"ᵉ"
#        && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{2,20}es$
        <<- /typo/ sContext != "Writer" and not option("romain") ->> =\1[:-2]+"ᵉˢ"   && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> =\1[:-2].replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ")+"ᵉˢ"
#        && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    [Ies|Ves|Xes]
        <<- /typo/ sContext != "Writer" and not option("romain") ->> =\1[:-2]+"ᵉˢ"   && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ ->> =\1[:-2].replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ")+"ᵉˢ"
#        && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: François {{Ier}}                          ->> Iᵉʳ
TEST: les {{Iers}}                              ->> Iᵉʳˢ
TEST: la {{Ire}}                                ->> Iʳᵉ
TEST: les {{Ires}}                              ->> Iʳᵉˢ
TEST: le {{IId}}                                ->> IIᵈ
TEST: les {{IIds}}                              ->> IIᵈˢ
................................................................................
#TEST: __romain__ {{XXXIIes}}                    ->> ⅩⅩⅩⅠⅠᵉˢ
#TEST: __romain__ les {{Ves}} siècles            ->> Ⅴᵉˢ


__typo_ordinaux_chiffres_romains_incorrects!5__
    I ier
    Iier
        <<- /typo/ ->> Iᵉʳ                                  && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> Ⅰᵉʳ                     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    I iers
    Iiers
        <<- /typo/ ->> Iᵉʳˢ                                 && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> Ⅰᵉʳˢ                    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    I ière
    Iière
        <<- /typo/ ->> Iʳᵉ                                  && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> Ⅰʳᵉ                     && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    I ières
    Iières
        <<- /typo/ ->> Iʳᵉˢ                                 && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> Ⅰʳᵉˢ                    && Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    II nd
    IInd
        <<- /typo/ ->> IIᵈ                                  && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> ⅠⅠᵈ                     && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    II nds
    IInds
        <<- /typo/ ->> IIᵈˢ                                 && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> ⅠⅠᵈˢ                    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    II nde
    IInde
        <<- /typo/ ->> IIᵈᵉ                                 && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> ⅠⅠᵈᵉ                    && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    II ndes
    IIndes
        <<- /typo/ ->> IIᵈᵉˢ                                && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> ⅠⅠᵈᵉˢ                   && Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{1,20}$  [e|è|ième|ieme|ème|eme]
        <<- /typo/ ->> \1ᵉ                                  && Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> =\1.replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ") + "ᵉ"
#        && Nombre ordinal romain singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{1,20}$  [es|ès|ièmes|iemes|èmes|emes]
        <<- /typo/ ->> \1ᵉˢ                                 && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__ ->> =\1.replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ") + "ᵉˢ"
#        && Nombre ordinal romain pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCDM]{1,20}(?:è|i?[èe]me)s?$
        <<- /typo/ not morph(\1, ":G") >>>
        <<- /typo/ \1.endswith("s") or \1.endswith("S")
        ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ"        && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
        <<- /typo/ __else__
        ->> =\1.replace("me", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉ"         &&  Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ \1.endswith("s") or \1.endswith("S")
#        ->> =\1.replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ").replace("mes", "").replace("è", "").replace("e", "").replace("i", "")+"ᵉˢ"
#        && Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
#        <<- /romain/ __else__
#        ->> =\1.replace("I", "Ⅰ").replace("V", "Ⅴ").replace("X", "Ⅹ").replace("L", "Ⅼ").replace("C", "Ⅽ").replace("D", "Ⅾ").replace("M", "Ⅿ").replace("me", "").replace("è", "").replace("e", "").replace("i", "")+"ᵉ"
#        &&  Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: François {{Iier}}                         ->> Iᵉʳ
TEST: {{Iiers}}                                 ->> Iᵉʳˢ
TEST: {{I ière}}                                ->> Iʳᵉ
TEST: {{Iières}}                                ->> Iʳᵉˢ
TEST: le {{IInd}} siècle                        ->> IIᵈ
TEST: {{IInds}}                                 ->> IIᵈˢ
................................................................................
    *NUM  -  ~^\d\d?$  -  ~^\d{2,5}$
        <<- \1.isdigit() ~>> ␣
        <<- =>> change_meta(\1, "DATE")


__date_jour_mois_année__
    31 [avril|juin|septembre|novembre]
        <<- /date/ space_after(\1, 1, 1) ->> 30 \2                                                  && Cette date est invalide. Il n’y a que 30 jours en \2.

    [30|31] février
        <<- /date/ space_after(\1, 1, 1) ->> 28 février|29 février                                  && Cette date est invalide. Il n’y a que 28 ou 29 jours en février.

    ~^\d\d?$  [janvier|février|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre]  ~^\d{2,5}$
        <<- /date/ not checkDate(\1, \2, \3) ->> _                                                  && Cette date est invalide.

TEST: le {{31 avril}}
TEST: le {{30 février}}
TEST: {{29 février 2011}}
................................................................................
        <<- /tu/ not value(\2, "|a|") ->> mi-\2                                      && S’il s’agit d’un seul mot, il manque un trait d’union.

TEST: J’ai été engagé pour un {{mi temps}}.


__tu_préfixe_quasi__
    quasi  @:N¬:[AGW]
        <<- /tu/ morph(<1, ":D") ->> quasi-\2                   && Il manque un trait d’union : « quasi » s’accroche au mot qui le suit s’il s’agit d’un nom.

    quasi
        <<- ~>> *

TEST: leurs {{quasi indifférences}}

    ~^[Qq]uasi-.+$
................................................................................
    [oui|ouï] dire
        <<- /tu/ morph(<1, ":G") ->> ouï-dire                   && Il manque probablement un trait d’union.

    par [dessous|dessus|devant|delà|derrière|dehors|dedans|devers]
        <<- /tu/ ->> par-\2                                     && Il manque un trait d’union.

    par ci ?,¿ par là
        <<- /tu/ ->> par-ci par-là|par-ci, par-là               && Traits d’union manquants.

    vis [à|a] vis
        <<- /tu/ ->> vis-à-vis                                  && Il manque les traits d’union.

TEST: on a fait {{à la va vite}}…
TEST: partir {{à contre cœur}}
TEST: Ils font des tests {{à tout va}}
................................................................................
        <<- /tu/ ->> \1\2|\1-\2|\2 \1                           && Mettez un trait d’union, fusionnez ou inversez les termes.
        <<- ~>> ␣

    [copié+ses|copier] / [coller|collé+ses]
    [copié-coller|copiée-coller|copiés-coller|copiées-coller]
    [copier-collé|copier-collée|copier-collés|copier-collées]
        <<- /tu/ ->> copier-coller|copié-collé|copiée-collée|copiés-collés|copiées-collées
        && Copier-coller pour le verbe ou l’action, copié-collé (et ses variantes) pour ce qui est copié-collé.

    >cul de sac
        <<- /tu/ ->> \1-\2-\3                                   && Mettez des traits d’union.|https://fr.wiktionary.org/wiki/cul-de-sac

    déjà vu
        <<- /tu/ morph(<1, ":D.*:[me]") ->> \1-\2               && S’il s’agit d’un nom, mettez un trait d’union.|https://fr.wiktionary.org/wiki/d%C3%A9j%C3%A0-vu

................................................................................
    [va+s] [t-en|>tan|tant] [>guerre|guère]
    vat’en [>guerre|guère]
    vat-en [>guerre|guère]
    vat [en|>an] [>guerre|guère]
    va-t-en [>guerre|guère]
    va-t’en-guerre
    va-t-en-guère
        <<- /tu/ ->> va-t-en-guerre                                                                 && Va-t-en-guerre (invariable) : des traits d’union sont nécessaires.|https://fr.wiktionary.org/wiki/va-t-en-guerre

TEST: {{Va-t-en}}, c’en est assez.
TEST: Un {{va-t’en guerre}}, on ne peut pas lui faire confiance.
TEST: Les {{va-t-en guerre}} sont de sortie.
TEST: Elle va t’en donner, des devoirs.


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

    [vingt|vingts] [deux|trois|quatre|cinq|six|sept|huit|neuf]
    [vingt|vingts] [>deuxième|>troisième|>quatrième|>cinquième|>sixième|>septième|>huitième|>neuvième]
        <<- /tu/ not value(<1, "|quatre|") ->> vingt-\2                                             && Il manque un trait d’union.

    soixante [dix|douze|treize|quatorze|quinze|seize|dix-sept|dix-huit|dix-neuf]
    soixante [>dixième|>douzième|>treizième|>quatorzième|>quinzième|>seizième|>dix-septième|>dix-huitième|>dix-neuvième]
        <<- /tu/ ->> \1-\2                                                                          && Traits d’union manquants.

    quatre [vingt|vingts]
        <<- /tu/ not morph(>1, ":B:e:p") ->> \1-\2                                                  && Il manque un trait d’union.

    quatre [vingt|vingts] [un|une|deux|trois|quatre|cinq|six|sept|huit|neuf|dix|onze|douze|treize|quatorze|quinze|seize|dix-sept|dix-huit|dix-neuf]
    quatre [vingt|vingts] [>unième|>deuxième|>troisième|>quatrième|>cinquième|>sixième|>septième|>huitième|>neuvième|>dixième|>onzième|>douzième|>treizième|>quatorzième|>quinzième|>seizième|>dix-septième|>dix-huitième|>dix-neuvième]
        <<- /tu/ ->> quatre-vingt-\3                                                                && Traits d’union manquants.

    [quatre-vingt|quatre-vingts] [un|une|deux|trois|quatre|cinq|six|sept|huit|neuf|dix|onze|douze|treize|quatorze|quinze|seize|dix-sept|dix-huit|dix-neuf]
    [quatre-vingt|quatre-vingts] [>unième|>deuxième|>troisième|>quatrième|>cinquième|>sixième|>septième|>huitième|>neuvième|>dixième|>onzième|>douzième|>treizième|>quatorzième|>quinzième|>seizième|>dix-septième|>dix-huitième|>dix-neuvième]
        <<- /tu/ ->> quatre-vingt-\2                                                                && Trait d’union manquant.

TEST: Il en veut {{vingts}} !                   ->> vingt
TEST: Y a-t-il {{quarante deux}} pages ?        ->> quarante-deux
TEST: J’en veux {{quatre-vingt}} !              ->> quatre-vingts
TEST: Non, {{quatre-vingts deux}} !             ->> quatre-vingt-deux
TEST: {{Quatre vingts deux}}.                   ->> Quatre-vingt-deux
TEST: {{quatre vingt}} hommes                   ->> quatre-vingt
................................................................................

TEST: je suis allé dans la {{grand’rue}}.                           ->> grand-rue
TEST: la grand-rue
TEST: sur la grand-place



!!!! Trait d’union : formes interrogative (nous/vous)                                             !!

__inte_union_nous1!7__
    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~ons$  nous
    [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~ons$  nous
    [ne|n’]  [le|la|l’|les]                  [lui|leur|en|y]             ~ons$  nous
    [ne|n’]  [lui|leur|y]                    en                          ~ons$  nous
        <<- /inte/ space_after(\-2, 1, 1) and morph(\-2, ":V.*:1p", ":[GW]") and not tag_before(\1, "_1p_")
        --2:-1>> \-2-\-1                                                                            && Forme interrogative ? Mettez un trait d’union.

    ,  ~ons$  nous  [<end>|,|)]
    ,  ~ons$  nous  @:¬:(?:1p|Y)
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    <start>  ~ons  nous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|allons|venons|partons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~ons  nous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:1p", ":[GW]") and not value(\2, "|veuillons|sachons|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: n’y {{retrouverons nous}} jamais la tranquilité ?
TEST: pourquoi n’en {{entendons nous}} jamais parler ?
TEST: que {{pouvons nous}} dans cette vie
TEST: que {{pouvons nous}} faire ?
TEST: {{Connaissons nous}} réellement cette langue ?
TEST: ils sont, {{croyons nous}}, indéfendables
................................................................................

__inte_union_vous1!7__
    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~ez$  vous
    [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         ~ez$  vous
    [ne|n’]  [le|la|l’|les]                  [lui|leur|en|y]             ~ez$  vous
    [ne|n’]  [lui|leur|y]                    en                          ~ez$  vous
        <<- /inte/ space_after(\-2, 1, 1) and morph(\-2, ":V.*:2p", ":[GW]") and not tag_before(\1, "_2p_")
        --2:-1>> \-2-\-1       && Forme interrogative ? Mettez un trait d’union.

    ,  ~ez$  vous  [<end>|,|)]
    ,  ~ez$  vous  @:¬:(?:2p|Y)
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    <start>  ~ez$  vous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|allez|venez|partez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

    [comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~ez$  vous
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]") and not value(\2, "|veuillez|sachez|")
        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: ne {{soutiendrez vous}} pas cette proposition ?
TEST: n’en {{voulez vous}} jamais à ces gens ?
TEST: je suis, {{penserez vous}}, un imbécile.
TEST: {{pouvez vous}} réussir ?
TEST: comment {{pensez vous}} y parvenir
TEST: {{Osez vous}} remettre en question notre autorité.
................................................................................
TEST: Vous ne pouvez vous satisfaire de si peu.


!!!! Virgules (2)                                                                                 !!

__virg_dialogue_après_nom_propre__
    [<start>|,|(]  $:M¬:G  [/-je|/-tu|/-on|/-nous|/-vous|/-ils|/-elles|/-iels|/_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: {{Julien}} donne-moi le sel.
TEST: Alexandre tient-il ses généraux ?
TEST: Alexandra vient-elle ?
................................................................................


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

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

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

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

TEST: {{A}} vaincre sans péril, on triomphe sans gloire.
TEST: « {{A}} partir de maintenant, ce ne sera plus comme avant.
TEST: — {{A}} n’en plus pouvoir
TEST: — {{A}} t’emmener loin de tout ceci.
TEST: {{A}} bientôt, mon ami.
TEST: A bientôt fini son devoir.
................................................................................
!!
!!

### double négation
__double_négation__
    pas [personne|aucun|aucune|jamais]
        <<- /conf/ not morph(<1, ":D.*:[me]") ->> \1|pas, \1
        && Double négation : les mots « pas \1 » ne devraient pas se succéder. Si ces mots appartiennent à des propositions distinctes, une virgule est peut-être préférable.

TEST: Ce que tu ne fais {{pas jamais}}.


### incohérences globales (attention à la casse du 2e mot, car beaucoup de sigles peuvent tromper)
__conf_incohérences_globales__
    [ce|cet|cette|ma|ta|sa|mon] [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|iel|iels|nous|vous|on]
        <<- /conf/ not \1.isupper() and not \2.isupper()
        -2>> =suggSimil(\2, ":[NA].*:[si]", True)                                                   && Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

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

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

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

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

................................................................................
TEST: Elles sont parties {{de puis}} au moins trois heures.
TEST: Depuis le temps que ça existe, tu devrais être au courant.


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

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

    [au|aux] [quel|quels|quelle|quelles]
    [au|aux] qu’ [elle|elles]
        <<- /conf/ ->> auquel|auxquels|auxquelles                                                   && Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/auquel

    [au|aux] combien  @:[AYW]
        <<- /conf/ -1:2>> ô combien                                                                 && Confusion probable.|https://fr.wiktionary.org/wiki/%C3%B4_combien
................................................................................
TEST: {{En}} Avignon
TEST: {{En}} Agen


# avoir été
__bs_avoir_été_chez__
    >avoir été chez
        <<- /bs/ not value(<1, "|l’|") ->> _                                                        && Tournure familière. Utilisez « être allé ».

TEST: J’{{ai été chez}} le coiffeur.
TEST: Chez les intellectuels, le mot utopie n’a jamais été synonyme de folie, mais il l’a été pour l’homme de la rue.
TEST: Saoul, je l’ai été chez mon ami, mais après ça allait mieux.


# abyme / abîme
................................................................................
TEST: incessamment {{sous peut}}
TEST: ils arrivent {{incessamment sous peu}}.


# pire
__bs_pire__
    [moins|aussi|plus] >pire
        <<- /bs/ -2>> mauvais|mauvaise|mauvaises                    && Tournure erronée : “\1 \2”. Utilisez “mauvais”.|http://www.academie-francaise.fr/plus-pire-moins-pire

    de mal en >pire
        <<- /bs/ ->> de mal en pis                                  && Tournure erronée. Écrivez “de mal en pis”.

    au pire aller
        <<- /bs/ ->> au pis aller                                   && Tournure erronée. Écrivez “au pis aller”.|https://fr.wiktionary.org/wiki/au_pis_aller

................................................................................
        ->> bien qu’|quoiqu’                                                                        && “Malgré que” est une tournure populaire. Utilisez “bien que” ou “quoique”.

TEST: {{Malgré que}} je sois fou.
TEST: {{malgré qu’}}elle soit là.


#([mts]e|[nv]ous) (rappel\w+) (de) <<- word(1) != "ne" and not morph(word(1), ":V")
#   -3>> _                                                     && Expression impropre. « Se rappeler quelque chose » ou « Se souvenir de quelque chose ».
#Se rappelle de l’amour

#enjoindre à qqn de faire qqch


__code_legacy__
    legacy code
    code legacy
        <<- /bs/ ->> code hérité|code reliquat                                                      && Anglicisme superflu.

TEST: c’est du {{legacy code}}.
TEST: ce {{code legacy}} est un cauchemar



!!
................................................................................
TEST: J’leur en {{veut}} pas, à ces crétins.
TEST: je t’en {{parlé}}
TEST: Je est un autre.


__conf_je_non_verbe__
    je  @:¬:(?:V|Ov)
        <<- /conf/ not value(\2, "|soussigné|soussignée|") and not morph(<1, ":1s|>pronom/")
        -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: j’ai l’impression de ne même pas savoir ce qu’est un « juif français ».
TEST: les pronoms “je” et “tu”


## 2sg
__conj_tu__
    tu                                                                       @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:Ov|P|[ISK].*:2s)
................................................................................
__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.


## 3sg
................................................................................
TEST: il n’y {{aurais}} plus rien à attendre de la religion et de la politique.
TEST: il y en {{as}}.


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

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

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


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

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

TEST: on {{et}} parti.
TEST: on nous {{et}} indispensable.
TEST: on ne {{travail}} pas le week-end.
TEST: on m’{{arête}} encore une fois avec une impudence insupportable.
TEST: on n’y {{pas}} beaucoup d’entente entre eux.
TEST: on est normal de ne presque pas payer des gens qui effectuent un travail
................................................................................

    [ce|c’]                         @>être/:V¬:(?:N|A|3[sp]|P|Q|Ov)
    [ce|c’]  [le|l’]                @>être/:V¬:(?:N|A|3s|P|Q|Ov)
    [ce|c’]  [ne|n’]  ?[le|l’|en]¿  @>être/:V¬:(?:3[sp]|P|Q|Ov)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                                                      && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    [c’|ç’]                         @:¬:(?:[123][sp]|Y|P|Ov|X)|>que/
        <<- /conf/ -2>> =suggSimil(\2, ":3s", False)                                                && Incohérence avec « \1 » : « \2 » devrait être un verbe.

TEST: pour toi qui sais tout, ce ne le {{fus}} pas
TEST: ce secret tu, ce {{devais}} être un cauchemar.
TEST: Ce peut être un chien ou un chat.
TEST: ce ne peut être aussi stupide.
TEST: ce dut être un cauchemar.
TEST: ce devra être un véritable expert pour accomplir une tâche aussi difficile.
................................................................................
TEST: C’en était malsain.
TEST: C’en devenait trop.
TEST: C’en pouvait être effrayant.


__conf_c_s_verbe__
    [il|ils|on|ne|n’]  c’
        <<- /conj/ -2>> s’                                                      && Confusion. La graphie élidée du pronom personnel « se » s’écrit « s’ ».

    [<start>|,|(]  [elle|elles|iel|iels|lui|eux]  c’  ?en¿  >être  ?$:W¿  $:Q
        <<- /conj/ -3>> s’                                                      && Confusion. La graphie élidée du pronom personnel « se » s’écrit « s’ ».

    [<start>|,|(]  [elle|elles|iel|iels|lui|eux]  c’  ?en¿  $:V¬:V0e
        <<- /conj/ -3>> s’                                                      && Confusion. La graphie élidée du pronom personnel « se » s’écrit « s’ ».

    c’ y
    c’ @:V¬>(?:avoir|être|devoir|devenir|pouvoir|vouloir|savoir)/.*:3[sp]
        <<- /conj/ -1>> s’                                                      && Confusion. La graphie élidée du pronom personnel « se » s’écrit « s’ ».

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

TEST: {{S’en}} était vraiment trop !
TEST: Car {{s’en}} était vraiment fini !
TEST: il {{c’}}en est vite lassé.
TEST: elles {{c’}}étaient trop vanté de ses mérites
TEST: cet homme, perdu dans ses pensées, allait {{c’}}en faire du souci.
TEST: il {{c’}}accoutumait à sa nouvelle fonction.
................................................................................
TEST: {{c’}}y adonne avec passion
TEST: c’était merveilleux.
TEST: lui c’est un objet


__conf_ce_qui_verbe__
    ce qui  ?[lui|leur|leurs|nous|vous]¿  (et)  ?@:[WX]¿  ?@:[WX]¿  @:(?:[AQD]|V1.*:Y)
        <<- /conf/ -1>> est                                                     && Confusion probable : “et” est une conjonction de coordination. Pour le verbe “être”, écrivez “est”.

    ce qui  ?[lui|leur|leurs|nous|vous]¿  (étai)  ?@:[WX]¿  ?@:[WX]¿  @:(?:[AQD]|V1.*:Y)
        <<- /conf/ -1>> était                                                   && Confusion probable : “étai” est un nom commun. Pour le verbe “être”, écrivez “était”.

TEST: ce qui {{et}} beau.
TEST: ce qui {{étai}} notre lot.
TEST: ce qui lui {{étai}} propre
TEST: ce qui nous {{et}} pas vraiment utile


__conj_mieux_vaut__
    mieux  ?[ne|n’]¿  [vaux|valais|valus|vaudras|vaudrais]
        <<- /conj/ --1>> =\-1[:-1]+"t"                                                              && Conjugaison erronée. Accord avec “mieux” : utilisez la 3ᵉ personne du singulier.

TEST: avec toi qui ne sais rien de rien, mieux {{vaux}} ne rien dire.
TEST: Mais là-bas mieux {{valais}} ouvrir sa gueule que se taire.



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

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

    [<start>|,|(|puisque|lorsque|quand|quoique|combien|pourquoi|comment|où]  nous  [le|la|l’|les|en|y]   @:V[123]..t_._[e_][a_]¬:(?:1p|Ov|Y|P)
        <<- /conj/ --1>> =suggVerb(\-1, ":2p")                                                      && Conjugaison possiblement erronée. Accord avec “nous”. Le verbe devrait être à la 1ʳᵉ personne du pluriel.

TEST: Nous {{arriverez}} demain.
TEST: Nous {{travaillez}}.
TEST: nous {{donné}} trop de considération
................................................................................
TEST: ils me les {{laissés}}.
TEST: j’ai peur qu’il ne leur {{face}} quelque chose de mal


__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


## se + incohérence
................................................................................
        <<- !2>>
        <<- ~>> *


__non_verbe_après_préverbes__
    [ne|n’]     [le|la|l’|les]      [lui|leur|en|y]         @:¬:(?:[123][sp]|Y|P|Ov|X)
    [ne|n’]     [lui|leur]          en                      @:¬:(?:[123][sp]|Y|P|Ov|X)
        <<- /conf/ -4>> =suggSimil(\4, ":(?:[123][sp]|Y)", False)                                   && Incohérence avec « \1 \2 \3 » : « \4 » devrait être un verbe.

    [ne|n’]              [le|la|l’|les|nous|vous|lui|leur]  @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère)/
    n’                   [en|y]                             @:¬:(?:[123][sp]|Y|P|Ov|X|W)|>(?:presque|rien|guère)/
    [me|m’|te|t’|se|s’]  [le|la|l’|les]                     @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère)/
    [me|m’|te|t’]        [en|y]                             @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère|voici|revoici|voilà|revoilà)/
    [se|s’]              [en|y]                             @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère)/
        <<- /conf/ -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False)                                   && Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    [nous|vous]           y                                 @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère|voici|revoici|voilà|revoilà)/
        <<- /conf/ not morph(<1, ":R") -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False)               && Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    [ne|n’]                                                 @:¬:(?:[123][sp]|Y|P|Ov|X|W)|>(?:même|presque|rien|guère)/
    [me|m’|te|t’]                                           @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère|voici|revoici|voilà|revoilà)/
    se                                                      @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:presque|rien|guère|qu[ei’])/
    s’                                                      @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:ils?|qu[ei’])/
        <<- /conf/ not value(<1, "|pronom|") -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False)         && Incohérence avec « \1 » : « \2 » devrait être un verbe.

TEST: ne leur en {{fil}} pas
TEST: ne l’{{oubli}} pas
TEST: ne {{pensée}} rien, jamais
TEST: n’en {{laissée}} que des miettes
TEST: s’y {{intéressé}}
TEST: J’y {{travail}}.
................................................................................
TEST: T’y voilà propulsé.
TEST: t’en voilà débarrassée.
TEST: N’oublient-ils pas ce qu’ils étaient autrefois…
TEST: Ne presque jamais réussir un plat aussi simple, c’est de l’incompétence pure et simple.
TEST: c’est vous les journalistes qui l’avez écrit
TEST: C’est nous les patrons
TEST: me revoilà
TEST: ne l’avoir pas vu plus tôt


__loc_notre_père_qui_es_au_cieux__
    notre père qui [es|est] aux cieux
        <<- !4>>
        <<- ~3:0>> *

................................................................................
!!
!!!! Confusions générales                                                                         !!
!!
!!

__conf_usage_impropre__
    au  le  @:[NA]
        <<- /conf/ not \1.isupper() and \2.islower() -1:2>> au              && Usage impropre. Après “au”, l’article “le” est inapproprié. (Ex : Je vais à la gare, je vais au stade.)

    au  les  @:[NA]
        <<- /conf/ not \1.isupper() and \2.islower() -1:2>> aux             && Usage impropre. Après “au”, l’article “les” n’est pas nécessaire.

    au  la  @:[NAQ].*:[fe]
        <<- /conf/ not \1.isupper() and \2.islower() -1>> à                 && Usage impropre. Avec un nom féminin, utilisez la préposition “à”. (Ex : Je vais à la gare, je vais au stade.)

    au  l’
        <<- /conf/ \2 == "l’" -1>> à                                        && Usage impropre. Exemple : Elle va à l’opéra. Elle va au bal.

TEST: {{au le}} chien
TEST: {{au les}} armoires
TEST: qui sont {{au}} l’usage
TEST: {{au}} la passion


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

TEST: Ça t’arrive {{de d’}}arriver à l’heure ?
TEST: Les écrits de d’Alembert.


__conf_déterminant_fem_sing_verbe__
    [ma|ta|cette|ladite]  @:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                        && Incohérence avec « \1 » : « \2 » est un verbe.

    quelle  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|") and hasSimil(\2, ":[NA]:[fe]:[si]")
        -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                                                && Incohérence avec « \1 » : « \2 » est un verbe.

    sa  @:(?:Y|[123][sp])¬:(?:N.*:[fe]|A|W)
        <<- /conf/ not \1.isupper() and \2.islower() >>>
        <<- /conf/ morph(\2, "V.....[pqx]") -1>> ça|se                                              && Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient. (Une faute de frappe peut-être ?)
        <<- /conf/ __else__ -1>> ça                                                                 && Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient.
        <<- /conf/ not morph(\2, ":V0") and hasSimil(\2)
        -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                                                && Incohérence avec « \1 » : « \2 » est un verbe.

    sa  a
        <<- /conf/ not \1.isupper() -1>> ça                                                         && Confusion. Si vous voulez dire “cela”, écrivez “ça”.

TEST: Cette {{pèle}} est trop fragile.
TEST: {{sa}} devient difficile.
TEST: il me tendit {{sa}} {{pèche}}.
................................................................................
TEST: quelle serait la solution ?
TEST: quelle pourrait être la solution à ce problème ?


__conf_déterminant_mas_sing_verbe__
    du  @:(?:Y|[123][sp]|P)¬:[NAQ]
        <<- /conf/ \2.islower() and not ( morph(\-1, ":V[023].*:Y") and ( morph(<1, ":V0a|>(?:jamais|pas)") or tag(<1, "_VCint_") ) )
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    [cet|ledit|dudit]  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    quel  @:V[123].*:(?:Y|[123][sp])¬:[NAQ]|>(?:pouvoir|vouloir|aller|devoir)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|")
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    au  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower() and not value(\2, "|sortir|")
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    ce  @:V.*:(?:Y|[123][sp])¬:[NAQ]:.:[si]
        <<- /conf/ \2.islower()
            and not value(\2, "|faire|sont|soit|fut|fût|serait|sera|seront|soient|furent|fussent|seraient|peut|pouvait|put|pût|pourrait|pourra|doit|dut|dût|devait|devrait|devra|") and hasSimil(\2)
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\1” : “\2” est un verbe.

    [mon|chaque]  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:.:[si]", True)                                                   && Incohérence avec “\1” : “\2” est un verbe.

    [<start>|,|(]  [ton|son|audit]  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \3.islower()
        -3>> =suggSimil(\3, ":[NA]:[me]:[si]", True)                                                && Incohérence avec “\2” : “\3” est un verbe.

    [un|une]  @:(?:Y|[123][sp])¬:[GNA]  ?$:W¿  @:A¬:[GM]
        <<- /conf/ not value(<1, "|dont|l’|d’|sauf|excepté|qu’|") and not before("(?i)\\bun à +$") and not morph(\2, ":V0")
        -2>> =suggSimil(\2, ":[NAQ]:[me]:[si]", True)                                               && Incohérence avec “\1” : “\2” est une forme verbale conjuguée.

TEST: un {{maintient}} difficile.
TEST: cet {{plaît}} est infectée.
TEST: {{ce}} {{rappelle}} n’en finit pas.
TEST: mon {{rackette}} n’a pas porté les fruits espérés.
TEST: ton {{recèle}} avait été dévoilé
TEST: quel {{impacte}} cela aura-t-il ?
................................................................................
TEST: Quel serait l’homme capable d’une telle horreur ?
TEST: Une était plus courte que l’autre.


__conf_déterminant_plur_verbe__
    [des|ces|mes|tes|ses|aux]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:.*:[pi]", True)                                                  && Incohérence avec « \1 » : « \2 » est un verbe.

    nos  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() -2>> =suggSimil(\2, ":[NA]:.*:[pi]", True)                          && Incohérence avec « \1 » : « \2 » est un verbe.
        <<- /conf/ __also__ and morph(\2, ":1p") -1>> nous                                          && Vouliez-vous écrire « nous » ? Le terme « \2 » est un verbe conjugué à la 1ʳᵉ personne du pluriel.

    vos  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() -2>> =suggSimil(\2, ":[NA]:.*:[pi]", True)                          && Incohérence avec « \1 » : « \2 » est un verbe.
        <<- /conf/ __also__ and morph(\2, ":2p") -1>> vous                                          && Vouliez-vous écrire « vous » ? Le terme « \2 » est un verbe conjugué à la 2ᵉ personne du pluriel.

    quels  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir|être)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|")
        -2>> =suggSimil(\2, ":[NA].*:[me]:[pi]", True)                                              && Incohérence avec « \1 » : « \2 » est un verbe.

    quelles  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir|être)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|") and hasSimil(\2, ":[NA]:[fe]:[pi]")
        -2>> =suggSimil(\2, ":[NA].*:[fe]:[pi]", True)                                              && Incohérence avec « \1 » : « \2 » est un verbe.

    quelques  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() and not value(\2, "|soient|soit|sois|puisse|puisses|puissent|")
        -2>> =suggSimil(\2, ":[NA]:.*:[pi]", True)                                                  && Incohérence avec « \1 » : « \2 » est un verbe.

    [auxdits|lesdits|desdits]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA].*:[me]:[pi]", True)                                              && Incohérence avec « \1 » : « \2 » est un verbe.

    [auxdites|lesdites|desdites]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA].*:[fe]:[pi]", True)                                              && Incohérence avec « \1 » : « \2 » est un verbe.

TEST: la crainte des {{attentas}} fait feu de tout bois.
TEST: {{nos}} {{agissons}}
TEST: {{vos}} {{prenez}} vos délires pour la réalité.
TEST: Quelques {{axions}} de la sorte suffisent à nous discréditer.
TEST: elle se rendit auxdits {{jardinais}}
TEST: auxdites {{scelles}}, il ne prêta pas attention.
................................................................................
TEST: {{quelles}} {{arrêtes}}
TEST: quels seraient nos avantages ?
TEST: quelles vont être nos chances ?


__conf_à_vconj__
    à  [le|la|l’|les|leur|leurs|ton|son]  @:V¬:[GNAWMBY]
        <<- /conf/ -3>> =suggSimil(\3, ":[NA]", True)                                               && Incohérence : après “\1 \2”, on devrait trouver un groupe nominal (ou un verbe à l’infinitif).

    à  [un|une]  @:V¬:[GNAWMB]
        <<- /conf/ not value(<1, "|un|une|") -3>> =suggSimil(\3, ":[NA]", True)                     && Incohérence : après “\1 \2”, on devrait trouver un groupe nominal.

TEST: à leur {{profile}}
TEST: à un {{employer}}
TEST: on les voit un par un devenir prendre un chemin de predition
TEST: une référence à l’astuce de base qui permet d’outrepasser ses droits.
TEST: Le mari répète à l’envi qu’il a découvert la France à travers les mots de sa femme.
TEST: Il reste de nombreux militants sincères à la FI.


__conf_de_vconj__
    [de|d’]  @:V.*:[123][sp]¬:[GNA]
        <<- /conf/ not \2.istitle() and not value(\2, "|jure|") and not tag(\2, "eg1mot")
        -2>> =suggSimil(\2, ":[NA]", True)                                                          && Incohérence avec “\1” : “\2” est une forme verbale conjuguée.

TEST: il s’agit de {{mette}} en évidence.


    [de|d’]  [l’|leur]  @:[123][sp]¬:[NAQ]
        <<- /conf/ not \3.istitle() -3>> =suggSimil(\3, ":[NA]:.:[si]", True)                       && Incohérence avec “\1 \2” : “\3” est une forme verbale conjuguée.

TEST: de l’{{arrivait}}


    [de|d’]  le  *WORD
        <<- /conf/ space_after(\1, 0, 1) and morph(\3, ":[NAQ].*:[me]", ":[YG]") and not \3.istitle()
            and not (value(\3, "|mal|") and morph(>1, ":Y")) -1:2>> du                              && Incohérence avec “\1 \2” : “\3” est un nom ou un adjectif.
        <<- /conf/ morph(\3, ":[123][sp]") -3>> =suggVerbInfi(\3)                                   && Incohérence avec “\1 \2” : “\3” est une forme verbale conjuguée.

TEST: {{de le}} vin                                           ->> du
TEST: il n’est pas interdit de le {{pensait}}
TEST: que connais-tu de “Le Tambour” ?


    [de|d’]  la  *WORD
        <<- /conf/ morph(\3, ":[123][sp]", ":[NAQ]") and not \3.istitle() >>>
        <<- /conf/ morph(\3, ":V1.*:(?:Iq|Ip:2p)", ":1p") -3>> =suggVerbInfi(\3)                    && Incohérence avec “\1 \2” : mettez le verbe à l’infinitif (à moins qu’il y ait confusion avec un nom féminin).
        <<- /conf/ __else__ >>>
        <<- /conf/ hasSimil(\3, ":(?:[NA]:[fe]:[si])") -3>> =suggSimil(\3, ":(?:[NA]:[fe]:[si])", True)    && Incohérence avec “\1 \2” : “\3” est un verbe.
        <<- /conf/ __else__ -2>> là                                                                 && Confusion probable. Si vous voulez dire “depuis ce point”, écrivez “de là”.

TEST: j’étais loin de la {{pensait}} ainsi                      ->> penser
TEST: ce n’était que de la {{bouillit}}                         ->> bouillie
TEST: de {{la}} venaient tous nos problèmes                     ->> là


    d’  [un|une]  @:[123][sp]¬:[GNA]
        <<- /conf/ not \3.istitle() and not value(<1, "|plus|moins|")
        -3>> =suggSimil(\3, ":[NA]", True)                                                          && Incohérence avec “\1\2” : “\3” est une forme verbale conjuguée.

TEST: d’une {{habille}} de femme
TEST: plus d’un ont été traumatisés
TEST: Plus d’une sont parties aussi vite qu’elles étaient venues


__conf_par_vconj__
    par  ?[le|la|l’|les||leur|leurs]¿  @:[123][sp]¬:[GNA]
        <<- /conf/ not \-1.istitle() --1>> =suggSimil(\-1, ":[NA]", True)                           && Incohérence avec “\1” : “\-1” est une forme verbale conjuguée.

    par  [un|une]  @:V¬:[GNA]
        <<- /conf/ not \3.istitle() and not value(<1, "|un|une|")
        -3>> =suggSimil(\3, ":[NA]", True)                                                          && Incohérence avec “\1\2” : “\3” est une forme verbale conjuguée.

TEST: par {{bloque}} de données
TEST: par une {{donnait}} sans importance
TEST: conçu par un {{employer}} très compétent
TEST: pour les insulter au sortir du seul troquet dispensateur d’oubli liquide du coin
TEST: ce peut être un matériau à part entière pour alimenter discussions et délibérations.


__conf_préposition_det_verbe__
    [malgré|dès] [un|une|le|la|l’|les|leur|leurs|son|ton]  @:V¬:[GNAWMB]
        <<- /conf/ not \-1.istitle() -3>> =suggSimil(\3, ":[NA]", True)         && Incohérence : après “\1 \2”, on devrait trouver un groupe nominal.

TEST: malgré l’{{arrête}} qui interdisait le port
TEST: dès le {{commencent}}, j’ai vu le problème.
TEST: malgré un {{employer}} peu dévoué
TEST: malgré les deux précédentes erreurs


................................................................................
TEST: Tout ce qu’on fera chez {{sera}} enregistré.


__conf_de_plus_en_plus_verbe__
    de plus en plus  @:(?:[123][sp]|Y)¬:(?:[GAQWN]|3p)
        <<- /conf/ not morph(<1, ":V[123].*:[123][sp]|>(?:pouvoir|vouloir|falloir)/")
        -5>> =suggVerbPpas(\5)
        && Incohérence probable avec « de plus en plus » : « \5 » n’est ni un adjectif, ni un participe passé, ni un adverbe.

TEST: de plus en plus {{gagnait}} par la folie.
TEST: de plus en plus {{concerner}} par ce problème
TEST: avec quel zèle ils remplissent leurs devoirs de citoyens (de plus en plus deviennent enseignant·e·s, infirmier·e·s ou s’engagent dans l’armée, etc.).
TEST: il faut de plus en plus aider ces gens.
TEST: nous leur faisons de plus en plus confiance.
TEST: elles ont de plus en plus recours à des intermédiaires.


#### Participes présents
__conf_participes_présents__
    [ne|n’|me|m’|te|t’|se|s’]  ~\want$
        <<- /conf/ morph(\2, ":", ":P") -2>> _                                                      && Incohérence : « \2 » n’est pas un participe présent.

    [nous|vous|lui]  ~\want$
        <<- /conf/ not morph(<1, ":R") and morph(\2, ":[NAQ]", ":[PG]") -2>> _                      && Incohérence : « \2 » n’est pas un participe présent.

TEST: ne {{convaincant}} que les convaincus.
TEST: une tension lui {{provocant}} un ulcère
TEST: comme des nuages ou des coteaux se reflétant dans l’eau (ligature fl)
TEST: ces hommes qui avaient abusé de lui enfant.


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

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

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

TEST: {{en t’}}ait donné tant.                                              ->> "t’en "
TEST: il {{en me}} donne beaucoup.                                          ->> m’en
TEST: elle n’{{en n’}}avait plus pour longtemps.                            ->> "en "
TEST: {{en m’}}{{apportent}} des gâteaux
TEST: {{en se}} {{contentent}}
TEST: {{en n’}}{{abordent}} la côte, nous vîmes le désastre.
................................................................................

TEST: en tant qu’{{abaisse}}
TEST: en tant que tel


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

TEST: presque {{délaissait}} par tout le monde.
TEST: Tout le monde ou presque déteste ces gens-là.


__conf_sur_vconj__
    sur  @:(?:[123][sp]|P)¬:[GNAQM]
................................................................................

# pour justifiée qu’elle fût
# [aussi|si] habile qu’il soit


__conf_trop_vconj__
    trop  @:[123][sp]¬:(?:[GNAQWM]|3p)
        <<- /conf/ not tag_before(\1, "_ceque_") -2>> _                                              && Incohérence probable avec “trop” : “\2” n’est ni un adjectif, ni un participe passé, ni un adverbe.

TEST: J’ai trop {{mangeais}}.
TEST: Ce que nous réussissons presque sera considéré comme un échec.


__conf_très_verbe__
    très  @:(?:Y|[123][sp])¬:[AQW]
        <<- /conf/ not value(\2, "|envie|") -2>> =suggSimil(\2, ":[AW]", True)                      && Incohérence avec “très” : “\2” n’est ni un adjectif, ni un participe passé, ni un adverbe.

TEST: Il est très {{cite}}.
TEST: très {{suivit}} par ce détective
TEST: il était très {{habille}}


#### Aussi +adj que soit +sujet
................................................................................
!!
!!

# a / à

__conf_a_à_incohérences__
    à [afin|alors|après|auprès|avant|avec|au-dedans|au-dehors|au-delà|au-dessous|au-dessus|au-devant|chez|dans|devant|dès|déjà|donc|durant|envers|lorsque|lorsqu’|malgré|parce|parmi|pendant|pour|puisque|puisqu’|quoique|quoiqu’|que|qu’|sur|tandis|vis-à-vis]
        <<- /conf/ not tag(\1, "eg1mot") -1>> a                                           && Incohérence avec “\2”. Confusion probable : “à” est une préposition. Écrivez “a” pour la conjugaison de “avoir”.

    à [au|aux]
        <<- /conf/ not tag(\1, "eg1mot") and not value(>1, "|moins|plus|mieux|") -1>> a   && Incohérence avec “\2”. Confusion probable : “à” est une préposition. Écrivez “a” pour la conjugaison de “avoir”.

TEST: ce que cet homme, dans son garage, {{à}} alors une importance.
TEST: ce que cette personne, dans son esprit trouble et vindicatif, {{à}} aux hommes à dire, nul ne le sait.


__conf_a_à_verbe!6__
    [n’|m’|t’|s’]   ?[en|y]¿        à
    [l’|les]        [en|y]          à
    [ne|me|te|se]   [les|l’]        à
    [nous|vous]     [en|y|les|l’]   à
    ne [le|la|les]  [leur|lui]      à
    ne [le|la|les]  [leur|lui]      à
    y en                            à
        <<- /conf/ --1>> a                                          && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: il me les {{à}} donnés
TEST: il me l’{{à}} donné
TEST: Il ne les leur {{à}} pas imposés.
TEST: l’homme, jamais, ne la lui {{à}} imposés.
TEST: l’homme, jamais, ne nous l’{{à}} prise.
TEST: Il m’en {{à}} donné.
TEST: Il ne m’{{à}} jamais vu.
TEST: elle n’{{à}} rien raté.


    y à
        <<- /conf/ -2>> a                                           && Confusion probable : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: elle n’y {{à}} pas droit.
TEST: il y {{à}} des pertes.
TEST: Il les y {{à}}.
TEST: Y {{à}} du poulet


    [l’|les] à
        <<- /conf/ not \1.isupper() and not value(>1, "|côté|coup|pic|peine|peu|plat|propos|valoir|")
        -2>> a                                                      && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

    en à
        <<- /conf/ not \1.isupper() and not value(>1, "|côté|coup|pic|peine|peu|plat|propos|valoir|") and not morph(<1, ">venir/")
        -2>> a                                                      && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: Ce fâcheux, comme à son habitude, les {{à}} ennuyés à mourir.
TEST: Lui l’{{à}} pris par surprise.
TEST: Il y en {{à}}.
TEST: Elle en {{à}} pris.
TEST: Elle l’en {{à}} averti.
TEST: lui, avec ceux-là, nous en {{à}} donnés trois.
TEST: qui en {{à}} ?
TEST: il les a pris, les {{à}} frapper


    [il|on]  [nous|vous]  à
        <<- /conf/ -3>> a                                           && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: il nous {{à}} perdus dans ce dédale.


    elle  [nous|vous]  à
        <<- /conf/ not morph(<1, ":(?:3s|R)") and not morph(>1, ":Oo|>quo?i/")
        -3>> a                                                      && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: elle nous {{à}} pris par suprise.


    à été
        <<- /conf/ -1>> a                                           && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: Cette femme {{à}} été confondue avec une autre.


    qui  à  $:Q¬:M
        <<- /conf/ \3.islower() -2>> a                              && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: ce qui {{à}} pris tant de valeur, c’est…


    qui  [lui|nous|vous]  à
        <<- /conf/ -3>> a                                           && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: un élève qui nous {{à}} fait bien des misères.


    [leur|leurs] à
        <<- /conf/ not morph(<1, ":D") --1>> a                      && Confusion : “à” est une préposition. Pour le verbe avoir, écrivez “a”.

TEST: le peuple leur {{à}} donner tort


    à  le  @:[NAQ].*:[me]¬:(?:Y|Oo)
        <<- /conf/ -1:2>> a le|au
        && Confusion. Ou vous confondez “à” (préposition) avec “a” (avoir), ou vous devez employer “au”. Exemple : _à_ midi, il _a_ pris son déjeuner _au_ restaurant.

TEST: Ce chien, croyons-nous savoir, {{à le}} maître le plus violent qui soit.


    à  le  @:[NAQ].*:f¬:(?:Y|Oo)
        <<- /conf/ -1:2>> à la|a la
        && Confusion. Ou vous confondez “à” (préposition) avec “a” (avoir), ou vous devez employer “a la”. Exemple : elle _a_ la Palme d’Or du festival de Cannes.

TEST: {{à le}} {{donnée}}


    à  les  @:[NAQ]¬:(?:Y|Oo)
        <<- /conf/ -1:2>> a les|aux
        && Confusion. Ou vous confondez “à” (préposition) avec “a” (avoir), ou vous devez employer “aux”. Exemple : Elle _a_ donné du travail _aux_ employés _à_ profusion.

TEST: Celui qui y croit {{à les}} moyens d’y parvenir.


    à  ?$:W¿  *WORD
        <<- /conf/ \2.islower() and not value(\2, "|coté|sont|") >>>
        <<- /conf/ morph(\2, ":(?:V.......[_z][az].*:Q|V1.*:Ip:2p)", ":[MGWNY]") -1>> a             && Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez “a”.
        <<- /conf/ __also__ and morph(\2, "V1.*:(?:Ip:2p|Q)", "*") and not value(<1, "|il|elle|on|n’|les|l’|m’|t’|s’|d’|en|y|lui|nous|vous|leur|")
        -2>> =suggVerbInfi(\2)                                                                      && Le verbe devrait être à l’infinitif.
        <<- /conf/ __else__ and morph(\2, ":[123][sp]", "*") and not value(\2, "|tord|tords|") >>>
        <<- /conf/ morph(\2, ":V2.*:I[ps]:3s", "*") -2>> =suggVerbPpas(\2, ":m:s")                  && Incohérence : “\1” est une préposition. “\2” est un verbe conjugué.
        <<- /conf/ __also__ -1>> a                                                                  && Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez “a”.
        <<- /conf/ __else__ -2>> _                                                                  && Incohérence : “\1” est une préposition. “\2” est un verbe conjugué.

TEST: Que fait-il {{a}} cette conférence ?
TEST: L’homme {{à}} ouvert la boîte.
TEST: Il ne nous reste plus qu’{{à}} {{vérifié}} si votre maquette.
TEST: Je veux {{à}} {{mangé}}.
TEST: Ne pas hésiter {{à}} {{demandé}} des conseils.
TEST: cette femme, dans son délire, {{à}} {{jetez}} son argent à la poubelle.
................................................................................

__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|iel|on|n’|m’|t’|l’|") and not before("(?i)\\bqu[e’] |n’(?:en|y) +$")
        -1>> à                                                      && Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|https://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: Mélanie l’a {{transformer}}
TEST: {{A}} vous lire, on ne sait plus que penser de toutes ces histoires


__conf_à_qui_infinitif__
    *WORD  a  qui  @:(?:Y|Os)
        <<- /conf/ morph(\1, ":N", ":Ov") -2>> à                    && Confusion probable : “a” est la conjugaison du verbe “avoir”. Utilisez la préposition “à”.|https://fr.wiktionary.org/wiki/%C3%A0

TEST: il n’y avait personne {{a}} qui parler de nos problèmes       ->> à
TEST: des gens {{a}} qui offrir ça                                  ->> à


__conf_à_a__
    [<start>|,|(] a moins [que|qu’]
        <<- /conf/ -2>> à                                           && Confusion probable : « à moins que » pour dire « sauf si ».

    a part @:(?:M[12]|D|Oo)
        <<- /conf/ -1>> à                                           && Confusion probable : “a” est une forme conjuguée de “avoir”. Pour la préposition, écrivez “à”.

    face a
        <<- /conf/ not morph(<1, ":(?:D.*:f:s|A.*:[fe]:[si])|>en/")
        -2>> à                                                      && Confusion probable : “a” est une forme conjuguée de “avoir”. Pour la préposition, écrivez “à”.

    par rapport  a  @:(?:D|Oo|M)
        <<- /conf/ -3>> à                                           && Confusion : “a” est une forme conjuguée de “avoir”. Pour la préposition, écrivez “à”.

    grâce a
        <<- /conf/ morph(<1, ":[VN]|<s