Grammalecte  Check-in [dea5222659]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: dea522265900a6950224d334515d113ba442a2014634ff74c9387202c9c276c3
User & Date: olr on 2020-11-28 21:19:35
Other Links: manifest | tags
Context
2020-11-28
21:20
[build] fix function rewriting check-in: 24a4a34b13 user: olr tags: build, trunk
21:19
[fr] ajustements check-in: dea5222659 user: olr tags: fr, trunk
07:20
[fr] ajustements check-in: f27c174bcd user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [0b2ff24afa] to [3a7c43378c].

1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
....
2131
2132
2133
2134
2135
2136
2137



2138
2139
2140
2141
2142
2143
2144
....
2151
2152
2153
2154
2155
2156
2157



2158
2159
2160
2161
2162
2163
2164
....
2175
2176
2177
2178
2179
2180
2181











2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
....
2198
2199
2200
2201
2202
2203
2204

2205
2206
2207
2208
2209
2210
2211
....
2298
2299
2300
2301
2302
2303
2304



2305
2306

2307
2308
2309
2310
2311
2312
2313
....
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
....
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
.....
10005
10006
10007
10008
10009
10010
10011
10012
10013


10014
10015
10016
10017
10018
10019
10020
.....
17576
17577
17578
17579
17580
17581
17582

17583
17584
17585
17586
17587
17588
17589
.....
19315
19316
19317
19318
19319
19320
19321
19322
19323
19324
19325
19326
19327
19328
19329
19330
19331
19332
19333
19334



19335
19336
19337
19338
19339
19340
19341
19342
19343
19344
19345



19346
19347








19348
19349
19350
19351
19352
19353
19354
.....
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
28603


28604
28605
28606
28607
28608
28609
28610
        <<- not value(<1, "|les|des|") =>> exclude(\1, ":N")

    en  [*NUM|*HOUR]
        <<- =>> select(\1, ":R")

    en  *WORD
        <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)", "*") =>> select(\1, ":Ov")
        <<- __else__ and not morph(<1, ":O[sv]") and morph(\2, ":[NADB]", "*") =>> select(\1, ":R")

    y   *WORD
        <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)") =>> select(\1, ":Ov")


__da_nous_vous__
    [ne|n’] [nous|vous]
................................................................................
__da_adverbes__
    environ  [$:B|*NUM]
        <<- not value(<1, "|l’|un|cet|quel|") =>> exclude(\1, ":N")

    grave
        <<- morph(<1, ":D") =>> exclude(\1, ":W")





__da_mots_grammaticaaux__
    a ?@:[WX]¿ été
        <<- =>> select(\1, ":V0")

    ça a
        <<- =>> select(\2, ":V")
................................................................................

    avant [que|qu’|$:D]
        <<- not value(<1, "|l’|quel|cet|un|mon|ton|son|notre|votre|leur|") =>> select(\1, ":R")

    c’  [>avoir|>être]
        <<- =>> select(\1, ":O")




    ce  @:[NA].*:[me]:[si]¬:V0e
        <<- not value(<1, "|il|ils|on|ne|n’|") =>> select(\1, ":D") and select(\2, ":[NA]")

    ce  @:3[sp]¬:[NA].*:[me]:[si]
    ce  [ne|n’]
        <<- =>> select(\1, ":O")

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

    certains  @:[NA].*:[me]:[pi]¬:(?:G|3[sp])
        <<- =>> exclude(\1, ":O")

    certaines  @:[NA].*:[fe]:[pi]¬:(?:G|3[sp])
        <<- =>> exclude(\1, ":O")












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

    [de|d’] [me|m’|te|t’|se|s’|en|y|nous|vous|moi|toi|soi|lui|elle|iel|eux|elles|iels]
    [de|d’] @:[MYB]
    [de|d’] *NUM
    [de|d’] [un|une|le|la|l’|les|ce|cet|cette|ces|ma|ta|sa|mon|notre|votre|leur|mes|tes|ses|nos|vos|leurs|quelque|quelques|plusieurs|certains|certaines|maints|maintes]
        <<- =>> select(\1, ":R")

    [de|d’] @:[NA]¬:[YMGB]
        <<- not \2[0:1].isupper() =>> select(\1, ":D")

    [devant|derrière] $:D
        <<- morph(<1, ":V|<start>|>,", ":G") =>> select(\1, ":R")
