Grammalecte  Check-in [b53e5995ba]

Overview
Comment:[fr] faux positif et ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: b53e5995ba29f9bce0e5249f2b18dc75996ca48c6dbe510438ac1828af7ab216
User & Date: olr on 2020-10-02 15:41:04
Other Links: manifest | tags
Context
2020-10-02
15:41
[graphspell][fr] lexicographer: update tags check-in: 0ecad478b9 user: olr tags: fr, graphspell, trunk
15:41
[fr] faux positif et ajustements check-in: b53e5995ba user: olr tags: fr, trunk
10:16
[fr] faux positif check-in: 5b778ceb26 user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/rules.grx from [e7a8c94fba] to [6ba2b8ca45].

1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
....
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
....
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
....
2327
2328
2329
2330
2331
2332
2333
2334
2335


2336
2337
2338
2339
2340
2341
2342
....
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
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
.....
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
.....
17018
17019
17020
17021
17022
17023
17024
17025
17026
17027
17028
17029
17030
17031
17032
17033
17034
17035
17036
17037
17038
17039
17040
17041
17042
17043
17044
.....
17057
17058
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
.....
17138
17139
17140
17141
17142
17143
17144
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
.....
17192
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
17216
17217
17218
.....
17964
17965
17966
17967
17968
17969
17970
17971
17972
17973
17974
17975
17976
17977
17978
.....
21780
21781
21782
21783
21784
21785
21786
21787
21788
21789
21790
21791
21792
21793
21794
.....
27309
27310
27311
27312
27313
27314
27315
27316
27317
27318
27319
27320
27321
27322
27323



@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: graphe0|g0                                                                       _
@@@@
@@@@
@@@@
@@@@

!!!
!!!
................................................................................
        <<- morph(<1, ":A.*:[me]:[si]") =>> add_morph(\1, ">nombre/:G:D")
        <<- __else__ =>> define(\1, ">nombre/:G:D")

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

    plein  [de|d’]  @:[AN]
        <<- not morph(<1, ":D.*:m|>(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") =>> =define(\1, ":G")

    source [de|d’]
        <<- morph(<1, ">(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") =>> define(\1, ":LV")

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


__da_groupe_nominal__cas_particuliers__
    [au|aux] alentour
................................................................................

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

    l’ un comme l’ autre
        <<- ~>> ␣
        <<- =>> define(\1, ":LN:m:p")

    l’ une comme l’ autre
        <<- ~>> ␣
        <<- =>> define(\1, ":LN:f:p")

    en peine
        <<- not value(<1, "|ne|n’|j’|on|il|elle|iel|") =>> exclude(\2, ":V")

    m’ [dame|sieur]
        <<- ~>> ␣

................................................................................
TEST: elles sont cul et chemise
TEST: ils sont frère et sœur
TEST: iels étaient mari et femme


__fusions_noms_communs_séparés_slah__
    *WORD  /  *WORD
        <<- space_after(\1, 0, 0) and space_after(\2, 0, 0) and morph(\1, ":N") and morph(\-1, ":N") ~>> ␣
        <<- =>> define(\1, ":N:e:i")




__fusions_noms_propres__
    d’ Alembert
    d’ Estaing
    de Gaulle
    de Broglie
................................................................................

    Peugeot  ~^\d0\d\d?$
        <<- ~>> ␣
        <<- =>> define(\1, ":N:e:i")

    Mai 68
        <<- ~>> ␣
        <<- =>> define(\1, ":N:m:i")

    ~^[A-ZÀÂÉÈÊÎÔ].  ~^[A-ZÀÂÉÈÊÎÔ].
        <<- analyse_with_next(\1, " ", ":") ~>> ␣
        <<- __else__ and morph(\1, ":M") and morph(\2, ":V", ":[GM]") =>> define(\2, ":M2")

    Me  ~^[A-ZÀÂÉÈÊÎÔ].
        <<- =>> define(\1, ":T")
        <<- ~1>> *

    [la|cette]  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Administration|Area|Army|Assocation|Avenue|Chamber|Church|City|Community|Court|Company|Corporation|Cup|Enterprise|Foundation|Fraternity|Gallery|Highway|House|Initiative|League|Library|Mansion|Nation|Navy|Organization|Reserve|Road|River|Sea|Society|Station|Sorority|Tavern|Tower|University|Valley]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:f:s")

    [le|au|du|ce]  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Act|Building|Bureau|Casino|Castle|Center|Challenge|Championship|Chronicle|Club|College|Comity|Consortium|Cottage|Covent|Day|Desert|Forum|Hall|Garden|Hospital|Hostel|Institute|Magazine|Manor|Monastery|Mount|Museum|News|Newspaper|Ocean|Office|Opera|Park|Party|Palace|Post|Restaurant|State|Theatre|Tournament]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:m:s")

    the  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Administration|Area|Army|Assocation|Avenue|Chamber|Church|City|Community|Court|Company|Corporation|Cup|Enterprise|Foundation|Fraternity|Gallery|Highway|House|Initiative|League|Library|Mansion|Nation|Navy|Organization|Reserve|Road|River|Sea|Society|Station|Sorority|Tavern|Tower|University|Valley]
    the  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Act|Building|Bureau|Casino|Castle|Center|Challenge|Championship|Chronicle|Club|College|Comity|Consortium|Cottage|Covent|Day|Desert|Forum|Hall|Garden|Hospital|Hostel|Institute|Magazine|Manor|Monastery|Mount|Museum|News|Newspaper|Ocean|Office|Opera|Park|Party|Palace|Post|Restaurant|State|Theatre|Tournament]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:e:s")

    ~^[A-ZÀÂÉÈÊÎÔ]. Airways
        <<- ~>> ␣
        <<- =>> define(\2, ":MP:e:i")


__écritures_épicènes_invariables__
    [tous|tou]  ·  tes
    [tous|tou]  ·  te  ·  s
        <<- ~>> ␣

    c · [eu|eux]  ·  [elles|celles]
    [ceu|ceux]  ·  [elles|celles]
        <<- ~>> ␣

    *WORD  ·  e  ·  s
    *WORD  ·  [ce|rice|drice|price|trice]   ·  s
    *WORD  ·  [fe|ffe] ·  s
    *WORD  ·  [le|ale|bale|cale|dale|male|nale|pale|tale]  ·  s
    *WORD  ·  [ne|ane|ène|ine|nne|enne]  ·  s
................................................................................

    l’ étrange impression [que|qu’]
    la [nette|bizarre] impression [que|qu’]
        <<- ~2:3>> _

    le pour et le contre
        <<- ~>> ␣
        <<- =>> define(\1, ":LN:m:p")

    le [pressentiment|sentiment] [que|qu’]
        <<- ~1>> _

    ou bien
        <<- ~2>> *

