JavaのCoreクラスをぼやっと眺めていると、なかなか面白いクラスがあることが判ります。ここで紹介するjava.io.StreamTokenizerクラスは入力ストリームの字句解析をする機能を提供します。この機能に構文解析機能を組み合わせれば、プログラミング言語の処理系を作ることができるわけで、なかなか興味深いクラスです。 Unix系のシステムを使っている人なら、lexというプログラムのことを聞いたことがある人は多いと思いますが、実際に使ったことがある人は結構少ないでしょう。ちなみにGNUプロジェクトではflexという名前でプログラムが提供されています。lexは字句解析を行うプログラムを生成するプログラムですが、StreamTokenizerは自身が字句解析を行います。多少の設定で挙動を変える事もできます。 字句解析というのは、要するに何かのソースファイルを読み出して、トークンと呼ばれる