summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/eval.c b/eval.c
index 60c2e0d..a2d4d43 100644
--- a/eval.c
+++ b/eval.c
@@ -151,6 +151,7 @@ lookup(Datum var)
incref(val->array); /* since the value is now in the var AND in the code */
}
val->shy = 0;
+ traceprint("VAR %S = %S\n", var.symbol->name, ppdatum(*val));
return val;
}
@@ -225,11 +226,7 @@ nameis(Datum left, Datum right)
Datum
assign(Datum left, Datum right)
{
- if(runestrcmp(left.symbol->name, L"⍵") == 0)
- throwerror(nil, ESyntax);
- else if(runestrcmp(left.symbol->name, L"⍺") == 0 && !left.symbol->undefined)
- goto end;
- else if(left.symbol->setfn != nil)
+ if(left.symbol->setfn != nil)
left.symbol->setfn(right);
else{
if(left.symbol->undefined == 0 && left.symbol->value.tag == ArrayTag)
@@ -241,7 +238,6 @@ assign(Datum left, Datum right)
incref(right.array); /* for the binding */
}
}
-end:
right.shy = 1;
if(right.tag == ArrayTag)
incref(right.array); /* for the returned array */