switch (args.size()) {
case 0:
return new ZYieldNode(position);
case 1:
return new YieldOneNode(position, args);
case 2:
return new YieldTwoNode(position, args);
case 3:
return new YieldThreeNode(position, args);
}
}
if (node instanceof FixnumNode) {
return new YieldOneNode(position, (FixnumNode) node);
}
return new YieldNode(position, node, state);
}