Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -2270,11 +2270,11 @@ TEST: {{Peux-il}} ->> Peut-il TEST: {{Attaques-t-on}} ->> Attaque-t-on TEST: {{box-t-on}} TEST: {{Prends-elle}} ->> Prend-elle TEST: {{Menthe-t-elle}} souvent ? -TEST: {{demandent-elle}} ->> demantent-elles +TEST: {{demandent-elle}} ->> demande-elle|demandent-elles TEST: {{viennent-il}} demain ? TEST: {{prix-t-il}} TEST: {{étais-ce}} trop demander ->> était-ce TEST: {{était-se}} cela, la vérité ineffable ? TEST: {{étai-ce}} notre destinée de souffrir ? @@ -2344,11 +2344,15 @@ <<- /imp/ __else__ and morphVC(\1, ":", ":V") ->> =suggSimil(\1, ":E", False, True) # Ceci n’est pas une forme verbale impérative. <<- />> -les|-COD|VCimp ~\w-la$ <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True) # Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29 - <<- /imp/ __else__ and morphVC(\1, ":", ":V") ->> =suggSimil(\1, ":E", False, True) # Ceci n’est pas une forme verbale impérative. + <<- /imp/ __else__ and morphVC(\1, ":", ":V") >>> + <<- /imp/ value(<1, "|ce|cet|cette|ces|") and morphVC(\1, ":[NA]") + ->> =\1[:-2]+"là" # Ceci n’est pas une forme verbale impérative. Ou vous confondez “la” (COD) avec “là” (pour désigner un objet particulier). + <<- /imp/ __else__ and not value(\1, "|par-la|de-la|jusque-la|celui-la|celle-la|ceux-la|celles-la|") + ->> =suggSimil(\1, ":E", False, True)+"|"+\1[:-3]+" là" # Ceci n’est pas une forme verbale impérative. Si ce “la” signifie ici, écrivez “là”. <<- />> -la|-COD|VCimp ~\w-moi$ <<- /imp/ morphVC(\1, ":V", ":E") ->> =suggVerbImpe(\1, True) # Ceci n’est pas une forme impérative correcte.|http://fr.wikipedia.org/wiki/Imp%C3%A9ratif_%28grammaire%29 <<- /imp/ __else__ and morphVC(\1, ":", ":V|>chez/") ->> =suggSimil(\1, ":E", False, True) # Ceci n’est pas une forme verbale impérative. @@ -2378,10 +2382,11 @@ TEST: {{prend-m’en}} trois, s’il te plaît. TEST: {{don-nous-en}} TEST: {{bat-le}} TEST: {{bluff-le}} TEST: {{manges-la}} +TEST: ce {{soutien-la}} TEST: {{soutien-la}} TEST: {{combat-les}} TEST: {{flic-les}} TEST: {{Oublies-moi}}. TEST: {{Oubli-moi}}. @@ -3504,22 +3509,22 @@ [Ies|Ves|Xes] <<- /typo/ sContext != "Writer" ->> =\1[:-2]+"ᵉˢ" # Nombre ordinal romain pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 TEST: François {{Ier}} ->> Iᵉʳ -TEST: {{Iers}} ->> Iᵉʳˢ -TEST: {{Ire}} ->> Iʳᵉ -TEST: {{Ires}} ->> Iʳᵉˢ -TEST: {{IId}} ->> IIᵈ -TEST: {{IIds}} ->> IIᵈˢ -TEST: {{IIde}} ->> IIᵈᵉ -TEST: {{IIdes}} ->> IIᵈᵉˢ +TEST: les {{Iers}} ->> Iᵉʳˢ +TEST: la {{Ire}} ->> Iʳᵉ +TEST: les {{Ires}} ->> Iʳᵉˢ +TEST: le {{IId}} ->> IIᵈ +TEST: les {{IIds}} ->> IIᵈˢ +TEST: la {{IIde}} ->> IIᵈᵉ +TEST: les {{IIdes}} ->> IIᵈᵉˢ TEST: c’est le {{IIIe}} siècle ->> IIIᵉ TEST: La {{Ve}} République ->> Vᵉ TEST: Le {{Xe}} siècle ->> Xᵉ TEST: {{XXXIIes}} ->> XXXIIᵉˢ -TEST: {{Ves}} siècles ->> Vᵉˢ +TEST: les {{Ves}} siècles ->> Vᵉˢ __typo_ordinaux_chiffres_romains_incorrects__ I ier Iier @@ -4911,11 +4916,11 @@ vieilles hardes <<- /pleo/ ->> hardes # Pléonasme. [et|ou] voire - <<- /pleo/ ->> voire|\1 voir # Pléonasme ou confusion. + <<- /pleo/ not morph(>1, ":D") ->> voire|\1 voir # Pléonasme ou confusion. voire même <<- /pleo/ ->> voire|même # Pléonasme.|https://fr.wiktionary.org/wiki/voire_m%C3%AAme TEST: il faut {{abolir totalement}} ces pratiques ->> abolir @@ -5532,10 +5537,11 @@ TEST: oui, il l’ignorait, ne me {{demandes}} comment c’était possible TEST: c’est ça, me {{demandes}} comment c’est possible TEST: je me questionne, {{exiges}} des réponses mais n’en obtiens pas… TEST: Caroline, quand l’heure viendra, {{décideras}} de la conduite à tenir. TEST: {{arrimeras}} le voilier +TEST: nous laisserons derrière nous les empires de la Terre.{{}} __conj_xxxxxs_sans_sujet!3__ [se|s’] ?[le|la|l’|les]¿ ~[iudnrtpcï]s$ s’ ?[en|y]¿ ~[iudnrtpcï]s$ @@ -5582,17 +5588,14 @@ __conj_peux_veux_vaux_équivaux_prévaux_sans_sujet!3__ [se|s’] ?[le|la|l’|les]¿ [peux|veux|vaux|équivaux|prévaux] s’ ?[en|y]¿ [peux|veux|vaux|équivaux|prévaux] <<- /conj/ --1>> =suggVerb(\-1, ":3s") # Incohérence. Le sujet de cette forme verbale est introuvable. - [ne|n’] ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿ [peux|veux|vaux|équivaux|prévaux] - <<- /conj/ not tag_before(\1, "1s") and not tag_before(\1, "2s") - --1>> =suggVerb(\-1, ":3s") # Incohérence. Le sujet de cette forme verbale est introuvable. - - [me|m’|te|t’|nous|vous] ?[le|la|l’|les|en|y]¿ [peux|veux|vaux|équivaux|prévaux] - [le|la|l’|les] [lui|leur|en|y] [peux|veux|vaux|équivaux|prévaux] - [lui|leur] en [peux|veux|vaux|équivaux|prévaux] + [ne|n’] ?[le|la|l’|les|en|vous|lui|leur|y]¿ [peux|veux|vaux|équivaux|prévaux] + [me|m’|te|t’|nous|vous] ?[le|la|l’|les|en|y]¿ [peux|veux|vaux|équivaux|prévaux] + [le|la|l’|les] [lui|leur|en|y] [peux|veux|vaux|équivaux|prévaux] + [lui|leur] en [peux|veux|vaux|équivaux|prévaux] <<- /conj/ not tag_before(\1, "1s") and not tag_before(\1, "2s") --1>> =suggVerb(\-1, ":3s") # Incohérence. Le sujet de cette forme verbale est introuvable. vaux <<- /conj/ not tag_before(\1, "1s") and not tag_before(\1, "2s") and not (\1.istitle() and before0("\\w")) @@ -5601,12 +5604,15 @@ [peux|veux|équivaux|prévaux] <<- /conj/ not tag_before(\1, "1s") and not tag_before(\1, "2s") and not (\1.istitle() and before0("\\w")) -1>> =suggVerb(\1, ":3s") # Incohérence. Le sujet de cette forme verbale est introuvable. +TEST: tu sais, s’{{équivaux}}, voilà. +TEST: tu sais, s’en {{veux}} d’avoir raté ça. TEST: s’{{peux}} qu’il avait faim, va savoir TEST: n’{{équivaux}} pas à ma BMW, cette tire. +TEST: faut voir, ces hommes, lui, tu sais, l’en peux TEST: la lui {{donnais}} sans contrepartie TEST: {{vaux}} pas ça, ce truc. TEST: ouais, ce serait pas de refus, ouais, {{peux}} peut-être nous aider TEST: Elle, ici et dans tous les cas de figure, {{veux}} toujours en faire plus. TEST: Le total de cette opération, contrairement à ce qu’on pense, {{équivaux}} à au moins trois d’entre eux. @@ -7355,19 +7361,16 @@ # davantage / d’avantage __conf_davantage_d_avantages__ [peu|plein|beaucoup|trop|plus|moins|assez|suffisamment|tellement|>obtention|>régime] davantage <<- /conf/ -2>> d’avantages # Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”… - >être d’ >avantage @:[NAQ]¬:G - <<- /conf/ -2:3>> davantage # Confusion possible : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”… - @:V d’ >avantage <<- /conf/ not morph(\1, ":Q|>(?:profiter|bénéficier|nombre|tant)/") and not morph(>1, ">(?:financi[eè]re?|pécuni(?:er|aire)|sociaux)s?/") -2:3>> davantage # Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”… [/-je|/-tu|/-il|/-on|/-elle|/-nous|/-vous|/-ils|/-elles] d’ >avantage - <<- /conf/ not morphVC(\1, ">(?:profiter|bénéficier)/") and not morph(>1, ">(?:financi[eè]re?|pécuni(?:er|aire)|sociaux)s?/") + <<- /conf/ not morphVC(\1, ">(?:profiter|bénéficier)/") and not morph(>1, ">(?:financière|pécuni(?:er|aire)|sociale)/") -2:3>> davantage # Confusion probable : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”… d’ >avantage [de|d’] <<- /conf/ -1:2>> davantage # Confusion possible : “davantage” signifie “plus” ; un “avantage” signifie “faveur”, “bénéfice”, “profit”… @@ -8033,27 +8036,24 @@ TEST: Il fait remonter à la toute première expérience humaine de maîtrise. TEST: l’existence d’un fichage la concernant TEST: avec la ou les indications qu’on recontre ici et là. - [celle-la|celles-la|celui-la|ceux-la] + [par-la|de-la|jusque-la|celui-la|celle-la|ceux-la|celles-la] <<- /conf/ ->> =\1[:-2]+"là" # Écrivez “là” et non “la”. [celle|celles|celui|ceux] la <<- /conf/ ->> \1-là # Écrivez “là” et non “la”. /-là <<- /conf/ morph(\1, ":V", ":[NA]", 0, -3) -1>> =\1[:-3]+"-la|" + \1[:-3]+" là" # Confusion. Pour un COD, utilisez “la”. Ou, si ce “là” signifie “ici”, ne mettez pas de trait d’union. - /-la - <<- /conf/ morph(\1, ":[NA]", ":[123][sp]", 0, -3) - -1>> =\1[:-2]+"là" # Confusion : “\1” n’est pas un verbe. - [ne|me|te|se] là <<- /conf/ -2>> la # Confusion : “là” signifie “ici”.|http://fr.wiktionary.org/wiki/l%C3%A0 +TEST: {{jusque-la}}, tout va bien TEST: {{ceux la}} sont des idiots, rien à en tirer. TEST: {{celle la}} ne vaut pas mieux, laisse-la tomber. TEST: {{Apporte-là}} près du feu TEST: cette {{bête-la}} TEST: il ne {{là}} croit pas. @@ -10211,10 +10211,12 @@ TEST: ne plus {{mangez}} fait maigrir TEST: ne plus {{mangées}} fait maigrir TEST: ne pas {{allé}} TEST: ne jamais plus me les {{montrés}} TEST: Ne jamais {{mangez}} de viande ! +TEST: N’en jamais {{cédait}} une seule miette. +TEST: N’y presque jamais {{trouvé}} rien à redire. TEST: ne jamais rien révéler des activités de la maison TEST: J’espère ne pas te déranger TEST: Ne pas te le donner, ce serait une insulte. TEST: ne jamais vraiment évoquer le sujet TEST: déterminés à ne pas se laisser récupérer @@ -13755,11 +13757,11 @@ <<- /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}} donne __gn_cet_1m__ cet *WORD <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> cette # Accord de genre erroné : « \2 » est féminin. @@ -16340,12 +16342,11 @@ # flanc / flan __conf_flanc_flan2__ >blesser au flan [>attaquer|>contre-attaquer] ?[sur|sous|à|contre]¿ @:D >flan - <<- /conf/ \-1.endswith("s") --1>> flancs # Confusion probable. Le flan est une pâtisserie. Pour évoquer un côté, une partie latérale, écrivez “flanc”. - <<- /conf/ __else__ --1>> flanc # Confusion probable. Le flan est une pâtisserie. Pour évoquer un côté, une partie latérale, écrivez “flanc”. + <<- /conf/ --1>> =\-1.replace("n", "nc").replace("N", "NC") # Confusion probable. Le flan est une pâtisserie. Pour évoquer un côté, une partie latérale, écrivez “flanc”. TEST: Il avait été blessé au {{flan}}. TEST: Elle lança une contre-attaque sur son {{flan}}. @@ -16592,11 +16593,11 @@ <<- /conf/ morph(\2, ":Q") -1>> lieu|lieux # Confusion probable. Pour désigner un endroit, écrivez “lieu(x)”.|http://fr.wiktionary.org/wiki/lieu [>être|>demeurer|>déménager|>habiter|>trouver|>situer|>rester|>demeurer|>demeure|>vivre] à [quelques|plusieurs|maintes|*NUM|@:B] [lieux|lieus] <<- /conf/ -4>> lieues # Confusion probable. Pour désigner une distance, écrivez “lieues”.|http://fr.wiktionary.org/wiki/lieue - [>être|>demeurer|>déménager|>habiter|>trouver|>situer|>rester|>demeurer|>demeure|>vivre] à des [lieux|lieus] + [>être|>demeurer|>déménager|>habiter|>trouver|>situer|>rester|>demeurer|>demeure|>vivre] à [des|*NUM|@:B] [lieux|lieus] <<- /conf/ space_after(\2, 1, 4) -4>> lieues # Confusion probable. Pour désigner une distance, écrivez “lieues”.|http://fr.wiktionary.org/wiki/lieue 20000 (>lieu) sous [la|les] >mer vingt mille (>lieu) sous [la|les] >mer <<- /conf/ -1>> lieues # Confusion. Pour désigner une distance, écrivez “lieue(s)”.|http://fr.wiktionary.org/wiki/lieue @@ -16609,13 +16610,16 @@ <<- /conf/ -3>> lieu|lieus # Confusion. Si vous parlez du poisson, écrivez “lieu(s)”.|http://fr.wiktionary.org/wiki/lieu TEST: qui est le responsable des {{lieues}} ? TEST: ce sont des {{lieus}} mythiques. TEST: Des {{lieus}} historiques. +TEST: {{lieus}} abandonnés TEST: co sont des {{lieues}} de rencontre pour les jeunes. TEST: elle habitait à quelques {{lieux}} d’ici TEST: Cette réunion ayant eu {{lieue}} loin d’ici +TEST: vingt mille {{lieux}} sous les mers +TEST: habite à 100 {{lieux}} d’ici TEST: Les {{lieux}} mordent à notre leurre. TEST: Techniques de traîne pour les {{lieux}} jaunes. TEST: Faire un état des {{lieus}}. TEST: vingt mille {{lieux}} sous la mer TEST: des {{lieues}} jaunes @@ -18994,11 +18998,11 @@ __ppas_nom_propre_être_accord_genre__ [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ [>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre] *WORD [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD - [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD + [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) @@ -19007,17 +19011,17 @@ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ ((morph(\1, ":M.*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")) or (morph(\1, ":M.*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and morph(\2, ":[123]s") --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. - (*WORD) [que|qu’] (@:M) ?[ne|n’]¿ + *WORD [que|qu’] @:M ?[ne|n’]¿ || ([>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’] (@:M) ?[ne|n’]¿ + *WORD [que|qu’] @:M ?[ne|n’]¿ || ([>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’] (@:M) ?[ne|n’]¿ + *WORD [que|qu’] @:M ?[ne|n’]¿ || ([>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: Antoine est {{mariée}}. @@ -19659,18 +19663,21 @@ TEST: des hommes, des femmes, des enfants qui ne leur avaient {{faits}} que du bien. __ppas_avoir_ppas_mas_sing__ - [|,|après|pour|pourquoi|quand|que|qu’|sans|d’|de|qui] ?[ne|n’]¿ ?[m’|t’|lui|leur]¿ avoir @:Q.*:[fp]¬:m:[si] + [|,|après|pour|pourquoi|quand|que|qu’|sans|d’|de|qui] ?[ne|n’]¿ ?[lui|leur]¿ avoir @:Q.*:[pf]¬:m:[si] + [|,|après|pour|pourquoi|quand|que|qu’|sans|d’|de|qui] ?[ne|n’]¿ [m’|t’] avoir @:Q.*:p¬:[si] <<- /ppas/ not value(\-1, "|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") --1>> =suggVerbPpas(\-1, ":m:s") # Le participe passé devrait être au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais TEST: Avoir {{instruite}} notre mère TEST: Après avoir {{baissés}} nos tarifs TEST: Je viendrai, après avoir vraiment {{écoutée}} le prof. TEST: Merci de m’avoir {{lus}} ->> lu +TEST: Pourquoi m’avoir {{ignorés}} ainsi ? +TEST: sans avoir {{ignorée}} le problème. ## avoir avec participe passé __ppas_m_t_l_avoir__ [l’|m’] ?[en|y]¿ >avoir @:(?:Y|[123][sp])¬:[QGWMX] @@ -20207,10 +20214,11 @@ m-en <<- /imp/ ->> m’en # Ici, “me” est abrégé, c’est une forme élidée. Il faut mettre une apostrophe et non un trait d’union. TEST: {{donne-m-en}} encore +TEST: viens {{m-en}} donner __imp_apostrophe_t_en__ ~\w-t-en$ <<- /imp/ not value(>1, "|guerre|") @@ -20219,10 +20227,11 @@ t-en <<- /imp/ not (value(<1, "|va|") and value(>1, "|guerre|")) ->> t’en # Ici, “te” est abrégé, c’est une forme élidée. Il faut mettre une apostrophe et non un trait d’union. TEST: {{accorde-t-en}} plus. +TEST: {{t-en}} lasser, impossible __imp_union_m_t_en_y__ *WORD [m’|t’] [en|y] <<- /imp/ space_after(\1, 1, 1) and morph(\1, ":E", ":[MG]") and morph(>1, ":||>,", ":(?:Y|[123][sp])") @@ -20256,10 +20265,11 @@ [/-lui|/-nous|/-vous|/-leur] [en|y] <<- /imp/ space_after(\1, 1, 1) and morphVC(\1, ":E") and morph(>1, ":[RC]||>,", ":[NAY]") ->> \1-\2 # S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206 +TEST: {{donnez-moi en}} TEST: {{prends-leur en}} TEST: {{Donnez-nous en}}. TEST: Alors, {{parais y}} grande et lumineuse. @@ -21836,10 +21846,11 @@ <<- /conj/ -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 3ᵉ personne du pluriel. <<- /conj/ __also__ and morph(\3, ":3s") -1>> elle # Accord avec “\3”. TEST: {{elles}} {{avance}} rapidement sur ce projet TEST: {{Elles}} n’y {{comprenne}} rien +TEST: {{elles}} qui s’{{amuse}} comme des folles TEST: L’expérience sensible qu’il nous restera bientôt d’elles est à peu près TEST: eux attaqués par des mécanoïdes, elles attaquées par des insectoïdes. __conj_ceux_celles_qui__