Grammalecte  Check-in [324ab931ac]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:[fr] écriture épicène: màj avec puce +option idoine
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256:324ab931ac2e7e41e95bd36f551132fe1b82defd54864a778dc81bc924a04ff5
User & Date: olr 2019-04-12 05:42:21
Context
2019-04-12
11:24
[fr] faux positif check-in: c16919094c user: olr tags: fr, trunk
05:42
[fr] écriture épicène: màj avec puce +option idoine check-in: 324ab931ac user: olr tags: fr, trunk
2019-04-11
21:00
[fr][core] découpage des phrases check-in: 119552d3ae user: olr tags: core, fr, trunk
Changes

Changes to gc_lang/fr/rules.grx.

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

67
68
69
70
71
72
73
...
117
118
119
120
121
122
123

124
125
126
127
128
129
130
...
156
157
158
159
160
161
162

163
164
165
166
167
168
169
...
203
204
205
206
207
208
209

210
211
212
213
214
215
216
...
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
...
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
....
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527

!!
!!
!! Options                                                                                        !!
!!
!!

OPTGROUP/basic: typo apos, esp tab, nbsp unit, tu maj, num virg, nf poncfin, ocr chim, liga mapos
OPTGROUP/gramm: conf sgpl gn
OPTGROUP/verbs: infi conj ppas, imp inte vmode
OPTGROUP/style: bs pleo, redon1 redon2, neg
OPTGROUP/misc: date mc
OPTGROUP/debug: idrule

# Names of options is used in dictionaries keys: dOptPython, dOptJavaScript, etc.
OPTSOFTWARE:        Python      Server      Writer      JavaScript  Firefox     Thunderbird
OPT/typo:           True        True        True        True        True        True
OPT/apos:           True        True        True        True        True        True

OPT/esp:            True        True        True        False       False       False
OPT/tab:            False       True        False       False       False       False
OPT/nbsp:           True        True        True        False       False       False
OPT/tu:             True        True        True        True        True        True
OPT/maj:            True        True        True        True        True        True
OPT/num:            True        True        True        True        True        True
OPT/virg:           True        True        True        True        True        True
................................................................................
COLOR/bleu_vif:     210,100,30
COLOR/vert_vif:     120,100,30
COLOR/cyan_vif:     180,100,40

OPTCOLORTHEME:      Default     Writer
OPTCOLOR/typo:      orange      orange_vif
OPTCOLOR/apos:      orange2     orange2_vif

OPTCOLOR/esp:       orange      orange_vif
OPTCOLOR/tab:       orange      orange_vif
OPTCOLOR/nbsp:      orange      orange_vif
OPTCOLOR/tu:        orange      orange_vif
OPTCOLOR/maj:       orange      orange_vif
OPTCOLOR/num:       orange      orange_vif
OPTCOLOR/virg:      orange      orange_vif
................................................................................
OPTDEFAULTUILANG: fr_FR

# Labels
OPTLANG/fr_FR:      Grammalecte (Français)
OPTLABEL/basic:     Typographie
OPTLABEL/typo:      Signes typographiques
OPTLABEL/apos:      Apostrophe typographique|Correction des apostrophes droites. Automatisme possible dans le menu Outils > Options d’autocorrection > Options linguistiques > Guillemets simples > Remplacer (à cocher)

OPTLABEL/esp:       Espaces surnuméraires|Signale les espaces inutiles entre les mots, en début et en fin de ligne.
OPTLABEL/tab:       Tabulations surnuméraires|Signale les tabulations inutiles en début et en fin de ligne.
OPTLABEL/nbsp:      Espaces insécables|Vérifie les espaces insécables avec les ponctuations « ! ? : ; » (à désactiver si vous utilisez une police Graphite)
OPTLABEL/maj:       Majuscules|Vérifie l’utilisation des majuscules et des minuscules (par exemple, « la raison d’État », « les Européens »).
OPTLABEL/virg:      Virgules|Virgules manquantes avant “mais”, “car” et “etc.”.
OPTLABEL/poncfin:   Ponctuation finale [!]|Vérifie s’il manque une ponctuation finale au paragraphe (seulement pour les paragraphes constitués de plusieurs phrases).
OPTLABEL/tu:        Traits d’union|Cherche les traits d’union manquants ou inutiles.
................................................................................
OPTLABEL/idrule:    Identifiant des règles de contrôle [!]|Affiche l’identifiant de la règle de contrôle dans les messages d’erreur.


