Spec-Zone .ru
спецификации, руководства, описания, API
|
public class StreamTokenizer extends Object
StreamTokenizer
класс берет входной поток и анализирует его в "маркеры", позволяя маркеры быть считанным по одному. Процессом парсинга управляют таблица и много флагов, которые могут быть установлены в различные состояния. Потоковый токенизатор может распознать идентификаторы, числа, заключенные в кавычки строки, и различные стили комментария. Каждое побайтовое чтение от входного потока расценивается как символ в диапазоне '\u0000'
через '\u00FF'
. Символьное значение используется, чтобы искать пять возможных атрибутов символа: пробел, алфавитный, числовой, представляет в виде строки кавычку, и символ комментария. У каждого символа могут быть нуль или больше этих атрибутов.
Кроме того, у экземпляра есть четыре флага. Эти флаги указывают:
Типичное приложение первые конструкции экземпляр этого класса, устанавливает синтаксические таблицы, и затем неоднократно циклы, вызывая nextToken
метод в каждой итерации цикла, пока это не возвращает значение TT_EOF
.
nextToken()
, TT_EOF
Модификатор и Тип | Поле и Описание |
---|---|
double |
nval
Если текущий маркер является числом, это поле содержит значение того числа.
|
Строка |
sval
Если текущий маркер является маркером слова, это поле содержит строку, дающую символы маркера слова.
|
static int |
TT_EOF
Постоянное указание, что конец потока был считан.
|
static int |
TT_EOL
Постоянное указание, что конец строки был считан.
|
static int |
TT_NUMBER
Постоянное указание, что маркер числа был считан.
|
static int |
TT_WORD
Постоянное указание, что маркер слова был считан.
|
int |
ttype
После звонка
nextToken метод, это поле содержит тип маркера только чтение. |
Конструктор и Описание |
---|
StreamTokenizer(InputStream is)
Осуждаемый.
С версии 1.1 JDK привилегированный способ маркировать входной поток состоит в том, чтобы преобразовать это в символьный поток, например:
Reader r = new BufferedReader(new InputStreamReader(is)); StreamTokenizer st = new StreamTokenizer(r); |
StreamTokenizer(Reader r)
Создайте токенизатор, который анализирует данный символьный поток.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
commentChar(int ch)
Определенный, что символьный параметр запускает однострочный комментарий.
|
void |
eolIsSignificant(boolean flag)
Определяет, обрабатываются ли концы строки как маркеры.
|
int |
lineno()
Возвратите текущий номер строки.
|
void |
lowerCaseMode(boolean fl)
Определяет, печатается ли маркер слова автоматически строчными литерами.
|
int |
nextToken()
Анализирует следующий маркер от входного потока этого токенизатора.
|
void |
ordinaryChar(int ch)
Определяет, что символьный параметр "обычен" в этом токенизаторе.
|
void |
ordinaryChars(int low, int hi)
Определяет что все символы c в диапазоне
low <= c <= high "обычны" в этом токенизаторе. |
void |
parseNumbers()
Определяет, что числа должны быть проанализированы этим токенизатором.
|
void |
pushBack()
Вызывает следующий звонок
nextToken метод этого токенизатора, чтобы возвратить текущую стоимость в ttype поле, а не изменить значение в nval или sval поле. |
void |
quoteChar(int ch)
Определяет, что соответствующие пары этого символа разграничивают строковые константы в этом токенизаторе.
|
void |
resetSyntax()
Сбросы синтаксическая таблица этого токенизатора так, чтобы все символы были "обычны". См.
ordinaryChar метод для получения дополнительной информации о символе, являющемся обычным. |
void |
slashSlashComments(boolean flag)
Определяет, распознает ли токенизатор комментарии в стиле С++.
|
void |
slashStarComments(boolean flag)
Определяет, распознает ли токенизатор комментарии C-стиля.
|
Строка |
toString()
Возвращает строковое представление текущего потокового маркера и номера строки, на котором это происходит.
|
void |
whitespaceChars(int low, int hi)
Определяет что все символы c в диапазоне
low <= c <= high пробельные символы. |
void |
wordChars(int low, int hi)
Определяет что все символы c в диапазоне
low <= c <= high составляющие слова. |
public int ttype
nextToken
метод, это поле содержит тип маркера только чтение. Для единственного символьного маркера его значение является единственным символом, преобразованным в целое число. Для заключенного в кавычки строкового маркера его значение является символом кавычки. Иначе, его значение является одним из следующего: TT_WORD
указывает, что маркер является словом. TT_NUMBER
указывает, что маркер является числом. TT_EOL
указывает, что конец строки был считан. У поля может только быть это значение если eolIsSignificant
метод вызвали с параметром true
. TT_EOF
указывает, что конец входного потока был достигнут. Начальное значение этого поля-4.
eolIsSignificant(boolean)
, nextToken()
, quoteChar(int)
, TT_EOF
, TT_EOL
, TT_NUMBER
, TT_WORD
public static final int TT_EOF
public static final int TT_EOL
public static final int TT_NUMBER
public static final int TT_WORD
public String sval
Текущий маркер является словом когда значение ttype
поле TT_WORD
. Текущий маркер является заключенным в кавычки строковым маркером когда значение ttype
поле является символом кавычки.
Начальное значение этого поля является нулем.
quoteChar(int)
, TT_WORD
, ttype
@Deprecated public StreamTokenizer(InputStream is)
Reader r = new BufferedReader(new InputStreamReader(is)); StreamTokenizer st = new StreamTokenizer(r);
'A'
через 'Z'
, 'a'
через 'z'
, и '\u00A0'
через '\u00FF'
как полагают, являются алфавитными. '\u0000'
через '\u0020'
как полагают, пробел. '/'
символ комментария. '\''
и двойная кавычка '"'
строковые символы кавычек. is
- входной поток.BufferedReader
, InputStreamReader
, StreamTokenizer(java.io.Reader)
public StreamTokenizer(Reader r)
r
- объект Читателя обеспечение входного потока.public void resetSyntax()
ordinaryChar
метод для получения дополнительной информации о символе, являющемся обычным.ordinaryChar(int)
public void wordChars(int low, int hi)
low <= c <= high
составляющие слова. Маркер слова состоит из составляющей слова, сопровождаемой нулем или большим количеством составляющих слова или составляющих числа.low
- нижний уровень диапазона.hi
- верхний уровень диапазона.public void whitespaceChars(int low, int hi)
low <= c <= high
пробельные символы. Пробельные символы служат только, чтобы разделить маркеры во входном потоке. Любые другие настройки атрибута для символов в указанном диапазоне очищаются.
low
- нижний уровень диапазона.hi
- верхний уровень диапазона.public void ordinaryChars(int low, int hi)
low <= c <= high
"обычны" в этом токенизаторе. См. ordinaryChar
метод для получения дополнительной информации о символе, являющемся обычным.low
- нижний уровень диапазона.hi
- верхний уровень диапазона.ordinaryChar(int)
public void ordinaryChar(int ch)
ttype
поле к символьному значению. Создание "обычного" символа разделителя строки может вмешаться в возможность a StreamTokenizer
считать строки. lineno
метод больше, возможно, не отражает присутствие таких символов разделителя в его количестве строки.
ch
- символ.ttype
public void commentChar(int ch)
Любые другие настройки атрибута для указанного символа очищаются.
ch
- символ.public void quoteChar(int ch)
Когда nextToken
метод встречается со строковой константой, ttype
поле устанавливается в строковый разделитель и sval
поле устанавливается в тело строки.
Если со строковым символом кавычки встречаются, то строка распознается, состоя из всех символов после (но не включая) строковый символ кавычки, до (но не включая) следующее возникновение того же самого строкового символа кавычки, или разделитель строки, или конец файла. Обычные escape-последовательности такой как "\n"
и "\t"
распознаются и преобразовываются в единственные символы, поскольку строка анализируется.
Любые другие настройки атрибута для указанного символа очищаются.
ch
- символ.nextToken()
, sval
, ttype
public void parseNumbers()
0 1 2 3 4 5 6 7 8 9 . -
имеет "числовой" атрибут.
Когда синтаксический анализатор встречается с маркером слова, у которого есть формат двойной точности число с плавающей точкой, это обрабатывает маркер как число, а не слово, устанавливая ttype
поле к значению TT_NUMBER
и помещение числового значения маркера в nval
поле.
public void eolIsSignificant(boolean flag)
nextToken
возвраты метода TT_EOL
и также наборы ttype
поле к этому значению, когда конец строки читается. Строка является последовательностью символов, заканчивающихся любым символ возврата каретки ('\r'
) или символ новой строки ('\n'
). Кроме того, символ возврата каретки, сопровождаемый сразу символом новой строки, обрабатывается как единственный маркер конца строки.
Если flag
ложь, символы конца строки обрабатываются как пробел и служат только, чтобы разделить маркеры.
flag
- true
указывает, что символы конца строки являются отдельными маркерами; false
указывает, что символы конца строки являются пробелом.nextToken()
, ttype
, TT_EOL
public void slashStarComments(boolean flag)
true
, этот потоковый токенизатор распознает комментарии C-стиля. Весь текст между последовательными возникновениями /*
и */
отбрасываются. Если параметр флага false
, тогда комментарии C-стиля не обрабатываются особенно.
flag
- true
указывает, чтобы распознать и проигнорировать комментарии C-стиля.public void slashSlashComments(boolean flag)
true
, этот потоковый токенизатор распознает комментарии в стиле С++. Любое возникновение двух последовательных символов наклонной черты ('/'
) обрабатывается как начало комментария, который расширяется до конца строки. Если параметр флага false
, тогда комментарии в стиле С++ не обрабатываются особенно.
flag
- true
указывает, чтобы распознать и проигнорировать комментарии в стиле С++.public void lowerCaseMode(boolean fl)
true
, тогда значение в sval
поле печатается строчными литерами всякий раз, когда маркер слова возвращается ( ttype
у поля есть значение TT_WORD
nextToken
метод этого токенизатора. Если параметр флага false
, тогда sval
поле не изменяется.
fl
- true
указывает, что все маркеры слова должны печататься строчными литерами.nextToken()
, ttype
, TT_WORD
public int nextToken() throws IOException
ttype
поле. Дополнительная информация о маркере может быть в nval
поле или sval
поле этого токенизатора. Типичные клиенты этого класса, сначала установленного, синтаксические таблицы и затем находятся в цикле, вызывая nextToken, чтобы проанализировать последовательные маркеры, пока TT_EOF не возвращается.
ttype
поле.IOException
- если ошибка ввода-вывода происходит.nval
, sval
, ttype
public void pushBack()
nextToken
метод этого токенизатора, чтобы возвратить текущую стоимость в ttype
поле, а не изменить значение в nval
или sval
поле.nextToken()
, nval
, sval
, ttype
public int lineno()
public String toString()
Точная возвращенная строка является неуказанной, хотя следующий пример можно считать типичным:
Token['a'], line 10
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.