made some interfaces exportable and fixed/enhaaced some selector operator versions
This commit is contained in:
@@ -18,19 +18,19 @@ func newSelectorTerm(tk *Token) (inst *term) {
|
||||
}
|
||||
}
|
||||
|
||||
func isSelectorCase(ctx exprContext, exprValue, caseSel any, caseIndex int) (selectedValue any, err error) {
|
||||
func isSelectorCase(ctx ExprContext, exprValue, caseSel any, caseIndex int) (selectedValue any, err error) {
|
||||
caseData, _ := caseSel.(*selectorCase)
|
||||
if caseData.filterList == nil {
|
||||
selectedValue, err = caseData.caseExpr.Eval(ctx, false)
|
||||
selectedValue, err = caseData.caseExpr.eval(ctx, false)
|
||||
} else {
|
||||
filterList := caseData.filterList.children
|
||||
if len(filterList) == 0 && exprValue == int64(caseIndex) {
|
||||
selectedValue, err = caseData.caseExpr.Eval(ctx, false)
|
||||
selectedValue, err = caseData.caseExpr.eval(ctx, false)
|
||||
} else {
|
||||
var caseValue any
|
||||
for _, caseTerm := range filterList {
|
||||
if caseValue, err = caseTerm.compute(ctx); err != nil || caseValue == exprValue {
|
||||
selectedValue, err = caseData.caseExpr.Eval(ctx, false)
|
||||
selectedValue, err = caseData.caseExpr.eval(ctx, false)
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -39,7 +39,7 @@ func isSelectorCase(ctx exprContext, exprValue, caseSel any, caseIndex int) (sel
|
||||
return
|
||||
}
|
||||
|
||||
func evalSelector(ctx exprContext, self *term) (v any, err error) {
|
||||
func evalSelector(ctx ExprContext, self *term) (v any, err error) {
|
||||
var exprValue any
|
||||
// var caseList []*term
|
||||
|
||||
|
||||
Reference in New Issue
Block a user