final Int first = intExpr.child(0).accept(this);
final Int[] rest = new Int[intExpr.size()-1];
for(int i = 0; i < rest.length; i++) { rest[i] = intExpr.child(i+1).accept(this); }
switch(intExpr.op()) {
case PLUS : ret = first.plus(rest); break;
case MULTIPLY : ret = first.multiply(rest); break;
case AND : ret = first.and(rest); break;
case OR : ret = first.or(rest); break;
default :
throw new IllegalArgumentException("Unknown nary operator: " + intExpr.op());
}