aboutsummaryrefslogtreecommitdiff
path: root/src/interp/c-util.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/c-util.boot')
-rw-r--r--src/interp/c-util.boot37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/interp/c-util.boot b/src/interp/c-util.boot
index 986fbea0..3184e728 100644
--- a/src/interp/c-util.boot
+++ b/src/interp/c-util.boot
@@ -83,6 +83,43 @@ macro domainPredicates d ==
domainRef(d,3)
--%
+
+++ List of category constructors that do not have entries in the
+++ constructor database. So, they are mostly recognized by their names.
+$CategoryNames ==
+ '(CATEGORY _
+ RecordCategory _
+ Join _
+ EnumerationCategory _
+ SubsetCategory _
+ UnionCategory _
+ MappingCategory)
+
+macro builtinCategoryName? x ==
+ symbolMember?(x,$CategoryNames)
+
+++ List of domain constructors that do not have entries in the constructor
+++ database. So, they are mostly recognized by their names.
+++ See also $CategoryNames.
+$DomainNames ==
+ '(Mapping _
+ SubDomain _
+ Union _
+ Record _
+ Enumeration)
+
+macro builtinFunctorName? x ==
+ symbolMember?(x,$DomainNames)
+
+++ The collection of builtin category names and builtin domain names.
+$BuiltinConstructorNames ==
+ [:$CategoryNames,:$DomainNames]
+
+++ Return true if the symbol `s' designates a builtin constructor.
+macro builtinConstructor? s ==
+ symbolMember?(s,$BuiltinConstructorNames)
+
+--%
$SetCategory ==
'(SetCategory)