moved a subset of source file to the kern package

This commit is contained in:
2026-04-27 19:43:37 +02:00
parent f100adead3
commit 4d910dd069
107 changed files with 2080 additions and 1380 deletions
+13 -9
View File
@@ -4,6 +4,10 @@
// operator-insert.go
package expr
import (
"git.portale-stac.it/go-pkg/expr/kern"
)
//-------- prepend term
func newPrependTerm(tk *Token) (inst *term) {
@@ -26,19 +30,19 @@ func newAppendTerm(tk *Token) (inst *term) {
}
}
func evalPrepend(ctx ExprContext, opTerm *term) (v any, err error) {
func evalPrepend(ctx kern.ExprContext, opTerm *term) (v any, err error) {
var leftValue, rightValue any
if leftValue, rightValue, err = opTerm.evalInfix(ctx); err != nil {
return
}
if IsList(rightValue) {
list, _ := rightValue.(*ListType)
newList := append(ListType{leftValue}, *list...)
if kern.IsList(rightValue) {
list, _ := rightValue.(*kern.ListType)
newList := append(kern.ListType{leftValue}, *list...)
v = &newList
if opTerm.children[1].symbol() == SymVariable {
ctx.UnsafeSetVar(opTerm.children[1].source(), v)
ctx.UnsafeSetVar(opTerm.children[1].Source(), v)
}
} else {
err = opTerm.errIncompatibleTypes(leftValue, rightValue)
@@ -46,19 +50,19 @@ func evalPrepend(ctx ExprContext, opTerm *term) (v any, err error) {
return
}
func evalAppend(ctx ExprContext, opTerm *term) (v any, err error) {
func evalAppend(ctx kern.ExprContext, opTerm *term) (v any, err error) {
var leftValue, rightValue any
if leftValue, rightValue, err = opTerm.evalInfix(ctx); err != nil {
return
}
if IsList(leftValue) {
list, _ := leftValue.(*ListType)
if kern.IsList(leftValue) {
list, _ := leftValue.(*kern.ListType)
newList := append(*list, rightValue)
v = &newList
if opTerm.children[0].symbol() == SymVariable {
ctx.UnsafeSetVar(opTerm.children[0].source(), v)
ctx.UnsafeSetVar(opTerm.children[0].Source(), v)
}
} else {
err = opTerm.errIncompatibleTypes(leftValue, rightValue)