engines

package
v6.3.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2020 License: Apache-2.0 Imports: 9 Imported by: 0

README

表达式执行引擎包

引擎必须实现AST包 github.com/zhuxiujia/GoMybatis/ast 下 ast.ExpressionEngine

type ExpressionEngine interface {
	//引擎名称
	Name() string
	//编译一个表达式
	//参数:lexerArg 表达式内容
	//返回:interface{} 编译结果,error 错误
	Lexer(lexerArg string) (interface{}, error)

	//执行一个表达式
	//参数:lexerResult=编译结果,arg=参数
	//返回:执行结果,错误
	Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)

    
	LexerAndEval(lexerArg string,arg interface{})  (interface{}, error)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ExpressionEngineExpr

type ExpressionEngineExpr struct {
}

func (*ExpressionEngineExpr) Eval

func (it *ExpressionEngineExpr) Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)

执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误

func (*ExpressionEngineExpr) Lexer

func (it *ExpressionEngineExpr) Lexer(expression string) (interface{}, error)

编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误

func (*ExpressionEngineExpr) LexerAndEval

func (it *ExpressionEngineExpr) LexerAndEval(lexerArg string, arg interface{}) (interface{}, error)

func (*ExpressionEngineExpr) Name

func (it *ExpressionEngineExpr) Name() string

引擎名称

type ExpressionEngineGoExpress

type ExpressionEngineGoExpress struct {
}

func (*ExpressionEngineGoExpress) Eval

func (it *ExpressionEngineGoExpress) Eval(lexerResult interface{}, arg interface{}, operation int) (interface{}, error)

执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误

func (*ExpressionEngineGoExpress) Lexer

func (it *ExpressionEngineGoExpress) Lexer(expression string) (interface{}, error)

编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误

func (*ExpressionEngineGoExpress) LexerAndEval

func (it *ExpressionEngineGoExpress) LexerAndEval(lexerArg string, arg interface{}) (interface{}, error)

func (*ExpressionEngineGoExpress) Name

func (it *ExpressionEngineGoExpress) Name() string

引擎名称

type ExpressionEngineGovaluate

type ExpressionEngineGovaluate struct {
}

func (*ExpressionEngineGovaluate) Eval

func (it *ExpressionEngineGovaluate) Eval(compileResult interface{}, arg interface{}, operation int) (interface{}, error)

执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误

func (*ExpressionEngineGovaluate) Lexer

func (it *ExpressionEngineGovaluate) Lexer(expression string) (interface{}, error)

编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误

func (*ExpressionEngineGovaluate) LexerAndEval

func (it *ExpressionEngineGovaluate) LexerAndEval(lexerArg string, arg interface{}) (interface{}, error)

func (*ExpressionEngineGovaluate) Name

func (it *ExpressionEngineGovaluate) Name() string

type ExpressionEngineJee

type ExpressionEngineJee struct {
}

ExpressionEngineJee 是一个基于json表达式操作的第三方库实现

func (*ExpressionEngineJee) Eval

func (it *ExpressionEngineJee) Eval(compileResult interface{}, arg interface{}, operation int) (interface{}, error)

执行一个表达式 参数:lexerResult=编译结果,arg=参数 返回:执行结果,错误

func (*ExpressionEngineJee) Lexer

func (it *ExpressionEngineJee) Lexer(lexerArg string) (interface{}, error)

编译一个表达式 参数:lexerArg 表达式内容 返回:interface{} 编译结果,error 错误

func (*ExpressionEngineJee) LexerAndEval

func (it *ExpressionEngineJee) LexerAndEval(lexerArg string, arg interface{}) (interface{}, error)

func (*ExpressionEngineJee) LexerAndOrSupport

func (it *ExpressionEngineJee) LexerAndOrSupport(lexerArg string) string

添加and 和 or 语法支持

func (*ExpressionEngineJee) LexerEval

func (it *ExpressionEngineJee) LexerEval(lexerArg string, arg interface{}, operation int) (interface{}, error)

编译后立即执行

func (*ExpressionEngineJee) Name

func (it *ExpressionEngineJee) Name() string

type ExpressionOperation

type ExpressionOperation = int
const (
	JeeOperation_Marshal_Map ExpressionOperation = iota //序列化和反序列化为json
	JeeOperation_Unmarshal_Byte
)

Jump to

Keyboard shortcuts

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