Grammalecte  Check-in [80a447ed74]

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: 80a447ed74373189abbf22be85f0d9a62709a659f87b080e7fa4013d6ad547be
User & Date: olr on 2018-07-28 13:52:24
Other Links: branch diff | manifest | tags
Context
2018-07-28
13:55
[fr] apposition: mot d’une lettre OK check-in: b7741f0eec user: olr tags: fr, rg
13:52
[fr] conversion: regex rules -> graph rules check-in: 80a447ed74 user: olr tags: fr, rg
12:55
[fr] conversion: regex rules -> graph rules check-in: e4432fc509 user: olr tags: fr, rg
Changes

Modified gc_lang/fr/rules.grx from [5187580cc8] to [5f01e1aac7].

8584
8585
8586
8587
8588
8589
8590



8591
8592
8593
8594
8595
8596
8597
        <<- ~1:3>> *

    de ce fait  @¬:A.*:[me]:[si]
        <<- ~1:3>> *

    de ce seul fait  @¬:A.*:[me]:[si]
        <<- ~1:4>> *




    dès le départ  @¬:A.*:[me]:[si]
        <<- ~1:3>> *

    dès les premiers [jours|mois|ans|siècles|trimestres|semestres]  @¬:A.*:[me]:[pi]
        <<- ~1:4>> *








>
>
>







8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
        <<- ~1:3>> *

    de ce fait  @¬:A.*:[me]:[si]
        <<- ~1:3>> *

    de ce seul fait  @¬:A.*:[me]:[si]
        <<- ~1:4>> *

    des fois  @¬:A.*:[fe]:[pi]
        <<- ~1:2>> *

    dès le départ  @¬:A.*:[me]:[si]
        <<- ~1:3>> *

    dès les premiers [jours|mois|ans|siècles|trimestres|semestres]  @¬:A.*:[me]:[pi]
        <<- ~1:4>> *

9477
9478
9479
9480
9481
9482
9483























9484
9485
9486
9487
9488
9489
9490

TEST: {{Quel}} que soit la force appliquée.                   ->> Quelle
TEST: {{Quel}} que soit mon aversion                          ->> Quelle
TEST: {{Quel}} que soit cette femme                           ->> Quelle
TEST: {{Quel}} que soit la force appliquée.                   ->> Quelle
TEST: {{Quels}} que soient ces idiotes                        ->> Quelles


























## Pluriel des groupes
__gn_nombre_de_1m__
    nombre  [de|d’]  *WORD
        <<- /gn/ (morph(\3, ":[NA].*:s", ":[ip]|>o(?:nde|xydation|r)/") and morph(<1, ":(?:G|[123][sp])|<start>", ":[AD]"))
            or \3 in aREGULARPLURAL







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







9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516

TEST: {{Quel}} que soit la force appliquée.                   ->> Quelle
TEST: {{Quel}} que soit mon aversion                          ->> Quelle
TEST: {{Quel}} que soit cette femme                           ->> Quelle
TEST: {{Quel}} que soit la force appliquée.                   ->> Quelle
TEST: {{Quels}} que soient ces idiotes                        ->> Quelles

## des
__gn_des_2m__
    des  *WORD  *WORD
        <<- /gn/ (morph(<1, ":[VRBX]|:Cs|>comme/|<start>") or morph(\3, ":N", ":[AQ]")) and not \3.startswith("seul") >>>
        <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3)
        -3>> =switchGender(\3, True)                                                                # Accord de genre erroné avec « \2 ».
        <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2)                                 # Accord de genre erroné avec « \3 ».
        <<- /gn/ morph(\2, ":[NA].*:[pi]") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A"))
        -3>> =suggPlur(\3)                                                                          # Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel.
        <<- checkAgreement(\2, \3) =>> =exclude(\3, ":V")

