Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -1939,33 +1939,17 @@ grave <<- morph(<1, ":D") =>> (\1, ":W") -__da_prépositions__ +__da_mots_grammaticaaux__ + autour [de|du|d’|des] + <<- not morph(<1, ":D.*:[me]") =>> exclude(\1, ":N") + dans <<- not morph(<1, ":D.*:p|>[a-z]+ième/") =>> select(\1, ":R") - passé [|,|$:R] - <<- =>> exclude(\1, ":G") - - y compris - <<- not value(<1, "|n’|j’|tu|t’|m’|s’|") ~>> ␣ - <<- __also__ =>> define(\1, ":G:R") - - -__da_puis__ - puis - <<- not value(<1, "|je|ne|n’|le|la|l’|les|lui|nous|vous|leur|") =>> =exclude(\1, ":V") - - -__da_SA__ - SA - <<- morph(<1, ":D") =>> exclude(\1, ":D") - - -__da_mots_grammaticaaux__ [le|ce|cet|mon|ton|son|quel|quelque|notre|votre|un|leur|ledit|dudit|des|les|quelques|quel|quelle|quels|quelles] [son|ton] <<- =>> exclude(\2, ":D") [la|ma|ta|sa|les|des|nos|vos|leur|leurs|quel|quelle|quels|quelles] personne <<- =>> select(\2, ":N") @@ -1974,10 +1958,26 @@ <<- =>> select(\2, ":A") [le|l’|mon|notre|votre|leur|mes|tes|ses|nos|vos|leurs|quel|quels|quelle|quelles] point <<- =>> select(\2, ":N") + puis + <<- not value(<1, "|je|ne|n’|le|la|l’|les|lui|nous|vous|leur|") =>> =exclude(\1, ":V") + + SA + <<- morph(<1, ":D") =>> exclude(\1, ":D") + + passé [|,|$:R] + <<- =>> exclude(\1, ":G") + + vu [|,|$:R] + <<- =>> exclude(\1, ":G") + + y compris + <<- not value(<1, "|n’|j’|tu|t’|m’|s’|") ~>> ␣ + <<- __also__ =>> define(\1, ":G:R") + __da_autre_chose_quelque_chose__ quelque chose <<- =>> define(\2, ":N:m:s") @@ -1988,10 +1988,16 @@ __da_groupe_nominal__ aucun @:[NA].*:[me] <<- =>> exclude(\2, ":V") + avions + <<- not tag_before(\1, "_1p_") and not value(<1, "|n’|") and not value(>1, "|nous|") =>> select(\-1, ":N") + + l’ avions + <<- morph(<1, ":Y") =>> select(\-1, ":N") + bac + ~^\d\d?$ <<- ~>> ␣ <<- =>> define(\1, ":N:e:i") [de|d’] @:¬:[YD] @@ -11508,10 +11514,19 @@ [toutes|tous] ensembles <<- /sgpl/ -2>> ensemble && Ici, “ensemble” est vraisemblablement un adverbe, donc invariable.|https://fr.wiktionary.org/wiki/ensemble TEST: Allons-y toutes {{ensembles}} ->> ensemble + +# en particulier +__sgpl_en_particulier__ + en particuliers + <<- /conf/ not morph(<1, ">agir/") ->> en particulier && Locution “en particulier” toujours au singulier.|https://fr.wiktionary.org/wiki/en_particulier + +TEST: en général et {{en particuliers}} +TEST: agir en particulier averti. + # en rangs serrés __sgpl_en_rangs_serrés__ en rang serré <<- /sgpl/ ->> en rangs serrés|en ordre serré && Au pluriel, car il y a plusieurs rangs. Vous pouvez aussi utiliser l’expression “en ordre serré”. @@ -13202,11 +13217,11 @@ pour la [première|seconde|dernière|~ième$] fois pour la [première|seconde|dernière|~ième$] fois [de|d’] [ma|ta|sa|notre|votre|leur] ?misérable¿ vie ?[misérable|insignifiante|palpitante]¿ pour la [première|seconde|dernière|~ième$] fois [de|d’] [mon|ton|son|notre|votre|leur] ?[misérable|insignifiante|palpitante]¿ existence ?[misérable|insignifiante|palpitante]¿ pour la [seconde|dernière|~ième$] fois [de|d’] suite pour [trois|3] fois rien - pour une fois + pour [cette|une] fois quelquefois quelques fois sans y [réfléchir|songer|penser] à [deux|2] fois souventes fois toutefois @@ -13700,10 +13715,11 @@ dans ce cas [précis|particulier] dans ces cas [précis|particuliers] dans l’ [idéal|immédiat] dans la mesure du possible dans la dernière ligne droite + dans le feu de l’ action dans leur globalité dans leur grande majorité dans tout [cela|ça|ceci] dans un cas comme dans l’autre dans une [certaine|large|moindre] mesure @@ -14274,13 +14290,14 @@ sur [mon|ton|son|notre|votre|leur] [trente-et-un|31] sur [mon|ton|son|notre|votre|leur] trente et un sur ce , sur ce plan-là sur la défensive - sur le fil du rasoir sur la forme comme sur le fond sur la même longueur d’ onde + sur la sellette + sur le fil du rasoir sur le plan [local|cantonal|départemental|régional|national|européen|américain|africaine|asiatique|continental|international|planétaire|galactique|universel] sur le pied [de|d’] guerre sur le qui-vive surtout s’ il [te|vous] [plaît|plait] @@ -15140,10 +15157,11 @@ >fosse à [merde|>ordure|purin] >fosse aux lions >fou à lier [>fourgon|>fourgonnette] [de|d’] location >frayeur [de|d’] tous les diables + >frein à >tambour >frousse [de|d’] tous les diables >fuite en avant >fusil à [plomb|pompe] >garde à vue >garde du corps @@ -15341,11 +15359,10 @@ >salle à manger >salle [de|d’] [attente|>bain|bal|conférence|lecture|séjour|vente] >salon [de|d’] coiffure sas [de|d’] [confinement|décompression|décontamination|désinfection|livraison|protection|secours|sécurité] >sclérose en plaques - [secret+s] défense >seconde d’ arc >sel [de|d’] [aluminium|ammonium|mer] >serpent à sonnette >service d’ ordre >seuil [de|d’] tolérance @@ -15437,11 +15454,11 @@ >con comme une valise sans >poignée >corvéable à merci >court sur pattes [cousu+ses] [main] [cousu+ses] [de|d’] fil blanc - [daté+ses] du [1er|1ᵉʳ|1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12|13|14|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31] {mois} ?[prochain|passé|dernier|~^[0-9]{2,5}$]¿ + [daté+ses] du [1er|1ᵉʳ|1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12|13|14|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31] {mois} ?[prochain|passé|dernier|précédent|~^[0-9]{2,5}$]¿ >digne [de|d’] [confiance|foi] >digne [de|d’] ce nom >droit comme un i >fort en gueule >fou [de|d’] rage ?[contenue|retenue]¿ @@ -15461,10 +15478,11 @@ >rapide à la comprenette [réglé+ses] comme du papier à musique [remis+es] à plat >sain [de|d’] [corps|esprit] >sain [de|d’] [corps|esprit] et [de|d’] [corps|esprit] + [secret+s] défense >sourd comme un pot >sujet à interprétation >sujet à interprétations diverses >têtu comme une [bourrique|mule] >têtu comme un [âne|bourriquot|mulet] @@ -16025,18 +16043,18 @@ à la dernière [minute|seconde] @¬:A.*:[fe]:[si] à la dernière [minute|seconde] [|,|)] <<- ~1:-2>> * - à la longue @:¬:N.*:[fe]:[si] - à la longue [|,|)] - à la dérive @:¬:A.*:[fe]:[si] - à la dérive [|,|)] - à l’ époque @:¬:A.*:[fe]:[si] - à l’ époque [|,|)] - à l’ identique @:¬:N.*:[si] - à l’ identique [|,|)] + à la longue @:¬:N.*:[fe]:[si] + à la longue [|,|)] + à la [dérive|mode] @:¬:A.*:[fe]:[si] + à la [dérive|mode] [|,|)] + à l’ époque @:¬:A.*:[fe]:[si] + à l’ époque [|,|)] + à l’ identique @:¬:N.*:[si] + à l’ identique [|,|)] <<- ~1:-2>> * à répétition @¬:A.*:[fe]:[si] à répétition [|,|)] <<- ~1:2>> * @@ -16201,12 +16219,14 @@ pour de bon @:¬:[NA].*:m:s pour de bon [|,|)] <<- ~1:3>> * - pour partie @:¬:A.*:f:s - pour partie [|,|)] + pour la majeure partie @:¬:A.*:[fe]:[si] + pour la majeure partie [|,|)] + pour partie @:¬:A.*:[fe]:[si] + pour partie [|,|)] <<- ~1:2>> * pour un temps @:¬:[NA].*:[me]:[si] pour un temps [|,|)] <<- ~1:3>> * @@ -16216,12 +16236,14 @@ sans détour @:¬:[NA].*:[me]:[si] sans détour [|,|)] <<- ~1:2>> * - sans [réserve|surprise] @:¬:[NA].*:[fe]:[si] - sans [réserve|surprise] [|,|)] + sans grande surprise @:¬:[NA].*:[fe]:[si] + sans grande surprise [|,|)] + sans [réserve|surprise] @:¬:[NA].*:[fe]:[si] + sans [réserve|surprise] [|,|)] <<- ~1:2>> * semblait-il semble-t-il <<- not value(<1, "|ça|cela|ceci|me|m’|te|t’|lui|nous|vous|leur|ne|n’|") ~>> * @@ -16368,10 +16390,11 @@ >battre en [brèche|retraite] >boire comme un trou [>brûler|>bruler] à vif >charger à blanc >chauffer à blanc + >classer sans suite >compter à rebours >condamner à mort >couler à ?grands¿ flots >cour d’ assises >demander [assistance|audience|conseil|pardon] @@ -16694,11 +16717,11 @@ TEST: beaucoup d’entre nous se souviennent de ce fameux jour TEST: Hormis les enseignements fondamentaux transmis à la petite école, la suite n’est qu’une infinie perte de temps où l’on bourre l’esprit des élèves de connaissances parfaitement inutiles, dont la plupart d’entre nous ne gardent aucun souvenir sitôt les portes du lycée franchies. TEST: il ne désirait ne plus le faire… TEST: Ma chambre est trois fois plus grande que la tienne. TEST: Il est trois ans plus jeune que moi. - +TEST: On peut sans doute laisser sans grand problème toutes les baskets à la mode être produites à l’autre bout du monde @@@@ @@@@ @@@@ @@ -18085,21 +18108,22 @@ TEST: la {{gente}} masculine est grossière et l’a toujours été. # golf / golfe __conf_golf_golfe2__ - >jouer au golfe + >jouer au golfe + >pratiquer le golfe <<- /conf/ -3>> golf && Confusion. Un golfe est une zone maritime qui avance dans les terres. Pour le sport, écrivez “golf”. TEST: il joue au {{golfe}} tous les jours. TEST: Jouer au golf. # goutte / goûte __conf_goûte_goutte__ [goûte|goûtes|goute|goutes] [de|d’] [alcool|acide|amour|bière|eau|folie|huile|javel|lait|liquide|mercure|miel|peinture|pluie|rhum|rosée|salive|sang|semence|sperme|sueur|urine|vin|vinaigre|whisky] - <<- /conf/ -1>> =\1.replace("û", "u").replace("t", "tt") + <<- /conf/ -1>> =\1.replace("û", "u").replace("t", "tt").replace("Û", "U").replace("T", "TT") && Confusion : “goûter” signifie utiliser le sens du goût. Pour une petite quantité de liquide, écrivez “goutte”.|https://fr.wiktionary.org/wiki/goutte >passer entre les [goûte+s|goute+s] <<- /conf/ --1>> gouttes && Confusion. Une particule de fluide s’écrit “goutte”.|https://fr.wiktionary.org/wiki/goutte @@ -18900,16 +18924,40 @@ TEST: ils sont tellement {{salles}} TEST: pour le service en salle # sans / sens -__conf_sens_dessus_dessous__ - sans dessus dessous +__conf_sang_sans_sens__ + [sans|san] dessus dessous sans-dessus-dessous <<- /conf/ ->> sens dessus dessous && Confusion. Locution adverbiale : « sens dessus dessous ».|https://fr.wiktionary.org/wiki/tache + [sans|san] [bleu|royal|mêlé] + [sans|san] humain + [sans|san] de la victime + [sans|san] des victimes + [sans|san] >avoir >couler + [sans|san] >couler + [sans|san] qui >couler + [sans|san] qui >avoir >couler + <<- /conf/ morph(<1, ":D.*:[me]") -1>> sang && Confusion probable. Pour évoquer le fluide sanguin, écrivez “sang”.|https://fr.wiktionary.org/wiki/sang + + [couvert+ses|recouvert+ses] [de|d’] [sans|san|sens] + >avoir [ça|cela|ceci] dans le [sans|san|sens] + >buveur [de|d’] [sans|san|sens] + >flot [de|d’] [sans|san|sens] + la voix du [sans|san|sens] + >pisser [le|du] [sans|sens] + c >être [mon|ton|son|notre|votre|leur|leurs] [sans|san] + <<- /conf/ --1>> sang && Confusion probable. Pour évoquer le fluide sanguin, écrivez “sang”.|https://fr.wiktionary.org/wiki/sang + TEST: Tout est {{sans dessus dessous}}. +TEST: le {{sans}} a coulé. +TEST: le {{san}} qui coulera encore sera sur vos mains +TEST: elle a ça dans le {{sans}} +TEST: elle pissait le {{sans}} +TEST: ce témoignage va dans le sens de la victime. # aller sans dire __conf_aller_sans_dire__ [il|ça|cela|ceci] >aller s’ en dire @@ -19220,10 +19268,11 @@ TEST: L’{{amande}} {{amer}} TEST: l’{{amicale}} {{animal}} TEST: l’amour {{immortels}} TEST: du chien et de l’{{excellente}} {{collier}} qu’il avait autour du cou. TEST: du chien et de l’étonnant {{colliers}} qu’il avait autour du cou. +TEST: elle prendra l’{{avions}} dès que possible __gn_le_1m__ , le *WORD <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") -2>> =suggLesLa(\3) && Accord de genre erroné : « \3 » est féminin. @@ -19262,18 +19311,18 @@ TEST: Comme avec l’Hyperloop, le bus chinois conçu pour passer au-dessus des voitures __gn_le_2m__ le *WORD *WORD - <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>> + <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3) -3>> =suggMasSing(\3, True) && Accord de genre erroné : « \1 \2 » est masculin, « \3 » est féminin. <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3) -3>> =suggMasSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. [et|ou] le *WORD *WORD - <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not \4.startswith("seul") >>> + <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not morph(\4, ">seul/") >>> <<- /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é : « \2 \3 » est masculin, « \4 » est féminin. <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\4, \4) -4>> =suggMasSing(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. @@ -19324,18 +19373,18 @@ TEST: il pense à la fois où nous avons eu cet accident idiot. __gn_la_2m__ la *WORD *WORD - <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3) -3>> =suggFemSing(\3, True) && Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin. <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3) -3>> =suggFemSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. [et|ou|de|d’] la *WORD *WORD - <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /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é : « \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. @@ -19365,21 +19414,21 @@ TEST: dans {{leur}} {{usines}} __gn_leur_2m__ leur *WORD *WORD - <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*"))) and not apposition(\2, \3) -3>> =switchGender(\3, False) && Accord de genre erroné entre « \2 » et « \3 ». <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, False) && Accord de genre erroné avec « \3 ». <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3) -3>> =suggSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. <<- /gn/ __also__ and morph(\2, ":[NA].*:i") -1>> leurs && Accord de nombre erroné avec « \2 \3 ». [et|ou|de|d’] leur *WORD *WORD - <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*"))) and not apposition(\3, \4) -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) @@ -19521,18 +19570,18 @@ ## un / une __gn_un_2m__ un *WORD *WORD - <<- /gn/ not value(<1, "|et|ou|d’|") and not \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3) -3>> =suggMasSing(\3, True) && Accord de genre erroné : « \1 \2 » est masculin, « \3 » est féminin. <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3) -3>> =suggMasSing(\3) && Accord de nombre erroné avec « \2 » : « \3 » devrait être au singulier. [et|ou|d’] un *WORD *WORD - <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /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é : « \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. @@ -19544,18 +19593,18 @@ TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}. __gn_une_2m__ une *WORD *WORD - <<- /gn/ not value(<1, "|et|ou|d’|") and not \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3) -3>> =suggFemSing(\3, True) && Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin. <<- /gn/ \2 != "fois" and morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3) -3>> =suggFemSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. [et|ou|d’] une *WORD *WORD - <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /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é : « \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. @@ -19635,18 +19684,18 @@ 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__ [ce|cet|quel|au|ledit|dudit|audit|aucun|nul] *WORD *WORD - <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3) -3>> =suggMasSing(\3, True) && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin. <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3) -3>> =suggMasSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. [et|ou|de|d’] [ce|cet|quel|au|ledit|dudit|audit|aucun|nul] *WORD *WORD - <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /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. @@ -19668,20 +19717,20 @@ TEST: {{mon}} {{chienne}} __gn_mon_ton_son_2m__ [mon|ton|son] *WORD *WORD - <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NA].*:m", ":(?:B|G|e|V0|f)") and morph(\3, ":[NA].*: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œæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\3, ":[NA].*: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, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3) -3>> =suggMasSing(\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 \4.startswith("seul") >>> + <<- /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, ":[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, ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and morph(\4, ":[NA].*: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, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4) @@ -19709,18 +19758,18 @@ TEST: Après cet épisode, la SA a joué un rôle marginal dans l’histoire du Troisième Reich __gn_det_fem_sing_2m__ [ma|ta|sa|cette|quelle|ladite] *WORD *WORD - <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NAQ].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NAQ].*:m", "*") and not apposition(\2, \3) -3>> =suggFemSing(\3, True) && Accord de genre erroné : « \1 \2 » est féminin, « \3 » est masculin. <<- /gn/ morph(\2, ":[NAQ].*:[si]", ":G") and morph(\3, ":[NAQ].*:p", ":[GWsi]") and not apposition(\2, \3) -3>> =suggFemSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. [et|ou|de|d’] [ma|ta|sa|cette|quelle|ladite] *WORD *WORD - <<- /gn/ not morph(<1, ":[NAQ]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ not morph(<1, ":[NAQ]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /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. @@ -19746,20 +19795,20 @@ TEST: {{Quelque}} amis __gn_det_epi_sing_2m__ [chaque|quelque|notre|votre] *WORD *WORD - <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*"))) and not apposition(\2, \3) -3>> =switchGender(\3, False) && Accord de genre erroné entre « \2 » et « \3 ». <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, False) && Accord de genre erroné avec « \3 ». <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3) -3>> =suggSing(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier. [et|ou|de|d’] [chaque|quelque|notre|votre] *WORD *WORD - <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*"))) and not apposition(\3, \4) -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) @@ -19812,20 +19861,20 @@ TEST: J’en ramasse quelques-unes, puis les glisse dans l’une de mes poches, ça me fera un souvenir. __gn_les_2m__ les *WORD *WORD - <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*"))) and not apposition(\2, \3) -3>> =switchGender(\3, True) && Accord de genre erroné entre « \2 » et « \3 ». <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True) && Accord de genre erroné avec « \3 ». <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A")) -3>> =suggPlur(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel. [et|ou] les *WORD *WORD - <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not \3.startswith("seul") >>> + <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not morph(\3, ">seul/") >>> <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*"))) and not apposition(\3, \4) -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")) @@ -19884,26 +19933,26 @@ TEST: clafoutis aux {{abricot}} __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 \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|de|d’|au|aux|") and not morph(\3, ">seul/") >>> <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*"))) and not apposition(\2, \3) -3>> =switchGender(\3, True) && Accord de genre erroné entre « \2 » et « \3 ». <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True) && Accord de genre erroné avec « \3 ». <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A")) -3>> =suggPlur(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel. [et|ou|de|d’] [ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|aux|moult] *WORD *WORD - <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /gn/ ((morph(\3, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\4, ":[NA].*:f", "*")) or (morph(\3, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\4, ":[NA].*:m", "*"))) and not apposition(\3, \4) -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")) - and not (\1.startswith("de") and value(<1, "|un|une|")) + 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}} @@ -19977,16 +20026,16 @@ __gn_det_plur_3m__ [ces|mes|tes|ses|nos|vos|quels|quelles|aux] *WORD *WORD *WORD [plusieurs|quelques|certains|certaines|moult] *WORD *WORD *WORD [lesdits|lesdites|desdits|desdites|auxdits|auxdites] *WORD *WORD *WORD <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)") - and morph(\4, ":[NA].*:s", "*") and \4.islower() and not before("(?i)\\bune? de +$") and not \4.startswith("seul") + and morph(\4, ":[NA].*:s", "*") and \4.islower() and not before("(?i)\\bune? de +$") and not morph(\4, ">seul/") -4>> =suggPlur(\4) && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel. leurs *WORD *WORD *WORD <<- /gn/ morph(\2, ":[NA].*:[pi]", "[123][sp]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)") - and morph(\4, ":[NA].*:s", "*") and not before("(?i)\\bune? de +$") and not \4.startswith("seul") + and morph(\4, ":[NA].*:s", "*") and not before("(?i)\\bune? de +$") and not morph(\4, ">seul/") -4>> =suggPlur(\4) && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel. TEST: ces petites sottes {{déjantée}} TEST: Leurs grands plans {{dépassé}} par les évènements TEST: Prendre goût aux heures passées seul à marcher @@ -20200,22 +20249,22 @@ TEST: {{Quels}} qu’en soient les raisons ->> Quelles __gn_det_mas_plur_2m__ [certains|quels|lesdits|desdits|auxdits] *WORD *WORD - <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3) -3>> =suggMasPlur(\3, True) && Accord de genre erroné : « \2 » est masculin, « \3 » est féminin. <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A")) -3>> =suggMasPlur(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel. [et|ou|de|d’] [certains|quels|lesdits|desdits|auxdits] *WORD *WORD - <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \3.startswith("seul") >>> + <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4) -4>> =suggMasPlur(\4, True) && Accord de genre erroné : « \3 » est masculin, « \4 » est féminin. <<- /gn/ morph(\3, ":[NA].*:[pi]", ":G") and morph(\4, ":[NA].*:s", "*") and not apposition(\3, \4) and not (value(>1, "|et|,|") and morph(>2, ":A")) - and not (\1.startswith("de") and value(<1, "|un|une|")) + and not (value(\1, "|de|d’|") and value(<1, "|un|une|")) -4>> =suggMasPlur(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel. TEST: certains claviers {{dégueulasse}} TEST: certains hommes {{petite}} TEST: auxdits hommes {{connu}} @@ -20225,22 +20274,22 @@ TEST: chez certains la revue Limite provoque des crises d’hystérie. __gn_det_fem_plur_2m__ [certaines|quelles|lesdites|desdites|auxdites] *WORD *WORD - <<- /gn/ not value(<1, "|et|ou|de|d’|") and not \3.startswith("seul") >>> + <<- /gn/ not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>> <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3) -3>> =suggFemPlur(\3, True) && Accord de genre erroné : « \2 » est féminin, « \3 » est masculin. <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A")) -3>> =suggFemPlur(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel. [et|ou|de|d’] [certaines|quelles|lesdites|desdites|auxdites] *WORD *WORD - <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not \4.startswith("seul") >>> + <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>> <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4) -4>> =suggFemPlur(\4, True) && Accord de genre erroné : « \3 » est féminin, « \4 » est masculin. <<- /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 (\1.startswith("de") and value(<1, "|un|une|")) + and not (value(\1, "|de|d’|") and value(<1, "|un|une|")) -4>> =suggFemPlur(\4) && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel. TEST: certaines idioties {{stupide}} TEST: quelles grandes {{idiots}} TEST: je ne sais guère de quelles âneries {{proférés}} on parle. @@ -22726,11 +22775,10 @@ <<- /1>> _d_entre_nous_ [certains|certaines|plusieurs|quelques-uns|quelques-unes] d’ entre vous <<- /1>> _d_entre_vous_ - [aucun|aucune] des *WORD [ne|n’] <<- ~2:3>> * [aucun|aucune] des *WORD *WORD [ne|n’] <<- ~2:4>> * @@ -22737,12 +22785,12 @@ beaucoup [de|d’] *WORD beaucoup [de|d’] *WORD ?,¿ [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|iel|iels|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles] beaucoup [de|d’] *WORD @:[VR]¬:[NAP] beaucoup [de|d’] *WORD , @¬:[NA] - <<- morph(\3, ":[NA].*:p", ":(?:[NA].*:[si]|G)") /1>> bcp_plur - <<- morph(\3, ":[NA].*:s", ":(?:[NA].*:[pi]|G)") /1>> bcp_sing + <<- morph(\3, ":[NA].*:p", ":(?:[NA].*:[si]|G)") /1>> _bcp_plur_ + <<- __else__ and morph(\3, ":[NA].*:s", ":(?:[NA].*:[pi]|G)") /1>> _bcp_sing_ <<- ~2:3>> * la plupart des *WORD la plupart des *WORD ?,¿ [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|iel|iels|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles] la plupart des *WORD @:[VR]¬:[NAP] @@ -24104,29 +24152,51 @@ <<- /ppas/ not value(\-1, "|légion|néant|réalité|") and ((morph(\1, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWMfe]")) or (morph(\1, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and (morph(\2, ":[123]s") or (not tag(\1, "_enum_") and morph(\2, ":P"))) --1>> =switchGender(\-1) && Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. - [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD - [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (>avoir) [été|semblé|paru] *WORD - [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler]) [devenus|redevenus|restés|demeurés|devenues|redevenues|restées|demeurées] *WORD - [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_verbeétat_) ?[en|y]¿ /_LVEF_verbe_verbeétat_ *WORD - [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_être_ppas_) ?[en|y]¿ être /_LVEF_verbe_être_ppas_ *WORD - [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_avoir_ppas_) ?[en|y]¿ avoir /_LVEF_verbe_avoir_ppas_ *WORD - [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_à_verbeétat_) à ?[ne|n’]¿ ?[en|y]¿ /_LVEF_verbe_à_verbeétat_ *WORD - [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_de_verbeétat_) [de|d’] ?[ne|n’]¿ ?[en|y]¿ /_LVEF_verbe_de_verbeétat_ *WORD + [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD + [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (>avoir) [été|semblé|paru] *WORD + [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler]) [devenus|redevenus|restés|demeurés|devenues|redevenues|restées|demeurées] *WORD + [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_verbeétat_) ?[en|y]¿ /_LVEF_verbe_verbeétat_ *WORD + [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_être_ppas_) ?[en|y]¿ être /_LVEF_verbe_être_ppas_ *WORD + [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_avoir_ppas_) ?[en|y]¿ avoir /_LVEF_verbe_avoir_ppas_ *WORD + [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_à_verbeétat_) à ?[ne|n’]¿ ?[en|y]¿ /_LVEF_verbe_à_verbeétat_ *WORD + [|,|$:Cs] [les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_de_verbeétat_) [de|d’] ?[ne|n’]¿ ?[en|y]¿ /_LVEF_verbe_de_verbeétat_ *WORD <<- /ppas/ not value(\-1, "|légion|néant|réalité|") and ((morph(\1, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWMfe]")) or (morph(\1, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and morph(\2, ":(?:[123]p|P)") --1>> =switchGender(\-1) && Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. - *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?[ne|n’]¿ ?[en|y]¿ + [|,|$:Cs] certains (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD + [|,|$:Cs] certains (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (>avoir) [été|semblé|paru] *WORD + [|,|$:Cs] certains (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler]) [devenus|redevenus|restés|demeurés] *WORD + [|,|$:Cs] certains (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_verbeétat_) ?[en|y]¿ /_LVEF_verbe_verbeétat_ *WORD + [|,|$:Cs] certains (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_être_ppas_) ?[en|y]¿ être /_LVEF_verbe_être_ppas_ *WORD + [|,|$:Cs] certains (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_avoir_ppas_) ?[en|y]¿ avoir /_LVEF_verbe_avoir_ppas_ *WORD + [|,|$:Cs] certains (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_à_verbeétat_) à ?[ne|n’]¿ ?[en|y]¿ /_LVEF_verbe_à_verbeétat_ *WORD + [|,|$:Cs] certains (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_de_verbeétat_) [de|d’] ?[ne|n’]¿ ?[en|y]¿ /_LVEF_verbe_de_verbeétat_ *WORD + <<- /ppas/ not value(\-1, "|légion|néant|réalité|") and morph(\1, ":[NA].*:[me]:[pi]", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]") and morph(\2, ":(?:[123]p|P)") + --1>> =switchGender(\-1) && Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. + + [|,|$:Cs] certaines (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD + [|,|$:Cs] certaines (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (>avoir) [été|semblé|paru] *WORD + [|,|$:Cs] certaines (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler]) [devenues|redevenues|restées|demeurées] *WORD + [|,|$:Cs] certaines (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_verbeétat_) ?[en|y]¿ /_LVEF_verbe_verbeétat_ *WORD + [|,|$:Cs] certaines (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_être_ppas_) ?[en|y]¿ être /_LVEF_verbe_être_ppas_ *WORD + [|,|$:Cs] certaines (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_avoir_ppas_) ?[en|y]¿ avoir /_LVEF_verbe_avoir_ppas_ *WORD + [|,|$:Cs] certaines (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_à_verbeétat_) à ?[ne|n’]¿ ?[en|y]¿ /_LVEF_verbe_à_verbeétat_ *WORD + [|,|$:Cs] certaines (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (/_LVED_verbe_de_verbeétat_) [de|d’] ?[ne|n’]¿ ?[en|y]¿ /_LVEF_verbe_de_verbeétat_ *WORD + <<- /ppas/ not value(\-1, "|légion|néant|réalité|") and morph(\1, ":[NA].*:[fe]:[pi]", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]") and morph(\2, ":(?:[123]p|P)") + --1>> =switchGender(\-1) && Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. + + *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] *WORD ?[ne|n’]¿ ?[en|y]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD - *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?[ne|n’]¿ ?[en|y]¿ + *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] *WORD ?[ne|n’]¿ ?[en|y]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD - *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?[ne|n’]¿ ?[en|y]¿ + *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|$:B] *WORD ?[ne|n’]¿ ?[en|y]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ checkAgreement(\1, \-1) !-1>> TEST: Un orage est {{annoncée}}. @@ -24142,15 +24212,24 @@ TEST: Sa femme qui ne paraît pas avoir été {{choqué}} TEST: l’avenir de la région paraissait {{suspendue}} à ce financement TEST: l’idiot qui n’y affirmait pas être devenu {{géniale}} mais seulement moins ignorant TEST: Mon ami qui pensait être {{suivie}} TEST: l’écolier qui ne croyait pas avoir été {{brillante}} -TEST: les femmes sont vraiment {{partis}} ->> parties -TEST: les hommes n’en sont pas tout à fait {{fâchées}} ->> fâchés +TEST: les femmes sont vraiment {{partis}} ->> parties +TEST: les hommes n’en sont pas tout à fait {{fâchées}} ->> fâchés TEST: plusieurs invités qui n’en sont pas {{contentes}} TEST: les réunions sans cesse reportées qui sont {{annulés}} TEST: les hommes croyant être {{instruites}} +TEST: deux estimations ont été {{reçus}} ->> reçues +TEST: certains hommes croient avoir été {{dupées}} ->> dupés +TEST: certains hommes qui pensent être plus {{instruites}} qu’ils ne sont réellement ->> instruits +TEST: puisque certains hommes n’en pensent pas moins être {{trompées}} ->> trompés +TEST: certains hommes qui n’en pensent pas devenir {{folles}} pour autant ->> fous +TEST: certaines femmes pensent avoir été {{trompés}} ->> trompées +TEST: certaines femmes ne croient pas être {{appauvris}} ->> appauvries +TEST: certaines femmes qui y pensent être {{escroqués}} ->> escroquées +TEST: certaines femmes qui n’en risquent pas moins d’être {{découverts}} ->> découvertes TEST: Les tortures que ce journaliste pense être “normales”. TEST: La première était René, le parfumeur, qui s’approcha de Catherine TEST: les abrutis sont légion @@ -27539,15 +27618,15 @@ __conj_beaucoup__ beaucoup @:V¬:(?:P|Q|G|Y) <<- /conj/ not morph(<1, ":[VR]") >>> - <<- /conj/ tag(\1, "bcp_plur") and not morph(\2, ":3p") + <<- /conj/ tag(\1, "_bcp_plur_") and not morph(\2, ":3p") -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\1”. Le substantif suivant étant au pluriel, le verbe devrait être à la 3ᵉ personne du pluriel. - <<- /conj/ __else__ and tag(\1, "bcp_sing") and not morph(\2, ":3s") + <<- /conj/ __else__ and tag(\1, "_bcp_sing_") and not morph(\2, ":3s") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\1”. Le substantif suivant étant au singulier, le verbe devrait être à la 3ᵉ personne du singulier. - <<- /conj/ __else__ and \2 != "a" and not tag(\1, "bcp_sing") and not morph(\2, ":3p") and not (space_after(\1, 1, 2) and morph(\2, ":V0")) + <<- /conj/ __else__ and \2 != "a" and not tag(\1, "_bcp_sing_") and not morph(\2, ":3p") and not (space_after(\1, 1, 2) and morph(\2, ":V0")) -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel. beaucoup qui @:V¬:(?:3p|P|G) <<- /conj/ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.