home *** CD-ROM | disk | FTP | other *** search
- ; -*- Mode: Lisp; Syntax: Common-Lisp; Package: SCHEME-TRANSLATOR; -*-
-
- ; This file was generated by Pseudoscheme 2.8a
- ; running in Lucid Common Lisp 4.0.1
- ; from file /amd/night/b/jar/pseudo/module.scm
-
- (SCHI:BEGIN-TRANSLATED-FILE)
- (LOCALLY (DECLARE (SPECIAL SIGNATURE-RTD))
- (SETQ SIGNATURE-RTD (MAKE-RECORD-TYPE 'SCHEME::SIGNATURE
- '(SCHEME::ID SCHEME::NAMES
- SCHEME::AUX-NAMES))))
- (SCHI:SET-FUNCTION-FROM-VALUE 'SIGNATURE-RTD
- 'SCHEME::SIGNATURE-RTD)
- (LOCALLY (DECLARE (SPECIAL MAKE-SIGNATURE
- SIGNATURE-RTD))
- (SETQ MAKE-SIGNATURE (RECORD-CONSTRUCTOR SIGNATURE-RTD
- '(SCHEME::ID SCHEME::NAMES
- SCHEME::AUX-NAMES))))
- (SCHI:SET-FUNCTION-FROM-VALUE 'MAKE-SIGNATURE
- 'SCHEME::MAKE-SIGNATURE)
- (LOCALLY (DECLARE (SPECIAL SIGNATURE-NAMES
- SIGNATURE-RTD))
- (SETQ SIGNATURE-NAMES (RECORD-ACCESSOR SIGNATURE-RTD
- 'SCHEME::NAMES)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'SIGNATURE-NAMES
- 'SCHEME::SIGNATURE-NAMES)
- (LOCALLY (DECLARE (SPECIAL SIGNATURE-AUX-NAMES
- SIGNATURE-RTD))
- (SETQ SIGNATURE-AUX-NAMES (RECORD-ACCESSOR SIGNATURE-RTD
- 'SCHEME::AUX-NAMES)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'SIGNATURE-AUX-NAMES
- 'SCHEME::SIGNATURE-AUX-NAMES)
- (DEFUN SIGNATURE-REF
- (SIG NAME)
- (IF (MEMBER NAME
- (SIGNATURE-NAMES SIG)
- :TEST
- #'EQ)
- 'SCHEME::PUBLIC
- SCHI:FALSE))
- (SCHI:SET-VALUE-FROM-FUNCTION 'SIGNATURE-REF
- 'SCHEME::SIGNATURE-REF)
- (DEFUN SIGNATURE-REF-AUX
- (SIG NAME)
- (IF (MEMBER NAME
- (SIGNATURE-NAMES SIG)
- :TEST
- #'EQ)
- 'SCHEME::PUBLIC
- (IF (MEMBER NAME
- (SIGNATURE-AUX-NAMES SIG)
- :TEST
- #'EQ)
- 'SCHEME::PRIVATE
- SCHI:FALSE)))
- (SCHI:SET-VALUE-FROM-FUNCTION 'SIGNATURE-REF-AUX
- 'SCHEME::SIGNATURE-REF-AUX)
- (LOCALLY (DECLARE (SPECIAL PROGRAM-ENV-RTD))
- (SETQ PROGRAM-ENV-RTD (MAKE-RECORD-TYPE 'SCHEME::PROGRAM-ENV
- '(SCHEME::ID SCHEME::USE-LIST
- SCHEME::TABLE
- SCHEME::PACKAGE))))
- (SCHI:SET-FUNCTION-FROM-VALUE 'PROGRAM-ENV-RTD
- 'SCHEME::PROGRAM-ENV-RTD)
- (LOCALLY (DECLARE (SPECIAL PROGRAM-ENV-ID
- PROGRAM-ENV-RTD))
- (SETQ PROGRAM-ENV-ID (RECORD-ACCESSOR PROGRAM-ENV-RTD
- 'SCHEME::ID)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'PROGRAM-ENV-ID
- 'SCHEME::PROGRAM-ENV-ID)
- (LOCALLY (DECLARE (SPECIAL PROGRAM-ENV-USE-LIST
- PROGRAM-ENV-RTD))
- (SETQ PROGRAM-ENV-USE-LIST (RECORD-ACCESSOR PROGRAM-ENV-RTD
- 'SCHEME::USE-LIST)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'PROGRAM-ENV-USE-LIST
- 'SCHEME::PROGRAM-ENV-USE-LIST)
- (LOCALLY (DECLARE (SPECIAL PROGRAM-ENV-TABLE
- PROGRAM-ENV-RTD))
- (SETQ PROGRAM-ENV-TABLE (RECORD-ACCESSOR PROGRAM-ENV-RTD
- 'SCHEME::TABLE)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'PROGRAM-ENV-TABLE
- 'SCHEME::PROGRAM-ENV-TABLE)
- (LOCALLY (DECLARE (SPECIAL PROGRAM-ENV-PACKAGE
- PROGRAM-ENV-RTD))
- (SETQ PROGRAM-ENV-PACKAGE (RECORD-ACCESSOR PROGRAM-ENV-RTD
- 'SCHEME::PACKAGE)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'PROGRAM-ENV-PACKAGE
- 'SCHEME::PROGRAM-ENV-PACKAGE)
- (LOCALLY (DECLARE (SPECIAL PROGRAM-ENV?
- PROGRAM-ENV-RTD))
- (SETQ PROGRAM-ENV? (RECORD-PREDICATE PROGRAM-ENV-RTD)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'PROGRAM-ENV?
- 'SCHEME::PROGRAM-ENV?)
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL MAKE-PROGRAM-ENV
- PROGRAM-ENV-RTD
- MODULE-PACKAGE))
- (SETQ MAKE-PROGRAM-ENV (LET ((CREATE
- (RECORD-CONSTRUCTOR PROGRAM-ENV-RTD
- '(SCHEME::ID
- SCHEME::USE-LIST
- SCHEME::TABLE
- SCHEME::PACKAGE))))
- #'(LAMBDA (ID USE-LIST)
- (LET
- ((ENV
- (FUNCALL CREATE ID USE-LIST
- (MAKE-TABLE)
- (MAKE-PACKAGE-USING ID
- (MAPCAR MODULE-PACKAGE USE-LIST)))))
- (INIT-ENVIRONMENT-FOR-SYNTAX! ENV) ENV))))
- ))
- (SCHI:SET-FUNCTION-FROM-VALUE 'MAKE-PROGRAM-ENV
- 'SCHEME::MAKE-PROGRAM-ENV)
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL PROGRAM-ENV-RTD))
- (DEFINE-RECORD-DISCLOSER PROGRAM-ENV-RTD
- #'(LAMBDA (R)
- (LIST "Program-env" (PROGRAM-ENV-ID R))))))
- (DEFUN PROGRAM-ENV-LOOKUP
- (PROGRAM-ENV NAME)
- (LET ((TEMP (TABLE-REF (PROGRAM-ENV-TABLE PROGRAM-ENV)
- NAME)))
- (IF (SCHI:TRUEP TEMP)
- TEMP
- (LET ((Q?
- (IF (SCHI:SCHEME-SYMBOL-P NAME)
- (QUALIFIED-SYMBOL? NAME)
- SCHI:FALSE)))
- (LET ((TEMP@2
- (IF (NOT (SCHI:TRUEP Q?))
- (PROG (MODS@0)
- (SETQ MODS@0 (PROGRAM-ENV-USE-LIST PROGRAM-ENV))
-
- (GO .LOOP)
- .LOOP (LET ((MODS MODS@0))
- (IF (NOT (NULL MODS))
- (LET ((TEMP@1
- (MODULE-REF (CAR MODS)
- NAME)))
- (IF (SCHI:TRUEP TEMP@1)
- (RETURN TEMP@1)
- (PROGN
- (SETQ MODS@0 (CDR MODS))
- (GO .LOOP))))
- (RETURN SCHI:FALSE))))
- SCHI:FALSE)))
- (IF (SCHI:TRUEP TEMP@2)
- TEMP@2
- (LET ((NODE
- (MAKE-PROGRAM-VARIABLE NAME
- (IF (SCHI:TRUEP Q?)
- NAME
- (SCHEME-HACKS:INTERN-RENAMING-PERHAPS
- (NAME->STRING NAME)
- (PROGRAM-ENV-PACKAGE
- PROGRAM-ENV))))))
- (TABLE-SET! (PROGRAM-ENV-TABLE PROGRAM-ENV)
- NAME
- NODE)
- NODE)))))))
- (SCHI:SET-VALUE-FROM-FUNCTION 'PROGRAM-ENV-LOOKUP
- 'SCHEME::PROGRAM-ENV-LOOKUP)
- (DEFUN PROGRAM-ENV-DEFINE!
- (PROGRAM-ENV NAME BINDING)
- (TABLE-SET! (PROGRAM-ENV-TABLE PROGRAM-ENV)
- NAME
- BINDING))
- (SCHI:SET-VALUE-FROM-FUNCTION 'PROGRAM-ENV-DEFINE!
- 'SCHEME::PROGRAM-ENV-DEFINE!)
- (LOCALLY (DECLARE (SPECIAL CLIENT-LOOKUP
- PROGRAM-ENV-LOOKUP))
- (SETQ CLIENT-LOOKUP PROGRAM-ENV-LOOKUP))
- (SCHI:SET-FUNCTION-FROM-VALUE 'CLIENT-LOOKUP
- 'SCHEME::CLIENT-LOOKUP)
- (LOCALLY (DECLARE (SPECIAL CLIENT-DEFINE!
- PROGRAM-ENV-DEFINE!))
- (SETQ CLIENT-DEFINE! PROGRAM-ENV-DEFINE!))
- (SCHI:SET-FUNCTION-FROM-VALUE 'CLIENT-DEFINE!
- 'SCHEME::CLIENT-DEFINE!)
- (LOCALLY (DECLARE (SPECIAL ENVIRONMENT-FOR-SYNTAX-KEY))
- (SETQ ENVIRONMENT-FOR-SYNTAX-KEY (LIST
- 'SCHEME::ENVIRONMENT-FOR-SYNTAX-KEY))
- )
- (SCHI:SET-FUNCTION-FROM-VALUE 'ENVIRONMENT-FOR-SYNTAX-KEY
- 'SCHEME::ENVIRONMENT-FOR-SYNTAX-KEY)
- (DEFUN GET-ENVIRONMENT-FOR-SYNTAX
- (ENV)
- (DECLARE (SPECIAL ENVIRONMENT-FOR-SYNTAX-KEY))
- (FORCE (LOOKUP ENV ENVIRONMENT-FOR-SYNTAX-KEY)))
- (SCHI:SET-VALUE-FROM-FUNCTION 'GET-ENVIRONMENT-FOR-SYNTAX
- 'SCHEME::GET-ENVIRONMENT-FOR-SYNTAX)
- (DEFUN DEFINE-TRANSFORMER-ENV!
- (ENV T-ENV-PROMISE)
- (DECLARE (SPECIAL ENVIRONMENT-FOR-SYNTAX-KEY))
- (DEFINE! ENV ENVIRONMENT-FOR-SYNTAX-KEY T-ENV-PROMISE))
- (SCHI:SET-VALUE-FROM-FUNCTION 'DEFINE-TRANSFORMER-ENV!
- 'SCHEME::DEFINE-TRANSFORMER-ENV!)
- (DEFUN INIT-ENVIRONMENT-FOR-SYNTAX!
- (ENV)
- (DECLARE (SPECIAL REVISED^4-SCHEME-MODULE))
- (DEFINE-TRANSFORMER-ENV! ENV
- (REVISED^4-SCHEME::MAKE-PROMISE
- #'(LAMBDA NIL
- (MAKE-PROGRAM-ENV
- (VALUES
- (INTERN
- (STRING-APPEND
- (SYMBOL->STRING (PROGRAM-ENV-ID ENV))
- "[META]")
- SCHI:SCHEME-PACKAGE))
- (LIST REVISED^4-SCHEME-MODULE))))))
- (SCHI:SET-VALUE-FROM-FUNCTION 'INIT-ENVIRONMENT-FOR-SYNTAX!
- 'SCHEME::INIT-ENVIRONMENT-FOR-SYNTAX!)
- (LOCALLY (DECLARE (SPECIAL MODULE-RTD))
- (SETQ MODULE-RTD (MAKE-RECORD-TYPE 'SCHEME::MODULE
- '(SCHEME::ID SCHEME::SIG
- SCHEME::PROGRAM-ENV
- SCHEME::PACKAGE))))
- (SCHI:SET-FUNCTION-FROM-VALUE 'MODULE-RTD
- 'SCHEME::MODULE-RTD)
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL MAKE-MODULE MODULE-RTD))
- (SETQ MAKE-MODULE (LET ((CREATE
- (RECORD-CONSTRUCTOR MODULE-RTD
- '(SCHEME::ID
- SCHEME::SIG
- SCHEME::PROGRAM-ENV
- SCHEME::PACKAGE))))
- #'(LAMBDA (ID SIG ENV)
- (FUNCALL CREATE ID SIG ENV
- (MAKE-PACKAGE-EXPORTING ID
- (LET
- ((PPACKAGE (PROGRAM-ENV-PACKAGE ENV)))
- (MAPCAR
- #'(LAMBDA (NAME)
- (SCHEME-HACKS:INTERN-RENAMING-PERHAPS
- (SYMBOL->STRING NAME) PPACKAGE))
- (SIGNATURE-NAMES SIG))))))))))
- (SCHI:SET-FUNCTION-FROM-VALUE 'MAKE-MODULE
- 'SCHEME::MAKE-MODULE)
- (LOCALLY (DECLARE (SPECIAL MODULE-ID MODULE-RTD))
- (SETQ MODULE-ID (RECORD-ACCESSOR MODULE-RTD 'SCHEME::ID)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'MODULE-ID
- 'SCHEME::MODULE-ID)
- (LOCALLY (DECLARE (SPECIAL MODULE-SIGNATURE MODULE-RTD))
- (SETQ MODULE-SIGNATURE (RECORD-ACCESSOR MODULE-RTD
- 'SCHEME::SIG)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'MODULE-SIGNATURE
- 'SCHEME::MODULE-SIGNATURE)
- (LOCALLY (DECLARE (SPECIAL MODULE-PROGRAM-ENV
- MODULE-RTD))
- (SETQ MODULE-PROGRAM-ENV (RECORD-ACCESSOR MODULE-RTD
- 'SCHEME::PROGRAM-ENV)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'MODULE-PROGRAM-ENV
- 'SCHEME::MODULE-PROGRAM-ENV)
- (LOCALLY (DECLARE (SPECIAL MODULE-PACKAGE MODULE-RTD))
- (SETQ MODULE-PACKAGE (RECORD-ACCESSOR MODULE-RTD
- 'SCHEME::PACKAGE)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'MODULE-PACKAGE
- 'SCHEME::MODULE-PACKAGE)
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL MODULE-RTD))
- (DEFINE-RECORD-DISCLOSER MODULE-RTD
- #'(LAMBDA (R)
- (LIST "Module" (MODULE-ID R))))))
- (DEFUN MODULE-REF
- (.MOD NAME)
- (IF (EQ (SIGNATURE-REF (MODULE-SIGNATURE .MOD)
- NAME)
- 'SCHEME::PUBLIC)
- (PROGRAM-ENV-LOOKUP (MODULE-PROGRAM-ENV .MOD)
- NAME)
- SCHI:FALSE))
- (SCHI:SET-VALUE-FROM-FUNCTION 'MODULE-REF
- 'SCHEME::MODULE-REF)
-