parser

package
v0.0.0-...-8167cfd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2020 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package parser provides code to parse go files, type-check them, extract the types.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder struct {

	// If true, include *_test.go
	IncludeTestFiles bool
	// 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 New

func New() *Builder

New constructs a new builder.

func (*Builder) AddBuildTags

func (b *Builder) AddBuildTags(tags ...string)

AddBuildTags adds the specified build tags to the parse context.

func (*Builder) AddDir

func (b *Builder) AddDir(dir string) error

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

func (b *Builder) AddDirRecursive(dir string) error

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

func (b *Builder) AddDirTo(dir string, u *types.Universe) error

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. Deprecated. Please use AddDirectoryTo.

func (*Builder) AddDirectoryTo

func (b *Builder) AddDirectoryTo(dir string, u *types.Universe) (*types.Package, error)

AddDirectoryTo 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) AddFileForTest

func (b *Builder) AddFileForTest(pkg string, path string, src []byte) error

AddFileForTest adds a file to the set, without verifying that the provided pkg actually exists on disk. The pkg must be of the form "canonical/pkg/path" and the path must be the absolute path to the file. Because this bypasses the normal recursive finding of package dependencies (on disk), test should sort their test files topologically first, so all deps are resolved by the time we need them.

func (*Builder) FindPackages

func (b *Builder) FindPackages() []string

FindPackages fetches a list of the user-imported packages. Note that you need to call b.FindTypes() first.

func (*Builder) FindTypes

func (b *Builder) FindTypes() (types.Universe, error)

FindTypes finalizes the package imports, and searches through all the packages for types.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL