プログラミング言語を意味のある構成要素ごとに分割したもの。

例えば、以下のようなトークンに分けられる

  • 予約語
  • 識別子
    • 変数名や関数名、構造体の名前など
  • 記号
    • +記号や*=記号など
  • リテラル
    • 123という整数リテラルや、"string\n"という文字列リテラルなど

その他のトークン

  • インデント
    • Pythonではインデントでプログラムの構造を管理するが、それのために字句解析でトークンを挿入する
    • 1段インデントが下がったり、1段インデントが上がったりしたらトークンが挿入されるらしい
  • トークン列の終端
    • ヌル文字と同じ様に、トークン列の終端を意味するトークンを作ることもある
    • 構文解析の処理が楽になるので、むしろメジャーまである