Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -976,16 +976,16 @@ # //////////////////////////////////////// PRÉPROCESSEUR //////////////////////////////////////// # Dernier nettoyage avant coupure du paragraphe en phrases # # Trait d’union conditionnel (u00AD) -____ \w+‑\w+‑\w+ <<- ~>> =\0.replace("‑", "") -____ \w+‑\w+ <<- ~>> =\0.replace("‑", "") +__(p_trait_union_conditionnel1)__ \w+‑\w+‑\w+ <<- ~>> =\0.replace("‑", "") +__(p_trait_union_conditionnel2)__ \w+‑\w+ <<- ~>> =\0.replace("‑", "") # empêcher la scission en fin de dialogue -____ ([?!…][?!…  ]*)[ "'”» ]*, @@0 <<- ~1>> * -____ ([?!…][?!…  ]*)[ "'”» ]*[a-zéèêîô] @@0 <<- ~1>> , +__(p_fin_dialogue1)__ ([?!…][?!…  ]*)[ "'”» ]*, @@0 <<- ~1>> * +__(p_fin_dialogue2)__ ([?!…][?!…  ]*)[ "'”» ]*[a-zéèêîô] @@0 <<- ~1>> , TEST: « Je suis donc perdu ? », dit Paul. TEST: “C’est bon !”, croit savoir Marie. TEST: “Parce que… ?” finit par demander Paul. TEST: « Dans quel pays sommes-nous ? » demanda un manifestant. @@ -2900,11 +2900,12 @@ TEST: J’ai trop {{mangeais}}. TEST: Ce que nous réussissons presque sera considéré comme un échec. # élimination de presque -__[i]__ presque <<- ~>> * +__[i](p_presque)__ + presque <<- ~>> * __[i]/conf(conf_chez_vconj)__ chez +({w2}) @@$ <<- not \1[0].isupper() and morphex(\1, ":[123][sp]", ":[GNAQM]") -1>> _ # Incohérence avec « chez ». @@ -3784,13 +3785,16 @@ #### TOUT / TOUS / TOUTE / TOUTES -__[i]__ fai(?:tes|sons|s)-(?:les|[nv]ous) (tou(?:te|)s) @@$ <<- ~1>> * -__[i]__ (tout) (?:débuts|petits) @@0 <<- before(r"\b(aux|[ldmts]es|[nv]os) +$") ~1>> * -__[i]__ (?:[ldmtsc]es|[nv]os|leurs) (tout) ({w_2}) @@w,$ +__[i](p_fais_les_tous)__ + fai(?:tes|sons|s)-(?:les|[nv]ous) (tou(?:te|)s) @@$ <<- ~1>> * +__[i](p_tout_débuts_petits)__ + (tout) (?:débuts|petits) @@0 <<- before(r"\b(aux|[ldmtsc]es|[nv]os|leurs) +$") ~1>> * +__[i](p_les_tout_xxx)__ + (?:[ldmtsc]es|[nv]os|leurs|aux) (tout) ({w_2}) @@w,$ <<- morph(\2, ":[AQ].*:[pi]", False) ~1>> * __[i]/gn(gn_tous_deux)__ (tout) deux @@0 <<- not word(-1) -1>> tous # Locution pronominale : « tous deux ».|https://fr.wiktionary.org/wiki/tous_deux @@ -3908,11 +3912,12 @@ TEST: __neg__ Il {{y}} a jamais d’eau. #### INFINITIF -__[i]__ ne (?:pas|plus|jamais) +(beaucoup|trop) @@$ <<- ~1>> * +__[i](p_ne_plus_pas_jamais_beaucoup_trop_rien)__ + ne (?:pas|plus|jamais) +(beaucoup|trop|rien) @@$ <<- ~1>> * __[i]/infi(infi_ne)__ ne (?:pas|rien|jamais(?: rien| plus|)|plus(?: jamais| rien| guère|)|guère|point) (?:non plus |)(?:l(?:e(?:ur|s|)|a|ui) |nous |vous |[mtsl]’(?:en |y |)|[mts]e |en |y |)({w_1}) @@$ <<- not morph(\1, ":(?:Y|W|O[ow])|>que? ", False) and spell(\1) @@ -8818,11 +8823,12 @@ #### AVOIR + PARTICIPES PASSÉS #__[i]/conj__ fait(s|e|es) ({w1}) <<- morph(\2, ":V") and not morph(\2, ":Y") # ->> fait \1 # Le participe passé de faire reste au masculin singulier s’il est suivi par un verbe à l’infinitif. -__[i]__ les ({avoir}) +(fait) +(?:[mts](?:e +|’)|)({infi}) @@w,w,$ <<- morph(\1, ">avoir ", False) and morph(\3, ":Y", False) ~2>> _ +__[i](p_les_avoir_fait_vinfi)__ + les ({avoir}) +(fait) +(?:[mts](?:e +|’)|)({infi}) @@w,w,$ <<- morph(\1, ">avoir ", False) and morph(\3, ":Y", False) ~2>> _ __[i]/ppas(ppas_pronom_avoir)__ (j’|je |tu |ils? |elles? |[nv]ous |on |et )(?:ne +|n’|l(?:ui|eur) +|)({avoir}) +({w_2}) @@0,w,$ <<- not re.search("(?i)^(?:barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours)$", \3) and morph(word(-1), ">puisque? ", False, True) and morph(\2, ":V0a", False) and not \3.isupper() and morphex(\3, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])")