Grammalecte  Check-in [e4f2abc13a]

Overview
Comment:[fr] conversion: regex rules -> graph rules
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fr | rg
Files: files | file ages | folders
SHA3-256: e4f2abc13a52e8a20b7af92abd959089ec820a0d2d03c6c389f037477033106b
User & Date: olr on 2018-07-24 21:23:44
Other Links: branch diff | manifest | tags
Context
2018-07-24
22:13
[fr] conversion: regex rules -> graph rules check-in: 2b52a5e3d7 user: olr tags: fr, rg
21:23
[fr] conversion: regex rules -> graph rules check-in: e4f2abc13a user: olr tags: fr, rg
21:22
[build] graph builder: sContext check-in: fc68092e82 user: olr tags: build, rg
Changes

Modified gc_lang/fr/rules.grx from [9753f6b161] to [364771fc0c].

2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
....
2159
2160
2161
2162
2163
2164
2165


2166
2167
2168
2169
2170
2171
2172
2173
2174
2175






















2176
2177
2178
2179
2180
2181
2182
....
2200
2201
2202
2203
2204
2205
2206
2207



2208
































2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
....
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251

2252
2253
2254
2255
2256
2257
2258
....
2261
2262
2263
2264
2265
2266
2267
2268



































2269
2270
2271
2272
2273
2274
2275
....
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
....
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
....
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
....
3726
3727
3728
3729
3730
3731
3732



















3733
3734
3735
3736
3737
3738
3739
....
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520




4521
4522
4523
4524
4525
4526
4527
....
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
....
5005
5006
5007
5008
5009
5010
5011









5012
5013
5014
5015
5016
5017
5018
....
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
....
5501
5502
5503
5504
5505
5506
5507





















































5508
5509
5510
5511
5512
5513
5514
....
6759
6760
6761
6762
6763
6764
6765


6766
6767
6768
6769
6770
6771
6772
....
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
....
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
....
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
....
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345

















8346
8347
8348
8349
8350
8351
8352
....
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633

8634
8635
8636
8637
8638
8639
8640
.....
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
.....
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
.....
12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921

12922
12923
12924
12925
12926
12927
12928
@@@@
@@@@GRAPH: graphe0                                                                                 _
@@@@
@@@@
@@@@
@@@@


!!!! Étiquetage                                                                                   !!

__tag_verbes_composés_interrogatifs__
    ~\w-[jJ]e$
        <<- />> -je|VCint

    ~\w-[tT]u$
        <<- />> -tu|VCint
................................................................................
    ~\w-[eE]lles?$
        <<- \1.endswith("e") />> -elle|VCint
        <<- __else__ />> -elles|VCint

    ~\w-[oO]n$
        <<- />> -on|VCint



    ~\w-[nN]ous$
        <<- />> -nous|VCint

    ~\w-[vV]ous$
        <<- />> -vous|VCint


__tag_verbes_composés_impératif__
    ~\w-l(?:es?|a)-(?:[mt]oi|nous|leur)$
        <<- />> -COD-COI|VCimp
























@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: graphe1                                                                                 _
................................................................................
#TEST: Il y a un {{doublon doublon}}.




!!!! Nombres ordinaux                                                                             !!

__typo_ordinaux_chiffres__



    1 ier
































    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
    1iers
        <<- /typo/ ->> 1ᵉʳˢ         # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

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

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

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

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

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

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

    ~^\d+$  ès
    ~^\d+$  ièmes
    ~^\d+$  iemes
    ~^\d+$  èmes
    ~^\d+$  emes

        <<- /typo/ ->> \1ᵉˢ         # Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^\d+(?:è|i?[èe]me)s?$
        <<- /typo/ \0.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: 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__



































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

    I iers
    Iiers
        <<- /typo/ ->> Iᵉʳˢ         # Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
................................................................................
    IInde
        <<- /typo/ ->> IIᵈᵉ         # Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

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

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

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

    ~^[IVXLCM]{1,10}(?:è|i?[èe]me)s?$
        <<- /typo/ not morph(\1, ":G") >>>
        <<- \0.endswith("s")
        ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ" # Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
        <<- __else__
................................................................................
TEST: Les {{va-t-en guerre}} sont de sortie.
TEST: Elle va t’en donner, des devoirs.


# est-ce … ?
__tu_est_ce__
    est ce  @:¬:N.*:[me]:[si]|>qui/
    <<- morph(<1, ":Cs|<start>") and space_after(\1, 1, 1) -1:2>> est-ce                            # S’il s’agit d’une interrogation, il manque un trait d’union.

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.

................................................................................
TEST: Dès lors qu’on sait comment s’y prendre, aucune raison de faillir.



!!!! Virgules                                                                                     !!

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

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


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

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

    ~-l(?:es?|a)-(?:[mt]oi|[nv]ous|lui|leur)$  @:M
        <<- /virg/ -1>> \1,                                                                         # Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

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


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




















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

    sa  @:(?:Y|[123][sp])¬:(?:N.*:[fe]|A|W)
        <<- /conf/ \2.islower() >>>
................................................................................


__conf_à_a_après_verbes__
    @:V¬:[YGNAWM]  a
        <<- /conf/ not tag_before(\1, "ce_que")
        -2>> à                                  # Confusion probable : “a” est la conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|http://fr.wiktionary.org/wiki/%C3%A0

    ~\w-(?:je|tu|ils?|elles?|on|vous|nous)$  a
        <<- /conf/ -2>> à                       # Confusion : “a” est la conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|http://fr.wiktionary.org/wiki/%C3%A0

TEST: Vient-on {{a}} la maison demain ?
TEST: Arrivait-elle {{a}} le manger ?






__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.
................................................................................
    >être  d’  >avantage  @:[NAQ]¬:G
        <<- /conf/ -2:3>> davantage                                                 # Confusion possible : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

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

    ~-(?:je|tu|il|on)  d’  >avantage
        <<- /conf/ not morph(\1, ">(?:profiter|bénéficier)/", 0, -3) and not morph(>1, ">(?:financi[eè]re?|pécuni(?:er|aire)|sociaux)s?/")
        -2:3>> davantage                                                            # Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

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

    ~-(?:elle|nous|nous)  d’  >avantage
        <<- /conf/ not morph(\1, ">(?:profiter|bénéficier)/", 0, -5) and not morph(>1, ">(?:financi[eè]re?|pécuni(?:er|aire)|sociaux)s?/")
        -2:3>> davantage                                                            # Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

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

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

