token —- 用于 Python 解析树的常量

源码: Lib/token.py [https://github.com/python/cpython/tree/3.13/Lib/token.py]


该模块提供了一些代表解析树的叶子节点的数字值的常量(终端形符)。 请参阅 Python 发布版中的 Grammar/Tokens 文件获取在该语言语法情境下的名称定义。 这些名称所映射的特定数字值有可能在各 Python 版本间发生变化。

该模块还提供从数字代码到名称和一些函数的映射。 这些函数镜像了 Python C 头文件中的定义。

  • token.tok_name
  • 将此模块中定义的常量的数值映射回名称字符串的字典,允许生成更加人类可读的解析树表示。
  • token.ISTERMINAL(x)
  • 对终端形符值返回 True
  • token.ISNONTERMINAL(x)
  • 对非终端形符值返回 True
  • token.ISEOF(x)
  • 如果 x 是表示输入结束的标记则返回 True

形符常量有:

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

C 形符生成器不使用以下形符类型值,但 tokenize 模块需要它们。

  • token.COMMENT
  • 形符值用于表示注释。
  • token.NL
  • 形符值用于表示非终止换行符。 NEWLINE 形符表示 Python 代码逻辑行的结束;当在多条物理线路上继续执行逻辑代码行时,会生成 NL 形符。
  • token.ENCODING
  • 指示用于将源字节解码为文本的编码的形符值。 tokenize.tokenize() 返回的第一个形符将始终是一个 ENCODING 形符。
  • token.TYPE_COMMENT
  • 指明类型注释已被识别的形符值。 此种形符仅在 ast.parse() 附带 type_comments=True 被唤起时才会产生。
  • token.EXACT_TOKEN_TYPES
  • 将形符字符串表示形式映射到其数字代码的字典。

Added in version 3.8.

在 3.5 版本发生变更: 增加了 AWAITASYNC 形符。

在 3.7 版本发生变更: 形符 COMMENTNLENCODING 形符。

在 3.7 版本发生变更: 移除了 AWAITASYNC 形符。 "async" 和 "await" 被形符化为 NAME 形符。

在 3.8 版本发生变更: 增加了 TYPE_COMMENT, TYPE_IGNORE, COLONEQUAL。 重新增加了 AWAITASYNC 形符(需要用它们来支持解析 ast.parse()feature_version 设为 6 或更低的较旧 Python 版本)。

在 3.13 版本发生变更: 重新移除了 AWAITASYNC 形符。