## 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

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(Rule rule)` Builds a FSM starting from a rule.
`FSM(SinglePhaseTransducer spt)` Builds a standalone FSM starting from a single phase transducer.

Method Summary
`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
`String` `toString()` Returns a textual description of this FSM.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### 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(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). built by this constructor.
  Parameters:
    `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.

### eliminateVoidTransitions

    public void eliminateVoidTransitions()

  Converts this FSM from a non-deterministic to a deterministic one by eliminating all the unrestricted transitions.

### 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`