Grammalecte  Check-in [b75a76dc10]

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: b75a76dc10c379a10bf75f3f7d2def2c74ede6f00f4620d3b4b838aeb86c59cb
User & Date: olr on 2018-07-11 17:00:16
Other Links: branch diff | manifest | tags
Context
2018-07-11
17:09
[fr] correction de quelques tests check-in: 5b6de299a1 user: olr tags: fr, rg
17:00
[fr] conversion: regex rules -> graph rules check-in: b75a76dc10 user: olr tags: fr, rg
09:49
[build][core] function to calculate spaces between tokens (update) check-in: 268f752bd3 user: olr tags: core, build, rg
Changes

Modified gc_lang/fr/rules.grx from [fc561263e1] to [7b5cd093cc].

2535
2536
2537
2538
2539
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
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633



2634
































































































































2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
TEST: ils mangent {{cents}} têtes             ->> cent
TEST: deux {{tête}}                           ->> têtes
TEST: {{soixante quatorze}}, c’est trop
TEST: Mais {{vingt trois}}, c’est assez
TEST: La poïesis, en grec, est ce qui permet de faire passer n’importe quoi du non-être à l’être


### Pas de trait d’union
__[i]/tu(tu_deux_tiers)__           deux-tiers <<- ->> deux tiers                                               # Pas de trait d’union.
__[i]/tu(tu_en_bas_haut)__          en-(bas|haut|de(?:ssous|hors|çà)) @@$ <<- ->> en \1                         # Pas de trait d’union.
__[i]/tu(tu_peu_à_peu)__            peu-[aà]-peu <<- ->> peu à peu                                              # Pas de trait d’union.
__[i]/tu(tu_s_il_te_plaît)__        s’il-(?:[tm]e|[vn]ous)-pla[îi]t <<- ->> =\0.replace("-", " ")               # Pas de traits d’union.
__[i]/tu(tu_tout_à_fait)__          tout-à-fait <<- ->> tout à fait                                             # Pas de trait d’union.
__[i]/tu(tu_trois_quarts)__         trois-quarts? <<- not morph(word(-1), ":D", False, False) ->> trois quarts  # Pas de trait d’union.
__[i]/tu(tu_parce_que)__            parce-que? <<- ->> =\0.replace("-", " ")                                    # Pas de trait d’union.
__<i]/tu(tu_qqch_ça_aussi_donc)__   \b-(?:ç[aà]|aussi|donc) <<- ->> =\0.replace("-", " ")                       # Pas de trait d’union.
__[i]/tu(tu_d_entre_pronom)__       d’entre-(?:nous|vous|eux|elles) <<- ->> =\0.replace("-", " ")               # Pas de trait d’union.

TEST: J’en ai déjà fait les {{deux-tiers}}.
TEST: {{en-haut}} de la montagne.
TEST: On va finir par s’y faire, {{peu-à-peu}}.
TEST: Venez vite, {{s’il-vous-plait}}.
TEST: Elles sont {{tout-à-fait}} ravies.
TEST: {{Trois-quarts}} des participantes y sont parvenues.
TEST: {{Parce-qu}}’ils y croient plus que tout.
TEST: Oui, ça{{-aussi}}.
TEST: Peu {{d’entre-nous}} savent ce dont il s’agit.


__[i]/tu(tu_y_attaché)__
    (y[’-])({avoir_etre})(?:-(?:t-|)(?:ils?|elles?|je|tu|on|nous|vous)|) @@0,2
    <<- morph(\2, ":V0|>en/", False) -1>> "y "                                                      # Ici, ni apostrophe, ni trait d’union.

TEST: {{Y’}}a trop de malheureux sur Terre.
TEST: {{Y’}}en a marre, de ces conneries.
TEST: {{y-}}a-t-il des beignets ?                     ->> "y "


__[i]/tu(tu_lorsque)__
    lors que?
    <<- not before(r"(?i)\bd[eè]s +$") ->> =\0.replace(" ", "")                                     # Attachez les deux mots.|https://fr.wiktionary.org/wiki/lorsque

TEST: Elle y arriva {{lors qu}}’elle trouva l’astuce permettant l’ouverture de la porte.
TEST: Dès lors qu’on sait comment s’y prendre, aucune raison de faillir.


!!!! Virgules                                                                                     !!

