複数バッファを使った字句/構文解析機をつくるメモ

nDiaryではなくなって、ローカルでhtmlを生成したい欲求がでてきた。
探してみたけれど良いのがなかったので、ほんなら作るかー、と復習がてらflex/bisonで作成。

基本はFlex - Flexの他の特徴で書かれている通り。

肝の部分は

YY_BUFFER_STATE yy_previous_buffer_state = YY_CURRENT_BUFFER;
YY_BUFFER_STATE yy_buffer_state = yy_create_buffer(yyin, YY_BUF_SIZE);
yy_switch_to_buffer(yy_buffer_state);

でバッファを作成して、<>ルールでの

yy_delete_buffer(yy_buffer_state);
yy_switch_to_buffer(yy_previous_buffer_state);

の部分。

およよーと思い grep してみたら昔書いてた。

そのときは flex のみで書いてたのでもうちょっと調べないとだ。