aboutsummaryrefslogtreecommitdiff
path: root/src/interp/category.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-07-03 23:17:46 +0000
committerdos-reis <gdr@axiomatics.org>2010-07-03 23:17:46 +0000
commit704439cfc3b15316702dabe92419b9cd2f2fe9d7 (patch)
tree5d0a3ae67abed87e874be3ce9790468b284dd839 /src/interp/category.boot
parent9f34933f2f76a2a59e70e458ba529c99ae7e64d8 (diff)
downloadopen-axiom-704439cfc3b15316702dabe92419b9cd2f2fe9d7.tar.gz
* interp/category.boot (isCategoryForm): Tidy.
* interp/compiler.boot (compMacro): Handle parameterized definition. * interp/define.boot (macroExpand): Likewise. (macroExpandList): Move case for niladic macros to macroExpand. * interp/g-util.boot (putMacro): New utility function.
Diffstat (limited to 'src/interp/category.boot')
-rw-r--r--src/interp/category.boot6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/interp/category.boot b/src/interp/category.boot
index b7a301b6..d9ad2e7e 100644
--- a/src/interp/category.boot
+++ b/src/interp/category.boot
@@ -55,8 +55,10 @@ isCategory a ==
++ envronement `e'.
isCategoryForm: (%Form,%Env) -> %Boolean
isCategoryForm(x,e) ==
- atom x => u:= get(x,"macro",e) => isCategoryForm(u,e)
- categoryForm? first x
+ atom x =>
+ u := macroExpand(x,e)
+ cons? u and categoryForm? u
+ categoryForm? x
--% Functions for building categories