2019-07-03から1日間の記事一覧

コンパイラ作成(90) ネストした関数呼出

今回の目標 double型引数の関数呼出が入子になってる場合に対応するよ。 // double型 double dadd(double a, double b) { printf("dadd: %f %f\n", a, b); return a + b; } int main() { double x = 12.3, y = -2.8; printf("%f %f %f\n", x, y, dadd(5.4, 3…

コンパイラ作成(89) 式のエラーチェック

今回の目標 前回に続きエラーチェック。 // 壊れてる式 int main() { int i; i = ; } 壊れた代入。 codegen_assign # 代入のコード生成 def codegen_assign(el) if el.size != 3 then perror end if el[2] == nil then perror "broken expression" end type_…