Package soot.JastAddJ
Class ArithmeticExpr
- java.lang.Object
-
- beaver.Symbol
-
- soot.JastAddJ.ASTNode<ASTNode>
-
- soot.JastAddJ.Expr
-
- soot.JastAddJ.Binary
-
- soot.JastAddJ.ArithmeticExpr
-
- Direct Known Subclasses:
AdditiveExpr
,MultiplicativeExpr
public abstract class ArithmeticExpr extends Binary implements Cloneable
-
-
Field Summary
-
Fields inherited from class soot.JastAddJ.Binary
isConstant_computed, isConstant_initialized, isConstant_value, isConstant_visited, isDAafter_Variable_values, isDAafterFalse_Variable_values, isDAafterTrue_Variable_values, isDUafter_Variable_values, isDUbefore_Variable_values
-
Fields inherited from class soot.JastAddJ.Expr
false_label_computed, false_label_value, true_label_computed, true_label_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 ArithmeticExpr()
ArithmeticExpr(Expr p0, Expr p1)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ArithmeticExpr
clone()
void
flushCache()
void
flushCollectionCache()
Expr
getLeftOperand()
Retrieves the LeftOperand child.Expr
getLeftOperandNoTransform()
Retrieves the LeftOperand child.Expr
getRightOperand()
Retrieves the RightOperand child.Expr
getRightOperandNoTransform()
Retrieves the RightOperand child.void
init$Children()
Initializes the child array to the correct size.boolean
mayHaveRewrite()
protected int
numChildren()
ASTNode
rewriteTo()
void
setLeftOperand(Expr node)
Replaces the LeftOperand child.void
setRightOperand(Expr node)
Replaces the RightOperand child.-
Methods inherited from class soot.JastAddJ.Binary
binaryNumericPromotedType, Define_boolean_isDAbefore, Define_boolean_isDUbefore, emitOperation, emitShiftExpr, eval, isConstant, isDAafter, isDAafterFalse, isDAafterTrue, isDUafter, isDUbefore, left, printOp, right, toString
-
Methods inherited from class soot.JastAddJ.Expr
addDependencyIfNeeded, applicableAndAccessible, assignConvertedType, canBeFalse, canBeTrue, chooseConstructor, collectTypesToHierarchy, condition_false_label, condition_true_label, constant, emitBooleanCondition, emitEvalBranch, emitStore, enclosingBodyDecl, enclosingStmt, false_label, hasNextAccess, hasPackage, hasParentDot, hasQualifiedPackage, hostPackage, hostType, inExtendsOrImplements, inStaticContext, isArrayAccess, isClassAccess, isDAbefore, isDest, isDUafterFalse, isDUafterTrue, isEnumConstant, isFalse, isFieldAccess, isIncOrDec, isLeftChildOfDot, isMethodAccess, isPackageAccess, isPositive, isRightChildOfDot, isSource, isSuperAccess, isSuperConstructorAccess, isThisAccess, isTrue, isTypeAccess, isUnknown, isVariable, isVariable, keepAccessibleFields, keepAccessibleTypes, lookupMethod, lookupType, lookupType, lookupVariable, mayAccess, methodHost, modifiedInScope, mostSpecific, mostSpecificConstructor, nameType, nextAccess, packageName, parentDot, qualifiedLookupType, qualifiedLookupVariable, qualifiesAccess, refined_BooleanExpressions_Expr_emitEvalBranch, representableIn, staticContextQualifier, throwTypes, true_label, type, typeBoolean, typeByte, typeChar, typeDouble, typeFloat, typeInt, typeLong, typeName, typeNull, typeShort, typeString, typeVoid, unknownType, varDecl
-
Methods inherited from class soot.JastAddJ.ASTNode
accessControl, addAttributes, addChild, addsIndentationLevel, asImmediate, asLocal, asLocal, asRValue, beginExceptionRange, branchTarget, checkDUeverywhere, checkEnum, checkUncheckedConversion, checkWarnings, clearLocations, cloneSubtree, collectBranches, collectEnclosingVariables, collectErrors, collectExceptions, collectFinally, collectTypesToSignatures, compilationUnit, copy, 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_isIncOrDec, 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_reachable, 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_int_localNum, Define_LabeledStmt_lookupLabel, Define_LUBType_lookupLUBType, Define_MethodDecl_unknownMethod, Define_NameType_nameType, Define_SimpleSet_allImportedTypes, Define_SimpleSet_lookupType, Define_SimpleSet_lookupVariable, Define_soot_jimple_Stmt_condition_false_label, Define_soot_jimple_Stmt_condition_true_label, Define_String_hostPackage, Define_String_methodHost, Define_String_packageName, Define_String_typeDeclIndent, 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, Define_VariableScope_outerScope, 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, fullCopy, getChild, getChildNoTransform, getIndexOfChild, getNumChild, getNumChildNoTransform, getParent, in$Circle, in$Circle, indent, insertChild, is$Final, is$Final, isDescendantTo, isStringAdd, iterator, jimplify1phase1, jimplify1phase2, jimplify2, 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
-
-
-
-
Method Detail
-
flushCache
public void flushCache()
- Overrides:
flushCache
in classBinary
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCache
in classBinary
-
clone
public ArithmeticExpr clone() throws CloneNotSupportedException
- Overrides:
clone
in classBinary
- Throws:
CloneNotSupportedException
-
init$Children
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.- Overrides:
init$Children
in classBinary
-
numChildren
protected int numChildren()
- Overrides:
numChildren
in classBinary
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewrite
in classBinary
-
setLeftOperand
public void setLeftOperand(Expr node)
Replaces the LeftOperand child.- Overrides:
setLeftOperand
in classBinary
- Parameters:
node
- The new node to replace the LeftOperand child.
-
getLeftOperand
public Expr getLeftOperand()
Retrieves the LeftOperand child.- Overrides:
getLeftOperand
in classBinary
- Returns:
- The current node used as the LeftOperand child.
-
getLeftOperandNoTransform
public Expr getLeftOperandNoTransform()
Retrieves the LeftOperand child.This method does not invoke AST transformations.
- Overrides:
getLeftOperandNoTransform
in classBinary
- Returns:
- The current node used as the LeftOperand child.
-
setRightOperand
public void setRightOperand(Expr node)
Replaces the RightOperand child.- Overrides:
setRightOperand
in classBinary
- Parameters:
node
- The new node to replace the RightOperand child.
-
getRightOperand
public Expr getRightOperand()
Retrieves the RightOperand child.- Overrides:
getRightOperand
in classBinary
- Returns:
- The current node used as the RightOperand child.
-
getRightOperandNoTransform
public Expr getRightOperandNoTransform()
Retrieves the RightOperand child.This method does not invoke AST transformations.
- Overrides:
getRightOperandNoTransform
in classBinary
- Returns:
- The current node used as the RightOperand child.
-
-