OPTLANG/en_US:      Grammar checking (French)
OPTLABEL/basic:     Typography
OPTLABEL/typo:      Typographical glyphs
OPTLABEL/apos:      Typographical apostrophe|Detects typewriter apostrophes. You may get automatically typographical apostrophes in Tools > Autocorrect options > Localized options > Single quote > Replace (checkbox).

OPTLABEL/esp:       Useless spaces|Checks spaces within words and at the beginning and the end of lines.
OPTLABEL/tab:       Useless tabulations|Checks tabulations at the beginning and the end of lines.
OPTLABEL/nbsp:      Non-breakable spaces|Checks the use of non-breakable spaces with the following punctuation marks: « ! ? : ; » (deactivate it if you use a Graphite font).
OPTLABEL/maj:       Capitals|Checks the use of uppercase and lowercase letters (i.e. « la raison d’État », « les Européens »).
OPTLABEL/virg:      Commas|Missing commas before “mais”, “car” and “etc.”.
OPTLABEL/poncfin:   Ending punctuation [!]|Checks if an ending punctuation is missing on paragraphs (only for multi-sentences paragraphs).
OPTLABEL/tu:        Hyphens|Checks missing or useless hyphens.
................................................................................
!!!! Écritures épicènes dystypographiques                                                         !!
!!
!!

# (attention aux modifs: brainfuck d’intensité non négligeable)
# La désambiguïsation est faite lors de la deuxième passe

__[i](typo_écriture_épicène_tous_toutes)__
    tous?[.(/·⋅–—-]te[.)/·⋅–—-]?s
    <<- option("typo") ->> tous et toutes|toutes et tous                                            # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{tou.tes}} sont là.                                              ->> tous et toutes|toutes et tous


__[i](typo_écriture_épicène_ceux_celles)__
    c[./·⋅–—-]?eux?[./·⋅–—-]elles
    <<- option("typo") ->> ceux et celles|celles et ceux                                            # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: avec {{ceux.elles}} qui viendront                                 ->> ceux et celles|celles et ceux


__[u](typo_écriture_épicène_pluriel_eur_divers)__
    ({w_2})eurs?[.(/·⋅–—-][tdp]?(rice|euse|se|[oe]resse)[.)/·⋅–—-]?s  @@0,**
    <<- option("typo") and \2 != "se" ->> \1eurs et \1\2s|\1\2s et \1eurs                           # Écriture épicène dystypographique et imprononçable.
    <<- option("typo") and \2 == "se" ->> \1eurs et \1euses|\1euses et \1eurs                       # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: travaillons avec les {{instituteur.trice.s}}                          ->> instituteurs et institutrices|institutrices et instituteurs
TEST: La communauté des {{développeur·se·s}} open source                    ->> développeurs et développeuses|développeuses et développeurs


__[u](typo_écriture_épicène_pluriel_eux_euses)__
    ({w_2})eux[.(/·⋅–—-](?:[tdsi]?euse|se)[.)/·⋅–—-]?s  @@0
    <<- option("typo") ->> \1eux et \1euses|\1euses et \1eux                                        # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{nombreux·ses}} sont les profs qui s’indignent de cette situation.   ->> nombreux et nombreuses|nombreuses et nombreux


