varaccess.java

来自「JDK1.4编译器后端」· Java 代码 · 共 753 行 · 第 1/2 页

JAVA
753
字号
    }    super.transformation();  }    // Declared in java.ast at line 3    // Declared in java.ast line 16
    public VarAccess() {        super();

    }    // Declared in java.ast at line 10
    // Declared in java.ast line 16    public VarAccess(String p0) {        setID(p0);    }    // Declared in java.ast at line 15    // Declared in java.ast line 16    public VarAccess(beaver.Symbol p0) {        setID(p0);    }    // Declared in java.ast at line 19  protected int numChildren() {
    return 0;
  }    // Declared in java.ast at line 22
  public boolean mayHaveRewrite() { return false; }    // Declared in java.ast at line 2    // Declared in java.ast line 16    private String tokenString_ID;    // Declared in java.ast at line 3    public void setID(String value) {        tokenString_ID = value;    }    // Declared in java.ast at line 6    public int IDstart;    // Declared in java.ast at line 7    public int IDend;    // Declared in java.ast at line 8    public void setID(beaver.Symbol symbol) {        if(symbol.value != null && !(symbol.value instanceof String))          throw new UnsupportedOperationException("setID is only valid for String lexemes");        tokenString_ID = (String)symbol.value;        IDstart = symbol.getStart();        IDend = symbol.getEnd();    }    // Declared in java.ast at line 15    public String getID() {        return tokenString_ID != null ? tokenString_ID : "";    }    // Declared in ConstantExpression.jrag at line 108 @SuppressWarnings({"unchecked", "cast"})     public Constant constant() {        Constant constant_value = constant_compute();        return constant_value;    }    private Constant constant_compute() {  return type().cast(decl().getInit().constant());  }    protected int isConstant_visited;    protected boolean isConstant_computed = false;    protected boolean isConstant_initialized = false;    protected boolean isConstant_value; @SuppressWarnings({"unchecked", "cast"})     public boolean isConstant() {        if(isConstant_computed)            return isConstant_value;        if (!isConstant_initialized) {            isConstant_initialized = true;            isConstant_value = false;        }        if (!IN_CIRCLE) {            IN_CIRCLE = true;            int num = boundariesCrossed;        boolean isFinal = this.is$Final();            CIRCLE_INDEX = 1;            do {                isConstant_visited = CIRCLE_INDEX;                CHANGE = false;                boolean new_isConstant_value = isConstant_compute();                if (new_isConstant_value!=isConstant_value)                    CHANGE = true;                isConstant_value = new_isConstant_value;                 CIRCLE_INDEX++;            } while (CHANGE);            if(isFinal && num == boundariesCrossed){            isConstant_computed = true;            }            else {            RESET_CYCLE = true;            isConstant_compute();            RESET_CYCLE = false;              isConstant_computed = false;              isConstant_initialized = false;            }            IN_CIRCLE = false;             return isConstant_value;        }        if(isConstant_visited != CIRCLE_INDEX) {            isConstant_visited = CIRCLE_INDEX;            if (RESET_CYCLE) {                isConstant_computed = false;                isConstant_initialized = false;                return isConstant_value;            }            boolean new_isConstant_value = isConstant_compute();            if (new_isConstant_value!=isConstant_value)                CHANGE = true;            isConstant_value = new_isConstant_value;             return isConstant_value;        }        return isConstant_value;    }    private boolean isConstant_compute() {    Variable v = decl();    if(v instanceof FieldDeclaration) {      FieldDeclaration f = (FieldDeclaration)v;      return f.isConstant() && (!isQualified() || (isQualified() && qualifier().isTypeAccess()));    }    boolean result = v.isFinal() && v.hasInit() && v.getInit().isConstant() && (v.type().isPrimitive() || v.type().isString());    return result && (!isQualified() || (isQualified() && qualifier().isTypeAccess()));  }    // Declared in DefiniteAssignment.jrag at line 60 @SuppressWarnings({"unchecked", "cast"})     public Variable varDecl() {        Variable varDecl_value = varDecl_compute();        return varDecl_value;    }    private Variable varDecl_compute() {  return decl();  }    protected java.util.Map isDAafter_Variable_values;    // Declared in DefiniteAssignment.jrag at line 353 @SuppressWarnings({"unchecked", "cast"})     public boolean isDAafter(Variable v) {        Object _parameters = v;if(isDAafter_Variable_values == null) isDAafter_Variable_values = new java.util.HashMap(4);        if(isDAafter_Variable_values.containsKey(_parameters))            return ((Boolean)isDAafter_Variable_values.get(_parameters)).booleanValue();        int num = boundariesCrossed;        boolean isFinal = this.is$Final();        boolean isDAafter_Variable_value = isDAafter_compute(v);        if(isFinal && num == boundariesCrossed)            isDAafter_Variable_values.put(_parameters, Boolean.valueOf(isDAafter_Variable_value));        return isDAafter_Variable_value;    }    private boolean isDAafter_compute(Variable v) {    return (isDest() && decl() == v) || isDAbefore(v);  }    // Declared in DefiniteAssignment.jrag at line 833 @SuppressWarnings({"unchecked", "cast"})     public boolean isDUafter(Variable v) {        boolean isDUafter_Variable_value = isDUafter_compute(v);        return isDUafter_Variable_value;    }    private boolean isDUafter_compute(Variable v) {    if(isDest() && decl() == v)      return false;    return isDUbefore(v);  }    // Declared in DefiniteAssignment.jrag at line 1208 @SuppressWarnings({"unchecked", "cast"})     public boolean unassignedEverywhere(Variable v, TryStmt stmt) {        boolean unassignedEverywhere_Variable_TryStmt_value = unassignedEverywhere_compute(v, stmt);        return unassignedEverywhere_Variable_TryStmt_value;    }    private boolean unassignedEverywhere_compute(Variable v, TryStmt stmt) {    if(isDest() && decl() == v && enclosingStmt().reachable()) {      return false;    }    return super.unassignedEverywhere(v, stmt);  }    protected boolean decls_computed = false;    protected SimpleSet decls_value;    // Declared in LookupVariable.jrag at line 230 @SuppressWarnings({"unchecked", "cast"})     public SimpleSet decls() {        if(decls_computed)            return decls_value;        int num = boundariesCrossed;        boolean isFinal = this.is$Final();        decls_value = decls_compute();        if(isFinal && num == boundariesCrossed)            decls_computed = true;        return decls_value;    }    private SimpleSet decls_compute() {    SimpleSet set = lookupVariable(name());    if(set.size() == 1) {      Variable v = (Variable)set.iterator().next();      if(!isQualified() && inStaticContext()) {        if(v.isInstanceVariable() && !hostType().memberFields(v.name()).isEmpty())          return SimpleSet.emptySet;      }      else if(isQualified() && qualifier().staticContextQualifier()) {        if(v.isInstanceVariable())          return SimpleSet.emptySet;      }    }    return set;  }    protected boolean decl_computed = false;    protected Variable decl_value;    // Declared in LookupVariable.jrag at line 245 @SuppressWarnings({"unchecked", "cast"})     public Variable decl() {        if(decl_computed)            return decl_value;        int num = boundariesCrossed;        boolean isFinal = this.is$Final();        decl_value = decl_compute();        if(isFinal && num == boundariesCrossed)            decl_computed = true;        return decl_value;    }    private Variable decl_compute() {    SimpleSet decls = decls();    if(decls.size() == 1)      return (Variable)decls.iterator().next();    return unknownField();  }    // Declared in NameCheck.jrag at line 221 @SuppressWarnings({"unchecked", "cast"})     public boolean inSameInitializer() {        boolean inSameInitializer_value = inSameInitializer_compute();        return inSameInitializer_value;    }    private boolean inSameInitializer_compute() {    BodyDecl b = closestBodyDecl(decl().hostType());    if(b == null) return false;    if(b instanceof FieldDeclaration && ((FieldDeclaration)b).isStatic() == decl().isStatic())      return true;    if(b instanceof InstanceInitializer && !decl().isStatic())      return true;    if(b instanceof StaticInitializer && decl().isStatic())      return true;    return false;  }    // Declared in NameCheck.jrag at line 233 @SuppressWarnings({"unchecked", "cast"})     public boolean simpleAssignment() {        boolean simpleAssignment_value = simpleAssignment_compute();        return simpleAssignment_value;    }    private boolean simpleAssignment_compute() {  return isDest() && getParent() instanceof AssignSimpleExpr;  }    // Declared in NameCheck.jrag at line 235 @SuppressWarnings({"unchecked", "cast"})     public boolean inDeclaringClass() {        boolean inDeclaringClass_value = inDeclaringClass_compute();        return inDeclaringClass_value;    }    private boolean inDeclaringClass_compute() {  return hostType() == decl().hostType();  }    // Declared in PrettyPrint.jadd at line 781 @SuppressWarnings({"unchecked", "cast"})     public String dumpString() {        String dumpString_value = dumpString_compute();        return dumpString_value;    }    private String dumpString_compute() {  return getClass().getName() + " [" + getID() + "]";  }    // Declared in QualifiedNames.jrag at line 17 @SuppressWarnings({"unchecked", "cast"})     public String name() {        String name_value = name_compute();        return name_value;    }    private String name_compute() {  return getID();  }    protected boolean isFieldAccess_computed = false;    protected boolean isFieldAccess_value;    // Declared in ResolveAmbiguousNames.jrag at line 23 @SuppressWarnings({"unchecked", "cast"})     public boolean isFieldAccess() {        if(isFieldAccess_computed)            return isFieldAccess_value;        int num = boundariesCrossed;        boolean isFinal = this.is$Final();        isFieldAccess_value = isFieldAccess_compute();        if(isFinal && num == boundariesCrossed)            isFieldAccess_computed = true;        return isFieldAccess_value;    }    private boolean isFieldAccess_compute() {  return decl().isClassVariable() || decl().isInstanceVariable();  }    // Declared in SyntacticClassification.jrag at line 111 @SuppressWarnings({"unchecked", "cast"})     public NameType predNameType() {        NameType predNameType_value = predNameType_compute();        return predNameType_value;    }    private NameType predNameType_compute() {  return NameType.AMBIGUOUS_NAME;  }    // Declared in TypeAnalysis.jrag at line 284 @SuppressWarnings({"unchecked", "cast"})     public TypeDecl type() {        if(type_computed)            return type_value;        int num = boundariesCrossed;        boolean isFinal = this.is$Final();        type_value = type_compute();        if(isFinal && num == boundariesCrossed)            type_computed = true;        return type_value;    }    private TypeDecl type_compute() {  return decl().type();  }    // Declared in TypeCheck.jrag at line 17 @SuppressWarnings({"unchecked", "cast"})     public boolean isVariable() {        boolean isVariable_value = isVariable_compute();        return isVariable_value;    }    private boolean isVariable_compute() {  return true;  }    // Declared in InnerClasses.jrag at line 353 @SuppressWarnings({"unchecked", "cast"})     public boolean requiresAccessor() {        boolean requiresAccessor_value = requiresAccessor_compute();        return requiresAccessor_value;    }    private boolean requiresAccessor_compute() {    Variable v = decl();    if(!(v instanceof FieldDeclaration))      return false;    FieldDeclaration f = (FieldDeclaration)v;    if(f.isPrivate() && !hostType().hasField(v.name()))      return true;    if(f.isProtected() && !f.hostPackage().equals(hostPackage()) && !hostType().hasField(v.name()))      return true;    return false;  }    // Declared in TypeHierarchyCheck.jrag at line 122 @SuppressWarnings({"unchecked", "cast"})     public boolean inExplicitConstructorInvocation() {        boolean inExplicitConstructorInvocation_value = getParent().Define_boolean_inExplicitConstructorInvocation(this, null);        return inExplicitConstructorInvocation_value;    }public ASTNode rewriteTo() {    return super.rewriteTo();}}

⌨️ 快捷键说明

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