Grammalecte  Check-in [544fd5f5ad]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fr | rg
Files: files | file ages | folders
SHA3-256: 544fd5f5ad62492e95b640dc6837b58becd7491812397b3901494f85ba593ad8
User & Date: olr on 2018-08-31 14:44:26
Other Links: branch diff | manifest | tags
Context
2018-08-31
17:52
[core][build][fr] function tag() check-in: 9d18025dfd user: olr tags: build, core, fr, rg
14:44
[fr] ajustements check-in: 544fd5f5ad user: olr tags: fr, rg
09:28
[core][fr] merge functions <morph> and <morphex> check-in: 92f00f290c user: olr tags: core, fr, rg
Changes

Modified gc_lang/fr/rules.grx from [981abbfa7c] to [f8603c5689].

1653
1654
1655
1656
1657
1658
1659

1660
1661
1662
1663




1664
1665
1666
1667
1668
1669
1670
1671
....
1701
1702
1703
1704
1705
1706
1707



1708
1709
1710
1711
1712
1713
1714
1715
1716
1717






1718
1719
1720
1721
1722
1723
1724
....
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
....
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
....
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
....
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
....
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
....
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
.....
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
.....
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505



16506
16507
16508
16509
16510
16511
16512

16513
16514
16515
16516
16517
16518
16519

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


    [me|m’|te|se|s’]  ?[le|la|l’|les]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")





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

    t’  [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:X|>rien/
        <<- =>> select(\3, ":(?:[123][sp]|P|Y)")

    t’  @:¬:X|>(?:rien|ils?|elles?|on)/
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")
................................................................................

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

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





__da_été__
    >avoir été
        <<- =>> select(\2, ":Q")


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








__da_puis__
    puis
        <<- not value(<1, "|je|ne|n’|le|la|l’|les|lui|nous|vous|leur|") =>> =exclude(\1, ":V")


__da_son_ton__
................................................................................
        <<- =>> exclude(\2, ":D")


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


__da_y_compris__
    y compris
        <<- not value(<1, "|n’|j’|tu|t’|m’|s’|") ~>> ␣
        <<- =>> define(\1, [":G:R"])


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

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

## 1sg
__conj_je__
    je  @:V¬:(?:1s|G)
        <<- /conj/ not (morph(\-1, ":[PQ]") and morph(<1, ":V0.*:1s")) >>>
        <<- /conj/ \-1 == "est" or \-1 == "es" -2>> ai|aie|suis     # Conjugaison erronée. Confusion probable entre “être” et “avoir”. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.
        <<- /conj/ __else__ --1>> =suggVerb(\-1, ":1s")             # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.

    j’                                                                            @:V¬:(?:1s|G)
    j’       [en|y]                                                               @:V¬:(?:1s|G)
    [je|j’]  [ne|n’|le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]            @:V¬:(?:1s|G)
    [je|j’]  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:1s|G)
    [je|j’]  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:1s|G)
    [je|j’]  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:1s|G)
    [je|j’]  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:1s|G)
        <<- /conj/ \-1 == "est" or \-1 == "es" --1>> ai|aie|suis    # Conjugaison erronée. Confusion probable entre “être” et “avoir”. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.
        <<- /conj/ __else__ --1>> =suggVerb(\-1, ":1s")             # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.

TEST: je l’{{est}} perdu de vue.                                ->> ai|aie|suis
TEST: je {{donnerait}} tout pour y parvenir.
TEST: Je le lui {{prend}}.
TEST: Je l’{{apprend}}.
................................................................................
TEST: J’{{arrivait}} en retard.
TEST: J’m’la {{fumerait}} bien, cette clope.
TEST: J’leur en {{veut}} pas, à ces crétins.


## 2sg
__conj_tu__
    tu                                                                       @:V¬:(?:G|P|[ISK].*:2s)
    tu  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:G|P|[ISK].*:2s)
    tu  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:G|P|[ISK].*:2s)
    tu  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:G|P|[ISK].*:2s)
    tu  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:G|P|[ISK].*:2s)
    tu  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:G|P|[ISK].*:2s)
        <<- /conj/ not morph(<1, ":V0.*:2s") --1>> =suggVerb(\-1, ":2s")    # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 2ᵉ personne du singulier.

TEST: Tu ne {{ment}} jamais.
TEST: Tu {{a}} mal ?
TEST: Tu ne le lui {{prend}} pas.
TEST: Tu ne m’{{attendra}} pas.
TEST: Jusqu’ici, on a tu le nom de la créature.
TEST: il s’est tu les jours après son agression.


## 3sg
__conj_il__
    il  @:V¬:(?:3s|G)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3s"))
        -2>> =suggVerb(\2, ":3s")                                           # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ __also__ and morph(\2, ":3p") -1>> ils                   # Accord avec “\2”.

    il  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3s|G)
    il  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3s|G)
    il  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:3s|G)
    il  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:3s|G)
    il  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:3s|G)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                              # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ morph(\-1, ":3p") -1>> ils                               # Accord avec “\-1”.

TEST: {{Il}} {{accusent}}.
TEST: il {{bus}} du vin.
TEST: Il {{pris}}.
TEST: Il {{rougis}}.
................................................................................
TEST: Il {{mues}}.
TEST: {{il}} ne {{pensent}} à rien.
TEST: il ne la lui {{donné}} pas souvent
TEST: il n’y {{aurais}} plus rien à attendre de la religion et de la politique.


__conj_on__
    on  @:V¬:(?:3s|G)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3s"))
        --1>> =suggVerb(\-1, ":3s")                                         # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    on  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3s|P|G)
    on  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3s|P|G)
    on  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:3s|P|G)
    on  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:3s|P|G)
    on  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:3s|P|G)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                              # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: on {{remué}} beaucoup.
TEST: on {{refuses}} tout cela
TEST: on ne se {{bougent}} pas suffisamment


__conj_ce__
    [ce|c’]  @>(?:devoir|devenir|pouvoir|vouloir|savoir)/:V¬:(?:N|A|3s|P|Q|G)
    [ce|c’]  [ne|n’]  @>(?:devoir|devenir|pouvoir|vouloir|savoir)/:V¬:(?:3s|P|G)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                              # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    [ce|c’]  @>être/:V¬:(?:N|A|3[sp]|P|Q|G)
    [ce|c’]  [le|l’|en]  @>être/:V¬:(?:N|A|3s|P|Q|G)
    [ce|c’]  [ne|n’]  ?[le|l’|en]¿  @>être/:V¬:(?:3[sp]|P|Q|G)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                              # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: pour toi qui sais tout, ce ne le {{fus}} pas
TEST: ce secret tu, ce {{devais}} être un cauchemar.
TEST: Ce peut être un chien ou un chat.
TEST: ce ne peut être aussi stupide.
TEST: ce dut être un cauchemar.
................................................................................
TEST: Vous {{arrivais}} trop tard.
TEST: vous ne l’{{avait}} pas vu.
TEST: je crois, vous m’{{avais}} trompé…


## 3pl
__conj_ils__
    ils  @:V¬:(?:3p|G)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3p"))
        -2>> =suggVerb(\2, ":3p")                                               # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ __also__ and morph(\2, ":3s") -1>> il                        # Accord avec “\2”.

    ils  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3p|G)
    ils  ?[ne|n’]¿  [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3p|G)
    ils  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:3p|G)
    ils  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:3p|G)
    ils  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:3p|G)
        <<- /conj/ --1>> =suggVerb(\-1, ":3p")                                  # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ morph(\-1, ":3s") -1>> il                                    # Accord avec “\-1”.

TEST: {{Ils}} {{vienne}} souvent.
TEST: Ils ne m’{{attends}} pas.
TEST: {{Ils}} vous le {{donne}}.
TEST: {{Ils}} {{faut}} venir.
................................................................................
__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
................................................................................
!!
!!

#### devoir / faire / falloir / pouvoir / savoir / vouloir

__infi_faire_verbe__
    >faire  ~(?:ée?s?|ez)$
        <<- /infi/ not value(<1, "|en|de|") and morph(\1, ":V") and morph(\2, ":V", ":[MG]")
        -2>> =suggVerbInfi(\2)                                  # Après le verbe “faire”, ce verbe devrait être à l’infinitif.

TEST: elle fit peu {{mangé}} les enfants
TEST: Tu fais {{décoloré}} tes cheveux ?
TEST: quelqu’un fait {{passé}} ces gens en secret.
TEST: il le fait {{pensé}} à son avenir.
TEST: ce sont des faits constestés.
TEST: c’est un fait reconnu.
TEST: fait pourtant avéré et corroboré par le même sondage.
TEST: ce fait rapporté par des témoins au-delà de tout soupçon n’est pas contestable.

