mini-Pythonインタープリタその1

先週Tokenizerを書き終わって今Parserを書いている。下向き構文解析は全部メソッド書き下さないと動作しないのが辛いところ。文法定義に従ってトップダウン的に各パースメソッドを書いていって、その後、構文木等データの実装して、細かいメソッドを実装する予定。ここまでたどり着かないとコンパイルすらできない。先は長い。
某はらけんとペアを組む予定だったが話し合いの結果別々にやることになった。新しくペアを作るかどうかは検討中。
僕の方針としては

  • C++で書く
  • 環境はVisualStudio2005
  • 複数人による開発業務のつもりで書く
  • コーディング規約を決めて適用する
  • g++でもコンパイルできるようにする*1

こんな感じ。教員がサンプルをCで書いているため提供された構文木の定義もCで書かれているのでオールC++で書くのは辛いところだ。しかしSTL使わないで書くとなると大変だよね。某氏のように「クラスは構造体」なスタンスでそこだけC++で書けばいいと思うけど。
今引っかかっているのは名前。教員のサンプルは変数名や関数名を省略しているので初見だと分からなかった。

  • stmt = statement
  • u_expr = unary expression
  • a_expr = add / sub expression


しかしコーディング中に辞書引いてると「僕何やってるんだろう」と思ってしまう……。*2

*1:逆にg++用のソースってWinでコンパイルできないこと多いよね。

*2:某氏が授業中にYahoo翻訳でコーディングのための変な文章を訳しているのを目撃したことがある。