Grammalecte  Check-in [4fa8759303]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:merge trunk
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | comdic
Files: files | file ages | folders
SHA3-256:4fa8759303b24d49b2be135159fe4ac5ad2e148203b25319ffd42a0bc404dee1
User & Date: olr 2019-02-23 08:17:36
Context
2019-02-25
09:32
merge trunk check-in: a6af007243 user: olr tags: comdic
2019-02-23
08:17
merge trunk check-in: 4fa8759303 user: olr tags: comdic
07:58
[build] Firefox Nightly has a new folder and no need for a specific profile check-in: 58a64cf90a user: olr tags: build, trunk
2019-02-22
10:59
[fr] tests supplémentaires check-in: e2afd07d43 user: olr tags: comdic, fr
Changes

Changes to gc_lang/fr/rules.grx.

   368    368   TEST: blabla … {{[ }}crochets]                                            ->> [
   369    369   TEST: {{( }}parenthèses)                                                  ->> (
   370    370   TEST: c’est (enfin{{ )}} parti.
   371    371   TEST: voici des (parenthèses{{ )}}, n’est-ce pas ?                        ->> )
   372    372   
   373    373   
   374    374   # Parenthèses collées
   375         -__<s>/typo(typo_parenthese_fermante_collée)__    [)]\b(?![s¹²³⁴⁵⁶⁷⁸⁹⁰]\b) <<- ->> ") "              # Il manque un espace après la parenthèse.
   376         -__<s>/typo(typo_parenthese_ouvrante_collée)__    \b[(](?=[^)][^)][^)]) <<- ->> " ("                 # Il manque un espace avant la parenthèse.
          375  +__<s>/typo(typo_parenthèse_fermante_collée)__
          376  +    [)]\b(?![s¹²³⁴⁵⁶⁷⁸⁹⁰]\b) <<- not before("\\([rR]e$") ->> ") "                                   # Il manque un espace après la parenthèse.
          377  +__<s>/typo(typo_parenthèse_ouvrante_collée)__
          378  +    \b[(](?=[^)][^)][^)]) <<- ->> " ("                                                              # Il manque un espace avant la parenthèse.
   377    379   
   378    380   TEST: C’est au fond du couloir{{(}}celui du deuxième étage{{)}}qu’il se trouve.
   379    381   TEST: (a + b)²
          382  +TEST: il faut (re)former tout ça.
   380    383   
   381    384   
   382    385   # Points et espaces
   383    386   __<s>/typo(typo_point_entre_deux_espaces)__      [  ][.](?=[  ])  <<- ->> .                         # Pas d’espace avant un point.
   384    387   __<s>/typo(typo_point_collé_à_mot_suivant)__     [  ][.](?=\w)  <<- ->> ". |."                      # L’espace se place après le point, et non avant (ou bien sert de liant entre deux lettres).
   385    388   
   386    389   TEST: Il a fini{{ .}} Va te faire foutre, connard.
................................................................................
   531    534   __[s](p_points_suspension_entre_crochets)__
   532    535       \[…\] <<- ~>> *
   533    536   __[s](p_mot_entre_crochets)__
   534    537       \[({w_1})\] @@1
   535    538       <<- \1.isdigit() ~>> *
   536    539       <<- __else__ and morph(\1, ":G") ~>> =" " + \1 + " "
   537    540       <<- __else__ and \1.isalpha() ~>> " _"
          541  +
          542  +# parenthèses
   538    543   __[s](points_suspension_entre_parenthèses)__
   539    544       \(…\)
   540    545       <<- ->> […]                 # Pour indiquer une troncature de texte, on utilise usuellement des crochets.
   541    546       <<- ~>> *
          547  +__<i>(p_préfixes_entre_parenthèses)__
          548  +    " (\(re\))\w+"  @@1
          549  +        <<- ~1>> *
   542    550   
   543    551   TEST: par {{O.R.}}                                          ->> OR|O. R.
   544    552   TEST: l’{{A.N.P.E.}} n’existe plus
   545    553   TEST: ce chien […] ne {{semblez}} pas en forme.
   546    554   TEST: ce chat {{(…)}} ne {{ressemblez}} pas aux autres.
   547    555   TEST: les tests de la version 3.17.8 {{commence}} demain.
   548    556   TEST: ce nouveau moteur de recherche (http://www.cherche-moi-ça.fr/home.php&lang=fr) fonctionne pas mal.
................................................................................
   561    569   TEST: qui a été le plus honnête [Rires]
   562    570   TEST: Marion Maréchal-Le Pen. Afin que Maréchal ne soit pas analysé comme un impératif, “Le Pen” devient “Le_Pen”.
   563    571   TEST: Car [je] deviendrai plus insaisissable que jamais.
   564    572   TEST: C’est dans le dossier D:\Data
   565    573   TEST: Dossier C:\Program Files (x86)\LibreOffice
   566    574   TEST: [1] Dossier à revoir.
   567    575   TEST: jusqu’à 12h47
          576  +TEST: Allons (re)voir ce film
   568    577   
   569    578   
   570    579   
   571    580   !!!
   572    581   !!!
   573    582   !!! Processeur: balises HTML et LaTeX                                                             !!
   574    583   !!!
................................................................................
  5159   5168   
  5160   5169   #### Participes présents
  5161   5170   __conf_participes_présents__
  5162   5171       [ne|n’|me|m’|te|t’|se|s’]  ~\want$
  5163   5172           <<- /conf/ morph(\2, ":", ":P") -2>> _                                                      # Incohérence : « \2 » n’est pas un participe présent.
  5164   5173   
  5165   5174       [nous|vous|lui]  ~\want$
  5166         -        <<- /conf/ morph(\2, ":[NAQ]", ":[PG]") -2>> _                                              # Incohérence : « \2 » n’est pas un participe présent.
         5175  +        <<- /conf/ not morph(<1, ":R") and morph(\2, ":[NAQ]", ":[PG]") -2>> _                      # Incohérence : « \2 » n’est pas un participe présent.
  5167   5176   
  5168   5177   TEST: ne {{convaincant}} que les convaincus.
  5169   5178   TEST: une tension lui {{provocant}} un ulcère
  5170   5179   TEST: comme des nuages ou des coteaux se reflétant dans l’eau (ligature fl)
         5180  +TEST: ces hommes qui avaient abusé de lui enfant.
  5171   5181   
  5172   5182   
  5173   5183   __conf_en_participes_présents__
  5174   5184       en   [ne|me|m’|te|t’|s’]  @:[123][sp]¬:[PY]
  5175   5185           <<- /conf/ not \1.isupper() >>>
  5176   5186           <<- /conf/ morph(\3, ":3p") -3>> =suggVerb(\3, ":P")                                        # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
  5177   5187           <<- /conf/ value(\2, "|m’|t’|s’|") -1:2>> "\2en "                                           # Incohérence : vouliez-vous écrire « \2’en » ?
................................................................................
  5626   5636       a court terme
  5627   5637       a courte [échéance|portée]
  5628   5638       a couilles rabattues
  5629   5639       a de nombreuses reprises
  5630   5640       a des kilomètres à la ronde
  5631   5641       a dose homéopathique
  5632   5642       a double [titre|tranchant]
  5633         -    a durée limitée
         5643  +    a durée [déterminée|indéterminée|limitée]
  5634   5644       a en juger par [mon|ton|son|notre|votre|leur] expérience
  5635   5645       a en juger par [mon|ton|son|notre|votre|leur] expérience
  5636   5646       a en perdre haleine
  5637   5647       a en perdre la tête
  5638   5648       a faible [allure|revenu]
  5639   5649       a feu et à sang
  5640   5650       a flanc de [colline|montagne]
................................................................................
  6455   6465       des ~^\d{2,5}$  [<end>|,]
  6456   6466       des ~^\d{2,5}$  @:¬:[NA].*:[ip]|>(?:à|et|ou)/
  6457   6467           <<- /conf/ not value(<1, "|%|") and not morph(<1, ">(?:pourcent|cent|barre|seuil)/") -1>> dès     # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s
  6458   6468   
  6459   6469       [dés|des] *NUM [ans|heures]
  6460   6470       [dés|des] @:B [ans|heures]
  6461   6471       [dés|des] [un|une] [an|heure]
  6462         -        <<- /conf/ not morph(<1, ":R|>(?:approcher|anniversaire|cap|occasion|programme|terme|classe|autour|celui|ceux|celle|celles)/") and not value(>1, "|de|du|des|d’|")
         6472  +        <<- /conf/ not morph(<1, ":R|>(?:approcher|anniversaire|cap|occasion|passage|programme|terme|classe|autour|celui|ceux|celle|celles)/") and not value(>1, "|de|du|des|d’|")
  6463   6473           -1>> dès                                                                                    # Confusion probable. Pour la préposition, écrivez “dès”.|https://fr.wiktionary.org/wiki/pr%C3%A8s
  6464   6474   
  6465   6475       [des|ces|mes|tes|ses|nos|vos|quelques|aux] [dès|des]
  6466   6476           <<- /conf/ -2>> dés                                                                         # Confusion probable. Pour la couture ou les jeux, écrivez “dé”.|https://fr.wiktionary.org/wiki/d%C3%A9
  6467   6477   
  6468   6478       leurs dès
  6469   6479           <<- /conf/ not value(<1, "|les|des|") -2>> dés                                              # Confusion probable. Pour la couture ou les jeux, écrivez “dé”.|https://fr.wiktionary.org/wiki/d%C3%A9
................................................................................
  6506   6516   TEST: En plus des 400 à 500 euros mensuels que touche une personne
  6507   6517   TEST: les moins de 20 ans peuvent ne pas connaître le premier album du groupe
  6508   6518   TEST: au lieu des 20 heures réglementaires.
  6509   6519   TEST: celle des 20 ans.
  6510   6520   TEST: sous le seuil des 10 %
  6511   6521   TEST: notre revue des 24 et 25 décembre
  6512   6522   TEST: J’ai des X230.
         6523  +TEST: Pour les enfants placés, l’angoisse du passage des 18 ans
  6513   6524   
  6514   6525   
  6515   6526   # diagnostic / diagnotique // pronostic / pronostique
  6516   6527   __conf_diagnostic_pronostique__
  6517   6528       [ce|un|du|mon|notre|votre|quel] diagnostique
  6518   6529           <<- /conf/ -2>> diagnostic                                                  # Confusion. Le nom s’écrit avec un “c”.
  6519   6530   
................................................................................
  9131   9142       à connotation sexuelle
  9132   9143       à corps perdu
  9133   9144       à côté  [de|d’]  [ça|moi|toi|lui|nous|vous|elle|elles|eux]
  9134   9145       à couilles rabattues
  9135   9146       à coup sûr
  9136   9147       à couper le souffle
  9137   9148       à court terme
  9138         -    à court [et|ou] [long|moyen] terme.
         9149  +    à court [et|ou] [long|moyen] terme
  9139   9150       à courte [échéance|portée]
  9140   9151       à couteaux tirés
  9141   9152       à des kilomètres à la ronde
  9142   9153       à défaut d’autre chose
  9143   9154       à dose homéopathique
  9144         -    à durée limitée
         9155  +    à durée [déterminée|indéterminée|limitée]
  9145   9156       à *NUM reprises
  9146   9157       à @:B reprises
  9147   9158       à [plusieurs|quelques|maintes] reprises
  9148   9159       à de  [nombreuses|multiples]  reprises
  9149   9160       à double [titre|tranchant]
  9150   9161       à en juger par [mon|ton|son|notre|votre|leur] expérience
  9151   9162       à en perdre haleine
................................................................................
 10963  10974       >avoir  [pas|jamais|plus|guère|point]  voix au chapitre
 10964  10975           <<- ~3:0>> ␣
 10965  10976           <<- =>> define(\3, [":LV"])
 10966  10977   
 10967  10978       >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|soif]
 10968  10979       >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  @:(?:Q|V1.*:Y)
 10969  10980           <<- ~2:-2>> *
        10981  +
        10982  +    n’  >avoir  que  @:Q
        10983  +        <<- ~3>> *
        10984  +
        10985  +    n’  >avoir  que  @:W  @:Q
        10986  +        <<- ~3:4>> *
        10987  +
        10988  +    n’  >avoir  que  [peu|très|trop]  @:W  @:Q
        10989  +        <<- ~3:5>> *
 10970  10990   
 10971  10991       /VCint  [pas|jamais|plus|guère|point]
 10972  10992       /VCint  ?[pas|jamais|plus|guère|point]¿  en partie
 10973  10993       /VCint  ?[pas|jamais|plus|guère|point]¿  tous [deux|trois]
 10974  10994       /VCint  ?[pas|jamais|plus|guère|point]¿  somme toute
 10975  10995           <<- morphVC(\1, ":V0a") ~2:0>> *
 10976  10996   
