Exemplo n.º 1
0
//one arg: exp
static cellpoint let_vals(void)
{
	args_push(args_ref(1));
	reg = let_bindings();
	stack_push(&vars_stack, NIL);
	while (is_false(is_null(reg))){
		check_bindings("let", car(reg), args_ref(1));
		stack_push(&vars_stack, cons(car(cdr(car(reg))), stack_pop(&vars_stack)));
		reg = cdr(reg);
	}
	args_push(stack_pop(&vars_stack));
	reg = reverse();
	args_pop(1);
	return reg;
}
Exemplo n.º 2
0
object *let_arguments(object *exp) {
    return bindings_arguments(let_bindings(exp));
}
Exemplo n.º 3
0
object *let_parameters(object *exp) {
    return bindings_parameters(let_bindings(exp));
}
Exemplo n.º 4
0
static value_t *e_let(env_t *env, expr_t *expr)
{
  env_new_scope(&env);
  list_iterate(let_bindings(expr), add_binding_i, env);
  return e_expr(env, let_body(expr));
}
Exemplo n.º 5
0
Arquivo: eval.c Projeto: ingramj/bs
static inline object *let_values(object *exp)
{
    return bindings_values(let_bindings(exp));
}
Exemplo n.º 6
0
static pSlipObject let_arguments(pSlip gd, pSlipObject exp)
{
	return bindings_arguments(gd, let_bindings(exp));
}
Exemplo n.º 7
0
static pSlipObject let_parameters(pSlip gd, pSlipObject exp)
{
	return bindings_parameters(gd, let_bindings(exp));
}