Grammalecte  Check-in [2c2013067a]

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: 2c2013067a9dc50a294906756114cab96ceec61156ba4b7f4999cd1df2a4c067
User & Date: olr on 2018-06-29 17:14:11
Other Links: branch diff | manifest | tags
Context
2018-06-29
17:56
[fr] conversion: regex rules -> graph rules check-in: 02986d2c03 user: olr tags: fr, rg
17:14
[fr] conversion: regex rules -> graph rules check-in: 2c2013067a user: olr tags: fr, rg
15:32
[core] fix intertwined bugs concerning switches between regex rules and graph rules (the transition is a mess) check-in: c6acf0a935 user: olr tags: core, rg
Changes

Modified gc_lang/fr/rules.grx from [0f2bfff00f] to [9e1e612bbf].

6580
6581
6582
6583
6584
6585
6586












6587
6588
6589
6590
6591
6592
6593
....
7087
7088
7089
7090
7091
7092
7093
7094
















































































































































7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
.....
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
        <<- ~>> _

    en cours ~¬^(?:de|d’)$
        <<- ~1:2>> *

    de [mes|tes|ses|nos|vos|leurs] yeux [vu|vue|vus|vues]
        <<- ~1:3>> *













    en lieu et place [de|des|du]
        <<- ~2:4>> *

    en l’ [absence|honneur] [de|des|du]
    en plein milieu [de|des|du]
        <<- ~2:3>> *
................................................................................
        <<- morph(\2, ":M") and not before(r"\b(?:plus|moins|aussi) .* que +$")
        ~2:4>> =rewriteSubject(\2,\4) + "||"

    <start>  ~^[A-ZÉÈÊ]  et  [moi|toi|lui|elle|nous|vous|eux|elles]
        <<- morph(\2, ":M")
        ~2:0>> =rewriteSubject(\2,\4) + "||"


















































































































































@@@@
@@@@END_GRAPH                                                                                      _
@@@@


# après être, après avoir
__[i](p_être_qqch)__
    ({etre}) +(à jamais|un jour|sous peu|du moins|avant tout|de passage|frère et sœur|mari et femme|père et mère|papa et maman|mission impossible|monnaie courante|pieds (?:et poings liés|nus)|partie (?:intégrante|prenante))  @@0,$
    <<- morph(\1, ":V0e", False) ~2>> *
__[i](p_être_pronom_qqch)__
    ([ésf]\w+)-(?:ils|[nv]ous|elles) +(frère et sœur|mari et femme|père et mère|papa et maman|bon marché|meilleur marché|mission impossible)  @@0,$
    <<- morph(\1, ":V0e", False) ~2>> *
__[i](p_qqch_on_ne_peut_plus_que)__
    ({w1}) +(on ne peut (?:pas |)(?:plus|moins)|plus que) +({w2})  @@0,w,$
    <<- morph(\1, ":(?:V0e|N)", False) and morph(\3, ":[AQ]", False) ~2>> *
__[i](p_avoir_être_loc_adv1)__
    ({avoir_etre}) +(pas|jamais|plus|en partie|point|tous (?:deux|trois)|somme toute)  @@0,$
    <<- morph(\1, ":V0", False) ~2>> *
__[i](p_avoir_être_loc_adv2)__
    ({avoir_etre}) +(beaucoup|bien entendu|dans (?:leur |son |l’)ensemble|à ce(?:t (?:instant|endroit)| moment)|sans peine|un (?:moment|peu|minimum|petit peu|tout petit peu)) +({w_2})  @@0,w,$
    <<- morph(\1, ":V0", False) and morph(\3, ":[QY]", False) ~2>> *
__[i](p_avoir_loc_adv)__
    ({avoir}) +(besoin|bon (?:dos|pied,? bon œil)|carte blanche|confiance|conscience|crainte|faim|forme humaine|honte|partie (?:gagnée|liée)|peur|soif|voix au chapitre)  @@0,$
    <<- morph(\1, ":V0a", False) and not (\2 == "crainte" and before(r"\w")) ~2>> *
__[i](p_avoir_pronom_loc_adv)__
    ({avoir})-(?:je|tu|ils?|elles?|nous|vous|on) +(besoin|bon (?:dos|pied,? bon œil)|carte blanche|confiance|conscience|crainte|faim|forme humaine|honte|partie (?:gagnée|liée)|peur|soif|voix au chapitre)  @@0,$
    <<- morph(\1, ":V0a", False) ~2>> *
__[i](p_avoir_tous_toutes_les)__
    ({avoir}) +(tou(?:te|)s les ({w_2})) +({w_2})  @@0,w,>3:$,$
    <<- morph(\1, ":V0a", False) and morph(\3, ":B", False) and morph(\4, ">besoin/|:(?:Q|V1.*:Y)", False) ~2>> *

