Grammalecte  Check-in [757f44a2f3]

Overview
Comment:[fr] couleurs par défaut + options manquantes sur certaines règles
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 757f44a2f3499542b3879c7c070b8b2cdbb1f928e1351cc4a2864f9310b0a044
User & Date: olr on 2018-09-25 15:49:40
Other Links: manifest | tags
Context
2018-09-25
15:51
[core][py] gc engine: no color by default (type is not certain) check-in: cdb1937a91 user: olr tags: trunk, core
15:49
[fr] couleurs par défaut + options manquantes sur certaines règles check-in: 757f44a2f3 user: olr tags: trunk, fr
12:02
[lo] paramater for colors check-in: 1249b779da user: olr tags: trunk, lo
Changes

Modified gc_lang/fr/rules.grx from [5a23e794ca] to [bf27b44f32].

108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145































146
147
148
149
150
151
152
108
109
110
111
112
113
114































115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152







-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







COLOR/blue:         210,50,50
COLOR/fuschia:      300,30,40
COLOR/cyan:         180,50,40
COLOR/grey:         0,50,50

# COLORS are must be described with the HSL format (0-360, 0-100 %, 0-100 %) [don’t write the sign %]
OPTCOLORTHEME:      Default     Writer
OPTCOLOR/typo:      grey        orange
OPTCOLOR/apos:      grey        orange2
OPTCOLOR/esp:       grey        orange
OPTCOLOR/tab:       grey        orange
OPTCOLOR/nbsp:      grey        orange
OPTCOLOR/tu:        grey        orange
OPTCOLOR/maj:       grey        orange
OPTCOLOR/num:       grey        orange
OPTCOLOR/virg:      grey        orange
OPTCOLOR/unit:      grey        orange
OPTCOLOR/nf:        grey        orange
OPTCOLOR/liga:      grey        orange
OPTCOLOR/mapos:     grey        orange
OPTCOLOR/chim:      grey        orange
OPTCOLOR/ocr:       grey        violet
OPTCOLOR/conf:      grey        violet
OPTCOLOR/sgpl:      grey        blue
OPTCOLOR/gn:        grey        blue
OPTCOLOR/infi:      grey        fuschia
OPTCOLOR/conj:      grey        fuschia
OPTCOLOR/ppas:      grey        fuschia
OPTCOLOR/imp:       grey        fuschia
OPTCOLOR/inte:      grey        fuschia
OPTCOLOR/vmode:     grey        fuschia
OPTCOLOR/bs:        grey        cyan
OPTCOLOR/pleo:      grey        cyan
OPTCOLOR/redon1:    grey        cyan
OPTCOLOR/redon2:    grey        cyan
OPTCOLOR/neg:       grey        cyan
OPTCOLOR/date:      grey        cyan
OPTCOLOR/mc:        grey        cyan
OPTCOLOR/typo:      orange      orange
OPTCOLOR/apos:      orange2     orange2
OPTCOLOR/esp:       orange      orange
OPTCOLOR/tab:       orange      orange
OPTCOLOR/nbsp:      orange      orange
OPTCOLOR/tu:        orange      orange
OPTCOLOR/maj:       orange      orange
OPTCOLOR/num:       orange      orange
OPTCOLOR/virg:      orange      orange
OPTCOLOR/unit:      orange      orange
OPTCOLOR/nf:        orange      orange
OPTCOLOR/liga:      orange      orange
OPTCOLOR/mapos:     orange      orange
OPTCOLOR/chim:      orange      orange
OPTCOLOR/ocr:       violet      violet
OPTCOLOR/conf:      violet      violet
OPTCOLOR/sgpl:      blue        blue
OPTCOLOR/gn:        blue        blue
OPTCOLOR/infi:      fuschia     fuschia
OPTCOLOR/conj:      fuschia     fuschia
OPTCOLOR/ppas:      fuschia     fuschia
OPTCOLOR/imp:       fuschia     fuschia
OPTCOLOR/inte:      fuschia     fuschia
OPTCOLOR/vmode:     fuschia     fuschia
OPTCOLOR/bs:        cyan        cyan
OPTCOLOR/pleo:      cyan        cyan
OPTCOLOR/redon1:    cyan        cyan
OPTCOLOR/redon2:    cyan        cyan
OPTCOLOR/neg:       cyan        cyan
OPTCOLOR/date:      cyan        cyan
OPTCOLOR/mc:        cyan        cyan


