Grammalecte  Check-in [fe3d698598]

Overview
Comment:[fr] remaniements des pronoms associés, +ajustements et faux positifs [core] remove legacy code
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr | core
Files: files | file ages | folders
SHA3-256: fe3d6985983ba32ade5810566d4a8a776b28b39f91577f192b12f584baeac26e
User & Date: olr on 2020-05-09 15:21:35
Other Links: manifest | tags
Context
2020-05-10
08:01
[fr] suppression des espaces insécables fins dans les messages d’erreur, +ajustements, +nr: confusion infi/ppas check-in: b771791846 user: olr tags: fr, trunk
2020-05-09
17:21
merge trunk check-in: 607a6d50af user: olr tags: gcerw
15:21
[fr] remaniements des pronoms associés, +ajustements et faux positifs [core] remove legacy code check-in: fe3d698598 user: olr tags: core, fr, trunk
12:21
[fr] faux positifs check-in: 5dbf99c441 user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/modules-js/gce_analyseur.js from [39d2630e9f] to [1edcbef032].

    12     12           else if (oToken["sValue"].search(/-l(?:es?|a)-(?:[mt]oi|nous|leur)$|(?:[nv]ous|lui|leur)-en$/) != -1) {
    13     13               nEnd = oToken["sValue"].slice(0,nEnd).lastIndexOf("-");
    14     14           }
    15     15       }
    16     16       return g_morph(oToken, sPattern, sNegPattern, 0, nEnd, false);
    17     17   }
    18     18   
    19         -function rewriteSubject (s1, s2) {
    20         -    // s1 is supposed to be prn/patr/npr (M[12P])
    21         -    if (s2 == "lui") {
    22         -        return "ils";
    23         -    }
    24         -    if (s2 == "moi") {
    25         -        return "nous";
    26         -    }
    27         -    if (s2 == "toi") {
    28         -        return "vous";
    29         -    }
    30         -    if (s2 == "nous") {
    31         -        return "nous";
    32         -    }
    33         -    if (s2 == "vous") {
    34         -        return "vous";
    35         -    }
    36         -    if (s2 == "eux") {
    37         -        return "ils";
    38         -    }
    39         -    if (s2 == "elle" || s2 == "elles") {
    40         -        if (cregex.mbNprMasNotFem(_oSpellChecker.getMorph(s1))) {
    41         -            return "ils";
    42         -        }
    43         -        // si épicène, indéterminable, mais OSEF, le féminin l’emporte
    44         -        return "elles";
    45         -    }
    46         -    return s1 + " et " + s2;
    47         -}
    48         -
    49     19   function apposition (sWord1, sWord2) {
    50     20       // returns true if nom + nom (no agreement required)
    51     21       return sWord2.length < 2 || (cregex.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) && cregex.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1)));
    52     22   }
    53     23   
    54     24   function g_checkAgreement (oToken1, oToken2, bNotOnlyNames=true) {
    55     25       // check agreement between <oToken1> and <oToken2>

Modified gc_lang/fr/modules/gce_analyseur.py from [e1e5c27c19] to [577ebd9866].

     9      9       if dToken["sValue"].count("-") > 1:
    10     10           if "-t-" in dToken["sValue"]:
    11     11               nEnd = nEnd - 2
    12     12           elif re.search("-l(?:es?|a)-(?:[mt]oi|nous|leur)$|(?:[nv]ous|lui|leur)-en$", dToken["sValue"]):
    13     13               nEnd = dToken["sValue"][0:nEnd].rfind("-")
    14     14       return g_morph(dToken, sPattern, sNegPattern, 0, nEnd, False)
    15     15   
    16         -
    17         -def rewriteSubject (s1, s2):
    18         -    "rewrite complex subject: <s1> a prn/patr/npr (M[12P]) followed by “et” and <s2>"
    19         -    if s2 == "lui":
    20         -        return "ils"
    21         -    if s2 == "moi":
    22         -        return "nous"
    23         -    if s2 == "toi":
    24         -        return "vous"
    25         -    if s2 == "nous":
    26         -        return "nous"
    27         -    if s2 == "vous":
    28         -        return "vous"
    29         -    if s2 == "eux":
    30         -        return "ils"
    31         -    if s2 in ("elle", "elles"):
    32         -        if cr.mbNprMasNotFem(_oSpellChecker.getMorph(s1)):
    33         -            return "ils"
    34         -        # si épicène, indéterminable, mais OSEF, le féminin l’emporte
    35         -        return "elles"
    36         -    return s1 + " et " + s2
    37         -
    38     16   
    39     17   def apposition (sWord1, sWord2):
    40     18       "returns True if nom + nom (no agreement required)"
    41     19       return len(sWord2) < 2 or (cr.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) and cr.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1)))
    42     20   
    43     21   
    44     22   def g_checkAgreement (dToken1, dToken2, bNotOnlyNames=True):

Modified gc_lang/fr/rules.grx from [3b0f370a66] to [0a8c74f5cd].

  1922   1922           <<- ~>> seras
  1923   1923   
  1924   1924   
  1925   1925   __da_été__
  1926   1926       >avoir ?@:[WX]¿ été
  1927   1927           <<- =>> select(\-1, ":Q")
  1928   1928   
         1929  +
         1930  +__da_adverbes__
         1931  +    environ  [$:B|*NUM]
         1932  +        <<- not value(<1, "|l’|un|cet|quel|") =>> exclude(\1, ":N")
         1933  +
         1934  +    grave
         1935  +        <<- morph(<1, ":D") =>> (\1, ":W")
         1936  +
  1929   1937   
  1930   1938   __da_prépositions__
  1931   1939       dans
  1932   1940           <<- not morph(<1, ":D.*:p|>[a-z]+ième/") =>> select(\1, ":R")
  1933   1941   
  1934   1942       passé  [<end>|,|$:R]
  1935   1943           <<- =>> exclude(\1, ":G")
................................................................................
 13256  13264       à juste [raison|titre]
 13257  13265       à l’ [accoutumée|amiable|arrache|arrachée|avance|avenant|aveuglette|emporte-pièce|envi|évidence|étouffée|improviste|inverse|unanimité|unisson]
 13258  13266       à l’ air libre
 13259  13267       à l’ avenir ?[incertain|prometteur]¿
 13260  13268       à l’ échelon [local|cantonal|départemental|régional|national|européen|américain|africaine|asiatique|continental|international|planétaire|galactique|universel]
 13261  13269       à l’ échelle [locale|cantonale|départementale|régionale|nationale|européenne|américaine|africaine|asiatique|continentale|internationale|planétaire|galactique|universelle]
 13262  13270       à l’ en croire
        13271  +    à l’ environ
 13263  13272       à l’ état pur
 13264  13273       à l’ exclusion de toute autre chose
 13265  13274       à l’ extrémité [est|ouest|nord|sud]
 13266  13275       à l’ ordre du jour
 13267  13276       à l’ un d’ entre [nous|vous|eux|iels]
 13268  13277       à l’ une d’ entre [nous|vous|elles|iels]
 13269  13278       à l’ échelle [nationale|mondiale|régionale|départementale|cantonale|locale|galactique|universelle]