TEST: ils ont peu {{davantage}} à vivre ici.
................................................................................
TEST: attaqué sur son {{flan}} droit
TEST: elle possède une maison à {{flan}} de colline.
TEST: étendu sur son {{flan}}.
TEST: Ce sale {{tir-au-flan}} le paiera cher.
TEST: le flan est une pâtisserie.
TEST: versez du caramel sur le flan.











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

    golf persique
................................................................................

# la / là
__conf_la_là!7__
    la  [l’|d’|n’|m’|t’|s’|c’|ç’|j’|qu’|lorsqu’|puisqu’|quoiqu’]
    la  @:G¬:(?:[NA]:[ef]|W)|>(?:lui|leur|votre|notre|voilà|voici|plupart|quell?e?s?)/
        <<- /conf/ not \1.isupper() and not \2.isupper() and not morph(<1, ":E|>le/") -1>> là       # Confusion probable. Écrivez “là” si vous voulez dire “ici”.

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

TEST: nous serions encore {{la}} l’année prochaine
TEST: en reprenant le chandail de John {{la}} où elle l’avait abandonné.
TEST: Ce {{fait-la}} ne peut être ignoré.
TEST: la peu efficace sensibilité
TEST: c’est toujours la même histoire
TEST: c’est la moins habile de toutes
................................................................................
TEST: elle sans y penser
TEST: elle sans vergogne
TEST: elle sans la condamner
TEST: elles sans un sou en poche
TEST: elles sans grandes convictions
TEST: elle c’en était trop (TODO : proposer une virgule)























































# son / sont
__conf_son_sont__
    [ne|me|te|se] son
        <<- /conf/ -2>> sont    # Confusion : “son” est un déterminant ou un nom masculin. Le verbe “être” à la 3ᵉ personne du pluriel s’écrit “sont”.

    ne [le|leur|leurs|lui|nous|vous] son
................................................................................
    au sens [figuré|large|propre]
    au surplus
    au ~[xXvViI]+[eᵉ] siècle
    au-delà du descriptible
    au-dessus [de|d’] {pronom_obj}
    aujourd’hui
    auparavant


    ?tout¿ au fond [de|d’] {pronom_obj}
    aux [abois|leurs|mien|miens|mienne|miennes|tien|tiens|tienne|tiennes|sien|siens|sienne|siennes|nôtres|vôtres]
    autant que [nécessaire|possible|prévu]
    autant que faire se peut
    autour [de|d’] {pronom_obj}
    autrement dit
    av. J.-C.
................................................................................

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


__purge_après_être__
    [>être|>devenir|>rester] [bon|meilleur] marché
    [>être|>devenir|>rester] avant tout
    [>être|>devenir|>rester] cousin et cousine
    [>être|>devenir|>rester] de passage
    [>être|>devenir|>rester] du moins
    [>être|>devenir|>rester] en partie
    [>être|>devenir|>rester] frère et sœur
    [>être|>devenir|>rester] mari et femme
    [>être|>devenir|>rester] mission impossible
    [>être|>devenir|>rester] monnaie courante
    [>être|>devenir|>rester] papa et maman
    [>être|>devenir|>rester] partie [intégrante|prenante]
    [>être|>devenir|>rester] pieds et poings liés
    [>être|>devenir|>rester] pieds nus
    [>être|>devenir|>rester] père et mère
    [>être|>devenir|>rester] somme toute
    [>être|>devenir|>rester] sous peu
    [>être|>devenir|>rester] tous [deux|trois]
    [>être|>devenir|>rester] un jour
    [>être|>devenir|>rester] à jamais
    [>être|>devenir|>rester] [pas|jamais|plus|point]
        <<- ~2:0>> *

    /VCint [bon|meilleur] marché
    /VCint avant tout
    /VCint cousin et cousine
    /VCint de passage
    /VCint du moins
    /VCint en partie
    /VCint frère et sœur
    /VCint mari et femme
    /VCint mission impossible
    /VCint monnaie courante
    /VCint papa et maman
    /VCint partie [intégrante|prenante]
    /VCint pieds et poings liés
    /VCint pieds nus
    /VCint père et mère
    /VCint somme toute
    /VCint sous peu
    /VCint tous [deux|trois]
    /VCint un jour
    /VCint à jamais
    /VCint [pas|jamais|plus|point]
        <<- morphVC(\1, ">(?:être|devenir|rester)") ~2:0>> *

    [>être|>devenir|>rester] beaucoup
    [>être|>devenir|>rester] bien entendu
    [>être|>devenir|>rester] dans [l’|leur|son] ensemble
    [>être|>devenir|>rester] [à|en] ce moment  ?précis¿
    [>être|>devenir|>rester] [à|en] cet instant ?précis¿
    [>être|>devenir|>rester] sans peine
    [>être|>devenir|>rester] un [moment|peu|minimum]
    [>être|>devenir|>rester] un petit peu
    [>être|>devenir|>rester] un tout petit peu
        <<- morph(>1, ":[QY]") ~2:0>> *

    /VCint beaucoup
    /VCint bien entendu
    /VCint dans [l’|leur|son] ensemble
    /VCint [à|en] ce moment  ?précis¿
    /VCint [à|en] cet instant ?précis¿
    /VCint sans peine
    /VCint un [moment|peu|minimum]
    /VCint un petit peu
    /VCint un tout petit peu
        <<- morphVC(\1, ">(?:être|devenir|rester)", 0, -4) and morph(>1, ":[QY]") ~2:0>> *

    on ne peut [plus|moins]
    on ne peut pas [plus|moins]
    plus que
        <<- morph(<1, ":(?:V0e|N)") and morph(>1, ":[AQ]") ~>> *

................................................................................
    >avoir  [pas|jamais|plus|guère|point]
    >avoir  ?[pas|jamais|plus|guère|point]¿  en partie
    >avoir  ?[pas|jamais|plus|guère|point]¿  tous [deux|trois]
    >avoir  ?[pas|jamais|plus|guère|point]¿  somme toute
        <<- ~2:0>> *

    >avoir  ?[pas|jamais|plus|guère|point]¿  beaucoup
    >avoir  ?[pas|jamais|plus|guère|point]¿  bien entendu
    >avoir  ?[pas|jamais|plus|guère|point]¿  dans [leur|l’|son] ensemble
    >avoir  ?[pas|jamais|plus|guère|point]¿  à cet [instant|endroit] ?précis¿
    >avoir  ?[pas|jamais|plus|guère|point]¿  à ce moment ?précis¿
    >avoir  ?[pas|jamais|plus|guère|point]¿  sans peine
    >avoir  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    >avoir  ?[pas|jamais|plus|guère|point]¿  un minimum
    >avoir  ?[pas|jamais|plus|guère|point]¿  un peu
................................................................................
    /VCint  [pas|jamais|plus|guère|point]
    /VCint  ?[pas|jamais|plus|guère|point]¿  en partie
    /VCint  ?[pas|jamais|plus|guère|point]¿  tous [deux|trois]
    /VCint  ?[pas|jamais|plus|guère|point]¿  somme toute
        <<- morphVC(\1, ":V0a") ~2:0>> *

    /VCint  ?[pas|jamais|plus|guère|point]¿  beaucoup
    /VCint  ?[pas|jamais|plus|guère|point]¿  bien entendu
    /VCint  ?[pas|jamais|plus|guère|point]¿  dans [leur|l’|son] ensemble
    /VCint  ?[pas|jamais|plus|guère|point]¿  à cet [instant|endroit] ?précis¿
    /VCint  ?[pas|jamais|plus|guère|point]¿  à ce moment ?précis¿
    /VCint  ?[pas|jamais|plus|guère|point]¿  sans peine
    /VCint  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    /VCint  ?[pas|jamais|plus|guère|point]¿  un minimum
    /VCint  ?[pas|jamais|plus|guère|point]¿  un peu
................................................................................
    /VCint  ?[pas|jamais|plus|guère|point]¿  voix au chapitre
        <<- morphVC(\1, ":V0a") ~2:0>> *

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


@@@@
@@@@END_GRAPH                                                                                      _
@@@@



# après verbe
__[i](p_verbe_loc_adv1)__       ({w1}) (?:pas |)(jour et nuit|quand même(?: pas|)) @@0,$ <<- morph(\1, ":V", False) ~2>> *
__[i](p_verbe_loc_adv2)__       ({w_2}) (bien entendu|juste|ensemble) @@0,$ <<- morph(\1, ":V[123]") ~2>> *
__[i](p_verbe_loc_adv3)__       ({w_2}) ((?:fort|très|super) (?:bien|mal)|bien|mal) @@0,$ <<- morph(\1, ":V[123]", False) ~2>> *
__[i](p_verbe_pronom_aussi)__   ({w_1}) ((?:[mt]oi|[nv]ous|elles?|lui|eux) aussi) @@0,$ <<- morph(\1, ":V", False) ~2>> *
__[i](p_tout_aussi)__           (?:tout |)aussi <<- ~>> *
__[i](p_aussi_aussitôt)__       aussi(?:tôt|) <<- ~>> *
__[i](p_verbe_même)__           ({w_1}) (même) @@0,$ <<- morphex(\1, ":V", ":G") ~2>> *

# avant adjectifs, avant adverbes
__[i](p_le_xxx_le_plus_adj)__
    le ({w_2}) (le plus) ({w_2})  @@3,w,$
    <<- morphex(\1, ":[NAQ].*:[me]", ":G") and morph(\3, ":[AQ].*:[me]", False) ~2>> *
__[i](p_la_xxx_la_plus_adj)__
    la ({w_2}) (la plus) ({w_2})  @@3,w,$
    <<- morphex(\1, ":[NAQ].*:[fe]", ":G") and morph(\3, ":[AQ].*:[fe]", False) ~2>> *
__[i](p_les_xxx_les_plus_adj)__
    (?:[lmts]es|nos|vos|leurs) ({w_2}) (les plus) ({w_2})  @@w,w,$
    <<- morphex(\1, ":[NAQ].*:[pi]", ":[123][sp]") and morph(\3, ":A.*:[pi]", False) ~2>> *
__[i](p_le_plus_le_moins)__
    (le (?:plus|moins)) ({w_2})  @@0,$
    <<- morphex(\2, ":A", ":([me]:[si]|G)") and morph(word(-1), ">(?:avoir|être)/:V", False) ~1>> *
__[i](p_bien_sûr)__
    bien sûr(?! de) <<- ~>> *
__[i](p_bien_mal_fort_adj_adv)__
    (bien|mal|(?:fort|super) (?:bien|mal)|fort) +({w_2})  @@0,$
    <<- morph(\2, ":[AW]") ~1>> *
__[i](p_loc_adj_adv)__
    (à (?:demi|peine|peu près)|depuis peu|quelque peu|pas très|un (?:petit |)peu(?: plus| moins|)|peu|plus|moins) +({w_2})  @@0,$
    <<- morph(\2, ":[AW]", False) ~1>> *
__[i](p_si_adj_adv)__
    (si) +({w_2})  @@0,$
    <<- morph(\2, ":[AW]", False) and not (\2 == "bien" and after("^ +que? ")) ~1>> *
__[i](p_un_brin_chouïa_rien_tantinet_soupçon)__
    (un (?:brin|chou[iï]a|rien|minimum|soupçon|tantinet)(?: trop|)) ({w_2}) @@0,$
    <<- morphex(\2, ":A", ":G") ~1>> *
__[i](p_assez_trop_adv_xxxment)__
    (?:assez|trop) +(\w+ment)  @@$
    <<- morphex(\1, ":W", ":3p") ~>> *
__[i](p_assez_trop_adj_adv)__
    (assez|trop) +({w_2})  @@0,$
    <<- morphex(\2, ":[AW]", ":[123][sp]") ~1>> *

# adverbes en -ment
__[i](p_le_la_plus_moins_adv_xxxment)__
    ({w_2}) (l[ea] (?:plus|moins) (\w+ment)) ({w_2})  @@0,w,>2:$,$
    <<- morph(\1, ":[NAQ]", False) and morph(\3, ":W", False) and morph(\4, ":[AQ]", False) ~2>> *
