Merge branch 'master' into new-conflicting-alts

This commit is contained in:
Terence Parr 2012-10-11 18:52:22 -07:00
commit 6654281aab
2 changed files with 5 additions and 5 deletions

View File

@ -79,9 +79,9 @@ public interface IntStream {
* filtering streams (e.g. {@link CommonTokenStream} which distinguishes
* between "on-channel" and "off-channel" tokens).
*
* @throws IllegalStateException if an attempt is made to consume the the
* end of the stream (i.e. if {@code LA(1)==}{@link #EOF EOF} before calling
* {@code consume}).
* @throws IllegalStateException if an attempt is made to consume past
* end of the stream (i.e. if last char == {@link #EOF EOF} before calling
* {@code consume}). Sometimes need to match EOF during prediction.
*/
void consume();

View File

@ -75,7 +75,7 @@ public class UnbufferedCharStream implements CharStream {
/**
* This is the {@code LA(-1)} character for the current position.
*/
protected int lastChar = -1;
protected int lastChar = -2; // can't be -1 (EOF)
/**
* When {@code numMarkers > 0}, this is the {@code LA(-1)} character for the
@ -129,7 +129,7 @@ public class UnbufferedCharStream implements CharStream {
@Override
public void consume() {
if (LA(1) == CharStream.EOF) {
if ( lastChar == CharStream.EOF ) {
throw new IllegalStateException("cannot consume EOF");
}