__[u](typo_écriture_épicène_pluriel_aux_ales)__
    ({w_2})aux[.(/·⋅–—-][tnmcpbd]?ale[.)/·⋅–—-]?s  @@0
    <<- option("typo") ->> \1aux et \1ales|\1ales et \1aux|\1al·e·s                                 # Écriture épicène dystypographique et imprononçable. Pour ce cas, il peut être intéressant de faire comme si le pluriel masculin était régulier, ce qui rend l’ensemble prononçable…
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{locaux·ales}}                                                   ->> locaux et locales|locales et locaux|local·e·s


__[u](typo_écriture_épicène_pluriel_er_ère)__
    ({w_2})ers?[.(/·⋅–—-]i?è?re[.)/·⋅–—-]?s  @@0
    <<- option("typo") ->> \1ers et \1ères|\1ères et \1ers                                          # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: les {{conseiller.ière.s}}                                         ->> conseillers et conseillères|conseillères et conseillers


__[u](typo_écriture_épicène_pluriel_if_ive)__
    ({w_2})ifs?[.(/·⋅–—-][std]?i?ve[.)/·⋅–—-]?s  @@0
    <<- option("typo") ->> \1ifs et \1ives|\1ives et \1ifs                                          # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{inclusif.ive.s}}                                                ->> inclusifs et inclusives|inclusives et inclusifs
TEST: {{offensif.ve.s}}                                                 ->> offensifs et offensives|offensives et offensifs


__[u](typo_écriture_épicène_pluriel_e)__
    ({w_1}[éuitsrnldf])[-·–—.⋅(/]([ntlf]?e)[-·–—.⋅)/]?s  @@0,**
    <<- ~>> =normalizeInclusiveWriting(\0)
    <<- option("typo") and not \0.endswith("les") >>>
    <<- \1.endswith("s") and not \0.endswith("·e·s")
    ->> \1 et \1\2s|\1\2s et \1|\1·\2·s                                                             # Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.
    <<- __else__ and not \0.endswith("e·s")
    ->> \1s et \1\2s|\1\2s et \1s|\1·\2·s                                                           # Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.

TEST: nous sommes {{déconsidéré-e-s}}.
TEST: serons-nous toujours {{perdu.e.s}}.
................................................................................
TEST: rendez-vous avec des {{écrivain(e)s}}                             ->> écrivains et écrivaines|écrivaines et écrivains|écrivain·e·s
TEST: Avec les {{Berlinois.e.s}}                                        ->> Berlinois et Berlinoises|Berlinoises et Berlinois|Berlinois·e·s
TEST: la graphie “{{militant(e)s}}”.
TEST: ces militant·e·s {{acharné}}.
TEST: chez les {{immortel.le.s}}


__[i](typo_écriture_épicène_singulier)__
    ({w_1}[éuitsrnldf])(?:[-·–—.⋅/]e|[(]e[)])  @@0
    <<- option("typo") and (\1 == "un" or \1 == "Un") ->> un ou une|une ou un                       # Écriture épicène imprononçable. Préférez écrire lisiblement.
    <<- __else__ and option("typo") and not \0.endswith("·e") ->> \1·e                              # Écriture épicène. Utilisez un point médian.
    <<- ~>> \1-e

TEST: je suis {{déconsidéré.e}} par ma hiérarchie.
TEST: il faut en parler à l’{{auteur(e)}} et à son agent.


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

TEST: année {{2O11}}                                                      ->> 2011
TEST: {{3O}} (chiffre avec un O).                                         ->> 30


!!!! Écritures épicènes invariables                                                               !!

__[i](d_typo_écriture_épicène_pluriel)__
    ({w_1}[éuitsrn])_(?:[nt]|)e_s  @@0
    <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, [":N:A:Q:e:p"])

__[i](d_typo_écriture_épicène_singulier)__
    ({w_2}[éuitsrn])_e  @@0
    <<- morph(\1, ":[NAQ]") =>> define(\1, [":N:A:Q:e:s"])


