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

📄 referencetype.java

📁 JDK1.4编译器前端
💻 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.*;// 4.1 The Kinds of Types and Valuespublic abstract class ReferenceType extends TypeDecl implements Cloneable {
    public void flushCache() {        super.flushCache();        wideningConversionTo_TypeDecl_visited = new java.util.HashMap(4);        narrowingConversionTo_TypeDecl_visited = new java.util.HashMap(4);        narrowingConversionTo_TypeDecl_values = null;        isReferenceType_visited = -1;        isSupertypeOfNullType_NullType_visited = new java.util.HashMap(4);    }     @SuppressWarnings({"unchecked", "cast"})  public ReferenceType clone() throws CloneNotSupportedException {        ReferenceType node = (ReferenceType)super.clone();        node.wideningConversionTo_TypeDecl_visited = new java.util.HashMap(4);        node.narrowingConversionTo_TypeDecl_visited = new java.util.HashMap(4);        node.narrowingConversionTo_TypeDecl_values = null;        node.isReferenceType_visited = -1;        node.isSupertypeOfNullType_NullType_visited = new java.util.HashMap(4);        node.in$Circle(false);        node.is$Final(false);    return node;    }    // Declared in java.ast at line 3    // Declared in java.ast line 41
    public ReferenceType() {        super();
        setChild(new List(), 1);

    }    // Declared in java.ast at line 11
    // Declared in java.ast line 41    public ReferenceType(Modifiers p0, String p1, List<BodyDecl> p2) {        setChild(p0, 0);        setID(p1);        setChild(p2, 1);    }    // Declared in java.ast at line 18    // Declared in java.ast line 41    public ReferenceType(Modifiers p0, beaver.Symbol p1, List<BodyDecl> p2) {        setChild(p0, 0);        setID(p1);        setChild(p2, 1);    }    // Declared in java.ast at line 24  protected int numChildren() {
    return 2;
  }    // Declared in java.ast at line 27
  public boolean mayHaveRewrite() { return false; }    // Declared in java.ast at line 2    // Declared in java.ast line 38    public void setModifiers(Modifiers node) {        setChild(node, 0);    }    // Declared in java.ast at line 5    public Modifiers getModifiers() {        return (Modifiers)getChild(0);    }    // Declared in java.ast at line 9    public Modifiers getModifiersNoTransform() {        return (Modifiers)getChildNoTransform(0);    }    // Declared in java.ast at line 2    // Declared in java.ast line 38    public void setBodyDeclList(List<BodyDecl> list) {        setChild(list, 1);    }    // Declared in java.ast at line 6    private int getNumBodyDecl = 0;    // Declared in java.ast at line 7    public int getNumBodyDecl() {        return getBodyDeclList().getNumChild();    }    // Declared in java.ast at line 11     @SuppressWarnings({"unchecked", "cast"})  public BodyDecl getBodyDecl(int i) {        return (BodyDecl)getBodyDeclList().getChild(i);    }    // Declared in java.ast at line 15    public void addBodyDecl(BodyDecl node) {        List<BodyDecl> list = getBodyDeclList();        list.addChild(node);    }    // Declared in java.ast at line 20    public void setBodyDecl(BodyDecl node, int i) {        List<BodyDecl> list = getBodyDeclList();        list.setChild(node, i);    }    // Declared in java.ast at line 24    public List<BodyDecl> getBodyDecls() {        return getBodyDeclList();    }    // Declared in java.ast at line 27    public List<BodyDecl> getBodyDeclsNoTransform() {        return getBodyDeclListNoTransform();    }    // Declared in java.ast at line 31     @SuppressWarnings({"unchecked", "cast"})  public List<BodyDecl> getBodyDeclList() {        return (List<BodyDecl>)getChild(1);    }    // Declared in java.ast at line 35     @SuppressWarnings({"unchecked", "cast"})  public List<BodyDecl> getBodyDeclListNoTransform() {        return (List<BodyDecl>)getChildNoTransform(1);    }    protected java.util.Map wideningConversionTo_TypeDecl_visited;    // Declared in TypeAnalysis.jrag at line 34 @SuppressWarnings({"unchecked", "cast"})     public boolean wideningConversionTo(TypeDecl type) {        Object _parameters = type;if(wideningConversionTo_TypeDecl_visited == null) wideningConversionTo_TypeDecl_visited = new java.util.HashMap(4);        if(new Integer(boundariesCrossed).equals(wideningConversionTo_TypeDecl_visited.get(_parameters)))            throw new RuntimeException("Circular definition of attr: wideningConversionTo in class: ");        wideningConversionTo_TypeDecl_visited.put(_parameters, new Integer(boundariesCrossed));        boolean wideningConversionTo_TypeDecl_value = wideningConversionTo_compute(type);        wideningConversionTo_TypeDecl_visited.remove(_parameters);        return wideningConversionTo_TypeDecl_value;    }    private boolean wideningConversionTo_compute(TypeDecl type) {  return instanceOf(type);  }    protected java.util.Map narrowingConversionTo_TypeDecl_visited;    // Declared in TypeAnalysis.jrag at line 37 @SuppressWarnings({"unchecked", "cast"})     public boolean narrowingConversionTo(TypeDecl type) {        Object _parameters = type;if(narrowingConversionTo_TypeDecl_visited == null) narrowingConversionTo_TypeDecl_visited = new java.util.HashMap(4);if(narrowingConversionTo_TypeDecl_values == null) narrowingConversionTo_TypeDecl_values = new java.util.HashMap(4);        if(narrowingConversionTo_TypeDecl_values.containsKey(_parameters))            return ((Boolean)narrowingConversionTo_TypeDecl_values.get(_parameters)).booleanValue();        if(new Integer(boundariesCrossed).equals(narrowingConversionTo_TypeDecl_visited.get(_parameters)))            throw new RuntimeException("Circular definition of attr: narrowingConversionTo in class: ");        narrowingConversionTo_TypeDecl_visited.put(_parameters, new Integer(boundariesCrossed));        int num = boundariesCrossed;        boolean isFinal = this.is$Final();        boolean narrowingConversionTo_TypeDecl_value = narrowingConversionTo_compute(type);        if(isFinal && num == boundariesCrossed)            narrowingConversionTo_TypeDecl_values.put(_parameters, Boolean.valueOf(narrowingConversionTo_TypeDecl_value));        narrowingConversionTo_TypeDecl_visited.remove(_parameters);        return narrowingConversionTo_TypeDecl_value;    }    private boolean narrowingConversionTo_compute(TypeDecl type) {    if(type.instanceOf(this))      return true;    if(isClassDecl() && !getModifiers().isFinal() && type.isInterfaceDecl())      return true;    if(isInterfaceDecl() && type.isClassDecl() && !type.getModifiers().isFinal())      return true;    if(isInterfaceDecl() && type.instanceOf(this))      return true;    if(fullName().equals("java.lang.Object") && type.isInterfaceDecl())      return true;    // Dragons    // TODO: Check if both are interfaces with compatible methods    if(isArrayDecl() && type.isArrayDecl() && elementType().instanceOf(type.elementType()))      return true;    return false;  }    protected int isReferenceType_visited = -1;    // Declared in TypeAnalysis.jrag at line 167 @SuppressWarnings({"unchecked", "cast"})     public boolean isReferenceType() {        if(isReferenceType_visited == boundariesCrossed)            throw new RuntimeException("Circular definition of attr: isReferenceType in class: ");        isReferenceType_visited = boundariesCrossed;        boolean isReferenceType_value = isReferenceType_compute();        isReferenceType_visited = -1;        return isReferenceType_value;    }    private boolean isReferenceType_compute() {  return true;  }    protected java.util.Map isSupertypeOfNullType_NullType_visited;    // Declared in TypeAnalysis.jrag at line 484 @SuppressWarnings({"unchecked", "cast"})     public boolean isSupertypeOfNullType(NullType type) {        Object _parameters = type;if(isSupertypeOfNullType_NullType_visited == null) isSupertypeOfNullType_NullType_visited = new java.util.HashMap(4);        if(new Integer(boundariesCrossed).equals(isSupertypeOfNullType_NullType_visited.get(_parameters)))            throw new RuntimeException("Circular definition of attr: isSupertypeOfNullType in class: ");        isSupertypeOfNullType_NullType_visited.put(_parameters, new Integer(boundariesCrossed));        boolean isSupertypeOfNullType_NullType_value = isSupertypeOfNullType_compute(type);        isSupertypeOfNullType_NullType_visited.remove(_parameters);        return isSupertypeOfNullType_NullType_value;    }    private boolean isSupertypeOfNullType_compute(NullType type) {  return true;  }public ASTNode rewriteTo() {    return super.rewriteTo();}}

⌨️ 快捷键说明

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