Grammalecte  Diff

Differences From Artifact [75ede82f17]:

To Artifact [5e53113f51]:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

41
42
43

44
45
46
47
48
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









75
76
77
78
79
80
81
82
83



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Grammalecte - Lexicographe
# License: MPL 2


import re
import traceback


_dTAGS = {  
    ':G': "",
    ':N': " nom,",
    ':A': " adjectif,",
    ':M1': " prénom,",
    ':M2': " patronyme,",
    ':MP': " nom propre,",
    ':W': " adverbe,",
    ':X': " adverbe de négation,",
    ':U': " adverbe interrogatif,",
    ':J': " interjection,",
    ':B': " nombre,",
    ':T': " titre,",

    ':R': " préposition,",



    ':Rv': " préposition verbale,",
    ':D': " déterminant,",
    ':Dd': " déterminant démonstratif,",
    ':De': " déterminant exclamatif,",
    ':Dp': " déterminant possessif,",
    ':Di': " déterminant indéfini,",
    ':Dn': " déterminant négatif,",
    ':Od': " pronom démonstratif,",
    ':Oi': " pronom indéfini,",
    ':On': " pronom indéfini négatif,",
    ':Ot': " pronom interrogatif,",
    ':Or': " pronom relatif,",
    ':Ow': " pronom adverbial,",
    ':Os': " pronom personnel sujet,",
    ':Oo': " pronom personnel objet,",
    ':C': " conjonction,",
    ':Ĉ': " conjonction (él.),",

    ':Cc': " conjonction de coordination,",
    ':Cs': " conjonction de subordination,",
    ':Ĉs': " conjonction de subordination (él.),",

    
    ':Ŵ': " locution adverbiale (él.),",
    ':Ñ': " locution nominale (él.),",
    ':Â': " locution adjectivale l.),",
    ':': " locution verbale (él.),",
    ':Ŕ': " locution prépositive (él.),",
    ':Ĵ': " locution interjective (él.),",

    ':Zp': " préfixe,",
    ':Zs': " suffixe,",

    ':V1': " verbe (1ʳ gr.),",
    ':V2': " verbe (2ᵉ gr.),",
    ':V3': " verbe (3ᵉ gr.),",
    ':V0e': " verbe,",
    ':V0a': " verbe,",

    ':O1': " 1ʳᵉ pers.,",


    ':O2': " 2ᵉ pers.,",

    ':O3': " 3ᵉ pers.,",
    
    ':e': " épicène",

    ':m': " masculin",
    ':f': " féminin",
    ':s': " singulier",
    ':p': " pluriel",
    ':i': " invariable",

    ':Y': " infinitif,",
    ':P': " participe présent,",
    ':Q': " participe passé,",










    ':Ip': " présent,",
    ':Iq': " imparfait,",
    ':Is': " passé simple,",
    ':If': " futur,",
    ':K': " conditionnel présent,",
    ':Sp': " subjonctif présent,",
    ':Sq': " subjonctif imparfait,",
    ':E': " impératif,",




    ':1s': " 1ʳᵉ p. sg.,",
    ':': " présent interr. 1ʳᵉ p. sg.,",
    ':1ś': " présent interr. 1ʳᵉ p. sg.,",
    ':2s': " 2ᵉ p. sg.,",
    ':3s': " 3ᵉ p. sg.,",
    ':1p': " 1ʳᵉ p. pl.,",
    ':2p': " 2ᵉ p. pl.,",
    ':3p': " 3ᵉ p. pl.,",
    ':3p!': " 3ᵉ p. pl.,",

    ';S': " : symbole (unité de mesure)",

    '/*': "",
    '/C': " {classique}",
    '/M': "",
    '/R': " {réforme}",
    '/A': "",
    '/X': ""
}

