Grammalecte  Diff

Differences From Artifact [219aaa9e21]:

To Artifact [e8bca568ac]:


1
2
3
4
5
6
7
8
9
10
11
12
#
#   RÈGLES DE GRAMMAIRE FRANÇAISE POUR GRAMMALECTE
#   par Olivier R.
#
#   Copyright © 2011-2018.
#
#   This file is part of Grammalecte.
#
#   Grammalecte is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.




|







1
2
3
4
5
6
7
8
9
10
11
12
#
#   RÈGLES DE GRAMMAIRE FRANÇAISE POUR GRAMMALECTE
#   par Olivier R.
#
#   Copyright © 2011-2019.
#
#   This file is part of Grammalecte.
#
#   Grammalecte is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
370
371
372
373
374
375
376






















377
378
379
380
381
382
383

# Espaces insécables multiples
__<s>/esp(esp_insécables_multiples)__   "[  ][  ]+" <<- ->> " | "                                   # Espace(s) insécable(s) surnuméraire(s) à supprimer.

TEST: «{{  }}Je suis partie. »
TEST: « Je suis partie.{{  }}»
























# Espaces et crochets et parenthèses
__<s>/typo(typo_espace_après_signe_ouvrant)__    "([\[(]) "  @@0 <<- ->> \1                         # Pas d’espace après ce signe.
__<s>/typo(typo_espace_avant_signe_fermant)__    " ([\])])"  <js> ([\]\)])</js>  @@1  <<- ->> \1    # Pas d’espace avant ce signe.

TEST: c’est pas trop tôt {{( }}on a failli attendre).
TEST: blabla … {{[ }}crochets]                                            ->> [







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405

# Espaces insécables multiples
__<s>/esp(esp_insécables_multiples)__   "[  ][  ]+" <<- ->> " | "                                   # Espace(s) insécable(s) surnuméraire(s) à supprimer.

TEST: «{{  }}Je suis partie. »
TEST: « Je suis partie.{{  }}»


# Espace avant ou après tiret
__[i]/esp(esp_avant_après_tiret)__
    ({w_1})( [-–—]|[-–—] )({w_1})  @@0,**,$
        <<- not \1.endswith("-t") and \3 != "t" >>>
        <<- (\3 == "je" and morph(\1, ":1s"))
            or (\3 == "tu" and morph(\1, ":2s"))
            or (\3 == "il" and morph(\1, ":3s"))
            or (\3 == "elle" and morph(\1, ":3s"))
            or (\3 == "on" and morph(\1, ":3s"))
            or (\3 == "nous" and morph(\1, ":1p"))
            or (\3 == "vous" and morph(\1, ":2P"))
            or (\3 == "ils" and morph(\1, ":3p"))
            or (\3 == "elles" and morph(\1, ":3p"))
        ->> \1-\3|\1 – \3|\1 — \3           # Espace superflu s’il s’agit bien d’une forme conjuguée interrogative (sinon, il manque un espace à côté du tiret).
        <<- __else__ -2>> " – | — "         # Il manque un espace à côté du tiret.

TEST: Le {{faut -il}} ?             ->> faut-il|faut – il|faut — il
TEST: qu’y {{puis -je}} ?           ->> puis-je|puis – je|puis — je
TEST: Le {{faut -il}} ?             ->> faut-il|faut – il|faut — il
TEST: qu’y {{puis -je}} ?           ->> puis-je|puis – je|puis — je


# Espaces et crochets et parenthèses
__<s>/typo(typo_espace_après_signe_ouvrant)__    "([\[(]) "  @@0 <<- ->> \1                         # Pas d’espace après ce signe.
__<s>/typo(typo_espace_avant_signe_fermant)__    " ([\])])"  <js> ([\]\)])</js>  @@1  <<- ->> \1    # Pas d’espace avant ce signe.

