From 00f4940ff1c19f3659779b2db078b85f178cb5ab Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Mon, 25 Mar 2024 16:37:07 -0400 Subject: More tests, dec and inc postfix --- tnslc/iterator.tnsl | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tnslc/iterator.tnsl (limited to 'tnslc/iterator.tnsl') diff --git a/tnslc/iterator.tnsl b/tnslc/iterator.tnsl new file mode 100644 index 0000000..19dda8c --- /dev/null +++ b/tnslc/iterator.tnsl @@ -0,0 +1,39 @@ +struct Iterator { + ~void data, + int size, + current, + _elsz +} + +/; method Iterator + + /; init (~void data, int count, int elsz) + self.data = data + self.size = size + self._elsz = elsz + self.current = 0 + ;/ + + /; next (int count) + self.current = self.current + count + /; if (self.current >= self.size) + self.current = self.size + ;/ + ;/ + + /; prev (int count) + self.current = self.current - count + /; if (self.current < 0) + self.current = 0 + ;/ + ;/ + + /; get [~void] + return self.data + current * _elsz + ;/ + + /; end [bool] + return self.current >= self.size + ;/ + +;/ -- cgit v1.2.3