Grammalecte  Check-in [ac99c335d9]

Overview
Comment:[fr] conversion: regex rules -> graph rules
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fr | rg
Files: files | file ages | folders
SHA3-256: ac99c335d911f0af14424750ee0009f911278acb24b4fa13e2d10f0a6c54ad7d
User & Date: olr on 2018-07-16 13:56:36
Other Links: branch diff | manifest | tags
Context
2018-07-16
15:19
[fr] faux positifs avec <nous sommes> check-in: 91754eb5e3 user: olr tags: fr, rg
13:56
[fr] conversion: regex rules -> graph rules check-in: ac99c335d9 user: olr tags: fr, rg
13:37
[build] changeReferenceToken before prepareFunction check-in: 7d80af29a6 user: olr tags: build, rg
Changes

Modified gc_lang/fr/rules.grx from [956ac9f74f] to [802444d27b].

1966
1967
1968
1969
1970
1971
1972






1973
1974
1975
1976
1977
1978
1979
....
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
....
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233







































2234
2235
2236
2237
2238
2239
2240
....
2551
2552
2553
2554
2555
2556
2557

























2558
2559
2560
2561
2562
2563
2564
!!
!!
!!
!!

[++]









!!!! 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)
................................................................................
__[i](d_typo_écriture_épicène_pluriel)__
    ({w_1}[éuitsrn])_(?:[nt]|)e_s  @@0
    <<- morphex(\1, ":[NAQ]", ":G") =>> define(\1, [":N:A:Q:e:p"])

__[i](d_typo_écriture_épicène_singulier)__
    ({w_2}[éuitsrn])_e  @@0
    <<- morph(\1, ":[NAQ]", False) =>> define(\1, [":N:A:Q:e:s"])


!!!! Dates                                                                                        !!

__[i]/date(date_jour_mois_année)__
    (\d\d?) (janvier|février|ma(?:rs|i)|a(?:vril|o[ûu]t)|jui(?:n|llet)|septembre|octobre|novembre|décembre) (\d\d\d+)  @@0,w,$
    <<- not checkDateWithString(\1, \2, \3) ->> _                                                   # Cette date est invalide.

TEST: {{29 février 2011}}


__[i]/date(date_journée_jour_mois_année1)__
    (lundi|m(?:ardi|ercredi)|jeudi|vendredi|samedi|dimanche),? (?:le |)(\d\d?)-(\d\d?)-(\d\d+)  @@0,w,w,$
    <<- not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(\1, \2, \3, \4)
    -1>> =getDay(\2, \3, \4)                                                                        # Le jour de la date suivante est incorrect.

TEST: {{mercredi}}, le 10-06-2014                                         ->> mardi


__[i]/date(date_journée_jour_mois_année2)__
    (lundi|m(?:ardi|ercredi)|jeudi|vendredi|samedi|dimanche),? (?:le |)(\d\d?) (janvier|février|ma(?:rs|i)|a(?:vril|o[ûu]t)|jui(?:n|llet)|septembre|octobre|novembre|décembre) (\d\d+)  @@0,w,w,$
    <<- not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDayWithString(\1, \2, \3, \4)
    -1>> =getDayWithString(\2, \3, \4)                                                              # Le jour de la date suivante est incorrect.

TEST: {{mercredi}}, le 10 juin 2014                                       ->> mardi
TEST: {{lundi}}, 18 août 1912                                             ->> dimanche
TEST: lundi, 18 août 1912 avant Jésus-Christ (date imaginaire)


__[i]/date(date_mois_31)__ 31 (avril|juin|septembre|novembre)  @@3
    <<- ->> 30 \1                                                                                   # Cette date est invalide. Il n’y a que 30 jours en \1.

TEST: le {{31 avril}}


__[i]/date(date_février)__ 3[01] février
    <<- ->> 28 février|29 février                                                                   # Cette date est invalide. Il n’y a que 28 ou 29 jours en février.

TEST: le {{30 février}}



!!!
!!!
!!! Processeur: épuration des signes inutiles et quelques simplifications                         !!
!!!
!!!
................................................................................
TEST: Assis, gronde{{-t -}}elle                         ->> -t-
TEST: vient-il demain ?
TEST: prend-elle l’avantage ?
TEST: saura-t-on jamais la vérité ?
TEST: arrive-t-elle ce matin ?
TEST: y aura-t-il du poulet au dîner ?


__[i]/tu(tu_va_t_en)__              va[ -]t[ -]en(?! guerre) <<- ->> va-t’en                        # Une apostrophe est nécessaire (s’en aller).
__[i]/tu(tu_va_t_en_guerre)__       va[ -]t[’' -]en guerres? <<- ->> va-t-en-guerre                 # Va-t-en-guerre (invariable) : des traits d’union sont nécessaires.

TEST: {{Va-t-en}}, c’en est assez.
TEST: Un {{va-t’en guerre}}, on ne peut pas lui faire confiance.
TEST: Les {{va-t-en guerre}} sont de sortie.


### 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}}.




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









































### ce / cet / cette / ces + nom + là
__tu_ce_cette_ces_nom_là__
    [ce|cet|cette|ces] *WORD là
        <<- /tu/ morph(\2, ":[NB]") and not value(>1, "|où|") -2:3>> \2-là      # Il manque probablement un trait d’union.

    [ce|cet|cette|ces] *WORD la [<end>|,]
................................................................................
TEST: les {{beaux arts}}
TEST: je déteste le {{basket ball}}
TEST: {{Lui même}}                                    ->> Lui-même
TEST: {{eux mêmes}}.                                  ->> eux-mêmes
TEST: un {{va et vient}} incessant me casse la tête
TEST: Un autre chantier important, celui si sensible de la préservation des données personnelles des élèves



























# est-ce … ?
__tu_est_ce__
    est ce  @:¬:N.*:[me]:[si]|>qui/
    <<- morph(<1, ":Cs|<start>") and space_after(\1, 1, 1) -1:2>> est-ce                            # S’il s’agit d’une interrogation, il manque un trait d’union.

TEST: {{est ce}} que c’est grave ?                                              ->> est-ce







>
>
>
>
>
>







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<













>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
....
2047
2048
2049
2050
2051
2052
2053








































2054
2055
2056
2057
2058
2059
2060
....
2164
2165
2166
2167
2168
2169
2170
















2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
....
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
!!
!!
!!
!!

[++]

### 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}}.


!!!! 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)
................................................................................
__[i](d_typo_écriture_épicène_pluriel)__
    ({w_1}[éuitsrn])_(?:[nt]|)e_s  @@0
    <<- morphex(\1, ":[NAQ]", ":G") =>> define(\1, [":N:A:Q:e:p"])

