diff options
| author | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-02 11:55:17 -0700 |
|---|---|---|
| committer | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-02 11:55:17 -0700 |
| commit | 6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 (patch) | |
| tree | ed97e39ec77c5231ffd2c394493e68d00ddac5a4 /Homework/cs5300/project-one/p1-scanner/scanner/ScanStream.java | |
| download | misc-undergrad-main.tar.gz misc-undergrad-main.zip | |
Diffstat (limited to 'Homework/cs5300/project-one/p1-scanner/scanner/ScanStream.java')
| -rw-r--r-- | Homework/cs5300/project-one/p1-scanner/scanner/ScanStream.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Homework/cs5300/project-one/p1-scanner/scanner/ScanStream.java b/Homework/cs5300/project-one/p1-scanner/scanner/ScanStream.java new file mode 100644 index 0000000..04cff68 --- /dev/null +++ b/Homework/cs5300/project-one/p1-scanner/scanner/ScanStream.java @@ -0,0 +1,36 @@ +/* + * DO NOT MODIFY THIS FILE + */ +package scanner; + +/** + * Abstracts a stream reader that reads one byte at a time with possible + * rollback. + * + * Do not modify this file. + */ +public final class ScanStream { + + final private byte[] data; + private int i; + + public ScanStream(byte[] data) { + this.data = data; + i = 0; + } + + public boolean eof() { + return i >= data.length; + } + + public char next() { + if (eof()) { + throw new RuntimeException("EOF reached"); + } + return (char) data[i++]; + } + + void rollback() { + --i; + } +} |