# elle aussi + adj
__[i](p_elle_aussi)__
    (elle aussi) +({w_3}) @@0,$
    <<- morph(\2, ":A:[fe]:s", False) ~1>> *
    <<- __else__ and morphex(\2, ":W", ":3s") and morph(word(1), ":A:[fe]:s", False, True) ~1>> *
__[i](p_elles_aussi)__
    (elles aussi) +({w_3}) @@0,$
    <<- morph(\2, ":A:[fe]:p", False) ~1>> *
    <<- __else__ and morphex(\2, ":W", ":3p") and morph(word(1), ":A:[fe]:p", False, True) ~1>> *

# après verbe
__[i](p_verbe_loc_adv1)__       ({w1}) (?:pas |)(jour et nuit|quand même(?: pas|)) @@0,$ <<- morph(\1, ":V", False) ~2>> *
__[i](p_verbe_loc_adv2)__       ({w_2}) (bien entendu|juste|ensemble) @@0,$ <<- morph(\1, ":V[123]") ~2>> *
__[i](p_verbe_loc_adv3)__       ({w_2}) ((?:fort|très|super) (?:bien|mal)|bien|mal) @@0,$ <<- morph(\1, ":V[123]", False) ~2>> *
__[i](p_verbe_pronom_aussi)__   ({w_1}) ((?:[mt]oi|[nv]ous|elles?|lui|eux) aussi) @@0,$ <<- morph(\1, ":V", False) ~2>> *
__[i](p_tout_aussi)__           (?:tout |)aussi <<- ~>> *
................................................................................
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
    <<- morphex(\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
    <<- morphex(\1, ":V", ":[ISK].*:2s") -1>> =suggVerb(@, ":2s")                                   # Forme interrogative. « \1 » n’est pas un verbe à la 2ᵉ personne du singulier.
    <<- not morph(\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,$
    <<- morphex(\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 morphex(\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 morphex(\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,$
    <<- morphex(\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
    <<- morphex(\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
    <<- morphex(\1, ":V", ":(?:1p|E:2[sp])") -1>> =suggVerb(@, ":1p")                               # Forme interrogative ou impérative incorrecte.
    <<- morphex(\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
    <<- morphex(\1, ":V", ":2p") -1>> =suggVerb(@, ":2p")                                           # Forme interrogative ou impérative incorrecte.
    <<- not morph(\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
    <<- morphex(\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 morph(\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 ?



!!!! Verbe auxiliaire                                                                             !!

__[i]/conf(conf_avoir_sujet_participe_passé)__
    ({avoir})-(?:je|tu|ils?|elles?|on) +({ppas})  @@0,$
    <<- morph(\1, ">avoir/", False) and morph(\2, ":V.......e_.*:Q", False) -1>> _  # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.
__[i]/conf(conf_sujet_avoir_participe_passé)__
    (?:j’|je |tu |ils? |elles? |on ) *({avoir}) +({ppas})  @@*,$
    <<- morph(\1, ">avoir/", False) and morph(\2, ":V.......e_.*:Q", False) -1>> _  # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

TEST: {{Ait}}-il arrivé à ses fins ?
TEST: je n’{{avais}} pas parti avec eux.
TEST: Avais-je partie liée avec lui ?







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







 








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





|
<
<
<
<
<
<
<
<
<

|


|











<
<
<
<
<
<
<
<
<







 







|









|
|







|
|

|











|
|











|
|







|
|








|

|











|







6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
....
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256









7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272









7273
7274
7275
7276
7277
7278
7279
.....
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
        <<- ~>> _

    en cours ~¬^(?:de|d’)$
        <<- ~1:2>> *

    de [mes|tes|ses|nos|vos|leurs] yeux [vu|vue|vus|vues]
        <<- ~1:3>> *

    elle aussi  @:A:[fe]:s
        <<- ~1:2>> *

    elle aussi  @:W¬:(?:3s|X)  [<end>|@:A:[fe]:s]
        <<- ~1:2>> *

    elles aussi  @:A:[fe]:p
        <<- ~1:2>> *

    elle aussi  @:W¬:(?:3p|X)  [<end>|@:A:[fe]:p]
        <<- ~1:2>> *

    en lieu et place [de|des|du]
        <<- ~2:4>> *

    en l’ [absence|honneur] [de|des|du]
    en plein milieu [de|des|du]
        <<- ~2:3>> *
................................................................................
        <<- morph(\2, ":M") and not before(r"\b(?:plus|moins|aussi) .* que +$")
        ~2:4>> =rewriteSubject(\2,\4) + "||"

    <start>  ~^[A-ZÉÈÊ]  et  [moi|toi|lui|elle|nous|vous|eux|elles]
        <<- morph(\2, ":M")
        ~2:0>> =rewriteSubject(\2,\4) + "||"


__purge_après_être__
    >être [bon|meilleur] marché
    >être avant tout
    >être cousin et cousine
    >être de passage
    >être du moins
    >être en partie
    >être frère et sœur
    >être mari et femme
    >être mission impossible
    >être monnaie courante
    >être papa et maman
    >être partie [intégrante|prenante]
    >être pieds et poings liés
    >être pieds nus
    >être père et mère
    >être somme toute
    >être sous peu
    >être tous [deux|trois]
    >être un jour
    >être à jamais
    >être [pas|jamais|plus|point]
        <<- ~2:0>> *

    ~-ils$ [bon|meilleur] marché
    ~-ils$ avant tout
    ~-ils$ cousin et cousine
    ~-ils$ de passage
    ~-ils$ du moins
    ~-ils$ en partie
    ~-ils$ frère et sœur
    ~-ils$ mari et femme
    ~-ils$ mission impossible
    ~-ils$ monnaie courante
    ~-ils$ papa et maman
    ~-ils$ partie [intégrante|prenante]
    ~-ils$ pieds et poings liés
    ~-ils$ pieds nus
    ~-ils$ père et mère
    ~-ils$ somme toute
    ~-ils$ sous peu
    ~-ils$ tous [deux|trois]
    ~-ils$ un jour
    ~-ils$ à jamais
    ~-ils$ [pas|jamais|plus|point]
        <<- morph(\1, ">V0e", 0, -4) ~2:0>> *

    ~-[nv]ous$ [bon|meilleur] marché
    ~-[nv]ous$ avant tout
    ~-[nv]ous$ cousin et cousine
    ~-[nv]ous$ de passage
    ~-[nv]ous$ du moins
    ~-[nv]ous$ en partie
    ~-[nv]ous$ frère et sœur
    ~-[nv]ous$ mari et femme
    ~-[nv]ous$ mission impossible
    ~-[nv]ous$ monnaie courante
    ~-[nv]ous$ papa et maman
    ~-[nv]ous$ partie [intégrante|prenante]
    ~-[nv]ous$ pieds et poings liés
    ~-[nv]ous$ pieds nus
    ~-[nv]ous$ père et mère
    ~-[nv]ous$ somme toute
    ~-[nv]ous$ sous peu
    ~-[nv]ous$ tous [deux|trois]
    ~-[nv]ous$ un jour
    ~-[nv]ous$ à jamais
    ~-[nv]ous$ [pas|jamais|plus|point]
        <<- morph(\1, ">V0e", 0, -5) ~2:0>> *

    ~-elles$ [bon|meilleur] marché
    ~-elles$ avant tout
    ~-elles$ cousin et cousine
    ~-elles$ de passage
    ~-elles$ du moins
    ~-elles$ en partie
    ~-elles$ frère et sœur
    ~-elles$ mari et femme
    ~-elles$ mission impossible
    ~-elles$ monnaie courante
    ~-elles$ papa et maman
    ~-elles$ partie [intégrante|prenante]
    ~-elles$ pieds et poings liés
    ~-elles$ pieds nus
    ~-elles$ père et mère
    ~-elles$ somme toute
    ~-elles$ sous peu
    ~-elles$ tous [deux|trois]
    ~-elles$ un jour
    ~-elles$ à jamais
    ~-elles$ [pas|jamais|plus|point]
        <<- morph(\1, ">V0e", 0, -6) ~2:0>> *

    >être beaucoup
    >être bien entendu
    >être dans [l’|leur|son] ensemble
    >être [à|en] ce moment  ?précis¿
    >être [à|en] cet instant ?précis¿
    >être sans peine
    >être un [moment|peu|minimum]
    >être un petit peu
    >être un tout petit peu
        <<- morph(>1, ":[QY]") ~2:0>> *

    ~-ils$ beaucoup
    ~-ils$ bien entendu
    ~-ils$ dans [l’|leur|son] ensemble
    ~-ils$ [à|en] ce moment  ?précis¿
    ~-ils$ [à|en] cet instant ?précis¿
    ~-ils$ sans peine
    ~-ils$ un [moment|peu|minimum]
    ~-ils$ un petit peu
    ~-ils$ un tout petit peu
        <<- morph(\1, ">V0e", 0, -4) and morph(>1, ":[QY]") ~2:0>> *

    ~-[nv]ous$ beaucoup
    ~-[nv]ous$ bien entendu
    ~-[nv]ous$ dans [l’|leur|son] ensemble
    ~-[nv]ous$ [à|en] ce moment  ?précis¿
    ~-[nv]ous$ [à|en] cet instant ?précis¿
    ~-[nv]ous$ sans peine
    ~-[nv]ous$ un [moment|peu|minimum]
    ~-[nv]ous$ un petit peu
    ~-[nv]ous$ un tout petit peu
        <<- morph(\1, ">V0e", 0, -5) and morph(>1, ":[QY]") ~2:0>> *

    ~-elles$ beaucoup
    ~-elles$ bien entendu
    ~-elles$ dans [l’|leur|son] ensemble
    ~-elles$ [à|en] ce moment  ?précis¿
    ~-elles$ [à|en] cet instant ?précis¿
    ~-elles$ sans peine
    ~-elles$ un [moment|peu|minimum]
    ~-elles$ un petit peu
    ~-elles$ un tout petit peu
        <<- morph(\1, ">V0e", 0, -6) and morph(>1, ":[QY]") ~2:0>> *

    on ne peut [plus|moins]
    on ne peut pas [plus|moins]
    plus que
        <<- morph(<1, ":(?:V0e|N)") and morph(>1, ":[AQ]") ~>> *



@@@@
@@@@END_GRAPH                                                                                      _
@@@@


# après avoir









__[i](p_avoir_être_loc_adv1)__
    ({avoir}) +(pas|jamais|plus|en partie|point|tous (?:deux|trois)|somme toute)  @@0,$
    <<- morph(\1, ":V0", False) ~2>> *
__[i](p_avoir_être_loc_adv2)__
    ({avoir}) +(beaucoup|bien entendu|dans (?:leur |son |l’)ensemble|à ce(?:t (?:instant|endroit)| moment)|sans peine|un (?:moment|peu|minimum|petit peu|tout petit peu)) +({w_2})  @@0,w,$
    <<- morph(\1, ":V0", False) and morph(\3, ":[QY]", False) ~2>> *
__[i](p_avoir_loc_adv)__
    ({avoir}) +(besoin|bon (?:dos|pied,? bon œil)|carte blanche|confiance|conscience|crainte|faim|forme humaine|honte|partie (?:gagnée|liée)|peur|soif|voix au chapitre)  @@0,$
    <<- morph(\1, ":V0a", False) and not (\2 == "crainte" and before(r"\w")) ~2>> *
__[i](p_avoir_pronom_loc_adv)__
    ({avoir})-(?:je|tu|ils?|elles?|nous|vous|on) +(besoin|bon (?:dos|pied,? bon œil)|carte blanche|confiance|conscience|crainte|faim|forme humaine|honte|partie (?:gagnée|liée)|peur|soif|voix au chapitre)  @@0,$
    <<- morph(\1, ":V0a", False) ~2>> *
__[i](p_avoir_tous_toutes_les)__
    ({avoir}) +(tou(?:te|)s les ({w_2})) +({w_2})  @@0,w,>3:$,$
    <<- morph(\1, ":V0a", False) and morph(\3, ":B", False) and morph(\4, ">besoin/|:(?:Q|V1.*:Y)", False) ~2>> *











# après verbe
__[i](p_verbe_loc_adv1)__       ({w1}) (?:pas |)(jour et nuit|quand même(?: pas|)) @@0,$ <<- morph(\1, ":V", False) ~2>> *
__[i](p_verbe_loc_adv2)__       ({w_2}) (bien entendu|juste|ensemble) @@0,$ <<- morph(\1, ":V[123]") ~2>> *
__[i](p_verbe_loc_adv3)__       ({w_2}) ((?:fort|très|super) (?:bien|mal)|bien|mal) @@0,$ <<- morph(\1, ":V[123]", False) ~2>> *
__[i](p_verbe_pronom_aussi)__   ({w_1}) ((?:[mt]oi|[nv]ous|elles?|lui|eux) aussi) @@0,$ <<- morph(\1, ":V", False) ~2>> *
__[i](p_tout_aussi)__           (?:tout |)aussi <<- ~>> *
................................................................................
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 ?



!!!! Verbe auxiliaire                                                                             !!

__[i]/conf(conf_avoir_sujet_participe_passé)__
    ({avoir})-(?:je|tu|ils?|elles?|on) +({ppas})  @@0,$
    <<- analyse(\1, ">avoir/", False) and analyse(\2, ":V.......e_.*:Q", False) -1>> _  # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.
__[i]/conf(conf_sujet_avoir_participe_passé)__
    (?:j’|je |tu |ils? |elles? |on ) *({avoir}) +({ppas})  @@*,$
    <<- morph(\1, ">avoir/", False) and morph(\2, ":V.......e_.*:Q", False) -1>> _  # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

TEST: {{Ait}}-il arrivé à ses fins ?
TEST: je n’{{avais}} pas parti avec eux.
TEST: Avais-je partie liée avec lui ?