................................................................................
 11471  11491   TEST: Au-delà des réponses qu’a tenté d’apporter cette semaine le président, le mouvement des “gilets jaunes” marque un tournant dans la vie politique et sociale de la France.
 11472  11492   TEST: S’y inventent de nouvelles solidarités, s’y expérimentent des joies politiques dont on avait perdu le goût et la découverte qu’on peut désobéir ensemble.
 11473  11493   TEST: Les femmes, quant à elles, ont aussi tendance à sous-estimer le harcèlement dont elles sont dans leur globalité victimes
 11474  11494   TEST: Elles ont avec constance démontré l’inanité de leur politique.
 11475  11495   TEST: On l’a mauvaise, j’peux vous l’dire.
 11476  11496   TEST: Défigurée, travestie, dans tous les cas contestée.
 11477  11497   TEST: Une file d’attente de plusieurs heures s’étire au rez-de-chaussée
        11498  +TEST: à une hausse des coûts de l’emprunt à court et moyen terme.
        11499  +TEST: Elle n’avait que rarement pris connaissance de ses droits.
        11500  +TEST: On ajoutera que si elle n’a que rarement pris la connerie pour objet
 11478  11501   
 11479  11502   
 11480  11503   
 11481  11504   @@@@
 11482  11505   @@@@
 11483  11506   @@@@
 11484  11507   @@@@
................................................................................
 12525  12548           -2>> =suggPlur(\2)                                                                  # Accord de nombre erroné : « \2 » devrait être au pluriel.
 12526  12549   
 12527  12550   TEST: 00 heure, 01 heure
 12528  12551   TEST: il a adopté 1 {{chiens}}.
 12529  12552   TEST: 22 {{heure}}
 12530  12553   TEST: 3 {{heure}}
 12531  12554   TEST: les élèves sont inquiets après une année 2018 compliquée et riche en réformes.
 12532         -TEST: ils gagnent 3000 € maximum.
        12555  +TEST: ils gagneront 300 € maximum.
 12533  12556   
 12534  12557   
 12535  12558   ##  trouver ça/ceci/cela + adj
 12536  12559   __gn_trouver_ça_adj__
 12537  12560       >trouver  [ça|cela|ceci]  @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M)
 12538  12561           <<- /gn/ -3>> =suggMasSing(\3)                                              # Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier).
 12539  12562   
................................................................................
 13216  13239   TEST: On va procéder par {{intervalle}}
 13217  13240   
 13218  13241   
 13219  13242   # juste
 13220  13243   __sgpl_juste__
 13221  13244       justes
 13222  13245           <<- /sgpl/ \1.islower() and morph(<1, ":V", ":[DA]") and not morph(>1, ":[NA].*:[pi]")
 13223         -            and not (morph(<1, ">(?:être|sembler|devenir|rester|demeurer|redevenir|para[îi]tre)/.*:[123]p") and value(>1, "|<end>|,|"))
        13246  +            and not (morph(<1, ">(?:être|sembler|devenir|rester|demeurer|redevenir|para[îi]tre)/.*:[123]p") and value(>1, "|<end>|,|que|qu’|"))
 13224  13247           ->> juste                                                   # Si “juste” est un adverbe, il est invariable.
 13225  13248   
 13226  13249   TEST: Viser {{justes}}
 13227  13250   TEST: Voir {{justes}}.
 13228  13251   TEST: Penser juste.
 13229  13252   TEST: Dures mais justes.
 13230  13253   TEST: J’ai retrouvé tout mon ressenti, tous les mots sont justes.
 13231  13254   TEST: Nos chiffres sont justes, et nous vous le prouverons.
        13255  +TEST: Ces observations sont tellement justes que, dans les années à venir, elles serviront de référence.
 13232  13256   
 13233  13257   
 13234  13258   # pied
 13235  13259   __sgpl_pied__
 13236  13260       [>avoir|>perdre]  pieds
 13237  13261           <<- /sgpl/ -2>> pied                                        # Locution “\1 pied” : écrivez “pied” au singulier.
 13238  13262   
