計算機用言語の処理には決まった方法があります。文字列で与えられた言語は、字句解析によってトークンに分けられ、構文解析によってトークン同士が結びつけられ、意味解析によって解釈されます。
字句解析を行うプログラムが字句解析器(lexer)、構文解析と意味解析を行うのが構文解析器(parser)です。字句解析器としてはlexあるいはflex、構文解析器としてはyaccあるいはbisonが有名で、資料も豊富にありますが、いずれもC言語で利用することを想定したソフトウェアです。
必要なパッケージを次のようにダウンロード・インストールします(コマンドの実行前に、c:\\xampp\\php\\pear.iniの「"\\xampp」を「"C:\\xampp」に修正。ディレクトリはインストール先に応じて適宜読み替えてください)。アルファ版のためドキュメントに不備がありますが、パッケージ(.tgz)に含まれるサンプルでそれを補えるでしょう。
本稿で実装するのは簡易電卓のための言語です。「10 )」という文字列が与えられたときに、これを正しく解釈して計算するのが目標です。