Open
Description
Description
Now Traverser
contains not only methods for a Jimple traversal, but also methods for working with a SymbolicState
. We should define a convenient API for working with SymbolicState
and extract all existing methods from Traverser
.
Most likely we will need to define new class SVMContext
which encapsulates all the necessary information for working with SymbolicState
.
Expected behavior
- A convenient SVM API is designed and implemented.
- Methods from
Traverser
are moved to the new class. - All usages of these methods (e.g., in wrappers) are refactored.
- Enough documentation is provided.
Potential alternatives
Leave all functions related to SymbolicState
in Traverser.kt
Context
See Traverser.kt
. See this discussion on refactoring for more information.