簡単な字句解析処理

個人的に作っているツールに、ちょっとした条件分岐と四則演算や文字列比較の機能を持ったスクリプトを組みこみたくなってきました。パーズも解釈したスクリプトの実行処理もどっちも気軽に組みたくて、機能を限定したSCHEMEとして実装しようかな、と考えてます。リストにあたる要素をクラスインスタンスにして、リスト1個目は演算子identifier、identifierによってリストの要素になんか作用して自分自身をリスト→アトム変換、みたいに実装したら、意外とすぐに出来そうな気がします。
てな訳で、ちょこっと字句解析パーサを書いてみました。1時間くらいかかってやっとそれらしいものが完成。ファイルから文字列を読み込んで、開き括弧、閉じ括弧、identifier、数値、文字列を認識して切り出してくれます。
ちなみにコーディング手法が最悪で、ががっと全部書いてからコンパイルエラーを修正、実行時エラーはデバッガでひたすら追う、それだけです。いうてもこのレベルの字句解析なんて、文字位置が前後に1、2文字ズレた、もしくは文字位置のインクリメント忘れで無限ループ、くらいしかはまりどころはないような気もしますけど。あ、それだったら折角だから久しぶりにboost::regexでも使ってみたら良かったかも。多分慣れないから1時間以上かかる気もしますが、それこそが学習なわけで。
regexunicodeを要求するし、unicodeでデータを扱ったら日本語も気軽に扱えるから、せっかくだからregex使う形で作り直すことにします。できる限り手段も目的もどちらも自分にとってプラスになるものを選択していきたいものです。