📄 block.java
字号:
private boolean isDUeverywhere_compute(Variable v) { return isDUbefore(v) && checkDUeverywhere(v); } protected java.util.Map checkReturnDU_Variable_visited; 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_visited == null) checkReturnDU_Variable_visited = new java.util.HashMap(4);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(); if(new Integer(boundariesCrossed).equals(checkReturnDU_Variable_visited.get(_parameters))) throw new RuntimeException("Circular definition of attr: checkReturnDU in class: "); checkReturnDU_Variable_visited.put(_parameters, new Integer(boundariesCrossed)); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean checkReturnDU_Variable_value = checkReturnDU_compute(v); if(isFinal && num == boundariesCrossed) checkReturnDU_Variable_values.put(_parameters, Boolean.valueOf(checkReturnDU_Variable_value)); checkReturnDU_Variable_visited.remove(_parameters); return checkReturnDU_Variable_value; } private boolean checkReturnDU_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.isDUafterReachedFinallyBlocks(v)) return false; } } return true; } protected java.util.Map isDUafter_Variable_visited; // Declared in DefiniteAssignment.jrag at line 874 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafter(Variable v) { Object _parameters = v;if(isDUafter_Variable_visited == null) isDUafter_Variable_visited = new java.util.HashMap(4);if(isDUafter_Variable_values == null) isDUafter_Variable_values = new java.util.HashMap(4); if(isDUafter_Variable_values.containsKey(_parameters)) return ((Boolean)isDUafter_Variable_values.get(_parameters)).booleanValue(); if(new Integer(boundariesCrossed).equals(isDUafter_Variable_visited.get(_parameters))) throw new RuntimeException("Circular definition of attr: isDUafter in class: "); isDUafter_Variable_visited.put(_parameters, new Integer(boundariesCrossed)); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean isDUafter_Variable_value = isDUafter_compute(v); if(isFinal && num == boundariesCrossed) isDUafter_Variable_values.put(_parameters, Boolean.valueOf(isDUafter_Variable_value)); isDUafter_Variable_visited.remove(_parameters); return isDUafter_Variable_value; } private boolean isDUafter_compute(Variable v) { return getNumStmt() == 0 ? isDUbefore(v) : getStmt(getNumStmt()-1).isDUafter(v); } protected java.util.Map localVariableDeclaration_String_visited; protected java.util.Map localVariableDeclaration_String_values; // Declared in LookupVariable.jrag at line 114 @SuppressWarnings({"unchecked", "cast"}) public VariableDeclaration localVariableDeclaration(String name) { Object _parameters = name;if(localVariableDeclaration_String_visited == null) localVariableDeclaration_String_visited = new java.util.HashMap(4);if(localVariableDeclaration_String_values == null) localVariableDeclaration_String_values = new java.util.HashMap(4); if(localVariableDeclaration_String_values.containsKey(_parameters)) return (VariableDeclaration)localVariableDeclaration_String_values.get(_parameters); if(new Integer(boundariesCrossed).equals(localVariableDeclaration_String_visited.get(_parameters))) throw new RuntimeException("Circular definition of attr: localVariableDeclaration in class: "); localVariableDeclaration_String_visited.put(_parameters, new Integer(boundariesCrossed)); int num = boundariesCrossed; boolean isFinal = this.is$Final(); VariableDeclaration localVariableDeclaration_String_value = localVariableDeclaration_compute(name); if(isFinal && num == boundariesCrossed) localVariableDeclaration_String_values.put(_parameters, localVariableDeclaration_String_value); localVariableDeclaration_String_visited.remove(_parameters); return localVariableDeclaration_String_value; } private VariableDeclaration localVariableDeclaration_compute(String name) { for(int i = 0; i < getNumStmt(); i++) if(getStmt(i).declaresVariable(name)) return (VariableDeclaration)getStmt(i); return null; } protected int canCompleteNormally_visited = -1; // Declared in UnreachableStatements.jrag at line 37 @SuppressWarnings({"unchecked", "cast"}) public boolean canCompleteNormally() { if(canCompleteNormally_computed) return canCompleteNormally_value; if(canCompleteNormally_visited == boundariesCrossed) throw new RuntimeException("Circular definition of attr: canCompleteNormally in class: "); canCompleteNormally_visited = boundariesCrossed; int num = boundariesCrossed; boolean isFinal = this.is$Final(); canCompleteNormally_value = canCompleteNormally_compute(); if(isFinal && num == boundariesCrossed) canCompleteNormally_computed = true; canCompleteNormally_visited = -1; return canCompleteNormally_value; } private boolean canCompleteNormally_compute() { return getNumStmt() == 0 ? reachable() : getStmt(getNumStmt() - 1).canCompleteNormally(); } protected java.util.Map lookupType_String_visited; protected java.util.Map lookupType_String_values; // Declared in LookupType.jrag at line 175 @SuppressWarnings({"unchecked", "cast"}) public SimpleSet lookupType(String name) { Object _parameters = name;if(lookupType_String_visited == null) lookupType_String_visited = new java.util.HashMap(4);if(lookupType_String_values == null) lookupType_String_values = new java.util.HashMap(4); if(lookupType_String_values.containsKey(_parameters)) return (SimpleSet)lookupType_String_values.get(_parameters); if(new Integer(boundariesCrossed).equals(lookupType_String_visited.get(_parameters))) throw new RuntimeException("Circular definition of attr: lookupType in class: "); lookupType_String_visited.put(_parameters, new Integer(boundariesCrossed)); int num = boundariesCrossed; boolean isFinal = this.is$Final(); if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); SimpleSet lookupType_String_value = getParent().Define_SimpleSet_lookupType(this, null, name); if(isFinal && num == boundariesCrossed) lookupType_String_values.put(_parameters, lookupType_String_value); lookupType_String_visited.remove(_parameters); return lookupType_String_value; } protected java.util.Map lookupVariable_String_visited; protected java.util.Map lookupVariable_String_values; // Declared in LookupVariable.jrag at line 17 @SuppressWarnings({"unchecked", "cast"}) public SimpleSet lookupVariable(String name) { Object _parameters = name;if(lookupVariable_String_visited == null) lookupVariable_String_visited = new java.util.HashMap(4);if(lookupVariable_String_values == null) lookupVariable_String_values = new java.util.HashMap(4); if(lookupVariable_String_values.containsKey(_parameters)) return (SimpleSet)lookupVariable_String_values.get(_parameters); if(new Integer(boundariesCrossed).equals(lookupVariable_String_visited.get(_parameters))) throw new RuntimeException("Circular definition of attr: lookupVariable in class: "); lookupVariable_String_visited.put(_parameters, new Integer(boundariesCrossed)); int num = boundariesCrossed; boolean isFinal = this.is$Final(); if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); SimpleSet lookupVariable_String_value = getParent().Define_SimpleSet_lookupVariable(this, null, name); if(isFinal && num == boundariesCrossed) lookupVariable_String_values.put(_parameters, lookupVariable_String_value); lookupVariable_String_visited.remove(_parameters); return lookupVariable_String_value; } protected int reachable_visited = -1; // Declared in UnreachableStatements.jrag at line 28 @SuppressWarnings({"unchecked", "cast"}) public boolean reachable() { if(reachable_visited == boundariesCrossed) throw new RuntimeException("Circular definition of attr: reachable in class: "); reachable_visited = boundariesCrossed; if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); boolean reachable_value = getParent().Define_boolean_reachable(this, null); reachable_visited = -1; return reachable_value; } // Declared in LookupVariable.jrag at line 68 public SimpleSet Define_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name) { if(caller == getStmtListNoTransform()) { int index = caller.getIndexOfChild(child);{ VariableDeclaration v = localVariableDeclaration(name); // declare before use and shadowing if(v != null && declaredBeforeUse(v, index)) return v; return lookupVariable(name); }} if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_SimpleSet_lookupVariable(this, caller, name); } // Declared in UnreachableStatements.jrag at line 146 public boolean Define_boolean_reportUnreachable(ASTNode caller, ASTNode child) { if(caller == getStmtListNoTransform()) { int i = caller.getIndexOfChild(child); return i == 0 ? reachable() : getStmt(i-1).reachable(); } if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_boolean_reportUnreachable(this, caller); } // Declared in DefiniteAssignment.jrag at line 52 public boolean Define_boolean_isIncOrDec(ASTNode caller, ASTNode child) { if(caller == getStmtListNoTransform()) { int childIndex = caller.getIndexOfChild(child); return false; } if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_boolean_isIncOrDec(this, caller); } // Declared in UnreachableStatements.jrag at line 38 public boolean Define_boolean_reachable(ASTNode caller, ASTNode child) { if(caller == getStmtListNoTransform()) { int childIndex = caller.getIndexOfChild(child); return childIndex == 0 ? reachable() : getStmt(childIndex-1).canCompleteNormally(); } if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_boolean_reachable(this, caller); } // Declared in SyntacticClassification.jrag at line 116 public NameType Define_NameType_nameType(ASTNode caller, ASTNode child) { if(caller == getStmtListNoTransform()) { int childIndex = caller.getIndexOfChild(child); return NameType.EXPRESSION_NAME; } if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_NameType_nameType(this, caller); } // Declared in NameCheck.jrag at line 291 public VariableScope Define_VariableScope_outerScope(ASTNode caller, ASTNode child) { if(caller == getStmtListNoTransform()) { int childIndex = caller.getIndexOfChild(child); return this; } if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_VariableScope_outerScope(this, caller); } // Declared in DefiniteAssignment.jrag at line 445 public boolean Define_boolean_isDAbefore(ASTNode caller, ASTNode child, Variable v) { if(caller == getStmtListNoTransform()) { int index = caller.getIndexOfChild(child); return index == 0 ? isDAbefore(v) : getStmt(index - 1).isDAafter(v); } if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_boolean_isDAbefore(this, caller, v); } // Declared in LookupType.jrag at line 292 public SimpleSet Define_SimpleSet_lookupType(ASTNode caller, ASTNode child, String name) { if(caller == getStmtListNoTransform()) { int index = caller.getIndexOfChild(child);{ SimpleSet c = SimpleSet.emptySet; for(int i = index; i >= 0 && !(getStmt(i) instanceof Case); i--) { if(getStmt(i) instanceof LocalClassDeclStmt) { TypeDecl t = ((LocalClassDeclStmt)getStmt(i)).getClassDecl(); if(t.name().equals(name)) { c = c.add(t); } } } if(!c.isEmpty()) return c; return lookupType(name); }} if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_SimpleSet_lookupType(this, caller, name); } // Declared in DefiniteAssignment.jrag at line 875 public boolean Define_boolean_isDUbefore(ASTNode caller, ASTNode child, Variable v) { if(caller == getStmtListNoTransform()) { int index = caller.getIndexOfChild(child); return index == 0 ? isDUbefore(v) : getStmt(index - 1).isDUafter(v); } if(getParent() == null) throw new RuntimeException("Trying to evaluate attribute in subtree not attached to main tree"); return getParent().Define_boolean_isDUbefore(this, caller, v); }public ASTNode rewriteTo() { return super.rewriteTo();}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -