Grammalecte  Check-in [ac492b2ae2]

Overview
Comment:[fr] conversion: regex rules -> graph rules (formes interrogatives + réorganisation)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fr | rg
Files: files | file ages | folders
SHA3-256: ac492b2ae243672a096aa046b4efeede32213aa14bd62c2a088e655c337fab8d
User & Date: olr on 2018-08-14 10:09:18
Other Links: branch diff | manifest | tags
Context
2018-08-14
10:14
[core][fr] suggestions: gestion des verbes composés check-in: 36063d3f6e user: olr tags: core, fr, rg
10:09
[fr] conversion: regex rules -> graph rules (formes interrogatives + réorganisation) check-in: ac492b2ae2 user: olr tags: fr, rg
2018-08-13
20:52
[fr] conversion: regex rules -> graph rules check-in: 0dc636339c user: olr tags: fr, rg
Changes

Modified gc_lang/fr/rules.grx from [60e14d74c8] to [17ed0aa245].

2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
....
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144

















































































































































2145
2146
2147
2148


2149
2150
2151


2152
2153
2154



2155
2156
2157
2158



2159
2160
2161
2162


2163
2164







2165






























2166
2167


2168
2169
2170


2171
2172





2173











2174
2175
2176
2177
2178
2179
2180
2181
....
2193
2194
2195
2196
2197
2198
2199


2200
2201
2202
2203


2204
2205


2206
2207
2208
2209
2210
2211
2212
....
2444
2445
2446
2447
2448
2449
2450

































































2451
2452
2453
2454
2455
2456
2457
....
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
....
3870
3871
3872
3873
3874
3875
3876


























































































































































































































































3877
3878
3879
3880
3881
3882
3883
....
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
.....
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
15792
15793
15794
15795
15796
15797
15798
15799
15800
15801
15802
15803
15804
15805
15806
15807
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
15838
15839
15840
15841
15842
15843
15844
15845
15846
15847
15848
15849
15850
15851
15852
15853
15854
15855
15856
15857
15858
15859
15860
15861
15862
15863
15864
15865
15866
15867
15868
15869
15870
15871
15872
15873
15874
15875
15876
15877
15878
15879
15880
15881
TEST: A{{ t’}}elle soif ?                               ->> -t-
TEST: A{{ t-}}elle faim ?                               ->> -t-
TEST: a{{ t'}}elle                                      ->> -t-
TEST: a{{-t'}}il                                        ->> -t-
TEST: a{{-t }}il.                                       ->> -t-
TEST: a{{ t’}}il.                                       ->> -t-
TEST: a{{ t-}}on.                                       ->> -t-
TEST: donne{{ t-}}ils                                   ->> -
TEST: donne{{-t }}il                                    ->> -t-
TEST: vient{{-t-}}il                                    ->> -
TEST: viendras{{-t-}}tu                                 ->> -
TEST: Viendront{{ t-}}ils                               ->> -
TEST: viennent{{ t-}}ils                                ->> -
TEST: mangent{{-t-}}elles                               ->> -
TEST: Ont{{ t’}}ils                                     ->> -
................................................................................
TEST: prend-elle l’avantage ?
TEST: saura-t-on jamais la vérité ?
TEST: arrive-t-elle ce matin ?
TEST: y aura-t-il du poulet au dîner ?




@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: graphe0                                                                                 _
@@@@
@@@@
@@@@
@@@@


















































































































































!!!! Mots composés                                                                                !!

__tag_verbes_composés_interrogatifs__
    ~\w-[jJ]e$


        <<- />> -je|VCint

    ~\w-[tT]u$


        <<- />> -tu|VCint

    ~\w-[iI]ls?$



        <<- \1.endswith("l") />> -il|VCint
        <<- __else__ />> -ils|VCint

    ~\w-[eE]lles?$



        <<- \1.endswith("e") />> -elle|VCint
        <<- __else__ />> -elles|VCint

    ~\w-[oO]n$


        <<- />> -on|VCint







































__tag_verbes_composés_interrogatifs_impératifs__
    ~\w-[nN]ous$


        <<- />> -nous|VCint

    ~\w-[vV]ous$


        <<- />> -vous|VCint


















__tag_verbes_composés_impératifs__
    ~\w-l(?:es?|a)-(?:[mt]oi|nous|leur)$
        <<- />> -COD-COI|VCimp

    ~\w-le$
        <<- />> -le|-COD|VCimp

    ~\w-les$
................................................................................
    ~\w-lui$
        <<- />> -lui|-COI|VCimp

    ~\w-leur$
        <<- />> -leur|-COI|VCimp




__tag_noms__
    ~\w-là$
        <<- />> -là




!!!! Immunity                                                                                     !!



__n_importe_qui_quoi__
    n’ importe [qui|quoi]
        <<- %2>>



................................................................................

TEST: {{samedi}}, le 10-06-2014                                           ->> mardi
TEST: {{mercredi}}, le 10 juin 2014                                       ->> mardi
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)



































































!!
!!
!!!! Traits d’union                                                                               !!
!!
!!

................................................................................
    [Etat|Etats|Eglise|Eglises|Ecole|Ecoles|Economie|Equipe|Equipes|Electricité|Electrique|Egalité|Element|Element|Eté|Epoux|Epouse|Epouses|Ethiopie|Erythrée|Egypte|Equateur|Elysée]
        <<- /maj/ ->> ="É"+\1[1:]                                                                   # Accentuez les majuscules.
        <<- ~>> ="É"+\1[1:]

TEST: Le budget de l’{{Etat}}.



!!!
!!!
!!! Désambiguïsation                                                                              !!
!!!
!!!

__da_le_la_les_leur__
    je [le|la|les|leur]
        <<- not morph(<1, ":1s") =>> select(\2, ":Oo")

    tu [le|la|les|leur]
        <<- not morph(<1, ":(?:2s|V0)") =>> select(\2, ":Oo")

    [il|on] [le|la|les|leur]
        <<- not morph(<1, ":3s") =>> select(\2, ":Oo")

    elle [le|la|les|leur]
        <<- not morph(<1, ":(?:3s|R)") =>> select(\2, ":Oo")

    nous [le|la|les|leur]
        <<- not morph(<1, ":(?:1p|R)") =>> select(\2, ":Oo")

    vous [le|la|les|leur]
        <<- not morph(<1, ":(?:2p|R)") =>> select(\2, ":Oo")

    ils [le|la|les|leur]
        <<- not morph(<1, ":3p") =>> select(\2, ":Oo")

    elles [le|la|les|leur]
        <<- not morph(<1, ":(?:3p|R)") =>> select(\2, ":Oo")

    [ne|n’|me|m’|te|t’|se|s’] [le|la|les|leur]
        <<- =>> =select(\2, ":Oo")


__da_nous_vous__
    nous [>avoir|>être]
        <<- not morph(\2, ":1p") =>> exclude(\1, ":Os")

    vous [>avoir|>être]
        <<- not morph(\2, ":2p") =>> exclude(\1, ":Os")


__da_préverbes_verbes__
    ne  ?[le|la|l’|les|nous|vous|lui|leur]¿  (@:¬:[OX])
    ne  [nous|vous]     [le|la|l’|les|en|y]  (@:¬:[OX])
    ne  [le|la|l’|les]  [lui|leur|en|y]      (@:¬:[OX])
    ne  [lui|leur]      en                   (@:¬:[OX])
        <<- =>> select(\1, ":V")

    [n’|m’|t’|s’]  ?[en|y]¿  (@:¬:[OX])
        <<- =>> select(\1, ":V")

    [me|te|se]  ?[le|la|l’|les]¿  (*WORD)
        <<- =>> select(\1, ":V")

    [je|j’|il|ils|on]  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  (@:¬:[OX])
    [je|j’|il|ils|on]  [nous|vous]     [le|la|l’|les|en|y]       (@:¬:[OX])
    [je|j’|il|ils|on]  [le|la|l’|les]  [lui|leur|en|y]           (@:¬:[OX])
    [je|j’|il|ils|on]  [lui|leur]      en                        (@:¬:[OX])
        <<- =>> select(\1, ":[123][sp]")

    tu  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  (@:¬:[OX])
    tu  [nous|vous]   [le|la|l’|les|en|y]         (@:¬:[OX])
    tu  [le|la|l’|les]  [lui|leur|en|y]           (@:¬:[OX])
    tu  [lui|leur]      en                        (@:¬:[OX])
        <<- morph(<1, ":Cs|<start>") =>> select(\1, ":[123][sp]")

    @:M  @:[123]s¬:Q
        <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]")

    <start> @:M  @:(?:[123]s|Oo)|>ne/¬:A
        <<- =>> =select(\2, ":M")

    [que|qu’|qu|combien|pourquoi]  ¿[en|y]¿  (*WORD)
        <<- =>> exclude(\1, ":E")


__da_dans__
    dans
        <<- not morph(<1, ":D.*:p|>[a-z]+ième/") =>> select(\1, ":R")


__da_son_ton__
    [le|ce|cet|ces|mon|ton|son|quel|quelque|quelques|notre|votre|un|leur|ledit|dudit]  [son|ton]
        <<- =>> exclude(\2, ":D")

__da_quelque_chose__
    quelque chose
        <<- ~>> ␣
        <<- =>> define(\1, [":N:m:s"])

__da_groupe_nominal__
    aucun  @:[NA].*:[me]
        <<- =>> exclude(\2, ":V")

    [de|d’]  @:¬:[YD]
        <<- =>> exclude(\2, ":V")

    d’ [un|une]  *WORD
        <<- =>> exclude(\3, ":V")

    [des|chaque|quelque|quelques|cet|cette|mon|ma|ta|sa|mes|au|aux|nos|vos|aucun|aucune]  *WORD
        <<- =>> exclude(\2, ":V")

    de  [la|l’]  @:¬:Y
        <<- =>> exclude(\3, ":V")

    de [>telle|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine]  *WORD
        <<- =>> exclude(\3, ":V")

    par  *WORD
        <<- =>> exclude(\2, ":V[123]")

    très  *WORD
        <<- =>> exclude(\2, ":[123][sp]")

    en tant que  *WORD
        <<- =>> exclude(\4, ":[123][sp]")

    bac + ~^\d\d?$
        <<- ~>> ␣
        <<- =>> define(\1, [":N:e:i"])


TEST: il s’agit d’{{un}} {{anagramme}}
TEST: nul ne sait qui arriva à ce pauvre Paul surpris par la pluie.
TEST: elle finit par être très fière de son fils.
TEST: en tant que président du conseil
TEST: les bac +2 sont trop nombreux.
TEST: c’est à n’y plus rien comprendre.


!!
!!
!!!! Incohérences de base                                                                         !!
!!
!!

................................................................................
TEST: se {{considérez}} comme un génie…
TEST: se {{rencontrerons}} demain grands et petits.
TEST: se {{crois}} élu par Dieu…
TEST: avec ceux se trouvant sur leur chemin
TEST: s’y adonnant à cœur-joie.





























































































































































































































































!!
!!
!!!! Confusions générales                                                                         !!
!!
!!

................................................................................
    *NUM  ~(?:Exa|P[ée]ta|Téra|Giga|Méga|Kilo|Hecto|Déc[ai]|Centi|Milli|Micro|Nano|Pico|Femto|Atto|Ze(?:pto|tta)|Yo(?:cto|etta))(?:mètre|watt|gramme|seconde|ampère|kelvin|mole|cand[eé]la|hertz|henry|newton|pascal|joule|coulomb|volt|ohm|farad|tesla|w[eé]ber|radian|stéradian|lumen|lux|becquerel|gray|sievert|siemens|katal)s?$
    @:B   ~(?:Exa|P[ée]ta|Téra|Giga|Méga|Kilo|Hecto|Déc[ai]|Centi|Milli|Micro|Nano|Pico|Femto|Atto|Ze(?:pto|tta)|Yo(?:cto|etta))(?:mètre|watt|gramme|seconde|ampère|kelvin|mole|cand[eé]la|hertz|henry|newton|pascal|joule|coulomb|volt|ohm|farad|tesla|w[eé]ber|radian|stéradian|lumen|lux|becquerel|gray|sievert|siemens|katal)s?$
        <<- /maj/ not \2.isupper() -2:>> =\2.lower()                # Pas de majuscule sur les unités de mesure.|https://fr.wikipedia.org/wiki/Unit%C3%A9_de_mesure

TEST: J’en veux 3 {{Mètres}}.
TEST: Elle en prendra vingt {{Grammes}}.



!!
!!
!!!! Verbes composés                                                                              !!
!!
!!

#__verbes_composés_interrogatifs__
#    ~-(?:je|tu|ils?|elles?)$
#        <<- =>> define(\1, [":VCi"])
#
#__verbes_composés_impératifs__
#    ~-(?:moi|toi|leur|en|y)$
#        <<- =>> define(\1, [":VCe"])
#
#__verbes_composés_interrogatifs_et_impératifs__
#    ~-[nv]ous$
#        <<- =>> define(\1, [":VCi", ":VCe"])


__rendez_vous__
    ne [le|la|les] [lui|leur]   (rendez-vous)
    ne me [le|la|les]           (rendez-vous)
    ne [lui|leur] en            (rendez-vous)
    ne [le|la|les|lui|leur]     (rendez-vous)
    [me|ne|nous|vous|lui]       (rendez-vous)
        <<- =>> define(\1, [":VCi1:2p"])
        <<- %1>>

#   [un|mon|ton|son|ce|mes|tes|ses|leurs] rendez-vous
#   rendez-vous seulement défini comme :N:m:i




!!
!!
!!!! Pronoms + incohérences                                                                       !!
!!
!!

__m_enfin__
    m’ enfin
        <<- %2>>
        <<- ~>> *


__non_verbe_après_préverbes__
    [ne|n’]     [le|la|l’|les]      [lui|leur|en|y]         @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)
    [ne|n’]     [lui|leur]          en                      @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)
        <<- /conf/ -4>> =suggSimil(\4, ":(?:[123][sp]|Y)", False)                                   # Incohérence avec « \1 \2 \3 » : « \4 » devrait être un verbe.

    [ne|n’]     [le|la|l’|les|nous|vous|lui|leur]           @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
    n’          [en|y]                                      @:[NAQ]¬:(?:[123][sp]|Y|W|P|Oo|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
    [me|m’|te|t’|se|s’]   [le|la|l’|les|en|y]               @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
        <<- /conf/ -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False)                                   # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    [nous|vous]           [le|la|l’|les|en|y]               @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
        <<- /conf/ not morph(<1, ":R|>de/") -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False)          # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    [ne|n’]                                                 @:[NAQ]¬:(?:[123][sp]|Y|W|P|Oo|X)|>(?:[mtsl]|même|pas|presque|jamais|rien|guère|point|plus)/
    [me|m’|te|t’|se]                                        @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>(?:l|pas|presque|jamais|rien|guère|point|plus)/
    [s’]                                                    @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>ils?/
        <<- /conf/ -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False)                                   # Incohérence avec « \1 » : « \2 » devrait être un verbe.

    [c’|ç’]                                                 @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>que?/
        <<- /conf/ -2>> =suggSimil(\2, ":3s", False)                                                # Incohérence avec « \1 » : « \2 » devrait être un verbe.

    j’          [en|y]                                      @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)
        <<- /conf/ -3>> =suggSimil(\3, ":1s", False)                                                # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    j’                                                      @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)
        <<- /conf/ -2>> =suggSimil(\2, ":1s", False)                                                # Incohérence avec « \1 » : « \2 » devrait être un verbe.

TEST: ne l’{{oubli}} pas
TEST: elle ne la {{croix}} pas
TEST: ils me les {{laissés}}.
TEST: ne {{pensée}} rien, jamais
TEST: n’en {{laissée}} que des miettes
TEST: s’y {{intéressé}}
TEST: Il ne {{travail}} pas le week-end.
TEST: Je m’en {{fou}}.
TEST: il m’{{arête}} encore une fois avec une impudence insupportable.
TEST: J’y {{travail}}.
TEST: ç’{{avé}} été dur.
TEST: me {{pronostic}} un cancer dans les trois mois.
TEST: t’{{appel}} l’autre gras, puis on y va.
TEST: te {{mangé}}
TEST: s’y {{accordez}}
TEST: s’en {{approché}}
TEST: m’y {{attaché}}
TEST: je t’en {{parlé}}
TEST: j’ai peur qu’il ne leur {{face}} quelque chose de mal
TEST: M’enfin, c’est absurde
TEST: il est normal de ne presque pas payer des gens qui effectuent un travail
TEST: j’ai l’impression de ne même pas savoir ce qu’est un « juif français ».
TEST: C’que j’comprends, c’est qu’il y a des limites à ce qu’on peut supporter.
TEST: la tentation pour certains médias de ne tout simplement pas rémunérer notre travail si celui-ci n’est finalement pas publié.
TEST: Ne parfois pas être celui qui sabote l’ambiance.
TEST: il s’en va.
TEST: C’en est trop !
TEST: T’y viendras, comme tout le monde.
TEST: Nous y voilà enfin.
TEST: T’y voilà propulsé.
TEST: t’en voilà débarrassée.
TEST: N’oublient-ils pas ce qu’ils étaient autrefois…
TEST: Ne presque jamais réussir un plat aussi simple, c’est de l’incompétence pure et simple.


__loc_notre_père_qui_es_au_cieux__
    notre père qui [es|est] aux cieux
        <<- %4>>
        <<- ~3:0>> *


!!
!!
!!!! Formes verbales sans sujet                                                                   !!
!!
!!

