Grammalecte  Check-in [2807f678c2]

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: 2807f678c23578f52aa2286627bf6eb918f1b62db7760a49095007ce69396c1a
User & Date: olr on 2018-08-04 12:36:11
Other Links: branch diff | manifest | tags
Context
2018-08-04
13:31
[build][core][fr] option for case sensitivity check-in: 3075d93636 user: olr tags: build, core, fr, rg
12:36
[fr] conversion: regex rules -> graph rules check-in: 2807f678c2 user: olr tags: fr, rg
2018-08-03
21:39
[fr] conversion: regex rules -> graph rules check-in: 5d2e9c1f8e user: olr tags: fr, rg
Changes

Modified gc_lang/fr/rules.grx from [44b98b8905] to [783e7ff817].

6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
....
9522
9523
9524
9525
9526
9527
9528















9529
9530
9531
9532
9533
9534
9535
.....
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
.....
12330
12331
12332
12333
12334
12335
12336

12337
12338
12339


12340







12341











12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
.....
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517























15518
15519
15520
15521
15522
15523
15524
    [îles|iles] Britanniques
        <<- ~2>> !

    *WORD [>afghane|>albanaise|>algérienne|>allemande|>américaine|>andorrane|>anglais|>angolaise|>arabe|>argentine|>arménienne|>australienne|>autrichienne|>asiatique|>azerbaïdjanaise|>bahamienne|>bangladaise|>bengladeshie|>barbadienne|>basque|>belge|>bélizienne|>béninoise|>bretonne|>bhoutanaise|>biélorusse|>birmane|>bolivienne|>bosnienne|>botswanaiso|>brésilienne|>britannique|>brunéiene|>bulgare|>burkinabé|>burundaise|>cambodgienne|>camerounaise|>canadienne|>capverdienne|>centrafricaine|>chilienne|>chinoise|>chypriote|>colombienne|>comorienne|>congolaise|>nord-coréenne|>corse|>costaricienne|>croate|>cubaine|>danoise|>djiboutienne|>dominicaine|>égyptienne|>émiratie|>équatorienne|>érythréenne|>estonienne|>espagnole|>étatsunienne|>états-unienne|>étasunienne|>éthiopienne|>fidjienne|>finlandaise|>formosane|>française|>gabonaise|>gambienne|>géorgienne|>ghanéenne|>grecque|>grenadienne|>guadeloupéenne|>guatémaltèque|>guinéenne|>équato-guinéenne|>guyanienne|>haïtienne|>honduriene|>hollandaise|>hongroise|>indienne|>indochinoise|>indonésienne|>irakienne|>italienne|>iranienne|>irlandaise|>islandaise|>israélienne|>ivoirienne|>jamaïcaine|>japonaise|>jordanienne|>kazakhe|>kényane|>kosovare|>koweïtienne|>laotienne|>lapone|>lettone|>libanaise|>libérienne|>libyenne|>liechtensteinoise|>lituanienne|>luxembourgeois|>macédonienne|>maghrébine|>malgache|>malaisienne|>malawite|>maldivienne|>malienne|>maltaise|>maorie|>marocaine|>martienne|>mauricienne|>mauritanienne|>mexicaine|>micronésienne|>moldave|>monégasque|>monténégrine|>mongole|>mozambicaine|>namibiene|>népalaise|>nicaraguayenne|>nigérienne|>nigériane|>néerlandaise|>norvégienne|>néo-zélandaise|>ougandaise|>ouzbèke|>pakistanaise|>palestinienne|>panaméenne|>paraguayenne|>perse|>péruvienne|>philippine|>polonaise|>polynésienne|>portugaise|>québécoise|>qatarie|>roumaine|>russe|>rwandaise|>saoudienne|>scandinave|>salvadorienne|>sénégalaise|>serbe|>singapourienne|>slovaque|>slovène|>somalienne|>soudanaise|>soviétique|>srilankaise|>suédoise|>suisse|>surinamaise|>syrienne|>sud-africaine|>sud-coréenne|>américaine|>tadjike|>tanzanienne|>tchadienne|>tchèque|>thaïlandaise|>togolaise|>tahitienne|>tunisiene|>turkmène|>turque|>taïwanaise|>ukrainienne|>uruguayenne|>vénézuélienne|>vietnamienne|>yéménite|>yougoslave|>zaïroise|>zambienne|>zimbabwéenne]
        <<- /maj/ \2.istitle() and morph(\1, ":N", ":(?:A|V0e|D|R|B)") -2>> =\2.lower()             # S’il s’agit d’un adjectif, ne mettez pas de majuscule.
        <<- /maj/ \2.islower() and not \2.startswith("canadienne") and
            ( value(\1, "|certains|certaines|ce|cet|cette|ces|des|les|nos|vos|leurs|quelques|plusieurs|chaque|une|aux|") or
            ( value(\1, "|un|") and not value(<1, "|dans|") and not after("(?:approximatif|correct|courant|parfait|facile|aisé|impeccable|incompréhensible)") ) )
        -2>> =\2.capitalize()                                                                       # S’il s’agit d’un gentilé, mettez une majuscule.

    [un|une|certains|certaines|ce|cet|cette|ces|le|la|les|l’|des|quelques|plusieurs|chaque] [>européenne|>parisienne|>lyonnaise|>marseillaise|>lilloise|>toulousaine|>nantaise|>strasbourgeoise|>montpelliéraine|>bordelaise|>bruxelloise|>montréalaise|>londonienne|>genévoise|>zurichoise|>bâloise|>berlinoise|>romaine]
        <<- /maj/ \2.islower() -2>> =\2.capitalize()                                                # S’il s’agit d’un gentilé, mettez une majuscule.

