Home | History | Annotate | Download | only in library
      1 :mod:`token` --- Constants used with Python parse trees
      2 =======================================================
      3 
      4 .. module:: token
      5    :synopsis: Constants representing terminal nodes of the parse tree.
      6 .. sectionauthor:: Fred L. Drake, Jr. <fdrake (a] acm.org>
      7 
      8 **Source code:** :source:`Lib/token.py`
      9 
     10 --------------
     11 
     12 This module provides constants which represent the numeric values of leaf nodes
     13 of the parse tree (terminal tokens).  Refer to the file :file:`Grammar/Grammar`
     14 in the Python distribution for the definitions of the names in the context of
     15 the language grammar.  The specific numeric values which the names map to may
     16 change between Python versions.
     17 
     18 The module also provides a mapping from numeric codes to names and some
     19 functions.  The functions mirror definitions in the Python C header files.
     20 
     21 
     22 .. data:: tok_name
     23 
     24    Dictionary mapping the numeric values of the constants defined in this module
     25    back to name strings, allowing more human-readable representation of parse trees
     26    to be generated.
     27 
     28 
     29 .. function:: ISTERMINAL(x)
     30 
     31    Return true for terminal token values.
     32 
     33 
     34 .. function:: ISNONTERMINAL(x)
     35 
     36    Return true for non-terminal token values.
     37 
     38 
     39 .. function:: ISEOF(x)
     40 
     41    Return true if *x* is the marker indicating the end of input.
     42 
     43 
     44 The token constants are:
     45 
     46 .. data:: ENDMARKER
     47           NAME
     48           NUMBER
     49           STRING
     50           NEWLINE
     51           INDENT
     52           DEDENT
     53           LPAR
     54           RPAR
     55           LSQB
     56           RSQB
     57           COLON
     58           COMMA
     59           SEMI
     60           PLUS
     61           MINUS
     62           STAR
     63           SLASH
     64           VBAR
     65           AMPER
     66           LESS
     67           GREATER
     68           EQUAL
     69           DOT
     70           PERCENT
     71           BACKQUOTE
     72           LBRACE
     73           RBRACE
     74           EQEQUAL
     75           NOTEQUAL
     76           LESSEQUAL
     77           GREATEREQUAL
     78           TILDE
     79           CIRCUMFLEX
     80           LEFTSHIFT
     81           RIGHTSHIFT
     82           DOUBLESTAR
     83           PLUSEQUAL
     84           MINEQUAL
     85           STAREQUAL
     86           SLASHEQUAL
     87           PERCENTEQUAL
     88           AMPEREQUAL
     89           VBAREQUAL
     90           CIRCUMFLEXEQUAL
     91           LEFTSHIFTEQUAL
     92           RIGHTSHIFTEQUAL
     93           DOUBLESTAREQUAL
     94           DOUBLESLASH
     95           DOUBLESLASHEQUAL
     96           AT
     97           OP
     98           ERRORTOKEN
     99           N_TOKENS
    100           NT_OFFSET
    101 
    102 
    103 .. seealso::
    104 
    105    Module :mod:`parser`
    106       The second example for the :mod:`parser` module shows how to use the
    107       :mod:`symbol` module.
    108 
    109