home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 January / enter-2004-01.iso / files / maxima-5.9.0.exe / {app} / share / maxima / 5.9.0 / src / evalw.lisp < prev    next >
Encoding:
Text File  |  2003-02-09  |  2.1 KB  |  53 lines

  1. ;;; -*-  Mode: Lisp; Package: Maxima; Syntax: Common-Lisp; Base: 10 -*- ;;;;
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;;;     The data in this file contains enhancments.                    ;;;;;
  4. ;;;                                                                    ;;;;;
  5. ;;;  Copyright (c) 1984,1987 by William Schelter,University of Texas   ;;;;;
  6. ;;;     All rights reserved                                            ;;;;;
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  9. ;;;       (c) Copyright 1981 Massachusetts Institute of Technology       ;;;
  10. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  11.  
  12. (in-package "MAXIMA")
  13. (macsyma-module evalw)
  14.  
  15. ;;; Assuming that this will only be a top-level form, it will
  16. ;;; only be see by MEVAL when a file is batched.
  17.  
  18. ;;; EVAL_WHEN(TRANSLATE,FOO(ME),BAZ())$
  19. ;;; EVAL_WHEN([LOADFILE,BATCH],INITIALIZE())$
  20.  
  21. (DECLARE-TOP(SPECIAL $VERSION STATE-PDL BATCONL))
  22.  
  23. ;; Gosh. Seems it was really stupid to have EVAL_WHEN for BATCH and DEMO,
  24. ;; people use it for the most random things. -gjc
  25.  
  26. (DEFMSPEC $EVAL_WHEN (ARGL)
  27.   (SETQ ARGL (CDR ARGL))
  28.   (COND ((OR (< (LENGTH ARGL) 2)
  29.          (NOT (OR (ATOM (CAR ARGL))
  30.               ($LISTP (CAR ARGL)))))
  31.      (MERROR "Bad whens form to EVAL_WHEN~%~M" (CAR ARGL))))
  32.   (LET ((DEMOP #-MAXII (IF (AND (EQ (ml-typep $VERSION) 'fixnum)
  33.                 (> $VERSION 296.))
  34.                (CADDR BATCONL)
  35.                (CADDDR BATCONL))
  36.            #+Maxii  NIL)
  37.     (WHENS (COND (($LISTP (CAR ARGL)) (CDAR ARGL))
  38.              (T (LIST (CAR ARGL))))))
  39.     (COND ((COND (#-MAXII (MEMQ 'BATCH STATE-PDL)
  40.           #+MAXII T ; foo for now!
  41.           (IF DEMOP (OR (MEMQ '$DEMO WHENS) (MEMQ '$BATCH WHENS))
  42.                 (MEMQ '$BATCH WHENS)))
  43.          (T
  44.           ;; this is a form typed in on a c-line by
  45.           ;; the user. or, perhaps it is inside a
  46.           ;; program. Which is an error in the translator.
  47.           ;; What *was* I doing here? -gjc
  48.           (MEMQ '$TOPLEVEL WHENS)))
  49.        `(($EVALUATED_WHEN) ,@(MAPCAR 'MEVAL (CDR ARGL))))
  50.       (T
  51.        '$NOT_EVALUATED_WHEN))))
  52.  
  53.