Grammalecte  Check-in [7c8fbbb9ed]

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: 7c8fbbb9ed3551d1d77302454f582880a25a224e858aec794c1f7a8945630e13
User & Date: olr on 2018-07-29 22:38:35
Other Links: branch diff | manifest | tags
Context
2018-07-31
05:25
[fr] conversion: regex rules -> graph rules check-in: 655aa0f725 user: olr tags: fr, rg
2018-07-29
22:38
[fr] conversion: regex rules -> graph rules check-in: 7c8fbbb9ed user: olr tags: fr, rg
18:17
[fr] conversion: regex rules -> graph rules check-in: 085668b0ea user: olr tags: fr, rg
Changes

Modified gc_lang/fr/rules.grx from [ce3e4e0861] to [d197c9df68].

4324
4325
4326
4327
4328
4329
4330









4331
4332
4333
4334
4335
4336
4337
.....
10338
10339
10340
10341
10342
10343
10344

















































































































10345
10346
10347
10348
10349
10350
10351
.....
10364
10365
10366
10367
10368
10369
10370
10371


10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
.....
12216
12217
12218
12219
12220
12221
12222

12223
12224
12225
12226
12227
12228
12229
    [à|a] [part|par|pare|pares] >égale
    [à|a] [part|parts|par|pare|pares] [égal|égals|égale]
        <<- /conf/ ->> à parts égales                                       # Locution “à parts égales” (toujours au pluriel).

TEST: {{à part égale}}
TEST: un partage à parts égales











__conf_à_a_locutions__
    a [califourchon|contrecœur|contre-cœur|contretemps|contre-temps|demi-mot|nouveau|présent|rebrousse-poil|regret|travers|tout-va|confesse|midi|minuit|rallonge|reculons|risque|tâtons|vélo]
    a côté [de|d’]
    a l’ heure actuelle
    a l’ heure [qu’|qu] il est
    a l’ [accoutumée|amiable|avance|avenir|avenant|aveuglette|emporte-pièce|évidence|improviste|inverse]
................................................................................
        <<- /sgpl/ ->> au pied levé                                 # Locution adverbiale invariable.

TEST: ils ont tout simplement perdu {{pieds}}
TEST: ils y sont allés à {{pieds}}.
TEST: Elles ont accompli l’impossible, et de surcroît {{aux pieds levés}}























































































































# coûter cher
__conf_coûter_cher__
    [>coûter|>payer] chers
................................................................................

    [>avoir|>donner]  [>lieue|lieus]
        <<- /conf/ -2>> lieu                                        # Confusion. La lieue est une unité de distance. Les lieus sont des poissons.

TEST: ces conneries donneront {{lieux}} à une enquête approfondie.
TEST: Tout ce qui a {{lieue}} hors de ce pays est ignoré.




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



# plein
__[i]/sgpl(sgpl_plein_de)__
    (pleins) de?  @@0
    <<- morphex(word(-1), ":(?:V|[NAQ].*:s)", ":(?:[NA]:.:[pi]|V0e.*:[123]p)", True)
    -1>> plein                                                                      # Au singulier.

TEST: Je connais {{pleins}} de gens
TEST: Les avocats sont pleins de nutriments.


# pleines dents
__[i]/sgpl(sgpl_à_pleines_dents)__
    [àa] pl[ea]ine(?: dents?|s? dent)
    <<- ->> à pleines dents                       # Toujours au pluriel.

TEST: Elle mord la vie {{à plaine dent}}.


# possible
__[i]/sgpl(sgpl_autant_que_possible)__
    autant (?:d(?:e |’){w_2} |)que (possibles) @@$
    <<- -1>> possible                # Invariable. Implicitement, autant que ce qui est possible.

TEST: nous ferons des tests autant que {{possibles}}.
TEST: nous ferons autant de tests que {{possibles}}, c’est une nécessité.


# quelque
__[i]/sgpl(sgpl_quelque_temps)__
    (quelques) temps @@0
    <<- -1>> quelque                                           # Quelque temps : un temps indéterminé, pas de “s”.|https://fr.wiktionary.org/wiki/quelque_temps
__[i]/sgpl(sgpl_en_quelque_sorte)__
    en (quelques sortes) @@$
    <<- -1>> quelque sorte                                 # En quelque sorte : locution invariable.|https://fr.wiktionary.org/wiki/en_quelque_sorte

TEST: Il y a {{quelques}} temps que nous nous connaissons.
TEST: Je suis en vacances, en {{quelques sortes}}.


# rafales
__[i]/sgpl(sgpl_par_en_rafales)__
    (?:par|en) (rafale) @@$
    <<- -1>> rafales                                        # En général, il y a plusieurs rafales. Par rafales, en rafales.

TEST: Je lance des tests en {{rafale}}.


# par souci de
__[i]/sgpl(sgpl_par_souci_de)__
    par (soucis) (?:de|d) @@4
    <<- -1>> souci                                        # Invariable dans cette locution.

TEST: par {{soucis}} d’équité, chacun aura droit à une part.

# termes
__[i]/sgpl(sgpl_en_termes_de)__
    en (terme) (?:de|d) @@3
    <<- -1>> termes                                         # Dans la locution “en termes de”, mettez “terme” au pluriel.

TEST: en {{terme}} de communication, c’est une véritable catastrophe


# tous / tout / toutes
__[i]/sgpl(sgpl_tous_azimuts)__
    tout azimuts? <<- ->> tous azimuts                                              # « Tous azimuts » signifie « dans toutes les directions ».
__[i]/sgpl(sgpl_une_bonne_fois_pour_toutes)__
    une (?:bonne |)fois pour (toute) @@$
    <<- -1>> toutes                            # Il manque un “s”. Sous-entendu : une fois pour toutes les autres fois.

TEST: ils lancent des attaques {{tout azimut}}.
TEST: une bonne fois pour {{toute}}


# vacances
__[i]/sgpl(sgpl_bonnes_vacances)__
    bonne vacance
    <<- not morph(word(-1), ":D.*:f:s", False, False) ->> bonnes vacances             # Au pluriel.
__[i]/sgpl(sgpl_en_vacances)__
    ({w1}) +en (vacance)  @@0,$
    <<- morph(\1, ">(?:aller|partir)/", False) -2>> vacances                                        # Si vous parlez des congés, « vacance » doit être au pluriel.

TEST: Je pars en {{vacance}}.
TEST: {{Bonne vacance}} !
TEST: Il nous reste un poste en vacance.
TEST: Cette place est en vacance.


# vites
__[i]/sgpl(sgpl_vite)__
    vites
    <<- not morph(word(-1), ":V0e.*:3p", False, False) or morph(word(1), ":Q", False, False)
    ->> vite                                                                                        # Adverbe “vite” invariable. (La forme adjective est désuète.)

TEST: ils mangent {{vites}}.
TEST: elles sont {{vites}} parties.
TEST: elles sont vites.


# vu / vue
__[i]/sgpl(sgpl_point_de_vue)__
    points? de (vu(?:s|es|)) @@$
    <<- -1>> vue                                                       # Dans un “point de vue”, “vue” est toujours au féminin singulier.

TEST: c’est son point de {{vu}} qui prime.
TEST: Son point de {{vus}} prévaudra toujours, faites-vous à cette idée ou dégagez.
TEST: de mon point de {{vues}}



!!
!!
!!!! Confusions                                                                                   !!
!!
!!
................................................................................
    <<- morphex(\1, ":N.*:[si]", ":G") and morphex(\2, ":Y", ">aller/|:M") and isNextVerb()
    -2>> =suggVerbPpas(\2, ":s")                                                    # Confusion probable : “\2” est à verbe à l’infinitif. Pour l’adjectif, écrivez :

TEST: ce tableau {{voler}} coûte très cher.
TEST: la difficulté {{passer}} t’aidera par la suite
TEST: leur compte {{épurer}} servira encore.
TEST: Le vieux cocher avait mission