TEST: des {{français}} sont arrivés                                     ->> Français
TEST: c’est de conception {{Allemande}}                                 ->> allemande
................................................................................

TEST: __redon2__ Quelle {{imposture}}, c’est d’un ennui, c’est une {{imposture}}.
TEST: __redon2__ ils sont là côte à côte.
TEST: __redon2__ Tu avances petit à petit, et tu réussis.
TEST: __redon2__ De loin en loin, elle passe.
TEST: __redon2__ Les mêmes causes produisent/produisant les mêmes effets. (répétition)

















@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: groupes_nominaux                                                                        _
@@@@
................................................................................
    [>plante|>champignon|>lépiote|>baie|>fruit|>herbe|>fleur|>chair|>moule|humus|>substance|>végétal]  >venimeuse
        <<- /conf/ -2>> =\1.replace("enim", "énén")                                    # Confusion : pas de venin ici.

TEST: ces araignées {{vénéneuses}}.
TEST: ce champignon {{venimeux}}.



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




!!!! Mots composés                                                                                !!

__[i]/mc(mc_mot_composé)__
    ({w2})-({w2})  @@0,$
        <<- not \1.isdigit() and not \2.isdigit()
            and not morph(\0, ":", False) and not morph(\2, ":G", False) and spell(\1+\2)
        ->> \1\2                                                                                    # Vous pouvez ôter le trait d’union.
        <<- \2 != "là" and not re.search("(?i)^(?:ex|mi|quasi|semi|non|demi|pro|anti|multi|pseudo|proto|extra)$", \1)
            and not \1.isdigit() and not \2.isdigit() and not morph(\2, ":G", False)
            and not morph(\0, ":", False) and not spell(\1+\2)
        ->> _                                                                                       # Mot inconnu du dictionnaire.|http://www.dicollecte.org/dictionary.php?prj=fr&unknownword=on

TEST: __mc__ des {{portes-avions}}.




!!
!!
!!
!!
!!
!!
!!
................................................................................

!!
!!
!!!! Infinitif                                                                                    !!
!!
!!


__[i]/infi(infi_à_en)__
    à en ({w_2}) @@5
    <<- morphex(\1, ":V", ":Y") -1>> =suggVerbInfi(@)                                               # Le verbe devrait être à l’infinitif.










TEST: à en {{parlé}} sans cesse













__[i]/infi(infi_de)__
    de ({w_2}(?:é|ez))  @@3
    <<- morph(\1, ":V1") and not \1[0:1].isupper()
        and (\1.endswith("z") or not before(r"(?i)\b(?:quelqu(?:e chose|’une?)|(?:l(es?|a)|nous|vous|me|te|se)[ @]trait|personne|point +$|rien(?: +[a-zéèêâîûù]+|) +$)"))
    -1>> =suggVerbInfi(@)                                                                           # Le verbe devrait être à l’infinitif.

