GitHub で見る
PYTHON 字句解析 LABORATORY

トークン ラボ

Python があなたのコードを最小の部品「トークン」に切り分ける様子を、実物どおりに見せます。 「やさしい」で直感を、「くわしい」で本物の字句解析器の出力を。

🔍 トークン列— 実際の tokenize 出力(0 トークン)

(コードを入力してください)

👆 トークンをタップすると、種類・位置・意味がわかります。

いろ と 種類の凡例
NAME
識別子・キーワード(全部 NAME)
NUMBER
数値リテラル
STRING
文字列リテラル
OP
演算子・区切り(exact型つき)
( ) [ ] { }
OP の中の括弧(LPAR等)
COMMENT
コメント
NEWLINE / NL
論理行末 / 意味なし改行
INDENT / DEDENT
字下げの増減(構造)
ENDMARKER
入力の終端

💡 「()」の ひみつ

print
🍬🎁➡️👉
なまえを ゆびさすだけ
「これ!」と いってるだけ。まだ うごかない。
print()
🍬🎁➡️✨
ボタンを おした!
「いま やって!」で、なかみが うごく。
🔑 なまえ=「どれ?」/ ()=「いま やって!」の あいず。
だから、わたす ものが なくても、「やって!」の () は つけるんだ。
🙂コードを かえると、ここに ヒントが でます。
厳密には: 字句解析器(tokenizer)が見ているのは NAME 'print' OP '(' (LPAR)OP ')' (RPAR) という並びだけです。これを 「関数呼び出し」= Call(func=Name('print'), args=[])解釈するのは、 次の段階の構文解析器(parser)の仕事。
同じ理由で、iffor も字句解析の時点ではただの NAME トークンで、キーワードかどうかは後の段階で判定されます。

🌳 構文木(AST)

(コードを入力してください)

⚙️ バイトコード

(コードを入力してください)

🧮 スタックマシン

(コードを入力してください)