__tag_sujets__
    [je|j’]
    [moi|moi-même] qui
    [moi|moi-même] [seul|seule]
        <<- />> 1s

    tu
    t’  @:2s
    t’  [en|y]  @:2s
    [toi|toi-même] ?,¿ qui
    [toi|toi-même] [seul|seule]
        <<- />> 2s

    nous
    nous ?,¿ qui
    nous-même
    nous-mêmes
    nous [seul|seuls|seules]
    [et|ou] [moi|moi-même]
    ni [moi|moi-même]
    [moi|moi-même] et
        <<- />> 1p

    vous
    vous ?,¿ qui
    vous-même
    vous-mêmes
    vous [seul|seule|seuls|seules]
    [et|ou] [toi|toi-même]
    ni [toi|toi-même]
    [toi|toi-même] et
        <<- />> 2p


__tag_prop_sub__
    ce [que|qu’|qu]
        <<- />> ce_que


## Incohérences avec formes verbales 1sg et 2sg sans sujet

__conj_xxxai__sans_sujet!3__
    [se|s’]  ?[en|y|le|la|l’|les]¿  (~ai$)
        <<- /conj/ morph(\1, ":1s", ":(?:G|W|M|J|3[sp])")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 1ʳᵉ personne du singulier. Sujet (“je” ou “moi qui”) introuvable.

    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  (~ai$)  ~¬[jJ]e
        <<- /conj/ morph(\1, ":1s", ":(?:E|G|W|M|J|3[sp])") and not tag_before(\1, "1s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 1ʳᵉ personne du singulier. Sujet (“je” ou “moi qui”) introuvable.

    [me|m’|te|t’|nous|vous]     ?[le|la|l’|les|en|y]¿   (~ai$)  ~¬[jJ]e
    [le|la|l’|les]              [lui|leur|en|y]         (~ai$)  ~¬[jJ]e
    [lui|leur]                  en                      (~ai$)  ~¬[jJ]e
        <<- /conj/ morph(\1, ":1s", ":(?:E|G|W|M|J|3[sp])") and not tag_before(\1, "1s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 1ʳᵉ personne du singulier. Sujet (“je” ou “moi qui”) introuvable.

    ~ai$  ~¬[jJ]e
        <<- morph(\1, ":1s", ":(?:E|G|W|M|J|3[sp]|N|A|Q)") and not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "1s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 1ʳᵉ personne du singulier. Sujet (“je” ou “moi qui”) introuvable.


__conj_xxxas_xxxes__sans_sujet!3__
    [se|s’]  ?[en|y|le|la|l’|les]¿  (~[ae]s$)
        <<- /conj/ morph(\1, ":2s", ":(?:G|W|M|J|3[sp])")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 2ᵉ personne du singulier. Sujet (“tu” ou “toi qui”) introuvable.

    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  (~[ae]s$)  ~¬[tT]u
        <<- /conj/ morph(\1, ":2s", ":(?:E|G|W|M|J|3[sp]|1p)") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 2ᵉ personne du singulier. Sujet (“tu” ou “toi qui”) introuvable.

    [me|m’|te|t’|nous|vous]     ?[le|la|l’|les|en|y]¿   (~[ae]s$)  ~¬[tT]u
    [le|la|l’|les]              [lui|leur|en|y]         (~[ae]s$)  ~¬[tT]u
    [lui|leur]                  en                      (~[ae]s$)  ~¬[tT]u
        <<- /conj/ morph(\1, ":2s", ":(?:E|G|W|M|J|3[sp]|1p)") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 2ᵉ personne du singulier. Sujet (“tu” ou “toi qui”) introuvable.

    ~[ae]s$  ~¬[tT]u
        <<- /conj/ morph(\1, ":2s", ":(?:E|G|W|M|J|3[sp]|N|A|Q|1p)") and not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 2ᵉ personne du singulier. Sujet (“tu” ou “toi qui”) introuvable.


__conj_xxxxxs_sans_sujet!3__
    [se|s’]  ?[en|y|le|la|l’|les]¿  (~[iudnrtpcï]s$)
        <<- /conj/ morph(\1, ":[12]s", ":(?:G|W|M|J|3[sp]|2p|1p)")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  (~[iudnrtpcï]s$)  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ morph(\1, ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p)")
            and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    [me|m’|te|t’|nous|vous]     ?[le|la|l’|les|en|y]¿   (~[iudnrtpcï]s$)  ~¬(?:[tT]u|[jJ]e)
    [le|la|l’|les]              [lui|leur|en|y]         (~[iudnrtpcï]s$)  ~¬(?:[tT]u|[jJ]e)
    [lui|leur]                  en                      (~[iudnrtpcï]s$)  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ morph(\1, ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p)")
            and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    étais  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not morph(<1, ":[DA].*:p")
            and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    ~[iudnrtpcï]s$  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ morph(\1, ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p|V0e|N|A|Q)") and not (\1.istitle() and before0(r"\w"))
            and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.


__conj_peux_veux_vaux_équivaux_prévaux_sans_sujet!3__
    [se|s’]  ?[en|y|le|la|l’|les]¿  ([peux|veux|vaux|équivaux|prévaux])
        <<- /conj/ -1>> =suggVerb(\1, ":3s")                                                        # Incohérence. Le sujet de cette forme verbale est introuvable.

    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  ([peux|veux|vaux|équivaux|prévaux])  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    [me|m’|te|t’|nous|vous]     ?[le|la|l’|les|en|y]¿   ([peux|veux|vaux|équivaux|prévaux])  ~¬(?:[tT]u|[jJ]e)
    [le|la|l’|les]              [lui|leur|en|y]         ([peux|veux|vaux|équivaux|prévaux])  ~¬(?:[tT]u|[jJ]e)
    [lui|leur]                  en                      ([peux|veux|vaux|équivaux|prévaux])  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    vaux  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "1s") and not tag_before(\1, "2s")
            and not morph(<1, ":(?:R|D.*:p)")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    [peux|veux|équivaux|prévaux]  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.


TEST: Caroline, quand l’heure viendra, {{décideras}} de la conduite à tenir.
TEST: ceux-là, dans tous les cas de figure et dans tous les coups ratés, {{comprenais}} mal pourquoi on leur en voulait.
TEST: Lui, quand il y pensait, en {{arrivai}} à chaque fois à la même conclusion.
TEST: Elle, ici et dans tous les cas de figure, {{veux}} toujours en faire plus.
TEST: Le total de cette opération, contrairement à ce qu’on pense, {{équivaux}} à au moins trois d’entre eux.
TEST: {{j'}}ai signalé que {{j'}}essayais de regrouper les paragraphes. (Tests avec apostrophe droite.)
TEST: je me questionne, {{exiges}} des réponses mais n’en obtiens pas…
TEST: dans tous les cas de figure imaginés par cette bande de nuls, il n’y en a pas un qui les sauvera.
TEST: ces gens qui vont par monts et par vaux.
TEST: pour ne justement pas donner l’impression de s’être trompé.


## Incohérences avec formes verbales 1pl et 2pl sans sujet
__conj_xxxons_sans_sujet!3__
    @:1p¬:[EGMNAJ]  ~¬[nN]ous
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "1p") -1>> =suggVerb(\1, ":3p")     # Ceci est un verbe à la 1ʳᵉ personne du pluriel. Sujet (“nous” ou équivalent) introuvable.

__conj_xxxez_sans_sujet!3__
    @:2p¬:[EGMNAJ]  ~¬[vV]ous
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not tag_before(\2, "2p") -1>> =suggVerb(\1, ":3p")     # Ceci est un verbe à la 2ᵉ personne du pluriel. Sujet (“vous” ou équivalent) introuvable.

TEST: les hommes et les femmes, qui sans un bruit, sans une parole amère, {{continuerons}} leur tâche n’en seront pas plus récompensés.
TEST: il était dit que cette femme et son frère {{promènerez}} leur chien à cette heure de la journée.
TEST: cet homme et cette femme {{pouvez}} y parvenir avec de la persévérance
TEST: Comme on lui disait que vous-même aviez déjà consulté le notaire
TEST: ce sont des terroristes et ça ne nous arrivera pas à nous, qui n’avons rien à nous reprocher
TEST: mes supérieurs et moi-même avons pris la décision de ne pas vendre
TEST: Ni lui ni moi n’avions mangé
TEST: Mon épouse et moi-même avons toujours dit
TEST: que vous ou moi ignorions à peu près tout du boson de Higgs n’a pas du tout le même sens



!!
!!
!!!! Locutions invariables                                                                        !!
!!
!!
................................................................................
    <<- isStart() >>>
    <<- morph(\2, ":D.*:p", False) -1>> puissent                                    # Conjugaison erronée. Ce verbe devrait s’accorder au substantif qui le suit.
    <<- __else__ and \1.endswith("s") and \2 != "tu" and not before(r"(?i)\btu ")
    -1>> puisse                                                                     # Conjugaison erronée. Sujet “tu” introuvable.

