polyglot.ast
Interface Term

All Superinterfaces:
java.lang.Cloneable, Copy, JL, Node, NodeOps
All Known Subinterfaces:
AmbAssign, AmbExpr, AmbNewArray, ArrayAccess, ArrayAccessAssign, ArrayInit, Assert, Assign, Binary, Block, BooleanLit, Branch, Call, Case, Cast, Catch, CharLit, ClassBody, ClassDecl, ClassLit, ClassMember, CodeDecl, CofferClassDecl, CofferConstructorDecl, CofferMethodDecl, CompoundStmt, Conditional, ConstructorCall, ConstructorDecl, Do, Empty, Eval, Expr, Field, FieldAssign, FieldDecl, FloatLit, For, ForInit, Formal, ForUpdate, Free, If, Initializer, Instanceof, IntLit, Labeled, Lit, Local, LocalAssign, LocalClassDecl, LocalDecl, Loop, MethodDecl, New, NewArray, NullLit, NumLit, PolyJArrayAccess, PolyJAssign, PolyJBinary, PolyJCall, PolyJCast, PolyJClassBody, PolyJClassDecl, PolyJConstructorCall, PolyJConstructorDecl, PolyJField, PolyJFieldDecl, PolyJInitializer, PolyJInstanceof, PolyJLocalDecl, PolyJMethodDecl, PolyJNew, PolyJNewArray, PragmaNode, ProcedureCall, ProcedureDecl, Return, Special, Stmt, StringLit, Switch, SwitchBlock, SwitchElement, Synchronized, Throw, Try, Unary, VarDecl, Variable, While
All Known Implementing Classes:
AbstractBlock_c, AmbAssign_c, AmbExpr_c, AmbNewArray_c, ArrayAccess_c, ArrayAccessAssign_c, ArrayInit_c, Assert_c, Assign_c, Binary_c, Block_c, BooleanLit_c, Branch_c, Call_c, Case_c, Cast_c, Catch_c, CharLit_c, ClassBody_c, ClassDecl_c, ClassLit_c, CofferClassDecl_c, CofferConstructorDecl_c, CofferMethodDecl_c, Conditional_c, ConstructorCall_c, ConstructorDecl_c, Do_c, Empty_c, Eval_c, Expr_c, Field_c, FieldAssign_c, FieldDecl_c, FloatLit_c, For_c, Formal_c, Free_c, If_c, Initializer_c, Instanceof_c, IntLit_c, Labeled_c, Lit_c, Local_c, LocalAssign_c, LocalClassDecl_c, LocalDecl_c, Loop_c, MethodDecl_c, New_c, NewArray_c, NullLit_c, NumLit_c, PolyJArrayAccess_c, PolyJArrayAccessAssign_c, PolyJBinary_c, PolyJCall_c, PolyJCast_c, PolyJClassBody_c, PolyJClassDecl_c, PolyJConstructorCall_c, PolyJConstructorDecl_c, PolyJField_c, PolyJFieldAssign_c, PolyJFieldDecl_c, PolyJInitializer_c, PolyJInstanceof_c, PolyJLocalAssign_c, PolyJLocalDecl_c, PolyJMethodDecl_c, PolyJNew_c, PolyJNewArray_c, PragmaNode_c, Return_c, Special_c, Stmt_c, StringLit_c, Switch_c, SwitchBlock_c, Synchronized_c, Term_c, Throw_c, Try_c, Unary_c, While_c

public interface Term
extends Node

A Term represents any Java expression or statement on which dataflow can be performed.


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.
 Term entry()
          Return the first (sub)term performed when evaluating this term.
 boolean reachable()
          Returns true if the term is reachable.
 Term reachable(boolean reachability)
          Set the reachability of this term.
 
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, exceptionCheck, exceptionCheckEnter, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, visitChildren
 
Methods inherited from interface polyglot.util.Copy
copy
 

Method Detail

entry

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


acceptCFG

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


reachable

public boolean reachable()
Returns true if the term is reachable. This attribute is not guaranteed correct until after the reachability pass.

See Also:
ReachChecker

reachable

public Term reachable(boolean reachability)
Set the reachability of this term.