if (args == null) return new_fcall_noargs(operation, (IterNode) iter);
if (args instanceof ArrayNode) return new_fcall_simpleargs(operation, (ArrayNode) args, iter);
if (args instanceof BlockPassNode) {
if (iter == null) return new_fcall_blockpass(operation, (BlockPassNode) args);
throw new SyntaxException(PID.BLOCK_ARG_AND_BLOCK_GIVEN, iter.getPosition(),
lexer.getCurrentLine(), "Both block arg and actual block given.");
}
return new FCallSpecialArgNode(position(operation, args), (String) operation.getValue(), args);
}