getText method
Return the text of all tokens within the specified interval
. This
method behaves like the following code (including potential exceptions
for violating preconditions of {@link #get}, but may be optimized by the
specific implementation.
TokenStream stream = ...; String text = ""; for (int i = interval.a; i <= interval.b; i++) { text += stream.get(i).getText(); }
TokenStream stream = ...; String text = stream.getText(new Interval(0, stream.length));
TokenStream stream = ...; String text = stream.getText(ctx.getSourceInterval());
@param interval The interval of tokens within this stream to get text for. @return The text of all tokens / within the specified interval in this stream.
Implementation
@override
String getText([Interval? interval]) {
interval = interval ??
Interval.of(0, size - 1); // Get the text of all tokens in this buffer.
final start = interval.a;
var stop = interval.b;
if (start < 0 || stop < 0) return '';
fill();
if (stop >= tokens.length) stop = tokens.length - 1;
final buf = StringBuffer();
for (var i = start; i <= stop; i++) {
final t = tokens[i];
if (t.type == Token.EOF) break;
buf.write(t.text);
}
return buf.toString();
}