#__[i]/infi(infi_faire)__
................................................................................
TEST: donnant à entendre qu’il avait l’intention de violer Laura dès qu’il en aurait l’occasion


# verbe que + subjonctif
__vmode_qqch_que_subjonctif1__
    [>permettre|>falloir|>vouloir|>ordonner|>exiger|>désirer|>préférer|>suffire]  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
    [afin|avant|pour|quoi|sans]  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ -4>> =suggVerbMode(\4, ":S", \3)                                                # Après « \1 que », ce verbe devrait être au subjonctif.

    >douter  [que|qu’]  @:(?:Os|M)  @:I¬:(?:[GYSK]|If)
        <<- /vmode/ morph(\1, ":V", ":N") -4>> =suggVerbMode(\4, ":S", \3)                          # Après « \1 que », ce verbe devrait être au subjonctif.




TEST: Il suffit qu’il {{court}} plus
TEST: Je veux qu’il {{finit}} son repas.
TEST: quoi qu’il en {{conclut}}
TEST: Je ne veux pas que tu {{es}} des ennuis
TEST: Avant que tu {{pars}}, je voudrais qu’on discute.
TEST: Sans qu’elle {{prend}} le temps d’analyser le problème.

TEST: Nul doute qu’elle nourrira à brève échéance la haine de demain à notre égard.
TEST: Je ne doute pas qu’ils réussiront leur mission.
TEST: Je me doutais bien qu’Apple pourrait marcher
TEST: il ne fait aucun doute qu’Amazon le sait.
TEST: quoi que nous autres hommes ayons pu faire









>




>
>
>
>
|







 







>
>
>






|



>
>
>
>
>
>







 







<
<
<
<
<
<







 







|




|
|
|
|
|
|
|







 







|
|
|
|
|
|
|











|




|
|
|
|
|







 







|



|
|
|
|
|








|
|


|
|
|







 







|




|
|
|
|
|







 







|
|


|
|
|


|


|
|
|


|


|


|







 







|




|







 







|


|
>
>
>







>







1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
....
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
....
1740
1741
1742
1743
1744
1745
1746






1747
1748
1749
1750
1751
1752
1753
....
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
....
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
....
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
....
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
....
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
.....
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
.....
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517
16518
16519
16520
16521
16522
16523
16524
16525
16526
16527
16528
16529
16530
16531

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

    [me|m’|te|se|s’]  ?[le|la|l’|les]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")

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

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

    t’  [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:X|>rien/
        <<- =>> select(\3, ":(?:[123][sp]|P|Y)")

    t’  @:¬:X|>(?:rien|ils?|elles?|on)/
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")
................................................................................

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

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

    [<start>|,]  quelqu’un  *WORD
        <<- =>> exclude(\3, ":N")


__da_été__
    >avoir été
        <<- =>> select(\2, ":Q")


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

    passé  [<end>|,|@:R]
        <<- =>> exclude(\1, ":G")

    y compris
        <<- not value(<1, "|n’|j’|tu|t’|m’|s’|") ~>> ␣
        <<- =>> define(\1, [":G:R"])

__da_puis__
    puis
        <<- not value(<1, "|je|ne|n’|le|la|l’|les|lui|nous|vous|leur|") =>> =exclude(\1, ":V")


__da_son_ton__
................................................................................
        <<- =>> exclude(\2, ":D")


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








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

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

## 1sg
__conj_je__
    je  @:V¬:(?:1s|Ov)
        <<- /conj/ not (morph(\-1, ":[PQ]") and morph(<1, ":V0.*:1s")) >>>
        <<- /conj/ \-1 == "est" or \-1 == "es" -2>> ai|aie|suis     # Conjugaison erronée. Confusion probable entre “être” et “avoir”. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.
        <<- /conj/ __else__ --1>> =suggVerb(\-1, ":1s")             # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.

    j’                                                                            @:V¬:(?:1s|Ov)
    j’       [en|y]                                                               @:V¬:(?:1s|Ov)
    [je|j’]  [ne|n’|le|la|l’|les|me|m’|te|t’|se|s’|nous|vous|lui|leur]            @:V¬:(?:1s|Ov)
    [je|j’]  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:1s|Ov)
    [je|j’]  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:1s|Ov)
        <<- /conj/ \-1 == "est" or \-1 == "es" --1>> ai|aie|suis    # Conjugaison erronée. Confusion probable entre “être” et “avoir”. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.
        <<- /conj/ __else__ --1>> =suggVerb(\-1, ":1s")             # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 1ʳᵉ personne du singulier.

