Overview
| Comment: | [fr] options manquantes et nettoyage |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | fr | rg |
| Files: | files | file ages | folders |
| SHA3-256: |
c79208cbc27c5e4ab8b0b88379c26563 |
| User & Date: | olr on 2018-07-28 09:08:39 |
| Other Links: | branch diff | manifest | tags |
Context
|
2018-07-28
| ||
| 10:20 | [fr] conversion: regex rules -> graph rules check-in: e8b896692d user: olr tags: fr, rg | |
| 09:08 | [fr] options manquantes et nettoyage check-in: c79208cbc2 user: olr tags: fr, rg | |
| 00:14 | [build] DARG: shorten building result display check-in: ffd3e274fa user: olr tags: build, rg | |
Changes
Modified gc_lang/fr/rules.grx from [049bff94f6] to [a28941d490].
| ︙ | ︙ | |||
8863 8864 8865 8866 8867 8868 8869 | !!!! Groupe nominal (1) !! !! !! ## l’ __gn_l_1m__ | | | 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 |
!!!! Groupe nominal (1) !!
!!
!!
## l’
__gn_l_1m__
l’ @:[NA].*:p¬:[123][sp]|:[si]
<<- /gn/ -2>> =suggSing(\2) # Accord de nombre erroné : “\2” devrait être au singulier.
TEST: toute l’importance de l’{{accords}} musical.
__gn_l_2m__
l’ @:[NA]¬* @:[NA]¬*
|
| ︙ | ︙ | |||
8895 8896 8897 8898 8899 8900 8901 |
TEST: l’amour {{immortels}}
TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou.
TEST: du chien et de l’{{étonnante}} {{collier}} qu’il avait autour du cou.
__gn_le_1m__
, le *WORD
| | | | | | | | | | | | | | | | | | | | | | | | | | | 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 |
TEST: l’amour {{immortels}}
TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou.
TEST: du chien et de l’{{étonnante}} {{collier}} qu’il avait autour du cou.
__gn_le_1m__
, le *WORD
<<- /gn/ morph(\3, "@:[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") -2>> =suggLesLa(\2) # Accord de genre erroné : « \3 » est féminin.
<<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant masculin.
<<- /gn/ __else__ and morph(\3, ":[NA].*:p") -3>> =suggMasSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
<<- /gn/ __also__ -2>> les # Accord de nombre erroné : « \3 » est au pluriel.
*WORD le *WORD
<<- /gn/ morph(\2, ":D") >>>
<<- morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)")
or ( morph(\3, ":[NA].*:f", ":[me]") and morph(\1, ":R", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
-2>> =suggLesLa(\2) # Accord de genre erroné : « \3 » est féminin.
<<- __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant masculin.
<<- __else__ and morph(\3, ":[NA].*:p", "*")
or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RC]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
-3>> =suggMasSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
<<- __also__ -2>> les # Accord de nombre erroné : « \3 » est au pluriel.
<start> le *WORD
<<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|Y)") -2>> =suggLesLa(\2) # Accord de genre erroné : « \3 » est féminin.
<<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant masculin.
<<- /gn/ __else__ and morph(\3, ":[NA].*:p", ":[siGW]") -3>> =suggMasSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
<<- /gn/ __also__ -2>> les # Accord de nombre erroné : « \3 » est au pluriel.
TEST: c’est une catastrophe, {{le}} {{profits}} a baissé ces deux derniers trimestres
TEST: {{Le}} démoralisation. ->> La
TEST: {{Le}} Guyane française. ->> La
TEST: avec {{le}} {{pile}}
TEST: {{le}} {{publique}}
TEST: {{Le}} {{pendue}}
__gn_ledit_1m__
ledit *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> ladite # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_un_1m__
un *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":(?:e|m|G|W|V0|3s|Y)") -1>> une # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_un_des_1m__
un des *WORD
<<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|G|W|V0|3s)") -1>> une # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
__gn_du_1m__
du *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de la # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_cet_1m__
cet *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> cette # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
<<- /gn/ morph(\2, ">[bcçdfgjklmnpqrstvwxz].+:[NA].*:m", ":[efGW]") -1>> ce # Accord de genre correct, mais euphonie non respectée.|http://fr.wikipedia.org/wiki/Euphonie
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_ce_1m__
ce *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":(?:3s|[GWme])") -1>> cette # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
<<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") and morph(\2, ":3s") -1>> cette|se # Accord de genre erroné : « \2 » est féminin. Ou bien vous confondez le déterminant “ce” avec le pronom “se”.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_mon_ton_son_1m__
[mon|ton|son] *WORD
<<- /gn/ morph(\1, ":D") >>>
<<- /gn/ morph(\2, ">[bcdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.replace("on", "a") # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_au_1m__
au *WORD
<<- /gn/ morph(\2, ":[NA].*:f:s", ":[GWme]") -1>> à la # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggMasSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
<<- /gn/ __also__ -1>> aux # Accord de nombre erroné : « \2 » est au pluriel.
TEST: ledit {{accords}} ne vaut rien.
TEST: {{au}} {{États-Unis}}
TEST: {{Un}} {{amie}}
TEST: {{Cet}} {{idiote}}.
TEST: {{cet}} ballon. ->> ce
|
| ︙ | ︙ | |||
8997 8998 8999 9000 9001 9002 9003 |
TEST: Trente et un hommes sur le pont.
## Singulier féminin
__gn_la_1m__
, la *WORD
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 |
TEST: Trente et un hommes sur le pont.
## Singulier féminin
__gn_la_1m__
, la *WORD
<<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|[1-3][sp]|Y)") -2>> le # Accord de genre erroné : « \3 » est masculin.
<<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant féminin.
<<- /gn/ __else__ and morph(\3, ":[NA].*:p") -3>> =suggFemSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
*WORD la *WORD
<<- /gn/ morph(\2, ":D") >>>
<<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|[1-3][sp]|Y)")
or ( morph(\3, ":[NA].*:m", ":[fe]") and morph(\1, ":[RC]", ">(?:e[tn]|ou)/") and not (morph(\1, ":(?:Rv|C)") and morph(\3, ":Y")) )
-2>> le # Accord de genre erroné : « \3 » est masculin.
<<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant féminin.
<<- /gn/ __else__ and morph(\3, ":[NA].*:p")
or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RC]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
-3>> =suggFemSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
<start> la *WORD
<<- /gn/ morph(\3, ":[NA].*:m", ":[efPGWY]") -2>> le # Accord de genre erroné : « \3 » est masculin.
<<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemSing(\3, True) # Accord de genre erroné : « \2 » est un déterminant féminin.
<<- /gn/ __else__ and morph(\3, ":[NA].*:p", ":[siGW]") -3>> =suggFemSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
TEST: c’est ennuyeux, la {{parties}} deux est ratée.
TEST: {{La}} Cameroun ->> Le
TEST: {{La}} mustang est un cheval sauvage. ->> Le
TEST: {{La}} tableau. ->> Le
TEST: dans la {{parties}} ->> partie
TEST: de {{la}} vin ->> le
TEST: {{la}} {{véhicule}}
TEST: {{La}} {{pris}}
TEST: la force de la {{formes}} parfaite
__gn_ladite_1m__
ladite *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> ledit # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: ladite {{passions}} l’avait conduit à sa perte.
__gn_une_1m__
une *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":(?:e|f|G|W|V0|3s|P)") and not ( \2 == "demi" and morph(>1, ":N.*:f", "*") )
-1>> un # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_une_des_1m__
une des *WORD
<<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|G|W|V0|3s)") -1>> un # Accord de genre erroné : « \3 » est masculin.
<<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
TEST: un {{slashs}} ->> slash
TEST: un {{fromages}}. ->> fromage
TEST: Un {{ballons}} ->> ballon
TEST: Une {{cinglées}} ->> cinglée
TEST: {{une}} des {{joueurs}}
TEST: mille et une merveilles
__gn_cette_1m__
cette *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =suggCeOrCet(\2) # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
__gn_ma_ta_sa_1m__
[ma|ta|sa] *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> =\1[:-1]+"on" # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and not re.search("(?i)^[aâeéèêiîoôuûyœæ]", \2) and hasFemForm(\2)
-2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggFemSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: {{une}} des {{chats}}
TEST: {{ma}} {{parti}}
TEST: {{ma}} amour ->> mon
TEST: {{une}} kyste ->> un
TEST: {{Cette}} {{animal}} mort.
## Singuliers épicènes
__gn_leur_1m__
, leur *WORD
<<- /gn/ morph(\3, ":[NA].*:p", "*") -2>> leurs # Accord de nombre erroné avec « \3 ».
<<- /gn/ __also__ -3>> =suggSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
*WORD leur *WORD
<<- /gn/ morph(\3, ":[NA].*:p", "*")
or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RC]|>de/", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
-2>> leurs # Accord de nombre erroné avec « \3 ».
<<- /gn/ __also__ -3>> =suggSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
<start> leur *WORD
<<- /gn/ morph(\3, ":[NA].*:p", ":[siGW]") -2>> leurs # Accord de nombre erroné avec « \3 ».
<<- /gn/ __also__ -3>> =suggSing(\3) # Accord de nombre erroné : « \3 » devrait être au singulier.
TEST: Tu sais, {{leur}} {{impatiences}} est notoire.
TEST: J’en ai assez de {{leur}} {{délires}}
TEST: {{Leur}} {{perceptions}} des choses m’exaspère.
TEST: dans {{leur}} {{usines}}
__gn_notre_votre_chaque_1m__
[notre|votre|chaque] *WORD
<<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggSing(\2) # Accord de nombre erroné : « \2 » devrait être au singulier.
TEST: Chaque {{chiens}}. ->> chien
__gn_quelque_1m__
quelque *WORD
<<- /gn/ morph(\2, ":[NA].*:p", ":[siG]") and not value(>1, "|que|qu’|qu|")
-1>> quelques # Il manque un “s” à « quelque » ou « \2 » doit être au singulier.
TEST: {{Quelque}} amis
## Pluriels épicènes
__gn_les_1m__
, les *WORD
<<- /gn/ ( morph(\3, ":[NA].*:s", "*") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) )
or \3 in aREGULARPLURAL
-3>> =suggPlur(\3) # Accord de nombre erroné : « \3 » devrait être au pluriel.
*WORD les *WORD
<<- /gn/ morph(\2, ":D")
and ( morph(\3, ":[NA].*:s", "*") or (morph(\3, ":[NA].*:s", ":[pi]|>avoir") and morph(\1, ":[RC]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y"))) )
and not (value(>1, "|et|ou|") and morph(>2, ":[NA]"))
-3>> =suggPlur(\3) # Accord de nombre erroné : « \3 » devrait être au pluriel.
<start> les *WORD
<<- /gn/ ( morph(\3, ":[NA].*:s", ":[ipYPGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) )
or \3 in aREGULARPLURAL
-3>> =suggPlur(\3) # Accord de nombre erroné : « \3 » devrait être au pluriel.
TEST: ils viennent, les {{petit}}
TEST: Les {{tiret}} ->> tirets
TEST: Les plus {{grand}} hommes. ->> grands
TEST: les {{véhicule}} ->> véhicules
TEST: Les {{démoralisation}}. ->> démoralisations
TEST: dans les {{usine}} ->> usines
__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.
<<- /gn/ __also__ -1>> leur # Accord de nombre erroné avec « \2 ».
TEST: {{leurs}} {{action}}
TEST: {{leur}} {{données}}
__gn_det_pluriel_1m__
[des|mes|tes|ses|nos|vos|quelques|lesdits|moult] *WORD
<<- /gn/ (morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")))
or \2 in aREGULARPLURAL
-2>> =suggPlur(\2) # Accord de nombre erroné : « \2 » devrait être au pluriel.
TEST: des {{pain}} ->> pains
TEST: Quelques {{homme}}. ->> hommes
TEST: plusieurs {{femme}} sont venues.
TEST: une personne ou plusieurs ayant décidé de façon déterminée et coordonnée de faire cuire la grenouille
__gn_ces_aux_pluriel_1m__
[ces|aux] *WORD
<<- /gn/ (morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")))
or \2 in aREGULARPLURAL
-2>> =suggPlur(\2) # Accord de nombre erroné : « \2 » devrait être au pluriel.
<<- /gn/ __also__ and morph(\2, ">[bcdfglklmnpqrstvwxz].*:m", ":f") >>>
<<- /gn/ \1.endswith("x") or \1.endswith("X") -1>> au # Accord de nombre erroné : « \2 » est au pluriel.
<<- /gn/ __else__ -1>> ce # Accord de nombre erroné : « \2 » est au pluriel.
TEST: {{ces}} {{détournement}} de fonds et ces vols
TEST: ces {{étudiant}} sont légion.
TEST: je vais {{aux}} {{cinéma}}
TEST: il l’a donné aux {{étudiant}}
__gn_plusieurs_1m__
plusieurs *WORD
<<- /gn/ (morph(\2, ":[NA].*:s", ":[ipGWP]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")))
or \2 in aREGULARPLURAL
-2>> =suggPlur(\2) # Accord de nombre erroné : « \2 » devrait être au pluriel.
TEST: plusieurs {{foi}} par jour.
## Autres pluriels
## certains / certaines
__gn_certains_1m__
certains *WORD
<<- /gn/ morph(\2, ":[NA].*:f", ":[emGWP]") -1>> certaines # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasPlur(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
<<- /gn/ ( morph(\2, ":[NA].*:s", ":(?:[ipGWP]|V0)") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) )
or \1 in aREGULARPLURAL
-2>> =suggPlur(\2) # Accord de nombre erroné : « \2 » devrait être au pluriel.
__gn_certains_des_1m__
certains des *WORD
<<- /gn/ morph(\3, ":[NA].*:f", ":[emGW]") -1>> certaines # Accord de genre erroné : « \3 » est féminin.
<<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant masculin.
__gn_certaines_1m__
certaines *WORD
<<- /gn/ morph(\2, ":[NA].*:m", ":[efGWP]") -1>> certains # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemPlur(\2, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
<<- /gn/ ( morph(\2, ":[NA].*:s", ":[ipGWP]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) )
or \2 in aREGULARPLURAL
-2>> =suggPlur(\2) # Accord de nombre erroné : « \2 » devrait être au pluriel.
__gn_certaines_des_1m__
certaines des *WORD
<<- /gn/ morph(\3, ":[NA].*:m", ":[efGW]") -1>> certains # Accord de genre erroné : « \3 » est masculin.
<<- /gn/ __also__ and hasFemForm(\3) -3>> =suggFemPlur(\3, True) # Accord de genre erroné : « \1 » est un déterminant féminin.
TEST: Certaines {{danse}}
TEST: Certains {{chien}}
TEST: {{certains}} des {{nouvelles}} sont à côté de la plaque.
TEST: {{certaines}} des hommes
TEST: Un problème rapporté par certains est l’incapacité à trouver un partenaire
## quel / quels / quelle / quelles
__gn_quel_1m__
quel *WORD
<<- /gn/ morph(\2, ":[NA].*:f:p", ":(?:V0|Oo|[NA].*:[me]:[si])") -1>> quelles # Accord de genre et de nombre erroné : « \2 » est féminin et au pluriel.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre et de nombre erroné : « \1 » est masculin et au singulier.
<<- /gn/ morph(\2, ":[NA].*:m:p", ":(?:V0|Oo|[NA].*:[me]:[si])") -1>> quels # Accord de nombre erroné : « \2 » est au pluriel.
<<- /gn/ __also__ -2>> =suggSing(\2) # Accord de nombre erroné : « \1 » est au singulier.
<<- /gn/ morph(\2, ":[NA].*:f:[si]", ":(?:V0|Oo|[NA].*:[me]:[si])") -1>> quelle # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est masculin.
__gn_quels_1m__
quels *WORD
<<- /gn/ morph(\2, ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[me]:[pi])") -1>> quelle # Accord de genre et de nombre erroné : « \2 » est féminin et au singulier.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggMasPlur(\2, True) # Accord de genre et de nombre erroné : « \1 » est masculin et au pluriel.
<<- /gn/ morph(\2, ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[me]:[pi])") -1>> quel # Accord de nombre erroné : « \2 » est au singulier.
<<- /gn/ __also__ -2>> =suggPlur(\2) # Accord de nombre erroné : « \1 » est au pluriel.
<<- /gn/ morph(\2, ":[NA].*:f:[pi]", ":(?:V0|Oo|[NA].*:[me]:[pi])") -1>> quelles # Accord de genre erroné : « \2 » est féminin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggMasPlur(\2, True) # Accord de genre erroné : « \1 » est masculin.
__gn_quelle_1m__
quelle *WORD
<<- /gn/ morph(\2, ":[NA].*:m:p", ":(?:V0|Oo|[NA].*:[fe]:[si])") -1>> quels # Accord de genre et de nombre erroné : « \2 » est masculin et au pluriel.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre et de nombre erroné : « \1 » est féminin et au singulier.
<<- /gn/ morph(\2, ":[NA].*:f:p", ":(?:V0|Oo|[NA].*:[fe]:[si])") -1>> quelles # Accord de nombre erroné : « \2 » est au pluriel.
<<- /gn/ __also__ -2>> =suggSing(\2) # Accord de nombre erroné : « \1 » est au singulier.
<<- /gn/ morph(\2, ":[NA].*:m:[si]", ":(?:V0|Oo|[NA].*:[fe]:[si])") -1>> quel # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemSing(\2, True) # Accord de genre erroné : « \1 » est féminin.
__gn_quelles_1m__
quelles *WORD
<<- /gn/ morph(\2, ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])") -1>> quel # Accord de genre et de nombre erroné. « \2 » est masculin et au singulier.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemPlur(\2, True) # Accord de genre et de nombre erroné : « \1 » est féminin et au pluriel.
<<- /gn/ morph(\2, ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])") -1>> quelle # Accord de nombre erroné : « \2 » est au singulier.
<<- /gn/ __also__ -2>> =suggPlur(\2) # Accord de nombre erroné : « \1 » est au pluriel.
<<- /gn/ morph(\2, ":[NA].*:m:[pi]", ":(?:V0|Oo|[NA].*:[fe]:[pi])") -1>> quels # Accord de genre erroné : « \2 » est masculin.
<<- /gn/ __also__ and hasFemForm(\2) -2>> =suggFemPlur(\2, True) # Accord de genre erroné : « \1 » est féminin.
TEST: {{Quelle}} homme. ->> Quel
TEST: {{Quel}} femme. ->> Quelle
TEST: {{Quels}} chanson. ->> Quelle
TEST: {{Quelles}} {{tarés}}.
TEST: Quelle sale journée…
|
| ︙ | ︙ | |||
9281 9282 9283 9284 9285 9286 9287 |
__gn_quels_quelles_accord_être__
[quels|quelles] [est|étais|était|sera|serais|serait|fut|fût|fus]
<<- /gn/ not value(<1, "|tels|telles|")
-1>> =\1[:-1] # Accord de nombre erroné avec “\2”.
__gn_quel_accord_être_sujet__
quel [est|était|seras|sera|serais|serait|fut|fût|fus] [la|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD
| | | | | | 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 |
__gn_quels_quelles_accord_être__
[quels|quelles] [est|étais|était|sera|serais|serait|fut|fût|fus]
<<- /gn/ not value(<1, "|tels|telles|")
-1>> =\1[:-1] # Accord de nombre erroné avec “\2”.
__gn_quel_accord_être_sujet__
quel [est|était|seras|sera|serais|serait|fut|fût|fus] [la|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD
<<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:f", ":[me]")
-1>> quelle # Accord de genre erroné avec « \3 \4 ».
__gn_quelle_accord_être_sujet__
quelle [est|était|seras|sera|serais|serait|fut|fût|fus] [le|ce|cet|mon|ton|son|notre|votre|leur] *WORD
<<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NA].*:m", ":[fe]")
-1>> quel # Accord de genre erroné avec « \3 \4 ».
__gn_quels_accord_être_sujet__
quels [sont|étaient|seront|serons|seraient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs] *WORD
<<- /gn/ not value(<1, "|tels|telles|") and morph(\4, ":[NA].*:f", ":[me]")
-1>> quelles # Accord de genre erroné avec « \3 \4 ».
__gn_quelles_accord_être_sujet__
quelles [sont|étaient|seront|serons|seraient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs] *WORD
<<- /gn/ not value(<1, "|tels|telles|") and morph(\4, ":[NA].*:m", ":[fe]")
-1>> quels # Accord de genre erroné avec « \3 \4 ».
TEST: {{Quel}} sont ces hommes. ->> Quels
TEST: {{Quel}} est cette force ? ->> Quelle
TEST: {{Quelle}} est mon animal favori ? ->> Quel
TEST: {{Quels}} sont ces femmes ? ->> Quelles
TEST: {{Quelles}} est cette imbécillité ? ->> Quelle
|
| ︙ | ︙ | |||
9364 9365 9366 9367 9368 9369 9370 |
TEST: des {{son}} que nous entendons jour et nuit.
TEST: j’entends ces {{même}} âneries tous les jours
## Pluriel des groupes
__gn_nombre_de_1m__
nombre [de|d’] *WORD
| | | | 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 |
TEST: des {{son}} que nous entendons jour et nuit.
TEST: j’entends ces {{même}} âneries tous les jours
## Pluriel des groupes
__gn_nombre_de_1m__
nombre [de|d’] *WORD
<<- /gn/ (morph(\3, ":[NA].*:s", ":[ip]|>o(?:nde|xydation|r)/") and morph(<1, ":(?:G|[123][sp])|<start>", ":[AD]"))
or \3 in aREGULARPLURAL
-3>> =suggPlur(\3) # Ici, « nombre de » devrait probablement être suivi d’un pluriel.
TEST: Je connais nombre d’{{emmerdeur}} et aucun n’est pire que lui.
__gn_det_groupe_de_1m__
[un|une|le|la|ce|cette|mon|ton|son|ma|ta|sa|les|ces|des|mes|tes|ses|nos|vos|leurs|quelques] [>centaine|>millier|>million|>milliard|>dixaine|>douzaine|>multitude|>horde] [de|d’] *WORD
<<- /gn/ morph(\4, ":[NA].*:s", ":[ip]") or \4 in aREGULARPLURAL
-4>> =suggPlur(\4) # Avec des « \2 \3 \4 », mettre au pluriel.
TEST: des centaines de {{bête}} à cornes passèrent devant nous. ->> bêtes
TEST: une multitude d’{{homme}} ->> hommes
## quelque adverbe
|
| ︙ | ︙ | |||
9399 9400 9401 9402 9403 9404 9405 |
TEST: les quelque 2,5 millions d’habitants
TEST: les quelque 12 000 stations-service
## Nombres
__gn_nombre_lettres_1m__
@:B:e:p *WORD
| | | | | | | | 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 |
TEST: les quelque 2,5 millions d’habitants
TEST: les quelque 12 000 stations-service
## Nombres
__gn_nombre_lettres_1m__
@:B:e:p *WORD
<<- /gn/ not value(\1, "|neuf|mille|") 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 \2 in aREGULARPLURAL)
-2>> =suggPlur(\2) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
neuf *WORD
<<- /gn/ ( morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") 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 \2 in aREGULARPLURAL
-2>> =suggPlur(\2) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
mille *WORD
<<- /gn/ (morph(\2, ":[NA].*:s", "*") or \1 in aREGULARPLURAL) and not value(<1, "|le|un|ce|du|")
-2>> =suggPlur(\2) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
TEST: ce sont trois {{idiot}} pas foutus de trouver leur chemin avec un GPS.
TEST: Il a abandonné neuf {{enfant}}.
TEST: On peut trouver mille {{travailleur}} d’un claquement de doigts.
TEST: un logement neuf bâti par des professionnels.
TEST: un mille marin.
__gn_nombre_chiffres_1m__
[0|1|01] @:[NAQ].*:p¬*
<<- /gn/ not value(\2, "|Rois|Corinthiens|Thessaloniciens|") -2>> =suggSing(\2) # Accord de nombre erroné : « \1 » devrait être au singulier.
~^\d+$ *WORD
<<- /gn/ not value(<1, "|/|") and not re.search("^0*[01]$", \1)
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}}
## 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).
TEST: ils trouvent ça de plus en plus {{idiots}} ->> idiot
!!
!!
|
| ︙ | ︙ | |||
9530 9531 9532 9533 9534 9535 9536 |
TEST: avec {{grand}} {{industrie}}
TEST: sur {{petite}} {{pied}}
TEST: Après être demeurée assise pendant quelque temps, elle se leva
TEST: ils choisissent de devenir indépendants
__gn_de_manière_façon_1m__
| | | 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 |
TEST: avec {{grand}} {{industrie}}
TEST: sur {{petite}} {{pied}}
TEST: Après être demeurée assise pendant quelque temps, elle se leva
TEST: ils choisissent de devenir indépendants
__gn_de_manière_façon_1m__
de [manière|façon] @:A.*:(?:m|f:p)¬:[GM]
<<- /gn/ -3>> =suggFemSing(\3) # Accord erroné avec “\2” : l’adjectif devrait être au féminin singulier.
TEST: il fit cela tans de fois et avec brio de manière {{élégant}}.
TEST: elle s’y prit avec cet individu de façon {{charmant}}.
@@@@
|
| ︙ | ︙ |