package scanner;

import java.io.IOException;

import error.CriticalLispException;

public interface LispInputStream {

    int read();

    void unreadLastCharacter();

    public static class MaximumUnreadsExceededException extends CriticalLispException {

        private static final long serialVersionUID = 1L;
    }

    public static class UncheckedIOException extends CriticalLispException {

        private static final long serialVersionUID = 1L;
        private IOException ioException;

        public UncheckedIOException(IOException ioException) {
            this.ioException = ioException;
        }

        @Override
        public String getMessage() {
            return ioException.getMessage();
        }
    }

}
