低レイヤを知りたい人のためのCコンパイラ作成入門 に沿って進めています。
- カッコを含んだ四則演算
- 比較演算
- 論理演算
- ローカル変数
- インクリメント/デクリメント
- return文
- if文
- while文
- for文
- ブロック
- 関数
- ポインタ
- 配列 (in stack)
- 構造体
- 型キャスト
- グローバル変数
- enum
- typedef
- 文字列
詳しくは test.sh
のテストケースを見ると良いかもしれません。
WSL Ubuntu-24.04 の上で clang
を使って開発しています。それ以外の環境だと上手く動かないかもしれないですが、適当に調整してください。
$ clang --version
Ubuntu clang version 18.1.3 (1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
- ビルド
make 1cc
/make 2cc
/make 3cc
- テスト
make test-1cc
/make test-2cc
/make test-3cc
- ビルドしてない場合は自動でビルドされます
- diff (不動点の確認)
make diff-2cc-3cc
- 環境の初期化
make clean
- 全部のobjectファイルとかを消します
※3ccのビルドが通らない場合は ulimit -s unlimited
してみてください!!