コンパイラ作成(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_r = codegen_el [el[2]]

codegen_elを呼ぶ前にチェックをするように修正。

動作テスト
~/myc$ myc err42.myc
err42.myc:5:8 error: broken expression
~/myc$

大丈夫だね。今回は一個しかチェックできなかったよ。二回続けてエラーチェックまわりをやったけど、次回はdouble型関連に戻るかな。