aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/interp/define.boot15
2 files changed, 13 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 070189e8..8125b842 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,10 @@
2012-02-09 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * interp/define.boot (mkEvalableCategoryForm): Compile only
+ CATEGORY and SubsetCategory forms.
+
+2012-02-09 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* interp/database.boot (categoryConstructor?): New.
* interp/define.boot (mkEvalableCategoryForm): Use it. Tidy.
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 608f34bd..2b9470f2 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -910,14 +910,15 @@ macroExpandList(l,e) ==
mkEvalableCategoryForm c ==
c is [op,:argl] =>
- op is "Join" => [op,:[mkEvalableCategoryForm x for x in argl]]
op is "DomainSubstitutionMacro" => mkEvalableCategoryForm second argl
- op is "mkCategory" => c
- builtinCategoryName? op =>
- ([x,m,$e]:= compOrCroak(c,$EmptyMode,$e); m=$Category => x)
- categoryConstructor? op => [op,:[MKQ x for x in argl]]
- [x,m,$e]:= compOrCroak(c,$EmptyMode,$e)
- m=$Category => x
+ op in '(QUOTE mkCategory EnumerationCategory) => c
+ op is ":" => [op,second c,mkEvalableCategoryForm third c]
+ op in '(CATEGORY SubsetCategory) =>
+ [x,m,$e] := compOrCroak(c,$EmptyMode,$e)
+ m = $Category => x
+ MKQ c
+ categoryConstructor? op =>
+ [op,:[mkEvalableCategoryForm x for x in argl]]
MKQ c
MKQ c