aboutsummaryrefslogtreecommitdiff
path: root/src/interp/define.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r--src/interp/define.boot6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index f3f70c72..0ddfd5b6 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -46,6 +46,7 @@ module define where
compAdd: (%Form, %Mode, %Env) -> %Maybe %Triple
compCategory: (%Form,%Mode,%Env) -> %Maybe %Triple
evalCategoryForm: (%Form,%Env) -> %Maybe %Shell
+ getCategoryObject: (%Table,%Form,%Env) -> %Shell
--%
@@ -1218,6 +1219,11 @@ compMakeCategoryObject(c,$e) ==
u := evalCategoryForm(c,$e) => [u,$Category,$e]
nil
+getCategoryObject(tbl,x,env) ==
+ obj := tableValue(tbl,x) => obj
+ T := compMakeCategoryObject(x,env) => tableValue(tbl,x) := T.expr
+ systemErrorHere ['getCategoryObject]
+
predicatesFromAttributes: %List %Form -> %List %Form
predicatesFromAttributes attrList ==
removeDuplicates [second x for x in attrList]