os file builtins refactored with the package 'file'
This commit is contained in:
+21
-15
@@ -255,18 +255,25 @@ func setFunc(ctx kern.ExprContext, name string, args map[string]any) (result any
|
||||
return
|
||||
}
|
||||
|
||||
// func unsetFunc(ctx kern.ExprContext, name string, args map[string]any) (result any, err error) {
|
||||
// var varName string
|
||||
// var ok bool
|
||||
func charFunc(ctx kern.ExprContext, name string, args map[string]any) (result any, err error) {
|
||||
var ord int
|
||||
|
||||
// if varName, ok = args[kern.ParamName].(string); !ok {
|
||||
// return nil, kern.ErrWrongParamType(name, kern.ParamName, kern.TypeString, args[kern.ParamName])
|
||||
// } else {
|
||||
// ctx.GetParent().DeleteVar(varName)
|
||||
// result = nil
|
||||
// }
|
||||
// return
|
||||
// }
|
||||
if n, ok := args[kern.ParamValue].(byte); ok {
|
||||
ord = int(n)
|
||||
} else if n, ok := args[kern.ParamValue].(int64); ok {
|
||||
ord = int(n)
|
||||
} else if n, ok := args[kern.ParamValue].(int); ok {
|
||||
ord = n
|
||||
} else {
|
||||
return nil, kern.ErrWrongParamType(name, kern.ParamName, kern.TypeString, args[kern.ParamName])
|
||||
}
|
||||
if ord < 0 || ord > 255 {
|
||||
err = kern.ErrFuncInvalidArg(name, fmt.Sprintf("character code must be in range 0-255, got %d", ord))
|
||||
} else {
|
||||
result = string(rune(ord))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
//// import
|
||||
|
||||
@@ -308,10 +315,9 @@ func ImportBuiltinsFuncs(ctx kern.ExprContext) {
|
||||
kern.NewFuncParam(kern.ParamValue),
|
||||
})
|
||||
|
||||
// ctx.RegisterFunc("unset", kern.NewGolangFunctor(unsetFunc), kern.TypeAny, []kern.ExprFuncParam{
|
||||
// kern.NewFuncParam(kern.ParamName),
|
||||
// kern.NewFuncParam(kern.ParamValue),
|
||||
// })
|
||||
ctx.RegisterFunc("char", kern.NewGolangFunctor(charFunc), kern.TypeString, []kern.ExprFuncParam{
|
||||
kern.NewFuncParam(kern.ParamValue),
|
||||
})
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
||||
Reference in New Issue
Block a user