JFlex
Class DFA

java.lang.Object
  extended by JFlex.DFA

public final class DFA
extends java.lang.Object

DFA representation in JFlex. Contains minimization algorithm.


Field Summary
static int NO_TARGET
          The code for "no target state" in the transition table.
 
Constructor Summary
DFA(int numEntryStates, int numInp, int numLexStates)
           
 
Method Summary
 void addTransition(int start, char input, int dest)
           
 void checkActions(LexScan scanner, LexParse parser)
          Check that all actions can actually be matched in this DFA.
 java.lang.String dotFormat()
           
 void minimize()
          Implementation of Hopcroft's O(n log n) minimization algorithm, follows description by D.
 boolean[][] old_minimize()
          Much simpler, but slower and less memory efficient minimization algorithm.
 void printBlocks(int[] b, int[] b_f, int[] b_b, int last)
           
 void printInvDelta(int[][] inv_delta, int[] inv_delta_set)
           
 void printL(int[] l_f, int[] l_b, int anchor)
           
 void printTable(boolean[][] equiv)
           
 void setAction(int state, Action stateAction)
           
 void setEntryState(int eState, int trueState)
           
 void setFinal(int state, boolean isFinalState)
           
 java.lang.String toString()
           
 java.lang.String toString(int[] a)
           
 void writeDot(java.io.File file)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NO_TARGET

public static final int NO_TARGET
The code for "no target state" in the transition table.

See Also:
Constant Field Values
Constructor Detail

DFA

public DFA(int numEntryStates,
           int numInp,
           int numLexStates)
Method Detail

setEntryState

public void setEntryState(int eState,
                          int trueState)

setAction

public void setAction(int state,
                      Action stateAction)

setFinal

public void setFinal(int state,
                     boolean isFinalState)

addTransition

public void addTransition(int start,
                          char input,
                          int dest)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

writeDot

public void writeDot(java.io.File file)

dotFormat

public java.lang.String dotFormat()

checkActions

public void checkActions(LexScan scanner,
                         LexParse parser)
Check that all actions can actually be matched in this DFA.


minimize

public void minimize()
Implementation of Hopcroft's O(n log n) minimization algorithm, follows description by D. Gries. Time: O(n log n) Space: O(c n), size < 4*(5*c*n + 13*n + 3*c) byte


toString

public java.lang.String toString(int[] a)

printBlocks

public void printBlocks(int[] b,
                        int[] b_f,
                        int[] b_b,
                        int last)

printL

public void printL(int[] l_f,
                   int[] l_b,
                   int anchor)

old_minimize

public boolean[][] old_minimize()
Much simpler, but slower and less memory efficient minimization algorithm.

Returns:
the equivalence relation on states.

printInvDelta

public void printInvDelta(int[][] inv_delta,
                          int[] inv_delta_set)

printTable

public void printTable(boolean[][] equiv)