X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fedu%2Fberkeley%2Fsbp%2Fchr%2FCharInput.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2Fchr%2FCharInput.java;h=1178e42e2ee2accefc190681f7ac92d1a1c19264;hb=c7af09d552a9cf2d53a72baa975c9a73384813ea;hp=0000000000000000000000000000000000000000;hpb=a7b84506c2e1ed63343db215f76afced082e2826;p=sbp.git diff --git a/src/edu/berkeley/sbp/chr/CharInput.java b/src/edu/berkeley/sbp/chr/CharInput.java new file mode 100644 index 0000000..1178e42 --- /dev/null +++ b/src/edu/berkeley/sbp/chr/CharInput.java @@ -0,0 +1,30 @@ +package edu.berkeley.sbp.chr; +import java.io.*; +import java.util.*; +import java.lang.reflect.*; +import java.lang.ref.*; +import edu.berkeley.sbp.*; +import edu.berkeley.sbp.util.*; +import edu.berkeley.sbp.misc.*; +import edu.berkeley.sbp.Input.Location; + +public class CharInput extends CartesianInput { + private final Reader r; + + public CharInput(String s) { this(new StringReader(s)); } + public CharInput(Reader r) { this(r, null); } + public CharInput(Reader r, String s) { this.r = r; } + public CharInput(InputStream i) { this(i, null); } + public CharInput(InputStream i, String s) { this(new InputStreamReader(i), s); } + + boolean cr = false; + public boolean isCR() { return cr; } + public Character next() throws IOException { + cr = false; + int i = r.read(); + if (i==-1) return null; + char c = (char)i; + cr = c=='\n'; + return c; + } +}