summaryrefslogtreecommitdiff
path: root/apl9.h
diff options
context:
space:
mode:
Diffstat (limited to 'apl9.h')
-rw-r--r--apl9.h6
1 files changed, 4 insertions, 2 deletions
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);