Golang go/ast.Walk() function examples

package go/ast

Walk traverses an AST in depth-first order: It starts by calling v.Visit(node); node must not be nil. If the visitor w returned by v.Visit(node) is not nil, Walk is invoked recursively with visitor w for each of the non-nil children of node, followed by a call of w.Visit(nil).

Golang go/ast.Walk() function usage examples

Example 1:

 // walkFile walks the file's tree.
 func (f *File) walkFile(name string, file *ast.File) {
  Println("Checking file", name)
  ast.Walk(f, file)
 }

Example 2:

 var f *ast.File

 ast.Walk(visitFn(func(n ast.Node) {
 sel, ok := n.(*ast.SelectorExpr)
 }), f)

Reference :

http://golang.org/pkg/go/ast/#Walk

Advertisement