OPTDEFAULTUILANG: fr_FR

# Labels
OPTLANG/fr_FR:      Grammalecte (Français)
OPTLABEL/basic:     Typographie
2785
2786
2787
2788
2789
2790
2791
2792

2793
2794
2795
2796
2797
2798
2799
2785
2786
2787
2788
2789
2790
2791

2792
2793
2794
2795
2796
2797
2798
2799







-
+







!!
!!!! Élisions                                                                                     !!
!!
!!

__typo_élisions_manquantes__
    [le|la|de]  ~^[aâeéêiîoôu].
        <<- space_after(\1, 1, 1) and not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", \2) and not morph(\2, ":G")
        <<- /typo/ space_after(\1, 1, 1) and not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", \2) and not morph(\2, ":G")
        -1:.2>> =\1[0:1]+"’"                                                # Élision de l’article devant un mot commençant par une voyelle.|http://fr.wikipedia.org/wiki/Élision

    si [il|ils]
        <<- /typo/ space_after(\1, 1, 1) -1:.2>> s’                         # Il faut élider “si” et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision

    que [il|ils|elle|elles|on]
        <<- /typo/ space_after(\1, 1, 1) -1:.2>> qu’                        # Il faut élider “que” et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision
2983
2984
2985
2986
2987
2988
2989
2990

2991
2992

2993
2994
2995
2996
2997
2998
2999
2983
2984
2985
2986
2987
2988
2989

2990
2991

2992
2993
2994
2995
2996
2997
2998
2999







-
+