................................................................................
        <<- (morph(\2, ":[NA]") and morph(\4, ":[NA]"))
            or (morph(\2, ":Y") and morph(\4, ":Y"))
            or (morph(\2, ":M") and morph(\4, ":M")) =>> define(\1, ":R")

    entre  $:D¬:R  *WORD  et  $:D¬:R  *WORD
        <<- morph(\3, ":[NA]") and morph(\6, ":[NA]") =>> define(\1, ":R")


    entre autres
        <<- =>> define(\1, ":R")

    face [à|au|aux]
        <<- not morph(<1, ":(?:D|A.*:[fe]:[si])") =>> exclude(\1, ":N")

    mais
................................................................................
    selon [,|<end>]
        <<- =>> select(\1, ":W")

    si @:[OD]
    s’ [il|ils]
        <<- =>> select(\1, ":C")




    sur @:[BD]
        <<- morph(<1, "<start>|>,|:(?:V|N.*:f)", ":V[0123]e") =>> select(\1, ":R")


    tous @:N.*:[me]:[pi]¬:(?:[AGW]|3p)
        <<- =>> select(\1, ":D")

    tous  @:3p¬:(?:G|W|A|M|N.*:[me]:[pi])
    tous  ?[ne|n’]¿   [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]    @:3p¬:G
    tous  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:3p¬:G
................................................................................
    la nuit
        <<- =>> select(\2, ":N")

    ni *WORD
        <<- =>> select(\-1, ":N")

    nombre [de|d’|des]
        <<- morph(<1, ":V|<start>|>,") =>> select(\1, ":N")

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

    plein  [de|d’]  @:[AN]
        <<- not morph(<1, ":(?:D.*:m|V[0-3]e)") =>> =define(\1, ":G")

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


__conf_au_qqch__
    au  [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|iel|iels|nous|vous|on|parce]
        <<- /conf/ not \1.isupper() and not \2.isupper()
        -2>> =suggSimil(\2, ":[NA].*:[si]", True)                                                   && Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

    aux [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|iel|iels|nous|vous|on|parce]
        <<- /conf/ not \1.isupper() and not \2.isupper()
        -2>> =suggSimil(\2, ":[NA].*:[pi]", True)                                                   && Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

    [au|aux] [quel|quels|quelle|quelles]
    [au|aux] qu’ [elle|elles]
        <<- /conf/ ->> auquel|auxquels|auxquelles                                                   && Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/auquel

    [au|aux] combien  @:[AYW]
        <<- /conf/ -1:2>> ô combien                                                                 && Confusion probable.|https://fr.wiktionary.org/wiki/%C3%B4_combien

TEST: au {{nos}} enfants.
TEST: {{Au quel}} faut-il s’adresser ?
TEST: ils jouent aux {{des}}.
TEST: {{Aux quels}} a-t-il adressé sa requête. ?
TEST: Des individus {{aux combien}} sensibles aux usages.
TEST: Au MES, rien de nouveau.


__gn_autre_chose__
    autre choses
................................................................................
TEST: {{Des}} à présent
TEST: {{Dés}} à présent
TEST: {{dés}} qu’il fait beau, je sors.
TEST: Jette quelques {{des}} sur la table et voyons.
TEST: j’en ai marre de ces {{dès}}.
TEST: Les {{dès}} {{sont}} jetés.
TEST: J’ai acheté des {{dès}} à jouer.
TEST: Dieu ne joue pas aux {{dès}}.
TEST: J’apporte mes {{dès}}.


TEST: {{Des}} 1980, le pays était en crise.
TEST: {{Des}} dix-huit ans.
TEST: {{Des}} 4 ans.
TEST: Viens {{des}} 9 heures
TEST: {{Des}} l’arrivée, ça a commencé à dégénérer
TEST: c’était {{dés}} trois heures.
TEST: {{dés}} que nous sommes partis, il a piqué une crise
................................................................................
    >pot [de|d’] [chambre|colle|départ|échappement]
    >poteau d’ exécution
    >poudre aux yeux
    >poudre d’ escampette
    >poule aux œufs d’ or
    >pouvoir d’ achat
    >prédication [de|d’] rue

    >président en exercice
    >presse à >scandale
    preuve ?suffisante¿ du contraire
    preuves ?suffisantes¿ du contraire
    >prise [de|d’] conscience
    >prisonnier [de|d’] guerre
    prix à payer
