Пример #1
0
void token_push_extend(CL_FORM *base)
{
	COPY(ARG(0), ARG(1));
	COPY(SYMVAL(Slisp, 439), ARG(2));	/* *TOKEN* */
	COPY(SYMVAL(Slisp, 440), ARG(3));	/* *FILL-POINTER* */
	Fset_schar(ARG(1));
	COPY(SYMVAL(Slisp, 440), ARG(1));	/* *FILL-POINTER* */
	F1plus(ARG(1));
	COPY(ARG(1), SYMVAL(Slisp, 440));	/* *FILL-POINTER* */
	COPY(SYMVAL(Slisp, 441), ARG(2));	/* *TOKEN-LENGTH* */
	Fge(ARG(1), 2);
	if(CL_TRUEP(ARG(1)))
	{
		LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(1));	/* STRING */
		COPY(SYMVAL(Slisp, 439), ARG(2));	/* *TOKEN* */
		COPY(SYMVAL(Slisp, 442), ARG(3));	/* *TOKEN-EXTENSION* */
		LOAD_CHAR(ARG(4), ' ', ARG(4));
		make_string1(ARG(3));
		Fconcatenate(ARG(1), 3);
		COPY(ARG(1), SYMVAL(Slisp, 439));	/* *TOKEN* */
		COPY(SYMVAL(Slisp, 441), ARG(1));	/* *TOKEN-LENGTH* */
		COPY(SYMVAL(Slisp, 442), ARG(2));	/* *TOKEN-EXTENSION* */
		Fplus(ARG(1), 2);
		COPY(ARG(1), SYMVAL(Slisp, 441));	/* *TOKEN-LENGTH* */
		COPY(SYMVAL(Slisp, 441), ARG(0));	/* *TOKEN-LENGTH* */
	}
	else
	{
		LOAD_NIL(ARG(0));
	}
}
Пример #2
0
void gensym1(CL_FORM *base)
{
	if(CL_TRUEP(ARG(0)))
	{
		LOAD_FIXNUM(ARG(2), 0, ARG(2));
		if(CL_FIXNUMP(ARG(0)) && GET_FIXNUM(ARG(0)) >= GET_FIXNUM(ARG(2)))
		{
			COPY(ARG(0), SYMVAL(Slisp, 662));	/* *GENSYM-COUNTER* */
		}
		else
		{
			COPY(ARG(0), ARG(1));
			Fstringp(ARG(1));
			if(CL_TRUEP(ARG(1)))
			{
				COPY(ARG(0), SYMVAL(Slisp, 674));	/* *GENSYM-PREFIX* */
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&Kgensym1[0], ARG(1));	/* positive integer or string expected */
				Ferror(ARG(1), 1);
			}
		}
	}
	LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(1));	/* STRING */
	COPY(SYMVAL(Slisp, 674), ARG(2));	/* *GENSYM-PREFIX* */
	COPY(SYMVAL(Slisp, 662), ARG(3));	/* *GENSYM-COUNTER* */
	LOAD_FIXNUM(ARG(4), 10, ARG(4));
	LOAD_SYMBOL(SYMBOL(Slisp, 18), ARG(5));	/* CHARACTER */
	LOAD_NIL(ARG(6));
	LOAD_NIL(ARG(7));
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(8));	/* T */
	LOAD_FIXNUM(ARG(9), 0, ARG(9));
	LOAD_NIL(ARG(10));
	LOAD_FIXNUM(ARG(11), 0, ARG(11));
	LOAD_NIL(ARG(12));
	LOAD_NIL(ARG(13));
	LOAD_NIL(ARG(14));
	make_array1(ARG(4));
	make_string_output_stream1(ARG(4));
	COPY(ARG(3), ARG(5));
	COPY(ARG(4), ARG(6));
	prin11(ARG(5));
	COPY(ARG(4), ARG(5));
	LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(6));	/* STREAM */
	rt_struct_typep(ARG(5));
	if(CL_TRUEP(ARG(5)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(4))), 0 + 1), ARG(5));
	}
	else
	{
		COPY(SYMVAL(Slisp, 352), ARG(5));	/* NO_STRUCT */
		COPY(ARG(4), ARG(6));
		LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(7));	/* STREAM */
		Ferror(ARG(5), 3);
	}
	if(CL_SYMBOLP(ARG(5)) && GET_SYMBOL(ARG(5)) == SYMBOL(Slisp, 102))	/* STRING-OUTPUT */
	{
	}
	else
	{
		LOAD_SMSTR((CL_FORM *)&KClisp[268], ARG(5));	/* string-output-stream expected */
		Ferror(ARG(5), 1);
	}
	COPY(ARG(4), ARG(5));
	COPY(ARG(5), ARG(6));
	COPY(ARG(6), ARG(7));
	LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(8));	/* STREAM */
	rt_struct_typep(ARG(7));
	if(CL_TRUEP(ARG(7)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(6))), 1 + 1), ARG(5));
	}
	else
	{
		COPY(SYMVAL(Slisp, 352), ARG(5));	/* NO_STRUCT */
		LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(7));	/* STREAM */
		Ferror(ARG(5), 3);
	}
	Ffuncall(ARG(5), 1);
	mv_count = 1;
	COPY(ARG(5), ARG(3));
	Fconcatenate(ARG(1), 3);
	Fmake_symbol(ARG(1));
	COPY(SYMVAL(Slisp, 662), ARG(2));	/* *GENSYM-COUNTER* */
	F1plus(ARG(2));
	COPY(ARG(2), SYMVAL(Slisp, 662));	/* *GENSYM-COUNTER* */
	COPY(ARG(1), ARG(0));
}
Пример #3
0
void Penumerate_directories(CL_FORM *base)
{
	M1_1:;
	if(CL_TRUEP(ARG(1)))
	{
		if(CL_CONSP(ARG(1)))
		{
			COPY(GET_CAR(ARG(1)), ARG(5));
		}
		else
		{
			LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(5));	/* ~a is not a list */
			COPY(ARG(1), ARG(6));
			Ferror(ARG(5), 2);
		}
		if(CL_SMSTRP(ARG(5)))
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(6));	/* STRING */
			COPY(ARG(0), ARG(7));
			COPY(ARG(5), ARG(8));
			LOAD_SMSTR((CL_FORM *)&KPenumerate_directories[0], ARG(9));	/* / */
			Fconcatenate(ARG(6), 4);
			if(CL_CONSP(ARG(1)))
			{
				COPY(GET_CDR(ARG(1)), ARG(7));
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(7));	/* ~a is not a list */
				COPY(ARG(1), ARG(8));
				Ferror(ARG(7), 2);
			}
			COPY(ARG(6), ARG(0));
			COPY(ARG(7), ARG(1));
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(3));	/* T */
			goto M1_1;
		}
		else
		{
			if(CL_SYMBOLP(ARG(5)) && GET_SYMBOL(ARG(5)) == SYMBOL(Slisp, 265))	/* UP */
			{
				LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(6));	/* STRING */
				COPY(ARG(0), ARG(7));
				LOAD_SMSTR((CL_FORM *)&KPenumerate_directories[2], ARG(8));	/* ../ */
				Fconcatenate(ARG(6), 3);
				if(CL_CONSP(ARG(1)))
				{
					COPY(GET_CDR(ARG(1)), ARG(7));
				}
				else
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(7));	/* ~a is not a list */
					COPY(ARG(1), ARG(8));
					Ferror(ARG(7), 2);
				}
				COPY(ARG(6), ARG(0));
				COPY(ARG(7), ARG(1));
				LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(3));	/* T */
				goto M1_1;
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&KPenumerate_directories[4], ARG(0));	/* etypecase: the value ~a is not a legal value */
				COPY(ARG(5), ARG(1));
				Ferror(ARG(0), 2);
			}
		}
	}
	else
	{
		COPY(ARG(2), ARG(1));
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(2));	/* T */
		COPY(ARG(4), ARG(3));
		Penumerate_files(ARG(0));
	}
	goto RETURN1;
	RETURN1:;
}
Пример #4
0
void quick_integer_to_string(CL_FORM *base)
{
	COPY(ARG(0), ARG(1));
	Fzerop(ARG(1));
	if(CL_TRUEP(ARG(1)))
	{
		LOAD_SMSTR((CL_FORM *)&Kquick_integer_to_string[0], ARG(0));	/* 0 */
	}
	else
	{
		if(CL_FIXNUMP(ARG(0)) && GET_FIXNUM(ARG(0)) == 1)
		{
			LOAD_SMSTR((CL_FORM *)&Kquick_integer_to_string[2], ARG(0));	/* 1 */
		}
		else
		{
			COPY(ARG(0), ARG(1));
			Fminusp(ARG(1));
			if(CL_TRUEP(ARG(1)))
			{
				LOAD_SYMBOL(SYMBOL(Slisp, 40), ARG(1));	/* SIMPLE-STRING */
				LOAD_SMSTR((CL_FORM *)&Kquick_integer_to_string[4], ARG(2));	/* - */
				COPY(ARG(0), ARG(3));
				Fminus(ARG(3), 1);
				quick_integer_to_string(ARG(3));
				if(CL_SMSTRP(ARG(3)))
				{
				}
				else
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[244], ARG(4));	/* type error: ~S is not of type ~S */
					COPY(ARG(3), ARG(5));
					LOAD_SYMBOL(SYMBOL(Slisp, 40), ARG(6));	/* SIMPLE-STRING */
					Ferror(ARG(4), 3);
				}
				Fconcatenate(ARG(1), 3);
				COPY(ARG(1), ARG(0));
			}
			else
			{
				COPY(ARG(0), ARG(1));
				Finteger_length(ARG(1));
				LOAD_FIXNUM(ARG(2), 3, ARG(2));
				LOAD_FIXNUM(ARG(2), 3, ARG(2));
				rt_truncate(ARG(1));
				mv_count = 1;
				F1plus(ARG(1));
				COPY(ARG(1), ARG(2));
				LOAD_CHAR(ARG(3), ' ', ARG(3));
				make_string1(ARG(2));
				COPY(ARG(1), ARG(3));
				F1minus(ARG(3));
				COPY(ARG(0), ARG(4));
				LOAD_FIXNUM(ARG(5), 0, ARG(5));
				M1_1:;
				COPY(ARG(4), ARG(6));
				Fzerop(ARG(6));
				if(CL_TRUEP(ARG(6)))
				{
					F1plus(ARG(3));
					COPY(ARG(2), ARG(6));
					COPY(ARG(2), ARG(7));
					LOAD_FIXNUM(ARG(8), 0, ARG(8));
					LOAD_NIL(ARG(9));
					COPY(ARG(3), ARG(10));
					COPY(ARG(1), ARG(11));
					replace1(ARG(6));
					COPY(ARG(2), ARG(0));
					COPY(ARG(3), ARG(2));
					Fminus(ARG(1), 2);
					shrink_simple_string(ARG(0));
					goto RETURN1;
				}
				LOAD_FIXNUM(ARG(6), 10, ARG(6));
				COPY(ARG(4), ARG(6));
				LOAD_FIXNUM(ARG(7), 10, ARG(7));
				rt_truncate(ARG(6));
				COPY(&mv_buf[0], ARG(7));
				{
					int nargs;
					nargs = 2;
					mv_count = 1;
					{
						switch(nargs)
						{
							case 0:
							LOAD_NIL(ARG(6));
							case 1:
							LOAD_NIL(ARG(7));
							nargs = 2;
						}
						COPY(ARG(6), ARG(4));
						COPY(ARG(7), ARG(5));
					}
				}
				LOAD_SMSTR((CL_FORM *)&Kquick_integer_to_string[6], ARG(6));	/* 0123456789 */
				COPY(ARG(5), ARG(7));
				pvref(ARG(6));
				COPY(ARG(6), ARG(7));
				COPY(ARG(2), ARG(8));
				COPY(ARG(3), ARG(9));
				Fset_schar(ARG(7));
				F1minus(ARG(3));
				goto M1_1;
				RETURN1:;
			}
		}
	}
}
Пример #5
0
void Penumerate_files(CL_FORM *base)
{
	COPY(ARG(1), ARG(4));
	LOAD_SYMBOL(SYMBOL(Slisp, 276), ARG(5));	/* LOCAL */
	pathname_name1(ARG(4));
	mv_count = 1;
	COPY(ARG(1), ARG(5));
	LOAD_SYMBOL(SYMBOL(Slisp, 276), ARG(6));	/* LOCAL */
	pathname_type1(ARG(5));
	mv_count = 1;
	COPY(ARG(1), ARG(6));
	Fpathname_version(ARG(6));
	if(CL_TRUEP(ARG(4)))
	{
		LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(7));	/* STRING */
		COPY(ARG(0), ARG(8));
		COPY(ARG(4), ARG(9));
		Fconcatenate(ARG(7), 3);
		if(CL_TRUEP(ARG(5)))
		{
			LOAD_NIL(ARG(8));
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(8));	/* T */
		}
		if(CL_TRUEP(ARG(8)))
		{
			goto THEN1;
		}
		else
		{
		}	/* UNSPECIFIC */
		if(CL_SYMBOLP(ARG(5)) && GET_SYMBOL(ARG(5)) == SYMBOL(Slisp, 266))
		{
			THEN1:;
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(8));	/* STRING */
			COPY(ARG(7), ARG(9));
			LOAD_SMSTR((CL_FORM *)&KPenumerate_files[0], ARG(10));	/* . */
			COPY(ARG(5), ARG(11));
			Fconcatenate(ARG(8), 4);
			COPY(ARG(8), ARG(7));
		}
		if(CL_TRUEP(ARG(6)))
		{
			LOAD_NIL(ARG(8));
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(8));	/* T */
		}
		if(CL_TRUEP(ARG(8)))
		{
			goto THEN2;
		}
		else
		{
		}	/* NEWEST */
		if(CL_SYMBOLP(ARG(6)) && GET_SYMBOL(ARG(6)) == SYMBOL(Slisp, 269))
		{
			THEN2:;
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(8));	/* STRING */
			COPY(ARG(7), ARG(9));
			LOAD_SMSTR((CL_FORM *)&KPenumerate_files[2], ARG(10));	/* . */
			COPY(ARG(6), ARG(11));
			quick_integer_to_string(ARG(11));
			Fconcatenate(ARG(8), 4);
			COPY(ARG(8), ARG(7));
		}
		LOAD_NIL(ARG(8));
		if(CL_TRUEP(ARG(8)))
		{
			goto THEN3;
		}
		else
		{
			COPY(ARG(7), ARG(9));
			LOAD_NIL(ARG(10));
			unix_file_kind1(ARG(9));
		}
		if(CL_TRUEP(ARG(9)))
		{
			THEN3:;
			COPY(ARG(3), ARG(0));
			COPY(ARG(7), ARG(1));
			Ffuncall(ARG(0), 2);
		}
		else
		{
			LOAD_NIL(ARG(0));
		}
	}
	else
	{
		LOAD_NIL(ARG(7));
		if(CL_TRUEP(ARG(7)))
		{
			goto THEN4;
		}
		else
		{
			COPY(ARG(0), ARG(8));
			LOAD_NIL(ARG(9));
			unix_file_kind1(ARG(8));
		}
		if(CL_TRUEP(ARG(8)))
		{
			THEN4:;
			COPY(ARG(3), ARG(7));
			COPY(ARG(0), ARG(8));
			Ffuncall(ARG(7), 2);
			COPY(ARG(7), ARG(0));
		}
		else
		{
			LOAD_NIL(ARG(0));
		}
	}
}
Пример #6
0
void Fcoerce(CL_FORM *base)
{
	if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 28))	/* LIST */
	{
		if(CL_LISTP(ARG(0)))
		{
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 28), ARG(2));	/* LIST */
			COPY(ARG(0), ARG(3));
			Fconcatenate(ARG(2), 2);
			COPY(ARG(2), ARG(0));
		}
	}
	else
	{
		if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 40))	/* SIMPLE-STRING */
		{
			if(CL_SMSTRP(ARG(0)))
			{
			}
			else
			{
				LOAD_SYMBOL(SYMBOL(Slisp, 40), ARG(2));	/* SIMPLE-STRING */
				COPY(ARG(0), ARG(3));
				Fconcatenate(ARG(2), 2);
				COPY(ARG(2), ARG(0));
			}
		}
		else
		{
			if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 44))	/* STRING */
			{
				COPY(ARG(0), ARG(2));
				Fstringp(ARG(2));
				if(CL_TRUEP(ARG(2)))
				{
				}
				else
				{
					LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(2));	/* STRING */
					COPY(ARG(0), ARG(3));
					Fconcatenate(ARG(2), 2);
					COPY(ARG(2), ARG(0));
				}
			}
			else
			{
				if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 41))	/* SIMPLE-VECTOR */
				{
					if(CL_SMVEC_T_P(ARG(0)))
					{
					}
					else
					{
						LOAD_SYMBOL(SYMBOL(Slisp, 41), ARG(2));	/* SIMPLE-VECTOR */
						COPY(ARG(0), ARG(3));
						Fconcatenate(ARG(2), 2);
						COPY(ARG(2), ARG(0));
					}
				}
				else
				{
					if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 47))	/* VECTOR */
					{
						LOAD_BOOL(CL_SMVECP(ARG(0)), ARG(2));
						if(CL_TRUEP(ARG(2)))
						{
							goto THEN1;
						}
						else
						{
							COPY(ARG(0), ARG(3));
							LOAD_SYMBOL(SYMBOL(Slisp, 150), ARG(4));	/* COMPLEX-VECTOR */
							rt_struct_typep(ARG(3));
						}
						if(CL_TRUEP(ARG(3)))
						{
							THEN1:;
						}
						else
						{
							LOAD_SYMBOL(SYMBOL(Slisp, 47), ARG(2));	/* VECTOR */
							COPY(ARG(0), ARG(3));
							Fconcatenate(ARG(2), 2);
							COPY(ARG(2), ARG(0));
						}
					}
					else
					{
						if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 18))	/* CHARACTER */
						{
							Fcharacter(ARG(0));
						}
						else
						{
							LOAD_BOOL(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 24), ARG(2));	/* FLOAT */
							if(CL_TRUEP(ARG(2)))
							{
								goto THEN2;
							}
							else
							{
								LOAD_BOOL(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 37), ARG(3));	/* SHORT-FLOAT */
								if(CL_TRUEP(ARG(3)))
								{
									goto THEN2;
								}
								else
								{
									LOAD_BOOL(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 42), ARG(4));	/* SINGLE-FLOAT */
									if(CL_TRUEP(ARG(4)))
									{
										goto THEN2;
									}
									else
									{
										LOAD_BOOL(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 22), ARG(5));	/* DOUBLE-FLOAT */
										if(CL_TRUEP(ARG(5)))
										{
											goto THEN2;
										}
										else
										{
										}	/* LONG-FLOAT */
									}
								}
							}
							if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 29))
							{
								THEN2:;
								LOAD_NIL(ARG(1));
								float1(ARG(0));
							}
							else
							{
								if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 48))	/* T */
								{
								}
								else
								{
									LOAD_SMSTR((CL_FORM *)&KClisp[112], ARG(0));	/* cannot coerce to ~S */
									Ferror(ARG(0), 2);
								}
							}
						}
					}
				}
			}
		}
	}
}
Пример #7
0
void Flist_all_packages(CL_FORM *base)
{
	LOAD_SYMBOL(SYMBOL(Slisp, 28), ARG(0));	/* LIST */
	COPY(SYMVAL(Slisp, 379), ARG(1));	/* *PACKAGE-ARRAY* */
	Fconcatenate(ARG(0), 2);
}