-
+







        <<- /typo/ ->> \1ᵉ          # Nombre ordinal romain singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCM]{1,10}$  [es|ès|ièmes|iemes|èmes|emes]
        <<- /typo/ ->> \1ᵉˢ         # Nombre ordinal romain pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    ~^[IVXLCM]{1,10}(?:è|i?[èe]me)s?$
        <<- /typo/ not morph(\1, ":G") >>>
        <<- \1.endswith("s")
        <<- /typo/ \1.endswith("s")
        ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ" # Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
        <<- __else__
        <<- /typo/ __else__
        ->> =\1.replace("me", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉ"   # Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

TEST: François {{Iier}}                         ->> Iᵉʳ
TEST: le {{IInd}} siècle                        ->> IIᵈ
TEST: le {{VIième}} siècle                      ->> VIᵉ
TEST: Le {{XXIème}} siècle.                     ->> XXIᵉ
TEST: le {{XXè}} siècle.                        ->> XXᵉ
3727
3728
3729
3730
3731
3732
3733
3734

3735
3736
3737
3738
3739
3740
3741
3727
3728
3729
3730
3731
3732
3733

3734
3735
3736
3737
3738
3739
3740
3741







-
+







!!!! Incohérences de base                                                                         !!
!!
!!

### double négation
__double_négation__
    pas [personne|aucun|aucune|jamais]
        <<- not morph(<1, ":D.*:[me]") ->> \1|pas, \1
        <<- /conf/ not morph(<1, ":D.*:[me]") ->> \1|pas, \1
        # Double négation : les mots « pas \1 » ne devraient pas se succéder. Si ces mots appartiennent à des propositions distinctes, une virgule est peut-être préférable.

TEST: Ce que tu ne fais {{pas jamais}}.


### incohérences globales (attention à la casse du 2e mot, car beaucoup de sigles peuvent tromper)
__incohérences_globales__
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769



4770
4771
4772
4773
4774
4775
4776
4760
4761
4762
4763
4764
4765
4766



4767
4768
4769
4770
4771
4772
4773
4774
4775
4776







-
-
-
+
+
+








__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/ \2.islower() >>>
        <<- morph(\2, "V.....[pqx]") -1>> ça|se                                                     # Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient. (Une faute de frappe peut-être ?)
        <<- __else__ -1>> ça                                                                        # Confusion : « \2 » est un verbe. Exemples : sa jambe, ça vient.
        <<- hasSimil(\2) -2>> =suggSimil(\2, ":[NA]:[fe]:[si]", True)                               # Incohérence avec « \1 » : « \2 » est un verbe.
        <<- /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.

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
4845
4846
4847
4848
4849
4850
4851
4852
4853


4854
4855
4856
4857
4858
4859
4860
4845
4846
4847
4848
4849
4850
4851


4852
4853
4854
4855
4856
4857
4858
4859
4860







-
-
+
+








    de  le  *WORD
        <<- /conf/ morph(\3, ":[NAQ].*:[me]", ":[YG]") and not \3.istitle() -1:2>> du               # Incohérence avec “\1 \2” : “\3” est un nom ou un adjectif.
        <<- /conf/ morph(\3, ":[123][sp]") -3>> =suggVerbInfi(\3)                                   # Incohérence avec “\1 \2” : “\3” est une forme verbale conjuguée.

    de  la  *WORD
        <<- /conf/ morph(\3, ":[123][sp]", ":[NAQ]") and not \3.istitle() >>>
        <<- morph(\3, ":V1.*:(?:Iq|Ip:2p)", ":1p") -3>> =suggVerbInfi(\3)               # Incohérence avec “\1 \2” : mettez le verbe à l’infinitif (à moins qu’il y ait confusion avec un nom féminin).
        <<- __else__ -3>> =suggSimil(\3, ":(?:[NA]:[fe]:[si])", False)                  # Incohérence avec “\1 \2” : “\3” est un verbe.
        <<- /conf/ morph(\3, ":V1.*:(?:Iq|Ip:2p)", ":1p") -3>> =suggVerbInfi(\3)                # Incohérence avec “\1 \2” : mettez le verbe à l’infinitif (à moins qu’il y ait confusion avec un nom féminin).
        <<- /conf/ __else__ -3>> =suggSimil(\3, ":(?:[NA]:[fe]:[si])", False)                   # Incohérence avec “\1 \2” : “\3” est un verbe.

TEST: les petits esprits de la {{pensait}} religieuse
TEST: {{de le}} vin                                           ->> du
TEST: il n’est pas interdit de le {{pensait}}
TEST: de l’{{entra}}
TEST: par {{bloque}} de données
TEST: il s’agit de {{mette}} en évidence.
4991
4992
4993
4994
4995
4996
4997
4998
4999


5000
5001
5002
5003
5004
5005
5006
4991
4992
4993
4994
4995
4996
4997


4998
4999
5000
5001
5002
5003
5004
5005
5006







-
-
+
+








    en   se  @:[123][sp]¬:[PY]
        <<- /conf/ morph(\3, ":3p") -3>> =suggVerb(\3, ":P")                                        # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- /conf/ not morph(\3, ":[NA]") -1:2>> "s’en "                                            # Incohérence : vouliez-vous écrire « \2’en » ?

    en   n’  @:[123][sp]¬:[PY]
        <<- /conf/ not value(\3, "|importe|") >>>
        <<- morph(\3, ":3p") -3>> =suggVerb(\3, ":P")                                               # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- -1:2>> "n’en "                                                                          # Incohérence : vouliez-vous écrire « \2’en » ?
        <<- /conf/ morph(\3, ":3p") -3>> =suggVerb(\3, ":P")                                        # Incohérence : « en \1 \2 »… Vouliez-vous écrire le verbe au participe présent ?
        <<- /conf/ -1:2>> "n’en "                                                                   # Incohérence : vouliez-vous écrire « \2’en » ?

TEST: {{en t’}}ait donné tant.                          ->> "t’en "
TEST: {{en n’}}{{envoient}} que peu.
TEST: il {{en me}} donne beaucoup.                      ->> m’en
TEST: {{en n’}}{{abordent}} la côte, nous vîmes le désastre.
TEST: toute chose pourrait finalement advenir indifféremment en n’importe quel point du globe

5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149







5150
5151
5152
5153
5154
5155
5156
5136
5137
5138
5139
5140
5141
5142







5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156







-
-
-
-
-
-
-
+
+
+
+
+
+
+








    à  les  @:[NAQ]¬:(?:Y|Oo)
        <<- /conf/ -1:2>> a les|aux
        # Confusion. Ou vous confondez “a” (préposition) avec “a” (avoir), ou vous devez employer “aux”. Exemple : Elle _a_ donné du travail _aux_ employés _à_ profusion.

    à  *WORD
        <<- /conf/ \2.islower() and not value(\2, "|coté|") >>>
        <<- morph(\2, ":(?:V.......[_z][az].*:Q|V1.*:Ip:2p)", ":[MGWNY]") -1>> a                    # Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez :
        <<- __also__ and morph(\2, "V1.*:(?:Ip:2p|Q)", "*") and not value(<1, "|il|elle|on|n’|les|l’|m’|t’|s’|d’|en|y|lui|nous|vous|leur|")
        -2>> =suggVerbInfi(\2)                                                                       # Le verbe devrait être à l’infinitif.
        <<- __else__ and morph(\2, ":[123][sp]", "*") and not value(\2, "|tord|tords|") >>>
        <<- morph(\2, ":V2.*:Ip:3s", "*") -2>> =suggVerbPpas(\2, ":m:s")                            # Incohérence : “\1” est une préposition. “\2” est un verbe conjugué.
        <<- __also__ -1>> a                                                                         # Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez :
        <<- __else__ -2>> _                                                                         # Incohérence : “\1” est une préposition. “\2” est un verbe conjugué.
        <<- /conf/ morph(\2, ":(?:V.......[_z][az].*:Q|V1.*:Ip:2p)", ":[MGWNY]") -1>> a             # Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez :
        <<- /conf/ __also__ and morph(\2, "V1.*:(?:Ip:2p|Q)", "*") and not value(<1, "|il|elle|on|n’|les|l’|m’|t’|s’|d’|en|y|lui|nous|vous|leur|")
        -2>> =suggVerbInfi(\2)                                                                      # Le verbe devrait être à l’infinitif.
        <<- /conf/ __else__ and morph(\2, ":[123][sp]", "*") and not value(\2, "|tord|tords|") >>>
        <<- /conf/ morph(\2, ":V2.*:Ip:3s", "*") -2>> =suggVerbPpas(\2, ":m:s")                     # Incohérence : “\1” est une préposition. “\2” est un verbe conjugué.
        <<- /conf/ __also__ -1>> a                                                                  # Confusion probable : “à” est une préposition. Pour le verbe “avoir”, écrivez :
        <<- /conf/ __else__ -2>> _                                                                  # Incohérence : “\1” est une préposition. “\2” est un verbe conjugué.

TEST: Ce fâcheux, comme à son habitude, les {{à}} ennuyés à mourir.
TEST: Lui l’{{à}} pris par surprise.
TEST: elle n’y {{à}} pas droit.
TEST: il y {{à}} des pertes.
TEST: ce qui {{à}} pris tant de valeur, c’est…
TEST: Cette femme {{à}} été confondue avec une autre.
5220
5221
5222
5223
5224
5225
5226
5227

5228
5229
5230
5231
5232
5233
5234
5220
5221
5222
5223
5224
5225
5226

5227
5228
5229
5230
5231
5232
5233
5234







-
+







    tout a fait
    jusqu’ a
    pas a pas
        <<- /conf/ -2>> à                                           # Confusion : “a” est une forme conjugée de “avoir”. Pour la préposition, écrivez “à”.

    a [moi|toi|eux|elles]
    a [lui|elle|nous|vous]  <end>
        <<- not morph(<1, ":Oo|>(?:il|elle)") and not value(<1, "|n’|m’|t’|")
        <<- /conf/ not morph(<1, ":Oo|>(?:il|elle)") and not value(<1, "|n’|m’|t’|")
        -1>> à                                                      # Confusion probable : “a” est une forme conjuguée du verbe “avoir”. Pour la préposition, écrivez “à”.

TEST: Je le donne {{a}} toi.
TEST: Personne {{a}} part Tom ne connaît son adresse
TEST: ce qu’elles feront alors {{a coup sûr}}, difficile de le devenir.
TEST: Face {{a}} ces gens, il ne pensait pas pouvoir réussir
TEST: c’est grâce {{a}} nous que vous y êtes parvenus
6554
6555
6556
6557
6558
6559
6560
6561

6562
6563
6564
6565
6566
6567
6568
6554
6555
6556
6557
6558
6559
6560

6561
6562
6563
6564
6565
6566
6567
6568







-
+







TEST: il se sentait de nouveau homme
TEST: il se sentait à nouveau homme


# nulle part
__conf_nulle_part__
    nul part
        <<- not morph(<1, ":D.*:m") ->> nulle part                             # Confusion : pour dire “en aucun lieu”, écrivez “nulle part”.
        <<- /conf/ not morph(<1, ":D.*:m") ->> nulle part           # Confusion : pour dire “en aucun lieu”, écrivez “nulle part”.

TEST: car {{nul part}} ailleurs, on n’en trouve une telle concentration


# on / ont
__conf_on_ont__
    on  @:W¬:3s
7975
7976
7977
7978
7979
7980
7981
7982

7983
7984
7985
7986
7987
7988
7989
7975
7976
7977
7978
7979
7980
7981

7982
7983
7984
7985
7986
7987
7988
7989







-
+







TEST: Une étude de 2005 publiée dans le Journal
TEST: Les cinq variantes de la couverture du magazine Wired d’avril 2016 consacrée à Silicon Valley.
TEST: c’est donc la cinquième en 50 ans


__purge_un_nombre__
    un  *NUM  @:A.*:s¬:G
        <<-  ~2>> *
        <<- ~2>> *

TEST: l’équipe veut aussi voir dans la lettre le nombre d’or, un symbole d’harmonie, ainsi qu’un 6 retourné.


## moi/toi/lui/elle/nous/vous/eux/elles seul·e·s
__purge_pronom_seul__
    [moi|toi]       [seul|seule]
10417
10418
10419
10420
10421
10422
10423
10424

10425
10426
10427
10428


10429
10430
10431

10432
10433
10434
10435
10436
10437
10438
10417
10418
10419
10420
10421
10422
10423

10424
10425
10426


10427
10428
10429
10430

10431
10432
10433
10434
10435
10436
10437
10438







-
+


-
-
+
+


-
+







        <<- /gn/ morph(\3, "@:[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") -2>> =suggLesLa(\2)          # Accord de genre erroné : « \3 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True)                            # Accord de genre erroné : « \2 » est un déterminant masculin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p") -3>> =suggMasSing(\3)                          # Accord de nombre erroné : « \3 » devrait être au singulier.
        <<- /gn/ __also__ -2>> les                                                                  # Accord de nombre erroné : « \3 » est au pluriel.

    *WORD  le  *WORD
        <<- /gn/ morph(\2, ":D") >>>
        <<- morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)")
        <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)")
            or ( morph(\3, ":[NA].*:f", ":[me]") and morph(\1, ":R", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
        -2>> =suggLesLa(\2)                                                                         # Accord de genre erroné : « \3 » est féminin.
        <<- __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True)                                 # Accord de genre erroné : « \2 » est un déterminant masculin.
        <<- __else__ and morph(\3, ":[NA].*:p", "*")
        <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True)                            # Accord de genre erroné : « \2 » est un déterminant masculin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p", "*")
            or ( morph(\3, ":[NA].*:p", ":[si]") and morph(\1, ":[RC]", ">(?:e[tn]|ou)/") and not (morph(\1, ":Rv") and morph(\3, ":Y")) )
        -3>> =suggMasSing(\3)                                                                       # Accord de nombre erroné : « \3 » devrait être au singulier.
        <<- __also__ -2>> les                                                                       # Accord de nombre erroné : « \3 » est au pluriel.
        <<- /gn/ __also__ -2>> les                                                                  # Accord de nombre erroné : « \3 » est au pluriel.

    <start>  le  *WORD
        <<- /gn/ morph(\3, ":[NA].*:f", ":(?:e|m|P|G|W|Y)") -2>> =suggLesLa(\2)                     # Accord de genre erroné : « \3 » est féminin.
        <<- /gn/ __also__ and hasMasForm(\3) -3>> =suggMasSing(\3, True)                            # Accord de genre erroné : « \2 » est un déterminant masculin.
        <<- /gn/ __else__ and morph(\3, ":[NA].*:p", ":[siGW]") -3>> =suggMasSing(\3)               # Accord de nombre erroné : « \3 » devrait être au singulier.
        <<- /gn/ __also__ -2>> les                                                                  # Accord de nombre erroné : « \3 » est au pluriel.

