syntax

package
v0.0.0-...-b54817c Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetElementTypeString

func GetElementTypeString(elmt Element) string

GetElementTypeString returns element type string

func IsNode

func IsNode(elmt Element) bool

IsNode returns true if element is syntax node

func IsToken

func IsToken(elmt Element) bool

IsToken returns true if element is syntax token

func Print

func Print(elmt Element)

Print prints elmt to std output

func PrintTo

func PrintTo(w io.Writer, elmt Element)

PrintTo prints elmt to the given writer

Types

type BadExpr

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

BadExpr node

func (BadExpr) GetAstNode

func (n BadExpr) GetAstNode() ast.Node

func (BadExpr) GetElementType

func (n BadExpr) GetElementType() ElementType

func (BadExpr) GetElements

func (n BadExpr) GetElements() []Element

func (BadExpr) GetParent

func (n BadExpr) GetParent() Node

type BasicLit

type BasicLit struct {
	ValueToken Token
	// contains filtered or unexported fields
}

BasicLit node

func (BasicLit) GetAstNode

func (n BasicLit) GetAstNode() ast.Node

func (BasicLit) GetElementType

func (n BasicLit) GetElementType() ElementType

func (BasicLit) GetElements

func (n BasicLit) GetElements() []Element

func (BasicLit) GetParent

func (n BasicLit) GetParent() Node

type BlockStmt

type BlockStmt struct {
	LbraceToken Token
	List        []Stmt
	RbraceToken Token
	// contains filtered or unexported fields
}

BlockStmt node

func (BlockStmt) GetAstNode

func (n BlockStmt) GetAstNode() ast.Node

func (BlockStmt) GetElementType

func (n BlockStmt) GetElementType() ElementType

func (BlockStmt) GetElements

func (n BlockStmt) GetElements() []Element

func (BlockStmt) GetParent

func (n BlockStmt) GetParent() Node

type Comment

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

Comment node

func (Comment) GetAstNode

func (n Comment) GetAstNode() ast.Node

func (Comment) GetElementType

func (n Comment) GetElementType() ElementType

func (Comment) GetElements

func (n Comment) GetElements() []Element

func (Comment) GetParent

func (n Comment) GetParent() Node

type CommentGroup

type CommentGroup struct {
	List []*Comment
	// contains filtered or unexported fields
}

CommentGroup node

func (CommentGroup) GetAstNode

func (n CommentGroup) GetAstNode() ast.Node

func (CommentGroup) GetElementType

func (n CommentGroup) GetElementType() ElementType

func (CommentGroup) GetElements

func (n CommentGroup) GetElements() []Element

func (CommentGroup) GetParent

func (n CommentGroup) GetParent() Node

type Decl

type Decl interface {
	Node
	// contains filtered or unexported methods
}

Decl node

type Element

type Element interface {
	GetParent() Node
	GetElementType() ElementType
}

Element represents node or token

type ElementType

type ElementType int

ElementType denotes element type

const (
	ElementTypeToken ElementType = iota
	ElementTypeNode
)

Syntax element types

type Ellipsis

type Ellipsis struct {
	EllipsisToken Token
	Elt           Expr
	// contains filtered or unexported fields
}

Ellipsis node

func (Ellipsis) GetAstNode

func (n Ellipsis) GetAstNode() ast.Node

func (Ellipsis) GetElementType

func (n Ellipsis) GetElementType() ElementType

func (Ellipsis) GetElements

func (n Ellipsis) GetElements() []Element

func (Ellipsis) GetParent

func (n Ellipsis) GetParent() Node

type Expr

type Expr interface {
	Node
	// contains filtered or unexported methods
}

Expr node

type Field

type Field struct {
	Doc     *CommentGroup
	Names   []*Ident
	Type    Expr
	Tag     *BasicLit
	Comment *CommentGroup
	// contains filtered or unexported fields
}

Field node

func (Field) GetAstNode

func (n Field) GetAstNode() ast.Node

func (Field) GetElementType

func (n Field) GetElementType() ElementType

func (Field) GetElements

func (n Field) GetElements() []Element

func (Field) GetParent

func (n Field) GetParent() Node

type FieldList

type FieldList struct {
	Opening Token
	List    []*Field
	Closing Token
	// contains filtered or unexported fields
}

FieldList node

func (FieldList) GetAstNode

func (n FieldList) GetAstNode() ast.Node

func (FieldList) GetElementType

func (n FieldList) GetElementType() ElementType

func (FieldList) GetElements

func (n FieldList) GetElements() []Element

func (FieldList) GetParent

func (n FieldList) GetParent() Node

type FuncLit

type FuncLit struct {
	Type *FuncType
	Body *BlockStmt
	// contains filtered or unexported fields
}

FuncLit node

func (FuncLit) GetAstNode

func (n FuncLit) GetAstNode() ast.Node

func (FuncLit) GetElementType

func (n FuncLit) GetElementType() ElementType

func (FuncLit) GetElements

func (n FuncLit) GetElements() []Element

func (FuncLit) GetParent

func (n FuncLit) GetParent() Node

type FuncType

type FuncType struct {
	FuncToken Token
	Params    *FieldList
	Results   *FieldList
	// contains filtered or unexported fields
}

FuncType node

func (FuncType) GetAstNode

func (n FuncType) GetAstNode() ast.Node

func (FuncType) GetElementType

func (n FuncType) GetElementType() ElementType

func (FuncType) GetElements

func (n FuncType) GetElements() []Element

func (FuncType) GetParent

func (n FuncType) GetParent() Node

type Ident

type Ident struct {
	NameToken Token
	// contains filtered or unexported fields
}

Ident node

func (Ident) GetAstNode

func (n Ident) GetAstNode() ast.Node

func (Ident) GetElementType

func (n Ident) GetElementType() ElementType

func (Ident) GetElements

func (n Ident) GetElements() []Element

func (Ident) GetParent

func (n Ident) GetParent() Node

type Node

type Node interface {
	Element
	GetAstNode() ast.Node
	GetElements() []Element
}

Node represents syntax node

func FromAstNode

func FromAstNode(node ast.Node) Node

FromAstNode returns node from the given ast.Node

func NewElementFromAst

func NewElementFromAst(node ast.Node) Node

NewElementFromAst create new syntax node element

type ReturnStmt

type ReturnStmt struct {
	ReturnToken Token
	Results     []Expr
	// contains filtered or unexported fields
}

ReturnStmt node

func (ReturnStmt) GetAstNode

func (n ReturnStmt) GetAstNode() ast.Node

func (ReturnStmt) GetElementType

func (n ReturnStmt) GetElementType() ElementType

func (ReturnStmt) GetElements

func (n ReturnStmt) GetElements() []Element

func (ReturnStmt) GetParent

func (n ReturnStmt) GetParent() Node

type Stmt

type Stmt interface {
	Node
	// contains filtered or unexported methods
}

Stmt node

type Token

type Token interface {
	Element
	GetText() string
	GetKind() token.Token
}

Token represents token node

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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