Grammalecte  Check-in [86f3ad46f8]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 86f3ad46f8a638888b70895fa5b4d21834767ee203cdf9c9281ea1b9686680b9
User & Date: olr on 2020-02-19 16:33:54
Other Links: manifest | tags
Context
2020-02-29
10:03
[fr] ajustements check-in: dd45484a6e user: olr tags: fr, trunk
2020-02-19
16:33
[fr] ajustements check-in: 86f3ad46f8 user: olr tags: fr, trunk
2020-02-18
00:21
[fr] typo nombres romains (annulée), +ajustements check-in: c5e22a2cb4 user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [99f4eb211e] to [d07fc36f0c].

1
2
3
4
5
6
7
8
9
10
11
12
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34


35
36
37
38
39
40
41
42
43
44


45
46
47
48
49
50
51
....
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
....
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
....
2495
2496
2497
2498
2499
2500
2501















2502
2503
2504
2505
2506
2507
2508
.....
12977
12978
12979
12980
12981
12982
12983



12984
12985
12986
12987
12988
12989
12990
.....
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
.....
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
.....
19560
19561
19562
19563
19564
19565
19566







19567
19568
19569
19570
19571
19572
19573
.....
22281
22282
22283
22284
22285
22286
22287

22288
22289
22290
22291
22292
22293
22294
#
#   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.
................................................................................
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with Grammalecte.  If not, see <http://www.gnu.org/licenses/>
#

# RÈGLES PAR EXPRESSIONS RÉGULIÈRES

# DOCUMENTATION
# Expressions régulières en Python : http://docs.python.org/library/re.html

# [++] : séparateur des règles pour le paragraphe et des règles pour la phrase.

# Types d’action:
#   ->> erreur
#   ~>> préprocesseur de texte
#   =>> désambiguïsateur



# Groups positioning code for JavaScript:
# Always begins by @@
#   0 ... n         left boundary position from left
#   $               right boundary
#   w               word boundaries
#   *               something somewhere
#   **              something somewhere after previous group
#   >x:_            within group x, _ is group position code within group x

# Fin d’interprétation du fichier avec une ligne commençant par #END



# ERREURS COURANTES
# http://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Fautes_d%27orthographe/Courantes


!!
!!
................................................................................
## Trait d’union conditionnel
__[i]/ocr(tu_trait_union_conditionnel)__
    ({w1})‑({w1})  @@0,$
    <<- ->> \1\2|\1-\2                                                                              # Trait d’union conditionnel. Erreur de numérisation ?

TEST: __ocr__ c’est {{anti‑américain}}


## Lettres isolées
# Note: l’option “mapos” cherche les apostrophes manquantes après les lettres l, d, n, m, t, s, j, c, ç
__[s]/ocr(ocr_lettres_isolées)!2__
    \w(?!’)
    <<- not re.search("[0-9aàAÀyYdlnmtsjcçDLNMTSJCÇ_]", \0) and not before("\\d[   ]+$") and not (\0.isupper() and after0(r"^\."))
    ->> _           # Lettre isolée : erreur de numérisation ?

TEST: __ocr__ des verres luisent sur {{i}} le bureau blanc.
TEST: __ocr__ la voix, {{e}} est celle de…
TEST: __ocr__ ressemble {{h}} une fenêtre de serre.
TEST: __ocr__ Ça a duré 3 h.
TEST: __ocr__ c’est alors que je suis fort.


