Documentation
¶
Index ¶
- Constants
- Variables
- func ASTFile(pkg *Package, testingFile bool) *ast.File
- func AssignableConv(pkg *Package, V, T types.Type, pv *internal.Elem) bool
- func AssignableTo(pkg *Package, V, T types.Type) bool
- func CheckOverloadMethod(sig *types.Signature) (funcs []types.Object, ok bool)
- func CheckSignature(typ types.Type, idx, nin int) *types.Signature
- func CommentedASTFile(pkg *Package, testingFile bool) *printer.CommentedNodes
- func ComparableTo(pkg *Package, varg, targ *Element) bool
- func Default(pkg *Package, t types.Type) types.Type
- func DefaultConv(pkg *Package, t types.Type, expr *ast.Expr) types.Type
- func InitBuiltin(pkg PkgImporter, builtin *types.Package, conf *Config)
- func InsertStmtFront(body *ast.BlockStmt, stmt ast.Stmt)
- func LoadGoPkg(at *Package, imports map[string]*PkgRef, loadPkg *packages.Package)
- func LoadGoPkgs(at *Package, importPkgs map[string]*PkgRef, pkgPaths ...string) int
- func NewArray(elem types.Type, len int64) types.Type
- func NewChan(dir types.ChanDir, elem types.Type) types.Type
- func NewInstruction(pos token.Pos, pkg *types.Package, name string, instr Instruction) *types.TypeName
- func NewMap(key, elem types.Type) types.Type
- func NewOverloadFunc(pos token.Pos, pkg *types.Package, name string, funcs ...types.Object) *types.TypeName
- func NewOverloadMethod(typ *types.Named, pos token.Pos, pkg *types.Package, name string, ...) *types.Func
- func NewPointer(elem types.Type) types.Type
- func NewSignature(recv *types.Var, params, results *types.Tuple, variadic bool) *types.Signature
- func NewSlice(elem types.Type) types.Type
- func NewTemplateRecvMethod(typ *types.Named, pos token.Pos, pkg *types.Package, name string, ...) *types.Func
- func SetDebug(dbgFlags int)
- func WriteFile(file string, pkg *Package, testingFile bool) (err error)
- func WriteTo(dst io.Writer, pkg *Package, testingFile bool) (err error)
- type CodeBuilder
- func (p *CodeBuilder) AliasType(name string, typ types.Type, pos ...token.Pos) *types.Named
- func (p *CodeBuilder) ArrayLit(typ types.Type, arity int, keyVal ...bool) *CodeBuilder
- func (p *CodeBuilder) Assign(lhs int, rhs ...int) *CodeBuilder
- func (p *CodeBuilder) AssignOp(op token.Token, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) AssignWith(lhs, rhs int, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) BinaryOp(op token.Token, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) Block() *CodeBuilder
- func (p *CodeBuilder) Break(l *Label) *CodeBuilder
- func (p *CodeBuilder) Call(n int, ellipsis ...bool) *CodeBuilder
- func (p *CodeBuilder) CallInlineClosureStart(sig *types.Signature, arity int, ellipsis bool) *CodeBuilder
- func (p *CodeBuilder) CallWith(n int, ellipsis bool, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) Case(n int) *CodeBuilder
- func (p *CodeBuilder) CommCase(n int) *CodeBuilder
- func (p *CodeBuilder) Comments() *ast.CommentGroup
- func (p *CodeBuilder) CompareNil(op token.Token, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) Continue(l *Label) *CodeBuilder
- func (p *CodeBuilder) Debug(dbg func(cb *CodeBuilder)) *CodeBuilder
- func (p *CodeBuilder) Defer() *CodeBuilder
- func (p *CodeBuilder) DefineVarStart(pos token.Pos, names ...string) *CodeBuilder
- func (p *CodeBuilder) Elem(src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) ElemRef(src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) Else() *CodeBuilder
- func (p *CodeBuilder) End() *CodeBuilder
- func (p *CodeBuilder) EndConst() *Element
- func (p *CodeBuilder) EndInit(n int) *CodeBuilder
- func (p *CodeBuilder) EndStmt() *CodeBuilder
- func (p *CodeBuilder) Fallthrough() *CodeBuilder
- func (p *CodeBuilder) For() *CodeBuilder
- func (p *CodeBuilder) ForRange(names ...string) *CodeBuilder
- func (p *CodeBuilder) Func() *Func
- func (p *CodeBuilder) Get(idx int) *Element
- func (p *CodeBuilder) Go() *CodeBuilder
- func (p *CodeBuilder) Goto(l *Label) *CodeBuilder
- func (p *CodeBuilder) If() *CodeBuilder
- func (p *CodeBuilder) IncDec(op token.Token) *CodeBuilder
- func (p *CodeBuilder) Index(nidx int, twoValue bool, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) IndexRef(nidx int, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) InternalStack() *InternalStack
- func (p *CodeBuilder) Label(l *Label) *CodeBuilder
- func (p *CodeBuilder) LookupLabel(name string) (l *Label, ok bool)
- func (p *CodeBuilder) MapLit(typ types.Type, arity int) *CodeBuilder
- func (p *CodeBuilder) Member(name string, lhs bool, src ...ast.Node) (kind MemberKind, err error)
- func (p *CodeBuilder) MemberRef(name string, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) MemberVal(name string, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) NewAutoVar(pos token.Pos, name string, pv **types.Var) *CodeBuilder
- func (p *CodeBuilder) NewClosure(params, results *Tuple, variadic bool) *Func
- func (p *CodeBuilder) NewClosureWith(sig *types.Signature) *Func
- func (p *CodeBuilder) NewConstStart(typ types.Type, names ...string) *CodeBuilder
- func (p *CodeBuilder) NewLabel(pos token.Pos, name string) *Label
- func (p *CodeBuilder) NewType(name string, pos ...token.Pos) *TypeDecl
- func (p *CodeBuilder) NewVar(typ types.Type, names ...string) *CodeBuilder
- func (p *CodeBuilder) NewVarStart(typ types.Type, names ...string) *CodeBuilder
- func (p *CodeBuilder) None() *CodeBuilder
- func (p *CodeBuilder) Pkg() *Package
- func (p *CodeBuilder) Post() *CodeBuilder
- func (p *CodeBuilder) RangeAssignThen(pos token.Pos) *CodeBuilder
- func (p *CodeBuilder) ResetInit()
- func (p *CodeBuilder) ResetStmt()
- func (p *CodeBuilder) Return(n int, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) ReturnErr(outer bool) *CodeBuilder
- func (p *CodeBuilder) Scope() *types.Scope
- func (p *CodeBuilder) Select() *CodeBuilder
- func (p *CodeBuilder) Send() *CodeBuilder
- func (p *CodeBuilder) SetBodyHandler(handle func(body *ast.BlockStmt, kind int)) *CodeBuilder
- func (p *CodeBuilder) SetComments(comments *ast.CommentGroup, once bool) *CodeBuilder
- func (p *CodeBuilder) Slice(slice3 bool, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) SliceLit(typ types.Type, arity int, keyVal ...bool) *CodeBuilder
- func (p *CodeBuilder) Star(src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) StructLit(typ types.Type, arity int, keyVal bool) *CodeBuilder
- func (p *CodeBuilder) Switch() *CodeBuilder
- func (p *CodeBuilder) Then() *CodeBuilder
- func (p *CodeBuilder) Typ(typ types.Type, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) TypeAssert(typ types.Type, twoValue bool, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) TypeAssertThen() *CodeBuilder
- func (p *CodeBuilder) TypeCase(n int) *CodeBuilder
- func (p *CodeBuilder) TypeSwitch(name string) *CodeBuilder
- func (p *CodeBuilder) UnaryOp(op token.Token, twoValue ...bool) *CodeBuilder
- func (p *CodeBuilder) UntypedBigInt(v *big.Int, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) UntypedBigRat(v *big.Rat, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) Val(v interface{}, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) VarRef(ref interface{}, src ...ast.Node) *CodeBuilder
- func (p *CodeBuilder) ZeroLit(typ types.Type) *CodeBuilder
- type CodeError
- type Config
- type ConstDecl
- type Contract
- type Element
- type Func
- type InstrFlags
- type Instruction
- type InternalStack
- type Label
- type LoadNamedFunc
- type LoadPkgsCached
- type LoadPkgsFunc
- type MatchError
- type MemberKind
- type NodeInterpreter
- type Package
- func (p *Package) AliasType(name string, typ types.Type, pos ...token.Pos) *types.Named
- func (p *Package) Builtin() *PkgRef
- func (p *Package) CB() *CodeBuilder
- func (p *Package) ConstStart() *CodeBuilder
- func (p *Package) HasTestingFile() bool
- func (p *Package) Import(pkgPath string) *PkgRef
- func (p *Package) InTestingFile() bool
- func (p *Package) InternalGetLoadConfig() *packages.Config
- func (p *Package) NewAutoParam(name string) *Param
- func (p *Package) NewConstDecl(scope *types.Scope) *ConstDecl
- func (p *Package) NewConstStart(scope *types.Scope, pos token.Pos, typ types.Type, names ...string) *CodeBuilderdeprecated
- func (p *Package) NewFunc(recv *Param, name string, params, results *Tuple, variadic bool) *Func
- func (p *Package) NewFuncWith(pos token.Pos, name string, sig *types.Signature, recvTypePos func() token.Pos) (*Func, error)
- func (p *Package) NewParam(pos token.Pos, name string, typ types.Type) *Param
- func (p *Package) NewType(name string, pos ...token.Pos) *TypeDecl
- func (p *Package) NewVar(pos token.Pos, typ types.Type, names ...string) *ValueDecl
- func (p *Package) NewVarEx(scope *types.Scope, pos token.Pos, typ types.Type, names ...string) *ValueDecl
- func (p *Package) NewVarStart(pos token.Pos, typ types.Type, names ...string) *CodeBuilder
- func (p *Package) SetInTestingFile(inTestingFile bool) (old bool)
- type Param
- type PkgImporter
- type PkgRef
- type Ref
- type TemplateFunc
- type TemplateParamType
- type TemplateSignature
- type Tuple
- type TypeDecl
- type TypeType
- type ValueDecl
Constants ¶
const ( DbgFlagInstruction = 1 << iota DbgFlagImport DbgFlagMatch DbgFlagComments DbgFlagWriteFile DbgFlagSetDebug DbgFlagPersistCache DbgFlagAll = DbgFlagInstruction | DbgFlagImport | DbgFlagMatch | DbgFlagComments | DbgFlagWriteFile | DbgFlagSetDebug | DbgFlagPersistCache )
Variables ¶
var ( TyByte = types.Universe.Lookup("byte").Type().(*types.Basic) TyRune = types.Universe.Lookup("rune").Type().(*types.Basic) )
var ( TyEmptyInterface = types.NewInterfaceType(nil, nil) TyError = types.Universe.Lookup("error").Type() )
Functions ¶
func AssignableConv ¶ added in v1.0.0
func AssignableTo ¶ added in v0.6.0
AssignableTo reports whether a value of type V is assignable to a variable of type T.
func CheckOverloadMethod ¶ added in v1.0.2
func CheckSignature ¶ added in v1.7.0
func CommentedASTFile ¶ added in v1.7.10
func CommentedASTFile(pkg *Package, testingFile bool) *printer.CommentedNodes
CommentedASTFile func
func ComparableTo ¶ added in v0.6.3
func Default ¶ added in v0.8.13
Default returns the default "typed" type for an "untyped" type; it returns the incoming type for all other types. The default type for untyped nil is untyped nil.
func DefaultConv ¶ added in v1.0.0
func InitBuiltin ¶ added in v1.7.6
func InitBuiltin(pkg PkgImporter, builtin *types.Package, conf *Config)
func LoadGoPkgs ¶ added in v0.6.6
LoadGoPkgs loads and returns the Go packages named by the given pkgPaths.
func NewArray ¶ added in v0.3.0
NewArray returns a new array type for the given element type and length. A negative length indicates an unknown length.
func NewChan ¶ added in v0.3.0
NewChan returns a new channel type for the given direction and element type.
func NewInstruction ¶ added in v0.7.6
func NewOverloadFunc ¶ added in v0.3.0
func NewOverloadMethod ¶ added in v1.0.2
func NewPointer ¶ added in v0.3.0
NewPointer returns a new pointer type for the given element (base) type.
func NewSignature ¶ added in v0.3.0
NewSignature returns a new function type for the given receiver, parameters, and results, either of which may be nil. If variadic is set, the function is variadic, it must have at least one parameter, and the last parameter must be of unnamed slice type.
func NewTemplateRecvMethod ¶ added in v1.7.0
func NewTemplateRecvMethod(typ *types.Named, pos token.Pos, pkg *types.Package, name string, fn types.Object) *types.Func
NewTemplateRecvMethod - https://github.com/goplus/gop/issues/811
Types ¶
type CodeBuilder ¶ added in v0.2.0
type CodeBuilder struct {
// contains filtered or unexported fields
}
CodeBuilder type
func (*CodeBuilder) ArrayLit ¶ added in v0.6.0
func (p *CodeBuilder) ArrayLit(typ types.Type, arity int, keyVal ...bool) *CodeBuilder
ArrayLit func
func (*CodeBuilder) Assign ¶ added in v0.2.0
func (p *CodeBuilder) Assign(lhs int, rhs ...int) *CodeBuilder
Assign func
func (*CodeBuilder) AssignOp ¶ added in v0.8.82
func (p *CodeBuilder) AssignOp(op token.Token, src ...ast.Node) *CodeBuilder
AssignOp func
func (*CodeBuilder) AssignWith ¶ added in v0.9.20
func (p *CodeBuilder) AssignWith(lhs, rhs int, src ...ast.Node) *CodeBuilder
AssignWith func
func (*CodeBuilder) BinaryOp ¶ added in v0.2.0
func (p *CodeBuilder) BinaryOp(op token.Token, src ...ast.Node) *CodeBuilder
BinaryOp func
func (*CodeBuilder) Break ¶ added in v0.8.4
func (p *CodeBuilder) Break(l *Label) *CodeBuilder
Break func
func (*CodeBuilder) Call ¶ added in v0.2.0
func (p *CodeBuilder) Call(n int, ellipsis ...bool) *CodeBuilder
Call func
func (*CodeBuilder) CallInlineClosureStart ¶ added in v0.8.14
func (p *CodeBuilder) CallInlineClosureStart(sig *types.Signature, arity int, ellipsis bool) *CodeBuilder
CallInlineClosureStart func
func (*CodeBuilder) CallWith ¶ added in v0.9.20
func (p *CodeBuilder) CallWith(n int, ellipsis bool, src ...ast.Node) *CodeBuilder
CallWith func
func (*CodeBuilder) CommCase ¶ added in v0.9.3
func (p *CodeBuilder) CommCase(n int) *CodeBuilder
CommCase
func (*CodeBuilder) Comments ¶ added in v0.9.6
func (p *CodeBuilder) Comments() *ast.CommentGroup
Comments returns the comments of next statement.
func (*CodeBuilder) CompareNil ¶ added in v0.8.15
func (p *CodeBuilder) CompareNil(op token.Token, src ...ast.Node) *CodeBuilder
CompareNil func
func (*CodeBuilder) Continue ¶ added in v0.8.4
func (p *CodeBuilder) Continue(l *Label) *CodeBuilder
Continue func
func (*CodeBuilder) Debug ¶ added in v0.9.15
func (p *CodeBuilder) Debug(dbg func(cb *CodeBuilder)) *CodeBuilder
Debug func
func (*CodeBuilder) DefineVarStart ¶ added in v0.5.0
func (p *CodeBuilder) DefineVarStart(pos token.Pos, names ...string) *CodeBuilder
DefineVarStart func
func (*CodeBuilder) Elem ¶ added in v0.8.50
func (p *CodeBuilder) Elem(src ...ast.Node) *CodeBuilder
Elem func
func (*CodeBuilder) ElemRef ¶ added in v0.8.50
func (p *CodeBuilder) ElemRef(src ...ast.Node) *CodeBuilder
ElemRef func
func (*CodeBuilder) EndConst ¶ added in v0.4.1
func (p *CodeBuilder) EndConst() *Element
func (*CodeBuilder) EndInit ¶ added in v0.5.0
func (p *CodeBuilder) EndInit(n int) *CodeBuilder
EndInit func
func (*CodeBuilder) EndStmt ¶ added in v0.2.0
func (p *CodeBuilder) EndStmt() *CodeBuilder
EndStmt func
func (*CodeBuilder) Fallthrough ¶ added in v0.6.3
func (p *CodeBuilder) Fallthrough() *CodeBuilder
Fallthrough func
func (*CodeBuilder) ForRange ¶ added in v0.6.4
func (p *CodeBuilder) ForRange(names ...string) *CodeBuilder
ForRange func
func (*CodeBuilder) Func ¶ added in v0.9.9
func (p *CodeBuilder) Func() *Func
Func returns current func (nil means in global scope).
func (*CodeBuilder) Goto ¶ added in v0.8.4
func (p *CodeBuilder) Goto(l *Label) *CodeBuilder
Goto func
func (*CodeBuilder) IncDec ¶ added in v0.8.0
func (p *CodeBuilder) IncDec(op token.Token) *CodeBuilder
IncDec func
func (*CodeBuilder) Index ¶ added in v0.8.31
func (p *CodeBuilder) Index(nidx int, twoValue bool, src ...ast.Node) *CodeBuilder
Index func
func (*CodeBuilder) IndexRef ¶ added in v0.7.0
func (p *CodeBuilder) IndexRef(nidx int, src ...ast.Node) *CodeBuilder
IndexRef func
func (*CodeBuilder) InternalStack ¶ added in v1.2.8
func (p *CodeBuilder) InternalStack() *InternalStack
InternalStack: don't call it (only for internal use)
func (*CodeBuilder) Label ¶ added in v0.8.4
func (p *CodeBuilder) Label(l *Label) *CodeBuilder
Label func
func (*CodeBuilder) LookupLabel ¶ added in v1.7.8
func (p *CodeBuilder) LookupLabel(name string) (l *Label, ok bool)
LookupLabel func
func (*CodeBuilder) MapLit ¶ added in v0.6.0
func (p *CodeBuilder) MapLit(typ types.Type, arity int) *CodeBuilder
MapLit func
func (*CodeBuilder) Member ¶ added in v0.9.15
func (p *CodeBuilder) Member(name string, lhs bool, src ...ast.Node) (kind MemberKind, err error)
Member func
func (*CodeBuilder) MemberRef ¶ added in v0.8.31
func (p *CodeBuilder) MemberRef(name string, src ...ast.Node) *CodeBuilder
MemberRef func
func (*CodeBuilder) MemberVal ¶ added in v0.3.5
func (p *CodeBuilder) MemberVal(name string, src ...ast.Node) *CodeBuilder
MemberVal func
func (*CodeBuilder) NewAutoVar ¶ added in v0.5.0
func (p *CodeBuilder) NewAutoVar(pos token.Pos, name string, pv **types.Var) *CodeBuilder
NewAutoVar func
func (*CodeBuilder) NewClosure ¶ added in v0.2.0
func (p *CodeBuilder) NewClosure(params, results *Tuple, variadic bool) *Func
NewClosure func
func (*CodeBuilder) NewClosureWith ¶ added in v0.2.8
func (p *CodeBuilder) NewClosureWith(sig *types.Signature) *Func
NewClosureWith func
func (*CodeBuilder) NewConstStart ¶ added in v0.6.0
func (p *CodeBuilder) NewConstStart(typ types.Type, names ...string) *CodeBuilder
NewConstStart func
func (*CodeBuilder) NewLabel ¶ added in v1.7.8
func (p *CodeBuilder) NewLabel(pos token.Pos, name string) *Label
func (*CodeBuilder) NewType ¶ added in v0.8.27
func (p *CodeBuilder) NewType(name string, pos ...token.Pos) *TypeDecl
NewType func
func (*CodeBuilder) NewVar ¶ added in v0.2.0
func (p *CodeBuilder) NewVar(typ types.Type, names ...string) *CodeBuilder
NewVar func
func (*CodeBuilder) NewVarStart ¶ added in v0.5.0
func (p *CodeBuilder) NewVarStart(typ types.Type, names ...string) *CodeBuilder
NewVarStart func
func (*CodeBuilder) Pkg ¶ added in v0.2.7
func (p *CodeBuilder) Pkg() *Package
Pkg returns the package instance.
func (*CodeBuilder) RangeAssignThen ¶ added in v0.6.4
func (p *CodeBuilder) RangeAssignThen(pos token.Pos) *CodeBuilder
RangeAssignThen func
func (*CodeBuilder) ResetInit ¶ added in v0.9.12
func (p *CodeBuilder) ResetInit()
ResetInit resets the variable init state of CodeBuilder.
func (*CodeBuilder) ResetStmt ¶ added in v0.9.11
func (p *CodeBuilder) ResetStmt()
ResetStmt resets the statement state of CodeBuilder.
func (*CodeBuilder) Return ¶ added in v0.3.7
func (p *CodeBuilder) Return(n int, src ...ast.Node) *CodeBuilder
Return func
func (*CodeBuilder) ReturnErr ¶ added in v0.8.24
func (p *CodeBuilder) ReturnErr(outer bool) *CodeBuilder
ReturnErr func
func (*CodeBuilder) Scope ¶ added in v0.5.3
func (p *CodeBuilder) Scope() *types.Scope
Scope returns current scope.
func (*CodeBuilder) SetBodyHandler ¶ added in v1.7.4
func (p *CodeBuilder) SetBodyHandler(handle func(body *ast.BlockStmt, kind int)) *CodeBuilder
func (*CodeBuilder) SetComments ¶ added in v0.9.5
func (p *CodeBuilder) SetComments(comments *ast.CommentGroup, once bool) *CodeBuilder
SetComments sets comments to next statement.
func (*CodeBuilder) Slice ¶ added in v0.8.31
func (p *CodeBuilder) Slice(slice3 bool, src ...ast.Node) *CodeBuilder
Slice func
func (*CodeBuilder) SliceLit ¶ added in v0.6.0
func (p *CodeBuilder) SliceLit(typ types.Type, arity int, keyVal ...bool) *CodeBuilder
SliceLit func
func (*CodeBuilder) Star ¶ added in v0.8.5
func (p *CodeBuilder) Star(src ...ast.Node) *CodeBuilder
Star func
func (*CodeBuilder) StructLit ¶ added in v0.8.26
func (p *CodeBuilder) StructLit(typ types.Type, arity int, keyVal bool) *CodeBuilder
StructLit func
func (*CodeBuilder) Switch ¶ added in v0.6.3
func (p *CodeBuilder) Switch() *CodeBuilder
Switch func
func (*CodeBuilder) Typ ¶ added in v0.7.6
func (p *CodeBuilder) Typ(typ types.Type, src ...ast.Node) *CodeBuilder
Typ func
func (*CodeBuilder) TypeAssert ¶ added in v0.9.2
func (p *CodeBuilder) TypeAssert(typ types.Type, twoValue bool, src ...ast.Node) *CodeBuilder
TypeAssert func
func (*CodeBuilder) TypeAssertThen ¶ added in v0.9.2
func (p *CodeBuilder) TypeAssertThen() *CodeBuilder
TypeAssertThen func
func (*CodeBuilder) TypeCase ¶ added in v0.9.2
func (p *CodeBuilder) TypeCase(n int) *CodeBuilder
TypeCase func
func (*CodeBuilder) TypeSwitch ¶ added in v0.9.2
func (p *CodeBuilder) TypeSwitch(name string) *CodeBuilder
TypeSwitch func
func (*CodeBuilder) UnaryOp ¶ added in v0.2.0
func (p *CodeBuilder) UnaryOp(op token.Token, twoValue ...bool) *CodeBuilder
UnaryOp func
func (*CodeBuilder) UntypedBigInt ¶ added in v1.0.0
func (p *CodeBuilder) UntypedBigInt(v *big.Int, src ...ast.Node) *CodeBuilder
UntypedBigInt func
func (*CodeBuilder) UntypedBigRat ¶ added in v1.0.0
func (p *CodeBuilder) UntypedBigRat(v *big.Rat, src ...ast.Node) *CodeBuilder
UntypedBigRat func
func (*CodeBuilder) Val ¶ added in v0.2.0
func (p *CodeBuilder) Val(v interface{}, src ...ast.Node) *CodeBuilder
Val func
func (*CodeBuilder) VarRef ¶ added in v0.2.0
func (p *CodeBuilder) VarRef(ref interface{}, src ...ast.Node) *CodeBuilder
VarRef func: p.VarRef(nil) means underscore (_)
func (*CodeBuilder) ZeroLit ¶ added in v0.7.2
func (p *CodeBuilder) ZeroLit(typ types.Type) *CodeBuilder
ZeroLit func
type Config ¶ added in v0.2.0
type Config struct {
// Context specifies the context for the load operation.
// If the context is cancelled, the loader may stop early
// and return an ErrCancelled error.
// If Context is nil, the load cannot be cancelled.
Context context.Context
// Logf is the logger for the config.
// If the user provides a logger, debug logging is enabled.
// If the GOPACKAGESDEBUG environment variable is set to true,
// but the logger is nil, default to log.Printf.
Logf func(format string, args ...interface{})
// Dir is the directory in which to run the build system's query tool
// that provides information about the packages.
// If Dir is empty, the tool is run in the current directory.
Dir string
// ModPath is the pkgPath of this module
ModPath string
// Env is the environment to use when invoking the build system's query tool.
// If Env is nil, the current environment is used.
// As in os/exec's Cmd, only the last value in the slice for
// each environment key is used. To specify the setting of only
// a few variables, append to the current environment, as in:
//
// opt.Env = append(os.Environ(), "GOOS=plan9", "GOARCH=386")
//
Env []string
// BuildFlags is a list of command-line flags to be passed through to
// the build system's query tool.
BuildFlags []string
// Fset provides source position information for syntax trees and types.
// If Fset is nil, Load will use a new fileset, but preserve Fset's value.
Fset *token.FileSet
// ParseFile is called to read and parse each file
// when preparing a package's type-checked syntax tree.
// It must be safe to call ParseFile simultaneously from multiple goroutines.
// If ParseFile is nil, the loader will uses parser.ParseFile.
//
// ParseFile should parse the source from src and use filename only for
// recording position information.
//
// An application may supply a custom implementation of ParseFile
// to change the effective file contents or the behavior of the parser,
// or to modify the syntax tree. For example, selectively eliminating
// unwanted function bodies can significantly accelerate type checking.
ParseFile func(fset *token.FileSet, filename string, src []byte) (*ast.File, error)
// HandleErr is called to handle errors.
HandleErr func(err error)
// NodeInterpreter is to interpret an ast.Node.
NodeInterpreter NodeInterpreter
// LoadPkgs is called to load all import packages.
LoadPkgs LoadPkgsFunc
// LoadNamed is called to load a delay-loaded named type.
LoadNamed LoadNamedFunc
// NewBuiltin is to create the builin package.
NewBuiltin func(pkg PkgImporter, conf *Config) *types.Package
// untyped bigint, untyped bigrat, untyped bigfloat
UntypedBigInt, UntypedBigRat, UntypedBigFloat *types.Named
}
Config type
type ConstDecl ¶ added in v0.4.1
type ConstDecl struct {
// contains filtered or unexported fields
}
type Func ¶ added in v0.2.0
Func type
func (*Func) Ancestor ¶ added in v1.7.2
Ancestor returns ancestor of a closure function. It returns itself if the specified func is a normal function.
func (*Func) BodyStart ¶ added in v0.2.0
func (p *Func) BodyStart(pkg *Package) *CodeBuilder
BodyStart func
type InstrFlags ¶ added in v0.8.9
const ( InstrFlagEllipsis InstrFlags = 1 << iota InstrFlagTwoValue )
type Instruction ¶ added in v0.7.6
type InternalStack ¶ added in v1.2.8
type LoadNamedFunc ¶ added in v1.0.10
type LoadPkgsCached ¶ added in v1.2.0
type LoadPkgsCached struct {
// contains filtered or unexported fields
}
func OpenLoadPkgsCached ¶ added in v1.2.0
func OpenLoadPkgsCached( file string, load func(cfg *packages.Config, patterns ...string) ([]*packages.Package, error)) *LoadPkgsCached
OpenLoadPkgsCached opens cache file and returns the cached pkgLoader.
func (*LoadPkgsCached) Save ¶ added in v1.2.0
func (p *LoadPkgsCached) Save() error
type LoadPkgsFunc ¶ added in v0.6.6
func NewLoadPkgsCached ¶ added in v0.6.6
func NewLoadPkgsCached( load func(cfg *packages.Config, patterns ...string) ([]*packages.Package, error)) LoadPkgsFunc
NewLoadPkgsCached returns a cached pkgLoader.
type MatchError ¶ added in v0.9.20
type MatchError struct {
Src ast.Node
Arg types.Type
Param types.Type
At interface{}
// contains filtered or unexported fields
}
func (*MatchError) Error ¶ added in v0.9.20
func (p *MatchError) Error() string
type MemberKind ¶ added in v0.9.15
type MemberKind int
const ( MemberInvalid MemberKind = iota MemberMethod MemberField )
type NodeInterpreter ¶ added in v0.9.16
type NodeInterpreter interface {
// Position gets position of a Pos.
Position(p token.Pos) token.Position
// LoadExpr is called to load an expr code and return its position.
LoadExpr(expr ast.Node) (string, token.Position)
// Caller is called to return the name of a function call.
Caller(expr ast.Node) string
}
type Package ¶
Package type
func NewPackage ¶ added in v0.2.0
NewPackage creates a new package.
func (*Package) CB ¶ added in v0.5.2
func (p *Package) CB() *CodeBuilder
CB returns the code builder.
func (*Package) ConstStart ¶ added in v0.4.1
func (p *Package) ConstStart() *CodeBuilder
ConstStart starts a constant expression.
func (*Package) HasTestingFile ¶ added in v1.0.0
HasTestingFile returns true if this package has testing files.
func (*Package) InTestingFile ¶ added in v1.0.7
InTestingFile returns inTestingFile or not.
func (*Package) InternalGetLoadConfig ¶ added in v0.2.0
InternalGetLoadConfig is a internal function. don't use it.
func (*Package) NewAutoParam ¶ added in v0.6.5
NewAutoParam returns a new variable representing a function result parameter with auto type.
func (*Package) NewConstDecl ¶ added in v1.5.3
func (*Package) NewConstStart
deprecated
added in
v0.6.0
func (*Package) NewFuncWith ¶ added in v0.2.1
func (p *Package) NewFuncWith( pos token.Pos, name string, sig *types.Signature, recvTypePos func() token.Pos) (*Func, error)
NewFuncWith func
func (*Package) NewParam ¶ added in v0.2.0
NewParam returns a new variable representing a function parameter.
func (*Package) NewType ¶ added in v0.8.27
NewType creates a new type (which need to call InitType later).
func (*Package) NewVarStart ¶ added in v0.6.0
func (*Package) SetInTestingFile ¶ added in v1.0.0
SetInTestingFile sets inTestingFile or not.
type PkgImporter ¶ added in v0.3.2
type PkgRef ¶ added in v0.2.0
type PkgRef struct {
// ID is a unique identifier for a package,
// in a syntax provided by the underlying build system.
ID string
// Types provides type information for the package.
// The NeedTypes LoadMode bit sets this field for packages matching the
// patterns; type information for dependencies may be missing or incomplete,
// unless NeedDeps and NeedImports are also set.
Types *types.Package
// IllTyped indicates whether the package or any dependency contains errors.
// It is set only when Types is set.
IllTyped bool
// contains filtered or unexported fields
}
PkgRef type is a subset of golang.org/x/tools/go/packages.Package
func (*PkgRef) EnsureImported ¶ added in v0.8.71
func (p *PkgRef) EnsureImported()
EnsureImported ensures this package is imported.
func (*PkgRef) MarkForceUsed ¶ added in v1.1.1
func (p *PkgRef) MarkForceUsed()
MarkForceUsed marks this package is force-used.
type TemplateFunc ¶ added in v0.3.0
TemplateFunc: template function
func NewTemplateFunc ¶ added in v0.3.0
func NewTemplateFunc(pos token.Pos, pkg *types.Package, name string, tsig *TemplateSignature) *TemplateFunc
NewTemplateFunc creates a template function.
func (*TemplateFunc) Type ¶ added in v0.3.0
func (p *TemplateFunc) Type() types.Type
NewTemplateFunc return the type of specified template function.
type TemplateParamType ¶ added in v0.3.0
type TemplateParamType struct {
// contains filtered or unexported fields
}
func NewTemplateParamType ¶ added in v0.3.0
func NewTemplateParamType(idx int, name string, contract Contract) *TemplateParamType
func (*TemplateParamType) String ¶ added in v0.3.0
func (p *TemplateParamType) String() string
func (*TemplateParamType) Underlying ¶ added in v0.3.0
func (p *TemplateParamType) Underlying() types.Type
type TemplateSignature ¶ added in v0.3.0
type TemplateSignature struct {
// contains filtered or unexported fields
}
TemplateSignature: type of template function
func NewTemplateSignature ¶ added in v0.3.0
func NewTemplateSignature( templateParams []*TemplateParamType, recv *types.Var, params, results *types.Tuple, variadic bool, tok ...token.Token) *TemplateSignature
NewTemplateSignature creates type of a template function.
func (*TemplateSignature) String ¶ added in v0.3.0
func (p *TemplateSignature) String() string
func (*TemplateSignature) Underlying ¶ added in v0.3.0
func (p *TemplateSignature) Underlying() types.Type
type Tuple ¶ added in v0.2.0
A Tuple represents an ordered list of variables; a nil *Tuple is a valid (empty) tuple. Tuples are used as components of signatures and to represent the type of multiple assignments; they are not first class types of Go.
type TypeDecl ¶ added in v0.8.27
type TypeDecl struct {
// contains filtered or unexported fields
}
TypeDecl type
type TypeType ¶ added in v0.7.6
type TypeType struct {
// contains filtered or unexported fields
}
func NewTypeType ¶ added in v0.7.6
func (*TypeType) Underlying ¶ added in v0.7.6
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
go/format
Package format implements standard formatting of Go source.
|
Package format implements standard formatting of Go source. |
|
go/printer
Package printer implements printing of AST nodes.
|
Package printer implements printing of AST nodes. |
|
tutorial
|
|
|
01-Basic
command
|