code: function walkEnd(node, cb) {
    walk(node,
      function (node) {
        cb(node);
      },
      function (node) {
        if (node.nodes) {
          cb({type: 'end', node: node});
        }
      }
    );
  }
docs: /*
  Walks a tree of AST nodes.
  @param {AstNode|Object} node AST node to walk.
  @param {String} node.type Each AST node needs a type.
  @param {Array} [node.nodes] Each AST node can optionally have a list of nodes to
  recurse.
  @param {function} cb Function to call before and after recursing into node.
  After recursing node, pseudo-node of type "end" will be passed to callback.