!!!
!!!
!!! Processeur: épuration des signes inutiles et quelques simplifications                         !!







|










>







 







>







 







>







 







>







 







|
|
|





|
|
|





|
|
|
|






|
|
|





|
|
|





|
|
|





|
|
|






|
|

|







 







|
|
|
|







 







|



|







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
...
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
...
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
...
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
...
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
...
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
....
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531

!!
!!
!! Options                                                                                        !!
!!
!!

OPTGROUP/basic: typo apos eepi, esp tab, nbsp unit, tu maj, num virg, nf poncfin, ocr chim, liga mapos
OPTGROUP/gramm: conf sgpl gn
OPTGROUP/verbs: infi conj ppas, imp inte vmode
OPTGROUP/style: bs pleo, redon1 redon2, neg
OPTGROUP/misc: date mc
OPTGROUP/debug: idrule

# Names of options is used in dictionaries keys: dOptPython, dOptJavaScript, etc.
OPTSOFTWARE:        Python      Server      Writer      JavaScript  Firefox     Thunderbird
OPT/typo:           True        True        True        True        True        True
OPT/apos:           True        True        True        True        True        True
OPT/eepi:           True        True        True        True        True        True
OPT/esp:            True        True        True        False       False       False
OPT/tab:            False       True        False       False       False       False
OPT/nbsp:           True        True        True        False       False       False
OPT/tu:             True        True        True        True        True        True
OPT/maj:            True        True        True        True        True        True
OPT/num:            True        True        True        True        True        True
OPT/virg:           True        True        True        True        True        True
................................................................................
COLOR/bleu_vif:     210,100,30
COLOR/vert_vif:     120,100,30
COLOR/cyan_vif:     180,100,40

OPTCOLORTHEME:      Default     Writer
OPTCOLOR/typo:      orange      orange_vif
OPTCOLOR/apos:      orange2     orange2_vif
OPTCOLOR/eepi:      orange2     orange2_vif
OPTCOLOR/esp:       orange      orange_vif
OPTCOLOR/tab:       orange      orange_vif
OPTCOLOR/nbsp:      orange      orange_vif
OPTCOLOR/tu:        orange      orange_vif
OPTCOLOR/maj:       orange      orange_vif
OPTCOLOR/num:       orange      orange_vif
OPTCOLOR/virg:      orange      orange_vif
................................................................................
OPTDEFAULTUILANG: fr_FR

# Labels
OPTLANG/fr_FR:      Grammalecte (Français)
OPTLABEL/basic:     Typographie
OPTLABEL/typo:      Signes typographiques
OPTLABEL/apos:      Apostrophe typographique|Correction des apostrophes droites. Automatisme possible dans le menu Outils > Options d’autocorrection > Options linguistiques > Guillemets simples > Remplacer (à cocher)
OPTLABEL/eepi:      Écriture épicène|Normalisation de l’écriture épicène avec points médians.
OPTLABEL/esp:       Espaces surnuméraires|Signale les espaces inutiles entre les mots, en début et en fin de ligne.
OPTLABEL/tab:       Tabulations surnuméraires|Signale les tabulations inutiles en début et en fin de ligne.
OPTLABEL/nbsp:      Espaces insécables|Vérifie les espaces insécables avec les ponctuations « ! ? : ; » (à désactiver si vous utilisez une police Graphite)
OPTLABEL/maj:       Majuscules|Vérifie l’utilisation des majuscules et des minuscules (par exemple, « la raison d’État », « les Européens »).
OPTLABEL/virg:      Virgules|Virgules manquantes avant “mais”, “car” et “etc.”.
OPTLABEL/poncfin:   Ponctuation finale [!]|Vérifie s’il manque une ponctuation finale au paragraphe (seulement pour les paragraphes constitués de plusieurs phrases).
OPTLABEL/tu:        Traits d’union|Cherche les traits d’union manquants ou inutiles.
................................................................................
OPTLABEL/idrule:    Identifiant des règles de contrôle [!]|Affiche l’identifiant de la règle de contrôle dans les messages d’erreur.