................................................................................
    [>être|>devenir|>rester] mission impossible
    [>être|>devenir|>rester] monnaie courante
    [>être|>devenir|>rester] partie [intégrante|prenante]
    [>être|>devenir|>rester] peine perdue
    [>être|>devenir|>rester] pieds et poings liés
    [>être|>devenir|>rester] pieds nus
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":LV")

    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] [bon|meilleur] marché
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] de passage
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] mission impossible
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] monnaie courante
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] partie [intégrante|prenante]
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] peine perdue
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] pieds et poings liés
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] pieds nus
        <<- ~2>> *
        <<- ~3:0>> ␣
        <<- =>> define(\3, ":LV")

    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ avant tout
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ du moins
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ en partie
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ somme toute
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ sous peu
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ [tous|toutes] [deux|trois]
................................................................................
    /_VCint_ papa et maman
    /_VCint_ partie [intégrante|prenante]
    /_VCint_ peine perdue
    /_VCint_ pieds et poings liés
    /_VCint_ pieds nus
    /_VCint_ père et mère
        <<- morphVC(\1, ">(?:être|devenir|rester)/") ~2:0>> ␣
        <<- __also__ =>> define(\2, ":LV")

    /_VCint_ [pas|jamais|plus|guère|point] [bon|meilleur] marché
    /_VCint_ [pas|jamais|plus|guère|point] de passage
    /_VCint_ [pas|jamais|plus|guère|point] mission impossible
    /_VCint_ [pas|jamais|plus|guère|point] monnaie courante
    /_VCint_ [pas|jamais|plus|guère|point] partie [intégrante|prenante]
    /_VCint_ [pas|jamais|plus|guère|point] peine perdue
    /_VCint_ [pas|jamais|plus|guère|point] pieds et poings liés
    /_VCint_ [pas|jamais|plus|guère|point] pieds nus
        <<- morphVC(\1, ">(?:être|devenir|rester)/") ~2>> *
        <<- __also__ ~3:0>> ␣
        <<- __also__ =>> define(\3, ":LV")

    /_VCint_ ?[pas|jamais|plus|guère|point]¿ avant tout
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ du moins
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ en partie
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ somme toute
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ sous peu
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ [tous|toutes] [deux|trois]
................................................................................
    >avoir  bon [dos|fond]
    >avoir  bon pied ?,¿ bon œil
    >avoir  carte blanche
    >avoir  forme [humaine|animale]
    >avoir  partie [gagnée|liée]
    >avoir  voix au chapitre
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":LV")

    >avoir  [pas|jamais|plus|guère|point]  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    >avoir  [pas|jamais|plus|guère|point]  bon [dos|fond]
    >avoir  [pas|jamais|plus|guère|point]  bon pied ?,¿ bon œil
    >avoir  [pas|jamais|plus|guère|point]  carte blanche
    >avoir  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    >avoir  [pas|jamais|plus|guère|point]  gain de cause
    >avoir  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    >avoir  [pas|jamais|plus|guère|point]  quartier libre
    >avoir  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- ~3:0>> ␣
        <<- =>> define(\3, ":LV")

    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B:e:p  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B:e:p  @:(?:Q|V1.*:Y)
        <<- ~2:-2>> *

    n’  >avoir  que  $:Q
        <<- ~3>> *
................................................................................
    /_VCint_  bon [dos|fond]
    /_VCint_  bon pied ?,¿ bon œil
    /_VCint_  carte blanche
    /_VCint_  forme [humaine|animale]
    /_VCint_  partie [gagnée|liée]
    /_VCint_  voix au chapitre
        <<- morphVC(\1, ":V0a") ~2:0>> ␣
        <<- __also__ =>> define(\2, ":LV")

    /_VCint_  [pas|jamais|plus|guère|point]  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    /_VCint_  [pas|jamais|plus|guère|point]  bon [dos|fond]
    /_VCint_  [pas|jamais|plus|guère|point]  bon pied ?,¿ bon œil
    /_VCint_  [pas|jamais|plus|guère|point]  carte blanche
    /_VCint_  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    /_VCint_  [pas|jamais|plus|guère|point]  gain de cause
    /_VCint_  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    /_VCint_  [pas|jamais|plus|guère|point]  quartier libre
    /_VCint_  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- morphVC(\1, ":V0a") ~3:0>> ␣
        <<- __also__ =>> define(\3, ":LV")

    /_VCint_  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B:e:p  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    /_VCint_  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B:e:p  @:(?:Q|V1.*:Y)
        <<- morphVC(\1, ":V0a") ~2:-2>> *


__purge_après_verbe__
................................................................................
    >trier sur le volet
    >trouver refuge
    >vendre à perte
    >venir à bout
    [>venir|>revenir] je [ne|n’] sais ?pas¿ ?trop¿ d’ où
    [>venir|>revenir] on [ne|n’] sait ?pas¿ ?trop¿ d’ où
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":LV")


