Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -1758,11 +1758,11 @@ [ … ] <<- ~>> * ** [ *WORD ] ** <<- space_after(\1, 1, 3) and space_after(\-2, 1, 3) >>> - <<- morph(\2, ":G") ~>> |\2| + <<- morph(\2, ":G") ~2:4>> |\2| <<- __else__ ~>> * ## chapitres, références ( [*WORD|*NUM] , *NUM ) [ [*WORD|*NUM] , *NUM ] @@ -1770,10 +1770,162 @@ <<- ~>> * TEST: ce chien […] ne {{semblez}} pas en forme. TEST: ce chat {{(…)}} ne {{ressemblez}} pas aux autres. TEST: Allons (re)voir ce film + + +!! +!! +!!!! Virgules !! +!! +!! + +__virg_virgules_manquantes__ + *WORD etc . + <<- /virg/ -1.:0>> , etc. && Avant « etc. », il faut mettre une virgule.|https://fr.wiktionary.org/wiki/etc. + + *WORD car @:(?:Os|D) + <<- /virg/ not morph(\1, ":[DR]") -1.:2>> , car + && Si « car » est la conjonction de coordination, une virgule est peut-être souhaitable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3447 + + *WORD mais $:Os + <<- /virg/ not morph(\1, ":D.*:[me]:[si]") -1.:2>> , mais + && Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445 + + *WORD donc [je|j’|il|on] + <<- /virg/ not morph(\1, ":[VG]") -1.:2>> , donc + && Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448 + +TEST: Un chien, un chat{{ etc.}} ->> , etc. +TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit. ->> , car +TEST: Je suis fatigué{{ mais}} il a joué toute la nuit. ->> , mais +TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire. ->> , donc +TEST: il s’est donc tu +TEST: c’était donc elles les meilleures +TEST: c’était eux qui prenaient tous les risques +TEST: il avançait donc le moyen d’y parvenir +TEST: Chacun peut l’entendre d’une manière différente et donc on se demande bien ce qui est mesuré dans les réponses. + + +__virg_fin_dialogue__ + . » ~^[a-zéà] + <<- /virg/ -1:2>> " »,| »" && Ou il faut une virgule (exemple : « Je viens », dit-il). Ou le point est superflu. Ou il faut une majuscule sur le mot suivant. + + , » ?,¿ ~^[a-zéà] + <<- /virg/ -1:-2>> " »,| »" && Virgule mal placée ou superflue. + +TEST: « Ça suffit{{. »}} dit-elle. ->> " »,| »" +TEST: « J’en ai plus qu’assez{{, »}} dis-je. ->> " »,| »" +TEST: « C’est ainsi{{, »,}} dis-je. ->> " »,| »" +TEST: dès son premier rendez-vous au centre +TEST: Depuis combien de temps fumez-vous ? + + +__virg_virgule_avant_points_suspension__ + , … + <<- /virg/ ->> … && Typographie : pas de virgule avant les points de suspension. + +TEST: ceci, cela{{, …}} ->> … + + +__virg_virgule_après_point__ + *WORD . , + <<- /virg/ space_after(\1, 0, 0) and space_after(\2, 0, 0) + and not value(\1, "|etc|fig|hab|litt|fig|hab|litt|circ|coll|ref|réf|étym|suppl|bibl|bibliogr|cit|vol|déc|nov|oct|janv|juil|avr|sept|pp|") + and \1.__len__() > 1 + -2:3>> ,|. && Pas de virgule après un point (sauf éventuellement après une abréviation). + +TEST: Les chiens, les chats{{.,}} les poules. ->> ,|. +TEST: A., dans le meilleur des cas, s’abstenait de tout commentaire + + +# Fin de paragraphe +#__/typo__ ({w_2}) *$ @@0 +# <<- before("[a-zéàùèê][.] ") and not before("^(?:\\d|\w[.])") +# -1>> \1.|\1…|\1 !|\1 ?|\1 :|\1 ;|\1, && Il manque une ponctuation finale. + +#__[s]/virg(virg_nombre)__ +# [0-9]+[.]([0-9]+)(?![,.]) +# <<- ->> =\0.replace(".", ",") && En français, le séparateur décimal est la virgule, non le point. +# +#TEST: +{{1.5}} dioptrie +#TEST: j’en veux 2.000 +#TEST: et moi 3.000.000 de dollars + + +__virg_après_verbe_COD__ + [le|la|l’|les] $:Y¬:N $:M + <<- /virg/ not value(\2, "|appeler|") and not tag_before(\1, "_que_") and not tag_before(\1, "_comme_") + -2>> \2, && Si “\-1” marque le début d’une proposition, une virgule est probablement souhaitable. + + [le|la|l’|les] *WORD ?[cher|chère]¿ @:M[12] + <<- /virg/ morph(\2, ":[123][sp]", ">appeler/|:[NA]") and not tag_before(\1, "_que_") and not tag_before(\1, "_comme_") + -2>> \2, && Si “\-2” est une personne apostrophée, alors il faut mettre le nom en incise.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?Th=2&t1=&id=3412 + +TEST: Tu vas les {{donner}} Rachel. +TEST: Il va la {{tuer}} Paul. +TEST: je le {{sais}} chère Paula +TEST: Ma fille, je vais l’appeler Deirdre. +TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac. +TEST: Cependant les promesses n’engagent que ceux qui les croient, comme s’évertuait à le dire Jacques Chirac. +TEST: Avancez comme sait le faire Patrick. +TEST: plus délirant encore que ne l’imaginait Marie. +TEST: moins corrompu que ne pouvait le croire Marie. +TEST: comme vient de le dire Ruth +TEST: L’antimoine des sages, matière première extraite directement de la mine, « n’est pas proprement minéral et moins encore métallique », ainsi que nous l’enseigne Philalèthe. +TEST: L’officier Patrick Martel aurait dégaîné son arme + + +!! +!! +!!!! Écritures épicènes invariables !! +!! +!! + +__écritures_épicènes_invariables__ + [tous|tou] · tes + [tous|tou] · te · s + <<- ~>> ␣ + + c · [eu|eux] · [les|lles|elles|celles] + [ceu|ceux] · [les|lles|elles|celles] + <<- ~>> ␣ + + *WORD · e · s + *WORD · [ce|rice|drice|price|trice] · s + *WORD · [fe|ffe] · s + *WORD · [le|ale|bale|cale|dale|male|nale|pale|tale] · s + *WORD · [ne|ane|ène|ine|nne|enne] · s + *WORD · [ire|ière|ère|re] · s + *WORD · [se|euse|ieuse|deuse|peuse|teuse] · s + *WORD · [eresse|oresse] · s + *WORD · [ve|ive|dive|sive|tive] · s + *WORD · [te|ate|ète|ite|tte] · s + *WORD · es + *WORD · [ces|rices|drices|prices|trices] + *WORD · [fes|ffes] + *WORD · [les|ales|bales|cales|dales|males|nales|pales|tales] + *WORD · [nes|anes|ènes|ines|nnes|ennes] + *WORD · [res|ires|ières|ères] + *WORD · [ses|euses|ieuses|deuses|peuses|teuses] + *WORD · [eresses|oresses] + *WORD · [ves|ives|dives|sives|tives] + *WORD · [tes|ates|ètes|ites|ttes] + <<- ~>> ␣ + <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, ":N:A:Q:e:p") + + *WORD · [e|fe|le|ne|se|te] + <<- not value(>1, "|·|") >>> + <<- ~>> ␣ + <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, ":N:A:Q:e:s") + + *WORD · s + <<- not value(<1, "|·|") >>> + <<- ~>> ␣ + <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, ":N:A:Q:e:p") + !!! !!! !!! Désambiguïsation !! @@ -2461,53 +2613,10 @@ ~^[A-ZÀÂÉÈÊÎÔ]. Airways <<- ~>> ␣ <<- =>> define(\2, ":MP:e:i") - -__écritures_épicènes_invariables__ - [tous|tou] · tes - [tous|tou] · te · s - <<- ~>> ␣ - - c · [eu|eux] · [les|lles|elles|celles] - [ceu|ceux] · [les|lles|elles|celles] - <<- ~>> ␣ - - *WORD · e · s - *WORD · [ce|rice|drice|price|trice] · s - *WORD · [fe|ffe] · s - *WORD · [le|ale|bale|cale|dale|male|nale|pale|tale] · s - *WORD · [ne|ane|ène|ine|nne|enne] · s - *WORD · [ire|ière|ère|re] · s - *WORD · [se|euse|ieuse|deuse|peuse|teuse] · s - *WORD · [eresse|oresse] · s - *WORD · [ve|ive|dive|sive|tive] · s - *WORD · [te|ate|ète|ite|tte] · s - *WORD · es - *WORD · [ces|rices|drices|prices|trices] - *WORD · [fes|ffes] - *WORD · [les|ales|bales|cales|dales|males|nales|pales|tales] - *WORD · [nes|anes|ènes|ines|nnes|ennes] - *WORD · [res|ires|ières|ères] - *WORD · [ses|euses|ieuses|deuses|peuses|teuses] - *WORD · [eresses|oresses] - *WORD · [ves|ives|dives|sives|tives] - *WORD · [tes|ates|ètes|ites|ttes] - <<- ~>> ␣ - <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, ":N:A:Q:e:p") - - *WORD · [e|fe|le|ne|se|te] - <<- not value(>1, "|·|") >>> - <<- ~>> ␣ - <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, ":N:A:Q:e:s") - - *WORD · s - <<- not value(<1, "|·|") >>> - <<- ~>> ␣ - <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, ":N:A:Q:e:p") - __immunités__ il y a il n’ y a <<- !-1>> @@ -2820,112 +2929,10 @@ TEST: dépenses-en encore TEST: prenez-en TEST: prends-en TEST: allez-y - -!! -!! -!!!! Virgules !! -!! -!! - -__virg_virgules_manquantes__ - *WORD etc . - <<- /virg/ -1.:0>> , etc. && Avant « etc. », il faut mettre une virgule.|https://fr.wiktionary.org/wiki/etc. - - *WORD car @:(?:Os|D) - <<- /virg/ not morph(\1, ":[DR]") -1.:2>> , car - && Si « car » est la conjonction de coordination, une virgule est peut-être souhaitable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3447 - - *WORD mais $:Os - <<- /virg/ not morph(\1, ":D.*:[me]:[si]") -1.:2>> , mais - && Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445 - - *WORD donc [je|j’|il|on] - <<- /virg/ not morph(\1, ":[VG]") -1.:2>> , donc - && Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448 - -TEST: Un chien, un chat{{ etc.}} ->> , etc. -TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit. ->> , car -TEST: Je suis fatigué{{ mais}} il a joué toute la nuit. ->> , mais -TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire. ->> , donc -TEST: il s’est donc tu -TEST: c’était donc elles les meilleures -TEST: c’était eux qui prenaient tous les risques -TEST: il avançait donc le moyen d’y parvenir -TEST: Chacun peut l’entendre d’une manière différente et donc on se demande bien ce qui est mesuré dans les réponses. - - -__virg_fin_dialogue__ - . » ~^[a-zéà] - <<- /virg/ -1:2>> " »,| »" && Ou il faut une virgule (exemple : « Je viens », dit-il). Ou le point est superflu. Ou il faut une majuscule sur le mot suivant. - - , » ?,¿ ~^[a-zéà] - <<- /virg/ -1:-2>> " »,| »" && Virgule mal placée ou superflue. - -TEST: « Ça suffit{{. »}} dit-elle. ->> " »,| »" -TEST: « J’en ai plus qu’assez{{, »}} dis-je. ->> " »,| »" -TEST: « C’est ainsi{{, »,}} dis-je. ->> " »,| »" -TEST: dès son premier rendez-vous au centre -TEST: Depuis combien de temps fumez-vous ? - - -__virg_virgule_avant_points_suspension__ - , … - <<- /virg/ ->> … && Typographie : pas de virgule avant les points de suspension. - -TEST: ceci, cela{{, …}} ->> … - - -__virg_virgule_après_point__ - *WORD . , - <<- /virg/ space_after(\1, 0, 0) and space_after(\2, 0, 0) - and not value(\1, "|etc|fig|hab|litt|fig|hab|litt|circ|coll|ref|réf|étym|suppl|bibl|bibliogr|cit|vol|déc|nov|oct|janv|juil|avr|sept|pp|") - and \1.__len__() > 1 - -2:3>> ,|. && Pas de virgule après un point (sauf éventuellement après une abréviation). - -TEST: Les chiens, les chats{{.,}} les poules. ->> ,|. -TEST: A., dans le meilleur des cas, s’abstenait de tout commentaire - - -# Fin de paragraphe -#__/typo__ ({w_2}) *$ @@0 -# <<- before("[a-zéàùèê][.] ") and not before("^(?:\\d|\w[.])") -# -1>> \1.|\1…|\1 !|\1 ?|\1 :|\1 ;|\1, && Il manque une ponctuation finale. - -#__[s]/virg(virg_nombre)__ -# [0-9]+[.]([0-9]+)(?![,.]) -# <<- ->> =\0.replace(".", ",") && En français, le séparateur décimal est la virgule, non le point. -# -#TEST: +{{1.5}} dioptrie -#TEST: j’en veux 2.000 -#TEST: et moi 3.000.000 de dollars - - -__virg_après_verbe_COD__ - [le|la|l’|les] $:Y¬:N $:M - <<- /virg/ not value(\2, "|appeler|") and not tag_before(\1, "_que_") and not tag_before(\1, "_comme_") - -2>> \2, && Si “\-1” marque le début d’une proposition, une virgule est probablement souhaitable. - - [le|la|l’|les] *WORD ?[cher|chère]¿ @:M[12] - <<- /virg/ morph(\2, ":[123][sp]", ">appeler/|:[NA]") and not tag_before(\1, "_que_") and not tag_before(\1, "_comme_") - -2>> \2, && Si “\-2” est une personne apostrophée, alors il faut mettre le nom en incise.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?Th=2&t1=&id=3412 - -TEST: Tu vas les {{donner}} Rachel. -TEST: Il va la {{tuer}} Paul. -TEST: je le {{sais}} chère Paula -TEST: Ma fille, je vais l’appeler Deirdre. -TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac. -TEST: Cependant les promesses n’engagent que ceux qui les croient, comme s’évertuait à le dire Jacques Chirac. -TEST: Avancez comme sait le faire Patrick. -TEST: plus délirant encore que ne l’imaginait Marie. -TEST: moins corrompu que ne pouvait le croire Marie. -TEST: comme vient de le dire Ruth -TEST: L’antimoine des sages, matière première extraite directement de la mine, « n’est pas proprement minéral et moins encore métallique », ainsi que nous l’enseigne Philalèthe. -TEST: L’officier Patrick Martel aurait dégaîné son arme - @@@@ @@@@ @@@@ @@ -10001,11 +10008,11 @@ >or d’ [ici|atteinte] >or [de|d’] [là|doute|page] >or [de|d’] chez [moi|toi|soi|lui|elle|iel|nous|vous|eux|elles|iels] >or du commun >or [de|d’] ?[ma|ta|sa|notre|votre|leur]¿ [compréhension|perception|portée|vue] - >or [de|d’] question [que|qu’|,|)|] + >or [de|d’] question [que|qu’|de|d’|,|)|] <<- not morph(<1, ":D.*:[me]") -1>> hors && Confusion probable. La préposition “hors” sert à dire “en dehors de” ou “excepté”.|https://fr.wiktionary.org/wiki/hors [|,|(] or [de|d’] {pronom_obj} <<- /conf/ -2>> hors && Confusion probable. La préposition “hors” sert à dire “en dehors de” ou “excepté”.|https://fr.wiktionary.org/wiki/hors @@ -14309,13 +14316,10 @@ dès [maintenant|lors|aujourd’hui] dès [mon|ton|son|notre|votre|leur] plus jeune âge dès [ma|ta|sa|notre|votre|leur] première rencontre dès potron-minet dès que possible - déjà - désormais - dorénavant du début à la fin du jour au lendemain du jour j d’ antan d’ après-guerre @@ -14381,25 +14385,19 @@ plus [près|loin|tôt|tard] plus ?[près|loin|tôt|tard]¿ que [prévu|nécessaire] plus ?[près|loin|tôt|tard]¿ que d’ habitude par la suite par le passé - parfois plus jamais plus que d’ habitude pour lors pour le restant [de|d’] [mes|tes|ses|nos|vos|leurs] jours quant à présent sine die sans délai ?supplémentaire¿ - soudain - souvent sur ces entrefaites - sur-le-champ séance tenante - tard - toujours tout [de|d’] [suite|go] tout à coup toute affaire cessante toutes affaires cessantes tôt ou tard @@ -14406,13 +14404,23 @@ un jour ou l’autre un peu [moins|plus] ?[près|loin|tôt|tard]¿ que prévu [voici|voilà] belle lurette <<- ~>> * + déjà + désormais + dorénavant + parfois + soudain + souvent + sur-le-champ + tard + toujours + <<- ~>> * + tôt <<- not (value(>1, "|fait|") and value(>2, "|de|d’|") and morph(<1, ">avoir/")) ~>> * - __purge_locutions_échéance__ à ?[si|très|trop]¿ [brève|courte|longue] échéance à moyenne échéance à plus ou moins [brève|courte|longue] échéance @@ -18400,10 +18408,11 @@ TEST: elle s’est servie de son enfant TEST: ce jour verrait la violence se déchaîner, le sang couler, le chaos tout emporter TEST: À l’origine spécifiquement américain, le mouvement complotiste QAnon n’en commence pas moins à faire des petits en Europe. TEST: je mesure tout ce qu’a d’ardu la condition de nos délégués dans les pays neutres. TEST: C’est à la fois la plus intéressante du livre et la plus délicate. +TEST: Pour un peu, on les eût pris pour des détenus exemplaires. @@@@ @@@@ @@@@ @@ -20077,10 +20086,26 @@ TEST: Elles semblent {{jeûnes}}. TEST: il accomplit le {{jeune}} rituel TEST: de {{jeûnes}} adultes TEST: les {{jeûnes}} travailleurs du nouveau centre commercial + +# lait / laid / lé +__conf_lait_laid_laie_lé__ + [>avaler|>boire|>chauffer|>ingurgiter|>réchauffer] [du|le|ce] [>laid|>laie|>lai|>lé] + >boire [du|le|ce] petit [>laid|>laie|>lai|>lé] + >verre [de|d’] [>laid|>laie|>lai|>lé] + <<- /conf/ --1>> lait && Confusion probable. Le produit laitier s’écrit “lait”. + + [laid+s|>laie|>lai|>lé] [de|d’] [brebis|coco|chèvre|poule|soja|vache] + <<- /conf/ -1>> lait && Confusion probable. Le produit laitier s’écrit “lait”. + +TEST: fait chauffer le {{laid}} ->> lait +TEST: {{laid}} de soja ->> lait +TEST: un verre de lait +TEST: le lait de brebis + # leste / lest __conf_lest_leste__ [>charger|>jeter|>lâcher|>relâcher] [du|le|ce] leste [>gramme|>kilo|>tonne] [de|d’] >leste @@ -24590,12 +24615,17 @@ [>adorer|>aimer|>compter|>désirer|>détester|>entendre|>espérer|>préférer|>souhaiter] ~..(?:ée?s?|ez)$ <<- /infi/ morph(\1, ":", ":[GN]") and morph(\2, ":V", ":M") and not value(<1, "|le|la|l’|les|") -2>> =suggVerbInfi(\2) && S’il s’agit d’une action à accomplir, le verbe devrait être à l’infinitif. - [>aller|>envoyer|>venir|>revenir|>partir] ~..(?:ée?s?|ez)$ - <<- /infi/ morph(\1, ":", ":[GN]") and morph(\-1, ":V", ":M|>(?:accompagner|armer|armurer|casquer|débrailler|déguiser|épuiser)/") and not value(>1, "|par|") + [>aller|>envoyer|>partir] ~..(?:ée?s?|ez)$ + <<- /infi/ morph(\1, ":", ":[GN]") and morph(\-1, ":V", ":M|>(?:accompagner|armer|armurer|attifer|casquer|débrailler|déguiser|épuiser)/") and not value(>1, "|par|") + --1>> =suggVerbInfi(\2) && S’il s’agit d’une action à accomplir, le verbe devrait être à l’infinitif. + + [>venir|>revenir] ~..(?:ée?s?|ez)$ + <<- /infi/ morph(\1, ":", ":[GN]") and morph(\-1, ":V", ":M|>(?:accompagner|armer|armurer|attifer|casquer|débrailler|déguiser|épuiser)/") and not value(>1, "|par|") + and not value(<1, "|me|m’|te|t’|se|s’|lui|") --1>> =suggVerbInfi(\2) && S’il s’agit d’une action à accomplir, le verbe devrait être à l’infinitif. TEST: elle préférait {{mangée}} seule. ->> manger TEST: Il venait, comme d’habitude, {{discuté}} avec son ami. ->> discuter TEST: Ces types-là venaient {{mangé}} chez moi tous les dimanches. ->> manger @@ -24619,10 +24649,11 @@ TEST: J’irai armé de mon épée. TEST: Si possible, venez accompagné. TEST: Elle vint accompagnée de son père. TEST: Ils étaient venus débraillés comme leurs aînés les vaincus. TEST: Il était venu poussé par la curiosité. +TEST: mes missives me reviennent encore cachetées __infi_avoir_beau__ >avoir beau ?[ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ ~..(?:ée?s?|ez|ai[ts]?)$