compiler

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: May 14, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ListContainsValue

func ListContainsValue(val interface{}, array []interface{}, typ reflect.Type) bool

Types

type ArrayExpr

type ArrayExpr struct {
	Array []Expression
	Type  reflect.Type
}

func (*ArrayExpr) Eval

func (e *ArrayExpr) Eval(vg ValueGetter) (interface{}, error)

func (*ArrayExpr) String

func (e *ArrayExpr) String() string

type BiExpr

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

func (*BiExpr) Eval

func (e *BiExpr) Eval(vg ValueGetter) (interface{}, error)

func (*BiExpr) String

func (e *BiExpr) String() string

type ExprVisitor

type ExprVisitor struct {
	*antlr.BaseParseTreeVisitor
}

func (*ExprVisitor) VisitArray

func (v *ExprVisitor) VisitArray(ctx *ast.ArrayContext) interface{}

func (*ExprVisitor) VisitAtom

func (v *ExprVisitor) VisitAtom(ctx *ast.AtomContext) interface{}

func (*ExprVisitor) VisitBinary

func (v *ExprVisitor) VisitBinary(ctx *ast.BinaryContext) interface{}

func (*ExprVisitor) VisitBinaryExpression

func (v *ExprVisitor) VisitBinaryExpression(ctx *ast.BinaryExpressionContext) interface{}

func (*ExprVisitor) VisitBoolean

func (v *ExprVisitor) VisitBoolean(ctx *ast.BooleanContext) interface{}

func (*ExprVisitor) VisitBooleans

func (v *ExprVisitor) VisitBooleans(ctx *ast.BooleansContext) interface{}

func (*ExprVisitor) VisitCalc

func (v *ExprVisitor) VisitCalc(ctx *ast.CalcContext) interface{}

func (*ExprVisitor) VisitCalcExpression

func (v *ExprVisitor) VisitCalcExpression(ctx *ast.CalcExpressionContext) interface{}

func (*ExprVisitor) VisitComparator

func (v *ExprVisitor) VisitComparator(ctx *ast.ComparatorContext) interface{}

func (*ExprVisitor) VisitComparatorExpression

func (v *ExprVisitor) VisitComparatorExpression(ctx *ast.ComparatorExpressionContext) interface{}

func (*ExprVisitor) VisitFloats

func (v *ExprVisitor) VisitFloats(ctx *ast.FloatsContext) interface{}

func (*ExprVisitor) VisitFuncname

func (v *ExprVisitor) VisitFuncname(ctx *ast.FuncnameContext) interface{}

func (*ExprVisitor) VisitFunction

func (v *ExprVisitor) VisitFunction(ctx *ast.FunctionContext) interface{}

func (*ExprVisitor) VisitInExpression

func (v *ExprVisitor) VisitInExpression(ctx *ast.InExpressionContext) interface{}

func (*ExprVisitor) VisitIntegers

func (v *ExprVisitor) VisitIntegers(ctx *ast.IntegersContext) interface{}

func (*ExprVisitor) VisitIsNotTypeExpression

func (v *ExprVisitor) VisitIsNotTypeExpression(ctx *ast.IsNotTypeExpressionContext) interface{}

func (*ExprVisitor) VisitIsTypeExpression

func (v *ExprVisitor) VisitIsTypeExpression(ctx *ast.IsTypeExpressionContext) interface{}

func (*ExprVisitor) VisitKind

func (v *ExprVisitor) VisitKind(ctx *ast.KindContext) interface{}

func (*ExprVisitor) VisitLiteral

func (v *ExprVisitor) VisitLiteral(ctx *ast.LiteralContext) interface{}

func (*ExprVisitor) VisitMatchExpression

func (v *ExprVisitor) VisitMatchExpression(ctx *ast.MatchExpressionContext) interface{}

func (*ExprVisitor) VisitMultiplying

func (v *ExprVisitor) VisitMultiplying(ctx *ast.MultiplyingContext) interface{}