__passer_temps_adj__
    >passer ?toute¿ [la|cette|ma|ta|sa] [journée|semaine]                       @:A¬:A.*:[fe]:[si]
    >passer ?toute¿ [l’|cette|mon|ton|son] [heure|année]                        @:A¬:A.*:[fe]:[si]
    >passer ?toutes¿ [ces|ses|nos|vos|leurs] [heures|journées|semaines|années]  @:A¬:A.*:[fe]:p
        <<- ~2:-2>> *
................................................................................
TEST: vivre une situation hors du commun à deux a aussi pesé dans la balance.
TEST: deux jours minimum
TEST: ils disent finalement tous les deux la même chose


__gn_des_2m__
    des  *WORD  *WORD
        <<- /gn/ (morph(<1, ":(?:[VRBX]|Cs|LV)|>comme/|<start>|>,", "*") or morph(\3, ":N", ":[AQ]")) and not morph(\3, ">(?:seul|minimum|maximum)/") >>>
        <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.
        <<- not morph(\3, ":G|>a/") and checkAgreement(\2, \3) =>> =exclude(\3, ":V")

................................................................................
!!
!!!! Participes passés: COD précédant que                                                         !!
!!
!!

__ppas_det_plur_COD_que_avoir__
    [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:s¬:[GWpi]
        <<- /ppas/ morph(\2, ":[NA]") and not morph(>1, ":(?:Y|Ov|D|LV)")
            and not ((value(\-1, "|décidé|essayé|tenté|oublié|imaginé|supplié|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|") and value(>1, "|à|")))
        --1>> =suggPlur(\-1, \2)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au pluriel (et accordé en genre).|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: Les documents qu’ils ont {{acheté}}.
TEST: les flacons qu’ils ont réussi à acquérir
TEST: ça faisait des années que j’avais délaissé ce lieu







|







 







|


|







 







|



|







 







|
|
>
>







 







|









|



|



<
<
<
<
<










|
|







 







|







 







|











|







 







|











|







 







|











|







 







|











|







 







|







 







|







 







|







1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
....
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
....
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
....
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
....
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
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
.....
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
.....
17015
17016
17017
17018
17019
17020
17021
17022
17023
17024
17025
17026
17027
17028
17029
17030
17031
17032
17033
17034
17035
17036
17037
17038
17039
17040
17041
.....
17054
17055
17056
17057
17058
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
.....
17135
17136
17137
17138
17139
17140
17141
17142
17143
17144
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
.....
17189
17190
17191
17192
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
.....
17961
17962
17963
17964
17965
17966
17967
17968
17969
17970
17971
17972
17973
17974
17975
.....
21777
21778
21779
21780
21781
21782
21783
21784
21785
21786
21787
21788
21789
21790
21791
.....
27306
27307
27308
27309
27310
27311
27312
27313
27314
27315
27316
27317
27318
27319
27320



@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: graphe0|g0                                                                              _
@@@@
@@@@
@@@@
@@@@

!!!
!!!
................................................................................
        <<- morph(<1, ":A.*:[me]:[si]") =>> add_morph(\1, ">nombre/:G:D")
        <<- __else__ =>> define(\1, ">nombre/:G:D")

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

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

    source [de|d’]
        <<- morph(<1, ":V[0-3]e") =>> define(\1, ":ÉV")

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


__da_groupe_nominal__cas_particuliers__
    [au|aux] alentour
................................................................................

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

    l’ un comme l’ autre
        <<- ~>> ␣
        <<- =>> define(\1, ":GN:m:p")

    l’ une comme l’ autre
        <<- ~>> ␣
        <<- =>> define(\1, ":GN:f:p")

    en peine
        <<- not value(<1, "|ne|n’|j’|on|il|elle|iel|") =>> exclude(\2, ":V")

    m’ [dame|sieur]
        <<- ~>> ␣

................................................................................
TEST: elles sont cul et chemise
TEST: ils sont frère et sœur
TEST: iels étaient mari et femme


__fusions_noms_communs_séparés_slah__
    *WORD  /  *WORD
        <<- space_after(\1, 0, 0) and space_after(\2, 0, 0) and morph(\1, ":N") and morph(\-1, ":N") and not (morph(\1, "[123][sp]") and morph(<1, ":O[vs]")) ~>> ␣
        <<- __also__ =>> define(\1, ":N:e:i")

TEST: Elle peut se cacher / rendre visible par le petit “+” au-dessus.


__fusions_noms_propres__
    d’ Alembert
    d’ Estaing
    de Gaulle
    de Broglie
................................................................................

    Peugeot  ~^\d0\d\d?$
        <<- ~>> ␣
        <<- =>> define(\1, ":N:e:i")

    Mai 68
        <<- ~>> ␣
        <<- =>> define(\1, ":MP:m:i")

    ~^[A-ZÀÂÉÈÊÎÔ].  ~^[A-ZÀÂÉÈÊÎÔ].
        <<- analyse_with_next(\1, " ", ":") ~>> ␣
        <<- __else__ and morph(\1, ":M") and morph(\2, ":V", ":[GM]") =>> define(\2, ":M2")

    Me  ~^[A-ZÀÂÉÈÊÎÔ].
        <<- =>> define(\1, ":T")
        <<- ~1>> *

    [la|cette|the]  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Administration|Area|Army|Assocation|Avenue|Chamber|Church|City|Community|Court|Company|Corporation|Cup|Enterprise|Foundation|Fraternity|Gallery|Highway|House|Initiative|League|Library|Mansion|Nation|Navy|Organization|Reserve|Road|River|Sea|Society|Station|Sorority|Tavern|Tower|University|Valley]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:f:s")

    [le|au|du|ce|the]  ~^[A-ZÀÂÉÈÊÎÔ].  ?~^[A-ZÀÂÉÈÊÎÔ].¿  ?~^[A-ZÀÂÉÈÊÎÔ].¿  [Act|Building|Bureau|Casino|Castle|Center|Challenge|Championship|Chronicle|Club|College|Comity|Consortium|Cottage|Covent|Day|Desert|Forum|Hall|Garden|Hospital|Hostel|Institute|Magazine|Manor|Monastery|Mount|Museum|News|Newspaper|Ocean|Office|Opera|Park|Party|Palace|Post|Restaurant|State|Theatre|Tournament]
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":MP:m:s")






    ~^[A-ZÀÂÉÈÊÎÔ]. Airways
        <<- ~>> ␣
        <<- =>> define(\2, ":MP:e:i")


__écritures_épicènes_invariables__
    [tous|tou]  ·  tes
    [tous|tou]  ·  te  ·  s
        <<- ~>> ␣

    c · [eu|eux]  ·  [les|lles|elles|celles]
    [ceu|ceux]  ·  [les|lles|elles|celles]
        <<- ~>> ␣

    *WORD  ·  e  ·  s
    *WORD  ·  [ce|rice|drice|price|trice]   ·  s
    *WORD  ·  [fe|ffe] ·  s
    *WORD  ·  [le|ale|bale|cale|dale|male|nale|pale|tale]  ·  s
    *WORD  ·  [ne|ane|ène|ine|nne|enne]  ·  s
................................................................................

    l’ étrange impression [que|qu’]
    la [nette|bizarre] impression [que|qu’]
        <<- ~2:3>> _

    le pour et le contre
        <<- ~>> ␣
        <<- =>> define(\1, ":GN:m:p")

    le [pressentiment|sentiment] [que|qu’]
        <<- ~1>> _

    ou bien
        <<- ~2>> *

................................................................................
    [>être|>devenir|>rester] mission impossible
    [>être|>devenir|>rester] monnaie courante
    [>être|>devenir|>rester] partie [intégrante|prenante]
    [>être|>devenir|>rester] peine perdue
    [>être|>devenir|>rester] pieds et poings liés
    [>être|>devenir|>rester] pieds nus
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":ÉV")

    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] [bon|meilleur] marché
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] de passage
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] mission impossible
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] monnaie courante
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] partie [intégrante|prenante]
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] peine perdue
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] pieds et poings liés
    [>être|>devenir|>rester] [pas|jamais|plus|guère|point] pieds nus
        <<- ~2>> *
        <<- ~3:0>> ␣
        <<- =>> define(\3, ":ÉV")

    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ avant tout
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ du moins
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ en partie
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ somme toute
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ sous peu
    [>être|>devenir|>rester] ?[pas|jamais|plus|guère|point]¿ [tous|toutes] [deux|trois]