12388
12389
12390
12391
12392
12393
12394
12395

12396
12397
12398
12399
12400
12401
12402
12388
12389
12390
12391
12392
12393
12394

12395
12396
12397
12398
12399
12400
12401
12402







-
+








# content / contant / comptant
__conf_content_comptant__
    >avoir ?tout¿ [mon|ton|son|notre|votre|leur] ([comptant|contant])
        <<- /conf/ -1>> content                             # Confusion. Avoir (tout) son content…|https://fr.wiktionary.org/wiki/content#Nom_commun

    argent [content|contant]
        <<- morph(<1, ":[VR]") -2>> comptant                # Confusion probable.|https://fr.wiktionary.org/wiki/argent_comptant
        <<- /conf/ morph(<1, ":[VR]") -2>> comptant         # Confusion probable.|https://fr.wiktionary.org/wiki/argent_comptant

TEST: Elle a déjà eu tout son {{comptant}} de problèmes.
TEST: On paye toujours argent {{content}}.


# côté / coté
__conf_côté_coté__
13714
13715
13716
13717
13718
13719
13720
13721

13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738

13739
13740
13741
13742
13743
13744
13745
13714
13715
13716
13717
13718
13719
13720

13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737

13738
13739
13740
13741
13742
13743
13744
13745







-
+
















