1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
|
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
|
+
+
+
+
+
+
+
+
|
<<- ~>> seras
__da_été__
>avoir ?@:[WX]¿ été
<<- =>> select(\-1, ":Q")
__da_adverbes__
environ [$:B|*NUM]
<<- not value(<1, "|l’|un|cet|quel|") =>> exclude(\1, ":N")
grave
<<- morph(<1, ":D") =>> (\1, ":W")
__da_prépositions__
dans
<<- not morph(<1, ":D.*:p|>[a-z]+ième/") =>> select(\1, ":R")
passé [<end>|,|$:R]
<<- =>> exclude(\1, ":G")
|
16072
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083
16084
16085
|
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083
16084
16085
16086
16087
16088
16089
16090
16091
16092
16093
16094
16095
16096
16097
16098
16099
16100
16101
16102
16103
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
@@@@
@@@@
@@@@GRAPH: purge_passe3|pp3 _
@@@@
@@@@
@@@@
@@@@
__fusions_noms_propres_et_pronoms__
[<start>|,|(|$:Cs] [moi|toi|lui|elle|iel|nous|vous|eux|elles|iels|$:M] et [moi|nous]
[<start>|,|(|$:Cs] [moi|nous] et [moi|toi|lui|elle|iel|nous|vous|eux|elles|iels|$:M]
<<- not value(\1, "|que|qu’|") ~2:0>> ␣
<<- __also__ /2>> _eq_nous_
[<start>|,|(|$:Cs] [toi|lui|elle|iel|vous|eux|elles|iels|$:M] et [toi|vous]
[<start>|,|(|$:Cs] [toi|vous] et [toi|lui|elle|iel|vous|eux|elles|iels|$:M]
<<- not value(\1, "|que|qu’|") ~2:0>> ␣
<<- __also__ /2>> _eq_vous_
[<start>|,|(|$:Cs] [lui|elle|iel|eux|elles|iels|$:M] et [lui|elle|iel|eux|elles|iels]
[<start>|,|(|$:Cs] [lui|elle|iel|eux|elles|iels] et [lui|elle|iel|eux|elles|iels|$:M]
<<- not value(\1, "|que|qu’|") ~2:0>> ␣
<<- __also__ /2>> _eq_iels_
__da_le_la_les_leur2__
[<start>|,|(] c’ ?[ne|n’]¿ >être [le|la|l’|les] @:[NA]¬:G
[<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ *WORD [le|la|l’|les] @:[NA]¬:[YG]
[<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] *WORD [le|la|l’|les] @:[NA]¬:[YG]
[<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] *WORD [le|la|l’|les] @:[NA]¬:[YG]
[<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [lui|leur|y] en *WORD [le|la|l’|les] @:[NA]¬:[YG]
|
20055
20056
20057
20058
20059
20060
20061
20062
20063
20064
20065
20066
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
20085
20086
20087
20088
20089
20090
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
20101
20102
20103
20104
20105
20106
20107
20108
20109
|
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
20085
20086
20087
20088
20089
20090
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
20101
20102
20103
20104
20105
20106
20107
20108
20109
20110
20111
20112
20113
20114
20115
20116
20117
20118
20119
20120
20121
20122
20123
20124
20125
20126
20127
20128
20129
20130
|
+
-
+
+
-
+
-
+
+
-
-
+
+
-
+
|
TEST: celles {{perdue}} aura une pénalité
TEST: celles venues chanter doivent se rendre là-bas.
## Nombres
__gn_nombre_lettres_1m__
$:B:e:p *WORD
<<- /gn/ not value(\1, "|neuf|mille|") and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":D.*:s")
<<- /gn/ not value(\1, "|neuf|mille|") and morph(\2, ":[NA].*:s", "*") and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
and not re.search("^[IVXLDM]+$", \1)
-2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
neuf *WORD
<<- /gn/ morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not morph(<1, ":D.*:s")
<<- /gn/ morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
-2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
mille *WORD
<<- /gn/ not value(\2, "|maximum|minimum|multiplié|divisé|") and morph(\2, ":[NA].*:s", "*") and not value(<1, "|le|un|ce|du|")
<<- /gn/ not value(\2, "|maximum|minimum|multiplié|divisé|") and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":D.*:s")
-2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
TEST: ce sont trois {{idiot}} pas foutus de trouver leur chemin avec un GPS. ->> idiots
TEST: Il a abandonné neuf {{enfant}}. ->> enfants
TEST: On peut trouver mille {{travailleur}} d’un claquement de doigts. ->> travailleurs
TEST: Il y a quatre cents {{mot}} dans la phrase. ->> mots
TEST: cent {{mot}} ->> mots
TEST: cinquante {{mot}} ->> mots
TEST: mille cinquante {{mot}} ->> mots
TEST: deux {{tête}} ->> têtes
TEST: un logement neuf bâti par des professionnels.
TEST: un mille marin.
TEST: L’article VII mentionné dans la revue
TEST: Le produit de cinq multiplié par trois.
TEST: deux divisé par douze
TEST: il en faut trois minimum, cinq maximum
TEST: il vit dans un vingt-quatre mètre carré.
__gn_nombre_chiffres_1m__
[0|1|01] @:[NAQ].*:p¬*
<<- /gn/ space_after(\1, 1, 1) and not value(\2, "|Rois|Corinthiens|Thessaloniciens|")
-2>> =suggSing(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au singulier.
*NUM *WORD
<<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ":N")
and morph(\2, ":[NA].*:s", "*") and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
<<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and morph(\2, ":[NA].*:s", "*") and not morph(<1, ":(?:N|D.*:s)")
and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
-2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
*NUM *WORD *WORD
<<- /gn/ not value(\2, "|maximum|minimum|fois|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")
and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">(?:seule|maximum|minimum)/") >>>
and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ">(?:et|ou)/|:(?:N|D.*:[si])") and not morph(\3, ">(?:seul|maximum|minimum)/|:(?:[BG]|V0)") >>>
<<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*")))
and not apposition(\2, \3)
-3>> =switchGender(\3, True) && Accord de genre erroné entre « \2 » et « \3 ».
<<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True) && Accord de genre erroné avec « \3 ».
<<- /gn/ morph(\2, ":[NA].*:[pi]", "*") 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.
|
26811
26812
26813
26814
26815
26816
26817
26818
26819
26820
26821
26822
26823
26824
26825
26826
26827
26828
26829
26830
26831
26832
26833
26834
26835
26836
26837
26838
26839
26840
26841
26842
26843
26844
26845
26846
|
26834
26835
26836
26837
26838
26839
26840
26841
26842
26843
26844
26845
26846
26847
26848
26849
26850
26851
26852
26853
26854
26855
26856
26857
26858
26859
26860
26861
26862
26863
26864
26865
26866
26867
26868
26869
26870
26871
26872
26873
26874
26875
26876
26877
26878
26879
26880
26881
26882
26883
26884
26885
26886
26887
26888
26889
26890
26891
26892
26893
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
|
--1>> =suggVerb(\-1, ":3s") && Conjugaison erronée. Accord avec “\1 \2 \3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier.
TEST: ce qu’ils font me {{donnent}} la nausée. ->> donne
TEST: tu ne sais pas, mais ce que tu fais {{deviens}} plus facile ->> devient
TEST: ceux contre ce que nous faisons deviennent hargneux.
TEST: ce qu’elles accomplissent est formidable.
## 1pl
__conj_eq_nous__
[<start>|,|(|$:Cs] /_eq_nous_ @:V¬:(?:G|Y|P|1p|M|A.*:p)
<<- /conj/ -3>> =suggVerb(\3, ":1p") && Conjugaison probablement erronée. Accord avec “\2”. Le verbe devrait être à la 1ʳᵉ personne du pluriel.
TEST: vous et nous {{iront}} dans la forêt
## 2pl
__conj_eq_vous__
[<start>|,|(|$:Cs] /_eq_vous_ @:V¬:(?:G|P|2p|M|A.*:p)
<<- /conj/ -3>> =suggVerb(\3, ":2p") && Conjugaison probablement erronée. Accord avec “\2”. Le verbe devrait être à la 2ᵉ personne du pluriel.
TEST: vous et eux {{partirait}} ensemble.
## 3pl
__conj_eq_iels__
/_eq_iels_ @:V¬:(?:3p|P|G|M|A.*:p)
<<- /conj/ not morph(<1, ":R") and not (morph(\2, ":Q") and morph(<1, ":V0.*:3p"))
-2>> =suggVerb(\2, ":3p") && Conjugaison probablement erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
TEST: lui et elle {{était}} dans l’affliction
__conj_elles__
elles @:V¬:(?:3p|P|G|M|A.*:f:p)
<<- /conj/ not morph(<1, ":R") and not (morph(\2, ":Q") and morph(<1, ":V0.*:3p"))
-2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
<<- /conj/ __also__ and morph(\2, ":3s") -1>> elle && Accord avec “\2”.
elles qui @:V¬:(?:3p|P|G|M)
<<- /conj/ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 3ᵉ personne du pluriel.
<<- /conj/ __also__ and morph(\3, ":3s") -1>> elle && Accord avec “\3”.
TEST: {{elles}} {{avance}} rapidement sur ce projet
TEST: {{Elles}} n’y {{comprenne}} rien
TEST: {{elles}} qui s’{{amuse}} comme des folles
TEST: L’expérience sensible qu’il nous restera bientôt d’elles est à peu près
TEST: eux attaqués par des mécanoïdes, elles attaquées par des insectoïdes.
TEST: tout ce qui vient d’elles sera écarté.
__conj_iels__
iels @:V¬:(?:3p|P|G|M|A.*:f:p)
iels @:V¬:(?:3p|P|G|M|A.*:p)
<<- /conj/ not morph(<1, ":R") and not (morph(\2, ":Q") and morph(<1, ":V0.*:3p"))
-2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\1”. Le verbe devrait être à la 3ᵉ personne du pluriel.
<<- /conj/ __also__ and morph(\2, ":3s") -1>> iel && Accord avec “\2”.
iels qui @:V¬:(?:3p|P|G|M)
<<- /conj/ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2”. Le verbe devrait être à la 3ᵉ personne du pluriel.
<<- /conj/ morph(\3, ":3s") -1>> iel && Accord avec “\3”.
|