................................................................................
 14852  14876   TEST: Il est comme un coq en {{pattes}} là.
 14853  14877   TEST: Elle n’a jamais mis la main à la {{patte}}.
 14854  14878   
 14855  14879   
 14856  14880   # péché / pêcher
 14857  14881   __conf_péché_pêcher__
 14858  14882       >pêcher par excès [de|d’]
 14859         -    >pêcher par [insuffisance|omission]
        14883  +    >pêcher par [insuffisance|omission|orgueil]
 14860  14884       >pêcher [à|a] la ligne
 14861  14885       >pêcher @:D [>poisson|>crabe|>langouste|>crevette|>thon|>huître|>huitre|>moule]
 14862  14886           <<- /conf/ -1>> pécher                                  # Confusion : pêcher (capturer des poissons) ≠ pécher (faire un écart de conduite).|https://fr.wiktionary.org/wiki/p%C3%A9cher
 14863  14887   
 14864  14888       [>commettre|>pardonner|>confesser|>absoudre|>avouer|>reconnaître|>reconnaitre|>expier|>effacer] @:D ([pécher|>pêcher|pêché|pêchés|pêchée|pêchées])
 14865  14889       >repentir de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] ([pécher|>pêcher|pêché|pêchés|pêchée|pêchées])
        14890  +        <<- /conf/ \1.endswith("s") -1>> péchés                 # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C1%A9ch%C1%A9
        14891  +        <<- /conf/ __else__ -1>> péché                          # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9
        14892  +
        14893  +    [pécher|pêcher|pêchers|pêché|pêchée|pêchés|pêchées] [>capitale|mignon|mignons|>mortelle|>originelle|>vénielle]
 14866  14894           <<- /conf/ \1.endswith("s") -1>> péchés                 # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C1%A9ch%C1%A9
 14867  14895           <<- /conf/ __else__ -1>> péché                          # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9
 14868  14896   
 14869  14897       >pécher [du|d’|de|des|la|le|l’|les|à|au|aux] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques]
 14870  14898       >pécher [de|à] [la|l’] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques]
 14871  14899           <<- /conf/ -1>> pécher                                  # Confusion : pêcher (capturer des poissons) ≠ pécher (faire un écart de conduite).|https://fr.wiktionary.org/wiki/p%C3%A9cher
 14872  14900   
 14873  14901   TEST: Il {{pêche}} par excès de confiance.
 14874  14902   TEST: commettre un {{pêcher}}.
 14875  14903   TEST: Elle voulut expier ses {{pêchés}}.
 14876  14904   TEST: {{pécher}} à la ligne
        14905  +TEST: C’est mon {{pêché}} mignon
        14906  +TEST: Les {{pêchers}} capitaux
        14907  +TEST: Des {{pêchés}} véniels
 14877  14908   
 14878  14909   
 14879  14910   # peu / peux / peut
 14880  14911   __conf_peut_peux_peu2__
 14881  14912       [peux|peut]  [de|d’]  @:[NA]¬*
 14882         -        <<- /conf/ space_after(\1, 1, 3) -1>> peu               # Confusion probable : “\1” est une forme conjuguée de “pouvoir”, écrivez “peu” pour dire “pas beaucoup”.
        14913  +        <<- /conf/ not value(<1, "|je|tu|il|elle|on|ne|n’|") and space_after(\1, 1, 3) -1>> peu     # Confusion probable : “\1” est une forme conjuguée de “pouvoir”, écrivez “peu” pour dire “pas beaucoup”.
 14883  14914   
 14884  14915   TEST: {{peut}} d’hommes savent comment s’y prendre
 14885  14916   TEST: peu d’argent
        14917  +TEST: il peut de façon crédible avancer qu’il veut tout faire sauter
 14886  14918   
 14887  14919   
 14888  14920   # peut-être / peut être
 14889  14921   __conf_peut_être2__
 14890  14922       *WORD peut être
 14891  14923           <<- /conf/ space_after(\2, 1, 1) and morph(\1, ":V", ":[NAQGM]") -2:3>> peut-être           # Confusion probable. Pour dire “possiblement”, écrivez “peut-être”.
 14892  14924   
