From 03f8d3772fcdcd84ef8b8edd4a8e3cdc1e0c03df Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Tue, 26 Feb 2013 11:02:55 -0600 Subject: [PATCH] Fix comparison with IntStream.EOF --- .../Java/src/org/antlr/v4/runtime/UnbufferedCharStream.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/Java/src/org/antlr/v4/runtime/UnbufferedCharStream.java b/runtime/Java/src/org/antlr/v4/runtime/UnbufferedCharStream.java index 3d233b1af..5eee309c2 100644 --- a/runtime/Java/src/org/antlr/v4/runtime/UnbufferedCharStream.java +++ b/runtime/Java/src/org/antlr/v4/runtime/UnbufferedCharStream.java @@ -169,7 +169,7 @@ public class UnbufferedCharStream implements CharStream { */ protected int fill(int n) { for (int i=0; i 0 && data[this.n - 1] == IntStream.EOF) { + if (this.n > 0 && data[this.n - 1] == (char)IntStream.EOF) { return i; } @@ -206,7 +206,7 @@ public class UnbufferedCharStream implements CharStream { sync(i); int index = p + i - 1; if ( index < 0 ) throw new IndexOutOfBoundsException(); - if ( index > n ) return IntStream.EOF; + if ( index >= n ) return IntStream.EOF; char c = data[index]; if ( c==(char)IntStream.EOF ) return IntStream.EOF; return c; @@ -315,7 +315,7 @@ public class UnbufferedCharStream implements CharStream { if (interval.a < bufferStartIndex || interval.b >= bufferStartIndex + n) { throw new UnsupportedOperationException("interval "+interval+" outside buffer: "+ - bufferStartIndex+".."+(bufferStartIndex+n)); + bufferStartIndex+".."+(bufferStartIndex+n-1)); } // convert from absolute to local index int i = interval.a - bufferStartIndex;