diff options
Diffstat (limited to 'src/interp/define.boot')
-rw-r--r-- | src/interp/define.boot | 6 |
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] |