Grammalecte  Check-in [4cde0da287]

Overview
Comment:[fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 4cde0da2871bc26e73c0bf51d541a1e834edea148e9361aba8568b3597349d18
User & Date: olr on 2020-11-17 18:56:35
Other Links: manifest | tags
Context
2020-11-18
14:23
[fr] gendicfr: tag erroné check-in: 81d205e8ed user: olr tags: trunk, fr
2020-11-17
18:56
[fr] ajustements check-in: 4cde0da287 user: olr tags: trunk, fr
16:07
[fr] update apposition() check-in: c45f0c51d4 user: olr tags: trunk, fr
Changes

Modified gc_lang/fr/rules.grx from [e3080bb58c] to [7911f80077].

2259
2260
2261
2262
2263
2264
2265
2266

2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2259
2260
2261
2262
2263
2264
2265

2266
2267
2268
2269
2270





2271
2272
2273
2274
2275
2276
2277







-
+




-
-
-
-
-







    de [tous|toutes] les *WORD
        <<- =>> select(\4, ":[NA]")

    en [plein|pleine] *WORD
        <<- =>> select(\3, ":[NA]")

    en tant que  *WORD
        <<- =>> exclude(\4, ":V")
        <<- =>> select(\4, ":[NA]")

    ni *WORD
        <<- =>> select(\-1, ":N")

    nombre  [de|d’|des]  [@:[NA]|<end>|,]
        <<- not morph(<1, ":D") >>>
        <<- morph(<1, ":A.*:[me]:[si]") =>> add_morph(\1, ">nombre/:G:D")
        <<- __else__ =>> define(\1, ">nombre/:G:D")

    par  *WORD
        <<- =>> exclude(\2, ":[123][sp]")

    plein  [de|d’]  @:[AN]
        <<- not morph(<1, ":(?:D.*:m|V[0-3]e)") =>> =define(\1, ":G")

    plusieurs  @:[NA].*:p¬:(?:G|3p|V0)
25632
25633
25634
25635
25636
25637
25638
25639

25640
25641
25642
25643
25644

25645
25646
25647
25648
25649

25650
25651
25652
25653
25654

25655
25656
25657
25658
25659

25660
25661
25662
25663
25664

25665
25666
25667
25668
25669
25670
25671
25672
25673
25674
25675
25676
25677
25678
25679
25680
25681
25682
25683
25684

25685
25686
25687
25688
25689
25690
25691
25692
25693
25694

25695
25696
25697
25698
25699

25700
25701
25702
25703
25704

25705
25706
25707
25708
25709

25710
25711
25712
25713
25714
25715
25716
25627
25628
25629
25630
25631
25632
25633

25634
25635
25636
25637
25638

25639
25640
25641
25642
25643

25644
25645
25646
25647
25648

25649
25650
25651
25652
25653

25654
25655
25656
25657
25658

25659
25660
25661
25662
25663
25664
25665
25666
25667
25668
25669
25670
25671
25672
25673
25674
25675
25676
25677
25678

25679
25680
25681
25682
25683
25684
25685
25686
25687
25688

25689
25690
25691
25692
25693

25694
25695
25696
25697
25698

25699
25700
25701
25702
25703

25704
25705
25706
25707
25708
25709
25710
25711







-
+




-
+




-
+




-
+




-
+




-
+



















-
+









-
+




-
+




-
+




-
+







    [avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NA]¬:[GY]   @:[VR]¬:[NAP]
    [avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NAM]¬:[GY]  , @¬:[NA]
    [avec|chez|contre|dans|envers|par|pour|selon|sous|sur|au|aux]  @:[NAM]¬:[GY]  ?,¿  [/_VCint_|/_VCimp_]
        <<- ~1:2>> *

    [un|ce|cet|au|ledit] *WORD *WORD
        <<- morph(\2, ":[NA].*[me]:[si]", ":(?:P|X|G|Y|V0)") and morph(\3, ":[NA].*[me]:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    mon *WORD *WORD
        <<- morph(\2, ":[NA].*:[si]", ":(?:P|X|G|Y|V0)") and morph(\3, ":[NA].*:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    [ton|son] *WORD *WORD
        <<- morph(\2, ":[NA].*:[si]", ":(?:[123]p|P|X|G|Y|V0)") and morph(\3, ":[NA].*:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    [cette|ma|ta|sa|ladite] *WORD *WORD
        <<- morph(\2, ":[NA].*:[fe]:[si]", ":G") and morph(\3, ":[NA].*:[fe]:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    [notre|votre] *WORD *WORD
        <<- not value(<1, "|la|le|du|") and morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    chaque *WORD *WORD
        <<- morph(\2, ":[NA].*:[si]", ":G") and morph(\3, ":[NA].*:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    le *WORD *WORD
        <<- morph(\2, ":[NA].*[me]:[si]", ":(?:[123]p|P|X|G|Y|V0)") and morph(\3, ":[NA].*[me]:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    la *WORD *WORD
        <<- morph(\2, ":[NA].*[fe]:[si]", ":(?:[123]p|P|X|G|Y|V0)") and morph(\3, ":[NA].*[fe]:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    les *WORD *WORD
        <<- morph(\2, ":[NA].*[pi]", ":(?:[123]p|P|X|G|Y|V0)") and morph(\3, ":[NA].*:[pi]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    l’ *WORD *WORD
        <<- morph(\2, ":[NA].*:[si]", ":(?:[123][sp]|P|X|G|Y|V0)|>air/") and morph(\3, ":[NA].*:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    leur *WORD *WORD
        <<- not value(<1, "|le|la|du|au|") and morph(\2, ":[NA].*:[si]", ":(?:[123]p|P|X|G|Y|V0)") and morph(\3, ":[NA].*:[si]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    leurs *WORD *WORD
        <<- not value(<1, "|des|les|aux|") and morph(\2, ":[NA].*:[pi]", ":(?:[123]p|P|X|G|Y|V0)") and morph(\3, ":[NA].*:[pi]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    [des|ces|mes|tes|ses|nos|vos|aux|quelques] *WORD *WORD
        <<- morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:[pi]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    lesdits *WORD *WORD
        <<- morph(\2, ":[NA].*:[me]:[pi]", ":G") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    lesdites *WORD *WORD
        <<- morph(\2, ":[NA].*:[fe]:[pi]", ":G") and morph(\3, ":[NA].*:[fe]:[pi]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A", ":N") ~2>> *
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

    [certains|maints] *WORD *WORD
        <<- morph(\2, ":[NA].*:[me]:[pi]", ":(?:[123]p|P|X|G|Y|V0)") and morph(\3, ":[NA].*:[me]:[pi]", ":(?:G|[123][sp]|P|M)") >>>
        <<- morph(\3, ":N", ":A") and morph(\2, ":A") ~2>> *
        <<- __else__ ~3>> *

30347
30348
30349
30350
30351
30352
30353
30354

30355
30356
30357
30358
30359
30360
30361
30342
30343
30344
30345
30346
30347
30348

30349
30350
30351
30352
30353
30354
30355
30356







-
+







TEST: la plupart avançaient en rangs serrés
TEST: un grand nombre avaient été humiliés par ces pratiques délétères


__conj_det_sing_nom__
    [un|ce|cet|mon|ton|son|notre|votre]  *WORD  @:[123][sp]¬:(?:3s|P|Y|3p!|G|M)
        <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[me]:[si]", ":G")
            and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|")
            and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|nombre|")
                        or tag_before(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not checkAgreement(\2, \3) >>>
        <<- /conj/ not tag(\-1, "_ngn_") and morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A"))
        -3>> =suggVerb(\3, ":3s", suggSing)                                                         && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect.
        <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s")                                               && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier.

    [une|cette|mon|ton|son|ma|ta|sa|notre|votre]  *WORD  @:[123][sp]¬:(?:3s|P|Y|3p!|G|M)
        <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[fe]:[si]", ":G")