syntax

package
v1.0.26 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

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 AfterFilesParsed(fileList []*syntax.File, addFile func(name string, r io.Reader) *syntax.File)

func ClearDecls

func ClearDecls()

func ClearFiles

func ClearFiles()

func ClearSyntaxDeclMapping

func ClearSyntaxDeclMapping()

func GetFiles

func GetFiles() []*syntax.File

not used anywhere

func GetSyntaxDeclMapping

func GetSyntaxDeclMapping() map[string]map[LineCol]*DeclInfo

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 ConstInfo added in v1.0.19

type ConstInfo struct {
	Type string
}

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 GetDecls

func GetDecls() []*DeclInfo

func (*DeclInfo) GenericName

func (c *DeclInfo) GenericName() string

func (*DeclInfo) IdentityName

func (c *DeclInfo) IdentityName() string

func (*DeclInfo) RefName

func (c *DeclInfo) RefName() string

type DeclKind added in v1.0.19

type DeclKind int
const (
	Kind_Func   DeclKind = 0
	Kind_Var    DeclKind = 1
	Kind_VarPtr DeclKind = 2
	Kind_Const  DeclKind = 3
)

func (DeclKind) IsFunc added in v1.0.19

func (c DeclKind) IsFunc() bool

func (DeclKind) IsVarOrConst added in v1.0.19

func (c DeclKind) IsVarOrConst() bool

type FileDecl

type FileDecl struct {
	File  *syntax.File
	Funcs []*DeclInfo
}

type ISetPos

type ISetPos interface {
	SetPos(p syntax.Pos)
}

type LineCol

type LineCol struct {
	Line uint
	Col  uint
}

type NameAndDecl added in v1.0.19

type NameAndDecl struct {
	TakeAddr bool
	Name     *syntax.Name
	Decl     *DeclInfo
}

type StructDef

type StructDef struct {
	Field string
	Type  string
}

Jump to

Keyboard shortcuts

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