Grammalecte  Check-in [e65aa598d3]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: e65aa598d3ffaea7ee050b4a9690bafce6fc42b30740cf1221cabaef5768e793
User & Date: olr on 2020-03-04 13:50:53
Other Links: manifest | tags
Context
2020-03-04
14:15
[fx] create custom event on text area when Grammalecte change the text content check-in: 65c3b076ec user: olr tags: trunk, fx
13:50
[fr] ajustements check-in: e65aa598d3 user: olr tags: trunk, fr
2020-03-02
15:15
[lo][fr] Recenseur de mots: compte double pour les mots composés formes verbales interrogatives check-in: f02cd26db1 user: olr tags: trunk, lo
Changes

Modified gc_lang/fr/rules.grx from [578794455a] to [9ab3e0b960].

6009
6010
6011
6012
6013
6014
6015




6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031



6032
6033
6034
6035
6036
6037
6038




6039
6040
6041
6042
6043
6044
6045
TEST: Les écrits de d’Alembert.


__conf_déterminant_fem_sing_verbe__
    [ma|ta|cette|ladite]  @:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                        # Incohérence avec « \1 » : « \2 » est un verbe.





    sa  @:(?:Y|[123][sp])¬:(?:N.*:[fe]|A|W)
        <<- /conf/ not \1.isupper() and \2.islower() >>>
        <<- /conf/ morph(\2, "V.....[pqx]") -1>> ça|se                                              # Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient. (Une faute de frappe peut-être ?)
        <<- /conf/ __else__ -1>> ça                                                                 # Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient.
        <<- /conf/ hasSimil(\2) -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                        # Incohérence avec « \1 » : « \2 » est un verbe.

    sa  a
        <<- /conf/ not \1.isupper() -1>> ça                                                         # Confusion. Si vous voulez dire “cela”, écrivez “ça”.

TEST: Cette {{pèle}} est trop fragile.
TEST: {{sa}} devient difficile.
TEST: il me tendit {{sa}} {{pèche}}.
TEST: {{sa}} prend du temps.                                                  ->> ça|se
TEST: {{çà}} va                                                               ->> ça
TEST: {{sa}} va                                                               ->> ça
TEST: {{sa}} a tout changé                                                    ->> ça





__conf_déterminant_mas_sing_verbe__
    [du|cet|ledit|dudit]  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                # Incohérence avec “\1” : “\2” est un verbe.





    au  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower() and not value(\2, "|sortir|")
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                # Incohérence avec “\1” : “\2” est un verbe.

    ce  @:V.*:(?:Y|[123][sp])¬:[NAQ]:.:[si]
        <<- /conf/ \2.islower()
            and not value(\2, "|faire|sont|soit|fut|fût|serait|sera|seront|soient|furent|fussent|seraient|peut|pouvait|put|pût|pourrait|pourra|doit|dut|dût|devait|devrait|devra|") and hasSimil(\2)







>
>
>
>
















>
>
>







>
>
>
>







6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
TEST: Les écrits de d’Alembert.


__conf_déterminant_fem_sing_verbe__
    [ma|ta|cette|ladite]  @:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                        # Incohérence avec « \1 » : « \2 » est un verbe.

    quelle  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|") and hasSimil(\2, ":[NA]:[fe]:[si]")
        -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                                                # Incohérence avec « \1 » : « \2 » est un verbe.

    sa  @:(?:Y|[123][sp])¬:(?:N.*:[fe]|A|W)
        <<- /conf/ not \1.isupper() and \2.islower() >>>
        <<- /conf/ morph(\2, "V.....[pqx]") -1>> ça|se                                              # Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient. (Une faute de frappe peut-être ?)
        <<- /conf/ __else__ -1>> ça                                                                 # Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient.
        <<- /conf/ hasSimil(\2) -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                        # Incohérence avec « \1 » : « \2 » est un verbe.

    sa  a
        <<- /conf/ not \1.isupper() -1>> ça                                                         # Confusion. Si vous voulez dire “cela”, écrivez “ça”.

TEST: Cette {{pèle}} est trop fragile.
TEST: {{sa}} devient difficile.
TEST: il me tendit {{sa}} {{pèche}}.
TEST: {{sa}} prend du temps.                                                  ->> ça|se
TEST: {{çà}} va                                                               ->> ça
TEST: {{sa}} va                                                               ->> ça
TEST: {{sa}} a tout changé                                                    ->> ça
TEST: {{quelle}} {{camera}} ce serait ?
TEST: quelle serait la solution ?
TEST: quelle pourrait être la solution à ce problème ?