-
+









!!!! Adverbes après verbe                                                                         !!

# fort
__sgpl_verbe_fort__
    forts
        <<- morph(<1, ":V", ":[AN].*:[me]:[pi]|>(?:être|sembler|devenir|re(?:ster|devenir)|para[îi]tre|appara[îi]tre)/.*:(?:[123]p|P|Q)|>(?:affirmer|trouver|croire|désirer|estime|préférer|penser|imaginer|voir|vouloir|aimer|adorer|souhaiter)/")
        <<- /sgpl/ morph(<1, ":V", ":[AN].*:[me]:[pi]|>(?:être|sembler|devenir|re(?:ster|devenir)|para[îi]tre|appara[îi]tre)/.*:(?:[123]p|P|Q)|>(?:affirmer|trouver|croire|désirer|estime|préférer|penser|imaginer|voir|vouloir|aimer|adorer|souhaiter)/")
            and not morph(>1, ":A.*:[me]:[pi]")
        ->> fort                                                # Confusion probable. S’il s’agit ici de l’adverbe “fort” (équivalent de “fortement”), écrivez-le au singulier.

TEST: ces emmerdeurs crient bien trop {{forts}}
TEST: ces animaux paraissent forts, mais ils sont faibles.
TEST: ils sont forts, ces gars-là.
TEST: ils se croient forts.
TEST: je les imagine forts et intelligents.
TEST: elles les veulent forts et astucieux.
TEST: les écarts ont été plus forts en une génération
TEST: Avec le même nombre de bulletins, les xénophobes apparaîtront plus forts.


