Grammalecte  Diff

Differences From Artifact [00e5bc27ed]:

To Artifact [5148be3923]:


1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977

1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991









1992
1993
1994
1995
1996
1997
1998
1966
1967
1968
1969
1970
1971
1972





1973





1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998







-
-
-
-
-
+
-
-
-
-
-









+
+
+
+
+
+
+
+
+







!!
!!
!!
!!

[++]

### Traits d’union douteux
__[i]/tu(tu_trait_union_douteux)__
    ({w1})(?:--|—|–)({w1})  @@0,$
    <<- spell(\1+"-"+\2) and analyse(\1+"-"+\2, ":", False) ->> \1-\2                               # Trait d’union : un tiret simple suffit.

#FASTER THAN TOKEN RULE
TEST: Nous préparons une {{contre–attaque}}.


!!!! Doublons (casse identique)                                                                   !!

__[s](doublon)__
    ({w1}) {1,3}\1  @@0
    <<- not re.search("(?i)^([nv]ous|faire|en|la|lui|donnant|œuvre|h[éoa]|hou|olé|joli|Bora|couvent|dément|sapiens|très|vroum|[0-9]+)$", \1)
        and not (re.search("^(?:est|une?)$", \1) and before("[’']$"))
        and not (\1 == "mieux" and before("(?i)qui +$"))
    ->> \1   # Doublon.

TEST: Il y a un {{doublon doublon}}.



### Traits d’union douteux
__[i]/tu(tu_trait_union_douteux)__
    ({w1})(?:--|—|–)({w1})  @@0,$
    <<- spell(\1+"-"+\2) and analyse(\1+"-"+\2, ":", False) ->> \1-\2                               # Trait d’union : un tiret simple suffit.

TEST: Nous préparons une {{contre–attaque}}.


!!!! Nombres: typographie                                                                         !!

#(\d\d\d\d)-(\d\d\d\d)   <<- ->> \1–\2                              # Ne pas séparer deux dates par un trait d’union, mais par un tiret demi-cadratin.

__[s]/num(num_lettre_O_zéro1)__  [\dO]+[O][\dO]+ <<- not option("ocr") ->> =\0.replace("O", "0")    # S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ».
__[s]/num(num_lettre_O_zéro2)__  [1-9]O <<- not option("ocr") ->> =\0.replace("O", "0")             # S’il s’agit d’un nombre, utilisez le chiffre « 0 » plutôt que la lettre « O ».
2137
2138
2139
2140
2141
2142
2143

















2144
2145
2146
2147
2148
2149
2150
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167







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







@@@@
@@@@
@@@@GRAPH: graphe1                                                                                 _
@@@@
@@@@
@@@@
@@@@


!!!! Doublons (casse identique)                                                                   !!


# SLOWER THAN REGEX RULE
#__doublon__
#    *WORD  *WORD
#    <<- \1 == \2
#        and not value(\2, "|nous|vous|faire|en|la|lui|donnant|œuvre|ah|oh|eh|hé|ho|ha|hou|olé|joli|Bora|couvent|dément|sapiens|très|vroum|")
#        and not (value(\1, "|est|une|") and value(<1, "|l’|d’|"))
#        and not (\2 == "mieux" and value(<1, "|qui|"))
#    ->> \1                                                                                          # Doublon.
#
#TEST: Il y a un {{doublon doublon}}.




!!!! Nombres ordinaux                                                                             !!

__typo_ordinaux_chiffres__
    1 ier
    1ier
8218
8219
8220
8221
8222
8223
8224
8225

8226
8227


8228



8229












8230

8231
8232
8233




8234
8235


8236
8237
8238
8239
8240
8241
8242
8243
8244













8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8235
8236
8237
8238
8239
8240
8241

8242


8243
8244

8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262



8263
8264
8265
8266


8267
8268









8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281


8282
8283
8284
8285
8286
8287
8288
8289







-
+
-
-
+
+
-
+
+
+

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

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









    on ne peut [plus|moins]
    on ne peut pas [plus|moins]
    plus que
        <<- morph(<1, ":(?:V0e|N)") and morph(>1, ":[AQ]") ~>> *



__purge_après_avoir__
@@@@
@@@@END_GRAPH                                                                                      _
    >avoir  [pas|jamais|plus|guère|point]
    >avoir  ?[pas|jamais|plus|guère|point]¿  en partie
