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

📄 expr.java

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

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 Expr extends ASTNode<ASTNode> implements Cloneable {
    public void flushCache() {        super.flushCache();        constant_visited = -1;        isPositive_visited = -1;        representableIn_TypeDecl_visited = new java.util.HashMap(4);        isConstant_visited = -1;        isTrue_visited = -1;        isFalse_visited = -1;        varDecl_visited = -1;        isDAafterFalse_Variable_visited = new java.util.HashMap(4);        isDAafterTrue_Variable_visited = new java.util.HashMap(4);        isDAafter_Variable_visited = new java.util.HashMap(4);        isDUafterFalse_Variable_visited = new java.util.HashMap(4);        isDUafterTrue_Variable_visited = new java.util.HashMap(4);        isDUafter_Variable_visited = new java.util.HashMap(4);        mostSpecificConstructor_Collection_visited = new java.util.HashMap(4);        applicableAndAccessible_ConstructorDecl_visited = new java.util.HashMap(4);        hasQualifiedPackage_String_visited = new java.util.HashMap(4);        qualifiedLookupType_String_visited = new java.util.HashMap(4);        qualifiedLookupVariable_String_visited = new java.util.HashMap(4);        packageName_visited = -1;        typeName_visited = -1;        isTypeAccess_visited = -1;        isMethodAccess_visited = -1;        isFieldAccess_visited = -1;        isSuperAccess_visited = -1;        isThisAccess_visited = -1;        isPackageAccess_visited = -1;        isArrayAccess_visited = -1;        isClassAccess_visited = -1;        isSuperConstructorAccess_visited = -1;        isLeftChildOfDot_visited = -1;        isRightChildOfDot_visited = -1;        parentDot_visited = -1;        hasParentDot_visited = -1;        nextAccess_visited = -1;        hasNextAccess_visited = -1;        enclosingStmt_visited = -1;        isVariable_visited = -1;        isUnknown_visited = -1;        staticContextQualifier_visited = -1;        isDest_visited = -1;        isSource_visited = -1;        isIncOrDec_visited = -1;        isDAbefore_Variable_visited = new java.util.HashMap(4);        isDUbefore_Variable_visited = new java.util.HashMap(4);        lookupMethod_String_visited = new java.util.HashMap(4);        typeBoolean_visited = -1;        typeByte_visited = -1;        typeShort_visited = -1;        typeChar_visited = -1;        typeInt_visited = -1;        typeLong_visited = -1;        typeFloat_visited = -1;        typeDouble_visited = -1;        typeString_visited = -1;        typeVoid_visited = -1;        typeNull_visited = -1;        unknownType_visited = -1;        hasPackage_String_visited = new java.util.HashMap(4);        lookupType_String_String_visited = new java.util.HashMap(4);        lookupType_String_visited = new java.util.HashMap(4);        lookupVariable_String_visited = new java.util.HashMap(4);        nameType_visited = -1;        enclosingBodyDecl_visited = -1;        hostPackage_visited = -1;        hostType_visited = -1;        methodHost_visited = -1;        inStaticContext_visited = -1;    }     @SuppressWarnings({"unchecked", "cast"})  public Expr clone() throws CloneNotSupportedException {        Expr node = (Expr)super.clone();        node.constant_visited = -1;        node.isPositive_visited = -1;        node.representableIn_TypeDecl_visited = new java.util.HashMap(4);        node.isConstant_visited = -1;        node.isTrue_visited = -1;        node.isFalse_visited = -1;        node.varDecl_visited = -1;        node.isDAafterFalse_Variable_visited = new java.util.HashMap(4);        node.isDAafterTrue_Variable_visited = new java.util.HashMap(4);        node.isDAafter_Variable_visited = new java.util.HashMap(4);        node.isDUafterFalse_Variable_visited = new java.util.HashMap(4);        node.isDUafterTrue_Variable_visited = new java.util.HashMap(4);        node.isDUafter_Variable_visited = new java.util.HashMap(4);        node.mostSpecificConstructor_Collection_visited = new java.util.HashMap(4);        node.applicableAndAccessible_ConstructorDecl_visited = new java.util.HashMap(4);        node.hasQualifiedPackage_String_visited = new java.util.HashMap(4);        node.qualifiedLookupType_String_visited = new java.util.HashMap(4);        node.qualifiedLookupVariable_String_visited = new java.util.HashMap(4);        node.packageName_visited = -1;        node.typeName_visited = -1;        node.isTypeAccess_visited = -1;        node.isMethodAccess_visited = -1;        node.isFieldAccess_visited = -1;        node.isSuperAccess_visited = -1;        node.isThisAccess_visited = -1;        node.isPackageAccess_visited = -1;        node.isArrayAccess_visited = -1;        node.isClassAccess_visited = -1;        node.isSuperConstructorAccess_visited = -1;        node.isLeftChildOfDot_visited = -1;        node.isRightChildOfDot_visited = -1;        node.parentDot_visited = -1;        node.hasParentDot_visited = -1;        node.nextAccess_visited = -1;        node.hasNextAccess_visited = -1;        node.enclosingStmt_visited = -1;        node.isVariable_visited = -1;        node.isUnknown_visited = -1;        node.staticContextQualifier_visited = -1;        node.isDest_visited = -1;        node.isSource_visited = -1;        node.isIncOrDec_visited = -1;        node.isDAbefore_Variable_visited = new java.util.HashMap(4);        node.isDUbefore_Variable_visited = new java.util.HashMap(4);        node.lookupMethod_String_visited = new java.util.HashMap(4);        node.typeBoolean_visited = -1;        node.typeByte_visited = -1;        node.typeShort_visited = -1;        node.typeChar_visited = -1;        node.typeInt_visited = -1;        node.typeLong_visited = -1;        node.typeFloat_visited = -1;        node.typeDouble_visited = -1;        node.typeString_visited = -1;        node.typeVoid_visited = -1;        node.typeNull_visited = -1;        node.unknownType_visited = -1;        node.hasPackage_String_visited = new java.util.HashMap(4);        node.lookupType_String_String_visited = new java.util.HashMap(4);        node.lookupType_String_visited = new java.util.HashMap(4);        node.lookupVariable_String_visited = new java.util.HashMap(4);        node.nameType_visited = -1;        node.enclosingBodyDecl_visited = -1;        node.hostPackage_visited = -1;        node.hostType_visited = -1;        node.methodHost_visited = -1;        node.inStaticContext_visited = -1;        node.in$Circle(false);        node.is$Final(false);    return node;    }    // Declared in LookupType.jrag at line 373      public SimpleSet keepAccessibleTypes(SimpleSet oldSet) {    SimpleSet newSet = SimpleSet.emptySet;    TypeDecl hostType = hostType();    for(Iterator iter = oldSet.iterator(); iter.hasNext(); ) {      TypeDecl t = (TypeDecl)iter.next();      if((hostType != null && t.accessibleFrom(hostType)) || (hostType == null && t.accessibleFromPackage(hostPackage())))        newSet = newSet.add(t);    }    return newSet;  }    // Declared in LookupVariable.jrag at line 164  // remove fields that are not accessible when using this Expr as qualifier  public SimpleSet keepAccessibleFields(SimpleSet oldSet) {    SimpleSet newSet = SimpleSet.emptySet;    for(Iterator iter = oldSet.iterator(); iter.hasNext(); ) {      Variable v = (Variable)iter.next();      if(v instanceof FieldDeclaration) {        FieldDeclaration f = (FieldDeclaration)v;        if(mayAccess(f))          newSet = newSet.add(f);      }    }    return newSet;  }    // Declared in LookupVariable.jrag at line 187  private boolean mayAccess(FieldDeclaration f) {    if(f.isPublic())       return true;    else if(f.isProtected()) {      if(f.hostPackage().equals(hostPackage()))        return true;      TypeDecl C = f.hostType();      TypeDecl S = hostType().subclassWithinBody(C);      TypeDecl Q = type();      if(S == null)        return false;      if(f.isInstanceVariable() && !isSuperAccess())        return Q.instanceOf(S);      return true;    }    else if(f.isPrivate())      return f.hostType().topLevelType() == hostType().topLevelType();    else      return f.hostPackage().equals(hostType().hostPackage());  }    // Declared in ResolveAmbiguousNames.jrag at line 99  public Dot qualifiesAccess(Access access) {    Dot dot = new Dot(this, access);    dot.lastDot = dot;    return dot;  }    // Declared in java.ast at line 3    // Declared in java.ast line 97
    public Expr() {        super();

    }    // Declared in java.ast at line 9
  protected int numChildren() {
    return 0;
  }    // Declared in java.ast at line 12
  public boolean mayHaveRewrite() { return false; }    // Declared in TypeAnalysis.jrag at line 277 @SuppressWarnings({"unchecked", "cast"})     public abstract TypeDecl type();    protected int constant_visited = -1;    // Declared in ConstantExpression.jrag at line 98 @SuppressWarnings({"unchecked", "cast"})     public Constant constant() {        if(constant_visited == boundariesCrossed)            throw new RuntimeException("Circular definition of attr: constant in class: ");        constant_visited = boundariesCrossed;        Constant constant_value = constant_compute();        constant_visited = -1;        return constant_value;    }    private Constant constant_compute() {    throw new UnsupportedOperationException("ConstantExpression operation constant" +      " not supported for type " + getClass().getName());   }    protected int isPositive_visited = -1;    // Declared in ConstantExpression.jrag at line 228 @SuppressWarnings({"unchecked", "cast"})     public boolean isPositive() {        if(isPositive_visited == boundariesCrossed)            throw new RuntimeException("Circular definition of attr: isPositive in class: ");        isPositive_visited = boundariesCrossed;        boolean isPositive_value = isPositive_compute();        isPositive_visited = -1;        return isPositive_value;    }    private boolean isPositive_compute() {  return false;  }    protected java.util.Map representableIn_TypeDecl_visited;    // Declared in ConstantExpression.jrag at line 438 @SuppressWarnings({"unchecked", "cast"})     public boolean representableIn(TypeDecl t) {        Object _parameters = t;if(representableIn_TypeDecl_visited == null) representableIn_TypeDecl_visited = new java.util.HashMap(4);        if(new Integer(boundariesCrossed).equals(representableIn_TypeDecl_visited.get(_parameters)))            throw new RuntimeException("Circular definition of attr: representableIn in class: ");        representableIn_TypeDecl_visited.put(_parameters, new Integer(boundariesCrossed));        boolean representableIn_TypeDecl_value = representableIn_compute(t);        representableIn_TypeDecl_visited.remove(_parameters);        return representableIn_TypeDecl_value;    }    private boolean representableIn_compute(TypeDecl t) {	  	if (!type().isByte() && !type().isChar() && !type().isShort() && !type().isInt()) {  		return false;  	}  	if (t.isByte())  		return constant().intValue() >= Byte.MIN_VALUE && constant().intValue() <= Byte.MAX_VALUE;  	if (t.isChar())  		return constant().intValue() >= Character.MIN_VALUE && constant().intValue() <= Character.MAX_VALUE;  	if (t.isShort())

⌨️ 快捷键说明

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