__[i]/infi(infi_adjectifs_pluriels)__
    ^ *(?:[lmtsc]es|[nv]os|leurs|quel(?:le|)s) ({w_1}[sxz]) +({w_2}er)  @@w,$
    <<- morphex(\1, ":N.*:[pi]", ":G") and morphex(\2, ":Y", ">aller/|:M") and isNextVerb()
    -2>> =suggVerbPpas(\2, ":p")                                                    # Confusion probable : “\2” est à verbe à l’infinitif. Pour l’adjectif, écrivez :








>
>
>
>
>
>
>
>
>







 







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







 








>
>





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







 







>







4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
.....
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
.....
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500












































































































10501
10502
10503
10504
10505
10506
10507
.....
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
    [à|a] [part|par|pare|pares] >égale
    [à|a] [part|parts|par|pare|pares] [égal|égals|égale]
        <<- /conf/ ->> à parts égales                                       # Locution “à parts égales” (toujours au pluriel).

TEST: {{à part égale}}
TEST: un partage à parts égales


__conf_à_pleines_dents__
    a   [>plaine|>pleine] [>dent|>dan]
    à   [>plaine|pleine] [>dent|>dan]
    à   [>plaine|>pleine] [dent|>dan]
        <<- /conf/ ->> à pleines dents                              # Locution “à pleines dents” (toujours au pluriel).

TEST: Elle mord la vie {{à plaine dent}}.


__conf_à_a_locutions__
    a [califourchon|contrecœur|contre-cœur|contretemps|contre-temps|demi-mot|nouveau|présent|rebrousse-poil|regret|travers|tout-va|confesse|midi|minuit|rallonge|reculons|risque|tâtons|vélo]
    a côté [de|d’]
    a l’ heure actuelle
    a l’ heure [qu’|qu] il est
    a l’ [accoutumée|amiable|avance|avenir|avenant|aveuglette|emporte-pièce|évidence|improviste|inverse]
................................................................................
        <<- /sgpl/ ->> au pied levé                                 # Locution adverbiale invariable.

TEST: ils ont tout simplement perdu {{pieds}}
TEST: ils y sont allés à {{pieds}}.
TEST: Elles ont accompli l’impossible, et de surcroît {{aux pieds levés}}


# plein
__sgpl_plein_de__
    pleins [de|d’]
        <<- /sgpl/ morph(<1, ":(?:V|[NAQ].*:s)", ":(?:[NA].*:[pi]|V0e.*:[123]p)")
        -1>> plein                                                  # S’il s’agit d’une préposition et non d’un adjectif, “plein” doit être au singulier.

TEST: Je connais {{pleins}} de gens
TEST: Les avocats sont pleins de nutriments.


# possible
__sgpl_autant_que_possible__
    autant  que  possibles
        <<- /sgpl/ -3>> possible                                    # Invariable. Implicitement, autant que ce qui est possible.

    autant  [de|d’]  *WORD  que  possibles
        <<- /sgpl/ -5>> possible                                    # Invariable. Implicitement, autant \2 \3 que ce qui est possible.

    autant  [de|d’]  *WORD  *WORD  que  possibles
        <<- /sgpl/ -6>> possible                                    # Invariable. Implicitement, autant \2 \3 \4 que ce qui est possible.

TEST: nous ferons des tests autant que {{possibles}}.
TEST: nous ferons autant de tests que {{possibles}}, c’est une nécessité.
TEST: rabaissons autant de connards prétentieux que {{possibles}}…


# quelque
__sgpl_quelque_temps__
    quelques temps
        <<- /sgpl/ ->> quelque temps                                # Quelque temps : un temps indéterminé. Ici, “quelque” est un adverbe (donc invariable).|https://fr.wiktionary.org/wiki/quelque_temps

__sgpl_en_quelque_sorte__
    en quelques sortes
        <<- /sgpl/ ->> en quelque sorte                             # En quelque sorte : locution invariable.|https://fr.wiktionary.org/wiki/en_quelque_sorte

TEST: Il y a {{quelques temps}} que nous nous connaissons.
TEST: Je suis en vacances, {{en quelques sortes}}.


# rafales
__sgpl_par_en_rafales__
    [par|en]  rafale
        <<- /sgpl/ -2>> rafales                                     # Il y a plusieurs rafales. Mettez au pluriel.

TEST: Je lance des tests en {{rafale}}.


