Compare commits
No commits in common. "037565c41e174020ccb96d11fd8f7a7c8eb46651" and "d64602cb00fa90888652343c69181879e4eaffff" have entirely different histories.
037565c41e
...
d64602cb00
@ -211,25 +211,6 @@ func evalFunc(ctx ExprContext, name string, args map[string]any) (result any, er
|
||||
return
|
||||
}
|
||||
|
||||
func varFunc(ctx ExprContext, name string, args map[string]any) (result any, err error) {
|
||||
var varName string
|
||||
var ok bool
|
||||
|
||||
if varName, ok = args[ParamName].(string); !ok {
|
||||
return nil, ErrWrongParamType(name, ParamName, TypeString, args[ParamName])
|
||||
}
|
||||
|
||||
if result, ok = args[ParamValue]; ok && result != nil {
|
||||
ctx.GetParent().UnsafeSetVar(varName, result)
|
||||
// } else {
|
||||
// err = ErrWrongParamType(name, ParamSource, TypeString, args[ParamSource])
|
||||
// }
|
||||
} else if result, ok = ctx.GetVar(varName); !ok {
|
||||
err = ErrUnknownVar(name, varName)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//// import
|
||||
|
||||
func ImportBuiltinsFuncs(ctx ExprContext) {
|
||||
@ -259,11 +240,6 @@ func ImportBuiltinsFuncs(ctx ExprContext) {
|
||||
ctx.RegisterFunc("eval", NewGolangFunctor(evalFunc), TypeAny, []ExprFuncParam{
|
||||
NewFuncParam(ParamSource),
|
||||
})
|
||||
|
||||
ctx.RegisterFunc("var", NewGolangFunctor(varFunc), TypeAny, []ExprFuncParam{
|
||||
NewFuncParam(ParamName),
|
||||
NewFuncParamFlagDef(ParamValue, PfDefault, nil),
|
||||
})
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
||||
@ -80,10 +80,6 @@ func ErrUnknownParam(funcName, paramName string) error {
|
||||
return fmt.Errorf("%s(): unknown parameter %q", funcName, paramName)
|
||||
}
|
||||
|
||||
func ErrUnknownVar(funcName, varName string) error {
|
||||
return fmt.Errorf("%s(): unknown variable %q", funcName, varName)
|
||||
}
|
||||
|
||||
// --- Operator errors
|
||||
|
||||
func ErrLeftOperandMustBeVariable(leftTerm, opTerm *term) error {
|
||||
|
||||
@ -24,11 +24,6 @@ func NewSimpleStore() *SimpleStore {
|
||||
return ctx
|
||||
}
|
||||
|
||||
func (ss *SimpleStore) Init() {
|
||||
ss.varStore = make(map[string]any)
|
||||
ss.funcStore = make(map[string]ExprFunc)
|
||||
}
|
||||
|
||||
func filterRefName(name string) bool { return name[0] != '@' }
|
||||
//func filterPrivName(name string) bool { return name[0] != '_' }
|
||||
|
||||
|
||||
@ -68,27 +68,3 @@ func TestFunctionGetFunc(t *testing.T) {
|
||||
t.Errorf(`(func() -> result = %v [%T], want = %v [%T]`, got, got, want, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGoFunction(t *testing.T) {
|
||||
section := "Funcs"
|
||||
inputs := []inputType{
|
||||
/* 1 */ {`myName()`, "Celestino Amoroso", nil},
|
||||
/* 2 */ {`myName("Peppino")`, "Peppino", nil},
|
||||
}
|
||||
|
||||
myName := func(ctx ExprContext, name string, args map[string]any) (result any, err error) {
|
||||
var ok bool
|
||||
if result, ok = args["name"].(string); !ok {
|
||||
err = ErrWrongParamType(name, "name", TypeString, args["name"])
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
ctx := NewSimpleStore()
|
||||
ctx.RegisterFunc("myName", NewGolangFunctor(myName), TypeString, []ExprFuncParam{
|
||||
NewFuncParamFlagDef("name", PfOptional|PfDefault, "Celestino Amoroso"),
|
||||
})
|
||||
|
||||
runCtxTestSuite(t, ctx, section, inputs)
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user