diff options
-rw-r--r-- | apl9.h | 1 | ||||
-rw-r--r-- | eval.c | 1 | ||||
-rw-r--r-- | lexer.c | 1 |
3 files changed, 3 insertions, 0 deletions
@@ -133,6 +133,7 @@ struct Operator int code; Rune *dop; }; + DfnFrame *scope; Datum *left; Datum *right; }; @@ -336,6 +336,7 @@ monadop(Datum *left, Datum *right) result->func.operator.left = left; incdatumref(left); result->func.left = nil; + result->func.scope = right->operator.scope; return result; } @@ -124,6 +124,7 @@ lexline(InputStream *input, int toplevel) stmt->toks[stmt->ntoks]->operator.type = OperatortypeDop; stmt->toks[stmt->ntoks]->operator.dyadic = oplevel == 2; stmt->toks[stmt->ntoks]->operator.dop = runestrdup(buf); + stmt->toks[stmt->ntoks]->operator.scope = getcurrentdfn(); } }else if(peek == '('){ int unclosed = 1; |