TEST: Il tentait de {{raisonné}} en homme libre
TEST: sa façon de {{nettoyez}} était inefficace.


__[i]/infi(infi_de_nous_vous_lui)__
................................................................................
    <<- \1 != "t" and not analyse(\1, ":V", False) and spell(\1)
    -1>> =suggSimil(\1, ":3p", False)                                                               # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du pluriel.

TEST: {{attaquant}}-ils                                     ->> attaquent
TEST: {{prendrons}}-elles un verre avec moi ?



!!!! Verbe auxiliaire                                                                             !!

__[i]/conf(conf_avoir_sujet_participe_passé)__
    ({avoir})-(?:je|tu|ils?|elles?|on) +({ppas})  @@0,$
    <<- analyse(\1, ">avoir/", False) and analyse(\2, ":V.......e_.*:Q", False) -1>> _  # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.
__[i]/conf(conf_sujet_avoir_participe_passé)__
    (?:j’|je |tu |ils? |elles? |on ) *({avoir}) +({ppas})  @@*,$
    <<- morph(\1, ">avoir/", False) and morph(\2, ":V.......e_.*:Q", False) -1>> _  # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

TEST: {{Ait}}-il arrivé à ses fins ?
TEST: je n’{{avais}} pas parti avec eux.
TEST: Avais-je partie liée avec lui ?
TEST: il {{avait}} parti.





@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: last_graph                                                                              _
@@@@
@@@@
@@@@
@@@@


























!!
!!
!!!! Modes verbaux                                                                                !!
!!
!!







|







 







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







 







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







 







>
|
<
|
>
>

>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>





|







 







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












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







6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
....
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
.....
12291
12292
12293
12294
12295
12296
12297

























12298
12299
12300
12301
12302
12303
12304
.....
12320
12321
12322
12323
12324
12325
12326
12327
12328

12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
.....
15492
15493
15494
15495
15496
15497
15498

















