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
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 = {  
    ':G': "",
    ':N': " nom,",
    ':A': " adjectif,",
    ':M1': " prénom,",
    ':M2': " patronyme,",
    ':MP': " nom propre,",
    ':W': " adverbe,",
    ':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"),
    ':X': " adverbe de négation,",
    ':U': " adverbe interrogatif,",
    ':J': " interjection,",
    ':B': " nombre,",
    ':T': " titre,",
    ':J': (" interjection,", "Interjection"),
    ':B': (" nombre,", "Nombre"),
    ':T': (" titre,", "Titre de civilité"),

    ':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,",
    ':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"),
    ':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.),",
    

    ':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"),

    ':Ŵ': " 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.),",
    ':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)"),
    ':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é,",

    ':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)"),
    
    ':Ip': " présent,",
    ':Iq': " imparfait,",
    ':Is': " passé simple,",
    ':If': " futur,",
    ':K': " conditionnel présent,",
    ':Sp': " subjonctif présent,",
    ':Sq': " subjonctif imparfait,",
    ':E': " impératif,",
    ':Ñ': (" 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)"),

    ':1s': " 1ʳᵉ p. sg.,",
    ':': " présent interr. 1ʳᵉ p. sg.,",
    ':Zp': (" préfixe,", "Préfixe"),
    ':1ś': " présent interr. 1ʳᵉ p. sg.,",
    ':2s': " 2ᵉ p. sg.,",
    ':Zs': (" suffixe,", "Suffixe"),
    ':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)",
    ';S': (" : symbole (unité de mesure)", "Symbole (unité de mesure)"),

    '/*': "",
    '/C': " {classique}",
    '/M': "",
    '/R': " {réforme}",
    '/A': "",
    '/X': ""
    '/*': ("", "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
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)))
            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:], "[?]"))