commit ec036f403645a3a1821e5a8b84482b74f03083a7
parent 3621f658e066863f66219ae74970faee9f8fda43
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date: Thu, 9 Apr 2026 12:15:06 -0400
Indiquer si les transitions sont triées
Diffstat:
2 fichiers modifiés, 6 insertions(+), 0 suppressions(-)
diff --git a/tfm.c b/tfm.c
@@ -43,6 +43,8 @@ tfm_init(void)
sizeof(char))) == NULL)
goto erreur3;
+ tfm->trie = 1;
+
TFM_COHERENT(tfm);
return tfm;
@@ -91,6 +93,8 @@ tfm_ajt(struct tfm *tfm, size_t es, size_t ed, ssize_t se, ssize_t ss)
/* Mettre à jour l’état. */
tfm->etats[es].trans = itrans;
tfm->etats[es].ntrans++;
+ tfm->etats[es].trie = 0;
+ tfm->trie = 0;
TFM_COHERENT(tfm);
diff --git a/tfm.h b/tfm.h
@@ -24,6 +24,7 @@ struct tfm {
struct etat *etats; /* Liste des états. */
struct trans *trans; /* Liste des transitions. */
char *symbs; /* Liste des symboles. */
+ bool trie; /* Si les transitions de tous les états sont triées. */
};
/* Un état contient l’identifiant de sa première transition sortante, qui est
@@ -35,6 +36,7 @@ struct etat {
size_t trans; /* Liste chaînée de transitions. */
size_t ntrans; /* Nombre de transitions. */
bool final; /* État final? */
+ bool trie; /* Si les transitions sont triées. */
};
/* Les transitions qui partagent un même état source forment une liste chaînée