TEST: faire table rase des passions {{inutile}}               ->> inutiles
TEST: à bonne distance des {{chiens}} {{méchante}}
TEST: des hommes {{attaquée}}
TEST: des femmes {{agressé}}
TEST: des hommes très mal {{renseigné}}                       ->> renseignés
TEST: des dépenses non {{nécessaire}}                         ->> nécessaires
TEST: Des règles pas du tout {{claire}}.                      ->> claires
TEST: Des peines à peine {{croyable}}.                        ->> croyables
TEST: Des {{chambres}} plus ou moins fortement {{éclairé}}.
TEST: Les couleurs rouge, jaune et verte ne doivent pas être utilisées
TEST: des passeports américain, canadien, néerlandais, allemand et britannique.



## Pluriel des groupes
__gn_nombre_de_1m__
    nombre  [de|d’]  *WORD
        <<- /gn/ (morph(\3, ":[NA].*:s", ":[ip]|>o(?:nde|xydation|r)/") and morph(<1, ":(?:G|[123][sp])|<start>", ":[AD]"))
            or \3 in aREGULARPLURAL
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
        and not ( before(r"(?i)\bune? de ") or (\0.startswith("de") and before(r"(?i)\bune? +$")) )
    -2>> =suggPlur(@)                                                                               # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.

TEST: ces {{beaux}} {{institutions}}
TEST: de vos défauts {{terrible}}, je connais presque tout.
TEST: Les éléments caractéristiques liés à ses valeurs historique et architecturale


## des

__[i]/gn(gn_2m_des)__
    des +({w_2}) +({w_2})  @@w,$
    <<- \1 != "fois" and not \2.startswith("seul")
        and ( (morphex(\1, ":[NAQ].*:m", ":[fe]") and morph(\2, ":[NAQ].*:f")) or (morphex(\1, ":[NAQ].*:f", ":[me]") and morph(\2, ":[NAQ].*:m")) )
        and not apposition(\1, \2) and not (after_chk1(r"^ +et +(\w[\w-]+)", ":A") or after_chk1(r"^ *, +(\w[\w-]+)", ":A.*:[si]"))
        and morph(word(-1), ":[VRBX]|>comme/", True, True)
    -2>> =switchGender(@, True)                                                                     # Accord de genre erroné avec « \1 ».
    <<- __also__ and hasFemForm(\1) -1>> =switchGender(@)                                           # Accord de genre erroné avec « \2 ».
    <<- morph(\1, ":[NAQ].*:[pi]", False) and morph(\2, ":[NAQ].*:s")
        and not apposition(\1, \2) and not (after_chk1(r"^ +et +(\w[\w-]+)", ":A") or after_chk1(r"^ *, +(\w[\w-]+)", ":A.*:[si]"))
        and (morphex(\2, ":N", ":[AQ]") or morph(word(-1), ":[VRBX]|>comme/", True, True))
    -2>> =suggPlur(@)                                                                               # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.
    <<- checkAgreement(\1, \2) =>> =exclude(\2, ":V")

TEST: faire table rase des passions {{inutile}}               ->> inutiles
TEST: à bonne distance des {{chiens}} {{méchante}}
TEST: des hommes {{attaquée}}
TEST: des femmes {{agressé}}
TEST: des hommes très mal {{renseigné}}                       ->> renseignés
TEST: des dépenses non {{nécessaire}}                         ->> nécessaires
TEST: Des règles pas du tout {{claire}}.                      ->> claires
TEST: Des peines à peine {{croyable}}.                        ->> croyables
TEST: Des {{chambres}} plus ou moins fortement {{éclairé}}.
TEST: Les couleurs rouge, jaune et verte ne doivent pas être utilisées
TEST: des passeports américain, canadien, néerlandais, allemand et britannique.



!!
!!
!!!! Groupe nominal (3)                                                                           !!
!!
!!







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







9913
9914
9915
9916
9917
9918
9919





























9920
9921
9922
9923
9924
9925
9926
        and not ( before(r"(?i)\bune? de ") or (\0.startswith("de") and before(r"(?i)\bune? +$")) )
    -2>> =suggPlur(@)                                                                               # Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel.

TEST: ces {{beaux}} {{institutions}}
TEST: de vos défauts {{terrible}}, je connais presque tout.
TEST: Les éléments caractéristiques liés à ses valeurs historique et architecturale
































!!
!!
!!!! Groupe nominal (3)                                                                           !!
!!
!!