summaryrefslogtreecommitdiff
path: root/functions.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-20 23:57:13 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-20 23:57:13 +0000
commit1ddd7de5b15f52c13a5c084445253655a94bd970 (patch)
tree4d0f3b8ad18f2c4ceaa175022c42d7f0de093184 /functions.c
parent230aac3c644df9d80c8eba507e6bc7c710b26b52 (diff)
Implement a very basic ⎕RUN command which runs the code from a file
Diffstat (limited to 'functions.c')
-rw-r--r--functions.c10
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 *