Slide 8
Slide 8 text
golang.org/x/tools/go/packages パッケージ等を利用すると、ソースコードと抽象
構文木を相互に変換できる
Goのソースコードと抽象構文木の相互変換
https://godoc.org/golang.org/x/tools/go/packages
cfg := &packages.Config{/* … */}
pkgs, err := packages.Load(cfg, pkgNames...) // ソースコードを解析する
if err != nil {/* … */}
if packages.PrintErrors(pkgs) > 0 {/* … */}
for _, pkg := range pkgs {
for _, file := range pkg.Syntax {
err := printer.Fprint(os.Stdout, pkg.Fset, file) // 抽象構文木を出力する
}
}
8