Grammalecte  Check-in [7d6ba09c48]

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: 7d6ba09c48c2f0ff4987eb7b83842bb8d5d08c4a1e2a71b5878b511d3d102d49
User & Date: olr on 2019-05-27 09:40:33
Other Links: manifest | tags
Context
2019-05-27
09:56
[fx] gc panel: remove full analysis test check-in: 99a4c261d9 user: olr tags: trunk, fx
09:40
[fr] faux positifs et ajustements check-in: 7d6ba09c48 user: olr tags: trunk, fr
2019-05-26
14:35
[misc] SublimeText: color scheme (update) check-in: e95acd9537 user: olr tags: trunk, misc
Changes

Modified gc_lang/fr/rules.grx from [5a8f0b8d78] to [b5b78f23d4].

7730
7731
7732
7733
7734
7735
7736

7737
7738
7739
7740
7741
7742
7743

    moi  [de|d’]  {mois}
        <<- /conf/ -1>> mois                        # Confusion probable. Pour indiquer le douzième d’une année, écrivez “mois”.|https://fr.wiktionary.org/wiki/mois

TEST: au {{moi}} d’avril
TEST: être en repos pour trois {{moi}}.
TEST: 3 {{moi}} de vacances.



# n’est-ce pas - ai / es / est
__conf_n_est_ce_pas__
    n’ [es|ai|aie|aies|et|ait|aient|hé|eh|e|é] [ce|se] pas
    n’ [es-ce|ai-ce|aie-ce|aies-ce|et-ce|ait-ce|aient-ce|hé-ce|eh-ce|e-ce|é-ce] pas
        <<- /conf/ ->> n’est-ce pas                         # Confusion. N’est-ce pas.|https://fr.wiktionary.org/wiki/n%E2%80%99est-ce_pas







>







7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744

    moi  [de|d’]  {mois}
        <<- /conf/ -1>> mois                        # Confusion probable. Pour indiquer le douzième d’une année, écrivez “mois”.|https://fr.wiktionary.org/wiki/mois

TEST: au {{moi}} d’avril
TEST: être en repos pour trois {{moi}}.
TEST: 3 {{moi}} de vacances.
TEST: Dans un délai de quatre {{moi}}.


# n’est-ce pas - ai / es / est
__conf_n_est_ce_pas__
    n’ [es|ai|aie|aies|et|ait|aient|hé|eh|e|é] [ce|se] pas
    n’ [es-ce|ai-ce|aie-ce|aies-ce|et-ce|ait-ce|aient-ce|hé-ce|eh-ce|e-ce|é-ce] pas
        <<- /conf/ ->> n’est-ce pas                         # Confusion. N’est-ce pas.|https://fr.wiktionary.org/wiki/n%E2%80%99est-ce_pas
13519
13520
13521
13522
13523
13524
13525










13526
13527
13528
13529

13530
13531
13532
13533


13534
13535
13536
13537
13538
13539
13540

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











TEST: 00 heure, 01 heure
TEST: il a adopté 1 {{chiens}}.
TEST: 22 {{heure}}
TEST: 3 {{heure}}

TEST: les élèves sont inquiets après une année 2018 compliquée et riche en réformes.
TEST: ils gagneront 300 € maximum.
TEST: il revint en 2005 complètement dévoré par la culpabilité.
TEST: un jeu de 1980 absolument démodé.




##  trouver ça/ceci/cela + adj
__gn_trouver_ça_adj__
    >trouver  [ça|cela|ceci]  @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M)
        <<- /gn/ -3>> =suggMasSing(\3)                                              # Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier).








>
>
>
>
>
>
>
>
>
>




>




>
>







13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554

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

    *NUM  *WORD  *WORD
        <<- /gn/ not value(\2, "|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
            and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">(?:seule|maximum|minimum)/") >>>
        <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
            and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                # Accord de genre erroné entre « \2 » et « \3 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           # Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.

TEST: 00 heure, 01 heure
TEST: il a adopté 1 {{chiens}}.
TEST: 22 {{heure}}
TEST: 3 {{heure}}
TEST: Environ 10 essais {{nucléaire}} ont été réalisés
TEST: les élèves sont inquiets après une année 2018 compliquée et riche en réformes.
TEST: ils gagneront 300 € maximum.
TEST: il revint en 2005 complètement dévoré par la culpabilité.
TEST: un jeu de 1980 absolument démodé.
TEST: elle fut le 13 janvier décapitée
TEST: elles furent le 18 janvier décorées


##  trouver ça/ceci/cela + adj
__gn_trouver_ça_adj__
    >trouver  [ça|cela|ceci]  @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M)
        <<- /gn/ -3>> =suggMasSing(\3)                                              # Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier).

16599
16600
16601
16602
16603
16604
16605
16606
16607
16608
16609
16610
16611
16612
16613
16614
16615










16616
16617
16618
16619
16620
16621
16622
16623
16624
16625
16626
16627
16628
16629
16630
16631
16632
16633
16634
16635
16636
    [un|une] d’ [eux|elles]
    [un|une] d’ entre [nous|vous|eux|elles]
    [un|une] des [nôtres|vôtres]
        <<- ~2:0>> *