................................................................................
 15387  15396       [le|ce|du]  [baron|docteur|député|duc|frère|ministre|prince|professeur|président|roi|sénateur|mir]  @:M[12]
 15388  15397       [la|cette]  [baronne|docteur|docteure|députée|duchesse|ministre|sœur|princesse|présidente|professeure|reine|sénatrice]  @:M[12]
 15389  15398           <<- ~3>> *
 15390  15399   
 15391  15400       [Mr|Mlle|Mme|Mgr|miss]  ~^[A-ZÉÈÊ]
 15392  15401           <<- ~2>> *
 15393  15402   
 15394         -    $:Cs  ~^[A-ZÉÈÊ]  et  [moi|toi|lui|elle|nous|vous|eux|elles]
 15395         -        <<- morph(\2, ":M") and not before("\\b(?:plus|moins|aussi) .* que +$")
 15396         -        ~2:4>> =rewriteSubject(\2,\4) + "||"
 15397         -
 15398         -    <start>  ~^[A-ZÉÈÊ]  et  [moi|toi|lui|elle|nous|vous|eux|elles]
 15399         -        <<- morph(\2, ":M")
 15400         -        ~2:0>> =rewriteSubject(\2,\4) + "||"
 15401         -
 15402  15403   
 15403  15404   __purge_pronom_aussi__
 15404  15405       [j’|je] *WORD  moi aussi
 15405  15406           <<- morph(\2, ":1s") ~3:0>> *
 15406  15407   
 15407  15408       tu      *WORD  toi aussi
 15408  15409           <<- morph(\2, ":2s") ~3:0>> *