__conf_déterminant_mas_sing_verbe__
    [du|cet|ledit|dudit]  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                # Incohérence avec “\1” : “\2” est un verbe.

    quel  @:V[123].*:(?:Y|[123][sp])¬:[NAQ]|>(?:pouvoir|vouloir|aller|devoir)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|")
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                # Incohérence avec “\1” : “\2” est un verbe.

    au  @:(?:Y|[123][sp])¬:[NAQ]
        <<- /conf/ \2.islower() and not value(\2, "|sortir|")
        -2>> =suggSimil(\2, ":[NA]:[me]:[si]", True)                                                # Incohérence avec “\1” : “\2” est un verbe.

    ce  @:V.*:(?:Y|[123][sp])¬:[NAQ]:.:[si]
        <<- /conf/ \2.islower()
            and not value(\2, "|faire|sont|soit|fut|fût|serait|sera|seront|soient|furent|fussent|seraient|peut|pouvait|put|pût|pourrait|pourra|doit|dut|dût|devait|devrait|devra|") and hasSimil(\2)
6059
6060
6061
6062
6063
6064
6065

6066

6067
6068
6069
6070
6071
6072
6073








6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089




6090
6091
6092
6093
6094
6095
6096

TEST: un {{maintient}} difficile.
TEST: quelqu’un arrive.
TEST: cet {{plaît}} est infectée.
TEST: {{ce}} {{rappelle}} n’en finit pas.
TEST: mon {{rackette}} n’a pas porté les fruits espérés.
TEST: ton {{recèle}} avait été dévoilé

TEST: Belle qui tient mon vit captif entre tes doigts.



__conf_déterminant_plur_verbe__
    [des|ces|mes|tes|ses|aux|nos|vos]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:.:[pi]", True)                                                   # Incohérence avec « \1 » : « \2 » est un verbe.









    quelques  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() and not value(\2, "|soient|soit|sois|puisse|puisses|puissent|")
        -2>> =suggSimil(\2, ":[NA]:.:[pi]", True)                                                   # Incohérence avec « \1 » : « \2 » est un verbe.

    [auxdits|lesdits|desdits]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:[me]:[pi]", True)                                                # Incohérence avec « \1 » : « \2 » est un verbe.

    [auxdites|lesdites|desdites]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:[fe]:[pi]", True)                                                # Incohérence avec « \1 » : « \2 » est un verbe.

TEST: la crainte des {{attentas}} fait feu de tout bois.
TEST: Quelques {{axions}} de la sorte suffisent à nous discréditer.
TEST: elle se rendit auxdits {{jardinais}}
TEST: auxdites {{scelles}}, il ne prêta pas attention.






__conf_de_vconj__
    [de|d’]  @:V.*:[123][sp]¬:[GNA]
        <<- /conf/ not \2.istitle() and not value(\2, "|jure|") -2>> =suggSimil(\2, ":[NA]", True)  # Incohérence avec “\1” : “\2” est une forme verbale conjuguée.

TEST: il s’agit de {{mette}} en évidence.







>

>







>
>
>
>
>
>
>
>
















>
>
>
>







6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121

TEST: un {{maintient}} difficile.
TEST: quelqu’un arrive.
TEST: cet {{plaît}} est infectée.
TEST: {{ce}} {{rappelle}} n’en finit pas.
TEST: mon {{rackette}} n’a pas porté les fruits espérés.
TEST: ton {{recèle}} avait été dévoilé
TEST: quel {{impacte}} cela aura-t-il ?
TEST: Belle qui tient mon vit captif entre tes doigts.
TEST: Quel serait l’homme capable d’une telle horreur ?


__conf_déterminant_plur_verbe__
    [des|ces|mes|tes|ses|aux|nos|vos]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:.:[pi]", True)                                                   # Incohérence avec « \1 » : « \2 » est un verbe.

    quels  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir|être)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|")
        -2>> =suggSimil(\2, ":[NA]:[me]:[pi]", True)                                                # Incohérence avec « \1 » : « \2 » est un verbe.

    quelles  @:V[123].*:(?:Y|[123][sp])¬:[NA]|>(?:pouvoir|vouloir|aller|devoir|être)/
        <<- /conf/ \2.islower() and not value(<1, "|le|la|les|") and hasSimil(\2, ":[NA]:[fe]:[pi]")
        -2>> =suggSimil(\2, ":[NA]:[fe]:[pi]", True)                                                   # Incohérence avec « \1 » : « \2 » est un verbe.

    quelques  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower() and not value(\2, "|soient|soit|sois|puisse|puisses|puissent|")
        -2>> =suggSimil(\2, ":[NA]:.:[pi]", True)                                                   # Incohérence avec « \1 » : « \2 » est un verbe.

    [auxdits|lesdits|desdits]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:[me]:[pi]", True)                                                # Incohérence avec « \1 » : « \2 » est un verbe.

    [auxdites|lesdites|desdites]  @:V.*:(?:Y|[123][sp])¬:[NA]
        <<- /conf/ \2.islower()
        -2>> =suggSimil(\2, ":[NA]:[fe]:[pi]", True)                                                # Incohérence avec « \1 » : « \2 » est un verbe.

