From 320d0c5d61b2fc8cb6780b9c7e426a76e126307a Mon Sep 17 00:00:00 2001 From: dos-reis Date: Wed, 27 Apr 2011 07:41:49 +0000 Subject: * interp/br-util.boot (dbInfovec): Move to c-util.boot --- src/lisp/core.lisp.in | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'src/lisp') 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 -*- ;; -- cgit v1.2.3