mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-20 22:29:16 +02:00
define can redefine a syntax binding
This commit is contained in:
parent
e6ba6e59a5
commit
a14d03b1a3
1 changed files with 3 additions and 1 deletions
4
eval.c
4
eval.c
|
@ -659,7 +659,9 @@ static sexp analyze_define (sexp ctx, sexp x) {
|
||||||
value = analyze_lambda(ctx, tmp);
|
value = analyze_lambda(ctx, tmp);
|
||||||
} else
|
} else
|
||||||
value = analyze(ctx, sexp_caddr(x));
|
value = analyze(ctx, sexp_caddr(x));
|
||||||
ref = analyze_var_ref(ctx, name, &varenv);
|
tmp = sexp_env_cell_loc(env, name, &varenv);
|
||||||
|
if (!tmp) tmp = sexp_env_cell_create(ctx, env, name, SEXP_UNDEF, &varenv);
|
||||||
|
ref = sexp_make_ref(ctx, name, tmp);
|
||||||
if (sexp_exceptionp(ref)) {
|
if (sexp_exceptionp(ref)) {
|
||||||
res = ref;
|
res = ref;
|
||||||
} else if (sexp_exceptionp(value)) {
|
} else if (sexp_exceptionp(value)) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue