📄 typedecl.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.*; 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 + -