Grammalecte  Check-in [6a42188622]

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

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:6a4218862224a0a749d7251d759104367326384570f1a59e082e7a12f39da889
User & Date: olr 2019-03-17 12:49:47
Context
2019-03-17
16:33
[fr] faux positif check-in: 80b18fcddb user: olr tags: fr, trunk
12:49
[fr] faux positifs et ajustements check-in: 6a42188622 user: olr tags: fr, trunk
2019-03-16
14:38
[fr] faux positif check-in: 4677e40004 user: olr tags: fr, trunk
Changes

Changes to gc_lang/fr/rules.grx.

1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
....
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796

8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
.....
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
.....
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
.....
15448
15449
15450
15451
15452
15453
15454
15455
15456

15457
15458
15459
15460
15461
15462


15463
15464
15465
15466
15467
15468
15469
15470
15471
.....
15479
15480
15481
15482
15483
15484
15485

15486
15487
15488
15489
15490
15491
15492
15493
15494
15495

15496
15497
15498
15499
15500
15501
15502
.....
16850
16851
16852
16853
16854
16855
16856

16857
16858
16859
16860
16861
16862
16863
    [un|une]  *WORD
        <<- not value(<1, "|l’|") and not value(\2, "|a|fut|fût|est|") and not morph(\2, ":P") =>> exclude(\2, ":V")

    [une|le|la|les|des|chaque|quelque|quelques|cet|cette|ces|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs] personne
        <<- =>> select(\-1, ":N")

    de  [la|l’]  @:¬:Y
        <<- =>> exclude(\3, ":V")

    [/VCint|/VCimp] [le|la|l’|leur|les]
        <<- =>> select(\2, ":D")

    de [>telle|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine]  *WORD
        <<- =>> exclude(\3, ":V")

................................................................................
TEST: {{Toute}} celles qui viendront…
TEST: et {{toute}} ce barouf ne nous a apporté que des ennuis.
TEST: car {{toute}} mon savoir vient d’elle


__tous_det_nom__
    [<start>|,]     tous    [des|mes|tes|ses|ces]   @:[NA].*:f¬:[me]
    [<start>|,]     tous    [les]                   @:[NA].*:f¬:(?:3p|[me])
        <<- /gn/ -2>> toutes                                                                        # Erreur d’accord probable : « \4 » est féminin.
        <<- /gn/ __also__ and hasFemForm(\4) -4>> =suggMasPlur(\4, True)                            # Erreur d’accord probable : « \2 » est masculin.

    tous    [des|mes|tes|ses|ces]   @:[NA].*:f¬:[me]
    tous    [les]                   @:[NA].*:f¬:(?:3p|[me])
        <<- /gn/ morph(<1, ":", ":(?:R|[123][sp]|Q)|>(?:[nv]ous|eux)/") -1>> toutes                 # Erreur d’accord probable : « \3 » est féminin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggMasPlur(\3, True)                            # Erreur d’accord probable : « \1 » est masculin.

TEST: {{tous}} ces {{idiotes}}
TEST: indubitablement {{tous}} des {{privilégiées}}



__toutes_det_nom__
    [<start>|,]     toutes  [des|mes|tes|ses|ces]   @:[NA].*:m¬:[fe]
    [<start>|,]     toutes  [les]                   @:[NA].*:m¬:(?:3p|[fe])
        <<- /gn/ -2>> tous                                                                          # Erreur d’accord probable : « \4 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\4) -4>> =suggFemPlur(\4, True)                            # Erreur d’accord probable : « \2 » est féminin.

    toutes  [des|mes|tes|ses|ces]   @:[NA].*:m¬:[fe]
    toutes  [les]                   @:[NA].*:m¬:(?:3p|[fe])
        <<- /gn/ morph(<1, ":", ":(?:R|[123][sp]|Q)|>(?:[nv]ous|eux)/") -1>> tous                   # Erreur d’accord probable : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True)                            # Erreur d’accord probable : « \1 » est féminin.

TEST: {{toutes}} mes {{bars}}
TEST: vraiment {{toutes}} des {{costauds}}


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