# bien
__sgpl_verbe_bien__
    biens
        <<- morph(<1, ":V", ":D.*:p|:A.*:p") ->> bien           # Confusion probable. Ici, “bien” est un adverbe, donc invariable.
        <<- /sgpl/ morph(<1, ":V", ":D.*:p|:A.*:p") ->> bien    # Confusion probable. Ici, “bien” est un adverbe, donc invariable.

TEST: Ils vont {{biens}}.
TEST: Elles travaillaient vraiment {{biens}}.
TEST: Il ne comprenait vraiment pas très {{biens}} ces principes de base.
TEST: Il a de grands biens.
TEST: Ce sont des biens de peu de valeur.

16092
16093
16094
16095
16096
16097
16098
16099

16100
16101
16102
16103
16104

16105
16106
16107
16108
16109
16110
16111
16092
16093
16094
16095
16096
16097
16098

16099
16100
16101
16102
16103

16104
16105
16106
16107
16108
16109
16110
16111







-
+




-
+









## 3sg
__conj_elle__
    elle  @:V¬:(?:3s|P|G)
        <<- /conj/ not morph(<1, ":R|>(?:et|ou)") and not (morph(\2, ":Q") and morph(<1, ":V0.*:3s"))
        -2>> =suggVerb(\2, ":3s")                               # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- __also__ and morph(\2, ":3p") -1>> elles            # Accord avec “\2”.
        <<- /conj/ __also__ and morph(\2, ":3p") -1>> elles     # Accord avec “\2”.

    elle  qui  @:V¬:(?:3s|P|G)
        <<- /conj/ not morph(<1, ":R|>(?:et|ou)")
        -3>> =suggVerb(\3, ":3s")                               # Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du singulier.
        <<- __also__ and morph(\3, ":3p") -1>> elles            # Accord avec “\3”.
        <<- /conj/ __also__ and morph(\3, ":3p") -1>> elles     # Accord avec “\3”.

