Grammalecte  Check-in [95247d8211]

Overview
Comment:[fr] conversion: regex rules -> graph rules
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fr | rg
Files: files | file ages | folders
SHA3-256: 95247d821142e9e1aec5bdf670e7c1b574089c8543579c5126394b4feb26a657
User & Date: olr on 2018-08-17 21:43:09
Other Links: branch diff | manifest | tags
Context
2018-08-17
21:43
[build] graph builder: small update check-in: ab72f24c4f user: olr tags: build, rg
21:43
[fr] conversion: regex rules -> graph rules check-in: 95247d8211 user: olr tags: fr, rg
2018-08-15
09:22
[core] debugging mode clarity check-in: 89a4f01579 user: olr tags: core, rg
Changes

Modified gc_lang/fr/rules.grx from [e2c34859ab] to [8e95b7202f].

2692
2693
2694
2695
2696
2697
2698
2699

2700
2701
2702
2703
2704
2705
2706
2692
2693
2694
2695
2696
2697
2698

2699
2700
2701
2702
2703
2704
2705
2706







-
+







TEST: {{lundi}}, 18 août 1912                                             ->> dimanche
TEST: {{jeudi}} 17 aout 1912                                              ->> samedi
TEST: lundi, 18 août 1912 avant Jésus-Christ (date imaginaire)


!!
!!
!!!! Formes interrogatives ?                                                                      !!
!!!! Traits d’union manquants (formes interrogatives)                                             !!
!!
!!

__inte_union_je__
    ~.[éèe]$  je
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:1[sŝś]", ":[GNW]") and not value(<1, "|je|j’|il|elle|") and morph(>1, ":|<end>|,", ":(?:Oo|X|1s)")
        ->> =\1[:-1]+"é-je"                                                                         # Forme interrogative ? Mettez un trait d’union.
2753
2754
2755
2756
2757
2758
2759

2760
2761
2762
2763
2764
2765
2766
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767







+







TEST: {{retrouverons nous}} enfin la tranquilité ?
TEST: Mais {{soutiendrez vous}} cette proposition ?
TEST: {{Viendront ils}} demain ?
TEST: comment {{êtes vous}} arrivées là ?
TEST: je ne comprenais pas pourquoi c’était elle qui était punie et que personne ne parlait de celui qui avait fait ça.
TEST: Veuillez vous instruire avant de contester ces mesures.
TEST: C’était elle qui avait pris le contrôle.



!!
!!
!!!! Traits d’union                                                                               !!
!!
!!
4917
4918
4919
4920
4921
4922
4923

4924
4925
4926
4927
4928
4929
4930
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932







+







    a ce [compte-là|moment-là|titre]
    a cet égard
    a cet instant précis
    a cette époque
    a cette époque de l’année
    a cette heure de la [journée|nuit]
    a chaque [fois|instant]
    a charge de revanche
    a chaudes larmes
    a cœur [joie|ouvert|perdu]
    a ciel ouvert
    a corps perdu
    a couper le souffle
    a court terme
    a courte [échéance|portée]
7615
7616
7617
7618
7619
7620
7621

7622
7623
7624
7625
7626
7627
7628
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631







+







    à cette époque
    à cette époque de l’ année
    à cette heure
    à cette heure du jour
    à cette heure de la [journée|nuit]
    à cette heure [tardive|matinale]
    à ciel ouvert
    à charge de revanche
    à chaque [fois|instant]
    à chaudes larmes
    à cœur [joie|ouvert|perdu]
    à corps perdu
    à côté  [de|d’]  [ça|moi|toi|lui|nous|vous|elle|elles|eux]
    à couilles rabattues
    à coup sûr
12666
12667
12668
12669
12670
12671
12672

12673
12674
12675
12676
12677
12678
12679
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683







+







TEST: elle était capable de la {{trouvait}} où qu’elle soit.
TEST: de me le {{facturez}}
TEST: Il s’agit de me {{donnait}} tout ça.
TEST: j’étais incapable de m’{{orientait}} dans la bonne direction.
TEST: ils étaient susceptibles de m’y {{trouvaient}}
TEST: Il tentait de {{raisonné}} en homme libre
TEST: sa façon de {{nettoyez}} était inefficace.
TEST: elle a délibérément omis de les {{inclurent}}.
TEST: elle s’engage de ne les lui donner qu’en dernier recours.
TEST: l’idée consiste de la lui donner sans contrepartie et voir ce qu’il en fera.
TEST: de leur plus grand fils, ils attendent beaucoup.


