Fix implementations: TokenStream interface says getText method returns non-null

This commit is contained in:
Sam Harwell 2012-10-28 10:04:34 -05:00
parent bd0868c305
commit 950f588ac0
3 changed files with 22 additions and 4 deletions

View File

@ -30,6 +30,7 @@
package org.antlr.v4.runtime;
import org.antlr.v4.runtime.misc.Interval;
import org.antlr.v4.runtime.misc.NotNull;
import java.util.ArrayList;
import java.util.HashSet;
@ -342,12 +343,15 @@ public class BufferedTokenStream<T extends Token> implements TokenStream {
public String getSourceName() { return tokenSource.getSourceName(); }
/** Get the text of all tokens in this buffer. */
@NotNull
@Override
public String getText() {
if ( p == -1 ) setup();
fill();
return getText(Interval.of(0,size()-1));
}
@NotNull
@Override
public String getText(Interval interval) {
int start = interval.a;
@ -365,15 +369,20 @@ public class BufferedTokenStream<T extends Token> implements TokenStream {
return buf.toString();
}
@NotNull
@Override
public String getText(RuleContext ctx) { return getText(ctx.getSourceInterval()); }
public String getText(RuleContext ctx) {
return getText(ctx.getSourceInterval());
}
@NotNull
@Override
public String getText(Token start, Token stop) {
if ( start!=null && stop!=null ) {
return getText(Interval.of(start.getTokenIndex(), stop.getTokenIndex()));
}
return null;
return "";
}
/** Get all tokens from lexer until EOF */

View File

@ -138,16 +138,19 @@ public class UnbufferedTokenStream<T extends Token> implements TokenStream {
return tokenSource;
}
@NotNull
@Override
public String getText() {
return null;
return "";
}
@NotNull
@Override
public String getText(RuleContext ctx) {
return getText(ctx.getSourceInterval());
}
@NotNull
@Override
public String getText(Token start, Token stop) {
return getText(Interval.of(start.getTokenIndex(), stop.getTokenIndex()));
@ -302,6 +305,7 @@ public class UnbufferedTokenStream<T extends Token> implements TokenStream {
return tokenSource.getSourceName();
}
@NotNull
@Override
public String getText(Interval interval) {
int bufferStartIndex = getBufferStartIndex();

View File

@ -55,6 +55,7 @@ import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.IntegerList;
import org.antlr.v4.runtime.misc.Interval;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.misc.Nullable;
import org.antlr.v4.semantics.SemanticPipeline;
import org.antlr.v4.tool.ANTLRMessage;
@ -1154,24 +1155,28 @@ public abstract class BaseTest {
return null;
}
@NotNull
@Override
public String getText() {
throw new UnsupportedOperationException("can't give strings");
}
@NotNull
@Override
public String getText(Interval interval) {
throw new UnsupportedOperationException("can't give strings");
}
@NotNull
@Override
public String getText(RuleContext ctx) {
throw new UnsupportedOperationException("can't give strings");
}
@NotNull
@Override
public String getText(Token start, Token stop) {
return null;
throw new UnsupportedOperationException("can't give strings");
}
}