## Caractères rares
__<s>/ocr(ocr_caractères_rares)__
    \w*[{}<>&*#£]+\w*
    <<- \0 != "<" and \0 != ">" ->> _                                                               # Erreur de numérisation ? Cette chaîne contient un caractère de fréquence rare.

__<s>/ocr(ocr_doublons_caractères_rares)__
................................................................................

    nombre  [de|d’|des]  [@:[NA]|<end>|,]
        <<- not morph(<1, ":D") >>>
        <<- morph(<1, ":A.*:[me]:[si]") =>> add_morph(\1, [">nombre/:G:D"])
        <<- __else__ =>> define(\1, [">nombre/:G:D"])

    plein  [de|d’]  @:[AN]
        <<- not morph(<1, ">(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") =>> =define(\1, [":G"])

    source [de|d’]
        <<- morph(<1, ">(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") =>> define(\1, [":LV"])

    tout feu ?,¿ tout >flamme
        <<- ~>> ␣
        <<- =>> define(\1, [":A:e:i"])
................................................................................
## lettres isolées
__ocr_lettres_isolées__
    [n|m|t|s|j|l|c|ç|d]  *WORD
        <<- /ocr/ re.search("^[aâeéèêiîouyh]", \2) -1:.2>> \1’                                      # Lettre isolée. Erreur de numérisation ?

TEST: __ocr__ {{J }}arrive demain

















# virgules
__ocr_virgules__
    [il|le|la|l’|les|de|d’|ne|n’|me|m’|te|t’|se|s’|à|ce|cet|cette|mon|ma|ta|sa|mes|tes|ses|nos|vos|quelque|quelques|au|aux] ,
        <<- /ocr/ space_after(\1, 0, 0) and not \1.isupper() or value(\1, "|à|") ->> \1             # Erreur de numérisation ? Virgule superflue ?

TEST: __ocr__ Pierre entre pour {{se,}} rapprocher de L
................................................................................
    pour les uns    @:¬:[AQ].*:[me]:[pi]
    pour les autres @:¬:[AQ].*:[pi]
        <<- ~1:3>> *

    [le|un|ce|mon|ton|son]  putain  [de|d’]  @:[NA].*:[me]
        <<- ~2:3>> *




    tambour battant
    tambours battants
        <<- morph(<1, ":(?:V|N:f)", ":G") ~>> *

    tête baissée
        <<- morph(<1, ":[NV]", ":D.*:[fe]:[si]") ~>> *

................................................................................
    >avoir  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    >avoir  ?[pas|jamais|plus|guère|point]¿  un minimum
    >avoir  ?[pas|jamais|plus|guère|point]¿  un peu
    >avoir  ?[pas|jamais|plus|guère|point]¿  un petit peu
    >avoir  ?[pas|jamais|plus|guère|point]¿  un tout petit peu
        <<- morph(>1, ":[QY]") ~2:0>> *

    >avoir  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|soif|vent]
    >avoir  bon [dos|fond]
    >avoir  bon pied ?,¿ bon œil
    >avoir  carte blanche
    >avoir  forme [humaine|animale]
    >avoir  partie [gagnée|liée]
    >avoir  voix au chapitre
        <<- ~2:0>> ␣
        <<- =>> define(\2, [":LV"])

    >avoir  [pas|jamais|plus|guère|point]  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|soif|vent]
    >avoir  [pas|jamais|plus|guère|point]  bon [dos|fond]
    >avoir  [pas|jamais|plus|guère|point]  bon pied ?,¿ bon œil
    >avoir  [pas|jamais|plus|guère|point]  carte blanche
    >avoir  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    >avoir  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    >avoir  [pas|jamais|plus|guère|point]  quartier libre
    >avoir  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- ~3:0>> ␣
        <<- =>> define(\3, [":LV"])

    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|soif|vent]
    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  @:(?:Q|V1.*:Y)
        <<- ~2:-2>> *

    n’  >avoir  que  $:Q
        <<- ~3>> *

    n’  >avoir  que  $:W  $:Q
................................................................................
    /VCint  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    /VCint  ?[pas|jamais|plus|guère|point]¿  un minimum
    /VCint  ?[pas|jamais|plus|guère|point]¿  un peu
    /VCint  ?[pas|jamais|plus|guère|point]¿  un petit peu
    /VCint  ?[pas|jamais|plus|guère|point]¿  un tout petit peu
        <<- morphVC(\1, ":V0a") and morph(>1, ":[QY]") ~2:0>> *

    /VCint  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|soif|vent]
    /VCint  bon [dos|fond]
    /VCint  bon pied ?,¿ bon œil
    /VCint  carte blanche
    /VCint  forme [humaine|animale]
    /VCint  partie [gagnée|liée]
    /VCint  voix au chapitre
        <<- morphVC(\1, ":V0a") ~2:0>> ␣
        <<- __also__ =>> define(\2, [":LV"])

    /VCint  [pas|jamais|plus|guère|point]  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|soif|vent]
    /VCint  [pas|jamais|plus|guère|point]  bon [dos|fond]
    /VCint  [pas|jamais|plus|guère|point]  bon pied ?,¿ bon œil
    /VCint  [pas|jamais|plus|guère|point]  carte blanche
    /VCint  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    /VCint  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    /VCint  [pas|jamais|plus|guère|point]  quartier libre
    /VCint  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- morphVC(\1, ":V0a") ~3:0>> ␣
        <<- __also__ =>> define(\3, [":LV"])

    /VCint  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|soif|vent]
    /VCint  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  @:(?:Q|V1.*:Y)
        <<- morphVC(\1, ":V0a") ~2:-2>> *


