Grammalecte  Check-in [7830f4d1c0]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 7830f4d1c05e162415cfb4bf8c55a2d01417ef9e684ba89ae8b48a67b294af40
User & Date: olr on 2021-02-06 18:17:46
Other Links: manifest | tags
Context
2021-02-09
10:09
[fr] ajustements [core][fr] suggestions mechanism update check-in: d86a7e72a6 user: olr tags: core, fr, trunk
2021-02-06
18:17
[fr] ajustements check-in: 7830f4d1c0 user: olr tags: fr, trunk
01:52
[fr] ajustements check-in: 111afef718 user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [c40affd524] to [1293ea0eda].

  2195   2195       [le|du|au] groupe    ?nominal¿  «          $:D  @:[NA]  ?@:[NA]¿  ?@:[NA]¿  »
  2196   2196       [le|du|au] groupe    ?nominal¿  [‘|'|’|`]  $:D  @:[NA]  ?@:[NA]¿  ?@:[NA]¿  [‘|'|’|`]
  2197   2197       [le|du|au] groupe    ?nominal¿  ‹          $:D  @:[NA]  ?@:[NA]¿  ?@:[NA]¿  ›
  2198   2198       [le|du|au] syntagme  ?nominal¿  [“|”|"]    [*WORD|*WORDELD]  *WORD  ?*WORD¿  ?*WORD¿  [“|”|"]
  2199   2199       [le|du|au] syntagme  ?nominal¿  «          [*WORD|*WORDELD]  *WORD  ?*WORD¿  ?*WORD¿  »
  2200   2200       [le|du|au] syntagme  ?nominal¿  [‘|'|’|`]  [*WORD|*WORDELD]  *WORD  ?*WORD¿  ?*WORD¿  [‘|'|’|`]
  2201   2201       [le|du|au] syntagme  ?nominal¿  ‹          [*WORD|*WORDELD]  *WORD  ?*WORD¿  ?*WORD¿  ›
  2202         -    la proposition                  [“|”|"]    [*WORD|*WORDELD]  [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  [“|”|"]
  2203         -    la proposition                  «          [*WORD|*WORDELD]  [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  »
  2204         -    la proposition                  [‘|'|’|`]  [*WORD|*WORDELD]  [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  [‘|'|’|`]
  2205         -    la proposition                  ‹          [*WORD|*WORDELD]  [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ›
         2202  +    la proposition                  [“|”|"]    [*WORD|*WORDELD]  [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?*WORD¿  [“|”|"]
         2203  +    la proposition                  «          [*WORD|*WORDELD]  [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?*WORD¿  »
         2204  +    la proposition                  [‘|'|’|`]  [*WORD|*WORDELD]  [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?*WORD¿  [‘|'|’|`]
         2205  +    la proposition                  ‹          [*WORD|*WORDELD]  [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?*WORD¿  ›
  2206   2206       [<start>|la] locution  ?[nominale|adjectivale|adverbiale|verbale|pronominale]¿  [“|”|"]    [*WORD|*WORDELD] ?,¿ [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿ ?*WORD¿  [“|”|"]
  2207   2207       [<start>|la] locution  ?[nominale|adjectivale|adverbiale|verbale|pronominale]¿  «          [*WORD|*WORDELD] ?,¿ [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿ ?*WORD¿  »
  2208   2208       [<start>|la] locution  ?[nominale|adjectivale|adverbiale|verbale|pronominale]¿  [‘|'|’|`]  [*WORD|*WORDELD] ?,¿ [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿ ?*WORD¿  [‘|'|’|`]
  2209   2209       [<start>|la] locution  ?[nominale|adjectivale|adverbiale|verbale|pronominale]¿  ‹          [*WORD|*WORDELD] ?,¿ [*WORD|*WORDELD]  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿  ?[*WORD|*WORDELD]¿ ?*WORD¿  ›
  2210   2210           <<- ~3:0>> *
  2211   2211   
  2212   2212       [<start>|l’] ancienne locution  ?[nominale|adjectivale|adverbiale|verbale|pronominale]¿
................................................................................
  2286   2286       [<start>|,]  [“|”|"]    *WORD       [“|”|"]    est féminin
  2287   2287       [<start>|,]  «          *WORD       »          est féminin
  2288   2288       [<start>|,]  [‘|'|’|`]  *WORD       [‘|'|’|`]  est féminin
  2289   2289       [<start>|,]  ‹          *WORD       ›          est féminin
  2290   2290       [<start>|,]  [“|”|"]    *WORD       [“|”|"]    est masculin
  2291   2291       [<start>|,]  «          *WORD       »          est masculin
  2292   2292       [<start>|,]  [‘|'|’|`]  *WORD       [‘|'|’|`]  est masculin
  2293         -    [<start>|,]  ‹          $:N         ›          est masculin
         2293  +    [<start>|,]  ‹          *WORD       ›          est masculin
  2294   2294       [<start>|,]  [“|”|"]    $:Y         [“|”|"]    est [un|le]     verbe
  2295   2295       [<start>|,]  «          $:Y         »          est [un|le]     verbe
  2296   2296       [<start>|,]  [‘|'|’|`]  $:Y         [‘|'|’|`]  est [un|le]     verbe
  2297   2297       [<start>|,]  ‹          $:Y         ›          est [un|le]     verbe
  2298   2298       [<start>|,]  [“|”|"]    $:Q         [“|”|"]    est [un|le]     participe passé
  2299   2299       [<start>|,]  «          $:Q         »          est [un|le]     participe passé
  2300   2300       [<start>|,]  [‘|'|’|`]  $:Q         [‘|'|’|`]  est [un|le]     participe passé
................................................................................
  3064   3064       [ne|n’] point
  3065   3065           <<- =>> select(\-1, "", ":N")
  3066   3066   
  3067   3067   __da_nos__
  3068   3068       nos $¬:B
  3069   3069           <<- =>> select(\1, ":D")
  3070   3070   
         3071  +__da_parler__
         3072  +    [>aller|>entendre|>falloir|>faire|>pouvoir|>savoir|>vouloir] parler
         3073  +        <<- =>> select(\-1, ":Y")
         3074  +
  3071   3075   __da_parmi__
  3072   3076       parmi *WORD
  3073   3077           <<- =>> select(\1, ":R")
  3074   3078   
  3075   3079   __da_pas__
  3076   3080       pas
  3077   3081           <<- morph(<1, ":[VWX]") =>> select(\1, "", ":N")
................................................................................
  9536   9540       !! à en juger par ¡¡
  9537   9541       [à|a] [en|>an] [juger|jugé+ses|jugeait|jugeais] [par|pare+s|>part]
  9538   9542           <<- /loc/ ->> à en juger par                                                                && Confusion : “à en juger par” c’est-à-dire “selon le jugement qu’on se fait avec”.
  9539   9543   
  9540   9544   TEST: {{a en jugé part}} cet article, c’est bientôt la fin.                 ->> à en juger par
  9541   9545   TEST: ils sont à en juger par leurs résultats les prochains champions.
  9542   9546   
         9547  +
         9548  +__conf_à_l_emporte_pièce__
         9549  +    !! à l’ emporte-pièce ¡¡
         9550  +    [à|a] l’ [emporte+s] [>pièce|>pisse]
         9551  +    [à|a] l’ [en|>an|>hanse] >porte [>pièce|>pisse]
         9552  +    [à|a] >lent >porte [>pièce|>pisse]
         9553  +    [à|a] l’ [emporte-pièce|emportes-pièce|emporte-pièces|emportes-pièces]
         9554  +        <<- /conf/ ->> à l’emporte-pièce                                                && Locution “à l’emporte-pièce”.|https://fr.wiktionary.org/wiki/%C3%A0_l%E2%80%99emporte-pi%C3%A8ce
         9555  +        <<- !3>>
         9556  +
         9557  +TEST: agir {{à l’emporte pièce}}                                    ->> à l’emporte-pièce
         9558  +TEST: réagir à l’emporte-pièce
         9559  +
  9543   9560   
  9544   9561   __conf_à_risques_et_périls__
  9545   9562       !! à [mes|tes|ses|nos|vos|leurs] risques et périls ¡¡
  9546   9563       [a|à] [mes|tes|ses|nos|vos|leur|leurs] [risque+s] [et|est|é|eh|hé|ai|aie+s|ait] [péril+s|>pérille]
  9547   9564           <<- /loc/ ->> à \2 risques et périls                                            && Confusion. Locution “à ses risques et périls”.|https://fr.wiktionary.org/wiki/%C3%A0_ses_risques_et_p%C3%A9rils
  9548   9565   
  9549   9566   TEST: {{à leurs risques et périlles}}                               ->> à leurs risques et périls
................................................................................
 11239  11256       [fausse+s] des îles [aléoutiennes|caïmans|Kouriles|Tonga]
 11240  11257       [fausse+s] du [Chili|Japon|Pérou|Pérou-Chili]
 11241  11258       [fausse+s] d’ [aisance|orchestre|Amérique|Atacama|Izu-Bonin|Izu-Ogasawara]
 11242  11259       [fausse+s] de l’ orchestre
 11243  11260       [fausse+s] à [>compost|>déchet|>lisier|>fumier|>plongeon|>plongée|>purin|>merde|>ordure]
 11244  11261       [fausse+s] [au|aux|des] [>caïman|>crocodile|>charognard|>lion|>loup|>louve|ours|>serpent|>cobra|>diable]
 11245  11262       [fausse+s] [>abyssal|>canin|>béant|>commun|>océanique|sous-marine+s|>septique|>immense|>profond|>nasal|>iliaque|>temporal]
 11246         -        <<- /conf/ -1>> =\1.replace("au", "o").replace("AU", "O")           && Confusion probable : le mot “fausse” est l’adjectif féminin de “faux”. Pour évoquer une profondeur, écrivez “fosse”.
        11263  +        <<- /conf/ -1>> =\1.replace("au", "o").replace("AU", "O")  && Confusion probable : le mot “fausse” est l’adjectif féminin de “faux”. Pour évoquer une dépression ou une cavité dans le sol, écrivez “fosse”.
 11247  11264   
 11248  11265       au bord de la fausse
 11249         -        <<- /conf/ --1>> fosse                                              && Confusion probable : le mot “fausse” est l’adjectif féminin de “faux”. Pour évoquer une profondeur, écrivez “fosse”.
        11266  +        <<- /conf/ --1>> fosse                                     && Confusion probable : le mot “fausse” est l’adjectif féminin de “faux”. Pour évoquer une dépression ou une cavité dans le sol, écrivez “fosse”.
 11250  11267   
 11251         -    >fosse [>alerte|>déclaration]
        11268  +    >fosse [>alerte|>déclaration|>réponse]
 11252  11269           <<- /conf/ -1>> =\1.replace("o", "au").replace("O", "AU")
 11253  11270           && Confusion probable : une fosse est une dépression ou une cavité dans le sol. Pour évoquer une falsification ou une erreur, écrivez “fausse”.|https://fr.wiktionary.org/wiki/fausse
 11254  11271   
 11255  11272   TEST: la {{fausse}} Calypso.                                            ->> fosse
 11256  11273   TEST: La {{fausse}} des Mariannes.                                      ->> fosse
 11257  11274   TEST: La {{fausse}} d’aisance.                                          ->> fosse
 11258  11275   TEST: La {{fausse}} à lisier.                                           ->> fosse
................................................................................
 17009  17026       en rangs d’ oignons ?serrés¿
 17010  17027       en rase campagne
 17011  17028       en rase-mottes
 17012  17029       en règle générale
 17013  17030       en roue libre
 17014  17031       en second lieu
 17015  17032       en sens inverse
        17033  +    en simultané
 17016  17034       en situation [irrégulière|régulière]
 17017  17035       en sous-main
 17018  17036       en sous-nombre ?[évident|flagrant]¿
 17019  17037       en sous nombre ?[évident|flagrant]¿
 17020  17038       en tant [que|qu’] >tel
 17021  17039       en tête à tête
 17022  17040       en tête-à-tête
................................................................................
 18112  18130       >billet [de|d’] [*NUM|@:B:.:p] [euros|dollars|centimes|cents|livres|shillings]
 18113  18131       >bisphénol A
 18114  18132       [>boîte|>boite] [aux|à] lettres
 18115  18133       [>boîte|>boite] à [bijoux|gants|outils|sardines]
 18116  18134       [>boîte|>boite] [de|d’] nuit
 18117  18135       >bombe à [eau|fission|fusion|fragmentation|hydrogène|neutrons|retardement|sous-munitions]
 18118  18136       >bombe à rayonnement renforcé
        18137  +    >bonimenteur [de|d’] foire
 18119  18138       >bonnet [de|d’] nuit
 18120  18139       [bonne+s|>bonniche] à tout faire
 18121  18140       >bordereau d’ expédition
 18122  18141       >boucle d’ >oreille
 18123  18142       >bouée [de|d’] sauvetage
 18124  18143       >bouffée d’ air [frais|pur]
 18125  18144       >bout [de|d’] gras
................................................................................
 21943  21962   TEST: faire faux bond
 21944  21963   
 21945  21964   
 21946  21965   # fausse / fosse
 21947  21966   __conf_fausse_fosse__
 21948  21967       >faire une fosse couche
 21949  21968       combien de >fosse [couche+s]
 21950         -        <<- /conf/ -3>> =\3.replace("o", "au").replace("O", "AU")           && Confusion. Une “fausse couche”.
        21969  +        <<- /conf/ -3>> =\3.replace("o", "au").replace("O", "AU")   && Confusion. Une “fausse couche”.
        21970  +
        21971  +    [>être|>demeurer|>paraître|>paraitre|>sembler|>rester|>apparaître|>apparaitre] >fosse
        21972  +        <<- /conf/ not morph(>1, ">septique/")
        21973  +        --1>> =\-1.replace("o", "au").replace("O", "AU")            && Confusion probable : une fosse est une profondeur, pour l’adjectif féminin de “faux” est “fausse”.|https://fr.wiktionary.org/wiki/fausse
 21951  21974   
 21952  21975   TEST: elle a fait une {{fosse}} couche.                                     ->> fausse
        21976  +TEST: cette réponse est {{fosse}}                                           ->> fausse
        21977  +TEST: la réponse à votre question, c’est fosse septique
 21953  21978   
 21954  21979   
 21955  21980   # filtre / philtre
 21956  21981   __conf_filtre_philtre2__
 21957  21982       >boire $:D >filtre
 21958  21983           <<- /conf/ -3>> philtre|philtres
 21959  21984           && Confusion probable. Un filtre est un instrument de filtrage, un philtre est une boisson (magique) procurant des effets sur le buveur.|https://fr.wiktionary.org/wiki/philtre
................................................................................
 23653  23678   
 23654  23679   
 23655  23680   __gn_le_2m__
 23656  23681       le  *WORD  *WORD
 23657  23682           <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|") and not morph(\3, ">seul/") >>>
 23658  23683           <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
 23659  23684           -3>> =suggMasSing(\3, True)                                                                 && Accord de genre erroné : le syntagme « \1 \2 » est masculin, « \3 » est féminin.
        23685  +        <<- /gn/ __also__ and morph(\2, ":A.*:e:[si]") -1>> la                                      && Accord de genre erroné : « \3 » est féminin.
 23660  23686           <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
 23661  23687           -3>> =suggMasSing(\3)                                                                       && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.
 23662  23688   
 23663  23689       [et|ou]  le  *WORD  *WORD
 23664  23690           <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]") and not morph(\4, ">seul/") >>>
 23665  23691           <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
 23666  23692           -4>> =suggMasSing(\4, True)                                                                 && Accord de genre erroné : le syntagme « \2 \3 » est masculin, « \4 » est féminin.
        23693  +        <<- /gn/ __also__ and morph(\3, ":A.*:e:[si]") -2>> la                                      && Accord de genre erroné : « \4 » est féminin.
 23667  23694           <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\4, \4)
 23668  23695           -4>> =suggMasSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
 23669  23696   
 23670  23697   TEST: le test très {{cons}} qu’on a passé hier.                                         ->> con
 23671  23698   TEST: c’était le chien {{perdue}} des voisins.                                          ->> perdu
 23672  23699   TEST: viens vite ou le pari {{imperdables}} sera moins facile…                          ->> imperdable
 23673  23700   TEST: connaître et le grand {{perdante}}                                                ->> perdant
 23674  23701   TEST: Le bruit {{perçus}} par les voisins.                                              ->> perçu
        23702  +TEST: {{le}} gigantesque {{explosion}}                                                  ->> la|||
        23703  +TEST: je ne sais jamais quoi faire et {{le}} gigantesque {{explosion}} n’a rien arrangé ->> la|||
 23675  23704   TEST: si le premier film est un triomphe, le deuxième est un demi-succès, et le troisième une déception.
 23676  23705   TEST: Cela aboutira sur une contractualisation coûteuse pour organiser cette divergence d’intérêts, et le gestionnaire aura le dernier mot.
 23677  23706   
 23678  23707   
 23679  23708   __gn_le_2m_virg__
 23680  23709       <start>  le  *WORD  ,  $:A¬:G
 23681  23710           <<- /gn/ morph(\3, ":[NA].*:[me]:[si]", ":3[sp]") and not agreement(\3, \5)
................................................................................
 23758  23787   TEST: Je la levai, la brandis et frappai de taille.
 23759  23788   
 23760  23789   
 23761  23790   __gn_la_2m__
 23762  23791       la  *WORD  *WORD
 23763  23792           <<- /gn/ morph(\1, ":D") and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">seul/") >>>
 23764  23793           <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
 23765         -        -3>> =suggFemSing(\3, True)                                                         && Accord de genre erroné : le syntagme « \1 \2 » est féminin, « \3 » est masculin.
        23794  +        -3>> =suggFemSing(\3, True)                                                                 && Accord de genre erroné : le syntagme « \1 \2 » est féminin, « \3 » est masculin.
        23795  +        <<- /gn/ __also__ and morph(\2, ":A.*:e:[si]") and not value(<1, "|à|") -1>> le             && Accord de genre erroné : « \3 » est masculin.
 23766  23796           <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", ":[GWsi]") and not apposition(\2, \3)
 23767         -        -3>> =suggFemSing(\3)                                                               && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.
        23797  +        -3>> =suggFemSing(\3)                                                                       && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.
 23768  23798   
 23769         -    [et|ou|de|d’]  la  *WORD  *WORD
        23799  +    [et|ou]  la  *WORD  *WORD
        23800  +        <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
        23801  +        <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
        23802  +        -4>> =suggFemSing(\4, True)                                                                 && Accord de genre erroné : le syntagme « \2 \3 » est féminin, « \4 » est masculin.
        23803  +        <<- /gn/ __also__ and morph(\3, ":A.*:e:[si]") -2>> le                                      && Accord de genre erroné : « \4 » est masculin.
        23804  +        <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
        23805  +        -4>> =suggFemSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        23806  +
        23807  +    [de|d’]  la  *WORD  *WORD
 23770  23808           <<- /gn/ morph(\2, ":D") and not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
 23771  23809           <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
 23772         -        -4>> =suggFemSing(\4, True)                                                         && Accord de genre erroné : le syntagme « \2 \3 » est féminin, « \4 » est masculin.
        23810  +        -4>> =suggFemSing(\4, True)                                                                 && Accord de genre erroné : le syntagme « \2 \3 » est féminin, « \4 » est masculin.
        23811  +        <<- /gn/ __also__ and morph(\3, ":A.*:e:[si]") and not hasFemForm(\4) -1:2>> du             && Accord de genre erroné : « \4 » est masculin.
 23773  23812           <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", ":[GWsi]") and not apposition(\3, \4)
 23774         -        -4>> =suggFemSing(\4)                                                               && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
        23813  +        -4>> =suggFemSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
 23775  23814   
 23776  23815   TEST: La plus grande {{cinglé}}.                                                ->> cinglée
        23816  +TEST: {{la}} gigantesque {{monument}}                                           ->> le|||
 23777  23817   TEST: il imaginait de la pluie {{noir}} tombant sur une terre dévastée.         ->> noire
 23778  23818   TEST: la place {{balayées}} par le vent                                         ->> balayée
 23779  23819   TEST: je voyais de la pluie {{noires}}                                          ->> noire
        23820  +TEST: je le sus et {{la}} légitimiste {{intellect}}                             ->> le|||
        23821  +TEST: il en avait entendu parler et la belle {{explications}} ne tenait plus    ->> explication
        23822  +TEST: {{de la}} légitimiste {{intellectualisme}}                                ->> du|||
        23823  +TEST: de la légitimiste {{intellectuel}}                                        ->> intellectuelle
 23780  23824   TEST: Il faut donc examiner ensemble le panneau et la paroi latérale.
 23781  23825   TEST: Il faut donc examiner ensemble le panneau et la paroi latéraux.
 23782  23826   TEST: Il faut donc examiner ensemble les panneaux et la paroi latéraux.
 23783  23827   TEST: Il faut donc examiner ensemble les panneaux et la paroi latérale.
 23784  23828   
 23785  23829   
 23786  23830   __gn_la_2m_virg__
................................................................................
 24047  24091   
 24048  24092   ## un / une
 24049  24093   __gn_un_2m__
 24050  24094       un  *WORD  *WORD
 24051  24095           <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>>
 24052  24096           <<- /gn/ morph(\2, ":[NA].*:[me]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:f", "*") and not apposition(\2, \3)
 24053  24097           -3>> =suggMasSing(\3, True)                                                                 && Accord de genre erroné : le syntagme « \1 \2 » est masculin, « \3 » est féminin.
        24098  +        <<- /gn/ __also__ and morph(\2, ":A.*:e:[si]") -1>> une                                     && Accord de genre erroné : « \3 » est féminin.
 24054  24099           <<- /gn/ morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3)
 24055  24100           -3>> =suggMasSing(\3)                                                                       && Accord de nombre erroné avec « \2 » : « \3 » devrait être au singulier.
 24056  24101   
 24057  24102       [et|ou|d’]  un  *WORD  *WORD
 24058  24103           <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
 24059  24104           <<- /gn/ morph(\3, ":[NA].*:[me]", ":(?:B|G|V0|f)") and morph(\4, ":[NA].*:f", "*") and not apposition(\3, \4)
 24060  24105           -4>> =suggMasSing(\4, True)                                                                 && Accord de genre erroné : le syntagme « \2 \3 » est masculin, « \4 » est féminin.
        24106  +        <<- /gn/ __also__ and morph(\3, ":A.*:e:[si]") -2>> une                                     && Accord de genre erroné : « \4 » est féminin.
 24061  24107           <<- /gn/ morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4)
 24062  24108           -4>> =suggMasSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
 24063  24109   
 24064  24110   TEST: un exercice pas très {{utiles}}.                                                      ->> utile
 24065  24111   TEST: un homme {{grands}}                                                                   ->> grand
 24066  24112   TEST: un homme {{futiles}}                                                                  ->> futile
        24113  +TEST: {{un}} gigantesque {{explosion}}                                                      ->> une|||
 24067  24114   TEST: que sais-tu d’un homme {{grande}} comme un arbre                                      ->> grand
 24068  24115   TEST: je me souviens d’un homme {{arrogants}}                                               ->> arrogant
        24116  +TEST: trois d’{{un}} quelconque {{élégance}}                                                ->> une|||
 24069  24117   TEST: C’est pas les quelques vues sur Linux qui vont rattraper un scénario {{bancale}}.     ->> bancal
 24070  24118   
 24071  24119   
 24072  24120   __gn_un_2m_virg__
 24073  24121       <start>  un  *WORD  ,  $:A¬:G
 24074  24122           <<- /gn/ morph(\3, ":[NA].*:[me]:[si]") and not agreement(\3, \5)
 24075  24123           --1>> =suggMasSing(\-1)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.
................................................................................
 24078  24126   
 24079  24127   
 24080  24128   __gn_une_2m__
 24081  24129       une  *WORD  *WORD
 24082  24130           <<- /gn/ not value(<1, "|et|ou|d’|") and not morph(\3, ">seul/") >>>
 24083  24131           <<- /gn/ morph(\2, ":[NA].*:[fe]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:m", "*") and not apposition(\2, \3)
 24084  24132           -3>> =suggFemSing(\3, True)                                                                 && Accord de genre erroné : le syntagme « \1 \2 » est féminin, « \3 » est masculin.
        24133  +        <<- /gn/ __also__ and morph(\2, ":A.*:e:[si]") -1>> un                                      && Accord de genre erroné : « \3 » est masculin.
 24085  24134           <<- /gn/ \2 != "fois" and morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:p", "*") and not apposition(\2, \3)
 24086  24135           -3>> =suggFemSing(\3)                                                                       && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au singulier.
 24087  24136   
 24088  24137       [et|ou|d’]  une  *WORD  *WORD
 24089  24138           <<- /gn/ not morph(<1, ":[NA]|>(?:et|ou)/") and not morph(\4, ">seul/") >>>
 24090  24139           <<- /gn/ morph(\3, ":[NA].*:[fe]", ":(?:B|G|V0|m)") and morph(\4, ":[NA].*:m", "*") and not apposition(\3, \4)
 24091  24140           -4>> =suggFemSing(\4, True)                                                                 && Accord de genre erroné : le syntagme « \2 \3 » est féminin, « \4 » est masculin.
        24141  +        <<- /gn/ __also__ and morph(\3, ":A.*:e:[si]") -2>> un                                      && Accord de genre erroné : « \4 » est masculin.
 24092  24142           <<- /gn/ \3 != "fois" and morph(\3, ":[NA].*:[si]", ":G") and morph(\4, ":[NA].*:p", "*") and not apposition(\3, \4)
 24093  24143           -4>> =suggFemSing(\4)                                                                       && Accord de nombre erroné avec « \2 \3 » : « \4 » devrait être au singulier.
 24094  24144   
 24095  24145   TEST: Une femme {{laconiques}}.                                                 ->> laconique
 24096  24146   TEST: Une grande {{homme}}.                                                     ->>
 24097  24147   TEST: une géologue {{intelligents}}                                             ->> intelligente
 24098  24148   TEST: Et une femme {{déterminées}}                                              ->> déterminée
 24099  24149   TEST: on parle là d’une femme {{inconnu}}                                       ->> inconnue
 24100  24150   TEST: on parle d’une Église {{brûlées}}                                         ->> brûlée
        24151  +TEST: {{une}} gigantesque {{porte-avions}}                                      ->> un|||
        24152  +TEST: d’{{une}} titanesque {{opportunisme}}                                     ->> un|||
 24101  24153   TEST: L’or allume le feu d’une cupidité d’une couleur et d’une sorte différentes.
 24102  24154   
 24103  24155   
 24104  24156   __gn_une_2m_virg__
 24105  24157       <start>  une  *WORD  ,  $:A¬:G
 24106  24158           <<- /gn/ morph(\3, ":[NA].*:[fe]:[si]") and not agreement(\3, \5)
 24107  24159           --1>> =suggFemSing(\-1)                                                                     && Cet adjectif n’est pas accordé avec “\2 \3”.
................................................................................
 24841  24893           <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True)                           && Accord de genre erroné avec « \3 ».
 24842  24894           <<- /gn/ morph(\2, ":[NA].*:[pi]", ":(?:B|G|V0)") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
 24843  24895           -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.
 24844  24896   
 24845  24897   TEST: deux sombres {{idiot}}                                                                ->> idiots
 24846  24898   TEST: sept valeurs {{aléatoire}}                                                            ->> aléatoires
 24847  24899   TEST: huit {{grandes}} {{claviers}}                                                         ->> grands|||
        24900  +TEST: soixante-et-une femmes {{récompensée}}                                                ->> récompensées
 24848  24901   TEST: X a perdu mon estime et ma considération.
 24849  24902   TEST: vivre une situation hors du commun à deux a aussi pesé dans la balance.
 24850  24903   TEST: deux jours minimum
 24851  24904   TEST: ils disent finalement tous les deux la même chose
 24852  24905   
 24853  24906   
 24854  24907   __gn_nombre_2m_virg__
................................................................................
 25347  25400   
 25348  25401   
 25349  25402   ## Nombres
 25350  25403   __gn_nombre_lettres_1m__
 25351  25404       [cent|mille]  ~[iI][èÈ][mM][eE]$  @:[NA].*:[si]
 25352  25405           <<- !2>>
 25353  25406   
 25354         -    @:B:.:p  *WORD
        25407  +    $:B:e:p  *WORD
 25355  25408           <<- /gn/ not value(\1, "|neuf|mille|") and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":D.*:s")
 25356  25409               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|")
 25357  25410               and not re.search("^[IVXLDM]+$", \1)
 25358  25411           -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
 25359  25412   
        25413  +    [vingt-et-un|trente-et-un|quarante-et-un|cinquante-et-un|soixante-et-un|septante-et-un|octante-et-un|huitante-et-un|nonante-et-un]  *WORD
        25414  +        <<- /gn/ morph(\2, ":[NA].*:[fs]", "*") and not morph(<1, ":D.*:s")
        25415  +            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|")
        25416  +            and not re.search("^[IVXLDM]+$", \1)
        25417  +        -2>> =suggMasPlur(\2)                                                              && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
        25418  +        <<- /gn/ __also__ and morph(\2, ":[NA].*:f", ":[me]") -1>> \1e                     && Accord de genre erroné : « \2 » est féminin.
        25419  +
        25420  +    [vingt-et-une|trente-et-une|quarante-et-une|cinquante-et-une|soixante-et-une|septante-et-une|octante-et-une|huitante-et-une|nonante-et-une]  *WORD
        25421  +        <<- /gn/ morph(\2, ":[NA].*:[ms]", "*") and not morph(<1, ":D.*:s")
        25422  +            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|")
        25423  +            and not re.search("^[IVXLDM]+$", \1)
        25424  +        -2>> =suggFemPlur(\2)                                                               && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
        25425  +        <<- /gn/ __also__ and morph(\2, ":[NA].*:m", ":[fe]") -1>> =\1[:-1]                 && Accord de genre erroné : « \2 » est masculin.
        25426  +
 25360  25427       neuf  *WORD
 25361  25428           <<- /gn/ morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not morph(<1, ":D.*:s")
 25362  25429               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|")
 25363  25430           -2>> =suggPlur(\2)                                                                  && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
 25364  25431   
 25365  25432       mille  *WORD
 25366  25433           <<- /gn/ not value(\2, "|maximum|minimum|multiplié|divisé|") and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":D.*:s")
................................................................................
 25370  25437   TEST: Il a abandonné neuf {{enfant}}.                                               ->> enfants
 25371  25438   TEST: On peut trouver mille {{travailleur}} d’un claquement de doigts.              ->> travailleurs
 25372  25439   TEST: Il y a quatre cents {{mot}} dans la phrase.                                   ->> mots
 25373  25440   TEST: cent {{mot}}                                                                  ->> mots
 25374  25441   TEST: cinquante {{mot}}                                                             ->> mots
 25375  25442   TEST: mille cinquante {{mot}}                                                       ->> mots
 25376  25443   TEST: deux {{tête}}                                                                 ->> têtes
        25444  +TEST: soixante-et-une {{femme}}                                                     ->> femmes
        25445  +TEST: {{soixante-et-une}} {{hommes}}                                                ->> soixante-et-un|||
        25446  +TEST: soixante-et-un {{homme}}                                                      ->> hommes
        25447  +TEST: {{soixante-et-un}} {{femmes}}                                                 ->> soixante-et-une|||
 25377  25448   TEST: un logement neuf bâti par des professionnels.
 25378  25449   TEST: un mille marin.
 25379  25450   TEST: L’article VII mentionné dans la revue
 25380  25451   TEST: Le produit de cinq multiplié par trois.
 25381  25452   TEST: deux divisé par douze
 25382  25453   TEST: il en faut trois minimum, cinq maximum
 25383  25454   TEST: il vit dans un vingt-quatre mètre carré.
................................................................................
 25744  25815   
 25745  25816   !!
 25746  25817   !!
 25747  25818   !!!! Groupe nominal: Accords avec de / des / du                                                   !!
 25748  25819   !!
 25749  25820   !!
 25750  25821   
 25751         -__gn_det_nom_de_det_nom_adj__
 25752         -    [la|ma|ta|sa|une|cette]  *WORD  [de|d’]  [la|ma|ta|sa|cette|une]  *WORD  *WORD
 25753         -        <<- /gn/ morph(\6, ":[NA].*:(?:m|f:p)", ":(?:G|P|[fe]:[is]|V0|3[sp])") and morph(\5, ":[NA].*:[fe]") and not apposition(\5, \6)
 25754         -        -6>> =suggFemSing(\6, True)                                                         && Accord erroné : « \6 » devrait être au féminin singulier.
 25755         -
 25756         -    [le|un|ce|cet]  *WORD  [de|d’]  [ce|cet|un]  *WORD  *WORD
 25757         -    [le|un|ce|cet]  *WORD  du  *WORD  *WORD
 25758         -        <<- /gn/ morph(\-1, ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and morph(\-2, ":[NA].*:[me]") and not apposition(\-2, \-1)
 25759         -        --1>> =suggMasSing(\-1, True)                                                       && Accord erroné : « \-1 » devrait être au masculin singulier.
 25760         -
 25761         -    [le|un|ce|cet]  *WORD  de  [mon|ton|son]  *WORD  *WORD
 25762         -        <<- /gn/ morph(\5, ":", ":[NA].*:f|>[aâeéèêiîou].*:e") and morph(\6, ":[NA].*:(?:f|m:p)", ":(?:G|P|m:[is]|V0|3[sp])") and not apposition(\5, \6)
 25763         -        -6>> =suggMasSing(\6, True)                                                         && Accord erroné : « \6 » devrait être au masculin singulier.
 25764         -
 25765         -    [mon|ton|son]  *WORD  [de|d’]  [ce|cet|un]  *WORD  *WORD
 25766         -    [mon|ton|son]  *WORD  du  *WORD  *WORD
 25767         -        <<- /gn/ morph(\2, ":[NA].*:m", ":G|>[aâeéèêiîou].*:[ef]")
 25768         -            and morph(\-1, ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and not apposition(\-2, \-1)
 25769         -        --1>> =suggMasSing(\-1, True)                                                       && Accord erroné : « \-1 » devrait être au masculin singulier.
 25770         -
 25771         -    [mon|ton|son]  *WORD  de [mon|ton|son]  *WORD  *WORD
 25772         -        <<- /gn/ morph(\2, ":[NA].*:m", ":G|>[aâeéèêiîou].*:[ef]")
 25773         -            and not morph(\-2, ":[NA].*:f|>[aâeéèêiîou].*:e") and morph(\-1, ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and not apposition(\-2, \-1)
 25774         -        --1>> =suggMasSing(\-1, True)                                                       && Accord erroné : « \-1 » devrait être au masculin singulier.
 25775         -
 25776         -    [les|ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  de [ces|mes|tes|ses|nos|vos|leurs]  *WORD  *WORD
 25777         -    [les|ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  des  *WORD  *WORD
 25778         -        <<- /gn/ morph(\-1, ":[NA].*:s", ":(?:G|P|[me]:[ip]|V0|3[sp])") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1)
 25779         -            and not (value(>1, "|et|ou|") and morph(>2, ":A.*:[si]"))
 25780         -        --1>> =suggPlur(\-1)                                                                && Accord erroné : « \-1 » devrait être au pluriel.
 25781         -
 25782         -TEST: La fille de cette belle {{inconnu}}                       ->> inconnue
        25822  +__gn_det_nom_de_det_nom_adj_mas_sing__
        25823  +    [le|un|ce|cet]  *WORD  [de|d’]  [ce|cet|un]         *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25824  +    [le|un|ce|cet]  *WORD  du                           *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25825  +        <<- /gn/ morph(\-2, ":[NA].*:[me]") and not apposition(\-2, \-1)
        25826  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25827  +
        25828  +    [le|un|ce|cet]  *WORD  de  [mon|ton|son]            *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25829  +        <<- /gn/ morph(\-2, "[NA].*:[me]", ":[NA].*:f|>[aâeéèêiîoôuh].*:e") and not apposition(\-2, \-1)
        25830  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25831  +
        25832  +    [le|un|ce|cet]  *WORD  de  [l’|notre|votre|leur]    *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25833  +        <<- /gn/ morph(\-2, "[NA].*:m:[si]", ":[NA].*:[fe]") and not apposition(\-2, \-1)
        25834  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25835  +
        25836  +    [mon|ton|son]  *WORD  [de|d’]  [ce|cet|un]          *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25837  +    [mon|ton|son]  *WORD  du                            *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25838  +        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":G|>[aâeéèêiîoôuh].*:[ef]") and not apposition(\-2, \-1)
        25839  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25840  +
        25841  +    [mon|ton|son]  *WORD  de [mon|ton|son]              *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25842  +        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":G|>[aâeéèêiîoôuh].*:[ef]") and morph(\-2, ":[NA].*:[me]:[si]", ":[NA].*:f|>[aâeéèêiîoôuh].*:e") and not apposition(\-2, \-1)
        25843  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25844  +
        25845  +    [mon|ton|son]  *WORD  de [l’|notre|votre|leur]      *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25846  +        <<- /gn/ morph(\2, ":[NA].*:[me]:[si]", ":G|>[aâeéèêiîoôuh].*:[ef]") and morph(\-2, ":[NA].*:m:[si]", ":[NA].*:[fe]:[si]") and not apposition(\-2, \-1)
        25847  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25848  +
        25849  +    [l’|notre|votre|leur]  *WORD  [de|d’]  [ce|cet|un]  *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25850  +    [l’|notre|votre|leur]  *WORD  du                    *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25851  +        <<- /gn/ morph(\2, ":[NA].*:m", ":[fe]") and morph(\-2, ":[NA].*:[me]") and not apposition(\-2, \-1)
        25852  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25853  +
        25854  +    [l’|notre|votre|leur]  *WORD  de  [mon|ton|son]     *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25855  +        <<- /gn/ morph(\2, ":[NA].*:m", ":[fe]") and morph(\-2, ":[NA].*:m:[si]", ":[NA].*:f|>[aâeéèêiîoôuh].*:e") and not apposition(\-2, \-1)
        25856  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25857  +
        25858  +    [l’|notre|votre|leur]  *WORD  de  [l’|notre|votre|leur]  *WORD  @:[NA].*:(?:f|[me]:p)¬:(?:G|P|[me]:[is]|V0|3[sp])
        25859  +        <<- /gn/ morph(\2, ":[NA].*:m", ":[fe]") and morph(\-2, "[NA].*:m:[si]", ":[NA].*:[fe]:[si]") and not apposition(\-2, \-1)
        25860  +        --1>> =suggMasSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au masculin singulier.
        25861  +
 25783  25862   TEST: Le chien du voisin {{mourante}}                           ->> mourant
 25784  25863   TEST: Un chien de ce voisin {{amicale}}                         ->> amical
        25864  +TEST: le chien de son voisin {{tuée}}                           ->> tué
        25865  +TEST: le chien de leur patron {{malades}}                       ->> malade
        25866  +TEST: Cet homme de mon groupe {{oubliés}}                       ->> oublié
 25785  25867   TEST: mon amour du chocolat {{immodérée}}                       ->> immodéré
 25786  25868   TEST: ton amour de son verbe {{enthousiasmante}}                ->> enthousiasmant
 25787         -TEST: Cet homme de mon groupe {{oubliés}}                       ->> oublié
 25788         -TEST: Les hommes des mines {{voisin}}                           ->> voisins
        25869  +TEST: son amour de notre travail {{ardus}}                      ->> ardu
        25870  +TEST: notre programme du mois {{disparus}}                      ->> disparu
        25871  +TEST: l’homme de mon parti {{oubliée}}                          ->> oublié
        25872  +TEST: l’ignorant de leur groupe {{rejetés}} par tous            ->> rejeté
        25873  +
        25874  +
        25875  +__gn_det_nom_de_det_nom_adj_fem_sing__
        25876  +    [la|ma|ta|sa|une|cette]  *WORD  [de|d’]  [la|ma|ta|sa|cette|une]    *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25877  +        <<- /gn/ morph(\-2, ":[NA].*:[fe]") and not apposition(\-2, \-1)
        25878  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25879  +
        25880  +    [la|ma|ta|sa|une|cette]  *WORD  [de|d’]  [mon|ton|son]              *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25881  +        <<- /gn/ morph(\-2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":[me]") and not apposition(\-2, \-1)
        25882  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25883  +
        25884  +    [la|ma|ta|sa|une|cette]  *WORD  [de|d’]  [l’|notre|votre|leur]      *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25885  +        <<- /gn/ morph(\-2, ":[NA].*:f:[si]", ":[me]") and not apposition(\-2, \-1)
        25886  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25887  +
        25888  +    [mon|ton|son]  *WORD  [de|d’]  [la|ma|ta|sa|cette|une]              *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25889  +        <<- /gn/ morph(\2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":[me]") and morph(\-2, ":[NA].*:[fe]") and not apposition(\-2, \-1)
        25890  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25891  +
        25892  +    [mon|ton|son]  *WORD  [de|d’]  [mon|ton|son]                        *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25893  +        <<- /gn/ morph(\2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":[me]") and morph(\-2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":[me]") and not apposition(\-2, \-1)
        25894  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25895  +
        25896  +    [mon|ton|son]  *WORD  [de|d’]  [l’|notre|votre|leur]                *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25897  +        <<- /gn/ morph(\2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":[me]") and morph(\-2, ":[NA].*:f:[si]", ":[me]") and not apposition(\-2, \-1)
        25898  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25899  +
        25900  +    [l’|notre|votre|leur]  *WORD  [de|d’]  [la|ma|ta|sa|cette|une]      *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25901  +        <<- /gn/ morph(\2, ":[NA].*:f:[si]", ":[me]") and morph(\-2, ":[NA].*:[fe]") and not apposition(\-2, \-1)
        25902  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25903  +
        25904  +    [l’|notre|votre|leur]  *WORD  [de|d’]  [mon|ton|son]                *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25905  +        <<- /gn/ morph(\2, ":[NA].*:f:[si]", ":[me]") and morph(\-2, ">[aâeéèêiîoôuh].*:[NA].*:f:[si]", ":[me]") and not apposition(\-2, \-1)
        25906  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25907  +
        25908  +    [l’|notre|votre|leur]  *WORD  [de|d’]  [l’|notre|votre|leur]        *WORD  @:[NA].*:(?:m|[fe]:p)¬:(?:G|P|[fe]:[is]|V0|3[sp])
        25909  +        <<- /gn/ morph(\2, ":[NA].*:f:[si]", ":[me]") and morph(\-2, ":[NA].*:f:[si]", ":[me]") and not apposition(\-2, \-1)
        25910  +        --1>> =suggFemSing(\-1, True)                                                               && Accord erroné : “\-1” devrait être au féminin singulier.
        25911  +
        25912  +TEST: La fille de cette belle {{inconnu}}                       ->> inconnue
        25913  +TEST: la fille de notre directrice {{enlevé}}                   ->> enlevée
        25914  +TEST: cette femme de mon école {{renvoyé}}                      ->> renvoyée
        25915  +TEST: mon école de ma ville {{rasé}}                            ->> rasée
        25916  +TEST: ton entreprise de ton institutrice {{racheté}}            ->> rachetée
        25917  +TEST: son entreprise de leur poche {{racheté}}                  ->> rachetée
        25918  +TEST: l’école de ma psychiatre {{brûlé}}                        ->> brûlée
        25919  +TEST: l’école de mon entreprise {{pillé}}                       ->> pillée
        25920  +TEST: l’école de notre cité {{reconstruites}}                   ->> reconstruite
        25921  +TEST: l’existence de la foi {{rejeté}}                          ->> rejetée
        25922  +TEST: son homologue de la ville écarté de l’ordre
        25923  +
        25924  +
        25925  +__gn_det_nom_de_det_nom_adj_sing!3__
        25926  +    [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  [de|d’]  [la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  @:[NA].*:p¬:(?:G|P|[me]:[is]|V0|3[sp])
        25927  +    [le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD  du                                                                          *WORD  @:[NA].*:p¬:(?:G|P|[me]:[is]|V0|3[sp])
        25928  +        <<- /gn/ morph(\-2, ":[NA].*:[me]") and not apposition(\-2, \-1)
        25929  +        --1>> =suggSing(\-1, True)                                                                  && Accord erroné : “\-1” devrait être au masculin singulier.
        25930  +
        25931  +TEST: la femme de notre homme {{expulsés}}                      ->> expulsé
        25932  +
        25933  +
        25934  +__gn_det_nom_de_det_nom_adj_plur__
        25935  +    [les|ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  de [ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  @:[NA].*:[pi]¬:(?:G|P|s|V0|3[sp])
        25936  +    [les|ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  des                                          *WORD  @:[NA].*:[pi]¬:(?:G|P|s|V0|3[sp])
        25937  +        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":s") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1)
        25938  +                and not agreement(\-2, \-1) and not agreement(\2, \-1)
        25939  +        --1>> =suggAgree(\-1, \-2)                                                                  && Accord erroné : “\-1” devrait être accordé avec “\2” ou “\-2”.
        25940  +
        25941  +    [les|ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  de [ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  @:[NA].*:s¬:(?:G|P|i|p|V0|3[sp])
        25942  +    [les|ces|mes|tes|ses|nos|vos|leurs|quelques]  *WORD  des                                          *WORD  @:[NA].*:s¬:(?:G|P|i|p|V0|3[sp])
        25943  +        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":s") and morph(\-2, ":[NA].*:[pi]") and not apposition(\-2, \-1) and not (value(>1, "|et|ou|") and morph(>2, ":A.*:[si]"))
        25944  +        --1>> =suggPlur(\-1)                                                                        && Accord erroné : “\-1” devrait être au pluriel.
        25945  +
        25946  +TEST: ces femmes des mines {{voisins}}                              ->> voisines
        25947  +TEST: Les hommes des mines {{voisin}}                               ->> voisins
        25948  +TEST: Les psychologues des mines payés à coup de lance-pierre
        25949  +TEST: les hommes des mines voisines
 25789  25950   TEST: Lutter contre le chômage de masse avec les armes des travailleurs reste pour nous une priorité.
 25790  25951   TEST: le meurtre de son ex-petite amie
 25791  25952   TEST: à cette envie de la voir sourire tout le temps
 25792  25953   TEST: sur les raisons de la chute d’un des hommes populaires du pays.
 25793  25954   TEST: sur les raisons de la chute d’une des stars populaires du pays.
 25794  25955   TEST: Les bombardements des aviations syrienne et américaine
 25795  25956   
................................................................................
 34555  34716   TODO: Les côtes sont dans leur ensemble extrêmement découpées.
 34556  34717   
 34557  34718   !!! Indécidable                                                                                   !!
 34558  34719   TEST: Du sable fin grippe les rouages (accord avec ce qui précède).
 34559  34720   TEST: Du monde noir sortent les envahisseurs (accord avec ce qui suit).
 34560  34721   
 34561  34722   !!! Autres tests                                                                                  !!
        34723  +TEST: Le président d’audience à un prévenu de cambriolage : « Vous aviez un papier avec des suites de quatre chiffres, on sait que ce sont des codes pour des clés. »
 34562  34724   TEST: l’une dit combien elle en a marre
 34563  34725   TEST: à travers le temps passent les existences oubliées
 34564  34726   TEST: autour de la parole s’adonnent à d’étonnantes pratiques les hommes perdus
 34565  34727   TEST: le Onze de France, je compte de un à trois, numéro gagnant : le huit
 34566  34728   TEST: Échappe à la cage qu’est ta vie
 34567  34729   TEST: Mon père est contre et ma mère se dit pour mais a un discours très hypocrite quand on aborde le sujet.
 34568  34730   TEST: l’ambulance censée amener Cédric n’est jamais arrivée