// 全てのテストケースを実行
make debug
// 特定のテストケースを実行
make debug "FN=<file name>"
// 2kmccをコンパイルし、2kmccでデフォルトのプログラムをコンパイル、実行
make 2kmcc
// 2kmccをコンパイルし、2kmccに指定のプログラムコードをコンパイルしてもらい、実行
make 2kmcc "CODE=<program code>"
sozysozbot/2kmccとはセキュリティ・キャンプ講師のhsjoihsさんが作成したC言語で書かれた、自作Cコンパイラです。hsjoihsさんから許可をもらいテストケースとして使用させていただいています。ありがとうございます。そのため./testcase/2kmcc_1.c
のライセンスは複製元である、sozysozbot/2kmccのリポジトリに従います。
compilerbook:低レイヤを知りたい人のためのCコンパイラ作成入門
- (2023/06/22)1:整数1個をコンパイルする言語の作成
- (2023/06/22)2:加減算のできるコンパイラの作成
- (2023/06/24)3:トークナイザを導入
- (2023/06/27)4:エラーメッセージを改良
- (2023/06/28)5:四則演算のできる言語の作成
- (2023/07/12)6:単項プラスと単項マイナス
- (2023/07/17)7: 比較演算子
- (2023/07/17)8: ファイル分割とMakefileの変更
- (2023/07/20)9:1文字のローカル変数
- (2023/07/21)10:複数文字のローカル変数
- (2023/07/21)11:return文
- (2023/07/29)12: 制御構文を足す
- (2023/07/30)13: ブロック
- (2023/08/01)14: 関数の呼び出しに対応する
- (2023/08/05)15: 関数の定義に対応する
- (2023/08/05)16: 単項&と単項*
- (2023/08/08)17: 暗黙の変数定義を廃止して、intというキーワードを導入する
- (2023/08/08)18: ポインタ型を導入する
- (2023/08/09)19: ポインタの加算と減算を実装する
- (2023/08/09)20: sizeof演算子
- (2023/08/10)21: 配列を実装する
- (2023/08/27)22: 配列の添字を実装する
- (2023/09/19)23: グローバル変数を実装する
- (2023/09/02)24: 文字型を実装する
- (2023/09/22)25: 文字列リテラルを実装する
- (2023/09/22)26: 入力をファイルから読む
- (2023/09/22)27: 行コメントとブロックコメント
- (2023/08/27)28: テストをCで書き直す
- (2023/09/23)29: 複合代入演算子
- (2023/10/03)30: インクリメント・デクリメント
- (2023/10/07)31: 型名に対してのsizeof
- (2023/10/10)32: ローカル変数の初期化式
- (2023/10/07)33: for文 Part2
- (2023/10/09)34: &&, ||, !
- (2023/10/10)35: 型、レジスタ、汎整数拡張
- (2023/10/11)36: 文字リテラル
- (2023/10/11)37: ヌルポインタ定数
- (2023/10/15)38: 簡易版structを実装
- (2023/10/15)39: アロー演算子を実装
- (2023/10/17)40: void型の実装
- (2023/10/26)41: 文字定数の拡張表記の実装
- (2023/10/28)42: struct実装(関数の引数、戻り値)
- (2023/10/29)43: 空文
- (2023/11/01)44: プロトタイプ宣言実装
- (2023/11/07)45: 負の数実装
- (2023/11/07)46: 2kmccコンパイル完了
- (2024/02/21)47: switch文
- 48: break文
- 49: continue文