moved a subset of source file to the kern package
This commit is contained in:
+10
-6
@@ -4,7 +4,11 @@
|
||||
// operator-unset.go
|
||||
package expr
|
||||
|
||||
import "strings"
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"git.portale-stac.it/go-pkg/expr/kern"
|
||||
)
|
||||
|
||||
//-------- unset term
|
||||
|
||||
@@ -18,7 +22,7 @@ func newUnsetTerm(tk *Token) (inst *term) {
|
||||
}
|
||||
}
|
||||
|
||||
func deleteContextItem(ctx ExprContext, opTerm *term, item any) (deleted bool, err error) {
|
||||
func deleteContextItem(ctx kern.ExprContext, opTerm *term, item any) (deleted bool, err error) {
|
||||
if name, ok := item.(string); ok {
|
||||
var size int
|
||||
if strings.HasSuffix(name, "()") {
|
||||
@@ -31,12 +35,12 @@ func deleteContextItem(ctx ExprContext, opTerm *term, item any) (deleted bool, e
|
||||
deleted = ctx.VarCount() < size
|
||||
}
|
||||
} else {
|
||||
err = opTerm.errIncompatibleType(item)
|
||||
err = opTerm.errIncompatiblePrefixPostfixType(item)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func evalUnset(ctx ExprContext, opTerm *term) (v any, err error) {
|
||||
func evalUnset(ctx kern.ExprContext, opTerm *term) (v any, err error) {
|
||||
var childValue any
|
||||
var deleted bool
|
||||
|
||||
@@ -45,8 +49,8 @@ func evalUnset(ctx ExprContext, opTerm *term) (v any, err error) {
|
||||
}
|
||||
|
||||
count := 0
|
||||
if IsList(childValue) {
|
||||
list, _ := childValue.(*ListType)
|
||||
if kern.IsList(childValue) {
|
||||
list, _ := childValue.(*kern.ListType)
|
||||
for _, item := range *list {
|
||||
if deleted, err = deleteContextItem(ctx, opTerm, item); err != nil {
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user