15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
    [îles|iles] Britanniques
        <<- ~2>> !

    *WORD [>afghane|>albanaise|>algérienne|>allemande|>américaine|>andorrane|>anglais|>angolaise|>arabe|>argentine|>arménienne|>australienne|>autrichienne|>asiatique|>azerbaïdjanaise|>bahamienne|>bangladaise|>bengladeshie|>barbadienne|>basque|>belge|>bélizienne|>béninoise|>bretonne|>bhoutanaise|>biélorusse|>birmane|>bolivienne|>bosnienne|>botswanaiso|>brésilienne|>britannique|>brunéiene|>bulgare|>burkinabé|>burundaise|>cambodgienne|>camerounaise|>canadienne|>capverdienne|>centrafricaine|>chilienne|>chinoise|>chypriote|>colombienne|>comorienne|>congolaise|>nord-coréenne|>corse|>costaricienne|>croate|>cubaine|>danoise|>djiboutienne|>dominicaine|>égyptienne|>émiratie|>équatorienne|>érythréenne|>estonienne|>espagnole|>étatsunienne|>états-unienne|>étasunienne|>éthiopienne|>fidjienne|>finlandaise|>formosane|>française|>gabonaise|>gambienne|>géorgienne|>ghanéenne|>grecque|>grenadienne|>guadeloupéenne|>guatémaltèque|>guinéenne|>équato-guinéenne|>guyanienne|>haïtienne|>honduriene|>hollandaise|>hongroise|>indienne|>indochinoise|>indonésienne|>irakienne|>italienne|>iranienne|>irlandaise|>islandaise|>israélienne|>ivoirienne|>jamaïcaine|>japonaise|>jordanienne|>kazakhe|>kényane|>kosovare|>koweïtienne|>laotienne|>lapone|>lettone|>libanaise|>libérienne|>libyenne|>liechtensteinoise|>lituanienne|>luxembourgeois|>macédonienne|>maghrébine|>malgache|>malaisienne|>malawite|>maldivienne|>malienne|>maltaise|>maorie|>marocaine|>martienne|>mauricienne|>mauritanienne|>mexicaine|>micronésienne|>moldave|>monégasque|>monténégrine|>mongole|>mozambicaine|>namibiene|>népalaise|>nicaraguayenne|>nigérienne|>nigériane|>néerlandaise|>norvégienne|>néo-zélandaise|>ougandaise|>ouzbèke|>pakistanaise|>palestinienne|>panaméenne|>paraguayenne|>perse|>péruvienne|>philippine|>polonaise|>polynésienne|>portugaise|>québécoise|>qatarie|>roumaine|>russe|>rwandaise|>saoudienne|>scandinave|>salvadorienne|>sénégalaise|>serbe|>singapourienne|>slovaque|>slovène|>somalienne|>soudanaise|>soviétique|>srilankaise|>suédoise|>suisse|>surinamaise|>syrienne|>sud-africaine|>sud-coréenne|>américaine|>tadjike|>tanzanienne|>tchadienne|>tchèque|>thaïlandaise|>togolaise|>tahitienne|>tunisiene|>turkmène|>turque|>taïwanaise|>ukrainienne|>uruguayenne|>vénézuélienne|>vietnamienne|>yéménite|>yougoslave|>zaïroise|>zambienne|>zimbabwéenne]
        <<- /maj/ \2.istitle() and morph(\1, ":N", ":(?:A|V0e|D|R|B)") -2>> =\2.lower()             # S’il s’agit d’un adjectif, ne mettez pas de majuscule.
        <<- /maj/ \2.islower() and not \2.startswith("canadienne") and
            ( value(\1, "|certains|certaines|ce|cet|cette|ces|des|les|nos|vos|leurs|quelques|plusieurs|chaque|une|aux|") or
            ( value(\1, "|un|") and not value(<1, "|dans|numéro|") and not after("(?:approximatif|correct|courant|parfait|facile|aisé|impeccable|incompréhensible)") ) )
        -2>> =\2.capitalize()                                                                       # S’il s’agit d’un gentilé, mettez une majuscule.

    [un|une|certains|certaines|ce|cet|cette|ces|le|la|les|l’|des|quelques|plusieurs|chaque] [>européenne|>parisienne|>lyonnaise|>marseillaise|>lilloise|>toulousaine|>nantaise|>strasbourgeoise|>montpelliéraine|>bordelaise|>bruxelloise|>montréalaise|>londonienne|>genévoise|>zurichoise|>bâloise|>berlinoise|>romaine]
        <<- /maj/ \2.islower() -2>> =\2.capitalize()                                                # S’il s’agit d’un gentilé, mettez une majuscule.

TEST: des {{français}} sont arrivés                                     ->> Français
TEST: c’est de conception {{Allemande}}                                 ->> allemande
................................................................................

TEST: __redon2__ Quelle {{imposture}}, c’est d’un ennui, c’est une {{imposture}}.
TEST: __redon2__ ils sont là côte à côte.
TEST: __redon2__ Tu avances petit à petit, et tu réussis.
TEST: __redon2__ De loin en loin, elle passe.
TEST: __redon2__ Les mêmes causes produisent/produisant les mêmes effets. (répétition)


!!!! Mots composés                                                                                !!

__[i]/mc(mc_mot_composé)__
    ({w2})-({w2})  @@0,$
        <<- not \1.isdigit() and not \2.isdigit()
            and not morph(\0, ":", False) and not morph(\2, ":G", False) and spell(\1+\2)
        ->> \1\2                                                                                    # Vous pouvez ôter le trait d’union.
        <<- \2 != "là" and not re.search("(?i)^(?:ex|mi|quasi|semi|non|demi|pro|anti|multi|pseudo|proto|extra)$", \1)
            and not \1.isdigit() and not \2.isdigit() and not morph(\2, ":G", False)
            and not morph(\0, ":", False) and not spell(\1+\2)
        ->> _                                                                                       # Mot inconnu du dictionnaire.|http://www.dicollecte.org/dictionary.php?prj=fr&unknownword=on

TEST: __mc__ des {{portes-avions}}.


@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: groupes_nominaux                                                                        _
@@@@
................................................................................
    [>plante|>champignon|>lépiote|>baie|>fruit|>herbe|>fleur|>chair|>moule|humus|>substance|>végétal]  >venimeuse
        <<- /conf/ -2>> =\1.replace("enim", "énén")                                    # Confusion : pas de venin ici.

TEST: ces araignées {{vénéneuses}}.
TEST: ce champignon {{venimeux}}.



























