Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -15883,15 +15883,15 @@ à [de|d’] nombreuses [lieues|verstes|UA|années-lumière] [de|d’] [distance|ici] à [de|d’] nombreuses [lieues|verstes|UA|années-lumière] en [amont|aval] à [de|d’] nombreuses [lieues|verstes|UA|années-lumière] plus loin à [de|d’] nombreuses [lieues|verstes|UA|années-lumière] à la ronde à [de|d’] nombreuses [lieues|verstes|UA|années-lumière] aux alentours - à des [dizaines|douzaines|centaines|milliers|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] [de|d’] [distance|ici] - à des [dizaines|douzaines|centaines|milliers|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] en [amont|aval] - à des [dizaines|douzaines|centaines|milliers|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] plus loin - à des [dizaines|douzaines|centaines|milliers|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] à la ronde - à des [dizaines|douzaines|centaines|milliers|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] aux alentours + à des [dizaines|douzaines|centaines|milliers|millions|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] [de|d’] [distance|ici] + à des [dizaines|douzaines|centaines|milliers|millions|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] en [amont|aval] + à des [dizaines|douzaines|centaines|milliers|millions|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] plus loin + à des [dizaines|douzaines|centaines|milliers|millions|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] à la ronde + à des [dizaines|douzaines|centaines|milliers|millions|milliards] [de|d’] [nanomètres|millimètres|centimètres|décamètres|pas|mètres|kilomètres|verstes|lieues|UA|parsecs|années-lumière] aux alentours à un jet [de|d’] pierre [de|d’] [distance|ici] à un jet [de|d’] pierre en [amont|aval] à un jet [de|d’] pierre plus loin à un jet [de|d’] pierre à la ronde à un jet [de|d’] pierre aux alentours @@ -23074,25 +23074,25 @@ la *WORD <<- /gn/ morph(\3, ":[NA].*:m", ":[efPGWMY]") -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: j’en sais rien, {{la}} {{parti}} est foutu -TEST: {{La}} Cameroun ->> Le -TEST: {{La}} mustang est un cheval sauvage. ->> Le -TEST: {{La}} tableau. ->> Le -TEST: dans la {{parties}} ->> partie -TEST: je connais {{la}} {{parti}} -TEST: la {{vilénies}} des mensonges ->> vilénie -TEST: de {{la}} vin ->> le -TEST: {{la}} {{véhicule}} -TEST: {{La}} {{pris}} -TEST: {{Le}} {{commandeuse}} -TEST: {{Le}} {{commanderesse}} -TEST: {{le}} {{doctoresse}} est là. -TEST: la force de la {{formes}} parfaite +TEST: c’est ennuyeux, la {{parties}} deux est ratée. ->> partie +TEST: j’en sais rien, {{la}} {{parti}} est foutu ->> le|||partie +TEST: {{La}} Cameroun ->> Le +TEST: {{La}} mustang est un cheval sauvage. ->> Le +TEST: {{La}} tableau. ->> Le +TEST: dans la {{parties}} ->> partie +TEST: je connais {{la}} {{parti}} ->> le|||partie +TEST: la {{vilénies}} des mensonges ->> vilénie +TEST: de {{la}} vin ->> le +TEST: {{la}} {{véhicule}} ->> le|||véhiculée +TEST: {{La}} {{pris}} ->> Le|||prise +TEST: {{Le}} {{commandeuse}} ->> La|||commandeur +TEST: {{Le}} {{commanderesse}} ->> La|||commandeur +TEST: {{le}} {{doctoresse}} est là. ->> la|||docteur +TEST: la force de la {{formes}} parfaite ->> forme TEST: à la Richard Nixon Foundation TEST: à ne plus se laisser faire la fois d’après TEST: il pense à la fois où nous avons eu cet accident idiot. @@ -23109,13 +23109,13 @@ <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4) -4>> =suggFemSing(\4, True) && Accord de genre erroné : le syntagme « \2 \3 » est féminin, « \4 » est masculin. <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4) -4>> =suggFemSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. -TEST: La plus grande {{cinglé}}. -TEST: il imaginait de la pluie {{noir}} tombant sur une terre dévastée. -TEST: je voyais de la pluie {{noires}} +TEST: La plus grande {{cinglé}}. ->> cinglée +TEST: il imaginait de la pluie {{noir}} tombant sur une terre dévastée. ->> noire +TEST: je voyais de la pluie {{noires}} ->> noire TEST: Il faut donc examiner ensemble le panneau et la paroi latérale. TEST: Il faut donc examiner ensemble le panneau et la paroi latéraux. TEST: Il faut donc examiner ensemble les panneaux et la paroi latéraux. TEST: Il faut donc examiner ensemble les panneaux et la paroi latérale. @@ -23145,14 +23145,14 @@ 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}} +TEST: Tu sais, {{leur}} {{impatiences}} est notoire. ->> leurs|||impatience +TEST: J’en ai assez de {{leur}} {{délires}} ->> leurs|||délire +TEST: {{Leur}} {{perceptions}} des choses m’exaspère. ->> Leurs|||perception +TEST: dans {{leur}} {{usines}} ->> leurs|||usine __gn_leur_2m__ leur *WORD *WORD <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> @@ -23172,18 +23172,18 @@ <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False) && Accord de genre erroné avec « \4 ». <<- /gn/ morph(\3, ":[NA].*:[si]", ":(?:G|V0)") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4) -4>> =suggSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. <<- /gn/ __also__ and morph(\3, ":[NA].*:i") -2>> leurs && Accord de nombre erroné avec « \3 \4 ». -TEST: leur puissance {{perdues}} -TEST: leur arbre {{élaguée}} -TEST: leur {{petit}} {{grosse}} -TEST: elle se souvenait de leur {{grande}} {{sot}} -TEST: je me souviens de leur verve {{décalé}} -TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous. -TEST: {{leur}} gros {{grains}} -TEST: Que ferons-nous de {{leur}} gros {{grains}} +TEST: leur puissance {{perdues}} ->> perdue +TEST: leur arbre {{élaguée}} ->> élagué +TEST: leur {{petit}} {{grosse}} ->> petite|||gros +TEST: elle se souvenait de leur {{grande}} {{sot}} ->> grand|||sotte +TEST: je me souviens de leur verve {{décalé}} ->> décalée +TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous. ->> insupportable +TEST: {{leur}} gros {{grains}} ->> leurs|||grain +TEST: Que ferons-nous de {{leur}} gros {{grains}} ->> leurs|||grain TEST: 3 milliards d’euros que depuis 2012 l’État leur a volés __gn_leur_3m__ leur *WORD *WORD *WORD @@ -23204,68 +23204,68 @@ 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. -TEST: {{ledit}} femme ne sut comment nous éclairer -TEST: {{ledit}} {{boulangère}} nous enseigna sa méthode -TEST: ledit {{accords}} ne vaut rien. +TEST: {{ledit}} femme ne sut comment nous éclairer ->> ladite +TEST: {{ledit}} {{boulangère}} nous enseigna sa méthode ->> ladite|||boulanger +TEST: ledit {{accords}} ne vaut rien. ->> accord __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}} vélo était en panne -TEST: {{ladite}} {{professeur}} était intarissable -TEST: ladite {{passions}} l’avait conduit à sa perte. +TEST: {{ladite}} vélo était en panne ->> ledit +TEST: {{ladite}} {{professeur}} était intarissable ->> ledit|||professeure +TEST: ladite {{passions}} l’avait conduit à sa perte. ->> passion|passée __gn_aucun_1m__ aucun *WORD <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> aucune && 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. -TEST: {{aucun}} femme ne réagirait si bêtement -TEST: {{aucun}} {{animale}} -TEST: aucun {{accords}} n’y changera rien. +TEST: {{aucun}} femme ne réagirait si bêtement ->> aucune +TEST: {{aucun}} {{animale}} ->> aucune|||animal +TEST: aucun {{accords}} n’y changera rien. ->> accord __gn_aucune_1m__ aucune *WORD <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> aucun && 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: {{aucune}} homme ne comprendrait ça -TEST: {{aucune}} {{conseiller}} ne vint nous aider -TEST: aucune {{passions}} n’est digne qu’on meurt pour elle. +TEST: {{aucune}} homme ne comprendrait ça ->> aucun +TEST: {{aucune}} {{conseiller}} ne vint nous aider ->> aucun|||conseillère|conseillée +TEST: aucune {{passions}} n’est digne qu’on meurt pour elle. ->> passion|passée __gn_nul_1m__ nul *WORD <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> nulle && 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. -TEST: nul {{accords}} n’y changera rien. -TEST: {{nul}} femme ne réagirait si bêtement -TEST: {{nul}} {{ratée}} ne survint +TEST: nul {{accords}} n’y changera rien. ->> accord +TEST: {{nul}} femme ne réagirait si bêtement ->> nulle +TEST: {{nul}} {{ratée}} ne survint ->> nulle|||raté __gn_nulle_1m__ nulle *WORD <<- /gn/ morph(\2, ":[NA].*:m", ":[efGW]") -1>> nul && 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: nulle {{passions}} n’est digne qu’on meurt pour elle. -TEST: {{nulle}} homme ne comprendrait ça -TEST: {{nulle}} {{damné}} à sauver +TEST: nulle {{passions}} n’est digne qu’on meurt pour elle. ->> passion|passée +TEST: {{nulle}} homme ne comprendrait ça ->> nul +TEST: {{nulle}} {{damné}} à sauver ->> nul|||damnée __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. @@ -23287,27 +23287,27 @@ __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}} {{amie}} -TEST: {{un}} des {{chattes}} -TEST: {{une}} des {{chats}} +TEST: {{Un}} {{amie}} ->> Une|||ami +TEST: {{un}} des {{chattes}} ->> une|||chats +TEST: {{une}} des {{chats}} ->> un|||chattes +TEST: un {{slashs}} ->> slash +TEST: un {{fromages}}. ->> fromage +TEST: Un {{ballons}} ->> ballon +TEST: Une {{cinglées}} ->> cinglée +TEST: {{une}} des {{chats}} ->> un|||chattes +TEST: {{une}} kyste ->> un +TEST: {{une}} {{chien}} ->> un|||chienne +TEST: {{une}} des {{joueurs}} ->> un|||joueuses +TEST: un {{cailloux}} ->> caillou +TEST: {{un}} {{petite}} animal ->> une|||petit +TEST: une {{femmes}} ->> femme +TEST: {{une}} {{petit}} ->> un|||petite TEST: Trente et un hommes sur le pont. TEST: Ces enfants n’ont jamais vu quelqu’un lire. -TEST: un {{slashs}} ->> slash -TEST: un {{fromages}}. ->> fromage -TEST: Un {{ballons}} ->> ballon -TEST: Une {{cinglées}} ->> cinglée -TEST: {{une}} des {{chats}} -TEST: {{une}} kyste ->> un -TEST: {{une}} {{chien}} ->> un|||chienne -TEST: {{une}} des {{joueurs}} -TEST: un {{cailloux}} ->> caillou -TEST: {{un}} {{petite}} animal ->> une|||petit -TEST: une {{femmes}} ->> femme -TEST: {{une}} {{petit}} ->> un|||petite TEST: mille et une merveilles TEST: Quatorze heures découpées en quatre parties, une sortant en salles chaque semaine ## un / une @@ -23324,16 +23324,16 @@ <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4) -4>> =suggMasSing(\4, True) && Accord de genre erroné : le syntagme « \2 \3 » est masculin, « \4 » est féminin. <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4) -4>> =suggMasSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. -TEST: un exercice pas très {{utiles}}. ->> utile -TEST: un homme {{grands}} ->> grand -TEST: un homme {{futiles}} ->> futile -TEST: que sais-tu d’un homme {{grande}} comme un arbre -TEST: je me souviens d’un homme {{arrogants}} -TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}. +TEST: un exercice pas très {{utiles}}. ->> utile +TEST: un homme {{grands}} ->> grand +TEST: un homme {{futiles}} ->> futile +TEST: que sais-tu d’un homme {{grande}} comme un arbre ->> grand +TEST: je me souviens d’un homme {{arrogants}} ->> arrogant +TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}. ->> bancal __gn_une_2m__ une *WORD *WORD <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>> @@ -23347,16 +23347,16 @@ <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4) -4>> =suggFemSing(\4, True) && Accord de genre erroné : le syntagme « \2 \3 » est féminin, « \4 » est masculin. <<- /gn/ \3 != "fois" and morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4) -4>> =suggFemSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. -TEST: Une femme {{laconiques}}. ->> laconique -TEST: Une grande {{homme}}. -TEST: une géologue {{intelligents}} -TEST: Et une femme {{déterminées}} -TEST: on parle là d’une femme {{inconnu}} -TEST: on parle d’une Église {{brûlées}} +TEST: Une femme {{laconiques}}. ->> laconique +TEST: Une grande {{homme}}. ->> +TEST: une géologue {{intelligents}} ->> intelligente +TEST: Et une femme {{déterminées}} ->> déterminée +TEST: on parle là d’une femme {{inconnu}} ->> inconnue +TEST: on parle d’une Église {{brûlées}} ->> brûlée TEST: L’or allume le feu d’une cupidité d’une couleur et d’une sorte différentes. __gn_du_1m__ du *WORD @@ -23368,61 +23368,61 @@ dudit *WORD <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> de 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. -TEST: cette bouffe, c’est du {{chiens}} -TEST: cette bouffe, c’est {{du}} {{chienne}} -TEST: les consignes dudit {{présidents}} étaient contratritoires. -TEST: les consignes {{dudit}} {{présidente}} étaient contratritoires. +TEST: cette bouffe, c’est du {{chiens}} ->> chien +TEST: cette bouffe, c’est {{du}} {{chienne}} ->> de la|||chien +TEST: les consignes dudit {{présidents}} étaient contratritoires. ->> président +TEST: les consignes {{dudit}} {{présidente}} étaient contratritoires. ->> de ladite|||président __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. -TEST: {{Ce}} animal. ->> Cet -TEST: {{ce}} {{folle}} espoir qui ne la quitte pas -TEST: ce {{claviers}} -TEST: {{ce}} donne +TEST: {{Ce}} animal. ->> Cet +TEST: {{ce}} {{folle}} espoir qui ne la quitte pas ->> cette|||fou +TEST: ce {{claviers}} ->> clavier +TEST: {{ce}} donne avec passion ->> cette|se __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. -TEST: {{Cet}} {{idiote}}. -TEST: {{cet}} ballon. ->> ce -TEST: cet {{oliviers}} +TEST: {{Cet}} {{idiote}}. ->> Cette|||idiot +TEST: {{cet}} ballon. ->> ce +TEST: cet {{oliviers}} ->> olivier __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. -TEST: {{Cette}} {{animal}} mort. -TEST: cette {{illusions}} que nous voyons plus clair que quiconque +TEST: {{Cette}} {{animal}} mort. ->> Cet|||animale +TEST: cette {{illusions}} que nous voyons plus clair que quiconque ->> illusion __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: {{au}} {{États-Unis}} -TEST: Téléphone {{au}} personne qui ont donné leur accord. -TEST: téléphone {{au}} {{boulangère}} +TEST: {{au}} {{États-Unis}} ->> aux|||États-Unis +TEST: Téléphone {{au}} personne qui ont donné leur accord. ->> à la +TEST: téléphone {{au}} {{boulangère}} ->> à la|||boulanger TEST: au chien, au chat, au poulet TEST: à partir de pièces détachées, au départ entièrement venues de l’étranger puis en partie fabriquées sur place __gn_det_mas_sing_2m__ @@ -23438,22 +23438,22 @@ <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4) -4>> =suggMasSing(\4, True) && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin. <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4) -4>> =suggMasSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. -TEST: cet outil {{terribles}} qu’il a dans les mains -TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle. -TEST: au petit {{publique}} -TEST: Ils jugeront en toute impartialité de ce cas {{délirante}}. +TEST: cet outil {{terribles}} qu’il a dans les mains ->> terrible +TEST: J’aimerais connaître de quel parti {{gauchistes}} on parle. ->> gauchiste +TEST: au petit {{publique}} ->> public +TEST: Ils jugeront en toute impartialité de ce cas {{délirante}}. ->> délirant __gn_det_mas_sing_3m__ [ledit|un|ce|cet|au|quel|audit|dudit|aucun|nul] *WORD *WORD *WORD <<- /gn/ morph(<1, "|:V", "*") and morph(\2, ":[NA].*:[me]:[si]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:[pf]", "*") and \4.islower() -4>> =suggMasSing(\4) && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier. -TEST: ledit martyr oublié {{réhabilitée}} ->> réhabilité +TEST: ledit martyr oublié {{réhabilitée}} ->> réhabilité TEST: un gros connard {{pathétiques}} ->> pathétique TEST: servi pas un style et une exigence historique remarquables TEST: ils eurent besoins d’au minimum cent ans pour s’en remettre @@ -23462,13 +23462,13 @@ <<- /gn/ morph(\1, ":D") >>> <<- /gn/ morph(\2, ">[bcçdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") -1>> =\1.replace("on", "a").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. -TEST: mon {{excellentes}} mémoire -TEST: {{ton}} {{belle}} mémoire -TEST: {{mon}} {{chienne}} +TEST: mon {{excellentes}} mémoire ->> excellente +TEST: {{ton}} {{belle}} mémoire ->> ta|||beau +TEST: {{mon}} {{chienne}} ->> ma|||chien __gn_mon_ton_son_2m__ [mon|ton|son] *WORD *WORD <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> @@ -23475,26 +23475,26 @@ <<- /gn/ morph(\2, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\3, ":[NAQ].*:f", "*") and not apposition(\2, \3) -3>> =suggMasSing(\3, True) && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin. <<- /gn/ morph(\2, ">[aâeéèêiîoôuûyœæ].*:[NAQ].*:f", ":(?:B|G|e|V0|m)") and morph(\3, ":[NAQ].*:m", "*") and not apposition(\2, \3) -3>> =suggFemSing(\3, True) && Accord de genre erroné : « \2 » est féminin, « \3 » est masculin. <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NAQ].*:p", ":[GWsi]") and not apposition(\2, \3) - -3>> =suggMasSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. + -3>> =suggSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. [et|ou|de|d’] [mon|ton|son] *WORD *WORD <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /gn/ morph(\3, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\4, ":[NAQ].*:f", "*") and not apposition(\3, \4) -4>> =suggMasSing(\4, True) && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin. <<- /gn/ morph(\3, ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\4, ":[NAQ].*:m", "*") and not apposition(\3, \4) -4>> =suggFemSing(\4, True) && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin. <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NAQ].*:p", ":[GWsi]") and not apposition(\3, \4) - -4>> =suggMasSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. + -4>> =suggSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. -TEST: il brandissait avec fougue son drapeau {{déchirés}} -TEST: comment osez-vous médire de mon héritage {{glorieuse}} -TEST: on parlait de son escapade {{éperdu}} au milieu de la nuit. -TEST: ton étonnante {{secret}} ne sera pas au programme. -TEST: elle s’étonnait de ton opposition {{grandissantes}} +TEST: il brandissait avec fougue son drapeau {{déchirés}} ->> déchiré +TEST: comment osez-vous médire de mon héritage {{glorieuse}} ->> glorieux +TEST: on parlait de son escapade {{éperdu}} au milieu de la nuit. ->> éperdue +TEST: ton étonnante {{secret}} ne sera pas au programme. ->> secrète +TEST: elle s’étonnait de ton opposition {{grandissantes}} ->> grandissante TEST: le ton monte. __gn_det_mon_ton_son_3m__ [mon|ton|son] *WORD *WORD *WORD @@ -23521,13 +23521,13 @@ <<- /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: {{ma}} {{parti}} -TEST: {{ma}} amour ->> mon -TEST: ma {{carlingues}} +TEST: {{ma}} {{parti}} ->> mon|||partie +TEST: {{ma}} amour ->> mon +TEST: ma {{carlingues}} ->> carlingue TEST: Après cet épisode, la SA a joué un rôle marginal dans l’histoire du Troisième Reich TEST: “ma” est un déterminant féminin __gn_det_fem_sing_2m__ @@ -23543,38 +23543,38 @@ <<- /gn/ morph(\3, ":[NAQ].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NAQ].*:m", "*") and not apposition(\3, \4) -4>> =suggFemSing(\4, True) && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin. <<- /gn/ morph(\3, ":[NAQ].*:[si]", ":G") and morph(\4, ":[NAQ].*:p", ":[GWsi]") and not apposition(\3, \4) -4>> =suggFemSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. -TEST: quelle belle {{étourdi}}, cette gamine -TEST: j’en ai assez de cette ville {{stressées}} en permanence. -TEST: Peut-on imaginer de plus {{beaux}} {{enfant}} ? -TEST: de ma grande {{ami}} +TEST: quelle belle {{étourdi}}, cette gamine ->> étourdie +TEST: j’en ai assez de cette ville {{stressées}} en permanence. ->> stressée +TEST: Peut-on imaginer de plus {{beaux}} {{enfant}} ? ->> beau|||enfants +TEST: de ma grande {{ami}} ->> amie TEST: il fut cette fois ulcéré de voir son entreprise une fois de plus ruinée par la malchance. __gn_det_fem_sing_3m__ [ladite|une|cette|ma|ta|sa|quelle|aucune|nulle] *WORD *WORD *WORD <<- /gn/ morph(<1, "|:V", "*") and morph(\2, ":[NA].*:[fe]:[si]") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:[pm]", "*") and \4.islower() -4>> =suggFemSing(\4) && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au féminin singulier. -TEST: une amie prodigieuse {{récompensé}} ->> récompensée +TEST: une amie prodigieuse {{récompensé}} ->> récompensée __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 +TEST: Chaque {{chiens}}. ->> chien __gn_quelque_1m__ quelque *WORD <<- /gn/ morph(\2, ":[NA].*:p", ":[siG]") and not value(>1, "|que|qu’|") -1>> quelques && Il manque un “s” à « quelque » ou « \2 » doit être au singulier. -TEST: {{Quelque}} amis ->> Quelques +TEST: {{Quelque}} amis ->> Quelques __gn_det_epi_sing_2m__ [chaque|quelque|notre|votre] *WORD *WORD <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> @@ -23592,16 +23592,16 @@ -4>> =switchGender(\4, False) && Accord de genre erroné entre « \3 » et « \4 ». <<- /gn/ __also__ and hasFemForm(\3) -3>> =switchGender(\3, False) && Accord de genre erroné avec « \4 ». <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4) -4>> =suggSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. -TEST: chaque élément {{terrestres}} -TEST: notre {{belle}} {{avenu}} -TEST: ils viennent de chaque coin {{ignorée}} du pays. -TEST: que faire de votre {{ennuyeuse}} {{avocat}} -TEST: de quelque cartable {{vides}} -TEST: de notre petit {{amis}} +TEST: chaque élément {{terrestres}} ->> terrestre +TEST: notre {{belle}} {{avenu}} ->> beau|||avenue +TEST: ils viennent de chaque coin {{ignorée}} du pays. ->> ignoré +TEST: que faire de votre {{ennuyeuse}} {{avocat}} ->> ennuyeux|||avocate +TEST: de quelque cartable {{vides}} ->> vide +TEST: de notre petit {{amis}} ->> ami TEST: Quelque chose tombé dans le puits a souillé l’eau. __gn_det_notre_votre_3m__ [chaque|quelque|notre|votre] *WORD *WORD *WORD @@ -23634,17 +23634,17 @@ les *WORD <<- /gn/ morph(\3, ":[NA].*:s", ":[ipYPGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) -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 -TEST: les {{abricot}} ->> abricots +TEST: ils viennent, les {{petit}} ->> petits +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 +TEST: les {{abricot}} ->> abricots TEST: tels que les décrit Macron TEST: J’en ramasse quelques-unes, puis les glisse dans l’une de mes poches, ça me fera un souvenir. __gn_les_2m__ @@ -23664,17 +23664,17 @@ -4>> =switchGender(\4, True) && Accord de genre erroné entre « \3 » et « \4 ». <<- /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: les {{petites}} {{oubliés}} -TEST: c’est ça, et les femmes {{retrouvés}} seront emmenées à l’hôpital. -TEST: fais ce que tu peux, ou les {{petites}} {{perdus}} le seront à jamais -TEST: ça ou les éternels {{imbécile}} du coin -TEST: les {{éventuels}} {{fiches}} +TEST: les pitres {{imbécile}} ->> imbéciles +TEST: il faut en convenir et les femmes {{oubliés}} seront satisfaites. ->> oubliées +TEST: les {{petites}} {{oubliés}} ->> petits|||oubliées +TEST: c’est ça, et les femmes {{retrouvés}} seront emmenées à l’hôpital. ->> retrouvées +TEST: fais ce que tu peux, ou les {{petites}} {{perdus}} le seront à jamais ->> petits|||perdues +TEST: ça ou les éternels {{imbécile}} du coin ->> imbéciles +TEST: les {{éventuels}} {{fiches}} ->> éventuelles|||fichés TEST: les moins éloignées possible TEST: Les besoins minimums en matière de sommeil sont-ils les mêmes d’un individu à l’autre ? TEST: cette attention de tous les instants portée à la boussole. TEST: les agrandissements photo TEST: Il faut donc examiner ensemble les panneaux et les parois latéraux. @@ -23686,25 +23686,25 @@ leurs *WORD <<- /gn/ morph(\2, ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) -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}} -TEST: {{leurs}} {{abricot}} +TEST: {{leurs}} {{action}} ->> leur|||actions +TEST: {{leur}} {{données}} ->> leurs|||donnée +TEST: {{leurs}} {{abricot}} ->> leur|||abricots __gn_det_pluriel_1m__ [des|mes|tes|ses|nos|vos|quelques|lesdits|lesdites|desdits|desdites|auxdits|auxdites|moult] *WORD <<- /gn/ morph(\2, ":[NA].*:s", ":[ipGW]") and not (value(>1, "|et|ou|") and morph(>2, ":[NA]")) -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. ->> femmes -TEST: des {{abricot}} ->> abricots -TEST: des {{son}} que nous entendons jour et nuit. ->> sons +TEST: des {{pain}} ->> pains +TEST: Quelques {{homme}}. ->> hommes +TEST: plusieurs {{femme}} sont venues. ->> femmes +TEST: des {{abricot}} ->> abricots +TEST: des {{son}} que nous entendons jour et nuit. ->> sons 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 @@ -23712,17 +23712,17 @@ -2>> =suggPlur(\2) && Accord de nombre erroné : « \2 » devrait être au pluriel. <<- /gn/ __also__ and morph(\2, ">[bcçdfglklmnpqrstvwxz].*:m", ":f") >>> <<- /gn/ \1.endswith("x") or \1.endswith("X") -1>> au && Accord de nombre erroné : « \2 » est au singulier. <<- /gn/ __else__ -1>> ce && Accord de nombre erroné : « \2 » est au singulier. -TEST: {{ces}} {{détournement}} de fonds et ces vols ->> ce|||détournements -TEST: ces {{étudiant}} sont légion. ->> étudiants -TEST: je vais {{aux}} {{cinéma}} ->> au|||cinémas -TEST: il l’a donné aux {{étudiant}} ->> étudiants -TEST: aux {{personne}} ->> personnes -TEST: j’entends ces {{même}} âneries tous les jours ->> mêmes -TEST: clafoutis aux {{abricot}} ->> abricots +TEST: {{ces}} {{détournement}} de fonds et ces vols ->> ce|||détournements +TEST: ces {{étudiant}} sont légion. ->> étudiants +TEST: je vais {{aux}} {{cinéma}} ->> au|||cinémas +TEST: il l’a donné aux {{étudiant}} ->> étudiants +TEST: aux {{personne}} ->> personnes +TEST: j’entends ces {{même}} âneries tous les jours ->> mêmes +TEST: clafoutis aux {{abricot}} ->> abricots __gn_det_epi_plur_2m__ [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult] *WORD *WORD <<- /gn/ not value(<1, "|et|ou|de|d’|au|aux|") and not morph(\3, ">seul/") >>> @@ -23741,14 +23741,14 @@ <<- /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")) and not (value(\1, "|de|d’|") and value(<1, "|un|une|")) -4>> =suggPlur(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel. -TEST: ces {{beaux}} {{institutions}} -TEST: nos petites {{fille}} -TEST: de plusieurs {{grands}} {{avocates}} -TEST: de vos défauts {{terrible}}, je connais presque tout. +TEST: ces {{beaux}} {{institutions}} ->> belles||| +TEST: nos petites {{fille}} ->> filles +TEST: de plusieurs {{grands}} {{avocates}} ->> grandes|||avocats +TEST: de vos défauts {{terrible}}, je connais presque tout. ->> terribles TEST: Les éléments caractéristiques liés à ses valeurs historique et architecturale TEST: Une des pierres veinée de rouge… TEST: Pour maintenir le potentiel de membrane qui lui permet de communiquer avec ses voisins sous forme d’influx nerveux, un neurone a besoin d’énergie. TEST: ces religieux inflexibles envers les femmes mais compatissants envers les tyrans qui soutiennent leur religion. TEST: le bruit de nos pas étouffé par l’épais tapis. @@ -32550,11 +32550,11 @@ !!!! Verbes sans sujets !! !! !! __conj_que_où_comment_verbe_sans_sujet!3__ - [que|qu’|où|comment|combien|dont|quand|pourquoi|puisque|puisqu’|lorsque|lorqu’|auquel|auxquels|auxquelles|duquel|desquels|desquelles|lequel|laquelle|lesquels|lesquelles|si] @:[12][sp]¬:(?:G|W|3[sp]|Y|P|Q|N|A|M|VC) + [que|qu’|où|comment|combien|dont|quand|pourquoi|puisque|puisqu’|lorsque|lorsqu’|auquel|auxquels|auxquelles|duquel|desquels|desquelles|lequel|laquelle|lesquels|lesquelles|si] @:[12][sp]¬:(?:G|W|3[sp]|Y|P|Q|N|A|M|VC) <<- /conj/ morph(\2, ":[12]s") and not value(>1, "|je|tu|") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. <<- /conj/ __else__ and morph(\2, ":[12]p") and not value(>1, "|nous|vous|") -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. TEST: Qu’est-ce que tu crois que {{deviens}} réellement, immanquablement et subitement cet homme après une telle dérouillée ? TEST: peu importe ce que tu crois du lieu où l’{{abandonnerais}} ce salopard…