diff --git a/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/LexerInputCharStream.java b/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/LexerInputCharStream.java index 2f782bb27554..3a2f672262ea 100644 --- a/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/LexerInputCharStream.java +++ b/ide/lexer.antlr4/src/org/netbeans/spi/lexer/antlr4/LexerInputCharStream.java @@ -45,14 +45,14 @@ public String getText(Interval intrvl) { } int start = intrvl.a - tokenMark; int end = intrvl.b - tokenMark + 1; - int toread = end - start - input.readLength(); - for (int i = 0; i < toread; i++) { - input.read(); - } - String ret = String.valueOf(input.readText(start, end)); - if (toread > 0) { - input.backup(toread); + int readCount = 0; + int next = 0; + while ((end > input.readLength()) && (next != EOF)) { + next = input.read(); + readCount++; } + String ret = String.valueOf(input.readText(start, Math.min(end, input.readLength()))); + input.backup(readCount); return ret; }