OPTLANG/en_US:      Grammar checking (French)
OPTLABEL/basic:     Typography
OPTLABEL/typo:      Typographical glyphs
OPTLABEL/apos:      Typographical apostrophe|Detects typewriter apostrophes. You may get automatically typographical apostrophes in Tools > Autocorrect options > Localized options > Single quote > Replace (checkbox).
OPTLABEL/eepi:      Epicene writing|Normalization of epicene writing (usage of middle dots).
OPTLABEL/esp:       Useless spaces|Checks spaces within words and at the beginning and the end of lines.
OPTLABEL/tab:       Useless tabulations|Checks tabulations at the beginning and the end of lines.
OPTLABEL/nbsp:      Non-breakable spaces|Checks the use of non-breakable spaces with the following punctuation marks: « ! ? : ; » (deactivate it if you use a Graphite font).
OPTLABEL/maj:       Capitals|Checks the use of uppercase and lowercase letters (i.e. « la raison d’État », « les Européens »).
OPTLABEL/virg:      Commas|Missing commas before “mais”, “car” and “etc.”.
OPTLABEL/poncfin:   Ending punctuation [!]|Checks if an ending punctuation is missing on paragraphs (only for multi-sentences paragraphs).
OPTLABEL/tu:        Hyphens|Checks missing or useless hyphens.
................................................................................
!!!! Écritures épicènes dystypographiques                                                         !!
!!
!!

# (attention aux modifs: brainfuck d’intensité non négligeable)
# La désambiguïsation est faite lors de la deuxième passe

__[i](eepi_écriture_épicène_tous_toutes)__
    tous?[.(/·⋅–—-]te[.)/·⋅–—-]?s
    <<- option("eepi") ->> tous et toutes|toutes et tous                                            # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{tou.tes}} sont là.                                              ->> tous et toutes|toutes et tous


__[i](eepi_écriture_épicène_ceux_celles)__
    c[./·⋅–—-]?eux?[./·⋅–—-]elles
    <<- option("eepi") ->> ceux et celles|celles et ceux                                            # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: avec {{ceux.elles}} qui viendront                                 ->> ceux et celles|celles et ceux


__[u](eepi_écriture_épicène_pluriel_eur_divers)__
    ({w_2})eurs?[.(/·⋅–—-][tdp]?(rice|euse|se|[oe]resse)[.)/·⋅–—-]?s  @@0,**
    <<- option("eepi") and \2 != "se" ->> \1eurs et \1\2s|\1\2s et \1eurs                           # Écriture épicène dystypographique et imprononçable.
    <<- option("eepi") and \2 == "se" ->> \1eurs et \1euses|\1euses et \1eurs                       # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: travaillons avec les {{instituteur.trice.s}}                          ->> instituteurs et institutrices|institutrices et instituteurs
TEST: La communauté des {{développeur·se·s}} open source                    ->> développeurs et développeuses|développeuses et développeurs


__[u](eepi_écriture_épicène_pluriel_eux_euses)__
    ({w_2})eux[.(/·⋅–—-](?:[tdsi]?euse|se)[.)/·⋅–—-]?s  @@0
    <<- option("eepi") ->> \1eux et \1euses|\1euses et \1eux                                        # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{nombreux·ses}} sont les profs qui s’indignent de cette situation.   ->> nombreux et nombreuses|nombreuses et nombreux


__[u](eepi_écriture_épicène_pluriel_aux_ales)__
    ({w_2})aux[.(/·⋅–—-][tnmcpbd]?ale[.)/·⋅–—-]?s  @@0
    <<- option("eepi") ->> \1aux et \1ales|\1ales et \1aux|\1al·e·s                                 # Écriture épicène dystypographique et imprononçable. Pour ce cas, il peut être intéressant de faire comme si le pluriel masculin était régulier, ce qui rend l’ensemble prononçable…
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{locaux·ales}}                                                   ->> locaux et locales|locales et locaux|local·e·s


