Grammalecte  Check-in [1e2de42383]

Overview
Comment:[fr] faux positifs et ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 1e2de42383bc7ee07f98b88ac55ee3ffe0c60d90aebff1feaf1cdb0b5cd2163d
User & Date: olr on 2021-01-29 11:51:27
Other Links: manifest | tags
Context
2021-01-29
14:34
[core] change comment to avoid useless code validator warnings check-in: 0df82b3083 user: olr tags: core, trunk
11:51
[fr] faux positifs et ajustements check-in: 1e2de42383 user: olr tags: fr, trunk
2021-01-26
14:44
[core][fr] avoid and check suggestions duplicates check-in: 624e793673 user: olr tags: core, fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [01736fd21b] to [d3d971c568].

952
953
954
955
956
957
958


959
960
961

962
963
964
965
966
967
968
....
1136
1137
1138
1139
1140
1141
1142

1143
1144
1145
1146
1147
1148
1149
....
1331
1332
1333
1334
1335
1336
1337

1338
1339
1340
1341
1342
1343
1344
....
8695
8696
8697
8698
8699
8700
8701





8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712


8713
8714
8715
8716
8717
8718
8719
.....
11668
11669
11670
11671
11672
11673
11674








11675
11676
11677
11678
11679
11680
11681
.....
18717
18718
18719
18720
18721
18722
18723
18724
18725
18726

18727
18728
18729
18730
18731
18732
18733

18734
18735
18736
18737
18738
18739
18740
18741
.....
25361
25362
25363
25364
25365
25366
25367

25368
25369
25370
25371
25372
25373
25374
.....
30134
30135
30136
30137
30138
30139
30140

30141
30142
30143
30144
30145
30146
30147
.....
30635
30636
30637
30638
30639
30640
30641
30642
30643
30644
30645
30646
30647
30648
30649
.....
30675
30676
30677
30678
30679
30680
30681
30682
30683
30684
30685
30686
30687
30688
30689
30690
30691
30692
30693
30694
30695
30696
30697
30698
30699
30700
30701
30702
30703
30704
30705
30706
30707
30708
.....
30714
30715
30716
30717
30718
30719
30720

30721
30722
30723
30724
30725
30726
30727
.....
34142
34143
34144
34145
34146
34147
34148

34149
34150
34151
34152
34153
34154
34155
!!
!!!! Ponctuation de fin de paragraphe                                                             !!
!!
!!

