加算演算子はNode型の子を持つように変更しました。そして、自身の評価の前に子を評価しています。これで無事に複数個の足し算が可能になります(キャストがダサいですが、一旦ほっておきましょう)
加算演算子はNode型の子を持つように変更しました。そして、自身の評価の前に子を評価しています。これで無事に複数個の足し算が可能になります(キャストがダサいですが、一旦ほっておきましょう)
/** * 加算演算子です。 */ public class Add implements Node { private Node left; private Node right; public Add(Node left, Node right) { this.left = left; this.right = right; } @Override public Node evaluation() { left = left.evaluation(); right = right.evaluation(); double result = ((Numeric)left).getValue() + ((Numeric)right).getValue(); return new Numeric(result); } }