................................................................................
    /_VCint_ papa et maman
    /_VCint_ partie [intégrante|prenante]
    /_VCint_ peine perdue
    /_VCint_ pieds et poings liés
    /_VCint_ pieds nus
    /_VCint_ père et mère
        <<- morphVC(\1, ">(?:être|devenir|rester)/") ~2:0>> ␣
        <<- __also__ =>> define(\2, ":ÉV")

    /_VCint_ [pas|jamais|plus|guère|point] [bon|meilleur] marché
    /_VCint_ [pas|jamais|plus|guère|point] de passage
    /_VCint_ [pas|jamais|plus|guère|point] mission impossible
    /_VCint_ [pas|jamais|plus|guère|point] monnaie courante
    /_VCint_ [pas|jamais|plus|guère|point] partie [intégrante|prenante]
    /_VCint_ [pas|jamais|plus|guère|point] peine perdue
    /_VCint_ [pas|jamais|plus|guère|point] pieds et poings liés
    /_VCint_ [pas|jamais|plus|guère|point] pieds nus
        <<- morphVC(\1, ">(?:être|devenir|rester)/") ~2>> *
        <<- __also__ ~3:0>> ␣
        <<- __also__ =>> define(\3, ":ÉV")

    /_VCint_ ?[pas|jamais|plus|guère|point]¿ avant tout
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ du moins
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ en partie
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ somme toute
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ sous peu
    /_VCint_ ?[pas|jamais|plus|guère|point]¿ [tous|toutes] [deux|trois]
................................................................................
    >avoir  bon [dos|fond]
    >avoir  bon pied ?,¿ bon œil
    >avoir  carte blanche
    >avoir  forme [humaine|animale]
    >avoir  partie [gagnée|liée]
    >avoir  voix au chapitre
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":ÉV")

    >avoir  [pas|jamais|plus|guère|point]  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    >avoir  [pas|jamais|plus|guère|point]  bon [dos|fond]
    >avoir  [pas|jamais|plus|guère|point]  bon pied ?,¿ bon œil
    >avoir  [pas|jamais|plus|guère|point]  carte blanche
    >avoir  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    >avoir  [pas|jamais|plus|guère|point]  gain de cause
    >avoir  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    >avoir  [pas|jamais|plus|guère|point]  quartier libre
    >avoir  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- ~3:0>> ␣
        <<- =>> define(\3, ":ÉV")

    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B:e:p  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B:e:p  @:(?:Q|V1.*:Y)
        <<- ~2:-2>> *

    n’  >avoir  que  $:Q
        <<- ~3>> *
