def traverse_and_process(node, context): if not node: return None result = process(node.value, context) for child in node.children: traverse_and_process(child, result) return result