Documentation ¶
Overview ¶
Package parser provides code to parse go files, type-check them, extract the types.
Index ¶
- type Builder
- func (b *Builder) AddBuildTags(tags ...string)
- func (b *Builder) AddDir(dir string) error
- func (b *Builder) AddDirRecursive(dir string) error
- func (b *Builder) AddDirTo(dir string, u *types.Universe) error
- func (b *Builder) AddFile(pkg string, path string, src []byte) error
- func (b *Builder) FindPackages() []string
- func (b *Builder) FindTypes() (types.Universe, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder lets you add all the go files in all the packages that you care about, then constructs the type source data.
func (*Builder) AddBuildTags ¶
AddBuildTags adds the specified build tags to the parse context.
func (*Builder) AddDir ¶
AddDir adds an entire directory, scanning it for go files. 'dir' should have a single go package in it. GOPATH, GOROOT, and the location of your go binary (`which go`) will all be searched if dir doesn't literally resolve.
func (*Builder) AddDirRecursive ¶
AddDirRecursive is just like AddDir, but it also recursively adds subdirectories; it returns an error only if the path couldn't be resolved; any directories recursed into without go source are ignored.
func (*Builder) AddDirTo ¶ added in v1.4.0
AddDirTo adds an entire directory to a given Universe. Unlike AddDir, this processes the package immediately, which makes it safe to use from within a generator (rather than just at init time. 'dir' must be a single go package. GOPATH, GOROOT, and the location of your go binary (`which go`) will all be searched if dir doesn't literally resolve.
func (*Builder) AddFile ¶
AddFile adds a file to the set. The pkg must be of the form "canonical/pkg/path" and the path must be the absolute path to the file.
func (*Builder) FindPackages ¶ added in v1.4.0
FindPackages fetches a list of the user-imported packages.