__[u](eepi_écriture_épicène_pluriel_er_ère)__
    ({w_2})ers?[.(/·⋅–—-]i?è?re[.)/·⋅–—-]?s  @@0
    <<- option("eepi") ->> \1ers et \1ères|\1ères et \1ers                                          # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: les {{conseiller.ière.s}}                                         ->> conseillers et conseillères|conseillères et conseillers


__[u](eepi_écriture_épicène_pluriel_if_ive)__
    ({w_2})ifs?[.(/·⋅–—-][std]?i?ve[.)/·⋅–—-]?s  @@0
    <<- option("eepi") ->> \1ifs et \1ives|\1ives et \1ifs                                          # Écriture épicène dystypographique et imprononçable.
    <<- ~>> =normalizeInclusiveWriting(\0)

TEST: {{inclusif.ive.s}}                                                ->> inclusifs et inclusives|inclusives et inclusifs
TEST: {{offensif.ve.s}}                                                 ->> offensifs et offensives|offensives et offensifs


__[u](eepi_écriture_épicène_pluriel_e)__
    ({w_1}[éuitsrnldf])[-·–—.⋅(/]([ntlf]?e)[-·–—.⋅)/]?s  @@0,**
    <<- ~>> =normalizeInclusiveWriting(\0)
    <<- option("eepi") and not \0.endswith("les") >>>
    <<- \1.endswith("s") and not \0.endswith("·e·s")
    ->> \1 et \1\2s|\1\2s et \1|\1·\2·s                                                             # Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.
    <<- __else__ and not \0.endswith("e·s")
    ->> \1s et \1\2s|\1\2s et \1s|\1·\2·s                                                           # Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians.

TEST: nous sommes {{déconsidéré-e-s}}.
TEST: serons-nous toujours {{perdu.e.s}}.
................................................................................
TEST: rendez-vous avec des {{écrivain(e)s}}                             ->> écrivains et écrivaines|écrivaines et écrivains|écrivain·e·s
TEST: Avec les {{Berlinois.e.s}}                                        ->> Berlinois et Berlinoises|Berlinoises et Berlinois|Berlinois·e·s
TEST: la graphie “{{militant(e)s}}”.
TEST: ces militant·e·s {{acharné}}.
TEST: chez les {{immortel.le.s}}


__[i](eepi_écriture_épicène_singulier)__
    ({w_1}[éuitsrnldf])(?:[-·–—.⋅/]e|[(]e[)])  @@0
    <<- option("eepi") and (\1 == "un" or \1 == "Un") ->> un ou une|une ou un                       # Écriture épicène imprononçable. Préférez écrire lisiblement.
    <<- __else__ and option("eepi") and not \0.endswith("·e") ->> \1·e                              # Écriture épicène. Utilisez un point médian.
    <<- ~>> \1-e

TEST: je suis {{déconsidéré.e}} par ma hiérarchie.
TEST: il faut en parler à l’{{auteur(e)}} et à son agent.


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

TEST: année {{2O11}}                                                      ->> 2011
TEST: {{3O}} (chiffre avec un O).                                         ->> 30


!!!! Écritures épicènes invariables                                                               !!

__[i](d_eepi_écriture_épicène_pluriel)__
    ({w_1}[éuitsrn])_(?:[nt]|)e_s  @@0
    <<- morph(\1, ":[NAQ]", ":G") =>> define(\1, [":N:A:Q:e:p"])

__[i](d_eepi_écriture_épicène_singulier)__
    ({w_2}[éuitsrn])_e  @@0
    <<- morph(\1, ":[NAQ]") =>> define(\1, [":N:A:Q:e:s"])


!!!
!!!
!!! Processeur: épuration des signes inutiles et quelques simplifications                         !!