Grammalecte  Diff

Differences From Artifact [7738ed0e86]:

To Artifact [a665aa267d]:


744
745
746
747
748
749
750

751

752
753
754
755
756
757
758
744
745
746
747
748
749
750
751

752
753
754
755
756
757
758
759







+
-
+







__<i>/html(p_html_balise_fermante)__    </\w+ *> <<- ~>> *
__<i>/html(p_html_amp_xxx)__            &amp;[a-zA-Z]+; <<- ~>> _
__<i>/html(p_html_lt)__                 &lt; <<- ~>> "   <"
__<i>/html(p_html_gt)__                 &gt; <<- ~>> >
__<i>/html(p_html_amp)__                &amp; <<- ~>> &
__<i>/html(p_html_nbsp)__               &nbsp; <<- ~>> @
__<i>/html(p_html_nbsp2)__              &#(?:160|8239); <<- ~>> @
__<i>/html(p_html_pseudo_balise1)__     \[(?:[buiqa]|blockquote|quote)\] <<- ~>> *
__<i>/html(p_html_pseudo_balise)__      \[/?\w+\] <<- ~>> *
__<i>/html(p_html_pseudo_balise2)__     \[/\w+\] <<- ~>> *

# LaTeX
__<i]/latex(p_latex1)__     \\[a-z]+ <<- ~>> *
__<i>/latex(p_latex2)__     \\[,;/\\] <<- ~>> *
__<s>/latex(p_latex3)__     \{(?:abstract|align|cases|center|description|enumerate|equation|figure|flush(?:left|right)|gather|minipage|multline|quot(?:ation|e)|SaveVerbatim|table|tabular|thebibliography|[vV]erbatim|verse|wrapfigure)\} <<- ~>> *

# Markdown
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
944
945
946
947
948
949
950


























































951
952
953
954
955
956
957







-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-







    ({w_1}) *$  @@0
        <<- before("\\w+(?:\\.|[   ][!?]) +(?:[A-ZÉÈÎ]\\w+|[ÀÔ])") -1>> \1.|\1 !|\1 ?               && Il semble manquer une ponctuation finale (s’il s’agit d’un titre, le point final n’est pas requis).

TEST: __poncfin__ Vraiment. Quel {{ennui}}
TEST: Internet : le nouvel eldorado
TEST: OMC-FMI : Les nouveaux maîtres du monde


!!
!!
!!!! Virgules                                                                                     !!
!!
!!

