flex の森を抜けた

いろいろ細かいバグ修正。

  • #\# が read できない
  • @ が read できない
  • |hoge hage| 形式の symbol が read できない
  • 謎のタイミングでシンボルが書き換わる。
    • これは Symbol::intern に local pointer を渡すミスをしていたため
    • 二度と起きないようにする。もしも local pointer を渡したことにより内容が変わっていたら ASSERT で引っかかるようにした。
  • 謎のタイミングで Symbol オブジェクトのインスタンスがおかしくなる
    • 型変換ミス
      • 型変換ミスにすぐに気づける仕組みを実装
    • gc のバグを疑ってしまった

これでおそらくパーサを入れ替えられる。