__purge_syntagmes_nominaux__
    [à|au|aux|avec|en|lors]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  *WORD  <end>
    [à|au|aux|avec|en|lors]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  *WORD  ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|au|aux|avec|en|lors]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  *WORD  @:[VR]¬:[NAP]
    [à|au|aux|avec|en|lors]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  *WORD  ,  @¬:[NA]
        <<- ~1:4>> *

    [à|au|aux|avec|en|lors]  [des|du]  *WORD  <end>
    [à|au|aux|avec|en|lors]  [des|du]  *WORD  ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|au|aux|avec|en|lors]  [des|du]  *WORD  @:[VR]¬:[NAP]
    [à|au|aux|avec|en|lors]  [des|du]  *WORD  , @¬:[NA]










        <<- ~1:3>> *

    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NAM]¬:[GY]  <end>
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NAM]¬:[GY]  ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NAM]¬:[GY]  @:[VR]¬:[NAP]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NAM]¬:[GY]  , @¬:[NA]
        <<- ~1:2>> *

    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  <end>
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  @:[VR]¬:[NAP]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur] [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  , @¬:[NA]
        <<- ~1:3>> *

    [ce|ton|son] *WORD *WORD
        <<- morph(\2, ":[NA]", ":(?:[123]p|P|X|G)") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *

    [le|la|les|leur|certains|certaines] *WORD *WORD
        <<- morph(\2, ":[NA]", ":(?:[123]p|P|X|G|Y)") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P|M)") >>>







|
|
|
|


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



|
|



<
<
<
<
<
<







16613
16614
16615
16616
16617
16618
16619
16620
16621
16622
16623
16624
16625
16626
16627
16628
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
16644
16645
16646
16647






16648
16649
16650
16651
16652
16653
16654
    [un|une] d’ [eux|elles]
    [un|une] d’ entre [nous|vous|eux|elles]
    [un|une] des [nôtres|vôtres]
        <<- ~2:0>> *


__purge_syntagmes_nominaux__
    [à|au|aux|avec|en|lors|ayant]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]  <end>
    [à|au|aux|avec|en|lors|ayant]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NA]   ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|au|aux|avec|en|lors|ayant]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NA]   @:[VR]¬:[NAP]
    [à|au|aux|avec|en|lors|ayant]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]  ,  @¬:[NA]
        <<- ~1:4>> *

    [à|au|aux|avec|en|lors|ayant]  [des|du]  @:[NAM]  <end>
    [à|au|aux|avec|en|lors|ayant]  [des|du]  @:[NA]   ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|au|aux|avec|en|lors|ayant]  [des|du]  @:[NA]   @:[VR]¬:[NAP]
    [à|au|aux|avec|en|lors|ayant]  [des|du]  @:[NAM]  , @¬:[NA]
        <<- ~1:3>> *

    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|ayant]
        || [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  <end>
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|ayant]
        || [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NA]¬:G   ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|ayant]
        || [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NA]¬:G   @:[VR]¬:[NAP]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|ayant]
        || [un|une|le|la|l’|les|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]¬:G  , @¬:[NA]
        <<- ~1:3>> *

    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NAM]¬:[GY]  <end>
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NA]¬:[GY]   ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NA]¬:[GY]   @:[VR]¬:[NAP]
    [à|avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NAM]¬:[GY]  , @¬:[NA]
        <<- ~1:2>> *







    [ce|ton|son] *WORD *WORD
        <<- morph(\2, ":[NA]", ":(?:[123]p|P|X|G)") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- __else__ ~3>> *

    [le|la|les|leur|certains|certaines] *WORD *WORD
        <<- morph(\2, ":[NA]", ":(?:[123]p|P|X|G|Y)") and morph(\3, ":[NA]", ":(?:G|[123][sp]|P|M)") >>>
20027
20028
20029
20030
20031
20032
20033

20034
20035
20036
20037
20038
20039
20040
    >vouloir  ~..(?:ée?s?|ez)$
        <<- /infi/ not tag(\1, "upron") and morph(\2, ":V", ":M") and not (morph(\1, ":N") and morph(<1, ":D"))
        -2>> =suggVerbInfi(\2)                                                                      # S’il s’agit d’une action à accomplir, le verbe devrait être à l’infinitif.

TEST: il devait {{utilisé}} son temps à bon escient.
TEST: tu dois {{mangé}}
TEST: on va devoir {{mangé}} tout ça.

TEST: Le devoir transcendé par l’amour de son pays.
TEST: un devoir corrigé par plusieurs professeurs.
TEST: Ce n’est plus le chef de l’État qui s’exprime devant députés et sénateurs, mais le chef de la majorité.


__infi_falloir__
    [faut-il|fallait-il|fallut-il|faudra-t-il|faudrait-il]  @:V¬:[YMWG]







>







20045
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20057
20058
20059
    >vouloir  ~..(?:ée?s?|ez)$
        <<- /infi/ not tag(\1, "upron") and morph(\2, ":V", ":M") and not (morph(\1, ":N") and morph(<1, ":D"))
        -2>> =suggVerbInfi(\2)                                                                      # S’il s’agit d’une action à accomplir, le verbe devrait être à l’infinitif.

TEST: il devait {{utilisé}} son temps à bon escient.
TEST: tu dois {{mangé}}
TEST: on va devoir {{mangé}} tout ça.
TEST: Il doit pouvoir {{détectez}} ces erreurs.
TEST: Le devoir transcendé par l’amour de son pays.
TEST: un devoir corrigé par plusieurs professeurs.
TEST: Ce n’est plus le chef de l’État qui s’exprime devant députés et sénateurs, mais le chef de la majorité.


__infi_falloir__
    [faut-il|fallait-il|fallut-il|faudra-t-il|faudrait-il]  @:V¬:[YMWG]