expression

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AritOpAdd  = "+"
	AritOpSub  = "-"
	AritOpMult = "*"
	AritOpDiv  = "/"
)
View Source
const (
	BarOpen  = 1
	BarHigh  = 2
	BarLow   = 3
	BarClose = 4
)
View Source
const (
	RelOpEqual          = "="
	RelOpNotEqual       = "<>"
	RelOpLessThan       = "<"
	RelOpGreaterThan    = ">"
	RelOpLessOrEqual    = "<="
	RelOpGreaterOrEqual = ">="
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AndExpression

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

func NewAndExpression

func NewAndExpression(expressions []Expression, info *parser.Info) *AndExpression

func (*AndExpression) Info

func (e *AndExpression) Info() *parser.Info

func (*AndExpression) ResolveType

func (e *AndExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

type ArithmeticExpression

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

func NewArithmeticExpression

func NewArithmeticExpression(operand string, left, right Expression, info *parser.Info) *ArithmeticExpression

func (*ArithmeticExpression) Info

func (e *ArithmeticExpression) Info() *parser.Info

func (*ArithmeticExpression) ResolveType

func (e *ArithmeticExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

type BarAccessExpression

type BarAccessExpression struct {
	Bar      int
	Accessor Expression
	// contains filtered or unexported fields
}

func NewBarAccessExpression

func NewBarAccessExpression(bar int, accessor Expression, info *parser.Info) *BarAccessExpression

func (*BarAccessExpression) Info

func (e *BarAccessExpression) Info() *parser.Info

func (*BarAccessExpression) ResolveType

func (e *BarAccessExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

type ChainItem

type ChainItem struct {
	Name     string
	Accessor Expression
	Params   []Expression
}

func NewChainItem

func NewChainItem(name string, accessor Expression, params []Expression) *ChainItem

type ChainedExpression

type ChainedExpression struct {
	HasThis    bool
	HasNew     bool
	Chain      []*ChainItem
	FQClass    *data.FQIdentifier
	InstParams []Expression
	// contains filtered or unexported fields
}

func NewChainedExpression

func NewChainedExpression(hasThis bool, hasNew bool, info *parser.Info) *ChainedExpression

func (*ChainedExpression) AddItem

func (e *ChainedExpression) AddItem(item *ChainItem)

func (*ChainedExpression) Info

func (e *ChainedExpression) Info() *parser.Info

func (*ChainedExpression) ResolveType

func (e *ChainedExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

type ConstantValueExpression

type ConstantValueExpression struct {
	Value values.Value
	// contains filtered or unexported fields
}

func NewConstantValueExpression

func NewConstantValueExpression(value values.Value, info *parser.Info) *ConstantValueExpression

func (*ConstantValueExpression) Info

func (e *ConstantValueExpression) Info() *parser.Info

func (*ConstantValueExpression) ResolveType

func (e *ConstantValueExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

type Expression

type Expression interface {
	ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)
	Info() *parser.Info
}

func ConvertExpression

func ConvertExpression(tree parser.IExpressionContext) Expression

type ListExpression

type ListExpression struct {
	Values []Expression
	// contains filtered or unexported fields
}

func NewListExpression

func NewListExpression(info *parser.Info) *ListExpression

func (*ListExpression) AddExpression

func (e *ListExpression) AddExpression(exp Expression)

func (*ListExpression) Info

func (e *ListExpression) Info() *parser.Info

func (*ListExpression) ResolveType

func (e *ListExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

type MapExpression

type MapExpression struct {
	Values map[values.Value]Expression
	// contains filtered or unexported fields
}

func NewMapExpression

func NewMapExpression(info *parser.Info) *MapExpression

func (*MapExpression) Info

func (e *MapExpression) Info() *parser.Info

func (*MapExpression) ResolveType

func (e *MapExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

func (*MapExpression) Set

func (e *MapExpression) Set(key values.Value, value Expression)

type NotExpression

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

func NewNotExpression

func NewNotExpression(e Expression, info *parser.Info) *NotExpression

func (*NotExpression) Info

func (e *NotExpression) Info() *parser.Info

func (*NotExpression) ResolveType

func (e *NotExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

type OrExpression

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

func NewOrExpression

func NewOrExpression(expressions []Expression, info *parser.Info) *OrExpression

func (*OrExpression) Info

func (e *OrExpression) Info() *parser.Info

func (*OrExpression) ResolveType

func (e *OrExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

type RelationalExpression

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

func NewRelationalExpression

func NewRelationalExpression(operand string, left, right Expression, info *parser.Info) *RelationalExpression

func (*RelationalExpression) Info

func (e *RelationalExpression) Info() *parser.Info

func (*RelationalExpression) ResolveType

func (e *RelationalExpression) ResolveType(scope interfaces.Scope, embedder interfaces.Symbol, depth int) (types.Type, error)

Jump to

Keyboard shortcuts

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