TEST: je l’{{est}} perdu de vue.                                ->> ai|aie|suis
TEST: je {{donnerait}} tout pour y parvenir.
TEST: Je le lui {{prend}}.
TEST: Je l’{{apprend}}.
................................................................................
TEST: J’{{arrivait}} en retard.
TEST: J’m’la {{fumerait}} bien, cette clope.
TEST: J’leur en {{veut}} pas, à ces crétins.


## 2sg
__conj_tu__
    tu                                                                       @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:Ov|P|[ISK].*:2s)
    tu  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:Ov|P|[ISK].*:2s)
        <<- /conj/ not morph(<1, ":V0") --1>> =suggVerb(\-1, ":2s")    # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 2ᵉ personne du singulier.

TEST: Tu ne {{ment}} jamais.
TEST: Tu {{a}} mal ?
TEST: Tu ne le lui {{prend}} pas.
TEST: Tu ne m’{{attendra}} pas.
TEST: Jusqu’ici, on a tu le nom de la créature.
TEST: il s’est tu les jours après son agression.


## 3sg
__conj_il__
    il  @:V¬:(?:3s|Ov)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3s"))
        -2>> =suggVerb(\2, ":3s")                                           # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ __also__ and morph(\2, ":3p") -1>> ils                   # Accord avec “\2”.

    il  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3s|Ov)
    il  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3s|Ov)
    il  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:3s|Ov)
    il  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:3s|Ov)
    il  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:3s|Ov)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                              # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- /conj/ morph(\-1, ":3p") -1>> ils                               # Accord avec “\-1”.

TEST: {{Il}} {{accusent}}.
TEST: il {{bus}} du vin.
TEST: Il {{pris}}.
TEST: Il {{rougis}}.
................................................................................
TEST: Il {{mues}}.
TEST: {{il}} ne {{pensent}} à rien.
TEST: il ne la lui {{donné}} pas souvent
TEST: il n’y {{aurais}} plus rien à attendre de la religion et de la politique.


__conj_on__
    on  @:V¬:(?:3s|Ov)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3s"))
        --1>> =suggVerb(\-1, ":3s")                                         # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    on  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3s|P|Ov)
    on  [ne|n’]    [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3s|P|Ov)
    on  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:3s|P|Ov)
    on  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:3s|P|Ov)
    on  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:3s|P|Ov)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                              # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: on {{remué}} beaucoup.
TEST: on {{refuses}} tout cela
TEST: on ne se {{bougent}} pas suffisamment


__conj_ce__
    [ce|c’]             @>(?:devoir|devenir|pouvoir|vouloir|savoir)/:V¬:(?:N|A|3s|P|Q|Ov)
    [ce|c’]  [ne|n’]    @>(?:devoir|devenir|pouvoir|vouloir|savoir)/:V¬:(?:3s|P|Ov)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                              # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

    [ce|c’]                         @>être/:V¬:(?:N|A|3[sp]|P|Q|Ov)
    [ce|c’]  [le|l’|en]             @>être/:V¬:(?:N|A|3s|P|Q|Ov)
    [ce|c’]  [ne|n’]  ?[le|l’|en]¿  @>être/:V¬:(?:3[sp]|P|Q|Ov)
        <<- /conj/ --1>> =suggVerb(\-1, ":3s")                              # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.

TEST: pour toi qui sais tout, ce ne le {{fus}} pas
TEST: ce secret tu, ce {{devais}} être un cauchemar.
TEST: Ce peut être un chien ou un chat.
TEST: ce ne peut être aussi stupide.
TEST: ce dut être un cauchemar.
................................................................................
TEST: Vous {{arrivais}} trop tard.
TEST: vous ne l’{{avait}} pas vu.
TEST: je crois, vous m’{{avais}} trompé…


## 3pl
__conj_ils__
    ils  @:V¬:(?:3p|Ov)
        <<- /conj/ not (morph(\2, ":[PQ]") and morph(<1, ":V0.*:3p"))
        -2>> =suggVerb(\2, ":3p")                                               # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ __also__ and morph(\2, ":3s") -1>> il                        # Accord avec “\2”.

    ils  [ne|n’|le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]       @:V¬:(?:3p|Ov)
    ils  ?[ne|n’]¿  [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]  @:V¬:(?:3p|Ov)
    ils  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        @:V¬:(?:3p|Ov)
    ils  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            @:V¬:(?:3p|Ov)
    ils  ?[ne|n’]¿  [lui|leur]                     en                         @:V¬:(?:3p|Ov)
        <<- /conj/ --1>> =suggVerb(\-1, ":3p")                                  # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
        <<- /conj/ morph(\-1, ":3s") -1>> il                                    # Accord avec “\-1”.

TEST: {{Ils}} {{vienne}} souvent.
TEST: Ils ne m’{{attends}} pas.
TEST: {{Ils}} vous le {{donne}}.
TEST: {{Ils}} {{faut}} venir.
................................................................................
__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|Ov|X)
    [ne|n’]     [lui|leur]          en                      @:[NAQ]¬:(?:[123][sp]|Y|P|Ov|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|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/
    n’          [en|y]                                      @:[NAQ]¬:(?:[123][sp]|Y|W|P|Ov|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|Ov|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|Ov|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|Ov|X)|>(?:[mtsl]|même|pas|presque|jamais|rien|guère|point|plus)/
    [me|m’|te|t’|se]                                        @:[NAQ]¬:(?:[123][sp]|Y|P|Ov|X)|>(?:l|pas|presque|jamais|rien|guère|point|plus)/
    [s’]                                                    @:[NAQ]¬:(?:[123][sp]|Y|P|Ov|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|Ov|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|Ov|X)
        <<- /conf/ -3>> =suggSimil(\3, ":1s", False)                                                # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe.

    j’                                                      @:[NAQ]¬:(?:[123][sp]|Y|P|Ov|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
................................................................................
!!
!!

#### devoir / faire / falloir / pouvoir / savoir / vouloir

__infi_faire_verbe__
    >faire  ~(?:ée?s?|ez)$
        <<- /infi/ not value(<1, "|en|de|") and morph(\2, ":V", ":[MG]") and not (morph(\1, ":N") and morph(\2, ":Q.*:m:s"))
        -2>> =suggVerbInfi(\2)                                  # Après le verbe “faire”, ce verbe devrait être à l’infinitif.

TEST: elle fit peu {{mangé}} les enfants
TEST: Tu fais {{décoloré}} tes cheveux ?
TEST: quelqu’un fait {{travaillé}} ces gens en secret.
TEST: il le fait {{pensé}} à son avenir.
TEST: ce sont des faits constestés.
TEST: c’est un fait reconnu.
TEST: fait pourtant avéré et corroboré par le même sondage.
TEST: ce fait rapporté par des témoins au-delà de tout soupçon n’est pas contestable.

#__[i]/infi(infi_faire)__
................................................................................
TEST: donnant à entendre qu’il avait l’intention de violer Laura dès qu’il en aurait l’occasion


# verbe que + subjonctif
__vmode_qqch_que_subjonctif1__
    [>permettre|>falloir|>vouloir|>ordonner|>exiger|>désirer|>préférer|>suffire]  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
    [afin|avant|pour|quoi|sans]  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ -4>> =suggVerbMode(\4, ":S", \3)                                                # Après \1 que, ce verbe devrait être au subjonctif.

    >douter  [que|qu’]  @:(?:Os|M)  @:I¬:(?:[GYSK]|If)
        <<- /vmode/ morph(\1, ":V", ":N") -4>> =suggVerbMode(\4, ":S", \3)                          # Après \1 que, ce verbe devrait être au subjonctif.

    il est possible  [que|qu’]  @:(?:Os|M)  @:I¬:[GYS]
        <<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5)                                                # Après “\1 \2 \3”, ce verbe devrait être au subjonctif.

TEST: Il suffit qu’il {{court}} plus
TEST: Je veux qu’il {{finit}} son repas.
TEST: quoi qu’il en {{conclut}}
TEST: Je ne veux pas que tu {{es}} des ennuis
TEST: Avant que tu {{pars}}, je voudrais qu’on discute.
TEST: Sans qu’elle {{prend}} le temps d’analyser le problème.
TEST: il est possible qu’il {{vient}} demain.
TEST: Nul doute qu’elle nourrira à brève échéance la haine de demain à notre égard.
TEST: Je ne doute pas qu’ils réussiront leur mission.
TEST: Je me doutais bien qu’Apple pourrait marcher
TEST: il ne fait aucun doute qu’Amazon le sait.
TEST: quoi que nous autres hommes ayons pu faire