Exemplo n.º 1
0
void FFI_c_float(CL_FORM *base)
{
	if(CL_FLOATP(ARG(0)))
	{
		rt_make_c_float(ARG(0));
	}
	else
	{
		COPY(ARG(0), ARG(1));
		c_floating_p(ARG(1));
		if(CL_TRUEP(ARG(1)))
		{
			rt_cast_c_float(ARG(0));
		}
		else
		{
			LOAD_SMSTR((CL_FORM *)&KClisp[18], ARG(1));	/* C-FLOAT */
			COPY(SYMVAL(Slisp, 714), ARG(2));	/* NO-FLOAT */
			COPY(ARG(0), ARG(3));
			error_in(ARG(1), 3);
		}
	}
}
Exemplo n.º 2
0
void FFI_c_float(CL_FORM *base)
{
	if(CL_FLOATP(ARG(0)))
	{
		rt_make_c_float(ARG(0));
	}
	else
	{
		COPY(ARG(0), ARG(1));
		FFI_c_float_p(ARG(1));
		if(CL_TRUEP(ARG(1)))
		{
			rt_cast_c_float(ARG(0));
		}
		else
		{
			LOAD_SMSTR((CL_FORM *)&KClisp[30], ARG(1));	/* C-FLOAT */
			LOAD_SMSTR((CL_FORM *)&KClisp[28], ARG(2));	/* The evaluated value ~S is not of type float. */
			COPY(ARG(0), ARG(3));
			error_in(ARG(1), 3);
		}
	}
}