__purge_après_verbe__
    $:V  ?pas¿  jour et nuit
    $:V  ?pas¿  nuit et jour
................................................................................
TEST: C’est sans {{attaqué}} la journée.
TEST: sans nous {{chassez}} de chez lui
TEST: sans {{dérogez}} aux règles en vigueur dans cet établissement
TEST: Il faut être sans préjugés.
TEST: je craignais d’être pour toujours abandonnée










!!!! Participes présents                                                                          !!

__conj_participe_présent__
    [ne|lui|me|te|se|nous|vous]  ~ants$
        <<- /infi/ morph(\2, ":A") -2>> =\2[:-1]                                        # Un participe présent est invariable.|http://fr.wiktionary.org/wiki/participe_pr%C3%A9sent

................................................................................
TEST: Notez le peu de cas qui en est fait en général dans les médias
TEST: deux fois par an, souligne le Dr Assouline
TEST: Pesons le pour et le contre.
TEST: Va la demander au concierge.
TEST: Allons le questionner encore une fois.
TEST: Sois le pire des salopards.
TEST: L’Astrance brille de mille feux, écrit le Michelin 2010.



__imp_union_en__
    *WORD  en
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:venir|aller|partir)/") and morph(>1, ":|<end>|>,", ":(?:N|A|Q|Y|M|P|H|T|D|Ov)|>(?:pour|plus|moins|mieux|peu|plupart|trop|très|une?)/") and morph(<1, ":Cc|<start>|>,")
        ->> \1-\2                                       # S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206




|







 







<
<

<








>
>










>
>







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







|







 







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







 







>
>
>







 







|









|










|







 







|









|










|







 







>
>
>
>
>
>
>







 







>







1
2
3
4
5
6
7
8
9
10
11
12
..
16
17
18
19
20
21
22


23

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
....
1465
1466
1467
1468
1469
1470
1471














1472
1473
1474
1475
1476
1477
1478
....
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
....
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
.....
12979
12980
12981
12982
12983
12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
12995
.....
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
.....
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
.....
19565
19566
19567
19568
19569
19570
19571
19572
19573
19574
19575
19576
19577
19578
19579
19580
19581
19582
19583
19584
19585
.....
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303
22304
22305
22306
22307
#
#   RÈGLES DE GRAMMAIRE FRANÇAISE POUR GRAMMALECTE
#   par Olivier R.
#
#   Copyright © 2011-2020.
#
#   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.
................................................................................
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with Grammalecte.  If not, see <http://www.gnu.org/licenses/>
#



# DOCUMENTATION


# [++] : séparateur des règles pour le paragraphe et des règles pour la phrase.

# Types d’action:
#   ->> erreur
#   ~>> préprocesseur de texte
#   =>> désambiguïsateur

# RÈGLES PAR EXPRESSIONS RÉGULIÈRES
# Expressions régulières en Python : http://docs.python.org/library/re.html
# Groups positioning code for JavaScript:
# Always begins by @@
#   0 ... n         left boundary position from left
#   $               right boundary
#   w               word boundaries
#   *               something somewhere
#   **              something somewhere after previous group
#   >x:_            within group x, _ is group position code within group x

# Fin d’interprétation du fichier avec une ligne commençant par #END



# ERREURS COURANTES
# http://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Fautes_d%27orthographe/Courantes


!!
!!
................................................................................
## Trait d’union conditionnel
__[i]/ocr(tu_trait_union_conditionnel)__
    ({w1})‑({w1})  @@0,$
    <<- ->> \1\2|\1-\2                                                                              # Trait d’union conditionnel. Erreur de numérisation ?

TEST: __ocr__ c’est {{anti‑américain}}
















