summaryrefslogtreecommitdiff
path: root/JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java')
-rw-r--r--JPratt/src/main/java/bjc/pratt/tokens/SimpleTokenStream.java82
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();
- }
-}