Grammalecte  Diff

Differences From Artifact [66f634ed8b]:

To Artifact [eee69b88aa]:


1
2
3
4
5
6
7
8
9
10
11
12
#
#   RÈGLES DE GRAMMAIRE FRANÇAISE POUR GRAMMALECTE
#   par Olivier R.
#
#   Copyright © 2011-2017.
#
#   This file is part of Grammalecte.
#
#   Grammalecte is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.




|







1
2
3
4
5
6
7
8
9
10
11
12
#
#   RÈGLES DE GRAMMAIRE FRANÇAISE POUR GRAMMALECTE
#   par Olivier R.
#
#   Copyright © 2011-2018.
#
#   This file is part of Grammalecte.
#
#   Grammalecte is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
    avant toute chose
    avant toutes choses
    avant d’ aller plus loin
    avant J.-C.
    avant Jésus-Christ
    avant d’ en arriver là
    avant de faire quoi que ce soit
    avant de faire quoi que ce soit [de|d’] ?@:W¿ [stupide|crétin|con|idiot]
    avant qu’ il ne soit trop tard
    avant un bon bout de temps
    avec [brio|joie|légèreté|insistance|peine]
    avec autre chose
    avec le plus grand soin
    avec pertes et fracas
    avec un peu de chance







|







9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
    avant toute chose
    avant toutes choses
    avant d’ aller plus loin
    avant J.-C.
    avant Jésus-Christ
    avant d’ en arriver là
    avant de faire quoi que ce soit
    avant de faire quoi que ce soit [de|d’] ?@:W¿ [absurde|stupide|crétin|con|idiot|inconsidéré]
    avant qu’ il ne soit trop tard
    avant un bon bout de temps
    avec [brio|joie|légèreté|insistance|peine]
    avec autre chose
    avec le plus grand soin
    avec pertes et fracas
    avec un peu de chance
9215
9216
9217
9218
9219
9220
9221

9222
9223
9224
9225
9226
9227
9228
9229
9230
    [crois-le|croyons-le|croyez-le] ou [non|pas]
    cul par-dessus tête
    dans [ce|ces] [cas-là|cas-ci]
    dans ce cas [précis|particulier]
    dans ces cas [précis|particuliers]
    dans l’ [idéal|immédiat]
    dans la mesure du possible

    dans les années ~^\d{2,5}$
    dans les [jours|semaines|mois|trimestres|semestres|années|décennies|siècles|millénaires] à venir
    dans peu de temps
    dans tout [cela|ça|ceci]
    dans très peu de temps
    dans un cas comme dans l’autre
    dans une [certaine|large|moindre] mesure
    début {mois} ~^\d{2,5}$
    au début {mois} ~^\d{2,5}$







>

|







9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
    [crois-le|croyons-le|croyez-le] ou [non|pas]
    cul par-dessus tête
    dans [ce|ces] [cas-là|cas-ci]
    dans ce cas [précis|particulier]
    dans ces cas [précis|particuliers]
    dans l’ [idéal|immédiat]
    dans la mesure du possible
    dans leur globalité
    dans les années ~^\d{2,5}$
    dans les [secondes|minutes|heures|jours|semaines|mois|trimestres|semestres|années|décennies|siècles|millénaires] à venir
    dans peu de temps
    dans tout [cela|ça|ceci]
    dans très peu de temps
    dans un cas comme dans l’autre
    dans une [certaine|large|moindre] mesure
    début {mois} ~^\d{2,5}$
    au début {mois} ~^\d{2,5}$
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
    hors d’ état de nuire
    hors du commun
    ici
    ici [comme|ou] ailleurs
    ici et [là|maintenant]
    ici même
    ici-bas
    il y a ?très¿ longtemps
    il y a ?très¿ peu de temps
    il y a quelques [secondes|minutes|heures|jours|semaines|mois|année|ans|siècles|millénaires]
    il y a moins de [*NUM|@:B] [secondes|minutes|heures|jours|semaines|mois|année|ans|siècles|millénaires]
    il y a [*NUM|@:B] [secondes|minutes|heures|jours|semaines|mois|année|ans|siècles|millénaires]
    il y a quelque temps
    il n’y a pas ?si¿ longtemps
    illico ?presto¿
    jadis
    j’ en passe et des [meilleurs|meilleures]
    jour pour jour
    jusqu’ [alors|ici|aujourd’hui|Noël|Pâques]
    jusqu’ au bout des ongles
    jusqu’ au nouvel an







|
|
|
|
|
|
|







