Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -7400,11 +7400,11 @@ la mort dans l’ âme le cas échéant le moins du monde le [moins|plus] [tôt|tard|souvent] le [moins|plus] de [temps|monde] possible - le moment venu + le [moment|jour] venu les [uns|unes] des autres les [uns|unes] [après|avec|chez|contre|de|derrière|devant|envers|malgré|pour|sans|sous|sur] les autres l’ [un|une] [après|avec|chez|contre|de|derrière|devant|envers|malgré|pour|sans|sous|sur] l’ autre l’ [un|une] près de l’autre loin @@ -9053,10 +9053,18 @@ TEST: leur puissance {{perdues}} TEST: leur arbre {{élaguée}} TEST: je me souviens de leur verve {{décalé}} TEST: ils arrivent et leur arrogance {{insupportables}} nous fatigue tous. + +__gn_le_la_leur_3m__ + [le|la|leur] *WORD *WORD *WORD + <<- /gn/ morph(\1, ":D") and morph(\2, ":[NA].*:[si]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G)") and morph(\4, ":[NA].*:p") + -4>> =suggSing(\4) # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier. + +TEST: leur grande passion {{délirantes}} pour le cosplay. + __gn_ledit_1m__ ledit *WORD <<- /gn/ morph(\2, ":[NA].*:f", ":[GWme]") -1>> ladite # Accord de genre erroné : « \2 » est féminin. <<- /gn/ __also__ and hasMasForm(\2) -2>> =suggMasSing(\2, True) # Accord de genre erroné : « \1 » est un déterminant masculin. @@ -9333,10 +9341,19 @@ TEST: chaque élément {{terrestres}} TEST: ils viennent de chaque coin {{ignorée}} du pays. TEST: Quelque chose tombé dans le puits a souillé l’eau. + +__gn_det_sing_3m__ + [ledit|ladite|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|au|quel|quelle|dudit] *WORD *WORD *WORD + <<- /gn/ morph(\2, ":[NA].*:[si]", False) and morph(\3, ":[NA].*:[si]", ":(?:[123][sp]|G)") and morph(\4, ":[NA].*:p", "*") + -4>> =suggSing(\4) # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier. + +TEST: un gros connard {{pathétiques}} +TEST: le jour venu prises par surprise elles durent s’enfuir. + ## Pluriels __gn_les_1m__ , les *WORD @@ -9489,10 +9506,28 @@ <<- /gn/ -2>> \1s # Accord de nombre erroné : mettez au pluriel. TEST: des {{son}} que nous entendons jour et nuit. TEST: j’entends ces {{même}} âneries tous les jours + +__gn_les_3m__ + les *WORD *WORD *WORD + <<- /gn/ morph(\1, ":D") and morph(\2, ":[NA].*:[pi]", ":(?:[123][sp]|G)") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)") and morph(\4, ":[NA].*:s", "*") + -4>> =suggPlur(\4) # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel. + +TEST: les heureux imbéciles {{payé}} au lance-pierre. + + +__gn_det_plur_3m__ + [ces|mes|tes|ses|nos|vos|leurs|quels|quelles|aux] *WORD *WORD *WORD + [plusieurs|quelques|certains|certaines|moult] *WORD *WORD *WORD + [lesdits|lesdites|desdits|desdites|auxdits|auxdites] *WORD *WORD *WORD + <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:[pi]", ":(?:[123][sp]|G)") and morph(\4, ":[NA].*:s", "*") and not before(r"(?i)\bune? de +$") + -4>> =suggPlur(\4) # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel. + +TEST: ces petites sottes {{déjantée}} + ## certains / certaines __gn_certains_1m__ certains *WORD <<- /gn/ morph(\2, ":[NA].*:f", ":[emGWP]") -1>> certaines # Accord de genre erroné : « \2 » est féminin. @@ -9796,10 +9831,22 @@ <<- /gn/ __also__ -2>> =switchPlural(\2) # Accord de nombre erroné avec « \3 ». TEST: {{Femmes}} {{intelligente}}. TEST: {{Homme}} {{impatients}}. +__gn_start_3m__ + @:[NA]¬* @:[NA]¬* @:[NA]¬* + <<- /gn/ morph(\2, ":p") and morph(\3, ":[pi]") and morph(\4, ":s") -4>> =switchPlural(\4) # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel. + <<- /gn/ morph(\2, ":i") and morph(\3, ":p") and morph(\4, ":s") -4>> =switchPlural(\4) # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel. + <<- /gn/ morph(\2, ":s") and morph(\3, ":[si]") and morph(\4, ":p") -4>> =switchPlural(\4) # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. + <<- /gn/ morph(\2, ":i") and morph(\3, ":s") and morph(\4, ":p") -4>> =switchPlural(\4) # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier. + +TEST: Grande manifestation {{réprimées}} dans le sang. +TEST: Super manifestation {{ignorées}} par les médias. +TEST: Grandes démonstrations {{oubliée}} par l’Histoire. +TEST: Prix incroyables {{valable}} uniquement jusqu’à demain. + ## Prépositions __gn_pfx_en_2m__ en @:[NA]¬* @:[NA]¬* <<- /gn/ ( (morph(\2, ":m", "*") and morph(\3, ":f", "*")) or (morph(\2, ":f", "*") and morph(\3, ":m", "*")) ) and not apposition(\2, \3) @@ -9874,64 +9921,10 @@ @@@@ @@@@END_GRAPH _ @@@@ - - -!! -!! -!!!! Groupe nominal (3) !! -!! -!! - -## nombre - -__[i]/gn(gn_3m)__ - ^ *({w_2}) +({w_2}) +({w_3}) @@*,w,$ - <<- (morph(\1, ":[NAQ].*:p") and morph(\2, ":[NAQ].*:[pi]") and morph(\3, ":[NAQ].*:s")) - or (morph(\1, ":[NAQ].*:s") and morph(\2, ":[NAQ].*:[si]") and morph(\3, ":[NAQ].*:p")) - -3>> =switchPlural(@) # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel. - -TEST: Grande manifestation {{réprimées}} dans le sang. - - -__[i]/gn(gn_3m_les)__ - (les) +({w_2}) +({w_2}) +({w_3}) @@0,w,w,$ - <<- morph(\1, ":D", False) - and morph(\2, ":[NAQ].*:[pi]") and morph(\3, ":[NAQ].*:[pi]") and morph(\4, ":[NAQ].*:s") - -4>> =suggPlur(@) # Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au pluriel. - -TEST: les heureux imbéciles {{payé}} au lance-pierre. - - -__[i]/gn(gn_3m_le_la)__ - ^ *(l(?:e(?:ur|)|a)) +({w_2}) +({w_2}) +({w_3}) @@*,w,w,$ - <<- morph(\1, ":D", False) - and morph(\2, ":[NAQ].*:[si]", False) and morphex(\3, ":[NAQ].*:[si]", ":G") and morph(\4, ":[NAQ].*:p") - -4>> =suggSing(@) # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier. - -TEST: leur grande passion {{délirantes}} pour le cosplay. - - -__[i]/gn(gn_3m_det_sing)__ - ^ *(l(?:edit|adite)|une?|ce(?:t|tte|)|[mts](?:on|a)|[nv]otre|au|quel(?:le|)) +({w_2}) +({w_2}) +({w_3}) @@*,w,w,$ - <<- morph(\2, ":[NAQ].*:[si]", False) and morphex(\3, ":[NAQ].*:[si]", ":G") and morph(\4, ":[NAQ].*:p") - -4>> =suggSing(@) # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au singulier. - -TEST: un gros connard {{pathétiques}} -TEST: le jour venu prises par surprise elles durent s’enfuir. - - -__[i]/gn(gn_3m_det_plur)__ - ([cmts]es|[nv]os|leurs|quel(?:que|le|)s|plusieurs|certaine?s|lesdite?s|aux|moult) +({w_2}) +({w_2}) +({w_3}) @@0,w,w,$ - <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":[NAQ].*:[pi]", ":G") and morph(\4, ":[NAQ].*:s") - and not before(r"(?i)\bune? de ") - -4>> =suggPlur(@) # Accord de nombre erroné avec « \1 \2 \3 » : « \4 » devrait être au pluriel. - -TEST: ces petites sottes {{déjantée}} - !! !! !!!! Groupe nominal: Accords avec de / des / du !!