token — константы, используемые с деревьями разбора Python
Исходный код: Lib/token.py
Этот модуль предоставляет константы, представляющие числовые значения листовых узлов дерева разбора (терминальных токенов). Определения имён в контексте грамматики языка см. в файле Grammar/Tokens дистрибутива Python. Числовые значения, соответствующие именам, могут меняться между версиями Python.
Модуль также предоставляет сопоставление числовых кодов с именами и несколько функций. Функции повторяют определения из заголовочных файлов C Python.
Обратите внимание, что значение токена может зависеть от параметров токенизатора. Например, токен "+" может сообщаться как PLUS или OP, а токен "match" может быть представлен как NAME или SOFT_KEYWORD.
-
token.tok_name -
Словарь, сопоставляющий числовые значения констант, определённых в этом модуле, с соответствующими строковыми именами; это позволяет создавать более понятное представление деревьев разбора.
-
token.ISTERMINAL(x) -
Возвращает
Trueдля значений терминальных токенов.
-
token.ISNONTERMINAL(x) -
Возвращает
Trueдля значений нетерминальных токенов.
-
token.ISEOF(x) -
Возвращает
True, если x — маркер, обозначающий конец ввода.
Константы токенов:
-
token.NAME -
Значение токена, обозначающее идентификатор или ключевое слово.
-
token.NUMBER -
Значение токена, обозначающее числовой литерал
-
token.STRING -
Значение токена, обозначающее строковый или байтовый литерал, за исключением форматированных строковых литералов. Строка токена не интерпретируется: она включает окружающие кавычки и префикс (если он указан); обратные косые черты включаются как есть, без обработки escape-последовательностей.
-
token.OP -
Обобщённое значение токена, обозначающее оператор или разделитель.
Деталь реализации CPython: Это значение выдаёт только модуль
tokenize. Внутри токенизатор использует вместо него точные типы токенов.
-
token.COMMENT -
Значение токена, используемое для обозначения комментария. Парсер игнорирует токены
COMMENT.
-
token.NEWLINE -
Значение токена, обозначающее конец логической строки.
-
token.NL -
Значение токена, используемое для обозначения перевода строки, не завершающего строку. Токены
NLсоздаются, когда логическая строка кода продолжается на нескольких физических строках. Парсер игнорирует токеныNL.
-
token.INDENT -
Значение токена, используемое в начале логической строки для обозначения начала блока с отступом.
-
token.DEDENT -
Значение токена, используемое в начале логической строки для обозначения конца блока с отступом.
-
token.FSTRING_START -
Значение токена, используемое для обозначения начала литерала f-строки.
Деталь реализации CPython: Строка токена включает префикс и открывающую кавычку (или кавычки), но не содержимое литерала.
-
token.FSTRING_MIDDLE -
Значение токена, используемое для буквального текста внутри литерала f-строки, включая спецификации формата.
Деталь реализации CPython: Поля подстановки (то есть нелитеральные части f-строк) используют те же токены, что и другие выражения, и ограничиваются токенами
LBRACE,RBRACE,EXCLAMATIONиCOLON.
-
token.FSTRING_END -
Значение токена, используемое для обозначения конца f-строки.
Деталь реализации CPython: Строка токена содержит закрывающую кавычку (или кавычки).
-
token.TSTRING_START -
Значение токена, используемое для обозначения начала литерала шаблонной строки.
Деталь реализации CPython: Строка токена включает префикс и открывающую кавычку (или кавычки), но не содержимое литерала.
Добавлено в версии 3.14.
-
token.TSTRING_MIDDLE -
Значение токена, используемое для буквального текста внутри литерала шаблонной строки, включая спецификации формата.
Деталь реализации CPython: Поля подстановки (то есть нелитеральные части t-строк) используют те же токены, что и другие выражения, и ограничиваются токенами
LBRACE,RBRACE,EXCLAMATIONиCOLON.Добавлено в версии 3.14.
-
token.TSTRING_END -
Значение токена, используемое для обозначения конца литерала шаблонной строки.
Деталь реализации CPython: Строка токена содержит закрывающую кавычку (или кавычки).
Добавлено в версии 3.14.
-
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 снова удалены.
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/token.html