Spec-Zone.ru › Python 3.14

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.LPAR

"("

token.RPAR

")"

token.LSQB

"["

token.RSQB

"]"

token.COLON

":"

token.COMMA

","

token.SEMI

";"

token.PLUS

"+"

token.MINUS

"-"

token.STAR

"*"

token.SLASH

"/"

token.VBAR

"|"

token.AMPER

"&"

token.LESS

"<"

token.GREATER

">"

token.EQUAL

"="

token.DOT

"."

token.PERCENT

"%"

token.LBRACE

"{"

token.RBRACE

"}"

token.EQEQUAL

"=="

token.NOTEQUAL

"!="

token.LESSEQUAL

"<="

token.GREATEREQUAL

">="

token.TILDE

"~"

token.CIRCUMFLEX

"^"

token.LEFTSHIFT

"<<"

token.RIGHTSHIFT

">>"

token.DOUBLESTAR

"**"

token.PLUSEQUAL

"+="

token.MINEQUAL

"-="

token.STAREQUAL

"*="

token.SLASHEQUAL

"/="

token.PERCENTEQUAL

"%="

token.AMPEREQUAL

"&="

token.VBAREQUAL

"|="

token.CIRCUMFLEXEQUAL

"^="

token.LEFTSHIFTEQUAL

"<<="

token.RIGHTSHIFTEQUAL

">>="

token.DOUBLESTAREQUAL

"**="

token.DOUBLESLASH

"//"

token.DOUBLESLASHEQUAL

"//="

token.AT

"@"

token.ATEQUAL

"@="

token.RARROW

"->"

token.ELLIPSIS

"..."

token.COLONEQUAL

":="

token.EXCLAMATION

"!"

Предоставляются следующие константы, не являющиеся токенами:

token.N_TOKENS

Количество типов токенов, определённых в этом модуле.

token.EXACT_TOKEN_TYPES

Словарь, сопоставляющий строковое представление токена его числовому коду.

Добавлено в версии 3.8.

Изменено в версии 3.5: Добавлены токены AWAIT и ASYNC.

Изменено в версии 3.7: Добавлены токены COMMENT, NL и ENCODING.

Изменено в версии 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API