TEST: {{puisse}} les hommes enfin comprendre leurs erreurs.                         ->> puissent
TEST: {{puisses}} notre ennemi trembler de peur devant notre courage.               ->> puisse



!!
!!
!!!! Formes interrogatives ?                                                                      !!
!!
!!

__[i]/inte(inte_union_xxxe_je)__
    (?<![jJ]’)({w_2}[éèe]) je  @@0
    <<- morphex(\1, ":V.*:1[sŝś]", ":[GNW]") and not before(r"(?i)\bje +$") and morphex(word(1), ":", ":(?:Oo|X|1s)", True)
    ->> =\1[:-1]+"é-je"                                                                             # Forme interrogative ? Mettez un trait d’union.
__[i]/inte(inte_union_xxx_je)__
    (?<![jJ]’)({w_2}[is]) je  @@0
    <<- morphex(\1, ":V.*:1s", ":[GNW]") and not before(r"(?i)\b(?:je|tu) +$") and morphex(word(1), ":", ":(?:Oo|X|1s)", True)
    ->> \1-je                                                                                       # Forme interrogative ? Mettez un trait d’union.
__[i]/inte(inte_union_tu)__
    ({w_1}s) tu  @@0
    <<- morphex(\1, ":V.*:2s", ":[GNW]") and not before(r"(?i)\b(?:je|tu) +$") and morphex(word(1), ":", ":2s", True)
    ->> \1-tu                                                                                       # Forme interrogative ? Mettez un trait d’union.
__[i]/inte(inte_union_il_on)__
    ({w_2}[td]) (?:il|on)  @@0
    <<- morphex(\1, ":V.*:3s", ":[GNW]") and not before(r"(?i)\b(?:ce|il|elle|on) +$") and morphex(word(1), ":", ":3s|>y/", True)
    ->> =\0.replace(" ", "-")                                                                       # Forme interrogative ? Mettez un trait d’union.
__[i]/inte(inte_union_elle)__
    (?<![cC]’)({w_2}[td]) elle  @@0
    <<- morphex(\1, ":V.*:3s", ":[GNW]") and not before(r"(?i)\b(?:ce|il|elle|on) +$") and morphex(word(1), ":", ":3s", True)
    ->> \1-elle                                                                                     # Forme interrogative ? Mettez un trait d’union.
__[i]/inte(inte_union_nous)__
    ({w_2}ons) nous  @@0
    <<- morphex(\1, ":V.*:1p", ":[GNW]") and not morph(word(-1), ":Os", False, False) and morphex(word(1), ":", ":(?:Y|1p)", True)
    ->> \1-nous                                                                                     # Forme interrogative ? Mettez un trait d’union.
__[i]/inte(inte_union_vous)__
    ({w_2}e[zs]) vous  @@0
    <<- morphex(\1, ":V.*:2p", ":[GNW]|>vouloir/.*:E:2p") and not morph(word(-1), ":Os", False, False) and morphex(word(1), ":", ":(?:Y|2p)", True)
    ->> \1-vous                                                                                     # Forme interrogative ? Mettez un trait d’union.
__[i]/inte(inte_union_ils_elles)__
    (?<![cC]’)({w_1}nt) (?:ils|elles)  @@0
    <<- morphex(\1, ":V.*:3p", ":[GNW]") and not before(r"(?i)\b(?:ce|ils|elles) +$") and morphex(word(1), ":", ":3p", True)
    ->> =\0.replace(" ", "-")                                                                       # Forme interrogative ? Mettez un trait d’union.

TEST: {{mangé je}} {{ça}} avec dégoût ?
TEST: {{viendrais je}} à la fête ?
TEST: {{Seras tu}} là ?
TEST: {{prend on}} le temps d’y réfléchir ?
TEST: {{vient elle}} souvent ?
TEST: {{viennent elles}} souvent ?
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.


__[i]/inte(inte_je)__
    ({w1})-je  @@0
    <<- analysex(\1, ":V", ":1[sśŝ]") -1>> =suggVerb(@, ":1ś")                                      # Forme interrogative : « \1 » n’est pas un verbe à la 1ʳᵉ personne du singulier.
    <<- not morph(\1, ":V", False) -1>> =suggSimil(\1, ":1[sśŝ]", False)                            # Forme interrogative : « \1 » n’est pas un verbe à la 1ʳᵉ personne du singulier.

TEST: {{Vas}}-je                                            ->> Vais
TEST: {{Prit}}-je                                           ->> Pris
TEST: {{prix}}-je le temps d’y parvenir ? Oui.


__[i]/inte(inte_tu)__
    ({w1})-tu  @@0
    <<- analysex(\1, ":V", ":[ISK].*:2s") -1>> =suggVerb(@, ":2s")                                  # Forme interrogative. « \1 » n’est pas un verbe à la 2ᵉ personne du singulier.
    <<- not analyse(\1, ":V", False) -1>> =suggSimil(\1, ":2s", False)                              # Forme interrogative : « \1 » n’est pas un verbe à la 2ᵉ personne du singulier.

TEST: {{Peut}}-tu                                           ->> Peux
TEST: {{peu}}-tu revenir chez moi ?


__[i]/inte(inte_il_elle_on)__
    ({w1})-(?:t-|)(il|elle|on)  @@0,$
    <<- analysex(\1, ":V", ":3s") -1>> =suggVerb(@, ":3s")                                          # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du singulier.
    <<- \1 != "t" and (not \1.endswith("oilà") or \2 != "il") and analysex(\1, ":", ":V")
    -1>> =suggSimil(\1, ":3s", False)                                                               # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du singulier.
    <<- not \2.endswith(("n", "N")) and analysex(\1, ":3p", ":3s") -2>> \2s                         # Forme interrogative : accordez “\2” avec le verbe à la 3ᵉ personne du pluriel.

TEST: {{Peux}}-il                                           ->> Peut
TEST: {{Attaques}}-t-on                                     ->> Attaque
TEST: {{Prends}}-elle                                       ->> Prend
TEST: {{Menthe}}-t-elle souvent ?
TEST: {{viennent}}-{{il}} demain ?
TEST: Le moteur choisi convient-il ?


__[s]/inte(inte_ce)__
    ({w_2})-([cs]e)  @@0,$
    <<- analysex(\1, ":V", ":(?:3s|V0e.*:3p)") -1>> =suggVerb(@, ":3s")     # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du singulier.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132
    <<- analysex(\1, ":", ":V") -1>> =suggSimil(\1, ":3s", False)           # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du singulier.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132
    <<- \2 == "se" -2>> ce                                                  # Forme interrogative. Confusion.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132

TEST: était-{{se}} cela, la vérité ineffable ?
TEST: {{étai}}-ce notre destinée de souffrir ?
TEST: étaient-{{se}} ces hommes-là qui allaient nous guider dans les montagnes ?
TEST: Était-ce des femmes de ce pays ?
TEST: Eh ! dit Athos, ne sont-ce pas des braconniers qu’on arrête là-bas ?


__[i]/inte(inte_nous)__
    ({w1})-nous  @@0
    <<- analysex(\1, ":V", ":(?:1p|E:2[sp])") -1>> =suggVerb(@, ":1p")                              # Forme interrogative ou impérative incorrecte.
    <<- analysex(\1, ":", ":V|>chez/") -1>> =suggSimil(\1, ":1p", False)                            # Forme interrogative ou impérative incorrecte.

TEST: {{Prendront}}-nous                                    ->> Prendrons
TEST: {{Attendront}}-nous le train                          ->> Attendrons


__[i]/inte(inte_vous)__
    ({w1})-vous  @@0
    <<- analysex(\1, ":V", ":2p") -1>> =suggVerb(@, ":2p")                                          # Forme interrogative ou impérative incorrecte.
    <<- not analyse(\1, ":V|>chez/", False) -1>> =suggSimil(\1, ":2p", False)                       # Forme interrogative ou impérative incorrecte.

TEST: {{Attaquait}}-vous                                    ->> Attaquiez
TEST: Elle a de nombreux rendez-vous ce matin.
TEST: êtes-vous là ?


__[i]/inte(inte_ils_elles)__
    ({w1})-(?:ils|elles)  @@0
    <<- analysex(\1, ":V", ":3p") and spell(\1)
    -1>> =suggVerb(@, ":3p")                                                                        # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du pluriel.
    <<- \1 != "t" and not analyse(\1, ":V", False) and spell(\1)
    -1>> =suggSimil(\1, ":3p", False)                                                               # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du pluriel.

TEST: {{attaquant}}-ils                                     ->> attaquent
TEST: {{prendrons}}-elles un verre avec moi ?




@@@@
@@@@
@@@@
@@@@







|







 







<










>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|

|

>
>



>
>


|
>
>
>
|
<

|
>
>
>
|
<


>
>


>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|

>
>



>
>


>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>
|







 







>
>




>
>

<
>
>







 







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







 







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







 







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







 







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







 







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







2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
....
2127
2128
2129
2130
2131
2132
2133

2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306

