Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -476,11 +476,11 @@ __[s>(p_chiffres_m)__ "\d+ (m) " @@w <<- ~1>> _ # heures __[s](p_heures)__ - (?:de |à |)[012]?\d[h:]\d\d(?:[m:]\d\ds?|) <<- ~>> * + (?:de|à|jusqu’à) [012]?\d[h:]\d\d(?:[m:]\d\ds?|) <<- ~>> * # crochets __[s](p_points_suspension_entre_crochets)__ \[…\] <<- ~>> * __[s](p_mot_entre_crochets)__ @@ -522,10 +522,11 @@ TEST: Marion Maréchal-Le Pen. Afin que Maréchal ne soit pas analysé comme un impératif, “Le Pen” devient “Le_Pen”. TEST: Car [je] deviendrai plus insaisissable que jamais. TEST: C’est dans le dossier D:\Data TEST: Dossier C:\Program Files (x86)\LibreOffice TEST: [1] Dossier à revoir. +TEST: jusqu’à 12h47 !!! !!! @@ -4144,10 +4145,12 @@ TEST: Tu ne {{ment}} jamais. TEST: Tu {{a}} mal ? TEST: Tu ne le lui {{prend}} pas. TEST: Tu ne m’{{attendra}} pas. +TEST: Jusqu’ici, on a tu le nom de la créature. +TEST: il s’est tu les jours après son agression. ## 3sg __conj_il__ il @:V¬:(?:3s|G) @@ -12632,20 +12635,26 @@ [>patte|pat] au [basilic|beurre|saumon|pesto|poulet|thon] [>patte|pat] [à|a] [>pain|>crêpe|>gaufre|>pizza|>tarte|>modeler|>tartiner] [>patte|pat] [d’|de] [>amande|>amende|>fruit] <<- /conf/ -1>> pâte|pâtes # Confusion. La patte est le membre d’un animal (ou d’une table…). La matière pâteuse s’écrit “pâte”. + + >mettre ?[pas|jamais]¿ la main à la [>patte|pat] >coq en [>patte|pat] - <<- /conf/ -3>> pâte # Confusion. La patte est le membre d’un animal (ou d’une table…). La matière pâteuse s’écrit “pâte”. + <<- /conf/ --1>> pâte # Confusion. La patte est le membre d’un animal (ou d’une table…). La matière pâteuse s’écrit “pâte”. + + >coup de [>pâte|pat] + <<- /conf/ -3>> patte # Confusion. Une pâte est une matière pâteuse. Pour désigner le membre d’un animal, écrivez “patte”. TEST: Prépare la {{patte}} à tarte. TEST: Ils mangent souvent des {{pattes}} au thon. TEST: Des {{pattes}} alimentaires. TEST: Elles ont acheté de la {{patte}} à tartiner. TEST: La {{patte}} à pizza est plus épaisse que la pâte à crêpes. TEST: Elle adore la {{patte}} d’amande. TEST: Il est comme un coq en {{pattes}} là. +TEST: Elle n’a jamais mis la main à la {{patte}}. # peu / peux / peut __conf_peut_peux_peu2__ [peux|peut] [de|d’] @:[NA]¬* @@ -15908,126 +15917,120 @@ TEST: lesquels {{devienne}} des ennuyeux incomparables. TEST: Mais parmi les millions de causes à défendre, lesquelles choisir ? TEST: les failles par lesquelles entrait l’eau étaient impossibles à boucher. - -@@@@ -@@@@ -@@@@ -@@@@ -@@@@END_GRAPH _ -@@@@ -@@@@ -@@@@ -@@@@ - - -# on / ont -__[i]/conf(conf_ont1)__ - (?:ils|c?eux +qui|c?elles +qui) +(on) @@$ - <<- -1>> ont # Incohérence : « on » est un pronom personnel, « ont » est une conjugaison du verbe avoir. - -TEST: ces gens-là ils {{on}} {{raison}} plus souvent que la plupart des gens. -TEST: Ils soutiennent ceux qui {{on}} {{tant}} de raison d’être en colère. - - -__[i]/conf(conf_ont2)!6__ - (?> ont # Incohérence : « on » est un pronom personnel, « ont » est une conjugaison du verbe avoir. - -TEST: celles-là {{on}} {{vraiment}} un problème avec la religion. -TEST: j’ai, tu as, ils ont, elles {{on}} -TEST: Or parmi celles-ci on trouve typiquement d’un côté les structures - - # L’accord par syllepse est obligatoire après /la plupart/, ainsi qu’après /nombre/ et /quantité/ employés sans déterminant. L’accord se fait avec le « pseudo-complément ». -__[i]/conj(conj_beaucoup_d_aucuns_la_plupart)__ - (beaucoup|d’aucuns|la plupart) +({w_2}) @@0,$ - <<- morphex(\2, ":V", ":(?:3p|P|Q|G)") and not morph(word(-1), ":[VR]|>de/", False, False) - -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. - -__[i]/conj(conj_beaucoup_d_aucuns_la_plupart_qui)__ - (beaucoup|d’aucuns|la plupart) +qui +({w_2}) @@0,$ - <<- morphex(\2, ":V", ":(?:3p|P|Q|G)") and not morph(word(-1), ":[VR]", False, False) - -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. +__conj_beaucoup_d_aucuns_la_plupart__ + beaucoup @:V¬:(?:3p|P|Q|G) + <<- /conj/ not morph(<1, ":[VR]|>de/") + -2>> =suggVerb(\2, ":3p") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel. + + d’ aucuns @:V¬:(?:3p|P|Q|G) + la plupart @:V¬:(?:3p|P|Q|G) + <<- /conj/ not morph(<1, ":[VR]|>de/") + -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 3ᵉ personne du pluriel. + + beaucoup qui @:V¬:(?:3p|P|G) + <<- /conj/ not morph(<1, ":[VR]|>de/") + -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel. + + d’ aucuns qui @:V¬:(?:3p|P|G) + la plupart qui @:V¬:(?:3p|P|G) + <<- /conj/ not morph(<1, ":[VR]|>de/") + -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1 \2 \3”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: la plupart des hommes {{vienne}} TEST: La plupart {{admet}} TEST: beaucoup {{vienne}} TEST: d’aucuns {{pense}} que c’est faux TEST: beaucoup qui ne {{pense}} jamais à rien, mais qui ont quand même des avis sur tout. TEST: beaucoup entre la peste et le choléra. +TEST: Beaucoup avait été accompli -__[i]/conj(conj_certains_tous_plusieurs)__ - (?> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du pluriel. +__conj_certains_tous_plusieurs__ + [certains|certaines|tous|toutes|plusieurs] @:V¬:(?:G|N|A|3p|P|Q) + [certains|certaines|tous|toutes|plusieurs] qui @:V¬:(?:G|3p|P) + <<- /conj/ not morph(<1, ":[VR]|>de/") + --1>> =suggVerb(\-1, ":3p") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: certains {{prenne}} leur temps TEST: Plusieurs qui {{pense}} que c’est une arnaque se sont quand même trompés. -__[i]/conj(conj_certains_certaines)__ - (certaine?) +({w_2}) @@0,$ - <<- isStart() >>> - <<- morphex(\2, ":V.*:[123]p", ":[GWM]") -1>> \1s # Accord de conjugaison avec “\2”. Mettez au pluriel “\1” si vous désignez plusieurs personnes. - <<- \1.endswith("n") and morphex(\2, ":V.*:[123]s", ":(?:V0e.*:3s|N.*:[me]:[si])") - -2>> =suggVerb(@, ":3p") # Conjuguez “\2” à la troisième personne du pluriel, si “\1” est un pronom censé désigner plusieurs personnes. - <<- __also__ -1>> \1s # Mettez au pluriel “\1” si vous désignez plusieurs personnes. - <<- __else__ and \1.endswith("e") and morphex(\2, ":V.*:[123]s", ":(?:V0e.*:3s|N.*:[fe]:[si])") - -2>> =suggVerb(@, ":3p") # Conjuguez “\2” à la troisième personne du pluriel, si “\1” est un pronom censé désigner plusieurs personnes. - <<- __also__ -1>> \1s # Mettez au pluriel “\1” si vous désignez plusieurs personnes. +__conj_certains_certaines__ + [|,] [certain|certaine] @:V.*:[123]p¬:[GWMNA] + <<- /conj/ -2>> \1s # Mettez au pluriel “\2” si vous désignez plusieurs personnes. + <<- /conj/ morph(\3, ":[12]p") ->> =suggVerb(\3, ":3p") # Conjuguez “\3” à la troisième personne du pluriel, si “\2” est un pronom censé désigner plusieurs personnes. + + [|,] certain @:V.*:[123]s¬>(?:être|demeurer|rester|devenir|redevenir).*:3s|:N.*:[me]:[si] + <<- /conj/ -3>> =suggVerb(\3, ":3p") # Conjuguez “\3” à la troisième personne du pluriel, si “\2” est un pronom censé désigner plusieurs personnes. + <<- /conj/ -2>> \1s # Mettez au pluriel “\2” si vous désignez plusieurs personnes. + + [|,] certaine @:V.*:[123]s¬>(?:être|demeurer|rester|devenir|redevenir).*:3s|:N.*:[fe]:[si] + <<- /conj/ -3>> =suggVerb(\3, ":3p") # Conjuguez “\3” à la troisième personne du pluriel, si “\2” est un pronom censé désigner plusieurs personnes. + <<- /conj/ -2>> \1s # Mettez au pluriel “\2” si vous désignez plusieurs personnes. TEST: {{certain}} deviennent idiots à cette seule pensée. TEST: mais c’est exact, {{certaine}} perdent leur calme souvent dans les méandres de l’administration. TEST: {{certain}} {{donne}} beaucoup. TEST: certaine est la défaite. - - -__[i]/conj(conj_det_plur_nom)__ - ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +({w_2}) @@0,w,$ - <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) - and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> - <<- not checkAgreement(\2, \3) - -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. - <<- __else__ and isAmbiguousAndWrong(\2, \3, ":p", ":3p") - -3>> =suggVerb(@, ":3p", suggPlur) # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. -__[i]/conj(conj_det_plur_nom_qui)__ - ([cmts]es|[nv]os|leurs|quelques) +({w_2}) +qui +({w_2}) @@0,w,$ - <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) - and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) - -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. +TEST: si tu persévères, certaine deviendra la réussite. + + +__conj_det_plur_nom__ + [ces|mes|tes|ses|nos|vos|leurs|quelques] @:[NA].*:[pi] @:V¬:(?:[13]p|P|Y|G|A.*:e:[pi]) + <<- /conj/ morph(<1, ":C||>,") + and not( morph(\3, ":3s") and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> + <<- /conj/ not checkAgreement(\2, \3) -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. + <<- /conj/ __else__ and isAmbiguousAndWrong(\2, \3, ":p", ":3p") + -3>> =suggVerb(\3, ":3p", suggPlur) # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. + + [ces|mes|tes|ses|nos|vos|leurs|quelques] @:[NA].*:[pi] qui @:V¬:(?:[13]p|P|Y|G|A.*:e:[pi]) + <<- /conj/ morph(<1, ":C||>,") + and not( morph(\4, ":3s") and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) + -4>> =suggVerb(\4, ":3p") # Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Ses « chiens » {{coure}} sur ma pelouse. TEST: mes filles {{passe}} ce matin TEST: vos filles {{passes}} ce matin TEST: ces travaux qui {{demande}} tant d’efforts. TEST: vos questions ne {{réclame}} aucune réflexion. TEST: le lien entre les agences de renseignement et ces mêmes entreprises pouvait reposer sur des activités de surveillance à proprement parler. -__[i]/conj(conj_det_plur_nom_confusion)__ - (les|certaine?s|plusieurs) +({w_2}) +({w_2}) @@0,w,$ - <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) - and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> - <<- not checkAgreement(\2, \3) - -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. - <<- __else__ and (\1 == "les" or \1 == "Les") and isVeryAmbiguousAndWrong(\2, \3, ":p", ":3p", isStart()) - -3>> =suggVerb(@, ":3p", suggPlur) # Accord avec « les \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. - <<- __else__ and (\1 == "certains" or \1 == "Certains") and isVeryAmbiguousAndWrong(\2, \3, ":m:p", ":3p", isStart()) - -3>> =suggVerb(@, ":3p", suggMasPlur) # Accord avec « certains \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. - <<- __else__ and (\1 == "certaines" or \1 == "Certaines") and isVeryAmbiguousAndWrong(\2, \3, ":f:p", ":3p", isStart()) - -3>> =suggVerb(@, ":3p", suggFemPlur) # Accord avec « certaines \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. -__[i]/conj(conj_det_plur_nom_qui_confusion)__ - (les|certaine?s|plusieurs) +({w_2}) +qui +({w_2}) @@0,w,$ - <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Q|Y|G|A.*:e:[pi])") and morphex(word(-1), ":C", ":[YP]", True) - and not( morph(\3, ":3s", False) and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) - -3>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \1 \2… ». Le verbe devrait être à la 3ᵉ personne du pluriel. +__conj_det_plur_nom_confusion__ + les @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|A.*:e:[pi]) + <<- /conj/ morph(<1, ":C||>,") + and not( morph(\3, ":3s") and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> + <<- /conj/ not checkAgreement(\2, \3) + -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. + <<- /conj/ __else__ and isVeryAmbiguousAndWrong(\2, \3, ":p", ":3p", value(<1, "||,|")) + -3>> =suggVerb(\3, ":3p", suggPlur) # Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. + + [certains|certaines] @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|A.*:e:[pi]) + <<- /conj/ morph(<1, ":C||>,") + and not( morph(\3, ":3s") and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> + <<- /conj/ not checkAgreement(\2, \3) + -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. + <<- /conj/ __else__ and isVeryAmbiguousAndWrong(\2, \3, ":m:p", ":3p", value(<1, "||,|")) + -3>> =suggVerb(\3, ":3p", suggMasPlur) # Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. + <<- /conj/ __else__ and isVeryAmbiguousAndWrong(\2, \3, ":f:p", ":3p", value(<1, "||,|")) + -3>> =suggVerb(\3, ":3p", suggFemPlur) # Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. + + plusieurs @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|A.*:e:[pi]) + <<- /conj/ morph(<1, ":C||>,") + and not( morph(\3, ":3s") and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) + and not checkAgreement(\2, \3) + -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. + + [les|certains|certaines|plusieurs] @:[NA].*:[pi] qui @:V¬:(?:[13]p|P|Y|G) + <<- /conj/ morph(<1, ":C||>,") + and not( morph(\4, ":3s") and before(r"(?i)\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) + -4>> =suggVerb(\4, ":3p") # Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Les abstentions {{est}} présumée manifester un défaut d’opinion marquée TEST: Les cours de culture générale nous {{apporte}} de l’ouverture d’esprit. TEST: Les hommes ne le lui {{pardonnes}} pas. TEST: Les infirmières à mi-temps ne {{travaille}} pas dans cette aile. @@ -16059,35 +16062,33 @@ TEST: certaines femmes {{danse}} beaucoup TEST: Sauf que l’un comme l’autre avaient dû y renoncer. TEST: L’un comme l’autre devaient y renoncer. -__[i]/conj(conj_des_nom1)__ - ^ *des +({w_2}) +({w_2}) @@w,$ - <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G|Q|A.*:[pi])") and morph(word(1), ":(?:R|D.*:p)|>au/", False, True) >>> - <<- not morph(\2, ":[NA]", False) -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. - <<- __else__ and not checkAgreement(\1, \2) -2>> =suggVerb(@, ":3p", suggPlur) # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. -__[i]/conj(conj_des_nom_qui)__ - ^ *des +({w_2}) +qui +({w_2}) @@w,$ - <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G)") - -2>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « des \1… ». Le verbe devrait être à la 3ᵉ personne du pluriel. +__conj_des_nom__ + [|,] des @:[NA].*:[pi] @:V¬:(?:3p|P|G|Q|A.*:[pi]) + <<- /conj/ morph(>1, ":(?:R|D.*:p)|>au/||>,") >>> + <<- /conj/ not morph(\4, ":[NA]") -4>> =suggVerb(\4, ":3p") # Conjugaison erronée. Accord avec “\2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. + <<- /conj/ __else__ and not checkAgreement(\3, \4) -4>> =suggVerb(\4, ":3p", suggPlur) # Conjugaison erronée. Accord avec “\2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. + + [|,] des @:[NA].*:[pi] qui @:V¬:(?:3p|P|G) + <<- /conj/ -5>> =suggVerb(\5, ":3p") # Conjugaison erronée. Accord avec “\2 \3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Des hommes {{arrive}}. TEST: Des femmes ne {{demande}} rien. TEST: des femmes qui {{conduise}} la marche du monde. #### NOMS PROPRES # 3sg -__[s]/conj(conj_nom_propre)__ - ([A-ZÉÈ][\w-]+) +({w_1}) @@0,$ - <<- not before(r"\b(?:et |ou |[dD][eu] |ni |[dD]e l’) *$") and morph(\1, ":M", False) and morphex(\2, ":[123][sp]", ":(?:G|3s|3p!|P|M|[AQ].*:[si]|N.*:m:s)") - and not morph(word(-1), ":[VRD]", False, False) and not before(r"([A-ZÉÈ][\w-]+), +([A-ZÉÈ][\w-]+), +$") - and not (morph(\2, ":3p", False) and word(-1)) - -2>> =suggVerb(@, ":3s") - # Conjugaison erronée. Accord avec « \1 ». Le verbe devrait être à la 3ᵉ personne du singulier. +__conj_nom_propre__ + ~^[A-ZÉÈ] @:[123][sp]¬:(?:G|3s|3p!|P|M|A.*:[si]|N.*:m:s) + <<- /conj/ not before(r"\b[dD]e l’ *$") and morph(\1, ":M") + and not morph(<1, ":[VRD]|>(?:ni|et|ou)/") and not before(r"([A-ZÉÈ][\w-]+), +([A-ZÉÈ][\w-]+), +$") + and not ( morph(\2, ":3p") and before(r"\w") ) + -2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier. TEST: Marc {{arrives}} demain. TEST: Paul ne {{viens}} pas demain. TEST: Marc Aurèle {{étaient}} l’empereur des Romains. (Pas de trait d’union sur Marc Aurèle.) TEST: Arthur D. parvient à… @@ -16096,32 +16097,46 @@ TEST: Des femmes de l’administration Obama y racontent qu’elles ont constaté qu’il leur arrivait régulièrement de ne pas être invitées TEST: Macron président, c’est… # 3pl -__[s]/conj(conj_nom_propre_et_nom_propre)__ - (?> =suggVerb(@, ":3p") - # Conjugaison erronée. Accord avec « \1 et \2 ». Le verbe devrait être à la 3ᵉ personne du pluriel. +__conj_nom_propre_et_nom_propre__ + ~^[A-ZÉÈ] et ~^[A-ZÉÈ] @:[123][sp]¬:(?:G|3p|P|Q.*:[pi]) + <<- /conj/ morph(\1, ":M") and morph(\3, ":M") and not morph(<1, ":R|>(?:des?|du|et|ou|ni)/") + -4>> =suggVerb(\4, ":3p") # Conjugaison erronée. Accord avec “\1 et \2”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Samantha et Eva {{viennes}} demain. TEST: Samantha et Eva leur {{décrive}} une leçon. + +# on / ont +__conf_ont!6__ + ils on + [eux|ceux|elles|celles] qui on + <<- /conf/ --1>> ont # Confusion probable : “on” est un pronom personnel. Pour la conjugaison du verbe “avoir”, écrivez “on”. + + [elles|ceux-ci|ceux-là|celles-ci|celles-là] on + <<- not morph(<1, ":[RV]|>de/") -2>> ont # Confusion probable : “on” est un pronom personnel. Pour la conjugaison du verbe “avoir”, écrivez “on”. + +TEST: celles-là {{on}} {{vraiment}} un problème avec la religion. +TEST: j’ai, tu as, ils ont, elles {{on}} +TEST: ces gens-là ils {{on}} {{raison}} plus souvent que la plupart des gens. +TEST: Ils soutiennent ceux qui {{on}} {{tant}} de raison d’être en colère. +TEST: Or parmi celles-ci on trouve typiquement d’un côté les structures + !! !! !!!! Inversion verbe sujet !! !! !! -__[i]/conj(conj_que_où_comment_verbe_sujet_sing)__ - (?:que?|où|comment|combien|dont|quand|pourquoi) +({w1}) (l(?:e(?:ur | )|a |’)|[mts](?:on|a) |ce(?:t|tte|) |[nv]otre |du ) *(?!plupart|majorité)({w1}) @@w,w,$ - <<- morphex(\1, ":(?:[12]s|3p)", ":(?:3s|G|W|3p!)") and not after("^ +(?:et|ou) (?:l(?:es? |a |’|eurs? )|[mts](?:a|on|es) |ce(?:tte|ts|) |[nv]o(?:s|tre) |d(?:u|es) )") - -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \2 \3… ». Le verbe devrait être à la 3ᵉ personne du singulier. +__conj_que_où_comment_verbe_sujet_sing__ + [que|qu’|qu|où|comment|combien|dont|quand|pourquoi] @:[123][sp]¬:(?:3s|G|W|3p!) [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD + <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not (value(>1, "|et|ou|") and morph(>2, ":D")) + -2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. TEST: les possibilités qu’{{offrent}} le chien TEST: les possibilités que {{donnent}} le chien. TEST: Où {{vas}} l’homme ? TEST: l’histoire dont {{bénéficient}} notre langue. @@ -16130,79 +16145,69 @@ TEST: une crainte aussi que renforcent son éloignement et le protocole compliqué TEST: à l’époque de Mansur que grandissent la place et le rôle de… TEST: où vivent la majorité des immigrés et des enfants d’immigrés -__[i]/conj(conj_lxquel_verbe_sujet_sing)__ - (?:l[ea]s?quel(?:le|)s?) +({w1}) (l(?:e(?:ur | )|a |’)|[mts](?:on|a) |ce(?:t|tte|) |[nv]otre |du ) *(?!plupart|majorité)({w1}) @@w,w,$ - <<- morphex(\1, ":(?:[12]s|3p)", ":(?:3s|G|W|3p!)") and not after("^ +(?:et|ou) (?:l(?:es? |a |’|eurs? )|[mts](?:a|on|es) |ce(?:tte|ts|) |[nv]o(?:s|tre) |d(?:u|es) )") - and morph(word(-1), ":R", False, False) - -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Accord avec « \2 \3… ». Le verbe devrait être à la 3ᵉ personne du singulier. +__conj_lxquel_verbe_sujet_sing__ + [lequel|laquelle|lesquels|lesquelles] @:[123][sp]¬:(?:3s|G|W|3p!) [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD + <<- /conj/ morph(<1, ":R") and not value(\4, "|plupart|majorité|groupe|") and not (value(>1, "|et|ou|") and morph(>2, ":D")) + -2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. TEST: une muraille contre laquelle {{venaient}} la masse armée et vociférante. -__[i]/conj(conj_que_où_comment_verbe_sujet_pluriel)__ - (?:que?|où|comment|combien|dont|quand|pourquoi) +({w_3}) ([ldcmts]es|quelques|certaine?s|plusieurs|[nv]os|leurs) ({w1}) @@w,w,$ - <<- morphex(\1, ":[123]s", ":(?:3p|G|W)") -1>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \2 \3… ». Le verbe devrait être à la 3ᵉ personne du pluriel. +__conj_que_où_comment_verbe_sujet_pluriel__ + [que|qu’|qu|où|comment|combien|dont|quand|pourquoi] @:[123][sp]¬:(?:3p|G|W) [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|certains|certaines|plusieurs|maints|maintes] *WORD + <<- /conj/ -2>> =suggVerb(\2, ":3p") # Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: D’où {{vienne}} les hommes ? TEST: Comment {{danse}} les femmes ? TEST: les idioties qu’{{aime}} les hommes, j’en ai marre. TEST: l’amour dont {{parle}} les femmes -__[i]/conj(conj_lxquel_verbe_sujet_pluriel)__ - (?:l[ea]s?quel(?:le|)s?) +({w_3}) ([ldcmts]es|quelques|certaine?s|plusieurs|[nv]os|leurs) ({w1}) @@w,w,$ - <<- morphex(\1, ":[123]s", ":(?:3p|G|W)") and morph(word(-1), ":R", False, False) - -1>> =suggVerb(@, ":3p") # Conjugaison erronée. Accord avec « \2 \3… ». Le verbe devrait être à la 3ᵉ personne du pluriel. +__conj_lxquel_verbe_sujet_pluriel__ + [lequel|laquelle|lesquels|lesquelles] @:[123][sp]¬:(?:3p|G|W) [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|certains|certaines|plusieurs|maints|maintes] *WORD + <<- /conj/ morph(<1, ":R") -2>> =suggVerb(\2, ":3p") # Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: les amusements pour lesquels {{vienne}} les invités. TEST: financé par le Qatar, lequel dépense des millions de dollars pour soutenir le mouvement -__[i]/conj(conj_que_où_comment_verbe_sujet)__ - (?:que?|où|comment|combien|dont|quand|pourquoi|l[ea]s?quel(?:le|)s?) +({w_1}[es])(?! je| tu| vous) @@$ - <<- morphex(\1, ":[12][sp]", ":(?:G|W|3[sp]|Y|P|Q|N|A|M|VC)") -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. - -TEST: Qu’est-ce que tu crois que {{deviens}} réellement, immanquablement et subitement cet homme après une telle dérouillée ? -TEST: ces sciences, ces religions, ces philosophies ne sont que contes destinés à nous donner l’illusion de la connaissance. -TEST: Le ministre de l’Intérieur a estimé que Calais avait vécu “un degré de violence jamais connu”. -TEST: à des règles aussi absurdes que précises - - -#__[i]/conj(conj_que_où_verbe_sujet_3sg)__ -# (?:que?|où|comment|combien|dont|quand|pourquoi|l[ea]s?quel(?:le|)s?) +({w_1})(?! [jJ]e| [tT]u| [nNvV]ous| [eE]t ) @@$ -# <<- morphex(\1, ":[12][sp]", ":(?:G|W|N|3[sp])") -1>> =suggVerb(@, ":3s") # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. - -TEST: peu importe ce que tu crois du lieu où l’{{abandonnerais}} ce salopard… - - -__[i]/conj(conj_puisse)__ - (puisses?) ({w_2}) @@0,$ - <<- isStart() >>> - <<- morph(\2, ":D.*:p", False) -1>> puissent # Conjugaison erronée. Ce verbe devrait s’accorder au substantif qui le suit. - <<- __else__ and \1.endswith("s") and \2 != "tu" and not before(r"(?i)\btu ") - -1>> puisse # Conjugaison erronée. Sujet “tu” introuvable. +__conj_puisse__ + [|,] puisse @:D.*:p + <<- /conj/ -2>> puissent # Conjugaison erronée. Ce verbe devrait s’accorder au substantif qui le suit. TEST: {{puisse}} les hommes enfin comprendre leurs erreurs. ->> puissent TEST: {{puisses}} notre ennemi trembler de peur devant notre courage. ->> puisse -@@@@ -@@@@ -@@@@ -@@@@ -@@@@GRAPH: last_graph _ -@@@@ -@@@@ -@@@@ -@@@@ +!! +!! +!!!! Verbes sans sujets !! +!! +!! + +__conj_que_où_comment_verbe_sans_sujet!3__ + [que|qu’|qu|où|comment|combien|dont|quand|pourquoi|lequel|laquelle|lesquels|lesquelles] @:[12][sp]¬:(?:G|W|3[sp]|Y|P|Q|N|A|M|VC) + <<- /conj/ morph(\2, ":[12]s") and not value(>1, "|je|tu|") -2>> =suggVerb(\2, ":3s") # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. + <<- /conj/ __else__ and morph(\2, ":[12]p") and not value(>1, "|nous|vous|") -2>> =suggVerb(\2, ":3p") # Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. + +TEST: Qu’est-ce que tu crois que {{deviens}} réellement, immanquablement et subitement cet homme après une telle dérouillée ? +TEST: peu importe ce que tu crois du lieu où l’{{abandonnerais}} ce salopard… +TEST: ces sciences, ces religions, ces philosophies ne sont que contes destinés à nous donner l’illusion de la connaissance. +TEST: Le ministre de l’Intérieur a estimé que Calais avait vécu “un degré de violence jamais connu”. +TEST: à des règles aussi absurdes que précises + +!! +!! !!!! Verbe auxiliaire !! +!! +!! __conf_auxiliaire_avoir_être__ [/-je|/-tu|/-il|/-on] @:V.......e_.*:Q <<- /conf/ analyse(\1, ">avoir/", "", 0, -3) -1>> _ # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.