forstmt.java
来自「JDK1.4编译器后端」· Java 代码 · 共 954 行 · 第 1/3 页
JAVA
954 行
// Declared in java.ast at line 11 @SuppressWarnings({"unchecked", "cast"}) public Stmt getUpdateStmt(int i) { return (Stmt)getUpdateStmtList().getChild(i); } // Declared in java.ast at line 15 public void addUpdateStmt(Stmt node) { List<Stmt> list = getUpdateStmtList(); list.addChild(node); } // Declared in java.ast at line 20 public void setUpdateStmt(Stmt node, int i) { List<Stmt> list = getUpdateStmtList(); list.setChild(node, i); } // Declared in java.ast at line 24 public List<Stmt> getUpdateStmts() { return getUpdateStmtList(); } // Declared in java.ast at line 27 public List<Stmt> getUpdateStmtsNoTransform() { return getUpdateStmtListNoTransform(); } // Declared in java.ast at line 31 @SuppressWarnings({"unchecked", "cast"}) public List<Stmt> getUpdateStmtList() { return (List<Stmt>)getChild(2); } // Declared in java.ast at line 35 @SuppressWarnings({"unchecked", "cast"}) public List<Stmt> getUpdateStmtListNoTransform() { return (List<Stmt>)getChildNoTransform(2); } // Declared in java.ast at line 2 // Declared in java.ast line 213 public void setStmt(Stmt node) { setChild(node, 3); } // Declared in java.ast at line 5 public Stmt getStmt() { return (Stmt)getChild(3); } // Declared in java.ast at line 9 public Stmt getStmtNoTransform() { return (Stmt)getChildNoTransform(3); } protected java.util.Map targetOf_ContinueStmt_values; // Declared in BranchTarget.jrag at line 72 @SuppressWarnings({"unchecked", "cast"}) public boolean targetOf(ContinueStmt stmt) { Object _parameters = stmt;if(targetOf_ContinueStmt_values == null) targetOf_ContinueStmt_values = new java.util.HashMap(4); if(targetOf_ContinueStmt_values.containsKey(_parameters)) return ((Boolean)targetOf_ContinueStmt_values.get(_parameters)).booleanValue(); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean targetOf_ContinueStmt_value = targetOf_compute(stmt); if(isFinal && num == boundariesCrossed) targetOf_ContinueStmt_values.put(_parameters, Boolean.valueOf(targetOf_ContinueStmt_value)); return targetOf_ContinueStmt_value; } private boolean targetOf_compute(ContinueStmt stmt) { return !stmt.hasLabel(); } protected java.util.Map targetOf_BreakStmt_values; // Declared in BranchTarget.jrag at line 80 @SuppressWarnings({"unchecked", "cast"}) public boolean targetOf(BreakStmt stmt) { Object _parameters = stmt;if(targetOf_BreakStmt_values == null) targetOf_BreakStmt_values = new java.util.HashMap(4); if(targetOf_BreakStmt_values.containsKey(_parameters)) return ((Boolean)targetOf_BreakStmt_values.get(_parameters)).booleanValue(); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean targetOf_BreakStmt_value = targetOf_compute(stmt); if(isFinal && num == boundariesCrossed) targetOf_BreakStmt_values.put(_parameters, Boolean.valueOf(targetOf_BreakStmt_value)); return targetOf_BreakStmt_value; } private boolean targetOf_compute(BreakStmt stmt) { return !stmt.hasLabel(); } // Declared in DefiniteAssignment.jrag at line 613 @SuppressWarnings({"unchecked", "cast"}) public boolean isDAafter(Variable v) { Object _parameters = v;if(isDAafter_Variable_values == null) isDAafter_Variable_values = new java.util.HashMap(4); if(isDAafter_Variable_values.containsKey(_parameters)) return ((Boolean)isDAafter_Variable_values.get(_parameters)).booleanValue(); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean isDAafter_Variable_value = isDAafter_compute(v); if(isFinal && num == boundariesCrossed) isDAafter_Variable_values.put(_parameters, Boolean.valueOf(isDAafter_Variable_value)); return isDAafter_Variable_value; } private boolean isDAafter_compute(Variable v) { if(!(!hasCondition() || getCondition().isDAafterFalse(v))) return false; for(Iterator iter = targetBreaks().iterator(); iter.hasNext(); ) { BreakStmt stmt = (BreakStmt)iter.next(); if(!stmt.isDAafterReachedFinallyBlocks(v)) return false; } return true; } // Declared in DefiniteAssignment.jrag at line 626 @SuppressWarnings({"unchecked", "cast"}) public boolean isDAafterInitialization(Variable v) { boolean isDAafterInitialization_Variable_value = isDAafterInitialization_compute(v); return isDAafterInitialization_Variable_value; } private boolean isDAafterInitialization_compute(Variable v) { return getNumInitStmt() == 0 ? isDAbefore(v) : getInitStmt(getNumInitStmt()-1).isDAafter(v); } // Declared in DefiniteAssignment.jrag at line 1100 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafter(Variable v) { Object _parameters = v;if(isDUafter_Variable_values == null) isDUafter_Variable_values = new java.util.HashMap(4); if(isDUafter_Variable_values.containsKey(_parameters)) return ((Boolean)isDUafter_Variable_values.get(_parameters)).booleanValue(); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean isDUafter_Variable_value = isDUafter_compute(v); if(isFinal && num == boundariesCrossed) isDUafter_Variable_values.put(_parameters, Boolean.valueOf(isDUafter_Variable_value)); return isDUafter_Variable_value; } private boolean isDUafter_compute(Variable v) { if(!isDUbeforeCondition(v)) // start a circular evaluation here return false; if(!(!hasCondition() || getCondition().isDUafterFalse(v))) { return false; } for(Iterator iter = targetBreaks().iterator(); iter.hasNext(); ) { BreakStmt stmt = (BreakStmt)iter.next(); if(!stmt.isDUafterReachedFinallyBlocks(v)) return false; } //if(!isDUafterUpdate(v)) // return false; return true; } // Declared in DefiniteAssignment.jrag at line 1120 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafterInit(Variable v) { boolean isDUafterInit_Variable_value = isDUafterInit_compute(v); return isDUafterInit_Variable_value; } private boolean isDUafterInit_compute(Variable v) { return getNumInitStmt() == 0 ? isDUbefore(v) : getInitStmt(getNumInitStmt()-1).isDUafter(v); } 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) { if(!isDUafterInit(v)) return false; else if(!isDUafterUpdate(v)) return false; return true; } // Declared in DefiniteAssignment.jrag at line 1133 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafterUpdate(Variable v) { boolean isDUafterUpdate_Variable_value = isDUafterUpdate_compute(v); return isDUafterUpdate_Variable_value; } private boolean isDUafterUpdate_compute(Variable v) { if(!isDUbeforeCondition(v)) // start a circular evaluation here return false; if(getNumUpdateStmt() > 0) return getUpdateStmt(getNumUpdateStmt()-1).isDUafter(v); if(!getStmt().isDUafter(v)) return false; for(Iterator iter = targetContinues().iterator(); iter.hasNext(); ) { ContinueStmt stmt = (ContinueStmt)iter.next(); if(!stmt.isDUafterReachedFinallyBlocks(v)) return false; } return true; } protected java.util.Map localLookup_String_values; // Declared in LookupVariable.jrag at line 91 @SuppressWarnings({"unchecked", "cast"}) public SimpleSet localLookup(String name) { Object _parameters = name;if(localLookup_String_values == null) localLookup_String_values = new java.util.HashMap(4); if(localLookup_String_values.containsKey(_parameters)) return (SimpleSet)localLookup_String_values.get(_parameters); int num = boundariesCrossed; boolean isFinal = this.is$Final(); SimpleSet localLookup_String_value = localLookup_compute(name); if(isFinal && num == boundariesCrossed) localLookup_String_values.put(_parameters, localLookup_String_value); return localLookup_String_value; } private SimpleSet localLookup_compute(String name) { VariableDeclaration v = localVariableDeclaration(name); if(v != null) return v; return lookupVariable(name); } protected java.util.Map localVariableDeclaration_String_values; // Declared in LookupVariable.jrag at line 121 @SuppressWarnings({"unchecked", "cast"}) public VariableDeclaration localVariableDeclaration(String name) { Object _parameters = name;if(localVariableDeclaration_String_values == null) localVariableDeclaration_String_values = new java.util.HashMap(4); if(localVariableDeclaration_String_values.containsKey(_parameters)) return (VariableDeclaration)localVariableDeclaration_String_values.get(_parameters); int num = boundariesCrossed; boolean isFinal = this.is$Final(); VariableDeclaration localVariableDeclaration_String_value = localVariableDeclaration_compute(name); if(isFinal && num == boundariesCrossed) localVariableDeclaration_String_values.put(_parameters, localVariableDeclaration_String_value); return localVariableDeclaration_String_value; } private VariableDeclaration localVariableDeclaration_compute(String name) { for(int i = 0; i < getNumInitStmt(); i++) if(getInitStmt(i).declaresVariable(name)) return (VariableDeclaration)getInitStmt(i); return null; } // Declared in NameCheck.jrag at line 397 @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 102 @SuppressWarnings({"unchecked", "cast"}) public boolean canCompleteNormally() { if(canCompleteNormally_computed) return canCompleteNormally_value; int num = boundariesCrossed;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?