Package soot.JastAddJ
Class EnhancedForStmt
- java.lang.Object
-
- beaver.Symbol
-
- soot.JastAddJ.ASTNode<ASTNode>
-
- soot.JastAddJ.Stmt
-
- soot.JastAddJ.BranchTargetStmt
-
- soot.JastAddJ.EnhancedForStmt
-
- All Implemented Interfaces:
Cloneable,Iterable<ASTNode>,BranchPropagation,VariableScope
public class EnhancedForStmt extends BranchTargetStmt implements Cloneable, VariableScope
-
-
Field Summary
Fields Modifier and Type Field Description protected booleancanCompleteNormally_computedprotected booleancanCompleteNormally_valueprotected booleancond_label_computedprotected Stmtcond_label_valueprotected booleanend_label_computedprotected Stmtend_label_valueprotected booleanextraLocalIndex_computedprotected intextraLocalIndex_valueprotected MapisDAafter_Variable_valuesprotected MapisDUafter_Variable_valuesprotected MaptargetOf_BreakStmt_valuesprotected MaptargetOf_ContinueStmt_valuesprotected booleanupdate_label_computedprotected Stmtupdate_label_value-
Fields inherited from class soot.JastAddJ.BranchTargetStmt
branches_computed, branches_value, escapedBranches_computed, escapedBranches_value, reachableBreak_computed, reachableBreak_value, reachableContinue_computed, reachableContinue_value, targetBranches_computed, targetBranches_value, targetBreaks_computed, targetBreaks_value, targetContinues_computed, targetContinues_value
-
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
-
-
Constructor Summary
Constructors Constructor Description EnhancedForStmt()EnhancedForStmt(VariableDeclaration p0, Expr p1, Stmt p2)
-
Method Summary
-
Methods inherited from class soot.JastAddJ.BranchTargetStmt
branches, branchTarget, collectBranches, collectFinally, escapedBranches, reachableBreak, reachableContinue, targetBranches, targetBreaks, targetContinues
-
Methods inherited from class soot.JastAddJ.Stmt
addsIndentationLevel, declaresVariable, Define_String_typeDeclIndent, enclosingBodyDecl, hostType, isDAbefore, isDUbefore, localNum, lookupMethod, lookupType, lookupType, reachable, reportUnreachable
-
Methods inherited from class soot.JastAddJ.ASTNode
accessControl, addAttributes, addChild, asImmediate, asLocal, asLocal, asRValue, beginExceptionRange, checkDUeverywhere, checkEnum, checkUncheckedConversion, checkWarnings, clearLocations, cloneSubtree, collectEnclosingVariables, collectErrors, collectExceptions, 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_insideSwitch, Define_boolean_inStaticContext, Define_boolean_isAnonymous, Define_boolean_isAnonymousDecl, Define_boolean_isCatchParam, Define_boolean_isDest, Define_boolean_isExplicitGenericConstructorAccess, Define_boolean_isIncOrDec, Define_boolean_isLocalClass, Define_boolean_isMemberType, 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_reportUnreachable, 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_LabeledStmt_lookupLabel, Define_LUBType_lookupLUBType, Define_MethodDecl_unknownMethod, Define_SimpleSet_allImportedTypes, Define_SimpleSet_lookupType, 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, 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
-
targetOf_ContinueStmt_values
protected Map targetOf_ContinueStmt_values
-
targetOf_BreakStmt_values
protected Map targetOf_BreakStmt_values
-
canCompleteNormally_computed
protected boolean canCompleteNormally_computed
-
canCompleteNormally_value
protected boolean canCompleteNormally_value
-
isDAafter_Variable_values
protected Map isDAafter_Variable_values
-
isDUafter_Variable_values
protected Map isDUafter_Variable_values
-
cond_label_computed
protected boolean cond_label_computed
-
cond_label_value
protected Stmt cond_label_value
-
update_label_computed
protected boolean update_label_computed
-
update_label_value
protected Stmt update_label_value
-
end_label_computed
protected boolean end_label_computed
-
end_label_value
protected Stmt end_label_value
-
extraLocalIndex_computed
protected boolean extraLocalIndex_computed
-
extraLocalIndex_value
protected int extraLocalIndex_value
-
-
Constructor Detail
-
EnhancedForStmt
public EnhancedForStmt()
-
EnhancedForStmt
public EnhancedForStmt(VariableDeclaration p0, Expr p1, Stmt p2)
-
-
Method Detail
-
flushCache
public void flushCache()
- Overrides:
flushCachein classBranchTargetStmt
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCachein classBranchTargetStmt
-
clone
public EnhancedForStmt clone() throws CloneNotSupportedException
- Overrides:
clonein classBranchTargetStmt- Throws:
CloneNotSupportedException
-
copy
public EnhancedForStmt copy()
-
fullCopy
public EnhancedForStmt fullCopy()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
-
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 classBranchTargetStmt
-
numChildren
protected int numChildren()
- Overrides:
numChildrenin classBranchTargetStmt
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewritein classBranchTargetStmt
-
setVariableDeclaration
public void setVariableDeclaration(VariableDeclaration node)
Replaces the VariableDeclaration child.- Parameters:
node- The new node to replace the VariableDeclaration child.
-
getVariableDeclaration
public VariableDeclaration getVariableDeclaration()
Retrieves the VariableDeclaration child.- Returns:
- The current node used as the VariableDeclaration child.
-
getVariableDeclarationNoTransform
public VariableDeclaration getVariableDeclarationNoTransform()
Retrieves the VariableDeclaration child.This method does not invoke AST transformations.
- Returns:
- The current node used as the VariableDeclaration child.
-
setExpr
public void setExpr(Expr node)
Replaces the Expr child.- Parameters:
node- The new node to replace the Expr child.
-
getExpr
public Expr getExpr()
Retrieves the Expr child.- Returns:
- The current node used as the Expr child.
-
getExprNoTransform
public Expr getExprNoTransform()
Retrieves the Expr child.This method does not invoke AST transformations.
- Returns:
- The current node used as the Expr child.
-
setStmt
public void setStmt(Stmt node)
Replaces the Stmt child.- Parameters:
node- The new node to replace the Stmt child.
-
getStmt
public Stmt getStmt()
Retrieves the Stmt child.- Returns:
- The current node used as the Stmt child.
-
getStmtNoTransform
public Stmt getStmtNoTransform()
Retrieves the Stmt child.This method does not invoke AST transformations.
- Returns:
- The current node used as the Stmt child.
-
targetOf
public boolean targetOf(ContinueStmt stmt)
- Specified by:
targetOfin interfaceBranchPropagation- Specified by:
targetOfin classBranchTargetStmt
-
targetOf
public boolean targetOf(BreakStmt stmt)
- Specified by:
targetOfin interfaceBranchPropagation- Specified by:
targetOfin classBranchTargetStmt
-
canCompleteNormally
public boolean canCompleteNormally()
- Overrides:
canCompleteNormallyin classStmt
-
continueLabel
public boolean continueLabel()
- Overrides:
continueLabelin classStmt
-
cond_label
public Stmt cond_label()
-
update_label
public Stmt update_label()
-
end_label
public Stmt end_label()
-
extraLocalIndex
public int extraLocalIndex()
-
break_label
public Stmt break_label()
- Overrides:
break_labelin classStmt
-
continue_label
public Stmt continue_label()
- Overrides:
continue_labelin classStmt
-
modifiedInScope
public boolean modifiedInScope(Variable var)
- Specified by:
modifiedInScopein classStmt
-
lookupVariable
public SimpleSet lookupVariable(String name)
- Specified by:
lookupVariablein interfaceVariableScope- Overrides:
lookupVariablein classStmt
-
Define_SimpleSet_lookupVariable
public SimpleSet Define_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name)
- Overrides:
Define_SimpleSet_lookupVariablein classASTNode<ASTNode>
-
Define_NameType_nameType
public NameType Define_NameType_nameType(ASTNode caller, ASTNode child)
- Overrides:
Define_NameType_nameTypein classASTNode<ASTNode>
-
Define_VariableScope_outerScope
public VariableScope Define_VariableScope_outerScope(ASTNode caller, ASTNode child)
- Overrides:
Define_VariableScope_outerScopein classASTNode<ASTNode>
-
Define_boolean_isMethodParameter
public boolean Define_boolean_isMethodParameter(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_isMethodParameterin classASTNode<ASTNode>
-
Define_boolean_isConstructorParameter
public boolean Define_boolean_isConstructorParameter(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_isConstructorParameterin classASTNode<ASTNode>
-
Define_boolean_isExceptionHandlerParameter
public boolean Define_boolean_isExceptionHandlerParameter(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_isExceptionHandlerParameterin classASTNode<ASTNode>
-
Define_boolean_reachable
public boolean Define_boolean_reachable(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_reachablein 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_boolean_insideLoop
public boolean Define_boolean_insideLoop(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_insideLoopin classASTNode<ASTNode>
-
Define_int_localNum
public int Define_int_localNum(ASTNode caller, ASTNode child)
- Overrides:
Define_int_localNumin classASTNode<ASTNode>
-
rewriteTo
public ASTNode rewriteTo()
- Overrides:
rewriteToin classBranchTargetStmt
-
-