................................................................................
!!
!!

__da_formes_verbales__
    >avoir  été  $:Q¬:G
        <<- =>> select(\2, ":Q") and select(\3, ":Q")

    [>aller|>désirer|>devoir|>falloir|>imaginer|>penser|>pouvoir|>savoir|>vouloir]  [aller|avoir|être|dire|savoir|manger]
        <<- =>> select(\2, ":Y")

    a       [été|désiré|dû|fallu|imaginé|pensé|pu|su|voulu]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  $:Y
    a       [été|désiré|dû|fallu|imaginé|pensé|pu|su|voulu]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         $:Y
    a       [été|désiré|dû|fallu|imaginé|pensé|pu|su|voulu]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             $:Y
    a       [été|désiré|dû|fallu|imaginé|pensé|pu|su|voulu]  ?[ne|n’]¿   [lui|leur|y]                    en                          $:Y
    >être   [allé+ses]                                       ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  $:Y
    >être   [allé+ses]                                       ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         $:Y
    >être   [allé+ses]                                       ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             $:Y
    >être   [allé+ses]                                       ?[ne|n’]¿   [lui|leur|y]                    en                          $:Y
        <<- =>> select(\1, ":V") and select(\2, ":Q") and select(\-1, ":Y")




    /_VCint_  @:Q
        <<- morphVC(\1, ":V0") =>> select(\-1, ":Q")

    [<start>|,|(|/_start_]  nous  nous  @:V0e.*:1p  $:Q
    [<start>|,|(|/_start_]  vous  vous  @:V0e.*:2p  $:Q
        <<- =>> select(\2, ":Os") and select(\3, ":Ov") and select(\-1, ":Q")

    [le|la|l’|les|lui|nous|vous|leur]  /_VCint_
        <<- =>> select(\1, ":Ov")

    qui  ?[lui|nous|vous|leur]¿  a  $:Q



        <<- =>> select(\-2, ":V") and select(\-1, ":Q")











!!
!!
!!!! Confusions                                                                                   !!
!!
!!
................................................................................
__immu_les_avoir_fait_vinfi__
    les >avoir fait ?[me|m’|te|t’|se|s’|nous|vous|leur]¿ $:Y
        <<- !3>>


__ppas_ayant__
    ayant  @:(?:Q.*:[fp]|[123][sp])¬:(?:G|N|m:[si])
        <<- /ppas/ not value(\-1, "|barre|confiance|charge|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|")
        --1>> =suggMasSing(\-1)
        && Après avoir, il faut un participe passé au masculin singulier (sauf si le COD se trouve avant le verbe, improbable dans ce cas de figure).

TEST: ayant {{marqués}} les esprits, tout le monde se souvenait d’elles.
TEST: ayant prise sur les événements, elle ne voyait aucune raison de s’alarmer.




__ppas_pronom_avoir__
    il  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  *WORD
        <<- /ppas/ not value(\-1, "|barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|")
            and (value(<1, "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (value(<1, "|que|qu’|") and morph(<2, ":V|<start>", ":[NA]")))
            and \-1.islower() and morph(\-1, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])")







|







 







>
>
>







 







>
>
>







 







>
>
>
>
>
>
>
>
>
>
>




|

<







 







>







 







>
>
>

<
>







 







|







 







|












|







 







<

>
>







 







>







 







|












>
>
>



|
|
|




|
>
>
>


>
>
>
>
>
>
>
>







 







|





>
>







1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
....
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
....
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
....
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
....
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
....
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325

2326
2327
2328
2329
2330
2331
2332
2333
....
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
....
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
.....
10025
10026
10027
10028
10029
10030
10031

10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
.....
17597
17598
17599
17600
17601
17602
17603
17604
17605
17606
17607
17608
17609
17610
17611
.....
19337
19338
19339
19340
19341
19342
19343
19344
19345
19346
19347
19348
19349
19350
19351
19352
19353
19354
19355
19356
19357
19358
19359
19360
19361
19362
19363
19364
19365
19366
19367
19368
19369
19370
19371
19372
19373
19374
19375
19376
19377
19378
19379
19380
19381
19382
19383
19384
19385
19386
19387
19388
19389
19390
.....
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644
28645
28646
28647
28648
        <<- not value(<1, "|les|des|") =>> exclude(\1, ":N")

    en  [*NUM|*HOUR]
        <<- =>> select(\1, ":R")

    en  *WORD
        <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)", "*") =>> select(\1, ":Ov")
        <<- __else__ and not morph(<1, ":O[sv]") and morph(\2, ":", ":[ISKYPE]") =>> select(\1, ":R")

    y   *WORD
        <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)") =>> select(\1, ":Ov")


__da_nous_vous__
    [ne|n’] [nous|vous]
................................................................................
__da_adverbes__
    environ  [$:B|*NUM]
        <<- not value(<1, "|l’|un|cet|quel|") =>> exclude(\1, ":N")

    grave
        <<- morph(<1, ":D") =>> exclude(\1, ":W")

    [lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche]
        <<- not morph(<1, ":[DA].*:[me]:[si]") =>> select(\1, ":W")


__da_mots_grammaticaaux__
    a ?@:[WX]¿ été
        <<- =>> select(\1, ":V0")

    ça a
        <<- =>> select(\2, ":V")
................................................................................

    avant [que|qu’|$:D]
        <<- not value(<1, "|l’|quel|cet|un|mon|ton|son|notre|votre|leur|") =>> select(\1, ":R")

    c’  [>avoir|>être]
        <<- =>> select(\1, ":O")

    car
        <<- not morph(<1, ":[DA].*:[me]:[si]") =>> select(\1, ":G")

    ce  @:[NA].*:[me]:[si]¬:V0e
        <<- not value(<1, "|il|ils|on|ne|n’|") =>> select(\1, ":D") and select(\2, ":[NA]")

    ce  @:3[sp]¬:[NA].*:[me]:[si]
    ce  [ne|n’]
        <<- =>> select(\1, ":O")

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

    certains  @:[NA].*:[me]:[pi]¬:(?:G|3[sp])
        <<- =>> exclude(\1, ":O")

    certaines  @:[NA].*:[fe]:[pi]¬:(?:G|3[sp])
        <<- =>> exclude(\1, ":O")

    contre [moi|toi|soi|lui|elle|iel|nous|vous|eux|elles|iels]
        <<- =>> select(\1, ":R")

    [la|les|des|une|cette|ma|ta|sa|notre|votre|leur+s] >lutte  ?[menée+s|lancée+s]¿                         contre
    [>accusation|>action|>assaut|>attentat|>croisade|>jihad|>guerre|>sortilège]   ?[mené+ses|lancé+ses]¿    contre
    [>antidote|>crime|>philtre|>remède|>sérum|>vaccin|>solution]                                            contre
        <<- =>> select(\-1, ":R")

    contre
        <<- not morph(<1, ":[DA].*:[me]:[si]") =>> exclude(\1, ":N")

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

    [de|d’] [me|m’|te|t’|se|s’|en|y|nous|vous|moi|toi|soi|lui|elle|iel|eux|elles|iels]
    [de|d’] @:[MYBD]
    [de|d’] *NUM

        <<- =>> select(\1, ":R")

    [de|d’] @:[NA]¬:[YMGB]
        <<- not \2[0:1].isupper() =>> select(\1, ":D")

    [devant|derrière] $:D
        <<- morph(<1, ":V|<start>|>,", ":G") =>> select(\1, ":R")
................................................................................
        <<- (morph(\2, ":[NA]") and morph(\4, ":[NA]"))
            or (morph(\2, ":Y") and morph(\4, ":Y"))
            or (morph(\2, ":M") and morph(\4, ":M")) =>> define(\1, ":R")

    entre  $:D¬:R  *WORD  et  $:D¬:R  *WORD
        <<- morph(\3, ":[NA]") and morph(\6, ":[NA]") =>> define(\1, ":R")

    entre [moi|toi|soi|lui|elle|iel|nous|vous|eux|elles|iels] et [moi|toi|soi|lui|elle|iel|nous|vous|eux|elles|iels]
    entre autres
        <<- =>> define(\1, ":R")

    face [à|au|aux]
        <<- not morph(<1, ":(?:D|A.*:[fe]:[si])") =>> exclude(\1, ":N")

    mais
................................................................................
    selon [,|<end>]
        <<- =>> select(\1, ":W")

    si @:[OD]
    s’ [il|ils]
        <<- =>> select(\1, ":C")

    sous $:D
        <<- not morph(<1, ":[DA].*:[me]:[pi]") =>> select(\1, ":R")

    sur @:[BD]

        <<- not morph(<1, ":(?:V[0123]e|[DN].*:[me]:[si])") =>> select(\1, ":R")

    tous @:N.*:[me]:[pi]¬:(?:[AGW]|3p)
        <<- =>> select(\1, ":D")

    tous  @:3p¬:(?:G|W|A|M|N.*:[me]:[pi])
    tous  ?[ne|n’]¿   [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]    @:3p¬:G
    tous  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         @:3p¬:G
................................................................................
    la nuit
        <<- =>> select(\2, ":N")

    ni *WORD
        <<- =>> select(\-1, ":N")

    nombre [de|d’|des]
        <<- morph(<1, ":[VR]|<start>|>,") =>> select(\1, ":N")

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

    plein  [de|d’]  @:[AN]
        <<- not morph(<1, ":(?:D.*:m|V[0-3]e)") =>> =define(\1, ":G")

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


__conf_au_qqch__
    au  [ces|des|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|iel|iels|nous|vous|on|parce]
        <<- /conf/ not \1.isupper() and not \2.isupper()
        -2>> =suggSimil(\2, ":[NA].*:[si]", True)                                                   && Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

    aux [ces|les|mes|ses|tes|nos|vos|ce|cet|cette|ma|ta|sa|mon|je|tu|il|ils|elle|elles|iel|iels|nous|vous|on|parce]
        <<- /conf/ not \1.isupper() and not \2.isupper()
        -2>> =suggSimil(\2, ":[NA].*:[pi]", True)                                                   && Incohérence : les mots “\1” et “\2” ne devraient pas se succéder.

    [au|aux] [quel|quels|quelle|quelles]
    [au|aux] qu’ [elle|elles]
        <<- /conf/ ->> auquel|auxquels|auxquelles                                                   && Incohérence. Soudez les deux mots.|https://fr.wiktionary.org/wiki/auquel

    [au|aux] combien  @:[AYW]
        <<- /conf/ -1:2>> ô combien                                                                 && Confusion probable.|https://fr.wiktionary.org/wiki/%C3%B4_combien

TEST: au {{nos}} enfants.
TEST: {{Au quel}} faut-il s’adresser ?
TEST: partir aux {{mon}} Tonnerre
TEST: {{Aux quels}} a-t-il adressé sa requête. ?
TEST: Des individus {{aux combien}} sensibles aux usages.
TEST: Au MES, rien de nouveau.


__gn_autre_chose__
    autre choses
................................................................................
TEST: {{Des}} à présent
TEST: {{Dés}} à présent
TEST: {{dés}} qu’il fait beau, je sors.
TEST: Jette quelques {{des}} sur la table et voyons.
TEST: j’en ai marre de ces {{dès}}.
TEST: Les {{dès}} {{sont}} jetés.
TEST: J’ai acheté des {{dès}} à jouer.

TEST: J’apporte mes {{dès}}.
TEST: ils jouent aux {{des}}.
TEST: Dieu ne joue pas aux {{dès}}.
TEST: {{Des}} 1980, le pays était en crise.
TEST: {{Des}} dix-huit ans.
TEST: {{Des}} 4 ans.
TEST: Viens {{des}} 9 heures
TEST: {{Des}} l’arrivée, ça a commencé à dégénérer
TEST: c’était {{dés}} trois heures.
TEST: {{dés}} que nous sommes partis, il a piqué une crise
................................................................................
    >pot [de|d’] [chambre|colle|départ|échappement]
    >poteau d’ exécution
    >poudre aux yeux
    >poudre d’ escampette
    >poule aux œufs d’ or
    >pouvoir d’ achat
    >prédication [de|d’] rue
    >préfecture [de|d’] police
    >président en exercice
    >presse à >scandale
    preuve ?suffisante¿ du contraire
    preuves ?suffisantes¿ du contraire
    >prise [de|d’] conscience
    >prisonnier [de|d’] guerre
    prix à payer
................................................................................
!!
!!

__da_formes_verbales__
    >avoir  été  $:Q¬:G
        <<- =>> select(\2, ":Q") and select(\3, ":Q")

    [>aller|>désirer|>devoir|>falloir|>imaginer|>penser|>pouvoir|>savoir|>vouloir]  [aller|avoir|être|dire|savoir|manger|pouvoir]
        <<- =>> select(\2, ":Y")

    a       [été|désiré|dû|fallu|imaginé|pensé|pu|su|voulu]  ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  $:Y
    a       [été|désiré|dû|fallu|imaginé|pensé|pu|su|voulu]  ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         $:Y
    a       [été|désiré|dû|fallu|imaginé|pensé|pu|su|voulu]  ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             $:Y
    a       [été|désiré|dû|fallu|imaginé|pensé|pu|su|voulu]  ?[ne|n’]¿   [lui|leur|y]                    en                          $:Y
    >être   [allé+ses]                                       ?[ne|n’]¿   ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿  $:Y
    >être   [allé+ses]                                       ?[ne|n’]¿   [me|m’|te|t’|se|s’|nous|vous]   [le|la|l’|les|en|y]         $:Y
    >être   [allé+ses]                                       ?[ne|n’]¿   [le|la|l’|les]                  [lui|leur|en|y]             $:Y
    >être   [allé+ses]                                       ?[ne|n’]¿   [lui|leur|y]                    en                          $:Y
        <<- =>> select(\1, ":V") and select(\2, ":Q") and select(\-1, ":Y")

    [>avoir|>être]  $:Q¬:M
        <<- =>> select(\2, ":Q")

    /_VCint_  @:Q
        <<- morphVC(\1, ":V0") =>> select(\-1, ":Q")

    [<start>|,|(|/_start_]  nous  ?[ne|n’]¿  nous  @:V0e.*:1p  $:Q
    [<start>|,|(|/_start_]  vous  ?[ne|n’]¿  vous  @:V0e.*:2p  $:Q
        <<- =>> select(\2, ":Os") and select(\-3, ":Ov") and select(\-1, ":Q")

    [le|la|l’|les|lui|nous|vous|leur]  /_VCint_
        <<- =>> select(\1, ":Ov")

    qui  ?[lui|nous|vous|leur]¿  $:V0
        <<- =>> select(\-1, ":V")

    qui  ?[lui|nous|vous|leur]¿  $:V0  $:Q
        <<- =>> select(\-2, ":V") and select(\-1, ":Q")

    [<start>|,|(]  nous  ?[ne|n’]¿  $:1p
        <<- =>> select(\2, ":Os") and select(\-1, ":[ISK].*:1p")

    [<start>|,|(]  vous  ?[ne|n’]¿  $:2p
        <<- =>> select(\2, ":Os") and select(\-1, ":[ISK].*:2p")

    [<start>|,|(]  ça  [le|la|l’|les|lui|nous|vous|leur]  @:3s¬:G
        <<- =>> select(\-2, ":Ov") and select(\-1, ":3s")


!!
!!
!!!! Confusions                                                                                   !!
!!
!!
................................................................................
__immu_les_avoir_fait_vinfi__
    les >avoir fait ?[me|m’|te|t’|se|s’|nous|vous|leur]¿ $:Y
        <<- !3>>


__ppas_ayant__
    ayant  @:(?:Q.*:[fp]|[123][sp])¬:(?:G|N|m:[si])
        <<- /ppas/ not value(\-1, "|barre|confiance|charge|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") and not value(<1, "|m’|t’|l’|nous|vous|les|")
        --1>> =suggMasSing(\-1)
        && Après avoir, il faut un participe passé au masculin singulier (sauf si le COD se trouve avant le verbe, improbable dans ce cas de figure).

TEST: ayant {{marqués}} les esprits, tout le monde se souvenait d’elles.
TEST: ayant prise sur les événements, elle ne voyait aucune raison de s’alarmer.
TEST: je croyais, vous ayant déjà reçus, que vous n’auriez pas à revenir.
TEST: il pensait, nous ayant oubliés, que nous l’aurions oublié, nous aussi.


__ppas_pronom_avoir__
    il  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  *WORD
        <<- /ppas/ not value(\-1, "|barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|")
            and (value(<1, "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (value(<1, "|que|qu’|") and morph(<2, ":V|<start>", ":[NA]")))
            and \-1.islower() and morph(\-1, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])")