# Dialogues
__[u]/virg(virgule_dialogue_après_nom_propre)__
    ([A-ZÉÈ][\w-]+) (\w+-(?:moi|toi|l(?:ui|a|e(?:ur|s|))|nous|vous|je|tu|ils|elles))  @@0,$
    <<- morphex(\1, ":M", ":G") and not morph(\2, ":N", False) and isStart()
    -1>> \1,                                                                        # 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: Alexandre tient-il ses généraux ?
TEST: Alexandra vient-elle ?


__[u]/virg(virgule_dialogue_avant_nom_propre)__
    ({w1})(-l(?:es?|a)(?:-(?:[mt]oi|[nv]ous|lui|leur)|)) ([A-ZÉÈ][\w-]+)   @@0,*,$
    <<- morph(\1, ":E", False) and morph(\3, ":M", False)
    -2>> \2,                                                                        # Dialogue. Ajoutez une virgule pour mettre en incise la personne à qui s’adresse la réplique.

TEST: viens et donne{{-le}} Paul.
TEST: donne{{-le-moi}} Camille.
TEST: donne-moi Alice.
TEST: Tape-toi Patrick.


__[u]/virg(virgule_après_verbe_COD)__
    l(?:es?|a) ({w_2}(?:[ei]r|re)) ([A-ZÉÂÔÈ][\w-]+)  @@w,$
    <<- morph(\1, ":Y", False) and morph(\2, ":M", False) and not morph(word(-1), ">à/", False, False)
    -1>> \1,                                                                                        # Une virgule est probablement souhaitable.

TEST: Tu vas les {{donner}} Rachel.
TEST: Il va la {{tuer}} Paul.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac.









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





































































































































!!!! Apostrophe manquante (2)                                                                     !!

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

TEST: __mapos__ {{L }}opinion des gens, elle s’en moquait.



!!!! A / À: accentuation la préposition en début de phrase                                        !!








<
<
<
<
<
<
<
<
<
<

<
<
<
<
<
<
<
<
<

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



















>
>
>

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




|







2535
2536
2537
2538
2539
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
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
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
TEST: ils mangent {{cents}} têtes             ->> cent
TEST: deux {{tête}}                           ->> têtes
TEST: {{soixante quatorze}}, c’est trop
TEST: Mais {{vingt trois}}, c’est assez
TEST: La poïesis, en grec, est ce qui permet de faire passer n’importe quoi du non-être à l’être




















































































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

__tu_pas_de_trait_d_union__
    deux-tiers
        <<- /tu/ ->> deux tiers                                                 # Pas de trait d’union.

    en-bas
    en-haut
    en-dehors
    en-dessous
    en-deçà
        <<- /tu/ ->> =\1.replace("-", " ")                                      # Pas de trait d’union.

    peu-a-peu
    peu-à-peu
    peux-à-peux
    peut-à-peut
    peux-a-peux
    peut-a-peut
        <<- /tu/ ->> peu à peu                                                  # Pas de trait d’union.

    s’ il-me-plaît
    s’ il-te-plaît
    s’ il-nous-plaît
    s’ il-vous-plaît
    s’ il-me-plait
    s’ il-te-plait
    s’ il-nous-plait
    s’ il-vous-plait
        <<- /tu/ -2>> =\2.replace("-", " ")                                     # Pas de traits d’union.

    tout-à-fait
    tout-a-fait
    tous-à-fait
    tous-a-fait
        <<- /tu/ ->> tout à fait                                                # Pas de trait d’union.

    [les|des] trois-quart
    [les|des] trois-quarts
        <<- /tu/ -2>> trois quarts                                              # Pas de trait d’union.

    parce-que
    parce-qu’
    parce-qu
        <<- /tu/ ->> =\1.replace("-", " ")                                      # Pas de trait d’union.

    ~\w-(?:ç[aà]|aussi|donc)$
        <<- /tu/ ->> =\1.replace("-", " ")                                      # Pas de trait d’union.

    d’ entre-nous
    d’ entre-vous
    d’ entre-eux
    d’ entre-elles
        <<- /tu/ -2>> =\2.replace("-", " ")                                     # Pas de trait d’union.

TEST: J’en ai déjà fait les {{deux-tiers}}.
TEST: {{en-haut}} de la montagne.
TEST: On va finir par s’y faire, {{peu-à-peu}}.
TEST: Venez vite, {{s’il-vous-plait}}.
TEST: Elles sont {{tout-à-fait}} ravies.
TEST: {{Trois-quarts}} des participantes y sont parvenues.
TEST: {{Parce-qu}}’ils y croient plus que tout.
TEST: Oui, ça{{-aussi}}.
TEST: Peu d’{{entre-nous}} savent ce dont il s’agit.