# virgules manquantes
__[i>/virg(virgule_manquante_avant_etc)__   {w_1}( etc[.])  @@$ <<- -1>> , etc.                     && Avant « etc. », il faut mettre une virgule.
__[i>/virg(virgule_manquante_avant_car)__
    ({w_1})( car)(?= (?:j[e’]|tu|ie?ls?|nous|vous|elles?|on|les?|l[a’]|ces?|des?|cette|[mts](?:on|a|es))\b)  @@0,$
        <<- not morph(\1, ":[DR]") -2>> , car
        && Si « car » est la conjonction de coordination, une virgule est peut-être souhaitable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3447
__[i>/virg(virgule_manquante_avant_mais)__
    ({w_1})( mais)(?= (?:j[e’]|tu|ie?ls?|nous|vous|elles?|on)\b)  @@0,$
        <<- not morph(\1, ">(?:[mtscl]es|[nv]os|quels)/") -2>> , mais
        && Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445
__[i>/virg(virgule_manquante_avant_donc)__
    ({w_1})( donc)(?= (?:j[e’]|tu|ie?ls?|elles?|on)\b)  @@0,$
        <<- not morph(\1, ":[VG]") -2>> , donc
        && Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448

TEST: Un chien, un chat{{ etc.}}                                            ->> , etc.
TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit.                   ->> , car
TEST: Je suis fatigué{{ mais}} il a joué toute la nuit.                     ->> , mais
TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire.              ->> , donc
TEST: il s’est donc tu
TEST: Chacun peut l’entendre d’une manière différente et donc on se demande bien ce qui est mesuré dans les réponses.


__<s>/virg(virgule_point_fin_dialogue)__
    ([.] » )[a-zéà]  @@0 <<- -1>> " », | » "                                && Ou il faut une virgule (exemple : « Je viens », dit-il). Ou le point est superflu. Ou il faut une majuscule sur le mot suivant.
__<s>/virg(virgule_fin_dialogue)__
    (, »,? )[a-zéà]  @@0 <<- -1>> " », | » "                                && Virgule mal placée ou superflue.

TEST: « Ça suffit{{. » }}dit-elle.
TEST: « J’en ai plus qu’assez{{, » }}dis-je.
TEST: {{Julien}} donne-moi le sel.
TEST: dès son premier rendez-vous au centre
TEST: Depuis combien de temps fumez-vous ?


__<s>/virg(virg_virgule_avant_points_suspension)__
    , *… <<- ->> …                                                          && Typographie : pas de virgule avant les points de suspension.

__<s>/virg(virg_virgule_après_point)__
    ({w1})([.],)  @@0,$
        <<- not re.search("^(?:etc|[A-Z]|fig|hab|litt|circ|coll|ref|étym|suppl|bibl|bibliogr|cit|vol|déc|nov|oct|janv|juil|avr|sept|pp?)$", \1)
        -2>> ,|.                                                            && Pas de virgule après un point (sauf éventuellement après une abréviation).

TEST: ceci, cela{{, …}}                                                   ->> …
TEST: Les chiens, les chats{{.,}} les poules.                             ->> ,|.

# Fin de paragraphe
#__<i>/typo__  ({w_2}) *$   @@0
#    <<- before("[a-zéàùèê][.] ") and not before("^(?:\\d|\w[.])")
#    -1>> \1.|\1…|\1 !|\1 ?|\1 :|\1 ;|\1,                                               && Il manque une ponctuation finale.


!!
!!
!!!! Espaces manquants                                                                            !!
!!
!!

1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1132
1133
1134
1135
1136
1137
1138








1139
1140
1141
1142
1143
1144
1145







-
-
-
-
-
-
-
-







    (?:cos|sin|tan|cotan|log|ln)²? [2-9]?[a-zA-Zα-ωΑ-Ω]
        <<- ->> =\0.replace(" ", "(")+")|"+\0.replace(" ", " ")             && Mettez des parenthèses (ou éventuellement un espace insécable).

TEST: {{cos ω}}                                         ->> cos(ω)|cos ω
TEST: {{sin γ}}                                         ->> sin(γ)|sin γ


#__[s]/virg(virg_nombre)__
#    [0-9]+[.]([0-9]+)(?![,.])
#        <<-  ->> =\0.replace(".", ",")                     && En français, le séparateur décimal est la virgule, non le point.
#
#TEST: +{{1.5}} dioptrie
#TEST: j’en veux 2.000
#TEST: et moi 3.000.000 de dollars


!!
!!
!!!! Tirets                                                                                       !!
!!
!!

1811
1812
1813
1814
1815
1816
1817
1818

1819
1820
1821
1822
1823
1824
1825
1746
1747
1748
1749
1750
1751
1752

1753
1754
1755
1756
1757
1758
1759
1760







-
+







    (  [re|ré]  )  *WORD
        <<- space_after(\3, 0, 0) ~1:3>>  *

    [  *NUM  ]
    [  …  ]
        <<- ~>> *

    [ *WORD ]
    [  *WORD  ]
        <<- morph(\2, ":G") ~>> |\2|
        <<- __else__ ~>> *

    ## chapitres, références
    (  [*WORD|*NUM]  ,  *NUM  )
    [  [*WORD|*NUM]  ,  *NUM  ]
    {  [*WORD|*NUM]  ,  *NUM  }
2730
2731
2732
2733
2734
2735
2736






































































































2737
2738
2739
2740
2741
2742
2743
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







TEST: c’est ton chez-toi
TEST: penses-y
TEST: dépenses-en encore
TEST: prenez-en
TEST: prends-en
TEST: allez-y


!!
!!
!!!! Virgules                                                                                     !!
!!
!!

__virg_virgules_manquantes__
    *WORD  etc  .
        <<- /virg/ -1.:0>> , etc.                                                                   && Avant « etc. », il faut mettre une virgule.|https://fr.wiktionary.org/wiki/etc.

    *WORD  car  @:(?:Os|D)
        <<- /virg/ not morph(\1, ":[DR]") -1.:2>> , car
        && Si « car » est la conjonction de coordination, une virgule est peut-être souhaitable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3447

    *WORD  mais  $:Os
        <<- /virg/ not morph(\1, ":D.*:[me]:[si]") -1.:2>> , mais
        && Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445

    *WORD  donc  [je|j’|il|on]
        <<- /virg/ not morph(\1, ":[VG]") -1.:2>> , donc
        && Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448

TEST: Un chien, un chat{{ etc.}}                                            ->> , etc.
TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit.                   ->> , car
TEST: Je suis fatigué{{ mais}} il a joué toute la nuit.                     ->> , mais
TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire.              ->> , donc
TEST: il s’est donc tu
TEST: c’était donc elles les meilleures
TEST: c’était eux qui prenaient tous les risques
TEST: il avançait donc le moyen d’y parvenir
TEST: Chacun peut l’entendre d’une manière différente et donc on se demande bien ce qui est mesuré dans les réponses.


__virg_fin_dialogue__
    .  »  ~^[a-zéà]
        <<- /virg/ -1:2>> " »,| »"          && Ou il faut une virgule (exemple : « Je viens », dit-il). Ou le point est superflu. Ou il faut une majuscule sur le mot suivant.

    ,  »  ?,¿  ~^[a-zéà]
        <<- /virg/ -1:-2>> " »,| »"         && Virgule mal placée ou superflue.

TEST: « Ça suffit{{. »}} dit-elle.                                          ->> " »,| »"
TEST: « J’en ai plus qu’assez{{, »}} dis-je.                                ->> " »,| »"
TEST: « C’est ainsi{{, »,}} dis-je.                                         ->> " »,| »"
TEST: dès son premier rendez-vous au centre
TEST: Depuis combien de temps fumez-vous ?


__virg_virgule_avant_points_suspension__
    ,  …
        <<- /virg/ ->> …                    && Typographie : pas de virgule avant les points de suspension.

TEST: ceci, cela{{, …}}                                                     ->> …


__virg_virgule_après_point__
    *WORD  .  ,
        <<- /virg/ space_after(\1, 0, 0) and space_after(\2, 0, 0)
            and not value(\1, "|etc|fig|hab|litt|fig|hab|litt|circ|coll|ref|réf|étym|suppl|bibl|bibliogr|cit|vol|déc|nov|oct|janv|juil|avr|sept|pp|")
            and \1.__len__() > 1
        -2:3>> ,|.                                                          && Pas de virgule après un point (sauf éventuellement après une abréviation).

TEST: Les chiens, les chats{{.,}} les poules.                               ->> ,|.
TEST: A., dans le meilleur des cas, s’abstenait de tout commentaire


# Fin de paragraphe
#__<i>/typo__  ({w_2}) *$   @@0
#    <<- before("[a-zéàùèê][.] ") and not before("^(?:\\d|\w[.])")
#    -1>> \1.|\1…|\1 !|\1 ?|\1 :|\1 ;|\1,                                               && Il manque une ponctuation finale.

#__[s]/virg(virg_nombre)__
#    [0-9]+[.]([0-9]+)(?![,.])
#        <<-  ->> =\0.replace(".", ",")                     && En français, le séparateur décimal est la virgule, non le point.
#
#TEST: +{{1.5}} dioptrie
#TEST: j’en veux 2.000
#TEST: et moi 3.000.000 de dollars


__virg_après_verbe_COD__
    [le|la|l’|les]  $:Y¬:N  $:M
        <<- /virg/ not value(\2, "|appeler|") and not tag_before(\1, "_que_") and not tag_before(\1, "_comme_")
        -2>> \2,                                                && Si “\-1” marque le début d’une proposition, une virgule est probablement souhaitable.

    [le|la|l’|les]  *WORD  ?[cher|chère]¿  @:M[12]  <end>
        <<- /virg/ morph(\2, ":[123][sp]", ">appeler/|:[NA]") and not tag_before(\1, "_que_") and not tag_before(\1, "_comme_")
        -2>> \2,                                                && Si “\-2” est une personne apostrophée, alors il faut mettre le nom en incise.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?Th=2&t1=&id=3412

TEST: Tu vas les {{donner}} Rachel.
TEST: Il va la {{tuer}} Paul.
TEST: je le {{sais}} chère Paula
TEST: Ma fille, je vais l’appeler Deirdre.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme s’évertuait à le dire Jacques Chirac.
TEST: Avancez comme sait le faire Patrick.
TEST: plus délirant encore que ne l’imaginait Marie.
TEST: moins corrompu que ne pouvait le croire Marie.
TEST: comme vient de le dire Ruth
TEST: L’antimoine des sages, matière première extraite directement de la mine, « n’est pas proprement minéral et moins encore métallique », ainsi que nous l’enseigne Philalèthe.
TEST: L’officier Patrick Martel aurait dégaîné son arme



@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: ocr|ocr                                                                                 _
5229
5230
5231
5232
5233
5234
5235


5236
5237
5238
5239
5240
5241
5242
5243

5244
5245
5246
5247
5248
5249
5250
5251
5252

5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278

5279
5280

5281

5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
























5311
5312
5313
5314
5315
5316
5317







+
+




-


-
+
-








+




















-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-







        -2:3>> \2-\3                                                                                && Forme interrogative ? Mettez un trait d’union.

TEST: ne {{soutiendrez vous}} pas cette proposition ?
TEST: n’en {{voulez vous}} jamais à ces gens ?
TEST: je suis, {{penserez vous}}, un imbécile.
TEST: {{pouvez vous}} réussir ?
TEST: comment {{pensez vous}} y parvenir
TEST: {{Osez vous}} remettre en question notre autorité.
#TEST: Osez vous remettre en question.
TEST: veuillez vous adresser à notre secretaire pour prendre rendez-vous.
TEST: Allez vous faire foutre.
TEST: Venez vous défouler sur ces connards.
TEST: Vous ne pouvez vous satisfaire de si peu.
#TEST: Osez vous remettre en question.



!!!! Virgules (2)                                                                                 !!
!!!! Virgules                                                                                     !!

__virg_dialogue_après_nom_propre__
    [<start>|,|(]  $:M¬:G  [/-je|/-tu|/-on|/-nous|/-vous|/-ils|/-elles|/-iels|/_VCimp_]
        <<- /virg/ -2>> \2,                                                                         && Dialogue ? Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

TEST: {{Maria}} donnez-vous du temps ?
TEST: {{Marion}} passe-moi le sel.
TEST: {{Paul}} prends-lui la main.
TEST: {{Julien}} donne-moi le sel.
TEST: Alexandre tient-il ses généraux ?
TEST: Alexandra vient-elle ?


__virg_dialogue_avant_nom_propre__
    /-les  $:M
        <<- /virg/ morph(\1, ":E", "", 0, -4) -1>> \1,                                              && Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

    [/-le|/-la]  $:M
        <<- /virg/ morph(\1, ":E", "", 0, -3) -1>> \1,                                              && Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

    /-COD-COI  $:M
        <<- /virg/ -1>> \1,                                                                         && Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

TEST: {{Oublie-les}} Clara.
TEST: viens et {{donne-le}} Paul.
TEST: {{donne-le-moi}} Camille.
TEST: {{écoute-la}} Élodie
TEST: donne-moi Alice.
TEST: Tape-toi Patrick.


__virg_après_verbe_COD__
    [le|la|l’|les]  $:Y¬:N  $:M
        <<- /virg/ not value(\2, "|appeler|") and not tag_before(\1, "_que_") and not tag_before(\1, "_comme_")
        -2>> \2,                                                && Si “\-1” marque le début d’une proposition, une virgule est probablement souhaitable.

    [le|la|l’|les]  *WORD  ?[cher|chère]¿  @:M[12]  <end>
        <<- /virg/ morph(\2, ":[123][sp]", ">appeler/|:[NA]") and not tag_before(\1, "_que_") and not tag_before(\1, "_comme_")
        -2>> \2,                                                && Si “\-2” est une personne apostrophée, alors il faut mettre le nom en incise.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?Th=2&t1=&id=3412

TEST: Tu vas les {{donner}} Rachel.
TEST: Il va la {{tuer}} Paul.
TEST: je le {{sais}} chère Paula
TEST: Ma fille, je vais l’appeler Deirdre.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme s’évertuait à le dire Jacques Chirac.
TEST: Avancez comme sait le faire Patrick.
TEST: plus délirant encore que ne l’imaginait Marie.
TEST: moins corrompu que ne pouvait le croire Marie.
TEST: comme vient de le dire Ruth
TEST: L’antimoine des sages, matière première extraite directement de la mine, « n’est pas proprement minéral et moins encore métallique », ainsi que nous l’enseigne Philalèthe.
TEST: L’officier Patrick Martel aurait dégaîné son arme



!!!! Apostrophe manquante (2)                                                                     !!

__typo_apostrophe_manquante_audace__
    <start>  [L|D|S|N|C|J|M|T|Ç]  ~^[aeéiouhAEÉIOUHyîèêôûYÎÈÊÔÛ]
        <<- /mapos/ space_after(\2, 1, 1) -2:.3>> =\2+"’"                                           && Il manque peut-être une apostrophe.