Single file
fset := token.NewFileSet()
file, err := parser.ParseFile(fset, "main.go", nil, parser.ParseComments)
if err != nil { log.Fatal(err) }
go/parserParse Go source code into an AST. Starting point for any static analysis.
fset := token.NewFileSet()
file, err := parser.ParseFile(fset, "main.go", nil, parser.ParseComments)
if err != nil { log.Fatal(err) }
pkgs, err := parser.ParseDir(fset, ".", nil, 0)
for name, pkg := range pkgs { fmt.Println(name, len(pkg.Files)) }
file, _ := parser.ParseFile(fset, "", "package p; var X = 1", 0)
expr, err := parser.ParseExpr("a + b*2")
// returns *ast.BinaryExpr