token --- Python 解析木で使われる定数

ソースコード: Lib/token.py


このモジュールは解析木の葉ノード(終端記号)の数値を表す定数を提供します。言語の文法のコンテキストにおける名前の定義については、 Python ディストリビューションのファイル Grammar/Tokens を参照してください。名前がマップする特定の数値は Python のバージョン間で変わります。

このモジュールは、数値コードから名前へのマッピングと、いくつかの関数も提供しています。関数は Python の C ヘッダファイルの定義を反映します。

Note that a token's value may depend on tokenizer options. For example, a "+" token may be reported as either PLUS or OP, or a "match" token may be either NAME or SOFT_KEYWORD.

token.tok_name

ディクショナリはこのモジュールで定義されている定数の数値を名前の文字列へマップし、より人が読みやすいように解析木を表現します。

token.ISTERMINAL(x)

終端トークンの値に対して True を返します。

token.ISNONTERMINAL(x)

非終端トークンの値に対して True を返します。

token.ISEOF(x)

x が入力の終わりを示すマーカーならば、 True を返します。

token の定数一覧:

token.NAME

識別子またはキーワード を示すトークン値です。

token.NUMBER

数値リテラル を示すトークン値です。

token.STRING

Token value that indicates a string or byte literal, excluding formatted string literals. The token string is not interpreted: it includes the surrounding quotation marks and the prefix (if given); backslashes are included literally, without processing escape sequences.

token.OP

演算子 または 区切り文字 を示す汎用的なトークン値です。

この値を報告するのは tokenize モジュールだけです。 内部のトークナイザは、代わりに 個別のトークン型 を使います。

token.COMMENT

コメントを示すトークン値です。 パーサーは COMMENT トークンを無視します。

token.NEWLINE

論理行 の終わりを示すトークン値です。

token.NL

論理行を終わらせない改行を示すトークン値です。 コードの 1 論理行が複数の物理行に続く場合に NL トークンが生成されます。 パーサーは NL トークンを無視します。

token.INDENT

論理行 の先頭で、インデントされたブロック の開始を示すトークン値です。

token.DEDENT

論理行 の先頭で、インデントされたブロック の終了を示すトークン値です。

token.FSTRING_START

f 文字列リテラル の開始を示すトークン値です。

トークン文字列は接頭辞と開始の引用符を含みますが、リテラルの内容は含みません。

token.FSTRING_MIDDLE

書式指定を含む、f 文字列リテラル 内のリテラル部分に使うトークン値です。

置換フィールド (f 文字列のリテラルでない部分) は、ほかの式と同じトークンを使い、LBRACE、RBRACE、EXCLAMATION、COLON トークンで区切られます。

token.FSTRING_END

f 文字列 の終了を示すトークン値です。

トークン文字列は終了の引用符を含みます。

token.TSTRING_START

テンプレート文字列リテラルの開始を示すトークン値です。

トークン文字列は接頭辞と開始の引用符を含みますが、リテラルの内容は含みません。

Added in version 3.14.

token.TSTRING_MIDDLE

書式指定を含む、テンプレート文字列リテラル内のリテラル部分に使うトークン値です。

置換フィールド (t 文字列のリテラルでない部分) は、ほかの式と同じトークンを使い、LBRACE、RBRACE、EXCLAMATION、COLON トークンで区切られます。

Added in version 3.14.

token.TSTRING_END

テンプレート文字列リテラルの終了を示すトークン値です。

トークン文字列は終了の引用符を含みます。

Added in version 3.14.

token.ENDMARKER

入力の終わりを示すトークン値です。 最上位の文法規則 で使います。

token.ENCODING

ソースの bytes をテキストにデコードするために使われるエンコーディングを示すトークン値。tokenize.tokenize() は常に最初に ENCODING トークンを返します。

このトークン型は C のトークナイザでは使いませんが、tokenize モジュールに必要です。

次のトークン型は tokenize モジュールでは生成されず、トークナイザやパーサーでの特別な用途のために定義されています:

token.TYPE_IGNORE

type: ignore コメントを認識したことを示すトークン値です。 PyCF_TYPE_COMMENTS フラグが有効な場合にだけ、通常の COMMENT トークンの代わりに生成されます。

token.TYPE_COMMENT

型コメントを認識したことを示すトークン値です。 PyCF_TYPE_COMMENTS フラグが有効な場合にだけ、通常の COMMENT トークンの代わりに生成されます。

token.SOFT_KEYWORD

ソフトキーワード を示すトークン値です。

トークナイザはこの値を生成しません。 ソフトキーワードかどうかを調べるには、NAME トークンの文字列を keyword.issoftkeyword() に渡してください。

token.ERRORTOKEN

不正な入力を示すトークン値です。

tokenize モジュールは通常、このトークンを生成する代わりに例外を送出してエラーを示します。 また、後でパーサーに拒否される文字列を持つ OP や NAME などのトークンを生成することもあります。

残りのトークンは、個々の 演算子 や 区切り文字 を表します。 tokenize モジュールでは、これらを OP として報告します。 詳しくは tokenize のドキュメントの exact_type を参照してください。

トークン

値

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

このモジュールで定義しているトークン型の数です。

token.EXACT_TOKEN_TYPES

トークンの文字列表現を数値コードに対応付ける辞書です。

Added in version 3.8.

バージョン 3.5 で変更: AWAIT トークンと ASYNC トークンが追加されました。

バージョン 3.7 で変更: COMMENT 、NL、ENCODING トークンが追加されました。

バージョン 3.7 で変更: AWAIT トークンと ASYNC トークンが削除されました。 "async" と "await" は NAME トークンとして扱われるようになりました。

バージョン 3.8 で変更: TYPE_COMMENT、TYPE_IGNORE、COLONEQUAL が追加されました。 AWAIT と ASYNC のトークンも再び追加されました (ast.parse() で feature_version を 6 以下に設定し、古い Python バージョンの構文を解析するために必要です)。

バージョン 3.12 で変更: EXCLAMATION が追加されました。

バージョン 3.13 で変更: AWAIT トークンと ASYNC トークンが再び削除されました。