switch (argsNode.size()) {
case 1:
return new AttrAssignOneArgNode(position, receiver, name, argsNode);
case 2:
return new AttrAssignTwoArgNode(position, receiver, name, argsNode);
case 3:
return new AttrAssignThreeArgNode(position, receiver, name, argsNode);
default:
return new AttrAssignNode(position, receiver, name, argsNode);
}