9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
    hors d’ état de nuire
    hors du commun
    ici
    ici [comme|ou] ailleurs
    ici et [là|maintenant]
    ici même
    ici-bas
    ?d’¿ il y a ?très¿ longtemps
    ?d’¿ il y a ?très¿ peu de temps
    ?d’¿ il y a quelques [secondes|minutes|heures|jours|semaines|mois|année|ans|siècles|millénaires]
    ?d’¿ il y a moins de [*NUM|@:B] [secondes|minutes|heures|jours|semaines|mois|année|ans|siècles|millénaires]
    ?d’¿ il y a [*NUM|@:B] [secondes|minutes|heures|jours|semaines|mois|année|ans|siècles|millénaires]
    ?d’¿ il y a quelque temps
    ?d’¿ il n’y a pas ?si¿ longtemps
    illico ?presto¿
    jadis
    j’ en passe et des [meilleurs|meilleures]
    jour pour jour
    jusqu’ [alors|ici|aujourd’hui|Noël|Pâques]
    jusqu’ au bout des ongles
    jusqu’ au nouvel an
10024
10025
10026
10027
10028
10029
10030



10031
10032
10033
10034
10035
10036
10037

    en flagrant délit [de|d’]
        <<- ~2:3>> *

    en matière [de|d’]
        <<- ~2>> *




    en proie à
        <<- ~1:2>> *

    eu égard [à|au|aux]
        <<- ~1:2>> *

    et  /  ou







>
>
>







10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041

    en flagrant délit [de|d’]
        <<- ~2:3>> *

    en matière [de|d’]
        <<- ~2>> *

    en phase avec
        <<- ~1:2>> *

    en proie à
        <<- ~1:2>> *

    eu égard [à|au|aux]
        <<- ~1:2>> *

    et  /  ou
10266
10267
10268
10269
10270
10271
10272






10273
10274
10275
10276
10277
10278
10279
        <<- ~>> *

    haut et fort
        <<- not morph(<1, ":D") ~>> *

    hélas
        <<- not morph(<1, ":(?:X|Oo)") and not tag_before(\1, "2s") ~>> *







    mais
        <<- not morph(<1, ":(?:D.*:p|N)") ~>> *

    nécessité fait loi
        <<- not morph(<1, ":D.*:f:[si]") ~>> *








>
>
>
>
>
>







10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
        <<- ~>> *

    haut et fort
        <<- not morph(<1, ":D") ~>> *

    hélas
        <<- not morph(<1, ":(?:X|Oo)") and not tag_before(\1, "2s") ~>> *

    le [plus|moins] @:W possible
        <<- ~>> *

    les [moins|plus] @:A.*:[pi] possible
        <<- ~-1>> *

    mais
        <<- not morph(<1, ":(?:D.*:p|N)") ~>> *

    nécessité fait loi
        <<- not morph(<1, ":D.*:f:[si]") ~>> *

11185
11186
11187
11188
11189
11190
11191

11192
11193
11194
11195
11196
11197
11198
TEST: Une dizaine de militants, pour partie issus du collectif XYZ, se sont réunis
TEST: Rien ne va dans cette fête qu’est Noël.
TEST: Nous foncions vers notre perte à vitesse grand V, pied au plancher, sans intention de ralentir une seule seconde.
TEST: faire un embrago sur les armes suite à la dérive totalitaire du régime.
TEST: En colère, les ambulanciers une nouvelle fois mobilisés contre une réforme qui met en péril leur activité
TEST: Au-delà des réponses qu’a tenté d’apporter cette semaine le président, le mouvement des “gilets jaunes” marque un tournant dans la vie politique et sociale de la France.
TEST: S’y inventent de nouvelles solidarités, s’y expérimentent des joies politiques dont on avait perdu le goût et la découverte qu’on peut désobéir ensemble.




@@@@
@@@@
@@@@
@@@@







>







11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
TEST: Une dizaine de militants, pour partie issus du collectif XYZ, se sont réunis
TEST: Rien ne va dans cette fête qu’est Noël.
TEST: Nous foncions vers notre perte à vitesse grand V, pied au plancher, sans intention de ralentir une seule seconde.
TEST: faire un embrago sur les armes suite à la dérive totalitaire du régime.
TEST: En colère, les ambulanciers une nouvelle fois mobilisés contre une réforme qui met en péril leur activité
TEST: Au-delà des réponses qu’a tenté d’apporter cette semaine le président, le mouvement des “gilets jaunes” marque un tournant dans la vie politique et sociale de la France.
TEST: S’y inventent de nouvelles solidarités, s’y expérimentent des joies politiques dont on avait perdu le goût et la découverte qu’on peut désobéir ensemble.
TEST: Les femmes, quant à elles, ont aussi tendance à sous-estimer le harcèlement dont elles sont dans leur globalité victimes



@@@@
@@@@
@@@@
@@@@
11813
11814
11815
11816
11817
11818
11819

11820
11821
11822
11823
11824
11825
11826
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, True)                           # Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -4>> =suggPlur(\4)                                                                          # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: les pitres {{imbécile}}
TEST: il faut en convenir et les femmes {{oubliés}} seront satisfaites.
TEST: et les femmes {{retrouvés}} seront emmenées à l’hôpital.



__gn_leurs_1m__
    leurs  *WORD
        <<- /gn/ (morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")))
            or \2 in aREGULARPLURAL
        -2>> =suggPlur(\2)                                                                  # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.







>







11824
11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
        <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, True)                           # Accord de genre erroné avec « \4 ».
        <<- /gn/ morph(\3, ":[NA].*:[pi]") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -4>> =suggPlur(\4)                                                                          # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel.

TEST: les pitres {{imbécile}}
TEST: il faut en convenir et les femmes {{oubliés}} seront satisfaites.
TEST: et les femmes {{retrouvés}} seront emmenées à l’hôpital.
TEST: les moins éloignées possible


__gn_leurs_1m__
    leurs  *WORD
        <<- /gn/ (morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")))
            or \2 in aREGULARPLURAL
        -2>> =suggPlur(\2)                                                                  # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
14940
14941
14942
14943
14944
14945
14946

14947
14948
14949
14950
14951
14952
14953
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.



__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







>







14952
14953
14954
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
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 »


__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
18630
18631
18632
18633
18634
18635
18636
18637
18638
18639
18640
18641
18642
18643
18644
18645
18646
18647
18648
18649
18650
18651
18652

18653
18654
18655
18656
18657
18658
18659


__conj_personne_aucun_rien__
    [personne|aucun]  ?qui¿  @:V¬:(?:3s|P|G)
        <<- /conf/ morph(<1, ":C|<start>|>,", ":(?:P|Q|[123][sp]|R)")
        --1>> =suggVerb(\-1, ":3s")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    rien  @:V¬:(?:3s|P|G)
        <<- /conf/ morph(<1, ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)")
            and not(morph(\2, ":Y") and value(<1, "|ne|"))
        --1>> =suggVerb(\-1, ":3s")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    rien  qui  @:V¬:(?:3s|P|G)
        <<- /conf/ morph(<1, ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)")
        --1>> =suggVerb(\-1, ":3s")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: Personne ne {{peux}} me le dire.
TEST: Rien ne {{sers}} de courir
TEST: Rien n’{{arrives}} sans raison
TEST: Rien, en ce qui le concernait, ne {{pouvais}} le ramener à la raison.
TEST: personne n’en {{parlent}}
TEST: aucun d’entre nous n’{{as}} donné
TEST: aucun ne {{vas}} là-bas



__conj_nul_nulle__
    [nul|nulle]  ?qui¿  @:V¬:(?:3s|P|G|N.*:[si])
        <<- /conj/ morph(<1, ":C", ":(?:Y|P|Q|[123][sp]|R)")
        --1>> =suggVerb(\-1, ":3s")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.








|















>







18643
18644
18645
18646
18647
18648
18649
18650
18651
18652
18653
18654
18655
18656
18657
18658
18659
18660
18661
18662
18663
18664
18665
18666
18667
18668
18669
18670
18671
18672
18673


__conj_personne_aucun_rien__
    [personne|aucun]  ?qui¿  @:V¬:(?:3s|P|G)
        <<- /conf/ morph(<1, ":C|<start>|>,", ":(?:P|Q|[123][sp]|R)")
        --1>> =suggVerb(\-1, ":3s")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    rien  @:V¬:(?:3s|P|Y|G)
        <<- /conf/ morph(<1, ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)")
            and not(morph(\2, ":Y") and value(<1, "|ne|"))
        --1>> =suggVerb(\-1, ":3s")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    rien  qui  @:V¬:(?:3s|P|G)
        <<- /conf/ morph(<1, ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)")
        --1>> =suggVerb(\-1, ":3s")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: Personne ne {{peux}} me le dire.
TEST: Rien ne {{sers}} de courir
TEST: Rien n’{{arrives}} sans raison
TEST: Rien, en ce qui le concernait, ne {{pouvais}} le ramener à la raison.
TEST: personne n’en {{parlent}}
TEST: aucun d’entre nous n’{{as}} donné
TEST: aucun ne {{vas}} là-bas
TEST: il ne faut rien faire ou rien dire contre les manifestants


__conj_nul_nulle__
    [nul|nulle]  ?qui¿  @:V¬:(?:3s|P|G|N.*:[si])
        <<- /conj/ morph(<1, ":C", ":(?:Y|P|Q|[123][sp]|R)")
        --1>> =suggVerb(\-1, ":3s")                                     # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.