Source code for angr.analyses.decompiler.region_walker
from .graph_region import GraphRegion
[docs]class RegionWalker:
"""
A simple traverser class that walks GraphRegion instances.
"""
def __init__(self):
self._parent_region = None
self._current_region = None
[docs] def walk(self, region: GraphRegion):
for node in region.graph.nodes():
if isinstance(node, GraphRegion):
self._parent_region = node
self.walk(node)
self._parent_region = None
else:
self.walk_node(region, node)
[docs] def walk_node(self, region, node): # pylint:disable=no-self-use,unused-argument
raise NotImplementedError("Please override this method with your own logic")