token
— Constantes usadas com árvores de análises do Python¶
Código-fonte: Lib/token.py
Este módulo fornece constantes que representam os valores numéricos dos nós das folhas da árvore de análise (tokens terminais). Consulte o arquivo Grammar/Tokens
na distribuição Python para obter as definições dos nomes no contexto da gramática da linguagem. Os valores numéricos específicos para os quais os nomes são mapeados podem mudar entre as versões do Python.
O módulo também fornece um mapeamento de códigos numéricos para nomes e algumas funções. As funções espelham definições nos arquivos de cabeçalho do Python C.
Observe que o valor de um token pode depender das opções do tokenizador. Por exemplo, um token "+"
pode ser relatado como PLUS
ou OP
, ou um token "match"
pode ser NAME
ou SOFT_KEYWORD
.
- token.tok_name¶
Dicionário que mapeia os valores numéricos das constantes definidas neste módulo de volta para cadeias de nomes, permitindo que seja gerada uma representação mais legível de árvores de análise.
- token.ISTERMINAL(x)¶
Retorna
True
para valores de tokens terminais.
- token.ISNONTERMINAL(x)¶
Retorna
True
para valores de tokens não terminais.
- token.ISEOF(x)¶
Retorna
True
se x for o marcador que indica o final da entrada.
Os constantes de tokens são:
- token.NAME¶
Valor de token que indica um identificador. Observe que as palavras reservadas também são inicialmente tokenizadas como tokens
NAME
.
- token.NUMBER¶
Valor de token que indica um literal numérico
- token.STRING¶
Valor de token que indica um literal de string ou byte, excluindo literais de strings formatadas. A string de token não é interpretada: ela inclui as aspas ao redor e o prefixo (se fornecido); contrabarras são incluídas literalmente, sem processar sequências de escape.
- token.OP¶
Um valor de token genérico que indica um operador ou delimitador.
Este valor é relatado apenas pelo módulo
tokenize
. Internamente, o tokenizador usa tipos exatos de tokens em vez disso.
- token.COMMENT¶
Valor de token usado para indicar um comentário. O analisador sintático ignora tokens
COMMENT
.
- token.NEWLINE¶
Valor de token que indica o fim de uma linha lógica.
- token.NL¶
Valor de token usado para indicar uma nova linha não terminante. Os tokens
NL
são gerados quando uma linha lógica de código é continuada em várias linhas físicas. O analisador sintático ignora os tokensNL
.
- token.INDENT¶
Valor de token usado no início de uma linha lógica para indicar o início de um bloco indentado.
- token.DEDENT¶
Valor de token usado no início de uma linha lógica para indicar o fim de um bloco indentado.
- token.FSTRING_START¶
Valor de token usado para indicar o início de um literal de f-string.
A string de token inclui o prefixo e as aspas iniciais, mas nenhum conteúdo do literal.
- token.FSTRING_MIDDLE¶
Valor de token usado para texto literal dentro de um literal de f-string, incluindo especificações de formato.
Campos de substituição (ou seja, as partes não literais de f-strings) usam os mesmos tokens que outras expressões e são delimitados pelos tokens
LBRACE
,RBRACE
,EXCLAMATION
eCOLON
.
- token.FSTRING_END¶
Valor de token usado para indicar o fim de um literal de f-string.
A string do token contém as aspas de fechamento.
- token.ENDMARKER¶
Token value that indicates the end of input. Used in top-level grammar rules.
- token.ENCODING¶
Valor de token que indica a codificação usada para decodificar os bytes de origem em texto. O primeiro token retornado por
tokenize.tokenize()
sempre será um tokenENCODING
.Este tipo de token não é usado pelo tokenizador do C, mas é necessário para o módulo
tokenize
.
Os seguintes tipos de token não são produzidos pelo módulo tokenize
e são definidos para usos especiais no tokenizador ou analisador:
- token.TYPE_IGNORE¶
Valor de token indicando que um comentário
type: ignore
foi reconhecido. Tais tokens são produzidos em vez de tokensCOMMENT
regulares somente com o sinalizadorPyCF_TYPE_COMMENTS
.
- token.TYPE_COMMENT¶
Valor de token indicando que um comentário de tipo foi reconhecido. Tais tokens são produzidos em vez de tokens
COMMENT
regulares somente com o sinalizadorPyCF_TYPE_COMMENTS
.
- token.SOFT_KEYWORD¶
Valor de token indicando uma palavra reservada contextual.
O tokenizador nunca produz esse valor. Para verificar uma palavra reservada contextual, passe uma string do token
NAME
parakeyword.issoftkeyword()
.
- token.ERRORTOKEN¶
Valor de token usado para indicar uma entrada errada.
O módulo
tokenize
geralmente indica erros levantando exceções em vez de emitir este token. Ele também pode emitir tokens comoOP
ouNAME
com strings que são rejeitadas posteriormente pelo parser.
Os tokens restantes representam operadores e delimitadores específicos. (O módulo tokenize
os relata como OP
; consulte exact_type
na documentação tokenize
para obter detalhes.)
Token |
Valor |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
As seguintes constantes não-tokens são fornecidas:
- token.N_TOKENS¶
O número de tipos de token definidos neste módulo.
- token.EXACT_TOKEN_TYPES¶
Um dicionário que mapeia a representação de string de um token para seu código numérico.
Adicionado na versão 3.8.
Alterado na versão 3.5: Adicionados os tokens AWAIT
e ASYNC
.
Alterado na versão 3.7: Removido os tokens AWAIT
e ASYNC
. “async” e “await” são agora tokenizados como tokens NAME
.
Alterado na versão 3.8: Adicionados TYPE_COMMENT
, TYPE_IGNORE
, COLONEQUAL
. Adicionados os tokens AWAIT
e ASYNC
(eles são necessários para dar suporte à análise de versões mais antigas do Python para ast.parse()
com feature_version
definido como 6 ou inferior).
Alterado na versão 3.12: Adicionado EXCLAMATION
.
Alterado na versão 3.13: Removidos novamente os tokens AWAIT
e ASYNC
.