aboutsummaryrefslogtreecommitdiff
path: root/src/lisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-04-27 07:41:49 +0000
committerdos-reis <gdr@axiomatics.org>2011-04-27 07:41:49 +0000
commit320d0c5d61b2fc8cb6780b9c7e426a76e126307a (patch)
treee593716c7f294b29fbfe4dd1f71758453f9b3586 /src/lisp
parentb34b11df886a81fe707bb09677c1ecd9715dbe70 (diff)
downloadopen-axiom-320d0c5d61b2fc8cb6780b9c7e426a76e126307a.tar.gz
* interp/br-util.boot (dbInfovec): Move to c-util.boot
Diffstat (limited to 'src/lisp')
-rw-r--r--src/lisp/core.lisp.in61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in
index 4c06f25c..e9765261 100644
--- a/src/lisp/core.lisp.in
+++ b/src/lisp/core.lisp.in
@@ -89,6 +89,17 @@
"%Form"
"%Triple"
"%Shell"
+ ;; functor data structures
+ "%FunctorData"
+ "%FunctorCoreData"
+ "%FunctorBytecode"
+ "%FunctorTemplate"
+ "%FunctorPredicateIndexTable"
+ "%FunctorOperatorDirectory"
+ "%FunctorCategoryTable"
+ "%FunctorAttributeTable"
+ "%FunctorDefaultTable"
+ "%FunctorLookupFunction"
"coreQuit"
"fatalError"
@@ -228,6 +239,56 @@
(deftype |%Triple| ()
'(cons |%Code| (cons |%Mode| (cons |%Env| null))))
+;; Functor templates
+(deftype |%FunctorTemplate| ()
+ 'simple-vector)
+
+;; operator directory for functors.
+(deftype |%FunctorOperatorDirectory| ()
+ '(simple-array (or symbol fixnum)))
+
+;; List of (attribute . predicate-index) pairs for functors.
+(deftype |%FunctorAttributeTable| ()
+ 'list)
+
+;; Lookup-function for functors. For most functors, they are
+;; either lookupIncomplete or lookupComplete.
+;; Historical functors have lookupInTable.
+(deftype |%FunctorLookupFunction| ()
+ '|%Symbol|)
+
+;; Functor predicate index table
+(deftype |%FunctorPredicateIndexTable| ()
+ '(simple-array fixnum))
+
+;; vector of categories a functor instantiation may belong to.
+(deftype |%FunctorCategoryTable| ()
+ '(simple-array |%Form|))
+
+;; vector of default category packages that a functor may implicitly use.
+(deftype |%FunctorDefaultTable| ()
+ '(simple-array (|%Maybe| |%Constructor|)))
+
+;; sequence of `byte codes' for a functor
+(deftype |%FunctorBytecode| ()
+ '(simple-array fixnum))
+
+;; PredicateIndex + DefaultTable + CategoryTable + Bytecode
+(deftype |%FunctorCoreData| ()
+ '(cons |%FunctorPredicateIndexTable|
+ (cons |%FunctorDefaultTable|
+ (cons |%FunctorCategoryTable| |%FunctorBytecode|))))
+
+
+;; The essential of what is needed to instantiate a functor.
+;; This is the type of `infovec' properties of functors.
+(deftype |%FunctorData| ()
+ '(cons |%FunctorTemplate|
+ (cons |%FunctorOperatorDirectory|
+ (cons |%FunctorAttributeTable|
+ (cons |%Thing|
+ (cons |%FunctorLookupFunction| null))))))
+
;;
;; -*- Configuration Constants -*-
;;