コンパイラ作成日記 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 はありながら実態は別のファイルに記述されている、そういうところが似ている。
コンパイルするので実装漏れがあってもエラーになるのであんまり不安はないがグローバル変数を引き回すのはやはり分かりづらいなあ。
とりあえず今日は分割まで。