trafi

Transducteurs finis
git clone git://git.asteride.xyz/trafi.git
Journaux | Fichiers | Références

att.h (1291B)


      1 #ifndef ATT_H
      2 #define ATT_H
      3 
      4 #include <stdio.h>
      5 
      6 #include "tfm.h"
      7 
      8 /* Le format .att est composé de lignes et de champs. Les champs d’une même
      9  * ligne sont séparés par un caractère de tabulation. Il existe deux types de
     10  * lignes: l’un déclare une transition, l’autre un état comme final. On les
     11  * distingue selon le nombre de champs que contient la ligne. Les lignes du
     12  * premier type comptent quatre champs, qui sont: l’identifiant de l’état
     13  * source, l’identifiant de l’état destination, le symbole d’entrée et le
     14  * symbole de sortie. Par exemple:
     15  *
     16  *     0	1	ᵘ	u
     17  *
     18  * Certains symboles sont interprétés différemment par foma. La présente mise en
     19  * œuvre reconnaît @0@ comme le symbole epsilon (ε), @_IDENTITY_SYMBOL_@ et
     20  * @_UNKNOWN_SYMBOL_@.
     21  *
     22  * Les lignes du deuxième type ne comptent qu’un seul champ, qu’occupe
     23  * l’identifiant d’un état à déclarer comme final. Par exemple:
     24  *
     25  *     1
     26  */
     27 
     28 /* Lire le fichier f au format .att.
     29  * Initialise et renvoie un transducteur au format struct tfm, ou NULL en cas
     30  * d’erreur. */
     31 struct tfm *att_lire(FILE *f);
     32 
     33 /* Écrire une représentation .att du transducteur tfm dans le fichier f.
     34  * Renvoie 0, ou -1 en cas d’erreur. */
     35 int att_ecrire(FILE *f, struct tfm *tfm);
     36 
     37 #endif