言語のしくみを読む

2-7AST(抽象構文木)に変換

今回はsrcフォルダーに大幅に追加がなされた。
早速makeしてみるが、node.cコンパイル中にy.tab.hがないとエラーが出ている。
Gitで次のtag(201507)に行ってみるとy.tab.hがあったので201506は無視して201507tag
で実行。
binフォルダーにstreemができていたので

./streem ../examples/01cat.stem
<結果>
dw (stdin 入力)
dw (stdout 出力)
エコーです

./streem ../examples/02hello.stem
<結果>
Hello World

結構おもしろい。

src/main関数の最初でオプションをチエックしているようだが特になにもしていない?
読み込んだファイルをパースしているようだ(フロントエンド)。
そのあとstat変数をnode_run関数に渡してnode.cのexec_expr関数に
実行させている(バックエンド)ようだ。