................................................................................
 16072  16073   @@@@
 16073  16074   @@@@
 16074  16075   @@@@GRAPH: purge_passe3|pp3                                                                        _
 16075  16076   @@@@
 16076  16077   @@@@
 16077  16078   @@@@
 16078  16079   @@@@
        16080  +
        16081  +__fusions_noms_propres_et_pronoms__
        16082  +    [<start>|,|(|$:Cs]  [moi|toi|lui|elle|iel|nous|vous|eux|elles|iels|$:M]  et  [moi|nous]
        16083  +    [<start>|,|(|$:Cs]  [moi|nous]  et  [moi|toi|lui|elle|iel|nous|vous|eux|elles|iels|$:M]
        16084  +        <<- not value(\1, "|que|qu’|") ~2:0>> ␣
        16085  +        <<- __also__ /2>> _eq_nous_
        16086  +
        16087  +    [<start>|,|(|$:Cs]  [toi|lui|elle|iel|vous|eux|elles|iels|$:M]  et  [toi|vous]
        16088  +    [<start>|,|(|$:Cs]  [toi|vous]  et  [toi|lui|elle|iel|vous|eux|elles|iels|$:M]
        16089  +        <<- not value(\1, "|que|qu’|") ~2:0>> ␣
        16090  +        <<- __also__ /2>> _eq_vous_
        16091  +
        16092  +    [<start>|,|(|$:Cs]  [lui|elle|iel|eux|elles|iels|$:M]  et  [lui|elle|iel|eux|elles|iels]
        16093  +    [<start>|,|(|$:Cs]  [lui|elle|iel|eux|elles|iels]  et  [lui|elle|iel|eux|elles|iels|$:M]
        16094  +        <<- not value(\1, "|que|qu’|") ~2:0>> ␣
        16095  +        <<- __also__ /2>> _eq_iels_
        16096  +
 16079  16097   
 16080  16098   __da_le_la_les_leur2__
 16081  16099       [<start>|,|(]  c’                                                 ?[ne|n’]¿  >être   [le|la|l’|les]  @:[NA]¬:G
 16082  16100       [<start>|,|(]  ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿  ?[ne|n’]¿  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  *WORD  [le|la|l’|les]  @:[NA]¬:[YG]
 16083  16101       [<start>|,|(]  ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         *WORD  [le|la|l’|les]  @:[NA]¬:[YG]
 16084  16102       [<start>|,|(]  ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿  ?[ne|n’]¿  [le|la|l’|les]                  [lui|leur|en|y]             *WORD  [le|la|l’|les]  @:[NA]¬:[YG]
 16085  16103       [<start>|,|(]  ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿  ?[ne|n’]¿  [lui|leur|y]                    en                          *WORD  [le|la|l’|les]  @:[NA]¬:[YG]
................................................................................
 20055  20073   TEST: celles {{perdue}} aura une pénalité
 20056  20074   TEST: celles venues chanter doivent se rendre là-bas.
 20057  20075   
 20058  20076   
 20059  20077   ## Nombres
 20060  20078   __gn_nombre_lettres_1m__
 20061  20079       $:B:e:p  *WORD
 20062         -        <<- /gn/ not value(\1, "|neuf|mille|") and morph(\2, ":[NA].*:s", "*") and not value(\2, "|maximum|minimum|multiplié|divisé|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|")
        20080  +        <<- /gn/ not value(\1, "|neuf|mille|") and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":D.*:s")
        20081  +            and not value(\2, "|maximum|minimum|multiplié|divisé|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|")
 20063  20082               and not re.search("^[IVXLDM]+$", \1)
 20064  20083           -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
 20065  20084   
 20066  20085       neuf  *WORD
 20067         -        <<- /gn/ morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not value(\2, "|maximum|minimum|multiplié|divisé|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|")
        20086  +        <<- /gn/ morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not morph(<1, ":D.*:s")
        20087  +            and not value(\2, "|maximum|minimum|multiplié|divisé|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|")
 20068  20088           -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
 20069  20089   
 20070  20090       mille  *WORD
 20071         -        <<- /gn/ not value(\2, "|maximum|minimum|multiplié|divisé|") and morph(\2, ":[NA].*:s", "*") and not value(<1, "|le|un|ce|du|")
        20091  +        <<- /gn/ not value(\2, "|maximum|minimum|multiplié|divisé|") and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":D.*:s")
 20072  20092           -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
 20073  20093   
 20074  20094   TEST: ce sont trois {{idiot}} pas foutus de trouver leur chemin avec un GPS.        ->> idiots
 20075  20095   TEST: Il a abandonné neuf {{enfant}}.                                               ->> enfants
 20076  20096   TEST: On peut trouver mille {{travailleur}} d’un claquement de doigts.              ->> travailleurs
 20077  20097   TEST: Il y a quatre cents {{mot}} dans la phrase.                                   ->> mots
 20078  20098   TEST: cent {{mot}}                                                                  ->> mots
................................................................................
 20081  20101   TEST: deux {{tête}}                                                                 ->> têtes
 20082  20102   TEST: un logement neuf bâti par des professionnels.
 20083  20103   TEST: un mille marin.
 20084  20104   TEST: L’article VII mentionné dans la revue
 20085  20105   TEST: Le produit de cinq multiplié par trois.
 20086  20106   TEST: deux divisé par douze
 20087  20107   TEST: il en faut trois minimum, cinq maximum
        20108  +TEST: il vit dans un vingt-quatre mètre carré.
 20088  20109   
 20089  20110   
 20090  20111   __gn_nombre_chiffres_1m__
 20091  20112       [0|1|01]  @:[NAQ].*:p¬*
 20092  20113           <<- /gn/ space_after(\1, 1, 1) and not value(\2, "|Rois|Corinthiens|Thessaloniciens|")
 20093  20114           -2>> =suggSing(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.
 20094  20115   
 20095  20116       *NUM  *WORD
 20096         -        <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ":N")
 20097         -            and morph(\2, ":[NA].*:s", "*") and not value(\2, "|maximum|minimum|multiplié|divisé|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|")
        20117  +        <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":(?:N|D.*:s)")
        20118  +            and not value(\2, "|maximum|minimum|multiplié|divisé|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|")
 20098  20119           -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
 20099  20120   
 20100  20121       *NUM  *WORD  *WORD
 20101  20122           <<- /gn/ not value(\2, "|maximum|minimum|fois|multiplié|divisé|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|")
 20102         -            and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">(?:seule|maximum|minimum)/") >>>
        20123  +            and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ">(?:et|ou)/|:(?:N|D.*:[si])") and not morph(\3, ">(?:seul|maximum|minimum)/|:(?:[BG]|V0)") >>>
 20103  20124           <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
 20104  20125               and not apposition(\2, \3)
 20105  20126           -3>> =switchGender(\3, True)                                                                && Accord de genre erroné entre « \2 » et « \3 ».
 20106  20127           <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           && Accord de genre erroné avec « \3 ».
 20107  20128           <<- /gn/ morph(\2, ":[NA].*:[pi]", "*") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
 20108  20129           -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.
 20109  20130   
................................................................................
 20121  20142   TEST: elles furent le 18 janvier décorées
 20122  20143   TEST: en quantité 2 fois moindre
 20123  20144   TEST: 1 La Mort
 20124  20145   TEST: L’année 2019 a commencé à le montrer
 20125  20146   TEST: La « première génération » d’ordinateurs des années 1950 a déjà largement cédé la place à une deuxième (transistorisée)
 20126  20147   TEST: Au sein du club des pays les plus prospères, la richesse par habitant est néanmoins 52 fois supérieure à celle des pays à faibles revenus, d’après la Banque mondiale.
 20127  20148   TEST: 1 à 2 comprimés par jour voire 2 à 3 maximum
        20149  +TEST: elle vit dans un 24 m carré.
        20150  +TEST: elle vit dans un 24 m² triste de la banlieue de Paris.
        20151  +TEST: dans son 240 m2 lumineux, c’est la belle vie.
 20128  20152   
 20129  20153   
 20130  20154   ##  trouver ça/ceci/cela + adj
 20131  20155   __gn_trouver_ça_adj__
 20132  20156       >trouver  [ça|cela|ceci]  @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M)
 20133  20157           <<- /gn/ -3>> =suggMasSing(\3)                                              && Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier).
 20134  20158   
................................................................................
 22163  22187   
 22164  22188   !!!
 22165  22189   !!!
 22166  22190   !!! Processeur: simplification des substantifs                                                    !!
 22167  22191   !!!
 22168  22192   !!!
 22169  22193   
 22170         -
 22171         -### Simplification des groupes nominaux
 22172         -
 22173  22194   __purge_prépositions_pronoms__
 22174  22195       à part [cela|ceci|ça]
 22175  22196       à [cela|ceci|ça] près
 22176  22197           <<- ~>> *
 22177  22198   
 22178  22199       [à|après|avant|avec|par|pour|contre|sans|envers|chez|de|d’|en|malgré|selon] ?tout¿ [cela|ceci|ça]   [<end>|,|@:[VXG]¬>qui/]
 22179  22200           <<- ~1:-2>> *
................................................................................
 22410  22431   
 22411  22432       [un|une] de [nous|vous]
 22412  22433       [un|une] d’ [eux|elles]
 22413  22434       [un|une] d’ entre [nous|vous|eux|elles]
 22414  22435       [un|une] des [nôtres|vôtres]
 22415  22436           <<- ~2:0>> *
 22416  22437   
        22438  +
        22439  +### Simplification des syntagmes nominaux
 22417  22440   
 22418  22441   __purge_syntagmes_nominaux__
 22419  22442       [à|au|aux|avec|en|lors|ayant]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]  <end>
 22420  22443       [à|au|aux|avec|en|lors|ayant]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NA]   ?,¿  [ne|n’|me|m’|te|t’|se|s’|nous|vous|y|c’|ça|ç’|je|j’|tu|il|elle|on|ils|elles|iel|iels|le|la|l’|les|mon|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs|ce|cet|cette|ces|quel|quels|quelle|quelles]
 22421  22444       [à|au|aux|avec|en|lors|ayant]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NA]   @:[VR]¬:[NAP]
 22422  22445       [à|au|aux|avec|en|lors|ayant]  [de|d’]  [un|une|la|l’|leur|leurs|ce|cet|cette|ces|mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|quelques|certains|certaines]  @:[NAM]  ,  @¬:[NA]
 22423  22446           <<- ~1:4>> *
................................................................................
 26811  26834           --1>> =suggVerb(\-1, ":3s")                                     && Conjugaison erronée. Accord avec “\1 \2 \3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier.
 26812  26835   
 26813  26836   TEST: ce qu’ils font me {{donnent}} la nausée.                              ->> donne
 26814  26837   TEST: tu ne sais pas, mais ce que tu fais {{deviens}} plus facile           ->> devient
 26815  26838   TEST: ceux contre ce que nous faisons deviennent hargneux.
 26816  26839   TEST: ce qu’elles accomplissent est formidable.
 26817  26840   
        26841  +
        26842  +## 1pl
        26843  +__conj_eq_nous__
        26844  +    [<start>|,|(|$:Cs]  /_eq_nous_  @:V¬:(?:G|Y|P|1p|M|A.*:p)
        26845  +        <<- /conj/ -3>> =suggVerb(\3, ":1p")                                                        && Conjugaison probablement erronée. Accord avec “\2”. Le verbe devrait être à la 1ʳᵉ personne du pluriel.
        26846  +
        26847  +TEST: vous et nous {{iront}} dans la forêt
        26848  +
        26849  +
        26850  +## 2pl
        26851  +__conj_eq_vous__
        26852  +    [<start>|,|(|$:Cs]  /_eq_vous_  @:V¬:(?:G|P|2p|M|A.*:p)
        26853  +        <<- /conj/ -3>> =suggVerb(\3, ":2p")                                                        && Conjugaison probablement erronée. Accord avec “\2”. Le verbe devrait être à la 2ᵉ personne du pluriel.
        26854  +
        26855  +TEST: vous et eux {{partirait}} ensemble.
        26856  +
 26818  26857   
 26819  26858   ## 3pl
        26859  +__conj_eq_iels__
        26860  +    /_eq_iels_  @:V¬:(?:3p|P|G|M|A.*:p)
        26861  +        <<- /conj/ not morph(<1, ":R") and not (morph(\2, ":Q") and morph(<1, ":V0.*:3p"))
        26862  +        -2>> =suggVerb(\2, ":3p")                                       && Conjugaison probablement erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        26863  +
        26864  +TEST: lui et elle {{était}} dans l’affliction
        26865  +
        26866  +
 26820  26867   __conj_elles__
 26821  26868       elles  @:V¬:(?:3p|P|G|M|A.*:f:p)
 26822  26869           <<- /conj/ not morph(<1, ":R") and not (morph(\2, ":Q") and morph(<1, ":V0.*:3p"))
 26823  26870           -2>> =suggVerb(\2, ":3p")                                       && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 26824  26871           <<- /conj/ __also__ and morph(\2, ":3s") -1>> elle              && Accord avec “\2”.
 26825  26872   
 26826  26873       elles  qui  @:V¬:(?:3p|P|G|M)
................................................................................
 26832  26879   TEST: {{elles}} qui s’{{amuse}} comme des folles
 26833  26880   TEST: L’expérience sensible qu’il nous restera bientôt d’elles est à peu près
 26834  26881   TEST: eux attaqués par des mécanoïdes, elles attaquées par des insectoïdes.
 26835  26882   TEST: tout ce qui vient d’elles sera écarté.
 26836  26883   
 26837  26884   
 26838  26885   __conj_iels__
 26839         -    iels  @:V¬:(?:3p|P|G|M|A.*:f:p)
        26886  +    iels  @:V¬:(?:3p|P|G|M|A.*:p)
 26840  26887           <<- /conj/ not morph(<1, ":R") and not (morph(\2, ":Q") and morph(<1, ":V0.*:3p"))
 26841  26888           -2>> =suggVerb(\2, ":3p")                                       && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 26842  26889           <<- /conj/ __also__ and morph(\2, ":3s") -1>> iel               && Accord avec “\2”.
 26843  26890   
 26844  26891       iels  qui  @:V¬:(?:3p|P|G|M)
 26845  26892           <<- /conj/ -3>> =suggVerb(\3, ":3p")                            && Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 26846  26893           <<- /conj/ morph(\3, ":3s") -1>> iel                            && Accord avec “\3”.