make-compact.h 1.1 KB
/*******************************************************************/
/*                                                                 */
/*  FILE     make-compact.h                                        */
/*  MODULE   make-compact                                          */
/*  PROGRAM  SFST                                                  */
/*  AUTHOR   Helmut Schmid, IMS, University of Stuttgart           */
/*                                                                 */
/*******************************************************************/

#ifndef _MAKE_COMPACT_H_
#define _MAKE_COMPACT_H_

#include "fst.h"
#include "compact.h"


class MakeCompactTransducer : CompactTransducer {
    
private:
  void count_arcs(Node *node, NodeNumbering &index, VType vmark);
  void store_arcs(Node *node, NodeNumbering &index, VType vmark);
  void store_finalp( FILE *file );
  void store_first_arcs( FILE *file );
  void store_target_nodes( FILE *file );
  void store_labels( FILE *file );

public:
  MakeCompactTransducer( Transducer &a, Level sort=upper );

  void sort( Level );
  void store( FILE *file );
};

#endif