?? whilestmt.java
字號:
protected java.util.Map isDUbeforeCondition_Variable_visited; protected java.util.Set isDUbeforeCondition_Variable_computed = new java.util.HashSet(4); protected java.util.Set isDUbeforeCondition_Variable_initialized = new java.util.HashSet(4); protected java.util.Map isDUbeforeCondition_Variable_values = new java.util.HashMap(4); @SuppressWarnings({"unchecked", "cast"}) public boolean isDUbeforeCondition(Variable v) { Object _parameters = v;if(isDUbeforeCondition_Variable_visited == null) isDUbeforeCondition_Variable_visited = new java.util.HashMap(4);if(isDUbeforeCondition_Variable_values == null) isDUbeforeCondition_Variable_values = new java.util.HashMap(4); if(isDUbeforeCondition_Variable_computed.contains(_parameters)) return ((Boolean)isDUbeforeCondition_Variable_values.get(_parameters)).booleanValue(); if (!isDUbeforeCondition_Variable_initialized.contains(_parameters)) { isDUbeforeCondition_Variable_initialized.add(_parameters); isDUbeforeCondition_Variable_values.put(_parameters, Boolean.valueOf(true)); } if (!IN_CIRCLE) { IN_CIRCLE = true; int num = boundariesCrossed; boolean isFinal = this.is$Final(); CIRCLE_INDEX = 1; boolean new_isDUbeforeCondition_Variable_value; do { isDUbeforeCondition_Variable_visited.put(_parameters, new Integer(CIRCLE_INDEX)); CHANGE = false; new_isDUbeforeCondition_Variable_value = isDUbeforeCondition_compute(v); if (new_isDUbeforeCondition_Variable_value!=((Boolean)isDUbeforeCondition_Variable_values.get(_parameters)).booleanValue()) CHANGE = true; isDUbeforeCondition_Variable_values.put(_parameters, Boolean.valueOf(new_isDUbeforeCondition_Variable_value)); CIRCLE_INDEX++; } while (CHANGE); if(isFinal && num == boundariesCrossed){ isDUbeforeCondition_Variable_computed.add(_parameters); } else { RESET_CYCLE = true; isDUbeforeCondition_compute(v); RESET_CYCLE = false; isDUbeforeCondition_Variable_computed.remove(_parameters); isDUbeforeCondition_Variable_initialized.remove(_parameters); } IN_CIRCLE = false; return new_isDUbeforeCondition_Variable_value; } if(!new Integer(CIRCLE_INDEX).equals(isDUbeforeCondition_Variable_visited.get(_parameters))) { isDUbeforeCondition_Variable_visited.put(_parameters, new Integer(CIRCLE_INDEX)); if (RESET_CYCLE) { isDUbeforeCondition_Variable_computed.remove(_parameters); isDUbeforeCondition_Variable_initialized.remove(_parameters); return ((Boolean)isDUbeforeCondition_Variable_values.get(_parameters)).booleanValue(); } boolean new_isDUbeforeCondition_Variable_value = isDUbeforeCondition_compute(v); if (new_isDUbeforeCondition_Variable_value!=((Boolean)isDUbeforeCondition_Variable_values.get(_parameters)).booleanValue()) CHANGE = true; isDUbeforeCondition_Variable_values.put(_parameters, Boolean.valueOf(new_isDUbeforeCondition_Variable_value)); return new_isDUbeforeCondition_Variable_value; } return ((Boolean)isDUbeforeCondition_Variable_values.get(_parameters)).booleanValue(); } private boolean isDUbeforeCondition_compute(Variable v) { // 1st if(!isDUbefore(v)) return false; else if(!getStmt().isDUafter(v)) return false; else { for(Iterator iter = targetContinues().iterator(); iter.hasNext(); ) { ContinueStmt stmt = (ContinueStmt)iter.next(); if(!stmt.isDUafterReachedFinallyBlocks(v)) return false; } } return true; } // Declared in NameCheck.jrag at line 398 @SuppressWarnings({"unchecked", "cast"}) public boolean continueLabel() { boolean continueLabel_value = continueLabel_compute(); return continueLabel_value; } private boolean continueLabel_compute() { return true; } // Declared in UnreachableStatements.jrag at line 85 @SuppressWarnings({"unchecked", "cast"}) public boolean canCompleteNormally() { if(canCompleteNormally_computed) return canCompleteNormally_value; int num = boundariesCrossed; boolean isFinal = this.is$Final(); canCompleteNormally_value = canCompleteNormally_compute(); if(isFinal && num == boundariesCrossed) canCompleteNormally_computed = true; return canCompleteNormally_value; } private boolean canCompleteNormally_compute() { return reachable() && (!getCondition().isConstant() || !getCondition().isTrue()) || reachableBreak(); } // Declared in CreateBCode.jrag at line 938 @SuppressWarnings({"unchecked", "cast"}) public boolean definesLabel() { boolean definesLabel_value = definesLabel_compute(); return definesLabel_value; } private boolean definesLabel_compute() { return true; } protected boolean cond_label_computed = false; protected int cond_label_value; // Declared in CreateBCode.jrag at line 1322 @SuppressWarnings({"unchecked", "cast"}) public int cond_label() { if(cond_label_computed) return cond_label_value; int num = boundariesCrossed; boolean isFinal = this.is$Final(); cond_label_value = cond_label_compute(); if(isFinal && num == boundariesCrossed) cond_label_computed = true; return cond_label_value; } private int cond_label_compute() { return hostType().constantPool().newLabel(); } protected boolean end_label_computed = false; protected int end_label_value; // Declared in CreateBCode.jrag at line 1323 @SuppressWarnings({"unchecked", "cast"}) public int end_label() { if(end_label_computed) return end_label_value; int num = boundariesCrossed; boolean isFinal = this.is$Final(); end_label_value = end_label_compute(); if(isFinal && num == boundariesCrossed) end_label_computed = true; return end_label_value; } private int end_label_compute() { return hostType().constantPool().newLabel(); } protected boolean stmt_label_computed = false; protected int stmt_label_value; // Declared in CreateBCode.jrag at line 1324 @SuppressWarnings({"unchecked", "cast"}) public int stmt_label() { if(stmt_label_computed) return stmt_label_value; int num = boundariesCrossed; boolean isFinal = this.is$Final(); stmt_label_value = stmt_label_compute(); if(isFinal && num == boundariesCrossed) stmt_label_computed = true; return stmt_label_value; } private int stmt_label_compute() { return hostType().constantPool().newLabel(); } // Declared in CreateBCode.jrag at line 1382 @SuppressWarnings({"unchecked", "cast"}) public int break_label() { int break_label_value = break_label_compute(); return break_label_value; } private int break_label_compute() { return end_label(); } // Declared in CreateBCode.jrag at line 1401 @SuppressWarnings({"unchecked", "cast"}) public int continue_label() { int continue_label_value = continue_label_compute(); return continue_label_value; } private int continue_label_compute() { return cond_label(); } // Declared in NameCheck.jrag at line 366 public boolean Define_boolean_insideLoop(ASTNode caller, ASTNode child) { if(caller == getStmtNoTransform()) { return true; } return getParent().Define_boolean_insideLoop(this, caller); } // Declared in CreateBCode.jrag at line 946 public int Define_int_condition_true_label(ASTNode caller, ASTNode child) { if(caller == getConditionNoTransform()) { return stmt_label(); } return getParent().Define_int_condition_true_label(this, caller); } // Declared in CreateBCode.jrag at line 945 public int Define_int_condition_false_label(ASTNode caller, ASTNode child) { if(caller == getConditionNoTransform()) { return end_label(); } return getParent().Define_int_condition_false_label(this, caller); } // Declared in UnreachableStatements.jrag at line 151 public boolean Define_boolean_reportUnreachable(ASTNode caller, ASTNode child) { if(caller == getStmtNoTransform()) { return reachable(); } return getParent().Define_boolean_reportUnreachable(this, caller); } // Declared in UnreachableStatements.jrag at line 86 public boolean Define_boolean_reachable(ASTNode caller, ASTNode child) { if(caller == getStmtNoTransform()) { return reachable() && !getCondition().isFalse(); } return getParent().Define_boolean_reachable(this, caller); } // Declared in DefiniteAssignment.jrag at line 588 public boolean Define_boolean_isDAbefore(ASTNode caller, ASTNode child, Variable v) { if(caller == getStmtNoTransform()) { return getCondition().isDAafterTrue(v); } if(caller == getConditionNoTransform()) { return isDAbefore(v); } return getParent().Define_boolean_isDAbefore(this, caller, v); } // Declared in DefiniteAssignment.jrag at line 1070 public boolean Define_boolean_isDUbefore(ASTNode caller, ASTNode child, Variable v) { if(caller == getStmtNoTransform()) { return getCondition().isDUafterTrue(v); } if(caller == getConditionNoTransform()) { return isDUbeforeCondition(v); } return getParent().Define_boolean_isDUbefore(this, caller, v); }public ASTNode rewriteTo() { return super.rewriteTo();}}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -