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

📄 vardeclstmt.java

📁 JDK1.4编译器前端
💻 JAVA
字号:

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.*; // Simplified FieldDeclpublic class VarDeclStmt extends Stmt implements Cloneable {
    public void flushCache() {        super.flushCache();        canCompleteNormally_visited = -1;        canCompleteNormally_computed = false;    }     @SuppressWarnings({"unchecked", "cast"})  public VarDeclStmt clone() throws CloneNotSupportedException {        VarDeclStmt node = (VarDeclStmt)super.clone();        node.canCompleteNormally_visited = -1;        node.canCompleteNormally_computed = false;        node.in$Circle(false);        node.is$Final(false);    return node;    }     @SuppressWarnings({"unchecked", "cast"})  public VarDeclStmt copy() {      try {          VarDeclStmt node = (VarDeclStmt)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 VarDeclStmt fullCopy() {        VarDeclStmt res = (VarDeclStmt)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 VariableDeclaration.jrag at line 154  private List createVariableDeclarationList() {    List varList = new List();    for(int j = 0; j < getNumVariableDecl(); j++) {      VariableDeclaration v =        getVariableDecl(j).createVariableDeclarationFrom(          (Modifiers)getModifiers().fullCopy(),          (Access)getTypeAccess().fullCopy()        );      if(j == 0)        v.setStart(start);      varList.add(v);    }    return varList;  }    // Declared in java.ast at line 3    // Declared in java.ast line 79
    public VarDeclStmt() {        super();
        setChild(new List(), 2);

    }    // Declared in java.ast at line 11
    // Declared in java.ast line 79    public VarDeclStmt(Modifiers p0, Access p1, List<VariableDecl> p2) {        setChild(p0, 0);        setChild(p1, 1);        setChild(p2, 2);    }    // Declared in java.ast at line 17  protected int numChildren() {
    return 3;
  }    // Declared in java.ast at line 20
  public boolean mayHaveRewrite() { return true; }    // Declared in java.ast at line 2    // Declared in java.ast line 79    public void setModifiers(Modifiers node) {        setChild(node, 0);    }    // Declared in java.ast at line 5    public Modifiers getModifiers() {        return (Modifiers)getChild(0);    }    // Declared in java.ast at line 9    public Modifiers getModifiersNoTransform() {        return (Modifiers)getChildNoTransform(0);    }    // Declared in java.ast at line 2    // Declared in java.ast line 79    public void setTypeAccess(Access node) {        setChild(node, 1);    }    // Declared in java.ast at line 5    public Access getTypeAccess() {        return (Access)getChild(1);    }    // Declared in java.ast at line 9    public Access getTypeAccessNoTransform() {        return (Access)getChildNoTransform(1);    }    // Declared in java.ast at line 2    // Declared in java.ast line 79    public void setVariableDeclList(List<VariableDecl> list) {        setChild(list, 2);    }    // Declared in java.ast at line 6    private int getNumVariableDecl = 0;    // Declared in java.ast at line 7    public int getNumVariableDecl() {        return getVariableDeclList().getNumChild();    }    // Declared in java.ast at line 11     @SuppressWarnings({"unchecked", "cast"})  public VariableDecl getVariableDecl(int i) {        return (VariableDecl)getVariableDeclList().getChild(i);    }    // Declared in java.ast at line 15    public void addVariableDecl(VariableDecl node) {        List<VariableDecl> list = getVariableDeclList();        list.addChild(node);    }    // Declared in java.ast at line 20    public void setVariableDecl(VariableDecl node, int i) {        List<VariableDecl> list = getVariableDeclList();        list.setChild(node, i);    }    // Declared in java.ast at line 24    public List<VariableDecl> getVariableDecls() {        return getVariableDeclList();    }    // Declared in java.ast at line 27    public List<VariableDecl> getVariableDeclsNoTransform() {        return getVariableDeclListNoTransform();    }    // Declared in java.ast at line 31     @SuppressWarnings({"unchecked", "cast"})  public List<VariableDecl> getVariableDeclList() {        return (List<VariableDecl>)getChild(2);    }    // Declared in java.ast at line 35     @SuppressWarnings({"unchecked", "cast"})  public List<VariableDecl> getVariableDeclListNoTransform() {        return (List<VariableDecl>)getChildNoTransform(2);    }    protected int canCompleteNormally_visited = -1;    // Declared in UnreachableStatements.jrag at line 42 @SuppressWarnings({"unchecked", "cast"})     public boolean canCompleteNormally() {        if(canCompleteNormally_computed)            return canCompleteNormally_value;        if(canCompleteNormally_visited == boundariesCrossed)            throw new RuntimeException("Circular definition of attr: canCompleteNormally in class: ");        canCompleteNormally_visited = boundariesCrossed;        int num = boundariesCrossed;        boolean isFinal = this.is$Final();        canCompleteNormally_value = canCompleteNormally_compute();        if(isFinal && num == boundariesCrossed)            canCompleteNormally_computed = true;        canCompleteNormally_visited = -1;        return canCompleteNormally_value;    }    private boolean canCompleteNormally_compute() {  return reachable();  }    // Declared in TypeAnalysis.jrag at line 259    public TypeDecl Define_TypeDecl_declType(ASTNode caller, ASTNode child) {        if(caller == getVariableDeclListNoTransform()) {      int childIndex = caller.getIndexOfChild(child);            return null;        }        if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree");        return getParent().Define_TypeDecl_declType(this, caller);    }    // Declared in SyntacticClassification.jrag at line 84    public NameType Define_NameType_nameType(ASTNode caller, ASTNode child) {        if(caller == getTypeAccessNoTransform()) {            return NameType.TYPE_NAME;        }        if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree");        return getParent().Define_NameType_nameType(this, caller);    }public ASTNode rewriteTo() {    // Declared in VariableDeclaration.jrag at line 135    if(getNumVariableDecl() == 1) {        duringVariableDeclaration++;        ASTNode result = rewriteRule0();        duringVariableDeclaration--;        return result;    }    // Declared in VariableDeclaration.jrag at line 146    if(getParent().getParent() instanceof Block &&         ((Block)getParent().getParent()).getStmtListNoTransform() == getParent() && getNumVariableDecl() > 1) {        duringVariableDeclaration++;      List newList = rewriteBlock_getStmt();      List list = (List)getParent();      int i = list.getIndexOfChild(this);      for(int j = 1; j < newList.getNumChild(); j++)        list.insertChild(newList.getChildNoTransform(j), ++i);        duringVariableDeclaration--;      return newList.getChildNoTransform(0);    }    // Declared in VariableDeclaration.jrag at line 150    if(getParent().getParent() instanceof ForStmt &&         ((ForStmt)getParent().getParent()).getInitStmtListNoTransform() == getParent() && getNumVariableDecl() > 1) {        duringVariableDeclaration++;      List newList = rewriteForStmt_getInitStmt();      List list = (List)getParent();      int i = list.getIndexOfChild(this);      for(int j = 1; j < newList.getNumChild(); j++)        list.insertChild(newList.getChildNoTransform(j), ++i);        duringVariableDeclaration--;      return newList.getChildNoTransform(0);    }    return super.rewriteTo();}    // Declared in VariableDeclaration.jrag at line 135    private VariableDeclaration rewriteRule0() {         debugRewrite("Rewriting " + getClass().getName() + " using rule in VariableDeclaration.jrag at line 135");{      VariableDeclaration decl = getVariableDecl(0).createVariableDeclarationFrom(getModifiers(), getTypeAccess());      decl.setStart(start); // copy location information      decl.setEnd(end); // copy location information      return decl;    }    }    // Declared in VariableDeclaration.jrag at line 146    private List rewriteBlock_getStmt() {         debugRewrite("Rewriting " + getClass().getName() + " using rule in VariableDeclaration.jrag at line 146");        return createVariableDeclarationList();    }    // Declared in VariableDeclaration.jrag at line 150    private List rewriteForStmt_getInitStmt() {         debugRewrite("Rewriting " + getClass().getName() + " using rule in VariableDeclaration.jrag at line 150");        return createVariableDeclarationList();    }}

⌨️ 快捷键说明

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