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

📄 shadowclassdecl.java

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

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 ShadowClassDecl extends ReferenceType implements Cloneable {
    public void flushCache() {        super.flushCache();        memberFields_String_visited = new java.util.HashMap(4);        memberFields_String_values = null;        memberMethods_String_visited = new java.util.HashMap(4);        methodsSignatureMap_visited = -1;        methodsSignatureMap_computed = false;        methodsSignatureMap_value = null;        seedClass_String_visited = new java.util.HashMap(4);        granuleAccess_String_visited = new java.util.HashMap(4);        isShadowClassDecl_visited = -1;    }     @SuppressWarnings({"unchecked", "cast"})  public ShadowClassDecl clone() throws CloneNotSupportedException {        ShadowClassDecl node = (ShadowClassDecl)super.clone();        node.memberFields_String_visited = new java.util.HashMap(4);        node.memberFields_String_values = null;        node.memberMethods_String_visited = new java.util.HashMap(4);        node.methodsSignatureMap_visited = -1;        node.methodsSignatureMap_computed = false;        node.methodsSignatureMap_value = null;        node.seedClass_String_visited = new java.util.HashMap(4);        node.granuleAccess_String_visited = new java.util.HashMap(4);        node.isShadowClassDecl_visited = -1;        node.in$Circle(false);        node.is$Final(false);    return node;    }     @SuppressWarnings({"unchecked", "cast"})  public ShadowClassDecl copy() {      try {          ShadowClassDecl node = (ShadowClassDecl)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 ShadowClassDecl fullCopy() {        ShadowClassDecl res = (ShadowClassDecl)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 GOP.jrag at line 17
  public boolean hasSeedClass() {
    return true;
  }    // Declared in GOP.jrag at line 20
  public boolean hasGranuleAccess(){
    return true;
  }    // Declared in GOP.jrag at line 235
      

  
//==================================================================
//name Check to make sure shadowclass has its seedclass

 public void nameCheck() {
     if(!isTopLevelType())
       error("ShadowClass can only be topLevelType");
    TypeDecl seedClass = seedClass(getID());
    if(seedClass==null) 
      error("No TypeDecl named " + getID() + " exsit as the seedclass of shadowclass,make sure seedclass is declared before shadowclass");
    else if(!seedClass.isClassDecl())
      error("SeedClass can only be ClassDecl");
    TypeDecl granuleAccess =granuleAccess(((TypeAccess)getGranuleAccess()).name());
    if(granuleAccess==null)
      error("Can not find granule "+ ((TypeAccess)getGranuleAccess()).name());
}    // Declared in GOP.jrag at line 264
















//===============================================================
   public boolean hasSuperclass() {
    return !isObject();
   }    // Declared in GOP.jrag at line 268
  
   public ClassDecl superclass() {
    if(isObject())
      return null;
    if(hasSuperClassAccess() && !isCircular() && getSuperClassAccess().type().isClassDecl())
      return (ClassDecl)getSuperClassAccess().type();
    return (ClassDecl)typeObject();
  }    // Declared in GOP.jrag at line 278
  
  
  
  public Iterator interfacesIterator() {
    return new Iterator() {
      public boolean hasNext() {
        computeNextCurrent();
        return current != null;
      }
      public Object next() {
        return current;
      }
      public void remove() {
        throw new UnsupportedOperationException();
      }
      private int index = 0;
      private TypeDecl current = null;
      private void computeNextCurrent() {
        current = null;
        if(isObject() || isCircular())
          return;
        while(index < getNumImplements()) {
          TypeDecl typeDecl = getImplements(index++).type();
          if(!typeDecl.isCircular() && typeDecl.isInterfaceDecl()) {
            current = typeDecl;
            return;
          }
        }
      }
    };
  }    // Declared in ShadowClass.ast at line 3    // Declared in ShadowClass.ast line 3
    public ShadowClassDecl() {        super();
        setChild(new Opt(), 2);
        setChild(new List(), 3);
        setChild(new List(), 4);

    }    // Declared in ShadowClass.ast at line 13
    // Declared in ShadowClass.ast line 3    public ShadowClassDecl(Modifiers p0, String p1, Access p2, Opt<Access> p3, List<Access> p4, List<BodyDecl> p5) {        setChild(p0, 0);        setID(p1);        setChild(p2, 1);        setChild(p3, 2);        setChild(p4, 3);        setChild(p5, 4);    }    // Declared in ShadowClass.ast at line 23    // Declared in ShadowClass.ast line 3    public ShadowClassDecl(Modifiers p0, beaver.Symbol p1, Access p2, Opt<Access> p3, List<Access> p4, List<BodyDecl> p5) {        setChild(p0, 0);        setID(p1);        setChild(p2, 1);        setChild(p3, 2);        setChild(p4, 3);        setChild(p5, 4);    }    // Declared in ShadowClass.ast at line 32  protected int numChildren() {
    return 5;
  }    // Declared in ShadowClass.ast at line 35
  public boolean mayHaveRewrite() { return false; }    // Declared in ShadowClass.ast at line 2    // Declared in ShadowClass.ast line 3    public void setModifiers(Modifiers node) {        setChild(node, 0);    }    // Declared in ShadowClass.ast at line 5    public Modifiers getModifiers() {        return (Modifiers)getChild(0);    }    // Declared in ShadowClass.ast at line 9    public Modifiers getModifiersNoTransform() {        return (Modifiers)getChildNoTransform(0);    }    // Declared in ShadowClass.ast at line 2    // Declared in ShadowClass.ast line 3    public void setGranuleAccess(Access node) {        setChild(node, 1);    }    // Declared in ShadowClass.ast at line 5    public Access getGranuleAccess() {        return (Access)getChild(1);    }    // Declared in ShadowClass.ast at line 9    public Access getGranuleAccessNoTransform() {        return (Access)getChildNoTransform(1);    }    // Declared in ShadowClass.ast at line 2    // Declared in ShadowClass.ast line 3    public void setSuperClassAccessOpt(Opt<Access> opt) {        setChild(opt, 2);    }    // Declared in ShadowClass.ast at line 6    public boolean hasSuperClassAccess() {        return getSuperClassAccessOpt().getNumChild() != 0;    }    // Declared in ShadowClass.ast at line 10     @SuppressWarnings({"unchecked", "cast"})  public Access getSuperClassAccess() {        return (Access)getSuperClassAccessOpt().getChild(0);    }    // Declared in ShadowClass.ast at line 14    public void setSuperClassAccess(Access node) {        getSuperClassAccessOpt().setChild(node, 0);    }    // Declared in ShadowClass.ast at line 17     @SuppressWarnings({"unchecked", "cast"})  public Opt<Access> getSuperClassAccessOpt() {        return (Opt<Access>)getChild(2);    }    // Declared in ShadowClass.ast at line 21     @SuppressWarnings({"unchecked", "cast"})  public Opt<Access> getSuperClassAccessOptNoTransform() {        return (Opt<Access>)getChildNoTransform(2);    }    // Declared in ShadowClass.ast at line 2    // Declared in ShadowClass.ast line 3    public void setImplementsList(List<Access> list) {        setChild(list, 3);    }    // Declared in ShadowClass.ast at line 6    private int getNumImplements = 0;    // Declared in ShadowClass.ast at line 7    public int getNumImplements() {        return getImplementsList().getNumChild();    }    // Declared in ShadowClass.ast at line 11     @SuppressWarnings({"unchecked", "cast"})  public Access getImplements(int i) {        return (Access)getImplementsList().getChild(i);    }    // Declared in ShadowClass.ast at line 15    public void addImplements(Access node) {        List<Access> list = getImplementsList();        list.addChild(node);    }

⌨️ 快捷键说明

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