"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" トークンが再び削除
されました。
