gate.fsm
Class FSM

java.lang.Object
  |
  +--gate.fsm.FSM
All Implemented Interfaces:
JapeConstants, Serializable

public class FSM
extends Object
implements JapeConstants

This class implements a standard Finite State Machine. It is used for both deterministic and non-deterministic machines.

See Also:
Serialized Form

Field Summary
private  Collection allStates
          The set of states for this FSM
private static boolean DEBUG
          Debug flag
private  State initialState
          The initial state of this FSM.
private  FSM owner
          The top level FSM that contains this FSM, null if this FSM is a top level one.
 
Fields inherited from interface gate.jape.JapeConstants
APPELT_STYLE, BRILL_STYLE, DEFAULT_PRIORITY, FIRST_STYLE, INDENT_PADDING, KLEENE_PLUS, KLEENE_QUERY, KLEENE_STAR, MULTI_SPAN_BINDING, NO_BINDING, NO_KLEENE_OP, SINGLE_SPAN_BINDING
 
Constructor Summary
FSM(FSM owner, Rule rule)
          Builds a FSM starting from a rule.
FSM(FSM owner, SinglePhaseTransducer spt)
          This constructor creates a finite state machine starting from a single phase transducer.
FSM(SinglePhaseTransducer spt)
          Builds a standalone FSM starting from a single phase transducer.
 
Method Summary
protected  void addState(State state)
          Add a new state to the set of states belonging to this FSM.
private  State convertComplexPE(FSM owner, State startState, ComplexPatternElement cpe, LinkedList labels)
          Receives a state to start from and a complex pattern element.
 void eliminateVoidTransitions()
          Converts this FSM from a non-deterministic to a deterministic one by eliminating all the unrestricted transitions.
 String getGML()
          Returns a GML (Graph Modelling Language) representation of the transition graph of this FSM.
 State getInitialState()
          Gets the initial state of this FSM
private  AbstractSet lambdaClosure(AbstractSet s)
           
 String toString()
          Returns a textual description of this FSM.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

DEBUG

private static final boolean DEBUG
Debug flag

initialState

private State initialState
The initial state of this FSM.

allStates

private transient Collection allStates
The set of states for this FSM

owner

private FSM owner
The top level FSM that contains this FSM, null if this FSM is a top level one.
Constructor Detail

FSM

public FSM(FSM owner,
           SinglePhaseTransducer spt)
This constructor creates a finite state machine starting from a single phase transducer. The FSM built by this constructor is supposed to be a part of a larger FSM which is sent using the owner parameter. All the new states created during the build process belong to the owner FSM.
Parameters:
owner - the larger FSM that will contain this FSM as a sub-set.
spt - the single phase transducer to be used for building this FSM.

FSM

public FSM(SinglePhaseTransducer spt)
Builds a standalone FSM starting from a single phase transducer.
Parameters:
spt - the single phase transducer to be used for building this FSM.

FSM

public FSM(FSM owner,
           Rule rule)
Builds a FSM starting from a rule. This FSM is actually a part of a larger one (usually the one that is built based on the single phase transducer that contains the rule).
Parameters:
owner - the larger FSM that wil own all the states in the new FSM built by this constructor.
rule - the rule to be used for the building process.
Method Detail

getInitialState

public State getInitialState()
Gets the initial state of this FSM
Returns:
an object of type gate.fsm.State representing the initial state.

convertComplexPE

private State convertComplexPE(FSM owner,
                               State startState,
                               ComplexPatternElement cpe,
                               LinkedList labels)
Receives a state to start from and a complex pattern element. Parses the complex pattern element and creates all the necessary states and transitions for accepting annotations described by the given PE.
Parameters:
state - the state to start from
cpe - the pattern to be recognized
label - the bindings name for all the annotation accepted along the way this is actually a listy of Strings. It is necessary to use a list becuase of the reccursive definition of ComplexPatternElement.
Returns:
the final state reached after accepting a sequence of annotations as described in the pattern

addState

protected void addState(State state)
Add a new state to the set of states belonging to this FSM.
Parameters:
state - the new state to be added

eliminateVoidTransitions

public void eliminateVoidTransitions()
Converts this FSM from a non-deterministic to a deterministic one by eliminating all the unrestricted transitions.

lambdaClosure

private AbstractSet lambdaClosure(AbstractSet s)

getGML

public String getGML()
Returns a GML (Graph Modelling Language) representation of the transition graph of this FSM.

toString

public String toString()
Returns a textual description of this FSM.
Overrides:
toString in class Object