S式コメントアウト #; の入れ子

id:leque さんから指摘のあった問題。

(display #;#;1 2 3) (newline)

3 が表示されるべき。


Reader.y で以下のように datum を定義して yyparse の結果に Ignore が現れたらもう一度 yyparse していたのだけどどうしたものか。うまい方法ないかなあ。

datum          : lexme_datum
               | compound_datum
               | DATUM_COMMENT lexme_datum { $$ = Object::Ignore; }
               | DATUM_COMMENT compound_datum { $$ = Object::Ignore; }
               ;