Package soot.JastAddJ
Class MulExpr
-
public class MulExpr extends MultiplicativeExpr implements Cloneable
-
-
Field Summary
-
Fields inherited from class soot.JastAddJ.MultiplicativeExpr
type_computed, type_value
-
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
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MulExpr
clone()
Constant
constant()
MulExpr
copy()
Value
emitOperation(Body b, Value left, Value right)
void
flushCache()
void
flushCollectionCache()
MulExpr
fullCopy()
Create a deep copy of the AST subtree at this node.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()
String
printOp()
ASTNode
rewriteTo()
void
setLeftOperand(Expr node)
Replaces the LeftOperand child.void
setRightOperand(Expr node)
Replaces the RightOperand child.-
Methods inherited from class soot.JastAddJ.MultiplicativeExpr
type, typeCheck
-
Methods inherited from class soot.JastAddJ.Binary
binaryNumericPromotedType, Define_boolean_isDAbefore, Define_boolean_isDUbefore, emitShiftExpr, eval, isConstant, isDAafter, isDAafterFalse, isDAafterTrue, isDUafter, isDUbefore, left, right, toString
-
Methods inherited from class soot.JastAddJ.Expr
addDependencyIfNeeded, applicableAndAccessible, assignConvertedType, canBeFalse, canBeTrue, chooseConstructor, collectTypesToHierarchy, condition_false_label, condition_true_label, 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, 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, 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, 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, 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 classMultiplicativeExpr
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCache
in classMultiplicativeExpr
-
clone
public MulExpr clone() throws CloneNotSupportedException
- Overrides:
clone
in classMultiplicativeExpr
- Throws:
CloneNotSupportedException
-
fullCopy
public MulExpr fullCopy()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
-
emitOperation
public Value emitOperation(Body b, Value left, Value right)
- Overrides:
emitOperation
in classBinary
-
init$Children
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.- Overrides:
init$Children
in classMultiplicativeExpr
-
numChildren
protected int numChildren()
- Overrides:
numChildren
in classMultiplicativeExpr
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewrite
in classMultiplicativeExpr
-
setLeftOperand
public void setLeftOperand(Expr node)
Replaces the LeftOperand child.- Overrides:
setLeftOperand
in classMultiplicativeExpr
- Parameters:
node
- The new node to replace the LeftOperand child.
-
getLeftOperand
public Expr getLeftOperand()
Retrieves the LeftOperand child.- Overrides:
getLeftOperand
in classMultiplicativeExpr
- 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 classMultiplicativeExpr
- Returns:
- The current node used as the LeftOperand child.
-
setRightOperand
public void setRightOperand(Expr node)
Replaces the RightOperand child.- Overrides:
setRightOperand
in classMultiplicativeExpr
- Parameters:
node
- The new node to replace the RightOperand child.
-
getRightOperand
public Expr getRightOperand()
Retrieves the RightOperand child.- Overrides:
getRightOperand
in classMultiplicativeExpr
- 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 classMultiplicativeExpr
- Returns:
- The current node used as the RightOperand child.
-
rewriteTo
public ASTNode rewriteTo()
- Overrides:
rewriteTo
in classMultiplicativeExpr
-
-