__[i](p_complètement)__
    complètement <<- not morph(word(-1), ":D", False, True) ~>> *
__[i](p_adverbe_xxxment)__
    (\w+ment)(?: parlant| pas|) @@0 <<- morph(\1, ":W\\b") ~>> *


















# tous / tout / toute / toutes
__[i](p_tout_déterminant_masculin)__        (tout) (?:le|cet?|[mts]on) @@0              <<- ~1>> *
__[i](p_toute_déterminant_féminin)__        (toute) (?:la|cette|[mts]a) @@0             <<- ~1>> *
__[i](p_tous_toutes_déterminant_pluriel)__  (tou(?:te|)s) (?:[ldscsmt]es|[nv]os) @@0    <<- ~1>> *


# après
................................................................................
!!
!!!! Groupe nominal (1)                                                                           !!
!!
!!

#### 1 mot

## Usage impropre

__[s](au_le_nom)__
    ([aA]u le) ({w_2})  @@0,6   <<- morph(\2, ":[NAQ]", False) -1>> au          # Usage impropre. Après “au”, l’article “le” est inapproprié. (Ex : Je vais à la gare, je vais au stade.)
__[s](au_les_nom)__
    ([aA]u les) ({w_2})  @@0,7  <<- morph(\2, ":[NAQ]", False) -1>> aux         # Usage impropre. Après “au”, l’article “les” n’est pas nécessaire.
__[s](au_la)__
    ([aA]u) la ({w_2})  @@0,6   <<- morph(\2, ":[NAQ].*:[fe]", False) -1>> à    # Usage impropre. Avec un nom féminin, utilisez la préposition “à”. (Ex : Je vais à la gare, je vais au stade.)
