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 + -
显示快捷键?