token — Constants used with Python parse trees — Python documentation

From Get docs
Python/docs/3.9/library/token

token — Constants used with Python parse trees

Source code: :source:`Lib/token.py`



This module provides constants which represent the numeric values of leaf nodes of the parse tree (terminal tokens). Refer to the file Grammar/Grammar in the Python distribution for the definitions of the names in the context of the language grammar. The specific numeric values which the names map to may change between Python versions.

The module also provides a mapping from numeric codes to names and some functions. The functions mirror definitions in the Python C header files.

token.tok_name
Dictionary mapping the numeric values of the constants defined in this module back to name strings, allowing more human-readable representation of parse trees to be generated.
token.ISTERMINAL(x)
Return True for terminal token values.
token.ISNONTERMINAL(x)
Return True for non-terminal token values.
token.ISEOF(x)
Return True if x is the marker indicating the end of input.

The token constants are:

token.ENDMARKER
token.NAME
token.NUMBER
token.STRING
token.NEWLINE
token.INDENT
token.DEDENT
token.LPAR
Token value for "(".
token.RPAR
Token value for ")".
token.LSQB
Token value for "[".
token.RSQB
Token value for "]".
token.COLON
Token value for ":".
token.COMMA
Token value for ",".
token.SEMI
Token value for ";".
token.PLUS
Token value for "+".
token.MINUS
Token value for "-".
token.STAR
Token value for "*".
token.SLASH
Token value for "/".
token.VBAR
Token value for "|".
token.AMPER
Token value for "&".
token.LESS
Token value for "<".
token.GREATER
Token value for ">".
token.EQUAL
Token value for "=".
token.DOT
Token value for ".".
token.PERCENT
Token value for "%".
token.LBRACE
Token value for "{".
token.RBRACE
Token value for "}".
token.EQEQUAL
Token value for "==".
token.NOTEQUAL
Token value for "!=".
token.LESSEQUAL
Token value for "<=".
token.GREATEREQUAL
Token value for ">=".
token.TILDE
Token value for "~".
token.CIRCUMFLEX
Token value for "^".
token.LEFTSHIFT
Token value for "<<".
token.RIGHTSHIFT
Token value for ">>".
token.DOUBLESTAR
Token value for "**".
token.PLUSEQUAL
Token value for "+=".
token.MINEQUAL
Token value for "-=".
token.STAREQUAL
Token value for "*=".
token.SLASHEQUAL
Token value for "/=".
token.PERCENTEQUAL
Token value for "%=".
token.AMPEREQUAL
Token value for "&=".
token.VBAREQUAL
Token value for "|=".
token.CIRCUMFLEXEQUAL
Token value for "^=".
token.LEFTSHIFTEQUAL
Token value for "<<=".
token.RIGHTSHIFTEQUAL
Token value for ">>=".
token.DOUBLESTAREQUAL
Token value for "**=".
token.DOUBLESLASH
Token value for "//".
token.DOUBLESLASHEQUAL
Token value for "//=".
token.AT
Token value for "@".
token.ATEQUAL
Token value for "@=".
token.RARROW
Token value for "->".
token.ELLIPSIS
Token value for "...".
token.COLONEQUAL
Token value for ":=".
token.OP
token.AWAIT
token.ASYNC
token.TYPE_IGNORE
token.TYPE_COMMENT
token.ERRORTOKEN
token.N_TOKENS
token.NT_OFFSET

The following token type values aren’t used by the C tokenizer but are needed for the tokenize module.

token.COMMENT
Token value used to indicate a comment.
token.NL
Token value used to indicate a non-terminating newline. The NEWLINE token indicates the end of a logical line of Python code; NL tokens are generated when a logical line of code is continued over multiple physical lines.
token.ENCODING
Token value that indicates the encoding used to decode the source bytes into text. The first token returned by tokenize.tokenize() will always be an ENCODING token.
token.TYPE_COMMENT
Token value indicating that a type comment was recognized. Such tokens are only produced when ast.parse() is invoked with type_comments=True.

Changed in version 3.5: Added AWAIT and ASYNC tokens.


Changed in version 3.7: Added COMMENT, NL and ENCODING tokens.


Changed in version 3.7: Removed AWAIT and ASYNC tokens. “async” and “await” are now tokenized as NAME tokens.


Changed in version 3.8: Added TYPE_COMMENT, TYPE_IGNORE, COLONEQUAL. Added AWAIT and ASYNC tokens back (they’re needed to support parsing older Python versions for ast.parse() with feature_version set to 6 or lower).