tip.node
Class ABody

java.lang.Object
  extended by tip.node.Node
      extended by tip.node.PBody
          extended by tip.node.ABody
All Implemented Interfaces:
Cloneable, NodeInterface

public final class ABody
extends PBody

ABody represents the alternative of the body production in the AST.


Constructor Summary
ABody()
          Creates a new ABody node with no children.
ABody(ABlock _block_)
          Creates a new ABody node with the given nodes as children.
ABody(ABlock _block_, List<? extends Instruction> _instructions_)
          Creates a new ABody node with the given nodes as children.
 
Method Summary
 void apply(Analysis caller)
          Calls the Analysis.caseABody(ABody) of the Analysis caller.
<A> A
apply(Answer<A> caller)
          Returns the answer for caller by applying this ABody node to the Answer visitor.
<Q> void
apply(Question<Q> caller, Q question)
          Applies this ABody node to the Question visitor caller.
<Q,A> A
apply(QuestionAnswer<Q,A> caller, Q question)
          Returns the answer for caller by applying this ABody node with the question to the QuestionAnswer visitor.
 void checkOptionalInvariant()
           
 ABody clone()
          Returns a deep clone of this ABody node.
 ABody clone(Map<Node,Node> oldToNewMap)
          Creates a deep clone of this ABody node while putting all old node-new node relations in the map oldToNewMap.
 ABlock getBlock()
          Returns the ABlock node which is the block child of this ABody node.
<T extends NodeInterface>
void
getChildren(Collection<T> collection, NodeFilter<T> filter)
          Adds all children of this ABody node that are accepted by the NodeFilter filter to collection.
<T extends NodeInterface>
void
getDescendants(Collection<T> collection, NodeFilter<T> filter)
          Adds all descendants of this ABody node (including the node itself) that are accepted by the NodeFilter filter to collection.
 LinkedList<Instruction> getInstructions()
          Returns the instructions field of this ABody node.
 void setBlock(ABlock value)
          Sets the block child of this ABody node.
 void setInstructions(List<? extends Instruction> value)
          Sets the instructions field of this ABody node.
 String toString()
          Returns a textual representation of this ABody node.
 
Methods inherited from class tip.node.PBody
kindNode
 
Methods inherited from class tip.node.Node
getAncestor, getAncestor, getAncestor, getChildren, getChildren, getDescendants, getDescendants, getDescendants, isOptionalInvariant, parent, replaceBy, setOptionalInvariant
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ABody

public ABody()
Creates a new ABody node with no children.


ABody

public ABody(ABlock _block_)
Creates a new ABody node with the given nodes as children. The basic child nodes are removed from their previous parents.

Parameters:
_block_ - the ABlock node for the Block child of this ABody node

ABody

public ABody(ABlock _block_,
             List<? extends Instruction> _instructions_)
Creates a new ABody node with the given nodes as children. The basic child nodes are removed from their previous parents.

Parameters:
_block_ - the ABlock node for the Block child of this ABody node
_instructions_ - the Instructions child of this ABody node
Method Detail

clone

public ABody clone()
Returns a deep clone of this ABody node.

Specified by:
clone in interface NodeInterface
Specified by:
clone in class PBody
Returns:
a deep clone of this ABody node

clone

public ABody clone(Map<Node,Node> oldToNewMap)
Creates a deep clone of this ABody node while putting all old node-new node relations in the map oldToNewMap.

Specified by:
clone in interface NodeInterface
Specified by:
clone in class PBody
Parameters:
oldToNewMap - the map filled with the old node-new node relation
Returns:
a deep clone of this ABody node

toString

public String toString()
Returns a textual representation of this ABody node.

Overrides:
toString in class Object
Returns:
a textual representation of this ABody node

getBlock

public ABlock getBlock()
Returns the ABlock node which is the block child of this ABody node.

Specified by:
getBlock in class PBody
Returns:
the ABlock node which is the block child of this ABody node

setBlock

public void setBlock(ABlock value)
Sets the block child of this ABody node.

Specified by:
setBlock in class PBody
Parameters:
value - the new block child of this ABody node

getInstructions

public LinkedList<Instruction> getInstructions()
Returns the instructions field of this ABody node.

Specified by:
getInstructions in class PBody
Returns:
the instructions field of this ABody node

setInstructions

public void setInstructions(List<? extends Instruction> value)
Sets the instructions field of this ABody node.

Specified by:
setInstructions in class PBody
Parameters:
value - the new instructions field of this ABody node

getDescendants

public <T extends NodeInterface> void getDescendants(Collection<T> collection,
                                                     NodeFilter<T> filter)
Adds all descendants of this ABody node (including the node itself) that are accepted by the NodeFilter filter to collection.

Specified by:
getDescendants in interface NodeInterface
Specified by:
getDescendants in class Node
Parameters:
collection - the collection to which the descendants are added
filter - the NodeFilter used

getChildren

public <T extends NodeInterface> void getChildren(Collection<T> collection,
                                                  NodeFilter<T> filter)
Adds all children of this ABody node that are accepted by the NodeFilter filter to collection.

Specified by:
getChildren in interface NodeInterface
Specified by:
getChildren in class Node
Parameters:
collection - the collection to which the children are added
filter - the NodeFilter used

checkOptionalInvariant

public void checkOptionalInvariant()
Specified by:
checkOptionalInvariant in interface NodeInterface
Specified by:
checkOptionalInvariant in class Node

apply

public void apply(Analysis caller)
Calls the Analysis.caseABody(ABody) of the Analysis caller.

Specified by:
apply in interface NodeInterface
Specified by:
apply in class Node
Parameters:
sw - the Analysis to which this ABody node is applied

apply

public <A> A apply(Answer<A> caller)
Returns the answer for caller by applying this ABody node to the Answer visitor.

Specified by:
apply in interface NodeInterface
Specified by:
apply in class Node
Parameters:
caller - the Answer to which this node is applied
Returns:
the answer as returned from caller

apply

public <Q> void apply(Question<Q> caller,
                      Q question)
Applies this ABody node to the Question visitor caller.

Specified by:
apply in interface NodeInterface
Specified by:
apply in class Node
Parameters:
caller - the Question to which this node is applied
question - the question provided to caller

apply

public <Q,A> A apply(QuestionAnswer<Q,A> caller,
                     Q question)
Returns the answer for caller by applying this ABody node with the question to the QuestionAnswer visitor.

Specified by:
apply in interface NodeInterface
Specified by:
apply in class Node
Parameters:
caller - the QuestionAnswer to which this node is applied
question - the question provided to caller
Returns:
the answer as returned from caller