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

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

public class ExponentNode<L extends LabelInterface>
extends UnaryTreeNode<L>

ExponentNode represents an Exponent (^) in the regular expression. This means concatenating the expression being operated on a number of times as determined by the exponent. This node has one child, which represents the regular expression that the Exponent operates on.

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
ExponentNode(TreeNode<L> child, Exponent exponent)
          Creates a new ExponentNode
 
Method Summary
 void apply(REVisitor<L> visitor, java.lang.Object context)
          Applies the given Visitor to this TreeNode.
 ExponentNode<L> copyTree()
          Returns a copy of the Tree rooted at this node.
 boolean equalsTree(TreeNode<L> node2)
          Returns true if the tree rooted at this node and the tree rooted at the given node are equal and false otherwise.
 Exponent getExponent()
          Gets the exponent.
 java.lang.String print(java.lang.String prefix)
          Prints the Tree rooted at this node.
 
Methods inherited from class laser.regularlanguage.regularexpression.UnaryTreeNode
getChild, getChildren, getLabelsUsed
 
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

ExponentNode

public ExponentNode(TreeNode<L> child,
                    Exponent exponent)
Creates a new ExponentNode

Parameters:
child - the TreeNode that represents the regular expession that this Exponent operates on
exponent - the value of the exponent
Method Detail

getExponent

public final Exponent getExponent()
Gets the exponent.

Returns:
The exponent

apply

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

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

copyTree

public ExponentNode<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

equalsTree

public boolean equalsTree(TreeNode<L> node2)
Returns true if the tree rooted at this node and the tree rooted at the given node are equal and false otherwise.

NOTE: This will fail to terminate if the tree becomes a cyclic graph.

Overrides:
equalsTree in class UnaryTreeNode<L extends LabelInterface>
Parameters:
node2 - The second TreeNode
Returns:
True if this TreeNode and the given TreeNode are equal and false otherwise