## Caractères rares
__<s>/ocr(ocr_caractères_rares)__
    \w*[{}<>&*#£]+\w*
    <<- \0 != "<" and \0 != ">" ->> _                                                               # Erreur de numérisation ? Cette chaîne contient un caractère de fréquence rare.

__<s>/ocr(ocr_doublons_caractères_rares)__
................................................................................

    nombre  [de|d’|des]  [@:[NA]|<end>|,]
        <<- not morph(<1, ":D") >>>
        <<- morph(<1, ":A.*:[me]:[si]") =>> add_morph(\1, [">nombre/:G:D"])
        <<- __else__ =>> define(\1, [">nombre/:G:D"])

    plein  [de|d’]  @:[AN]
        <<- not morph(<1, ":D.*:m|>(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") =>> =define(\1, [":G"])

    source [de|d’]
        <<- morph(<1, ">(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") =>> define(\1, [":LV"])

    tout feu ?,¿ tout >flamme
        <<- ~>> ␣
        <<- =>> define(\1, [":A:e:i"])
................................................................................
## lettres isolées
__ocr_lettres_isolées__
    [n|m|t|s|j|l|c|ç|d]  *WORD
        <<- /ocr/ re.search("^[aâeéèêiîouyh]", \2) -1:.2>> \1’                                      # Lettre isolée. Erreur de numérisation ?

TEST: __ocr__ {{J }}arrive demain


# Note: l’option “mapos” cherche les apostrophes manquantes après les lettres l, d, n, m, t, s, j, c, ç
__ocr_lettres_isolées2!2__
    [á|â|ä|b|c|ç|d|e|é|è|ê|ë|f|g|h|i|í|ì|î|ï|j|k|l|m|n|o|ó|ò|ô|ö|p|q|r|s|t|u|ú|ù|û|ü|v|w|x|z]
    <<- not before("\\d[   ]+$") and not (\1.isupper() and value(>1, "|.|<end>|"))
    ->> _           # Lettre isolée : erreur de numérisation ?

TEST: __ocr__ des verres luisent sur {{i}} le bureau blanc.
TEST: __ocr__ la voix, {{e}} est celle de…
TEST: __ocr__ ressemble {{h}} une fenêtre de serre.
TEST: __ocr__ Ça a duré 3 h.
TEST: __ocr__ c’est alors que je suis fort.
TEST: __ocr__ X
TEST: __ocr__ V.


# virgules
__ocr_virgules__
    [il|le|la|l’|les|de|d’|ne|n’|me|m’|te|t’|se|s’|à|ce|cet|cette|mon|ma|ta|sa|mes|tes|ses|nos|vos|quelque|quelques|au|aux] ,
        <<- /ocr/ space_after(\1, 0, 0) and not \1.isupper() or value(\1, "|à|") ->> \1             # Erreur de numérisation ? Virgule superflue ?

TEST: __ocr__ Pierre entre pour {{se,}} rapprocher de L
................................................................................
    pour les uns    @:¬:[AQ].*:[me]:[pi]
    pour les autres @:¬:[AQ].*:[pi]
        <<- ~1:3>> *

    [le|un|ce|mon|ton|son]  putain  [de|d’]  @:[NA].*:[me]
        <<- ~2:3>> *

    quand  même  @:[AW]¬:D
        <<- ~1:2>> *

    tambour battant
    tambours battants
        <<- morph(<1, ":(?:V|N:f)", ":G") ~>> *

    tête baissée
        <<- morph(<1, ":[NV]", ":D.*:[fe]:[si]") ~>> *

................................................................................
    >avoir  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    >avoir  ?[pas|jamais|plus|guère|point]¿  un minimum
    >avoir  ?[pas|jamais|plus|guère|point]¿  un peu
    >avoir  ?[pas|jamais|plus|guère|point]¿  un petit peu
    >avoir  ?[pas|jamais|plus|guère|point]¿  un tout petit peu
        <<- morph(>1, ":[QY]") ~2:0>> *

    >avoir  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    >avoir  bon [dos|fond]
    >avoir  bon pied ?,¿ bon œil
    >avoir  carte blanche
    >avoir  forme [humaine|animale]
    >avoir  partie [gagnée|liée]
    >avoir  voix au chapitre
        <<- ~2:0>> ␣
        <<- =>> define(\2, [":LV"])

    >avoir  [pas|jamais|plus|guère|point]  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    >avoir  [pas|jamais|plus|guère|point]  bon [dos|fond]
    >avoir  [pas|jamais|plus|guère|point]  bon pied ?,¿ bon œil
    >avoir  [pas|jamais|plus|guère|point]  carte blanche
    >avoir  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    >avoir  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    >avoir  [pas|jamais|plus|guère|point]  quartier libre
    >avoir  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- ~3:0>> ␣
        <<- =>> define(\3, [":LV"])

    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  @:(?:Q|V1.*:Y)
        <<- ~2:-2>> *

    n’  >avoir  que  $:Q
        <<- ~3>> *

    n’  >avoir  que  $:W  $:Q
................................................................................
    /VCint  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    /VCint  ?[pas|jamais|plus|guère|point]¿  un minimum
    /VCint  ?[pas|jamais|plus|guère|point]¿  un peu
    /VCint  ?[pas|jamais|plus|guère|point]¿  un petit peu
    /VCint  ?[pas|jamais|plus|guère|point]¿  un tout petit peu
        <<- morphVC(\1, ":V0a") and morph(>1, ":[QY]") ~2:0>> *

    /VCint  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    /VCint  bon [dos|fond]
    /VCint  bon pied ?,¿ bon œil
    /VCint  carte blanche
    /VCint  forme [humaine|animale]
    /VCint  partie [gagnée|liée]
    /VCint  voix au chapitre
        <<- morphVC(\1, ":V0a") ~2:0>> ␣
        <<- __also__ =>> define(\2, [":LV"])

    /VCint  [pas|jamais|plus|guère|point]  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    /VCint  [pas|jamais|plus|guère|point]  bon [dos|fond]
    /VCint  [pas|jamais|plus|guère|point]  bon pied ?,¿ bon œil
    /VCint  [pas|jamais|plus|guère|point]  carte blanche
    /VCint  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    /VCint  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    /VCint  [pas|jamais|plus|guère|point]  quartier libre
    /VCint  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- morphVC(\1, ":V0a") ~3:0>> ␣
        <<- __also__ =>> define(\3, [":LV"])

    /VCint  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    /VCint  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B  @:(?:Q|V1.*:Y)
        <<- morphVC(\1, ":V0a") ~2:-2>> *


__purge_après_verbe__
    $:V  ?pas¿  jour et nuit
    $:V  ?pas¿  nuit et jour
................................................................................
TEST: C’est sans {{attaqué}} la journée.
TEST: sans nous {{chassez}} de chez lui
TEST: sans {{dérogez}} aux règles en vigueur dans cet établissement
TEST: Il faut être sans préjugés.
TEST: je craignais d’être pour toujours abandonnée


__infi_locutions__
    >sentir le vent tourné
        <<- /infi/ --1>> tourner                                                                    # Locution “sentir le vent tourner ”. Utilisez l’infinitif.

TEST: j’ai senti le vent {{tourné}}
TEST: elles sentent le vent tourner en leur faveur.


!!!! Participes présents                                                                          !!

__conj_participe_présent__
    [ne|lui|me|te|se|nous|vous]  ~ants$
        <<- /infi/ morph(\2, ":A") -2>> =\2[:-1]                                        # Un participe présent est invariable.|http://fr.wiktionary.org/wiki/participe_pr%C3%A9sent

................................................................................
TEST: Notez le peu de cas qui en est fait en général dans les médias
TEST: deux fois par an, souligne le Dr Assouline
TEST: Pesons le pour et le contre.
TEST: Va la demander au concierge.
TEST: Allons le questionner encore une fois.
TEST: Sois le pire des salopards.
TEST: L’Astrance brille de mille feux, écrit le Michelin 2010.
TEST: Faites le plein de culture en vous abonnant dès 1 € !


__imp_union_en__
    *WORD  en
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":E", ":[GM]|>(?:venir|aller|partir)/") and morph(>1, ":|<end>|>,", ":(?:N|A|Q|Y|M|P|H|T|D|Ov)|>(?:pour|plus|moins|mieux|peu|plupart|trop|très|une?)/") and morph(<1, ":Cc|<start>|>,")
        ->> \1-\2                                       # S’il s’agit d’un impératif, mettez un trait d’union.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4206