(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "XCL") (IL:FILECREATED "16-May-90 15:30:14" IL:|{DSK}local>lde>lispcore>sources>DEFFER-RUNTIME.;2| 4543 IL:|changes| IL:|to:| (IL:VARS IL:DEFFER-RUNTIMECOMS) IL:|previous| IL:|date:| " 6-Jul-88 20:55:09" IL:|{DSK}local>lde>lispcore>sources>DEFFER-RUNTIME.;1|) ; Copyright (c) 1987, 1988, 1990 by Venue & Xerox Corporation. All rights reserved. (IL:PRETTYCOMPRINT IL:DEFFER-RUNTIMECOMS) (IL:RPAQQ IL:DEFFER-RUNTIMECOMS ((IL:INITVARS (IL:FILEPKGFLG NIL)) (IL:* IL:|;;| "The definer data structures and manipulation functions") (IL:* IL:|;;| "Must be shared with IL for compatibility with old definers") (IL:VARIABLES *DEFINITION-HASH-TABLE*) (IL:* IL:|;;| "Prototype definition facility") (IL:VARIABLES *DEFINITION-PROTOTYPES*) (IL:FUNCTIONS ADD-PROTOTYPE-FN PROTOTYPE-DEFN-TYPES PROTOTYPE-DEFINERS-FOR-TYPE MAKE-PROTOTYPE %MAKE-FUNCTION-PROTOTYPE) (IL:PROP (IL:FILETYPE IL:MAKEFILE-ENVIRONMENT) IL:DEFFER-RUNTIME) (IL:DECLARE\: IL:DONTEVAL@LOAD IL:DOEVAL@COMPILE IL:DONTCOPY IL:COMPILERVARS (IL:ADDVARS (IL:NLAMA) (IL:NLAML) (IL:LAMA))))) (IL:RPAQ? IL:FILEPKGFLG NIL) (IL:* IL:|;;| "The definer data structures and manipulation functions") (IL:* IL:|;;| "Must be shared with IL for compatibility with old definers") (DEFGLOBALVAR *DEFINITION-HASH-TABLE* (MAKE-HASH-TABLE :TEST #'EQ :SIZE 20)) (IL:* IL:|;;| "Prototype definition facility") (DEFGLOBALVAR *DEFINITION-PROTOTYPES* NIL (IL:* IL:|;;| "An association list mapping file-manager types to association lists from definer-names to prototype-functions") ) (DEFUN ADD-PROTOTYPE-FN (TYPE DEFINER PROTOTYPE-FN) (LET ((TYPE-ALIST (ASSOC TYPE *DEFINITION-PROTOTYPES* :TEST #'EQ))) (IF (NULL TYPE-ALIST) (IL:* IL:|;;| "No entry for this type -- add one") (SETQ *DEFINITION-PROTOTYPES* (ACONS TYPE (LIST (CONS DEFINER PROTOTYPE-FN)) *DEFINITION-PROTOTYPES*)) (LET ((DEFINER-ALIST (ASSOC DEFINER (CDR TYPE-ALIST) :TEST #'EQ))) (IL:* IL:|;;| "If this definer didn't already have a PROTOTYPE-FN, add one. If it already had one, change it to the new one.") (IF (NULL DEFINER-ALIST) (SETF (CDR TYPE-ALIST) (ACONS DEFINER PROTOTYPE-FN (CDR TYPE-ALIST))) (SETF (CDR DEFINER-ALIST) PROTOTYPE-FN)))))) (DEFUN PROTOTYPE-DEFN-TYPES () (IL:* IL:|;;;| "Return a list of the file-manager types for which some definer can provide a prototype definition.") (MAPCAN #'(LAMBDA (X) (IF (CDR X) (LIST (CAR X)))) *DEFINITION-PROTOTYPES*)) (DEFUN PROTOTYPE-DEFINERS-FOR-TYPE (TYPE) (IL:* IL:|;;;| "Return a list of the definers that claim to be able to provide a prototype definition of the given type.") (MAPCAR #'CAR (CDR (ASSOC TYPE *DEFINITION-PROTOTYPES* :TEST #'EQ)))) (DEFUN MAKE-PROTOTYPE (NAME TYPE DEFINER) (LET ((PROTOTYPE-FN (CDR (ASSOC DEFINER (CDR (ASSOC TYPE *DEFINITION-PROTOTYPES* :TEST #'EQ)) :TEST #'EQ)))) (AND PROTOTYPE-FN (FUNCALL PROTOTYPE-FN NAME)))) (DEFUN %MAKE-FUNCTION-PROTOTYPE () (IL:* IL:|;;| "dummy definition -- redefined by SEdit") (LIST (LIST "Arg List") "Body")) (IL:PUTPROPS IL:DEFFER-RUNTIME IL:FILETYPE COMPILE-FILE) (IL:PUTPROPS IL:DEFFER-RUNTIME IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE "XCL")) (IL:DECLARE\: IL:DONTEVAL@LOAD IL:DOEVAL@COMPILE IL:DONTCOPY IL:COMPILERVARS (IL:ADDTOVAR IL:NLAMA ) (IL:ADDTOVAR IL:NLAML ) (IL:ADDTOVAR IL:LAMA ) ) (IL:PUTPROPS IL:DEFFER-RUNTIME IL:COPYRIGHT ("Venue & Xerox Corporation" 1987 1988 1990)) (IL:DECLARE\: IL:DONTCOPY (IL:FILEMAP (NIL))) IL:STOP