_dPFX = {
    'd': "(de), déterminant épicène invariable",
    'l': "(le/la), déterminant masculin/féminin singulier",
    'j': "(je), pronom personnel sujet, 1ʳᵉ pers., épicène singulier",
    'm': "(me), pronom personnel objet, 1ʳᵉ pers., épicène singulier",









<
|
|
|
|
|
|
<
<
|
|
|

|
>
>
>
|
|
|
|
|
|
|
|
<
|
|
|
|
|
|
|
|
>
|
|
|
>
|
<
<
|
|
|
|
|
|
|
|
|
<
<
<
<

|
>
>
|
>
|
|
|
>
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
|
<
<
<
<
<
|
|
|
>
>
>

<
|
<
|
<
<
<
<
<

|

|
|
|
|
|
|







1
2
3
4
5
6
7
8
9

10
11
12
13
14
15


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

32
33
34
35
36
37
38
39
40
41
42
43
44
45


46
47
48
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
75
76
77
78
79
80
81
82
83





84
85
86
87
88
89
90

91

92





93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Grammalecte - Lexicographe
# License: MPL 2


import re
import traceback


_dTAGS = {  

    ':N': (" nom,", "Nom"),
    ':A': (" adjectif,", "Adjectif"),
    ':M1': (" prénom,", "Prénom"),
    ':M2': (" patronyme,", "Patronyme, matronyme, nom de famille…"),
    ':MP': (" nom propre,", "Nom propre"),
    ':W': (" adverbe,", "Adverbe"),


    ':J': (" interjection,", "Interjection"),
    ':B': (" nombre,", "Nombre"),
    ':T': (" titre,", "Titre de civilité"),

    ':e': (" épicène", "épicène"),
    ':m': (" masculin", "masculin"),
    ':f': (" féminin", "féminin"),
    ':s': (" singulier", "singulier"),
    ':p': (" pluriel", "pluriel"),
    ':i': (" invariable", "invariable"),

    ':V1': (" verbe (1ᵉʳ gr.),", "Verbe du 1ᵉʳ groupe"),
    ':V2': (" verbe (2ᵉ gr.),", "Verbe du 2ᵉ groupe"),
    ':V3': (" verbe (3ᵉ gr.),", "Verbe du 3ᵉ groupe"),
    ':V0e': (" verbe,", "Verbe auxiliaire être"),
    ':V0a': (" verbe,", "Verbe auxiliaire avoir"),


    ':Y': (" infinitif,", "Infinitif"),
    ':P': (" participe présent,", "Participe présent"),
    ':Q': (" participe passé,", "Participe passé"),

    ':Ip': (" présent,", "Indicatif présent"),
    ':Iq': (" imparfait,", "Indicatif imparfait"),
    ':Is': (" passé simple,", "Indicatif passé simple"),
    ':If': (" futur,", "Indicatif futur"),
    ':K': (" conditionnel présent,", "Conditionnel présent"),
    ':Sp': (" subjonctif présent,", "Subjonctif présent"),
    ':Sq': (" subjonctif imparfait,", "Subjonctif imparfait"),
    ':E': (" impératif,", "Impératif"),



    ':1s': (" 1ʳᵉ p. sg.,", "Verbe à la 1ʳᵉ personne du singulier"),
    ':': (" présent interr. 1ʳᵉ p. sg.,", "Verbe à la 1ʳᵉ personne du singulier (présent interrogatif)"),
    ':': (" présent interr. 1ʳᵉ p. sg.,", "Verbe à la 1ʳᵉ personne du singulier (présent interrogatif)"),
    ':2s': (" 2ᵉ p. sg.,", "Verbe à la 2ᵉ personne du singulier"),
    ':3s': (" 3ᵉ p. sg.,", "Verbe à la 3ᵉ personne du singulier"),
    ':1p': (" 1ʳᵉ p. pl.,", "Verbe à la 1ʳᵉ personne du pluriel"),
    ':2p': (" 2ᵉ p. pl.,", "Verbe à la 2ᵉ personne du pluriel"),
    ':3p': (" 3ᵉ p. pl.,", "Verbe à la 3ᵉ personne du pluriel"),
    ':3p!': (" 3ᵉ p. pl.,", "Verbe à la 3personne du pluriel (prononciation distinctive)"),





    ':G': ("", "Mot grammatical"),
    ':X': (" adverbe de négation,", "Adverbe de négation"),
    ':U': (" adverbe interrogatif,", "Adverbe interrogatif"),
    ':R': (" préposition,", "Préposition"),
    ':Rv': (" préposition verbale,", "Préposition verbale"),
    ':D': (" déterminant,", "Déterminant"),
    ':Dd': (" déterminant démonstratif,", "Déterminant démonstratif"),
    ':De': (" déterminant exclamatif,", "Déterminant exclamatif"),
    ':Dp': (" déterminant possessif,", "Déterminant possessif"),
    ':Di': (" déterminant indéfini,", "Déterminant indéfini"),
    ':Dn': (" déterminant négatif,", "Déterminant négatif"),
    ':Od': (" pronom démonstratif,", "Pronom démonstratif"),
    ':Oi': (" pronom indéfini,", "Pronom indéfini"),
    ':On': (" pronom indéfini négatif,", "Pronom indéfini négatif"),
    ':Ot': (" pronom interrogatif,", "Pronom interrogatif"),
    ':Or': (" pronom relatif,", "Pronom relatif"),
    ':Ow': (" pronom adverbial,", "Pronom adverbial"),
    ':Os': (" pronom personnel sujet,", "Pronom personnel sujet"),
    ':Oo': (" pronom personnel objet,", "Pronom personnel objet"),
    ':O1': (" 1ʳᵉ pers.,", "Pronom : 1ʳᵉ personne"),
    ':O2': (" 2ᵉ pers.,", "Pronom : 2ᵉ personne"),
    ':O3': (" 3ᵉ pers.,", "Pronom : 3ᵉ personne"),
    ':C': (" conjonction,", "Conjonction"),
    ':Ĉ': (" conjonction (él.),", "Conjonction (élément)"),
    ':Cc': (" conjonction de coordination,", "Conjonction de coordination"),
    ':Cs': (" conjonction de subordination,", "Conjonction de subordination"),
    ':Ĉs': (" conjonction de subordination (él.),", "Conjonction de subordination (élément)"),
    





    ':Ñ': (" locution nominale (él.),", "Locution nominale (élément)"),
    ':Â': (" locution adjectivale (él.),", "Locution adjectivale (élément)"),
    ':': (" locution verbale (él.),", "Locution verbale (élément)"),
    ':Ŵ': (" locution adverbiale (él.),", "Locution adverbiale (élément)"),
    ':Ŕ': (" locution prépositive (él.),", "Locution prépositive (élément)"),
    ':Ĵ': (" locution interjective (él.),", "Locution interjective (élément)"),


    ':Zp': (" préfixe,", "Préfixe"),

    ':Zs': (" suffixe,", "Suffixe"),






    ';S': (" : symbole (unité de mesure)", "Symbole (unité de mesure)"),

    '/*': ("", "sous-dictionnaire <Commun>"),
    '/C': (" <classique>", "sous-dictionnaire <Classique>"),
    '/M': ("", "sous-dictionnaire <Moderne>"),
    '/R': (" <réforme>", "sous-dictionnaire <Réforme 1990>"),
    '/A': ("", "sous-dictionnaire <Annexe>"),
    '/X': ("", "sous-dictionnaire <Contributeurs>")
}

_dPFX = {
    'd': "(de), déterminant épicène invariable",
    'l': "(le/la), déterminant masculin/féminin singulier",
    'j': "(je), pronom personnel sujet, 1ʳᵉ pers., épicène singulier",
    'm': "(me), pronom personnel objet, 1ʳᵉ pers., épicène singulier",
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
            return (["#erreur"], None)

    def formatTags (self, sTags):
        sRes = ""
        sTags = re.sub("(?<=V[1-3])[itpqnmr_eaxz]+", "", sTags)
        sTags = re.sub("(?<=V0[ea])[itpqnmr_eaxz]+", "", sTags)
        for m in self._zTag.finditer(sTags):
            sRes += _dTAGS.get(m.group(0), " [{}]".format(m.group(0)))
        if sRes.startswith(" verbe") and not sRes.endswith("infinitif"):
            sRes += " [{}]".format(sTags[1:sTags.find(" ")])
        return sRes.rstrip(",")

    def _formatSuffix (self, s):
        if s.startswith("t-"):
            return "“t” euphonique +" + _dAD.get(s[2:], "[?]")
        if not "-" in s:
            return _dAD.get(s.replace("’", "'"), "[?]")
        if s.endswith("ous"):
            s += '2'
        nPos = s.find("-")
        return "%s +%s" % (_dAD.get(s[:nPos], "[?]"), _dAD.get(s[nPos+1:], "[?]"))







|













201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
            return (["#erreur"], None)

    def formatTags (self, sTags):
        sRes = ""
        sTags = re.sub("(?<=V[1-3])[itpqnmr_eaxz]+", "", sTags)
        sTags = re.sub("(?<=V0[ea])[itpqnmr_eaxz]+", "", sTags)
        for m in self._zTag.finditer(sTags):
            sRes += _dTAGS.get(m.group(0), " [{}]".format(m.group(0)))[0]
        if sRes.startswith(" verbe") and not sRes.endswith("infinitif"):
            sRes += " [{}]".format(sTags[1:sTags.find(" ")])
        return sRes.rstrip(",")

    def _formatSuffix (self, s):
        if s.startswith("t-"):
            return "“t” euphonique +" + _dAD.get(s[2:], "[?]")
        if not "-" in s:
            return _dAD.get(s.replace("’", "'"), "[?]")
        if s.endswith("ous"):
            s += '2'
        nPos = s.find("-")
        return "%s +%s" % (_dAD.get(s[:nPos], "[?]"), _dAD.get(s[nPos+1:], "[?]"))