コンパイラ作成日記 5日目
こちらの挑戦日記5日目
リポジトリはこちら。 gennei/compilerbook-challenge
今日やったこと
分割コンパイルとリンク
- 1つのファイルで管理するのがしんどくなってきたので小さくする
- 9cc.cという1つのファイルを、以下の5つのファイルに分割する。
9cc.h
: ヘッダファイルmain.c
:main
関数parse.c
: パーサcodegen.c
: コードジェネレータtokenize.c
: トークナイズ
やっと分割できる。分割してみてわかったのは header file というものを久しく書いていなくて懐かしかった。header file はなんとなく interface に似ている。存在する function はありながら実態は別のファイルに記述されている、そういうところが似ている。
コンパイルするので実装漏れがあってもエラーになるのであんまり不安はないがグローバル変数を引き回すのはやはり分かりづらいなあ。
とりあえず今日は分割まで。