traversal

package
v3.0.0 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Walk

func Walk(doc *ast.Document, visitor Visitor) error

func WalkContext

func WalkContext(doc *ast.Document, visitor ContextVisitor, scratch *ContextScratch) error

func WalkContextFunc

func WalkContextFunc(doc *ast.Document, visitor ContextVisitorFunc, scratch *ContextScratch) error

func WalkContextKind

func WalkContextKind(doc *ast.Document, visitor ContextKindVisitor, scratch *ContextScratch) error

func WalkContextKindFunc

func WalkContextKindFunc(doc *ast.Document, visitor ContextKindVisitorFunc, scratch *ContextScratch) error

func WalkCursor

func WalkCursor(doc *ast.Document, visitor CursorVisitor) error

func WalkCursorFunc

func WalkCursorFunc(doc *ast.Document, visitor CursorVisitorFunc) error

func WalkIDs

func WalkIDs(doc *ast.Document, visitor IDVisitor) error

Types

type Context

type Context struct {
	Parent     ast.NodeID
	Ancestors  []ast.NodeID
	Definition ast.NodeID
	Operation  ast.NodeID
	Path       []string
}

type ContextKindVisitor

type ContextKindVisitor interface {
	EnterContextKind(*ContextView, ast.NodeID, ast.Kind) Decision
}

type ContextKindVisitorFunc

type ContextKindVisitorFunc func(*ContextView, ast.NodeID, ast.Kind) Decision

func (ContextKindVisitorFunc) EnterContextKind

func (f ContextKindVisitorFunc) EnterContextKind(ctx *ContextView, id ast.NodeID, kind ast.Kind) Decision

type ContextScratch

type ContextScratch struct {
	Ancestors []ast.NodeID
	Path      []string
	// contains filtered or unexported fields
}

type ContextView

type ContextView struct {
	Parent     ast.NodeID
	Definition ast.NodeID
	Operation  ast.NodeID
	// contains filtered or unexported fields
}

func (*ContextView) Ancestors

func (c *ContextView) Ancestors() []ast.NodeID

func (*ContextView) Path

func (c *ContextView) Path() []string

type ContextVisitor

type ContextVisitor interface {
	EnterContext(*ContextView, ast.NodeID) Decision
}

type ContextVisitorFunc

type ContextVisitorFunc func(*ContextView, ast.NodeID) Decision

func (ContextVisitorFunc) EnterContext

func (f ContextVisitorFunc) EnterContext(ctx *ContextView, id ast.NodeID) Decision

type Cursor

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

func (Cursor) Definition

func (c Cursor) Definition() ast.NodeID

func (Cursor) Depth

func (c Cursor) Depth() int

func (Cursor) Node

func (c Cursor) Node() ast.NodeID

func (Cursor) Operation

func (c Cursor) Operation() ast.NodeID

func (Cursor) Parent

func (c Cursor) Parent() ast.NodeID

func (Cursor) Path

func (c Cursor) Path(dst []ast.NodeID) []ast.NodeID

type CursorVisitor

type CursorVisitor interface {
	EnterCursor(Cursor) Decision
}

type CursorVisitorFunc

type CursorVisitorFunc func(Cursor) Decision

func (CursorVisitorFunc) EnterCursor

func (f CursorVisitorFunc) EnterCursor(cursor Cursor) Decision

type Decision

type Decision uint8
const (
	Continue Decision = iota
	SkipChildren
	Stop
)

type IDVisitor

type IDVisitor interface {
	EnterID(ast.NodeID) Decision
}

type IDVisitorFunc

type IDVisitorFunc func(ast.NodeID) Decision

func (IDVisitorFunc) EnterID

func (f IDVisitorFunc) EnterID(id ast.NodeID) Decision

type Visitor

type Visitor interface {
	Enter(Context, ast.NodeID) Decision
}

type VisitorFunc

type VisitorFunc func(Context, ast.NodeID) Decision

func (VisitorFunc) Enter

func (f VisitorFunc) Enter(ctx Context, id ast.NodeID) Decision

Jump to

Keyboard shortcuts

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