| 1 20 21 package soot.dava.internal.AST; 22 23 import soot.*; 24 import soot.jimple.*; 25 import soot.dava.internal.SET.*; 26 import soot.dava.toolkits.base.AST.*; 27 28 public abstract class ASTControlFlowNode extends ASTLabeledNode 29 { 30 ASTCondition condition; 32 33 public ASTControlFlowNode( SETNodeLabel label, ConditionExpr condition) 34 { 35 super( label); 36 this.condition = new ASTBinaryCondition(condition); 38 } 39 40 45 public ASTControlFlowNode( SETNodeLabel label, ASTCondition condition) 46 { 47 super( label); 48 this.condition = condition; 49 } 50 51 52 public ASTCondition get_Condition() 53 { 54 return condition; 55 } 56 57 58 public void set_Condition(ASTCondition condition){ 59 this.condition=condition; 60 } 61 62 public void perform_Analysis( ASTAnalysis a) 63 { 64 77 if(condition instanceof ASTBinaryCondition){ 78 ConditionExpr condExpr = ((ASTBinaryCondition)condition).getConditionExpr(); 79 ASTWalker.v().walk_value( a, condExpr); 80 } 81 82 if (a instanceof TryContentsFinder) { 83 TryContentsFinder tcf = (TryContentsFinder) a; 84 tcf.v().add_ExceptionSet( this, tcf.v().remove_CurExceptionSet()); 85 } 86 87 perform_AnalysisOnSubBodies( a); 88 } 89 } 90 | Popular Tags |