Collatinus  11.3
modele.h
Aller à la documentation de ce fichier.
1 /* modele.h
2  *
3  * This file is part of COLLATINUS.
4  *
5  * COLLATINUS is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * COLLATINVS is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with COLLATINUS; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * © Yves Ouvrard, 2009 - 2016
20  */
21 
22 #ifndef MODELE_H
23 #define MODELE_H
24 
25 #include <QList>
26 #include <QMultiMap>
27 #include <QString>
28 #include <QStringList>
29 #include <QtCore>
30 
31 #include <QDebug>
32 
33 #include "ch.h"
34 #include "lemCore.h"
35 
36 class LemCore;
37 class Modele;
38 
42 class Desinence : public QObject
43 {
44  Q_OBJECT
45  private:
46  QString _gr;
47  QString _grq;
48  int _morpho;
50  int _numR;
51  int _rarete;
53  public:
54  Desinence(QString d, int morph, int nr, Modele *parent = 0);
55  QString gr();
56  QString grq();
57  int rarete();
58  Modele *modele();
59  int morphoNum();
60  int numRad();
61  void setModele(Modele *m);
62 };
63 
67 class Modele : public QObject
68 {
69  Q_OBJECT
70  private:
71  QList<int> _absents;
72  QStringList static const cles;
73  QMultiMap<int, Desinence *> _desinences;
74  QMap<int, QString> _genRadicaux;
75  QString _gr;
76 // QString _grq;
79  QChar _pos;
80  QString _suf;
82  public:
83  Modele(QStringList ll, LemCore *parent = 0);
84  bool absent(int a);
85  QList<int> absents();
86  QList<int> clesR();
88  bool deja(int m);
89  QList<Desinence *> desinences(int d);
90  QList<Desinence *> desinences();
91  bool estUn(QString m);
92  QString genRadical(int r);
93  QString gr();
94 // QString grq();
95  static QList<int> listeI(QString l);
96  QList<int> morphos();
97  QChar pos();
98 };
99 
100 #endif
QList< int > morphos()
Liste des numéros des désinences définies par le modèle.
Definition: modele.cpp:488
QMap< int, QString > _genRadicaux
Générateurs des radicaux du modèle.
Definition: modele.h:74
QString _gr
voir Desinence::gr
Definition: modele.h:46
int morphoNum()
Numéro de morpho de la désinence.
Definition: modele.cpp:101
int _rarete
voir Desinence::rarete
Definition: modele.h:51
QList< int > absents()
Retourne la liste des numéros des morphos absentes.
Definition: modele.cpp:366
Modele * _modele
voir Desinence::modele
Definition: modele.h:49
static QList< int > listeI(QString l)
conversion d'une chaine de caractère en liste d'entiers
Definition: modele.cpp:464
void setModele(Modele *m)
Attribue un modèle à la désinence.
Definition: modele.cpp:148
QChar _pos
POS associé au modèle.
Definition: modele.h:79
Desinence * clone(Desinence *d)
Crée une Désinence copiée sur la désinence d.
Definition: modele.cpp:379
Modele(QStringList ll, LemCore *parent=0)
Constructeur de la classe modèle.
Definition: modele.cpp:171
Desinence(QString d, int morph, int nr, Modele *parent=0)
Constructeur de la classe Desinence.
Definition: modele.cpp:55
QList< int > _absents
Liste des morphos absentes du modèle.
Definition: modele.h:71
Modele * _pere
Un pointeur vers le père du modèle.
Definition: modele.h:78
QChar pos()
Retourne la catégorie du modèle, en utilisant les ancêtres du modèle.
Definition: modele.cpp:495
QList< int > clesR()
Liste des numéros de radicaux utilisés, et rangés dans la map _genRadicaux.
Definition: modele.cpp:373
QString _grq
voir Desinence::grq
Definition: modele.h:47
LemCore * _lemCore
Un pointeur vers le noyau de lemmatisation.
Definition: modele.h:77
QList< Desinence * > desinences()
Renvoie toutes les désinences du modèle.
Definition: modele.cpp:403
QString _gr
Nom du modèle.
Definition: modele.h:75
static QStringList const cles
ensemble des clefs utilisées dans la descriptions des modèles
Definition: modele.h:72
La classe Modele contient les désinences associées aux paradigmes de flexion.
Definition: modele.h:67
int _numR
voir Desinence::numRad
Definition: modele.h:50
QString _suf
Suffixe à ajouter aux désinences du père.
Definition: modele.h:80
bool estUn(QString m)
Renvoie true si le modèle se nomme m, ou si l'un de ses ancêtres se nomme m.
Definition: modele.cpp:410
Modele * modele()
Modèle de la désinence.
Definition: modele.cpp:95
bool deja(int m)
Renvoie true si le modèle a déjà une désinence avec la morpho de rang m.
Definition: modele.cpp:391
QMultiMap< int, Desinence * > _desinences
Liste des désinences du modèle.
Definition: modele.h:73
QString grq()
Graphie ramiste avec quantités.
Definition: modele.cpp:88
QString genRadical(int r)
générateur d'un radical
Definition: modele.cpp:441
QString gr()
Graphie de la désinence, ramiste et sans quantités.
Definition: modele.cpp:82
La classe LemCore est le noyau de lemmatisation.
Definition: lemCore.h:118
QString gr()
Nom du modèle.
Definition: modele.cpp:421
La classe Desinence décrit les désinences associées aux modèles.
Definition: modele.h:42
int numRad()
Numéro de radical de la désinence.
Definition: modele.cpp:111
bool absent(int a)
Renvoie true si la morpho de rang a n'existe pas dans le modèle.
Definition: modele.cpp:360
int _morpho
voir Desinence::morphoNum
Definition: modele.h:48
int rarete()
accesseur de la rareté
Definition: modele.cpp:137