# `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.

`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.``ENDMARKER`

`token.``NAME`

`token.``NUMBER`

`token.``STRING`

`token.``NEWLINE`

`token.``INDENT`

`token.``DEDENT`

`token.``LPAR`

  Valor de token para `"("`.

`token.``RPAR`

  Valor de token para `")"`.

`token.``LSQB`

  Valor de token para `"["`.

`token.``RSQB`

  Valor de token para `"]"`.

`token.``COLON`

  Valor de token para `":"`.

`token.``COMMA`

  Valor de token para `","`.

`token.``SEMI`

  Valor de token para `";"`.

`token.``PLUS`

  Valor de token para `"+"`.

`token.``MINUS`

  Valor de token para `"-"`.

`token.``STAR`

  Valor de token para `"*"`.

`token.``SLASH`

  Valor de token para `"/"`.

`token.``VBAR`

  Valor de token para `"|"`.

`token.``AMPER`

  Valor de token para `"&"`.

`token.``LESS`

  Valor de token para `"<"`.

`token.``GREATER`

  Valor de token para `">"`.

`token.``EQUAL`

  Valor de token para `"="`.

`token.``DOT`

  Valor de token para `"."`.

`token.``PERCENT`

  Valor de token para `"%"`.

`token.``LBRACE`

  Valor de token para `"{"`.

`token.``RBRACE`

  Valor de token para `"}"`.

`token.``EQEQUAL`

  Valor de token para `"=="`.

`token.``NOTEQUAL`

  Valor de token para `"!="`.

`token.``LESSEQUAL`

  Valor de token para `"<="`.

`token.``GREATEREQUAL`

  Valor de token para `">="`.

`token.``TILDE`

  Valor de token para `"~"`.

`token.``CIRCUMFLEX`

  Valor de token para `"^"`.

`token.``LEFTSHIFT`

  Valor de token para `"<<"`.

`token.``RIGHTSHIFT`

  Valor de token para `">>"`.

`token.``DOUBLESTAR`

  Valor de token para `"**"`.

`token.``PLUSEQUAL`

  Valor de token para `"+="`.

`token.``MINEQUAL`

  Valor de token para `"-="`.

`token.``STAREQUAL`

  Valor de token para `"*="`.

`token.``SLASHEQUAL`

  Valor de token para `"/="`.

`token.``PERCENTEQUAL`

  Valor de token para `"%="`.

`token.``AMPEREQUAL`

  Valor de token para `"&="`.

`token.``VBAREQUAL`

  Valor de token para `"|="`.

`token.``CIRCUMFLEXEQUAL`

  Valor de token para `"^="`.

`token.``LEFTSHIFTEQUAL`

  Valor de token para `"<<="`.

`token.``RIGHTSHIFTEQUAL`

  Valor de token para `">>="`.

`token.``DOUBLESTAREQUAL`

  Valor de token para `"**="`.

`token.``DOUBLESLASH`

  Valor de token para `"//"`.

`token.``DOUBLESLASHEQUAL`

  Valor de token para `"//="`.

`token.``AT`

  Valor de token para `"@"`.

`token.``ATEQUAL`

  Valor de token para `"@="`.

`token.``RARROW`

  Valor de token para `"->"`.

`token.``ELLIPSIS`

  Valor de token para `"..."`.

`token.``COLONEQUAL`

  Valor de token para `":="`.

`token.``OP`

`token.``AWAIT`

`token.``ASYNC`

`token.``TYPE_IGNORE`

`token.``TYPE_COMMENT`

`token.``SOFT_KEYWORD`

`token.``ERRORTOKEN`

`token.``N_TOKENS`

`token.``NT_OFFSET`

Os seguintes valores de tipo de token não são usados pelo tokenizador do C, mas são necessários para o módulo `tokenize`.

`token.``COMMENT`

  Valor de token usado para indicar um comentário.

`token.``NL`

  Valor de token usado para indicar uma nova linha que não termina. O token `NEWLINE` indica o fim de uma linha lógica do código Python. Os tokens `NL` são gerados quando uma linha lógica de código é continuada em várias linhas físicas.

`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 token `ENCODING`.

`token.``TYPE_COMMENT`

  Valor do token indicando que um comentário de tipo foi reconhecido. Esses tokens são produzidos apenas quando `ast.parse()` é chamado com `type_comments=True`.

Alterado na versão 3.5: Adicionados os tokens `AWAIT` e `ASYNC`.

Alterado na versão 3.7: Adicionados os tokens `COMMENT`, `NL` e `ENCODING`.

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