__[i>(au_l)__
    ([aA]u) l’  @@0             <<- -1>> à                                      # Usage impropre. Ex : Elle va à l’opéra. Elle va au bal.

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


__[i]/gn(gn_l_accord)__ l’({w_2})  @@$

    <<- morphex(\1, ":[NAQ].*:p", ":[123][sp]|:[si]")
    -1>> =suggSing(@)                                                                               # Accord de nombre erroné :  « \1 » devrait être au singulier.

TEST: toute l’importance de l’{{accords}} musical.


## Accords
................................................................................
__[i]/conf(conf_glaciaire)__
    ères? (glacières?) @@$ <<- -1>> glaciaire                                   # Confusion : une glacière est un contenant préservant le froid.

TEST: Passe-moi la glacière, s’il te plaît.
TEST: Autrefois, il y eut plusieurs ères {{glacières}}.
TEST: dans la {{glaciaire}}


# en son for intérieur / fort
__[i]/conf(conf_for_intérieur)__
    (?:en|dans) (?:[mts]on|leur|[nv]otre) (forts? intérieurs?) @@$ <<- -1>> for intérieur
    # Confusion : “for” vient du latin “forum” et le “for intérieur” évoque la conscience individuelle.

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


# gène / gêne
__[i]/conf(conf_sans_gêne)__
    sans[- ]gènes? <<- ->> sans-gêne                                      # Confusion. Les gènes sont des éléments des chromosomes. Pour le synonyme d’embarras, écrivez “gêne”.
__[i]/conf(conf_gènes)__
    (?:[dmtsc]es|[nv]os|leurs) (gênes) @@$ <<- -1>> gènes                 # Confusion probable. Les gènes sont des éléments des chromosomes. Pour le synonyme d’embarras, écrivez “gêne”.

................................................................................
__[i]/conf(conf_s_ensuivre)__
    s’en (sui\w+) @@$ <<- morph(\1, ">suivre/", False) ->> s’en\1                         # Verbe « s’ensuivre ».

TEST: {{S’en suivit}} une guerre de tous les instants.
TEST: {{S’en suivre}}.


# soi / soit
__[i]/conf(conf_soi_disant)__
    soi[tse]?[ -]disante?s? <<- not re.search("(?i)^soi-disant$", \0) ->> soi-disant      # Confusion : “soi-disant” est un adjectif invariable.|http://fr.wiktionary.org/wiki/soi-disant

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


__[i]/conf(conf_prep_soi)__
    (?:chez|don de|sur|avec|pour) (soit) @@$ <<- not after(" soit ") -1>> soi                       # Confusion probable.
__[i]/conf(conf_en_soi)__
    (?<!’)en (soit)  @@3
    <<- morph(word(1), ":[GY]", True, True) and not before("(?i)quel(?:s|les?|) qu $|on $|il $") and not after(" soit ")
    -1>> soi                                                                                        # Confusion probable.
__[i]/conf(conf_quel_que_soit2)__
    quel(?:le|)s? que (soi(?:es?|)) @@$ <<- -1>> soit|soient                                        # Confusion probable.
__[i]/conf(conf_soi_même1)__
    (soi[tes]s? mêmes?) @@$
    <<- morph(word(-1), ":[YQ]|>(?:avec|contre|par|pour|sur)/", False, True) -1>> soi-même          # Confusion probable : moi-même, toi-même, lui-même, elle-même, soi-même, elles-mêmes, eux-mêmes.
__[i]/conf(conf_soi_même2)__
    soi[tes]s?-mêmes? <<- ->> soi-même                                                              # Confusion : moi-même, toi-même, lui-même, elle-même, soi-même, elles-mêmes, eux-mêmes.

TEST: chez {{soit}}, c’est presque toujours mieux.
TEST: ce n’est pas la philosophie en {{soit}} qui est problématique
TEST: quel que {{soie}} sa pensée, je refuse d’y accorder de l’attention.
TEST: Penser par {{soit même}}…
TEST: S’aimer {{soit-même}}, c’est le début d’une grande histoire d’amour. (Oscar Wilde)
TEST: Je regrette que l’on en soit encore à des considérations que je croyais dépassées
TEST: Quoi qu’il en soit


__[i]/conf(conf_soit1)__
    (soie?s?) ({w_2})  @@0,$
    <<- isStart() and morphex(\2, ":[OC]", ":R") -1>> soit                                          # Confusion probable : pour évoquer une option, écrivez “soit”.|https://fr.wiktionary.org/wiki/soit#Conjonction
__[i]/conf(conf_soit2)__
    (soie?s?) [jtcç]’ @@0
    <<- isStart() -1>> soit                                                                         # Confusion probable : pour évoquer une option, écrivez “soit”.|https://fr.wiktionary.org/wiki/soit#Conjonction

TEST: {{soi}} je vais au cinéma, {{soi}} je m’abstiens.
TEST: {{soie}} j’arrive avant tout le monde.


# tâche / tache (de chocolat / rousseur / vin / sang / café / gras / graisse / huile / etc.)
__[i]/conf(conf_tache_de_qqch)__
    (tâches?) d(?:e +|’)({w_2})  @@0,$
    <<- morphex(\2, ":N", ":[GMY]|>(?:fonds?|grande (?:envergure|ampleur|importance)|envergure|ampleur|importance|départ|surveillance)/") and not before("accompl|dél[éè]gu")
    -1>> =\1.replace("â", "a")
    # Confusion probable. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.
................................................................................
    -1>> =suggSing(@)                                                       # Si cet adjectif se réfère au pronom « \2 », l’adjectif devrait être au singulier (et accordé en genre).

TEST: {{Découragés}}, je suis parti.


__[i]/ppas(ppas_adj_accord_il)__
    ^ *({w_2}[es]),? il  @@*
    <<- morphex(\1, ":A.*:[fp]", ":(?:G|E|M1|W|m:[si])")
    -1>> =suggMasSing(@)                                                    # Si cet adjectif se réfère au pronom « il », l’adjectif devrait être au masculin singulier.

TEST: — {{Déçue}}, il s’en est allé.



__[i]/ppas(ppas_adj_accord_elle)__
    ^ *({w_2}[éuitsx]),? elle  @@*
    <<- morphex(\1, ":A.*:[mp]", ":(?:G|E|M1|W|f:[si])|>(?:désoler|pire)/")
    -1>> =suggFemSing(@)                                                    # Si cet adjectif se réfère au pronom « elle », l’adjectif devrait être au féminin singulier.








|
<







 







>
>







|


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







 







|
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



|



|



|







 







|
<
<
<
<


<
<
<
<
<
>







 







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|
<
<
<
<


|
<
<
<
<







 







|







 







|










|


|


|







 







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







 







|




>
>
>
>







 







|



|



|



|







 







>
>
>
>
>
>
>
>
>







 







|
|







 







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







 







>
>







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


|
|
|
|
|
|
|
|
|


|
|
|
|
|
|
|
|
|







 







|







 







|







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







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







 







<
<
<
<
<
<
<
<
<







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







|



>







2138
2139
2140
2141
2142
2143
2144
2145

2146
2147
2148
2149
2150
2151
2152
....
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
....
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
....
2291
2292
2293
2294
2295
2296
2297
2298




2299
2300





2301
2302
2303
2304
2305
2306
2307
2308
....
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
....
2379
2380
2381
2382
2383
2384
2385
2386




2387
2388
2389




2390
2391
2392
2393
2394
2395
2396
....
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
....
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
....
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
....
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
....
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
....
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
....
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
....
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
....
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
....
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
....
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
....
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
....
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
....
8790
8791
8792
8793
8794
8795
8796

















8797
8798
8799
8800
8801
8802
8803
8804
8805
.....
11037
11038
11039
11040
11041
11042
11043









11044
11045
11046
11047
11048
11049
11050
.....
11636
11637
11638
11639
11640
11641
11642










































11643
11644
11645
11646
11647
11648
11649
.....
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
@@@@
@@@@GRAPH: graphe0                                                                                 _
@@@@
@@@@
@@@@
@@@@

!!!! Verbes composés                                                                                   !!


__tag_verbes_composés_interrogatifs__
    ~\w-[jJ]e$
        <<- />> -je|VCint

    ~\w-[tT]u$
        <<- />> -tu|VCint
................................................................................
    ~\w-[eE]lles?$
        <<- \1.endswith("e") />> -elle|VCint
        <<- __else__ />> -elles|VCint

    ~\w-[oO]n$
        <<- />> -on|VCint


__tag_verbes_composés_interrogatifs_impératifs__
    ~\w-[nN]ous$
        <<- />> -nous|VCint

    ~\w-[vV]ous$
        <<- />> -vous|VCint


__tag_verbes_composés_impératifs__
    ~\w-l(?:es?|a)-(?:[mt]oi|nous|leur)$
        <<- />> -COD-COI|VCimp

    ~\w-le$
        <<- />> -le|-COD|VCimp

    ~\w-les$
        <<- />> -les|-COD|VCimp

    ~\w-la$
        <<- />> -la|-COD|VCimp

    ~\w-moi$
        <<- />> -moi|-COI|VCimp

    ~\w-toi$
        <<- />> -toi|-COI|VCimp

    ~\w-lui$
        <<- />> -lui|-COI|VCimp

    ~\w-leur$
        <<- />> -leur|-COI|VCimp



@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: graphe1                                                                                 _
................................................................................
#TEST: Il y a un {{doublon doublon}}.




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

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

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

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

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

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

    ~^\d+e$
        <<- /typo/ 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/ 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ᵉ


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

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

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

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

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

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

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

    ~^\d+$  [e|è|ième|ieme|ème|eme]




        <<- /typo/ ->> \1ᵉ          # Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271






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

    ~^\d+(?:è|i?[èe]me)s?$
        <<- /typo/ \0.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: 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
        <<- /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

    Ire
        <<- /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

    Ires
        <<- /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

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

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

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

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

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

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

TEST: François {{Ier}}                          ->> Iᵉʳ
TEST: c’est le {{IIe}} siècle                   ->> IIᵉ


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

    I iers
    Iiers
        <<- /typo/ ->> Iᵉʳˢ         # Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
................................................................................
    IInde
        <<- /typo/ ->> IIᵈᵉ         # Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

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

    ~^[IVXLCM]{1,10}$  [e|è|ième|ieme|ème|eme]




        <<- /typo/ ->> \1ᵉ          # Nombre ordinal romain singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCM]{1,10}$  [es|ès|ièmes|iemes|èmes|emes]




        <<- /typo/ ->> \1ᵉˢ         # Nombre ordinal romain pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCM]{1,10}(?:è|i?[èe]me)s?$
        <<- /typo/ not morph(\1, ":G") >>>
        <<- \0.endswith("s")
        ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ" # Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
        <<- __else__
................................................................................
TEST: Les {{va-t-en guerre}} sont de sortie.
TEST: Elle va t’en donner, des devoirs.


# est-ce … ?
__tu_est_ce__
    est ce  @:¬:N.*:[me]:[si]|>qui/
        <<- /tu/ morph(<1, ":Cs|<start>") and space_after(\1, 1, 1) -1:2>> est-ce                   # S’il s’agit d’une interrogation, il manque un trait d’union.

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.

................................................................................
TEST: Dès lors qu’on sait comment s’y prendre, aucune raison de faillir.



!!!! Virgules                                                                                     !!

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

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


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

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

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

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


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

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

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

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

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

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


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

    sa  @:(?:Y|[123][sp])¬:(?:N.*:[fe]|A|W)
        <<- /conf/ \2.islower() >>>
................................................................................


__conf_à_a_après_verbes__
    @:V¬:[YGNAWM]  a
        <<- /conf/ not tag_before(\1, "ce_que")
        -2>> à                                  # Confusion probable : “a” est la conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|http://fr.wiktionary.org/wiki/%C3%A0

    [/VCint|/VCimp]  a
        <<- /conf/ -2>> à                       # Confusion : “a” est la conjugaison du verbe “avoir”. Pour la préposition, écrivez “à”.|http://fr.wiktionary.org/wiki/%C3%A0

TEST: Vient-on {{a}} la maison demain ?
TEST: Arrivait-elle {{a}} le manger ?
TEST: Dis-moi {{a}} quelle heure on mange.
TEST: elle croit que dans tous les cas de figure il pense {{a}} sa fille.
TEST: Ce que je mange a un goût de surgelé.



__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.
................................................................................
    >être  d’  >avantage  @:[NAQ]¬:G
        <<- /conf/ -2:3>> davantage                                                 # Confusion possible : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

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

    [/-je|/-tu|/-il|/-on]  d’  >avantage
        <<- /conf/ not morph(\1, ">(?:profiter|bénéficier)/", 0, -3) and not morph(>1, ">(?:financi[eè]re?|pécuni(?:er|aire)|sociaux)s?/")
        -2:3>> davantage                                                            # Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

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

    [/-elle|/-nous|/-vous]  d’  >avantage
        <<- /conf/ not morph(\1, ">(?:profiter|bénéficier)/", 0, -5) and not morph(>1, ">(?:financi[eè]re?|pécuni(?:er|aire)|sociaux)s?/")
        -2:3>> davantage                                                            # Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”…

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

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

TEST: ils ont peu {{davantage}} à vivre ici.
................................................................................
TEST: attaqué sur son {{flan}} droit
TEST: elle possède une maison à {{flan}} de colline.
TEST: étendu sur son {{flan}}.
TEST: Ce sale {{tir-au-flan}} le paiera cher.
TEST: le flan est une pâtisserie.
TEST: versez du caramel sur le flan.


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

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


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

    golf persique
................................................................................

# la / là
__conf_la_là!7__
    la  [l’|d’|n’|m’|t’|s’|c’|ç’|j’|qu’|lorsqu’|puisqu’|quoiqu’]
    la  @:G¬:(?:[NA]:[ef]|W)|>(?:lui|leur|votre|notre|voilà|voici|plupart|quell?e?s?)/
        <<- /conf/ not \1.isupper() and not \2.isupper() and not morph(<1, ":E|>le/") -1>> là       # Confusion probable. Écrivez “là” si vous voulez dire “ici”.

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

TEST: nous serions encore {{la}} l’année prochaine
TEST: en reprenant le chandail de John {{la}} où elle l’avait abandonné.
TEST: Ce {{fait-la}} ne peut être ignoré.
TEST: la peu efficace sensibilité
TEST: c’est toujours la même histoire
TEST: c’est la moins habile de toutes
................................................................................
TEST: elle sans y penser
TEST: elle sans vergogne
TEST: elle sans la condamner
TEST: elles sans un sou en poche
TEST: elles sans grandes convictions
TEST: elle c’en était trop (TODO : proposer une virgule)


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

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


__conf_soi_soit_soie__
    [chez|sur|avec|pour] (soit)
    don de (soit)
        <<- /conf/ not after(" soit ") -1>> soi                                                     # Confusion probable.

    en soit
        <<- /conf/ morph(>1, ":[GY]|<end>") and not before("(?i)quel(?:s|les?|) qu $|on $|il $") and not after(" soit ")
        -2>> soi                                                                                    # Confusion probable.

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

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

TEST: chez {{soit}}, c’est presque toujours mieux.
TEST: ce n’est pas la philosophie en {{soit}} qui est problématique
TEST: quel que {{soie}} sa pensée, je refuse d’y accorder de l’attention.
TEST: Penser par {{soit même}}…
TEST: S’aimer {{soit-même}}, c’est le début d’une grande histoire d’amour. (Oscar Wilde)
TEST: Je regrette que l’on en soit encore à des considérations que je croyais dépassées
TEST: Quoi qu’il en soit


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

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

TEST: {{soi}} je vais au cinéma, {{soi}} je m’abstiens.
TEST: {{soie}} t’arrives avant tout le monde.
TEST: Quels que {{soi}} les problèmes, on peut les surmonter.


# son / sont
__conf_son_sont__
    [ne|me|te|se] son
        <<- /conf/ -2>> sont    # Confusion : “son” est un déterminant ou un nom masculin. Le verbe “être” à la 3ᵉ personne du pluriel s’écrit “sont”.

    ne [le|leur|leurs|lui|nous|vous] son
................................................................................
    au sens [figuré|large|propre]
    au surplus
    au ~[xXvViI]+[eᵉ] siècle
    au-delà du descriptible
    au-dessus [de|d’] {pronom_obj}
    aujourd’hui
    auparavant
    ?tout¿ aussi
    aussitôt
    ?tout¿ au fond [de|d’] {pronom_obj}
    aux [abois|leurs|mien|miens|mienne|miennes|tien|tiens|tienne|tiennes|sien|siens|sienne|siennes|nôtres|vôtres]
    autant que [nécessaire|possible|prévu]
    autant que faire se peut
    autour [de|d’] {pronom_obj}
    autrement dit
    av. J.-C.
................................................................................

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


__purge_après_être__
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ [bon|meilleur] marché
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ avant tout
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ cousin et cousine
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ de passage
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ du moins
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ en partie
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ frère et sœur
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ mari et femme
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ mission impossible
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ monnaie courante
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ papa et maman
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ partie [intégrante|prenante]
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ pieds et poings liés
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ pieds nus
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ père et mère
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ somme toute
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ sous peu
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ tous [deux|trois]
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ un jour
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ à jamais
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point]
        <<- ~2:0>> *

    /VCint ?[pas|jamais|plus|guère|point]¿ [bon|meilleur] marché
    /VCint ?[pas|jamais|plus|guère|point]¿ avant tout
    /VCint ?[pas|jamais|plus|guère|point]¿ cousin et cousine
    /VCint ?[pas|jamais|plus|guère|point]¿ de passage
    /VCint ?[pas|jamais|plus|guère|point]¿ du moins
    /VCint ?[pas|jamais|plus|guère|point]¿ en partie
    /VCint ?[pas|jamais|plus|guère|point]¿ frère et sœur
    /VCint ?[pas|jamais|plus|guère|point]¿ mari et femme
    /VCint ?[pas|jamais|plus|guère|point]¿ mission impossible
    /VCint ?[pas|jamais|plus|guère|point]¿ monnaie courante
    /VCint ?[pas|jamais|plus|guère|point]¿ papa et maman
    /VCint ?[pas|jamais|plus|guère|point]¿ partie [intégrante|prenante]
    /VCint ?[pas|jamais|plus|guère|point]¿ pieds et poings liés
    /VCint ?[pas|jamais|plus|guère|point]¿ pieds nus
    /VCint ?[pas|jamais|plus|guère|point]¿ père et mère
    /VCint ?[pas|jamais|plus|guère|point]¿ somme toute
    /VCint ?[pas|jamais|plus|guère|point]¿ sous peu
    /VCint ?[pas|jamais|plus|guère|point]¿ tous [deux|trois]
    /VCint ?[pas|jamais|plus|guère|point]¿ un jour
    /VCint ?[pas|jamais|plus|guère|point]¿ à jamais
    /VCint [pas|jamais|plus|guère|point]
        <<- morphVC(\1, ">(?:être|devenir|rester)") ~2:0>> *

    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ beaucoup
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ bien [entendu|sûr]
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ dans [l’|leur|son] ensemble
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ [à|en] ce moment  ?précis¿
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ [à|en] cet instant ?précis¿
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ sans peine
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ un [moment|peu|minimum]
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ un petit peu
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ un tout petit peu
        <<- morph(>1, ":[QY]") ~2:0>> *

    /VCint ?[pas|jamais|plus|guère|point]¿ beaucoup
    /VCint ?[pas|jamais|plus|guère|point]¿ bien [entendu|sûr]
    /VCint ?[pas|jamais|plus|guère|point]¿ dans [l’|leur|son] ensemble
    /VCint ?[pas|jamais|plus|guère|point]¿ [à|en] ce moment  ?précis¿
    /VCint ?[pas|jamais|plus|guère|point]¿ [à|en] cet instant ?précis¿
    /VCint ?[pas|jamais|plus|guère|point]¿ sans peine
    /VCint ?[pas|jamais|plus|guère|point]¿ un [moment|peu|minimum]
    /VCint ?[pas|jamais|plus|guère|point]¿ un petit peu
    /VCint ?[pas|jamais|plus|guère|point]¿ un tout petit peu
        <<- morphVC(\1, ">(?:être|devenir|rester)", 0, -4) and morph(>1, ":[QY]") ~2:0>> *

    on ne peut [plus|moins]
    on ne peut pas [plus|moins]
    plus que
        <<- morph(<1, ":(?:V0e|N)") and morph(>1, ":[AQ]") ~>> *

................................................................................
    >avoir  [pas|jamais|plus|guère|point]
    >avoir  ?[pas|jamais|plus|guère|point]¿  en partie
    >avoir  ?[pas|jamais|plus|guère|point]¿  tous [deux|trois]
    >avoir  ?[pas|jamais|plus|guère|point]¿  somme toute
        <<- ~2:0>> *

    >avoir  ?[pas|jamais|plus|guère|point]¿  beaucoup
    >avoir  ?[pas|jamais|plus|guère|point]¿  bien [entendu|sûr]
    >avoir  ?[pas|jamais|plus|guère|point]¿  dans [leur|l’|son] ensemble
    >avoir  ?[pas|jamais|plus|guère|point]¿  à cet [instant|endroit] ?précis¿
    >avoir  ?[pas|jamais|plus|guère|point]¿  à ce moment ?précis¿
    >avoir  ?[pas|jamais|plus|guère|point]¿  sans peine
    >avoir  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    >avoir  ?[pas|jamais|plus|guère|point]¿  un minimum
    >avoir  ?[pas|jamais|plus|guère|point]¿  un peu
................................................................................
    /VCint  [pas|jamais|plus|guère|point]
    /VCint  ?[pas|jamais|plus|guère|point]¿  en partie
    /VCint  ?[pas|jamais|plus|guère|point]¿  tous [deux|trois]
    /VCint  ?[pas|jamais|plus|guère|point]¿  somme toute
        <<- morphVC(\1, ":V0a") ~2:0>> *

    /VCint  ?[pas|jamais|plus|guère|point]¿  beaucoup
    /VCint  ?[pas|jamais|plus|guère|point]¿  bien [entendu|sûr]
    /VCint  ?[pas|jamais|plus|guère|point]¿  dans [leur|l’|son] ensemble
    /VCint  ?[pas|jamais|plus|guère|point]¿  à cet [instant|endroit] ?précis¿
    /VCint  ?[pas|jamais|plus|guère|point]¿  à ce moment ?précis¿
    /VCint  ?[pas|jamais|plus|guère|point]¿  sans peine
    /VCint  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    /VCint  ?[pas|jamais|plus|guère|point]¿  un minimum
    /VCint  ?[pas|jamais|plus|guère|point]¿  un peu
