Golang go/ast.Print() function examples

package go/ast

Print prints x to standard output, skipping nil fields. Print(fset, x) is the same as Fprint(os.Stdout, fset, x, NotNilFilter).

Golang go/ast.Print() function usage examples

Example 1 :

 fset := token.NewFileSet()
 astPkgs, err := parser.ParseDir(fset, dir, nil, 0)
 if err != nil {
 errorfExit("can not parse package %s, %s", dir, err)
 }

 for _, pkg := range astPkgs {
 ast.Print(fset, pkg)
 }

Example 2 : ( from http://golang.org/pkg/go/ast/#Print )

 package main

 import (
  "go/ast"
  "go/parser"
  "go/token"
 )

 func main() {
  // src is the input for which we want to print the AST.
  src := `
 package main
 func main() {
  println("Hello, World!")
 }
 `

  // Create the AST by parsing src.
  fset := token.NewFileSet() // positions are relative to fset
  f, err := parser.ParseFile(fset, "", src, 0)
  if err != nil {
 panic(err)
  }

  // Print the AST.
  ast.Print(fset, f)

 }

References :

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

https://github.com/sunfmin/rf/blob/master/vacuum.go

Advertisement