diff options
| author | Benjamin Culkin <scorpress@gmail.com> | 2024-06-03 17:33:53 -0400 |
|---|---|---|
| committer | Benjamin Culkin <scorpress@gmail.com> | 2024-06-03 17:33:53 -0400 |
| commit | 15a2b29e48f134bc93cfd0a3d8512001e9242f3d (patch) | |
| tree | b3f5c4c5f0e474479cd47ad0ac0f35770fc44881 /JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java | |
| parent | 39ba97edf49270715ec61bedb7d4a62ada819ba0 (diff) | |
Rename the package to the new domain
Diffstat (limited to 'JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java')
| -rw-r--r-- | JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java b/JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java deleted file mode 100644 index fba38bb..0000000 --- a/JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java +++ /dev/null @@ -1,82 +0,0 @@ -package bjc.pratt.tokens; - -import java.util.Iterator; - -import bjc.data.MarkListIterator; - -/** - * Simple token stream implementation - * @author bjcul - * - * @param <K> The key type - * @param <V> The value type - */ -public class SimpleTokenStream<K, V> extends TokenStream<K, V> { - private final MarkListIterator<Token<K, V>> iter; - - private Token<K, V> curr; - - private Token<K, V> terminal; - /** - * Create a new token stream from a iterator. - * - * @param itr The iterator to use. - * @param terminal The terminal token to use for end-of-stream - * - */ - public SimpleTokenStream(final Iterator<Token<K, V>> itr, Token<K, V> terminal) { - this.iter = new MarkListIterator<>(itr); - this.terminal = terminal; - } - - @Override - public Token<K, V> current() { - // Prime stream if necessary - if (curr == null) - return next(); - return curr; - } - - @Override - public Token<K, V> next() { - if (iter.hasNext()) { - curr = iter.next(); - } else { - curr = terminal; - } - - return curr; - } - - @Override - public boolean hasNext() { - return iter.hasNext(); - } - - @Override - public void mark() { - iter.mark(); - } - - @Override - public void commit() { - iter.commit(); - - if (!iter.hasMark()) { - // No marks outstanding; we can release the previous state - iter.reset(); - } - } - - @Override - public void rollback() { - iter.rollback(); - - curr = iter.current(); - } - - @Override - public boolean hasMark() { - return iter.hasMark(); - } -} |
