mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
Use sexp_make_procedure to sexp_make_variable_transformer_op
This commit is contained in:
parent
f32d89175c
commit
eb8582f5b1
1 changed files with 6 additions and 6 deletions
12
eval.c
12
eval.c
|
@ -400,15 +400,15 @@ static sexp sexp_make_macro (sexp ctx, sexp p, sexp e) {
|
|||
}
|
||||
|
||||
sexp sexp_make_variable_transformer_op (sexp ctx, sexp self, sexp_sint_t n, sexp base_proc) {
|
||||
sexp flags;
|
||||
sexp_assert_type(ctx, sexp_procedurep, SEXP_PROCEDURE, base_proc);
|
||||
if (sexp_procedure_variable_transformer_p(base_proc))
|
||||
return base_proc;
|
||||
sexp vt_proc = sexp_alloc_type(ctx, procedure, SEXP_PROCEDURE);
|
||||
sexp_procedure_flags(vt_proc) = (char) (sexp_uint_t) sexp_make_fixnum (sexp_unbox_fixnum(sexp_procedure_flags(base_proc)) | SEXP_PROC_VARIABLE_TRANSFORMER);
|
||||
sexp_procedure_num_args(vt_proc) = sexp_procedure_num_args(base_proc);
|
||||
sexp_procedure_code(vt_proc) = sexp_procedure_code(base_proc);
|
||||
sexp_procedure_vars(vt_proc) = sexp_procedure_vars(base_proc);
|
||||
return vt_proc;
|
||||
flags = sexp_make_fixnum(sexp_unbox_fixnum(sexp_procedure_flags(base_proc)) | SEXP_PROC_VARIABLE_TRANSFORMER);
|
||||
return sexp_make_procedure(ctx, flags,
|
||||
sexp_make_fixnum(sexp_procedure_num_args(base_proc)),
|
||||
sexp_procedure_code(base_proc),
|
||||
sexp_procedure_vars(base_proc));
|
||||
}
|
||||
|
||||
sexp sexp_make_synclo_op (sexp ctx, sexp self, sexp_sint_t n, sexp env, sexp fv, sexp expr) {
|
||||
|
|
Loading…
Add table
Reference in a new issue