Grammalecte  Check-in [72c5a3d7e1]

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

Overview
Comment:[fr] tests et ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256:72c5a3d7e17f8cc63c6a8224d8917248c5bf1e8354bef7fbf0d13b340e114108
User & Date: olr 2019-07-24 11:01:25
Context
2019-07-24
11:07
[fr] tests et ajustements check-in: 3178e0923f user: olr tags: fr, trunk
11:01
[fr] tests et ajustements check-in: 72c5a3d7e1 user: olr tags: fr, trunk
07:50
[lo] text formatter: fix strange bugs with replacements (again) check-in: df2bb268e4 user: olr tags: lo, trunk
Changes

Changes to gc_lang/fr/rules.grx.

1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
....
3351
3352
3353
3354
3355
3356
3357

3358
3359
3360
3361
3362
3363
3364
....
3382
3383
3384
3385
3386
3387
3388







3389
3390

3391
3392
3393
3394
3395
3396
3397
....
3430
3431
3432
3433
3434
3435
3436
3437
3438



3439






3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
....
3574
3575
3576
3577
3578
3579
3580
3581
3582

3583
3584
3585
3586
3587
3588
3589
....
3714
3715
3716
3717
3718
3719
3720




3721
3722
3723
3724



3725
3726
3727
3728
3729
3730
3731
....
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
4250
4251
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

4307
4308
4309
4310
4311
4312
4313

4314

4315
4316
4317
4318
4319
4320
4321
4322
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
....
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
....
5385
5386
5387
5388
5389
5390
5391

5392

5393
5394
5395
5396
5397
5398
5399
....
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
....
6790
6791
6792
6793
6794
6795
6796

6797
6798
6799
6800
6801
6802
6803
....
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
....
6842
6843
6844
6845
6846
6847
6848

6849
6850
6851
6852
6853
6854
6855
....
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
....
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
....
7056
7057
7058
7059
7060
7061
7062

7063
7064
7065
7066
7067
7068

7069
7070
7071
7072
7073
7074
7075
.....
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






10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
.....
13387
13388
13389
13390
13391
13392
13393

13394
13395
13396
13397
13398
13399
13400
.....
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844


















13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857

13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868

13869
13870
13871
13872
13873
13874
13875
.....
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898



13899
13900
13901
13902
13903
13904
13905
.....
14463
14464
14465
14466
14467
14468
14469




14470
14471
14472
14473
14474
14475
14476
.....
14529
14530
14531
14532
14533
14534
14535

14536
14537
14538
14539
14540
14541
14542
.....
14963
14964
14965
14966
14967
14968
14969




14970
14971
14972
14973
14974
14975
14976
.....
15135
15136
15137
15138
15139
15140
15141

15142

15143
15144
15145
15146
15147
15148
15149
.....
15955
15956
15957
15958
15959
15960
15961
15962
15963
15964
15965
15966
15967
15968
15969
.....
17415
17416
17417
17418
17419
17420
17421
17422
17423
17424
17425



17426
17427
17428
17429
17430
17431
17432
.....
17446
17447
17448
17449
17450
17451
17452

17453
17454
17455
17456
17457
17458
17459
.....
17915
17916
17917
17918
17919
17920
17921
17922












17923
17924
17925
17926
17927
17928
17929
17930
17931
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
.....
18198
18199
18200
18201
18202
18203
18204
18205
18206
18207
18208
18209
18210
18211
18212
18213
.....
18215
18216
18217
18218
18219
18220
18221
18222
18223
18224


18225
18226
18227
18228
18229
18230
18231
.....
19361
19362
19363
19364
19365
19366
19367
19368
19369
19370
19371
19372
19373
19374
19375
.....
19534
19535
19536
19537
19538
19539
19540

19541
19542
19543
19544
19545
19546
19547
.....
20517
20518
20519
20520
20521
20522
20523

20524
20525
20526
20527
20528
20529
20530
.....
21156
21157
21158
21159
21160
21161
21162
21163
21164
21165
21166
21167
21168
21169
21170
.....
21210
21211
21212
21213
21214
21215
21216

21217
21218
21219
21220
21221
21222
21223
.....
21227
21228
21229
21230
21231
21232
21233


21234
21235
21236
21237
21238

21239

21240
21241
21242
21243
21244
21245
21246
.....
21343
21344
21345
21346
21347
21348
21349

21350
21351
21352
21353
21354
21355
21356
.....
21359
21360
21361
21362
21363
21364
21365
21366
21367
21368
21369
21370
21371
21372
21373
.....
21934
21935
21936
21937
21938
21939
21940
21941
21942
21943
21944
21945
21946
21947
21948
21949
21950
21951
21952
21953
21954
!!
!!
!!!! Espaces insécables avant unités de mesure                                                    !!
!!
!!

