return new CallTwoArgNode(position(receiver, args), receiver, (String) name.getValue(), args);
case 3:
if (iter != null) return new CallThreeArgBlockNode(position(receiver, args), receiver, (String) name.getValue(), args, (IterNode) iter);
return new CallThreeArgNode(position(receiver, args), receiver, (String) name.getValue(), args);
default:
if (iter != null) return new CallManyArgsBlockNode(position(receiver, args), receiver, (String) name.getValue(), args, (IterNode) iter);
return new CallManyArgsNode(position(receiver, args), receiver, (String) name.getValue(), args);
}