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

📄 typedecl.java

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

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 abstract class TypeDecl extends ASTNode<ASTNode> implements Cloneable, SimpleSet, Iterator, VariableScope {
    public void flushCache() {        super.flushCache();        accessibleFromPackage_String_values = null;        accessibleFromExtend_TypeDecl_values = null;        accessibleFrom_TypeDecl_values = null;        dimension_computed = false;        elementType_computed = false;        elementType_value = null;        arrayType_computed = false;        arrayType_value = null;        isException_computed = false;        isCheckedException_computed = false;        isUncheckedException_computed = false;        mayCatch_TypeDecl_values = null;        constructors_computed = false;        constructors_value = null;        unqualifiedLookupMethod_String_values = null;        methodsNameMap_computed = false;        methodsNameMap_value = null;        localMethodsSignatureMap_computed = false;        localMethodsSignatureMap_value = null;        methodsSignatureMap_computed = false;        methodsSignatureMap_value = null;        ancestorMethods_String_values = null;        localTypeDecls_String_values = null;        memberTypes_String_values = null;        localFields_String_values = null;        localFieldsMap_computed = false;        localFieldsMap_value = null;        memberFields_String_values = null;        hasAbstract_computed = false;        unimplementedMethods_computed = false;        unimplementedMethods_value = null;        isPublic_computed = false;        isStatic_computed = false;        fullName_computed = false;        fullName_value = null;        typeName_computed = false;        typeName_value = null;        narrowingConversionTo_TypeDecl_values = null;        methodInvocationConversionTo_TypeDecl_values = null;        castingConversionTo_TypeDecl_values = null;        isString_computed = false;        isObject_computed = false;        instanceOf_TypeDecl_values = null;        isCircular_visited = 0;        isCircular_computed = false;        isCircular_initialized = false;        innerClassesAttributeEntries_computed = false;        innerClassesAttributeEntries_value = null;        attributes_computed = false;        attributes_value = null;        clinit_attributes_computed = false;        clinit_attributes_value = null;        constantPool_computed = false;        constantPool_value = null;        constantPoolName_computed = false;        constantPoolName_value = null;        typeDescriptor_computed = false;        typeDescriptor_value = null;        hasClinit_computed = false;        bytecodes_ConstantPool_values = null;        flags_computed = false;        bcFields_computed = false;        bcFields_value = null;        enclosingVariables_computed = false;        enclosingVariables_value = null;        uniqueIndex_computed = false;        jvmName_computed = false;        jvmName_value = null;        componentType_computed = false;        componentType_value = null;        isDAbefore_Variable_values = null;        isDUbefore_Variable_values = null;        typeException_computed = false;        typeException_value = null;        typeRuntimeException_computed = false;        typeRuntimeException_value = null;        typeError_computed = false;        typeError_value = null;        lookupMethod_String_values = null;        typeObject_computed = false;        typeObject_value = null;        lookupType_String_values = null;        lookupVariable_String_values = null;        packageName_computed = false;        packageName_value = null;        isAnonymous_computed = false;        unknownType_computed = false;        unknownType_value = null;        inExplicitConstructorInvocation_computed = false;        inStaticContext_computed = false;        destinationPath_computed = false;        destinationPath_value = null;    }     @SuppressWarnings({"unchecked", "cast"})  public TypeDecl clone() throws CloneNotSupportedException {        TypeDecl node = (TypeDecl)super.clone();        node.accessibleFromPackage_String_values = null;        node.accessibleFromExtend_TypeDecl_values = null;        node.accessibleFrom_TypeDecl_values = null;        node.dimension_computed = false;        node.elementType_computed = false;        node.elementType_value = null;        node.arrayType_computed = false;        node.arrayType_value = null;        node.isException_computed = false;        node.isCheckedException_computed = false;        node.isUncheckedException_computed = false;        node.mayCatch_TypeDecl_values = null;        node.constructors_computed = false;        node.constructors_value = null;        node.unqualifiedLookupMethod_String_values = null;        node.methodsNameMap_computed = false;        node.methodsNameMap_value = null;        node.localMethodsSignatureMap_computed = false;        node.localMethodsSignatureMap_value = null;        node.methodsSignatureMap_computed = false;        node.methodsSignatureMap_value = null;        node.ancestorMethods_String_values = null;        node.localTypeDecls_String_values = null;        node.memberTypes_String_values = null;        node.localFields_String_values = null;        node.localFieldsMap_computed = false;        node.localFieldsMap_value = null;        node.memberFields_String_values = null;        node.hasAbstract_computed = false;        node.unimplementedMethods_computed = false;        node.unimplementedMethods_value = null;        node.isPublic_computed = false;        node.isStatic_computed = false;        node.fullName_computed = false;        node.fullName_value = null;        node.typeName_computed = false;        node.typeName_value = null;        node.narrowingConversionTo_TypeDecl_values = null;        node.methodInvocationConversionTo_TypeDecl_values = null;        node.castingConversionTo_TypeDecl_values = null;        node.isString_computed = false;        node.isObject_computed = false;        node.instanceOf_TypeDecl_values = null;        node.isCircular_visited = 0;        node.isCircular_computed = false;        node.isCircular_initialized = false;        node.innerClassesAttributeEntries_computed = false;        node.innerClassesAttributeEntries_value = null;        node.attributes_computed = false;        node.attributes_value = null;        node.clinit_attributes_computed = false;        node.clinit_attributes_value = null;        node.constantPool_computed = false;        node.constantPool_value = null;        node.constantPoolName_computed = false;        node.constantPoolName_value = null;        node.typeDescriptor_computed = false;        node.typeDescriptor_value = null;        node.hasClinit_computed = false;        node.bytecodes_ConstantPool_values = null;        node.flags_computed = false;        node.bcFields_computed = false;        node.bcFields_value = null;        node.enclosingVariables_computed = false;        node.enclosingVariables_value = null;        node.uniqueIndex_computed = false;        node.jvmName_computed = false;        node.jvmName_value = null;        node.componentType_computed = false;        node.componentType_value = null;        node.isDAbefore_Variable_values = null;        node.isDUbefore_Variable_values = null;        node.typeException_computed = false;        node.typeException_value = null;        node.typeRuntimeException_computed = false;        node.typeRuntimeException_value = null;        node.typeError_computed = false;        node.typeError_value = null;        node.lookupMethod_String_values = null;        node.typeObject_computed = false;        node.typeObject_value = null;        node.lookupType_String_values = null;        node.lookupVariable_String_values = null;        node.packageName_computed = false;        node.packageName_value = null;        node.isAnonymous_computed = false;        node.unknownType_computed = false;        node.unknownType_value = null;        node.inExplicitConstructorInvocation_computed = false;        node.inStaticContext_computed = false;        node.destinationPath_computed = false;        node.destinationPath_value = null;        node.in$Circle(false);        node.is$Final(false);    return node;    }    // Declared in AnonymousClasses.jrag at line 28    public int anonymousIndex = 0;    // Declared in AnonymousClasses.jrag at line 45  public int nextAnonymousIndex() {    if(isNestedType())      return enclosingType().nextAnonymousIndex();    return anonymousIndex++;  }    // Declared in BoundNames.jrag at line 24  // The memberMethods(String name) attribute is used to lookup member methods.  // It uses the methodsNameMap() map where a name is mapped to a list of member  // methods. We extend the map with the declaration m by either appending  // it to an existing list of declarations or adding a new list. That list  // will be used to name bind a new qualified name access.  public MethodDecl addMemberMethod(MethodDecl m) {    addBodyDecl(m);    return (MethodDecl)getBodyDecl(getNumBodyDecl()-1);    /*    HashMap map = methodsNameMap();    ArrayList list = (ArrayList)map.get(m.name());    if(list == null) {      list = new ArrayList(4);      map.put(m.name(), list);    }    list.add(m);    if(!memberMethods(m.name()).contains(m))      throw new Error("The method " + m.signature() + " added to " + typeName() + " can not be found using lookupMemberMethod");    */  }    // Declared in BoundNames.jrag at line 40  public ConstructorDecl addConstructor(ConstructorDecl c) {    addBodyDecl(c);    return (ConstructorDecl)getBodyDecl(getNumBodyDecl()-1);  }    // Declared in BoundNames.jrag at line 45  public ClassDecl addMemberClass(ClassDecl c) {    addBodyDecl(new MemberClassDecl(c));    return ((MemberClassDecl)getBodyDecl(getNumBodyDecl()-1)).getClassDecl();  }    // Declared in BoundNames.jrag at line 52  // the new field must be unique otherwise an error occurs  public FieldDeclaration addMemberField(FieldDeclaration f) {    addBodyDecl(f);    return (FieldDeclaration)getBodyDecl(getNumBodyDecl()-1);    //if(!memberFields(f.name()).contains(f))    //  throw new Error("The field " + f.name() + " added to " + typeName() + " can not be found using lookupMemberField");  }    // Declared in BoundNames.jrag at line 90  public TypeAccess createBoundAccess() {    return new BoundTypeAccess("", name(), this);  }    // Declared in DataStructures.jrag at line 118  public SimpleSet add(Object o) {    return new SimpleSetImpl().add(this).add(o);  }    // Declared in DataStructures.jrag at line 124  private TypeDecl iterElem;    // Declared in DataStructures.jrag at line 125  public Iterator iterator() { iterElem = this; return this; }    // Declared in DataStructures.jrag at line 126  public boolean hasNext() { return iterElem != null; }    // Declared in DataStructures.jrag at line 127  public Object next() { Object o = iterElem; iterElem = null; return o; }    // Declared in DataStructures.jrag at line 128  public void remove() { throw new UnsupportedOperationException(); }    // Declared in DeclareBeforeUse.jrag at line 41  public boolean declaredBeforeUse(Variable decl, ASTNode use) {    int indexDecl = ((ASTNode)decl).varChildIndex(this);    int indexUse = use.varChildIndex(this);    return indexDecl < indexUse;  }    // Declared in DeclareBeforeUse.jrag at line 46  public boolean declaredBeforeUse(Variable decl, int indexUse) {    int indexDecl = ((ASTNode)decl).varChildIndex(this);    return indexDecl < indexUse;  }    // Declared in LookupConstructor.jrag at line 88  public ConstructorDecl lookupConstructor(ConstructorDecl signature) {    for(Iterator iter = constructors().iterator(); iter.hasNext(); ) {      ConstructorDecl decl = (ConstructorDecl)iter.next();      if(decl.sameSignature(signature)) {        return decl;      }    }    return null;  }    // Declared in LookupMethod.jrag at line 214  public Iterator localMethodsIterator() {    return new Iterator() {      private Iterator outer = localMethodsSignatureMap().values().iterator();      private Iterator inner = null;      public boolean hasNext() {        if((inner == null || !inner.hasNext()) && outer.hasNext())          inner = ((SimpleSet)outer.next()).iterator();        return inner == null ? false : inner.hasNext();      }      public Object next() {        return inner.next();      }      public void remove() { throw new UnsupportedOperationException(); }    };    //return localMethodsSignatureMap().values().iterator();  }    // Declared in LookupMethod.jrag at line 282  // iterate over all member methods in this type  public Iterator methodsIterator() {    return new Iterator() {      private Iterator outer = methodsSignatureMap().values().iterator();      private Iterator inner = null;      public boolean hasNext() {        if((inner == null || !inner.hasNext()) && outer.hasNext())          inner = ((SimpleSet)outer.next()).iterator();        return inner != null ? inner.hasNext() : false;      }      public Object next() {        return inner.next();      }      public void remove() { throw new UnsupportedOperationException(); }    };  }    // Declared in LookupMethod.jrag at line 347  protected boolean allMethodsAbstract(SimpleSet set) {    if(set == null) return true;

⌨️ 快捷键说明

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