blob: 4cd709814c33c1904b83b83fe4a555ea450cf6ec [file] [log] [blame]
Georg Brandl116aa622007-08-15 14:28:22 +00001: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@acm.org>
7
Raymond Hettingera1993682011-01-27 01:20:32 +00008**Source code:** :source:`Lib/token.py`
9
10--------------
Georg Brandl116aa622007-08-15 14:28:22 +000011
12This module provides constants which represent the numeric values of leaf nodes
13of the parse tree (terminal tokens). Refer to the file :file:`Grammar/Grammar`
14in the Python distribution for the definitions of the names in the context of
15the language grammar. The specific numeric values which the names map to may
16change between Python versions.
17
Georg Brandleec2d762010-10-17 09:46:11 +000018The module also provides a mapping from numeric codes to names and some
19functions. The functions mirror definitions in the Python C header files.
Georg Brandl116aa622007-08-15 14:28:22 +000020
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
Georg Brandleec2d762010-10-17 09:46:11 +000044The 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
Georg Brandleec2d762010-10-17 09:46:11 +000071 LBRACE
72 RBRACE
73 EQEQUAL
74 NOTEQUAL
75 LESSEQUAL
76 GREATEREQUAL
77 TILDE
78 CIRCUMFLEX
79 LEFTSHIFT
80 RIGHTSHIFT
81 DOUBLESTAR
82 PLUSEQUAL
83 MINEQUAL
84 STAREQUAL
85 SLASHEQUAL
86 PERCENTEQUAL
87 AMPEREQUAL
88 VBAREQUAL
89 CIRCUMFLEXEQUAL
90 LEFTSHIFTEQUAL
91 RIGHTSHIFTEQUAL
92 DOUBLESTAREQUAL
93 DOUBLESLASH
94 DOUBLESLASHEQUAL
95 AT
Meador Ingeac007ba2011-12-23 22:30:16 -060096 RARROW
97 ELLIPSIS
Georg Brandleec2d762010-10-17 09:46:11 +000098 OP
99 ERRORTOKEN
100 N_TOKENS
101 NT_OFFSET
102
103
Georg Brandl116aa622007-08-15 14:28:22 +0000104.. seealso::
105
106 Module :mod:`parser`
107 The second example for the :mod:`parser` module shows how to use the
108 :mod:`symbol` module.
109