Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -9248,14 +9248,97 @@ TEST: {{Quels}} chanson. ->> Quelle TEST: {{Quelles}} {{tarés}}. TEST: Quelle sale journée… TEST: Quelles drôles de prunes + +__gn_quel_quelle_accord_être__ + [quel|quelle] [sont|étaient|seront|serons|seraient|furent|fussent] + <<- /gn/ not value(<1, "|tel|telle|") + -1>> \1s # Accord de nombre erroné avec “\2”. + +__gn_quels_quelles_accord_être__ + [quels|quelles] [est|étais|était|sera|serais|serait|fut|fût|fus] + <<- /gn/ not value(<1, "|tels|telles|") + -1>> =\1[:-1] # Accord de nombre erroné avec “\2”. + +__gn_quel_accord_être_sujet__ + quel [est|était|seras|sera|serais|serait|fut|fût|fus] [la|cette|mon|ton|son|ma|ta|sa|notre|votre|leur] *WORD + <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NAQ].*:f", ":[me]") + -1>> quelle # Accord de genre erroné avec « \3 \4 ». + +__gn_quelle_accord_être_sujet__ + quelle [est|était|seras|sera|serais|serait|fut|fût|fus] [le|ce|cet|mon|ton|son|notre|votre|leur] *WORD + <<- /gn/ not value(<1, "|tel|telle|") and morph(\4, ":[NAQ].*:m", ":[fe]") + -1>> quel # Accord de genre erroné avec « \3 \4 ». + +__gn_quels_accord_être_sujet__ + quels [sont|étaient|seront|serons|seraient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs] *WORD + <<- /gn/ not value(<1, "|tels|telles|") and morph(\4, ":[NAQ].*:f", ":[me]") + -1>> quelles # Accord de genre erroné avec « \3 \4 ». + +__gn_quelles_accord_être_sujet__ + quelles [sont|étaient|seront|serons|seraient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs] *WORD + <<- /gn/ not value(<1, "|tels|telles|") and morph(\4, ":[NAQ].*:m", ":[fe]") + -1>> quels # Accord de genre erroné avec « \3 \4 ». + +TEST: {{Quel}} sont ces hommes. ->> Quels +TEST: {{Quel}} est cette force ? ->> Quelle +TEST: {{Quelle}} est mon animal favori ? ->> Quel +TEST: {{Quels}} sont ces femmes ? ->> Quelles +TEST: {{Quelles}} est cette imbécillité ? ->> Quelle +TEST: {{Quelles}} sont ces hommes ? ->> Quels +TEST: Il s’agit de définir quelle est notre propre orientation. + + + +#### Quel(le) que soit … + +## masculin requis +__gn_quel_que_être_mas_sing__ + quelle que [soit|soit|sois|soient|fut|fût] [le|ce|cet] *WORD + quelle que [soit|soit|sois|soient|fut|fût] [mon|ton|son] ~^[bcdfgjklmnpqrstvwxz] + <<- /gn/ -1>> quel # Accord de genre avec « \4 \5 ». Utilisez le masculin. + + quelle que [soit|soit|sois|soient|fut|fût] [notre|votre|leur] *WORD + quelle que [soit|soit|sois|soient|fut|fût] [mon|ton|son] ~^[aeéèhiîoôuy] + <<- /gn/ morph(\5, ":[NA].*:m", ":[fe]") -1>> quel # Accord de genre avec « \4 \5 ». Utilisez le masculin. + + +__gn_quel_que_être_mas_plur__ + quelles que [soient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs] @:[NAQ].*:m¬:[fe] + <<- /gn/ -1>> quels # Accord de genre avec « \4 \5 ». Utilisez le masculin. + +TEST: {{quelle}} que soit le chien ->> quel +TEST: {{Quelle}} que soit mon intérêt. ->> Quel +TEST: {{Quelles}} que soient ces intérêts ->> Quels +TEST: {{Quelles}} que soient les hommes qui… ->> Quels + + +## féminin requis +__gn_quelle_que_être_fem_sing__ + quel que [soit|soit|sois|fut|fût] [la|cette|ma|ta|sa] *WORD + <<- /gn/ -1>> quelle # Accord de genre avec « \4 \5 ». Utilisez le féminin. + + quel que [soit|soit|sois|soient|fut|fût] [notre|votre|leur] *WORD + quel que [soit|soit|sois|soient|fut|fût] [mon|ton|son] ~^[aeéèhiîoôuy] + <<- /gn/ morph(\5, ":[NA].*:f", ":[me]") -1>> quelle # Accord de genre avec « \4 \5 ». Utilisez le féminin. + +__gn_quelle_que_être_fem__ + quels que [soient|furent|fussent] [les|ces|mes|tes|ses|nos|vos|leurs] @:[NAQ].*:f¬:[me] + <<- /gn/ -1>> quelles # Accord de genre avec « \4 \5 ». Utilisez le féminin. + +TEST: {{Quel}} que soit la force appliquée. ->> Quelle +TEST: {{Quel}} que soit mon aversion ->> Quelle +TEST: {{Quel}} que soit cette femme ->> Quelle +TEST: {{Quel}} que soit la force appliquée. ->> Quelle +TEST: {{Quels}} que soient ces idiotes ->> Quelles + ## Cas particuliers __gn_det_plur_cas_particuliers__ - [ces|des|mes|tes|ses|nos|vos|leurs|quelques] [même|point|son|ton] + [ces|des|mes|tes|ses|nos|vos|leurs|quelques|quels] [même|point|son|ton] <<- /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 @@ -9294,11 +9377,10 @@ TEST: les quelque 2,5 millions d’habitants TEST: les quelque 12 000 stations-service ## Nombres - __gn_nombre_lettres_accord__ @:B:e:p *WORD <<- /gn/ not value(\1, "|neuf|mille|") and ( (morph(\2, ":[NAQ].*:s", "*") and not value(\2, "|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") ) or \2 in aREGULARPLURAL) -2>> =suggPlur(\2) # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. @@ -9333,98 +9415,16 @@ TEST: il a adopté 1 {{chiens}}. TEST: 22 {{heure}} TEST: 3 {{heure}} - -@@@@ -@@@@END_GRAPH _ -@@@@ - - -__[i]/gn(gn_quel_quel_accord_être)__ - (quel(?:le|)) (sont|étaient|ser(?:o|aie)nt|fu(?:r|ss)ent) @@0,$ - <<- not before(r"\btel(?:le|)s? +$") - -1>> \1s # Accord de nombre erroné avec “\2”. - -__[i]/gn(gn_quels_quelles_accord_être)__ - (quel(?:le|)s) (est|étai[ts]|serai?t|f[uû][ts]) @@0,$ - <<- not before(r"\btel(?:le|)s? +$") - -1>> =\1[:-1] # Accord de nombre erroné avec “\2”. - -__[i]/gn(gn_quel_accord_être_sujet)__ - (quel) (?:est|était|sera(?:i[ts]|)|f[uû][ts]) (la|cette|[mts](?:a|on)|[vn]otre) +({w_2}) @@0,w,$ - <<- not before(r"\btel(?:le|)s? +$") and morphex(\3, ":[NAQ].*:f", ":[me]") - -1>> quelle # Accord de genre erroné avec « \2 \3 ». - -__[i]/gn(gn_quelle_accord_être_sujet)__ - (quelle) (?:est|était|sera(?:i[ts]|)|f[uû][ts]) (le|cet?|[mts]on|[vn]otre) +({w_2}) @@0,w,$ - <<- not before(r"\btel(?:le|)s? +$") and morphex(\3, ":[NAQ].*:m", ":[fe]") - -1>> quel # Accord de genre erroné avec « \2 \3 ». - -__[i]/gn(gn_quels_accord_être_sujet)__ - (quels) (?:sont|étaient|ser(?:o|aie)nt|fu(?:r|ss)ent) (les|ces|[mts]es|[vn]os) +({w_2}) @@0,w,$ - <<- not before(r"\btel(?:le|)s? +$") and morphex(\3, ":[NAQ].*:f", ":[me]") - -1>> quelles # Accord de genre erroné avec « \2 \3 ». - -__[i]/gn(gn_quelles_accord_être_sujet)__ - (quelles) (?:sont|étaient|ser(?:o|aie)nt|fu(?:r|ss)ent) (les|ces|[mts]es|[vn]os) +({w_2}) @@0,w,$ - <<- not before(r"\btel(?:le|)s? +$") and morphex(\3, ":[NAQ].*:m", ":[fe]") - -1>> quels # Accord de genre erroné avec « \2 \3 ». - -TEST: {{Quel}} sont ces hommes. ->> Quels -TEST: {{Quel}} est cette force ? ->> Quelle -TEST: {{Quelle}} est mon animal favori ? ->> Quel -TEST: {{Quels}} sont ces femmes ? ->> Quelles -TEST: {{Quelles}} est cette imbécillité ? ->> Quelle -TEST: {{Quelles}} sont ces hommes ? ->> Quels -TEST: Il s’agit de définir quelle est notre propre orientation. - - -#### Quel(le) que soit … - -## masculin requis -__[i]/gn(gn_quel_que_être_mas_sing)__ - (quelle) que ([sf]\w+) +(le|cet?) +({w_2}) @@0,w,w,$ - <<- morph(\2, ":V0e", False) - -1>> quel # Accord de genre avec « \3 \4 ». Utilisez le masculin. -__[i]/gn(gn_quel_que_être_mas)__ - (quelles?) que ([sf]\w+) +(ces|[mts](?:on|ses)|[nv]o(?:tre|s)|leurs?) +({w_2}) @@0,w,w,$ - <<- morph(\2, ":V0e", False) and morphex(\4, ":[NAQ].*:m", ":[fe]") - -1>> =\1.replace("lle", "l") # Accord de genre avec « \3 \4 ». Utilisez le masculin. - -TEST: {{quelle}} que soit le chien ->> quel -TEST: {{Quelles}} que soient ces intérêts ->> Quels -TEST: {{Quelle}} que soit le truc. ->> Quel -TEST: {{Quelle}} que soient les astuces. ->> Quelles - - -## féminin requis -__[i]/gn(gn_quelle_que_être_fem_sing)__ - (quel) que ([sf]\w+) +(la|cette|[mts]a) +({w_2}) @@0,w,w,$ - <<- morph(\2, ":V0e", False) - -1>> quelle # Accord de genre avec « \3 \4 ». Utilisez le féminin. -__[i]/gn(gn_quelle_que_être_fem)__ - (quels?) que ([sf]\w+) +(ces|[mts](?:on|ses)|[nv]o(?:tre|s)|leurs?) +({w_2}) @@0,w,w,$ - <<- morph(\2, ":V0e", False) and morphex(\4, ":[NAQ].*:f", ":[me]") - -1>> =\1.replace("l", "lle") # Accord de genre avec « \3 \4 ». Utilisez le féminin. - -TEST: {{Quels}} que soient ces idiotes ->> Quelles -TEST: {{Quel}} que soit mon aversion ->> Quelle -TEST: {{Quel}} que soit cette femme ->> Quelle -TEST: {{Quels}} que soit la force appliquée. ->> Quel -TEST: {{Quel}} que soit la force appliquée. ->> Quelle - - ## trouver ça/ceci/cela + adj -__[i]/gn(gn_trouver_ça_adj)__ - (trouv\w+) +(ça|ce(?:ci|la)) +({w_2}) @@0,w,$ - <<- morph(\1, ">trouver/", False) and morphex(\3, ":A.*:(?:f|m:p)", ":(?:G|3[sp]|M[12P])") - -3>> =suggMasSing(@) # Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier). +__gn_trouver_ça_adj__ + >trouver [ça|cela|ceci] @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M[12P]) + <<- /gn/ -3>> =suggMasSing(\3) # Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier). TEST: ils trouvent ça de plus en plus {{idiots}} ->> idiot - !! !! !!!! Groupe nominal (2) !! @@ -9431,21 +9431,28 @@ !! !! ## Sans article -__[i]/gn(gn_2m_accord)__ - ^ *({w_2}) +({w_2}) @@*,$ - <<- ((morph(\1, ":[NAQ].*:m") and morph(\2, ":[NAQ].*:f")) or (morph(\1, ":[NAQ].*:f") and morph(\2, ":[NAQ].*:m"))) and not apposition(\1, \2) - -2>> =switchGender(@) # Accord de genre erroné avec « \1 ». - <<- __also__ and hasFemForm(\1) -1>> =switchGender(@) # Accord de genre erroné avec « \2 ». - <<- ((morph(\1, ":[NAQ].*:s") and morph(\2, ":[NAQ].*:p")) or (morph(\1, ":[NAQ].*:p") and morph(\2, ":[NAQ].*:s"))) and not apposition(\1, \2) - -2>> =switchPlural(@) # Accord de nombre erroné avec « \1 ». - <<- __also__ -1>> =switchPlural(@) # Accord de nombre erroné avec « \2 ». +__gn_2m_accord__ + @:[NA]¬* @:[NA]¬* + <<- /gn/ ((morph(\2, ":m", "*") and morph(\3, ":f", "*")) or (morph(\2, ":f", "*") and morph(\3, ":m", "*"))) and not apposition(\2, \3) + -3>> =switchGender(\3) # Accord de genre erroné avec « \2 ». + <<- __also__ and hasFemForm(\2) -2>> =switchGender(\2) # Accord de genre erroné avec « \3 ». + <<- /gn/ ((morph(\2, ":s", "*") and morph(\3, ":p", "*")) or (morph(\2, ":p", "*") and morph(\3, ":s", "*"))) and not apposition(\2, \3) + -3>> =switchPlural(\3) # Accord de nombre erroné avec « \2 ». + <<- __also__ -2>> =switchPlural(\2) # Accord de nombre erroné avec « \3 ». TEST: {{Femmes}} {{intelligente}}. TEST: {{Homme}} {{impatients}}. + + +@@@@ +@@@@END_GRAPH _ +@@@@ + + ## Prépositions __[i]/gn(gn_2m_pfx_en)__