ひとり勉強会

ひとり楽しく勉強会

各ノードのコンパイル

この先はしばらく、switch文の各caseを順番に見ていきます。どの順番で読むと良いか特に妙案もありませんし、上からひたすら読んでいくとしましょう。飽きたら途中で考え直します。

まず最初の4つのケースは、コンパイルエラーだそうです。

  case NODE_METHOD:{
      /* OK */
      COMPILE_ERROR(("BUG: unknown node: NODE_METHOD"));
      break;
  }
  case NODE_FBODY:{ ...同上...
  case NODE_CFUNC:{ ...同上...
  case NODE_SCOPE:{
      /* OK */
      COMPILE_ERROR(("BUG: shouldn't reach: NODE_SCOPE"));
      break;
  }

エラーだそうなのでいつもどおり、深くは考えない方向で行きます。多少grepしてみたところ、NODE_METHOD等々はclassのclone周りのコードにだけ登場して、スクリプトから構文木を作るparse.yには出てきていませんでした。なのでYARVコンパイラでは考えなくてよい、ということかな…。