@@@@
    >avoir  ?[pas|jamais|plus|guère|point]¿  tous [deux|trois]
    >avoir  ?[pas|jamais|plus|guère|point]¿  somme toute
        <<- ~2:0>> *

    >avoir  ?[pas|jamais|plus|guère|point]¿  beaucoup
    >avoir  ?[pas|jamais|plus|guère|point]¿  bien entendu
    >avoir  ?[pas|jamais|plus|guère|point]¿  dans [leur|l’|son] ensemble
    >avoir  ?[pas|jamais|plus|guère|point]¿  à cet [instant|endroit] ?précis¿
    >avoir  ?[pas|jamais|plus|guère|point]¿  à ce moment ?précis¿
    >avoir  ?[pas|jamais|plus|guère|point]¿  sans peine
    >avoir  ?[pas|jamais|plus|guère|point]¿  un [moment|instant]
    >avoir  ?[pas|jamais|plus|guère|point]¿  un minimum
    >avoir  ?[pas|jamais|plus|guère|point]¿  un peu
    >avoir  ?[pas|jamais|plus|guère|point]¿  un petit peu
    >avoir  ?[pas|jamais|plus|guère|point]¿  un tout petit peu
        <<- morph(>1, ":[QY]") ~2:0>> *

    >avoir  ?[pas|jamais|plus|guère|point]¿  [besoin|confiance|conscience|crainte|faim|honte|peur|soif]
# après avoir
__[i](p_avoir_être_loc_adv1)__
    ({avoir}) +(pas|jamais|plus|en partie|point|tous (?:deux|trois)|somme toute)  @@0,$
    >avoir  ?[pas|jamais|plus|guère|point]¿  bon dos
    >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
    <<- morph(\1, ":V0", False) ~2>> *
__[i](p_avoirtre_loc_adv2)__
    >avoir  ?[pas|jamais|plus|guère|point]¿  partie [gagnée|liée]
    >avoir  ?[pas|jamais|plus|guère|point]¿  voix au chapitre
    ({avoir}) +(beaucoup|bien entendu|dans (?:leur |son |l’)ensemble|à ce(?:t (?:instant|endroit)| moment)|sans peine|un (?:moment|peu|minimum|petit peu|tout petit peu)) +({w_2})  @@0,w,$
    <<- morph(\1, ":V0", False) and morph(\3, ":[QY]", False) ~2>> *
__[i](p_avoir_loc_adv)__
    ({avoir}) +(besoin|bon (?:dos|pied,? bon œil)|carte blanche|confiance|conscience|crainte|faim|forme humaine|honte|partie (?:gagnée|liée)|peur|soif|voix au chapitre)  @@0,$
    <<- morph(\1, ":V0a", False) and not (\2 == "crainte" and before(r"\w")) ~2>> *
__[i](p_avoir_pronom_loc_adv)__
    ({avoir})-(?:je|tu|ils?|elles?|nous|vous|on) +(besoin|bon (?:dos|pied,? bon œil)|carte blanche|confiance|conscience|crainte|faim|forme humaine|honte|partie (?:gagnée|liée)|peur|soif|voix au chapitre)  @@0,$
    <<- morph(\1, ":V0a", False) ~2>> *
__[i](p_avoir_tous_toutes_les)__
        <<- ~2:0>> *

    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  [besoin|confiance|conscience|crainte|faim|honte|peur|soif]
    >avoir  ?[pas|jamais|plus|guère|point]¿  [tous|toutes] les @:B  @:(?:Q|V1.*:Y)
        <<- ~2:4>> *




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

    ({avoir}) +(tou(?:te|)s les ({w_2})) +({w_2})  @@0,w,>3:$,$
    <<- morph(\1, ":V0a", False) and morph(\3, ":B", False) and morph(\4, ">besoin/|:(?:Q|V1.*:Y)", False) ~2>> *


# après verbe
__[i](p_verbe_loc_adv1)__       ({w1}) (?:pas |)(jour et nuit|quand même(?: pas|)) @@0,$ <<- morph(\1, ":V", False) ~2>> *
__[i](p_verbe_loc_adv2)__       ({w_2}) (bien entendu|juste|ensemble) @@0,$ <<- morph(\1, ":V[123]") ~2>> *
__[i](p_verbe_loc_adv3)__       ({w_2}) ((?:fort|très|super) (?:bien|mal)|bien|mal) @@0,$ <<- morph(\1, ":V[123]", False) ~2>> *
__[i](p_verbe_pronom_aussi)__   ({w_1}) ((?:[mt]oi|[nv]ous|elles?|lui|eux) aussi) @@0,$ <<- morph(\1, ":V", False) ~2>> *
__[i](p_tout_aussi)__           (?:tout |)aussi <<- ~>> *