Expressions now support function definition
This commit is contained in:
+3
-2
@@ -14,7 +14,7 @@ func EvalString(ctx exprContext, source string) (result any, err error) {
|
||||
parser := NewParser(ctx)
|
||||
|
||||
if tree, err = parser.parse(scanner); err == nil {
|
||||
result, err = tree.Eval(ctx)
|
||||
result, err = tree.Eval(ctx, true)
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -33,7 +33,8 @@ func EvalStringV(source string, args []EvalArg) (result any, err error) {
|
||||
for _, arg := range args {
|
||||
if isFunc(arg.value) {
|
||||
if f, ok := arg.value.(FuncTemplate); ok {
|
||||
ctx.RegisterFunc(arg.name, f, 0, -1)
|
||||
functor := &simpleFunctor{f: f}
|
||||
ctx.RegisterFunc(arg.name, functor, 0, -1)
|
||||
} else {
|
||||
err = fmt.Errorf("invalid function specification: %q", arg.name)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user