TEST: la crainte des {{attentas}} fait feu de tout bois.
TEST: Quelques {{axions}} de la sorte suffisent à nous discréditer.
TEST: elle se rendit auxdits {{jardinais}}
TEST: auxdites {{scelles}}, il ne prêta pas attention.
TEST: quels {{afflues}} attendre ?
TEST: {{quelles}} {{arrêtes}}
TEST: quels seraient nos avantages ?
TEST: quelles vont être nos chances ?


__conf_de_vconj__
    [de|d’]  @:V.*:[123][sp]¬:[GNA]
        <<- /conf/ not \2.istitle() and not value(\2, "|jure|") -2>> =suggSimil(\2, ":[NA]", True)  # Incohérence avec “\1” : “\2” est une forme verbale conjuguée.

TEST: il s’agit de {{mette}} en évidence.
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618

    quelle  @:V¬:[NA].*:[fe]|>(?:être|plus|point)/
        <<- /conf/ \2.islower() and not (morph(\2, ">(?:pouvoir|devoir|aller)/") and (morph(>1, ":V0e") or morph(>2, ":V0e"))) and not (morph(\2, ":V0a") and value(>1, "|été|"))
        -1>> qu’elle                                                                                # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”.

TEST: {{Quelle}} y vienne, on verra ce qu’elle vaut.
TEST: {{Quelle}} a du répondant, cette gamine !
TEST: {{Quelle}} partit prendre son repas à la cantine, je n’en avais cure.
TEST: Il se plaint {{quelle}} ne nous dit rien.
TEST: {{Quelle}} l’apprenne un jour, on n’y peut rien.
TEST: Je crois {{quelle}} n’en sait pas assez pour nous nuire.


    quelles [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y]
        <<- /conf/ not (value(\2, "|en|ne|") and morph(>1, ":V0e")) -1>> qu’elles                   # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”.







|







9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643

    quelle  @:V¬:[NA].*:[fe]|>(?:être|plus|point)/
        <<- /conf/ \2.islower() and not (morph(\2, ">(?:pouvoir|devoir|aller)/") and (morph(>1, ":V0e") or morph(>2, ":V0e"))) and not (morph(\2, ":V0a") and value(>1, "|été|"))
        -1>> qu’elle                                                                                # Confusion. Le sujet “elle” doit être séparée de la conjonction “que”.

TEST: {{Quelle}} y vienne, on verra ce qu’elle vaut.
TEST: {{Quelle}} a du répondant, cette gamine !
TEST: {{Quelle}} allât prendre son repas à la cantine, je n’en avais cure.
TEST: Il se plaint {{quelle}} ne nous dit rien.
TEST: {{Quelle}} l’apprenne un jour, on n’y peut rien.
TEST: Je crois {{quelle}} n’en sait pas assez pour nous nuire.


    quelles [ne|n’|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|lui|leur|en|y]
        <<- /conf/ not (value(\2, "|en|ne|") and morph(>1, ":V0e")) -1>> qu’elles                   # Confusion. Le sujet “elles” doit être séparée de la conjonction “que”.
13119
13120
13121
13122
13123
13124
13125

13126
13127
13128
13129
13130
13131
13132
    >camp [de|d’] [concentration|internement|rééducation|vacances]
    >canne à [pêche|sucre]
    >canon à eau
    >caisse à >outil
    >carton d’ emballage
    >cellule [de|d’] détention provisoire
    >centre d’ éducation [populaire|surveillée]

    >chair à [pâté|>canon]
    >chair [de|d’] poule
    >chambre à [coucher|gaz]
    >chambre [de|d’] [agriculture|hôte|hôtel|hôtes|commerce|compensation|décompression|dégrisement]
    [>chariot|>charriot] à [bagages|roulettes]
    >chasse à courre
    >chasse à l’ homme







>







13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
    >camp [de|d’] [concentration|internement|rééducation|vacances]
    >canne à [pêche|sucre]
    >canon à eau
    >caisse à >outil
    >carton d’ emballage
    >cellule [de|d’] détention provisoire
    >centre d’ éducation [populaire|surveillée]
    >centre [de|d’] rétention ?[préventive|administrative]¿
    >chair à [pâté|>canon]
    >chair [de|d’] poule
    >chambre à [coucher|gaz]
    >chambre [de|d’] [agriculture|hôte|hôtel|hôtes|commerce|compensation|décompression|dégrisement]
    [>chariot|>charriot] à [bagages|roulettes]
    >chasse à courre
    >chasse à l’ homme
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
        <<- ~2>> *

    Amérique du [Nord|Sud]
    Amérique centrale
        <<- ~2:0>> *

    @:M[12]  *WORD
        <<- \2.istitle() or re.search("^[MDCLXVI]+$", \2) ~2:0>> *

    @:M[12]  [Ier|Iᵉʳ]
        <<- \2.istitle() ~2:0>> *

    @:M[12]  [Le|La|von|van|Mac|Mc|De|Du|D’]  *WORD
        <<- \3.istitle() ~2:0>> *








|







13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
        <<- ~2>> *

    Amérique du [Nord|Sud]
    Amérique centrale
        <<- ~2:0>> *

    @:M[12]  *WORD
        <<- \2.istitle() and space_after(\1, 1, 1) or re.search("^[MDCLXVI]+$", \2) ~2:0>> *

    @:M[12]  [Ier|Iᵉʳ]
        <<- \2.istitle() ~2:0>> *

    @:M[12]  [Le|La|von|van|Mac|Mc|De|Du|D’]  *WORD
        <<- \3.istitle() ~2:0>> *

14625
14626
14627
14628
14629
14630
14631

14632
14633
14634
14635
14636
14637
14638
TEST: le flou demeure aujourd’hui éblouissant.
TEST: la petite reste fragile
TEST: au moins neuf personnes disparues dans le pays et 140 blessés
TEST: C’en est arrivé là.
TEST: Madame, des comme vous, j’en vois quatre par jour.
TEST: Un quotidien facilité peut changer, à long terme, la donne dans la satisfaction des professionnels du privé et du public.
TEST: elles sont dans l’incapacité de rendre compte de l’intensité et de la profondeur des traumatismes provoqués



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







>







14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
TEST: le flou demeure aujourd’hui éblouissant.
TEST: la petite reste fragile
TEST: au moins neuf personnes disparues dans le pays et 140 blessés
TEST: C’en est arrivé là.
TEST: Madame, des comme vous, j’en vois quatre par jour.
TEST: Un quotidien facilité peut changer, à long terme, la donne dans la satisfaction des professionnels du privé et du public.
TEST: elles sont dans l’incapacité de rendre compte de l’intensité et de la profondeur des traumatismes provoqués
TEST: Cela nous évoque la fable de Jean de la Fontaine « Les animaux malades de la peste »


@@@@
@@@@
@@@@
@@@@
@@@@END_GRAPH                                                                                      _
21664
21665
21666
21667
21668
21669
21670
21671
21672
21673
21674
21675
21676
21677
21678
21679
21680
21681
21682
21683
21684
21685

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


__ppas_pronom_avoir__
    [je|j’|tu|il|elle|on|ils|elles|iel|iels|et|qui|ça|cela|ceci|celui-ci|celui-là|celle-ci|celle-là|ceeux-ci|ceux-là|celles-ci|celles-là]  ?[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|")
            and \-1.islower() and morph(\-1, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])")
        --1>> =suggVerbPpas(\-1, ":m:s")
        # Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [je|j’|tu|il|elle|on|ils|elles|iel|iels|et|qui|ça|cela|ceci|celui-ci|celui-là|celle-ci|celle-là|ceeux-ci|ceux-là|celles-ci|celles-là]  ?[ne|n’]¿  en  >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|")
            and \-1.islower() and morph(\-1, ":(?:[123][sp])", ":[GWQ]")
        --1>> =suggVerbPpas(\-1, ":m:s")
        # Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: ils leur avaient {{donnés}} du fil à retordre.                                ->> donné







|






|







21691
21692
21693
21694
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712

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


__ppas_pronom_avoir__
    [je|j’|tu|il|elle|on|ils|elles|iel|iels|et|qui|ça|cela|ceci|celui-ci|celui-là|celle-ci|celle-là|ceux-ci|ceux-là|celles-ci|celles-là]  ?[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|")
            and \-1.islower() and morph(\-1, ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])")
        --1>> =suggVerbPpas(\-1, ":m:s")
        # Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

    [je|j’|tu|il|elle|on|ils|elles|iel|iels|et|qui|ça|cela|ceci|celui-ci|celui-là|celle-ci|celle-là|ceux-ci|ceux-là|celles-ci|celles-là]  ?[ne|n’]¿  en  >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|")
            and \-1.islower() and morph(\-1, ":(?:[123][sp])", ":[GWQ]")
        --1>> =suggVerbPpas(\-1, ":m:s")
        # Ce verbe devrait être un participe passé au masculin singulier.|http://fr.wikipedia.org/wiki/Accord_du_participe_pass%C3%A9_en_fran%C3%A7ais

TEST: ils leur avaient {{donnés}} du fil à retordre.                                ->> donné