TEST: c’est pas trop tôt {{( }}on a failli attendre).
TEST: blabla … {{[ }}crochets]                                            ->> [
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
__<s>/typo(typo_virgule_collée_à_mot_suivant)__  "[  ],(?=\w)"  <<- ->> ", "                        # Pas d’espace avant une virgule. Un espace après.

TEST: Merde{{ ,}}ça fait chier.
TEST: Eh oui{{ ,}} c’est encore moi.


# Guillemets et espaces
__<s>/typo(typo_guillemets_fermants_perdus)__   [  ]”[  ] <<- ->> "” | “"                           # Pas d’espace avant ces guillemets ouvrants.
__<s>/typo(typo_guillemets_ouvrants_perdus)__   [  ]“[  ]  <<- ->> " “|” "                          # Pas d’espace après ces guillemets ouvrants.
__<s>/typo(typo_guillemets_perdus)__            [   ](?:"|['‘’]['‘’])[   ]  <<- ->> " « | » | “|” " # Guillemets isolés.
__<s>/typo(typo_commencement_guillemets)__      ^(?:"|['‘’]['‘’])[   ]  <<- ->> « |“                # Guillemets ouvrants.
__<s>/typo(typo_guillemets_fin)__           ([   ](?:"|['‘’]['‘’]))(?:$|[.,;?!])  <<- -1>> " »|”"   # Guillemets fermants.

TEST: Bon sang, c’en est trop à présent. Vos prétendues “excuses{{ ” }}ne trompent personne !
TEST: Bon sang, c’en est trop à présent. Vos prétendues{{ “ }}excuses” ne trompent personne !
TEST: Encore des guillemets{{ ‘’ }}dont on ne sait que faire.
TEST: {{" }}Ça suffit.{{ "}}
TEST: {{" }}Mangez{{ "}}, déclara-t-elle.








|



|







432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
__<s>/typo(typo_virgule_collée_à_mot_suivant)__  "[  ],(?=\w)"  <<- ->> ", "                        # Pas d’espace avant une virgule. Un espace après.

TEST: Merde{{ ,}}ça fait chier.
TEST: Eh oui{{ ,}} c’est encore moi.


# Guillemets et espaces
__<s>/typo(typo_guillemets_fermants_perdus)__   [  ]”[  ]  <<- ->> "” | “"                          # Pas d’espace avant ces guillemets ouvrants.
__<s>/typo(typo_guillemets_ouvrants_perdus)__   [  ]“[  ]  <<- ->> " “|” "                          # Pas d’espace après ces guillemets ouvrants.
__<s>/typo(typo_guillemets_perdus)__            [   ](?:"|['‘’]['‘’])[   ]  <<- ->> " « | » | “|” " # Guillemets isolés.
__<s>/typo(typo_commencement_guillemets)__      ^(?:"|['‘’]['‘’])[   ]  <<- ->> « |“                # Guillemets ouvrants.
__<s>/typo(typo_guillemets_fin)__       ([   ](?:"|['‘’]['‘’]))(?:$|[.,;?!])  @@0  <<- -1>> " »|”"  # Guillemets fermants.

TEST: Bon sang, c’en est trop à présent. Vos prétendues “excuses{{ ” }}ne trompent personne !
TEST: Bon sang, c’en est trop à présent. Vos prétendues{{ “ }}excuses” ne trompent personne !
TEST: Encore des guillemets{{ ‘’ }}dont on ne sait que faire.
TEST: {{" }}Ça suffit.{{ "}}
TEST: {{" }}Mangez{{ "}}, déclara-t-elle.

556
557
558
559
560
561
562
563
564
565
566
567
568
569
570

# parenthèses
__[s](points_suspension_entre_parenthèses)__
    \(…\)
    <<- ->> […]                 # Pour indiquer une troncature de texte, on utilise usuellement des crochets.
    <<- ~>> *
__<i>(p_préfixes_entre_parenthèses)__
    " (\(re\))\w+"  @@1
        <<- ~1>> *

TEST: par {{O.R.}}                                          ->> OR|O. R.
TEST: l’{{A.N.P.E.}} n’existe plus
TEST: ce chien […] ne {{semblez}} pas en forme.
TEST: ce chat {{(…)}} ne {{ressemblez}} pas aux autres.
TEST: les tests de la version 3.17.8 {{commence}} demain.







|







578
579
580
581
582
583
584
585
586
587
588
589
590
591
592

# parenthèses
__[s](points_suspension_entre_parenthèses)__
    \(…\)
    <<- ->> […]                 # Pour indiquer une troncature de texte, on utilise usuellement des crochets.
    <<- ~>> *
__<i>(p_préfixes_entre_parenthèses)__
    " (\(r[eé]\))\w+"  @@1
        <<- ~1>> *

TEST: par {{O.R.}}                                          ->> OR|O. R.
TEST: l’{{A.N.P.E.}} n’existe plus
TEST: ce chien […] ne {{semblez}} pas en forme.
TEST: ce chat {{(…)}} ne {{ressemblez}} pas aux autres.
TEST: les tests de la version 3.17.8 {{commence}} demain.
16205
16206
16207
16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219
16220
16221
16222
16223
16224
16225
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242
16243
16244
16245
16246
16247
16248
__da_été__
    >avoir été
        <<- =>> select(\2, ":Q")


__purge_subst_plur_comme_nom_sing__
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿         @:3p
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       [ne|n’]     [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]     @:3p
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]          @:3p
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]              @:3p
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’]¿   [lui|leur|y]                    en                           @:3p
        <<- morph(\2, ":[NA].*:[pi]") and morph(\5, ":[NA].*:[si]") ~3:5>> *


__purge_ponctuations2__
    ,   ,
    (   )
    [   ]
    {   }
    <   >
    [-|–|—]  [-|–|—]
        <<- ~>> *

    <start>  ,
        <<- ~2>> *

    ,  <end>
        <<- ~1>> *


TEST: ils vont de manière non conventionnelle {{fêtée}} leur réussite.
TEST: ils vont de manière absurde {{arrivé}} au résultat inverse à leurs espérances
TEST: les hommes comme notre protecteur étaient redoutables
TEST: tandis que d’autres perçoivent le bon goût de la soupe.
TEST: Je me doute bien que vous avez trouvé la réponse.
TEST: Nous nous doutons bien qu’il y a une entourloupe derrière cette affaire.
TEST: Notre but n’était pas de devenir célèbres.
TEST: sans qu’on ait à le lui ordonner
TEST: Les messages envoyés à toto@toto.fr seront transmis à Roger.







|

|

|

|

|



















<
<







16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242
16243
16244
16245
16246
16247
16248
16249
16250
16251
16252
16253
16254
16255
16256
16257
16258
16259
16260
16261


16262
16263
16264
16265
16266
16267
16268
__da_été__
    >avoir été
        <<- =>> select(\2, ":Q")


__purge_subst_plur_comme_nom_sing__
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿         @:3p¬:G
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       [ne|n’]     [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]     @:3p¬:G
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]          @:3p¬:G
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]              @:3p¬:G
    [les|des|ces|mes|tes|ses|nos|vos|leurs|plusieurs|quelques|certains|certaines]  *WORD
        ||  comme  [le|un|une|ce|mon|ton|son|notre|votre|leur]  *WORD                       ?[ne|n’]¿   [lui|leur|y]                    en                           @:3p¬:G
        <<- morph(\2, ":[NA].*:[pi]") and morph(\5, ":[NA].*:[si]") ~3:5>> *


__purge_ponctuations2__
    ,   ,
    (   )
    [   ]
    {   }
    <   >
    [-|–|—]  [-|–|—]
        <<- ~>> *

    <start>  ,
        <<- ~2>> *

    ,  <end>
        <<- ~1>> *




TEST: les hommes comme notre protecteur étaient redoutables
TEST: tandis que d’autres perçoivent le bon goût de la soupe.
TEST: Je me doute bien que vous avez trouvé la réponse.
TEST: Nous nous doutons bien qu’il y a une entourloupe derrière cette affaire.
TEST: Notre but n’était pas de devenir célèbres.
TEST: sans qu’on ait à le lui ordonner
TEST: Les messages envoyés à toto@toto.fr seront transmis à Roger.
19358
19359
19360
19361
19362
19363
19364


19365
19366
19367
19368
19369
19370
19371
TEST: elle préférait {{mangée}} seule.
TEST: Il venait, comme d’habitude, {{discuté}} avec son ami.
TEST: Ces types-là venaient {{mangé}} chez moi tous les dimanches.
TEST: ils viennent bien entendu {{attaqué}} le parlement
TEST: ils vont par voie de conséquence vraiment {{attaqué}} la banque
TEST: elles ont pu {{mangé}}
TEST: Cette affaire ne va rien {{arrangé}}.


TEST: Elles étaient venues armées.
TEST: Il vint déguisé en mousquetaire.
TEST: D’ailleurs j’irai armé.
TEST: J’irai armé de mon épée.
TEST: Si possible, venez accompagné.









>
>







19378
19379
19380
19381
19382
19383
19384
19385
19386
19387
19388
19389
19390
19391
19392
19393
TEST: elle préférait {{mangée}} seule.
TEST: Il venait, comme d’habitude, {{discuté}} avec son ami.
TEST: Ces types-là venaient {{mangé}} chez moi tous les dimanches.
TEST: ils viennent bien entendu {{attaqué}} le parlement
TEST: ils vont par voie de conséquence vraiment {{attaqué}} la banque
TEST: elles ont pu {{mangé}}
TEST: Cette affaire ne va rien {{arrangé}}.
TEST: ils vont de manière non conventionnelle {{fêtée}} leur réussite.
TEST: ils vont de manière absurde {{arrivé}} au résultat inverse à leurs espérances
TEST: Elles étaient venues armées.
TEST: Il vint déguisé en mousquetaire.
TEST: D’ailleurs j’irai armé.
TEST: J’irai armé de mon épée.
TEST: Si possible, venez accompagné.