意味解析器の単体テストを実装したい

今、実装出来ている単体テストは、コンパイラにソースを入力し、ILを出力させて、そのILを文字列として比較している

この方法は、字句解析器、構文解析器、意味解析器、中間表現生成器、IL生成器を通してテストをしていることになる


意味解析器の出力のテスト結果がILに変換された結果で確認されるので、期待値の表現がILの表現に依存してしまう

これは意味解析器の期待値の表現として回りくどいので嫌だ


意味解析器の出力を直接確認できないのはなぜか

意味解析器の出力は意味を表すオブジェクトだ

その意味を表すオブジェクトを文字列表現する方法がないからだ

意味を表すオブジェクトが持つ各フィールド変数値、プロパティ値を直接確認する方法をとればいいのだが、やっぱりまとめて文字列化してから期待値と比較したほうが、テストコードの見通しがよい

これは個人的な好みだろう


というわけで意味を表すオブジェクトを文字列表現する方法を模索しよう