# par souci de
__sgpl_par_souci_de__
    par soucis [de|d’]
        <<- /sgpl/ -2>> souci                                       # Locution “par souci de”. Mettez “souci” au singulier.

TEST: par {{soucis}} d’équité, chacun aura droit à une part.


# termes
__sgpl_en_termes_de__
    en terme [de|d’]
        <<- /sgpl/ -2>> termes                                      # Dans la locution “en termes de”, mettez “terme” au pluriel.

TEST: en {{terme}} de communication, c’est une véritable catastrophe


# tous / tout / toutes
__sgpl_tous_azimuts__
    tout [azimut|azimuts]
        <<- /sgpl/ ->> tous azimuts                                 # « Tous azimuts » signifie « dans toutes les directions ».

__sgpl_une_bonne_fois_pour_toutes__
    une fois pour (toute)
    une bonne fois pour (toute)
        <<- /sgpl/ -1>> toutes                                      # Mettez “toute” au pluriel. Sous-entendu : une fois pour toutes les autres fois.

TEST: ils lancent des attaques {{tout azimut}}.
TEST: une bonne fois pour {{toute}}


# vacances
__sgpl_bonnes_vacances__
    bonne vacance
        <<- /sgpl/ not morph(<1, ":D.*:f:s") ->> bonnes vacances    # Les vacances. Au pluriel.

__sgpl_en_vacances__
    [>aller|>partir]  en  vacance
        <<- /sgpl/ -3>> vacances                                    # Si vous parlez des congés, “vacance” doit être au pluriel.

TEST: Je pars en {{vacance}}.
TEST: {{Bonne vacance}} !
TEST: Il nous reste un poste en vacance.
TEST: Cette place est en vacance.


# vites
__sgpl_vite__
    vites
        <<- /sgpl/ not morph(<1, ":V0e.*:3p", False, False) or morph(>1, ":[AQ]")
        ->> vite                                                    # Adverbe “vite” invariable. (La forme adjective est désuète.)

TEST: ils mangent {{vites}}.
TEST: elles sont {{vites}} parties.
TEST: elles sont vites.


# vu / vue
__sgpl_point_de_vue__
    >point de [vu|vus|vues]
        <<- /sgpl/ -3>> vue                                         # Dans un “point de vue”, “vue” est toujours au féminin singulier.

TEST: c’est son point de {{vu}} qui prime.
TEST: Son point de {{vus}} prévaudra toujours, faites-vous à cette idée ou dégagez.
TEST: de mon point de {{vues}}






# coûter cher
__conf_coûter_cher__
    [>coûter|>payer] chers
................................................................................

    [>avoir|>donner]  [>lieue|lieus]
        <<- /conf/ -2>> lieu                                        # Confusion. La lieue est une unité de distance. Les lieus sont des poissons.

TEST: ces conneries donneront {{lieux}} à une enquête approfondie.
TEST: Tout ce qui a {{lieue}} hors de ce pays est ignoré.




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
















































































































!!
!!
!!!! Confusions                                                                                   !!
!!
!!
................................................................................
    <<- morphex(\1, ":N.*:[si]", ":G") and morphex(\2, ":Y", ">aller/|:M") and isNextVerb()
    -2>> =suggVerbPpas(\2, ":s")                                                    # Confusion probable : “\2” est à verbe à l’infinitif. Pour l’adjectif, écrivez :

TEST: ce tableau {{voler}} coûte très cher.
TEST: la difficulté {{passer}} t’aidera par la suite
TEST: leur compte {{épurer}} servira encore.
TEST: Le vieux cocher avait mission
TEST: le verbe aller est irrégulier.


__[i]/infi(infi_adjectifs_pluriels)__
    ^ *(?:[lmtsc]es|[nv]os|leurs|quel(?:le|)s) ({w_1}[sxz]) +({w_2}er)  @@w,$
    <<- morphex(\1, ":N.*:[pi]", ":G") and morphex(\2, ":Y", ">aller/|:M") and isNextVerb()
    -2>> =suggVerbPpas(\2, ":p")                                                    # Confusion probable : “\2” est à verbe à l’infinitif. Pour l’adjectif, écrivez :