Make generic AST walker and use it