From df6c3247c40b05266894d45136dc64f96b0cbac9 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Tue, 22 Feb 2022 11:05:30 +0000 Subject: Implement lexical scope instead of dynamic scope rules. --- apl9.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'apl9.h') diff --git a/apl9.h b/apl9.h index bbba10f..2cf0069 100644 --- a/apl9.h +++ b/apl9.h @@ -153,6 +153,7 @@ struct Function QuadnameDef *quad; FunctionTrain train; }; + DfnFrame *scope; Array *left; }; @@ -219,7 +220,8 @@ struct DfnFrame Array *right; Datum *lefto; Datum *righto; - DfnFrame *prev; + DfnFrame *prev; /* prev in the call stack */ + DfnFrame *chain; /* prev in the lexical scope */ }; struct ThreadData @@ -279,7 +281,7 @@ Datum *eval(Statement *, int); Symbol *getsym(Rune *, int); void initsymtab(void); DfnFrame *getcurrentdfn(void); -DfnFrame *pushdfnframe(Rune *, Datum *, Datum *, Array *, Array *); +DfnFrame *pushdfnframe(Rune *, DfnFrame *, Datum *, Datum *, Array *, Array *); void popdfnframe(void); vlong globalIO(void); void globalIOset(vlong); -- cgit v1.2.3