Documentation ¶
Index ¶
- Constants
- func NewBaseEnv(filename string) *baseEnv
- func NewBaseFrame(path string) *baseFrame
- func Visit(frame Frame, order int, callback func(Frame))
- type CaseFrame
- func (frame CaseFrame) Append(inner Frame)
- func (frame CaseFrame) BodyBeginning() int
- func (frame CaseFrame) BodyEnding() int
- func (frame *CaseFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
- func (frame *CaseFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
- func (frame *CaseFrame) GenEnv(genEnv *baseEnv) []byte
- func (frame CaseFrame) GetInner(index int) Frame
- func (frame CaseFrame) HeadBeginning() int
- func (frame CaseFrame) IsReturn() bool
- func (frame CaseFrame) Len() int
- func (frame CaseFrame) Path() string
- func (frame CaseFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
- func (frame CaseFrame) SetReturn(line int)
- func (frame CaseFrame) SetUnreachable()
- func (frame CaseFrame) String() string
- func (frame CaseFrame) Unreachable() bool
- type Context
- func (root *Context) GenerateEnv() []byte
- func (root *Context) GenerateLine(line int, content []byte) []byte
- func (root *Context) GetCurrent() Frame
- func (root *Context) GetIndexName() string
- func (root *Context) GetInnerName(suffix string) string
- func (root *Context) Import(path string)
- func (root *Context) Pop()
- func (root *Context) PostOrderDump()
- func (root *Context) PreOrderDump()
- func (root *Context) PrepareGenerate()
- func (root *Context) Push(frame Frame)
- func (root *Context) Stats() Stats
- type ForFrame
- func (frame ForFrame) Append(inner Frame)
- func (frame ForFrame) BodyBeginning() int
- func (frame ForFrame) BodyEnding() int
- func (frame *ForFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
- func (frame *ForFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
- func (frame *ForFrame) GenEnv(genEnv *baseEnv) []byte
- func (frame ForFrame) GetInner(index int) Frame
- func (frame ForFrame) HeadBeginning() int
- func (frame ForFrame) IsReturn() bool
- func (frame ForFrame) Len() int
- func (frame ForFrame) Path() string
- func (frame ForFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
- func (frame ForFrame) SetReturn(line int)
- func (frame ForFrame) SetUnreachable()
- func (frame ForFrame) String() string
- func (frame ForFrame) Unreachable() bool
- type Frame
- type FuncFrame
- func (frame FuncFrame) Append(inner Frame)
- func (frame FuncFrame) BodyBeginning() int
- func (frame FuncFrame) BodyEnding() int
- func (frame *FuncFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
- func (frame *FuncFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
- func (frame *FuncFrame) GenEnv(genEnv *baseEnv) []byte
- func (frame FuncFrame) GetInner(index int) Frame
- func (frame FuncFrame) HeadBeginning() int
- func (frame FuncFrame) IsReturn() bool
- func (frame FuncFrame) Len() int
- func (frame *FuncFrame) MarkResult()
- func (frame FuncFrame) Path() string
- func (frame FuncFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
- func (frame FuncFrame) SetReturn(line int)
- func (frame FuncFrame) SetUnreachable()
- func (frame *FuncFrame) String() string
- func (frame FuncFrame) Unreachable() bool
- type GoFuncFrame
- func (frame GoFuncFrame) Append(inner Frame)
- func (frame GoFuncFrame) BodyBeginning() int
- func (frame GoFuncFrame) BodyEnding() int
- func (frame *GoFuncFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
- func (frame *GoFuncFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
- func (frame *GoFuncFrame) GenEnv(genEnv *baseEnv) []byte
- func (frame GoFuncFrame) GetInner(index int) Frame
- func (frame GoFuncFrame) HeadBeginning() int
- func (frame GoFuncFrame) IsReturn() bool
- func (frame GoFuncFrame) Len() int
- func (frame GoFuncFrame) Path() string
- func (frame GoFuncFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
- func (frame GoFuncFrame) SetReturn(line int)
- func (frame *GoFuncFrame) SetTarget(target string)
- func (frame GoFuncFrame) SetUnreachable()
- func (frame GoFuncFrame) String() string
- func (frame GoFuncFrame) Unreachable() bool
- type IfElseFrame
- func (frame IfElseFrame) Append(inner Frame)
- func (frame IfElseFrame) BodyBeginning() int
- func (frame IfElseFrame) BodyEnding() int
- func (frame *IfElseFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
- func (frame *IfElseFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
- func (frame *IfElseFrame) GenEnv(genEnv *baseEnv) []byte
- func (frame IfElseFrame) GetInner(index int) Frame
- func (frame IfElseFrame) HeadBeginning() int
- func (frame IfElseFrame) IsReturn() bool
- func (frame IfElseFrame) Len() int
- func (frame IfElseFrame) Path() string
- func (frame IfElseFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
- func (frame IfElseFrame) SetReturn(line int)
- func (frame IfElseFrame) SetUnreachable()
- func (frame IfElseFrame) String() string
- func (frame IfElseFrame) Unreachable() bool
- type PackageFrame
- func (frame PackageFrame) Append(inner Frame)
- func (frame PackageFrame) BodyBeginning() int
- func (frame PackageFrame) BodyEnding() int
- func (frame *PackageFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
- func (frame *PackageFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
- func (frame *PackageFrame) GenEnv(genEnv *baseEnv) []byte
- func (frame PackageFrame) GetInner(index int) Frame
- func (frame PackageFrame) HeadBeginning() int
- func (frame *PackageFrame) Import(path string)
- func (frame PackageFrame) IsReturn() bool
- func (frame PackageFrame) Len() int
- func (frame PackageFrame) Path() string
- func (frame PackageFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
- func (frame PackageFrame) SetReturn(line int)
- func (frame PackageFrame) SetUnreachable()
- func (frame PackageFrame) String() string
- func (frame PackageFrame) Unreachable() bool
- type Stats
Constants ¶
View Source
const ( VisitPreOrder = iota VisitPostOrder = iota )
View Source
const SDKPackage = `_g_sdk "github.com/Unixeno/gootprint/sdk"` // trace sdk used in import statement
View Source
const SDKPackagePrefix = "_g_sdk." // the prefix to access trace sdk package
Variables ¶
This section is empty.
Functions ¶
func NewBaseEnv ¶
func NewBaseEnv(filename string) *baseEnv
func NewBaseFrame ¶
func NewBaseFrame(path string) *baseFrame
Types ¶
type CaseFrame ¶
type CaseFrame struct {
// contains filtered or unexported fields
}
CaseFrame switch, select
func NewCaseFrame ¶
func (CaseFrame) BodyBeginning ¶
func (frame CaseFrame) BodyBeginning() int
func (CaseFrame) BodyEnding ¶
func (frame CaseFrame) BodyEnding() int
func (*CaseFrame) GenBeginning ¶
func (CaseFrame) HeadBeginning ¶
func (frame CaseFrame) HeadBeginning() int
func (CaseFrame) SetPosLine ¶
func (frame CaseFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
func (CaseFrame) SetUnreachable ¶
func (frame CaseFrame) SetUnreachable()
func (CaseFrame) Unreachable ¶
func (frame CaseFrame) Unreachable() bool
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
func NewFrameContext ¶
func (*Context) GenerateEnv ¶
func (*Context) GetCurrent ¶
func (*Context) GetIndexName ¶
func (*Context) GetInnerName ¶
func (*Context) PostOrderDump ¶
func (root *Context) PostOrderDump()
func (*Context) PreOrderDump ¶
func (root *Context) PreOrderDump()
func (*Context) PrepareGenerate ¶
func (root *Context) PrepareGenerate()
type ForFrame ¶
type ForFrame struct {
// contains filtered or unexported fields
}
func NewForFrame ¶
func (ForFrame) BodyBeginning ¶
func (frame ForFrame) BodyBeginning() int
func (ForFrame) BodyEnding ¶
func (frame ForFrame) BodyEnding() int
func (*ForFrame) GenBeginning ¶
func (ForFrame) HeadBeginning ¶
func (frame ForFrame) HeadBeginning() int
func (ForFrame) SetPosLine ¶
func (frame ForFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
func (ForFrame) SetUnreachable ¶
func (frame ForFrame) SetUnreachable()
func (ForFrame) Unreachable ¶
func (frame ForFrame) Unreachable() bool
type Frame ¶
type Frame interface { HeadBeginning() int // line number of the block beginning, BodyBeginning() int // line number of { BodyEnding() int // line number of }, or the return statement SetReturn(line int) // mark the frame has an explicit return SetUnreachable() // set block ending is unreachable Unreachable() bool // whether a frame ending is unreachable Path() string // unique frame path IsReturn() bool // whether this block contains an explicit return statement GetInner(index int) Frame // get inner frame Len() int // amount of inner frames Append(Frame) // append an inner frame SetPosLine(headBegin, bodyBegin, bodyEnd int) // set line number GenBeginning(genEnv *baseEnv, content []byte) []byte // generator function for BodyBeginning GenEnding(genEnv *baseEnv, content []byte) []byte // generator function for BodyEnding GenEnv(genEnv *baseEnv) []byte // generator function for env at end of file fmt.Stringer }
type FuncFrame ¶
type FuncFrame struct {
// contains filtered or unexported fields
}
func NewFuncFrame ¶
func (FuncFrame) BodyBeginning ¶
func (frame FuncFrame) BodyBeginning() int
func (FuncFrame) BodyEnding ¶
func (frame FuncFrame) BodyEnding() int
func (*FuncFrame) GenBeginning ¶
func (FuncFrame) HeadBeginning ¶
func (frame FuncFrame) HeadBeginning() int
func (*FuncFrame) MarkResult ¶
func (frame *FuncFrame) MarkResult()
MarkResult mark a function has result
func (FuncFrame) SetPosLine ¶
func (frame FuncFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
func (FuncFrame) SetUnreachable ¶
func (frame FuncFrame) SetUnreachable()
func (FuncFrame) Unreachable ¶
func (frame FuncFrame) Unreachable() bool
type GoFuncFrame ¶
type GoFuncFrame struct {
// contains filtered or unexported fields
}
func NewGoFuncFrame ¶
func NewGoFuncFrame(path string) *GoFuncFrame
func (GoFuncFrame) BodyBeginning ¶
func (frame GoFuncFrame) BodyBeginning() int
func (GoFuncFrame) BodyEnding ¶
func (frame GoFuncFrame) BodyEnding() int
func (*GoFuncFrame) GenBeginning ¶
func (frame *GoFuncFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
func (*GoFuncFrame) GenEnding ¶
func (frame *GoFuncFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
func (*GoFuncFrame) GenEnv ¶
func (frame *GoFuncFrame) GenEnv(genEnv *baseEnv) []byte
func (GoFuncFrame) HeadBeginning ¶
func (frame GoFuncFrame) HeadBeginning() int
func (GoFuncFrame) SetPosLine ¶
func (frame GoFuncFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
func (*GoFuncFrame) SetTarget ¶
func (frame *GoFuncFrame) SetTarget(target string)
func (GoFuncFrame) SetUnreachable ¶
func (frame GoFuncFrame) SetUnreachable()
func (GoFuncFrame) Unreachable ¶
func (frame GoFuncFrame) Unreachable() bool
type IfElseFrame ¶
type IfElseFrame struct {
// contains filtered or unexported fields
}
func NewIfElseFrame ¶
func NewIfElseFrame(path string) *IfElseFrame
func (IfElseFrame) BodyBeginning ¶
func (frame IfElseFrame) BodyBeginning() int
func (IfElseFrame) BodyEnding ¶
func (frame IfElseFrame) BodyEnding() int
func (*IfElseFrame) GenBeginning ¶
func (frame *IfElseFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
func (*IfElseFrame) GenEnding ¶
func (frame *IfElseFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
func (*IfElseFrame) GenEnv ¶
func (frame *IfElseFrame) GenEnv(genEnv *baseEnv) []byte
func (IfElseFrame) HeadBeginning ¶
func (frame IfElseFrame) HeadBeginning() int
func (IfElseFrame) SetPosLine ¶
func (frame IfElseFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
func (IfElseFrame) SetUnreachable ¶
func (frame IfElseFrame) SetUnreachable()
func (IfElseFrame) Unreachable ¶
func (frame IfElseFrame) Unreachable() bool
type PackageFrame ¶
type PackageFrame struct {
// contains filtered or unexported fields
}
func NewPackageFrame ¶
func NewPackageFrame(filename, packageName string, packageBegin, packageEnd int) *PackageFrame
func (PackageFrame) BodyBeginning ¶
func (frame PackageFrame) BodyBeginning() int
func (PackageFrame) BodyEnding ¶
func (frame PackageFrame) BodyEnding() int
func (*PackageFrame) GenBeginning ¶
func (frame *PackageFrame) GenBeginning(genEnv *baseEnv, content []byte) []byte
func (*PackageFrame) GenEnding ¶
func (frame *PackageFrame) GenEnding(genEnv *baseEnv, content []byte) []byte
func (*PackageFrame) GenEnv ¶
func (frame *PackageFrame) GenEnv(genEnv *baseEnv) []byte
func (PackageFrame) HeadBeginning ¶
func (frame PackageFrame) HeadBeginning() int
func (*PackageFrame) Import ¶
func (frame *PackageFrame) Import(path string)
func (PackageFrame) SetPosLine ¶
func (frame PackageFrame) SetPosLine(headBegin, bodyBegin, bodyEnd int)
func (PackageFrame) SetUnreachable ¶
func (frame PackageFrame) SetUnreachable()
func (PackageFrame) Unreachable ¶
func (frame PackageFrame) Unreachable() bool
Click to show internal directories.
Click to hide internal directories.