⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forstmt.java

📁 JDK1.4编译器前端
💻 JAVA
📖 第 1 页 / 共 3 页
字号:

package AST;
import java.util.HashSet;import java.util.LinkedHashSet;import java.io.FileNotFoundException;import java.io.File;import java.util.*;import beaver.*;import java.util.ArrayList;import java.util.zip.*;import java.io.*;public class ForStmt extends BranchTargetStmt implements Cloneable, VariableScope {
    public void flushCache() {        super.flushCache();        targetOf_ContinueStmt_visited = new java.util.HashMap(4);        targetOf_ContinueStmt_values = null;        targetOf_BreakStmt_visited = new java.util.HashMap(4);        targetOf_BreakStmt_values = null;        isDAafter_Variable_visited = new java.util.HashMap(4);        isDAafter_Variable_values = null;        isDAafterInitialization_Variable_visited = new java.util.HashMap(4);        isDUafter_Variable_visited = new java.util.HashMap(4);        isDUafter_Variable_values = null;        isDUafterInit_Variable_visited = new java.util.HashMap(4);        isDUbeforeCondition_Variable_visited = new java.util.HashMap(4);        isDUafterUpdate_Variable_visited = new java.util.HashMap(4);        localLookup_String_visited = new java.util.HashMap(4);        localLookup_String_values = null;        localVariableDeclaration_String_visited = new java.util.HashMap(4);        localVariableDeclaration_String_values = null;        continueLabel_visited = -1;        canCompleteNormally_visited = -1;        canCompleteNormally_computed = false;        lookupVariable_String_visited = new java.util.HashMap(4);        lookupVariable_String_values = null;    }     @SuppressWarnings({"unchecked", "cast"})  public ForStmt clone() throws CloneNotSupportedException {        ForStmt node = (ForStmt)super.clone();        node.targetOf_ContinueStmt_visited = new java.util.HashMap(4);        node.targetOf_ContinueStmt_values = null;        node.targetOf_BreakStmt_visited = new java.util.HashMap(4);        node.targetOf_BreakStmt_values = null;        node.isDAafter_Variable_visited = new java.util.HashMap(4);        node.isDAafter_Variable_values = null;        node.isDAafterInitialization_Variable_visited = new java.util.HashMap(4);        node.isDUafter_Variable_visited = new java.util.HashMap(4);        node.isDUafter_Variable_values = null;        node.isDUafterInit_Variable_visited = new java.util.HashMap(4);        node.isDUbeforeCondition_Variable_visited = new java.util.HashMap(4);        node.isDUafterUpdate_Variable_visited = new java.util.HashMap(4);        node.localLookup_String_visited = new java.util.HashMap(4);        node.localLookup_String_values = null;        node.localVariableDeclaration_String_visited = new java.util.HashMap(4);        node.localVariableDeclaration_String_values = null;        node.continueLabel_visited = -1;        node.canCompleteNormally_visited = -1;        node.canCompleteNormally_computed = false;        node.lookupVariable_String_visited = new java.util.HashMap(4);        node.lookupVariable_String_values = null;        node.in$Circle(false);        node.is$Final(false);    return node;    }     @SuppressWarnings({"unchecked", "cast"})  public ForStmt copy() {      try {          ForStmt node = (ForStmt)clone();          if(children != null) node.children = (ASTNode[])children.clone();          return node;      } catch (CloneNotSupportedException e) {      }      System.err.println("Error: Could not clone node of type " + getClass().getName() + "!");      return null;    }     @SuppressWarnings({"unchecked", "cast"})  public ForStmt fullCopy() {        ForStmt res = (ForStmt)copy();        for(int i = 0; i < getNumChildNoTransform(); i++) {          ASTNode node = getChildNoTransform(i);          if(node != null) node = node.fullCopy();          res.setChild(node, i);        }        return res;    }    // Declared in PrettyPrint.jadd at line 615  public void toString(StringBuffer s) {    s.append("for(");    if(getNumInitStmt() > 0) {      if(getInitStmt(0) instanceof VariableDeclaration) {        int minDimension = Integer.MAX_VALUE;        for(int i = 0; i < getNumInitStmt(); i++) {          VariableDeclaration v = (VariableDeclaration)getInitStmt(i);          minDimension = Math.min(minDimension, v.type().dimension());        }        VariableDeclaration v = (VariableDeclaration)getInitStmt(0);        v.getModifiers().toString(s);        s.append(v.type().elementType().typeName());        for(int i = minDimension; i > 0; i--)          s.append("[]");        for(int i = 0; i < getNumInitStmt(); i++) {          if(i != 0)            s.append(",");          v = (VariableDeclaration)getInitStmt(i);          s.append(" " + v.name());          for(int j = v.type().dimension() - minDimension; j > 0; j--)            s.append("[]");          if(v.hasInit()) {            s.append(" = ");            v.getInit().toString(s);          }        }      }      else if(getInitStmt(0) instanceof ExprStmt) {        ExprStmt stmt = (ExprStmt)getInitStmt(0);        stmt.getExpr().toString(s);        for(int i = 1; i < getNumInitStmt(); i++) {          s.append(", ");          stmt = (ExprStmt)getInitStmt(i);          stmt.getExpr().toString(s);        }      }      else {        throw new Error("Unexpected initializer in for loop: " + getInitStmt(0));      }    }        s.append("; ");    if(hasCondition()) {      getCondition().toString(s);    }    s.append("; ");    if(getNumUpdateStmt() > 0) {      ExprStmt stmt = (ExprStmt)getUpdateStmt(0);      stmt.getExpr().toString(s);      for(int i = 1; i < getNumUpdateStmt(); i++) {        s.append(", ");        stmt = (ExprStmt)getUpdateStmt(i);        stmt.getExpr().toString(s);      }    }        s.append(") ");    getStmt().toString(s);  }    // Declared in TypeCheck.jrag at line 334  public void typeCheck() {    if(hasCondition()) {      TypeDecl cond = getCondition().type();      if(!cond.isBoolean()) {        error("the type of \"" + getCondition() + "\" is " + cond.name() + " which is not boolean");      }    }  }    // Declared in java.ast at line 3    // Declared in java.ast line 213
    public ForStmt() {        super();
        setChild(new List(), 0);
        setChild(new Opt(), 1);
        setChild(new List(), 2);

    }    // Declared in java.ast at line 13
    // Declared in java.ast line 213    public ForStmt(List<Stmt> p0, Opt<Expr> p1, List<Stmt> p2, Stmt p3) {        setChild(p0, 0);        setChild(p1, 1);        setChild(p2, 2);        setChild(p3, 3);    }    // Declared in java.ast at line 20  protected int numChildren() {
    return 4;
  }    // Declared in java.ast at line 23
  public boolean mayHaveRewrite() { return true; }    // Declared in java.ast at line 2    // Declared in java.ast line 213    public void setInitStmtList(List<Stmt> list) {        setChild(list, 0);    }    // Declared in java.ast at line 6    private int getNumInitStmt = 0;    // Declared in java.ast at line 7    public int getNumInitStmt() {        return getInitStmtList().getNumChild();    }    // Declared in java.ast at line 11     @SuppressWarnings({"unchecked", "cast"})  public Stmt getInitStmt(int i) {        return (Stmt)getInitStmtList().getChild(i);    }    // Declared in java.ast at line 15    public void addInitStmt(Stmt node) {        List<Stmt> list = getInitStmtList();        list.addChild(node);    }    // Declared in java.ast at line 20    public void setInitStmt(Stmt node, int i) {        List<Stmt> list = getInitStmtList();        list.setChild(node, i);    }    // Declared in java.ast at line 24    public List<Stmt> getInitStmts() {        return getInitStmtList();    }    // Declared in java.ast at line 27    public List<Stmt> getInitStmtsNoTransform() {        return getInitStmtListNoTransform();    }    // Declared in java.ast at line 31     @SuppressWarnings({"unchecked", "cast"})  public List<Stmt> getInitStmtList() {        return (List<Stmt>)getChild(0);    }    // Declared in java.ast at line 35     @SuppressWarnings({"unchecked", "cast"})  public List<Stmt> getInitStmtListNoTransform() {        return (List<Stmt>)getChildNoTransform(0);    }    // Declared in java.ast at line 2    // Declared in java.ast line 213    public void setConditionOpt(Opt<Expr> opt) {        setChild(opt, 1);    }    // Declared in java.ast at line 6    public boolean hasCondition() {        return getConditionOpt().getNumChild() != 0;    }    // Declared in java.ast at line 10     @SuppressWarnings({"unchecked", "cast"})  public Expr getCondition() {        return (Expr)getConditionOpt().getChild(0);    }    // Declared in java.ast at line 14    public void setCondition(Expr node) {        getConditionOpt().setChild(node, 0);    }    // Declared in java.ast at line 17     @SuppressWarnings({"unchecked", "cast"})  public Opt<Expr> getConditionOpt() {        return (Opt<Expr>)getChild(1);    }    // Declared in java.ast at line 21     @SuppressWarnings({"unchecked", "cast"})  public Opt<Expr> getConditionOptNoTransform() {        return (Opt<Expr>)getChildNoTransform(1);    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -