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.
|
︙ | | | ︙ | |