polyglot.ext.jl.ast
Class Try_c

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

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
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 node, calling calling v.edge() for each successor in succs, if data flows on that edge.
 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 code writer.
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
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
reachable, reachable
 
Methods inherited from interface polyglot.ast.Node
childExpectedType, del, del, dump, ext, ext, ext, ext, position, position, visit, visitChild, visitEdge
 
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

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
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 Node_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 interface: NodeOps
Pretty-print the AST using the given code writer.

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

entry

public Term entry()
Description copied from interface: Term
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 interface: Term
Visit this node, calling calling v.edge() for each successor in succs, if data flows on that edge.

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