Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -1798,12 +1798,12 @@ <<- =>> exclude(\3, ":V") [des|chaque|quelque|quelques|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs|aucun|aucune] *WORD <<- =>> exclude(\2, ":V") - [des|chaque|quelque|quelques|cet|cette|ces|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs] personne - <<- =>> select(\2, ":N") + [une|le|la|les|des|chaque|quelque|quelques|cet|cette|ces|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs] personne + <<- =>> select(\-1, ":N") de [la|l’] @:¬:Y <<- =>> exclude(\3, ":V") de [>telle|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine] *WORD @@ -3231,10 +3231,13 @@ <<- ~>> ␣ de ci ?,¿ de là <<- /tu/ ->> de-ci de-là|de-ci, de-là # Il manque les traits d’union. + déjà vu + <<- /tu/ morph(<1, ":D.*:[me]") ->> \1-\2 # S’il s’agit d’un nom, mettez un trait d’union.|https://fr.wiktionary.org/wiki/d%C3%A9j%C3%A0-vu + en contre [bas|partie] <<- /tu/ ->> en contre\3|en contre-\3 # Mettez un trait d’union ou soudez. en contre point en contre-point @@ -3385,10 +3388,11 @@ TEST: je déteste le {{basket ball}} TEST: {{Lui même}} ->> Lui-même TEST: {{eux mêmes}}. ->> eux-mêmes TEST: un {{va et vient}} incessant me casse la tête TEST: Le {{moto club}} était sur le point de faire faillite. +TEST: J’ai beaucoup de {{déjà vu}}. TEST: Un autre chantier important, celui si sensible de la préservation des données personnelles des élèves __tu_va_t_en__ va t en @@ -4493,10 +4497,11 @@ [|,] nous ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] @:V¬:1p [|,] nous ?[ne|n’]¿ [lui|leur] en @:V¬:1p <<- /conj/ --1>> =suggVerb(\-1, ":1p") # Conjugaison erronée. Accord avec “nous”. Le verbe devrait être à la 2ᵉ personne du pluriel. TEST: Nous {{arriverez}} demain. +TEST: Nous {{travaillez}}. TEST: Et, nous laissant étonnés d’être encore là sans y avoir rien compris, ## 2pl __conj_vous__ @@ -4513,10 +4518,11 @@ TEST: Vous {{arrivais}} trop tard. TEST: vous ne l’{{avait}} pas vu. TEST: je crois, vous m’{{avais}} trompé… TEST: vous nous {{refuser}} le pardon. +TEST: Vous {{travaillons}}. ## 3pl __conj_ils__ ils @:V¬:(?:3p|Ov) @@ -4836,11 +4842,11 @@ [|,] [ton|son|audit] @:(?:Y|[123][sp])¬:[NAQ] <<- /conf/ \3.islower() -3>> =suggSimil(\3, ":[NA]:[me]:[si]", True) # Incohérence avec « \2 » : « \3 » est un verbe. - un @:(?:Y|[123][sp])¬:[GNA] + [un|une] @:(?:Y|[123][sp])¬:[GNA] <<- /conf/ not value(<1, "|dont|l’|d’|sauf|") and not before("(?i)\\bun à +$") -2>> =suggSimil(\2, ":[NAQ]:[me]:[si]", True) # Incohérence avec “\1” : “\2” est une forme verbale conjuguée. TEST: un {{maintient}} difficile. TEST: quelqu’un arrive. @@ -5376,36 +5382,10 @@ TEST: une dérive à vau-l’eau. __conf_à_a_locutions__ a [califourchon|contrecœur|contre-cœur|contretemps|contre-temps|demi-mot|nouveau|présent|rebrousse-poil|regret|travers|tout-va|confesse|midi|minuit|rallonge|reculons|risque|tâtons|vélo] - a connotation sexuelle - a côté [de|d’] - a l’ heure actuelle - a l’ heure qu’ il est - a l’ [accoutumée|amiable|arrache|avance|avenir|avenant|aveuglette|emporte-pièce|évidence|improviste|inverse] - a l’ air libre - a l’ exclusion de toute autre chose - a l’ ordre du jour - a l’ œil nu - a l’ en croire - a l’ unanimité - a l’ un d’ entre eux - a l’ un des leurs - a l’ une d’ entre elles - a l’ une des leurs - a la [con|dérive|dérobée|diable|fois|mords-moi-le-nœud|papa|rescousse|sauvette|va-vite|volée] - a la bonne franquette - a la limite du supportable - a la lumière de tout [ceci|cela|ça] - a la petite semaine - a la pointe du progrès - a la queue leu leu - a la surprise générale - a la va vite - a la virgule près - a partir [de|d’] [demain|là|maintenant|rien|aujourd’hui|hier|ici] a aucun prix a autrui a autre chose a bas [>coût|>cout] a bâbord @@ -5431,11 +5411,13 @@ a chaque [fois|instant] a charge de revanche a chaudes larmes a cœur [joie|ouvert|perdu] a ciel ouvert + a connotation sexuelle a corps perdu + a côté [de|d’] a couper le souffle a court terme a courte [échéance|portée] a couilles rabattues a de nombreuses reprises @@ -5457,12 +5439,37 @@ a haut risque a hue et à dia a huis clos a intervalles [réguliers|irréguliers] a juste [raison|titre] + a l’ heure actuelle + a l’ heure qu’ il est + a l’ [accoutumée|amiable|arrache|avance|avenir|avenant|aveuglette|emporte-pièce|évidence|improviste|inverse] + a l’ air libre + a l’ exclusion de toute autre chose + a l’ ordre du jour + a l’ œil nu + a l’ en croire + a l’ unanimité + a l’ un d’ entre eux + a l’ un des leurs + a l’ une d’ entre elles + a l’ une des leurs + a la [con|dérive|dérobée|diable|fois|mords-moi-le-nœud|papa|rescousse|sauvette|va-vite|volée] + a la bonne franquette + a la limite du supportable + a la lumière de tout [ceci|cela|ça] + a la petite semaine + a la pointe du progrès + a la queue leu leu + a la surprise générale + a la va vite + a la virgule près a la [manque|ramasse|redresse|renverse] a la case départ + a la grande surprise [de|du|d’|des] + a [ma|ta|sa|notre|votre|leur] grande surprise a long terme a longue [échéance|portée] a longueur [de|d’] [temps|journée|année] a loyer modéré a main [armée|droite|gauche|levée] @@ -5482,12 +5489,11 @@ a n’ en plus finir a n’ en point douter a outrance a parler franc a part [entière|ça|cela|ceci] - a partir de là - a partir de rien + a partir [de|d’] [demain|là|maintenant|rien|aujourd’hui|hier|ici] a parts égales a pas de [géant|loup|tortue|velours] a personne en danger a perte de vue a petit feu @@ -5568,10 +5574,11 @@ TEST: elle risque de tout perdre, {{a}} moins qu’un miracle survienne. TEST: {{tout a coup}}, il n’y eut plus aucune lumière TEST: un machin ennuyeux {{a}} s’en tirer une balle dans la tête. TEST: Je sais qu’ils sont {{a}} toi. TEST: Attention {{a}} ne pas la réveiller. +TEST: J’en serai. {{A}} titre personnel. TEST: Je tenais à le lui faire savoir. TEST: il va falloir songer à les leur donner TEST: le coût est estimé à au moins 1000 milliards de dollars TEST: elle à qui nous avons donné notre cœur et pour laquelle nous avons tout tenté pour la faire aimer de nos concitoyens. TEST: jusqu’à parfois se mettre en danger @@ -9593,10 +9600,13 @@ à bonne distance [de|des|du] à l’ [affût|affut|arrière|autre bout|aune|avant|écart|égard|extérieur|encontre|insu|instar|intérieur|opposé|orée|approche] [de|des|du] à la [hauteur|portée|suite] [de|des|du] <<- ~2:3>> * + + à la grande surprise [de|du|d’|des] + <<- ~2:4>> * à l’ autre bout [de|des|du] <<- ~2:4>> * à [quelques|plusieurs] [mètres|kilomètres|lieues|pas|minutes|heures] [de|des|du] @@ -10919,10 +10929,11 @@ TEST: {{Le}} démoralisation. ->> La TEST: {{Le}} Guyane française. ->> La TEST: avec {{le}} {{pile}} TEST: {{le}} {{publique}} TEST: {{Le}} {{pendue}} +TEST: {{Le}} personne répond. __gn_le_2m__ le *WORD *WORD <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|") and not \3.startswith("seul") >>> @@ -10939,10 +10950,11 @@ -4>> =suggMasSing(\4) # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. TEST: le test très {{cons}} qu’on a passé hier. TEST: c’était le chien {{perdue}} des voisins. TEST: viens vite ou le pari {{imperdables}} sera moins facile… +TEST: Le bruit {{perçus}} par les voisins. __gn_la_1m__ , la *WORD <<- /gn/ morph(\3, ":[NA].*:m", ":(?:e|f|P|G|W|[1-3][sp]|Y)") -2>> le # Accord de genre erroné : « \3 » est masculin. @@ -12528,10 +12540,18 @@ par soucis [de|d’] <<- /sgpl/ -2>> souci # Locution “par souci de”. Mettez “souci” au singulier. TEST: par {{soucis}} d’équité, chacun aura droit à une part. + +# Point de suspension +__sgpl_points_de_suspension__ + points de suspensions + <<- /sgpl/ -3>> suspension # Dans la locution nominale “points de suspension”, le dernier terme est au singulier. + +TEST: Arrête de mettre des points de {{suspensions}} partout. + # sentir bon __sgpl_sentir_bon__ >sentir bons <<- /sgpl/ -2>> bon # Dans la locution “sentir bon”, “bon” est un adverbe, donc invariable. @@ -16899,11 +16919,11 @@ [|,] @:Y ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ @:[123][sp] en @:[123][sp]¬:[NA] [|,] @:Y ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:[123][sp] en @:[123][sp]¬:[NA] [|,] @:Y ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] @:[123][sp] en @:[123][sp]¬:[NA] [|,] @:Y ?[ne|n’]¿ [lui|leur] en @:[123][sp] en @:[123][sp]¬:[NA] <<- /conf/ hasSimil(\-1, ":[NA]") - --1>> =suggSimil(\-1, ":[NA].*:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + --1>> =suggSimil(\-1, ":[NA].*:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est une préposition, il faut placer un nom après. TEST: je relève le {{défit}}. ->> défi TEST: elle relève une fois de plus le {{défie}}. ->> défi TEST: il gère l’{{accueille}} ->> accueil TEST: nous racontons le {{dépare}} des peuples vers les étoiles ->> départ @@ -16911,10 +16931,93 @@ TEST: Le parquet demande le {{maintient}} en détention ->> maintien TEST: Mon idée rend leur {{dépare}} nécessaire ->> départ TEST: tu vois, l’oiseau étend les {{hèles}} ->> ailes TEST: Lire nous révèle les {{fixions}} du genre ->> fictions + +__conf_interrogatif_ou_impératif_det_verbe_nom!6__ + [/VCint|/VCimp] le @:[123][sp]¬:[NA].*:[me]:[si] + <<- /conf/ hasSimil(\-1, ":[NA].*:[me]:[si]") + --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [/VCint|/VCimp] la @:[123][sp]¬:[NA].*:[fe]:[si] + <<- /conf/ hasSimil(\-1, ":[NA].*:[fe]:[si]") + --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [/VCint|/VCimp] l’ @:[123][sp]¬:[NA].*:[si] + <<- /conf/ hasSimil(\-1, ":[NA].*:[si]") + --1>> =suggSimil(\-1, ":[NA].*:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [/VCint|/VCimp] leur @:[123][sp]¬:[NA].*:[si] + <<- /conf/ hasSimil(\-1, ":[NA].*:[si]") + --1>> =suggSimil(\-1, ":[NA].*:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [/VCint|/VCimp] les @:[123][sp]¬:[NA].*:[pi] + <<- /conf/ hasSimil(\-1, ":[NA].*:[pi]") + --1>> =suggSimil(\-1, ":[NA].*:[pi]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [/VCint|/VCimp] en @:[123][sp]¬:[NA] + <<- /conf/ hasSimil(\-1, ":[NA]") + --1>> =suggSimil(\-1, ":[NA].*:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est une préposition, il faut placer un nom après. + +TEST: Siffle-t-il le {{dépare}} du duel ? ->> départ +TEST: Regardes-tu la {{commette}} ? ->> comète +TEST: Gérons-nous l’{{accueille}} ? ->> accueil +TEST: Écrit-elle les {{fixions}} ? ->> fictions +TEST: Sait-elle le {{choie}} qu’il a fait ? ->> choix +TEST: Entreront-ils en {{contacte}} avec eux ? ->> contact + + +__conf_verbes_det_verbe_nom!6__ + [|,] ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ @:[123][sp] le @:[123][sp]¬:[NA].*:[me]:[si] + [|,] ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:[123][sp] le @:[123][sp]¬:[NA].*:[me]:[si] + [|,] ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] @:[123][sp] le @:[123][sp]¬:[NA].*:[me]:[si] + [|,] ?[ne|n’]¿ [lui|leur] en @:[123][sp] le @:[123][sp]¬:[NA].*:[me]:[si] + <<- /conf/ hasSimil(\-1, ":[NA].*:[me]:[si]") + --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [|,] ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ @:[123][sp] la @:[123][sp]¬:[NA].*:[fe]:[si] + [|,] ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:[123][sp] la @:[123][sp]¬:[NA].*:[fe]:[si] + [|,] ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] @:[123][sp] la @:[123][sp]¬:[NA].*:[fe]:[si] + [|,] ?[ne|n’]¿ [lui|leur] en @:[123][sp] la @:[123][sp]¬:[NA].*:[fe]:[si] + <<- /conf/ hasSimil(\-1, ":[NA].*:[fe]:[si]") + --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [|,] ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ @:[123][sp] l’ @:[123][sp]¬:[NA].*:[si] + [|,] ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:[123][sp] l’ @:[123][sp]¬:[NA].*:[si] + [|,] ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] @:[123][sp] l’ @:[123][sp]¬:[NA].*:[si] + [|,] ?[ne|n’]¿ [lui|leur] en @:[123][sp] l’ @:[123][sp]¬:[NA].*:[si] + <<- /conf/ hasSimil(\-1, ":[NA].*:[si]") + --1>> =suggSimil(\-1, ":[NA].*:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [|,] ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ @:[123][sp] leur @:[123][sp]¬:[NA].*:[si] + [|,] ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:[123][sp] leur @:[123][sp]¬:[NA].*:[si] + [|,] ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] @:[123][sp] leur @:[123][sp]¬:[NA].*:[si] + [|,] ?[ne|n’]¿ [lui|leur] en @:[123][sp] leur @:[123][sp]¬:[NA].*:[si] + <<- /conf/ hasSimil(\-1, ":[NA].*:[si]") + --1>> =suggSimil(\-1, ":[NA].*:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [|,] ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ @:[123][sp] les @:[123][sp]¬:[NA].*:[pi] + [|,] ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:[123][sp] les @:[123][sp]¬:[NA].*:[pi] + [|,] ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] @:[123][sp] les @:[123][sp]¬:[NA].*:[pi] + [|,] ?[ne|n’]¿ [lui|leur] en @:[123][sp] les @:[123][sp]¬:[NA].*:[pi] + <<- /conf/ hasSimil(\-1, ":[NA].*:[pi]") + --1>> =suggSimil(\-1, ":[NA].*:[pi]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après. + + [|,] ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ @:[123][sp] en @:[123][sp]¬:[NA] + [|,] ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:[123][sp] en @:[123][sp]¬:[NA] + [|,] ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] @:[123][sp] en @:[123][sp]¬:[NA] + [|,] ?[ne|n’]¿ [lui|leur] en @:[123][sp] en @:[123][sp]¬:[NA] + <<- /conf/ hasSimil(\-1, ":[NA]") + --1>> =suggSimil(\-1, ":[NA].*:[si]", True) # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est une préposition, il faut placer un nom après. + +TEST: arrive le {{dépare}} +TEST: ne donne pas le {{signale}} +TEST: ensuite, tu vois, surviennent les {{désires}}. +TEST: ne leur donne pas le {{choie}}. +TEST: ne gère pas l’{{accueille}} comme il faut. + !!! !!! !!! Processeur: purge des préverbes !! !!! @@ -18253,12 +18356,12 @@ # verbe que + subjonctif __vmode_qqch_que_subjonctif__ [quoique|quoiqu’] @:(?:Os|M) @:I¬:[GYS] <<- /vmode/ -3>> =suggVerbMode(\3, ":S", \2) # Après “quoique”, ce verbe devrait être au subjonctif. - [>permettre|>falloir|>vouloir|>ordonner|>exiger|>désirer|>préférer|>suffire] [que|qu’] @:(?:Os|M) @:I¬:[GYS] - [afin|avant|malgré|pour|pourvu|quoi|sans] [que|qu’] @:(?:Os|M) @:I¬:[GYS] + [>permettre|>falloir|>vouloir|>ordonner|>exiger|>désirer|>préférer|>souhaiter|>suffire] [que|qu’] @:(?:Os|M) @:I¬:[GYS] + [afin|avant|malgré|pour|pourvu|quoi|sans] [que|qu’] @:(?:Os|M) @:I¬:[GYS] <<- /vmode/ -4>> =suggVerbMode(\4, ":S", \3) # Après “\1 que”, ce verbe devrait être au subjonctif. >douter [que|qu’] @:(?:Os|M) @:I¬:(?:[GYSK]|If) <<- /vmode/ not tag(\1, "upron") and morph(\1, ":V", ":N") -4>> =suggVerbMode(\4, ":S", \3) # Après “\1 que”, ce verbe devrait être au subjonctif. @@ -18297,10 +18400,11 @@ TEST: pour peu qu’il {{prend}} son devoir sérieux… TEST: il se peut que nous {{avons}} tort. TEST: Nous œuvrons silencieusement de crainte qu’il nous {{entend}}. TEST: En admettant qu’il {{devient}} juste. TEST: ça ira, si tant est que Paul {{comprend}} ce qui se passe. +TEST: à condition qu’elle l’{{est}} jamais été TEST: Nul doute qu’elle nourrira à brève échéance la haine de demain à notre égard. TEST: Je ne doute pas qu’ils réussiront leur mission. TEST: Je me doutais bien qu’Apple pourrait marcher TEST: Tu vivras plus sereinement en admettant que tu ne peux pas être la meilleure en toutes choses. TEST: il ne fait aucun doute qu’Amazon le sait. @@ -18483,11 +18587,10 @@ !!! À trier !! TODO: Il faut au préalable avoir {{définit}} un protocole. TODO: Il y a quatre cents {{mot}} dans la phrase. TODO: Ma mémoire a aussi été {{effacé}}. -TODO: à condition qu’elle l’{{est}} jamais été TODO: Vous la {{voulait}} TODO: un délire systématisé de persécution basé sur des interprétations TODO: Soudain, surgit l’un des ouvriers… TODO: Ainsi périt l’inconstant. TODO: puis repartit.