Back to Kbengine

:mod:`token` --- Constants used with Python parse trees

kbe/src/lib/python/Doc/library/token.rst

2.5.123.2 KB
Original Source

:mod:token --- Constants used with Python parse trees

.. module:: token :synopsis: Constants representing terminal nodes of the parse tree.

.. sectionauthor:: Fred L. Drake, Jr. [email protected]

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

.. data:: 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.

.. function:: ISTERMINAL(x)

Return true for terminal token values.

.. function:: ISNONTERMINAL(x)

Return true for non-terminal token values.

.. function:: ISEOF(x)

Return true if x is the marker indicating the end of input.

The token constants are:

.. data:: ENDMARKER NAME NUMBER STRING NEWLINE INDENT DEDENT LPAR RPAR LSQB RSQB COLON COMMA SEMI PLUS MINUS STAR SLASH VBAR AMPER LESS GREATER EQUAL DOT PERCENT LBRACE RBRACE EQEQUAL NOTEQUAL LESSEQUAL GREATEREQUAL TILDE CIRCUMFLEX LEFTSHIFT RIGHTSHIFT DOUBLESTAR PLUSEQUAL MINEQUAL STAREQUAL SLASHEQUAL PERCENTEQUAL AMPEREQUAL VBAREQUAL CIRCUMFLEXEQUAL LEFTSHIFTEQUAL RIGHTSHIFTEQUAL DOUBLESTAREQUAL DOUBLESLASH DOUBLESLASHEQUAL AT ATEQUAL RARROW ELLIPSIS OP ERRORTOKEN N_TOKENS NT_OFFSET

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

.. data:: COMMENT

Token value used to indicate a comment.

.. data:: NL

Token value used to indicate a non-terminating newline. The :data: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.

.. data:: ENCODING

Token value that indicates the encoding used to decode the source bytes into text. The first token returned by :func:tokenize.tokenize will always be an ENCODING token.

.. versionchanged:: 3.5 Added :data:AWAIT and :data:ASYNC tokens.

.. versionchanged:: 3.7 Added :data:COMMENT, :data:NL and :data:ENCODING tokens.

.. versionchanged:: 3.7 Removed :data:AWAIT and :data:ASYNC tokens. "async" and "await" are now tokenized as :data:NAME tokens.