Documentation ¶
Index ¶
- Variables
- func ExtractFieldPath(n FieldNode) []string
- type Associativity
- type Context
- type EmptiableObject
- type EmptyObjectNode
- type EqualOperand
- type EvaluateVisitor
- func (v EvaluateVisitor) CurrentValue() []any
- func (v EvaluateVisitor) Result() (bool, error)
- func (v *EvaluateVisitor) SetCurrentValue(val []any)
- func (v *EvaluateVisitor) VisitField(n FieldNode) error
- func (v *EvaluateVisitor) VisitInfix(n InfixNode) error
- func (v *EvaluateVisitor) VisitObject(_ ObjectNode) error
- func (v *EvaluateVisitor) VisitPrefix(n PrefixNode) error
- func (v *EvaluateVisitor) VisitValue(n ValueNode) error
- type FieldNode
- type GreaterThanEqualOperand
- type GreaterThanOperand
- type InfixNode
- func And(left Visitable, rights ...Visitable) InfixNode
- func Equal(left, right Visitable) InfixNode
- func GreaterThan(left, right Visitable) InfixNode
- func GreaterThanEqual(left, right Visitable) InfixNode
- func NewInfixNode(left Visitable, operator Operator, right Visitable, ...) InfixNode
- func NotEqual(left, right Visitable) InfixNode
- type LessThanEqualOperand
- type LessThanOperand
- type ObjectNode
- type Operable
- type Operator
- type PrefixNode
- type ValueNode
- type Visitable
- type Visitor
Constants ¶
This section is empty.
Variables ¶
View Source
var YieldBooleanOperators = []Operator{ OperatorEq, OperatorGt, OperatorLt, OperatorGte, OperatorLte, OperatorNe, OperatorAnd, OperatorOr, OperatorNot, }
Functions ¶
func ExtractFieldPath ¶
Types ¶
type Associativity ¶
type Associativity string
const ( LeftAssociative Associativity = "LEFT" RightAssociative Associativity = "RIGHT" NonAssociative Associativity = "NON" )
type EmptiableObject ¶
type EmptiableObject interface { Visitable Parent() EmptiableObject Name() string IsEmpty() bool }
type EmptyObjectNode ¶
type EmptyObjectNode struct{}
func EmptyObject ¶
func EmptyObject() EmptyObjectNode
func (EmptyObjectNode) Accept ¶
func (n EmptyObjectNode) Accept(_ Visitor) error
func (EmptyObjectNode) IsEmpty ¶
func (n EmptyObjectNode) IsEmpty() bool
func (EmptyObjectNode) Name ¶
func (n EmptyObjectNode) Name() string
func (EmptyObjectNode) Parent ¶
func (n EmptyObjectNode) Parent() EmptiableObject
type EqualOperand ¶
type EqualOperand interface {
Equal(EqualOperand) bool
}
type EvaluateVisitor ¶
type EvaluateVisitor struct { Context // contains filtered or unexported fields }
func NewEvaluateVisitor ¶
func NewEvaluateVisitor(context Context) *EvaluateVisitor
func (EvaluateVisitor) CurrentValue ¶
func (v EvaluateVisitor) CurrentValue() []any
func (EvaluateVisitor) Result ¶
func (v EvaluateVisitor) Result() (bool, error)
func (*EvaluateVisitor) SetCurrentValue ¶
func (v *EvaluateVisitor) SetCurrentValue(val []any)
func (*EvaluateVisitor) VisitField ¶
func (v *EvaluateVisitor) VisitField(n FieldNode) error
func (*EvaluateVisitor) VisitInfix ¶
func (v *EvaluateVisitor) VisitInfix(n InfixNode) error
func (*EvaluateVisitor) VisitObject ¶
func (v *EvaluateVisitor) VisitObject(_ ObjectNode) error
func (*EvaluateVisitor) VisitPrefix ¶
func (v *EvaluateVisitor) VisitPrefix(n PrefixNode) error
func (*EvaluateVisitor) VisitValue ¶
func (v *EvaluateVisitor) VisitValue(n ValueNode) error
type FieldNode ¶
type FieldNode struct {
// contains filtered or unexported fields
}
func Field ¶
func Field(object ObjectNode, name string) FieldNode
func (FieldNode) Object ¶
func (n FieldNode) Object() ObjectNode
type GreaterThanEqualOperand ¶
type GreaterThanEqualOperand interface {
GreaterThanEqual(GreaterThanEqualOperand) bool
}
type GreaterThanOperand ¶
type GreaterThanOperand interface {
GreaterThan(GreaterThanOperand) bool
}
type InfixNode ¶
type InfixNode struct {
// contains filtered or unexported fields
}
func GreaterThan ¶
func GreaterThanEqual ¶
func NewInfixNode ¶
func NewInfixNode(left Visitable, operator Operator, right Visitable, associativity Associativity) InfixNode
func (InfixNode) Associativity ¶
func (n InfixNode) Associativity() Associativity
type LessThanEqualOperand ¶
type LessThanEqualOperand interface {
LessThanEqual(LessThanEqualOperand) bool
}
type LessThanOperand ¶
type LessThanOperand interface {
LessThan(LessThanOperand) bool
}
type ObjectNode ¶
type ObjectNode struct {
// contains filtered or unexported fields
}
func Object ¶
func Object(parent EmptiableObject, name string) ObjectNode
func (ObjectNode) Accept ¶
func (n ObjectNode) Accept(v Visitor) error
func (ObjectNode) IsEmpty ¶
func (n ObjectNode) IsEmpty() bool
func (ObjectNode) Name ¶
func (n ObjectNode) Name() string
func (ObjectNode) Parent ¶
func (n ObjectNode) Parent() EmptiableObject
type Operable ¶
type Operable interface { Associativity() Associativity Operator() Operator }
type Operator ¶
type Operator string
const ( OperatorEq Operator = "=" OperatorGt Operator = ">" OperatorLt Operator = "<" OperatorGte Operator = ">=" OperatorLte Operator = "<=" OperatorNe Operator = "!=" OperatorAnd Operator = "AND" OperatorOr Operator = "OR" OperatorNot Operator = "NOT" OperatorPos Operator = "+" OperatorNeg Operator = "-" )
type PrefixNode ¶
type PrefixNode struct {
// contains filtered or unexported fields
}
func NewPrefixNode ¶
func NewPrefixNode(operator Operator, operand Visitable, associativity Associativity) PrefixNode
func Not ¶
func Not(operand Visitable) PrefixNode
func (PrefixNode) Accept ¶
func (n PrefixNode) Accept(v Visitor) error
func (PrefixNode) Associativity ¶
func (n PrefixNode) Associativity() Associativity
func (PrefixNode) Operand ¶
func (n PrefixNode) Operand() Visitable
func (PrefixNode) Operator ¶
func (n PrefixNode) Operator() Operator
Click to show internal directories.
Click to hide internal directories.