Gets the name of the underlying symbol source. This method returns a
non-null, non-empty string. If such a name is not known, this method
returns {@link #UNKNOWN_SOURCE_NAME}.
This method returns the text for a range of characters within this input
stream. This method is guaranteed to not throw an exception if the
specified interval lies entirely within a marked range. For more
information about marked ranges, see {@link IntStream#mark}.
Gets the value of the symbol at offset i from the current
position. When {@code i==1}, this method returns the value of the current
symbol in the stream (which is the next symbol to be consumed). When
{@code i==-1}, this method returns the value of the previously read
symbol in the stream. It is not valid to call this method with
{@code i==0}, but the specific behavior is unspecified because this
method is frequently called from performance-critical code.
This method releases a marked range created by a call to
{@link #mark mark()}. Calls to {@code release()} must appear in the
reverse order of the corresponding calls to {@code mark()}. If a mark is
released twice, or if marks are not released in reverse order of the
corresponding calls to {@code mark()}, the behavior is unspecified.