!!
!!
!!
!!
!!
!!
!!
................................................................................

!!
!!
!!!! Infinitif                                                                                    !!
!!
!!


__infi_à_verbe__

    à  [le|la|l’|leur|les]           (@:V¬:[YNAM]|>lui/)
    [<start>|,]  à  [nous|vous|lui]  (@V:¬[YE]|>lui/)
        <<- /infi/ \1.islower() -1>> =suggVerbInfi(\1)                                  # Erreur probable. Après le pronom “à”, le verbe devrait être à l’infinitif.

    à  [ne|n’|en|me|m’|te|t’|se|s’|y]                                       (@:V¬:Y|>lui/)
    à  [ne|n’]  [le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]    (@:V¬:Y|>lui/)
    à  ?[ne|n’]¿  [me|m’|te|t’|se|s’|nous|vous]  [le|la|l’|les|en|y]        (@:V¬:Y)
    à  ?[ne|n’]¿  [le|la|l’|les]                 [lui|leur|en|y]            (@:V¬:Y)
    à  ?[ne|n’]¿  [lui|leur]                     en                         (@:V¬:Y)
        <<- /infi/ -1>> =suggVerbInfi(\1)                                               # Après le pronom “à”, le verbe devrait être à l’infinitif.

TEST: à en {{parlé}} sans cesse
TEST: cela suffit {{à les}} {{aimés}}
TEST: à ne leur en {{avancé}} que le nécessaire.
TEST: à l’y {{poussé}}
TEST: elle s’engage à ne les lui donner qu’en dernier recours.
TEST: l’idée consiste à la lui donner sans contrepartie et voir ce qu’il en fera.


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



__[i]/infi(infi_de)__
    de ({w_2}(?:é|ez))  @@3
    <<- morph(\1, ":V1") and not \1[0:1].isupper()
        and (\1.endswith("z") or not before(r"(?i)\b(?:quelqu(?:e chose|’une?)|(?:l(es?|a)|nous|vous|me|te|se) trait|personne|point +$|rien(?: +[a-zéèêâîûù]+|) +$)"))
    -1>> =suggVerbInfi(@)                                                                           # Le verbe devrait être à l’infinitif.

TEST: Il tentait de {{raisonné}} en homme libre
TEST: sa façon de {{nettoyez}} était inefficace.


__[i]/infi(infi_de_nous_vous_lui)__
................................................................................
    <<- \1 != "t" and not analyse(\1, ":V", False) and spell(\1)
    -1>> =suggSimil(\1, ":3p", False)                                                               # Forme interrogative : « \1 » n’est pas un verbe à la 3ᵉ personne du pluriel.

TEST: {{attaquant}}-ils                                     ->> attaquent
TEST: {{prendrons}}-elles un verre avec moi ?





















@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: last_graph                                                                              _
@@@@
@@@@
@@@@
@@@@


!!!! Verbe auxiliaire                                                                             !!

__conf_auxiliaire_avoir_être__
    [/-je|/-tu|/-il|/-on]  @:V.......e_.*:Q
        <<- /conf/ analyse(\1, ">avoir/", "", 0, -3) -1>> _                       # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

    /-ils  @:V.......e_.*:Q
        <<- /conf/ analyse(\1, ">avoir/", "", 0, -4) -1>> _                       # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

    [/-elle|/-nous|/-vous]  @:V.......e_.*:Q
        <<- /conf/ analyse(\1, ">avoir/", "", 0, -5) -1>> _                       # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

    /-elles  @:V.......e_.*:Q
        <<- /conf/ analyse(\1, ">avoir/", "", 0, -6) -1>> _                       # Incohérence. La forme verbale “\2” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

    [je|j’|tu|il|elle|on|ils|nous|vous|elle|elles]  >avoir  @:V.......e_.*:Q
        <<- /conf/ -2>> _                                                       # Incohérence. La forme verbale “\3” ne peut pas être utilisé avec l’auxiliaire “avoir”, seulement avec l’auxiliaire “être”.

TEST: {{Ait-il}} arrivé à ses fins ?
TEST: je n’{{avais}} pas parti avec eux.
TEST: il {{avait}} parti.
TEST: Avais-je partie liée avec lui ?


!!
!!
!!!! Modes verbaux                                                                                !!
!!
!!