Documentation ¶
Index ¶
- Constants
- Variables
- func AfterFilesParsed(fileList []*syntax.File, addFile func(name string, r io.Reader) *syntax.File)
- func ClearDecls()
- func ClearFiles()
- func ClearSyntaxDeclMapping()
- func GetFiles() []*syntax.File
- func GetSyntaxDeclMapping() map[string]map[LineCol]*DeclInfo
- func HasSkipTrap() bool
- type BlockContext
- type ConstInfo
- type DeclInfo
- type DeclKind
- type FileDecl
- type ISetPos
- type LineCol
- type NameAndDecl
- type StructDef
Constants ¶
View Source
const XGO_NUMBER = "XGO_NUMBER"
View Source
const XGO_REVISION = "XGO_REVISION"
View Source
const XGO_TOOLCHAIN_REVISION = "XGO_TOOLCHAIN_REVISION"
View Source
const XGO_TOOLCHAIN_VERSION = "XGO_TOOLCHAIN_VERSION"
View Source
const XGO_TOOLCHAIN_VERSION_NUMBER = "XGO_TOOLCHAIN_VERSION_NUMBER"
View Source
const XGO_VERSION = "XGO_VERSION"
View Source
const XgoLinkGeneratedRegisterFunc = "__xgo_link_generated_register_func"
this link function is considered safe as we do not allow user to define such one,there will no abuse
View Source
const XgoLinkTrapForGenerated = "__xgo_link_trap_for_generated"
View Source
const XgoLocalFuncStub = "__xgo_local_func_stub"
View Source
const XgoLocalPkgName = "__xgo_local_pkg_name"
View Source
const XgoRegisterFuncs = "__xgo_register_funcs"
Variables ¶
View Source
var AbsFilename func(name string) string
View Source
var TrimFilename func(b *syntax.PosBase) string
Functions ¶
func AfterFilesParsed ¶
func ClearDecls ¶
func ClearDecls()
func ClearFiles ¶
func ClearFiles()
func ClearSyntaxDeclMapping ¶
func ClearSyntaxDeclMapping()
func GetSyntaxDeclMapping ¶
func HasSkipTrap ¶
func HasSkipTrap() bool
Types ¶
type BlockContext ¶ added in v1.0.19
type BlockContext struct { Parent *BlockContext Block *syntax.BlockStmt Names map[string]bool // node appears as RHS of var decl ListExprParent map[syntax.Node]*syntax.ListExpr RHSVarDeclParent map[syntax.Node]*syntax.VarDecl OperationParent map[syntax.Node]*syntax.Operation ArgCallExprParent map[syntax.Node]*syntax.CallExpr RHSAssignNoDefParent map[syntax.Node]*syntax.AssignStmt CaseClauseParent map[syntax.Node]*syntax.CaseClause ReturnStmtParent map[syntax.Node]*syntax.ReturnStmt ParenParent map[syntax.Node]*syntax.ParenExpr SelectorParent map[syntax.Node]*syntax.SelectorExpr // const info ConstInfo map[syntax.Node]*ConstInfo // to be inserted ChildrenInsertList [][]syntax.Stmt TrapNames []*NameAndDecl }
a BlockContext provides a point where stmts can be prepended or inserted
func (*BlockContext) Add ¶ added in v1.0.19
func (c *BlockContext) Add(name string)
func (*BlockContext) Has ¶ added in v1.0.19
func (c *BlockContext) Has(name string) bool
func (*BlockContext) PrependStmtBeforeLastChild ¶ added in v1.0.19
func (c *BlockContext) PrependStmtBeforeLastChild(stmt []syntax.Stmt)
type DeclInfo ¶
type DeclInfo struct { FuncDecl *syntax.FuncDecl VarDecl *syntax.VarDecl ConstDecl *syntax.ConstDecl // is this var decl follow a const __xgo_trap_xxx = 1? FollowingTrapConst bool Kind DeclKind Name string RecvTypeName string RecvPtr bool Generic bool Closure bool // this is an interface type declare // only the RecvTypeName is valid Interface bool // arg names RecvName string ArgNames []string ResNames []string FirstArgCtx bool LastResError bool FileSyntax *syntax.File FileIndex int // this is file name after applied -trimpath File string Line int }
func (*DeclInfo) GenericName ¶
func (*DeclInfo) IdentityName ¶
type NameAndDecl ¶ added in v1.0.19
Click to show internal directories.
Click to hide internal directories.