/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.enclojure.ide;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.PushbackReader;
import java.io.Reader;
/**
*
*/
public class CharCountingPushbackReader extends PushbackReader {
protected long counter = 0;
public CharCountingPushbackReader(Reader r){
super(new LineNumberReader(r));
}
public int getLineNumber(){
return ((LineNumberReader) in).getLineNumber() + 1;
}
public int read() throws IOException{
int c = super.read();
if(c!=-1)
++counter;
return c;
}
public void unread(int c) throws IOException{
super.unread(c);
--counter;
}
public long getPosition() { return counter;}
}