2007年10月11日

Metasequoiaファイルのパーサ(2)

引き続きMQOファイルのパーサを書いてみたりしてます。
まぁ、なんというかダーティなコードになっております。
コードがまず、MQOフォーマット・・・というか様式?みたいなものを考慮してるんだぞ、的な作りになっている。
その様式を仕様書追いかけながらやっているので、結構大変。
先日、XML的にパース出来ないものか? みたいなことを書いた。意外に出来そう。
初日は実際のMQOの内容とWebサイトの仕様書を眺めながら思ったことをまとめます。
- 中括弧で情報がネストする
- 半角スペースが区切り記号
- ハードタブでインデントする。ハードタブは区切り記号としても使われる
- 改行によるレコード区切り
ハードタブは無視してはいけない、改行もある種の区切り文字である。これはsscanfも使いたくなる。
というか、sprintfで書式化した文字列を行単位で書き出しているのがMQOのテキストフォーマット、という訳になる。
もう、いっそパースエンジンを作るつもりでやったほうがいい気がしてきた。

0 件のコメント: