Package soot.JastAddJ
Class Block
- java.lang.Object
-
- beaver.Symbol
-
- soot.JastAddJ.ASTNode<ASTNode>
-
- soot.JastAddJ.Stmt
-
- soot.JastAddJ.Block
-
- All Implemented Interfaces:
Cloneable,Iterable<ASTNode>,VariableScope
public class Block extends Stmt implements Cloneable, VariableScope
-
-
Field Summary
Fields Modifier and Type Field Description protected booleancanCompleteNormally_computedprotected booleancanCompleteNormally_valueprotected MapcheckReturnDA_Variable_valuesprotected MapcheckReturnDU_Variable_valuesprotected MapisDAafter_Variable_valuesprotected MapisDUafter_Variable_valuesprotected MaplocalVariableDeclaration_String_valuesprotected MaplookupType_String_valuesprotected MaplookupVariable_String_values-
Fields inherited from class soot.JastAddJ.Stmt
localNum_computed, localNum_value
-
Fields inherited from class soot.JastAddJ.ASTNode
children, generatedWithCacheCycle, generatedWithCircularEnabled, generatedWithComponentCheck, in$Circle, is$Final, numChildren, parent, PRIMITIVE_PACKAGE_NAME, state
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddsIndentationLevel()voidaddStmt(Stmt node)Append an element to the Stmt list.voidaddStmtNoTransform(Stmt node)booleancanCompleteNormally()booleancheckReturnDA(Variable v)booleancheckReturnDU(Variable v)Blockclone()Blockcopy()booleandeclaredBeforeUse(Variable decl, int indexUse)booleandeclaredBeforeUse(Variable decl, ASTNode use)booleanDefine_boolean_isDAbefore(ASTNode caller, ASTNode child, Variable v)booleanDefine_boolean_isDUbefore(ASTNode caller, ASTNode child, Variable v)booleanDefine_boolean_isIncOrDec(ASTNode caller, ASTNode child)booleanDefine_boolean_reachable(ASTNode caller, ASTNode child)booleanDefine_boolean_reportUnreachable(ASTNode caller, ASTNode child)NameTypeDefine_NameType_nameType(ASTNode caller, ASTNode child)SimpleSetDefine_SimpleSet_lookupType(ASTNode caller, ASTNode child, String name)SimpleSetDefine_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name)VariableScopeDefine_VariableScope_outerScope(ASTNode caller, ASTNode child)voidflushCache()voidflushCollectionCache()BlockfullCopy()Create a deep copy of the AST subtree at this node.intgetNumStmt()Retrieves the number of children in the Stmt list.intgetNumStmtNoTransform()Retrieves the number of children in the Stmt list.StmtgetStmt(int i)Retrieves the element at indexiin the Stmt list..List<Stmt>getStmtList()Retrieves the Stmt list.List<Stmt>getStmtListNoTransform()Retrieves the Stmt list.List<Stmt>getStmts()Retrieves the Stmt list.List<Stmt>getStmtsNoTransform()Retrieves the Stmt list.voidinit$Children()Initializes the child array to the correct size.booleanisDAafter(Variable v)booleanisDUafter(Variable v)booleanisDUeverywhere(Variable v)voidjimplify2(Body b)VariableDeclarationlocalVariableDeclaration(String name)SimpleSetlookupType(String name)SimpleSetlookupVariable(String name)booleanmayHaveRewrite()booleanmodifiedInScope(Variable var)protected intnumChildren()booleanreachable()ASTNoderewriteTo()voidsetStmt(Stmt node, int i)Replaces the Stmt list element at indexiwith the new nodenode.voidsetStmtList(List<Stmt> list)Replaces the Stmt list.booleanshouldHaveIndent()voidtoString(StringBuffer s)-
Methods inherited from class soot.JastAddJ.Stmt
break_label, continue_label, continueLabel, declaresVariable, Define_String_typeDeclIndent, enclosingBodyDecl, hostType, isDAbefore, isDUbefore, localNum, lookupMethod, lookupType, reportUnreachable
-
Methods inherited from class soot.JastAddJ.ASTNode
accessControl, addAttributes, addChild, asImmediate, asLocal, asLocal, asRValue, beginExceptionRange, branchTarget, checkDUeverywhere, checkEnum, checkUncheckedConversion, checkWarnings, clearLocations, cloneSubtree, collectBranches, collectEnclosingVariables, collectErrors, collectExceptions, collectFinally, collectTypesToHierarchy, collectTypesToSignatures, compilationUnit, Define_Annotation_lookupAnnotation, Define_ArrayList_exceptionRanges, Define_ASTNode_enclosingBlock, Define_BodyDecl_enclosingBodyDecl, Define_boolean_enclosedByExceptionHandler, Define_boolean_handlesException, Define_boolean_hasPackage, Define_boolean_inExplicitConstructorInvocation, Define_boolean_inExtendsOrImplements, Define_boolean_inhModifiedInScope, Define_boolean_insideLoop, Define_boolean_insideSwitch, Define_boolean_inStaticContext, Define_boolean_isAnonymous, Define_boolean_isAnonymousDecl, Define_boolean_isCatchParam, Define_boolean_isConstructorParameter, Define_boolean_isDest, Define_boolean_isExceptionHandlerParameter, Define_boolean_isExplicitGenericConstructorAccess, Define_boolean_isLocalClass, Define_boolean_isMemberType, Define_boolean_isMethodParameter, Define_boolean_isNestedType, Define_boolean_isSource, Define_boolean_mayBeAbstract, Define_boolean_mayBeFinal, Define_boolean_mayBeNative, Define_boolean_mayBePrivate, Define_boolean_mayBeProtected, Define_boolean_mayBePublic, Define_boolean_mayBeStatic, Define_boolean_mayBeStrictfp, Define_boolean_mayBeSynchronized, Define_boolean_mayBeTransient, Define_boolean_mayBeVolatile, Define_boolean_mayUseAnnotationTarget, Define_boolean_reachableCatchClause, Define_boolean_resourcePreviouslyDeclared, Define_boolean_variableArityValid, Define_boolean_withinDeprecatedAnnotation, Define_boolean_withinSuppressWarnings, Define_Case_bind, Define_CatchClause_catchClause, Define_ClassInstanceExpr_getClassInstanceExpr, Define_Collection_lookupConstructor, Define_Collection_lookupMethod, Define_Collection_lookupSuperConstructor, Define_Collection_TypeDecl__caughtExceptions, Define_CompilationUnit_compilationUnit, Define_ConstructorDecl_constructorDecl, Define_ConstructorDecl_unknownConstructor, Define_ElementValue_lookupElementTypeValue, Define_Expr_nestedScope, Define_GLBType_lookupGLBType, Define_int_localNum, Define_LabeledStmt_lookupLabel, Define_LUBType_lookupLUBType, Define_MethodDecl_unknownMethod, Define_SimpleSet_allImportedTypes, Define_soot_jimple_Stmt_condition_false_label, Define_soot_jimple_Stmt_condition_true_label, Define_String_hostPackage, Define_String_methodHost, Define_String_packageName, Define_TypeDecl_assignConvertedType, Define_TypeDecl_componentType, Define_TypeDecl_declType, Define_TypeDecl_enclosingAnnotationDecl, Define_TypeDecl_enclosingInstance, Define_TypeDecl_enclosingType, Define_TypeDecl_expectedType, Define_TypeDecl_genericDecl, Define_TypeDecl_hostType, Define_TypeDecl_lookupType, Define_TypeDecl_lookupWildcardExtends, Define_TypeDecl_lookupWildcardSuper, Define_TypeDecl_returnType, Define_TypeDecl_superType, Define_TypeDecl_switchType, Define_TypeDecl_typeBoolean, Define_TypeDecl_typeByte, Define_TypeDecl_typeChar, Define_TypeDecl_typeCloneable, Define_TypeDecl_typeDouble, Define_TypeDecl_typeError, Define_TypeDecl_typeException, Define_TypeDecl_typeFloat, Define_TypeDecl_typeInt, Define_TypeDecl_typeLong, Define_TypeDecl_typeNull, Define_TypeDecl_typeNullPointerException, Define_TypeDecl_typeObject, Define_TypeDecl_typeRuntimeException, Define_TypeDecl_typeSerializable, Define_TypeDecl_typeShort, Define_TypeDecl_typeString, Define_TypeDecl_typeThrowable, Define_TypeDecl_typeVoid, Define_TypeDecl_typeWildcard, Define_TypeDecl_unknownType, Define_Variable_unknownField, definesLabel, definiteAssignment, dumpString, dumpTree, dumpTree, dumpTreeNoRewrite, dumpTreeNoRewrite, duringAnnotations, duringAnonymousClasses, duringBoundNames, duringDU, duringEnums, duringGenericTypeVariables, duringImplicitConstructor, duringLiterals, duringNameResolution, duringSyntacticClassification, duringVariableDeclarationTransformation, emitConstant, end, endExceptionRange, error, errorPrefix, exceptionHandling, extractIndent, extractSingleType, flushCaches, getChild, getChildNoTransform, getIndexOfChild, getNumChild, getNumChildNoTransform, getParent, in$Circle, in$Circle, indent, insertChild, is$Final, is$Final, isDescendantTo, isStringAdd, iterator, jimplify1phase1, jimplify1phase2, jimplify2, lineNumber, location, nameCheck, newLabel, options, putSimpleSetElement, reachedException, removeChild, removeInstanceMethods, removeInstanceVariables, replace, setChild, setEnd, setLocation, setParent, setStart, sourceFile, start, state, toString, transformation, transformEnumConstructors, typeCheck, unassignedEverywhere, usesTypeVariable, varChildIndex, varChildIndex, warning, warningPrefix, with
-
Methods inherited from class beaver.Symbol
getColumn, getEnd, getId, getLine, getStart, makePosition
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Field Detail
-
checkReturnDA_Variable_values
protected Map checkReturnDA_Variable_values
-
isDAafter_Variable_values
protected Map isDAafter_Variable_values
-
checkReturnDU_Variable_values
protected Map checkReturnDU_Variable_values
-
isDUafter_Variable_values
protected Map isDUafter_Variable_values
-
localVariableDeclaration_String_values
protected Map localVariableDeclaration_String_values
-
canCompleteNormally_computed
protected boolean canCompleteNormally_computed
-
canCompleteNormally_value
protected boolean canCompleteNormally_value
-
lookupType_String_values
protected Map lookupType_String_values
-
lookupVariable_String_values
protected Map lookupVariable_String_values
-
-
Method Detail
-
flushCache
public void flushCache()
- Overrides:
flushCachein classStmt
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCachein classStmt
-
clone
public Block clone() throws CloneNotSupportedException
- Overrides:
clonein classStmt- Throws:
CloneNotSupportedException
-
fullCopy
public Block fullCopy()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
-
declaredBeforeUse
public boolean declaredBeforeUse(Variable decl, int indexUse)
-
toString
public void toString(StringBuffer s)
-
init$Children
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.- Overrides:
init$Childrenin classStmt
-
numChildren
protected int numChildren()
- Overrides:
numChildrenin classStmt
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewritein classStmt
-
setStmtList
public void setStmtList(List<Stmt> list)
Replaces the Stmt list.- Parameters:
list- The new list node to be used as the Stmt list.
-
getNumStmt
public int getNumStmt()
Retrieves the number of children in the Stmt list.- Returns:
- Number of children in the Stmt list.
-
getNumStmtNoTransform
public int getNumStmtNoTransform()
Retrieves the number of children in the Stmt list. Calling this method will not trigger rewrites..- Returns:
- Number of children in the Stmt list.
-
getStmt
public Stmt getStmt(int i)
Retrieves the element at indexiin the Stmt list..- Parameters:
i- Index of the element to return.- Returns:
- The element at position
iin the Stmt list.
-
addStmt
public void addStmt(Stmt node)
Append an element to the Stmt list.- Parameters:
node- The element to append to the Stmt list.
-
addStmtNoTransform
public void addStmtNoTransform(Stmt node)
-
setStmt
public void setStmt(Stmt node, int i)
Replaces the Stmt list element at indexiwith the new nodenode.- Parameters:
node- The new node to replace the old list element.i- The list index of the node to be replaced.
-
getStmts
public List<Stmt> getStmts()
Retrieves the Stmt list.- Returns:
- The node representing the Stmt list.
-
getStmtsNoTransform
public List<Stmt> getStmtsNoTransform()
Retrieves the Stmt list.This method does not invoke AST transformations.
- Returns:
- The node representing the Stmt list.
-
getStmtList
public List<Stmt> getStmtList()
Retrieves the Stmt list.- Returns:
- The node representing the Stmt list.
-
getStmtListNoTransform
public List<Stmt> getStmtListNoTransform()
Retrieves the Stmt list.This method does not invoke AST transformations.
- Returns:
- The node representing the Stmt list.
-
checkReturnDA
public boolean checkReturnDA(Variable v)
-
isDUeverywhere
public boolean isDUeverywhere(Variable v)
-
checkReturnDU
public boolean checkReturnDU(Variable v)
-
localVariableDeclaration
public VariableDeclaration localVariableDeclaration(String name)
-
addsIndentationLevel
public boolean addsIndentationLevel()
- Overrides:
addsIndentationLevelin classStmt
-
shouldHaveIndent
public boolean shouldHaveIndent()
-
canCompleteNormally
public boolean canCompleteNormally()
- Overrides:
canCompleteNormallyin classStmt
-
modifiedInScope
public boolean modifiedInScope(Variable var)
- Specified by:
modifiedInScopein classStmt
-
lookupType
public SimpleSet lookupType(String name)
- Overrides:
lookupTypein classStmt
-
lookupVariable
public SimpleSet lookupVariable(String name)
- Specified by:
lookupVariablein interfaceVariableScope- Overrides:
lookupVariablein classStmt
-
Define_boolean_isIncOrDec
public boolean Define_boolean_isIncOrDec(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_isIncOrDecin classASTNode<ASTNode>
-
Define_boolean_isDAbefore
public boolean Define_boolean_isDAbefore(ASTNode caller, ASTNode child, Variable v)
- Overrides:
Define_boolean_isDAbeforein classASTNode<ASTNode>
-
Define_boolean_isDUbefore
public boolean Define_boolean_isDUbefore(ASTNode caller, ASTNode child, Variable v)
- Overrides:
Define_boolean_isDUbeforein classASTNode<ASTNode>
-
Define_SimpleSet_lookupType
public SimpleSet Define_SimpleSet_lookupType(ASTNode caller, ASTNode child, String name)
- Overrides:
Define_SimpleSet_lookupTypein classASTNode<ASTNode>
-
Define_SimpleSet_lookupVariable
public SimpleSet Define_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name)
- Overrides:
Define_SimpleSet_lookupVariablein classASTNode<ASTNode>
-
Define_VariableScope_outerScope
public VariableScope Define_VariableScope_outerScope(ASTNode caller, ASTNode child)
- Overrides:
Define_VariableScope_outerScopein classASTNode<ASTNode>
-
Define_NameType_nameType
public NameType Define_NameType_nameType(ASTNode caller, ASTNode child)
- Overrides:
Define_NameType_nameTypein classASTNode<ASTNode>
-
Define_boolean_reachable
public boolean Define_boolean_reachable(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_reachablein classASTNode<ASTNode>
-
Define_boolean_reportUnreachable
public boolean Define_boolean_reportUnreachable(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_reportUnreachablein classASTNode<ASTNode>
-
-