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 + -
显示快捷键?