?? block.java
字號(hào):
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.*; // a statement that can be reached by break or continuepublic class Block extends Stmt implements Cloneable, VariableScope {
public void flushCache() { super.flushCache(); checkReturnDA_Variable_values = null; isDAafter_Variable_values = null; checkReturnDU_Variable_values = null; isDUafter_Variable_values = null; localVariableDeclaration_String_values = null; canCompleteNormally_computed = false; variableScopeEndLabel_CodeGeneration_values = null; lookupType_String_values = null; lookupVariable_String_values = null; } @SuppressWarnings({"unchecked", "cast"}) public Block clone() throws CloneNotSupportedException { Block node = (Block)super.clone(); node.checkReturnDA_Variable_values = null; node.isDAafter_Variable_values = null; node.checkReturnDU_Variable_values = null; node.isDUafter_Variable_values = null; node.localVariableDeclaration_String_values = null; node.canCompleteNormally_computed = false; node.variableScopeEndLabel_CodeGeneration_values = null; node.lookupType_String_values = null; node.lookupVariable_String_values = null; node.in$Circle(false); node.is$Final(false); return node; } @SuppressWarnings({"unchecked", "cast"}) public Block copy() { try { Block node = (Block)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 Block fullCopy() { Block res = (Block)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 DeclareBeforeUse.jrag at line 21 public boolean declaredBeforeUse(Variable decl, ASTNode use) { int indexDecl = ((ASTNode)decl).varChildIndex(this); int indexUse = use.varChildIndex(this); return indexDecl <= indexUse; } // Declared in DeclareBeforeUse.jrag at line 26 public boolean declaredBeforeUse(Variable decl, int indexUse) { int indexDecl = ((ASTNode)decl).varChildIndex(this); return indexDecl <= indexUse; } // Declared in PrettyPrint.jadd at line 542 // Stmts public void toString(StringBuffer s) { s.append("{\n"); indent++; for(int i = 0; i < getNumStmt(); i++) { s.append(indent()); getStmt(i).toString(s); } indent--; s.append(indent()); s.append("}\n"); } // Declared in CreateBCode.jrag at line 1158 public void createBCode(CodeGeneration gen) { //super.createBCode(gen); for(int i = 0; i < getNumStmt(); i++) { try { getStmt(i).createBCode(gen); } catch (Exception e) { e.printStackTrace(); throw new Error("Error generating code for " + errorPrefix() + " " + getStmt(i)); } } gen.addVariableScopeLabel(variableScopeEndLabel(gen)); } // Declared in java.ast at line 3 // Declared in java.ast line 200
public Block() { super();
setChild(new List(), 0);
} // Declared in java.ast at line 11
// Declared in java.ast line 200 public Block(List<Stmt> p0) { setChild(p0, 0); } // Declared in java.ast at line 15 protected int numChildren() {
return 1;
} // Declared in java.ast at line 18
public boolean mayHaveRewrite() { return false; } // Declared in java.ast at line 2 // Declared in java.ast line 200 public void setStmtList(List<Stmt> list) { setChild(list, 0); } // Declared in java.ast at line 6 private int getNumStmt = 0; // Declared in java.ast at line 7 public int getNumStmt() { return getStmtList().getNumChild(); } // Declared in java.ast at line 11 @SuppressWarnings({"unchecked", "cast"}) public Stmt getStmt(int i) { return (Stmt)getStmtList().getChild(i); } // Declared in java.ast at line 15 public void addStmt(Stmt node) { List<Stmt> list = getStmtList(); list.addChild(node); } // Declared in java.ast at line 20 public void setStmt(Stmt node, int i) { List<Stmt> list = getStmtList(); list.setChild(node, i); } // Declared in java.ast at line 24 public List<Stmt> getStmts() { return getStmtList(); } // Declared in java.ast at line 27 public List<Stmt> getStmtsNoTransform() { return getStmtListNoTransform(); } // Declared in java.ast at line 31 @SuppressWarnings({"unchecked", "cast"}) public List<Stmt> getStmtList() { return (List<Stmt>)getChild(0); } // Declared in java.ast at line 35 @SuppressWarnings({"unchecked", "cast"}) public List<Stmt> getStmtListNoTransform() { return (List<Stmt>)getChildNoTransform(0); } protected java.util.Map checkReturnDA_Variable_values; // Declared in DefiniteAssignment.jrag at line 302 @SuppressWarnings({"unchecked", "cast"}) public boolean checkReturnDA(Variable v) { Object _parameters = v;if(checkReturnDA_Variable_values == null) checkReturnDA_Variable_values = new java.util.HashMap(4); if(checkReturnDA_Variable_values.containsKey(_parameters)) return ((Boolean)checkReturnDA_Variable_values.get(_parameters)).booleanValue(); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean checkReturnDA_Variable_value = checkReturnDA_compute(v); if(isFinal && num == boundariesCrossed) checkReturnDA_Variable_values.put(_parameters, Boolean.valueOf(checkReturnDA_Variable_value)); return checkReturnDA_Variable_value; } private boolean checkReturnDA_compute(Variable v) { HashSet set = new HashSet(); collectBranches(set); for(Iterator iter = set.iterator(); iter.hasNext(); ) { Object o = iter.next(); if(o instanceof ReturnStmt) { ReturnStmt stmt = (ReturnStmt)o; if(!stmt.isDAafterReachedFinallyBlocks(v)) return false; } } return true; } // Declared in DefiniteAssignment.jrag at line 442 @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 getNumStmt() == 0 ? isDAbefore(v) : getStmt(getNumStmt()-1).isDAafter(v); } // Declared in DefiniteAssignment.jrag at line 448 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUeverywhere(Variable v) { boolean isDUeverywhere_Variable_value = isDUeverywhere_compute(v); return isDUeverywhere_Variable_value; } private boolean isDUeverywhere_compute(Variable v) { return isDUbefore(v) && checkDUeverywhere(v); } protected java.util.Map checkReturnDU_Variable_values; // Declared in DefiniteAssignment.jrag at line 758 @SuppressWarnings({"unchecked", "cast"}) public boolean checkReturnDU(Variable v) { Object _parameters = v;if(checkReturnDU_Variable_values == null) checkReturnDU_Variable_values = new java.util.HashMap(4); if(checkReturnDU_Variable_values.containsKey(_parameters)) return ((Boolean)checkReturnDU_Variable_values.get(_parameters)).booleanValue(); int num = boundariesCrossed;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -