Versions in this module Expand all Collapse all v0 v0.1.0 Oct 24, 2017 Changes in this version + func Evaluate(expression string, parameter interface{}, opts ...Language) (interface{}, error) + type Evaluable func(c context.Context, parameter interface{}) (interface{}, error) + func (e Evaluable) EvalBool(c context.Context, parameter interface{}) (bool, error) + func (e Evaluable) EvalFloat64(c context.Context, parameter interface{}) (float64, error) + func (e Evaluable) EvalInt(c context.Context, parameter interface{}) (int, error) + func (e Evaluable) EvalString(c context.Context, parameter interface{}) (string, error) + func (e Evaluable) IsConst() bool + type Language struct + func Arithmetic() Language + func Base() Language + func Bitmask() Language + func Constant(name string, value interface{}) Language + func Full(extensions ...Language) Language + func Function(name string, function interface{}) Language + func InfixBoolOperator(name string, f func(a, b bool) (interface{}, error)) Language + func InfixEvalOperator(name string, f func(a, b Evaluable) (Evaluable, error)) Language + func InfixNumberOperator(name string, f func(a, b float64) (interface{}, error)) Language + func InfixOperator(name string, f func(a, b interface{}) (interface{}, error)) Language + func InfixShortCircuit(name string, f func(a interface{}) (interface{}, bool)) Language + func InfixTextOperator(name string, f func(a, b string) (interface{}, error)) Language + func JSON() Language + func NewLanguage(bases ...Language) Language + func PostfixOperator(name string, ext func(context.Context, *Parser, Evaluable) (Evaluable, error)) Language + func Precedence(name string, operatorPrecendence uint8) Language + func PrefixExtension(r rune, ext func(context.Context, *Parser) (Evaluable, error)) Language + func PrefixMetaPrefix(r rune, ...) Language + func PrefixOperator(name string, e Evaluable) Language + func PropositionalLogic() Language + func Text() Language + func (l Language) Evaluate(expression string, parameter interface{}) (interface{}, error) + func (l Language) NewEvaluable(expression string) (Evaluable, error) + type Parser struct + func (*Parser) Const(value interface{}) Evaluable + func (*Parser) Var(path ...Evaluable) Evaluable + func (p *Parser) Camouflage(unit string, expected ...rune) + func (p *Parser) Expected(unit string, expected ...rune) error + func (p *Parser) Next() rune + func (p *Parser) ParseExpression(c context.Context) (eval Evaluable, err error) + func (p *Parser) ParseNextExpression(c context.Context) (eval Evaluable, err error) + func (p *Parser) Peek() rune + func (p *Parser) Scan() rune + func (p *Parser) TokenText() string