................................................................................
    /VCint  ?[pas|jamais|plus|guère|point]¿  voix au chapitre
        <<- morphVC(\1, ":V0a") ~2:0>> *

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


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


__purge_avant_adjectifs_adverbes__
    le  @:[NAQ].*:[me]¬:G  le  plus  @:A.*:[me]
        <<- ~3:4>> *

    la  @:[NAQ].*:[fe]¬:G  la  plus  @:A.*:[fe]
        <<- ~3:4>> *

    [les|mes|tes|ses|nos|vos|leurs]  @:[NA].*:[pi]¬:[123][sp]  les  plus  @:A.*:[pi]
        <<- ~3:4>> *

    [>être|>avoir]  le  [plus|moins]  @:A¬:([me]:[si]|G)
        <<- morph(\1, ":V") ~2:3>> *

    bien sûr
        <<- not morph(>1, "|de|d’|") ~>> *

    à peu près   @:[AW]
        <<- ~1:3>> *

    à [demi|peine]              @:[AW]
    [super|fort] [bien|mal]     @:[AW]
    depuis peu                  @:[AW]
    quelque peu                 @:[AW]
    pas très                    @:[AW]
        <<- ~1:2>> *

    un ?petit¿  peu ?[plus|moins]¿
        <<- morph(>1, ":[AW]") ~>> *

    [bien|mal|fort|plus|moins] @:[AW]
        <<- ~1>> *

    si  @:[AW]
        <<- not (\2 == "bien" and value(>1, "|que|")) ~1>> *

    un [brin|chouia|chouïa|rien|minimum|soupçon|tantinet]  ?trop¿
        <<- morph(>1, ":A", ":G") ~>> *

    [assez|trop]  @:[AW]¬:[123][sp]
        <<- ~1>> *


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

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

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

    ~.ment$  ?[parlant|pas]¿
        <<- morph(\1, ":W", ":(?:3p|N)") ~>> *