__[s]/unit(unit_nbsp_avant_unités1)__
    ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹]|)) ?)(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![’'])  @@0,0
    <<- option("num") -1>> =formatNumber(\2) + " "              # Avec une unité de mesure, mettez un espace insécable.
    <<- __else__ -1>> "\2 "                                     # Avec une unité de mesure, mettez un espace insécable.

__[s]/unit(unit_nbsp_avant_unités2)__
    ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])) ?)([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)  @@0,0,$
    <<- morph(\3, ";S", ":[VCR]") or mbUnit(\3) or not spell(\3) >>>
    <<- option("num") -1>> =formatNumber(\2) + " "              # Si “\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.
................................................................................
!!
!!
!!!! Nombres ordinaux                                                                             !!
!!
!!

__typo_ordinaux_chiffres_exposants__

    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
................................................................................
    ~^\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: c’est le {{2e}}                               ->> 2ᵉ
TEST: les {{2es}} vont en cours.                    ->> 2ᵉˢ


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

    ~^\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: la {{1ière}} fois, c’est la plus dure     ->> 1ʳᵉ
TEST: le {{1ier}} de chaque semaine             ->> 1ᵉʳ



TEST: le {{2nd}} du mois                        ->> 2ᵈ






TEST: les {{3ièmes}} années                     ->> 3ᵉˢ
TEST: C’est la {{3ème}} fois…                   ->> 3ᵉ
TEST: Non, la {{2è}} fois.                      ->> 2ᵉ


__typo_ordinaux_chiffres_romains_exposants__
    Ier
        <<- /typo/ sContext != "Writer" ->> 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

    Iers
................................................................................
        <<- /date/ not after("^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(\1, \2, \3, \4)
        -1>> =getDay(\2, \3, \4)
        # Le jour de la date suivante est incorrect (selon le calendrier grégorien).|https://fr.wikipedia.org/wiki/Passage_du_calendrier_julien_au_calendrier_gr%C3%A9gorien

TEST: {{samedi}}, le 10-06-2014                                           ->> mardi
TEST: {{lundi}} le 23-07-2019
TEST: {{mardi}} 24-07-2019
TEST: {{mercredi}} 20-07-2019
TEST: {{mercredi}} le 10 juin 2014                                        ->> mardi

TEST: {{lundi}}, 18 août 1912                                             ->> dimanche
TEST: {{jeudi}} 17 aout 1912                                              ->> samedi
TEST: lundi, 18 août 1912 avant Jésus-Christ (date imaginaire)
TEST: {{jeudi}}, 18 août 1563 : mort de La Boétie (calendrier julien)     ->> mercredi
TEST: mercredi, 18 août 1563 : mort de La Boétie (calendrier julien)


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


__tu_mots_composés_verbe_nom__
    [contre|entre]  *WORD
        <<- /tu/ not morph(\2, ":[GYB]") and morph(<1, ":(?:D|V0e)|<start>|>,") and analyse_with_next(\1, "-", ":N")
        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.





    [arrière|attrape|garde|porte|brise|cache|casse|chauffe|coupe|cure|croque|essuie|lance|lave|lève|marque|pare|passe|perce|pèse|porte|poste|pousse|presse|protège|ramasse|serre|taille|tire|tourne|traîne|traine|vide]  *WORD
        <<- /tu/ morph(<1, ":(?:D|V0e)|<start>") and analyse_with_next(\1, "-", ":N")
        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.




TEST: ce sont des {{lève tard}}.
TEST: un {{brise glace}}
TEST: l’{{arrière pensée}}
TEST: entre deux chaises…


__tu_mots_grammaticaux__
................................................................................
TEST: {{est ce}} que c’est grave ?                                              ->> est-ce
TEST: qu’{{est ce}} que c’est ?                                                 ->> est-ce
TEST: elles reviendront, {{n’est ce pas}} ?
TEST: nous en sommes à l’étape où nous voulons définir ce qu’est ce projet
TEST: c’est ce que nous pensions.


__tu_noms_propres__
    Aix en Provence
        <<- /tu/ ->> Aix-en-Provence                                                                # Il manque un trait d’union.

    Anne [Catherine|Charlotte|Christine|Claire|Cécile|Flore|Gaëlle|Gaelle|France|Laure|Line|Lise|Lyne|Lyse|Marie|Sophie]




        <<- /tu/ ->> Anne-\2                                                                        # Il manque un trait d’union.

    Bosnie Herzégovine
        <<- /tu/ ->> Bosnie-Herzégovine                                                             # Il manque un trait d’union.





    Charente Maritime
        <<- /tu/ ->> Charente-Maritime                                                              # Il manque un trait d’union.

    Clermont [Ferrant|Ferrand]
        <<- /tu/ ->> Clermont-Ferrand                                                               # Il manque un trait d’union.










    Colombie Britannique
        <<- /tu/ ->> Colombie-Britannique                                                           # Il manque un trait d’union.

    États Unis
        <<- /tu/ ->> États-Unis                                                                     # S’il s’agit des USA, il manque un trait d’union.

    Franche Comté
        <<- /tu/ ->> Franche-Comté                                                                  # Il manque un trait d’union.

    Grande Bretagne
        <<- /tu/ ->> Grande-Bretagne                                                                # Il manque un trait d’union (s’il s’agit de l’État englobant l’Angleterre, l’Écosse et le pays de Galles).

    Haute [Garonne|Loire|Marne|Normandie|Corse|Vienne]
        <<- /tu/ ->> Haute-\1                                                                       # Il manque un trait d’union.

    [Île|Ile] de France
        <<- /tu/ ->> Île-de-France                                                                  # Il manque les traits d’union.

    Jean [Alain|Antoine|André|Baptiste|Benoit|Bernard|Charles|Christophe|Christian|Claude|Damien|Daniel|David|Denis|Dominique|Édouard|Edouard|Emmanuel|Étienne|Éric|Eric|Eudes|Francis|François|Frédéric|Gabriel|Georges|Guillaume|Hugue|Jacques|Joseph|Louis|Laurent|Loup|Luc|Manuel|Marc|Marcel|Marie|Mathieu|Maurice|Max|Michel|Noël|Patrice|Paul|Philippe|Pierre|Rémi|René|Raymond|Robert|Vincent|Yves]
        <<- /tu/ ->> Jean-\2                                                                        # Il manque un trait d’union.

    Jésus Christ
        <<- /tu/ ->> Jésus-Christ                                                                   # Il manque un trait d’union.

    Maison Blanche
        <<- /tu/ ->> Maison-Blanche                                                                 # Il manque un trait d’union.

    Marie [Agnès|Alice|Aline|Amélie|Andrée|Ange|Angelle|Anne|Antoinette|Annick|Astrid|Aude|Béatrice|Bénédicte|Bernadette|Camille|Carmen|Caroline|Catherine|Cécile|Céline|Chantal|Charlotte|Christine|Claire|Claude|Dominique|Édith|Edith|Élisabeth|Élise|Émilie|Émmanuelle|Eve|Ève|France|Françoise|Gabrielle|Gaëlle|Geneviève|Jeanne|Joëlle|José|Josée|Josèphe|Julie|Hélène|Isabelle|Laure|Laurence|Line|Lise|Lyne|Lyse|Lou|Louise|Luce|Odile|Madeleine|Martine|Noëlle|Paule|Pascale|Renée|Rose|Sophie|Thérèse|Véronique|Yvonne]
        <<- /tu/ ->> Marie-\2                                                                       # Il manque un trait d’union.

    Moyen Orient
        <<- /tu/ ->> Moyen-Orient                                                                   # Il manque un trait d’union.

    Nouveau Brunswick
        <<- /tu/ ->> Nouveau-Brunswick                                                              # Il manque un trait d’union.

    Nouvelle [Zélande|Calédonie|Orléans]
        <<- /tu/ ->> Nouvelle-\1                                                                    # Il manque un trait d’union.



    Pas de Calais
        <<- /tu/ ->> Pas-de-Calais                                                                  # Il manque les traits d’union.

    [les|des|aux] Pays Bas
        <<- /tu/ -2:3>> Pays-Bas                                                                    # Il manque un trait d’union.

    Pierre [Adrien|Alain|Alexandre|André|Antoine|Édouard|Edouard|Émmanuel|François|Jean|Henri|Louis|Luc|Marie|Nicolas|Olivier|Yves]
        <<- /tu/ ->> Pierre-\2                                                                      # Il manque un trait d’union.

    Rhône Alpes
        <<- /tu/ ->> Rhône-Alpes                                                                    # Il manque les traits d’union.


    Royaume Uni
        <<- /tu/ ->> Royaume-Uni                                                                    # Il manque un trait d’union (s’il s’agit de l’État englobant la Grande-Bretagne et l’Irlande du Nord).

    Saône et Loire
        <<- /tu/ ->> Saône-et-Loire                                                                 # Il manque un trait d’union.

    [Saint|Sainte] ~^[A-ZÉÈÎ]
        <<- /tu/ not value(<1, "|<start>|") and morph(\2, ":M") ->> \1-\2
        # Il manque un trait d’union s’il s’agit d’une église, d’une cité, d’une communauté, d’un lieu… S’il s’agit d’une personne, écrivez “saint” ou “sainte” sans majuscule, sans trait d’union.

    [St|Ste]  ~^[A-ZÉÈÎ]
        <<- /tu/ ->> \1-\2
        # Il manque un trait d’union s’il s’agit d’une église, d’une cité, d’une communauté, d’un lieu… S’il s’agit d’une personne, écrivez “saint” ou “sainte” sans majuscule, sans trait d’union.

TEST: J’ai vu {{Anne Marie}}.
TEST: Émigrer au {{Royaume Uni}}
TEST: Étudier en {{Grande Bretagne}}
TEST: Vivre aux {{Pays Bas}}
TEST: Il passe par {{Aix en Provence}}
TEST: Qui se souvient de la {{Bosnie Herzégovine}} ?
TEST: en {{Charente Maritime}}
TEST: À {{Clermont Ferrand}}
TEST: habiter la {{Colombie Britannique}}
TEST: Il fait son stage étudiant aux {{États Unis}}
TEST: Des fromages délicieux de {{Franche Comté}}

TEST: La {{Haute Garonne}}
TEST: L’{{Île de France}} est surpeuplée.
TEST: Un nouveau président à la {{Maison Blanche}}
TEST: La guerre au {{Moyen Orient}}
TEST: Il ne connaît au {{Nouveau Brunswick}}
TEST: Elle a visité la {{Nouvelle Orléans}}
TEST: Vivre dans le {{Pas de Calais}}

TEST: Des vacances en {{Rhône Alpes}}

TEST: Elle déménage en {{Saône et Loire}}
TEST: {{Jésus Christ}}, dernier héros de l’Antiquité
TEST: Elle a quitté {{Jean Paul}}.
TEST: {{Marie Hélène}} s’est perdue dans le dédale
TEST: Elle va prier à {{Ste Catherine}}.
TEST: La station {{Saint Georges}}


__tu_nombres__


    [dix|trente|quarante|cinquante|soixante|septante|octante|huitante|nonante] [deux|trois|quatre|cinq|six|sept|huit|neuf]
    [dix|trente|quarante|cinquante|soixante|septante|octante|huitante|nonante] [>deuxième|>troisième|>quatrième|>cinquième|>sixième|>septième|>huitième|>neuvième]
        <<- /tu/ ->> \1-\2                                                                          # Il manque un trait d’union.

    [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 [douze|treize|quatorze|quinze|seize|dix-sept|dix-huit|dix-neuf]
    soixante [>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") ->> \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).

#    (vingt|trente|quarante|cinquante|soixante|septante|octante|huitante|nonante)[- ](une?|unièmes?)
#   ->> \1 et \2|\1-et-\2                                      # Il manque « et ». (Si vous suivez la réforme orthographique, utilisez des traits d’union.)

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: cent {{mot}}                            ->> mots
TEST: cinquante {{mot}}                       ->> mots
TEST: mille cinquante {{mot}}                 ->> mots
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: deux {{tête}}                           ->> têtes

TEST: {{soixante quatorze}}, c’est trop
TEST: Mais {{vingt trois}}, c’est assez
TEST: La poïesis, en grec, est ce qui permet de faire passer n’importe quoi du non-être à l’être


__tu_pas_de_trait_d_union__
    deux-tiers
        <<- /tu/ ->> deux tiers                                                 # Pas de trait d’union.

    en-bas
................................................................................
TEST: C’en pouvait être effrayant.


__conf_c_s_verbe__
    [il|ils|on|ne|n’]  c’
        <<- /conj/ -2>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.


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

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

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

TEST: {{s’}}{{avait}} fonctionné

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)
        <<- -1>> est                                                            # Confusion probable : “et” est une conjonction de coordination. Pour le verbe “être”, écrivez “est”.
................................................................................
        <<- /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à                                                                 # Incohérence probable.

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]  @:V.*:[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
................................................................................
    >matière a >réflexion
    >masque a [gaz|oxygène]
    >montre a gousset
    >moule a [>gaufre|>gâteau|brioche|manqué|savarin|charlotte|tarte]
    >panier a >linge
    >papier a [>lettre|musique]
    >passage a tabac

    >planche a repasser
    >presse a >scandale
    >pince a linge
    >punk a >chienne
    >revenir a la case départ
    >rouge a >lèvre
    >sac a [dos|main|langer|merde|foutre]
................................................................................
    >turbine a [gaz|vapeur]
    >vache a lait
    >vente a domicile
    >vernis a ongles
    >vol a [la|l’] [étalage|sauvette|tire]
    >vol a main armée
    >usine a gaz
        <<- /conf/ -2>> à                   # Confusion : “a” est une conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.

TEST: C’est un arc {{a}} poulies
TEST: Ceci est une arme {{a}} feu.
TEST: Combien de bombes {{a}} fragmentation
TEST: C’est une nouvelle caisse {{a}} outils
TEST: Elle va en faire de la chair {{a}} pâté
TEST: Une cuillère {{a}} café.
................................................................................
TEST: dans le silo {{a}} grain.
TEST: sa chambre, c’est une vraie soue {{a}} cochons.
TEST: Un tueur {{a}} {{gages}} ne s’y prendrait jamais comme ça.
TEST: Ventes {{a}} domicile insatisfaisantes
TEST: Ce n’est que du vernis {{a}} ongles.
TEST: le vol {{a}} l’étalage est un fléau.
TEST: Il nous faut une {{voix}} de recours.

TEST: c’est une putain d’usine {{a}} gaz.
TEST: ce produit est notre vache {{a}} lait
TEST: ils vont et viennent, toujours {{cotes a cotes}}…
TEST: Nous irons {{tours à tours}} chercher du bois.


__conf_mettre_a_profit_plat__
................................................................................
__conf_celui_celle_à_qui__
    [celui|celle|ceux|celles]  a  qui
        <<- /conf/ -2>> à                   # Confusion. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0

TEST: Ceux {{a}} qui nous avons notifié le problème sont partis.
TEST: Il y a qui au dîner ce soir ?


__conf_pâte_à_a__
    >pâte a [>pain|>crêpe|>gaufre|>pizza|>tarte|>modeler|>tartiner]
        <<- -2>> à                          # Confusion : “a” est la conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|http://fr.wiktionary.org/wiki/%C3%A0

TEST: Marre de cette pâte {{a}} pain.


# m’a tuer
__conf_m_a_tuer__
    m’ a tuer
        <<- /conf/ -3>> tué|tuée
        # Cliché. Évitez cette erreur de grammaire délibérée, faite d’innombrables fois, pour mimer l’affaire Omar Raddad.|https://fr.wikipedia.org/wiki/Omar_m'a_tuer

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

# ça / çà / sa
__conf_ça_çà_sa__
    ça  @:[NAQ].*:f¬:(?:G|P|[123][sp])|>seule?s?/
        <<- /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)/|:[NAQ].*:f
        <<- /conf/ not (\2 == "ou" and value(>1, "|son|ses|")) -1>> ça          # Confusion : “sa” (sa maison, sa passion) ≠ “ça” (ça vient, ça heurte).

    sa [n’|m’|t’|s’|j’|l’|d’|qu’|lorsqu’|puisqu’|quoiqu’]
        <<- /conf/ -1>> ça                              # Confusion : “sa” (sa maison, sa passion) ≠ “ça” (ça vient, ça heurte).

    çà
        <<- /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à ».

    ça et là
        <<- /conf/ not morph(<1, ":R") ->> çà et là     # Confusion : « ça » équivaut à « cela ». Dans l’expression « çà et là », « çà » équivaut à « ici ».
................................................................................
        <<- /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”.

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: Elle parle comme {{ça}} mère.                                           ->> sa
TEST: C’est comme {{sa}}.
TEST: {{sa}} l’ennuierait, ce fils de pute, de dire bonjour ?
TEST: il faut s’y prendre comme {{sa}}
TEST: on fait {{sa}} lorsqu’on a tout perdu
TEST: {{ç’a}} craint, cette histoire

TEST: ç’a été difficile.
TEST: Eux, ils appellent ça routine.
TEST: avec sa presque belle-mère
TEST: sa toute nouvelle application de synchronisation de fichiers
TEST: communiquer avec sa ou son partenaire.
TEST: Je trouve ça logique.

................................................................................
__gn_tout_nom__
    [<start>|,] tout  @:N.*:[fp]¬:(?:A|W|G|M|Y|[me]:[is]|3s)
    de          tout  @:N.*:[fp]¬:(?:A|W|G|M|Y|[me]:[is]|3s)
        <<- /gn/ -3>> =suggMasSing(\3, True)                                                        # Accord avec “tout” : “\3” devrait être au masculin singulier.

    tout  @:N.*:[fp]¬:(?:A|W|G|M|Y|[me]:[is]|3s)
        <<- /gn/ morph(<1, ":R", ":D.*:p") -2>> =suggMasSing(\2, True)                              # Accord avec “tout” : “\2” devrait être au masculin singulier.











__gn_tous_nom__
    [<start>|,] tous  @:[NA].*:[fs]¬:(?:W|P|G|M|[me]:[ip]|3p)
    de          tous  @:[NA].*:[fs]¬:(?:W|P|G|M|Y|[me]:[ip]|3[sp])
        <<- /gn/ -3>> =suggMasPlur(\3, True)                                                        # Accord avec “tous” : “\3” devrait être au masculin pluriel.

    tous  @:[NA].*:[fs]¬:(?:W|G|M|Y|P|3[sp]|[me]:[ip])
        <<- /gn/ morph(<1, ":R") -2>> =suggMasPlur(\2, True)                                        # Accord avec “tous” : “\2” devrait être au masculin pluriel.









__gn_toute_nom__
    [<start>|,] toute  @:[NA].*:[mp]¬:(?:W|P|G|M|[fe]:[is])
    de          toute  @:[NA].*:[mp]¬:(?:W|P|G|M|Y|[fe]:[is])
        <<- /gn/ -3>> =suggFemSing(\3, True)                                                        # Accord avec “toute” : “\3” devrait être au féminin singulie
        <<- /gn/ morph(\3, ":[NA].*:f:p") -2>> toutes                                               # Accord avec “\3”.

    toute  @:[NA].*:[mp]¬:(?:W|G|M|Y|P|[fe]:[is])
        <<- /gn/ morph(<1, ":R") -2>> =suggFemSing(\2, True)                                        # Accord avec “toute” : “\2” devrait être au féminin singulier.
        <<- /gn/ __also__ and morph(\2, ":[NA].*:f:p") -1>> toutes                                  # Accord avec “\2”.







__gn_toutes_nom__
    [<start>|,] toutes  @:[NA].*:[ms]¬:(?:W|G|M|[fe]:[ip])
    de          toutes  @:[NA].*:[ms]¬:(?:W|G|M|Y|[fe]:[ip])
        <<- /gn/ -3>> =suggFemPlur(\3, True)                                                        # Accord avec “toutes” : “\3” devrait être au féminin pluriel.
        <<- /gn/ morph(\3, ":[NA].*:f:s") -2>> toute                                                # Accord avec “\3”.

    toutes  @:[NA].*:[ms]¬:(?:W|G|M|Y|P|[fe]:[ip])
        <<- /gn/ morph(<1, ":R") -2>> =suggFemPlur(\2, True)                                        # Accord avec “toutes” : “\2” devrait être au féminin pluriel.
        <<- /gn/ __also__ and morph(\2, ":[NA].*:f:s") -1>> toute                                   # Accord avec “\2”.

TEST: Tout {{hommes}}
TEST: De tous {{âge}} !
TEST: avec {{toutes}} {{femme}}
TEST: sur {{toutes}} {{armure}}
TEST: Toute {{époux}} doit faire preuve de bienveillance
TEST: Il se souvient de toute mon histoire.
TEST: Tout les sépare.
TEST: les tout débuts du mouvement ouvrier
TEST: vos tout débuts furent difficiles
TEST: aux tout débuts, il y eut bien des erreurs
TEST: comment les inégalités sociales impactent la santé des tout petits
TEST: l’existence d’un enseignement supérieur public, peu onéreux et ouvert à tous est d’une importance cruciale.
TEST: la survie de tous est plus importante que les profits de quelques-uns
TEST: tous ayant souffert du supplice de séjourner derrière les barreaux



!!
!!
!!!! Adverbes de négation                                                                         !!
!!
................................................................................
TEST: Les démons ont forme animale.
TEST: Là n’est pas le problème.
TEST: Une robe sans manches plutôt sympathique.
TEST: une émancipation des usagers, refusant de se laisser guider par des « machines à sous » les incitant insidieusement à rester en ligne.
TEST: Les pompes à chaleur sont moins rentables.
TEST: Ce qui rend les pompes à chaleur moins rentables.
TEST: l’accusation de lynchage médiatique proférée par François de Rugy à l’encontre de “Mediapart” ne tient pas.




@@@@
@@@@
@@@@
@@@@
................................................................................

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_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.

__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.



















__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: {{Cet}} {{idiote}}.
TEST: {{cet}} ballon.                                         ->> ce
TEST: {{Ce}} animal.                                          ->> Cet
TEST: cet {{oliviers}}
TEST: ce {{claviers}}
TEST: {{Cette}} {{animal}} mort.



__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: 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]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
................................................................................
TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle.
TEST: Ils jugeront en toute impartialité de ce cas {{délirante}}.


__gn_mon_ton_son_1m__
    [mon|ton|son]  *WORD
        <<- /gn/ morph(\1, ":D") >>>
        <<- /gn/ morph(\2, ">[bcdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.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.





__gn_mon_ton_son_2m__
    [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\2, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                         # Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
................................................................................
        <<- /gn/ (morph(\2, ":[NA].*:s", "*") or \1 in aREGULARPLURAL) and not value(<1, "|le|un|ce|du|")
        -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: un logement neuf bâti par des professionnels.
TEST: un mille marin.
TEST: L’article VII mentionné dans la revue


__gn_nombre_chiffres_1m__
    [0|1|01]  @:[NAQ].*:p¬*
................................................................................
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ ((morph(\2, ":s", "*") and morph(\3, ":p", "*")) or (morph(\2, ":p", "*") and morph(\3, ":s", "*"))) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      # Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    # Accord de nombre erroné avec « \3 ».

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


__gn_start_3m__
    <start>  @:[NA]¬*  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ morph(\2, ":p") and morph(\3, ":[pi]") and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":i") and morph(\3, ":p")    and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":s") and morph(\3, ":[si]") and morph(\4, ":p") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        <<- /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.
................................................................................
        <<- /sgpl/ morph(>1, ":B|>une?")
        -2>> cent                           # Nombre cardinal : pas de “s” à “cent” (hormis sur les centaines entières).|http://fr.wiktionary.org/wiki/cent

    cents  @:[NA].*:[pi]¬:G
        <<- /sgpl/ morph(<1, ":[VR]|<start>", ":B")
        -1>> cent                           # Nombre cardinal : pas de “s” à “cent” (hormis sur les centaines entières).|http://fr.wiktionary.org/wiki/cent





TEST: trois {{cent}} marches à gravir.
TEST: deux {{cents}} quatre tests lancés à chaque itération du processus nouveau
TEST: par {{cents}} idées différentes.


# mille
__sgpl_mille__
................................................................................
    demies >heure
    demi heures
    demis >heure
    demis-heures
        <<- /sgpl/ ->> demi-heures                      # La moitié d’une heure s’écrit “demi-heure” (“demi-heures” au pluriel).

TEST: L’entretien dure environ une {{demie heure}}.

TEST: Une demi-heure d’ennui profond.


__sgpl_demi_demie__
    [>année|>semaine|>journée|>heure|>minute|>seconde|>bouteille|>caisse|>cuillère|>page|>remorque|>tasse|>tonne] et [demi|demis|demies]
        <<- /sgpl/ -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]
        <<- /sgpl/ -3>> demi                            # « Un et demi », « deux et demi », etc.
