gosyntax

package
v0.1.14 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2024 License: MIT Imports: 10 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExprDeclString

func ExprDeclString(fset *token.FileSet, e ast.Expr) string

ExprDeclString returns declarative string for AST Expr object

func FindClassMethods added in v0.1.11

func FindClassMethods(clzTypeDeclString string, fset *token.FileSet, f *ast.File) map[string]*ReceiverSpec

Find all methods of a "class"

For methods with pointer receivers, prepend "*" to type name when passed in clzTypeDeclString

func ForEachDeclInPackage

func ForEachDeclInPackage(
	p *packages.Package,
	do func(ast.Decl),
)

ForEachDeclInPackage iterates all AST Decl objects in a AST syntactic package

func ForEachFuncDeclInFile

func ForEachFuncDeclInFile(
	file *ast.File,
	do func(*ast.FuncDecl),
)

func ForEachFuncDeclInPackage

func ForEachFuncDeclInPackage(
	p *packages.Package,
	do func(*ast.FuncDecl),
)

ForEachFuncDeclInPackage iterates all AST FuncDecl objects in a AST syntactic package

func ForEachInterfaceDeclInFile

func ForEachInterfaceDeclInFile(file *ast.File,
	do func(name string, methods []*ast.Field),
)

func ForEachInterfaceDeclInPackage

func ForEachInterfaceDeclInPackage(
	p *packages.Package,
	do func(name string, methods []*ast.Field),
)

func FuncDeclString

func FuncDeclString(fset *token.FileSet, fn *ast.FuncDecl) string

func GetFileImportsAsMap added in v0.1.12

func GetFileImportsAsMap(file *ast.File) map[string]string

import name -> path map

func ParamInfoListDeclString

func ParamInfoListDeclString(params []*FieldDeclInfo) string

func ParamInfoListFixup

func ParamInfoListFixup(paramInfos []*FieldDeclInfo)

func ParamInfoListInvokeString added in v0.1.6

func ParamInfoListInvokeString(params []*FieldDeclInfo) string

func ParamInfoListNameExists

func ParamInfoListNameExists(paramInfos []*FieldDeclInfo, name string) bool

func ParamInfoListTypeOnlyDeclString added in v0.1.6

func ParamInfoListTypeOnlyDeclString(paramInfos []*FieldDeclInfo) string

ParamInfoListTypeOnlyDeclString returns declarative string from parameter field declarations, the returned declarative string contains only type declarations

func ParamListDeclString

func ParamListDeclString(fset *token.FileSet, fl *ast.FieldList) string

ParamListDeclString returns declarative string for AST FieldList object

func ReceiverDeclString

func ReceiverDeclString(fset *token.FileSet, fl *ast.FieldList) string

func ReturnDeclString

func ReturnDeclString(fset *token.FileSet, fl *ast.FieldList) string

ReturnDeclString returns declative string for the given AST field list

func ReturnInfoListDeclString added in v0.1.6

func ReturnInfoListDeclString(returns []*FieldDeclInfo) string

ReturnInfoListDeclString returns declative string for the given return info list

Types

type CalleeVisitor added in v0.1.12

type CalleeVisitor struct {
	// contains filtered or unexported fields
}

func NewCalleeVisitor added in v0.1.12

func NewCalleeVisitor(
	imports map[string]string,
	clzMethods map[string]*ReceiverSpec,
	receiver, name string,
) *CalleeVisitor

func (*CalleeVisitor) AppendOtherPackageCallee added in v0.1.12

func (v *CalleeVisitor) AppendOtherPackageCallee(pkgName, calleeName string)

func (*CalleeVisitor) AppendPeerCallee added in v0.1.12

func (v *CalleeVisitor) AppendPeerCallee(calleeName string)

func (*CalleeVisitor) AppendThisPackageCallee added in v0.1.12

func (v *CalleeVisitor) AppendThisPackageCallee(calleeName string)

func (*CalleeVisitor) GetOtherPackageCallees added in v0.1.12

func (v *CalleeVisitor) GetOtherPackageCallees() map[string][]string

func (*CalleeVisitor) GetPeerCallees added in v0.1.12

func (v *CalleeVisitor) GetPeerCallees() []string

func (*CalleeVisitor) GetThisPackageCallees added in v0.1.12

func (v *CalleeVisitor) GetThisPackageCallees() []string

func (*CalleeVisitor) MethodFuncName added in v0.1.12

func (v *CalleeVisitor) MethodFuncName() string

func (*CalleeVisitor) ReceiverName added in v0.1.12

func (v *CalleeVisitor) ReceiverName() string

func (*CalleeVisitor) SanitizeCallees added in v0.1.12

func (v *CalleeVisitor) SanitizeCallees(
	imports map[string]string,
)

func (*CalleeVisitor) Visit added in v0.1.12

func (v *CalleeVisitor) Visit(node ast.Node) ast.Visitor

type FieldDeclInfo

type FieldDeclInfo struct {
	Name     string
	Typ      string
	Variadic bool
}

unify AST field list with simplified struct. Original thought was to give an common interface for syntax-based and type-based implementations

func ParamListDeclInfo

func ParamListDeclInfo(fset *token.FileSet, fl *ast.FieldList) []*FieldDeclInfo

type ImportSpec added in v0.1.12

type ImportSpec struct {
	Name string
	Path string
}

func AppendImportSpec added in v0.1.12

func AppendImportSpec(specs []ImportSpec, name, p string) []ImportSpec

func GetFileImports added in v0.1.12

func GetFileImports(file *ast.File) []ImportSpec

func (*ImportSpec) IsNameDefault added in v0.1.12

func (s *ImportSpec) IsNameDefault() bool

type ReceiverSpec added in v0.1.11

type ReceiverSpec struct {
	Name     string // receiver variable name
	TypeDecl string // receiver type declare string
}

func FuncDeclReceiverSpec added in v0.1.11

func FuncDeclReceiverSpec(fset *token.FileSet, fn *ast.FuncDecl) *ReceiverSpec

Jump to

Keyboard shortcuts

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