第一回事前課題では、数字と二項演算子のみからなるexpressionをコンパイルし、オブジェクトファイルを得ました。第二回事前課題では、関数定義と関数呼び出しを実装し、C++のmain関数とMC言語で生成したオブジェクトファイルをリンクし、ELFファイルを作り実行します。
lexer.h
のTODO 2.1
に詳細が書いてあり、これを終えるとtest1.mc
が正常にコンパイルできるようになります。
parser.h
のTODO 2.2
に詳細が書いてあります。
parser.h
のTODO 2.3
に詳細が書いてあります。2.2, 2.3を終えるとtest2.mc
が正常にコンパイルできるようになります。
codegen.h
のTODO 2.4
に詳細が書いてあり、これを終えるとtest3.mc
が正常にコンパイルできるようになります。
codegen.h
のTODO 2.5
に詳細が書いてあり、これを終えるとtest4.mc
が正常にコンパイルできるようになります。
main.cpp
というファイルを用いてMC言語で作られたオブジェクトファイルにリンクし、main関数から実行結果を表示します。
./mc test/test4.mc
clang++ main.cpp output.o -o main
./main
main関数内のcoutにより正常に結果が表示されていれば大丈夫です。
課題は以上になります。お疲れ様でした!