Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -14438,11 +14438,11 @@ tous @:[NA].*:[fs]¬:(?:W|V0|G|M|Y|P|3[sp]|[me]:[ip]) <<- /gn/ morph(<1, ":R") -2>> =suggMasPlur(\2, True) && Accord avec “tous” : “\2” devrait être au masculin pluriel. TEST: tous {{fou}} à lier ->> fous TEST: De tous {{âge}} ! ->> âges -TEST: par tous {{homme}} capable de comprendre ->> hommes +TEST: par tous {{homme}} capable de comprendre ->> hommes|ohms|heaumes TEST: l’existence d’un enseignement supérieur public, peu onéreux et ouvert à tous est d’une importance cruciale. TEST: la survie de tous est plus importante que les profits de quelques-uns TEST: tous ayant souffert du supplice de séjourner derrière les barreaux @@ -14571,36 +14571,36 @@ !! !!!! Infinitif !! !! !! -__infi_ne_pas_jamais_etc__ - ne ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ [pas|rien|guère|point] non plus ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ [pas|rien|guère|point] non plus [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ [pas|rien|guère|point] non plus [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ [pas|rien|guère|point] non plus [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - ne ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn])|>que/ - <<- /infi/ --1>> =suggVerbInfi(\-1) && Après “ne pas”, “ne jamais”, “ne plus”, “ne rien”… le verbe devrait être à l’infinitif. +__infi_ne_pas_jamais_etc!9__ + [ne|n’] ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ [pas|rien|guère|point] non plus ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus ?[le|la|l’|les|leur|lui|nous|vous|me|m’|te|t’|se|s’|en|y]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ [pas|rien|guère|point] non plus [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus [m’|t’|s’|nous|vous|les|lui|leur|l’] [en|y] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ [pas|rien|guère|point] non plus [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus [me|te|nous|vous] [le|la|les] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ [pas|rien|guère|point] non plus [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn]) + [ne|n’] ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus [le|la|les] [lui|leur] @:[VNA]¬:(?:Y|W|X|O[vwn]) + <<- /infi/ not value(\-1, "|guerre|guerres|") --1>> =suggVerbInfi(\-1) && Après “ne pas”, “ne jamais”, “ne plus”, “ne rien”… le verbe devrait être à l’infinitif. n’ [en|y] ?[presque|presqu’]¿ [pas|rien|guère|point] ?[trop|beaucoup]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) n’ [en|y] ?[presque|presqu’]¿ [pas|rien|guère|point] non plus @:[VNA]¬:(?:Y|W|X|O[vwn]) n’ [en|y] ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) n’ [en|y] ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus @:[VNA]¬:(?:Y|W|X|O[vwn]) @@ -14622,13 +14622,13 @@ n’ [en|y] ?[presque|presqu’]¿ [pas|rien|guère|point] non plus @:[VNA]¬:(?:Y|W|X|O[vwn]) n’ [en|y] ?[presque|presqu’]¿ jamais ?[rien|plus|trop|beaucoup]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) n’ [en|y] ?[presque|presqu’]¿ jamais ?[rien|plus]¿ non plus @:[VNA]¬:(?:Y|W|X|O[vwn]) n’ [en|y] ?[presque|presqu’]¿ plus ?[jamais|rien|guère|trop|beaucoup]¿ @:[VNA]¬:(?:Y|W|X|O[vwn]) n’ [en|y] ?[presque|presqu’]¿ plus ?[jamais|rien|guère]¿ non plus @:[VNA]¬:(?:Y|W|X|O[vwn]) - <<- /infi/ --1>> =suggVerbInfi(\-1) && Après “ne pas”, “ne jamais”, “ne plus”, “ne rien”… le verbe devrait être à l’infinitif. + <<- /infi/ not value(\-1, "|guerre|guerres|") --1>> =suggVerbInfi(\-1) && Après “ne pas”, “ne jamais”, “ne plus”, “ne rien”… le verbe devrait être à l’infinitif. - ne [pas|jamais|plus|rien|guère|point] [beaucoup|trop|assez|mal] + [ne|n’] [pas|jamais|plus|rien|guère|point] [beaucoup|trop|assez|mal] <<- ~3>> * TEST: ne jamais les {{cédé}} ->> céder TEST: ne point nous {{donné}} ->> donner TEST: ne rien {{finit}} ->> finir @@ -18250,11 +18250,11 @@ >soue à >cochon >sourate [*NUM|$:B] ?,¿ verset [*NUM|$:B] >sourire [de|d’] [complaisance|connivence|contentement|convenance] >souvenir d’ enfance >star du x - >station [de|d’] radio + >station [de|d’] [radio|ski] >sujet [de|d’] [prédilection|préoccupation] >suspension [de|d’] séance >syndicat du crime >système d’ exploitation >système [de|d’] santé @@ -22977,10 +22977,48 @@ TEST: l’horreur obscure {{répandu}} dans les ténèbres ->> répandue TEST: l’honneur français {{bafouée}} ->> bafoué TEST: l’ignoble ignorance si {{répandues}} ->> répandue + +__gn_l_3m_et__ + l’ *WORD et *WORD @:[NA].*:m:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\2, ":A", ":A.*:[me]:[si]") -2>> =suggMasSing(\2) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\4, ":A", ":A.*:[me]:[si]") -4>> =suggMasSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A", ":A.*:[me]:[si]") and morph(\4, ":A", ":A.*:[me]:[si]") + -5>> =suggFemSing(\5, True) && Ce nom n’est pas accordé avec les adjectifs “\2” et “\4”. + + l’ *WORD et *WORD @:[NA].*:f:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\2, ":A", ":A.*:[fe]:[si]") -2>> =suggFemSing(\2, True) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\4, ":A", ":A.*:[fe]:[si]") -4>> =suggFemSing(\4, True) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A", ":A.*:[fe]:[si]") and morph(\4, ":A", ":A.*:[fe]:[si]") + -5>> =suggMasSing(\5, True) && Ce nom n’est pas accordé avec les adjectifs “\2” et “\4”. + + l’ *WORD et *WORD @:[NA].*:e:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\4, ":A", ":A.*:[si]") -4>> =suggSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A.*:m:[si]", ":A.*:p") and morph(\4, ":A.*:f:[si]", ":A.*:p") + -2>> =suggFemSing(\2, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\4”. + <<- /gn/ __also__ -4>> =suggMasSing(\4, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\2”. + <<- /gn/ morph(\2, ":A.*:f:[si]", ":A.*:p") and morph(\4, ":A.*:m:[si]", ":A.*:p") + -2>> =suggMasSing(\2, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\4”. + <<- /gn/ __also__ -4>> =suggFemSing(\4, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\2”. + + l’ *WORD et *WORD @:[NA].*:p¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggSing(\5, True) && Ce nom n’est pas accordé avec “l’\2 et \4” et devrait être singulier. + +TEST: l’{{ignorante}} et {{grande}} {{crétin}} à qui j’avais affaire ->> ignorant|||grand|||crétine +TEST: l’{{ordurier}} et {{sot}} {{abrutie}} ->> ordurière|||sotte|||abruti +TEST: l’éblouissante et {{belles}} imbécile ->> belle +TEST: l’{{amoureux}} et {{merveilleuse}} imbécile que nous avions là ->> amoureuse|||merveilleux +TEST: l’{{amoureuse}} et {{merveilleux}} imbécile que nous avons là ->> amoureux|||merveilleuse +TEST: l’ignorant et sot {{hommes}} que voilà ->> homme +TEST: j’aide l’homme et par amour pour lui le laisse libre. + __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. <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True) && Accord de genre erroné : « \2 » est un déterminant masculin. @@ -23052,10 +23090,28 @@ TEST: le petit chien {{bruns}} ->> brun TEST: elles furent le jour venu prises par surprise, et elles durent s’enfuir. TEST: qu’ils fassent tourner le système économique, assez concrètement, mais sans faire chier avec leurs petits problèmes de gens de rien. TEST: avec le peuple, contre le capitalisme mortifère sous tous ses visages. + +__gn_le_3m_et__ + le *WORD et *WORD @:[NA].*:[me]:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[me]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0|A.*:[me]:[si])|;C") + -4>> =suggMasSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + + le *WORD et *WORD @:[NA].*:f¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[me]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggMasSing(\5, True) && Ce nom n’est pas accordé avec “le \2 et \4” et devrait être au masculin singulier. + + le *WORD et *WORD @:[NA].*:[me]:p¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[me]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggSing(\5) && Ce nom n’est pas accordé avec “le \2 et \4” et devrait être au singulier. + +TEST: le petit et {{vulgaires}} individu que nous avons vu hier ->> vulgaire +TEST: le sot et ignorante {{abrutie}} ->> abruti +TEST: le prétentieux et sot {{hommes}} que voilà ->> homme + __gn_la_1m__ , la *WORD <<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|M|[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. @@ -23088,11 +23144,11 @@ 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 force de la {{formes}} parfaite ->> forme|formée 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. @@ -23129,10 +23185,28 @@ TEST: la seule solution {{trouvé}} consistait à déléguer ->> trouvée TEST: La petite fille {{devenues}} infirmière. ->> devenue TEST: sous la forme d’un baromètre comparant différents moyens pour alléger ses émissions TEST: non seulement met en péril la logique industrielle mais contribue à détruire peu à peu le substrat sur lequel repose le marché lui-même, à savoir la société des hommes. + +__gn_la_3m_et__ + la *WORD et *WORD @:[NA].*:[fe]:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[fe]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0|A.*:[fe]:[si])|;C") + -4>> =suggFemSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + + la *WORD et *WORD @:[NA].*:m¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[fe]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggFemSing(\5, True) && Ce nom n’est pas accordé avec “la \2 et \4” et devrait être au féminin singulier. + + la *WORD et *WORD @:[NA].*:[fe]:p¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[fe]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggSing(\5) && Ce nom n’est pas accordé avec “la \2 et \4” et devrait être au singulier. + +TEST: la petite et {{vulgaires}} femme que nous avons vu hier ->> vulgaire +TEST: la sotte et ignorante {{abruti}} ->> abrutie +TEST: la prétentieuse et sotte {{femmes}} que voilà ->> femme + __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. @@ -23197,10 +23271,47 @@ TEST: leur grande passion {{délirants}} pour le cosplay. ->> délirante TEST: leur noir projet {{ignorées}} du peuple ->> ignoré TEST: leur psychologue altruiste {{détestés}} par ses voisins ->> détesté + +__gn_leur_3m_et__ + leur *WORD et *WORD @:[NA].*:m:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\2, ":A", ":A.*:[me]:[si]") -2>> =suggMasSing(\2) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\4, ":A", ":A.*:[me]:[si]") -4>> =suggMasSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A", ":A.*:[me]:[si]") and morph(\4, ":A", ":A.*:[me]:[si]") + -5>> =suggFemSing(\5, True) && Ce nom n’est pas accordé avec les adjectifs “\2” et “\4”. + + leur *WORD et *WORD @:[NA].*:f:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\2, ":A", ":A.*:[fe]:[si]") -2>> =suggFemSing(\2, True) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\4, ":A", ":A.*:[fe]:[si]") -4>> =suggFemSing(\4, True) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A", ":A.*:[fe]:[si]") and morph(\4, ":A", ":A.*:[fe]:[si]") + -5>> =suggMasSing(\5, True) && Ce nom n’est pas accordé avec les adjectifs “\2” et “\4”. + + leur *WORD et *WORD @:[NA].*:e:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\4, ":A", ":A.*:[si]") -4>> =suggSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A.*:m:[si]", ":A.*:p") and morph(\4, ":A.*:f:[si]", ":A.*:p") + -2>> =suggFemSing(\2, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\4”. + <<- /gn/ __also__ -4>> =suggMasSing(\4, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\2”. + <<- /gn/ morph(\2, ":A.*:f:[si]", ":A.*:p") and morph(\4, ":A.*:m:[si]", ":A.*:p") + -2>> =suggMasSing(\2, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\4”. + <<- /gn/ __also__ -4>> =suggFemSing(\4, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\2”. + + leur *WORD et *WORD @:[NA].*:p¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggSing(\5, True) && Ce nom n’est pas accordé avec “leur \2 et \4” et devrait être singulier. + +TEST: leur {{ignorante}} et {{grande}} {{crétin}} à qui j’avais affaire ->> ignorant|||grand|||crétine +TEST: leur {{ordurier}} et {{sot}} {{abrutie}} ->> ordurière|||sotte|||abruti +TEST: leur grande et {{belles}} imbécile ->> belle +TEST: leur {{amoureux}} et {{merveilleuse}} imbécile ->> amoureuse|||merveilleux +TEST: leur {{amoureuse}} et {{merveilleux}} imbécile ->> amoureux|||merveilleuse +TEST: leur ignorant et sot {{hommes}} de main ->> homme + __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. @@ -23454,17 +23565,35 @@ 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 + +__gn_det_mas_sing_3m_et__ + [ledit|un|ce|cet|au|quel|audit|dudit|aucun|nul] *WORD et *WORD @:[NA].*:[me]:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[me]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0|A.*:[me]:[si])|;C") + -4>> =suggMasSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + + [ledit|un|ce|cet|au|quel|audit|dudit|aucun|nul] *WORD et *WORD @:[NA].*:f¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[me]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggMasSing(\5, True) && Ce nom n’est pas accordé avec “le \2 et \4” et devrait être au masculin singulier. + + [ledit|un|ce|cet|au|quel|audit|dudit|aucun|nul] *WORD et *WORD @:[NA].*:[me]:p¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[me]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggSing(\5) && Ce nom n’est pas accordé avec “le \2 et \4” et devrait être au singulier. + +TEST: un petit et {{vulgaires}} individu que nous avons vu hier ->> vulgaire +TEST: ce sot et ignorante {{abrutie}} ->> abruti +TEST: nul prétentieux et sot {{hommes}} ne réussira ->> homme + __gn_mon_ton_son_1m__ [mon|ton|son] *WORD <<- /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. + <<- /gn/ morph(\2, ":[NA].*:p", ":[siGW]") -2>> =suggSing(\2) && Accord de nombre erroné : « \2 » devrait être au singulier. TEST: mon {{excellentes}} mémoire ->> excellente TEST: {{ton}} {{belle}} mémoire ->> ta|||beau TEST: {{mon}} {{chienne}} ->> ma|||chien @@ -23557,10 +23686,28 @@ <<- /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 + +__gn_det_fem_sing_3m_et__ + [ladite|une|cette|ma|ta|sa|quelle|aucune|nulle] *WORD et *WORD @:[NA].*:[fe]:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[fe]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0|A.*:[fe]:[si])|;C") + -4>> =suggFemSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + + [ladite|une|cette|ma|ta|sa|quelle|aucune|nulle] *WORD et *WORD @:[NA].*:m¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[fe]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggFemSing(\5, True) && Ce nom n’est pas accordé avec “la \2 et \4” et devrait être au féminin singulier. + + [ladite|une|cette|ma|ta|sa|quelle|aucune|nulle] *WORD et *WORD @:[NA].*:[fe]:p¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[fe]:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggSing(\5) && Ce nom n’est pas accordé avec “\1 \2 et \4” et devrait être au singulier. + +TEST: une petite et {{vulgaires}} femme que nous avons vu hier ->> vulgaire +TEST: quelle sotte et ignorante {{abruti}} ->> abrutie +TEST: cette prétentieuse et sotte {{femmes}} ->> femme + __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. @@ -23601,11 +23748,11 @@ 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__ +__gn_det_epi_sing_3m__ [chaque|quelque|notre|votre] *WORD *WORD *WORD <<- /gn/ morph(<1, "|:V", "*") and \4.islower() >>> <<- /gn/ morph(\2, ":[NA].*:m:[si]", ":[fe]") and morph(\3, ":[NA].*:[me]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:f", "*") -4>> =suggMasSing(\4) && Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au masculin singulier. <<- /gn/ __else__ and morph(\2, ":[NA].*:f:[si]", ":[me]") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:[123][sp]|G|P|B)|;C") and morph(\4, ":[NA].*:m", "*") @@ -23615,10 +23762,47 @@ TEST: notre grande armée {{fabuleux}} ->> fabuleuse TEST: notre supérieur hiérarchique {{ignorante}} des pratiques ->> ignorant TEST: votre petit test {{minables}} ->> minable + +__gn_det_epi_sing_3m_et__ + [chaque|quelque|notre|votre] *WORD et *WORD @:[NA].*:m:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\2, ":A", ":A.*:[me]:[si]") -2>> =suggMasSing(\2) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\4, ":A", ":A.*:[me]:[si]") -4>> =suggMasSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A", ":A.*:[me]:[si]") and morph(\4, ":A", ":A.*:[me]:[si]") + -5>> =suggFemSing(\5, True) && Ce nom n’est pas accordé avec les adjectifs “\2” et “\4”. + + [chaque|quelque|notre|votre] *WORD et *WORD @:[NA].*:f:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\2, ":A", ":A.*:[fe]:[si]") -2>> =suggFemSing(\2, True) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\4, ":A", ":A.*:[fe]:[si]") -4>> =suggFemSing(\4, True) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A", ":A.*:[fe]:[si]") and morph(\4, ":A", ":A.*:[fe]:[si]") + -5>> =suggMasSing(\5, True) && Ce nom n’est pas accordé avec les adjectifs “\2” et “\4”. + + [chaque|quelque|notre|votre] *WORD et *WORD @:[NA].*:e:s¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") >>> + <<- /gn/ morph(\4, ":A", ":A.*:[si]") -4>> =suggSing(\4) && Cet adjectif n’est pas accordé avec le nom “\-1”. + <<- /gn/ morph(\2, ":A.*:m:[si]", ":A.*:p") and morph(\4, ":A.*:f:[si]", ":A.*:p") + -2>> =suggFemSing(\2, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\4”. + <<- /gn/ __also__ -4>> =suggMasSing(\4, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\2”. + <<- /gn/ morph(\2, ":A.*:f:[si]", ":A.*:p") and morph(\4, ":A.*:m:[si]", ":A.*:p") + -2>> =suggMasSing(\2, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\4”. + <<- /gn/ __also__ -4>> =suggFemSing(\4, True) && Cet adjectif n’est pas accordé en genre avec l’adjectif “\2”. + + [chaque|quelque|notre|votre] *WORD et *WORD @:[NA].*:p¬* + <<- /gn/ morph(\1, ":D") and morph(\2, ":A.*:[si]", ":(?:G|W|V0)|;C") and morph(\4, ":A", ":(?:G|W|V0)|;C") + -5>> =suggSing(\5, True) && Ce nom n’est pas accordé avec “\1 \2 et \4” et devrait être singulier. + +TEST: notre {{ignorante}} et {{grande}} {{crétin}} à qui j’avais affaire ->> ignorant|||grand|||crétine +TEST: votre {{ordurier}} et {{sot}} {{abrutie}} ->> ordurière|||sotte|||abruti +TEST: notre grande et {{belles}} imbécile ->> belle +TEST: chaque {{amoureux}} et {{merveilleuse}} imbécile que nous avions là ->> amoureuse|||merveilleux +TEST: quelque {{amoureuse}} et {{merveilleux}} imbécile que nous avons là ->> amoureux|||merveilleuse +TEST: notre ignorant et sot {{hommes}} que voilà ->> homme + ## Pluriels __gn_les_1m__ , les *WORD