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

📄 constructordecl.java

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

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 class ConstructorDecl extends BodyDecl implements Cloneable {
    public void flushCache() {        super.flushCache();        accessibleFrom_TypeDecl_visited = new java.util.HashMap(4);        accessibleFrom_TypeDecl_values = null;        isDAafter_Variable_visited = new java.util.HashMap(4);        isDAafter_Variable_values = null;        isDUafter_Variable_visited = new java.util.HashMap(4);        isDUafter_Variable_values = null;        throwsException_TypeDecl_visited = new java.util.HashMap(4);        throwsException_TypeDecl_values = null;        name_visited = -1;        name_computed = false;        name_value = null;        signature_visited = -1;        signature_computed = false;        signature_value = null;        sameSignature_ConstructorDecl_visited = new java.util.HashMap(4);        sameSignature_ConstructorDecl_values = null;        moreSpecificThan_ConstructorDecl_visited = new java.util.HashMap(4);        moreSpecificThan_ConstructorDecl_values = null;        parameterDeclaration_String_visited = new java.util.HashMap(4);        parameterDeclaration_String_values = null;        isSynthetic_visited = -1;        isPublic_visited = -1;        isPrivate_visited = -1;        isProtected_visited = -1;        circularThisInvocation_ConstructorDecl_visited = new java.util.HashMap(4);        circularThisInvocation_ConstructorDecl_values = null;        type_visited = -1;        isVoid_visited = -1;        handlesException_TypeDecl_visited = new java.util.HashMap(4);        handlesException_TypeDecl_values = null;        unknownType_visited = -1;    }     @SuppressWarnings({"unchecked", "cast"})  public ConstructorDecl clone() throws CloneNotSupportedException {        ConstructorDecl node = (ConstructorDecl)super.clone();        node.accessibleFrom_TypeDecl_visited = new java.util.HashMap(4);        node.accessibleFrom_TypeDecl_values = null;        node.isDAafter_Variable_visited = new java.util.HashMap(4);        node.isDAafter_Variable_values = null;        node.isDUafter_Variable_visited = new java.util.HashMap(4);        node.isDUafter_Variable_values = null;        node.throwsException_TypeDecl_visited = new java.util.HashMap(4);        node.throwsException_TypeDecl_values = null;        node.name_visited = -1;        node.name_computed = false;        node.name_value = null;        node.signature_visited = -1;        node.signature_computed = false;        node.signature_value = null;        node.sameSignature_ConstructorDecl_visited = new java.util.HashMap(4);        node.sameSignature_ConstructorDecl_values = null;        node.moreSpecificThan_ConstructorDecl_visited = new java.util.HashMap(4);        node.moreSpecificThan_ConstructorDecl_values = null;        node.parameterDeclaration_String_visited = new java.util.HashMap(4);        node.parameterDeclaration_String_values = null;        node.isSynthetic_visited = -1;        node.isPublic_visited = -1;        node.isPrivate_visited = -1;        node.isProtected_visited = -1;        node.circularThisInvocation_ConstructorDecl_visited = new java.util.HashMap(4);        node.circularThisInvocation_ConstructorDecl_values = null;        node.type_visited = -1;        node.isVoid_visited = -1;        node.handlesException_TypeDecl_visited = new java.util.HashMap(4);        node.handlesException_TypeDecl_values = null;        node.unknownType_visited = -1;        node.in$Circle(false);        node.is$Final(false);    return node;    }     @SuppressWarnings({"unchecked", "cast"})  public ConstructorDecl copy() {      try {          ConstructorDecl node = (ConstructorDecl)clone();          if(children != null) node.children = (ASTNode[])children.clone();          return node;      } catch (CloneNotSupportedException e) {      }      System.err.println("Error: Could not clone node of type " + getClass().getName() + "!");      return null;    }     @SuppressWarnings({"unchecked", "cast"})  public ConstructorDecl fullCopy() {        ConstructorDecl res = (ConstructorDecl)copy();        for(int i = 0; i < getNumChildNoTransform(); i++) {          ASTNode node = getChildNoTransform(i);          if(node != null) node = node.fullCopy();          res.setChild(node, i);        }        return res;    }    // Declared in LookupConstructor.jrag at line 163  public boolean applicable(List argList) {    if(getNumParameter() != argList.getNumChild())      return false;    for(int i = 0; i < getNumParameter(); i++) {      TypeDecl arg = ((Expr)argList.getChild(i)).type();      TypeDecl parameter = getParameter(i).type();      if(!arg.instanceOf(parameter)) {        return false;      }      }    return true;  }    // Declared in Modifiers.jrag at line 108   public void checkModifiers() {    super.checkModifiers();  }    // Declared in NameCheck.jrag at line 68  public void nameCheck() {    super.nameCheck();    // 8.8    if(!hostType().name().equals(name()))      error("constructor " + name() +" does not have the same name as the simple name of the host class " + hostType().name());        // 8.8.2    if(hostType().lookupConstructor(this) != this)      error("constructor with signature " + signature() + " is multiply declared in type " + hostType().typeName());    if(circularThisInvocation(this))      error("The constructor " + signature() + " may not directly or indirectly invoke itself");  }    // Declared in PrettyPrint.jadd at line 135    public void toString(StringBuffer s) {    s.append(indent());    getModifiers().toString(s);    s.append(name() + "(");    if(getNumParameter() > 0) {      getParameter(0).toString(s);      for(int i = 1; i < getNumParameter(); i++) {        s.append(", ");        getParameter(i).toString(s);      }    }    s.append(")");    if(getNumException() > 0) {      s.append(" throws ");      getException(0).toString(s);      for(int i = 1; i < getNumException(); i++) {        s.append(", ");        getException(i).toString(s);      }    }        s.append(" {\n");    indent++;    if(hasConstructorInvocation()) {      s.append(indent());      getConstructorInvocation().toString(s);    }    for(int i = 0; i < getBlock().getNumStmt(); i++) {      s.append(indent());      getBlock().getStmt(i).toString(s);    }    indent--;    s.append(indent());    s.append("}\n");  }    // Declared in TypeCheck.jrag at line 424  public void typeCheck() {    // 8.8.4 (8.4.4)    TypeDecl exceptionType = typeThrowable();    for(int i = 0; i < getNumException(); i++) {      TypeDecl typeDecl = getException(i).type();      if(!typeDecl.instanceOf(exceptionType))        error(signature() + " throws non throwable type " + typeDecl.fullName());    }  }    // Declared in java.ast at line 3    // Declared in java.ast line 72
    public ConstructorDecl() {        super();
        setChild(new List(), 1);
        setChild(new List(), 2);
        setChild(new Opt(), 3);

    }    // Declared in java.ast at line 13
    // Declared in java.ast line 72    public ConstructorDecl(Modifiers p0, String p1, List<ParameterDeclaration> p2, List<Access> p3, Opt<Stmt> p4, Block p5) {        setChild(p0, 0);        setID(p1);        setChild(p2, 1);        setChild(p3, 2);        setChild(p4, 3);        setChild(p5, 4);    }    // Declared in java.ast at line 23    // Declared in java.ast line 72    public ConstructorDecl(Modifiers p0, beaver.Symbol p1, List<ParameterDeclaration> p2, List<Access> p3, Opt<Stmt> p4, Block p5) {        setChild(p0, 0);        setID(p1);        setChild(p2, 1);        setChild(p3, 2);        setChild(p4, 3);        setChild(p5, 4);    }    // Declared in java.ast at line 32  protected int numChildren() {
    return 5;
  }    // Declared in java.ast at line 35
  public boolean mayHaveRewrite() { return true; }    // Declared in java.ast at line 2    // Declared in java.ast line 72    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 72    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 java.ast at line 2    // Declared in java.ast line 72    public void setParameterList(List<ParameterDeclaration> list) {        setChild(list, 1);    }    // Declared in java.ast at line 6    private int getNumParameter = 0;    // Declared in java.ast at line 7    public int getNumParameter() {        return getParameterList().getNumChild();    }    // Declared in java.ast at line 11     @SuppressWarnings({"unchecked", "cast"})  public ParameterDeclaration getParameter(int i) {        return (ParameterDeclaration)getParameterList().getChild(i);    }    // Declared in java.ast at line 15    public void addParameter(ParameterDeclaration node) {        List<ParameterDeclaration> list = getParameterList();        list.addChild(node);    }    // Declared in java.ast at line 20    public void setParameter(ParameterDeclaration node, int i) {        List<ParameterDeclaration> list = getParameterList();        list.setChild(node, i);    }    // Declared in java.ast at line 24    public List<ParameterDeclaration> getParameters() {        return getParameterList();    }    // Declared in java.ast at line 27    public List<ParameterDeclaration> getParametersNoTransform() {        return getParameterListNoTransform();    }    // Declared in java.ast at line 31     @SuppressWarnings({"unchecked", "cast"})  public List<ParameterDeclaration> getParameterList() {        return (List<ParameterDeclaration>)getChild(1);    }    // Declared in java.ast at line 35     @SuppressWarnings({"unchecked", "cast"})  public List<ParameterDeclaration> getParameterListNoTransform() {        return (List<ParameterDeclaration>)getChildNoTransform(1);    }    // Declared in java.ast at line 2    // Declared in java.ast line 72    public void setExceptionList(List<Access> list) {

⌨️ 快捷键说明

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