Changes In Branch fr_killtricks Through [f5ad8a3209] Excluding Merge-Ins
This is equivalent to a diff from 8fefa29d19 to f5ad8a3209
2017-06-04
| ||
17:22 | [fr] det sing +nom +verbe check-in: d24985a5e0 user: olr tags: fr, fr_killtricks | |
13:10 | syntax documentation update check-in: 0283fcb23c user: olr tags: trunk, doc | |
12:14 | [core] merge from trunk check-in: f5ad8a3209 user: olr tags: core, fr_killtricks | |
10:13 | [core] getReadableError changed check-in: 8fefa29d19 user: olr tags: trunk, core | |
10:08 | [core] [js] return test number every 1000 lines instead of 100 check-in: dae74786cd user: olr tags: trunk, core | |
09:41 | [fr] det plur +nom +verbe check-in: 9e1a0b9466 user: olr tags: fr, fr_killtricks | |
Modified gc_lang/fr/rules.grx from [eb651d817d] to [3a774d76c3].
︙ | ︙ | |||
4879 4880 4881 4882 4883 4884 4885 | #__[i>__ [nmts]e l(?:es?|a)( ) @@$ <<- ~1>> @ #__[i]__ l(?:es?|a)( )({w_2}) @@*,$ <<- morph(\2, ":[123][sp]") ~1>> @ ### DPP: Désambiguïsation par distinction des mots qui sont à la fois (verbes conjugués ET (noms ET/OU adjectifs)) # Cette distinction est nécessaire seulement pour les mots suivant un groupe nominal. # Exemples : finis, donne(s), avance(s), bavarde(s) | | | | | | | | | | | | | | 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 | #__[i>__ [nmts]e l(?:es?|a)( ) @@$ <<- ~1>> @ #__[i]__ l(?:es?|a)( )({w_2}) @@*,$ <<- morph(\2, ":[123][sp]") ~1>> @ ### DPP: Désambiguïsation par distinction des mots qui sont à la fois (verbes conjugués ET (noms ET/OU adjectifs)) # Cette distinction est nécessaire seulement pour les mots suivant un groupe nominal. # Exemples : finis, donne(s), avance(s), bavarde(s) #__[i](p_astuce_désambiguïsation1)__ # (?<![lL]’)une? ({w_2})( ) *({w_2}) @@w,**,$ # <<- isAmbiguousNAV(\3) and morphex(\1, ":[NAQ]", ">telle ") # ~2>> ~ #__[i](p_astuce_désambiguïsation2)__ # (?:d(?:es? |’)|[mts](?:es|on|a) |ce(?:s|t(?:te|)|rtaine?s|) |[nv](?:otre|os) |leurs |quelques ) *({w_2})( ) *({w_2}) @@w,**,$ # <<- isAmbiguousNAV(\3) and morphex(\1, ":[NAQ]", ">telle ") and not re.search("^[dD](?:’une?|e l(?:a|eur)) ", \0) # ~2>> ~ #__[i](p_astuce_désambiguïsation3)__ # l(?:es? |a |’|eur ) *({w_2})( ) *({w_2}) @@w,**,$ # <<- isAmbiguousNAV(\3) and ( morphex(\1, ":[NAQ]", ":V0a") or (morphex(\1, ":[NAQ]", ":(?:3[sp]|V0a)") and isStart()) ) # ~2>> ~ TEST: comme le signe évident d’une politique volontaire TEST: c’était le signe évident d’une politique volontaire TEST: ce que c’est : le signe évident d’une politique volontaire |
︙ | ︙ | |||
6803 6804 6805 6806 6807 6808 6809 | TEST: {{en faite}}, on en voit partout, ça grouille. TEST: Que {{faîtes}}-vous ? Vous {{faîtes}} mal ! TEST: Aujourd’hui, n’en faites pas trop. # flamant rose __[i]/conf(conf_flamant_rose)__ | | | 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 | TEST: {{en faite}}, on en voit partout, ça grouille. TEST: Que {{faîtes}}-vous ? Vous {{faîtes}} mal ! TEST: Aujourd’hui, n’en faites pas trop. # flamant rose __[i]/conf(conf_flamant_rose)__ (flamands?) +roses? @@0 <<- -1>> =\1.replace("and", "ant") # Confusion. Flamand = habitant des Flandres. Flamant = oiseau. TEST: j’ai vu un {{flamand}} rose. # foi / fois __[i]/conf(conf_bonne_mauvaise_foi)__ (mauvaise|bonne) (fois) @@0,$ |
︙ | ︙ | |||
9465 9466 9467 9468 9469 9470 9471 | TEST: {{Attend}} la correction. TEST: {{Vas}} au diable ! TEST: {{Écartes}} de moi cette coupe. ## Traits d’union manquants __[i]/imp(imp_union_moi_toi)__ | | | | | | 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 | TEST: {{Attend}} la correction. TEST: {{Vas}} au diable ! TEST: {{Écartes}} de moi cette coupe. ## Traits d’union manquants __[i]/imp(imp_union_moi_toi)__ (?<!’)({w_2}) ([mt]oi)(?! même) @@0,$ <<- morphex(\1, ":E", ":[GM]") ->> \1-\2 # S’il s’agit d’un impératif, mettez un trait d’union.|http://66.46.185.79/bdl/gabarit_bdl.asp?id=4206 TEST: {{Apportez moi}} ce dictionnaire __[i]/imp(imp_union_nous_vous_lui_y)__ (?<!’)({w_2}) ([nv]ous|lui|y)(?! en| y| est) @@0,$ <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:Y|3[sp])", True) and morph(word(-1), ":Cc", False, True) and not before("~ +$") ->> \1-\2 # S’il s’agit d’un impératif, mettez un trait d’union.|http://66.46.185.79/bdl/gabarit_bdl.asp?id=4206 TEST: {{Donne nous}} du café. __[i]/imp(imp_union_les)__ (?<!’)({w_2}) les(?! plus| moins| mieux| trop| très| en| y) @@0 <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:N|A|Q|Y|B|3[sp])", True) and morph(word(-1), ":Cc", False, True) and not before("~ +$") ->> \1-les # S’il s’agit d’un impératif, mettez un trait d’union.|http://66.46.185.79/bdl/gabarit_bdl.asp?id=4206 TEST: {{chante les}} avec conviction TEST: Prenez les 5 ou 6 revues __[i]/imp(imp_union_le_la_leur)__ (?<!’)({w_2}) (l(?:e(?:ur|)|a))(?! plus| moins| mieux| peu| plupart| trop| très| une?) @@0,$ <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:N|A|Q|Y|MP|H|T)", True) and morph(word(-1), ":Cc", False, True) and not before("~ +$") ->> \1-\2 # S’il s’agit d’un impératif, mettez un trait d’union.|http://66.46.185.79/bdl/gabarit_bdl.asp?id=4206 TEST: {{Prends le}} avec toi. TEST: {{Dites leur}} que nous sommes là. TEST: un sujet si extrêmement politique et polémique lui a donné un accès |
︙ | ︙ | |||
10227 10228 10229 10230 10231 10232 10233 | -2>> =suggVerb(@, ":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_det_plur_nom)__ | | | > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | < < > > > > > > > > > > > > > < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 | -2>> =suggVerb(@, ":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_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|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 ") ) >>> <<- 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|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. __[i]/conj(conj_det_plur_nom_pronom)__ ([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)") 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: Ses « chiens » {{coure}} sur ma pelouse. TEST: mes filles {{passe}} ce matin TEST: vos filles {{passes}} ce matin 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|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 ") ) >>> <<- 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(\1, \2, ":p", ":3p", isStart()) -3>> =suggVerb(@, ":3p", suggPlur) # Accord avec « les \1… » 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. __[i]/conj(conj_det_plur_nom_pronom_confusion)__ (les|certaine?s|plusieurs) +({w_2}) +(?:qui +|)> +({w_2}) @@0,w,$ <<- morph(\2, ":[NAQ].*:[pi]", False) and morphex(\3, ":V", ":(?:[13]p|P|Y|G)") 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: 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. TEST: les données, en quantité plus que suffisante, {{indique}} que… TEST: Les hommes comme celui-là {{mange}} comme deux. TEST: les récompenses distribuées à parts égales {{était}}… TEST: Les États-Unis d’Amérique se {{compose}} de 50 états. TEST: Les enfants en {{manges}}. TEST: Les ombres la {{donnes}} TEST: Les grands hommes politiques TEST: les charmantes petites mines de toutes les jeunes filles TEST: Les pauvres petites dames sont folles TEST: Les entrepreneurs ont {{cherchaient}} la reconnaissance sociale TEST: l’écart entre les riches et les pauvres n’était pas si grand. TEST: les grands {{danse}} TEST: les filles {{passes}} ce matin TEST: les marchands {{marche}} TEST: les marchands {{plie}} TEST: les marchands {{paye}} TEST: les marchands {{marchande}} TEST: les marchandes {{paie}} TEST: les marchandes {{marchande}} TEST: les chattes {{finis}} TEST: les chattes {{manges}} TEST: les chattes {{danse}} TEST: certains hommes {{marchandes}} sans cesse TEST: certaines femmes {{danse}} beaucoup __[i]/conj(conj_des_nom)__ ^ *des +({w_2}) +(?:> +|)({w_2}) @@w,$ <<- morph(\1, ":[NAQ].*:[pi]", False) and morphex(\2, ":V", ":(?:[13]p|P|G|Q)") and morph(word(1), ":(?:R|D.*:p)|>au ", False, True) -2>> =suggVerb(@, ":3p") # 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. TEST: Des hommes {{arrive}}. TEST: des femmes qui {{conduise}} la marche du monde. ## Quel(le) que soit / quel(le)s que soient # singulier __[i]/conj(conj_quel_quelle_que_3sg1)__ quel(?:le|)s? que ([sf]\w+) +(?:l[ea]|ce(?:t|tte|)|[mts](?:a|on)|[nv]otre|leur) @@w |
︙ | ︙ |