TEST: à {{grande}} {{enjambées}}
TEST: pour {{belle}} {{appartement}}
TEST: une femme sans a priori


__gn_pfx_de_2m__
    [de|d’]  @:[NA]¬Y  @:[NA]¬*
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) )
            and not apposition(\2, \3) and not morph(<1, ":[NA]|>(?:et|ou)/")
        -3>> =switchGender(\3)                                                                      # Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ ( (morph(\2, ":p", ":[si]") and morph(\3, ":s", "*")) or (morph(\2, ":s", ":[pi]") and morph(\3, ":p", "*")) )
            and not apposition(\2, \3) and not morph(<1, ":[NA]|>(?:et|ou)/")
        -3>> =switchPlural(\3)                                                                      # Accord de nombre erroné avec « \2 ».
................................................................................
!!
!!!! Infinitif                                                                                    !!
!!
!!

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

    à  [ne|n’|en|me|m’|te|t’|se|s’|y]                                       @:V¬:Y|>(?:lui|plus)/
    à  [ne|n’]  [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]    @:V¬:Y|>(?:lui|plus)/
    à  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:Y
    à  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:Y
    à  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:Y
................................................................................


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

    [de|d’] [ne|n’|en|me|m’|te|t’|se|s’|y]                                       @:V¬:Y|>(?:lui|plus)/
    [de|d’] [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:Y|>(?:lui|plus)/

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

    en  [droit|état|mesure]  [de|d’]  ?[nous|vous|le|la|l’|les|leur]¿  @:V1.*:Q


    >faire  semblant         [de|d’]  ?[nous|vous|le|la|l’|les|leur]¿  @:V1.*:Q
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                             # Le verbe devrait être à l’infinitif.

    [de|d’]  @:V1.*:Q¬:N
        <<- /infi/ not \2[0:1].isupper() and not morph(<1, ">(?:en|passer)/")
            and not before("(?i)\\b(?:quelqu(?:e chose|’une?)|(?:l(es?|a)|nous|vous|me|te|se) trait|personne|points? +$|rien d(?:e |’)|rien(?: +[a-zéèêâîûù]+|) +$)")
        -2>> =suggVerbInfi(\2)                                                          # Le verbe devrait être à l’infinitif.

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

TEST: elle s’engage de ne les lui donner qu’en dernier recours.
TEST: l’idée consiste de la lui donner sans contrepartie et voir ce qu’il en fera.
TEST: de leur plus grand fils, ils attendent beaucoup.
TEST: de n’importe quelle manière
TEST: un libéralisme trop « individualiste » s’est transformé en de supposées demandes de droits spécifiques
TEST: soit 40 % de plus comparé au quinquennat précédent
TEST: On passe de sophistiqué à classique.
TEST: Les « événements » d’il y a cinquante ans n’ont sans doute « rien à voir » avec le mouvement des « gilets jaunes »
TEST: Quelques points de gagnés avec cette astuce, ne faisons pas la fine bouche.
TEST: Il n’y a rien de mécanique, ni de prédestiné.



__infi_y_verbe!3__
    y ~ée?s?$
        <<- /infi/ morph(\2, ":V", ":[123][sp]") -2>> _                                 # Le verbe ne devrait pas être un participe passé.

TEST: y {{mangée}} était un supplice
................................................................................

TEST: ces atouts sont très {{favorable}}
TEST: qui furent {{balayé}} au premier coup de vent.
TEST: Mais ces hommes affirment être redevenus {{humble}}.
TEST: ces femmes affirment avoir été {{courtoise}}.
TEST: Qui adorerait être redevenu {{sains}}.
TEST: ce que les journalistes estiment être normal.




!!!! Participes passés: accord en genre avec le substantif précédent                              !!

__ppas_sujet_être_accord_genre__
    [<start>|,|@:Cs]  [un|le|ce|cet]                    (*WORD)  ?qui¿  ?[ne|n’]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])             *WORD







|







 







|




|





>




|




|







 







|







 







|







 







<
|
>






>
>
|
|







 







>










>







 







>







