KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > polyglot > ast > Term


1 package polyglot.ast;
2
3 import polyglot.util.SubtypeSet;
4 import polyglot.visit.*;
5 import java.util.*;
6
7 /**
8  * A <code>Term</code> represents any Java expression or statement on which
9  * dataflow can be performed.
10  */

11 public interface Term extends Node
12 {
13     /**
14      * Return the first (sub)term performed when evaluating this
15      * term.
16      */

17     public Term entry();
18
19     /**
20      * Visit this node, calling calling v.edge() for each successor in succs,
21      * if data flows on that edge.
22      */

23     public List acceptCFG(CFGBuilder v, List succs);
24     
25     /**
26      * Returns true if the term is reachable. This attribute is not
27      * guaranteed correct until after the reachability pass.
28      *
29      * @see polyglot.visit.ReachChecker
30      */

31     public boolean reachable();
32
33     /**
34      * Set the reachability of this term.
35      */

36     public Term reachable(boolean reachability);
37     
38     /**
39      * List of Types with all exceptions possibly thrown by this term.
40      * The list is not necessarily correct until after exception-checking.
41      * <code>polyglot.ast.NodeOps.throwTypes()</code> is similar, but exceptions
42      * are not propagated to the containing node.
43      */

44     public SubtypeSet exceptions();
45     public Term exceptions(SubtypeSet exceptions);
46 }
47
Popular Tags