Grammalecte  Check-in [da78f6c060]

Overview
Comment:[fr] conversion: regex rules -> graph rules + ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | fr | rg
Files: files | file ages | folders
SHA3-256: da78f6c060e5983e2fdf0aace6010621fea384ad620c57f59f6e6bda813cabad
User & Date: olr on 2018-08-26 21:28:28
Other Links: branch diff | manifest | tags
Context
2018-08-27
13:19
[fr] conversion: ajustements check-in: 7c946f5b98 user: olr tags: fr, rg
2018-08-26
21:28
[fr] conversion: regex rules -> graph rules + ajustements check-in: da78f6c060 user: olr tags: fr, rg
16:57
[fr] conversion: ajustements check-in: 7bdcef3362 user: olr tags: fr, rg
Changes

Modified gc_lang/fr/rules.grx from [d115e4b606] to [51cb314285].

997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
    <<- -1>> ”|’|›                                                                                  # Guillemets typographiques fermants.

TEST: {{'}}Ça’ recommence.                                                  ->> “|‘|‹
TEST: Le {{'}}grand’ homme.                                                 ->> “|‘|‹
TEST: Le ‘grand{{'}} homme.                                                 ->> ”|’|›
TEST: J’en ai '''marre''' (syntaxe wiki).


!!
!!
!!!! Élisions                                                                                     !!
!!
!!

__[i]/typo(typo_élision_déterminants)__
    (l[ea] |de )([aâeéêiîoôu]\w+)  @@0,$
    <<- not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", \2) and not \2.isupper() and not morph(\2, ":G", False)
    -1>> =\1[0]+"’"                                         # Élision de l’article devant un mot commençant par une voyelle.|http://fr.wikipedia.org/wiki/Élision

__[i]/typo(typo_élision_si)__    (si )ils?  @@0 <<- -1>> s’                      # Il faut élider « si » et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision
__[i]/typo(typo_élision_que)__   (que )(?:ils?|elles?|on)  @@0 <<- -1>> qu’      # Il faut élider « que » et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision

TEST: {{le }}amour                                                        ->> l’
TEST: {{la }}imagination                                                  ->> l’
TEST: {{de }}amour                                                        ->> d’
TEST: {{de }}est                                                          ->> d’
TEST: je crois que {{si }}ils viennent, ils seront mécontents
TEST: {{Que }}ils soient heureux
TEST: J’ai passé une journée de ouf.


# presque : élision
__[i>/typo(typo_presque)__
    presqu[’'](?![îi]le)
    <<- ->> "presque "                                                          # Pas d’élision autorisée sur “presque”, sauf avec “presqu’île”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745

TEST: {{Presqu’}}exclusivement bâtie en pierre.
TEST: C’est une presqu’île.
TEST: Cette presqu’ile est particulièrement venteuse.


# quelque : élision
__[i>/typo(typo_quelque)__
    quelqu[’'](?!une?)
    <<- ->> "quelque "                                                          # Pas d’élision autorisée sur “quelque”, sauf avec “quelqu’un” ou “quelqu’une”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745

TEST: {{Quelqu’}}absurde que ce soit, il faut y céder.
TEST: quelqu’un vient.
TEST: elle s’en est allée avec quelqu’une…


# ce -> cet
__[i]/typo(typo_euphonie_cet)__
    (ce) ([aâeéêiîoôu]\w+)  @@0,$
    <<- not re.search("(?i)^(?:onz|énième|ouf|énième|ouistiti|one-?step|I(?:I|V|X|er|ᵉʳ))", \2) and morph(\2, ":[me]")
    -1>> cet                                                # Euphonie : « ce » devient « cet » devant un mot commençant par une voyelle.

TEST: {{ce}} animal est dangereux


!!
!!
!!!! Divers                                                                                       !!
!!
!!








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







997
998
999
1000
1001
1002
1003




















































1004
1005
1006
1007
1008
1009
1010
    <<- -1>> ”|’|›                                                                                  # Guillemets typographiques fermants.

TEST: {{'}}Ça’ recommence.                                                  ->> “|‘|‹
TEST: Le {{'}}grand’ homme.                                                 ->> “|‘|‹
TEST: Le ‘grand{{'}} homme.                                                 ->> ”|’|›
TEST: J’en ai '''marre''' (syntaxe wiki).






















































!!
!!
!!!! Divers                                                                                       !!
!!
!!

1572
1573
1574
1575
1576
1577
1578


























1579
1580
1581
1582
1583
1584
1585
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: tag_and_disambiguate                                                                    _
@@@@







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







1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
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 ?


!!
!!
!!!! Élisions                                                                                     !!
!!
!!

# presque : élision
__[i>/typo(typo_presque)__
    (presqu[’'])(?![îi]le)
        <<- -1>> "presque "                                             # Pas d’élision autorisée sur “presque”, sauf avec “presqu’île”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745

TEST: {{Presqu’}}exclusivement bâtie en pierre.
TEST: C’est une presqu’île.
TEST: Cette presqu’ile est particulièrement venteuse.


# quelque : élision
__[i>/typo(typo_quelque)__
    (quelqu[’'])(?!une?)
        <<- -1>> "quelque "                                             # Pas d’élision autorisée sur “quelque”, sauf avec “quelqu’un” ou “quelqu’une”.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=1745

TEST: {{Quelqu’}}absurde que ce soit, il faut y céder.
TEST: quelqu’un vient.
TEST: elle s’en est allée avec quelqu’une…



@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: tag_and_disambiguate                                                                    _
@@@@
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
        <<- not morph(\2, ":1p") =>> exclude(\1, ":Os")

    vous [>avoir|>être]
        <<- not morph(\2, ":2p") =>> exclude(\1, ":Os")


__da_préverbes_verbes__
    ne  ?[le|la|l’|les|nous|vous|lui|leur]¿  (@:¬:[OX])
    ne  [nous|vous]     [le|la|l’|les|en]    (@:¬:[OX])
    ne  [le|la|l’|les]  [lui|leur|en]        (@:¬:[OX])
    ne  [lui|leur]      en                   (@:¬:[OX])
        <<- =>> select(\1, ":V")

    [me|m’|te|se|s’]  ?[le|la|l’|les]¿  (@:¬:[OX])
        <<- =>> select(\1, ":V")

    [n’|m’|s’]  ?[en|y]¿  (@:¬:[OX])
        <<- =>> select(\1, ":V")

    t’  [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:X|>rien/
        <<- =>> select(\3, ":(?:[123][sp]|P|Y)")

    t’  @:¬:X|>(?:rien|ils?|elles?|on)/
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    y  @:¬:[OX]
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    [je|j’|il|ils|on]  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  (@:¬:[OX])
    [je|j’|il|ils|on]  [nous|vous]     [le|la|l’|les|en|y]       (@:¬:[OX])
    [je|j’|il|ils|on]  [le|la|l’|les]  [lui|leur|en|y]           (@:¬:[OX])
    [je|j’|il|ils|on]  [lui|leur]      en                        (@:¬:[OX])
        <<- =>> select(\1, ":[123][sp]")

    tu  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  (@:¬:[OX])
    tu  [nous|vous]   [le|la|l’|les|en|y]         (@:¬:[OX])
    tu  [le|la|l’|les]  [lui|leur|en|y]           (@:¬:[OX])
    tu  [lui|leur]      en                        (@:¬:[OX])
        <<- not morph(<1, ":V0") =>> select(\1, ":[123][sp]")

    lui  [la|le|l’|les]  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")

    [nous|vous]     [le|la|l’|les|en]  @:¬:[OX]
    lui             en                 @:¬:[OX]
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")

    [le|la|l’|les]  [lui|leur|en]      @:¬:[OX]
    leur            en                 @:¬:[OX]
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    @:M  @:[123]s¬:Q
        <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]")

    <start> @:M  @:(?:[123]s|Oo)|>ne/¬:A
        <<- =>> =select(\2, ":M")

    [que|qu’|combien|pourquoi]  ?[en|y]¿  (*WORD)
        <<- =>> exclude(\1, ":E")

__da_été__
    >avoir été
        <<- =>> select(\2, ":Q")

__da_dans__
    dans







|
|
|
|
|

|
|

|
|










|
|
|
|
|

|
|
|
|
|


















|
|







1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
        <<- not morph(\2, ":1p") =>> exclude(\1, ":Os")

    vous [>avoir|>être]
        <<- not morph(\2, ":2p") =>> exclude(\1, ":Os")


__da_préverbes_verbes__
    ne  ?[le|la|l’|les|nous|vous|lui|leur]¿  @:¬:[OX]
    ne  [nous|vous]     [le|la|l’|les|en]    @:¬:[OX]
    ne  [le|la|l’|les]  [lui|leur|en]        @:¬:[OX]
    ne  [lui|leur]      en                   @:¬:[OX]
        <<- =>> select(\-1, ":V")

    [me|m’|te|se|s’]  ?[le|la|l’|les]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")

    [n’|m’|s’]  ?[en|y]¿  @:¬:[OX]
        <<- =>> select(\-1, ":V")

    t’  [le|la|l’|les|en|y]  @:(?:[123][sp]|P|Y)¬:X|>rien/
        <<- =>> select(\3, ":(?:[123][sp]|P|Y)")

    t’  @:¬:X|>(?:rien|ils?|elles?|on)/
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    y  @:¬:[OX]
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    [je|j’|il|ils|on]  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  @:¬:[OX]
    [je|j’|il|ils|on]  [nous|vous]     [le|la|l’|les|en|y]       @:¬:[OX]
    [je|j’|il|ils|on]  [le|la|l’|les]  [lui|leur|en|y]           @:¬:[OX]
    [je|j’|il|ils|on]  [lui|leur]      en                        @:¬:[OX]
        <<- =>> select(\-1, ":[123][sp]")

    tu  ?[le|la|l’|les|en|nous|vous|lui|leur|y]¿  @:¬:[OX]
    tu  [nous|vous]   [le|la|l’|les|en|y]         @:¬:[OX]
    tu  [le|la|l’|les]  [lui|leur|en|y]           @:¬:[OX]
    tu  [lui|leur]      en                        @:¬:[OX]
        <<- not morph(<1, ":V0") =>> select(\-1, ":[123][sp]")

    lui  [la|le|l’|les]  @:(?:[123][sp]|P|Y)
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")

    [nous|vous]     [le|la|l’|les|en]  @:¬:[OX]
    lui             en                 @:¬:[OX]
        <<- not morph(<1, ":R") =>> select(\3, ":(?:[123][sp]|P|Y)")

    [le|la|l’|les]  [lui|leur|en]      @:¬:[OX]
    leur            en                 @:¬:[OX]
        <<- =>> select(\2, ":(?:[123][sp]|P|Y)")

    @:M  @:[123]s¬:Q
        <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]")

    <start> @:M  @:(?:[123]s|Oo)|>ne/¬:A
        <<- =>> =select(\2, ":M")

    [que|qu’|combien|pourquoi]  ?[en|y]¿  *WORD
        <<- =>> exclude(\-1, ":E")

__da_été__
    >avoir été
        <<- =>> select(\2, ":Q")

__da_dans__
    dans
2697
2698
2699
2700
2701
2702
2703





2704




2705



























2706


2707
2708
2709
2710
2711
2712
2713
#        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_exposants__
    1er
        <<- /typo/ sContext != "Writer" ->> 1ᵉʳ     # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1ers
        <<- /typo/ sContext != "Writer" ->> 1ᵉʳˢ    # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271







>
>
>
>
>

>
>
>
>

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

>
>







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


!!
!!
!!!! Élisions                                                                                     !!
!!
!!

__typo_élisions_manquantes__
    [le|la|de]  ~^[aâeéêiîoôu].
        <<- space_after(\1, 1, 1) and not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", \2) and not morph(\2, ":G")
        -1:.2>> =\1[0:1]+"’"                                                # Élision de l’article devant un mot commençant par une voyelle.|http://fr.wikipedia.org/wiki/Élision

    si [il|ils]
        <<- /typo/ space_after(\1, 1, 1) -1:.2>> s’                         # Il faut élider “si” et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision

    que [il|ils|elle|elles|on]
        <<- /typo/ space_after(\1, 1, 1) -1:.2>> qu’                        # Il faut élider “que” et l’accoler au pronom.|http://fr.wikipedia.org/wiki/Élision

TEST: {{le }}amour                                                        ->> l’
TEST: {{la }}imagination                                                  ->> l’
TEST: {{de }}amour                                                        ->> d’
TEST: {{de }}est                                                          ->> d’
TEST: je crois que {{si }}ils viennent, ils seront mécontents
TEST: {{Que }}ils soient heureux
TEST: J’ai passé une journée de ouf.


# ce -> cet
__typo_euphonie_cet__
    ce  ~^[aâeéêiîoôu]
        <<- /typo/ not re.search("(?i)^(?:onz|énième|ouf|énième|ouistiti|one-?step|I(?:I|V|X|er|ᵉʳ))", \2) and morph(\2, ":[NA].*:[me]")
        -1>> cet                                                                # Euphonie : “ce” devient “cet” devant un mot commençant par une voyelle.

TEST: {{ce}} animal est dangereux



!!
!!
!!!! Nombres ordinaux                                                                             !!
!!
!!

__typo_ordinaux_chiffres_exposants__
    1er
        <<- /typo/ sContext != "Writer" ->> 1ᵉʳ     # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271

    1ers
        <<- /typo/ sContext != "Writer" ->> 1ᵉʳˢ    # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
        <<- /conj/ -2>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”.

    [<start>|,]  [elle|elles]  c’
        <<- /conj/ -3>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”.

TEST: tu vois, c’en {{étais}} trop pour elles.
TEST: cet homme, perdu dans ses pensées, allait {{c’en}} faire du souci.
TEST: il {{s’}}accoutumait à sa nouvelle fonction.
TEST: elle {{c’}}anime dès qu’on fait du bruit.
TEST: C’en était malsain.
TEST: C’en devenait trop.
TEST: C’en pouvait être effrayant.


__conj_mieux_vaut__







|







4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
        <<- /conj/ -2>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”.

    [<start>|,]  [elle|elles]  c’
        <<- /conj/ -3>> s’                                                      # Confusion. Le pronom personnel objet s’écrit “se”.

TEST: tu vois, c’en {{étais}} trop pour elles.
TEST: cet homme, perdu dans ses pensées, allait {{c’en}} faire du souci.
TEST: il {{c’}}accoutumait à sa nouvelle fonction.
TEST: elle {{c’}}anime dès qu’on fait du bruit.
TEST: C’en était malsain.
TEST: C’en devenait trop.
TEST: C’en pouvait être effrayant.


__conj_mieux_vaut__