aboutsummaryrefslogtreecommitdiff
path: root/src/interp/database.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/database.boot')
-rw-r--r--src/interp/database.boot35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/interp/database.boot b/src/interp/database.boot
index 1b957c45..31daea4b 100644
--- a/src/interp/database.boot
+++ b/src/interp/database.boot
@@ -153,6 +153,21 @@ getOperationModemapsFromDB: %Symbol -> %List
getOperationModemapsFromDB op ==
GETDATABASE(op,"MODEMAPS")
+
+getConstructorArity: %Symbol -> %Short
+getConstructorArity ctor ==
+ sig := getConstructorSignature ctor => #rest sig
+ -1
+
+getConstructorKind: %Symbol -> %Maybe %ConstructorKind
+getConstructorKind ctor ==
+ kind := getConstructorKindFromDB ctor =>
+ kind = "domain" and isDefaultPackageName ctor => "package"
+ kind
+ ctor in $DomainNames => "domain"
+ ctor in $CategoryNames => "category"
+ nil
+
--% Functions for manipulating MODEMAP DATABASE
augLisplibModemapsFromCategory(form is [op,:argl],body,signature) ==
@@ -788,6 +803,26 @@ displayHiddenConstructors() ==
centerAndHighlight c
+
+--%
+
+
+++ Return the list of modemaps exported by the category object `c'.
+++ The format of modemap is as found in category objects.
+getCategoryExports: %Shell -> %List
+getCategoryExports c == c.1
+
+++ Return the list of category attribute info for the category object `c'.
+++ A category attribute info is pair of attribute-predicate.
+getCategoryAttributes: %Shell -> %List
+getCategoryAttributes c == c.2
+
+
+getCategoryPrincipalAncestors c == c.4.0
+
+getCategoryParents c == c.4.1
+
+
--%
squeezeAll: %List -> %List
squeezeAll x ==