__infi_y_verbe!3__
    y ~ée?s?$
13996
13997
13998
13999
14000
14001
14002
14003
14004





14005
14006
14007
14008
14009
14010
14011
14000
14001
14002
14003
14004
14005
14006


14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018







-
-
+
+
+
+
+







        <<- /ppas/ morphVC(\1, ":V0e") -2>> =suggSing(\2)               # Accord avec le sujet “tu” : “\2” devrait être au singulier.

__ppas_inversion_être_il__
    /-il  @:(?:[123][sp]|Y|[NA].*:[pf])¬:(?:G|W|[me]:[si])|question/
        <<- /ppas/ morphVC(\1, ":V0e") -2>> =suggMasSing(\2)            # Accord avec le sujet “il” : “\2” devrait être au masculin singulier.

__ppas_inversion_être_ce__
    /-ce  @:(?:[123][sp]|[NA].*:[pf])¬:(?:G|W|Y|[me]:[si])
        <<- /ppas/ morphVC(\1, ":V0e") -2>> =suggMasSing(\2)            # Accord avec le sujet “ce” : “\2” devrait être au masculin singulier.
    /-ce  *WORD
        <<- /ppas/ morphVC(\1, ":V0e.*:3s") and morph(\2, "@:(?:[123][sp]|A.*:[pf])", ":(?:G|W|Y|[me]:[si])")
        -2>> =suggMasSing(\2)                                           # Accord avec le sujet “\1” : “\2” devrait être au masculin singulier.
        <<- /ppas/ __else__ and morphVC(\1, ":V0e.*:3p") and morph(\2, "@:(?:[123][sp]|A.*:[sf])", ":(?:G|W|Y|[me]:[pi])")
        -2>> =suggMasPlur(\2)                                           # Accord avec le sujet “\1” : “\2” devrait être au masculin pluriel.

__ppas_inversion_être_elle__
    /-elle  @:(?:[123][sp]|Y|[NA].*:[pm])¬:(?:G|W|[fe]:[si])
        <<- /ppas/ morphVC(\1, ":V0e") -2>> =suggFemSing(\2)            # Accord avec le sujet “elle” : “\2” devrait être au féminin singulier.

__ppas_inversion_être_il__
    /-on  @:(?:[123][sp]|Y)¬:(?:G|W)
14508
14509
14510
14511
14512
14513
14514




























































































































































































































































































































14515
14516
14517
14518
14519
14520
14521
14515
14516
14517
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532
14533
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
14549
14550
14551
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
14842
14843
14844







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







TEST: l’a-t-il {{finis}} ?
TEST: m’as-tu {{entendus}} ?
TEST: N’avais-tu pas crainte de tout perdre ?
TEST: Combien de bêtes n’as-tu pas déjà massacrées
TEST: Combien de bêtes as-tu déjà massacrées


!!
!!
!!!! Impératif !                                                                                  !!
!!
!!

# Confusions
__imp_confusion_2e_pers_pluriel__
    [<start>|,]  *WORD  moi
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:3s)")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-moi"                                             # Confusion probable. Pour l’impératif, écrivez :

    [<start>|,]  *WORD  [les|la|leur]  *WORD
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:3s)") and morph(\4, ":[OR]", ":[NA]")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           # Confusion probable. Pour l’impératif, écrivez :

    [<start>|,]  *WORD  [les|la|lui|nous|vous|leur]  [<end>|,]
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:3s)")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           # Confusion probable. Pour l’impératif, écrivez :

TEST: {{Donner moi}} une chance                         ->> Donnez-moi
TEST: je vous en prie, {{prenais moi}} avec vous.       ->> prenez-moi
TEST: {{avançait moi}} de l’argent                      ->> avancez-moi
TEST: {{filé moi}} du fric, bon sang !                  ->> filez-moi
TEST: {{Données lui}} ça.                               ->> Donnez-lui
TEST: {{Enseignait nous}}.                              ->> Enseignez-nous


