Документация Python неофициальный перевод

token – Константы для работы с деревьями разбора Pythontoken – 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

Значение токена, указывающее на идентификатор или ключевое слово.

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

Токен, обозначающий начало литерала шаблонной строки.

Деталь реализации CPython: Строка токена включает префикс и открывающую кавычку (кавычки), но ни одного из содержимого литерала.

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

token.TSTRING_MIDDLE

Токен, используемый для литерального текста внутри литерала шаблонной строки, включая спецификации формата.

Деталь реализации CPython: Поля подстановки (то есть нелитеральные части t-строк) используют 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.