diff options
Diffstat (limited to 'tnslc/utils')
-rw-r--r-- | tnslc/utils/iterator.tnsl | 28 | ||||
-rw-r--r-- | tnslc/utils/utils.tnsl | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/tnslc/utils/iterator.tnsl b/tnslc/utils/iterator.tnsl new file mode 100644 index 0000000..b38d71f --- /dev/null +++ b/tnslc/utils/iterator.tnsl @@ -0,0 +1,28 @@ +struct Iterator { + ~Vector v, + int pos +} + +/; method Iterator + /; init(~Vector v) + self.v = v + self.pos = 0 + ;/ + + /; get [~void] + return self.v`.get(self.pos) + ;/ + + /; next + /; if (self.pos + 1 < self.v`.count) + self.pos++ + ;/ + ;/ + + /; prev + /; if (self.pos > 0) + self.pos-- + ;/ + ;/ +;/ + diff --git a/tnslc/utils/utils.tnsl b/tnslc/utils/utils.tnsl index aa7968a..fece1da 100644 --- a/tnslc/utils/utils.tnsl +++ b/tnslc/utils/utils.tnsl @@ -3,4 +3,5 @@ :import "vector.tnsl" :import "file.tnsl" :import "algo.tnsl" + :import "iterator.tnsl" ;/ |