diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-20 23:57:13 +0000 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-20 23:57:13 +0000 |
commit | 1ddd7de5b15f52c13a5c084445253655a94bd970 (patch) | |
tree | 4d0f3b8ad18f2c4ceaa175022c42d7f0de093184 /functions.c | |
parent | 230aac3c644df9d80c8eba507e6bc7c710b26b52 (diff) |
Implement a very basic ⎕RUN command which runs the code from a file
Diffstat (limited to 'functions.c')
-rw-r--r-- | functions.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/functions.c b/functions.c index 7266f28..55a72ad 100644 --- a/functions.c +++ b/functions.c @@ -147,13 +147,19 @@ runfunc(Function f, Array *left, Array *right) return dyadfunctiondefs[f.code](left, right); else return monadfunctiondefs[f.code](right); - }else{ + }else if(f.type == FunctypeOp){ /* TODO assumes prim op, not dop */ if(f.operator.dyadic) return dyadoperatordefs[f.operator.code](f.operator.left, f.operator.right, left, right); else return monadoperatordefs[f.operator.code](f.operator.left, left, right); - } + }else if(f.type == FunctypeQuad){ + if(left) + return f.quad->dyadfn(left, right); + else + return f.quad->monadfn(right); + }else + return nil; } Array * |