github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/go/parser/example_test.go (about) 1 // Copyright 2012 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package parser_test 6 7 import ( 8 "github.com/shogo82148/std/fmt" 9 "github.com/shogo82148/std/go/parser" 10 "github.com/shogo82148/std/go/token" 11 ) 12 13 func ExampleParseFile() { 14 fset := token.NewFileSet() // positionsはfsetに対して相対的な位置にあります。 15 16 src := `package foo 17 18 import ( 19 "fmt" 20 "time" 21 ) 22 23 func bar() { 24 fmt.Println(time.Now()) 25 }` 26 27 // インポートの処理をした後にsrcをパースしますが、それ以降の処理を停止します。 28 f, err := parser.ParseFile(fset, "", src, parser.ImportsOnly) 29 if err != nil { 30 fmt.Println(err) 31 return 32 } 33 34 // ファイルのASTからインポートを出力する。 35 for _, s := range f.Imports { 36 fmt.Println(s.Path.Value) 37 } 38 39 // 出力: 40 // 41 // "fmt" 42 // "time" 43 }