__[i](d_typo_écriture_épicène_singulier)__
    ({w_2}[éuitsrn])_e  @@0
    <<- morph(\1, ":[NAQ]", False) =>> define(\1, [":N:A:Q:e:s"])










































!!!
!!!
!!! Processeur: épuration des signes inutiles et quelques simplifications                         !!
!!!
!!!
................................................................................
TEST: Assis, gronde{{-t -}}elle                         ->> -t-
TEST: vient-il demain ?
TEST: prend-elle l’avantage ?
TEST: saura-t-on jamais la vérité ?
TEST: arrive-t-elle ce matin ?
TEST: y aura-t-il du poulet au dîner ?




















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


!!!! Dates                                                                                        !!

__date_jour_mois_année__
    31 [avril|juin|septembre|novembre]
        <<- /date/ space_after(\1, 1, 1) ->> 30 \2                                                  # Cette date est invalide. Il n’y a que 30 jours en \2.

    [30|31] février
        <<- /date/ space_after(\1, 1, 1) ->> 28 février|29 février                                  # Cette date est invalide. Il n’y a que 28 ou 29 jours en février.

    ~^\d\d?  [janvier|février|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre]  ~\d{2,5}$
        <<- /date/ not checkDateWithString(\1, \2, \3) ->> _                                        # Cette date est invalide.

TEST: le {{31 avril}}
TEST: le {{30 février}}
TEST: {{29 février 2011}}


__date_journée_jour_mois_année__
    ([lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche])  ?,¿  ?le¿  (~^\d\d?-\d\d?-\d{2,5}$)
        <<- /date/ not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(\1, \2)
        -1>> =getDay(\2)                                                                            # Le jour de la date suivante est incorrect.

    ([lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche])  ?,¿  ?le¿  (~^\d\d?$)  ([janvier|février|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre])  (~\d{2,5}$)
        <<- /date/ not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDayWithString(\1, \2, \3, \4)
        -1>> =getDayWithString(\2, \3, \4)                                                          # Le jour de la date suivante est incorrect.

TEST: {{mercredi}}, le 10-06-2014                                         ->> mardi
TEST: {{mercredi}}, le 10 juin 2014                                       ->> mardi
TEST: {{lundi}}, 18 août 1912                                             ->> dimanche
TEST: {{jeudi}} 17 aout 1912                                              ->> samedi
TEST: lundi, 18 août 1912 avant Jésus-Christ (date imaginaire)


!!
!!
!!!! Traits d’union                                                                               !!
!!
!!

### ce / cet / cette / ces + nom + là
__tu_ce_cette_ces_nom_là__
    [ce|cet|cette|ces] *WORD là
        <<- /tu/ morph(\2, ":[NB]") and not value(>1, "|où|") -2:3>> \2-là      # Il manque probablement un trait d’union.

    [ce|cet|cette|ces] *WORD la [<end>|,]
................................................................................
TEST: les {{beaux arts}}
TEST: je déteste le {{basket ball}}
TEST: {{Lui même}}                                    ->> Lui-même
TEST: {{eux mêmes}}.                                  ->> eux-mêmes
TEST: un {{va et vient}} incessant me casse la tête
TEST: Un autre chantier important, celui si sensible de la préservation des données personnelles des élèves


__tu_va_t_en__
    va t en
    va t en
    va t-en
    va-t en
    va-t-en
    vat-en
        <<- /tu/ not value(>1, "|guerre|guerres|") ->> va-t’en                                      # Une apostrophe est nécessaire (s’en aller).

    va t en >guerre
    va-t’en >guerre
    va t’en >guerre
    va-t en >guerre
    va t-en >guerre
    vat’en >guerre
    vat-en >guerre
    va-t-en >guerre
        <<- /tu/ ->> va-t-en-guerre                                                                 # Va-t-en-guerre (invariable) : des traits d’union sont nécessaires.

TEST: {{Va-t-en}}, c’en est assez.
TEST: Un {{va-t’en guerre}}, on ne peut pas lui faire confiance.
TEST: Les {{va-t-en guerre}} sont de sortie.
TEST: Elle va t’en donner, des devoirs.


# est-ce … ?
__tu_est_ce__
    est ce  @:¬:N.*:[me]:[si]|>qui/
    <<- morph(<1, ":Cs|<start>") and space_after(\1, 1, 1) -1:2>> est-ce                            # S’il s’agit d’une interrogation, il manque un trait d’union.

TEST: {{est ce}} que c’est grave ?                                              ->> est-ce