// automate-suff.h
// << Algorithmique du texte >>
// Maxime Crochemore, Christophe Hancart et Thierry Lecroq
// Vuibert, 2001.
struct _etiquette {
int position, longueur;
};
typedef struct _etiquette Etiquette;
struct _etat {
int nom;
int sortie;
char terminal;
struct _succ *succ;
struct _etat *parent;
struct _etat *suppleant;
};
typedef struct _etat * Etat;
struct _succ {
Etiquette etiquette;
Etat cible;
struct _succ *suivant;
};
typedef struct _succ * Succ;
struct _automate {
Etat initial;
};
typedef struct _automate * Automate;
#define initial(M) ((M)->initial)
#define ls(q) ((q)->suppleant)
#define parent(q) ((q)->parent)
#define sortie(q) ((q)->sortie)
#define terminal(q) ((q)->terminal)
Etat nouvelEtat();
void fixerCible(Etat etat, Etiquette a, Etat cible);
void oterCible(Etat etat, Etiquette a);
Etat cible(Etat etat, Etiquette a);
Etat cibleParUneLettre(Etat etat, Lettre a, Mot y);
Etiquette etiq(Etat p, Etat q);
Automate nouvelAutomate();
void ecrireEtat(Etat etat);
void ecrireAutomate(Automate automate);