コード例 #1
0
ファイル: Flength.c プロジェクト: hoelzl/Clicc
void Flength(CL_FORM *base)
{
	if(CL_TRUEP(ARG(0)))
	{
		if(CL_CONSP(ARG(0)))
		{
			LOAD_FIXNUM(ARG(1), 0, ARG(1));
			COPY(ARG(0), ARG(2));
			M1_1:;
			if(CL_ATOMP(ARG(2)))
			{
				goto RETURN1;
			}
			F1plus(ARG(1));
			COPY(ARG(2), ARG(3));
			COPY(GET_CDR(ARG(3)), ARG(2));
			goto M1_1;
			RETURN1:;
			COPY(ARG(1), ARG(0));
		}
		else
		{
			if(CL_SMVECP(ARG(0)))
			{
				LOAD_FIXNUM(ARG(2), AR_SIZE(GET_FORM(ARG(0))), ARG(0));
			}
			else
			{
				COPY(ARG(0), ARG(1));
				LOAD_SYMBOL(SYMBOL(Slisp, 150), ARG(2));	/* COMPLEX-VECTOR */
				rt_struct_typep(ARG(1));
				if(CL_TRUEP(ARG(1)))
				{
					COPY(ARG(0), ARG(1));
					complex_vector_fillptr(ARG(1));
					Fminusp(ARG(1));
					if(CL_TRUEP(ARG(1)))
					{
						complex_vector_length(ARG(0));
					}
					else
					{
						complex_vector_fillptr(ARG(0));
					}
				}
				else
				{
					COPY(SYMVAL(Slisp, 58), ARG(1));	/* WRONG_TYPE */
					COPY(ARG(0), ARG(2));
					LOAD_SYMBOL(SYMBOL(Slisp, 36), ARG(3));	/* SEQUENCE */
					Ferror(ARG(1), 3);
				}
			}
		}
	}
	else
	{
		LOAD_FIXNUM(ARG(1), 0, ARG(0));
	}
}
コード例 #2
0
ファイル: Fscale_float.c プロジェクト: hoelzl/Clicc
void Fscale_float(CL_FORM *base)
{
	if(CL_FLOATP(ARG(0)))
	{
		COPY(ARG(0), ARG(2));
	}
	else
	{
		LOAD_SMSTR((CL_FORM *)&KClisp[244], ARG(2));	/* type error: ~S is not of type ~S */
		COPY(ARG(0), ARG(3));
		LOAD_SYMBOL(SYMBOL(Slisp, 24), ARG(4));	/* FLOAT */
		Ferror(ARG(2), 3);
	}
	COPY(SYMVAL(Slisp, 324), ARG(3));	/* FLOAT-RADIX */
	COPY(ARG(0), ARG(4));
	float1(ARG(3));
	if(CL_FIXNUMP(ARG(1)))
	{
		COPY(ARG(1), ARG(4));
	}
	else
	{
		LOAD_SMSTR((CL_FORM *)&KClisp[244], ARG(4));	/* type error: ~S is not of type ~S */
		COPY(ARG(1), ARG(5));
		LOAD_SYMBOL(SYMBOL(Slisp, 26), ARG(6));	/* INTEGER */
		Ferror(ARG(4), 3);
	}
	Fexpt(ARG(3));
	Fmult(ARG(2), 2);
	COPY(ARG(2), ARG(0));
}
コード例 #3
0
ファイル: pyhost.c プロジェクト: nixxcode/nixxcodemisc
int main()
{
	//
	// WARNING: Should use NSCreateObjectFileImageFromFile instead
	// http://developer.apple.com/mac/library/technotes/tn2002/tn2071.html#Section6
	//
	void *pythonLib = dlopen(PYTHONLIB_PATH, RTLD_NOW);
	if (!pythonLib) {
		char *error = dlerror();
		fprintf(stderr, "dlopen() failed: %s\n", error);
		return 1;
	}
	
	python_functions_t python = {0};
#define LOAD_SYMBOL( symname ) if (!(python.symname = dlsym( pythonLib, #symname ))) { return -1; }
	LOAD_SYMBOL( Py_Initialize );
	LOAD_SYMBOL( Py_Finalize );
	LOAD_SYMBOL( PySys_SetArgv );
	LOAD_SYMBOL( PySys_SetPath );
	LOAD_SYMBOL( PyRun_SimpleStringFlags );
	
	python.Py_Initialize();
	python.PySys_SetArgv(SIZEOF_STATIC_ARRAY(pythonArgv), pythonArgv);
	python.PyRun_SimpleStringFlags(pythonScript, NULL);
	python.Py_Finalize();
	
	dlclose(pythonLib);
	
	return 0;
}
コード例 #4
0
ファイル: Fboundp.c プロジェクト: hoelzl/Clicc
void Fboundp(CL_FORM *base)
{
	if(CL_SYMBOLP(ARG(0)))
	{
		COPY(SYM_VALUE(ARG(0)), ARG(1));
		LOAD_BOOL(CL_UNBOUNDP(ARG(1)), ARG(1));
		if(CL_TRUEP(ARG(1)))
		{
			LOAD_NIL(ARG(0));
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(0));	/* T */
		}
	}
	else
	{
		if(CL_TRUEP(ARG(0)))
		{
			COPY(SYMVAL(Slisp, 676), ARG(1));	/* SYM_EXPECTED */
			COPY(ARG(0), ARG(2));
			Ferror(ARG(1), 2);
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(0));	/* T */
		}
	}
}
コード例 #5
0
ファイル: lisp545.c プロジェクト: plops/clicc
void uninterned_reader(CL_FORM *base)
{
	if(CL_TRUEP(ARG(2)))
	{
		LOAD_SMSTR((CL_FORM *)&KClisp[208], ARG(3));	/* extra argument for #~S */
		COPY(ARG(1), ARG(4));
		Ferror(ARG(3), 2);
	}
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(3));	/* T */
	BIND_SPECIAL(SYMBOL(Slisp, 443), ARG(3));	/* *UNINTERNED* */
	COPY(ARG(0), ARG(4));
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(5));	/* T */
	LOAD_NIL(ARG(6));
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(7));	/* T */
	read1(ARG(4));
	bool_result = CL_TRUEP(SYMVAL(Slisp, 408));	/* *READ-SUPPRESS* */
	if(bool_result)
	{
		LOAD_NIL(ARG(0));
	}
	else
	{
		if(CL_SYMBOLP(ARG(4)) || CL_NILP(ARG(4)))
		{
			COPY(ARG(4), ARG(0));
		}
		else
		{
			LOAD_SMSTR((CL_FORM *)&Kuninterned_reader[0], ARG(0));	/* illegal value (~S) followed #: */
			COPY(ARG(4), ARG(1));
			Ferror(ARG(0), 2);
		}
	}
	RESTORE_SPECIAL;
}
コード例 #6
0
ファイル: radix_reader.c プロジェクト: hoelzl/Clicc
void radix_reader(CL_FORM *base)
{
	if(CL_TRUEP(SYMVAL(Slisp, 418)))	/* *READ-SUPPRESS* */
	{
		COPY(ARG(0), ARG(3));
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(4));	/* T */
		LOAD_NIL(ARG(5));
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(6));	/* T */
		read_char1(ARG(3));
		COPY(ARG(0), ARG(4));
		COPY(ARG(3), ARG(5));
		read_token(ARG(4));
		LOAD_NIL(ARG(0));
	}
	else
	{
		if(CL_TRUEP(ARG(2)))
		{
			LOAD_FIXNUM(ARG(3), 2, ARG(3));
			COPY(ARG(2), ARG(4));
			LOAD_FIXNUM(ARG(5), 36, ARG(5));
			Fle(ARG(3), 3);
			if(CL_TRUEP(ARG(3)))
			{
				COPY(ARG(2), ARG(3));
				BIND_SPECIAL(SYMBOL(Slisp, 417), ARG(3));	/* *READ-BASE* */
				COPY(ARG(0), ARG(3));
				LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(4));	/* T */
				LOAD_NIL(ARG(5));
				LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(6));	/* T */
				read1(ARG(3));
				RESTORE_SPECIAL;
				if(CL_FIXNUMP(ARG(3)))
				{
				}
				else
				{
					LOAD_SMSTR((CL_FORM *)&Kradix_reader[0], ARG(4));	/* #~A (base ~D) value is not a rational: ~S. */
					COPY(ARG(1), ARG(5));
					COPY(ARG(2), ARG(6));
					COPY(ARG(3), ARG(7));
					Ferror(ARG(4), 4);
				}
				COPY(ARG(3), ARG(0));
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&Kradix_reader[2], ARG(0));	/* Illegal radix for #R: ~D. */
				COPY(ARG(2), ARG(1));
				Ferror(ARG(0), 2);
			}
		}
		else
		{
			LOAD_SMSTR((CL_FORM *)&Kradix_reader[4], ARG(0));	/* Radix missing in #R. */
			Ferror(ARG(0), 1);
		}
	}
}
コード例 #7
0
ファイル: lisp767.c プロジェクト: hoelzl/Clicc
void Fstring_left_trim(CL_FORM *base)
{
	Fstring(ARG(1));
	LOAD_FIXNUM(ARG(2), 0, ARG(2));
	M1_1:;
	COPY(ARG(2), ARG(3));
	COPY(ARG(1), ARG(4));
	Flength(ARG(4));
	Fnumeql(ARG(3), 2);
	if(CL_TRUEP(ARG(3)))
	{
		LOAD_SMSTR((CL_FORM *)&KClisp[70], ARG(0));	/*  */
		goto RETURN1;
	}
	COPY(ARG(1), ARG(3));
	Fstringp(ARG(3));
	if(CL_TRUEP(ARG(3)))
	{
	}
	else
	{
		COPY(SYMVAL(Slisp, 58), ARG(3));	/* WRONG_TYPE */
		COPY(ARG(1), ARG(4));
		LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(5));	/* STRING */
		Ferror(ARG(3), 3);
	}
	COPY(ARG(1), ARG(3));
	COPY(ARG(2), ARG(4));
	Frow_major_aref(ARG(3));
	COPY(ARG(0), ARG(4));
	LOAD_SYMBOL(SYMBOL(Slisp, 282), ARG(5));	/* TEST */
	LOAD_GLOBFUN(&CFcharE, ARG(6));
	Ffind(ARG(3), 4);
	if(CL_TRUEP(ARG(3)))
	{
	}
	else
	{
		goto RETURN2;
	}
	F1plus(ARG(2));
	goto M1_1;
	RETURN2:;
	COPY(ARG(2), ARG(3));
	Fzerop(ARG(3));
	if(CL_TRUEP(ARG(3)))
	{
		COPY(ARG(1), ARG(0));
	}
	else
	{
		COPY(ARG(1), ARG(0));
		COPY(ARG(2), ARG(1));
		LOAD_NIL(ARG(2));
		subseq1(ARG(0));
	}
	RETURN1:;
}
コード例 #8
0
ファイル: lisp159.c プロジェクト: hoelzl/Clicc
void make_string_input_stream1(CL_FORM *base)
{
	GEN_HEAPVAR(ARG(0), ARG(3));
	GEN_HEAPVAR(ARG(1), ARG(3));
	GEN_HEAPVAR(ARG(2), ARG(3));
	COPY(INDIRECT(ARG(1)), ARG(3));
	GEN_HEAPVAR(ARG(3), ARG(4));
	LOAD_SYMBOL(SYMBOL(Slisp, 98), ARG(4));	/* STRING-INPUT */
	{
		GEN_CLOSURE(array, ARG(5), 6, Z70_lambda, 0);
		COPY(ARG(0), &array[3]);
		COPY(ARG(2), &array[4]);
		COPY(ARG(3), &array[5]);
		LOAD_CLOSURE(array, ARG(5));
	}
	COPY(ARG(5), ARG(5));
	{
		GEN_CLOSURE(array, ARG(6), 6, Z69_lambda, 1);
		COPY(ARG(0), &array[3]);
		COPY(ARG(1), &array[4]);
		COPY(ARG(3), &array[5]);
		LOAD_CLOSURE(array, ARG(6));
	}
	COPY(ARG(6), ARG(6));
	{
		GEN_CLOSURE(array, ARG(7), 4, Z68_lambda, 0);
		COPY(ARG(3), &array[3]);
		LOAD_CLOSURE(array, ARG(7));
	}
	COPY(ARG(7), ARG(7));
	{
		GEN_CLOSURE(array, ARG(8), 5, Z67_lambda, 1);
		COPY(ARG(3), &array[3]);
		COPY(ARG(2), &array[4]);
		LOAD_CLOSURE(array, ARG(8));
	}
	COPY(ARG(8), ARG(8));
	{
		GEN_CLOSURE(array, ARG(9), 4, Z66_lambda, 0);
		COPY(ARG(2), &array[3]);
		LOAD_CLOSURE(array, ARG(9));
	}
	COPY(ARG(9), ARG(9));
	LOAD_GLOBFUN(&Cclose1, ARG(10));
	LOAD_NIL(ARG(11));
	LOAD_GLOBFUN(&Cundef_stream_op, ARG(12));
	LOAD_GLOBFUN(&Cnil_fun, ARG(13));
	LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(0));	/* STREAM */
	COPY(ARG(4), ARG(1));
	LOAD_NIL(ARG(2));
	COPY(ARG(5), ARG(3));
	COPY(ARG(6), ARG(4));
	LOAD_GLOBFUN(&Cundef_stream_op, ARG(5));
	LOAD_GLOBFUN(&Cnil_fun, ARG(6));
	LOAD_GLOBFUN(&Cclose1, ARG(10));
	rt_make_struct(ARG(0), 11);
}
コード例 #9
0
ファイル: Fpathname.c プロジェクト: hoelzl/Clicc
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));
}
コード例 #10
0
ファイル: nvenc.c プロジェクト: theambient/libav
static av_cold int nvenc_load_libraries(AVCodecContext *avctx)
{
    NVENCContext *ctx         = avctx->priv_data;
    NVENCLibraryContext *nvel = &ctx->nvel;
    PNVENCODEAPICREATEINSTANCE nvenc_create_instance;

    LOAD_LIBRARY(nvel->cuda, CUDA_LIBNAME);

    LOAD_SYMBOL(nvel->cu_init, nvel->cuda, "cuInit");
    LOAD_SYMBOL(nvel->cu_device_get_count, nvel->cuda, "cuDeviceGetCount");
    LOAD_SYMBOL(nvel->cu_device_get, nvel->cuda, "cuDeviceGet");
    LOAD_SYMBOL(nvel->cu_device_get_name, nvel->cuda, "cuDeviceGetName");
    LOAD_SYMBOL(nvel->cu_device_compute_capability, nvel->cuda,
                "cuDeviceComputeCapability");
    LOAD_SYMBOL(nvel->cu_ctx_create, nvel->cuda, "cuCtxCreate_v2");
    LOAD_SYMBOL(nvel->cu_ctx_pop_current, nvel->cuda, "cuCtxPopCurrent_v2");
    LOAD_SYMBOL(nvel->cu_ctx_destroy, nvel->cuda, "cuCtxDestroy_v2");

    LOAD_LIBRARY(nvel->nvenc, NVENC_LIBNAME);

    LOAD_SYMBOL(nvenc_create_instance, nvel->nvenc,
                "NvEncodeAPICreateInstance");

    nvel->nvenc_funcs.version = NV_ENCODE_API_FUNCTION_LIST_VER;

    if ((nvenc_create_instance(&nvel->nvenc_funcs)) != NV_ENC_SUCCESS) {
        av_log(avctx, AV_LOG_ERROR, "Cannot create the NVENC instance");
        return AVERROR_UNKNOWN;
    }

    return 0;
}
コード例 #11
0
ファイル: lisp159.c プロジェクト: hoelzl/Clicc
static void Z69_lambda(CL_FORM *base)
{
	COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(2));
	COPY(INDIRECT(GET_FORM(ARG(0)) + 4), ARG(3));
	Fle(ARG(2), 2);
	if(CL_TRUEP(ARG(2)))
	{
		LOAD_SMSTR((CL_FORM *)&Kmake_string_input_stream1[0], ARG(2));	/* reached start of stream */
		Ferror(ARG(2), 1);
	}
	COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(2));
	F1minus(ARG(2));
	COPY(ARG(2), INDIRECT(GET_FORM(ARG(0)) + 5));
	COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(3));
	Fstringp(ARG(3));
	if(CL_TRUEP(ARG(3)))
	{
	}
	else
	{
		COPY(SYMVAL(Slisp, 58), ARG(3));	/* WRONG_TYPE */
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(4));
		LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(5));	/* STRING */
		Ferror(ARG(3), 3);
	}
	COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(3));
	COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(4));
	Frow_major_aref(ARG(3));
	if(EQL(ARG(1), ARG(3)))
	{
	}
	else
	{
		LOAD_SMSTR((CL_FORM *)&Kmake_string_input_stream1[2], ARG(2));	/* %s should be eql to %s */
		COPY(ARG(1), ARG(3));
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(4));
		Fstringp(ARG(4));
		if(CL_TRUEP(ARG(4)))
		{
		}
		else
		{
			COPY(SYMVAL(Slisp, 58), ARG(4));	/* WRONG_TYPE */
			COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(5));
			LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(6));	/* STRING */
			Ferror(ARG(4), 3);
		}
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(4));
		COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(5));
		Frow_major_aref(ARG(4));
		Ferror(ARG(2), 3);
	}
	LOAD_NIL(ARG(0));
}
コード例 #12
0
ファイル: quote_reader.c プロジェクト: hoelzl/Clicc
void quote_reader(CL_FORM *base)
{
	LOAD_SYMBOL(SYMBOL(Slisp, 455), ARG(2));	/* QUOTE */
	COPY(ARG(0), ARG(3));
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(4));	/* T */
	LOAD_NIL(ARG(5));
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(6));	/* T */
	internal_read(ARG(3));
	Flist(ARG(2), 2);
	COPY(ARG(2), ARG(0));
}
コード例 #13
0
ファイル: Fslot_boundp.c プロジェクト: hoelzl/Clicc
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);
	}
}
コード例 #14
0
ファイル: Fposition.c プロジェクト: hoelzl/Clicc
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));
	}
}
コード例 #15
0
ファイル: lisp177.c プロジェクト: hoelzl/Clicc
void Fmake_synonym_stream(CL_FORM *base)
{
	GEN_HEAPVAR(ARG(0), ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 93), ARG(1));	/* SYNONYM */
	COPY(INDIRECT(ARG(0)), ARG(2));
	{
		GEN_CLOSURE(array, ARG(3), 4, Z78_lambda, 0);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(3));
	}
	COPY(ARG(3), ARG(3));
	{
		GEN_CLOSURE(array, ARG(4), 4, Z77_lambda, 1);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(4));
	}
	COPY(ARG(4), ARG(4));
	{
		GEN_CLOSURE(array, ARG(5), 4, Z76_lambda, 1);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(5));
	}
	COPY(ARG(5), ARG(5));
	{
		GEN_CLOSURE(array, ARG(6), 4, Z75_lambda, 0);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(6));
	}
	COPY(ARG(6), ARG(6));
	{
		GEN_CLOSURE(array, ARG(7), 4, Z74_lambda, 0);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(7));
	}
	COPY(ARG(7), ARG(7));
	{
		GEN_CLOSURE(array, ARG(8), 4, Z73_lambda, 0);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(8));
	}
	COPY(ARG(8), ARG(8));
	{
		GEN_CLOSURE(array, ARG(9), 4, Z72_lambda, 0);
		COPY(ARG(0), &array[3]);
		LOAD_CLOSURE(array, ARG(9));
	}
	COPY(ARG(9), ARG(9));
	LOAD_GLOBFUN(&Cclose1, ARG(10));
	LOAD_SYMBOL(SYMBOL(Slisp, 64), ARG(0));	/* STREAM */
	LOAD_GLOBFUN(&Cclose1, ARG(10));
	rt_make_struct(ARG(0), 11);
}
コード例 #16
0
ファイル: print1.c プロジェクト: hoelzl/Clicc
void print1(CL_FORM *base)
{
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(2));	/* T */
	BIND_SPECIAL(SYMBOL(Slisp, 474), ARG(2));	/* *PRINT-ESCAPE* */
	if(CL_TRUEP(ARG(1)))
	{
		if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 48))	/* T */
		{
			COPY(SYMVAL(Slisp, 59), ARG(1));	/* *TERMINAL-IO* */
		}
	}
	else
	{
		COPY(SYMVAL(Slisp, 61), ARG(1));	/* *STANDARD-OUTPUT* */
	}
	COPY(ARG(1), ARG(3));
	terpri1(ARG(3));
	COPY(ARG(0), ARG(3));
	COPY(ARG(1), ARG(4));
	write2(ARG(3));
	LOAD_CHAR(ARG(3), ' ', ARG(3));
	COPY(ARG(1), ARG(4));
	write_char1(ARG(3));
	mv_count = 1;
	RESTORE_SPECIAL;
}
コード例 #17
0
ファイル: lisp507.c プロジェクト: plops/clicc
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));
	}
}
コード例 #18
0
ファイル: lisp159.c プロジェクト: hoelzl/Clicc
static void Z70_lambda(CL_FORM *base)
{
	COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(1));
	COPY(INDIRECT(GET_FORM(ARG(0)) + 4), ARG(2));
	Flt(ARG(1), 2);
	if(CL_TRUEP(ARG(1)))
	{
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(1));
		Fstringp(ARG(1));
		if(CL_TRUEP(ARG(1)))
		{
		}
		else
		{
			COPY(SYMVAL(Slisp, 58), ARG(1));	/* WRONG_TYPE */
			COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(2));
			LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(3));	/* STRING */
			Ferror(ARG(1), 3);
		}
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(1));
		COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(2));
		Frow_major_aref(ARG(1));
		COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(2));
		F1plus(ARG(2));
		COPY(ARG(2), INDIRECT(GET_FORM(ARG(0)) + 5));
		COPY(ARG(1), ARG(0));
	}
	else
	{
		LOAD_NIL(ARG(0));
	}
}
コード例 #19
0
ファイル: lisp503.c プロジェクト: hoelzl/Clicc
void null_or_quoted(CL_FORM *base)
{
	if(CL_TRUEP(ARG(0)))
	{
		LOAD_NIL(ARG(1));
	}
	else
	{
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(1));	/* T */
	}
	if(CL_TRUEP(ARG(1)))
	{
		COPY(ARG(1), ARG(0));
	}
	else
	{
		if(CL_CONSP(ARG(0)))
		{
			COPY(GET_CAR(ARG(0)), ARG(2));
			LOAD_BOOL(EQ(ARG(2), SYMVAL(Slisp, 444)), ARG(0));	/* *BQ-QUOTE* */
		}
		else
		{
			LOAD_NIL(ARG(0));
		}
	}
}
コード例 #20
0
ファイル: lisp355.c プロジェクト: plops/clicc
static void Z124_lambda(CL_FORM *base)
{
	if(CL_SMSTRP(ARG(1)))
	{
		COPY(INDIRECT(GET_FORM(ARG(0)) + 4), ARG(2));
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(3));
		Ffuncall(ARG(2), 2);
		COPY(ARG(2), ARG(0));
	}
	else
	{
		if(CL_CONSP(ARG(1)))
		{
			COPY(GET_CAR(ARG(1)), ARG(2));
			if(CL_SYMBOLP(ARG(2)) && GET_SYMBOL(ARG(2)) == SYMBOL(Slisp, 255))	/* CHARACTER-SET */
			{
				LOAD_SYMBOL(SYMBOL(Slisp, 255), ARG(3));	/* CHARACTER-SET */
				COPY(INDIRECT(GET_FORM(ARG(0)) + 4), ARG(4));
				COPY(GET_CDR(ARG(1)), ARG(5));
				Ffuncall(ARG(4), 2);
				mv_count = 1;
				ALLOC_CONS(ARG(5), ARG(3), ARG(4), ARG(0));
			}
			else
			{
				COPY(ARG(1), ARG(0));
			}
		}
		else
		{
			COPY(ARG(1), ARG(0));
		}
	}
}
コード例 #21
0
ファイル: lisp428.c プロジェクト: plops/clicc
void rt_struct_typep(CL_FORM *base)
{
	if(CL_STRUCTP(ARG(0)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), -1 + 1), ARG(2));
		M1_1:;
		if(EQ(ARG(1), ARG(2)))
		{
			goto RETURN1;
		}
		COPY(ARG(2), ARG(3));
		LOAD_SYMBOL(SYMBOL(Slisp, 148), ARG(3));	/* INCLUDED-STRUCT */
		LOAD_NIL(ARG(4));
		get1(ARG(2));
		if(CL_TRUEP(ARG(2)))
		{
		}
		else
		{
			LOAD_NIL(ARG(0));
			goto RETURN1;
		}
		goto M1_1;
		RETURN1:;
	}
	else
	{
		LOAD_NIL(ARG(0));
	}
}
コード例 #22
0
ファイル: Fmake_array.c プロジェクト: hoelzl/Clicc
void Fmake_array(CL_FORM *base, int nargs)
{
	BOOL supl_flags[7];
	static CL_FORM * keylist[] =
	{
		SYMBOL(Slisp, 99),	/* ELEMENT-TYPE */
		SYMBOL(Slisp, 155),	/* INITIAL-ELEMENT */
		SYMBOL(Slisp, 103),	/* INITIAL-CONTENTS */
		SYMBOL(Slisp, 100),	/* ADJUSTABLE */
		SYMBOL(Slisp, 101),	/* FILL-POINTER */
		SYMBOL(Slisp, 156),	/* DISPLACED-TO */
		SYMBOL(Slisp, 157),	/* DISPLACED-INDEX-OFFSET */
	};
	keysort(ARG(1), nargs - 1, 7, keylist, supl_flags, FALSE);
	if(NOT(supl_flags[0]))
	{
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(1));	/* T */
	}
	if(NOT(supl_flags[1]))
	{
		LOAD_NIL(ARG(2));
		LOAD_NIL(ARG(8));
	}
	else
	{
		LOAD_T(ARG(8));
	}
	if(NOT(supl_flags[2]))
	{
		LOAD_NIL(ARG(3));
		LOAD_NIL(ARG(9));
	}
	else
	{
		LOAD_T(ARG(9));
	}
	if(NOT(supl_flags[3]))
	{
		LOAD_NIL(ARG(4));
	}
	if(NOT(supl_flags[4]))
	{
		LOAD_NIL(ARG(5));
	}
	if(NOT(supl_flags[5]))
	{
		LOAD_NIL(ARG(6));
	}
	if(NOT(supl_flags[6]))
	{
		LOAD_FIXNUM(ARG(10), 0, ARG(7));
		LOAD_NIL(ARG(10));
	}
	else
	{
		LOAD_T(ARG(10));
	}
	make_array1(ARG(0));
}
コード例 #23
0
ファイル: lisp333.c プロジェクト: hoelzl/Clicc
void Ppathname_directory(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(OFFSET(AR_BASE(GET_FORM(ARG(0))), 2 + 1), ARG(0));
	}
	else
	{
		COPY(SYMVAL(Slisp, 352), ARG(1));	/* NO_STRUCT */
		COPY(ARG(0), ARG(2));
		LOAD_SYMBOL(SYMBOL(Slisp, 234), ARG(3));	/* PATHNAME */
		Ferror(ARG(1), 3);
	}
}
コード例 #24
0
ファイル: lisp498.c プロジェクト: plops/clicc
void hash_table_array(CL_FORM *base)
{
	COPY(ARG(0), ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 389), ARG(2));	/* HASH-TABLE */
	rt_struct_typep(ARG(1));
	if(CL_TRUEP(ARG(1)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), 5 + 1), ARG(0));
	}
	else
	{
		COPY(SYMVAL(Slisp, 342), ARG(1));	/* NO_STRUCT */
		COPY(ARG(0), ARG(2));
		LOAD_SYMBOL(SYMBOL(Slisp, 389), ARG(3));	/* HASH-TABLE */
		Ferror(ARG(1), 3);
	}
}
コード例 #25
0
ファイル: lisp510.c プロジェクト: hoelzl/Clicc
void readtable_dispatch(CL_FORM *base)
{
	COPY(ARG(0), ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 420), ARG(2));	/* READTABLE */
	rt_struct_typep(ARG(1));
	if(CL_TRUEP(ARG(1)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), 1 + 1), ARG(0));
	}
	else
	{
		COPY(SYMVAL(Slisp, 352), ARG(1));	/* NO_STRUCT */
		COPY(ARG(0), ARG(2));
		LOAD_SYMBOL(SYMBOL(Slisp, 420), ARG(3));	/* READTABLE */
		Ferror(ARG(1), 3);
	}
}
コード例 #26
0
ファイル: lisp221.c プロジェクト: plops/clicc
void set_complex_vector_fillptr(CL_FORM *base)
{
	LOAD_SMALLFIXNUM(3, ARG(2));
	COPY(ARG(1), ARG(3));
	LOAD_SYMBOL(SYMBOL(Slisp, 150), ARG(4));	/* COMPLEX-VECTOR */
	rt_struct_typep(ARG(3));
	if(CL_TRUEP(ARG(3)))
	{
		COPY(ARG(0), OFFSET(AR_BASE(GET_FORM(ARG(1))), GET_FIXNUM(ARG(2)) + 1));
	}
	else
	{
		COPY(SYMVAL(Slisp, 342), ARG(0));	/* NO_STRUCT */
		LOAD_SYMBOL(SYMBOL(Slisp, 150), ARG(2));	/* COMPLEX-VECTOR */
		Ferror(ARG(0), 3);
	}
}
コード例 #27
0
ファイル: lisp341.c プロジェクト: plops/clicc
void pattern_pieces(CL_FORM *base)
{
	COPY(ARG(0), ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 248), ARG(2));	/* PATTERN */
	rt_struct_typep(ARG(1));
	if(CL_TRUEP(ARG(1)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), 0 + 1), ARG(0));
	}
	else
	{
		COPY(SYMVAL(Slisp, 342), ARG(1));	/* NO_STRUCT */
		COPY(ARG(0), ARG(2));
		LOAD_SYMBOL(SYMBOL(Slisp, 248), ARG(3));	/* PATTERN */
		Ferror(ARG(1), 3);
	}
}
コード例 #28
0
ファイル: lisp355.c プロジェクト: plops/clicc
static void Z123_diddle_with(CL_FORM *base)
{
	GEN_HEAPVAR(ARG(0), ARG(2));
	GEN_HEAPVAR(ARG(1), ARG(2));
	COPY(INDIRECT(ARG(1)), ARG(2));
	LOAD_SYMBOL(SYMBOL(Slisp, 248), ARG(3));	/* PATTERN */
	rt_struct_typep(ARG(2));
	if(CL_TRUEP(ARG(2)))
	{
		GEN_CLOSURE(array, ARG(2), 5, Z124_lambda, 1);
		COPY(ARG(1), &array[3]);
		COPY(ARG(0), &array[4]);
		LOAD_CLOSURE(array, ARG(2));
		COPY(ARG(2), ARG(2));
		COPY(INDIRECT(ARG(1)), ARG(3));
		pattern_pieces(ARG(3));
		Fmapcar(ARG(2), 2);
		LOAD_SYMBOL(SYMBOL(Slisp, 248), ARG(0));	/* PATTERN */
		COPY(ARG(2), ARG(1));
		rt_make_struct(ARG(0), 2);
	}
	else
	{
		if(CL_LISTP(INDIRECT(ARG(1))))
		{
			COPY(INDIRECT(ARG(0)), ARG(0));
			COPY(INDIRECT(ARG(1)), ARG(1));
			Fmapcar(ARG(0), 2);
		}
		else
		{
			if(CL_SMSTRP(INDIRECT(ARG(1))))
			{
				COPY(INDIRECT(ARG(0)), ARG(0));
				COPY(INDIRECT(ARG(1)), ARG(1));
				Ffuncall(ARG(0), 2);
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&Kmaybe_diddle_case[2], ARG(0));	/* etypecase: the value ~a is not a legal value */
				COPY(INDIRECT(ARG(1)), ARG(1));
				Ferror(ARG(0), 2);
			}
		}
	}
}
コード例 #29
0
ファイル: lisp207.c プロジェクト: hoelzl/Clicc
void complex_vector_fillptr(CL_FORM *base)
{
	COPY(ARG(0), ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 150), ARG(2));	/* COMPLEX-VECTOR */
	rt_struct_typep(ARG(1));
	if(CL_TRUEP(ARG(1)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), 3 + 1), ARG(0));
	}
	else
	{
		COPY(SYMVAL(Slisp, 352), ARG(1));	/* NO_STRUCT */
		COPY(ARG(0), ARG(2));
		LOAD_SYMBOL(SYMBOL(Slisp, 150), ARG(3));	/* COMPLEX-VECTOR */
		Ferror(ARG(1), 3);
	}
}
コード例 #30
0
ファイル: lisp200.c プロジェクト: hoelzl/Clicc
void complex_array_displaced(CL_FORM *base)
{
	COPY(ARG(0), ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 147), ARG(2));	/* COMPLEX-ARRAY */
	rt_struct_typep(ARG(1));
	if(CL_TRUEP(ARG(1)))
	{
		COPY(OFFSET(AR_BASE(GET_FORM(ARG(0))), 1 + 1), ARG(0));
	}
	else
	{
		COPY(SYMVAL(Slisp, 352), ARG(1));	/* NO_STRUCT */
		COPY(ARG(0), ARG(2));
		LOAD_SYMBOL(SYMBOL(Slisp, 147), ARG(3));	/* COMPLEX-ARRAY */
		Ferror(ARG(1), 3);
	}
}