token.go raw
1 package tokenfile
2
3 import (
4 "go/ast"
5 "go/token"
6 "reflect"
7
8 "golang.org/x/tools/go/analysis"
9 )
10
11 var Analyzer = &analysis.Analyzer{
12 Name: "tokenfileanalyzer",
13 Doc: "creates a mapping of *token.File to *ast.File",
14 Run: func(pass *analysis.Pass) (interface{}, error) {
15 m := map[*token.File]*ast.File{}
16 for _, af := range pass.Files {
17 tf := pass.Fset.File(af.Pos())
18 m[tf] = af
19 }
20 return m, nil
21 },
22 RunDespiteErrors: true,
23 ResultType: reflect.TypeOf(map[*token.File]*ast.File{}),
24 }
25