................................................................................
        <<- /conf/ -3>> cœur                                    # Confusion. Pour évoquer ce qu’on connaît parfaitement de mémoire, écrivez “par cœur”.|https://fr.wiktionary.org/wiki/ch%C5%93ur

TEST: ils répondirent en {{cœur}}.
TEST: elles connaissaient par {{chœur}} la chanson.


# content / contant / comptant
__conf_content_comptant__
    >avoir ?tout¿ [mon|ton|son|notre|votre|leur] ([comptant|contant])
        <<- /conf/ -1>> content                             # Confusion. Avoir (tout) son content…|https://fr.wiktionary.org/wiki/content#Nom_commun

    argent [content|contant]
        <<- /conf/ morph(<1, ":[VR]") -2>> comptant         # Confusion probable.|https://fr.wiktionary.org/wiki/argent_comptant

TEST: Elle a déjà eu tout son {{comptant}} de problèmes.
................................................................................

TEST: de manière à {{obligé}} ces gens
TEST: ils ont intérêt à {{obligés}} ces gens
TEST: Tous ceux qui ont du mal à {{obligé}} ces gens


__infi_de_verbe__
    [de|d’] [le|la|l’|leur|les]           @:V¬:[YNAM]|>(?:lui|plus)/
    [<start>|,]  [de|d’] [nous|vous|lui]  @:V¬:[YE]|>(?:lui|plus)/
        <<- /infi/ \-1.islower() --1>> =suggVerbInfi(\-1)                               # Erreur probable. Après “de”, le verbe devrait être à l’infinitif.




    [de|d’] [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:Y|>(?:lui|plus|point)/
    [de|d’] [ne|n’|en|me|m’|te|t’|se|s’|y]                                       @:V¬:Y|>(?:lui|plus|point)/
    [de|d’] ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:Y
    [de|d’] ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:Y
    [de|d’] ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:Y
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                             # Après “de”, le verbe devrait être à l’infinitif.

................................................................................
TEST: cela suffit de les {{aimait}}
TEST: de ne leur en {{avancé}} que le nécessaire.
TEST: de l’y {{poussé}}
TEST: arrête d’y {{consacré}} autant de temps.
TEST: je suis certain d’en {{choque}} plusieurs.
TEST: elle était capable de la {{trouvait}} où qu’elle soit.
TEST: de me le {{facturez}}

TEST: Il s’agit de me {{donnait}} tout ça.
TEST: j’étais incapable de m’{{orientait}} dans la bonne direction.
TEST: ils étaient susceptibles de m’y {{trouvaient}}
TEST: Il tentait de {{raisonné}} en homme libre
TEST: sa façon de {{nettoyez}} était inefficace.
TEST: elle a délibérément omis de les {{inclurent}}.
TEST: Sont-ils en mesure de nous {{fabriqué}} ces armes ?
................................................................................
__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 ?













__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__ 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__ je reconnais que j’ai pas {{traîne}}
TEST: __ocr__ elle est fauchée et a {{emprunte}} de l’argent
TEST: __ocr__ Alors il lui est {{remonte}} dessus
TEST: __ocr__ quel héros d’avoir {{affronte}} ces salopards de la police
TEST: __ocr__ il n’était pas le seul à être {{remonte}} contre eux.
TEST: __ocr__ par terre et je suis {{retourne}} sur la tombe.
TEST: __ocr__ Après on a {{creuse}} vers le haut.
TEST: __ocr__ il a {{affronte}} une bande de voleurs de bétail.
TEST: __ocr__ il était sublime.
TEST: __ocr__ elle avait envie de s’en sortir enfin.
TEST: __ocr__ la longueur de la circonférence étant égale à…
# TEST: __ocr__ vous êtes {{presses}} de monter à bord de ce train-ci.
# Fonctionne avec nous serons, mais pas nous sommes (bug de JavaScript?)



!!!! Confusions                                                                                   !!

## on / ont
__conf_on_ont2__
................................................................................
!!

__conj_conf_se_être_avoir__
    je  m’  ?[en|y]¿  (>avoir)
        <<- /conj/ -1>> suis|étais|serai|serais                         # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.

    tu  t’  ?[en|y]¿  (>avoir)
        <<- /conj/ not morph(<1, ":V0")
        -1>> es|étais|seras|serais                                      # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.

    [<start>|,]  nous  nous  ?[en|y]¿  >avoir
        <<- /conj/ --1>> sommes|étions|serons|serions                   # Confusion possible. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.
        <<- /conj/ -2>> nous,                                           # S’il ne s’agit pas d’une locution pronominale, mettez une virgule pour séparer du sujet les personnes que vous désignez.

    [<start>|,]  vous  vous  ?[en|y]¿  >avoir
        <<- /conj/ --1>> êtes|étiez|serez|seriez                        # Confusion possible. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.
................................................................................

    s’  ?[en|y]¿  (>avoir)
        <<- /conj/ morph(\1, ":3p") -1>> sont|étaient|seront|seraient   # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.
        <<- /conj/ __else__ -1>> est|était|sera|serait                  # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.

TEST: je m’y {{avais}} habitué.
TEST: tu t’{{avais}} donné du temps pour finir ton mémoire.
TEST: s’en {{ait}} trop
TEST: {{nous}} nous {{avons}} donné le temps
TEST: {{vous}} vous {{avez}} perdu toute notion de décence.


TEST: Ce qu’il a tu t’a donné la nausée.


!!
!!
!!!! Participes passés: se +être +verbe                                                           !!
!!
................................................................................
    /-elles  @:(?:[123][sp]|[NA].*:[sm])¬:(?:G|W|Y|[fe]:[pi])|>(?:dire|légion)/
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/")
        -2>> =suggFemPlur(\2)                                           # Accord avec “elles” : “\2” devrait être au féminin pluriel.

TEST: Étaient-elles {{arriver}} ?
TEST: Sont-elles tout à fait {{arriver}} ?
TEST: Ne sont-elles pas {{aveugle}}
TEST: demeurent-elles {{présentes}}



!!
!!
!!!! Se croire/considérer/montrer/penser/révéler/savoir/sentir/voir/vouloir + participe passé/adj !!
!!
................................................................................
TEST: l’homme se considère {{instruits}} alors qu’il n’est qu’un aveugle qui tâtonne.
TEST: Me voilà bien {{avancés}} !
TEST: avec eux, te voilà {{embarqués}} dans une drôle d’histoire…
TEST: un accident et nous voilà mal {{barré}}…
TEST: Le voilà {{perdue}} dans son délire.
TEST: un peu de maquillage et la voilà {{jolis}} comme un cœur.
TEST: les voilà pauvrement {{équipé}} pour un tel périple.

TEST: une chance pour elle alors qu’il n’a pas choisi
TEST: elle se révèle d’ailleurs être une alliée de taille
TEST: mais les considérer uniquement ainsi fait perdre la signification politique de leur geste.
TEST: nous considérer ainsi fait le lit de la haine…



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

    [/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: Écrit-elle les {{fixions}} ?                              ->> fictions
TEST: Sait-elle le {{choie}} qu’il a fait ?                     ->> choix
TEST: Entreront-ils en {{contacte}} avec eux ?                  ->> contact


__conf_vc_int_imp_verbe__
    [/VCint|/VCimp]  @:[123][sp]¬:[GNAQWM]
................................................................................
        -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: {{Seras tu}} là ?
TEST: et toi, {{as tu}} découvert le secret de l’immortalité ?
TEST: quelle vie {{connaitras tu}} ?


__inte_union_il_on__
    [<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
................................................................................
    *WORD  ~.[td]$  elle  [<end>|,]
    *WORD  ~.[td]$  elle  @:¬:3s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3s", ":[GNW]") and not value(\1, "|ce|c’|ça|ç’|il|elle|on|")
        -2:3>> \2-elle                                                                              # Forme interrogative ? Mettez un trait d’union.

TEST: {{vient elle}} souvent ?
TEST: comment {{sait elle}}

TEST: quel travail {{avait elle}} accompli ?
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_nous!6__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~ons$  nous  [<end>|,]
................................................................................

    [<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 morph(\2, ":V.*:1p", ":[GNW]") and not morph(\1, ":Os")
        -2:3>> \2-nous                                                                              # Forme interrogative ? Mettez un trait d’union.

TEST: {{retrouverons nous}} enfin la tranquilité ?
TEST: Ne {{sommes nous}} pas des dieux ?

TEST: quel exercice {{avions nous}} revu ?



__inte_union_vous__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~..e[zs]$  vous  [<end>|,]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~..e[zs]$  vous  @:¬:2p
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]")
        -2:3>> \2-vous                                                                              # Forme interrogative ? Mettez un trait d’union.
................................................................................

__infi_suffire__
    [suffit-il|suffisait-il|suffira-t-il|suffirait-il]  [de|d’]  @:V¬:[YMNWG]
    il  [suffit|suffisait|suffira|suffirait]            [de|d’]  @:V¬:[YMNWG]
    il  [aurait|aurai|aurais|aurez]  suffi              [de|d’]  @:V¬:[YMNWG]
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                                         # Après “suffire”, le verbe doit être à l’infinitif.


TEST: il suffit de {{mangé}} sain pour aller mieux.
TEST: il ne suffit pas de pensées positives pour calmer son anxiété.
TEST: il suffit de cela.


__infi_verbes__
    [>aimer|>désirer|>espérer|>oser|>préférer|>souhaiter]  ~..(?:ée?s?|ez)$
................................................................................

    [>aller|>venir]  ~..(?:ée?s?|ez)$
        <<- /infi/ morph(\1, ":", ":[GN]") and morph(\2, ":V", ":M|>(?:accompagner|armer|armurer|casquer|déguiser)/")
        -2>> =suggVerbInfi(\2)                                                                      # S’il s’agit d’une action à accomplir, le verbe devrait être à l’infinitif.

TEST: elle préférait {{mangée}} seule.
TEST: Il venait, comme d’habitude, {{discuté}} avec son ami.
TEST: Ces types-là venaient {{mangé}} chez moi tous les dimanches.
TEST: ils viennent bien entendu {{attaqué}} le parlement
TEST: ils vont par voie de conséquence vraiment {{attaqué}} la banque
TEST: elles ont pu {{mangé}}
TEST: Cette affaire ne va rien {{arrangé}}.
TEST: ils vont de manière non conventionnelle {{fêtée}} leur réussite.
TEST: ils vont de manière absurde {{arrivé}} au résultat inverse à leurs espérances
TEST: croyez-vous qu’ils oseront {{proposé}} des amendements aussi audacieux ?
................................................................................
__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)
    la plupart  qui  @:V¬:(?:3p|P|G)
        <<- /conj/ -3>> =suggVerb(\3, ":3p")                            # Conjugaison erronée. Accord avec “\1 \2 \3”. Le verbe devrait être à la 3ᵉ personne du pluriel.

TEST: la plupart des hommes {{vienne}}
TEST: La plupart {{admet}}
TEST: d’aucuns {{pense}} que c’est faux
TEST: avec la plupart des femmes qui {{devienne}} mères


__conj_certains_certaines_plusieurs__
    [certains|certaines|plusieurs]  @:V¬:(?:G|N|A|3p|P|Q)
        <<- /conj/ not morph(<1, ":[VR]")
        --1>> =suggVerb(\-1, ":3p")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.








|







 







>







 







>
>
>
>
>
>
>


>







 







<

>
>
>

>
>
>
>
>
>

<
<







 







|

>







 







>
>
>
>




>
>
>







 







|
<
<
<

>
>
>
>
|

<
|
>
>
>
>

<
<

<
<
>
>
>
>
>
>

>
>
>

<
<

<
<

<
<

<
<

<
<
<
<
<
<
<
<
<
<
<

<
<
<
<
<

<
<

<
<

<
>
>

<
<
<

<
<
<
<
<
<
<
>




<
<
<








<
<
<
<







>







>

>

<
<
|

<



>
>
|
|






|
|













<
<
<





<
<
<
<
|
<
<
<
>
|
|
<







 







<







 







>

>







 







|







 







>







 







|







 







>







 







<
<
<
<
<
<
<







 







<
<
<
|







 







>






>







 







>
>
>
>
>
>
>
>
>
>








>
>
>
>
>
>
>
>










>
>
>
>
>
>











|
<


<
<
<
<
<
<
<
<
<
<







 







>







 







<
<
<
<
<
<
<






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







<
<
<
<
<

>











>







 







|


>
>
>







 







>
>
>
>







 







>







 







>
>
>
>







 







>

>







 







|







 







|



>
>
>







 







>







 








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

|






<
<
<


<

<
<

|
<

<
<
<







 







<
|







 







<


>
>







 







|







 







>







 







>







 







|







 







>







 







>
>
|




>

>







 







>







 







|







 







|
|




|







1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
....
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
....
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
....
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
....
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
....
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
....
4231
4232
4233
4234
4235
4236
4237
4238



4239
4240
4241
4242
4243
4244
4245

4246
4247
4248
4249
4250
4251


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
4307


4308
4309

4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
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
....
5345
5346
5347
5348
5349
5350
5351

5352
5353
5354
5355
5356
5357
5358
....
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
....
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
....
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
....
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
....
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
....
6888
6889
6890
6891
6892
6893
6894







6895
6896
6897
6898
6899
6900
6901
....
7009
7010
7011
7012
7013
7014
7015



7016
7017
7018
7019
7020
7021
7022
7023
....
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
.....
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
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
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144

10145
10146










10147
10148
10149
10150
10151
10152
10153
.....
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
.....
13815
13816
13817
13818
13819
13820
13821







13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852





13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
.....
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
.....
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
.....
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
.....
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
.....
15145
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161
.....
15967
15968
15969
15970
15971
15972
15973
15974
15975
15976
15977
15978
15979
15980
15981
.....
17427
17428
17429
17430
17431
17432
17433
17434
17435
17436
17437
17438
17439
17440
17441
17442
17443
17444
17445
17446
17447
.....
17461
17462
17463
17464
17465
17466
17467
17468
17469
17470
17471
17472
17473
17474
17475
.....
17931
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
17954
17955
17956
17957
17958



17959
17960

17961


17962
17963

17964



17965
17966
17967
17968
17969
17970
17971
.....
18216
18217
18218
18219
18220
18221
18222

18223
18224
18225
18226
18227
18228
18229
18230
.....
18232
18233
18234
18235
18236
18237
18238

18239
18240
18241
18242
18243
18244
18245
18246
18247
18248
18249
.....
19379
19380
19381
19382
19383
19384
19385
19386
19387
19388
19389
19390
19391
19392
19393
.....
19552
19553
19554
19555
19556
19557
19558
19559
19560
19561
19562
19563
19564
19565
19566
.....
20536
20537
20538
20539
20540
20541
20542
20543
20544
20545
20546
20547
20548
20549
20550
.....
21176
21177
21178
21179
21180
21181
21182
21183
21184
21185
21186
21187
21188
21189
21190
.....
21230
21231
21232
21233
21234
21235
21236
21237
21238
21239
21240
21241
21242
21243
21244
.....
21248
21249
21250
21251
21252
21253
21254
21255
21256
21257
21258
21259
21260
21261
21262
21263
21264
21265
21266
21267
21268
21269
21270
21271
.....
21368
21369
21370
21371
21372
21373
21374
21375
21376
21377
21378
21379
21380
21381
21382
.....
21385
21386
21387
21388
21389
21390
21391
21392
21393
21394
21395
21396
21397
21398
21399
.....
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
!!
!!
!!!! Espaces insécables avant unités de mesure                                                    !!
!!
!!

__[s]/unit(unit_nbsp_avant_unités1)__
    ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹]|)) ?)(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|MHz|°C|℃)(?![’'])  @@0,0
    <<- option("num") -1>> =formatNumber(\2) + " "              # Avec une unité de mesure, mettez un espace insécable.
    <<- __else__ -1>> "\2 "                                     # Avec une unité de mesure, mettez un espace insécable.

__[s]/unit(unit_nbsp_avant_unités2)__
    ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])) ?)([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)  @@0,0,$
    <<- morph(\3, ";S", ":[VCR]") or mbUnit(\3) or not spell(\3) >>>
    <<- option("num") -1>> =formatNumber(\2) + " "              # Si “\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.
................................................................................
!!
!!
!!!! 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
................................................................................
    ~^\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: {{2d}} au classement                          ->> 2ᵈ
TEST: éternels {{2ds}}                              ->> 2ᵈˢ
TEST: la {{2de}} fois                               ->> 2ᵈᵉ
TEST: les {{2des}}                                  ->> 2ᵈᵉˢ
TEST: c’est le {{2e}}                               ->> 2ᵉ
TEST: les {{2es}} vont en cours.                    ->> 2ᵉˢ


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

    ~^\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: la {{2 nde}} vitesse                      ->> 2ᵈᵉ
TEST: les {{2ndes}} classes                     ->> 2ᵈᵉˢ
TEST: Non, la {{2 è}} fois.                     ->> 2ᵉ
TEST: C’est la {{3 ème}} fois…                  ->> 3ᵉ
TEST: les {{5 èmes}} classes…                   ->> 5ᵉˢ
TEST: les {{3ièmes}} années                     ->> 3ᵉˢ




__typo_ordinaux_chiffres_romains_exposants__
    Ier
        <<- /typo/ sContext != "Writer" ->> 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

    Iers
................................................................................
        <<- /date/ not after("^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(\1, \2, \3, \4)
        -1>> =getDay(\2, \3, \4)
        # Le jour de la date suivante est incorrect (selon le calendrier grégorien).|https://fr.wikipedia.org/wiki/Passage_du_calendrier_julien_au_calendrier_gr%C3%A9gorien

TEST: {{samedi}}, le 10-06-2014                                           ->> mardi
TEST: {{lundi}} le 23-07-2019
TEST: {{mardi}} 24-07-2019
TEST: {{mercredi}}, 20-07-2019
TEST: {{mercredi}} le 10 juin 2014                                        ->> mardi
TEST: {{mercredi}}, le 10 juin 2014                                       ->> mardi
TEST: {{lundi}}, 18 août 1912                                             ->> dimanche
TEST: {{jeudi}} 17 aout 1912                                              ->> samedi
TEST: lundi, 18 août 1912 avant Jésus-Christ (date imaginaire)
TEST: {{jeudi}}, 18 août 1563 : mort de La Boétie (calendrier julien)     ->> mercredi
TEST: mercredi, 18 août 1563 : mort de La Boétie (calendrier julien)


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


__tu_mots_composés_verbe_nom__
    [contre|entre]  *WORD
        <<- /tu/ not morph(\2, ":[GYB]") and morph(<1, ":(?:D|V0e)|<start>|>,") and analyse_with_next(\1, "-", ":N")
        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.

    [m’|t’|s’] entre *WORD
        <<- /tu/ morph(\3, ":V") and analyse_with_next(\2, "-", ":V")
        -2:3>> \2-\3                                                                                # Il manque probablement un trait d’union.

    [arrière|attrape|garde|porte|brise|cache|casse|chauffe|coupe|cure|croque|essuie|lance|lave|lève|marque|pare|passe|perce|pèse|porte|poste|pousse|presse|protège|ramasse|serre|taille|tire|tourne|traîne|traine|vide]  *WORD
        <<- /tu/ morph(<1, ":(?:D|V0e)|<start>") and analyse_with_next(\1, "-", ":N")
        ->> \1-\2                                                                                   # Il manque probablement un trait d’union.

TEST: c’est le {{contre exemple}} parfait
TEST: une {{entre voie}}
TEST: s’{{entre regarder}}
TEST: ce sont des {{lève tard}}.
TEST: un {{brise glace}}
TEST: l’{{arrière pensée}}
TEST: entre deux chaises…


__tu_mots_grammaticaux__
................................................................................
TEST: {{est ce}} que c’est grave ?                                              ->> est-ce
TEST: qu’{{est ce}} que c’est ?                                                 ->> est-ce
TEST: elles reviendront, {{n’est ce pas}} ?
TEST: nous en sommes à l’étape où nous voulons définir ce qu’est ce projet
TEST: c’est ce que nous pensions.


__tu_prénoms__



    Anne [Catherine|Charlotte|Christine|Claire|Cécile|Flore|Gaëlle|Gaelle|France|Laure|Line|Lise|Lyne|Lyse|Marie|Sophie]
    Jean [Alain|Antoine|André|Baptiste|Benoit|Bernard|Charles|Christophe|Christian|Claude|Damien|Daniel|David|Denis|Dominique|Édouard|Edouard|Emmanuel|Étienne|Éric|Eric|Eudes|Francis|François|Frédéric|Gabriel|Georges|Guillaume|Hugue|Jacques|Joseph|Louis|Laurent|Loup|Luc|Manuel|Marc|Marcel|Marie|Mathieu|Maurice|Max|Michel|Noël|Patrice|Paul|Philippe|Pierre|Rémi|René|Raymond|Robert|Vincent|Yves]
    Jésus Christ
    Marie [Agnès|Alice|Aline|Amélie|Andrée|Ange|Angelle|Anne|Antoinette|Annick|Astrid|Aude|Béatrice|Bénédicte|Bernadette|Camille|Carmen|Caroline|Catherine|Cécile|Céline|Chantal|Charlotte|Christine|Claire|Claude|Dominique|Édith|Edith|Élisabeth|Élise|Émilie|Émmanuelle|Eve|Ève|France|Françoise|Gabrielle|Gaëlle|Geneviève|Jeanne|Joëlle|José|Josée|Josèphe|Julie|Hélène|Isabelle|Laure|Laurence|Line|Lise|Lyne|Lyse|Lou|Louise|Luce|Odile|Madeleine|Martine|Noëlle|Paule|Pascale|Renée|Rose|Sophie|Thérèse|Véronique|Yvonne]
    Pierre [Adrien|Alain|Alexandre|André|Antoine|Édouard|Edouard|Émmanuel|François|Jean|Henri|Louis|Luc|Marie|Nicolas|Olivier|Yves]
        <<- /tu/ ->> \1-\2                                                                          # Il manque un trait d’union.


TEST: J’ai vu {{Anne Marie}}.
TEST: Elle a quitté {{Jean Paul}}.
TEST: {{Jésus Christ}}, dernier héros de l’Antiquité
TEST: {{Marie Hélène}} s’est perdue dans le dédale
TEST: {{Pierre Alexandre}} nous prend pour des cons






__tu_toponymes__
    Aix en Provence
    [Île|Ile] de France
    Pas de Calais
    Saône et Loire
        <<- /tu/ ->> \1-\2-\3                                                                       # Il manque les traits d’union.

    Bosnie Herzégovine
    Charente Maritime
    Clermont [Ferrant|Ferrand]
    Colombie Britannique


    États Unis


    Franche Comté


    Grande Bretagne


    Haute [Garonne|Loire|Marne|Normandie|Corse|Vienne]











    Maison Blanche





    Moyen Orient


    Nouveau Brunswick


    Nouvelle [Zélande|Calédonie|Orléans]

    Rhône Alpes
        <<- /tu/ ->> \1-\2                                                                          # Il manque un trait d’union.




    [les|des|aux] Pays Bas







        <<- /tu/ -2:3>> \2-\3                                                                       # Il manque un trait d’union.

    Royaume Uni
        <<- /tu/ ->> Royaume-Uni                                                                    # Il manque un trait d’union (s’il s’agit de l’État englobant la Grande-Bretagne et l’Irlande du Nord).




    [Saint|Sainte] ~^[A-ZÉÈÎ]
        <<- /tu/ not value(<1, "|<start>|") and morph(\2, ":M") ->> \1-\2
        # Il manque un trait d’union s’il s’agit d’une église, d’une cité, d’une communauté, d’un lieu… S’il s’agit d’une personne, écrivez “saint” ou “sainte” sans majuscule, sans trait d’union.

    [St|Ste]  ~^[A-ZÉÈÎ]
        <<- /tu/ ->> \1-\2
        # Il manque un trait d’union s’il s’agit d’une église, d’une cité, d’une communauté, d’un lieu… S’il s’agit d’une personne, écrivez “saint” ou “sainte” sans majuscule, sans trait d’union.





TEST: Il passe par {{Aix en Provence}}
TEST: Qui se souvient de la {{Bosnie Herzégovine}} ?
TEST: en {{Charente Maritime}}
TEST: À {{Clermont Ferrand}}
TEST: habiter la {{Colombie Britannique}}
TEST: Il fait son stage étudiant aux {{États Unis}}
TEST: Des fromages délicieux de {{Franche Comté}}
TEST: Étudier en {{Grande Bretagne}}
TEST: La {{Haute Garonne}}
TEST: L’{{Île de France}} est surpeuplée.
TEST: Un nouveau président à la {{Maison Blanche}}
TEST: La guerre au {{Moyen Orient}}
TEST: Il ne connaît au {{Nouveau Brunswick}}
TEST: Elle a visité la {{Nouvelle Orléans}}
TEST: Vivre dans le {{Pas de Calais}}
TEST: Vivre aux {{Pays Bas}}
TEST: Des vacances en {{Rhône Alpes}}
TEST: Émigrer au {{Royaume Uni}}
TEST: Elle déménage en {{Saône et Loire}}


TEST: La station {{Saint Georges}}
TEST: Elle va prier à {{Ste Catherine}}.



__tu_nombres__
    dix                                                                     [sept|huit|neuf]
    dix                                                                     [>septième|>huitième|>neuvième]
    [trente|quarante|cinquante|soixante|septante|octante|huitante|nonante]  [deux|trois|quatre|cinq|six|sept|huit|neuf]
    [trente|quarante|cinquante|soixante|septante|octante|huitante|nonante]  [>deuxième|>troisième|>quatrième|>cinquième|>sixième|>septième|>huitième|>neuvième]
        <<- /tu/ ->> \1-\2                                                                          # Il manque un trait d’union.

    [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") ->> \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: les années {{soixante dix}}               ->> soixante-dix
TEST: {{soixante quatorze}}, c’est trop         ->> soixante-quatorze
TEST: Mais {{vingt trois}}, c’est assez         ->> vingt-trois



__tu_pas_de_trait_d_union__
    deux-tiers
        <<- /tu/ ->> deux tiers                                                 # Pas de trait d’union.

    en-bas
................................................................................
TEST: C’en pouvait être effrayant.


__conf_c_s_verbe__
    [il|ils|on|ne|n’]  c’
        <<- /conj/ -2>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”, la graphie élidée “s’”.


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

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

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


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

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]  @:V.*:[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
................................................................................
    >matière a >réflexion
    >masque a [gaz|oxygène]
    >montre a gousset
    >moule a [>gaufre|>gâteau|brioche|manqué|savarin|charlotte|tarte]
    >panier a >linge
    >papier a [>lettre|musique]
    >passage a tabac
    >pâte a [>pain|>crêpe|>gaufre|>pizza|>tarte|>modeler|>tartiner]
    >planche a repasser
    >presse a >scandale
    >pince a linge
    >punk a >chienne
    >revenir a la case départ
    >rouge a >lèvre
    >sac a [dos|main|langer|merde|foutre]
................................................................................
    >turbine a [gaz|vapeur]
    >vache a lait
    >vente a domicile
    >vernis a ongles
    >vol a [la|l’] [étalage|sauvette|tire]
    >vol a main armée
    >usine a gaz
        <<- /conf/ -2>> à                   # Confusion : “a” est une conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|http://fr.wiktionary.org/wiki/%C3%A0

TEST: C’est un arc {{a}} poulies
TEST: Ceci est une arme {{a}} feu.
TEST: Combien de bombes {{a}} fragmentation
TEST: C’est une nouvelle caisse {{a}} outils
TEST: Elle va en faire de la chair {{a}} pâté
TEST: Une cuillère {{a}} café.
................................................................................
TEST: dans le silo {{a}} grain.
TEST: sa chambre, c’est une vraie soue {{a}} cochons.
TEST: Un tueur {{a}} {{gages}} ne s’y prendrait jamais comme ça.
TEST: Ventes {{a}} domicile insatisfaisantes
TEST: Ce n’est que du vernis {{a}} ongles.
TEST: le vol {{a}} l’étalage est un fléau.
TEST: Il nous faut une {{voix}} de recours.
TEST: Marre de cette pâte {{a}} pain.
TEST: c’est une putain d’usine {{a}} gaz.
TEST: ce produit est notre vache {{a}} lait
TEST: ils vont et viennent, toujours {{cotes a cotes}}…
TEST: Nous irons {{tours à tours}} chercher du bois.


__conf_mettre_a_profit_plat__
................................................................................
__conf_celui_celle_à_qui__
    [celui|celle|ceux|celles]  a  qui
        <<- /conf/ -2>> à                   # Confusion. Utilisez la préposition “à”.|http://fr.wiktionary.org/wiki/%C3%A0

TEST: Ceux {{a}} qui nous avons notifié le problème sont partis.
TEST: Il y a qui au dîner ce soir ?









# m’a tuer
__conf_m_a_tuer__
    m’ a tuer
        <<- /conf/ -3>> tué|tuée
        # Cliché. Évitez cette erreur de grammaire délibérée, faite d’innombrables fois, pour mimer l’affaire Omar Raddad.|https://fr.wikipedia.org/wiki/Omar_m'a_tuer

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

# ça / çà / sa
__conf_ça_çà_sa__
    ça  @:[NAQ].*:f¬:(?:G|P|[123][sp])|>seule?s?/
        <<- /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)/|:[NAQ].*:f



        <<- /conf/ not (value(\2, "|ou|") and value(>1, "|son|ses|")) -1>> ça   # Confusion : “sa” (sa maison, sa passion) ≠ “ça” (ça vient, ça heurte).

    çà
        <<- /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à ».

    ça et là
        <<- /conf/ not morph(<1, ":R") ->> çà et là     # Confusion : « ça » équivaut à « cela ». Dans l’expression « çà et là », « çà » équivaut à « ici ».
................................................................................
        <<- /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”.

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
TEST: C’est comme {{sa}}.
TEST: {{sa}} l’ennuierait, ce fils de pute, de dire bonjour ?
TEST: il faut s’y prendre comme {{sa}}
TEST: on fait {{sa}} lorsqu’on a tout perdu
TEST: {{ç’a}} craint, cette histoire
TEST: ç’{{à}} été dur                                                           ->> a
TEST: ç’a été difficile.
TEST: Eux, ils appellent ça routine.
TEST: avec sa presque belle-mère
TEST: sa toute nouvelle application de synchronisation de fichiers
TEST: communiquer avec sa ou son partenaire.
TEST: Je trouve ça logique.

................................................................................
__gn_tout_nom__
    [<start>|,] tout  @:N.*:[fp]¬:(?:A|W|G|M|Y|[me]:[is]|3s)
    de          tout  @:N.*:[fp]¬:(?:A|W|G|M|Y|[me]:[is]|3s)
        <<- /gn/ -3>> =suggMasSing(\3, True)                                                        # Accord avec “tout” : “\3” devrait être au masculin singulier.

    tout  @:N.*:[fp]¬:(?:A|W|G|M|Y|[me]:[is]|3s)
        <<- /gn/ morph(<1, ":R", ":D.*:p") -2>> =suggMasSing(\2, True)                              # Accord avec “tout” : “\2” devrait être au masculin singulier.

TEST: Tout {{hommes}}
TEST: se méfie de tout {{amours}} trop encombrant
TEST: contre tout {{arrangements}}
TEST: Tout les sépare.
TEST: les tout débuts du mouvement ouvrier
TEST: vos tout débuts furent difficiles
TEST: aux tout débuts, il y eut bien des erreurs
TEST: comment les inégalités sociales impactent la santé des tout petits


__gn_tous_nom__
    [<start>|,] tous  @:[NA].*:[fs]¬:(?:W|P|G|M|[me]:[ip]|3p)
    de          tous  @:[NA].*:[fs]¬:(?:W|P|G|M|Y|[me]:[ip]|3[sp])
        <<- /gn/ -3>> =suggMasPlur(\3, True)                                                        # Accord avec “tous” : “\3” devrait être au masculin pluriel.

    tous  @:[NA].*:[fs]¬:(?:W|G|M|Y|P|3[sp]|[me]:[ip])
        <<- /gn/ morph(<1, ":R") -2>> =suggMasPlur(\2, True)                                        # Accord avec “tous” : “\2” devrait être au masculin pluriel.

TEST: tous {{fou}} à lier
TEST: De tous {{âge}} !
TEST: par tous {{homme}} capable de comprendre
TEST: l’existence d’un enseignement supérieur public, peu onéreux et ouvert à tous est d’une importance cruciale.
TEST: la survie de tous est plus importante que les profits de quelques-uns
TEST: tous ayant souffert du supplice de séjourner derrière les barreaux


__gn_toute_nom__
    [<start>|,] toute  @:[NA].*:[mp]¬:(?:W|P|G|M|[fe]:[is])
    de          toute  @:[NA].*:[mp]¬:(?:W|P|G|M|Y|[fe]:[is])
        <<- /gn/ -3>> =suggFemSing(\3, True)                                                        # Accord avec “toute” : “\3” devrait être au féminin singulie
        <<- /gn/ morph(\3, ":[NA].*:f:p") -2>> toutes                                               # Accord avec “\3”.

    toute  @:[NA].*:[mp]¬:(?:W|G|M|Y|P|[fe]:[is])
        <<- /gn/ morph(<1, ":R") -2>> =suggFemSing(\2, True)                                        # Accord avec “toute” : “\2” devrait être au féminin singulier.
        <<- /gn/ __also__ and morph(\2, ":[NA].*:f:p") -1>> toutes                                  # Accord avec “\2”.

TEST: Toute {{époux}} doit faire preuve de bienveillance
TEST: de toute {{grand}} entreprise
TEST: contre toute {{petites}} corruption
TEST: Il se souvient de toute mon histoire.


__gn_toutes_nom__
    [<start>|,] toutes  @:[NA].*:[ms]¬:(?:W|G|M|[fe]:[ip])
    de          toutes  @:[NA].*:[ms]¬:(?:W|G|M|Y|[fe]:[ip])
        <<- /gn/ -3>> =suggFemPlur(\3, True)                                                        # Accord avec “toutes” : “\3” devrait être au féminin pluriel.
        <<- /gn/ morph(\3, ":[NA].*:f:s") -2>> toute                                                # Accord avec “\3”.

    toutes  @:[NA].*:[ms]¬:(?:W|G|M|Y|P|[fe]:[ip])
        <<- /gn/ morph(<1, ":R") -2>> =suggFemPlur(\2, True)                                        # Accord avec “toutes” : “\2” devrait être au féminin pluriel.
        <<- /gn/ __also__ and morph(\2, ":[NA].*:f:s") -1>> toute                                   # Accord avec “\2”.

TEST: toutes {{folle}} qu’elles croient être, elles sont aussi raisonnables que quiconque

TEST: avec {{toutes}} {{femme}}
TEST: sur {{toutes}} {{armure}}













!!
!!
!!!! Adverbes de négation                                                                         !!
!!
................................................................................
TEST: Les démons ont forme animale.
TEST: Là n’est pas le problème.
TEST: Une robe sans manches plutôt sympathique.
TEST: une émancipation des usagers, refusant de se laisser guider par des « machines à sous » les incitant insidieusement à rester en ligne.
TEST: Les pompes à chaleur sont moins rentables.
TEST: Ce qui rend les pompes à chaleur moins rentables.
TEST: l’accusation de lynchage médiatique proférée par François de Rugy à l’encontre de “Mediapart” ne tient pas.
TEST: La poïesis, en grec, est ce qui permet de faire passer n’importe quoi du non-être à l’être



@@@@
@@@@
@@@@
@@@@
................................................................................

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]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>>
................................................................................
TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle.
TEST: Ils jugeront en toute impartialité de ce cas {{délirante}}.


__gn_mon_ton_son_1m__
    [mon|ton|son]  *WORD
        <<- /gn/ morph(\1, ":D") >>>
        <<- /gn/ morph(\2, ">[bcdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.replace("on", "a").replace("ON", "A")     # Accord de genre erroné : « \2 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True)                    # Accord de genre erroné : « \1 » est un déterminant masculin.
        <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2)                    # Accord de nombre erroné : « \2 » devrait être au singulier.

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


__gn_mon_ton_son_2m__
    [mon|ton|son]  *WORD  *WORD
        <<- /gn/ not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>>
        <<- /gn/ morph(\2, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
        -3>> =suggMasSing(\3, True)                                                         # Accord de genre erroné : « \2 » est masculin, « \3 » est féminin.
................................................................................
        <<- /gn/ (morph(\2, ":[NA].*:s", "*") or \1 in aREGULARPLURAL) and not value(<1, "|le|un|ce|du|")
        -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: mille cinquante {{mot}}                                                       ->> mots
TEST: deux {{tête}}                                                                 ->> têtes
TEST: un logement neuf bâti par des professionnels.
TEST: un mille marin.
TEST: L’article VII mentionné dans la revue


__gn_nombre_chiffres_1m__
    [0|1|01]  @:[NAQ].*:p¬*
................................................................................
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ ((morph(\2, ":s", "*") and morph(\3, ":p", "*")) or (morph(\2, ":p", "*") and morph(\3, ":s", "*"))) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      # Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    # Accord de nombre erroné avec « \3 ».

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


__gn_start_3m__
    <start>  @:[NA]¬*  @:[NA]¬*  @:[NA]¬*
        <<- /gn/ morph(\2, ":p") and morph(\3, ":[pi]") and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":i") and morph(\3, ":p")    and morph(\4, ":s") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.
        <<- /gn/ morph(\2, ":s") and morph(\3, ":[si]") and morph(\4, ":p") and \4.islower() -4>> =switchPlural(\4)  # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        <<- /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.
................................................................................
        <<- /sgpl/ morph(>1, ":B|>une?")
        -2>> cent                           # Nombre cardinal : pas de “s” à “cent” (hormis sur les centaines entières).|http://fr.wiktionary.org/wiki/cent

    cents  @:[NA].*:[pi]¬:G
        <<- /sgpl/ morph(<1, ":[VR]|<start>", ":B")
        -1>> cent                           # Nombre cardinal : pas de “s” à “cent” (hormis sur les centaines entières).|http://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
TEST: par {{cents}} idées différentes.


# mille
__sgpl_mille__
................................................................................
    demies >heure
    demi heures
    demis >heure
    demis-heures
        <<- /sgpl/ ->> demi-heures                      # La moitié d’une heure s’écrit “demi-heure” (“demi-heures” au pluriel).

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.


__sgpl_demi_demie__
    [>année|>semaine|>journée|>heure|>minute|>seconde|>bouteille|>caisse|>cuillère|>page|>remorque|>tasse|>tonne] et [demi|demis|demies]
        <<- /sgpl/ -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]
        <<- /sgpl/ -3>> demi                            # « Un et demi », « deux et demi », etc.