# être
__imp_sois__
    <start>  [ne|n’]  ?[le|l’|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  soit
    <start>  [ne|n’]  [me|m’|te|t’|nous|vous]  [le|l’|en|y]          soit
    <start>  [ne|n’]  [le|l’]                  [lui|leur|en|y]       soit
    <start>  [ne|n’]  [lui|leur]               en                    soit
        <<- /imp/ --1>> sois                                                        # S’il s’agit d’un impératif, écrivez “sois”.

    <start>  soit  @:A¬:G
        <<- /imp/ not after(r"\bsoit\b") -2>> sois                                  # S’il s’agit d’un impératif, écrivez “sois”.

TEST: ne lui {{soit}} pas odieux.
TEST: {{Soit}} cohérent avec toi-même.
TEST: Ne {{soit}} pas con.
TEST: ne leur en {{soit}} pas reconnaissant, ce n’était qu’un calcul de leur part.
TEST: Ne {{soit}} pas en retard !


# avoir
__imp_aie__
    <start>  [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  [ai|ait|aies]
    <start>  [ne|n’]  [me|m’|te|t’|nous|vous]  [le|la|l’|les|en|y]          [ai|ait|aies]
    <start>  [ne|n’]  [le|la|l’|les]           [lui|leur|en|y]              [ai|ait|aies]
    <start>  [ne|n’]  [lui|leur]               en                           [ai|ait|aies]
    <start>  [ai|ait|aies]
        <<- /imp/ --1>> aie                                                         # S’il s’agit d’un impératif, écrivez “aie”.

TEST: {{Ait}} la foi !
TEST: n’{{ait}} pas peur de ces gens-là.


# aller
__imp_aller__
    <start>  [allé|allés|>allée]  ,
        <<- /imp/ -2>> allez                                                        # S’il s’agit d’un impératif, écrivez “allez”.

    <start>  [allé|allés]
        <<- /imp/ -2>> allez                                                        # S’il s’agit d’un impératif, écrivez “allez”.

    <start>  >allée  *WORD
        <<- /imp/ morph(\3, ":[MYO]", ":A|>et/") -2>> allez                         # S’il s’agit d’un impératif, écrivez “allez”.

TEST: {{Allés}}, on y va !
TEST: — {{Allé}} prendre une cuite.
TEST: Allées et venues
TEST: Allées pavées et bordées de fleurs innombrables.
TEST: Allées qu’on nettoyait tous les jours.


    <start>  [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  vas
    <start>  [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]          vas
    <start>  [ne|n’]  [le|la|l’|les]                 [lui|leur|en|y]              vas
    <start>  [ne|n’]  [lui|leur]                     en                           vas
    <start>  vas
        <<- /imp/ not value(>1, "|tu|") --1>> va                                   # S’il s’agit d’un impératif, pas de “s”.

TEST: {{Vas}} lui mettre une branlée.
TEST: {{Vas}} au diable !
TEST: N’y {{vas}} pas

# <start>  [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿
# <start>  [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]
# <start>  [ne|n’]  [le|la|l’|les]                 [lui|leur|en|y]
# <start>  [ne|n’]  [lui|leur]                     en


# verbes du 1er et du 3ᵉ groupe en -e
__imp_verbe_groupe1__
    <start>  [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~\w\w+es$
    <start>  [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]          ~\w\w+es$
    <start>  [ne|n’]  [le|la|l’|les]                 [lui|leur|en|y]              ~\w\w+es$
    <start>  [ne|n’]  [lui|leur]                     en                           ~\w\w+es$
    <start>  ~\w\w+es$
        <<- /imp/ morph(\-1, ":V[13].*:Ip.*:2s", ":[GNAM]") and not value(>1, "|tu|")
        --1>> =\-1[:-1]                                                             # S’il s’agit d’un impératif, pas de “s”.

TEST: {{Apportes}} ton fric à cet homme.
TEST: N’{{abandonnes}} pas si vite.
TEST: Ne {{demandes}} rien, tais-toi.
TEST: — {{Abandonnes}}.
TEST: {{Écartes}} de moi cette coupe.
TEST: Ne {{donnes}} pas autant.
TEST: N’{{insistes}} pas.
TEST: Castres est une belle ville.
TEST: Limoges aussi.


# verbes du 2ᵉ et du 3ᵉ groupe en -t
__imp_verbe_groupe2_groupe3_t__
    <start>  [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~\w\w+t$
    <start>  [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]          ~\w\w+t$
    <start>  [ne|n’]  [le|la|l’|les]                 [lui|leur|en|y]              ~\w\w+t$
    <start>  [ne|n’]  [lui|leur]                     en                           ~\w\w+t$
    <start>  ~\w\w+t$
        <<- /imp/ not value(>1, "|il|elle|on|ils|elles|")
            and not (value(\-1, "|vient|dit|surgit|survient|") and (morph(>1, ":(?:[MD]|Oo)|>[A-Z]/") or value(>1, "|l’|d’|m’|t’|s’|")))
            and morph(\-1, ":V[23].*:Ip.*:3s", ":[GNA]|>(?:devoir|suffire)/") and analyseWord(\-1[:-1]+"s", ":E:2s", False)
        --1>> =\-1[:-1]+"s"                                                         # S’il s’agit d’un impératif, la terminaison est “is”, non “it”.

TEST: {{Finit}} ton assiette.                                           ->> Finis
TEST: Ne {{pourrit}} pas l’ambiance.                                    ->> pourris
TEST: Ne {{finit}} pas ce devoir.
TEST: {{Finit}} cette tarte.
TEST: Ne me {{choisit}} pas.
TEST: ne l’y {{brandit}} pas.
TEST: Ne {{vient}} que lorsque je te le dirai.                          ->> viens
TEST: Ne l’y {{contraint}} pas
TEST: {{Vient}}.
TEST: {{Sert}} le plat.                                                 ->> Sers
TEST: Suffit de s’en servir.
TEST: Et ne doit pas être rejeté dans les limbes.
TEST: Vient s’ajouter à ce contexte la perception, partagée par beaucoup, du caractère fortement menaçant de l’environnement économique et géopolitique.
TEST: À son bord vient d’embarquer un nouvel équipage


# verbes du 3ᵉ groupe en -d
__imp_verbe_groupe3_d__
    <start>  [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  ~\w\w+d$
    <start>  [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]          ~\w\w+d$
    <start>  [ne|n’]  [le|la|l’|les]                 [lui|leur|en|y]              ~\w\w+d$
    <start>  [ne|n’]  [lui|leur]                     en                           ~\w\w+d$
    <start>  ~\w\w+d$
        <<- /imp/ not value(>1, "|il|elle|on|")
            and not ( value(\-1, "|répond|") and (morph(>1, ":[MD]|>[A-Z]/") or value(>1, "|l’|d’|")) )
            and morph(\-1, ":V3.*:Ip.*:3s", ":[GNA]")
        --1>> \-1s                                                                  # S’il s’agit d’un impératif, ajoutez un “s”.

TEST: {{Prend}} le chemin de droite.
TEST: N’{{attend}} pas qu’elle vienne.                                  ->> attends
TEST: Ne me {{prend}} pas pour un idiot                                 ->> prends
TEST: Ne l’{{attend}} pas
TEST: Ne m’y {{attend}} pas
TEST: {{Attend}} la correction.
TEST: {{Répond}}.                                                       ->> Réponds
TEST: — Pour ma part, répond P., je crois que tout va bien.


!!
!!
!!!! Impératif : traits d’union manquants                                                         !!
!!
!!

__imp_union_moi__
    *WORD  moi
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, "V[123]...n:E", ":[GM]") and not morph(<1, "|de|d’|le|la|les|l’|me|te|se|nous|vous|lui|leur|")
        ->> \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

TEST: {{Apportez moi}} ce dictionnaire
TEST: Viens moi je m’ennuie.


__imp_union_toi__
    *WORD  toi
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, "V[123]...n:E:2s", ":[GM]") and not morph(<1, "|de|d’|le|la|les|l’|me|te|se|nous|vous|lui|leur|")
        ->> \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

TEST: {{Donne toi}} du temps.


__imp_union_nous_vous_lui_y__
    *WORD  [nous|vous|lui|y]
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, "V[123]...n:E", ":[GM]") and morph(>1, ":|<end>", ":(?:Y|3[sp]|Oo)|>(?:en|y)") 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

TEST: {{Donne nous}} du café.


__imp_union_les__
    *WORD  les
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, "V[123]...n:E", ":[GM]") and morph(>1, ":|<end>|>,", ":(?:N|A|Y|B|3[sp]|>(?:pour|plus|moins|mieux|peu|trop|très|en|y))") and morph(<1, ":Cc|<start>|>,")
        ->> \1-les                                      # 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

TEST: {{chante les}} avec conviction
TEST: Veut les en convaincre.
TEST: Invite les plus intelligents…
TEST: Prenez les 5 ou 6 revues les plus connues.


__imp_union_le_la_leur__
    *WORD  [le|la|leur]
        <<- /imp/ space_after(\1, 1, 1)
            and morph(\1, ":V[123]...n:E", ":[GM]") and morph(<1, ":|<end>|>,", ":(?:N|A|Q|Y|MP|H|T)|>(?: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

TEST: {{Prends le}} avec toi.
TEST: {{Dites leur}} que nous sommes là.
TEST: un sujet si extrêmement politique et polémique lui a donné un accès
TEST: Les États d’ores et déjà très affaiblis le seraient encore plus
TEST: « C’est ainsi », résume la cyptologue (erreur orthographique délibérée sur “cyptologue” pour empêcher certains faux positifs)
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.


__imp_laisser_le_la_les_infi__
    >laisser  [le|la|les]  *WORD
        <<- /imp/ space_after(\1, 1, 1) and morph(\1, ":E") and morph(\3, ":(?:Y|X|Oo)", ":[NAB]")
        -1:2>> \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

TEST: {{Laisse les}} entrer…
TEST: {{Laissez la}} venir…
TEST: Laisse les chiens tranquilles
TEST: Laissez la peste leur pourrir la vie encore quelque temps.
TEST: le coût humain de la guerre qu’il a laissé les submerger.


__imp_apostrophe_m_en__
    ~\w-m-en$
        <<- /imp/ ->> =\1[:-3]+"’en"                    # Dans cette forme verbale composée, “me” est abrégé, c’est une forme élidée. Il faut mettre une apostrophe et non un trait d’union.

    m-en
        <<- /imp/ ->> m’en                              # Ici, “me” est abrégé, c’est une forme élidée. Il faut mettre une apostrophe et non un trait d’union.

TEST: donne{{-m-en}} encore


__imp_apostrophe_t_en__
    ~\w-t-en$
        <<- /imp/ not value(>1, "|guerre|")
        ->> =\1[:-3]+"’en"                              # Dans cette forme verbale composée, “te” est abrégé, c’est une forme élidée. Il faut mettre une apostrophe et non un trait d’union.

    t-en
        <<- /imp/ not (value(<1, "|va|") and value(>1, "|guerre|"))
        ->> t’en                                        # Ici, “te” est abrégé, c’est une forme élidée. Il faut mettre une apostrophe et non un trait d’union.

TEST: accorde{{-t-en}} plus.


__imp_union_m_t_en_y__
    *WORD  [m’|t’]  [en|y]
        <<- /imp/ space_after(\1, 1, 1) and morph(\1, ":E", ":[MG]") and morph(>1, ":|<end>|>,", ":(?:Y|[123][sp])")
        ->> \1-\2\3                                     # 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

TEST: {{donne m’en}}, s’il te plaît.
TEST: Mélanie t’en donne souvent.


__imp_union_verbe_pronom_moi_toi_lui__
    [/-le|/-la|/-les]  [moi|toi]
        <<- /imp/ space_after(\1, 1, 1) and morphVC(\1, ":E")
        ->> \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

TEST: les analyses, {{donne-les moi}}
TEST: {{Donne-les lui}}.


__imp_union_verbe_pronom_nous_vous__
    [/-le|/-la|/-les]  [nous|vous|lui|leur]
        <<- /imp/ space_after(\1, 1, 1) and morphVC(\1, ":E") and morph(>1, ":[RC]|<end>|>,", ":Y")
        ->> \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

TEST: {{apporte-les nous}}


__imp_union_verbe_pronom_en_y_leur__
    [/-moi|/toi] en
        <<- /imp/ space_after(\1, 1, 1) and morphVC(\1, ":E") and morph(>1, ":[RC]|<end>|>,", ":[NAY]")
        ->> \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

    [/-lui|/-nous|/-nous|/-leur]  [en|y]
        <<- /imp/ space_after(\1, 1, 1) and morphVC(\1, ":E") and morph(>1, ":[RC]|<end>|>,", ":[NAY]")
        ->> \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

TEST: {{prends-leur en}}
TEST: {{Donnez-nous en}}.
TEST: Alors, {{parais y}} grande et lumineuse.


#__[i]/imp(imp_union_aller_y)!5__
#    (?:v(?:iens|enez|enons)|all(?:ons|ez)) y
#    <<- not morph(word(1), ":Y", False, False) ->> =\0.replace(" ", "-")                            # Il manque un trait d’union.
#__[i]/imp(imp_union_vas_y)!5__
#    vas? y
#    <<- isStart() and not morph(word(1), ":Y", False, False) ->> vas-y                              # Il manque un trait d’union.
#__[i]/imp(imp_union_convenir_en)__
#    conv(?:iens|enez|enons) en(?! partie) <<- ->> =\0.replace(" ", "-")                             # Il manque un trait d’union.

TEST: {{allons y}}
TEST: {{vas y}}
TEST: c’est une belle affaire malgré son prix élevé, {{convenez en}}…
TEST: {{Viens y}}.
TEST: Viens y faire un test.


@@@@
@@@@
@@@@
@@@@
@@@@END_GRAPH                                                                                      _
@@@@
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14887
14888
14889
14890
14891
14892
14893





















































































































































































































































14894
14895
14896
14897
14898
14899
14900







-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-








TEST: Ne rien céder.
TEST: Ne pas manger.
TEST: Ne manquer de rien.
TEST: Ne jamais miser sur ces tocards.
TEST: Ne m’en rien laisser.


# [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿
# [ne|n’]  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]
# [ne|n’]  [le|la|l’|les]                 [lui|leur|en|y]
# [ne|n’]  [lui|leur]                     en

!!
!!
!!!! Impératif !                                                                                  !!
!!
!!

# Confusions
__[i]/imp(imp_confusion_2e_pers_pluriel)__
    ({w_2}(?:er|ai[st]|ée?s?)) (moi|l(?:es?|a|eur|ui)|nous|vous)  @@0,$
    <<- morph(\1, ":V", False) and isStart() >>>
    <<- \2 == "moi" ->> =suggVerbTense(\1, ":E", ":2p") + "-moi"                                    # Confusion probable. Pour l’impératif, écrivez :
    <<- __else__ and \2.startswith("l") and morph(word(1), ":[OR]", ":N", True)
    ->> =suggVerbTense(\1, ":E", ":2p") + "-" + \2                                                  # Confusion probable. Pour l’impératif, écrivez :
    <<- __else__ and isEnd() ->> =suggVerbTense(\1, ":E", ":2p") + "-" + \2                         # Confusion probable. Pour l’impératif, écrivez :

TEST: {{Donner moi}} une chance                         ->> Donnez-moi
TEST: je vous en prie, {{prenais moi}} avec vous.       ->> prenez-moi
TEST: {{avançait moi}} de l’argent                      ->> avancez-moi
TEST: {{filé moi}} du fric, bon sang !                  ->> filez-moi
TEST: {{Données lui}} ça.                               ->> Donnez-lui
TEST: {{Enseignait nous}}.                              ->> Enseignez-nous


# verbes du 1er et du 3ᵉ groupe en -e
__[i]/imp(imp_vgroupe1)__
    ^ *(\w+es)(?![- ](?:je|tu|[nv]ous|ils?|elles?|t-ils?|t-elles?))  @@$
    <<- morphex(\1, ":V[13].*:Ip.*:2s", ":[GNAM]")
    -1>> =\1[:-1]                                                                   # S’il s’agit d’un impératif, pas de “s”.

TEST: {{Apportes}} ton fric à cet homme.
TEST: N’{{abandonnes}} pas si vite.
TEST: Ne {{demandes}} rien, tais-toi.
TEST: Castres est une belle ville.
TEST: Limoges aussi.


__<i>/imp(imp_allez1)__
    ^ *(allés?), @@* <<- -1>> allez                                         # S’il s’agit d’un impératif, écrivez :
__<i>/imp(imp_allez2)__
    ^ *(allés?) ({w_2}) @@*,$ <<- morph(\2, ":[MYOs]") -1>> allez           # S’il s’agit d’un impératif, écrivez :

TEST: {{Allés}}, on y va !
TEST: — {{Allé}} prendre une cuite.


# verbes du 2ᵉ et du 3ᵉ groupe en -t
__[i]/imp(imp_vgroupe2_vgroupe3_t)__
    ^ *(\w+t)(?![- ](?:je|tu|[nv]ous|ils?|elles?|on|t-ils?|t-elles?))  @@$
    <<- morphex(\1, ":V[23].*:Ip.*:3s", ":[GNA]|>(?:devoir|suffire)") and analyse(\1[:-1]+"s", ":E:2s", False)
        and not (re.search("(?i)^vient$", \1) and after("^ +(?:l[ea]|[sd]e |[sd]’)"))
        and not (re.search("(?i)^dit$", \1) and after("^ +[A-ZÉÈÂÎ]"))
    -1>> =\1[:-1]+"s"                                                               # S’il s’agit d’un impératif, la terminaison est “is”, non “it”.

TEST: {{Finit}} ton assiette.
TEST: Ne {{pourrit}} pas l’ambiance.
TEST: Suffit de s’en servir.
TEST: Et ne doit pas être rejeté dans les limbes.
TEST: Vient s’ajouter à ce contexte la perception, partagée par beaucoup, du caractère fortement menaçant de l’environnement économique et géopolitique.
TEST: À son bord vient d’embarquer un nouvel équipage


# verbes du 3ᵉ groupe en -d
__[i]/imp(imp_vgroupe3_d)__
    ^ *(\w+d)(?![- ](?:je|tu|[nv]ous|ils?|elles?|on|t-ils?|t-elles?))  @@$
    <<- morphex(\1, ":V3.*:Ip.*:3s", ":[GNA]")
        and not (re.search("(?i)^répond$", \1) and after("^ +[A-ZÉÈÂÎ]"))
    -1>> \1s                                                                        # S’il s’agit d’un impératif, ajoutez un “s”.

TEST: {{Prend}} le chemin de droite.
TEST: N’{{attend}} pas qu’elle vienne.
TEST: — Pour ma part, répond P., je crois que tout va bien.


# aller
__[i]/imp(imp_va)__
    ^ *(vas)(?! (?:tu|ils?|elles?|t-ils?|t-elles?))  @@$
    <<- -1>> va                                                                     # S’il s’agit d’un impératif, pas de “s”.

TEST: {{Vas}} lui mettre une branlée.


# être
__[i]/imp(imp_sois)__
    ^ *(soit) +({w_2})  @@*,$
    <<- morph(\1, ":V") or (morphex(\2, ":A", ":G") and not after(r"\bsoit\b"))
    -1>> sois                                                                       # S’il s’agit d’un impératif, écrivez « sois ».

TEST: {{Soit}} cohérent avec toi-même.
TEST: Ne {{soit}} pas con.


# avoir
__[i]/imp(imp_aie)__
    ^[ >]*(ait?|aies)  @@$
    <<- -1>> aie                                                                    # S’il s’agit d’un impératif, écrivez « aie ».

TEST: {{Ait}} la foi !



TEST: — {{Abandonnes}}.
TEST: Ne {{donnes}} pas autant.
TEST: N’{{insistes}} pas.
TEST: Ne {{finit}} pas ce devoir.
TEST: {{Finit}} cette tarte.
TEST: Ne {{soit}} pas en retard !
TEST: Ne me {{prend}} pas pour un idiot
TEST: Ne l’{{attend}} pas
TEST: N’y {{vas}} pas
TEST: Ne m’y {{attend}} pas
TEST: Ne {{vient}} que lorsque je te le dirai.
TEST: Ne l’y {{contraint}} pas
TEST: {{Vient}}.
TEST: {{Sert}} le plat.
TEST: {{Attend}} la correction.
TEST: {{Vas}} au diable !
TEST: {{Écartes}} de moi cette coupe.



!!
!!
!!!! Impératif: traits d’union manquants                                                          !!
!!
!!

__[i]/imp(imp_union_moi_toi)__
    (?<!’)({w_2}) ([mt]oi)(?! même)  @@0,$
    <<- morphex(\1, ":E", ":[GM]")
    ->> \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

TEST: {{Apportez moi}} ce dictionnaire


__[i]/imp(imp_union_nous_vous_lui_y)__
    (?<!’)({w_2}) ([nv]ous|lui|y)(?! en| y| est)  @@0,$
    <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:Y|3[sp])", True) and morph(word(-1), ":Cc", False, True)
    ->> \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

TEST: {{Donne nous}} du café.


__[i]/imp(imp_union_les)__
    (?<!’)({w_2}) les(?! plus| moins| mieux| trop| très| en| y)  @@0
    <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:N|A|Q|Y|B|3[sp])", True) and morph(word(-1), ":Cc", False, True)
    ->> \1-les
    # 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

TEST: {{chante les}} avec conviction
TEST: Prenez les 5 ou 6 revues


__[i]/imp(imp_union_le_la_leur)__
    (?<!’)({w_2}) (l(?:e(?:ur|)|a))(?! plus| moins| mieux| peu| plupart| trop| très| une?)  @@0,$
    <<- morphex(\1, ":E", ":[GM]") and morphex(word(1), ":", ":(?:N|A|Q|Y|MP|H|T)|>pour/", True) and morph(word(-1), ":Cc", False, True)
    ->> \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

TEST: {{Prends le}} avec toi.
TEST: {{Dites leur}} que nous sommes là.
TEST: un sujet si extrêmement politique et polémique lui a donné un accès
TEST: Les États d’ores et déjà très affaiblis le seraient encore plus
TEST: « C’est ainsi », résume la cyptologue (erreur orthographique délibérée sur “cyptologue” pour empêcher certains faux positifs)
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


__[i]/imp(imp_laisser_le_la_les_infi)__
    ((laiss\w+) l(?:es|a)) +({w_2})  @@0,0,$
    <<- morph(\2, ">laisser/.*:E", False) and morphex(\3, ":(?:Y|X|Oo)", ":[NAB]")
    -1>> =\1.replace(" ", "-")
    # 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

TEST: {{Laisse les}} entrer…
TEST: {{Laissez la}} venir…
TEST: Laisse les chiens tranquilles
TEST: Laissez la peste leur pourrir la vie encore quelque temps.
TEST: le coût humain de la guerre qu’il a laissé les submerger.


__<i]/imp(imp_apostrophe_m_t_en)__
    ([ -][mt])-en @@0
    <<- not (\0.endswith("t-en") and before(r"(?i)\bva$") and morph(word(1), ">guerre/", False, False)) ->> \1’en
    # « \1e » est ici abrégé, c’est une forme élidée. Il faut mettre une apostrophe et non un trait d’union.

