go/parser demo

This commit is contained in:
xushiwei
2025-04-28 00:35:45 +08:00
parent ab15f30b13
commit d9d813db56
3 changed files with 14 additions and 1 deletions

View File

@@ -0,0 +1,34 @@
package main
import (
"fmt"
"go/parser"
"go/token"
)
func main() {
fset := token.NewFileSet() // positions are relative to fset
src := `package foo
import (
"fmt"
"time"
)
func bar() {
fmt.Println(time.Now())
}`
// Parse src but stop after processing the imports.
f, err := parser.ParseFile(fset, "", src, parser.ImportsOnly)
if err != nil {
fmt.Println(err)
return
}
// Print the imports from the file's AST.
for _, s := range f.Imports {
fmt.Println(s.Path.Value)
}
}