................................................................................
        <<- /conf/ -3>> cœur                                    # Confusion. Pour évoquer ce qu’on connaît parfaitement de mémoire, écrivez “par cœur”.|https://fr.wiktionary.org/wiki/ch%C5%93ur

TEST: ils répondirent en {{cœur}}.
TEST: elles connaissaient par {{chœur}} la chanson.


# content / contant / comptant
__conf_content_comptant!6__
    >avoir ?tout¿ [mon|ton|son|notre|votre|leur] ([comptant|contant])
        <<- /conf/ -1>> content                             # Confusion. Avoir (tout) son content…|https://fr.wiktionary.org/wiki/content#Nom_commun

    argent [content|contant]
        <<- /conf/ morph(<1, ":[VR]") -2>> comptant         # Confusion probable.|https://fr.wiktionary.org/wiki/argent_comptant

TEST: Elle a déjà eu tout son {{comptant}} de problèmes.
................................................................................

TEST: de manière à {{obligé}} ces gens
TEST: ils ont intérêt à {{obligés}} ces gens
TEST: Tous ceux qui ont du mal à {{obligé}} ces gens


__infi_de_verbe__
    [de|d’]  [le|l’|leur|les]             @:V¬:[YNAM]|>(?:lui|plus)/
    [<start>|,]  [de|d’] [nous|vous|lui]  @:V¬:[YE]|>(?:lui|plus)/
        <<- /infi/ \-1.islower() --1>> =suggVerbInfi(\-1)                               # Erreur probable. Après “de”, le verbe devrait être à l’infinitif.

    [de|d’] la  @:V[123]..t¬:[YNAM]|>(?:lui|plus)/
        <<- /infi/ \-1.islower() --1>> =suggVerbInfi(\-1)                               # Erreur probable. Après “de”, le verbe devrait être à l’infinitif.

    [de|d’] [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:Y|>(?:lui|plus|point)/
    [de|d’] [ne|n’|en|me|m’|te|t’|se|s’|y]                                       @:V¬:Y|>(?:lui|plus|point)/
    [de|d’] ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:Y
    [de|d’] ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:Y
    [de|d’] ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:Y
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                             # Après “de”, le verbe devrait être à l’infinitif.

................................................................................
TEST: cela suffit de les {{aimait}}
TEST: de ne leur en {{avancé}} que le nécessaire.
TEST: de l’y {{poussé}}
TEST: arrête d’y {{consacré}} autant de temps.
TEST: je suis certain d’en {{choque}} plusieurs.
TEST: elle était capable de la {{trouvait}} où qu’elle soit.
TEST: de me le {{facturez}}
TEST: suffit de la {{mangeait}} froide
TEST: Il s’agit de me {{donnait}} tout ça.
TEST: j’étais incapable de m’{{orientait}} dans la bonne direction.
TEST: ils étaient susceptibles de m’y {{trouvaient}}
TEST: Il tentait de {{raisonné}} en homme libre
TEST: sa façon de {{nettoyez}} était inefficace.
TEST: elle a délibérément omis de les {{inclurent}}.
TEST: Sont-ils en mesure de nous {{fabriqué}} ces armes ?
................................................................................
__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.
TEST: __ocr__ il était sublime.
TEST: __ocr__ la longueur de la circonférence étant égale à…
# TEST: __ocr__ vous êtes {{presses}} de monter à bord de ce train-ci.
# 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__ Après on a {{creuse}} vers le haut.
TEST: __ocr__ tu vois, il a {{affrontes}} seul une bande de voleurs de bétail.

TEST: __ocr__ elle avait envie de s’en sortir enfin.






!!!! Confusions                                                                                   !!

## on / ont
__conf_on_ont2__
................................................................................
!!

__conj_conf_se_être_avoir__
    je  m’  ?[en|y]¿  (>avoir)
        <<- /conj/ -1>> suis|étais|serai|serais                         # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.

    tu  t’  ?[en|y]¿  (>avoir)

        <<- /conj/ not morph(<1, ":V0") -1>> es|étais|seras|serais      # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.

    [<start>|,]  nous  nous  ?[en|y]¿  >avoir
        <<- /conj/ --1>> sommes|étions|serons|serions                   # Confusion possible. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.
        <<- /conj/ -2>> nous,                                           # S’il ne s’agit pas d’une locution pronominale, mettez une virgule pour séparer du sujet les personnes que vous désignez.

    [<start>|,]  vous  vous  ?[en|y]¿  >avoir
        <<- /conj/ --1>> êtes|étiez|serez|seriez                        # Confusion possible. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.
................................................................................

    s’  ?[en|y]¿  (>avoir)
        <<- /conj/ morph(\1, ":3p") -1>> sont|étaient|seront|seraient   # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.
        <<- /conj/ __else__ -1>> est|était|sera|serait                  # Confusion. Sous sa forme pronominale, un verbe s’emploie avec l’auxilaire “être”, non “avoir”.

TEST: je m’y {{avais}} habitué.
TEST: tu t’{{avais}} donné du temps pour finir ton mémoire.

TEST: {{nous}} nous {{avons}} donné le temps
TEST: {{vous}} vous {{avez}} perdu toute notion de décence.
TEST: s’en {{ait}} trop
TEST: s’en {{aient}} assez
TEST: Ce qu’il a tu t’a donné la nausée.


!!
!!
!!!! Participes passés: se +être +verbe                                                           !!
!!
................................................................................
    /-elles  @:(?:[123][sp]|[NA].*:[sm])¬:(?:G|W|Y|[fe]:[pi])|>(?:dire|légion)/
        <<- /ppas/ morphVC(\1, ">(?:sembler|rester|demeurer|para[îi]tre)/")
        -2>> =suggFemPlur(\2)                                           # Accord avec “elles” : “\2” devrait être au féminin pluriel.

TEST: Étaient-elles {{arriver}} ?
TEST: Sont-elles tout à fait {{arriver}} ?
TEST: Ne sont-elles pas {{aveugle}}
TEST: demeurent-elles {{présente}}



!!
!!
!!!! Se croire/considérer/montrer/penser/révéler/savoir/sentir/voir/vouloir + participe passé/adj !!
!!
................................................................................
TEST: l’homme se considère {{instruits}} alors qu’il n’est qu’un aveugle qui tâtonne.
TEST: Me voilà bien {{avancés}} !
TEST: avec eux, te voilà {{embarqués}} dans une drôle d’histoire…
TEST: un accident et nous voilà mal {{barré}}…
TEST: Le voilà {{perdue}} dans son délire.
TEST: un peu de maquillage et la voilà {{jolis}} comme un cœur.
TEST: les voilà pauvrement {{équipé}} pour un tel périple.
TEST: ils se considèrent {{béni}}
TEST: une chance pour elle alors qu’il n’a pas choisi
TEST: elle se révèle d’ailleurs être une alliée de taille
TEST: mais les considérer uniquement ainsi fait perdre la signification politique de leur geste.
TEST: nous considérer ainsi fait le lit de la haine…



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

    [/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 {{chaînent}}                         ->> chaîne
TEST: Écrit-elle les {{fixions}} ?                              ->> fictions
TEST: Sait-elle le {{choie}} qu’il a fait ?                     ->> choix
TEST: Entreront-ils en {{contacte}} avec eux ?                  ->> contact


__conf_vc_int_imp_verbe__
    [/VCint|/VCimp]  @:[123][sp]¬:[GNAQWM]
................................................................................
        -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}} ?


