Source code for glud.traversal

from clang.cindex import *

[docs]def walk(predicate, cursor): """Yield all nodes found by recursively visiting the AST """ return (c for c in cursor.walk_preorder() if predicate(c))
[docs]def iter_child_nodes(predicate, cursor): """Yield all direct child nodes of node """ return (c for c in cursor.get_children() if predicate(c))
def iter_base_classes(cursor): for c in cursor.get_children(): if c.kind != CursorKind.CXX_BASE_SPECIFIER: continue cdef = c.get_definition() if cdef is None: continue yield cdef for b in iter_base_classes(cdef): yield b