polyglot.ext.jl.ast
Class Try_c

java.lang.Object
  extended by polyglot.ext.jl.ast.Node_c
      extended by polyglot.ext.jl.ast.Term_c
          extended by polyglot.ext.jl.ast.Stmt_c
              extended by polyglot.ext.jl.ast.Try_c
All Implemented Interfaces:
java.lang.Cloneable, CompoundStmt, JL, Node, NodeOps, Stmt, Term, Try, Copy

public class Try_c
extends Stmt_c
implements Try

An immutable representation of a try block, one or more catch blocks, and an optional finally block.


Field Summary
protected  java.util.List catchBlocks
           
protected  Block finallyBlock
           
protected  Block tryBlock
           
 
Fields inherited from class polyglot.ext.jl.ast.Term_c
exceptions, reachable
 
Fields inherited from class polyglot.ext.jl.ast.Node_c
del, ext, position
 
Constructor Summary
Try_c(Position pos, Block tryBlock, java.util.List catchBlocks, Block finallyBlock)
           
 
Method Summary
 java.util.List acceptCFG(CFGBuilder v, java.util.List succs)
          Visit this term in evaluation order.
 java.util.List catchBlocks()
          Get the catch blocks of the statement.
 Try catchBlocks(java.util.List catchBlocks)
          Set the catch blocks of the statement.
 Term entry()
          Return the first (sub)term performed when evaluating this term.
 Node exceptionCheck(ExceptionChecker ec)
          Performs exceptionChecking.
 NodeVisitor exceptionCheckEnter(ExceptionChecker ec)
          Bypass all children when peforming an exception check.
 Block finallyBlock()
          Get the finally block of the statement.
 Try finallyBlock(Block finallyBlock)
          Set the finally block of the statement.
 void prettyPrint(CodeWriter w, PrettyPrinter tr)
          Pretty-print the AST using the given CodeWriter.
protected  Try_c reconstruct(Block tryBlock, java.util.List catchBlocks, Block finallyBlock)
          Reconstruct the statement.
 java.lang.String toString()
           
 Block tryBlock()
          Get the try block of the statement.
 Try tryBlock(Block tryBlock)
          Set the try block of the statement.
 Node visitChildren(NodeVisitor v)
          Visit the children of the statement.
 
Methods inherited from class polyglot.ext.jl.ast.Term_c
exceptions, exceptions, listEntry, reachable, reachable
 
Methods inherited from class polyglot.ext.jl.ast.Node_c
addDecls, addMembers, addMembersEnter, addMembersOverride, buildTypes, buildTypesEnter, buildTypesOverride, childExpectedType, copy, del, del, disambiguate, disambiguateEnter, disambiguateOverride, dump, enterScope, enterScope, exceptionCheckOverride, ext, ext, ext, ext, init, node, position, position, 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, ext, ext, ext, ext, position, position, visit, visitChild, visitEdge, visitList
 
Methods inherited from interface polyglot.ast.JL
init, node
 
Methods inherited from interface polyglot.ast.NodeOps
addDecls, addMembers, addMembersEnter, buildTypes, buildTypesEnter, disambiguate, disambiguateEnter, enterScope, enterScope, throwTypes, translate, typeCheck, typeCheckEnter
 
Methods inherited from interface polyglot.util.Copy
copy
 

Field Detail

tryBlock

protected Block tryBlock

catchBlocks

protected java.util.List catchBlocks

finallyBlock

protected Block finallyBlock
Constructor Detail

Try_c

public Try_c(Position pos,
             Block tryBlock,
             java.util.List catchBlocks,
             Block finallyBlock)
Method Detail

tryBlock

public Block tryBlock()
Get the try block of the statement.

Specified by:
tryBlock in interface Try

tryBlock

public Try tryBlock(Block tryBlock)
Set the try block of the statement.

Specified by:
tryBlock in interface Try

catchBlocks

public java.util.List catchBlocks()
Get the catch blocks of the statement.

Specified by:
catchBlocks in interface Try
Returns:
A list of Catch.

catchBlocks

public Try catchBlocks(java.util.List catchBlocks)
Set the catch blocks of the statement.

Specified by:
catchBlocks in interface Try
Parameters:
catchBlocks - A list of Catch.

finallyBlock

public Block finallyBlock()
Get the finally block of the statement.

Specified by:
finallyBlock in interface Try

finallyBlock

public Try finallyBlock(Block finallyBlock)
Set the finally block of the statement.

Specified by:
finallyBlock in interface Try

reconstruct

protected Try_c reconstruct(Block tryBlock,
                            java.util.List catchBlocks,
                            Block finallyBlock)
Reconstruct the statement.


visitChildren

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

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.

exceptionCheckEnter

public NodeVisitor exceptionCheckEnter(ExceptionChecker ec)
                                throws SemanticException
Bypass all children when peforming an exception check. exceptionCheck(), called from ExceptionChecker.leave(), will handle visiting children.

Specified by:
exceptionCheckEnter in interface NodeOps
Overrides:
exceptionCheckEnter in class Node_c
Parameters:
ec - The visitor.
Throws:
SemanticException

exceptionCheck

public Node exceptionCheck(ExceptionChecker ec)
                    throws SemanticException
Performs exceptionChecking. This is a special method that is called via the exceptionChecker's override method (i.e, doesn't follow the standard model for visitation.

Specified by:
exceptionCheck in interface NodeOps
Overrides:
exceptionCheck in class Term_c
Parameters:
ec - The ExceptionChecker that was run against the child node. It contains the exceptions that can be thrown by the try block.
Throws:
SemanticException

toString

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

prettyPrint

public void prettyPrint(CodeWriter w,
                        PrettyPrinter tr)
Description copied from class: Node_c
Pretty-print the AST using the given CodeWriter.

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.

entry

public Term entry()
Description copied from class: Term_c
Return the first (sub)term performed when evaluating this term.

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

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