__inte_union_il_on__
    [<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
................................................................................
    *WORD  ~.[td]$  elle  [<end>|,]
    *WORD  ~.[td]$  elle  @:¬:3s
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:3s", ":[GNW]") and not value(\1, "|ce|c’|ça|ç’|il|elle|on|")
        -2:3>> \2-elle                                                                              # 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: 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_nous!6__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~ons$  nous  [<end>|,]
................................................................................

    [<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: {{retrouverons nous}} enfin la tranquilité ?
TEST: Ne {{sommes nous}} pas des dieux ?
TEST: quelle force {{prétendons nous}} avoir si…
TEST: quel exercice {{avions nous}} revu ?
TEST: les avions nous font rêver.


__inte_union_vous__
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~..e[zs]$  vous  [<end>|,]
    [<start>|,|comment|pourquoi|combien|que|qu’|quoique|quoiqu’|où|puis|quand|qui]  ~..e[zs]$  vous  @:¬:2p
        <<- /inte/ space_after(\2, 1, 1) and morph(\2, ":V.*:2p", ":[GW]")
        -2:3>> \2-vous                                                                              # Forme interrogative ? Mettez un trait d’union.
................................................................................

__infi_suffire__
    [suffit-il|suffisait-il|suffira-t-il|suffirait-il]  [de|d’]  @:V¬:[YMNWG]
    il  [suffit|suffisait|suffira|suffirait]            [de|d’]  @:V¬:[YMNWG]
    il  [aurait|aurai|aurais|aurez]  suffi              [de|d’]  @:V¬:[YMNWG]
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                                         # Après “suffire”, le verbe doit être à l’infinitif.

TEST: il suffit de {{pensé}} à ça pour déprimer.
TEST: il suffit de {{mangé}} sain pour aller mieux.
TEST: il ne suffit pas de pensées positives pour calmer son anxiété.
TEST: il suffit de cela.


__infi_verbes__
    [>aimer|>désirer|>espérer|>oser|>préférer|>souhaiter]  ~..(?:ée?s?|ez)$
................................................................................

    [>aller|>venir]  ~..(?:ée?s?|ez)$
        <<- /infi/ morph(\1, ":", ":[GN]") and morph(\2, ":V", ":M|>(?:accompagner|armer|armurer|casquer|déguiser)/")
        -2>> =suggVerbInfi(\2)                                                                      # S’il s’agit d’une action à accomplir, le verbe devrait être à l’infinitif.

TEST: elle préférait {{mangée}} seule.
TEST: Il venait, comme d’habitude, {{discuté}} avec son ami.
TEST: Ces types-lpen venaient {{mangé}} chez moi tous les dimanches.
TEST: ils viennent bien entendu {{attaqué}} le parlement
TEST: ils vont par voie de conséquence vraiment {{attaqué}} la banque
TEST: elles ont pu {{mangé}}
TEST: Cette affaire ne va rien {{arrangé}}.
TEST: ils vont de manière non conventionnelle {{fêtée}} leur réussite.
TEST: ils vont de manière absurde {{arrivé}} au résultat inverse à leurs espérances
TEST: croyez-vous qu’ils oseront {{proposé}} des amendements aussi audacieux ?
................................................................................
__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)
    la plupart  des  *WORD  qui  @:V¬:(?:3p|P|G)
        <<- /conj/ --1>> =suggVerb(\-1, ":3p")                          # Conjugaison erronée. Accord avec “\1 \2 \-1”. Le verbe devrait être à la 3ᵉ personne du pluriel.

TEST: la plupart des hommes {{vienne}}
TEST: La plupart {{admet}}
TEST: d’aucuns {{pense}} que c’est faux
TEST: avec la plupart des femmes qui {{devienne}} mère


__conj_certains_certaines_plusieurs__
    [certains|certaines|plusieurs]  @:V¬:(?:G|N|A|3p|P|Q)
        <<- /conj/ not morph(<1, ":[VR]")
        --1>> =suggVerb(\-1, ":3p")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.