operator-dot.go: '*dataCursor' case added; to be enhanced

This commit is contained in:
Celestino Amoroso 2024-04-27 22:34:23 +02:00
parent 81c85afbea
commit 895778f236

View File

@ -56,6 +56,18 @@ func evalDot(ctx ExprContext, self *term) (v any, err error) {
if v, ok = unboxedValue[rightValue]; !ok {
err = fmt.Errorf("key %v does not belong to the dictionary", rightValue)
}
case *dataCursor:
if indexTerm.symbol() == SymString {
opName := indexTerm.value()
if opName == resetName {
err = unboxedValue.Reset()
} else if opName == cleanName {
err = unboxedValue.Clean()
} else {
err = indexTerm.Errorf("iterators do not support command %q", opName)
}
v = err == nil
}
default:
err = self.errIncompatibleTypes(leftValue, rightValue)
}