📄 constructordecl.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.*;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 + -