@@@@
@@@@END_GRAPH                                                                                      _
@@@@



# tous / tout / toute / toutes
__[i](p_tout_déterminant_masculin)__        (tout) (?:le|cet?|[mts]on) @@0              <<- ~1>> *
__[i](p_toute_déterminant_féminin)__        (toute) (?:la|cette|[mts]a) @@0             <<- ~1>> *
__[i](p_tous_toutes_déterminant_pluriel)__  (tou(?:te|)s) (?:[ldscsmt]es|[nv]os) @@0    <<- ~1>> *


# après
................................................................................
!!
!!!! Groupe nominal (1)                                                                           !!
!!
!!

#### 1 mot


















__[i]/gn(gn_l_accord)__
    l’({w_2})  @@$
    <<- morphex(\1, ":[NAQ].*:p", ":[123][sp]|:[si]")
    -1>> =suggSing(@)                                                                               # Accord de nombre erroné :  « \1 » devrait être au singulier.

TEST: toute l’importance de l’{{accords}} musical.


## Accords
................................................................................
__[i]/conf(conf_glaciaire)__
    ères? (glacières?) @@$ <<- -1>> glaciaire                                   # Confusion : une glacière est un contenant préservant le froid.

TEST: Passe-moi la glacière, s’il te plaît.
TEST: Autrefois, il y eut plusieurs ères {{glacières}}.
TEST: dans la {{glaciaire}}











# gène / gêne
__[i]/conf(conf_sans_gêne)__
    sans[- ]gènes? <<- ->> sans-gêne                                      # Confusion. Les gènes sont des éléments des chromosomes. Pour le synonyme d’embarras, écrivez “gêne”.
__[i]/conf(conf_gènes)__
    (?:[dmtsc]es|[nv]os|leurs) (gênes) @@$ <<- -1>> gènes                 # Confusion probable. Les gènes sont des éléments des chromosomes. Pour le synonyme d’embarras, écrivez “gêne”.

................................................................................
__[i]/conf(conf_s_ensuivre)__
    s’en (sui\w+) @@$ <<- morph(\1, ">suivre/", False) ->> s’en\1                         # Verbe « s’ensuivre ».

TEST: {{S’en suivit}} une guerre de tous les instants.
TEST: {{S’en suivre}}.













































# tâche / tache (de chocolat / rousseur / vin / sang / café / gras / graisse / huile / etc.)
__[i]/conf(conf_tache_de_qqch)__
    (tâches?) d(?:e +|’)({w_2})  @@0,$
    <<- morphex(\2, ":N", ":[GMY]|>(?:fonds?|grande (?:envergure|ampleur|importance)|envergure|ampleur|importance|départ|surveillance)/") and not before("accompl|dél[éè]gu")
    -1>> =\1.replace("â", "a")
    # Confusion probable. Une tâche est un travail à accomplir. Pour une salissure, une altération, une marque, une coloration… employez “tache”.
................................................................................
    -1>> =suggSing(@)                                                       # Si cet adjectif se réfère au pronom « \2 », l’adjectif devrait être au singulier (et accordé en genre).

TEST: {{Découragés}}, je suis parti.


__[i]/ppas(ppas_adj_accord_il)__
    ^ *({w_2}[es]),? il  @@*
    <<- morphex(\1, ":A.*:[fp]", ":(?:G|E|M1|W|m:[si])") and not after("^ y a")
    -1>> =suggMasSing(@)                                                    # Si cet adjectif se réfère au pronom « il », l’adjectif devrait être au masculin singulier.

TEST: — {{Déçue}}, il s’en est allé.
TEST: Lancés il y a plus de 13 ans, le 14 février 2001, ces outils


__[i]/ppas(ppas_adj_accord_elle)__
    ^ *({w_2}[éuitsx]),? elle  @@*
    <<- morphex(\1, ":A.*:[mp]", ":(?:G|E|M1|W|f:[si])|>(?:désoler|pire)/")
    -1>> =suggFemSing(@)                                                    # Si cet adjectif se réfère au pronom « elle », l’adjectif devrait être au féminin singulier.