Exemplo n.º 1
0
Arquivo: Fmin.c Projeto: hoelzl/Clicc
void Fmin(CL_FORM *base, int nargs)
{
	CL_FORM *rest_0;
	CL_FORM *local;
	rest_0 = ARG(1);
	local = ARG(nargs);
	{
		COPY(ARG(0), LOCAL(0));
		{
			CL_FORM *rest_1;
			LOAD_NIL(LOCAL(1));
			rest_1 = rest_0;
			M1_1:;
			if(NOT(REST_NOT_EMPTY(rest_1)))
			{
				LOAD_NIL(LOCAL(1));
				goto RETURN1;
			}
			{
				CL_FORM *rest_2;
				rest_2 = rest_1;
				REST_CAR(rest_2, LOCAL(1));
			}
			COPY(LOCAL(1), LOCAL(2));
			COPY(LOCAL(0), LOCAL(3));
			Flt(LOCAL(2), 2);
			if(CL_TRUEP(LOCAL(2)))
			{
				COPY(LOCAL(1), LOCAL(0));
			}
			{
				CL_FORM *rest_3;
				rest_3 = rest_1;
				rest_1 = REST_CDR(rest_3);
			}
			goto M1_1;
		}
		RETURN1:;
		COPY(LOCAL(0), ARG(0));
	}
}
Exemplo n.º 2
0
void del_pack_sym(CL_FORM *base)
{
	LOAD_SMALLFIXNUM(1, ARG(3));
	LOAD_SMALLFIXNUM(0, ARG(4));
	COPY(SYMVAL(Slisp, 0), ARG(5));	/* MOST-POSITIVE-FIXNUM */
	COPY(ARG(0), ARG(6));
	COPY(ARG(1), ARG(7));
	COPY(ARG(2), ARG(8));
	Fsvref(ARG(7));
	LOAD_NIL(ARG(8));
	LOAD_NIL(ARG(9));
	LOAD_NIL(ARG(10));
	COPY(ARG(4), ARG(11));
	COPY(ARG(5), ARG(12));
	COPY(ARG(3), ARG(13));
	LOAD_NIL(ARG(14));
	delete1(ARG(6));
	COPY(ARG(6), ARG(3));
	COPY(ARG(3), ARG(0));
	Fset_svref(ARG(0));
}
Exemplo n.º 3
0
Arquivo: lisp71.c Projeto: plops/clicc
void substitute_if_not1(CL_FORM *base)
{
	GEN_HEAPVAR(ARG(1), ARG(8));
	COPY(ARG(0), ARG(8));
	LOAD_NIL(ARG(9));
	COPY(ARG(2), ARG(10));
	COPY(ARG(3), ARG(11));
	{
		GEN_CLOSURE(array, ARG(12), 4, Z35_lambda, 2);
		COPY(ARG(1), &array[3]);
		LOAD_CLOSURE(array, ARG(12));
	}
	COPY(ARG(12), ARG(12));
	LOAD_NIL(ARG(13));
	COPY(ARG(4), ARG(14));
	COPY(ARG(5), ARG(15));
	COPY(ARG(6), ARG(16));
	COPY(ARG(7), ARG(17));
	substitute1(ARG(8));
	COPY(ARG(8), ARG(0));
}
Exemplo n.º 4
0
void Fslot_boundp(CL_FORM *base)
{
	if(CL_INSTANCEP(ARG(0)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), -1 + 1), ARG(2));
	}
	else
	{
		LOAD_SMSTR((CL_FORM *)&KClisp[238], ARG(2));	/* ~S ist not a valid argument for CLASS-OF, ~
              these have been restricted to instances of user-defined-classes. */
		COPY(ARG(0), ARG(3));
		Ferror(ARG(2), 2);
	}
	COPY(OFFSET(AR_BASE(GET_FORM(ARG(2))), 3 + 1), ARG(2));
	COPY(ARG(1), ARG(3));
	COPY(ARG(2), ARG(4));
	LOAD_SYMBOL(SYMBOL(Slisp, 209), ARG(5));	/* KEY */
	LOAD_GLOBFUN(&CFthird, ARG(6));
	Fposition(ARG(3), 4);
	if(CL_TRUEP(ARG(3)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), GET_FIXNUM(ARG(3)) + 1), ARG(4));
		LOAD_BOOL(CL_UNBOUNDP(ARG(4)), ARG(4));
		if(CL_TRUEP(ARG(4)))
		{
			LOAD_NIL(ARG(0));
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(0));	/* T */
		}
	}
	else
	{
		if(CL_INSTANCEP(ARG(0)))
		{
			COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), -1 + 1), ARG(4));
		}
		else
		{
			LOAD_SMSTR((CL_FORM *)&KClisp[238], ARG(4));	/* ~S ist not a valid argument for CLASS-OF, ~
              these have been restricted to instances of user-defined-classes. */
			COPY(ARG(0), ARG(5));
			Ferror(ARG(4), 2);
		}
		LOAD_SMSTR((CL_FORM *)&KClisp[234], ARG(5));	/* ~S: The slot ~s is missing from the object ~s of class ~s. */
		LOAD_SYMBOL(SYMBOL(Slisp, 201), ARG(6));	/* SLOT-BOUNDP */
		COPY(ARG(1), ARG(7));
		COPY(ARG(0), ARG(8));
		COPY(ARG(4), ARG(9));
		Ferror(ARG(5), 5);
	}
}
Exemplo n.º 5
0
void rt_simple_assoc(CL_FORM *base)
{
	LOAD_NIL(ARG(2));
	COPY(ARG(1), ARG(3));
	M1_1:;
	if(CL_ATOMP(ARG(3)))
	{
		LOAD_NIL(ARG(2));
		COPY(ARG(2), ARG(0));
		goto RETURN1;
	}
	COPY(ARG(3), ARG(4));
	COPY(GET_CAR(ARG(4)), ARG(2));
	if(CL_CONSP(ARG(2)))
	{
		COPY(GET_CAR(ARG(2)), ARG(5));
	}
	else
	{
		if(CL_TRUEP(ARG(2)))
		{
			LOAD_SMSTR((CL_FORM *)&KClisp[264], ARG(5));	/* ~a is not a list */
			COPY(ARG(2), ARG(6));
			Ferror(ARG(5), 2);
		}
		else
		{
			COPY(ARG(2), ARG(5));
		}
	}
	if(EQ(ARG(0), ARG(5)))
	{
		COPY(ARG(2), ARG(0));
		goto RETURN1;
	}
	COPY(ARG(3), ARG(4));
	COPY(GET_CDR(ARG(4)), ARG(3));
	goto M1_1;
	RETURN1:;
}
Exemplo n.º 6
0
void Fpathname(CL_FORM *base)
{
	COPY(ARG(0), ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 234), ARG(2));	/* PATHNAME */
	rt_struct_typep(ARG(1));
	if(CL_TRUEP(ARG(1)))
	{
		COPY(ARG(0), ARG(1));
	}
	else
	{
		COPY(ARG(0), ARG(1));
		Fstringp(ARG(1));
		if(CL_TRUEP(ARG(1)))
		{
			COPY(ARG(0), ARG(1));
			LOAD_NIL(ARG(2));
			COPY(SYMVAL(Slisp, 233), ARG(3));	/* *DEFAULT-PATHNAME-DEFAULTS* */
			LOAD_FIXNUM(ARG(4), 0, ARG(4));
			LOAD_NIL(ARG(5));
			LOAD_NIL(ARG(6));
			parse_namestring1(ARG(1));
			mv_count = 1;
		}
		else
		{
			COPY(ARG(0), ARG(1));
			LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(2));	/* STREAM */
			rt_struct_typep(ARG(1));
			if(CL_TRUEP(ARG(1)))
			{
				COPY(ARG(0), ARG(1));
				LOAD_NIL(ARG(2));
				file_name1(ARG(1));
				COPY(SYMVAL(Slisp, 233), ARG(2));	/* *DEFAULT-PATHNAME-DEFAULTS* */
				COPY(ARG(1), ARG(3));
				LOAD_NIL(ARG(4));
				COPY(ARG(2), ARG(5));
				LOAD_FIXNUM(ARG(6), 0, ARG(6));
				LOAD_NIL(ARG(7));
				LOAD_NIL(ARG(8));
				parse_namestring1(ARG(3));
				mv_count = 1;
				COPY(ARG(3), ARG(1));
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&KClisp[130], ARG(1));	/* etypecase: the value ~a is not a legal value */
				COPY(ARG(0), ARG(2));
				Ferror(ARG(1), 2);
			}
		}
	}
	COPY(ARG(1), ARG(0));
}
Exemplo n.º 7
0
void Fposition(CL_FORM *base, int nargs)
{
	CL_FORM *rest_0;
	CL_FORM *local;
	rest_0 = ARG(2);
	local = ARG(nargs);
	if(CL_TRUEP(ARG(1)))
	{
		if(CL_CONSP(ARG(1)))
		{
			LOAD_GLOBFUN(&Clist_position, LOCAL(0));
			COPY(ARG(0), LOCAL(1));
			COPY(ARG(1), LOCAL(2));
			REST_APPLY(LOCAL(0), 3, rest_0);
			COPY(LOCAL(0), ARG(0));
		}
		else
		{
			LOAD_BOOL(CL_SMVECP(ARG(1)), LOCAL(0));
			if(CL_TRUEP(LOCAL(0)))
			{
				goto THEN1;
			}
			else
			{
				COPY(ARG(1), LOCAL(1));
				LOAD_SYMBOL(SYMBOL(Slisp, 150), LOCAL(2));	/* COMPLEX-VECTOR */
				rt_struct_typep(LOCAL(1));
			}
			if(CL_TRUEP(LOCAL(1)))
			{
				THEN1:;
				LOAD_GLOBFUN(&Cvector_position, LOCAL(0));
				COPY(ARG(0), LOCAL(1));
				COPY(ARG(1), LOCAL(2));
				REST_APPLY(LOCAL(0), 3, rest_0);
				COPY(LOCAL(0), ARG(0));
			}
			else
			{
				COPY(SYMVAL(Slisp, 58), LOCAL(0));	/* WRONG_TYPE */
				COPY(ARG(1), LOCAL(1));
				LOAD_SYMBOL(SYMBOL(Slisp, 36), LOCAL(2));	/* SEQUENCE */
				Ferror(LOCAL(0), 3);
			}
		}
	}
	else
	{
		LOAD_NIL(ARG(0));
	}
}
Exemplo n.º 8
0
void rt_do_external_symbols_iterator(CL_FORM *base)
{
	COPY(ARG(1), ARG(2));
	Ppackage_external(ARG(2));
	COPY(SYMVAL(Slisp, 372), ARG(3));	/* PACKAGE-HASHTAB-SIZE */
	LOAD_SMALLFIXNUM(0, ARG(4));
	M1_1:;
	COPY(ARG(4), ARG(5));
	COPY(ARG(3), ARG(6));
	Fge(ARG(5), 2);
	if(CL_TRUEP(ARG(5)))
	{
		LOAD_NIL(ARG(0));
		goto RETURN1;
	}
	LOAD_NIL(ARG(5));
	COPY(ARG(2), ARG(6));
	COPY(ARG(4), ARG(7));
	Fsvref(ARG(6));
	M2_1:;
	if(CL_ATOMP(ARG(6)))
	{
		LOAD_NIL(ARG(5));
		goto RETURN2;
	}
	COPY(ARG(6), ARG(7));
	COPY(GET_CAR(ARG(7)), ARG(5));
	COPY(ARG(0), ARG(7));
	COPY(ARG(5), ARG(8));
	Ffuncall(ARG(7), 2);
	mv_count = 1;
	COPY(ARG(6), ARG(7));
	COPY(GET_CDR(ARG(7)), ARG(6));
	goto M2_1;
	RETURN2:;
	F1plus(ARG(4));
	goto M1_1;
	RETURN1:;
}
Exemplo n.º 9
0
void Ffresh_line(CL_FORM *base, int nargs)
{
	switch(nargs)
	{
		case 0:
		LOAD_NIL(ARG(0));
		case 1:
		break;
		default:
		Labort(TOO_MANY_ARGS);
	}
	fresh_line1(ARG(0));
}
Exemplo n.º 10
0
void list_find(CL_FORM *base, int nargs)
{
	BOOL supl_flags[6];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 294),	/* FROM-END */
		SYMBOL(Slisp, 282),	/* TEST */
		SYMBOL(Slisp, 550),	/* TEST-NOT */
		SYMBOL(Slisp, 231),	/* START */
		SYMBOL(Slisp, 232),	/* END */
		SYMBOL(Slisp, 209),	/* KEY */
	};
	keysort(ARG(2), nargs - 2, 6, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_NIL(ARG(2));
	}
	if(NOT(supl_flags[1]))
	{
		LOAD_NIL(ARG(3));
	}
	if(NOT(supl_flags[2]))
	{
		LOAD_NIL(ARG(4));
	}
	if(NOT(supl_flags[3]))
	{
		LOAD_FIXNUM(ARG(8), 0, ARG(5));
	}
	if(NOT(supl_flags[4]))
	{
		LOAD_NIL(ARG(6));
	}
	if(NOT(supl_flags[5]))
	{
		LOAD_GLOBFUN(&CFidentity, ARG(7));
	}
	list_find1(ARG(0));
}
Exemplo n.º 11
0
void rt_check_simple_array(CL_FORM *base)
{
	COPY(ARG(0), ARG(3));
	Fsimple_array_p(ARG(3));
	if(CL_TRUEP(ARG(3)))
	{
		check_array_internal(ARG(0));
	}
	else
	{
		LOAD_NIL(ARG(0));
	}
}
Exemplo n.º 12
0
Arquivo: Fgetf.c Projeto: hoelzl/Clicc
void Fgetf(CL_FORM *base, int nargs)
{
	switch(nargs)
	{
		case 2:
		LOAD_NIL(ARG(2));
		case 3:
		break;
		default:
		Labort(TOO_MANY_ARGS);
	}
	getf1(ARG(0));
}
Exemplo n.º 13
0
Arquivo: Ffind.c Projeto: plops/clicc
void Ffind(CL_FORM *base, int nargs)
{
	BOOL supl_flags[6];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 284),	/* FROM-END */
		SYMBOL(Slisp, 272),	/* TEST */
		SYMBOL(Slisp, 553),	/* TEST-NOT */
		SYMBOL(Slisp, 229),	/* START */
		SYMBOL(Slisp, 230),	/* END */
		SYMBOL(Slisp, 207),	/* KEY */
	};
	keysort(ARG(2), nargs - 2, 6, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_NIL(ARG(2));
	}
	if(NOT(supl_flags[1]))
	{
		LOAD_NIL(ARG(3));
	}
	if(NOT(supl_flags[2]))
	{
		LOAD_NIL(ARG(4));
	}
	if(NOT(supl_flags[3]))
	{
		LOAD_SMALLFIXNUM(0, ARG(5));
	}
	if(NOT(supl_flags[4]))
	{
		COPY(SYMVAL(Slisp, 0), ARG(6));	/* MOST-POSITIVE-FIXNUM */
	}
	if(NOT(supl_flags[5]))
	{
		LOAD_NIL(ARG(7));
	}
	find1(ARG(0));
}
Exemplo n.º 14
0
void Fkeywordp(CL_FORM *base)
{
	if(CL_SYMBOLP(ARG(0)) || CL_NILP(ARG(0)))
	{
		COPY(ARG(0), ARG(1));
		Fsymbol_package(ARG(1));
		LOAD_BOOL(EQ(ARG(1), SYMVAL(Slisp, 380)), ARG(0));	/* *KEYWORD-PACKAGE* */
	}
	else
	{
		LOAD_NIL(ARG(0));
	}
}
Exemplo n.º 15
0
static void Z114_lambda(CL_FORM *base)
{
	if(CL_SMSTRP(ARG(0)))
	{
		if(CL_SMSTRP(ARG(1)))
		{
			LOAD_FIXNUM(ARG(2), 0, ARG(2));
			LOAD_NIL(ARG(3));
			LOAD_FIXNUM(ARG(4), 0, ARG(4));
			LOAD_NIL(ARG(5));
			stringE1(ARG(0));
		}
		else
		{
			LOAD_NIL(ARG(0));
		}
	}
	else
	{
		if(CL_CONSP(ARG(0)))
		{
			if(CL_CONSP(ARG(1)))
			{
				COPY(GET_CAR(ARG(0)), ARG(2));
				COPY(GET_CAR(ARG(1)), ARG(3));
				if(EQ(ARG(2), ARG(3)))
				{
					COPY(GET_CDR(ARG(0)), ARG(2));
					COPY(GET_CDR(ARG(1)), ARG(3));
					COPY(ARG(2), ARG(0));
					COPY(ARG(3), ARG(1));
					LOAD_FIXNUM(ARG(2), 0, ARG(2));
					LOAD_NIL(ARG(3));
					LOAD_FIXNUM(ARG(4), 0, ARG(4));
					LOAD_NIL(ARG(5));
					stringE1(ARG(0));
				}
				else
				{
					LOAD_NIL(ARG(0));
				}
			}
			else
			{
				LOAD_NIL(ARG(0));
			}
		}
		else
		{
			LOAD_BOOL(EQ(ARG(0), ARG(1)), ARG(0));
		}
	}
}
Exemplo n.º 16
0
void Fmake_concatenated_stream(CL_FORM *base, int nargs)
{
	Flist(ARG(0), nargs - 0);
	GEN_HEAPVAR(ARG(0), ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 95), ARG(1));	/* CONCATENATED */
	{
		GEN_CLOSURE(array, ARG(2), 4, Z87_readc, 0);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(2));
	}
	COPY(ARG(2), ARG(2));
	{
		GEN_CLOSURE(array, ARG(3), 4, Z86_lambda, 1);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(3));
	}
	COPY(ARG(3), ARG(3));
	LOAD_GLOBFUN(&Cclose1, ARG(4));
	LOAD_NIL(ARG(5));
	LOAD_GLOBFUN(&Cundef_stream_op, ARG(6));
	LOAD_GLOBFUN(&Cnil_fun, ARG(7));
	LOAD_GLOBFUN(&Cnil_fun, ARG(8));
	LOAD_GLOBFUN(&Cundef_stream_op, ARG(9));
	LOAD_GLOBFUN(&Cundef_stream_op, ARG(10));
	LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(11));	/* STREAM */
	COPY(ARG(1), ARG(12));
	LOAD_NIL(ARG(13));
	COPY(ARG(2), ARG(14));
	COPY(ARG(3), ARG(15));
	LOAD_GLOBFUN(&Cundef_stream_op, ARG(16));
	LOAD_GLOBFUN(&Cnil_fun, ARG(17));
	LOAD_GLOBFUN(&Cnil_fun, ARG(18));
	LOAD_GLOBFUN(&Cundef_stream_op, ARG(19));
	LOAD_GLOBFUN(&Cundef_stream_op, ARG(20));
	LOAD_GLOBFUN(&Cclose1, ARG(21));
	rt_make_struct(ARG(11), 11);
	COPY(ARG(11), ARG(0));
}
Exemplo n.º 17
0
void Fnsubst_if(CL_FORM *base, int nargs)
{
	BOOL supl_flags[1];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 209),	/* KEY */
	};
	keysort(ARG(3), nargs - 3, 1, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_NIL(ARG(3));
	}
	nsubst_if1(ARG(0));
}
Exemplo n.º 18
0
void Fassoc_if_not(CL_FORM *base, int nargs)
{
	BOOL supl_flags[1];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 209),	/* KEY */
	};
	keysort(ARG(2), nargs - 2, 1, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_NIL(ARG(2));
	}
	assoc_if_not1(ARG(0));
}
Exemplo n.º 19
0
Arquivo: Fclose.c Projeto: plops/clicc
void Fclose(CL_FORM *base, int nargs)
{
	BOOL supl_flags[1];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 104),	/* ABORT */
	};
	keysort(ARG(1), nargs - 1, 1, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_NIL(ARG(1));
	}
	close2(ARG(0));
}
Exemplo n.º 20
0
void pairlis1(CL_FORM *base)
{
	M1_1:;
	if(CL_ATOMP(ARG(0)))
	{
		if(CL_ATOMP(ARG(1)))
		{
			COPY(ARG(2), ARG(0));
			goto RETURN1;
		}
		else
		{
			goto M1_2;
		}
	}
	else
	{
		if(CL_ATOMP(ARG(1)))
		{
			goto M1_2;
		}
		else
		{
			COPY(ARG(0), ARG(3));
			COPY(ARG(3), ARG(4));
			COPY(GET_CAR(ARG(4)), ARG(3));
			COPY(ARG(1), ARG(4));
			COPY(ARG(4), ARG(5));
			COPY(GET_CAR(ARG(5)), ARG(4));
			COPY(ARG(2), ARG(5));
			ALLOC_CONS(ARG(8), ARG(3), ARG(4), ARG(6));
			ALLOC_CONS(ARG(8), ARG(6), ARG(5), ARG(2));
			COPY(GET_CAR(ARG(0)), ARG(3));
			COPY(ARG(0), ARG(4));
			COPY(ARG(4), ARG(5));
			COPY(GET_CDR(ARG(5)), ARG(0));
			COPY(GET_CAR(ARG(1)), ARG(3));
			COPY(ARG(1), ARG(4));
			COPY(ARG(4), ARG(5));
			COPY(GET_CDR(ARG(5)), ARG(1));
		}
	}
	goto M1_1;
	M1_2:;
	LOAD_SMSTR((CL_FORM *)&Kpairlis1[0], ARG(3));	/* The lists of keys and data are of unequal length. */
	Ferror(ARG(3), 1);
	LOAD_NIL(ARG(0));
	RETURN1:;
}
Exemplo n.º 21
0
void Fin_package(CL_FORM *base, int nargs)
{
	BOOL supl_flags[2];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 383),	/* NICKNAMES */
		SYMBOL(Slisp, 391),	/* USE */
	};
	keysort(ARG(1), nargs - 1, 2, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_NIL(ARG(1));
	}
	if(NOT(supl_flags[1]))
	{
		LOAD_NIL(ARG(2));
		LOAD_NIL(ARG(3));
	}
	else
	{
		LOAD_T(ARG(3));
	}
	in_package1(ARG(0));
}
Exemplo n.º 22
0
void Fmake_dispatch_macro_character(CL_FORM *base, int nargs)
{
	switch(nargs)
	{
		case 1:
		LOAD_NIL(ARG(1));
		case 2:
		COPY(SYMVAL(Slisp, 449), ARG(2));	/* *READTABLE* */
		case 3:
		break;
		default:
		Labort(TOO_MANY_ARGS);
	}
	make_dispatch_macro_character1(ARG(0));
}
Exemplo n.º 23
0
Arquivo: lisp71.c Projeto: plops/clicc
static void Z35_lambda(CL_FORM *base)
{
	COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(3));
	COPY(ARG(2), ARG(4));
	Ffuncall(ARG(3), 2);
	mv_count = 1;
	if(CL_TRUEP(ARG(3)))
	{
		LOAD_NIL(ARG(0));
	}
	else
	{
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(0));	/* T */
	}
}
Exemplo n.º 24
0
void Fsubst(CL_FORM *base, int nargs)
{
	BOOL supl_flags[3];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 282),	/* TEST */
		SYMBOL(Slisp, 550),	/* TEST-NOT */
		SYMBOL(Slisp, 209),	/* KEY */
	};
	keysort(ARG(3), nargs - 3, 3, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_NIL(ARG(3));
	}
	if(NOT(supl_flags[1]))
	{
		LOAD_NIL(ARG(4));
	}
	if(NOT(supl_flags[2]))
	{
		LOAD_NIL(ARG(5));
	}
	subst1(ARG(0));
}
Exemplo n.º 25
0
static void Z130_mapcon_internal(CL_FORM *base, CL_FORM *display[])
{
	CONTENV new_cont;
	CL_FORM *caller_base;
	new_cont.bind_top = bind_top;
	new_cont.last = last_cont;
	LOAD_UNIQUE_TAG(ARG(0));
	caller_base = (CL_FORM *)SETJMP(new_cont.jmp_buf);
	if(caller_base == NULL)
	{
		last_cont = &new_cont;
		if(CL_ATOMP(&display[0][1]))
		{
			LOAD_NIL(ARG(0));
		}
		else
		{
			COPY(&display[0][0], ARG(1));
			COPY(&display[0][1], ARG(2));
			COPY(GET_CAR(&display[0][1]), ARG(3));
			COPY(&display[0][1], ARG(4));
			COPY(ARG(4), ARG(5));
			COPY(GET_CDR(ARG(5)), &display[0][1]);
			COPY(&display[0][2], ARG(3));
			display[1] = ARG(0);
			Z131_get_rest_args(ARG(3), display);
			Fapply(ARG(1), 3);
			mv_count = 1;
			Z130_mapcon_internal(ARG(2), display);
			Fnconc(ARG(1), 2);
			COPY(ARG(1), ARG(0));
		}
		RETURN1:;
		last_cont = new_cont.last;
	}
	else
	{
		last_cont = new_cont.last;
		if(EQ(STACK(caller_base, 0), ARG(0)))
		{
			COPY(STACK(caller_base, 1), ARG(0));
		}
		else
		{
			call_cont(caller_base);
		}
	}
}
Exemplo n.º 26
0
void string_to_simple_string(CL_FORM *base)
{
	if(CL_SMSTRP(ARG(0)))
	{
	}
	else
	{
		COPY(ARG(0), ARG(1));
		Fstringp(ARG(1));
		if(CL_TRUEP(ARG(1)))
		{
			COPY(ARG(0), ARG(1));
			complex_vector_displaced(ARG(1));
			Fminusp(ARG(1));
			if(CL_TRUEP(ARG(1)))
			{
				COPY(ARG(0), ARG(1));
				complex_vector_fillptr(ARG(1));
				Fminusp(ARG(1));
			}
			else
			{
				goto ELSE1;
			}
			if(CL_TRUEP(ARG(1)))
			{
				complex_vector_data(ARG(0));
			}
			else
			{
				ELSE1:;
				LOAD_FIXNUM(ARG(1), 0, ARG(1));
				LOAD_NIL(ARG(2));
				subseq1(ARG(0));
			}
		}
		else
		{
			COPY(SYMVAL(Slisp, 58), ARG(1));	/* WRONG_TYPE */
			COPY(ARG(0), ARG(2));
			LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(3));	/* STRING */
			Ferror(ARG(1), 3);
		}
	}
}
Exemplo n.º 27
0
void Fnstring_capitalize(CL_FORM *base, int nargs)
{
	BOOL supl_flags[2];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 229),	/* START */
		SYMBOL(Slisp, 230),	/* END */
	};
	keysort(ARG(1), nargs - 1, 2, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_SMALLFIXNUM(0, ARG(1));
	}
	if(NOT(supl_flags[1]))
	{
		LOAD_NIL(ARG(2));
	}
	nstring_capitalize1(ARG(0));
}
Exemplo n.º 28
0
Arquivo: Fsome.c Projeto: hoelzl/Clicc
void Fsome(CL_FORM *base, int nargs)
{
	Flist(ARG(2), nargs - 2);
	ALLOC_CONS(ARG(5), ARG(1), ARG(2), ARG(2));
	LOAD_GLOBFUN(&CFmin, ARG(3));
	LOAD_GLOBFUN(&CFlength, ARG(4));
	COPY(ARG(2), ARG(5));
	Fmapcar(ARG(4), 2);
	Fapply(ARG(3), 2);
	mv_count = 1;
	LOAD_FIXNUM(ARG(4), 0, ARG(4));
	GEN_HEAPVAR(ARG(4), ARG(5));
	{
		GEN_CLOSURE(array, ARG(5), 4, Z147_get_elem, 1);
		COPY(ARG(4), &array[3]);
		LOAD_CLOSURE(array, ARG(5));
	}
	M1_1:;
	COPY(INDIRECT(ARG(4)), ARG(6));
	COPY(ARG(3), ARG(7));
	Fge(ARG(6), 2);
	if(CL_TRUEP(ARG(6)))
	{
		LOAD_NIL(ARG(0));
		goto RETURN1;
	}
	COPY(ARG(0), ARG(6));
	COPY(ARG(5), ARG(7));
	COPY(ARG(2), ARG(8));
	Fmaplist(ARG(7), 2);
	Fapply(ARG(6), 2);
	mv_count = 1;
	if(CL_TRUEP(ARG(6)))
	{
		COPY(ARG(6), ARG(0));
		goto RETURN1;
	}
	COPY(INDIRECT(ARG(4)), ARG(6));
	F1plus(ARG(6));
	COPY(ARG(6), INDIRECT(ARG(4)));
	goto M1_1;
	RETURN1:;
}
Exemplo n.º 29
0
Arquivo: Ffill.c Projeto: hoelzl/Clicc
void Ffill(CL_FORM *base, int nargs)
{
    BOOL supl_flags[2];
    static CL_FORM * keylist[] =
    {
        SYMBOL(Slisp, 231),	/* START */
        SYMBOL(Slisp, 232),	/* END */
    };
    keysort(ARG(2), nargs - 2, 2, keylist, supl_flags, FALSE);
    if(NOT(supl_flags[0]))
    {
        LOAD_FIXNUM(ARG(4), 0, ARG(2));
    }
    if(NOT(supl_flags[1]))
    {
        LOAD_NIL(ARG(3));
    }
    fill1(ARG(0));
}
Exemplo n.º 30
0
void fresh_line1(CL_FORM *base)
{
	if(CL_TRUEP(ARG(0)))
	{
		if(CL_SYMBOLP(ARG(0)) && GET_SYMBOL(ARG(0)) == SYMBOL(Slisp, 48))	/* T */
		{
			COPY(SYMVAL(Slisp, 59), ARG(0));	/* *TERMINAL-IO* */
		}
	}
	else
	{
		COPY(SYMVAL(Slisp, 61), ARG(0));	/* *STANDARD-OUTPUT* */
	}
	COPY(ARG(0), ARG(1));
	COPY(ARG(1), ARG(2));
	COPY(ARG(2), ARG(3));
	LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(4));	/* STREAM */
	rt_struct_typep(ARG(3));
	if(CL_TRUEP(ARG(3)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(2))), 5 + 1), ARG(1));
	}
	else
	{
		COPY(SYMVAL(Slisp, 352), ARG(1));	/* NO_STRUCT */
		LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(3));	/* STREAM */
		Ferror(ARG(1), 3);
	}
	Ffuncall(ARG(1), 1);
	mv_count = 1;
	if(CL_FIXNUMP(ARG(1)) && GET_FIXNUM(ARG(1)) == 0)
	{
		LOAD_NIL(ARG(0));
	}
	else
	{
		LOAD_CHAR(ARG(1), '\n', ARG(1));
		COPY(ARG(0), ARG(2));
		write_char1(ARG(1));
		COPY(ARG(1), ARG(0));
	}
}