diff options
author | dos-reis <gdr@axiomatics.org> | 2010-07-03 23:17:46 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2010-07-03 23:17:46 +0000 |
commit | 704439cfc3b15316702dabe92419b9cd2f2fe9d7 (patch) | |
tree | 5d0a3ae67abed87e874be3ce9790468b284dd839 /src/interp/category.boot | |
parent | 9f34933f2f76a2a59e70e458ba529c99ae7e64d8 (diff) | |
download | open-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.boot | 6 |
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 |