laser.regularlanguage.regularexpression
Class ConcatenationNode<L extends LabelInterface>

java.lang.Object
  extended by laser.regularlanguage.regularexpression.TreeNode<L>
      extended by laser.regularlanguage.regularexpression.BinaryTreeNode<L>
          extended by laser.regularlanguage.regularexpression.ConcatenationNode<L>
Type Parameters:
L - The type of Label associated with this regular expression
All Implemented Interfaces:
java.io.Serializable, REConstants

public class ConcatenationNode<L extends LabelInterface>
extends BinaryTreeNode<L>

ConcatenationNode represents the Concatenation of two regular expressions, meaning the first expression occurs then the second expression occurs.

Author:
Jamieson M. Cobleigh (laser-software@cs.umass.edu)
See Also:
Serialized Form

Field Summary
 
Fields inherited from class laser.regularlanguage.regularexpression.TreeNode
LS
 
Fields inherited from interface laser.regularlanguage.regularexpression.REConstants
CHOICE, COMMA, COMMENT_PREFIX, CONCATENATION, DOT, EMPTY, EPSILON, EXPONENT, KLEENE_PLUS, KLEENE_STAR, LBRACE, LBRACKET, LPAREN, NOT, OPTION, RANGE, RBRACE, RBRACKET, RPAREN
 
Constructor Summary
ConcatenationNode(TreeNode<L> left, TreeNode<L> right)
          Creates a new ConcatenationNode
 
Method Summary
 void apply(REVisitor<L> visitor, java.lang.Object context)
          Applies the given REVisitor to this TreeNode.
 ConcatenationNode<L> copyTree()
          Returns a copy of the Tree rooted at this node.
 java.lang.String print(java.lang.String prefix)
          Prints the Tree rooted at this node.
 
Methods inherited from class laser.regularlanguage.regularexpression.BinaryTreeNode
equalsTree, getChildren, getLabelsUsed, getLeftChild, getRightChild
 
Methods inherited from class laser.regularlanguage.regularexpression.TreeNode
toString, trace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ConcatenationNode

public ConcatenationNode(TreeNode<L> left,
                         TreeNode<L> right)
Creates a new ConcatenationNode

Parameters:
left - the TreeNode representing the regular expression that comes first in the concatenation.
right - the Treenode representing the regular expression that comes second in the concatenation
Method Detail

apply

public void apply(REVisitor<L> visitor,
                  java.lang.Object context)
           throws REVisitorException
Applies the given REVisitor to this TreeNode.

Specified by:
apply in class TreeNode<L extends LabelInterface>
Parameters:
visitor - The REVisitor to be applied
context - The calling context
Throws:
REVisitorException - if an error occurs

copyTree

public ConcatenationNode<L> copyTree()
Returns a copy of the Tree rooted at this node. This will fail to terminate if the tree becomes a cyclic graph.

Specified by:
copyTree in class TreeNode<L extends LabelInterface>
Returns:
a copy of the Tree rooted at this node

print

public java.lang.String print(java.lang.String prefix)
Prints the Tree rooted at this node. This will fail to terminate if the tree becomes a cyclic graph.

Specified by:
print in class TreeNode<L extends LabelInterface>
Parameters:
prefix - The string to be appended before everything printed for this level. Should be a String of spaces
Returns:
A string representation of this TreeNode