pkg build, const UnknownPathIsError UnknownPathMode
pkg build, const UnknownPathIsIgnored UnknownPathMode
pkg build, func BuildConfig(string, io.Reader, *vdl.Type, []string, *compile.Env) *vdl.Value
pkg build, func BuildConfigValue(string, io.Reader, []string, *compile.Env, interface{})
pkg build, func BuildExprs(string, []*vdl.Type, *compile.Env) []*vdl.Value
pkg build, func BuildPackage(*Package, *compile.Env) *compile.Package
pkg build, func IsDirPath(string) bool
pkg build, func IsImportPath(string) bool
pkg build, func ParsePackage(*Package, parse.Opts, *vdlutil.Errors) []*parse.File
pkg build, func SrcDirs(*vdlutil.Errors) []string
pkg build, func TransitivePackages([]string, UnknownPathMode, Opts, *vdlutil.Errors) []*Package
pkg build, func TransitivePackagesForConfig(string, io.Reader, Opts, *vdlutil.Errors) []*Package
pkg build, method (*Package) CloseFiles() error
pkg build, method (*Package) OpenFiles() (map[string]io.Reader, error)
pkg build, method (UnknownPathMode) String() string
pkg build, type Opts struct
pkg build, type Opts struct, Extensions []string
pkg build, type Opts struct, VDLConfigName string
pkg build, type Package struct
pkg build, type Package struct, BaseFileNames []string
pkg build, type Package struct, Config vdltool.Config
pkg build, type Package struct, Dir string
pkg build, type Package struct, GenPath string
pkg build, type Package struct, Name string
pkg build, type Package struct, OpenFilesFunc func([]string) (map[string]io.ReadCloser, error)
pkg build, type Package struct, Path string
pkg build, type UnknownPathMode int
