placeholder AST traversal