@Override
	public Fraction eval() {
		Fraction left = children[0].eval();
		Fraction right = children[1].eval();
		// リフレクションでもいい気がするけど、演算子の数が少ないのでif節にする
		// 演算子の数が増えたらテストコード込みでリフレクションを検討する
		if (operator == Operator.ADD) {
			return left.add(right);
		} else if (operator == Operator.SUBTRACT) {
			return left.subtract(right);
		} else if (operator == Operator.MULTIPLY) {
			return left.multiply(right);
		} else if (operator == Operator.DIVIDE) {
			return left.divide(right);
		}
		return null; // コンストラクタでチェックしているので、呼ばれることはない
	}