AST/Eclipseのはまった点

InfixExpression#extendedOperands()

同じ演算子で3項以上続く場合(a + b + cなど)、第3項以降がextendedOperandsに格納されて1つのInfixExpressionとして表現されるみたい。5月のデモのときにも「+が2個以上続くと消えます」と申し添えておきましたが、こんな単純な理由だとは思いませんでした。

いやしかし、この実装はどうなんでしょうかねぇ。
a1 + ... + an みたいなノードを作る際、確かに上記だと深さ2のツリーになるのに対し、2項演算の連続と判断すると深さnのツリーが出来上がってしまいます。でも、追加属性で保存しておくと3項目以降が無視されるバグを生む可能性があります。クエリでマッチさせにくいし。

Visitorパターン使っている関係で、StackOverflowを見かけたら対応することにします。という備忘録。