This class performs lexical
analysis of a specified input stream and breaks the input into
tokens. It can be extremely useful when writing simple parsers.
nextToken(
) returns the next token in the stream; this is either one
of the constants defined by the class (which represent end-of-file,
end-of-line, a parsed floating-point number, and a parsed word) or a
character value. pushBack( ) pushes the token back
onto the stream, so that it is returned by the next call to
nextToken( ). The public variables
sval and nval contain the
string and numeric values (if applicable) of the most recently read
token. They are applicable when the returned token is
TT_WORD or TT_NUMBER.
lineno( ) returns the current line number.
The remaining methods allow you to specify how tokens are recognized.
wordChars(
) specifies a range of
characters that should be
treated as parts of words. whitespaceChars(
) specifies a range of characters that serve to delimit
tokens. ordinaryChars(
)
and ordinaryChar(
) specify characters that are never part of tokens and
should be returned as-is. resetSyntax(
) makes all characters
ordinary. eolIsSignificant(
) specifies whether end-of-line is significant.
If so, the TT_EOL constant is returned for
end-of-lines; otherwise, they are treated as whitespace.
commentChar( ) specifies a character that begins a
comment that lasts until the end of the
line. No characters in the comment are returned.
slashStarComments(
) and
slashSlashComments(
) specify whether the
StreamTokenizer should recognize C- and C++-style
comments.
If
so, no part of the comment is returned as a token.
quoteChar( ) specifies a character used to
delimit strings. When a string token is parsed, the quote character
is returned as the token value, and the body of the string is stored
in the sval variable. lowerCaseMode(
)
specifies whether TT_WORD tokens should be
converted to all lowercase characters before being stored in
sval. parseNumbers(
)
specifies that the
StreamTokenizer should recognize and return
double-precision floating-point number tokens.
public class StreamTokenizer {
// Public Constructors
# public StreamTokenizer(InputStream is);
1.1 public StreamTokenizer(Reader r);
// Public Constants
public static final int TT_EOF; =-1
public static final int TT_EOL; =10
public static final int TT_NUMBER; =-2
public static final int TT_WORD; =-3
// Public Instance Methods
public void commentChar(int ch);
public void eolIsSignificant(boolean flag);
public int lineno( );
public void lowerCaseMode(boolean fl);
public int nextToken( ) throws IOException;
public void ordinaryChar(int ch);
public void ordinaryChars(int low, int hi);
public void parseNumbers( );
public void pushBack( );
public void quoteChar(int ch);
public void resetSyntax( );
public void slashSlashComments(boolean flag);
public void slashStarComments(boolean flag);
public void whitespaceChars(int low, int hi);
public void wordChars(int low, int hi);
// Public Methods Overriding Object
public String toString( );
// Public Instance Fields
public double nval;
public String sval;
public int ttype;
}