package org.shedlang.compiler.tokeniser; import java.util.List; public class InfinitelyPaddedIterator { private final List elements; private final T end; private int index = 0; public InfinitelyPaddedIterator(List elements, T end) { this.elements = elements; this.end = end; } public T get() { return get(0); } public T get(int offset) { var index = this.index + offset; if (index < elements.size()) { return elements.get(index); } else { return end; } } public void moveNext() { index++; } public boolean isAtStart() { return this.index == 0; } }