1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
....
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
.....
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
.....
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
15433
.....
15449
15450
15451
15452
15453
15454
15455

15456
15457
15458
15459
15460
15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
.....
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
.....
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
    [un|une]  *WORD
        <<- not value(<1, "|l’|") and not value(\2, "|a|fut|fût|est|") and not morph(\2, ":P") =>> exclude(\2, ":V")

    [une|le|la|les|des|chaque|quelque|quelques|cet|cette|ces|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs] personne
        <<- =>> select(\-1, ":N")

    de  [la|l’]  @:¬:Y
        <<- not value(<1, "|semblant|") =>> exclude(\3, ":V")

    [/VCint|/VCimp] [le|la|l’|leur|les]
        <<- =>> select(\2, ":D")

    de [>telle|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine]  *WORD
        <<- =>> exclude(\3, ":V")

................................................................................
TEST: {{Toute}} celles qui viendront…
TEST: et {{toute}} ce barouf ne nous a apporté que des ennuis.
TEST: car {{toute}} mon savoir vient d’elle


__tous_det_nom__
    [<start>|,]     tous    [des|mes|tes|ses|ces]   @:[NA].*:f¬:[me]
    [<start>|,]     tous    [les]                   @:[NA].*:f¬:(?:3p|[me]|Y)
        <<- /gn/ -2>> toutes                                                                        # Erreur d’accord probable : « \4 » est féminin.
        <<- /gn/ __also__ and hasFemForm(\4) -4>> =suggMasPlur(\4, True)                            # Erreur d’accord probable : « \2 » est masculin.

    tous    [des|mes|tes|ses|ces]   @:[NA].*:f¬:[me]
    tous    [les]                   @:[NA].*:f¬:(?:3p|[me]|Y)
        <<- /gn/ morph(<1, ":", ":(?:R|[123][sp]|Q)|>(?:[nv]ous|eux)/") -1>> toutes                 # Erreur d’accord probable : « \3 » est féminin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggMasPlur(\3, True)                            # Erreur d’accord probable : « \1 » est masculin.

TEST: {{tous}} ces {{idiotes}}
TEST: indubitablement {{tous}} des {{privilégiées}}
TEST: ça consiste à ne pas tous les lire


__toutes_det_nom__
    [<start>|,]     toutes  [des|mes|tes|ses|ces]   @:[NA].*:m¬:[fe]
    [<start>|,]     toutes  [les]                   @:[NA].*:m¬:(?:3p|[fe]|Y)
        <<- /gn/ -2>> tous                                                                          # Erreur d’accord probable : « \4 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\4) -4>> =suggFemPlur(\4, True)                            # Erreur d’accord probable : « \2 » est féminin.

    toutes  [des|mes|tes|ses|ces]   @:[NA].*:m¬:[fe]
    toutes  [les]                   @:[NA].*:m¬:(?:3p|[fe]|Y)
        <<- /gn/ morph(<1, ":", ":(?:R|[123][sp]|Q)|>(?:[nv]ous|eux)/") -1>> tous                   # Erreur d’accord probable : « \3 » est masculin.
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True)                            # Erreur d’accord probable : « \1 » est féminin.

TEST: {{toutes}} mes {{bars}}
TEST: vraiment {{toutes}} des {{costauds}}


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

TEST: à {{grande}} {{enjambées}}
TEST: pour {{belle}} {{appartement}}
TEST: une femme sans a priori


__gn_pfx_de_2m__
    [de|d’]  @:[NA]¬:Y  @:[NA]¬*
        <<- /gn/ ( (morph(\2, ":m", ":[fe]") and morph(\3, ":f", "*")) or (morph(\2, ":f", ":[me]") and morph(\3, ":m", "*")) )
            and not apposition(\2, \3) and not morph(<1, ":[NA]|>(?:et|ou)/")
        -3>> =switchGender(\3)                                                                      # Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ ( (morph(\2, ":p", ":[si]") and morph(\3, ":s", "*")) or (morph(\2, ":s", ":[pi]") and morph(\3, ":p", "*")) )
            and not apposition(\2, \3) and not morph(<1, ":[NA]|>(?:et|ou)/")
        -3>> =switchPlural(\3)                                                                      # Accord de nombre erroné avec « \2 ».
................................................................................
!!
!!!! Infinitif                                                                                    !!
!!
!!

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

    à  [ne|n’|en|me|m’|te|t’|se|s’|y]                                       @:V¬:Y|>(?:lui|plus)/
    à  [ne|n’]  [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]    @:V¬:Y|>(?:lui|plus)/
    à  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:Y
    à  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:Y
    à  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:Y
................................................................................


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


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

    en  [droit|état|mesure]  [de|d’]  ?[nous|vous|le|la|l’|les|leur]¿  @:V1.*:Q
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                             # Après “\1 \2 \3”, le verbe devrait être à l’infinitif.

    >faire  ?[pas|jamais]¿  semblant  [de|d’]  ?[nous|vous|le|la|l’|les|leur]¿  @:V1.*:Q
        <<- /infi/ --1>> =suggVerbInfi(\-1)                                             # Après “faire semblant de”, le verbe devrait être à l’infinitif.

    [de|d’]  @:V1.*:Q¬:N
        <<- /infi/ not \2[0:1].isupper() and not morph(<1, ">(?:en|passer)/")
            and not before("(?i)\\b(?:quelqu(?:e chose|’une?)|(?:l(es?|a)|nous|vous|me|te|se) trait|personne|points? +$|rien d(?:e |’)|rien(?: +[a-zéèêâîûù]+|) +$)")
        -2>> =suggVerbInfi(\2)                                                          # Le verbe devrait être à l’infinitif.

TEST: d’en {{parlé}} sans cesse
................................................................................
TEST: Il s’agit de me {{donnait}} tout ça.
TEST: j’étais incapable de m’{{orientait}} dans la bonne direction.
TEST: ils étaient susceptibles de m’y {{trouvaient}}
TEST: Il tentait de {{raisonné}} en homme libre
TEST: sa façon de {{nettoyez}} était inefficace.
TEST: elle a délibérément omis de les {{inclurent}}.
TEST: Sont-ils en mesure de nous {{fabriqué}} ces armes ?
TEST: Ne fais pas semblant de l’{{oubliée}}.
TEST: elle s’engage de ne les lui donner qu’en dernier recours.
TEST: l’idée consiste de la lui donner sans contrepartie et voir ce qu’il en fera.
TEST: de leur plus grand fils, ils attendent beaucoup.
TEST: de n’importe quelle manière
TEST: un libéralisme trop « individualiste » s’est transformé en de supposées demandes de droits spécifiques
TEST: soit 40 % de plus comparé au quinquennat précédent
TEST: On passe de sophistiqué à classique.
TEST: Les « événements » d’il y a cinquante ans n’ont sans doute « rien à voir » avec le mouvement des « gilets jaunes »
TEST: Quelques points de gagnés avec cette astuce, ne faisons pas la fine bouche.
TEST: Il n’y a rien de mécanique, ni de prédestiné.
TEST: il convient donc de ne point les négliger.


__infi_y_verbe!3__
    y ~ée?s?$
        <<- /infi/ morph(\2, ":V", ":[123][sp]") -2>> _                                 # Le verbe ne devrait pas être un participe passé.

TEST: y {{mangée}} était un supplice
................................................................................

TEST: ces atouts sont très {{favorable}}
TEST: qui furent {{balayé}} au premier coup de vent.
TEST: Mais ces hommes affirment être redevenus {{humble}}.
TEST: ces femmes affirment avoir été {{courtoise}}.
TEST: Qui adorerait être redevenu {{sains}}.
TEST: ce que les journalistes estiment être normal.
TEST: qui échappe à tout contrôle démocratique et dans lequel les lobbies sont partie prenante est une folie.



!!!! Participes passés: accord en genre avec le substantif précédent                              !!

__ppas_sujet_être_accord_genre__
    [<start>|,|@:Cs]  [un|le|ce|cet]                    (*WORD)  ?qui¿  ?[ne|n’]¿  ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre])             *WORD