func (*ExprVisitor) VisitNotExpression

func (v *ExprVisitor) VisitNotExpression(ctx *ast.NotExpressionContext) interface{}

func (*ExprVisitor) VisitNotInExpression

func (v *ExprVisitor) VisitNotInExpression(ctx *ast.NotInExpressionContext) interface{}

func (*ExprVisitor) VisitNumber

func (v *ExprVisitor) VisitNumber(ctx *ast.NumberContext) interface{}

func (*ExprVisitor) VisitParenExpression

func (v *ExprVisitor) VisitParenExpression(ctx *ast.ParenExpressionContext) interface{}

func (*ExprVisitor) VisitParse

func (v *ExprVisitor) VisitParse(ctx *ast.ParseContext) interface{}

func (*ExprVisitor) VisitPlus

func (v *ExprVisitor) VisitPlus(ctx *ast.PlusContext) interface{}

func (*ExprVisitor) VisitPow

func (v *ExprVisitor) VisitPow(ctx *ast.PowContext) interface{}

func (*ExprVisitor) VisitRegex

func (v *ExprVisitor) VisitRegex(ctx *ast.RegexContext) interface{}

func (*ExprVisitor) VisitScientific

func (v *ExprVisitor) VisitScientific(ctx *ast.ScientificContext) interface{}

func (*ExprVisitor) VisitStrings

func (v *ExprVisitor) VisitStrings(ctx *ast.StringsContext) interface{}

func (*ExprVisitor) VisitVariable

func (v *ExprVisitor) VisitVariable(ctx *ast.VariableContext) interface{}

func (*ExprVisitor) VisitVariableExpression

func (v *ExprVisitor) VisitVariableExpression(ctx *ast.VariableExpressionContext) interface{}

type Expression

type Expression interface {
	Eval(vg ValueGetter) (interface{}, error)
	String() string
}

func Compile

func Compile(expr string) (Expression, error)

func NewBiBoolExpr

func NewBiBoolExpr(left, right Expression, op *OP) Expression

func NewBiCalcExpr

func NewBiCalcExpr(left, right Expression, op *OP) Expression

func NewMatchExpr

func NewMatchExpr(left Expression, regex string) (Expression, error)

type InExpr

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

func (*InExpr) Eval

func (e *InExpr) Eval(vg ValueGetter) (interface{}, error)

func (*InExpr) String

func (e *InExpr) String() string

type IsTypeExpr

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

func (*IsTypeExpr) Eval

func (e *IsTypeExpr) Eval(vg ValueGetter) (interface{}, error)

func (*IsTypeExpr) String

func (e *IsTypeExpr) String() string

type MatchExpr

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

func (*MatchExpr) Eval

func (e *MatchExpr) Eval(vg ValueGetter) (interface{}, error)

func (*MatchExpr) String

func (e *MatchExpr) String() string

type NotExpr

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

func (*NotExpr) Eval

func (e *NotExpr) Eval(vg ValueGetter) (interface{}, error)

func (*NotExpr) String

func (e *NotExpr) String() string

type OP

type OP struct {
	Symbol string
	Func   opFunc
}

func NewOP

func NewOP(symbol string, fun opFunc) *OP

func (*OP) Eval

func (op *OP) Eval(left, right interface{}) (interface{}, error)

type ValueExpression

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

func NewValueExpression

func NewValueExpression(value interface{}) *ValueExpression

func (*ValueExpression) Eval

func (e *ValueExpression) Eval(vg ValueGetter) (interface{}, error)

func (*ValueExpression) String

func (e *ValueExpression) String() string

type ValueGetter

type ValueGetter interface {
	Get(name string) interface{}
}

type VariableExpr

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

func (*VariableExpr) Eval

func (e *VariableExpr) Eval(vg ValueGetter) (interface{}, error)

func (*VariableExpr) String

func (e *VariableExpr) String() string

Jump to

Keyboard shortcuts

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