................................................................................
    /_VCint_  bon [dos|fond]
    /_VCint_  bon pied ?,¿ bon œil
    /_VCint_  carte blanche
    /_VCint_  forme [humaine|animale]
    /_VCint_  partie [gagnée|liée]
    /_VCint_  voix au chapitre
        <<- morphVC(\1, ":V0a") ~2:0>> ␣
        <<- __also__ =>> define(\2, ":ÉV")

    /_VCint_  [pas|jamais|plus|guère|point]  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    /_VCint_  [pas|jamais|plus|guère|point]  bon [dos|fond]
    /_VCint_  [pas|jamais|plus|guère|point]  bon pied ?,¿ bon œil
    /_VCint_  [pas|jamais|plus|guère|point]  carte blanche
    /_VCint_  [pas|jamais|plus|guère|point]  forme [humaine|animale]
    /_VCint_  [pas|jamais|plus|guère|point]  gain de cause
    /_VCint_  [pas|jamais|plus|guère|point]  partie [gagnée|liée]
    /_VCint_  [pas|jamais|plus|guère|point]  quartier libre
    /_VCint_  [pas|jamais|plus|guère|point]  voix au chapitre
        <<- morphVC(\1, ":V0a") ~3:0>> ␣
        <<- __also__ =>> define(\3, ":ÉV")

    /_VCint_  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B:e:p  [besoin|confiance|connaissance|conscience|crainte|envie|faim|honte|peur|peine|pitié|soif|vent]
    /_VCint_  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les $:B:e:p  @:(?:Q|V1.*:Y)
        <<- morphVC(\1, ":V0a") ~2:-2>> *


__purge_après_verbe__
................................................................................
    >trier sur le volet
    >trouver refuge
    >vendre à perte
    >venir à bout
    [>venir|>revenir] je [ne|n’] sais ?pas¿ ?trop¿ d’ où
    [>venir|>revenir] on [ne|n’] sait ?pas¿ ?trop¿ d’ où
        <<- ~2:0>> ␣
        <<- =>> define(\2, ":ÉV")


__passer_temps_adj__
    >passer ?toute¿ [la|cette|ma|ta|sa] [journée|semaine]                       @:A¬:A.*:[fe]:[si]
    >passer ?toute¿ [l’|cette|mon|ton|son] [heure|année]                        @:A¬:A.*:[fe]:[si]
    >passer ?toutes¿ [ces|ses|nos|vos|leurs] [heures|journées|semaines|années]  @:A¬:A.*:[fe]:p
        <<- ~2:-2>> *
................................................................................
TEST: vivre une situation hors du commun à deux a aussi pesé dans la balance.
TEST: deux jours minimum
TEST: ils disent finalement tous les deux la même chose


__gn_des_2m__
    des  *WORD  *WORD
        <<- /gn/ (morph(<1, ":(?:[VRBXÉ]|Cs)|>comme/|<start>|>,", "*") or morph(\3, ":N", ":[AQ]")) and not morph(\3, ">(?:seul|minimum|maximum)/") >>>
        <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                && Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 && Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.
        <<- not morph(\3, ":G|>a/") and checkAgreement(\2, \3) =>> =exclude(\3, ":V")

................................................................................
!!
!!!! Participes passés: COD précédant que                                                         !!
!!
!!

__ppas_det_plur_COD_que_avoir__
    [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs]  *WORD  [que|qu’]  [je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels]  ?[ne|n’]¿  ?[lui|leur]¿  >avoir  @:V[0-3]..t.*:Q.*:s¬:[GWpi]
        <<- /ppas/ morph(\2, ":[NA]") and not morph(>1, ":(?:Y|Ov|D|LV|ÉV)")
            and not ((value(\-1, "|décidé|essayé|tenté|oublié|imaginé|supplié|") and value(>1, "|de|d’|")) or (value(\-1, "|réussi|pensé|") and value(>1, "|à|")))
        --1>> =suggPlur(\-1, \2)
        && Si “\1 \2…” est bien le COD du participe passé “\-1”, celui-ci devrait être au pluriel (et accordé en genre).|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: Les documents qu’ils ont {{acheté}}.
TEST: les flacons qu’ils ont réussi à acquérir
TEST: ça faisait des années que j’avais délaissé ce lieu