Package soot.jimple.parser
Class BodyExtractorWalker
- java.lang.Object
-
- soot.jimple.parser.analysis.AnalysisAdapter
-
- soot.jimple.parser.analysis.DepthFirstAdapter
-
- soot.jimple.parser.Walker
-
- soot.jimple.parser.BodyExtractorWalker
-
public class BodyExtractorWalker extends Walker
Walks a jimple AST and constructs the method bodies for all the methods of the SootClass associated with this walker (see constructor). note: Contrary to the plain "Walker", this walker does not create a SootClass, or interact with the scene. It merely adds method bodies for each of the methods of the SootClass it was initialized with.
-
-
Constructor Summary
Constructors Constructor Description BodyExtractorWalker(SootClass sc, SootResolver resolver, Map<SootMethod,JimpleBody> methodToParsedBodyMap)Constructs a walker, and attaches it to the given SootClass, sending bodies to the given methodToParsedBodyMap.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcaseAFile(AFile node)voidoutAFieldMember(AFieldMember node)voidoutAFile(AFile node)voidoutAMethodMember(AMethodMember node)-
Methods inherited from class soot.jimple.parser.Walker
defaultCase, getSootClass, inAFile, inAFullMethodBody, outAAndBinop, outAArrayNewExpr, outAArrayReference, outAAssignStatement, outABaseNonvoidType, outABinopBoolExpr, outABinopExpr, outABoolConstant, outABooleanBaseType, outABooleanBaseTypeNoName, outABreakpointStatement, outAByteBaseType, outAByteBaseTypeNoName, outACaseStmt, outACastExpression, outACatchClause, outACharBaseType, outACharBaseTypeNoName, outAClassFileType, outAClassNameBaseType, outAClassNameMultiClassNameList, outAClassNameSingleClassNameList, outAClzzConstant, outACmpBinop, outACmpeqBinop, outACmpgBinop, outACmpgeBinop, outACmpgtBinop, outACmplBinop, outACmpleBinop, outACmpltBinop, outACmpneBinop, outAConstantCaseLabel, outADeclaration, outADivBinop, outADoubleBaseType, outADoubleBaseTypeNoName, outADynamicInvokeExpr, outAEntermonitorStatement, outAExitmonitorStatement, outAFieldSignature, outAFloatBaseType, outAFloatBaseTypeNoName, outAFloatConstant, outAFullIdentNonvoidType, outAFullMethodBody, outAGotoStatement, outAIdentityNoTypeStatement, outAIdentityStatement, outAIdentNonvoidType, outAIfStatement, outAInstanceofExpression, outAIntBaseType, outAIntBaseTypeNoName, outAIntegerConstant, outAInterfaceFileType, outAInvokeStatement, outALabelStatement, outALengthofUnop, outALocalFieldRef, outALocalImmediate, outALocalVariable, outALongBaseType, outALongBaseTypeNoName, outALookupswitchStatement, outAMethodSignature, outAMinusBinop, outAModBinop, outAMultBinop, outAMultiArgList, outAMultiLocalNameList, outAMultiNewExpr, outAMultiParameterList, outANegUnop, outANonstaticInvokeExpr, outANopStatement, outANovoidType, outANullBaseType, outANullBaseTypeNoName, outANullConstant, outAOrBinop, outAPlusBinop, outAQuotedNonvoidType, outARetStatement, outAReturnStatement, outAShlBinop, outAShortBaseType, outAShortBaseTypeNoName, outAShrBinop, outASigFieldRef, outASimpleNewExpr, outASingleArgList, outASingleLocalNameList, outASingleParameterList, outAStaticInvokeExpr, outAStringConstant, outATableswitchStatement, outAThrowsClause, outAThrowStatement, outAUnknownJimpleType, outAUnnamedMethodSignature, outAUnopExpr, outAUnopExpression, outAUshrBinop, outAVoidType, outAXorBinop, outStart, processModifiers
-
Methods inherited from class soot.jimple.parser.analysis.DepthFirstAdapter
caseAAbstractModifier, caseAAndBinop, caseAAnnotationModifier, caseAArrayBrackets, caseAArrayDescriptor, caseAArrayNewExpr, caseAArrayReference, caseAAssignStatement, caseABaseNonvoidType, caseABinopBoolExpr, caseABinopExpr, caseABinopExpression, caseABoolConstant, caseABooleanBaseType, caseABooleanBaseTypeNoName, caseABreakpointStatement, caseAByteBaseType, caseAByteBaseTypeNoName, caseACaseStmt, caseACastExpression, caseACatchClause, caseACharBaseType, caseACharBaseTypeNoName, caseAClassFileType, caseAClassNameBaseType, caseAClassNameMultiClassNameList, caseAClassNameSingleClassNameList, caseAClzzConstant, caseACmpBinop, caseACmpeqBinop, caseACmpgBinop, caseACmpgeBinop, caseACmpgtBinop, caseACmplBinop, caseACmpleBinop, caseACmpltBinop, caseACmpneBinop, caseAConstantCaseLabel, caseAConstantImmediate, caseADeclaration, caseADefaultCaseLabel, caseADivBinop, caseADoubleBaseType, caseADoubleBaseTypeNoName, caseADynamicInvokeExpr, caseAEmptyMethodBody, caseAEntermonitorStatement, caseAEnumModifier, caseAExitmonitorStatement, caseAExtendsClause, caseAFieldMember, caseAFieldReference, caseAFieldSignature, caseAFileBody, caseAFinalModifier, caseAFixedArrayDescriptor, caseAFloatBaseType, caseAFloatBaseTypeNoName, caseAFloatConstant, caseAFullIdentClassName, caseAFullIdentNonvoidType, caseAFullMethodBody, caseAGotoStatement, caseAGotoStmt, caseAIdentArrayRef, caseAIdentClassName, caseAIdentityNoTypeStatement, caseAIdentityStatement, caseAIdentName, caseAIdentNonvoidType, caseAIfStatement, caseAImmediateExpression, caseAImplementsClause, caseAInstanceofExpression, caseAIntBaseType, caseAIntBaseTypeNoName, caseAIntegerConstant, caseAInterfaceFileType, caseAInterfaceNonstaticInvoke, caseAInvokeExpression, caseAInvokeStatement, caseALabelName, caseALabelStatement, caseALengthofUnop, caseALocalFieldRef, caseALocalImmediate, caseALocalName, caseALocalVariable, caseALongBaseType, caseALongBaseTypeNoName, caseALookupswitchStatement, caseAMethodMember, caseAMethodSignature, caseAMinusBinop, caseAModBinop, caseAMultBinop, caseAMultiArgList, caseAMultiLocalNameList, caseAMultiNameList, caseAMultiNewExpr, caseAMultiParameterList, caseANativeModifier, caseANegUnop, caseANewExpression, caseANonstaticInvokeExpr, caseANonvoidJimpleType, caseANopStatement, caseANovoidType, caseANullBaseType, caseANullBaseTypeNoName, caseANullConstant, caseAOrBinop, caseAParameter, caseAPlusBinop, caseAPrivateModifier, caseAProtectedModifier, caseAPublicModifier, caseAQuotedArrayRef, caseAQuotedClassName, caseAQuotedName, caseAQuotedNonvoidType, caseAReferenceExpression, caseAReferenceVariable, caseARetStatement, caseAReturnStatement, caseAShlBinop, caseAShortBaseType, caseAShortBaseTypeNoName, caseAShrBinop, caseASigFieldRef, caseASimpleNewExpr, caseASingleArgList, caseASingleLocalNameList, caseASingleNameList, caseASingleParameterList, caseASpecialNonstaticInvoke, caseAStaticInvokeExpr, caseAStaticModifier, caseAStrictfpModifier, caseAStringConstant, caseASynchronizedModifier, caseATableswitchStatement, caseAThrowsClause, caseAThrowStatement, caseATransientModifier, caseAUnknownJimpleType, caseAUnnamedMethodSignature, caseAUnopBoolExpr, caseAUnopExpr, caseAUnopExpression, caseAUshrBinop, caseAVirtualNonstaticInvoke, caseAVoidType, caseAVolatileModifier, caseAXorBinop, caseStart, defaultIn, defaultOut, inAAbstractModifier, inAAndBinop, inAAnnotationModifier, inAArrayBrackets, inAArrayDescriptor, inAArrayNewExpr, inAArrayReference, inAAssignStatement, inABaseNonvoidType, inABinopBoolExpr, inABinopExpr, inABinopExpression, inABoolConstant, inABooleanBaseType, inABooleanBaseTypeNoName, inABreakpointStatement, inAByteBaseType, inAByteBaseTypeNoName, inACaseStmt, inACastExpression, inACatchClause, inACharBaseType, inACharBaseTypeNoName, inAClassFileType, inAClassNameBaseType, inAClassNameMultiClassNameList, inAClassNameSingleClassNameList, inAClzzConstant, inACmpBinop, inACmpeqBinop, inACmpgBinop, inACmpgeBinop, inACmpgtBinop, inACmplBinop, inACmpleBinop, inACmpltBinop, inACmpneBinop, inAConstantCaseLabel, inAConstantImmediate, inADeclaration, inADefaultCaseLabel, inADivBinop, inADoubleBaseType, inADoubleBaseTypeNoName, inADynamicInvokeExpr, inAEmptyMethodBody, inAEntermonitorStatement, inAEnumModifier, inAExitmonitorStatement, inAExtendsClause, inAFieldMember, inAFieldReference, inAFieldSignature, inAFileBody, inAFinalModifier, inAFixedArrayDescriptor, inAFloatBaseType, inAFloatBaseTypeNoName, inAFloatConstant, inAFullIdentClassName, inAFullIdentNonvoidType, inAGotoStatement, inAGotoStmt, inAIdentArrayRef, inAIdentClassName, inAIdentityNoTypeStatement, inAIdentityStatement, inAIdentName, inAIdentNonvoidType, inAIfStatement, inAImmediateExpression, inAImplementsClause, inAInstanceofExpression, inAIntBaseType, inAIntBaseTypeNoName, inAIntegerConstant, inAInterfaceFileType, inAInterfaceNonstaticInvoke, inAInvokeExpression, inAInvokeStatement, inALabelName, inALabelStatement, inALengthofUnop, inALocalFieldRef, inALocalImmediate, inALocalName, inALocalVariable, inALongBaseType, inALongBaseTypeNoName, inALookupswitchStatement, inAMethodMember, inAMethodSignature, inAMinusBinop, inAModBinop, inAMultBinop, inAMultiArgList, inAMultiLocalNameList, inAMultiNameList, inAMultiNewExpr, inAMultiParameterList, inANativeModifier, inANegUnop, inANewExpression, inANonstaticInvokeExpr, inANonvoidJimpleType, inANopStatement, inANovoidType, inANullBaseType, inANullBaseTypeNoName, inANullConstant, inAOrBinop, inAParameter, inAPlusBinop, inAPrivateModifier, inAProtectedModifier, inAPublicModifier, inAQuotedArrayRef, inAQuotedClassName, inAQuotedName, inAQuotedNonvoidType, inAReferenceExpression, inAReferenceVariable, inARetStatement, inAReturnStatement, inAShlBinop, inAShortBaseType, inAShortBaseTypeNoName, inAShrBinop, inASigFieldRef, inASimpleNewExpr, inASingleArgList, inASingleLocalNameList, inASingleNameList, inASingleParameterList, inASpecialNonstaticInvoke, inAStaticInvokeExpr, inAStaticModifier, inAStrictfpModifier, inAStringConstant, inASynchronizedModifier, inATableswitchStatement, inAThrowsClause, inAThrowStatement, inATransientModifier, inAUnknownJimpleType, inAUnnamedMethodSignature, inAUnopBoolExpr, inAUnopExpr, inAUnopExpression, inAUshrBinop, inAVirtualNonstaticInvoke, inAVoidType, inAVolatileModifier, inAXorBinop, inStart, outAAbstractModifier, outAAnnotationModifier, outAArrayBrackets, outAArrayDescriptor, outABinopExpression, outAConstantImmediate, outADefaultCaseLabel, outAEmptyMethodBody, outAEnumModifier, outAExtendsClause, outAFieldReference, outAFileBody, outAFinalModifier, outAFixedArrayDescriptor, outAFullIdentClassName, outAGotoStmt, outAIdentArrayRef, outAIdentClassName, outAIdentName, outAImmediateExpression, outAImplementsClause, outAInterfaceNonstaticInvoke, outAInvokeExpression, outALabelName, outALocalName, outAMultiNameList, outANativeModifier, outANewExpression, outANonvoidJimpleType, outAParameter, outAPrivateModifier, outAProtectedModifier, outAPublicModifier, outAQuotedArrayRef, outAQuotedClassName, outAQuotedName, outAReferenceExpression, outAReferenceVariable, outASingleNameList, outASpecialNonstaticInvoke, outAStaticModifier, outAStrictfpModifier, outASynchronizedModifier, outATransientModifier, outAUnopBoolExpr, outAVirtualNonstaticInvoke, outAVolatileModifier
-
Methods inherited from class soot.jimple.parser.analysis.AnalysisAdapter
caseEOF, caseInvalidToken, caseTAbstract, caseTAnd, caseTAnnotation, caseTAtIdentifier, caseTBoolConstant, caseTBoolean, caseTBreakpoint, caseTByte, caseTCase, caseTCatch, caseTChar, caseTClass, caseTCls, caseTCmp, caseTCmpeq, caseTCmpg, caseTCmpge, caseTCmpgt, caseTCmpl, caseTCmple, caseTCmplt, caseTCmpne, caseTColon, caseTColonEquals, caseTComma, caseTDefault, caseTDiv, caseTDot, caseTDouble, caseTDynamicinvoke, caseTEntermonitor, caseTEnum, caseTEquals, caseTExitmonitor, caseTExtends, caseTFinal, caseTFloat, caseTFloatConstant, caseTFrom, caseTFullIdentifier, caseTGoto, caseTIdentifier, caseTIf, caseTIgnored, caseTImplements, caseTInstanceof, caseTInt, caseTIntegerConstant, caseTInterface, caseTInterfaceinvoke, caseTLBrace, caseTLBracket, caseTLengthof, caseTLong, caseTLookupswitch, caseTLParen, caseTMinus, caseTMod, caseTMult, caseTNative, caseTNeg, caseTNew, caseTNewarray, caseTNewmultiarray, caseTNop, caseTNull, caseTNullType, caseTOr, caseTPlus, caseTPrivate, caseTProtected, caseTPublic, caseTQuote, caseTQuotedName, caseTRBrace, caseTRBracket, caseTRet, caseTReturn, caseTRParen, caseTSemicolon, caseTShl, caseTShort, caseTShr, caseTSpecialinvoke, caseTStatic, caseTStaticinvoke, caseTStrictfp, caseTStringConstant, caseTSynchronized, caseTTableswitch, caseTThrow, caseTThrows, caseTTo, caseTTransient, caseTUnknown, caseTUshr, caseTVirtualinvoke, caseTVoid, caseTVolatile, caseTWith, caseTXor, getIn, getOut, setIn, setOut
-
-
-
-
Constructor Detail
-
BodyExtractorWalker
public BodyExtractorWalker(SootClass sc, SootResolver resolver, Map<SootMethod,JimpleBody> methodToParsedBodyMap)
Constructs a walker, and attaches it to the given SootClass, sending bodies to the given methodToParsedBodyMap.
-
-
Method Detail
-
caseAFile
public void caseAFile(AFile node)
-
outAFieldMember
public void outAFieldMember(AFieldMember node)
- Overrides:
outAFieldMemberin classWalker
-
outAMethodMember
public void outAMethodMember(AMethodMember node)
- Overrides:
outAMethodMemberin classWalker
-
-