diff --git a/operator-dot.go b/operator-dot.go index 212e8bb..1b43d6f 100644 --- a/operator-dot.go +++ b/operator-dot.go @@ -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) }