#include <FSARep.h>
Public Member Functions | |
FSARep * | clone () const |
void | fold (const set< int > *candidates=NULL, list< FoldDetails > *details=NULL) |
Fold a FSA. Outputs details of the fold, that will allow to unfold latter. Argument candidates is a list of vertices to check for fold (all others won't be checked). If candidates=NULL then all vertices will be checked. | |
void | pinch (int state1, int state2) |
Pinch two vertices. | |
void | unfold (const list< FoldDetails > &details) |
Unfold 2 vertices using details of the previous fold. | |
void | liftup (const list< FoldDetails > &details, list< FSAEdge > &path, int init_state) |
Function allows to lift a path in the folded FSA up to unfolded one. | |
int | newState () |
Add a new state to a FSA. | |
void | eraseState (int state) |
Erase a state from a FSA. | |
void | newEdge (int state1, int state2, int label) |
Add a new edge to a FSA. | |
void | eraseEdge (int state1, int state2, int label) |
Erase an edge from a FSA. | |
template<class ConstIntIterator > | |
void | addLoop (int vert, ConstIntIterator F, ConstIntIterator L) |
Add a loop to a FSA at a vertex vert labelled with [F,L). | |
template<class ConstIntIterator > | |
void | addRay (int vert, ConstIntIterator F, ConstIntIterator L) |
Add a ray to a FSA at a vertex vert labelled with [F,L). | |
void | addFSA (int vert1, int vert2, const FSARep &fsa) |
not implemented yet | |
const map< int, FSAState > & | getStates () const |
map< int, FSAState > & | getStates () |
void | makeInitial (int s) |
void | makeTerminal (int s) |
void | makeNonInitial (int s) |
void | makeNonTerminal (int s) |
const set< int > & | getInitStates () const |
const set< int > & | getTermStates () const |
Private Types | |
typedef FSAState::edge_type | edge_type |
Private Member Functions | |
FSARep () | |
Private Attributes | |
map< int, FSAState > | theStates |
int | maxState |
set< int > | initStates |
set< int > | termStates |
Friends | |
class | FSA |
Definition at line 106 of file FSARep.h.
typedef FSAState::edge_type FSARep::edge_type [private] |
FSARep::FSARep | ( | ) | [private] |
Referenced by clone().
void FSARep::addFSA | ( | int | vert1, | |
int | vert2, | |||
const FSARep & | fsa | |||
) | [inline] |
void FSARep::addLoop | ( | int | vert, | |
ConstIntIterator | F, | |||
ConstIntIterator | L | |||
) | [inline] |
Add a loop to a FSA at a vertex vert labelled with [F,L).
Definition at line 169 of file FSARep.h.
References newEdge(), and newState().
Referenced by FSA::addLoop().
void FSARep::addRay | ( | int | vert, | |
ConstIntIterator | F, | |||
ConstIntIterator | L | |||
) | [inline] |
Add a ray to a FSA at a vertex vert labelled with [F,L).
Definition at line 186 of file FSARep.h.
References newEdge(), and newState().
Referenced by FSA::addRay().
FSARep* FSARep::clone | ( | ) | const [inline] |
void FSARep::eraseEdge | ( | int | state1, | |
int | state2, | |||
int | label | |||
) |
Erase an edge from a FSA.
void FSARep::eraseState | ( | int | state | ) |
Erase a state from a FSA.
void FSARep::fold | ( | const set< int > * | candidates = NULL , |
|
list< FoldDetails > * | details = NULL | |||
) |
Fold a FSA. Outputs details of the fold, that will allow to unfold latter. Argument candidates is a list of vertices to check for fold (all others won't be checked). If candidates=NULL then all vertices will be checked.
const set< int >& FSARep::getInitStates | ( | ) | const [inline] |
Definition at line 212 of file FSARep.h.
References initStates.
map< int , FSAState >& FSARep::getStates | ( | ) | [inline] |
const map< int , FSAState >& FSARep::getStates | ( | ) | const [inline] |
const set< int >& FSARep::getTermStates | ( | ) | const [inline] |
Definition at line 213 of file FSARep.h.
References termStates.
void FSARep::liftup | ( | const list< FoldDetails > & | details, | |
list< FSAEdge > & | path, | |||
int | init_state | |||
) |
Function allows to lift a path in the folded FSA up to unfolded one.
void FSARep::makeInitial | ( | int | s | ) | [inline] |
Definition at line 208 of file FSARep.h.
References initStates.
void FSARep::makeNonInitial | ( | int | s | ) | [inline] |
Definition at line 210 of file FSARep.h.
References initStates.
void FSARep::makeNonTerminal | ( | int | s | ) | [inline] |
Definition at line 211 of file FSARep.h.
References termStates.
void FSARep::makeTerminal | ( | int | s | ) | [inline] |
Definition at line 209 of file FSARep.h.
References termStates.
void FSARep::newEdge | ( | int | state1, | |
int | state2, | |||
int | label | |||
) |
void FSARep::pinch | ( | int | state1, | |
int | state2 | |||
) |
Pinch two vertices.
void FSARep::unfold | ( | const list< FoldDetails > & | details | ) |
Unfold 2 vertices using details of the previous fold.
set< int > FSARep::initStates [private] |
Definition at line 230 of file FSARep.h.
Referenced by getInitStates(), makeInitial(), and makeNonInitial().
int FSARep::maxState [private] |
set< int > FSARep::termStates [private] |
Definition at line 232 of file FSARep.h.
Referenced by getTermStates(), makeNonTerminal(), and makeTerminal().
map< int , FSAState > FSARep::theStates [private] |
Definition at line 225 of file FSARep.h.
Referenced by getStates().