TEST: donne{{-m-en}} encore


__[i]/imp(imp_union_m_t_en_y)__
    ({w_2}) [mt]’(?:en|y)  @@0
    <<- morphex(\1, ":E", ":(?:G|M[12])") and morphex(word(1), ":", ":(?:Y|[123][sp])", True)
    ->> =\0.replace(" ", "-")
    # 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

TEST: {{donne m’en}}, s’il te plaît.


__[i]/imp(imp_union_verbe_pronom_moi_toi_lui)__
    ({w_2})-(?:en|les|l[ae]) (?:[mt]oi|lui)  @@0
    <<- morph(\1, ":E", False)
    ->> =\0.replace(" ", "-")
    # 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

TEST: les analyses, {{donne-les moi}}


__[i]/imp(imp_union_verbe_pronom_en_y_leur)__
    ({w_2})-(?:[mt]oi|[nv]ous|lui|leur|l[ae]|les) (?:en|y|leur)  @@0
    <<- morph(\1, ":E", False) and morphex(word(1), ":[RC]", ":[NAQ]", True)
    ->> =\0.replace(" ", "-")
    # 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

TEST: {{prends-leur en}}


__[i]/imp(imp_union_verbe_pronom_nous_vous)__
    ({w_2})-l(?:es?|a) (?:[nv]ous)  @@0
    <<- morph(\1, ":E", False) and morphex(word(1), ":[RC]", ":Y", True)
    ->> =\0.replace(" ", "-")
    # 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

TEST: {{apporte-les nous}}


__[i]/imp(imp_union_aller_y)!5__
    (?:v(?:iens|enez|enons)|all(?:ons|ez)) y
    <<- not morph(word(1), ":Y", False, False) ->> =\0.replace(" ", "-")                            # Il manque un trait d’union.
__[i]/imp(imp_union_vas_y)!5__
    vas? y
    <<- isStart() and not morph(word(1), ":Y", False, False) ->> vas-y                              # Il manque un trait d’union.
__[i]/imp(imp_union_convenir_en)__
    conv(?:iens|enez|enons) en(?! partie) <<- ->> =\0.replace(" ", "-")                             # Il manque un trait d’union.

TEST: {{allons y}}, ça pue.
TEST: {{vas y}}, ce n’est pas dangereux
TEST: {{convenez en}}, c’est une belle affaire malgré son prix élevé



!!!
!!!
!!! Processeur: destruction des pronoms qui précèdent un verbe et de l’adverbe de négation “ne”.  !!
!!!
!!!