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