polyglot.ast
Class Branch_c

java.lang.Object
  extended by polyglot.ast.Node_c
      extended by polyglot.ast.Term_c
          extended by polyglot.ast.Stmt_c
              extended by polyglot.ast.Branch_c
All Implemented Interfaces:
java.lang.Cloneable, Branch, JL, Node, NodeOps, Stmt, Term, Copy

public class Branch_c
extends Stmt_c
implements Branch

A Branch is an immutable representation of a branch statment in Java (a break or continue).


Nested Class Summary
 
Nested classes/interfaces inherited from interface polyglot.ast.Branch
Branch.Kind
 
Field Summary
protected  Branch.Kind kind
           
protected  Id label
           
 
Fields inherited from class polyglot.ast.Term_c
exceptions, reachable
 
Fields inherited from class polyglot.ast.Node_c
del, error, ext, position
 
Fields inherited from interface polyglot.ast.Branch
BREAK, CONTINUE
 
Fields inherited from interface polyglot.ast.Term
ENTRY, EXIT
 
Constructor Summary
Branch_c(Position pos, Branch.Kind kind, Id label)
           
 
Method Summary
 java.util.List acceptCFG(CFGBuilder v, java.util.List succs)
          Visit this term in evaluation order.
 Node copy(NodeFactory nf)
          Produce a copy of this node using the given NodeFactory.
 Term firstChild()
          Return the first (sub)term performed when evaluating this term.
 Branch.Kind kind()
          Get the kind of the branch.
 Branch kind(Branch.Kind kind)
          Set the kind of the branch.
 java.lang.String label()
          Get the target label of the branch.
 Branch label(java.lang.String label)
          Set the target label of the branch.
 Id labelNode()
          Get the target label of the branch.
 Branch labelNode(Id label)
          Set the target label of the branch.
 void prettyPrint(CodeWriter w, PrettyPrinter tr)
          Write the expression to an output file.
protected  Branch_c reconstruct(Id label)
          Reconstruct the expression.
 java.lang.String toString()
           
 Node visitChildren(NodeVisitor v)
          Visit the children of the constructor.
 
Methods inherited from class polyglot.ast.Term_c
exceptionCheck, exceptions, exceptions, listChild, reachable, reachable
 
Methods inherited from class polyglot.ast.Node_c
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, del, del, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, enterChildScope, enterScope, error, error, exceptionCheckEnter, ext, ext, ext, ext, init, isDisambiguated, isTypeChecked, node, position, position, prettyPrint, prettyPrint, print, printBlock, printSubStmt, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visit, visitChild, visitEdge, visitList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface polyglot.ast.Term
exceptions, exceptions, reachable, reachable
 
Methods inherited from interface polyglot.ast.Node
childExpectedType, del, del, dump, error, error, ext, ext, ext, ext, isDisambiguated, isTypeChecked, position, position, visit, visitChild, visitEdge, visitList
 
Methods inherited from interface polyglot.ast.JL
init, node
 
Methods inherited from interface polyglot.ast.NodeOps
addDecls, buildTypes, buildTypesEnter, checkConstants, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride
 
Methods inherited from interface polyglot.util.Copy
copy
 

Field Detail

kind

protected Branch.Kind kind

label

protected Id label
Constructor Detail

Branch_c

public Branch_c(Position pos,
                Branch.Kind kind,
                Id label)
Method Detail

kind

public Branch.Kind kind()
Get the kind of the branch.

Specified by:
kind in interface Branch

kind

public Branch kind(Branch.Kind kind)
Set the kind of the branch.

Specified by:
kind in interface Branch

labelNode

public Id labelNode()
Get the target label of the branch.

Specified by:
labelNode in interface Branch

labelNode

public Branch labelNode(Id label)
Set the target label of the branch.

Specified by:
labelNode in interface Branch

label

public java.lang.String label()
Get the target label of the branch.

Specified by:
label in interface Branch

label

public Branch label(java.lang.String label)
Set the target label of the branch.

Specified by:
label in interface Branch

reconstruct

protected Branch_c reconstruct(Id label)
Reconstruct the expression.


visitChildren

public Node visitChildren(NodeVisitor v)
Visit the children of the constructor.

Specified by:
visitChildren in interface NodeOps
Overrides:
visitChildren in class Node_c
Parameters:
v - The visitor that will traverse/rewrite the AST.
Returns:
A new AST if a change was made, or this.

toString

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

prettyPrint

public void prettyPrint(CodeWriter w,
                        PrettyPrinter tr)
Write the expression to an output file.

Specified by:
prettyPrint in interface NodeOps
Overrides:
prettyPrint in class Node_c
Parameters:
w - The code writer to which to write.
tr - The pretty printer. This is not a visitor.

firstChild

public Term firstChild()
Return the first (sub)term performed when evaluating this term.

Specified by:
firstChild in interface Term

acceptCFG

public java.util.List acceptCFG(CFGBuilder v,
                                java.util.List succs)
Description copied from class: Term_c
Visit this term in evaluation order.

Specified by:
acceptCFG in interface Term
Specified by:
acceptCFG in class Term_c

copy

public Node copy(NodeFactory nf)
Description copied from interface: NodeOps
Produce a copy of this node using the given NodeFactory.

Specified by:
copy in interface NodeOps
Overrides:
copy in class Node_c