net.sf.vex.dom
Class DFABuilder

java.lang.Object
  |
  +--net.sf.vex.dom.DFABuilder

public class DFABuilder
extends java.lang.Object

Tools for building a deterministic finite automaton (DFA) recognizer for regular expression-like languages.


Nested Class Summary
static interface DFABuilder.Node
          Node represents a node in an abstract syntax tree.
 
Constructor Summary
DFABuilder()
           
 
Method Summary
static DFABuilder.Node createChoiceNode(DFABuilder.Node child1, DFABuilder.Node child2)
          Create a node that represents a choice between two nodes.
static DFAState createDFA(DFABuilder.Node root)
          Create a DFA given the root node of the syntax tree.
static DFABuilder.Node createOptionalNode(DFABuilder.Node child)
          Create optional node.
static DFABuilder.Node createRepeatingNode(DFABuilder.Node child, int minRepeat)
          Create a repeating node.
static DFABuilder.Node createSequenceNode(DFABuilder.Node child1, DFABuilder.Node child2)
          Creates a node representing a sequence of two other nodes.
static DFABuilder.Node createSymbolNode(java.lang.Object symbol)
          Create a node for a symbol.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DFABuilder

public DFABuilder()
Method Detail

createChoiceNode

public static DFABuilder.Node createChoiceNode(DFABuilder.Node child1,
                                               DFABuilder.Node child2)
Create a node that represents a choice between two nodes.

Parameters:
child1 - first choice
child2 - second choice

createDFA

public static DFAState createDFA(DFABuilder.Node root)
Create a DFA given the root node of the syntax tree.

Parameters:
root - Root node of the syntax tree.
Returns:
Initial state of the resulting DFA.

createOptionalNode

public static DFABuilder.Node createOptionalNode(DFABuilder.Node child)
Create optional node.

Parameters:
child - Node that is optional.

createRepeatingNode

public static DFABuilder.Node createRepeatingNode(DFABuilder.Node child,
                                                  int minRepeat)
Create a repeating node.

Parameters:
child - Node that can be repeated.
minRepeat - minimum number of times the node can be repeated.

createSequenceNode

public static DFABuilder.Node createSequenceNode(DFABuilder.Node child1,
                                                 DFABuilder.Node child2)
Creates a node representing a sequence of two other nodes.

Parameters:
child1 - first node in the sequence.
child2 - second node in the sequence.

createSymbolNode

public static DFABuilder.Node createSymbolNode(java.lang.Object symbol)
Create a node for a symbol.

Parameters:
symbol - Symbol contained by the node.