2307
2308
2309
2310
2311
2312

2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
....
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419

2420
2421
2422
2423
2424
2425
2426
2427
2428
....
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
....
3412
3413
3414
3415
3416
3417
3418





































































































































3419
3420
3421
3422
3423
3424
3425
....
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
....
7023
7024
7025
7026
7027
7028
7029






























































































































































































































































































7030
7031
7032
7033
7034
7035
7036
.....
15847
15848
15849
15850
15851
15852
15853





































































































































15854
15855
15856
15857
15858
15859
15860
TEST: A{{ t’}}elle soif ?                               ->> -t-
TEST: A{{ t-}}elle faim ?                               ->> -t-
TEST: a{{ t'}}elle                                      ->> -t-
TEST: a{{-t'}}il                                        ->> -t-
TEST: a{{-t }}il.                                       ->> -t-
TEST: a{{ t’}}il.                                       ->> -t-
TEST: a{{ t-}}on.                                       ->> -t-
TEST: donne{{ t-}}il                                    ->> -t-
TEST: donne{{-t }}il                                    ->> -t-
TEST: vient{{-t-}}il                                    ->> -
TEST: viendras{{-t-}}tu                                 ->> -
TEST: Viendront{{ t-}}ils                               ->> -
TEST: viennent{{ t-}}ils                                ->> -
TEST: mangent{{-t-}}elles                               ->> -
TEST: Ont{{ t’}}ils                                     ->> -
................................................................................
TEST: prend-elle l’avantage ?
TEST: saura-t-on jamais la vérité ?
TEST: arrive-t-elle ce matin ?
TEST: y aura-t-il du poulet au dîner ?




@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: graphe0                                                                                 _
@@@@
@@@@
@@@@
@@@@

!!!
!!!
!!! Désambiguïsation                                                                              !!
!!!
!!!

__da_le_la_les_leur__
    je [le|la|les|leur]
        <<- not morph(<1, ":1s") =>> select(\2, ":Oo")

    tu [le|la|les|leur]
        <<- not morph(<1, ":(?:2s|V0)") =>> select(\2, ":Oo")

    [il|on] [le|la|les|leur]
        <<- not morph(<1, ":3s") =>> select(\2, ":Oo")

    elle [le|la|les|leur]
        <<- not morph(<1, ":(?:3s|R)") =>> select(\2, ":Oo")

    nous [le|la|les|leur]
        <<- not morph(<1, ":(?:1p|R)") =>> select(\2, ":Oo")

    vous [le|la|les|leur]
        <<- not morph(<1, ":(?:2p|R)") =>> select(\2, ":Oo")

    ils [le|la|les|leur]
        <<- not morph(<1, ":3p") =>> select(\2, ":Oo")

    elles [le|la|les|leur]
        <<- not morph(<1, ":(?:3p|R)") =>> select(\2, ":Oo")

    [ne|n’|me|m’|te|t’|se|s’] [le|la|les|leur]
        <<- =>> select(\2, ":Oo")

    le   @:N¬*
        <<- =>> select(\1, ":D")

    la   @:N¬*
        <<- =>> select(\1, ":D")

    les  @:N¬*
        <<- =>> select(\1, ":D")

    l’   @:N¬*
        <<- =>> define(\1, ":D:e:s")


__da_nous_vous__
    nous [>avoir|>être]
        <<- not morph(\2, ":1p") =>> exclude(\1, ":Os")

    vous [>avoir|>être]
        <<- not morph(\2, ":2p") =>> exclude(\1, ":Os")


__da_préverbes_verbes__
    ne  ?[le|la|l’|les|nous|vous|lui|leur]¿  (@:¬:[OX])
    ne  [nous|vous]     [le|la|l’|les|en|y]  (@:¬:[OX])
    ne  [le|la|l’|les]  [lui|leur|en|y]      (@:¬:[OX])
    ne  [lui|leur]      en                   (@:¬:[OX])
        <<- =>> select(\1, ":V")

    [n’|m’|t’|s’]  ?[en|y]¿  (@:¬:[OX])
        <<- =>> select(\1, ":V")

    [me|te|se]  ?[le|la|l’|les]¿  (*WORD)
        <<- =>> select(\1, ":V")

    [je|j’|il|ils|on]  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  (@:¬:[OX])
    [je|j’|il|ils|on]  [nous|vous]     [le|la|l’|les|en|y]       (@:¬:[OX])
    [je|j’|il|ils|on]  [le|la|l’|les]  [lui|leur|en|y]           (@:¬:[OX])
    [je|j’|il|ils|on]  [lui|leur]      en                        (@:¬:[OX])
        <<- =>> select(\1, ":[123][sp]")

    tu  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  (@:¬:[OX])
    tu  [nous|vous]   [le|la|l’|les|en|y]         (@:¬:[OX])
    tu  [le|la|l’|les]  [lui|leur|en|y]           (@:¬:[OX])
    tu  [lui|leur]      en                        (@:¬:[OX])
        <<- morph(<1, ":Cs|<start>") =>> select(\1, ":[123][sp]")

    @:M  @:[123]s¬:Q
        <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]")

    <start> @:M  @:(?:[123]s|Oo)|>ne/¬:A
        <<- =>> =select(\2, ":M")

    [que|qu’|qu|combien|pourquoi]  ?[en|y]¿  (*WORD)
        <<- =>> exclude(\1, ":E")


__da_dans__
    dans
        <<- not morph(<1, ":D.*:p|>[a-z]+ième/") =>> select(\1, ":R")


__da_son_ton__
    [le|ce|cet|ces|mon|ton|son|quel|quelque|quelques|notre|votre|un|leur|ledit|dudit]  [son|ton]
        <<- =>> exclude(\2, ":D")

__da_quelque_chose__
    quelque chose
        <<- ~>> ␣
        <<- =>> define(\1, [":N:m:s"])

__da_groupe_nominal__
    aucun  @:[NA].*:[me]
        <<- =>> exclude(\2, ":V")

    [de|d’]  @:¬:[YD]
        <<- =>> exclude(\2, ":V")

    d’ [un|une]  *WORD
        <<- =>> exclude(\3, ":V")

    [des|chaque|quelque|quelques|cet|cette|mon|ma|ta|sa|mes|au|aux|nos|vos|aucun|aucune]  *WORD
        <<- =>> exclude(\2, ":V")

    de  [la|l’]  @:¬:Y
        <<- =>> exclude(\3, ":V")

    de [>telle|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine]  *WORD
        <<- =>> exclude(\3, ":V")

    par  *WORD
        <<- =>> exclude(\2, ":V[123]")

    très  *WORD
        <<- =>> exclude(\2, ":[123][sp]")

    en tant que  *WORD
        <<- =>> exclude(\4, ":[123][sp]")

    bac + ~^\d\d?$
        <<- ~>> ␣
        <<- =>> define(\1, [":N:e:i"])


TEST: il s’agit d’{{un}} {{anagramme}}
TEST: nul ne sait qui arriva à ce pauvre Paul surpris par la pluie.
TEST: elle finit par être très fière de son fils.
TEST: en tant que président du conseil
TEST: les bac +2 sont trop nombreux.
TEST: c’est à n’y plus rien comprendre.


!!!! Verbes composés                                                                              !!

__inte_verbes_composés_interrogatifs__
    ~\w-[jJ]e$
        <<- /inte/ morphVC(\1, ":V", ":1[sśŝ]") -1>> =suggVerb(\1, ":1ś", None, True)               # Forme interrogative. Désaccord avec “je”. Le verbe n’est pas à la 1ʳᵉ personne du singulier.
        <<- /inte/ __else__ and not morphVC(\1, ":V") -1>> =suggSimil(\1, ":1[sśŝ]", False, True)   # Forme interrogative. Désaccord avec “je”. Le verbe n’est pas à la 1ʳᵉ personne du singulier.
        <<- />> -je|VCint

    ~\w-[tT]u$
        <<- /inte/ morphVC(\1, ":V", ":[ISK].*:2s") -1>> =suggVerb(\1, ":2s", None, True)           # Forme interrogative. Désaccord avec “tu”. Le verbe n’est pas à la 2ᵉ personne du singulier.
        <<- /inte/ __else__ and not morphVC(\1, ":V") -1>> =suggSimil(\1, ":2s", False, True)       # Forme interrogative. Désaccord avec “tu”. Le verbe n’est pas à la 2ᵉ personne du singulier.
        <<- />> -tu|VCint

    ~\w-[iI]l$
        <<- /inte/ morphVC(\1, ":3p", ":3s") -1>> =suggVerb(\1, ":3s", None, True) + "|" + \1+"s"             # Forme interrogative. Désaccord avec “il”. Le verbe n’est pas à la 3ᵉ personne du singulier.
        <<- /inte/ __else__ and morphVC(\1, ":V", ":3s") -1>> =suggVerb(\1, ":3s", None, True)                # Forme interrogative. Désaccord avec “il”. Le verbe n’est pas à la 3ᵉ personne du singulier.
        <<- /inte/ __else__ and morphVC(\1, ":", ":V|>(?:t|voilà)/") -1>> =suggSimil(\1, ":3s", False, True)  # Forme interrogative. Désaccord avec “il”. Le verbe n’est pas à la 3ᵉ personne du singulier.
        <<- />> -il|VCint


    ~\w-[eE]lle$
        <<- /inte/ morphVC(\1, ":3p", ":3s") -1>> =suggVerb(\1, ":3s", None, True) + "|" + \1+"s"   # Forme interrogative. Désaccord avec “elle”. Le verbe n’est pas à la 3ᵉ personne du singulier.
        <<- /inte/ __else__ and morphVC(\1, ":V", ":3s") -1>> =suggVerb(\1, ":3s", None, True)      # Forme interrogative. Désaccord avec “elle”. Le verbe n’est pas à la 3ᵉ personne du singulier.
        <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") -1>> =suggSimil(\1, ":3s", False, True)  # Forme interrogative. Désaccord avec “elle”. Le verbe n’est pas à la 3ᵉ personne du singulier.
        <<- />> -elle|VCint


    ~\w-[oO]n$
        <<- /inte/ morphVC(\1, ":V", ":3s") -1>> =suggVerb(\1, ":3s", None, True)                   # Forme interrogative. Désaccord avec “on”. Le verbe n’est pas à la 3ᵉ personne du singulier.
        <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") -1>> =suggSimil(\1, ":3s", False, True)  # Forme interrogative. Désaccord avec “on”. Le verbe n’est pas à la 3ᵉ personne du singulier.
        <<- />> -on|VCint

    ~\w-[cCs]e$
        <<- /inte/ morphVC(\1, ":V", ":(?:3s|V0e.*:3p)")
        -1>> =suggVerb(\1, ":3s", None, True)               # Forme interrogative. Désaccord avec “ce”. Le verbe n’est pas à la 3ᵉ personne du singulier.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132
        <<- /inte/ __else__ and morphVC(\1, ":", ":V")
        -1>> =suggSimil(\1, ":3s", False, True)             # Forme interrogative. Désaccord avec “ce”. Le verbe n’est pas à la 3ᵉ personne du singulier.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132
        <<- /conf/ \1.endswith("se") -1>> =\1[:-2]+"ce"     # Forme interrogative. Confusion.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132
        <<- />> -ce|VCint

    ~\w-[iI]ls$
        <<- /inte/ morphVC(\1, ":V", ":3p") -1>> =suggVerb(\1, ":3p", None, True)                   # Forme interrogative. Désaccord avec “ils”. Le verbe n’est pas à la 3ᵉ personne du pluriel.
        <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") -1>> =suggSimil(\1, ":3p", False, True)  # Forme interrogative. Désaccord avec “ils”. Le verbe n’est pas à la 3ᵉ personne du pluriel.
        <<- />> -ils|VCint

    ~\w-[eE]lles$
        <<- /inte/ morphVC(\1, ":V", ":3p") -1>> =suggVerb(\1, ":3p", None, True)                   # Forme interrogative. Désaccord avec “elles”. Le verbe n’est pas à la 3ᵉ personne du pluriel.
        <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") -1>> =suggSimil(\1, ":3p", False, True)  # Forme interrogative. Désaccord avec “elles”. Le verbe n’est pas à la 3ᵉ personne du pluriel.
        <<- />> -elles|VCint

TEST: {{Vas-je}}                                            ->> Vais-je
TEST: {{Prit-je}}                                           ->> Pris-je
TEST: {{prix-je}} le temps d’y parvenir ? Oui.
TEST: {{Peut-tu}}                                           ->> Peux-tu
TEST: {{peu-tu}} revenir chez moi ?
TEST: {{Peux-il}}                                           ->> Peut-il
TEST: {{Attaques-t-on}}                                     ->> Attaque-t-on
TEST: {{Prends-elle}}                                       ->> Prend-elle
TEST: {{Menthe-t-elle}} souvent ?
TEST: {{viennent-il}} demain ?
TEST: Le moteur choisi convient-il ?
TEST: {{était-se}} cela, la vérité ineffable ?
TEST: {{étai-ce}} notre destinée de souffrir ?
TEST: {{étaient-se}} ces hommes-là qui allaient nous guider dans les montagnes ?
TEST: Était-ce des femmes de ce pays ?
TEST: Eh ! dit Athos, ne sont-ce pas des braconniers qu’on arrête là-bas ?
TEST: {{attaquant-ils}}                                     ->> attaquent-ils
TEST: {{prendrons-elles}} un verre avec moi ?


__inte_verbes_composés_interrogatifs_impératifs__
    ~\w-[nN]ous$
        <<- /inte/ morphVC(\1, ":V", ":(?:1p|E:2[sp])") -1>> =suggVerb(\1, ":1p", None, True)          # Forme interrogative ou impérative incorrecte.
        <<- /inte/ __else__ and morphVC(\1, ":", ":V|>chez/") -1>> =suggSimil(\1, ":1p", False, True)  # Forme interrogative ou impérative incorrecte.
        <<- />> -nous|VCint

    ~\w-[vV]ous$
        <<- /inte/ morphVC(\1, ":V", ":2p") -1>> =suggVerb(\1, ":2p", None, True)                      # Forme interrogative ou impérative. Désaccord avec “vous”. Le verbe n’est pas à la 2ᵉ personne du pluriel.
        <<- /inte/ __else__ and morphVC(\1, ":", ":V|>chez/") -1>> =suggSimil(\1, ":2p", False, True)  # Forme interrogative ou impérative. Désaccord avec “vous”. Le verbe n’est pas à la 2ᵉ personne du pluriel.
        <<- />> -vous|VCint

TEST: {{Prendront-nous}}                                    ->> Prendrons-nous
TEST: {{Attendront-nous}} le train                          ->> Attendrons-nous
TEST: {{Attaquait-vous}}                                    ->> Attaquiez-vous
TEST: Elle a de nombreux rendez-vous ce matin.
TEST: êtes-vous là ?


__inte_rendez_vous__
    ne [le|la|les] [lui|leur]   (rendez-vous)
    ne me [le|la|les]           (rendez-vous)
    ne [lui|leur] en            (rendez-vous)
    ne [le|la|les|lui|leur]     (rendez-vous)
    [me|ne|nous|vous|lui]       (rendez-vous)
        <<- =>> define(\1, [":VCi1:2p"])
        <<- %1>>


__inte_verbes_composés_impératifs__
    ~\w-l(?:es?|a)-(?:[mt]oi|nous|leur)$
        <<- />> -COD-COI|VCimp

    ~\w-le$
        <<- />> -le|-COD|VCimp

    ~\w-les$
................................................................................
    ~\w-lui$
        <<- />> -lui|-COI|VCimp

    ~\w-leur$
        <<- />> -leur|-COI|VCimp


!!!! Noms composés                                                                                !!

__tag_noms__
    ~\w-là$
        <<- />> -là

#   [un|mon|ton|son|ce|mes|tes|ses|leurs] rendez-vous
#   rendez-vous seulement défini comme :N:m:i  dans le dictionnaire



!!!! Immunité                                                                                     !!

__n_importe_qui_quoi__
    n’ importe [qui|quoi]
        <<- %2>>



................................................................................

TEST: {{samedi}}, le 10-06-2014                                           ->> mardi
TEST: {{mercredi}}, le 10 juin 2014                                       ->> mardi
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 ?                                                                      !!
!!
!!

__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.

    ~.[is]$  je
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:1s", ":[GNW]") and not value(<1, "|je|j’|tu|") and morph(>1, ":|<end>|,", ":(?:Oo|X|1s)")
        ->> \1-je                                                                                   # Forme interrogative ? Mettez un trait d’union.

__inte_union_tu__
    ~.s$  tu
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:2s", ":[GNW]") and not value(<1, "|je|j’|tu|") and morph(>1, ":|<end>|,", ":(?:Oo|X|2s)")
        ->> \1-tu                                                                                   # Forme interrogative ? Mettez un trait d’union.

__inte_union_il_on__
    ~.[td]$  [il|on]
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:3s", ":[GNW]") and not value(<1, "|ce|il|elle|on|") and morph(>1, ":|<end>|,", ":(?:Oo|X|3s)|>y/")
        ->> \1-\2                                                                                   # Forme interrogative ? Mettez un trait d’union.

__inte_union_elle__
    ~.[td]$  elle
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:3s", ":[GNW]") and not value(<1, "|ce|c’|ça|ç’|il|elle|on|") and morph(>1, ":|<end>|,", ":(?:Oo|X|3s)|>aussi/")
        ->> \1-elle                                                                                 # Forme interrogative ? Mettez un trait d’union.

__inte_union_nous__
    ~ons$  nous
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:1p", ":[GNW]") and not morph(<1, ":Os") and morph(>1, ":|<end>|,", ":(?:Y|Oo|X|1p)|>aussi/")
        ->> \1-nous                                                                                 # Forme interrogative ? Mettez un trait d’union.

__inte_union_vous__
    ~e[zs]$  vous
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:2p", ":[GNW]|>vouloir/.*:E:2p") and not morph(<1, ":Os") and morph(>1, ":|<end>|,", ":(?:Y|Oo|X|2p)|>aussi/")
        ->> \1-vous                                                                                 # Forme interrogative ? Mettez un trait d’union.

__inte_union_ils__
    ~nt$  ils
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:3p", ":[GNW]") and not value(<1, "|ce|ils|elles|") and morph(>1, ":|<end>|,", ":(?:Oo|X|3p)")
        ->> \1-\2                                                                                   # Forme interrogative ? Mettez un trait d’union.

__inte_union_elles__
    ~nt$  elles
        <<- /inte/ space_after(\1, 1, 1) and morph(\1, ":V.*:3p", ":[GNW]") and not value(<1, "|ce|ils|elles|") and morph(>1, ":|<end>|,", ":(?:Oo|X|3p)|>aussi/")
        ->> \1-\2                                                                                   # Forme interrogative ? Mettez un trait d’union.

TEST: {{mangé je}} {{ça}} avec dégoût ?
TEST: {{viendrais je}} à la fête ?
TEST: {{Seras tu}} là ?
TEST: {{prend on}} le temps d’y réfléchir ?
TEST: {{vient elle}} souvent ?
TEST: {{viennent elles}} souvent ?
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                                                                               !!
!!
!!

................................................................................
    [Etat|Etats|Eglise|Eglises|Ecole|Ecoles|Economie|Equipe|Equipes|Electricité|Electrique|Egalité|Element|Element|Eté|Epoux|Epouse|Epouses|Ethiopie|Erythrée|Egypte|Equateur|Elysée]
        <<- /maj/ ->> ="É"+\1[1:]                                                                   # Accentuez les majuscules.
        <<- ~>> ="É"+\1[1:]

TEST: Le budget de l’{{Etat}}.








































































































































!!
!!
!!!! Incohérences de base                                                                         !!
!!
!!

................................................................................
TEST: se {{considérez}} comme un génie…
TEST: se {{rencontrerons}} demain grands et petits.
TEST: se {{crois}} élu par Dieu…
TEST: avec ceux se trouvant sur leur chemin
TEST: s’y adonnant à cœur-joie.


!!
!!
!!!! Pronoms + incohérences                                                                       !!
!!
!!

__m_enfin__
    m’ enfin
        <<- %2>>
        <<- ~>> *


__non_verbe_après_préverbes__
    [ne|n’]     [le|la|l’|les]      [lui|leur|en|y]         @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)
    [ne|n’]     [lui|leur]          en                      @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)
        <<- /conf/ -4>> =suggSimil(\4, ":(?:[123][sp]|Y)", False)                                   # Incohérence avec « \1 \2 \3 » : « \4 » devrait être un verbe.

    [ne|n’]     [le|la|l’|les|nous|vous|lui|leur]           @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
    n’          [en|y]                                      @:[NAQ]¬:(?:[123][sp]|Y|W|P|Oo|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
    [me|m’|te|t’|se|s’]   [le|la|l’|les|en|y]               @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
        <<- /conf/ -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False)                                   # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    [nous|vous]           [le|la|l’|les|en|y]               @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
        <<- /conf/ not morph(<1, ":R|>de/") -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False)          # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    [ne|n’]                                                 @:[NAQ]¬:(?:[123][sp]|Y|W|P|Oo|X)|>(?:[mtsl]|même|pas|presque|jamais|rien|guère|point|plus)/
    [me|m’|te|t’|se]                                        @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>(?:l|pas|presque|jamais|rien|guère|point|plus)/
    [s’]                                                    @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>ils?/
        <<- /conf/ -2>> =suggSimil(\2, ":(?:[123][sp]|Y)", False)                                   # Incohérence avec « \1 » : « \2 » devrait être un verbe.

    [c’|ç’]                                                 @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)|>que?/
        <<- /conf/ -2>> =suggSimil(\2, ":3s", False)                                                # Incohérence avec « \1 » : « \2 » devrait être un verbe.

    j’          [en|y]                                      @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)
        <<- /conf/ -3>> =suggSimil(\3, ":1s", False)                                                # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    j’                                                      @:[NAQ]¬:(?:[123][sp]|Y|P|Oo|X)
        <<- /conf/ -2>> =suggSimil(\2, ":1s", False)                                                # Incohérence avec « \1 » : « \2 » devrait être un verbe.

TEST: ne l’{{oubli}} pas
TEST: elle ne la {{croix}} pas
TEST: ils me les {{laissés}}.
TEST: ne {{pensée}} rien, jamais
TEST: n’en {{laissée}} que des miettes
TEST: s’y {{intéressé}}
TEST: Il ne {{travail}} pas le week-end.
TEST: Je m’en {{fou}}.
TEST: il m’{{arête}} encore une fois avec une impudence insupportable.
TEST: J’y {{travail}}.
TEST: ç’{{avé}} été dur.
TEST: me {{pronostic}} un cancer dans les trois mois.
TEST: t’{{appel}} l’autre gras, puis on y va.
TEST: te {{mangé}}
TEST: s’y {{accordez}}
TEST: s’en {{approché}}
TEST: m’y {{attaché}}
TEST: je t’en {{parlé}}
TEST: j’ai peur qu’il ne leur {{face}} quelque chose de mal
TEST: M’enfin, c’est absurde
TEST: il est normal de ne presque pas payer des gens qui effectuent un travail
TEST: j’ai l’impression de ne même pas savoir ce qu’est un « juif français ».
TEST: C’que j’comprends, c’est qu’il y a des limites à ce qu’on peut supporter.
TEST: la tentation pour certains médias de ne tout simplement pas rémunérer notre travail si celui-ci n’est finalement pas publié.
TEST: Ne parfois pas être celui qui sabote l’ambiance.
TEST: il s’en va.
TEST: C’en est trop !
TEST: T’y viendras, comme tout le monde.
TEST: Nous y voilà enfin.
TEST: T’y voilà propulsé.
TEST: t’en voilà débarrassée.
TEST: N’oublient-ils pas ce qu’ils étaient autrefois…
TEST: Ne presque jamais réussir un plat aussi simple, c’est de l’incompétence pure et simple.


__loc_notre_père_qui_es_au_cieux__
    notre père qui [es|est] aux cieux
        <<- %4>>
        <<- ~3:0>> *


!!
!!
!!!! Formes verbales sans sujet                                                                   !!
!!
!!

__tag_sujets__
    [je|j’]
    [moi|moi-même] qui
    [moi|moi-même] [seul|seule]
        <<- />> 1s

    tu
    t’  @:2s
    t’  [en|y]  @:2s
    [toi|toi-même] ?,¿ qui
    [toi|toi-même] [seul|seule]
        <<- />> 2s

    nous
    nous ?,¿ qui
    nous-même
    nous-mêmes
    nous [seul|seuls|seules]
    [et|ou] [moi|moi-même]
    ni [moi|moi-même]
    [moi|moi-même] et
        <<- />> 1p

    vous
    vous ?,¿ qui
    vous-même
    vous-mêmes
    vous [seul|seule|seuls|seules]
    [et|ou] [toi|toi-même]
    ni [toi|toi-même]
    [toi|toi-même] et
        <<- />> 2p


__tag_prop_sub__
    ce [que|qu’|qu]
        <<- />> ce_que


## Incohérences avec formes verbales 1sg et 2sg sans sujet

__conj_xxxai__sans_sujet!3__
    [se|s’]  ?[en|y|le|la|l’|les]¿  (~ai$)
        <<- /conj/ morph(\1, ":1s", ":(?:G|W|M|J|3[sp])")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 1ʳᵉ personne du singulier. Sujet (“je” ou “moi qui”) introuvable.

    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  (~ai$)  ~¬[jJ]e
        <<- /conj/ morph(\1, ":1s", ":(?:E|G|W|M|J|3[sp])") and not tag_before(\1, "1s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 1ʳᵉ personne du singulier. Sujet (“je” ou “moi qui”) introuvable.

    [me|m’|te|t’|nous|vous]     ?[le|la|l’|les|en|y]¿   (~ai$)  ~¬[jJ]e
    [le|la|l’|les]              [lui|leur|en|y]         (~ai$)  ~¬[jJ]e
    [lui|leur]                  en                      (~ai$)  ~¬[jJ]e
        <<- /conj/ morph(\1, ":1s", ":(?:E|G|W|M|J|3[sp])") and not tag_before(\1, "1s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 1ʳᵉ personne du singulier. Sujet (“je” ou “moi qui”) introuvable.

    ~ai$  ~¬[jJ]e
        <<- morph(\1, ":1s", ":(?:E|G|W|M|J|3[sp]|N|A|Q)") and not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "1s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 1ʳᵉ personne du singulier. Sujet (“je” ou “moi qui”) introuvable.


__conj_xxxas_xxxes__sans_sujet!3__
    [se|s’]  ?[en|y|le|la|l’|les]¿  (~[ae]s$)
        <<- /conj/ morph(\1, ":2s", ":(?:G|W|M|J|3[sp])")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 2ᵉ personne du singulier. Sujet (“tu” ou “toi qui”) introuvable.

    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  (~[ae]s$)  ~¬[tT]u
        <<- /conj/ morph(\1, ":2s", ":(?:E|G|W|M|J|3[sp]|1p)") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 2ᵉ personne du singulier. Sujet (“tu” ou “toi qui”) introuvable.

    [me|m’|te|t’|nous|vous]     ?[le|la|l’|les|en|y]¿   (~[ae]s$)  ~¬[tT]u
    [le|la|l’|les]              [lui|leur|en|y]         (~[ae]s$)  ~¬[tT]u
    [lui|leur]                  en                      (~[ae]s$)  ~¬[tT]u
        <<- /conj/ morph(\1, ":2s", ":(?:E|G|W|M|J|3[sp]|1p)") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 2ᵉ personne du singulier. Sujet (“tu” ou “toi qui”) introuvable.

    ~[ae]s$  ~¬[tT]u
        <<- /conj/ morph(\1, ":2s", ":(?:E|G|W|M|J|3[sp]|N|A|Q|1p)") and not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Ceci est un verbe à la 2ᵉ personne du singulier. Sujet (“tu” ou “toi qui”) introuvable.


__conj_xxxxxs_sans_sujet!3__
    [se|s’]  ?[en|y|le|la|l’|les]¿  (~[iudnrtpcï]s$)
        <<- /conj/ morph(\1, ":[12]s", ":(?:G|W|M|J|3[sp]|2p|1p)")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  (~[iudnrtpcï]s$)  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ morph(\1, ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p)")
            and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    [me|m’|te|t’|nous|vous]     ?[le|la|l’|les|en|y]¿   (~[iudnrtpcï]s$)  ~¬(?:[tT]u|[jJ]e)
    [le|la|l’|les]              [lui|leur|en|y]         (~[iudnrtpcï]s$)  ~¬(?:[tT]u|[jJ]e)
    [lui|leur]                  en                      (~[iudnrtpcï]s$)  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ morph(\1, ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p)")
            and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    étais  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not morph(<1, ":[DA].*:p")
            and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    ~[iudnrtpcï]s$  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ morph(\1, ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p|V0e|N|A|Q)") and not (\1.istitle() and before0(r"\w"))
            and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.


__conj_peux_veux_vaux_équivaux_prévaux_sans_sujet!3__
    [se|s’]  ?[en|y|le|la|l’|les]¿  ([peux|veux|vaux|équivaux|prévaux])
        <<- /conj/ -1>> =suggVerb(\1, ":3s")                                                        # Incohérence. Le sujet de cette forme verbale est introuvable.

    [ne|n’]  ?[le|la|l’|les|en|me|m’|te|t’|nous|vous|lui|leur|y]¿  ([peux|veux|vaux|équivaux|prévaux])  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    [me|m’|te|t’|nous|vous]     ?[le|la|l’|les|en|y]¿   ([peux|veux|vaux|équivaux|prévaux])  ~¬(?:[tT]u|[jJ]e)
    [le|la|l’|les]              [lui|leur|en|y]         ([peux|veux|vaux|équivaux|prévaux])  ~¬(?:[tT]u|[jJ]e)
    [lui|leur]                  en                      ([peux|veux|vaux|équivaux|prévaux])  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    vaux  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "1s") and not tag_before(\1, "2s")
            and not morph(<1, ":(?:R|D.*:p)")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.

    [peux|veux|équivaux|prévaux]  ~¬(?:[tT]u|[jJ]e)
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "1s") and not tag_before(\1, "2s")
        -1>> =suggVerb(\1, ":3s")                                                                   # Incohérence. Le sujet de cette forme verbale est introuvable.


TEST: Caroline, quand l’heure viendra, {{décideras}} de la conduite à tenir.
TEST: ceux-là, dans tous les cas de figure et dans tous les coups ratés, {{comprenais}} mal pourquoi on leur en voulait.
TEST: Lui, quand il y pensait, en {{arrivai}} à chaque fois à la même conclusion.
TEST: Elle, ici et dans tous les cas de figure, {{veux}} toujours en faire plus.
TEST: Le total de cette opération, contrairement à ce qu’on pense, {{équivaux}} à au moins trois d’entre eux.
TEST: {{j'}}ai signalé que {{j'}}essayais de regrouper les paragraphes. (Tests avec apostrophe droite.)
TEST: je me questionne, {{exiges}} des réponses mais n’en obtiens pas…
TEST: dans tous les cas de figure imaginés par cette bande de nuls, il n’y en a pas un qui les sauvera.
TEST: ces gens qui vont par monts et par vaux.
TEST: pour ne justement pas donner l’impression de s’être trompé.


## Incohérences avec formes verbales 1pl et 2pl sans sujet
__conj_xxxons_sans_sujet!3__
    @:1p¬:[EGMNAJ]  ~¬[nN]ous
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not tag_before(\1, "1p") -1>> =suggVerb(\1, ":3p")     # Ceci est un verbe à la 1ʳᵉ personne du pluriel. Sujet (“nous” ou équivalent) introuvable.

__conj_xxxez_sans_sujet!3__
    @:2p¬:[EGMNAJ]  ~¬[vV]ous
        <<- /conj/ not (\1.istitle() and before0(r"\w")) and not tag_before(\2, "2p") -1>> =suggVerb(\1, ":3p")     # Ceci est un verbe à la 2ᵉ personne du pluriel. Sujet (“vous” ou équivalent) introuvable.

TEST: les hommes et les femmes, qui sans un bruit, sans une parole amère, {{continuerons}} leur tâche n’en seront pas plus récompensés.
TEST: il était dit que cette femme et son frère {{promènerez}} leur chien à cette heure de la journée.
TEST: cet homme et cette femme {{pouvez}} y parvenir avec de la persévérance
TEST: Comme on lui disait que vous-même aviez déjà consulté le notaire
TEST: ce sont des terroristes et ça ne nous arrivera pas à nous, qui n’avons rien à nous reprocher
TEST: mes supérieurs et moi-même avons pris la décision de ne pas vendre
TEST: Ni lui ni moi n’avions mangé
TEST: Mon épouse et moi-même avons toujours dit
TEST: que vous ou moi ignorions à peu près tout du boson de Higgs n’a pas du tout le même sens


!!
!!
!!!! Confusions générales                                                                         !!
!!
!!

................................................................................
    *NUM  ~(?:Exa|P[ée]ta|Téra|Giga|Méga|Kilo|Hecto|Déc[ai]|Centi|Milli|Micro|Nano|Pico|Femto|Atto|Ze(?:pto|tta)|Yo(?:cto|etta))(?:mètre|watt|gramme|seconde|ampère|kelvin|mole|cand[eé]la|hertz|henry|newton|pascal|joule|coulomb|volt|ohm|farad|tesla|w[eé]ber|radian|stéradian|lumen|lux|becquerel|gray|sievert|siemens|katal)s?$
    @:B   ~(?:Exa|P[ée]ta|Téra|Giga|Méga|Kilo|Hecto|Déc[ai]|Centi|Milli|Micro|Nano|Pico|Femto|Atto|Ze(?:pto|tta)|Yo(?:cto|etta))(?:mètre|watt|gramme|seconde|ampère|kelvin|mole|cand[eé]la|hertz|henry|newton|pascal|joule|coulomb|volt|ohm|farad|tesla|w[eé]ber|radian|stéradian|lumen|lux|becquerel|gray|sievert|siemens|katal)s?$
        <<- /maj/ not \2.isupper() -2:>> =\2.lower()                # Pas de majuscule sur les unités de mesure.|https://fr.wikipedia.org/wiki/Unit%C3%A9_de_mesure

TEST: J’en veux 3 {{Mètres}}.
TEST: Elle en prendra vingt {{Grammes}}.

































































































































































































































































































!!
!!
!!!! Locutions invariables                                                                        !!
!!
!!
................................................................................
    <<- isStart() >>>
    <<- morph(\2, ":D.*:p", False) -1>> puissent                                    # Conjugaison erronée. Ce verbe devrait s’accorder au substantif qui le suit.
    <<- __else__ and \1.endswith("s") and \2 != "tu" and not before(r"(?i)\btu ")
    -1>> puisse                                                                     # Conjugaison erronée. Sujet “tu” introuvable.

TEST: {{puisse}} les hommes enfin comprendre leurs erreurs.                         ->> puissent
TEST: {{puisses}} notre ennemi trembler de peur devant notre courage.               ->> puisse








































































































































@@@@
@@@@
@@@@
@@@@