Package soot.JastAddJ
Class LongLiteral
-
public class LongLiteral extends NumericLiteral implements Cloneable
Java long integer literal. Can store any number that fits in 64 bits of data, or less.
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanconstant_computedprotected Constantconstant_valueprotected booleantype_computedprotected TypeDecltype_value-
Fields inherited from class soot.JastAddJ.NumericLiteral
BINARY, DECIMAL, digits, HEXADECIMAL, kind, OCTAL
-
Fields inherited from class soot.JastAddJ.Literal
LITERALend, LITERALstart, tokenString_LITERAL
-
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 LongLiteral()LongLiteral(Symbol p0)LongLiteral(String p0)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LongLiteralclone()Constantconstant()Parse this literal and return a fresh Constant.LongLiteralcopy()Valueeval(Body b)voidflushCache()voidflushCollectionCache()LongLiteralfullCopy()Create a deep copy of the AST subtree at this node.StringgetLITERAL()Retrieves the value for the lexeme LITERAL.voidinit$Children()Initializes the child array to the correct size.booleanisPositive()booleanmayHaveRewrite()booleanneedsRewrite()Utility attribute for literal rewriting.protected intnumChildren()ASTNoderewriteTo()voidsetLITERAL(Symbol symbol)JastAdd-internal setter for lexeme LITERAL using the Beaver parser.voidsetLITERAL(String value)Replaces the lexeme LITERAL.voidtoString(StringBuffer s)Defer pretty printing to superclass.TypeDecltype()The type of a NumericLiteral is undefined.voidtypeCheck()Check for and report literal-out-of-bounds error.-
Methods inherited from class soot.JastAddJ.NumericLiteral
getDigits, getKind, getRadix, isBinary, isDecimal, isHex, isNegative, isOctal, parse, parseLong, parseLongBinary, parseLongDecimal, parseLongHexadecimal, parseLongOctal, setDigits, setKind
-
Methods inherited from class soot.JastAddJ.Literal
asEscape, buildBooleanLiteral, buildDoubleLiteral, buildFloatLiteral, buildIntegerLiteral, buildLongLiteral, buildStringLiteral, dumpString, escape, isConstant
-
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, isDAafter, isDAafterFalse, isDAafterTrue, isDAbefore, isDest, isDUafter, isDUafterFalse, isDUafterTrue, isDUbefore, isEnumConstant, isFalse, isFieldAccess, isIncOrDec, isLeftChildOfDot, isMethodAccess, isPackageAccess, 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_isDAbefore, Define_boolean_isDest, Define_boolean_isDUbefore, 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, 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:
flushCachein classNumericLiteral
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCachein classNumericLiteral
-
clone
public LongLiteral clone() throws CloneNotSupportedException
- Overrides:
clonein classNumericLiteral- Throws:
CloneNotSupportedException
-
copy
public LongLiteral copy()
- Overrides:
copyin classNumericLiteral
-
fullCopy
public LongLiteral fullCopy()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.- Overrides:
fullCopyin classNumericLiteral- Returns:
- dangling copy of the subtree at this node
-
init$Children
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.- Overrides:
init$Childrenin classNumericLiteral
-
numChildren
protected int numChildren()
- Overrides:
numChildrenin classNumericLiteral
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewritein classNumericLiteral
-
setLITERAL
public void setLITERAL(String value)
Replaces the lexeme LITERAL.- Overrides:
setLITERALin classNumericLiteral- Parameters:
value- The new value for the lexeme LITERAL.
-
setLITERAL
public void setLITERAL(Symbol symbol)
JastAdd-internal setter for lexeme LITERAL using the Beaver parser.- Overrides:
setLITERALin classNumericLiteral
-
getLITERAL
public String getLITERAL()
Retrieves the value for the lexeme LITERAL.- Overrides:
getLITERALin classNumericLiteral- Returns:
- The value for the lexeme LITERAL.
-
toString
public void toString(StringBuffer s)
Defer pretty printing to superclass.
-
typeCheck
public void typeCheck()
Check for and report literal-out-of-bounds error. If the constant is error-marked, there exists a literal out of bounds error.
-
isPositive
public boolean isPositive()
- Overrides:
isPositivein classExpr
-
type
public TypeDecl type()
Description copied from class:NumericLiteralThe type of a NumericLiteral is undefined. The literal must be parsed before it can have a type.- Overrides:
typein classNumericLiteral
-
constant
public Constant constant()
Parse this literal and return a fresh Constant.
-
needsRewrite
public boolean needsRewrite()
Utility attribute for literal rewriting. Any of the NumericLiteral subclasses have already been rewritten and/or parsed, and should not be rewritten again.- Overrides:
needsRewritein classNumericLiteral- Returns:
- true if this literal is a "raw", not-yet-parsed NumericLiteral
-
rewriteTo
public ASTNode rewriteTo()
- Overrides:
rewriteToin classNumericLiteral
-
-