TEST: Elle {{conquis}}.
TEST: Elle {{finis}}.
TEST: Elle {{pâlis}}.
TEST: {{Elles}} {{donne}} des leçons.
TEST: {{Elle}} ne nous {{croient}} jamais.
TEST: {{elle}} {{sont}} parties.
16603
16604
16605
16606
16607
16608
16609
16610

16611
16612
16613
16614
16615
16616
16617
16603
16604
16605
16606
16607
16608
16609

16610
16611
16612
16613
16614
16615
16616
16617







-
+







# on / ont
__conf_ont!6__
    ils  on
    [eux|ceux|elles|celles]  qui  on
        <<- /conf/ --1>> ont                                    # Confusion probable : “on” est un pronom personnel. Pour la conjugaison du verbe “avoir”, écrivez “on”.

    [elles|ceux-ci|ceux-là|celles-ci|celles-là]  on
        <<- not morph(<1, ":[RV]") -2>> ont                     # Confusion probable : “on” est un pronom personnel. Pour la conjugaison du verbe “avoir”, écrivez “on”.
        <<- /conf/ not morph(<1, ":[RV]") -2>> ont              # Confusion probable : “on” est un pronom personnel. Pour la conjugaison du verbe “avoir”, écrivez “on”.

TEST: celles-là {{on}} {{vraiment}} un problème avec la religion.
TEST: j’ai, tu as, ils ont, elles {{on}}
TEST: ces gens-là ils {{on}} {{raison}} plus souvent que la plupart des gens.
TEST: Ils soutiennent ceux qui {{on}} {{tant}} de raison d’être en colère.
TEST: Or parmi celles-ci on trouve typiquement d’un côté les structures