__tu_y_attaché__
    ~^y[’-]\w+
        <<- /tu/ morph(\1, ":V0") -1>> ="y " + \1[2:]                           # Ni apostrophe ni trait d’union après “y”.

    ~^y[’-][\w-]+-(?:ils?|elles?|je|tu|on|nous|vous)
    y’en
    y-en
        <<- /tu/ -1>> ="y " + \1[2:]                                            # Ni apostrophe ni trait d’union après “y”.

TEST: {{Y’}}a trop de malheureux sur Terre.             ->> "Y "
TEST: {{Y’}}en a marre, de ces conneries.               ->> "Y "
TEST: {{y-}}a-t-il des beignets ?                       ->> "y "


__tu_lorsque__
    lors-que
    lors-qu’
    lors-qu
        <<- /tu/ ->> =\1.replace(" ", "-")                                      # Attachez les deux mots.|https://fr.wiktionary.org/wiki/lorsque

    lors [que|qu’|qu]
        <<- /tu/ not value(<1, "|dès|des|") ->> \1\2                            # Attachez les deux mots.|https://fr.wiktionary.org/wiki/lorsque

TEST: Elle y arriva {{lors qu}}’elle trouva l’astuce permettant l’ouverture de la porte.
TEST: Dès lors qu’on sait comment s’y prendre, aucune raison de faillir.



!!!! Virgules                                                                                     !!

__virg_dialogue_après_nom_propre__
    [<start>|,]  @:M¬:G  ~-(?:moi|toi|l(?:ui|a|es?|eur)|nous|vous|je|tu|ils|elles|on)$
        <<- /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: 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.

    ~-l[ea]$  @: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.

    ~-l(?:es?|a)-(?:[mt]oi|[nv]ous|lui|leur)$  @: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: donne-moi Alice.
TEST: Tape-toi Patrick.


__virg_après_verbe_COD__
    [le|la|l’|les]  @:Y  @:M
        <<- /virg/ not value(<1, "|à|") -2>> \2,                                                    # Une virgule est probablement souhaitable.

TEST: Tu vas les {{donner}} Rachel.
TEST: Il va la {{tuer}} Paul.
TEST: Cependant les promesses n’engagent que ceux qui les croient, comme aimait à le dire Jacques Chirac.



!!!! 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>> =\2+"’"                                              # Il manque peut-être une apostrophe.

TEST: __mapos__ {{L }}opinion des gens, elle s’en moquait.



!!!! A / À: accentuation la préposition en début de phrase                                        !!

2657
2658
2659
2660
2661
2662
2663

2664
2665
2666
2667
2668
2669
2670
TEST: « {{A}} partir de maintenant, ce ne sera plus comme avant.
TEST: — {{A}} n’en plus pouvoir
TEST: — {{A}} t’emmener loin de tout ceci.
TEST: {{A}} bientôt, mon ami.
TEST: A bientôt fini son devoir.
TEST: A priori, nul ne peut y parvenir sans une aide extérieure.
TEST: A devient notre meilleure chance d’y parvenir.



!!!! Accentuation des majuscules                                                                  !!

__maj_accents__
    [Etat|Etats|Eglise|Eglises|Ecole|Ecoles|Economie|Equipe|Equipes|Electricité|Electrique|Egalité|Element|Eté|Epouse|Epouses]
        <<- ->> ="É"+\1[1:]                                                                         # Accentuez les majuscules.







>







2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
TEST: « {{A}} partir de maintenant, ce ne sera plus comme avant.
TEST: — {{A}} n’en plus pouvoir
TEST: — {{A}} t’emmener loin de tout ceci.
TEST: {{A}} bientôt, mon ami.
TEST: A bientôt fini son devoir.
TEST: A priori, nul ne peut y parvenir sans une aide extérieure.
TEST: A devient notre meilleure chance d’y parvenir.



!!!! Accentuation des majuscules                                                                  !!

__maj_accents__
    [Etat|Etats|Eglise|Eglises|Ecole|Ecoles|Economie|Equipe|Equipes|Electricité|Electrique|Egalité|Element|Eté|Epouse|Epouses]
        <<- ->> ="É"+\1[1:]                                                                         # Accentuez les majuscules.