__[i>/poncfin(poncfin_règle1)__
    ({w_1}) *$  @@0


        <<- before("\\w+(?:\\.|[   ][!?]) +(?:[A-ZÉÈÎ]\\w+|[ÀÔ])") -1>> \1.|\1 !|\1 ?               && Il semble manquer une ponctuation finale (s’il s’agit d’un titre, le point final n’est pas requis).

TEST: __poncfin__ Vraiment. Quel {{ennui}}                                  ->> ennui.|ennui !|ennui ?

TEST: Internet : le nouvel eldorado
TEST: OMC-FMI : Les nouveaux maîtres du monde


!!
!!
!!!! Espaces manquants                                                                            !!
................................................................................
TEST: une température de {{22,4 °C}}                    ->> 22,4 °C
TEST: il en veut {{18kg}}                               ->> 18 kg
TEST: il me le propose pour {{243 gCO2/kWh}}            ->> 243 gCO2/kWh
TEST: il me le propose pour {{243,4 gCO2/kWh}}          ->> 243,4 gCO2/kWh
TEST: {{40 MHz}}                                        ->> 40 MHz
TEST: {{100 Ah}}                                        ->> 100 Ah
TEST: {{1001 ans}}                                      ->> 1 001 ans

TEST: en l’an 2000 Urgondorletroll eut une idée
TEST: 1998 s’annonce grandiose.
TEST: il y en a 3,43 milliards.
TEST: je veux 200 euros.


__[s]/typo(typo_math)__
................................................................................
TEST: {{12010}} kg                              ->> 12 010
TEST: {{12010}} m²                              ->> 12 010
TEST: {{12010}} dB                              ->> 12 010
TEST: {{12010}} %                               ->> 12 010
TEST: {{11010}} min                             ->> 11 010
TEST: {{3240}} µA                               ->> 3 240
TEST: 1111 0011,01 (binaire)



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

................................................................................
TEST: celle qui à contrario nous a foutu dans la merde.
TEST: ceux qui à Somewhere se sont si mal illustrés.
TEST: en à peine vingt ans
TEST: Les publicités sont peu à peu ouvertes et retirées de leur coffrage.


__conf_à_a_infinitif__





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

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




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

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

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










# mat / mât
__conf_mat_mât__
    >échec et >mât
        <<- /conf/ -3>> mat                                         && Confusion. Un mât est un poteau portant des voiles ou un drapeau.|https://fr.wiktionary.org/wiki/mat

    [grand|grands] [mat|mats|mas]
................................................................................

    [>homme|>femme|>garçon|>garçonnet|>fille|>fillette|>vieillard|>acteur|>architecte|>auteur|>artiste|>chef|>cinéaste|>cuisinier|>dessinateur|>écrivain|>graphiste|>ingénieur|>joueur|>musicien|>peintre|>photographe|>réalisateur]
        || [de|d’] grand talent
        <<- ~2:0>> *


__purge_syntagmes_nominaux_matière__
    *WORD  en  acier  ?[galvanisé|inoxydable|trempé]¿
    *WORD  en  chêne  ?massif¿
    *WORD  en  bois   ?vernis¿

    *WORD  en  [alu|aluminium|bois|contreplaqué|coton|cuir|cuivre|émail|étain|fer|fibrociment|fibro-ciment|inox|laiton|lin|métal|nacre|osier|plastique|plâtre|plomb|polycarbonate|polymère|verre|zinc]
        || ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿
        <<- morph(\1, ":N", ":G") and not morph(>1, ":A.*:[me]:[si]") ~2:0>> *

    *WORD  en  pierre
    *WORD  en  pierre de taille
    *WORD  en  soie

    *WORD  en  terre  ?[battue|cuite]¿
        <<- morph(\1, ":N", ":G") and not morph(>1, ":A.*:[fe]:[si]") ~2:0>> *

TEST: deux câbles en acier situés de part et d’autre du chariot


__purge_locutions_adjectivales__
    ancienne [formule|génération]
................................................................................
        <<- /gn/ ( (morph(\2, ":p", "*") and morph(\3, ":s", "*")) or (morph(\2, ":s", "*") and morph(\3, ":p", "*")) ) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      && Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    && Accord de nombre erroné avec « \3 ».

TEST: en homme {{courtoise}}                                    ->> courtois
TEST: en {{grande}} {{avocat}}                                  ->> grand|||avocate
TEST: en {{femme}} {{cultivées}}                                ->> femmes|||cultivée



__gn_pfx_à_par_pour_sans_2m__
    [à|par|pour|sans]  @:[NA]¬:[YG]  @:[NA]¬:G
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
................................................................................
TEST: tu es sot et {{ignorants}}                                                                    ->> ignorant
TEST: elle est belle et {{intelligent}}                                                             ->> intelligente
TEST: elle sut apparaître grande et {{humbles}} à la fois                                           ->> humble
TEST: ils devenaient forts et {{humble}}                                                            ->> humbles
TEST: ils crurent avoir été trompés et {{volé}}                                                     ->> volés
TEST: elles déclareront être restées calmes et {{attentive}}                                        ->> attentives
TEST: nous imaginons devenir riches et {{connu}}                                                    ->> connus



__ppas_être_confusion__
    ne [pas|jamais] être @:(?:V(?:1.*:Y|2.*:Ip.*:3s|3.*:Is.*:3s)|2p)
        <<- /ppas/ --1>> =suggVerbPpas(\-1)                                                         && Après “ne \2 être”, il faut un participe passé.

    avoir [pu|cru|pensé|imaginé] être @:(?:V(?:1.*:Y|2.*:Ip.*:3s|3.*:Is.*:3s)|2p)
................................................................................
    [un|le|ce|cet]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[fp]¬:(?:G|W|É|[me]:[si])
        <<- /ppas/ morph(\2, ":[NA].*:m") --1>> =suggVerbPpas(\-1, ":m:s")
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [une|la|cette|ma|ta|sa]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[mp]¬:(?:G|W|É|[fe]:[si])
    [une|la|cette|ma|ta|sa]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[mp]¬:(?:G|W|É|[fe]:[si])
        <<- /ppas/ morph(\2, ":[NA].*:f", ">(?:fois|impression)/") and not morph(>1, ":(?:Y|Ov|D|ÉV)|>qu[e’]/")
            and not ((value(\-1, "|décidé|essayé|tenté|oublié|imaginé|supplié|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|échoué|") and value(>1, "|à|")))
        --1>> =suggVerbPpas(\-1, ":f:s")
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au féminin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [l’|mon|ton|son|notre|votre|leur]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
    [l’|mon|ton|son|notre|votre|leur]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
        <<- /ppas/ morph(\2, ":[NA].*:m", ":[fe]") and morph(\-1, ":Q.*:[fp]", ":[me]:[si]") --1>> =suggVerbPpas(\-1, ":m:s")
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
................................................................................
TEST: en ayant l’impression qu’il a beaucoup réussi


__ppas_det_plur_COD_que_avoir__
    [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
    [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
        <<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
            and not ((value(\-1, "|décidé|essayé|tenté|oublié|imaginé|supplié|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|échoué|") and value(>1, "|à|")))
            and morph(\2, ":[NA]") >>>
        <<- /ppas/ morph(\2, ":[NA].*:m", ":[fe]") and morph(\-1, ":Q.*:[fs]", ":[me]:[pi]") --1>> =suggMasPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
        <<- /ppas/ __else__ and morph(\2, ":[NA].*:f", ":[me]") and morph(\-1, ":Q.*:[ms]", ":[fe]:[pi]") --1>> =suggFemPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au féminin pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
        <<- /ppas/ __else__ and morph(\2, ":[NA].*:[pi]") and morph(\-1, ":Q.*:s", ":[pi]") --1>> =suggPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [certains|maints]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[fs]¬:[GWÉ]
    [certains|maints]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[fs]¬:[GWÉ]
        <<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
            and not ((value(\-1, "|décidé|essayé|tenté|oublié|imaginé|supplié|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|échoué|") and value(>1, "|à|")))
            and morph(\2, ":[NA].*:[me]:[pi]") --1>> =suggMasPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [certaines|maintes]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[ms]¬:[GWÉ]
    [certaines|maintes]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[ms]¬:[GWÉ]
        <<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
            and not ((value(\-1, "|décidé|essayé|tenté|oublié|imaginé|supplié|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|échoué|") and value(>1, "|à|")))
            and morph(\2, ":[NA].*:[fe]:[pi]") --1>> =suggFemPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au féminin pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: Les documents qu’ils ont {{acheté}}.                          ->> achetés
TEST: les fleurs que j’ai {{acheté}}                                ->> achetées
TEST: les psychologues que tu as {{engagé}}                         ->> engagés
TEST: mes appartements que ma mère a {{loué}}                       ->> loués
................................................................................
TEST: ça faisait des années que j’avais délaissé ce lieu
TEST: Les électeurs de Donald que l’on avait rencontrés jusque-là boivent l’eau d’une seule fontaine : Fox News et les sites et radios conservateurs.
TEST: des choses que j’aurais oublié d’aborder.
TEST: C’EST EN REGARDANT DES BALLETS QUE J’AI EU ENVIE DE CONCEVOIR DES SPECTACLES.
TEST: les emmerdements sont pléthore.
TEST: Marina m’explique dans ses lettres qu’elle a échoué à séduire le fils du duc.
TEST: il m’explique dans ses lettres qu’il a réussi à vaincre son cancer.



__ppas_ceque_pronom_avoir__
    ce  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|ça|cela|ceci]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[fp]¬:(?:G|W|[me]:[si])
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":m:s")
        && Accord avec le COD “ce”. Le participe passé devrait être au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

................................................................................
TEST: Ça a l’air de t’aller.
TEST: Et je m’en sors.
TEST: C’est à chacun d’entre nous de suivre le modèle d’Amos.
TEST: C’est toi qui voulais y aller.
TEST: je ne suis qu’une joueuse en robe de soirée.
TEST: Tu ne fais qu’aggraver les choses.
TEST: Que veut-il ? Vous parler du boulot.

TEST: La question, c’est qui est au courant.
TEST: Ce pourrait être la fin.
TEST: Tu t’en es tiré.
TEST: à l’annonce d’un nouvel impôt – très souvent prétexte à…
TEST: la voix mystérieuse de l’eau qui court et chuchote le long du bateau.
TEST: Nous agissons au jugé.
TEST: les fêtes battent leur plein.







>
>
|

|
>







 







>







 







>







 







>
>
>
>
>
|
|
|
|







>
>







 







>
>
>
>
>
>
>
>







 







|
|
|
>
|
|


<
|
|
>
|







 







>







 







>







 







|







 







|











|






|







 







>







 







>







952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
....
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
....
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
....
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
.....
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
.....
18737
18738
18739
18740
18741
18742
18743
18744
18745
18746
18747
18748
18749
18750
18751

18752
18753
18754
18755
18756
18757
18758
18759
18760
18761
18762
.....
25382
25383
25384
25385
25386
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
.....
30156
30157
30158
30159
30160
30161
30162
30163
30164
30165
30166
30167
30168
30169
30170
.....
30658
30659
30660
30661
30662
30663
30664
30665
30666
30667
30668
30669
30670
30671
30672
.....
30698
30699
30700
30701
30702
30703
30704
30705
30706
30707
30708
30709
30710
30711
30712
30713
30714
30715
30716
30717
30718
30719
30720
30721
30722
30723
30724
30725
30726
30727
30728
30729
30730
30731
.....
30737
30738
30739
30740
30741
30742
30743
30744
30745
30746
30747
30748
30749
30750
30751
.....
34166
34167
34168
34169
34170
34171
34172
34173
34174
34175
34176
34177
34178
34179
34180
!!
!!!! Ponctuation de fin de paragraphe                                                             !!
!!
!!

__[i>/poncfin(poncfin_règle1)__
    ({w_1}) *$  @@0
        <<- before("\\w+(?:[.]|[   ][!?]) +(?:[A-ZÉÈÎ]\\w+|[ÀÔ])")
            or (\1.istitle() and before("\\w+(?:[.]|[   ][!?]) +$"))
        -1>> \1.|\1 !|\1 ?               && Il semble manquer une ponctuation finale (s’il s’agit d’un titre, le point final n’est pas requis).

TEST: __poncfin__ Vraiment. Quel {{ennui}}                                          ->> ennui.|ennui !|ennui ?
TEST: __poncfin__ Oui. Ça commence le vendredi et finit le dimanche. {{Les}}        ->> Les.|Les !|Les ?
TEST: Internet : le nouvel eldorado
TEST: OMC-FMI : Les nouveaux maîtres du monde


!!
!!
!!!! Espaces manquants                                                                            !!
................................................................................
TEST: une température de {{22,4 °C}}                    ->> 22,4 °C
TEST: il en veut {{18kg}}                               ->> 18 kg
TEST: il me le propose pour {{243 gCO2/kWh}}            ->> 243 gCO2/kWh
TEST: il me le propose pour {{243,4 gCO2/kWh}}          ->> 243,4 gCO2/kWh
TEST: {{40 MHz}}                                        ->> 40 MHz
TEST: {{100 Ah}}                                        ->> 100 Ah
TEST: {{1001 ans}}                                      ->> 1 001 ans
TEST: {{500000 euros}}                                  ->> 500 000 euros
TEST: en l’an 2000 Urgondorletroll eut une idée
TEST: 1998 s’annonce grandiose.
TEST: il y en a 3,43 milliards.
TEST: je veux 200 euros.


__[s]/typo(typo_math)__
................................................................................
TEST: {{12010}} kg                              ->> 12 010
TEST: {{12010}} m²                              ->> 12 010
TEST: {{12010}} dB                              ->> 12 010
TEST: {{12010}} %                               ->> 12 010
TEST: {{11010}} min                             ->> 11 010
TEST: {{3240}} µA                               ->> 3 240
TEST: 1111 0011,01 (binaire)
TEST: avec 500 000 euros


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

................................................................................
TEST: celle qui à contrario nous a foutu dans la merde.
TEST: ceux qui à Somewhere se sont si mal illustrés.
TEST: en à peine vingt ans
TEST: Les publicités sont peu à peu ouvertes et retirées de leur coffrage.


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

TEST: scrupuleux {{a}} n’en toucher qu’une part infime.                             ->> à
TEST: Ne pas hésiter {{a}} {{demander}} des conseils.                               ->> à|||demandé
TEST: Sébastien {{a}} {{demander}} des conseils.                                    ->> à|||demandé
TEST: {{A}} vous lire, on ne sait plus que penser de toutes ces histoires           ->> À
TEST: Chacun de nous, a ajouté Biden, « a le devoir […] de défendre la vérité et de triompher des mensonges ».
TEST: cet homme a le savoir pour seul but dans l’existence


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

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

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


__conf_marge_marche__
    >marche de manœuvre
        <<- /conf/ morph(<1, ":D.*:[fe]") -1>> =\1.replace("ch", "g").replace("CH", "G")    && Confusion. Locution “marge de manœuvre”.|https://fr.wiktionary.org/wiki/marge_de_man%C5%93uvre

TEST: notre {{marche}} de manœuvre                              ->> marge
TEST: une marge de manœuvre


# mat / mât
__conf_mat_mât__
    >échec et >mât
        <<- /conf/ -3>> mat                                         && Confusion. Un mât est un poteau portant des voiles ou un drapeau.|https://fr.wiktionary.org/wiki/mat

    [grand|grands] [mat|mats|mas]
................................................................................

    [>homme|>femme|>garçon|>garçonnet|>fille|>fillette|>vieillard|>acteur|>architecte|>auteur|>artiste|>chef|>cinéaste|>cuisinier|>dessinateur|>écrivain|>graphiste|>ingénieur|>joueur|>musicien|>peintre|>photographe|>réalisateur]
        || [de|d’] grand talent
        <<- ~2:0>> *


__purge_syntagmes_nominaux_matière__
    *WORD  en  acier  ?[galvanisé|inoxydable|trempé]¿       ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿
    *WORD  en  chêne  ?massif¿                              ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿
    *WORD  en  bois   ?vernis¿                              ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿
    *WORD  en  or     ?massif¿                              ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿
    *WORD  en  [alu|aluminium|argent|bois|contreplaqué|coton|cuir|cuivre|émail|étain|fer|fibrociment|fibro-ciment|inox] ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿
    *WORD  en  [inox|laiton|lin|métal|nacre|osier|plastique|plâtre|plomb|polycarbonate|polymère|verre|zinc]             ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿
        <<- morph(\1, ":N", ":G") and not morph(>1, ":A.*:[me]:[si]") ~2:0>> *


    *WORD  en  pierre                       ?[claire|foncée|rouge|verte|brune|marron|jaune|orange|bleue|grise|rose|noire|blanche]¿
    *WORD  en  pierre de taille             ?[claire|foncée|rouge|verte|brune|marron|jaune|orange|bleue|grise|rose|noire|blanche]¿
    *WORD  en  soie                         ?[claire|foncée|rouge|verte|brune|marron|jaune|orange|bleue|grise|rose|noire|blanche]¿
    *WORD  en  terre  ?[battue|cuite]¿      ?[claire|foncée|rouge|verte|brune|marron|jaune|orange|bleue|grise|rose|noire|blanche]¿
        <<- morph(\1, ":N", ":G") and not morph(>1, ":A.*:[fe]:[si]") ~2:0>> *

TEST: deux câbles en acier situés de part et d’autre du chariot


__purge_locutions_adjectivales__
    ancienne [formule|génération]
................................................................................
        <<- /gn/ ( (morph(\2, ":p", "*") and morph(\3, ":s", "*")) or (morph(\2, ":s", "*") and morph(\3, ":p", "*")) ) and not apposition(\2, \3)
        -3>> =switchPlural(\3)                                                                      && Accord de nombre erroné avec « \2 ».
        <<- /gn/ __also__ -2>> =switchPlural(\2)                                                    && Accord de nombre erroné avec « \3 ».

TEST: en homme {{courtoise}}                                    ->> courtois
TEST: en {{grande}} {{avocat}}                                  ->> grand|||avocate
TEST: en {{femme}} {{cultivées}}                                ->> femmes|||cultivée
TEST: une bague ancienne en argent sertie d’une perle noire


__gn_pfx_à_par_pour_sans_2m__
    [à|par|pour|sans]  @:[NA]¬:[YG]  @:[NA]¬:G
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3)                                                                      && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
................................................................................
TEST: tu es sot et {{ignorants}}                                                                    ->> ignorant
TEST: elle est belle et {{intelligent}}                                                             ->> intelligente
TEST: elle sut apparaître grande et {{humbles}} à la fois                                           ->> humble
TEST: ils devenaient forts et {{humble}}                                                            ->> humbles
TEST: ils crurent avoir été trompés et {{volé}}                                                     ->> volés
TEST: elles déclareront être restées calmes et {{attentive}}                                        ->> attentives
TEST: nous imaginons devenir riches et {{connu}}                                                    ->> connus
TEST: Les origines familiales sont plus incertaines que ce qui a été dit, selon ma mère, et difficiles à sonder.


__ppas_être_confusion__
    ne [pas|jamais] être @:(?:V(?:1.*:Y|2.*:Ip.*:3s|3.*:Is.*:3s)|2p)
        <<- /ppas/ --1>> =suggVerbPpas(\-1)                                                         && Après “ne \2 être”, il faut un participe passé.

    avoir [pu|cru|pensé|imaginé] être @:(?:V(?:1.*:Y|2.*:Ip.*:3s|3.*:Is.*:3s)|2p)
................................................................................
    [un|le|ce|cet]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[fp]¬:(?:G|W|É|[me]:[si])
        <<- /ppas/ morph(\2, ":[NA].*:m") --1>> =suggVerbPpas(\-1, ":m:s")
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [une|la|cette|ma|ta|sa]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[mp]¬:(?:G|W|É|[fe]:[si])
    [une|la|cette|ma|ta|sa]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[mp]¬:(?:G|W|É|[fe]:[si])
        <<- /ppas/ morph(\2, ":[NA].*:f", ">(?:fois|impression)/") and not morph(>1, ":(?:Y|Ov|D|ÉV)|>qu[e’]/")
            and not ((value(\-1, "|décidé|essayé|imaginé|ordonné|oublié|supplié|tenté|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|échoué|") and value(>1, "|à|")))
        --1>> =suggVerbPpas(\-1, ":f:s")
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au féminin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [l’|mon|ton|son|notre|votre|leur]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
    [l’|mon|ton|son|notre|votre|leur]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
        <<- /ppas/ morph(\2, ":[NA].*:m", ":[fe]") and morph(\-1, ":Q.*:[fp]", ":[me]:[si]") --1>> =suggVerbPpas(\-1, ":m:s")
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
................................................................................
TEST: en ayant l’impression qu’il a beaucoup réussi


__ppas_det_plur_COD_que_avoir__
    [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
    [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q¬:[GWÉ]
        <<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
            and not ((value(\-1, "|décidé|essayé|imaginé|ordonné|oublié|supplié|tenté|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|échoué|") and value(>1, "|à|")))
            and morph(\2, ":[NA]") >>>
        <<- /ppas/ morph(\2, ":[NA].*:m", ":[fe]") and morph(\-1, ":Q.*:[fs]", ":[me]:[pi]") --1>> =suggMasPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
        <<- /ppas/ __else__ and morph(\2, ":[NA].*:f", ":[me]") and morph(\-1, ":Q.*:[ms]", ":[fe]:[pi]") --1>> =suggFemPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au féminin pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais
        <<- /ppas/ __else__ and morph(\2, ":[NA].*:[pi]") and morph(\-1, ":Q.*:s", ":[pi]") --1>> =suggPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [certains|maints]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[fs]¬:[GWÉ]
    [certains|maints]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[fs]¬:[GWÉ]
        <<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
            and not ((value(\-1, "|décidé|essayé|imaginé|ordonné|oublié|supplié|tenté|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|échoué|") and value(>1, "|à|")))
            and morph(\2, ":[NA].*:[me]:[pi]") --1>> =suggMasPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au masculin pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [certaines|maintes]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|$:M]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[ms]¬:[GWÉ]
    [certaines|maintes]  *WORD  [que|qu’]  $:D¬:R  @:[NA]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[ms]¬:[GWÉ]
        <<- /ppas/ not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
            and not ((value(\-1, "|décidé|essayé|imaginé|ordonné|oublié|supplié|tenté|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|échoué|") and value(>1, "|à|")))
            and morph(\2, ":[NA].*:[fe]:[pi]") --1>> =suggFemPlur(\-1)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au féminin pluriel.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: Les documents qu’ils ont {{acheté}}.                          ->> achetés
TEST: les fleurs que j’ai {{acheté}}                                ->> achetées
TEST: les psychologues que tu as {{engagé}}                         ->> engagés
TEST: mes appartements que ma mère a {{loué}}                       ->> loués
................................................................................
TEST: ça faisait des années que j’avais délaissé ce lieu
TEST: Les électeurs de Donald que l’on avait rencontrés jusque-là boivent l’eau d’une seule fontaine : Fox News et les sites et radios conservateurs.
TEST: des choses que j’aurais oublié d’aborder.
TEST: C’EST EN REGARDANT DES BALLETS QUE J’AI EU ENVIE DE CONCEVOIR DES SPECTACLES.
TEST: les emmerdements sont pléthore.
TEST: Marina m’explique dans ses lettres qu’elle a échoué à séduire le fils du duc.
TEST: il m’explique dans ses lettres qu’il a réussi à vaincre son cancer.
TEST: Certains se souvinrent des documents que Trump avait ordonné de déclassifier


__ppas_ceque_pronom_avoir__
    ce  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|ça|cela|ceci]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:[fp]¬:(?:G|W|[me]:[si])
        <<- /ppas/ --1>> =suggVerbPpas(\-1, ":m:s")
        && Accord avec le COD “ce”. Le participe passé devrait être au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

................................................................................
TEST: Ça a l’air de t’aller.
TEST: Et je m’en sors.
TEST: C’est à chacun d’entre nous de suivre le modèle d’Amos.
TEST: C’est toi qui voulais y aller.
TEST: je ne suis qu’une joueuse en robe de soirée.
TEST: Tu ne fais qu’aggraver les choses.
TEST: Que veut-il ? Vous parler du boulot.
TEST: Vous donner une chance est sa seule motivation.
TEST: La question, c’est qui est au courant.
TEST: Ce pourrait être la fin.
TEST: Tu t’en es tiré.
TEST: à l’annonce d’un nouvel impôt – très souvent prétexte à…
TEST: la voix mystérieuse de l’eau qui court et chuchote le long du bateau.
TEST: Nous agissons au jugé.
TEST: les fêtes battent leur plein.