token – Константы для работы с деревьями разбора Python¶token – Constants used with Python parse trees
Исходный код: Lib/token.py
Этот модуль предоставляет константы, представляющие числовые значения листовых узлов\nдерева разбора (терминальных токенов). Файл Grammar/Tokens\nв дистрибутиве Python содержит определения имён в контексте грамматики языка.\nКонкретные числовые значения, на которые ссылаются имена, могут изменяться между версиями Python.
Модуль также предоставляет отображение числовых кодов на имена и несколько\nфункций. Функции дублируют определения из C-заголовочных файлов Python.
Следует учесть, что значение токена может зависеть от параметров токенизатора. Например, токен\n"+" может быть представлен как PLUS или OP, или\nтокен "match" может быть либо NAME, либо SOFT_KEYWORD.
- token.tok_name¶
Словарь, отображающий числовые значения констант, определённых в этом модуле,\nобратно в строки имён, что позволяет создавать более удобочитаемое представление деревьев разбора.
- token.ISTERMINAL(x)¶
Возвращает
Trueдля значений терминальных токенов.
- token.ISNONTERMINAL(x)¶
Возвращает
Trueдля значений нетерминальных токенов.
- token.ISEOF(x)¶
Возвращает
True, если x – это маркер конца входных данных.
Константы токенов:
- token.NAME¶
Значение токена, указывающее на идентификатор. Ключевые слова также изначально разбиваются на токены
NAME.
- token.NUMBER¶
Значение токена, указывающее на числовой литерал
- token.STRING¶
Значение токена, указывающее на строковый или байтовый литерал,\nза исключением formatted string literals.\nСтрока токена не интерпретируется:\nона включает окружающие кавычки и префикс (если указан);\nобратная косая черта включается буквально, без обработки escape-последовательностей.
- token.OP¶
Общее значение токена, указывающее на\nоператор или разделитель.
Особенность реализации CPython: Это значение сообщается только модулем
tokenize.\nВнутренне токенизатор использует\nточные типы токенов.
- token.COMMENT¶
Значение токена, используемое для обозначения комментария.\nПарсер игнорирует токены
COMMENT.
- token.NEWLINE¶
Значение токена, указывающее на конец логической строки.
- token.NL¶
Значение токена, используемое для обозначения незавершающего символа новой строки.\nТокены
NLгенерируются, когда логическая строка кода продолжается\nна нескольких физических строках. Парсер игнорирует токеныNL.
- token.INDENT¶
Значение токена, используемое в начале логической строки\nдля обозначения начала вложенного блока.
- token.DEDENT¶
Значение токена, используемое в начале логической строки чтобы указать конец блока с отступом.
- token.FSTRING_START¶
Токен, обозначающий начало f-строкового литерала.
Деталь реализации CPython: Строка токена включает префикс и открывающую кавычку (кавычки), но ни одного из содержимого литерала.
- token.FSTRING_MIDDLE¶
Токен, используемый для литерального текста внутри f-строкового литерала, включая спецификации формата.
Деталь реализации CPython: Поля подстановки (то есть нелитеральные части f-строк) используют tе же токены, что и другие выражения, и разделяются
LBRACE,RBRACE,EXCLAMATIONиCOLONтокенами.
- token.FSTRING_END¶
Токен, обозначающий конец f-строки.
Деталь реализации CPython: Строка токена содержит закрывающую кавычку (кавычки).
- token.ENDMARKER¶
Значение токена, обозначающее конец входных данных.
- token.ENCODING¶
Токен, обозначающий кодировку, используемую для декодирования исходных байтов в текст. Первый токен, возвращаемый
tokenize.tokenize(), всегда будет токеномENCODING.Деталь реализации CPython: Этот тип токена не используется C-токенизатором, но необходим для модуля
tokenize.
Следующие типы токенов не производятся модулем tokenize
и определены для специальных целей в токенизаторе или синтаксическом анализаторе:
- token.TYPE_IGNORE¶
Токен, указывающий, что распознан комментарий
type: ignore. Такие токены производятся вместо обычных токеновCOMMENTтолько с флагомPyCF_TYPE_COMMENTS.
- token.TYPE_COMMENT¶
Токен, указывающий, что распознан комментарий типа. Такие токены производятся вместо обычных токенов
COMMENTтолько с флагомPyCF_TYPE_COMMENTS.
- token.SOFT_KEYWORD¶
Токен, обозначающий мягкое ключевое слово.
Токенизатор никогда не производит это значение. Чтобы проверить мягкое ключевое слово, передайте строку токена
NAMEвkeyword.issoftkeyword().
- token.ERRORTOKEN¶
Значение токена, используемое для указания неверного ввода.
Модуль
tokenizeобычно указывает на ошибки с помощью возбуждения исключений, а не выдачи этого токена. Он также может выдавать такие токены, какOPилиNAME, со строками, которые впоследствии отвергаются парсером.
Оставшиеся токены представляют конкретные операторы и
разделители.
(Модуль tokenize сообщает о них как о OP; см. exact_type
в документации tokenize для подробностей.)
Токен |
Значение |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Предоставляются следующие константы, не являющиеся токенами:
- token.N_TOKENS¶
Количество типов токенов, определённых в этом модуле.
- token.EXACT_TOKEN_TYPES¶
Словарь, сопоставляющий строковое представление токена с его числовым кодом.
Добавлено в версии 3.8.
Изменено в версии 3.5: Добавлены токены AWAIT и ASYNC.
Изменено в версии 3.7: Удалены токены AWAIT и ASYNC. «async» и «await»
теперь токенизируются как токены NAME.
Изменено в версии 3.8: Добавлены токены TYPE_COMMENT, TYPE_IGNORE, COLONEQUAL.
Добавлены обратно токены AWAIT и ASYNC (они необходимы
для поддержки разбора старых версий Python для ast.parse() с
feature_version, установленным в 6 или ниже).
Изменено в версии 3.12: Добавлен EXCLAMATION.
Изменено в версии 3.13: Снова удалены токены AWAIT и ASYNC.