| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | :mod:`token` --- Constants used with Python parse trees
 | 
					
						
							|  |  |  | =======================================================
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. module:: token
 | 
					
						
							|  |  |  |    :synopsis: Constants representing terminal nodes of the parse tree.
 | 
					
						
							| 
									
										
										
										
											2016-06-11 15:02:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-27 01:20:32 +00:00
										 |  |  | **Source code:** :source:`Lib/token.py`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --------------
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-17 09:46:11 +00:00
										 |  |  | The module also provides a mapping from numeric codes to names and some
 | 
					
						
							|  |  |  | functions.  The functions mirror definitions in the Python C header files.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. 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)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-12 16:57:03 +02:00
										 |  |  |    Return ``True`` for terminal token values.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: ISNONTERMINAL(x)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-12 16:57:03 +02:00
										 |  |  |    Return ``True`` for non-terminal token values.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. function:: ISEOF(x)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-12 16:57:03 +02:00
										 |  |  |    Return ``True`` if *x* is the marker indicating the end of input.
 | 
					
						
							| 
									
										
										
										
											2007-08-15 14:28:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-17 09:46:11 +00:00
										 |  |  | The token constants are:
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-22 11:18:40 +02:00
										 |  |  | .. include:: token-list.inc
 | 
					
						
							| 
									
										
										
										
											2017-05-31 15:00:21 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-06 18:43:35 +03:00
										 |  |  | 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.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-31 03:40:27 -08:00
										 |  |  | .. data:: TYPE_COMMENT
 | 
					
						
							| 
									
										
											  
											
												[3.9] bpo-40204: Allow pre-Sphinx 3 syntax in the doc (GH-21844) (GH-21901)
* bpo-40204: Allow pre-Sphinx 3 syntax in the doc (GH-21844)
Enable Sphinx 3.2 "c_allow_pre_v3" option and disable the
c_warn_on_allowed_pre_v3 option to make the documentation compatible
with Sphinx 2 and Sphinx 3.
(cherry picked from commit 423e77d6de497931585d1883805a9e3fa4096b0b)
* bpo-40204: Fix Sphinx sytanx in howto/instrumentation.rst (GH-21858)
Use generic '.. object::' to declare markers, rather than abusing
'..  c:function::' which fails on Sphinx 3.
(cherry picked from commit 43577c01a2ab49122db696e9eaec6cb31d11cc81)
* bpo-40204: Fix duplicates in the documentation (GH-21857)
Fix two Sphinx 3 issues:
Doc/c-api/buffer.rst:304: WARNING: Duplicate C declaration, also defined in 'c-api/buffer'.
Declaration is 'PyBUF_ND'.
Doc/c-api/unicode.rst:1603: WARNING: Duplicate C declaration, also defined in 'c-api/unicode'.
Declaration is 'PyObject* PyUnicode_Translate(PyObject *str, PyObject *table, const char *errors)'.
(cherry picked from commit 46d10b1237c67ff8347f533eda6a5468d098f7eb)
* bpo-40204: Add :noindex: in the documentation (GH-21859)
Add :noindex: to duplicated documentation to fix "duplicate object
description" errors.
For example, fix this Sphinx 3 issue:
Doc/library/configparser.rst:1146: WARNING: duplicate object
description of configparser.ConfigParser.optionxform, other instance
in library/configparser, use :noindex: for one of them
(cherry picked from commit d3ded080482beae578faa704b13534a62d066f9f)
* bpo-40204, doc: Fix syntax of C variables (GH-21846)
For example, fix the following Sphinx 3 errors:
Doc/c-api/buffer.rst:102: WARNING: Error in declarator or parameters
Invalid C declaration: Expected identifier in nested name. [error at 5]
  void \*obj
  -----^
Doc/c-api/arg.rst:130: WARNING: Unparseable C cross-reference: 'PyObject*'
Invalid C declaration: Expected end of definition. [error at 8]
  PyObject*
  --------^
The modified documentation is compatible with Sphinx 2 and Sphinx 3.
(cherry picked from commit 474652fe9346382dbf793f20b671eb74668bebde)
* bpo-40204: Fix reference to terms in the doc (GH-21865)
Sphinx 3 requires to refer to terms with the exact case.
For example, fix the Sphinx 3 warning:
Doc/library/pkgutil.rst:71: WARNING: term Loader not found in case
sensitive match.made a reference to loader instead.
(cherry picked from commit bb0b08540cc93e56f3f1bde1b39ce086d9e35fe1)
* bpo-40204: Fix duplicated productionlist names in the doc (GH-21900)
Sphinx 3 disallows having more than one productionlist markup with
the same name. Simply remove names in this case, since names are not
shown anyway. For example, fix the Sphinx 3 warning:
Doc/reference/introduction.rst:96: duplicate token description
of *:name, other instance in reference/expressions
(cherry picked from commit 1abeda80f760134b4233608e2c288790f955b95a)
											
										 
											2020-08-19 19:25:22 +02:00
										 |  |  |    :noindex: | 
					
						
							| 
									
										
										
										
											2019-01-31 03:40:27 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |    Token value indicating that a type comment was recognized.  Such
 | 
					
						
							|  |  |  |    tokens are only produced when :func:`ast.parse()` is invoked with
 | 
					
						
							|  |  |  |    ``type_comments=True``.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-06 18:43:35 +03:00
										 |  |  | .. versionchanged:: 3.5
 | 
					
						
							| 
									
										
										
										
											2017-10-05 20:24:46 -07:00
										 |  |  |    Added :data:`AWAIT` and :data:`ASYNC` tokens.
 | 
					
						
							| 
									
										
										
										
											2017-06-06 18:43:35 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. versionchanged:: 3.7
 | 
					
						
							|  |  |  |    Added :data:`COMMENT`, :data:`NL` and :data:`ENCODING` tokens.
 | 
					
						
							| 
									
										
										
										
											2017-10-05 20:24:46 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. versionchanged:: 3.7
 | 
					
						
							|  |  |  |    Removed :data:`AWAIT` and :data:`ASYNC` tokens. "async" and "await" are
 | 
					
						
							|  |  |  |    now tokenized as :data:`NAME` tokens.
 | 
					
						
							| 
									
										
										
										
											2019-01-31 03:40:27 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | .. versionchanged:: 3.8
 | 
					
						
							| 
									
										
										
										
											2020-02-28 15:25:36 -08:00
										 |  |  |    Added :data:`TYPE_COMMENT`, :data:`TYPE_IGNORE`, :data:`COLONEQUAL`.
 | 
					
						
							| 
									
										
										
										
											2019-03-07 12:38:08 -08:00
										 |  |  |    Added :data:`AWAIT` and :data:`ASYNC` tokens back (they're needed
 | 
					
						
							|  |  |  |    to support parsing older Python versions for :func:`ast.parse` with
 | 
					
						
							|  |  |  |    ``feature_version`` set to 6 or lower).
 |