semantic

package
v1.8.21 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsCompactTestFunction added in v1.8.10

func IsCompactTestFunction(symbol *CompactSymbol) bool

IsCompactTestFunction reports a YSI test entry point.

func IsTestFunction added in v1.8.10

func IsTestFunction(symbol *Symbol) bool

IsTestFunction reports a YSI test entry point.

Types

type CompactModel

type CompactModel struct {
	File    *parser.CompactFile
	Walk    *walk.CompactModel
	Root    *CompactScope
	Symbols []*CompactSymbol
	// contains filtered or unexported fields
}

func BuildCompact

func BuildCompact(file *parser.CompactFile, tree *walk.CompactModel) *CompactModel

func (*CompactModel) Boolean

func (m *CompactModel) Boolean(node syntax.NodeID) bool

func (*CompactModel) BooleanLiteral

func (m *CompactModel) BooleanLiteral(node syntax.NodeID) (bool, bool)

func (*CompactModel) ConstantValue

func (m *CompactModel) ConstantValue(symbol *CompactSymbol) (int64, bool)

func (*CompactModel) Equivalent

func (m *CompactModel) Equivalent(left, right syntax.NodeID) bool

func (*CompactModel) EquivalentSyntax

func (m *CompactModel) EquivalentSyntax(left, right syntax.NodeID) bool

func (*CompactModel) Eval

func (m *CompactModel) Eval(node syntax.NodeID) (int64, bool)

func (*CompactModel) EvalWithResolver

func (m *CompactModel) EvalWithResolver(node syntax.NodeID, resolver func(syntax.NodeID) (int64, bool)) (int64, bool)

func (*CompactModel) EvalWithValues

func (m *CompactModel) EvalWithValues(node syntax.NodeID, values map[*CompactSymbol]int64) (int64, bool)

func (*CompactModel) ExpressionTag

func (m *CompactModel) ExpressionTag(node syntax.NodeID) (string, bool)

func (*CompactModel) ExpressionTags

func (m *CompactModel) ExpressionTags(node syntax.NodeID) []string

func (*CompactModel) ParameterSymbols added in v1.7.21

func (m *CompactModel) ParameterSymbols(function syntax.NodeID) []*CompactSymbol

func (*CompactModel) Pure

func (m *CompactModel) Pure(node syntax.NodeID) bool

func (*CompactModel) References

func (m *CompactModel) References(symbol *CompactSymbol) []CompactReference

func (*CompactModel) Resolve

func (m *CompactModel) Resolve(node syntax.NodeID) *CompactSymbol

func (*CompactModel) ResolveAsCallTarget

func (m *CompactModel) ResolveAsCallTarget(node syntax.NodeID) *CompactSymbol

func (*CompactModel) Shadowed

func (m *CompactModel) Shadowed(symbol *CompactSymbol) *CompactSymbol

func (*CompactModel) UnresolvedReferences

func (m *CompactModel) UnresolvedReferences() []CompactUnresolvedReference

type CompactReference

type CompactReference struct {
	Node syntax.NodeID
	Kind ReferenceKind
}

type CompactScope

type CompactScope struct {
	Parent *CompactScope
	Node   syntax.NodeID
	// contains filtered or unexported fields
}

type CompactSymbol

type CompactSymbol struct {
	Name      string
	Kind      SymbolKind
	Decl      syntax.NodeID
	NameNode  syntax.NodeID
	Scope     *CompactScope
	Ambiguous bool
	Function  syntax.NodeID
	Tag       string
	Tags      []string
	States    []string
	StateRaw  bool
	Constant  bool
	Value     syntax.NodeID
	// contains filtered or unexported fields
}

type CompactUnresolvedReference

type CompactUnresolvedReference struct {
	Node   syntax.NodeID
	Kind   ReferenceKind
	Target ReferenceTarget
}

type Model

type Model struct {
	File    *parser.File
	Walk    *walk.Model
	Root    *Scope
	Symbols []*Symbol
	// contains filtered or unexported fields
}

func Build

func Build(file *parser.File, tree *walk.Model) *Model

func (*Model) Boolean

func (m *Model) Boolean(node *parser.Node) bool

func (*Model) BooleanLiteral

func (m *Model) BooleanLiteral(node *parser.Node) (bool, bool)

func (*Model) ConstantValue

func (m *Model) ConstantValue(symbol *Symbol) (int64, bool)

func (*Model) Equivalent

func (m *Model) Equivalent(left, right *parser.Node) bool

func (*Model) EquivalentSyntax

func (m *Model) EquivalentSyntax(left, right *parser.Node) bool

func (*Model) Eval

func (m *Model) Eval(node *parser.Node) (int64, bool)

func (*Model) EvalWithResolver

func (m *Model) EvalWithResolver(node *parser.Node, resolver func(*parser.Node) (int64, bool)) (int64, bool)

func (*Model) EvalWithValues

func (m *Model) EvalWithValues(node *parser.Node, values map[*Symbol]int64) (int64, bool)

func (*Model) ExpressionTag

func (m *Model) ExpressionTag(node *parser.Node) (string, bool)

func (*Model) ExpressionTags

func (m *Model) ExpressionTags(node *parser.Node) []string

func (*Model) ParameterSymbols added in v1.7.21

func (m *Model) ParameterSymbols(function *parser.Node) []*Symbol

func (*Model) Pure

func (m *Model) Pure(node *parser.Node) bool

func (*Model) References

func (m *Model) References(symbol *Symbol) []Reference

func (*Model) Resolve

func (m *Model) Resolve(node *parser.Node) *Symbol

func (*Model) ResolveAsCallTarget

func (m *Model) ResolveAsCallTarget(node *parser.Node) *Symbol

func (*Model) Shadowed

func (m *Model) Shadowed(symbol *Symbol) *Symbol

func (*Model) UnresolvedReferences

func (m *Model) UnresolvedReferences() []UnresolvedReference

type Reference

type Reference struct {
	Node *parser.Node
	Kind ReferenceKind
}

type ReferenceKind

type ReferenceKind uint8
const (
	ReferenceRead ReferenceKind = iota
	ReferenceWrite
	ReferenceReadWrite
	ReferenceCall
)

type ReferenceTarget

type ReferenceTarget uint8
const (
	ReferenceValue ReferenceTarget = iota
	ReferenceFunction
)

type Scope

type Scope struct {
	Parent *Scope
	Node   *parser.Node
	// contains filtered or unexported fields
}

type Symbol

type Symbol struct {
	Name      string
	Kind      SymbolKind
	Decl      *parser.Node
	NameNode  *parser.Node
	Scope     *Scope
	Ambiguous bool
	Function  *parser.Node
	Tag       string
	Tags      []string
	States    []string
	StateRaw  bool
	Constant  bool
	Value     *parser.Node
}

type SymbolKind

type SymbolKind uint8
const (
	SymbolFunction SymbolKind = iota
	SymbolGlobal
	SymbolLocal
	SymbolParameter
	SymbolEnumRoot
	SymbolEnumEntry
	SymbolLabel
)

type UnresolvedReference

type UnresolvedReference struct {
	Node   *parser.Node
	Kind   ReferenceKind
	Target ReferenceTarget
}

Jump to

Keyboard shortcuts

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