................................................................................
 15762  15794   TEST: Ils vont {{biens}}.
 15763  15795   TEST: Elles travaillaient vraiment {{biens}}.
 15764  15796   TEST: Il ne comprenait vraiment pas très {{biens}} ces principes de base.
 15765  15797   TEST: Il a de grands biens.
 15766  15798   TEST: Ce sont des biens de peu de valeur.
 15767  15799   
 15768  15800   
 15769         -
 15770         -!!
 15771         -!!
 15772         -!!!! Quel(le) que soit / quel(le)s que soient                                                     !!
 15773         -!!
 15774         -!!
 15775         -
 15776         -# singulier
 15777         -__conj_quel_quelle_que_3sg__
 15778         -    [quel|quelle]  [que|qu’]  >être  [le|la|l’|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD
 15779         -        <<- /conj/ morph(\3, ":V0e", ":3s") -3>> =suggVerb(\3, ":3s")                       # Conjugaison erronée. Accord avec “\4 \5”. Mettez “être” à la 3ᵉ personne du singulier.
 15780         -
 15781         -    [quels|quelles]  [que|qu’]  >être  [le|la|l’|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD
 15782         -        <<- /conj/ not (morph(\3, ":3p") and value(>1, "|et|")) -3>> =suggVerb(\3, ":3s")   # Conjugaison erronée. Accord avec “\4 \5”. Mettez “être” à la 3ᵉ personne du singulier.
 15783         -        <<- /conj/ __also__ -1>> =\1[:-1]                                                   # Accord avec “\4 \5”. Utilisez le singulier.
 15784         -
 15785         -TEST: Quel que {{sois}} son passe-temps, il y consacre trop de temps.
 15786         -TEST: {{Quels}} que {{soient}} le feu utilisé.
 15787         -TEST: {{Quels}} que {{soit}} leur problème, ça n’en finit jamais.
 15788         -TEST: {{Quelles}} que {{soit}} leur voiture, elle tombe constamment en panne.
 15789         -TEST: Quelles que soient la vitesse et l’efficacité de cette méthode, ça me semble moins abouti que notre solution maison.
 15790         -
 15791         -
 15792         -# pluriel
 15793         -__conj_quels_quelles_que_3pl__
 15794         -    [quels|quelles|quel|quelle]  que  >être  [les|ces|mes|tes|ses|nos|vos|leurs]
 15795         -        <<- /conj/ morph(\3, ":V0e", ":3p") -3>> =suggVerb(\3, ":3p")               # Conjugaison erronée. Mettez “être” à la 3ᵉ personne du pluriel.
 15796         -
 15797         -    [quel|quelle]  que  >être  [les|ces|mes|tes|ses|nos|vos|leurs]  *WORD
 15798         -        <<- /conj/ -1>> \1s                                                         # Accord avec “\4 \5”. Utilisez le pluriel.
 15799         -
 15800         -TEST: Quels que {{soit}} les salopards qui ont fait ça.
 15801         -TEST: Quelles que {{sois}} les chaussures que je mets, elles me font mal aux pieds.
 15802         -TEST: {{Quel}} que soient les avantages reçus, ce n’est pas assez.
 15803         -TEST: {{Quelle}} que soient nos problèmes, on en parle toujours trop.
 15804         -
 15805         -
 15806  15801   
 15807  15802   !!
 15808  15803   !!
 15809  15804   !!!! Infinitif                                                                                    !!
 15810  15805   !!
 15811  15806   !!
 15812  15807   
 15813  15808   #### devoir / faire / falloir / pouvoir / savoir / vouloir
 15814  15809   
 15815  15810   __infi_faire_verbe__
 15816  15811       >faire  ~(?:ée?s?|ez)$
 15817         -        <<- /infi/ not value(<1, "|en|de|") and morph(\2, ":V", ":[MG]") and not (morph(\1, ":N") and morph(\2, ":Q.*:m:s"))
        15812  +        <<- /infi/ not value(<1, "|en|de|") and morph(\2, ":V", ":[MG]") and not (morph(\1, ":N") and morph(\2, ":Q.*:m:[sp]"))
 15818  15813           -2>> =suggVerbInfi(\2)                                  # Après le verbe “faire”, ce verbe devrait être à l’infinitif.
 15819  15814   
 15820  15815   TEST: elle fit peu {{mangé}} les enfants
 15821  15816   TEST: Tu fais {{décoloré}} tes cheveux ?
 15822  15817   TEST: quelqu’un fait {{travaillé}} ces gens en secret.
 15823  15818   TEST: il le fait {{pensé}} à son avenir.
 15824  15819   TEST: ce sont des faits constestés.
 15825  15820   TEST: c’est un fait reconnu.
 15826  15821   TEST: fait pourtant avéré et corroboré par le même sondage.
 15827  15822   TEST: ce fait rapporté par des témoins au-delà de tout soupçon n’est pas contestable.
        15823  +TEST: il y a quand même quelques faits caractérisés permettant de faire le raccord
 15828  15824   
 15829  15825   #__[i]/infi(infi_faire)__
 15830  15826   #    (f(?:ai|[iî]|er|on)\w+) +({w_2}(?:ée?s?|ez))  @@0,$
 15831  15827   #    <<- morph(\1, ">faire/") and not before("(?i)\\b(?:en|[mtsldc]es?|[nv]ous|un) +$") and morph(\2, ":V", ":M")
 15832  15828   #        and not (re.search("(?i)^fait$", \1) and \2.endswith("é"))
 15833  15829   #        and not (re.search("(?i)^faits$", \1) and \2.endswith("és"))
 15834  15830   #    -2>> =suggVerbInfi(@)                                                                           # Le verbe devrait être à l’infinitif.
................................................................................
 17982  17978   TEST: La consigner devenait une obligation.
 17983  17979   TEST: Les reconnaître semblait nécessaire.
 17984  17980   TEST: Son ministre du Budget, Gérald Darmanin, l’avait dit plus crûment sur RTL
 17985  17981   TEST: Certains jouent la carte de la dérision
 17986  17982   
 17987  17983   
 17988  17984   __conf_suj_verbe_det_verbe_nom__
 17989         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        le  @:[123][sp]¬:[NA].*:[me]:[si]
 17990         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        le  @:[123][sp]¬:[NA].*:[me]:[si]
 17991         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        le  @:[123][sp]¬:[NA].*:[me]:[si]
 17992         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        le  @:[123][sp]¬:[NA].*:[me]:[si]
 17993         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 17994         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 17995         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 17996         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 17997         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 17998         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 17999         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 18000         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 18001         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        le  @:[123][sp]¬:[NA].*:[me]:[si]
 18002         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        le  @:[123][sp]¬:[NA].*:[me]:[si]
 18003         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        le  @:[123][sp]¬:[NA].*:[me]:[si]
 18004         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        le  @:[123][sp]¬:[NA].*:[me]:[si]
        17985  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17986  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17987  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17988  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17989  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17990  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17991  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17992  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17993  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17994  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17995  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17996  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17997  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17998  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        17999  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
        18000  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [le|un]  @:[123][sp]¬:[NA].*:[me]:[si]
 18005  18001           <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)                 # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.
 18006  18002   
 18007         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18008         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18009         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18010         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18011         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18012         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18013         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18014         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18015         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18016         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18017         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18018         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18019         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18020         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18021         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        la  @:[123][sp]¬:[NA].*:[fe]:[si]
 18022         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        la  @:[123][sp]¬:[NA].*:[fe]:[si]
        18003  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18004  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18005  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18006  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18007  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18008  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18009  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18010  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18011  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18012  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18013  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18014  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18015  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18016  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18017  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
        18018  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [la|une]  @:[123][sp]¬:[NA].*:[fe]:[si]
 18023  18019           <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[fe]:[si]", True)                 # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.
 18024  18020   
 18025         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        l’  @:[123][sp]¬:[NA].*:[si]
 18026         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        l’  @:[123][sp]¬:[NA].*:[si]
 18027         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        l’  @:[123][sp]¬:[NA].*:[si]
 18028         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        l’  @:[123][sp]¬:[NA].*:[si]
 18029         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  l’  @:[123][sp]¬:[NA].*:[si]
 18030         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  l’  @:[123][sp]¬:[NA].*:[si]
 18031         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  l’  @:[123][sp]¬:[NA].*:[si]
 18032         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  l’  @:[123][sp]¬:[NA].*:[si]
 18033         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  l’  @:[123][sp]¬:[NA].*:[si]
 18034         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  l’  @:[123][sp]¬:[NA].*:[si]
 18035         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  l’  @:[123][sp]¬:[NA].*:[si]
 18036         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  l’  @:[123][sp]¬:[NA].*:[si]
 18037         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        l’  @:[123][sp]¬:[NA].*:[si]
 18038         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        l’  @:[123][sp]¬:[NA].*:[si]
 18039         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        l’  @:[123][sp]¬:[NA].*:[si]
 18040         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        l’  @:[123][sp]¬:[NA].*:[si]
        18021  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18022  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18023  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18024  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18025  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18026  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18027  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18028  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18029  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18030  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18031  +    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18032  +    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18033  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18034  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18035  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
        18036  +    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        [l’|leur]  @:[123][sp]¬:[NA].*:[si]
 18041  18037           <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.
 18042  18038   
 18043         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        leur  @:[123][sp]¬:[NA].*:[si]
 18044         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        leur  @:[123][sp]¬:[NA].*:[si]
 18045         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        leur  @:[123][sp]¬:[NA].*:[si]
 18046         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        leur  @:[123][sp]¬:[NA].*:[si]
 18047         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  leur  @:[123][sp]¬:[NA].*:[si]
 18048         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  leur  @:[123][sp]¬:[NA].*:[si]
 18049         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  leur  @:[123][sp]¬:[NA].*:[si]
 18050         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  leur  @:[123][sp]¬:[NA].*:[si]
 18051         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  leur  @:[123][sp]¬:[NA].*:[si]
 18052         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  leur  @:[123][sp]¬:[NA].*:[si]
 18053         -    [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  leur  @:[123][sp]¬:[NA].*:[si]
 18054         -    [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  leur  @:[123][sp]¬:[NA].*:[si]
 18055         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        leur  @:[123][sp]¬:[NA].*:[si]
 18056         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        leur  @:[123][sp]¬:[NA].*:[si]
 18057         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        leur  @:[123][sp]¬:[NA].*:[si]
 18058         -    [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        leur  @:[123][sp]¬:[NA].*:[si]
 18059         -        <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.
 18060         -
 18061         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
 18062         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
 18063         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
 18064         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
        18039  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
        18040  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
        18041  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
        18042  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
 18065  18043       [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
 18066  18044       [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
 18067  18045       [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
 18068  18046       [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
 18069  18047       [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
 18070  18048       [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
 18071  18049       [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
................................................................................
 18072  18050       [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  les  @:[123][sp]¬:[NA].*:[pi]
 18073  18051       [<start>|,]  @:Y                                        ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
 18074  18052       [<start>|,]  @:Y                                        ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
 18075  18053       [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
 18076  18054       [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        les  @:[123][sp]¬:[NA].*:[pi]
 18077  18055           <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[pi]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.
 18078  18056   
 18079         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        en  @:[123][sp]¬:[NA]
 18080         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        en  @:[123][sp]¬:[NA]
 18081         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
 18082         -    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles]  ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
        18057  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]        en  @:[123][sp]¬:[NA]
        18058  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]        en  @:[123][sp]¬:[NA]
        18059  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
        18060  +    [<start>|,]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|ce|c’]    ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
 18083  18061       [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
 18084  18062       [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
 18085  18063       [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
 18086  18064       [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
 18087  18065       [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
 18088  18066       [<start>|,]  [le|la|l’|leur|les]  @:[NA]¬:3[sp]         ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
 18089  18067       [<start>|,]  @:D¬:Ov              @:[NA]                ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]¬:[NA]  en  @:[123][sp]¬:[NA]
................................................................................
 18093  18071       [<start>|,]  @:Y                                        ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             @:[123][sp]        en  @:[123][sp]¬:[NA]
 18094  18072       [<start>|,]  @:Y                                        ?[ne|n’]¿   [lui|leur]                      en                          @:[123][sp]        en  @:[123][sp]¬:[NA]
 18095  18073           <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[si]", True)                      # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est une préposition, il faut placer un nom après.
 18096  18074   
 18097  18075   TEST: je relève le {{défit}}.                                   ->> défi
 18098  18076   TEST: elle relève une fois de plus le {{défie}}.                ->> défi
 18099  18077   TEST: il gère l’{{accueille}}                                   ->> accueil
        18078  +TEST: Elle ne connait pas leur {{recule}}                       ->> recul
 18100  18079   TEST: nous racontons le {{dépare}} des peuples vers les étoiles ->> départ
 18101  18080   TEST: Les hommes resteront en {{contacte}}                      ->> contact
 18102  18081   TEST: Le parquet ne demande pas le {{maintient}} en détention   ->> maintien
 18103  18082   TEST: Mon idée rend leur {{dépare}} nécessaire                  ->> départ
 18104  18083   TEST: tu vois, l’oiseau étend les {{hèles}}                     ->> ailes
 18105  18084   TEST: Lire nous révèle les {{fixions}} du genre                 ->> fictions
        18085  +TEST: c’était le {{profile}} qui était assez similaire          ->> profil
        18086  +TEST: c’est un {{parie}} sur l’avenir                           ->> pari
 18106  18087   TEST: Quel homme ferait un {{parie}} si risqué.                 ->> pari
 18107  18088   
 18108  18089   
 18109  18090   __conf_interrogatif_ou_impératif_det_verbe_nom__
 18110  18091       [/VCint|/VCimp]  le  @:[123][sp]¬:[NA].*:[me]:[si]
 18111  18092           <<- /conf/ --1>> =suggSimil(\-1, ":[NA].*:[me]:[si]", True)             # Confusion probable : “\-1” est une forme verbale conjuguée. Si “\-2” est un déterminant, il faut placer un nom après.
 18112  18093   
................................................................................
 19311  19292   TEST: {{certain}} {{donne}} beaucoup.
 19312  19293   TEST: certaine est la défaite.
 19313  19294   TEST: si tu persévères, certaine deviendra la réussite.
 19314  19295   
 19315  19296   
 19316  19297   __conj_det_plur_nom__
 19317  19298       [ces|mes|tes|ses|nos|vos|leurs|quelques]  @:[NA].*:[pi]  @:V¬:(?:[13]p|P|Y|G|M|A.*:e:[pi])
 19318         -        <<- /conj/ morph(<1, ":C|<start>|>,")
        19299  +        <<- /conj/ morph(<1, ":Cs|<start>|>,")
 19319  19300               and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>>
 19320  19301           <<- /conj/ not checkAgreement(\2, \3) -3>> =suggVerb(\3, ":3p") # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 19321  19302           <<- /conj/ __else__ and isAmbiguousAndWrong(\2, \3, ":p", ":3p")
 19322  19303           -3>> =suggVerb(\3, ":3p", suggPlur)                             # Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
 19323  19304   
 19324  19305       [ces|mes|tes|ses|nos|vos|leurs|quelques]  @:[NA].*:[pi]  qui  @:V¬:(?:[13]p|P|Y|G|M|A.*:e:[pi])
 19325         -        <<- /conj/ morph(<1, ":C|<start>|>,")
        19306  +        <<- /conj/ morph(<1, ":Cs|<start>|>,")
 19326  19307               and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") )
 19327  19308           -4>> =suggVerb(\4, ":3p")                                       # Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 19328  19309   
 19329  19310   TEST: Ses « chiens » {{coure}} sur ma pelouse.
 19330  19311   TEST: mes filles {{passe}} ce matin
 19331  19312   TEST: vos filles {{passes}} ce matin
 19332  19313   TEST: ces travaux qui {{demande}} tant d’efforts.
 19333  19314   TEST: vos questions ne {{réclame}} aucune réflexion.
 19334  19315   TEST: Ces attaques à main armée {{donne}} la chair de poule.
 19335  19316   TEST: Ces marchands {{passe}} leur temps à se quereller.
 19336  19317   TEST: le lien entre les agences de renseignement et ces mêmes entreprises pouvait reposer sur des activités de surveillance à proprement parler.
        19318  +TEST: trier les cons et les connes expose à un violent coup de boomerang
 19337  19319   
 19338  19320   
 19339  19321   __conj_det_plur_nom_confusion__
 19340  19322       les  @:[NA].*:[pi]  @:V¬:(?:3p|P|Y|G|M|A.*:e:[pi])
 19341         -        <<- /conj/ morph(<1, ":C|<start>|>,")
        19323  +        <<- /conj/ morph(<1, ":Cs|<start>|>,")
 19342  19324               and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>>
 19343  19325           <<- /conj/ not checkAgreement(\2, \3)
 19344  19326           -3>> =suggVerb(\3, ":3p")                                       # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 19345  19327           <<- /conj/ __else__ and isVeryAmbiguousAndWrong(\2, \3, ":p", ":3p", value(<1, "|<start>|,|"))
 19346  19328           -3>> =suggVerb(\3, ":3p", suggPlur)                             # Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
 19347  19329   
 19348  19330       [certains|certaines]  @:[NA].*:[pi]  @:V¬:(?:3p|P|Y|G|M|A.*:e:[pi])
 19349         -        <<- /conj/ morph(<1, ":C|<start>|>,")
        19331  +        <<- /conj/ morph(<1, ":Cs|<start>|>,")
 19350  19332               and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>>
 19351  19333           <<- /conj/ not checkAgreement(\2, \3)
 19352  19334           -3>> =suggVerb(\3, ":3p")                                       # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 19353  19335           <<- /conj/ __else__ and isVeryAmbiguousAndWrong(\2, \3, ":m:p", ":3p", value(<1, "|<start>|,|"))
 19354  19336           -3>> =suggVerb(\3, ":3p", suggMasPlur)                          # Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
 19355  19337           <<- /conj/ __else__ and isVeryAmbiguousAndWrong(\2, \3, ":f:p", ":3p", value(<1, "|<start>|,|"))
 19356  19338           -3>> =suggVerb(\3, ":3p", suggFemPlur)                          # Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
 19357  19339   
 19358  19340       plusieurs  @:[NA].*:[pi]  @:V¬:(?:3p|P|Y|G|M|A.*:e:[pi])
 19359         -        <<- /conj/ morph(<1, ":C|<start>|>,")
        19341  +        <<- /conj/ morph(<1, ":Cs|<start>|>,")
 19360  19342               and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") )
 19361  19343               and not checkAgreement(\2, \3)
 19362  19344           -3>> =suggVerb(\3, ":3p")                                       # Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 19363  19345   
 19364  19346       [les|certains|certaines|plusieurs]  @:[NA].*:[pi]  qui  @:V¬:(?:[13]p|P|Y|G|M)
 19365         -        <<- /conj/ morph(<1, ":C|<start>|>,")
        19347  +        <<- /conj/ morph(<1, ":Cs|<start>|>,")
 19366  19348               and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") )
 19367  19349           -4>> =suggVerb(\4, ":3p")                                       # Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel.
 19368  19350   
 19369  19351   TEST: Les abstentions {{est}} présumée manifester un défaut d’opinion marquée
 19370  19352   TEST: Les cours de culture générale nous {{apporte}} de l’ouverture d’esprit.
 19371  19353   TEST: Les hommes ne le lui {{pardonnes}} pas.
 19372  19354   TEST: Les infirmières à mi-temps ne {{travaille}} pas dans cette aile.
................................................................................
 19523  19505   __conj_puisse__
 19524  19506       [<start>|,]  puisse  @:D.*:p
 19525  19507           <<- /conj/ -2>> puissent                                                    # Conjugaison erronée. Ce verbe devrait s’accorder au substantif qui le suit.
 19526  19508   
 19527  19509   TEST: {{puisse}} les hommes enfin comprendre leurs erreurs.                         ->> puissent
 19528  19510   TEST: {{puisses}} notre ennemi trembler de peur devant notre courage.               ->> puisse
 19529  19511   
        19512  +
        19513  +!!
        19514  +!!
        19515  +!!!! Quel(le) que soit / quel(le)s que soient                                                     !!
        19516  +!!
        19517  +!!
        19518  +
        19519  +# singulier
        19520  +__conj_quel_quelle_que_3sg__
        19521  +    [quel|quelle]  [que|qu’]  >être  [le|la|l’|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD
        19522  +        <<- /conj/ morph(\3, ":V0e", ":3s") -3>> =suggVerb(\3, ":3s")                       # Conjugaison erronée. Accord avec “\4 \5”. Mettez “être” à la 3ᵉ personne du singulier.
        19523  +
        19524  +    [quels|quelles]  [que|qu’]  >être  [le|la|l’|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre|leur]  *WORD
        19525  +        <<- /conj/ not ( morph(\3, ":3p") and (value(>1, "|et|") or tag(\5, "enum")) )
        19526  +        -3>> =suggVerb(\3, ":3s")                                                           # Conjugaison erronée. Accord avec “\4 \5”. Mettez “être” à la 3ᵉ personne du singulier.
        19527  +        <<- /conj/ __also__ -1>> =\1[:-1]                                                   # Accord avec “\4 \5”. Utilisez le singulier.
        19528  +
        19529  +TEST: Quel que {{sois}} son passe-temps, il y consacre trop de temps.
        19530  +TEST: {{Quels}} que {{soient}} le feu utilisé.
        19531  +TEST: {{Quels}} que {{soit}} leur problème, ça n’en finit jamais.
        19532  +TEST: {{Quelles}} que {{soit}} leur voiture, elle tombe constamment en panne.
        19533  +TEST: Quelles que soient la vitesse et l’efficacité de cette méthode, ça me semble moins abouti que notre solution maison.
        19534  +TEST: Quels que soient le carnage, l’abomination, le crime commis, nous les poursuivrons.
        19535  +
        19536  +# pluriel
        19537  +__conj_quels_quelles_que_3pl__
        19538  +    [quels|quelles|quel|quelle]  que  >être  [les|ces|mes|tes|ses|nos|vos|leurs]
        19539  +        <<- /conj/ morph(\3, ":V0e", ":3p") -3>> =suggVerb(\3, ":3p")               # Conjugaison erronée. Mettez “être” à la 3ᵉ personne du pluriel.
        19540  +
        19541  +    [quel|quelle]  que  >être  [les|ces|mes|tes|ses|nos|vos|leurs]  *WORD
        19542  +        <<- /conj/ -1>> \1s                                                         # Accord avec “\4 \5”. Utilisez le pluriel.
        19543  +
        19544  +TEST: Quels que {{soit}} les salopards qui ont fait ça.
        19545  +TEST: Quelles que {{sois}} les chaussures que je mets, elles me font mal aux pieds.
        19546  +TEST: {{Quel}} que soient les avantages reçus, ce n’est pas assez.
        19547  +TEST: {{Quelle}} que soient nos problèmes, on en parle toujours trop.
        19548  +
 19530  19549   
 19531  19550   
 19532  19551   !!
 19533  19552   !!
 19534  19553   !!!! Verbes sans sujets                                                                           !!
 19535  19554   !!
 19536  19555   !!
................................................................................
 19779  19798   
 19780  19799   !!
 19781  19800   !!
 19782  19801   !!!! Incohérence ponctuation/mode verbal                                                          !!
 19783  19802   !!
 19784  19803   !!
 19785  19804   
        19805  +# Règles casse-gueule, prudence…
        19806  +
 19786  19807   __conj_nom_propre_virgule__
 19787         -    <start>  @:M  ,  @:3s¬:[NAGEM]
 19788         -        <<- /conj/ space_after(\2, 0, 0) and space_after(\4, 1, 10) -2:3>> \2   # Soit la virgule est superflue (on ne sépare pas le verbe du sujet), soit “\4” devrait être à l’impératif.
 19789         -        <<- /conj/ __also__ -4>> =suggVerbTense(\4, ":E", ":2s")                # Soit la virgule après “\2” est superflue (on ne sépare pas le verbe du sujet), soit “\4” devrait être à l’impératif.
        19808  +    <start>  @:M  ,  @:3s¬:[NAGEM]  [<end>|,]
        19809  +        <<- /conj/ space_after(\2, 0, 0) -2:3>> \2
        19810  +        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        19811  +        <<- /conj/ __also__ -4>> =suggVerbTense(\4, ":E", ":2s")
        19812  +        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
 19790  19813   
 19791         -TEST: {{Paul,}} {{vient}} voir ce qui se passe.                         ->> Paul|||viens
        19814  +    <start>  @:M  ,  @:3s¬:[NAGEM]  @:A.*:[si]
        19815  +        <<- /conj/ space_after(\2, 0, 0) and morph(\4, ">(?:être|devenir|redevenir|sembler|para[iî]tre)/") -2:3>> \2
        19816  +        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        19817  +        <<- /conj/ __also__ -4>> =suggVerbTense(\4, ":E", ":2s")
        19818  +        # Si “\2” est le sujet de “\4”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\4” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        19819  +
        19820  +TEST: {{Paul,}} {{vient}}                                               ->> Paul|||viens
        19821  +TEST: {{Anton,}} {{sera}} toujours prêt à vous écouter                  ->> Anton|||sois
 19792  19822   TEST: Maria, avance devant toi.
        19823  +TEST: Céline, crut deviner son époux, en avait assez.
        19824  +TEST: Valérie, devina Éric, n’avait pas du tout l’intention de mener à bien la tâche qu’il voulait la voir accomplir.
 19793  19825   
 19794  19826   
 19795  19827   __conj_det_nom_sing_virgule__
 19796         -    <start>  [un|le|la|l’|ce|cet|cette|mon|ton|son|ma|ta|sa]  @:[NA]  ,  @:3s¬:[NAGEM]
 19797         -        <<- /conj/ space_after(\3, 0, 0) and space_after(\4, 1, 10) -3:4>> \3   # Soit la virgule est superflue (on ne sépare pas le verbe du sujet), soit “\5” devrait être à l’impératif.
 19798         -        <<- /conj/ __also__ -5>> =suggVerbTense(\5, ":E", ":2s")                # Soit la virgule après “\2 \3” est superflue (on ne sépare pas le verbe du sujet), soit “\5” devrait être à l’impératif.
        19828  +    <start>  [un|le|la|l’|ce|cet|cette|mon|ton|son|ma|ta|sa]  @:[NA]  ,  @:3s¬:[NAGEM]  [<end>|,|les|des|ces|mes|tes|ses|nos|vos|leurs]
        19829  +        <<- /conj/ space_after(\3, 0, 0) -3:4>> \3
        19830  +        # Si “\2 \3” est le sujet de “\5”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\5” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        19831  +        <<- /conj/ __also__ -5>> =suggVerbTense(\5, ":E", ":2s")
        19832  +        # Si “\2 \3” est le sujet de “\5”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\5” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
 19799  19833   
        19834  +    <start>  [un|le|la|l’|ce|cet|cette|mon|ton|son|ma|ta|sa]  @:[NA]  ,  @:3s¬:[NAGEM]  @:A.*:[si]
        19835  +        <<- /conj/ space_after(\3, 0, 0) and morph(\5, ">(?:être|devenir|redevenir|sembler|para[iî]tre)/")  -3:4>> \3
        19836  +        # Si “\2 \3” est le sujet de “\5”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\5” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        19837  +        <<- /conj/ __also__ -5>> =suggVerbTense(\5, ":E", ":2s")
        19838  +        # Si “\2 \3” est le sujet de “\5”, la virgule est superflue (on ne sépare pas le verbe du sujet). Sinon “\5” devrait être à l’impératif (à moins d’une inversion verbe-sujet).
        19839  +
        19840  +TEST: Ce {{soir,}} {{vient}}.                                           ->> soir|||viens
 19800  19841   TEST: l’{{homme,}} {{devient}} difficile.                               ->> homme|||deviens
 19801  19842   TEST: ce matin, viens me voir.
 19802  19843   TEST: l’Angola, Cuba et l’Afrique du Sud signent à New York, sous l’égide des Soviétiques et des Américains, un accord aboutissant au retrait des troupes cubaines d’Angola.
        19844  +TEST: L’amour, expliqua la femme.
 19803  19845   
 19804  19846   
 19805  19847   __conj_det_nom_plur_virgule__
 19806         -    <start>  [les|ces|mes|tes|ses|plusieurs|quelques|certains|certaines]  @:[NA].*:[pi]  ,  @:3p¬:[NAGEM]
 19807         -        <<- /conj/ space_after(\3, 0, 0) and space_after(\4, 1, 10)
        19848  +    <start>  [les|ces|mes|tes|ses|plusieurs|quelques|certains|certaines]  @:[NA].*:[pi]  ,  @:3p¬:[NAGEM]  [<end>|,]
        19849  +        <<- /conj/ space_after(\3, 0, 0)
        19850  +        -3:4>> \3                                                               # La virgule est probablement superflue (on ne sépare pas le verbe du sujet).
        19851  +
        19852  +    <start>  [les|ces|mes|tes|ses|plusieurs|quelques|certains|certaines]  @:[NA].*:[pi]  ,  @:3p¬:[NAGEM]  @:A.*:[pi]
        19853  +        <<- /conj/ space_after(\3, 0, 0) and morph(\5, ">(?:être|devenir|redevenir|sembler|para[iî]tre)/")
 19808  19854           -3:4>> \3                                                               # La virgule est probablement superflue (on ne sépare pas le verbe du sujet).
 19809  19855   
 19810         -TEST: les {{hommes,}} deviennent plus en plus arrogants.                ->> hommes
        19856  +TEST: Ces {{imbéciles,}} se ridiculisent.                               ->> imbéciles
        19857  +TEST: les {{hommes,}} deviennent de plus en plus arrogants.             ->> hommes
 19811  19858   TEST: Les questions de faisabilité, de mise en pratique ont vraiment été abordées.
        19859  +TEST: Ces difficultés, songèrent mes amis, allaient les mettre à la torture.
 19812  19860   
 19813  19861   
 19814  19862   
 19815  19863   @@@@
 19816  19864   @@@@
 19817  19865   @@@@
 19818  19866   @@@@
................................................................................
 19970  20018   TEST: Renvoyer quelqu’un sans l’avoir examiné peut être un grand danger.
 19971  20019   TEST: En 1944, au sortir des deux guerres ayant ravagé l’Europe, le CNR (conseil national de la résistance) avait bien mesuré les tenants et les aboutissants, c’est-à-dire les causes et les conséquences du ravage des inégalités et du jusqu’au boutisme de l’auto-défense d’une caste pour préserver ses acquis.
 19972  20020   TEST: Ceux de l’Université sont plus perfectionnés
 19973  20021   TEST: Celles de l’Institut sont plus perfectionnées
 19974  20022   TEST: Judith A. Allan a aussi constaté que les études sur les crises de la masculinité ne proposent pas ou que très rarement d’indicateurs pour déterminer si une société est (trop) féminisée et si les hommes sont (réellement) en crise.
 19975  20023   TEST: une procédure abusive pour fermer la porte qu’elles ont essayé d’ouvrir
 19976  20024   TEST: En France, les hauts fonctionnaires gagnent en moyenne 7850 euros net
 19977         -
        20025  +TEST: Il faut avoir du pouvoir et des ressources
 19978  20026   
 19979  20027   
 19980  20028   !!! Tests historiques                                                                             !!
 19981  20029   
 19982  20030   ## Version 0.5.14
 19983  20031   TEST: par le léger tissu de rayonne qui les protégeait en ce moment.
 19984  20032   

Changes to grammalecte-server.py.

    22     22   
    23     23       <body class="panel">
    24     24           <h1>Grammalecte · Serveur</h1>
    25     25   
    26     26           <h2>INFORMATIONS</h1>
    27     27   
    28     28           <h3>Analyser du texte</h3>
    29         -        <p>[adresse_serveur]:8080/gc_text/fr (POST)</p>
           29  +        <p>[adresse_serveur]:{SERVER_PORT}/gc_text/fr (POST)</p>
    30     30           <p>Paramètres :</p>
    31     31           <ul>
    32     32               <li>"text" (text)&nbsp;: texte à analyser.</li>
    33     33               <li>"tf" (checkbox)&nbsp;: passer le formateur de texte avant l’analyse.</li>
    34     34               <li>"options" (text)&nbsp;: une chaîne au format JSON avec le nom des options comme attributs et un booléen comme valeur. Exemple&nbsp;: {"gv": true, "html": true}</li>
    35     35           </ul>
    36     36   
    37     37           <h3>Lister les options</h3>
    38         -        <p>[adresse_serveur]:8080/get_options/fr (GET)</p>
           38  +        <p>[adresse_serveur]:{SERVER_PORT}/get_options/fr (GET)</p>
    39     39   
    40     40           <h3>Définir ses options</h3>
    41         -        <p>[adresse_serveur]:8080/set_options/fr (POST)</p>
           41  +        <p>[adresse_serveur]:{SERVER_PORT}/set_options/fr (POST)</p>
    42     42           <p>Les options seront enregistrées et réutilisées pour toute requête envoyée avec le cookie comportant l’identifiant attribué.</p>
    43     43           <p>Paramètres :</p>
    44     44           <ul>
    45     45               <li>"options" (text)&nbsp;: une chaîne au format JSON avec le nom des options comme attributs et un booléen comme valeur. Exemple&nbsp;: {"gv": true, "html": true}</li>
    46     46           </ul>
    47     47   
    48     48           <h3>Remise à zéro de ses options</h3>
    49         -        <p>[adresse_serveur]:8080/reset_options/fr (POST)</p>
           49  +        <p>[adresse_serveur]:{SERVER_PORT}/reset_options/fr (POST)</p>
    50     50   
    51     51           <h2>TEST</h2>
    52     52   
    53     53           <h3>Analyse</h3>
    54     54           <form method="post" action="/gc_text/fr" accept-charset="UTF-8">
    55     55               <p>Texte à analyser :</p>
    56     56               <textarea name="text" cols="120" rows="20" required></textarea>
................................................................................
   204    204   userGenerator = genUserId()
   205    205   
   206    206   
   207    207   def main (sHost="localhost", nPort=8080, dOptions=None, bTestPage=False):
   208    208       # start server
   209    209       global dGCOptions
   210    210       global TESTPAGE
          211  +    global HOMEPAGE
   211    212   
   212    213       if bTestPage:
   213    214           TESTPAGE = True
          215  +        HOMEPAGE = HOMEPAGE.replace("{SERVER_PORT}", str(nPort))
   214    216       if dOptions:
   215    217           oGrammarChecker.gce.setOptions(dOptions)
   216    218           dGCOptions = gce.getOptions()
   217    219   
   218    220       print("Python: " + sys.version)
   219    221       echo("Grammalecte v{}".format(gce.version))
   220    222       echo("Grammar options:\n" + " | ".join([ k + ": " + str(v)  for k, v in sorted(dGCOptions.items()) ]))
   221    223       run(app, host=sHost, port=nPort)
   222         -
   223    224   
   224    225   
   225    226   if __name__ == '__main__':
   226    227       xParser = argparse.ArgumentParser()
   227    228       #xParser.add_argument("lang", type=str, nargs='+', help="lang project to generate (name of folder in /lang)")
   228    229       xParser.add_argument("-ht", "--host", help="host (default: localhost)", type=str)
   229    230       xParser.add_argument("-p", "--port", help="port (default: 8080)", type=int)

Changes to graphspell-js/tokenizer.js.

    20     20               [/^(?:https?:\/\/|www[.]|[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st_-]+[@.][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st_-]{2,}[@.])[a-zA-Z0-9][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st_.\/?&!%=+*"'@$#-]+/, 'LINK'],
    21     21               [/^[#@][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st_-]+/, 'TAG'],
    22     22               [/^<[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st]+.*?>|<\/[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st]+ *>/, 'HTML'],
    23     23               [/^\[\/?[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st]+\]/, 'PSEUDOHTML'],
    24     24               [/^&\w+;(?:\w+;|)/, 'HTMLENTITY'],
    25     25               [/^\d\d?h\d\d\b/, 'HOUR'],
    26     26               [/^\d+(?:[.,]\d+|)/, 'NUM'],
    27         -            [/^[%‰+=*/<>⩾⩽-]/, 'SIGN'],
           27  +            [/^[%‰€$+=*/<>⩾⩽#-]/, 'SIGN'],
    28     28               [/^[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-stᴀ-ᶿ_]+(?:[’'`-][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-stᴀ-ᶿ_]+)*/, 'WORD']
    29     29           ],
    30     30       "fr":
    31     31           [
    32     32               [/^[   \t]+/, 'SPACE'],
    33     33               [/^\/(?:~|bin|boot|dev|etc|home|lib|mnt|opt|root|sbin|tmp|usr|var|Bureau|Documents|Images|Musique|Public|Téléchargements|Vidéos)(?:\/[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st_.()-]+)*/, 'FOLDERUNIX'],
    34     34               [/^[a-zA-Z]:\\(?:Program Files(?: \(x86\)|)|[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st.()]+)(?:\\[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st_.()-]+)*/, 'FOLDERWIN'],
................................................................................
    39     39               [/^<[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st]+.*?>|<\/[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st]+ *>/, 'HTML'],
    40     40               [/^\[\/?[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-st]+\]/, 'PSEUDOHTML'],
    41     41               [/^&\w+;(?:\w+;|)/, 'HTMLENTITY'],
    42     42               [/^(?:l|d|n|m|t|s|j|c|ç|lorsqu|puisqu|jusqu|quoiqu|qu)['’`]/i, 'WORD_ELIDED'],
    43     43               [/^\d\d?[hm]\d\d\b/, 'HOUR'],
    44     44               [/^\d+(?:ers?\b|nds?\b|es?\b|des?\b|ièmes?\b|èmes?\b|emes?\b|ᵉʳˢ?|ⁿᵈˢ?|ᵉˢ?|ᵈᵉˢ?)/, 'WORD_ORDINAL'],
    45     45               [/^\d+(?:[.,]\d+|)/, 'NUM'],
    46         -            [/^[%‰+=*/<>⩾⩽-]/, 'SIGN'],
           46  +            [/^[%‰€$+=*/<>⩾⩽#-]/, 'SIGN'],
    47     47               [/^[a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-stᴀ-ᶿᵉʳˢⁿᵈ_]+(?:[’'`-][a-zA-Zà-öÀ-Ö0-9ø-ÿØ-ßĀ-ʯfi-stᴀ-ᶿᵉʳˢⁿᵈ_]+)*/, 'WORD']
    48     48           ]
    49     49   };
    50     50   
    51     51   
    52     52   class Tokenizer {
    53     53   

Changes to graphspell/tokenizer.py.

    14     14               r'(?P<WORD_ACRONYM>[A-Z][.][A-Z][.](?:[A-Z][.])*)',
    15     15               r'(?P<LINK>(?:https?://|www[.]|\w+[@.]\w\w+[@.])\w[\w./?&!%=+*"\'@$#-]+)',
    16     16               r'(?P<HASHTAG>[#@][\w-]+)',
    17     17               r'(?P<HTML><\w+.*?>|</\w+ *>)',
    18     18               r'(?P<PSEUDOHTML>\[/?\w+\])',
    19     19               r'(?P<HOUR>\d\d?h\d\d\b)',
    20     20               r'(?P<NUM>\d+(?:[.,]\d+))',
    21         -            r'(?P<SIGN>[%‰+=*/<>⩾⩽-])',
           21  +            r'(?P<SIGN>[%‰€$+=*/<>⩾⩽#-])',
    22     22               r"(?P<WORD>\w+(?:[’'`-]\w+)*)"
    23     23           ),
    24     24       "fr":
    25     25           (
    26     26               r'(?P<FOLDERUNIX>/(?:bin|boot|dev|etc|home|lib|mnt|opt|root|sbin|tmp|usr|var|Bureau|Documents|Images|Musique|Public|Téléchargements|Vidéos)(?:/[\w.()-]+)*)',
    27     27               r'(?P<FOLDERWIN>[a-zA-Z]:\\(?:Program Files(?: [(]x86[)]|)|[\w.()]+)(?:\\[\w.()-]+)*)',
    28     28               r'(?P<PUNC>[][,.;:!?…«»“”‘’"(){}·–—])',
................................................................................
    31     31               r'(?P<HASHTAG>[#@][\w-]+)',
    32     32               r'(?P<HTML><\w+.*?>|</\w+ *>)',
    33     33               r'(?P<PSEUDOHTML>\[/?\w+\])',
    34     34               r"(?P<WORD_ELIDED>(?:l|d|n|m|t|s|j|c|ç|lorsqu|puisqu|jusqu|quoiqu|qu)['’`])",
    35     35               r'(?P<WORD_ORDINAL>\d+(?:ers?|nds?|es?|des?|ièmes?|èmes?|emes?|ᵉʳˢ?|ⁿᵈˢ?|ᵉˢ?|ᵈᵉˢ?)\b)',
    36     36               r'(?P<HOUR>\d\d?h\d\d\b)',
    37     37               r'(?P<NUM>\d+(?:[.,]\d+|))',
    38         -            r'(?P<SIGN>[%‰+=*/<>⩾⩽-])',
           38  +            r'(?P<SIGN>[%‰€$+=*/<>⩾⩽#-])',
    39     39               r"(?P<WORD>\w+(?:[’'`-]\w+)*)"
    40     40           )
    41     41   }
    42     42   
    43     43   
    44     44   class Tokenizer:
    45     45       "Tokenizer: transforms a text in a list of tokens"

Changes to make.py.

   478    478                           os.system(r'web-ext lint -o text')
   479    479                       if xArgs.firefox:
   480    480                           # Firefox Developper edition
   481    481                           spfFirefox = dVars['win_fx_dev_path']  if platform.system() == "Windows"  else dVars['linux_fx_dev_path']
   482    482                       else:
   483    483                           # Firefox Nightly edition
   484    484                           spfFirefox = dVars['win_fx_nightly_path']  if platform.system() == "Windows"  else dVars['linux_fx_nightly_path']
   485         -                    os.system(r'web-ext run --firefox="' + spfFirefox + '" --browser-console --firefox-profile=debug')
          485  +                    os.system(r'web-ext run --firefox="' + spfFirefox + '" --browser-console')
   486    486                       # https://github.com/mozilla/web-ext/issues/932
   487    487                       # os.system(r'web-ext run --firefox="' + spfFirefox + r'" --browser-console --firefox-profile=C:\Users\EAK\AppData\Roaming\Mozilla\Firefox\Profiles\e26559tw.debug --keep-profile-changes')
   488    488   
   489    489               # Thunderbird
   490    490               if xArgs.thunderbird:
   491    491                   spfThunderbird = '"'+dVars['win_tb_path']+'"'  if platform.system() == "Windows"  else dVars['linux_tb_path']
   492    492                   print(spfThunderbird)